From c4078c377d74290ebe4e66da0b4975da91732376 Mon Sep 17 00:00:00 2001 From: "William R. Otte" Date: Tue, 4 Mar 2008 13:56:48 +0000 Subject: swap in externals for ACE and TAO --- ACE/ACE-INSTALL.html | 3010 --- ACE/ACE.mwc | 32 - ACE/ACEXML/ACEXML.mwc | 5 - ACE/ACEXML/ChangeLog | 1142 -- ACE/ACEXML/Makefile.am | 17 - ACE/ACEXML/README | 17 - ACE/ACEXML/apps/Makefile.am | 13 - .../apps/svcconf/ACEXML_XML_Svc_Conf_Parser.pc.in | 11 - ACE/ACEXML/apps/svcconf/Makefile.am | 79 - ACE/ACEXML/apps/svcconf/README | 4 - ACE/ACEXML/apps/svcconf/Svcconf.cpp | 124 - ACE/ACEXML/apps/svcconf/Svcconf.h | 44 - ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp | 770 - ACE/ACEXML/apps/svcconf/Svcconf_Handler.h | 276 - ACE/ACEXML/apps/svcconf/Svcconf_Handler.inl | 133 - ACE/ACEXML/apps/svcconf/svcconf.dtd | 60 - ACE/ACEXML/apps/svcconf/svcconf.mpc | 6 - ACE/ACEXML/common/ACEXML.pc.in | 11 - ACE/ACEXML/common/ACEXML_Export.h | 49 - ACE/ACEXML/common/Attributes.cpp | 11 - ACE/ACEXML/common/Attributes.h | 130 - ACE/ACEXML/common/AttributesImpl.cpp | 293 - ACE/ACEXML/common/AttributesImpl.h | 309 - ACE/ACEXML/common/AttributesImpl.inl | 154 - ACE/ACEXML/common/Attributes_Def_Builder.cpp | 14 - ACE/ACEXML/common/Attributes_Def_Builder.h | 153 - ACE/ACEXML/common/CharStream.cpp | 7 - ACE/ACEXML/common/CharStream.h | 88 - ACE/ACEXML/common/ContentHandler.cpp | 11 - ACE/ACEXML/common/ContentHandler.h | 132 - ACE/ACEXML/common/DTDHandler.cpp | 11 - ACE/ACEXML/common/DTDHandler.h | 78 - ACE/ACEXML/common/DTD_Manager.cpp | 8 - ACE/ACEXML/common/DTD_Manager.h | 82 - ACE/ACEXML/common/DefaultHandler.cpp | 143 - ACE/ACEXML/common/DefaultHandler.h | 176 - ACE/ACEXML/common/Element_Def_Builder.cpp | 9 - ACE/ACEXML/common/Element_Def_Builder.h | 133 - ACE/ACEXML/common/Encoding.cpp | 59 - ACE/ACEXML/common/Encoding.h | 61 - ACE/ACEXML/common/EntityResolver.cpp | 11 - ACE/ACEXML/common/EntityResolver.h | 61 - ACE/ACEXML/common/Env.cpp | 34 - ACE/ACEXML/common/Env.h | 72 - ACE/ACEXML/common/Env.inl | 25 - ACE/ACEXML/common/ErrorHandler.cpp | 11 - ACE/ACEXML/common/ErrorHandler.h | 75 - ACE/ACEXML/common/Exception.cpp | 36 - ACE/ACEXML/common/Exception.h | 87 - ACE/ACEXML/common/Exception.inl | 13 - ACE/ACEXML/common/FileCharStream.cpp | 256 - ACE/ACEXML/common/FileCharStream.h | 130 - ACE/ACEXML/common/HttpCharStream.cpp | 476 - ACE/ACEXML/common/HttpCharStream.h | 140 - ACE/ACEXML/common/InputSource.cpp | 105 - ACE/ACEXML/common/InputSource.h | 131 - ACE/ACEXML/common/Locator.cpp | 11 - ACE/ACEXML/common/Locator.h | 74 - ACE/ACEXML/common/LocatorImpl.cpp | 49 - ACE/ACEXML/common/LocatorImpl.h | 159 - ACE/ACEXML/common/LocatorImpl.inl | 65 - ACE/ACEXML/common/Makefile.am | 159 - ACE/ACEXML/common/Mem_Map_Stream.cpp | 264 - ACE/ACEXML/common/Mem_Map_Stream.h | 191 - ACE/ACEXML/common/NamespaceSupport.cpp | 247 - ACE/ACEXML/common/NamespaceSupport.h | 235 - ACE/ACEXML/common/SAXExceptions.cpp | 250 - ACE/ACEXML/common/SAXExceptions.h | 208 - ACE/ACEXML/common/SAXExceptions.inl | 57 - ACE/ACEXML/common/StrCharStream.cpp | 132 - ACE/ACEXML/common/StrCharStream.h | 102 - ACE/ACEXML/common/StreamFactory.cpp | 56 - ACE/ACEXML/common/StreamFactory.h | 58 - ACE/ACEXML/common/Transcode.cpp | 311 - ACE/ACEXML/common/Transcode.h | 172 - ACE/ACEXML/common/URL_Addr.cpp | 178 - ACE/ACEXML/common/URL_Addr.h | 137 - ACE/ACEXML/common/URL_Addr.inl | 65 - ACE/ACEXML/common/Validator.cpp | 8 - ACE/ACEXML/common/Validator.h | 64 - ACE/ACEXML/common/XMLFilter.h | 56 - ACE/ACEXML/common/XMLFilterImpl.cpp | 314 - ACE/ACEXML/common/XMLFilterImpl.h | 270 - ACE/ACEXML/common/XMLFilterImpl.inl | 14 - ACE/ACEXML/common/XMLReader.cpp | 11 - ACE/ACEXML/common/XMLReader.h | 132 - ACE/ACEXML/common/XML_Codecs.cpp | 94 - ACE/ACEXML/common/XML_Codecs.h | 73 - ACE/ACEXML/common/XML_Macros.h | 456 - ACE/ACEXML/common/XML_Types.h | 83 - ACE/ACEXML/common/XML_Util.cpp | 46 - ACE/ACEXML/common/XML_Util.h | 33 - ACE/ACEXML/common/ZipCharStream.cpp | 255 - ACE/ACEXML/common/ZipCharStream.h | 144 - ACE/ACEXML/common/codecs.mpb | 8 - ACE/ACEXML/common/common.mpc | 33 - ACE/ACEXML/docs/TODO.txt | 17 - ACE/ACEXML/docs/bugs.txt | 17 - ACE/ACEXML/docs/guidelines.txt | 39 - ACE/ACEXML/docs/parser_features.txt | 25 - ACE/ACEXML/docs/readme.txt | 36 - ACE/ACEXML/examples/Makefile.am | 13 - ACE/ACEXML/examples/SAXPrint/Makefile.am | 75 - ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp | 238 - ACE/ACEXML/examples/SAXPrint/Print_Handler.h | 171 - ACE/ACEXML/examples/SAXPrint/SAXPrint.mpc | 6 - ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp | 226 - ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h | 180 - ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.inl | 13 - ACE/ACEXML/examples/SAXPrint/broken.xml | 5 - ACE/ACEXML/examples/SAXPrint/main.cpp | 207 - ACE/ACEXML/examples/SAXPrint/namespaces.xml | 95 - ACE/ACEXML/examples/SAXPrint/ns.svc.conf.xml | 46 - ACE/ACEXML/examples/SAXPrint/simple.svcconf.xml | 38 - ACE/ACEXML/examples/SAXPrint/svc.conf.xml | 58 - ACE/ACEXML/parser/Makefile.am | 13 - .../debug_validator/Debug_Attributes_Builder.cpp | 211 - .../debug_validator/Debug_Attributes_Builder.h | 166 - .../parser/debug_validator/Debug_DTD_Manager.cpp | 71 - .../parser/debug_validator/Debug_DTD_Manager.h | 76 - .../debug_validator/Debug_DTD_Manager_Export.h | 38 - .../debug_validator/Debug_Element_Builder.cpp | 144 - .../parser/debug_validator/Debug_Element_Builder.h | 123 - ACE/ACEXML/parser/debug_validator/Element_Tree.cpp | 72 - ACE/ACEXML/parser/debug_validator/Element_Tree.h | 160 - ACE/ACEXML/parser/debug_validator/Element_Tree.inl | 92 - ACE/ACEXML/parser/parser/ACEXML_Parser.pc.in | 11 - ACE/ACEXML/parser/parser/Entity_Manager.cpp | 20 - ACE/ACEXML/parser/parser/Entity_Manager.h | 100 - ACE/ACEXML/parser/parser/Entity_Manager.inl | 66 - ACE/ACEXML/parser/parser/Makefile.am | 73 - ACE/ACEXML/parser/parser/Parser.cpp | 3352 ---- ACE/ACEXML/parser/parser/Parser.h | 858 - ACE/ACEXML/parser/parser/Parser.inl | 257 - ACE/ACEXML/parser/parser/ParserContext.cpp | 16 - ACE/ACEXML/parser/parser/ParserContext.h | 84 - ACE/ACEXML/parser/parser/ParserContext.inl | 77 - ACE/ACEXML/parser/parser/ParserInternals.cpp | 394 - ACE/ACEXML/parser/parser/ParserInternals.h | 102 - ACE/ACEXML/parser/parser/Parser_export.h | 47 - ACE/ACEXML/parser/parser/parser.mpc | 14 - ACE/ACEXML/tests/ContentHandler_Test.cpp | 101 - ACE/ACEXML/tests/HttpCharStream_Test.cpp | 40 - ACE/ACEXML/tests/Makefile.am | 222 - ACE/ACEXML/tests/NamespaceSupport_Test.cpp | 150 - ACE/ACEXML/tests/Transcoder_Test.cpp | 71 - ACE/ACEXML/tests/tests.mpc | 30 - ACE/ACEXML/tests/util/Makefile.am | 70 - ACE/ACEXML/tests/util/test.cpp | 111 - ACE/ACEXML/tests/util/util.mpc | 4 - ACE/ASNMP/COPYRIGHT | 68 - ACE/ASNMP/ChangeLog | 538 - ACE/ASNMP/Makefile.am | 16 - ACE/ASNMP/README | 177 - ACE/ASNMP/TO-DO | 3 - ACE/ASNMP/agent/Makefile.am | 45 - ACE/ASNMP/agent/agent.mpc | 14 - ACE/ASNMP/agent/agent_impl.cpp | 158 - ACE/ASNMP/agent/agent_impl.h | 52 - ACE/ASNMP/agent/main.cpp | 28 - ACE/ASNMP/agent/snmp_agent.cpp | 102 - ACE/ASNMP/agent/snmp_agent.h | 48 - ACE/ASNMP/asnmp-overview.html | 134 - ACE/ASNMP/asnmp/ASNMP_Export.h | 58 - ACE/ASNMP/asnmp/ChangeLog | 227 - ACE/ASNMP/asnmp/Makefile.am | 66 - ACE/ASNMP/asnmp/TODO | 25 - ACE/ASNMP/asnmp/address.cpp | 2705 --- ACE/ASNMP/asnmp/address.h | 845 - ACE/ASNMP/asnmp/asn1.cpp | 1734 -- ACE/ASNMP/asnmp/asn1.h | 345 - ACE/ASNMP/asnmp/asnmp.mpc | 26 - ACE/ASNMP/asnmp/counter.cpp | 107 - ACE/ASNMP/asnmp/counter.h | 79 - ACE/ASNMP/asnmp/ctr64.cpp | 213 - ACE/ASNMP/asnmp/ctr64.h | 111 - ACE/ASNMP/asnmp/enttraps.h | 147 - ACE/ASNMP/asnmp/gauge.cpp | 114 - ACE/ASNMP/asnmp/gauge.h | 79 - ACE/ASNMP/asnmp/integer.cpp | 230 - ACE/ASNMP/asnmp/integer.h | 142 - ACE/ASNMP/asnmp/octet.cpp | 594 - ACE/ASNMP/asnmp/octet.h | 152 - ACE/ASNMP/asnmp/oid.cpp | 803 - ACE/ASNMP/asnmp/oid.h | 175 - ACE/ASNMP/asnmp/oid_def.h | 84 - ACE/ASNMP/asnmp/pdu.cpp | 502 - ACE/ASNMP/asnmp/pdu.h | 219 - ACE/ASNMP/asnmp/sagent.cpp | 97 - ACE/ASNMP/asnmp/sagent.h | 82 - ACE/ASNMP/asnmp/smi.h | 147 - ACE/ASNMP/asnmp/smival.h | 102 - ACE/ASNMP/asnmp/snmp.cpp | 286 - ACE/ASNMP/asnmp/snmp.h | 137 - ACE/ASNMP/asnmp/snmperrs.h | 210 - ACE/ASNMP/asnmp/target.cpp | 323 - ACE/ASNMP/asnmp/target.h | 260 - ACE/ASNMP/asnmp/timetick.cpp | 147 - ACE/ASNMP/asnmp/timetick.h | 85 - ACE/ASNMP/asnmp/transaction.cpp | 207 - ACE/ASNMP/asnmp/transaction.h | 83 - ACE/ASNMP/asnmp/transaction_result.h | 26 - ACE/ASNMP/asnmp/vb.cpp | 399 - ACE/ASNMP/asnmp/vb.h | 207 - ACE/ASNMP/asnmp/wpdu.cpp | 523 - ACE/ASNMP/asnmp/wpdu.h | 84 - ACE/ASNMP/examples/Makefile.am | 17 - ACE/ASNMP/examples/get/Makefile.am | 62 - ACE/ASNMP/examples/get/get.cpp | 206 - ACE/ASNMP/examples/get/get.mpc | 23 - ACE/ASNMP/examples/get/get_async.cpp | 215 - ACE/ASNMP/examples/next/Makefile.am | 41 - ACE/ASNMP/examples/next/next.cpp | 204 - ACE/ASNMP/examples/next/next.mpc | 13 - ACE/ASNMP/examples/set/Makefile.am | 41 - ACE/ASNMP/examples/set/set.cpp | 275 - ACE/ASNMP/examples/set/set.mpc | 13 - ACE/ASNMP/examples/trap/Makefile.am | 41 - ACE/ASNMP/examples/trap/trap.cpp | 192 - ACE/ASNMP/examples/trap/trap.mpc | 12 - ACE/ASNMP/examples/walk/Makefile.am | 41 - ACE/ASNMP/examples/walk/walk.cpp | 270 - ACE/ASNMP/examples/walk/walk.mpc | 12 - ACE/ASNMP/mibs/RFC1213-MIB.my | 2618 --- ACE/ASNMP/tests/Address_Test.cpp | 550 - ACE/ASNMP/tests/Counter64_Test.cpp | 156 - ACE/ASNMP/tests/Counter_Test.cpp | 136 - ACE/ASNMP/tests/Gauge_Test.cpp | 133 - ACE/ASNMP/tests/Integer_Test.cpp | 200 - ACE/ASNMP/tests/Makefile.am | 173 - ACE/ASNMP/tests/Octet_Test.cpp | 156 - ACE/ASNMP/tests/Oid_Test.cpp | 181 - ACE/ASNMP/tests/Target_Test.cpp | 145 - ACE/ASNMP/tests/Varbind_Test.cpp | 197 - ACE/ASNMP/tests/run_tests.bat | 44 - ACE/ASNMP/tests/run_tests.sh | 61 - ACE/ASNMP/tests/test_config.h | 177 - ACE/ASNMP/tests/tests.mpc | 91 - ACE/AUTHORS | 13 - ACE/COPYING | 124 - ACE/ChangeLog | 269 - ACE/ChangeLogs/ChangeLog-00a | 12664 ------------ ACE/ChangeLogs/ChangeLog-00b | 3845 ---- ACE/ChangeLogs/ChangeLog-01a | 8155 -------- ACE/ChangeLogs/ChangeLog-01b | 8242 -------- ACE/ChangeLogs/ChangeLog-02a | 9018 --------- ACE/ChangeLogs/ChangeLog-02b | 7227 ------- ACE/ChangeLogs/ChangeLog-03a | 1339 -- ACE/ChangeLogs/ChangeLog-03b | 6184 ------ ACE/ChangeLogs/ChangeLog-03c | 14852 -------------- ACE/ChangeLogs/ChangeLog-04a | 10491 ---------- ACE/ChangeLogs/ChangeLog-04b | 8063 -------- ACE/ChangeLogs/ChangeLog-05a | 5879 ------ ACE/ChangeLogs/ChangeLog-05b | 2815 --- ACE/ChangeLogs/ChangeLog-05c | 6715 ------- ACE/ChangeLogs/ChangeLog-06a | 4912 ----- ACE/ChangeLogs/ChangeLog-06b | 8927 --------- ACE/ChangeLogs/ChangeLog-07a | 3198 --- ACE/ChangeLogs/ChangeLog-07b | 7459 ------- ACE/ChangeLogs/ChangeLog-08a | 5373 ----- ACE/ChangeLogs/ChangeLog-93 | 52 - ACE/ChangeLogs/ChangeLog-94 | 1027 - ACE/ChangeLogs/ChangeLog-95 | 4179 ---- ACE/ChangeLogs/ChangeLog-96a | 3889 ---- ACE/ChangeLogs/ChangeLog-96b | 5878 ------ ACE/ChangeLogs/ChangeLog-97a | 9203 --------- ACE/ChangeLogs/ChangeLog-97b | 9182 --------- ACE/ChangeLogs/ChangeLog-98a | 6588 ------ ACE/ChangeLogs/ChangeLog-98b | 12943 ------------ ACE/ChangeLogs/ChangeLog-99a | 13411 ------------- ACE/ChangeLogs/ChangeLog-99b | 7290 ------- ACE/FAQ | 1847 -- ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp | 286 - ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.h | 86 - ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp | 380 - ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h | 92 - ACE/Kokyu/DSRT_Dispatch_Item_T.cpp | 35 - ACE/Kokyu/DSRT_Dispatch_Item_T.h | 103 - ACE/Kokyu/DSRT_Dispatch_Item_T.inl | 70 - ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp | 56 - ACE/Kokyu/DSRT_Dispatcher_Impl_T.h | 210 - ACE/Kokyu/DSRT_Dispatcher_Impl_T.inl | 57 - ACE/Kokyu/DSRT_Sched_Queue_T.cpp | 281 - ACE/Kokyu/DSRT_Sched_Queue_T.h | 230 - ACE/Kokyu/Default_Dispatcher_Impl.cpp | 170 - ACE/Kokyu/Default_Dispatcher_Impl.h | 77 - ACE/Kokyu/Default_Dispatcher_Impl.inl | 11 - ACE/Kokyu/Dispatch_Deferrer.cpp | 112 - ACE/Kokyu/Dispatch_Deferrer.h | 95 - ACE/Kokyu/Dispatch_Deferrer.inl | 29 - ACE/Kokyu/Dispatcher_Impl.cpp | 19 - ACE/Kokyu/Dispatcher_Impl.h | 74 - ACE/Kokyu/Dispatcher_Impl.inl | 31 - ACE/Kokyu/Dispatcher_Task.cpp | 188 - ACE/Kokyu/Dispatcher_Task.h | 106 - ACE/Kokyu/Dispatcher_Task.inl | 81 - ACE/Kokyu/Kokyu.cpp | 55 - ACE/Kokyu/Kokyu.dsui | 37 - ACE/Kokyu/Kokyu.h | 115 - ACE/Kokyu/Kokyu.inl | 10 - ACE/Kokyu/Kokyu.mpc | 27 - ACE/Kokyu/Kokyu.mwc | 5 - ACE/Kokyu/Kokyu.pc.in | 11 - ACE/Kokyu/Kokyu_defs.cpp | 66 - ACE/Kokyu/Kokyu_defs.h | 191 - ACE/Kokyu/Kokyu_defs.inl | 86 - ACE/Kokyu/Kokyu_dsrt.cpp | 179 - ACE/Kokyu/Kokyu_dsrt.h | 177 - ACE/Kokyu/Kokyu_dsrt.inl | 11 - ACE/Kokyu/Makefile.am | 87 - ACE/Kokyu/README | 22 - ACE/Kokyu/docs/Kokyu.html | 416 - ACE/Kokyu/docs/KokyuEC.jpg | Bin 58534 -> 0 bytes ACE/Kokyu/docs/kokyu1.jpg | Bin 86414 -> 0 bytes ACE/Kokyu/docs/kokyu2.jpg | Bin 82664 -> 0 bytes ACE/Kokyu/kokyu_config.h | 10 - ACE/Kokyu/kokyu_export.h | 55 - ACE/Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc | 7 - ACE/Kokyu/tests/DSRT_MIF/MIF.cpp | 185 - ACE/Kokyu/tests/DSRT_MIF/Makefile.am | 41 - ACE/Kokyu/tests/DSRT_MIF/svc.conf | 4 - ACE/Kokyu/tests/DSRT_MIF/svc.conf.xml | 8 - ACE/Kokyu/tests/EDF/EDF.mpc | 6 - ACE/Kokyu/tests/EDF/Makefile.am | 36 - ACE/Kokyu/tests/EDF/README | 24 - ACE/Kokyu/tests/EDF/test.cpp | 162 - ACE/Kokyu/tests/FIFO/FIFO.mpc | 6 - ACE/Kokyu/tests/FIFO/Makefile.am | 36 - ACE/Kokyu/tests/FIFO/README | 24 - ACE/Kokyu/tests/FIFO/test.cpp | 166 - ACE/Kokyu/tests/Makefile.am | 15 - ACE/Makefile.am | 36 - ACE/NEWS | 1275 -- ACE/PROBLEM-REPORT-FORM | 90 - ACE/README | 222 - ACE/Release | 212 - ACE/THANKS | 2265 --- ACE/VERSION | 11 - ACE/ace/ACE.cpp | 3409 ---- ACE/ace/ACE.h | 825 - ACE/ace/ACE.inl | 350 - ACE/ace/ACE.pc.in | 10 - ACE/ace/ACE_crc32.cpp | 161 - ACE/ace/ACE_crc_ccitt.cpp | 128 - ACE/ace/ACE_export.h | 76 - ACE/ace/ARGV.cpp | 359 - ACE/ace/ARGV.h | 306 - ACE/ace/ARGV.inl | 104 - ACE/ace/ATM_Acceptor.cpp | 309 - ACE/ace/ATM_Acceptor.h | 123 - ACE/ace/ATM_Acceptor.inl | 43 - ACE/ace/ATM_Addr.cpp | 522 - ACE/ace/ATM_Addr.h | 197 - ACE/ace/ATM_Addr.inl | 37 - ACE/ace/ATM_Connector.cpp | 138 - ACE/ace/ATM_Connector.h | 164 - ACE/ace/ATM_Connector.inl | 132 - ACE/ace/ATM_Params.cpp | 20 - ACE/ace/ATM_Params.h | 214 - ACE/ace/ATM_Params.inl | 235 - ACE/ace/ATM_QoS.cpp | 631 - ACE/ace/ATM_QoS.h | 115 - ACE/ace/ATM_QoS.inl | 29 - ACE/ace/ATM_Stream.cpp | 290 - ACE/ace/ATM_Stream.h | 107 - ACE/ace/ATM_Stream.inl | 133 - ACE/ace/Acceptor.cpp | 1226 -- ACE/ace/Acceptor.h | 684 - ACE/ace/Activation_Queue.cpp | 138 - ACE/ace/Activation_Queue.h | 173 - ACE/ace/Activation_Queue.inl | 31 - ACE/ace/Active_Map_Manager.cpp | 9 - ACE/ace/Active_Map_Manager.h | 116 - ACE/ace/Active_Map_Manager.inl | 95 - ACE/ace/Active_Map_Manager_T.cpp | 22 - ACE/ace/Active_Map_Manager_T.h | 211 - ACE/ace/Active_Map_Manager_T.inl | 311 - ACE/ace/Addr.cpp | 73 - ACE/ace/Addr.h | 104 - ACE/ace/Addr.inl | 61 - ACE/ace/Arg_Shifter.cpp | 230 - ACE/ace/Arg_Shifter.h | 221 - ACE/ace/Argv_Type_Converter.cpp | 204 - ACE/ace/Argv_Type_Converter.h | 119 - ACE/ace/Argv_Type_Converter.inl | 44 - ACE/ace/Array.h | 29 - ACE/ace/Array_Base.cpp | 235 - ACE/ace/Array_Base.h | 256 - ACE/ace/Array_Base.inl | 146 - ACE/ace/Array_Map.cpp | 299 - ACE/ace/Array_Map.h | 300 - ACE/ace/Array_Map.inl | 133 - ACE/ace/Assert.cpp | 24 - ACE/ace/Assert.h | 38 - ACE/ace/Asynch_Acceptor.cpp | 516 - ACE/ace/Asynch_Acceptor.h | 281 - ACE/ace/Asynch_Connector.cpp | 296 - ACE/ace/Asynch_Connector.h | 171 - ACE/ace/Asynch_IO.cpp | 1411 -- ACE/ace/Asynch_IO.h | 1690 -- ACE/ace/Asynch_IO_Impl.cpp | 117 - ACE/ace/Asynch_IO_Impl.h | 816 - ACE/ace/Asynch_IO_Impl.inl | 106 - ACE/ace/Asynch_Pseudo_Task.cpp | 130 - ACE/ace/Asynch_Pseudo_Task.h | 73 - ACE/ace/Atomic_Op.cpp | 310 - ACE/ace/Atomic_Op.h | 260 - ACE/ace/Atomic_Op.inl | 335 - ACE/ace/Atomic_Op_Sparc.c | 187 - ACE/ace/Atomic_Op_Sparc.h | 14 - ACE/ace/Atomic_Op_T.cpp | 82 - ACE/ace/Atomic_Op_T.h | 369 - ACE/ace/Atomic_Op_T.inl | 340 - ACE/ace/Auto_Event.cpp | 49 - ACE/ace/Auto_Event.h | 73 - ACE/ace/Auto_Event.inl | 12 - ACE/ace/Auto_Functor.cpp | 39 - ACE/ace/Auto_Functor.h | 127 - ACE/ace/Auto_Functor.inl | 134 - ACE/ace/Auto_IncDec_T.cpp | 34 - ACE/ace/Auto_IncDec_T.h | 91 - ACE/ace/Auto_IncDec_T.inl | 25 - ACE/ace/Auto_Ptr.cpp | 21 - ACE/ace/Auto_Ptr.h | 242 - ACE/ace/Auto_Ptr.inl | 171 - ACE/ace/Barrier.cpp | 197 - ACE/ace/Barrier.h | 215 - ACE/ace/Barrier.inl | 22 - ACE/ace/Base_Thread_Adapter.cpp | 120 - ACE/ace/Base_Thread_Adapter.h | 186 - ACE/ace/Base_Thread_Adapter.inl | 48 - ACE/ace/Based_Pointer_Repository.cpp | 119 - ACE/ace/Based_Pointer_Repository.h | 91 - ACE/ace/Based_Pointer_T.cpp | 121 - ACE/ace/Based_Pointer_T.h | 205 - ACE/ace/Based_Pointer_T.inl | 139 - ACE/ace/Basic_Stats.cpp | 78 - ACE/ace/Basic_Stats.h | 87 - ACE/ace/Basic_Stats.inl | 53 - ACE/ace/Basic_Types.cpp | 139 - ACE/ace/Basic_Types.h | 890 - ACE/ace/Basic_Types.inl | 954 - ACE/ace/Bound_Ptr.h | 388 - ACE/ace/Bound_Ptr.inl | 494 - ACE/ace/CDR_Base.cpp | 799 - ACE/ace/CDR_Base.h | 353 - ACE/ace/CDR_Base.inl | 255 - ACE/ace/CDR_Size.cpp | 244 - ACE/ace/CDR_Size.h | 241 - ACE/ace/CDR_Size.inl | 424 - ACE/ace/CDR_Stream.cpp | 1892 -- ACE/ace/CDR_Stream.h | 1364 -- ACE/ace/CDR_Stream.inl | 1700 -- ACE/ace/CE_Screen_Output.cpp | 158 - ACE/ace/CE_Screen_Output.h | 109 - ACE/ace/CORBA_macros.h | 575 - ACE/ace/Cache_Map_Manager_T.cpp | 420 - ACE/ace/Cache_Map_Manager_T.h | 405 - ACE/ace/Cache_Map_Manager_T.inl | 245 - ACE/ace/Cached_Connect_Strategy_T.cpp | 734 - ACE/ace/Cached_Connect_Strategy_T.h | 262 - ACE/ace/Caching_Strategies_T.cpp | 59 - ACE/ace/Caching_Strategies_T.h | 552 - ACE/ace/Caching_Strategies_T.inl | 456 - ACE/ace/Caching_Utility_T.cpp | 499 - ACE/ace/Caching_Utility_T.h | 347 - ACE/ace/Capabilities.cpp | 355 - ACE/ace/Capabilities.h | 221 - ACE/ace/Capabilities.inl | 52 - ACE/ace/Cleanup.cpp | 192 - ACE/ace/Cleanup.h | 137 - ACE/ace/Cleanup.inl | 12 - ACE/ace/Cleanup_Strategies_T.cpp | 95 - ACE/ace/Cleanup_Strategies_T.h | 155 - ACE/ace/Codecs.cpp | 234 - ACE/ace/Codecs.h | 121 - ACE/ace/Codeset_IBM1047.cpp | 312 - ACE/ace/Codeset_IBM1047.h | 128 - ACE/ace/Codeset_Registry.cpp | 111 - ACE/ace/Codeset_Registry.h | 104 - ACE/ace/Codeset_Registry.inl | 102 - ACE/ace/Codeset_Registry_db.cpp | 29 - ACE/ace/Codeset_Symbols.h | 220 - ACE/ace/Condition_Recursive_Thread_Mutex.cpp | 129 - ACE/ace/Condition_Recursive_Thread_Mutex.h | 118 - ACE/ace/Condition_T.cpp | 123 - ACE/ace/Condition_T.h | 167 - ACE/ace/Condition_T.inl | 51 - ACE/ace/Condition_Thread_Mutex.cpp | 126 - ACE/ace/Condition_Thread_Mutex.h | 190 - ACE/ace/Condition_Thread_Mutex.inl | 74 - ACE/ace/Configuration.cpp | 2148 -- ACE/ace/Configuration.h | 896 - ACE/ace/Configuration.inl | 13 - ACE/ace/Configuration_Import_Export.cpp | 670 - ACE/ace/Configuration_Import_Export.h | 215 - ACE/ace/Connection_Recycling_Strategy.cpp | 13 - ACE/ace/Connection_Recycling_Strategy.h | 63 - ACE/ace/Connector.cpp | 964 - ACE/ace/Connector.h | 563 - ACE/ace/Containers.cpp | 12 - ACE/ace/Containers.h | 71 - ACE/ace/Containers.inl | 25 - ACE/ace/Containers_T.cpp | 1930 -- ACE/ace/Containers_T.h | 2024 -- ACE/ace/Containers_T.inl | 479 - ACE/ace/Copy_Disabled.cpp | 23 - ACE/ace/Copy_Disabled.h | 65 - ACE/ace/Countdown_Time.cpp | 66 - ACE/ace/Countdown_Time.h | 80 - ACE/ace/DEV.cpp | 43 - ACE/ace/DEV.h | 78 - ACE/ace/DEV.inl | 18 - ACE/ace/DEV_Addr.cpp | 108 - ACE/ace/DEV_Addr.h | 90 - ACE/ace/DEV_Addr.inl | 51 - ACE/ace/DEV_Connector.cpp | 53 - ACE/ace/DEV_Connector.h | 110 - ACE/ace/DEV_Connector.inl | 34 - ACE/ace/DEV_IO.cpp | 131 - ACE/ace/DEV_IO.h | 185 - ACE/ace/DEV_IO.inl | 126 - ACE/ace/DLL.cpp | 267 - ACE/ace/DLL.h | 196 - ACE/ace/DLL_Manager.cpp | 787 - ACE/ace/DLL_Manager.h | 269 - ACE/ace/Date_Time.cpp | 10 - ACE/ace/Date_Time.h | 125 - ACE/ace/Date_Time.inl | 219 - ACE/ace/Default_Constants.h | 573 - ACE/ace/Dev_Poll_Reactor.cpp | 2513 --- ACE/ace/Dev_Poll_Reactor.h | 1252 -- ACE/ace/Dev_Poll_Reactor.inl | 228 - ACE/ace/Dirent.cpp | 7 - ACE/ace/Dirent.h | 122 - ACE/ace/Dirent.inl | 99 - ACE/ace/Dirent_Selector.cpp | 59 - ACE/ace/Dirent_Selector.h | 75 - ACE/ace/Dirent_Selector.inl | 19 - ACE/ace/Dump.cpp | 141 - ACE/ace/Dump.h | 172 - ACE/ace/Dump_T.cpp | 48 - ACE/ace/Dump_T.h | 82 - ACE/ace/Dynamic.cpp | 34 - ACE/ace/Dynamic.h | 75 - ACE/ace/Dynamic.inl | 34 - ACE/ace/Dynamic_Message_Strategy.cpp | 205 - ACE/ace/Dynamic_Message_Strategy.h | 217 - ACE/ace/Dynamic_Message_Strategy.inl | 75 - ACE/ace/Dynamic_Service.cpp | 63 - ACE/ace/Dynamic_Service.h | 89 - ACE/ace/Dynamic_Service.inl | 40 - ACE/ace/Dynamic_Service_Base.cpp | 101 - ACE/ace/Dynamic_Service_Base.h | 74 - ACE/ace/Dynamic_Service_Dependency.cpp | 51 - ACE/ace/Dynamic_Service_Dependency.h | 70 - ACE/ace/Encoding_Converter.cpp | 12 - ACE/ace/Encoding_Converter.h | 70 - ACE/ace/Encoding_Converter_Factory.cpp | 74 - ACE/ace/Encoding_Converter_Factory.h | 54 - ACE/ace/Env_Value_T.cpp | 12 - ACE/ace/Env_Value_T.h | 166 - ACE/ace/Env_Value_T.inl | 60 - ACE/ace/Event.cpp | 93 - ACE/ace/Event.h | 143 - ACE/ace/Event.inl | 18 - ACE/ace/Event_Handler.cpp | 396 - ACE/ace/Event_Handler.h | 388 - ACE/ace/Event_Handler.inl | 12 - ACE/ace/Event_Handler_T.cpp | 125 - ACE/ace/Event_Handler_T.h | 191 - ACE/ace/Event_Handler_T.inl | 135 - ACE/ace/Exception_Macros.h | 55 - ACE/ace/FIFO.cpp | 78 - ACE/ace/FIFO.h | 85 - ACE/ace/FIFO.inl | 25 - ACE/ace/FIFO_Recv.cpp | 88 - ACE/ace/FIFO_Recv.h | 85 - ACE/ace/FIFO_Recv.inl | 24 - ACE/ace/FIFO_Recv_Msg.cpp | 67 - ACE/ace/FIFO_Recv_Msg.h | 138 - ACE/ace/FIFO_Recv_Msg.inl | 111 - ACE/ace/FIFO_Send.cpp | 58 - ACE/ace/FIFO_Send.h | 75 - ACE/ace/FIFO_Send.inl | 24 - ACE/ace/FIFO_Send_Msg.cpp | 80 - ACE/ace/FIFO_Send_Msg.h | 91 - ACE/ace/FIFO_Send_Msg.inl | 53 - ACE/ace/FILE.cpp | 147 - ACE/ace/FILE.h | 139 - ACE/ace/FILE.inl | 18 - ACE/ace/FILE_Addr.cpp | 124 - ACE/ace/FILE_Addr.h | 89 - ACE/ace/FILE_Addr.inl | 34 - ACE/ace/FILE_Connector.cpp | 84 - ACE/ace/FILE_Connector.h | 113 - ACE/ace/FILE_Connector.inl | 36 - ACE/ace/FILE_IO.cpp | 142 - ACE/ace/FILE_IO.h | 170 - ACE/ace/FILE_IO.inl | 152 - ACE/ace/File_Lock.cpp | 72 - ACE/ace/File_Lock.h | 170 - ACE/ace/File_Lock.inl | 96 - ACE/ace/Filecache.cpp | 754 - ACE/ace/Filecache.h | 353 - ACE/ace/FlReactor/ACE_FlReactor.pc.in | 11 - ACE/ace/FlReactor/ACE_FlReactor_export.h | 58 - ACE/ace/FlReactor/FlReactor.cpp | 330 - ACE/ace/FlReactor/FlReactor.h | 110 - ACE/ace/Flag_Manip.cpp | 95 - ACE/ace/Flag_Manip.h | 58 - ACE/ace/Flag_Manip.inl | 26 - ACE/ace/FoxReactor/ACE_FoxReactor.pc.in | 11 - ACE/ace/FoxReactor/ACE_FoxReactor_export.h | 58 - ACE/ace/FoxReactor/FoxReactor.cpp | 337 - ACE/ace/FoxReactor/FoxReactor.h | 115 - ACE/ace/Framework_Component.cpp | 280 - ACE/ace/Framework_Component.h | 210 - ACE/ace/Framework_Component.inl | 39 - ACE/ace/Framework_Component_T.cpp | 33 - ACE/ace/Framework_Component_T.h | 71 - ACE/ace/Free_List.cpp | 157 - ACE/ace/Free_List.h | 150 - ACE/ace/Functor.cpp | 43 - ACE/ace/Functor.h | 593 - ACE/ace/Functor.inl | 284 - ACE/ace/Functor_String.cpp | 7 - ACE/ace/Functor_String.h | 141 - ACE/ace/Functor_String.inl | 56 - ACE/ace/Functor_T.cpp | 49 - ACE/ace/Functor_T.h | 158 - ACE/ace/Functor_T.inl | 42 - ACE/ace/Future.cpp | 436 - ACE/ace/Future.h | 387 - ACE/ace/Future_Set.cpp | 136 - ACE/ace/Future_Set.h | 146 - ACE/ace/Get_Opt.cpp | 730 - ACE/ace/Get_Opt.h | 474 - ACE/ace/Get_Opt.inl | 43 - ACE/ace/Global_Macros.h | 1133 -- ACE/ace/Guard_T.cpp | 61 - ACE/ace/Guard_T.h | 365 - ACE/ace/Guard_T.inl | 170 - ACE/ace/Handle_Gobbler.h | 68 - ACE/ace/Handle_Gobbler.inl | 78 - ACE/ace/Handle_Ops.cpp | 48 - ACE/ace/Handle_Ops.h | 50 - ACE/ace/Handle_Set.cpp | 570 - ACE/ace/Handle_Set.h | 240 - ACE/ace/Handle_Set.inl | 193 - ACE/ace/Hash_Cache_Map_Manager_T.cpp | 232 - ACE/ace/Hash_Cache_Map_Manager_T.h | 214 - ACE/ace/Hash_Cache_Map_Manager_T.inl | 73 - ACE/ace/Hash_Map_Manager.h | 31 - ACE/ace/Hash_Map_Manager_T.cpp | 530 - ACE/ace/Hash_Map_Manager_T.h | 1274 -- ACE/ace/Hash_Map_Manager_T.inl | 1253 -- ACE/ace/Hash_Map_With_Allocator_T.cpp | 35 - ACE/ace/Hash_Map_With_Allocator_T.h | 112 - ACE/ace/Hash_Map_With_Allocator_T.inl | 82 - ACE/ace/Hash_Multi_Map_Manager_T.cpp | 605 - ACE/ace/Hash_Multi_Map_Manager_T.h | 967 - ACE/ace/Hash_Multi_Map_Manager_T.inl | 994 - ACE/ace/Hashable.cpp | 36 - ACE/ace/Hashable.h | 65 - ACE/ace/Hashable.inl | 14 - ACE/ace/High_Res_Timer.cpp | 537 - ACE/ace/High_Res_Timer.h | 315 - ACE/ace/High_Res_Timer.inl | 154 - ACE/ace/ICMP_Socket.cpp | 186 - ACE/ace/ICMP_Socket.h | 110 - ACE/ace/INET_Addr.cpp | 1168 -- ACE/ace/INET_Addr.h | 399 - ACE/ace/INET_Addr.inl | 257 - ACE/ace/IOStream.cpp | 665 - ACE/ace/IOStream.h | 512 - ACE/ace/IOStream_T.cpp | 247 - ACE/ace/IOStream_T.h | 297 - ACE/ace/IOStream_T.inl | 123 - ACE/ace/IO_Cntl_Msg.cpp | 51 - ACE/ace/IO_Cntl_Msg.h | 112 - ACE/ace/IO_Cntl_Msg.inl | 61 - ACE/ace/IO_SAP.cpp | 142 - ACE/ace/IO_SAP.h | 96 - ACE/ace/IO_SAP.inl | 42 - ACE/ace/IPC_SAP.cpp | 193 - ACE/ace/IPC_SAP.h | 96 - ACE/ace/IPC_SAP.inl | 40 - ACE/ace/If_Then_Else.h | 89 - ACE/ace/Init_ACE.cpp | 45 - ACE/ace/Init_ACE.h | 62 - ACE/ace/Intrusive_List.cpp | 153 - ACE/ace/Intrusive_List.h | 144 - ACE/ace/Intrusive_List.inl | 40 - ACE/ace/Intrusive_List_Node.cpp | 27 - ACE/ace/Intrusive_List_Node.h | 85 - ACE/ace/Intrusive_List_Node.inl | 31 - ACE/ace/LOCK_SOCK_Acceptor.cpp | 35 - ACE/ace/LOCK_SOCK_Acceptor.h | 67 - ACE/ace/LSOCK.cpp | 181 - ACE/ace/LSOCK.h | 84 - ACE/ace/LSOCK.inl | 43 - ACE/ace/LSOCK_Acceptor.cpp | 143 - ACE/ace/LSOCK_Acceptor.h | 95 - ACE/ace/LSOCK_CODgram.cpp | 62 - ACE/ace/LSOCK_CODgram.h | 78 - ACE/ace/LSOCK_CODgram.inl | 30 - ACE/ace/LSOCK_Connector.cpp | 59 - ACE/ace/LSOCK_Connector.h | 91 - ACE/ace/LSOCK_Connector.inl | 27 - ACE/ace/LSOCK_Dgram.cpp | 71 - ACE/ace/LSOCK_Dgram.h | 74 - ACE/ace/LSOCK_Dgram.inl | 22 - ACE/ace/LSOCK_Stream.cpp | 137 - ACE/ace/LSOCK_Stream.h | 82 - ACE/ace/LSOCK_Stream.inl | 25 - ACE/ace/Lib_Find.cpp | 769 - ACE/ace/Lib_Find.h | 131 - ACE/ace/Local_Memory_Pool.cpp | 144 - ACE/ace/Local_Memory_Pool.h | 133 - ACE/ace/Local_Name_Space.cpp | 169 - ACE/ace/Local_Name_Space.h | 132 - ACE/ace/Local_Name_Space_T.cpp | 966 - ACE/ace/Local_Name_Space_T.h | 280 - ACE/ace/Local_Tokens.cpp | 1623 -- ACE/ace/Local_Tokens.h | 1121 -- ACE/ace/Local_Tokens.inl | 289 - ACE/ace/Lock.cpp | 88 - ACE/ace/Lock.h | 161 - ACE/ace/Lock.inl | 12 - ACE/ace/Lock_Adapter_T.cpp | 117 - ACE/ace/Lock_Adapter_T.h | 123 - ACE/ace/Lock_Adapter_T.inl | 16 - ACE/ace/Log_Msg.cpp | 2510 --- ACE/ace/Log_Msg.h | 746 - ACE/ace/Log_Msg.inl | 235 - ACE/ace/Log_Msg_Backend.cpp | 14 - ACE/ace/Log_Msg_Backend.h | 88 - ACE/ace/Log_Msg_Callback.cpp | 13 - ACE/ace/Log_Msg_Callback.h | 69 - ACE/ace/Log_Msg_IPC.cpp | 111 - ACE/ace/Log_Msg_IPC.h | 79 - ACE/ace/Log_Msg_NT_Event_Log.cpp | 162 - ACE/ace/Log_Msg_NT_Event_Log.h | 72 - ACE/ace/Log_Msg_UNIX_Syslog.cpp | 207 - ACE/ace/Log_Msg_UNIX_Syslog.h | 76 - ACE/ace/Log_Priority.h | 85 - ACE/ace/Log_Record.cpp | 412 - ACE/ace/Log_Record.h | 223 - ACE/ace/Log_Record.inl | 123 - ACE/ace/Logging_Strategy.cpp | 566 - ACE/ace/Logging_Strategy.h | 195 - ACE/ace/MEM_Acceptor.cpp | 265 - ACE/ace/MEM_Acceptor.h | 192 - ACE/ace/MEM_Acceptor.inl | 103 - ACE/ace/MEM_Addr.cpp | 170 - ACE/ace/MEM_Addr.h | 155 - ACE/ace/MEM_Addr.inl | 111 - ACE/ace/MEM_Connector.cpp | 149 - ACE/ace/MEM_Connector.h | 179 - ACE/ace/MEM_Connector.inl | 30 - ACE/ace/MEM_IO.cpp | 541 - ACE/ace/MEM_IO.h | 310 - ACE/ace/MEM_IO.inl | 233 - ACE/ace/MEM_SAP.cpp | 97 - ACE/ace/MEM_SAP.h | 169 - ACE/ace/MEM_SAP.inl | 64 - ACE/ace/MEM_Stream.cpp | 47 - ACE/ace/MEM_Stream.h | 158 - ACE/ace/MEM_Stream.inl | 180 - ACE/ace/MMAP_Memory_Pool.cpp | 578 - ACE/ace/MMAP_Memory_Pool.h | 327 - ACE/ace/MMAP_Memory_Pool.inl | 21 - ACE/ace/Makefile.am | 1419 -- ACE/ace/Malloc.cpp | 187 - ACE/ace/Malloc.h | 396 - ACE/ace/Malloc.inl | 26 - ACE/ace/Malloc_Allocator.cpp | 361 - ACE/ace/Malloc_Allocator.h | 146 - ACE/ace/Malloc_Allocator.inl | 16 - ACE/ace/Malloc_Base.h | 168 - ACE/ace/Malloc_T.cpp | 1262 -- ACE/ace/Malloc_T.h | 931 - ACE/ace/Malloc_T.inl | 184 - ACE/ace/Managed_Object.cpp | 25 - ACE/ace/Managed_Object.h | 168 - ACE/ace/Managed_Object.inl | 23 - ACE/ace/Manual_Event.cpp | 48 - ACE/ace/Manual_Event.h | 74 - ACE/ace/Manual_Event.inl | 12 - ACE/ace/Map.h | 32 - ACE/ace/Map_Manager.cpp | 701 - ACE/ace/Map_Manager.h | 719 - ACE/ace/Map_Manager.inl | 729 - ACE/ace/Map_T.cpp | 1343 -- ACE/ace/Map_T.h | 1611 -- ACE/ace/Map_T.inl | 415 - ACE/ace/Mem_Map.cpp | 310 - ACE/ace/Mem_Map.h | 235 - ACE/ace/Mem_Map.inl | 238 - ACE/ace/Memory_Pool.h | 31 - ACE/ace/Message_Block.cpp | 1273 -- ACE/ace/Message_Block.h | 871 - ACE/ace/Message_Block.inl | 508 - ACE/ace/Message_Block_T.cpp | 54 - ACE/ace/Message_Block_T.h | 88 - ACE/ace/Message_Block_T.inl | 31 - ACE/ace/Message_Queue.cpp | 28 - ACE/ace/Message_Queue.h | 237 - ACE/ace/Message_Queue.inl | 12 - ACE/ace/Message_Queue_NT.cpp | 237 - ACE/ace/Message_Queue_NT.h | 231 - ACE/ace/Message_Queue_NT.inl | 131 - ACE/ace/Message_Queue_T.cpp | 2814 --- ACE/ace/Message_Queue_T.h | 1476 -- ACE/ace/Message_Queue_Vx.cpp | 368 - ACE/ace/Message_Queue_Vx.h | 227 - ACE/ace/Message_Queue_Vx.inl | 19 - ACE/ace/Method_Object.h | 38 - ACE/ace/Method_Request.cpp | 30 - ACE/ace/Method_Request.h | 100 - ACE/ace/Metrics_Cache.h | 140 - ACE/ace/Metrics_Cache_T.cpp | 237 - ACE/ace/Metrics_Cache_T.h | 243 - ACE/ace/Metrics_Cache_T.inl | 240 - ACE/ace/Min_Max.h | 70 - ACE/ace/Module.cpp | 273 - ACE/ace/Module.h | 215 - ACE/ace/Module.inl | 65 - ACE/ace/Msg_WFMO_Reactor.cpp | 85 - ACE/ace/Msg_WFMO_Reactor.h | 120 - ACE/ace/Msg_WFMO_Reactor.inl | 35 - ACE/ace/Multihomed_INET_Addr.cpp | 300 - ACE/ace/Multihomed_INET_Addr.h | 198 - ACE/ace/Multihomed_INET_Addr.inl | 15 - ACE/ace/Mutex.cpp | 125 - ACE/ace/Mutex.h | 192 - ACE/ace/Mutex.inl | 175 - ACE/ace/NT_Service.cpp | 618 - ACE/ace/NT_Service.h | 439 - ACE/ace/NT_Service.inl | 85 - ACE/ace/Name_Proxy.cpp | 209 - ACE/ace/Name_Proxy.h | 101 - ACE/ace/Name_Request_Reply.cpp | 577 - ACE/ace/Name_Request_Reply.h | 265 - ACE/ace/Name_Space.cpp | 73 - ACE/ace/Name_Space.h | 165 - ACE/ace/Naming_Context.cpp | 647 - ACE/ace/Naming_Context.h | 387 - ACE/ace/Naming_Context.inl | 44 - ACE/ace/Netlink_Addr.cpp | 68 - ACE/ace/Netlink_Addr.h | 120 - ACE/ace/Netlink_Addr.inl | 51 - ACE/ace/Node.cpp | 46 - ACE/ace/Node.h | 85 - ACE/ace/Notification_Queue.cpp | 222 - ACE/ace/Notification_Queue.h | 156 - ACE/ace/Notification_Queue.inl | 47 - ACE/ace/Notification_Strategy.cpp | 22 - ACE/ace/Notification_Strategy.h | 75 - ACE/ace/Notification_Strategy.inl | 31 - ACE/ace/Null_Barrier.h | 59 - ACE/ace/Null_Condition.h | 85 - ACE/ace/Null_Mutex.h | 232 - ACE/ace/Null_Semaphore.h | 105 - ACE/ace/Numeric_Limits.h | 270 - ACE/ace/OS.cpp | 53 - ACE/ace/OS.h | 329 - ACE/ace/OS.inl | 93 - ACE/ace/OS_Dirent.h | 32 - ACE/ace/OS_Errno.cpp | 47 - ACE/ace/OS_Errno.h | 101 - ACE/ace/OS_Errno.inl | 67 - ACE/ace/OS_Log_Msg_Attributes.cpp | 9 - ACE/ace/OS_Log_Msg_Attributes.h | 90 - ACE/ace/OS_Log_Msg_Attributes.inl | 12 - ACE/ace/OS_Memory.h | 338 - ACE/ace/OS_NS_Thread.cpp | 5328 ----- ACE/ace/OS_NS_Thread.h | 2026 -- ACE/ace/OS_NS_Thread.inl | 3636 ---- ACE/ace/OS_NS_arpa_inet.cpp | 53 - ACE/ace/OS_NS_arpa_inet.h | 74 - ACE/ace/OS_NS_arpa_inet.inl | 98 - ACE/ace/OS_NS_ctype.cpp | 11 - ACE/ace/OS_NS_ctype.h | 130 - ACE/ace/OS_NS_ctype.inl | 163 - ACE/ace/OS_NS_dirent.cpp | 274 - ACE/ace/OS_NS_dirent.h | 153 - ACE/ace/OS_NS_dirent.inl | 184 - ACE/ace/OS_NS_dlfcn.cpp | 10 - ACE/ace/OS_NS_dlfcn.h | 69 - ACE/ace/OS_NS_dlfcn.inl | 286 - ACE/ace/OS_NS_errno.cpp | 11 - ACE/ace/OS_NS_errno.h | 100 - ACE/ace/OS_NS_errno.inl | 83 - ACE/ace/OS_NS_fcntl.cpp | 245 - ACE/ace/OS_NS_fcntl.h | 83 - ACE/ace/OS_NS_fcntl.inl | 23 - ACE/ace/OS_NS_macros.h | 114 - ACE/ace/OS_NS_math.cpp | 10 - ACE/ace/OS_NS_math.h | 115 - ACE/ace/OS_NS_math.inl | 41 - ACE/ace/OS_NS_netdb.cpp | 421 - ACE/ace/OS_NS_netdb.h | 146 - ACE/ace/OS_NS_netdb.inl | 750 - ACE/ace/OS_NS_poll.cpp | 10 - ACE/ace/OS_NS_poll.h | 66 - ACE/ace/OS_NS_poll.inl | 45 - ACE/ace/OS_NS_pwd.cpp | 10 - ACE/ace/OS_NS_pwd.h | 81 - ACE/ace/OS_NS_pwd.inl | 120 - ACE/ace/OS_NS_regex.cpp | 10 - ACE/ace/OS_NS_regex.h | 65 - ACE/ace/OS_NS_regex.inl | 39 - ACE/ace/OS_NS_signal.cpp | 26 - ACE/ace/OS_NS_signal.h | 153 - ACE/ace/OS_NS_signal.inl | 232 - ACE/ace/OS_NS_stdio.cpp | 456 - ACE/ace/OS_NS_stdio.h | 530 - ACE/ace/OS_NS_stdio.inl | 1224 -- ACE/ace/OS_NS_stdlib.cpp | 801 - ACE/ace/OS_NS_stdlib.h | 313 - ACE/ace/OS_NS_stdlib.inl | 499 - ACE/ace/OS_NS_string.cpp | 377 - ACE/ace/OS_NS_string.h | 471 - ACE/ace/OS_NS_string.inl | 560 - ACE/ace/OS_NS_strings.cpp | 84 - ACE/ace/OS_NS_strings.h | 86 - ACE/ace/OS_NS_strings.inl | 59 - ACE/ace/OS_NS_stropts.cpp | 195 - ACE/ace/OS_NS_stropts.h | 172 - ACE/ace/OS_NS_stropts.inl | 201 - ACE/ace/OS_NS_sys_mman.cpp | 10 - ACE/ace/OS_NS_sys_mman.h | 97 - ACE/ace/OS_NS_sys_mman.inl | 302 - ACE/ace/OS_NS_sys_msg.cpp | 10 - ACE/ace/OS_NS_sys_msg.h | 77 - ACE/ace/OS_NS_sys_msg.inl | 78 - ACE/ace/OS_NS_sys_resource.cpp | 10 - ACE/ace/OS_NS_sys_resource.h | 67 - ACE/ace/OS_NS_sys_resource.inl | 98 - ACE/ace/OS_NS_sys_select.cpp | 10 - ACE/ace/OS_NS_sys_select.h | 77 - ACE/ace/OS_NS_sys_select.inl | 80 - ACE/ace/OS_NS_sys_sendfile.cpp | 53 - ACE/ace/OS_NS_sys_sendfile.h | 65 - ACE/ace/OS_NS_sys_sendfile.inl | 24 - ACE/ace/OS_NS_sys_shm.cpp | 10 - ACE/ace/OS_NS_sys_shm.h | 74 - ACE/ace/OS_NS_sys_shm.inl | 76 - ACE/ace/OS_NS_sys_socket.cpp | 161 - ACE/ace/OS_NS_sys_socket.h | 302 - ACE/ace/OS_NS_sys_socket.inl | 993 - ACE/ace/OS_NS_sys_stat.cpp | 10 - ACE/ace/OS_NS_sys_stat.h | 149 - ACE/ace/OS_NS_sys_stat.inl | 292 - ACE/ace/OS_NS_sys_time.cpp | 10 - ACE/ace/OS_NS_sys_time.h | 69 - ACE/ace/OS_NS_sys_time.inl | 96 - ACE/ace/OS_NS_sys_uio.cpp | 130 - ACE/ace/OS_NS_sys_uio.h | 80 - ACE/ace/OS_NS_sys_uio.inl | 55 - ACE/ace/OS_NS_sys_utsname.cpp | 237 - ACE/ace/OS_NS_sys_utsname.h | 71 - ACE/ace/OS_NS_sys_wait.cpp | 9 - ACE/ace/OS_NS_sys_wait.h | 87 - ACE/ace/OS_NS_sys_wait.inl | 105 - ACE/ace/OS_NS_time.cpp | 634 - ACE/ace/OS_NS_time.h | 288 - ACE/ace/OS_NS_time.inl | 505 - ACE/ace/OS_NS_unistd.cpp | 859 - ACE/ace/OS_NS_unistd.h | 375 - ACE/ace/OS_NS_unistd.inl | 1193 -- ACE/ace/OS_NS_wchar.cpp | 377 - ACE/ace/OS_NS_wchar.h | 199 - ACE/ace/OS_NS_wchar.inl | 87 - ACE/ace/OS_QoS.cpp | 476 - ACE/ace/OS_QoS.h | 449 - ACE/ace/OS_String.h | 32 - ACE/ace/OS_TLI.cpp | 9 - ACE/ace/OS_TLI.h | 285 - ACE/ace/OS_TLI.inl | 390 - ACE/ace/OS_Thread_Adapter.cpp | 153 - ACE/ace/OS_Thread_Adapter.h | 72 - ACE/ace/OS_main.cpp | 127 - ACE/ace/OS_main.h | 303 - ACE/ace/Obchunk.cpp | 36 - ACE/ace/Obchunk.h | 77 - ACE/ace/Obchunk.inl | 12 - ACE/ace/Object_Manager.cpp | 888 - ACE/ace/Object_Manager.h | 466 - ACE/ace/Object_Manager.inl | 40 - ACE/ace/Object_Manager_Base.cpp | 506 - ACE/ace/Object_Manager_Base.h | 248 - ACE/ace/Obstack.h | 31 - ACE/ace/Obstack_T.cpp | 226 - ACE/ace/Obstack_T.h | 134 - ACE/ace/Obstack_T.inl | 19 - ACE/ace/PI_Malloc.cpp | 165 - ACE/ace/PI_Malloc.h | 213 - ACE/ace/PI_Malloc.inl | 33 - ACE/ace/POSIX_Asynch_IO.cpp | 2416 --- ACE/ace/POSIX_Asynch_IO.h | 1302 -- ACE/ace/POSIX_CB_Proactor.cpp | 185 - ACE/ace/POSIX_CB_Proactor.h | 97 - ACE/ace/POSIX_Proactor.cpp | 2064 -- ACE/ace/POSIX_Proactor.h | 659 - ACE/ace/POSIX_Proactor.inl | 13 - ACE/ace/Pagefile_Memory_Pool.cpp | 384 - ACE/ace/Pagefile_Memory_Pool.h | 201 - ACE/ace/Pagefile_Memory_Pool.inl | 54 - ACE/ace/Pair.h | 32 - ACE/ace/Pair_T.cpp | 16 - ACE/ace/Pair_T.h | 129 - ACE/ace/Pair_T.inl | 90 - ACE/ace/Parse_Node.cpp | 838 - ACE/ace/Parse_Node.h | 522 - ACE/ace/Ping_Socket.cpp | 377 - ACE/ace/Ping_Socket.h | 119 - ACE/ace/Ping_Socket.inl | 13 - ACE/ace/Pipe.cpp | 360 - ACE/ace/Pipe.h | 165 - ACE/ace/Pipe.inl | 188 - ACE/ace/Priority_Reactor.cpp | 188 - ACE/ace/Priority_Reactor.h | 100 - ACE/ace/Proactor.cpp | 1177 -- ACE/ace/Proactor.h | 691 - ACE/ace/Proactor.inl | 80 - ACE/ace/Proactor_Impl.cpp | 21 - ACE/ace/Proactor_Impl.h | 265 - ACE/ace/Process.cpp | 1275 -- ACE/ace/Process.h | 617 - ACE/ace/Process.inl | 412 - ACE/ace/Process_Manager.cpp | 1015 - ACE/ace/Process_Manager.h | 478 - ACE/ace/Process_Manager.inl | 13 - ACE/ace/Process_Mutex.cpp | 90 - ACE/ace/Process_Mutex.h | 216 - ACE/ace/Process_Mutex.inl | 118 - ACE/ace/Process_Semaphore.cpp | 111 - ACE/ace/Process_Semaphore.h | 161 - ACE/ace/Process_Semaphore.inl | 66 - ACE/ace/Profile_Timer.cpp | 438 - ACE/ace/Profile_Timer.h | 139 - ACE/ace/Profile_Timer.inl | 129 - ACE/ace/QoS/ACE_QoS.pc.in | 11 - ACE/ace/QoS/ACE_QoS_Export.h | 46 - ACE/ace/QoS/Makefile.am | 74 - ACE/ace/QoS/QoS_Decorator.cpp | 165 - ACE/ace/QoS/QoS_Decorator.h | 179 - ACE/ace/QoS/QoS_Manager.cpp | 41 - ACE/ace/QoS/QoS_Manager.h | 74 - ACE/ace/QoS/QoS_Session.h | 183 - ACE/ace/QoS/QoS_Session_Factory.cpp | 105 - ACE/ace/QoS/QoS_Session_Factory.h | 96 - ACE/ace/QoS/QoS_Session_Impl.cpp | 718 - ACE/ace/QoS/QoS_Session_Impl.h | 265 - ACE/ace/QoS/QoS_Session_Impl.inl | 229 - ACE/ace/QoS/README | 55 - ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp | 258 - ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.h | 142 - ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.inl | 57 - ACE/ace/QoS/qos.mpc | 17 - ACE/ace/QtReactor/ACE_QtReactor.pc.in | 11 - ACE/ace/QtReactor/ACE_QtReactor_export.h | 58 - ACE/ace/QtReactor/QtReactor.cpp | 644 - ACE/ace/QtReactor/QtReactor.h | 231 - ACE/ace/RB_Tree.cpp | 1204 -- ACE/ace/RB_Tree.h | 904 - ACE/ace/RB_Tree.inl | 1169 -- ACE/ace/README | 1876 -- ACE/ace/RW_Mutex.cpp | 55 - ACE/ace/RW_Mutex.h | 141 - ACE/ace/RW_Mutex.inl | 83 - ACE/ace/RW_Process_Mutex.cpp | 54 - ACE/ace/RW_Process_Mutex.h | 133 - ACE/ace/RW_Process_Mutex.inl | 77 - ACE/ace/RW_Thread_Mutex.cpp | 45 - ACE/ace/RW_Thread_Mutex.h | 74 - ACE/ace/RW_Thread_Mutex.inl | 19 - ACE/ace/Reactor.cpp | 512 - ACE/ace/Reactor.h | 875 - ACE/ace/Reactor.inl | 498 - ACE/ace/Reactor_Impl.cpp | 15 - ACE/ace/Reactor_Impl.h | 569 - ACE/ace/Reactor_Notification_Strategy.cpp | 38 - ACE/ace/Reactor_Notification_Strategy.h | 66 - ACE/ace/Reactor_Notification_Strategy.inl | 19 - ACE/ace/Reactor_Timer_Interface.cpp | 16 - ACE/ace/Reactor_Timer_Interface.h | 60 - ACE/ace/Reactor_Token_T.cpp | 70 - ACE/ace/Reactor_Token_T.h | 93 - ACE/ace/Read_Buffer.cpp | 176 - ACE/ace/Read_Buffer.h | 129 - ACE/ace/Read_Buffer.inl | 32 - ACE/ace/Recursive_Thread_Mutex.cpp | 125 - ACE/ace/Recursive_Thread_Mutex.h | 194 - ACE/ace/Recursive_Thread_Mutex.inl | 95 - ACE/ace/Recyclable.cpp | 22 - ACE/ace/Recyclable.h | 79 - ACE/ace/Recyclable.inl | 20 - ACE/ace/Refcountable.cpp | 20 - ACE/ace/Refcountable.h | 58 - ACE/ace/Refcountable.inl | 31 - ACE/ace/Refcounted_Auto_Ptr.cpp | 18 - ACE/ace/Refcounted_Auto_Ptr.h | 199 - ACE/ace/Refcounted_Auto_Ptr.inl | 190 - ACE/ace/Registry.cpp | 1127 -- ACE/ace/Registry.h | 559 - ACE/ace/Registry_Name_Space.cpp | 293 - ACE/ace/Registry_Name_Space.h | 140 - ACE/ace/Remote_Name_Space.cpp | 380 - ACE/ace/Remote_Name_Space.h | 147 - ACE/ace/Remote_Tokens.cpp | 527 - ACE/ace/Remote_Tokens.h | 322 - ACE/ace/Remote_Tokens.inl | 48 - ACE/ace/Reverse_Lock_T.cpp | 93 - ACE/ace/Reverse_Lock_T.h | 139 - ACE/ace/Reverse_Lock_T.inl | 19 - ACE/ace/Rtems_init.c | 219 - ACE/ace/SOCK.cpp | 185 - ACE/ace/SOCK.h | 138 - ACE/ace/SOCK.inl | 39 - ACE/ace/SOCK_Acceptor.cpp | 406 - ACE/ace/SOCK_Acceptor.h | 178 - ACE/ace/SOCK_Acceptor.inl | 13 - ACE/ace/SOCK_CODgram.cpp | 112 - ACE/ace/SOCK_CODgram.h | 78 - ACE/ace/SOCK_CODgram.inl | 19 - ACE/ace/SOCK_Connector.cpp | 359 - ACE/ace/SOCK_Connector.h | 321 - ACE/ace/SOCK_Connector.inl | 38 - ACE/ace/SOCK_Dgram.cpp | 750 - ACE/ace/SOCK_Dgram.h | 239 - ACE/ace/SOCK_Dgram.inl | 167 - ACE/ace/SOCK_Dgram_Bcast.cpp | 380 - ACE/ace/SOCK_Dgram_Bcast.h | 140 - ACE/ace/SOCK_Dgram_Bcast.inl | 37 - ACE/ace/SOCK_Dgram_Mcast.cpp | 928 - ACE/ace/SOCK_Dgram_Mcast.h | 384 - ACE/ace/SOCK_Dgram_Mcast.inl | 52 - ACE/ace/SOCK_IO.cpp | 181 - ACE/ace/SOCK_IO.h | 136 - ACE/ace/SOCK_IO.inl | 123 - ACE/ace/SOCK_Netlink.cpp | 113 - ACE/ace/SOCK_Netlink.h | 106 - ACE/ace/SOCK_Netlink.inl | 37 - ACE/ace/SOCK_SEQPACK_Acceptor.cpp | 596 - ACE/ace/SOCK_SEQPACK_Acceptor.h | 190 - ACE/ace/SOCK_SEQPACK_Acceptor.inl | 13 - ACE/ace/SOCK_SEQPACK_Association.cpp | 339 - ACE/ace/SOCK_SEQPACK_Association.h | 202 - ACE/ace/SOCK_SEQPACK_Association.inl | 177 - ACE/ace/SOCK_SEQPACK_Connector.cpp | 443 - ACE/ace/SOCK_SEQPACK_Connector.h | 331 - ACE/ace/SOCK_SEQPACK_Connector.inl | 38 - ACE/ace/SOCK_Stream.cpp | 40 - ACE/ace/SOCK_Stream.h | 184 - ACE/ace/SOCK_Stream.inl | 177 - ACE/ace/SPIPE.cpp | 82 - ACE/ace/SPIPE.h | 116 - ACE/ace/SPIPE.inl | 18 - ACE/ace/SPIPE_Acceptor.cpp | 337 - ACE/ace/SPIPE_Acceptor.h | 168 - ACE/ace/SPIPE_Addr.cpp | 167 - ACE/ace/SPIPE_Addr.h | 122 - ACE/ace/SPIPE_Addr.inl | 59 - ACE/ace/SPIPE_Connector.cpp | 160 - ACE/ace/SPIPE_Connector.h | 118 - ACE/ace/SPIPE_Connector.inl | 15 - ACE/ace/SPIPE_Stream.cpp | 104 - ACE/ace/SPIPE_Stream.h | 171 - ACE/ace/SPIPE_Stream.inl | 275 - ACE/ace/SSL/ACE_SSL.pc.in | 11 - ACE/ace/SSL/Makefile.am | 85 - ACE/ace/SSL/SSL_Asynch_BIO.cpp | 252 - ACE/ace/SSL/SSL_Asynch_BIO.h | 42 - ACE/ace/SSL/SSL_Asynch_Stream.cpp | 1042 - ACE/ace/SSL/SSL_Asynch_Stream.h | 425 - ACE/ace/SSL/SSL_Context.cpp | 636 - ACE/ace/SSL/SSL_Context.h | 384 - ACE/ace/SSL/SSL_Context.inl | 113 - ACE/ace/SSL/SSL_Export.h | 44 - ACE/ace/SSL/SSL_SOCK.cpp | 72 - ACE/ace/SSL/SSL_SOCK.h | 103 - ACE/ace/SSL/SSL_SOCK.inl | 71 - ACE/ace/SSL/SSL_SOCK_Acceptor.cpp | 249 - ACE/ace/SSL/SSL_SOCK_Acceptor.h | 198 - ACE/ace/SSL/SSL_SOCK_Acceptor.inl | 85 - ACE/ace/SSL/SSL_SOCK_Connector.cpp | 411 - ACE/ace/SSL/SSL_SOCK_Connector.h | 318 - ACE/ace/SSL/SSL_SOCK_Connector.inl | 28 - ACE/ace/SSL/SSL_SOCK_Stream.cpp | 583 - ACE/ace/SSL/SSL_SOCK_Stream.h | 321 - ACE/ace/SSL/SSL_SOCK_Stream.inl | 323 - ACE/ace/SSL/ssl.mpc | 13 - ACE/ace/SSL/ssl_for_tao.mpc | 42 - ACE/ace/SSL/sslconf.h | 55 - ACE/ace/SString.cpp | 550 - ACE/ace/SString.h | 499 - ACE/ace/SString.inl | 299 - ACE/ace/SStringfwd.h | 55 - ACE/ace/SUN_Proactor.cpp | 324 - ACE/ace/SUN_Proactor.h | 126 - ACE/ace/SV_Message.cpp | 24 - ACE/ace/SV_Message.h | 67 - ACE/ace/SV_Message.inl | 37 - ACE/ace/SV_Message_Queue.cpp | 44 - ACE/ace/SV_Message_Queue.h | 105 - ACE/ace/SV_Message_Queue.inl | 81 - ACE/ace/SV_Semaphore_Complex.cpp | 259 - ACE/ace/SV_Semaphore_Complex.h | 159 - ACE/ace/SV_Semaphore_Complex.inl | 84 - ACE/ace/SV_Semaphore_Simple.cpp | 237 - ACE/ace/SV_Semaphore_Simple.h | 197 - ACE/ace/SV_Semaphore_Simple.inl | 128 - ACE/ace/SV_Shared_Memory.cpp | 88 - ACE/ace/SV_Shared_Memory.h | 121 - ACE/ace/SV_Shared_Memory.inl | 118 - ACE/ace/Sample_History.cpp | 73 - ACE/ace/Sample_History.h | 91 - ACE/ace/Sample_History.inl | 26 - ACE/ace/Sbrk_Memory_Pool.cpp | 124 - ACE/ace/Sbrk_Memory_Pool.h | 118 - ACE/ace/Sched_Params.cpp | 332 - ACE/ace/Sched_Params.h | 232 - ACE/ace/Sched_Params.inl | 134 - ACE/ace/Select_Reactor.h | 69 - ACE/ace/Select_Reactor_Base.cpp | 1104 - ACE/ace/Select_Reactor_Base.h | 611 - ACE/ace/Select_Reactor_Base.inl | 152 - ACE/ace/Select_Reactor_T.cpp | 1594 -- ACE/ace/Select_Reactor_T.h | 718 - ACE/ace/Select_Reactor_T.inl | 236 - ACE/ace/Semaphore.cpp | 62 - ACE/ace/Semaphore.h | 183 - ACE/ace/Semaphore.inl | 119 - ACE/ace/Service_Config.cpp | 586 - ACE/ace/Service_Config.h | 610 - ACE/ace/Service_Config.inl | 190 - ACE/ace/Service_Gestalt.cpp | 1281 -- ACE/ace/Service_Gestalt.h | 502 - ACE/ace/Service_Gestalt.inl | 74 - ACE/ace/Service_Manager.cpp | 387 - ACE/ace/Service_Manager.h | 120 - ACE/ace/Service_Object.cpp | 173 - ACE/ace/Service_Object.h | 207 - ACE/ace/Service_Object.inl | 79 - ACE/ace/Service_Repository.cpp | 577 - ACE/ace/Service_Repository.h | 281 - ACE/ace/Service_Repository.inl | 51 - ACE/ace/Service_Templates.h | 29 - ACE/ace/Service_Types.cpp | 458 - ACE/ace/Service_Types.h | 206 - ACE/ace/Service_Types.inl | 32 - ACE/ace/Shared_Memory.cpp | 13 - ACE/ace/Shared_Memory.h | 58 - ACE/ace/Shared_Memory_MM.cpp | 111 - ACE/ace/Shared_Memory_MM.h | 120 - ACE/ace/Shared_Memory_MM.inl | 42 - ACE/ace/Shared_Memory_Pool.cpp | 461 - ACE/ace/Shared_Memory_Pool.h | 210 - ACE/ace/Shared_Memory_SV.cpp | 88 - ACE/ace/Shared_Memory_SV.h | 101 - ACE/ace/Shared_Memory_SV.inl | 30 - ACE/ace/Shared_Object.cpp | 54 - ACE/ace/Shared_Object.h | 59 - ACE/ace/Shared_Object.inl | 12 - ACE/ace/Sig_Adapter.cpp | 80 - ACE/ace/Sig_Adapter.h | 81 - ACE/ace/Sig_Handler.cpp | 614 - ACE/ace/Sig_Handler.h | 236 - ACE/ace/Sig_Handler.inl | 15 - ACE/ace/Signal.cpp | 221 - ACE/ace/Signal.h | 267 - ACE/ace/Signal.inl | 265 - ACE/ace/Singleton.cpp | 534 - ACE/ace/Singleton.h | 327 - ACE/ace/Singleton.inl | 42 - ACE/ace/Sock_Connect.cpp | 1642 -- ACE/ace/Sock_Connect.h | 107 - ACE/ace/Static_Object_Lock.h | 78 - ACE/ace/Stats.cpp | 426 - ACE/ace/Stats.h | 222 - ACE/ace/Stats.inl | 104 - ACE/ace/Strategies.h | 33 - ACE/ace/Strategies_T.cpp | 1498 -- ACE/ace/Strategies_T.h | 1076 - ACE/ace/Strategies_T.inl | 230 - ACE/ace/Stream.cpp | 619 - ACE/ace/Stream.h | 241 - ACE/ace/Stream.inl | 51 - ACE/ace/Stream_Modules.cpp | 380 - ACE/ace/Stream_Modules.h | 166 - ACE/ace/String_Base.cpp | 563 - ACE/ace/String_Base.h | 612 - ACE/ace/String_Base.inl | 159 - ACE/ace/String_Base_Const.cpp | 20 - ACE/ace/String_Base_Const.h | 52 - ACE/ace/Svc_Conf.h | 100 - ACE/ace/Svc_Conf.y | 425 - ACE/ace/Svc_Conf_Lexer.cpp | 676 - ACE/ace/Svc_Conf_Lexer.h | 70 - ACE/ace/Svc_Conf_Param.h | 142 - ACE/ace/Svc_Conf_Tokens.h | 81 - ACE/ace/Svc_Conf_y.cpp | 1759 -- ACE/ace/Svc_Handler.cpp | 525 - ACE/ace/Svc_Handler.h | 339 - ACE/ace/Synch.h | 65 - ACE/ace/Synch_Options.cpp | 110 - ACE/ace/Synch_Options.h | 163 - ACE/ace/Synch_T.cpp | 22 - ACE/ace/Synch_T.h | 42 - ACE/ace/Synch_Traits.h | 152 - ACE/ace/System_Time.cpp | 140 - ACE/ace/System_Time.h | 99 - ACE/ace/TLI.cpp | 273 - ACE/ace/TLI.h | 116 - ACE/ace/TLI.inl | 50 - ACE/ace/TLI_Acceptor.cpp | 553 - ACE/ace/TLI_Acceptor.h | 123 - ACE/ace/TLI_Connector.cpp | 256 - ACE/ace/TLI_Connector.h | 130 - ACE/ace/TLI_Connector.inl | 49 - ACE/ace/TLI_Stream.cpp | 229 - ACE/ace/TLI_Stream.h | 141 - ACE/ace/TLI_Stream.inl | 25 - ACE/ace/TP_Reactor.cpp | 686 - ACE/ace/TP_Reactor.h | 320 - ACE/ace/TP_Reactor.inl | 119 - ACE/ace/TSS_Adapter.cpp | 45 - ACE/ace/TSS_Adapter.h | 61 - ACE/ace/TSS_T.cpp | 725 - ACE/ace/TSS_T.h | 253 - ACE/ace/TSS_T.inl | 42 - ACE/ace/TTY_IO.cpp | 583 - ACE/ace/TTY_IO.h | 122 - ACE/ace/Task.cpp | 299 - ACE/ace/Task.h | 307 - ACE/ace/Task.inl | 77 - ACE/ace/Task_Ex_T.cpp | 114 - ACE/ace/Task_Ex_T.h | 205 - ACE/ace/Task_Ex_T.inl | 109 - ACE/ace/Task_T.cpp | 108 - ACE/ace/Task_T.h | 198 - ACE/ace/Task_T.inl | 105 - ACE/ace/Test_and_Set.cpp | 51 - ACE/ace/Test_and_Set.h | 75 - ACE/ace/Thread.cpp | 99 - ACE/ace/Thread.h | 282 - ACE/ace/Thread.inl | 286 - ACE/ace/Thread_Adapter.cpp | 225 - ACE/ace/Thread_Adapter.h | 100 - ACE/ace/Thread_Adapter.inl | 13 - ACE/ace/Thread_Control.cpp | 96 - ACE/ace/Thread_Control.h | 102 - ACE/ace/Thread_Control.inl | 46 - ACE/ace/Thread_Exit.cpp | 123 - ACE/ace/Thread_Exit.h | 111 - ACE/ace/Thread_Hook.cpp | 33 - ACE/ace/Thread_Hook.h | 65 - ACE/ace/Thread_Manager.cpp | 2163 -- ACE/ace/Thread_Manager.h | 1136 -- ACE/ace/Thread_Manager.inl | 308 - ACE/ace/Thread_Mutex.cpp | 62 - ACE/ace/Thread_Mutex.h | 175 - ACE/ace/Thread_Mutex.inl | 97 - ACE/ace/Thread_Semaphore.cpp | 62 - ACE/ace/Thread_Semaphore.h | 89 - ACE/ace/Thread_Semaphore.inl | 12 - ACE/ace/Throughput_Stats.cpp | 202 - ACE/ace/Throughput_Stats.h | 86 - ACE/ace/Time_Value.cpp | 264 - ACE/ace/Time_Value.h | 360 - ACE/ace/Time_Value.inl | 407 - ACE/ace/Timeprobe.cpp | 15 - ACE/ace/Timeprobe.h | 201 - ACE/ace/Timeprobe.inl | 14 - ACE/ace/Timeprobe_T.cpp | 427 - ACE/ace/Timeprobe_T.h | 220 - ACE/ace/Timer_Hash.h | 75 - ACE/ace/Timer_Hash_T.cpp | 873 - ACE/ace/Timer_Hash_T.h | 342 - ACE/ace/Timer_Heap.h | 41 - ACE/ace/Timer_Heap_T.cpp | 889 - ACE/ace/Timer_Heap_T.h | 338 - ACE/ace/Timer_List.h | 42 - ACE/ace/Timer_List_T.cpp | 418 - ACE/ace/Timer_List_T.h | 226 - ACE/ace/Timer_Queue.h | 52 - ACE/ace/Timer_Queue_Adapters.cpp | 361 - ACE/ace/Timer_Queue_Adapters.h | 261 - ACE/ace/Timer_Queue_Adapters.inl | 29 - ACE/ace/Timer_Queue_T.cpp | 481 - ACE/ace/Timer_Queue_T.h | 562 - ACE/ace/Timer_Queue_T.inl | 222 - ACE/ace/Timer_Queuefwd.h | 38 - ACE/ace/Timer_Wheel.h | 42 - ACE/ace/Timer_Wheel_T.cpp | 967 - ACE/ace/Timer_Wheel_T.h | 226 - ACE/ace/TkReactor/ACE_TkReactor.pc.in | 11 - ACE/ace/TkReactor/ACE_TkReactor_export.h | 58 - ACE/ace/TkReactor/TkReactor.cpp | 439 - ACE/ace/TkReactor/TkReactor.h | 136 - ACE/ace/Token.cpp | 545 - ACE/ace/Token.h | 376 - ACE/ace/Token.inl | 176 - ACE/ace/Token_Collection.cpp | 294 - ACE/ace/Token_Collection.h | 243 - ACE/ace/Token_Collection.inl | 17 - ACE/ace/Token_Invariants.cpp | 355 - ACE/ace/Token_Invariants.h | 245 - ACE/ace/Token_Manager.cpp | 273 - ACE/ace/Token_Manager.h | 150 - ACE/ace/Token_Manager.inl | 25 - ACE/ace/Token_Request_Reply.cpp | 186 - ACE/ace/Token_Request_Reply.h | 270 - ACE/ace/Token_Request_Reply.inl | 205 - ACE/ace/Trace.cpp | 137 - ACE/ace/Trace.h | 96 - ACE/ace/Truncate.h | 1016 - ACE/ace/Typed_SV_Message.cpp | 30 - ACE/ace/Typed_SV_Message.h | 107 - ACE/ace/Typed_SV_Message.inl | 96 - ACE/ace/Typed_SV_Message_Queue.cpp | 56 - ACE/ace/Typed_SV_Message_Queue.h | 92 - ACE/ace/Typed_SV_Message_Queue.inl | 80 - ACE/ace/UNIX_Addr.cpp | 151 - ACE/ace/UNIX_Addr.h | 117 - ACE/ace/UNIX_Addr.inl | 57 - ACE/ace/UPIPE_Acceptor.cpp | 129 - ACE/ace/UPIPE_Acceptor.h | 99 - ACE/ace/UPIPE_Acceptor.inl | 14 - ACE/ace/UPIPE_Addr.h | 33 - ACE/ace/UPIPE_Connector.cpp | 101 - ACE/ace/UPIPE_Connector.h | 115 - ACE/ace/UPIPE_Connector.inl | 34 - ACE/ace/UPIPE_Stream.cpp | 231 - ACE/ace/UPIPE_Stream.h | 140 - ACE/ace/UPIPE_Stream.inl | 14 - ACE/ace/UTF16_Encoding_Converter.cpp | 364 - ACE/ace/UTF16_Encoding_Converter.h | 86 - ACE/ace/UTF16_Encoding_Converter.inl | 76 - ACE/ace/UTF32_Encoding_Converter.cpp | 254 - ACE/ace/UTF32_Encoding_Converter.h | 67 - ACE/ace/UTF8_Encoding_Converter.cpp | 92 - ACE/ace/UTF8_Encoding_Converter.h | 72 - ACE/ace/UUID.cpp | 554 - ACE/ace/UUID.h | 239 - ACE/ace/UUID.inl | 200 - ACE/ace/Unbounded_Queue.cpp | 434 - ACE/ace/Unbounded_Queue.h | 297 - ACE/ace/Unbounded_Queue.inl | 27 - ACE/ace/Unbounded_Set.cpp | 478 - ACE/ace/Unbounded_Set.h | 322 - ACE/ace/Unbounded_Set.inl | 23 - ACE/ace/Value_Ptr.h | 167 - ACE/ace/Vector_T.cpp | 154 - ACE/ace/Vector_T.h | 316 - ACE/ace/Vector_T.inl | 107 - ACE/ace/Version.h | 9 - ACE/ace/Versioned_Namespace.h | 51 - ACE/ace/WFMO_Reactor.cpp | 2754 --- ACE/ace/WFMO_Reactor.h | 1368 -- ACE/ace/WFMO_Reactor.inl | 1173 -- ACE/ace/WIN32_Asynch_IO.cpp | 3767 ---- ACE/ace/WIN32_Asynch_IO.h | 1937 -- ACE/ace/WIN32_Proactor.cpp | 804 - ACE/ace/WIN32_Proactor.h | 325 - ACE/ace/XML_Svc_Conf.cpp | 15 - ACE/ace/XML_Svc_Conf.h | 65 - ACE/ace/XTI_ATM_Mcast.cpp | 70 - ACE/ace/XTI_ATM_Mcast.h | 137 - ACE/ace/XTI_ATM_Mcast.inl | 65 - ACE/ace/XtReactor/ACE_XtReactor.pc.in | 11 - ACE/ace/XtReactor/ACE_XtReactor_export.h | 58 - ACE/ace/XtReactor/XtReactor.cpp | 450 - ACE/ace/XtReactor/XtReactor.h | 138 - ACE/ace/ace.mpc | 464 - ACE/ace/ace.mwc | 14 - ACE/ace/ace.rc | 38 - ACE/ace/ace_ce_dll.cfg | 1 - ACE/ace/ace_flreactor.mpc | 32 - ACE/ace/ace_for_tao.mpc | 377 - ACE/ace/ace_foxreactor.mpc | 32 - ACE/ace/ace_message_table.bin | Bin 28 -> 0 bytes ACE/ace/ace_qtreactor.mpc | 38 - ACE/ace/ace_tkreactor.mpc | 32 - ACE/ace/ace_wchar.cpp | 17 - ACE/ace/ace_wchar.h | 377 - ACE/ace/ace_wchar.inl | 183 - ACE/ace/ace_xtreactor.mpc | 32 - ACE/ace/checked_iterator.h | 58 - ACE/ace/codecs.mpb | 8 - ACE/ace/config-WinCE.h | 238 - ACE/ace/config-aix-5.x.h | 333 - ACE/ace/config-all.h | 81 - ACE/ace/config-borland-common.h | 75 - ACE/ace/config-cray.h | 215 - ACE/ace/config-cxx-common.h | 87 - ACE/ace/config-cygwin32.h | 204 - ACE/ace/config-doxygen.h | 120 - ACE/ace/config-freebsd.h | 284 - ACE/ace/config-g++-common.h | 137 - ACE/ace/config-ghs-common.h | 43 - ACE/ace/config-hpux-11.00.h | 446 - ACE/ace/config-icc-common.h | 114 - ACE/ace/config-integritySCA.h | 234 - ACE/ace/config-irix6.5.x-sgic++.h | 18 - ACE/ace/config-irix6.x-common.h | 256 - ACE/ace/config-irix6.x-g++.h | 23 - ACE/ace/config-irix6.x-sgic++.h | 38 - ACE/ace/config-linux-common.h | 442 - ACE/ace/config-linux.h | 75 - ACE/ace/config-lite.h | 164 - ACE/ace/config-lynxos.h | 159 - ACE/ace/config-macosx-leopard.h | 224 - ACE/ace/config-macosx-panther.h | 191 - ACE/ace/config-macosx-tiger.h | 219 - ACE/ace/config-macosx.h | 191 - ACE/ace/config-macros.h | 639 - ACE/ace/config-minimal.h | 39 - ACE/ace/config-mvs.h | 130 - ACE/ace/config-netbsd.h | 167 - ACE/ace/config-openbsd.h | 235 - ACE/ace/config-openvms.h | 198 - ACE/ace/config-pharlap.h | 86 - ACE/ace/config-posix-nonetworking.h | 86 - ACE/ace/config-posix.h | 72 - ACE/ace/config-qnx-neutrino.h | 137 - ACE/ace/config-qnx-rtp-62x.h | 129 - ACE/ace/config-qnx-rtp-common.h | 46 - ACE/ace/config-qnx-rtp-pre62x.h | 151 - ACE/ace/config-qnx-rtp.h | 25 - ACE/ace/config-rtems.h | 165 - ACE/ace/config-sco-5.0.0-nothread.h | 14 - ACE/ace/config-sco-5.0.0.h | 97 - ACE/ace/config-suncc-common.h | 68 - ACE/ace/config-sunos5.10.h | 46 - ACE/ace/config-sunos5.11.h | 15 - ACE/ace/config-sunos5.4-g++.h | 180 - ACE/ace/config-sunos5.4-sunc++-4.x.h | 191 - ACE/ace/config-sunos5.5.h | 414 - ACE/ace/config-sunos5.6.h | 129 - ACE/ace/config-sunos5.7.h | 78 - ACE/ace/config-sunos5.8.h | 39 - ACE/ace/config-sunos5.9.h | 18 - ACE/ace/config-tandem-nsk-mips-v2.h | 404 - ACE/ace/config-tandem-nsk-mips-v3.h | 474 - ACE/ace/config-tandem.h | 192 - ACE/ace/config-tru64.h | 155 - ACE/ace/config-unixware-7.1.0.h | 414 - ACE/ace/config-unixware-7.1.0.udk.h | 465 - ACE/ace/config-visualage.h | 20 - ACE/ace/config-vxworks.h | 33 - ACE/ace/config-vxworks5.x.h | 334 - ACE/ace/config-vxworks6.2.h | 332 - ACE/ace/config-vxworks6.3.h | 322 - ACE/ace/config-vxworks6.4.h | 345 - ACE/ace/config-vxworks6.5.h | 25 - ACE/ace/config-vxworks6.6.h | 29 - ACE/ace/config-win32-borland.h | 121 - ACE/ace/config-win32-common.h | 660 - ACE/ace/config-win32-dmc.h | 109 - ACE/ace/config-win32-ghs.h | 95 - ACE/ace/config-win32-interix.h | 100 - ACE/ace/config-win32-mingw.h | 98 - ACE/ace/config-win32-msvc-7.h | 126 - ACE/ace/config-win32-msvc-8.h | 149 - ACE/ace/config-win32-msvc-9.h | 141 - ACE/ace/config-win32-msvc.h | 164 - ACE/ace/config-win32.h | 53 - ACE/ace/filecache.mpb | 8 - ACE/ace/gethrtime.cpp | 60 - ACE/ace/iosfwd.h | 99 - ACE/ace/os_include/arpa/os_inet.h | 74 - ACE/ace/os_include/net/os_if.h | 119 - ACE/ace/os_include/netinet/os_in.h | 185 - ACE/ace/os_include/netinet/os_tcp.h | 46 - ACE/ace/os_include/os_aio.h | 47 - ACE/ace/os_include/os_assert.h | 46 - ACE/ace/os_include/os_byteswap.h | 41 - ACE/ace/os_include/os_complex.h | 42 - ACE/ace/os_include/os_cpio.h | 42 - ACE/ace/os_include/os_ctype.h | 45 - ACE/ace/os_include/os_dirent.h | 108 - ACE/ace/os_include/os_dlfcn.h | 107 - ACE/ace/os_include/os_errno.h | 153 - ACE/ace/os_include/os_fcntl.h | 106 - ACE/ace/os_include/os_fenv.h | 42 - ACE/ace/os_include/os_float.h | 42 - ACE/ace/os_include/os_fmtmsg.h | 42 - ACE/ace/os_include/os_fnmatch.h | 42 - ACE/ace/os_include/os_ftw.h | 44 - ACE/ace/os_include/os_glob.h | 44 - ACE/ace/os_include/os_grp.h | 44 - ACE/ace/os_include/os_iconv.h | 44 - ACE/ace/os_include/os_intrin.h | 57 - ACE/ace/os_include/os_inttypes.h | 46 - ACE/ace/os_include/os_iso646.h | 42 - ACE/ace/os_include/os_langinfo.h | 44 - ACE/ace/os_include/os_libgen.h | 42 - ACE/ace/os_include/os_limits.h | 143 - ACE/ace/os_include/os_local.h | 44 - ACE/ace/os_include/os_math.h | 44 - ACE/ace/os_include/os_monetary.h | 44 - ACE/ace/os_include/os_mqueue.h | 44 - ACE/ace/os_include/os_ndbm.h | 44 - ACE/ace/os_include/os_netdb.h | 108 - ACE/ace/os_include/os_nl_types.h | 42 - ACE/ace/os_include/os_poll.h | 42 - ACE/ace/os_include/os_pthread.h | 424 - ACE/ace/os_include/os_pwd.h | 58 - ACE/ace/os_include/os_regex.h | 48 - ACE/ace/os_include/os_sched.h | 52 - ACE/ace/os_include/os_search.h | 44 - ACE/ace/os_include/os_semaphore.h | 77 - ACE/ace/os_include/os_setjmp.h | 42 - ACE/ace/os_include/os_signal.h | 253 - ACE/ace/os_include/os_spawn.h | 46 - ACE/ace/os_include/os_stdarg.h | 50 - ACE/ace/os_include/os_stdbool.h | 42 - ACE/ace/os_include/os_stddef.h | 97 - ACE/ace/os_include/os_stdint.h | 141 - ACE/ace/os_include/os_stdio.h | 87 - ACE/ace/os_include/os_stdlib.h | 77 - ACE/ace/os_include/os_string.h | 76 - ACE/ace/os_include/os_strings.h | 52 - ACE/ace/os_include/os_stropts.h | 120 - ACE/ace/os_include/os_syslog.h | 42 - ACE/ace/os_include/os_tar.h | 42 - ACE/ace/os_include/os_termios.h | 46 - ACE/ace/os_include/os_tgmath.h | 45 - ACE/ace/os_include/os_time.h | 123 - ACE/ace/os_include/os_trace.h | 44 - ACE/ace/os_include/os_ucontext.h | 48 - ACE/ace/os_include/os_ulimit.h | 42 - ACE/ace/os_include/os_unistd.h | 203 - ACE/ace/os_include/os_utime.h | 44 - ACE/ace/os_include/os_utmpx.h | 44 - ACE/ace/os_include/os_wchar.h | 49 - ACE/ace/os_include/os_wctype.h | 45 - ACE/ace/os_include/os_wordexp.h | 44 - ACE/ace/os_include/sys/os_ipc.h | 74 - ACE/ace/os_include/sys/os_loadavg.h | 41 - ACE/ace/os_include/sys/os_mman.h | 122 - ACE/ace/os_include/sys/os_msg.h | 55 - ACE/ace/os_include/sys/os_pstat.h | 42 - ACE/ace/os_include/sys/os_resource.h | 104 - ACE/ace/os_include/sys/os_select.h | 59 - ACE/ace/os_include/sys/os_sem.h | 90 - ACE/ace/os_include/sys/os_shm.h | 48 - ACE/ace/os_include/sys/os_socket.h | 307 - ACE/ace/os_include/sys/os_stat.h | 127 - ACE/ace/os_include/sys/os_statvfs.h | 44 - ACE/ace/os_include/sys/os_sysctl.h | 41 - ACE/ace/os_include/sys/os_time.h | 60 - ACE/ace/os_include/sys/os_timeb.h | 49 - ACE/ace/os_include/sys/os_times.h | 44 - ACE/ace/os_include/sys/os_types.h | 158 - ACE/ace/os_include/sys/os_uio.h | 77 - ACE/ace/os_include/sys/os_un.h | 52 - ACE/ace/os_include/sys/os_utsname.h | 42 - ACE/ace/os_include/sys/os_wait.h | 97 - ACE/ace/other.mpb | 15 - ACE/ace/post.h | 22 - ACE/ace/pre.h | 24 - ACE/ace/streams.h | 141 - ACE/ace/svc_export.h | 44 - ACE/ace/svcconf.mpb | 64 - ACE/ace/token.mpb | 15 - ACE/ace/uuid.mpb | 8 - .../Gateway/Concrete_Connection_Handlers.cpp | 801 - .../Gateway/Gateway/Concrete_Connection_Handlers.h | 151 - ACE/apps/Gateway/Gateway/Config_Files.cpp | 219 - ACE/apps/Gateway/Gateway/Config_Files.h | 98 - ACE/apps/Gateway/Gateway/Connection_Handler.cpp | 272 - ACE/apps/Gateway/Gateway/Connection_Handler.h | 157 - .../Gateway/Connection_Handler_Acceptor.cpp | 56 - .../Gateway/Gateway/Connection_Handler_Acceptor.h | 65 - .../Gateway/Connection_Handler_Connector.cpp | 60 - .../Gateway/Gateway/Connection_Handler_Connector.h | 44 - ACE/apps/Gateway/Gateway/Consumer_Dispatch_Set.h | 32 - ACE/apps/Gateway/Gateway/Event.h | 225 - ACE/apps/Gateway/Gateway/Event_Channel.cpp | 595 - ACE/apps/Gateway/Gateway/Event_Channel.h | 135 - .../Gateway/Event_Forwarding_Discriminator.cpp | 64 - .../Gateway/Event_Forwarding_Discriminator.h | 65 - ACE/apps/Gateway/Gateway/File_Parser.cpp | 157 - ACE/apps/Gateway/Gateway/File_Parser.h | 97 - ACE/apps/Gateway/Gateway/Gateway.cpp | 340 - ACE/apps/Gateway/Gateway/Gateway.h | 33 - ACE/apps/Gateway/Gateway/Makefile.am | 79 - ACE/apps/Gateway/Gateway/Options.cpp | 288 - ACE/apps/Gateway/Gateway/Options.h | 196 - ACE/apps/Gateway/Gateway/connection_config | 55 - ACE/apps/Gateway/Gateway/consumer_config | 35 - ACE/apps/Gateway/Gateway/gateway.mpc | 29 - ACE/apps/Gateway/Gateway/gatewayd.cpp | 69 - ACE/apps/Gateway/Gateway/svc.conf | 3 - ACE/apps/Gateway/Makefile.am | 14 - ACE/apps/Gateway/Peer/Makefile.am | 53 - ACE/apps/Gateway/Peer/Options.cpp | 201 - ACE/apps/Gateway/Peer/Options.h | 135 - ACE/apps/Gateway/Peer/Peer.cpp | 889 - ACE/apps/Gateway/Peer/Peer.h | 257 - ACE/apps/Gateway/Peer/peer.mpc | 23 - ACE/apps/Gateway/Peer/peerd.cpp | 63 - ACE/apps/Gateway/Peer/svc.conf | 2 - ACE/apps/Gateway/README | 136 - ACE/apps/JAWS/ChangeLog | 1047 - ACE/apps/JAWS/Makefile.am | 14 - ACE/apps/JAWS/README | 15 - ACE/apps/JAWS/clients/Blobby/Blob.cpp | 77 - ACE/apps/JAWS/clients/Blobby/Blob.h | 87 - ACE/apps/JAWS/clients/Blobby/Blob_Handler.cpp | 347 - ACE/apps/JAWS/clients/Blobby/Blob_Handler.h | 118 - ACE/apps/JAWS/clients/Blobby/Makefile.am | 40 - ACE/apps/JAWS/clients/Blobby/Options.cpp | 81 - ACE/apps/JAWS/clients/Blobby/Options.h | 71 - ACE/apps/JAWS/clients/Blobby/README | 33 - ACE/apps/JAWS/clients/Blobby/blobby.cpp | 125 - ACE/apps/JAWS/clients/Blobby/blobby.mpc | 13 - ACE/apps/JAWS/clients/Caching/ID_Generator.cpp | 61 - ACE/apps/JAWS/clients/Caching/ID_Generator.h | 62 - ACE/apps/JAWS/clients/Caching/Local_Locator.cpp | 248 - ACE/apps/JAWS/clients/Caching/Local_Locator.h | 119 - ACE/apps/JAWS/clients/Caching/Local_Locator.inl | 43 - .../JAWS/clients/Caching/Locator_Request_Reply.cpp | 459 - .../JAWS/clients/Caching/Locator_Request_Reply.h | 220 - .../JAWS/clients/Caching/Locator_Request_Reply.inl | 138 - ACE/apps/JAWS/clients/Caching/Makefile.am | 46 - ACE/apps/JAWS/clients/Caching/README | 83 - ACE/apps/JAWS/clients/Caching/URL_Array_Helper.cpp | 43 - ACE/apps/JAWS/clients/Caching/URL_Array_Helper.h | 40 - ACE/apps/JAWS/clients/Caching/URL_Locator.cpp | 52 - ACE/apps/JAWS/clients/Caching/URL_Locator.h | 112 - ACE/apps/JAWS/clients/Caching/URL_Properties.cpp | 139 - ACE/apps/JAWS/clients/Caching/URL_Properties.h | 201 - ACE/apps/JAWS/clients/Caching/URL_Properties.inl | 203 - ACE/apps/JAWS/clients/Caching/caching.mpc | 13 - ACE/apps/JAWS/clients/Caching/http_client.cpp | 79 - ACE/apps/JAWS/clients/Caching/http_handler.cpp | 240 - ACE/apps/JAWS/clients/Caching/http_handler.h | 81 - ACE/apps/JAWS/clients/Caching/test_URL.cpp | 34 - ACE/apps/JAWS/clients/Makefile.am | 14 - ACE/apps/JAWS/clients/README | 13 - ACE/apps/JAWS/clients/WebSTONE/COPYING | 348 - ACE/apps/JAWS/clients/WebSTONE/README | 245 - .../JAWS/clients/WebSTONE/README.DynamicWorkload | 37 - ACE/apps/JAWS/clients/WebSTONE/README.FIRST | 21 - .../JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0 | 0 .../JAWS/clients/WebSTONE/bin/WebStone-common.pl | 63 - .../JAWS/clients/WebSTONE/bin/WebStone-manage.pl | 33 - ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl | 39 - .../JAWS/clients/WebSTONE/bin/WebStone-setup.pl | 97 - ACE/apps/JAWS/clients/WebSTONE/bin/checkfilelist | 35 - ACE/apps/JAWS/clients/WebSTONE/bin/genfiles | 41 - .../clients/WebSTONE/bin/genfiles-from-filelist.sh | 41 - ACE/apps/JAWS/clients/WebSTONE/bin/gui-configure | 174 - ACE/apps/JAWS/clients/WebSTONE/bin/killbench | 13 - ACE/apps/JAWS/clients/WebSTONE/bin/killbench.pl | 17 - ACE/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl | 90 - .../JAWS/clients/WebSTONE/bin/move-filelist.pl | 28 - ACE/apps/JAWS/clients/WebSTONE/bin/move-runs.pl | 26 - ACE/apps/JAWS/clients/WebSTONE/bin/rebootall | 9 - ACE/apps/JAWS/clients/WebSTONE/bin/runbench | 193 - ACE/apps/JAWS/clients/WebSTONE/bin/runbench.pl | 38 - ACE/apps/JAWS/clients/WebSTONE/bin/tabs2html | 13 - ACE/apps/JAWS/clients/WebSTONE/bin/view-results.pl | 55 - ACE/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl | 318 - .../JAWS/clients/WebSTONE/bin/write-testbed.pl | 49 - ACE/apps/JAWS/clients/WebSTONE/bin/wscollect.pl | 142 - ACE/apps/JAWS/clients/WebSTONE/conf/filelist | 6 - .../JAWS/clients/WebSTONE/conf/filelist.cgi-heavy | 6 - .../clients/WebSTONE/conf/filelist.dynamic-heavy | 6 - .../clients/WebSTONE/conf/filelist.dynamic-light | 6 - .../clients/WebSTONE/conf/filelist.dynamic-medium | 6 - .../JAWS/clients/WebSTONE/conf/filelist.homepage | 2 - .../JAWS/clients/WebSTONE/conf/filelist.sample | 6 - .../JAWS/clients/WebSTONE/conf/filelist.standard | 6 - ACE/apps/JAWS/clients/WebSTONE/conf/fileset | 32 - ACE/apps/JAWS/clients/WebSTONE/conf/paths.pl | 4 - ACE/apps/JAWS/clients/WebSTONE/conf/paths.sh | 0 ACE/apps/JAWS/clients/WebSTONE/conf/testbed | 33 - ACE/apps/JAWS/clients/WebSTONE/doc/COPYING | 348 - .../JAWS/clients/WebSTONE/doc/FAQ-webstone.html | 403 - ACE/apps/JAWS/clients/WebSTONE/doc/LICENSE.html | 17 - ACE/apps/JAWS/clients/WebSTONE/doc/WebStone.html | 25 - ACE/apps/JAWS/clients/WebSTONE/doc/testbed.help | 21 - .../clients/WebSTONE/doc/webstone-white-paper.ps | 8974 --------- ACE/apps/JAWS/clients/WebSTONE/doc/webstone.gif | Bin 14656 -> 0 bytes ACE/apps/JAWS/clients/WebSTONE/doc/webstone2.html | 73 - ACE/apps/JAWS/clients/WebSTONE/src/README | 232 - ACE/apps/JAWS/clients/WebSTONE/src/acconfig.h | 15 - ACE/apps/JAWS/clients/WebSTONE/src/bench.c | 635 - ACE/apps/JAWS/clients/WebSTONE/src/bench.h | 274 - ACE/apps/JAWS/clients/WebSTONE/src/cgi-send.c | 48 - ACE/apps/JAWS/clients/WebSTONE/src/config.cache | 47 - ACE/apps/JAWS/clients/WebSTONE/src/config.guess | 565 - ACE/apps/JAWS/clients/WebSTONE/src/config.h | 91 - ACE/apps/JAWS/clients/WebSTONE/src/config.h.in | 89 - ACE/apps/JAWS/clients/WebSTONE/src/config.log | 4 - ACE/apps/JAWS/clients/WebSTONE/src/config.status | 288 - ACE/apps/JAWS/clients/WebSTONE/src/config.sub | 867 - ACE/apps/JAWS/clients/WebSTONE/src/configure | 2132 -- ACE/apps/JAWS/clients/WebSTONE/src/configure.in | 99 - ACE/apps/JAWS/clients/WebSTONE/src/debug.h | 18 - ACE/apps/JAWS/clients/WebSTONE/src/errexit.c | 106 - ACE/apps/JAWS/clients/WebSTONE/src/genrand.c | 70 - ACE/apps/JAWS/clients/WebSTONE/src/get.c | 318 - ACE/apps/JAWS/clients/WebSTONE/src/get.h | 17 - ACE/apps/JAWS/clients/WebSTONE/src/getopt.c | 67 - ACE/apps/JAWS/clients/WebSTONE/src/gettimeofday.c | 58 - ACE/apps/JAWS/clients/WebSTONE/src/install-sh | 238 - ACE/apps/JAWS/clients/WebSTONE/src/logfile27859 | 9 - .../WebSTONE/src/nsapi-includes/base/buffer.h | 220 - .../WebSTONE/src/nsapi-includes/base/cinfo.h | 146 - .../WebSTONE/src/nsapi-includes/base/crit.h | 127 - .../WebSTONE/src/nsapi-includes/base/daemon.h | 120 - .../clients/WebSTONE/src/nsapi-includes/base/dll.h | 124 - .../WebSTONE/src/nsapi-includes/base/ereport.h | 121 - .../WebSTONE/src/nsapi-includes/base/eventlog.h | 61 - .../WebSTONE/src/nsapi-includes/base/file.h | 217 - .../WebSTONE/src/nsapi-includes/base/minissl.h | 27 - .../clients/WebSTONE/src/nsapi-includes/base/net.h | 180 - .../WebSTONE/src/nsapi-includes/base/nodelock.h | 47 - .../WebSTONE/src/nsapi-includes/base/nterrors.h | 738 - .../WebSTONE/src/nsapi-includes/base/objndx.h | 29 - .../WebSTONE/src/nsapi-includes/base/pblock.h | 193 - .../clients/WebSTONE/src/nsapi-includes/base/sem.h | 70 - .../WebSTONE/src/nsapi-includes/base/session.h | 85 - .../WebSTONE/src/nsapi-includes/base/shexp.h | 97 - .../WebSTONE/src/nsapi-includes/base/shmem.h | 84 - .../WebSTONE/src/nsapi-includes/base/systems.h | 222 - .../WebSTONE/src/nsapi-includes/base/systhr.h | 130 - .../WebSTONE/src/nsapi-includes/base/util.h | 205 - .../WebSTONE/src/nsapi-includes/frame/conf.h | 155 - .../WebSTONE/src/nsapi-includes/frame/dnfilter.h | 44 - .../WebSTONE/src/nsapi-includes/frame/func.h | 111 - .../WebSTONE/src/nsapi-includes/frame/http.h | 171 - .../WebSTONE/src/nsapi-includes/frame/httpact.h | 120 - .../WebSTONE/src/nsapi-includes/frame/ipfilter.h | 48 - .../WebSTONE/src/nsapi-includes/frame/log.h | 51 - .../WebSTONE/src/nsapi-includes/frame/object.h | 167 - .../WebSTONE/src/nsapi-includes/frame/objset.h | 158 - .../WebSTONE/src/nsapi-includes/frame/protocol.h | 27 - .../WebSTONE/src/nsapi-includes/frame/req.h | 216 - .../WebSTONE/src/nsapi-includes/frame/servact.h | 26 - .../clients/WebSTONE/src/nsapi-includes/netsite.h | 67 - ACE/apps/JAWS/clients/WebSTONE/src/nsapi-send.c | 88 - .../JAWS/clients/WebSTONE/src/parse_file_list.c | 290 - .../JAWS/clients/WebSTONE/src/parse_file_list.h | 20 - ACE/apps/JAWS/clients/WebSTONE/src/rexec.c | 373 - ACE/apps/JAWS/clients/WebSTONE/src/statistics.c | 49 - ACE/apps/JAWS/clients/WebSTONE/src/statistics.h | 9 - ACE/apps/JAWS/clients/WebSTONE/src/sysdep.c | 51 - ACE/apps/JAWS/clients/WebSTONE/src/sysdep.h | 133 - ACE/apps/JAWS/clients/WebSTONE/src/timefunc.c | 171 - ACE/apps/JAWS/clients/WebSTONE/src/timefunc.h | 30 - ACE/apps/JAWS/clients/WebSTONE/src/webclient.c | 1299 -- ACE/apps/JAWS/clients/WebSTONE/src/webmaster.c | 1420 -- ACE/apps/JAWS/clients/WebSTONE/webstone | 75 - ACE/apps/JAWS/server/HTTP_Config.cpp | 140 - ACE/apps/JAWS/server/HTTP_Config.h | 96 - ACE/apps/JAWS/server/HTTP_Handler.cpp | 314 - ACE/apps/JAWS/server/HTTP_Handler.h | 237 - ACE/apps/JAWS/server/HTTP_Helpers.cpp | 442 - ACE/apps/JAWS/server/HTTP_Helpers.h | 110 - ACE/apps/JAWS/server/HTTP_Request.cpp | 664 - ACE/apps/JAWS/server/HTTP_Request.h | 200 - ACE/apps/JAWS/server/HTTP_Response.cpp | 388 - ACE/apps/JAWS/server/HTTP_Response.h | 78 - ACE/apps/JAWS/server/HTTP_Server.cpp | 431 - ACE/apps/JAWS/server/HTTP_Server.h | 160 - ACE/apps/JAWS/server/IO.cpp | 563 - ACE/apps/JAWS/server/IO.h | 293 - ACE/apps/JAWS/server/JAWS_Concurrency.cpp | 82 - ACE/apps/JAWS/server/JAWS_Concurrency.h | 101 - ACE/apps/JAWS/server/JAWS_Pipeline.cpp | 29 - ACE/apps/JAWS/server/JAWS_Pipeline.h | 36 - ACE/apps/JAWS/server/JAWS_Pipeline_Handler.cpp | 25 - ACE/apps/JAWS/server/JAWS_Pipeline_Handler.h | 29 - ACE/apps/JAWS/server/Makefile.am | 96 - ACE/apps/JAWS/server/Parse_Headers.cpp | 362 - ACE/apps/JAWS/server/Parse_Headers.h | 124 - ACE/apps/JAWS/server/README | 228 - ACE/apps/JAWS/server/jaws.auth | 2 - ACE/apps/JAWS/server/main.cpp | 57 - ACE/apps/JAWS/server/server.mpc | 36 - ACE/apps/JAWS/server/svc.conf | 49 - ACE/apps/JAWS/server/test.cgi | 9 - ACE/apps/JAWS/stress_testing/README | 54 - ACE/apps/JAWS/stress_testing/benchd.cpp | 241 - ACE/apps/JAWS/stress_testing/client.h | 8 - ACE/apps/JAWS/stress_testing/config | 3 - ACE/apps/JAWS/stress_testing/connection.cpp | 100 - ACE/apps/JAWS/stress_testing/connection.h | 22 - ACE/apps/JAWS/stress_testing/cp.cpp | 11 - ACE/apps/JAWS/stress_testing/cp.h | 14 - ACE/apps/JAWS/stress_testing/global.h | 31 - ACE/apps/JAWS/stress_testing/http.h | 16 - ACE/apps/JAWS/stress_testing/http_tester.cpp | 172 - ACE/apps/JAWS/stress_testing/out | 2 - ACE/apps/JAWS/stress_testing/stats.cpp | 88 - ACE/apps/JAWS/stress_testing/stats.h | 31 - ACE/apps/JAWS/stress_testing/util.cpp | 60 - ACE/apps/JAWS/stress_testing/util.h | 34 - ACE/apps/JAWS2/1000K.html | 20001 ------------------- ACE/apps/JAWS2/100K.html | 2001 -- ACE/apps/JAWS2/500K.html | 10001 ---------- ACE/apps/JAWS2/50K.html | 1001 - ACE/apps/JAWS2/5K.html | 101 - ACE/apps/JAWS2/HTTPU/Makefile.am | 65 - ACE/apps/JAWS2/HTTPU/http_base.cpp | 323 - ACE/apps/JAWS2/HTTPU/http_base.h | 87 - ACE/apps/JAWS2/HTTPU/http_base.inl | 53 - ACE/apps/JAWS2/HTTPU/http_export.h | 38 - ACE/apps/JAWS2/HTTPU/http_headers.cpp | 154 - ACE/apps/JAWS2/HTTPU/http_headers.h | 171 - ACE/apps/JAWS2/HTTPU/http_headers.inl | 48 - ACE/apps/JAWS2/HTTPU/http_request.cpp | 86 - ACE/apps/JAWS2/HTTPU/http_request.h | 59 - ACE/apps/JAWS2/HTTPU/http_request.inl | 41 - ACE/apps/JAWS2/HTTPU/http_response.cpp | 49 - ACE/apps/JAWS2/HTTPU/http_response.h | 51 - ACE/apps/JAWS2/HTTPU/http_response.inl | 23 - ACE/apps/JAWS2/HTTPU/http_status.cpp | 87 - ACE/apps/JAWS2/HTTPU/http_status.h | 110 - ACE/apps/JAWS2/HTTPU/http_status.inl | 19 - ACE/apps/JAWS2/HTTPU/httpu.mpc | 30 - ACE/apps/JAWS2/HTTPU/parse_http_request.cpp | 116 - ACE/apps/JAWS2/HTTPU/parse_http_request.h | 59 - ACE/apps/JAWS2/HTTPU/parse_http_request.inl | 49 - ACE/apps/JAWS2/HTTPU/parse_http_response.cpp | 74 - ACE/apps/JAWS2/HTTPU/parse_http_response.h | 56 - ACE/apps/JAWS2/HTTPU/parse_http_response.inl | 43 - ACE/apps/JAWS2/HTTPU/parse_url.cpp | 322 - ACE/apps/JAWS2/HTTPU/parse_url.h | 63 - ACE/apps/JAWS2/HTTP_10.cpp | 32 - ACE/apps/JAWS2/HTTP_10.h | 68 - ACE/apps/JAWS2/HTTP_10_Parse.cpp | 80 - ACE/apps/JAWS2/HTTP_10_Read.cpp | 64 - ACE/apps/JAWS2/HTTP_10_Request.cpp | 120 - ACE/apps/JAWS2/HTTP_10_Request.h | 31 - ACE/apps/JAWS2/HTTP_10_Write.cpp | 157 - ACE/apps/JAWS2/HTTP_Policy.cpp | 17 - ACE/apps/JAWS2/HTTP_Policy.h | 22 - ACE/apps/JAWS2/JAWS/Assoc_Array.cpp | 269 - ACE/apps/JAWS2/JAWS/Assoc_Array.h | 102 - ACE/apps/JAWS2/JAWS/Cache_Hash_T.cpp | 237 - ACE/apps/JAWS2/JAWS/Cache_Hash_T.h | 60 - ACE/apps/JAWS2/JAWS/Cache_Heap_T.cpp | 290 - ACE/apps/JAWS2/JAWS/Cache_Heap_T.h | 103 - ACE/apps/JAWS2/JAWS/Cache_List_T.cpp | 217 - ACE/apps/JAWS2/JAWS/Cache_List_T.h | 111 - ACE/apps/JAWS2/JAWS/Cache_Manager.cpp | 99 - ACE/apps/JAWS2/JAWS/Cache_Manager.h | 64 - ACE/apps/JAWS2/JAWS/Cache_Manager_T.cpp | 579 - ACE/apps/JAWS2/JAWS/Cache_Manager_T.h | 179 - ACE/apps/JAWS2/JAWS/Cache_Object.cpp | 291 - ACE/apps/JAWS2/JAWS/Cache_Object.h | 158 - ACE/apps/JAWS2/JAWS/Concurrency.cpp | 337 - ACE/apps/JAWS2/JAWS/Concurrency.h | 132 - ACE/apps/JAWS2/JAWS/Data_Block.cpp | 76 - ACE/apps/JAWS2/JAWS/Data_Block.h | 50 - ACE/apps/JAWS2/JAWS/Export.h | 57 - ACE/apps/JAWS2/JAWS/FILE.cpp | 73 - ACE/apps/JAWS2/JAWS/FILE.h | 47 - ACE/apps/JAWS2/JAWS/Filecache.cpp | 94 - ACE/apps/JAWS2/JAWS/Filecache.h | 72 - ACE/apps/JAWS2/JAWS/Hash_Bucket_T.cpp | 462 - ACE/apps/JAWS2/JAWS/Hash_Bucket_T.h | 206 - ACE/apps/JAWS2/JAWS/Headers.cpp | 161 - ACE/apps/JAWS2/JAWS/Headers.h | 78 - ACE/apps/JAWS2/JAWS/IO.cpp | 595 - ACE/apps/JAWS2/JAWS/IO.h | 263 - ACE/apps/JAWS2/JAWS/IO_Acceptor.cpp | 196 - ACE/apps/JAWS2/JAWS/IO_Acceptor.h | 141 - ACE/apps/JAWS2/JAWS/IO_Handler.cpp | 502 - ACE/apps/JAWS2/JAWS/IO_Handler.h | 318 - ACE/apps/JAWS2/JAWS/Makefile.am | 90 - ACE/apps/JAWS2/JAWS/Parse_Headers.cpp | 438 - ACE/apps/JAWS2/JAWS/Parse_Headers.h | 123 - ACE/apps/JAWS2/JAWS/Pipeline.cpp | 27 - ACE/apps/JAWS2/JAWS/Pipeline.h | 39 - ACE/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp | 31 - ACE/apps/JAWS2/JAWS/Pipeline_Handler_T.h | 32 - ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp | 202 - ACE/apps/JAWS2/JAWS/Pipeline_Tasks.h | 56 - ACE/apps/JAWS2/JAWS/Policy.cpp | 89 - ACE/apps/JAWS2/JAWS/Policy.h | 65 - ACE/apps/JAWS2/JAWS/Reaper.cpp | 45 - ACE/apps/JAWS2/JAWS/Reaper.h | 48 - ACE/apps/JAWS2/JAWS/Server.cpp | 199 - ACE/apps/JAWS2/JAWS/Server.h | 39 - ACE/apps/JAWS2/JAWS/Waiter.cpp | 64 - ACE/apps/JAWS2/JAWS/Waiter.h | 49 - ACE/apps/JAWS2/JAWS/jaws2.mpc | 53 - ACE/apps/JAWS2/Makefile.am | 14 - ACE/apps/JAWS2/README | 32 - ACE/apps/JAWS2/main.cpp | 47 - ACE/apps/JAWS3/Makefile.am | 13 - ACE/apps/JAWS3/bench/average.cpp | 24 - ACE/apps/JAWS3/bench/mkfiles.cpp | 156 - ACE/apps/JAWS3/bench/rqfiles.cpp | 263 - .../JAWS3/contrib/jmills_at_tga_dot_com/README | 57 - .../contrib/jmills_at_tga_dot_com/jaws3-msvc.pat | 2827 --- .../JAWS3/contrib/john_at_lyris_dot_com/README | 112 - .../contrib/john_at_lyris_dot_com/jaws3-cntlC.code | 92 - ACE/apps/JAWS3/docs/web/images/jaws3_banner.fig | 13 - ACE/apps/JAWS3/docs/web/images/jaws3_banner.gif | Bin 4828 -> 0 bytes ACE/apps/JAWS3/docs/web/images/jaws3_banner.png | Bin 4403 -> 0 bytes .../JAWS3/docs/web/images/jaws3_components.fig | 55 - .../JAWS3/docs/web/images/jaws3_components.gif | Bin 12474 -> 0 bytes ACE/apps/JAWS3/docs/web/index.html | 43 - ACE/apps/JAWS3/docs/web/overview.html | 120 - ACE/apps/JAWS3/http/HTTP_Data.h | 32 - ACE/apps/JAWS3/http/HTTP_Service_Handler.cpp | 67 - ACE/apps/JAWS3/http/HTTP_Service_Handler.h | 66 - ACE/apps/JAWS3/http/HTTP_States.h | 75 - ACE/apps/JAWS3/jaws3-todo/FILE_Cache.h | 52 - ACE/apps/JAWS3/jaws3-todo/Map_Manager.h | 148 - ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp | 398 - ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.h | 392 - ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.cpp | 83 - ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.h | 89 - .../JAWS3/jaws3-todo/Reactive_Socket_Helpers.cpp | 82 - .../JAWS3/jaws3-todo/Reactive_Socket_Helpers.h | 87 - ACE/apps/JAWS3/jaws3-todo/Socket.cpp | 82 - ACE/apps/JAWS3/jaws3-todo/Socket.h | 144 - ACE/apps/JAWS3/jaws3/Asynch_IO.cpp | 308 - ACE/apps/JAWS3/jaws3/Asynch_IO.h | 72 - ACE/apps/JAWS3/jaws3/Asynch_IO_Helpers.h | 54 - ACE/apps/JAWS3/jaws3/Cached_Allocator_T.cpp | 140 - ACE/apps/JAWS3/jaws3/Cached_Allocator_T.h | 107 - ACE/apps/JAWS3/jaws3/Concurrency.cpp | 105 - ACE/apps/JAWS3/jaws3/Concurrency.h | 74 - ACE/apps/JAWS3/jaws3/Concurrency_T.cpp | 47 - ACE/apps/JAWS3/jaws3/Concurrency_T.h | 50 - ACE/apps/JAWS3/jaws3/Config_File.cpp | 304 - ACE/apps/JAWS3/jaws3/Config_File.h | 73 - ACE/apps/JAWS3/jaws3/Datagram.cpp | 86 - ACE/apps/JAWS3/jaws3/Datagram.h | 139 - ACE/apps/JAWS3/jaws3/Event_Completer.cpp | 55 - ACE/apps/JAWS3/jaws3/Event_Completer.h | 43 - ACE/apps/JAWS3/jaws3/Event_Dispatcher.cpp | 52 - ACE/apps/JAWS3/jaws3/Event_Dispatcher.h | 52 - ACE/apps/JAWS3/jaws3/Event_Result.h | 104 - ACE/apps/JAWS3/jaws3/Export.h | 48 - ACE/apps/JAWS3/jaws3/FILE.cpp | 93 - ACE/apps/JAWS3/jaws3/FILE.h | 50 - ACE/apps/JAWS3/jaws3/IO.cpp | 114 - ACE/apps/JAWS3/jaws3/IO.h | 140 - ACE/apps/JAWS3/jaws3/Makefile.am | 138 - ACE/apps/JAWS3/jaws3/Options.cpp | 25 - ACE/apps/JAWS3/jaws3/Options.h | 40 - ACE/apps/JAWS3/jaws3/Protocol_Handler.cpp | 65 - ACE/apps/JAWS3/jaws3/Protocol_Handler.h | 80 - ACE/apps/JAWS3/jaws3/Reactive_IO.cpp | 601 - ACE/apps/JAWS3/jaws3/Reactive_IO.h | 72 - ACE/apps/JAWS3/jaws3/Reactive_IO_Helpers.h | 308 - ACE/apps/JAWS3/jaws3/Signal_Task.cpp | 83 - ACE/apps/JAWS3/jaws3/Signal_Task.h | 32 - ACE/apps/JAWS3/jaws3/Symbol_Table.cpp | 12 - ACE/apps/JAWS3/jaws3/Symbol_Table.h | 53 - ACE/apps/JAWS3/jaws3/Synch_IO.cpp | 265 - ACE/apps/JAWS3/jaws3/Synch_IO.h | 65 - ACE/apps/JAWS3/jaws3/THYBRID_Concurrency.cpp | 130 - ACE/apps/JAWS3/jaws3/THYBRID_Concurrency.h | 37 - ACE/apps/JAWS3/jaws3/TPOOL_Concurrency.cpp | 80 - ACE/apps/JAWS3/jaws3/TPOOL_Concurrency.h | 32 - ACE/apps/JAWS3/jaws3/TPR_Concurrency.cpp | 89 - ACE/apps/JAWS3/jaws3/TPR_Concurrency.h | 35 - ACE/apps/JAWS3/jaws3/Task_Timer.cpp | 106 - ACE/apps/JAWS3/jaws3/Task_Timer.h | 56 - ACE/apps/JAWS3/jaws3/Templates.cpp | 72 - ACE/apps/JAWS3/jaws3/Timer.cpp | 53 - ACE/apps/JAWS3/jaws3/Timer.h | 94 - ACE/apps/JAWS3/jaws3/Timer_Helpers.cpp | 40 - ACE/apps/JAWS3/jaws3/Timer_Helpers.h | 44 - ACE/apps/JAWS3/jaws3/jaws.conf | 15 - ACE/apps/JAWS3/jaws3/jaws3.mpc | 94 - ACE/apps/JAWS3/jaws3/main.cpp | 33 - ACE/apps/JAWS3/small/SS_Data.cpp | 29 - ACE/apps/JAWS3/small/SS_Data.h | 32 - ACE/apps/JAWS3/small/SS_Service_Handler.cpp | 67 - ACE/apps/JAWS3/small/SS_Service_Handler.h | 65 - ACE/apps/JAWS3/small/SS_State_DONE.cpp | 25 - ACE/apps/JAWS3/small/SS_State_DONE.h | 31 - ACE/apps/JAWS3/small/SS_State_ERROR.cpp | 34 - ACE/apps/JAWS3/small/SS_State_ERROR.h | 30 - ACE/apps/JAWS3/small/SS_State_PARSE.cpp | 63 - ACE/apps/JAWS3/small/SS_State_PARSE.h | 30 - ACE/apps/JAWS3/small/SS_State_READ.cpp | 56 - ACE/apps/JAWS3/small/SS_State_READ.h | 30 - ACE/apps/JAWS3/small/SS_State_WRITE.cpp | 78 - ACE/apps/JAWS3/small/SS_State_WRITE.h | 30 - ACE/apps/JAWS3/small/SS_Templates.cpp | 13 - ACE/apps/JAWS3/small/jaws.conf | 5 - ACE/apps/JAWS3/small/svc.conf | 3 - ACE/apps/JAWS3/zBUILD | 17 - ACE/apps/JAWS3/zCHANGES | 73 - ACE/apps/JAWS3/zCONTRIB | 23 - ACE/apps/JAWS3/zCOPYING | 61 - ACE/apps/JAWS3/zFAQ | 36 - ACE/apps/JAWS3/zREADME | 99 - ACE/apps/JAWS3/zTHANKS | 117 - ACE/apps/JAWS3/zTODO | 6 - ACE/apps/Makefile.am | 25 - ACE/apps/README | 28 - ACE/apps/apps.mwc | 5 - ACE/apps/drwho/BS_Client.cpp | 91 - ACE/apps/drwho/BS_Client.h | 46 - ACE/apps/drwho/BS_Server.cpp | 120 - ACE/apps/drwho/BS_Server.h | 47 - ACE/apps/drwho/Binary_Search.cpp | 81 - ACE/apps/drwho/Binary_Search.h | 71 - ACE/apps/drwho/CM_Client.cpp | 143 - ACE/apps/drwho/CM_Client.h | 52 - ACE/apps/drwho/CM_Server.cpp | 109 - ACE/apps/drwho/CM_Server.h | 39 - ACE/apps/drwho/ChangeLog | 399 - ACE/apps/drwho/Comm_Manager.cpp | 11 - ACE/apps/drwho/Comm_Manager.h | 44 - ACE/apps/drwho/Drwho_Node.cpp | 101 - ACE/apps/drwho/Drwho_Node.h | 52 - ACE/apps/drwho/File_Manager.cpp | 171 - ACE/apps/drwho/File_Manager.h | 58 - ACE/apps/drwho/HT_Client.cpp | 36 - ACE/apps/drwho/HT_Client.h | 31 - ACE/apps/drwho/HT_Server.cpp | 39 - ACE/apps/drwho/HT_Server.h | 32 - ACE/apps/drwho/Hash_Table.cpp | 75 - ACE/apps/drwho/Hash_Table.h | 45 - ACE/apps/drwho/Makefile.am | 214 - ACE/apps/drwho/Multicast_Manager.cpp | 185 - ACE/apps/drwho/Multicast_Manager.h | 58 - ACE/apps/drwho/Options.cpp | 159 - ACE/apps/drwho/Options.h | 66 - ACE/apps/drwho/PMC_All.cpp | 101 - ACE/apps/drwho/PMC_All.h | 37 - ACE/apps/drwho/PMC_Flo.cpp | 126 - ACE/apps/drwho/PMC_Flo.h | 37 - ACE/apps/drwho/PMC_Ruser.cpp | 179 - ACE/apps/drwho/PMC_Ruser.h | 40 - ACE/apps/drwho/PMC_Usr.cpp | 117 - ACE/apps/drwho/PMC_Usr.h | 38 - ACE/apps/drwho/PMS_All.cpp | 102 - ACE/apps/drwho/PMS_All.h | 35 - ACE/apps/drwho/PMS_Flo.cpp | 77 - ACE/apps/drwho/PMS_Flo.h | 35 - ACE/apps/drwho/PMS_Ruser.cpp | 135 - ACE/apps/drwho/PMS_Ruser.h | 37 - ACE/apps/drwho/PMS_Usr.cpp | 83 - ACE/apps/drwho/PMS_Usr.h | 35 - ACE/apps/drwho/PM_Client.cpp | 140 - ACE/apps/drwho/PM_Client.h | 45 - ACE/apps/drwho/PM_Server.cpp | 84 - ACE/apps/drwho/PM_Server.h | 41 - ACE/apps/drwho/Protocol_Manager.cpp | 88 - ACE/apps/drwho/Protocol_Manager.h | 58 - ACE/apps/drwho/Protocol_Record.cpp | 97 - ACE/apps/drwho/Protocol_Record.h | 49 - ACE/apps/drwho/README | 308 - ACE/apps/drwho/Rwho_DB_Manager.cpp | 126 - ACE/apps/drwho/Rwho_DB_Manager.h | 53 - ACE/apps/drwho/SL_Client.cpp | 15 - ACE/apps/drwho/SL_Client.h | 33 - ACE/apps/drwho/SL_Server.cpp | 26 - ACE/apps/drwho/SL_Server.h | 34 - ACE/apps/drwho/SML_Client.cpp | 36 - ACE/apps/drwho/SML_Client.h | 36 - ACE/apps/drwho/SML_Server.cpp | 11 - ACE/apps/drwho/SML_Server.h | 29 - ACE/apps/drwho/SMR_Client.cpp | 22 - ACE/apps/drwho/SMR_Client.h | 29 - ACE/apps/drwho/SMR_Server.cpp | 18 - ACE/apps/drwho/SMR_Server.h | 29 - ACE/apps/drwho/SM_Client.cpp | 75 - ACE/apps/drwho/SM_Client.h | 38 - ACE/apps/drwho/SM_Server.cpp | 69 - ACE/apps/drwho/SM_Server.h | 36 - ACE/apps/drwho/Search_Struct.cpp | 23 - ACE/apps/drwho/Search_Struct.h | 41 - ACE/apps/drwho/Select_Manager.cpp | 8 - ACE/apps/drwho/Select_Manager.h | 32 - ACE/apps/drwho/Single_Lookup.cpp | 32 - ACE/apps/drwho/Single_Lookup.h | 39 - ACE/apps/drwho/client.cpp | 66 - ACE/apps/drwho/drwho.mpc | 96 - ACE/apps/drwho/global.h | 53 - ACE/apps/drwho/server.cpp | 117 - ACE/apps/gperf/COPYING | 340 - ACE/apps/gperf/ChangeLog | 2127 -- ACE/apps/gperf/Makefile.am | 27 - ACE/apps/gperf/README | 29 - ACE/apps/gperf/gperf.1 | 23 - ACE/apps/gperf/gperf.info | 1129 -- ACE/apps/gperf/gperf.mpc | 9 - ACE/apps/gperf/gperf.texi | 1187 -- ACE/apps/gperf/src/Bool_Array.cpp | 108 - ACE/apps/gperf/src/Bool_Array.h | 75 - ACE/apps/gperf/src/Gen_Perf.cpp | 458 - ACE/apps/gperf/src/Gen_Perf.h | 81 - ACE/apps/gperf/src/Hash_Table.cpp | 116 - ACE/apps/gperf/src/Hash_Table.h | 66 - ACE/apps/gperf/src/Iterator.cpp | 99 - ACE/apps/gperf/src/Iterator.h | 80 - ACE/apps/gperf/src/Key_List.cpp | 1957 -- ACE/apps/gperf/src/Key_List.h | 173 - ACE/apps/gperf/src/List_Node.cpp | 134 - ACE/apps/gperf/src/List_Node.h | 80 - ACE/apps/gperf/src/Makefile.am | 56 - ACE/apps/gperf/src/Options.cpp | 873 - ACE/apps/gperf/src/Options.h | 190 - ACE/apps/gperf/src/Vectors.cpp | 36 - ACE/apps/gperf/src/Vectors.h | 61 - ACE/apps/gperf/src/Version.cpp | 30 - ACE/apps/gperf/src/gperf.cpp | 88 - ACE/apps/gperf/src/gperf.mpc | 20 - ACE/apps/gperf/tests/Makefile.am | 305 - ACE/apps/gperf/tests/ada-pred.exp | 54 - ACE/apps/gperf/tests/ada-res.exp | 63 - ACE/apps/gperf/tests/ada.gperf | 63 - ACE/apps/gperf/tests/adadefs.gperf | 54 - ACE/apps/gperf/tests/c-parse.gperf | 56 - ACE/apps/gperf/tests/c.exp | 32 - ACE/apps/gperf/tests/c.gperf | 32 - ACE/apps/gperf/tests/corba.exp | 36 - ACE/apps/gperf/tests/corba.gperf | 36 - ACE/apps/gperf/tests/cpp-res.exp | 73 - ACE/apps/gperf/tests/cpp.gperf | 73 - ACE/apps/gperf/tests/gpc.gperf | 48 - ACE/apps/gperf/tests/gperf_test.mpb | 23 - ACE/apps/gperf/tests/gplus.gperf | 76 - ACE/apps/gperf/tests/idl.exp | 9 - ACE/apps/gperf/tests/idl.gperf | 9 - ACE/apps/gperf/tests/iout2_gen/.empty | 1 - ACE/apps/gperf/tests/irc.gperf | 63 - ACE/apps/gperf/tests/makeinfo.gperf | 116 - ACE/apps/gperf/tests/modula.exp | 106 - ACE/apps/gperf/tests/modula2.gperf | 40 - ACE/apps/gperf/tests/modula3.gperf | 106 - ACE/apps/gperf/tests/pascal.exp | 36 - ACE/apps/gperf/tests/pascal.gperf | 36 - ACE/apps/gperf/tests/tao.exp | 21 - ACE/apps/gperf/tests/tao.gperf | 21 - ACE/apps/gperf/tests/test-1.exp | 165 - ACE/apps/gperf/tests/test-2.exp | 214 - ACE/apps/gperf/tests/test-3.exp | 196 - ACE/apps/gperf/tests/test-4.exp | 170 - ACE/apps/gperf/tests/test-5.exp | 139 - ACE/apps/gperf/tests/test-6.exp | 90 - ACE/apps/gperf/tests/test-7.exp | 32 - ACE/apps/gperf/tests/test.cpp | 35 - ACE/apps/gperf/tests/tests.mpc | 244 - ACE/apps/gperf/version.texi | 4 - ACE/apps/mkcsregdb/Makefile.am | 39 - ACE/apps/mkcsregdb/code_set_registry1.2g.txt | 1528 -- ACE/apps/mkcsregdb/cs_test.txt | 15 - ACE/apps/mkcsregdb/iso_only.txt | 7 - ACE/apps/mkcsregdb/mkcsregdb.cpp | 328 - ACE/apps/mkcsregdb/mkcsregdb.mpc | 7 - ACE/apps/soreduce/Library.cpp | 347 - ACE/apps/soreduce/Library.h | 128 - ACE/apps/soreduce/Makefile.am | 51 - ACE/apps/soreduce/Obj_Module.cpp | 200 - ACE/apps/soreduce/Obj_Module.h | 70 - ACE/apps/soreduce/README | 163 - ACE/apps/soreduce/SO_Group.cpp | 166 - ACE/apps/soreduce/SO_Group.h | 48 - ACE/apps/soreduce/Sig_List.cpp | 184 - ACE/apps/soreduce/Sig_List.h | 49 - ACE/apps/soreduce/Signature.cpp | 45 - ACE/apps/soreduce/Signature.h | 50 - ACE/apps/soreduce/soreduce.cpp | 51 - ACE/apps/soreduce/soreduce.mpc | 15 - ACE/bin/ACE-casts-convert | 50 - ACE/bin/ACETAOCIAO.style | 304 - ACE/bin/ACEutils.pm | 117 - ACE/bin/Array.pl | 31 - ACE/bin/Array_Helper | 16 - ACE/bin/ChangeLogEditor/CVSFileLocator.pm | 125 - ACE/bin/ChangeLogEditor/ChangeLogEdit.pm | 122 - ACE/bin/ChangeLogEditor/ChangeLogEntry.pm | 145 - ACE/bin/ChangeLogEditor/EmailTranslator.pm | 52 - ACE/bin/ChangeLogEditor/FileLocator.pm | 77 - ACE/bin/ChangeLogEditor/FileLocatorFactory.pm | 34 - ACE/bin/ChangeLogEditor/SVNFileLocator.pm | 75 - ACE/bin/DependencyGenerator/GNUDependencyWriter.pm | 33 - ACE/bin/DependencyGenerator/GNUObjectGenerator.pm | 34 - ACE/bin/FOCUS/ChangeLog | 290 - ACE/bin/FOCUS/FOCUS.pl | 186 - ACE/bin/FOCUS/NEWS | 35 - ACE/bin/FOCUS/PROBLEM-REPORT-FORM | 45 - ACE/bin/FOCUS/Parser/FOCUSParser.pm | 726 - ACE/bin/FOCUS/README | 76 - ACE/bin/FOCUS/VERSION | 1 - ACE/bin/FOCUS/docs/FOCUS.html | 165 - .../Dispatch-Resolution-Optimization.spl | 172 - .../Leader_Follower_Flushing_Strategy.spl | 211 - .../specializations/Protocol_Family/IIOP/iiop.spl | 995 - ACE/bin/FOCUS/specializations/README | 16 - .../Reactor_Family/Select_Reactor_MT.spl | 452 - .../Reactor_Family/Select_Reactor_ST.spl | 468 - .../specializations/Reactor_Family/TP_Reactor.spl | 449 - .../Wait_Strategy/Wait_On_Leader_Follower.spl | 141 - .../specializations/Wait_Strategy/Wait_On_Read.spl | 131 - ACE/bin/Hash_Map_Manager.pl | 146 - ACE/bin/Hash_Map_Manager_Helper | 76 - ACE/bin/LabVIEW_RT/PXI_Reset.exe | Bin 890570 -> 0 bytes ACE/bin/LabVIEW_RT/PXI_Reset.ini | 14 - ACE/bin/LabVIEW_RT/README | 57 - ACE/bin/LabVIEW_RT/Reboot_Target.exe | Bin 147456 -> 0 bytes ACE/bin/LabVIEW_RT/Reboot_Target.ini | 14 - .../LabVIEW_RT/labview_test_controller/ReadMe.txt | 77 - .../labview_test_controller.cpp | 599 - .../labview_test_controller.sln | 32 - .../labview_test_controller.vcproj | 158 - .../LabVIEW_RT/labview_test_controller/stdafx.cpp | 9 - .../LabVIEW_RT/labview_test_controller/stdafx.h | 14 - .../LabVIEW_RT/labview_test_controller/test.cpp | 17 - .../LabVIEW_RT/labview_test_controller/test.vcproj | 134 - ACE/bin/MakeProjectCreator/README | 37 - ACE/bin/MakeProjectCreator/config/MPC.cfg | 2 - ACE/bin/MakeProjectCreator/config/ace_athena.mpb | 7 - ACE/bin/MakeProjectCreator/config/ace_fl.mpb | 29 - .../MakeProjectCreator/config/ace_flreactor.mpb | 8 - ACE/bin/MakeProjectCreator/config/ace_for_tao.mpb | 11 - ACE/bin/MakeProjectCreator/config/ace_fox.mpb | 19 - .../MakeProjectCreator/config/ace_foxreactor.mpb | 8 - ACE/bin/MakeProjectCreator/config/ace_gl.mpb | 16 - ACE/bin/MakeProjectCreator/config/ace_gtk.mpb | 13 - ACE/bin/MakeProjectCreator/config/ace_mfc.mpb | 6 - ACE/bin/MakeProjectCreator/config/ace_motif.mpb | 7 - ACE/bin/MakeProjectCreator/config/ace_openssl.mpb | 30 - ACE/bin/MakeProjectCreator/config/ace_output.mpb | 12 - ACE/bin/MakeProjectCreator/config/ace_qt.mpb | 28 - .../MakeProjectCreator/config/ace_qtreactor.mpb | 8 - ACE/bin/MakeProjectCreator/config/ace_tk.mpb | 19 - .../MakeProjectCreator/config/ace_tkreactor.mpb | 8 - ACE/bin/MakeProjectCreator/config/ace_x11.mpb | 22 - ACE/bin/MakeProjectCreator/config/ace_xt.mpb | 20 - .../MakeProjectCreator/config/ace_xtreactor.mpb | 8 - ACE/bin/MakeProjectCreator/config/ace_zzip.mpb | 15 - ACE/bin/MakeProjectCreator/config/acedefaults.mpb | 21 - ACE/bin/MakeProjectCreator/config/aceexe.mpb | 6 - ACE/bin/MakeProjectCreator/config/acelib.mpb | 6 - ACE/bin/MakeProjectCreator/config/acenosubsets.mpb | 10 - ACE/bin/MakeProjectCreator/config/acexml.mpb | 10 - .../MakeProjectCreator/config/automake.features | 38 - .../config/avoids_ace_for_tao.mpb | 6 - ACE/bin/MakeProjectCreator/config/bmake.features | 7 - ACE/bin/MakeProjectCreator/config/borland.features | 7 - ACE/bin/MakeProjectCreator/config/conv_lib.mpb | 8 - ACE/bin/MakeProjectCreator/config/core.mpb | 5 - ACE/bin/MakeProjectCreator/config/crosscompile.mpb | 14 - ACE/bin/MakeProjectCreator/config/default.rel | 8 - ACE/bin/MakeProjectCreator/config/em3.features | 7 - ACE/bin/MakeProjectCreator/config/exceptions.mpb | 6 - ACE/bin/MakeProjectCreator/config/global.features | 121 - ACE/bin/MakeProjectCreator/config/gnuace.features | 10 - ACE/bin/MakeProjectCreator/config/htbp.mpb | 10 - ACE/bin/MakeProjectCreator/config/install.mpb | 5 - ACE/bin/MakeProjectCreator/config/install_bin.mpb | 8 - .../MakeProjectCreator/config/install_headers.mpb | 8 - ACE/bin/MakeProjectCreator/config/install_lib.mpb | 8 - ACE/bin/MakeProjectCreator/config/ipv6.mpb | 14 - ACE/bin/MakeProjectCreator/config/kokyu.mpb | 8 - .../MakeProjectCreator/config/labviewrt_dll.mpb | 17 - ACE/bin/MakeProjectCreator/config/man.mpb | 9 - ACE/bin/MakeProjectCreator/config/nmake.features | 7 - ACE/bin/MakeProjectCreator/config/pkgconfig.mpb | 9 - ACE/bin/MakeProjectCreator/config/qos.mpb | 8 - ACE/bin/MakeProjectCreator/config/rmcast.mpb | 9 - ACE/bin/MakeProjectCreator/config/script.mpb | 9 - ACE/bin/MakeProjectCreator/config/ssl.mpb | 12 - ACE/bin/MakeProjectCreator/config/ssl_for_tao.mpb | 12 - ACE/bin/MakeProjectCreator/config/ssl_full.mpb | 12 - ACE/bin/MakeProjectCreator/config/stl.mpb | 6 - .../MakeProjectCreator/config/support_ostream.mpb | 7 - ACE/bin/MakeProjectCreator/config/test_files.mpb | 10 - ACE/bin/MakeProjectCreator/config/threads.mpb | 6 - ACE/bin/MakeProjectCreator/config/tmcast.mpb | 9 - ACE/bin/MakeProjectCreator/config/vc71.features | 7 - ACE/bin/MakeProjectCreator/config/vc8.features | 7 - ACE/bin/MakeProjectCreator/config/vc8nmake.mpb | 6 - ACE/bin/MakeProjectCreator/config/vc9.features | 7 - ACE/bin/MakeProjectCreator/config/vc9nmake.mpb | 9 - ACE/bin/MakeProjectCreator/config/vc_warnings.mpb | 31 - ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt | 14 - ACE/bin/MakeProjectCreator/config/vcl.mpb | 16 - .../MakeProjectCreator/config/vcpartialmacros.mpt | 12 - .../config/versioned_namespace.mpb | 13 - ACE/bin/MakeProjectCreator/config/wfmo.mpb | 6 - ACE/bin/MakeProjectCreator/config/winregistry.mpb | 7 - ACE/bin/MakeProjectCreator/config/wxwindows.mpb | 21 - ACE/bin/MakeProjectCreator/docs/templates/gnu.txt | 25 - .../modules/AutomakeWorkspaceHelper.pm | 209 - .../modules/BorlandProjectCreator.pm | 126 - .../modules/BorlandWorkspaceCreator.pm | 166 - .../modules/GNUACEProjectCreator.pm | 101 - .../modules/GNUACEWorkspaceCreator.pm | 223 - .../modules/GNUAutobuildProjectCreator.pm | 27 - .../modules/GNUAutobuildWorkspaceCreator.pm | 58 - ACE/bin/MakeProjectCreator/templates/bor.mpd | 219 - ACE/bin/MakeProjectCreator/templates/bordll.mpt | 8 - ACE/bin/MakeProjectCreator/templates/borexe.mpt | 7 - ACE/bin/MakeProjectCreator/templates/gnu.mpd | 669 - ACE/bin/MakeProjectCreator/templates/gnudll.mpt | 6 - ACE/bin/MakeProjectCreator/templates/gnuexe.mpt | 4 - ACE/bin/Makefile.am | 40 - ACE/bin/PerlACE/ConfigList.pm | 176 - ACE/bin/PerlACE/MSProject.pm | 393 - ACE/bin/PerlACE/MSProject/DSP.pm | 28 - ACE/bin/PerlACE/MSProject/VCP.pm | 30 - ACE/bin/PerlACE/Makefile.am | 23 - ACE/bin/PerlACE/Process.pm | 65 - ACE/bin/PerlACE/ProcessLVRT.pm | 375 - ACE/bin/PerlACE/ProcessVX.pm | 252 - ACE/bin/PerlACE/ProcessVX_Unix.pm | 486 - ACE/bin/PerlACE/ProcessVX_Win32.pm | 434 - ACE/bin/PerlACE/Process_Unix.pm | 526 - ACE/bin/PerlACE/Process_VMS.pm | 358 - ACE/bin/PerlACE/Process_Win32.pm | 405 - ACE/bin/PerlACE/Run_Test.pm | 246 - ACE/bin/PerlACE/TestTarget.pm | 87 - ACE/bin/PerlACE/TestTarget_LVRT.pm | 161 - ACE/bin/PerlACE/perlace.mpc | 13 - ACE/bin/PythonACE/__init__.py | 2 - ACE/bin/PythonACE/fuzz/__init__.py | 97 - ACE/bin/PythonACE/fuzz/_fuzz.py | 3 - ACE/bin/PythonACE/fuzz/_generic_handler.py | 44 - ACE/bin/PythonACE/fuzz/_mailer.py | 106 - ACE/bin/PythonACE/fuzz/_path.py | 0 ACE/bin/PythonACE/fuzz/_singleton.py | 60 - ACE/bin/PythonACE/fuzz/_types.py | 6 - ACE/bin/PythonACE/fuzz/_warning_handler.py | 53 - ACE/bin/PythonACE/fuzz/check_includes.py | 20 - ACE/bin/PythonACE/fuzz/cpp_inline.py | 23 - ACE/bin/PythonACE/fuzz/inline.py | 19 - ACE/bin/PythonACE/fuzz/math_include.py | 19 - ACE/bin/PythonACE/fuzz/max_filename.py | 16 - ACE/bin/PythonACE/fuzz/max_project_len.py | 27 - ACE/bin/PythonACE/fuzz/newline.py | 17 - ACE/bin/PythonACE/fuzz/no_conflict_markers.py | 20 - ACE/bin/PythonACE/fuzz/noncvs.py | 12 - ACE/bin/PythonACE/fuzz/ptr_arith_t.py | 17 - ACE/bin/PythonACE/fuzz/refcountservantbase.py | 17 - ACE/bin/PythonACE/fuzz/streams_include.py | 19 - ACE/bin/PythonACE/fuzz/verify_changelog.py | 13 - ACE/bin/Uniqueid.pm | 28 - ACE/bin/ace-install | 513 - ACE/bin/ace_components | 111 - ACE/bin/ace_ld | 237 - ACE/bin/ace_tests.lst | 18 - ACE/bin/add_rel_link.sh | 98 - ACE/bin/aix_shr | 32 - ACE/bin/auto_compile | 607 - ACE/bin/auto_compile_wrapper | 56 - ACE/bin/auto_ptr.perl | 16 - ACE/bin/auto_run_tests.pl | 208 - ACE/bin/autoconf_compile | 520 - ACE/bin/autoconf_compile_wrapper | 56 - ACE/bin/bin.mpc | 13 - ACE/bin/bootstrap | 123 - ACE/bin/ciao_tests.lst | 16 - ACE/bin/cle.pl | 289 - ACE/bin/clean_dsp.pl | 52 - ACE/bin/clean_sems.sh | 26 - ACE/bin/clone.csh | 26 - ACE/bin/cltime.pl | 13 - ACE/bin/copy-script.sh | 8 - ACE/bin/count_lines | 236 - ACE/bin/create_ace_build | 307 - ACE/bin/create_ace_build.pl | 463 - ACE/bin/cut_cidlc.sh | 55 - ACE/bin/depgen.pl | 56 - ACE/bin/diff-builds.pl | 299 - ACE/bin/doxygen-convert-h.pl | 562 - ACE/bin/envinfo.cpp | 40 - ACE/bin/footprint_stats.sh | 76 - ACE/bin/fuzz.pl | 1860 -- ACE/bin/fuzz.py | 66 - ACE/bin/g++_metric.sh | 30 - ACE/bin/g++dep | 173 - ACE/bin/generate_compile_stats.sh | 1093 - ACE/bin/generate_doxygen.pl | 317 - ACE/bin/generate_export_file.pl | 165 - ACE/bin/generate_footprint_chart.sh | 16 - ACE/bin/generate_performance_chart.sh | 16 - ACE/bin/generate_rel_manpages | 121 - ACE/bin/generate_topinfo_charts.sh | 16 - ACE/bin/indent_macros.pl | 59 - ACE/bin/libsize.pl | 192 - ACE/bin/main2TMAIN.pl | 16 - ACE/bin/make-components | 17 - ACE/bin/make_release.py | 815 - ACE/bin/mpc.pl | 66 - ACE/bin/msvc_mpc_auto_compile.pl | 367 - ACE/bin/msvc_static_compile.pl | 416 - ACE/bin/msvc_static_order.lst | 400 - ACE/bin/mwc.pl | 66 - ACE/bin/package_copy_script.sh | 7 - ACE/bin/performance_stats.sh | 199 - ACE/bin/pippen.pl | 419 - ACE/bin/regenerate_exports.pl | 54 - ACE/bin/reverse_clean | 25 - ACE/bin/run_all.pl | 224 - ACE/bin/run_all_win32.pl | 180 - ACE/bin/sets-manager.py | 210 - ACE/bin/show_unused_macros.pl | 224 - ACE/bin/split-cpp | 422 - ACE/bin/svcconf-convert.pl | 300 - ACE/bin/svn_props.py | 48 - ACE/bin/tao_orb_tests.lst | 348 - ACE/bin/tao_other_tests.lst | 187 - ACE/bin/topinfo_iorsize_stats.sh | 78 - ACE/bin/topinfo_simple_stats.sh | 78 - ACE/bin/topinfo_stats.sh | 74 - ACE/bin/update-ace+tao.sh | 39 - ACE/bin/vx_repo_link.pl | 217 - ACE/bin/vxworks_modify.pl | 578 - ACE/configure.ac | 8237 -------- ACE/contrib/FaCE/ACE.ico | Bin 1078 -> 0 bytes ACE/contrib/FaCE/ACE_Racer.bmp | Bin 9918 -> 0 bytes ACE/contrib/FaCE/CE_ARGV.CPP | 118 - ACE/contrib/FaCE/CE_ARGV.H | 90 - ACE/contrib/FaCE/CE_Screen_Output.cpp | 166 - ACE/contrib/FaCE/CE_Screen_Output.h | 97 - ACE/contrib/FaCE/FACE.ico | Bin 1078 -> 0 bytes ACE/contrib/FaCE/FaCE.cpp | 656 - ACE/contrib/FaCE/FaCE.h | 57 - ACE/contrib/FaCE/FaCE.mpc | 16 - ACE/contrib/FaCE/FaCE.rc | 268 - ACE/contrib/FaCE/FaCENOACE.mpc | 16 - ACE/contrib/FaCE/FaCE_OS.h | 38 - ACE/contrib/FaCE/License.txt | 27 - ACE/contrib/FaCE/Main.cpp | 49 - ACE/contrib/FaCE/README | 287 - ACE/contrib/FaCE/TAO.bmp | Bin 21798 -> 0 bytes ACE/contrib/FaCE/newres.h | 43 - ACE/contrib/FaCE/resource.h | 45 - ACE/contrib/minizip/ChangeLogUnzip | 67 - ACE/contrib/minizip/crypt.h | 136 - ACE/contrib/minizip/ioapi.c | 169 - ACE/contrib/minizip/ioapi.h | 78 - ACE/contrib/minizip/miniunz.c | 587 - ACE/contrib/minizip/minizip.c | 422 - ACE/contrib/minizip/minizip.mpc | 23 - ACE/contrib/minizip/minizip_export.h | 33 - ACE/contrib/minizip/mztools.c | 282 - ACE/contrib/minizip/mztools.h | 32 - ACE/contrib/minizip/unzip.c | 1536 -- ACE/contrib/minizip/unzip.h | 368 - ACE/contrib/minizip/zip.c | 1164 -- ACE/contrib/minizip/zip.h | 245 - .../utility/BuildRules/Archive.gcc.post.rules | 47 - .../utility/BuildRules/Archive.gcc.pre.rules | 28 - ACE/contrib/utility/BuildRules/Archive.post.rules | 7 - ACE/contrib/utility/BuildRules/Archive.pre.rules | 7 - ACE/contrib/utility/BuildRules/Bootstrap.rules | 95 - .../utility/BuildRules/Documentation.post.rules | 35 - .../utility/BuildRules/Documentation.pre.rules | 18 - .../utility/BuildRules/Executable.gcc.post.rules | 46 - .../utility/BuildRules/Executable.gcc.pre.rules | 26 - .../BuildRules/Executable.generic.post.rules | 55 - .../BuildRules/Executable.generic.pre.rules | 26 - .../utility/BuildRules/Executable.post.rules | 8 - .../utility/BuildRules/Executable.pre.rules | 8 - .../utility/BuildRules/Object.gcc.post.rules | 38 - .../utility/BuildRules/Object.gcc.pre.rules | 22 - ACE/contrib/utility/BuildRules/Object.post.rules | 7 - ACE/contrib/utility/BuildRules/Object.pre.rules | 7 - .../utility/BuildRules/Recursion.post.rules | 37 - ACE/contrib/utility/BuildRules/Recursion.pre.rules | 13 - .../utility/BuildRules/Shared.gcc.post.rules | 43 - .../utility/BuildRules/Shared.gcc.pre.rules | 26 - .../utility/BuildRules/Shared.generic.post.rules | 51 - .../utility/BuildRules/Shared.generic.pre.rules | 26 - ACE/contrib/utility/BuildRules/Shared.post.rules | 7 - ACE/contrib/utility/BuildRules/Shared.pre.rules | 7 - ACE/contrib/utility/BuildRules/Thoughts | 55 - ACE/contrib/utility/Documentation/Build.xhtml | 58 - .../utility/Documentation/CommandLine/News.xhtml | 31 - .../Documentation/CommandLine/Terminology.xhtml | 272 - .../utility/Documentation/CommandLine/Thoughts | 8 - .../utility/Documentation/CommandLine/index.xhtml | 39 - .../utility/Documentation/ExH/Compound.hpp.html | 50 - .../utility/Documentation/ExH/Example/Makefile | 26 - .../Documentation/ExH/Example/bad_cast.cpp.html | 63 - .../Documentation/ExH/Example/compound.cpp.html | 153 - .../Documentation/ExH/Example/hello_world.cpp.html | 152 - .../ExH/Example/logic_to_system.cpp.html | 69 - .../ExH/Logic/DescriptiveException.hpp.html | 61 - .../Documentation/ExH/Logic/Exception.hpp.html | 43 - .../utility/Documentation/ExH/Logic/Makefile | 20 - ACE/contrib/utility/Documentation/ExH/Makefile | 16 - .../Documentation/ExH/Makefile.documentation | 20 - ACE/contrib/utility/Documentation/ExH/News.xhtml | 47 - .../ExH/System/DescriptiveException.hpp.html | 64 - .../Documentation/ExH/System/Exception.hpp.html | 32 - .../utility/Documentation/ExH/System/Makefile | 20 - ACE/contrib/utility/Documentation/ExH/index.xhtml | 60 - .../utility/Documentation/Hetero/News.xhtml | 31 - .../utility/Documentation/Hetero/index.xhtml | 62 - .../utility/Documentation/Introspection/News.xhtml | 38 - .../Documentation/Introspection/index.xhtml | 42 - ACE/contrib/utility/Documentation/Makefile | 16 - ACE/contrib/utility/Documentation/News.xhtml | 72 - .../ReferenceCounting/DefaultImpl.hpp.html | 93 - .../ReferenceCounting/Interface.hpp.html | 82 - .../Documentation/ReferenceCounting/Makefile | 22 - .../Documentation/ReferenceCounting/News.xhtml | 90 - .../ReferenceCounting/SmartPtr.hpp.html | 103 - .../ReferenceCounting/StrictPtr.hpp.html | 107 - .../Documentation/ReferenceCounting/index.xhtml | 50 - ACE/contrib/utility/Documentation/ReleaseProcess | 13 - ACE/contrib/utility/Documentation/Style/CXX.css | 9 - .../utility/Documentation/Style/CXX_Blue.css | 25 - .../utility/Documentation/Style/Default.css | 45 - ACE/contrib/utility/Documentation/Synch/Makefile | 16 - ACE/contrib/utility/Documentation/Synch/News.xhtml | 36 - .../utility/Documentation/Synch/Policy/Makefile | 20 - .../Documentation/Synch/Policy/Null.hpp.html | 59 - .../utility/Documentation/Synch/index.xhtml | 48 - ACE/contrib/utility/Documentation/TODO | 53 - ACE/contrib/utility/Documentation/Template.xhtml | 33 - .../utility/Documentation/Thoughts/Enum/EnumCount | 95 - .../utility/Documentation/Thoughts/Enum/EnumCount2 | 17 - .../utility/Documentation/Thoughts/Enum/EnumInfo | 45 - ACE/contrib/utility/Documentation/index.xhtml | 81 - .../utility/Example/CommandLine/Foo/command.cpp | 88 - .../utility/Example/CommandLine/Foo/foo.cpp | 184 - ACE/contrib/utility/Example/ExH/BadCast/Makefile | 24 - .../utility/Example/ExH/BadCast/bad_cast.cpp | 54 - ACE/contrib/utility/Example/ExH/Compound/Makefile | 24 - .../utility/Example/ExH/Compound/compound.cpp | 144 - .../utility/Example/ExH/HelloWorld/Makefile | 24 - .../utility/Example/ExH/HelloWorld/hello_world.cpp | 142 - .../utility/Example/ExH/LogicToSystem/Makefile | 24 - .../Example/ExH/LogicToSystem/logic_to_system.cpp | 60 - ACE/contrib/utility/Example/ExH/Makefile | 16 - .../utility/Example/Hetero/Container/Makefile | 24 - .../utility/Example/Hetero/Container/container.cpp | 112 - ACE/contrib/utility/Example/Hetero/Makefile | 16 - .../Introspection/InheritanceTree/Hierarchy.cpp | 104 - .../Introspection/InheritanceTree/Hierarchy.hpp | 61 - .../Example/Introspection/InheritanceTree/Makefile | 22 - .../InheritanceTree/inheritance_tree.cpp | 65 - ACE/contrib/utility/Example/Introspection/Makefile | 16 - .../Example/Introspection/Traversal/Makefile | 22 - .../Example/Introspection/Traversal/SyntaxTree.cpp | 119 - .../Example/Introspection/Traversal/SyntaxTree.hpp | 95 - .../Example/Introspection/Traversal/Traversal.cpp | 105 - .../Example/Introspection/Traversal/Traversal.hpp | 157 - .../Example/Introspection/Traversal/driver.cpp | 93 - ACE/contrib/utility/Example/Makefile | 16 - ACE/contrib/utility/Makefile | 18 - ACE/contrib/utility/Test/ExH/Compound/Makefile | 24 - ACE/contrib/utility/Test/ExH/Compound/compound.cpp | 115 - ACE/contrib/utility/Test/ExH/Converter/Makefile | 24 - .../utility/Test/ExH/Converter/converter.cpp | 50 - ACE/contrib/utility/Test/ExH/Inline/Makefile | 24 - ACE/contrib/utility/Test/ExH/Inline/inline.cpp | 19 - ACE/contrib/utility/Test/ExH/Inline/unit.cpp | 8 - .../Test/ExH/Logic/DescriptiveException/Makefile | 24 - .../DescriptiveException/descriptive_exception.cpp | 110 - ACE/contrib/utility/Test/ExH/Logic/Makefile | 16 - ACE/contrib/utility/Test/ExH/Makefile | 16 - .../Test/ExH/System/DescriptiveException/Makefile | 24 - .../DescriptiveException/descriptive_exception.cpp | 109 - ACE/contrib/utility/Test/ExH/System/Makefile | 16 - .../utility/Test/Introspection/Inline/Makefile | 24 - .../utility/Test/Introspection/Inline/inline.cpp | 20 - .../utility/Test/Introspection/Inline/unit.cpp | 8 - ACE/contrib/utility/Test/Introspection/Makefile | 16 - ACE/contrib/utility/Test/Makefile | 18 - .../Test/ReferenceCounting/DefaultImpl/Makefile | 24 - .../ReferenceCounting/DefaultImpl/default_impl.cpp | 132 - .../utility/Test/ReferenceCounting/Inline/Makefile | 24 - .../Test/ReferenceCounting/Inline/inline.cpp | 16 - .../utility/Test/ReferenceCounting/Inline/unit.cpp | 8 - .../Test/ReferenceCounting/Interface/Makefile | 24 - .../Test/ReferenceCounting/Interface/interface.cpp | 104 - .../utility/Test/ReferenceCounting/Makefile | 16 - .../Test/ReferenceCounting/SmartPtr/Makefile | 24 - .../Test/ReferenceCounting/SmartPtr/smart_ptr.cpp | 220 - .../Test/ReferenceCounting/StrictPtr/Makefile | 24 - .../ReferenceCounting/StrictPtr/strict_ptr.cpp | 218 - ACE/contrib/utility/Test/Synch/Inline/Makefile | 24 - ACE/contrib/utility/Test/Synch/Inline/inline.cpp | 20 - ACE/contrib/utility/Test/Synch/Inline/unit.cpp | 8 - ACE/contrib/utility/Test/Synch/Makefile | 16 - ACE/contrib/utility/Utility/ExH/Compound.hpp | 49 - ACE/contrib/utility/Utility/ExH/Compound.tpp | 74 - ACE/contrib/utility/Utility/ExH/Converter.hpp | 24 - ACE/contrib/utility/Utility/ExH/Converter.tpp | 19 - ACE/contrib/utility/Utility/ExH/ExH.hpp | 22 - .../Utility/ExH/Logic/DescriptiveException.hpp | 65 - .../Utility/ExH/Logic/DescriptiveException.ipp | 106 - .../Utility/ExH/Logic/DescriptiveException.tpp | 23 - .../utility/Utility/ExH/Logic/Exception.hpp | 42 - .../utility/Utility/ExH/Logic/Exception.ipp | 20 - .../utility/Utility/ExH/StringStreamConverter.hpp | 26 - .../utility/Utility/ExH/StringStreamConverter.ipp | 18 - .../Utility/ExH/System/DescriptiveException.hpp | 65 - .../Utility/ExH/System/DescriptiveException.ipp | 91 - .../Utility/ExH/System/DescriptiveException.tpp | 23 - .../utility/Utility/ExH/System/Exception.hpp | 29 - ACE/contrib/utility/Utility/Hetero/Container.hpp | 182 - ACE/contrib/utility/Utility/Hetero/Shell.hpp | 86 - ACE/contrib/utility/Utility/Hetero/TypeList.hpp | 46 - .../utility/Utility/Hetero/TypedContainer.hpp | 57 - ACE/contrib/utility/Utility/Hetero/Vector.hpp | 47 - .../Utility/Introspection/Introspection.hpp | 14 - ACE/contrib/utility/Utility/Introspection/Makefile | 19 - .../utility/Utility/Introspection/Object.cpp | 24 - .../utility/Utility/Introspection/Object.hpp | 47 - .../utility/Utility/Introspection/Object.ipp | 48 - .../utility/Utility/Introspection/TypeId.cpp | 21 - .../utility/Utility/Introspection/TypeId.hpp | 47 - .../utility/Utility/Introspection/TypeId.ipp | 37 - .../utility/Utility/Introspection/TypeId.tpp | 18 - .../utility/Utility/Introspection/TypeInfo.hpp | 104 - .../utility/Utility/Introspection/TypeInfo.ipp | 77 - ACE/contrib/utility/Utility/Makefile | 16 - .../Utility/ReferenceCounting/DefaultImpl.hpp | 97 - .../Utility/ReferenceCounting/DefaultImpl.ipp | 105 - .../Utility/ReferenceCounting/ExternalLockImpl.hpp | 60 - .../Utility/ReferenceCounting/ExternalLockImpl.ipp | 122 - .../Utility/ReferenceCounting/Interface.hpp | 80 - .../Utility/ReferenceCounting/Interface.ipp | 22 - .../Utility/ReferenceCounting/Interface.tpp | 19 - .../ReferenceCounting/ReferenceCounting.hpp | 16 - .../utility/Utility/ReferenceCounting/SmartPtr.hpp | 97 - .../utility/Utility/ReferenceCounting/SmartPtr.tpp | 164 - .../Utility/ReferenceCounting/StrictPtr.hpp | 102 - .../Utility/ReferenceCounting/StrictPtr.tpp | 161 - ACE/contrib/utility/Utility/Synch/Policy/Null.hpp | 54 - ACE/contrib/utility/Utility/Synch/Policy/Null.ipp | 20 - ACE/contrib/utility/Vault/StringConverter.hpp | 27 - ACE/contrib/utility/Vault/StringConverter.ipp | 18 - ACE/contrib/utility/Vault/hetero/map | 13 - ACE/contrib/utility/Vault/hetero/map.hpp | 249 - ACE/contrib/utility/Vault/hetero/map.tpp | 12 - ACE/contrib/utility/Version | 3 - ACE/contrib/utility/license.html | 79 - ACE/docs/ACE-FMM.html | 332 - ACE/docs/ACE-SSL.html | 45 - ACE/docs/ACE-bug-process.html | 208 - ACE/docs/ACE-categories.html | 753 - ACE/docs/ACE-development-process.html | 207 - ACE/docs/ACE-guidelines.html | 1371 -- ACE/docs/ACE-lessons.html | 270 - ACE/docs/ACE-porting.html | 198 - ACE/docs/ACE-subsets.html | 196 - ACE/docs/CE-status.txt | 51 - ACE/docs/Download.html | 453 - ACE/docs/README.tutorials | 7 - ACE/docs/Symbol_Versioning.html | 233 - ACE/docs/ace_guidelines.vsmacros | Bin 67072 -> 0 bytes ACE/docs/bczar/bczar.html | 372 - ACE/docs/bczar/privileges.html | 63 - ACE/docs/exceptions.html | 655 - ACE/docs/index.html | 99 - ACE/docs/msvc_notes.txt | 132 - ACE/docs/run_test.txt | 232 - ACE/docs/svn/config | 142 - ACE/docs/svn/svn-prefs.reg | 97 - ACE/docs/usage-bugzilla.html | 102 - ACE/docs/wchar.txt | 128 - ACE/etc/DOC-way.html | 63 - ACE/etc/README | 32 - ACE/etc/ace.doxygen | 171 - ACE/etc/ace_man.doxygen | 160 - ACE/etc/ace_qos.doxygen | 160 - ACE/etc/ace_rmcast.doxygen | 160 - ACE/etc/ace_ssl.doxygen | 160 - ACE/etc/acexml.doxygen | 160 - ACE/etc/ciao.doxygen | 169 - ACE/etc/ciao_DAnCE.doxygen | 167 - ACE/etc/ciao_config_handlers.doxygen | 168 - ACE/etc/doxygen.css | 4 - ACE/etc/enforce_ace_try.diff | 271 - ACE/etc/index.html | 70 - ACE/etc/purify.solaris2 | 161 - ACE/etc/tao.doxygen | 159 - ACE/etc/tao_anytypecode.doxygen | 160 - ACE/etc/tao_av.doxygen | 164 - ACE/etc/tao_compression.doxygen | 160 - ACE/etc/tao_cosevent.doxygen | 165 - ACE/etc/tao_cosnaming.doxygen | 161 - ACE/etc/tao_cosnotification.doxygen | 171 - ACE/etc/tao_costime.doxygen | 162 - ACE/etc/tao_costrader.doxygen | 165 - ACE/etc/tao_dynamicany.doxygen | 160 - ACE/etc/tao_dynamicinterface.doxygen | 159 - ACE/etc/tao_esf.doxygen | 161 - ACE/etc/tao_ifr.doxygen | 163 - ACE/etc/tao_implrepo.doxygen | 162 - ACE/etc/tao_iormanip.doxygen | 160 - ACE/etc/tao_iortable.doxygen | 160 - ACE/etc/tao_pi.doxygen | 160 - ACE/etc/tao_pi_server.doxygen | 160 - ACE/etc/tao_portablegroup.doxygen | 164 - ACE/etc/tao_portableserver.doxygen | 160 - ACE/etc/tao_pss.doxygen | 161 - ACE/etc/tao_rtcorba.doxygen | 160 - ACE/etc/tao_rtevent.doxygen | 171 - ACE/etc/tao_rtportableserver.doxygen | 160 - ACE/etc/tao_security.doxygen | 166 - ACE/etc/tao_smartproxies.doxygen | 159 - ACE/etc/tao_ssliop.doxygen | 167 - ACE/etc/tao_strategies.doxygen | 159 - ACE/etc/tao_transportcurrent.doxygen | 161 - ACE/etc/xlc_dummy.cpp | 8 - ACE/examples/APG/Active_Objects/AO.cpp | 188 - ACE/examples/APG/Active_Objects/AO2.cpp | 199 - ACE/examples/APG/Active_Objects/Makefile.am | 58 - ACE/examples/APG/Active_Objects/active_objects.mpc | 18 - ACE/examples/APG/Config/ARGV_Example.cpp | 62 - ACE/examples/APG/Config/Get_Opt.cpp | 59 - ACE/examples/APG/Config/Get_Opt_Long.cpp | 48 - ACE/examples/APG/Config/HASTATUS_export.h | 54 - ACE/examples/APG/Config/HA_Status.cpp | 98 - ACE/examples/APG/Config/Makefile.am | 85 - ACE/examples/APG/Config/config.mpc | 31 - ACE/examples/APG/Containers/Allocator.cpp | 93 - ACE/examples/APG/Containers/Array.cpp | 41 - ACE/examples/APG/Containers/DLList.cpp | 116 - ACE/examples/APG/Containers/DataElement.h | 52 - ACE/examples/APG/Containers/Hash_Map.cpp | 118 - ACE/examples/APG/Containers/Hash_Map_Hash.cpp | 111 - ACE/examples/APG/Containers/Hash_Map_Hash.h | 57 - ACE/examples/APG/Containers/KeyType.h | 28 - ACE/examples/APG/Containers/Makefile.am | 235 - ACE/examples/APG/Containers/Map_Manager.cpp | 117 - .../APG/Containers/Map_Manager_Specialization.cpp | 153 - ACE/examples/APG/Containers/Queues.cpp | 115 - ACE/examples/APG/Containers/RB_Tree.cpp | 135 - ACE/examples/APG/Containers/RB_Tree_Functors.cpp | 134 - ACE/examples/APG/Containers/RB_Tree_Functors.h | 37 - ACE/examples/APG/Containers/Sets.cpp | 123 - ACE/examples/APG/Containers/Stacks.cpp | 147 - ACE/examples/APG/Containers/containers.mpc | 87 - ACE/examples/APG/Logging/Callback-2.h | 44 - ACE/examples/APG/Logging/Callback-3.h | 69 - ACE/examples/APG/Logging/Callback.h | 25 - .../APG/Logging/Change_Instance_Default.cpp | 37 - ACE/examples/APG/Logging/Change_Mask.cpp | 29 - ACE/examples/APG/Logging/Howto_Syslog.cpp | 28 - ACE/examples/APG/Logging/LogManager.h | 102 - ACE/examples/APG/Logging/Log_Msg_Alt.h | 19 - ACE/examples/APG/Logging/Makefile.am | 380 - ACE/examples/APG/Logging/Simple1.cpp | 23 - ACE/examples/APG/Logging/Simple2.cpp | 25 - ACE/examples/APG/Logging/Trace.h | 157 - ACE/examples/APG/Logging/Trace_Return.cpp | 41 - ACE/examples/APG/Logging/Use_Callback.cpp | 20 - ACE/examples/APG/Logging/Use_Callback2.cpp | 20 - ACE/examples/APG/Logging/Use_LogManager.cpp | 33 - ACE/examples/APG/Logging/Use_Logger.cpp | 17 - ACE/examples/APG/Logging/Use_Logging_Server.cpp | 20 - ACE/examples/APG/Logging/Use_Logging_Strategy.cpp | 33 - ACE/examples/APG/Logging/Use_Multiple_Sinks.cpp | 34 - ACE/examples/APG/Logging/Use_Ostream.cpp | 36 - ACE/examples/APG/Logging/Use_Stderr.cpp | 38 - ACE/examples/APG/Logging/Use_Syslog.cpp | 32 - ACE/examples/APG/Logging/Wrap_Macros.cpp | 38 - ACE/examples/APG/Logging/Wrap_Macros_Alt.cpp | 18 - ACE/examples/APG/Logging/client.conf | 1 - ACE/examples/APG/Logging/logging.mpc | 128 - ACE/examples/APG/Logging/logging_strategy.conf | 1 - ACE/examples/APG/Logging/server.conf | 3 - ACE/examples/APG/Makefile.am | 31 - ACE/examples/APG/Misc_IPC/Makefile.am | 72 - ACE/examples/APG/Misc_IPC/UDP_Broadcast.cpp | 34 - ACE/examples/APG/Misc_IPC/UDP_Multicast.cpp | 37 - ACE/examples/APG/Misc_IPC/UDP_Unicast.cpp | 71 - ACE/examples/APG/Misc_IPC/misc_ipc.mpc | 25 - ACE/examples/APG/Naming/EMail.h | 28 - ACE/examples/APG/Naming/Graph.cpp | 47 - ACE/examples/APG/Naming/Graph.h | 18 - ACE/examples/APG/Naming/Graphable_Element.cpp | 4 - ACE/examples/APG/Naming/Graphable_Element.h | 53 - ACE/examples/APG/Naming/Makefile.am | 128 - ACE/examples/APG/Naming/Name_Binding.h | 61 - ACE/examples/APG/Naming/Naming_Context.h | 70 - ACE/examples/APG/Naming/Netlocal.cpp | 40 - ACE/examples/APG/Naming/Netlocal_reader.cpp | 23 - ACE/examples/APG/Naming/Nodelocal.cpp | 37 - ACE/examples/APG/Naming/Nodelocal_shared.cpp | 43 - .../APG/Naming/Nodelocal_shared_reader.cpp | 23 - ACE/examples/APG/Naming/Temperature_Grapher.cpp | 81 - ACE/examples/APG/Naming/Temperature_Grapher.h | 30 - .../APG/Naming/Temperature_Grapher_Options.h | 21 - ACE/examples/APG/Naming/Temperature_Monitor.cpp | 133 - ACE/examples/APG/Naming/Temperature_Monitor.h | 29 - ACE/examples/APG/Naming/Temperature_Monitor2.cpp | 145 - ACE/examples/APG/Naming/Temperature_Monitor2.h | 36 - .../APG/Naming/Temperature_Monitor_Options.h | 48 - ACE/examples/APG/Naming/Thermometer.h | 48 - ACE/examples/APG/Naming/naming.mpc | 55 - ACE/examples/APG/Naming/svc.conf | 1 - ACE/examples/APG/Proactor/HA_Proactive_Status.cpp | 163 - ACE/examples/APG/Proactor/HA_Proactive_Status.h | 87 - ACE/examples/APG/Proactor/Makefile.am | 40 - ACE/examples/APG/Proactor/proactor.mpc | 10 - ACE/examples/APG/Processes/Makefile.am | 94 - .../APG/Processes/Process_Manager_Death.cpp | 67 - .../APG/Processes/Process_Manager_Spawn.cpp | 59 - ACE/examples/APG/Processes/Process_Mutex.cpp | 79 - ACE/examples/APG/Processes/Spawn.cpp | 207 - ACE/examples/APG/Processes/processes.mpc | 34 - ACE/examples/APG/Reactor/Client.cpp | 118 - ACE/examples/APG/Reactor/Client.h | 52 - ACE/examples/APG/Reactor/ClientService.h | 40 - ACE/examples/APG/Reactor/HAStatus-AC.cpp | 141 - ACE/examples/APG/Reactor/HAStatus.cpp | 336 - ACE/examples/APG/Reactor/Makefile.am | 147 - ACE/examples/APG/Reactor/Reschedule.cpp | 83 - ACE/examples/APG/Reactor/Schedule_Timers.cpp | 65 - ACE/examples/APG/Reactor/Timer_Cancel.cpp | 106 - ACE/examples/APG/Reactor/Timer_State_Data.cpp | 153 - ACE/examples/APG/Reactor/Timers.cpp | 82 - ACE/examples/APG/Reactor/reactor.mpc | 58 - ACE/examples/APG/Shared_Memory/Hash_Map.cpp | 250 - ACE/examples/APG/Shared_Memory/Makefile.am | 117 - ACE/examples/APG/Shared_Memory/Malloc.cpp | 113 - ACE/examples/APG/Shared_Memory/Mem_Map.cpp | 35 - ACE/examples/APG/Shared_Memory/PI_Malloc.cpp | 140 - ACE/examples/APG/Shared_Memory/Pool_Growth.cpp | 261 - ACE/examples/APG/Shared_Memory/Record.h | 45 - ACE/examples/APG/Shared_Memory/shared_memory.mpc | 42 - ACE/examples/APG/Signals/Makefile.am | 90 - ACE/examples/APG/Signals/SigAction.cpp | 75 - ACE/examples/APG/Signals/SigGuard.cpp | 43 - ACE/examples/APG/Signals/SigHandler.cpp | 60 - ACE/examples/APG/Signals/SigHandlers.cpp | 54 - ACE/examples/APG/Signals/SigInfo.cpp | 169 - ACE/examples/APG/Signals/signals.mpc | 37 - ACE/examples/APG/Sockets/Basic.cpp | 36 - ACE/examples/APG/Sockets/Basic_Robust.cpp | 137 - ACE/examples/APG/Sockets/Iovec.cpp | 85 - ACE/examples/APG/Sockets/Makefile.am | 76 - ACE/examples/APG/Sockets/Server.cpp | 97 - ACE/examples/APG/Sockets/sockets.mpc | 30 - ACE/examples/APG/Streams/Answerer.cpp | 407 - ACE/examples/APG/Streams/BasicTask.h | 143 - ACE/examples/APG/Streams/Command.h | 40 - ACE/examples/APG/Streams/CommandModule.cpp | 20 - ACE/examples/APG/Streams/CommandModule.h | 27 - ACE/examples/APG/Streams/CommandStream.cpp | 97 - ACE/examples/APG/Streams/CommandStream.h | 44 - ACE/examples/APG/Streams/CommandTask.cpp | 153 - ACE/examples/APG/Streams/CommandTask.h | 39 - ACE/examples/APG/Streams/CommandTasks.cpp | 221 - ACE/examples/APG/Streams/CommandTasks.h | 108 - ACE/examples/APG/Streams/EndTask.h | 27 - ACE/examples/APG/Streams/Makefile.am | 53 - ACE/examples/APG/Streams/Message.h | 92 - ACE/examples/APG/Streams/MessageInfo.h | 100 - ACE/examples/APG/Streams/RecordingDevice.h | 119 - .../APG/Streams/RecordingDeviceFactory.cpp | 25 - ACE/examples/APG/Streams/RecordingDeviceFactory.h | 22 - ACE/examples/APG/Streams/RecordingDevice_QC.h | 5 - ACE/examples/APG/Streams/RecordingDevice_Text.cpp | 197 - ACE/examples/APG/Streams/RecordingDevice_Text.h | 84 - ACE/examples/APG/Streams/RecordingDevice_USRVM.h | 5 - ACE/examples/APG/Streams/Util.h | 92 - ACE/examples/APG/Streams/streams.mpc | 17 - ACE/examples/APG/Svc_Config/HASTATUS_export.h | 53 - .../Svc_Config/HA_Configurable_Server_Dynamic.cpp | 17 - .../Svc_Config/HA_Configurable_Server_Static.cpp | 18 - ACE/examples/APG/Svc_Config/HA_Status_Dynamic.cpp | 113 - ACE/examples/APG/Svc_Config/HA_Status_Dynamic.h | 43 - ACE/examples/APG/Svc_Config/HA_Status_Static.cpp | 121 - ACE/examples/APG/Svc_Config/HA_Status_Static.h | 40 - ACE/examples/APG/Svc_Config/Makefile.am | 82 - ACE/examples/APG/Svc_Config/status.ini | 2 - ACE/examples/APG/Svc_Config/svc.conf.dynamic | 2 - ACE/examples/APG/Svc_Config/svc.conf.static | 1 - ACE/examples/APG/Svc_Config/svc_config.mpc | 28 - ACE/examples/APG/ThreadManagement/Async_Cancel.cpp | 63 - ACE/examples/APG/ThreadManagement/Coop_Cancel.cpp | 68 - ACE/examples/APG/ThreadManagement/ExitHandler.cpp | 71 - ACE/examples/APG/ThreadManagement/Makefile.am | 155 - ACE/examples/APG/ThreadManagement/Pool.cpp | 46 - ACE/examples/APG/ThreadManagement/Priorities.cpp | 104 - .../APG/ThreadManagement/SecurityContext.h | 16 - ACE/examples/APG/ThreadManagement/Signals.cpp | 93 - ACE/examples/APG/ThreadManagement/Signals2.cpp | 97 - ACE/examples/APG/ThreadManagement/Start_Hook.cpp | 60 - ACE/examples/APG/ThreadManagement/State.cpp | 39 - ACE/examples/APG/ThreadManagement/threadmgmt.mpc | 65 - ACE/examples/APG/ThreadPools/Futures.cpp | 321 - ACE/examples/APG/ThreadPools/LF_ThreadPool.cpp | 254 - ACE/examples/APG/ThreadPools/Makefile.am | 101 - ACE/examples/APG/ThreadPools/Request_Handler.h | 34 - ACE/examples/APG/ThreadPools/TP_Reactor.cpp | 269 - ACE/examples/APG/ThreadPools/Task_ThreadPool.cpp | 149 - ACE/examples/APG/ThreadPools/ThreadPool.cpp | 271 - ACE/examples/APG/ThreadPools/threadpools.mpc | 38 - ACE/examples/APG/ThreadSafety/Atomic_Op.cpp | 127 - ACE/examples/APG/ThreadSafety/Barrier.cpp | 91 - ACE/examples/APG/ThreadSafety/ClientContext.h | 30 - ACE/examples/APG/ThreadSafety/Makefile.am | 149 - ACE/examples/APG/ThreadSafety/Mutex.cpp | 73 - ACE/examples/APG/ThreadSafety/RW_Lock.cpp | 139 - ACE/examples/APG/ThreadSafety/Semaphore.cpp | 149 - ACE/examples/APG/ThreadSafety/TSS.cpp | 75 - ACE/examples/APG/ThreadSafety/Tokens.cpp | 102 - ACE/examples/APG/ThreadSafety/Tokens_Deadlock.cpp | 69 - ACE/examples/APG/ThreadSafety/threadsafety.mpc | 60 - ACE/examples/APG/Threads/Activate.cpp | 33 - ACE/examples/APG/Threads/Condition_Variables.cpp | 121 - ACE/examples/APG/Threads/Guards.cpp | 95 - ACE/examples/APG/Threads/Makefile.am | 110 - ACE/examples/APG/Threads/Message_Blocks.cpp | 50 - ACE/examples/APG/Threads/Message_Queue.cpp | 179 - ACE/examples/APG/Threads/Message_Receiver.h | 90 - ACE/examples/APG/Threads/Mutexes.cpp | 75 - ACE/examples/APG/Threads/threads.mpc | 44 - ACE/examples/APG/Timers/Alarm.cpp | 57 - ACE/examples/APG/Timers/CB.cpp | 70 - ACE/examples/APG/Timers/CB.h | 36 - ACE/examples/APG/Timers/Makefile.am | 95 - ACE/examples/APG/Timers/PCB.cpp | 79 - ACE/examples/APG/Timers/PCB.h | 29 - ACE/examples/APG/Timers/PTimerDispatcher.cpp | 69 - ACE/examples/APG/Timers/PTimerDispatcher.h | 39 - ACE/examples/APG/Timers/Task.cpp | 73 - ACE/examples/APG/Timers/TimerDispatcher.cpp | 73 - ACE/examples/APG/Timers/TimerDispatcher.h | 40 - ACE/examples/APG/Timers/Timers.cpp | 58 - ACE/examples/APG/Timers/Upcall.cpp | 172 - ACE/examples/APG/Timers/Upcall.h | 87 - ACE/examples/APG/Timers/timers.mpc | 34 - ACE/examples/ASX/CCM_App/ASX_CCM_App.mpc | 26 - ACE/examples/ASX/CCM_App/CCM_App.cpp | 122 - ACE/examples/ASX/CCM_App/Makefile.am | 59 - ACE/examples/ASX/CCM_App/SC_Client.cpp | 13 - ACE/examples/ASX/CCM_App/SC_Server.cpp | 86 - ACE/examples/ASX/CCM_App/svc.conf | 21 - ACE/examples/ASX/CCM_App/svc.conf.xml | 33 - .../Event_Server/Event_Server/Consumer_Router.cpp | 159 - .../Event_Server/Event_Server/Consumer_Router.h | 71 - .../ASX/Event_Server/Event_Server/Event.mpc | 15 - .../Event_Server/Event_Server/Event_Analyzer.cpp | 80 - .../ASX/Event_Server/Event_Server/Event_Analyzer.h | 44 - .../ASX/Event_Server/Event_Server/Makefile.am | 50 - .../ASX/Event_Server/Event_Server/Options.cpp | 208 - .../ASX/Event_Server/Event_Server/Options.h | 122 - .../ASX/Event_Server/Event_Server/Options.inl | 141 - .../ASX/Event_Server/Event_Server/Peer_Router.cpp | 435 - .../ASX/Event_Server/Event_Server/Peer_Router.h | 158 - .../Event_Server/Event_Server/Supplier_Router.cpp | 165 - .../Event_Server/Event_Server/Supplier_Router.h | 72 - .../ASX/Event_Server/Event_Server/event_server.cpp | 258 - ACE/examples/ASX/Event_Server/Makefile.am | 14 - ACE/examples/ASX/Event_Server/README | 79 - .../ASX/Event_Server/Transceiver/Makefile.am | 35 - .../ASX/Event_Server/Transceiver/Transceiver.mpc | 9 - .../ASX/Event_Server/Transceiver/transceiver.cpp | 238 - .../ASX/Event_Server/Transceiver/transceiver.h | 60 - ACE/examples/ASX/Makefile.am | 16 - .../ASX/Message_Queue/ASX_Message_Queue.mpc | 25 - ACE/examples/ASX/Message_Queue/Makefile.am | 67 - ACE/examples/ASX/Message_Queue/bounded_buffer.cpp | 140 - ACE/examples/ASX/Message_Queue/buffer_stream.cpp | 314 - ACE/examples/ASX/Message_Queue/priority_buffer.cpp | 145 - .../ASX/UPIPE_Event_Server/Consumer_Router.cpp | 138 - .../ASX/UPIPE_Event_Server/Consumer_Router.h | 53 - .../ASX/UPIPE_Event_Server/Event_Analyzer.cpp | 73 - .../ASX/UPIPE_Event_Server/Event_Analyzer.h | 37 - ACE/examples/ASX/UPIPE_Event_Server/Makefile.am | 50 - ACE/examples/ASX/UPIPE_Event_Server/Options.cpp | 209 - ACE/examples/ASX/UPIPE_Event_Server/Options.h | 88 - ACE/examples/ASX/UPIPE_Event_Server/Options.inl | 166 - .../ASX/UPIPE_Event_Server/Peer_Router.cpp | 283 - ACE/examples/ASX/UPIPE_Event_Server/Peer_Router.h | 127 - .../ASX/UPIPE_Event_Server/Supplier_Router.cpp | 137 - .../ASX/UPIPE_Event_Server/Supplier_Router.h | 57 - .../ASX/UPIPE_Event_Server/UPIPE_Event.mpc | 15 - .../ASX/UPIPE_Event_Server/event_server.cpp | 271 - ACE/examples/Bounded_Packet_Relay/BPR_Drivers.cpp | 535 - ACE/examples/Bounded_Packet_Relay/BPR_Drivers.h | 290 - .../Bounded_Packet_Relay/BPR_Drivers_T.cpp | 322 - ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.h | 178 - .../Bounded_Packet_Relay/Bounded_Packet_Relay.mpc | 7 - ACE/examples/Bounded_Packet_Relay/Makefile.am | 40 - ACE/examples/Bounded_Packet_Relay/README | 194 - .../Thread_Bounded_Packet_Relay.cpp | 770 - .../Thread_Bounded_Packet_Relay.h | 400 - ACE/examples/Bounded_Packet_Relay/bpr_thread.cpp | 122 - ACE/examples/C++NPv1/C++NPv1.mpc | 70 - ACE/examples/C++NPv1/Iterative_Logging_Server.cpp | 17 - ACE/examples/C++NPv1/Iterative_Logging_Server.h | 64 - ACE/examples/C++NPv1/Logging_Client.cpp | 145 - ACE/examples/C++NPv1/Logging_Handler.cpp | 111 - ACE/examples/C++NPv1/Logging_Handler.h | 55 - ACE/examples/C++NPv1/Logging_Server.cpp | 75 - ACE/examples/C++NPv1/Logging_Server.h | 44 - ACE/examples/C++NPv1/Makefile.am | 198 - .../Process_Per_Connection_Logging_Server.cpp | 180 - .../Process_Per_Connection_Logging_Server.h | 53 - ACE/examples/C++NPv1/README | 73 - .../RT_Thread_Per_Connection_Logging_Server.cpp | 132 - .../RT_Thread_Per_Connection_Logging_Server.h | 22 - ACE/examples/C++NPv1/Reactive_Logging_Server.cpp | 17 - ACE/examples/C++NPv1/Reactive_Logging_Server.h | 80 - .../C++NPv1/Reactive_Logging_Server_Ex.cpp | 20 - ACE/examples/C++NPv1/Reactive_Logging_Server_Ex.h | 95 - .../Thread_Per_Connection_Logging_Server.cpp | 93 - .../C++NPv1/Thread_Per_Connection_Logging_Server.h | 49 - ACE/examples/C++NPv2/AC_CLD_export.h | 54 - ACE/examples/C++NPv2/AC_Client_Logging_Daemon.cpp | 429 - ACE/examples/C++NPv2/AC_Client_Logging_Daemon.h | 62 - ACE/examples/C++NPv2/AIO_CLD_export.h | 54 - ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.cpp | 362 - ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.h | 135 - ACE/examples/C++NPv2/C++NPv2.mpc | 184 - ACE/examples/C++NPv2/CLD_export.h | 38 - ACE/examples/C++NPv2/Client_Logging_Daemon.cpp | 389 - .../C++NPv2/Configurable_Logging_Server.cpp | 20 - ACE/examples/C++NPv2/Logging_Acceptor.cpp | 38 - ACE/examples/C++NPv2/Logging_Acceptor.h | 53 - ACE/examples/C++NPv2/Logging_Acceptor_Ex.h | 41 - ACE/examples/C++NPv2/Logging_Event_Handler.cpp | 45 - ACE/examples/C++NPv2/Logging_Event_Handler.h | 61 - ACE/examples/C++NPv2/Logging_Event_Handler_Ex.cpp | 41 - ACE/examples/C++NPv2/Logging_Event_Handler_Ex.h | 57 - ACE/examples/C++NPv2/Logging_Handler.cpp | 110 - ACE/examples/C++NPv2/Logging_Handler.h | 57 - ACE/examples/C++NPv2/Makefile.am | 427 - ACE/examples/C++NPv2/README | 99 - ACE/examples/C++NPv2/Reactor_Logging_Server.cpp | 29 - .../C++NPv2/Reactor_Logging_Server_Adapter.cpp | 69 - .../C++NPv2/Reactor_Logging_Server_Adapter.h | 35 - ACE/examples/C++NPv2/Reactor_Logging_Server_T.cpp | 26 - ACE/examples/C++NPv2/Reactor_Logging_Server_T.h | 29 - ACE/examples/C++NPv2/SLD.cpp | 17 - ACE/examples/C++NPv2/SLDEX_export.h | 38 - ACE/examples/C++NPv2/SLD_export.h | 38 - ACE/examples/C++NPv2/SLDex.cpp | 17 - .../C++NPv2/SR_Configurable_Logging_Server.cpp | 26 - .../C++NPv2/Select_Reactor_Logging_Server.cpp | 104 - ACE/examples/C++NPv2/Server_Shutdown.cpp | 97 - ACE/examples/C++NPv2/Service_Reporter.cpp | 125 - ACE/examples/C++NPv2/Service_Reporter.h | 38 - ACE/examples/C++NPv2/TPCLS_export.h | 54 - ACE/examples/C++NPv2/TPC_Logging_Server.cpp | 106 - ACE/examples/C++NPv2/TPC_Logging_Server.h | 87 - ACE/examples/C++NPv2/TPLS_export.h | 38 - ACE/examples/C++NPv2/TP_Logging_Server.cpp | 70 - ACE/examples/C++NPv2/TP_Logging_Server.h | 131 - ACE/examples/C++NPv2/TP_Reactor_Logging_Server.cpp | 116 - .../C++NPv2/WFMO_Reactor_Logging_Server.cpp | 145 - ACE/examples/C++NPv2/display_logfile.cpp | 366 - ACE/examples/C++NPv2/svc.conf | 8 - ACE/examples/ConfigViewer/ConfigTreeCtrl.cpp | 229 - ACE/examples/ConfigViewer/ConfigTreeCtrl.h | 52 - ACE/examples/ConfigViewer/ConfigViewer.mpc | 7 - ACE/examples/ConfigViewer/ConfigurationViewer.cpp | 45 - ACE/examples/ConfigViewer/ConfigurationViewer.rc | 9 - ACE/examples/ConfigViewer/MainFrame.cpp | 199 - ACE/examples/ConfigViewer/MainFrame.h | 72 - ACE/examples/ConfigViewer/Makefile.am | 54 - ACE/examples/ConfigViewer/README | 74 - ACE/examples/ConfigViewer/ValueDlg.cpp | 63 - ACE/examples/ConfigViewer/ValueDlg.h | 51 - ACE/examples/ConfigViewer/ValueListCtrl.cpp | 227 - ACE/examples/ConfigViewer/ValueListCtrl.h | 47 - ACE/examples/ConfigViewer/mondrian.ico | Bin 766 -> 0 bytes ACE/examples/ConfigViewer/mondrian.xpm | 44 - ACE/examples/ConfigViewer/stdafx.cpp | 3 - ACE/examples/ConfigViewer/stdafx.h | 16 - ACE/examples/Connection/Makefile.am | 15 - .../Connection/blocking/Connection_Blocking.mpc | 21 - ACE/examples/Connection/blocking/Makefile.am | 62 - ACE/examples/Connection/blocking/README | 36 - .../Connection/blocking/SPIPE-acceptor.cpp | 224 - ACE/examples/Connection/blocking/SPIPE-acceptor.h | 79 - .../Connection/blocking/SPIPE-connector.cpp | 218 - ACE/examples/Connection/blocking/SPIPE-connector.h | 82 - .../Connection/blocking/test_spipe_acceptor.cpp | 36 - .../Connection/blocking/test_spipe_connector.cpp | 21 - .../Connection/misc/Connection_Handler.cpp | 230 - ACE/examples/Connection/misc/Connection_Handler.h | 44 - ACE/examples/Connection/misc/Connection_Misc.mpc | 17 - ACE/examples/Connection/misc/Makefile.am | 55 - ACE/examples/Connection/misc/test_upipe.cpp | 122 - ACE/examples/Connection/misc/test_upipe.h | 76 - .../Connection/non_blocking/CPP-acceptor.cpp | 247 - .../Connection/non_blocking/CPP-acceptor.h | 96 - .../Connection/non_blocking/CPP-connector.cpp | 287 - .../Connection/non_blocking/CPP-connector.h | 98 - .../non_blocking/Connection_Non_Blocking.mpc | 68 - ACE/examples/Connection/non_blocking/Makefile.am | 158 - ACE/examples/Connection/non_blocking/README | 28 - .../non_blocking/test_lsock_acceptor.cpp | 49 - .../non_blocking/test_lsock_connector.cpp | 46 - .../Connection/non_blocking/test_sock_acceptor.cpp | 34 - .../non_blocking/test_sock_connector.cpp | 49 - .../non_blocking/test_spipe_acceptor.cpp | 45 - .../non_blocking/test_spipe_connector.cpp | 40 - .../Connection/non_blocking/test_tli_acceptor.cpp | 41 - .../Connection/non_blocking/test_tli_connector.cpp | 39 - ACE/examples/DLL/DLL.mpc | 22 - ACE/examples/DLL/Magazine.h | 42 - ACE/examples/DLL/Makefile.am | 65 - ACE/examples/DLL/Newsweek.cpp | 55 - ACE/examples/DLL/Newsweek.h | 59 - ACE/examples/DLL/README | 47 - ACE/examples/DLL/Today.cpp | 55 - ACE/examples/DLL/Today.h | 60 - ACE/examples/DLL/test_dll.cpp | 90 - ACE/examples/Export/Export.mpc | 19 - ACE/examples/Export/Makefile.am | 52 - ACE/examples/Export/README | 7 - ACE/examples/Export/dll.cpp | 27 - ACE/examples/Export/dll.h | 69 - ACE/examples/Export/run_test.pl | 17 - ACE/examples/Export/test.cpp | 64 - ACE/examples/Export/test_export.h | 44 - ACE/examples/IOStream/Makefile.am | 14 - ACE/examples/IOStream/README | 22 - ACE/examples/IOStream/client/IOStream_Client.mpc | 6 - ACE/examples/IOStream/client/Makefile.am | 34 - ACE/examples/IOStream/client/iostream_client.cpp | 71 - ACE/examples/IOStream/server/IOStream_Server.mpc | 6 - ACE/examples/IOStream/server/Makefile.am | 35 - ACE/examples/IOStream/server/iostream_server.cpp | 133 - ACE/examples/IOStream/server/iostream_server.h | 53 - ACE/examples/IPC_SAP/ATM_SAP/CPP-client.cpp | 202 - ACE/examples/IPC_SAP/ATM_SAP/CPP-server.cpp | 156 - ACE/examples/IPC_SAP/ATM_SAP/Makefile.am | 48 - ACE/examples/IPC_SAP/ATM_SAP/atm_sap.mpc | 16 - ACE/examples/IPC_SAP/DEV_SAP/Makefile.am | 14 - ACE/examples/IPC_SAP/DEV_SAP/README | 23 - ACE/examples/IPC_SAP/DEV_SAP/reader/Makefile.am | 39 - .../IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc | 11 - ACE/examples/IPC_SAP/DEV_SAP/reader/reader.cpp | 72 - ACE/examples/IPC_SAP/DEV_SAP/writer/Makefile.am | 39 - .../IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc | 11 - ACE/examples/IPC_SAP/DEV_SAP/writer/writer.cpp | 77 - ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp | 43 - ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp | 49 - ACE/examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp | 29 - ACE/examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp | 30 - ACE/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp | 122 - ACE/examples/IPC_SAP/FIFO_SAP/Makefile.am | 103 - ACE/examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc | 42 - ACE/examples/IPC_SAP/FILE_SAP/Makefile.am | 39 - ACE/examples/IPC_SAP/FILE_SAP/client.cpp | 90 - ACE/examples/IPC_SAP/FILE_SAP/file_sap_client.mpc | 11 - ACE/examples/IPC_SAP/FILE_SAP/testfile | 1 - ACE/examples/IPC_SAP/Makefile.am | 21 - ACE/examples/IPC_SAP/SOCK_SAP/C-inclient.cpp | 84 - ACE/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp | 116 - ACE/examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp | 427 - ACE/examples/IPC_SAP/SOCK_SAP/CPP-inclient.h | 108 - .../IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp | 586 - ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.h | 43 - .../IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp | 207 - ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp | 392 - ACE/examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp | 53 - ACE/examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp | 70 - ACE/examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp | 71 - ACE/examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp | 159 - ACE/examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp | 62 - ACE/examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp | 100 - ACE/examples/IPC_SAP/SOCK_SAP/Makefile.am | 188 - ACE/examples/IPC_SAP/SOCK_SAP/README | 46 - ACE/examples/IPC_SAP/SOCK_SAP/local_data | 1 - ACE/examples/IPC_SAP/SOCK_SAP/run_test | 36 - ACE/examples/IPC_SAP/SOCK_SAP/sock_sap.mpc | 73 - ACE/examples/IPC_SAP/SOCK_SAP/summarize | 45 - ACE/examples/IPC_SAP/SPIPE_SAP/Makefile.am | 140 - ACE/examples/IPC_SAP/SPIPE_SAP/NPClient.cpp | 62 - ACE/examples/IPC_SAP/SPIPE_SAP/NPServer.cpp | 67 - ACE/examples/IPC_SAP/SPIPE_SAP/SPIPE_SAP.mpc | 58 - ACE/examples/IPC_SAP/SPIPE_SAP/client.cpp | 48 - ACE/examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp | 59 - ACE/examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp | 56 - ACE/examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp | 66 - ACE/examples/IPC_SAP/SPIPE_SAP/producer_read.cpp | 54 - ACE/examples/IPC_SAP/SPIPE_SAP/server.cpp | 124 - ACE/examples/IPC_SAP/SPIPE_SAP/shared.h | 10 - ACE/examples/IPC_SAP/SSL_SAP/Makefile.am | 196 - ACE/examples/IPC_SAP/SSL_SAP/README | 17 - ACE/examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp | 379 - ACE/examples/IPC_SAP/SSL_SAP/SSL-client-simple.h | 98 - ACE/examples/IPC_SAP/SSL_SAP/SSL-client.cpp | 420 - ACE/examples/IPC_SAP/SSL_SAP/SSL-client.h | 111 - ACE/examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp | 610 - ACE/examples/IPC_SAP/SSL_SAP/SSL-server-fancy.h | 44 - ACE/examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp | 212 - ACE/examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp | 366 - ACE/examples/IPC_SAP/SSL_SAP/SSL-server.cpp | 430 - ACE/examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc | 50 - ACE/examples/IPC_SAP/SSL_SAP/dummy.pem | 15 - ACE/examples/IPC_SAP/SSL_SAP/key.pem | 15 - ACE/examples/IPC_SAP/SSL_SAP/local_data | 1 - ACE/examples/IPC_SAP/SSL_SAP/summarize | 45 - ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp | 162 - ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp | 114 - ACE/examples/IPC_SAP/TLI_SAP/CPP-client.cpp | 94 - ACE/examples/IPC_SAP/TLI_SAP/CPP-server.cpp | 89 - ACE/examples/IPC_SAP/TLI_SAP/Makefile.am | 132 - ACE/examples/IPC_SAP/TLI_SAP/TLI_SAP.mpc | 58 - ACE/examples/IPC_SAP/TLI_SAP/db-client.cpp | 60 - ACE/examples/IPC_SAP/TLI_SAP/db-server.cpp | 121 - ACE/examples/IPC_SAP/TLI_SAP/ftp-client.cpp | 54 - ACE/examples/IPC_SAP/TLI_SAP/ftp-server.cpp | 83 - ACE/examples/IPC_SAP/UPIPE_SAP/Makefile.am | 76 - ACE/examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc | 26 - ACE/examples/IPC_SAP/UPIPE_SAP/ex1.cpp | 183 - ACE/examples/IPC_SAP/UPIPE_SAP/ex2.cpp | 179 - ACE/examples/IPC_SAP/UPIPE_SAP/ex3.cpp | 159 - ACE/examples/Log_Msg/Log_Msg.mpc | 23 - ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.cpp | 90 - ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.h | 62 - ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.mpc | 13 - ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.rc | 207 - .../Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp | 185 - ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.h | 59 - ACE/examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp | 45 - ACE/examples/Log_Msg/Log_Msg_MFC/MFC_Log.h | 47 - ACE/examples/Log_Msg/Log_Msg_MFC/README | 40 - ACE/examples/Log_Msg/Log_Msg_MFC/Resource.h | 21 - ACE/examples/Log_Msg/Log_Msg_MFC/StdAfx.cpp | 9 - ACE/examples/Log_Msg/Log_Msg_MFC/StdAfx.h | 28 - .../Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.ico | Bin 1078 -> 0 bytes .../Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.rc2 | 13 - ACE/examples/Log_Msg/Makefile.am | 62 - ACE/examples/Log_Msg/README | 65 - ACE/examples/Log_Msg/test_callback.cpp | 166 - ACE/examples/Log_Msg/test_log_msg.cpp | 218 - ACE/examples/Log_Msg/test_ostream.cpp | 89 - .../Acceptor-server/Logger_Acceptor_Server.mpc | 6 - ACE/examples/Logger/Acceptor-server/Makefile.am | 35 - .../Logger/Acceptor-server/server_loggerd.cpp | 273 - .../Logger/Acceptor-server/server_loggerd.h | 54 - ACE/examples/Logger/Makefile.am | 15 - ACE/examples/Logger/README | 32 - ACE/examples/Logger/client/Logger_client.mpc | 6 - ACE/examples/Logger/client/Makefile.am | 34 - ACE/examples/Logger/client/logging_app.cpp | 83 - .../Logger/simple-server/Logger_Simple_Server.mpc | 6 - .../Logger/simple-server/Logging_Acceptor.cpp | 85 - .../Logger/simple-server/Logging_Acceptor.h | 59 - .../Logger/simple-server/Logging_Handler.cpp | 202 - .../Logger/simple-server/Logging_Handler.h | 71 - ACE/examples/Logger/simple-server/Makefile.am | 39 - .../Logger/simple-server/Reactor_Singleton.h | 33 - .../Logger/simple-server/server_loggerd.cpp | 85 - ACE/examples/Makefile.am | 42 - ACE/examples/Map_Manager/Makefile.am | 34 - ACE/examples/Map_Manager/Map_Manager.mpc | 6 - ACE/examples/Map_Manager/test_hash_map_manager.cpp | 80 - ACE/examples/Mem_Map/IO-tests/IO_Test.cpp | 240 - ACE/examples/Mem_Map/IO-tests/IO_Test.h | 100 - ACE/examples/Mem_Map/IO-tests/Makefile.am | 41 - ACE/examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc | 7 - ACE/examples/Mem_Map/IO-tests/test_io.cpp | 211 - ACE/examples/Mem_Map/Makefile.am | 14 - ACE/examples/Mem_Map/file-reverse/Makefile.am | 39 - .../Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc | 7 - ACE/examples/Mem_Map/file-reverse/file-reverse.cpp | 59 - ACE/examples/Misc/Makefile.am | 213 - ACE/examples/Misc/Misc.mpc | 73 - ACE/examples/Misc/test_XtReactor1.cpp | 173 - ACE/examples/Misc/test_XtReactor2.cpp | 101 - ACE/examples/Misc/test_dump.cpp | 33 - ACE/examples/Misc/test_dump.h | 50 - ACE/examples/Misc/test_get_opt.cpp | 54 - ACE/examples/Misc/test_profile_timer.cpp | 38 - ACE/examples/Misc/test_read_buffer.cpp | 34 - ACE/examples/Misc/test_set.cpp | 57 - ACE/examples/Misc/test_sstring.cpp | 26 - ACE/examples/Misc/test_timestamp.cpp | 21 - ACE/examples/Misc/test_trace.cpp | 131 - ACE/examples/NT_Service/Makefile.am | 45 - ACE/examples/NT_Service/NT_Service.mpc | 7 - ACE/examples/NT_Service/README | 45 - ACE/examples/NT_Service/main.cpp | 270 - ACE/examples/NT_Service/ntsvc.cpp | 116 - ACE/examples/NT_Service/ntsvc.h | 71 - ACE/examples/Naming/Makefile.am | 94 - ACE/examples/Naming/Naming.mpc | 38 - ACE/examples/Naming/test_multiple_contexts.cpp | 86 - ACE/examples/Naming/test_non_existent.cpp | 54 - ACE/examples/Naming/test_open.cpp | 83 - ACE/examples/Naming/test_writers.cpp | 76 - ACE/examples/OS/Makefile.am | 13 - ACE/examples/OS/Process/Makefile.am | 54 - ACE/examples/OS/Process/OS_Process.mpc | 17 - ACE/examples/OS/Process/README | 54 - ACE/examples/OS/Process/imore.cpp | 266 - ACE/examples/OS/Process/process.cpp | 587 - .../QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp | 99 - .../QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h | 76 - .../QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h | 52 - .../QOS/Change_Receiver_FlowSpec/Makefile.am | 78 - .../QOS_Change_Receiver_FlowSpec.mpc | 25 - .../QoS_Signal_Handler.cpp | 34 - .../Change_Receiver_FlowSpec/QoS_Signal_Handler.h | 45 - .../QOS/Change_Receiver_FlowSpec/QoS_Util.cpp | 122 - .../QOS/Change_Receiver_FlowSpec/QoS_Util.h | 75 - ACE/examples/QOS/Change_Receiver_FlowSpec/README | 127 - .../Receiver_QoS_Event_Handler.cpp | 216 - .../Receiver_QoS_Event_Handler.h | 61 - .../Sender_QoS_Event_Handler.cpp | 146 - .../Sender_QoS_Event_Handler.h | 59 - .../QOS/Change_Receiver_FlowSpec/receiver.cpp | 300 - .../QOS/Change_Receiver_FlowSpec/sender.cpp | 316 - .../QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp | 99 - .../QOS/Change_Sender_TSpec/Fill_ACE_QoS.h | 75 - .../QOS/Change_Sender_TSpec/FlowSpec_Dbase.h | 52 - ACE/examples/QOS/Change_Sender_TSpec/Makefile.am | 78 - .../QOS_Change_Sender_TSpec.mpc | 25 - .../QOS/Change_Sender_TSpec/QoS_Signal_Handler.cpp | 34 - .../QOS/Change_Sender_TSpec/QoS_Signal_Handler.h | 45 - ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.cpp | 122 - ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.h | 75 - ACE/examples/QOS/Change_Sender_TSpec/README | 126 - .../Receiver_QoS_Event_Handler.cpp | 145 - .../Receiver_QoS_Event_Handler.h | 61 - .../Sender_QoS_Event_Handler.cpp | 221 - .../Change_Sender_TSpec/Sender_QoS_Event_Handler.h | 59 - ACE/examples/QOS/Change_Sender_TSpec/receiver.cpp | 319 - ACE/examples/QOS/Change_Sender_TSpec/sender.cpp | 313 - ACE/examples/QOS/Diffserv/Makefile.am | 64 - ACE/examples/QOS/Diffserv/NOTES.txt | 58 - ACE/examples/QOS/Diffserv/QOS_Diffserv.mpc | 18 - ACE/examples/QOS/Diffserv/README | 107 - ACE/examples/QOS/Diffserv/diffserv_test.cpp | 137 - ACE/examples/QOS/Diffserv/run_test.pl | 40 - ACE/examples/QOS/Diffserv/server.cpp | 165 - ACE/examples/QOS/Makefile.am | 16 - ACE/examples/QOS/Simple/Fill_ACE_QoS.cpp | 99 - ACE/examples/QOS/Simple/Fill_ACE_QoS.h | 75 - ACE/examples/QOS/Simple/FlowSpec_Dbase.h | 52 - ACE/examples/QOS/Simple/Makefile.am | 78 - ACE/examples/QOS/Simple/QOS_Simple.mpc | 25 - ACE/examples/QOS/Simple/QoS_Signal_Handler.cpp | 40 - ACE/examples/QOS/Simple/QoS_Signal_Handler.h | 45 - ACE/examples/QOS/Simple/QoS_Util.cpp | 122 - ACE/examples/QOS/Simple/QoS_Util.h | 75 - ACE/examples/QOS/Simple/README | 142 - .../QOS/Simple/Receiver_QoS_Event_Handler.cpp | 137 - .../QOS/Simple/Receiver_QoS_Event_Handler.h | 61 - .../QOS/Simple/Sender_QoS_Event_Handler.cpp | 144 - ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.h | 59 - ACE/examples/QOS/Simple/receiver.cpp | 301 - ACE/examples/QOS/Simple/sender.cpp | 315 - ACE/examples/README | 77 - ACE/examples/Reactor/Dgram/CODgram.cpp | 256 - ACE/examples/Reactor/Dgram/Dgram.cpp | 260 - ACE/examples/Reactor/Dgram/Makefile.am | 53 - ACE/examples/Reactor/Dgram/Reactor_Dgram.mpc | 18 - ACE/examples/Reactor/FIFO/Makefile.am | 58 - ACE/examples/Reactor/FIFO/Reactor_FIFO.mpc | 18 - ACE/examples/Reactor/FIFO/client.cpp | 23 - ACE/examples/Reactor/FIFO/server.cpp | 89 - ACE/examples/Reactor/Makefile.am | 20 - ACE/examples/Reactor/Misc/Makefile.am | 146 - ACE/examples/Reactor/Misc/Reactor_Misc.mpc | 57 - ACE/examples/Reactor/Misc/notification.cpp | 387 - ACE/examples/Reactor/Misc/pingpong.cpp | 304 - ACE/examples/Reactor/Misc/test_demuxing.cpp | 389 - ACE/examples/Reactor/Misc/test_early_timeouts.cpp | 116 - ACE/examples/Reactor/Misc/test_event_handler_t.cpp | 51 - ACE/examples/Reactor/Misc/test_reactors.cpp | 198 - ACE/examples/Reactor/Misc/test_signals_1.cpp | 114 - ACE/examples/Reactor/Misc/test_signals_2.cpp | 281 - ACE/examples/Reactor/Misc/test_time_value.cpp | 83 - ACE/examples/Reactor/Misc/test_timer_queue.cpp | 115 - ACE/examples/Reactor/Multicast/Log_Wrapper.cpp | 81 - ACE/examples/Reactor/Multicast/Log_Wrapper.h | 68 - ACE/examples/Reactor/Multicast/Makefile.am | 52 - ACE/examples/Reactor/Multicast/README | 15 - .../Reactor/Multicast/Reactor_Multicast.mpc | 17 - ACE/examples/Reactor/Multicast/client.cpp | 130 - ACE/examples/Reactor/Multicast/server.cpp | 247 - ACE/examples/Reactor/Ntalker/Makefile.am | 34 - ACE/examples/Reactor/Ntalker/README | 17 - ACE/examples/Reactor/Ntalker/Reactor_Ntalker.mpc | 6 - ACE/examples/Reactor/Ntalker/ntalker.cpp | 233 - .../Reactor/Proactor/Aio_Platform_Test_C.cpp | 137 - ACE/examples/Reactor/Proactor/Makefile.am | 160 - ACE/examples/Reactor/Proactor/Proactor.mpc | 75 - ACE/examples/Reactor/Proactor/README | 75 - ACE/examples/Reactor/Proactor/post_completions.cpp | 307 - .../Reactor/Proactor/simple_test_proactor.cpp | 270 - ACE/examples/Reactor/Proactor/test_aiocb.cpp | 242 - ACE/examples/Reactor/Proactor/test_aiocb_ace.cpp | 259 - ACE/examples/Reactor/Proactor/test_aiosig.cpp | 296 - ACE/examples/Reactor/Proactor/test_aiosig_ace.cpp | 360 - ACE/examples/Reactor/Proactor/test_cancel.cpp | 246 - ACE/examples/Reactor/Proactor/test_cancel.h | 47 - .../Reactor/Proactor/test_end_event_loop.cpp | 169 - .../Reactor/Proactor/test_multiple_loops.cpp | 140 - ACE/examples/Reactor/Proactor/test_proactor.cpp | 683 - ACE/examples/Reactor/Proactor/test_proactor.h | 56 - ACE/examples/Reactor/Proactor/test_proactor2.cpp | 824 - ACE/examples/Reactor/Proactor/test_proactor3.cpp | 889 - ACE/examples/Reactor/Proactor/test_timeout.cpp | 129 - ACE/examples/Reactor/Proactor/test_timeout_st.cpp | 99 - .../Reactor/Proactor/test_udp_proactor.cpp | 435 - ACE/examples/Reactor/README | 20 - ACE/examples/Reactor/TP_Reactor/AcceptHandler.cpp | 108 - ACE/examples/Reactor/TP_Reactor/AcceptHandler.h | 75 - ACE/examples/Reactor/TP_Reactor/Makefile.am | 55 - ACE/examples/Reactor/TP_Reactor/README | 86 - ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp | 152 - ACE/examples/Reactor/TP_Reactor/ReadHandler.h | 92 - ACE/examples/Reactor/TP_Reactor/TP_Reactor.mpc | 18 - ACE/examples/Reactor/TP_Reactor/client.cpp | 141 - ACE/examples/Reactor/TP_Reactor/common.h | 29 - ACE/examples/Reactor/TP_Reactor/run_test.pl | 41 - ACE/examples/Reactor/TP_Reactor/server.cpp | 66 - ACE/examples/Reactor/WFMO_Reactor/APC.cpp | 125 - ACE/examples/Reactor/WFMO_Reactor/Abandoned.cpp | 141 - .../Reactor/WFMO_Reactor/Console_Input.cpp | 88 - .../Reactor/WFMO_Reactor/Directory_Changes.cpp | 129 - ACE/examples/Reactor/WFMO_Reactor/Exceptions.cpp | 109 - ACE/examples/Reactor/WFMO_Reactor/Handle_Close.cpp | 339 - ACE/examples/Reactor/WFMO_Reactor/Makefile.am | 324 - .../Reactor/WFMO_Reactor/Multithreading.cpp | 264 - .../Reactor/WFMO_Reactor/Network_Events.cpp | 211 - .../Reactor/WFMO_Reactor/Prerun_State_Changes.cpp | 68 - ACE/examples/Reactor/WFMO_Reactor/Registration.cpp | 170 - .../Reactor/WFMO_Reactor/Registry_Changes.cpp | 146 - ACE/examples/Reactor/WFMO_Reactor/Removals.cpp | 118 - .../Reactor/WFMO_Reactor/Suspended_Removals.cpp | 176 - ACE/examples/Reactor/WFMO_Reactor/Talker.cpp | 598 - ACE/examples/Reactor/WFMO_Reactor/Timeouts.cpp | 83 - ACE/examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc | 118 - .../Reactor/WFMO_Reactor/Window_Messages.cpp | 100 - ACE/examples/Reactor/WFMO_Reactor/run_test.pl | 68 - ACE/examples/Registry/Makefile.am | 62 - ACE/examples/Registry/Registry.mpc | 17 - ACE/examples/Registry/test_registry_iterator.cpp | 146 - ACE/examples/Registry/test_registry_update.cpp | 161 - ACE/examples/Semaphores/README | 17 - ACE/examples/Semaphores/Semaphores.mpc | 19 - ACE/examples/Semaphores/starter.cpp | 22 - ACE/examples/Semaphores/worker.cpp | 29 - .../Service_Configurator/IPC-tests/Makefile.am | 14 - ACE/examples/Service_Configurator/IPC-tests/README | 125 - .../IPC-tests/client/Makefile.am | 190 - .../IPC-tests/client/Svc_Cfg_IPC_Client.mpc | 70 - .../IPC-tests/client/broadcast_client_test.cpp | 62 - .../IPC-tests/client/local_data | 22 - .../IPC-tests/client/local_dgram_client_test.cpp | 117 - .../IPC-tests/client/local_fifo_client_test.cpp | 104 - .../IPC-tests/client/local_pipe_client_test.cpp | 150 - .../IPC-tests/client/local_spipe_client_test.cpp | 108 - .../IPC-tests/client/local_stream_client_test.cpp | 113 - .../IPC-tests/client/remote_data | 22 - .../IPC-tests/client/remote_data1 | 22 - .../IPC-tests/client/remote_data2 | 22 - .../IPC-tests/client/remote_data3 | 22 - .../IPC-tests/client/remote_data4 | 22 - .../IPC-tests/client/remote_dgram_client_test.cpp | 94 - .../client/remote_service_directory_test.cpp | 111 - .../IPC-tests/client/remote_stream_client_test.cpp | 136 - .../client/remote_thr_stream_client_test.cpp | 124 - .../IPC-tests/server/Handle_Broadcast.cpp | 38 - .../IPC-tests/server/Handle_Broadcast.h | 50 - .../IPC-tests/server/Handle_Broadcast.inl | 116 - .../IPC-tests/server/Handle_L_CODgram.cpp | 19 - .../IPC-tests/server/Handle_L_CODgram.h | 51 - .../IPC-tests/server/Handle_L_CODgram.inl | 123 - .../IPC-tests/server/Handle_L_Dgram.cpp | 18 - .../IPC-tests/server/Handle_L_Dgram.h | 51 - .../IPC-tests/server/Handle_L_Dgram.inl | 116 - .../IPC-tests/server/Handle_L_FIFO.cpp | 38 - .../IPC-tests/server/Handle_L_FIFO.h | 49 - .../IPC-tests/server/Handle_L_FIFO.inl | 101 - .../IPC-tests/server/Handle_L_Pipe.cpp | 66 - .../IPC-tests/server/Handle_L_Pipe.h | 55 - .../IPC-tests/server/Handle_L_Pipe.inl | 96 - .../IPC-tests/server/Handle_L_SPIPE.cpp | 18 - .../IPC-tests/server/Handle_L_SPIPE.h | 52 - .../IPC-tests/server/Handle_L_SPIPE.inl | 131 - .../IPC-tests/server/Handle_L_Stream.cpp | 22 - .../IPC-tests/server/Handle_L_Stream.h | 53 - .../IPC-tests/server/Handle_L_Stream.inl | 149 - .../IPC-tests/server/Handle_R_Dgram.cpp | 38 - .../IPC-tests/server/Handle_R_Dgram.h | 47 - .../IPC-tests/server/Handle_R_Dgram.inl | 111 - .../IPC-tests/server/Handle_R_Stream.cpp | 42 - .../IPC-tests/server/Handle_R_Stream.h | 53 - .../IPC-tests/server/Handle_R_Stream.inl | 153 - .../IPC-tests/server/Handle_Thr_Stream.cpp | 195 - .../IPC-tests/server/Handle_Thr_Stream.h | 73 - .../IPC-tests/server/Handle_Timeout.cpp | 36 - .../IPC-tests/server/Handle_Timeout.h | 45 - .../IPC-tests/server/Handle_Timeout.inl | 86 - .../IPC-tests/server/Makefile.am | 107 - .../IPC-tests/server/Svc_Cfg_IPC_Server.mpc | 30 - .../IPC-tests/server/server_test.cpp | 54 - .../Service_Configurator/IPC-tests/server/svc.conf | 19 - ACE/examples/Service_Configurator/Makefile.am | 14 - ACE/examples/Service_Configurator/Misc/Makefile.am | 51 - ACE/examples/Service_Configurator/Misc/README | 23 - .../Misc/Service_Configurator_Misc.mpc | 18 - .../Service_Configurator/Misc/Timer_Service.cpp | 135 - .../Service_Configurator/Misc/Timer_Service.h | 71 - ACE/examples/Service_Configurator/Misc/main.cpp | 80 - ACE/examples/Service_Configurator/Misc/svc.conf1 | 8 - ACE/examples/Service_Configurator/Misc/svc.conf2 | 8 - ACE/examples/Shared_Malloc/Makefile.am | 110 - ACE/examples/Shared_Malloc/Malloc.cpp | 69 - ACE/examples/Shared_Malloc/Malloc.h | 33 - ACE/examples/Shared_Malloc/Options.cpp | 204 - ACE/examples/Shared_Malloc/Options.h | 86 - ACE/examples/Shared_Malloc/Shared_Malloc.mpc | 37 - ACE/examples/Shared_Malloc/test_malloc.cpp | 228 - .../Shared_Malloc/test_multiple_mallocs.cpp | 125 - ACE/examples/Shared_Malloc/test_persistence.cpp | 350 - .../test_position_independent_malloc.cpp | 190 - .../test_position_independent_malloc.h | 28 - ACE/examples/Shared_Memory/Makefile.am | 58 - ACE/examples/Shared_Memory/Shared_Memory.mpc | 17 - ACE/examples/Shared_Memory/test_MM.cpp | 74 - ACE/examples/Shared_Memory/test_SV.cpp | 64 - ACE/examples/Smart_Pointers/Gadget.cpp | 16 - ACE/examples/Smart_Pointers/Gadget.h | 51 - ACE/examples/Smart_Pointers/Gadget_Factory.cpp | 18 - ACE/examples/Smart_Pointers/Gadget_Factory.h | 32 - ACE/examples/Smart_Pointers/Gadget_Impl.cpp | 47 - ACE/examples/Smart_Pointers/Gadget_Impl.h | 51 - ACE/examples/Smart_Pointers/Gadget_Part.cpp | 16 - ACE/examples/Smart_Pointers/Gadget_Part.h | 45 - .../Smart_Pointers/Gadget_Part_Factory.cpp | 20 - ACE/examples/Smart_Pointers/Gadget_Part_Factory.h | 35 - ACE/examples/Smart_Pointers/Gadget_Part_Impl.cpp | 68 - ACE/examples/Smart_Pointers/Gadget_Part_Impl.h | 64 - ACE/examples/Smart_Pointers/Makefile.am | 72 - ACE/examples/Smart_Pointers/README | 29 - ACE/examples/Smart_Pointers/Smart_Pointers.mpc | 28 - ACE/examples/Smart_Pointers/Widget.cpp | 16 - ACE/examples/Smart_Pointers/Widget.h | 40 - ACE/examples/Smart_Pointers/Widget_Factory.cpp | 18 - ACE/examples/Smart_Pointers/Widget_Factory.h | 30 - ACE/examples/Smart_Pointers/Widget_Impl.cpp | 52 - ACE/examples/Smart_Pointers/Widget_Impl.h | 68 - ACE/examples/Smart_Pointers/Widget_Part.cpp | 16 - ACE/examples/Smart_Pointers/Widget_Part.h | 33 - .../Smart_Pointers/Widget_Part_Factory.cpp | 20 - ACE/examples/Smart_Pointers/Widget_Part_Factory.h | 31 - ACE/examples/Smart_Pointers/Widget_Part_Impl.cpp | 74 - ACE/examples/Smart_Pointers/Widget_Part_Impl.h | 49 - ACE/examples/Smart_Pointers/gadget_test.cpp | 52 - ACE/examples/Smart_Pointers/widget_test.cpp | 51 - ACE/examples/Synch/Makefile.am | 39 - ACE/examples/Synch/README | 21 - ACE/examples/Synch/Synch.mpc | 7 - ACE/examples/Synch/proc_sema.cpp | 102 - ACE/examples/System_V_IPC/Makefile.am | 14 - ACE/examples/System_V_IPC/README | 13 - .../System_V_IPC/SV_Message_Queues/MQ_Client.cpp | 55 - .../System_V_IPC/SV_Message_Queues/MQ_Server.cpp | 81 - .../System_V_IPC/SV_Message_Queues/Makefile.am | 98 - .../SV_Message_Queues/SV_Message_Queues.mpc | 32 - .../System_V_IPC/SV_Message_Queues/TMQ_Client.cpp | 52 - .../System_V_IPC/SV_Message_Queues/TMQ_Server.cpp | 78 - ACE/examples/System_V_IPC/SV_Message_Queues/test.h | 58 - .../System_V_IPC/SV_Semaphores/Makefile.am | 58 - .../System_V_IPC/SV_Semaphores/SV_Semaphores.mpc | 17 - .../System_V_IPC/SV_Semaphores/Semaphores_1.cpp | 94 - .../System_V_IPC/SV_Semaphores/Semaphores_2.cpp | 110 - .../SV_Shared_Memory/SV_Shared_Memory_Test.cpp | 78 - .../SV_Shared_Memory/SV_Shared_Memory_Test.h | 12 - ACE/examples/Threads/Makefile.am | 430 - ACE/examples/Threads/TSS_Data.h | 40 - ACE/examples/Threads/TSS_Obj.h | 39 - ACE/examples/Threads/TSS_Task.h | 43 - ACE/examples/Threads/Threads.mpc | 139 - ACE/examples/Threads/auto_event.cpp | 120 - ACE/examples/Threads/barrier1.cpp | 83 - ACE/examples/Threads/barrier2.cpp | 319 - ACE/examples/Threads/cancel.cpp | 77 - ACE/examples/Threads/future1.cpp | 407 - ACE/examples/Threads/future2.cpp | 529 - ACE/examples/Threads/manual_event.cpp | 116 - ACE/examples/Threads/process_manager.cpp | 296 - ACE/examples/Threads/process_mutex.cpp | 75 - ACE/examples/Threads/process_semaphore.cpp | 63 - ACE/examples/Threads/reader_writer.cpp | 188 - ACE/examples/Threads/recursive_mutex.cpp | 113 - ACE/examples/Threads/task_five.cpp | 181 - ACE/examples/Threads/task_four.cpp | 313 - ACE/examples/Threads/task_one.cpp | 102 - ACE/examples/Threads/task_three.cpp | 271 - ACE/examples/Threads/task_two.cpp | 150 - ACE/examples/Threads/thread_manager.cpp | 109 - ACE/examples/Threads/thread_pool.cpp | 277 - ACE/examples/Threads/thread_specific.cpp | 238 - ACE/examples/Threads/thread_specific.h | 53 - ACE/examples/Threads/token.cpp | 78 - ACE/examples/Threads/tss1.cpp | 159 - ACE/examples/Threads/tss2.cpp | 190 - ACE/examples/Threads/wfmo.cpp | 135 - .../Timer_Queue/Async_Timer_Queue_Test.cpp | 282 - ACE/examples/Timer_Queue/Async_Timer_Queue_Test.h | 119 - ACE/examples/Timer_Queue/Driver.cpp | 164 - ACE/examples/Timer_Queue/Driver.h | 137 - ACE/examples/Timer_Queue/Makefile.am | 98 - ACE/examples/Timer_Queue/README | 26 - .../Timer_Queue/Reactor_Timer_Queue_Test.cpp | 223 - .../Timer_Queue/Reactor_Timer_Queue_Test.h | 153 - .../Timer_Queue/Thread_Timer_Queue_Test.cpp | 270 - ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.h | 157 - ACE/examples/Timer_Queue/Timer_Queue.mpc | 40 - ACE/examples/Timer_Queue/main_async.cpp | 57 - ACE/examples/Timer_Queue/main_reactor.cpp | 57 - ACE/examples/Timer_Queue/main_thread.cpp | 58 - ACE/examples/Web_Crawler/Command_Processor.cpp | 127 - ACE/examples/Web_Crawler/Command_Processor.h | 96 - ACE/examples/Web_Crawler/HTTP_URL.cpp | 87 - ACE/examples/Web_Crawler/HTTP_URL.h | 64 - ACE/examples/Web_Crawler/Iterators.cpp | 163 - ACE/examples/Web_Crawler/Iterators.h | 117 - ACE/examples/Web_Crawler/Makefile.am | 61 - ACE/examples/Web_Crawler/Mem_Map_Stream.cpp | 239 - ACE/examples/Web_Crawler/Mem_Map_Stream.h | 190 - ACE/examples/Web_Crawler/Options.cpp | 181 - ACE/examples/Web_Crawler/Options.h | 124 - ACE/examples/Web_Crawler/README | 25 - ACE/examples/Web_Crawler/URL.cpp | 39 - ACE/examples/Web_Crawler/URL.h | 82 - ACE/examples/Web_Crawler/URL_Addr.cpp | 235 - ACE/examples/Web_Crawler/URL_Addr.h | 112 - ACE/examples/Web_Crawler/URL_Status.cpp | 40 - ACE/examples/Web_Crawler/URL_Status.h | 61 - ACE/examples/Web_Crawler/URL_Visitor.cpp | 543 - ACE/examples/Web_Crawler/URL_Visitor.h | 436 - ACE/examples/Web_Crawler/URL_Visitor_Factory.cpp | 53 - ACE/examples/Web_Crawler/URL_Visitor_Factory.h | 74 - ACE/examples/Web_Crawler/Web_Crawler.cpp | 95 - ACE/examples/Web_Crawler/Web_Crawler.h | 62 - ACE/examples/Web_Crawler/Web_Crawler.mpc | 10 - ACE/examples/Web_Crawler/main.cpp | 51 - ACE/examples/example_base.mpb | 8 - ACE/examples/examples.mwc | 14 - ACE/html/README | 11 - ACE/html/Stats/Stats.css | 4 - ACE/html/Stats/compilation.shtml | 11 - ACE/html/Stats/configuration.shtml | 84 - ACE/html/Stats/detailed_footprint.shtml | 11 - ACE/html/Stats/detailed_performance.shtml | 191 - ACE/html/Stats/footer.html | 12 - ACE/html/Stats/footprint.shtml | 44 - ACE/html/Stats/img.html | 18 - ACE/html/Stats/index.shtml | 64 - ACE/html/Stats/navigation.html | 32 - ACE/html/Stats/performance.shtml | 203 - ACE/html/Stats/simple_footprint.shtml | 302 - ACE/html/doxygen.css | 5 - ACE/html/index.html | 217 - ACE/include/makeinclude/all_in_one.GNU | 72 - ACE/include/makeinclude/build_dll.bor | 118 - ACE/include/makeinclude/build_exe.bor | 114 - ACE/include/makeinclude/build_lib.bor | 91 - ACE/include/makeinclude/build_library.bor | 12 - ACE/include/makeinclude/clean.bor | 72 - ACE/include/makeinclude/compiler.bor | 179 - ACE/include/makeinclude/component_check.GNU | 16 - ACE/include/makeinclude/decorator.bor | 50 - ACE/include/makeinclude/install.bor | 41 - ACE/include/makeinclude/macros.GNU | 28 - ACE/include/makeinclude/make_flags.bor | 32 - ACE/include/makeinclude/outputdir.bor | 117 - ACE/include/makeinclude/platform_aix.GNU | 110 - ACE/include/makeinclude/platform_aix_g++.GNU | 92 - ACE/include/makeinclude/platform_aix_ibm.GNU | 168 - ACE/include/makeinclude/platform_cray.GNU | 50 - ACE/include/makeinclude/platform_cygwin32.GNU | 30 - ACE/include/makeinclude/platform_freebsd.GNU | 72 - ACE/include/makeinclude/platform_g++_common.GNU | 124 - .../makeinclude/platform_gnuwin32_common.GNU | 119 - ACE/include/makeinclude/platform_hpux_aCC.GNU | 229 - ACE/include/makeinclude/platform_hpux_gcc.GNU | 106 - ACE/include/makeinclude/platform_integrity_ghs.GNU | 70 - .../makeinclude/platform_irix6.x_common.GNU | 16 - ACE/include/makeinclude/platform_irix6.x_g++.GNU | 30 - .../makeinclude/platform_irix6.x_sgic++.GNU | 101 - ACE/include/makeinclude/platform_linux.GNU | 125 - ACE/include/makeinclude/platform_linux_common.GNU | 116 - ACE/include/makeinclude/platform_linux_icc.GNU | 117 - ACE/include/makeinclude/platform_linux_pgi.GNU | 48 - ACE/include/makeinclude/platform_linux_suncc.GNU | 77 - ACE/include/makeinclude/platform_lynxos.GNU | 144 - ACE/include/makeinclude/platform_macosx.GNU | 46 - .../makeinclude/platform_macosx_leopard.GNU | 3 - .../makeinclude/platform_macosx_panther.GNU | 35 - ACE/include/makeinclude/platform_macosx_tiger.GNU | 56 - ACE/include/makeinclude/platform_mingw32.GNU | 61 - ACE/include/makeinclude/platform_mvs.GNU | 35 - ACE/include/makeinclude/platform_netbsd.GNU | 43 - ACE/include/makeinclude/platform_openbsd.GNU | 50 - ACE/include/makeinclude/platform_openvms.GNU | 114 - ACE/include/makeinclude/platform_qnx_neutrino.GNU | 35 - ACE/include/makeinclude/platform_qnx_rtp_gcc.GNU | 51 - ACE/include/makeinclude/platform_rtems.x_g++.GNU | 57 - ACE/include/makeinclude/platform_sunos5_common.GNU | 33 - ACE/include/makeinclude/platform_sunos5_g++.GNU | 67 - ACE/include/makeinclude/platform_sunos5_sunc++.GNU | 263 - ACE/include/makeinclude/platform_tandem.GNU | 92 - ACE/include/makeinclude/platform_tru64_cxx.GNU | 142 - ACE/include/makeinclude/platform_tru64_g++.GNU | 46 - ACE/include/makeinclude/platform_tru64_post.GNU | 32 - ACE/include/makeinclude/platform_tru64_pre.GNU | 11 - ACE/include/makeinclude/platform_unixware_g++.GNU | 44 - ACE/include/makeinclude/platform_vxworks.GNU | 25 - ACE/include/makeinclude/platform_vxworks5.5.x.GNU | 315 - ACE/include/makeinclude/platform_vxworks6.2.GNU | 363 - ACE/include/makeinclude/platform_vxworks6.3.GNU | 394 - ACE/include/makeinclude/platform_vxworks6.4.GNU | 16 - ACE/include/makeinclude/platform_vxworks6.5.GNU | 8 - ACE/include/makeinclude/platform_vxworks6.6.GNU | 19 - ACE/include/makeinclude/platform_win32_dmc.GNU | 43 - ACE/include/makeinclude/platform_win32_icc.GNU | 47 - ACE/include/makeinclude/platform_win32_interix.GNU | 37 - ACE/include/makeinclude/rules.bin.GNU | 52 - ACE/include/makeinclude/rules.common.GNU | 24 - ACE/include/makeinclude/rules.lib.GNU | 249 - ACE/include/makeinclude/rules.local.GNU | 530 - ACE/include/makeinclude/rules.nested.GNU | 43 - ACE/include/makeinclude/rules.nolocal.GNU | 8 - ACE/include/makeinclude/rules.nonested.GNU | 8 - ACE/include/makeinclude/wrapper_macros.GNU | 873 - ACE/lib/.empty | 1 - ACE/m4/ace.m4 | 1546 -- ACE/m4/ace_defines.m4 | 48 - ACE/m4/ace_func.m4 | 148 - ACE/m4/ace_functions.m4 | 27 - ACE/m4/ace_headers.m4 | 35 - ACE/m4/acinclude.m4 | 602 - ACE/m4/aio.m4 | 633 - ACE/m4/compiler.m4 | 426 - ACE/m4/config_h.m4 | 1056 - ACE/m4/pkg.m4 | 156 - ACE/m4/platform.m4 | 473 - ACE/m4/subsets.m4 | 770 - ACE/m4/threads.m4 | 334 - ACE/m4/tls.m4 | 220 - ACE/netsvcs/ACE-netsvcs.html | 879 - ACE/netsvcs/Makefile.am | 15 - ACE/netsvcs/README | 20 - ACE/netsvcs/clients/Logger/Logger.mpc | 22 - ACE/netsvcs/clients/Logger/Makefile.am | 60 - ACE/netsvcs/clients/Logger/README | 18 - ACE/netsvcs/clients/Logger/direct_logging.cpp | 84 - ACE/netsvcs/clients/Logger/indirect_logging.cpp | 60 - ACE/netsvcs/clients/Makefile.am | 14 - ACE/netsvcs/clients/Naming/Client/Client.mpc | 11 - ACE/netsvcs/clients/Naming/Client/Client_Test.cpp | 546 - ACE/netsvcs/clients/Naming/Client/Client_Test.h | 79 - ACE/netsvcs/clients/Naming/Client/Makefile.am | 60 - ACE/netsvcs/clients/Naming/Client/README | 123 - ACE/netsvcs/clients/Naming/Client/main.cpp | 76 - ACE/netsvcs/clients/Naming/Client/svc.conf | 4 - ACE/netsvcs/clients/Naming/Client/svc2.conf | 6 - .../clients/Naming/Dump_Restore/Dump_Restore.cpp | 466 - .../clients/Naming/Dump_Restore/Dump_Restore.h | 85 - .../clients/Naming/Dump_Restore/Dump_Restore.mpc | 11 - .../clients/Naming/Dump_Restore/Makefile.am | 60 - ACE/netsvcs/clients/Naming/Dump_Restore/README | 66 - .../clients/Naming/Dump_Restore/createfile.cpp | 35 - ACE/netsvcs/clients/Naming/Dump_Restore/main.cpp | 26 - ACE/netsvcs/clients/Naming/Makefile.am | 14 - ACE/netsvcs/clients/README | 8 - ACE/netsvcs/clients/Tokens/Makefile.am | 17 - ACE/netsvcs/clients/Tokens/README | 34 - ACE/netsvcs/clients/Tokens/collection/Makefile.am | 18 - ACE/netsvcs/clients/Tokens/collection/README | 25 - .../clients/Tokens/collection/collection.cpp | 209 - ACE/netsvcs/clients/Tokens/collection/rw_locks.cpp | 173 - ACE/netsvcs/clients/Tokens/deadlock/Makefile.am | 19 - ACE/netsvcs/clients/Tokens/deadlock/README | 98 - .../Tokens/deadlock/deadlock_detection_test.cpp | 341 - ACE/netsvcs/clients/Tokens/invariant/Makefile.am | 20 - ACE/netsvcs/clients/Tokens/invariant/README | 27 - ACE/netsvcs/clients/Tokens/invariant/invariant.cpp | 196 - ACE/netsvcs/clients/Tokens/manual/Makefile.am | 24 - ACE/netsvcs/clients/Tokens/manual/README | 67 - ACE/netsvcs/clients/Tokens/manual/manual.cpp | 366 - ACE/netsvcs/clients/Tokens/mutex/Makefile.am | 21 - ACE/netsvcs/clients/Tokens/mutex/README | 23 - ACE/netsvcs/clients/Tokens/mutex/test_mutex.cpp | 142 - ACE/netsvcs/clients/Tokens/rw_lock/Makefile.am | 20 - ACE/netsvcs/clients/Tokens/rw_lock/README | 40 - ACE/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp | 255 - ACE/netsvcs/lib/Base_Optimizer.cpp | 29 - ACE/netsvcs/lib/Base_Optimizer.h | 51 - ACE/netsvcs/lib/Client_Logging_Handler.cpp | 680 - ACE/netsvcs/lib/Client_Logging_Handler.h | 103 - ACE/netsvcs/lib/Log_Message_Receiver.cpp | 178 - ACE/netsvcs/lib/Log_Message_Receiver.h | 220 - ACE/netsvcs/lib/Makefile.am | 59 - ACE/netsvcs/lib/Name_Handler.cpp | 641 - ACE/netsvcs/lib/Name_Handler.h | 212 - ACE/netsvcs/lib/README | 267 - ACE/netsvcs/lib/Server_Logging_Handler.cpp | 30 - ACE/netsvcs/lib/Server_Logging_Handler.h | 93 - ACE/netsvcs/lib/Server_Logging_Handler_T.cpp | 456 - ACE/netsvcs/lib/Server_Logging_Handler_T.h | 216 - ACE/netsvcs/lib/TS_Clerk_Handler.cpp | 634 - ACE/netsvcs/lib/TS_Clerk_Handler.h | 259 - ACE/netsvcs/lib/TS_Server_Handler.cpp | 263 - ACE/netsvcs/lib/TS_Server_Handler.h | 117 - ACE/netsvcs/lib/Time_Request_Reply.cpp | 207 - ACE/netsvcs/lib/Time_Request_Reply.h | 136 - ACE/netsvcs/lib/Token_Handler.cpp | 668 - ACE/netsvcs/lib/Token_Handler.h | 284 - ACE/netsvcs/lib/lib.mpc | 20 - ACE/netsvcs/servers/Makefile.am | 41 - ACE/netsvcs/servers/README | 35 - ACE/netsvcs/servers/main.cpp | 177 - ACE/netsvcs/servers/servers.mpc | 16 - ACE/netsvcs/servers/svc.conf | 18 - ACE/netsvcs/servers/svc.conf.xml | 32 - ACE/performance-tests/Makefile.am | 18 - ACE/performance-tests/Misc/Makefile.am | 157 - ACE/performance-tests/Misc/Misc.mpc | 67 - ACE/performance-tests/Misc/basic_func.cpp | 49 - ACE/performance-tests/Misc/basic_func.h | 77 - ACE/performance-tests/Misc/basic_perf.cpp | 646 - ACE/performance-tests/Misc/childbirth_time.cpp | 403 - ACE/performance-tests/Misc/context_switch_time.cpp | 1318 -- ACE/performance-tests/Misc/preempt.cpp | 467 - ACE/performance-tests/Misc/test_guard.cpp | 119 - ACE/performance-tests/Misc/test_mutex.cpp | 238 - ACE/performance-tests/Misc/test_naming.cpp | 199 - ACE/performance-tests/Misc/test_singleton.cpp | 179 - ACE/performance-tests/Misc/test_singleton.h | 24 - ACE/performance-tests/README | 16 - ACE/performance-tests/RPC/README | 6 - ACE/performance-tests/RPC/RPC.mpc | 17 - ACE/performance-tests/RPC/client.cpp | 74 - ACE/performance-tests/RPC/ping.x | 12 - ACE/performance-tests/RPC/run_test.pl | 34 - ACE/performance-tests/RPC/server.c | 15 - ACE/performance-tests/SCTP/Makefile.am | 122 - ACE/performance-tests/SCTP/Options_Manager.cpp | 542 - ACE/performance-tests/SCTP/Options_Manager.h | 67 - ACE/performance-tests/SCTP/README | 81 - ACE/performance-tests/SCTP/README.LKSCTP | 46 - ACE/performance-tests/SCTP/README.OpenSS7 | 271 - ACE/performance-tests/SCTP/README.SCIOP | 63 - ACE/performance-tests/SCTP/README.SCTP | 81 - ACE/performance-tests/SCTP/README.SCTP_PERF_TEST | 405 - ACE/performance-tests/SCTP/README.SCTP_in_ACE | 269 - ACE/performance-tests/SCTP/SCTP.mpc | 61 - .../SCTP/SOCK_SEQPACK_Association_Test.cpp | 152 - ACE/performance-tests/SCTP/SOCK_SEQPACK_clt.cpp | 309 - ACE/performance-tests/SCTP/SOCK_SEQPACK_srv.cpp | 365 - .../SCTP/SOCK_SEQPACK_wrapper_facade.jpg | Bin 47984 -> 0 bytes ACE/performance-tests/SCTP/SOCK_STREAM_clt.cpp | 318 - ACE/performance-tests/SCTP/SOCK_STREAM_srv.cpp | 358 - ACE/performance-tests/SCTP/THANKS | 30 - ACE/performance-tests/SCTP/hist.cpp | 312 - ACE/performance-tests/SCTP/hist.h | 71 - ACE/performance-tests/SCTP/run_spectrum.config | 12 - ACE/performance-tests/SCTP/run_spectrum.pl | 260 - ACE/performance-tests/SCTP/sample-spectrum.png | Bin 5369 -> 0 bytes .../Server_Concurrency/Latency_Stats.h | 219 - .../Server_Concurrency/Leader_Follower/Makefile.am | 60 - .../Leader_Follower/RT_CORBA_Leader_Follower.cpp | 401 - .../Leader_Follower/RT_CORBA_Leader_Follower.h | 109 - .../Leader_Follower/Svr_Conc_Leader_Follower.mpc | 18 - .../Leader_Follower/leader_follower.cpp | 333 - .../Server_Concurrency/Makefile.am | 14 - .../Queue_Based_Workers/Makefile.am | 60 - .../Queue_Based_Workers/RT_CORBA_Workers.cpp | 591 - .../Queue_Based_Workers/RT_CORBA_Workers.h | 166 - .../Svr_Conc_Queue_Based_Workers.mpc | 18 - .../Queue_Based_Workers/workers.cpp | 414 - .../Server_Concurrency/run_test.sh | 13 - .../Synch-Benchmarks/Base_Test/Baseline_Test.cpp | 237 - .../Synch-Benchmarks/Base_Test/Baseline_Test.h | 153 - .../Synch-Benchmarks/Base_Test/Baseline_Test.inl | 43 - .../Synch-Benchmarks/Base_Test/Makefile.am | 52 - .../Base_Test/Synch_Benchmarks_Base_Test.mpc | 16 - .../Synch-Benchmarks/Base_Test/base_test.cpp | 62 - .../Synch-Benchmarks/Base_Test/mutex_test.cpp | 205 - ACE/performance-tests/Synch-Benchmarks/Makefile.am | 44 - .../Adaptive_Lock_Performance_Test_Base.cpp | 48 - .../Adaptive_Lock_Performance_Test_Base.h | 24 - .../Perf_Test/Benchmark_Performance.cpp | 60 - .../Perf_Test/Benchmark_Performance.h | 48 - .../Synch-Benchmarks/Perf_Test/Makefile.am | 73 - .../Perf_Test/Performance_Test.cpp | 122 - .../Synch-Benchmarks/Perf_Test/Performance_Test.h | 32 - .../Perf_Test/Performance_Test_Options.cpp | 469 - .../Perf_Test/Performance_Test_Options.h | 133 - .../Perf_Test/Performance_Test_Options.inl | 269 - .../Synch-Benchmarks/Perf_Test/README | 76 - .../Perf_Test/Synch_Benchmarks_Perf_Test.mpc | 16 - .../Perf_Test/adaptive_mutex_test.cpp | 32 - .../Perf_Test/adaptive_recursive_lock_test.cpp | 33 - .../Perf_Test/adaptive_sema_test.cpp | 38 - .../Synch-Benchmarks/Perf_Test/condb_test.cpp | 69 - .../Synch-Benchmarks/Perf_Test/conds_test.cpp | 72 - .../Synch-Benchmarks/Perf_Test/context_test.cpp | 38 - .../Synch-Benchmarks/Perf_Test/guard_test.cpp | 126 - .../Synch-Benchmarks/Perf_Test/memory_test.cpp | 42 - .../Synch-Benchmarks/Perf_Test/mutex_test.cpp | 45 - .../Synch-Benchmarks/Perf_Test/pipe_proc_test.cpp | 86 - .../Synch-Benchmarks/Perf_Test/pipe_thr_test.cpp | 79 - .../Perf_Test/recursive_lock_test.cpp | 44 - .../Synch-Benchmarks/Perf_Test/rwrd_test.cpp | 45 - .../Synch-Benchmarks/Perf_Test/rwwr_test.cpp | 45 - .../Synch-Benchmarks/Perf_Test/sema_test.cpp | 45 - .../Synch-Benchmarks/Perf_Test/sysvsema_test.cpp | 67 - .../Synch-Benchmarks/Perf_Test/token_test.cpp | 46 - ACE/performance-tests/Synch-Benchmarks/README | 46 - .../Synch-Benchmarks/Synch_Benchmarks.mpc | 12 - .../Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp | 95 - .../Synch-Benchmarks/Synch_Lib/Benchmark_Base.h | 114 - .../Synch-Benchmarks/Synch_Lib/Makefile.am | 36 - .../Synch-Benchmarks/Synch_Lib/README | 4 - .../Synch_Lib/Synch_Benchmarks_Synch_Lib.mpc | 7 - .../Synch-Benchmarks/Synch_Lib/export_mac.h | 40 - ACE/performance-tests/Synch-Benchmarks/benchmarks | 19 - ACE/performance-tests/Synch-Benchmarks/context.c | 76 - ACE/performance-tests/Synch-Benchmarks/context.csh | 16 - .../Synch-Benchmarks/orig-results | 73 - .../Synch-Benchmarks/results/.no_prune | 1 - .../Synch-Benchmarks/run_tests.pl | 131 - .../Synch-Benchmarks/svcconf/base_acquire.conf | 20 - .../svcconf/base_acquire_read.conf | 20 - .../svcconf/base_acquire_write.conf | 20 - .../Synch-Benchmarks/svcconf/base_tryacquire.conf | 20 - .../svcconf/base_tryacquire_read.conf | 20 - .../svcconf/base_tryacquire_write.conf | 20 - .../Synch-Benchmarks/svcconf/perf_t1.conf | 32 - .../Synch-Benchmarks/svcconf/perf_t16.conf | 32 - .../Synch-Benchmarks/svcconf/perf_t2.conf | 32 - .../Synch-Benchmarks/svcconf/perf_t32.conf | 32 - .../Synch-Benchmarks/svcconf/perf_t4.conf | 32 - .../Synch-Benchmarks/svcconf/perf_t64.conf | 32 - .../Synch-Benchmarks/svcconf/perf_t8.conf | 32 - .../Synch-Benchmarks/svcconf/svc.conf | 29 - .../Synch-Benchmarks/synch_driver.cpp | 52 - ACE/performance-tests/TCP/Makefile.am | 39 - ACE/performance-tests/TCP/README | 17 - ACE/performance-tests/TCP/TCP.mpc | 7 - ACE/performance-tests/TCP/run_test.pl | 34 - ACE/performance-tests/TCP/tcp_test.cpp | 698 - .../TTCP/ACE-C++/How_to_run_tests | 29 - ACE/performance-tests/TTCP/ACE-C++/run_test | 35 - .../TTCP/ACE-C++/wrapper-new-ttcp.cpp | 967 - ACE/performance-tests/TTCP/C/How_to_run_tests | 30 - ACE/performance-tests/TTCP/C/README | 35 - ACE/performance-tests/TTCP/C/new-ttcp.cpp | 987 - ACE/performance-tests/TTCP/C/run_test | 35 - ACE/performance-tests/UDP/Makefile.am | 39 - ACE/performance-tests/UDP/README | 17 - ACE/performance-tests/UDP/UDP.mpc | 10 - ACE/performance-tests/UDP/run_test.pl | 34 - ACE/performance-tests/UDP/udp_test.cpp | 741 - ACE/performance-tests/perf.mwc | 5 - ACE/protocols/Makefile.am | 21 - ACE/protocols/ace/HTBP/ACE_HTBP.pc.in | 11 - ACE/protocols/ace/HTBP/HTBP.mpc | 12 - ACE/protocols/ace/HTBP/HTBP_Addr.cpp | 94 - ACE/protocols/ace/HTBP/HTBP_Addr.h | 92 - ACE/protocols/ace/HTBP/HTBP_Channel.cpp | 561 - ACE/protocols/ace/HTBP/HTBP_Channel.h | 280 - ACE/protocols/ace/HTBP/HTBP_Channel.inl | 124 - ACE/protocols/ace/HTBP/HTBP_Environment.cpp | 203 - ACE/protocols/ace/HTBP/HTBP_Environment.h | 110 - ACE/protocols/ace/HTBP/HTBP_Export.h | 53 - ACE/protocols/ace/HTBP/HTBP_Filter.cpp | 57 - ACE/protocols/ace/HTBP/HTBP_Filter.h | 104 - ACE/protocols/ace/HTBP/HTBP_Filter.inl | 63 - ACE/protocols/ace/HTBP/HTBP_Filter_Factory.cpp | 56 - ACE/protocols/ace/HTBP/HTBP_Filter_Factory.h | 70 - ACE/protocols/ace/HTBP/HTBP_ID_Requestor.cpp | 141 - ACE/protocols/ace/HTBP/HTBP_ID_Requestor.h | 63 - .../ace/HTBP/HTBP_Inside_Squid_Filter.cpp | 239 - ACE/protocols/ace/HTBP/HTBP_Inside_Squid_Filter.h | 91 - .../ace/HTBP/HTBP_Inside_Squid_Filter.inl | 12 - ACE/protocols/ace/HTBP/HTBP_Macros.h | 10 - ACE/protocols/ace/HTBP/HTBP_Notifier.cpp | 92 - ACE/protocols/ace/HTBP/HTBP_Notifier.h | 54 - .../ace/HTBP/HTBP_Outside_Squid_Filter.cpp | 200 - ACE/protocols/ace/HTBP/HTBP_Outside_Squid_Filter.h | 86 - .../ace/HTBP/HTBP_Outside_Squid_Filter.inl | 12 - ACE/protocols/ace/HTBP/HTBP_Session.cpp | 297 - ACE/protocols/ace/HTBP/HTBP_Session.h | 198 - ACE/protocols/ace/HTBP/HTBP_Session.inl | 114 - ACE/protocols/ace/HTBP/HTBP_Stream.cpp | 359 - ACE/protocols/ace/HTBP/HTBP_Stream.h | 291 - ACE/protocols/ace/HTBP/HTID_Generator.cgi | 78 - ACE/protocols/ace/HTBP/Makefile.am | 89 - ACE/protocols/ace/HTBP/README | 186 - ACE/protocols/ace/Makefile.am | 15 - ACE/protocols/ace/RMCast/ACE_RMCast.pc.in | 11 - ACE/protocols/ace/RMCast/Acknowledge.cpp | 393 - ACE/protocols/ace/RMCast/Acknowledge.h | 248 - ACE/protocols/ace/RMCast/Bits.h | 26 - ACE/protocols/ace/RMCast/Flow.cpp | 136 - ACE/protocols/ace/RMCast/Flow.h | 43 - ACE/protocols/ace/RMCast/Fragment.cpp | 77 - ACE/protocols/ace/RMCast/Fragment.h | 32 - ACE/protocols/ace/RMCast/Link.cpp | 337 - ACE/protocols/ace/RMCast/Link.h | 73 - ACE/protocols/ace/RMCast/Makefile.am | 85 - ACE/protocols/ace/RMCast/Parameters.h | 109 - ACE/protocols/ace/RMCast/Protocol.cpp | 17 - ACE/protocols/ace/RMCast/Protocol.h | 1285 -- ACE/protocols/ace/RMCast/README | 197 - ACE/protocols/ace/RMCast/RMCast.mpc | 12 - ACE/protocols/ace/RMCast/RMCast_Export.h | 44 - ACE/protocols/ace/RMCast/Reassemble.cpp | 135 - ACE/protocols/ace/RMCast/Reassemble.h | 42 - ACE/protocols/ace/RMCast/Retransmit.cpp | 159 - ACE/protocols/ace/RMCast/Retransmit.h | 98 - ACE/protocols/ace/RMCast/Simulator.cpp | 39 - ACE/protocols/ace/RMCast/Simulator.h | 30 - ACE/protocols/ace/RMCast/Socket.cpp | 396 - ACE/protocols/ace/RMCast/Socket.h | 99 - ACE/protocols/ace/RMCast/Stack.cpp | 71 - ACE/protocols/ace/RMCast/Stack.h | 59 - ACE/protocols/ace/TMCast/ACE_TMCast.pc.in | 11 - ACE/protocols/ace/TMCast/Export.hpp | 58 - ACE/protocols/ace/TMCast/FaultDetector.hpp | 45 - ACE/protocols/ace/TMCast/Group.cpp | 506 - ACE/protocols/ace/TMCast/Group.hpp | 51 - ACE/protocols/ace/TMCast/GroupFwd.hpp | 15 - ACE/protocols/ace/TMCast/LinkListener.hpp | 171 - ACE/protocols/ace/TMCast/MTQueue.cpp | 7 - ACE/protocols/ace/TMCast/MTQueue.hpp | 176 - ACE/protocols/ace/TMCast/Makefile.am | 76 - ACE/protocols/ace/TMCast/Messaging.hpp | 54 - ACE/protocols/ace/TMCast/Protocol.cpp | 31 - ACE/protocols/ace/TMCast/Protocol.hpp | 107 - ACE/protocols/ace/TMCast/README | 240 - ACE/protocols/ace/TMCast/TMCast.mpc | 12 - ACE/protocols/ace/TMCast/TransactionController.hpp | 388 - ACE/protocols/examples/Makefile.am | 14 - ACE/protocols/examples/RMCast/Makefile.am | 13 - ACE/protocols/examples/RMCast/Send_Msg/Makefile.am | 72 - ACE/protocols/examples/RMCast/Send_Msg/Protocol.h | 18 - ACE/protocols/examples/RMCast/Send_Msg/README | 18 - .../examples/RMCast/Send_Msg/Receiver.cpp | 206 - .../examples/RMCast/Send_Msg/Send_Msg.mpc | 17 - ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp | 53 - ACE/protocols/examples/TMCast/Makefile.am | 13 - ACE/protocols/examples/TMCast/Member/Makefile.am | 45 - ACE/protocols/examples/TMCast/Member/Member.mpc | 7 - ACE/protocols/examples/TMCast/Member/README | 36 - ACE/protocols/examples/TMCast/Member/member.cpp | 93 - ACE/protocols/examples/examples.mwc | 5 - ACE/protocols/protocols.mwc | 5 - ACE/protocols/tests/HTBP/HTBP_Config.conf | 4 - ACE/protocols/tests/HTBP/Makefile.am | 16 - ACE/protocols/tests/HTBP/README | 16 - ACE/protocols/tests/HTBP/Reactor_Tests/Makefile.am | 64 - .../tests/HTBP/Reactor_Tests/Reactor_Tests.mpc | 19 - ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp | 201 - ACE/protocols/tests/HTBP/Reactor_Tests/inside.conf | 5 - ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl | 58 - ACE/protocols/tests/HTBP/Reactor_Tests/server.cpp | 251 - .../tests/HTBP/Reactor_Tests/test_config.h | 316 - .../tests/HTBP/Send_Large_Msg/Makefile.am | 64 - .../tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc | 19 - ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp | 143 - .../tests/HTBP/Send_Large_Msg/run_test.pl | 59 - ACE/protocols/tests/HTBP/Send_Large_Msg/server.cpp | 170 - .../tests/HTBP/Send_Recv_Tests/Makefile.am | 66 - .../tests/HTBP/Send_Recv_Tests/SendRecv_Test.mpc | 20 - .../tests/HTBP/Send_Recv_Tests/client.cpp | 232 - .../tests/HTBP/Send_Recv_Tests/run_test.pl | 56 - .../tests/HTBP/Send_Recv_Tests/server.cpp | 286 - ACE/protocols/tests/HTBP/ping/Makefile.am | 62 - ACE/protocols/tests/HTBP/ping/client.cpp | 203 - ACE/protocols/tests/HTBP/ping/ping.mpc | 19 - ACE/protocols/tests/HTBP/ping/run_test.pl | 59 - ACE/protocols/tests/HTBP/ping/server.cpp | 191 - ACE/protocols/tests/Makefile.am | 14 - ACE/protocols/tests/RMCast/Makefile.am | 72 - ACE/protocols/tests/RMCast/Protocol.h | 18 - ACE/protocols/tests/RMCast/RMCast.mpc | 15 - ACE/protocols/tests/RMCast/Receiver.cpp | 188 - ACE/protocols/tests/RMCast/Sender.cpp | 55 - ACE/protocols/tests/RMCast/run_test.pl | 34 - ACE/protocols/tests/tests.mwc | 5 - ACE/tests/ACE.bsp | 25 - ACE/tests/ACE_Init_Test.cpp | 129 - ACE/tests/ACE_Init_Test.h | 59 - ACE/tests/ACE_Init_Test.ico | Bin 1078 -> 0 bytes ACE/tests/ACE_Init_Test.rc | 169 - ACE/tests/ACE_Init_Test.rc2 | 13 - ACE/tests/ACE_Init_TestDlg.cpp | 117 - ACE/tests/ACE_Init_TestDlg.h | 47 - ACE/tests/ACE_Init_Test_Resource.h | 19 - ACE/tests/ACE_Init_Test_StdAfx.h | 44 - ACE/tests/ACE_Test.cpp | 104 - ACE/tests/ARGV_Test.cpp | 277 - ACE/tests/Aio_Platform_Test.cpp | 198 - ACE/tests/Arg_Shifter_Test.cpp | 43 - ACE/tests/Array_Map_Test.cpp | 485 - ACE/tests/Atomic_Op_Test.cpp | 385 - ACE/tests/Auto_Event_Test.cpp | 246 - ACE/tests/Auto_IncDec_Test.cpp | 141 - ACE/tests/Barrier_Test.cpp | 138 - ACE/tests/Based_Pointer_Test.cpp | 427 - ACE/tests/Based_Pointer_Test_Lib.cpp | 39 - ACE/tests/Basic_Types_Test.cpp | 319 - ACE/tests/Bound_Ptr_Test.cpp | 467 - ACE/tests/Bound_Ptr_Test.h | 87 - ACE/tests/Buffer_Stream_Test.cpp | 237 - ACE/tests/Bug_1576_Regression_Test.cpp | 66 - ACE/tests/Bug_1890_Regression_Test.cpp | 329 - ACE/tests/Bug_2368_Regression_Test.cpp | 125 - ACE/tests/Bug_2497_Regression_Test.cpp | 75 - ACE/tests/Bug_2540_Regression_Test.cpp | 321 - ACE/tests/Bug_2609_Regression_Test.cpp | 148 - ACE/tests/Bug_2610_Regression_Test.cpp | 199 - ACE/tests/Bug_2653_Regression_Test.cpp | 236 - ACE/tests/Bug_2659_Regression_Test.cpp | 190 - ACE/tests/Bug_2815_Regression_Test.cpp | 498 - ACE/tests/Bug_2820_Regression_Test.cpp | 141 - ACE/tests/Bug_2975_Regression_Test.cpp | 61 - ACE/tests/Bug_3102_Regression_Test.cpp | 59 - ACE/tests/CDR_Array_Test.cpp | 1010 - ACE/tests/CDR_File_Test.cpp | 486 - ACE/tests/CDR_Test.cpp | 703 - ACE/tests/CE_fostream.cpp | 163 - ACE/tests/CE_fostream.h | 105 - ACE/tests/Cache_Map_Manager_Test.cpp | 598 - ACE/tests/Cache_Map_Manager_Test.h | 38 - ACE/tests/Cached_Accept_Conn_Test.cpp | 525 - ACE/tests/Cached_Accept_Conn_Test.h | 137 - ACE/tests/Cached_Allocator_Test.cpp | 254 - ACE/tests/Cached_Conn_Test.cpp | 496 - ACE/tests/Cached_Conn_Test.h | 35 - ACE/tests/Capabilities_Test.cpp | 119 - ACE/tests/Codecs_Test.cpp | 119 - ACE/tests/Collection_Test.cpp | 184 - ACE/tests/Collection_Test.h | 36 - ACE/tests/Config_Test.cpp | 1526 -- ACE/tests/Config_Test.h | 77 - ACE/tests/Config_Test.ini | 22 - ACE/tests/Config_Test_Import_1.ini | 5 - ACE/tests/Conn_Test.cpp | 784 - ACE/tests/Conn_Test.h | 62 - ACE/tests/DLL_Test.cpp | 173 - ACE/tests/DLL_Test.h | 74 - ACE/tests/DLL_Test_Impl.cpp | 145 - ACE/tests/DLL_Test_Impl.h | 68 - ACE/tests/DLL_Test_Parent.cpp | 19 - ACE/tests/DLL_Test_Parent.h | 34 - ACE/tests/DLL_Test_Parent_Export.h | 58 - ACE/tests/DLList_Test.cpp | 129 - ACE/tests/Date_Time_Test.cpp | 132 - ACE/tests/Dev_Poll_Reactor_Test.cpp | 598 - ACE/tests/Dirent_Test.cpp | 403 - ACE/tests/Dynamic_Priority_Test.cpp | 796 - ACE/tests/Dynamic_Test.cpp | 151 - ACE/tests/Enum_Interfaces_Test.cpp | 96 - ACE/tests/Env_Value_Test.cpp | 126 - ACE/tests/FIFO_Test.cpp | 311 - ACE/tests/FlReactor_Test.cpp | 278 - ACE/tests/Framework_Component_DLL.cpp | 82 - ACE/tests/Framework_Component_DLL.h | 58 - ACE/tests/Framework_Component_DLL_Export.h | 54 - ACE/tests/Framework_Component_Test.cpp | 121 - ACE/tests/Framework_Component_Test.h | 39 - ACE/tests/Future_Set_Test.cpp | 578 - ACE/tests/Future_Test.cpp | 609 - ACE/tests/Get_Opt_Test.cpp | 346 - ACE/tests/Handle_Set_Test.cpp | 228 - ACE/tests/Hash_Map_Bucket_Iterator_Test.cpp | 122 - ACE/tests/Hash_Map_Manager_Test.cpp | 343 - ACE/tests/Hash_Multi_Map_Manager_Test.cpp | 384 - ACE/tests/High_Res_Timer_Test.cpp | 187 - ACE/tests/INET_Addr_Test.cpp | 257 - ACE/tests/INET_Addr_Test_IPV6.cpp | 167 - ACE/tests/INTEGRITY.ld | 31 - ACE/tests/IOStream_Test.cpp | 494 - ACE/tests/Integer_Truncate_Test.cpp | 377 - ACE/tests/Lazy_Map_Manager_Test.cpp | 335 - ACE/tests/Log_Msg_Backend_Test.cpp | 160 - ACE/tests/Log_Msg_Test.cpp | 625 - ACE/tests/Logging_Strategy_Test.cpp | 517 - ACE/tests/MEM_Stream_Test.cpp | 527 - ACE/tests/MEM_Stream_Test.h | 57 - ACE/tests/MM_Shared_Memory_Test.cpp | 232 - ACE/tests/MT_Reactor_Timer_Test.cpp | 374 - ACE/tests/MT_Reactor_Timer_Test.h | 108 - ACE/tests/MT_Reactor_Upcall_Test.cpp | 384 - .../MT_Reference_Counted_Event_Handler_Test.cpp | 1477 -- ACE/tests/MT_Reference_Counted_Notify_Test.cpp | 463 - ACE/tests/MT_SOCK_Test.cpp | 442 - ACE/tests/Main.cpp | 30 - ACE/tests/Makefile.am | 3330 --- ACE/tests/Malloc_Test.cpp | 437 - ACE/tests/Malloc_Test.h | 44 - ACE/tests/Manual_Event_Test.cpp | 217 - ACE/tests/Map_Manager_Test.cpp | 956 - ACE/tests/Map_Test.cpp | 375 - ACE/tests/Map_Test.h | 151 - ACE/tests/Max_Default_Port_Test.cpp | 300 - ACE/tests/Max_Default_Port_Test.h | 53 - ACE/tests/Max_Default_Port_Test_IPV6.cpp | 255 - ACE/tests/Mem_Map_Test.cpp | 286 - ACE/tests/Memcpy_Test.cpp | 103 - ACE/tests/Message_Block_Test.cpp | 412 - ACE/tests/Message_Queue_Notifications_Test.cpp | 367 - ACE/tests/Message_Queue_Test.cpp | 690 - ACE/tests/Message_Queue_Test_Ex.cpp | 778 - ACE/tests/Message_Queue_Test_Ex.h | 89 - ACE/tests/Multicast_Test.cpp | 963 - ACE/tests/Multicast_Test_IPV6.cpp | 1039 - ACE/tests/Multihomed_INET_Addr_Test.cpp | 470 - ACE/tests/Multihomed_INET_Addr_Test_IPV6.cpp | 191 - ACE/tests/Naming_Test.cpp | 322 - ACE/tests/Network_Adapters_Test.cpp | 1176 -- ACE/tests/Network_Adapters_Test.h | 272 - ACE/tests/New_Fail_Test.cpp | 223 - ACE/tests/NonBlocking_Conn_Test.cpp | 319 - ACE/tests/NonBlocking_Conn_Test.h | 54 - ACE/tests/Notification_Queue_Unit_Test.cpp | 329 - ACE/tests/Notify_Performance_Test.cpp | 259 - ACE/tests/OS_Test.cpp | 1027 - ACE/tests/Object_Manager_Flipping_Test.cpp | 128 - ACE/tests/Object_Manager_Test.cpp | 119 - ACE/tests/Obstack_Test.cpp | 116 - ACE/tests/OrdMultiSet_Test.cpp | 220 - ACE/tests/Pipe_Test.cpp | 177 - ACE/tests/Priority_Buffer_Test.cpp | 182 - ACE/tests/Priority_Reactor_Test.cpp | 399 - ACE/tests/Priority_Reactor_Test.h | 76 - ACE/tests/Priority_Task_Test.cpp | 253 - ACE/tests/Proactor_Scatter_Gather_Test.cpp | 1492 -- ACE/tests/Proactor_Test.cpp | 1943 -- ACE/tests/Proactor_Test.h | 142 - ACE/tests/Proactor_Test_IPV6.cpp | 1989 -- ACE/tests/Proactor_Timer_Test.cpp | 343 - ACE/tests/Process_Manager_Test.cpp | 479 - ACE/tests/Process_Manual_Event_Test.cpp | 259 - ACE/tests/Process_Mutex_Test.cpp | 218 - ACE/tests/Process_Semaphore_Test.cpp | 230 - ACE/tests/Process_Strategy_Test.cpp | 708 - ACE/tests/Process_Strategy_Test.h | 141 - ACE/tests/QtReactor_Test.cpp | 934 - ACE/tests/QtReactor_Test.h | 23 - ACE/tests/RB_Tree_Test.cpp | 805 - ACE/tests/RB_Tree_Test.h | 112 - ACE/tests/README | 82 - ACE/tests/Reactor_Dispatch_Order_Test.cpp | 223 - ACE/tests/Reactor_Exceptions_Test.cpp | 198 - ACE/tests/Reactor_Notification_Queue_Test.cpp | 223 - ACE/tests/Reactor_Notify_Test.cpp | 581 - ACE/tests/Reactor_Performance_Test.cpp | 420 - ACE/tests/Reactor_Performance_Test.h | 62 - ACE/tests/Reactor_Registration_Test.cpp | 203 - ACE/tests/Reactor_Remove_Resume_Test.cpp | 486 - ACE/tests/Reactor_Timer_Test.cpp | 272 - ACE/tests/Reactors_Test.cpp | 263 - ACE/tests/Reader_Writer_Test.cpp | 293 - ACE/tests/Recursive_Condition_Bug_Test.cpp | 193 - ACE/tests/Recursive_Condition_Test.cpp | 308 - ACE/tests/Recursive_Mutex_Test.cpp | 389 - ACE/tests/Refcounted_Auto_Ptr_Test.cpp | 551 - ACE/tests/Refcounted_Auto_Ptr_Test.h | 39 - ACE/tests/Reference_Counted_Event_Handler_Test.cpp | 1016 - ACE/tests/Reverse_Lock_Test.cpp | 48 - ACE/tests/SOCK_Connector_Test.cpp | 320 - ACE/tests/SOCK_Dgram_Bcast_Test.cpp | 261 - ACE/tests/SOCK_Dgram_Test.cpp | 308 - ACE/tests/SOCK_Netlink_Test.cpp | 980 - ACE/tests/SOCK_SEQPACK_SCTP_Test.cpp | 398 - ACE/tests/SOCK_Send_Recv_Test.cpp | 455 - ACE/tests/SOCK_Send_Recv_Test_IPV6.cpp | 399 - ACE/tests/SOCK_Test.cpp | 286 - ACE/tests/SOCK_Test_IPv6.cpp | 290 - ACE/tests/SPIPE_Test.cpp | 220 - ACE/tests/SSL/Bug_2912_Regression_Test.cpp | 1279 -- ACE/tests/SSL/Main.cpp | 30 - ACE/tests/SSL/Makefile.am | 79 - ACE/tests/SSL/SSL_Asynch_Stream_Test.cpp | 486 - ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp | 354 - ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.h | 50 - ACE/tests/SSL/acetest.mpb | 21 - ACE/tests/SSL/dummy.pem | 15 - ACE/tests/SSL/key.pem | 15 - ACE/tests/SSL/tests.mpc | 26 - ACE/tests/SString_Test.cpp | 345 - ACE/tests/STL_algorithm_Test_T.cpp | 80 - ACE/tests/STL_algorithm_Test_T.h | 29 - ACE/tests/SV_Shared_Memory_Test.cpp | 201 - ACE/tests/Semaphore_Test.cpp | 252 - ACE/tests/Sendfile_Test.cpp | 337 - ACE/tests/Service_Config_DLL.cpp | 274 - ACE/tests/Service_Config_DLL.h | 91 - ACE/tests/Service_Config_DLL_Export.h | 38 - ACE/tests/Service_Config_Test.UTF-16.conf | Bin 2008 -> 0 bytes ACE/tests/Service_Config_Test.UTF-16.conf.xml | Bin 2874 -> 0 bytes ACE/tests/Service_Config_Test.WCHAR_T.conf | Bin 4012 -> 0 bytes ACE/tests/Service_Config_Test.WCHAR_T.conf.xml | Bin 5744 -> 0 bytes ACE/tests/Service_Config_Test.conf | 19 - ACE/tests/Service_Config_Test.conf.xml | 27 - ACE/tests/Service_Config_Test.cpp | 366 - ACE/tests/Signal_Test.cpp | 510 - ACE/tests/Sigset_Ops_Test.cpp | 148 - ACE/tests/Simple_Message_Block_Test.cpp | 215 - ACE/tests/Svc_Handler_Test.cpp | 151 - ACE/tests/TP_Reactor_Test.cpp | 1238 -- ACE/tests/TP_Reactor_Test.h | 200 - ACE/tests/TSS_Static_Test.cpp | 113 - ACE/tests/TSS_Test.cpp | 293 - ACE/tests/TSS_Test_Errno.h | 102 - ACE/tests/Task_Ex_Test.cpp | 165 - ACE/tests/Task_Ex_Test.h | 34 - ACE/tests/Task_Test.cpp | 159 - ACE/tests/Test_Output.cpp | 224 - ACE/tests/Test_Output_Export.h | 54 - ACE/tests/Thread_Creation_Threshold_Test.cpp | 239 - ACE/tests/Thread_Manager_Test.cpp | 472 - ACE/tests/Thread_Mutex_Test.cpp | 276 - ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp | 393 - ACE/tests/Thread_Pool_Reactor_Resume_Test.h | 56 - ACE/tests/Thread_Pool_Reactor_Test.cpp | 345 - ACE/tests/Thread_Pool_Reactor_Test.h | 49 - ACE/tests/Thread_Pool_Test.cpp | 461 - ACE/tests/Time_Service_Test.cpp | 121 - ACE/tests/Time_Value_Test.cpp | 124 - ACE/tests/Timeprobe_Test.cpp | 124 - ACE/tests/Timer_Cancellation_Test.cpp | 162 - ACE/tests/Timer_Queue_Reference_Counting_Test.cpp | 658 - ACE/tests/Timer_Queue_Test.cpp | 667 - ACE/tests/TkReactor_Test.cpp | 322 - ACE/tests/TkReactor_Test.tcl | 15 - ACE/tests/Token_Strategy_Test.cpp | 248 - ACE/tests/Tokens_Test.cpp | 330 - ACE/tests/UNIXclerk.conf | 3 - ACE/tests/UNIXserver.conf | 7 - ACE/tests/UNIXtokens.conf | 5 - ACE/tests/UPIPE_SAP_Test.cpp | 184 - ACE/tests/UUID_Test.cpp | 129 - ACE/tests/Unbounded_Set_Test.cpp | 135 - ACE/tests/Unload_libACE.cpp | 271 - ACE/tests/Upgradable_RW_Test.cpp | 491 - ACE/tests/Upgradable_RW_Test.h | 147 - ACE/tests/Vector_Test.cpp | 179 - ACE/tests/WFMO_Reactor_Test.cpp | 157 - ACE/tests/Win32clerk.conf | 3 - ACE/tests/Win32server.conf | 10 - ACE/tests/Win32tokens.conf | 4 - ACE/tests/XtAthenaReactor_Test.cpp | 322 - ACE/tests/XtMotifReactor_Test.cpp | 329 - ACE/tests/acetest.mpb | 22 - ACE/tests/dll_test_parent_lib.mpb | 10 - ACE/tests/pharlap/run_pharlap_tests.bat | 130 - ACE/tests/randomize.h | 126 - ACE/tests/run_test.lst | 194 - ACE/tests/run_test.pl | 569 - ACE/tests/run_tests.check | 41 - ACE/tests/run_tests_remote.sh | 246 - ACE/tests/test_config.h | 176 - ACE/tests/tests.mpc | 1481 -- ACE/tests/tests.mwc | 9 - ACE/tests/tests_pharlap_msvc.lnk | 72 - ACE/tests/unload_libace.mpb | 14 - ACE/websvcs/Makefile.am | 14 - ACE/websvcs/README | 11 - ACE/websvcs/lib/Makefile.am | 36 - ACE/websvcs/lib/URL_Addr.cpp | 967 - ACE/websvcs/lib/URL_Addr.h | 404 - ACE/websvcs/lib/URL_Addr.inl | 155 - ACE/websvcs/lib/lib.mpc | 11 - ACE/websvcs/lib/websvcs_export.h | 44 - ACE/websvcs/tests/Makefile.am | 35 - ACE/websvcs/tests/Test_URL_Addr.cpp | 214 - ACE/websvcs/tests/tests.mpc | 13 - 4488 files changed, 1019549 deletions(-) delete mode 100644 ACE/ACE-INSTALL.html delete mode 100644 ACE/ACE.mwc delete mode 100644 ACE/ACEXML/ACEXML.mwc delete mode 100644 ACE/ACEXML/ChangeLog delete mode 100644 ACE/ACEXML/Makefile.am delete mode 100644 ACE/ACEXML/README delete mode 100644 ACE/ACEXML/apps/Makefile.am delete mode 100644 ACE/ACEXML/apps/svcconf/ACEXML_XML_Svc_Conf_Parser.pc.in delete mode 100644 ACE/ACEXML/apps/svcconf/Makefile.am delete mode 100644 ACE/ACEXML/apps/svcconf/README delete mode 100644 ACE/ACEXML/apps/svcconf/Svcconf.cpp delete mode 100644 ACE/ACEXML/apps/svcconf/Svcconf.h delete mode 100644 ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp delete mode 100644 ACE/ACEXML/apps/svcconf/Svcconf_Handler.h delete mode 100644 ACE/ACEXML/apps/svcconf/Svcconf_Handler.inl delete mode 100644 ACE/ACEXML/apps/svcconf/svcconf.dtd delete mode 100644 ACE/ACEXML/apps/svcconf/svcconf.mpc delete mode 100644 ACE/ACEXML/common/ACEXML.pc.in delete mode 100644 ACE/ACEXML/common/ACEXML_Export.h delete mode 100644 ACE/ACEXML/common/Attributes.cpp delete mode 100644 ACE/ACEXML/common/Attributes.h delete mode 100644 ACE/ACEXML/common/AttributesImpl.cpp delete mode 100644 ACE/ACEXML/common/AttributesImpl.h delete mode 100644 ACE/ACEXML/common/AttributesImpl.inl delete mode 100644 ACE/ACEXML/common/Attributes_Def_Builder.cpp delete mode 100644 ACE/ACEXML/common/Attributes_Def_Builder.h delete mode 100644 ACE/ACEXML/common/CharStream.cpp delete mode 100644 ACE/ACEXML/common/CharStream.h delete mode 100644 ACE/ACEXML/common/ContentHandler.cpp delete mode 100644 ACE/ACEXML/common/ContentHandler.h delete mode 100644 ACE/ACEXML/common/DTDHandler.cpp delete mode 100644 ACE/ACEXML/common/DTDHandler.h delete mode 100644 ACE/ACEXML/common/DTD_Manager.cpp delete mode 100644 ACE/ACEXML/common/DTD_Manager.h delete mode 100644 ACE/ACEXML/common/DefaultHandler.cpp delete mode 100644 ACE/ACEXML/common/DefaultHandler.h delete mode 100644 ACE/ACEXML/common/Element_Def_Builder.cpp delete mode 100644 ACE/ACEXML/common/Element_Def_Builder.h delete mode 100644 ACE/ACEXML/common/Encoding.cpp delete mode 100644 ACE/ACEXML/common/Encoding.h delete mode 100644 ACE/ACEXML/common/EntityResolver.cpp delete mode 100644 ACE/ACEXML/common/EntityResolver.h delete mode 100644 ACE/ACEXML/common/Env.cpp delete mode 100644 ACE/ACEXML/common/Env.h delete mode 100644 ACE/ACEXML/common/Env.inl delete mode 100644 ACE/ACEXML/common/ErrorHandler.cpp delete mode 100644 ACE/ACEXML/common/ErrorHandler.h delete mode 100644 ACE/ACEXML/common/Exception.cpp delete mode 100644 ACE/ACEXML/common/Exception.h delete mode 100644 ACE/ACEXML/common/Exception.inl delete mode 100644 ACE/ACEXML/common/FileCharStream.cpp delete mode 100644 ACE/ACEXML/common/FileCharStream.h delete mode 100644 ACE/ACEXML/common/HttpCharStream.cpp delete mode 100644 ACE/ACEXML/common/HttpCharStream.h delete mode 100644 ACE/ACEXML/common/InputSource.cpp delete mode 100644 ACE/ACEXML/common/InputSource.h delete mode 100644 ACE/ACEXML/common/Locator.cpp delete mode 100644 ACE/ACEXML/common/Locator.h delete mode 100644 ACE/ACEXML/common/LocatorImpl.cpp delete mode 100644 ACE/ACEXML/common/LocatorImpl.h delete mode 100644 ACE/ACEXML/common/LocatorImpl.inl delete mode 100644 ACE/ACEXML/common/Makefile.am delete mode 100644 ACE/ACEXML/common/Mem_Map_Stream.cpp delete mode 100644 ACE/ACEXML/common/Mem_Map_Stream.h delete mode 100644 ACE/ACEXML/common/NamespaceSupport.cpp delete mode 100644 ACE/ACEXML/common/NamespaceSupport.h delete mode 100644 ACE/ACEXML/common/SAXExceptions.cpp delete mode 100644 ACE/ACEXML/common/SAXExceptions.h delete mode 100644 ACE/ACEXML/common/SAXExceptions.inl delete mode 100644 ACE/ACEXML/common/StrCharStream.cpp delete mode 100644 ACE/ACEXML/common/StrCharStream.h delete mode 100644 ACE/ACEXML/common/StreamFactory.cpp delete mode 100644 ACE/ACEXML/common/StreamFactory.h delete mode 100644 ACE/ACEXML/common/Transcode.cpp delete mode 100644 ACE/ACEXML/common/Transcode.h delete mode 100644 ACE/ACEXML/common/URL_Addr.cpp delete mode 100644 ACE/ACEXML/common/URL_Addr.h delete mode 100644 ACE/ACEXML/common/URL_Addr.inl delete mode 100644 ACE/ACEXML/common/Validator.cpp delete mode 100644 ACE/ACEXML/common/Validator.h delete mode 100644 ACE/ACEXML/common/XMLFilter.h delete mode 100644 ACE/ACEXML/common/XMLFilterImpl.cpp delete mode 100644 ACE/ACEXML/common/XMLFilterImpl.h delete mode 100644 ACE/ACEXML/common/XMLFilterImpl.inl delete mode 100644 ACE/ACEXML/common/XMLReader.cpp delete mode 100644 ACE/ACEXML/common/XMLReader.h delete mode 100644 ACE/ACEXML/common/XML_Codecs.cpp delete mode 100644 ACE/ACEXML/common/XML_Codecs.h delete mode 100644 ACE/ACEXML/common/XML_Macros.h delete mode 100644 ACE/ACEXML/common/XML_Types.h delete mode 100644 ACE/ACEXML/common/XML_Util.cpp delete mode 100644 ACE/ACEXML/common/XML_Util.h delete mode 100644 ACE/ACEXML/common/ZipCharStream.cpp delete mode 100644 ACE/ACEXML/common/ZipCharStream.h delete mode 100644 ACE/ACEXML/common/codecs.mpb delete mode 100644 ACE/ACEXML/common/common.mpc delete mode 100644 ACE/ACEXML/docs/TODO.txt delete mode 100644 ACE/ACEXML/docs/bugs.txt delete mode 100644 ACE/ACEXML/docs/guidelines.txt delete mode 100644 ACE/ACEXML/docs/parser_features.txt delete mode 100644 ACE/ACEXML/docs/readme.txt delete mode 100644 ACE/ACEXML/examples/Makefile.am delete mode 100644 ACE/ACEXML/examples/SAXPrint/Makefile.am delete mode 100644 ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp delete mode 100644 ACE/ACEXML/examples/SAXPrint/Print_Handler.h delete mode 100644 ACE/ACEXML/examples/SAXPrint/SAXPrint.mpc delete mode 100644 ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp delete mode 100644 ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h delete mode 100644 ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.inl delete mode 100644 ACE/ACEXML/examples/SAXPrint/broken.xml delete mode 100644 ACE/ACEXML/examples/SAXPrint/main.cpp delete mode 100644 ACE/ACEXML/examples/SAXPrint/namespaces.xml delete mode 100644 ACE/ACEXML/examples/SAXPrint/ns.svc.conf.xml delete mode 100644 ACE/ACEXML/examples/SAXPrint/simple.svcconf.xml delete mode 100644 ACE/ACEXML/examples/SAXPrint/svc.conf.xml delete mode 100644 ACE/ACEXML/parser/Makefile.am delete mode 100644 ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp delete mode 100644 ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h delete mode 100644 ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp delete mode 100644 ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.h delete mode 100644 ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h delete mode 100644 ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.cpp delete mode 100644 ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.h delete mode 100644 ACE/ACEXML/parser/debug_validator/Element_Tree.cpp delete mode 100644 ACE/ACEXML/parser/debug_validator/Element_Tree.h delete mode 100644 ACE/ACEXML/parser/debug_validator/Element_Tree.inl delete mode 100644 ACE/ACEXML/parser/parser/ACEXML_Parser.pc.in delete mode 100644 ACE/ACEXML/parser/parser/Entity_Manager.cpp delete mode 100644 ACE/ACEXML/parser/parser/Entity_Manager.h delete mode 100644 ACE/ACEXML/parser/parser/Entity_Manager.inl delete mode 100644 ACE/ACEXML/parser/parser/Makefile.am delete mode 100644 ACE/ACEXML/parser/parser/Parser.cpp delete mode 100644 ACE/ACEXML/parser/parser/Parser.h delete mode 100644 ACE/ACEXML/parser/parser/Parser.inl delete mode 100644 ACE/ACEXML/parser/parser/ParserContext.cpp delete mode 100644 ACE/ACEXML/parser/parser/ParserContext.h delete mode 100644 ACE/ACEXML/parser/parser/ParserContext.inl delete mode 100644 ACE/ACEXML/parser/parser/ParserInternals.cpp delete mode 100644 ACE/ACEXML/parser/parser/ParserInternals.h delete mode 100644 ACE/ACEXML/parser/parser/Parser_export.h delete mode 100644 ACE/ACEXML/parser/parser/parser.mpc delete mode 100644 ACE/ACEXML/tests/ContentHandler_Test.cpp delete mode 100644 ACE/ACEXML/tests/HttpCharStream_Test.cpp delete mode 100644 ACE/ACEXML/tests/Makefile.am delete mode 100644 ACE/ACEXML/tests/NamespaceSupport_Test.cpp delete mode 100644 ACE/ACEXML/tests/Transcoder_Test.cpp delete mode 100644 ACE/ACEXML/tests/tests.mpc delete mode 100644 ACE/ACEXML/tests/util/Makefile.am delete mode 100644 ACE/ACEXML/tests/util/test.cpp delete mode 100644 ACE/ACEXML/tests/util/util.mpc delete mode 100644 ACE/ASNMP/COPYRIGHT delete mode 100644 ACE/ASNMP/ChangeLog delete mode 100644 ACE/ASNMP/Makefile.am delete mode 100644 ACE/ASNMP/README delete mode 100644 ACE/ASNMP/TO-DO delete mode 100644 ACE/ASNMP/agent/Makefile.am delete mode 100644 ACE/ASNMP/agent/agent.mpc delete mode 100644 ACE/ASNMP/agent/agent_impl.cpp delete mode 100644 ACE/ASNMP/agent/agent_impl.h delete mode 100644 ACE/ASNMP/agent/main.cpp delete mode 100644 ACE/ASNMP/agent/snmp_agent.cpp delete mode 100644 ACE/ASNMP/agent/snmp_agent.h delete mode 100644 ACE/ASNMP/asnmp-overview.html delete mode 100644 ACE/ASNMP/asnmp/ASNMP_Export.h delete mode 100644 ACE/ASNMP/asnmp/ChangeLog delete mode 100644 ACE/ASNMP/asnmp/Makefile.am delete mode 100644 ACE/ASNMP/asnmp/TODO delete mode 100644 ACE/ASNMP/asnmp/address.cpp delete mode 100644 ACE/ASNMP/asnmp/address.h delete mode 100644 ACE/ASNMP/asnmp/asn1.cpp delete mode 100644 ACE/ASNMP/asnmp/asn1.h delete mode 100644 ACE/ASNMP/asnmp/asnmp.mpc delete mode 100644 ACE/ASNMP/asnmp/counter.cpp delete mode 100644 ACE/ASNMP/asnmp/counter.h delete mode 100644 ACE/ASNMP/asnmp/ctr64.cpp delete mode 100644 ACE/ASNMP/asnmp/ctr64.h delete mode 100644 ACE/ASNMP/asnmp/enttraps.h delete mode 100644 ACE/ASNMP/asnmp/gauge.cpp delete mode 100644 ACE/ASNMP/asnmp/gauge.h delete mode 100644 ACE/ASNMP/asnmp/integer.cpp delete mode 100644 ACE/ASNMP/asnmp/integer.h delete mode 100644 ACE/ASNMP/asnmp/octet.cpp delete mode 100644 ACE/ASNMP/asnmp/octet.h delete mode 100644 ACE/ASNMP/asnmp/oid.cpp delete mode 100644 ACE/ASNMP/asnmp/oid.h delete mode 100644 ACE/ASNMP/asnmp/oid_def.h delete mode 100644 ACE/ASNMP/asnmp/pdu.cpp delete mode 100644 ACE/ASNMP/asnmp/pdu.h delete mode 100644 ACE/ASNMP/asnmp/sagent.cpp delete mode 100644 ACE/ASNMP/asnmp/sagent.h delete mode 100644 ACE/ASNMP/asnmp/smi.h delete mode 100644 ACE/ASNMP/asnmp/smival.h delete mode 100644 ACE/ASNMP/asnmp/snmp.cpp delete mode 100644 ACE/ASNMP/asnmp/snmp.h delete mode 100644 ACE/ASNMP/asnmp/snmperrs.h delete mode 100644 ACE/ASNMP/asnmp/target.cpp delete mode 100644 ACE/ASNMP/asnmp/target.h delete mode 100644 ACE/ASNMP/asnmp/timetick.cpp delete mode 100644 ACE/ASNMP/asnmp/timetick.h delete mode 100644 ACE/ASNMP/asnmp/transaction.cpp delete mode 100644 ACE/ASNMP/asnmp/transaction.h delete mode 100644 ACE/ASNMP/asnmp/transaction_result.h delete mode 100644 ACE/ASNMP/asnmp/vb.cpp delete mode 100644 ACE/ASNMP/asnmp/vb.h delete mode 100644 ACE/ASNMP/asnmp/wpdu.cpp delete mode 100644 ACE/ASNMP/asnmp/wpdu.h delete mode 100644 ACE/ASNMP/examples/Makefile.am delete mode 100644 ACE/ASNMP/examples/get/Makefile.am delete mode 100644 ACE/ASNMP/examples/get/get.cpp delete mode 100644 ACE/ASNMP/examples/get/get.mpc delete mode 100644 ACE/ASNMP/examples/get/get_async.cpp delete mode 100644 ACE/ASNMP/examples/next/Makefile.am delete mode 100644 ACE/ASNMP/examples/next/next.cpp delete mode 100644 ACE/ASNMP/examples/next/next.mpc delete mode 100644 ACE/ASNMP/examples/set/Makefile.am delete mode 100644 ACE/ASNMP/examples/set/set.cpp delete mode 100644 ACE/ASNMP/examples/set/set.mpc delete mode 100644 ACE/ASNMP/examples/trap/Makefile.am delete mode 100644 ACE/ASNMP/examples/trap/trap.cpp delete mode 100644 ACE/ASNMP/examples/trap/trap.mpc delete mode 100644 ACE/ASNMP/examples/walk/Makefile.am delete mode 100644 ACE/ASNMP/examples/walk/walk.cpp delete mode 100644 ACE/ASNMP/examples/walk/walk.mpc delete mode 100644 ACE/ASNMP/mibs/RFC1213-MIB.my delete mode 100644 ACE/ASNMP/tests/Address_Test.cpp delete mode 100644 ACE/ASNMP/tests/Counter64_Test.cpp delete mode 100644 ACE/ASNMP/tests/Counter_Test.cpp delete mode 100644 ACE/ASNMP/tests/Gauge_Test.cpp delete mode 100644 ACE/ASNMP/tests/Integer_Test.cpp delete mode 100644 ACE/ASNMP/tests/Makefile.am delete mode 100644 ACE/ASNMP/tests/Octet_Test.cpp delete mode 100644 ACE/ASNMP/tests/Oid_Test.cpp delete mode 100644 ACE/ASNMP/tests/Target_Test.cpp delete mode 100644 ACE/ASNMP/tests/Varbind_Test.cpp delete mode 100644 ACE/ASNMP/tests/run_tests.bat delete mode 100755 ACE/ASNMP/tests/run_tests.sh delete mode 100644 ACE/ASNMP/tests/test_config.h delete mode 100644 ACE/ASNMP/tests/tests.mpc delete mode 100644 ACE/AUTHORS delete mode 100644 ACE/COPYING delete mode 100644 ACE/ChangeLog delete mode 100644 ACE/ChangeLogs/ChangeLog-00a delete mode 100644 ACE/ChangeLogs/ChangeLog-00b delete mode 100644 ACE/ChangeLogs/ChangeLog-01a delete mode 100644 ACE/ChangeLogs/ChangeLog-01b delete mode 100644 ACE/ChangeLogs/ChangeLog-02a delete mode 100644 ACE/ChangeLogs/ChangeLog-02b delete mode 100644 ACE/ChangeLogs/ChangeLog-03a delete mode 100644 ACE/ChangeLogs/ChangeLog-03b delete mode 100644 ACE/ChangeLogs/ChangeLog-03c delete mode 100644 ACE/ChangeLogs/ChangeLog-04a delete mode 100644 ACE/ChangeLogs/ChangeLog-04b delete mode 100644 ACE/ChangeLogs/ChangeLog-05a delete mode 100644 ACE/ChangeLogs/ChangeLog-05b delete mode 100644 ACE/ChangeLogs/ChangeLog-05c delete mode 100644 ACE/ChangeLogs/ChangeLog-06a delete mode 100644 ACE/ChangeLogs/ChangeLog-06b delete mode 100644 ACE/ChangeLogs/ChangeLog-07a delete mode 100644 ACE/ChangeLogs/ChangeLog-07b delete mode 100644 ACE/ChangeLogs/ChangeLog-08a delete mode 100644 ACE/ChangeLogs/ChangeLog-93 delete mode 100644 ACE/ChangeLogs/ChangeLog-94 delete mode 100644 ACE/ChangeLogs/ChangeLog-95 delete mode 100644 ACE/ChangeLogs/ChangeLog-96a delete mode 100644 ACE/ChangeLogs/ChangeLog-96b delete mode 100644 ACE/ChangeLogs/ChangeLog-97a delete mode 100644 ACE/ChangeLogs/ChangeLog-97b delete mode 100644 ACE/ChangeLogs/ChangeLog-98a delete mode 100644 ACE/ChangeLogs/ChangeLog-98b delete mode 100644 ACE/ChangeLogs/ChangeLog-99a delete mode 100644 ACE/ChangeLogs/ChangeLog-99b delete mode 100644 ACE/FAQ delete mode 100644 ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp delete mode 100644 ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.h delete mode 100644 ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp delete mode 100644 ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h delete mode 100644 ACE/Kokyu/DSRT_Dispatch_Item_T.cpp delete mode 100644 ACE/Kokyu/DSRT_Dispatch_Item_T.h delete mode 100644 ACE/Kokyu/DSRT_Dispatch_Item_T.inl delete mode 100644 ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp delete mode 100644 ACE/Kokyu/DSRT_Dispatcher_Impl_T.h delete mode 100644 ACE/Kokyu/DSRT_Dispatcher_Impl_T.inl delete mode 100644 ACE/Kokyu/DSRT_Sched_Queue_T.cpp delete mode 100644 ACE/Kokyu/DSRT_Sched_Queue_T.h delete mode 100644 ACE/Kokyu/Default_Dispatcher_Impl.cpp delete mode 100644 ACE/Kokyu/Default_Dispatcher_Impl.h delete mode 100644 ACE/Kokyu/Default_Dispatcher_Impl.inl delete mode 100644 ACE/Kokyu/Dispatch_Deferrer.cpp delete mode 100644 ACE/Kokyu/Dispatch_Deferrer.h delete mode 100644 ACE/Kokyu/Dispatch_Deferrer.inl delete mode 100644 ACE/Kokyu/Dispatcher_Impl.cpp delete mode 100644 ACE/Kokyu/Dispatcher_Impl.h delete mode 100644 ACE/Kokyu/Dispatcher_Impl.inl delete mode 100644 ACE/Kokyu/Dispatcher_Task.cpp delete mode 100644 ACE/Kokyu/Dispatcher_Task.h delete mode 100644 ACE/Kokyu/Dispatcher_Task.inl delete mode 100644 ACE/Kokyu/Kokyu.cpp delete mode 100644 ACE/Kokyu/Kokyu.dsui delete mode 100644 ACE/Kokyu/Kokyu.h delete mode 100644 ACE/Kokyu/Kokyu.inl delete mode 100644 ACE/Kokyu/Kokyu.mpc delete mode 100644 ACE/Kokyu/Kokyu.mwc delete mode 100644 ACE/Kokyu/Kokyu.pc.in delete mode 100644 ACE/Kokyu/Kokyu_defs.cpp delete mode 100644 ACE/Kokyu/Kokyu_defs.h delete mode 100644 ACE/Kokyu/Kokyu_defs.inl delete mode 100644 ACE/Kokyu/Kokyu_dsrt.cpp delete mode 100644 ACE/Kokyu/Kokyu_dsrt.h delete mode 100644 ACE/Kokyu/Kokyu_dsrt.inl delete mode 100644 ACE/Kokyu/Makefile.am delete mode 100644 ACE/Kokyu/README delete mode 100644 ACE/Kokyu/docs/Kokyu.html delete mode 100644 ACE/Kokyu/docs/KokyuEC.jpg delete mode 100644 ACE/Kokyu/docs/kokyu1.jpg delete mode 100644 ACE/Kokyu/docs/kokyu2.jpg delete mode 100644 ACE/Kokyu/kokyu_config.h delete mode 100644 ACE/Kokyu/kokyu_export.h delete mode 100644 ACE/Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc delete mode 100644 ACE/Kokyu/tests/DSRT_MIF/MIF.cpp delete mode 100644 ACE/Kokyu/tests/DSRT_MIF/Makefile.am delete mode 100644 ACE/Kokyu/tests/DSRT_MIF/svc.conf delete mode 100644 ACE/Kokyu/tests/DSRT_MIF/svc.conf.xml delete mode 100644 ACE/Kokyu/tests/EDF/EDF.mpc delete mode 100644 ACE/Kokyu/tests/EDF/Makefile.am delete mode 100644 ACE/Kokyu/tests/EDF/README delete mode 100644 ACE/Kokyu/tests/EDF/test.cpp delete mode 100644 ACE/Kokyu/tests/FIFO/FIFO.mpc delete mode 100644 ACE/Kokyu/tests/FIFO/Makefile.am delete mode 100644 ACE/Kokyu/tests/FIFO/README delete mode 100644 ACE/Kokyu/tests/FIFO/test.cpp delete mode 100644 ACE/Kokyu/tests/Makefile.am delete mode 100644 ACE/Makefile.am delete mode 100644 ACE/NEWS delete mode 100644 ACE/PROBLEM-REPORT-FORM delete mode 100644 ACE/README delete mode 100644 ACE/Release delete mode 100644 ACE/THANKS delete mode 100644 ACE/VERSION delete mode 100644 ACE/ace/ACE.cpp delete mode 100644 ACE/ace/ACE.h delete mode 100644 ACE/ace/ACE.inl delete mode 100644 ACE/ace/ACE.pc.in delete mode 100644 ACE/ace/ACE_crc32.cpp delete mode 100644 ACE/ace/ACE_crc_ccitt.cpp delete mode 100644 ACE/ace/ACE_export.h delete mode 100644 ACE/ace/ARGV.cpp delete mode 100644 ACE/ace/ARGV.h delete mode 100644 ACE/ace/ARGV.inl delete mode 100644 ACE/ace/ATM_Acceptor.cpp delete mode 100644 ACE/ace/ATM_Acceptor.h delete mode 100644 ACE/ace/ATM_Acceptor.inl delete mode 100644 ACE/ace/ATM_Addr.cpp delete mode 100644 ACE/ace/ATM_Addr.h delete mode 100644 ACE/ace/ATM_Addr.inl delete mode 100644 ACE/ace/ATM_Connector.cpp delete mode 100644 ACE/ace/ATM_Connector.h delete mode 100644 ACE/ace/ATM_Connector.inl delete mode 100644 ACE/ace/ATM_Params.cpp delete mode 100644 ACE/ace/ATM_Params.h delete mode 100644 ACE/ace/ATM_Params.inl delete mode 100644 ACE/ace/ATM_QoS.cpp delete mode 100644 ACE/ace/ATM_QoS.h delete mode 100644 ACE/ace/ATM_QoS.inl delete mode 100644 ACE/ace/ATM_Stream.cpp delete mode 100644 ACE/ace/ATM_Stream.h delete mode 100644 ACE/ace/ATM_Stream.inl delete mode 100644 ACE/ace/Acceptor.cpp delete mode 100644 ACE/ace/Acceptor.h delete mode 100644 ACE/ace/Activation_Queue.cpp delete mode 100644 ACE/ace/Activation_Queue.h delete mode 100644 ACE/ace/Activation_Queue.inl delete mode 100644 ACE/ace/Active_Map_Manager.cpp delete mode 100644 ACE/ace/Active_Map_Manager.h delete mode 100644 ACE/ace/Active_Map_Manager.inl delete mode 100644 ACE/ace/Active_Map_Manager_T.cpp delete mode 100644 ACE/ace/Active_Map_Manager_T.h delete mode 100644 ACE/ace/Active_Map_Manager_T.inl delete mode 100644 ACE/ace/Addr.cpp delete mode 100644 ACE/ace/Addr.h delete mode 100644 ACE/ace/Addr.inl delete mode 100644 ACE/ace/Arg_Shifter.cpp delete mode 100644 ACE/ace/Arg_Shifter.h delete mode 100644 ACE/ace/Argv_Type_Converter.cpp delete mode 100644 ACE/ace/Argv_Type_Converter.h delete mode 100644 ACE/ace/Argv_Type_Converter.inl delete mode 100644 ACE/ace/Array.h delete mode 100644 ACE/ace/Array_Base.cpp delete mode 100644 ACE/ace/Array_Base.h delete mode 100644 ACE/ace/Array_Base.inl delete mode 100644 ACE/ace/Array_Map.cpp delete mode 100644 ACE/ace/Array_Map.h delete mode 100644 ACE/ace/Array_Map.inl delete mode 100644 ACE/ace/Assert.cpp delete mode 100644 ACE/ace/Assert.h delete mode 100644 ACE/ace/Asynch_Acceptor.cpp delete mode 100644 ACE/ace/Asynch_Acceptor.h delete mode 100644 ACE/ace/Asynch_Connector.cpp delete mode 100644 ACE/ace/Asynch_Connector.h delete mode 100644 ACE/ace/Asynch_IO.cpp delete mode 100644 ACE/ace/Asynch_IO.h delete mode 100644 ACE/ace/Asynch_IO_Impl.cpp delete mode 100644 ACE/ace/Asynch_IO_Impl.h delete mode 100644 ACE/ace/Asynch_IO_Impl.inl delete mode 100644 ACE/ace/Asynch_Pseudo_Task.cpp delete mode 100644 ACE/ace/Asynch_Pseudo_Task.h delete mode 100644 ACE/ace/Atomic_Op.cpp delete mode 100644 ACE/ace/Atomic_Op.h delete mode 100644 ACE/ace/Atomic_Op.inl delete mode 100644 ACE/ace/Atomic_Op_Sparc.c delete mode 100644 ACE/ace/Atomic_Op_Sparc.h delete mode 100644 ACE/ace/Atomic_Op_T.cpp delete mode 100644 ACE/ace/Atomic_Op_T.h delete mode 100644 ACE/ace/Atomic_Op_T.inl delete mode 100644 ACE/ace/Auto_Event.cpp delete mode 100644 ACE/ace/Auto_Event.h delete mode 100644 ACE/ace/Auto_Event.inl delete mode 100644 ACE/ace/Auto_Functor.cpp delete mode 100644 ACE/ace/Auto_Functor.h delete mode 100644 ACE/ace/Auto_Functor.inl delete mode 100644 ACE/ace/Auto_IncDec_T.cpp delete mode 100644 ACE/ace/Auto_IncDec_T.h delete mode 100644 ACE/ace/Auto_IncDec_T.inl delete mode 100644 ACE/ace/Auto_Ptr.cpp delete mode 100644 ACE/ace/Auto_Ptr.h delete mode 100644 ACE/ace/Auto_Ptr.inl delete mode 100644 ACE/ace/Barrier.cpp delete mode 100644 ACE/ace/Barrier.h delete mode 100644 ACE/ace/Barrier.inl delete mode 100644 ACE/ace/Base_Thread_Adapter.cpp delete mode 100644 ACE/ace/Base_Thread_Adapter.h delete mode 100644 ACE/ace/Base_Thread_Adapter.inl delete mode 100644 ACE/ace/Based_Pointer_Repository.cpp delete mode 100644 ACE/ace/Based_Pointer_Repository.h delete mode 100644 ACE/ace/Based_Pointer_T.cpp delete mode 100644 ACE/ace/Based_Pointer_T.h delete mode 100644 ACE/ace/Based_Pointer_T.inl delete mode 100644 ACE/ace/Basic_Stats.cpp delete mode 100644 ACE/ace/Basic_Stats.h delete mode 100644 ACE/ace/Basic_Stats.inl delete mode 100644 ACE/ace/Basic_Types.cpp delete mode 100644 ACE/ace/Basic_Types.h delete mode 100644 ACE/ace/Basic_Types.inl delete mode 100644 ACE/ace/Bound_Ptr.h delete mode 100644 ACE/ace/Bound_Ptr.inl delete mode 100644 ACE/ace/CDR_Base.cpp delete mode 100644 ACE/ace/CDR_Base.h delete mode 100644 ACE/ace/CDR_Base.inl delete mode 100644 ACE/ace/CDR_Size.cpp delete mode 100644 ACE/ace/CDR_Size.h delete mode 100644 ACE/ace/CDR_Size.inl delete mode 100644 ACE/ace/CDR_Stream.cpp delete mode 100644 ACE/ace/CDR_Stream.h delete mode 100644 ACE/ace/CDR_Stream.inl delete mode 100644 ACE/ace/CE_Screen_Output.cpp delete mode 100644 ACE/ace/CE_Screen_Output.h delete mode 100644 ACE/ace/CORBA_macros.h delete mode 100644 ACE/ace/Cache_Map_Manager_T.cpp delete mode 100644 ACE/ace/Cache_Map_Manager_T.h delete mode 100644 ACE/ace/Cache_Map_Manager_T.inl delete mode 100644 ACE/ace/Cached_Connect_Strategy_T.cpp delete mode 100644 ACE/ace/Cached_Connect_Strategy_T.h delete mode 100644 ACE/ace/Caching_Strategies_T.cpp delete mode 100644 ACE/ace/Caching_Strategies_T.h delete mode 100644 ACE/ace/Caching_Strategies_T.inl delete mode 100644 ACE/ace/Caching_Utility_T.cpp delete mode 100644 ACE/ace/Caching_Utility_T.h delete mode 100644 ACE/ace/Capabilities.cpp delete mode 100644 ACE/ace/Capabilities.h delete mode 100644 ACE/ace/Capabilities.inl delete mode 100644 ACE/ace/Cleanup.cpp delete mode 100644 ACE/ace/Cleanup.h delete mode 100644 ACE/ace/Cleanup.inl delete mode 100644 ACE/ace/Cleanup_Strategies_T.cpp delete mode 100644 ACE/ace/Cleanup_Strategies_T.h delete mode 100644 ACE/ace/Codecs.cpp delete mode 100644 ACE/ace/Codecs.h delete mode 100644 ACE/ace/Codeset_IBM1047.cpp delete mode 100644 ACE/ace/Codeset_IBM1047.h delete mode 100644 ACE/ace/Codeset_Registry.cpp delete mode 100644 ACE/ace/Codeset_Registry.h delete mode 100644 ACE/ace/Codeset_Registry.inl delete mode 100644 ACE/ace/Codeset_Registry_db.cpp delete mode 100644 ACE/ace/Codeset_Symbols.h delete mode 100644 ACE/ace/Condition_Recursive_Thread_Mutex.cpp delete mode 100644 ACE/ace/Condition_Recursive_Thread_Mutex.h delete mode 100644 ACE/ace/Condition_T.cpp delete mode 100644 ACE/ace/Condition_T.h delete mode 100644 ACE/ace/Condition_T.inl delete mode 100644 ACE/ace/Condition_Thread_Mutex.cpp delete mode 100644 ACE/ace/Condition_Thread_Mutex.h delete mode 100644 ACE/ace/Condition_Thread_Mutex.inl delete mode 100644 ACE/ace/Configuration.cpp delete mode 100644 ACE/ace/Configuration.h delete mode 100644 ACE/ace/Configuration.inl delete mode 100644 ACE/ace/Configuration_Import_Export.cpp delete mode 100644 ACE/ace/Configuration_Import_Export.h delete mode 100644 ACE/ace/Connection_Recycling_Strategy.cpp delete mode 100644 ACE/ace/Connection_Recycling_Strategy.h delete mode 100644 ACE/ace/Connector.cpp delete mode 100644 ACE/ace/Connector.h delete mode 100644 ACE/ace/Containers.cpp delete mode 100644 ACE/ace/Containers.h delete mode 100644 ACE/ace/Containers.inl delete mode 100644 ACE/ace/Containers_T.cpp delete mode 100644 ACE/ace/Containers_T.h delete mode 100644 ACE/ace/Containers_T.inl delete mode 100644 ACE/ace/Copy_Disabled.cpp delete mode 100644 ACE/ace/Copy_Disabled.h delete mode 100644 ACE/ace/Countdown_Time.cpp delete mode 100644 ACE/ace/Countdown_Time.h delete mode 100644 ACE/ace/DEV.cpp delete mode 100644 ACE/ace/DEV.h delete mode 100644 ACE/ace/DEV.inl delete mode 100644 ACE/ace/DEV_Addr.cpp delete mode 100644 ACE/ace/DEV_Addr.h delete mode 100644 ACE/ace/DEV_Addr.inl delete mode 100644 ACE/ace/DEV_Connector.cpp delete mode 100644 ACE/ace/DEV_Connector.h delete mode 100644 ACE/ace/DEV_Connector.inl delete mode 100644 ACE/ace/DEV_IO.cpp delete mode 100644 ACE/ace/DEV_IO.h delete mode 100644 ACE/ace/DEV_IO.inl delete mode 100644 ACE/ace/DLL.cpp delete mode 100644 ACE/ace/DLL.h delete mode 100644 ACE/ace/DLL_Manager.cpp delete mode 100644 ACE/ace/DLL_Manager.h delete mode 100644 ACE/ace/Date_Time.cpp delete mode 100644 ACE/ace/Date_Time.h delete mode 100644 ACE/ace/Date_Time.inl delete mode 100644 ACE/ace/Default_Constants.h delete mode 100644 ACE/ace/Dev_Poll_Reactor.cpp delete mode 100644 ACE/ace/Dev_Poll_Reactor.h delete mode 100644 ACE/ace/Dev_Poll_Reactor.inl delete mode 100644 ACE/ace/Dirent.cpp delete mode 100644 ACE/ace/Dirent.h delete mode 100644 ACE/ace/Dirent.inl delete mode 100644 ACE/ace/Dirent_Selector.cpp delete mode 100644 ACE/ace/Dirent_Selector.h delete mode 100644 ACE/ace/Dirent_Selector.inl delete mode 100644 ACE/ace/Dump.cpp delete mode 100644 ACE/ace/Dump.h delete mode 100644 ACE/ace/Dump_T.cpp delete mode 100644 ACE/ace/Dump_T.h delete mode 100644 ACE/ace/Dynamic.cpp delete mode 100644 ACE/ace/Dynamic.h delete mode 100644 ACE/ace/Dynamic.inl delete mode 100644 ACE/ace/Dynamic_Message_Strategy.cpp delete mode 100644 ACE/ace/Dynamic_Message_Strategy.h delete mode 100644 ACE/ace/Dynamic_Message_Strategy.inl delete mode 100644 ACE/ace/Dynamic_Service.cpp delete mode 100644 ACE/ace/Dynamic_Service.h delete mode 100644 ACE/ace/Dynamic_Service.inl delete mode 100644 ACE/ace/Dynamic_Service_Base.cpp delete mode 100644 ACE/ace/Dynamic_Service_Base.h delete mode 100644 ACE/ace/Dynamic_Service_Dependency.cpp delete mode 100644 ACE/ace/Dynamic_Service_Dependency.h delete mode 100644 ACE/ace/Encoding_Converter.cpp delete mode 100644 ACE/ace/Encoding_Converter.h delete mode 100644 ACE/ace/Encoding_Converter_Factory.cpp delete mode 100644 ACE/ace/Encoding_Converter_Factory.h delete mode 100644 ACE/ace/Env_Value_T.cpp delete mode 100644 ACE/ace/Env_Value_T.h delete mode 100644 ACE/ace/Env_Value_T.inl delete mode 100644 ACE/ace/Event.cpp delete mode 100644 ACE/ace/Event.h delete mode 100644 ACE/ace/Event.inl delete mode 100644 ACE/ace/Event_Handler.cpp delete mode 100644 ACE/ace/Event_Handler.h delete mode 100644 ACE/ace/Event_Handler.inl delete mode 100644 ACE/ace/Event_Handler_T.cpp delete mode 100644 ACE/ace/Event_Handler_T.h delete mode 100644 ACE/ace/Event_Handler_T.inl delete mode 100644 ACE/ace/Exception_Macros.h delete mode 100644 ACE/ace/FIFO.cpp delete mode 100644 ACE/ace/FIFO.h delete mode 100644 ACE/ace/FIFO.inl delete mode 100644 ACE/ace/FIFO_Recv.cpp delete mode 100644 ACE/ace/FIFO_Recv.h delete mode 100644 ACE/ace/FIFO_Recv.inl delete mode 100644 ACE/ace/FIFO_Recv_Msg.cpp delete mode 100644 ACE/ace/FIFO_Recv_Msg.h delete mode 100644 ACE/ace/FIFO_Recv_Msg.inl delete mode 100644 ACE/ace/FIFO_Send.cpp delete mode 100644 ACE/ace/FIFO_Send.h delete mode 100644 ACE/ace/FIFO_Send.inl delete mode 100644 ACE/ace/FIFO_Send_Msg.cpp delete mode 100644 ACE/ace/FIFO_Send_Msg.h delete mode 100644 ACE/ace/FIFO_Send_Msg.inl delete mode 100644 ACE/ace/FILE.cpp delete mode 100644 ACE/ace/FILE.h delete mode 100644 ACE/ace/FILE.inl delete mode 100644 ACE/ace/FILE_Addr.cpp delete mode 100644 ACE/ace/FILE_Addr.h delete mode 100644 ACE/ace/FILE_Addr.inl delete mode 100644 ACE/ace/FILE_Connector.cpp delete mode 100644 ACE/ace/FILE_Connector.h delete mode 100644 ACE/ace/FILE_Connector.inl delete mode 100644 ACE/ace/FILE_IO.cpp delete mode 100644 ACE/ace/FILE_IO.h delete mode 100644 ACE/ace/FILE_IO.inl delete mode 100644 ACE/ace/File_Lock.cpp delete mode 100644 ACE/ace/File_Lock.h delete mode 100644 ACE/ace/File_Lock.inl delete mode 100644 ACE/ace/Filecache.cpp delete mode 100644 ACE/ace/Filecache.h delete mode 100644 ACE/ace/FlReactor/ACE_FlReactor.pc.in delete mode 100644 ACE/ace/FlReactor/ACE_FlReactor_export.h delete mode 100644 ACE/ace/FlReactor/FlReactor.cpp delete mode 100644 ACE/ace/FlReactor/FlReactor.h delete mode 100644 ACE/ace/Flag_Manip.cpp delete mode 100644 ACE/ace/Flag_Manip.h delete mode 100644 ACE/ace/Flag_Manip.inl delete mode 100644 ACE/ace/FoxReactor/ACE_FoxReactor.pc.in delete mode 100644 ACE/ace/FoxReactor/ACE_FoxReactor_export.h delete mode 100644 ACE/ace/FoxReactor/FoxReactor.cpp delete mode 100644 ACE/ace/FoxReactor/FoxReactor.h delete mode 100644 ACE/ace/Framework_Component.cpp delete mode 100644 ACE/ace/Framework_Component.h delete mode 100644 ACE/ace/Framework_Component.inl delete mode 100644 ACE/ace/Framework_Component_T.cpp delete mode 100644 ACE/ace/Framework_Component_T.h delete mode 100644 ACE/ace/Free_List.cpp delete mode 100644 ACE/ace/Free_List.h delete mode 100644 ACE/ace/Functor.cpp delete mode 100644 ACE/ace/Functor.h delete mode 100644 ACE/ace/Functor.inl delete mode 100644 ACE/ace/Functor_String.cpp delete mode 100644 ACE/ace/Functor_String.h delete mode 100644 ACE/ace/Functor_String.inl delete mode 100644 ACE/ace/Functor_T.cpp delete mode 100644 ACE/ace/Functor_T.h delete mode 100644 ACE/ace/Functor_T.inl delete mode 100644 ACE/ace/Future.cpp delete mode 100644 ACE/ace/Future.h delete mode 100644 ACE/ace/Future_Set.cpp delete mode 100644 ACE/ace/Future_Set.h delete mode 100644 ACE/ace/Get_Opt.cpp delete mode 100644 ACE/ace/Get_Opt.h delete mode 100644 ACE/ace/Get_Opt.inl delete mode 100644 ACE/ace/Global_Macros.h delete mode 100644 ACE/ace/Guard_T.cpp delete mode 100644 ACE/ace/Guard_T.h delete mode 100644 ACE/ace/Guard_T.inl delete mode 100644 ACE/ace/Handle_Gobbler.h delete mode 100644 ACE/ace/Handle_Gobbler.inl delete mode 100644 ACE/ace/Handle_Ops.cpp delete mode 100644 ACE/ace/Handle_Ops.h delete mode 100644 ACE/ace/Handle_Set.cpp delete mode 100644 ACE/ace/Handle_Set.h delete mode 100644 ACE/ace/Handle_Set.inl delete mode 100644 ACE/ace/Hash_Cache_Map_Manager_T.cpp delete mode 100644 ACE/ace/Hash_Cache_Map_Manager_T.h delete mode 100644 ACE/ace/Hash_Cache_Map_Manager_T.inl delete mode 100644 ACE/ace/Hash_Map_Manager.h delete mode 100644 ACE/ace/Hash_Map_Manager_T.cpp delete mode 100644 ACE/ace/Hash_Map_Manager_T.h delete mode 100644 ACE/ace/Hash_Map_Manager_T.inl delete mode 100644 ACE/ace/Hash_Map_With_Allocator_T.cpp delete mode 100644 ACE/ace/Hash_Map_With_Allocator_T.h delete mode 100644 ACE/ace/Hash_Map_With_Allocator_T.inl delete mode 100644 ACE/ace/Hash_Multi_Map_Manager_T.cpp delete mode 100644 ACE/ace/Hash_Multi_Map_Manager_T.h delete mode 100644 ACE/ace/Hash_Multi_Map_Manager_T.inl delete mode 100644 ACE/ace/Hashable.cpp delete mode 100644 ACE/ace/Hashable.h delete mode 100644 ACE/ace/Hashable.inl delete mode 100644 ACE/ace/High_Res_Timer.cpp delete mode 100644 ACE/ace/High_Res_Timer.h delete mode 100644 ACE/ace/High_Res_Timer.inl delete mode 100644 ACE/ace/ICMP_Socket.cpp delete mode 100644 ACE/ace/ICMP_Socket.h delete mode 100644 ACE/ace/INET_Addr.cpp delete mode 100644 ACE/ace/INET_Addr.h delete mode 100644 ACE/ace/INET_Addr.inl delete mode 100644 ACE/ace/IOStream.cpp delete mode 100644 ACE/ace/IOStream.h delete mode 100644 ACE/ace/IOStream_T.cpp delete mode 100644 ACE/ace/IOStream_T.h delete mode 100644 ACE/ace/IOStream_T.inl delete mode 100644 ACE/ace/IO_Cntl_Msg.cpp delete mode 100644 ACE/ace/IO_Cntl_Msg.h delete mode 100644 ACE/ace/IO_Cntl_Msg.inl delete mode 100644 ACE/ace/IO_SAP.cpp delete mode 100644 ACE/ace/IO_SAP.h delete mode 100644 ACE/ace/IO_SAP.inl delete mode 100644 ACE/ace/IPC_SAP.cpp delete mode 100644 ACE/ace/IPC_SAP.h delete mode 100644 ACE/ace/IPC_SAP.inl delete mode 100644 ACE/ace/If_Then_Else.h delete mode 100644 ACE/ace/Init_ACE.cpp delete mode 100644 ACE/ace/Init_ACE.h delete mode 100644 ACE/ace/Intrusive_List.cpp delete mode 100644 ACE/ace/Intrusive_List.h delete mode 100644 ACE/ace/Intrusive_List.inl delete mode 100644 ACE/ace/Intrusive_List_Node.cpp delete mode 100644 ACE/ace/Intrusive_List_Node.h delete mode 100644 ACE/ace/Intrusive_List_Node.inl delete mode 100644 ACE/ace/LOCK_SOCK_Acceptor.cpp delete mode 100644 ACE/ace/LOCK_SOCK_Acceptor.h delete mode 100644 ACE/ace/LSOCK.cpp delete mode 100644 ACE/ace/LSOCK.h delete mode 100644 ACE/ace/LSOCK.inl delete mode 100644 ACE/ace/LSOCK_Acceptor.cpp delete mode 100644 ACE/ace/LSOCK_Acceptor.h delete mode 100644 ACE/ace/LSOCK_CODgram.cpp delete mode 100644 ACE/ace/LSOCK_CODgram.h delete mode 100644 ACE/ace/LSOCK_CODgram.inl delete mode 100644 ACE/ace/LSOCK_Connector.cpp delete mode 100644 ACE/ace/LSOCK_Connector.h delete mode 100644 ACE/ace/LSOCK_Connector.inl delete mode 100644 ACE/ace/LSOCK_Dgram.cpp delete mode 100644 ACE/ace/LSOCK_Dgram.h delete mode 100644 ACE/ace/LSOCK_Dgram.inl delete mode 100644 ACE/ace/LSOCK_Stream.cpp delete mode 100644 ACE/ace/LSOCK_Stream.h delete mode 100644 ACE/ace/LSOCK_Stream.inl delete mode 100644 ACE/ace/Lib_Find.cpp delete mode 100644 ACE/ace/Lib_Find.h delete mode 100644 ACE/ace/Local_Memory_Pool.cpp delete mode 100644 ACE/ace/Local_Memory_Pool.h delete mode 100644 ACE/ace/Local_Name_Space.cpp delete mode 100644 ACE/ace/Local_Name_Space.h delete mode 100644 ACE/ace/Local_Name_Space_T.cpp delete mode 100644 ACE/ace/Local_Name_Space_T.h delete mode 100644 ACE/ace/Local_Tokens.cpp delete mode 100644 ACE/ace/Local_Tokens.h delete mode 100644 ACE/ace/Local_Tokens.inl delete mode 100644 ACE/ace/Lock.cpp delete mode 100644 ACE/ace/Lock.h delete mode 100644 ACE/ace/Lock.inl delete mode 100644 ACE/ace/Lock_Adapter_T.cpp delete mode 100644 ACE/ace/Lock_Adapter_T.h delete mode 100644 ACE/ace/Lock_Adapter_T.inl delete mode 100644 ACE/ace/Log_Msg.cpp delete mode 100644 ACE/ace/Log_Msg.h delete mode 100644 ACE/ace/Log_Msg.inl delete mode 100644 ACE/ace/Log_Msg_Backend.cpp delete mode 100644 ACE/ace/Log_Msg_Backend.h delete mode 100644 ACE/ace/Log_Msg_Callback.cpp delete mode 100644 ACE/ace/Log_Msg_Callback.h delete mode 100644 ACE/ace/Log_Msg_IPC.cpp delete mode 100644 ACE/ace/Log_Msg_IPC.h delete mode 100644 ACE/ace/Log_Msg_NT_Event_Log.cpp delete mode 100644 ACE/ace/Log_Msg_NT_Event_Log.h delete mode 100644 ACE/ace/Log_Msg_UNIX_Syslog.cpp delete mode 100644 ACE/ace/Log_Msg_UNIX_Syslog.h delete mode 100644 ACE/ace/Log_Priority.h delete mode 100644 ACE/ace/Log_Record.cpp delete mode 100644 ACE/ace/Log_Record.h delete mode 100644 ACE/ace/Log_Record.inl delete mode 100644 ACE/ace/Logging_Strategy.cpp delete mode 100644 ACE/ace/Logging_Strategy.h delete mode 100644 ACE/ace/MEM_Acceptor.cpp delete mode 100644 ACE/ace/MEM_Acceptor.h delete mode 100644 ACE/ace/MEM_Acceptor.inl delete mode 100644 ACE/ace/MEM_Addr.cpp delete mode 100644 ACE/ace/MEM_Addr.h delete mode 100644 ACE/ace/MEM_Addr.inl delete mode 100644 ACE/ace/MEM_Connector.cpp delete mode 100644 ACE/ace/MEM_Connector.h delete mode 100644 ACE/ace/MEM_Connector.inl delete mode 100644 ACE/ace/MEM_IO.cpp delete mode 100644 ACE/ace/MEM_IO.h delete mode 100644 ACE/ace/MEM_IO.inl delete mode 100644 ACE/ace/MEM_SAP.cpp delete mode 100644 ACE/ace/MEM_SAP.h delete mode 100644 ACE/ace/MEM_SAP.inl delete mode 100644 ACE/ace/MEM_Stream.cpp delete mode 100644 ACE/ace/MEM_Stream.h delete mode 100644 ACE/ace/MEM_Stream.inl delete mode 100644 ACE/ace/MMAP_Memory_Pool.cpp delete mode 100644 ACE/ace/MMAP_Memory_Pool.h delete mode 100644 ACE/ace/MMAP_Memory_Pool.inl delete mode 100644 ACE/ace/Makefile.am delete mode 100644 ACE/ace/Malloc.cpp delete mode 100644 ACE/ace/Malloc.h delete mode 100644 ACE/ace/Malloc.inl delete mode 100644 ACE/ace/Malloc_Allocator.cpp delete mode 100644 ACE/ace/Malloc_Allocator.h delete mode 100644 ACE/ace/Malloc_Allocator.inl delete mode 100644 ACE/ace/Malloc_Base.h delete mode 100644 ACE/ace/Malloc_T.cpp delete mode 100644 ACE/ace/Malloc_T.h delete mode 100644 ACE/ace/Malloc_T.inl delete mode 100644 ACE/ace/Managed_Object.cpp delete mode 100644 ACE/ace/Managed_Object.h delete mode 100644 ACE/ace/Managed_Object.inl delete mode 100644 ACE/ace/Manual_Event.cpp delete mode 100644 ACE/ace/Manual_Event.h delete mode 100644 ACE/ace/Manual_Event.inl delete mode 100644 ACE/ace/Map.h delete mode 100644 ACE/ace/Map_Manager.cpp delete mode 100644 ACE/ace/Map_Manager.h delete mode 100644 ACE/ace/Map_Manager.inl delete mode 100644 ACE/ace/Map_T.cpp delete mode 100644 ACE/ace/Map_T.h delete mode 100644 ACE/ace/Map_T.inl delete mode 100644 ACE/ace/Mem_Map.cpp delete mode 100644 ACE/ace/Mem_Map.h delete mode 100644 ACE/ace/Mem_Map.inl delete mode 100644 ACE/ace/Memory_Pool.h delete mode 100644 ACE/ace/Message_Block.cpp delete mode 100644 ACE/ace/Message_Block.h delete mode 100644 ACE/ace/Message_Block.inl delete mode 100644 ACE/ace/Message_Block_T.cpp delete mode 100644 ACE/ace/Message_Block_T.h delete mode 100644 ACE/ace/Message_Block_T.inl delete mode 100644 ACE/ace/Message_Queue.cpp delete mode 100644 ACE/ace/Message_Queue.h delete mode 100644 ACE/ace/Message_Queue.inl delete mode 100644 ACE/ace/Message_Queue_NT.cpp delete mode 100644 ACE/ace/Message_Queue_NT.h delete mode 100644 ACE/ace/Message_Queue_NT.inl delete mode 100644 ACE/ace/Message_Queue_T.cpp delete mode 100644 ACE/ace/Message_Queue_T.h delete mode 100644 ACE/ace/Message_Queue_Vx.cpp delete mode 100644 ACE/ace/Message_Queue_Vx.h delete mode 100644 ACE/ace/Message_Queue_Vx.inl delete mode 100644 ACE/ace/Method_Object.h delete mode 100644 ACE/ace/Method_Request.cpp delete mode 100644 ACE/ace/Method_Request.h delete mode 100644 ACE/ace/Metrics_Cache.h delete mode 100644 ACE/ace/Metrics_Cache_T.cpp delete mode 100644 ACE/ace/Metrics_Cache_T.h delete mode 100644 ACE/ace/Metrics_Cache_T.inl delete mode 100644 ACE/ace/Min_Max.h delete mode 100644 ACE/ace/Module.cpp delete mode 100644 ACE/ace/Module.h delete mode 100644 ACE/ace/Module.inl delete mode 100644 ACE/ace/Msg_WFMO_Reactor.cpp delete mode 100644 ACE/ace/Msg_WFMO_Reactor.h delete mode 100644 ACE/ace/Msg_WFMO_Reactor.inl delete mode 100644 ACE/ace/Multihomed_INET_Addr.cpp delete mode 100644 ACE/ace/Multihomed_INET_Addr.h delete mode 100644 ACE/ace/Multihomed_INET_Addr.inl delete mode 100644 ACE/ace/Mutex.cpp delete mode 100644 ACE/ace/Mutex.h delete mode 100644 ACE/ace/Mutex.inl delete mode 100644 ACE/ace/NT_Service.cpp delete mode 100644 ACE/ace/NT_Service.h delete mode 100644 ACE/ace/NT_Service.inl delete mode 100644 ACE/ace/Name_Proxy.cpp delete mode 100644 ACE/ace/Name_Proxy.h delete mode 100644 ACE/ace/Name_Request_Reply.cpp delete mode 100644 ACE/ace/Name_Request_Reply.h delete mode 100644 ACE/ace/Name_Space.cpp delete mode 100644 ACE/ace/Name_Space.h delete mode 100644 ACE/ace/Naming_Context.cpp delete mode 100644 ACE/ace/Naming_Context.h delete mode 100644 ACE/ace/Naming_Context.inl delete mode 100644 ACE/ace/Netlink_Addr.cpp delete mode 100644 ACE/ace/Netlink_Addr.h delete mode 100644 ACE/ace/Netlink_Addr.inl delete mode 100644 ACE/ace/Node.cpp delete mode 100644 ACE/ace/Node.h delete mode 100644 ACE/ace/Notification_Queue.cpp delete mode 100644 ACE/ace/Notification_Queue.h delete mode 100644 ACE/ace/Notification_Queue.inl delete mode 100644 ACE/ace/Notification_Strategy.cpp delete mode 100644 ACE/ace/Notification_Strategy.h delete mode 100644 ACE/ace/Notification_Strategy.inl delete mode 100644 ACE/ace/Null_Barrier.h delete mode 100644 ACE/ace/Null_Condition.h delete mode 100644 ACE/ace/Null_Mutex.h delete mode 100644 ACE/ace/Null_Semaphore.h delete mode 100644 ACE/ace/Numeric_Limits.h delete mode 100644 ACE/ace/OS.cpp delete mode 100644 ACE/ace/OS.h delete mode 100644 ACE/ace/OS.inl delete mode 100644 ACE/ace/OS_Dirent.h delete mode 100644 ACE/ace/OS_Errno.cpp delete mode 100644 ACE/ace/OS_Errno.h delete mode 100644 ACE/ace/OS_Errno.inl delete mode 100644 ACE/ace/OS_Log_Msg_Attributes.cpp delete mode 100644 ACE/ace/OS_Log_Msg_Attributes.h delete mode 100644 ACE/ace/OS_Log_Msg_Attributes.inl delete mode 100644 ACE/ace/OS_Memory.h delete mode 100644 ACE/ace/OS_NS_Thread.cpp delete mode 100644 ACE/ace/OS_NS_Thread.h delete mode 100644 ACE/ace/OS_NS_Thread.inl delete mode 100644 ACE/ace/OS_NS_arpa_inet.cpp delete mode 100644 ACE/ace/OS_NS_arpa_inet.h delete mode 100644 ACE/ace/OS_NS_arpa_inet.inl delete mode 100644 ACE/ace/OS_NS_ctype.cpp delete mode 100644 ACE/ace/OS_NS_ctype.h delete mode 100644 ACE/ace/OS_NS_ctype.inl delete mode 100644 ACE/ace/OS_NS_dirent.cpp delete mode 100644 ACE/ace/OS_NS_dirent.h delete mode 100644 ACE/ace/OS_NS_dirent.inl delete mode 100644 ACE/ace/OS_NS_dlfcn.cpp delete mode 100644 ACE/ace/OS_NS_dlfcn.h delete mode 100644 ACE/ace/OS_NS_dlfcn.inl delete mode 100644 ACE/ace/OS_NS_errno.cpp delete mode 100644 ACE/ace/OS_NS_errno.h delete mode 100644 ACE/ace/OS_NS_errno.inl delete mode 100644 ACE/ace/OS_NS_fcntl.cpp delete mode 100644 ACE/ace/OS_NS_fcntl.h delete mode 100644 ACE/ace/OS_NS_fcntl.inl delete mode 100644 ACE/ace/OS_NS_macros.h delete mode 100644 ACE/ace/OS_NS_math.cpp delete mode 100644 ACE/ace/OS_NS_math.h delete mode 100644 ACE/ace/OS_NS_math.inl delete mode 100644 ACE/ace/OS_NS_netdb.cpp delete mode 100644 ACE/ace/OS_NS_netdb.h delete mode 100644 ACE/ace/OS_NS_netdb.inl delete mode 100644 ACE/ace/OS_NS_poll.cpp delete mode 100644 ACE/ace/OS_NS_poll.h delete mode 100644 ACE/ace/OS_NS_poll.inl delete mode 100644 ACE/ace/OS_NS_pwd.cpp delete mode 100644 ACE/ace/OS_NS_pwd.h delete mode 100644 ACE/ace/OS_NS_pwd.inl delete mode 100644 ACE/ace/OS_NS_regex.cpp delete mode 100644 ACE/ace/OS_NS_regex.h delete mode 100644 ACE/ace/OS_NS_regex.inl delete mode 100644 ACE/ace/OS_NS_signal.cpp delete mode 100644 ACE/ace/OS_NS_signal.h delete mode 100644 ACE/ace/OS_NS_signal.inl delete mode 100644 ACE/ace/OS_NS_stdio.cpp delete mode 100644 ACE/ace/OS_NS_stdio.h delete mode 100644 ACE/ace/OS_NS_stdio.inl delete mode 100644 ACE/ace/OS_NS_stdlib.cpp delete mode 100644 ACE/ace/OS_NS_stdlib.h delete mode 100644 ACE/ace/OS_NS_stdlib.inl delete mode 100644 ACE/ace/OS_NS_string.cpp delete mode 100644 ACE/ace/OS_NS_string.h delete mode 100644 ACE/ace/OS_NS_string.inl delete mode 100644 ACE/ace/OS_NS_strings.cpp delete mode 100644 ACE/ace/OS_NS_strings.h delete mode 100644 ACE/ace/OS_NS_strings.inl delete mode 100644 ACE/ace/OS_NS_stropts.cpp delete mode 100644 ACE/ace/OS_NS_stropts.h delete mode 100644 ACE/ace/OS_NS_stropts.inl delete mode 100644 ACE/ace/OS_NS_sys_mman.cpp delete mode 100644 ACE/ace/OS_NS_sys_mman.h delete mode 100644 ACE/ace/OS_NS_sys_mman.inl delete mode 100644 ACE/ace/OS_NS_sys_msg.cpp delete mode 100644 ACE/ace/OS_NS_sys_msg.h delete mode 100644 ACE/ace/OS_NS_sys_msg.inl delete mode 100644 ACE/ace/OS_NS_sys_resource.cpp delete mode 100644 ACE/ace/OS_NS_sys_resource.h delete mode 100644 ACE/ace/OS_NS_sys_resource.inl delete mode 100644 ACE/ace/OS_NS_sys_select.cpp delete mode 100644 ACE/ace/OS_NS_sys_select.h delete mode 100644 ACE/ace/OS_NS_sys_select.inl delete mode 100644 ACE/ace/OS_NS_sys_sendfile.cpp delete mode 100644 ACE/ace/OS_NS_sys_sendfile.h delete mode 100644 ACE/ace/OS_NS_sys_sendfile.inl delete mode 100644 ACE/ace/OS_NS_sys_shm.cpp delete mode 100644 ACE/ace/OS_NS_sys_shm.h delete mode 100644 ACE/ace/OS_NS_sys_shm.inl delete mode 100644 ACE/ace/OS_NS_sys_socket.cpp delete mode 100644 ACE/ace/OS_NS_sys_socket.h delete mode 100644 ACE/ace/OS_NS_sys_socket.inl delete mode 100644 ACE/ace/OS_NS_sys_stat.cpp delete mode 100644 ACE/ace/OS_NS_sys_stat.h delete mode 100644 ACE/ace/OS_NS_sys_stat.inl delete mode 100644 ACE/ace/OS_NS_sys_time.cpp delete mode 100644 ACE/ace/OS_NS_sys_time.h delete mode 100644 ACE/ace/OS_NS_sys_time.inl delete mode 100644 ACE/ace/OS_NS_sys_uio.cpp delete mode 100644 ACE/ace/OS_NS_sys_uio.h delete mode 100644 ACE/ace/OS_NS_sys_uio.inl delete mode 100644 ACE/ace/OS_NS_sys_utsname.cpp delete mode 100644 ACE/ace/OS_NS_sys_utsname.h delete mode 100644 ACE/ace/OS_NS_sys_wait.cpp delete mode 100644 ACE/ace/OS_NS_sys_wait.h delete mode 100644 ACE/ace/OS_NS_sys_wait.inl delete mode 100644 ACE/ace/OS_NS_time.cpp delete mode 100644 ACE/ace/OS_NS_time.h delete mode 100644 ACE/ace/OS_NS_time.inl delete mode 100644 ACE/ace/OS_NS_unistd.cpp delete mode 100644 ACE/ace/OS_NS_unistd.h delete mode 100644 ACE/ace/OS_NS_unistd.inl delete mode 100644 ACE/ace/OS_NS_wchar.cpp delete mode 100644 ACE/ace/OS_NS_wchar.h delete mode 100644 ACE/ace/OS_NS_wchar.inl delete mode 100644 ACE/ace/OS_QoS.cpp delete mode 100644 ACE/ace/OS_QoS.h delete mode 100644 ACE/ace/OS_String.h delete mode 100644 ACE/ace/OS_TLI.cpp delete mode 100644 ACE/ace/OS_TLI.h delete mode 100644 ACE/ace/OS_TLI.inl delete mode 100644 ACE/ace/OS_Thread_Adapter.cpp delete mode 100644 ACE/ace/OS_Thread_Adapter.h delete mode 100644 ACE/ace/OS_main.cpp delete mode 100644 ACE/ace/OS_main.h delete mode 100644 ACE/ace/Obchunk.cpp delete mode 100644 ACE/ace/Obchunk.h delete mode 100644 ACE/ace/Obchunk.inl delete mode 100644 ACE/ace/Object_Manager.cpp delete mode 100644 ACE/ace/Object_Manager.h delete mode 100644 ACE/ace/Object_Manager.inl delete mode 100644 ACE/ace/Object_Manager_Base.cpp delete mode 100644 ACE/ace/Object_Manager_Base.h delete mode 100644 ACE/ace/Obstack.h delete mode 100644 ACE/ace/Obstack_T.cpp delete mode 100644 ACE/ace/Obstack_T.h delete mode 100644 ACE/ace/Obstack_T.inl delete mode 100644 ACE/ace/PI_Malloc.cpp delete mode 100644 ACE/ace/PI_Malloc.h delete mode 100644 ACE/ace/PI_Malloc.inl delete mode 100644 ACE/ace/POSIX_Asynch_IO.cpp delete mode 100644 ACE/ace/POSIX_Asynch_IO.h delete mode 100644 ACE/ace/POSIX_CB_Proactor.cpp delete mode 100644 ACE/ace/POSIX_CB_Proactor.h delete mode 100644 ACE/ace/POSIX_Proactor.cpp delete mode 100644 ACE/ace/POSIX_Proactor.h delete mode 100644 ACE/ace/POSIX_Proactor.inl delete mode 100644 ACE/ace/Pagefile_Memory_Pool.cpp delete mode 100644 ACE/ace/Pagefile_Memory_Pool.h delete mode 100644 ACE/ace/Pagefile_Memory_Pool.inl delete mode 100644 ACE/ace/Pair.h delete mode 100644 ACE/ace/Pair_T.cpp delete mode 100644 ACE/ace/Pair_T.h delete mode 100644 ACE/ace/Pair_T.inl delete mode 100644 ACE/ace/Parse_Node.cpp delete mode 100644 ACE/ace/Parse_Node.h delete mode 100644 ACE/ace/Ping_Socket.cpp delete mode 100644 ACE/ace/Ping_Socket.h delete mode 100644 ACE/ace/Ping_Socket.inl delete mode 100644 ACE/ace/Pipe.cpp delete mode 100644 ACE/ace/Pipe.h delete mode 100644 ACE/ace/Pipe.inl delete mode 100644 ACE/ace/Priority_Reactor.cpp delete mode 100644 ACE/ace/Priority_Reactor.h delete mode 100644 ACE/ace/Proactor.cpp delete mode 100644 ACE/ace/Proactor.h delete mode 100644 ACE/ace/Proactor.inl delete mode 100644 ACE/ace/Proactor_Impl.cpp delete mode 100644 ACE/ace/Proactor_Impl.h delete mode 100644 ACE/ace/Process.cpp delete mode 100644 ACE/ace/Process.h delete mode 100644 ACE/ace/Process.inl delete mode 100644 ACE/ace/Process_Manager.cpp delete mode 100644 ACE/ace/Process_Manager.h delete mode 100644 ACE/ace/Process_Manager.inl delete mode 100644 ACE/ace/Process_Mutex.cpp delete mode 100644 ACE/ace/Process_Mutex.h delete mode 100644 ACE/ace/Process_Mutex.inl delete mode 100644 ACE/ace/Process_Semaphore.cpp delete mode 100644 ACE/ace/Process_Semaphore.h delete mode 100644 ACE/ace/Process_Semaphore.inl delete mode 100644 ACE/ace/Profile_Timer.cpp delete mode 100644 ACE/ace/Profile_Timer.h delete mode 100644 ACE/ace/Profile_Timer.inl delete mode 100644 ACE/ace/QoS/ACE_QoS.pc.in delete mode 100644 ACE/ace/QoS/ACE_QoS_Export.h delete mode 100644 ACE/ace/QoS/Makefile.am delete mode 100644 ACE/ace/QoS/QoS_Decorator.cpp delete mode 100644 ACE/ace/QoS/QoS_Decorator.h delete mode 100644 ACE/ace/QoS/QoS_Manager.cpp delete mode 100644 ACE/ace/QoS/QoS_Manager.h delete mode 100644 ACE/ace/QoS/QoS_Session.h delete mode 100644 ACE/ace/QoS/QoS_Session_Factory.cpp delete mode 100644 ACE/ace/QoS/QoS_Session_Factory.h delete mode 100644 ACE/ace/QoS/QoS_Session_Impl.cpp delete mode 100644 ACE/ace/QoS/QoS_Session_Impl.h delete mode 100644 ACE/ace/QoS/QoS_Session_Impl.inl delete mode 100644 ACE/ace/QoS/README delete mode 100644 ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.cpp delete mode 100644 ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.h delete mode 100644 ACE/ace/QoS/SOCK_Dgram_Mcast_QoS.inl delete mode 100644 ACE/ace/QoS/qos.mpc delete mode 100644 ACE/ace/QtReactor/ACE_QtReactor.pc.in delete mode 100644 ACE/ace/QtReactor/ACE_QtReactor_export.h delete mode 100644 ACE/ace/QtReactor/QtReactor.cpp delete mode 100644 ACE/ace/QtReactor/QtReactor.h delete mode 100644 ACE/ace/RB_Tree.cpp delete mode 100644 ACE/ace/RB_Tree.h delete mode 100644 ACE/ace/RB_Tree.inl delete mode 100644 ACE/ace/README delete mode 100644 ACE/ace/RW_Mutex.cpp delete mode 100644 ACE/ace/RW_Mutex.h delete mode 100644 ACE/ace/RW_Mutex.inl delete mode 100644 ACE/ace/RW_Process_Mutex.cpp delete mode 100644 ACE/ace/RW_Process_Mutex.h delete mode 100644 ACE/ace/RW_Process_Mutex.inl delete mode 100644 ACE/ace/RW_Thread_Mutex.cpp delete mode 100644 ACE/ace/RW_Thread_Mutex.h delete mode 100644 ACE/ace/RW_Thread_Mutex.inl delete mode 100644 ACE/ace/Reactor.cpp delete mode 100644 ACE/ace/Reactor.h delete mode 100644 ACE/ace/Reactor.inl delete mode 100644 ACE/ace/Reactor_Impl.cpp delete mode 100644 ACE/ace/Reactor_Impl.h delete mode 100644 ACE/ace/Reactor_Notification_Strategy.cpp delete mode 100644 ACE/ace/Reactor_Notification_Strategy.h delete mode 100644 ACE/ace/Reactor_Notification_Strategy.inl delete mode 100644 ACE/ace/Reactor_Timer_Interface.cpp delete mode 100644 ACE/ace/Reactor_Timer_Interface.h delete mode 100644 ACE/ace/Reactor_Token_T.cpp delete mode 100644 ACE/ace/Reactor_Token_T.h delete mode 100644 ACE/ace/Read_Buffer.cpp delete mode 100644 ACE/ace/Read_Buffer.h delete mode 100644 ACE/ace/Read_Buffer.inl delete mode 100644 ACE/ace/Recursive_Thread_Mutex.cpp delete mode 100644 ACE/ace/Recursive_Thread_Mutex.h delete mode 100644 ACE/ace/Recursive_Thread_Mutex.inl delete mode 100644 ACE/ace/Recyclable.cpp delete mode 100644 ACE/ace/Recyclable.h delete mode 100644 ACE/ace/Recyclable.inl delete mode 100644 ACE/ace/Refcountable.cpp delete mode 100644 ACE/ace/Refcountable.h delete mode 100644 ACE/ace/Refcountable.inl delete mode 100644 ACE/ace/Refcounted_Auto_Ptr.cpp delete mode 100644 ACE/ace/Refcounted_Auto_Ptr.h delete mode 100644 ACE/ace/Refcounted_Auto_Ptr.inl delete mode 100644 ACE/ace/Registry.cpp delete mode 100644 ACE/ace/Registry.h delete mode 100644 ACE/ace/Registry_Name_Space.cpp delete mode 100644 ACE/ace/Registry_Name_Space.h delete mode 100644 ACE/ace/Remote_Name_Space.cpp delete mode 100644 ACE/ace/Remote_Name_Space.h delete mode 100644 ACE/ace/Remote_Tokens.cpp delete mode 100644 ACE/ace/Remote_Tokens.h delete mode 100644 ACE/ace/Remote_Tokens.inl delete mode 100644 ACE/ace/Reverse_Lock_T.cpp delete mode 100644 ACE/ace/Reverse_Lock_T.h delete mode 100644 ACE/ace/Reverse_Lock_T.inl delete mode 100644 ACE/ace/Rtems_init.c delete mode 100644 ACE/ace/SOCK.cpp delete mode 100644 ACE/ace/SOCK.h delete mode 100644 ACE/ace/SOCK.inl delete mode 100644 ACE/ace/SOCK_Acceptor.cpp delete mode 100644 ACE/ace/SOCK_Acceptor.h delete mode 100644 ACE/ace/SOCK_Acceptor.inl delete mode 100644 ACE/ace/SOCK_CODgram.cpp delete mode 100644 ACE/ace/SOCK_CODgram.h delete mode 100644 ACE/ace/SOCK_CODgram.inl delete mode 100644 ACE/ace/SOCK_Connector.cpp delete mode 100644 ACE/ace/SOCK_Connector.h delete mode 100644 ACE/ace/SOCK_Connector.inl delete mode 100644 ACE/ace/SOCK_Dgram.cpp delete mode 100644 ACE/ace/SOCK_Dgram.h delete mode 100644 ACE/ace/SOCK_Dgram.inl delete mode 100644 ACE/ace/SOCK_Dgram_Bcast.cpp delete mode 100644 ACE/ace/SOCK_Dgram_Bcast.h delete mode 100644 ACE/ace/SOCK_Dgram_Bcast.inl delete mode 100644 ACE/ace/SOCK_Dgram_Mcast.cpp delete mode 100644 ACE/ace/SOCK_Dgram_Mcast.h delete mode 100644 ACE/ace/SOCK_Dgram_Mcast.inl delete mode 100644 ACE/ace/SOCK_IO.cpp delete mode 100644 ACE/ace/SOCK_IO.h delete mode 100644 ACE/ace/SOCK_IO.inl delete mode 100644 ACE/ace/SOCK_Netlink.cpp delete mode 100644 ACE/ace/SOCK_Netlink.h delete mode 100644 ACE/ace/SOCK_Netlink.inl delete mode 100644 ACE/ace/SOCK_SEQPACK_Acceptor.cpp delete mode 100644 ACE/ace/SOCK_SEQPACK_Acceptor.h delete mode 100644 ACE/ace/SOCK_SEQPACK_Acceptor.inl delete mode 100644 ACE/ace/SOCK_SEQPACK_Association.cpp delete mode 100644 ACE/ace/SOCK_SEQPACK_Association.h delete mode 100644 ACE/ace/SOCK_SEQPACK_Association.inl delete mode 100644 ACE/ace/SOCK_SEQPACK_Connector.cpp delete mode 100644 ACE/ace/SOCK_SEQPACK_Connector.h delete mode 100644 ACE/ace/SOCK_SEQPACK_Connector.inl delete mode 100644 ACE/ace/SOCK_Stream.cpp delete mode 100644 ACE/ace/SOCK_Stream.h delete mode 100644 ACE/ace/SOCK_Stream.inl delete mode 100644 ACE/ace/SPIPE.cpp delete mode 100644 ACE/ace/SPIPE.h delete mode 100644 ACE/ace/SPIPE.inl delete mode 100644 ACE/ace/SPIPE_Acceptor.cpp delete mode 100644 ACE/ace/SPIPE_Acceptor.h delete mode 100644 ACE/ace/SPIPE_Addr.cpp delete mode 100644 ACE/ace/SPIPE_Addr.h delete mode 100644 ACE/ace/SPIPE_Addr.inl delete mode 100644 ACE/ace/SPIPE_Connector.cpp delete mode 100644 ACE/ace/SPIPE_Connector.h delete mode 100644 ACE/ace/SPIPE_Connector.inl delete mode 100644 ACE/ace/SPIPE_Stream.cpp delete mode 100644 ACE/ace/SPIPE_Stream.h delete mode 100644 ACE/ace/SPIPE_Stream.inl delete mode 100644 ACE/ace/SSL/ACE_SSL.pc.in delete mode 100644 ACE/ace/SSL/Makefile.am delete mode 100644 ACE/ace/SSL/SSL_Asynch_BIO.cpp delete mode 100644 ACE/ace/SSL/SSL_Asynch_BIO.h delete mode 100644 ACE/ace/SSL/SSL_Asynch_Stream.cpp delete mode 100644 ACE/ace/SSL/SSL_Asynch_Stream.h delete mode 100644 ACE/ace/SSL/SSL_Context.cpp delete mode 100644 ACE/ace/SSL/SSL_Context.h delete mode 100644 ACE/ace/SSL/SSL_Context.inl delete mode 100644 ACE/ace/SSL/SSL_Export.h delete mode 100644 ACE/ace/SSL/SSL_SOCK.cpp delete mode 100644 ACE/ace/SSL/SSL_SOCK.h delete mode 100644 ACE/ace/SSL/SSL_SOCK.inl delete mode 100644 ACE/ace/SSL/SSL_SOCK_Acceptor.cpp delete mode 100644 ACE/ace/SSL/SSL_SOCK_Acceptor.h delete mode 100644 ACE/ace/SSL/SSL_SOCK_Acceptor.inl delete mode 100644 ACE/ace/SSL/SSL_SOCK_Connector.cpp delete mode 100644 ACE/ace/SSL/SSL_SOCK_Connector.h delete mode 100644 ACE/ace/SSL/SSL_SOCK_Connector.inl delete mode 100644 ACE/ace/SSL/SSL_SOCK_Stream.cpp delete mode 100644 ACE/ace/SSL/SSL_SOCK_Stream.h delete mode 100644 ACE/ace/SSL/SSL_SOCK_Stream.inl delete mode 100644 ACE/ace/SSL/ssl.mpc delete mode 100644 ACE/ace/SSL/ssl_for_tao.mpc delete mode 100644 ACE/ace/SSL/sslconf.h delete mode 100644 ACE/ace/SString.cpp delete mode 100644 ACE/ace/SString.h delete mode 100644 ACE/ace/SString.inl delete mode 100644 ACE/ace/SStringfwd.h delete mode 100644 ACE/ace/SUN_Proactor.cpp delete mode 100644 ACE/ace/SUN_Proactor.h delete mode 100644 ACE/ace/SV_Message.cpp delete mode 100644 ACE/ace/SV_Message.h delete mode 100644 ACE/ace/SV_Message.inl delete mode 100644 ACE/ace/SV_Message_Queue.cpp delete mode 100644 ACE/ace/SV_Message_Queue.h delete mode 100644 ACE/ace/SV_Message_Queue.inl delete mode 100644 ACE/ace/SV_Semaphore_Complex.cpp delete mode 100644 ACE/ace/SV_Semaphore_Complex.h delete mode 100644 ACE/ace/SV_Semaphore_Complex.inl delete mode 100644 ACE/ace/SV_Semaphore_Simple.cpp delete mode 100644 ACE/ace/SV_Semaphore_Simple.h delete mode 100644 ACE/ace/SV_Semaphore_Simple.inl delete mode 100644 ACE/ace/SV_Shared_Memory.cpp delete mode 100644 ACE/ace/SV_Shared_Memory.h delete mode 100644 ACE/ace/SV_Shared_Memory.inl delete mode 100644 ACE/ace/Sample_History.cpp delete mode 100644 ACE/ace/Sample_History.h delete mode 100644 ACE/ace/Sample_History.inl delete mode 100644 ACE/ace/Sbrk_Memory_Pool.cpp delete mode 100644 ACE/ace/Sbrk_Memory_Pool.h delete mode 100644 ACE/ace/Sched_Params.cpp delete mode 100644 ACE/ace/Sched_Params.h delete mode 100644 ACE/ace/Sched_Params.inl delete mode 100644 ACE/ace/Select_Reactor.h delete mode 100644 ACE/ace/Select_Reactor_Base.cpp delete mode 100644 ACE/ace/Select_Reactor_Base.h delete mode 100644 ACE/ace/Select_Reactor_Base.inl delete mode 100644 ACE/ace/Select_Reactor_T.cpp delete mode 100644 ACE/ace/Select_Reactor_T.h delete mode 100644 ACE/ace/Select_Reactor_T.inl delete mode 100644 ACE/ace/Semaphore.cpp delete mode 100644 ACE/ace/Semaphore.h delete mode 100644 ACE/ace/Semaphore.inl delete mode 100644 ACE/ace/Service_Config.cpp delete mode 100644 ACE/ace/Service_Config.h delete mode 100644 ACE/ace/Service_Config.inl delete mode 100644 ACE/ace/Service_Gestalt.cpp delete mode 100644 ACE/ace/Service_Gestalt.h delete mode 100644 ACE/ace/Service_Gestalt.inl delete mode 100644 ACE/ace/Service_Manager.cpp delete mode 100644 ACE/ace/Service_Manager.h delete mode 100644 ACE/ace/Service_Object.cpp delete mode 100644 ACE/ace/Service_Object.h delete mode 100644 ACE/ace/Service_Object.inl delete mode 100644 ACE/ace/Service_Repository.cpp delete mode 100644 ACE/ace/Service_Repository.h delete mode 100644 ACE/ace/Service_Repository.inl delete mode 100644 ACE/ace/Service_Templates.h delete mode 100644 ACE/ace/Service_Types.cpp delete mode 100644 ACE/ace/Service_Types.h delete mode 100644 ACE/ace/Service_Types.inl delete mode 100644 ACE/ace/Shared_Memory.cpp delete mode 100644 ACE/ace/Shared_Memory.h delete mode 100644 ACE/ace/Shared_Memory_MM.cpp delete mode 100644 ACE/ace/Shared_Memory_MM.h delete mode 100644 ACE/ace/Shared_Memory_MM.inl delete mode 100644 ACE/ace/Shared_Memory_Pool.cpp delete mode 100644 ACE/ace/Shared_Memory_Pool.h delete mode 100644 ACE/ace/Shared_Memory_SV.cpp delete mode 100644 ACE/ace/Shared_Memory_SV.h delete mode 100644 ACE/ace/Shared_Memory_SV.inl delete mode 100644 ACE/ace/Shared_Object.cpp delete mode 100644 ACE/ace/Shared_Object.h delete mode 100644 ACE/ace/Shared_Object.inl delete mode 100644 ACE/ace/Sig_Adapter.cpp delete mode 100644 ACE/ace/Sig_Adapter.h delete mode 100644 ACE/ace/Sig_Handler.cpp delete mode 100644 ACE/ace/Sig_Handler.h delete mode 100644 ACE/ace/Sig_Handler.inl delete mode 100644 ACE/ace/Signal.cpp delete mode 100644 ACE/ace/Signal.h delete mode 100644 ACE/ace/Signal.inl delete mode 100644 ACE/ace/Singleton.cpp delete mode 100644 ACE/ace/Singleton.h delete mode 100644 ACE/ace/Singleton.inl delete mode 100644 ACE/ace/Sock_Connect.cpp delete mode 100644 ACE/ace/Sock_Connect.h delete mode 100644 ACE/ace/Static_Object_Lock.h delete mode 100644 ACE/ace/Stats.cpp delete mode 100644 ACE/ace/Stats.h delete mode 100644 ACE/ace/Stats.inl delete mode 100644 ACE/ace/Strategies.h delete mode 100644 ACE/ace/Strategies_T.cpp delete mode 100644 ACE/ace/Strategies_T.h delete mode 100644 ACE/ace/Strategies_T.inl delete mode 100644 ACE/ace/Stream.cpp delete mode 100644 ACE/ace/Stream.h delete mode 100644 ACE/ace/Stream.inl delete mode 100644 ACE/ace/Stream_Modules.cpp delete mode 100644 ACE/ace/Stream_Modules.h delete mode 100644 ACE/ace/String_Base.cpp delete mode 100644 ACE/ace/String_Base.h delete mode 100644 ACE/ace/String_Base.inl delete mode 100644 ACE/ace/String_Base_Const.cpp delete mode 100644 ACE/ace/String_Base_Const.h delete mode 100644 ACE/ace/Svc_Conf.h delete mode 100644 ACE/ace/Svc_Conf.y delete mode 100644 ACE/ace/Svc_Conf_Lexer.cpp delete mode 100644 ACE/ace/Svc_Conf_Lexer.h delete mode 100644 ACE/ace/Svc_Conf_Param.h delete mode 100644 ACE/ace/Svc_Conf_Tokens.h delete mode 100644 ACE/ace/Svc_Conf_y.cpp delete mode 100644 ACE/ace/Svc_Handler.cpp delete mode 100644 ACE/ace/Svc_Handler.h delete mode 100644 ACE/ace/Synch.h delete mode 100644 ACE/ace/Synch_Options.cpp delete mode 100644 ACE/ace/Synch_Options.h delete mode 100644 ACE/ace/Synch_T.cpp delete mode 100644 ACE/ace/Synch_T.h delete mode 100644 ACE/ace/Synch_Traits.h delete mode 100644 ACE/ace/System_Time.cpp delete mode 100644 ACE/ace/System_Time.h delete mode 100644 ACE/ace/TLI.cpp delete mode 100644 ACE/ace/TLI.h delete mode 100644 ACE/ace/TLI.inl delete mode 100644 ACE/ace/TLI_Acceptor.cpp delete mode 100644 ACE/ace/TLI_Acceptor.h delete mode 100644 ACE/ace/TLI_Connector.cpp delete mode 100644 ACE/ace/TLI_Connector.h delete mode 100644 ACE/ace/TLI_Connector.inl delete mode 100644 ACE/ace/TLI_Stream.cpp delete mode 100644 ACE/ace/TLI_Stream.h delete mode 100644 ACE/ace/TLI_Stream.inl delete mode 100644 ACE/ace/TP_Reactor.cpp delete mode 100644 ACE/ace/TP_Reactor.h delete mode 100644 ACE/ace/TP_Reactor.inl delete mode 100644 ACE/ace/TSS_Adapter.cpp delete mode 100644 ACE/ace/TSS_Adapter.h delete mode 100644 ACE/ace/TSS_T.cpp delete mode 100644 ACE/ace/TSS_T.h delete mode 100644 ACE/ace/TSS_T.inl delete mode 100644 ACE/ace/TTY_IO.cpp delete mode 100644 ACE/ace/TTY_IO.h delete mode 100644 ACE/ace/Task.cpp delete mode 100644 ACE/ace/Task.h delete mode 100644 ACE/ace/Task.inl delete mode 100644 ACE/ace/Task_Ex_T.cpp delete mode 100644 ACE/ace/Task_Ex_T.h delete mode 100644 ACE/ace/Task_Ex_T.inl delete mode 100644 ACE/ace/Task_T.cpp delete mode 100644 ACE/ace/Task_T.h delete mode 100644 ACE/ace/Task_T.inl delete mode 100644 ACE/ace/Test_and_Set.cpp delete mode 100644 ACE/ace/Test_and_Set.h delete mode 100644 ACE/ace/Thread.cpp delete mode 100644 ACE/ace/Thread.h delete mode 100644 ACE/ace/Thread.inl delete mode 100644 ACE/ace/Thread_Adapter.cpp delete mode 100644 ACE/ace/Thread_Adapter.h delete mode 100644 ACE/ace/Thread_Adapter.inl delete mode 100644 ACE/ace/Thread_Control.cpp delete mode 100644 ACE/ace/Thread_Control.h delete mode 100644 ACE/ace/Thread_Control.inl delete mode 100644 ACE/ace/Thread_Exit.cpp delete mode 100644 ACE/ace/Thread_Exit.h delete mode 100644 ACE/ace/Thread_Hook.cpp delete mode 100644 ACE/ace/Thread_Hook.h delete mode 100644 ACE/ace/Thread_Manager.cpp delete mode 100644 ACE/ace/Thread_Manager.h delete mode 100644 ACE/ace/Thread_Manager.inl delete mode 100644 ACE/ace/Thread_Mutex.cpp delete mode 100644 ACE/ace/Thread_Mutex.h delete mode 100644 ACE/ace/Thread_Mutex.inl delete mode 100644 ACE/ace/Thread_Semaphore.cpp delete mode 100644 ACE/ace/Thread_Semaphore.h delete mode 100644 ACE/ace/Thread_Semaphore.inl delete mode 100644 ACE/ace/Throughput_Stats.cpp delete mode 100644 ACE/ace/Throughput_Stats.h delete mode 100644 ACE/ace/Time_Value.cpp delete mode 100644 ACE/ace/Time_Value.h delete mode 100644 ACE/ace/Time_Value.inl delete mode 100644 ACE/ace/Timeprobe.cpp delete mode 100644 ACE/ace/Timeprobe.h delete mode 100644 ACE/ace/Timeprobe.inl delete mode 100644 ACE/ace/Timeprobe_T.cpp delete mode 100644 ACE/ace/Timeprobe_T.h delete mode 100644 ACE/ace/Timer_Hash.h delete mode 100644 ACE/ace/Timer_Hash_T.cpp delete mode 100644 ACE/ace/Timer_Hash_T.h delete mode 100644 ACE/ace/Timer_Heap.h delete mode 100644 ACE/ace/Timer_Heap_T.cpp delete mode 100644 ACE/ace/Timer_Heap_T.h delete mode 100644 ACE/ace/Timer_List.h delete mode 100644 ACE/ace/Timer_List_T.cpp delete mode 100644 ACE/ace/Timer_List_T.h delete mode 100644 ACE/ace/Timer_Queue.h delete mode 100644 ACE/ace/Timer_Queue_Adapters.cpp delete mode 100644 ACE/ace/Timer_Queue_Adapters.h delete mode 100644 ACE/ace/Timer_Queue_Adapters.inl delete mode 100644 ACE/ace/Timer_Queue_T.cpp delete mode 100644 ACE/ace/Timer_Queue_T.h delete mode 100644 ACE/ace/Timer_Queue_T.inl delete mode 100644 ACE/ace/Timer_Queuefwd.h delete mode 100644 ACE/ace/Timer_Wheel.h delete mode 100644 ACE/ace/Timer_Wheel_T.cpp delete mode 100644 ACE/ace/Timer_Wheel_T.h delete mode 100644 ACE/ace/TkReactor/ACE_TkReactor.pc.in delete mode 100644 ACE/ace/TkReactor/ACE_TkReactor_export.h delete mode 100644 ACE/ace/TkReactor/TkReactor.cpp delete mode 100644 ACE/ace/TkReactor/TkReactor.h delete mode 100644 ACE/ace/Token.cpp delete mode 100644 ACE/ace/Token.h delete mode 100644 ACE/ace/Token.inl delete mode 100644 ACE/ace/Token_Collection.cpp delete mode 100644 ACE/ace/Token_Collection.h delete mode 100644 ACE/ace/Token_Collection.inl delete mode 100644 ACE/ace/Token_Invariants.cpp delete mode 100644 ACE/ace/Token_Invariants.h delete mode 100644 ACE/ace/Token_Manager.cpp delete mode 100644 ACE/ace/Token_Manager.h delete mode 100644 ACE/ace/Token_Manager.inl delete mode 100644 ACE/ace/Token_Request_Reply.cpp delete mode 100644 ACE/ace/Token_Request_Reply.h delete mode 100644 ACE/ace/Token_Request_Reply.inl delete mode 100644 ACE/ace/Trace.cpp delete mode 100644 ACE/ace/Trace.h delete mode 100644 ACE/ace/Truncate.h delete mode 100644 ACE/ace/Typed_SV_Message.cpp delete mode 100644 ACE/ace/Typed_SV_Message.h delete mode 100644 ACE/ace/Typed_SV_Message.inl delete mode 100644 ACE/ace/Typed_SV_Message_Queue.cpp delete mode 100644 ACE/ace/Typed_SV_Message_Queue.h delete mode 100644 ACE/ace/Typed_SV_Message_Queue.inl delete mode 100644 ACE/ace/UNIX_Addr.cpp delete mode 100644 ACE/ace/UNIX_Addr.h delete mode 100644 ACE/ace/UNIX_Addr.inl delete mode 100644 ACE/ace/UPIPE_Acceptor.cpp delete mode 100644 ACE/ace/UPIPE_Acceptor.h delete mode 100644 ACE/ace/UPIPE_Acceptor.inl delete mode 100644 ACE/ace/UPIPE_Addr.h delete mode 100644 ACE/ace/UPIPE_Connector.cpp delete mode 100644 ACE/ace/UPIPE_Connector.h delete mode 100644 ACE/ace/UPIPE_Connector.inl delete mode 100644 ACE/ace/UPIPE_Stream.cpp delete mode 100644 ACE/ace/UPIPE_Stream.h delete mode 100644 ACE/ace/UPIPE_Stream.inl delete mode 100644 ACE/ace/UTF16_Encoding_Converter.cpp delete mode 100644 ACE/ace/UTF16_Encoding_Converter.h delete mode 100644 ACE/ace/UTF16_Encoding_Converter.inl delete mode 100644 ACE/ace/UTF32_Encoding_Converter.cpp delete mode 100644 ACE/ace/UTF32_Encoding_Converter.h delete mode 100644 ACE/ace/UTF8_Encoding_Converter.cpp delete mode 100644 ACE/ace/UTF8_Encoding_Converter.h delete mode 100644 ACE/ace/UUID.cpp delete mode 100644 ACE/ace/UUID.h delete mode 100644 ACE/ace/UUID.inl delete mode 100644 ACE/ace/Unbounded_Queue.cpp delete mode 100644 ACE/ace/Unbounded_Queue.h delete mode 100644 ACE/ace/Unbounded_Queue.inl delete mode 100644 ACE/ace/Unbounded_Set.cpp delete mode 100644 ACE/ace/Unbounded_Set.h delete mode 100644 ACE/ace/Unbounded_Set.inl delete mode 100644 ACE/ace/Value_Ptr.h delete mode 100644 ACE/ace/Vector_T.cpp delete mode 100644 ACE/ace/Vector_T.h delete mode 100644 ACE/ace/Vector_T.inl delete mode 100644 ACE/ace/Version.h delete mode 100644 ACE/ace/Versioned_Namespace.h delete mode 100644 ACE/ace/WFMO_Reactor.cpp delete mode 100644 ACE/ace/WFMO_Reactor.h delete mode 100644 ACE/ace/WFMO_Reactor.inl delete mode 100644 ACE/ace/WIN32_Asynch_IO.cpp delete mode 100644 ACE/ace/WIN32_Asynch_IO.h delete mode 100644 ACE/ace/WIN32_Proactor.cpp delete mode 100644 ACE/ace/WIN32_Proactor.h delete mode 100644 ACE/ace/XML_Svc_Conf.cpp delete mode 100644 ACE/ace/XML_Svc_Conf.h delete mode 100644 ACE/ace/XTI_ATM_Mcast.cpp delete mode 100644 ACE/ace/XTI_ATM_Mcast.h delete mode 100644 ACE/ace/XTI_ATM_Mcast.inl delete mode 100644 ACE/ace/XtReactor/ACE_XtReactor.pc.in delete mode 100644 ACE/ace/XtReactor/ACE_XtReactor_export.h delete mode 100644 ACE/ace/XtReactor/XtReactor.cpp delete mode 100644 ACE/ace/XtReactor/XtReactor.h delete mode 100644 ACE/ace/ace.mpc delete mode 100644 ACE/ace/ace.mwc delete mode 100644 ACE/ace/ace.rc delete mode 100644 ACE/ace/ace_ce_dll.cfg delete mode 100644 ACE/ace/ace_flreactor.mpc delete mode 100644 ACE/ace/ace_for_tao.mpc delete mode 100644 ACE/ace/ace_foxreactor.mpc delete mode 100644 ACE/ace/ace_message_table.bin delete mode 100644 ACE/ace/ace_qtreactor.mpc delete mode 100644 ACE/ace/ace_tkreactor.mpc delete mode 100644 ACE/ace/ace_wchar.cpp delete mode 100644 ACE/ace/ace_wchar.h delete mode 100644 ACE/ace/ace_wchar.inl delete mode 100644 ACE/ace/ace_xtreactor.mpc delete mode 100644 ACE/ace/checked_iterator.h delete mode 100644 ACE/ace/codecs.mpb delete mode 100644 ACE/ace/config-WinCE.h delete mode 100644 ACE/ace/config-aix-5.x.h delete mode 100644 ACE/ace/config-all.h delete mode 100644 ACE/ace/config-borland-common.h delete mode 100644 ACE/ace/config-cray.h delete mode 100644 ACE/ace/config-cxx-common.h delete mode 100644 ACE/ace/config-cygwin32.h delete mode 100644 ACE/ace/config-doxygen.h delete mode 100644 ACE/ace/config-freebsd.h delete mode 100644 ACE/ace/config-g++-common.h delete mode 100644 ACE/ace/config-ghs-common.h delete mode 100644 ACE/ace/config-hpux-11.00.h delete mode 100644 ACE/ace/config-icc-common.h delete mode 100644 ACE/ace/config-integritySCA.h delete mode 100644 ACE/ace/config-irix6.5.x-sgic++.h delete mode 100644 ACE/ace/config-irix6.x-common.h delete mode 100644 ACE/ace/config-irix6.x-g++.h delete mode 100644 ACE/ace/config-irix6.x-sgic++.h delete mode 100644 ACE/ace/config-linux-common.h delete mode 100644 ACE/ace/config-linux.h delete mode 100644 ACE/ace/config-lite.h delete mode 100644 ACE/ace/config-lynxos.h delete mode 100644 ACE/ace/config-macosx-leopard.h delete mode 100644 ACE/ace/config-macosx-panther.h delete mode 100644 ACE/ace/config-macosx-tiger.h delete mode 100644 ACE/ace/config-macosx.h delete mode 100644 ACE/ace/config-macros.h delete mode 100644 ACE/ace/config-minimal.h delete mode 100644 ACE/ace/config-mvs.h delete mode 100644 ACE/ace/config-netbsd.h delete mode 100644 ACE/ace/config-openbsd.h delete mode 100644 ACE/ace/config-openvms.h delete mode 100644 ACE/ace/config-pharlap.h delete mode 100644 ACE/ace/config-posix-nonetworking.h delete mode 100644 ACE/ace/config-posix.h delete mode 100644 ACE/ace/config-qnx-neutrino.h delete mode 100644 ACE/ace/config-qnx-rtp-62x.h delete mode 100644 ACE/ace/config-qnx-rtp-common.h delete mode 100644 ACE/ace/config-qnx-rtp-pre62x.h delete mode 100644 ACE/ace/config-qnx-rtp.h delete mode 100644 ACE/ace/config-rtems.h delete mode 100644 ACE/ace/config-sco-5.0.0-nothread.h delete mode 100644 ACE/ace/config-sco-5.0.0.h delete mode 100644 ACE/ace/config-suncc-common.h delete mode 100644 ACE/ace/config-sunos5.10.h delete mode 100644 ACE/ace/config-sunos5.11.h delete mode 100644 ACE/ace/config-sunos5.4-g++.h delete mode 100644 ACE/ace/config-sunos5.4-sunc++-4.x.h delete mode 100644 ACE/ace/config-sunos5.5.h delete mode 100644 ACE/ace/config-sunos5.6.h delete mode 100644 ACE/ace/config-sunos5.7.h delete mode 100644 ACE/ace/config-sunos5.8.h delete mode 100644 ACE/ace/config-sunos5.9.h delete mode 100644 ACE/ace/config-tandem-nsk-mips-v2.h delete mode 100644 ACE/ace/config-tandem-nsk-mips-v3.h delete mode 100644 ACE/ace/config-tandem.h delete mode 100644 ACE/ace/config-tru64.h delete mode 100644 ACE/ace/config-unixware-7.1.0.h delete mode 100644 ACE/ace/config-unixware-7.1.0.udk.h delete mode 100644 ACE/ace/config-visualage.h delete mode 100644 ACE/ace/config-vxworks.h delete mode 100644 ACE/ace/config-vxworks5.x.h delete mode 100644 ACE/ace/config-vxworks6.2.h delete mode 100644 ACE/ace/config-vxworks6.3.h delete mode 100644 ACE/ace/config-vxworks6.4.h delete mode 100644 ACE/ace/config-vxworks6.5.h delete mode 100644 ACE/ace/config-vxworks6.6.h delete mode 100644 ACE/ace/config-win32-borland.h delete mode 100644 ACE/ace/config-win32-common.h delete mode 100644 ACE/ace/config-win32-dmc.h delete mode 100644 ACE/ace/config-win32-ghs.h delete mode 100644 ACE/ace/config-win32-interix.h delete mode 100644 ACE/ace/config-win32-mingw.h delete mode 100644 ACE/ace/config-win32-msvc-7.h delete mode 100644 ACE/ace/config-win32-msvc-8.h delete mode 100644 ACE/ace/config-win32-msvc-9.h delete mode 100644 ACE/ace/config-win32-msvc.h delete mode 100644 ACE/ace/config-win32.h delete mode 100644 ACE/ace/filecache.mpb delete mode 100644 ACE/ace/gethrtime.cpp delete mode 100644 ACE/ace/iosfwd.h delete mode 100644 ACE/ace/os_include/arpa/os_inet.h delete mode 100644 ACE/ace/os_include/net/os_if.h delete mode 100644 ACE/ace/os_include/netinet/os_in.h delete mode 100644 ACE/ace/os_include/netinet/os_tcp.h delete mode 100644 ACE/ace/os_include/os_aio.h delete mode 100644 ACE/ace/os_include/os_assert.h delete mode 100644 ACE/ace/os_include/os_byteswap.h delete mode 100644 ACE/ace/os_include/os_complex.h delete mode 100644 ACE/ace/os_include/os_cpio.h delete mode 100644 ACE/ace/os_include/os_ctype.h delete mode 100644 ACE/ace/os_include/os_dirent.h delete mode 100644 ACE/ace/os_include/os_dlfcn.h delete mode 100644 ACE/ace/os_include/os_errno.h delete mode 100644 ACE/ace/os_include/os_fcntl.h delete mode 100644 ACE/ace/os_include/os_fenv.h delete mode 100644 ACE/ace/os_include/os_float.h delete mode 100644 ACE/ace/os_include/os_fmtmsg.h delete mode 100644 ACE/ace/os_include/os_fnmatch.h delete mode 100644 ACE/ace/os_include/os_ftw.h delete mode 100644 ACE/ace/os_include/os_glob.h delete mode 100644 ACE/ace/os_include/os_grp.h delete mode 100644 ACE/ace/os_include/os_iconv.h delete mode 100644 ACE/ace/os_include/os_intrin.h delete mode 100644 ACE/ace/os_include/os_inttypes.h delete mode 100644 ACE/ace/os_include/os_iso646.h delete mode 100644 ACE/ace/os_include/os_langinfo.h delete mode 100644 ACE/ace/os_include/os_libgen.h delete mode 100644 ACE/ace/os_include/os_limits.h delete mode 100644 ACE/ace/os_include/os_local.h delete mode 100644 ACE/ace/os_include/os_math.h delete mode 100644 ACE/ace/os_include/os_monetary.h delete mode 100644 ACE/ace/os_include/os_mqueue.h delete mode 100644 ACE/ace/os_include/os_ndbm.h delete mode 100644 ACE/ace/os_include/os_netdb.h delete mode 100644 ACE/ace/os_include/os_nl_types.h delete mode 100644 ACE/ace/os_include/os_poll.h delete mode 100644 ACE/ace/os_include/os_pthread.h delete mode 100644 ACE/ace/os_include/os_pwd.h delete mode 100644 ACE/ace/os_include/os_regex.h delete mode 100644 ACE/ace/os_include/os_sched.h delete mode 100644 ACE/ace/os_include/os_search.h delete mode 100644 ACE/ace/os_include/os_semaphore.h delete mode 100644 ACE/ace/os_include/os_setjmp.h delete mode 100644 ACE/ace/os_include/os_signal.h delete mode 100644 ACE/ace/os_include/os_spawn.h delete mode 100644 ACE/ace/os_include/os_stdarg.h delete mode 100644 ACE/ace/os_include/os_stdbool.h delete mode 100644 ACE/ace/os_include/os_stddef.h delete mode 100644 ACE/ace/os_include/os_stdint.h delete mode 100644 ACE/ace/os_include/os_stdio.h delete mode 100644 ACE/ace/os_include/os_stdlib.h delete mode 100644 ACE/ace/os_include/os_string.h delete mode 100644 ACE/ace/os_include/os_strings.h delete mode 100644 ACE/ace/os_include/os_stropts.h delete mode 100644 ACE/ace/os_include/os_syslog.h delete mode 100644 ACE/ace/os_include/os_tar.h delete mode 100644 ACE/ace/os_include/os_termios.h delete mode 100644 ACE/ace/os_include/os_tgmath.h delete mode 100644 ACE/ace/os_include/os_time.h delete mode 100644 ACE/ace/os_include/os_trace.h delete mode 100644 ACE/ace/os_include/os_ucontext.h delete mode 100644 ACE/ace/os_include/os_ulimit.h delete mode 100644 ACE/ace/os_include/os_unistd.h delete mode 100644 ACE/ace/os_include/os_utime.h delete mode 100644 ACE/ace/os_include/os_utmpx.h delete mode 100644 ACE/ace/os_include/os_wchar.h delete mode 100644 ACE/ace/os_include/os_wctype.h delete mode 100644 ACE/ace/os_include/os_wordexp.h delete mode 100644 ACE/ace/os_include/sys/os_ipc.h delete mode 100644 ACE/ace/os_include/sys/os_loadavg.h delete mode 100644 ACE/ace/os_include/sys/os_mman.h delete mode 100644 ACE/ace/os_include/sys/os_msg.h delete mode 100644 ACE/ace/os_include/sys/os_pstat.h delete mode 100644 ACE/ace/os_include/sys/os_resource.h delete mode 100644 ACE/ace/os_include/sys/os_select.h delete mode 100644 ACE/ace/os_include/sys/os_sem.h delete mode 100644 ACE/ace/os_include/sys/os_shm.h delete mode 100644 ACE/ace/os_include/sys/os_socket.h delete mode 100644 ACE/ace/os_include/sys/os_stat.h delete mode 100644 ACE/ace/os_include/sys/os_statvfs.h delete mode 100644 ACE/ace/os_include/sys/os_sysctl.h delete mode 100644 ACE/ace/os_include/sys/os_time.h delete mode 100644 ACE/ace/os_include/sys/os_timeb.h delete mode 100644 ACE/ace/os_include/sys/os_times.h delete mode 100644 ACE/ace/os_include/sys/os_types.h delete mode 100644 ACE/ace/os_include/sys/os_uio.h delete mode 100644 ACE/ace/os_include/sys/os_un.h delete mode 100644 ACE/ace/os_include/sys/os_utsname.h delete mode 100644 ACE/ace/os_include/sys/os_wait.h delete mode 100644 ACE/ace/other.mpb delete mode 100644 ACE/ace/post.h delete mode 100644 ACE/ace/pre.h delete mode 100644 ACE/ace/streams.h delete mode 100644 ACE/ace/svc_export.h delete mode 100644 ACE/ace/svcconf.mpb delete mode 100644 ACE/ace/token.mpb delete mode 100644 ACE/ace/uuid.mpb delete mode 100644 ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp delete mode 100644 ACE/apps/Gateway/Gateway/Concrete_Connection_Handlers.h delete mode 100644 ACE/apps/Gateway/Gateway/Config_Files.cpp delete mode 100644 ACE/apps/Gateway/Gateway/Config_Files.h delete mode 100644 ACE/apps/Gateway/Gateway/Connection_Handler.cpp delete mode 100644 ACE/apps/Gateway/Gateway/Connection_Handler.h delete mode 100644 ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp delete mode 100644 ACE/apps/Gateway/Gateway/Connection_Handler_Acceptor.h delete mode 100644 ACE/apps/Gateway/Gateway/Connection_Handler_Connector.cpp delete mode 100644 ACE/apps/Gateway/Gateway/Connection_Handler_Connector.h delete mode 100644 ACE/apps/Gateway/Gateway/Consumer_Dispatch_Set.h delete mode 100644 ACE/apps/Gateway/Gateway/Event.h delete mode 100644 ACE/apps/Gateway/Gateway/Event_Channel.cpp delete mode 100644 ACE/apps/Gateway/Gateway/Event_Channel.h delete mode 100644 ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp delete mode 100644 ACE/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h delete mode 100644 ACE/apps/Gateway/Gateway/File_Parser.cpp delete mode 100644 ACE/apps/Gateway/Gateway/File_Parser.h delete mode 100644 ACE/apps/Gateway/Gateway/Gateway.cpp delete mode 100644 ACE/apps/Gateway/Gateway/Gateway.h delete mode 100644 ACE/apps/Gateway/Gateway/Makefile.am delete mode 100644 ACE/apps/Gateway/Gateway/Options.cpp delete mode 100644 ACE/apps/Gateway/Gateway/Options.h delete mode 100644 ACE/apps/Gateway/Gateway/connection_config delete mode 100644 ACE/apps/Gateway/Gateway/consumer_config delete mode 100644 ACE/apps/Gateway/Gateway/gateway.mpc delete mode 100644 ACE/apps/Gateway/Gateway/gatewayd.cpp delete mode 100644 ACE/apps/Gateway/Gateway/svc.conf delete mode 100644 ACE/apps/Gateway/Makefile.am delete mode 100644 ACE/apps/Gateway/Peer/Makefile.am delete mode 100644 ACE/apps/Gateway/Peer/Options.cpp delete mode 100644 ACE/apps/Gateway/Peer/Options.h delete mode 100644 ACE/apps/Gateway/Peer/Peer.cpp delete mode 100644 ACE/apps/Gateway/Peer/Peer.h delete mode 100644 ACE/apps/Gateway/Peer/peer.mpc delete mode 100644 ACE/apps/Gateway/Peer/peerd.cpp delete mode 100644 ACE/apps/Gateway/Peer/svc.conf delete mode 100644 ACE/apps/Gateway/README delete mode 100644 ACE/apps/JAWS/ChangeLog delete mode 100644 ACE/apps/JAWS/Makefile.am delete mode 100644 ACE/apps/JAWS/README delete mode 100644 ACE/apps/JAWS/clients/Blobby/Blob.cpp delete mode 100644 ACE/apps/JAWS/clients/Blobby/Blob.h delete mode 100644 ACE/apps/JAWS/clients/Blobby/Blob_Handler.cpp delete mode 100644 ACE/apps/JAWS/clients/Blobby/Blob_Handler.h delete mode 100644 ACE/apps/JAWS/clients/Blobby/Makefile.am delete mode 100644 ACE/apps/JAWS/clients/Blobby/Options.cpp delete mode 100644 ACE/apps/JAWS/clients/Blobby/Options.h delete mode 100644 ACE/apps/JAWS/clients/Blobby/README delete mode 100644 ACE/apps/JAWS/clients/Blobby/blobby.cpp delete mode 100644 ACE/apps/JAWS/clients/Blobby/blobby.mpc delete mode 100644 ACE/apps/JAWS/clients/Caching/ID_Generator.cpp delete mode 100644 ACE/apps/JAWS/clients/Caching/ID_Generator.h delete mode 100644 ACE/apps/JAWS/clients/Caching/Local_Locator.cpp delete mode 100644 ACE/apps/JAWS/clients/Caching/Local_Locator.h delete mode 100644 ACE/apps/JAWS/clients/Caching/Local_Locator.inl delete mode 100644 ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp delete mode 100644 ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.h delete mode 100644 ACE/apps/JAWS/clients/Caching/Locator_Request_Reply.inl delete mode 100644 ACE/apps/JAWS/clients/Caching/Makefile.am delete mode 100644 ACE/apps/JAWS/clients/Caching/README delete mode 100644 ACE/apps/JAWS/clients/Caching/URL_Array_Helper.cpp delete mode 100644 ACE/apps/JAWS/clients/Caching/URL_Array_Helper.h delete mode 100644 ACE/apps/JAWS/clients/Caching/URL_Locator.cpp delete mode 100644 ACE/apps/JAWS/clients/Caching/URL_Locator.h delete mode 100644 ACE/apps/JAWS/clients/Caching/URL_Properties.cpp delete mode 100644 ACE/apps/JAWS/clients/Caching/URL_Properties.h delete mode 100644 ACE/apps/JAWS/clients/Caching/URL_Properties.inl delete mode 100644 ACE/apps/JAWS/clients/Caching/caching.mpc delete mode 100644 ACE/apps/JAWS/clients/Caching/http_client.cpp delete mode 100644 ACE/apps/JAWS/clients/Caching/http_handler.cpp delete mode 100644 ACE/apps/JAWS/clients/Caching/http_handler.h delete mode 100644 ACE/apps/JAWS/clients/Caching/test_URL.cpp delete mode 100644 ACE/apps/JAWS/clients/Makefile.am delete mode 100644 ACE/apps/JAWS/clients/README delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/COPYING delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/README delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/README.DynamicWorkload delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/README.FIRST delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0 delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/checkfilelist delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/genfiles delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/gui-configure delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/killbench delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/killbench.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/move-filelist.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/move-runs.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/rebootall delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/runbench delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/runbench.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/tabs2html delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/view-results.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/bin/wscollect.pl delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/filelist delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/filelist.homepage delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/filelist.sample delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/filelist.standard delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/fileset delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/conf/paths.pl delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/paths.sh delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/conf/testbed delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/doc/COPYING delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/doc/LICENSE.html delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/doc/WebStone.html delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/doc/testbed.help delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/doc/webstone.gif delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/doc/webstone2.html delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/README delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/acconfig.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/bench.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/bench.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/cgi-send.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/config.cache delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/src/config.guess delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/config.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/config.h.in delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/config.log delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/src/config.status delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/src/config.sub delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/src/configure delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/configure.in delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/debug.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/errexit.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/genrand.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/get.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/get.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/getopt.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/gettimeofday.c delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/src/install-sh delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/logfile27859 delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/nsapi-send.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/parse_file_list.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/parse_file_list.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/rexec.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/statistics.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/statistics.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/sysdep.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/sysdep.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/timefunc.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/timefunc.h delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/webclient.c delete mode 100644 ACE/apps/JAWS/clients/WebSTONE/src/webmaster.c delete mode 100755 ACE/apps/JAWS/clients/WebSTONE/webstone delete mode 100644 ACE/apps/JAWS/server/HTTP_Config.cpp delete mode 100644 ACE/apps/JAWS/server/HTTP_Config.h delete mode 100644 ACE/apps/JAWS/server/HTTP_Handler.cpp delete mode 100644 ACE/apps/JAWS/server/HTTP_Handler.h delete mode 100644 ACE/apps/JAWS/server/HTTP_Helpers.cpp delete mode 100644 ACE/apps/JAWS/server/HTTP_Helpers.h delete mode 100644 ACE/apps/JAWS/server/HTTP_Request.cpp delete mode 100644 ACE/apps/JAWS/server/HTTP_Request.h delete mode 100644 ACE/apps/JAWS/server/HTTP_Response.cpp delete mode 100644 ACE/apps/JAWS/server/HTTP_Response.h delete mode 100644 ACE/apps/JAWS/server/HTTP_Server.cpp delete mode 100644 ACE/apps/JAWS/server/HTTP_Server.h delete mode 100644 ACE/apps/JAWS/server/IO.cpp delete mode 100644 ACE/apps/JAWS/server/IO.h delete mode 100644 ACE/apps/JAWS/server/JAWS_Concurrency.cpp delete mode 100644 ACE/apps/JAWS/server/JAWS_Concurrency.h delete mode 100644 ACE/apps/JAWS/server/JAWS_Pipeline.cpp delete mode 100644 ACE/apps/JAWS/server/JAWS_Pipeline.h delete mode 100644 ACE/apps/JAWS/server/JAWS_Pipeline_Handler.cpp delete mode 100644 ACE/apps/JAWS/server/JAWS_Pipeline_Handler.h delete mode 100644 ACE/apps/JAWS/server/Makefile.am delete mode 100644 ACE/apps/JAWS/server/Parse_Headers.cpp delete mode 100644 ACE/apps/JAWS/server/Parse_Headers.h delete mode 100644 ACE/apps/JAWS/server/README delete mode 100644 ACE/apps/JAWS/server/jaws.auth delete mode 100644 ACE/apps/JAWS/server/main.cpp delete mode 100644 ACE/apps/JAWS/server/server.mpc delete mode 100644 ACE/apps/JAWS/server/svc.conf delete mode 100755 ACE/apps/JAWS/server/test.cgi delete mode 100644 ACE/apps/JAWS/stress_testing/README delete mode 100644 ACE/apps/JAWS/stress_testing/benchd.cpp delete mode 100644 ACE/apps/JAWS/stress_testing/client.h delete mode 100644 ACE/apps/JAWS/stress_testing/config delete mode 100644 ACE/apps/JAWS/stress_testing/connection.cpp delete mode 100644 ACE/apps/JAWS/stress_testing/connection.h delete mode 100644 ACE/apps/JAWS/stress_testing/cp.cpp delete mode 100644 ACE/apps/JAWS/stress_testing/cp.h delete mode 100644 ACE/apps/JAWS/stress_testing/global.h delete mode 100644 ACE/apps/JAWS/stress_testing/http.h delete mode 100644 ACE/apps/JAWS/stress_testing/http_tester.cpp delete mode 100644 ACE/apps/JAWS/stress_testing/out delete mode 100644 ACE/apps/JAWS/stress_testing/stats.cpp delete mode 100644 ACE/apps/JAWS/stress_testing/stats.h delete mode 100644 ACE/apps/JAWS/stress_testing/util.cpp delete mode 100644 ACE/apps/JAWS/stress_testing/util.h delete mode 100644 ACE/apps/JAWS2/1000K.html delete mode 100644 ACE/apps/JAWS2/100K.html delete mode 100644 ACE/apps/JAWS2/500K.html delete mode 100644 ACE/apps/JAWS2/50K.html delete mode 100644 ACE/apps/JAWS2/5K.html delete mode 100644 ACE/apps/JAWS2/HTTPU/Makefile.am delete mode 100644 ACE/apps/JAWS2/HTTPU/http_base.cpp delete mode 100644 ACE/apps/JAWS2/HTTPU/http_base.h delete mode 100644 ACE/apps/JAWS2/HTTPU/http_base.inl delete mode 100644 ACE/apps/JAWS2/HTTPU/http_export.h delete mode 100644 ACE/apps/JAWS2/HTTPU/http_headers.cpp delete mode 100644 ACE/apps/JAWS2/HTTPU/http_headers.h delete mode 100644 ACE/apps/JAWS2/HTTPU/http_headers.inl delete mode 100644 ACE/apps/JAWS2/HTTPU/http_request.cpp delete mode 100644 ACE/apps/JAWS2/HTTPU/http_request.h delete mode 100644 ACE/apps/JAWS2/HTTPU/http_request.inl delete mode 100644 ACE/apps/JAWS2/HTTPU/http_response.cpp delete mode 100644 ACE/apps/JAWS2/HTTPU/http_response.h delete mode 100644 ACE/apps/JAWS2/HTTPU/http_response.inl delete mode 100644 ACE/apps/JAWS2/HTTPU/http_status.cpp delete mode 100644 ACE/apps/JAWS2/HTTPU/http_status.h delete mode 100644 ACE/apps/JAWS2/HTTPU/http_status.inl delete mode 100644 ACE/apps/JAWS2/HTTPU/httpu.mpc delete mode 100644 ACE/apps/JAWS2/HTTPU/parse_http_request.cpp delete mode 100644 ACE/apps/JAWS2/HTTPU/parse_http_request.h delete mode 100644 ACE/apps/JAWS2/HTTPU/parse_http_request.inl delete mode 100644 ACE/apps/JAWS2/HTTPU/parse_http_response.cpp delete mode 100644 ACE/apps/JAWS2/HTTPU/parse_http_response.h delete mode 100644 ACE/apps/JAWS2/HTTPU/parse_http_response.inl delete mode 100644 ACE/apps/JAWS2/HTTPU/parse_url.cpp delete mode 100644 ACE/apps/JAWS2/HTTPU/parse_url.h delete mode 100644 ACE/apps/JAWS2/HTTP_10.cpp delete mode 100644 ACE/apps/JAWS2/HTTP_10.h delete mode 100644 ACE/apps/JAWS2/HTTP_10_Parse.cpp delete mode 100644 ACE/apps/JAWS2/HTTP_10_Read.cpp delete mode 100644 ACE/apps/JAWS2/HTTP_10_Request.cpp delete mode 100644 ACE/apps/JAWS2/HTTP_10_Request.h delete mode 100644 ACE/apps/JAWS2/HTTP_10_Write.cpp delete mode 100644 ACE/apps/JAWS2/HTTP_Policy.cpp delete mode 100644 ACE/apps/JAWS2/HTTP_Policy.h delete mode 100644 ACE/apps/JAWS2/JAWS/Assoc_Array.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Assoc_Array.h delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Hash_T.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Hash_T.h delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Heap_T.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Heap_T.h delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_List_T.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_List_T.h delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Manager.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Manager.h delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Manager_T.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Manager_T.h delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Object.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Cache_Object.h delete mode 100644 ACE/apps/JAWS2/JAWS/Concurrency.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Concurrency.h delete mode 100644 ACE/apps/JAWS2/JAWS/Data_Block.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Data_Block.h delete mode 100644 ACE/apps/JAWS2/JAWS/Export.h delete mode 100644 ACE/apps/JAWS2/JAWS/FILE.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/FILE.h delete mode 100644 ACE/apps/JAWS2/JAWS/Filecache.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Filecache.h delete mode 100644 ACE/apps/JAWS2/JAWS/Hash_Bucket_T.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Hash_Bucket_T.h delete mode 100644 ACE/apps/JAWS2/JAWS/Headers.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Headers.h delete mode 100644 ACE/apps/JAWS2/JAWS/IO.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/IO.h delete mode 100644 ACE/apps/JAWS2/JAWS/IO_Acceptor.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/IO_Acceptor.h delete mode 100644 ACE/apps/JAWS2/JAWS/IO_Handler.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/IO_Handler.h delete mode 100644 ACE/apps/JAWS2/JAWS/Makefile.am delete mode 100644 ACE/apps/JAWS2/JAWS/Parse_Headers.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Parse_Headers.h delete mode 100644 ACE/apps/JAWS2/JAWS/Pipeline.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Pipeline.h delete mode 100644 ACE/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Pipeline_Handler_T.h delete mode 100644 ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Pipeline_Tasks.h delete mode 100644 ACE/apps/JAWS2/JAWS/Policy.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Policy.h delete mode 100644 ACE/apps/JAWS2/JAWS/Reaper.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Reaper.h delete mode 100644 ACE/apps/JAWS2/JAWS/Server.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Server.h delete mode 100644 ACE/apps/JAWS2/JAWS/Waiter.cpp delete mode 100644 ACE/apps/JAWS2/JAWS/Waiter.h delete mode 100644 ACE/apps/JAWS2/JAWS/jaws2.mpc delete mode 100644 ACE/apps/JAWS2/Makefile.am delete mode 100644 ACE/apps/JAWS2/README delete mode 100644 ACE/apps/JAWS2/main.cpp delete mode 100644 ACE/apps/JAWS3/Makefile.am delete mode 100644 ACE/apps/JAWS3/bench/average.cpp delete mode 100644 ACE/apps/JAWS3/bench/mkfiles.cpp delete mode 100644 ACE/apps/JAWS3/bench/rqfiles.cpp delete mode 100644 ACE/apps/JAWS3/contrib/jmills_at_tga_dot_com/README delete mode 100644 ACE/apps/JAWS3/contrib/jmills_at_tga_dot_com/jaws3-msvc.pat delete mode 100644 ACE/apps/JAWS3/contrib/john_at_lyris_dot_com/README delete mode 100644 ACE/apps/JAWS3/contrib/john_at_lyris_dot_com/jaws3-cntlC.code delete mode 100644 ACE/apps/JAWS3/docs/web/images/jaws3_banner.fig delete mode 100644 ACE/apps/JAWS3/docs/web/images/jaws3_banner.gif delete mode 100644 ACE/apps/JAWS3/docs/web/images/jaws3_banner.png delete mode 100644 ACE/apps/JAWS3/docs/web/images/jaws3_components.fig delete mode 100644 ACE/apps/JAWS3/docs/web/images/jaws3_components.gif delete mode 100644 ACE/apps/JAWS3/docs/web/index.html delete mode 100644 ACE/apps/JAWS3/docs/web/overview.html delete mode 100644 ACE/apps/JAWS3/http/HTTP_Data.h delete mode 100644 ACE/apps/JAWS3/http/HTTP_Service_Handler.cpp delete mode 100644 ACE/apps/JAWS3/http/HTTP_Service_Handler.h delete mode 100644 ACE/apps/JAWS3/http/HTTP_States.h delete mode 100644 ACE/apps/JAWS3/jaws3-todo/FILE_Cache.h delete mode 100644 ACE/apps/JAWS3/jaws3-todo/Map_Manager.h delete mode 100644 ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.cpp delete mode 100644 ACE/apps/JAWS3/jaws3-todo/Map_Manager_T.h delete mode 100644 ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.cpp delete mode 100644 ACE/apps/JAWS3/jaws3-todo/Reactive_Socket.h delete mode 100644 ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.cpp delete mode 100644 ACE/apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.h delete mode 100644 ACE/apps/JAWS3/jaws3-todo/Socket.cpp delete mode 100644 ACE/apps/JAWS3/jaws3-todo/Socket.h delete mode 100644 ACE/apps/JAWS3/jaws3/Asynch_IO.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Asynch_IO.h delete mode 100644 ACE/apps/JAWS3/jaws3/Asynch_IO_Helpers.h delete mode 100644 ACE/apps/JAWS3/jaws3/Cached_Allocator_T.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Cached_Allocator_T.h delete mode 100644 ACE/apps/JAWS3/jaws3/Concurrency.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Concurrency.h delete mode 100644 ACE/apps/JAWS3/jaws3/Concurrency_T.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Concurrency_T.h delete mode 100644 ACE/apps/JAWS3/jaws3/Config_File.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Config_File.h delete mode 100644 ACE/apps/JAWS3/jaws3/Datagram.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Datagram.h delete mode 100644 ACE/apps/JAWS3/jaws3/Event_Completer.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Event_Completer.h delete mode 100644 ACE/apps/JAWS3/jaws3/Event_Dispatcher.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Event_Dispatcher.h delete mode 100644 ACE/apps/JAWS3/jaws3/Event_Result.h delete mode 100644 ACE/apps/JAWS3/jaws3/Export.h delete mode 100644 ACE/apps/JAWS3/jaws3/FILE.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/FILE.h delete mode 100644 ACE/apps/JAWS3/jaws3/IO.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/IO.h delete mode 100644 ACE/apps/JAWS3/jaws3/Makefile.am delete mode 100644 ACE/apps/JAWS3/jaws3/Options.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Options.h delete mode 100644 ACE/apps/JAWS3/jaws3/Protocol_Handler.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Protocol_Handler.h delete mode 100644 ACE/apps/JAWS3/jaws3/Reactive_IO.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Reactive_IO.h delete mode 100644 ACE/apps/JAWS3/jaws3/Reactive_IO_Helpers.h delete mode 100644 ACE/apps/JAWS3/jaws3/Signal_Task.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Signal_Task.h delete mode 100644 ACE/apps/JAWS3/jaws3/Symbol_Table.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Symbol_Table.h delete mode 100644 ACE/apps/JAWS3/jaws3/Synch_IO.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Synch_IO.h delete mode 100644 ACE/apps/JAWS3/jaws3/THYBRID_Concurrency.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/THYBRID_Concurrency.h delete mode 100644 ACE/apps/JAWS3/jaws3/TPOOL_Concurrency.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/TPOOL_Concurrency.h delete mode 100644 ACE/apps/JAWS3/jaws3/TPR_Concurrency.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/TPR_Concurrency.h delete mode 100644 ACE/apps/JAWS3/jaws3/Task_Timer.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Task_Timer.h delete mode 100644 ACE/apps/JAWS3/jaws3/Templates.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Timer.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Timer.h delete mode 100644 ACE/apps/JAWS3/jaws3/Timer_Helpers.cpp delete mode 100644 ACE/apps/JAWS3/jaws3/Timer_Helpers.h delete mode 100644 ACE/apps/JAWS3/jaws3/jaws.conf delete mode 100644 ACE/apps/JAWS3/jaws3/jaws3.mpc delete mode 100644 ACE/apps/JAWS3/jaws3/main.cpp delete mode 100644 ACE/apps/JAWS3/small/SS_Data.cpp delete mode 100644 ACE/apps/JAWS3/small/SS_Data.h delete mode 100644 ACE/apps/JAWS3/small/SS_Service_Handler.cpp delete mode 100644 ACE/apps/JAWS3/small/SS_Service_Handler.h delete mode 100644 ACE/apps/JAWS3/small/SS_State_DONE.cpp delete mode 100644 ACE/apps/JAWS3/small/SS_State_DONE.h delete mode 100644 ACE/apps/JAWS3/small/SS_State_ERROR.cpp delete mode 100644 ACE/apps/JAWS3/small/SS_State_ERROR.h delete mode 100644 ACE/apps/JAWS3/small/SS_State_PARSE.cpp delete mode 100644 ACE/apps/JAWS3/small/SS_State_PARSE.h delete mode 100644 ACE/apps/JAWS3/small/SS_State_READ.cpp delete mode 100644 ACE/apps/JAWS3/small/SS_State_READ.h delete mode 100644 ACE/apps/JAWS3/small/SS_State_WRITE.cpp delete mode 100644 ACE/apps/JAWS3/small/SS_State_WRITE.h delete mode 100644 ACE/apps/JAWS3/small/SS_Templates.cpp delete mode 100644 ACE/apps/JAWS3/small/jaws.conf delete mode 100644 ACE/apps/JAWS3/small/svc.conf delete mode 100644 ACE/apps/JAWS3/zBUILD delete mode 100644 ACE/apps/JAWS3/zCHANGES delete mode 100644 ACE/apps/JAWS3/zCONTRIB delete mode 100644 ACE/apps/JAWS3/zCOPYING delete mode 100644 ACE/apps/JAWS3/zFAQ delete mode 100644 ACE/apps/JAWS3/zREADME delete mode 100644 ACE/apps/JAWS3/zTHANKS delete mode 100644 ACE/apps/JAWS3/zTODO delete mode 100644 ACE/apps/Makefile.am delete mode 100644 ACE/apps/README delete mode 100644 ACE/apps/apps.mwc delete mode 100644 ACE/apps/drwho/BS_Client.cpp delete mode 100644 ACE/apps/drwho/BS_Client.h delete mode 100644 ACE/apps/drwho/BS_Server.cpp delete mode 100644 ACE/apps/drwho/BS_Server.h delete mode 100644 ACE/apps/drwho/Binary_Search.cpp delete mode 100644 ACE/apps/drwho/Binary_Search.h delete mode 100644 ACE/apps/drwho/CM_Client.cpp delete mode 100644 ACE/apps/drwho/CM_Client.h delete mode 100644 ACE/apps/drwho/CM_Server.cpp delete mode 100644 ACE/apps/drwho/CM_Server.h delete mode 100644 ACE/apps/drwho/ChangeLog delete mode 100644 ACE/apps/drwho/Comm_Manager.cpp delete mode 100644 ACE/apps/drwho/Comm_Manager.h delete mode 100644 ACE/apps/drwho/Drwho_Node.cpp delete mode 100644 ACE/apps/drwho/Drwho_Node.h delete mode 100644 ACE/apps/drwho/File_Manager.cpp delete mode 100644 ACE/apps/drwho/File_Manager.h delete mode 100644 ACE/apps/drwho/HT_Client.cpp delete mode 100644 ACE/apps/drwho/HT_Client.h delete mode 100644 ACE/apps/drwho/HT_Server.cpp delete mode 100644 ACE/apps/drwho/HT_Server.h delete mode 100644 ACE/apps/drwho/Hash_Table.cpp delete mode 100644 ACE/apps/drwho/Hash_Table.h delete mode 100644 ACE/apps/drwho/Makefile.am delete mode 100644 ACE/apps/drwho/Multicast_Manager.cpp delete mode 100644 ACE/apps/drwho/Multicast_Manager.h delete mode 100644 ACE/apps/drwho/Options.cpp delete mode 100644 ACE/apps/drwho/Options.h delete mode 100644 ACE/apps/drwho/PMC_All.cpp delete mode 100644 ACE/apps/drwho/PMC_All.h delete mode 100644 ACE/apps/drwho/PMC_Flo.cpp delete mode 100644 ACE/apps/drwho/PMC_Flo.h delete mode 100644 ACE/apps/drwho/PMC_Ruser.cpp delete mode 100644 ACE/apps/drwho/PMC_Ruser.h delete mode 100644 ACE/apps/drwho/PMC_Usr.cpp delete mode 100644 ACE/apps/drwho/PMC_Usr.h delete mode 100644 ACE/apps/drwho/PMS_All.cpp delete mode 100644 ACE/apps/drwho/PMS_All.h delete mode 100644 ACE/apps/drwho/PMS_Flo.cpp delete mode 100644 ACE/apps/drwho/PMS_Flo.h delete mode 100644 ACE/apps/drwho/PMS_Ruser.cpp delete mode 100644 ACE/apps/drwho/PMS_Ruser.h delete mode 100644 ACE/apps/drwho/PMS_Usr.cpp delete mode 100644 ACE/apps/drwho/PMS_Usr.h delete mode 100644 ACE/apps/drwho/PM_Client.cpp delete mode 100644 ACE/apps/drwho/PM_Client.h delete mode 100644 ACE/apps/drwho/PM_Server.cpp delete mode 100644 ACE/apps/drwho/PM_Server.h delete mode 100644 ACE/apps/drwho/Protocol_Manager.cpp delete mode 100644 ACE/apps/drwho/Protocol_Manager.h delete mode 100644 ACE/apps/drwho/Protocol_Record.cpp delete mode 100644 ACE/apps/drwho/Protocol_Record.h delete mode 100644 ACE/apps/drwho/README delete mode 100644 ACE/apps/drwho/Rwho_DB_Manager.cpp delete mode 100644 ACE/apps/drwho/Rwho_DB_Manager.h delete mode 100644 ACE/apps/drwho/SL_Client.cpp delete mode 100644 ACE/apps/drwho/SL_Client.h delete mode 100644 ACE/apps/drwho/SL_Server.cpp delete mode 100644 ACE/apps/drwho/SL_Server.h delete mode 100644 ACE/apps/drwho/SML_Client.cpp delete mode 100644 ACE/apps/drwho/SML_Client.h delete mode 100644 ACE/apps/drwho/SML_Server.cpp delete mode 100644 ACE/apps/drwho/SML_Server.h delete mode 100644 ACE/apps/drwho/SMR_Client.cpp delete mode 100644 ACE/apps/drwho/SMR_Client.h delete mode 100644 ACE/apps/drwho/SMR_Server.cpp delete mode 100644 ACE/apps/drwho/SMR_Server.h delete mode 100644 ACE/apps/drwho/SM_Client.cpp delete mode 100644 ACE/apps/drwho/SM_Client.h delete mode 100644 ACE/apps/drwho/SM_Server.cpp delete mode 100644 ACE/apps/drwho/SM_Server.h delete mode 100644 ACE/apps/drwho/Search_Struct.cpp delete mode 100644 ACE/apps/drwho/Search_Struct.h delete mode 100644 ACE/apps/drwho/Select_Manager.cpp delete mode 100644 ACE/apps/drwho/Select_Manager.h delete mode 100644 ACE/apps/drwho/Single_Lookup.cpp delete mode 100644 ACE/apps/drwho/Single_Lookup.h delete mode 100644 ACE/apps/drwho/client.cpp delete mode 100644 ACE/apps/drwho/drwho.mpc delete mode 100644 ACE/apps/drwho/global.h delete mode 100644 ACE/apps/drwho/server.cpp delete mode 100644 ACE/apps/gperf/COPYING delete mode 100644 ACE/apps/gperf/ChangeLog delete mode 100644 ACE/apps/gperf/Makefile.am delete mode 100644 ACE/apps/gperf/README delete mode 100644 ACE/apps/gperf/gperf.1 delete mode 100644 ACE/apps/gperf/gperf.info delete mode 100644 ACE/apps/gperf/gperf.mpc delete mode 100644 ACE/apps/gperf/gperf.texi delete mode 100644 ACE/apps/gperf/src/Bool_Array.cpp delete mode 100644 ACE/apps/gperf/src/Bool_Array.h delete mode 100644 ACE/apps/gperf/src/Gen_Perf.cpp delete mode 100644 ACE/apps/gperf/src/Gen_Perf.h delete mode 100644 ACE/apps/gperf/src/Hash_Table.cpp delete mode 100644 ACE/apps/gperf/src/Hash_Table.h delete mode 100644 ACE/apps/gperf/src/Iterator.cpp delete mode 100644 ACE/apps/gperf/src/Iterator.h delete mode 100644 ACE/apps/gperf/src/Key_List.cpp delete mode 100644 ACE/apps/gperf/src/Key_List.h delete mode 100644 ACE/apps/gperf/src/List_Node.cpp delete mode 100644 ACE/apps/gperf/src/List_Node.h delete mode 100644 ACE/apps/gperf/src/Makefile.am delete mode 100644 ACE/apps/gperf/src/Options.cpp delete mode 100644 ACE/apps/gperf/src/Options.h delete mode 100644 ACE/apps/gperf/src/Vectors.cpp delete mode 100644 ACE/apps/gperf/src/Vectors.h delete mode 100644 ACE/apps/gperf/src/Version.cpp delete mode 100644 ACE/apps/gperf/src/gperf.cpp delete mode 100644 ACE/apps/gperf/src/gperf.mpc delete mode 100644 ACE/apps/gperf/tests/Makefile.am delete mode 100644 ACE/apps/gperf/tests/ada-pred.exp delete mode 100644 ACE/apps/gperf/tests/ada-res.exp delete mode 100644 ACE/apps/gperf/tests/ada.gperf delete mode 100644 ACE/apps/gperf/tests/adadefs.gperf delete mode 100644 ACE/apps/gperf/tests/c-parse.gperf delete mode 100644 ACE/apps/gperf/tests/c.exp delete mode 100644 ACE/apps/gperf/tests/c.gperf delete mode 100644 ACE/apps/gperf/tests/corba.exp delete mode 100644 ACE/apps/gperf/tests/corba.gperf delete mode 100644 ACE/apps/gperf/tests/cpp-res.exp delete mode 100644 ACE/apps/gperf/tests/cpp.gperf delete mode 100644 ACE/apps/gperf/tests/gpc.gperf delete mode 100644 ACE/apps/gperf/tests/gperf_test.mpb delete mode 100644 ACE/apps/gperf/tests/gplus.gperf delete mode 100644 ACE/apps/gperf/tests/idl.exp delete mode 100644 ACE/apps/gperf/tests/idl.gperf delete mode 100644 ACE/apps/gperf/tests/iout2_gen/.empty delete mode 100644 ACE/apps/gperf/tests/irc.gperf delete mode 100644 ACE/apps/gperf/tests/makeinfo.gperf delete mode 100644 ACE/apps/gperf/tests/modula.exp delete mode 100644 ACE/apps/gperf/tests/modula2.gperf delete mode 100644 ACE/apps/gperf/tests/modula3.gperf delete mode 100644 ACE/apps/gperf/tests/pascal.exp delete mode 100644 ACE/apps/gperf/tests/pascal.gperf delete mode 100644 ACE/apps/gperf/tests/tao.exp delete mode 100644 ACE/apps/gperf/tests/tao.gperf delete mode 100644 ACE/apps/gperf/tests/test-1.exp delete mode 100644 ACE/apps/gperf/tests/test-2.exp delete mode 100644 ACE/apps/gperf/tests/test-3.exp delete mode 100644 ACE/apps/gperf/tests/test-4.exp delete mode 100644 ACE/apps/gperf/tests/test-5.exp delete mode 100644 ACE/apps/gperf/tests/test-6.exp delete mode 100644 ACE/apps/gperf/tests/test-7.exp delete mode 100644 ACE/apps/gperf/tests/test.cpp delete mode 100644 ACE/apps/gperf/tests/tests.mpc delete mode 100644 ACE/apps/gperf/version.texi delete mode 100644 ACE/apps/mkcsregdb/Makefile.am delete mode 100644 ACE/apps/mkcsregdb/code_set_registry1.2g.txt delete mode 100644 ACE/apps/mkcsregdb/cs_test.txt delete mode 100644 ACE/apps/mkcsregdb/iso_only.txt delete mode 100644 ACE/apps/mkcsregdb/mkcsregdb.cpp delete mode 100644 ACE/apps/mkcsregdb/mkcsregdb.mpc delete mode 100644 ACE/apps/soreduce/Library.cpp delete mode 100644 ACE/apps/soreduce/Library.h delete mode 100644 ACE/apps/soreduce/Makefile.am delete mode 100644 ACE/apps/soreduce/Obj_Module.cpp delete mode 100644 ACE/apps/soreduce/Obj_Module.h delete mode 100644 ACE/apps/soreduce/README delete mode 100644 ACE/apps/soreduce/SO_Group.cpp delete mode 100644 ACE/apps/soreduce/SO_Group.h delete mode 100644 ACE/apps/soreduce/Sig_List.cpp delete mode 100644 ACE/apps/soreduce/Sig_List.h delete mode 100644 ACE/apps/soreduce/Signature.cpp delete mode 100644 ACE/apps/soreduce/Signature.h delete mode 100644 ACE/apps/soreduce/soreduce.cpp delete mode 100644 ACE/apps/soreduce/soreduce.mpc delete mode 100755 ACE/bin/ACE-casts-convert delete mode 100644 ACE/bin/ACETAOCIAO.style delete mode 100644 ACE/bin/ACEutils.pm delete mode 100755 ACE/bin/Array.pl delete mode 100755 ACE/bin/Array_Helper delete mode 100644 ACE/bin/ChangeLogEditor/CVSFileLocator.pm delete mode 100644 ACE/bin/ChangeLogEditor/ChangeLogEdit.pm delete mode 100644 ACE/bin/ChangeLogEditor/ChangeLogEntry.pm delete mode 100644 ACE/bin/ChangeLogEditor/EmailTranslator.pm delete mode 100644 ACE/bin/ChangeLogEditor/FileLocator.pm delete mode 100644 ACE/bin/ChangeLogEditor/FileLocatorFactory.pm delete mode 100644 ACE/bin/ChangeLogEditor/SVNFileLocator.pm delete mode 100644 ACE/bin/DependencyGenerator/GNUDependencyWriter.pm delete mode 100644 ACE/bin/DependencyGenerator/GNUObjectGenerator.pm delete mode 100644 ACE/bin/FOCUS/ChangeLog delete mode 100755 ACE/bin/FOCUS/FOCUS.pl delete mode 100644 ACE/bin/FOCUS/NEWS delete mode 100644 ACE/bin/FOCUS/PROBLEM-REPORT-FORM delete mode 100644 ACE/bin/FOCUS/Parser/FOCUSParser.pm delete mode 100644 ACE/bin/FOCUS/README delete mode 100644 ACE/bin/FOCUS/VERSION delete mode 100644 ACE/bin/FOCUS/docs/FOCUS.html delete mode 100644 ACE/bin/FOCUS/specializations/Context-Specific-Optimizations/Dispatch-Resolution-Optimization.spl delete mode 100644 ACE/bin/FOCUS/specializations/Flushing_Strategy/Leader_Follower_Flushing_Strategy.spl delete mode 100644 ACE/bin/FOCUS/specializations/Protocol_Family/IIOP/iiop.spl delete mode 100644 ACE/bin/FOCUS/specializations/README delete mode 100644 ACE/bin/FOCUS/specializations/Reactor_Family/Select_Reactor_MT.spl delete mode 100644 ACE/bin/FOCUS/specializations/Reactor_Family/Select_Reactor_ST.spl delete mode 100644 ACE/bin/FOCUS/specializations/Reactor_Family/TP_Reactor.spl delete mode 100644 ACE/bin/FOCUS/specializations/Wait_Strategy/Wait_On_Leader_Follower.spl delete mode 100644 ACE/bin/FOCUS/specializations/Wait_Strategy/Wait_On_Read.spl delete mode 100755 ACE/bin/Hash_Map_Manager.pl delete mode 100755 ACE/bin/Hash_Map_Manager_Helper delete mode 100644 ACE/bin/LabVIEW_RT/PXI_Reset.exe delete mode 100755 ACE/bin/LabVIEW_RT/PXI_Reset.ini delete mode 100644 ACE/bin/LabVIEW_RT/README delete mode 100644 ACE/bin/LabVIEW_RT/Reboot_Target.exe delete mode 100755 ACE/bin/LabVIEW_RT/Reboot_Target.ini delete mode 100644 ACE/bin/LabVIEW_RT/labview_test_controller/ReadMe.txt delete mode 100644 ACE/bin/LabVIEW_RT/labview_test_controller/labview_test_controller.cpp delete mode 100644 ACE/bin/LabVIEW_RT/labview_test_controller/labview_test_controller.sln delete mode 100644 ACE/bin/LabVIEW_RT/labview_test_controller/labview_test_controller.vcproj delete mode 100644 ACE/bin/LabVIEW_RT/labview_test_controller/stdafx.cpp delete mode 100644 ACE/bin/LabVIEW_RT/labview_test_controller/stdafx.h delete mode 100644 ACE/bin/LabVIEW_RT/labview_test_controller/test.cpp delete mode 100644 ACE/bin/LabVIEW_RT/labview_test_controller/test.vcproj delete mode 100644 ACE/bin/MakeProjectCreator/README delete mode 100644 ACE/bin/MakeProjectCreator/config/MPC.cfg delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_athena.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_fl.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_flreactor.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_for_tao.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_fox.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_foxreactor.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_gl.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_gtk.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_mfc.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_motif.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_openssl.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_output.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_qt.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_qtreactor.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_tk.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_tkreactor.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_x11.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_xt.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_xtreactor.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ace_zzip.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/acedefaults.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/aceexe.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/acelib.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/acenosubsets.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/acexml.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/automake.features delete mode 100644 ACE/bin/MakeProjectCreator/config/avoids_ace_for_tao.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/bmake.features delete mode 100644 ACE/bin/MakeProjectCreator/config/borland.features delete mode 100644 ACE/bin/MakeProjectCreator/config/conv_lib.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/core.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/crosscompile.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/default.rel delete mode 100644 ACE/bin/MakeProjectCreator/config/em3.features delete mode 100644 ACE/bin/MakeProjectCreator/config/exceptions.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/global.features delete mode 100644 ACE/bin/MakeProjectCreator/config/gnuace.features delete mode 100644 ACE/bin/MakeProjectCreator/config/htbp.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/install.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/install_bin.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/install_headers.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/install_lib.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ipv6.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/kokyu.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/labviewrt_dll.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/man.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/nmake.features delete mode 100644 ACE/bin/MakeProjectCreator/config/pkgconfig.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/qos.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/rmcast.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/script.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ssl.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ssl_for_tao.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/ssl_full.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/stl.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/support_ostream.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/test_files.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/threads.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/tmcast.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/vc71.features delete mode 100644 ACE/bin/MakeProjectCreator/config/vc8.features delete mode 100644 ACE/bin/MakeProjectCreator/config/vc8nmake.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/vc9.features delete mode 100644 ACE/bin/MakeProjectCreator/config/vc9nmake.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/vc_warnings.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt delete mode 100644 ACE/bin/MakeProjectCreator/config/vcl.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt delete mode 100644 ACE/bin/MakeProjectCreator/config/versioned_namespace.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/wfmo.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/winregistry.mpb delete mode 100644 ACE/bin/MakeProjectCreator/config/wxwindows.mpb delete mode 100644 ACE/bin/MakeProjectCreator/docs/templates/gnu.txt delete mode 100644 ACE/bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm delete mode 100644 ACE/bin/MakeProjectCreator/modules/BorlandProjectCreator.pm delete mode 100644 ACE/bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm delete mode 100644 ACE/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm delete mode 100644 ACE/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm delete mode 100644 ACE/bin/MakeProjectCreator/modules/GNUAutobuildProjectCreator.pm delete mode 100644 ACE/bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm delete mode 100644 ACE/bin/MakeProjectCreator/templates/bor.mpd delete mode 100644 ACE/bin/MakeProjectCreator/templates/bordll.mpt delete mode 100644 ACE/bin/MakeProjectCreator/templates/borexe.mpt delete mode 100644 ACE/bin/MakeProjectCreator/templates/gnu.mpd delete mode 100644 ACE/bin/MakeProjectCreator/templates/gnudll.mpt delete mode 100644 ACE/bin/MakeProjectCreator/templates/gnuexe.mpt delete mode 100644 ACE/bin/Makefile.am delete mode 100644 ACE/bin/PerlACE/ConfigList.pm delete mode 100644 ACE/bin/PerlACE/MSProject.pm delete mode 100644 ACE/bin/PerlACE/MSProject/DSP.pm delete mode 100644 ACE/bin/PerlACE/MSProject/VCP.pm delete mode 100644 ACE/bin/PerlACE/Makefile.am delete mode 100644 ACE/bin/PerlACE/Process.pm delete mode 100644 ACE/bin/PerlACE/ProcessLVRT.pm delete mode 100644 ACE/bin/PerlACE/ProcessVX.pm delete mode 100644 ACE/bin/PerlACE/ProcessVX_Unix.pm delete mode 100644 ACE/bin/PerlACE/ProcessVX_Win32.pm delete mode 100644 ACE/bin/PerlACE/Process_Unix.pm delete mode 100644 ACE/bin/PerlACE/Process_VMS.pm delete mode 100644 ACE/bin/PerlACE/Process_Win32.pm delete mode 100644 ACE/bin/PerlACE/Run_Test.pm delete mode 100644 ACE/bin/PerlACE/TestTarget.pm delete mode 100644 ACE/bin/PerlACE/TestTarget_LVRT.pm delete mode 100644 ACE/bin/PerlACE/perlace.mpc delete mode 100644 ACE/bin/PythonACE/__init__.py delete mode 100644 ACE/bin/PythonACE/fuzz/__init__.py delete mode 100644 ACE/bin/PythonACE/fuzz/_fuzz.py delete mode 100644 ACE/bin/PythonACE/fuzz/_generic_handler.py delete mode 100644 ACE/bin/PythonACE/fuzz/_mailer.py delete mode 100644 ACE/bin/PythonACE/fuzz/_path.py delete mode 100644 ACE/bin/PythonACE/fuzz/_singleton.py delete mode 100644 ACE/bin/PythonACE/fuzz/_types.py delete mode 100644 ACE/bin/PythonACE/fuzz/_warning_handler.py delete mode 100644 ACE/bin/PythonACE/fuzz/check_includes.py delete mode 100644 ACE/bin/PythonACE/fuzz/cpp_inline.py delete mode 100644 ACE/bin/PythonACE/fuzz/inline.py delete mode 100644 ACE/bin/PythonACE/fuzz/math_include.py delete mode 100644 ACE/bin/PythonACE/fuzz/max_filename.py delete mode 100644 ACE/bin/PythonACE/fuzz/max_project_len.py delete mode 100644 ACE/bin/PythonACE/fuzz/newline.py delete mode 100644 ACE/bin/PythonACE/fuzz/no_conflict_markers.py delete mode 100644 ACE/bin/PythonACE/fuzz/noncvs.py delete mode 100644 ACE/bin/PythonACE/fuzz/ptr_arith_t.py delete mode 100644 ACE/bin/PythonACE/fuzz/refcountservantbase.py delete mode 100644 ACE/bin/PythonACE/fuzz/streams_include.py delete mode 100644 ACE/bin/PythonACE/fuzz/verify_changelog.py delete mode 100644 ACE/bin/Uniqueid.pm delete mode 100755 ACE/bin/ace-install delete mode 100755 ACE/bin/ace_components delete mode 100755 ACE/bin/ace_ld delete mode 100644 ACE/bin/ace_tests.lst delete mode 100755 ACE/bin/add_rel_link.sh delete mode 100755 ACE/bin/aix_shr delete mode 100755 ACE/bin/auto_compile delete mode 100755 ACE/bin/auto_compile_wrapper delete mode 100755 ACE/bin/auto_ptr.perl delete mode 100755 ACE/bin/auto_run_tests.pl delete mode 100755 ACE/bin/autoconf_compile delete mode 100755 ACE/bin/autoconf_compile_wrapper delete mode 100644 ACE/bin/bin.mpc delete mode 100755 ACE/bin/bootstrap delete mode 100644 ACE/bin/ciao_tests.lst delete mode 100755 ACE/bin/cle.pl delete mode 100755 ACE/bin/clean_dsp.pl delete mode 100755 ACE/bin/clean_sems.sh delete mode 100644 ACE/bin/clone.csh delete mode 100755 ACE/bin/cltime.pl delete mode 100755 ACE/bin/copy-script.sh delete mode 100755 ACE/bin/count_lines delete mode 100755 ACE/bin/create_ace_build delete mode 100755 ACE/bin/create_ace_build.pl delete mode 100755 ACE/bin/cut_cidlc.sh delete mode 100755 ACE/bin/depgen.pl delete mode 100755 ACE/bin/diff-builds.pl delete mode 100755 ACE/bin/doxygen-convert-h.pl delete mode 100644 ACE/bin/envinfo.cpp delete mode 100755 ACE/bin/footprint_stats.sh delete mode 100755 ACE/bin/fuzz.pl delete mode 100755 ACE/bin/fuzz.py delete mode 100755 ACE/bin/g++_metric.sh delete mode 100755 ACE/bin/g++dep delete mode 100755 ACE/bin/generate_compile_stats.sh delete mode 100755 ACE/bin/generate_doxygen.pl delete mode 100755 ACE/bin/generate_export_file.pl delete mode 100755 ACE/bin/generate_footprint_chart.sh delete mode 100755 ACE/bin/generate_performance_chart.sh delete mode 100755 ACE/bin/generate_rel_manpages delete mode 100755 ACE/bin/generate_topinfo_charts.sh delete mode 100755 ACE/bin/indent_macros.pl delete mode 100755 ACE/bin/libsize.pl delete mode 100755 ACE/bin/main2TMAIN.pl delete mode 100755 ACE/bin/make-components delete mode 100755 ACE/bin/make_release.py delete mode 100755 ACE/bin/mpc.pl delete mode 100755 ACE/bin/msvc_mpc_auto_compile.pl delete mode 100755 ACE/bin/msvc_static_compile.pl delete mode 100644 ACE/bin/msvc_static_order.lst delete mode 100755 ACE/bin/mwc.pl delete mode 100755 ACE/bin/package_copy_script.sh delete mode 100755 ACE/bin/performance_stats.sh delete mode 100755 ACE/bin/pippen.pl delete mode 100755 ACE/bin/regenerate_exports.pl delete mode 100755 ACE/bin/reverse_clean delete mode 100755 ACE/bin/run_all.pl delete mode 100755 ACE/bin/run_all_win32.pl delete mode 100755 ACE/bin/sets-manager.py delete mode 100755 ACE/bin/show_unused_macros.pl delete mode 100755 ACE/bin/split-cpp delete mode 100755 ACE/bin/svcconf-convert.pl delete mode 100755 ACE/bin/svn_props.py delete mode 100644 ACE/bin/tao_orb_tests.lst delete mode 100644 ACE/bin/tao_other_tests.lst delete mode 100755 ACE/bin/topinfo_iorsize_stats.sh delete mode 100755 ACE/bin/topinfo_simple_stats.sh delete mode 100755 ACE/bin/topinfo_stats.sh delete mode 100755 ACE/bin/update-ace+tao.sh delete mode 100755 ACE/bin/vx_repo_link.pl delete mode 100755 ACE/bin/vxworks_modify.pl delete mode 100644 ACE/configure.ac delete mode 100644 ACE/contrib/FaCE/ACE.ico delete mode 100644 ACE/contrib/FaCE/ACE_Racer.bmp delete mode 100644 ACE/contrib/FaCE/CE_ARGV.CPP delete mode 100644 ACE/contrib/FaCE/CE_ARGV.H delete mode 100644 ACE/contrib/FaCE/CE_Screen_Output.cpp delete mode 100644 ACE/contrib/FaCE/CE_Screen_Output.h delete mode 100644 ACE/contrib/FaCE/FACE.ico delete mode 100644 ACE/contrib/FaCE/FaCE.cpp delete mode 100644 ACE/contrib/FaCE/FaCE.h delete mode 100644 ACE/contrib/FaCE/FaCE.mpc delete mode 100644 ACE/contrib/FaCE/FaCE.rc delete mode 100644 ACE/contrib/FaCE/FaCENOACE.mpc delete mode 100644 ACE/contrib/FaCE/FaCE_OS.h delete mode 100644 ACE/contrib/FaCE/License.txt delete mode 100644 ACE/contrib/FaCE/Main.cpp delete mode 100644 ACE/contrib/FaCE/README delete mode 100644 ACE/contrib/FaCE/TAO.bmp delete mode 100644 ACE/contrib/FaCE/newres.h delete mode 100644 ACE/contrib/FaCE/resource.h delete mode 100644 ACE/contrib/minizip/ChangeLogUnzip delete mode 100644 ACE/contrib/minizip/crypt.h delete mode 100644 ACE/contrib/minizip/ioapi.c delete mode 100644 ACE/contrib/minizip/ioapi.h delete mode 100644 ACE/contrib/minizip/miniunz.c delete mode 100644 ACE/contrib/minizip/minizip.c delete mode 100644 ACE/contrib/minizip/minizip.mpc delete mode 100644 ACE/contrib/minizip/minizip_export.h delete mode 100644 ACE/contrib/minizip/mztools.c delete mode 100644 ACE/contrib/minizip/mztools.h delete mode 100644 ACE/contrib/minizip/unzip.c delete mode 100644 ACE/contrib/minizip/unzip.h delete mode 100644 ACE/contrib/minizip/zip.c delete mode 100644 ACE/contrib/minizip/zip.h delete mode 100644 ACE/contrib/utility/BuildRules/Archive.gcc.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Archive.gcc.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Archive.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Archive.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Bootstrap.rules delete mode 100644 ACE/contrib/utility/BuildRules/Documentation.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Documentation.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Executable.gcc.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Executable.gcc.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Executable.generic.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Executable.generic.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Executable.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Executable.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Object.gcc.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Object.gcc.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Object.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Object.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Recursion.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Recursion.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Shared.gcc.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Shared.gcc.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Shared.generic.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Shared.generic.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Shared.post.rules delete mode 100644 ACE/contrib/utility/BuildRules/Shared.pre.rules delete mode 100644 ACE/contrib/utility/BuildRules/Thoughts delete mode 100644 ACE/contrib/utility/Documentation/Build.xhtml delete mode 100644 ACE/contrib/utility/Documentation/CommandLine/News.xhtml delete mode 100644 ACE/contrib/utility/Documentation/CommandLine/Terminology.xhtml delete mode 100644 ACE/contrib/utility/Documentation/CommandLine/Thoughts delete mode 100644 ACE/contrib/utility/Documentation/CommandLine/index.xhtml delete mode 100644 ACE/contrib/utility/Documentation/ExH/Compound.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/ExH/Example/Makefile delete mode 100644 ACE/contrib/utility/Documentation/ExH/Example/bad_cast.cpp.html delete mode 100644 ACE/contrib/utility/Documentation/ExH/Example/compound.cpp.html delete mode 100644 ACE/contrib/utility/Documentation/ExH/Example/hello_world.cpp.html delete mode 100644 ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html delete mode 100644 ACE/contrib/utility/Documentation/ExH/Logic/DescriptiveException.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/ExH/Logic/Exception.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/ExH/Logic/Makefile delete mode 100644 ACE/contrib/utility/Documentation/ExH/Makefile delete mode 100644 ACE/contrib/utility/Documentation/ExH/Makefile.documentation delete mode 100644 ACE/contrib/utility/Documentation/ExH/News.xhtml delete mode 100644 ACE/contrib/utility/Documentation/ExH/System/DescriptiveException.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/ExH/System/Exception.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/ExH/System/Makefile delete mode 100644 ACE/contrib/utility/Documentation/ExH/index.xhtml delete mode 100644 ACE/contrib/utility/Documentation/Hetero/News.xhtml delete mode 100644 ACE/contrib/utility/Documentation/Hetero/index.xhtml delete mode 100644 ACE/contrib/utility/Documentation/Introspection/News.xhtml delete mode 100644 ACE/contrib/utility/Documentation/Introspection/index.xhtml delete mode 100644 ACE/contrib/utility/Documentation/Makefile delete mode 100644 ACE/contrib/utility/Documentation/News.xhtml delete mode 100644 ACE/contrib/utility/Documentation/ReferenceCounting/DefaultImpl.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/ReferenceCounting/Interface.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/ReferenceCounting/Makefile delete mode 100644 ACE/contrib/utility/Documentation/ReferenceCounting/News.xhtml delete mode 100644 ACE/contrib/utility/Documentation/ReferenceCounting/SmartPtr.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/ReferenceCounting/StrictPtr.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/ReferenceCounting/index.xhtml delete mode 100644 ACE/contrib/utility/Documentation/ReleaseProcess delete mode 100644 ACE/contrib/utility/Documentation/Style/CXX.css delete mode 100644 ACE/contrib/utility/Documentation/Style/CXX_Blue.css delete mode 100644 ACE/contrib/utility/Documentation/Style/Default.css delete mode 100644 ACE/contrib/utility/Documentation/Synch/Makefile delete mode 100644 ACE/contrib/utility/Documentation/Synch/News.xhtml delete mode 100644 ACE/contrib/utility/Documentation/Synch/Policy/Makefile delete mode 100644 ACE/contrib/utility/Documentation/Synch/Policy/Null.hpp.html delete mode 100644 ACE/contrib/utility/Documentation/Synch/index.xhtml delete mode 100644 ACE/contrib/utility/Documentation/TODO delete mode 100644 ACE/contrib/utility/Documentation/Template.xhtml delete mode 100644 ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount delete mode 100644 ACE/contrib/utility/Documentation/Thoughts/Enum/EnumCount2 delete mode 100644 ACE/contrib/utility/Documentation/Thoughts/Enum/EnumInfo delete mode 100644 ACE/contrib/utility/Documentation/index.xhtml delete mode 100644 ACE/contrib/utility/Example/CommandLine/Foo/command.cpp delete mode 100644 ACE/contrib/utility/Example/CommandLine/Foo/foo.cpp delete mode 100644 ACE/contrib/utility/Example/ExH/BadCast/Makefile delete mode 100644 ACE/contrib/utility/Example/ExH/BadCast/bad_cast.cpp delete mode 100644 ACE/contrib/utility/Example/ExH/Compound/Makefile delete mode 100644 ACE/contrib/utility/Example/ExH/Compound/compound.cpp delete mode 100644 ACE/contrib/utility/Example/ExH/HelloWorld/Makefile delete mode 100644 ACE/contrib/utility/Example/ExH/HelloWorld/hello_world.cpp delete mode 100644 ACE/contrib/utility/Example/ExH/LogicToSystem/Makefile delete mode 100644 ACE/contrib/utility/Example/ExH/LogicToSystem/logic_to_system.cpp delete mode 100644 ACE/contrib/utility/Example/ExH/Makefile delete mode 100644 ACE/contrib/utility/Example/Hetero/Container/Makefile delete mode 100644 ACE/contrib/utility/Example/Hetero/Container/container.cpp delete mode 100644 ACE/contrib/utility/Example/Hetero/Makefile delete mode 100644 ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.cpp delete mode 100644 ACE/contrib/utility/Example/Introspection/InheritanceTree/Hierarchy.hpp delete mode 100644 ACE/contrib/utility/Example/Introspection/InheritanceTree/Makefile delete mode 100644 ACE/contrib/utility/Example/Introspection/InheritanceTree/inheritance_tree.cpp delete mode 100644 ACE/contrib/utility/Example/Introspection/Makefile delete mode 100644 ACE/contrib/utility/Example/Introspection/Traversal/Makefile delete mode 100644 ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.cpp delete mode 100644 ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp delete mode 100644 ACE/contrib/utility/Example/Introspection/Traversal/Traversal.cpp delete mode 100644 ACE/contrib/utility/Example/Introspection/Traversal/Traversal.hpp delete mode 100644 ACE/contrib/utility/Example/Introspection/Traversal/driver.cpp delete mode 100644 ACE/contrib/utility/Example/Makefile delete mode 100644 ACE/contrib/utility/Makefile delete mode 100644 ACE/contrib/utility/Test/ExH/Compound/Makefile delete mode 100644 ACE/contrib/utility/Test/ExH/Compound/compound.cpp delete mode 100644 ACE/contrib/utility/Test/ExH/Converter/Makefile delete mode 100644 ACE/contrib/utility/Test/ExH/Converter/converter.cpp delete mode 100644 ACE/contrib/utility/Test/ExH/Inline/Makefile delete mode 100644 ACE/contrib/utility/Test/ExH/Inline/inline.cpp delete mode 100644 ACE/contrib/utility/Test/ExH/Inline/unit.cpp delete mode 100644 ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/Makefile delete mode 100644 ACE/contrib/utility/Test/ExH/Logic/DescriptiveException/descriptive_exception.cpp delete mode 100644 ACE/contrib/utility/Test/ExH/Logic/Makefile delete mode 100644 ACE/contrib/utility/Test/ExH/Makefile delete mode 100644 ACE/contrib/utility/Test/ExH/System/DescriptiveException/Makefile delete mode 100644 ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp delete mode 100644 ACE/contrib/utility/Test/ExH/System/Makefile delete mode 100644 ACE/contrib/utility/Test/Introspection/Inline/Makefile delete mode 100644 ACE/contrib/utility/Test/Introspection/Inline/inline.cpp delete mode 100644 ACE/contrib/utility/Test/Introspection/Inline/unit.cpp delete mode 100644 ACE/contrib/utility/Test/Introspection/Makefile delete mode 100644 ACE/contrib/utility/Test/Makefile delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/Makefile delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/DefaultImpl/default_impl.cpp delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/Inline/Makefile delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/Inline/inline.cpp delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/Inline/unit.cpp delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/Interface/Makefile delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/Interface/interface.cpp delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/Makefile delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/Makefile delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/SmartPtr/smart_ptr.cpp delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/Makefile delete mode 100644 ACE/contrib/utility/Test/ReferenceCounting/StrictPtr/strict_ptr.cpp delete mode 100644 ACE/contrib/utility/Test/Synch/Inline/Makefile delete mode 100644 ACE/contrib/utility/Test/Synch/Inline/inline.cpp delete mode 100644 ACE/contrib/utility/Test/Synch/Inline/unit.cpp delete mode 100644 ACE/contrib/utility/Test/Synch/Makefile delete mode 100644 ACE/contrib/utility/Utility/ExH/Compound.hpp delete mode 100644 ACE/contrib/utility/Utility/ExH/Compound.tpp delete mode 100644 ACE/contrib/utility/Utility/ExH/Converter.hpp delete mode 100644 ACE/contrib/utility/Utility/ExH/Converter.tpp delete mode 100644 ACE/contrib/utility/Utility/ExH/ExH.hpp delete mode 100644 ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.hpp delete mode 100644 ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.ipp delete mode 100644 ACE/contrib/utility/Utility/ExH/Logic/DescriptiveException.tpp delete mode 100644 ACE/contrib/utility/Utility/ExH/Logic/Exception.hpp delete mode 100644 ACE/contrib/utility/Utility/ExH/Logic/Exception.ipp delete mode 100644 ACE/contrib/utility/Utility/ExH/StringStreamConverter.hpp delete mode 100644 ACE/contrib/utility/Utility/ExH/StringStreamConverter.ipp delete mode 100644 ACE/contrib/utility/Utility/ExH/System/DescriptiveException.hpp delete mode 100644 ACE/contrib/utility/Utility/ExH/System/DescriptiveException.ipp delete mode 100644 ACE/contrib/utility/Utility/ExH/System/DescriptiveException.tpp delete mode 100644 ACE/contrib/utility/Utility/ExH/System/Exception.hpp delete mode 100644 ACE/contrib/utility/Utility/Hetero/Container.hpp delete mode 100644 ACE/contrib/utility/Utility/Hetero/Shell.hpp delete mode 100644 ACE/contrib/utility/Utility/Hetero/TypeList.hpp delete mode 100644 ACE/contrib/utility/Utility/Hetero/TypedContainer.hpp delete mode 100644 ACE/contrib/utility/Utility/Hetero/Vector.hpp delete mode 100644 ACE/contrib/utility/Utility/Introspection/Introspection.hpp delete mode 100644 ACE/contrib/utility/Utility/Introspection/Makefile delete mode 100644 ACE/contrib/utility/Utility/Introspection/Object.cpp delete mode 100644 ACE/contrib/utility/Utility/Introspection/Object.hpp delete mode 100644 ACE/contrib/utility/Utility/Introspection/Object.ipp delete mode 100644 ACE/contrib/utility/Utility/Introspection/TypeId.cpp delete mode 100644 ACE/contrib/utility/Utility/Introspection/TypeId.hpp delete mode 100644 ACE/contrib/utility/Utility/Introspection/TypeId.ipp delete mode 100644 ACE/contrib/utility/Utility/Introspection/TypeId.tpp delete mode 100644 ACE/contrib/utility/Utility/Introspection/TypeInfo.hpp delete mode 100644 ACE/contrib/utility/Utility/Introspection/TypeInfo.ipp delete mode 100644 ACE/contrib/utility/Utility/Makefile delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.hpp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/DefaultImpl.ipp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.hpp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/ExternalLockImpl.ipp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/Interface.hpp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/Interface.ipp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/Interface.tpp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/ReferenceCounting.hpp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.hpp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/SmartPtr.tpp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.hpp delete mode 100644 ACE/contrib/utility/Utility/ReferenceCounting/StrictPtr.tpp delete mode 100644 ACE/contrib/utility/Utility/Synch/Policy/Null.hpp delete mode 100644 ACE/contrib/utility/Utility/Synch/Policy/Null.ipp delete mode 100644 ACE/contrib/utility/Vault/StringConverter.hpp delete mode 100644 ACE/contrib/utility/Vault/StringConverter.ipp delete mode 100644 ACE/contrib/utility/Vault/hetero/map delete mode 100644 ACE/contrib/utility/Vault/hetero/map.hpp delete mode 100644 ACE/contrib/utility/Vault/hetero/map.tpp delete mode 100644 ACE/contrib/utility/Version delete mode 100644 ACE/contrib/utility/license.html delete mode 100644 ACE/docs/ACE-FMM.html delete mode 100644 ACE/docs/ACE-SSL.html delete mode 100644 ACE/docs/ACE-bug-process.html delete mode 100644 ACE/docs/ACE-categories.html delete mode 100644 ACE/docs/ACE-development-process.html delete mode 100644 ACE/docs/ACE-guidelines.html delete mode 100644 ACE/docs/ACE-lessons.html delete mode 100644 ACE/docs/ACE-porting.html delete mode 100644 ACE/docs/ACE-subsets.html delete mode 100644 ACE/docs/CE-status.txt delete mode 100644 ACE/docs/Download.html delete mode 100644 ACE/docs/README.tutorials delete mode 100644 ACE/docs/Symbol_Versioning.html delete mode 100644 ACE/docs/ace_guidelines.vsmacros delete mode 100644 ACE/docs/bczar/bczar.html delete mode 100644 ACE/docs/bczar/privileges.html delete mode 100644 ACE/docs/exceptions.html delete mode 100644 ACE/docs/index.html delete mode 100644 ACE/docs/msvc_notes.txt delete mode 100644 ACE/docs/run_test.txt delete mode 100644 ACE/docs/svn/config delete mode 100644 ACE/docs/svn/svn-prefs.reg delete mode 100644 ACE/docs/usage-bugzilla.html delete mode 100644 ACE/docs/wchar.txt delete mode 100644 ACE/etc/DOC-way.html delete mode 100644 ACE/etc/README delete mode 100644 ACE/etc/ace.doxygen delete mode 100644 ACE/etc/ace_man.doxygen delete mode 100644 ACE/etc/ace_qos.doxygen delete mode 100644 ACE/etc/ace_rmcast.doxygen delete mode 100644 ACE/etc/ace_ssl.doxygen delete mode 100644 ACE/etc/acexml.doxygen delete mode 100644 ACE/etc/ciao.doxygen delete mode 100644 ACE/etc/ciao_DAnCE.doxygen delete mode 100644 ACE/etc/ciao_config_handlers.doxygen delete mode 100644 ACE/etc/doxygen.css delete mode 100644 ACE/etc/enforce_ace_try.diff delete mode 100644 ACE/etc/index.html delete mode 100644 ACE/etc/purify.solaris2 delete mode 100644 ACE/etc/tao.doxygen delete mode 100644 ACE/etc/tao_anytypecode.doxygen delete mode 100644 ACE/etc/tao_av.doxygen delete mode 100644 ACE/etc/tao_compression.doxygen delete mode 100644 ACE/etc/tao_cosevent.doxygen delete mode 100644 ACE/etc/tao_cosnaming.doxygen delete mode 100644 ACE/etc/tao_cosnotification.doxygen delete mode 100644 ACE/etc/tao_costime.doxygen delete mode 100644 ACE/etc/tao_costrader.doxygen delete mode 100644 ACE/etc/tao_dynamicany.doxygen delete mode 100644 ACE/etc/tao_dynamicinterface.doxygen delete mode 100644 ACE/etc/tao_esf.doxygen delete mode 100644 ACE/etc/tao_ifr.doxygen delete mode 100644 ACE/etc/tao_implrepo.doxygen delete mode 100644 ACE/etc/tao_iormanip.doxygen delete mode 100644 ACE/etc/tao_iortable.doxygen delete mode 100644 ACE/etc/tao_pi.doxygen delete mode 100644 ACE/etc/tao_pi_server.doxygen delete mode 100644 ACE/etc/tao_portablegroup.doxygen delete mode 100644 ACE/etc/tao_portableserver.doxygen delete mode 100644 ACE/etc/tao_pss.doxygen delete mode 100644 ACE/etc/tao_rtcorba.doxygen delete mode 100644 ACE/etc/tao_rtevent.doxygen delete mode 100644 ACE/etc/tao_rtportableserver.doxygen delete mode 100644 ACE/etc/tao_security.doxygen delete mode 100644 ACE/etc/tao_smartproxies.doxygen delete mode 100644 ACE/etc/tao_ssliop.doxygen delete mode 100644 ACE/etc/tao_strategies.doxygen delete mode 100644 ACE/etc/tao_transportcurrent.doxygen delete mode 100644 ACE/etc/xlc_dummy.cpp delete mode 100644 ACE/examples/APG/Active_Objects/AO.cpp delete mode 100644 ACE/examples/APG/Active_Objects/AO2.cpp delete mode 100644 ACE/examples/APG/Active_Objects/Makefile.am delete mode 100644 ACE/examples/APG/Active_Objects/active_objects.mpc delete mode 100644 ACE/examples/APG/Config/ARGV_Example.cpp delete mode 100644 ACE/examples/APG/Config/Get_Opt.cpp delete mode 100644 ACE/examples/APG/Config/Get_Opt_Long.cpp delete mode 100644 ACE/examples/APG/Config/HASTATUS_export.h delete mode 100644 ACE/examples/APG/Config/HA_Status.cpp delete mode 100644 ACE/examples/APG/Config/Makefile.am delete mode 100644 ACE/examples/APG/Config/config.mpc delete mode 100644 ACE/examples/APG/Containers/Allocator.cpp delete mode 100644 ACE/examples/APG/Containers/Array.cpp delete mode 100644 ACE/examples/APG/Containers/DLList.cpp delete mode 100644 ACE/examples/APG/Containers/DataElement.h delete mode 100644 ACE/examples/APG/Containers/Hash_Map.cpp delete mode 100644 ACE/examples/APG/Containers/Hash_Map_Hash.cpp delete mode 100644 ACE/examples/APG/Containers/Hash_Map_Hash.h delete mode 100644 ACE/examples/APG/Containers/KeyType.h delete mode 100644 ACE/examples/APG/Containers/Makefile.am delete mode 100644 ACE/examples/APG/Containers/Map_Manager.cpp delete mode 100644 ACE/examples/APG/Containers/Map_Manager_Specialization.cpp delete mode 100644 ACE/examples/APG/Containers/Queues.cpp delete mode 100644 ACE/examples/APG/Containers/RB_Tree.cpp delete mode 100644 ACE/examples/APG/Containers/RB_Tree_Functors.cpp delete mode 100644 ACE/examples/APG/Containers/RB_Tree_Functors.h delete mode 100644 ACE/examples/APG/Containers/Sets.cpp delete mode 100644 ACE/examples/APG/Containers/Stacks.cpp delete mode 100644 ACE/examples/APG/Containers/containers.mpc delete mode 100644 ACE/examples/APG/Logging/Callback-2.h delete mode 100644 ACE/examples/APG/Logging/Callback-3.h delete mode 100644 ACE/examples/APG/Logging/Callback.h delete mode 100644 ACE/examples/APG/Logging/Change_Instance_Default.cpp delete mode 100644 ACE/examples/APG/Logging/Change_Mask.cpp delete mode 100644 ACE/examples/APG/Logging/Howto_Syslog.cpp delete mode 100644 ACE/examples/APG/Logging/LogManager.h delete mode 100644 ACE/examples/APG/Logging/Log_Msg_Alt.h delete mode 100644 ACE/examples/APG/Logging/Makefile.am delete mode 100644 ACE/examples/APG/Logging/Simple1.cpp delete mode 100644 ACE/examples/APG/Logging/Simple2.cpp delete mode 100644 ACE/examples/APG/Logging/Trace.h delete mode 100644 ACE/examples/APG/Logging/Trace_Return.cpp delete mode 100644 ACE/examples/APG/Logging/Use_Callback.cpp delete mode 100644 ACE/examples/APG/Logging/Use_Callback2.cpp delete mode 100644 ACE/examples/APG/Logging/Use_LogManager.cpp delete mode 100644 ACE/examples/APG/Logging/Use_Logger.cpp delete mode 100644 ACE/examples/APG/Logging/Use_Logging_Server.cpp delete mode 100644 ACE/examples/APG/Logging/Use_Logging_Strategy.cpp delete mode 100644 ACE/examples/APG/Logging/Use_Multiple_Sinks.cpp delete mode 100644 ACE/examples/APG/Logging/Use_Ostream.cpp delete mode 100644 ACE/examples/APG/Logging/Use_Stderr.cpp delete mode 100644 ACE/examples/APG/Logging/Use_Syslog.cpp delete mode 100644 ACE/examples/APG/Logging/Wrap_Macros.cpp delete mode 100644 ACE/examples/APG/Logging/Wrap_Macros_Alt.cpp delete mode 100644 ACE/examples/APG/Logging/client.conf delete mode 100644 ACE/examples/APG/Logging/logging.mpc delete mode 100644 ACE/examples/APG/Logging/logging_strategy.conf delete mode 100644 ACE/examples/APG/Logging/server.conf delete mode 100644 ACE/examples/APG/Makefile.am delete mode 100644 ACE/examples/APG/Misc_IPC/Makefile.am delete mode 100644 ACE/examples/APG/Misc_IPC/UDP_Broadcast.cpp delete mode 100644 ACE/examples/APG/Misc_IPC/UDP_Multicast.cpp delete mode 100644 ACE/examples/APG/Misc_IPC/UDP_Unicast.cpp delete mode 100644 ACE/examples/APG/Misc_IPC/misc_ipc.mpc delete mode 100644 ACE/examples/APG/Naming/EMail.h delete mode 100644 ACE/examples/APG/Naming/Graph.cpp delete mode 100644 ACE/examples/APG/Naming/Graph.h delete mode 100644 ACE/examples/APG/Naming/Graphable_Element.cpp delete mode 100644 ACE/examples/APG/Naming/Graphable_Element.h delete mode 100644 ACE/examples/APG/Naming/Makefile.am delete mode 100644 ACE/examples/APG/Naming/Name_Binding.h delete mode 100644 ACE/examples/APG/Naming/Naming_Context.h delete mode 100644 ACE/examples/APG/Naming/Netlocal.cpp delete mode 100644 ACE/examples/APG/Naming/Netlocal_reader.cpp delete mode 100644 ACE/examples/APG/Naming/Nodelocal.cpp delete mode 100644 ACE/examples/APG/Naming/Nodelocal_shared.cpp delete mode 100644 ACE/examples/APG/Naming/Nodelocal_shared_reader.cpp delete mode 100644 ACE/examples/APG/Naming/Temperature_Grapher.cpp delete mode 100644 ACE/examples/APG/Naming/Temperature_Grapher.h delete mode 100644 ACE/examples/APG/Naming/Temperature_Grapher_Options.h delete mode 100644 ACE/examples/APG/Naming/Temperature_Monitor.cpp delete mode 100644 ACE/examples/APG/Naming/Temperature_Monitor.h delete mode 100644 ACE/examples/APG/Naming/Temperature_Monitor2.cpp delete mode 100644 ACE/examples/APG/Naming/Temperature_Monitor2.h delete mode 100644 ACE/examples/APG/Naming/Temperature_Monitor_Options.h delete mode 100644 ACE/examples/APG/Naming/Thermometer.h delete mode 100644 ACE/examples/APG/Naming/naming.mpc delete mode 100644 ACE/examples/APG/Naming/svc.conf delete mode 100644 ACE/examples/APG/Proactor/HA_Proactive_Status.cpp delete mode 100644 ACE/examples/APG/Proactor/HA_Proactive_Status.h delete mode 100644 ACE/examples/APG/Proactor/Makefile.am delete mode 100644 ACE/examples/APG/Proactor/proactor.mpc delete mode 100644 ACE/examples/APG/Processes/Makefile.am delete mode 100644 ACE/examples/APG/Processes/Process_Manager_Death.cpp delete mode 100644 ACE/examples/APG/Processes/Process_Manager_Spawn.cpp delete mode 100644 ACE/examples/APG/Processes/Process_Mutex.cpp delete mode 100644 ACE/examples/APG/Processes/Spawn.cpp delete mode 100644 ACE/examples/APG/Processes/processes.mpc delete mode 100644 ACE/examples/APG/Reactor/Client.cpp delete mode 100644 ACE/examples/APG/Reactor/Client.h delete mode 100644 ACE/examples/APG/Reactor/ClientService.h delete mode 100644 ACE/examples/APG/Reactor/HAStatus-AC.cpp delete mode 100644 ACE/examples/APG/Reactor/HAStatus.cpp delete mode 100644 ACE/examples/APG/Reactor/Makefile.am delete mode 100644 ACE/examples/APG/Reactor/Reschedule.cpp delete mode 100644 ACE/examples/APG/Reactor/Schedule_Timers.cpp delete mode 100644 ACE/examples/APG/Reactor/Timer_Cancel.cpp delete mode 100644 ACE/examples/APG/Reactor/Timer_State_Data.cpp delete mode 100644 ACE/examples/APG/Reactor/Timers.cpp delete mode 100644 ACE/examples/APG/Reactor/reactor.mpc delete mode 100644 ACE/examples/APG/Shared_Memory/Hash_Map.cpp delete mode 100644 ACE/examples/APG/Shared_Memory/Makefile.am delete mode 100644 ACE/examples/APG/Shared_Memory/Malloc.cpp delete mode 100644 ACE/examples/APG/Shared_Memory/Mem_Map.cpp delete mode 100644 ACE/examples/APG/Shared_Memory/PI_Malloc.cpp delete mode 100644 ACE/examples/APG/Shared_Memory/Pool_Growth.cpp delete mode 100644 ACE/examples/APG/Shared_Memory/Record.h delete mode 100644 ACE/examples/APG/Shared_Memory/shared_memory.mpc delete mode 100644 ACE/examples/APG/Signals/Makefile.am delete mode 100644 ACE/examples/APG/Signals/SigAction.cpp delete mode 100644 ACE/examples/APG/Signals/SigGuard.cpp delete mode 100644 ACE/examples/APG/Signals/SigHandler.cpp delete mode 100644 ACE/examples/APG/Signals/SigHandlers.cpp delete mode 100644 ACE/examples/APG/Signals/SigInfo.cpp delete mode 100644 ACE/examples/APG/Signals/signals.mpc delete mode 100644 ACE/examples/APG/Sockets/Basic.cpp delete mode 100644 ACE/examples/APG/Sockets/Basic_Robust.cpp delete mode 100644 ACE/examples/APG/Sockets/Iovec.cpp delete mode 100644 ACE/examples/APG/Sockets/Makefile.am delete mode 100644 ACE/examples/APG/Sockets/Server.cpp delete mode 100644 ACE/examples/APG/Sockets/sockets.mpc delete mode 100644 ACE/examples/APG/Streams/Answerer.cpp delete mode 100644 ACE/examples/APG/Streams/BasicTask.h delete mode 100644 ACE/examples/APG/Streams/Command.h delete mode 100644 ACE/examples/APG/Streams/CommandModule.cpp delete mode 100644 ACE/examples/APG/Streams/CommandModule.h delete mode 100644 ACE/examples/APG/Streams/CommandStream.cpp delete mode 100644 ACE/examples/APG/Streams/CommandStream.h delete mode 100644 ACE/examples/APG/Streams/CommandTask.cpp delete mode 100644 ACE/examples/APG/Streams/CommandTask.h delete mode 100644 ACE/examples/APG/Streams/CommandTasks.cpp delete mode 100644 ACE/examples/APG/Streams/CommandTasks.h delete mode 100644 ACE/examples/APG/Streams/EndTask.h delete mode 100644 ACE/examples/APG/Streams/Makefile.am delete mode 100644 ACE/examples/APG/Streams/Message.h delete mode 100644 ACE/examples/APG/Streams/MessageInfo.h delete mode 100644 ACE/examples/APG/Streams/RecordingDevice.h delete mode 100644 ACE/examples/APG/Streams/RecordingDeviceFactory.cpp delete mode 100644 ACE/examples/APG/Streams/RecordingDeviceFactory.h delete mode 100644 ACE/examples/APG/Streams/RecordingDevice_QC.h delete mode 100644 ACE/examples/APG/Streams/RecordingDevice_Text.cpp delete mode 100644 ACE/examples/APG/Streams/RecordingDevice_Text.h delete mode 100644 ACE/examples/APG/Streams/RecordingDevice_USRVM.h delete mode 100644 ACE/examples/APG/Streams/Util.h delete mode 100644 ACE/examples/APG/Streams/streams.mpc delete mode 100644 ACE/examples/APG/Svc_Config/HASTATUS_export.h delete mode 100644 ACE/examples/APG/Svc_Config/HA_Configurable_Server_Dynamic.cpp delete mode 100644 ACE/examples/APG/Svc_Config/HA_Configurable_Server_Static.cpp delete mode 100644 ACE/examples/APG/Svc_Config/HA_Status_Dynamic.cpp delete mode 100644 ACE/examples/APG/Svc_Config/HA_Status_Dynamic.h delete mode 100644 ACE/examples/APG/Svc_Config/HA_Status_Static.cpp delete mode 100644 ACE/examples/APG/Svc_Config/HA_Status_Static.h delete mode 100644 ACE/examples/APG/Svc_Config/Makefile.am delete mode 100644 ACE/examples/APG/Svc_Config/status.ini delete mode 100644 ACE/examples/APG/Svc_Config/svc.conf.dynamic delete mode 100644 ACE/examples/APG/Svc_Config/svc.conf.static delete mode 100644 ACE/examples/APG/Svc_Config/svc_config.mpc delete mode 100644 ACE/examples/APG/ThreadManagement/Async_Cancel.cpp delete mode 100644 ACE/examples/APG/ThreadManagement/Coop_Cancel.cpp delete mode 100644 ACE/examples/APG/ThreadManagement/ExitHandler.cpp delete mode 100644 ACE/examples/APG/ThreadManagement/Makefile.am delete mode 100644 ACE/examples/APG/ThreadManagement/Pool.cpp delete mode 100644 ACE/examples/APG/ThreadManagement/Priorities.cpp delete mode 100644 ACE/examples/APG/ThreadManagement/SecurityContext.h delete mode 100644 ACE/examples/APG/ThreadManagement/Signals.cpp delete mode 100644 ACE/examples/APG/ThreadManagement/Signals2.cpp delete mode 100644 ACE/examples/APG/ThreadManagement/Start_Hook.cpp delete mode 100644 ACE/examples/APG/ThreadManagement/State.cpp delete mode 100644 ACE/examples/APG/ThreadManagement/threadmgmt.mpc delete mode 100644 ACE/examples/APG/ThreadPools/Futures.cpp delete mode 100644 ACE/examples/APG/ThreadPools/LF_ThreadPool.cpp delete mode 100644 ACE/examples/APG/ThreadPools/Makefile.am delete mode 100644 ACE/examples/APG/ThreadPools/Request_Handler.h delete mode 100644 ACE/examples/APG/ThreadPools/TP_Reactor.cpp delete mode 100644 ACE/examples/APG/ThreadPools/Task_ThreadPool.cpp delete mode 100644 ACE/examples/APG/ThreadPools/ThreadPool.cpp delete mode 100644 ACE/examples/APG/ThreadPools/threadpools.mpc delete mode 100644 ACE/examples/APG/ThreadSafety/Atomic_Op.cpp delete mode 100644 ACE/examples/APG/ThreadSafety/Barrier.cpp delete mode 100644 ACE/examples/APG/ThreadSafety/ClientContext.h delete mode 100644 ACE/examples/APG/ThreadSafety/Makefile.am delete mode 100644 ACE/examples/APG/ThreadSafety/Mutex.cpp delete mode 100644 ACE/examples/APG/ThreadSafety/RW_Lock.cpp delete mode 100644 ACE/examples/APG/ThreadSafety/Semaphore.cpp delete mode 100644 ACE/examples/APG/ThreadSafety/TSS.cpp delete mode 100644 ACE/examples/APG/ThreadSafety/Tokens.cpp delete mode 100644 ACE/examples/APG/ThreadSafety/Tokens_Deadlock.cpp delete mode 100644 ACE/examples/APG/ThreadSafety/threadsafety.mpc delete mode 100644 ACE/examples/APG/Threads/Activate.cpp delete mode 100644 ACE/examples/APG/Threads/Condition_Variables.cpp delete mode 100644 ACE/examples/APG/Threads/Guards.cpp delete mode 100644 ACE/examples/APG/Threads/Makefile.am delete mode 100644 ACE/examples/APG/Threads/Message_Blocks.cpp delete mode 100644 ACE/examples/APG/Threads/Message_Queue.cpp delete mode 100644 ACE/examples/APG/Threads/Message_Receiver.h delete mode 100644 ACE/examples/APG/Threads/Mutexes.cpp delete mode 100644 ACE/examples/APG/Threads/threads.mpc delete mode 100644 ACE/examples/APG/Timers/Alarm.cpp delete mode 100644 ACE/examples/APG/Timers/CB.cpp delete mode 100644 ACE/examples/APG/Timers/CB.h delete mode 100644 ACE/examples/APG/Timers/Makefile.am delete mode 100644 ACE/examples/APG/Timers/PCB.cpp delete mode 100644 ACE/examples/APG/Timers/PCB.h delete mode 100644 ACE/examples/APG/Timers/PTimerDispatcher.cpp delete mode 100644 ACE/examples/APG/Timers/PTimerDispatcher.h delete mode 100644 ACE/examples/APG/Timers/Task.cpp delete mode 100644 ACE/examples/APG/Timers/TimerDispatcher.cpp delete mode 100644 ACE/examples/APG/Timers/TimerDispatcher.h delete mode 100644 ACE/examples/APG/Timers/Timers.cpp delete mode 100644 ACE/examples/APG/Timers/Upcall.cpp delete mode 100644 ACE/examples/APG/Timers/Upcall.h delete mode 100644 ACE/examples/APG/Timers/timers.mpc delete mode 100644 ACE/examples/ASX/CCM_App/ASX_CCM_App.mpc delete mode 100644 ACE/examples/ASX/CCM_App/CCM_App.cpp delete mode 100644 ACE/examples/ASX/CCM_App/Makefile.am delete mode 100644 ACE/examples/ASX/CCM_App/SC_Client.cpp delete mode 100644 ACE/examples/ASX/CCM_App/SC_Server.cpp delete mode 100644 ACE/examples/ASX/CCM_App/svc.conf delete mode 100644 ACE/examples/ASX/CCM_App/svc.conf.xml delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Consumer_Router.h delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Event.mpc delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Event_Analyzer.h delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Makefile.am delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Options.cpp delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Options.h delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Options.inl delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Peer_Router.cpp delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Peer_Router.h delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/Supplier_Router.h delete mode 100644 ACE/examples/ASX/Event_Server/Event_Server/event_server.cpp delete mode 100644 ACE/examples/ASX/Event_Server/Makefile.am delete mode 100644 ACE/examples/ASX/Event_Server/README delete mode 100644 ACE/examples/ASX/Event_Server/Transceiver/Makefile.am delete mode 100644 ACE/examples/ASX/Event_Server/Transceiver/Transceiver.mpc delete mode 100644 ACE/examples/ASX/Event_Server/Transceiver/transceiver.cpp delete mode 100644 ACE/examples/ASX/Event_Server/Transceiver/transceiver.h delete mode 100644 ACE/examples/ASX/Makefile.am delete mode 100644 ACE/examples/ASX/Message_Queue/ASX_Message_Queue.mpc delete mode 100644 ACE/examples/ASX/Message_Queue/Makefile.am delete mode 100644 ACE/examples/ASX/Message_Queue/bounded_buffer.cpp delete mode 100644 ACE/examples/ASX/Message_Queue/buffer_stream.cpp delete mode 100644 ACE/examples/ASX/Message_Queue/priority_buffer.cpp delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.h delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Event_Analyzer.h delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Makefile.am delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Options.cpp delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Options.h delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Options.inl delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Peer_Router.cpp delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Peer_Router.h delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/Supplier_Router.h delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc delete mode 100644 ACE/examples/ASX/UPIPE_Event_Server/event_server.cpp delete mode 100644 ACE/examples/Bounded_Packet_Relay/BPR_Drivers.cpp delete mode 100644 ACE/examples/Bounded_Packet_Relay/BPR_Drivers.h delete mode 100644 ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.cpp delete mode 100644 ACE/examples/Bounded_Packet_Relay/BPR_Drivers_T.h delete mode 100644 ACE/examples/Bounded_Packet_Relay/Bounded_Packet_Relay.mpc delete mode 100644 ACE/examples/Bounded_Packet_Relay/Makefile.am delete mode 100644 ACE/examples/Bounded_Packet_Relay/README delete mode 100644 ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp delete mode 100644 ACE/examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h delete mode 100644 ACE/examples/Bounded_Packet_Relay/bpr_thread.cpp delete mode 100644 ACE/examples/C++NPv1/C++NPv1.mpc delete mode 100644 ACE/examples/C++NPv1/Iterative_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv1/Iterative_Logging_Server.h delete mode 100644 ACE/examples/C++NPv1/Logging_Client.cpp delete mode 100644 ACE/examples/C++NPv1/Logging_Handler.cpp delete mode 100644 ACE/examples/C++NPv1/Logging_Handler.h delete mode 100644 ACE/examples/C++NPv1/Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv1/Logging_Server.h delete mode 100644 ACE/examples/C++NPv1/Makefile.am delete mode 100644 ACE/examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv1/Process_Per_Connection_Logging_Server.h delete mode 100644 ACE/examples/C++NPv1/README delete mode 100644 ACE/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.h delete mode 100644 ACE/examples/C++NPv1/Reactive_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv1/Reactive_Logging_Server.h delete mode 100644 ACE/examples/C++NPv1/Reactive_Logging_Server_Ex.cpp delete mode 100644 ACE/examples/C++NPv1/Reactive_Logging_Server_Ex.h delete mode 100644 ACE/examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv1/Thread_Per_Connection_Logging_Server.h delete mode 100644 ACE/examples/C++NPv2/AC_CLD_export.h delete mode 100644 ACE/examples/C++NPv2/AC_Client_Logging_Daemon.cpp delete mode 100644 ACE/examples/C++NPv2/AC_Client_Logging_Daemon.h delete mode 100644 ACE/examples/C++NPv2/AIO_CLD_export.h delete mode 100644 ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.cpp delete mode 100644 ACE/examples/C++NPv2/AIO_Client_Logging_Daemon.h delete mode 100644 ACE/examples/C++NPv2/C++NPv2.mpc delete mode 100644 ACE/examples/C++NPv2/CLD_export.h delete mode 100644 ACE/examples/C++NPv2/Client_Logging_Daemon.cpp delete mode 100644 ACE/examples/C++NPv2/Configurable_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv2/Logging_Acceptor.cpp delete mode 100644 ACE/examples/C++NPv2/Logging_Acceptor.h delete mode 100644 ACE/examples/C++NPv2/Logging_Acceptor_Ex.h delete mode 100644 ACE/examples/C++NPv2/Logging_Event_Handler.cpp delete mode 100644 ACE/examples/C++NPv2/Logging_Event_Handler.h delete mode 100644 ACE/examples/C++NPv2/Logging_Event_Handler_Ex.cpp delete mode 100644 ACE/examples/C++NPv2/Logging_Event_Handler_Ex.h delete mode 100644 ACE/examples/C++NPv2/Logging_Handler.cpp delete mode 100644 ACE/examples/C++NPv2/Logging_Handler.h delete mode 100644 ACE/examples/C++NPv2/Makefile.am delete mode 100644 ACE/examples/C++NPv2/README delete mode 100644 ACE/examples/C++NPv2/Reactor_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp delete mode 100644 ACE/examples/C++NPv2/Reactor_Logging_Server_Adapter.h delete mode 100644 ACE/examples/C++NPv2/Reactor_Logging_Server_T.cpp delete mode 100644 ACE/examples/C++NPv2/Reactor_Logging_Server_T.h delete mode 100644 ACE/examples/C++NPv2/SLD.cpp delete mode 100644 ACE/examples/C++NPv2/SLDEX_export.h delete mode 100644 ACE/examples/C++NPv2/SLD_export.h delete mode 100644 ACE/examples/C++NPv2/SLDex.cpp delete mode 100644 ACE/examples/C++NPv2/SR_Configurable_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv2/Select_Reactor_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv2/Server_Shutdown.cpp delete mode 100644 ACE/examples/C++NPv2/Service_Reporter.cpp delete mode 100644 ACE/examples/C++NPv2/Service_Reporter.h delete mode 100644 ACE/examples/C++NPv2/TPCLS_export.h delete mode 100644 ACE/examples/C++NPv2/TPC_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv2/TPC_Logging_Server.h delete mode 100644 ACE/examples/C++NPv2/TPLS_export.h delete mode 100644 ACE/examples/C++NPv2/TP_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv2/TP_Logging_Server.h delete mode 100644 ACE/examples/C++NPv2/TP_Reactor_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp delete mode 100644 ACE/examples/C++NPv2/display_logfile.cpp delete mode 100644 ACE/examples/C++NPv2/svc.conf delete mode 100644 ACE/examples/ConfigViewer/ConfigTreeCtrl.cpp delete mode 100644 ACE/examples/ConfigViewer/ConfigTreeCtrl.h delete mode 100644 ACE/examples/ConfigViewer/ConfigViewer.mpc delete mode 100644 ACE/examples/ConfigViewer/ConfigurationViewer.cpp delete mode 100644 ACE/examples/ConfigViewer/ConfigurationViewer.rc delete mode 100644 ACE/examples/ConfigViewer/MainFrame.cpp delete mode 100644 ACE/examples/ConfigViewer/MainFrame.h delete mode 100644 ACE/examples/ConfigViewer/Makefile.am delete mode 100644 ACE/examples/ConfigViewer/README delete mode 100644 ACE/examples/ConfigViewer/ValueDlg.cpp delete mode 100644 ACE/examples/ConfigViewer/ValueDlg.h delete mode 100644 ACE/examples/ConfigViewer/ValueListCtrl.cpp delete mode 100644 ACE/examples/ConfigViewer/ValueListCtrl.h delete mode 100644 ACE/examples/ConfigViewer/mondrian.ico delete mode 100644 ACE/examples/ConfigViewer/mondrian.xpm delete mode 100644 ACE/examples/ConfigViewer/stdafx.cpp delete mode 100644 ACE/examples/ConfigViewer/stdafx.h delete mode 100644 ACE/examples/Connection/Makefile.am delete mode 100644 ACE/examples/Connection/blocking/Connection_Blocking.mpc delete mode 100644 ACE/examples/Connection/blocking/Makefile.am delete mode 100644 ACE/examples/Connection/blocking/README delete mode 100644 ACE/examples/Connection/blocking/SPIPE-acceptor.cpp delete mode 100644 ACE/examples/Connection/blocking/SPIPE-acceptor.h delete mode 100644 ACE/examples/Connection/blocking/SPIPE-connector.cpp delete mode 100644 ACE/examples/Connection/blocking/SPIPE-connector.h delete mode 100644 ACE/examples/Connection/blocking/test_spipe_acceptor.cpp delete mode 100644 ACE/examples/Connection/blocking/test_spipe_connector.cpp delete mode 100644 ACE/examples/Connection/misc/Connection_Handler.cpp delete mode 100644 ACE/examples/Connection/misc/Connection_Handler.h delete mode 100644 ACE/examples/Connection/misc/Connection_Misc.mpc delete mode 100644 ACE/examples/Connection/misc/Makefile.am delete mode 100644 ACE/examples/Connection/misc/test_upipe.cpp delete mode 100644 ACE/examples/Connection/misc/test_upipe.h delete mode 100644 ACE/examples/Connection/non_blocking/CPP-acceptor.cpp delete mode 100644 ACE/examples/Connection/non_blocking/CPP-acceptor.h delete mode 100644 ACE/examples/Connection/non_blocking/CPP-connector.cpp delete mode 100644 ACE/examples/Connection/non_blocking/CPP-connector.h delete mode 100644 ACE/examples/Connection/non_blocking/Connection_Non_Blocking.mpc delete mode 100644 ACE/examples/Connection/non_blocking/Makefile.am delete mode 100644 ACE/examples/Connection/non_blocking/README delete mode 100644 ACE/examples/Connection/non_blocking/test_lsock_acceptor.cpp delete mode 100644 ACE/examples/Connection/non_blocking/test_lsock_connector.cpp delete mode 100644 ACE/examples/Connection/non_blocking/test_sock_acceptor.cpp delete mode 100644 ACE/examples/Connection/non_blocking/test_sock_connector.cpp delete mode 100644 ACE/examples/Connection/non_blocking/test_spipe_acceptor.cpp delete mode 100644 ACE/examples/Connection/non_blocking/test_spipe_connector.cpp delete mode 100644 ACE/examples/Connection/non_blocking/test_tli_acceptor.cpp delete mode 100644 ACE/examples/Connection/non_blocking/test_tli_connector.cpp delete mode 100644 ACE/examples/DLL/DLL.mpc delete mode 100644 ACE/examples/DLL/Magazine.h delete mode 100644 ACE/examples/DLL/Makefile.am delete mode 100644 ACE/examples/DLL/Newsweek.cpp delete mode 100644 ACE/examples/DLL/Newsweek.h delete mode 100644 ACE/examples/DLL/README delete mode 100644 ACE/examples/DLL/Today.cpp delete mode 100644 ACE/examples/DLL/Today.h delete mode 100644 ACE/examples/DLL/test_dll.cpp delete mode 100644 ACE/examples/Export/Export.mpc delete mode 100644 ACE/examples/Export/Makefile.am delete mode 100644 ACE/examples/Export/README delete mode 100644 ACE/examples/Export/dll.cpp delete mode 100644 ACE/examples/Export/dll.h delete mode 100755 ACE/examples/Export/run_test.pl delete mode 100644 ACE/examples/Export/test.cpp delete mode 100644 ACE/examples/Export/test_export.h delete mode 100644 ACE/examples/IOStream/Makefile.am delete mode 100644 ACE/examples/IOStream/README delete mode 100644 ACE/examples/IOStream/client/IOStream_Client.mpc delete mode 100644 ACE/examples/IOStream/client/Makefile.am delete mode 100644 ACE/examples/IOStream/client/iostream_client.cpp delete mode 100644 ACE/examples/IOStream/server/IOStream_Server.mpc delete mode 100644 ACE/examples/IOStream/server/Makefile.am delete mode 100644 ACE/examples/IOStream/server/iostream_server.cpp delete mode 100644 ACE/examples/IOStream/server/iostream_server.h delete mode 100644 ACE/examples/IPC_SAP/ATM_SAP/CPP-client.cpp delete mode 100644 ACE/examples/IPC_SAP/ATM_SAP/CPP-server.cpp delete mode 100644 ACE/examples/IPC_SAP/ATM_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/ATM_SAP/atm_sap.mpc delete mode 100644 ACE/examples/IPC_SAP/DEV_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/DEV_SAP/README delete mode 100644 ACE/examples/IPC_SAP/DEV_SAP/reader/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc delete mode 100644 ACE/examples/IPC_SAP/DEV_SAP/reader/reader.cpp delete mode 100644 ACE/examples/IPC_SAP/DEV_SAP/writer/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc delete mode 100644 ACE/examples/IPC_SAP/DEV_SAP/writer/writer.cpp delete mode 100644 ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp delete mode 100644 ACE/examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp delete mode 100644 ACE/examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp delete mode 100644 ACE/examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp delete mode 100644 ACE/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp delete mode 100644 ACE/examples/IPC_SAP/FIFO_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc delete mode 100644 ACE/examples/IPC_SAP/FILE_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/FILE_SAP/client.cpp delete mode 100644 ACE/examples/IPC_SAP/FILE_SAP/file_sap_client.mpc delete mode 100644 ACE/examples/IPC_SAP/FILE_SAP/testfile delete mode 100644 ACE/examples/IPC_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/C-inclient.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-inclient.h delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.h delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/README delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/local_data delete mode 100755 ACE/examples/IPC_SAP/SOCK_SAP/run_test delete mode 100644 ACE/examples/IPC_SAP/SOCK_SAP/sock_sap.mpc delete mode 100755 ACE/examples/IPC_SAP/SOCK_SAP/summarize delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/NPClient.cpp delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/NPServer.cpp delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/SPIPE_SAP.mpc delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/client.cpp delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/producer_read.cpp delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/server.cpp delete mode 100644 ACE/examples/IPC_SAP/SPIPE_SAP/shared.h delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/README delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL-client-simple.h delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL-client.cpp delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL-client.h delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL-server-fancy.h delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL-server.cpp delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/dummy.pem delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/key.pem delete mode 100644 ACE/examples/IPC_SAP/SSL_SAP/local_data delete mode 100755 ACE/examples/IPC_SAP/SSL_SAP/summarize delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/CPP-client.cpp delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/CPP-server.cpp delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/TLI_SAP.mpc delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/db-client.cpp delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/db-server.cpp delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/ftp-client.cpp delete mode 100644 ACE/examples/IPC_SAP/TLI_SAP/ftp-server.cpp delete mode 100644 ACE/examples/IPC_SAP/UPIPE_SAP/Makefile.am delete mode 100644 ACE/examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc delete mode 100644 ACE/examples/IPC_SAP/UPIPE_SAP/ex1.cpp delete mode 100644 ACE/examples/IPC_SAP/UPIPE_SAP/ex2.cpp delete mode 100644 ACE/examples/IPC_SAP/UPIPE_SAP/ex3.cpp delete mode 100644 ACE/examples/Log_Msg/Log_Msg.mpc delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.cpp delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.h delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.mpc delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.rc delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.h delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/MFC_Log.h delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/README delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/Resource.h delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/StdAfx.cpp delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/StdAfx.h delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.ico delete mode 100644 ACE/examples/Log_Msg/Log_Msg_MFC/res/Log_Msg_MFC.rc2 delete mode 100644 ACE/examples/Log_Msg/Makefile.am delete mode 100644 ACE/examples/Log_Msg/README delete mode 100644 ACE/examples/Log_Msg/test_callback.cpp delete mode 100644 ACE/examples/Log_Msg/test_log_msg.cpp delete mode 100644 ACE/examples/Log_Msg/test_ostream.cpp delete mode 100644 ACE/examples/Logger/Acceptor-server/Logger_Acceptor_Server.mpc delete mode 100644 ACE/examples/Logger/Acceptor-server/Makefile.am delete mode 100644 ACE/examples/Logger/Acceptor-server/server_loggerd.cpp delete mode 100644 ACE/examples/Logger/Acceptor-server/server_loggerd.h delete mode 100644 ACE/examples/Logger/Makefile.am delete mode 100644 ACE/examples/Logger/README delete mode 100644 ACE/examples/Logger/client/Logger_client.mpc delete mode 100644 ACE/examples/Logger/client/Makefile.am delete mode 100644 ACE/examples/Logger/client/logging_app.cpp delete mode 100644 ACE/examples/Logger/simple-server/Logger_Simple_Server.mpc delete mode 100644 ACE/examples/Logger/simple-server/Logging_Acceptor.cpp delete mode 100644 ACE/examples/Logger/simple-server/Logging_Acceptor.h delete mode 100644 ACE/examples/Logger/simple-server/Logging_Handler.cpp delete mode 100644 ACE/examples/Logger/simple-server/Logging_Handler.h delete mode 100644 ACE/examples/Logger/simple-server/Makefile.am delete mode 100644 ACE/examples/Logger/simple-server/Reactor_Singleton.h delete mode 100644 ACE/examples/Logger/simple-server/server_loggerd.cpp delete mode 100644 ACE/examples/Makefile.am delete mode 100644 ACE/examples/Map_Manager/Makefile.am delete mode 100644 ACE/examples/Map_Manager/Map_Manager.mpc delete mode 100644 ACE/examples/Map_Manager/test_hash_map_manager.cpp delete mode 100644 ACE/examples/Mem_Map/IO-tests/IO_Test.cpp delete mode 100644 ACE/examples/Mem_Map/IO-tests/IO_Test.h delete mode 100644 ACE/examples/Mem_Map/IO-tests/Makefile.am delete mode 100644 ACE/examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc delete mode 100644 ACE/examples/Mem_Map/IO-tests/test_io.cpp delete mode 100644 ACE/examples/Mem_Map/Makefile.am delete mode 100644 ACE/examples/Mem_Map/file-reverse/Makefile.am delete mode 100644 ACE/examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc delete mode 100644 ACE/examples/Mem_Map/file-reverse/file-reverse.cpp delete mode 100644 ACE/examples/Misc/Makefile.am delete mode 100644 ACE/examples/Misc/Misc.mpc delete mode 100644 ACE/examples/Misc/test_XtReactor1.cpp delete mode 100644 ACE/examples/Misc/test_XtReactor2.cpp delete mode 100644 ACE/examples/Misc/test_dump.cpp delete mode 100644 ACE/examples/Misc/test_dump.h delete mode 100644 ACE/examples/Misc/test_get_opt.cpp delete mode 100644 ACE/examples/Misc/test_profile_timer.cpp delete mode 100644 ACE/examples/Misc/test_read_buffer.cpp delete mode 100644 ACE/examples/Misc/test_set.cpp delete mode 100644 ACE/examples/Misc/test_sstring.cpp delete mode 100644 ACE/examples/Misc/test_timestamp.cpp delete mode 100644 ACE/examples/Misc/test_trace.cpp delete mode 100644 ACE/examples/NT_Service/Makefile.am delete mode 100644 ACE/examples/NT_Service/NT_Service.mpc delete mode 100644 ACE/examples/NT_Service/README delete mode 100644 ACE/examples/NT_Service/main.cpp delete mode 100644 ACE/examples/NT_Service/ntsvc.cpp delete mode 100644 ACE/examples/NT_Service/ntsvc.h delete mode 100644 ACE/examples/Naming/Makefile.am delete mode 100644 ACE/examples/Naming/Naming.mpc delete mode 100644 ACE/examples/Naming/test_multiple_contexts.cpp delete mode 100644 ACE/examples/Naming/test_non_existent.cpp delete mode 100644 ACE/examples/Naming/test_open.cpp delete mode 100644 ACE/examples/Naming/test_writers.cpp delete mode 100644 ACE/examples/OS/Makefile.am delete mode 100644 ACE/examples/OS/Process/Makefile.am delete mode 100644 ACE/examples/OS/Process/OS_Process.mpc delete mode 100644 ACE/examples/OS/Process/README delete mode 100644 ACE/examples/OS/Process/imore.cpp delete mode 100644 ACE/examples/OS/Process/process.cpp delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/Makefile.am delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/QOS_Change_Receiver_FlowSpec.mpc delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.cpp delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.h delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/QoS_Util.h delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/README delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/receiver.cpp delete mode 100644 ACE/examples/QOS/Change_Receiver_FlowSpec/sender.cpp delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/FlowSpec_Dbase.h delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/Makefile.am delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/QOS_Change_Sender_TSpec.mpc delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.cpp delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.h delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.cpp delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/QoS_Util.h delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/README delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/receiver.cpp delete mode 100644 ACE/examples/QOS/Change_Sender_TSpec/sender.cpp delete mode 100644 ACE/examples/QOS/Diffserv/Makefile.am delete mode 100644 ACE/examples/QOS/Diffserv/NOTES.txt delete mode 100644 ACE/examples/QOS/Diffserv/QOS_Diffserv.mpc delete mode 100644 ACE/examples/QOS/Diffserv/README delete mode 100644 ACE/examples/QOS/Diffserv/diffserv_test.cpp delete mode 100755 ACE/examples/QOS/Diffserv/run_test.pl delete mode 100644 ACE/examples/QOS/Diffserv/server.cpp delete mode 100644 ACE/examples/QOS/Makefile.am delete mode 100644 ACE/examples/QOS/Simple/Fill_ACE_QoS.cpp delete mode 100644 ACE/examples/QOS/Simple/Fill_ACE_QoS.h delete mode 100644 ACE/examples/QOS/Simple/FlowSpec_Dbase.h delete mode 100644 ACE/examples/QOS/Simple/Makefile.am delete mode 100644 ACE/examples/QOS/Simple/QOS_Simple.mpc delete mode 100644 ACE/examples/QOS/Simple/QoS_Signal_Handler.cpp delete mode 100644 ACE/examples/QOS/Simple/QoS_Signal_Handler.h delete mode 100644 ACE/examples/QOS/Simple/QoS_Util.cpp delete mode 100644 ACE/examples/QOS/Simple/QoS_Util.h delete mode 100644 ACE/examples/QOS/Simple/README delete mode 100644 ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp delete mode 100644 ACE/examples/QOS/Simple/Receiver_QoS_Event_Handler.h delete mode 100644 ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.cpp delete mode 100644 ACE/examples/QOS/Simple/Sender_QoS_Event_Handler.h delete mode 100644 ACE/examples/QOS/Simple/receiver.cpp delete mode 100644 ACE/examples/QOS/Simple/sender.cpp delete mode 100644 ACE/examples/README delete mode 100644 ACE/examples/Reactor/Dgram/CODgram.cpp delete mode 100644 ACE/examples/Reactor/Dgram/Dgram.cpp delete mode 100644 ACE/examples/Reactor/Dgram/Makefile.am delete mode 100644 ACE/examples/Reactor/Dgram/Reactor_Dgram.mpc delete mode 100644 ACE/examples/Reactor/FIFO/Makefile.am delete mode 100644 ACE/examples/Reactor/FIFO/Reactor_FIFO.mpc delete mode 100644 ACE/examples/Reactor/FIFO/client.cpp delete mode 100644 ACE/examples/Reactor/FIFO/server.cpp delete mode 100644 ACE/examples/Reactor/Makefile.am delete mode 100644 ACE/examples/Reactor/Misc/Makefile.am delete mode 100644 ACE/examples/Reactor/Misc/Reactor_Misc.mpc delete mode 100644 ACE/examples/Reactor/Misc/notification.cpp delete mode 100644 ACE/examples/Reactor/Misc/pingpong.cpp delete mode 100644 ACE/examples/Reactor/Misc/test_demuxing.cpp delete mode 100644 ACE/examples/Reactor/Misc/test_early_timeouts.cpp delete mode 100644 ACE/examples/Reactor/Misc/test_event_handler_t.cpp delete mode 100644 ACE/examples/Reactor/Misc/test_reactors.cpp delete mode 100644 ACE/examples/Reactor/Misc/test_signals_1.cpp delete mode 100644 ACE/examples/Reactor/Misc/test_signals_2.cpp delete mode 100644 ACE/examples/Reactor/Misc/test_time_value.cpp delete mode 100644 ACE/examples/Reactor/Misc/test_timer_queue.cpp delete mode 100644 ACE/examples/Reactor/Multicast/Log_Wrapper.cpp delete mode 100644 ACE/examples/Reactor/Multicast/Log_Wrapper.h delete mode 100644 ACE/examples/Reactor/Multicast/Makefile.am delete mode 100644 ACE/examples/Reactor/Multicast/README delete mode 100644 ACE/examples/Reactor/Multicast/Reactor_Multicast.mpc delete mode 100644 ACE/examples/Reactor/Multicast/client.cpp delete mode 100644 ACE/examples/Reactor/Multicast/server.cpp delete mode 100644 ACE/examples/Reactor/Ntalker/Makefile.am delete mode 100644 ACE/examples/Reactor/Ntalker/README delete mode 100644 ACE/examples/Reactor/Ntalker/Reactor_Ntalker.mpc delete mode 100644 ACE/examples/Reactor/Ntalker/ntalker.cpp delete mode 100644 ACE/examples/Reactor/Proactor/Aio_Platform_Test_C.cpp delete mode 100644 ACE/examples/Reactor/Proactor/Makefile.am delete mode 100644 ACE/examples/Reactor/Proactor/Proactor.mpc delete mode 100644 ACE/examples/Reactor/Proactor/README delete mode 100644 ACE/examples/Reactor/Proactor/post_completions.cpp delete mode 100644 ACE/examples/Reactor/Proactor/simple_test_proactor.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_aiocb.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_aiocb_ace.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_aiosig.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_aiosig_ace.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_cancel.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_cancel.h delete mode 100644 ACE/examples/Reactor/Proactor/test_end_event_loop.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_multiple_loops.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_proactor.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_proactor.h delete mode 100644 ACE/examples/Reactor/Proactor/test_proactor2.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_proactor3.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_timeout.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_timeout_st.cpp delete mode 100644 ACE/examples/Reactor/Proactor/test_udp_proactor.cpp delete mode 100644 ACE/examples/Reactor/README delete mode 100644 ACE/examples/Reactor/TP_Reactor/AcceptHandler.cpp delete mode 100644 ACE/examples/Reactor/TP_Reactor/AcceptHandler.h delete mode 100644 ACE/examples/Reactor/TP_Reactor/Makefile.am delete mode 100644 ACE/examples/Reactor/TP_Reactor/README delete mode 100644 ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp delete mode 100644 ACE/examples/Reactor/TP_Reactor/ReadHandler.h delete mode 100644 ACE/examples/Reactor/TP_Reactor/TP_Reactor.mpc delete mode 100644 ACE/examples/Reactor/TP_Reactor/client.cpp delete mode 100644 ACE/examples/Reactor/TP_Reactor/common.h delete mode 100644 ACE/examples/Reactor/TP_Reactor/run_test.pl delete mode 100644 ACE/examples/Reactor/TP_Reactor/server.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/APC.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Abandoned.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Console_Input.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Directory_Changes.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Exceptions.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Handle_Close.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Makefile.am delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Multithreading.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Network_Events.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Registration.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Registry_Changes.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Removals.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Talker.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Timeouts.cpp delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc delete mode 100644 ACE/examples/Reactor/WFMO_Reactor/Window_Messages.cpp delete mode 100755 ACE/examples/Reactor/WFMO_Reactor/run_test.pl delete mode 100644 ACE/examples/Registry/Makefile.am delete mode 100644 ACE/examples/Registry/Registry.mpc delete mode 100644 ACE/examples/Registry/test_registry_iterator.cpp delete mode 100644 ACE/examples/Registry/test_registry_update.cpp delete mode 100644 ACE/examples/Semaphores/README delete mode 100644 ACE/examples/Semaphores/Semaphores.mpc delete mode 100644 ACE/examples/Semaphores/starter.cpp delete mode 100644 ACE/examples/Semaphores/worker.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/Makefile.am delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/README delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/Makefile.am delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/Svc_Cfg_IPC_Client.mpc delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/local_data delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/remote_data delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/remote_data1 delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/remote_data2 delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/remote_data3 delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/remote_data4 delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.inl delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Makefile.am delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp delete mode 100644 ACE/examples/Service_Configurator/IPC-tests/server/svc.conf delete mode 100644 ACE/examples/Service_Configurator/Makefile.am delete mode 100644 ACE/examples/Service_Configurator/Misc/Makefile.am delete mode 100644 ACE/examples/Service_Configurator/Misc/README delete mode 100644 ACE/examples/Service_Configurator/Misc/Service_Configurator_Misc.mpc delete mode 100644 ACE/examples/Service_Configurator/Misc/Timer_Service.cpp delete mode 100644 ACE/examples/Service_Configurator/Misc/Timer_Service.h delete mode 100644 ACE/examples/Service_Configurator/Misc/main.cpp delete mode 100644 ACE/examples/Service_Configurator/Misc/svc.conf1 delete mode 100644 ACE/examples/Service_Configurator/Misc/svc.conf2 delete mode 100644 ACE/examples/Shared_Malloc/Makefile.am delete mode 100644 ACE/examples/Shared_Malloc/Malloc.cpp delete mode 100644 ACE/examples/Shared_Malloc/Malloc.h delete mode 100644 ACE/examples/Shared_Malloc/Options.cpp delete mode 100644 ACE/examples/Shared_Malloc/Options.h delete mode 100644 ACE/examples/Shared_Malloc/Shared_Malloc.mpc delete mode 100644 ACE/examples/Shared_Malloc/test_malloc.cpp delete mode 100644 ACE/examples/Shared_Malloc/test_multiple_mallocs.cpp delete mode 100644 ACE/examples/Shared_Malloc/test_persistence.cpp delete mode 100644 ACE/examples/Shared_Malloc/test_position_independent_malloc.cpp delete mode 100644 ACE/examples/Shared_Malloc/test_position_independent_malloc.h delete mode 100644 ACE/examples/Shared_Memory/Makefile.am delete mode 100644 ACE/examples/Shared_Memory/Shared_Memory.mpc delete mode 100644 ACE/examples/Shared_Memory/test_MM.cpp delete mode 100644 ACE/examples/Shared_Memory/test_SV.cpp delete mode 100644 ACE/examples/Smart_Pointers/Gadget.cpp delete mode 100644 ACE/examples/Smart_Pointers/Gadget.h delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Factory.cpp delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Factory.h delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Impl.cpp delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Impl.h delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Part.cpp delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Part.h delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Part_Factory.cpp delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Part_Factory.h delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Part_Impl.cpp delete mode 100644 ACE/examples/Smart_Pointers/Gadget_Part_Impl.h delete mode 100644 ACE/examples/Smart_Pointers/Makefile.am delete mode 100644 ACE/examples/Smart_Pointers/README delete mode 100644 ACE/examples/Smart_Pointers/Smart_Pointers.mpc delete mode 100644 ACE/examples/Smart_Pointers/Widget.cpp delete mode 100644 ACE/examples/Smart_Pointers/Widget.h delete mode 100644 ACE/examples/Smart_Pointers/Widget_Factory.cpp delete mode 100644 ACE/examples/Smart_Pointers/Widget_Factory.h delete mode 100644 ACE/examples/Smart_Pointers/Widget_Impl.cpp delete mode 100644 ACE/examples/Smart_Pointers/Widget_Impl.h delete mode 100644 ACE/examples/Smart_Pointers/Widget_Part.cpp delete mode 100644 ACE/examples/Smart_Pointers/Widget_Part.h delete mode 100644 ACE/examples/Smart_Pointers/Widget_Part_Factory.cpp delete mode 100644 ACE/examples/Smart_Pointers/Widget_Part_Factory.h delete mode 100644 ACE/examples/Smart_Pointers/Widget_Part_Impl.cpp delete mode 100644 ACE/examples/Smart_Pointers/Widget_Part_Impl.h delete mode 100644 ACE/examples/Smart_Pointers/gadget_test.cpp delete mode 100644 ACE/examples/Smart_Pointers/widget_test.cpp delete mode 100644 ACE/examples/Synch/Makefile.am delete mode 100644 ACE/examples/Synch/README delete mode 100644 ACE/examples/Synch/Synch.mpc delete mode 100644 ACE/examples/Synch/proc_sema.cpp delete mode 100644 ACE/examples/System_V_IPC/Makefile.am delete mode 100644 ACE/examples/System_V_IPC/README delete mode 100644 ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp delete mode 100644 ACE/examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp delete mode 100644 ACE/examples/System_V_IPC/SV_Message_Queues/Makefile.am delete mode 100644 ACE/examples/System_V_IPC/SV_Message_Queues/SV_Message_Queues.mpc delete mode 100644 ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp delete mode 100644 ACE/examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp delete mode 100644 ACE/examples/System_V_IPC/SV_Message_Queues/test.h delete mode 100644 ACE/examples/System_V_IPC/SV_Semaphores/Makefile.am delete mode 100644 ACE/examples/System_V_IPC/SV_Semaphores/SV_Semaphores.mpc delete mode 100644 ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp delete mode 100644 ACE/examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp delete mode 100644 ACE/examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp delete mode 100644 ACE/examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.h delete mode 100644 ACE/examples/Threads/Makefile.am delete mode 100644 ACE/examples/Threads/TSS_Data.h delete mode 100644 ACE/examples/Threads/TSS_Obj.h delete mode 100644 ACE/examples/Threads/TSS_Task.h delete mode 100644 ACE/examples/Threads/Threads.mpc delete mode 100644 ACE/examples/Threads/auto_event.cpp delete mode 100644 ACE/examples/Threads/barrier1.cpp delete mode 100644 ACE/examples/Threads/barrier2.cpp delete mode 100644 ACE/examples/Threads/cancel.cpp delete mode 100644 ACE/examples/Threads/future1.cpp delete mode 100644 ACE/examples/Threads/future2.cpp delete mode 100644 ACE/examples/Threads/manual_event.cpp delete mode 100644 ACE/examples/Threads/process_manager.cpp delete mode 100644 ACE/examples/Threads/process_mutex.cpp delete mode 100644 ACE/examples/Threads/process_semaphore.cpp delete mode 100644 ACE/examples/Threads/reader_writer.cpp delete mode 100644 ACE/examples/Threads/recursive_mutex.cpp delete mode 100644 ACE/examples/Threads/task_five.cpp delete mode 100644 ACE/examples/Threads/task_four.cpp delete mode 100644 ACE/examples/Threads/task_one.cpp delete mode 100644 ACE/examples/Threads/task_three.cpp delete mode 100644 ACE/examples/Threads/task_two.cpp delete mode 100644 ACE/examples/Threads/thread_manager.cpp delete mode 100644 ACE/examples/Threads/thread_pool.cpp delete mode 100644 ACE/examples/Threads/thread_specific.cpp delete mode 100644 ACE/examples/Threads/thread_specific.h delete mode 100644 ACE/examples/Threads/token.cpp delete mode 100644 ACE/examples/Threads/tss1.cpp delete mode 100644 ACE/examples/Threads/tss2.cpp delete mode 100644 ACE/examples/Threads/wfmo.cpp delete mode 100644 ACE/examples/Timer_Queue/Async_Timer_Queue_Test.cpp delete mode 100644 ACE/examples/Timer_Queue/Async_Timer_Queue_Test.h delete mode 100644 ACE/examples/Timer_Queue/Driver.cpp delete mode 100644 ACE/examples/Timer_Queue/Driver.h delete mode 100644 ACE/examples/Timer_Queue/Makefile.am delete mode 100644 ACE/examples/Timer_Queue/README delete mode 100644 ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp delete mode 100644 ACE/examples/Timer_Queue/Reactor_Timer_Queue_Test.h delete mode 100644 ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp delete mode 100644 ACE/examples/Timer_Queue/Thread_Timer_Queue_Test.h delete mode 100644 ACE/examples/Timer_Queue/Timer_Queue.mpc delete mode 100644 ACE/examples/Timer_Queue/main_async.cpp delete mode 100644 ACE/examples/Timer_Queue/main_reactor.cpp delete mode 100644 ACE/examples/Timer_Queue/main_thread.cpp delete mode 100644 ACE/examples/Web_Crawler/Command_Processor.cpp delete mode 100644 ACE/examples/Web_Crawler/Command_Processor.h delete mode 100644 ACE/examples/Web_Crawler/HTTP_URL.cpp delete mode 100644 ACE/examples/Web_Crawler/HTTP_URL.h delete mode 100644 ACE/examples/Web_Crawler/Iterators.cpp delete mode 100644 ACE/examples/Web_Crawler/Iterators.h delete mode 100644 ACE/examples/Web_Crawler/Makefile.am delete mode 100644 ACE/examples/Web_Crawler/Mem_Map_Stream.cpp delete mode 100644 ACE/examples/Web_Crawler/Mem_Map_Stream.h delete mode 100644 ACE/examples/Web_Crawler/Options.cpp delete mode 100644 ACE/examples/Web_Crawler/Options.h delete mode 100644 ACE/examples/Web_Crawler/README delete mode 100644 ACE/examples/Web_Crawler/URL.cpp delete mode 100644 ACE/examples/Web_Crawler/URL.h delete mode 100644 ACE/examples/Web_Crawler/URL_Addr.cpp delete mode 100644 ACE/examples/Web_Crawler/URL_Addr.h delete mode 100644 ACE/examples/Web_Crawler/URL_Status.cpp delete mode 100644 ACE/examples/Web_Crawler/URL_Status.h delete mode 100644 ACE/examples/Web_Crawler/URL_Visitor.cpp delete mode 100644 ACE/examples/Web_Crawler/URL_Visitor.h delete mode 100644 ACE/examples/Web_Crawler/URL_Visitor_Factory.cpp delete mode 100644 ACE/examples/Web_Crawler/URL_Visitor_Factory.h delete mode 100644 ACE/examples/Web_Crawler/Web_Crawler.cpp delete mode 100644 ACE/examples/Web_Crawler/Web_Crawler.h delete mode 100644 ACE/examples/Web_Crawler/Web_Crawler.mpc delete mode 100644 ACE/examples/Web_Crawler/main.cpp delete mode 100644 ACE/examples/example_base.mpb delete mode 100644 ACE/examples/examples.mwc delete mode 100644 ACE/html/README delete mode 100644 ACE/html/Stats/Stats.css delete mode 100644 ACE/html/Stats/compilation.shtml delete mode 100644 ACE/html/Stats/configuration.shtml delete mode 100644 ACE/html/Stats/detailed_footprint.shtml delete mode 100644 ACE/html/Stats/detailed_performance.shtml delete mode 100644 ACE/html/Stats/footer.html delete mode 100644 ACE/html/Stats/footprint.shtml delete mode 100644 ACE/html/Stats/img.html delete mode 100644 ACE/html/Stats/index.shtml delete mode 100644 ACE/html/Stats/navigation.html delete mode 100644 ACE/html/Stats/performance.shtml delete mode 100644 ACE/html/Stats/simple_footprint.shtml delete mode 100644 ACE/html/doxygen.css delete mode 100644 ACE/html/index.html delete mode 100644 ACE/include/makeinclude/all_in_one.GNU delete mode 100644 ACE/include/makeinclude/build_dll.bor delete mode 100644 ACE/include/makeinclude/build_exe.bor delete mode 100644 ACE/include/makeinclude/build_lib.bor delete mode 100644 ACE/include/makeinclude/build_library.bor delete mode 100644 ACE/include/makeinclude/clean.bor delete mode 100644 ACE/include/makeinclude/compiler.bor delete mode 100644 ACE/include/makeinclude/component_check.GNU delete mode 100644 ACE/include/makeinclude/decorator.bor delete mode 100644 ACE/include/makeinclude/install.bor delete mode 100644 ACE/include/makeinclude/macros.GNU delete mode 100644 ACE/include/makeinclude/make_flags.bor delete mode 100644 ACE/include/makeinclude/outputdir.bor delete mode 100644 ACE/include/makeinclude/platform_aix.GNU delete mode 100644 ACE/include/makeinclude/platform_aix_g++.GNU delete mode 100644 ACE/include/makeinclude/platform_aix_ibm.GNU delete mode 100644 ACE/include/makeinclude/platform_cray.GNU delete mode 100644 ACE/include/makeinclude/platform_cygwin32.GNU delete mode 100644 ACE/include/makeinclude/platform_freebsd.GNU delete mode 100644 ACE/include/makeinclude/platform_g++_common.GNU delete mode 100644 ACE/include/makeinclude/platform_gnuwin32_common.GNU delete mode 100644 ACE/include/makeinclude/platform_hpux_aCC.GNU delete mode 100644 ACE/include/makeinclude/platform_hpux_gcc.GNU delete mode 100644 ACE/include/makeinclude/platform_integrity_ghs.GNU delete mode 100644 ACE/include/makeinclude/platform_irix6.x_common.GNU delete mode 100644 ACE/include/makeinclude/platform_irix6.x_g++.GNU delete mode 100644 ACE/include/makeinclude/platform_irix6.x_sgic++.GNU delete mode 100644 ACE/include/makeinclude/platform_linux.GNU delete mode 100644 ACE/include/makeinclude/platform_linux_common.GNU delete mode 100644 ACE/include/makeinclude/platform_linux_icc.GNU delete mode 100644 ACE/include/makeinclude/platform_linux_pgi.GNU delete mode 100644 ACE/include/makeinclude/platform_linux_suncc.GNU delete mode 100644 ACE/include/makeinclude/platform_lynxos.GNU delete mode 100644 ACE/include/makeinclude/platform_macosx.GNU delete mode 100644 ACE/include/makeinclude/platform_macosx_leopard.GNU delete mode 100644 ACE/include/makeinclude/platform_macosx_panther.GNU delete mode 100644 ACE/include/makeinclude/platform_macosx_tiger.GNU delete mode 100644 ACE/include/makeinclude/platform_mingw32.GNU delete mode 100644 ACE/include/makeinclude/platform_mvs.GNU delete mode 100644 ACE/include/makeinclude/platform_netbsd.GNU delete mode 100644 ACE/include/makeinclude/platform_openbsd.GNU delete mode 100644 ACE/include/makeinclude/platform_openvms.GNU delete mode 100644 ACE/include/makeinclude/platform_qnx_neutrino.GNU delete mode 100644 ACE/include/makeinclude/platform_qnx_rtp_gcc.GNU delete mode 100644 ACE/include/makeinclude/platform_rtems.x_g++.GNU delete mode 100644 ACE/include/makeinclude/platform_sunos5_common.GNU delete mode 100644 ACE/include/makeinclude/platform_sunos5_g++.GNU delete mode 100644 ACE/include/makeinclude/platform_sunos5_sunc++.GNU delete mode 100644 ACE/include/makeinclude/platform_tandem.GNU delete mode 100644 ACE/include/makeinclude/platform_tru64_cxx.GNU delete mode 100644 ACE/include/makeinclude/platform_tru64_g++.GNU delete mode 100644 ACE/include/makeinclude/platform_tru64_post.GNU delete mode 100644 ACE/include/makeinclude/platform_tru64_pre.GNU delete mode 100644 ACE/include/makeinclude/platform_unixware_g++.GNU delete mode 100644 ACE/include/makeinclude/platform_vxworks.GNU delete mode 100644 ACE/include/makeinclude/platform_vxworks5.5.x.GNU delete mode 100644 ACE/include/makeinclude/platform_vxworks6.2.GNU delete mode 100644 ACE/include/makeinclude/platform_vxworks6.3.GNU delete mode 100644 ACE/include/makeinclude/platform_vxworks6.4.GNU delete mode 100644 ACE/include/makeinclude/platform_vxworks6.5.GNU delete mode 100644 ACE/include/makeinclude/platform_vxworks6.6.GNU delete mode 100644 ACE/include/makeinclude/platform_win32_dmc.GNU delete mode 100644 ACE/include/makeinclude/platform_win32_icc.GNU delete mode 100644 ACE/include/makeinclude/platform_win32_interix.GNU delete mode 100644 ACE/include/makeinclude/rules.bin.GNU delete mode 100644 ACE/include/makeinclude/rules.common.GNU delete mode 100644 ACE/include/makeinclude/rules.lib.GNU delete mode 100644 ACE/include/makeinclude/rules.local.GNU delete mode 100644 ACE/include/makeinclude/rules.nested.GNU delete mode 100644 ACE/include/makeinclude/rules.nolocal.GNU delete mode 100644 ACE/include/makeinclude/rules.nonested.GNU delete mode 100644 ACE/include/makeinclude/wrapper_macros.GNU delete mode 100644 ACE/lib/.empty delete mode 100644 ACE/m4/ace.m4 delete mode 100644 ACE/m4/ace_defines.m4 delete mode 100644 ACE/m4/ace_func.m4 delete mode 100644 ACE/m4/ace_functions.m4 delete mode 100644 ACE/m4/ace_headers.m4 delete mode 100644 ACE/m4/acinclude.m4 delete mode 100644 ACE/m4/aio.m4 delete mode 100644 ACE/m4/compiler.m4 delete mode 100644 ACE/m4/config_h.m4 delete mode 100644 ACE/m4/pkg.m4 delete mode 100644 ACE/m4/platform.m4 delete mode 100644 ACE/m4/subsets.m4 delete mode 100644 ACE/m4/threads.m4 delete mode 100644 ACE/m4/tls.m4 delete mode 100644 ACE/netsvcs/ACE-netsvcs.html delete mode 100644 ACE/netsvcs/Makefile.am delete mode 100644 ACE/netsvcs/README delete mode 100644 ACE/netsvcs/clients/Logger/Logger.mpc delete mode 100644 ACE/netsvcs/clients/Logger/Makefile.am delete mode 100644 ACE/netsvcs/clients/Logger/README delete mode 100644 ACE/netsvcs/clients/Logger/direct_logging.cpp delete mode 100644 ACE/netsvcs/clients/Logger/indirect_logging.cpp delete mode 100644 ACE/netsvcs/clients/Makefile.am delete mode 100644 ACE/netsvcs/clients/Naming/Client/Client.mpc delete mode 100644 ACE/netsvcs/clients/Naming/Client/Client_Test.cpp delete mode 100644 ACE/netsvcs/clients/Naming/Client/Client_Test.h delete mode 100644 ACE/netsvcs/clients/Naming/Client/Makefile.am delete mode 100644 ACE/netsvcs/clients/Naming/Client/README delete mode 100644 ACE/netsvcs/clients/Naming/Client/main.cpp delete mode 100644 ACE/netsvcs/clients/Naming/Client/svc.conf delete mode 100644 ACE/netsvcs/clients/Naming/Client/svc2.conf delete mode 100644 ACE/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp delete mode 100644 ACE/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h delete mode 100644 ACE/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.mpc delete mode 100644 ACE/netsvcs/clients/Naming/Dump_Restore/Makefile.am delete mode 100644 ACE/netsvcs/clients/Naming/Dump_Restore/README delete mode 100644 ACE/netsvcs/clients/Naming/Dump_Restore/createfile.cpp delete mode 100644 ACE/netsvcs/clients/Naming/Dump_Restore/main.cpp delete mode 100644 ACE/netsvcs/clients/Naming/Makefile.am delete mode 100644 ACE/netsvcs/clients/README delete mode 100644 ACE/netsvcs/clients/Tokens/Makefile.am delete mode 100644 ACE/netsvcs/clients/Tokens/README delete mode 100644 ACE/netsvcs/clients/Tokens/collection/Makefile.am delete mode 100644 ACE/netsvcs/clients/Tokens/collection/README delete mode 100644 ACE/netsvcs/clients/Tokens/collection/collection.cpp delete mode 100644 ACE/netsvcs/clients/Tokens/collection/rw_locks.cpp delete mode 100644 ACE/netsvcs/clients/Tokens/deadlock/Makefile.am delete mode 100644 ACE/netsvcs/clients/Tokens/deadlock/README delete mode 100644 ACE/netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp delete mode 100644 ACE/netsvcs/clients/Tokens/invariant/Makefile.am delete mode 100644 ACE/netsvcs/clients/Tokens/invariant/README delete mode 100644 ACE/netsvcs/clients/Tokens/invariant/invariant.cpp delete mode 100644 ACE/netsvcs/clients/Tokens/manual/Makefile.am delete mode 100644 ACE/netsvcs/clients/Tokens/manual/README delete mode 100644 ACE/netsvcs/clients/Tokens/manual/manual.cpp delete mode 100644 ACE/netsvcs/clients/Tokens/mutex/Makefile.am delete mode 100644 ACE/netsvcs/clients/Tokens/mutex/README delete mode 100644 ACE/netsvcs/clients/Tokens/mutex/test_mutex.cpp delete mode 100644 ACE/netsvcs/clients/Tokens/rw_lock/Makefile.am delete mode 100644 ACE/netsvcs/clients/Tokens/rw_lock/README delete mode 100644 ACE/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp delete mode 100644 ACE/netsvcs/lib/Base_Optimizer.cpp delete mode 100644 ACE/netsvcs/lib/Base_Optimizer.h delete mode 100644 ACE/netsvcs/lib/Client_Logging_Handler.cpp delete mode 100644 ACE/netsvcs/lib/Client_Logging_Handler.h delete mode 100644 ACE/netsvcs/lib/Log_Message_Receiver.cpp delete mode 100644 ACE/netsvcs/lib/Log_Message_Receiver.h delete mode 100644 ACE/netsvcs/lib/Makefile.am delete mode 100644 ACE/netsvcs/lib/Name_Handler.cpp delete mode 100644 ACE/netsvcs/lib/Name_Handler.h delete mode 100644 ACE/netsvcs/lib/README delete mode 100644 ACE/netsvcs/lib/Server_Logging_Handler.cpp delete mode 100644 ACE/netsvcs/lib/Server_Logging_Handler.h delete mode 100644 ACE/netsvcs/lib/Server_Logging_Handler_T.cpp delete mode 100644 ACE/netsvcs/lib/Server_Logging_Handler_T.h delete mode 100644 ACE/netsvcs/lib/TS_Clerk_Handler.cpp delete mode 100644 ACE/netsvcs/lib/TS_Clerk_Handler.h delete mode 100644 ACE/netsvcs/lib/TS_Server_Handler.cpp delete mode 100644 ACE/netsvcs/lib/TS_Server_Handler.h delete mode 100644 ACE/netsvcs/lib/Time_Request_Reply.cpp delete mode 100644 ACE/netsvcs/lib/Time_Request_Reply.h delete mode 100644 ACE/netsvcs/lib/Token_Handler.cpp delete mode 100644 ACE/netsvcs/lib/Token_Handler.h delete mode 100644 ACE/netsvcs/lib/lib.mpc delete mode 100644 ACE/netsvcs/servers/Makefile.am delete mode 100644 ACE/netsvcs/servers/README delete mode 100644 ACE/netsvcs/servers/main.cpp delete mode 100644 ACE/netsvcs/servers/servers.mpc delete mode 100644 ACE/netsvcs/servers/svc.conf delete mode 100644 ACE/netsvcs/servers/svc.conf.xml delete mode 100644 ACE/performance-tests/Makefile.am delete mode 100644 ACE/performance-tests/Misc/Makefile.am delete mode 100644 ACE/performance-tests/Misc/Misc.mpc delete mode 100644 ACE/performance-tests/Misc/basic_func.cpp delete mode 100644 ACE/performance-tests/Misc/basic_func.h delete mode 100644 ACE/performance-tests/Misc/basic_perf.cpp delete mode 100644 ACE/performance-tests/Misc/childbirth_time.cpp delete mode 100644 ACE/performance-tests/Misc/context_switch_time.cpp delete mode 100644 ACE/performance-tests/Misc/preempt.cpp delete mode 100644 ACE/performance-tests/Misc/test_guard.cpp delete mode 100644 ACE/performance-tests/Misc/test_mutex.cpp delete mode 100644 ACE/performance-tests/Misc/test_naming.cpp delete mode 100644 ACE/performance-tests/Misc/test_singleton.cpp delete mode 100644 ACE/performance-tests/Misc/test_singleton.h delete mode 100644 ACE/performance-tests/README delete mode 100644 ACE/performance-tests/RPC/README delete mode 100644 ACE/performance-tests/RPC/RPC.mpc delete mode 100644 ACE/performance-tests/RPC/client.cpp delete mode 100644 ACE/performance-tests/RPC/ping.x delete mode 100755 ACE/performance-tests/RPC/run_test.pl delete mode 100644 ACE/performance-tests/RPC/server.c delete mode 100644 ACE/performance-tests/SCTP/Makefile.am delete mode 100644 ACE/performance-tests/SCTP/Options_Manager.cpp delete mode 100644 ACE/performance-tests/SCTP/Options_Manager.h delete mode 100644 ACE/performance-tests/SCTP/README delete mode 100644 ACE/performance-tests/SCTP/README.LKSCTP delete mode 100644 ACE/performance-tests/SCTP/README.OpenSS7 delete mode 100644 ACE/performance-tests/SCTP/README.SCIOP delete mode 100644 ACE/performance-tests/SCTP/README.SCTP delete mode 100644 ACE/performance-tests/SCTP/README.SCTP_PERF_TEST delete mode 100644 ACE/performance-tests/SCTP/README.SCTP_in_ACE delete mode 100644 ACE/performance-tests/SCTP/SCTP.mpc delete mode 100644 ACE/performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp delete mode 100644 ACE/performance-tests/SCTP/SOCK_SEQPACK_clt.cpp delete mode 100644 ACE/performance-tests/SCTP/SOCK_SEQPACK_srv.cpp delete mode 100755 ACE/performance-tests/SCTP/SOCK_SEQPACK_wrapper_facade.jpg delete mode 100644 ACE/performance-tests/SCTP/SOCK_STREAM_clt.cpp delete mode 100644 ACE/performance-tests/SCTP/SOCK_STREAM_srv.cpp delete mode 100644 ACE/performance-tests/SCTP/THANKS delete mode 100644 ACE/performance-tests/SCTP/hist.cpp delete mode 100644 ACE/performance-tests/SCTP/hist.h delete mode 100644 ACE/performance-tests/SCTP/run_spectrum.config delete mode 100755 ACE/performance-tests/SCTP/run_spectrum.pl delete mode 100644 ACE/performance-tests/SCTP/sample-spectrum.png delete mode 100644 ACE/performance-tests/Server_Concurrency/Latency_Stats.h delete mode 100644 ACE/performance-tests/Server_Concurrency/Leader_Follower/Makefile.am delete mode 100644 ACE/performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp delete mode 100644 ACE/performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h delete mode 100644 ACE/performance-tests/Server_Concurrency/Leader_Follower/Svr_Conc_Leader_Follower.mpc delete mode 100644 ACE/performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp delete mode 100644 ACE/performance-tests/Server_Concurrency/Makefile.am delete mode 100644 ACE/performance-tests/Server_Concurrency/Queue_Based_Workers/Makefile.am delete mode 100644 ACE/performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp delete mode 100644 ACE/performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h delete mode 100644 ACE/performance-tests/Server_Concurrency/Queue_Based_Workers/Svr_Conc_Queue_Based_Workers.mpc delete mode 100644 ACE/performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp delete mode 100755 ACE/performance-tests/Server_Concurrency/run_test.sh delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.h delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.inl delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Base_Test/Makefile.am delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Base_Test/Synch_Benchmarks_Base_Test.mpc delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Base_Test/base_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Base_Test/mutex_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Makefile.am delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.h delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.h delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Makefile.am delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.h delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.h delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.inl delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/README delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/Synch_Benchmarks_Perf_Test.mpc delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_mutex_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_recursive_lock_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/adaptive_sema_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/condb_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/conds_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/context_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/memory_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/mutex_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_proc_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/pipe_thr_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/recursive_lock_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwrd_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/rwwr_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/sema_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/sysvsema_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Perf_Test/token_test.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/README delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Synch_Benchmarks.mpc delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.h delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Makefile.am delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Synch_Lib/README delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Synch_Lib/Synch_Benchmarks_Synch_Lib.mpc delete mode 100644 ACE/performance-tests/Synch-Benchmarks/Synch_Lib/export_mac.h delete mode 100644 ACE/performance-tests/Synch-Benchmarks/benchmarks delete mode 100644 ACE/performance-tests/Synch-Benchmarks/context.c delete mode 100644 ACE/performance-tests/Synch-Benchmarks/context.csh delete mode 100644 ACE/performance-tests/Synch-Benchmarks/orig-results delete mode 100644 ACE/performance-tests/Synch-Benchmarks/results/.no_prune delete mode 100755 ACE/performance-tests/Synch-Benchmarks/run_tests.pl delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/base_acquire.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/base_acquire_read.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/base_acquire_write.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/base_tryacquire.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/base_tryacquire_read.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/base_tryacquire_write.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t1.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t16.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t2.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t32.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t4.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t64.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/perf_t8.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/svcconf/svc.conf delete mode 100644 ACE/performance-tests/Synch-Benchmarks/synch_driver.cpp delete mode 100644 ACE/performance-tests/TCP/Makefile.am delete mode 100644 ACE/performance-tests/TCP/README delete mode 100644 ACE/performance-tests/TCP/TCP.mpc delete mode 100755 ACE/performance-tests/TCP/run_test.pl delete mode 100644 ACE/performance-tests/TCP/tcp_test.cpp delete mode 100644 ACE/performance-tests/TTCP/ACE-C++/How_to_run_tests delete mode 100644 ACE/performance-tests/TTCP/ACE-C++/run_test delete mode 100644 ACE/performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp delete mode 100644 ACE/performance-tests/TTCP/C/How_to_run_tests delete mode 100644 ACE/performance-tests/TTCP/C/README delete mode 100644 ACE/performance-tests/TTCP/C/new-ttcp.cpp delete mode 100644 ACE/performance-tests/TTCP/C/run_test delete mode 100644 ACE/performance-tests/UDP/Makefile.am delete mode 100644 ACE/performance-tests/UDP/README delete mode 100644 ACE/performance-tests/UDP/UDP.mpc delete mode 100755 ACE/performance-tests/UDP/run_test.pl delete mode 100644 ACE/performance-tests/UDP/udp_test.cpp delete mode 100644 ACE/performance-tests/perf.mwc delete mode 100644 ACE/protocols/Makefile.am delete mode 100644 ACE/protocols/ace/HTBP/ACE_HTBP.pc.in delete mode 100644 ACE/protocols/ace/HTBP/HTBP.mpc delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Addr.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Addr.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Channel.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Channel.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Channel.inl delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Environment.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Environment.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Export.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Filter.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Filter.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Filter.inl delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Filter_Factory.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Filter_Factory.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_ID_Requestor.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_ID_Requestor.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Inside_Squid_Filter.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Inside_Squid_Filter.inl delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Macros.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Notifier.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Notifier.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Outside_Squid_Filter.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Outside_Squid_Filter.inl delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Session.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Session.h delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Session.inl delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Stream.cpp delete mode 100644 ACE/protocols/ace/HTBP/HTBP_Stream.h delete mode 100644 ACE/protocols/ace/HTBP/HTID_Generator.cgi delete mode 100644 ACE/protocols/ace/HTBP/Makefile.am delete mode 100644 ACE/protocols/ace/HTBP/README delete mode 100644 ACE/protocols/ace/Makefile.am delete mode 100644 ACE/protocols/ace/RMCast/ACE_RMCast.pc.in delete mode 100644 ACE/protocols/ace/RMCast/Acknowledge.cpp delete mode 100644 ACE/protocols/ace/RMCast/Acknowledge.h delete mode 100644 ACE/protocols/ace/RMCast/Bits.h delete mode 100644 ACE/protocols/ace/RMCast/Flow.cpp delete mode 100644 ACE/protocols/ace/RMCast/Flow.h delete mode 100644 ACE/protocols/ace/RMCast/Fragment.cpp delete mode 100644 ACE/protocols/ace/RMCast/Fragment.h delete mode 100644 ACE/protocols/ace/RMCast/Link.cpp delete mode 100644 ACE/protocols/ace/RMCast/Link.h delete mode 100644 ACE/protocols/ace/RMCast/Makefile.am delete mode 100644 ACE/protocols/ace/RMCast/Parameters.h delete mode 100644 ACE/protocols/ace/RMCast/Protocol.cpp delete mode 100644 ACE/protocols/ace/RMCast/Protocol.h delete mode 100644 ACE/protocols/ace/RMCast/README delete mode 100644 ACE/protocols/ace/RMCast/RMCast.mpc delete mode 100644 ACE/protocols/ace/RMCast/RMCast_Export.h delete mode 100644 ACE/protocols/ace/RMCast/Reassemble.cpp delete mode 100644 ACE/protocols/ace/RMCast/Reassemble.h delete mode 100644 ACE/protocols/ace/RMCast/Retransmit.cpp delete mode 100644 ACE/protocols/ace/RMCast/Retransmit.h delete mode 100644 ACE/protocols/ace/RMCast/Simulator.cpp delete mode 100644 ACE/protocols/ace/RMCast/Simulator.h delete mode 100644 ACE/protocols/ace/RMCast/Socket.cpp delete mode 100644 ACE/protocols/ace/RMCast/Socket.h delete mode 100644 ACE/protocols/ace/RMCast/Stack.cpp delete mode 100644 ACE/protocols/ace/RMCast/Stack.h delete mode 100644 ACE/protocols/ace/TMCast/ACE_TMCast.pc.in delete mode 100644 ACE/protocols/ace/TMCast/Export.hpp delete mode 100644 ACE/protocols/ace/TMCast/FaultDetector.hpp delete mode 100644 ACE/protocols/ace/TMCast/Group.cpp delete mode 100644 ACE/protocols/ace/TMCast/Group.hpp delete mode 100644 ACE/protocols/ace/TMCast/GroupFwd.hpp delete mode 100644 ACE/protocols/ace/TMCast/LinkListener.hpp delete mode 100644 ACE/protocols/ace/TMCast/MTQueue.cpp delete mode 100644 ACE/protocols/ace/TMCast/MTQueue.hpp delete mode 100644 ACE/protocols/ace/TMCast/Makefile.am delete mode 100644 ACE/protocols/ace/TMCast/Messaging.hpp delete mode 100644 ACE/protocols/ace/TMCast/Protocol.cpp delete mode 100644 ACE/protocols/ace/TMCast/Protocol.hpp delete mode 100644 ACE/protocols/ace/TMCast/README delete mode 100644 ACE/protocols/ace/TMCast/TMCast.mpc delete mode 100644 ACE/protocols/ace/TMCast/TransactionController.hpp delete mode 100644 ACE/protocols/examples/Makefile.am delete mode 100644 ACE/protocols/examples/RMCast/Makefile.am delete mode 100644 ACE/protocols/examples/RMCast/Send_Msg/Makefile.am delete mode 100644 ACE/protocols/examples/RMCast/Send_Msg/Protocol.h delete mode 100644 ACE/protocols/examples/RMCast/Send_Msg/README delete mode 100644 ACE/protocols/examples/RMCast/Send_Msg/Receiver.cpp delete mode 100644 ACE/protocols/examples/RMCast/Send_Msg/Send_Msg.mpc delete mode 100644 ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp delete mode 100644 ACE/protocols/examples/TMCast/Makefile.am delete mode 100644 ACE/protocols/examples/TMCast/Member/Makefile.am delete mode 100644 ACE/protocols/examples/TMCast/Member/Member.mpc delete mode 100644 ACE/protocols/examples/TMCast/Member/README delete mode 100644 ACE/protocols/examples/TMCast/Member/member.cpp delete mode 100644 ACE/protocols/examples/examples.mwc delete mode 100644 ACE/protocols/protocols.mwc delete mode 100644 ACE/protocols/tests/HTBP/HTBP_Config.conf delete mode 100644 ACE/protocols/tests/HTBP/Makefile.am delete mode 100644 ACE/protocols/tests/HTBP/README delete mode 100644 ACE/protocols/tests/HTBP/Reactor_Tests/Makefile.am delete mode 100755 ACE/protocols/tests/HTBP/Reactor_Tests/Reactor_Tests.mpc delete mode 100644 ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp delete mode 100644 ACE/protocols/tests/HTBP/Reactor_Tests/inside.conf delete mode 100755 ACE/protocols/tests/HTBP/Reactor_Tests/run_test.pl delete mode 100644 ACE/protocols/tests/HTBP/Reactor_Tests/server.cpp delete mode 100644 ACE/protocols/tests/HTBP/Reactor_Tests/test_config.h delete mode 100644 ACE/protocols/tests/HTBP/Send_Large_Msg/Makefile.am delete mode 100644 ACE/protocols/tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc delete mode 100644 ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp delete mode 100755 ACE/protocols/tests/HTBP/Send_Large_Msg/run_test.pl delete mode 100644 ACE/protocols/tests/HTBP/Send_Large_Msg/server.cpp delete mode 100644 ACE/protocols/tests/HTBP/Send_Recv_Tests/Makefile.am delete mode 100644 ACE/protocols/tests/HTBP/Send_Recv_Tests/SendRecv_Test.mpc delete mode 100644 ACE/protocols/tests/HTBP/Send_Recv_Tests/client.cpp delete mode 100755 ACE/protocols/tests/HTBP/Send_Recv_Tests/run_test.pl delete mode 100644 ACE/protocols/tests/HTBP/Send_Recv_Tests/server.cpp delete mode 100644 ACE/protocols/tests/HTBP/ping/Makefile.am delete mode 100644 ACE/protocols/tests/HTBP/ping/client.cpp delete mode 100755 ACE/protocols/tests/HTBP/ping/ping.mpc delete mode 100755 ACE/protocols/tests/HTBP/ping/run_test.pl delete mode 100644 ACE/protocols/tests/HTBP/ping/server.cpp delete mode 100644 ACE/protocols/tests/Makefile.am delete mode 100644 ACE/protocols/tests/RMCast/Makefile.am delete mode 100644 ACE/protocols/tests/RMCast/Protocol.h delete mode 100644 ACE/protocols/tests/RMCast/RMCast.mpc delete mode 100644 ACE/protocols/tests/RMCast/Receiver.cpp delete mode 100644 ACE/protocols/tests/RMCast/Sender.cpp delete mode 100755 ACE/protocols/tests/RMCast/run_test.pl delete mode 100644 ACE/protocols/tests/tests.mwc delete mode 100644 ACE/tests/ACE.bsp delete mode 100644 ACE/tests/ACE_Init_Test.cpp delete mode 100644 ACE/tests/ACE_Init_Test.h delete mode 100644 ACE/tests/ACE_Init_Test.ico delete mode 100644 ACE/tests/ACE_Init_Test.rc delete mode 100644 ACE/tests/ACE_Init_Test.rc2 delete mode 100644 ACE/tests/ACE_Init_TestDlg.cpp delete mode 100644 ACE/tests/ACE_Init_TestDlg.h delete mode 100644 ACE/tests/ACE_Init_Test_Resource.h delete mode 100644 ACE/tests/ACE_Init_Test_StdAfx.h delete mode 100644 ACE/tests/ACE_Test.cpp delete mode 100644 ACE/tests/ARGV_Test.cpp delete mode 100644 ACE/tests/Aio_Platform_Test.cpp delete mode 100644 ACE/tests/Arg_Shifter_Test.cpp delete mode 100644 ACE/tests/Array_Map_Test.cpp delete mode 100644 ACE/tests/Atomic_Op_Test.cpp delete mode 100644 ACE/tests/Auto_Event_Test.cpp delete mode 100644 ACE/tests/Auto_IncDec_Test.cpp delete mode 100644 ACE/tests/Barrier_Test.cpp delete mode 100644 ACE/tests/Based_Pointer_Test.cpp delete mode 100644 ACE/tests/Based_Pointer_Test_Lib.cpp delete mode 100644 ACE/tests/Basic_Types_Test.cpp delete mode 100644 ACE/tests/Bound_Ptr_Test.cpp delete mode 100644 ACE/tests/Bound_Ptr_Test.h delete mode 100644 ACE/tests/Buffer_Stream_Test.cpp delete mode 100644 ACE/tests/Bug_1576_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_1890_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2368_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2497_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2540_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2609_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2610_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2653_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2659_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2815_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2820_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_2975_Regression_Test.cpp delete mode 100644 ACE/tests/Bug_3102_Regression_Test.cpp delete mode 100644 ACE/tests/CDR_Array_Test.cpp delete mode 100644 ACE/tests/CDR_File_Test.cpp delete mode 100644 ACE/tests/CDR_Test.cpp delete mode 100644 ACE/tests/CE_fostream.cpp delete mode 100644 ACE/tests/CE_fostream.h delete mode 100644 ACE/tests/Cache_Map_Manager_Test.cpp delete mode 100644 ACE/tests/Cache_Map_Manager_Test.h delete mode 100644 ACE/tests/Cached_Accept_Conn_Test.cpp delete mode 100644 ACE/tests/Cached_Accept_Conn_Test.h delete mode 100644 ACE/tests/Cached_Allocator_Test.cpp delete mode 100644 ACE/tests/Cached_Conn_Test.cpp delete mode 100644 ACE/tests/Cached_Conn_Test.h delete mode 100644 ACE/tests/Capabilities_Test.cpp delete mode 100644 ACE/tests/Codecs_Test.cpp delete mode 100644 ACE/tests/Collection_Test.cpp delete mode 100644 ACE/tests/Collection_Test.h delete mode 100644 ACE/tests/Config_Test.cpp delete mode 100644 ACE/tests/Config_Test.h delete mode 100644 ACE/tests/Config_Test.ini delete mode 100644 ACE/tests/Config_Test_Import_1.ini delete mode 100644 ACE/tests/Conn_Test.cpp delete mode 100644 ACE/tests/Conn_Test.h delete mode 100644 ACE/tests/DLL_Test.cpp delete mode 100644 ACE/tests/DLL_Test.h delete mode 100644 ACE/tests/DLL_Test_Impl.cpp delete mode 100644 ACE/tests/DLL_Test_Impl.h delete mode 100644 ACE/tests/DLL_Test_Parent.cpp delete mode 100644 ACE/tests/DLL_Test_Parent.h delete mode 100644 ACE/tests/DLL_Test_Parent_Export.h delete mode 100644 ACE/tests/DLList_Test.cpp delete mode 100644 ACE/tests/Date_Time_Test.cpp delete mode 100644 ACE/tests/Dev_Poll_Reactor_Test.cpp delete mode 100644 ACE/tests/Dirent_Test.cpp delete mode 100644 ACE/tests/Dynamic_Priority_Test.cpp delete mode 100644 ACE/tests/Dynamic_Test.cpp delete mode 100644 ACE/tests/Enum_Interfaces_Test.cpp delete mode 100644 ACE/tests/Env_Value_Test.cpp delete mode 100644 ACE/tests/FIFO_Test.cpp delete mode 100644 ACE/tests/FlReactor_Test.cpp delete mode 100644 ACE/tests/Framework_Component_DLL.cpp delete mode 100644 ACE/tests/Framework_Component_DLL.h delete mode 100644 ACE/tests/Framework_Component_DLL_Export.h delete mode 100644 ACE/tests/Framework_Component_Test.cpp delete mode 100644 ACE/tests/Framework_Component_Test.h delete mode 100644 ACE/tests/Future_Set_Test.cpp delete mode 100644 ACE/tests/Future_Test.cpp delete mode 100644 ACE/tests/Get_Opt_Test.cpp delete mode 100644 ACE/tests/Handle_Set_Test.cpp delete mode 100644 ACE/tests/Hash_Map_Bucket_Iterator_Test.cpp delete mode 100644 ACE/tests/Hash_Map_Manager_Test.cpp delete mode 100644 ACE/tests/Hash_Multi_Map_Manager_Test.cpp delete mode 100644 ACE/tests/High_Res_Timer_Test.cpp delete mode 100644 ACE/tests/INET_Addr_Test.cpp delete mode 100644 ACE/tests/INET_Addr_Test_IPV6.cpp delete mode 100644 ACE/tests/INTEGRITY.ld delete mode 100644 ACE/tests/IOStream_Test.cpp delete mode 100644 ACE/tests/Integer_Truncate_Test.cpp delete mode 100644 ACE/tests/Lazy_Map_Manager_Test.cpp delete mode 100644 ACE/tests/Log_Msg_Backend_Test.cpp delete mode 100644 ACE/tests/Log_Msg_Test.cpp delete mode 100644 ACE/tests/Logging_Strategy_Test.cpp delete mode 100644 ACE/tests/MEM_Stream_Test.cpp delete mode 100644 ACE/tests/MEM_Stream_Test.h delete mode 100644 ACE/tests/MM_Shared_Memory_Test.cpp delete mode 100644 ACE/tests/MT_Reactor_Timer_Test.cpp delete mode 100644 ACE/tests/MT_Reactor_Timer_Test.h delete mode 100644 ACE/tests/MT_Reactor_Upcall_Test.cpp delete mode 100644 ACE/tests/MT_Reference_Counted_Event_Handler_Test.cpp delete mode 100644 ACE/tests/MT_Reference_Counted_Notify_Test.cpp delete mode 100644 ACE/tests/MT_SOCK_Test.cpp delete mode 100644 ACE/tests/Main.cpp delete mode 100644 ACE/tests/Makefile.am delete mode 100644 ACE/tests/Malloc_Test.cpp delete mode 100644 ACE/tests/Malloc_Test.h delete mode 100644 ACE/tests/Manual_Event_Test.cpp delete mode 100644 ACE/tests/Map_Manager_Test.cpp delete mode 100644 ACE/tests/Map_Test.cpp delete mode 100644 ACE/tests/Map_Test.h delete mode 100644 ACE/tests/Max_Default_Port_Test.cpp delete mode 100644 ACE/tests/Max_Default_Port_Test.h delete mode 100644 ACE/tests/Max_Default_Port_Test_IPV6.cpp delete mode 100644 ACE/tests/Mem_Map_Test.cpp delete mode 100644 ACE/tests/Memcpy_Test.cpp delete mode 100644 ACE/tests/Message_Block_Test.cpp delete mode 100644 ACE/tests/Message_Queue_Notifications_Test.cpp delete mode 100644 ACE/tests/Message_Queue_Test.cpp delete mode 100644 ACE/tests/Message_Queue_Test_Ex.cpp delete mode 100644 ACE/tests/Message_Queue_Test_Ex.h delete mode 100644 ACE/tests/Multicast_Test.cpp delete mode 100644 ACE/tests/Multicast_Test_IPV6.cpp delete mode 100644 ACE/tests/Multihomed_INET_Addr_Test.cpp delete mode 100644 ACE/tests/Multihomed_INET_Addr_Test_IPV6.cpp delete mode 100644 ACE/tests/Naming_Test.cpp delete mode 100644 ACE/tests/Network_Adapters_Test.cpp delete mode 100644 ACE/tests/Network_Adapters_Test.h delete mode 100644 ACE/tests/New_Fail_Test.cpp delete mode 100644 ACE/tests/NonBlocking_Conn_Test.cpp delete mode 100644 ACE/tests/NonBlocking_Conn_Test.h delete mode 100644 ACE/tests/Notification_Queue_Unit_Test.cpp delete mode 100644 ACE/tests/Notify_Performance_Test.cpp delete mode 100644 ACE/tests/OS_Test.cpp delete mode 100644 ACE/tests/Object_Manager_Flipping_Test.cpp delete mode 100644 ACE/tests/Object_Manager_Test.cpp delete mode 100644 ACE/tests/Obstack_Test.cpp delete mode 100644 ACE/tests/OrdMultiSet_Test.cpp delete mode 100644 ACE/tests/Pipe_Test.cpp delete mode 100644 ACE/tests/Priority_Buffer_Test.cpp delete mode 100644 ACE/tests/Priority_Reactor_Test.cpp delete mode 100644 ACE/tests/Priority_Reactor_Test.h delete mode 100644 ACE/tests/Priority_Task_Test.cpp delete mode 100644 ACE/tests/Proactor_Scatter_Gather_Test.cpp delete mode 100644 ACE/tests/Proactor_Test.cpp delete mode 100644 ACE/tests/Proactor_Test.h delete mode 100644 ACE/tests/Proactor_Test_IPV6.cpp delete mode 100644 ACE/tests/Proactor_Timer_Test.cpp delete mode 100644 ACE/tests/Process_Manager_Test.cpp delete mode 100644 ACE/tests/Process_Manual_Event_Test.cpp delete mode 100644 ACE/tests/Process_Mutex_Test.cpp delete mode 100644 ACE/tests/Process_Semaphore_Test.cpp delete mode 100644 ACE/tests/Process_Strategy_Test.cpp delete mode 100644 ACE/tests/Process_Strategy_Test.h delete mode 100644 ACE/tests/QtReactor_Test.cpp delete mode 100644 ACE/tests/QtReactor_Test.h delete mode 100644 ACE/tests/RB_Tree_Test.cpp delete mode 100644 ACE/tests/RB_Tree_Test.h delete mode 100644 ACE/tests/README delete mode 100644 ACE/tests/Reactor_Dispatch_Order_Test.cpp delete mode 100644 ACE/tests/Reactor_Exceptions_Test.cpp delete mode 100644 ACE/tests/Reactor_Notification_Queue_Test.cpp delete mode 100644 ACE/tests/Reactor_Notify_Test.cpp delete mode 100644 ACE/tests/Reactor_Performance_Test.cpp delete mode 100644 ACE/tests/Reactor_Performance_Test.h delete mode 100644 ACE/tests/Reactor_Registration_Test.cpp delete mode 100644 ACE/tests/Reactor_Remove_Resume_Test.cpp delete mode 100644 ACE/tests/Reactor_Timer_Test.cpp delete mode 100644 ACE/tests/Reactors_Test.cpp delete mode 100644 ACE/tests/Reader_Writer_Test.cpp delete mode 100644 ACE/tests/Recursive_Condition_Bug_Test.cpp delete mode 100644 ACE/tests/Recursive_Condition_Test.cpp delete mode 100644 ACE/tests/Recursive_Mutex_Test.cpp delete mode 100644 ACE/tests/Refcounted_Auto_Ptr_Test.cpp delete mode 100644 ACE/tests/Refcounted_Auto_Ptr_Test.h delete mode 100644 ACE/tests/Reference_Counted_Event_Handler_Test.cpp delete mode 100644 ACE/tests/Reverse_Lock_Test.cpp delete mode 100644 ACE/tests/SOCK_Connector_Test.cpp delete mode 100644 ACE/tests/SOCK_Dgram_Bcast_Test.cpp delete mode 100644 ACE/tests/SOCK_Dgram_Test.cpp delete mode 100644 ACE/tests/SOCK_Netlink_Test.cpp delete mode 100644 ACE/tests/SOCK_SEQPACK_SCTP_Test.cpp delete mode 100644 ACE/tests/SOCK_Send_Recv_Test.cpp delete mode 100644 ACE/tests/SOCK_Send_Recv_Test_IPV6.cpp delete mode 100644 ACE/tests/SOCK_Test.cpp delete mode 100644 ACE/tests/SOCK_Test_IPv6.cpp delete mode 100644 ACE/tests/SPIPE_Test.cpp delete mode 100644 ACE/tests/SSL/Bug_2912_Regression_Test.cpp delete mode 100644 ACE/tests/SSL/Main.cpp delete mode 100644 ACE/tests/SSL/Makefile.am delete mode 100644 ACE/tests/SSL/SSL_Asynch_Stream_Test.cpp delete mode 100644 ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp delete mode 100644 ACE/tests/SSL/Thread_Pool_Reactor_SSL_Test.h delete mode 100644 ACE/tests/SSL/acetest.mpb delete mode 100644 ACE/tests/SSL/dummy.pem delete mode 100644 ACE/tests/SSL/key.pem delete mode 100644 ACE/tests/SSL/tests.mpc delete mode 100644 ACE/tests/SString_Test.cpp delete mode 100644 ACE/tests/STL_algorithm_Test_T.cpp delete mode 100644 ACE/tests/STL_algorithm_Test_T.h delete mode 100644 ACE/tests/SV_Shared_Memory_Test.cpp delete mode 100644 ACE/tests/Semaphore_Test.cpp delete mode 100644 ACE/tests/Sendfile_Test.cpp delete mode 100644 ACE/tests/Service_Config_DLL.cpp delete mode 100644 ACE/tests/Service_Config_DLL.h delete mode 100644 ACE/tests/Service_Config_DLL_Export.h delete mode 100644 ACE/tests/Service_Config_Test.UTF-16.conf delete mode 100644 ACE/tests/Service_Config_Test.UTF-16.conf.xml delete mode 100644 ACE/tests/Service_Config_Test.WCHAR_T.conf delete mode 100644 ACE/tests/Service_Config_Test.WCHAR_T.conf.xml delete mode 100644 ACE/tests/Service_Config_Test.conf delete mode 100644 ACE/tests/Service_Config_Test.conf.xml delete mode 100644 ACE/tests/Service_Config_Test.cpp delete mode 100644 ACE/tests/Signal_Test.cpp delete mode 100644 ACE/tests/Sigset_Ops_Test.cpp delete mode 100644 ACE/tests/Simple_Message_Block_Test.cpp delete mode 100644 ACE/tests/Svc_Handler_Test.cpp delete mode 100644 ACE/tests/TP_Reactor_Test.cpp delete mode 100644 ACE/tests/TP_Reactor_Test.h delete mode 100644 ACE/tests/TSS_Static_Test.cpp delete mode 100644 ACE/tests/TSS_Test.cpp delete mode 100644 ACE/tests/TSS_Test_Errno.h delete mode 100644 ACE/tests/Task_Ex_Test.cpp delete mode 100644 ACE/tests/Task_Ex_Test.h delete mode 100644 ACE/tests/Task_Test.cpp delete mode 100644 ACE/tests/Test_Output.cpp delete mode 100644 ACE/tests/Test_Output_Export.h delete mode 100644 ACE/tests/Thread_Creation_Threshold_Test.cpp delete mode 100644 ACE/tests/Thread_Manager_Test.cpp delete mode 100644 ACE/tests/Thread_Mutex_Test.cpp delete mode 100644 ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp delete mode 100644 ACE/tests/Thread_Pool_Reactor_Resume_Test.h delete mode 100644 ACE/tests/Thread_Pool_Reactor_Test.cpp delete mode 100644 ACE/tests/Thread_Pool_Reactor_Test.h delete mode 100644 ACE/tests/Thread_Pool_Test.cpp delete mode 100644 ACE/tests/Time_Service_Test.cpp delete mode 100644 ACE/tests/Time_Value_Test.cpp delete mode 100644 ACE/tests/Timeprobe_Test.cpp delete mode 100644 ACE/tests/Timer_Cancellation_Test.cpp delete mode 100644 ACE/tests/Timer_Queue_Reference_Counting_Test.cpp delete mode 100644 ACE/tests/Timer_Queue_Test.cpp delete mode 100644 ACE/tests/TkReactor_Test.cpp delete mode 100644 ACE/tests/TkReactor_Test.tcl delete mode 100644 ACE/tests/Token_Strategy_Test.cpp delete mode 100644 ACE/tests/Tokens_Test.cpp delete mode 100644 ACE/tests/UNIXclerk.conf delete mode 100644 ACE/tests/UNIXserver.conf delete mode 100644 ACE/tests/UNIXtokens.conf delete mode 100644 ACE/tests/UPIPE_SAP_Test.cpp delete mode 100644 ACE/tests/UUID_Test.cpp delete mode 100644 ACE/tests/Unbounded_Set_Test.cpp delete mode 100644 ACE/tests/Unload_libACE.cpp delete mode 100644 ACE/tests/Upgradable_RW_Test.cpp delete mode 100644 ACE/tests/Upgradable_RW_Test.h delete mode 100644 ACE/tests/Vector_Test.cpp delete mode 100644 ACE/tests/WFMO_Reactor_Test.cpp delete mode 100644 ACE/tests/Win32clerk.conf delete mode 100644 ACE/tests/Win32server.conf delete mode 100644 ACE/tests/Win32tokens.conf delete mode 100644 ACE/tests/XtAthenaReactor_Test.cpp delete mode 100644 ACE/tests/XtMotifReactor_Test.cpp delete mode 100644 ACE/tests/acetest.mpb delete mode 100644 ACE/tests/dll_test_parent_lib.mpb delete mode 100755 ACE/tests/pharlap/run_pharlap_tests.bat delete mode 100644 ACE/tests/randomize.h delete mode 100644 ACE/tests/run_test.lst delete mode 100755 ACE/tests/run_test.pl delete mode 100755 ACE/tests/run_tests.check delete mode 100755 ACE/tests/run_tests_remote.sh delete mode 100644 ACE/tests/test_config.h delete mode 100644 ACE/tests/tests.mpc delete mode 100644 ACE/tests/tests.mwc delete mode 100644 ACE/tests/tests_pharlap_msvc.lnk delete mode 100644 ACE/tests/unload_libace.mpb delete mode 100644 ACE/websvcs/Makefile.am delete mode 100644 ACE/websvcs/README delete mode 100644 ACE/websvcs/lib/Makefile.am delete mode 100644 ACE/websvcs/lib/URL_Addr.cpp delete mode 100644 ACE/websvcs/lib/URL_Addr.h delete mode 100644 ACE/websvcs/lib/URL_Addr.inl delete mode 100644 ACE/websvcs/lib/lib.mpc delete mode 100644 ACE/websvcs/lib/websvcs_export.h delete mode 100644 ACE/websvcs/tests/Makefile.am delete mode 100644 ACE/websvcs/tests/Test_URL_Addr.cpp delete mode 100644 ACE/websvcs/tests/tests.mpc (limited to 'ACE') diff --git a/ACE/ACE-INSTALL.html b/ACE/ACE-INSTALL.html deleted file mode 100644 index 78f54f203b1..00000000000 --- a/ACE/ACE-INSTALL.html +++ /dev/null @@ -1,3010 +0,0 @@ - - - Building and Installing ACE and Its Auxiliary Libraries and Services - - - - - -
-

Building and Installing ACE and Its Auxiliary Libraries and Services

- -

Synopsis

- -The file explains how to build and install ACE, its Network Services, -test suite and examples on the various OS platforms and compilers that -it has been ported to. Please consult the NEWS and -ChangeLog files to see whether any recent changes -to the release will affect your code. In addition, you should check -out our development -process. As you start working with ACE, we suggest you get copies -of the C++NPv1, C++NPv2, and -APG books to help -guide you after you've built and installed ACE. You should also -consult the ACE -Frequently Made Mistakes page. If you encounter any problems or -would like to request an enhancement, then use our bug -tracking system to submit a report in accordance with our bug -report process.

- -

Document Index

- - - - -


-

Platforms, C++ Compilers, and Support

- -

ACE has been ported to a large number of platforms using many different -compilers over the years. -The DOC group, -Riverace, -OCI, -Remedy IT, and members of the ACE -user community have all contributed ports to make ACE the successful -and far-reaching toolkit it is today. Any UNIX/POSIX/Windows -variation is probably an easy target platform for ACE. If you have -porting questions or have a problem -compiling the ACE source distribution, please contact one of the -commercial support companies, or send a copy of the -PROBLEM-REPORT-FORM, located in the -ACE_wrappers directory, to either the ACE -Newsgroup or the ace-users -mailing list. -The DOC groups at Washington University, UC Irvine, and Vanderbilt -University provide only "best effort" support for non-sponsors for the -latest release, as described in -docs/ACE-bug-process.html. -Thus, if you need more "predictable" help, or help with earlier versions of -ACE, it's recommend that you check out the -list of -commercial support companies for additional assistance. -

-

The responsibility for maintaining ACE across the wide range of -supported platforms is divided among a few different groups: -

-The -build scoreboard -records the current status of build and regression testing during -development by all of the above groups. It is available to all users wishing -to provide build results. Members of the ACE community that maintain ACE on -platforms not maintained by the DOC group, Riverace, OCI, or Remedy IT are -encouraged to provide build and regression test results for the scoreboard -to ensure that all in-use platforms are represented. -See the autobuild README for more information about -how to set up a build; contact one of the above groups to inquire about how -to get your build results recorded on the scoreboard.

-

Because older -platforms that are not maintained tend to fall into a broken state and -clutter the ACE sources with code that is no longer used, the development -team reserves the right to remove ACE configuration files and source code -specific to inactive platform configurations that are not -listed on the scoreboard.

-

The table below summarizes each group's role and where you can get more -detailed information. For information on TAO's platform coverage and -support, please also see TAO's install -document.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Groups Involved in ACE Development and Support
GroupPlatformsFor more information
DOC GroupWindows 2000, XP (MSVC++ 7.1, and 8); - many versions of Linux/Intel (many compilers), Linux/IA64 (GCC). - DOC sites at ISIS, - UCI and - Washington University -
RiveraceOffers ACE - training, - support and - consulting services - for many platforms including AIX, HP-UX, Linux, Solaris, and Windows. - Riverace's ACE - Support page.
OCIMaintains ACE on certain platforms required for their TAO - software and service offerings. - OCI's web site and - the TAO install document
Remedy ITMaintains ACE on many platforms required for their ACE and - TAO service offerings. We support AIX, Borland C++ Builder 6/2006, - CodeGear C++ Builder 2007, CodeGear RAD Studio 2007, - CBuilderX 1.0, MinGW, Microsoft Visual C++ 7.1/8/9, GCC, - Cygwin, VxWorks 5.5.x & 6.x, OpenVMS 8.2-1 & 8.3 on Alpha and IA64, - BlueCAT Linux, RedHat Linux, Fedora, - 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 - HPUX 11i v2/v3 on IA64. The Intel C++ compiler is supported on - Windows 32/64bit, Linux IA32/EM64T/IA64. - Remedy IT web site and - the TAO install document -
PrismTechMaintains ACE on certain platforms required for their TAO - software and service offerings, including LynxOS. - PrismTech's web site
ACE user communityResponsible for continued maintenance and testing of platforms - to which ACE has been ported, but aren't supported by the - above groups. These include - Digital UNIX (Compaq Tru64) 4.0 and 5.0; - IRIX 6.x; UnixWare 7.1.0; - Linux on PPC; OpenMVS; - Tandem; SCO; FreeBSD; NetBSD; OpenBSD; - Macintosh OS X; OS/9; PharLap ETS 13; - QNX RTP and Neutrino 2.0; Interix (Windows Services for Unix) -
Not maintainedThe following platforms have been ported to in the past but are - no longer maintained and may be removed from ACE at any time. - If you want to have support for these environments contact one - of the commercial support organisations. The platforms include: - Chorus; DG/UX; HP-UX 9, 10 and 11.00; pSOS; - SunOS 4.x and Solaris with SunC++ 4.x; VxWorks 5.4 and earlier; - Microsoft Visual C++ 5, 6, and 7.0; Borland C++ Builder 4 and 5. - For up-to-date listings on platform that are deprecated and pending - removal from ACE, please see the NEWS file. -

- -

Although the DOC group has provided outstanding support for ACE -over the years, ACE's success has greatly increased the amount of -effort required to keep up with its maintenance, answer users' -questions, and give design guidance. Riverace offers world-class -commercial services to support ACE users. OCI, PrismTech, and Remedy -offer similar services for TAO, allowing the DOC group's primary focus -to shift back to their main goal: research. The DOC group is -fundamentally focused on (and funded -by) advanced R&D projects. The group continues to be -intimately involved in ACE+TAO development and maintenance, but with -revised priorities for maintenance. The bug -fixing policies followed by the DOC group are designed to strike a -balance between their many research -projects and their commitment to the ACE+TAO user -community. Naturally, we will be happy to accept well-tested -patches from the ACE+TAO user community for any platforms that aren't -supported by the DOC group, Riverace, OCI or Remedy IT.

- -


-

Installation prerequisites

-

-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 Borland 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. -

-

-If it is necessary to generate -files for build tools for other compilers, one must -run MPC to generate the -appropriate files. Please see USAGE, README, and README for ACE files for -details. The options that have been used to generate the above build -files can be found in -global.features file. -

- -
-

Building and Installing ACE

- -The following sections explain how to build ACE on: - - -

General Rules

- - -
-

Building and Installing ACE on UNIX

- -As of ACE 5.4, you can choose between two methods of building ACE on -UNIX: -
    -
  1. GNU Autoconf
  2. -
  3. Traditional ACE/GNU Make Configuration
  4. -
-The build process for Windows is different from both of -the UNIX methods. - -

Building ACE with GNU Autoconf

-

-GNU Autoconf support is available in the ACE and ACE+TAO distributions -in the DOC group website. Support for Autoconf is not included in -distributions that contain CIAO. -

-

-GNU Autoconf support has been partially present in a number of ACE -versions. However, ACE 5.4 was the first version that supported it in -earnest. The range of platforms on which GNU autoconf support is regularly -tested is not as broad as for the traditional configuration method, so you -should be careful to test the resulting ACE library before using it in -your applications. You can review the - -build scoreboard to check the currently tested set of autoconfigured -platforms (look for autoconf in the platform name). -Any help you can lend to improve the ACE build process using GNU Autoconf -would be very much appreciated. Please send any fixes to the -ACE users mailing list -using the standard PROBLEM-REPORT-FORM. -

-

-The kit has been bootstrapped so you do not need to install the GNU -Autotools (autoconf, automake, libtool) unless you want to participate -in testing and developing this -process further or if you are working directly off of sources in the -ACE subversion repository. To simply configure and build ACE, do: -

    -
  1. cd to the top-level ACE_wrappers directory.
  2. -
  3. Create a subdirectory to hold your build's configuration and built - ACE version, and then change to the new directory: -
           mkdir build
    -       cd build
    - Note that you do not run the create_ace_build.pl utility - mentioned in the Cloning the Source Tree - section. The configure script takes care of creating all files - and links that are needed.
  4. -
  5. Configure ACE for your platform by issuing the following command: -
           ../configure [options]
    - options can be a variable setting (such as setting - CXX to your C++ compiler command) any standard GNU - configure options, or any of the following ACE configure options - (default values are in parentheses): -
      -
    • --enable-alloca (no): Enable alloca() - support.
    • -
    • --enable-debug (yes): Build ACE with debugging - support.
    • -
    • --enable-exceptions (yes): Build ACE with C++ - exception support compiled in.
    • -
    • --enable-fast (no): Use the Sun C++ -fast - option to build. Only used on Solaris.
    • -
    • --enable-ipv4-ipv6 (no): Enable IPv4/IPv6 migration support.
    • -
    • --enable-ipv6 (no): Enable IPv6 support.
    • -
    • --enable-inline (yes): Enable inline functions.
    • -
    • --enable-optimize (yes): Enable building optimized.
    • -
    • --enable-prof (no): Enable profiling support.
    • -
    • --enable-purify (no): Build with support for - IBM Rational Purify.
    • -
    • --enable-quantify (no): Build with support for - IBM Rational Quantify.
    • -
    • --enable-repo (no): Enable the GNU g++ - -frepo option. Only useful for pre-3.0 g++.
    • -
    • --enable-stdcpplib (yes): Build with support for the - standard C++ library, as opposed to the older iostreams library.
    • -
    • --enable-log-msg-prop (yes): Enable - ACE_Log_Msg property propagation to ACE-created - threads.
    • -
    • --enable-logging (yes): Enable the ACE logging - macros.
    • -
    • --enable-malloc-stats (no): Compile in additional code - for collecting memory allocation statistics.
    • -
    • --enable-pi-pointers (yes): Enable - position-independent pointers for shared memory classes.
    • -
    • --enable-probe (no): Enable the - ACE_Timeprobe class.
    • -
    • --enable-reentrant (yes): Enable use of platform's - reentrant functions.
    • -
    • --enable-static-obj-mgr (yes): Enable use of a - static ACE_Object_Manager.
    • -
    • --enable-threads (yes): Enable threading support.
    • -
    • --enable-verb-not-sup (no): Enable verbose ENOTSUP - reports at run time.
    • -
    • --enable-trace (no): Enable ACE execution tracing - support.
    • -
    • --enable-fl-reactor (no): Enable support for the - ACE_FlReactor class.
    • -
    • --enable-qt-reactor (no): Enable support for the - ACE_QtReactor class.
    • -
    • --enable-tk-reactor (no): Enable support for the - ACE_TkReactor class.
    • -
    • --enable-xt-reactor (no): Enable support for the - ACE_XtReactor class.
    • -
    • --enable-gperf (yes): Build the implementation of - gperf that comes with ACE.
    • -
    • --enable-qos (no): Include the ACE_QoS library when - building ACE.
    • -
    • --enable-ssl (yes): Include the ACE_SSL library when - building ACE. Requires the SSL components to be available using the - compiler's and linker's default search directories.
    • -
    • --with-openssl: Specifies the root directory of the - OpenSSL installation; expects the specified directory to have - include and lib subdirectories. To - specify other locations for the header and libraries, use one or - both of the following.
    • -
    • --with-openssl-include: Specify the directory - containing the OpenSSL header files.
    • -
    • --with-openssl-libdir: Specify the directory - containing the OpenSSL libraries.
    • -
    • --with-tli-device (/dev/tcp): Specifies the device - name for opening a TLI device at run time.
    • -
    -
  6. -
  7. Build ACE by typing make. -
  8. (Optional) Install ACE by typing make install. -
- -

Testing and Developing GNU Autotool -Support in ACE

-

-In order to test and develop the GNU Autotool support in ACE or -bootstrap autotool support into ACE when working directly off of ACE -sources in the subversion repository, you must have recent versions of GNU -Autoconf, Automake and Libtool installed on your host. Once -installed, autotool support may be bootstrapped into your workspace by -doing the following: -

- - cd ACE_wrappers
- ./bin/bootstrap
-
-
-After doing so, you will be able to run the configure -script. - -

Using the Traditional ACE/GNU Configuration

-

-Here's what you need to do to build ACE using GNU Make and ACE's traditional -per-platform configuration method:

- -
    -
  1. Install GNU make - 3.79.1 or greater on your system (available via http - anonymous ftp from ftp.gnu.org in the - pub/gnu/make/ directory). - You must use GNU make when using ACE's traditional - per-platform configuration method or ACE won't compile. -
  2. -
  3. Add an environment variable called ACE_ROOT that contains the - name of the root of the directory where you keep the ACE wrapper - source tree. The ACE recursive Makefile scheme needs this information. - There are several ways to set the ACE_ROOT variable. For example: -
    - TSCH/CSH: - setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers -
    -
    - BASH or Bourne Shell: - ACE_ROOT=/home/cs/faculty/schmidt/ACE_wrappers; export ACE_ROOT - -
    -

    - If you're building a number of versions of ACE, however, (e.g., for - different OS platforms or for different releases of ACE) you might use - the following approach (assuming TCSH/CSH): -

    setenv ACE_ROOT $cwd -
    -
  4. -
  5. Create a configuration file, $ACE_ROOT/ace/config.h, - that includes the appropriate platform/compiler-specific - header configurations from the ACE source directory. For example: -
    -#include "ace/config-linux.h" -
    - The platform/compiler-specific configuration file - contains the #defines that are used throughout ACE to indicate - which features your system supports. See the - $ACE_ROOT/ace/README file for a description of these - macro settings. If you desire to add some site-specific or build-specific - changes, you can add them to your config.h file; place them - before the inclusion of the platform-specific - header file. -

    - There are config files for most versions of UNIX. If there - isn't a version of this file that matches your - platform/compiler, you'll need to make one. Please send email - to the ace-users list - if you get it working so it can be added to the master ACE - release.

    -
  6. - -
  7. Create a build configuration file, - $ACE_ROOT/include/makeinclude/platform_macros.GNU, - that contains the appropriate platform/compiler-specific - Makefile configurations, e.g., -
    -include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU -
    - This file contains the compiler and Makefile directives that are - platform/compiler-specific. If you'd like to add make options, you - can add them before including the platform-specific configuration.

    - NOTE! There really is not a # character before 'include' in the - platform_macros.GNU file. # is a comment character. -

  8. -
  9. 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, - you probably want to do something like the following: -
    - % setenv LD_LIBRARY_PATH $ACE_ROOT/lib:$LD_LIBRARY_PATH
    -
  10. -
  11. When all this is done, hopefully all you'll need to do is type: -
    - % make
    - at the ACE_ROOT directory. This will build the ACE - library, tests, the examples, and the sample applications. - Building the entire ACE release can take a long time and consume - lots of disk space, however. Therefore, you might consider - cd'ing into the $ACE_ROOT/ace directory and - running make there to build just the ACE library. - As a sanity check, you might also want to build and run the - automated "one-button" tests in - $ACE_ROOT/tests. Finally, if you're also - planning on building TAO, you - should build the gperf - perfect hash function generator application in - $ACE_ROOT/apps/gperf. -
  12. -
  13. If you need to regenerate the ace/Svc_Conf_y.cpp file, - you'll need to - get GNU Bison. - However, you should rarely, if ever, need to do this. -
  14. -
- -
- -

Building and Installing ACE on Windows

- -

This section contains instructions for building ACE on Microsoft -Windows with a variety of compilers and development environments.

- -

First, if you are upgrading from an older release, the recommended practice -is to start with a clean directory. Unpacking the newer release over an older -one will not clean up any old files, and trying to use the environment's -"Clean" command will probably not account for all existing files.

- - - -


-

Building and Installing ACE on Windows with -Microsoft Visual Studio

- -

ACE contains project files for Microsoft Visual Studio .NET 2003 (VC7.1) -and Visual Studio 2005 (VC8). 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 -suffixes (.sln and .vcproj). 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 .sln suffix and all project files have -a .vcproj suffix.

- -The free Visual C++ 2005 Express Edition will work in place of the traditional -Visual Studio 2005 editions. Please note that there are additional setup steps -needed to install the Windows Platform SDK and to make VC++ aware of it. All -of the steps documented -here -need to be done before ACE will build. All the other notes in this document -that are for VC8 also apply to the express edition. MFC, 64-bit, and -CE/mobile options are not available with the express edition. 64-bit binaries -can be built with the tools included in the Platform SDK, using nmake as the -build system.

- - - - - - - - - - - - - - - - - - - - - -
Mapping of Platform to Solution/Project File Name
PlatformFile Name
VC7.1name_vc71 -
VC8 for desktop/servername_vc8 -
VC8 for Windows CE/Mobilename_WinCE -
-

If you happen to open a VC7.1 file from within VC8, it will offer to convert -the file to the newer format for you. With the stock VC8, do not do this; -Visual Studio will crash while attempting to convert the large -solution and project files to build ACE. Simply refuse the conversion and -open the file with the correct format. Note that Microsoft has fixed this -problem. See - -https://msdn.microsoft.com/visualc/downloads/default.aspx for information. -

- -
    -
  1. Uncompress the ACE distribution into a directory, where it will - create a ACE_wrappers directory containing the distribution. The - ACE_wrappers directory will be referred to as ACE_ROOT in the - following steps -- so ACE_ROOT\ace would be C:\ACE_wrappers\ace if - you uncompressed into the root directory.
    -
    -
  2. Create a file called config.h in the ACE_ROOT\ace - directory that contains:
    -
    - #include "ace/config-win32.h"
    -
    - -
  3. The static, DLL and MFC library builds are kept in - different workspaces. Files with names *_Static contain project - files for static builds. Workspaces for static and DLL builds will be - available through the stock release at DOC group's website. The - workspaces for MFC are not available and have to be generated using - MPC. Please see MPC's README for - details.

    -
  4. Now load the solution file for ACE (ACE_ROOT/ACE.sln).
    -
    -
  5. Make sure you are building the configuration (i.e, Debug/Release) - the one you'll use (for example, the debug tests need the debug - version of ACE, and so on). All these different configurations are - provided for your convenience. You can either adopt the scheme to - build your applications with different configurations, or use - ace/config.h to tweak with the default settings on - NT.
    Note: If you use the dynamic libraries, - make sure you include ACE_ROOT\lib in your PATH whenever you run - programs that uses ACE. Otherwise you may experience problems - finding ace.dll or aced.dll.
    -
    -
  6. If you want to use the standard C++ headers (iostream, cstdio, ... - as defined by the C++ Standard Draft 2) that comes with MSVC, - then add the line:
    -
    - #define ACE_HAS_STANDARD_CPP_LIBRARY 1
    -
    - before the #include statement in ACE_ROOT\ace\config.h.
    -
    -
  7. To use ACE with MFC libraries, also add the following to - your config.h file. Notice that if you want to - spawn a new thread with CWinThread, make sure you spawn the - thread with THR_USE_AFX flag set.
    -
    - #define ACE_HAS_MFC 1
    -
    - By default, all of the ACE projects use the DLL versions of the - MSVC run-time libraries. You can still choose use the static (LIB) - versions of ACE libraries regardless of run-time libraries. The - reason we chose to link only the dynamic run-time library is that - almost every NT box has these library installed and to save disk - space. If you prefer to link MFC as a static library into ACE, you - can do this by defining ACE_USES_STATIC_MFC in your - config.h file. However, if you would like to link - everything (including the MSVC run-time libraries) statically, - you'll need to modify the project files in ACE yourself.

    -

  8. Static version of ACE libraries are built with - ACE_AS_STATIC_LIBS
    defined. This macro should - also be used in application projects that link to static ACE - libraries
    -
    - Optionally you can also add the line
    -
    - #define ACE_NO_INLINE
    -
    - before the #include statement in ACE_ROOT\ace\config.h to disable - inline function and reduce the size of static libraries (and your - executables.)
    -
    -
  9. ACE DLL and LIB naming scheme:
    -
    - We use the following rules to name the DLL and LIB files in ACE - when using MSVC.
    -
    - "Library/DLL name" + (Is static library ? "s" : - "") + (Is Debugging enable ? "d" : "") - + {".dll"|".lib"}
    -
    -
- -

More information for ACE/TAO on MSVC can be found -here. The doxygen version of this -document is available under Related Topics in the ACE Library.

- -ACE TESTS

- -The tests are located in ACE_ROOT\tests. There is also a solution in -that directory to build all the tests (tests.sln)

- -Once you build all the tests (Batch Build works well for this), you -can run perl script run_test.pl in the -tests directory to try all the tests.

- - - BUILDING ACE ON A WIN32 MACHINE THAT LACKS A NETWORK CARD

- -You may want to run ACE on a non-networked machine. To do so, you must -install TCP/IP and configure it to ignore the absence of a network -card. This is one method: - -

    -
  1. Run Control Panel -
  2. Choose Network from Control Panel -
  3. Add Adapter: MS Loopback Adapter -
  4. Configure MS Loopback Adapter with 802.3 (default) -
  5. Add Protocol: TCP/IP Protocol -
  6. Configure TCP/IP Protocol with a valid IP address and subnet mask. - Leave everything else at the default settings. -
  7. Add Service: Workstation -
  8. Exit and Restart System -
  9. Run Control Panel again -
  10. Choose Services from Control Panel -
  11. The following services are not necessary and may - be set to Disabled Startup:
    - Alerter
    - Computer Browser
    - Net logon
    - Messanger
    -
  12. Choose Network from Control Panel -
  13. Confirm the following setup. This is all you need to run ACE:
    - Installed Software:
    - Computer Browser
    - MS Loopback Adapter Driver
    - TCP/IP Protocol
    - Workstation
    - Installed Adapter Cards:
    - MS Loopback Adapter

    -

- -WIN32 ALPHA CONFIGURATIONS - -

The project files for Visual C++ no longer contain any configurations -targetted to Windows NT on the DEC Alpha. Below are the steps needed to -recreate the Alpha configurations:

- -
    -
  1. Load the project on the Alpha machine. -
  2. Go to the Build menu and then select Configurations. -
  3. Select the project that you want to convert. -
  4. Click on Add. -
  5. Select the x86 configuration to "Copy settings from" - (either Debug or Release versions). -
  6. Prepend "Alpha " to the beginning of the name under - "Configuration". -
  7. Click OK. -
  8. Close the "Configurations" window. -
  9. Now go to the Project settings. -
  10. For the General Settings, change the output directories to standard ACE - output directories. Intermediate Directories are "Debug" and - "Release" in most cases. The Output Directories are blank, - except for Release versions of executables, in which it is also - "Release". -
  11. For the C/C++ Settings, make sure that the Code Generation's runtime - library is set to "Multithreaded DLL" or "Debug Multithreaded - DLL". -
- -

Note: MSVC 6 has a bug where if a .dsp is converted from version 5 to 6 on -x86, the Alpha configuration can get corrupted. This seems to happen when additional -include or library directories are specified using backslashes instead of forward -slashes. If this occurs, the easiest way to fix it is to recreate it.

- -

 

-

Building and Installing ACE on Windows with Borland -C++

- -If you are building for a machine without a network card, you may want -to check here first.

- -

    -
  1. Uncompress the ACE distribution into a directory, where it will - create an - ACE_wrappers directory containing the source. The ACE_wrappers - directory will be referred to as ACE_ROOT in the following steps -- so - ACE_ROOT\ace would be C:\ACE_wrappers\ace if you uncompressed into the - root directory.
    -
    -
  2. Create a file called config.h in the ACE_ROOT\ace - directory that contains:
    -
    - #include "ace/config-win32.h"
    -
    -
  3. Open a Command Prompt (DOS Box).
    -
    -
  4. Set the ACE_ROOT environment variable to point to the ACE_wrappers - directory. For example:
    -
    - set ACE_ROOT=C:\ACE_wrappers
    -
    -
  5. Set the BCBVER environment vairable to the main version of your Borland C++ compiler. - 6 is the value for Borland C++ Builder 6, 8 the value for Borland C++ Builder 2006. - 4 and 5 are also possible options but not supported anymore.
    -
    - set BCBVER=6
    -
    -
  6. Change to the ACE_ROOT\ace directory.
    -
    -
  7. Build release DLLs for ACE by going:
    -
    - make -f Makefile.bor all
    -
    -
  8. You can build several different versions of ACE by setting environment - variables before you run make:
    -
    - Set the environment variable below to build a debug version of ACE
    - set DEBUG=1
    -
    - Set the environment variable below to build a static version of ACE
    - set STATIC=1
    -
    - Set the environment variable below to build a unicode version of ACE
    - set UNICODE=1
    -
    - Set the environment variable below to build a version of ACE with - Codeguard support. Should only be used when DEBUG is also set
    - set CODEGUARD=1
    -
    - 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 Borland help for more info.
    - set CPU_FLAG=-6
    -
    - Set the environment variable below to build a version of ACE using the - C++BuilderX preview compiler. This compiler isn't supported at this moment - but by setting this environment variable the new compiler is used and - you can expirement with this compiler.
    - set CBX=1
    -
    - You can then start the build with the command -
    make -f Makefile.bor all
    -
    - You may also enable the options by passing them as command line options to make, for example:
    - make -f Makefile.bor -DDEBUG all
    -
    -
  9. Optionally install the ACE header files, libraries and executables -for use - in your applications. Here we are installing them into C:\ACETAO:
    -
    - make -f Makefile.bor -DINSTALL_DIR=C:\ACETAO install
    -
    -
- -These instructions do not cover all possible build configurations. Please -see -http://www.tenermerx.com/programming/corba/tao_bcb/index.html -for more detailed information on building and using ACE+TAO with Borland C++ -Builder.

- -Note that when you run make in a sub directory you give make -f Makefile.bor all. The all is needed to make sure the complete project is build.

- -The Borland C++ Builder 4.0/5.0/6.0/2006 port has been done by Jody Hagins, Christopher Kohlhoff and Johnny Willemsen.

- -ACE TESTS

- -Before you can build the tests you need to build the protocols directory. -Change the directory to ACE_ROOT\protocols and start the build with:

-

-make -f Makefile.bor all -

- -The tests are located in ACE_ROOT\tests, change to this directory. -You build then the tests with the following command:

-

-make -f Makefile.bor all -

- -Once you build all the tests, you can run the automated test script using:

-

perl run_test.pl

in the -tests directory to try all the tests. You need to make -sure the ACE bin and lib directory (in this case -ACE_ROOT\bin and ACE_ROOT\lib) -are on the path before you try to run the tests.

- -


-

Building and Installing ACE on Win32 with MinGW/ MSYS

- -

-If you are building for a machine without a network card, you may want -to check here first. - -

-Building and installing ACE on MinGW -uses a mix of a UNIX building process and -Win32 configuration files. -Also, as MinGW uses GNU g++, you may want to take -a look at the Compiling ACE with GNU g++ section. - -

-You will need the MinGW build tools and libraries, downloable from -http://www.mingw.org. - -
-For our build we require the packages -MinGW and MSYS. - -

    - -
  1. Install the MinGW tools into a common directory, say c:/mingw. -

    - -
  2. Install the MSYS tools into a common directory, say c:/msys. -

    - -
  3. Open a MSYS shell. Set your PATH environment variable so - your MinGW's bin directory is first: - -
           % export PATH=/c/mingw/bin:$PATH
    -       
    - -
  4. Add an ACE_ROOT environment variable pointing to the - root of your ACE wrappers source tree: - -
           % export ACE_ROOT=/c/work/mingw/ACE_wrappers
    -       
    - - From now on, we will refer to the root directory of the ACE - source tree as $ACE_ROOT. -

    - -
  5. Create a file called config.h in the - $ACE_ROOT/ace directory that contains: - -
           #include "ace/config-win32.h"
    -       
    - -
  6. Create a file called platform_macros.GNU in the - $ACE_ROOT/include/makeinclude directory containing: - -
           include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU
    -       
    - - In the above text, don't replace $(ACE_ROOT) with the - actual directory, GNU make will take the value from the - environment variable you defined previously. - -

    - If you lack Winsock 2, add the line - -

           winsock2 = 0
    -       
    - - before the previous one. -

    - -
  7. In the MSYS shell, change to the $ACE_ROOT/ace directory and - run make: - -
           % cd $ACE_ROOT/ace
    -       % make
    -       
    - -

    - This should create libACE.dll (the Win32 shared library) and - libACE.dll.a (the Win32 import library for the DLL). - Note that the name for the ACE DLL follows the MinGW convention, which itself - resembles UNIX. - -

    - If you want static libs also, you may run: - -

           % make static_libs=1
    -       
    - -
  8. - 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 - need to add the directory for libACE.dll to your PATH: - -
           % export PATH=/c/work/mingw/ACE_wrappers/ace:$PATH
    -       
    - -
- -ACE TESTS

- -The tests are located in $ACE_ROOT/tests. -After building the library, you can change to that directory and run -make: - -

       % cd $ACE_ROOT/tests
-       % make
-       
- -

-Once you build all the tests, you can run -run_tests.pl in the -tests directory to try all the tests: - -

       % perl run_test.pl
-       
- -

-If you are using ACE as a DLL, you will need to modify your PATH -variable as explained above. - -

-You may want to check $ACE_ROOT/tests/README for the status -of the various tests on MinGW and the different Windows flavors. - -


-

Building and Installing ACE on Win32 with Cygwin

- -

-If you are building for a machine without a network card, you may want -to check here first. - -

-Building and installing ACE on Cygwin -uses the UNIX building process. -Also, as Cygwin uses GNU g++, you may want to take -a look at the Compiling ACE with GNU g++ section. - -

-You will need the Cygwin build tools and libraries, downloable from -http://www.cygwin.com. -For our build we require the following packages besides the packages the -setup selects by default: - -

-gcc (version 3.3.3), cygserver, make, perl, binutils. -
- -
    - -
  1. Install Cygwin (this can be easy downloading and running - setup.exe - from the Cygwin site). For working with ACE we recommend - to select DOS as default text file type. -

    - -
  2. Open a Cygwin shell. Set your PATH environment variable so - your Cygwin bin directory is first: - -
           % export PATH=//c/cygwin/bin:$PATH
    -       
    - -

    - Note Cygwin uses ``/'' as directory separator, - and ``//X'' as a notation for Win32 drive X. - Note also that you can't use ``c:/cygwin/bin'' - because, for Cygwin, - ``:'' is path separator character, as in UNIX. -

    - -

  3. Add an ACE_ROOT environment variable pointing to the - root of your ACE wrappers source tree: - -
           % export ACE_ROOT=c:/work/cygwin/ACE_wrappers
    -       
    - -

    - Note here you can't use the ``//X'' Cygwin - notation as this is seen by Cygwin's compiler and it doesn't - support that (it does support ``/'' as directory - separator however). - -

    - From now on, we will refer to the root directory of the ACE - source tree as $ACE_ROOT. -

    - -

  4. Create a file called config.h in the - $ACE_ROOT/ace directory that contains: - -
           #include "ace/config-cygwin32.h"
    -       
    - -
  5. Create a file called platform_macros.GNU in the - $ACE_ROOT/include/makeinclude directory containing: - -
           include $(ACE_ROOT)/include/makeinclude/platform_cygwin32.GNU
    -       
    - - In the above text, don't replace $(ACE_ROOT) with the - actual directory, GNU make will take the value from the - environment variable you defined previously. - -
  6. On the Cygwin shell, change to the $ACE_ROOT/ace directory and - run make: - -
           % cd $ACE_ROOT/ace
    -       % make
    -       
    - -

    - This should create libACE.dll (the Win32 shared library) and - libACE.dll.a (the Win32 import library for the DLL). - Note the name for the ACE DLL on Cygwin follows the UNIX convention. -

    - -

    - If you want static libs also, you may run: - -

           % make static_libs=1
    -       
    - -
  7. - The same rules for Win32 search of DLLs apply for Cygwin. If you - want to run some ACE programs from the Cygwin shell, you may - need to add the directory for libACE.dll to your PATH: - -
           # export PATH=//c/work/cygwin/ACE_wrappers/ace:$PATH
    -       
    - - If you are using MPC-generated Makefiles, then the DLLs have been - placed in the lib directory instead of ace and thus your PATH - addition would need to look like this: - -
           # export PATH=//c/work/mingw/ACE_wrappers/lib:$PATH
    -       
    - - -
- -ACE TESTS

- -The tests are located in $ACE_ROOT/tests. -After building the library, you can change to that directory and run -make: - -

       % cd $ACE_ROOT/tests
-       % make
-       
- -

-Once you build all the tests, you can run -run_tests.pl in the -tests directory to try all the tests: - -

       % perl run_test.pl
-       
- -

-If you are using ACE as a DLL, you will need to modify your PATH -variable as explained above. - -

-You may want to check $ACE_ROOT/tests/README for the status -of the various tests on Cygwin and the different Windows flavors. -

- -

-
- -

-

Building and Installing ACE on Win32 with Interix

-

Interix comes with a BSD style make; you need GNU make. -Make builds easily under Interix or there is a prebuilt -package at:

-

http://www.interopsystems.com/tools/warehouse.htm

-

If you are building for a machine without a network -card, you may want to check here first.

-

This port was built and tested under Interix 3.5. a.k.a. -Windows -Services for UNIX 3.5.

-

To build follow the Traditional ACE/GNU Make -Configuration instructions replacing the following include directives:

-

#include -"ace/config-win32-interix.h"

-

for the config.h header

-

and:

-

include -$(ACE_ROOT)/include/makeinclude/platform_win32_interix.GNU

-

for your platform_macros.GNU file.

-

ACE should build fine with just 'make', the only other option tried thus far is -'make static_libs_only=1' which also works. Any -other options may not work.

-

ACE TESTS

-

The tests are located in $ACE_ROOT/tests. After building the library, you can -change to that directory and run make:

-

% cd $ACE_ROOT/tests
% make -

Once you build all the tests, you can run run_test.pl in the tests directory to try all the tests:

-

% run_test.pl

-

If you are using ACE as a shared library, you will need -to modify your LD_LIBRARY_PATH as explained inTraditional ACE/GNU Make Configuration.

-

- -


-

Building and Installing ACE on VxWorks

-For the most part, you should be able to follow the instructions above -to build ACE and applications that use it. Start with the -Unix instructions above to build ACE and the -applications that use it. Please see below for more information on -building ACE on NT hosts for VxWorks targets.

- -A few notes on VxWorks builds (thanks to -Paul von Behren and -Remedy IT for these notes):

-

-

- -You'll have to let ACE know the target type at compile time. There -are several ways to do this; please see the -$ACE_ROOT/include/makeinclude/platform_vxworks5.5.x.GNU -platform file for detailed information.

- -The VxWorks platform_vxworks*.GNU files are set up so that shared -libraries are not built on VxWorks, by default. Only static -libraries, with .a extension, are built. Therefore, it's not -necessary to set the LD_LIBRARY_PATH environment variable on your host -system when building for VxWorks targets. Please note, however, if -you use TAO on VxWorks that you will need to set your LD_LIBRARY_PATH -to find the TAO IDL compiler libraries (installed in the ace -directory) on the host.

- -These non-default VxWorks kernel configuration #defines -are required with ACE:

- -

#define INCLUDE_CPLUS           /* include C++ support */
-#define INCLUDE_CPLUS_IOSTREAMS /* include iostreams classes */
-#define INCLUDE_POSIX_ALL       /* include all available POSIX functions */
-
- -For completeness, here are the non-default #defines that -we used for VxWorks 5.3.1/g++ 2.7.2: - -
#define INCLUDE_CPLUS           /* include C++ support */
-#define INCLUDE_CPLUS_IOSTREAMS /* include iostreams classes */
-#define INCLUDE_CONFIGURATION_5_2 /* pre-tornado tools */
-#define INCLUDE_DEBUG           /* pre-tornado debugging */
-#define INCLUDE_LOADER          /* object module loading */
-#define INCLUDE_NET_SYM_TBL     /* load symbol table from network */
-#define INCLUDE_SYM_TBL_SYNC    /* synchronize host and target symbol tables */
-#define INCLUDE_NFS             /* nfs package */
-#define INCLUDE_PING            /* ping() utility */
-#define INCLUDE_POSIX_ALL       /* include all available POSIX functions */
-#define INCLUDE_RDB             /* remote debugging package */
-#define INCLUDE_RLOGIN          /* remote login */
-#define INCLUDE_RPC             /* rpc package */
-#define INCLUDE_SECURITY        /* shell security for network access */
-#define INCLUDE_SHELL           /* interactive c-expression interpreter */
-#define INCLUDE_SHOW_ROUTINES   /* show routines for system facilities*/
-#define INCLUDE_SPY             /* spyLib for task monitoring */
-#define INCLUDE_STARTUP_SCRIPT  /* execute start-up script */
-#define INCLUDE_STAT_SYM_TBL    /* create user-readable error status */
-#define INCLUDE_SYM_TBL         /* symbol table package */
-#define INCLUDE_UNLOADER        /* object module unloading */
-#define INCLUDE_WINDVIEW        /* WindView command server */
-
- -Also, automatic construction/destruction of static objects -should be enabled.

- -If you use TAO, it's also a good idea to increase the -NUM_FILES parameter from its default of 50 to, -say, 1000.

- -Please note that those VxWorks kernel configuration parameters -are set in the VxWorks configAll.h file. You must rebuild your -VxWorks kernel after modifying that file.

- -If you're first getting started with ACE and/or VxWorks, I recommend -just building the ACE library and tests first. (Some of the ACE -examples, in System_V_IPC, don't build on VxWorks yet.) Then try -running the tests. Please see $ACE_ROOT/tests/README for the latest -status of the ACE tests on VxWorks.

- -Please note that the main entry point is renamed to -ace_main (configurable via ACE_MAIN) on VxWorks with g++, -to comply with its restriction against using main. -In addition, ACE_HAS_NONSTATIC_OBJECT_MANAGER is enabled by default -to cleanly support construction and destruction of static objects. -Please see the Non-static -ACE_Object_Manager discussion for the important implication -of this feature.

- -ACE threads (VxWorks tasks) can be named, for example, by supplying a -non-null argument to the Thread_Manager spawn routines. However, -names beginning with "==ace_t==" are forbidden because -that prefix is used internally by ACE.

- -You can spawn a new task to run ace_main, using either -VxWorks sp, or ACE'S spa. -spa can be used from the VxWorks shell to pass arguments -to ace_main. Its usage is: - -


-spa ace_main, "arg1" [, ...]
-
- -All arguments must be quoted, even numbers. You can start also ace_main -without spawning another thread by using:

- -


-spaef ace_main, "arg1" [, ...]
-
- -ACE also provides the function vx_execae which is capable of running -ace_main in a separate thread, wait for the task to finish and return -the return code from ace_main: - -

-int vx_execae (FUNCPTR acemain,char* arguments, int prio = 0, int opt = 0, int stacksz = 0);
-
-

-You could call this from the VxWorks shell like: -

-

-my_rc = vx_execae ace_main, "-o server.ior -ORBDottedDecimalAddresses 1"
-

- -When prio, opt or stacksz are omitted or specified -as 0 default values will be used. See the VxWorks shell documentation for the -defaults for prio and opt. For stacksz the default is -ACE_NEEDS_HUGE_THREAD_STACKSIZE. -The arguments string will be parsed and passed on to ace_main as -a regular argc and argv.

- -Be aware of the fact that when you execute ace_main directly from the VxWorks -shell argc will be zero and argv* will also be zero. Using argv[0] will not return -the program name, but will result in a crash.
-The ACE helper functions spa, spaef and vx_execae prevent -this problem by building a regular argc and argv which also contain a -valid argv[0] element.

- -

Building Shared Libraries for VxWorks.

- -NOTE: Since VxWorks support is currently being reworked with -an initial focus on static builds the support for shared builds is momentarily -broken. This will be remedied(!) as soon as possible.

- -ACE supports shared libraries for VxWorks, but only with the g++ -compiler. To build shared libraries instead of the default static -libraries, added shared_libs=1 (not -shared_libs_only=1) to either your -ACE_wrappers/include/makeinclude/platform_macros.GNU or -your make invocation. Then, be sure to load the ACE (and -any other) shared library before loading your executable(s).

- -A shared library for VxWorks uses the same code as for a static -(non-shared) library. However, calls to static constructors/ -destructors are added. The code in the shared library must -be reentrant if you shared it between programs (tasks). The -ACE library meets this requirement.

- -Shared libraries reduce build time, executable size, and load -time of the executable. But, you must manually load the shared -library before loading your executable(s) with a command such as: -


--> ld < libACE.so
-
-Shared libraries can be unloaded the same way an executable -(module) is unloaded.

- -NOTE: Shared libraries on VxWorks aren't the same as -shared libraries on other operating systems. In particular, there is -no support for creating copies of writeable global (static) data in -the shared library. This includes the singleton ACE_Object_Manager -instance pointer. If you share global data between separate programs, -they may not work properly. See the discussion of shared code and -reentrancy in the VxWorks' Programmers Guide.

- -Instead of trying to run separate programs onto a VxWorks target, we -recommend creating just one program, and spawning a thread for each -task. The TAO IDL_Cubit test collocation -test is a good example.

- -

Linking ACE and/or TAO Libraries into the VxWorks Kernel.

- -It's easy to link your ACE and/or TAO libraries into the VxWorks kernel. -Just build shared versions, but -disable the munch step. The easiest way to do that is to set the -LD make variable to the name of your linker. For -example, to build a libACE.so for PowerPC that can be linked into -the kernel: -
% cd $ACE_ROOT/ace
-% make LD=ldppc shared_libs=1
-
-After building the shared lib, link it into the kernel by setting -the MACH_EXTRA make variable in the kernel configuration -Makefile. Then, build the kernel using make exe.

- -

Using the one-button ACE tests with VxWorks.

- -It is possible to generate a script to execute all ACE tests. You can do this by executing -

% perl run_test.pl -v -o > run_test.vxworks
-
- -The ACE tests write their output files in a directory named -log/, below the current (tests) directory.
-

-

-To run the tests from the build directory on an NT host where you crossbuild your -VxWorks ACE/TAO you can set up the Target Server File System (TSFS) in your Target Server -configuration. If you f.i. set the root for the TSFS to the root directory of your builddisk -you can set the default directory for the target by issueing the following command -from a Host shell: '@cd "/tgtsvr/{path to ACE}/ACE_wrappers/tests"'. -The '@' addition makes sure this command is executed for the target environment and not the -local host shell environment. -If you also issue the command 'cd {path to ACE}/ACE_wrappers/tests' you can execute the -generated one button testscript like: '< run_test.vxworks'. -

-

-Running the ACE tests automatically from the ACE autobuild tool using Target Server and Host -shell options is also supported. -

-

-If you don't have NFS included in your VxWorks kernel, you can use these steps, provided by -Clarence M. Weaver, -to run the tests and capture their output:

-

    -
  1. What I did was create a log directory on the boot NT host of my VxWorks - target.

    -

  2. I copied all the test applications and the run_test.vxworks script to - the parent of the log directory.

    -

  3. Using the target shell not the host shell, I "cd" to the directory - containing the script and test programs.

    -

  4. Invoked the script using < run_test.vxworks from this target shell.

    -

- -Kirk Davies provided this -approach for running the ACE tests on Tornado II: - - - -

Building ACE on Tornado/NT hosts for VxWorks targets.

-The following, very useful information was contributed by -Chris Ryan -and Paul von Behren. -Please submit corrections, additions, or clarifications to the -the ACE mailing list.

- -NOTE:The make (version 3.74) that is provided with -Tornado 2.2 cannot be used to build ACE. A working version is available -from the WindRiver support site, download the - -make3_80.gvk_patches and the - -make3_80.tor2_2.new_dependency_rules package and install them.

- -Using the Cygnus tools, this approach works: -

- -A few additional Windows Notes, from Paul von Behren:

-

- -And Chris Ryan's instructions for building for VxWorks targets -on Windows NT hosts: - -
    -
  1. Path setting that seems to be working is:

    -

          /tornado/host/x86-win32/bin:
    -      /tornado/host/x86-win32/lib/gcc-lib/i386-wrs-vxworks/cygnus-2.7.2-960126:
    -      /tornado/host/x86-win32/i386-wrs-vxworks/bin:
    -      /ace/ace_wrappers/bin:
    -      /gnuwin32/b18/H-i386-cygwin32/bin:
    -      /gnuwin32/b18/tcl/bin:
    -      /WINNT/system32:
    -      /WINNT:
    -      /WINNT/system32/nls/ENGLISH:
    -      /bin
    -      
    - - Other environment variables:

    -

          WIND_BASE=/tornado
    -      SHELL=/bin/sh.exe
    -      TERM=pcbios
    -      TAO_ROOT=/ace/ACE_wrappers.vxworks/TAO
    -      CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.EXE
    -      GCC_EXEC_PREFIX=/tornado/host/x86-win32/lib/gcc-lib/
    -      WIND_HOST_TYPE=x86-win32
    -      ACE_ROOT=/ace/ACE_wrappers.vxworks
    -      
    - -
  2. /tornado is the root of the Tornado install - ($WIND_BASE). - -
  3. /gnuwin32 is the root of a Cygnus GNU download and install. - -
  4. /bin content is:

    -

          aced.dll
    -      cygwin.dll
    -      perl.exe
    -      rm.exe
    -      sh.exe
    -      true
    -      
    - - aced.dll is produced in an ACE NT source tree according to - documented procedure for Windows VC++ ACE build. - - cygwin.dll is from the Cygnus GNU software download and install. - -
  5. Basically, follow documented procedure for ACE build/install on UNIX - platform. Create a $ACE_ROOT/ace/config.h that looks - like:

    -

          #include "config-vxworks5.x.h"
    -      
    - - And create a - $ACE_ROOT/include/makeinclude/platform_macros.GNU - that looks like:

    -

    -      WIND_BASE = /tornado
    -      WIND_HOST_TYPE = x86-win32
    -      CPU = I80486
    -      include $(ACE_ROOT)/include/makeinclude/platform_vxworks5.5.x.GNU
    -      
    - -
  6. When using cygnus windows GNUTools on WinNT you have to start - make with "--unix" option, otherwise WinNT shell cmd.exe is responded and - not sh.exe, i.e., -
     make --unix static_libs=1
    - 
    -
- -

TAO on NT Tornado host, VxWorks target.

- -
    -
  1. Build ACE and TAO_IDL in the NT tree as already documented. - Be sure to build ACE's gperf on NT, in - ACE_wrappers/apps/gperf/src.

    - -

  2. Build $TAO_ROOT/tao -
          CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
    -      cd $TAO_ROOT/tao
    -      /gnuwin32/b18/H-i386-cygwin32/bin/make
    -      
    - -
  3. Build orbsvcs. -
          CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
    -      cd $TAO_ROOT/orbsvcs/orbsvcs
    -      /gnuwin32/b18/H-i386-cygwin32/bin/make
    -      
    - -
  4. Build $TAO_ROOT/tests

    -

- - -

Jaffar Shaikh's -Notes for Building ACE and TAO for VxWorks on NT host

-

Scenario: I was building the ACE and TAO for VxWorks -on NT. The target system was a PPC860 based chassis and another a NT -host based card.

-

Host System:

-

NT 4.0 workstation with 128 M RAM, 266MHz Pentium.

- -

Software Needed For Building TAO

-

1) Active State's ActivePerl from -http://www.activestate.com/software/default.htm -

- -

2) Tornado 2.2.1 from Windriver.

- -

3) Cygwin GNU to build TAO. It is available for NT as a freeware -from the Cygwin site

-

The Cygwin Make (version 3.75) can only build the TAO not the -Tornado II make (version 3.74)

- -

Environment Variables:

-

On NT the environment Variables are set as follows, (from -Control Panel-> System -> Environment)

-

I added following Environment variable entries to PATH

- -

C:\Perl\bin\;

-

C:\tornado\host\x86-win32\bin;

-

C:\tornado\host\x86-win32\powerpc-wrs-vxworks\bin;

-

C:\tornado\host\x86-win32\lib\gcc-lib\powerpc-wrs-vxworks\cygnus-2.7.2-960126;

-

C:\Corba\Ace_wrappers\bin;

-

C:\Cygwin\bin;

-

C:\Cygwin\usr\bin;

-

C:\bin

- -

Additional Environmental variables and the values,

-

CPU=PPC860

-

LD_LIBRARY_PATH=

-

SHELL=/bin/sh.exe

- -

ACE_ROOT=/Corba/ACE_wrappers

-

WIND_BASE=/tornado

-

SHELL=/bin/sh.exe

-

TERM=pcbios

-

TAO_ROOT=/Corba/ACE_wrapper/Tao

-

CPP_LOCATION=/Program Files/Microsoft Visual Studio/VC98/Bin/CL.exe

-

GCC_EXEC_PREFIX=/tornado/host/x86-win32/lib/gcc-lib/

-

WIND_HOST_TYPE=x86-win32

-

PERL_PATH=/perl/bin/perl.exe

- -

Directories of importance

-

C:\Corba <-- Ace_wrappers (uzipped)

-

C:\tornado <-- Tornado installed

-

C:\Perl <-- Perl installed

-

C:\Cygwin <-- Cygwin installed

-

C:\bin <-- Copy these files,

-

Ace.dll, <-- After you build Ace

-

gperf.exe <-- After you build gperf

-

Cygwin1.dll, <-- After you install Cygwin

-

perl.exe, <-- After you install Perl

-

rm.exe <-- After you install Cygwin

-

sh.exe <-- After you install Cygwin

-

true <-- After you install Cygwin

-

Create Files

-

1) C:\Corba\ACE_Wrappers\ace\config.h

-

with entry

-

#if defined (_MSC_VER) || (__BORLANDC__)

-

#include "ace/config-win32.h"

-

#else

-

#define ACE_HAS_IP_MULTICAST

-

#include "ace/config-vxworks5.x.h"

-

#endif

- -

2) C:\Corba\ACE_wrappers\include\makeinclude\platform_macros.GNU

-

WIND_BASE = /tornado

-

WIND_HOST_TYPE = x86-win32

-

include -$(ACE_ROOT)/include/makeinclude/platform_vxworks5.5.x.GNU

-

ACE_COMPONENTS=FOR_TAO (you may choose this option to build ACE -library that supports TAO)

- -

-

Steps to Build

-

1) Build Ace.dll under NT

-

In MS Visual C++ open C:\Corba\ACE_wrappers\ace.sln And build Ace -DLL

-

Copy Ace.dll in C:\bin

- -

2) Build gperf utility under NT

-

In MS Visual C++ open -C:\Corba\ACE_wrappers\apps\gperf\src\gperf.sln. Build gperf.exe

-

Copy gperf.exe to C:\bin

- -

3) Mount Directries in Cygwin

-

Click on Cygnus Solutions -> Cygwin Bash Shell

-

Mount following directories by using mount command.

-

create respective directories first then use mount command

- -

e.g. Create /Corba directory then use $mount -s "C:\Corba" -/Corba

- -

C:\Corba mount to /Corba

-

C:\tornado mount to /tornado

-

C:\Perl mount to /perl

-

C:\Cygwin mount to /cygwin

-

C:\bin mount to /bin

-

C:\Program Files mount to /Program Files

- -

4) Build ACE in Cygwin

-

$cd /Corba/ACE_wrappers/ace

-

$make static_libs=1

-

This will build your ace library libACE.a for VxWorks. If you use -option shared_libs=1 then the build will be libACE.so. The other -options are same as follows.

- -

5) Build TAO in Cygwin

-

$cd $TAO_ROOT/tao

-

$make debug=0 optimize=1 static_libs_only=1 minimum_orb=1 -

-

for shared libs use shared_libs=1

- -

The minimum Tao does not have following components,

-

Dynamic Skeleton Interface

-

Dynamic Invocation Interface

-

Dynamic Any

-

Interceptors

-

Interface Repository

-

Advanced POA features

-

CORBA/COM interworking

- -

You may play around with above options to find suitable build for -your needs. For example when you give option debug=1 all the debug -symbols will be created and the build will huge in size. The debug -symbols are necessary when you want to debug your code.

- -


-
-

Building and Installing ACE Network Services

- -The following explains how to build the ACE network services on UNIX and Win32. - -


-

Building and Installing ACE Network Services on UNIX

- -Building and installing ACE Network Services on UNIX is relatively -simple (the process for Win32 is different). -Here's what you need to do:

- -

    - -
  1. Build and install ACE on UNIX as described earlier. If ACE is built at the root of the ACE - source tree (and ACE has been ported to your platform, of course) the - netsvcs static and shared object libraries should be built - automatically. In addition, the server driver program - (main) contained in $ACE_ROOT/netsvcs/servers/main.cpp - should also be compiled and ready to run.

    - -

  2. Set your LD_LIBRARY_PATH environment variable to - where the binary version of the ACE netsvcs library. For - example, you probably want to do something like the following

    - -

    
    -      % setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$ACE_ROOT/lib:$LD_LIBRARY_PATH
    -      

    - -

  3. By default, if the shared object library is built, the services - are linked into the main driver program dynamically. - To specify which services should be linked in and executed, edit the - $ACE_ROOT/netsvcs/servers/svc.conf - file. During your editing, you should update information (such as the - default service port numbers) that affects the initialization of - services in this file. Refer to the - Service Configurator - documentation to learn how the configuration file is parsed and - how the services are dynamically linked and executed. In - addition, refer to the Network - Services documentation to learn more about how to configure - each network service.

    - -

  4. If you only want to link the services statically, simply remove - or rename the svc.conf file.

    -

- -


-

Building and Installing ACE Network Services on Win32

- -Once again, there are supplied project for Visual C++ 7.1 or later for -the Network Services.

- -


-

Building and Installing the ACE_SSL Library

- -

The first step for all platforms is to build and install the -OpenSSL distribution. The -ACE_SSL library must then be built according to the instructions -below.

-

Unix

-
    -
  1. Make sure the OpenSSL header file directory is in your compiler's - include path, and that OpenSSL libraries are in your library link/load - path (e.g. LD_LIBRARY_PATH). If you - installed OpenSSL into a set of directories unknown by the compiler, - set the SSL_ROOT environment variable to point to the - top level directory of your OpenSSL distribution, i.e. the one - containing OpenSSL's include and lib - directories.
  2. -
  3. Build ACE as described above. When building ACE, add - ssl=1 - to your make - command line invocation, or add it to your - platform_macros.GNU file.
  4. -
  5. Build the ACE_SSL library in the $ACE_ROOT/ace/SSL - directory. The ACE_ROOT environment variable should be set - prior to this point.
  6. -
-

Microsoft Visual Studio

-
    -
  1. Set the SSL_ROOT environment variable to the location - of the directory containing the OpenSSL inc32 and - out32dll directories. -
  2. Add ssl=1 to your MPC - $ACE_ROOT/bin/MakeProjectCreator/config/default.features - or $ACE_ROOT/local.features file, and re-run MPC to add - support for building the ACE_SSL library to your MSVC++ - workspaces and projects. -
  3. Open the ACE.sln solution, and refer to the ACE build - and installation instructions above for details on creating a - config.h configuration header for this platform. Once - the config.h file has been created, build the - ACE_SSL project.
  4. -
-

Borland C++

-

Support for building ACE's ACE_SSL library and TAO's SSLIOP - pluggable protocol with Borland C++ does exist. -

    -
  1. Set the SSL_ROOT environment variable to the location - of the directory containing the OpenSSL inc32 and - out32 directories. -
  2. Add ssl=1 to your MPC - $ACE_ROOT/bin/MakeProjectCreator/config/default.features - or $ACE_ROOT/local.features file, and re-run MPC to add - support for building the ACE_SSL library to your Borland C++ makefiles. -
  3. Build ACE and TAO. -
-

- -

-

Building and Using GUI Reactors Libraries

-There is a general method for building and using ACE_Reactors for various GUI -libraries. -

Building GUI Reactor Library

-
    -
  1. Try to generate build files using MPC. Inspect the output of MPC to find out which features are - necessary to build given reactor. Add these features to - ACE_wrappers/bin/MakeProjectCreator/*.features file, or pass them directly to MPC - using -features command line option. For example, for FlReactor the procedure - consists of five steps -
      -
    1. In the first pass one gets that x11 (X11 libraries) is missing.
      - $ mwc.pl -type gnuace - Skipping ACE_FlReactor (ace_flreactor.mpc), it requires x11. -
    2. - Ensure that X11 libraries are installed, then pass x11=1 feature to MPC. -
    3. In the second pass one gets that gl (OpenGL library) is missing.
      - $ mwc.pl -type gnuace -features x11=1 ace.mwc - Skipping ACE_FlReactor (ace_flreactor.mpc), it requires gl. -
    4. - Ensure that OpenGL libraries are installed, then pass gl=1 feature to MPC. -
    5. In the third pass one gets that fl (Fast Light Toolkit) is missing.
      - $ mwc.pl -type gnuace -features x11=1,gl=1 ace.mwc - Skipping ACE_FlReactor (ace_flreactor.mpc), it requires fl. -
    6. - Ensure that Fast Light Toolkit libraries are installed, then pass fl=1 - feature to MPC. -
    7. In the fourth pass one gets that ace_flreactor feature is missing
      - $ mwc.pl -type gnuace -features x11=1,gl=1,fl=1 ace.mwc - Skipping ACE_FlReactor (ace_flreactor.mpc), it requires ace_flreactor. -
    8. - Allow MPC to generate makefiles for FlReactor by setting ace_flreactor=1 feature. -
    9. In the last pass one obtains files for building FlReactor.
      - $ mwc.pl -type gnuace -features x11=1,gl=1,fl=1,ace_flreactor=1 ace.mwc -
    10. -
    - Currently to simplify MPC generation some of features are turned on by default in - ACE_wrappers/bin/MakeProjectCreator/global.features. For examples to generate - files related with Fl one has to provide only fl=1 feature. To obtain a more fine grained controll - over MPC generation process one may modify ACE_wrappers/bin/MakeProjectCreator/*.features - files. -
  2. -
  3. Required build files are generated now, it is enough then to invoke build tool. - For example for under MPC::gnuace one has to call - make fl=1. For MPC::vc7 target all features are - encoded in generated project files, thus it is enough to compile ACE using MSVC. -
  4. -
- The build procedure leads to a specific GUI Reactor library. For example, for - Qt and Linux one gets libQtReactor.so, while for - Windows the results are shared QtReactor.dll and import - QtReactor.lib libraries or their variants depending on build options. - When compiling TAO also GUI related libraries are created like libTAO_QtResource.so. -

Using GUI Reactor Library

- Here one has at least three use cases: -
    -
  1. Applications with their own build system. - To use ACE support for GUI one has to include specific GUI headers and - link with specific ACE_[GUI]Reactor library. When using TAO support for GUI one has - also to link with specific TAO_[GUI]Resource library.
  2. -
  3. Applications with build system using MPC. - In general, it is better to create specific base projects for using ACE GUI support in such application. - Base projects provided by ACE ACE_wrappers/bin/MakeProjectCreator/[ace,tao]_[gui][reactor,resource].mpb - may be an examples of how to do this.
  4. -
  5. Internal ACE applications like tests or examples. - MPC project for internal ACE application using GUI support should be derived from - ace_[gui]reactor.mpb base projects. To employ TAO support for GUI one should derive - the project from tao_[gui]resource.mpb These base projects ensure that all necessary libraries - are linked to the application, specifies features necessary to build a project and moreover impose a - build order consistant with ACE. For example, the application project using XtReactor should be - derived from ace_xtreactor.mpb.
  6. -
-

Notes on specific GUI Reactors

- - -
-

Installation Notes

- - - - -
-

Compiling ACE with GNU g++

- -If you use the GNU GCC g++ compiler please note the following: - - - - -

-

What Do I Need to Build for TAO?

-Toshio Hori <toshi@etl.go.jp> provided these suggestions on building -just what's needed for (a subset of) TAO:

- -I usually make: -

    $ACE_ROOT/ace,
-    $ACE_ROOT/apps/gperf,
-    $TAO_ROOT/tao,
-    $TAO_ROOT/TAO_IDL, and
-    $TAO_ROOT/orbsvcs/orbsvcs
-
-and the whole make takes less than an hour on my Solaris 7 for intel, -Pentium-III/550MHz, 256MB memory, 512MB swap machine. (Top secret: I -renice the 'make' process to the highest priority, -20... ;-) - -To save time and space, I set -
    TAO_ORBSVCS = Naming Time Trader ImplRepo
-
-in $ACE_ROOT/include/makeinclude/platform_macros.GNU also. See -TAO's orbsvcs -library customization instructions for more information.

- - -


System Resource -Requirements

The amount of system resources required to build -ACE and TAO varies greatly. The required system resources are -influenced by OS and compiler platform, build options, and component -configurations. As a rough guide, the typical peak memory requirement -can be well over 512 MB (notably, for TAO's orbsvcs). Depending on -your OS and compiler configuration, an entire build -of ACE and TAO can use well over 4 GB of disk space. It's usually not -necessary to build all of ACE and TAO, though.

- -Much less disk space is required for just the libraries. For example, -see the ACE -library subset sizes.

- -If you run out of memory when building, you might consider trying -some or all of these suggestions:

-

- -


-

General MPC information

- -The Makefile Project Creator (MPC) 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 USAGE, README for -documentation on MPC.

- -A common usage for creating a Windows workspace containing just the -core ACE and TAO libraries and executables is the following: - -


-C:> cd %TAO_ROOT%
-C:> %ACE_ROOT%\bin\mwc.pl -type vc71 TAO_ACE.mwc
-
- -Replace vc71 with whatever project type you want to use. On Linux and -other UNIX platform use the gnuace type:

- -


-% cd $TAO_ROOT
-% $ACE_ROOT/bin/mwc.pl -type gnuace TAO_ACE.mwc
-
- -this creates the appropriate GNUmakefiles. Additional information on -how to obtain, configuration, and build ACE+TAO using MPC appear at -the OCI FAQ.

- -If you are attempting to generate project files using MPC, and you get -the following error message:
- -

ERROR: Unable to find the MPC modules in /builds/ACE_wrappers/MPC.
-You can set the MPC_ROOT environment variable to the location of MPC.
-
- -You need to do one of the following: - -
    -
  1. If you have already obtained MPC, either move it underneath the -ACE_wrappers directory or set your MPC_ROOT environment variable to point -to the full path of MPC.
  2. -
  3. Check out MPC from the DOC Group subversion repository -and set your MPC_ROOT environment variable.
  4. -
- -You can check -out MPC from the doc_group subversion server using the following command. - -
svn co svn://svn.dre.vanderbilt.edu/DOC/MPC/trunk MPC
-
- -The README and USAGE files in the MPC/docs directory are an up-to-date -source of documentation, however it is not a complete set of -documentation. The TAO Developer's Guide from OCI starting with the -1.3a version contains more information about MPC.

- -The MPC chapter from the TAO Developer's Guide is available at -http://downloads.ociweb.com/MPC/. Some of MPC has changed since -this version, but it is largely accurate. An updated version will be -available as newer versions of the TAO Developer's Guide are released. -In the meantime, please see the README and USAGE files in the MPC -directory. - -

-

-

Working with ACE in Eclipse

- - -

-The Eclipse CDT C++ development environment can be used to develop ACE applications. You can configure a new CDT project to build ACE using either a local source distribution or checking out ACE from CVS in Eclipse. These are the steps to create the CDT project to build ACE. -

- -

-

To create an Eclipse project for ACE starting from CVS:

-
    -
  1. In the "CVS Repository Exploring" perspective, navigate to the module containing ACE.
  2. -
  3. Checkout the module using "Check Out As" and select the "project configured using the New Project Wizard" option.
  4. -
  5. Select "Standard Make C++ Project" for the project type.
  6. -
  7. Follow the steps outlined above, up to the point of running make, for building ACE on your platform. Use "path_to_your_eclipse_workspace"/"project_name" as your $ACE_ROOT. -
  8. If you had to regenerate the makefiles using MPC, select the root folder for your poject and use the import wizard to add them to your project.
  9. -
  10. Select the root folder for the project and use the "Create Make Target" wizard to setup the appropriate make command and options.
  11. -
  12. Select the root folder and run "Build Make Target." This will build ACE.
  13. -
-

- - - -

-

To create an Eclipse project for ACE from a local source distribution:

-
    -
  1. Launch the "New Project Wizard" in Eclipse.
  2. -
  3. Select "Standard Make C++ Project" for the project type.
  4. -
  5. On the project name page, uncheck the "use default" location option and replace the default path with the path to your source distribution.
  6. -
  7. Follow the steps, up to the point of running make, for building ACE on your platform. -
  8. If you had to regenerate the makefiles using MPC, select the root folder for your poject and use the import wizard to add them to your project.
  9. -
  10. Select the root folder for the project and use the "Create Make Target" wizard to setup the appropriate make command and options.
  11. -
  12. Select the root folder and run "Build Make Target." This will build ACE.
  13. - - -
-

- -

- -

-

Advanced Topics

- - - -


-

Non-static -ACE_Object_Manager

The ACE_Object_Manager can be instantiated -as a static object, can be instantiated on the stack of the main -program thread, or can be explicitly instantiated and destroyed by the -application with ACE::init () and ACE::fini -(). The comments in the header file, -ace/Object_Manager.h, as well as Section 1.6.3 in -The ACE Programmer's Guide -provide more detail.

- -NOTE: -Special requirements are imposed on applications if the -ACE_Object_Manager is instantiated, by ACE, on the stack of the main -thread. This behavior is selected by defining -ACE_HAS_NONSTATIC_OBJECT_MANAGER in -ace/config.h. Again, see the ACE Object_Manager header file, -ace/Object_Manager.h for more information. One of -these requirements is discussed here, because it is so important. -Please note that ACE_HAS_NONSTATIC_OBJECT_MANAGER is -defined in the distributed ACE config.h headers for -VxWorks and Win32.

- -The important requirement is that the program must -declare its main function with two arguments, even if -they're not used, and with int return type: - -


-int
-main (int, char *[])
-
- -If you don't declare main exactly that -way, then you'll see a link error about ace_main_i being -undefined.

- -Alternatively, this feature can be disabled by commenting out the -#define ACE_HAS_NONSTATIC_OBJECT_MANAGER in the -ace/config.h. But, that will make repeated testing more -difficult on VxWorks. And, you'd either have to call static -constructors and destructors manually or unload/load the program -between runs. On Win32, disabling the feature can possibly lead to -shutdown difficulties.

- -WARNING: -ACE_HAS_NONSTATIC_OBJECT_MANAGER assumes that your -main function is named main. Any violation -of this assumption is at your peril. If you really need to call your -entry point something other than main, you'll need to -construct and destroy the ACE_Object_Manager. The best way to do that -is to call ACE::init () and ACE::fini (). -Or, see the #define of main (int, char *[]) -in ace/OS_main.h to see how ACE does -that for entry points named main. - -


-

Cloning the Source Tree

- -On UNIX platforms, we typically like to support multiple platform -builds using the same ACE source tree. This idiom is supported by ACE -using the $ACE_ROOT/bin/create_ace_build.pl script. - -To clone the source tree, create ./build and ./build/{your build name} -subdirectories under the ACE_wrappers directory. -Then invoke the create_ace_build.pl script to clone the source tree using -soft links from your build directory back to the actual sources. -Here is an example:

- -

% cd ACE_wrappers
-% mkdir build build/build-SunOS5
-% perl bin/create_ace_build.pl -a -v build-SunOS5
-% cd build/build-SunOS5
-% setenv ACE_ROOT $cwd
-% make
-

- -This will establish a complete tree of links. In addition, make sure -you set your LD_LIBRARY_PATH to -$ACE_ROOT/lib:$LD_LIBRARY_PATH on SVR4 UNIX -platforms.

- -When you do a make in the $ACE_ROOT directory you will be producing -object code that is not stored in the same place as the original -source tree. This way, you can easily build another platform in a -parallel tree structure.

- -See the comments at the top of the create_ace_build.pl script for -further usage information. - -


-

Additional Build Tips for MVS

- -For all intents and purpose, MVS OpenEdition (OE) is another flavor of -UNIX, therefore, the instructions under Building -and Installing ACE on Unix can be used along with the following -additional tips:

- -You can get a copy of GNU make that has been ported to MVS OpenEdition from -the IBM OpenEdition web site. -ACE's make scheme generates compile commands that have options and -operands interspersed. By default, the c89/cc/c++ compiler expects all options to -precede all operands. To get around this, you must set a special -compiler environment variable (_CXX_CCMODE) to 1 which tells the compiler -to allow options and operands to be interspersed.

- -Note that the environment variable LD_LIBRARY_PATH is -called LIBPATH on MVS.

- -Shared objects are built a little different on MVS than on -other UNIX implementations. This has been accounted for in the makefiles -that come with ACE When the linker (via the cxx command) builds the -libACE.so file it will also create a file called libACE.x. This is a -side-deck file and it must be included in subsequent link edits with -application code. For more information on this see the C/C++ MVS -Programming Guide. If you want to build your application statically, -i.e., using libACE.a instead of libACE.so, you can set ACELIB to -ACELIB_STATIC in platform_mvs.GNU.

- -When the libACE.so file is built (via the MVS pre-linker and binder), you -will get a rc=4 from the pre-linker. This is ok. This is due to some -warnings about unresolved references which should get resolved during the -link step. Note, however, there shouldn't be any unresolved references -from the binder (linkage editor). You can get pre-link and link maps by -uncommenting the PMAP and LMAP lines in the platform_mvs.GNU file. - -


-

Makefile Flags

- -GNU make provides many options to customize its operation. See its -documentation for more information. One example is that for multi-cpu -UNIX machines you will be able to build faster if you use:

- -


-% make -j n
-

- -which allows parallel compilation. The number n should -typically be the number of CPUs. It is likely that builds will be -faster even on single-CPU UNIX machines with make -j -2.

- -ACE further supports the following flags. They can be enabled either -on the command line, e.g., "make purify=1", or added to your -platform_macros.GNU. To disable the option, -set the flag to null, -e.g., "make debug=". Some flags support setting to 0 disable, e.g., -"make debug=0". debug=1 is enabled in the platform files that are -released with ACE.

- -Please note that the effects of a flag may be platform specific. -Also, combinations of certain flags may or may not be allowed on -specific platforms, e.g., debug=1 opt=1 is supported by g++ but -not all other C++ compilers.

- -If you use Purify or Quantify: purify or quantify must -be on your PATH. By default, ACE puts the Purify/Quantify -caches below /tmp. To override that, set the -PURE_CACHE_BASE_DIR variable, either in your environment -or on the make make command line, to the destination -directory for your instrumented libraries.

- -

Flag             Description
-----             -----------
-debug            Enable debugging; see DCFLAGS and DCCFLAGS.
-exceptions       Enable exception handling (not supported by all platforms).
-include_env      Support old-style ACE_TRY_ENV declarations in methods.
-                 This switch is necessary for compiling TAO applications
-                 in the native exception configuration that were written
-                 for TAO versions before 1.2.2.
-                 In TAO 1.2.2, new macros were introduced that supercede
-                 the direct ACE_TRY_ENV declarations. These are the
-                 ACE_ENV_ARG macros that are defined in ace/CORBA_macros.h
-                 and are documented in docs/exceptions.html.
-                 This switch only affects the exceptions=1 configuration.
-                 It is for backward compatibility only.
-                 There will be warnings about unused _ACE_environment_variable
-                 parameters when using include_env=1.
-                 If possible, do not use it, but instead change your TAO
-                 applications to use the ACE_ENV_ARG macros.
-fast             Enable -fast option, e.g., with Sun C++.
-inline           Enable ACE inlining.  Some platforms enable inlining by
-                   default, others do not.
-optimize         Enable optimization; see OCFLAGS and OCCFLAGS.
-pace             Enable PACE as the underpinnings of ACE_OS.
-probe            Enable ACE_Timeprobes.
-profile          Enable profiling; see PCFLAGS and PCCFLAGS.
-purify           Purify all executables.
-quantify         Quantify all executables.
-repo             Use GNU template repository (g++ with repo patches only).
-rtti             Enable run-time type identification.  On some platforms,
-                   it is enabled by default, so this is ignored.
-shared_libs      Build shared libraries. Ignored if static_libs_only is set.
-static_libs      Build shared libraries. Ignored if shared_libs_only is set.
-shared_libs_only Only build shared libraries.  Ignored if no SHLIBs are
-                   specified by the Makefile, as in performance-tests/Misc.
-static_libs_only Only build static libraries.
-threads          Build with thread support.
-xt               Build with Xt (X11 Toolkit) support.
-fl               Build with FlTk (Fast Light Toolkit) support.
-tk               Build with Tk (Tcl/Tk) support.
-qt               Build with Qt (Trolltech Qt) support.
-ssl              Build with OpenSSL support.
-rapi             Build with RAPI
-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.
-
-Usually, users do not need to be concerned with make targets.
-Just enter "make" on the command line to build.  A few notable
-targets are listed below.
-
-Target             Description
-------             -----------
-show_statics       Lists all static objects in object files built for
-                     current directory.  Only supported for g++.
-show_uninit        Lists all uninitialized in object files built for
-                     current directory.  Only supported for g++.
-
-
- -


-

Building from Subversion (anonymous access)

-If users are building from our Subversion repository the -GNUmakefiles, and project files for building on various platforms will -not be available. Subversion users are expected to generate them -using MPC before building ACE, TAO or -CIAO. We point out some suggestions below to get bootstrapped -quickly. - - - -

- -Back to the ACE -home page. - - - - -

- - - -Last modified: Wed Jul 5 17:26:22 EST 2006 - - - -

diff --git a/ACE/ACE.mwc b/ACE/ACE.mwc deleted file mode 100644 index 82b50da4046..00000000000 --- a/ACE/ACE.mwc +++ /dev/null @@ -1,32 +0,0 @@ -// $Id$ -workspace { - exclude(automake) { - build - } - exclude { - TAO - } - - // The associate scope does not add directories to the workspace; - // it only associates a name with one or more directories. - associate(examples) { - examples - } - associate(tests) { - performance-tests - tests - } - associate(gperf) { - gperf - } - - // The '--' is a special key that indicates that the associated - // projects should be of the form @NAME@ in the generate Makefile.am. - associate(--) { - ACEXML - ASNMP - protocols - KOKYU - TAO - } -} diff --git a/ACE/ACEXML/ACEXML.mwc b/ACE/ACEXML/ACEXML.mwc deleted file mode 100644 index dd297256b34..00000000000 --- a/ACE/ACEXML/ACEXML.mwc +++ /dev/null @@ -1,5 +0,0 @@ -// -*- MPC -*- -// $Id$ - -workspace { -} diff --git a/ACE/ACEXML/ChangeLog b/ACE/ACEXML/ChangeLog deleted file mode 100644 index ecb027c6021..00000000000 --- a/ACE/ACEXML/ChangeLog +++ /dev/null @@ -1,1142 +0,0 @@ -Mon Jul 30 08:38:12 UTC 2007 Johnny Willemsen - - * apps/svcconf/Svcconf_Handler.cpp: - Layout changes - -Mon Jul 16 10:19:51 UTC 2007 Abdullah Sowayan - - * apps/svcconf/Svcconf_Handler.h: - * apps/svcconf/Svcconf_Handler.cpp: - * common/Attributes_Def_Builder.h: - * common/ContentHandler.h: - * common/DTDHandler.h: - * common/DefaultHandler.h: - * common/DefaultHandler.cpp: - * common/Element_Def_Builder.h: - * common/EntityResolver.h: - * common/ErrorHandler.h: - * 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: - * parser/debug_validator/Debug_Attributes_Builder.h: - * parser/debug_validator/Debug_Attributes_Builder.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: - - Fixed Fuzz warnings. Zap the usage of exception specification. - -Sun Jun 3 20:02:32 UTC 2007 Olli Savia - - * common/FileCharStream.cpp: - Replaced ungetc with ACE_OS::ungetc. - -Fri May 18 02:50:42 UTC 2007 Abdullah Sowayan - - * common/Mem_Map_Stream.cpp: - - It makes no sense to have code after a return statement - (such as ACE_ERROR_RETURN). It causes some builds to have - "statement is unreachable" warning. - - * examples/SAXPrint/main.cpp: - - Enhanced the "#ifndef" macros used to avoid "statement is - unreachable" warning. - -Tue May 15 17:36:23 UTC 2007 Johnny Willemsen - - * parser/parser/ParserInternals.h: - Removed msg_ member, it is not used at all. Thanks to Rajiv K. Shukla - for reporting this - -Tue Feb 27 21:15:23 UTC 2007 Ossama Othman - - * common/FileCharStream.cpp (open): - - s/ACE_Utils::Truncate/ACE_Utils::truncate_cast/g. The former is - deprecated. - -Tue Feb 20 17:26:28 UTC 2007 Krishnakumar B - - * common/InputSource.cpp: - * parser/parser/ParserContext.h: - * parser/parser/ParserContext.inl: - Use std::swap instead of ACE_Swap - -Tue Feb 13 20:17:28 UTC 2007 Krishnakumar B - - * apps/svcconf/Svcconf_Handler.cpp: Fixed a problem with - ACE_Module getting unloaded prematurely due to - ACEXML_Svcconf_Handler failing to register it with the service - repository. Thanks to gzeleniy@gmail.com for providing the fix. - -Wed Jan 03 14:20:00 UTC 2007 Simon Massey - - * common/XML_Macros.h: - With MFC, must delete any caught and eaten "out of memory" exceptions. - -Fri Oct 28 02:29:57 UTC 2006 Ossama Othman - - From Russell Mora - * common/ContentHandler.h: - * common/DefaultHandler.h: - * common/DefaultHandler.cpp: - * common/FileCharStream.cpp: - * common/FileCharStream.h: - * common/HttpCharStream.cpp: - * common/HttpCharStream.h: - * common/Mem_Map_Stream.cpp: - * common/Mem_Map_Stream.h: - * common/XMLFilterImpl.cpp: - * common/XMLFilterImpl.h: - * common/ZipCharStream.cpp: - * common/ZipCharStream.h: - * common/StrCharStream.cpp: - * examples/SAXPrint/Print_Handler.cpp: - * examples/SAXPrint/Print_Handler.h: - * examples/SAXPrint/SAXPrint_Handler.cpp: - * examples/SAXPrint/SAXPrint_Handler.h: - * parser/parser/Parser.cpp: - * parser/parser/Parser.h: - * tests/ContentHandler_Test.cpp: - - Added support for 64-bit file offsets. - - Addressed 64-bit conversion warnings. - -Tue Oct 24 18:00:15 UTC 2006 Ossama Othman - - * common/common.mpc: - * parser/parser/parser.mpc: - - Re-disabled ACEXML when ace_for_tao is enabled. ACEXML needs - the ACE_Configuration and memory map classes that are not found - in the ace_for_tao subset. - -Mon Oct 24 02:26:32 UTC 2006 Ossama Othman - - * common/common.mpc: - * parser/parser/parser.mpc: - - No longer any need to explicitly disable ACEXML in the - ace_for_tao configuration. - - * common/HttpCharStream.cpp: - - Fixed Coverity OVERRUN_STATIC and FORWARD_NULL errors. - - Improved const-correctness. - - * common/codecs.mpb: - - Disable ACEXML codecs support if ace_for_tao is enabled. - - * common/Mem_Map_Stream.cpp: - - Fixed Coverity NEGATIVE_RETURNS error. - - * common/SAXExceptions.cpp (_downcast): - - Removed redundant type checking code. - - (~ACEXML_SAXNotSupportedException): - (~ACEXML_SAXNotRecognizedException): - - Addressed Coverity USE_AFTER_FREE errors. - - (exception_name_): - * common/SAXExceptions.h (exception_name_): - - Declare this static constant as an array rather than a pointer. - Allows the compiler to perform additional optimizations. - -Tue Jun 20 08:23:12 UTC 2006 Johnny Willemsen - - * parser/parser/Parser.cpp: - 64bit fix - -Thu Mar 30 13:14:12 UTC 2006 Johnny Willemsen - - * common/NamespaceSupport.cpp: - Fixed value might be unitialized warnings - -Tue Mar 14 20:58:12 UTC 2006 jiang,shanshan - - * common/FileCharStream.cpp - * common/HttpCharStream.cpp - * common/Transcode.cpp - * common/XML_Macros.h - * parser/parser/Parser.cpp - * parser/parser/Parser.i - - Updated these files to solve the warnings when setting up "VC - level 4 warnings" on Windows. These warnings include - "unreachable code", "assignment within 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 - for motivating the fix to - these "VC level 4 warnings". - -Fri Feb 10 23:45:14 UTC 2006 Steve Huston - - * common/NamespaceSupport.cpp: Add missing template instantiations to - match change below. - -Fri Feb 10 12:22:12 UTC 2006 Johnny Willemsen - - * common/NamespaceSupport.cpp: - Fixed compile error in unicode build - -Thu Feb 9 22:49:18 UTC 2006 Krishnakumar B - - * common/NamespaceSupport.h: - * common/NamespaceSupport.cpp: Use a normal ACE_Unbounded_Stack - instead of yet another custom stack. - - * parser/parser/Parser.h: - * parser/parser/Parser.cpp: - - Fixed a mismatched push/pop of the namespace context due to - popping namespace contexts without matching the end of the - element that caused a push. This resulted in more pops that - push and corrupting the memory. Also fixed an indirection into - a pointer that might have been corrupt when calling - startNamespacePrefix(). - -Tue Jan 24 23:09:08 UTC 2006 Krishnakumar B - - * apps/svcconf/Svcconf.cpp: - * apps/svcconf/Svcconf.h: - - Removed the overridden operator new/delete. I don't think that - they serve any purpose, and end up hiding the default variations. - -Mon Jan 23 14:11:12 UTC 2006 Johnny Willemsen - - * common/ZipCharStream.h: - Updated include of zziplib.h to zzip/zzip.h to get rid of deprecated - warnings - -Wed Jan 4 22:44:38 UTC 2006 J.T. Conklin - - * ChangeLog: - - Untabify. - Delete-trailing-whitespace. - - Changed "add-log-time-format" to a really ugly lambda expression - that formats changelog timestamps in UTC and works with both GNU - Emacs and XEmacs. - -Thu May 26 07:35:12 UTC 2005 Johnny Willemsen - - * common/XML_Util.h: - Fixed pragma once warning - -Tue May 24 18:39:02 2005 J.T. Conklin - - * common/Makefile.am: - - Regenerate. - - * common/common.mpc: - - Added XML_Util.h to Header_Files section. - -Tue May 24 09:18:34 2005 Justin Michel - - * tests/util/test.cpp: - - Fixed for loop scoping problem for non-standard compilers. - -Mon May 23 14:52:19 2005 Justin Michel - - * tests/util/util.mpc: - - Add missing $ Id tag. - -Mon May 23 13:02:25 2005 Justin Michel - - * common/XML_Util.h: - * common/XML_Util.cpp: - - Added new ACEXML_escape_string() functions to allow replacement of - illegal characters, (', ", &, <, >, etc.) with the escaped versions. - (", <, etc.) - - * tests/util/test.cpp: - * tests/util/util.mpc: - - This is a performance test used while making the above functions, and - testing performance with ACE_String_Base. - -Fri Apr 22 21:34:19 2005 Ossama Othman - - * parser/parser/Parser.cpp (parse_entity_decl): - - Fixed "variable may be used uninitialized" warning. - -Fri Apr 22 11:09:59 2005 J.T. Conklin - - * parser/parser/Makefile.am: - * common/Makefile.am: - - Regenerated. - - * parser/parser/parser.mpc: - * common/common.mpc: - - Add Pkgconfig_Files section. - -Wed Apr 20 12:20:26 2005 Ossama Othman - - * common/Attributes.h: - * common/ContentHandler.h: - * common/DTDHandler.h: - * common/EntityResolver.h: - * common/ErrorHandler.h: - * common/Locator.h: - * common/XMLReader.h: - - Added virtual destructors to address g++ 4.0 warnings. - - * common/Attributes.cpp: - * common/ContentHandler.cpp: - * common/DTDHandler.cpp: - * common/EntityResolver.cpp: - * common/ErrorHandler.cpp: - * common/Locator.cpp: - * common/XMLReader.cpp: - - New files containing destructors. - - * common/NamespaceSupport.cpp (getURI): - - Fixed "variable may be used uninitialized" warning. - -Mon Apr 18 14:10:12 UTC 2005 Johnny Willemsen - - * parser/parser/Entity_Manager.cpp: - Removed not uses static const - - * parser/parser/Entity_Manager.i: - Initialise pointer with 0 - -Sun Feb 13 23:54:25 2005 Ossama Othman - - From Lothar Werzinger - * apps/svcconf/Svcconf_Handler.cpp: - - Enhanced error messages. - -Wed Jan 5 14:08:12 UTC 2004 Johnny Willemsen - - * common/DefaultHandler.{h,cpp,i}: - * common/NamespaceSupport.{h,cpp,i}: - * common/Transcode.{h,cpp,i}: - * examples/SAXPrint/Print_Handler.{cpp,i}: - Removed .i file and updated h/cpp file - - * common/Makefile.am: - Updated - -Tue Aug 17 19:07:11 2004 J.T. Conklin - - * common/NamespaceSupport.cpp: - - Changed ACE_NEW_RETURN to use "NS_Node_T" instead of "struct - NS_Node_T" --- the latter triggers a gcc 3.3 parser bug when - used with the "new (std::nothrow)" version of ACE_NEW_RETURN. - Fortunately, the "struct" is unnecessary. - -Sat Feb 21 23:51:25 2004 Krishnakumar B - - * common/Exception.h: - * common/Exception.cpp: - * common/SAXExceptions.h: - * common/SAXExceptions.cpp: - - Fixed a few bugs in the way the exceptions were set-up in the - case when exceptions=0. Provided implementations for operator - assignment and duplicate(). This should fix problems with - throwing and catching exceptions when exceptions=0. - -Sat Jan 31 20:06:57 2004 Krishnakumar B - - * parser/parser/Parser.cpp (parse_PE_reference): Added ACE_TEXT - to satisfy WCHAR windows builds. Thanks to Johnny for reporting - these errors. - -Fri Jan 30 16:04:43 2004 Krishnakumar B - - * parser/parser/Parser.cpp: Rewrote a simple string manipulation - involving ACE_String_Base::operator +() to use const char* - instead of char, so that we don't need an explicit template - instantiation for it. - - * examples/SAXPrint/main.cpp: Added missing explicit template - instantiations for ACE_Auto_Basic_Ptr. - - Thanks to Olli Savia for reporting problems with - explicit template instantiation on LynxOS. - -Thu Jan 8 18:40:34 2004 Krishnakumar B - - - * common/CharStream.h: Added a new rewind() method so that we can - reuse the same parser instance to parse the same file multiple - times. - - * common/FileCharStream.cpp: - * common/HttpCharStream.h: - * common/HttpCharStream.cpp: - * common/StrCharStream.cpp: - * common/ZipCharStream.cpp: - - Fixed implementation of rewind(). - - * common/Mem_Map_Stream.cpp: - - Fixed memory leak caused by the Svc_Handler not getting deleted. - - * apps/svcconf/Makefile.ACEXML_XML_Svc_Conf_Parser: - * parser/parser/Makefile.ACEXML_Parser: - * examples/SAXPrint/Makefile.SAXPrint: - * common/Makefile.ACEXML: - * tests/Makefile.ContentHandler_Test: - * tests/Makefile.HttpCharStream_Test: - * tests/Makefile.NamespaceSupport_Test: - * tests/Makefile.Transcoder_Test: - - Updated dependencies. - - * examples/SAXPrint/main.cpp: - - Added code to test the parser to parse the same file multiple - times. This still needs some cleaning. - - * parser/parser/Entity_Manager.h: - * parser/parser/Entity_Manager.i: - * parser/parser/Entity_Manager.cpp: - - Use a pointer to ACE_Hash_Map_Manager_Ex and delete it on every - reset() of the Entity_Manager. This should fix all the problems - with SIGFPE's when we try to recover from a parse error. - - * parser/parser/Parser.cpp: - * parser/parser/ParserContext.h: - * parser/parser/ParserContext.inl: - - Fixed memory leaks reported by Ken Sedgewick . - This should fix Bugzill bug 1694. While at it, fix bugs in - handling of entity references in INCLUDE/IGNORE sections, - ATTLIST sections. - - -Thu Dec 18 13:13:57 2003 Krishnakumar B - - * common/Transcode.h (ACEXML_Transcoder): - * common/Transcode.cpp (ACEXML_Transcoder): - - Renamed the ACEXML_Transcoder::STATUS enum to use ACEXML - prefixes. Thanks to Johnny Willemsen for - reporting the clash with native #defines on Tru64. - -Sat Jul 19 18:38:50 UTC 2003 Don Hinton - - * apps/svcconf/Svcconf.h: - * common/*.h: - * parser/*.h: - * parser/parser/*.h: - Added "/**/" between the #include and filename for pre.h and - post.h so Doxygen won't include them in the file reference tree - graphs. - -Fri Jul 18 10:29:55 2003 Krishnakumar B - - * tests/NamespaceSupport_Test.cpp (ACE_TMAIN): Added - initialization of ACEXML_NamespaceSupport so that we don't - crash. - - * tests/ContentHandler_Test.cpp: Removed "" at the end of - the ACEXML_StrCharStream. XML is not HTML. Added a print - statement to the catch clause so that we know what is happening - when exception occurs. - -Mon Jul 14 18:49:01 UTC 2003 Johnny Willemsen - - * apps/svcconf/Makefile: - * common/Makefile: - * examples/SAXPrint/Makefile: - * parser/parser/Makefile: - * tests/Makefile: - Removed windows specific rules. They are not needed and only - cause problems when using a different command shell then cmd - like msys. This solves errors in the MinGW build. -Sat Jul 5 13:33:36 UTC 2003 Johnny Willemsen - - * Makefile: - Removed windows specific rules. They are not needed and only - cause problems when using a different command shell then cmd - like msys. This solves errors in the MinGW build. - -Fri Jun 27 12:55:33 UTC 2003 Johnny Willemsen - - * parser/parser/Entity_Manager.h: - * parser/parser/Entity_Manager.i: - Removed not useful const return qualifier to resolve intel - compiler warnings. - -Thu Jun 26 01:47:03 UTC 2003 Don Hinton - - * parser/parser/Parser.i: - Added (int) cast to table index to get rid of a warning. - -Tue Jun 24 23:31:44 2003 Nanbor Wang - - * apps/svcconf/Svcconf.cpp: Turned off validation temporarily when - handling svc.conf files. All of the converted svc.conf.xml - files do not have associate doctype at the moment. - -Tue Jun 24 15:38:49 UTC 2003 Don Hinton - - * common/NamespaceSupport.i: - Added include of ACE.h. - -Sun Jun 1 09:09:22 2003 Balachandran Natarajan - - * parser/parser/Parser.cpp: - * parser/parser/Entity_Manager.cpp: Added explicit template - instantiations. - -Fri May 30 14:16:33 2003 Krishnakumar B - - * examples/svcconf/.depend.Makefile.Svcconf: - * examples/svcconf/Makefile: - * examples/svcconf/Makefile.Svcconf: - * examples/svcconf/Makefile.Svcconf.bor: - * examples/svcconf/Makefile.bor: - * examples/svcconf/README: - * examples/svcconf/Svcconf.dsp: - * examples/svcconf/Svcconf.dsw: - * examples/svcconf/Svcconf.mpc: - * examples/svcconf/Svcconf_Handler.cpp: - * examples/svcconf/Svcconf_Handler.h: - * examples/svcconf/Svcconf_Handler.i: - * examples/svcconf/main.cpp: - - Removed directories causing problems with Win XP release. - - * ACEXML.dsw: - * Makefile: - * Makefile.bor: - * apps/svcconf/Makefile: - * apps/svcconf/Makefile.ACEXML_XML_Svc_Conf_Parser.bor: - * apps/svcconf/Makefile.bor: - * common/Makefile: - * common/Makefile.ACEXML.bor: - * common/Makefile.bor: - * examples/SAXPrint/Makefile: - * examples/SAXPrint/Makefile.SAXPrint.bor: - * examples/SAXPrint/Makefile.bor: - * parser/parser/Makefile: - * parser/parser/Makefile.ACEXML_Parser.bor: - * parser/parser/Makefile.bor: - * tests/.depend.Makefile.ContentHandler_Test: - * tests/.depend.Makefile.HttpCharStream_Test: - * tests/.depend.Makefile.NamespaceSupport_Test: - * tests/.depend.Makefile.Transcoder_Test:: - * tests/Makefile: - * tests/Makefile.ContentHandler_Test: - * tests/Makefile.ContentHandler_Test.bor: - * tests/Makefile.HttpCharStream_Test.bor: - * tests/Makefile.NamespaceSupport_Test.bor: - * tests/Makefile.Transcoder_Test.bor: - * tests/Makefile.bor: - - More build related delicacies needed updating because of the - previous change. - -Fri May 30 13:56:40 2003 Krishnakumar B - - * common/XML_Common.dsp: Removed old dsp left over from previous - merge. - -Fri May 30 13:54:57 2003 Krishnakumar B - - * parser/parser/Parser.dsp: Removed this erroneous dsp file left - over from the merge. - -Fri May 30 13:50:11 2003 Krishnakumar B - - * common/ZipCharStream.h: Removed broken logic to undefine macro - version of read. We don't want read to be a macro in ACEXML. - Present because of brokenness in ZZIPLIB. - -Fri May 30 13:36:39 2003 Krishnakumar B - - * parser/parser/Parser.cpp (parse_ignoresect): Fixed a couple of - warnings. Break out of infinite loop. - - * apps/svcconf/.depend.Makefile.ACEXML_XML_Svc_Conf_Parser: - * common/.depend.Makefile.ACEXML: - * examples/SAXPrint/.depend.Makefile.SAXPrint: - * examples/svcconf/.depend.Makefile.Svcconf: - * parser/parser/.depend.Makefile.ACEXML_Parser: - - Added missing dependency files. This should clear out the red. - - * examples/svcconf/main.cpp: - * common/HttpCharStream.cpp: - * parser/parser/Parser.i: - - Fixed warnings with BCB. Thanks to Johnny for reporting these. - -Thu May 29 23:13:40 2003 Krishnakumar B - - * examples/SAXPrint/SAXPrint_Handler.cpp: Fixed some minor - warnings. - -Thu May 29 23:09:27 2003 Krishnakumar B - - * parser/parser/Makefile.Parser: - - Removed extra file left over by mistake. - -Thu May 29 23:00:24 2003 Krishnakumar B - - * tests/Makefile.ContentHandler_Test: - * tests/Makefile: - - This file got left out by mistake during the big merge. - -Thu May 29 22:03:40 2003 Krishnakumar B - - * ACEXML.mwc: - * ChangeLog: - * apps/svcconf/ACEXML_XML_Svc_Conf_Parser.dsp: - * apps/svcconf/Makefile.ACEXML_XML_Svc_Conf_Parser: - * apps/svcconf/Makefile.ACEXML_XML_Svc_Conf_Parser.bor: - * common/ACEXML.dsp: - * common/Makefile.ACEXML: - * common/Makefile.ACEXML.bor: - * examples/SAXPrint/Makefile.SAXPrint: - * examples/SAXPrint/Makefile.SAXPrint.bor: - * examples/svcconf/Makefile: - * examples/svcconf/Makefile.Svcconf: - * examples/svcconf/Makefile.Svcconf.bor: - * examples/svcconf/Svcconf.mpc: - * parser/parser/ACEXML_Parser.dsp: - * parser/parser/Makefile.ACEXML_Parser: - * parser/parser/Makefile.ACEXML_Parser.bor: - * parser/parser/Makefile.Parser: - * tests/Makefile.ContentHandler_Test.bor: - * tests/Makefile.HttpCharStream_Test: - * tests/Makefile.HttpCharStream_Test.bor: - * tests/Makefile.NamespaceSupport_Test: - * tests/Makefile.NamespaceSupport_Test.bor: - * tests/Makefile.Transcoder_Test: - * tests/Makefile.Transcoder_Test.bor: - - New files to build ACEXML generated using MPC. - - * apps/svcconf/svcconf.dtd: - - Moved the DTD from a hidden location to a prominent one. - - * examples/SAXPrint/namespaces.xml: - - New file to test namespace support. - - * common/ZipCharStream.cpp: - * common/ZipCharStream.h: - - New files to support reading files from within a ZIP archive as - a stream. - - * parser/parser/ParserContext.cpp: - * parser/parser/ParserContext.h: - * parser/parser/ParserContext.inl: - - New files to support a per stream context encountered when - parsing references. - - * parser/parser/ParserInternals.cpp: - * parser/parser/ParserInternals.h: - - Move some common functions from Parser.cpp to these files. - - * ACEXML.dsw: - * Makefile: - * Makefile.bor: - * apps/svcconf/Makefile: - * apps/svcconf/Makefile.bor: - * common/Makefile: - * common/Makefile.bor: - * examples/SAXPrint/Makefile: - * examples/SAXPrint/Makefile.bor: - * examples/SAXPrint/SAXPrint.dsp: - * examples/SAXPrint/SAXPrint.mpc: - * examples/svcconf/Makefile.bor: - * examples/svcconf/Svcconf.dsp: - * parser/parser/Makefile: - * parser/parser/Makefile.bor: - * tests/ContentHandler_Test.cpp: - * tests/ContentHandler_Test.dsp: - * tests/HttpCharStream_Test.cpp: - * tests/HttpCharStream_Test.dsp: - * tests/Makefile: - * tests/Makefile.bor: - * tests/NamespaceSupport_Test.dsp: - * tests/Transcoder_Test.dsp: - - Build related files changed with the introduction of MPC to - build ACEXML. - - * examples/SAXPrint/ns.svc.conf.xml: - * examples/SAXPrint/svc.conf.xml: - - New files to test specific features of the parser. - - * apps/svcconf/Svcconf.cpp: - * common/Attributes.h: - * common/Attributes_Def_Builder.h: - * common/CharStream.h: - * common/DefaultHandler.cpp: - * common/Encoding.cpp: - * common/Encoding.h: - * common/Exception.cpp: - * common/FileCharStream.cpp: - * common/FileCharStream.h: - * common/HttpCharStream.cpp: - * common/HttpCharStream.h: - * common/InputSource.cpp: - * common/InputSource.h: - * common/LocatorImpl.cpp: - * common/LocatorImpl.h: - * common/Mem_Map_Stream.cpp: - * common/NamespaceSupport.cpp: - * common/NamespaceSupport.h: - * common/SAXExceptions.cpp: - * common/StrCharStream.cpp: - * common/StrCharStream.h: - * common/StreamFactory.cpp: - * common/Transcode.cpp: - * common/Transcode.h: - * common/Transcode.i: - * examples/SAXPrint/Print_Handler.cpp: - * examples/SAXPrint/SAXPrint_Handler.cpp: - * examples/SAXPrint/main.cpp: - * examples/svcconf/main.cpp: - * parser/parser/Parser.cpp: - * parser/parser/Parser.h: - * parser/parser/Parser.i: - * parser/parser/Entity_Manager.cpp: - * parser/parser/Entity_Manager.h: - * parser/parser/Entity_Manager.i: - - Merge from the Validator branch. It is not close to conformance - related to Validation but is quite stable as a parser which - recognizes the complete XML grammar. - -Fri Jan 24 20:28:22 2003 Krishnakumar B - - * parser/parser/Parser.cpp (pop_context): Bail out if there is - only one element on the context stack. Bad things [TM] will happen - if we pop the only context available. - -Mon Nov 25 04:25:15 2002 Krishnakumar B - - * parser/parser/Parser.cpp (reset): - * parser/parser/Parser.h: - - Fixed a bunch of compilation errors. Removed unnecessary - creation and destroyal of ACEXML_Strings which seems to speed up - the parser quite a bit. - - * examples/SAXPrint/SAXPrint_Handler.cpp: - * examples/SAXPrint/main.cpp: - - Don't report startPrefixMapping() and endPrefixMapping() as they - obstruct the pretty-printing of SAXPrint. They are bogus anyway. - -Wed Nov 20 22:58:12 2002 Krishnakumar B - - * parser/parser/Parser.cpp (parse_char_reference): - - Fixed stupid thinko in conditional parsing of a hex character - reference. - - * common/Mem_Map_Stream.cpp: - - We can use the old way of fetching on-demand and don't need to - use a while loop. - - * common/NamespaceSupport.cpp: - - Fixed a long-standing bug with core dumping. With these changes, - we are able to parse the XML specification itself. Is this - called Meta or what ? - -Wed Nov 20 20:44:56 2002 Krishnakumar B - - * common/Mem_Map_Stream.cpp (grow_file_and_remap): - - Fixed bug where we were trying to remap two different files at - the same location without closing the first. - - * common/HttpCharStream.cpp (get_url): - - Don't try to parse an empty file. Removes a nasty SIGSEGV. - -Wed Nov 20 01:06:26 2002 Krishnakumar B - - * common/Mem_Map_Stream.cpp: - - Minor indenting changes. - - * tests/HttpCharStream_Test.cpp: - - Modified test to show bug in ACE_File_Addr. - -Tue Nov 19 20:46:35 2002 Krishnakumar B - - * examples/SAXPrint/Print_Handler.cpp (warning): - - Missed syncing the function prototypes last time. - -Tue Nov 19 20:18:09 2002 Krishnakumar B - - * parser/parser/Parser.h: - * parser/parser/Parser.cpp (normalize_systemid): - - Fix an off-by-one error in normalization. The document's base - URI is never empty. Now we parse relative document URI - correctly. - - Implement the previously unimplemented parsing from a systemId. - - * common/InputSource.cpp: - * common/InputSource.h: - - Implement creating an InputSource from a systemId. - - * common/CharStream.h: - - Added a new method getSystemId(). - - * common/FileCharStream.cpp: - * common/FileCharStream.h: - * common/HttpCharStream.cpp: - * common/HttpCharStream.h: - * common/ZipCharStream.cpp: - * common/ZipCharStream.h: - * common/StrCharStream.cpp: - * common/StrCharStream.h: - - Added implementation for getSystemId(). - - * examples/SAXPrint/Print_Handler.cpp: - * examples/SAXPrint/SAXPrint_Handler.cpp: - - Synched up the printing of exception messages. - - * examples/SAXPrint/main.cpp: - - Fixed broken internal string version of a sample XML file. - -Tue Nov 19 15:02:06 2002 Krishnakumar B - - * apps/svcconf/XML_Svc_Conf_Parser.dsp: - * common/XML_Common.dsp: - * examples/SAXPrint/SAXPrint.dsp: - * parser/debug_validator/Debug_Validator.dsp: - * parser/parser/Parser.dsp: - - Modified to accomodate zlib and zziplig. Will probably change - before the merge. - - * parser/parser/Parser.cpp: - - Try to parse external DTD only if validation is required. - -Mon Nov 18 22:29:39 2002 Krishnakumar B - - * Makefile: - - Deleted this file in the previous check-in. Re-add it. - -Mon Nov 18 22:19:47 2002 Krishnakumar B - - * common/common.mpc: - * parser/parser/parser.mpc: - * parser/debug_validator/validator.mpc: - * apps/svcconf/svcconf.mpc: - * examples/svcconf/Svcconf.mpc: - * examples/SAXPrint/saxprint.mpc: - * tests/tests.mpc: - * ACEXML.mwc: - - New MPC files and Workspace file. - - * common/Makefile.XML_Common: - * apps/svcconf/Makefile.XML_Svc_Conf_Parser: - * parser/parser/Makefile.Parser: - * parser/debug_validator/Makefile.Validator: - * examples/SAXPrint/Makefile.SAXPrint: - * examples/svcconf/Makefile.Svcconf: - * tests/Makefile.HttpCharStream_Test: - * tests/Makefile.NamespaceSupport_Test: - * tests/Makefile.Transcoder_Test: - - New Makefiles generated by MPC. - - * common/Makefile: - * parser/parser/Makefile: - * parser/Makefile: - * examples/Makefile: - * apps/Makefile: - * apps/svcconf/Makefile: - * examples/SAXPrint/Makefile: - * tests/Makefile: - - Removed old Makefiles. - - * parser/parser/Parser.cpp: - * common/StreamFactory.cpp: - * common/ZipCharStream.cpp: - * common/ZipCharStream.h: - - Fixed compilation errors. - -Mon Nov 18 20:30:30 2002 Krishnakumar B - - * common/CharStream.h: - * common/Encoding.cpp: - * common/FileCharStream.cpp: - * common/FileCharStream.h: - * common/StrCharStream.cpp: - * common/StrCharStream.h: - * common/HttpCharStream.cpp: - * common/HttpCharStream.h: - - Fixed a number of minor typos and debugging statements. - - * common/LocatorImpl.cpp: Check for a valid string before - assigning it to the new Locator. - - * common/NamespaceSupport.cpp: - - Make sure that we don't have a null prefix before trying to - dereference the prefix. - - * common/ZipCharStream.cpp: - * common/ZipCharStream.h: - - New stream which reads files from a ZIP archive. - - * common/StreamFactory.cpp: - - Modified to accomodate ZipCharStream. - - * examples/SAXPrint/Print_Handler.cpp: - * examples/SAXPrint/SAXPrint_Handler.cpp: - * examples/SAXPrint/main.cpp: - - Commented out a lot of unnecessary debug statements. - - * parser/parser/Parser.cpp: - * parser/parser/Parser.h: - - Lots of bugfixes. Finally we parse the XML version of XHTML - specification without dumping core. - -Sat Nov 16 21:18:55 2002 Krishnakumar B - - * parser/parser/Parser.cpp: - * parser/parser/Parser.h: - - More bugs fixed. Add support for parsing PE references within - attribute list declarations and clean up the same. Add support - for parsing PE references within element declarations. - -Tue Nov 12 19:48:34 2002 Krishnakumar B - - * parser/parser/ParserContext.cpp: - * parser/parser/ParserContext.h: - * parser/parser/ParserContext.inl: - - New files which hold the ParserContext needed to handle the - switching of input streams on the fly. - - * parser/parser/ParserInternals.cpp: - * parser/parser/ParserInternals.h: - - Moved some generic code from Parser.cpp to here. - - * apps/svcconf/Makefile: - * common/Makefile: - * parser/parser/Makefile: - - Updated dependencies. - - * common/Attributes_Def_Builder.h: - - No need to typedef in C++. - - * common/DefaultHandler.cpp: - - Minor typos. - - * common/Encoding.cpp: - - If auto-detection of encoding fails, assume that it is UTF-8. - - * common/Exception.cpp: - - Change the error message from ACE_DEBUG to ACE_ERROR. - - * common/FileCharStream.cpp: Handle BOM of UTF-8 in - addition to UTF-16. Cleanup unnecessary parens. - - * common/HttpCharStream.cpp: - * common/HttpCharStream.h: - - Add support for auto-detection of encoding. - - * common/InputSource.cpp: - * common/InputSource.h: - - Fixes for use with ACEXML_Parser_Context. - - * common/LocatorImpl.cpp: - * common/LocatorImpl.h: - - Fixed bug in copy constructor which resulted in locator - information not getting set properly. - - * common/NamespaceSupport.cpp: - * common/NamespaceSupport.h: - - Implement reset() method. - - * common/SAXExceptions.cpp: - - Change the error message from ACE_DEBUG to ACE_ERROR. - - * common/StrCharStream.cpp: - - Handle copying of bytes according to sizeof (ACE_WCHAR). - - * common/StreamFactory.cpp: Create the appropriate stream - given an URI. We don't try to normalize the URI here. It is done - in the Parser. - - * common/Transcode.cpp: - * common/Transcode.i: - - Moved some very big functions from .i to .cpp. - - * examples/SAXPrint/SAXPrint_Handler.cpp: - * examples/SAXPrint/main.cpp: - - Updates to reflect the new calling convention in the Parser. - - * parser/parser/Entity_Manager.cpp: - * parser/parser/Entity_Manager.h: - * parser/parser/Entity_Manager.i: - - Implemented support for resolving SYSTEM and PUBLIC ids from - the Entity_Manager. - - * parser/parser/Parser.cpp: - * parser/parser/Parser.h: - * parser/parser/Parser.i: - - Implemented support for external parameter and entity - references. Rewrote a lot of the basic parsing functionality to - adhere to the standard. Implment partial support for validation - of XML files. - - -Fri Oct 25 15:44:04 2002 Krishnakumar B - - * parser/parser/Parser.i: Handle end-of-line as required by - the spec. Specifically any sequence of 0x0D or 0x0D 0x0A should - be normalized to a 0x0A before passing to the XML processor. - - * parser/parser/Parser.cpp: Remove checks for 0x0D as it is - handled tranparently now. - -Thu Oct 24 21:06:44 2002 Krishnakumar B - - * common/NamespaceSupport.cpp: Define strings normally and - not as an array. - - * common/Attributes_Def_Builder.h: No need to typedef in C++. - -Thu Oct 24 01:52:46 2002 Krishnakumar B - - * ACEXML\parser\parser\Parser.cpp: Moved out the declaration of - variables outside case labels. MSVC doesn't like it. - -Wed Oct 23 22:24:59 2002 Krishnakumar B - - * parser/parser/Parser.cpp: Fixed a stupid thinko in array - initialization. - -Wed Oct 23 17:27:14 2002 Krishnakumar B - - * common/Encoding.cpp: - * common/Encoding.h: - - Use UTF-16 instead of UTF-16LE/UTF-16BE as the specification - doesn't require mentioning the endianness of the input. - - * common/Transcode.h: Fixed some minor typos. - - * examples/SAXPrint/namespaces.xml: New file which tests - out the namespaces feature much better. - - * apps/svcconf/Makefile: - * parser/parser/Makefile: - - Updated dependencies. - - * parser/parser/ParserErrors.h: New file which contains the - error codes of all the error spit out by the parser. - - * examples/SAXPrint/Print_Handler.cpp: - * examples/SAXPrint/SAXPrint_Handler.cpp: - - Make sure that the characters() function describes the arguments - as start and length instead of start and end. - - * parser/parser/Parser.dsp: Added ParserErrors.h to the - project file. - - * parser/parser/Parser.cpp: - * parser/parser/Parser.h: - - Use minor codes when reporting error in the parser. This cleans - up a lot of repeated error messages and indenting so that we - don't need to spill over 80 columns and have a standardized way - of reporting errors. Rewrote parse_cdata() so that is is much - simpler. Removed try_grow_cdata() as it is no longer needed. - Handle the case when the parser was accepting invalid character - references(). - -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/ACEXML/Makefile.am b/ACE/ACEXML/Makefile.am deleted file mode 100644 index 5e025e19d26..00000000000 --- a/ACE/ACEXML/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -SUBDIRS = \ - common \ - parser \ - examples \ - apps \ - tests - diff --git a/ACE/ACEXML/README b/ACE/ACEXML/README deleted file mode 100644 index 1e65588029e..00000000000 --- a/ACE/ACEXML/README +++ /dev/null @@ -1,17 +0,0 @@ -$Id$ - -ACE XML PARSER Framework README file - -* Character set - -ACE XML only deal with pure unicode encoding. I.e., ACE XML -does not care about language specific encoding information. - -* SAX - The Simple API for 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 accomodate platforms/compilers that -don't support C++ exceptions. SAX is defined by David Megginson - diff --git a/ACE/ACEXML/apps/Makefile.am b/ACE/ACEXML/apps/Makefile.am deleted file mode 100644 index 7f7bf963687..00000000000 --- a/ACE/ACEXML/apps/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -SUBDIRS = \ - svcconf - diff --git a/ACE/ACEXML/apps/svcconf/ACEXML_XML_Svc_Conf_Parser.pc.in b/ACE/ACEXML/apps/svcconf/ACEXML_XML_Svc_Conf_Parser.pc.in deleted file mode 100644 index 3cda818ca76..00000000000 --- a/ACE/ACEXML/apps/svcconf/ACEXML_XML_Svc_Conf_Parser.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: ACEXML_XML_Svc_Conf_Parser -Description: ACE XML Service Configurator Parser -Requires: ACEXML_Parser -Version: @VERSION@ -Libs: -L${libdir} -lACEXML_XML_Svc_Conf_Parser -Cflags: -I${includedir} diff --git a/ACE/ACEXML/apps/svcconf/Makefile.am b/ACE/ACEXML/apps/svcconf/Makefile.am deleted file mode 100644 index 2464ab3ad33..00000000000 --- a/ACE/ACEXML/apps/svcconf/Makefile.am +++ /dev/null @@ -1,79 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -includedir = @includedir@/ACEXML/apps/svcconf - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.ACEXML_XML_Svc_Conf_Parser.am - -if BUILD_ACEXML -if !BUILD_ACE_FOR_TAO - -lib_LTLIBRARIES = libACEXML_XML_Svc_Conf_Parser.la - -libACEXML_XML_Svc_Conf_Parser_la_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ACEXML/common - -if BUILD_ZLIB -if BUILD_ZZIP -libACEXML_XML_Svc_Conf_Parser_la_CPPFLAGS += \ - $(ACE_ZZIP_CPPFLAGS) \ - $(ACE_ZLIB_CPPFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -libACEXML_XML_Svc_Conf_Parser_la_SOURCES = \ - Svcconf.cpp \ - Svcconf_Handler.cpp - -libACEXML_XML_Svc_Conf_Parser_la_LDFLAGS = \ - -release @ACE_VERSION_NAME@ - -if BUILD_ZLIB -if BUILD_ZZIP -libACEXML_XML_Svc_Conf_Parser_la_LDFLAGS += \ - $(ACE_ZZIP_LDFLAGS) \ - $(ACE_ZLIB_LDFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -libACEXML_XML_Svc_Conf_Parser_la_LIBADD = \ - $(ACE_BUILDDIR)/ACEXML/parser/parser/libACEXML_Parser.la \ - $(ACE_BUILDDIR)/ACEXML/common/libACEXML.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -if BUILD_ZLIB -if BUILD_ZZIP -libACEXML_XML_Svc_Conf_Parser_la_LIBADD += \ - $(ACE_ZZIP_LIBS) \ - $(ACE_ZLIB_LIBS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -nobase_include_HEADERS = \ - Svcconf.h \ - Svcconf_Handler.h \ - Svcconf_Handler.inl - -endif !BUILD_ACE_FOR_TAO -endif BUILD_ACEXML - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ACEXML/apps/svcconf/README b/ACE/ACEXML/apps/svcconf/README deleted file mode 100644 index 8a39a40bfe3..00000000000 --- a/ACE/ACEXML/apps/svcconf/README +++ /dev/null @@ -1,4 +0,0 @@ -$Id$ - -This directory implement a DLL that contains the parser for XML based -service configurator. diff --git a/ACE/ACEXML/apps/svcconf/Svcconf.cpp b/ACE/ACEXML/apps/svcconf/Svcconf.cpp deleted file mode 100644 index 7fd69046ec3..00000000000 --- a/ACE/ACEXML/apps/svcconf/Svcconf.cpp +++ /dev/null @@ -1,124 +0,0 @@ -// $Id$ - - -#include "Svcconf.h" -#include "ACEXML/common/FileCharStream.h" -#include "ACEXML/common/StrCharStream.h" -#include "ACEXML/parser/parser/Parser.h" - -#if (ACE_USES_CLASSIC_SVC_CONF == 0) - -extern "C" ACE_Proper_Export_Flag ACE_XML_Svc_Conf * -_ACEXML_create_XML_Svc_Conf_Object (void) -{ - ACE_XML_Svc_Conf *retp = 0; - - ACE_NEW_RETURN (retp, - ACEXML_Svcconf_Parser (), - 0); - - return retp; -} - -ACEXML_Svcconf_Parser::ACEXML_Svcconf_Parser () -{ - this->parser_.setContentHandler (&this->svcconf_handler_); - this->parser_.setDTDHandler (&this->svcconf_handler_); - this->parser_.setErrorHandler (&this->svcconf_handler_); - this->parser_.setEntityResolver (&this->svcconf_handler_); - ACEXML_TRY_NEW_ENV - { - this->parser_.setFeature (ACE_TEXT ("http://xml.org/sax/features/validation"), - 0 - ACEXML_ENV_ARG_PARAMETER); - ACEXML_TRY_CHECK; - } - ACEXML_CATCH (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[]) -{ - if (file == 0) - ACE_ERROR_RETURN ((LM_ERROR, "ACEXML_Svcconf_Parser: No filename specified\n"), -1); - - ACEXML_FileCharStream *fstm = 0; - ACE_NEW_RETURN (fstm, - ACEXML_FileCharStream (), - 1); - - if (fstm->open (file) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("ACEXML_Svcconf_Parser: Fail to open XML file: %s\n"), - file), - -1); - - this->input_stream_.setCharStream (fstm); - - ACEXML_TRY_NEW_ENV - { - this->parser_.parse (&this->input_stream_ ACEXML_ENV_ARG_PARAMETER); - ACEXML_TRY_CHECK; - } - ACEXML_CATCH (ACEXML_SAXException, ex) - { - ex.print (); - return -1; - } - ACEXML_ENDTRY; - return 0; -} - - -int -ACEXML_Svcconf_Parser::parse_string (const ACE_TCHAR str[]) -{ - if (str == 0) - ACE_ERROR_RETURN ((LM_ERROR, "ACEXML_Svcconf_Parser: Can't parse a null string\n"), -1); - - ACEXML_StrCharStream *stm = 0; - ACE_NEW_RETURN (stm, ACEXML_StrCharStream, -1); - if (stm->open (str, ACE_TEXT ("Svcconf")) < 0) - ACE_ERROR_RETURN ((LM_ERROR, "ACEXML_Svcconf_Parser: Unable to create " - "input stream.\n"), -1); - - this->input_stream_.setCharStream (stm); - ACEXML_TRY_NEW_ENV - { - this->parser_.parse (&this->input_stream_ ACEXML_ENV_ARG_PARAMETER); - ACEXML_TRY_CHECK; - } - ACEXML_CATCH (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 - // invalid. - ACE_OS::last_error (EINVAL); - 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.h b/ACE/ACEXML/apps/svcconf/Svcconf.h deleted file mode 100644 index 9879776fce5..00000000000 --- a/ACE/ACEXML/apps/svcconf/Svcconf.h +++ /dev/null @@ -1,44 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Svcconf.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - - -#ifndef ACEXML_SVCCONF_H -#define ACEXML_SVCCONF_H - -#include /**/ "ace/pre.h" -#include "ace/XML_Svc_Conf.h" -#include "ACEXML/parser/parser/Parser.h" -#include "Svcconf_Handler.h" - -#if (ACE_USES_CLASSIC_SVC_CONF == 0) - -class ACEXML_Svcconf_Parser : public ACE_XML_Svc_Conf -{ -public: - ACEXML_Svcconf_Parser (); - - virtual ~ACEXML_Svcconf_Parser (); - - virtual int parse_file (const ACE_TCHAR file[]); - - virtual int parse_string (const ACE_TCHAR str[]); - -protected: - ACEXML_Parser parser_; - ACEXML_Svcconf_Handler svcconf_handler_; - ACEXML_InputSource input_stream_; -}; - -#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */ - -#include /**/ "ace/post.h" -#endif /* ACEXML_SVCCONF_H */ diff --git a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp b/ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp deleted file mode 100644 index 7bfc3a421ed..00000000000 --- a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.cpp +++ /dev/null @@ -1,770 +0,0 @@ -// $Id$ - -#include "Svcconf_Handler.h" -#include "ace/ACE.h" -#include "ace/Log_Msg.h" -#include "ace/Service_Config.h" -#include "ace/Service_Types.h" -#include "ace/Service_Repository.h" -#include "ace/Service_Gestalt.h" -#include "ace/DLL.h" -#include "ace/ARGV.h" -#include "ace/Module.h" -#include "ace/OS_NS_strings.h" -#include "ace/SString.h" - -#if (ACE_USES_CLASSIC_SVC_CONF == 0) - -#if !defined (__ACEXML_INLINE__) -# include "Svcconf_Handler.inl" -#endif /* __ACEXML_INLINE__ */ - -ACEXML_Svcconf_Handler::ACEXML_Svcconf_Handler (void) - : in_stream_def_ (0), - in_module_ (0), - stream_svc_type_ (0), - stream_ (0) -{ - // no-op -} - -ACEXML_Svcconf_Handler::~ACEXML_Svcconf_Handler (void) -{ - // no-op -} - -void -ACEXML_Svcconf_Handler::characters (const ACEXML_Char *, - int, - int ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // no-op -} - -void -ACEXML_Svcconf_Handler::endDocument ( ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - // no-op -} - -void -ACEXML_Svcconf_Handler::endElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) -{ - if (ACE_OS::strcmp (qName, ACE_TEXT ("dynamic")) == 0) - { - ACE_Parsed_Info *active_info = (this->in_stream_def_ == 0 ? - &this->parsed_info_ : - &this->stream_info_); - - // We must allocate a string here to ensure that the - // name is still available by the time the - // ACE_Service_Type_Dynamic_Guard is destructed. - ACE_TString name = active_info->name (); - ACE_Service_Type_Dynamic_Guard dummy ( - *ACE_Service_Config::current ()->current_service_repository (), - name.c_str ()); - ACE_DLL svc_dll; - - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - - void *(*func) (ACE_Service_Object_Exterminator *) = 0; - ACE_Service_Object_Exterminator gobbler = 0; - void *symbol = 0; - - long temp_ptr = - reinterpret_cast (svc_dll.symbol (active_info->init_func ())); - func = reinterpret_cast (temp_ptr); - - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - symbol = (*func)(&gobbler); // target object created in the loaded DLL. - - ACE_Service_Type_Impl *stp = ACE_Service_Config::create_service_type_impl - (active_info->name (), - active_info->service_type (), - symbol, - ACE_Service_Type::DELETE_THIS | - ACE_Service_Type::DELETE_OBJ, - gobbler); - - if (this->in_stream_def_) - { -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Create dynamic %s for stream\n"), -// this->stream_info_.name ())); - if (active_info->service_type () == ACE_Service_Type::STREAM) - { - this->stream_ = (ACE_Stream_Type *) stp; - } - else - { - // We will not retain this stream - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - - this->stream_svc_type_ = - ACE_Service_Config::create_service_type (this->stream_info_.name (), - this->stream_, - svc_dll, - this->stream_info_.active ()); - - } - else - { - if (this->in_module_) - { - ACE_ARGV args (active_info->init_params ()); - - ACE_Module_Type *mt = (ACE_Module_Type *) stp; - - ACE_Module *mp = (ACE_Module *) mt->object (); - - if (ACE_OS::strcmp (mp->name (), active_info->name ()) != 0) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("warning: assigning Module_Type name %s to Module %s since names differ\n"), - active_info->name (), - mp->name ())); - mp->name (active_info->name ()); - } - - if (mt->init (args.argc (), args.argv ()) == -1 - || 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - - -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Push dynamic %s into stream %s\n"), -// this->parsed_info_.name (), -// this->stream_info_.name ())); - } - else - { - ACE_Service_Type *stype = - ACE_Service_Config::create_service_type (active_info->name (), - stp, - svc_dll, - active_info->active ()); - // @@ Check error here. - - // ACE_DEBUG ((LM_INFO, ACE_TEXT ("Apply dynamic %s\n"), -// this->parsed_info_.name ())); - if (ACE_Service_Config::initialize (stype, - active_info->init_params ()) == -1) - { - // If it did not initialize correctly, the - // ACE_Service_Config doesn't own this object - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - } - this->parsed_info_.reset (); - } - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("static")) == 0) - { - if (this->in_stream_def_) - { - // @@ Couldn't make sense out of the original Svc_Conf.y. - ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Create static %s for stream\n"), - this->stream_info_.name ())); - } - else - { - if (this->in_module_) - { - // @@ Couldn't make sense out of the original Svc_Conf.y. - ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Push static %s into stream %s\n"), - this->parsed_info_.name (), - this->stream_info_.name ())); - } - else - { -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Apply static %s\n"), -// this->parsed_info_.name ())); - if (ACE_Service_Config::initialize (this->parsed_info_.name (), - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - } - this->parsed_info_.reset (); - } - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("module")) == 0) - { - this->in_module_ = 0; - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("streamdef")) == 0) - { -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Apply stream %s of type %s\n"), -// this->stream_info_.name (), -// this->stream_info_.name ())); - ACE_Service_Config::initialize (this->stream_svc_type_, - this->stream_info_.init_params ()); - - this->stream_info_.reset (); - this->stream_svc_type_ = 0; - this->stream_ = 0; - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("stream")) == 0) - { -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Apply stream %s of type %s\n"), -// this->stream_info_.name (), -// this->stream_info_.name ())); - this->stream_info_.reset (); - } - else - { - } -} - -void -ACEXML_Svcconf_Handler::endPrefixMapping (const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // no-op -} - -void -ACEXML_Svcconf_Handler::ignorableWhitespace (const ACEXML_Char *, - int, - int ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // no-op -} - -void -ACEXML_Svcconf_Handler::processingInstruction (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // no-op -} - -void -ACEXML_Svcconf_Handler::setDocumentLocator (ACEXML_Locator* locator) -{ - this->locator_ = locator; -} - -void -ACEXML_Svcconf_Handler::skippedEntity (const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // no-op -} - -void -ACEXML_Svcconf_Handler::startDocument ( ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - // no-op -} - -void -ACEXML_Svcconf_Handler::startElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *qName, - ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL) -{ - if (ACE_OS::strcmp (qName, ACE_TEXT ("dynamic")) == 0) - { - this->get_dynamic_attrs (alist ACEXML_ENV_ARG_PARAMETER); - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("initializer")) == 0) - { - this->get_initializer_attrs (alist ACEXML_ENV_ARG_PARAMETER); - - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("static")) == 0) - { - this->get_static_attrs (alist ACEXML_ENV_ARG_PARAMETER); - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("stream")) == 0) - { - this->get_stream_id (alist ACEXML_ENV_ARG_PARAMETER); - - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - this->stream_ = this->stream_svc_type_ == 0 - ? 0 - : dynamic_cast (const_cast (this->stream_svc_type_->type ())); - -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Retrieve stream %s from repository\n"), -// this->stream_info_.name ())); - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("streamdef")) == 0) - { - this->in_stream_def_ = 1; - // @@ Set up stream service object - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("module")) == 0) - { - this->in_stream_def_ = 0; - this->in_module_ = 1; - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("resume")) == 0) - { - this->get_id (alist ACEXML_ENV_ARG_PARAMETER); - if (this->in_module_) - { -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Resume %s in stream %s\n"), -// this->parsed_info_.name (), -// this->stream_info_.name ())); - ACE_Module_Type *mt = (this->stream_ == 0) - ? 0 - : this->stream_->find (this->parsed_info_.name ()); - - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - - mt->resume (); - } - else - { -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Resume %s\n"), -// this->parsed_info_.name ())); - 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")); - - ACEXML_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); - if (this->in_module_) - { -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Suspend %s in stream %s\n"), -// this->parsed_info_.name (), -// this->stream_info_.name ())); - ACE_Module_Type *mt = (this->stream_ == 0) - ? 0 - : this->stream_->find (this->parsed_info_.name ()); - - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - - mt->suspend (); - } - else - { - // ACE_DEBUG ((LM_INFO, ACE_TEXT ("Suspend %s\n"), - // this->parsed_info_.name ())); - 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")); - - ACEXML_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); - if (this->in_module_) - { -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Remove %s in stream %s\n"), -// this->parsed_info_.name (), -// this->stream_info_.name ())); - ACE_Module_Type *mt = (this->stream_ == 0) - ? 0 - : this->stream_->find (this->parsed_info_.name ()); - - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - - this->stream_->remove (mt); - } - else - { -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("Remove %s\n"), -// this->parsed_info_.name ())); - 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")); - - ACEXML_THROW (ACEXML_SAXException (msg.c_str ())); - } - } - this->parsed_info_.reset (); - } - else if (ACE_OS::strcmp (qName, ACE_TEXT ("ACE_Svc_Conf")) == 0) - { - // Main document tag. no-op. -// ACE_DEBUG ((LM_INFO, ACE_TEXT ("ACE_Svc_Conf tag\n"))); - } - else - { - // @@ Error. Perhaps we should relay to user event handler here, if available. - } - - return; -} - -void -ACEXML_Svcconf_Handler::startPrefixMapping (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -// *** Methods inherit from ACEXML_DTDHandler. - -void -ACEXML_Svcconf_Handler::notationDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_Svcconf_Handler::unparsedEntityDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -// Methods inherit from ACEXML_EnitityResolver. - -ACEXML_InputSource * -ACEXML_Svcconf_Handler::resolveEntity (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. - return 0; -} - -// Methods inherit from ACEXML_ErrorHandler. - - /* - * Receive notification of a recoverable error. - */ -void -ACEXML_Svcconf_Handler::error (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, "%s: line :%d col: %d ", this->locator_->getSystemId(), - this->locator_->getLineNumber(), - this->locator_->getColumnNumber())); - ex.print(); -} - -void -ACEXML_Svcconf_Handler::fatalError (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, "%s: line :%d col: %d ", this->locator_->getSystemId(), - this->locator_->getLineNumber(), - this->locator_->getColumnNumber())); - ex.print(); -} - -void -ACEXML_Svcconf_Handler::warning (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, "%s: line :%d col: %d ", this->locator_->getSystemId(), - this->locator_->getLineNumber(), - this->locator_->getColumnNumber())); - ex.print(); -} - -int -ACEXML_Svcconf_Handler::get_stream_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL) -{ - if (alist != 0) - for (size_t i = 0; i < alist->getLength (); ++i) - { - if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("id")) == 0) - { - this->stream_info_.name (alist->getValue (i)); - } - 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); - } - } - return 0; -} - -int -ACEXML_Svcconf_Handler::get_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL) -{ - if (alist != 0) - for (size_t i = 0; i < alist->getLength (); ++i) - { - if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("id")) == 0) - { - this->parsed_info_.name (alist->getValue (i)); - } - 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); - } - } - return 0; -} - -int -ACEXML_Svcconf_Handler::get_dynamic_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL) -{ - if (alist != 0) - { - ACE_Parsed_Info *info = (this->in_stream_def_ == 0 ? - &this->parsed_info_ : - &this->stream_info_); - for (size_t i = 0; i < alist->getLength (); ++i) - { - if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("id")) == 0) - { - info->name (alist->getValue (i)); - } - else if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("status")) == 0) - { - if (ACE_OS::strcmp (alist->getValue (i), ACE_TEXT ("inactive")) == 0) - { - info->active (0); - } - else if (ACE_OS::strcmp (alist->getValue (i), ACE_TEXT ("active")) == 0) - { - info->active (1); - } - 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); - } - } - else if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("type")) == 0) - { - if (ACE_OS::strcasecmp (alist->getValue (i), ACE_TEXT ("service_object")) == 0) - { - info->service_type (ACE_Service_Type::SERVICE_OBJECT); - } - else if (ACE_OS::strcasecmp (alist->getValue (i), ACE_TEXT ("stream")) == 0) - { - info->service_type (ACE_Service_Type::STREAM); - } - else if (ACE_OS::strcasecmp (alist->getValue (i), ACE_TEXT ("module")) == 0) - { - info->service_type (ACE_Service_Type::MODULE); - } - 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); - } - } - 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")); - - ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()), -1); - } - } - } - return 0; -} - -int -ACEXML_Svcconf_Handler::get_initializer_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL) -{ - if (alist != 0) - { - ACE_Parsed_Info *info = (this->in_stream_def_ == 0 ? - &this->parsed_info_ : - &this->stream_info_); - for (size_t i = 0; i < alist->getLength (); ++i) - { - if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("init")) == 0) - { - info->init_func (alist->getValue (i)); - } - else if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("path")) == 0) - { - info->path (alist->getValue (i)); - } - else if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("params")) == 0) - { - info->init_params (alist->getValue (i)); - } - 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")); - - ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()), -1); - } - } - } - return 0; -} - -int -ACEXML_Svcconf_Handler::get_static_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL) -{ - if (alist != 0) - { - ACE_Parsed_Info *info = (this->in_stream_def_ == 0 ? - &this->parsed_info_ : - &this->stream_info_); - for (size_t i = 0; i < alist->getLength (); ++i) - { - if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("id")) == 0) - { - info->name (alist->getValue (i)); - } - else if (ACE_OS::strcmp (alist->getQName (i), ACE_TEXT ("params")) == 0) - { - info->init_params (alist->getValue (i)); - } - 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")); - - ACEXML_THROW_RETURN (ACEXML_SAXException (msg.c_str ()), -1); - } - } - } - return 0; -} - -#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */ diff --git a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.h b/ACE/ACEXML/apps/svcconf/Svcconf_Handler.h deleted file mode 100644 index b15e20d7426..00000000000 --- a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.h +++ /dev/null @@ -1,276 +0,0 @@ -// $Id$ - -//============================================================================= -/** - * @file Svcconf_Handler.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef ACEXML_SVCCONF_HANDLER_H -#define ACEXML_SVCCONF_HANDLER_H - -#include "ACEXML/common/DefaultHandler.h" -#include "ace/Service_Types.h" - -#if (ACE_USES_CLASSIC_SVC_CONF == 0) - -class ACE_Parsed_Info -{ -public: - ACE_Parsed_Info (); - ~ACE_Parsed_Info (); - - /** - * Set/get name of a parsed entity. - */ - int name (const ACEXML_Char *n); - const ACEXML_Char *name (void); - - /** - * Set/get type of a dynamic node. - */ - int service_type (int type); - int service_type (void); - - /** - * Set/Get active status. - */ - int active (int a); - int active (void); - - /** - * Set/get initializer path. - */ - int path (const ACEXML_Char *n); - const ACEXML_Char *path (void); - - /** - * Set/get initializer init function. - */ - int init_func (const ACEXML_Char *n); - const ACEXML_Char *init_func (void); - - /** - * Set/get initializer init parameter. - */ - int init_params (const ACEXML_Char *n); - const ACEXML_Char *init_params (void); - - /** - * Reset Parsed_Info. - */ - void reset (void); - -protected: - ACEXML_Char *name_; - int service_type_; - int active_; - ACEXML_Char *path_; - ACEXML_Char *init_func_; - ACEXML_Char *init_params_; -}; - -/** - * @class ACEXML_Svcconf_Handler - * - * @brief ACEXML_Svcconf_Handler is an example SAX event handler. - * - * This SAX event handler try to regenerate the XML document it - * reads with correct indentation. - */ -class ACEXML_Svcconf_Handler : public ACEXML_DefaultHandler -{ -public: - /* - * Default constructor. - */ - ACEXML_Svcconf_Handler (void); - - /* - * Default destructor. - */ - virtual ~ACEXML_Svcconf_Handler (void); - - // Methods inherit from ACEXML_ContentHandler. - - /* - * Receive notification of character data. - */ - virtual void characters (const ACEXML_Char *ch, - int start, - int length ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of the end of a document. - */ - virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL) - ; - - /* - * 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) - ; - - /* - * End the scope of a prefix-URI mapping. - */ - virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of ignorable whitespace in element content. - */ - virtual void ignorableWhitespace (const ACEXML_Char *ch, - int start, - int length ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of a processing instruction. - */ - virtual void processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive an object for locating the origin of SAX document events. - */ - virtual void setDocumentLocator (ACEXML_Locator *locator) ; - - /* - * Receive notification of a skipped entity. - */ - virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of the beginning of a document. - */ - virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL) - ; - - /* - * Receive notification of the beginning of an element. - */ - virtual void startElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL) - ; - - /* - * Begin the scope of a prefix-URI Namespace mapping. - */ - virtual void startPrefixMapping (const ACEXML_Char *prefix, - const ACEXML_Char *uri ACEXML_ENV_ARG_DECL) - ; - - // *** Methods inherit from ACEXML_DTDHandler. - - /* - * Receive notification of a notation declaration event. - */ - virtual void notationDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of an unparsed entity declaration event. - */ - virtual void unparsedEntityDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId, - const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL) - ; - - // Methods inherit from ACEXML_EnitityResolver. - - /* - * Allow the application to resolve external entities. - */ - virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - ; - - // Methods inherit from ACEXML_ErrorHandler. - - /* - * Receive notification of a recoverable error. - */ - virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of a non-recoverable error. - */ - virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of a warning. - */ - virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ; - -protected: - /** - * Get the only attribute in or . - */ - int get_stream_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL); - - /** - * Get the only attribute in , , - */ - int get_id (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL); - - /** - * Get the dynamic tag attributes. - */ - int get_dynamic_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL); - - /** - * Get the initializer tag attributes. - */ - int get_initializer_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL); - - /** - * Get the static tag attributes. - */ - int get_static_attrs (ACEXML_Attributes *alist ACEXML_ENV_ARG_DECL); - -private: - /// We are parsing a stream definition - int in_stream_def_; - - /// We are defining a steam module - int in_module_; - - /// @a stream_ holds the actually Stream_Type object managed by @a stream_svc_type_. - ACE_Service_Type *stream_svc_type_; - ACE_Stream_Type *stream_; - - //ACE_SHLIB_HANDLE dll_handle_; - - ACE_Parsed_Info parsed_info_; - - ACE_Parsed_Info stream_info_; - - ACEXML_Locator* locator_; -}; - -#if defined (__ACEXML_INLINE__) -# include "Svcconf_Handler.inl" -#endif /* __ACEXML_INLINE__ */ - -#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */ - -#endif /* ACEXML_SVCCONF_HANDLER_H */ diff --git a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.inl b/ACE/ACEXML/apps/svcconf/Svcconf_Handler.inl deleted file mode 100644 index 605dec5f2f7..00000000000 --- a/ACE/ACEXML/apps/svcconf/Svcconf_Handler.inl +++ /dev/null @@ -1,133 +0,0 @@ -// -*- C++ -*- $Id$ - -ACE_INLINE -ACE_Parsed_Info::ACE_Parsed_Info () - : name_ (0), - service_type_ (ACE_Service_Type::INVALID_TYPE), - active_ (1), - path_ (0), - init_func_ (0), - init_params_ (0) -{ -} - -ACE_INLINE -ACE_Parsed_Info::~ACE_Parsed_Info () -{ - delete[] this->name_; - delete[] this->path_; - delete[] this->init_func_; - delete[] this->init_params_; -} - -ACE_INLINE int -ACE_Parsed_Info::name (const ACEXML_Char *n) -{ - if (this->name_ == 0) - { - this->name_ = ACE::strnew (n); - return 0; - } - return -1; -} - -ACE_INLINE const ACEXML_Char * -ACE_Parsed_Info::name (void) -{ - return this->name_; -} - -ACE_INLINE int -ACE_Parsed_Info::service_type (int type) -{ - if (this->service_type_ == -1) - { - this->service_type_ = type; - return 0; - } - return -1; -} - -ACE_INLINE int -ACE_Parsed_Info::service_type (void) -{ - return this->service_type_; -} - -ACE_INLINE int -ACE_Parsed_Info::active (int a) -{ - this->active_ = a; - return 0; -} - -ACE_INLINE int -ACE_Parsed_Info::active (void) -{ - return this->active_; -} - -ACE_INLINE int -ACE_Parsed_Info::path (const ACEXML_Char *p) -{ - if (this->path_ == 0) - { - this->path_ = ACE::strnew (p); - return 0; - } - return -1; -} - -ACE_INLINE const ACEXML_Char * -ACE_Parsed_Info::path (void) -{ - return this->path_; -} - -ACE_INLINE int -ACE_Parsed_Info::init_func (const ACEXML_Char *n) -{ - if (this->init_func_ == 0) - { - this->init_func_ = ACE::strnew (n); - return 0; - } - return -1; -} - -ACE_INLINE const ACEXML_Char * -ACE_Parsed_Info::init_func (void) -{ - return this->init_func_; -} - -ACE_INLINE int -ACE_Parsed_Info::init_params (const ACEXML_Char *n) -{ - if (this->init_params_ == 0) - { - this->init_params_ = ACE::strnew (n); - return 0; - } - return -1; -} - -ACE_INLINE const ACEXML_Char * -ACE_Parsed_Info::init_params (void) -{ - return this->init_params_; -} - -ACE_INLINE void -ACE_Parsed_Info::reset (void) -{ - delete[] this->name_; - this->name_ = 0; - this->service_type_ = -1; - delete[] this->path_; - this->path_ = 0; - delete[] this->init_func_; - this->init_func_ = 0; - delete[] this->init_params_; - this->init_params_ = 0; -} diff --git a/ACE/ACEXML/apps/svcconf/svcconf.dtd b/ACE/ACEXML/apps/svcconf/svcconf.dtd deleted file mode 100644 index b9e6cc41c8e..00000000000 --- a/ACE/ACEXML/apps/svcconf/svcconf.dtd +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ACE/ACEXML/apps/svcconf/svcconf.mpc b/ACE/ACEXML/apps/svcconf/svcconf.mpc deleted file mode 100644 index 9f5ce8f091b..00000000000 --- a/ACE/ACEXML/apps/svcconf/svcconf.mpc +++ /dev/null @@ -1,6 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(ACEXML_XML_Svc_Conf_Parser): ace_output, acelib, acexml, install { - sharedname = ACEXML_XML_Svc_Conf_Parser -} diff --git a/ACE/ACEXML/common/ACEXML.pc.in b/ACE/ACEXML/common/ACEXML.pc.in deleted file mode 100644 index 78a706c17c0..00000000000 --- a/ACE/ACEXML/common/ACEXML.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: ACEXML -Description: ACE XML Library -Requires: ACE -Version: @VERSION@ -Libs: -L${libdir} -lACEXML -Cflags: -I${includedir} diff --git a/ACE/ACEXML/common/ACEXML_Export.h b/ACE/ACEXML/common/ACEXML_Export.h deleted file mode 100644 index 39546eeafcc..00000000000 --- a/ACE/ACEXML/common/ACEXML_Export.h +++ /dev/null @@ -1,49 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ACEXML_Export.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl -// ------------------------------ -#ifndef ACEXML_EXPORT_H -#define ACEXML_EXPORT_H - -#include "ace/config-all.h" - -#if defined (ACE_AS_STATIC_LIBS) -# if !defined (ACEXML_HAS_DLL) -# define ACEXML_HAS_DLL 0 -# endif /* ! ACEXML_HAS_DLL */ -#else -# if !defined (ACEXML_HAS_DLL) -# define ACEXML_HAS_DLL 1 -# endif /* ! ACEXML_HAS_DLL */ -#endif /* ACE_AS_STATIC_LIB */ - -#if defined (ACEXML_HAS_DLL) && (ACEXML_HAS_DLL == 1) -# if defined (ACEXML_BUILD_DLL) -# define ACEXML_Export ACE_Proper_Export_Flag -# define ACEXML_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define ACEXML_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* ACEXML_BUILD_DLL */ -# define ACEXML_Export ACE_Proper_Import_Flag -# define ACEXML_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define ACEXML_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* ACEXML_BUILD_DLL */ -#else /* ACEXML_HAS_DLL == 1 */ -# define ACEXML_Export -# define ACEXML_SINGLETON_DECLARATION(T) -# define ACEXML_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* ACEXML_HAS_DLL == 1 */ - -#endif /* ACEXML_EXPORT_H */ - -// End of auto generated file. diff --git a/ACE/ACEXML/common/Attributes.cpp b/ACE/ACEXML/common/Attributes.cpp deleted file mode 100644 index 3f7c758ce8f..00000000000 --- a/ACE/ACEXML/common/Attributes.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "Attributes.h" - - -ACE_RCSID (common, - Attributes, - "$Id$") - - -ACEXML_Attributes::~ACEXML_Attributes (void) -{ -} diff --git a/ACE/ACEXML/common/Attributes.h b/ACE/ACEXML/common/Attributes.h deleted file mode 100644 index 45982ed459e..00000000000 --- a/ACE/ACEXML/common/Attributes.h +++ /dev/null @@ -1,130 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Attributes.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_ATTRIBUTES_H_ -#define _ACEXML_ATTRIBUTES_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_Types.h" - -/** - * @class ACEXML_Attributes Attributes.h "ACEXML/common/Attributes.h" - * - * @brief ACEXML_Attributes defines a collection of attributes of an XML element. - * - * This is an abstract class (interface in Java) that defines - * the API for accessing attributes of an XML entity. - * - * This interface allows access to a list of attributes in three different ways: - * - * - by attribute index; - * - by Namespace-qualified name; or - * - by qualified (prefixed) name. - * - * The list will not contain attributes that were declared #IMPLIED - * but not specified in the start tag. It will also not contain - * attributes used as Namespace declarations (xmlns*) unless the - * http://xml.org/sax/features/namespace-prefixes feature is set to - * true (it is false by default). - * - * If the namespace-prefixes feature (see above) is false, access by - * qualified name may not be available; if the - * http://xml.org/sax/features/namespaces feature is false, access by - * Namespace-qualified names may not be available. - * - * This interface replaces the now-deprecated SAX1 AttributeList - * interface, which does not contain Namespace support. In addition to - * Namespace support, it adds the getIndex methods (below). - * - * The order of attributes in the list is unspecified, and will vary - * from implementation to implementation. - */ -class ACEXML_Export ACEXML_Attributes -{ -public: - - /// Destructor. - virtual ~ACEXML_Attributes (void); - - /** - * Look up the index of an attribute by XML 1.0 qualified name. - */ - virtual int getIndex (const ACEXML_Char *qName) = 0; - - /** - * Look up the index of an attribute by Namespace name. - */ - virtual int getIndex (const ACEXML_Char *uri, - const ACEXML_Char *localPart) = 0; - - /** - * Return the number of attributes in the list. - */ - virtual size_t getLength (void) = 0; - - /** - * Look up an attribute's local name by index. - */ - virtual const ACEXML_Char *getLocalName (size_t index) = 0; - - /** - * Look up an attribute's XML 1.0 qualified name by index. - */ - virtual const ACEXML_Char *getQName (size_t index) = 0; - - /** - * Look up an attribute's type by index. - */ - virtual const ACEXML_Char *getType (size_t index) = 0; - - /** - * Look up an attribute's type by XML 1.0 qualified name. - */ - virtual const ACEXML_Char *getType (const ACEXML_Char *qName) = 0; - - /** - * Look up an attribute's type by Namespace name. - */ - virtual const ACEXML_Char *getType (const ACEXML_Char *uri, - const ACEXML_Char *localPart) = 0; - - /** - * Look up an attribute's Namespace URI by index. - */ - virtual const ACEXML_Char *getURI (size_t index) = 0; - - /** - * Look up an attribute's value by index. - */ - virtual const ACEXML_Char *getValue (size_t index) = 0; - - /** - * Look up an attribute's value by XML 1.0 qualified name. - */ - virtual const ACEXML_Char *getValue (const ACEXML_Char *qName) = 0; - - /** - * Look up an attribute's value by Namespace name. - */ - virtual const ACEXML_Char *getValue (const ACEXML_Char *uri, - const ACEXML_Char *localPart) = 0; -}; - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_ ATTRIBUTES_H_ */ diff --git a/ACE/ACEXML/common/AttributesImpl.cpp b/ACE/ACEXML/common/AttributesImpl.cpp deleted file mode 100644 index b436c4e5f79..00000000000 --- a/ACE/ACEXML/common/AttributesImpl.cpp +++ /dev/null @@ -1,293 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/AttributesImpl.h" - -#if !defined (__ACEXML_INLINE__) -# include "ACEXML/common/AttributesImpl.inl" -#endif /* __ACEXML_INLINE__ */ - -ACEXML_AttributesImpl::ACEXML_AttributesImpl (int size) - : attrs_ (size) -{ - this->attrs_.size (0); // attrs array contains nothing -} - -ACEXML_AttributesImpl::ACEXML_AttributesImpl (const - ACEXML_AttributesImpl &attrs) - : ACEXML_Attributes (attrs), - attrs_ (attrs.attrs_.size ()) -{ - for (size_t i = 0; i < attrs.attrs_.size (); i++) - this->attrs_[i] = attrs.attrs_[i]; -} - -ACEXML_AttributesImpl::~ACEXML_AttributesImpl (void) -{ -} - -int -ACEXML_AttributesImpl::addAttribute (const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - const ACEXML_Char *type, - const ACEXML_Char *value) -{ - if (this->isDuplicate (uri, localName, qName)) - return -1; - size_t length = this->attrs_.size (); - this->attrs_.size (length+1); - this->setAttribute (length, - uri, - localName, - qName, - type, - value); - return static_cast (length); -} - -int -ACEXML_AttributesImpl::addAttribute (const ACEXML_Attribute &att) -{ - if (this->isDuplicate (att.uri(), att.localName(), att.qName())) - return -1; - size_t length = this->attrs_.size (); - this->attrs_.size (length+1); - this->attrs_[length] = att; - return static_cast (length); -} - -int -ACEXML_AttributesImpl::isDuplicate (const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName) -{ - for (size_t i = 0; i < this->attrs_.size(); ++i) - { - if (ACE_OS::strcmp (this->attrs_[i].localName(), localName) == 0) - { - if (qName != 0 && this->attrs_[i].qName() != 0 - && ACE_OS::strcmp (this->attrs_[i].qName(), qName) == 0) - { - if (uri != 0 && this->attrs_[i].uri() != 0 - && ACE_OS::strcmp (this->attrs_[i].uri(), uri) == 0) - return 1; - } - } - } - return 0; -} - -int -ACEXML_AttributesImpl::removeAttribute (size_t index) -{ - size_t length = this->attrs_.size (); - - if (index >= length) - return -1; - - this->attrs_[index] = this->attrs_[length - 1]; - this->attrs_.size (length - 1); - - return 0; -} - - -int -ACEXML_AttributesImpl::getIndex (const ACEXML_Char *qName) -{ - for (size_t i = 0; i < this->attrs_.size (); i++) - if (ACE_OS::strcmp (qName, this->attrs_[i].qName ()) == 0) - return static_cast (i); - - return -1; -} - -int -ACEXML_AttributesImpl::getIndex (const ACEXML_Char *uri, - const ACEXML_Char *localPart) -{ - for (size_t i = 0; i < this->attrs_.size (); i++) - if (ACE_OS::strcmp (uri, this->attrs_[i].uri ()) == 0 && - ACE_OS::strcmp (localPart, this->attrs_[i].localName ()) == 0) - return static_cast (i); - - return -1; -} - -size_t -ACEXML_AttributesImpl::getLength (void) -{ - return this->attrs_.size (); -} - -const ACEXML_Char * -ACEXML_AttributesImpl::getLocalName (size_t index) -{ - if (index < this->attrs_.size ()) - return this->attrs_[index].localName (); - return 0; -} - - -const ACEXML_Char * -ACEXML_AttributesImpl::getQName (size_t index) -{ - if (index < this->attrs_.size ()) - return this->attrs_[index].qName (); - return 0; -} - -const ACEXML_Char * -ACEXML_AttributesImpl::getType (size_t index) -{ - if (index < this->attrs_.size ()) - return this->attrs_[index].type (); - return 0; -} - - -const ACEXML_Char * -ACEXML_AttributesImpl::getType (const ACEXML_Char *qName) -{ - for (size_t i = 0; i < this->attrs_.size (); i++) - if (ACE_OS::strcmp (qName, this->attrs_[i].qName ()) == 0) - return this->attrs_[i].type (); - - return 0; -} - -const ACEXML_Char * -ACEXML_AttributesImpl::getType (const ACEXML_Char *uri, - const ACEXML_Char *localPart) -{ - for (size_t i = 0; i < this->attrs_.size (); i++) - if (ACE_OS::strcmp (uri, this->attrs_[i].uri ()) == 0 && - ACE_OS::strcmp (localPart, this->attrs_[i].localName ()) == 0) - return this->attrs_[i].type (); - - return 0; -} - - -const ACEXML_Char * -ACEXML_AttributesImpl::getURI (size_t index) -{ - if (index < this->attrs_.size ()) - return this->attrs_[index].uri (); - return 0; -} - - -const ACEXML_Char * -ACEXML_AttributesImpl::getValue (size_t index) -{ - if (index < this->attrs_.size ()) - return this->attrs_[index].value (); - return 0; -} - -const ACEXML_Char * -ACEXML_AttributesImpl::getValue (const ACEXML_Char *qName) -{ - for (size_t i = 0; i < this->attrs_.size (); i++) - if (ACE_OS::strcmp (qName, this->attrs_[i].qName ()) == 0) - return this->attrs_[i].value (); - - return 0; -} - -const ACEXML_Char * -ACEXML_AttributesImpl::getValue (const ACEXML_Char *uri, - const ACEXML_Char *localPart) -{ - for (size_t i = 0; i < this->attrs_.size (); i++) - if (ACE_OS::strcmp (uri, this->attrs_[i].uri ()) == 0 && - ACE_OS::strcmp (localPart, this->attrs_[i].localName ()) == 0) - return this->attrs_[i].value (); - - return 0; -} - -int -ACEXML_AttributesImpl::setAttribute (size_t index, - const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - const ACEXML_Char *type, - const ACEXML_Char *value) -{ - if (index < this->attrs_.size ()) - { - this->attrs_[index].setAttribute (uri, - localName, - qName, - type, - value); - return 0; - } - - return -1; -} - - -int -ACEXML_AttributesImpl::setLocalName (size_t index, - const ACEXML_Char *localName) -{ - if (index < this->attrs_.size ()) - { - this->attrs_[index].localName (localName); - return 0; - } - return -1; -} - -int -ACEXML_AttributesImpl::setQName (size_t index, - const ACEXML_Char *qName) -{ - if (index < this->attrs_.size ()) - { - this->attrs_[index].qName (qName); - return 0; - } - return -1; -} - - -int -ACEXML_AttributesImpl::setURI (size_t index, - const ACEXML_Char *uri) -{ - if (index < this->attrs_.size ()) - { - this->attrs_[index].uri (uri); - return 0; - } - return -1; -} - -int -ACEXML_AttributesImpl::setType (size_t index, - const ACEXML_Char *type) -{ - if (index < this->attrs_.size ()) - { - this->attrs_[index].type (type); - return 0; - } - return -1; -} - -int -ACEXML_AttributesImpl::setValue (size_t index, - const ACEXML_Char *value) -{ - if (index < this->attrs_.size ()) - { - this->attrs_[index].value (value); - return 0; - } - return -1; -} - diff --git a/ACE/ACEXML/common/AttributesImpl.h b/ACE/ACEXML/common/AttributesImpl.h deleted file mode 100644 index 39b7f33099b..00000000000 --- a/ACE/ACEXML/common/AttributesImpl.h +++ /dev/null @@ -1,309 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file AttributesImpl.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - - -#ifndef ACEXML_ATTRIBUTESIMPL_H -#define ACEXML_ATTRIBUTESIMPL_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/Attributes.h" -#include "ace/Containers_T.h" - -#if !defined ACEXML_AttributesImpl_Default_Size -#define ACEXML_AttributesImpl_Default_Size 20 -#endif /* ACEXML_AttributesImpl_Default_Size */ - -class ACEXML_AttributesImpl; - -/** - * @class ACEXML_Attribute AttributesImpl.h "ACEXML/common/AttributesImpl.h" - * - * @brief ACEXML_Attribute defines the data structure of an attribute - * - * @sa ACEXML_AttributesImpl - */ -class ACEXML_Export ACEXML_Attribute -{ -public: - friend class ACEXML_AttributesImpl; - - /// Default constructor. - ACEXML_Attribute (void); - - /// Copy constructor. - ACEXML_Attribute (const ACEXML_Attribute &attr); - - /// Initialize all constructor. - ACEXML_Attribute (const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - const ACEXML_Char *type, - const ACEXML_Char *value); - - /// Destructor. - ~ACEXML_Attribute (void); - - /// Set all members. - void setAttribute (const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - const ACEXML_Char *type, - const ACEXML_Char *value); - - /// Get \a uri_. - const ACEXML_Char *uri (void) const; - - /// Set \a uri_. - void uri (const ACEXML_Char *uri); - - /// Get \a localName_. - const ACEXML_Char *localName (void) const; - - /// Set \a localName_. - void localName (const ACEXML_Char *localName); - - /// Get \a qName_. - const ACEXML_Char *qName (void) const; - - /// Set \a qName_. - void qName (const ACEXML_Char *qName); - - /// Get \a type_. - const ACEXML_Char *type (void) const; - - /// Set \a type_. - void type (const ACEXML_Char *type); - - /// Get \a value_. - const ACEXML_Char *value (void) const; - - /// Set \a value_. - void value (const ACEXML_Char *value); - - /// Assignment operator. - ACEXML_Attribute &operator= (const ACEXML_Attribute &rhs); - - /// Comparison operator. - bool operator!= (const ACEXML_Attribute&rhs) const; - -private: - /// Namespace URI of an attribute - ACEXML_Char *uri_; - - ACEXML_Char *localName_; - ACEXML_Char *qName_; - ACEXML_Char *type_; - ACEXML_Char *value_; -}; - -/** - * @typedef ACE_Array ACEXML_Attribute_Array - */ -typedef ACE_Array ACEXML_Attribute_Array; - -/** - * @class ACEXML_AttributesImpl AttributesImpl.h "ACEXML/common/AttributesImpl.h" - * - * @brief ACEXML_AttributesImpl provides the default implementation - * of interface ACEXML_Attributes. - * - * This class provides a default implementation of the SAX2 Attributes - * interface, with the addition of manipulators so that the list can - * be modified or reused. - * - * There are two typical uses of this class: - * - * - to take a persistent snapshot of an Attributes object in a - * startElement event; or - * - to construct or modify an Attributes object in a SAX2 driver or filter. - * - * This class replaces the now-deprecated SAX1 AttributeListImpl - * class; in addition to supporting the updated Attributes interface - * rather than the deprecated AttributeList interface, it also - * includes a much more efficient implementation using a single array - * rather than a set of Vectors. - * - * @sa ACEXML_Attributes - */ -class ACEXML_Export ACEXML_AttributesImpl - : public ACEXML_Attributes -{ -public: - /** - * Initialize an AttributesImpl that holds @a size attributes. - */ - ACEXML_AttributesImpl (int size = ACEXML_AttributesImpl_Default_Size); - ACEXML_AttributesImpl (const ACEXML_AttributesImpl &attrs); - virtual ~ACEXML_AttributesImpl (void); - - /** - * Add a new attribute using the argument(s) supplied. - * Return -1 if an attribute with the same name already exists. - */ - virtual int addAttribute (const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - const ACEXML_Char *type, - const ACEXML_Char *value); - virtual int addAttribute (const ACEXML_Attribute &att); - - /** - * Check for duplicate attributes. - */ - virtual int isDuplicate (const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName); - /** - * Remove an attribute from the array. Notice that this - * operation can invalidate previously acquired @a index - * value. (It will repack the array.) - */ - virtual int removeAttribute (size_t index); - - - /** - * Look up the index of an attribute by XML 1.0 qualified name. - * Return -1 if we fail to find a match. - */ - virtual int getIndex (const ACEXML_Char *qName); - - /** - * Look up the index of an attribute by Namespace name. - * Return -1 if we fail to find a match. - */ - virtual int getIndex (const ACEXML_Char *uri, - const ACEXML_Char *localPart); - - /** - * Return the number of attributes in the list. - */ - virtual size_t getLength (void); - - /** - * Look up an attribute's local name by index. - * Return 0 if index is out of range. - */ - virtual const ACEXML_Char *getLocalName (size_t index); - - /** - * Look up an attribute's XML 1.0 qualified name by index. - * Return 0 if index is out of range. - */ - virtual const ACEXML_Char *getQName (size_t index); - - /** - * Look up an attribute's type by index. - * Return 0 if index is out of range. - */ - virtual const ACEXML_Char *getType (size_t index); - - /** - * Look up an attribute's type by XML 1.0 qualified name. - * Return 0 if we fail to find a match. - */ - virtual const ACEXML_Char *getType (const ACEXML_Char *qName); - - /** - * Look up an attribute's type by Namespace name. - * Return 0 if we fail to find a match. - */ - virtual const ACEXML_Char *getType (const ACEXML_Char *uri, - const ACEXML_Char *localPart); - - /** - * Look up an attribute's Namespace URI by index. - * Return 0 if index is out of range. - */ - virtual const ACEXML_Char *getURI (size_t index); - - /** - * Look up an attribute's value by index. - * Return 0 if index is out of range. - */ - virtual const ACEXML_Char *getValue (size_t index); - - /** - * Look up an attribute's value by XML 1.0 qualified name. - * Return 0 if we fail to find a match. - */ - virtual const ACEXML_Char *getValue (const ACEXML_Char *qName); - - /** - * Look up an attribute's value by Namespace name. - * Return 0 if we fail to find a match. - */ - virtual const ACEXML_Char *getValue (const ACEXML_Char *uri, - const ACEXML_Char *localPart); - - /** - * Set an attribute at index. Return -1 if index is out of - * range. - */ - virtual int setAttribute (size_t index, - const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - const ACEXML_Char *type, - const ACEXML_Char *value); - - /** - * Set the localName of the attribute at @a index. - * return -1 if @a index is out of range. - */ - virtual int setLocalName (size_t index, - const ACEXML_Char *localName); - - /** - * Set the qName of the attribute at @a index. - * return -1 if @a index is out of range. - */ - virtual int setQName (size_t index, - const ACEXML_Char *qName); - - /** - * Set the URI of the attribute at @a index. - * return -1 if @a index is out of range. - */ - virtual int setURI (size_t index, - const ACEXML_Char *uri); - - /** - * Set the type of the attribute at @a index. - * return -1 if @a index is out of range. - */ - virtual int setType (size_t index, - const ACEXML_Char *type); - - /** - * Set the value of the attribute at @a index. - * return -1 if @a index is out of range. - */ - virtual int setValue (size_t index, - const ACEXML_Char *value); -private: - /// Container for all attributes. - ACEXML_Attribute_Array attrs_; -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/common/AttributesImpl.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACEXML_ATTRIBUTESIMPL_H */ diff --git a/ACE/ACEXML/common/AttributesImpl.inl b/ACE/ACEXML/common/AttributesImpl.inl deleted file mode 100644 index 75fc288950d..00000000000 --- a/ACE/ACEXML/common/AttributesImpl.inl +++ /dev/null @@ -1,154 +0,0 @@ -// -*- C++ -*- -// -//$Id$ - -#include "ace/ACE.h" -#include "ace/OS_NS_string.h" - -ACEXML_INLINE -ACEXML_Attribute::ACEXML_Attribute (void) - : uri_ (0), - localName_ (0), - qName_ (0), - type_ (0), - value_ (0) -{ -} - -ACEXML_INLINE -ACEXML_Attribute::ACEXML_Attribute (const ACEXML_Attribute &attr) - : uri_ (ACE::strnew (attr.uri_)), - localName_ (ACE::strnew (attr.localName_)), - qName_ (ACE::strnew (attr.qName_)), - type_ (ACE::strnew (attr.type_)), - value_ (ACE::strnew (attr.value_)) -{ -} - -ACEXML_INLINE -ACEXML_Attribute::ACEXML_Attribute (const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - const ACEXML_Char *type, - const ACEXML_Char *value) - : uri_ (ACE::strnew (uri)), - localName_ (ACE::strnew (localName)), - qName_ (ACE::strnew (qName)), - type_ (ACE::strnew (type)), - value_ (ACE::strnew (value)) -{ -} - -ACEXML_INLINE -ACEXML_Attribute::~ACEXML_Attribute (void) -{ - delete[] this->uri_; - delete[] this->localName_; - delete[] this->qName_; - delete[] this->type_; - delete[] this->value_; -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_Attribute::uri (void) const -{ - return this->uri_; -} - -ACEXML_INLINE void -ACEXML_Attribute::uri (const ACEXML_Char *uri) -{ - delete[] this->uri_; - this->uri_ = ACE::strnew (uri); -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_Attribute::localName (void) const -{ - return this->localName_; -} - -ACEXML_INLINE void -ACEXML_Attribute::localName (const ACEXML_Char *localName) -{ - delete[] this->localName_; - this->localName_ = ACE::strnew (localName); -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_Attribute::qName (void) const -{ - return this->qName_; -} - -ACEXML_INLINE void -ACEXML_Attribute::qName (const ACEXML_Char *qName) -{ - delete[] this->qName_; - this->qName_ = ACE::strnew (qName); -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_Attribute::type (void) const -{ - return this->type_; -} - -ACEXML_INLINE void -ACEXML_Attribute::type (const ACEXML_Char *type) -{ - delete[] this->type_; - this->type_ = ACE::strnew (type); -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_Attribute::value (void) const -{ - return this->value_; -} - -ACEXML_INLINE void -ACEXML_Attribute::value (const ACEXML_Char *value) -{ - delete[] this->value_; - this->value_ = ACE::strnew (value); -} - -ACEXML_INLINE void -ACEXML_Attribute::setAttribute (const ACEXML_Char *uri, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - const ACEXML_Char *type, - const ACEXML_Char *value) -{ - this->uri (uri); - this->qName (qName); - this->localName (localName); - this->type (type); - this->value (value); -} - -ACEXML_INLINE ACEXML_Attribute & -ACEXML_Attribute::operator= (const ACEXML_Attribute &rhs) -{ - if (this != &rhs) // Check for self assignment - { - this->uri (rhs.uri ()); - this->qName (rhs.qName ()); - this->localName (rhs.localName ()); - this->type (rhs.type ()); - this->value (rhs.value ()); - } - return *this; -} - -ACEXML_INLINE bool -ACEXML_Attribute::operator!= (const ACEXML_Attribute &rhs) const -{ - return (ACE_OS::strcmp (this->uri_, rhs.uri ()) == 0 && - ACE_OS::strcmp (this->localName_, rhs.localName ()) == 0 && - ACE_OS::strcmp (this->qName_, rhs .qName ()) == 0 && - ACE_OS::strcmp (this->type_, rhs.type ()) == 0 && - ACE_OS::strcmp (this->value_, rhs.value ()) == 0 ? false : true); - -} diff --git a/ACE/ACEXML/common/Attributes_Def_Builder.cpp b/ACE/ACEXML/common/Attributes_Def_Builder.cpp deleted file mode 100644 index 8b748dce3ce..00000000000 --- a/ACE/ACEXML/common/Attributes_Def_Builder.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -#include "ACEXML/common/Attributes_Def_Builder.h" - -ACEXML_Attribute_Def_Builder::~ACEXML_Attribute_Def_Builder () -{ - -} - -ACEXML_Attributes_Def_Builder::~ACEXML_Attributes_Def_Builder () -{ - -} - diff --git a/ACE/ACEXML/common/Attributes_Def_Builder.h b/ACE/ACEXML/common/Attributes_Def_Builder.h deleted file mode 100644 index c91025cd33d..00000000000 --- a/ACE/ACEXML/common/Attributes_Def_Builder.h +++ /dev/null @@ -1,153 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Attributes_Def_Builder.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_ATTRIBUTES_DEF_BUILDER_H_ -#define _ACEXML_ATTRIBUTES_DEF_BUILDER_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_Types.h" -#include "ACEXML/common/Env.h" -#include "ACEXML/common/SAXExceptions.h" -#include "ace/Auto_Ptr.h" - -/** - * @class ACEXML_Attribute_Def_Builder Attributes_Def_Builder.h "common/Attributes_Def_Builder.h" - * - * @brief An abstract virtual class defining an interface for building an - * attribute definition from DTD. - * - * This class should be invisible to application programmers and is only - * used for validator implementors. - */ -class ACEXML_Export ACEXML_Attribute_Def_Builder -{ -public: - - typedef auto_ptr VAR; - - enum ATT_TYPE { - CDATA, - ID, - IDREF, - IDREFS, - ENTITY, - ENTITIES, - NMTOKEN, - NMTOKENS, - NOTATION, - ENUMERATION, - ERROR_TYPE - }; - - enum DEFAULT_DECL { - REQUIRED, - IMPLIED, - FIXED, - INVALID - }; - - virtual ~ACEXML_Attribute_Def_Builder () = 0; - - /** - * Specify the name of the attribute. - */ - virtual int setName (const ACEXML_Char *n) = 0; - - /** - * Get the name of the attribute. - */ - virtual const ACEXML_Char *getName (void) = 0; - - /** - * Set the attribute type. - */ - virtual int setAttType (const ATT_TYPE type ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Insert an element for NOTATION or ENUMERATION type attribute. - */ - virtual int insertList (const ACEXML_Char *Name ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Set default attribute declaration. - */ - virtual int setDefault (const DEFAULT_DECL def, - const ACEXML_Char *value ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Check validity of the current attribute definition being built. - * - * @retval 0 if the attribute is not a valid combo. - */ - virtual int validAttr (void) = 0; - - /** - * Dump the content of the attribute definition. - */ - virtual void dump (void) = 0; -}; - -/** - * @ class ACEXML_Attributes_Def_Builder Attributes_Def_Builder.h "common/Attributes_Def_Builder.h" - * - * @ brief An abstract virtual class defining an interface for building - * attribute definitions from DTD. - * - * This class should be invisible to application programmers and - * is only used for validator implementors. - */ -class ACEXML_Export ACEXML_Attributes_Def_Builder -{ -public: - - typedef auto_ptr VAR; - - virtual ~ACEXML_Attributes_Def_Builder () = 0; - - /** - * Set the element name that the attribute builder applies. - * - * @retval 0 if valid, -1 otherwise. - */ - virtual int setElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Acquire an Attribute_Builder. - */ - virtual ACEXML_Attribute_Def_Builder *getAttribute_Def_Builder () = 0; - - /** - * Add a definition for one attribute. - */ - virtual int insertAttribute (ACEXML_Attribute_Def_Builder *def ACEXML_ENV_ARG_DECL) = 0; - - - /** - * Dump the content of the attribute definition. - */ - virtual void dump (void) = 0; -}; - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_ATTRIBUTES_DEF_BUILDER_H_ */ diff --git a/ACE/ACEXML/common/CharStream.cpp b/ACE/ACEXML/common/CharStream.cpp deleted file mode 100644 index 2c6ea29600f..00000000000 --- a/ACE/ACEXML/common/CharStream.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/CharStream.h" - -ACEXML_CharStream::~ACEXML_CharStream (void) -{ -} diff --git a/ACE/ACEXML/common/CharStream.h b/ACE/ACEXML/common/CharStream.h deleted file mode 100644 index e0355d4721a..00000000000 --- a/ACE/ACEXML/common/CharStream.h +++ /dev/null @@ -1,88 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file CharStream.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_CHARSTREAM_H_ -#define _ACEXML_CHARSTREAM_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_Types.h" - -/** - * @class ACEXML_CharStream CharStream.h "ACEXML/common/CharStream.h" - * - * ACEXML_CharStream is an abstract class (interface) which defines the - * basic opertions a parser could use to retrieve XML charater sequence. - * The sequence can be read from a file or a character buffer. - */ -class ACEXML_Export ACEXML_CharStream -{ -public: - - /** - * Virtual destructor, must have. - */ - virtual ~ACEXML_CharStream () = 0; - - /** - * Returns the available ACEXML_Char in the buffer. -1 - * if the object is not initialized properly. - */ - virtual int available (void) = 0; - - /** - * Close this stream and release all resources used by it. - */ - virtual int close (void) = 0; - - /** - * Read the next ACEXML_Char. Return -1 if we are not able to - * return an ACEXML_Char, 0 if EOS is reached, or 1 if succeed. - */ - virtual int get (ACEXML_Char& ch) = 0; - - /** - * Read the next batch of ACEXML_Char strings - */ - virtual int read (ACEXML_Char *str, size_t len) = 0; - - /** - * Peek the next ACEXML_Char in the CharStream. Return the - * character if succeess, -1 if EOS is reached. - */ - virtual int peek (void) = 0; - - /** - * Resets the pointer to the beginning of the stream. - */ - virtual void rewind (void) = 0; - - /* - * Get the character encoding for a byte stream or URI. - */ - virtual const ACEXML_Char *getEncoding (void) = 0; - - /* - * Get the systemId for the underlying CharStream - */ - virtual const ACEXML_Char* getSystemId (void) = 0; - -}; - -#include /**/ "ace/post.h" - - -#endif /* _ACEXML_CHARSTREAM_H_ */ diff --git a/ACE/ACEXML/common/ContentHandler.cpp b/ACE/ACEXML/common/ContentHandler.cpp deleted file mode 100644 index 633342fd6b1..00000000000 --- a/ACE/ACEXML/common/ContentHandler.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "ContentHandler.h" - - -ACE_RCSID (common, - ContentHandler, - "$Id$") - - -ACEXML_ContentHandler::~ACEXML_ContentHandler (void) -{ -} diff --git a/ACE/ACEXML/common/ContentHandler.h b/ACE/ACEXML/common/ContentHandler.h deleted file mode 100644 index 006eb4ded37..00000000000 --- a/ACE/ACEXML/common/ContentHandler.h +++ /dev/null @@ -1,132 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ContentHandler.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_CONTENTHANDLER_H_ -#define _ACEXML_CONTENTHANDLER_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/Env.h" -#include "ACEXML/common/SAXExceptions.h" -#include "ACEXML/common/Locator.h" -#include "ACEXML/common/Attributes.h" - -/** - * @class ACEXML_ContentHandler ContentHandler.h "ACEXML/common/ContentHandler.h" - * - * @brief ACEXML_ContentHandler - * - * This is the main interface that most SAX applications implement: if the - * application needs to be informed of basic parsing events, it implements - * this interface and registers an instance with the SAX parser using the - * setContentHandler method. The parser uses the instance to report basic - * document-related events like the start and end of elements and character - * data. - * - * The order of events in this interface is very important, and mirrors the - * order of information in the document itself. For example, all of an - * element's content (character data, processing instructions, and/or - * subelements) will appear, in order, between the startElement event and - * the corresponding endElement event. - */ -class ACEXML_Export ACEXML_ContentHandler -{ -public: - - virtual ~ACEXML_ContentHandler (void); - - /** - * Receive notification of character data. - */ - virtual void characters (const ACEXML_Char *ch, - size_t start, - size_t length - ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Receive notification of the end of a document. - */ - virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL) - = 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; - - /** - * End the scope of a prefix-URI mapping. - */ - virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL) - = 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; - - /** - * Receive notification of a processing instruction. - */ - virtual void processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Receive an object for locating the origin of SAX document events. - */ - virtual void setDocumentLocator (ACEXML_Locator *locator) = 0; - - /** - * Receive notification of a skipped entity. - */ - virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Receive notification of the beginning of a document. - */ - virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL) - = 0; - - /** - * Receive notification of the beginning of an element. - */ - virtual void startElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL) - = 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; -}; - -#include /**/ "ace/post.h" - - -#endif /* _ACEXML_CONTENTHANDLER_H_ */ diff --git a/ACE/ACEXML/common/DTDHandler.cpp b/ACE/ACEXML/common/DTDHandler.cpp deleted file mode 100644 index 199f469b578..00000000000 --- a/ACE/ACEXML/common/DTDHandler.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "DTDHandler.h" - - -ACE_RCSID (common, - DTDHandler, - "$Id$") - - -ACEXML_DTDHandler::~ACEXML_DTDHandler (void) -{ -} diff --git a/ACE/ACEXML/common/DTDHandler.h b/ACE/ACEXML/common/DTDHandler.h deleted file mode 100644 index 18800a43a2e..00000000000 --- a/ACE/ACEXML/common/DTDHandler.h +++ /dev/null @@ -1,78 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file DTDHandler.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_DTDHANDLER_H_ -#define _ACEXML_DTDHANDLER_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/Env.h" -#include "ACEXML/common/SAXExceptions.h" - -/** - * @class ACEXML_DTDHandler DTDHandler.h "ACEXML/common/DTDHandler.h" - * - * @brief ACEXML_DTDHandler - * - * If a SAX application needs information about notations and unparsed - * entities, then the application implements this interface and registers - * an instance with the SAX parser using the parser's setDTDHandler method. - * The parser uses the instance to report notation and unparsed entity - * declarations to the application. - * - * Note that this interface includes only those DTD events that the XML - * recommendation requires processors to report: notation and unparsed - * entity declarations. - * - * The SAX parser may report these events in any order, regardless of the - * order in which the notations and unparsed entities were declared; - * however, all DTD events must be reported after the document handler's - * startDocument event, and before the first startElement event. - * - * It is up to the application to store the information for future use - * (perhaps in a hash table or object tree). If the application encounters - * attributes of type "NOTATION", "ENTITY", or "ENTITIES", it can use the - * information that it obtained through this interface to find the entity - * and/or notation corresponding with the attribute value. - */ -class ACEXML_Export ACEXML_DTDHandler -{ -public: - - virtual ~ACEXML_DTDHandler (void); - - /** - * Receive notification of a notation declaration event. - */ - virtual void notationDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Receive notification of an unparsed entity declaration event. - */ - virtual void unparsedEntityDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId, - const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL) - = 0; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_DTDHANDLER_H_ */ diff --git a/ACE/ACEXML/common/DTD_Manager.cpp b/ACE/ACEXML/common/DTD_Manager.cpp deleted file mode 100644 index 39b3d2acef0..00000000000 --- a/ACE/ACEXML/common/DTD_Manager.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// $Id$ - -#include "ACEXML/common/DTD_Manager.h" - -ACEXML_DTD_Manager::~ACEXML_DTD_Manager () -{ - -} diff --git a/ACE/ACEXML/common/DTD_Manager.h b/ACE/ACEXML/common/DTD_Manager.h deleted file mode 100644 index 51ab3791551..00000000000 --- a/ACE/ACEXML/common/DTD_Manager.h +++ /dev/null @@ -1,82 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file DTD_Manager.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_DTD_Manager_H_ -#define _ACEXML_DTD_Manager_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/Attributes_Def_Builder.h" -#include "ACEXML/common/Element_Def_Builder.h" -#include "ACEXML/common/Validator.h" - -/** - * @class ACEXML_DTD_Manager DTD_Manager.h "common/DTD_Manager.h" - * - * @todo Fill in the blank. - */ -class ACEXML_Export ACEXML_DTD_Manager -{ -public: - virtual ~ACEXML_DTD_Manager () = 0; - - /** - * Acquire a pointer to an element definition builder. - * The XML parser use this interface to acquire the - * definition builder and use the builder to create - * the DTD element definition. The resulting builder - * is then registered with the DTD Manager or destroyed - * if error occured when the builder encountered errors. - * - * @retval 0 if error occurs creating the builder. - */ - virtual ACEXML_Element_Def_Builder *getElement_Def_Builder () = 0; - - /** - * Insert a new element definition into the DTD Manager. - * - * @retval 0 if success, -1 if error. - */ - virtual int insertElement_Definition (ACEXML_Element_Def_Builder *def ACEXML_ENV_ARG_DECL) = 0; - - /** - * Acquire a pointer to an attributes definition builder. - * - */ - virtual ACEXML_Attributes_Def_Builder *getAttribute_Def_Builder () = 0; - - /** - * Insert a new attributes definition into the DTD Manager. - * - * @retval 0 if success, -1 otherwise. - */ - virtual int insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def ACEXML_ENV_ARG_DECL) = 0; - - /** - * Acquire an element validator to validate an XML element. - * - * @todo I haven't figured out what memory management scheme - * we should use for the acquired validator. - */ - virtual ACEXML_Validator *getValidator (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) = 0; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_DTD_Manager_H_ */ diff --git a/ACE/ACEXML/common/DefaultHandler.cpp b/ACE/ACEXML/common/DefaultHandler.cpp deleted file mode 100644 index 02e7fd86126..00000000000 --- a/ACE/ACEXML/common/DefaultHandler.cpp +++ /dev/null @@ -1,143 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/DefaultHandler.h" - -ACEXML_DefaultHandler::ACEXML_DefaultHandler (void) -{ - // no-op -} - -ACEXML_DefaultHandler::~ACEXML_DefaultHandler (void) -{ - // no-op -} - -void -ACEXML_DefaultHandler::characters (const ACEXML_Char *, - size_t, - size_t - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::endElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::endPrefixMapping (const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::ignorableWhitespace (const ACEXML_Char *, - int, - int ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::processingInstruction (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::setDocumentLocator (ACEXML_Locator * ) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::skippedEntity (const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::startElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *, - ACEXML_Attributes * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::startPrefixMapping (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - - // *** Methods inherited from ACEXML_DTDHandler. - -void -ACEXML_DefaultHandler::notationDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::unparsedEntityDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - - // Methods inherited from ACEXML_EntityResolver. - -ACEXML_InputSource * -ACEXML_DefaultHandler::resolveEntity (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. - return 0; -} - - // Methods inherited from ACEXML_ErrorHandler. - - /* - * Receive notification of a recoverable error. - */ -void -ACEXML_DefaultHandler::error (ACEXML_SAXParseException & ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::fatalError (ACEXML_SAXParseException & ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_DefaultHandler::warning (ACEXML_SAXParseException & ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} diff --git a/ACE/ACEXML/common/DefaultHandler.h b/ACE/ACEXML/common/DefaultHandler.h deleted file mode 100644 index a729778201c..00000000000 --- a/ACE/ACEXML/common/DefaultHandler.h +++ /dev/null @@ -1,176 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file DefaultHandler.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef ACEXML_DEFAULTHANDLER_H -#define ACEXML_DEFAULTHANDLER_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/ContentHandler.h" -#include "ACEXML/common/DTDHandler.h" -#include "ACEXML/common/EntityResolver.h" -#include "ACEXML/common/ErrorHandler.h" - -/** - * @class ACEXML_DefaultHandler DefaultHandler.h "ACEXML/common/DefaultHandler.h" - * - * @brief ACEXML_DefaultHandler - * - * This class is available as a convenience base class for SAX2 - * applications: it provides default implementations for all of the - * callbacks in the four core SAX2 handler classes: - * - * - EntityResolver - * - DTDHandler - * - ContentHandler - * - ErrorHandler - * - * Application writers can extend this class when they need to implement - * only part of an interface; parser writers can instantiate this class to - * provide default handlers when the application has not supplied its own. - */ -class ACEXML_Export ACEXML_DefaultHandler - : public ACEXML_ContentHandler, - public ACEXML_DTDHandler, - public ACEXML_EntityResolver, - public ACEXML_ErrorHandler -{ -public: - /** - * Default constructor. - */ - ACEXML_DefaultHandler (void); - - /** - * destructor. - */ - virtual ~ACEXML_DefaultHandler (void); - - // Methods inherit from ACEXML_ContentHandler. - - /* - * Receive notification of character data. - */ - virtual void characters (const ACEXML_Char *ch, - size_t start, - size_t length - ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of the end of a document. - */ - virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL); - - /* - * 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); - - /* - * End the scope of a prefix-URI mapping. - */ - virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of ignorable whitespace in element content. - */ - virtual void ignorableWhitespace (const ACEXML_Char *ch, - int start, - int length ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of a processing instruction. - */ - virtual void processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data ACEXML_ENV_ARG_DECL); - - /* - * Receive an object for locating the origin of SAX document events. - */ - virtual void setDocumentLocator (ACEXML_Locator *locator) ; - - /* - * Receive notification of a skipped entity. - */ - virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of the beginning of a document. - */ - virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL); - - /* - * Receive notification of the beginning of an element. - */ - virtual void startElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL); - - /* - * Begin the scope of a prefix-URI Namespace mapping. - */ - virtual void startPrefixMapping (const ACEXML_Char *prefix, - const ACEXML_Char *uri ACEXML_ENV_ARG_DECL); - - // *** Methods inherit from ACEXML_DTDHandler. - - /* - * Receive notification of a notation declaration event. - */ - virtual void notationDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of an unparsed entity declaration event. - */ - virtual void unparsedEntityDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId, - const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL); - - // Methods inherit from ACEXML_EnitityResolver. - - /* - * Allow the application to resolve external entities. - */ - virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL); - - // Methods inherit from ACEXML_ErrorHandler. - - /* - * Receive notification of a recoverable error. - */ - virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of a non-recoverable error. - */ - virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of a warning. - */ - virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL); -}; - -#include /**/ "ace/post.h" - -#endif /* ACEXML_DEFAULTHANDLER_H */ diff --git a/ACE/ACEXML/common/Element_Def_Builder.cpp b/ACE/ACEXML/common/Element_Def_Builder.cpp deleted file mode 100644 index 2bcef84f16d..00000000000 --- a/ACE/ACEXML/common/Element_Def_Builder.cpp +++ /dev/null @@ -1,9 +0,0 @@ -// $Id$ - -#include "ACEXML/common/Element_Def_Builder.h" - -ACEXML_Element_Def_Builder::~ACEXML_Element_Def_Builder () -{ - -} - diff --git a/ACE/ACEXML/common/Element_Def_Builder.h b/ACE/ACEXML/common/Element_Def_Builder.h deleted file mode 100644 index ace842fb17c..00000000000 --- a/ACE/ACEXML/common/Element_Def_Builder.h +++ /dev/null @@ -1,133 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Element_Def_Builder.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_ELEMENT_DEF_BUILDER_H_ -#define _ACEXML_ELEMENT_DEF_BUILDER_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 "ace/Auto_Ptr.h" -#include "ACEXML/common/XML_Types.h" -#include "ACEXML/common/Env.h" -#include "ACEXML/common/SAXExceptions.h" - -/** - * @class ACEXML_Element_Def_Builder Element_Def_Builder.h "common/Element_Def_Builder.h" - * - * @brief An abstract virtual class that defines the interface to define an - * element definition. - * - * This class defines how to define an element definition after parsing a - * DTD. - */ -class ACEXML_Export ACEXML_Element_Def_Builder -{ -public: - - typedef auto_ptr VAR; - - typedef enum { - EMPTY, - ANY, - MIXED, - CHILDREN, - UNDEFINED - } CONTENT_TYPE; - - typedef enum { - ONE, - ZERO_OR_MORE, - ONE_OR_MORE, - ONE_OR_ZERO - } CARDINALITY; - - virtual ~ACEXML_Element_Def_Builder () = 0; - - /** - * Define the name of the element. - * - * @retval 0 if valid, -1 otherwise. - */ - virtual int setElementName (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Define the content type of the element. - * - * @retval 0 if valid, -1 otherwise. - */ - virtual int setContentType (CONTENT_TYPE type ACEXML_ENV_ARG_DECL) - = 0; - - /** - * 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) - = 0; - - /** - * Start a new group of children. - */ - virtual int startChildGroup () = 0; - - /** - * End a new group of children. - * - * @retval 0 on success. - */ - virtual int endChildGroup (CARDINALITY card ACEXML_ENV_ARG_DECL) = 0; - - /** - * Set the type of current child group to Choice. - * - * @retval 0 on success, -1 if the type of the child group has - * already been set and this action conflicts with the previous - * setting. - */ - virtual int setChoice () = 0; - - /** - * Set the type of current child group to Sequence. - * - * @retval 0 on success, -1 if the type of the child group has - * already been set and this action conflicts with the previous - * setting. - */ - virtual int setSequence () = 0; - - /** - * Insert an new element into the current child group. - * - * @retval 0 on success, -1 otherwise. - */ - virtual int insertElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Dump the content of the attribute definition. - */ - virtual void dump (void) = 0; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_ELEMENT_DEF_BUILDER_H_ */ diff --git a/ACE/ACEXML/common/Encoding.cpp b/ACE/ACEXML/common/Encoding.cpp deleted file mode 100644 index 4531fad20c3..00000000000 --- a/ACE/ACEXML/common/Encoding.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/Encoding.h" -#include "ace/OS_NS_string.h" - -const ACEXML_Char* ACEXML_Encoding::encoding_names_[8] = { - ACE_TEXT ("UCS-4BE"), - ACE_TEXT ("UCS-4LE"), - ACE_TEXT ("UCS-4_2143"), - ACE_TEXT ("UCS-4_3412"), - ACE_TEXT ("UTF-16"), - ACE_TEXT ("UTF-16"), - ACE_TEXT ("UTF-8"), - ACE_TEXT ("Unsupported Encoding") -}; - -const ACEXML_UTF8 ACEXML_Encoding::byte_order_mark_[][4] = { - { '\x00', '\x00', '\xFE', '\xFF' }, // UCS-4, big-endian (1234 order) - { '\xFF', '\xFE', '\x00', '\x00' }, // UCS-4, little-endian (4321 order) - { '\x00', '\x00', '\xFF', '\xFE' }, // UCS-4, unusual octet order (2143) - { '\xFE', '\xFF', '\x00', '\x00' }, // UCS-4, unusual octet order (3412) - { '\xFE', '\xFF', '\xFF', '\xFF' }, // UTF-16, big-endian (3 & 4 != 0) - { '\xFF', '\xFE', '\xFF', '\xFF' }, // UTF-16, little-endian ( 3 & 4 != 0) - { '\xEF', '\xBB', '\xBF', '\xFF' } // UTF-8 -}; - -const ACEXML_UTF8 ACEXML_Encoding::magic_values_[][4] = { - { '\x00', '\x00', '\x00', '\x3c' }, // - { '\x3c', '\x00', '\x00', '\x00' }, // UCS-4 and variants - { '\x00', '\x00', '\x3c', '\x00' }, // - { '\x00', '\x3c', '\x00', '\x00' }, // - { '\x00', '\x3c', '\x00', '\x3f' }, // UTF-16BE - { '\x3c', '\x00', '\x3f', '\x00' }, // UTF-16LE - { '\x3c', '\x3f', '\x78', '\x6d' }, // UTF-8 -}; - -const ACEXML_Char* -ACEXML_Encoding::get_encoding (const char* input) -{ - if ((ACE_OS::memcmp (&ACEXML_Encoding::byte_order_mark_[ACEXML_Encoding::UTF16BE][0], input, 2) == 0) - && (input[2] != 0 || input[3] != 0)) // 3 & 4 should not be both zero - return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16BE]; - else if ((ACE_OS::memcmp (&ACEXML_Encoding::byte_order_mark_[ACEXML_Encoding::UTF16LE][0], input, 2) == 0) - && (input[2] != 0 || input[3] != 0)) // 3 & 4 should not be both zero - return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16LE]; - else if (ACE_OS::memcmp (&ACEXML_Encoding::byte_order_mark_[ACEXML_Encoding::UTF8][0], input, 3) == 0) - return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF8]; - else if (ACE_OS::memcmp (&ACEXML_Encoding::magic_values_[ACEXML_Encoding::UTF16BE][0], input, 4) == 0) - return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16BE]; - else if (ACE_OS::memcmp (&ACEXML_Encoding::magic_values_[ACEXML_Encoding::UTF16LE][0], input, 4) == 0) - return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16LE]; - else if (ACE_OS::memcmp (&ACEXML_Encoding::magic_values_[ACEXML_Encoding::UTF8][0], input, 4) == 0) - return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF8]; - else - { - // ACE_ERROR ((LM_ERROR, "Unknown encoding. Assuming UTF-8\n")); - return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF8]; - } -} diff --git a/ACE/ACEXML/common/Encoding.h b/ACE/ACEXML/common/Encoding.h deleted file mode 100644 index 3e957fabbe1..00000000000 --- a/ACE/ACEXML/common/Encoding.h +++ /dev/null @@ -1,61 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Encoding.h - * - * This file provides utility functions to determine the encoding of a file - * or a byte stream automatically. - * - * $Id$ - * - * @author Krishnakumar B - */ -//============================================================================= - -#ifndef _ACEXML_ENCODING_H -#define _ACEXML_ENCODING_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_Types.h" - -/** - * @class ACEXML_Encoding Encoding.h "ACEXML/common/Encoding.h" - * - * @brief ACEXML_Encoding - * - * Wrapper class for determining the encoding of a file or a byte stream. - */ -class ACEXML_Export ACEXML_Encoding -{ -public: - enum { - UCS4BE, - UCS4LE, - UCS4_2143, - UCS4_3412, - UTF16BE, - UTF16LE, - UTF8, - OTHER - } ENCODING; - - static const ACEXML_Char* encoding_names_[8]; - - static const ACEXML_UTF8 byte_order_mark_[][4]; - - static const ACEXML_UTF8 magic_values_[][4]; - - static const ACEXML_Char* get_encoding (const char* input); - -}; - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_ENCODING_H */ diff --git a/ACE/ACEXML/common/EntityResolver.cpp b/ACE/ACEXML/common/EntityResolver.cpp deleted file mode 100644 index bcd08c1af70..00000000000 --- a/ACE/ACEXML/common/EntityResolver.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "EntityResolver.h" - - -ACE_RCSID (common, - EntityResolver, - "$Id$") - - -ACEXML_EntityResolver::~ACEXML_EntityResolver (void) -{ -} diff --git a/ACE/ACEXML/common/EntityResolver.h b/ACE/ACEXML/common/EntityResolver.h deleted file mode 100644 index c1934724bad..00000000000 --- a/ACE/ACEXML/common/EntityResolver.h +++ /dev/null @@ -1,61 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file EntityResolver.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_ENTITYHANDLER_H_ -#define _ACEXML_ENTITYHANDLER_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/Env.h" -#include "ACEXML/common/InputSource.h" -#include "ACEXML/common/SAXExceptions.h" - -/** - * @class ACEXML_EntityResolver EntityResolver.h "ACEXML/common/EntityResolver.h" - * - * @brief ACEXML_EntityResolver - * - * If a SAX application needs to implement customized handling for - * external entities, it must implement this interface and register an - * instance with the SAX driver using the setEntityResolver method. - * - * The XML reader will then allow the application to intercept any - * external entities (including the external DTD subset and external - * parameter entities, if any) before including them. - * - * Many SAX applications will not need to implement this interface, - * but it will be especially useful for applications that build XML - * documents from databases or other specialised input sources, or for - * applications that use URI types other than URLs. - */ -class ACEXML_Export ACEXML_EntityResolver -{ -public: - - virtual ~ACEXML_EntityResolver (void); - - /** - * Allow the application to resolve external entities. - */ - virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - = 0; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_ENTITYHANDLER_H_ */ 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 - */ -//============================================================================= - -#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 deleted file mode 100644 index 42d9552d859..00000000000 --- a/ACE/ACEXML/common/ErrorHandler.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "ErrorHandler.h" - - -ACE_RCSID (common, - ErrorHandler, - "$Id$") - - -ACEXML_ErrorHandler::~ACEXML_ErrorHandler (void) -{ -} diff --git a/ACE/ACEXML/common/ErrorHandler.h b/ACE/ACEXML/common/ErrorHandler.h deleted file mode 100644 index 4d8da5cc4a4..00000000000 --- a/ACE/ACEXML/common/ErrorHandler.h +++ /dev/null @@ -1,75 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ErrorHandler.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_ERRORHANDLER_H_ -#define _ACEXML_ERRORHANDLER_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/Env.h" -#include "ACEXML/common/SAXExceptions.h" - -/** - * @class ACEXML_ErrorHandler ErrorHandler.h "ACEXML/common/ErrorHandler.h" - * - * @brief ACEXML_ErrorHandler - * - * If a SAX application needs to implement customized error handling, - * it must implement this interface and then register an instance with - * the XML reader using the setErrorHandler method. The parser will - * then report all errors and warnings through this interface. - * - * @b WARNING: If an application does not register an ErrorHandler, - * XML parsing errors will go unreported and bizarre behaviour may - * result. - * - * For XML processing errors, a SAX driver must use this interface - * instead of throwing an exception: it is up to the application to - * decide whether to throw an exception for different types of errors - * and warnings. Note, however, that there is no requirement that the - * parser continue to provide useful information after a call to - * fatalError (in other words, a SAX driver class could catch an - * exception and report a fatalError). - */ -class ACEXML_Export ACEXML_ErrorHandler -{ -public: - - virtual ~ACEXML_ErrorHandler (void); - - /** - * Receive notification of a recoverable error. - */ - virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Receive notification of a non-recoverable error. - */ - virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Receive notification of a warning. - */ - virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - = 0; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_ERRORHANDLER_H_ */ diff --git a/ACE/ACEXML/common/Exception.cpp b/ACE/ACEXML/common/Exception.cpp deleted file mode 100644 index 5ad6b9b1b7e..00000000000 --- a/ACE/ACEXML/common/Exception.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/Exception.h" -#include "ace/Log_Msg.h" -#include "ace/ACE.h" -#include "ace/OS_NS_string.h" - -const ACEXML_Char *ACEXML_Exception::exception_name_ = ACE_TEXT ("ACEXML_Exception"); - -const ACEXML_Char *ACEXML_Exception::null_ = ACE_TEXT (""); - -#if !defined (__ACEXML_INLINE__) -# include "ACEXML/common/Exception.inl" -#endif /* __ACEXML_INLINE__ */ - -ACEXML_Exception::ACEXML_Exception() -{ -} - -ACEXML_Exception::~ACEXML_Exception() -{ -} - -int -ACEXML_Exception::is_a (const ACEXML_Char *name) -{ - return ACE_OS::strcmp (ACEXML_Exception::exception_name_, name) == 0; -} - -void -ACEXML_Exception::print (void) const -{ - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACEXML: (%P|%t) EXCEPTION : %s\n"), - this->exception_name_)); -} diff --git a/ACE/ACEXML/common/Exception.h b/ACE/ACEXML/common/Exception.h deleted file mode 100644 index 48572e24c73..00000000000 --- a/ACE/ACEXML/common/Exception.h +++ /dev/null @@ -1,87 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Exception.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_EXCEPTION_H_ -#define _ACEXML_EXCEPTION_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_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" - * - * @brief ACEXML_Exception - * - * ACEXML_Exception is the base class for all ACEXML related exceptions. - * Since ACEXML currently does not support native exceptions, all - * exceptions should be thrown thru ACEXML_Env. - * - * @sa ACEXML_Env - */ -class ACEXML_Export ACEXML_Exception -{ -public: - - /// Destructor. - virtual ~ACEXML_Exception (void); - - /// Throw the exception. - virtual void _raise (void) = 0; - - /// Static narrow operation. - static ACEXML_Exception* _downcast (ACEXML_Exception* ex); - - /// Return the exception type. (for safe downcast.) - virtual const ACEXML_Char *id (void) const ; - - /// Dynamically create a copy of this exception. - virtual ACEXML_Exception *duplicate (void) const = 0; - - /// Check whether this is an exception of type specified by . - virtual int is_a (const ACEXML_Char *name); - - /// Print out exception using ACE_DEBUG. - virtual void print (void) const = 0; - -protected: - /// Default contructor. - ACEXML_Exception (void); - - /// All exceptions have names. This name is used to identify the - /// type of an exception. - static const ACEXML_Char *exception_name_; - - /// A null string that we return when there is no exception. - static const ACEXML_Char *null_; -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/common/Exception.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_EXCEPTION_H_ */ diff --git a/ACE/ACEXML/common/Exception.inl b/ACE/ACEXML/common/Exception.inl deleted file mode 100644 index e2d97fa37ea..00000000000 --- a/ACE/ACEXML/common/Exception.inl +++ /dev/null @@ -1,13 +0,0 @@ -// -*- C++ -*- $Id$ - -ACEXML_INLINE const ACEXML_Char * -ACEXML_Exception::id (void) const -{ - return ACEXML_Exception::exception_name_; -} - -ACEXML_INLINE ACEXML_Exception* -ACEXML_Exception::_downcast (ACEXML_Exception* x) -{ - return x; -} diff --git a/ACE/ACEXML/common/FileCharStream.cpp b/ACE/ACEXML/common/FileCharStream.cpp deleted file mode 100644 index 4420e00b99d..00000000000 --- a/ACE/ACEXML/common/FileCharStream.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// $Id$ - -#include "ACEXML/common/FileCharStream.h" -#include "ace/ACE.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_sys_stat.h" -#include "ace/Truncate.h" - -#if defined (ACE_USES_WCHAR) -# include "ace/OS_NS_wchar.h" -#endif /* ACE_USES_WCHAR */ - -ACEXML_FileCharStream::ACEXML_FileCharStream (void) - : filename_ (0), encoding_ (0), size_ (0), infile_ (0), peek_ (0) -{ -} - -ACEXML_FileCharStream::~ACEXML_FileCharStream (void) -{ - this->close(); -} - -int -ACEXML_FileCharStream::open (const ACEXML_Char *name) -{ - delete[] this->filename_; - this->filename_ = 0; - - delete[] this->encoding_; - this->encoding_ = 0; - - this->infile_ = ACE_OS::fopen (name, ACE_TEXT ("r")); - if (this->infile_ == 0) - return -1; - - ACE_stat statbuf; - if (ACE_OS::stat (name, &statbuf) < 0) - return -1; - - this->size_ = ACE_Utils::truncate_cast (statbuf.st_size); - this->filename_ = ACE::strnew (name); - return this->determine_encoding(); -} - -int -ACEXML_FileCharStream::determine_encoding (void) -{ - if (this->infile_ == 0) - return -1; - - char input[4]; - int retval = 0; - int i = 0; - for (; i < 4 && retval != -1; ++i) - retval = this->getchar_i(input[i]); - if (i < 4) - return -1; - - // Rewind the stream - ACE_OS::rewind (this->infile_); - - const ACEXML_Char* temp = ACEXML_Encoding::get_encoding (input); - if (!temp) - return -1; - else - { - if (this->encoding_) - delete [] this->encoding_; - this->encoding_ = ACE::strnew (temp); -// ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("File's encoding is %s\n"), -// this->encoding_)); - } - // Move over the byte-order-mark if present. - char ch; - for (int j = 0; j < 3; ++j) - { - if (this->getchar_i (ch) < 0) - return -1; - if (ch == '\xFF' || ch == '\xFE' || ch == '\xEF' || ch == '\xBB' || - ch == '\xBF') - continue; - else - { - ACE_OS::ungetc (ch, this->infile_); - break; - } - } - return 0; -} - -void -ACEXML_FileCharStream::rewind() -{ - if (this->infile_ == 0) - return; - ACE_OS::rewind (this->infile_); - this->determine_encoding(); -} - -int -ACEXML_FileCharStream::available (void) -{ - if (this->infile_ == 0) - return -1; - - long curr; - if ((curr = ACE_OS::ftell (this->infile_)) < 0) - return -1; - return static_cast (this->size_ - curr); -} - -int -ACEXML_FileCharStream::close (void) -{ - if (this->infile_ != 0) - { - ACE_OS::fclose (this->infile_); - this->infile_ = 0; - } - delete[] this->filename_; - this->filename_ = 0; - delete[] this->encoding_; - this->encoding_ = 0; - this->size_ = 0; - this->peek_ = 0; - return 0; -} - - -int -ACEXML_FileCharStream::getchar_i (char& ch) -{ - ch = static_cast (ACE_OS::fgetc (this->infile_)); - return (feof(this->infile_) ? -1 : 0); -} - -int -ACEXML_FileCharStream::read (ACEXML_Char *str, - size_t len) -{ - if (this->infile_ == 0) - return -1; - - return static_cast (ACE_OS::fread (str, sizeof (ACEXML_Char), len, this->infile_)); -} - -int -ACEXML_FileCharStream::get (ACEXML_Char& ch) -{ - if (this->infile_ == 0) - return -1; -#if defined (ACE_USES_WCHAR) - return this->get_i (ch); -#else - ch = (ACEXML_Char) ACE_OS::fgetc (this->infile_); - return (feof(this->infile_) ? -1 : 0); -#endif /* ACE_USES_WCHAR */ -} - -int -ACEXML_FileCharStream::peek (void) -{ - if (this->infile_ == 0) - return -1; -#if defined (ACE_USES_WCHAR) - return this->peek_i(); -#else - - ACEXML_Char ch = static_cast (ACE_OS::fgetc (this->infile_)); - ACE_OS::ungetc (ch, this->infile_); - return ch; -#endif /* ACE_USES_WCHAR */ -} - -#if defined (ACE_USES_WCHAR) -int -ACEXML_FileCharStream::get_i (ACEXML_Char& ch) -{ - if (ACE_OS::strcmp (this->encoding_, ACE_TEXT ("UTF-8")) == 0) - { - ch = (ACEXML_Char) ACE_OS::fgetc (this->infile_); - return (feof(this->infile_) ? -1 : 0); - } - // If we have a value in peek_, return it. - if (this->peek_ != 0) - { - ch = this->peek_; - this->peek_ = 0; - return 0; - } - - int BE = (ACE_OS::strcmp (this->encoding_, - ACE_TEXT ("UTF-16BE")) == 0) ? 1 : 0; - ACEXML_Char input[2]; - int i = 0; - for (; i < 2 && !feof (this->infile_); ++i) - { - input[i] = ACE_OS::fgetwc (this->infile_); - } - if (i < 2) - { - ch = 0; - return -1; - } - ch = BE ? input[0] << 8 | input[1] : input[1] << 8 | input[0]; - return 0; -} - -int -ACEXML_FileCharStream::peek_i (void) -{ - // If we are reading a UTF-8 encoded file, just use the plain unget. - if (ACE_OS::strcmp (this->encoding_, ACE_TEXT ("UTF-8")) == 0) - { - ACEXML_Char ch = (ACEXML_Char) ACE_OS::fgetc (this->infile_); - ACE_OS::ungetc (ch, this->infile_); - return ch; - } - - // If somebody had already called peek() and not consumed it, return the - // value held in this->peek_. - if (this->peek_ != 0) - return this->peek_; - - // Peek into the stream. This reads two characters off the stream, keeps - // it in peek_. - int BE = (ACE_OS::strcmp (this->encoding_, - ACE_TEXT ("UTF-16BE")) == 0) ? 1 : 0; - ACEXML_Char input[2]; - int i = 0; - for (; i < 2 && !feof (this->infile_); ++i) - { - input[i] = ACE_OS::fgetwc (this->infile_); - } - if (i < 2) - { - this->peek_ = 0; - return -1; - } - this->peek_ = BE ? input[0] << 8 | input[1] : input[1] << 8 | input[0]; - return this->peek_; -} -#endif /* ACE_USES_WCHAR */ - -const ACEXML_Char* -ACEXML_FileCharStream::getEncoding (void) -{ - return this->encoding_; -} - -const ACEXML_Char* -ACEXML_FileCharStream::getSystemId (void) -{ - return this->filename_; -} diff --git a/ACE/ACEXML/common/FileCharStream.h b/ACE/ACEXML/common/FileCharStream.h deleted file mode 100644 index e4a3c06c6fb..00000000000 --- a/ACE/ACEXML/common/FileCharStream.h +++ /dev/null @@ -1,130 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FileCharStream.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_FILECHARSTREAM_H_ -#define _ACEXML_FILECHARSTREAM_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/CharStream.h" -#include "ACEXML/common/Encoding.h" - -/** - * @class ACEXML_FileCharStream FileCharStream.h "ACEXML/common/FileCharStream.h" - * - * An implementation of ACEXML_CharStream for reading input from a file. - */ -class ACEXML_Export ACEXML_FileCharStream : public ACEXML_CharStream -{ -public: - /// Default constructor. - ACEXML_FileCharStream (void); - - /// Destructor - virtual ~ACEXML_FileCharStream (void); - - /// Open a file. - int open (const ACEXML_Char *name); - - /** - * Returns the available ACEXML_Char in the buffer. -1 - * if the object is not initialized properly. - */ - virtual int available (void); - - /** - * Close this stream and release all resources used by it. - */ - virtual int close (void); - - /** - * Read the next ACEXML_Char. Return -1 if we are not able to - * return an ACEXML_Char, 0 if succees. - */ - virtual int get (ACEXML_Char& ch); - - /** - * Read the next batch of ACEXML_Char strings - */ - virtual int read (ACEXML_Char *str, - size_t len); - - /** - * Determine the encoding of the file. - */ - virtual int determine_encoding (void); - - - /** - * Peek the next ACEXML_Char in the CharStream. Return the - * character if success, -1 if EOF is reached. - */ - virtual int peek (void); - - /** - * Resets the file pointer to the beginning of the stream. - */ - virtual void rewind (void); - - /* - * Get the character encoding for the file. - */ - virtual const ACEXML_Char *getEncoding (void); - - /* - * Get the systemId for the underlying CharStream - */ - virtual const ACEXML_Char* getSystemId (void); - -private: - - /** Read the next character as a normal character. Return -1 if EOF is - * reached, else return 0. - */ - int getchar_i (char& ch); - -#if defined (ACE_USES_WCHAR) - /** - * Read the next character from the stream taking into account the - * encoding of the file. - */ - int get_i (ACEXML_Char& ch); - - /** - * Read the next character from the stream taking into account the - * encoding of the file. Subsequent call to get() returns this - * character. - */ - int peek_i (void); - -#endif /* ACE_USES_WCHAR */ - - ACEXML_Char* filename_; - ACEXML_Char* encoding_; - ACE_OFF_T size_; - FILE* infile_; - // This is needed to ensure that we can implement a peek operation on a - // UTF-16 encoded file. It is a bit hackish, but there is no other way of - // implementing a peek() as the standard I/O FILE* guarantees only one - // pushback. - ACEXML_Char peek_; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_FILECHARSTREAM_H_ */ diff --git a/ACE/ACEXML/common/HttpCharStream.cpp b/ACE/ACEXML/common/HttpCharStream.cpp deleted file mode 100644 index 3bdb4e87db6..00000000000 --- a/ACE/ACEXML/common/HttpCharStream.cpp +++ /dev/null @@ -1,476 +0,0 @@ -// $Id$ - -#include "ace/ACE.h" -#include "ace/ace_wchar.h" -#include "ace/Auto_Ptr.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_string.h" -#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; -static const int HDST_LINE1_WHITESPACE = 1; -static const int HDST_LINE1_STATUS = 2; -static const int HDST_BOL = 10; -static const int HDST_TEXT = 11; -static const int HDST_LF = 12; -static const int HDST_CR = 13; -static const int HDST_CRLF = 14; -static const int HDST_CRLFCR = 15; - -ACEXML_HttpCharStream::ACEXML_HttpCharStream (void) - : url_(0), - url_addr_(0), - stream_(0), - connector_(0), - size_(0), - data_offset_ (0), - encoding_ (0) -{ - -} - -ACEXML_HttpCharStream::~ACEXML_HttpCharStream (void) -{ - this->close (); -} - -int -ACEXML_HttpCharStream::open (const ACEXML_Char *url) -{ - this->url_ = ACE::strnew (url); - - ACE_NEW_RETURN (this->url_addr_, ACEXML_URL_Addr, -1); - ACE_NEW_RETURN (this->stream_, ACEXML_Mem_Map_Stream, -1); - - if (this->url_addr_->string_to_addr (this->url_) == -1) { - this->close(); - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "cannot convert URL"), -1); - } - - ACE_NEW_RETURN (this->connector_, - Connector (0, ACE_NONBLOCK), - -1); - - if (this->stream_->open (this->connector_, *this->url_addr_) == -1) { - this->close(); - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "cannot open backing store"), -1); - } - - int result = this->send_request(); - if (result == -1) { - this->close(); - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send_request"), -1); - } - - size_t len = 0; - result = this->get_url(len); - if (result == -1) { - this->close(); - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_url"), -1); - } - if (result != 200) { - this->close(); - ACE_ERROR_RETURN ((LM_ERROR, "Server returned status %d : %s\n", - result, - "Refer HTTP/1.0 error code for details"), -1); - } - - this->size_ = static_cast (len); - return this->determine_encoding(); -} - -// The FSM was taken from the implementation of http_get and that falls -// under the following license: -// -// Copyrigh (c) 2000 by Jef Poskanzer . 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. - -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - - -int -ACEXML_HttpCharStream::get_url (size_t& len) -{ - if (this->stream_ == 0) - return -1; - - int header_state = HDST_LINE1_PROTOCOL; - int status = 0; - size_t b = 0; - char const * buf = 0; - size_t buflen = BUFSIZ; - for (;;) - { - buf = this->stream_->recv (buflen); - - if (buf == 0) - if (buflen == 0) - break; - else - continue; - - for (b = 0; b < buflen; ++b) - { - switch ( header_state ) - { - case HDST_LINE1_PROTOCOL: - switch ( buf[b] ) - { - case ' ': case '\t': - header_state = HDST_LINE1_WHITESPACE; break; - case '\n': header_state = HDST_LF ; break; - case '\r': header_state = HDST_CR; break; - } - break; - case HDST_LINE1_WHITESPACE: - switch ( buf[b] ) - { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - status = buf[b] - '0'; - header_state = HDST_LINE1_STATUS; - break; - case '\n': header_state = HDST_LF ; break; - case '\r': header_state = HDST_CR; break; - default: header_state = HDST_TEXT; break; - } - break; - case HDST_LINE1_STATUS: - switch ( buf[b] ) - { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - status = status * 10 + buf[b] - '0'; - break; - case '\n': header_state = HDST_LF ; break; - case '\r': header_state = HDST_CR; break; - default: header_state = HDST_TEXT; break; - } - break; - case HDST_BOL: - switch ( buf[b] ) - { - case '\n': header_state = HDST_LF; break; - case '\r': header_state = HDST_CR; break; - default: header_state = HDST_TEXT; break; - } - break; - case HDST_TEXT: - switch ( buf[b] ) - { - case '\n': header_state = HDST_LF; break; - case '\r': header_state = HDST_CR; break; - } - break; - - case HDST_LF: - switch ( buf[b] ) - { - case '\n': goto end_of_headers; - case '\r': header_state = HDST_CR; break; - default: header_state = HDST_TEXT; break; - } - break; - - case HDST_CR: - switch ( buf[b] ) - { - case '\n': header_state = HDST_CRLF; break; - case '\r': goto end_of_headers; - default: header_state = HDST_TEXT; break; - } - break; - - case HDST_CRLF: - switch ( buf[b] ) - { - case '\n': goto end_of_headers; - case '\r': header_state = HDST_CRLFCR; break; - default: header_state = HDST_TEXT; break; - } - break; - - case HDST_CRLFCR: - switch ( buf[b] ) - { - case '\n': case '\r': goto end_of_headers; - default: header_state = HDST_TEXT; break; - } - break; - } - } - } - 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. - char const * const data_beg = buf + b; - buflen = BUFSIZ; - - // Get all of the data. Since this is backed by file store, we won't lose - // any of the data. - while ((buf = this->stream_->recv (buflen)) != 0) - ; - - // Length of data in the URL. - len = this->stream_->recv() - data_beg; - - // Move the pointer to the beginning of the file store. - this->stream_->rewind(); - - this->data_offset_ = data_beg - this->stream_->recv(); - // Forward to the beginning of data. - if (this->stream_->seek (this->data_offset_, SEEK_SET) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%s: %m", - "Error in seeking to beginning of data"), -1); - - return status; -} - - -int -ACEXML_HttpCharStream::send_request (void) -{ - char* path = ACE::strnew (ACE_TEXT_ALWAYS_CHAR (this->url_addr_->get_path_name())); - ACE_Auto_Basic_Array_Ptr path_ptr (path); - size_t commandsize = ACE_OS::strlen (path) - + ACE_OS::strlen (this->url_addr_->get_host_name ()) - + 20 // Extra - + 1 // NUL byte - + 16 ; // Protocol filler... - - char* command; - ACE_NEW_RETURN (command, char[commandsize], -1); - - // Ensure that the memory is deallocated. - ACE_Auto_Basic_Array_Ptr cmd_ptr (command); - - int bytes = ACE_OS::sprintf (command, "GET %s HTTP/1.0\r\n", path); - bytes += ACE_OS::sprintf (&command[bytes], "Host: %s\r\n", - this->url_addr_->get_host_name ()); - bytes += ACE_OS::sprintf (&command[bytes], "\r\n"); - - ACE_Time_Value tv (ACE_DEFAULT_TIMEOUT); - - // Send the command to the connected server. - int retval = static_cast (this->stream_->send_n (command, bytes, &tv)); - if (retval <= 0) - return -1; - return retval; -} - - -int -ACEXML_HttpCharStream::available (void) -{ - if (this->stream_ == 0) - return -1; - return static_cast (this->stream_->available()); -} - -int -ACEXML_HttpCharStream::close (void) -{ - delete[] this->url_; - this->url_ = 0; - - delete this->url_addr_; - this->url_addr_ = 0; - - delete this->stream_; - this->stream_ = 0; - - delete this->connector_; - this->connector_ = 0; - - this->size_ = 0; - this->data_offset_ = 0; - - delete[] this->encoding_; - this->encoding_ = 0; - - return 0; -} - -int -ACEXML_HttpCharStream::determine_encoding (void) -{ - if (this->stream_ == 0) - return -1; - - 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 (EOF); ++i) - input[i] = this->stream_->peek_char (i); - - if (i < len) - return -1; - - ACEXML_Char const * const temp = ACEXML_Encoding::get_encoding (input); - - if (!temp) - return -1; - else - { - if (this->encoding_) - delete [] this->encoding_; - - this->encoding_ = ACE::strnew (temp); - // ACE_DEBUG ((LM_DEBUG, "URI's encoding is %s\n", this->encoding_)); - } - - // Move over the byte-order-mark if present. - for (size_t j = 0; j < len; ++j) - { - if (input[j] == '\xFF' || input[j] == '\xFE' || input[j] == '\xEF' || - input[j] == '\xBB' || input[j] == '\xBF') - { - this->stream_->get_char(); - continue; - } - break; - } - - return 0; -} - -void -ACEXML_HttpCharStream::rewind (void) -{ - if (this->stream_ == 0) - return; - this->stream_->rewind(); - - // Forward to the beginning of data. - if (this->stream_->seek (this->data_offset_, SEEK_SET) == -1) - ACE_ERROR ((LM_ERROR, "%s: %m", "Error in seeking to beginning of data")); - this->determine_encoding(); -} - -const ACEXML_Char* -ACEXML_HttpCharStream::getEncoding (void) -{ - return this->encoding_; -} - -const ACEXML_Char* -ACEXML_HttpCharStream::getSystemId (void) -{ - return this->url_; -} - - -int -ACEXML_HttpCharStream::read (ACEXML_Char *str, - size_t len) -{ - if (this->stream_ == 0) - return -1; - len = len * sizeof (ACEXML_Char); - char* temp = const_cast (this->stream_->recv (len)); - str = ACE_TEXT_CHAR_TO_TCHAR (temp); - if (str == 0) - return -1; - return static_cast (len); -} - - -int -ACEXML_HttpCharStream::get (ACEXML_Char& ch) -{ - if (this->stream_ == 0) - return -1; -#if defined (ACE_USES_WCHAR) - return this->get_i (ch); -#else - ch = (ACEXML_Char) this->stream_->get_char(); - return (ch == (ACEXML_Char)EOF ? -1 :0); -#endif /* ACE_USES_WCHAR */ -} - -int -ACEXML_HttpCharStream::peek (void) -{ - if (this->stream_ == 0) - return -1; - -#if defined (ACE_USES_WCHAR) - return this->peek_i(); -#else - return this->stream_->peek_char (0); -#endif /* ACE_USES_WCHAR */ -} - - -#if defined (ACE_USES_WCHAR) -int -ACEXML_HttpCharStream::get_i (ACEXML_Char& ch) -{ - if (ACE_OS::strcmp (this->encoding_, ACE_TEXT ("UTF-8")) == 0) - { - ch = (ACEXML_Char) this->stream_->get_char(); - return (ch == (ACEXML_Char)EOF ? -1 : 0); - } - int BE = (ACE_OS::strcmp (this->encoding_, - ACE_TEXT ("UTF-16BE")) == 0) ? 1 : 0; - ACEXML_Char input[2] = {0}; - int i = 0; - for (; i < 2 && (input[i] = this->stream_->get_char()) > 0; ++i) - ; - if (i < 2) - { - ch = 0; - return input[i]; - } - ch = BE ? input[0] << 8 | input[1] : input[1] << 8 | input[0]; - return 0; -} - -int -ACEXML_HttpCharStream::peek_i (void) -{ - // If we are reading a UTF-8 encoded file, just use the plain unget. - if (ACE_OS::strcmp (this->encoding_, ACE_TEXT ("UTF-8")) == 0) - { - ACEXML_Char ch = (ACEXML_Char) this->stream_->peek_char (0); - return ch; - } - - int BE = (ACE_OS::strcmp (this->encoding_, - ACE_TEXT ("UTF-16BE")) == 0) ? 1 : 0; - // Peek into the stream. - ACEXML_Char input[2]; - int i = 0; - for (; i < 2 && (input[i] = this->stream_->peek_char (i)) > 0; ++i) - ; - if (i < 2) - return -1; - return (BE ? input[0] << 8 | input[1] : input[1] << 8 | input[0]); -} -#endif /* ACE_USES_WCHAR */ diff --git a/ACE/ACEXML/common/HttpCharStream.h b/ACE/ACEXML/common/HttpCharStream.h deleted file mode 100644 index 593205bec7c..00000000000 --- a/ACE/ACEXML/common/HttpCharStream.h +++ /dev/null @@ -1,140 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file HttpCharStream.h - * - * $Id$ - * - * @author Krishnakumar B - */ -//============================================================================= - -#ifndef _ACEXML_HTTPCHARSTREAM_H_ -#define _ACEXML_HTTPCHARSTREAM_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/CharStream.h" -#include "ACEXML/common/URL_Addr.h" -#include "ACEXML/common/Mem_Map_Stream.h" - -/** - * @class ACEXML_HttpCharStream HttpCharStream.h "ACEXML/common/HttpCharStream.h" - * - * An implementation of ACEXML_CharStream for reading input from a URL. - */ -class ACEXML_Export ACEXML_HttpCharStream : public ACEXML_CharStream -{ -public: - /// Default constructor. - ACEXML_HttpCharStream (void); - - /// Destructor - virtual ~ACEXML_HttpCharStream (void); - - /// Open an URL. - int open (const ACEXML_Char *url); - - /** - * Returns the available ACEXML_Char in the buffer. -1 - * if the object is not initialized properly. - */ - virtual int available (void); - - /** - * Close this stream and release all resources used by it. - */ - virtual int close (void); - - /** - * Read the next ACEXML_Char. Return -1 if we are not able to - * return an ACEXML_Char, 0 if EOS is reached, or 1 if succeed. - */ - virtual int get (ACEXML_Char& ch); - - /** - * Read the next batch of ACEXML_Char strings - */ - virtual int read (ACEXML_Char *str, size_t len); - - /** - * Peek the next ACEXML_Char in the CharStream. Return the - * character if succeess, -1 if EOS is reached. - */ - virtual int peek (void); - - /** - * Resets the file pointer to the beginning of the stream. - */ - virtual void rewind (void); - - /** - * Determine the encoding of the file. - */ - virtual int determine_encoding (void); - - /** - * Get the encoding of the file - */ - virtual const ACEXML_Char* getEncoding (void); - - /* - * Get the systemId for the underlying CharStream - */ - virtual const ACEXML_Char* getSystemId (void); - - -private: - -#if defined (ACE_USES_WCHAR) - /** - * Read the next character from the stream taking into account the - * encoding of the file. - */ - int get_i (ACEXML_Char& ch); - - /** - * Read the next character from the stream taking into account the - * encoding of the file. Subsequent call to get() returns this - * character. - */ - int peek_i (void); - -#endif /* ACE_USES_WCHAR */ - - /** - * Send a HTTP/1.1 request to fetch the contents of the URL. - */ - int send_request (void); - - /** - * Fetch the URL and save it in backing store. - */ - int get_url (size_t& len); - - ACEXML_Char *url_; - - ACEXML_URL_Addr* url_addr_; - - ACEXML_Mem_Map_Stream* stream_; - - Connector* connector_; - - ACE_OFF_T size_; - - ACE_OFF_T data_offset_; - - ACEXML_Char* encoding_; - -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_HTTPCHARSTREAM_H_ */ diff --git a/ACE/ACEXML/common/InputSource.cpp b/ACE/ACEXML/common/InputSource.cpp deleted file mode 100644 index a871c9296e4..00000000000 --- a/ACE/ACEXML/common/InputSource.cpp +++ /dev/null @@ -1,105 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/InputSource.h" -#include "ACEXML/common/StreamFactory.h" -#include "ace/ACE.h" - -ACEXML_InputSource::ACEXML_InputSource (void) - : charStream_ (0), - encoding_ (0), - publicId_ (0), - systemId_ (0) -{ -} - -ACEXML_InputSource::ACEXML_InputSource (ACEXML_CharStream *stm) - : charStream_ (stm), - encoding_ (ACE::strnew (stm->getEncoding())), - publicId_ (0), - systemId_ (stm->getSystemId() ? ACE::strnew (stm->getSystemId()): 0) -{ -} - - /* - * Create a new input source with a character stream. - * - */ - -ACEXML_InputSource::ACEXML_InputSource (const ACEXML_Char *systemId) - : charStream_ (0), - encoding_ (0), - publicId_ (0), - systemId_ (ACE::strnew (systemId)) -{ - ACEXML_StreamFactory factory; - ACEXML_CharStream* stm = factory.create_stream (this->systemId_); - if (stm) - { - this->setCharStream (stm); - this->setEncoding (this->charStream_->getEncoding()); - } -} - -ACEXML_InputSource::~ACEXML_InputSource (void) -{ - delete[] this->publicId_; - this->publicId_ = 0; - delete[] this->systemId_; - this->systemId_ = 0; - delete this->charStream_; - this->charStream_ = 0; - delete[] this->encoding_; - this->encoding_ = 0; -} - -ACEXML_CharStream * -ACEXML_InputSource::getCharStream (void) const -{ - return this->charStream_; -} - -const ACEXML_Char * -ACEXML_InputSource::getEncoding (void) const -{ - return this->encoding_; -} - -const ACEXML_Char * -ACEXML_InputSource::getPublicId (void) const -{ - return this->publicId_; -} - -const ACEXML_Char * -ACEXML_InputSource::getSystemId (void) const -{ - return this->systemId_; -} - -void -ACEXML_InputSource::setCharStream (ACEXML_CharStream *stm) -{ - delete this->charStream_; - this->charStream_ = stm; -} - -void -ACEXML_InputSource::setEncoding (const ACEXML_Char *encoding) -{ - delete[] this->encoding_; - this->encoding_ = ACE::strnew (encoding); -} - -void -ACEXML_InputSource::setPublicId (const ACEXML_Char *publicId) -{ - delete[] this->publicId_; - this->publicId_ = ACE::strnew (publicId); -} - -void -ACEXML_InputSource::setSystemId (const ACEXML_Char *systemId) -{ - delete[] this->systemId_; - this->systemId_ = ACE::strnew (systemId); -} diff --git a/ACE/ACEXML/common/InputSource.h b/ACE/ACEXML/common/InputSource.h deleted file mode 100644 index ae2b70b130e..00000000000 --- a/ACE/ACEXML/common/InputSource.h +++ /dev/null @@ -1,131 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file InputSource.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_INPUTSOURCE_H_ -#define _ACEXML_INPUTSOURCE_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/CharStream.h" - -/** - * @class ACEXML_InputSource InputSource.h "ACEXML/common/InputSource.h" - * - * @brief ACEXML_InputSource encapsulates the actual input stream with some - * added information. - * - * This class allows a SAX application to encapsulate information - * about an input source in a single object, which may include a - * public identifier, a system identifier, a byte stream (possibly - * with a specified encoding), and/or a character stream. - * - * There are two places that the application will deliver this input - * source to the parser: as the argument to the Parser.parse method, - * or as the return value of the EntityResolver.resolveEntity method. - * - * The SAX parser will use the InputSource object to determine how to - * read XML input. If there is a character stream available, the - * parser will read that stream directly; if not, the parser will use - * a byte stream, if available; if neither a character stream nor a - * byte stream is available, the parser will attempt to open a URI - * connection to the resource identified by the system identifier. - * - * An InputSource object belongs to the application: the SAX parser - * shall never modify it in any way (it may modify a copy if - * necessary). - * - * @sa ACEXML_CharStream - */ -class ACEXML_Export ACEXML_InputSource -{ -public: - /** - * Default constructor. - */ - ACEXML_InputSource (void); - - - /** - * Create a new input source with a ACEXML_Char stream. - * Notice that ACEXML_InputSource assumes the ownership - * of - */ - explicit ACEXML_InputSource (ACEXML_CharStream *stream); - - /** - * Create a new input source with a system identifier. - */ - ACEXML_InputSource (const ACEXML_Char *systemId); - - /** - * Default destructor. - */ - virtual ~ACEXML_InputSource (void); - - /** - * Get the ACEXML_Char stream for this input source. - */ - virtual ACEXML_CharStream *getCharStream (void) const; - - /** - * Get the character encoding for a byte stream or URI. - */ - virtual const ACEXML_Char *getEncoding (void) const; - - /** - * Get the public identifier for this input source. - */ - virtual const ACEXML_Char *getPublicId (void) const; - - /** - * Get the system identifier for this input source. - */ - virtual const ACEXML_Char *getSystemId (void) const; - - /** - * Set the ACEXML_Char stream for this input source. - * Notice that ACEXML_InputSource assumes the ownership - * of - */ - virtual void setCharStream (ACEXML_CharStream *charStream); - - /** - * Set the character encoding, if known. - */ - virtual void setEncoding (const ACEXML_Char *encoding); - - /** - * Set the public identifier for this input source. - */ - virtual void setPublicId (const ACEXML_Char *publicId); - - /** - * Set the public identifier for this input source. - */ - virtual void setSystemId (const ACEXML_Char *systemId); - -private: - ACEXML_CharStream *charStream_; - ACEXML_Char *encoding_; - ACEXML_Char *publicId_; - ACEXML_Char *systemId_; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_INPUTSOURCE_H_ */ diff --git a/ACE/ACEXML/common/Locator.cpp b/ACE/ACEXML/common/Locator.cpp deleted file mode 100644 index 5de6d3a1516..00000000000 --- a/ACE/ACEXML/common/Locator.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "Locator.h" - - -ACE_RCSID (common, - Locator, - "$Id$") - - -ACEXML_Locator::~ACEXML_Locator (void) -{ -} diff --git a/ACE/ACEXML/common/Locator.h b/ACE/ACEXML/common/Locator.h deleted file mode 100644 index c6504b706a4..00000000000 --- a/ACE/ACEXML/common/Locator.h +++ /dev/null @@ -1,74 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Locator.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_LOCATOR_H_ -#define _ACEXML_LOCATOR_H_ -#include /**/ "ace/pre.h" - -#include "ACEXML/common/ACEXML_Export.h" -#include "ACEXML/common/XML_Types.h" - -/** - * @class ACEXML_Locator Locator.h "ACEXML/common/Locator.h" - * - * @brief ACEXML_Locator defines operations that an XML locator should support. - * - * If a SAX parser provides location information to the SAX - * application, it does so by implementing this interface and then - * passing an instance to the application using the content handler's - * setDocumentLocator method. The application can use the object to - * obtain the location of any other content handler event in the XML - * source document. - * - * Note that the results returned by the object will be valid only - * during the scope of each content handler method: the application - * will receive unpredictable results if it attempts to use the - * locator at any other time. - * - * SAX parsers are not required to supply a locator, but they are very - * strongly encouraged to do so. If the parser supplies a locator, it - * must do so before reporting any other document events. If no - * locator has been set by the time the application receives the - * startDocument event, the application should assume that a locator - * is not available. - */ -class ACEXML_Export ACEXML_Locator -{ -public: - - virtual ~ACEXML_Locator (void); - - /* - * Return the column number where the current document event ends. - */ - virtual int getColumnNumber (void) const = 0; - - /* - * Return the line number where the current document event ends. - */ - virtual int getLineNumber (void) const = 0; - - /* - * Return the public identifier for the current document event. - */ - virtual const ACEXML_Char *getPublicId (void) const = 0; - - /* - * Return the system identifier for the current document event. - */ - virtual const ACEXML_Char *getSystemId (void) const = 0; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_LOCATOR_H_ */ diff --git a/ACE/ACEXML/common/LocatorImpl.cpp b/ACE/ACEXML/common/LocatorImpl.cpp deleted file mode 100644 index 6139985b2fd..00000000000 --- a/ACE/ACEXML/common/LocatorImpl.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/LocatorImpl.h" - -#if !defined (__ACEXML_INLINE__) -# include "ACEXML/common/LocatorImpl.inl" -#endif /* __ACEXML_INLINE__ */ - -ACEXML_LocatorImpl::ACEXML_LocatorImpl (void) - : publicId_ (0), - systemId_ (0), - lineNumber_ (1), - columnNumber_ (0) -{ -} - -ACEXML_LocatorImpl::ACEXML_LocatorImpl (const ACEXML_Char* systemId, - const ACEXML_Char* publicId) - : publicId_ (publicId ? ACE::strnew (publicId) : 0), - systemId_ (systemId ? ACE::strnew (systemId) : 0), - lineNumber_ (1), - columnNumber_ (0) -{ -} - - -ACEXML_LocatorImpl::ACEXML_LocatorImpl (const ACEXML_Locator& locator) - : publicId_ (locator.getPublicId() ? ACE::strnew(locator.getPublicId ()): 0), - systemId_ (locator.getSystemId() ? ACE::strnew(locator.getSystemId ()): 0), - lineNumber_ (locator.getLineNumber ()), - columnNumber_ (locator.getColumnNumber ()) -{ -} - -ACEXML_LocatorImpl::~ACEXML_LocatorImpl (void) -{ - this->reset(); -} - -void -ACEXML_LocatorImpl::reset (void) -{ - delete[] this->publicId_; - this->publicId_ = 0; - delete[] this->systemId_; - this->systemId_ = 0; - this->columnNumber_ = 0; - this->lineNumber_ = 1; -} diff --git a/ACE/ACEXML/common/LocatorImpl.h b/ACE/ACEXML/common/LocatorImpl.h deleted file mode 100644 index 46a7092c84f..00000000000 --- a/ACE/ACEXML/common/LocatorImpl.h +++ /dev/null @@ -1,159 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file LocatorImpl.h - * - * $Id$ - * - * @author Nanbor Wang - * @author Krishnakumar Balasubramanian - */ -//============================================================================= - -#ifndef ACEXML_LOCALTORIMPL_H -#define ACEXML_LOCALTORIMPL_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/Locator.h" - -/** - * @class ACEXML_LocatorImpl LocatorImpl.h "ACEXML/common/LocatorImpl.h" - * - * @brief ACEXML_LocatorImpl is an implementation of ACEXML_Locator. - * - * This class is available mainly for application writers, who can - * use it to make a persistent snapshot of a locator at any point - * during a document parse: - * - * @code - * ACEXML_Locator locator; - * ACEXML_Locator startloc; - * - * public void setLocator (ACEXML_Locator locator) - * { - * // note the locator - * this.locator = locator; - * } - * - * public void startDocument () - * { - * // save the location of the start of the document - * // for future use. - * ACEXML_Locator startloc = new ACEXML_LocatorImpl(locator); - * } - * @endcode - * - * Normally, parser writers will not use this class, since it is more - * efficient to provide location information only when requested, - * rather than constantly updating a Locator object. - * - * @todo ACEXML parser doesn't support the use of Locator yet. - * - * @sa ACEXML_Locator - */ -class ACEXML_Export ACEXML_LocatorImpl : public ACEXML_Locator -{ -public: - /* - * Default constructor. - */ - ACEXML_LocatorImpl (void); - - /** - * Construct a locator with systemId and publicId - * - */ - ACEXML_LocatorImpl (const ACEXML_Char* systemId, - const ACEXML_Char* publicId); - /** - * Copy constructor. Create a persistent copy of the current state - * of a locator. When the original locator changes, this copy will - * still keep the original values (and it can be used outside the - * scope of DocumentHandler methods). - */ - ACEXML_LocatorImpl (const ACEXML_Locator& locator); - - /* - * Destructor. - */ - virtual ~ACEXML_LocatorImpl (void); - - /* - * Return the column number where the current document event ends. - */ - virtual int getColumnNumber (void) const; - - /* - * Return the line number where the current document event ends. - */ - virtual int getLineNumber (void) const; - - /* - * Return the public identifier for the current document event. - */ - virtual const ACEXML_Char *getPublicId (void) const; - - /* - * Return the system identifier for the current document event. - */ - virtual const ACEXML_Char *getSystemId (void) const; - - /* - * Set the column number of this locator. - */ - void setColumnNumber (int cn); - - /* - * Set the line number of this locator. - */ - void setLineNumber (int ln); - - /* - * Set the public identifier of this locator. - */ - void setPublicId (const ACEXML_Char *id); - - /* - * Set the system identifier of this locator. - */ - void setSystemId (const ACEXML_Char *id); - - /* - * Increment the line number. - */ - void incrLineNumber (); - - /* - * Increment the column number. - */ - void incrColumnNumber (); - - /* - * Reset the Locator information. This is necessary because one might - * want to use the same parser to parse multiple files. In that case, - * tying the life of the Locator with the parser is not appropriate. The - * parser calls this method as soon as issuing an endDocument() call. - */ - void reset (void); - -private: - ACEXML_Char *publicId_; - ACEXML_Char *systemId_; - int lineNumber_; - int columnNumber_; -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/common/LocatorImpl.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACEXML_LOCALTORIMPL_H */ diff --git a/ACE/ACEXML/common/LocatorImpl.inl b/ACE/ACEXML/common/LocatorImpl.inl deleted file mode 100644 index 808a8bd4ac4..00000000000 --- a/ACE/ACEXML/common/LocatorImpl.inl +++ /dev/null @@ -1,65 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ace/ACE.h" - -ACEXML_INLINE void -ACEXML_LocatorImpl::setColumnNumber (int cn) -{ - this->columnNumber_ = cn; -} - -ACEXML_INLINE void -ACEXML_LocatorImpl::setLineNumber (int ln) -{ - this->lineNumber_ = ln; -} - -ACEXML_INLINE int -ACEXML_LocatorImpl::getColumnNumber (void) const -{ - return this->columnNumber_; -} - -ACEXML_INLINE int -ACEXML_LocatorImpl::getLineNumber (void) const -{ - return this->lineNumber_; -} - -ACEXML_INLINE void -ACEXML_LocatorImpl::setPublicId (const ACEXML_Char *id) -{ - delete[] this->publicId_; - this->publicId_ = ACE::strnew (id); -} - -ACEXML_INLINE void -ACEXML_LocatorImpl::setSystemId (const ACEXML_Char *id) -{ - delete[] this->systemId_; - this->systemId_ = ACE::strnew (id); -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_LocatorImpl::getPublicId (void) const -{ - return this->publicId_; -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_LocatorImpl::getSystemId (void) const -{ - return this->systemId_; -} - -ACEXML_INLINE void -ACEXML_LocatorImpl::incrLineNumber () -{ - ++this->lineNumber_; -} - -ACEXML_INLINE void -ACEXML_LocatorImpl::incrColumnNumber () -{ - ++this->columnNumber_; -} diff --git a/ACE/ACEXML/common/Makefile.am b/ACE/ACEXML/common/Makefile.am deleted file mode 100644 index f08574ae905..00000000000 --- a/ACE/ACEXML/common/Makefile.am +++ /dev/null @@ -1,159 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -includedir = @includedir@/ACEXML/common -pkgconfigdir = @libdir@/pkgconfig - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.ACEXML.am - -if !BUILD_ACE_FOR_TAO - -lib_LTLIBRARIES = libACEXML.la - -libACEXML_la_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -DACEXML_BUILD_DLL - -if BUILD_ZLIB -if BUILD_ZZIP -libACEXML_la_CPPFLAGS += \ - $(ACE_ZZIP_CPPFLAGS) \ - $(ACE_ZLIB_CPPFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -libACEXML_la_SOURCES = \ - Attributes.cpp \ - AttributesImpl.cpp \ - Attributes_Def_Builder.cpp \ - CharStream.cpp \ - ContentHandler.cpp \ - DTDHandler.cpp \ - DTD_Manager.cpp \ - DefaultHandler.cpp \ - Element_Def_Builder.cpp \ - Encoding.cpp \ - EntityResolver.cpp \ - Env.cpp \ - ErrorHandler.cpp \ - Exception.cpp \ - FileCharStream.cpp \ - HttpCharStream.cpp \ - InputSource.cpp \ - Locator.cpp \ - LocatorImpl.cpp \ - Mem_Map_Stream.cpp \ - NamespaceSupport.cpp \ - SAXExceptions.cpp \ - StrCharStream.cpp \ - StreamFactory.cpp \ - Transcode.cpp \ - URL_Addr.cpp \ - Validator.cpp \ - XMLFilterImpl.cpp \ - XMLReader.cpp \ - XML_Codecs.cpp \ - XML_Util.cpp \ - ZipCharStream.cpp - -libACEXML_la_LDFLAGS = \ - -release @ACE_VERSION_NAME@ - -if BUILD_ZLIB -if BUILD_ZZIP -libACEXML_la_LDFLAGS += \ - $(ACE_ZZIP_LDFLAGS) \ - $(ACE_ZLIB_LDFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -libACEXML_la_LIBADD = \ - $(ACE_BUILDDIR)/ace/libACE.la - -if BUILD_ZLIB -if BUILD_ZZIP -libACEXML_la_LIBADD += \ - $(ACE_ZZIP_LIBS) \ - $(ACE_ZLIB_LIBS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -nobase_include_HEADERS = \ - ACEXML_Export.h \ - Attributes.h \ - AttributesImpl.h \ - AttributesImpl.inl \ - Attributes_Def_Builder.h \ - CharStream.h \ - ContentHandler.h \ - DTDHandler.h \ - DTD_Manager.h \ - DefaultHandler.h \ - Element_Def_Builder.h \ - Encoding.h \ - EntityResolver.h \ - Env.h \ - Env.inl \ - ErrorHandler.h \ - Exception.h \ - Exception.inl \ - FileCharStream.h \ - HttpCharStream.h \ - InputSource.h \ - Locator.h \ - LocatorImpl.h \ - LocatorImpl.inl \ - Mem_Map_Stream.h \ - NamespaceSupport.h \ - SAXExceptions.h \ - SAXExceptions.inl \ - StrCharStream.h \ - StreamFactory.h \ - Transcode.h \ - URL_Addr.h \ - URL_Addr.inl \ - Validator.h \ - XMLFilter.h \ - XMLFilterImpl.h \ - XMLFilterImpl.inl \ - XMLReader.h \ - XML_Codecs.h \ - XML_Macros.h \ - XML_Types.h \ - XML_Util.h \ - ZipCharStream.h - -pkgconfig_DATA = \ - ACEXML.pc - -CLEANFILES = \ - ACEXML.pc - -ACEXML.pc: ${top_builddir}/config.status ${srcdir}/ACEXML.pc.in - ${top_builddir}/config.status --file $@:${srcdir}/ACEXML.pc.in - -endif !BUILD_ACE_FOR_TAO - -EXTRA_DIST = \ - ACEXML.pc.in - - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ACEXML/common/Mem_Map_Stream.cpp b/ACE/ACEXML/common/Mem_Map_Stream.cpp deleted file mode 100644 index 67118c0d276..00000000000 --- a/ACE/ACEXML/common/Mem_Map_Stream.cpp +++ /dev/null @@ -1,264 +0,0 @@ -// $Id$ - -#include "ace/FILE_Addr.h" -#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) -{ - -} - -ACE_SOCK_Stream & -ACEXML_Mem_Map_Stream::stream (void) -{ - return svc_handler_->peer (); -} - -ssize_t -ACEXML_Mem_Map_Stream::send_n (const void *buf, size_t size, - ACE_Time_Value *tv) -{ - return svc_handler_->peer ().send_n (buf, size, 0, tv); -} - -int -ACEXML_Mem_Map_Stream::eof (void) const -{ - return this->get_pos_ >= this->end_of_mapping_plus1_; -} - -int -ACEXML_Mem_Map_Stream::get_char (void) -{ - if (this->eof () && this->grow_file_and_remap () == -1) - return EOF; - return *this->get_pos_++; -} - -void -ACEXML_Mem_Map_Stream::rewind (void) -{ - this->recv_pos_ = reinterpret_cast (this->mem_map_.addr ()); - this->get_pos_ = this->recv_pos_; - this->end_of_mapping_plus1_ = this->recv_pos_ + this->mem_map_.size (); -} - -int -ACEXML_Mem_Map_Stream::peek_char (size_t offset) -{ - // We may need to iterate if the size of is large. - while (this->get_pos_ + offset >= this->end_of_mapping_plus1_) - if (this->grow_file_and_remap () == -1) - return EOF; - - return this->get_pos_[offset]; -} - -const char * -ACEXML_Mem_Map_Stream::recv (void) const -{ - return this->recv_pos_; -} - -const char * -ACEXML_Mem_Map_Stream::recv (size_t &len) -{ - if (this->eof () && this->grow_file_and_remap () == -1) - { - len = 0; - return 0; - } - const char *s = this->recv_pos_; - this->seek (static_cast (len), SEEK_CUR); - len = this->get_pos_ - s; - return s; -} - -size_t -ACEXML_Mem_Map_Stream::recv_len (void) const -{ - return this->get_pos_ - this->recv_pos_; -} - -const char * -ACEXML_Mem_Map_Stream::peek_str (size_t offset, - size_t size) -{ - // We will iterate if the size of is large. - while (this->get_pos_ + (offset + size) > this->end_of_mapping_plus1_) - if (this->grow_file_and_remap () == -1) - return 0; - - return &this->get_pos_[offset]; -} - -ACE_OFF_T -ACEXML_Mem_Map_Stream::seek (ACE_OFF_T offset, int whence) -{ - switch (whence) - { - case SEEK_SET: - this->get_pos_ = - reinterpret_cast (this->mem_map_.addr ()) - + offset; - break; - - case SEEK_CUR: - this->get_pos_ += offset; - break; - - case SEEK_END: - this->get_pos_ = - this->end_of_mapping_plus1_ + offset; - // @@ Not sure how to implement this (yet). - ACE_NOTSUP_RETURN (-1); - } - - // Make sure that the backing store will cover this. - while (this->get_pos_ > this->end_of_mapping_plus1_) - if (this->grow_file_and_remap () == -1) - this->get_pos_ = this->end_of_mapping_plus1_; - - this->recv_pos_ = this->get_pos_; - return this->recv_pos_ - reinterpret_cast (this->mem_map_.addr ()); -} - -Svc_Handler * -ACEXML_Mem_Map_Stream::svc_handler (void) -{ - return this->svc_handler_; -} - -size_t -ACEXML_Mem_Map_Stream::available (void) const -{ - return this->end_of_mapping_plus1_ - this->get_pos_; -} - -int -ACEXML_Mem_Map_Stream::open (Connector *connector, - const ACE_INET_Addr &addr) -{ - svc_handler_ = 0; - - // Connect to the server at . 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_, - addr) == -1) - { - - ACE_ERROR_RETURN ((LM_ERROR, - "%p %s %d\n", - "Connect failed", - addr.get_host_name (), - addr.get_port_number ()), - -1); - } - // Create a temporary filename. - ACE_FILE_Addr file (ACE_sap_any_cast (ACE_FILE_Addr &)); - - // Create the temporary file via the class API. - if (this->mem_map_.open (file.get_path_name (), - O_RDWR | O_CREAT | O_APPEND, - ACE_DEFAULT_FILE_PERMS) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "open"), - -1); - // Make sure to unlink this right away so that if this process - // crashes these files will be removed automatically. - else if (ACE_OS::unlink (file.get_path_name ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "unlink"), - -1); - else - // Initialize all the position pointers to 0. - this->rewind (); - - return 0; -} - -int -ACEXML_Mem_Map_Stream::grow_file_and_remap (void) -{ - char buf[8192]; - - // Copy the next chunk of bytes from the socket into the temporary - // file. - ACE_Time_Value tv (ACE_DEFAULT_TIMEOUT); - ssize_t bytes = 0; - ssize_t n = 0; - while (1) - { - n = this->svc_handler_->peer ().recv (buf, sizeof buf, 0, &tv); - if (n < 0) - { - if (errno != EWOULDBLOCK) - { - ACE_ERROR ((LM_ERROR, "%p\n", "recv")); - } - - return -1; - } - bytes += n; - if (n == 0 && !bytes) - return -1; - else if (n == 0) - break; - else if (ACE::write_n (this->mem_map_.handle (), buf, n) != n) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "write_n"), - -1); - } - -// ssize_t n = this->svc_handler_->peer ().recv (buf, sizeof buf, 0, &tv); -// if (n == -1) -// { -// ACE_ERROR ((LM_ERROR, "%p\n", "recv")); -// return -1; -// } -// else if (n == 0) -// return -1; -// else if (ACE::write_n (this->mem_map_.handle (), buf, n) != n) -// ACE_ERROR_RETURN ((LM_ERROR, -// "%p\n", -// "write_n"), -// -1); - - // Grow the memory-mapping to encompass the entire temporary file. - if (this->mem_map_.map (static_cast (-1), - PROT_RDWR, - ACE_MAP_PRIVATE, - (void*)0) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "map"), - -1); - // MAP_FAILED is used as a "first time in" flag. - if (this->recv_pos_ == MAP_FAILED) - { - this->recv_pos_ = reinterpret_cast (this->mem_map_.addr ()); - this->get_pos_ = this->recv_pos_; - } - - this->end_of_mapping_plus1_ = - reinterpret_cast (this->mem_map_.addr ()) - + this->mem_map_.size (); - - return 0; -} - -ACEXML_Mem_Map_Stream::~ACEXML_Mem_Map_Stream (void) -{ - // Remove the mapping and the file. - this->mem_map_.remove (); - delete this->svc_handler_; -} - diff --git a/ACE/ACEXML/common/Mem_Map_Stream.h b/ACE/ACEXML/common/Mem_Map_Stream.h deleted file mode 100644 index 3752c71d104..00000000000 --- a/ACE/ACEXML/common/Mem_Map_Stream.h +++ /dev/null @@ -1,191 +0,0 @@ -/* -*- C++ -*- */ - -/** @file Mem_Map_Stream.h - * - * $Id$ - * - * @author Douglas C. Schmidt - * @author Krishnakumar B - * - */ - -#ifndef _ACEXML_MEM_MAP_STREAM_H -#define _ACEXML_MEM_MAP_STREAM_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 "ace/SOCK_Stream.h" -#include "ace/Mem_Map.h" -#include "ace/SOCK_Connector.h" -#include "ace/Connector.h" -#include "ace/Svc_Handler.h" -#include "ACEXML/common/XML_Types.h" - -typedef ACE_Svc_Handler Svc_Handler; -typedef ACE_Connector Connector; - -/** - * @class ACEXML_Mem_Map_Stream Mem_Map_Stream.h "ACEXML/common/Mem_Map_Stream.h" - * - * @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 position, which keeps track of the beginning of a - * token that is in the stream. - * - * 2. The 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 . The length of the token, i.e., the , is - * the length in bytes between the position and the position. - * Once the token has been extracted, the and positions can be - * updated by the method. - */ -class ACEXML_Export ACEXML_Mem_Map_Stream -{ -public: - /// Default constructor - ACEXML_Mem_Map_Stream (void); - - /// Initialize this object. - virtual int open (Connector *connector, - const ACE_INET_Addr &); - - /// Destructor. - virtual ~ACEXML_Mem_Map_Stream (void); - - /// Returns the underlying . - ACE_SOCK_Stream &stream (void); - - /** - * Send bytes in 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); - - /** - * Return the next character in the stream and advance the - * position. Returns EOF when the position reaches the end of the - * HTTP stream. - */ - virtual int get_char (void); - - /** - * Returns a pointer to array of at most characters starting at - * the position. If the position + extends past the - * EOF then is set to the number of characters between the - * position and the EOF and both the and positions are - * advanced by . Returns 0 if the position is at the EOF. - */ - virtual const char *recv (size_t &len); - - /** - * Returns a pointer to array of characters starting at the - * position. - */ - virtual const char *recv (void) const; - - /** - * Returns the length in bytes between the position and the - * position. - */ - virtual size_t recv_len (void) const; - - /** - * Returns the no. of bytes available in the stream. - */ - virtual size_t available (void) const; - - /** - * Resets the and positions to the beginning of the stream. - * This works since all the data has been cached in the memory-mapped - * backing store. - */ - virtual void rewind (void); - - /** - * Returns the nth character from the position in the - * stream without advancing the position. Automatically extends - * the backing store if necessary. Returns EOF if is past the - * end of the stream. - */ - virtual int peek_char (size_t offset); - - /** - * Return a pointer to an array of characters starting at - * characters from the position in the stream without - * advancing the position. Automatically extends the backing store - * if necessary. Returns 0 if or is past the - * end of the stream. - */ - virtual const char *peek_str (size_t offset, size_t size); - - /** - * Sets the and positions as follows: - * o If is , the positions are set to - * bytes from the start of the stream. - * o If is , the positions are set to the - * current position plus . - * o If is , the positions are set to the size - * of the stream plus . - * - * If offset is greater than EOF, both and are set to EOF. - * Note special return value is returned to indicate this condition. - */ - virtual ACE_OFF_T seek (ACE_OFF_T offset, int whence = SEEK_CUR); - - /// Returns 1 if we're at the end of the HTTP stream, else 0. - virtual int eof (void) const; - - /// Returns the underlying service handler. - 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); - - /** - * Connection to peer. The granularity is at the Svc_Handler level. - * The Svc_Handler has an SOCK_Stream. - */ - Svc_Handler *svc_handler_; - - /// Memory-mapped file that we're iterating over. - ACE_Mem_Map mem_map_; - - /// Pointer to the address where the next method will start. - char *recv_pos_; - - /** - * Pointer to the address where the next method will - * start. - */ - char *get_pos_; - - /// Address at the end of the file mapping. - char *end_of_mapping_plus1_; - -}; - - -#include /**/ "ace/post.h" - - -#endif /* _ACEXML_MEM_MAP_STREAM_H */ diff --git a/ACE/ACEXML/common/NamespaceSupport.cpp b/ACE/ACEXML/common/NamespaceSupport.cpp deleted file mode 100644 index 194b805c882..00000000000 --- a/ACE/ACEXML/common/NamespaceSupport.cpp +++ /dev/null @@ -1,247 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/NamespaceSupport.h" -#include "ace/OS_NS_string.h" - -static const ACEXML_Char ACEXML_XMLNS_PREFIX_name[] = ACE_TEXT ("xmlns"); - -const ACEXML_Char *ACEXML_NamespaceSupport::XMLNS_PREFIX = ACEXML_XMLNS_PREFIX_name; - -static const ACEXML_Char ACEXML_DEFAULT_NS_PREFIX[] = {0}; - -static const ACEXML_Char ACEXML_TABOO_NS_PREFIX[] = ACE_TEXT ("xml"); - -static const ACEXML_Char ACEXML_XMLNS_URI_name[] = ACE_TEXT ("http://www.w3.org/XML/1998/namespace"); -const ACEXML_Char *ACEXML_NamespaceSupport::XMLNS = ACEXML_XMLNS_URI_name; - -ACEXML_Namespace_Context_Stack::ACEXML_Namespace_Context_Stack (void) -{ -} - -ACEXML_Namespace_Context_Stack::~ACEXML_Namespace_Context_Stack (void) -{ - // Clean up stuff. -} - -int -ACEXML_Namespace_Context_Stack::push (ACEXML_NS_CONTEXT *nsc) -{ - return (this->stack_.push (nsc) < 0); -} - -ACEXML_NS_CONTEXT * -ACEXML_Namespace_Context_Stack::pop (void) -{ - if (this->stack_.size() <= 0) - return 0; - - ACEXML_NS_CONTEXT* temp = 0; - int retval = this->stack_.pop (temp); - if (retval != 0) - { - ACE_ERROR ((LM_ERROR, "Unable to pop Namespace context from stack\n")); - return 0; - } - return temp; -} - -int -ACEXML_NamespaceSupport::popContext (void) -{ - delete this->effective_context_; - - if ((this->effective_context_ = this->ns_stack_.pop ()) == 0) - return -1; - return 0; -} - -int -ACEXML_NamespaceSupport::pushContext (void) -{ - ACEXML_NS_CONTEXT *temp = this->effective_context_; - ACE_NEW_RETURN (this->effective_context_, - ACEXML_NS_CONTEXT (), - -1); - - // @@ Copy everything from the old context to the new one. - ACEXML_NS_CONTEXT_ENTRY *entry = 0; - - for (ACEXML_NS_CONTEXT_ITER iter (*temp); - iter.next (entry) != 0; - iter.advance ()) - this->effective_context_->bind (entry->ext_id_, - entry->int_id_); - this->ns_stack_.push (temp); - return 0; -} - -ACEXML_NamespaceSupport::ACEXML_NamespaceSupport (void) - : ns_stack_ (), - effective_context_ (0) -{} - -int -ACEXML_NamespaceSupport::init (void) -{ - // @@ No way to tell if the new fails. - ACE_NEW_RETURN (effective_context_, ACEXML_NS_CONTEXT(), -1); - - ACEXML_String prefix (ACEXML_TABOO_NS_PREFIX, 0, false); - ACEXML_String uri (ACEXML_XMLNS_URI_name, 0, false); - return this->effective_context_->bind (prefix, uri); -} - -ACEXML_NamespaceSupport::~ACEXML_NamespaceSupport (void) -{ - while (this->popContext () == 0) - ; -} - -int -ACEXML_NamespaceSupport::declarePrefix (const ACEXML_Char *prefix, - const ACEXML_Char *uri) -{ - if (!prefix || !uri) - return -1; - - // Unless predefined by w3.org(?) NS prefix can never start with - // "xml". - if (ACE_OS::strcmp (ACEXML_TABOO_NS_PREFIX, prefix) == 0) - return -1; - - ACEXML_String ns_prefix (prefix, 0, false); - ACEXML_String ns_uri (uri, 0, false); - - return this->effective_context_->rebind (ns_prefix, ns_uri); -} - -int -ACEXML_NamespaceSupport::getDeclaredPrefixes (ACEXML_STR_LIST &prefixes) const -{ - ACEXML_NS_CONTEXT_ENTRY *entry = 0; - - // The prefix for default namespace (empty string) is included in - // the return list. - for (ACEXML_NS_CONTEXT_ITER iter (*this->effective_context_); - iter.next (entry) != 0; - iter.advance ()) - prefixes.enqueue_tail (entry->ext_id_.c_str ()); - - return 0; -} - -const ACEXML_Char * -ACEXML_NamespaceSupport::getPrefix (const ACEXML_Char *uri) const -{ - if (!uri || *uri == 0) - return 0; - - ACEXML_NS_CONTEXT_ENTRY *entry = 0; - - for (ACEXML_NS_CONTEXT_ITER iter (*this->effective_context_); - iter.next (entry) != 0; - iter.advance ()) - if (entry->int_id_ == ACEXML_String (uri, 0, false)) - return entry->ext_id_.c_str (); - - return 0; // Nothing found. -} - -int -ACEXML_NamespaceSupport::getPrefixes (ACEXML_STR_LIST &prefixes) const -{ - ACEXML_NS_CONTEXT_ENTRY *entry = 0; - - // The prefix for default namespace (empty string) is not included - // in the return list. - for (ACEXML_NS_CONTEXT_ITER iter (*this->effective_context_); - iter.next (entry) != 0; - iter.advance ()) - prefixes.enqueue_tail (entry->ext_id_.c_str ()); - return 0; -} - -int -ACEXML_NamespaceSupport::getPrefixes (const ACEXML_Char *uri, - ACEXML_STR_LIST &prefixes) const -{ - if (!uri) - return -1; - - ACEXML_NS_CONTEXT_ENTRY *entry = 0; - - for (ACEXML_NS_CONTEXT_ITER iter (*this->effective_context_); - iter.next (entry) != 0; - iter.advance ()) - if (entry->int_id_ == ACEXML_String (uri, 0, false) && - entry->ext_id_ != ACEXML_String (ACEXML_DEFAULT_NS_PREFIX, 0, false)) - prefixes.enqueue_tail (entry->ext_id_.c_str ()); - else - continue; - - return 0; // Nothing found. -} - -const ACEXML_Char * -ACEXML_NamespaceSupport::getURI (const ACEXML_Char *prefix) const -{ - if (!prefix) - return 0; - - ACEXML_NS_CONTEXT_ENTRY *entry = 0; - - if (this->effective_context_->find (ACEXML_String (prefix, 0, false), - entry) == 0) - return entry->int_id_.c_str (); - return 0; -} - -int -ACEXML_NamespaceSupport::processName (const ACEXML_Char *qName, - const ACEXML_Char *&uri, - const ACEXML_Char *&name, - int is_attribute) const -{ - int qlen = static_cast (ACE_OS::strlen (qName)); - int len = -1; - for (int i = 0; i < qlen; ++i) - if (qName [i] == ':') - { - len = i; - break; - } - - ACEXML_String prefix (ACE_TEXT (""), 0, false); - if (len == -1) - name = qName; - else - { - prefix.set (qName, len, 1); - name = qName + len + 1; - } - - if (is_attribute && len == -1) { - uri = ACEXML_DEFAULT_NS_PREFIX; - return 0; - } - - ACEXML_NS_CONTEXT_ENTRY *entry; - - if (this->effective_context_->find (prefix, entry) == 0) - uri = entry->int_id_.c_str (); - else - { - uri = ACEXML_DEFAULT_NS_PREFIX; - return -1; - } - return 0; -} - -int -ACEXML_NamespaceSupport::reset (void) -{ - while (this->popContext() != -1) - ; - return 0; -} - diff --git a/ACE/ACEXML/common/NamespaceSupport.h b/ACE/ACEXML/common/NamespaceSupport.h deleted file mode 100644 index d81f9303d70..00000000000 --- a/ACE/ACEXML/common/NamespaceSupport.h +++ /dev/null @@ -1,235 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file NamespaceSupport.h - * - * $Id$ - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef ACEXML_NAMESPACESUPPORT_H -#define ACEXML_NAMESPACESUPPORT_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_Types.h" -#include "ace/Functor.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/Containers_T.h" -#include "ace/Null_Mutex.h" - - -typedef ACE_Hash_Map_Entry ACEXML_NS_CONTEXT_ENTRY; - -typedef ACE_Hash_Map_Manager_Ex, - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_NS_CONTEXT; - -typedef ACE_Hash_Map_Iterator_Ex, - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_NS_CONTEXT_ITER; - -typedef ACE_Hash_Map_Reverse_Iterator_Ex, - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_NS_CONTEXT_REVERSE_ITER; - -typedef ACE_Unbounded_Queue ACEXML_STR_LIST; - -/** - * @class ACEXML_Namespace_Context_Stack NamespaceSupport.h "ACEXML/common/NamespaceSupport.h" - * - * @brief ACEXML_Namespace_Context_Stack implements a simple stack - * that ACEXML_NamespaceSupport uses to keep track of namespace scopes. - * - * @sa ACEXML_NamespaceSupport - */ -class ACEXML_Export ACEXML_Namespace_Context_Stack -{ -public: - /// Default constructor. - ACEXML_Namespace_Context_Stack (void); - - /// Destructor. - ~ACEXML_Namespace_Context_Stack (void); - - /// Push the old namespace before entering into a new namespace scope. - int push (ACEXML_NS_CONTEXT * old); - - /// Pop the old namespace when exiting a namespace scope. - ACEXML_NS_CONTEXT *pop (void); - -private: - /// Internal stack structure to hold namespace context. - ACE_Unbounded_Stack stack_; -}; - -/** - * @class ACEXML_NamespaceSupport NamespaceSupport.h "ACEXML/common/NamespaceSupport.h" - * - * @brief ACEXML_NamespaceSupport provides namespace management - * operation for an XML parser. - * - * This class encapsulates the logic of Namespace processing: it - * tracks the declarations currently in force for each context and - * automatically processes qualified XML 1.0 names into their - * Namespace parts; it can also be used in reverse for generating XML - * 1.0 from Namespaces. - * - * Namespace support objects are reusable, but the reset method must - * be invoked between each session. - * - * Here is a simple session (in Java :-p): - * @code - * String parts[] = new String[3]; - * NamespaceSupport support = new NamespaceSupport(); - * - * support.pushContext(); - * support.declarePrefix("", "http://www.w3.org/1999/xhtml"); - * support.declarePrefix("dc", "http://www.purl.org/dc#"); - * - * String parts[] = support.processName("p", parts, false); - * System.out.println("Namespace URI: " + parts[0]); - * System.out.println("Local name: " + parts[1]); - * System.out.println("Raw name: " + parts[2]); - * - * String parts[] = support.processName("dc:title", parts, false); - * System.out.println("Namespace URI: " + parts[0]); - * System.out.println("Local name: " + parts[1]); - * System.out.println("Raw name: " + parts[2]); - * - * support.popContext(); - * @endcode - * - * Note that this class is optimized for the use case where most - * elements do not contain Namespace declarations: if the same - * prefix/URI mapping is repeated for each context (for example), this - * class will be somewhat less efficient. - * - * @sa ACEXML_Exception - */ -class ACEXML_Export ACEXML_NamespaceSupport -{ -public: - /** - * Default constructor. - */ - ACEXML_NamespaceSupport (void); - - /** - * Default destructor. - */ - ~ACEXML_NamespaceSupport (void); - - /** - * Initialize the namespace support object - */ - int init(void); - - /** - * XMLNS default prefix and URI strings. - */ - static const ACEXML_Char *XMLNS_PREFIX; - static const ACEXML_Char *XMLNS; - - /** - * Declare a Namespace prefix. Return -1 if the prefix was illegal - * or an internal error occured. Return 0 if the prefix gets declared - * successfully, 1 if the prefix replaces an existing prefix definition. - */ - int declarePrefix (const ACEXML_Char *prefix, - const ACEXML_Char *uri); - - /** - * Return all prefixes declared in current context in - * the user-supplied list @a prefixes. It is user's reponsibility - * to ensure the list was empty originally. - */ - int getDeclaredPrefixes (ACEXML_STR_LIST &prefixes) const; - - /** - * Return one of the prefixes mapped to a Namespace URI. - */ - const ACEXML_Char *getPrefix (const ACEXML_Char *uri) const; - - /** - * Return all prefixes currently declared in the user-supplied list. - * @@ Known bug: This function should only return user-defined prefixes. - */ - int getPrefixes (ACEXML_STR_LIST &prefixes) const; - - /** - * Return all prefixes currently declared for a URI in the - * user-supplied list. - */ - int getPrefixes (const ACEXML_Char *uri, - ACEXML_STR_LIST &prefixes) const; - - /** - * Look up a prefix and get the currently-mapped Namespace URI. - */ - const ACEXML_Char *getURI (const ACEXML_Char *prefix) const; - - /** - * Revert to the previous namespace context. - */ - int popContext (void); - - /** - * Process a raw XML 1.0 name. - * @a qName is the raw XML name we want to parse, - * @a uri contains the URI string of the raw name. It points to a null - * string if the namespace is not valid or there's no namespace defined. - * @a name contains the original name without the prefix. - * @a is_attribute specifies whether the name is an attribute or not. - * Attributes have different scoping rules from elements. - */ - int processName (const ACEXML_Char *qName, - const ACEXML_Char *&uri, - const ACEXML_Char *&name, - int is_attribute) const; - - /** - * Start a new Namespace context. Prefixes defined in previous - * context are copied over to the new context. - */ - int pushContext (void); - - /** - * Reset this Namespace support object for reuse. - * - */ - int reset (void); - -private: - /** - * Namespace Context stack. When we entering a new namespace - * context, the old context is duplicated and pushed into - * this stack. - */ - ACEXML_Namespace_Context_Stack ns_stack_; - - /** - * The effective namespace context. - */ - ACEXML_NS_CONTEXT *effective_context_; -}; - -#include /**/ "ace/post.h" - -#endif /* ACEXML_NAMESPACESUPPORT_H */ diff --git a/ACE/ACEXML/common/SAXExceptions.cpp b/ACE/ACEXML/common/SAXExceptions.cpp deleted file mode 100644 index de639f0de1b..00000000000 --- a/ACE/ACEXML/common/SAXExceptions.cpp +++ /dev/null @@ -1,250 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/SAXExceptions.h" -#include "ace/Log_Msg.h" -#include "ace/ACE.h" -#include "ace/OS_Memory.h" -#include "ace/OS_NS_string.h" - -const ACEXML_Char * ACEXML_SAXException::exception_name_ = ACE_TEXT ("ACEXML_SAXException"); - -const ACEXML_Char ACEXML_SAXNotSupportedException::exception_name_[] = ACE_TEXT ("ACEXML_SAXNotSupportedException"); - -const ACEXML_Char ACEXML_SAXNotRecognizedException::exception_name_[] = ACE_TEXT ("ACEXML_SAXNotRecognizedException"); - -const ACEXML_Char ACEXML_SAXParseException::exception_name_[] = ACE_TEXT ("ACEXML_SAXParseException"); - -#if !defined (__ACEXML_INLINE__) -# include "ACEXML/common/SAXExceptions.inl" -#endif /* __ACEXML_INLINE__ */ - -ACEXML_SAXException::ACEXML_SAXException (void) - : message_ (0) -{ -} - -ACEXML_SAXException::ACEXML_SAXException (const ACEXML_Char *msg) - : message_ (ACE::strnew (msg)) -{ -} - -ACEXML_SAXException::ACEXML_SAXException (const ACEXML_SAXException &ex) - : ACEXML_Exception (ex), - message_ (ACE::strnew (ex.message_)) - -{ -} - -ACEXML_SAXException& -ACEXML_SAXException::operator= (const ACEXML_SAXException& src) -{ - if (this != &src) - { - ACE::strdelete (this->message_); - this->message_ = ACE::strnew (src.message_); - } - - return *this; -} - -ACEXML_SAXException* -ACEXML_SAXException::_downcast (ACEXML_Exception* ex) -{ - return dynamic_cast (ex); -} - -ACEXML_SAXException::~ACEXML_SAXException (void) -{ - ACE::strdelete (this->message_); -} - -ACEXML_Exception * -ACEXML_SAXException::duplicate (void) const -{ - ACEXML_Exception *tmp; - ACE_NEW_RETURN (tmp, ACEXML_SAXException (*this), 0); - return tmp; -} - -int -ACEXML_SAXException::is_a (const ACEXML_Char *name) -{ - return ACE_OS::strcmp (ACEXML_SAXException::exception_name_, name) == 0 - || this->ACEXML_Exception::is_a (name); -} - -void -ACEXML_SAXException::print (void) const -{ - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACEXML: (%P|%t) %s: %s\n"), - this->exception_name_, this->message())); -} - -ACEXML_SAXNotSupportedException::ACEXML_SAXNotSupportedException (void) -{ -} - -ACEXML_SAXNotSupportedException::ACEXML_SAXNotSupportedException (const ACEXML_SAXNotSupportedException &ex) - : ACEXML_SAXException (ex) -{ -} - -ACEXML_SAXNotSupportedException& -ACEXML_SAXNotSupportedException::operator= (const - ACEXML_SAXNotSupportedException &ex) -{ - this->ACEXML_SAXException::operator= (ex); - return *this; -} - -ACEXML_SAXNotSupportedException* -ACEXML_SAXNotSupportedException::_downcast (ACEXML_Exception* ex) -{ - return dynamic_cast (ex); -} - -ACEXML_SAXNotSupportedException::ACEXML_SAXNotSupportedException (const ACEXML_Char* msg) - : ACEXML_SAXException (msg) -{ -} - -ACEXML_SAXNotSupportedException::~ACEXML_SAXNotSupportedException (void) -{ - delete[] this->message_; -} - - -ACEXML_Exception * -ACEXML_SAXNotSupportedException::duplicate (void) const -{ - ACEXML_Exception *tmp; - ACE_NEW_RETURN (tmp, ACEXML_SAXNotSupportedException (*this), 0); - return tmp; -} - -int -ACEXML_SAXNotSupportedException::is_a (const ACEXML_Char *name) -{ - return ACE_OS::strcmp (ACEXML_SAXNotSupportedException::exception_name_, - name) == 0 - || this->ACEXML_SAXException::is_a (name); -} - -void -ACEXML_SAXNotSupportedException::print (void) const -{ - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("ACEXML: (%P|%t) %s: %s\n"), - this->exception_name_, this->message())); -} - -ACEXML_SAXNotRecognizedException::ACEXML_SAXNotRecognizedException (void) -{ -} - -ACEXML_SAXNotRecognizedException::ACEXML_SAXNotRecognizedException (const ACEXML_Char *msg) - : ACEXML_SAXException (msg) -{ -} - -ACEXML_SAXNotRecognizedException::ACEXML_SAXNotRecognizedException (const ACEXML_SAXNotRecognizedException &ex) - : ACEXML_SAXException (ex) -{ -} - -ACEXML_SAXNotRecognizedException& -ACEXML_SAXNotRecognizedException::operator= (const ACEXML_SAXNotRecognizedException &ex) -{ - this->ACEXML_SAXException::operator= (ex); - return *this; -} - -ACEXML_SAXNotRecognizedException* -ACEXML_SAXNotRecognizedException::_downcast (ACEXML_Exception* ex) -{ - return dynamic_cast (ex); -} - -ACEXML_SAXNotRecognizedException::~ACEXML_SAXNotRecognizedException (void) -{ -} - -ACEXML_Exception * -ACEXML_SAXNotRecognizedException::duplicate (void) const -{ - ACEXML_Exception *tmp; - ACE_NEW_RETURN (tmp, ACEXML_SAXNotRecognizedException (*this), 0); - return tmp; -} - -int -ACEXML_SAXNotRecognizedException::is_a (const ACEXML_Char *name) -{ - return ACE_OS::strcmp (ACEXML_SAXNotRecognizedException::exception_name_, - name) == 0 - || this->ACEXML_SAXException::is_a (name); -} - -void -ACEXML_SAXNotRecognizedException::print (void) const -{ - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("ACEXML: (%P|%t) %s: %s\n"), - this->exception_name_, this->message())); -} - -ACEXML_SAXParseException::ACEXML_SAXParseException (void) -{ -} - -ACEXML_SAXParseException::ACEXML_SAXParseException (const ACEXML_Char *msg) - : ACEXML_SAXException (msg) -{ -} - -ACEXML_SAXParseException::ACEXML_SAXParseException (const ACEXML_SAXParseException &ex) - : ACEXML_SAXException (ex) -{ -} - -ACEXML_SAXParseException& -ACEXML_SAXParseException::operator= (const ACEXML_SAXParseException &ex) -{ - this->ACEXML_SAXException::operator= (ex); - return *this; -} - -ACEXML_SAXParseException* -ACEXML_SAXParseException::_downcast (ACEXML_Exception* ex) -{ - return dynamic_cast (ex); -} - -ACEXML_SAXParseException::~ACEXML_SAXParseException (void) -{ -} - -ACEXML_Exception * -ACEXML_SAXParseException::duplicate (void) const -{ - ACEXML_Exception *tmp; - ACE_NEW_RETURN (tmp, ACEXML_SAXParseException (*this), 0); - return tmp; -} - -int -ACEXML_SAXParseException::is_a (const ACEXML_Char *name) -{ - return ACE_OS::strcmp (ACEXML_SAXParseException::exception_name_, - name) == 0 - || this->ACEXML_SAXException::is_a (name); -} - -void -ACEXML_SAXParseException::print (void) const -{ - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACEXML: (%P|%t) %s: %s\n"), - this->exception_name_, this->message())); -} diff --git a/ACE/ACEXML/common/SAXExceptions.h b/ACE/ACEXML/common/SAXExceptions.h deleted file mode 100644 index ae117ff7bc5..00000000000 --- a/ACE/ACEXML/common/SAXExceptions.h +++ /dev/null @@ -1,208 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file SAXExceptions.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_SAXEXCEPTIONS_H_ -#define _ACEXML_SAXEXCEPTIONS_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/Exception.h" - -/** - * @class ACEXML_SAXException SAXExceptions.h "ACEXML/common/SAXExceptions.h" - * - * @brief ACEXML_SAXException - * - * ACEXML_SAXException is the mother of all SAX related exceptions. - */ -class ACEXML_Export ACEXML_SAXException : public ACEXML_Exception -{ -public: - /// Default constructor. - ACEXML_SAXException (void); - - /// Constructor initializing the exception message. - ACEXML_SAXException (const ACEXML_Char *msg); - - /// Assignment operator - ACEXML_SAXException& operator= (const ACEXML_SAXException& src); - - /// Copy constructor. - ACEXML_SAXException (const ACEXML_SAXException &ex); - - /// Destructor. - virtual ~ACEXML_SAXException (void); - - /// Throw the exception. - virtual void _raise (void); - - /// Static narrow operation. - static ACEXML_SAXException* _downcast (ACEXML_Exception* ex); - - /// Return the name of the exception. - virtual const ACEXML_Char *id (void) const; - - /// Return the extra message accompanying the exception. - const ACEXML_Char *message (void) const; - - virtual ACEXML_Exception *duplicate (void) const; - - virtual int is_a (const ACEXML_Char *name); - - virtual void print (void) const; - -protected: - static const ACEXML_Char * exception_name_; - - /// A message providing more information about the exception being thrown. - ACEXML_Char *message_; -}; - -/** - * @class ACEXML_SAXNotSupportedException SAXExceptions.h "ACEXML/common/SAXExceptions.h" - * - * @brief ACEXML_SAXNotSupportedException - */ -class ACEXML_Export ACEXML_SAXNotSupportedException - : public ACEXML_SAXException -{ -public: - /// Default constructor. - ACEXML_SAXNotSupportedException (void); - - /// Copy constructor. - ACEXML_SAXNotSupportedException (const ACEXML_SAXNotSupportedException &ex); - - /// Assignment operator - ACEXML_SAXNotSupportedException& operator= (const ACEXML_SAXNotSupportedException &ex); - - /// Constructor which accepts an informational message - ACEXML_SAXNotSupportedException (const ACEXML_Char* msg); - - /// Destructor. - virtual ~ACEXML_SAXNotSupportedException (void); - - /// Throw the exception. - virtual void _raise (void); - - /// Static narrow operation. - static ACEXML_SAXNotSupportedException* _downcast (ACEXML_Exception* ex); - - virtual const ACEXML_Char *id (void) const; - - virtual ACEXML_Exception *duplicate (void) const; - - virtual int is_a (const ACEXML_Char *name); - - virtual void print (void) const; - -protected: - static const ACEXML_Char exception_name_[]; -}; - -/** - * @class ACEXML_SAXNotRecognizedException SAXExceptions.h "ACEXML/common/SAXExceptions.h" - * - * @brief ACEXML_SAXNotRecognizedException - */ -class ACEXML_Export ACEXML_SAXNotRecognizedException - : public ACEXML_SAXException -{ -public: - /// Default constructor. - ACEXML_SAXNotRecognizedException (void); - - /// Constructor with an initializing exception message. - ACEXML_SAXNotRecognizedException (const ACEXML_Char *msg); - - /// Copy constructor. - ACEXML_SAXNotRecognizedException (const ACEXML_SAXNotRecognizedException &ex); - - /// Assignment operator. - ACEXML_SAXNotRecognizedException& operator= (const ACEXML_SAXNotRecognizedException &ex); - - /// Destructor. - virtual ~ACEXML_SAXNotRecognizedException (void); - - /// Throw the exception. - virtual void _raise (void); - - /// Static narrow operation. - static ACEXML_SAXNotRecognizedException* _downcast (ACEXML_Exception* ex); - - virtual const ACEXML_Char *id (void) const; - - virtual ACEXML_Exception *duplicate (void) const; - - virtual int is_a (const ACEXML_Char *name); - - virtual void print (void) const; - -protected: - static const ACEXML_Char exception_name_[]; -}; - -/** - * @class ACEXML_SAXParseException SAXExceptions.h "ACEXML/common/SAXExceptions.h" - * - * @brief ACEXML_SAXParseException - * - */ -class ACEXML_Export ACEXML_SAXParseException - : public ACEXML_SAXException -{ -public: - /// Default constructor. - ACEXML_SAXParseException (void); - - /// Constructor with an initializing exception message. - ACEXML_SAXParseException (const ACEXML_Char *msg); - - /// Copy constructor. - ACEXML_SAXParseException (const ACEXML_SAXParseException &ex); - - /// Assignment operator. - ACEXML_SAXParseException& operator= (const ACEXML_SAXParseException &ex); - - /// Destructor. - virtual ~ACEXML_SAXParseException (void); - - /// Throw the exception. - virtual void _raise (void); - - /// Static narrow operation. - static ACEXML_SAXParseException* _downcast (ACEXML_Exception* ex); - - virtual const ACEXML_Char *id (void) const; - - virtual ACEXML_Exception *duplicate (void) const; - - virtual int is_a (const ACEXML_Char *name); - - virtual void print (void) const; - -protected: - static const ACEXML_Char exception_name_[]; -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/common/SAXExceptions.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_SAXEXCEPTIONS_H_ */ diff --git a/ACE/ACEXML/common/SAXExceptions.inl b/ACE/ACEXML/common/SAXExceptions.inl deleted file mode 100644 index f184fcf077c..00000000000 --- a/ACE/ACEXML/common/SAXExceptions.inl +++ /dev/null @@ -1,57 +0,0 @@ -// -*- C++ -*- $Id$ - -ACEXML_INLINE const ACEXML_Char * -ACEXML_SAXException::message (void) const -{ - return (this->message_ == 0 ? - ACEXML_Exception::null_ : - this->message_); -} - -ACEXML_INLINE void -ACEXML_SAXException::_raise (void) -{ - ACEXML_RAISE (*this); -} - -ACEXML_INLINE void -ACEXML_SAXNotSupportedException::_raise (void) -{ - ACEXML_RAISE (*this); -} - -ACEXML_INLINE void -ACEXML_SAXNotRecognizedException::_raise (void) -{ - ACEXML_RAISE (*this); -} - -ACEXML_INLINE void -ACEXML_SAXParseException::_raise (void) -{ - ACEXML_RAISE (*this); -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_SAXException::id (void) const -{ - return ACEXML_SAXException::exception_name_; -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_SAXNotSupportedException::id (void) const -{ - return ACEXML_SAXNotSupportedException::exception_name_; -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_SAXNotRecognizedException::id (void) const -{ - return ACEXML_SAXNotRecognizedException::exception_name_; -} - -ACEXML_INLINE const ACEXML_Char * -ACEXML_SAXParseException::id (void) const -{ - return ACEXML_SAXParseException::exception_name_; -} diff --git a/ACE/ACEXML/common/StrCharStream.cpp b/ACE/ACEXML/common/StrCharStream.cpp deleted file mode 100644 index 4d0cc429e0e..00000000000 --- a/ACE/ACEXML/common/StrCharStream.cpp +++ /dev/null @@ -1,132 +0,0 @@ -// $Id$ - -#include "ACEXML/common/StrCharStream.h" -#include "ACEXML/common/Encoding.h" -#include "ace/ACE.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_string.h" - -ACEXML_StrCharStream::ACEXML_StrCharStream (void) - : start_ (0), ptr_ (0), end_ (0), encoding_ (0), name_ (0) -{ -} - - -ACEXML_StrCharStream::~ACEXML_StrCharStream (void) -{ - this->close(); -} - -int -ACEXML_StrCharStream::open (const ACEXML_Char *str, const ACEXML_Char* name) -{ - - if (str != 0 && name != 0) - { - delete [] this->start_; - if ((this->start_ = ACE::strnew (str)) == 0) - return -1; - delete [] this->name_; - if ((this->name_ = ACE::strnew (name)) == 0) - return -1; - this->ptr_ = this->start_; - this->end_ = this->start_ + ACE_OS::strlen (this->start_); - return this->determine_encoding(); - } - return -1; // Invalid string passed. -} - -int -ACEXML_StrCharStream::available (void) -{ - if (this->start_ != 0) - return static_cast (this->end_ - this->start_); // @@ Will this work on all platforms? - return -1; -} - -int -ACEXML_StrCharStream::close (void) -{ - delete[] this->start_; - delete[] this->encoding_; - this->encoding_ = 0; - delete[] this->name_; - this->name_ = 0; - this->start_ = this->ptr_ = this->end_ = 0; - return 0; -} - -int -ACEXML_StrCharStream::determine_encoding (void) -{ - if (this->start_ == 0) - return -1; - char input[4] = {0,0,0,0}; - char* sptr = (char*)this->start_; - int i = 0; - for ( ; i < 4 && sptr != (char*)this->end_; ++sptr, ++i) - input[i] = *sptr; - const ACEXML_Char* temp = ACEXML_Encoding::get_encoding (input); - if (!temp) - return -1; - else - { - delete [] this->encoding_; - this->encoding_ = ACE::strnew (temp); - // ACE_DEBUG ((LM_DEBUG, "String's encoding is %s\n", this->encoding_)); - } - return 0; -} - -void -ACEXML_StrCharStream::rewind (void) -{ - this->ptr_ = this->start_; - this->determine_encoding(); -} - -int -ACEXML_StrCharStream::get (ACEXML_Char& ch) -{ - if (this->start_ != 0 && this->ptr_ != this->end_) - { - ch = *this->ptr_++; - return 0; - } - return -1; -} - -int -ACEXML_StrCharStream::read (ACEXML_Char *str, size_t len) -{ - if (this->start_ != 0 && - this->ptr_ != this->end_) - { - if (len * sizeof (ACEXML_Char) > (size_t) (this->end_ - this->ptr_)) - len = this->end_ - this->ptr_; - ACE_OS::strncpy (str, this->ptr_, len); - this->ptr_ += len; - return static_cast (len); - } - return 0; -} - -int -ACEXML_StrCharStream::peek (void) -{ - if (this->start_ != 0 && this->ptr_ != this->end_) - return *this->ptr_; - return -1; -} - -const ACEXML_Char* -ACEXML_StrCharStream::getEncoding (void) -{ - return this->encoding_; -} - -const ACEXML_Char* -ACEXML_StrCharStream::getSystemId(void) -{ - return this->name_; -} diff --git a/ACE/ACEXML/common/StrCharStream.h b/ACE/ACEXML/common/StrCharStream.h deleted file mode 100644 index 21de6ecaea4..00000000000 --- a/ACE/ACEXML/common/StrCharStream.h +++ /dev/null @@ -1,102 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file StrCharStream.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_STRCHARSTREAM_H_ -#define _ACEXML_STRCHARSTREAM_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/CharStream.h" - -/** - * @class ACEXML_StrCharStream StrCharStream.h "common/StrCharStream.h" - * - * An implementation of ACEXML_CharStream for reading - * input from a null-terminated ACEXML_Char string. - */ -class ACEXML_Export ACEXML_StrCharStream : public ACEXML_CharStream -{ -public: - /// Default constructor. - ACEXML_StrCharStream (void); - - /// Destructor - virtual ~ACEXML_StrCharStream (void); - - /// Initializing StrCharStream with @a str and @a name - int open (const ACEXML_Char *str, const ACEXML_Char* name); - - /** - * Returns the available ACEXML_Char in the buffer. -1 - * if the object is not initialized properly. - */ - virtual int available (void); - - /** - * Close this stream and release all resources used by it. - */ - virtual int close (void); - - /** - * Determine the encoding of the file. - */ - virtual int determine_encoding (void); - - /** - * Read the next ACEXML_Char. Return -1 if we are not able to - * return an ACEXML_Char, 0 if EOS is reached, or 1 if succeed. - */ - virtual int get (ACEXML_Char& ch); - - /** - * Read the next batch of ACEXML_Char strings - */ - virtual int read (ACEXML_Char *str, size_t len); - - /** - * Peek the next ACEXML_Char in the CharStream. Return the - * character if succeess, -1 if EOS is reached. - */ - virtual int peek (void); - - /* - * Get the character encoding for a byte stream or URI. - */ - virtual const ACEXML_Char *getEncoding (void); - - /* - * Get the systemId for the underlying CharStream - */ - virtual const ACEXML_Char* getSystemId (void); - - /** - * Resets the pointer to the beginning of the stream. - */ - virtual void rewind (void); - -private: - ACEXML_Char *start_; - ACEXML_Char *ptr_; - ACEXML_Char *end_; - ACEXML_Char* encoding_; - ACEXML_Char* name_; - -}; - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_STRCHARSTREAM_H_ */ diff --git a/ACE/ACEXML/common/StreamFactory.cpp b/ACE/ACEXML/common/StreamFactory.cpp deleted file mode 100644 index 7cee4c1a65f..00000000000 --- a/ACE/ACEXML/common/StreamFactory.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// $Id$ - -#include "ace/OS_NS_string.h" - -#include "ACEXML/common/StreamFactory.h" -#include "ACEXML/common/FileCharStream.h" -#include "ACEXML/common/HttpCharStream.h" - -#ifdef USE_ZZIP -#include "ACEXML/common/ZipCharStream.h" -#endif /* USE_ZZIP */ - -ACE_RCSID (common, StreamFactory, "$Id$") - -ACEXML_CharStream* -ACEXML_StreamFactory::create_stream (const ACEXML_Char* uri) -{ - if (uri == 0) - return 0; - ACEXML_FileCharStream* fstream = 0; - ACEXML_HttpCharStream* hstream = 0; - - if (ACE_OS::strstr (uri, ACE_TEXT("ftp://")) != 0) - { - return 0; - } - else if (ACE_OS::strstr (uri, ACE_TEXT ("http://")) != 0) - { - ACE_NEW_RETURN (hstream, ACEXML_HttpCharStream, 0); - if (hstream->open (uri) != -1) - return hstream; - } - else - { - if (ACE_OS::strstr (uri, ACE_TEXT ("file://")) != 0) - uri += 7; // Skip over file:// - ACE_NEW_RETURN (fstream, ACEXML_FileCharStream, 0); - if (fstream->open (uri) != -1) - return fstream; -#ifdef USE_ZZIP - else - { - ACEXML_ZipCharStream* zstream = 0; - ACE_NEW_RETURN (zstream, ACEXML_ZipCharStream, 0); - if (zstream->open (uri) != -1) - return zstream; - } -#endif /* USE_ZZIP */ - } - return 0; -} - -ACEXML_StreamFactory::~ACEXML_StreamFactory () -{ - // No op -} diff --git a/ACE/ACEXML/common/StreamFactory.h b/ACE/ACEXML/common/StreamFactory.h deleted file mode 100644 index 9391eb6a299..00000000000 --- a/ACE/ACEXML/common/StreamFactory.h +++ /dev/null @@ -1,58 +0,0 @@ -/** - * @file StreamFactory.h - * - * $Id$ - * - * @author Krishnakumar B - */ - -#ifndef _ACEXML_STREAM_FACTORY_H -#define _ACEXML_STREAM_FACTORY_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_Types.h" - -// Forward declarations - -class ACEXML_CharStream; - -/** - * @class ACEXML_StreamFactory StreamFactory.h "ACEXML/common/ACEXML_StreamFactory.h" - * - * @brief A generic factory used to create an appropriate @sa - * ACEXML_CharStream from a SYSTEM id. This class creates a @sa - * ACEXML_FileCharStream or a @sa ACEXML_HttpCharStream depending on the - * URI supplied. - * - * @todo Write a stream abstraction for handling ftp:// type URIs and add - * a function to create and return such streams. That is the only chunk - * missing in the armour. - */ - -class ACEXML_Export ACEXML_StreamFactory -{ -public: - - // Destructor - virtual ~ACEXML_StreamFactory (void); - - /** - * Create the appropriate stream from the @a uri passed and return the - * stream. The caller is responsible for deallocating the returned - * stream. - * - * @param uri SYSTEM id or a stream of characters (in the case of a - * StrCharStream). - */ - virtual ACEXML_CharStream* create_stream (const ACEXML_Char* uri); -}; - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_STREAM_FACTORY_H */ diff --git a/ACE/ACEXML/common/Transcode.cpp b/ACE/ACEXML/common/Transcode.cpp deleted file mode 100644 index f94d93bba32..00000000000 --- a/ACE/ACEXML/common/Transcode.cpp +++ /dev/null @@ -1,311 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/Transcode.h" -#include "ace/OS_NS_string.h" - -int -ACEXML_Transcoder::utf162utf8 (ACEXML_UTF16 src, - ACEXML_UTF8 *dst, - size_t len) -{ - // Check for valid argument first... - - if (dst == 0) - return ACEXML_INVALID_ARGS; - - if (src < 0x80) - { - if (len < 1) - return ACEXML_DESTINATION_TOO_SHORT; - - *dst = static_cast (src); - return 1; - } - else if (src < 0x800) - { - if (len < 2) - return ACEXML_DESTINATION_TOO_SHORT; - - *dst = 0xc0 | (static_cast (src) / 0x40); - *(dst+1) = 0x80 | (static_cast (src) % 0x40); - return 2; - } - else - { - if (len < 3) - return ACEXML_DESTINATION_TOO_SHORT; - - // Surrogates (0xD800 - 0xDFFF) are not valid unicode values - if (src >= 0xD800 && src < 0xE000) - return ACEXML_IS_SURROGATE; - - *dst = 0xe0 | (static_cast (src) / 0x1000); - *(dst+1) = 0x80 | ((static_cast (src) % 0x1000) / 0x40); - *(dst+2) = 0x80 | (static_cast (src) % 0x40); - return 3; - } -} - -int -ACEXML_Transcoder::ucs42utf8 (ACEXML_UCS4 src, - ACEXML_UTF8 *dst, - size_t len) -{ - if (src < 0x10000) - { - int retv = ACEXML_Transcoder::utf162utf8 - (static_cast (src), - dst, len); - return (retv == ACEXML_IS_SURROGATE ? ACEXML_NON_UNICODE : retv); - } - else if (src >= 0x100000 && src < 0x110000) - { - if (len < 4) - return ACEXML_DESTINATION_TOO_SHORT; - - if (dst == 0) - return ACEXML_INVALID_ARGS; - - *dst = 0xf0 | (static_cast (src / 0x40000)); - *(dst+1) = 0x80 | ((static_cast (src % 0x40000)) / 0x1000); - *(dst+2) = 0x80 | ((static_cast (src % 0x1000)) / 0x40); - *(dst+3) = 0x80 | (static_cast (src % 0x40)); - return 4; - } - return ACEXML_NON_UNICODE; -} - - -int -ACEXML_Transcoder::ucs42utf16 (ACEXML_UCS4 src, - ACEXML_UTF16 *dst, - size_t len) -{ - if (dst == 0) - return ACEXML_INVALID_ARGS; - - if (src < 0x10000) - { - if (len < 1) - return ACEXML_DESTINATION_TOO_SHORT; - - if (src >= 0xD800 && src < 0xE000) - return ACEXML_NON_UNICODE; // Surrogates are not valid unicode value - - *dst = static_cast (src); - return 1; - } - else if (src >= 0x100000 && src < 0x110000) - // Scalar values are encoded into surrogates - { - if (len < 2) - return ACEXML_DESTINATION_TOO_SHORT; - - *dst = 0xD800 | (static_cast (src) / 0x400); - *(dst+1) = 0xDC00 | (static_cast (src) % 0x400); - return 2; - } - - return ACEXML_NON_UNICODE; -} - -int -ACEXML_Transcoder::surrogate2utf8 (ACEXML_UTF16 high, - ACEXML_UTF16 low, - ACEXML_UTF8 *dst, - size_t len) -{ - if (len < 3) - return ACEXML_DESTINATION_TOO_SHORT; - - if (dst == 0 || - (high >= 0xD800 && high < 0xDC00) || - (low >= 0xDC00 && low < 0xE000)) - return ACEXML_INVALID_ARGS; - - ACEXML_UCS4 src = (high - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000; - *dst = static_cast (0xD800 | (src / 0x400)); - *(dst+1) = static_cast (0xDC00 | (src % 0x400)); - return 2; -} - -int -ACEXML_Transcoder::surrogate2ucs4 (ACEXML_UTF16 high, - ACEXML_UTF16 low, - ACEXML_UCS4 &dst) -{ - if ((high >= 0xD800 && high < 0xDC00) || - (low >= 0xDC00 && low < 0xE000)) - return ACEXML_INVALID_ARGS; - - dst = (high - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000; - return ACEXML_SUCCESS; -} - -int -ACEXML_Transcoder::utf82ucs4 (const ACEXML_UTF8 *the_src, - size_t len, - ACEXML_UCS4 &dst) -{ - if (the_src == 0) - return ACEXML_INVALID_ARGS; - - const unsigned char *src = reinterpret_cast (the_src); - - size_t forward = 1; - - if (forward > len) - return ACEXML_END_OF_SOURCE; - - if (static_cast (*src) < 0x80) - dst = *src; - else if ((*src & 0xE0) == 0xC0) - { - dst = (*(src++) & 0x1f) * 0x40; - if (++forward > len) - return ACEXML_END_OF_SOURCE; - if ((*src & 0xC0) != 0x80) - return ACEXML_NON_UNICODE; // Error transcoding unicode scalar - dst += *src & 0x3f; - } - else if ((*src & 0xF0) == 0xE0) - { - dst = (*src++ & 0x0f) * 0x40; - if (++forward > len) - return ACEXML_END_OF_SOURCE; - if ((*src & 0xC0) != 0x80) - return ACEXML_NON_UNICODE; - dst = (dst + (*src++ & 0x3f)) * 0x40; - if (++forward > len) - return ACEXML_END_OF_SOURCE; - if ((*src & 0xC0) != 0x80) - return ACEXML_NON_UNICODE; - dst += *src & 0x3f; - } - else if ((*src & 0xF8) == 0xF0) - { - dst = (*src++ & 0x0f) * 0x40; - if (++forward > len) - return ACEXML_END_OF_SOURCE; - if ((*src & 0xC0) != 0x80) - return ACEXML_NON_UNICODE; - dst = (dst + (*src++ & 0x3f)) * 0x40; - if (++forward > len) - return ACEXML_END_OF_SOURCE; - if ((*src & 0xC0) != 0x80) - return ACEXML_NON_UNICODE; - dst = (dst + (*src++ & 0x3f)) * 0x40; - if (++forward > len) - return ACEXML_END_OF_SOURCE; - if ((*src & 0xC0) != 0x80) - return ACEXML_NON_UNICODE; - dst += *src & 0x3f; - } - else - return ACEXML_NON_UNICODE; - - return forward; -} - -int -ACEXML_Transcoder::utf162ucs4 (const ACEXML_UTF16 *src, - size_t len, - ACEXML_UCS4 &dst) -{ - if (src == 0) - return ACEXML_INVALID_ARGS; - - size_t forward = 1; - if (*src >= 0xDC00 && *src < 0xE000) - { - if (len < 2) - return ACEXML_END_OF_SOURCE; - return ACEXML_Transcoder::surrogate2ucs4 (*src, - *(src+1), - dst); - } - else - { - if (len < 1) - return ACEXML_END_OF_SOURCE; - dst = *src; - } - - return forward; -} - -int -ACEXML_Transcoder::utf8s2utf16s (const ACEXML_UTF8 *src, - ACEXML_UTF16 *dst, - size_t len) -{ - if (src == 0 || dst == 0) - return ACEXML_INVALID_ARGS; - - size_t src_len = ACE_OS::strlen (src) + 1; - - size_t total_len = 0; - int forward; - ACEXML_UCS4 temp; - - while (src_len > 0) - { - if ((forward = ACEXML_Transcoder::utf82ucs4 (src, - src_len, - temp)) <= 0) - return forward; - - src += forward; - src_len -= forward; - - if ((forward = ACEXML_Transcoder::ucs42utf16 (temp, - dst, - len)) <= 0) - return forward; - - total_len += forward; - dst += forward; - len -= forward; - } - - return static_cast (total_len); -} - -int -ACEXML_Transcoder::utf16s2utf8s (const ACEXML_UTF16 *src, - ACEXML_UTF8 *dst, - size_t len) -{ - if (src == 0 || dst == 0) - return ACEXML_INVALID_ARGS; - - size_t src_len = 1; - for (const ACEXML_UTF16 *p = src; *p++ != 0; ++src_len) - ; - - size_t total_len = 0; - int forward; - ACEXML_UCS4 temp; - - while (src_len > 0) - { - if ((forward = ACEXML_Transcoder::utf162ucs4 (src, - src_len, - temp)) <= 0) - return forward; - - src += forward; - src_len -= forward; - - if ((forward = ACEXML_Transcoder::ucs42utf8 (temp, - dst, - len)) <= 0) - return forward; - - total_len += forward; - dst += forward; - len -= forward; - } - - return static_cast (total_len); -} diff --git a/ACE/ACEXML/common/Transcode.h b/ACE/ACEXML/common/Transcode.h deleted file mode 100644 index 1acf294c7aa..00000000000 --- a/ACE/ACEXML/common/Transcode.h +++ /dev/null @@ -1,172 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Transcode.h - * - * This file declares functions to convert char string among different - * unicode encoding (utf8, utf16, utf32) - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_TRANSCODE_H_ -#define _ACEXML_TRANSCODE_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_Types.h" - -/** - * @class ACEXML_Transcoder Transcode.h "ACEXML/common/Transcode.h" - * - * @brief ACEXML_Transcoder - * - * Wrapper class for performing transcoding among different UNICODE - * encoding. - */ -class ACEXML_Export ACEXML_Transcoder -{ -public: - /* - * Status of the conversion function. - */ - enum - { - ACEXML_SUCCESS = 0, - ACEXML_DESTINATION_TOO_SHORT = -1, - ACEXML_END_OF_SOURCE = -2, - ACEXML_INVALID_ARGS = -3, - ACEXML_IS_SURROGATE = -4, - ACEXML_NON_UNICODE = -5 - } ACEXML_STATUS; - - - // The following functions translate a unicode characters - // into different encoding. Return number of characters put into - // destination or consumed from src if success without - // error, otherwise, return corresponding error code. - /* - * Convert a UTF-16 character into a string in UTF-8 encoding. - * - * @return number of characters the function uses to store the - * converted string if it succeeds or one of the error STATUS - * otherwise. - */ - static int utf162utf8 (ACEXML_UTF16 src, - ACEXML_UTF8 *dst, - size_t len); - - /* - * Convert a UCS-4 character into a string in UTF-8 encoding. - * - * @return number of characters the function uses to store the - * converted string if it succeeds or one of the error STATUS - * otherwise. - */ - static int ucs42utf8 (ACEXML_UCS4 src, - ACEXML_UTF8 *dst, - size_t len); - - /* - * Convert a UCS-4 character into a string in UTF-16 encoding. - * - * @return number of characters the function uses to store the - * converted string if it succeeds or one of the error STATUS - * otherwise. - */ - static int ucs42utf16 (ACEXML_UCS4 src, - ACEXML_UTF16 *dst, - size_t len); - - /* - * Convert a UTF-16 surrogate character pair into a string in UTF-8 encoding. - * - * @return number of characters the function uses to store the - * converted string if it succeeds or one of the error STATUS - * otherwise. - */ - static int surrogate2utf8 (ACEXML_UTF16 high, - ACEXML_UTF16 low, - ACEXML_UTF8 *dst, - size_t len); - - /* - * Convert a UTF-16 surrogate character pair into a UCS-4 character. - * - * @return SUCCESS if it succeeds or one of the error STATUS - * otherwise. - */ - static int surrogate2ucs4 (ACEXML_UTF16 high, - ACEXML_UTF16 low, - ACEXML_UCS4 &dst); - - /* - * Convert the first UNICODE character in a UTF-8 character string - * into a UCS-4 character. - * - * @return number of characters the function consumed from the - * UTF-8 string if it succeeds or one of the error STATUS - * otherwise. - */ - static int utf82ucs4 (const ACEXML_UTF8 *src, - size_t len, - ACEXML_UCS4 &dst); - - /* - * Convert the first UNICODE character in a UTF-16 character string - * into a UCS-4 character. - * - * @return number of characters the function consumed from the - * UTF-16 string if it succeeds or one of the error STATUS - * otherwise. - */ - static int utf162ucs4 (const ACEXML_UTF16 *src, - size_t len, - ACEXML_UCS4 &dst); - -// static int utf82utf16 (const ACEXML_UTF8 *src, -// size_t len, -// ACEXML_UTF16 &dst); - // This function does not handle surrogates. - - // = The following functions are non-inlined: - - /* - * Convert a UTF-8 string into a UTF-16 string. - * - * @param len The length of @a dst string. - * - * @return number of characters the function consumed from the - * UTF-8 string if it succeeds or one of the error STATUS - * otherwise. - */ - static int utf8s2utf16s (const ACEXML_UTF8 *src, - ACEXML_UTF16 *dst, - size_t len); - - /* - * Convert a UTF-16 string into a UTF-8 string. - * - * @param len The length of @a dst string. - * - * @return number of characters the function uses in - * UTF-8 string if it succeeds or one of the error STATUS - * otherwise. - */ - static int utf16s2utf8s (const ACEXML_UTF16 *src, - ACEXML_UTF8 *dst, - size_t len); -}; - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_TRANSCODE_H_ */ diff --git a/ACE/ACEXML/common/URL_Addr.cpp b/ACE/ACEXML/common/URL_Addr.cpp deleted file mode 100644 index 1d77c6da762..00000000000 --- a/ACE/ACEXML/common/URL_Addr.cpp +++ /dev/null @@ -1,178 +0,0 @@ -// $Id$ - -#include "ACEXML/common/URL_Addr.h" - -ACE_RCSID(common, ACEXML_URL_Addr, "$Id$") - -#if !defined (__ACEXML_INLINE__) -#include "ACEXML/common/URL_Addr.inl" -#endif /* __ACEXML_INLINE__ */ - -#include "ace/Log_Msg.h" -#include "ace/Auto_Ptr.h" -#include "ace/OS_Memory.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_stdlib.h" -#include "ace/OS_NS_string.h" - -ACEXML_URL_Addr::ACEXML_URL_Addr (void) - : path_name_ (0), - addr_string_ (0), - addr_string_len_ (0) -{ -} - -int -ACEXML_URL_Addr::addr_to_string (ACEXML_Char *s, - size_t size, - int ipaddr_format) const -{ - size_t total_len = this->calculate_length (ipaddr_format); - if (size < total_len) - return -1; - else - { - ACE_OS::sprintf (s, ACE_TEXT ("%s:%d/%s"), - ACE_TEXT_CHAR_TO_TCHAR (ipaddr_format == 0 - ? this->get_host_name () - : this->get_host_addr ()), - this->get_port_number (), - this->get_path_name ()); - return 0; - } -} - -const ACEXML_Char * -ACEXML_URL_Addr::addr_to_string (int ipaddr_format) -{ - size_t size = this->calculate_length (ipaddr_format); - if (size > this->addr_string_len_) - { - ACE_ALLOCATOR_RETURN (this->addr_string_, - (ACEXML_Char *) ACE_OS::realloc(this->addr_string_, - size), 0); - this->addr_string_len_ = size; - } - ACE_OS::sprintf (this->addr_string_, - ACE_TEXT ("%s:%d/%s"), - ACE_TEXT_CHAR_TO_TCHAR (ipaddr_format == 0 - ? this->get_host_name () - : this->get_host_addr ()), - this->get_port_number (), - this->get_path_name ()); - return this->addr_string_; -} - -#if defined (ACE_USES_WCHAR) -int -ACEXML_URL_Addr::string_to_addr (const char* s, - int address_family) -{ - return this->string_to_addr (ACE_TEXT_CHAR_TO_TCHAR (s), address_family); -} -#endif /* ACE_USES_WCHAR */ - -int -ACEXML_URL_Addr::string_to_addr (const ACEXML_Char* s, - int /*address_family */) -{ - if (s == 0) - return -1; - - const ACEXML_Char* http = ACE_TEXT ("http://"); - size_t http_len = ACE_OS::strlen (http); - - // Check validity of URL - if (ACE_OS::strncmp (http, s, http_len) != 0) - ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("Invalid URL %s\n"), s), -1); - - const ACEXML_Char* url = 0; - // Get the host name - for (url = s + http_len; *url != '\0' && *url != ':' && *url != '/'; ++url) - ; - - size_t host_len = url - s; - host_len -= http_len; - - ACEXML_Char* host_name = 0; - ACE_NEW_RETURN (host_name, ACEXML_Char[host_len + 1], -1); - ACE_OS::strncpy (host_name, s + http_len, host_len); - host_name[host_len] = '\0'; - ACE_Auto_Basic_Array_Ptr cleanup_host_name (host_name); - - // Get the port number (if any) - unsigned short port = ACE_DEFAULT_HTTP_PORT; - if (*url == ':') - { - port = (unsigned short) ACE_OS::strtol (++url, 0, 10); // Skip over ':' - while ( *url != '\0' && *url != '/' ) - ++url; - } - - // Set the addr - int result = this->ACE_INET_Addr::set (port, host_name); - - if (result == -1) - return -1; - - // Get the path name - const ACEXML_Char* path_name = 0; - if (*url == '\0') - path_name = ACE_TEXT ("/"); - else - path_name = url; - - ACE_ALLOCATOR_RETURN (this->path_name_, ACE_OS::strdup (path_name), -1); - return result; -} - -ACEXML_URL_Addr::ACEXML_URL_Addr (const ACEXML_URL_Addr &addr) - : ACE_INET_Addr (), - path_name_ (0), - addr_string_ (0), - addr_string_len_ (0) -{ - if (this->set (addr) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACEXML_URL_Addr::ACEXML_URL_Addr"))); -} - -int -ACEXML_URL_Addr::set (const ACEXML_URL_Addr &addr) -{ - ACE_OS::free (this->path_name_); - ACE_OS::free (this->addr_string_); - if (this->ACE_INET_Addr::set (addr) == -1) - return -1; - else - { - if (addr.path_name_) - ACE_ALLOCATOR_RETURN (this->path_name_, - ACE_OS::strdup (addr.path_name_), - -1); - if (addr.addr_string_) - ACE_ALLOCATOR_RETURN (this->addr_string_, - ACE_OS::strdup (addr.addr_string_), - -1); - this->addr_string_len_ = addr.addr_string_len_; - return 0; - } -} - -ACEXML_URL_Addr::ACEXML_URL_Addr (const ACEXML_Char *host_name, - const ACEXML_Char *path_name, - unsigned short port) - : ACE_INET_Addr (port, host_name), - path_name_ (ACE_OS::strdup (path_name)), - addr_string_ (0), - addr_string_len_ (0) -{ -} - -ACEXML_URL_Addr::~ACEXML_URL_Addr (void) -{ - ACE_OS::free (this->path_name_); - ACE_OS::free (this->addr_string_); - this->path_name_ = 0; -} diff --git a/ACE/ACEXML/common/URL_Addr.h b/ACE/ACEXML/common/URL_Addr.h deleted file mode 100644 index 3c6145c2c0d..00000000000 --- a/ACE/ACEXML/common/URL_Addr.h +++ /dev/null @@ -1,137 +0,0 @@ -/* -*- C++ -*- */ - -/** @file URL_Addr.h - * - * $Id$ - * - * @author Douglas C. Schmidt - * @author Krishnakumar B - * - */ - -#ifndef _ACEXML_URL_ADDR_H -#define _ACEXML_URL_ADDR_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 "ace/Default_Constants.h" -#include "ace/INET_Addr.h" -#include "ACEXML/common/XML_Types.h" -#include "ACEXML/common/ACEXML_Export.h" - -/** - * @class ACEXML_URL_Addr URL_Addr.h "ACEXML/common/URL_Addr.h" - * - * Defines a URL address family address format. - */ -class ACEXML_Export ACEXML_URL_Addr : public ACE_INET_Addr -{ -public: - /// Initialization and termination methods. - ACEXML_URL_Addr (void); - - /// Constructor. - ACEXML_URL_Addr (const ACEXML_Char *host_name, - const ACEXML_Char *path_name, - unsigned short port = ACE_DEFAULT_HTTP_PORT); - - /// Copy constructor. - ACEXML_URL_Addr (const ACEXML_URL_Addr &addr); - - /// Essentially the copy constructor. - int set (const ACEXML_URL_Addr &addr); - - /** - * Initializes an from the
, 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 - *
it is assumed to be an ip-number or ip-address number, with - * the port number . - */ - virtual int string_to_addr (const ACEXML_Char* address, - int address_family = AF_UNSPEC); - - // Function to shut up Borland C++ -#if defined (ACE_USES_WCHAR) - virtual int string_to_addr (const char* addresss, - int address_family = AF_UNSPEC); -#endif - - /** - * Transform the current address into string format. If - * is non-0 this produces - * "ip-number:port-number/path-name" (e.g., - * "128.252.166.57:80/~schmidt/"), whereas if is 0 this - * produces "ip-name:port-number" (e.g., - * "www.cs.wustl.edu:80/~schmidt/"). Returns -1 if the of the - * is too small, else 0. - */ - virtual int addr_to_string (ACEXML_Char *s, - size_t size, - int ipaddr_format = 1) const; - - /** - * Transform the current address into string format. If - * is non-0 this produces - * "ip-number:port-number/path-name" (e.g., - * "128.252.166.57:80/~schmidt/"), whereas if 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 ACEXML_Char *addr_to_string (int ipaddr_format = 1); - - /// Assignment operator. - void operator= (const ACEXML_URL_Addr &addr); - - /// Destructor. - ~ACEXML_URL_Addr (void); - - /** - * 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 ACEXML_URL_Addr &SAP) const; - - /// Compare two addresses for inequality. - bool operator != (const ACEXML_URL_Addr &SAP) const; - - /// Computes and returns hash value. - virtual u_long hash (void) const; - - /// Return the path name. - const ACEXML_Char *get_path_name (void) const; - - /// Commit suicide. - int destroy (void); - -private: - - /// Calculate the maximum length of the address string - size_t calculate_length (int ipaddr_format) const; - - /// Our path name. - ACEXML_Char *path_name_; - - /// The dynamically created address string that's used for the - /// method. - ACEXML_Char *addr_string_; - - /// Current length of the - size_t addr_string_len_; -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/common/URL_Addr.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_URL_ADDR_H */ diff --git a/ACE/ACEXML/common/URL_Addr.inl b/ACE/ACEXML/common/URL_Addr.inl deleted file mode 100644 index b1ac1db8322..00000000000 --- a/ACE/ACEXML/common/URL_Addr.inl +++ /dev/null @@ -1,65 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/ACE.h" -#include "ace/INET_Addr.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_string.h" - -ACE_INLINE size_t -ACEXML_URL_Addr::calculate_length (int ipaddr_format) const -{ - return ACE_OS::strlen (ipaddr_format == 0 ? - this->get_host_name () : this->get_host_addr ()) - + ACE_OS::strlen ("65536") // Assume the max port number. - + ACE_OS::strlen (this->get_path_name ()) - + sizeof (':') - + sizeof ('/') - + sizeof ('\0'); // For trailing '\0'. -} - -ACE_INLINE void -ACEXML_URL_Addr::operator= (const ACEXML_URL_Addr &addr) -{ - if (this->set (addr) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACEXML_URL_Addr::ACEXML_URL_Addr"))); -} - -ACE_INLINE u_long -ACEXML_URL_Addr::hash (void) const -{ - u_long result = this->ACE_INET_Addr::hash () - + ACE::hash_pjw (this->get_path_name ()); - return result; -} - -ACE_INLINE bool -ACEXML_URL_Addr::operator== (const ACEXML_URL_Addr &addr) const -{ - return ACE_OS::strcmp (addr.get_path_name (), this->get_path_name ()) == 0 - && addr.get_port_number () == this->get_port_number () - && addr.get_ip_address () == this->get_ip_address (); -} - -ACE_INLINE bool -ACEXML_URL_Addr::operator!= (const ACEXML_URL_Addr &addr) const -{ - return !(*this == addr); -} - -ACE_INLINE const ACEXML_Char * -ACEXML_URL_Addr::get_path_name (void) const -{ - return this->path_name_; -} - -ACE_INLINE int -ACEXML_URL_Addr::destroy (void) -{ - // Commit suicide. - delete this; - return 0; -} diff --git a/ACE/ACEXML/common/Validator.cpp b/ACE/ACEXML/common/Validator.cpp deleted file mode 100644 index cf3ce502200..00000000000 --- a/ACE/ACEXML/common/Validator.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// $Id$ - -#include "ACEXML/common/Validator.h" - -ACEXML_Validator::~ACEXML_Validator () -{ - -} diff --git a/ACE/ACEXML/common/Validator.h b/ACE/ACEXML/common/Validator.h deleted file mode 100644 index fad96bf2f91..00000000000 --- a/ACE/ACEXML/common/Validator.h +++ /dev/null @@ -1,64 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Validator.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_VALIDATOR_H_ -#define _ACEXML_VALIDATOR_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/Attributes.h" -#include "ACEXML/common/Env.h" -#include "ACEXML/common/SAXExceptions.h" - -/** - * @class ACEXML_Validator Validator.h "common/Validator.h" - * - * @brief An abstract virtual class defining validator interface. - * - * An validator provides validation service for one XML element. - * ACEXML_Validators are stateful object. Implementations should - * remember the current element encountered and determine if - * it's a valid sequence of child elements. A parser fishes - * out a validator of certain - */ -class ACEXML_Export ACEXML_Validator -{ -public: - virtual ~ACEXML_Validator () = 0; - - /** - * Validate attributes of an element. - * - * @retval 0 if valid, -1 otherwise. - */ - virtual int startElement (ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Validate the next child element. - * - * @retval 0 if valid, -1 otherwise. - */ - virtual int nextElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) - = 0; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_VALIDATOR_H_ */ diff --git a/ACE/ACEXML/common/XMLFilter.h b/ACE/ACEXML/common/XMLFilter.h deleted file mode 100644 index c012ee706e2..00000000000 --- a/ACE/ACEXML/common/XMLFilter.h +++ /dev/null @@ -1,56 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file XMLFilter.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_XMLFILTER_H_ -#define _ACEXML_XMLFILTER_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/XMLReader.h" - -/** - * @class ACEXML_XMLFilter XMLFilter.h "ACEXML/common/XMLFilter.h" - * - * @brief ACEXML_XMLFilter - * - * An XML filter is like an XML reader, except that it obtains its events - * from another XML reader rather than a primary source like an XML - * document or database. Filters can modify a stream of events as they pass - * on to the final application. - * - * The XMLFilterImpl helper class provides a convenient base for creating - * SAX2 filters, by passing on all ACEXML_EntityResolver, - * ACEXML_DTDHandler, ACEXML_ContentHandler and ACEXML_ErrorHandler events - * automatically. - */ -class ACEXML_Export ACEXML_XMLFilter : public ACEXML_XMLReader -{ -public: - /** - * Get the parent reader. - */ - virtual ACEXML_XMLReader *getParent (void) const = 0; - - /** - * Set the parent reader. - */ - virtual void setParent (ACEXML_XMLReader *parent) = 0; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_XMLFILTER_H_ */ diff --git a/ACE/ACEXML/common/XMLFilterImpl.cpp b/ACE/ACEXML/common/XMLFilterImpl.cpp deleted file mode 100644 index 6e5be6b7efa..00000000000 --- a/ACE/ACEXML/common/XMLFilterImpl.cpp +++ /dev/null @@ -1,314 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/XMLFilterImpl.h" - -#if !defined (__ACEXML_INLINE__) -# include "ACEXML/common/XMLFilterImpl.inl" -#endif /* __ACEXML_INLINE__ */ - -ACEXML_XMLFilterImpl::ACEXML_XMLFilterImpl (void) - : parent_ (0), - locator_ (0), - entityResolver_ (0), - dtdHandler_ (0), - contentHandler_ (0), - errorHandler_ (0) -{ -} - -ACEXML_XMLFilterImpl::ACEXML_XMLFilterImpl (ACEXML_XMLReader *parent) - : parent_ (parent), - locator_ (0), - entityResolver_ (0), - dtdHandler_ (0), - contentHandler_ (0), - errorHandler_ (0) -{ -} - -ACEXML_XMLFilterImpl::~ACEXML_XMLFilterImpl (void) -{ - // @@ How are all the object lifecycles managed? -} - -void -ACEXML_XMLFilterImpl::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL) -{ - if (this->setupParser () < 0) - { - ACEXML_THROW (ACEXML_SAXException (ACE_TEXT ("No Parent available"))); - } - this->parent_->parse (input ACEXML_ENV_ARG_PARAMETER); - return; -} - -void -ACEXML_XMLFilterImpl::parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) -{ - if (this->setupParser () < 0) - { - ACEXML_THROW (ACEXML_SAXException (ACE_TEXT ("No Parent available"))); - } - - this->parent_->parse (new ACEXML_InputSource (systemId) ACEXML_ENV_ARG_PARAMETER); - return; -} - -int -ACEXML_XMLFilterImpl::getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) -{ - if (this->parent_ != 0) - return this->parent_->getFeature (name ACEXML_ENV_ARG_PARAMETER); - - ACEXML_THROW_RETURN (ACEXML_SAXNotRecognizedException (name), 0); -} - -void * -ACEXML_XMLFilterImpl::getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) -{ - if (this->parent_ != 0) - return this->parent_->getProperty (name ACEXML_ENV_ARG_PARAMETER); - - ACEXML_THROW_RETURN (ACEXML_SAXNotRecognizedException (name), 0); -} - -void -ACEXML_XMLFilterImpl::setFeature (const ACEXML_Char *name, - int boolean_value ACEXML_ENV_ARG_DECL) -{ - if (this->parent_ != 0) - { - this->parent_->setFeature (name, - boolean_value ACEXML_ENV_ARG_PARAMETER); - return; - } - - ACEXML_THROW (ACEXML_SAXNotRecognizedException (name)); -} - -void -ACEXML_XMLFilterImpl::setProperty (const ACEXML_Char *name, - void *value ACEXML_ENV_ARG_DECL) -{ - if (this->parent_ != 0) - { - this->parent_->setProperty (name, - value ACEXML_ENV_ARG_PARAMETER); - return; - } - - ACEXML_THROW (ACEXML_SAXNotRecognizedException (name)); -} - -ACEXML_XMLReader * -ACEXML_XMLFilterImpl::getParent (void) const -{ - return this->parent_; -} - -void -ACEXML_XMLFilterImpl::setParent (ACEXML_XMLReader *parent) -{ - this->parent_ = parent; -} - -void -ACEXML_XMLFilterImpl::characters (const ACEXML_Char *ch, - size_t start, - size_t length - ACEXML_ENV_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->characters (ch, start, length ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::endDocument (ACEXML_ENV_SINGLE_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->endDocument (ACEXML_ENV_SINGLE_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::endElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->endElement (namespaceURI, - localName, - qName ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->endPrefixMapping (prefix ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::ignorableWhitespace (const ACEXML_Char *ch, - int start, - int length ACEXML_ENV_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->ignorableWhitespace (ch, - start, - length ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data ACEXML_ENV_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->processingInstruction (target, - data ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::setDocumentLocator (ACEXML_Locator *locator) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->setDocumentLocator (locator); -} - -void -ACEXML_XMLFilterImpl::skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->skippedEntity (name ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::startDocument (ACEXML_ENV_SINGLE_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->startDocument (ACEXML_ENV_SINGLE_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::startElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->startElement (namespaceURI, - localName, - qName, - atts ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::startPrefixMapping (const ACEXML_Char *prefix, - const ACEXML_Char *uri ACEXML_ENV_ARG_DECL) -{ - if (this->contentHandler_ != 0) - this->contentHandler_->startPrefixMapping (prefix, - uri ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::notationDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) -{ - if (this->dtdHandler_ != 0) - this->dtdHandler_->notationDecl (name, - publicId, - systemId ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::unparsedEntityDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId, - const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL) -{ - if (this->dtdHandler_ != 0) - this->dtdHandler_->unparsedEntityDecl (name, - publicId, - systemId, - notationName ACEXML_ENV_ARG_PARAMETER); -} - -ACEXML_InputSource * -ACEXML_XMLFilterImpl::resolveEntity (const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) -{ - if (this->entityResolver_ != 0) - return this->entityResolver_->resolveEntity (publicId, - systemId ACEXML_ENV_ARG_PARAMETER); - return 0; -} - -void -ACEXML_XMLFilterImpl::error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) -{ - if (this->errorHandler_ != 0) - this->errorHandler_->error (exception ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) -{ - if (this->errorHandler_ != 0) - this->errorHandler_->fatalError (exception ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_XMLFilterImpl::warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) -{ - if (this->errorHandler_ != 0) - this->errorHandler_->warning (exception ACEXML_ENV_ARG_PARAMETER); -} - -ACEXML_DTDHandler * -ACEXML_XMLFilterImpl::getDTDHandler (void) const -{ - return this->dtdHandler_; -} - -ACEXML_ContentHandler * -ACEXML_XMLFilterImpl::getContentHandler (void) const -{ - return this->contentHandler_; -} - -ACEXML_EntityResolver * -ACEXML_XMLFilterImpl::getEntityResolver (void) const -{ - return this->entityResolver_; -} - -ACEXML_ErrorHandler * -ACEXML_XMLFilterImpl::getErrorHandler (void) const -{ - return this->errorHandler_; -} - -void -ACEXML_XMLFilterImpl::setDTDHandler (ACEXML_DTDHandler *handler) -{ - this->dtdHandler_ = handler; -} - -void -ACEXML_XMLFilterImpl::setContentHandler (ACEXML_ContentHandler *handler) -{ - this->contentHandler_ = handler; -} - -void -ACEXML_XMLFilterImpl::setEntityResolver (ACEXML_EntityResolver *handler) -{ - this->entityResolver_ = handler; -} - -void -ACEXML_XMLFilterImpl::setErrorHandler (ACEXML_ErrorHandler *handler) -{ - this->errorHandler_ = handler; -} diff --git a/ACE/ACEXML/common/XMLFilterImpl.h b/ACE/ACEXML/common/XMLFilterImpl.h deleted file mode 100644 index fa4913e0910..00000000000 --- a/ACE/ACEXML/common/XMLFilterImpl.h +++ /dev/null @@ -1,270 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file XMLFilterImpl.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef ACEXML_XMLFILTERIMPL_H -#define ACEXML_XMLFILTERIMPL_H -#include /**/ "ace/pre.h" - -#include "ACEXML/common/XMLFilter.h" -#include "ACEXML/common/XMLReader.h" -#include "ACEXML/common/Locator.h" -#include "ACEXML/common/ContentHandler.h" -#include "ACEXML/common/DTDHandler.h" -#include "ACEXML/common/EntityResolver.h" -#include "ACEXML/common/ErrorHandler.h" - -/** - * @class ACEXML_XMLFilterImpl XMLFilterImpl.h "ACEXML/common/XMLFilterImpl.h" - * - * @brief ACEXML_XMLFilterImpl - * - * This class is designed to sit between an XMLReader and the client - * application's event handlers. By default, it does nothing but pass - * requests up to the reader and events on to the handlers unmodified, but - * subclasses can override specific methods to modify the event stream or - * the configuration requests as they pass through. - */ -class ACEXML_Export ACEXML_XMLFilterImpl - : public ACEXML_XMLFilter, - public ACEXML_ContentHandler, - public ACEXML_DTDHandler, - public ACEXML_EntityResolver, - public ACEXML_ErrorHandler -{ -public: - /** - * Default constructor. Create with no parent. - */ - ACEXML_XMLFilterImpl (void); - - /** - * Construct an XML filter with the specified parent. - */ - ACEXML_XMLFilterImpl (ACEXML_XMLReader *parent); - - /** - * Destructor. - */ - virtual ~ACEXML_XMLFilterImpl (void); - - /* - * Look up the value of a feature. - */ - virtual int getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL); - - /* - * Look up the value of a property. - */ - virtual void * getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL); - - /* - * Parse an XML document. - */ - virtual void parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL); - - /* - * Parse an XML document from a system identifier (URI). - */ - virtual void parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - // @@ throw IOException??? - ; - - /* - * Set the state of a feature. - */ - virtual void setFeature (const ACEXML_Char *name, - int boolean_value ACEXML_ENV_ARG_DECL); - - /* - * Set the value of a property. - */ - virtual void setProperty (const ACEXML_Char *name, - void *value ACEXML_ENV_ARG_DECL); - - /* - * Get the parent reader. - */ - virtual ACEXML_XMLReader *getParent (void) const; - - /* - * Set the parent reader. - */ - virtual void setParent (ACEXML_XMLReader *parent); - - /* - * Get the current DTD event handler. - */ - virtual ACEXML_DTDHandler *getDTDHandler (void) const; - - /* - * Get the current content event handler. - */ - virtual ACEXML_ContentHandler *getContentHandler (void) const; - - /* - * Get the current entity resolver. - */ - virtual ACEXML_EntityResolver *getEntityResolver (void) const; - - /* - * Get the current error event handler. - */ - virtual ACEXML_ErrorHandler *getErrorHandler (void) const; - - /* - * Set the DTD event handler. - */ - virtual void setDTDHandler (ACEXML_DTDHandler *handler); - - /* - * Set the content event handler. - */ - virtual void setContentHandler (ACEXML_ContentHandler *handler); - - /* - * Set the entity resolver. - */ - virtual void setEntityResolver (ACEXML_EntityResolver *handler); - - /* - * Set the error event handler. - */ - virtual void setErrorHandler (ACEXML_ErrorHandler *handler); - - /* - * Receive notification of character data. - */ - virtual void characters (const ACEXML_Char *ch, - size_t start, - size_t length - ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of the end of a document. - */ - virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL); - - /* - * 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); - - /* - * End the scope of a prefix-URI mapping. - */ - virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of ignorable whitespace in element content. - */ - virtual void ignorableWhitespace (const ACEXML_Char *ch, - int start, - int length ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of a processing instruction. - */ - virtual void processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data ACEXML_ENV_ARG_DECL); - - /* - * Receive an object for locating the origin of SAX document events. - */ - virtual void setDocumentLocator (ACEXML_Locator *locator) ; - - /* - * Receive notification of a skipped entity. - */ - virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of the beginning of a document. - */ - virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL); - - /* - * Receive notification of the beginning of an element. - */ - virtual void startElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL); - - /* - * Begin the scope of a prefix-URI Namespace mapping. - */ - virtual void startPrefixMapping (const ACEXML_Char *prefix, - const ACEXML_Char *uri ACEXML_ENV_ARG_DECL); - - // *** Methods inherit from ACEXML_DTDHandler. - - /* - * Receive notification of a notation declaration event. - */ - virtual void notationDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of an unparsed entity declaration event. - */ - virtual void unparsedEntityDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId, - const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL); - - // Methods inherit from ACEXML_EnitityResolver. - - /* - * Allow the application to resolve external entities. - */ - virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL); - - // Methods inherit from ACEXML_ErrorHandler. - - /* - * Receive notification of a recoverable error. - */ - virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of a non-recoverable error. - */ - virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL); - - /* - * Receive notification of a warning. - */ - virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL); -protected: - int setupParser (void); - // Set up the event handlers of parent parser to this. - // Returns -1 if no valid parent is set. - -private: - ACEXML_XMLReader *parent_; - ACEXML_Locator *locator_; - ACEXML_EntityResolver *entityResolver_; - ACEXML_DTDHandler *dtdHandler_; - ACEXML_ContentHandler *contentHandler_; - ACEXML_ErrorHandler *errorHandler_; -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/common/XMLFilterImpl.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACEXML_XMLFILTERIMPL_H */ diff --git a/ACE/ACEXML/common/XMLFilterImpl.inl b/ACE/ACEXML/common/XMLFilterImpl.inl deleted file mode 100644 index 4be2ceeceea..00000000000 --- a/ACE/ACEXML/common/XMLFilterImpl.inl +++ /dev/null @@ -1,14 +0,0 @@ -// -*- C++ -*- $Id$ - -ACEXML_INLINE int -ACEXML_XMLFilterImpl::setupParser (void) -{ - if (this->parent_ == 0) - return -1; - - this->parent_->setEntityResolver (this); - this->parent_->setDTDHandler (this); - this->parent_->setContentHandler (this); - this->parent_->setErrorHandler (this); - return 0; -} diff --git a/ACE/ACEXML/common/XMLReader.cpp b/ACE/ACEXML/common/XMLReader.cpp deleted file mode 100644 index d762c79a3a2..00000000000 --- a/ACE/ACEXML/common/XMLReader.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "XMLReader.h" - - -ACE_RCSID (common, - XMLReader, - "$Id$") - - -ACEXML_XMLReader::~ACEXML_XMLReader (void) -{ -} diff --git a/ACE/ACEXML/common/XMLReader.h b/ACE/ACEXML/common/XMLReader.h deleted file mode 100644 index 9cbc6bca7f2..00000000000 --- a/ACE/ACEXML/common/XMLReader.h +++ /dev/null @@ -1,132 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file XMLReader.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_XMLREADER_H_ -#define _ACEXML_XMLREADER_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/ContentHandler.h" -#include "ACEXML/common/DTDHandler.h" -#include "ACEXML/common/EntityResolver.h" -#include "ACEXML/common/ErrorHandler.h" - -/** - * @class ACEXML_XMLReader XMLReader.h "ACEXML/common/XMLReader.h" - * - * @brief ACEXML_XMLReader - * - * XMLReader is the interface that an XML parser's SAX2 driver must - * implement. This interface allows an application to set and query - * features and properties in the parser, to register event handlers - * for document processing, and to initiate a document parse. - * - * All SAX interfaces are assumed to be synchronous: the parse methods - * must not return until parsing is complete, and readers must wait - * for an event-handler callback to return before reporting the next - * event. - */ -class ACEXML_Export ACEXML_XMLReader -{ -public: - - virtual ~ACEXML_XMLReader (void); - - /** - * Return the current content handler. - */ - virtual ACEXML_ContentHandler *getContentHandler (void) const = 0; - - /** - * Return the current DTD handler. - */ - virtual ACEXML_DTDHandler *getDTDHandler (void) const = 0; - - /** - * Return the current entity resolver. - */ - virtual ACEXML_EntityResolver *getEntityResolver (void) const = 0; - - /** - * Return the current error handler. - */ - virtual ACEXML_ErrorHandler *getErrorHandler (void) const = 0; - - /** - * Look up the value of a feature. This method allows - * 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; - - /** - * Look up the value of a property. - */ - virtual void * getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Parse an XML document. - */ - virtual void parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Parse an XML document from a system identifier (URI). - */ - virtual void parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Allow an application to register a content event handler. - */ - virtual void setContentHandler (ACEXML_ContentHandler *handler) = 0; - - /** - * Allow an application to register a DTD event handler. - */ - virtual void setDTDHandler (ACEXML_DTDHandler *handler) = 0; - - /** - * Allow an application to register an entity resolver. - */ - virtual void setEntityResolver (ACEXML_EntityResolver *resolver) = 0; - - /** - * Allow an application to register an error event handler. - */ - virtual void setErrorHandler (ACEXML_ErrorHandler *handler) = 0; - - /** - * Activating or deactivating a feature. - */ - virtual void setFeature (const ACEXML_Char *name, - int boolean_value ACEXML_ENV_ARG_DECL) - = 0; - - /** - * Set the value of a property. - */ - virtual void setProperty (const ACEXML_Char *name, - void *value ACEXML_ENV_ARG_DECL) - = 0; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_XMLREADER_H_ */ diff --git a/ACE/ACEXML/common/XML_Codecs.cpp b/ACE/ACEXML/common/XML_Codecs.cpp deleted file mode 100644 index 9566158ddfd..00000000000 --- a/ACE/ACEXML/common/XML_Codecs.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ace/Auto_Ptr.h" -#include "ace/OS_Memory.h" -#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, - size_t* output_len) -{ - if (!input) - return 0; - size_t len = ACE_OS::strlen (input); - - ACE_Byte* buf = 0; - ACE_NEW_RETURN (buf, - ACE_Byte[len], - 0); - ACE_Auto_Basic_Array_Ptr cleanup_buf (buf); - - for (size_t i = 0; i < len; ++i) - buf[i] = (ACE_Byte)input[i]; - buf[len] = 0; - - size_t encode_len = 0; - ACE_Byte* encodedBuf = ACE_Base64::encode (buf, len, &encode_len); - - if (!encodedBuf) - return 0; - - ACEXML_Char* result = 0; - ACE_NEW_RETURN (result, - ACEXML_Char[encode_len+1], - 0); - - for (size_t j = 0; j < encode_len; ++j) - result[j] = (ACEXML_Char)encodedBuf[j]; - result[encode_len] = 0; - - *output_len = encode_len; - delete[] encodedBuf; - return result; -} - - -ACEXML_Char* -ACEXML_Base64::decode (const ACEXML_Char* input, - size_t* output_len) -{ - if (!input) - return 0; - - size_t len = ACE_OS::strlen (input); - - ACE_Byte* buf = 0; - - ACE_NEW_RETURN (buf, - ACE_Byte[len], - 0); - - ACE_Auto_Basic_Array_Ptr cleanup (buf); - - for (size_t i = 0; i < len; ++i) - buf[i] = (ACE_Byte)input[i]; - - buf[len] = 0; - - size_t decode_len = 0; - - ACE_Byte* decodedBuf = ACE_Base64::decode (buf, &decode_len); - - if (!decodedBuf) - return 0; - - ACEXML_Char* result = 0; - - ACE_NEW_RETURN (result, - ACEXML_Char[decode_len+1], - 0); - - for (size_t j = 0; j < decode_len; ++j) - result[j] = (ACEXML_Char)decodedBuf[j]; - - result[decode_len] = 0; - - *output_len = decode_len; - delete[] decodedBuf; - - return result; -} - diff --git a/ACE/ACEXML/common/XML_Codecs.h b/ACE/ACEXML/common/XML_Codecs.h deleted file mode 100644 index 10101d4e5b4..00000000000 --- a/ACE/ACEXML/common/XML_Codecs.h +++ /dev/null @@ -1,73 +0,0 @@ -// -*- C++ -*- - -/** - * @file XML_Codecs.h - * - * $Id$ - * - * @author Krishnakumar B - * - * XML_Codecs is a generic wrapper for various encoding and decoding - * mechanisms used in ACEXML. Currently it includes support for handling - * Base64 content transfer-encoding of ACEXML_Chars. - * - */ - -#ifndef _ACEXML_XML_CODECS_H -#define _ACEXML_XML_CODECS_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_Types.h" -#include "ace/Codecs.h" - -/** - * @class ACEXML_Base64 - * - * @brief Encode/Decode a stream of ACEXML_Chars according to Base64 encoding. - * - * This class provides methods to encode or decode a stream of ACEXML_Chars - * to/from Base64 encoding. It doesn't convert the input stream to a - * canonical form before encoding. - * - */ -class ACEXML_Export ACEXML_Base64 : public ACE_Base64 -{ -public: - - //@{ - - /** - * Encodes a stream of octets to Base64 data - * - * @param input Binary data in ACEXML_Char stream. - * @param output_len Length of the encoded Base64 ACEXML_Char stream. - * @return Encoded Base64 data in ACEXML_Char stream or NULL if input data - * cannot be encoded. - */ - - static ACEXML_Char* encode (const ACEXML_Char* input, - size_t* output_len); - /** - * Decodes a stream of Base64 to octets data - * - * @param input Encoded Base64 data in ACEXML_Char stream. - * @param output_len Length of the binary ACEXML_Char stream. - * @return Binary data in ACEXML_Char stream or NULL if input data cannot - * be encoded. - */ - static ACEXML_Char* decode (const ACEXML_Char* input, - size_t* output_len); - - //@} -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_XML_CODECS_H */ 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 - * @author Aniruddha Gokhale - * @author Carlos O'Ryan - * @author Krishnakumar B , 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: - * - * void my_funct (int x, int y ACEXML_ENV_ARG_DECL); - * - * 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 deleted file mode 100644 index 5a55d6b7754..00000000000 --- a/ACE/ACEXML/common/XML_Types.h +++ /dev/null @@ -1,83 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file XML_Types.h - * - * This file collects the type definitions for data types - * used in ACE XML parser. - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef _ACEXML_XML_TYPES_H_ -#define _ACEXML_XML_TYPES_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/Basic_Types.h" -#include "ace/SString.h" -#include "ace/Functor_String.h" - -# if defined (ACE_HAS_WCHAR) && (ACE_SIZEOF_WCHAR == 2) -typedef wchar_t ACEXML_UTF16; -# else -typedef ACE_USHORT16 ACEXML_UTF16; -# endif /* ACE_HAS_WCHAR && ACE_SIZEOF_WCHAR == 2 */ - -# if defined (ACE_HAS_WCHAR) && (ACE_SIZEOF_WCHAR == 4) -typedef wchar_t ACEXML_UCS4; -# else -typedef ACE_UINT32 ACEXML_UCS4; -# endif /* ACE_HAS_WCHAR && ACE_SIZEOF_WCHAR == 4 */ - -typedef char ACEXML_UTF8; - -/** - * @typedef ACEXML_Char - * ACEXML_Char only maps to ACEXML_UTF16 when ACE_USES_WCHAR is defined. - * Here we assume sizeof (wchar_t) is always 2 bytes. - * - * Default XML strings will use UTF-8 encoding. We would like to use - * the string classes in standard C++ Library here. But they are not - * very portable yet (as far as I know,) and I'll just use ACE_CString - * for now, unless UNICODE support is turned on. Notice that you - * should never convert strings between ACE_CString and ACE_WString - * using the built-in conversion functions as they only perform simple - * copy without any encoding conversion. - */ -typedef ACE_TCHAR ACEXML_Char; -# if defined (ACE_USES_WCHAR) -//typedef ACEXML_UTF16 ACEXML_Char; -typedef ACE_WString ACEXML_String; -# else -//typedef ACEXML_UTF8 ACEXML_Char; -typedef ACE_CString ACEXML_String; -# endif /* ACE_USES_WCHAR */ - -# if (!defined (ACEXML_HAS_INLINE) && defined (__ACE_INLINE__)) || (ACEXML_HAS_INLINE == 1) -# define __ACEXML_INLINE__ inline -# else -# if defined (__ACEXML_INLINE__) -# undef __ACEXML_INLINE__ -# endif /* __ACEXML_INLINE__ */ -# endif /* (!ACEXML_HAS_INLINE) && (__ACE_INLINE__) || (ACEXML_HAS_INLINE == 1) */ - -# if defined (__ACEXML_INLINE__) -# define ACEXML_INLINE inline -# else -# define ACEXML_INLINE -# endif /* __ACEXML_INLINE */ - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_XML_TYPE_H_ */ diff --git a/ACE/ACEXML/common/XML_Util.cpp b/ACE/ACEXML/common/XML_Util.cpp deleted file mode 100644 index 7b9b9fb00fe..00000000000 --- a/ACE/ACEXML/common/XML_Util.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// $Id$ - -#include "ACEXML/common/XML_Util.h" - -static const ACEXML_Char ESCAPED_AMP[] = ACE_TEXT("&"); -static const ACEXML_Char ESCAPED_LESS[] = ACE_TEXT("<"); -static const ACEXML_Char ESCAPED_GREATER[] = ACE_TEXT(">"); -static const ACEXML_Char ESCAPED_APOS[] = ACE_TEXT("'"); -static const ACEXML_Char ESCAPED_QUOTE[] = ACE_TEXT("""); - -#define CSTRLEN(x) ((sizeof(x) / sizeof(ACEXML_Char)) - 1) - -ACEXML_String ACEXML_escape_string(const ACEXML_String& str) -{ - ACEXML_String ret(str.length ()); - ACEXML_escape_string(str, ret); - return ret; -} - -void ACEXML_escape_string(const ACEXML_String& in, ACEXML_String& out) -{ - size_t len = in.length (); - out.clear(); - for (size_t stridx = 0; stridx < len; ++stridx) - { - switch (in[stridx]) { - case '&': - out.append(ESCAPED_AMP, CSTRLEN(ESCAPED_AMP)); - break; - case '<': - out.append(ESCAPED_LESS, CSTRLEN(ESCAPED_LESS)); - break; - case '>': - out.append(ESCAPED_GREATER, CSTRLEN(ESCAPED_GREATER)); - break; - case '\'': - out.append(ESCAPED_APOS, CSTRLEN(ESCAPED_APOS)); - break; - case '\"': - out.append(ESCAPED_QUOTE, CSTRLEN(ESCAPED_QUOTE)); - break; - default: - out += in[stridx]; - } - } -} diff --git a/ACE/ACEXML/common/XML_Util.h b/ACE/ACEXML/common/XML_Util.h deleted file mode 100644 index 2844c33f397..00000000000 --- a/ACE/ACEXML/common/XML_Util.h +++ /dev/null @@ -1,33 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file XML_Util.h - * - * Initially contains a function to escape strings for use in XML files. - * - * $Id$ - * - * @author Justin Michel - */ -//============================================================================= - -#ifndef _ACEXML_XML_UTIL_H_ -#define _ACEXML_XML_UTIL_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_Types.h" - -ACEXML_Export ACEXML_String ACEXML_escape_string(const ACEXML_String& str); -ACEXML_Export void ACEXML_escape_string(const ACEXML_String& in, ACEXML_String& out); - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_XML_UTIL_H_ */ diff --git a/ACE/ACEXML/common/ZipCharStream.cpp b/ACE/ACEXML/common/ZipCharStream.cpp deleted file mode 100644 index 4de9dc33abd..00000000000 --- a/ACE/ACEXML/common/ZipCharStream.cpp +++ /dev/null @@ -1,255 +0,0 @@ -// $Id$ - -#ifdef USE_ZZIP - -#include "ACEXML/common/ZipCharStream.h" -#include "ace/ACE.h" - - -ACEXML_ZipCharStream::ACEXML_ZipCharStream (void) - : filename_ (0), encoding_ (0), size_ (0), infile_ (0), pos_ (0), - limit_ (0) -{ -} - -ACEXML_ZipCharStream::~ACEXML_ZipCharStream (void) -{ - this->close(); -} - -int -ACEXML_ZipCharStream::open (const ACEXML_Char *name) -{ - delete[] this->filename_; - this->filename_ = 0; - - delete[] this->encoding_; - this->encoding_ = 0; - - this->infile_ = zzip_fopen (name, ACE_TEXT ("r")); - if (this->infile_ == 0) - return -1; - - this->filename_ = ACE::strnew (ACE::basename (name)); - return this->determine_encoding(); -} - -int -ACEXML_ZipCharStream::determine_encoding (void) -{ - if (this->infile_ == 0) - return -1; - char input[4]; - int i = 0; - for (; i < 4 && (input[i] = this->peekchar_i(i)) > 0; ++i) - ; - if (i < 4) - return -1; - const ACEXML_Char* temp = ACEXML_Encoding::get_encoding (input); - if (!temp) - return -1; - else - { - if (this->encoding_) - delete [] this->encoding_; - this->encoding_ = ACE::strnew (temp); - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("File's encoding is %s\n"), -// this->encoding_)); - } - // Move over the byte-order-mark if present. - char ch; - for (int j = 0; j < 3; ++j) - { - if ((ch = this->peekchar_i()) < 0) - return -1; - if (ch == '\xFF' || ch == '\xFE' || ch == '\xEF' || ch == '\xBB' || - ch == '\xBF') - this->get(ch); - else - break; - } - return 0; -} - -void -ACEXML_ZipCharStream::rewind() -{ - if (this->infile_ == 0) - return; - zzip_rewind (this->infile_); - this->determine_encoding(); -} - -int -ACEXML_ZipCharStream::available (void) -{ - if (this->infile_ == 0) - return -1; - long curr; - if ((curr = zzip_tell (this->infile_)) < 0) - return -1; - return (this->size_ - curr); -} - -int -ACEXML_ZipCharStream::close (void) -{ - if (this->infile_ != 0) - { - zzip_close (this->infile_); - this->infile_ = 0; - } - delete[] this->filename_; - this->filename_ = 0; - delete[] this->encoding_; - this->encoding_ = 0; - this->size_ = 0; - this->pos_ = 0; - this->limit_ = 0; - return 0; -} - - -int -ACEXML_ZipCharStream::getchar_i (char& ch) -{ - if (this->infile_ == 0) - return -1; - - if (this->pos_ < this->limit_) - { - ch = this->buf_[this->pos_++]; - return 0; - } - this->limit_ = zzip_read (this->infile_, this->buf_, sizeof (this->buf_)); - if (this->limit_ == 0) - return -1; - this->pos_ = 0; - ch = this->buf_[this->pos_++]; - return 0; -} - -int -ACEXML_ZipCharStream::peekchar_i (ACE_OFF_T offset) -{ - if (this->infile_ == 0) - return -1; - - if (offset > (ACE_OFF_T) sizeof (this->buf_)) - return -1; - if (this->pos_ + offset < this->limit_) - return this->buf_[this->pos_ + offset]; - int i = 0; - for (; this->pos_ < this->limit_; ++this->pos_, ++i) - this->buf_[i] = this->buf_[this->pos_]; - this->limit_ = zzip_read (this->infile_, this->buf_ + i, - sizeof (this->buf_) - i); - this->limit_ += i; - if (this->limit_ == 0) - return -1; - this->pos_ = 0; - return this->buf_[this->pos_ + offset]; -} - -int -ACEXML_ZipCharStream::read (ACEXML_Char *str, size_t len) -{ - if (this->infile_ == 0) - return -1; - - size_t i = 0; - for (; i < len && this->pos_ < this->limit_; ++i) - str[i] = this->buf_[this->pos_++]; - if (i == len) - return len; - len = len - i; - this->pos_ = 0; - this->limit_ = 0; - int bytes = zzip_fread (str + i, sizeof (ACEXML_Char), len, this->infile_); - return (bytes + i); -} - -int -ACEXML_ZipCharStream::get (ACEXML_Char& ch) -{ -#if defined (ACE_USES_WCHAR) - return this->get_i (ch); -#else - return this->getchar_i (ch); -#endif /* ACE_USES_WCHAR */ -} - - -int -ACEXML_ZipCharStream::peek (void) -{ -#if defined (ACE_USES_WCHAR) - return this->peek_i(); -#else - return this->peekchar_i(); -#endif /* ACE_USES_WCHAR */ -} - -const ACEXML_Char* -ACEXML_ZipCharStream::getEncoding (void) -{ - return this->encoding_; -} - -const ACEXML_Char* -ACEXML_ZipCharStream::getSystemId (void) -{ - return this->filename_; -} - -#if defined (ACE_USES_WCHAR) -int -ACEXML_ZipCharStream::get_i (ACEXML_Char& ch) -{ - if (ACE_OS::strcmp (this->encoding_, ACE_TEXT ("UTF-8")) == 0) - return this->getchar_i (ch); - - int BE = (ACE_OS::strcmp (this->encoding_, - ACE_TEXT ("UTF-16BE")) == 0) ? 1 : 0; - ACEXML_Char input[2]; - int i = 0; - for (; i < 2 && (this->getchar_i (input[i]) == 0); ++i) - ; - if (i < 2) - { - ch = 0; - return -1; - } - ch = BE ? input[0] << 8 | input[1] : input[1] << 8 | input[0]; - return 0; -} - -int -ACEXML_ZipCharStream::peek_i (void) -{ - - // If we are reading a UTF-8 encoded file, just use the plain unget. - if (ACE_OS::strcmp (this->encoding_, ACE_TEXT ("UTF-8")) == 0) - return this->peekchar_i(); - - // Peek into the stream. This reads two characters off the stream, keeps - // it in peek_. - int BE = (ACE_OS::strcmp (this->encoding_, - ACE_TEXT ("UTF-16BE")) == 0) ? 1 : 0; - - ACEXML_Char input[2]; - int i = 0; - for (; i < 2 && (input[i] = this->peekchar_i (i)) > 0; ++i) - ; - if (i < 2) - return -1; - return (BE ? input[0] << 8 | input[1] : input[1] << 8 | input[0]); -} -#endif /* ACE_USES_WCHAR */ - -#else -#if defined (__HP_aCC) -static int shut_up_aCC = 0; -#endif /* __HP_aCC */ - -#endif /* USE_ZZIP */ diff --git a/ACE/ACEXML/common/ZipCharStream.h b/ACE/ACEXML/common/ZipCharStream.h deleted file mode 100644 index 1aa28f6f0b8..00000000000 --- a/ACE/ACEXML/common/ZipCharStream.h +++ /dev/null @@ -1,144 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ZipCharStream.h - * - * $Id$ - * - * @author Krishnakumar B - */ -//============================================================================= - -#ifndef _ACEXML_ZIPCHARSTREAM_H_ -#define _ACEXML_ZIPCHARSTREAM_H_ - -#ifdef USE_ZZIP - -#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/CharStream.h" -#include "ACEXML/common/Encoding.h" -#include "zzip/zzip.h" - -// Ugly wart to get aroung a macro version of read defined in zzip.h. Evil... -#ifdef read -#undef read -#endif - -/** - * @class ACEXML_ZipCharStream - * - * An implementation of ACEXML_CharStream for reading input from a ZIP archive. - */ -class ACEXML_Export ACEXML_ZipCharStream : public ACEXML_CharStream -{ -public: - /// Default constructor. - ACEXML_ZipCharStream (void); - - /// Destructor - virtual ~ACEXML_ZipCharStream (void); - - /// Open a file. - int open (const ACEXML_Char *name); - - /** - * Returns the available ACEXML_Char in the buffer. -1 - * if the object is not initialized properly. - */ - virtual int available (void); - - /** - * Close this stream and release all resources used by it. - */ - virtual int close (void); - - /** - * Read the next ACEXML_Char. Return -1 if we are not able to - * return an ACEXML_Char, 0 if EOF is reached, or 1 if succeed. - */ - virtual int get (ACEXML_Char& ch); - - /** - * Read the next batch of ACEXML_Char strings - */ - virtual int read (ACEXML_Char *str, size_t len); - - /** - * Determine the encoding of the file. - */ - virtual int determine_encoding (void); - - - /** - * Peek the next ACEXML_Char in the CharStream. Return the - * character if success, -1 if EOF is reached. - */ - virtual int peek (void); - - /** - * Resets the file pointer to the beginning of the stream. - */ - virtual void rewind (void); - - /* - * Get the character encoding for a byte stream or URI. - */ - virtual const ACEXML_Char *getEncoding (void); - - /* - * Get the systemId for the underlying CharStream - */ - virtual const ACEXML_Char* getSystemId (void); - -protected: - - /** Read the next character as a normal character. Return -1 if EOF is - * reached, else return 0. - */ - virtual int getchar_i (char& ch); - - /** - * Peek @c offset bytes into the stream and return the character at @c - * offset. If EOF is reached, return -1. - */ - virtual int peekchar_i (ACE_OFF_T offset = 0); - -private: - -#if defined (ACE_USES_WCHAR) - /** - * Read the next character from the stream taking into account the - * encoding of the file. - */ - int get_i (ACEXML_Char& ch); - - /** - * Return the next character from the stream taking into account the - * encoding of the file. Subsequent call to get() returns this - * character. - */ - int peek_i (void); - -#endif /* ACE_USES_WCHAR */ - - ACEXML_Char* filename_; - ACEXML_Char* encoding_; - ACE_OFF_T size_; - ZZIP_FILE* infile_; - char buf_[80]; - int pos_; - int limit_; -}; - -#include /**/ "ace/post.h" - -#endif /* USE_ZZIP */ - -#endif /* _ACEXML_ZIPCHARSTREAM_H_ */ diff --git a/ACE/ACEXML/common/codecs.mpb b/ACE/ACEXML/common/codecs.mpb deleted file mode 100644 index aea3ee9b7e0..00000000000 --- a/ACE/ACEXML/common/codecs.mpb +++ /dev/null @@ -1,8 +0,0 @@ -// -*- MPC -*- -// $Id$ - -feature(ace_codecs, !ace_for_tao) { - Source_Files { - XML_Codecs.cpp - } -} diff --git a/ACE/ACEXML/common/common.mpc b/ACE/ACEXML/common/common.mpc deleted file mode 100644 index 3b469ffde37..00000000000 --- a/ACE/ACEXML/common/common.mpc +++ /dev/null @@ -1,33 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(ACEXML): acelib, ace_output, codecs, install, zzip, zlib { - avoids += ace_for_tao - sharedname = ACEXML - dynamicflags += ACEXML_BUILD_DLL - - Source_Files { - // This file will only be added if the ace_codecs feature is enabled. - // See codecs.mpb for more information. - !XML_Codecs.cpp - } - - Header_Files { - ACEXML_Export.h - Attributes.h - ContentHandler.h - DTDHandler.h - EntityResolver.h - ErrorHandler.h - Locator.h - XMLFilter.h - XMLReader.h - XML_Macros.h - XML_Types.h - XML_Util.h - } - - Pkgconfig_Files { - ACEXML.pc.in - } -} diff --git a/ACE/ACEXML/docs/TODO.txt b/ACE/ACEXML/docs/TODO.txt deleted file mode 100644 index e7e48ca67c4..00000000000 --- a/ACE/ACEXML/docs/TODO.txt +++ /dev/null @@ -1,17 +0,0 @@ -/** -@page acexml_todo ACEXML TO-DO List - -
    - -
  • Add Schema parsing ability. - -
  • Add support for resolving external entities, such as a - schema/namespace definition located on the web. - -
  • Add parameterized entity management class. See above. - -
  • Define validator building/calling interfaces. - -
- -*/ diff --git a/ACE/ACEXML/docs/bugs.txt b/ACE/ACEXML/docs/bugs.txt deleted file mode 100644 index 136e0cd7117..00000000000 --- a/ACE/ACEXML/docs/bugs.txt +++ /dev/null @@ -1,17 +0,0 @@ -/** -@page acexml_bugs ACEXML Known Bugs - -
    -
  • ACEXML currently do not validate an XML files. The validator - hooks have not fully integrated into the parser yet. - -
  • Need to verify predefined entities are working correctly. Check - out the SAXPrint example. - -
  • Currently, replacement of parameterized reference (PEReference) is - not working. - -
- - -*/ diff --git a/ACE/ACEXML/docs/guidelines.txt b/ACE/ACEXML/docs/guidelines.txt deleted file mode 100644 index 9d084924c2c..00000000000 --- a/ACE/ACEXML/docs/guidelines.txt +++ /dev/null @@ -1,39 +0,0 @@ -// -*- HTML-Helper -*- $Id$ - -/** -@page acexml_guides ACEXML Programming Guidelines - -
    -
  • A lot of class names under @c $(ACE_ROOT)/ACEXML/common do not - follow the naming convention suggested in ACE-guidelines.html. - The reason for that is because those classes were derived from - the SAX2 API and we would like to keep them as similar as - possible. -
  • Character encoding: The default character encoding for ACEXML - can be set at compile time. ACEXML uses UTF-8 encoding in most - platforms where ACEXML_Char maps to - char in this case. When ACE is configured to use - wchar and UNICODE, ACEXML uses UTF-16 - encoding and ACEXML_Char maps to - wchar_t. Notice that ACEXML assume - sizeof (wchar_t) is of 2-byte long. For platforms - using 4-byte wchar_t, ACEXML will not work - correctly, but it should be trivial to fix.

    - -

  • Currently, there's only an example showing how to use the parser - under @c $(ACE_ROOT)/ACEXML/examples/SAXPrint/. - -
  • (Not supported yet) To develop a new validator, one must - create a DLL implementing - @c ACEXML_Attributes_Def_Builder, @c - ACEXML_Attribute_Def_Builder, @c ACEXML_Element_Def_Builder, - @c ACEXML_Validator, and @c ACEXML_DTD_Manager. The DLL should - also export a traditional C function called @c - create_dtd_manager. The XML parser itself should also be - modified to support and dynamically link with the new validator. - See @c $(ACE_ROOT)/ACEXML/parser/debug_validator/ for an example. - -
- - -*/ diff --git a/ACE/ACEXML/docs/parser_features.txt b/ACE/ACEXML/docs/parser_features.txt deleted file mode 100644 index c65930e32a2..00000000000 --- a/ACE/ACEXML/docs/parser_features.txt +++ /dev/null @@ -1,25 +0,0 @@ -/** -*- HTML-Helper -*- $Id$ -@defgroup acexml_parser_features Configurable Special Features of ACEXML Parser -@{ - -There are special features in ACEXML Parser that can be -activated/deactivated thru @c setFeature. Likewise, whether a feature -has been activated or not can be queried using @c getFeature. - -@sa ACEXML_XMLReader::setFeature -@sa ACEXML_XMLReader::getFeature - -Here is a list of supported features: - -
    -
  1. namespaces - When this feature is enabled, ACEXML parser allows - access by namespace qualified names. - -
  2. namespace_prefixes - Normally the list of attributes returned by the - parser will not contain attributes used as namespace declarations - (xmlns:foo="bar"). When this feature is enabled, the list of attributes - contains the namespace declarations also. -
- -@} -*/ diff --git a/ACE/ACEXML/docs/readme.txt b/ACE/ACEXML/docs/readme.txt deleted file mode 100644 index f0de833b526..00000000000 --- a/ACE/ACEXML/docs/readme.txt +++ /dev/null @@ -1,36 +0,0 @@ -/** -*- HTML-Helper -*- $Id$ -@mainpage ACEXML - A Small and Portable XML Parser - -@section acexml_synopsis Synopsis -ACEXML is a small footprint and portable framework for integrating XML -parsing ability into user applications. The framework is based on the - Simple API for XML -(SAX 2.0) by David Megginson. A simple non-conformant XML parser -is also included in the framework. Since our original motivation was -to use the parser for specifying software composition and -configuration descriptors, at the current stage, the parser does not -fully support all the features specified in the XML specification. - -We do, however, plan to add more features to the parser and will -either release a more versatile parser or allow the current parser to -dynamically load in the extra features in the future. - -@section acexml_features Features of ACEXML -
    -
  • ACEXML only recognize UNICODE documents, although they can be - in various different encoding, such as UTF-8, UTF-16, or UCS-4. - Therefore, it might be a problem to handle document containing - multi-byte charatersets. They can, however, be translated into - UNICODE before being parsed by ACEXML parser. -
- - -@section acexml_others Other Topics -
    -
  1. @ref acexml_parser_features -
  2. @ref acexml_guides -
  3. @ref acexml_bugs -
  4. @ref acexml_todo -
- -*/ diff --git a/ACE/ACEXML/examples/Makefile.am b/ACE/ACEXML/examples/Makefile.am deleted file mode 100644 index 0ddb642570a..00000000000 --- a/ACE/ACEXML/examples/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -SUBDIRS = \ - SAXPrint - diff --git a/ACE/ACEXML/examples/SAXPrint/Makefile.am b/ACE/ACEXML/examples/SAXPrint/Makefile.am deleted file mode 100644 index d196510359f..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/Makefile.am +++ /dev/null @@ -1,75 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.SAXPrint.am - -if BUILD_ACEXML -if !BUILD_ACE_FOR_TAO - -noinst_PROGRAMS = SAXPrint - -SAXPrint_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ACEXML/common - -if BUILD_ZLIB -if BUILD_ZZIP -SAXPrint_CPPFLAGS += \ - $(ACE_ZZIP_CPPFLAGS) \ - $(ACE_ZLIB_CPPFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -SAXPrint_SOURCES = \ - Print_Handler.cpp \ - SAXPrint_Handler.cpp \ - main.cpp \ - Print_Handler.h \ - SAXPrint_Handler.h \ - SAXPrint_Handler.inl - -SAXPrint_LDFLAGS = - -if BUILD_ZLIB -if BUILD_ZZIP -SAXPrint_LDFLAGS += \ - $(ACE_ZZIP_LDFLAGS) \ - $(ACE_ZLIB_LDFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -SAXPrint_LDADD = \ - $(ACE_BUILDDIR)/ACEXML/parser/parser/libACEXML_Parser.la \ - $(ACE_BUILDDIR)/ACEXML/common/libACEXML.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -if BUILD_ZLIB -if BUILD_ZZIP -SAXPrint_LDADD += \ - $(ACE_ZZIP_LIBS) \ - $(ACE_ZLIB_LIBS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -endif !BUILD_ACE_FOR_TAO -endif BUILD_ACEXML - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp b/ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp deleted file mode 100644 index 4bcf19e1b07..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/Print_Handler.cpp +++ /dev/null @@ -1,238 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "Print_Handler.h" -#include "ace/ACE.h" -#include "ace/Log_Msg.h" - -ACEXML_Print_Handler::ACEXML_Print_Handler (ACEXML_Char* fileName) - : fileName_(ACE::strnew (fileName)) -{ - -} - -ACEXML_Print_Handler::~ACEXML_Print_Handler (void) -{ - delete[] this->fileName_; -} - -void -ACEXML_Print_Handler::characters (const ACEXML_Char *cdata, - size_t start, - size_t length ACEXML_ENV_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event characters () ** start: %u end: %u ***************\n%s\n- End event characters () ---------------\n"), - start, length, cdata)); -} - -void -ACEXML_Print_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event endDocument () ***************\n"))); -} - -void -ACEXML_Print_Handler::endElement (const ACEXML_Char *uri, - const ACEXML_Char *name, - const ACEXML_Char *qName - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event endElement (%s, %s, %s) ***************\n"), - uri, name, qName)); -} - -void -ACEXML_Print_Handler::endPrefixMapping (const ACEXML_Char *prefix - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event endPrefixMapping (%s) ***************\n"), - prefix)); -} - -void -ACEXML_Print_Handler::ignorableWhitespace (const ACEXML_Char *, - int, - int - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // ACE_DEBUG ((LM_DEBUG, - // ACE_TEXT ("* Event ignorableWhitespace () ***************\n"))); -} - -void -ACEXML_Print_Handler::processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event processingInstruction (%s, %s) ***************\n"), - target, data)); -} - -void -ACEXML_Print_Handler::setDocumentLocator (ACEXML_Locator * locator) -{ - - this->locator_ = locator; - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("* Event setDocumentLocator () ***************\n"))); -} - -void -ACEXML_Print_Handler::skippedEntity (const ACEXML_Char *name - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event skippedEntity (%s) ***************\n"), - name)); -} - -void -ACEXML_Print_Handler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event startDocument () ***************\n"))); -} - -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) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event startElement (%s, %s, %s) ***************\n"), - uri, name, qName)); - - if (alist != 0) - for (size_t i = 0; i < alist->getLength (); ++i) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" %s = \"%s\"\n"), - alist->getQName (i), alist->getValue (i))); - } -} - -void -ACEXML_Print_Handler::startPrefixMapping (const ACEXML_Char * prefix, - const ACEXML_Char * uri ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event startPrefixMapping () ***************\n"))); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Prefix = %s, URI = %s\n"), prefix, uri)); -} - -// *** Methods inherit from ACEXML_DTDHandler. - -void -ACEXML_Print_Handler::notationDecl (const ACEXML_Char *name, - const ACEXML_Char *publicID, - const ACEXML_Char *systemID ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event notationDecl: (%s) "), - name)); - - if (publicID == 0) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("SYSTEM %s\n"), - systemID)); - else if (systemID == 0) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("PUBLIC %s\n"), - publicID)); - else - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("PUBLIC %s %s\n"), - publicID, systemID)); -} - -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) -{ - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Unparsed Entity: %s"), - name)); - - if (publicID == 0) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" SYSTEM %s"), - systemID)); - else - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" PUBLIC %s %s"), - publicID, systemID)); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" NDATA %s\n"), - notationName)); -} - -// Methods inherit from ACEXML_EnitityResolver. - -ACEXML_InputSource * -ACEXML_Print_Handler::resolveEntity (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. - return 0; -} - -// Methods inherit from ACEXML_ErrorHandler. - -/* - * Receive notification of a recoverable error. - */ -void -ACEXML_Print_Handler::error (ACEXML_SAXParseException & ex ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ", - (this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()), - this->locator_->getLineNumber(), - this->locator_->getColumnNumber())); - ex.print(); -} - -void -ACEXML_Print_Handler::fatalError (ACEXML_SAXParseException& ex ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ", - (this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()), - this->locator_->getLineNumber(), - this->locator_->getColumnNumber())); - ex.print(); - -} - -void -ACEXML_Print_Handler::warning (ACEXML_SAXParseException & ex ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ", - (this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()), - this->locator_->getLineNumber(), - this->locator_->getColumnNumber())); - ex.print(); -} diff --git a/ACE/ACEXML/examples/SAXPrint/Print_Handler.h b/ACE/ACEXML/examples/SAXPrint/Print_Handler.h deleted file mode 100644 index c7beebc02b7..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/Print_Handler.h +++ /dev/null @@ -1,171 +0,0 @@ -// $Id$ - -//============================================================================= -/** - * @file Print_Handler.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef ACEXML_PRINT_HANDLER_H -#define ACEXML_PRINT_HANDLER_H - -#include "ACEXML/common/DefaultHandler.h" - -/** - * @class ACEXML_Print_Handler - * - * @brief ACEXML_Print_Handler is an example SAX event handler. - * - * This SAX event handler prints out a detailed event report - * on every event it receives. - */ -class ACEXML_Print_Handler : public ACEXML_DefaultHandler -{ -public: - /* - * Default constructor. - */ - ACEXML_Print_Handler (ACEXML_Char* fileName); - - /* - * Default destructor. - */ - virtual ~ACEXML_Print_Handler (void); - - // Methods inherited from ACEXML_ContentHandler. - - /* - * Receive notification of character data. - */ - virtual void characters (const ACEXML_Char *ch, - size_t start, - size_t length ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of the end of a document. - */ - virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL) - ; - - /* - * 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) - ; - - /* - * End the scope of a prefix-URI mapping. - */ - virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of ignorable whitespace in element content. - */ - virtual void ignorableWhitespace (const ACEXML_Char *ch, - int start, - int length ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of a processing instruction. - */ - virtual void processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive an object for locating the origin of SAX document events. - */ - virtual void setDocumentLocator (ACEXML_Locator *locator) ; - - /* - * Receive notification of a skipped entity. - */ - virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of the beginning of a document. - */ - virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL) - ; - - /* - * Receive notification of the beginning of an element. - */ - virtual void startElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL) - ; - - /* - * Begin the scope of a prefix-URI Namespace mapping. - */ - virtual void startPrefixMapping (const ACEXML_Char *prefix, - const ACEXML_Char *uri ACEXML_ENV_ARG_DECL) - ; - - // *** Methods inherit from ACEXML_DTDHandler. - - /* - * Receive notification of a notation declaration event. - */ - virtual void notationDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of an unparsed entity declaration event. - */ - virtual void unparsedEntityDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId, - const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL) - ; - - // Methods inherit from ACEXML_EnitityResolver. - - /* - * Allow the application to resolve external entities. - */ - virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - ; - - // Methods inherit from ACEXML_ErrorHandler. - - /* - * Receive notification of a recoverable error. - */ - virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of a non-recoverable error. - */ - virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of a warning. - */ - virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ; -private: - - ACEXML_Char* fileName_; - ACEXML_Locator* locator_; - -}; - -#endif /* ACEXML_PRINT_HANDLER_H */ diff --git a/ACE/ACEXML/examples/SAXPrint/SAXPrint.mpc b/ACE/ACEXML/examples/SAXPrint/SAXPrint.mpc deleted file mode 100644 index 4fea0873337..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/SAXPrint.mpc +++ /dev/null @@ -1,6 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(SAXPrint): aceexe, acexml { - exename = SAXPrint -} diff --git a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp b/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp deleted file mode 100644 index 90182166b17..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp +++ /dev/null @@ -1,226 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "SAXPrint_Handler.h" -#include "ace/ACE.h" -#include "ace/Log_Msg.h" - -#if !defined (__ACEXML_INLINE__) -# include "SAXPrint_Handler.inl" -#endif /* __ACEXML_INLINE__ */ - -ACEXML_SAXPrint_Handler::ACEXML_SAXPrint_Handler (const ACEXML_Char* filename) - : indent_ (0), fileName_(ACE::strnew (filename)), locator_ (0) -{ - // no-op -} - -ACEXML_SAXPrint_Handler::~ACEXML_SAXPrint_Handler (void) -{ - delete [] this->fileName_; -} - -void -ACEXML_SAXPrint_Handler::characters (const ACEXML_Char *cdata, - size_t, - size_t - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("%s"), - cdata)); -} - -void -ACEXML_SAXPrint_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); -} - -void -ACEXML_SAXPrint_Handler::endElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *qName - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - - - this->dec_indent (); - this->print_indent (); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (""), - qName)); -} - -void -ACEXML_SAXPrint_Handler::endPrefixMapping (const ACEXML_Char * - ACEXML_ENV_ARG_DECL_NOT_USED) -{ -// ACE_DEBUG ((LM_DEBUG, -// ACE_TEXT ("* Event endPrefixMapping (%s) ***************\n"), -// prefix)); -} - -void -ACEXML_SAXPrint_Handler::ignorableWhitespace (const ACEXML_Char * cdata, - int, - int ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("%s"), - cdata)); -// ACE_DEBUG ((LM_DEBUG, - // ACE_TEXT ("* Event ignorableWhitespace () ***************\n"))); -} - -void -ACEXML_SAXPrint_Handler::processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - - - this->print_indent (); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("\n"), - target, data)); -} - -void -ACEXML_SAXPrint_Handler::setDocumentLocator (ACEXML_Locator * locator) -{ - - this->locator_ = locator; - //ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("* Event setDocumentLocator () ***************\n"))); -} - -void -ACEXML_SAXPrint_Handler::skippedEntity (const ACEXML_Char *name - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event skippedEntity (%s) ***************\n"), - name)); -} - -void -ACEXML_SAXPrint_Handler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event startDocument () ***************\n"))); -} - -void -ACEXML_SAXPrint_Handler::startElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *qName, - ACEXML_Attributes *alist - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - - - this->print_indent (); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("<%s"), - qName)); - if (alist != 0) - for (size_t i = 0; i < alist->getLength (); ++i) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" %s = \"%s\""), - alist->getQName (i), alist->getValue (i))); - } - ACE_DEBUG ((LM_DEBUG, ACE_TEXT (">"))); - this->inc_indent (); -} - -void -ACEXML_SAXPrint_Handler::startPrefixMapping (const ACEXML_Char * , - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ -// ACE_DEBUG ((LM_DEBUG, -// ACE_TEXT ("* Event startPrefixMapping () ***************\n"))); -// ACE_DEBUG ((LM_DEBUG, -// ACE_TEXT ("Prefix = %s, URI = %s\n"), prefix, uri)); - -} - -// *** Methods inherited from ACEXML_DTDHandler. - -void -ACEXML_SAXPrint_Handler::notationDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -void -ACEXML_SAXPrint_Handler::unparsedEntityDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. -} - -// Methods inherited from ACEXML_EnitityResolver. - -ACEXML_InputSource * -ACEXML_SAXPrint_Handler::resolveEntity (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) -{ - // No-op. - return 0; -} - -// Methods inherited from ACEXML_ErrorHandler. - -/* - * Receive notification of a recoverable error. - */ -void -ACEXML_SAXPrint_Handler::error (ACEXML_SAXParseException & ex - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ", - (this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()), - this->locator_->getLineNumber(), - this->locator_->getColumnNumber())); - ex.print(); -} - -void -ACEXML_SAXPrint_Handler::fatalError (ACEXML_SAXParseException & ex - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ", - (this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()), - this->locator_->getLineNumber(), - this->locator_->getColumnNumber())); - ex.print(); -} - -void -ACEXML_SAXPrint_Handler::warning (ACEXML_SAXParseException & ex - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ", - (this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()), - this->locator_->getLineNumber(), - this->locator_->getColumnNumber())); - ex.print(); -} - -void -ACEXML_SAXPrint_Handler::print_indent (void) -{ - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); - for (size_t i = 0; i < this->indent_; ++i) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" "))); -} diff --git a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h b/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h deleted file mode 100644 index 1f7ba8381b4..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.h +++ /dev/null @@ -1,180 +0,0 @@ -// $Id$ - -//============================================================================= -/** - * @file SAXPrint_Handler.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef ACEXML_SAXPRINT_HANDLER_H -#define ACEXML_SAXPRINT_HANDLER_H - -#include "ACEXML/common/DefaultHandler.h" - -/** - * @class ACEXML_SAXPrint_Handler - * - * @brief ACEXML_SAXPrint_Handler is an example SAX event handler. - * - * This SAX event handler try to regenerate the XML document it - * reads with correct indentation. - */ -class ACEXML_SAXPrint_Handler : public ACEXML_DefaultHandler -{ -public: - /* - * Default constructor. - */ - ACEXML_SAXPrint_Handler (const ACEXML_Char* name); - - /* - * Default destructor. - */ - virtual ~ACEXML_SAXPrint_Handler (void); - - // Methods inherit from ACEXML_ContentHandler. - - /* - * Receive notification of character data. - */ - virtual void characters (const ACEXML_Char *ch, - size_t start, - size_t length - ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of the end of a document. - */ - virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL) - ; - - /* - * 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) - ; - - /* - * End the scope of a prefix-URI mapping. - */ - virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of ignorable whitespace in element content. - */ - virtual void ignorableWhitespace (const ACEXML_Char *ch, - int start, - int length ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of a processing instruction. - */ - virtual void processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive an object for locating the origin of SAX document events. - */ - virtual void setDocumentLocator (ACEXML_Locator *locator) ; - - /* - * Receive notification of a skipped entity. - */ - virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of the beginning of a document. - */ - virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL) - ; - - /* - * Receive notification of the beginning of an element. - */ - virtual void startElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL) - ; - - /* - * Begin the scope of a prefix-URI Namespace mapping. - */ - virtual void startPrefixMapping (const ACEXML_Char *prefix, - const ACEXML_Char *uri ACEXML_ENV_ARG_DECL) - ; - - // *** Methods inherit from ACEXML_DTDHandler. - - /* - * Receive notification of a notation declaration event. - */ - virtual void notationDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of an unparsed entity declaration event. - */ - virtual void unparsedEntityDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId, - const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL) - ; - - // Methods inherit from ACEXML_EnitityResolver. - - /* - * Allow the application to resolve external entities. - */ - virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - ; - - // Methods inherit from ACEXML_ErrorHandler. - - /* - * Receive notification of a recoverable error. - */ - virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of a non-recoverable error. - */ - virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ; - - /* - * Receive notification of a warning. - */ - virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ; - - void inc_indent (); - void dec_indent (); - void print_indent (); - -private: - - size_t indent_; - ACEXML_Char* fileName_; - ACEXML_Locator* locator_; -}; - -#if defined (__ACEXML_INLINE__) -# include "SAXPrint_Handler.inl" -#endif /* __ACEXML_INLINE__ */ -#endif /* ACEXML_SAXPRINT_HANDLER_H */ diff --git a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.inl b/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.inl deleted file mode 100644 index 2102291ea68..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/SAXPrint_Handler.inl +++ /dev/null @@ -1,13 +0,0 @@ -// -*- C++ -*- $Id$ - -ACEXML_INLINE void -ACEXML_SAXPrint_Handler::inc_indent (void) -{ - this->indent_ += 1; -} - -ACEXML_INLINE void -ACEXML_SAXPrint_Handler::dec_indent (void) -{ - this->indent_ -= 1; -} diff --git a/ACE/ACEXML/examples/SAXPrint/broken.xml b/ACE/ACEXML/examples/SAXPrint/broken.xml deleted file mode 100644 index 8c350cc24fe..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/broken.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - kid diff --git a/ACE/ACEXML/examples/SAXPrint/main.cpp b/ACE/ACEXML/examples/SAXPrint/main.cpp deleted file mode 100644 index d875fff1964..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/main.cpp +++ /dev/null @@ -1,207 +0,0 @@ -// $Id$ - -#include "ACEXML/common/FileCharStream.h" -#include "ACEXML/common/HttpCharStream.h" -#include "ACEXML/common/StrCharStream.h" -#include "ACEXML/common/ZipCharStream.h" -#include "ACEXML/parser/parser/Parser.h" -#include "Print_Handler.h" -#include "SAXPrint_Handler.h" -#include "ace/Get_Opt.h" -#include "ace/Auto_Ptr.h" -#include "ace/Log_Msg.h" -#include "ace/OS_main.h" - -static const ACEXML_Char *test_string = -ACE_TEXT (" A " "); - -static void -usage (const ACE_TCHAR* program) -{ - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Usage: %s [-sl] [-f | -u | -z ]\n") - ACE_TEXT (" -s: Use SAXPrint_Handler (Default is Print_Handler)\n") - ACE_TEXT (" -l: Parse the internal strings (test the StrCharStream class)\n") - ACE_TEXT (" -f: Specify the filename when -l is not specified\n") - ACE_TEXT (" -z: Specify that the file is inside a ZIP archive\n") - ACE_TEXT (" -u: URL specifying the path to the file\n"), - program)); -} - -int -ACE_TMAIN (int argc, ACE_TCHAR *argv[]) -{ - ACEXML_Char* filename = 0; - int sax = 0; // Use SAXPrint handler or not. - int str = 0; - int zip = 0; - ACEXML_Char* url = 0; - - ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("sf:lu:z")); - int c; - - while ((c = get_opt ()) != EOF) - { - switch (c) - { - case 's': - sax = 1; - break; - case 'l': - str = 1; - break; - case 'f': - filename = get_opt.opt_arg (); - break; - case 'u': - 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 ") - ACE_TEXT ("$ACE_ROOT/ACEXML/README for more ") - ACE_TEXT ("information. \n"))); - return -1; -#else - break; -#endif /* USE_ZZIP */ - default: - usage(argv[0]); - return -1; - } - } - - if (str == 0 && filename == 0 && url == 0) { - usage(argv[0]); - return -1; - } - - ACEXML_DefaultHandler *handler = 0; - ACEXML_CharStream *stm = 0; - ACEXML_FileCharStream *fstm = 0; - ACEXML_HttpCharStream *ustm = 0; - ACEXML_StrCharStream* sstm = 0; -#ifdef USE_ZZIP - ACEXML_ZipCharStream* zstm = 0; -#endif /* USE_ZZIP */ - if (filename != 0) - { -#ifdef USE_ZZIP - if (zip) - { - ACE_NEW_RETURN (zstm, ACEXML_ZipCharStream(), -1); - if (zstm->open (filename) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Failed to open XML file: %s\n"), - filename), - -1); - stm = zstm; - } - else - { -#endif /* USE_ZZIP */ - ACE_NEW_RETURN (fstm, ACEXML_FileCharStream (), -1); - if (fstm->open (filename) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Failed to open XML file: %s\n"), - filename), - -1); - stm = fstm; -#ifdef USE_ZZIP - } -#endif /* USE_ZZIP */ - } - else if (url != 0) - { - - ACE_NEW_RETURN (ustm, ACEXML_HttpCharStream (), -1); - if (ustm->open (url) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Failed to open URL : %s\n"), - url), - -1); - stm = ustm; - } - else - { - ACE_NEW_RETURN (sstm, ACEXML_StrCharStream, -1); - if (sstm->open (test_string, ACE_TEXT ("test_string")) < 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Failed to open string : %s\n"), - test_string), - -1); - stm = sstm; - } - - ACEXML_Char* name = (filename == 0) ? url : filename; - if (sax == 0) - ACE_NEW_RETURN (handler, - ACEXML_Print_Handler (name), - -1); - else - ACE_NEW_RETURN (handler, - ACEXML_SAXPrint_Handler (name), - -1); - auto_ptr cleanup_handler (handler); - - ACEXML_Parser parser; - ACEXML_InputSource input (stm); - - parser.setContentHandler (handler); - parser.setDTDHandler (handler); - parser.setErrorHandler (handler); - parser.setEntityResolver (handler); - ACEXML_DECLARE_NEW_ENV; - - ACEXML_TRY_EX (FIRST) - { - parser.parse (&input ACEXML_ENV_ARG_PARAMETER); - ACEXML_TRY_CHECK_EX (FIRST); - } - ACEXML_CATCH (ACEXML_Exception, ex) - { - ex.print(); - ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred. Exiting...\n"))); - } - ACEXML_ENDTRY; - ACEXML_TRY_EX (SECOND) - { - parser.parse (&input ACEXML_ENV_ARG_PARAMETER); - ACEXML_TRY_CHECK_EX (SECOND); - } - ACEXML_CATCH (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); -// ACEXML_TRY_CHECK_EX (THIRD); -// } -// ACEXML_CATCH (ACEXML_SAXException, ex) -// { -// ex.print(); -// ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred. Exiting...\n"))); -// return 1; -// } -// ACEXML_ENDTRY; -// ACEXML_TRY_EX (FOURTH) -// { -// parser.parse (&input ACEXML_ENV_ARG_PARAMETER); -// ACEXML_TRY_CHECK_EX (FOURTH); -// } -// ACEXML_CATCH (ACEXML_SAXException, ex) -// { -// ex.print(); -// ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred. Exiting...\n"))); -// return 1; -// } -// ACEXML_ENDTRY; - return 0; -} - diff --git a/ACE/ACEXML/examples/SAXPrint/namespaces.xml b/ACE/ACEXML/examples/SAXPrint/namespaces.xml deleted file mode 100644 index f2418848929..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/namespaces.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - -Vignesh Blogs Here -http://primates.ximian.com/~ravi/BoozeLog/ - -en-us - -2002-10-11T00:50:42-06:00 -2002-10-12T20:19:57-06:00 - - - - - - - - - - - - - - - - - -Happy Birthday Vidya -Today is Vidya's birthday ! Happy Birthday Vidya! We had a midnight party,as usual, at Swapna's place, though I dont... -http://primates.ximian.com/~ravi/BoozeLog/archives/000025.html -Blog entry -Booze -2002-10-11T00:50:42-06:00 - - -Way to go, Shaastra! -On Flash Back mode now: Shaastra is the technical festival at my alma mater, IIT Madras, that replaced the old,... -http://primates.ximian.com/~ravi/BoozeLog/archives/000024.html -Blog entry -Booze -2002-10-10T11:52:02-06:00 - - -Back and Forth in Time -The blog is going to be a little skewed in time for the next coupla days.. Inspite of my laziness,... -http://primates.ximian.com/~ravi/BoozeLog/archives/000023.html -Blog entry -Booze -2002-10-09T23:47:19-06:00 - - -Frisco Rocks! -If there be any reason the blog hasnt been updated,it is simply because I am enjoying my trip to San... -http://primates.ximian.com/~ravi/BoozeLog/archives/000020.html -Blog entry -Booze -2002-10-03T23:53:16-06:00 - - -Think but not make thoughts your aim -A line from Rudyard Kipling's IF : would sum up my feelings for today, a lot of thinking from morning... -http://primates.ximian.com/~ravi/BoozeLog/archives/000013.html -Blog entry -Booze -2002-09-28T22:48:09-06:00 - - -New ARM but... -ARM stands for Advanced Recording Model, a simulation software that I use for my work, and I have been tinkering... -http://primates.ximian.com/~ravi/BoozeLog/archives/000012.html -Blog entry -Booze -2002-09-27T22:36:28-06:00 - - -A much needed break -Slowly got over the hangover of Sandhya's departure and moved to more mundane things in life : assignments, submissions and... -http://primates.ximian.com/~ravi/BoozeLog/archives/000011.html -Blog entry -Booze -2002-09-26T23:05:46-06:00 - - -Here we go ! -My first attempts at Blogging, the idea was introduced to me by Ravi Pratap. MoveableType really makes it easy and... -http://primates.ximian.com/~ravi/BoozeLog/archives/000008.html -Blog entry -Booze -2002-09-25T19:27:22-06:00 - - - - diff --git a/ACE/ACEXML/examples/SAXPrint/ns.svc.conf.xml b/ACE/ACEXML/examples/SAXPrint/ns.svc.conf.xml deleted file mode 100644 index 980ef21de92..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/ns.svc.conf.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - -d - -p 4911 - - - A &lt; - - -p 3000 - - - - - - - - - - - - - - - - - -p - 3001 - - - - - - - - - - - - - - - - - diff --git a/ACE/ACEXML/examples/SAXPrint/simple.svcconf.xml b/ACE/ACEXML/examples/SAXPrint/simple.svcconf.xml deleted file mode 100644 index 32afe359fdb..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/simple.svcconf.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - A & - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ACE/ACEXML/examples/SAXPrint/svc.conf.xml b/ACE/ACEXML/examples/SAXPrint/svc.conf.xml deleted file mode 100644 index 5296e5cac35..00000000000 --- a/ACE/ACEXML/examples/SAXPrint/svc.conf.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - ]> - - - - - A & - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ACE/ACEXML/parser/Makefile.am b/ACE/ACEXML/parser/Makefile.am deleted file mode 100644 index 35c60abcb8d..00000000000 --- a/ACE/ACEXML/parser/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -SUBDIRS = \ - parser - diff --git a/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp b/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp deleted file mode 100644 index ccebd4b9098..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp +++ /dev/null @@ -1,211 +0,0 @@ -// $Id$ - -#include "ACEXML/common/SAXExceptions.h" -#include "ACEXML/parser/debug_validator/Debug_Attributes_Builder.h" - -ACEXML_Debug_Attribute_Builder::ACEXML_Debug_Attribute_Builder () - : type_ (ERROR_TYPE), - default_decl_ (INVALID) -{ -} - -ACEXML_Debug_Attribute_Builder::ACEXML_Debug_Attribute_Builder (const ACEXML_Debug_Attribute_Builder &rhs) - : name_ (rhs.name_), - type_ (rhs.type_), - default_decl_ (rhs.default_decl_), - default_value_ (rhs.default_value_), - att_value_queue_ (rhs.att_value_queue_) -{ -} - -ACEXML_Debug_Attribute_Builder::~ACEXML_Debug_Attribute_Builder () -{ -} - -int -ACEXML_Debug_Attribute_Builder::setName (const ACEXML_Char *n) -{ - this->name_.set (n, 0); - return 0; -} - -const ACEXML_Char * -ACEXML_Debug_Attribute_Builder::getName (void) -{ - return this->name_.fast_rep (); -} - -int -ACEXML_Debug_Attribute_Builder::setAttType (const ATT_TYPE type - ACEXML_ENV_ARG_DECL) -{ - if (this->type_ == ERROR_TYPE) - { - this->type_ = type; - return 0; - } - ACEXML_THROW_RETURN (ACEXML_SAXParseException (ACE_TEXT("Attribute type redefinition in Debug Validator")), -1); - -} - -int -ACEXML_Debug_Attribute_Builder::insertList (const ACEXML_Char *n - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACEXML_String str (n, 0, 0); - - this->att_value_queue_.enqueue_tail (str); - return 0; -} - -int -ACEXML_Debug_Attribute_Builder::setDefault (const DEFAULT_DECL def, - const ACEXML_Char *value - ACEXML_ENV_ARG_DECL_NOT_USED) -{ - this->default_decl_ = def; - this->default_value_.set (value, 0); - return 0; -} - -int -ACEXML_Debug_Attribute_Builder::validAttr (void) -{ - // @@ Not implemented. Always return 1 (true) for now. - return 1; -} - -void -ACEXML_Debug_Attribute_Builder::dump (void) -{ - cout << this->name_ << " "; - - switch (this->type_) - { - case CDATA: - cout << "CDATA "; - break; - case ID: - cout << "ID "; - break; - case IDREF: - cout << "IDREF "; - break; - case IDREFS: - cout << "IDREFS "; - break; - case ENTITY: - cout << "ENTITY "; - break; - case ENTITIES: - cout << "ENTITIES "; - break; - case NMTOKEN: - cout << "NMTOKEN "; - break; - case NMTOKENS: - cout << "NMTOKENS "; - break; - case NOTATION: - cout << "NOTATION "; - // Fall thru - case ENUMERATION: - { - cout << "("; - ACEXML_STRING_QUEUE_ITERATOR iter (this->att_value_queue_); - ACEXML_String *n = 0; - - while (iter.advance () != 0) - { - if (n == 0) - cout << " | "; - iter.next (n); - cout << *n; - } - cout << ") "; - } - break; - default: - cout << "*** UNKNOWN TYPE ***"; - break; - } - - switch (this->default_decl_) - { - case REQUIRED: - cout << "#REQUIRED"; - break; - case IMPLIED: - cout << "#IMPLIED"; - break; - case FIXED: - cout << "#FIXED " << this->default_value_; - break; - default: - cout << "**** UNDEFINED DEFAULT DECL ****"; - break; - } -} -// ======================================== - -ACEXML_Debug_Attributes_Builder::ACEXML_Debug_Attributes_Builder () -{ -} - -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) -{ - this->element_name_.set (qName, 0); - return 0; -} - -ACEXML_Attribute_Def_Builder * -ACEXML_Debug_Attributes_Builder::getAttribute_Def_Builder () -{ - ACEXML_Attribute_Def_Builder *tmp; - - ACE_NEW_RETURN (tmp, - ACEXML_Debug_Attribute_Builder (), - 0); - return tmp; -} - -int -ACEXML_Debug_Attributes_Builder::insertAttribute (ACEXML_Attribute_Def_Builder *def ACEXML_ENV_ARG_DECL) -{ - ACEXML_Attribute_Def_Builder::VAR ptr (def); - - if (def != 0) - { - ACEXML_String attname (def->getName (), 0, 0); - ACEXML_Debug_Attribute_Builder *ptr = - dynamic_cast (def); - this->attributes_.bind (attname, *ptr); - return 0; - } - ACEXML_THROW_RETURN (ACEXML_SAXParseException (ACE_TEXT("ACEXML_Debug_Attributes_Builder internal error")), -1); -} - -void -ACEXML_Debug_Attributes_Builder::dump (void) -{ - // @@ Print print. - cout << "element_name_ << endl; - - ACEXML_ATT_MAP_ITER iter (this->attributes_); - ACEXML_ATT_MAP_ENTRY *item; - - while (iter.advance () != 0) - { - iter.next (item); - cout << "\n\t"; - item->int_id_.dump (); - } - cout << ">" << endl; -} diff --git a/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h b/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h deleted file mode 100644 index e22b6ef936a..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Debug_Attributes_Builder.h +++ /dev/null @@ -1,166 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Debug_Attributes_Builder.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_DEBUG_ATTRIBUTES_BUILDER_H_ -#define _ACEXML_DEBUG_ATTRIBUTES_BUILDER_H_ - -#include /**/ "ace/pre.h" -#include "ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ACEXML/common/Attributes_Def_Builder.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/Unbounded_Queue.h" - -typedef ACE_Unbounded_Queue ACEXML_STRING_QUEUE; -typedef ACE_Unbounded_Queue_Iterator ACEXML_STRING_QUEUE_ITERATOR; - -/** - * @class ACEXML_Debug_Attribute_Builder Debug_Attributes_Builder.h "parser/debug_validator/Debug_Attributes_Builder.h" - * - * This class prints out the Attribute definition for debugging purpose. - */ -class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Debug_Attribute_Builder - : public ACEXML_Attribute_Def_Builder -{ -public: - ACEXML_Debug_Attribute_Builder (); - - ACEXML_Debug_Attribute_Builder (const ACEXML_Debug_Attribute_Builder &rhs); - - virtual ~ACEXML_Debug_Attribute_Builder (); - - /** - * Specify the name of the attribute. - */ - virtual int setName (const ACEXML_Char *n); - virtual const ACEXML_Char *getName (void); - - /** - * Set the attribute type. - */ - virtual int setAttType (const ATT_TYPE type ACEXML_ENV_ARG_DECL); - - /** - * Insert an element for NOTATION or ENUMERATION type attribute. - */ - virtual int insertList (const ACEXML_Char *Name ACEXML_ENV_ARG_DECL); - - /** - * Set default attribute declaration. - */ - virtual int setDefault (const DEFAULT_DECL def, - const ACEXML_Char *value ACEXML_ENV_ARG_DECL) - ; - - /** - * Check validity of the current attribute definition being built. - * - * @retval 0 if the attribute is not a valid combo. - */ - virtual int validAttr (void); - - - /** - * Dump the content of the attribute definition. - */ - virtual void dump (void); -private: - /// Attribute name. - ACEXML_String name_; - - /// Type of attribute. - ATT_TYPE type_; - - /// Default value type. - DEFAULT_DECL default_decl_; - - /// Default attribute value. - ACEXML_String default_value_; - - /// Holds a queue of enumerated attribute values. - ACEXML_STRING_QUEUE att_value_queue_; -}; - -typedef ACE_Hash_Map_Entry ACEXML_ATT_MAP_ENTRY; - -typedef ACE_Hash_Map_Manager_Ex , - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_ATT_MAP; - -typedef ACE_Hash_Map_Iterator_Ex, - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_ATT_MAP_ITER; - -typedef ACE_Hash_Map_Reverse_Iterator_Ex, - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_ATT_MAP_REVERSE_ITER; - -/** - * @class ACEXML_Debug_Attributes_Builder Debug_Attributes_Builder.h "parser/debug_validator/Debug_Attributes_Builder.h" - * - * This class prints out Attribute definitions for debugging purpose. - */ -class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Debug_Attributes_Builder - : public ACEXML_Attributes_Def_Builder -{ -public: - ACEXML_Debug_Attributes_Builder (); - - virtual ~ACEXML_Debug_Attributes_Builder (); - - /** - * Set the element name that the attribute builder applies. - * - * @retval 0 if valid, -1 otherwise. - */ - virtual int setElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) - ; - - /** - * Acquire an Attribute_Builder. - */ - virtual ACEXML_Attribute_Def_Builder *getAttribute_Def_Builder (); - - /** - * Add a definition for one attribute. - */ - virtual int insertAttribute (ACEXML_Attribute_Def_Builder *def ACEXML_ENV_ARG_DECL); - - - /** - * Dump the content of the attribute definition. - */ - virtual void dump (void); -protected: - /// The name of the element type these attributes applied. - ACEXML_String element_name_; - - /// Collection of attributes. - ACEXML_ATT_MAP attributes_; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_DEBUG_ATTRIBUTES_BUILDER_H_ */ diff --git a/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp b/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp deleted file mode 100644 index d0745d13bfc..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/SAXExceptions.h" -#include "ACEXML/parser/debug_validator/Debug_DTD_Manager.h" -#include "ACEXML/parser/debug_validator/Debug_Element_Builder.h" -#include "ACEXML/parser/debug_validator/Debug_Attributes_Builder.h" - -ACEXML_Debug_DTD_Manager::ACEXML_Debug_DTD_Manager () -{ - -} - -ACEXML_Debug_DTD_Manager::~ACEXML_Debug_DTD_Manager () -{ - -} - -ACEXML_Element_Def_Builder * -ACEXML_Debug_DTD_Manager::getElement_Def_Builder () -{ - return new ACEXML_Debug_Element_Builder (); -} - -int -ACEXML_Debug_DTD_Manager::insertElement_Definition (ACEXML_Element_Def_Builder *def ACEXML_ENV_ARG_DECL) -{ - ACEXML_Element_Def_Builder::VAR ptr (def); - - if (def != 0) - { - ptr->dump (); - return 0; - } - - ACEXML_THROW_RETURN (ACEXML_SAXParseException (ACE_TEXT("ACEXML_Debug_Attributes_Builder internal error")), -1); -} - -ACEXML_Attributes_Def_Builder * -ACEXML_Debug_DTD_Manager::getAttribute_Def_Builder () -{ - ACEXML_Attributes_Def_Builder *tmp; - ACE_NEW_RETURN (tmp, - ACEXML_Debug_Attributes_Builder (), - 0); - return tmp; -} - -int -ACEXML_Debug_DTD_Manager::insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def ACEXML_ENV_ARG_DECL) -{ - ACEXML_Attributes_Def_Builder::VAR ptr (def); - if (def != 0) - { - ptr->dump (); - return 0; - } - - ACEXML_THROW_RETURN (ACEXML_SAXParseException (ACE_TEXT("ACEXML_Debug_Attributes_Builder internal error")), -1); -} - -ACEXML_Validator * -ACEXML_Debug_DTD_Manager::getValidator (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) -{ - 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 deleted file mode 100644 index 0849d95ecb2..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager.h +++ /dev/null @@ -1,76 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Debug_DTD_Manager.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_DEBUG_DTD_Manager_H_ -#define _ACEXML_DEBUG_DTD_Manager_H_ - -#include /**/ "ace/pre.h" -#include "ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ACEXML/common/DTD_Manager.h" - -class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Debug_DTD_Manager : public ACEXML_DTD_Manager -{ -public: - ACEXML_Debug_DTD_Manager (); - - virtual ~ACEXML_Debug_DTD_Manager (); - - /** - * Acquire a pointer to an element definition builder. The XML parser use - * this interface to acquire the definition builder and use the builder - * to create the DTD element definition. The resulting builder is then - * registered with the DTD Manager or destroyed if error occured when the - * builder encountered errors. - * - * @retval 0 if error occurs creating the builder. - */ - virtual ACEXML_Element_Def_Builder *getElement_Def_Builder (); - - /** - * Insert a new element definition into the DTD Manager. - * - * @retval 0 if success, -1 if error. - */ - virtual int insertElement_Definition (ACEXML_Element_Def_Builder *def ACEXML_ENV_ARG_DECL); - - /** - * Acquire a pointer to an attributes definition builder. - * - */ - virtual ACEXML_Attributes_Def_Builder *getAttribute_Def_Builder (); - - /** - * Insert a new attributes definition into the DTD Manager. - * - * @retval 0 if success, -1 otherwise. - */ - virtual int insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def ACEXML_ENV_ARG_DECL); - - /** - * Acquire an element validator to validate an XML element. - * - * @todo I haven't figured out what memory management scheme - * we should use for the acquired validator. - */ - virtual ACEXML_Validator *getValidator (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL); -}; - -#include /**/ "ace/post.h" - - -#endif /* _ACEXML_DTD_Manager_H_ */ diff --git a/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h b/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h deleted file mode 100644 index b4cf1c8a536..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h +++ /dev/null @@ -1,38 +0,0 @@ - -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl -s ACEXML_DEBUG_DTD_MANAGER -// ------------------------------ -#ifndef ACEXML_DEBUG_DTD_MANAGER_EXPORT_H -#define ACEXML_DEBUG_DTD_MANAGER_EXPORT_H - -#include "ace/config-all.h" - -#if defined (ACE_AS_STATIC_LIBS) && !defined (ACEXML_DEBUG_DTD_MANAGER_HAS_DLL) -# define ACEXML_DEBUG_DTD_MANAGER_HAS_DLL 0 -#endif /* ACE_AS_STATIC_LIBS && ACEXML_DEBUG_DTD_MANAGER_HAS_DLL */ - -#if !defined (ACEXML_DEBUG_DTD_MANAGER_HAS_DLL) -# define ACEXML_DEBUG_DTD_MANAGER_HAS_DLL 1 -#endif /* ! ACEXML_DEBUG_DTD_MANAGER_HAS_DLL */ - -#if defined (ACEXML_DEBUG_DTD_MANAGER_HAS_DLL) && (ACEXML_DEBUG_DTD_MANAGER_HAS_DLL == 1) -# if defined (ACEXML_DEBUG_DTD_MANAGER_BUILD_DLL) -# define ACEXML_DEBUG_DTD_MANAGER_Export ACE_Proper_Export_Flag -# define ACEXML_DEBUG_DTD_MANAGER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define ACEXML_DEBUG_DTD_MANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* ACEXML_DEBUG_DTD_MANAGER_BUILD_DLL */ -# define ACEXML_DEBUG_DTD_MANAGER_Export ACE_Proper_Import_Flag -# define ACEXML_DEBUG_DTD_MANAGER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define ACEXML_DEBUG_DTD_MANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* ACEXML_DEBUG_DTD_MANAGER_BUILD_DLL */ -#else /* ACEXML_DEBUG_DTD_MANAGER_HAS_DLL == 1 */ -# define ACEXML_DEBUG_DTD_MANAGER_Export -# define ACEXML_DEBUG_DTD_MANAGER_SINGLETON_DECLARATION(T) -# define ACEXML_DEBUG_DTD_MANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* ACEXML_DEBUG_DTD_MANAGER_HAS_DLL == 1 */ - -#endif /* ACEXML_DEBUG_DTD_MANAGER_EXPORT_H */ - -// End of auto generated file. diff --git a/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.cpp b/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.cpp deleted file mode 100644 index da422a3429f..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.cpp +++ /dev/null @@ -1,144 +0,0 @@ -// $Id$ - -#include "ACEXML/common/SAXExceptions.h" -#include "ACEXML/parser/debug_validator/Debug_Element_Builder.h" - -ACEXML_Debug_Element_Builder::ACEXML_Debug_Element_Builder () - : type_ (UNDEFINED), - root_ (0) -{ -} - -ACEXML_Debug_Element_Builder::~ACEXML_Debug_Element_Builder () -{ - delete this->root_; -} - -int -ACEXML_Debug_Element_Builder::setElementName (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED) -{ - this->element_.set (qName, 0); - return 0; -} - -int -ACEXML_Debug_Element_Builder::setContentType (CONTENT_TYPE type ACEXML_ENV_ARG_DECL) -{ - if (this->type_ == UNDEFINED) - { - this->type_ = type; - return 0; - } - - ACEXML_THROW_RETURN (ACEXML_SAXParseException (ACE_TEXT("Element type redefinition in Debug_Validator.")), -1); -} - -int -ACEXML_Debug_Element_Builder::insertMixedElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACEXML_Element_Tree_Name_Node *node; - - // @@ We should "throw" an exception here instead of returning -1. - ACE_NEW_RETURN (node, - ACEXML_Element_Tree_Name_Node (qName), - -1); - - if (this->root_ == 0) - // @@ Memory leak if fail? - ACE_NEW_RETURN (this->root_, - ACEXML_Element_Tree_List_Node (), - -1); - - - return this->root_->insert (node); -} - -int -ACEXML_Debug_Element_Builder::startChildGroup () -{ - ACEXML_Element_Tree_List_Node *lnode; - - ACE_NEW_RETURN (lnode, - ACEXML_Element_Tree_List_Node (), - -1); - - if (this->root_ == 0) - { - this->root_ = lnode; - } - else - { - // @@ check error? - this->root_->insert (lnode); - } - - this->active_list_.push (lnode); - return 0; -} - -int -ACEXML_Debug_Element_Builder::endChildGroup (CARDINALITY ACEXML_ENV_ARG_DECL_NOT_USED) -{ - this->active_list_.pop (); - return 0; -} - -int -ACEXML_Debug_Element_Builder::setChoice () -{ - this->active_list_.top ()->set (ACEXML_Element_Tree_List_Node::CHOICE); - return 0; -} - -int -ACEXML_Debug_Element_Builder::setSequence () -{ - this->active_list_.top ()->set (ACEXML_Element_Tree_List_Node::SEQUENCE); - return 0; -} - -int -ACEXML_Debug_Element_Builder::insertElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED) -{ - ACEXML_Element_Tree_Name_Node *node; - - // @@ We should "throw" an exception here instead of returning -1. - ACE_NEW_RETURN (node, - ACEXML_Element_Tree_Name_Node (qName), - -1); - - return this->active_list_.top ()->insert (node); -} - -void -ACEXML_Debug_Element_Builder::dump () -{ - cout << "element_; - - // @@ Also dump element contentspec here. - switch (this->type_) - { - case EMPTY: - cout << "EMPTY"; - break; - case ANY: - cout << "ANY"; - break; - case MIXED: - case CHILDREN: - // @@ Dump the content of this->root_ - cout << "*** not implemented ***"; - break; - default: - cout << "*** Unidentified element type ***"; - break; - } - - cout << ">" << endl; -} diff --git a/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.h b/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.h deleted file mode 100644 index dc1f7765441..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Debug_Element_Builder.h +++ /dev/null @@ -1,123 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Debug_Element_Builder.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_DEBUG_ELEMENT_BUILDER_H_ -#define _ACEXML_DEBUG_ELEMENT_BUILDER_H_ - -#include /**/ "ace/pre.h" -#include "ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ACEXML/common/Element_Def_Builder.h" -#include "ACEXML/parser/debug_validator/Element_Tree.h" - -/** - * @class ACEXML_Debug_Element_Builder Debug_Element_Builder.h "parser/debug_validator/Debug_Element_Builder.h" - * - * This class prints out the element definition for debugging purpose. - * - * @todo This class is not namespace-aware. - */ -class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Debug_Element_Builder - : public ACEXML_Element_Def_Builder -{ -public: - ACEXML_Debug_Element_Builder (); - - virtual ~ACEXML_Debug_Element_Builder (); - - /** - * Define the name of the element. - * - * @retval 0 if valid, -1 otherwise. - */ - virtual int setElementName (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) - ; - - /** - * Define the content type of the element. - * - * @retval 0 if valid, -1 otherwise. - */ - virtual int setContentType (CONTENT_TYPE type ACEXML_ENV_ARG_DECL) - ; - - /** - * 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) - ; - - /** - * Start a new group of children. - */ - virtual int startChildGroup (); - - /** - * End a new group of children. - * - * @retval 0 on success. - */ - virtual int endChildGroup (CARDINALITY card ACEXML_ENV_ARG_DECL); - - /** - * Set the type of current child group to Choice. - * - * @retval 0 on success, -1 if the type of the child group has - * already been set and this action conflicts with the previous - * setting. - */ - virtual int setChoice (); - - /** - * Set the type of current child group to Sequence. - * - * @retval 0 on success, -1 if the type of the child group has - * already been set and this action conflicts with the previous - * setting. - */ - virtual int setSequence (); - - /** - * Insert an new element into the current child group. - * - * @retval 0 on success, -1 otherwise. - */ - virtual int insertElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) - ; - - /** - * Dump the content of the attribute definition. - */ - virtual void dump (void); -private: - CONTENT_TYPE type_; - - ACEXML_String element_; - - ACEXML_Element_Tree_List_Node *root_; - - ACEXML_Element_Tree_List_Stack active_list_; -}; - - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_DEBUG_ELEMENT_BUILDER_H_ */ diff --git a/ACE/ACEXML/parser/debug_validator/Element_Tree.cpp b/ACE/ACEXML/parser/debug_validator/Element_Tree.cpp deleted file mode 100644 index e584e22dd62..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Element_Tree.cpp +++ /dev/null @@ -1,72 +0,0 @@ -// $Id$ - -#include "ACEXML/parser/debug_validator/Element_Tree.h" - -#if !defined (__ACEXML_INLINE__) -# include "ACEXML/parser/debug_validator/Element_Tree.inl" -#endif /* __ACEXML_INLINE__ */ - -ACEXML_Element_Tree_Node::~ACEXML_Element_Tree_Node () -{ - delete this->next_; -} - -ACE_ALLOC_HOOK_DEFINE (ACEXML_Element_Tree_Node) - -void -ACEXML_Element_Tree_Name_Node::dump () -{ - cout << this->name_; -} - -ACE_ALLOC_HOOK_DEFINE (ACEXML_Element_Tree_Name_Node) - -ACEXML_Element_Tree_List_Node::~ACEXML_Element_Tree_List_Node (void) -{ - delete this->head_; -} - -int -ACEXML_Element_Tree_List_Node::insert (ACEXML_Element_Tree_Node *node) -{ - if (this->head_ == 0) - { - this->tail_ = this->head_ = node; - } - else - { - this->tail_->next (node); - this->tail_ = node; - } - return 0; -} - -void -ACEXML_Element_Tree_List_Node::dump (void) -{ - ACEXML_Element_Tree_Node *ptr = this->head_; - const ACEXML_Char *separator = (this->type_ == SEQUENCE) ? ACE_TEXT(" , ") : ACE_TEXT(" | "); - - cout << "("; - - if (ptr != 0) - { - ptr->dump (); - ptr = ptr->next (); - - while (ptr != 0) - { - cout << separator; - ptr->dump (); - ptr->next (); - } - } - - cout << ")"; -} - -ACE_ALLOC_HOOK_DEFINE (ACEXML_Element_Tree_List_Node) - - - -ACE_ALLOC_HOOK_DEFINE (ACEXML_Element_Tree_List_Stack) diff --git a/ACE/ACEXML/parser/debug_validator/Element_Tree.h b/ACE/ACEXML/parser/debug_validator/Element_Tree.h deleted file mode 100644 index 4738b5de2f4..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Element_Tree.h +++ /dev/null @@ -1,160 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Element_Tree.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= -#ifndef _ACEXML_ELEMENT_TREE_H_ -#define _ACEXML_ELEMENT_TREE_H_ - -#include /**/ "ace/pre.h" -#include "ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ACEXML/common/XML_Types.h" - -/** - * @class ACEXML_Element_Tree_Node Element_Tree.h "parser/debug_validator/Element_Tree.h" - * - * @brief An abstract base class for describing DTD child element definition. - * - * @sa ACEXML_Element_Tree_Name_Node, ACEXML_Element_Tree_List_Node - */ -class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Element_Tree_Node -{ -public: - - /// Default constructor. - ACEXML_Element_Tree_Node (); - - /// Destructor - virtual ~ACEXML_Element_Tree_Node (); - - /// Accessor for next element in chain - ACEXML_Element_Tree_Node *next (); - void next (ACEXML_Element_Tree_Node *n); - - /// Displaying the content. - virtual void dump () = 0; - - ACE_ALLOC_HOOK_DECLARE; - -protected: - ACEXML_Element_Tree_Node *next_; -}; - -/** - * @class ACEXML_Element_Tree_Name_Node Element_Tree.h "parser/debug_validator/Element_Tree.h" - * - * @brief An abstract base class for describing a name node in a DTD child - * element definition. - * - * @sa ACEXML_Element_Tree_Node, ACEXML_Element_Tree_List_Node - */ -class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Element_Tree_Name_Node - : public ACEXML_Element_Tree_Node -{ -public: - /// Constructor. - ACEXML_Element_Tree_Name_Node (const ACEXML_Char *name, - int release = 1); - - /// Change the name of this node. - void set (const ACEXML_Char *name, - int release = 1); - - virtual void dump (); - - ACE_ALLOC_HOOK_DECLARE; -protected: - ACEXML_String name_; -}; - -class ACEXML_Element_Tree_List_Stack; - -/** - * @class ACEXML_Element_Tree_List_Node Element_Tree.h "parser/debug_validator/Element_Tree.h" - * - * @brief An abstract base class for describing a node list in a DTD child - * element definition. - * - * @sa ACEXML_Element_Tree_Node, ACEXML_Element_Tree_Name_Node - */ -class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Element_Tree_List_Node - : public ACEXML_Element_Tree_Node -{ -public: - friend class ACEXML_Element_Tree_List_Stack; - - typedef enum { - SEQUENCE, - CHOICE - } LIST_TYPE; - - /// Default constructor. - ACEXML_Element_Tree_List_Node (void); - - /// Destructor. - virtual ~ACEXML_Element_Tree_List_Node (void); - - /// Insert a new ACEXML_Element_Tree_Node into the list. - int insert (ACEXML_Element_Tree_Node *node); - - /// Get/set the type of list. - LIST_TYPE get (void); - int set (LIST_TYPE type); - - virtual void dump (); - - ACE_ALLOC_HOOK_DECLARE; -protected: - LIST_TYPE type_; - - ACEXML_Element_Tree_Node *head_; - - ACEXML_Element_Tree_Node *tail_; - - ACEXML_Element_Tree_List_Node *pop_next_; -}; - -/** - * @class ACEXML_Element_Tree_List_Stack Element_Tree.h "parser/debug_validator/Element_Tree.h" - * - * @brief A class for managing a stack of ACEXML_Element_Tree_List_Node's. - * - * @sa ACEXML_Element_Tree_List_Node - */ -class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Element_Tree_List_Stack -{ -public: - ACEXML_Element_Tree_List_Stack (); - - void push (ACEXML_Element_Tree_List_Node *n); - - ACEXML_Element_Tree_List_Node *pop (void); - - ACEXML_Element_Tree_List_Node *top (void); - - int empty (void); - - ACE_ALLOC_HOOK_DECLARE; - -protected: - ACEXML_Element_Tree_List_Node *top_; -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/parser/debug_validator/Element_Tree.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_ELEMENT_TREE_H_ */ diff --git a/ACE/ACEXML/parser/debug_validator/Element_Tree.inl b/ACE/ACEXML/parser/debug_validator/Element_Tree.inl deleted file mode 100644 index 4b408835403..00000000000 --- a/ACE/ACEXML/parser/debug_validator/Element_Tree.inl +++ /dev/null @@ -1,92 +0,0 @@ -// $Id$ - -ACEXML_INLINE -ACEXML_Element_Tree_Node::ACEXML_Element_Tree_Node () - : next_ (0) -{ -} - -ACEXML_INLINE ACEXML_Element_Tree_Node * -ACEXML_Element_Tree_Node::next () -{ - return this->next_; -} - -ACEXML_INLINE void -ACEXML_Element_Tree_Node::next (ACEXML_Element_Tree_Node * n) -{ - this->next_ = n; -} - -ACEXML_INLINE -ACEXML_Element_Tree_Name_Node::ACEXML_Element_Tree_Name_Node (const ACEXML_Char *name, - int release) - : name_ (name, 0, release) -{ -} - -ACEXML_INLINE void -ACEXML_Element_Tree_Name_Node::set (const ACEXML_Char *name, - int release) -{ - this->name_.set (name, release); -} - -ACEXML_INLINE -ACEXML_Element_Tree_List_Node::ACEXML_Element_Tree_List_Node (void) - : type_ (SEQUENCE), - head_ (0), - tail_ (0), - pop_next_ (0) -{ -} - -ACEXML_INLINE ACEXML_Element_Tree_List_Node::LIST_TYPE -ACEXML_Element_Tree_List_Node::get (void) -{ - return this->type_; -} - -ACEXML_INLINE int -ACEXML_Element_Tree_List_Node::set (ACEXML_Element_Tree_List_Node::LIST_TYPE type) -{ - this->type_ = type; - return 0; -} - -ACEXML_INLINE -ACEXML_Element_Tree_List_Stack::ACEXML_Element_Tree_List_Stack (void) - : top_ (0) -{ -} - -ACEXML_INLINE ACEXML_Element_Tree_List_Node * -ACEXML_Element_Tree_List_Stack::top () -{ - return this->top_; -} - -ACEXML_INLINE void -ACEXML_Element_Tree_List_Stack::push (ACEXML_Element_Tree_List_Node *n) -{ - n->pop_next_ = this->top_; - this->top_ = n; -} - -ACEXML_INLINE ACEXML_Element_Tree_List_Node * -ACEXML_Element_Tree_List_Stack::pop () -{ - if (this->top_ != 0) - { - ACEXML_Element_Tree_List_Node *ptr = this->top_; - this->top_ = this->top_->pop_next_; - return ptr; - } - return 0; -} - -ACEXML_INLINE int -ACEXML_Element_Tree_List_Stack::empty () -{ - return this->top_ == 0; -} diff --git a/ACE/ACEXML/parser/parser/ACEXML_Parser.pc.in b/ACE/ACEXML/parser/parser/ACEXML_Parser.pc.in deleted file mode 100644 index 61fb0d02374..00000000000 --- a/ACE/ACEXML/parser/parser/ACEXML_Parser.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: ACEXML_Parser -Description: ACE XML Parser Library -Requires: ACEXML -Version: @VERSION@ -Libs: -L${libdir} -lACEXML_Parser -Cflags: -I${includedir} diff --git a/ACE/ACEXML/parser/parser/Entity_Manager.cpp b/ACE/ACEXML/parser/parser/Entity_Manager.cpp deleted file mode 100644 index 0f27707ae72..00000000000 --- a/ACE/ACEXML/parser/parser/Entity_Manager.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// $Id$ - -#include "ACEXML/parser/parser/Entity_Manager.h" - -#if !defined (__ACEXML_INLINE__) -# include "ACEXML/parser/parser/Entity_Manager.inl" -#endif /* __ACEXML_INLINE__ */ - - -ACEXML_Entity_Manager::ACEXML_Entity_Manager (void) - : entities_ (0) -{ - -} - -ACEXML_Entity_Manager::~ACEXML_Entity_Manager (void) -{ - this->reset(); -} - diff --git a/ACE/ACEXML/parser/parser/Entity_Manager.h b/ACE/ACEXML/parser/parser/Entity_Manager.h deleted file mode 100644 index e97233a6146..00000000000 --- a/ACE/ACEXML/parser/parser/Entity_Manager.h +++ /dev/null @@ -1,100 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Entity_Manager.h - * - * $Id$ - * - * @author Nanbor Wang - * @author Krishnakumar B - */ -//============================================================================= - -#ifndef ACEXML_ENTITY_MANAGER_H -#define ACEXML_ENTITY_MANAGER_H - -#include /**/ "ace/pre.h" -#include "ACEXML/parser/parser/Parser_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ACEXML/common/XML_Types.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/Null_Mutex.h" - -typedef ACE_Hash_Map_Entry ACEXML_ENTITY_ENTRY; - -typedef ACE_Hash_Map_Manager_Ex, - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_ENTITIES_MANAGER; - -typedef ACE_Hash_Map_Iterator_Ex, - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_ENTITIES_MANAGER_ITER; - -typedef ACE_Hash_Map_Reverse_Iterator_Ex, - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_ENTITIES_MANAGER_REVERSE_ITER; - -typedef ACE_Hash_Map_Bucket_Iterator, - ACE_Equal_To, - ACE_Null_Mutex> ACEXML_ENTITY_ENTRY_ITERATOR; - -/** - * @class ACEXML_Entity_Manager Entity_Manager.h "ACEXML/parser/parser/Entity_Manager.h" - * - * @brief Class to manage and resolve entity references. - * - * @todo Fill in details for this class. - */ -class ACEXML_PARSER_Export ACEXML_Entity_Manager -{ -public: - /// Default constructor. - ACEXML_Entity_Manager (void); - - /// Destructor. - ~ACEXML_Entity_Manager (void); - - /// Add a new entity declaration. - int add_entity (const ACEXML_Char *ref, const ACEXML_Char *value); - - /// Resolve an entity reference. - const ACEXML_Char* resolve_entity (const ACEXML_Char *ref); - - /// Resolve an entity reference and return the tuple of @c systemId and - /// @c publicId - int resolve_entity (const ACEXML_Char* ref, ACEXML_Char*& systemId, - ACEXML_Char*& publicId); - - /// Number of items in the Entity Manager - size_t size(void) const; - - /// Reset the state - int reset (void); - -private: - ACEXML_ENTITIES_MANAGER* entities_; - bool init_; - -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/parser/parser/Entity_Manager.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACEXML_ENTITY_MANAGER_H */ diff --git a/ACE/ACEXML/parser/parser/Entity_Manager.inl b/ACE/ACEXML/parser/parser/Entity_Manager.inl deleted file mode 100644 index ca859a0b0d5..00000000000 --- a/ACE/ACEXML/parser/parser/Entity_Manager.inl +++ /dev/null @@ -1,66 +0,0 @@ -// $Id$ - -ACEXML_INLINE int -ACEXML_Entity_Manager::add_entity (const ACEXML_Char *ref, - const ACEXML_Char *v) -{ - if (!this->entities_ ) - ACE_NEW_RETURN (this->entities_, ACEXML_ENTITIES_MANAGER, -1); - ACEXML_String name (ref, 0, false); - ACEXML_String value (v, 0, false); - return this->entities_->bind (name, value); -} - -ACEXML_INLINE const ACEXML_Char* -ACEXML_Entity_Manager::resolve_entity (const ACEXML_Char *ref) -{ - if (!this->entities_) - return 0; - - ACEXML_ENTITY_ENTRY *entry = 0; - - if (this->entities_->find (ACEXML_String (ref, 0, false), - entry) == 0) - return entry->int_id_.c_str(); - return 0; -} - -ACEXML_INLINE int -ACEXML_Entity_Manager::resolve_entity (const ACEXML_Char* ref, - ACEXML_Char*& systemId, - ACEXML_Char*& publicId) -{ - if (!this->entities_) - return 0; - - publicId = systemId = 0; - ACEXML_ENTITY_ENTRY_ITERATOR iter (*this->entities_, ref); - ACEXML_ENTITY_ENTRY_ITERATOR end (*this->entities_, ref, 1); - - if (iter != end) - { - systemId = const_cast ((*iter).int_id_.c_str()); - ++iter; - if (iter != end) - publicId = const_cast ((*iter).int_id_.c_str()); - return 0; - } - return -1; -} - -ACEXML_INLINE int -ACEXML_Entity_Manager::reset (void) -{ - delete this->entities_; - this->entities_ = 0; - return 0; -} - - -ACEXML_INLINE size_t -ACEXML_Entity_Manager::size (void) const -{ - if (!this->entities_) - return 0; - return this->entities_->current_size(); -} diff --git a/ACE/ACEXML/parser/parser/Makefile.am b/ACE/ACEXML/parser/parser/Makefile.am deleted file mode 100644 index f4440e30faf..00000000000 --- a/ACE/ACEXML/parser/parser/Makefile.am +++ /dev/null @@ -1,73 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -includedir = @includedir@/ACEXML/parser/parser -pkgconfigdir = @libdir@/pkgconfig - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.ACEXML_Parser.am - -if !BUILD_ACE_FOR_TAO - -lib_LTLIBRARIES = libACEXML_Parser.la - -libACEXML_Parser_la_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -DACEXML_PARSER_BUILD_DLL - -libACEXML_Parser_la_SOURCES = \ - Entity_Manager.cpp \ - Parser.cpp \ - ParserContext.cpp \ - ParserInternals.cpp - -libACEXML_Parser_la_LDFLAGS = \ - -release @ACE_VERSION_NAME@ - -libACEXML_Parser_la_LIBADD = \ - $(ACE_BUILDDIR)/ACEXML/common/libACEXML.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -nobase_include_HEADERS = \ - Entity_Manager.h \ - Entity_Manager.inl \ - Parser.h \ - Parser.inl \ - ParserContext.h \ - ParserContext.inl \ - ParserInternals.h \ - Parser_export.h - -pkgconfig_DATA = \ - ACEXML_Parser.pc - -CLEANFILES = \ - ACEXML_Parser.pc - -ACEXML_Parser.pc: ${top_builddir}/config.status ${srcdir}/ACEXML_Parser.pc.in - ${top_builddir}/config.status --file $@:${srcdir}/ACEXML_Parser.pc.in - -endif !BUILD_ACE_FOR_TAO - -EXTRA_DIST = \ - ACEXML_Parser.pc.in - - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ACEXML/parser/parser/Parser.cpp b/ACE/ACEXML/parser/parser/Parser.cpp deleted file mode 100644 index a7d4b8aab42..00000000000 --- a/ACE/ACEXML/parser/parser/Parser.cpp +++ /dev/null @@ -1,3352 +0,0 @@ -// $Id$ - -#include "ACEXML/parser/parser/Parser.h" - -#if !defined (__ACEXML_INLINE__) -# include "ACEXML/parser/parser/Parser.inl" -#endif /* __ACEXML_INLINE__ */ - -#include "ace/ACE.h" -#include "ACEXML/common/Transcode.h" -#include "ACEXML/common/AttributesImpl.h" -#include "ACEXML/common/StrCharStream.h" -#include "ACEXML/common/StreamFactory.h" -#include "ACEXML/parser/parser/ParserInternals.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_strings.h" - -static const ACEXML_Char default_attribute_type[] = ACE_TEXT ("CDATA"); -static const ACEXML_Char empty_string[] = { 0 }; - -const ACEXML_Char -ACEXML_Parser::simple_parsing_feature_[] = ACE_TEXT ("Simple"); - -const ACEXML_Char -ACEXML_Parser::namespaces_feature_[] = ACE_TEXT ("http://xml.org/sax/features/namespaces"); - -const ACEXML_Char -ACEXML_Parser::namespace_prefixes_feature_[] = ACE_TEXT ("http://xml.org/sax/features/namespace-prefixes"); - -const ACEXML_Char -ACEXML_Parser::validation_feature_[] = ACE_TEXT ("http://xml.org/sax/features/validation"); - -ACEXML_Parser::ACEXML_Parser (void) - : dtd_handler_ (0), - entity_resolver_ (0), - content_handler_ (0), - error_handler_ (0), - doctype_ (0), - current_ (0), - alt_stack_ (MAXPATHLEN), - nested_namespace_ (0), - ref_state_ (ACEXML_ParserInt::INVALID), - external_subset_ (0), - external_entity_ (0), - has_pe_refs_ (0), - standalone_ (0), - external_dtd_ (0), - internal_dtd_ (0), - simple_parsing_ (0), - validate_ (1), - namespaces_(1), - namespace_prefixes_ (0) -{ -} - -ACEXML_Parser::~ACEXML_Parser (void) -{ - -} - -int -ACEXML_Parser::initialize(ACEXML_InputSource* input) -{ - // Initialize namespace support - if (this->xml_namespace_.init() == -1) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Error initializing namespace support\n"))); - return -1; - } - for (int i = 0; i < 5; ++i) - { - if (this->predef_entities_.add_entity (ACEXML_ParserInt::predef_ent_[i], - ACEXML_ParserInt::predef_val_[i]) - != 0) - { - ACE_ERROR ((LM_DEBUG, - ACE_TEXT ("Error adding entity %s to Manager\n"), - ACEXML_ParserInt::predef_ent_[i])); - return -1; - } - } - return this->switch_input (input, input->getSystemId()); -} - -void -ACEXML_Parser::parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) -{ - ACEXML_InputSource* input = 0; - ACE_NEW (input, ACEXML_InputSource (systemId)); - this->parse (input ACEXML_ENV_ARG_PARAMETER); -} - -void -ACEXML_Parser::parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL) -{ - if (input == 0) - { - this->fatal_error(ACE_TEXT ("Invalid input source") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - if (this->content_handler_ == 0) - { - this->fatal_error (ACE_TEXT ("No content handlers defined. Exiting..") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - - if (this->validate_ && this->dtd_handler_ == 0) - { - this->fatal_error (ACE_TEXT ("No DTD handlers defined. Exiting..") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - - - if (this->initialize(input) == -1) - { - this->fatal_error (ACE_TEXT ("Failed to initialize parser state") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - // Set up Locator. - this->content_handler_->setDocumentLocator (this->current_->getLocator()); - - int xmldecl_defined = 0; - ACEXML_Char fwd = this->get(); // Consume '<' - if (fwd == '<' && this->peek() == '?') - { - this->get(); // Consume '?' - fwd = this->peek(); - if (fwd == 'x' && !xmldecl_defined) - { - this->parse_xml_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK; - xmldecl_defined = 1; - } - } - // We need a XMLDecl in a Valid XML document - 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; - } - this->content_handler_->startDocument (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK; - - int doctype_defined = 0; - for (int prolog_done = 0; prolog_done == 0; ) - { - // Expect a '<' only if we have encountered a XMLDecl, or we are - // looping through Misc blocks. - if (xmldecl_defined) - { - if (this->skip_whitespace () != '<') - { - this->fatal_error (ACE_TEXT ("Expecting '<' at the beginning of ") - ACE_TEXT ("Misc section") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - fwd = this->peek(); - } - switch (fwd) - { - case '?': - this->get(); - this->parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK; - xmldecl_defined = 1; - break; - case '!': - this->get(); - fwd = this->peek (); - 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; - doctype_defined = 1; - // Now that we have a DOCTYPE Decl defined, we shouldn't - // accept XML Decl any longer - xmldecl_defined = 1; - } - else if (fwd == 'D') - { - this->fatal_error (ACE_TEXT ("Duplicate DOCTYPE declaration") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - else if (fwd == '-') // COMMENT - { - if (this->parse_comment () < 0) - { - this->fatal_error(ACE_TEXT ("Invalid comment in document") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - xmldecl_defined = 1; - } - break; - case 0: - this->fatal_error (ACE_TEXT ("Unexpected end-of-file") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - default: // Root element begins - prolog_done = 1; - break; - } - } - - if (this->validate_ && !doctype_defined) - { - this->warning (ACE_TEXT ("No doctypeDecl in valid document") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - - // Now parse root element. - this->parse_element (1 ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - - this->content_handler_->endDocument (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK; - - // Reset the parser state - this->reset(); - -} - -int -ACEXML_Parser::parse_doctypedecl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - 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); - } - - 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); - } - - 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); - } - int count = this->skip_whitespace_count (&nextch); - - if (nextch == 'S' || nextch == 'P') // ExternalID defined - { - 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); - } - this->external_dtd_ = 1; - this->parse_external_dtd (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - - nextch = this->skip_whitespace (); - switch (nextch) - { - case '[': - this->internal_dtd_ = 1; // Internal DTD definition - this->parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - return 0; - case '0': - this->fatal_error (ACE_TEXT ("Unexpected end-of-file") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - default: - break; - } - - if (this->skip_whitespace() != '>') - { - this->fatal_error(ACE_TEXT ("Expecting '>' at end of doctypedecl") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - return 0; -} - -int -ACEXML_Parser::parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_DECL) -{ - this->ref_state_ = ACEXML_ParserInt::IN_INT_DTD; - ACEXML_Char nextch = this->skip_whitespace (); - do { - switch (nextch) - { - case '<': - nextch = this->get(); - switch (nextch) - { - case '!': - this->parse_markup_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - case '?': - this->parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - default: - this->fatal_error (ACE_TEXT ("Invalid internal subset") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - } - break; - case '%': - this->has_pe_refs_ = 1; - this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - break; - case 0: - this->pop_context (0 ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - default: - this->fatal_error (ACE_TEXT ("Invalid content in internal subset") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - }; - nextch = this->skip_whitespace (); - } while (1); - - ACE_NOTREACHED (return -1); -} - -int -ACEXML_Parser::parse_external_dtd (ACEXML_ENV_SINGLE_ARG_DECL) -{ - 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) - { - this->fatal_error (ACE_TEXT ("Error in parsing ExternalID") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - if (this->validate_) - { - ACEXML_Char* uri = this->normalize_systemid (systemId); - ACE_Auto_Basic_Array_Ptr cleanup_uri (uri); - ACEXML_InputSource* ip = 0; - if (this->entity_resolver_) - { - ip = this->entity_resolver_->resolveEntity (publicId, - (uri ? uri : systemId) - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - if (ip) - { - if (this->switch_input (ip, (uri ? uri : systemId), publicId) != 0) - return -1; - } - else - { - 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); - } - if (this->switch_input (cstream, systemId, publicId) != 0) - return -1; - } - this->parse_external_subset (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - return 0; -} - - -int -ACEXML_Parser::parse_external_subset (ACEXML_ENV_SINGLE_ARG_DECL) -{ - this->ref_state_ = ACEXML_ParserInt::IN_EXT_DTD; - this->external_subset_ = 1; - size_t nrelems = 0; - ACEXML_Char nextch = this->skip_whitespace(); - do { - switch (nextch) - { - case '<': - nextch = this->get(); - switch (nextch) - { - case '!': - nextch = this->peek(); - if (nextch == '[') - this->parse_conditional_section (ACEXML_ENV_SINGLE_ARG_PARAMETER); - else - this->parse_markup_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - case '?': - nextch = this->peek(); - if (nextch == 'x') - this->parse_text_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - else - this->parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - default: - this->fatal_error (ACE_TEXT ("Invalid content in external DTD") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - break; - case '%': - this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - case 0: - nrelems = this->pop_context (0 ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - nextch = this->skip_whitespace(); - } while (1); -} - -int -ACEXML_Parser::parse_conditional_section (ACEXML_ENV_SINGLE_ARG_DECL) -{ - 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); - } - ch = this->skip_whitespace(); - if (ch == '%') - { - this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - ch = this->skip_whitespace(); - } - if (ch == 'I') - { - ch = this->get(); - switch (ch) - { - case 'N': - 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); - } - include = 1; - break; - case 'G': - 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); - } - include = 0; - break; - default: - this->fatal_error (ACE_TEXT ("Invalid conditionalSect") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - 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); - } - } - else - { - this->fatal_error (ACE_TEXT ("Invalid conditionalSect") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - if (this->skip_whitespace() != '[') - { - this->fatal_error (ACE_TEXT ("Expecting '[' in conditionalSect") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - if (include) - this->parse_includesect (ACEXML_ENV_SINGLE_ARG_PARAMETER); - else - this->parse_ignoresect (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - return 0; -} - -int -ACEXML_Parser::parse_ignoresect (ACEXML_ENV_SINGLE_ARG_DECL) -{ - ACEXML_Char nextch = this->skip_whitespace(); - int count = 0; - int done = 0; - do { - switch (nextch) - { - case '<': - if (this->peek() == '!') - { - this->get(); - if (this->peek() == '[') - { - this->get(); - count++; - } - } - break; - case ']': - if (this->peek() == ']') - { - this->get(); - if (this->peek() == '>') - { - this->get(); - if (count) - { - --count; - break; - } - done = 1; - } - } - break; - case 0: // [VC: Proper Conditional Section/PE Nesting] - if (count != 0) - { - this->fatal_error (ACE_TEXT ("Invalid Conditional Section/PE ") - ACE_TEXT ("Nesting ") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - default: - break; - } - if (done) - break; - nextch = this->get(); - } while (1); - - return 0; -} - -int -ACEXML_Parser::parse_includesect (ACEXML_ENV_SINGLE_ARG_DECL) -{ - ACEXML_Char nextch = this->skip_whitespace(); - do { - switch (nextch) - { - case '<': - nextch = this->get(); - switch (nextch) - { - case '!': - nextch = this->peek(); - if (nextch == '[') - this->parse_conditional_section (ACEXML_ENV_SINGLE_ARG_PARAMETER); - else - this->parse_markup_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - case '?': - nextch = this->peek(); - this->parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - default: - this->fatal_error (ACE_TEXT ("Invalid includeSect") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - break; - case '%': - this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - case ']': - if (this->peek() == ']') - { - nextch = this->get(); - if (this->peek() == '>') - { - nextch = this->get(); - return 0; - } - } - default: - this->fatal_error (ACE_TEXT ("Invalid includeSect") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - nextch = this->skip_whitespace(); - } while (1); -} - -int -ACEXML_Parser::parse_markup_decl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - ACEXML_Char nextch = this->peek (); - switch (nextch) - { - case 'E': // An ELEMENT or ENTITY decl - this->get (); - nextch = this->peek (); - switch (nextch) - { - case 'L': - this->parse_element_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - case 'N': - this->parse_entity_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - default: - this->fatal_error(ACE_TEXT ("Expecting keyword ELEMENT/ENTITY") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - break; - - case 'A': // An ATTLIST decl - this->parse_attlist_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - - case 'N': // A NOTATION decl - this->parse_notation_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - - case '-': // a comment. - if (this->parse_comment () < 0) - { - this->fatal_error(ACE_TEXT ("Invalid comment") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - 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); - default: - this->fatal_error (ACE_TEXT ("Invalid markupDecl") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - return 0; -} - -int -ACEXML_Parser::parse_external_id (ACEXML_Char *&publicId, - ACEXML_Char *&systemId - ACEXML_ENV_ARG_DECL) -{ - publicId = systemId = 0; - ACEXML_Char nextch = this->get (); - ACEXML_Char fwd = 0; - switch (nextch) - { - case 'S': // External SYSTEM id. - 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); - } - if (this->parse_system_literal (systemId) != 0) - { - this->fatal_error(ACE_TEXT ("Invalid systemLiteral") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - 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); - } - if (this->parse_pubid_literal (publicId) != 0) - { - this->fatal_error(ACE_TEXT ("Invalid PubidLiteral") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - 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); - } - } - 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); - } - break; - default: - this->fatal_error(ACE_TEXT ("Invalid system/public Literal") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - return 0; -} - -ACEXML_Char* -ACEXML_Parser::normalize_systemid (const ACEXML_Char* systemId) -{ - if (ACE_OS::strstr (systemId, ACE_TEXT("ftp://")) != 0 || - ACE_OS::strstr (systemId, ACE_TEXT ("http://")) != 0 || - ACE_OS::strstr (systemId, ACE_TEXT ("file://")) != 0) - return 0; - else - { - ACEXML_Char* normalized_uri = 0; - const ACEXML_Char* baseURI = this->current_->getLocator()->getSystemId(); - ACE_ASSERT (baseURI); - const ACEXML_Char* temp = 0; - if (ACE_OS::strstr (baseURI, ACE_TEXT ("http://")) != 0) - // baseURI is a HTTP URL and systemId is relative. Note that this - // is not compliant with RFC2396. Caveat Emptor ! - temp = ACE_OS::strrchr (baseURI, '/'); - else - // baseURI is a local file and systemId is relative - // Unlike the HTTP one, this will work always. - temp = ACE_OS::strrchr (baseURI,ACE_DIRECTORY_SEPARATOR_CHAR); - if (temp) - { - size_t pos = temp - baseURI + 1; - size_t len = pos + ACE_OS::strlen (systemId) + 1; - ACE_NEW_RETURN (normalized_uri, ACEXML_Char[len], 0); - ACE_OS::strncpy (normalized_uri, baseURI, pos); - ACE_OS::strcpy (normalized_uri + pos, systemId); - return normalized_uri; - } - return 0; - } -} - -void -ACEXML_Parser::parse_element (int is_root ACEXML_ENV_ARG_DECL) -{ - // 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); - 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); - return ; - } - ACEXML_AttributesImpl attributes; - ACEXML_Char ch; - int ns_flag = 0; // Push only one namespace context onto the stack - // if there are multiple namespaces declared. - - const ACEXML_Char* ns_uri = 0; - const ACEXML_Char* ns_lname = 0; // namespace URI and localName - for (int start_element_done = 0; start_element_done == 0;) - { - ch = this->skip_whitespace (); - - switch (ch) - { - case 0: - this->fatal_error(ACE_TEXT ("Internal Parser error") - ACEXML_ENV_ARG_PARAMETER); - return; - case '/': - if (this->get () != '>') - { - this->fatal_error(ACE_TEXT ("Expecting '>' at end of element ") - ACE_TEXT ("definition") - ACEXML_ENV_ARG_PARAMETER); - 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; - 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; - this->prefix_mapping (this->xml_namespace_.getPrefix(ns_uri), - ns_uri, 0 - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - if (ns_flag) - { - this->xml_namespace_.popContext (); - this->nested_namespace_--; - } - return; - case '>': - 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; - this->content_handler_->startElement(ns_uri, ns_lname, startname, - &attributes - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - start_element_done = 1; - break; - default: - ACEXML_Char *attvalue = 0; - ACEXML_Char *attname = this->parse_name (ch); - - if (attname == 0 || - this->skip_equal () != 0 || - this->parse_attvalue (attvalue ACEXML_ENV_ARG_PARAMETER) != 0) - { - this->fatal_error(ACE_TEXT ("Error reading attribute value") - ACEXML_ENV_ARG_PARAMETER); - return; - } - - // Handling new namespace if any. Notice that the order of - // namespace declaration does matter. - if (ACE_OS::strncmp (attname, ACE_TEXT("xmlns"), 5) == 0) - { - if (this->namespaces_) - { - if (!ns_flag) - { - this->xml_namespace_.pushContext (); - this->nested_namespace_++; - ns_flag = 1; - } - - ACEXML_Char* name = ACE_OS::strchr (attname, ':'); - const ACEXML_Char* ns_name = (name == 0)? - empty_string:name+1; - if (this->xml_namespace_.declarePrefix (ns_name, - attvalue) == -1) - { - this->fatal_error(ACE_TEXT ("Duplicate definition of ") - ACE_TEXT ("prefix") - ACEXML_ENV_ARG_PARAMETER); - return; - } - } - if (this->namespace_prefixes_) - { - // Namespace_prefixes_feature_ is required. So add the - // xmlns:foo to the list of attributes. - if (attributes.addAttribute (ACE_TEXT (""), ACE_TEXT (""), - attname, - default_attribute_type, - attvalue) == -1) - { - 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); - return; - } - } - if (!this->namespaces_ && !this->namespace_prefixes_) - { - this->fatal_error(ACE_TEXT ("One of namespaces or ") - ACE_TEXT ("namespace_prefixes should be") - ACE_TEXT (" declared") - ACEXML_ENV_ARG_PARAMETER); - return; - } - } - else - { - const ACEXML_Char *uri, *lName; - this->xml_namespace_.processName (attname, uri, lName, 1); - if (attributes.addAttribute (uri, lName, attname, - default_attribute_type, - attvalue) == -1) - { - this->fatal_error(ACE_TEXT ("Duplicate attribute ") - ACE_TEXT ("definition") - ACEXML_ENV_ARG_PARAMETER); - return; - } - } - break; - } - } - if (this->parse_content (startname, ns_uri, ns_lname, ns_flag - ACEXML_ENV_ARG_PARAMETER) != 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) -{ - ACEXML_Char *cdata; - size_t cdata_length = 0; - - // Parse element contents. - while (1) - { - ACEXML_Char ch = this->get (); - switch (ch) - { - case 0: - this->pop_context (1 ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-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->obstack_.unwind (cdata); - cdata_length = 0; - } - ch = this->peek(); - switch (ch) - { - case '!': // a comment or a CDATA section. - this->get (); // consume '!' - ch = this->peek (); - if (ch == '-') // a comment - { - if (this->parse_comment () < 0) - { - this->fatal_error(ACE_TEXT ("Invalid comment in ") - ACE_TEXT ("document") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - } - else if (ch == '[') // a CDATA section. - { - this->parse_cdata (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - else - { - this->fatal_error(ACE_TEXT ("Expecting a CDATA section ") - ACE_TEXT ("or a comment section") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - break; - case '?': // a PI. - this->get(); // consume the '?' - this->parse_processing_instruction - (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - case '/': // an ETag. - { - this->get (); // consume '/' - ACEXML_Char* endname = this->parse_name (); - if (endname == 0 || - 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); - } - if (this->skip_whitespace () != '>') - { - this->fatal_error(ACE_TEXT ("Expecting '>' at end ") - ACE_TEXT ("of element") - ACEXML_ENV_ARG_PARAMETER); - return -1; - } - this->content_handler_->endElement (ns_uri, ns_lname, - endname - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - this->prefix_mapping (this->xml_namespace_.getPrefix(ns_uri), - ns_uri, 0 - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - if (this->namespaces_ && ns_flag) - { - 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); - break; - } - break; - case '&': - if (this->peek () == '#') - { - ACEXML_Char buf[7]; - size_t len = 0; - do - { - len = sizeof (buf); - 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); - } - } while (buf[0] == '&' && this->peek() == '#'); - for (size_t j = 0; j < len; ++j) - this->obstack_.grow (buf[j]); - cdata_length += len; - } - else - { - this->ref_state_ = ACEXML_ParserInt::IN_CONTENT; - int length = this->parse_entity_reference(ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - if (length == 1) - cdata_length++; - } - break; - case '\x20': case '\x0D': case '\x0A': case '\x09': -// if (this->validate_) -// { -// // Flush out any non-whitespace characters -// 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->obstack_.unwind (cdata); -// cdata_length = 0; -// } -// ++cdata_length; -// this->obstack_.grow (ch); -// while (1) -// { -// ch = this->peek(); -// if (ch == '\x20' || ch == '\x0D' || ch == '\x0A' || -// ch == '\x09') -// { -// ch = this->get(); -// this->obstack_.grow (ch); -// continue; -// } -// break; -// } -// cdata = this->obstack_.freeze (); -// this->content_handler_->ignorableWhitespace (cdata, 0, -// cdata_length -// ACEXML_ENV_ARG_PARAMETER); -// ACEXML_CHECK_RETURN (-1); -// this->obstack_.unwind (cdata); -// cdata_length = 0; -// break; -// } - // Fall thru... - default: - ++cdata_length; - this->obstack_.grow (ch); - } - } - ACE_NOTREACHED (return 0;) -} - - -int -ACEXML_Parser::parse_cdata (ACEXML_ENV_SINGLE_ARG_DECL) -{ - 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); - } - - ACEXML_Char ch; - int datalen = 0; - ACEXML_Char *cdata = 0; - while (1) - { - ch = this->get (); - // Anything goes except the sequence "]]>". - if (ch == ']' && this->peek() == ']') - { - ACEXML_Char temp = ch; - ch = this->get(); - if (ch == ']' && this->peek() == '>') - { - ch = this->get(); - cdata = this->obstack_.freeze (); - this->content_handler_->characters (cdata, 0, datalen - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - this->obstack_.unwind(cdata); - return 0; - } - this->obstack_.grow (temp); - ++datalen; - } - this->obstack_.grow (ch); - ++datalen; - }; - ACE_NOTREACHED (return -1); -} - - -int -ACEXML_Parser::parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - ACEXML_Char nextch = 0; - - if ((this->parse_token (ACE_TEXT ("NTITY")) < 0) || - 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); - } - - int is_GEDecl = 1; - if (nextch == '%') // This is a PEDecl. - { - is_GEDecl = 0; - this->get (); // consume the '%' - 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); - } - } - - 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); - } - - 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); - } - int retval = 0; - if (nextch == '\'' || nextch == '"') - { - ACEXML_Char *entity_value = 0; - if (this->parse_entity_value (entity_value - ACEXML_ENV_ARG_PARAMETER) != 0) - { - this->fatal_error(ACE_TEXT ("Invalid EntityValue") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - if (is_GEDecl) - retval = this->internal_GE_.add_entity (entity_name, - entity_value); - else - retval = this->internal_PE_.add_entity (entity_name, - entity_value); - 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); - } - else if (retval == 1) - { - this->warning (ACE_TEXT ("Duplicate entity found") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - } - else - { - ACEXML_Char *systemid, *publicid; - - this->parse_external_id (publicid, systemid - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - if (systemid == 0) - { - this->fatal_error(ACE_TEXT ("Invalid SystemLiteral") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - 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); - } - - 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); - } - - ACEXML_Char *ndata = this->parse_name (); - if (this->validate_) // [VC: Notation Declared] - { - if (!this->notations_.resolve_entity (ndata)) - { - this->fatal_error (ACE_TEXT ("Undeclared Notation name") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - this->dtd_handler_->unparsedEntityDecl(entity_name, publicid, - systemid, ndata - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - } - else - { - if (is_GEDecl) - retval = this->external_GE_.add_entity (entity_name, - systemid); - else - 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); - } - else if (retval == 1) - this->warning(ACE_TEXT ("Duplicate external entity") - ACEXML_ENV_ARG_PARAMETER); - if (is_GEDecl) - retval = this->external_GE_.add_entity (entity_name, - publicid); - else - 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); - } - else if (retval == 1) - this->warning (ACE_TEXT ("Duplicate entity definition") - ACEXML_ENV_ARG_PARAMETER); - } - } - - // 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); - } - return 0; -} - -int -ACEXML_Parser::parse_attlist_decl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - if (this->parse_token (ACE_TEXT ("ATTLIST")) < 0) - { - this->fatal_error(ACE_TEXT ("Expecting keyword 'ATTLIST'") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - int count = check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - if (!count) - { - this->fatal_error(ACE_TEXT ("Expecting space between ATTLIST and ") - ACE_TEXT ("element name") ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - - 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); - } - 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) - && !count) - this->fatal_error(ACE_TEXT ("Expecting space between element ") - ACE_TEXT ("name and AttDef") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - this->skip_whitespace_count (&fwd); - if (fwd == '>') - break; - - count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - - this->parse_attname (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - - count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - if (!count) - { - this->fatal_error(ACE_TEXT ("Expecting space between AttName and ") - ACE_TEXT ("AttType") ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - this->parse_atttype (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - - count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - if (!count) - { - this->fatal_error(ACE_TEXT ("Expecting space between AttType and") - ACE_TEXT (" DefaultDecl") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - this->parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - - count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - this->skip_whitespace_count(&fwd); - } - this->get (); // consume closing '>' - return 0; -} - - -int -ACEXML_Parser::check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL) -{ - ACEXML_Char fwd = '\xFF'; - // Skip any leading whitespaces and store the number of such chars skipped - int count = 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); - fwd = this->peek(); - } - if (fwd == '%') - { - this->get(); // Consume the % - if (this->external_subset_) - { - this->parse_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - else - { - this->fatal_error(ACE_TEXT ("Illegal PERef within markupDecl") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - } - if (count) - { - // We have atleast one whitespace. So just skip any more whitespaces - // and return the count - this->skip_whitespace_count(); - return count; - } - return this->skip_whitespace_count(); -} - -ACEXML_Char* -ACEXML_Parser::parse_attname (ACEXML_ENV_SINGLE_ARG_DECL) -{ - // 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); - } - return att_name; -} - -int -ACEXML_Parser::parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - // DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue) - ACEXML_Char nextch = this->peek (); - ACEXML_Char *fixed_attr = 0; - switch (nextch) - { - case '#': - this->get (); // consume the '#' - switch (this->get ()) - { - 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); - } - // We now know this attribute is required - // @@ Set up the validator as such. - break; - 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); - } - // We now know this attribute is implied. - // @@ Set up the validator as such. - break; - case 'F': - 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); - } - // We now know this attribute is fixed. - if (this->parse_attvalue (fixed_attr - ACEXML_ENV_ARG_PARAMETER) != 0) - { - this->fatal_error(ACE_TEXT ("Invalid Default AttValue") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - // @@ set up validator - break; - default: - this->fatal_error (ACE_TEXT ("Invalid DefaultDecl") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - break; - case '\'': - case '"': - if (this->parse_attvalue (fixed_attr ACEXML_ENV_ARG_PARAMETER) != 0) - { - this->fatal_error(ACE_TEXT ("Invalid AttValue") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - // @@ set up validator - break; - default: - this->fatal_error (ACE_TEXT ("Invalid DefaultDecl") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - } - return 0; -} - -int -ACEXML_Parser::parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL) -{ - ACEXML_Char ch = this->get(); - switch (ch) - { - case 'I': - if (this->get () == 'D') - { - if (this->peek() != 'R' && this->is_whitespace (this->peek())) - { - // We have successfully identified the type of the - // attribute as ID - // @@ Set up validator as such. - break; - } - if (this->parse_token (ACE_TEXT ("REF")) == 0) - { - if (this->peek() != 'S' && this->is_whitespace (this->peek())) - { - // We have successfully identified the type of - // the attribute as IDREF - // @@ Set up validator as such. - break; - } - else if (this->peek() == 'S' - && this->get() // consume the 'S' - && this->is_whitespace (this->peek())) - { - // We have successfully identified the type of - // the attribute as IDREFS - // @@ Set up validator as such. - break; - } - } - } - // 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); - case 'E': // ENTITY or ENTITIES - if (this->parse_token (ACE_TEXT ("NTIT")) == 0) - { - ACEXML_Char nextch = this->get (); - if (nextch == 'Y') - { - // We have successfully identified the type of - // the attribute as ENTITY - // @@ Set up validator as such. - } - else if (this->parse_token (ACE_TEXT ("IES")) == 0) - { - // We have successfully identified the type of - // the attribute as ENTITIES - // @@ Set up validator as such. - } - if (this->is_whitespace (this->peek())) - { - // success - break; - } - } - // 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); - case 'M': - if (this->parse_token (ACE_TEXT ("TOKEN")) == 0) - { - if (this->is_whitespace (this->peek())) - { - // We have successfully identified the type of - // the attribute as NMTOKEN - // @@ Set up validator as such. - break; - } - else if (this->peek() == 'S' - && this->get() - && this->is_whitespace (this->peek())) - { - // We have successfully identified the type of - // the attribute as NMTOKENS - // @@ Set up validator as such. - break; - } - } - this->fatal_error(ACE_TEXT ("Expecting keyword `NMTOKEN' or `NMTO") - ACE_TEXT ("KENS'") ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - default: - this->fatal_error (ACE_TEXT ("Internal Parser Error") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - } - return 0; -} - - -/** - * AttType ::= StringType | TokenizedType | EnumeratedType - * StringType ::= 'CDATA' - * TokenizedType ::= 'ID' [VC: ID] - * [VC: One ID per Element Type] - * [VC: ID Attribute Default] - * | 'IDREF' [VC: IDREF] - * | 'IDREFS' [VC: IDREF] - * | 'ENTITY' [VC: Entity Name] - * | 'ENTITIES' [VC: Entity Name] - * | 'NMTOKEN' [VC: Name Token] - * | 'NMTOKENS' - * - * EnumeratedType ::= NotationType | Enumeration - * NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')' - * [VC: Notation Attributes] - * [VC: One Notation Per Element Type] - * [VC: No Notation on Empty Element] - * Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')' - * [VC: Enumeration] - */ -int -ACEXML_Parser::parse_atttype (ACEXML_ENV_SINGLE_ARG_DECL) -{ - ACEXML_Char nextch = this->peek(); - switch (nextch) - { - 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); - } - // 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); - break; - case 'N': // NMTOKEN, NMTOKENS, or NOTATION - this->get(); - nextch = this->peek(); - 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); - } - if (nextch == 'M') - { - this->parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - int count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - if (!count) - { - this->fatal_error (ACE_TEXT ("Expecting space between keyword ") - ACE_TEXT ("NOTATION and '('") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - if (this->get () != '(') - { - this->fatal_error(ACE_TEXT ("Expecting '(' in NotationType") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - // @@ get another notation name, set up validator as such - this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - } - break; - case '(': // EnumeratedType - Enumeration - this->get(); - this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - // @@ get another nmtoken, set up validator as such - this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - break; - default: - { - this->fatal_error(ACE_TEXT ("Invalid AttType") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - ACE_NOTREACHED (break); - } - return 0; -} - -int -ACEXML_Parser::parse_notation_decl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - if (this->parse_token (ACE_TEXT ("NOTATION")) < 0) - { - this->fatal_error(ACE_TEXT ("Expecting Keyword 'NOTATION'") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - int count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - 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); - } - count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - - ACEXML_Char *systemid, *publicid; - - // Gross hack but otherwise we need to go around a lot of loops to parse, - // When the ExternalID starts with 'PUBLIC' we cannot distinguish a - // PublicId from a ExternalID by looking using a one character read-ahead - 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); - // Restore the original value. - this->ref_state_ = temp; - - // [VC: Unique Notation Name] - 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); - } - 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); - } - } - - if (this->skip_whitespace() != '>') - { - this->fatal_error(ACE_TEXT ("Expecting '>' at end of NotationDecl") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - - if (this->validate_ && this->dtd_handler_) - { - this->dtd_handler_->notationDecl (notation, - publicid, - systemid ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - return 0; -} - -int -ACEXML_Parser::parse_element_decl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - if (this->parse_token (ACE_TEXT ("LEMENT")) < 0) - { - this->fatal_error (ACE_TEXT ("Expecting keyword ELEMENT") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - int count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - 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); - } - count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - ACEXML_Char nextch = this->peek(); - switch (nextch) - { - 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); - } - 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); - } - break; - case '(': // children - this->parse_children_definition (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - default: // error - this->fatal_error (ACE_TEXT ("Invalid element definition") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - count = this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - if (this->skip_whitespace () != '>') - { - this->fatal_error (ACE_TEXT ("Expecting '>' after element defintion") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - return 0; -} - - -int -ACEXML_Parser::parse_children_definition (ACEXML_ENV_SINGLE_ARG_DECL) -{ - this->get (); // consume the '(' - this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - int subelement_number = 0; - ACEXML_Char nextch = this->peek(); - switch (nextch) - { - 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->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - nextch = this->get(); - while (nextch == '|') - { - this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - 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); - } - // @@ close the element definition in the validator. - break; - default: - int status = this->parse_child (1 ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - if (status != 0) - return -1; - } - - // Check for trailing '?', '*', '+' - nextch = this->peek (); - switch (nextch) - { - case '?': - // @@ Consume the character and inform validator as such, - this->get (); - break; - case '*': - // @@ Consume the character and inform validator as such, - this->get (); - break; - case '+': - // @@ Consume the character and inform validator as such, - this->get (); - break; - default: - break; // not much to do. - } - - return 0; -} - -int -ACEXML_Parser::parse_child (int skip_open_paren ACEXML_ENV_ARG_DECL) -{ - // 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); - } - - ACEXML_Char node_type = 0; - ACEXML_Char nextch; - - do { - this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - break; - default: - this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - // 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); - } - // Check for trailing '?', '*', '+' - nextch = this->peek (); - switch (nextch) - { - case '?': - // @@ Consume the character and inform validator as such, - this->get (); - break; - case '*': - // @@ Consume the character and inform validator as such, - this->get (); - break; - case '+': - // @@ Consume the character and inform validator as such, - this->get (); - break; - default: - break; // not much to do. - } - - // @@ Inform validator of the new element here. - break; - } - this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - this->skip_whitespace_count (&nextch); - switch (nextch) - { - case '|': - switch (node_type) - { - case 0: - node_type = '|'; - // @@ inform validator of this new type?? - 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); - } - break; - case ',': - switch (node_type) - { - case 0: - node_type = ','; - // @@ inform validator of this new type?? - 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); - } - 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); - } - 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->skip_whitespace_count (&nextch); - } while (nextch != ')'); - - // Check for trailing '?', '*', '+' - nextch = this->peek (); - switch (nextch) - { - case '?': - // @@ Consume the character and inform validator as such, - this->get (); - break; - case '*': - // @@ Consume the character and inform validator as such, - this->get (); - break; - case '+': - // @@ Consume the character and inform validator as such, - this->get (); - break; - default: - break; // not much to do. - } - - - return 0; -} - -int -ACEXML_Parser::parse_char_reference (ACEXML_Char *buf, size_t& len) -{ - if (len < 7) // Max size of a CharRef plus terminating '\0' - return -1; - ACEXML_Char ch = this->get(); - if (ch != '#') // Internal error. - return -1; - int hex = 0; - ch = this->peek(); - if (ch == 'x') - { - hex = 1; - this->get (); - } - size_t i = 0; - int more_digit = 0; - ch = this->get (); - for ( ; i < len && - (this->isNormalDigit (ch) || (hex ? this->isCharRef(ch): 0)); ++i) - { - buf[i] = ch; - ch = this->get(); - ++more_digit; - } - if (ch != ';' || !more_digit) - return -1; - buf[i] = 0; - ACEXML_UCS4 sum = (ACEXML_UCS4) ACE_OS::strtol (buf, 0, (hex ? 16 : 10)); - // [WFC: Legal Character] - if (!this->isChar (sum)) - return -1; - int clen; -#if defined (ACE_USES_WCHAR) -# if (ACE_SIZEOF_WCHAR == 2) // UTF-16 - if ((clen = ACEXML_Transcoder::ucs42utf16 (sum, buf, len)) < 0) - return -1; -# elif (ACE_SIZEOF_WCHAR == 4) // UCS 4 - buf [0] = sum; - buf [1] = 0; - clen = 2; -# endif /* ACE_SIZEOF_WCHAR */ - -#else // or UTF-8 - if ((clen = ACEXML_Transcoder::ucs42utf8 (sum, buf, len)) < 0) - return -1; -#endif - buf [clen] = 0; - len = clen; - return 0; -} - -ACEXML_Char* -ACEXML_Parser::parse_reference_name (void) -{ - ACEXML_Char ch = this->get (); - if (!this->isLetter (ch) && (ch != '_' || ch != ':')) - return 0; - while (ch) { - this->alt_stack_.grow (ch); - ch = this->peek (); - if (!this->isNameChar (ch)) - break; - ch = this->get (); - }; - if (ch != ';') - return 0; - ch = this->get(); - return this->alt_stack_.freeze (); -} - -int -ACEXML_Parser::parse_attvalue (ACEXML_Char *&str ACEXML_ENV_ARG_DECL) -{ - ACEXML_Char quote = this->get (); - if (quote != '\'' && quote != '"') // Not a quoted string. - return -1; - ACEXML_Char ch = this->get (); - while (1) - { - if (ch == quote) - { - ACEXML_Char* temp = this->obstack_.freeze (); - // If the attribute type is not CDATA, then the XML processor - // must further process the normalized attribute value by - // discarding any leading and trailing space (#x20) characters, - // and by replacing sequences of space (#x20) characters by a - // single space (#x20) character. - - // if (atttype != CDATA) { - // ACEXML_Char* start = temp; - // ACEXML_Char* end = temp + ACE_OS::strlen (temp); - // while (*start == '\x20') - // start++; - // if (start == end) // String which is all spaces - // str = start; - // while (*start != 0) - // { - // this->obstack_.grow (*start); - // start++; - // while (*start == '\x20') - // start++; - // } - // str = this->obstack_.freeze(); - // } - str = temp; - return 0; - } - switch (ch) - { - case '&': - if (this->peek () == '#') - { - ACEXML_Char buf[7]; - size_t len = sizeof (buf); - 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); - } - for (size_t j = 0; j < len; ++j) - this->obstack_.grow (buf[j]); - } - else - { - this->ref_state_ = ACEXML_ParserInt::IN_ATT_VALUE; - this->parse_entity_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - 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); - break; - case 0: - this->pop_context (1 ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - default: - this->obstack_.grow (ch); - break; - } - ch = this->get(); - } -} - - - -int -ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL) -{ - 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); - } - - // [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); - } - // Look in the internal general entities set first. - const ACEXML_Char* entity = this->internal_GE_.resolve_entity(replace); - - // Look in the predefined entities. - if (!entity) - { - entity = this->predef_entities_.resolve_entity (replace); - if (entity) - { - // Special case to return the length in case of predefined entities - this->obstack_.grow (*entity); - return 1; - } - } - - if (!this->validate_) - { - if (this->standalone_) - { - // [WFC: Entity Declared] - this->fatal_error (ACE_TEXT ("Undeclared Entity reference") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - else - { - this->content_handler_->skippedEntity (replace - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - return 0; - } - } - - // No match in internal subset - if (!entity - // or No DTDs - && (!(this->internal_dtd_ || this->external_dtd_) - // or Only Internal DTD and no parameter entity references - || (this->internal_dtd_ && !this->external_dtd_ - && !this->has_pe_refs_) - // or Standalone = 'yes' - || this->standalone_)) - { - // [WFC: Entity Declared] - this->fatal_error (ACE_TEXT ("Undeclared Entity reference") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - - ACEXML_Char* systemId = 0; - ACEXML_Char* publicId = 0; - if (!entity) - { - 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); - } - 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->external_entity_++; - } - - - // [WFC: No Recursion] - ACEXML_Char* ref_name = replace; - int present = this->GE_reference_.insert (ref_name); - if (present == 1 || present == -1) - { - 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); - } - - if (!this->external_entity_) - { - ACEXML_StrCharStream* str = 0; - ACE_NEW_RETURN (str, ACEXML_StrCharStream, -1); - if (str->open (entity, replace) < 0 - || 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); - } - return 0; - } - else - { - ACEXML_Char* uri = this->normalize_systemid (systemId); - ACE_Auto_Basic_Array_Ptr cleanup_uri (uri); - ACEXML_InputSource* ip = 0; - if (this->entity_resolver_) - { - ip = this->entity_resolver_->resolveEntity (publicId, - (uri ? uri : systemId) - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - 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); - } - return 0; - } - } - 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); - } - if (this->switch_input (cstream, systemId, publicId) != 0) - { - this->fatal_error (ACE_TEXT ("Internal Parser Error") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - } - return 0; -} - -int -ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL) -{ - 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); - } - - // Look in the internal general entities set first. - const ACEXML_Char* entity = this->internal_PE_.resolve_entity(replace); - - if (!entity && // No match in internal - (!this->external_dtd_ || // or No External DTDs - this->standalone_)) // or Standalone - { - // [VC: Entity Declared] - this->fatal_error (ACE_TEXT ("Undefined Internal PEReference") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - - ACEXML_Char* systemId = 0; - ACEXML_Char* publicId = 0; - if (!entity && this->validate_) - { - 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->external_entity_++; - } - - // [WFC: No Recursion] - ACEXML_Char* ref_name = replace; - int present = this->PE_reference_.insert (ref_name); - if (present == 1 || present == -1) - { - 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); - } - - if (entity && !this->external_entity_) - { - ACEXML_StrCharStream* sstream = 0; - ACEXML_String str (entity); - if (this->ref_state_ != ACEXML_ParserInt::IN_ENTITY_VALUE) - { - const ACEXML_Char* ch = ACE_TEXT (" "); - str = ch + str + ch; - } - // ACE_DEBUG ((LM_DEBUG, - // ACE_TEXT ("Entity is %s\n Replacement Text is : %s\n"), - // replace, str.c_str())); - ACE_NEW_RETURN (sstream, ACEXML_StrCharStream, -1); - 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); - } - return 0; - } - else if (this->external_entity_ && this->validate_) - { - ACEXML_Char* uri = this->normalize_systemid (systemId); - ACE_Auto_Basic_Array_Ptr cleanup_uri (uri); - ACEXML_InputSource* ip = 0; - if (this->entity_resolver_) - { - ip = this->entity_resolver_->resolveEntity (publicId, - (uri ? uri : systemId) - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - 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); - } - return 0; - } - else - { - 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); - } - 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); - } - if (this->ref_state_ == ACEXML_ParserInt::IN_ENTITY_VALUE) - { - ACEXML_Char less, mark; - if (this->peek() == '<') - { - less = this->get(); - if (this->peek() == '?') - { - mark = this->get(); - if (this->peek() == 'x') - { - this->parse_text_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - else - { - this->obstack_.grow (less); - this->obstack_.grow (mark); - } - } - this->obstack_.grow (less); - } - } - return 0; - } - } - this->fatal_error (ACE_TEXT ("Undefined PEReference") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - return -1; -} - -int -ACEXML_Parser::parse_entity_value (ACEXML_Char *&str - ACEXML_ENV_ARG_DECL) -{ - ACEXML_ParserInt::ReferenceState temp = this->ref_state_; - ACEXML_Char quote = this->get (); - if (quote != '\'' && quote != '"') // Not a quoted string. - return -1; - ACEXML_Char ch = this->get (); - while (1) - { - if (ch == quote) - { - str = this->obstack_.freeze (); - this->ref_state_ = temp; - return 0; - } - switch (ch) - { - case '&': - if (this->peek () == '#') - { - if (!this->external_entity_) - { - ACEXML_Char buf[7]; - size_t len = sizeof (buf); - if (this->parse_char_reference (buf, len) != 0) - { - // [WFC: Legal Character] - this->fatal_error (ACE_TEXT ("Invalid character ") - ACE_TEXT ("reference") - ACEXML_ENV_ARG_PARAMETER); - return -1; - } - for (size_t j = 0; j < len; ++j) - this->obstack_.grow (buf[j]); - break; - } - } - this->obstack_.grow (ch); - break; - case '%': - 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); - break; - } - this->obstack_.grow (ch); - break; - case 0: - this->pop_context (0 ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - break; - default: - this->obstack_.grow (ch); - break; - } - ch = this->get(); - } -} - -ACEXML_Char * -ACEXML_Parser::parse_name (ACEXML_Char ch) -{ - if (ch == 0) - ch = this->get (); - if (!this->isLetter (ch) && ch != '_' && ch != ':') - return 0; - while (ch) { - this->obstack_.grow (ch); - ch = this->peek (); - if (!this->isNameChar (ch)) - break; - ch = this->get (); - }; - return this->obstack_.freeze (); -} - -ACEXML_Char* -ACEXML_Parser::parse_nmtoken (ACEXML_Char ch) -{ - if (ch == 0) - ch = this->get (); - if (!this->isNameChar (ch)) - return 0; - while (ch) { - this->obstack_.grow (ch); - ch = this->peek (); - if (!this->isNameChar (ch)) - break; - ch = this->get (); - }; - return this->obstack_.freeze (); -} - -int -ACEXML_Parser::parse_version_num (ACEXML_Char*& str) -{ - ACEXML_Char quote = this->get (); - if (quote != '\'' && quote != '"') // Not a quoted string. - return -1; - int numchars = 0; - while (1) - { - ACEXML_Char ch = this->get (); - if (ch == quote && !numchars) - return -1; - else if (ch == quote) - { - str = this->obstack_.freeze (); - return 0; - } - // [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+ - if (ch == '-' || ((ch >= 'a' && ch <= 'z') || - (ch >= 'A' && ch <= 'Z') || - (ch >= '0' && ch <= '9') || - (ch == '_' || ch == '.' || ch == ':'))) - { - this->obstack_.grow (ch); - numchars++; - } - else - return -1; - } -} - -int -ACEXML_Parser::parse_system_literal (ACEXML_Char*& str) -{ - const ACEXML_Char quote = this->get(); - if (quote != '\'' && quote != '"') // Not a quoted string. - return -1; - while (1) - { - ACEXML_Char ch = this->get (); - if (ch == quote) - { - str = this->obstack_.freeze (); - return 0; - } - switch (ch) - { - case '\x00': case '\x01': case '\x02': case '\x03': case '\x04': - case '\x05': case '\x06': case '\x07': case '\x08': case '\x09': - case '\x0A': case '\x0B': case '\x0C': case '\x0D': case '\x0E': - case '\x0F': case '\x10': case '\x11': case '\x12': case '\x13': - case '\x14': case '\x15': case '\x16': case '\x17': case '\x18': - case '\x19': case '\x1A': case '\x1B': case '\x1C': case '\x1D': - case '\x1E': case '\x1F': case '\x7F': case '\x20': case '<': - case '>': case '#': case '%': - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Invalid char %c in SystemLiteral\n"), ch)); - return -1; - default: - this->obstack_.grow (ch); - } - } -} - -int -ACEXML_Parser::parse_pubid_literal (ACEXML_Char*& str) -{ - const ACEXML_Char quote = this->get(); - if (quote != '\'' && quote != '"') // Not a quoted string. - return -1; - while (1) - { - ACEXML_Char ch = this->get (); - if (ch == quote) - { - str = this->obstack_.freeze (); - return 0; - } - else if (this->isPubidChar (ch)) - this->obstack_.grow (ch); - else - return -1; - } -} - -int -ACEXML_Parser::parse_encname (ACEXML_Char*& str) -{ - const ACEXML_Char quote = this->get (); - if (quote != '\'' && quote != '"') // Not a quoted string. - return -1; - int numchars = 0; - while (1) - { - ACEXML_Char ch = this->get (); - if (ch == quote && !numchars) - return -1; - else if (ch == quote) - { - str = this->obstack_.freeze (); - return 0; - } - // [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* - if (!((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) - && !numchars) - return -1; - if (ch == '-' || ((ch >= 'a' && ch <= 'z') || - (ch >= 'A' && ch <= 'Z') || - (ch >= '0' && ch <= '9') || - (ch == '_' || ch == '.'))) - { - this->obstack_.grow (ch); - numchars++; - } - else - return -1; - } -} - -int -ACEXML_Parser::parse_sddecl (ACEXML_Char*& str) -{ - ACEXML_Char quote = this->get (); - if (quote != '\'' && quote != '"') // Not a quoted string. - return -1; - int numchars = 0; - while (1) - { - ACEXML_Char ch = this->get (); - if (ch == quote && numchars < 2) - return -1; - else if (ch == quote) - { - str = this->obstack_.freeze (); - return 0; - } - // [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") - // | ('"' ('yes' | 'no') '"')) - switch (ch) - { - case 'y': case 'e': case 's': case 'n': case 'o': - this->obstack_.grow (ch); - numchars++; - break; - default: - return -1; - } - } -} - -void -ACEXML_Parser::prefix_mapping (const ACEXML_Char* prefix, - const ACEXML_Char* uri, - int start ACEXML_ENV_ARG_DECL) -{ - 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; - } - else - { - this->content_handler_->endPrefixMapping(temp - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - } -} - -int -ACEXML_Parser::switch_input (ACEXML_CharStream* cstream, - const ACEXML_Char* systemId, - const ACEXML_Char* publicId) -{ - ACEXML_InputSource* input = 0; - ACE_NEW_RETURN (input, ACEXML_InputSource (cstream), -1); - return this->switch_input (input, systemId, publicId); -} - -int -ACEXML_Parser::switch_input (ACEXML_InputSource* input, - const ACEXML_Char* systemId, - const ACEXML_Char* publicId) -{ - ACEXML_LocatorImpl* locator = 0; - if (!systemId) - systemId = input->getSystemId(); - ACE_NEW_RETURN (locator, ACEXML_LocatorImpl (systemId, publicId), -1); - ACEXML_Parser_Context* new_context = 0; - ACE_NEW_RETURN (new_context, ACEXML_Parser_Context(input, locator), -1); - if (this->push_context (new_context) != 0) - { - ACE_ERROR ((LM_ERROR, "Unable to switch input streams")); - delete new_context; - return -1; - } - this->current_ = new_context; - this->content_handler_->setDocumentLocator (this->current_->getLocator()); - return 0; -} - -int -ACEXML_Parser::push_context (ACEXML_Parser_Context* context) -{ - if (this->ctx_stack_.push (context) < 0) - { - ACE_ERROR ((LM_ERROR, "Unable to push input source onto the stack")); - return -1; - } - return 0; -} - -size_t -ACEXML_Parser::pop_context (int GE_ref ACEXML_ENV_ARG_DECL) -{ - 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); - } - - 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); - } - 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); - } - 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); - } - } - 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); - } - } - nrelems = this->ctx_stack_.size(); - - if (this->external_entity_ && (GE_ref == 0 || GE_ref == 1)) - this->external_entity_--; - - this->content_handler_->setDocumentLocator (this->current_->getLocator()); - - return nrelems; -} - -int -ACEXML_Parser::getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) -{ - if (ACE_OS::strcmp (name, ACEXML_Parser::simple_parsing_feature_) == 0) - { - return this->simple_parsing_; - } - else if (ACE_OS::strcmp (name, ACEXML_Parser::namespaces_feature_) == 0) - { - return this->namespaces_; - } - else if (ACE_OS::strcmp (name, - ACEXML_Parser::namespace_prefixes_feature_) == 0) - { - return this->namespace_prefixes_; - } - else if (ACE_OS::strcmp (name, ACEXML_Parser::validation_feature_) == 0) - { - return this->validate_; - } - ACEXML_THROW_RETURN (ACEXML_SAXNotRecognizedException (name), -1); -} - - - -void -ACEXML_Parser::setFeature (const ACEXML_Char *name, - int boolean_value ACEXML_ENV_ARG_DECL) -{ - if (ACE_OS::strcmp (name, ACEXML_Parser::simple_parsing_feature_) == 0) - { - this->simple_parsing_ = (boolean_value == 0 ? 0 : 1); - return; - } - else if (ACE_OS::strcmp (name, ACEXML_Parser::namespaces_feature_) == 0) - { - this->namespaces_ = (boolean_value == 0 ? 0 : 1); - return; - } - else if (ACE_OS::strcmp (name, - ACEXML_Parser::namespace_prefixes_feature_) == 0) - { - this->namespace_prefixes_ = (boolean_value == 0 ? 0 : 1); - return; - } - else if (ACE_OS::strcmp (name, ACEXML_Parser::validation_feature_) == 0) - { - this->validate_ = (boolean_value == 0 ? 0 : 1); - return; - } - - ACEXML_THROW (ACEXML_SAXNotRecognizedException (name)); -} - -void * -ACEXML_Parser::getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) -{ - ACEXML_THROW_RETURN (ACEXML_SAXNotSupportedException (name), 0); -} - -void -ACEXML_Parser::setProperty (const ACEXML_Char *name, - void *value ACEXML_ENV_ARG_DECL) -{ - ACE_UNUSED_ARG (value); - - ACEXML_THROW (ACEXML_SAXNotSupportedException (name)); -} - -void -ACEXML_Parser::error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL) -{ - ACEXML_SAXParseException* exception = 0; - ACE_NEW_NORETURN (exception, ACEXML_SAXParseException (msg)); - if (this->error_handler_) - this->error_handler_->error (*exception ACEXML_ENV_ARG_PARAMETER); - else - ACEXML_ENV_RAISE (exception); - return; -} - -void -ACEXML_Parser::warning (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL) -{ - ACEXML_SAXParseException* exception = 0; - ACE_NEW_NORETURN (exception, ACEXML_SAXParseException (msg)); - if (this->error_handler_) - this->error_handler_->warning (*exception ACEXML_ENV_ARG_PARAMETER); - delete exception; - return; -} - -void -ACEXML_Parser::fatal_error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL) -{ - 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->reset(); - ACEXML_ENV_RAISE (exception); - return; -} - -void -ACEXML_Parser::parse_version_info (ACEXML_ENV_SINGLE_ARG_DECL) -{ - 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); - 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; - } -} - -void -ACEXML_Parser::parse_encoding_decl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - 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; - } - const ACEXML_Char* encoding = this->current_->getInputSource()->getEncoding(); - if (encoding != 0 && ACE_OS::strcmp (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); - } -} - -int -ACEXML_Parser::parse_text_decl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - // 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); - } - - ACEXML_Char fwd = this->skip_whitespace(); - // Read version - if (fwd == 'v') - { - this->parse_version_info (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - fwd = this->skip_whitespace(); - } - - if (fwd == 'e') - { - this->parse_encoding_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - fwd = this->skip_whitespace(); - } - else - { - this->fatal_error (ACE_TEXT ("Missing encodingDecl in TextDecl") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - - 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); - return -1; -} - -void -ACEXML_Parser::parse_xml_decl (ACEXML_ENV_SINGLE_ARG_DECL) -{ - // Read parse_token (ACE_TEXT("xml")) < 0) - { - this->fatal_error(ACE_TEXT ("Expecting keyword xml in XMLDecl") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - - ACEXML_Char fwd = this->skip_whitespace(); - - // Read version - if (fwd != 'v') - { - this->fatal_error (ACE_TEXT ("Expecting VersionInfo declaration") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK; - } - - this->parse_version_info (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK; - - fwd = this->skip_whitespace(); - if (fwd != '?') - { - if (fwd == 'e') - { - this->parse_encoding_decl (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK; - fwd = this->skip_whitespace(); - } - if (fwd == 's') - { - ACEXML_Char* astring; - if ((this->parse_token (ACE_TEXT("tandalone")) == 0) && - this->skip_equal () == 0 && - this->parse_sddecl (astring) == 0) - { - if (ACE_OS::strcmp (astring, ACE_TEXT ("yes")) == 0) - this->standalone_ = 1; - fwd = this->skip_whitespace(); - } - } - } - 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; -} - -int -ACEXML_Parser::parse_comment (void) -{ - int state = 0; - - if (this->get () != '-' || // Skip the opening "'. Notice that - // according to the spec, '--->' is not a valid closing comment - // sequence. But we'll let it pass anyway. - { - ACEXML_Char fwd = this->get (); - if ((fwd == '-' && state < 2) || - (fwd == '>' && state == 2)) - state += 1; - else - state = 0; // Reset parse state. - } - return 0; -} - -int -ACEXML_Parser::parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_DECL) -{ - const ACEXML_Char *pitarget = this->parse_name (); - ACEXML_Char *instruction = 0; - - 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); - } - - int state = 0; - - ACEXML_Char ch = this->skip_whitespace(); - while (state < 2) - { - switch (ch) - { - case '?': - if (state == 0) - state = 1; - break; - case '>': - if (state == 1) - { - instruction = this->obstack_.freeze (); - this->content_handler_->processingInstruction (pitarget, - instruction - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - this->obstack_.unwind (const_cast (pitarget)); - return 0; - } - break; - case 0x0A: - // Fall thru... - default: - if (state == 1) - this->obstack_.grow ('?'); - this->obstack_.grow (ch); - state = 0; - } - ch = this->get (); - } - return -1; -} - -void -ACEXML_Parser::reset (void) -{ - this->doctype_ = 0; - if (this->ctx_stack_.pop (this->current_) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Mismatched push/pop of Context stack"))); - if (this->current_) - { - this->current_->getInputSource()->getCharStream()->rewind(); - - this->current_->setInputSource (0); - delete this->current_; - this->current_ = 0; - } - - ACEXML_Char* temp = 0; - while (this->GE_reference_.pop (temp) != -1) - ; - while (this->PE_reference_.pop (temp) != -1) - ; - this->obstack_.release(); - this->alt_stack_.release(); - this->xml_namespace_.reset(); - this->nested_namespace_ = 0; - this->internal_GE_.reset(); - this->external_GE_.reset(); - this->unparsed_entities_.reset(); - this->predef_entities_.reset(); - this->internal_PE_.reset(); - this->external_PE_.reset(); - this->notations_.reset(); - this->ref_state_ = ACEXML_ParserInt::INVALID; - this->external_subset_ = 0; - this->external_entity_ = 0; - this->has_pe_refs_ = 0; - this->standalone_ = 0; - this->external_dtd_ = 0; - this->internal_dtd_ = 0; -} - diff --git a/ACE/ACEXML/parser/parser/Parser.h b/ACE/ACEXML/parser/parser/Parser.h deleted file mode 100644 index 3b0725ec214..00000000000 --- a/ACE/ACEXML/parser/parser/Parser.h +++ /dev/null @@ -1,858 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Parser.h - * - * $Id$ - * - * @author Nanbor Wang - * @author Krishnakumar B - */ -//============================================================================= - -#ifndef _ACEXML_BASIC_PARSER_H_ -#define _ACEXML_BASIC_PARSER_H_ - -#include /**/ "ace/pre.h" -#include "ACEXML/parser/parser/Parser_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ACEXML/common/XMLReader.h" -#include "ACEXML/common/LocatorImpl.h" -#include "ACEXML/common/NamespaceSupport.h" -#include "ACEXML/common/CharStream.h" -#include "ace/Obstack.h" -#include "ace/Functor.h" -#include "ace/SString.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/Unbounded_Set.h" -#include "ace/Containers_T.h" -#include "ace/Auto_Ptr.h" -#include "ACEXML/parser/parser/Entity_Manager.h" -#include "ACEXML/parser/parser/ParserInternals.h" -#include "ACEXML/parser/parser/ParserContext.h" - -/** - * @class ACEXML_Parser Parser.h "ACEXML/parser/parser/Parser.h" - * - * @brief A SAX based parser. - * - */ -class ACEXML_PARSER_Export ACEXML_Parser : public ACEXML_XMLReader -{ -public: - /// Default constructor. - ACEXML_Parser (void); - - /// Destructor. - virtual ~ACEXML_Parser (void); - - /** - * Initialize the parser state. - * - * @retval 0 if parser was initialized correctly else -1. - */ - int initialize (ACEXML_InputSource* input); - - /** - * Return the current content handler. - */ - virtual ACEXML_ContentHandler *getContentHandler (void) const; - - /* - * Return the current DTD handler. - */ - virtual ACEXML_DTDHandler *getDTDHandler (void) const; - - /* - * Return the current entity resolver. - */ - virtual ACEXML_EntityResolver *getEntityResolver (void) const; - - /* - * Return the current error handler. - */ - virtual ACEXML_ErrorHandler *getErrorHandler (void) const; - - /** - * Look up the value of a feature. This method allows - * programmers to check whether a specific feature has been - * activated in the parser. - */ - virtual int getFeature (const ACEXML_Char *name ACEXML_ENV_ARG_DECL); - - /** - * Activating or deactivating a feature. - */ - virtual void setFeature (const ACEXML_Char *name, - int boolean_value ACEXML_ENV_ARG_DECL); - - /* - * Look up the value of a property. - */ - virtual void * getProperty (const ACEXML_Char *name ACEXML_ENV_ARG_DECL); - - /* - * Set the value of a property. - */ - virtual void setProperty (const ACEXML_Char *name, - void *value ACEXML_ENV_ARG_DECL); - - /* - * Parse an XML document. - */ - virtual void parse (ACEXML_InputSource *input ACEXML_ENV_ARG_DECL); - - /* - * Parse an XML document from a system identifier (URI). - */ - virtual void parse (const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - ; - - /* - * Allow an application to register a content event handler. - */ - virtual void setContentHandler (ACEXML_ContentHandler *handler); - - /* - * Allow an application to register a DTD event handler. - */ - virtual void setDTDHandler (ACEXML_DTDHandler *handler); - - /* - * Allow an application to register an entity resolver. - */ - virtual void setEntityResolver (ACEXML_EntityResolver *resolver); - - /* - * Allow an application to register an error event handler. - */ - virtual void setErrorHandler (ACEXML_ErrorHandler *handler); - - - -protected: - /** - * Parse XML Prolog. - */ - void parse_xml_prolog (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse VersionInfo declaration. - * - */ - void parse_version_info (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a EncodingDecl declaration. - * - */ - void parse_encoding_decl (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a XMLDecl declaration. - * - */ - void parse_xml_decl (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a TextDecl declaration. - */ - int parse_text_decl (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a PI statement. The first character encountered - * should always be '?' in the PI prefix "@doctype_. - * - * @todo Instead of simply checking for the root element based on the - * argument @a is_root, we should instead either pass in some sort - * 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); - - /** - * 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); - - /** - * Parse a character reference, i.e., " " or "". The first - * character encountered should be the '#' char. - * - * @param buf points to a character buffer for the result. - * - * @param len In/out argument which initially specifies the size of the - * buffer and is later set to the no. of characters in the reference. - * - * @retval 0 on success and -1 otherwise. - */ - int parse_char_reference (ACEXML_Char *buf, size_t& len); - - /** - * Parse a reference name, i.e., foo in "&foo;" or "%foo;". The first - * character encountered should be the character following '&' or '%'. - * Effectively the same as @sa parse_name but we don't use the parser's - * obstack. Caller is responsible for deleting the memory. - * - * @retval A pointer to name of reference, 0 otherwise. - */ - ACEXML_Char* parse_reference_name (void); - - /** - * Parse a CDATA section. The first character should always be the first - * '[' in CDATA definition. - * - * @retval 0 on success. - * @retval -1 if fail. - */ - int parse_cdata (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a "markupdecl" section, this includes both "markupdecl" and - * "DeclSep" sections in XML specification - */ - int parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Skip over a comment. The first character encountered should always be - * the first '-' in the comment prefix "@<@!--". - */ - int parse_comment (void); - - /** - * Parse an "ELEMENT" decl. The first character this method - * expects is always the 'L' (the second char) in the word - * "ELEMENT". - * - * @retval 0 on success, -1 otherwise. - */ - int parse_element_decl (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse an "ENTITY" decl. The first character this method expects - * is always the 'N' (the second char) in the word "ENTITY". - * - * @retval 0 on success, -1 otherwise. - */ - int parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse an "ATTLIST" decl. Thse first character this method - * expects is always the 'A' (the first char) in the word - * "ATTLIST". - * - * @retval 0 on success, -1 otherwise. - */ - int parse_attlist_decl (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a AttType declaration. - * - */ - int parse_atttype (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - *Parse a "NOTATION" decl. The first character this method - * expects is always the 'N' (the first char) in the word - * "NOTATION". - * - * @retval 0 on success, -1 otherwise. - */ - int parse_notation_decl (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse an ExternalID or a reference to PUBLIC ExternalID. - * Possible cases are in the forms of: - * - * SYSTEM 'quoted string representing system resource' - * PUBLIC 'quoted name of public ID' 'quoted resource' - * PUBLIC 'quoted name we are referring to' - * - * - * The first character this function sees must be either 'S' or 'P'. - * When the function finishes parsing, the input stream points - * at the first non-whitespace character. - * - * @param publicId returns the unquoted publicId read. If none - * is available, it will be reset to 0. - * @param systemId returns the unquoted systemId read. If none - * is available, it will be reset to 0. - * - * @retval 0 on success, -1 otherwise. - */ - int parse_external_id (ACEXML_Char *&publicId, ACEXML_Char *&systemId - ACEXML_ENV_ARG_DECL); - - /** - * Parse an external DTD. - * - */ - int parse_external_dtd (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * 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); - - /** - * Parse a markupDecl section. - * - */ - int parse_markup_decl (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a conditionalSect declaration. - * - */ - int parse_conditional_section (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a includeSect declaration. - * - */ - int parse_includesect (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * - * Parse a ignoreSect declaration. - */ - int parse_ignoresect (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a PEReference. - * - */ - int parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a Reference. - * - */ - int parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse an entityValue. - * - */ - int parse_entity_value (ACEXML_Char *&str ACEXML_ENV_ARG_DECL); - - /** - * Parse a DefaultDecl specification. - * - */ - int parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_DECL); - - - /** - * Parse the "children" and "Mixed" non-terminals in contentspec. - * - * The first character this function sees must be the first - * open paren '(' in children. - * - * @retval 0 on success, -1 otherwise. - */ - int parse_children_definition (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a @c cp non-terminal. @c cp can either be a @c seq or a @c choice. - * This function calls itself recursively. - * - * @param skip_open_paren when non-zero, it indicates that the open paren of - * the @c seq or @c choice has already been removed from the input - * stream. - * - * @retval 0 on success, -1 otherwise. - */ - int parse_child (int skip_open_paren ACEXML_ENV_ARG_DECL); - - /** - * Parse a name from the input CharStream. If @a ch @!= 0, then we have - * already consumed the first name character from the input CharStream, - * otherwise, parse_name will use this->get() to acquire the initial - * character. - * - * @return A pointer to the string in the obstack, 0 if it's not a - * valid name. - */ - ACEXML_Char *parse_name (ACEXML_Char ch = 0); - - /** - * Parse a NMTOKEN from the input stream. - * - * @return A pointer to the string in the obstack, 0 if it's not a valid - * NMTOKEN. - */ - ACEXML_Char* parse_nmtoken (ACEXML_Char ch = 0); - - /** - * Parse the version string in an XML Prolog section. - * - * @param str String containing the version number if successful. - * @return 0 if the string was read successfully, 0 otherwise. - */ - int parse_version (ACEXML_Char*& str); - - /** - * Parse the version number in a VersionInfo declaration. - */ - int parse_version_num (ACEXML_Char*& str); - - /** - * Parse the encoding name in an XML Prolog section. - * - * @param str String containing the encoding name if successful. - * @return 0 if the string was read successfully, 0 otherwise. - */ - int parse_encname (ACEXML_Char*& str); - - /** - * Parse a SDDecl string. - * - * @param str String containing the encoding name if successful. - * @return 0 if the string was read successfully, -1 otherwise. - */ - int parse_sddecl (ACEXML_Char*& str); - - /** - * Parse an attribute name. - * - * @retval str String containing the value of the attribute name - * if successful. - * @retval 0 otherwise. - */ - ACEXML_Char* parse_attname (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse an attribute value. - * - * @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); - - /** - * Parse a tokenized type attribute. - * - * @return 0 if attribute type was read successfully, -1 otherwise. - */ - int parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL); - - /** - * Parse a SystemLiteral. - * - * @param str String containing the SystemLiteral if successful. - * @return 0 if the string was read successfully, 0 otherwise. - */ - int parse_system_literal (ACEXML_Char*& str); - - /** - * Parse a PubidLiteral. - * - * @param str String containing the PubidLiteral if successful. - * @return 0 if the string was read successfully, 0 otherwise. - */ - int parse_pubid_literal (ACEXML_Char*& str); - - /** - * Check if a character @a c is a whitespace. - * - * @retval 1 if @a c is a valid white space character. 0 otherwise. - */ - int is_whitespace (const ACEXML_Char c) const; - - /** - * Check if a character @a c is a valid Char. - * - * @retval 1 if @a c is a valid character. 0 otherwise. - */ - int isChar (ACEXML_UCS4 c) const; - - /** - * Check if a character @a c is a valid CharRef character. - * - * @retval 1 if @a c is a valid character reference character, 0 otherwise. - */ - int isCharRef (const ACEXML_Char c) const; - - /** - * Check if a character @a c is a BaseChar. - * - * @retval 1 if @a c is a valid BaseChar character, 0 otherwise. - */ - int isBasechar (const ACEXML_Char c) const; - - /** - * Check if a character @a c is a Ideographic. - * - * @retval 1 if @a c is a valid Ideographic character, 0 otherwise. - */ - int isIdeographic (const ACEXML_Char c) const; - - /** - * Check if a character @a c is a CombiningChar. - * - * @retval 1 if @a c is a valid CombiningChar character, 0 otherwise. - */ - int isCombiningchar (const ACEXML_Char c) const; - - /** - * Check if a character @a c is a Digit. - * - * @retval 1 if @a c is a valid Digit character, 0 otherwise. - */ - int isDigit (const ACEXML_Char c) const; - - /** - * Check if a character @a c is an Extender. - * - * @retval 1 if @a c is a valid Extender character, 0 otherwise. - */ - int isExtender (const ACEXML_Char c) const; - - /** - * Check if a character @a c is a Letter. - * - * @retval 1 if @a c is a valid Letter character, 0 otherwise. - */ - int isLetter (const ACEXML_Char c) const; - - /** - * Check if a character is an acceptable NameChar. - * - * @retval 1 if @a c is a valid NameChar character, 0 otherwise. - */ - int isNameChar (const ACEXML_Char c) const; - - /** - * Check if a character is a PubidChar. - * - * @retval 1 if @a c is a valid PubidChar character, 0 otherwise. - */ - int isPubidChar (const ACEXML_Char c) const; - - /// Get a character. - virtual ACEXML_Char get (void); - - /// Peek a character. - virtual ACEXML_Char peek (void); - -private: - - // *** Helper functions for parsing XML - - /** - * Skip any whitespaces encountered until the first non-whitespace - * character is encountered. - * - * @return The next non-whitespace character from the CharStream. - * - * @sa skip_whitespace_count - */ - ACEXML_Char skip_whitespace (void); - - /** - * Skip any whitespaces encountered until the first non-whitespace - * character. The first non-whitespace character is not consumed. - * This method does peek into the input CharStream and therefore - * is more expensive than @ref skip_whitespace. - * - * @param peek If non-null, @a peek points to a ACEXML_Char where - * skip_whitespace_count stores the first non-whitespace - * character it sees (character is not removed from the stream.) - * - * @return The number of whitespace characters consumed. - * - * @sa skip_whitespace - */ - int skip_whitespace_count (ACEXML_Char *peek = 0); - - /** - * Skip an equal sign. - * - * @retval 0 when succeeds, -1 if no equal sign is found. - */ - int skip_equal (void); - - /** - * Get a quoted string. Quoted strings are used to specify - * attribute values and this routine will replace character and - * entity references on-the-fly. Parameter entities are not allowed - * (or replaced) in this function. (But regular entities are.) - * - * @param str returns the un-quoted string. - * - * @retval 0 on success, -1 otherwise. - */ - int get_quoted_string (ACEXML_Char *&str); - - /** - * Check if a character @a c is a Digit. - * - * @retval 1 if @a c is a valid Digit character, 0 otherwise. - */ - int isNormalDigit (const ACEXML_Char c) const; - - /** - * Dispatch errors to ErrorHandler. - * - */ - void error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL); - - /** - * Dispatch warnings to ErrorHandler. - * - */ - void warning (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL); - - /** - * Dispatch fatal errors to ErrorHandler. - * - */ - void fatal_error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL); - - /** - * Dispatch prefix mapping calls to the ContentHandler. - * - * @param prefix Namespace prefix - * @param uri Namespace URI - * @param name Local name - * @param start 1 => startPrefixMapping 0 => endPrefixMapping - */ - void prefix_mapping (const ACEXML_Char* prefix, - const ACEXML_Char* uri, - int start ACEXML_ENV_ARG_DECL); - /** - * Parse a keyword. - */ - int parse_token (const ACEXML_Char* keyword); - - /** - * Push the current context on to the stack. - * - */ - int push_context (ACEXML_Parser_Context* context); - - /** - * Pop the top element in the stack and replace current context with that. - */ - size_t pop_context (int GE_ref ACEXML_ENV_ARG_DECL); - - /** - * Create a new ACEXML_CharStream from @a systemId and @a publicId and - * replace the current input stream with the newly created stream. - */ - virtual int switch_input (ACEXML_CharStream* cstream, - const ACEXML_Char* systemId, - const ACEXML_Char* publicId = 0); - /** - * Create a new ACEXML_InputSource from @a systemId and @a publicId and - * replace the current input source with the newly created InputSource. - */ - virtual int switch_input (ACEXML_InputSource* input, - const ACEXML_Char* systemId, - const ACEXML_Char* publicId = 0); - - /** - * Check for a parameter entity reference. This is used to check for the - * occurence 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); - - /** - * Reset the parser state. - * - */ - void reset (void); - - /** - * Very trivial, non-conformant normalization of a systemid. - * - */ - ACEXML_Char* normalize_systemid (const ACEXML_Char* systemId); - - // Feature names: - - /** - * \addtogroup acexml_parser_features - * @{ - */ - - /** - * @var simple_parsing_feature_ - * - * This constant string defines the name of "simple XML parsing" - * feature. When this feature is enabled, ACEXML parser is allowed - * to parse a simple XML stream without mandated XML prolog - * and no DTD defintion. - */ - static const ACEXML_Char simple_parsing_feature_[]; - - /** - * @var namespaces_feature_ - * - * This constant string defines the SAX XML Namespace feature. When this - * feature is enabled, ACEXML parser allows access by namespace qualified - * names. - */ - static const ACEXML_Char namespaces_feature_[]; - - /** - * @var namespace_prefixes_feature_ - * - * This constant string defines the SAX XML Namespace prefixes feature. - * Normally the list of attributes returned by the parser will not - * contain attributes used as namespace declarations (xmlns*). When this - * feature is enabled, the list of attributes contains the namespace - * declarations also. - */ - static const ACEXML_Char namespace_prefixes_feature_[]; - - /** - * @var validation_feature_ - * - * This constant string defines the SAX XML Validation feature. When - * this feature is enabled, the parser validates the document in - * addition to checking for well-formedness. - */ - static const ACEXML_Char validation_feature_[]; - - /* @} */ - - /// Keeping track of the handlers. We do not manage the memory for - /// handlers. - ACEXML_DTDHandler *dtd_handler_; - ACEXML_EntityResolver *entity_resolver_; - ACEXML_ContentHandler *content_handler_; - ACEXML_ErrorHandler *error_handler_; - - /// Document Type - ACEXML_Char *doctype_; - - /// Current parser context - ACEXML_Parser_Context* current_; - - /// Stack used to hold the Parser_Context - ACE_Unbounded_Stack ctx_stack_; - - /* - * The following two are essentially chains of references and is used by - * the parser to determine if there is any recursion. We keep two of - * these one for general entities and one for parameter entities, as they - * both fall under different namespaces. - * - */ - /// Set used to hold the general entity references that are active. - ACE_Unbounded_Stack GE_reference_; - - /// Set used to hold the parameter entity references that are active. - ACE_Unbounded_Stack PE_reference_; - - /// Obstack used by the parser to hold all the strings parsed - ACE_Obstack_T obstack_; - - /// Alternative obstack used to hold any strings when the original is in use - ACE_Obstack_T alt_stack_; - - /// Namespace stack used by the parser to implement support for Namespaces - ACEXML_NamespaceSupport xml_namespace_; - - /// T => We are processing a nested namespace - int nested_namespace_; - - /// Set of internal parsed general entities in the document - ACEXML_Entity_Manager internal_GE_; - - /// Set of external parsed general entities in the document - ACEXML_Entity_Manager external_GE_; - - /// Set of unparsed entities in the document - ACEXML_Entity_Manager unparsed_entities_; - - /// Set of predefined entities used by the parser - ACEXML_Entity_Manager predef_entities_; - - /// Set of internal parsed parameter entities in the document - ACEXML_Entity_Manager internal_PE_; - - /// Set of external parsed parameter entities in the document - ACEXML_Entity_Manager external_PE_; - - /// Set of notations declared in the document - ACEXML_Entity_Manager notations_; - - /// State of the parser when it encounters a reference. - ACEXML_ParserInt::ReferenceState ref_state_; - - /// T => We are parsing an external subset - int external_subset_; - - /// T => We are parsing an external entity value - int external_entity_; - - /// T => Internal DTD has parameter entity references - int has_pe_refs_; - - /// If set, the document is a standalone XML document - int standalone_; - - /// If set, the document has an external DTD subset - int external_dtd_; - - /// If set, the document has an internal DTD - int internal_dtd_; - - /// Feature flags - /// If set, the parser should parse a document without a prolog - int simple_parsing_; - - /// If set, the parser should also validate - int validate_; - - /// If set, the parser should allow access by namespace qualified names. - int namespaces_; - - /// If set, the parser should include namespace declarations in the list - /// of attributes of an element. - int namespace_prefixes_; - -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/parser/parser/Parser.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_BASIC_PARSER_H_ */ diff --git a/ACE/ACEXML/parser/parser/Parser.inl b/ACE/ACEXML/parser/parser/Parser.inl deleted file mode 100644 index 1706d0a88e1..00000000000 --- a/ACE/ACEXML/parser/parser/Parser.inl +++ /dev/null @@ -1,257 +0,0 @@ -//============================================================================= -/** - * @file Parser.inl - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -ACEXML_INLINE ACEXML_ContentHandler * -ACEXML_Parser::getContentHandler (void) const -{ - return this->content_handler_; -} - -ACEXML_INLINE ACEXML_DTDHandler * -ACEXML_Parser::getDTDHandler (void) const -{ - return this->dtd_handler_; -} - -ACEXML_INLINE ACEXML_EntityResolver * -ACEXML_Parser::getEntityResolver (void) const -{ - return this->entity_resolver_; -} - -ACEXML_INLINE ACEXML_ErrorHandler * -ACEXML_Parser::getErrorHandler (void) const -{ - return this->error_handler_; -} - -ACEXML_INLINE void -ACEXML_Parser::setContentHandler (ACEXML_ContentHandler *handler) -{ - this->content_handler_ = handler; -} - -ACEXML_INLINE void -ACEXML_Parser::setDTDHandler (ACEXML_DTDHandler *handler) -{ - this->dtd_handler_ = handler; -} - -ACEXML_INLINE void -ACEXML_Parser::setEntityResolver (ACEXML_EntityResolver *resolver) -{ - this->entity_resolver_ = resolver; -} - -ACEXML_INLINE void -ACEXML_Parser::setErrorHandler (ACEXML_ErrorHandler *handler) -{ - this->error_handler_ = handler; -} - -ACEXML_INLINE int -ACEXML_Parser::isChar (ACEXML_UCS4 c) const -{ - return (c == 0x9 || c == 0xA || c == 0xD || - c >= 0x20 && c <= 0xD7FF || - c >= 0xE000 && c <= 0xFFFD || - c >= 0x10000 && c <= 0x10FFFF); -} - -ACEXML_INLINE int -ACEXML_Parser::isCharRef (const ACEXML_Char c) const - { - return ((c >= 'a' && c <= 'f') || - (c >= 'A' && c <= 'F')); -} - -ACEXML_INLINE int -ACEXML_Parser::isNormalDigit (const ACEXML_Char c) const -{ - return (c >= '\x30' && c <= '\x39'); -} - -ACEXML_INLINE int -ACEXML_Parser::isBasechar (const ACEXML_Char c) const -{ -#if defined (ACE_USES_WCHAR) - return ACEXML_ParserInt::isBasechar_i (c); -#else - return ACEXML_ParserInt::base_char_table_[(int) c]; -#endif /* ACE_USES_WCHAR */ -} - -ACEXML_INLINE int -ACEXML_Parser::isIdeographic (const ACEXML_Char c) const -{ -#if defined (ACE_USES_WCHAR) - return ACEXML_ParserInt::isIdeographic_i (c); -#else - ACE_UNUSED_ARG (c); - return 0; -#endif /* ACE_USES_WCHAR */ -} - -ACEXML_INLINE int -ACEXML_Parser::isCombiningchar (const ACEXML_Char c) const -{ -#if defined (ACE_USES_WCHAR) - return ACEXML_ParserInt::isCombiningchar_i (c); -#else - ACE_UNUSED_ARG (c); - return 0; -#endif /* ACE_USES_WCHAR */ - } - -ACEXML_INLINE int -ACEXML_Parser::isDigit (const ACEXML_Char c) const -{ -#if defined (ACE_USES_WCHAR) - return ACEXML_ParserInt::isDigit_i (c); -#else - return (this->isNormalDigit (c)); -#endif /* ACE_USES_WCHAR */ -} - -ACEXML_INLINE int -ACEXML_Parser::isExtender (const ACEXML_Char c) const -{ -#if defined (ACE_USES_WCHAR) - return ACEXML_ParserInt::isExtender_i (c); -#else - return (c == '\xB7'); -#endif /* ACE_USES_WCHAR */ -} - -ACEXML_INLINE int -ACEXML_Parser::isLetter (const ACEXML_Char c) const -{ - return (this->isBasechar (c) || this->isIdeographic (c)); -} - -ACEXML_INLINE int -ACEXML_Parser::isNameChar (const ACEXML_Char c) const -{ - return (this->isLetter (c) || this->isDigit (c) || c == '.' || c == '-' || - c == '_' || c == ':' || this->isCombiningchar (c) || - this->isExtender (c)); -} - -ACEXML_INLINE int -ACEXML_Parser::isPubidChar (const ACEXML_Char c) const -{ - return (c == '\x20' || c == '\x0D' || c == '\x0A' || - (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || - (c >= '0' && c <= '9') || c == '-' || c == '\'' || c == '(' || - c == ')' || c == '+' || c == ',' || c == '.' || c == '/' || - c == ':' || c == '=' || c == '?' || c == ';' || c == '!' || - c == '*' || c == '#' || c == '@' || c == '$' || c == '_' || - c == '%'); -} - - -ACEXML_INLINE int -ACEXML_Parser::is_whitespace (const ACEXML_Char c) const -{ - switch (c) - { - case '\x0A': case '\x20': - case '\x09': case '\x0D': - return 1; - default: - return 0; - } -} - -ACEXML_INLINE ACEXML_Char -ACEXML_Parser::skip_whitespace (void) -{ - ACEXML_Char ch = this->get(); - while (this->is_whitespace (ch)) - ch = this->get (); - return ch; -} - - -ACEXML_INLINE int -ACEXML_Parser::skip_whitespace_count (ACEXML_Char *peeky) -{ - int wscount = 0; - ACEXML_Char dummy; - ACEXML_Char &forward = (peeky == 0 ? dummy : *peeky); - - for (;this->is_whitespace ((forward = this->peek ())); ++wscount) - this->get (); - return wscount; -} - -ACEXML_INLINE int -ACEXML_Parser::skip_equal (void) -{ - if (this->skip_whitespace() != '=') - return -1; - while (this->is_whitespace (this->peek())) - this->get(); - return 0; -} - -ACEXML_INLINE ACEXML_Char -ACEXML_Parser::get (void) -{ - ACEXML_Char ch = 0; - const ACEXML_InputSource* ip = this->current_->getInputSource(); - ACEXML_CharStream* instream = ip->getCharStream(); - - if (instream->get (ch) != -1) - { - this->current_->getLocator()->incrColumnNumber(); - // Normalize white-space - if (ch == '\x0D') - { - if (instream->peek() == 0x0A) - instream->get (ch); - ch = '\x0A'; - } - if (ch == '\x0A') - { - // Reset column number and increment Line Number. - this->current_->getLocator()->incrLineNumber(); - this->current_->getLocator()->setColumnNumber (0); - } - return ch; - } - return 0; -} - -ACEXML_INLINE ACEXML_Char -ACEXML_Parser::peek (void) -{ - // Using an extra level of indirection so we can - // manage document location in the future. - ACEXML_Char ch = 0; - const ACEXML_InputSource* ip = this->current_->getInputSource(); - ACEXML_CharStream* instream = ip->getCharStream(); - ch = static_cast (instream->peek ()); - return (ch > 0 ? ch : 0); -} - -ACEXML_INLINE int -ACEXML_Parser::parse_token (const ACEXML_Char* keyword) -{ - if (keyword == 0) - return -1; - const ACEXML_Char* ptr = keyword; - for (; *ptr != 0 && (this->get() == *ptr); ++ptr) - ; - if (*ptr == 0) - return 0; - else - return -1; -} diff --git a/ACE/ACEXML/parser/parser/ParserContext.cpp b/ACE/ACEXML/parser/parser/ParserContext.cpp deleted file mode 100644 index 663ae1ef1ac..00000000000 --- a/ACE/ACEXML/parser/parser/ParserContext.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// $Id$ - -#include "ACEXML/parser/parser/ParserContext.h" - -#if !defined (__ACEXML_INLINE__) -# include "ACEXML/parser/parser/ParserContext.inl" -#endif /* __ACEXML_INLINE__ */ - -ACEXML_Parser_Context::~ACEXML_Parser_Context() -{ - delete this->instream_; - this->instream_ = 0; - delete this->locator_; - this->locator_ = 0; -} - diff --git a/ACE/ACEXML/parser/parser/ParserContext.h b/ACE/ACEXML/parser/parser/ParserContext.h deleted file mode 100644 index 34b1edbba78..00000000000 --- a/ACE/ACEXML/parser/parser/ParserContext.h +++ /dev/null @@ -1,84 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ParserContext.h - * - * $Id$ - * - * @author Krishnakumar B - */ -//============================================================================= - -#ifndef ACEXML_PARSER_CONTEXT_H -#define ACEXML_PARSER_CONTEXT_H - -#include /**/ "ace/pre.h" -#include "ACEXML/parser/parser/Parser_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ACEXML/common/XML_Types.h" -#include "ACEXML/common/InputSource.h" -#include "ACEXML/common/Locator.h" -#include "ACEXML/common/LocatorImpl.h" -#include "ace/Functor.h" -#include "ace/Containers_T.h" - -class ACEXML_PARSER_Export ACEXML_Parser_Context -{ -public: - /// Default constructor - ACEXML_Parser_Context(); - - /// Constructor which initializes the context - ACEXML_Parser_Context (ACEXML_InputSource* instream, - ACEXML_LocatorImpl* locator); - - /// Comparison operator - bool operator!= (const ACEXML_Parser_Context& src); - - /// Destructor - virtual ~ACEXML_Parser_Context(); - - /// Reset the parser context. This does not free up the memory. Only sets - /// it to zero. Meant to be called after a context is pushed on to a - /// stack. - void reset (void); - - /// Get the underlying input source. - virtual ACEXML_InputSource* getInputSource(void); - - /// Get the underlying locator. - virtual ACEXML_LocatorImpl* getLocator(void); - - /// Set the underlying input source. - virtual void setInputSource(ACEXML_InputSource* ip); - - /// Set the underlying locator. - virtual void setLocator(ACEXML_LocatorImpl* locator); - -private: - - /// Copy constructor - ACEXML_Parser_Context (const ACEXML_Parser_Context& src); - - /// Assignment operator - ACEXML_Parser_Context& operator= (const ACEXML_Parser_Context& src); - - /// Current input char stream. - ACEXML_InputSource *instream_; - - /// Current Locator which provides line no., column no. systemId and publicId - ACEXML_LocatorImpl* locator_; -}; - -#if defined (__ACEXML_INLINE__) -# include "ACEXML/parser/parser/ParserContext.inl" -#endif /* __ACEXML_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACEXML_PARSER_CONTEXT_H */ diff --git a/ACE/ACEXML/parser/parser/ParserContext.inl b/ACE/ACEXML/parser/parser/ParserContext.inl deleted file mode 100644 index b8f30ea248d..00000000000 --- a/ACE/ACEXML/parser/parser/ParserContext.inl +++ /dev/null @@ -1,77 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include - -ACEXML_INLINE -ACEXML_Parser_Context::ACEXML_Parser_Context() - : instream_ (0), - locator_ (0) -{ - -} - -ACEXML_INLINE -ACEXML_Parser_Context::ACEXML_Parser_Context (ACEXML_InputSource* instream, - ACEXML_LocatorImpl* locator) - : instream_ (instream), - locator_ (locator) -{ - -} - -ACEXML_INLINE -ACEXML_Parser_Context::ACEXML_Parser_Context (const ACEXML_Parser_Context& src) - : instream_ (src.instream_), - locator_ (src.locator_) -{ - -} - -ACEXML_INLINE bool -ACEXML_Parser_Context::operator!= (const ACEXML_Parser_Context& src) -{ - return (this->instream_ != src.instream_ && this->locator_ != src.locator_); -} - -ACEXML_INLINE ACEXML_Parser_Context& -ACEXML_Parser_Context::operator= (const ACEXML_Parser_Context& src) -{ - ACEXML_Parser_Context tmp (src); - std::swap (this->instream_, tmp.instream_); - std::swap (this->locator_, tmp.locator_); - return *this; -} - - -ACEXML_INLINE ACEXML_InputSource* -ACEXML_Parser_Context::getInputSource (void) -{ - return this->instream_; -} - -ACEXML_INLINE ACEXML_LocatorImpl* -ACEXML_Parser_Context::getLocator (void) -{ - return this->locator_; -} - -ACEXML_INLINE void -ACEXML_Parser_Context::setInputSource (ACEXML_InputSource* ip) -{ - this->instream_ = ip; -} - -ACEXML_INLINE void -ACEXML_Parser_Context::setLocator (ACEXML_LocatorImpl* locator) -{ - this->locator_ = locator; -} - -ACEXML_INLINE void -ACEXML_Parser_Context::reset (void) -{ - this->instream_ = 0; - this->locator_ = 0; -} diff --git a/ACE/ACEXML/parser/parser/ParserInternals.cpp b/ACE/ACEXML/parser/parser/ParserInternals.cpp deleted file mode 100644 index 38db8291fa5..00000000000 --- a/ACE/ACEXML/parser/parser/ParserInternals.cpp +++ /dev/null @@ -1,394 +0,0 @@ -// $Id$ - -#include "ACEXML/parser/parser/ParserInternals.h" - - -const ACEXML_Char* ACEXML_ParserInt::predef_ent_[] = { - ACE_TEXT ("amp"), - ACE_TEXT ("lt"), - ACE_TEXT ("gt"), - ACE_TEXT ("apos"), - ACE_TEXT ("quot") -}; - -const ACEXML_Char* ACEXML_ParserInt::predef_val_[] = { - ACE_TEXT ("&"), - ACE_TEXT ("<"), - ACE_TEXT (">"), - ACE_TEXT ("'"), - ACE_TEXT ("\"") -}; - -// Optimize away the most common cases. Any compiler worth it's salt should -// give generate a single memory access. - -const ACEXML_Char ACEXML_ParserInt::base_char_table_[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 - 0x000F */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 - 0x001F */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 - 0x002F */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 - 0x003F */ - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x0040 - 0x004F */ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* 0x0050 - 0x005F */ - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x0060 - 0x006F */ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* 0x0070 - 0x007F */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 - 0x008F */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 - 0x009F */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00A0 - 0x00AF */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00B0 - 0x00BF */ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00C0 - 0x00CF */ - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00D0 - 0x00DF */ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00E0 - 0x00EF */ - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00F0 - 0x00FF */ -}; - -#if defined (ACE_USES_WCHAR) - -int -ACEXML_ParserInt::isBasechar_i (const ACEXML_Char c) -{ - if (c < 0x0100) - return ACEXML_ParserInt::base_char_table_[c]; - else if (c < 0x0905) - return ((c >= 0x0100 && c <= 0x0131) || - (c >= 0x0134 && c <= 0x013E) || - (c >= 0x0141 && c <= 0x0148) || - (c >= 0x014A && c <= 0x017E) || - (c >= 0x0180 && c <= 0x01C3) || - (c >= 0x01CD && c <= 0x01F0) || - (c >= 0x01F4 && c <= 0x01F5) || - (c >= 0x01FA && c <= 0x0217) || - (c >= 0x0250 && c <= 0x02A8) || - (c >= 0x02BB && c <= 0x02C1) || - (c == 0x0386) || - (c >= 0x0388 && c <= 0x038A) || - (c == 0x038C) || - (c >= 0x038E && c <= 0x03A1) || - (c >= 0x03A3 && c <= 0x03CE) || - (c >= 0x03D0 && c <= 0x03D6) || - (c == 0x03DA) || - (c == 0x03DC) || - (c == 0x03DE) || - (c == 0x03E0) || - (c >= 0x03E2 && c <= 0x03F3) || - (c >= 0x0401 && c <= 0x040C) || - (c >= 0x040E && c <= 0x044F) || - (c >= 0x0451 && c <= 0x045C) || - (c >= 0x045E && c <= 0x0481) || - (c >= 0x0490 && c <= 0x04C4) || - (c >= 0x04C7 && c <= 0x04C8) || - (c >= 0x04CB && c <= 0x04CC) || - (c >= 0x04D0 && c <= 0x04EB) || - (c >= 0x04EE && c <= 0x04F5) || - (c >= 0x04F8 && c <= 0x04F9) || - (c >= 0x0531 && c <= 0x0556) || - (c == 0x0559) || - (c >= 0x0561 && c <= 0x0586) || - (c >= 0x05D0 && c <= 0x05EA) || - (c >= 0x05F0 && c <= 0x05F2) || - (c >= 0x0621 && c <= 0x063A) || - (c >= 0x0641 && c <= 0x064A) || - (c >= 0x0671 && c <= 0x06B7) || - (c >= 0x06BA && c <= 0x06BE) || - (c >= 0x06C0 && c <= 0x06CE) || - (c >= 0x06D0 && c <= 0x06D3) || - (c == 0x06D5) || - (c >= 0x06E5 && c <= 0x06E6)); - else if (c < 0x10A0) - return ((c >= 0x0905 && c <= 0x0939) || - (c == 0x093D) || - (c >= 0x0958 && c <= 0x0961) || - (c >= 0x0985 && c <= 0x098C) || - (c >= 0x098F && c <= 0x0990) || - (c >= 0x0993 && c <= 0x09A8) || - (c >= 0x09AA && c <= 0x09B0) || - (c == 0x09B2) || - (c >= 0x09B6 && c <= 0x09B9) || - (c >= 0x09DC && c <= 0x09DD) || - (c >= 0x09DF && c <= 0x09E1) || - (c >= 0x09F0 && c <= 0x09F1) || - (c >= 0x0A05 && c <= 0x0A0A) || - (c >= 0x0A0F && c <= 0x0A10) || - (c >= 0x0A13 && c <= 0x0A28) || - (c >= 0x0A2A && c <= 0x0A30) || - (c >= 0x0A32 && c <= 0x0A33) || - (c >= 0x0A35 && c <= 0x0A36) || - (c >= 0x0A38 && c <= 0x0A39) || - (c >= 0x0A59 && c <= 0x0A5C) || - (c == 0x0A5E) || - (c >= 0x0A72 && c <= 0x0A74) || - (c >= 0x0A85 && c <= 0x0A8B) || - (c == 0x0A8D) || - (c >= 0x0A8F && c <= 0x0A91) || - (c >= 0x0A93 && c <= 0x0AA8) || - (c >= 0x0AAA && c <= 0x0AB0) || - (c >= 0x0AB2 && c <= 0x0AB3) || - (c >= 0x0AB5 && c <= 0x0AB9) || - (c == 0x0ABD || c == 0x0AE0) || - (c >= 0x0B05 && c <= 0x0B0C) || - (c >= 0x0B0F && c <= 0x0B10) || - (c >= 0x0B13 && c <= 0x0B28) || - (c >= 0x0B2A && c <= 0x0B30) || - (c >= 0x0B32 && c <= 0x0B33) || - (c >= 0x0B36 && c <= 0x0B39) || - (c == 0x0B3D) || - (c >= 0x0B5C && c <= 0x0B5D) || - (c >= 0x0B5F && c <= 0x0B61) || - (c >= 0x0B85 && c <= 0x0B8A) || - (c >= 0x0B8E && c <= 0x0B90) || - (c >= 0x0B92 && c <= 0x0B95) || - (c >= 0x0B99 && c <= 0x0B9A) || - (c == 0x0B9C) || - (c >= 0x0B9E && c <= 0x0B9F) || - (c >= 0x0BA3 && c <= 0x0BA4) || - (c >= 0x0BA8 && c <= 0x0BAA) || - (c >= 0x0BAE && c <= 0x0BB5) || - (c >= 0x0BB7 && c <= 0x0BB9) || - (c >= 0x0C05 && c <= 0x0C0C) || - (c >= 0x0C0E && c <= 0x0C10) || - (c >= 0x0C12 && c <= 0x0C28) || - (c >= 0x0C2A && c <= 0x0C33) || - (c >= 0x0C35 && c <= 0x0C39) || - (c >= 0x0C60 && c <= 0x0C61) || - (c >= 0x0C85 && c <= 0x0C8C) || - (c >= 0x0C8E && c <= 0x0C90) || - (c >= 0x0C92 && c <= 0x0CA8) || - (c >= 0x0CAA && c <= 0x0CB3) || - (c >= 0x0CB5 && c <= 0x0CB9) || - (c == 0x0CDE) || - (c >= 0x0CE0 && c <= 0x0CE1) || - (c >= 0x0D05 && c <= 0x0D0C) || - (c >= 0x0D0E && c <= 0x0D10) || - (c >= 0x0D12 && c <= 0x0D28) || - (c >= 0x0D2A && c <= 0x0D39) || - (c >= 0x0D60 && c <= 0x0D61) || - (c >= 0x0E01 && c <= 0x0E2E) || - (c == 0x0E30) || - (c >= 0x0E32 && c <= 0x0E33) || - (c >= 0x0E40 && c <= 0x0E45) || - (c >= 0x0E81 && c <= 0x0E82) || - (c == 0x0E84) || - (c >= 0x0E87 && c <= 0x0E88) || - (c == 0x0E8A || c == 0x0E8D) || - (c >= 0x0E94 && c <= 0x0E97) || - (c >= 0x0E99 && c <= 0x0E9F) || - (c >= 0x0EA1 && c <= 0x0EA3) || - (c == 0x0EA5 || c == 0x0EA7) || - (c >= 0x0EAA && c <= 0x0EAB) || - (c >= 0x0EAD && c <= 0x0EAE) || - (c == 0x0EB0) || - (c >= 0x0EB2 && c <= 0x0EB3) || - (c == 0x0EBD) || - (c >= 0x0EC0 && c <= 0x0EC4) || - (c >= 0x0F40 && c <= 0x0F47) || - (c >= 0x0F49 && c <= 0x0F69)); - else - return ((c >= 0x10A0 && c <= 0x10C5) || - (c >= 0x10D0 && c <= 0x10F6) || - (c == 0x1100) || - (c >= 0x1102 && c <= 0x1103) || - (c >= 0x1105 && c <= 0x1107) || - (c == 0x1109) || - (c >= 0x110B && c <= 0x110C) || - (c >= 0x110E && c <= 0x1112) || - (c == 0x113C || c == 0x113E || c == 0x1140) || - (c == 0x114C || c == 0x114E || c == 0x1150) || - (c >= 0x1154 && c <= 0x1155) || - (c == 0x1159) || - (c >= 0x115F && c <= 0x1161) || - (c == 0x1163) || - (c == 0x1165) || - (c == 0x1167) || - (c == 0x1169) || - (c >= 0x116D && c <= 0x116E) || - (c >= 0x1172 && c <= 0x1173) || - (c == 0x1175) || - (c == 0x119E) || - (c == 0x11A8) || - (c == 0x11AB) || - (c >= 0x11AE && c <= 0x11AF) || - (c >= 0x11B7 && c <= 0x11B8) || - (c == 0x11BA) || - (c >= 0x11BC && c <= 0x11C2) || - (c == 0x11EB) || - (c == 0x11F0) || - (c == 0x11F9) || - (c >= 0x1E00 && c <= 0x1E9B) || - (c >= 0x1EA0 && c <= 0x1EF9) || - (c >= 0x1F00 && c <= 0x1F15) || - (c >= 0x1F18 && c <= 0x1F1D) || - (c >= 0x1F20 && c <= 0x1F45) || - (c >= 0x1F48 && c <= 0x1F4D) || - (c >= 0x1F50 && c <= 0x1F57) || - (c == 0x1F59) || - (c == 0x1F5B) || - (c == 0x1F5D) || - (c >= 0x1F5F && c <= 0x1F7D) || - (c >= 0x1F80 && c <= 0x1FB4) || - (c >= 0x1FB6 && c <= 0x1FBC) || - (c == 0x1FBE) || - (c >= 0x1FC2 && c <= 0x1FC4) || - (c >= 0x1FC6 && c <= 0x1FCC) || - (c >= 0x1FD0 && c <= 0x1FD3) || - (c >= 0x1FD6 && c <= 0x1FDB) || - (c >= 0x1FE0 && c <= 0x1FEC) || - (c >= 0x1FF2 && c <= 0x1FF4) || - (c >= 0x1FF6 && c <= 0x1FFC) || - (c == 0x2126) || - (c >= 0x212A && c <= 0x212B) || - (c == 0x212E) || - (c >= 0x2180 && c <= 0x2182) || - (c >= 0x3041 && c <= 0x3094) || - (c >= 0x30A1 && c <= 0x30FA) || - (c >= 0x3105 && c <= 0x312C) || - (c >= 0xAC00 && c <= 0xD7A3)); -}; - -int -ACEXML_ParserInt::isIdeographic_i (const ACEXML_Char c) -{ - return ((c >= 0x4E00 && c <= 0x9FA5) || - (c == 3007) || - (c >= 0x3021 && c <= 0x3029)); -} - -int -ACEXML_ParserInt::isCombiningchar_i (const ACEXML_Char c) -{ - if (c < 0x0901) - return ((c >= 0x0300 && c <= 0x0345) || - (c >= 0x0360 && c <= 0x0361) || - (c >= 0x0483 && c <= 0x0486) || - (c >= 0x0591 && c <= 0x05A1) || - (c >= 0x05A3 && c <= 0x05B9) || - (c >= 0x05BB && c <= 0x05BD) || - (c == 0x05BF) || - (c >= 0x05C1 && c <= 0x05C2) || - (c == 0x05C4) || - (c >= 0x064B && c <= 0x0652) || - (c == 0x0670) || - (c >= 0x06D6 && c <= 0x06DC) || - (c >= 0x06DD && c <= 0x06DF) || - (c >= 0x06E0 && c <= 0x06E4) || - (c >= 0x06E7 && c <= 0x06E8) || - (c >= 0x06EA && c <= 0x06ED)); - else - return ((c >= 0x0901 && c <= 0x0903) || - (c == 0x093C) || - (c >= 0x093E && c <= 0x094C) || - (c == 0x094D) || - (c >= 0x0951 && c <= 0x0954) || - (c >= 0x0962 && c <= 0x0963) || - (c >= 0x0981 && c <= 0x0983) || - (c == 0x09BC) || - (c == 0x09BE) || - (c == 0x09BF) || - (c >= 0x09C0 && c <= 0x09C4) || - (c >= 0x09C7 && c <= 0x09C8) || - (c >= 0x09CB && c <= 0x09CD) || - (c == 0x09D7) || - (c >= 0x09E2 && c <= 0x09E3) || - (c == 0x0A02) || - (c == 0x0A3C) || - (c == 0x0A3E) || - (c == 0x0A3F) || - (c >= 0x0A40 && c <= 0x0A42) || - (c >= 0x0A47 && c <= 0x0A48) || - (c >= 0x0A4B && c <= 0x0A4D) || - (c >= 0x0A70 && c <= 0x0A71) || - (c >= 0x0A81 && c <= 0x0A83) || - (c == 0x0ABC) || - (c >= 0x0ABE && c <= 0x0AC5) || - (c >= 0x0AC7 && c <= 0x0AC9) || - (c >= 0x0ACB && c <= 0x0ACD) || - (c >= 0x0B01 && c <= 0x0B03) || - (c == 0x0B3C) || - (c >= 0x0B3E && c <= 0x0B43) || - (c >= 0x0B47 && c <= 0x0B48) || - (c >= 0x0B4B && c <= 0x0B4D) || - (c >= 0x0B56 && c <= 0x0B57) || - (c >= 0x0B82 && c <= 0x0B83) || - (c >= 0x0BBE && c <= 0x0BC2) || - (c >= 0x0BC6 && c <= 0x0BC8) || - (c >= 0x0BCA && c <= 0x0BCD) || - (c == 0x0BD7) || - (c >= 0x0C01 && c <= 0x0C03) || - (c >= 0x0C3E && c <= 0x0C44) || - (c >= 0x0C46 && c <= 0x0C48) || - (c >= 0x0C4A && c <= 0x0C4D) || - (c >= 0x0C55 && c <= 0x0C56) || - (c >= 0x0C82 && c <= 0x0C83) || - (c >= 0x0CBE && c <= 0x0CC4) || - (c >= 0x0CC6 && c <= 0x0CC8) || - (c >= 0x0CCA && c <= 0x0CCD) || - (c >= 0x0CD5 && c <= 0x0CD6) || - (c >= 0x0D02 && c <= 0x0D03) || - (c >= 0x0D3E && c <= 0x0D43) || - (c >= 0x0D46 && c <= 0x0D48) || - (c >= 0x0D4A && c <= 0x0D4D) || - (c == 0x0D57) || - (c == 0x0E31) || - (c >= 0x0E34 && c <= 0x0E3A) || - (c >= 0x0E47 && c <= 0x0E4E) || - (c == 0x0EB1) || - (c >= 0x0EB4 && c <= 0x0EB9) || - (c >= 0x0EBB && c <= 0x0EBC) || - (c >= 0x0EC8 && c <= 0x0ECD) || - (c >= 0x0F18 && c <= 0x0F19) || - (c == 0x0F35) || - (c == 0x0F37) || - (c == 0x0F39) || - (c == 0x0F3E) || - (c == 0x0F3F) || - (c >= 0x0F71 && c <= 0x0F84) || - (c >= 0x0F86 && c <= 0x0F8B) || - (c >= 0x0F90 && c <= 0x0F95) || - (c == 0x0F97) || - (c >= 0x0F99 && c <= 0x0FAD) || - (c >= 0x0FB1 && c <= 0x0FB7) || - (c == 0x0FB9) || - (c >= 0x20D0 && c <= 0x20DC) || - (c == 0x20E1) || - (c >= 0x302A && c <= 0x302F) || - (c == 0x3099) || - (c == 0x309A)); -} - -int -ACEXML_ParserInt::isDigit_i (const ACEXML_Char c) -{ - if (c < 0x0040) - return (c >= 0x0030 && c <= 0x0039); - else - return ((c >= 0x0660 && c <= 0x0669) || - (c >= 0x06F0 && c <= 0x06F9) || - (c >= 0x0966 && c <= 0x096F) || - (c >= 0x09E6 && c <= 0x09EF) || - (c >= 0x0A66 && c <= 0x0A6F) || - (c >= 0x0AE6 && c <= 0x0AEF) || - (c >= 0x0B66 && c <= 0x0B6F) || - (c >= 0x0BE7 && c <= 0x0BEF) || - (c >= 0x0C66 && c <= 0x0C6F) || - (c >= 0x0CE6 && c <= 0x0CEF) || - (c >= 0x0D66 && c <= 0x0D6F) || - (c >= 0x0E50 && c <= 0x0E59) || - (c >= 0x0ED0 && c <= 0x0ED9) || - (c >= 0x0F20 && c <= 0x0F29)); -} - -int -ACEXML_ParserInt::isExtender_i (const ACEXML_Char c) -{ - // The compiler should generate a jump table and index into it directly. - switch (c) - { - case 0x00B7: case 0x02D0: case 0x02D1: case 0x0387: case 0x0640: - case 0x0E46: case 0x0EC6: case 0x3005: case 0x3031: case 0x3032: - case 0x3033: case 0x3034: case 0x3035: case 0x309D: case 0x309E: - case 0x30FC: case 0x30FD: case 0x30FE: - return 1; - default: - return 0; - } -} - -#endif /* ACE_USES_WCHAR */ diff --git a/ACE/ACEXML/parser/parser/ParserInternals.h b/ACE/ACEXML/parser/parser/ParserInternals.h deleted file mode 100644 index f1c89d8d25e..00000000000 --- a/ACE/ACEXML/parser/parser/ParserInternals.h +++ /dev/null @@ -1,102 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ParserInternals.h - * - * $Id$ - * - * @author Krishnakumar B - */ -//============================================================================= - -#ifndef _ACEXML_PARSER_INTERNALS_H_ -#define _ACEXML_PARSER_INTERNALS_H_ - -#include /**/ "ace/pre.h" -#include "ACEXML/parser/parser/Parser_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ACEXML/common/XML_Types.h" - -/** - * @class ACEXML_ParserInt ParserInternals.h "ACEXML/parser/parser/ParserInternals.h" - * - * @brief A class to hide some of the internal implementation details of - * the parser. - * - */ -class ACEXML_PARSER_Export ACEXML_ParserInt -{ - -public: -#if defined (ACE_USES_WCHAR) - - /** - * Check if a character @a c is a BaseChar. This method checks for the - * complete set of characters allowed when WCHAR support is enabled. - * - * @retval 1 if @a c is a valid XML Character, 0 otherwise. - */ - static int isBasechar_i (const ACEXML_Char c); - - /** - * Check if a character @a c is a Ideographic. This method checks for the - * complete set of characters allowed when WCHAR support is enabled. - * - * @retval 1 if @a c is a valid XML Character, 0 otherwise. - */ - static int isIdeographic_i (const ACEXML_Char c); - - /** - * Check if a character @a c is a CombiningChar. This method checks for the - * complete set of characters allowed when WCHAR support is enabled. - * - * @retval 1 if @a c is a valid XML Character, 0 otherwise. - */ - static int isCombiningchar_i (const ACEXML_Char c); - - /** - * Check if a character @a c is a Digit. This method checks for the - * complete set of characters allowed when WCHAR support is enabled. - * - * @retval 1 if @a c is a valid XML Character, 0 otherwise. - */ - static int isDigit_i (const ACEXML_Char c); - - /** - * Check if a character @a c is an Extender. This method checks for the - * complete set of characters allowed when WCHAR support is enabled. - * - * @retval 1 if @a c is a valid XML Character, 0 otherwise. - */ - static int isExtender_i (const ACEXML_Char c); - -#endif /* ACE_USES_WCHAR */ - - static const ACEXML_Char base_char_table_[256]; - - static const ACEXML_Char* predef_ent_[]; - - static const ACEXML_Char* predef_val_[]; - - // Enum describing the position in a document when a reference occurs. - enum ReferenceState { - IN_CONTENT, - IN_ATT_VALUE, - AS_ATT_VALUE, - IN_ENTITY_VALUE, - IN_INT_DTD, - IN_EXT_DTD, - IN_NOTATION, - INVALID = -1 - }; - -}; - -#include /**/ "ace/post.h" - -#endif /* _ACEXML_PARSER_INTERNALS_H_ */ diff --git a/ACE/ACEXML/parser/parser/Parser_export.h b/ACE/ACEXML/parser/parser/Parser_export.h deleted file mode 100644 index 71630ccd962..00000000000 --- a/ACE/ACEXML/parser/parser/Parser_export.h +++ /dev/null @@ -1,47 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Parser_export.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl -// ------------------------------ -#ifndef ACEXML_PARSER_EXPORT_H -#define ACEXML_PARSER_EXPORT_H - -#include "ace/config-all.h" - -#if defined (ACE_AS_STATIC_LIBS) && !defined (ACEXML_PARSER_HAS_DLL) -# define ACEXML_PARSER_HAS_DLL 0 -#endif /* ACE_AS_STATIC_LIBS && ACEXML_PARSER_HAS_DLL */ - -#if !defined (ACEXML_PARSER_HAS_DLL) -# define ACEXML_PARSER_HAS_DLL 1 -#endif /* ! ACEXML_PARSER_HAS_DLL */ - -#if defined (ACEXML_PARSER_HAS_DLL) && (ACEXML_PARSER_HAS_DLL == 1) -# if defined (ACEXML_PARSER_BUILD_DLL) -# define ACEXML_PARSER_Export ACE_Proper_Export_Flag -# define ACEXML_PARSER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define ACEXML_PARSER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* ACEXML_PARSER_BUILD_DLL */ -# define ACEXML_PARSER_Export ACE_Proper_Import_Flag -# define ACEXML_PARSER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define ACEXML_PARSER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* ACEXML_PARSER_BUILD_DLL */ -#else /* ACEXML_PARSER_HAS_DLL == 1 */ -# define ACEXML_PARSER_Export -# define ACEXML_PARSER_SINGLETON_DECLARATION(T) -# define ACEXML_PARSER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* ACEXML_PARSER_HAS_DLL == 1 */ - -#endif /* ACEXML_PARSER_EXPORT_H */ - -// End of auto generated file. diff --git a/ACE/ACEXML/parser/parser/parser.mpc b/ACE/ACEXML/parser/parser/parser.mpc deleted file mode 100644 index 580b85495a4..00000000000 --- a/ACE/ACEXML/parser/parser/parser.mpc +++ /dev/null @@ -1,14 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(ACEXML_Parser): acelib, ace_output, install { - avoids += ace_for_tao - sharedname = ACEXML_Parser - after += ACEXML - libs += ACEXML - dynamicflags += ACEXML_PARSER_BUILD_DLL - - Pkgconfig_Files { - ACEXML_Parser.pc.in - } -} diff --git a/ACE/ACEXML/tests/ContentHandler_Test.cpp b/ACE/ACEXML/tests/ContentHandler_Test.cpp deleted file mode 100644 index 7c7e2c5594b..00000000000 --- a/ACE/ACEXML/tests/ContentHandler_Test.cpp +++ /dev/null @@ -1,101 +0,0 @@ -//============================================================================= -/** - * @file ContentHandler_Test.cpp - * - * $Id$ - * - * @author Steve Huston - */ -//============================================================================= - -#include "ACEXML/common/DefaultHandler.h" -#include "ACEXML/common/InputSource.h" -#include "ACEXML/common/StrCharStream.h" -#include "ACEXML/parser/parser/Parser.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_main.h" - -class Basic_Content_Tester : public ACEXML_DefaultHandler -{ -public: - /** - * Receive notification of character data. - */ - virtual void characters (const ACEXML_Char *ch, - size_t start, - size_t length ACEXML_ENV_ARG_DECL); - - const ACEXML_Char *get_test_string (void) - { return Basic_Content_Tester::test_string_; } - -private: - static const ACEXML_Char *test_string_; -}; - -const ACEXML_Char * Basic_Content_Tester::test_string_ = - ACE_TEXT ("") - ACE_TEXT ("Example\n") - ACE_TEXT ("d'internationalisation"); - -void -Basic_Content_Tester::characters (const ACEXML_Char *ch, - size_t start, - size_t length ACEXML_ENV_ARG_DECL) -{ - static int already_called = 0; - static const ACEXML_Char *expect = - ACE_TEXT ("Example\nd'internationalisation"); - - if (already_called) - { - ACEXML_THROW (ACEXML_SAXException - (ACE_TEXT ("characters() called too much\n"))); - } - already_called = 1; - - size_t expected_len = ACE_OS::strlen (expect); - if (length != expected_len) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("characters() expected len %u (%*s); ") - ACE_TEXT ("got %u (%*s)\n"), - expected_len, expected_len, ch + start, - length, length, ch + start)); - ACEXML_THROW (ACEXML_SAXException (ACE_TEXT ("Functionality failure"))); - } - return; -} - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - int status = 0; - Basic_Content_Tester tester; - ACEXML_StrCharStream *test_stream = 0; - ACE_NEW_RETURN (test_stream, ACEXML_StrCharStream, -1); - if (test_stream->open (tester.get_test_string (), - ACE_TEXT ("test_stream")) < 0) - { - ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to create input stream\n"))); - return -1; - } - ACEXML_InputSource input (test_stream); - ACEXML_Parser parser; - parser.setContentHandler (&tester); - ACEXML_TRY_NEW_ENV - { - 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; - } - ACEXML_CATCH (ACEXML_SAXException, ex) - { - ex.print(); - status = 1; - } - ACEXML_ENDTRY; - return status; -} diff --git a/ACE/ACEXML/tests/HttpCharStream_Test.cpp b/ACE/ACEXML/tests/HttpCharStream_Test.cpp deleted file mode 100644 index ba969753a3d..00000000000 --- a/ACE/ACEXML/tests/HttpCharStream_Test.cpp +++ /dev/null @@ -1,40 +0,0 @@ -// $Id$ - -#include "ACEXML/common/HttpCharStream.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_main.h" - -int ACE_TMAIN (int, ACE_TCHAR *[]) -{ - const ACEXML_Char* test = ACE_TEXT("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"); - - const ACEXML_Char* simple = ACE_TEXT("http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"); - - ACEXML_HttpCharStream first; - ACEXML_HttpCharStream second; - ACEXML_Char ch; - - if (first.open (test) != -1) - { - while (first.get (ch) != -1) - ACE_OS::printf ("%c", ch); - } - else - { - first.close(); - ACE_ERROR ((LM_ERROR, "Error in opening stream : %m\n")); - } - if (second.open (simple) != -1) - { - while (second.get (ch) != -1) - ACE_OS::printf ("%c", ch); - } - else - { - second.close(); - ACE_ERROR ((LM_ERROR, "Error in opening stream : %m\n")); - } - first.close(); - second.close(); - return 0; -} diff --git a/ACE/ACEXML/tests/Makefile.am b/ACE/ACEXML/tests/Makefile.am deleted file mode 100644 index e8f43fdc317..00000000000 --- a/ACE/ACEXML/tests/Makefile.am +++ /dev/null @@ -1,222 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - -SUBDIRS = \ - . \ - util - -noinst_PROGRAMS = - -## Makefile.ContentHandler_Test.am - -if BUILD_ACEXML -if !BUILD_ACE_FOR_TAO - -noinst_PROGRAMS += ContentHandler_Test - -ContentHandler_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ACEXML/common - -if BUILD_ZLIB -if BUILD_ZZIP -ContentHandler_Test_CPPFLAGS += \ - $(ACE_ZZIP_CPPFLAGS) \ - $(ACE_ZLIB_CPPFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -ContentHandler_Test_SOURCES = \ - ContentHandler_Test.cpp - -ContentHandler_Test_LDFLAGS = - -if BUILD_ZLIB -if BUILD_ZZIP -ContentHandler_Test_LDFLAGS += \ - $(ACE_ZZIP_LDFLAGS) \ - $(ACE_ZLIB_LDFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -ContentHandler_Test_LDADD = \ - $(ACE_BUILDDIR)/ACEXML/parser/parser/libACEXML_Parser.la \ - $(ACE_BUILDDIR)/ACEXML/common/libACEXML.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -if BUILD_ZLIB -if BUILD_ZZIP -ContentHandler_Test_LDADD += \ - $(ACE_ZZIP_LIBS) \ - $(ACE_ZLIB_LIBS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -endif !BUILD_ACE_FOR_TAO -endif BUILD_ACEXML - -## Makefile.HttpCharStream_Test.am - -if BUILD_ACEXML -if !BUILD_ACE_FOR_TAO - -noinst_PROGRAMS += HttpCharStream_Test - -HttpCharStream_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ACEXML/common - -if BUILD_ZLIB -if BUILD_ZZIP -HttpCharStream_Test_CPPFLAGS += \ - $(ACE_ZZIP_CPPFLAGS) \ - $(ACE_ZLIB_CPPFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -HttpCharStream_Test_SOURCES = \ - HttpCharStream_Test.cpp - -HttpCharStream_Test_LDFLAGS = - -if BUILD_ZLIB -if BUILD_ZZIP -HttpCharStream_Test_LDFLAGS += \ - $(ACE_ZZIP_LDFLAGS) \ - $(ACE_ZLIB_LDFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -HttpCharStream_Test_LDADD = \ - $(ACE_BUILDDIR)/ACEXML/parser/parser/libACEXML_Parser.la \ - $(ACE_BUILDDIR)/ACEXML/common/libACEXML.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -if BUILD_ZLIB -if BUILD_ZZIP -HttpCharStream_Test_LDADD += \ - $(ACE_ZZIP_LIBS) \ - $(ACE_ZLIB_LIBS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -endif !BUILD_ACE_FOR_TAO -endif BUILD_ACEXML - -## Makefile.NamespaceSupport_Test.am - -if BUILD_ACEXML -if !BUILD_ACE_FOR_TAO - -noinst_PROGRAMS += NamespaceSupport_Test - -NamespaceSupport_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ACEXML/common - -if BUILD_ZLIB -if BUILD_ZZIP -NamespaceSupport_Test_CPPFLAGS += \ - $(ACE_ZZIP_CPPFLAGS) \ - $(ACE_ZLIB_CPPFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -NamespaceSupport_Test_SOURCES = \ - NamespaceSupport_Test.cpp - -NamespaceSupport_Test_LDFLAGS = - -if BUILD_ZLIB -if BUILD_ZZIP -NamespaceSupport_Test_LDFLAGS += \ - $(ACE_ZZIP_LDFLAGS) \ - $(ACE_ZLIB_LDFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -NamespaceSupport_Test_LDADD = \ - $(ACE_BUILDDIR)/ACEXML/parser/parser/libACEXML_Parser.la \ - $(ACE_BUILDDIR)/ACEXML/common/libACEXML.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -if BUILD_ZLIB -if BUILD_ZZIP -NamespaceSupport_Test_LDADD += \ - $(ACE_ZZIP_LIBS) \ - $(ACE_ZLIB_LIBS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -endif !BUILD_ACE_FOR_TAO -endif BUILD_ACEXML - -## Makefile.Transcoder_Test.am - -if BUILD_ACEXML -if !BUILD_ACE_FOR_TAO - -noinst_PROGRAMS += Transcoder_Test - -Transcoder_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ACEXML/common - -if BUILD_ZLIB -if BUILD_ZZIP -Transcoder_Test_CPPFLAGS += \ - $(ACE_ZZIP_CPPFLAGS) \ - $(ACE_ZLIB_CPPFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -Transcoder_Test_SOURCES = \ - Transcoder_Test.cpp - -Transcoder_Test_LDFLAGS = - -if BUILD_ZLIB -if BUILD_ZZIP -Transcoder_Test_LDFLAGS += \ - $(ACE_ZZIP_LDFLAGS) \ - $(ACE_ZLIB_LDFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -Transcoder_Test_LDADD = \ - $(ACE_BUILDDIR)/ACEXML/parser/parser/libACEXML_Parser.la \ - $(ACE_BUILDDIR)/ACEXML/common/libACEXML.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -if BUILD_ZLIB -if BUILD_ZZIP -Transcoder_Test_LDADD += \ - $(ACE_ZZIP_LIBS) \ - $(ACE_ZLIB_LIBS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -endif !BUILD_ACE_FOR_TAO -endif BUILD_ACEXML - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ACEXML/tests/NamespaceSupport_Test.cpp b/ACE/ACEXML/tests/NamespaceSupport_Test.cpp deleted file mode 100644 index 2632c6dc571..00000000000 --- a/ACE/ACEXML/tests/NamespaceSupport_Test.cpp +++ /dev/null @@ -1,150 +0,0 @@ -// $Id$ - -#include "ACEXML/common/NamespaceSupport.h" -#include "ace/OS_main.h" - -int ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACEXML_NamespaceSupport xmlns; - if (xmlns.init() == -1) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Error in initializing namespace support."))); - return 1; - } - xmlns.pushContext(); - xmlns.declarePrefix(ACE_TEXT (""), - ACE_TEXT ("http://www.w3.org/1999/xhtml")); - xmlns.declarePrefix(ACE_TEXT ("dc"), - ACE_TEXT ("http://www.purl.org/dc#")); - xmlns.declarePrefix(ACE_TEXT ("xc"), - ACE_TEXT ("http://www.purl.org/dc#")); - - const ACEXML_Char *lName, *uri; - const ACEXML_Char *n1 = ACE_TEXT ("p"); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("*** Checking processName:\n"))); - if (xmlns.processName (n1, uri, lName, 0) != 0) - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("Fail to resolve namespace name %s\n"), - n1)); - else - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Namespace URI: %s\nLocal name: %s\nRaw name: %s\n"), - uri, lName, n1)); - - const ACEXML_Char *n2 = ACE_TEXT ("dc:title"); - if (xmlns.processName(n2, uri, lName, 0) != 0) - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("Fail to resolve namespace name %S\n"), - n2)); - else - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Namespace URI: %s\nLocal name: %s\nRaw name: %s\n"), - uri, lName, n2)); - - const ACEXML_Char *n3 = ACE_TEXT ("xml:title"); - if (xmlns.processName(n3, uri, lName, 0) != 0) - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("Fail to resolve namespace name %S\n"), - n3)); - else - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Namespace URI: %s\nLocal name: %s\nRaw name: %s\n"), - uri, lName, n3)); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("\n*** Checking getDeclaredPrefixes\n"))); - - ACEXML_STR_LIST prefixes; - if (xmlns.getDeclaredPrefixes (prefixes) != 0) - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("Fail to get a list of declared prefixes\n"))); - else - { - ACEXML_STR_LIST::ITERATOR iter = prefixes.begin (); - const ACEXML_Char **prefix = 0; - - for (; iter.next (prefix);iter.advance ()) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prefix: \"%s\"\n"), *prefix)); - } - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getPrefix\n"))); - const ACEXML_Char *prefix = 0; - - if ((prefix = xmlns.getPrefix (ACE_TEXT ("http://www.purl.org/dc#"))) == 0) - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("Fail to get prefix of http://www.purl.org/dc#\n"))); - else - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Prefix of http://www.purl.org/dc# is %s\n"), - prefix)); - - if ((prefix = xmlns.getPrefix (ACE_TEXT ("http://www.w3.org/1999/xhtml"))) == 0) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Fail to get prefix of http://www.w3.org/1999/xhtml which is okay\n"))); - else - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("ERROR: Prefix of http://www.w3.org/1999/xhtml is %s\n"), - prefix)); - - if ((prefix = xmlns.getPrefix (ACE_TEXT ("http://www.w3.org/XML/1998/namespace"))) == 0) - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("Fail to get prefix of http://www.w3.org/XML/1998/namespace\n"))); - else - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Prefix of http://www.w3.org/XML/1998/namespace is %s\n"), - prefix)); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getPrefixes with known URI\n"))); - prefixes.reset (); - - if (xmlns.getPrefixes (ACE_TEXT ("http://www.purl.org/dc#"), prefixes) != 0) - ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to getPrefixes based on known URI\n"))); - else - { - ACEXML_STR_LIST::ITERATOR iter = prefixes.begin (); - const ACEXML_Char **prefix = 0; - - for (; iter.next (prefix);iter.advance ()) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prefix: \"%s\"\n"), *prefix)); - } - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getPrefixes\n"))); - prefixes.reset (); - - if (xmlns.getPrefixes (prefixes) != 0) - ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to getPrefixes\n"))); - else - { - ACEXML_STR_LIST::ITERATOR iter = prefixes.begin (); - const ACEXML_Char **prefix = 0; - - for (; iter.next (prefix);iter.advance ()) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prefix: \"%s\"\n"), *prefix)); - } - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getURI\n"))); - const ACEXML_Char *URI = 0; - - if ((URI = xmlns.getURI (ACE_TEXT ("dc"))) == 0) - ACE_DEBUG((LM_ERROR, ACE_TEXT ("Fail to get URI for \"dc\"\n"))); - else - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for \"dc\" is %s\n"), URI)); - if ((URI = xmlns.getURI (ACE_TEXT ("xc"))) == 0) - ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to get URI for \"xc\"\n"))); - else - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for \"xc\" is %s\n"), URI)); - if ((URI = xmlns.getURI (ACE_TEXT ("xml"))) == 0) - ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to get URI for \"xml\"\n"))); - else - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for \"xml\" is %s\n"), URI)); - if ((URI = xmlns.getURI (ACE_TEXT (""))) == 0) - ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to get default namespace URI\n"))); - else - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for default namespace is %s\n"), URI)); - - xmlns.popContext(); - - return 0; -} diff --git a/ACE/ACEXML/tests/Transcoder_Test.cpp b/ACE/ACEXML/tests/Transcoder_Test.cpp deleted file mode 100644 index f5dc289e5e0..00000000000 --- a/ACE/ACEXML/tests/Transcoder_Test.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// -*- C++ -*- $Id$ - -#include "ACEXML/common/Transcode.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_main.h" - -void dump_utf16 (const ACEXML_UTF16 *data, - size_t len) -{ - size_t ptr = 0; - - while (1) - { - ACE_DEBUG ((LM_DEBUG, "%04x", data[ptr])); - - if (++ptr >= len) - break; - - if (ptr % 4 == 0) - ACE_DEBUG ((LM_DEBUG, "\n")); - else - ACE_DEBUG ((LM_DEBUG, " ")); - } - ACE_DEBUG ((LM_DEBUG, "\n")); - return; -} - -int -ACE_TMAIN (int, ACE_TCHAR*[]) -{ - ACEXML_UTF16 org [18]; -// = { 1, 2, 4, 8, 0x10, 0x20, 0x40, -// 0x80, -// 0x100, 0x200, 0x400, -// 0x800, 0x801, 0x802, 0x804, 0x808, 0x810, 0x820, -// 0x840, 0x880, 0x900, 0xa00, 0xc00, -// 0x1000, 0x2000, 0x4000, 0x8000, 0 } - ACEXML_UCS4 temp = 1; - - ACE_OS::memset (org, 0, sizeof org); - size_t x; - - for (x = 0; temp < 0x10000; x++, temp <<= 1) - { - org[x] = static_cast (temp); - } - - ACE_DEBUG ((LM_DEBUG, "Original UTF16 string:\n")); - dump_utf16 (org, x); - ACE_DEBUG ((LM_DEBUG, "\n\n")); - - ACEXML_UTF8 decoded [MAXPATHLEN]; - ACE_OS::memset (decoded, 0, sizeof decoded); - - ACEXML_Transcoder::utf16s2utf8s (org, decoded, MAXPATHLEN); - - ACE_DEBUG ((LM_DEBUG, "Transcoded UTF8 string:\n")); - ACE_HEX_DUMP ((LM_DEBUG, decoded, ACE_OS::strlen (decoded) + 1)); - ACE_DEBUG ((LM_DEBUG, "\n\n")); - - ACEXML_UTF16 after [18]; - ACE_OS::memset (after, 0, sizeof after); - ACEXML_Transcoder::utf8s2utf16s (decoded, after, 18); - - ACE_DEBUG ((LM_DEBUG, "Restored UTF16 string:\n")); - dump_utf16 (after, x); - ACE_DEBUG ((LM_DEBUG, "\n\n")); - - return 0; -} diff --git a/ACE/ACEXML/tests/tests.mpc b/ACE/ACEXML/tests/tests.mpc deleted file mode 100644 index e0a2365e689..00000000000 --- a/ACE/ACEXML/tests/tests.mpc +++ /dev/null @@ -1,30 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(Transcoder_Test): aceexe, acexml { - exename = Transcoder_Test - Source_Files { - Transcoder_Test.cpp - } -} - -project(NamespaceSupport_Test): aceexe, acexml { - exename = NamespaceSupport_Test - Source_Files { - NamespaceSupport_Test.cpp - } -} - -project(HttpCharStream_Test): aceexe, acexml { - exename = HttpCharStream_Test - Source_Files { - HttpCharStream_Test.cpp - } -} - -project(ContentHandler_Test): aceexe, acexml { - exename = ContentHandler_Test - Source_Files { - ContentHandler_Test.cpp - } -} diff --git a/ACE/ACEXML/tests/util/Makefile.am b/ACE/ACEXML/tests/util/Makefile.am deleted file mode 100644 index b2d79bef425..00000000000 --- a/ACE/ACEXML/tests/util/Makefile.am +++ /dev/null @@ -1,70 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.util.am - -if BUILD_ACEXML -if !BUILD_ACE_FOR_TAO - -noinst_PROGRAMS = test - -test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ACEXML/common - -if BUILD_ZLIB -if BUILD_ZZIP -test_CPPFLAGS += \ - $(ACE_ZZIP_CPPFLAGS) \ - $(ACE_ZLIB_CPPFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -test_SOURCES = \ - test.cpp - -test_LDFLAGS = - -if BUILD_ZLIB -if BUILD_ZZIP -test_LDFLAGS += \ - $(ACE_ZZIP_LDFLAGS) \ - $(ACE_ZLIB_LDFLAGS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -test_LDADD = \ - $(ACE_BUILDDIR)/ACEXML/parser/parser/libACEXML_Parser.la \ - $(ACE_BUILDDIR)/ACEXML/common/libACEXML.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -if BUILD_ZLIB -if BUILD_ZZIP -test_LDADD += \ - $(ACE_ZZIP_LIBS) \ - $(ACE_ZLIB_LIBS) -endif BUILD_ZZIP -endif BUILD_ZLIB - -endif !BUILD_ACE_FOR_TAO -endif BUILD_ACEXML - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ACEXML/tests/util/test.cpp b/ACE/ACEXML/tests/util/test.cpp deleted file mode 100644 index 40f0eb41001..00000000000 --- a/ACE/ACEXML/tests/util/test.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// $Id$ -// A simple test for performance of the ACEXML_escape_string() function - -#include "ACEXML/common/XML_Util.h" - -#include "ace/OS_main.h" -#include "ace/Time_Value.h" -#include "ace/OS_NS_sys_time.h" -#include "ace/Log_Msg.h" - -const int MAX_ITERATIONS = 100 * 1000; -const int NUM_TEST_STRS = 6; - -static bool is_escaped(const ACEXML_String& s) -{ - if (s[0] != ACE_TEXT('&')) - return false; - if (s[s.length() - 1] != ACE_TEXT(';')) - return false; - return true; -} - -static int run_tests(ACEXML_String test_strings[NUM_TEST_STRS], int iterations) -{ - // Test 1 - Escape the strings using a new temporary string each iteration. - ACE_Time_Value start = ACE_OS::gettimeofday(); - int i = 0; - for (i = 0; i < iterations; ++i) - { - ACEXML_String tmp = ACEXML_escape_string(test_strings[i % NUM_TEST_STRS]); - if (! is_escaped(tmp)) - { - ACE_ERROR((LM_ERROR, "Error: Failed to escape string\n")); - return 1; - } - } - ACE_DEBUG((LM_DEBUG, "Test1 took %dms\n", (ACE_OS::gettimeofday() - start).msec())); - - // Test 2 - Escape the strings using a shared temporary string. This shouldn't - // be any faster than Test 1 as long as the compiler has return value optimization. - ACEXML_String tmp; - start = ACE_OS::gettimeofday(); - for (i = 0; i < iterations; ++i) - { - tmp = ACEXML_escape_string(test_strings[i % NUM_TEST_STRS]); - if (! is_escaped(tmp)) - { - ACE_ERROR((LM_ERROR, "Error: Failed to escape string\n")); - return 1; - } - } - ACE_DEBUG((LM_DEBUG, "Test2 took %dms\n", (ACE_OS::gettimeofday() - start).msec())); - - // Test 3 - Escape the strings using a shared temporary string. This time, we use - // the alternate form of ACEXML_escape_string() so that our temporary buffer is reused. - tmp.clear(1); - start = ACE_OS::gettimeofday(); - for (i = 0; i < iterations; ++i) - { - ACEXML_escape_string(test_strings[i % NUM_TEST_STRS], tmp); - if (! is_escaped(tmp)) - { - ACE_ERROR((LM_ERROR, "Error: Failed to escape string\n")); - return 1; - } - } - ACE_DEBUG((LM_DEBUG, "Test3 took %dms\n", (ACE_OS::gettimeofday() - start).msec())); - - // Test 4 - Same as Test 3, except that the tmp buffer shouldn't have to resize. - start = ACE_OS::gettimeofday(); - for (i = 0; i < iterations; ++i) - { - ACEXML_escape_string(test_strings[i % NUM_TEST_STRS], tmp); - if (! is_escaped(tmp)) - { - ACE_ERROR((LM_ERROR, "Error: Failed to escape string\n")); - return 1; - } - } - ACE_DEBUG((LM_DEBUG, "Test4 took %dms\n", (ACE_OS::gettimeofday() - start).msec())); - return 0; -} - -int ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACEXML_String test_strings[NUM_TEST_STRS] = { - ACE_TEXT("\"xxxxx\"xxxxxxxx xx\"xxxxxx xxxxxx\"xxxxxxxxxx xxxxxxxx\"xxxxxx\""), - ACE_TEXT("'xxxxx\'xxxxxxxx' xxxxxxxx xx'xxxxxxxx'xxxxxx xxxxxxx'xxxxxxx'"), - ACE_TEXT("&xxxx&xxxxxxxxx &xxxxxxxx xxxxx&xxxxxxxxxxx xxxx&xxxxxxxxxx&"), - ACE_TEXT(">xx>xxxxxxxxxxx >xxxxxxxx xxxxx>xxxxxxxxxxx xxxxx>xxxxxxxxx>"), - ACE_TEXT("xxxxxxx xx\"xxxxxxxxxxxx>"), - }; - - if (run_tests(test_strings, MAX_ITERATIONS) != 0) - return 1; - - ACE_DEBUG((LM_DEBUG, "Rerun tests with larger strings\n")); - for (int i = 0; i < NUM_TEST_STRS; ++i) - { - for (int j = 0; j < 5; ++j) - { - test_strings[i] += test_strings[i]; - } - } - - if (run_tests(test_strings, MAX_ITERATIONS / 10) != 0) - return 1; - - return 0; -} diff --git a/ACE/ACEXML/tests/util/util.mpc b/ACE/ACEXML/tests/util/util.mpc deleted file mode 100644 index 4deaa3719c4..00000000000 --- a/ACE/ACEXML/tests/util/util.mpc +++ /dev/null @@ -1,4 +0,0 @@ -// $Id$ -project: aceexe, acexml { - exename = test -} diff --git a/ACE/ASNMP/COPYRIGHT b/ACE/ASNMP/COPYRIGHT deleted file mode 100644 index ad880b9cf90..00000000000 --- a/ACE/ASNMP/COPYRIGHT +++ /dev/null @@ -1,68 +0,0 @@ -Mon Jul 14 12:12:32 PDT 1997 - -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - diff --git a/ACE/ASNMP/ChangeLog b/ACE/ASNMP/ChangeLog deleted file mode 100644 index a2fc9832377..00000000000 --- a/ACE/ASNMP/ChangeLog +++ /dev/null @@ -1,538 +0,0 @@ -Wed Mar 8 10:46:12 UTC 2006 Johnny Willemsen - - * asnmp/*.h: - Converted to doxygen style of documentation - -Wed Jan 4 22:47:13 UTC 2006 J.T. Conklin - - * ChangeLog: - - Untabify. - Delete-trailing-whitespace. - - Added "Local Variables" section defining "add-log-time-format" - to a really ugly lambda expression that formats changelog - timestamps in UTC and works with both GNU Emacs and XEmacs. - -Fri Dec 30 11:11:12 UTC 2005 Johnny Willemsen - - * asnmp/transaction.cpp: - Updated because the ACE_Time_Value constructors are now explicit - -Fri Dec 23 09:56:12 UTC 2005 Johnny Willemsen - - * asnmp/address.{h,cpp}: - Added LEN as postfix for HASH0, HASH1 and HASH2. VxWorks 6.1 PPC - defines HASH1 and HASH2 - -Wed Oct 5 10:23:12 UTC 2005 Johnny Willemsen - - * asnmp/asn1.cpp: - * asnmp/pdu.cpp: - Fixed might be used uninitialized warnings in MinGW build - -Fri Jul 15 10:12:19 2005 Douglas C. Schmidt - - * Removed the asnmp.mwc file so that it can be regenerated by MPC - automatically. Thanks to Sam Mesh for - reporting this. This fixes bugid 2190. - -Sun Oct 3 20:12:43 2004 Balachandran Natarajan - - * asnmp/oid.cpp: - - Fixed a double deletion problem reported by Shlomi Yaakobovich. - -Thu Sep 30 10:54:39 2004 Steve Huston - - * examples/get/get.cpp: - * examples/get/get_async.cpp: - * examples/next/next.cpp: - * examples/set/set.cpp: - * examples/trap/trap.cpp: - * examples/walk/walk.cpp: Added #include "ace/Argv_Type_Converter.h". - -Wed Sep 29 15:33:29 2004 Steve Huston - - * asnmp/sagent.cpp: - * agent/snmp_agent.cpp: - * examples/get/get.cpp: - * examples/get/get_async.cpp: - * examples/next/next.cpp: - * examples/set/set.cpp: - * examples/trap/trap.cpp: - * examples/walk/walk.cpp: - * tests/test_config.h: - * tests/Address_Test.cpp: - * tests/Counter64_Test.cpp: - * tests/Counter_Test.cpp: - * tests/Gauge_Test.cpp: - * tests/Integer_Test.cpp: - * tests/Octet_Test.cpp: - * tests/Oid_Test.cpp: - * tests/Target_Test.cpp: - * tests/Varbind_Test.cpp: Adjustments to build with wide-char. - -Fri Aug 6 08:14:12 2004 Douglas C. Schmidt - - * asnmp/transaction.{h,cpp}: Added a get_handle() call to - session. Thanks to Geo Sebastian - for this fix. - -Fri May 7 14:42:22 2004 Ossama Othman - - * tests/Counter_Test.cpp (TestCounter): - * tests/Gauge_Test.cpp (TestGuage): - * tests/Integer_Test.cpp (TestUnsignedInteger32): - - More "comparison between signed and unsigned integer" - warning fixes. - -Thu May 6 11:03:26 2004 Ossama Othman - - * tests/Counter_Test.cpp (TestCounter): - * tests/Counter64_Test.cpp (TestCounter64): - * tests/Gauge_Test.cpp (TestGuage): - * tests/Integer_Test.cpp (TestUnsignedInteger32): - - Fixed "comparison between signed and unsigned integer" - warnings. - -Mon Apr 26 18:37:12 UTC 2004 Johnny Willemsen - - * examples/get/get.cpp: - * examples/get/get_async.cpp: - * examples/next/next.cpp: - * examples/set/set.cpp: - * examples/trap/trap.cpp: - * examples/walk/walk.cpp: - Don't use deprecated methods of ACE_Get_Opt and ACE_Reactor - -Mon Apr 26 15:14:12 UTC 2004 Johnny Willemsen - - * examples/trap/purify4.1.txt: - Removed this file, it contains purify results and shouldn't - belong in the repo. - -Thu Apr 22 20:45:27 2004 Ossama Othman - - * tests/Octet_Test.cpp: - * tests/Oid_Test.cpp: - - Changed all return types for equality, relational and logical - operators to "bool", as is the norm for modern C++. - -Fri Apr 16 16:53:20 2004 Ossama Othman - - * tests/Gauge_Test.cpp (TestGuage): - * tests/Integer_Test.cpp (TestInteger32, TestUnsignedInteger32): - - Fixed some "comparison between signed and unsigned integer" - warnings. - -Mon Mar 29 06:56:11 UTC 2004 Johnny Willemsen - - * tests/Integer_Test.cpp: - Fixed a warning in Win32 builds. - -Fri Mar 26 09:49:10 2004 Balachandran Natarajan - - * tests/Integer_Test.cpp: - - Fixed a warning in Win32 builds. - -Fri Aug 29 07:56:19 2003 Ossama Othman - - * tests/Octet_Test.cpp (TestOctet): - - Fixed "string literal converted to char *" warning. String - literals are now considered "const" by standard C++. - -Sun Nov 24 17:04:33 2002 Douglas C. Schmidt - - * agent/main.cpp (main): Added ACE::init() to the beginning of - main() to prevent crashes on Windows. Thanks to Huseyin Calgin - for reporting this. - -Fri Feb 8 04:42:21 2002 Douglas C. Schmidt - - * asnmp/transaction.cpp (run): Changed the code to use ACE_Reactor::instance () - rather than a local ACE_Reactor on the stack. Thanks to Paresh - Raote for reporting this. - -Thu Jan 25 12:48:33 2001 Craig Rodrigues - - * agent/Makefile.orig - asnmp/address.h.orig - examples/next/next.cpp - examples/trap/trap.cpp - examples/walk/walk.cpp - tests/test_config.h - tests/Varbind_Test.cpp - tests/Counter64_Test.cpp - tests/run_tests.sh - - New agent Makefile, and compilation fixes. - -Sun Jun 4 14:51:33 2000 Darrell Brunsch - - * asnmp-overview.html: - - Added missing CVS Id string. - -Tue Dec 21 16:22:21 1999 David L. Levine - - * tests/*.cpp: removed the unnecessary explicit template - instantiation. Other instantiations were necessary - with it, and it seemed to serve no useful purpose: - there was no use of an ACE_Unbounded_Set. - Thanks to Jose Rubio for - reporting link failures with Sun CC 5.0, with explicit - template instantiation enabled. - - * tests/test_config.h: added #include of "ace/ACE.h", - because the file uses it later. g++ 2.91.66 on Linux - needed it. - -Wed Jul 14 08:26:42 1999 Brian Raven - - * asnmp/snmp.{h,cpp},wpdu.cpp: - SYNOPSIS: - 1) The agent IP address in traps originating from logical - domains on an Enterprise 10000 is that of the physical domain. - - 2) The code that gets the IP address uses gethostbyname - which is unsafe in a MT environment (according to the man page). - - DESCRIPTION: - 1) The problem seems to be caused by hostname only returning - the physical domain name. - - SAMPLE FIX/WORKAROUND: - 1) To get around this problem I added the capability to - override the local host name. - - 2) I would suggest using the GenAddress class to obtain the - IP address. - -Tue Jun 22 13:34:54 1999 David L. Levine - - * agent/Makefile: replaced rm -f with $(RM). - -Thu Apr 29 06:46:46 1999 David L. Levine - - * tests/Makefile: changed SRC to PSRC (for make depend). - Thanks to Sandeep Goyal for reporting - that the Makefile was broken. - -Mon Dec 28 22:03:57 1998 David L. Levine - - * agent/main.cpp: added #include "ace/inc_user_config.h", for - ACE_RCSID definition. Thanks to wym for - reporting that it won't compile without it. - -Tue Oct 27 08:52:05 1998 David L. Levine - - * asnmp/Makefile,tests/Makefile: added SRC definition for make depend, and updated dependencies. - -Mon Aug 3 17:50:08 1998 Gonzalo Diethelm - - * examples/get/get_async.cpp: - * examples/get/get.cpp: - Added ACE_RCSID to these files. - -Fri Jul 31 19:26:07 1998 Gonzalo Diethelm - - * examples/Makefile: - It had a missing info subdirectory. - - * agent/agent_impl.cpp: - * agent/main.cpp: - * agent/snmp_agent.cpp: - * asnmp/address.cpp: - * asnmp/asn1.cpp: - * asnmp/counter.cpp: - * asnmp/ctr64.cpp: - * asnmp/gauge.cpp: - * asnmp/integer.cpp: - * asnmp/octet.cpp: - * asnmp/oid.cpp: - * asnmp/pdu.cpp: - * asnmp/sagent.cpp: - * asnmp/snmp.cpp: - * asnmp/target.cpp: - * asnmp/timetick.cpp: - * asnmp/transaction.cpp: - * asnmp/vb.cpp: - * asnmp/wpdu.cpp: - * examples/get/get.cpp: - * examples/next/next.cpp: - * examples/set/set.cpp: - * examples/trap/trap.cpp: - * examples/walk/walk.cpp: - * tests/Address_Test.cpp: - * tests/Counter64_Test.cpp: - * tests/Counter_Test.cpp: - * tests/Gauge_Test.cpp: - * tests/Integer_Test.cpp: - * tests/Octet_Test.cpp: - * tests/Oid_Test.cpp: - * tests/Target_Test.cpp: - * tests/Varbind_Test.cpp: - Added ACE_RCSID to these files. - -Wed Jul 15 20:34:55 CDT 1998 - * general fixes for SNMPv1 trap generation code reported by - Hien Nguyen and Jeff Hall - Added Hien's fixes, plus fixed -c option - in examples/trap to properly set community string. - * release 2.0 - -Fri Jan 30 15:29:42 CST 1998 - * fix vb.cpp to handle Gauge/uInt the same way. While retrieving - ifTable found the bug. - -Wed Dec 10 12:09:36 CST 1997 - * sagent.cpp, Eric Newton fix. result not checked. v1.8 - -Mon Dec 8 14:33:59 CST 1997 - * Thanks to Eric Newton's continued patches - Version 1.7 has fixes for: agent, base library - Fix to the response type fixes the interoperability with CMU snmp on - linux. (and SNMP Research as well) - - Initialize member of Pdu: output_ - Send responses as response messages - Deallocate and reset the io_vec - - The transaction object didn't initialize the io_vec used to receive - a packet when it was used for an agent transaction. - - Cleans up a warning about using a const object from a previous - patch. - - Removes the transaction object from the Reactor. - - -Sun Nov 30 17:49:12 CST 1997 Mike MacFaden - * Thanks to Eric Newton's apply patches: - Removed G++ warnings: - Removed unused variables - Cleaned up unused args to functions - Initialized variables - Inserted casts in *printf* functions - Added int return types to function definitions - Converted some variables from int to size_t to cut down on - sign comparison warnings - Reordered constructor initializer lists - Added return statements to functions returning int - - Modified for G++ language differences: - Modified for loops for ANSI scoping rules - - Fixed Bugs: - Deleted incorrect (cut-n-pasted) header to transaction.h - Removed "assignment in if condition" error - Added missing "break;" in switch statement in wpdu - - Features: - Added async interface. - - Noise: - Modified makefiles for g++ on Linux RedHat 4.1 - - * The new async interface has a test example in examples/get/get_async.cpp - that is useful if you are extending the get application. - - * Fixed makefile to include -lasnmp when building tests/examples - - * Compile and test with ACE 4.4 on Solaris 2.5.1 using Sun CC 4.2 - no warnings/errors. get_async will sigbus however in destructors. - -Thu Sep 4 18:56:12 1997 Mike MacFaden - - * commit agent/ mibs/ and update asnmp/ with sagent.h, cpp - to implement a trivial SNMPv1 agent that hard codes support - for mib II system group only. - -Fri Aug 22 23:43:20 1997 Mike MacFaden - - * clean up two memory leaks in octet class and one umr - -Thu Aug 21 20:59:23 1997 Mike MacFaden - - * Added Netbios address support to GenAddress - and added DecNetAddress, AppleTalkAddress classes per CISCO-TC.my - (ftp://ftp.cisco.com/pub/mibs) - -Tue Aug 19 20:19:32 1997 Michael R. MacFaden - * change IpAddress::is_arpa() to is_private() and update the comments - per RFC 1597. Add new test routine to verify this function in - tests/Address_Test.cpp - - * add IpAddress::to_octet(OctetStr& val) which is useful when having to - send a network address as an Octet String as in CISCO-PING-MIB.my - -Tue Aug 5 12:12:39 1997 Mike MacFaden (mrm@mrm-ss20) - * Thanks to Amos Shapira apply patches - to support IRIX 6.3. Stated request for: - I think it would make things "righter" to make the code use C++ - strings (and maybe vectors?). - - * Begin testing on HP-UX 10.01 (missing ucontext.h) - -Sat Aug 2 12:07:43 1997 Douglas C. Schmidt - - * Started to integrate the code into a more ACE-like style, e.g., - added a the "asnmp/" prefix to all the header files so that we - don't need to play games with the -I flags and so we can always - know where we're getting the headers from. - -Fri Aug 1 19:23:52 1997 Mike MacFaden (mrm@mrm-ss20) - - * NOTES: This first version only tested on Solaris 2.5 - - * review classes for thread safety. Current thread design only - allows for one thread to safely access any ASNMP object created. - - * run purify test of get routine no -memory leaks. - - * verify both shared archive/static archive types work with - example programs - - * << Globals Changes >> - - * tested only archiver library version - - * reformat code to use one brace style. - - * changed all manifest constants defined as _XX to XX_ to stay out - of compiler namespace - - * change all OS calls to use ACE_OS:: portability layer, #include - - - * reformat code to use one consistent brace layout and redo - header using ACE - - * remove semicolons on member functions foo{}; - not necessary - - * make get() methods const member functions - - * removed unnecessary casts that looked like this: and revamped - all memory allocations via ACE_NEW macro - - new_oid = (SmiLPUINT32) new unsigned long [ smival.value.oid.len - - To - - ACE_NEW(new_oid, SmiUINT32[ smival.value.oid.len]) - - * Collapsed default constructors with constructors to constructors - with default arguments. - - * removed unused #include - - * Added ACE_TRACE() to classes - - * change get_printable() to to_string() - there will be more java - programmers in the future so this should be the first step... - - * removed ASYNC interface till it can be rebuilt using ACE patterns - - * Attempt to make interface more type strict but leaving generic - interfaces as escape hatch. Example: CTarget becomes UdpTarget - for UDP/IP based agents. - - * << Class Specific Changes >> - - * Oid class: - - remove char * routines, simplify class - - added suboid method and removed get_printable() overloads - - * CTarget class: - - renamed to UdpTarget. Stay out of Microsoft Namespace per MSJ - Article by Allen Hollub. - - * Varbind class: - - remove generic set_value for char,int, etc. Too easy to get - this wrong. Allow just types defined. - - added overload for equality operator (==) - - added new constructor to allow setting full vb state oid,value, exception - - add to_string() - - * Address class: - - change manifest constants to enums for address lengths, add IP V6 lens - - - add a netbios name class, still pretty worthless since I don't have spec - in front of me yet... - - - rewrite resolver calls to be thread safe and cleaner by moving to two - class (static) member functions: - - // thread safe routine to lookup ip address given hostname - // return <> 0 on error - static int resolve_to_addr(const char *hostname, in_addr& quad_addr); - - // thread safe routine to lookup name given ip address - // return <> 0 on error - static int resolve_to_hostname(const in_addr& quad_addr, char *hostname) - - * added some interrogation routines to class IpAddress: - is_loopback() const; - - * Ctr64 class: - - added constructor using long long datatype (needs to be made - portable to NT - - * Pdu class: add to_string() - - * Classes added wpdu class: - - a new adpater class between CMU and HP pdu, varbind data structures - - * transaction class: - - implement get/getnext timeout and retry logic using ACE - Reactor class, ACE_Time_Value - -Sat Jul 5 19:13:30 1997 Mike MacFaden (mrm@mrm-ss20) - - * unpacked snmp++.tar.Z into ACE_wrappers, remove X11 support. If - you need GUI support in a communications package, something's - wrong, very wrong.... - - * Change HP-UX Makefiles to use ACE makefile system - - * Change includes to use ACE OS Adaption Layer - - * change all OS calls to use ACE_OS:: versions - - * Add ACE_TRACE macros to all functions. - - * clean up the global namespace by puting all global functions - into C++ classes as static member functions and make public only - those that are used (uxsnmp.cpp, eventlist.cpp) - - * create README from readme.txt, COPYRIGHT files. - - * create tests/ directory rename ConsoleExamples to examples - - * cull out dead code modules and dump them into misc dir: - oidname.cpp, ipresolv.cpp - - * ipresolv.cpp had broken hostname buffer size (200), when DNS has - aways defined a max FQDN as 256...go figure. - - * add General Error handler since existing ones are not very - useful in and of themselves. - - * change all _DEF to DEF_ since _ANYTHING is reserved for compiler - writer namespace, NOT app writer - - * convert cmu code to use C++ new/delete from malloc/free so - entire library uses C++ new constructor - -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/ASNMP/Makefile.am b/ACE/ASNMP/Makefile.am deleted file mode 100644 index 7ff1160c8a3..00000000000 --- a/ACE/ASNMP/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -SUBDIRS = \ - asnmp \ - agent \ - examples \ - tests - diff --git a/ACE/ASNMP/README b/ACE/ASNMP/README deleted file mode 100644 index f07563c61a5..00000000000 --- a/ACE/ASNMP/README +++ /dev/null @@ -1,177 +0,0 @@ -Fri Dec 18 09:43:35 CST 1998 -==================================================================== -ASNMP = ACE+SNMP++ Version 2.1 -By Michael R. MacFaden mrm@acm.org, mrm@yagosys.com -==================================================================== - -What is ASNMP ? ==> ACE+SNMP! aka Another SNMP API - HP's SNMP++ 2.5 freely available C++ SNMP class library - has been adapted to the ACE 4.2 Framework. - -What is Simple Network Management Protocol(SNMP)? - See the FAQ: - http://www.snmp.com/FAQs/snmp-faq-part1.txt - http://www.snmp.com/FAQs/snmp-faq-part2.txt - - -What was changed from HP version? - See src/ChangeLog file. - -Is HP SNMP++ compatible with ASNMP? - It is neither source nor binary compatible. About 10% of the API has changed. - There have been API changes to make the interface more orthogonal - and to reduce implementation complexity such as consolidating constructors - with default formal values, and to remove some inconsistencies - with the HP interface as well as locking down valid() semantics, etc. - -What platforms have the test programs been verified on? - Solaris 2.4, 2.5.1 using SUN C++ 4.1,4.2 compiler. Linux/GCC - fixes are now in as well. - -Why use this version? - The SNMP++ version ships only for HP-UX and for Windows. - It is not very portable nor does it do a good job at checking - for out of memory exhaustion conditions (asn1.cpp). There is some great - code here. ACE needs an SNMP library to build NM type - communications applications. Hence ASNMP was born in my spare time. - -How does ASNMP differ from SNMP? - Current version uses ACE OS Adaption layer. All memory - allocation is now consistent, uses ACE_NEW(). - Standard ACE Debugging (ACE_TRACE) has been inserted. - ASNMP has less global namespace pollution by moving all non-class - functions into interface classes or made into static locals. - - An agent inteface has been added (asnmp/sagent.h) so both agents - and managers can use this class library. A trivial agent - exists in ASNMP/agent/ - - X11 GUI support removed from this version since this is - not the place to include GUI support in the new world of - multi-threaded apps. - - The async interface does not match the HP implementation. - -How to build this library - Set ACE_ROOT and platform_macros.GNU per ../INSTALL file. - create libasnmp.a, libasnmp.so and then run the tests - -Any Support for ASNMP? - As time permits from the mailing list. - -Where to ask questions? - Please use ace-users@cs.wustl.edu mailing list or mrm@acm.org - -NOTE: Please do not bother Eric Mellquist unless you are using - the original HP version of this library. - -Where can I get the original HP SNMP++? - From ftp://rosegarden.external.hp.com:/pub/snmp++ - -What version of SNMP is fully supported? - SNMP Version 1 (RFC 1155,1157, 1215) - -What about SNMP Version 2c? - V2c is defined in RFC 1901 - 1908 - These bits are added to v1 code in this library: GetBulk PDU, Counter64 - These bits are missing Inform (RFC 1905) - RFC 1903 defined new datatypes using existing SMI via macros. - These should be coded as if they were SMI datatypes to encapsulate - their behavior. V2c hasn't been deployed - -What about SNMP Version 3? - It is looking good for V3, but so far, we're just watching. - http://www.ietf.org/html.charters/snmpv3-charter.html - A C implemenation is now available from UC Davis. - -What copyrights/legal requirements are required when using this code? - See ./COPYRIGHT - -Does this really work? - See tests/ directory for the current test reports (purify/purecov/...). - -How does one Extend an SNMP Agent? - Extending an agent typically means updating the agent source or - using a dynamic link style API. RFC 2257 (AgentX) is the current design - for doing this in a standard way. This hasn't been well formalized yet - so extending an existing agent is still a vendor API thing. - - The agent provided here is a template. A mib compiler and agent - library typically provide better agent support. See the UC-Davis - SNMP software for an example Agent that is portable and can report - on many flavors of UNIX and Windows. - -Any Future Plans? - The ASNMP library will be improved for performance and made to use - higher level design patterns. Hopefully it will be used as a - vehicle for grad students to learn something about network mgmt - code work a related cousin of general distributed programming. - - -Regards, -Michael R. MacFaden -Member of the Technical Staff -Cabletron Systems, Inc. -215 Moffet Park Drive -Sunnyvale, CA 94089 -mrm@yagosys.com -http://www.yagosys.com - -==================================================================== -SNMP++ For UNIX Source Code and Examples: -==================================================================== -Included within this package can be found the source code and -examples for SNMP++. The following represents the directories which -are included within the compressed tar file and their contents. - -For more details on the API , please refer to the API specification. - -This library is a complete implementation of SNMP++ and does not -require other SNMP libraries to be present. - -Required Tools: ---------------------------------------------------------------------- - - -readme.txt ( this file) -| -| -|------ src ( .cpp files and Makefile for building libraries ) -| -|------ examples ( a variety of apps, .cpp and Makefile included ) -| -|------ tests - unit test routines - - -src Directory Contents: --------------------------------------------------------------------- -Makefile - make file for ACE/Solaris 2. build -target.cpp - Collection of attributes(address, timeout, etc) used - to define a command session -snmp.cpp - A logical session between NM app and agent -pdu.cpp - Pdu class source (vb list and API command) -wpdu.cpp - Adapter pattern based class between CMU and HP code -transaction.cpp - synchronous transaction clss -vb.cpp - Variable Binding class source (oid + value) - -<< SMI datatypes used to get/set values in SNMPv1 agents >> - -address.cpp - Address class source -gauge.cpp - Gauge32 class source -integer.cpp - Integer32 class source -counter.cpp - Counter32 class source -ctr64.cpp - Counter64 class source -timetick.cpp - TimeTicks class source -octet.cpp - Octet String class source -oid.cpp - Oid class source -asn1.cpp - ASN1 encoding and decoding code. CMU code. - -examples Directory Contents: ---------------------------------------------------------------------- -Makefile - make file for building console apps -get.cpp - source for SNMP get program -next.cpp - source for SNMP get Next program -set.cpp - source for SNMP set program -trap.cpp - source for SNMP trap send program -walk.cpp - source for SNMP walk program - diff --git a/ACE/ASNMP/TO-DO b/ACE/ASNMP/TO-DO deleted file mode 100644 index a05b7106f58..00000000000 --- a/ACE/ASNMP/TO-DO +++ /dev/null @@ -1,3 +0,0 @@ -TODO: - - Attempt to make all subroutines thread safe - - work on test suite - validate basic stuff doesn't leak diff --git a/ACE/ASNMP/agent/Makefile.am b/ACE/ASNMP/agent/Makefile.am deleted file mode 100644 index afb76da40ed..00000000000 --- a/ACE/ASNMP/agent/Makefile.am +++ /dev/null @@ -1,45 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.asnmp_agent.am - -if !BUILD_USES_WCHAR - -noinst_PROGRAMS = agent - -agent_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -agent_SOURCES = \ - agent_impl.cpp \ - main.cpp \ - snmp_agent.cpp \ - agent_impl.h \ - snmp_agent.h - -agent_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -endif !BUILD_USES_WCHAR - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ASNMP/agent/agent.mpc b/ACE/ASNMP/agent/agent.mpc deleted file mode 100644 index 4579c29d458..00000000000 --- a/ACE/ASNMP/agent/agent.mpc +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -project (asnmp_agent) : aceexe { - exename = agent - after += asnmp_lib - libs += asnmp - avoids += uses_wchar - includes += $(ACE_ROOT)/ASNMP - source_files { - agent_impl.cpp - main.cpp - snmp_agent.cpp - } -} diff --git a/ACE/ASNMP/agent/agent_impl.cpp b/ACE/ASNMP/agent/agent_impl.cpp deleted file mode 100644 index e1949f54067..00000000000 --- a/ACE/ASNMP/agent/agent_impl.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// $Id$ - -// implement a prototype SNMP Agent using ASNMP and ACE - -#include -#include -#include -#include - -#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) -{ - ACE_TRACE("agent_impl::agent_impl"); - tgt_.set_read_community(rd); - tgt_.set_write_community(wr); - agent_clock_.start(); -} - -agent_impl::~agent_impl() -{ - ACE_TRACE("agent_impl::~agent_impl"); -} - -// callback : have received a Pdu from the target host with given read comm str -// this is really simplistic, but gives the general idea -int agent_impl::handle_get( Pdu &pdu, UdpTarget &target) -{ - ACE_TRACE("agent_impl::handle_get"); - OctetStr mgr_rd_str, agent_rd_str; - target.get_read_community(mgr_rd_str); // requster's read community string - tgt_.get_read_community(agent_rd_str); // this agent's read community string - - // 1. verify we have a valid read string else drop pdu (no response to caller) - if (mgr_rd_str != agent_rd_str) { - ACE_DEBUG((LM_DEBUG, "agent_impl::handle_get: invalid read community recvd\n")); - return 0; - } - - // 2. iterate over each varbind in the pdu, filling providing responses - int fdone = 0; - for (int i = 0; (i < pdu.get_vb_count()) && !fdone; i++) { - Vb vb; - pdu.get_vb(vb, i); - if (get_response(vb)) { // set a value for the oid if we can else - set_error_status(&pdu, SNMP_ERROR_NO_SUCH_NAME); // these ought to be member - set_error_index(&pdu, i); // functions but are not yet... - fdone++; // trigger flag to exit loop early - } - else // failed, return noSuch error - pdu.set_vb(vb, i); - } - - // 3. lastly, return the pkt to the caller - return respond(pdu, target); -} - -// this routine makes up the brains of the agent -// it knows only the MIB II system group set of variables for a get operation -int agent_impl::get_response(Vb& vb) -{ - // these objects represent the MIB II system group per RFC 1213 - static Oid sysDescr("1.3.6.1.2.1.1.1.0"), - sysObjectID("1.3.6.1.2.1.1.2.0"), sysUpTime("1.3.6.1.2.1.1.3.0"), - sysContact("1.3.6.1.2.1.1.4.0"), sysName("1.3.6.1.2.1.1.5.0"), - sysLocation("1.3.6.1.2.1.1.6.0"), sysServices("1.3.6.1.2.1.1.7.0"); - - Oid oid; - vb.get_oid(oid); - if (oid == sysDescr) { - OctetStr desc("ASNMP Prototype Agent 1.0"); - vb.set_value(desc); - } - else if (oid == sysObjectID) { // the IANA gives assigns Enterprise Numbers - // see ftp://ftp.isi.edu/in-notes/iana/assignments/enterprise-numbers - // for the official list of enterprise numbers. Then under this tree - // assign a unique subtree to identify this agent - Oid id("1.3.6.1.4.1.2533.9.1"); - vb.set_value(id); - } - else if (oid == sysUpTime) { - ACE_Time_Value tv; - agent_clock_.elapsed_time (tv); - TimeTicks tt(tv.msec()); - vb.set_value(tt); - } - else if (oid == sysContact) { - OctetStr contact("mrm@acm.org"); - vb.set_value(contact); - } - else if (oid == sysName) { - OctetStr fqdn("foo.org"); // extract this from the gethostbyname() TODO - vb.set_value(fqdn); - } - else if (oid == sysLocation) { - OctetStr loc(""); - vb.set_value(loc); - } - else if (oid == sysServices) { - SnmpInt32 svcs(72); - vb.set_value(svcs); - } - else - return 1; // noSuchName - - return 0; -} - -int agent_impl::handle_get_next( Pdu &, UdpTarget &) -{ - ACE_TRACE("agent_impl::handle_get_next -NI"); - return 0; -} - -int agent_impl::handle_set( Pdu &, UdpTarget &) -{ - ACE_TRACE("agent_impl::handle_set -NI"); - return 0; -} - -// stuff used by process_requests - -// called when SIGINT -static sig_atomic_t finished = 0; - -extern "C" void -sig_handler (int) -{ - ACE_TRACE("::sig_handler"); - finished = 1; -} - -int agent_impl::process_requests() -{ - ACE_TRACE("agent_impl::process_requests"); - ACE_Reactor reactor; - - ACE_Sig_Action sa ((ACE_SignalHandler) sig_handler, SIGINT); - ACE_UNUSED_ARG (sa); - - // Read data from other side. - if (reactor.register_handler (this, ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "ACE_Reactor::register_handler"), -1); - - // TODO: register signal handler to shut down gracefully here - - while (!finished) - { - reactor.handle_events (); - ACE_DEBUG ((LM_DEBUG, "return from handle events\n")); - } - - ACE_DEBUG ((LM_DEBUG, "return from handle events - normal shut down\n")); - return 0; -} diff --git a/ACE/ASNMP/agent/agent_impl.h b/ACE/ASNMP/agent/agent_impl.h deleted file mode 100644 index 60ee90034a2..00000000000 --- a/ACE/ASNMP/agent/agent_impl.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ASNMP -// -// = FILENAME -// agent_impl.h -// -// = AUTHOR -// Michael R. MacFaden -// -// ============================================================================ - -#ifndef AGENT_IMPL_H -#define AGENT_IMPL_H - -#include -#include -#include -#include -#include -#include - -class agent_impl : public sagent -{ -public: - agent_impl(unsigned short port, const char *rd, const char *wr); - virtual ~agent_impl(); - - virtual int handle_get( Pdu &pdu, UdpTarget &target); - // retrieve data from a peer agent for a given list of oid values - - virtual int handle_get_next( Pdu &pdu, UdpTarget &target); - // retrieve data lexically adjacent to the oids specified in the pdu - // from the peer agent - - virtual int handle_set( Pdu &pdu, UdpTarget &target); - // set data in the agent from the list of oids in the pdu - - int process_requests(); - // main loop here using a reactor object - -private: - UdpTarget tgt_; // this agent's read, write community strings - int get_response(Vb& vb); // set values for a "get" cmd - ACE_High_Res_Timer agent_clock_; // agent "uptime" ticks reported in 1/100 second -}; - -#endif /* AGENT_IMPL_H */ diff --git a/ACE/ASNMP/agent/main.cpp b/ACE/ASNMP/agent/main.cpp deleted file mode 100644 index abc4b418eeb..00000000000 --- a/ACE/ASNMP/agent/main.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -// This server daemon processes SNMP Version 1 get, get-next, and set -// commands. over the MIB II "System" group only. - -#include "ace/config-all.h" -#include "snmp_agent.h" -#include "ace/ACE.h" - -ACE_RCSID(agent, main, "$Id$") - -int -ACE_TMAIN(int argc, ACE_TCHAR *argv[]) -{ - ACE::init (); - snmp_agent the_agent; - - if (the_agent.set_args(argc, argv)) - return 1; - - if (!the_agent.valid()) { - return 1; - } - - the_agent.run(); // main loop - - return 0; -} diff --git a/ACE/ASNMP/agent/snmp_agent.cpp b/ACE/ASNMP/agent/snmp_agent.cpp deleted file mode 100644 index 04f916d3fc4..00000000000 --- a/ACE/ASNMP/agent/snmp_agent.cpp +++ /dev/null @@ -1,102 +0,0 @@ -// $Id$ - -// This server daemon processes SNMPv1 requests over MIB II System group - -#include "snmp_agent.h" -#include "agent_impl.h" // actual implementation -#include "ace/Argv_Type_Converter.h" -#include "ace/Get_Opt.h" -#include "ace/Reactor.h" - -ACE_RCSID(agent, snmp_agent, "$Id$") - -// module globals -#define SNMP_AGENT_PORT (161) -#define WR_COM ACE_TEXT ("private") -#define RD_COM ACE_TEXT ("public") - -snmp_agent::snmp_agent() : agent_(0) -{ - ACE_TRACE("snmp_agent::snmp_agent"); -} - -snmp_agent::~snmp_agent() -{ - ACE_TRACE("snmp_agent::~snmp_agent"); - delete agent_; -} - - -int snmp_agent::valid() const -{ - ACE_TRACE("snmp_agent::valid"); - return (agent_ != 0); -} - -int snmp_agent::set_args(int argc, char *argv[]) -{ - ACE_TRACE("snmp_agent::set_args"); - unsigned short port = SNMP_AGENT_PORT; - const ACE_TCHAR *rd = RD_COM; - const ACE_TCHAR *wr = WR_COM; - ACE_Argv_Type_Converter to_tchar (argc, 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; ) - { - switch (c) - { - case 'p': - port = (ACE_OS::atoi (get_opt.optarg)); - break; - case 'w': // write community string - wr = get_opt.optarg; - break; - case 'r': // read community string - rd = get_opt.optarg; - break; - case 'h': // help & version info - case 'v': - ACE_DEBUG - ((LM_DEBUG, - ACE_TEXT ("(%P|%t) Example SNMP Version 1 Agent - ASNMP/ACE\n"))); - return -1; - default: - return -1; // invalid arg - } - } - - agent_ = new agent_impl(port, - ACE_TEXT_ALWAYS_CHAR (rd), - ACE_TEXT_ALWAYS_CHAR (wr)); // opens OS IO port - return 0; -} - -int snmp_agent::run() -{ - ACE_TRACE("snmp_agent::run"); - ACE_ASSERT(agent_); - - // open service port -#if 0 - 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. - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%P|%t) starting up snmp agent (server) daemon\n"))); - - agent_->process_requests(); - - ACE_DEBUG - ((LM_DEBUG, - ACE_TEXT ("(%P|%t) shutting down snmp agent (server) daemon\n"))); - return 0; -} - diff --git a/ACE/ASNMP/agent/snmp_agent.h b/ACE/ASNMP/agent/snmp_agent.h deleted file mode 100644 index a7fc4c42de8..00000000000 --- a/ACE/ASNMP/agent/snmp_agent.h +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ - -#ifndef SNMP_AGENT_ -#define SNMP_AGENT_ -// ============================================================================ -// -// = LIBRARY -// ASNMP -// -// = FILENAME -// snmp_agent.h -// -// = AUTHOR -// Michael R. MacFaden (mrm@cisco.com) -// -// ============================================================================ - -class agent_impl; - -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 - ~snmp_agent(); - - int valid() const; - // did object construct ok - - int set_args(int argc, char *argv[]); - // runtime arguments such as community strings, port to use - - int run(); - // begin processing requests - - private: - snmp_agent(const snmp_agent&); - agent_impl *agent_; -}; - -#endif // SNMP_AGENT_ diff --git a/ACE/ASNMP/asnmp-overview.html b/ACE/ASNMP/asnmp-overview.html deleted file mode 100644 index 4e336178b0d..00000000000 --- a/ACE/ASNMP/asnmp-overview.html +++ /dev/null @@ -1,134 +0,0 @@ - - - -ASNMP Overview - -

ASNMP Overview

- -

The Another SNMP class library is an Object Oriented programming -toolkit for using IETF standard network management protocols in the -Internet. The SNMP protocol is perhaps the most ubiquitous management -protocol running on most very device or application deployed in the -modern network today. - -

ASNMP is targeted to programmers that want to write command and -control (C&C) applications. C&C Applications communicate with -a variety of objects: - -

  • network devices such as ATM switches, Internet routers, -LAN bridges and LAN printers -
  • Routing protocols such as OSPF -
  • database servers such as ORACLE or Informix. - -

    ASNMP Version 1 implements a blocking SNMP Version 1 with some -Version 2c additions (Counter32, Counter64 SMI values). See -SNMP Version 1 as defined in the IETF Request for Comments (RFC) - -

  • 1155 -
  • 1157 -
  • 1213 -
  • 1215 - -

    Also see the RFC 1902 spec for new SMI datatypes such as Counter64. - -

    ASNMP is built using the CMU SNMP and HP SNMP++ as the base -classes then modified for use in the ACE framework. About 10% of the API -changed during code rework. See ASNMP/asnmp/ChangeLog for details. - -

    ASNMP can be used for either manager applications or agent applications. -The Snmp class contains the interface for manager applications. The -sagent class contains the interface for agent applications. A -trivial agent that implements the mib II system group per rfc1213 is -in the agents/ directory. - -

    Class Heirarchy

    - -
    -UdpTarget - Defines a collection of attributes needed to define a 
    -             communications session with an SNMP agent 
    -            This includes  network address, response timeout, etc.
    -  
    -Snmp - A logical session between NM app and agent. Provides the
    -       commands get, get_next, trap. Manages transactions between app and 
    -       server.
    -
    -Pdu  - A container object that represents an SNMP Protocol Data Unit.
    -       A Pdu contains a command (get,getnext,trap) Varbind List list, 
    -       a community string.
    -
    -Vb   - Aka Varbind or Variable Binding.  A pdu can have zero, 
    -       one or more of these. A Vb consists of an Oid to identify 
    -       the variable and a value corresponding to  one of the SMI values. 
    -       The oid/value binding is defined in a MIB file (RFC 1155)
    -       Agents hava a MIB file that defines what each variable means.
    -       Most agents implement MIB II as defined in RFC 1156.        
    -
    -

    The Structure of Managment Information (SMI) datatypes -and related types are: -

      -
    • Address->IpAddress->UdpAddress as well as MAC, IPX, IPXSOCK, Netbios -
    • Unsigned Integer -
    • Gauge32 -
    • Integer32 -
    • Counter32 -
    • Counter64 -
    • TimeTicks -
    • OctetStr -
    • Oid -
    - -
    - -

    Sample program

    -

    A sample Object to get obtain an Agent's Systems' Description -given an network address and a community string. - -class system_id { - public: - system_id(UdpAddress addr, OctetStr read_community_string) - { - UdpTarget tgt; - Snmp snmp; - Pdu pdu; - Oid oid("1.3.6.1.2.1.1.1.0"); - Vb vb(oid); - tgt.set_address(addr); - tgt.set_read_community(read_community_string); - pdu += vb; - - if (snmp.get(pdu, tgt) == 0) { - pdu.get_vb(vb, 0); - vb.get_value(desc_); - } - else - desc_ = "" - } - - int get_description(OctetStr& description) { - description = desc_; - return 0; - } - -private: - OctetStr desc_; -}; - -

    Future Directions

    -

    Here are some areas for further work - -

  • Add OO mib parser and mib code generator -
  • Collapse the CMU/HP code into one set of classes. -
  • Add full V2c support. -
  • Size/Speed improvements - - -

    References

    - - diff --git a/ACE/ASNMP/asnmp/ASNMP_Export.h b/ACE/ASNMP/asnmp/ASNMP_Export.h deleted file mode 100644 index e4c9898f3f5..00000000000 --- a/ACE/ASNMP/asnmp/ASNMP_Export.h +++ /dev/null @@ -1,58 +0,0 @@ - -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl ASNMP -// ------------------------------ -#ifndef ASNMP_EXPORT_H -#define ASNMP_EXPORT_H - -#include "ace/config-all.h" - -#if defined (ACE_AS_STATIC_LIBS) && !defined (ASNMP_HAS_DLL) -# define ASNMP_HAS_DLL 0 -#endif /* ACE_AS_STATIC_LIBS && ! ASNMP_HAS_DLL */ - -#if !defined (ASNMP_HAS_DLL) -# define ASNMP_HAS_DLL 1 -#endif /* ! ASNMP_HAS_DLL */ - -#if defined (ASNMP_HAS_DLL) && (ASNMP_HAS_DLL == 1) -# if defined (ASNMP_BUILD_DLL) -# define ASNMP_Export ACE_Proper_Export_Flag -# define ASNMP_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define ASNMP_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* ASNMP_BUILD_DLL */ -# define ASNMP_Export ACE_Proper_Import_Flag -# define ASNMP_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define ASNMP_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* ASNMP_BUILD_DLL */ -#else /* ASNMP_HAS_DLL == 1 */ -# define ASNMP_Export -# define ASNMP_SINGLETON_DECLARATION(T) -# define ASNMP_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* ASNMP_HAS_DLL == 1 */ - -// Set ASNMP_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined (ASNMP_NTRACE) -# if (ACE_NTRACE == 1) -# define ASNMP_NTRACE 1 -# else /* (ACE_NTRACE == 1) */ -# define ASNMP_NTRACE 0 -# endif /* (ACE_NTRACE == 1) */ -#endif /* !ASNMP_NTRACE */ - -#if (ASNMP_NTRACE == 1) -# define ASNMP_TRACE(X) -#else /* (ASNMP_NTRACE == 1) */ -# if !defined (ACE_HAS_TRACE) -# define ACE_HAS_TRACE -# endif /* ACE_HAS_TRACE */ -# define ASNMP_TRACE(X) ACE_TRACE_IMPL(X) -# include "ace/Trace.h" -#endif /* (ASNMP_NTRACE == 1) */ - -#endif /* ASNMP_EXPORT_H */ - -// End of auto generated file. diff --git a/ACE/ASNMP/asnmp/ChangeLog b/ACE/ASNMP/asnmp/ChangeLog deleted file mode 100644 index 8d82c1aa36c..00000000000 --- a/ACE/ASNMP/asnmp/ChangeLog +++ /dev/null @@ -1,227 +0,0 @@ -Wed Jan 4 22:50:09 UTC 2006 J.T. Conklin - - * ChangeLog: - - Untabify. - Delete-trailing-whitespace. - - Added "Local Variables" section defining "add-log-time-format" - to a really ugly lambda expression that formats changelog - timestamps in UTC and works with both GNU Emacs and XEmacs. - -Fri May 7 11:40:25 2004 Ossama Othman - - * pdu.cpp (agent_error_reason): - - Really fixed mismatched sprintf() format specifiers this time - around. - -Thu May 6 11:13:25 2004 Ossama Othman - - * oid.cpp (operator+=, OidToStr): - * pdu.cpp (agent_error_reason): - - Fixed warnings regarding mismatch format specifiers and - arguments to sprintf(). - -Thu May 6 11:05:01 2004 Ossama Othman - - * gauge.h: - - Nuked trailing white space. - -Fri Apr 23 11:23:21 2004 Ossama Othman - - * oid.cpp: - - Missed some bool return types for equality operators. - -Thu Apr 22 23:03:48 2004 Ossama Othman - - * address.cpp: - * address.h: - * octet.cpp: - * octet.h: - * oid.cpp: - * oid.h: - * target.cpp: - * target.h: - * vb.cpp: - * vb.h: - - Changed all return types for equality, relational and logical - operators to "bool", as is the norm for modern C++. - -Fri Aug 29 07:57:05 2003 Ossama Othman - - * octet.cpp (to_string_hex): - - Fixed "string literal converted to char *" warning. String - literals are now considered "const" by standard C++. - -Tue Mar 16 16:28:14 1999 David L. Levine - - * address.cpp, address.h, asn1.cpp, asn1.h, counter.cpp, ctr64.cpp, - gauge.cpp, integer.cpp, octet.cpp, oid.cpp, pdu.cpp, sagent.cpp, - snmp.cpp, target.cpp, timetick.cpp, transaction.cpp, vb.cpp, - wpdu.cpp: - replaced TRUE with 1, and FALSE and NULL with 0. Thanks to - Achint Sandhu for reporting that - TRUE and FALSE weren't define on his Linux platform. - - * wpdu.cpp (set_trap_info): wrapped condition with () to - avoid g++ warning about using result of an assignment as - the condition. - - * ctr64.cpp: made MAX64 unsigned, to avoid warning about it - being to big to be signed. - -Wed Jul 15 20:27:23 1998 Mike MacFaden - * asn1.cpp - Hien Nguyen fixed these bugs: - - Problem: The V1 trap agent-addr field tag value is OCTET STRING - instead of IPADDRESS, and the time stamp field tag value is INTEGER - instead of TIME TICKS. - - Fix: Change cmu_snmp::build() to pass in the correct type for agent-addr - and time stamp. - - 2. Problem: The V1 trap enterprise OID is corrupted after is was set in - wpdu constructor. - - Fix: In wpdu::set_trap_info(), the raw_pdu enterprise OID pointer was - assigned to the raw data of an enterprise Oid object on the stack. - Changed to perform an ACE_NEW_RETURN on the raw_pdu->enterprise and - perform a memcpy to copy the OID. The allocated memory is freed in - cmu_snmp::free_pdu() as currently implemented. - - 3. The V1 trap agent-addr field is currently initialized to "0.0.0.0". - I changed wpdu::set_trap_info to initialize it to the local host IP - Address. - - 4. I noticed that the memory allocation for OID in asn1.cpp using - ACE_NEW consistently use (OID length * size(oid)) as the size. - Shouldn't it be simply OID length ? Since there are numerous instances - of this usage in asn1.cpp, I have not fixed those. If you can double - check and fix these, I appreciate it. - - -Wed Aug 20 15:11:23 1997 Mike MacFaden - - * rebuilt Makefile using g++dep - - * pdu.h pdu.cpp initialization errors fixed - - * address.h address.cpp IpAddress::to_octet() added - -Fri Aug 1 19:23:52 1997 Mike MacFaden (mrm@mrm-ss20) - - * NOTES: This first version only tested on Solaris 2.5 - - * review classes for thread safety. Current thread design only - allows for one thread to safely access any ASNMP object created. - - * run purify test of get routine no -memory leaks. - - * verify both shared archive/static archive types work with - example programs - - * << Globals Changes >> - - * tested only archiver library version - - * reformat code to use one brace style. - - * changed all manifest constants defined as _XX to XX_ to stay out - of compiler namespace - - * change all OS calls to use ACE_OS:: portability layer, #include - - - * reformat code to use one consistent brace layout and redo - header using ACE - - * remove semicolons on member functions foo{}; - not necessary - - * make get() methods const member functions - - * removed unnecessary casts that looked like this: and revamped - all memory allocations via ACE_NEW macro - - new_oid = (SmiLPUINT32) new unsigned long [ smival.value.oid.len - - To - - ACE_NEW(new_oid, SmiUINT32[ smival.value.oid.len]) - - * Collapsed default constructors with constructors to constructors - with default arguments. - - * removed unused #include - - * Added ACE_TRACE() to classes - - * change get_printable() to to_string() - there will be more java - programmers in the future so this should be the first step... - - * removed ASYNC interface till it can be rebuilt using ACE patterns - - * Attempt to make interface more type strict but leaving generic - interfaces as escape hatch. Example: CTarget becomes UdpTarget - for UDP/IP based agents. - - * << Class Specific Changes >> - - * Oid class: - - remove char * routines, simplify class - - added suboid method and removed get_printable() overloads - - * CTarget class: - - renamed to UdpTarget. Stay out of Microsoft Namespace per MSJ - Article by Allen Hollub. - - * Varbind class: - - remove generic set_value for char,int, etc. Too easy to get - this wrong. Allow just types defined. - - added overload for equality operator (==) - - added new constructor to allow setting full vb state oid,value, exception - - add to_string() - - * Address class: - - change manifest constants to enums for address lengths, add IP V6 lens - - - add a netbios name class, still pretty worthless since I don't have spec - in front of me yet... - - - rewrite resolver calls to be thread safe and cleaner by moving to two - class (static) member functions: - - // thread safe routine to lookup ip address given hostname - // return <> 0 on error - static int resolve_to_addr(const char *hostname, in_addr& quad_addr); - - // thread safe routine to lookup name given ip address - // return <> 0 on error - static int resolve_to_hostname(const in_addr& quad_addr, char *hostname) - - * added some interrogation routines to class IpAddress: - is_loopback() const; - - * Ctr64 class: - - added constructor using long long datatype (needs to be made - portable to NT - - * Pdu class: add to_string() - - * Classes added wpdu class: - - a new adpater class between CMU and HP pdu, varbind data structures - - * transaction class: - - implement get/getnext timeout and retry logic using ACE - Reactor class, ACE_Time_Value - -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/ASNMP/asnmp/Makefile.am b/ACE/ASNMP/asnmp/Makefile.am deleted file mode 100644 index 7b117dab9f6..00000000000 --- a/ACE/ASNMP/asnmp/Makefile.am +++ /dev/null @@ -1,66 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - -## Makefile.asnmp_lib.am - -noinst_LTLIBRARIES = libasnmp.la - -libasnmp_la_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP \ - -DASNMP_BUILD_DLL - -libasnmp_la_SOURCES = \ - address.cpp \ - asn1.cpp \ - counter.cpp \ - ctr64.cpp \ - gauge.cpp \ - integer.cpp \ - octet.cpp \ - oid.cpp \ - pdu.cpp \ - sagent.cpp \ - snmp.cpp \ - target.cpp \ - timetick.cpp \ - transaction.cpp \ - vb.cpp \ - wpdu.cpp - -noinst_HEADERS = \ - address.h \ - asn1.h \ - counter.h \ - ctr64.h \ - gauge.h \ - integer.h \ - octet.h \ - oid.h \ - pdu.h \ - sagent.h \ - snmp.h \ - target.h \ - timetick.h \ - transaction.h \ - vb.h \ - wpdu.h - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ASNMP/asnmp/TODO b/ACE/ASNMP/asnmp/TODO deleted file mode 100644 index 12beb91406b..00000000000 --- a/ACE/ASNMP/asnmp/TODO +++ /dev/null @@ -1,25 +0,0 @@ -This is the todo list aka wish list: feel free to add/implmement -Fri Aug 1 19:40:55 PDT 1997 - -0) collapse CMU and HP code - make this thing faster since it is really - slow and bulky... - -1) implement response time statistics collection so that timeout can vary based - on empirical response times - -2) Implement pdu fragmentation based on tooBig errors or app directed - Snmp::set_pdu_max_size() command - -3) implement async interface - -4) make templatized version to implement sync/nonsync (thread safe version) - -5) add V2c when a real agent is in the field that supports it - -6) Add DISMAN support when IETF approves the Expression Mib - -7) way too many procedural case stmts in the code... - -8) add compare_right() method to be orthogonal to oid class. - - diff --git a/ACE/ASNMP/asnmp/address.cpp b/ACE/ASNMP/asnmp/address.cpp deleted file mode 100644 index 32f43b4ad4e..00000000000 --- a/ACE/ASNMP/asnmp/address.cpp +++ /dev/null @@ -1,2705 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. - =====================================================================*/ - -#include "asnmp/address.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_arpa_inet.h" -#include "ace/OS_NS_netdb.h" -#include "ace/OS_NS_stdlib.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_ctype.h" -#include "ace/OS_Memory.h" - -ACE_RCSID(asnmp, address, "$Id$") - -//================================================================= -//======== Abstract Address Class Implementation ================== -//================================================================= - -// allow destruction of derived classes -Address::~Address() -{ -} - - -//----------------------------------------------------------------- -// is the address object valid? -int Address::valid() const -{ - return valid_flag; -} - -//------------[ Address::trim_white_space( char * ptr) ]------------ -// destructive trim white space -void Address::trim_white_space( char * ptr) -{ - char *tmp; - - tmp = ptr; - // skip leading white space - while (*tmp==' ')tmp++; - ACE_OS::strcpy(ptr,tmp); - - // find end of string - while ((*tmp!=' ') && (*tmp !=0)) tmp++; - if (*tmp!=0) *tmp=0; -} - -//TM: this is not used nor needed, remove? -//-----[ element access ]---------------------------------------------- -unsigned char& Address::operator[]( const int position) -{ - if ( position < MAX_ADDR_SZ) - return address_buffer[ position]; - else - return address_buffer[0]; -} - - -//----------------------------------------------------------------------- -// overloaded equivlence operator, are two addresses equal? -bool operator==( const Address &lhs, const Address &rhs) -{ - if ( ACE_OS::strcmp( (const char*) lhs, (const char*)rhs)==0) - return true; - else - return false; -} - -//----------------------------------------------------------------------- -// overloaded equivlence operator, are two addresses equal? -bool operator!=( const Address &lhs, const Address &rhs) -{ - return (!( lhs == rhs)); -} - - -//------------------------------------------------------------------ -// overloaded > operator, is a1 > a2 -bool operator>( const Address &lhs, const Address &rhs) -{ - if (ACE_OS::strcmp( (const char*) lhs, (const char*)rhs)>0) - return true; - else - return false; -} - -// overloaded >= operator, is a1 > a2 -bool operator>=( const Address &lhs,const Address &rhs) -{ - if (( lhs > rhs) || ( lhs == rhs)) - return true; - else - return false; -} - -// overloaded < operator, is a1 <= a2 -bool operator<=( const Address &lhs,const Address &rhs) -{ - if (( lhs < rhs) || ( lhs == rhs)) - return true; - else - return false; - -} - - -//----------------------------------------------------------------- -// overloaded < operator, is a1 < a2 -bool operator<( const Address &lhs, const Address &rhs) -{ - if (ACE_OS::strcmp( (const char*) lhs, (const char*)rhs)<0) - return true; - else - return false; -} - -//------------------------------------------------------------------ -// equivlence operator overloaded, are an address and a string equal? -bool operator==( const Address &lhs,const char *rhs) -{ - if (!rhs && !lhs.valid()) - return true; - if (ACE_OS::strcmp( (const char *) lhs, rhs)== 0) - return true; - else - return false; -} - -//------------------------------------------------------------------ -// not equal operator overloaded, are an address and a string not equal? -bool operator!=( const Address &lhs,const char *rhs) -{ - return (!( lhs == rhs)); -} - -//------------------------------------------------------------------ -// overloaded > , is a > inaddr -bool operator>( const Address &lhs,const char *rhs) -{ - if (!rhs) - return lhs.valid(); // if lhs valid then > 0, else invalid !> 0 - if (ACE_OS::strcmp( (const char *) lhs, rhs)> 0) - return true; - else - return false; -} - -//------------------------------------------------------------------ -// overloaded >= , is a >= inaddr -bool operator>=( const Address &lhs,const char *rhs) -{ - if (!rhs) - return true; // always >= 0 - if (ACE_OS::strcmp( (const char *) lhs, rhs)>= 0) - return true; - else - return false; -} - -//----------------------------------------------------------------- -// overloaded < , are an address and a string equal? -bool operator<( const Address &lhs,const char *rhs) -{ - if (!rhs) - return false; // always >= 0 - if (ACE_OS::strcmp( (const char *) lhs, rhs)< 0) - return true; - else - return false; -} - -//----------------------------------------------------------------- -// overloaded <= , is a <= inaddr -bool operator<=( const Address &lhs,const char *rhs) -{ - if (!rhs) - return !lhs.valid(); // invalid == 0, else valid > 0 - if (ACE_OS::strcmp( (const char *) lhs, rhs) <= 0) - return true; - else - return false; -} - - -//===================================================================== -//============ IPAddress Implementation =============================== -//===================================================================== - -//-----------[ syntax type ]---------------------------------------------- -SmiUINT32 IpAddress::get_syntax() -{ - return sNMP_SYNTAX_IPADDR; -} - -//-----[ IP Address copy constructor ]--------------------------------- -IpAddress::IpAddress(const IpAddress &ipaddr) - : Address (ipaddr) -{ - // always initialize what type this object is - smival.syntax = sNMP_SYNTAX_IPADDR; - smival.value.string.len =IPV4LEN; - smival.value.string.ptr = address_buffer; - - iv_friendly_name_[0] = 0; - iv_friendly_name_status_ = 0; - valid_flag = ipaddr.valid_flag; - if (valid_flag) { - ACE_OS::memcpy(address_buffer, ipaddr.address_buffer,IPV4LEN); - ACE_OS::strcpy( iv_friendly_name_, ipaddr.iv_friendly_name_); - } - - IpAddress::format_output(); -} - - -//-------[ default construct, an IP address with a string ]--------------------- -IpAddress::IpAddress( const char *inaddr): Address() -{ - // always initialize what type this object is - smival.syntax = sNMP_SYNTAX_IPADDR; - smival.value.string.len = IPV4LEN; - smival.value.string.ptr = address_buffer; - - if (ACE_OS::strlen(inaddr) == 0) { - - valid_flag = 0; - iv_friendly_name_[0] = 0; - iv_friendly_name_status_ = 0; - IpAddress::format_output(); - return; - } - - // parse_address initializes valid, address_buffer & iv_friendly_name_ - valid_flag = parse_address(inaddr); - IpAddress::format_output(); -} - - -//-----[ construct an IP address with a GenAddress ]--------------------- -IpAddress::IpAddress( const GenAddress &genaddr) -{ - // always initialize what type this object is - smival.syntax = sNMP_SYNTAX_IPADDR; - smival.value.string.len = IPV4LEN; - smival.value.string.ptr = address_buffer; - - valid_flag = 0; - iv_friendly_name_[0] = 0; - iv_friendly_name_status_ = 0; - // allow use of an ip or udp genaddress - if (genaddr.get_type() == type_ip) { - valid_flag = genaddr.valid(); - if ( valid_flag) { - // copy in the IP address data - IpAddress temp_ip( (const char *) genaddr); - *this = temp_ip; - } - } - else - if (genaddr.get_type() == type_udp) { - valid_flag = genaddr.valid(); - if ( valid_flag) { - // copy in the IP address data - UdpAddress temp_udp( (const char *) genaddr); - *this = temp_udp; - } - } - IpAddress::format_output(); -} - -//-----[ destructor ]-------------------------------------------------- -IpAddress::~IpAddress() -{ -} - -// assumes member data is word aligned to avoid sigbus -int IpAddress::is_loopback() const -{ - if (valid()) { - return (*(u_long *)&address_buffer == INADDR_LOOPBACK); - } - return 0; -} - -int IpAddress::is_multicast() const -{ - if (valid()) { - return (IN_MULTICAST(*(u_long *)&address_buffer)); - } - return 0; -} - -// Private addressess not are not assignable in the Internet, they are -// defined in RFC 1597 as: 10, 172.16, and 192.168.0 -// Some companies use them internally and apply NAT to allow translation -// instead of paying for ip networks. -// Cisco IOS devices can provide NAT aka Network Address Translation -// but don't expect SNMP based networks to handle cross-NAT address spaces. -// assumes storage in network byte order mrm@cisco.com 7/28/97 - -int IpAddress::is_private() const -{ - if (valid()) { - if (address_buffer[0] == 10) - return 1; - if (address_buffer[0] == 172 && address_buffer[1] == 16) - return 1; - if (address_buffer[0] == 192 && address_buffer[1] == 168 && - address_buffer[2] == 0) - return 1; - } - return 0; -} - - -// convert address into octet string format in network byte order -void IpAddress::to_octet(OctetStr& octet) const -{ - octet.set_data( smival.value.string.ptr, smival.value.string.len); -} - - -int IpAddress::is_broadcast() const -{ - if (valid()) { - return ( (*(u_long *)&address_buffer) & INADDR_BROADCAST); - } - return 0; -} - -//-----[ IP Address general = operator ]------------------------------- -SnmpSyntax& IpAddress::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag = 0; // will get set 1 if really valid - iv_friendly_name_[0]=0; - - if (val.valid()) { - switch (val.get_syntax()) { - case sNMP_SYNTAX_IPADDR: - case sNMP_SYNTAX_OCTETS: - if (((IpAddress &)val).smival.value.string.len ==IPV4LEN) { - ACE_OS::memcpy(address_buffer, - ((IpAddress &)val).smival.value.string.ptr,IPV4LEN); - valid_flag = 1; - } - break; - - // NOTE: as a value add, other types could have "logical" - // mappings, i.e. integer32 and unsigned32 - } - } - IpAddress::format_output(); - return *this; -} - -//------[ assignment to another ipaddress object overloaded ]----------------- -IpAddress& IpAddress::operator=( const IpAddress &ipaddress) -{ - // protect against assignment from itself - if ( this == &ipaddress ) - return *this; - - valid_flag = ipaddress.valid_flag; - iv_friendly_name_[0]=0; - - if (valid_flag) { - ACE_OS::memcpy(address_buffer, ipaddress.address_buffer, IPV4LEN); - ACE_OS::strcpy(iv_friendly_name_, ipaddress.iv_friendly_name_); - } - IpAddress::format_output(); - return *this; -} - - -//--------[ create a new instance of this Value ]----------------------- -SnmpSyntax *IpAddress::clone() const -{ - return (SnmpSyntax *) new IpAddress(*this); -} - -//-------[ return the Fully Qualified Domain Name ]---------------------- -const char *IpAddress::resolve_hostname(int &status) -{ - if ((iv_friendly_name_[0] == 0) && valid_flag) - addr_to_friendly(); - status = iv_friendly_name_status_; - return iv_friendly_name_; -} - -// parse a dotted string -int IpAddress::parse_dotted_ipstring( const char *inaddr) -{ - char *ip_token; - int token_count=0; - unsigned int value; - int error_status = 0; - char temp[MAXHOSTNAMELEN +1]; // temp buffer for destruction - int z,w; - - // check len, an ip can never be bigger than 15 - // 123456789012345 - // XXX.XXX.XXX.XXX - if ( !inaddr || (ACE_OS::strlen( inaddr) > 30)) - return 0; - ACE_OS::strcpy( temp, inaddr); - trim_white_space( temp); - if ( ACE_OS::strlen( temp) > 15) - return 0; - - // must only have three dots - // strtok will not catch this ! - char *ptr = temp; - int dot_count = 0; - while ( *ptr != 0) { - if ( *ptr == '.') dot_count++; - ptr++; - } - if ( dot_count != 3) - return 0; - - // look for dot token separator - ip_token = ACE_OS::strtok( (char *) temp,"."); - - // while more tokens.. - while ( ip_token != 0) { - // verify that the token is all numerics - w = ACE_OS::strlen( ip_token); - if (w>3) - return 0; - for (z=0;z '9')) - return 0; - - value = ( unsigned int) ACE_OS::strtod(ip_token,0); - if (( value > 0)&& ( value <=255)) - address_buffer[token_count] = (unsigned char) value; - else - if (ACE_OS::strcmp(ip_token,"0")==0) - address_buffer[token_count]= (unsigned char) 0; - else - error_status = 1; - token_count++; - ip_token = ACE_OS::strtok( 0, "."); - } - - // gota be four in len - if ( token_count != 4) - return 0; - - // any parsing errors? - if ( error_status) - return 0; - - return 1; -} - -//-----[ IP Address parse Address ]--------------------------------- -int IpAddress::parse_address( const char *inaddr) -{ - // parse the input char array - // fill up internal buffer with four ip bytes - // set and return validity flag - - in_addr ipAddr; - char ds[MAXHOSTNAMELEN +1]; - - // intialize the friendly_name member variable - iv_friendly_name_[0] = 0; - iv_friendly_name_status_ = 0; - - // is this a dotted IP notation string or - // a friendly name - if ( parse_dotted_ipstring( inaddr)) { - - // since this is a valid dotted string - // don't do any DNS (Performance!) - return 1; - } - else { - int rc; - if ((rc = resolve_to_address(inaddr, ipAddr)) == 0) { - - // now lets check out the dotted string - ACE_OS::strncpy( ds, ACE_OS::inet_ntoa(ipAddr), MAXHOSTNAMELEN); - - if ( !parse_dotted_ipstring( ds)) - return 0; - - // save the friendly name - ACE_OS::strcpy( iv_friendly_name_, inaddr); - - } // end if lookup result - else { - iv_friendly_name_status_ = rc; - return 0; - } - } // end else not a dotted string - return 1; -} - -// using the currently defined address, do a DNS -// and try to fill up the name -int IpAddress::addr_to_friendly() -{ - in_addr ipAddr; - long result = ACE_OS::inet_addr(to_string()); - if (result == -1) - return -1; // expected a dotted quad! - - ipAddr.s_addr = result; - - // set iv_friendly_name_ from ipAddr - if (resolve_to_hostname(ipAddr, iv_friendly_name_) == 0) { - return 0; - } - else { -#if defined (VXWORKS) - // VxWorks doesn't have h_errno - iv_friendly_name_status_ = errno; -#else - iv_friendly_name_status_ = h_errno; -#endif /* VXWORKS */ - return iv_friendly_name_status_; - } -} - -// static aka class member function (1.2.3.4 -> foo.com) -int IpAddress::resolve_to_hostname(const in_addr& quad_addr, char *hostname) -{ - struct hostent lookupResult; - int loc_errno = 0; - ACE_HOSTENT_DATA buffer; - ACE_OS::memset(&lookupResult, 0, sizeof(struct hostent)); - ACE_OS::memset(&buffer, 0, sizeof(ACE_HOSTENT_DATA)); - - // reverse lookup (requires in-addr.arpa to be setup in DNS - if (ACE_OS::gethostbyaddr_r((const char *)&quad_addr.s_addr, IPV4LEN, - AF_INET, &lookupResult, buffer, &loc_errno)) { - - // verify right type of record - if (lookupResult.h_addrtype == AF_INET && - lookupResult.h_length == IPV4LEN) { - ACE_OS::strcpy( hostname, lookupResult.h_name); - // setup multiple entries - return 0; - } - else { - ACE_ASSERT(0); // todo add trace and debug and dump - return -1; // wrong resource record type - } - } - - return loc_errno; -} - -// static aka class member function (foo.com -> 1.2.3.4) -int IpAddress::resolve_to_address(const char *hostname, in_addr& quad_addr) -{ - struct hostent lookupResult; - ACE_HOSTENT_DATA buffer; - ACE_OS::memset(&buffer, 0, sizeof(ACE_HOSTENT_DATA)); - ACE_OS::memset(&lookupResult, 0, sizeof(struct hostent)); - int loc_errno = 0; - if (ACE_OS::gethostbyname_r( hostname, &lookupResult, buffer, &loc_errno)) { - if (lookupResult.h_length == sizeof(in_addr) && - lookupResult.h_addrtype == AF_INET) { - ACE_OS::memcpy((void *) &quad_addr, - (void *) lookupResult.h_addr_list[0], sizeof(in_addr)); - return 0; - } - else - return -1; // wrong address size - } - return loc_errno; -} - -//----[ IP address char * cast ]-------------------------------------- -IpAddress::operator const char *() const -{ - return (char *)output_buffer; -} - -//----[ IP address get char representation ]-------------------------- -const char * IpAddress::to_string() -{ - return (char *)output_buffer; -} - -//----[ IP address format output ]------------------------------------ -void IpAddress::format_output() -{ - // if valid format else null it - if ( valid_flag) - ACE_OS::sprintf( (char *) output_buffer,"%d.%d.%d.%d",address_buffer[0], - address_buffer[1], address_buffer[2], address_buffer[3]); - else - output_buffer[0] = 0; -} - -//------[ return the type ]---------------------------------- -addr_type IpAddress::get_type() const -{ - return type_ip; -} - -//----------------------------------------------------------------- -// logically and two IPaddresses and -// return the new one -void IpAddress::mask( const IpAddress& ipaddr) -{ - if ( this->valid() && ipaddr.valid()) { - this->address_buffer[0] = this->address_buffer[0] & ipaddr.address_buffer[0]; - this->address_buffer[1] = this->address_buffer[1] & ipaddr.address_buffer[1]; - this->address_buffer[2] = this->address_buffer[2] & ipaddr.address_buffer[2]; - this->address_buffer[3] = this->address_buffer[3] & ipaddr.address_buffer[3]; - format_output(); - } - -} - -//======================================================================= -//========== DNS Iterator Implementation ================================ -//======================================================================= - - -Address_Iter::Address_Iter(const char *hostname): valid_(0), count_(0), - entry_(0) -{ - 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); - else { - ACE_ASSERT(0); // don't support dot-quad lookup yet - } - - // count number of hostnames - int n; - char **pc; - for (n = 0, pc = lookupResult_.h_addr_list; *pc != 0; ++n, ++pc); - count_ = n; // plus first one - entry_ = lookupResult_.h_addr_list; -} - -int Address_Iter::valid() const -{ - return (valid_ == 1); -} - -int Address_Iter::how_many_addresses() -{ - return count_; -} - -// return next entry, rc = 0, if entry is null return 0 -int Address_Iter::next(IpAddress& addr) -{ - if (!entry_ || *entry_ == 0) - return 1; - - IpAddress tmp(*entry_++); // return data - addr = tmp; - if (*entry_ == 0) - return 1; - return 0; -} - -// query DNS here -int Address_Iter::query_dns(const char *hostname) -{ - int loc_errno = 0; - if (ACE_OS::gethostbyname_r( hostname, &lookupResult_, buffer_, - &loc_errno)) { - if (lookupResult_.h_length == sizeof(IPV4LEN) && - lookupResult_.h_addrtype == AF_INET) { - return 0; - } - else - return -1; // wrong address size - } - return loc_errno; -} - -//======================================================================= -//========== Udp Address Implementation ================================= -//======================================================================= - -//-----------[ syntax type ]---------------------------------------------- -SmiUINT32 UdpAddress::get_syntax() -{ - return sNMP_SYNTAX_OCTETS; -} - -//-----------------[ construct an Udp address with another Udp address ]--- -UdpAddress::UdpAddress( const UdpAddress &udpaddr):IpAddress(udpaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = UDPIPV4LEN; - smival.value.string.ptr = address_buffer; - - // Copy the port value - set_port(udpaddr.get_port()); - format_output(); -} - -// default constructor with a dotted string -UdpAddress::UdpAddress( const char *inaddr):IpAddress() -{ - if (ACE_OS::strlen(inaddr) == 0) { - // Inherits IP Address attributes - // Always initialize (override) what type this object is - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = UDPIPV4LEN; - smival.value.string.ptr = address_buffer; - set_port(0); - format_output(); - return; - } - - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = UDPIPV4LEN; - smival.value.string.ptr = address_buffer; - - valid_flag = parse_address( (char *)inaddr); - format_output(); -} - -//-----------------[ construct a UdpAddress from a GenAddress ]-------------- -UdpAddress::UdpAddress( const GenAddress &genaddr):IpAddress() -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = UDPIPV4LEN; - smival.value.string.ptr = address_buffer; - - unsigned int port = 0; - valid_flag = 0; - - // allow use of an ip or udp genaddress - if (genaddr.get_type() == type_udp) - { - valid_flag = genaddr.valid(); - if ( valid_flag) - { - // copy in the IP address data - UdpAddress temp_udp( (const char *) genaddr); - *this = temp_udp; - - // port info since are making an UpAddress - port = temp_udp.get_port(); - } - } - else - if (genaddr.get_type() == type_ip) - { - valid_flag = genaddr.valid(); - if ( valid_flag) - { - // copy in the IP address data - IpAddress temp_ip( (const char *) genaddr); - *this = temp_ip; - } - } - set_port(port); - format_output(); -} - - -//--------[ construct a udp from an IpAddress ]-------------------------- -UdpAddress::UdpAddress( const IpAddress &ipaddr):IpAddress(ipaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = UDPIPV4LEN; - smival.value.string.ptr = address_buffer; - - set_port(0); - format_output(); -} - - -//-----[ destructor ]-------------------------------------------------- -UdpAddress::~UdpAddress() -{ -} - - - // copy an instance of this Value -SnmpSyntax& UdpAddress::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag=0; // will get set 1 if really valid - if (val.valid()){ - switch (val.get_syntax()){ - case sNMP_SYNTAX_IPADDR: - { - UdpAddress temp_udp(val.to_string()); - *this = temp_udp; // valid_flag is set by the udp assignment - } - break; - - case sNMP_SYNTAX_OCTETS: - if (((UdpAddress &)val).smival.value.string.len == UDPIPV4LEN){ - ACE_OS::memcpy(address_buffer, - ((UdpAddress &)val).smival.value.string.ptr, UDPIPV4LEN); - iv_friendly_name_[0] = 0; - valid_flag = 1; - } - break; - - // NOTE: as a value add, other types could have "logical" - // mappings, i.e. integer32 and unsigned32 - } - } - format_output(); - return *this; -} - - // assignment to another UdpAddress object overloaded -UdpAddress& UdpAddress::operator=( const UdpAddress &udpaddr) -{ - // protect against assignment from itself - if ( this == &udpaddr ) - return *this; - - (IpAddress &)*this = udpaddr; // use ancestor assignment for ipaddr value - set_port(udpaddr.get_port()); // copy to port value - format_output(); - return *this; -} - - -//-----[ IP Address parse Address ]--------------------------------- -int UdpAddress::parse_address( const char *inaddr) -{ - char buffer[MAXHOSTNAMELEN +1]; - - unsigned short port = 0; - if (inaddr && (ACE_OS::strlen( inaddr)< MAXHOSTNAMELEN +1)) - ACE_OS::strcpy( buffer, inaddr); - else { - valid_flag = 0; - return 0; - } - // look for port info @ the end of the string - // port can be delineated by a ':' or a '/' - // if neither are present then just treat it - // like a normal IpAddress - char *tmp; - tmp = ACE_OS::strstr( buffer,":"); - if (tmp==0) - tmp = ACE_OS::strstr(buffer,"/"); - - if ( tmp != 0) { - *tmp=0; // null terminator - tmp++; - port = ACE_OS::atoi( tmp); - } - - set_port(port); - return IpAddress::parse_address( buffer); -} - - -//----------[ create a new instance of this Value ]------------------------ -SnmpSyntax *UdpAddress::clone() const -{ - return (SnmpSyntax *) new UdpAddress(*this); -} - -//--------[ set the port number ]--------------------------------------- -void UdpAddress::set_port( const unsigned short p) -{ - unsigned short port_nbo = htons(p); - ACE_OS::memcpy(&address_buffer[IPV4LEN], &port_nbo, 2); - format_output(); -} - -//---------[ get the port number ]-------------------------------------- -unsigned short UdpAddress::get_port() const -{ - if (valid_flag) { - unsigned short port_nbo; - ACE_OS::memcpy(&port_nbo, &address_buffer[IPV4LEN], 2); - return ntohs(port_nbo); - } - else - return 0; // don't use uninitialized memory -} - -//------[ return the type ]-------------------------------------------- -addr_type UdpAddress::get_type() const -{ - return type_udp; -} - -//----[ UDP address char * cast ]-------------------------------------- -UdpAddress::operator const char *() const -{ - return (char *)output_buffer; -} - -//----[ UDP address get char representation ]-------------------------- -const char * UdpAddress::to_string() -{ - return (char *)output_buffer; -} - -// make format same as ACE_INET_Addr class (addr:port) -void UdpAddress::format_output() -{ - IpAddress::format_output(); // allow ancestors to format their buffers - - // if valid format else null it - if ( valid_flag) - ACE_OS::sprintf( (char *) output_buffer,"%s:%d", - IpAddress::to_string(), - get_port() ); - else - output_buffer[0] = 0; -} - - -//======================================================================= -//=========== Netbios Address Implementation ============================ -//======================================================================= - -void NetbiosAddress::format_output() -{ - if ( valid_flag) - ACE_OS::memcpy(output_buffer, address_buffer, NETBIOSLEN); - else - output_buffer[0] = 0; -} - -void NetbiosAddress::InitNBAddr(const char *inaddr) -{ - if (ACE_OS::strlen(inaddr) == 0) { - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = NETBIOSLEN; - smival.value.string.ptr = address_buffer; - - valid_flag=0; - NetbiosAddress::format_output(); - return; - } - - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = parse_address( (char *) inaddr); - NetbiosAddress::format_output(); -} - -// TODO: how to handle addresses < 15 chars (zero out or pad with ' ') -NetbiosAddress::NetbiosAddress( const char *inaddr) -{ - InitNBAddr(inaddr); - -} - -NetbiosAddress::NetbiosAddress( const char *inaddr, nb_service svc) -{ - InitNBAddr(inaddr); - address_buffer[15] = svc; -} - -// TODO: go back over ms/ibm specs and verify this -// 16 chars, 15 can be any character, 16th is service number between 0 and 20 -// names beginning with IBM are reserved, and hence invalid -// and doubt IBM would use this class anyway -int NetbiosAddress::parse_address(const char *address) -{ - if (ACE_OS::strlen(address) > NETBIOSLEN) - return 0; // invalid - - if (ACE_OS::strncmp(address, "IBM", 3) == 0) - return 0; // invalid - - // addresses are free form but this check may need to be expose to user - // - //if (address[15] < nb_workstation || address[15] > nb_server) - // return 0; //invalid service type - - ACE_OS::memset(address_buffer, 0, NETBIOSLEN); - ACE_OS::memcpy(address_buffer, address, NETBIOSLEN); - - return 1; // valid -} - -NetbiosAddress::NetbiosAddress( const NetbiosAddress& nbaddr) - : Address (nbaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = NETBIOSLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = nbaddr.valid_flag; - if (valid_flag) - ACE_OS::memcpy(address_buffer, nbaddr.address_buffer, NETBIOSLEN); - NetbiosAddress::format_output(); -} - -NetbiosAddress::NetbiosAddress( const GenAddress& genaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = NETBIOSLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = 0; - // allow use of an ipx or ipxsock address - if ( (genaddr.get_type() == type_nb) ) { - valid_flag = genaddr.valid(); - if ( valid_flag) { - // copy in the Ipx address data - NetbiosAddress temp_nb( (const char *) genaddr); - *this = temp_nb; - } - } - NetbiosAddress::format_output(); -} - -NetbiosAddress::~NetbiosAddress() -{ -} - -const char *NetbiosAddress::to_string() -{ - return (char *)output_buffer; -} - -void NetbiosAddress::to_octet(OctetStr& octet) const -{ - octet.set_data( smival.value.string.ptr, smival.value.string.len); -} - -NetbiosAddress& NetbiosAddress::operator=( const NetbiosAddress &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag = 0; // will set to 1 if really valid - if (val.valid()) { - switch (((NetbiosAddress *) &val)->get_syntax()) { - case sNMP_SYNTAX_OCTETS: - ACE_OS::memcpy(address_buffer, - ((NetbiosAddress &)val).smival.value.string.ptr, NETBIOSLEN); - valid_flag = 1; - break; - } - } - NetbiosAddress::format_output(); - return *this; -} - -nb_service NetbiosAddress::get_service_type() const -{ - return (nb_service) address_buffer[15]; -} - -void NetbiosAddress::set_service_type(nb_service nbservice) -{ - address_buffer[15] = nbservice; - NetbiosAddress::format_output(); -} - -NetbiosAddress::operator const char *() const -{ - return (char *)output_buffer; -} - -SnmpSyntax& NetbiosAddress::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag = 0; // will set to 1 if really valid - if (val.valid()) { - switch (val.get_syntax()) { - case sNMP_SYNTAX_OCTETS: - if (((NetbiosAddress &)val).smival.value.string.len == NETBIOSLEN) { - ACE_OS::memcpy(address_buffer, - ((NetbiosAddress &)val).smival.value.string.ptr, NETBIOSLEN); - valid_flag=1; - } - break; - } - } - NetbiosAddress::format_output(); - return *this; -} - -SnmpSyntax *NetbiosAddress::clone() const -{ - return (SnmpSyntax *) new NetbiosAddress(*this); -} - -SmiUINT32 NetbiosAddress::get_syntax() -{ - return sNMP_SYNTAX_OCTETS; -} - -addr_type NetbiosAddress::get_type() const -{ - return type_nb; -} - -//======================================================================= -//=========== IPX Address Implementation ================================ -//======================================================================= - -//-----------[ syntax type ]---------------------------------------------- -SmiUINT32 IpxAddress::get_syntax() -{ - return sNMP_SYNTAX_OCTETS; -} - - -//----------[ default constructor with a string arg ]--------------------------- -IpxAddress::IpxAddress( const char *inaddr):Address( ) -{ - if (ACE_OS::strlen(inaddr) == 0) { - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXLEN; - smival.value.string.ptr = address_buffer; - - separator = '\0'; - valid_flag=0; - IpxAddress::format_output(); - return; - } - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXLEN; - smival.value.string.ptr = address_buffer; - - separator = '\0'; - valid_flag = parse_address( (char *) inaddr); - IpxAddress::format_output(); -} - - -//-----[ IPX Address copy constructor ]---------------------------------- -IpxAddress::IpxAddress(const IpxAddress &ipxaddr) - : Address (ipxaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXLEN; - smival.value.string.ptr = address_buffer; - - separator = '\0'; - valid_flag = ipxaddr.valid_flag; - if (valid_flag) - ACE_OS::memcpy(address_buffer, ipxaddr.address_buffer, IPXLEN); - IpxAddress::format_output(); -} - - -//----[ construct an IpxAddress from a GenAddress ]--------------------------- -IpxAddress::IpxAddress( const GenAddress &genaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = 0; - // allow use of an ipx or ipxsock address - if ( (genaddr.get_type() == type_ipx) ) { - valid_flag = genaddr.valid(); - if ( valid_flag) { - // copy in the Ipx address data - IpxAddress temp_ipx( (const char *) genaddr); - *this = temp_ipx; - } - } - else - if ( (genaddr.get_type() == type_ipxsock) ) { - valid_flag = genaddr.valid(); - if ( valid_flag) { - // copy in the Ipx address data - IpxSockAddress temp_ipxsock( (const char *) genaddr); - *this = temp_ipxsock; - } - } - IpxAddress::format_output(); -} - - -//-----[ destructor ]-------------------------------------------------- -IpxAddress::~IpxAddress() -{ -} - - -//-----[ IPX Address general = operator ]------------------------------- -SnmpSyntax& IpxAddress::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag=0; // will set to 1 if really valid - if (val.valid()){ - switch (val.get_syntax()){ - case sNMP_SYNTAX_OCTETS: - if (((IpxAddress &)val).smival.value.string.len == IPXLEN){ - ACE_OS::memcpy(address_buffer, ((IpxAddress &)val).smival.value.string.ptr, IPXLEN); - valid_flag=1; - } - break; - } - } - IpxAddress::format_output(); - return *this; -} - -//--------[ assignment to another IpAddress object overloaded ]---------- -IpxAddress& IpxAddress::operator=( const IpxAddress &ipxaddress) -{ - // protect against assignment from itself - if ( this == &ipxaddress ) - return *this; - - valid_flag = ipxaddress.valid_flag; - if (valid_flag) - ACE_OS::memcpy(address_buffer, ipxaddress.address_buffer, IPXLEN); - IpxAddress::format_output(); - return *this; -} - - -// create a new instance of this Value -SnmpSyntax *IpxAddress::clone() const -{ - return (SnmpSyntax *) new IpxAddress(*this); -} - -//-----[ IPX Address parse Address ]----------------------------------- -// Convert a string to a ten byte ipx address -// On success sets validity 1 or 0 -// -// IPX address format -// -// NETWORK ID| MAC ADDRESS -// 01 02 03 04|05 06 07 08 09 10 -// XX XX XX XX|XX XX XX XX XX XX -// -// Valid input format -// -// XXXXXXXX.XXXXXXXXXXXX -// Total length must be 21 -// Must have a separator in it -// First string length must be 8 -// Second string length must be 12 -// Each char must take on value 0-F -// -// -// Input formats recognized -// -// XXXXXXXX.XXXXXXXXXXXX -// XXXXXXXX:XXXXXXXXXXXX -// XXXXXXXX-XXXXXXXXXXXX -// XXXXXXXX.XXXXXX-XXXXXX -// XXXXXXXX:XXXXXX-XXXXXX -// XXXXXXXX-XXXXXX-XXXXXX -int IpxAddress::parse_address( const char *inaddr) -{ - char unsigned *str1,*str2; - char temp[30]; // don't destroy original - char unsigned *tmp; - size_t z, tmplen; - - - // save the orginal source - if (!inaddr || (ACE_OS::strlen( inaddr) >(sizeof(temp)-1))) return 0; - ACE_OS::strcpy( temp, inaddr); - trim_white_space( temp); - tmplen = ACE_OS::strlen(temp); - - // bad total length check - // 123456789012345678901 - // XXXXXXXX-XXXXXXXXXXXX 21 len - // - // XXXXXXXX-XXXXXX-XXXXXX 22 len - // need at least 21 chars and no more than 22 - if ( (tmplen <21) || (tmplen >22)) - return 0; - - // convert the string to all lower case - // this allows hex values to be in upper or lower - for (z=0;z< tmplen;z++) - temp[z] = ACE_OS::ace_tolower(temp[z]); - - // check for separated nodeid - // if found remove it - if (temp[15] == '-') - { - for(z=16;z= '0') && (*tmp <= '9'))|| // good 0-9 - ((*tmp >= 'a') && (*tmp <= 'f'))) // or a-f - tmp++; - else - return 0; - - // check out the MAC address - tmp = str2; - while( *tmp != 0) - if (((*tmp >= '0') && (*tmp <= '9'))|| // good 0-9 - ((*tmp >= 'a') && (*tmp <= 'f'))) // or a-f - tmp++; - else - return 0; - - // convert to target string - tmp = str1; - while ( *tmp != 0) - { - if (( *tmp >= '0') && ( *tmp <= '9')) - *tmp = *tmp - (char unsigned )'0'; - else - *tmp = *tmp - (char unsigned) 'a' + (char unsigned) 10; - tmp++; - } - - // network id portion - address_buffer[0] = (str1[0]*16) + str1[1]; - address_buffer[1] = (str1[2]*16) + str1[3]; - address_buffer[2] = (str1[4]*16) + str1[5]; - address_buffer[3] = (str1[6]*16) + str1[7]; - - tmp = str2; - while ( *tmp != 0) - { - if (( *tmp >= '0') && ( *tmp <= '9')) - *tmp = *tmp - (char unsigned) '0'; - else - *tmp = *tmp - (char unsigned) 'a'+ (char unsigned) 10; - tmp++; - } - - address_buffer[4] = (str2[0]*16) + str2[1]; - address_buffer[5] = (str2[2]*16) + str2[3]; - address_buffer[6] = (str2[4]*16) + str2[5]; - address_buffer[7] = (str2[6]*16) + str2[7]; - address_buffer[8] = (str2[8]*16) + str2[9]; - address_buffer[9] = (str2[10]*16) + str2[11]; - - return 1; -} - -//----[ IPX address char * cast ]-------------------------------------- -IpxAddress::operator const char *() const -{ - return (char *)output_buffer; -} - -//----[ IPX address get char representation ]-------------------------- -const char * IpxAddress::to_string() -{ - return (char *)output_buffer; -} - - -//----[ IPX address format output ]------------------------------------- -void IpxAddress::format_output() -{ - if ( valid_flag) - ACE_OS::sprintf((char *) output_buffer, - "%02x%02x%02x%02x%c%02x%02x%02x%02x%02x%02x", - address_buffer[0],address_buffer[1], - address_buffer[2],address_buffer[3],'-', - address_buffer[4],address_buffer[5], - address_buffer[6],address_buffer[7], - address_buffer[8],address_buffer[9]); - else - output_buffer[0] = 0; -} - - -// get the host id portion of an ipx address -int IpxAddress::get_hostid( MacAddress& mac) -{ - if ( valid_flag) - { - char buffer[18]; - ACE_OS::sprintf( buffer,"%02x:%02x:%02x:%02x:%02x:%02x", - address_buffer[4], - address_buffer[5], address_buffer[6], address_buffer[7], - address_buffer[8], address_buffer[9]); - MacAddress temp( buffer); - // mac = (SnmpSyntax&) temp; - mac = temp; - if ( mac.valid()) - return 1; - else - return 0; - } - else - return 0; -} - - -//------[ return the type ]---------------------------------- -addr_type IpxAddress::get_type() const -{ - return type_ipx; -} - -void IpxAddress::to_octet(OctetStr& octet) const -{ - octet.set_data( smival.value.string.ptr, smival.value.string.len); -} - - -//======================================================================== -//======== IpxSockAddress Implementation ================================= -//======================================================================== - -//-----------[ syntax type ]---------------------------------------------- -SmiUINT32 IpxSockAddress::get_syntax() -{ - return sNMP_SYNTAX_OCTETS; -} - -//-----------[ construct an IpxSockAddress with another IpxSockAddress]---- -IpxSockAddress::IpxSockAddress( const IpxSockAddress &ipxaddr):IpxAddress(ipxaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXSOCKLEN; - smival.value.string.ptr = address_buffer; - - // copy the socket value - set_socket(ipxaddr.get_socket()); - format_output(); -} - - -//---------------[ default construct a IpxSockAddress ]-------------- -IpxSockAddress::IpxSockAddress( const char *inaddr):IpxAddress() -{ - if (ACE_OS::strlen(inaddr) == 0) { - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXSOCKLEN; - smival.value.string.ptr = address_buffer; - - set_socket(0); - format_output(); - return; - } - - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXSOCKLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = parse_address( (char *) inaddr); - format_output(); -} - - -//---------------[ construct a IpxSockAddress from a GenAddress ]---------- -IpxSockAddress::IpxSockAddress( const GenAddress &genaddr):IpxAddress() -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXSOCKLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = 0; - unsigned short socketid = 0; - // allow use of an ipx or ipxsock address - if ( (genaddr.get_type() == type_ipx) ) - { - valid_flag = genaddr.valid(); - if ( valid_flag) - { - // copy in the Ipx address data - IpxAddress temp_ipx( (const char *) genaddr); - *this = temp_ipx; - } - } - else - if ( (genaddr.get_type() == type_ipxsock) ) - { - valid_flag = genaddr.valid(); - if ( valid_flag) - { - // copy in the Ipx address data - IpxSockAddress temp_ipxsock( (const char *) genaddr); - *this = temp_ipxsock; - // socketid info since are making an IpxSockAddress - socketid = temp_ipxsock.get_socket(); - } - } - set_socket(socketid); - format_output(); -} - - -//------------[ construct an IpxSockAddress from a IpxAddress ]-------------- -IpxSockAddress::IpxSockAddress( const IpxAddress &ipxaddr):IpxAddress(ipxaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = IPXSOCKLEN; - smival.value.string.ptr = address_buffer; - - set_socket(0); - format_output(); -} - -//-----[ destructor ]-------------------------------------------------- -IpxSockAddress::~IpxSockAddress() -{ -} - -// copy an instance of this Value -SnmpSyntax& IpxSockAddress::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag=0; // will set to 1 if really valid - if (val.valid()){ - switch (val.get_syntax()){ - case sNMP_SYNTAX_OCTETS: - { - // See if it is of the Ipx address family - // This handles IpxSockAddress == IpxAddress - IpxSockAddress temp_ipx(val.to_string()); - if (temp_ipx.valid()){ - *this = temp_ipx; // ipxsock = ipxsock - } - // See if it is an OctetStr of appropriate length - else if (((IpxSockAddress &)val).smival.value.string.len == IPXSOCKLEN){ - ACE_OS::memcpy(address_buffer, - ((IpxSockAddress &)val).smival.value.string.ptr, - IPXSOCKLEN); - valid_flag=1; - } - } - break; - } - } - format_output(); - return *this; -} - -// assignment to another IpAddress object overloaded -IpxSockAddress& IpxSockAddress::operator=( const IpxSockAddress &ipxaddr) -{ - // protect against assignment from itself - if ( this == &ipxaddr ) - return *this; - - (IpxAddress&)*this = ipxaddr; // use ancestor assignment for ipx addr - set_socket(ipxaddr.get_socket()); // copy socket value - format_output(); - return *this; -} - - -//----------[ create a new instance of this Value ]------------------------ -SnmpSyntax *IpxSockAddress::clone() const -{ - return (SnmpSyntax *) new IpxSockAddress(*this); -} - -//----[ IPXSock address char * cast ]-------------------------------------- -IpxSockAddress::operator const char *() const -{ - return (char *)output_buffer; -} - -//----[ IPXSock address get char representation ]-------------------------- -const char * IpxSockAddress::to_string() -{ - return (char *)output_buffer; -} - -//----[ IPX address format output ]------------------------------------- -void IpxSockAddress::format_output() -{ - IpxAddress::format_output(); // allow ancestors to format their buffers - - if ( valid_flag) - ACE_OS::sprintf((char *) output_buffer,"%s/%d", - IpxAddress::to_string(), get_socket()); - else - output_buffer[0] = 0; -} - -//-----[ IP Address parse Address ]--------------------------------- -int IpxSockAddress::parse_address( const char *inaddr) -{ - char buffer[MAXHOSTNAMELEN +1]; - unsigned short socketid=0; - - if (inaddr && (ACE_OS::strlen( inaddr)< MAXHOSTNAMELEN)) - ACE_OS::strcpy( buffer, inaddr); - else - { - valid_flag = 0; - return 0; - } - // look for port info @ the end of the string - // port can be delineated by a ':' or a '/' - // if neither are present then just treat it - // like a normal IpAddress - char *tmp; - tmp = ACE_OS::strstr( buffer,"/"); - - if (tmp != 0) - { - *tmp=0; // null terminator - tmp++; - socketid = ACE_OS::atoi( tmp); - } - set_socket(socketid); - return IpxAddress::parse_address( buffer); -} - - - -//-------------[ set the socket number ]---------------------------------- -void IpxSockAddress::set_socket( const unsigned short s) -{ - unsigned short sock_nbo = htons(s); - ACE_OS::memcpy(&address_buffer[IPXLEN], &sock_nbo, 2); -} - -//--------------[ get the socket number ]--------------------------------- -unsigned short IpxSockAddress::get_socket() const -{ - if (valid_flag) - { - unsigned short sock_nbo; - ACE_OS::memcpy(&sock_nbo, &address_buffer[IPXLEN], 2); - return ntohs(sock_nbo); - } - else - return 0; // don't use uninitialized memory -} - -//------[ return the type ]---------------------------------------------- -addr_type IpxSockAddress::get_type() const -{ - return type_ipxsock; -} - - -//======================================================================== -//======== MACAddress Implementation ===================================== -//======================================================================== - -//-----------[ syntax type ]---------------------------------------------- -SmiUINT32 MacAddress::get_syntax() -{ - return sNMP_SYNTAX_OCTETS; -} - -//-----[ MAC Address copy constructor ]--------------------------------- -MacAddress::MacAddress(const MacAddress &macaddr) - : Address (macaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = MACLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = macaddr.valid_flag; - if (valid_flag) - ACE_OS::memcpy(address_buffer, macaddr.address_buffer, MACLEN); - format_output(); -} - -//---------[ constructor with a string argument ]------------------------- -MacAddress::MacAddress( const char *inaddr):Address( ) -{ - if (ACE_OS::strlen(inaddr) == 0) { - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = MACLEN; - smival.value.string.ptr = address_buffer; - - valid_flag=0; - format_output(); - return; - } - - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = MACLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = parse_address( (char *) inaddr); - format_output(); -} - -//-----[ construct a MacAddress from a GenAddress ]------------------------ -MacAddress::MacAddress( const GenAddress &genaddr) -{ - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = MACLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = 0; - // allow use of mac address - if (genaddr.get_type() == type_mac) - { - valid_flag = genaddr.valid(); - if ( valid_flag) - { - // copy in the Mac address data - MacAddress temp_mac( (const char *) genaddr); - *this = temp_mac; - } - } - format_output(); -} - -//-----[ destructor ]-------------------------------------------------- -MacAddress::~MacAddress() -{ -} - -//---------[ MacAddress clone ]------------------------------------------- -SnmpSyntax *MacAddress::clone() const -{ - return (SnmpSyntax *) new MacAddress(*this); -} - -//------[ assignment to another ipaddress object overloaded ]-------------- -MacAddress& MacAddress::operator=( const MacAddress &macaddress) -{ - // protect against assignment from itself - if ( this == &macaddress ) - return *this; - - valid_flag = macaddress.valid_flag; - if (valid_flag) - ACE_OS::memcpy(address_buffer, macaddress.address_buffer, MACLEN); - format_output(); - return *this; -} - - - -//-----[ MAC Address general = operator ]--------------------------------- -SnmpSyntax& MacAddress::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag=0; // will set to 1 if really valid - if (val.valid()){ - switch (val.get_syntax()){ - case sNMP_SYNTAX_OCTETS: - if (((MacAddress &)val).smival.value.string.len == MACLEN){ - ACE_OS::memcpy(address_buffer, - ((MacAddress &)val).smival.value.string.ptr, MACLEN); - valid_flag=1; - } - break; - } - } - format_output(); - return *this; -} - -//-----[ MAC Address parse Address ]-------------------------------------- -// Convert a string to a six byte MAC address -// On success sets validity 1 or 0 -// -// MAC address format -// -// MAC ADDRESS -// 01 02 03 04 05 06 -// XX:XX:XX:XX:XX:XX -// Valid input format -// -// XXXXXXXXXXXX -// Total length must be 17 -// Each char must take on value 0-F -// -// -int MacAddress::parse_address( const char *inaddr) -{ - char temp[MAXHOSTNAMELEN +1]; // don't destroy original - char unsigned *tmp; - size_t z; - - - // save the orginal source - if ( !inaddr || (ACE_OS::strlen( inaddr) > 30)) return 0; - ACE_OS::strcpy( temp, inaddr); - trim_white_space( temp); - - // bad total length check - if ( ACE_OS::strlen(temp) != 17) - return 0; - - // check for colons - if ((temp[2] != ':')||(temp[5] != ':')||(temp[8]!=':')||(temp[11]!=':') - ||(temp[14] !=':')) - return 0; - - // strip off the colons - tmp = ( unsigned char *) temp; - int i = 0; - while ( *tmp != 0) - { - if (*tmp != ':') - { - temp[i] = *tmp; - i++; - } - tmp++; - } - temp[i] = 0; - - // convert to lower - for(z=0;z= '0') && (*tmp <= '9'))|| // good 0-9 - ((*tmp >= 'a') && (*tmp <= 'f'))) // or a-f - tmp++; - else - return 0; - - // convert to target string - tmp = (unsigned char *) temp; - while ( *tmp != 0) - { - if (( *tmp >= '0') && ( *tmp <= '9')) - *tmp = *tmp - (char unsigned )'0'; - else - *tmp = *tmp - (char unsigned) 'a' + (char unsigned) 10; - tmp++; - } - - address_buffer[0] = (temp[0]*16) + temp[1]; - address_buffer[1] = (temp[2]*16) + temp[3]; - address_buffer[2] = (temp[4]*16) + temp[5]; - address_buffer[3] = (temp[6]*16) + temp[7]; - address_buffer[4] = (temp[8]*16) + temp[9]; - address_buffer[5] = (temp[10]*16) + temp[11]; - - return 1; -} - -//----[ MAC address char * cast ]-------------------------------------- -MacAddress::operator const char *() const -{ - return (char *)output_buffer; -} -//----[ MAC address get char representation ]-------------------------- -const char * MacAddress::to_string() -{ - return (char *)output_buffer; -} - -//----[ MAC address format output ]--------------------------------- -void MacAddress::format_output() -{ - if ( valid_flag) - ACE_OS::sprintf(output_buffer,"%02x:%02x:%02x:%02x:%02x:%02x",address_buffer[0], - address_buffer[1],address_buffer[2],address_buffer[3], - address_buffer[4],address_buffer[5]); - else - output_buffer[0] = 0; -} - -//------[ return the type ]---------------------------------- -addr_type MacAddress::get_type() const -{ - return type_mac; -} - - -unsigned int MacAddress::hashFunction() const -{ - return ((((address_buffer[0] << 8) + address_buffer[1]) * HASH0LEN) - + (((address_buffer[2] << 8) + address_buffer[3]) * HASH1LEN) - + (((address_buffer[4] << 8) + address_buffer[5]) * HASH2LEN)); -} - -void MacAddress::to_octet(OctetStr& octet) const -{ - octet.set_data( smival.value.string.ptr, smival.value.string.len); -} - -//======================================================================== -//========== Generic Address Implementation ============================== -//======================================================================== - -//-----------[ get the syntax]---------------------------------------------- -SmiUINT32 GenAddress::get_syntax() -{ - if (address != 0) - return address->get_syntax(); - - return sNMP_SYNTAX_NULL; -} - -void GenAddress::init_smi() -{ - smival.syntax = sNMP_SYNTAX_NULL; // to be overridden - smival.value.string.len = 0; // to be overridden - smival.value.string.ptr = address_buffer; // constant -} - -//-----------[ constructor with a string argument ]---------------------- -GenAddress::GenAddress( const char *addr): address(0) -{ - valid_flag = 0; - // initialize SMI info - // BOK: smival is generally not used for GenAddress, but - // we need this to be a replica of the real address' - // smival info so that ::operator=SnmpSyntax - // will work. - init_smi(); - - if (addr && ACE_OS::strlen(addr) == 0) { - format_output(); - return; - } - - parse_address(addr); - - // Copy real address smival info into GenAddr smival - // BOK: smival is generally not used for GenAddress, but - // we need this to be a replica of the real address' - // smival info so that ::operator=SnmpSyntax - // will work. - if ( valid_flag ) { - smival.syntax = ((GenAddress *)address)->smival.syntax; - smival.value.string.len = - ((GenAddress *)address)->smival.value.string.len; - ACE_OS::memcpy(smival.value.string.ptr, - ((GenAddress *)address)->smival.value.string.ptr, - (size_t)smival.value.string.len); - } -} - -//-----------[ constructor with an Address argument ]-------------------- -GenAddress::GenAddress( const Address &addr): address(0) -{ - valid_flag = 0; - - // initialize SMI info - // BOK: this is generally not used for GenAddress, - // but we need this to be a replica of the real address' - // smival info so that operator=SnmpSyntax will work. - init_smi(); - // make sure that the object is valid - if (!addr.valid()) { - format_output(); - return; - } - - address = (Address*)addr.clone(); - if (address) - valid_flag = address->valid(); - - // Copy real address smival info into GenAddr smival - // BOK: smival is generally not used for GenAddress, but - // we need this to be a replica of the real address' - // smival info so that ::operator=SnmpSyntax - // will work. - if ( valid_flag ) { - smival.syntax = address->get_syntax(); - smival.value.string.len = - ((GenAddress *)address)->smival.value.string.len; - ACE_OS::memcpy(smival.value.string.ptr, - ((GenAddress *)address)->smival.value.string.ptr, - (size_t)smival.value.string.len); - } - - format_output(); -} - -//-----------------[ constructor with another GenAddress object ]------------- -GenAddress::GenAddress( const GenAddress &addr) - : Address (addr), - address(0) -{ - valid_flag = 0; - - // initialize SMI info - // BOK: this is generally not used for GenAddress, - // but we need this to be a replica of the real address' - // smival info so that operator=SnmpSyntax will work. - init_smi(); - - // make sure that the object is valid - if (!addr.valid_flag) { - format_output(); - return; - } - - address = (Address *)addr.address->clone(); - if (address) - valid_flag = address->valid(); - - // Copy real address smival info into GenAddr smival - // BOK: smival is generally not used for GenAddress, but - // we need this to be a replica of the real address' - // smival info so that ::operator=SnmpSyntax - // will work. - if ( valid_flag ) { - smival.syntax = ((GenAddress *)address)->smival.syntax; - smival.value.string.len = - ((GenAddress *)address)->smival.value.string.len; - ACE_OS::memcpy(smival.value.string.ptr, - ((GenAddress *)address)->smival.value.string.ptr, - (size_t)smival.value.string.len); - } - - format_output(); -} - -//----------[ destructor ] ------------------------------------------------ -GenAddress::~GenAddress() -{ - if ( address != 0) - delete address; -} - -//----------[ create a new instance of this Value ]------------------------ -SnmpSyntax *GenAddress::clone() const -{ - return (SnmpSyntax *) new GenAddress(*this); -} - -//------[ assignment GenAddress = GenAddress ]----------------------------- -GenAddress& GenAddress::operator=( const GenAddress &addr) -{ - // protect against assignment from itself - if ( this == &addr ) - return *this; - - valid_flag = 0; - if (address) { - delete address; - address = 0; - } - - if (addr.address) - address = (Address *)(addr.address)->clone(); - - if (address) - valid_flag = address->valid(); - - // Copy real address smival info into GenAddr smival - // BOK: smival is generally not used for GenAddress, but - // we need this to be a replica of the real address' - // smival info so that ::operator=SnmpSyntax - // will work. - if ( valid_flag ) { - smival.syntax = ((GenAddress *)address)->smival.syntax; - smival.value.string.len = - ((GenAddress *)address)->smival.value.string.len; - ACE_OS::memcpy(smival.value.string.ptr, - ((GenAddress *)address)->smival.value.string.ptr, - (size_t)smival.value.string.len); - } - - format_output(); - return *this; -} - - -//------[ assignment GenAddress = any SnmpSyntax ]----------------------- -SnmpSyntax& GenAddress::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag = 0; // will get set to 1 if really valid - if ( address != 0) { - delete address; - address = 0; - } - - if (val.valid()) { - switch ( val.get_syntax() ) { - //-----[ ip address case ]------------- - // BOK: this case shouldn't be needed since there is an explicit - // GenAddr=Address assignment that will override this assignment. - // Left here for posterity. - case sNMP_SYNTAX_IPADDR: - { - address = (Address *)val.clone(); - if (address) - valid_flag = address->valid(); - } - break; - - //-----[ udp address case ]------------ - //-----[ ipx address case ]------------ - //-----[ mac address case ]------------ - // BOK: This is here only to support GenAddr = primitive OctetStr. - // The explicit GenAddr=Address assignment will handle the cases - // GenAddr = [UdpAdd|IpxAddr|IpxSock|MacAddr|DecNetAddr|NetbiosAddr|AppleTlk]. - // Note, using the heuristic of octet str len to determine type of - // address to create is not accurate when address lengths are equal - // (e.g., UDPIPV4LEN == MACLEN). It gets worse if we add AppleTalk or - // OSI which use variable length addresses! assume AppleTalk as used in IOS Mibs - // is defined in CISCO-TC.my as fixed length of 3 octets - - case sNMP_SYNTAX_OCTETS: - { - unsigned long val_len; - val_len = ((GenAddress &)val).smival.value.string.len; - - if (val_len == UDPIPV4LEN) { - ACE_NEW_RETURN(address, UdpAddress, *this); - } - else if (val_len ==IPV4LEN) { - ACE_NEW_RETURN(address, IpAddress, *this); - } - else if (val_len == IPXLEN) { - ACE_NEW_RETURN(address, IpxAddress, *this); - } - else if (val_len == IPXSOCKLEN) { - ACE_NEW_RETURN(address, IpxSockAddress, *this); - } - else if (val_len == MACLEN) { - ACE_NEW_RETURN(address, MacAddress, *this); - } - else if (val_len == APPLETKLEN) { - ACE_NEW_RETURN(address, AppleTalkAddress, *this); - } - else if (val_len == DECNETLEN) { - ACE_NEW_RETURN(address, DecNetAddress, *this); - } - else if (val_len == NETBIOSLEN) { - ACE_NEW_RETURN(address, DecNetAddress, *this); - } - - if (address) { - *address = val; - valid_flag = address->valid(); - } - } - break; - } // end switch - } - - // Copy real address smival info into GenAddr smival - // BOK: smival is generally not used for GenAddress, but - // we need this to be a replica of the real address' - // smival info so that ::operator=SnmpSyntax - // will work. - if ( valid_flag ) { - smival.syntax = ((GenAddress *)address)->smival.syntax; - smival.value.string.len = - ((GenAddress *)address)->smival.value.string.len; - ACE_OS::memcpy(smival.value.string.ptr, - ((GenAddress *)address)->smival.value.string.ptr, - (size_t)smival.value.string.len); - } - - format_output(); - return *this; -} - - -// redefined parse address for macs -// TODO: Add netbios, appletalk, and decnet addresses here -int GenAddress::parse_address( const char *addr) -{ - if ( address != 0) - delete address; - - // try to create each of the addresses until the correct one - // is found - -//BOK: Need to try IPX Sock and IPX before UDP since on Win32, -// gethostbyname() seems to think the ipx network number -// portion is a valid ipaddress string... stupid WinSOCK! - - // ipxsock address - ACE_NEW_RETURN(address, IpxSockAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag && ((IpxSockAddress*)address)->get_socket()) { - format_output(); - return 1; // ok its an ipxsock address - } - // otherwise delete it and try another - delete address; - - // ipx address - ACE_NEW_RETURN(address, IpxAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag) { - format_output(); - return 1; // ok its an ipx address - } - // otherwise delete it and try another - delete address; - -//TM: Must try the derived classes first...one pitfall of the -//following solution is if someone creates with a port/socket of 0 the -//class will get demoted to ip/ipx. The only proper way to do this is -//to parse the strings ourselves. - - // udp address - ACE_NEW_RETURN(address, UdpAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag && ((UdpAddress*)address)->get_port()) { - format_output(); - return 1; // ok its a udp address - } - - // otherwise delete it and try another - delete address; - - // ip address - ACE_NEW_RETURN(address, IpAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag) - { - format_output(); - return 1; // ok its an ip address - } - // otherwise delete it and try another - delete address; - - // mac address - ACE_NEW_RETURN(address, MacAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag) { - format_output(); - return 1; // ok, its a mac - } - - // guess by length of argument the type of address - switch (ACE_OS::strlen(addr)) { - case NETBIOSLEN: - ACE_NEW_RETURN(address, NetbiosAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag) { - format_output(); - return 1; // ok, its a mac - } - break; - - case APPLETKLEN: - ACE_NEW_RETURN(address, AppleTalkAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag) { - format_output(); - return 1; // ok, its a mac - } - break; - - case DECNETLEN: - ACE_NEW_RETURN(address, DecNetAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag) { - format_output(); - return 1; // ok, its a mac - } - break; - - } - // otherwise its invalid - delete address; - address = 0; - format_output(); - return 0; -} - -GenAddress::operator const char *() const -{ - if ( address != 0) - return (const char *)*address; // pass thru - else - return (char *)output_buffer; -} - -// to_string form of the contained address -const char * GenAddress::to_string() -{ - if ( address != 0) - return address->to_string(); // pass thru - else - return (char *)output_buffer; -} - -// format output -void GenAddress::format_output() -{ - output_buffer[0] = '\0'; -} - -//------[ return the type ]---------------------------------- -addr_type GenAddress::get_type() const -{ - if (!valid()) - return type_invalid; - else - return address->get_type(); -} - -// call the particular type class here -void GenAddress::to_octet(OctetStr& octet) const -{ - if (!valid()) - return; - - address->to_octet(octet); -} - -//------------------------------------------------------------------------ -//---------[ DecNet Address Class ]--------------------------------------- -//------------------------------------------------------------------------ - -DecNetAddress::DecNetAddress( const char *inaddr): Address() -{ - if (ACE_OS::strlen(inaddr) == 0) { - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = DECNETLEN; - smival.value.string.ptr = address_buffer; - - valid_flag=0; - DecNetAddress::format_output(); - return; - } - - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = DECNETLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = parse_address( (char *) inaddr); - DecNetAddress::format_output(); -} - -DecNetAddress::DecNetAddress( const DecNetAddress& addr) - : Address (addr) -{ -} - -DecNetAddress::DecNetAddress( const GenAddress& genaddr) -{ - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = DECNETLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = 0; - // allow use of an ipx or ipxsock address - if ( (genaddr.get_type() == type_decnet) ) { - valid_flag = genaddr.valid(); - if ( valid_flag) { - // copy in the Ipx address data - DecNetAddress temp_ipx( (const char *) genaddr); - *this = temp_ipx; - } - } - DecNetAddress::format_output(); -} - -DecNetAddress::~DecNetAddress() -{ -} - -const char *DecNetAddress::to_string() -{ - return (char *)output_buffer; -} - -DecNetAddress& DecNetAddress::operator=( const DecNetAddress &decaddr) -{ - // protect against assignment from itself - if ( this == &decaddr ) - return *this; - valid_flag = decaddr.valid_flag; - if (valid_flag) - ACE_OS::memcpy(address_buffer, decaddr.address_buffer, DECNETLEN); - format_output(); - return *this; -} - -void DecNetAddress::to_octet(OctetStr& octet) const -{ - octet.set_data( smival.value.string.ptr, smival.value.string.len); -} - -DecNetAddress::operator const char *() const -{ - return (char *)output_buffer; -} - -SmiUINT32 DecNetAddress::get_syntax() -{ - return sNMP_SYNTAX_OCTETS; -} - -SnmpSyntax& DecNetAddress::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag = 0; // will get set 1 if really valid - - if (val.valid()) { - if (((DecNetAddress &)val).smival.value.string.len ==DECNETLEN) { - ACE_OS::memcpy(address_buffer, - ((DecNetAddress &)val).smival.value.string.ptr, DECNETLEN); - valid_flag = 1; - } - } - DecNetAddress::format_output(); - return *this; -} - -SnmpSyntax *DecNetAddress::clone() const -{ - return (SnmpSyntax *) new DecNetAddress(*this); -} - -addr_type DecNetAddress::get_type() const -{ - return type_decnet; -} - -void DecNetAddress::format_output() -{ - // if valid format else null it - if ( valid_flag) - ACE_OS::sprintf( (char *) output_buffer,"%d.%d",address_buffer[0], - address_buffer[1]); - else - output_buffer[0] = 0; -} - -int DecNetAddress::parse_address( const char *address) -{ - if (ACE_OS::strlen(address) > DECNETLEN) - return 0; // invalid - - ACE_OS::memset(address_buffer, 0, DECNETLEN); - ACE_OS::memcpy(address_buffer, address, DECNETLEN); - - return 1; // valid -} - - -//------------------------------------------------------------------------ -//---------[ AppleTalk Address Class ]------------------------------------ -//------------------------------------------------------------------------ - -AppleTalkAddress::AppleTalkAddress( const char *inaddr): Address() -{ - if (ACE_OS::strlen(inaddr) == 0) { - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = APPLETKLEN; - smival.value.string.ptr = address_buffer; - - valid_flag=0; - AppleTalkAddress::format_output(); - return; - } - - // always initialize SMI info - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = APPLETKLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = parse_address( (char *) inaddr); - AppleTalkAddress::format_output(); -} -AppleTalkAddress::AppleTalkAddress( const AppleTalkAddress& addr) - : Address (addr) -{ -} - -AppleTalkAddress::AppleTalkAddress( const GenAddress& genaddr) -{ - smival.syntax = sNMP_SYNTAX_OCTETS; - smival.value.string.len = APPLETKLEN; - smival.value.string.ptr = address_buffer; - - valid_flag = 0; - // allow use of an ipx or ipxsock address - if ( (genaddr.get_type() == type_atk) ) { - valid_flag = genaddr.valid(); - if ( valid_flag) { - // copy in the Ipx address data - AppleTalkAddress temp_ipx( (const char *) genaddr); - *this = temp_ipx; - } - } - AppleTalkAddress::format_output(); -} - -AppleTalkAddress::~AppleTalkAddress() -{ -} - -const char *AppleTalkAddress::to_string() -{ - return (char *)output_buffer; -} - -AppleTalkAddress& AppleTalkAddress::operator=( const AppleTalkAddress &ataddr) -{ - // protect against assignment from itself - if ( this == &ataddr ) - return *this; - valid_flag = ataddr.valid_flag; - if (valid_flag) - ACE_OS::memcpy(address_buffer, ataddr.address_buffer, APPLETKLEN); - format_output(); - return *this; -} - -void AppleTalkAddress::to_octet(OctetStr& octet) const -{ - octet.set_data( smival.value.string.ptr, smival.value.string.len); -} - -AppleTalkAddress::operator const char *() const -{ - return (char *)output_buffer; -} - -SmiUINT32 AppleTalkAddress::get_syntax() -{ - return sNMP_SYNTAX_OCTETS; -} - -SnmpSyntax& AppleTalkAddress::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - valid_flag = 0; // will get set 1 if really valid - - if (val.valid()) { - if (((AppleTalkAddress &)val).smival.value.string.len ==APPLETKLEN) { - ACE_OS::memcpy(address_buffer, - ((AppleTalkAddress &)val).smival.value.string.ptr,APPLETKLEN); - valid_flag = 1; - } - } - AppleTalkAddress::format_output(); - return *this; -} - -SnmpSyntax *AppleTalkAddress::clone() const -{ - return (SnmpSyntax *) new AppleTalkAddress(*this); -} - -addr_type AppleTalkAddress::get_type() const -{ - return type_atk; -} - -void AppleTalkAddress::format_output() -{ - // if valid format else null it - if ( valid_flag) - ACE_OS::sprintf( (char *) output_buffer,"%d.%d.%d", address_buffer[0], - address_buffer[1], address_buffer[3]); - else - output_buffer[0] = 0; -} - -int AppleTalkAddress::parse_address( const char *address) -{ - if (ACE_OS::strlen(address) > APPLETKLEN) - return 0; // invalid - - ACE_OS::memset(address_buffer, 0, APPLETKLEN); - ACE_OS::memcpy(address_buffer, address, APPLETKLEN); - - return 1; // valid -} - -char AppleTalkAddress::get_host_address() const -{ - return address_buffer[2]; -} - -void AppleTalkAddress::set_host_address(const char host) -{ - address_buffer[2] = host; -} - -short AppleTalkAddress::get_net_address() const -{ - short net; - ACE_OS::memcpy(&net, address_buffer, APPLETKLEN - 1); - return net; -} - -void AppleTalkAddress::set_net_address(const short atknet) -{ - ACE_OS::memcpy(address_buffer, &atknet, APPLETKLEN -1); -} diff --git a/ACE/ASNMP/asnmp/address.h b/ACE/ASNMP/asnmp/address.h deleted file mode 100644 index f8131c19485..00000000000 --- a/ACE/ASNMP/asnmp/address.h +++ /dev/null @@ -1,845 +0,0 @@ - - -#ifndef ADDRESS_ -#define ADDRESS_ -//============================================================================= -/** - * @file address.h - * - * $Id$ - * - * Address class definition. Encapsulates various network - * addresses into easy to use, safe and portable classes. - * - * - * @author Peter E Mellquist - */ -//============================================================================= - - -/*=================================================================== - 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. -=====================================================================*/ - -//----[ includes ]----------------------------------------------------- -// ACE OS Adaption layer -#include "ace/os_include/netinet/os_in.h" -#include "ace/os_include/os_netdb.h" -#include "ace/Log_Msg.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "asnmp/smival.h" -#include "asnmp/octet.h" - -//----[ enumerated types ] -------------------------------- -enum address_lengths { - IPV4LEN=4, - UDPIPV4LEN=6, - IPV6LEN=16, - UDPIPV6LEN=18, - IPXLEN=10, - IPXSOCKLEN=12, - NETBIOSLEN=16, - APPLETKLEN=3, - DECNETLEN=2, - MACLEN=6, - HASH0LEN=19, - HASH1LEN=13, - HASH2LEN=7, - MAX_ADDR_SZ=20, - MAX_DISPLAY_SZ=MAXHOSTNAMELEN+1 -}; - -enum addr_type { - type_ip, - type_ipx, - type_udp, - type_ipxsock, - type_mac, - type_nb, - type_atk, - type_decnet, - type_e164, - type_sip, // IPv6 - type_invalid -}; - -// TODO: get rest of nb service types added here -enum nb_service { - nb_workstation = 0x0, nb_server = 0x20 -}; - -//---[ forward declarations ]----------------------------------------- -class GenAddress; -class UdpAddress; -class IpxSockAddress; -class NetbiosAddress; -class SIPAddress; // aka ipv6 - -// TODO: -// class AtmE164Address; - - -//-------------------------------------------------------------------- -//----[ Address class ]----------------------------------------------- -//-------------------------------------------------------------------- -/** - * @class - * - * @brief Defines the member functions for the abstract base class - * Address. An Address is a unique network endpoint. - */ -class ASNMP_Export Address: public SnmpSyntax -{ - -public: - /// allow destruction of derived classes - virtual ~Address(); - - /// overloaded equivlence operator, are two addresses equal? - friend ASNMP_Export bool operator==( const Address &lhs,const Address &rhs); - - /// overloaded not equivlence operator, are two addresses not equal? - friend ASNMP_Export bool operator!=( const Address &lhs,const Address &rhs); - - /// overloaded > operator, is a1 > a2 - friend ASNMP_Export bool operator>( const Address &lhs,const Address &rhs); - - /// overloaded >= operator, is a1 >= a2 - friend ASNMP_Export bool operator>=( const Address &lhs,const Address &rhs); - - /// overloaded < operator, is a1 < a2 - friend ASNMP_Export bool operator<( const Address &lhs,const Address &rhs); - - /// overloaded <= operator, is a1 <= a2 - friend ASNMP_Export bool operator<=( const Address &lhs,const Address &rhs); - - /// equivlence operator overloaded, are an address and a string equal? - friend ASNMP_Export bool operator==( const Address &lhs,const char *rhs); - - /// overloaded not equivlence operator, are an address and string not equal? - friend ASNMP_Export bool operator!=( const Address &lhs,const char *rhs); - - /// overloaded < , is an address greater than a string? - friend ASNMP_Export bool operator>( const Address &lhs,const char *rhs); - - /// overloaded >=, is an address greater than or equal to a string? - friend ASNMP_Export bool operator>=( const Address &lhs,const char *rhs); - - /// overloaded < , is an address less than a string? - friend ASNMP_Export bool operator<( const Address &lhs,const char *rhs); - - /// overloaded <=, is an address less than or equal to a string? - friend ASNMP_Export bool operator<=( const Address &lhs,const char *rhs); - - /// overloaded const char * cast - virtual operator const char *() const = 0; - - /// verify the is the address object constructed ok - virtual int valid() const; - - /// return a suitable buffer to contain the address - virtual void to_octet(OctetStr& octet) const = 0; - - /// (pure virtual) syntax type - virtual SmiUINT32 get_syntax() = 0; - - /// for non const [], allows reading and writing - unsigned char& operator[]( const int position); - - /// get a printable ASCII value - virtual const char *to_string() = 0; - - /// create a new instance of this Value - virtual SnmpSyntax *clone() const = 0; - - /// return the type of address - virtual addr_type get_type() const = 0; - - /// overloaded assignment operator - virtual SnmpSyntax& operator=( SnmpSyntax &val) = 0; - - /// return a hash key - virtual unsigned int hashFunction() const { return 0;}; - - -protected: - /// state of constructed object (1/0) - /// addr internal representation - int valid_flag; - unsigned char address_buffer[MAX_ADDR_SZ]; - - /// parse the address string - /// redefined for each specific address subclass - virtual int parse_address( const char * inaddr) =0; - - /// format the output - /// redefined for each specific address subclass - virtual void format_output() =0; - - /// a reused trimm white space method - void trim_white_space( char * ptr); -}; - - -//----------------------------------------------------------------------- -//---------[ IPv4 Address Class ]---------------------------------------- -//----------------------------------------------------------------------- -/** - * @class IpAddress - * - * @brief Defines the member functions for the concrete class IpAddress - * An IP Version 4 Address is 4 bytes long and consists of a - * Network, Sub Network, and host component. - */ -class ASNMP_Export IpAddress : public Address -{ -public: - /// default construct an IP address with a string - IpAddress( const char *inaddr = ""); - - /// construct an IP address with another IP address - IpAddress( const IpAddress &ipaddr); - - /// construct an IP address with a GenAddress - IpAddress( const GenAddress &genaddr); - - /// destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden) - ~IpAddress(); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// assignment to another IpAddress object overloaded - IpAddress& operator=( const IpAddress &ipaddress); - - // TODO: add ability to set addr given long - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// return the DNS Fully Qualified Domain Name (host.domain) - /// on failure returns dotted_quad string - const char *resolve_hostname(int& was_found); - - /// return string representation of object (dotted quad returned) - virtual const char *to_string() ; - - /// const char * operator overloaded for streaming output - virtual operator const char *() const; - - /// logically AND two IPaddresses and - /// return the new one - void mask( const IpAddress& ipaddr); - - /// return the type - virtual addr_type get_type() const; - - /// syntax type - virtual SmiUINT32 get_syntax(); - - /// is this the loopback address? 127.0.0.1/loopback/1.0.0.127.in-addr.arpa - int is_loopback() const; - - /// determine if this is a multicast address - int is_multicast() const; - - /// determine if this a broadcast address - int is_broadcast() const; - - /// per RFC 1597, private addresses are:: 10, 172.16, and 192.168.0 - int is_private() const; - - /// convert address into octet string format in network byte order - virtual void to_octet(OctetStr& octet) const; - -protected: - char output_buffer[MAX_DISPLAY_SZ]; // output buffer - - /// friendly name storage - char iv_friendly_name_[MAX_DISPLAY_SZ]; - - /// did resolver call work? some addrs won't resolve - int iv_friendly_name_status_; - - /// redefined parse address - /// specific to IP addresses - virtual int parse_address( const char *inaddr); - - /// redefined format output - /// specific to IP addresses - virtual void format_output(); - - /// parse a dotted string - int parse_dotted_ipstring( const char *inaddr); - - /// using the currently defined address, do a gethostbyname() - /// and try to fill up the name - int addr_to_friendly(); - - /// thread safe routine to lookup ip address given hostname - /// return <> 0 on error - static int resolve_to_address(const char *hostname, in_addr& quad_addr); - - /// thread safe routine to lookup name given ip address - /// return <> 0 on error - static int resolve_to_hostname(const in_addr& quad_addr, char *hostname); - -}; - -//------------------------------------------------------------------------ -//--------------[ DNS Iterator Class ]------------------------------------ -//------------------------------------------------------------------------ - -/** - * @class Address_Iter - * - * @brief Defines routines to obtain information on a hostname/FQDN - * such as multiple addresses - */ -class ASNMP_Export Address_Iter -{ -public: - Address_Iter(const char *hostname); // fully qualified domain name, hostname - - /// did hostname resolve via DNS? - int valid() const; - - /// how many addresses associated with this hostname - int how_many_addresses(); - - /// return next address - int next(IpAddress& addr); - -private: - Address_Iter(const Address_Iter&); - int valid_; // ctor status - int count_; // number of addresses - char **entry_; // ptr to current address - struct hostent lookupResult_; - ACE_HOSTENT_DATA buffer_; - int query_dns(const char *hostname); -}; - -//------------------------------------------------------------------------ -//---------[ UDP/IPv4 Address Class ]------------------------------------- -//------------------------------------------------------------------------ -/** - * @class - * - * @brief Defines the member functions for the concrete class UdpAddress - * A Udp Address consists of an IP Version 4 Address (IpAddress) - * and a 2 byte unsigned port number. (see /etc/services file) - * User Datagram Protocol (UDP) is a best effort transport - */ -class ASNMP_Export UdpAddress : public IpAddress -{ -public: - /// default constructor with a dotted string in the form of addr:port - UdpAddress( const char *inaddr = ""); - - /// construct an Udp address with another Udp address - UdpAddress( const UdpAddress &udpaddr); - - /// construct a Udp address with a GenAddress - UdpAddress( const GenAddress &genaddr); - - /// construct a Udp address with an IpAddress - /// default port # to zero - UdpAddress( const IpAddress &ipaddr); - - /// destructor - ~UdpAddress(); - - /// syntax type - SmiUINT32 get_syntax(); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// assignment to another IpAddress object overloaded - UdpAddress& operator=( const UdpAddress &udpaddr); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// output in the form of address:port - virtual const char *to_string() ; - - /// const char * operator overloaded for streaming output - virtual operator const char *() const; - - /// set the port number - void set_port( const unsigned short p); - - /// get the port number - unsigned short get_port() const; - - /// return the type - virtual addr_type get_type() const; - -protected: - /// output buffer - char output_buffer[MAX_DISPLAY_SZ]; - - /// redefined parse address - /// specific to IP addresses - virtual int parse_address( const char *inaddr); - - /// redefined format output - /// specific to IP addresses - virtual void format_output(); -}; - - -//------------------------------------------------------------------------- -//---------[ 802.3 MAC Address Class ]------------------------------------- -//------------------------------------------------------------------------- -/** - * @class - * - * @brief Defines the member functions for the concrete class MacAddress. - * A Media Access Control Address consists of 48 bits as defined - * in IEEE 802.3 specifications. - */ -class ASNMP_Export MacAddress : public Address -{ -public: - /// constructor with a string argument - MacAddress( const char *inaddr = ""); - - /// constructor with another MAC object - MacAddress( const MacAddress &macaddr); - - /// construct a MacAddress with a GenAddress - MacAddress( const GenAddress &genaddr); - - /// destructor - ~MacAddress(); - - /// syntax type - SmiUINT32 get_syntax(); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// assignment to another IpAddress object overloaded - MacAddress& operator=( const MacAddress &macaddress); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// create a string to internal class storage representing object - virtual const char *to_string(); - - /// const char * operator overloaded for streaming output - virtual operator const char *() const; - - /// return the type - virtual addr_type get_type() const; - - /// return a hash key - unsigned int hashFunction() const; - - /// return byte array of the mac address - virtual void to_octet(OctetStr& octet) const; - -protected: - /// output buffer containing string representation of object - char output_buffer[MAX_DISPLAY_SZ]; - - /// redefined parse address for macs - virtual int parse_address( const char *inaddr); - - /// redefined format output for MACs - virtual void format_output(); -}; - -//------------------------------------------------------------------------ -//---------[ Netbios Address Class ]-------------------------------------- -//------------------------------------------------------------------------ -/** - * @class - * - * @brief Defines the member functions for the concrete class NetbiosAddress. - * The IBM/Microsoft address for NETBIOS, NETBEUI protocol transport. - */ -class ASNMP_Export NetbiosAddress : public Address -{ -public: - - /// default constructor with string arg - NetbiosAddress( const char *inaddr = ""); - - /// set name and service type - NetbiosAddress( const char *inaddr, nb_service svc); - - /// copy constructor - NetbiosAddress( const NetbiosAddress& nbaddr); - - /// construct with a GenAddress - NetbiosAddress( const GenAddress& genaddr); - - ~NetbiosAddress(); - - virtual const char *to_string(); - - NetbiosAddress& operator=( const NetbiosAddress &nbaddr); - - /// retrieve the network service type - nb_service get_service_type() const; - - /// set the service type (workstation, server, etc) - void set_service_type(nb_service nbservice); - - /// const char * operator overloaded for streaming output - virtual operator const char *() const; - - /// syntax type - virtual SmiUINT32 get_syntax(); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// output byte buffer containing netbios name - virtual void to_octet(OctetStr& octet) const; - -protected: - void InitNBAddr(const char *inaddr); - char output_buffer[MAX_DISPLAY_SZ]; - - /// output buffer to hold string representation - virtual void format_output(); - virtual int parse_address( const char *inaddr); - virtual addr_type get_type() const; -}; - -//------------------------------------------------------------------------ -//---------[ DecNet Address Class ]--------------------------------------- -//------------------------------------------------------------------------ -/** - * @class - * - * @brief Defines the member functions for the concrete class DecNetAddress. - * DecNet Phase ? address consists of two octets (CISCO-TC.my) - */ -class ASNMP_Export DecNetAddress : public Address -{ - public: - /// default constructor with string arg - DecNetAddress( const char *inaddr = ""); - - /// copy constructor - DecNetAddress( const DecNetAddress& decaddr); - - /// construct with a GenAddress - DecNetAddress( const GenAddress& genaddr); - - ~DecNetAddress(); - - virtual const char *to_string(); - - DecNetAddress& operator=( const DecNetAddress &decaddr); - - /// convert address into octet string format 2 bytes of decnet address - virtual void to_octet(OctetStr& octet) const; - - /// const char * operator overloaded for streaming output - virtual operator const char *() const; - - /// syntax type - virtual SmiUINT32 get_syntax(); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - protected: - virtual int parse_address( const char *inaddr); - virtual addr_type get_type() const; - virtual void format_output(); - char output_buffer[MAX_DISPLAY_SZ]; -}; - -//------------------------------------------------------------------------ -//---------[ AppleTalk Address Class ]------------------------------------ -//------------------------------------------------------------------------ -/** - * @class - * - * @brief Defines the member functions for the concrete class DecNetAddress. - * DecNet Phase ? address consists of two octets (CISCO-TC.my) - */ -class ASNMP_Export AppleTalkAddress : public Address -{ - public: - /// default constructor with string arg - AppleTalkAddress( const char *inaddr = ""); - - /// copy constructor - AppleTalkAddress( const AppleTalkAddress& atkaddr); - - /// construct with a GenAddress - AppleTalkAddress( const GenAddress& genaddr); - - ~AppleTalkAddress(); - - virtual const char *to_string(); - - AppleTalkAddress& operator=( const AppleTalkAddress &atkaddr); - - /// convert address into octet string format 3 bytes of atk address - virtual void to_octet(OctetStr& octet) const; - - /// get the host part of the address - char get_host_address() const; - - /// set the host part of the address - void set_host_address(const char); - - /// get the 2 byte atk network address - short get_net_address() const; - - /// set the host 2 byte atk network address - void set_net_address(const short atknet); - - /// const char * operator overloaded for streaming output - virtual operator const char *() const; - - /// syntax type - virtual SmiUINT32 get_syntax(); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - private: - virtual int parse_address( const char *inaddr); - virtual addr_type get_type() const; - virtual void format_output(); - char output_buffer[MAX_DISPLAY_SZ]; -}; - -//------------------------------------------------------------------------ -//---------[ IPX Address Class ]------------------------------------------ -//------------------------------------------------------------------------ -/** - * @class IpxAddress - * - * @brief Defines the member functions for the concrete class IpxAddress. - * Novell's IPX (version ?) network protocol endpoint - */ -class ASNMP_Export IpxAddress : public Address -{ -public: - /// default constructor with a string arg - IpxAddress( const char *inaddr = ""); - - /// constructor with another ipx object - IpxAddress( const IpxAddress &ipxaddr); - - /// construct with a GenAddress - IpxAddress( const GenAddress &genaddr); - - /// destructor - ~IpxAddress(); - - /// syntax type - virtual SmiUINT32 get_syntax(); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// assignment to another IpxAddress object overloaded - IpxAddress& operator=( const IpxAddress &ipxaddress); - - /// get the host id portion of an ipx address - int get_hostid( MacAddress& mac); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// create string represtation of object value - virtual const char *to_string(); - - /// const char * operator overloaded for streaming output - virtual operator const char *() const; - - /// return the type - virtual addr_type get_type() const; - - /// return byte sequence containing ipx address - virtual void to_octet(OctetStr& octet) const; - -protected: - /// ipx format separator {:,/} - char separator; - - /// output buffer to hold string representation - char output_buffer[MAX_DISPLAY_SZ]; - - /// redefined parse address for ipx strings - virtual int parse_address( const char *inaddr); - - /// redefined format output for ipx strings - /// uses same separator as when constructed - virtual void format_output(); -}; - - - -//------------------------------------------------------------------------ -//---------[ IpxSock Address Class ]-------------------------------------- -//------------------------------------------------------------------------ -/** - * @class IpxSockAddress - * - * @brief Defines the member functions for the concrete class IpxAddress. - * Novell's IPX (version ?) network protocol endpoint - */ -class ASNMP_Export IpxSockAddress : public IpxAddress -{ -public: - /// constructor with a dotted string - IpxSockAddress( const char *inaddr = ""); - - /// construct an Udp address with another Udp address - IpxSockAddress( const IpxSockAddress &ipxaddr); - - ///constructor with a GenAddress - IpxSockAddress( const GenAddress &genaddr); - - ///constructor with a IpxAddress - /// default socket # is 0 - IpxSockAddress( const IpxAddress &ipxaddr); - - /// destructor - ~IpxSockAddress(); - - /// syntax type - virtual SmiUINT32 get_syntax(); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// assignment to another IpxAddress object overloaded - IpxSockAddress& operator=( const IpxSockAddress &ipxaddr); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// set the socket number - void set_socket( const unsigned short s); - - /// get the socket number - unsigned short get_socket() const; - - /// create string representation of object value - virtual const char *to_string(); - - /// const char * operator overloaded for streaming output - virtual operator const char *() const; - - /// return the type - virtual addr_type get_type() const; - -protected: - /// output buffer to hold string representation of object - char output_buffer[MAX_DISPLAY_SZ]; - - /// redefined parse address for ipx strings - virtual int parse_address( const char *inaddr); - - /// redefined format output - /// specific to IP addresses - virtual void format_output(); -}; - -//------------------------------------------------------------------------- -//--------[ Generic Address ]---------------------------------------------- -//------------------------------------------------------------------------- -/** - * @class GenAddress - * - * @brief Defines the member functions for the concrete class GenAddress. - * This class attempts to determine an address type given a char string. - */ -class ASNMP_Export GenAddress : public Address -{ -public: - /// constructor with a string argument - GenAddress( const char *addr = ""); - - /// constructor with an Address - GenAddress( const Address &addr); - - /// constructor with another GenAddress - GenAddress( const GenAddress &addr); - - /// destructor - ~GenAddress(); - - /// get the snmp syntax of the contained address - SmiUINT32 get_syntax(); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// assignment of a GenAddress - GenAddress& operator=( const GenAddress &addr); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// string representation of object value - virtual const char *to_string(); - - /// const char * operator overloaded for streaming output - virtual operator const char *() const; - - /// return the type - virtual addr_type get_type() const; - - /// return the address as a octet sequence - virtual void to_octet(OctetStr& octet) const; - -protected: - /// pointer to a a concrete address - Address *address; - - /// output buffer of objects value - char output_buffer[MAX_DISPLAY_SZ]; - - /// redefined parse address for macs - virtual int parse_address( const char *addr); - - /// format output for a generic address - virtual void format_output(); - - /// initialize smi data structure - void init_smi(); -}; - -#endif //_ADDRESS diff --git a/ACE/ASNMP/asnmp/asn1.cpp b/ACE/ASNMP/asnmp/asn1.cpp deleted file mode 100644 index da973e52bc2..00000000000 --- a/ACE/ASNMP/asnmp/asn1.cpp +++ /dev/null @@ -1,1734 +0,0 @@ -// $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 -// ============================================================================ -/********************************************************************** -// * - * Abstract Syntax Notation One, ASN.1 - * As defined in ISO/IS 8824 and ISO/IS 8825 - * This implements a subset of the above International Standards that - * is sufficient to implement SNMP. - * - * Encodes abstract data types into a machine independent stream of bytes. - * - 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. - ******************************************************************/ - -#include "asnmp/asn1.h" -#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 - * "data". On exit, it is returned as the number of valid bytes - * following the end of this object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char * asn1::parse_int( u_char *data, - int *datalength, - u_char *type, - long int *intp, - int intsize) -{ - ACE_TRACE("asn1::parse_int"); - /* - * ASN.1 integer ::= 0x02 asnlength byte {byte}* - */ - u_char *bufp = data; - u_long asn_length; - long value = 0; - - if (intsize != sizeof (long)){ - ASNERROR("not long"); - return 0; - } - *type = *bufp++; - bufp =asn1::parse_length(bufp, &asn_length); - if (bufp == 0){ - ASNERROR("bad length"); - return 0; - } - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return 0; - } - if ((int)asn_length > intsize){ - ASNERROR("I don't support such large integers"); - return 0; - } - *datalength -= (int)asn_length + (bufp - data); - if (*bufp & 0x80) - value = -1; /* integer is negative */ - while(asn_length--) - value = (value << 8) | *bufp++; - *intp = value; - return bufp; -} - - -/* - * parse_unsigned_int - pulls an u_long out of an ASN int type. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the end of this object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char * asn1::parse_unsigned_int( u_char *data, - int *datalength, - u_char *type, - u_long *intp, - int intsize) -{ - ACE_TRACE("asn1::parse_unsigned_int"); - /* - * ASN.1 integer ::= 0x02 asnlength byte {byte}* - */ - u_char *bufp = data; - u_long asn_length; - u_long value = 0; - - if (intsize != sizeof (long)){ - ASNERROR("not long"); - return 0; - } - *type = *bufp++; - bufp = asn1::parse_length(bufp, &asn_length); - if (bufp == 0){ - ASNERROR("bad length"); - return 0; - } - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return 0; - } - if (((int)asn_length > (intsize + 1)) || - (((int)asn_length == intsize + 1) && *bufp != 0x00)){ - ASNERROR("I don't support such large integers"); - return 0; - } - *datalength -= (int)asn_length + (bufp - data); - if (*bufp & 0x80) - value = (u_long) -1; - while(asn_length--) - value = (value << 8) | *bufp++; - *intp = value; - return bufp; -} - - -/* - * build_int - builds an ASN object containing an integer. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the end of this object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char * asn1::build_int( u_char *data, - int *datalength, - u_char type, - long *intp, - int intsize) -{ - ACE_TRACE("asn1::build_int"); - /* - * ASN.1 integer ::= 0x02 asnlength byte {byte}* - */ - - long integer; - u_long mask; - - if (intsize != sizeof (long)) - return 0; - integer = *intp; - /* - * Truncate "unnecessary" bytes off of the most significant end of this - * 2's complement integer. There should be no sequence of 9 - * consecutive 1's or 0's at the most significant end of the - * integer. - */ - mask = u_long (0x1FF) << ((8 * (sizeof(u_long) - 1)) - 1); - /* mask is 0xFF800000 on a big-endian machine */ - while((((integer & mask) == 0) || ((integer & mask) == mask)) - && intsize > 1){ - intsize--; - integer <<= 8; - } - data = asn1::build_header(data, datalength, type, intsize); - if (data == 0) - return 0; - if (*datalength < intsize) - return 0; - *datalength -= intsize; - mask = u_long (0xFF) << (8 * (sizeof(u_long) - 1)); - /* mask is 0xFF000000 on a big-endian machine */ - while(intsize--){ - *data++ = (u_char)((integer & mask) >> (8 * (sizeof(long) - 1))); - integer <<= 8; - } - return data; -} - - -/* - * build_unsigned_int - builds an ASN object containing an integer. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the end of this object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char * asn1::build_unsigned_int( u_char *data, - int *datalength, - u_char type, - u_long *intp, - int intsize) -{ - ACE_TRACE("asn1::build_unsigned_int"); - /* - * ASN.1 integer ::= 0x02 asnlength byte {byte}* - */ - - u_long integer; - u_long mask; - int add_null_byte = 0; - - if (intsize != sizeof (long)) - return 0; - integer = *intp; - mask = u_long (0xFF) << (8 * (sizeof(u_long) - 1)); - /* mask is 0xFF000000 on a big-endian machine */ - if ((u_char)((integer & mask) >> (8 * (sizeof(long) - 1))) & 0x80){ - /* if MSB is set */ - add_null_byte = 1; - intsize++; - } - /* - * Truncate "unnecessary" bytes off of the most significant end of this 2's complement integer. - * There should be no sequence of 9 consecutive 1's or 0's at the most significant end of the - * integer. - */ - mask = u_long (0x1FF) << ((8 * (sizeof(u_long) - 1)) - 1); - /* mask is 0xFF800000 on a big-endian machine */ - while((((integer & mask) == 0) || ((integer & mask) == mask)) && intsize > 1){ - intsize--; - integer <<= 8; - } - data = asn1::build_header(data, datalength, type, intsize); - if (data == 0) - return 0; - if (*datalength < intsize) - return 0; - *datalength -= intsize; - if (add_null_byte == 1){ - *data++ = '\0'; - intsize--; - } - mask = u_long (0xFF) << (8 * (sizeof(u_long) - 1)); - /* mask is 0xFF000000 on a big-endian machine */ - while(intsize--){ - *data++ = (u_char)((integer & mask) >> (8 * (sizeof(long) - 1))); - integer <<= 8; - } - return data; -} - - -/* - * parse_string - pulls an octet string out of an ASN octet string type. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the beginning of the next object. - * - * "string" is filled with the octet string. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char * asn1::parse_string( u_char *data, - int *datalength, - u_char *type, - u_char *string, - int *strlength) -{ - ACE_TRACE("asn1::parse_string"); - /* - * ASN.1 octet string ::= primstring | cmpdstring - * primstring ::= 0x04 asnlength byte {byte}* - * cmpdstring ::= 0x24 asnlength string {string}* - */ - u_char *bufp = data; - u_long asn_length; - - *type = *bufp++; - bufp = asn1::parse_length(bufp, &asn_length); - if (bufp == 0) - return 0; - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return 0; - } - if ((int)asn_length > *strlength){ - ASNERROR("I don't support such long strings"); - return 0; - } - // fixed - ACE_OS::memcpy((char *)string, (char *)bufp, (int)asn_length); - *strlength = (int)asn_length; - *datalength -= (int)asn_length + (bufp - data); - return bufp + asn_length; -} - - -/* - * build_string - Builds an ASN octet string object containing the input string. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the beginning of the next object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char * asn1::build_string( u_char *data, - int *datalength, - u_char type, - u_char *string, - int strlength) -{ - ACE_TRACE("asn1::build_string"); - /* - * ASN.1 octet string ::= primstring | cmpdstring - * primstring ::= 0x04 asnlength byte {byte}* - * cmpdstring ::= 0x24 asnlength string {string}* - * This code will never send a compound string. - */ - data = asn1::build_header(data, datalength, type, strlength); - if (data == 0) - return 0; - if (*datalength < strlength) - return 0; - // fixed - ACE_OS::memcpy((u_char *)data,(u_char *)string, strlength); - *datalength -= strlength; - return data + strlength; -} - - -/* - * parse_header - interprets the ID and length of the current object. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * in this object following the id and length. - * - * Returns a pointer to the first byte of the contents of this object. - * Returns 0 on any error. - */ -u_char *asn1::parse_header( u_char *data, - int *datalength, - u_char *type) -{ - ACE_TRACE("asn1::parse_header"); - u_char *bufp = data; - register int header_len; - u_long asn_length; - - /* this only works on data types < 30, i.e. no extension octets */ - if (IS_EXTENSION_ID(*bufp)){ - ASNERROR("can't process ID >= 30"); - return 0; - } - *type = *bufp; - bufp = asn1::parse_length(bufp + 1, &asn_length); - if (bufp == 0) - return 0; - header_len = bufp - data; - if ((int)(header_len + asn_length) > *datalength){ - ASNERROR("asn length too long"); - return 0; - } - *datalength = (int)asn_length; - return bufp; -} - -/* - * asn1::build_header - builds an ASN header for an object with the ID and - * length specified. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * in this object following the id and length. - * - * This only works on data types < 30, i.e. no extension octets. - * The maximum length is 0xFFFF; - * - * Returns a pointer to the first byte of the contents of this object. - * Returns 0 on any error. - */ -u_char * asn1::build_header( u_char *data, - int *datalength, - u_char type, - int length) -{ - ACE_TRACE("asn1::build_header"); - if (*datalength < 1) - return 0; - *data++ = type; - (*datalength)--; - return asn1::build_length(data, datalength, length); - -} - -/* - * asn_build_sequence - builds an ASN header for a sequence with the ID and - * length specified. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * in this object following the id and length. - * - * This only works on data types < 30, i.e. no extension octets. - * The maximum length is 0xFFFF; - * - * Returns a pointer to the first byte of the contents of this object. - * Returns 0 on any error. - */ -u_char * asn1::build_sequence( u_char *data, - int *datalength, - u_char type, - int length) -{ - ACE_TRACE("asn1::build_sequence"); - *datalength -= 4; - if (*datalength < 0){ - *datalength += 4; /* fix up before punting */ - return 0; - } - *data++ = type; - *data++ = (u_char)(0x02 | ASN_LONG_LEN); - *data++ = (u_char)((length >> 8) & 0xFF); - *data++ = (u_char)(length & 0xFF); - return data; -} - -/* - * parse_length - interprets the length of the current object. - * On exit, length contains the value of this length field. - * - * Returns a pointer to the first byte after this length - * field (aka: the start of the data field). - * Returns 0 on any error. - */ -u_char * asn1::parse_length( u_char *data, - u_long *length) -{ - ACE_TRACE("asn1::parse_length"); - u_char lengthbyte = *data; - - if (lengthbyte & ASN_LONG_LEN){ - lengthbyte &= ~ASN_LONG_LEN; /* turn MSb off */ - if (lengthbyte == 0){ - ASNERROR("We don't support indefinite lengths"); - return 0; - } - if (lengthbyte > sizeof(long)){ - ASNERROR("we can't support data lengths that long"); - return 0; - } - // fixed - ACE_OS::memcpy((char *)length, (char *)data + 1, (int)lengthbyte); - *length = ACE_NTOHL(*length); - *length >>= (8 * ((sizeof *length) - lengthbyte)); - return data + lengthbyte + 1; - } else { /* short asnlength */ - *length = (long)lengthbyte; - return data + 1; - } -} - -u_char *asn1::build_length( u_char *data, - int *datalength, - int length) -{ - ACE_TRACE("asn1::build_length"); - u_char *start_data = data; - - /* no indefinite lengths sent */ - if (length < 0x80){ - if (*datalength < 1){ - ASNERROR("build_length"); - return 0; - } - *data++ = (u_char)length; - } else if (length <= 0xFF){ - if (*datalength < 2){ - ASNERROR("build_length"); - return 0; - } - *data++ = (u_char)(0x01 | ASN_LONG_LEN); - *data++ = (u_char)length; - } else { /* 0xFF < length <= 0xFFFF */ - if (*datalength < 3){ - ASNERROR("build_length"); - return 0; - } - *data++ = (u_char)(0x02 | ASN_LONG_LEN); - *data++ = (u_char)((length >> 8) & 0xFF); - *data++ = (u_char)(length & 0xFF); - } - *datalength -= (data - start_data); - return data; - -} - -/* - * parse_objid - pulls an object indentifier out of an ASN object identifier type. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the beginning of the next object. - * - * "objid" is filled with the object identifier. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char *asn1::parse_objid( u_char *data, - int *datalength, - u_char *type, - oid *objid, - int *objidlength) -{ - ACE_TRACE("asn1::parse_objid"); - /* - * ASN.1 objid ::= 0x06 asnlength subidentifier {subidentifier}* - * subidentifier ::= {leadingbyte}* lastbyte - * leadingbyte ::= 1 7bitvalue - * lastbyte ::= 0 7bitvalue - */ - u_char *bufp = data; - oid *oidp = objid + 1; - u_long subidentifier; - long length; - u_long asn_length; - - *type = *bufp++; - bufp = asn1::parse_length(bufp, &asn_length); - if (bufp == 0) - return 0; - if ((int)asn_length + (bufp - data) > *datalength){ - ASNERROR("overflow of message"); - return 0; - } - *datalength -= (int)asn_length + (bufp - data); - - /* Handle invalid object identifier encodings of the form 06 00 robustly */ - if (asn_length == 0) - objid[0] = objid[1] = 0; - - length = asn_length; - (*objidlength)--; /* account for expansion of first byte */ - while (length > 0 && (*objidlength)-- > 0){ - subidentifier = 0; - do { /* shift and add in low order 7 bits */ - subidentifier = (subidentifier << 7) + (*(u_char *)bufp & ~ASN_BIT8); - length--; - } while (*(u_char *)bufp++ & ASN_BIT8); /* last byte has high bit clear */ - if (subidentifier > (u_long)MAX_SUBID){ - ASNERROR("subidentifier too long"); - return 0; - } - *oidp++ = (oid)subidentifier; - } - - /* - * The first two subidentifiers are encoded into the first component - * with the value (X * 40) + Y, where: - * X is the value of the first subidentifier. - * Y is the value of the second subidentifier. - */ - subidentifier = (u_long)objid[1]; - if (subidentifier == 0x2B){ - objid[0] = 1; - objid[1] = 3; - } else { - objid[1] = (u_char)(subidentifier % 40); - objid[0] = (u_char)((subidentifier - objid[1]) / 40); - } - - *objidlength = (int)(oidp - objid); - return bufp; -} - -/* - * build_objid - Builds an ASN object identifier object containing the - * input string. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the beginning of the next object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char *asn1::build_objid( u_char *data, - int *datalength, - u_char type, - oid *objid, - int objidlength) -{ - ACE_TRACE("asn1::build_objid"); - /* - * ASN.1 objid ::= 0x06 asnlength subidentifier {subidentifier}* - * subidentifier ::= {leadingbyte}* lastbyte - * leadingbyte ::= 1 7bitvalue - * lastbyte ::= 0 7bitvalue - */ - u_char buf[MAX_OID_LEN]; - u_char *bp = buf; - oid *op = objid; - int asnlength; - u_long subid, mask, testmask; - int bits, testbits; - - if (objidlength < 2){ - *bp++ = 0; - objidlength = 0; - } else { - *bp++ = (u_char) (op[1] + (op[0] * 40)); - objidlength -= 2; - op += 2; - } - - while(objidlength-- > 0){ - subid = *op++; - if (subid < 127){ /* off by one? */ - *bp++ = (u_char )subid; - } else { - mask = 0x7F; /* handle subid == 0 case */ - bits = 0; - /* testmask *MUST* !!!! be of an u_type */ - for(testmask = 0x7F, testbits = 0; testmask != 0; - testmask <<= 7, testbits += 7){ - if (subid & testmask){ /* if any bits set */ - mask = testmask; - bits = testbits; - } - } - /* mask can't be zero here */ - for(;mask != 0x7F; mask >>= 7, bits -= 7){ - /* fix a mask that got truncated above */ - if (mask == 0x1E00000) - mask = 0xFE00000; - *bp++ = (u_char)(((subid & mask) >> bits) | ASN_BIT8); - } - *bp++ = (u_char)(subid & mask); - } - } - asnlength = bp - buf; - data = asn1::build_header(data, datalength, type, asnlength); - if (data == 0) - return 0; - if (*datalength < asnlength) - return 0; - // fixed - ACE_OS::memcpy((char *)data, (char *)buf, asnlength); - *datalength -= asnlength; - return data + asnlength; -} - -/* - * parse_null - Interprets an ASN null type. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the beginning of the next object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char *asn1::parse_null(u_char *data, - int *datalength, - u_char *type) -{ - ACE_TRACE("asn1::parse_null"); - /* - * ASN.1 null ::= 0x05 0x00 - */ - u_char *bufp = data; - u_long asn_length; - - *type = *bufp++; - bufp = asn1::parse_length(bufp, &asn_length); - if (bufp == 0) - return 0; - if (asn_length != 0){ - ASNERROR("Malformed 0"); - return 0; - } - *datalength -= (bufp - data); - return bufp + asn_length; -} - - -/* - * build_null - Builds an ASN null object. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the beginning of the next object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char *asn1::build_null( u_char *data, - int *datalength, - u_char type) -{ - ACE_TRACE("asn1::build_null"); - /* - * ASN.1 null ::= 0x05 0x00 - */ - return asn1::build_header(data, datalength, type, 0); -} - -/* - * parse_bitstring - pulls a bitstring out of an ASN bitstring type. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the beginning of the next object. - * - * "string" is filled with the bit string. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char *asn1::parse_bitstring( u_char *data, - int *datalength, - u_char *type, - u_char *string, - int *strlength) -{ - ACE_TRACE("asn1::parse_bitstring"); - /* - * bitstring ::= 0x03 asnlength unused {byte}* - */ - u_char *bufp = data; - u_long asn_length; - - *type = *bufp++; - bufp = asn1::parse_length(bufp, &asn_length); - if (bufp == 0) - return 0; - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return 0; - } - if ((int) asn_length > *strlength){ - ASNERROR("I don't support such long bitstrings"); - return 0; - } - if (asn_length < 1){ - ASNERROR("Invalid bitstring"); - return 0; - } - if (*bufp > 7){ - ASNERROR("Invalid bitstring"); - return 0; - } - // fixed - ACE_OS::memcpy((char *)string,(char *)bufp, (int)asn_length); - *strlength = (int)asn_length; - *datalength -= (int)asn_length + (bufp - data); - return bufp + asn_length; -} - - -/* - * build_bitstring - Builds an ASN bit string object containing the - * input string. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the beginning of the next object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char *asn1::build_bitstring( u_char *data, - int *datalength, - u_char type, - u_char *string, - int strlength) -{ - ACE_TRACE("asn1::build_bitstring"); - /* - * ASN.1 bit string ::= 0x03 asnlength unused {byte}* - */ - if (strlength < 1 || *string || *string > 7){ - ASNERROR("Building invalid bitstring"); - return 0; - } - data = asn1::build_header(data, datalength, type, strlength); - if (data == 0) - return 0; - if (*datalength < strlength) - return 0; - // fixed - ACE_OS::memcpy((char *)data,(char *)string, strlength); - *datalength -= strlength; - return data + strlength; -} - - -/* - * parse_unsigned_int64 - pulls a 64 bit u_long out of an ASN int - * type. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the end of this object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char * asn1::parse_unsigned_int64(u_char *data, - int *datalength, - u_char *type, - struct counter64 *cp, - int countersize) -{ - ACE_TRACE("asn1::parse_unsigned_int64"); - /* - * ASN.1 integer ::= 0x02 asnlength byte {byte}* - */ - u_char *bufp = data; - u_long asn_length; - u_long low = 0, high = 0; - int intsize = 4; - - if (countersize != sizeof(struct counter64)){ - ASNERROR("not right size"); - return 0; - } - *type = *bufp++; - bufp = asn1::parse_length(bufp, &asn_length); - if (bufp == 0){ - ASNERROR("bad length"); - return 0; - } - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return 0; - } - if (((int)asn_length > (intsize * 2 + 1)) || - (((int)asn_length == (intsize * 2) + 1) && *bufp != 0x00)){ - ASNERROR("I don't support such large integers"); - return 0; - } - *datalength -= (int)asn_length + (bufp - data); - if (*bufp & 0x80){ - low = (u_long) -1; // integer is negative - high = (u_long) -1; - } - while(asn_length--){ - high = (high << 8) | ((low & 0xFF000000) >> 24); - low = (low << 8) | *bufp++; - } - cp->low = low; - cp->high = high; - return bufp; -} - - -/* - * build_unsigned_int64 - builds an ASN object containing a 64 bit integer. - * On entry, datalength is input as the number of valid bytes following - * "data". On exit, it is returned as the number of valid bytes - * following the end of this object. - * - * Returns a pointer to the first byte past the end - * of this object (i.e. the start of the next object). - * Returns 0 on any error. - */ -u_char * asn1::build_unsigned_int64( u_char *data, - int *datalength, - u_char type, - struct counter64 *cp, - int countersize) -{ - ACE_TRACE("asn1::build_unsigned_int64"); - /* - * ASN.1 integer ::= 0x02 asnlength byte {byte}* - */ - - u_long low, high; - u_long mask, mask2; - int add_null_byte = 0; - int intsize; - - if (countersize != sizeof (struct counter64)) - return 0; - intsize = 8; - low = cp->low; - high = cp->high; - mask = u_long (0xFF) << (8 * (sizeof(u_long) - 1)); - /* mask is 0xFF000000 on a big-endian machine */ - if ((u_char)((high & mask) >> (8 * (sizeof(long) - 1))) & 0x80){ - /* if MSB is set */ - add_null_byte = 1; - intsize++; - } - /* - * Truncate "unnecessary" bytes off of the most significant end of this 2's - * complement integer. - * There should be no sequence of 9 consecutive 1's or 0's at the most - * significant end of the integer. - */ - mask2 = u_long (0x1FF) << ((8 * (sizeof(u_long) - 1)) - 1); - /* mask2 is 0xFF800000 on a big-endian machine */ - while((((high & mask2) == 0) || ((high & mask2) == mask2)) - && intsize > 1){ - intsize--; - high = (high << 8) - | ((low & mask) >> (8 * (sizeof(long) - 1))); - low <<= 8; - } - data = asn1::build_header(data, datalength, type, intsize); - if (data == 0) - return 0; - if (*datalength < intsize) - return 0; - *datalength -= intsize; - if (add_null_byte == 1){ - *data++ = '\0'; - intsize--; - } - while(intsize--){ - *data++ = (u_char)((high & mask) >> (8 * (sizeof(long) - 1))); - high = (high << 8) - | ((low & mask) >> (8 * (sizeof(long) - 1))); - low <<= 8; - - } - return data; -} - - -// create a pdu -struct snmp_pdu * cmu_snmp::pdu_create( int command) -{ - ACE_TRACE("cmu_snmp::snmp_pdu_create"); - struct snmp_pdu *pdu; - - ACE_NEW_RETURN(pdu, snmp_pdu, 0); - ACE_OS::memset((char *)pdu, 0,sizeof(struct snmp_pdu)); - pdu->command = command; - pdu->errstat = 0; - pdu->errindex = 0; - pdu->enterprise = 0; - pdu->enterprise_length = 0; - pdu->variables = 0; - return pdu; -} - -// release a pdu from memory -void cmu_snmp::free_pdu( struct snmp_pdu *pdu) -{ - ACE_TRACE("cmu_snmp::free_pdu"); - struct variable_list *vp, *ovp; - - vp = pdu->variables; - while(vp){ - // release the oid part - if (vp->name) - delete [] vp->name; - // if deep data, then release as well - if (vp->val.string) - delete [] vp->val.string; - ovp = vp; - // go to the next one - vp = vp->next_variable; - // release up vb itself - delete ovp; - } - // if enterprise release it up - if (pdu->enterprise) - delete [] pdu->enterprise; - // release up pdu itself - delete pdu; -} - - -// add a null var to a pdu -void cmu_snmp::add_var(struct snmp_pdu *pdu, - oid *name, - int name_length, - SmiVALUE *smival) -{ - ACE_TRACE("cmu_snmp::add_var"); - - struct variable_list *vars = 0; - - // if we don't have a vb list ,create one - if (pdu->variables == 0) { - ACE_NEW(pdu->variables, variable_list); - vars = pdu->variables; - } - else - { // we have one, find the end - for(vars = pdu->variables; vars->next_variable; vars = vars->next_variable); - // create one - ACE_NEW(vars->next_variable, variable_list); - // bump ptr - vars = vars->next_variable; - } - - // add the oid with no data - vars->next_variable = 0; - - // hook in the Oid portion - ACE_NEW(vars->name, oid[(name_length)]); - - // fixed - ACE_OS::memcpy((char *)vars->name,(char *)name, name_length * sizeof(oid)); - vars->name_length = name_length; - - // hook in the SMI value - switch( smival->syntax) - { - // null , do nothing - case sNMP_SYNTAX_NULL: - case sNMP_SYNTAX_NOSUCHOBJECT: - case sNMP_SYNTAX_NOSUCHINSTANCE: - case sNMP_SYNTAX_ENDOFMIBVIEW: - { - vars->type = (u_char) smival->syntax; - vars->val.string = 0; - vars->val_len = 0; - } - break; - - // octects - case sNMP_SYNTAX_OCTETS: - case sNMP_SYNTAX_OPAQUE: - case sNMP_SYNTAX_IPADDR: - { - vars->type = (u_char) smival->syntax; - ACE_NEW(vars->val.string, - u_char[(unsigned)smival->value.string.len]); - vars->val_len = (int) smival->value.string.len; - ACE_OS::memcpy( (u_char *) vars->val.string, - (u_char *) smival->value.string.ptr, - (unsigned) smival->value.string.len); - } - break; - - // oid - case sNMP_SYNTAX_OID: - { - vars->type = (u_char) smival->syntax; - vars->val_len = (int) smival->value.oid.len * sizeof(oid); - ACE_NEW(vars->val.objid, oid[(unsigned)vars->val_len]); - ACE_OS::memcpy((u_long *)vars->val.objid, - (u_long *)smival->value.oid.ptr, - (unsigned) vars->val_len); - } - break; - - - - case sNMP_SYNTAX_TIMETICKS: - case sNMP_SYNTAX_CNTR32: - case sNMP_SYNTAX_GAUGE32: - case sNMP_SYNTAX_UINT32: - { - long templong; - vars->type = (u_char) smival->syntax; - ACE_NEW(vars->val.integer, long); - vars->val_len = sizeof(long); - templong = (long) smival->value.uNumber; - ACE_OS::memcpy( (long*) vars->val.integer, - (long*) &templong, - sizeof(long)); - } - break; - - case sNMP_SYNTAX_INT32: - { - long templong; - vars->type = (u_char) smival->syntax; - ACE_NEW(vars->val.integer, long); - vars->val_len = sizeof(long); - templong = (long) smival->value.sNumber; - ACE_OS::memcpy( (long*) vars->val.integer, - (long*) &templong, - sizeof(long)); - } - break; - - // 64 bit counter - case sNMP_SYNTAX_CNTR64: - { - vars->type = ( u_char) smival->syntax; - ACE_NEW(vars->val.counter64, counter64); - vars->val_len = sizeof(struct counter64); - ACE_OS::memcpy( (struct counter64*) vars->val.counter64, - (SmiLPCNTR64) &(smival->value.hNumber), - sizeof( SmiCNTR64)); - } - break; - - } // end switch - -} - -// build the authentication -// works for v1 or v2c -u_char *cmu_snmp::auth_build( u_char *data, - int *length, - long int version, - u_char *community, - int community_len, - int messagelen) -{ - ACE_TRACE("cmu_snmp::auth_build"); - u_char *params; - int plen; - - params = community; - plen = community_len; - - data = asn1::build_sequence(data, - length, - (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR), - messagelen + plen + 5); - if (data == 0){ - ASNERROR("buildheader"); - return 0; - } - data = asn1::build_int(data, - length, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - (long *)&version, - sizeof(version)); - if (data == 0){ - ASNERROR("buildint"); - return 0; - } - - data = asn1::build_string(data, - length, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OCTET_STR), - params, - plen ); - if (data == 0){ - ASNERROR("buildstring"); - return 0; - } - - return (u_char *)data; -} - - -// build a variable binding -u_char * cmu_snmp::build_var_op(u_char *data, oid * var_name, - int *var_name_len, - u_char var_val_type, - int var_val_len, u_char *var_val, - int *listlength) - -{ - ACE_TRACE("cmu_snmp::build_var_op"); - int dummyLen, headerLen; - u_char *dataPtr; - - dummyLen = *listlength; - dataPtr = data; - - data += 4; - dummyLen -=4; - if (dummyLen < 0) - return 0; - - headerLen = data - dataPtr; - *listlength -= headerLen; - data = asn1::build_objid( data, listlength, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OBJECT_ID), - var_name, *var_name_len); - if (data == 0) { - ASNERROR(""); - return 0; - } - - // based on the type... - switch(var_val_type) { - case ASN_INTEGER: - data = asn1::build_int( data, listlength, var_val_type, (long *)var_val, - var_val_len); - break; - - case SMI_GAUGE: - case SMI_COUNTER: - case SMI_TIMETICKS: - case SMI_UINTEGER: - data = asn1::build_unsigned_int( data, - listlength, - var_val_type, - (u_long *)var_val, - var_val_len); - break; - - case SMI_COUNTER64: - data = asn1::build_unsigned_int64(data, - listlength, - var_val_type, - (struct counter64 *)var_val, - var_val_len); - break; - - case ASN_OCTET_STR: - case SMI_IPADDRESS: - case SMI_OPAQUE: - case SMI_NSAP: - data = asn1::build_string(data, listlength, var_val_type, - var_val, var_val_len); - break; - - case ASN_OBJECT_ID: - data = asn1::build_objid(data, listlength, var_val_type, - (oid *)var_val, var_val_len / sizeof(oid)); - break; - - case ASN_NULL: - data = asn1::build_null(data, listlength, var_val_type); - break; - - case ASN_BIT_STR: - data = asn1::build_bitstring(data, listlength, var_val_type, - var_val, var_val_len); - break; - - case SNMP_NOSUCHOBJECT: - case SNMP_NOSUCHINSTANCE: - case SNMP_ENDOFMIBVIEW: - data = asn1::build_null(data, listlength, var_val_type); - break; - - default: - ASNERROR("wrong type"); - return 0; - } - if (data == 0) { - ASNERROR(""); - return 0; - } - dummyLen = (data - dataPtr) - headerLen; - - asn1::build_sequence(dataPtr, &dummyLen, - (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR), - dummyLen); - return data; -} - - -// serialize the pdu -int cmu_snmp::build( struct snmp_pdu *pdu, u_char *packet, - int *out_length, long version, - u_char* community, int community_len) -{ - ACE_TRACE("cmu_snmp::build"); - u_char buf[SNMP_MSG_LENGTH]; - u_char *cp; - struct variable_list *vp; - int length; - int totallength; - - length = *out_length; - cp = packet; - for(vp = pdu->variables; vp; vp = vp->next_variable) { - cp = cmu_snmp::build_var_op( cp, vp->name, - &vp->name_length, vp->type, - vp->val_len, (u_char *)vp->val.string, - &length); - if (cp == 0) - return -1; - } - totallength = cp - packet; - - length = SNMP_MSG_LENGTH; - - // encode the total len - cp = asn1::build_header( buf, &length, - (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR), - totallength); - if (cp == 0) - return -1; - ACE_OS::memcpy( (char *)cp, (char *)packet,totallength); - totallength += cp - buf; - - length = *out_length; - if (pdu->command != TRP_REQ_MSG) { - - // request id - cp = asn1::build_int( packet, - &length, - (u_char )(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - (long *)&pdu->reqid, - sizeof(pdu->reqid)); - if (cp == 0) - return -1; - - // error status - cp = asn1::build_int(cp, - &length, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - (long *)&pdu->errstat, sizeof(pdu->errstat)); - if (cp == 0) - return -1; - - // error index - cp = asn1::build_int(cp, - &length, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - (long *)&pdu->errindex, sizeof(pdu->errindex)); - if (cp == 0) - return -1; - } - else { // this is a trap message - - // enterprise - cp = asn1::build_objid( packet, - &length, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OBJECT_ID), - (oid *)pdu->enterprise, - pdu->enterprise_length); - if (cp == 0) - return -1; - - // agent-addr - cp = asn1::build_string(cp, - &length, - // HDN Fixed to use correct tag - (u_char)SMI_IPADDRESS, - //(u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OCTET_STR), - (u_char *)&pdu->agent_addr.sin_addr.s_addr, - sizeof(pdu->agent_addr.sin_addr.s_addr)); - if (cp == 0) - return -1; - - long tmp (static_cast (pdu->trap_type)); - // generic trap - cp = asn1::build_int(cp, - &length, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - &tmp, - sizeof(pdu->trap_type)); - if (cp == 0) - return -1; - - tmp = static_cast (pdu->specific_type); - // specific trap - cp = asn1::build_int( cp, - &length, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - &tmp, - sizeof(pdu->specific_type)); - if (cp == 0) - return -1; - - // timestamp - cp = asn1::build_int(cp, - &length, - // HDN Fixed to use correct tag - (u_char)SMI_TIMETICKS, - //(u_char )(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - (long *)&pdu->time, - sizeof(pdu->time)); - if (cp == 0) - return -1; - } - - if (length < totallength) - return -1; - // fixed - ACE_OS::memcpy((char *)cp, (char *)buf, totallength); - totallength += cp - packet; - - length = SNMP_MSG_LENGTH; - cp = asn1::build_header(buf, - &length, - (u_char)pdu->command, - totallength); - if (cp == 0) - return -1; - if (length < totallength) - return -1; - // fixed - ACE_OS::memcpy((char *)cp, (char *)packet, totallength); - totallength += cp - buf; - - length = *out_length; - - cp = cmu_snmp::auth_build( packet, - &length, - version, - community, - community_len, - totallength ); - if (cp == 0) - return -1; - if ((*out_length - (cp - packet)) < totallength) - return -1; - // fixed - ACE_OS::memcpy((char *)cp, (char *)buf, totallength); - totallength += cp - packet; - *out_length = totallength; - - return 0; -} - -// parse the authentication header -u_char *cmu_snmp::auth_parse(u_char *data, - int *length, u_char *sid, - int *slen, long *version) -{ - ACE_TRACE("cmu_snmp::auth_parse"); - u_char type; - - // get the type - data = asn1::parse_header( data, length, &type); - if (data == 0){ - ASNERROR("bad header"); - return 0; - } - - if (type != (ASN_SEQUENCE | ASN_CONSTRUCTOR)) { - ASNERROR("wrong auth header type"); - return 0; - } - - // get the version - data = asn1::parse_int(data, length, &type, version, sizeof(*version)); - if (data == 0) { - ASNERROR("bad parse of version"); - return 0; - } - - // get the community name - data = asn1::parse_string(data, length, &type, sid, slen); - if (data == 0) { - ASNERROR("bad parse of community"); - return 0; - } - - return (u_char *)data; -} - -/* u_char *data, // IN - pointer to the start of object - oid *var_name, // OUT - object id of variable - int *var_name_len, // IN/OUT - length of variable name - u_char *var_val_type, // OUT - type of variable - (int or octet string) (one byte) - int *var_val_len, // OUT - length of variable - u_char **var_val, // OUT - pointer to ASN1 encoded value of variable -*/ - -u_char * -cmu_snmp::parse_var_op( u_char *data, oid *var_name, - int *var_name_len, u_char *var_val_type, - int *var_val_len, u_char **var_val, - int *listlength) -{ - ACE_TRACE("cmu_snmp::parse_var_op"); - u_char var_op_type; - int var_op_len = *listlength; - u_char *var_op_start = data; - - data = asn1::parse_header(data, &var_op_len, &var_op_type); - if (data == 0){ - ASNERROR(""); - return 0; - } - if (var_op_type != (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR)) - return 0; - data = asn1::parse_objid(data, &var_op_len, &var_op_type, var_name, var_name_len); - if (data == 0) { - ASNERROR(""); - return 0; - } - if (var_op_type != (u_char) - (ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OBJECT_ID)) - return 0; - *var_val = data; /* save pointer to this object */ - /* find out what type of object this is */ - data = asn1::parse_header(data, &var_op_len, var_val_type); - if (data == 0) { - ASNERROR(""); - return 0; - } - *var_val_len = var_op_len; - data += var_op_len; - *listlength -= (int)(data - var_op_start); - return data; -} - - - -// build a pdu from a data and length -int cmu_snmp::parse( struct snmp_pdu *pdu, - u_char *data, - u_char *community_name, - u_long &community_len, - snmp_version &spp_version, - int length) -{ - ACE_TRACE("cmu_snmp::parse"); - u_char msg_type; - u_char type; - u_char *var_val; - long version; - int len, four; - u_char community[256]; - int community_length = 256; - struct variable_list *vp = 0; - oid objid[MAX_NAME_LEN], *op; - - // authenticates message and returns length if valid - data = cmu_snmp::auth_parse(data, - &length, - community, - &community_length, - &version); - if (data == 0) - return -1; - - // copy the returned community name - ACE_OS::memcpy( (u_char *) community_name, - (u_char *) community, - community_length); - community_len = (long) community_length; - - if( version != SNMP_VERSION_1 && version != SNMP_VERSION_2C ) { - ASNERROR("Wrong version"); - return -1; - } - - spp_version = (snmp_version) version; - - data = asn1::parse_header(data, - &length, - &msg_type); - if (data == 0) - return -1; - pdu->command = msg_type; - - if (pdu->command != TRP_REQ_MSG){ - // get the rid - data = asn1::parse_int(data, - &length, &type, - (long *)&pdu->reqid, - sizeof(pdu->reqid)); - if (data == 0) - return -1; - // get the error status - data = asn1::parse_int(data, - &length, - &type, - (long *)&pdu->errstat, - sizeof(pdu->errstat)); - if (data == 0) - return -1; - // get the error index - data = asn1::parse_int(data, - &length, - &type, - (long *)&pdu->errindex, - sizeof(pdu->errindex)); - if (data == 0) - return -1; - } - else { // is a trap - - // get the enterprise - pdu->enterprise_length = MAX_NAME_LEN; - data = asn1::parse_objid(data, - &length, - &type, - objid, - &pdu->enterprise_length); - if (data == 0) - return -1; - - ACE_NEW_RETURN(pdu->enterprise, - oid[pdu->enterprise_length*sizeof(oid)],-1); - - // fixed - ACE_OS::memcpy((char *)pdu->enterprise,(char *)objid, - pdu->enterprise_length * sizeof(oid)); - - // get source address - four = 4; - data = asn1::parse_string(data, &length, &type, - (u_char *)&pdu->agent_addr.sin_addr.s_addr, - &four); - if (data == 0) - return -1; - - long tmp (static_cast (pdu->trap_type)); - - // get trap type - data = asn1::parse_int(data, &length, &type, &tmp, - sizeof(pdu->trap_type)); - if (data == 0) - return -1; - - // trap type - tmp = static_cast (pdu->specific_type); - data = asn1::parse_int(data, &length, &type, &tmp, - sizeof(pdu->specific_type)); - if (data == 0) - return -1; - - // timestamp - data = asn1::parse_int(data, &length, &type, (long *)&pdu->time, - sizeof(pdu->time)); - if (data == 0) - return -1; - } - - // get the vb list - data = asn1::parse_header(data, &length, &type); - if (data == 0) - return -1; - - if (type != (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR)) - return -1; - - while((int)length > 0) { - if (pdu->variables == 0) { - ACE_NEW_RETURN(pdu->variables, variable_list, -1); - vp = pdu->variables; - } else { - ACE_NEW_RETURN(vp->next_variable, variable_list, -1); - vp = vp->next_variable; - } - vp->next_variable = 0; - vp->val.string = 0; - vp->name = 0; - vp->name_length = MAX_NAME_LEN; - data = cmu_snmp::parse_var_op( data, objid, - &vp->name_length, &vp->type, - &vp->val_len, &var_val, - (int *)&length); - if (data == 0) - return -1; - - ACE_NEW_RETURN(op, oid[(unsigned)vp->name_length * sizeof(oid)], -1); - - // fixed - ACE_OS::memcpy((char *)op, (char *)objid, vp->name_length * sizeof(oid)); - vp->name = op; - - len = SNMP_MSG_LENGTH; - switch((short)vp->type) { - case ASN_INTEGER: - case SMI_COUNTER: - case SMI_GAUGE: - case SMI_TIMETICKS: - case SMI_UINTEGER: - ACE_NEW_RETURN(vp->val.integer,long, -1); - vp->val_len = sizeof(long); - asn1::parse_int(var_val, &len, &vp->type, (long *)vp->val.integer, sizeof(vp->val.integer)); - break; - case SMI_COUNTER64: - ACE_NEW_RETURN(vp->val.counter64, counter64, -1); - vp->val_len = sizeof(struct counter64); - asn1::parse_unsigned_int64(var_val, &len, &vp->type, - (struct counter64 *)vp->val.counter64, - sizeof(*vp->val.counter64)); - break; - - case ASN_OCTET_STR: - case SMI_IPADDRESS: - case SMI_OPAQUE: - case SMI_NSAP: - ACE_NEW_RETURN(vp->val.string, u_char[(unsigned)vp->val_len + 1], -1); - asn1::parse_string(var_val, &len, &vp->type, vp->val.string, - &vp->val_len); - break; - - case ASN_OBJECT_ID: - vp->val_len = MAX_NAME_LEN; - asn1::parse_objid(var_val, &len, &vp->type, objid, &vp->val_len); - //vp->val_len *= sizeof(oid); - - ACE_NEW_RETURN(vp->val.objid, oid[(unsigned)vp->val_len*sizeof(oid)], -1); - - // fixed - ACE_OS::memcpy((char *)vp->val.objid, - (char *)objid, - vp->val_len * sizeof(oid)); - break; - - case SNMP_NOSUCHOBJECT: - case SNMP_NOSUCHINSTANCE: - case SNMP_ENDOFMIBVIEW: - case ASN_NULL: - break; - default: - ASNERROR("bad type returned "); - break; - } - } - return 0; -} diff --git a/ACE/ASNMP/asnmp/asn1.h b/ACE/ASNMP/asnmp/asn1.h deleted file mode 100644 index 3be7e3925ef..00000000000 --- a/ACE/ASNMP/asnmp/asn1.h +++ /dev/null @@ -1,345 +0,0 @@ -/* -*-C++-*- */ -#ifndef ASN1 -#define ASN1 -//============================================================================= -/** - * @file asn1.h - * - * $Id$ - * - * Abstract Syntax Notation One, ASN.1 - * As defined in ISO/IS 8824 and ISO/IS 8825 - * This implements a subset of the above International Standards that - * is sufficient to implement SNMP. - * - * - * @author Steve Waldbusser/CMU ? - */ -//============================================================================= - - -/********************************************************************** - 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. -******************************************************************/ - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "asnmp/snmp.h" - -// CMU code to define "oid" typedef (old C style) -#ifndef EIGHTBIT_SUBIDS -typedef unsigned long oid; -#define MAX_SUBID 0xFFFFFFFF -#else -typedef unsigned char oid; -#define MAX_SUBID 0xFF -#endif - -#define MAX_OID_LEN 64 /* max subid's in an oid */ - - -// asn.1 values -#define ASN_BOOLEAN (0x01) -#define ASN_INTEGER (0x02) -#define ASN_BIT_STR (0x03) -#define ASN_OCTET_STR (0x04) -#define ASN_NULL (0x05) -#define ASN_OBJECT_ID (0x06) -#define ASN_SEQUENCE (0x10) -#define ASN_SET (0x11) -#define ASN_UNIVERSAL (0x00) -#define ASN_APPLICATION (0x40) -#define ASN_CONTEXT (0x80) -#define ASN_PRIVATE (0xC0) -#define ASN_PRIMITIVE (0x00) -#define ASN_CONSTRUCTOR (0x20) -#define ASN_LONG_LEN (0x80) -#define ASN_EXTENSION_ID (0x1F) -#define ASN_BIT8 (0x80) - -#define IS_CONSTRUCTOR(byte) ((byte) & ASN_CONSTRUCTOR) -#define IS_EXTENSION_ID(byte) (((byte) & ASN_EXTENSION_ID) == ASN_EXTENSION_ID) - -#define ASNERROR( string) -#define MAX_NAME_LEN 64 -#define SNMP_VERSION_1 0 -#define SNMP_VERSION_2C 1 - - -// defined types (from the SMI, RFC 1065) -#define SMI_IPADDRESS (ASN_APPLICATION | 0) -#define SMI_COUNTER (ASN_APPLICATION | 1) -#define SMI_GAUGE (ASN_APPLICATION | 2) -#define SMI_TIMETICKS (ASN_APPLICATION | 3) -#define SMI_OPAQUE (ASN_APPLICATION | 4) -#define SMI_NSAP (ASN_APPLICATION | 5) -#define SMI_COUNTER64 (ASN_APPLICATION | 6) -#define SMI_UINTEGER (ASN_APPLICATION | 7) - -#define GET_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0) -#define GETNEXT_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1) -#define GET_RSP_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2) -#define SET_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3) -#define TRP_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4) - -#define GETBULK_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5) -#define INFORM_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6) -#define TRP2_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7) -#define REPORT_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x8) - -#define SNMP_NOSUCHOBJECT (ASN_CONTEXT | ASN_PRIMITIVE | 0x0) -#define SNMP_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x1) -#define SNMP_ENDOFMIBVIEW (ASN_CONTEXT | ASN_PRIMITIVE | 0x2) - -#define SNMP_MSG_LENGTH 1500 - -typedef struct sockaddr_in ipaddr; - -// pdu -struct snmp_pdu { - int command; // pdu type - unsigned long reqid; // Request id - unsigned long errstat; // Error status - unsigned long errindex; // Error index - - // Trap information - oid *enterprise; // System OID - int enterprise_length; - ipaddr agent_addr; // address of object generating trap - int trap_type; // trap type - int specific_type; // specific type - unsigned long time; // Uptime - - // vb list - struct variable_list *variables; -}; - -// vb list -struct variable_list { - struct variable_list *next_variable; // 0 for last variable - oid *name; // Object identifier of variable - int name_length; // number of subid's in name - unsigned char type; // ASN type of variable - union { // value of variable - long *integer; - unsigned char *string; - oid *objid; - unsigned char *bitstring; - struct counter64 *counter64; - } val; - int val_len; -}; - -struct counter64 { - unsigned long high; - unsigned long low; -}; - -// CMU Interface class for ASN.1 routines -/** - * @class asn1 - * - * @brief Defines the member functions for the asn1 concrete interface class - * CMU routines for performing ASN.1 data marshalling / representation - */ -class ASNMP_Export asn1 - -{ -public: -static unsigned char *parse_int( unsigned char *data, - int *datalength, - unsigned char *type, - long int *intp, - int intsize); -static unsigned char *parse_unsigned_int( unsigned char *data, - int *datalength, - unsigned char *type, - unsigned long *intp, - int intsize); -static unsigned char *build_int( unsigned char *data, - int *datalength, - unsigned char type, - long *intp, - int intsize); - -static unsigned char *build_unsigned_int( unsigned char *data, - int *datalength, - unsigned char type, - unsigned long *intp, - int intsize); - -static unsigned char *parse_string( unsigned char *data, - int *datalength, - unsigned char *type, - unsigned char *string, - int *strlength); - -static unsigned char *build_string( unsigned char *data, - int *datalength, - unsigned char type, - unsigned char *string, - int strlength); - -static unsigned char *parse_header( unsigned char *data, - int *datalength, - unsigned char *type); - -static unsigned char * build_header( unsigned char *data, - int *datalength, - unsigned char type, - int length); - -static unsigned char * build_sequence( unsigned char *data, - int *datalength, - unsigned char type, - int length); - -static unsigned char * parse_length( unsigned char *data, - unsigned long *length); - -static unsigned char *build_length( unsigned char *data, - int *datalength, - int length); - -static unsigned char *build_objid( unsigned char *data, - int *datalength, - unsigned char type, - oid *objid, - int objidlength); - -static unsigned char *parse_objid( unsigned char *data, - int *datalength, - unsigned char *type, - oid *objid, - int *objidlength); - -static unsigned char *parse_null(unsigned char *data, - int *datalength, unsigned - char *type); - -static unsigned char *build_null( unsigned char *data, - int *datalength, - unsigned char type); - -static unsigned char *parse_bitstring( unsigned char *data, - int *datalength, - unsigned char *type, - unsigned char *string, - int *strlength); - -static unsigned char *build_bitstring( unsigned char *data, - int *datalength, - unsigned char type, - unsigned char *string, - int strlength); - -static unsigned char * parse_unsigned_int64(unsigned char *data, - int *datalength, - unsigned char *type, - struct counter64 *cp, - int countersize); - -static unsigned char * build_unsigned_int64( unsigned char *data, - int *datalength, - unsigned char type, - struct counter64 *cp, - int countersize); - -}; - - -// CMU Interface class for SNMPv1, SNMPv2c routines -/** - * @class cmu_snmp - * - * @brief Defines the static functions for the cmu_snmp concrete class. - * These routine create cmu pdu's that can be sent/received on/from agents - */ -class ASNMP_Export cmu_snmp -{ - public: - static struct snmp_pdu *pdu_create( int command); - static void free_pdu( struct snmp_pdu *pdu); - static int build( struct snmp_pdu *pdu, - unsigned char *packet, - int *out_length, - long version, - unsigned char* community, - int community_len); - - static void add_var(struct snmp_pdu *pdu, - oid *name, - int name_length, - SmiVALUE *smival); - - static int parse( struct snmp_pdu *pdu, - unsigned char *data, - unsigned char *community_name, - unsigned long &community_len, - snmp_version &version, - int length); - static unsigned char *auth_build( unsigned char *data, - int *length, - long int version, - unsigned char *community, - int community_len, - int messagelen); - - static unsigned char *build_var_op(unsigned char *data, - oid * var_name, - int *var_name_len, - unsigned char var_val_type, - int var_val_len, - unsigned char *var_val, - int *listlength); - - -static unsigned char *auth_parse(unsigned char *data, - int *length, - unsigned char *sid, - int *slen, - long *version); - -/* - @params data, IN - pointer to the start of object - var_name OUT - object id of variable - var_name_len IN/OUT - length of variable name - var_val_type OUT - type of variable (int or octet string) (one byte) - var_val_len OUT - length of variable - var_val, OUT - pointer to ASN1 encoded value of variable - listlength IN/OUT - number of valid bytes left in var_op_list -*/ -static unsigned char *parse_var_op( unsigned char *data, - oid *var_name, - int *var_name_len, - unsigned char *var_val_type, - int *var_val_len, - unsigned char **var_val, - int *listlength); - -}; - -#endif // ASN1 - diff --git a/ACE/ASNMP/asnmp/asnmp.mpc b/ACE/ASNMP/asnmp/asnmp.mpc deleted file mode 100644 index fc128bee249..00000000000 --- a/ACE/ASNMP/asnmp/asnmp.mpc +++ /dev/null @@ -1,26 +0,0 @@ -// $Id$ - -project (asnmp_lib) : ace_output, acelib { - sharedname = asnmp - dynamicflags = ASNMP_BUILD_DLL - includes += $(ACE_ROOT)/ASNMP - - source_files { - address.cpp - asn1.cpp - counter.cpp - ctr64.cpp - gauge.cpp - integer.cpp - octet.cpp - oid.cpp - pdu.cpp - snmp.cpp - target.cpp - timetick.cpp - transaction.cpp - vb.cpp - wpdu.cpp - sagent.cpp - } -} diff --git a/ACE/ASNMP/asnmp/counter.cpp b/ACE/ASNMP/asnmp/counter.cpp deleted file mode 100644 index c62b1d0a20a..00000000000 --- a/ACE/ASNMP/asnmp/counter.cpp +++ /dev/null @@ -1,107 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/counter.h" - -ACE_RCSID(asnmp, counter, "$Id$") - -// constructor with a value -Counter32::Counter32( const unsigned long i):SnmpUInt32(i) -{ - smival.syntax = sNMP_SYNTAX_CNTR32; -} - -// copy constructor -Counter32::Counter32( const Counter32 &c) - : SnmpUInt32 (c) -{ - this->smival.value.uNumber = c.smival.value.uNumber; - smival.syntax = sNMP_SYNTAX_CNTR32; - valid_flag = 1; -} - -// syntax type -SmiUINT32 Counter32::get_syntax() -{ - return sNMP_SYNTAX_CNTR32; -} - -// general assignment from any Value -SnmpSyntax& Counter32::operator=( SnmpSyntax &in_val){ - if ( this == &in_val ) // handle assignement from itself - return *this; - - valid_flag = 0; // will get set true if really valid - if (in_val.valid()) - { - switch (in_val.get_syntax()) - { - case sNMP_SYNTAX_UINT32: - // case sNMP_SYNTAX_GAUGE32: .. indistinquishable from UINT32 - case sNMP_SYNTAX_CNTR32: - case sNMP_SYNTAX_TIMETICKS: - case sNMP_SYNTAX_INT32: // implied cast int -> uint - this->smival.value.uNumber = - ((Counter32 &)in_val).smival.value.uNumber; - valid_flag = 1; - break; - } - } - return *this; -} - -// overloaded assignment -Counter32& Counter32::operator=( const unsigned long int i) -{ - this->smival.value.uNumber=i; - return *this; -} - -// overloaded assignment -Counter32& Counter32::operator=( const Counter32 &uli) -{ - this->smival.value.uNumber = uli.smival.value.uNumber; - return *this; -} - -// otherwise, behave like an unsigned long int -Counter32::operator unsigned long() -{ - return this->smival.value.uNumber; -} - -// clone -SnmpSyntax * Counter32::clone() const -{ - return ( SnmpSyntax *) new Counter32(*this); -} diff --git a/ACE/ASNMP/asnmp/counter.h b/ACE/ASNMP/asnmp/counter.h deleted file mode 100644 index 36fda2f84ce..00000000000 --- a/ACE/ASNMP/asnmp/counter.h +++ /dev/null @@ -1,79 +0,0 @@ -/* -*-C++-*- */ -#ifndef COUNTER_ -#define COUNTER_ -//============================================================================= -/** - * @file counter.h - * - * $Id$ - * - * Class definition for SMI Counter32 class. - * - * - * @author Peter E Mellquist - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/smival.h" -#include "asnmp/integer.h" - -//------------[ Counter32 Class ]------------------------------------------ -// The counter class allows all the functionality of unsigned -// 32 bit integers but is recognized as a distinct SMI type. Counter32 -// class objects may be set or get into Vb objects. -// -// This class does not behave as defined by the abstract model -// in RFC 1155 section 3.2.3.3 - -/** - * @class Counter32 - * - * @brief Defines the member functions for the Counter32 concrete class - * This class implements RFC 1155 Counter Object and is named - * Counter32 after the RFC1902 redefinition of V1 SMI datatypes - */ -class ASNMP_Export Counter32 : public SnmpUInt32 -{ - public: - /// constructor with a value - Counter32( const unsigned long i = 0); - - /// copy constructor - Counter32( const Counter32 &c); - - /// syntax type - SmiUINT32 get_syntax(); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// overloaded assignment - Counter32& operator=( const Counter32 &uli); - - /// overloaded assignment - Counter32& operator=( const unsigned long i); - - /// otherwise, behave like an unsigned long int - operator unsigned long(); -}; - -#endif // COUNTER_ diff --git a/ACE/ASNMP/asnmp/ctr64.cpp b/ACE/ASNMP/asnmp/ctr64.cpp deleted file mode 100644 index 60cc9abfbbb..00000000000 --- a/ACE/ASNMP/asnmp/ctr64.cpp +++ /dev/null @@ -1,213 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/ctr64.h" -#include "ace/OS_NS_stdio.h" - -ACE_RCSID(asnmp, ctr64, "$Id$") - -#define MAX32 4294967295u - -//-----------[ syntax type ]---------------------------------------------- -SmiUINT32 Counter64::get_syntax() -{ - return sNMP_SYNTAX_CNTR64; -} - -//------------------[ constructor with values ]-------------------------- -Counter64::Counter64( unsigned long hiparm, unsigned long loparm) -{ - smival.syntax = sNMP_SYNTAX_CNTR64; - smival.value.hNumber.hipart = hiparm; - smival.value.hNumber.lopart = loparm; -} - -//------------------[ constructor with low value only ]------------------ -Counter64::Counter64( ACE_UINT64 llw ) -{ - smival.syntax = sNMP_SYNTAX_CNTR64; - smival.value.hNumber.hipart = (unsigned long) (llw >> 32); - smival.value.hNumber.lopart = (unsigned long) llw & 0xffffffff; -} - -//------------------[ copy constructor ]--------------------------------- -Counter64::Counter64( const Counter64 &ctr64 ) - : SnmpSyntax (ctr64) -{ - smival.syntax = sNMP_SYNTAX_CNTR64; - smival.value.hNumber.hipart = ctr64.high(); - smival.value.hNumber.lopart = ctr64.low(); -} - -//------------------[ destructor ]--------------------------------- -Counter64::~Counter64() -{ -} - - -//------------------[ Counter64::high() ]------------------------------ -// return the high part -unsigned long Counter64::high() const -{ - return smival.value.hNumber.hipart; -} - - -//------------------[ Counter64::low() ]------------------------------- -// return the low part -unsigned long Counter64::low() const -{ - return smival.value.hNumber.lopart; -} - -//------------------[ set_high( const unsigned long h) ]----------- -// set the high part -void Counter64::set_high( const unsigned long h) -{ - smival.value.hNumber.hipart = h; -} - -//------------------[ set_low( const unsigned long l) ]------------ -// set the low part -void Counter64::set_low( const unsigned long l) -{ - smival.value.hNumber.lopart = l; -} - - -//-----------[ to_long_double( Counter64 c64) ]----------------------------- -// convert a Counter 64 to a long double -long double Counter64::to_long_double() const -{ - long double ld = this->high(); - ld *= MAX32; - ld += this->low(); - return ld; -} - - -//-----------[ ld_to_c64( long double ld) ]---------------------------- -// convert a long double to a Counter64 -// semantics changed from prior version -Counter64& Counter64::assign( long double ld) -{ - smival.syntax = sNMP_SYNTAX_CNTR64; - unsigned long h = smival.value.hNumber.hipart = (unsigned long)(ld / MAX32); - smival.value.hNumber.lopart = (unsigned long)(ld - h); - return *this; -} - -//----------------[ general Value = operator ]--------------------- -SnmpSyntax& Counter64::operator=( SnmpSyntax &val) -{ - // protect against assignment from itself - if ( this == &val ) - return *this; - - smival.value.hNumber.lopart = 0; // pessimsitic - assume no mapping - smival.value.hNumber.hipart = 0; - - // try to make assignment valid - if (val.valid()){ - switch (val.get_syntax()){ - case sNMP_SYNTAX_CNTR64: - smival.value.hNumber.hipart = - ((Counter64 &)val).smival.value.hNumber.hipart; - smival.value.hNumber.lopart = - ((Counter64 &)val).smival.value.hNumber.lopart; - break; - - case sNMP_SYNTAX_CNTR32: - case sNMP_SYNTAX_TIMETICKS: - case sNMP_SYNTAX_GAUGE32: - // case sNMP_SYNTAX_UINT32: .. indistinguishable from GAUGE32 - case sNMP_SYNTAX_INT32: - // take advantage of union... - smival.value.hNumber.lopart = ((Counter64 &)val).smival.value.uNumber; - smival.value.hNumber.hipart = 0; - break; - } - } - return *this; -} - -// overloaded assignment -Counter64& Counter64::operator=( const ACE_UINT64 rhs) -{ - smival.value.hNumber.hipart = (unsigned long) (rhs >> 32); - smival.value.hNumber.lopart = (unsigned long) rhs; - return *this; -} - -// overloaded assignment -Counter64& Counter64::operator=( const Counter64 &rhs) -{ - smival.value.hNumber.hipart = rhs.high(); - smival.value.hNumber.lopart = rhs.low(); - return *this; -} - -// otherwise, behave like an unsigned long int -Counter64::operator ACE_UINT64() -{ - ACE_UINT64 val = smival.value.hNumber.hipart; - val = val << 32; // shift right 4 bytes - val |= smival.value.hNumber.lopart; - return val; -} - -//----------------[ Counter64::clone() ]----------------------------------- -// create a new instance of this Value -SnmpSyntax* Counter64::clone() const -{ - return ( SnmpSyntax *) new Counter64(*this); -} - -//----------------[ Counter64::valid() ]------------------------------------- -int Counter64::valid() const -{ - return 1; -} - -//----------[ return ASCII format ]------------------------- -// TODO: Fix up to do real 64bit decimal value printing... -// For now, print > 32-bit values in hex -const char * Counter64::to_string() -{ - if ( high() != 0 ) - ACE_OS::sprintf(output_buffer, "0x%X%08X", - (unsigned int)high(), (unsigned int)low()); - else - ACE_OS::sprintf(output_buffer, "%d", (int) low()); - return output_buffer; -} diff --git a/ACE/ASNMP/asnmp/ctr64.h b/ACE/ASNMP/asnmp/ctr64.h deleted file mode 100644 index 6b97b9966f2..00000000000 --- a/ACE/ASNMP/asnmp/ctr64.h +++ /dev/null @@ -1,111 +0,0 @@ -/* -*-C++-*- */ -#ifndef CTR64_ -#define CTR64_ -//============================================================================= -/** - * @file ctr64.h - * - * $Id$ - * - * SNMP Counter64 class definition. - * - * - * @author Peter E Mellquist - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/smival.h" -#include "ace/Basic_Types.h" - -#define CTR64OUTBUF 30 // maximum ascii string for a 64-bit ctr - - -//---------[ 64 bit Counter Class ]-------------------------------- -// Counter64 Class encapsulates two unsigned integers into a -// a single entity. This type has is available in SNMPv2 but -// may be used anywhere where needed. -// -/** - * @class Counter64 - * - * @brief Defines the member functions for the Counter64 concrete class - * This class implements RFC 1902 64 bit Counter Object. - */ -class ASNMP_Export Counter64 : public SnmpSyntax -{ -public: - /// default constructor - Counter64( ACE_UINT64 llw = 0); - - /// constructor with values - Counter64( unsigned long hiparm, unsigned long loparm); - - /// copy constructor - Counter64( const Counter64 &ctr64); - - /// destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden) - ~Counter64(); - - /// syntax type - SmiUINT32 get_syntax(); - - /// return a long double representation - long double to_long_double() const; - - /// assign a long double to a counter64 - Counter64& assign( long double ld); - - /// return the high part - unsigned long high() const; - - /// return the low part - unsigned long low() const; - - /// set the high part - void set_high( const unsigned long h); - - /// set the low part - void set_low( const unsigned long l); - - /// overloaded assignment - Counter64& operator=( const ACE_UINT64 rhs); - - /// overloaded assignment - Counter64& operator=( const Counter64 &rhs); - - /// get a printable ASCII representation - const char *to_string(); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// general validity test, always true - int valid() const; - - /// otherwise, behave like an ACE_UINT64 - operator ACE_UINT64(); - -protected: - char output_buffer[CTR64OUTBUF]; -}; - -#endif // CTR64_ diff --git a/ACE/ASNMP/asnmp/enttraps.h b/ACE/ASNMP/asnmp/enttraps.h deleted file mode 100644 index 433538eb258..00000000000 --- a/ACE/ASNMP/asnmp/enttraps.h +++ /dev/null @@ -1,147 +0,0 @@ -/* -*-C++-*- */ -#ifndef ENTTRAPS_ -#define ENTTRAPS_ -//============================================================================= -/** - * @file enttraps.h - * - * $Id$ - * - * constants for Enterprise Traps - * - * - * @author Peter E MellquistMichael R MacFaden mrm@cisco.com - rework & ACE port - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/asn1.h" // ASN.1 header file - -//--------------[ well known trap ids ]----------------------------------- -/** - * @class snmpTrapsOid - * - * @brief Defines the member functions for the snmpTrapsOid base class - * to implement the traps defined in RFC 1215 - */ -class ASNMP_Export snmpTrapsOid : public Oid -{ - public: - snmpTrapsOid (void):Oid("1.3.6.1.6.3.1.1.5"){} - SnmpSyntax& operator=( SnmpSyntax &val){ return Oid::operator=(val); } -}; - -/** - * @class snmpTrapEnterpriseOid - * - * @brief Defines the default Enterprise Oid for this software package - */ -class ASNMP_Export snmpTrapEnterpriseOid : public Oid -{ - public: - snmpTrapEnterpriseOid(void): Oid("1.3.6.1.6.3.1.1.4.3.0") { } - SnmpSyntax& operator=( SnmpSyntax &val){ return Oid::operator=(val); } -}; - -/** - * @class coldStartOid - * - * @brief Defines the RFC 1215 agent cold start generic trap (system reboot) - */ -class ASNMP_Export coldStartOid : public snmpTrapsOid -{ - public: - coldStartOid( void){*this+=".1";} - SnmpSyntax& operator=( SnmpSyntax &val){ return snmpTrapsOid::operator=(val); } -}; - -/** - * @class warmStartOid - * - * @brief Defines the RFC 1215 agent warm start generic trap (agent reboot) - */ -class ASNMP_Export warmStartOid : public snmpTrapsOid -{ - public: - warmStartOid( void){*this+=".2";} - SnmpSyntax& operator=( SnmpSyntax &val){ return snmpTrapsOid::operator=(val); } -}; - -/** - * @class linkDownOid - * - * @brief Defines the RFC 1215 interface (link) down trap - */ -class ASNMP_Export linkDownOid : public snmpTrapsOid -{ - public: - linkDownOid( void){*this+=".3";} - SnmpSyntax& operator=( SnmpSyntax &val){ return snmpTrapsOid::operator=(val); } -}; - - -// SMI LinkUp Oid -/** - * @class linkUpOid - * - * @brief Defines the RFC 1215 interface (link) up trap - */ -class ASNMP_Export linkUpOid : public snmpTrapsOid -{ - public: - linkUpOid( void){*this+=".4";} - SnmpSyntax& operator=( SnmpSyntax &val){ return snmpTrapsOid::operator=(val); } -}; - -/** - * @class authenticationFailureOid - * - * @brief Defines the RFC 1215 device/agent invalid access trap - */ -class ASNMP_Export authenticationFailureOid : public snmpTrapsOid -{ - public: - authenticationFailureOid( void){*this+=".5";} - SnmpSyntax& operator=( SnmpSyntax &val){ return snmpTrapsOid::operator=(val); } -}; - -/** - * @class egpNeighborLossOid - * - * @brief Defines the RFC 1215 Exterior Gateway Protocol neighbor loss trap - */ -class ASNMP_Export egpNeighborLossOid : public snmpTrapsOid -{ - public: - egpNeighborLossOid( void){*this+=".6";} - SnmpSyntax& operator=( SnmpSyntax &val){ return snmpTrapsOid::operator=(val); } -}; - -#ifdef DEFINE_TRAP_CONSTANTS_ - -const coldStartOid coldStart; -const warmStartOid warmStart; -const linkDownOid linkDown; -const linkUpOid linkUp; -const authenticationFailureOid authenticationFailure; -const egpNeighborLossOid egpNeighborLoss; -const snmpTrapEnterpriseOid snmpTrapEnterprise; - -#endif - -#endif // ENTTRAPS_ diff --git a/ACE/ASNMP/asnmp/gauge.cpp b/ACE/ASNMP/asnmp/gauge.cpp deleted file mode 100644 index 9051e2f83fb..00000000000 --- a/ACE/ASNMP/asnmp/gauge.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#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) -{ - smival.syntax = sNMP_SYNTAX_GAUGE32; -} - -// copy constructor -Gauge32::Gauge32 ( const Gauge32 &g) - : SnmpUInt32 (g) -{ this->smival.value.uNumber = g.smival.value.uNumber; - smival.syntax = sNMP_SYNTAX_GAUGE32; - valid_flag = 1; -} - -// destructor -Gauge32::~Gauge32() -{ -} - -// syntax type -SmiUINT32 Gauge32::get_syntax() -{ - return sNMP_SYNTAX_GAUGE32; -} - -// overloaded assignment -Gauge32& Gauge32::operator=( const Gauge32 &uli) -{ - this->smival.value.uNumber = uli.smival.value.uNumber; - return *this; -} - -// overloaded assignment -Gauge32& Gauge32::operator=( const unsigned long int i) -{ - smival.value.uNumber=i; return *this; -} - -// general assignment from any Value -// TODO: this is broken if not inherited from UInt32 (see UInt32 code). -SnmpSyntax& Gauge32::operator=( SnmpSyntax &in_val) -{ - - if ( this == &in_val ) // handle assignement from itself - return *this; - - valid_flag = 0; // will get set true if really valid - if (in_val.valid()) - { - switch (in_val.get_syntax()) - { - case sNMP_SYNTAX_UINT32: - case sNMP_SYNTAX_GAUGE32: - case sNMP_SYNTAX_CNTR32: - case sNMP_SYNTAX_TIMETICKS: - case sNMP_SYNTAX_INT32: // implied cast int -> uint - this->smival.value.uNumber = - ((Gauge32 &)in_val).smival.value.uNumber; - valid_flag = 1; - break; - } - } - return *this; -} - -// otherwise, act as unsigned long -Gauge32::operator unsigned long() -{ - return smival.value.uNumber; -} - -// clone - create a new instance of this Value -SnmpSyntax* Gauge32::clone() const -{ - return ( SnmpSyntax *) new Gauge32(*this); -} diff --git a/ACE/ASNMP/asnmp/gauge.h b/ACE/ASNMP/asnmp/gauge.h deleted file mode 100644 index 202edaf98bf..00000000000 --- a/ACE/ASNMP/asnmp/gauge.h +++ /dev/null @@ -1,79 +0,0 @@ -/* -*-C++-*- */ -#ifndef GAUGE_ -#define GAUGE_ -//============================================================================= -/** - * @file gauge.h - * - * $Id$ - * - * Class definition for SMI Gauge32 class. - * This class currently does not behave as defined by the abstract model - * in RFC 1155 section 3.2.3.4 (ie the value doesn't latch on the max value) - * - * - * @author Peter E Mellquist - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/integer.h" - -//------------[ Gauge32 Class ]------------------------------------------ -// The gauge class allows all the functionality of unsigned -// integers but is recognized as a distinct SMI type. Gauge32 -// objects may be set or get into Vb objects. -// - -/** - * @class Gauge32: - * - * @brief Define RFC1902 Gauge datatype from RFC 1155 section 3.2.3.4 - * Note that this datatype does not behave exactly (acts like a long) - */ -class ASNMP_Export Gauge32: public SnmpUInt32 -{ - public: - /// constructor with a value - Gauge32( const unsigned long i = 0); - - /// copy constructor - Gauge32 ( const Gauge32 &g); - - /// destructor for a Gauge32 (ensure that Value::~Value() is overridden) - ~Gauge32(); - - /// syntax type - SmiUINT32 get_syntax(); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// overloaded assignment - Gauge32& operator=( const Gauge32 &uli); - - /// overloaded assignment - Gauge32& operator=( const unsigned long i); - - /// otherwise, behave like an unsigned int - operator unsigned long(); - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); -}; -#endif //GAUGE_ diff --git a/ACE/ASNMP/asnmp/integer.cpp b/ACE/ASNMP/asnmp/integer.cpp deleted file mode 100644 index 8b73ce33dc6..00000000000 --- a/ACE/ASNMP/asnmp/integer.cpp +++ /dev/null @@ -1,230 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - - 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. -=====================================================================*/ - -#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) -{ - smival.value.uNumber=i; - smival.syntax = sNMP_SYNTAX_UINT32; - valid_flag = 1; -} - -// copy constructor -SnmpUInt32::SnmpUInt32( const SnmpUInt32 &c) - : SnmpSyntax (c) -{ - smival.value.uNumber=c.smival.value.uNumber; - smival.syntax = sNMP_SYNTAX_UINT32; - valid_flag = 1; -} - -// destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden) -SnmpUInt32::~SnmpUInt32() -{ -} - -// syntax type -SmiUINT32 SnmpUInt32::get_syntax() -{ - return sNMP_SYNTAX_UINT32; -} - -// object validity -int SnmpUInt32::valid( void) const -{ - return valid_flag; -} - -// overloaded assignment -SnmpUInt32& SnmpUInt32::operator=( const unsigned long int i) -{ - smival.value.uNumber=i; - valid_flag = 1; - return *this; -} - -// general assignment from any Value -SnmpSyntax& SnmpUInt32::operator=( SnmpSyntax &in_val) -{ - if ( this == &in_val ) // handle assignement from itself - return *this; - - valid_flag = 0; // will get set true if really valid - if (in_val.valid()) - { - switch (in_val.get_syntax()) - { - case sNMP_SYNTAX_UINT32: - // case sNMP_SYNTAX_GAUGE32: .. indistinquishable from UINT32 - case sNMP_SYNTAX_CNTR32: - case sNMP_SYNTAX_TIMETICKS: - case sNMP_SYNTAX_INT32: // implied cast int -> uint - this->smival.value.uNumber = - ((SnmpUInt32 &)in_val).smival.value.uNumber; - valid_flag = 1; - break; - } - } - return *this; -} - -// overloaded assignment -SnmpUInt32& SnmpUInt32::operator=( const SnmpUInt32 &uli) -{ - this->smival.value.uNumber = uli.smival.value.uNumber; return *this; -} - -// otherwise, behave like an unsigned long int -SnmpUInt32::operator unsigned long() -{ - return smival.value.uNumber; -} - -// create a new instance of this Value -SnmpSyntax* SnmpUInt32::clone() const -{ - return (SnmpSyntax *) new SnmpUInt32(*this); -} - -// ASCII format return -const char * SnmpUInt32::to_string() -{ - ACE_OS::sprintf(output_buffer, "%d", (int) (this->smival.value.uNumber)); - return output_buffer; -} - - -//==================================================================== -// INT 32 Implementation -//==================================================================== - -// default constructor -SnmpInt32::SnmpInt32 (const long i) -{ - smival.value.sNumber=i; - smival.syntax = sNMP_SYNTAX_INT32; - valid_flag = 1; -} - -// constructor with value -SnmpInt32::SnmpInt32 (const SnmpInt32 &c) - : SnmpSyntax (c) -{ - smival.value.sNumber=c.smival.value.sNumber; - smival.syntax = sNMP_SYNTAX_INT32; - valid_flag = 1; -} - -// destructor -SnmpInt32::~SnmpInt32() -{ -} - -// syntax type -SmiUINT32 SnmpInt32::get_syntax() -{ - return sNMP_SYNTAX_INT32; -} - -// object validity -int SnmpInt32::valid( void) const -{ - return valid_flag; -} - -// overloaded assignment -SnmpInt32& SnmpInt32::operator=( const long i) -{ - this->smival.value.sNumber = (unsigned long) i; - valid_flag = 1; - return *this; -} - -// overloaded assignment -SnmpInt32& SnmpInt32::operator=( const SnmpInt32 &uli) -{ - this->smival.value.sNumber = uli.smival.value.sNumber; - valid_flag = 1; - return *this; -} - -// general assignment from any Value -SnmpSyntax& SnmpInt32::operator=( SnmpSyntax &in_val) -{ - if ( this == &in_val ) // handle assignement from itself - return *this; - - valid_flag = 0; // will get set true if really valid - if (in_val.valid()) - { - switch (in_val.get_syntax()) - { - case sNMP_SYNTAX_INT32: - case sNMP_SYNTAX_UINT32: // implied cast uint -> int - // case sNMP_SYNTAX_GAUGE32: .. indistinquishable from UINT32 - case sNMP_SYNTAX_CNTR32: // implied cast uint -> int - case sNMP_SYNTAX_TIMETICKS: // implied cast uint -> int - this->smival.value.sNumber = - ((SnmpInt32 &)in_val).smival.value.sNumber; - valid_flag = 1; - break; - } - } - return *this; -} - -// otherwise, behave like a long int -SnmpInt32::operator long() -{ - return (long) smival.value.sNumber; -} - -// clone - create a new instance of this Value -SnmpSyntax* SnmpInt32::clone() const -{ - return ( SnmpSyntax *) new SnmpInt32(*this); -} - -// ASCII format return - -const char *SnmpInt32::to_string() -{ - ACE_OS::sprintf(output_buffer, "%d", (int) (long) this->smival.value.sNumber); - return output_buffer; -} diff --git a/ACE/ASNMP/asnmp/integer.h b/ACE/ASNMP/asnmp/integer.h deleted file mode 100644 index d120684c095..00000000000 --- a/ACE/ASNMP/asnmp/integer.h +++ /dev/null @@ -1,142 +0,0 @@ -/* -*-C++-*- */ -#ifndef SNMPINTEGER_ -#define SNMPINTEGER_ -//============================================================================= -/** - * @file integer.h - * - * $Id$ - * - * Class definition for Integer classes convertable to SMI. - * - * - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/smival.h" - -// TODO get rid of this constant -#define INTOUTBUF 15 // largest ASCII formatted integer - -//------------[ Integer Classes ]------------------------------------------ -// The integer class allows all the functionality of the various -// integers but is contained in a Value object for consistency -// among the various types. -// class objects may be set or get into Vb objects. -// - -// 32 bit unsigned integer class -/** - * @class SnmpUInt32 - * - * @brief Implement RFC 1920 Unsigned Integer SMI datatype - */ -class ASNMP_Export SnmpUInt32 : public SnmpSyntax -{ - - public: - /// default constructor - SnmpUInt32 (const unsigned long i = 0); - - /// copy constructor - SnmpUInt32( const SnmpUInt32 &c); - - /// destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden) - virtual ~SnmpUInt32(); - - /// syntax type - virtual SmiUINT32 get_syntax(); - - /// overloaded assignment - SnmpUInt32& operator=( const unsigned long i); - - /// overloaded assignment - SnmpUInt32& operator=( const SnmpUInt32 &uli); - - /// otherwise, behave like an unsigned long int - operator unsigned long(); - - /// get a printable ASCII value - virtual const char *to_string(); - - /// create a new instance of this Value - virtual SnmpSyntax *clone() const; - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// did object construct properly - int valid() const; - - protected: - /// contain string representation of object - int valid_flag; - char output_buffer[INTOUTBUF]; -}; - - -// 32 bit signed integer class - /** - * @class SnmpInt32 - * - * @brief Implement RFC 1902 32 bit Integer SMI data object - */ -class ASNMP_Export SnmpInt32 : public SnmpSyntax -{ - public: - /// constructor with value - SnmpInt32 (const long i = 0); - - /// constructor with value - SnmpInt32 (const SnmpInt32 &c); - - /// destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden) - virtual ~SnmpInt32(); - - /// syntax type - virtual SmiUINT32 get_syntax(); - - /// overloaded assignment - SnmpInt32& operator=( const long i); - - /// overloaded assignment - SnmpInt32& operator=( const SnmpInt32 &li); - - /// otherwise, behave like a long int - operator long(); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - - /// get a printable ASCII value - const char *to_string(); - - /// logical state of object - int valid() const; - - protected: - /// contain string representation of object - int valid_flag; - char output_buffer[INTOUTBUF]; -}; - -#endif diff --git a/ACE/ASNMP/asnmp/octet.cpp b/ACE/ASNMP/asnmp/octet.cpp deleted file mode 100644 index 315053cd590..00000000000 --- a/ACE/ASNMP/asnmp/octet.cpp +++ /dev/null @@ -1,594 +0,0 @@ -// $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 -// -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/octet.h" // include definition for octet class -#include "ace/OS_Memory.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_ctype.h" -#include "ace/os_include/os_ctype.h" - -ACE_RCSID(asnmp, octet, "$Id$") - -//============[ syntax type ]========================================= -SmiUINT32 OctetStr::get_syntax() -{ - return sNMP_SYNTAX_OCTETS; -} - -inline -void init_octet_smi(SmiVALUE& smi) -{ - smi.syntax = sNMP_SYNTAX_OCTETS; - smi.value.string.ptr = 0; - smi.value.string.len = 0; -} - -inline -void reset_octet_smi(SmiVALUE& smi) -{ - delete [] smi.value.string.ptr; - smi.value.string.ptr = 0; - smi.value.string.len = 0; -} - -inline -int copy_octet_smi(SmiVALUE& smi, int size, const char *src, int& valid_flag) -{ - valid_flag = 0; - - if (smi.value.string.ptr) - delete [] smi.value.string.ptr; - - ACE_NEW_RETURN(smi.value.string.ptr, SmiBYTE[size], 1); - ACE_OS::memcpy( smi.value.string.ptr, src, size); - smi.value.string.len = size; - valid_flag = 1; - return 0; -} - -//============[ default constructor ]========================= -OctetStr::OctetStr( const char * string, long size): - output_buffer(0), validity(0) -{ - - init_octet_smi(smival); - - // check for null string - if ( !string) - return; - - if (size == -1) // calc if no length given - assume c style string - size = ACE_OS::strlen( string); - - copy_octet_smi(smival, size, string, validity); -} - - -//============[ set the data on an already constructed Octet ]============ -// TODO: should return status since it can fail in so many places -void OctetStr::set_data( const SmiBYTE* string, long size) -{ - // invalid args, set octetStr to not valid - if ( !string || !size) { - validity = 0; - return; - } - - // assume non-zero terminated string - if (size == -1) // calc if no length given - assume c style string - size = ACE_OS::strlen( (char *)string); - - // free up already used space - if ( smival.value.string.ptr ) { - reset_octet_smi(smival); - } - smival.value.string.len = 0; - - - copy_octet_smi(smival, size, (const char *)string, validity); -} - -//============[ constructor using another octet object ]============== -OctetStr::OctetStr ( const OctetStr &octet): - SnmpSyntax (octet), output_buffer(0), validity(1) -{ - init_octet_smi(smival); - // check for zero len case - if ( octet.smival.value.string.len == 0) { - return; - } - - // must be a valid object - if ( octet.validity == 0) { - validity = 0; - return; - } - - // get the mem needed - copy_octet_smi(smival, octet.smival.value.string.len, - (const char *)octet.smival.value.string.ptr, validity); -} - -//=============[ destructor ]========================================= -OctetStr::~OctetStr() -{ - reset_octet_smi(smival); - delete [] output_buffer; -} - - -//=============[ assignment to a string operator overloaded ]========= -OctetStr& OctetStr::operator=( const char *string) -{ - // get the string size - size_t nz; - - // free up previous memory if needed - if ( smival.value.string.ptr ) { - reset_octet_smi(smival); - } - - // if empty then we are done - if (!string || !(nz = ACE_OS::strlen( string))) { - validity = 1; - return *this; - } - - // get memory needed - copy_octet_smi(smival, nz, string, validity); - return *this; -} - -//=============[ assignment to another oid object overloaded ]======== -OctetStr& OctetStr::operator=( const OctetStr &octet) -{ - // protect against assignment from self - if ( this == &octet ) - return *this; - - // don't assign from invalid objs - if (!octet.validity) { - return *this; - } - - // free up previous memory if needed - if ( smival.value.string.len ) { - reset_octet_smi(smival); - } - - if (!octet.smival.value.string.len) { - validity = 1; - return *this; - } - - // get some memory - copy_octet_smi(smival, octet.smival.value.string.len, - (const char*) octet.smival.value.string.ptr, validity); - return *this; // return self reference -} - -//==============[ equivlence operator overloaded ]==================== -bool operator==( const OctetStr &lhs, const OctetStr &rhs) -{ - if( lhs.left_comparison( rhs.smival.value.string.len, rhs)==0) - return true; - else - return false; -} - -//==============[ not equivlence operator overloaded ]================ -bool operator!=( const OctetStr &lhs, const OctetStr &rhs) -{ - if( lhs.left_comparison( rhs.smival.value.string.len, rhs)!=0) - return true; - else - return false; -} - -//==============[ less than < overloaded ]============================ -bool operator<( const OctetStr &lhs, const OctetStr &rhs) -{ - if( lhs.left_comparison( rhs.smival.value.string.len, rhs)<0) - return true; - else - return false; -} - -//==============[ less than <= overloaded ]=========================== -bool operator<=( const OctetStr &lhs, const OctetStr &rhs) -{ - if(( lhs.left_comparison( rhs.smival.value.string.len, rhs)<0) || - ( lhs.left_comparison( rhs.smival.value.string.len, rhs)==0)) - return true; - else - return false; -} - -//===============[ greater than > overloaded ]======================== -bool operator>( const OctetStr &lhs, const OctetStr &rhs) -{ - if( lhs.left_comparison( rhs.smival.value.string.len, rhs)>0) - return true; - else - return false; -} - -//===============[ greater than >= overloaded ]======================= -bool operator>=( const OctetStr &lhs, const OctetStr &rhs) -{ - if(( lhs.left_comparison( rhs.smival.value.string.len, rhs)>0) || - ( lhs.left_comparison( rhs.smival.value.string.len, rhs)==0)) - return true; - else - return false; -} - -//===============[ equivlence operator overloaded ]=================== -bool operator==( const OctetStr &lhs,const char *rhs) -{ - OctetStr to( rhs); - if( lhs.left_comparison( to.smival.value.string.len,to)==0) - return true; - else - return false; -} - -//===============[ not equivlence operator overloaded ]=============== -bool operator!=( const OctetStr &lhs,const char *rhs) -{ - OctetStr to( rhs); - if ( lhs.left_comparison( to.smival.value.string.len,to)!=0) - return true; - else - return false; -} - -//===============[ less than < operator overloaded ]================== -bool operator<( const OctetStr &lhs,const char *rhs) -{ - OctetStr to( rhs); - if ( lhs.left_comparison( to.smival.value.string.len,to)<0) - return true; - else - return false; -} - -//===============[ less than <= operator overloaded ]================= -bool operator<=( const OctetStr &lhs,char *rhs) -{ - OctetStr to( rhs); - if (( lhs.left_comparison( to.smival.value.string.len,to)<0) || - ( lhs.left_comparison( to.smival.value.string.len,to)==0)) - return true; - else - return false; -} - -//===============[ greater than > operator overloaded ]=============== -bool operator>( const OctetStr &lhs,const char *rhs) -{ - OctetStr to( rhs); - if ( lhs.left_comparison( to.smival.value.string.len,to)>0) - return true; - else - return false; -} - -//===============[ greater than >= operator overloaded ]============== -bool operator>=( const OctetStr &lhs,const char *rhs) -{ - OctetStr to( rhs); - if (( lhs.left_comparison( to.smival.value.string.len,to)>0) || - ( lhs.left_comparison( to.smival.value.string.len,to)==0)) - return true; - else - return false; -} - -//===============[ append operator, appends a string ]================ -OctetStr& OctetStr::operator+=( const char *a) -{ - SmiBYTE *tmp; // temp pointer - size_t slen,nlen; - - // get len of string - if ( !a || ((slen = ACE_OS::strlen( a)) == 0)) - return *this; - - // total len of octet - nlen = slen + (size_t) smival.value.string.len; - ACE_NEW_RETURN(tmp, SmiBYTE [ nlen], *this); - ACE_OS::memcpy ( tmp, smival.value.string.ptr, - (size_t) smival.value.string.len); - ACE_OS::memcpy( tmp + smival.value.string.len, a, (size_t) slen); - // delete the original - if ( smival.value.string.ptr ) - reset_octet_smi(smival); - smival.value.string.ptr = tmp; - smival.value.string.len = nlen; - return *this; -} - -//================[ append one OctetStr to another ]================== -OctetStr& OctetStr::operator+=( const OctetStr& octetstr) -{ - SmiBYTE *tmp; // temp pointer - size_t slen,nlen; - - if (!octetstr.validity || - !(slen = (size_t)octetstr.length())) - return *this; - - // total len of octet - nlen = slen + (size_t) smival.value.string.len; - // get mem needed - ACE_NEW_RETURN(tmp, SmiBYTE[ nlen], *this); - ACE_OS::memcpy ( tmp, smival.value.string.ptr, - (size_t) smival.value.string.len); - ACE_OS::memcpy( tmp + smival.value.string.len, octetstr.data(), - (size_t) slen); - if ( smival.value.string.ptr ) - reset_octet_smi(smival); - smival.value.string.ptr = tmp; - smival.value.string.len = nlen; - return *this; -} - -//================[ appends an int ]================================== -OctetStr& OctetStr::operator+=( const char c) -{ - SmiBYTE *tmp; - // get the memory needed plus one extra byte - ACE_NEW_RETURN(tmp, SmiBYTE[ smival.value.string.len + 1], *this); - ACE_OS::memcpy ( tmp, smival.value.string.ptr, - (size_t) smival.value.string.len); // len of original - tmp[ smival.value.string.len ] = c; // assign in byte - if ( smival.value.string.ptr ) // delete the original - reset_octet_smi(smival); - - smival.value.string.ptr = tmp; // point to one - smival.value.string.len++; // up the len - return *this; -} - - -//================[ compare n elements of an Octet ]================== -int OctetStr::left_comparison( const long n, const OctetStr &o) const -{ - long z, w; - - // both are empty, they are equal - if (( smival.value.string.len == 0) && - ( o.smival.value.string.len == 0)) - return 0; // equal - - // self is empty and param has something - if (( smival.value.string.len == 0) && - ( o.smival.value.string.len >0) && - (n>0)) - return -1; - - // self has something and param has nothing - if (( smival.value.string.len > 0) && - ( o.smival.value.string.len ==0) && - (n>0)) - return 1; - - // special case - if (( smival.value.string.len == 0) && - ( o.smival.value.string.len > 0) && - ( n == 0)) - return 0; - - // pick the Min of n, this and the param len - // this is the maximum # to iterate a search - w = smival.value.string.len < o.smival.value.string.len - ? smival.value.string.len : o.smival.value.string.len; - if (n o.smival.value.string.ptr[z]) - return 1; // greater than - z++; - } - - if (( z == 0) && - ( smival.value.string.len == 0) && - ( o.smival.value.string.len > 0)) - return -1; - - if (( z == 0) && - ( o.smival.value.string.len == 0) && - ( smival.value.string.len > 0)) - return 1; - - return 0; -} - -//================[ return the length of the oid ]======================= -size_t OctetStr::length() const -{ - return (size_t) smival.value.string.len; -} - -//================[ operator[]: access as if array ]================== -SmiBYTE& OctetStr::operator[]( int position) -{ - return smival.value.string.ptr[position]; -} - -//===============[ reuturns pointer to internal data ]=============== -SmiBYTE * OctetStr::data() const -{ - return smival.value.string.ptr; -} - -//================[ returns validity ]================================ -int OctetStr::valid() const -{ - return validity; -} - -//================[ clone() ]========================================= -SnmpSyntax * OctetStr::clone() const -{ - OctetStr *tmp = new OctetStr(*this); - return ( SnmpSyntax *) tmp; -} - -//================[ ASCII format return ]============================= -const char * OctetStr::to_string() -{ - for ( unsigned long i=0; i < smival.value.string.len; i++) { - if (( smival.value.string.ptr[i] != '\r')&& - ( smival.value.string.ptr[i] != '\n')&& - (ACE_OS::ace_isprint((int) (smival.value.string.ptr[i]))==0)) - return(to_string_hex()); - } - - if ( output_buffer != 0) - delete [] output_buffer; - - ACE_NEW_RETURN(output_buffer, char[smival.value.string.len + 1], ""); - if (smival.value.string.len) - ACE_OS::memcpy(output_buffer, smival.value.string.ptr, - (int) smival.value.string.len); - output_buffer[smival.value.string.len] = '\0'; - return output_buffer; -} - - -//================[ general Value = operator ]======================== -SnmpSyntax& OctetStr::operator=( SnmpSyntax &val) -{ - // protect against assignment from self - if ( this == &val ) - return *this; - - // blow away the old value - validity=0; - if (smival.value.string.ptr) { - reset_octet_smi(smival); - } - smival.value.string.len = 0; - if (val.valid()){ - switch (val.get_syntax()) { - case sNMP_SYNTAX_OCTETS: - case sNMP_SYNTAX_IPADDR: - set_data( ((OctetStr &)val).smival.value.string.ptr, - ((OctetStr &)val).smival.value.string.len); - break; - } - } - return *this; -} - -//================[ format the output into hex ]======================== -const char *OctetStr::to_string_hex() -{ - int cnt; - char char_buf[80]; // holds ASCII representation of data - char *buf_ptr; // pointer into ASCII listing - char *line_ptr; // pointer into Hex listing - int storageNeeded; // how much space do we need ? - int local_len = (int) smival.value.string.len; - SmiBYTE *bytes = smival.value.string.ptr; - - - storageNeeded = (int) ((smival.value.string.len/16)+1) * 72 + 1; - - if ( output_buffer != 0) - delete [] output_buffer; - - ACE_NEW_RETURN(output_buffer, char[storageNeeded], ""); - - line_ptr = output_buffer; - - /*----------------------------------------*/ - /* processing loop for entire data buffer */ - /*----------------------------------------*/ - while (local_len > 0) { - cnt = 16; /* print 16 bytes per line */ - buf_ptr = char_buf; - ACE_OS::sprintf(line_ptr, " "); - line_ptr += 2; /* indent */ - - /*-----------------------*/ - /* process a single line */ - /*-----------------------*/ - while (cnt-- > 0 && local_len-- > 0) { - ACE_OS::sprintf(line_ptr, "%2.2X ", *bytes); - - line_ptr +=3; /* the display of a byte always 3 chars long */ - if (ACE_OS::ace_isprint(*bytes)) - ACE_OS::sprintf(buf_ptr, "%c", *bytes); - else - ACE_OS::sprintf(buf_ptr, "."); - bytes++; - buf_ptr++; - } - cnt++; - - /*----------------------------------------------------------*/ - /* this is to make sure that the ASCII displays line up for */ - /* incomplete lines of hex */ - /*----------------------------------------------------------*/ - while (cnt-- > 0) { - ACE_OS::sprintf(line_ptr," "); - line_ptr += 3; - } - - /*------------------------------------------*/ - /* append the ASCII display to the Hex line */ - /*------------------------------------------*/ - -// TODO: verify ACE_OS:: on NT works like this or not - -#if defined(_WIN32) - const char *fmt = " %s\r\n"; -#else - const char *fmt = " %s\n"; -#endif // _WIN32 - - ACE_OS::sprintf(line_ptr, fmt, char_buf); - line_ptr += 3 + ACE_OS::strlen(char_buf); - } - - return output_buffer; -} diff --git a/ACE/ASNMP/asnmp/octet.h b/ACE/ASNMP/asnmp/octet.h deleted file mode 100644 index 5e8c8d63d98..00000000000 --- a/ACE/ASNMP/asnmp/octet.h +++ /dev/null @@ -1,152 +0,0 @@ - - -#ifndef OCTET_CLS_ -#define OCTET_CLS_ -//============================================================================= -/** - * @file octet.h - * - * $Id$ - * - * This class is fully contained and does not rely on or any other - * SNMP libraries. This class is portable across any platform - * which supports C++. - * - * - * @author Peter E Mellquist / design/original code Michael R. MacFaden / modified for ACE - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -//------------------------------------------------------------------------ -#include "asnmp/smival.h" - -/** - * @class OctetStr - * - * @brief Implement RFC1155 Octet SMI data object - */ -class ASNMP_Export OctetStr : public SnmpSyntax - -{ -public: - /// construct octet from byte buffer, assume c style string if size == -1 - OctetStr( const char *string = "", long size = -1); - - /// constructor using another octet object - OctetStr ( const OctetStr &octet); - - /// destructor - ~OctetStr(); - - /// syntax type - SmiUINT32 get_syntax(); - - /// set octet from byte buffer, assume c style string if size == -1 - void set_data( const SmiBYTE* string, long int size = -1); - - /// assignment to a string operator overloaded - OctetStr& operator=( const char *string); - - /// assignment to another oid object overloaded - OctetStr& operator=( const OctetStr &octet); - - /// equivlence operator overloaded - friend ASNMP_Export bool operator==( const OctetStr &lhs, const OctetStr &rhs); - - /// not equivlence operator overloaded - friend ASNMP_Export bool operator!=( const OctetStr &lhs, const OctetStr &rhs); - - /// less than < overloaded - friend ASNMP_Export bool operator<( const OctetStr &lhs, const OctetStr &rhs); - - /// less than <= overloaded - friend ASNMP_Export bool operator<=( const OctetStr &lhs,const OctetStr &rhs); - - /// greater than > overloaded - friend ASNMP_Export bool operator>( const OctetStr &lhs, const OctetStr &rhs); - - /// greater than >= overloaded - friend ASNMP_Export bool operator>=( const OctetStr &lhs, const OctetStr &rhs); - - /// equivlence operator overloaded - friend ASNMP_Export bool operator==( const OctetStr &lhs,const char *rhs); - - /// not equivlence operator overloaded - friend ASNMP_Export bool operator!=( const OctetStr &lhs,const char *rhs); - - /// less than < operator overloaded - friend ASNMP_Export bool operator<( const OctetStr &lhs,const char *rhs); - - /// less than <= operator overloaded - friend ASNMP_Export bool operator<=( const OctetStr &lhs,char *rhs); - - /// greater than > operator overloaded - friend ASNMP_Export bool operator>( const OctetStr &lhs,const char *rhs); - - /// greater than >= operator overloaded - friend ASNMP_Export bool operator>=( const OctetStr &lhs,const char *rhs); - - /// append operator, appends a string - OctetStr& operator+=( const char *a); - - /// appends an int - OctetStr& operator+=( const char c); - - /// append one octetStr to another - OctetStr& operator+=( const OctetStr& octetstr); - - /// for non const [], allows reading and writing - SmiBYTE& operator[]( int position); - - /** - * compare the n leftmost bytes (left-to-right) - * returns 0, equal - * returns -1, < - * returns 1 , > - */ - int left_comparison( const long n, const OctetStr &o) const; - - /// return the len of the oid - size_t length() const ; - - /// returns validity - int valid() const; - - /// returns pointer to internal data - SmiBYTE *data() const; - - /// get a printable ASCII value - const char *to_string(); - - /// get an ASCII formattted hex dump of the contents - const char *to_string_hex(); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - -protected: - //----[ instance variables ] - char *output_buffer; // formatted Octet value - int validity; // validity boolean -}; - -#endif // OCTET_CLS_ diff --git a/ACE/ASNMP/asnmp/oid.cpp b/ACE/ASNMP/asnmp/oid.cpp deleted file mode 100644 index 3e98c2fd44a..00000000000 --- a/ACE/ASNMP/asnmp/oid.cpp +++ /dev/null @@ -1,803 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -//---------[ external C libaries used ]-------------------------------- - -#include "asnmp/oid.h" // include def for oid class -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_stdio.h" -#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) - -#define NO_MEM_STR "ERROR: Oid::to_string: memory allocation failure" - -//=============[Oid::get_syntax(void)]==================================== -SmiUINT32 Oid::get_syntax() -{ - return sNMP_SYNTAX_OID; -} - - -//=============[Oid::Oid( const char *dotted_string ]===================== -// constructor using a dotted string -// -// do a string to oid using the string passed in -Oid::Oid( const char * dotted_oid_string, size_t size) -{ - // can't init enum SmiValue so just memset it clean - set_null(); - - size_t z; - if ((z = ACE_OS::strlen(dotted_oid_string)) == 0) { - set_invalid(); - return; - } - - if (size == (unsigned int)-1) - size = z; - if (size > z) - size = z; - - char *ptr = (char *)dotted_oid_string;; - if (size < z) { - // create new buffer if needed - ACE_NEW(ptr, char [size]); - - // sz should be in StrToOid? - ACE_OS::memcpy( (void *)ptr, dotted_oid_string, size); - } - - size_t byte_counter; - if (StrToOid( (char *) ptr, &smival.value.oid, byte_counter) < 0) - set_invalid(); - if (ptr != dotted_oid_string) - delete [] ptr; -} - - -//=============[Oid::Oid( const Oid &oid) ]================================ -// constructor using another oid object -// -// do an oid copy using the oid object passed in -Oid::Oid ( const Oid &oid) - : SnmpSyntax (oid) -{ - set_null(); - - // allocate some memory for the oid - // in this case the size to allocate is the same - // size as the source oid - if (oid.smival.value.oid.len) { - ACE_NEW(smival.value.oid.ptr, SmiUINT32[ oid.smival.value.oid.len]); - size_t byte_counter; - OidCopy( (SmiLPOID) &(oid.smival.value.oid),(SmiLPOID) - &smival.value.oid, byte_counter); - } -} - - -//=============[Oid::Oid( const unsigned long *raw_oid, int oid_len) ]==== -// constructor using raw numeric form -// -// copy the integer values into the private member -Oid::Oid(const unsigned long *raw_oid, size_t oid_len) -{ - set_null(); - - smival.syntax = sNMP_SYNTAX_OID; - set_invalid(); - - if (raw_oid && oid_len > 0) { - ACE_NEW(smival.value.oid.ptr, SmiUINT32[ oid_len]); - smival.value.oid.len = oid_len; - for (size_t i=0; i < oid_len; i++) - smival.value.oid.ptr[i] = raw_oid[i]; - } -} - -//=============[Oid::~Oid]============================================== -// destructor -// -// free up the descriptor space -Oid::~Oid() -{ - // free up the octet deep memory - if ( smival.value.oid.ptr ) { - set_invalid(); - } - - // free up the output string - if ( iv_str != 0) - delete [] iv_str; -} - - -//=============[Oid::operator = const char * dotted_string ]============== -// assignment to a string operator overloaded -// -// free the existing oid -// create the new oid from the string -// return this object -void Oid::set_data( const char *dotted_oid_string) -{ - // delete the old value - if ( smival.value.oid.ptr ) { - set_invalid(); - } - - // assign the new value - size_t byte_counter; - if (StrToOid( (char *) dotted_oid_string, &smival.value.oid, byte_counter) <0) - set_invalid(); -} - - -//=============[Oid:: operator = const Oid &oid ]========================== -// assignment to another oid object overloaded -// -// free the existing oid -// create a new one from the object passed in -// TODO: measure perf vs memory of no realloc in case where len >= oid.len -Oid& Oid::operator=( const Oid &oid) -{ - // protect against assignment from self - if ( this == &oid) - return *this; - - set_invalid(); - - // check for zero len on source - if ( oid.smival.value.oid.len == 0) - return *this; - - const SmiLPOID srcOid = (SmiLPOID) &(oid.smival.value.oid); - init_value(srcOid, oid.smival.value.oid.len); - return *this; -} - -// assign this object the oid, set to invalid if copy fails -void Oid::init_value(const SmiLPOID srcOid, size_t len) -{ - // allocate some memory for the oid - ACE_NEW(smival.value.oid.ptr, SmiUINT32[ len]); - size_t byte_counter; - OidCopy( srcOid, (SmiLPOID) &smival.value.oid, byte_counter); -} - -void Oid::init_value(const unsigned long *raw_oid, size_t oid_len) -{ - if (smival.value.oid.ptr) - delete [] smival.value.oid.ptr; - - ACE_NEW(smival.value.oid.ptr, SmiUINT32[ oid_len]); - ACE_OS::memcpy((SmiLPBYTE) smival.value.oid.ptr, - (SmiLPBYTE) raw_oid, - (size_t) (oid_len * sizeof(SmiUINT32))); - smival.value.oid.len = oid_len; -} - -//==============[Oid:: operator += const char *a ]========================= -// append operator, appends a string -// -// allocate some space for a max oid string -// extract current string into space -// concat new string -// free up existing oid -// make a new oid from string -// delete allocated space -Oid& Oid::operator+=( const char *a) -{ - unsigned long n; - - if (!a) - return *this; - - if ( *a=='.') - a++; - size_t sz = ACE_OS::strlen(a); - - if (valid()) { - n = (smival.value.oid.len *SNMPCHARSIZE) + smival.value.oid.len + 1 + sz; - char *ptr; - ACE_NEW_RETURN(ptr, char[ n], *this); - size_t byte_counter; - if (OidToStr(&smival.value.oid, n,ptr, byte_counter) > 0) { - delete [] ptr; - set_invalid(); - return *this; - } - - if (ACE_OS::strlen(ptr)) - ACE_OS::strcat(ptr,"."); - ACE_OS::strcat(ptr,a); - if ( smival.value.oid.len !=0) { - set_invalid(); - } - - if (StrToOid( (char *) ptr, &smival.value.oid, byte_counter) < 0) { - set_invalid(); - } - delete [] ptr; - } - else { - size_t byte_counter; - if (StrToOid( (char *) a, &smival.value.oid, byte_counter) < 0) { - set_invalid(); - } - } - - return *this; -} - -//=============[ bool operator == oid,oid ]================================= -// equivlence operator overloaded -bool operator==( const Oid &lhs, const Oid &rhs) -{ - // ensure same len, then use left_comparison - if (rhs.length() != lhs.length()) - return false; - if( lhs.left_comparison( rhs.length(), rhs) == 0) - return true; - else - return false; -} - -//==============[ bool operator!=( Oid &x,Oid &y) ]======================= -//not equivlence operator overloaded -bool operator!=( const Oid &lhs,const Oid &rhs) -{ - return (!(lhs == rhs)); -} - -//==============[ bool operator<( Oid &x,Oid &y) ]======================== -// less than < overloaded -bool operator<( const Oid &lhs,const Oid &rhs) -{ - int result; - - // call left_comparison with the current - // Oidx, Oidy and len of Oidx - if ((result = lhs.left_comparison( rhs.length(), rhs)) < 0) - return true; - else if (result > 0) - return false; - - else{ - // if here, equivalent substrings, call the shorter one < - if (lhs.length() < rhs.length()) - return true; - else - return false; - } -} - -//==============[ bool operator<=( Oid &x,Oid &y) ]======================= -// less than <= overloaded -bool operator<=( const Oid &x,const Oid &y) -{ - if ( (x < y) || (x == y) ) - return true; - else - return false; -} - -//==============[ bool operator>( Oid &x,Oid &y) ]======================== -// greater than > overloaded -bool operator>( const Oid &x,const Oid &y) -{ - // just invert existing <= - if (!(x<=y)) - return true; - else - return false; -} - -//==============[ bool operator>=( Oid &x,Oid &y) ]======================= -// greater than >= overloaded -bool operator>=( const Oid &x,const Oid &y) -{ - // just invert existing < - if (!(x0)) { - smival.value.oid.len -= n; - - if (smival.value.oid.len == 0) { - set_invalid(); - } - } -} - -//===============[Oid::set_invalid() ]==================== -// make this object invalid by resetting all values -void Oid::set_invalid() { - delete [] smival.value.oid.ptr; - smival.value.oid.ptr = 0; - smival.value.oid.len = 0; - delete [] iv_str; - iv_str = 0; -} - -//===============[Oid::set_null() ]==================== -void Oid::set_null() { - smival.syntax = sNMP_SYNTAX_OID; - smival.value.oid.ptr = 0; - smival.value.oid.len = 0; - iv_str = 0; -} - -//===============[Oid::operator += const unsigned int) ]==================== -// append operator, appends an int -// -// allocate some space for a max oid string -// extract current string into space -// concat new string -// free up existing oid -// make a new oid from string -// delete allocated space -Oid& Oid::operator+=( const unsigned long i) -{ - unsigned long n = (smival.value.oid.len * SNMPCHARSIZE) - + ( smival.value.oid.len -1) + 1 + 4; - char buffer[SNMPBUFFSIZE]; - - // two cases: null oid, existing oid - if (valid()) { - // allocate some temporary space - char *ptr; - ACE_NEW_RETURN(ptr, char[ n], *this); - size_t byte_counter; - if (OidToStr(&smival.value.oid, n, ptr, byte_counter) < 0) { - set_invalid(); - delete [] ptr; - return *this; - } - - if (ACE_OS::strlen(ptr)) - ACE_OS::strcat(ptr,"."); - - if (ACE_OS::sprintf( buffer,"%lu",i) != -1) { - ACE_OS::strcat(ptr, buffer); - if ( smival.value.oid.ptr ) { - set_invalid(); - } - if (StrToOid( (char *) ptr, &smival.value.oid, byte_counter) < 0) { - set_invalid(); - } - delete [] ptr; - } - } - else { - init_value((const unsigned long *)&i, (size_t)1); - } - - return *this; -} - -//===============[Oid::operator += const Oid) ]======================== -// append operator, appends an Oid -// -// allocate some space for a max oid string -// extract current string into space -// concat new string -// free up existing oid -// make a new oid from string -// delete allocated space -Oid& Oid::operator+=( const Oid &o) -{ - SmiLPUINT32 new_oid; - - if (o.smival.value.oid.len == 0) - return *this; - - ACE_NEW_RETURN(new_oid, - SmiUINT32[ smival.value.oid.len + o.smival.value.oid.len], *this); - if (smival.value.oid.ptr) { - ACE_OS::memcpy((SmiLPBYTE) new_oid, - (SmiLPBYTE) smival.value.oid.ptr, - (size_t) (smival.value.oid.len*sizeof(SmiUINT32))); - - delete [] smival.value.oid.ptr; - } - - // out with the old, in with the new... - smival.value.oid.ptr = new_oid; - - ACE_OS::memcpy((SmiLPBYTE) &new_oid[smival.value.oid.len], - (SmiLPBYTE) o.smival.value.oid.ptr, - (size_t) (o.smival.value.oid.len*sizeof(SmiUINT32))); - - smival.value.oid.len += o.smival.value.oid.len; - return *this; -} - -// return string portion of the oid -// -const char * Oid::to_string() -{ - unsigned long n; - if (!valid()) - return ""; // be consistent with other classes - - // the worst case char len of an oid can be.. - // oid.len*3 + dots in between if each oid is XXXX - // so.. size = (len*4) + (len-1) + 1 , extra for a null - - n = (smival.value.oid.len *SNMPCHARSIZE) + ( smival.value.oid.len -1) + 1 ; - if (n == 0) - n = 1; // need at least 1 byte for a null string - - // adjust the len of output array in case size was adjusted - if ( iv_str != 0) - delete [] iv_str; - // allocate some space for the output string - ACE_NEW_RETURN(iv_str, char[ n], ""); - - // convert to an output string - size_t how_many; - if ( valid() && iv_str != 0) - if (OidToStr(&smival.value.oid,n,iv_str, how_many) < 0) - return "ERROR: Oid::OidToStr failed"; - return iv_str; -} - -//==============[Oid::suboid( unsigned int start, n) ]============= -int Oid::suboid(Oid& new_oid, size_t start, size_t how_many) -{ - if (how_many == 0) - return 0; - else - if (how_many == (size_t)-1) - how_many = length(); - else - if (how_many > length()) - how_many = length(); - - // reset new_oid - new_oid.set_invalid(); - - size_t new_size = how_many - start; - if (new_size == 0) - new_size++; - new_oid.smival.value.oid.len = new_size; - ACE_NEW_RETURN(new_oid.smival.value.oid.ptr, - SmiUINT32 [ new_oid.smival.value.oid.len], -1); - // copy source to destination - ACE_OS::memcpy( (SmiLPBYTE) new_oid.smival.value.oid.ptr, - (SmiLPBYTE) (smival.value.oid.ptr + start), - new_size * sizeof(SmiLPBYTE)); - return 0; -} - - -//=============[Oid::StrToOid( char *string, SmiLPOID dst) ]============== -// convert a string to an oid -int Oid::StrToOid( const char *string, SmiLPOID dstOid, size_t& how_many) -{ - size_t index = 0; - size_t number = 0; - - // make a temp buffer to copy the data into first - SmiLPUINT32 temp; - unsigned long nz; - - if (string && *string) { - nz = ACE_OS::strlen( string); - } - else { - dstOid->len = 0; - dstOid->ptr = 0; - return -1; - } - - ACE_NEW_RETURN(temp, SmiUINT32[ nz], -1); - while (*string!=0 && indexptr, SmiUINT32[ index], -1); - // TODO: make tmp autoptr type delete [] temp to prevent leak - - // copy in the temp data - ACE_OS::memcpy((SmiLPBYTE) dstOid->ptr, (SmiLPBYTE) temp, - (size_t) (index*sizeof(SmiUINT32))); - - // set the len of the oid - dstOid->len = index; - - // free up temp data - delete [] temp; - - how_many = index; - return 0; -} - - -//===============[Oid::OidCopy( source, destination) ]==================== -// Copy an oid, return bytes copied -int Oid::OidCopy( SmiLPOID srcOid, SmiLPOID dstOid, size_t& how_many_bytes) -{ - // check source len ! zero - if (srcOid->len == 0) - return -1; - - // copy source to destination - ACE_OS::memcpy((SmiLPBYTE) dstOid->ptr, - (SmiLPBYTE) srcOid->ptr, - (size_t) (srcOid->len * sizeof(SmiUINT32))); - - //set the new len - dstOid->len = srcOid->len; - how_many_bytes = srcOid->len; - - return 0; -} - - -//===============[Oid::left_comparison( n, Oid) ]================================= -// compare the n leftmost values of two oids ( left-to_right ) -// -// self == Oid then return 0, they are equal -// self < Oid then return -1, < -// self > Oid then return 1, > -int Oid::left_comparison( const unsigned long n, const Oid &o) const -{ - unsigned long z; - unsigned long len = n; - int reduced_len = 0; - - // 1st case they both are null - if (( len==0)&&( this->smival.value.oid.len==0)) - return 0; // equal - - // verify that n is valid, must be >= 0 - if ( len <=0) - return 1; // ! equal - - // only compare for the minimal length - if (len > this->smival.value.oid.len) { - len = this->smival.value.oid.len; - reduced_len = 1; - } - if (len > o.smival.value.oid.len) { - len = o.smival.value.oid.len; - reduced_len = 1; - } - - z = 0; - while(z < len) { - if ( this->smival.value.oid.ptr[z] < o.smival.value.oid.ptr[z]) - return -1; // less than - if ( this->smival.value.oid.ptr[z] > o.smival.value.oid.ptr[z]) - return 1; // greater than - z++; - } - - // if we truncated the len then these may not be equal - if (reduced_len) { - if (this->smival.value.oid.len < o.smival.value.oid.len) - return -1; - if (this->smival.value.oid.len > o.smival.value.oid.len) - return 1; - } - return 0; // equal - -} - - -//===============[Oid::left_comparison( n, Oid) ]================================= -// compare the n rightmost bytes (right-to-left) -// returns 0, equal -// returns -1, < -// returns 1 , > -int Oid::right_comparison( const unsigned long n, const Oid &o) const -{ - // oid to compare must have at least the same number - // of sub-ids to comparison else the argument Oid is - // less than THIS - if ( o.length() < n) - return -1; - - // also can't compare argument oid for sub-ids which - // THIS does not have - if ( this->length() < n) - return -1; - - int start = (int) this->length(); - int end = (int) start - (int) n; - for ( int z=start;z< end;z--) - { - if ( o.smival.value.oid.ptr[z] < this->smival.value.oid.ptr[z]) - return -1; - if ( o.smival.value.oid.ptr[z] > this->smival.value.oid.ptr[z]) - return 1; - } - - return 0; // they are equal - -} - - -//================[ Oid::valid() ]======================================== -// is the Oid object valid -// returns validity -int Oid::valid() const -{ - return ( smival.value.oid.ptr ? 1 : 0 ); -} - -//================[Oid::OidToStr ]========================================= -// convert an oid to a string -int Oid::OidToStr( SmiLPOID srcOid, unsigned long size, - char *string, size_t& how_many_bytes) -{ - unsigned long index = 0; - unsigned totLen = 0; - char szNumber[SNMPBUFFSIZE]; - - // init the string - string[totLen] = 0; - - // verify there is something to copy - if (srcOid->len == 0) - return -1; - - // loop through and build up a string - for (index=0; index < srcOid->len; index++) { - - // convert data element to a string - if (ACE_OS::sprintf( szNumber,"%lu", srcOid->ptr[index]) == -1) - return -1; - - // verify len is not over - if (totLen + ACE_OS::strlen(szNumber) + 1 >= size) - return -2; - - // if not at end, pad with a dot - if (totLen!=0) - string[totLen++] = '.'; - - // copy the string token into the main string - ACE_OS::strcpy(string + totLen, szNumber); - - // adjust the total len - totLen += ACE_OS::strlen(szNumber); - } - - how_many_bytes = totLen + 1; - return 0; -} - - -//================[ general Value = operator ]======================== -SnmpSyntax& Oid::operator=( SnmpSyntax &val) -{ - // protect against assignment from self - if ( this == &val ) - return *this; - - // blow away old value - smival.value.oid.len = 0; - if (smival.value.oid.ptr) { - set_invalid(); - } - - // assign new value - if (val.valid()) { - switch (val.get_syntax()) { - case sNMP_SYNTAX_OID: - set_data( ((Oid &)val).smival.value.oid.ptr, - (unsigned int)((Oid &)val).smival.value.oid.len); - break; - } - } - return *this; -} - -//================[ [] operator ]===================================== -unsigned long& Oid::operator[](size_t position) -{ - return smival.value.oid.ptr[position]; -} - -//================[ clone ]=========================================== -SnmpSyntax *Oid::clone() const -{ - return (SnmpSyntax *) new Oid(*this); -} diff --git a/ACE/ASNMP/asnmp/oid.h b/ACE/ASNMP/asnmp/oid.h deleted file mode 100644 index 77118b518f0..00000000000 --- a/ACE/ASNMP/asnmp/oid.h +++ /dev/null @@ -1,175 +0,0 @@ - - -#ifndef OID_CLS_ -#define OID_CLS_ -//============================================================================= -/** - * @file oid.h - * - * $Id$ - * - * This class is fully contained and does not rely on or any other - * SNMP libraries. This class is portable across any platform - * which supports C++. Ported to ACE by Mike MacFaden mrm@cisco.com - * and modified for MT. Some API cleanup: collapse constructors, - * add suboid() method remove unnecessary overload, and update a few - * names and types to improve clarity. - * - * - * @author Peter E Mellquist - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -//----------[ extern C libraries Needed ]--------------------------------- -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "asnmp/smival.h" // derived class for all values - -/** - * @class Oid - * - * @brief Implement RFC 1155 Object Identifier (OID) datatype - */ -class ASNMP_Export Oid : public SnmpSyntax -{ -public: - /// constructor using a dotted string - Oid( const char * dotted_oid_string = "", size_t size = unsigned(-1) ); - - /// constructor using another oid object - Oid ( const Oid &oid); - - /// constructor from raw form - Oid(const unsigned long *raw_oid, size_t oid_len); - - /// destructor - ~Oid(); - - /// syntax type - SmiUINT32 get_syntax(); - - /// assignment to another oid object overloaded - Oid& operator=( const Oid &oid); - - /// equal operator overloaded - friend ASNMP_Export bool operator==( const Oid &lhs,const Oid &rhs); - - /// not equal operator overloaded - friend ASNMP_Export bool operator!=( const Oid &lhs,const Oid &rhs); - - /// less than < overloaded - friend ASNMP_Export bool operator<( const Oid &lhs,const Oid &rhs); - - /// less than <= overloaded - friend ASNMP_Export bool operator<=( const Oid &lhs,const Oid &rhs); - - /// greater than > overloaded - friend ASNMP_Export bool operator>( const Oid &lhs,const Oid &rhs); - - /// greater than >= overloaded - friend ASNMP_Export bool operator>=( const Oid &lhs,const Oid &rhs); - - /// append operator, appends a string - Oid& operator+=( const char *a); - - /// appends an int - Oid& operator+=( const unsigned long i); - - /// appends an Oid - Oid& operator+=( const Oid &o); - - /// allows element access - unsigned long & operator[]( size_t position); - - /// return the WinSnmp oid part - SmiLPOID oidval(); - - /// reset the data from raw 1 byte format - void set_data( const char *dotted_oid_string); - - /// reset the data from raw 4byte integer format - void set_data( const unsigned long *raw_oid, const size_t oid_len); - - /// return the len of the oid - size_t length() const; - - /// trim off the n rightmost values of an oid - void trim( const size_t how_many = 1); - - /// the equivalent of a substr(new_str, 0, 1) - int suboid(Oid& oid, size_t start = 0, size_t how_many = size_t (-1)); - - /** - * compare the n leftmost bytes (left-to-right) - * returns 0, equal - * returns -1, < - * returns 1 , > - */ - int left_comparison( const unsigned long n, const Oid &o) const; - - - /** - * compare the n rightmost bytes (right-to-left) - * returns 0, equal - * returns -1, < - * returns 1 , > - */ - int right_comparison( const unsigned long n, const Oid &o) const; - - /// is the Oid object valid - int valid() const; - - /// return dotted string value from the right - /// where the user specifies how many positions to print - const char *to_string(); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// copy an instance of this Value - SnmpSyntax& operator=( SnmpSyntax &val); - -protected: - /// used for returning oid string - char *iv_str; - - /// convert a string to an smi oid - int StrToOid( const char *string, SmiLPOID dstOid, size_t& how_many_bytes); - - /// clone an smi oid - int OidCopy( SmiLPOID srcOid, SmiLPOID dstOid, size_t& how_many_bytes); - - /// convert an smi oid to its string representation - int OidToStr(SmiLPOID srcOid, SmiUINT32 size, char *string, size_t& how_many_bytes); - - private: - /// release memory, re-init data members - void set_invalid(); - - /// initialize object data members - void set_null(); - void init_value( const SmiLPOID srcOid, size_t len); - void init_value(const unsigned long *raw_oid, size_t oid_len); -}; - -#endif //OID_CLS_ diff --git a/ACE/ASNMP/asnmp/oid_def.h b/ACE/ASNMP/asnmp/oid_def.h deleted file mode 100644 index 31ccbfa3e4a..00000000000 --- a/ACE/ASNMP/asnmp/oid_def.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -*-C++-*- */ -#ifndef OID_DEF -#define OID_DEF -//============================================================================= -/** - * @file oid_def.h - * - * $Id$ - * - * Well known Oids defined in RFC 1215 - * - * - * @author Peter E Mellquist - */ -//============================================================================= - -/*=================================================================== - - 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. -=====================================================================*/ - -// SMI trap oid def -class snmpTrapsOid: public Oid { - public: - snmpTrapsOid (void):Oid("1.3.6.1.6.3.1.1.5"){}; -}; - -// SMI Enterprose Oid -class snmpTrapEnterpriseOid: public Oid { - public: - snmpTrapEnterpriseOid(void):Oid("1.3.6.1.6.3.1.1.4.3.0"){}; -}; - -// SMI Cold Start Oid -class coldStartOid: public snmpTrapsOid { - public: - coldStartOid( void){*this+=".1";}; -}; - -// SMI WarmStart Oid -class warmStartOid: public snmpTrapsOid { - public: - warmStartOid( void){*this+=".2";}; -}; - -// SMI LinkDown Oid -class linkDownOid: public snmpTrapsOid { - public: - linkDownOid( void){*this+=".3";}; -}; - - -// SMI LinkUp Oid -class linkUpOid: public snmpTrapsOid { - public: - linkUpOid( void){*this+=".4";}; -}; - -// SMI Authentication Failure Oid -class authenticationFailureOid: public snmpTrapsOid { - public: - authenticationFailureOid( void){*this+=".5";}; -}; - -// SMI egpneighborloss Oid -class egpNeighborLossOid: public snmpTrapsOid { - public: - egpNeighborLossOid( void){*this+=".6";}; -}; - - -#endif // OID_DEF diff --git a/ACE/ASNMP/asnmp/pdu.cpp b/ACE/ASNMP/asnmp/pdu.cpp deleted file mode 100644 index 1e86fe17d90..00000000000 --- a/ACE/ASNMP/asnmp/pdu.cpp +++ /dev/null @@ -1,502 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/snmp.h" -#include "asnmp/pdu.h" // include Pdu class definition -#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), -output_(0) -{ -} - -//=====================[ constructor with vbs_ and count ]============== -Pdu::Pdu( Vb* pvbs, const int pvb_count): vb_count_(0), error_index_(0), -validity_(0), request_id_(0), pdu_type_(0), notify_timestamp_(0), -output_(0) -{ - int z = 0; // looping variable - - // zero is ok - if ( pvb_count == 0) { - validity_ = 1; - return; - } - - // check for over then max - if ( pvb_count > MAX_VBS) { - validity_ = 0; - return; - } - - // loop through and assign internal vbs_ - for (z = 0;z < pvb_count; z++) { - validity_ = 0; - ACE_NEW(vbs_[z], Vb( pvbs[z])); - validity_ = 1; - } - - // assign the vb count - vb_count_ = pvb_count; - - validity_ = 1; -} - -//=====================[ constructor with another Pdu instance ]======== -Pdu::Pdu( const Pdu &pdu): vb_count_(0), -error_index_(0), validity_(0), request_id_(0), pdu_type_(0), -notify_timestamp_(0), output_(0) -{ - *this = pdu; - return; -} - -//=====================[ destructor ]==================================== -Pdu::~Pdu() -{ - delete_all_vbs(); - delete [] output_; -} - - -//=====================[ assignment to another Pdu object overloaded ]=== -Pdu& Pdu::operator=( const Pdu &pdu) -{ - if (this == &pdu) - return *this; - - int z; // looping variable - - // Initialize all mv's - error_status_ = pdu.error_status_; - error_index_ = pdu.error_index_; - request_id_ = pdu.request_id_; - pdu_type_ = pdu.pdu_type_; - notify_id_ = pdu.notify_id_; - notify_timestamp_ = pdu.notify_timestamp_; - notify_enterprise_ = pdu.notify_enterprise_; - validity_ = 1; - - // free up old vbs_ - for ( z = 0;z < vb_count_; z++) - delete vbs_[z]; - vb_count_ = 0; - - // check for zero case - if ( pdu.vb_count_ == 0) { - return *this; - } - - // loop through and fill em up - for (z = 0; z < pdu.vb_count_; z++) { - validity_ = 0; - ACE_NEW_RETURN(vbs_[z], Vb ( *(pdu.vbs_[z])), *this); - validity_ = 1; - } - - vb_count_ = pdu.vb_count_; - return *this; -} - -// append operator, appends a string -Pdu& Pdu::operator+=( Vb &vb) -{ - - // do we have room? - if ( vb_count_ + 1 > MAX_VBS) - return *this; - - // add the new one - validity_ = 0; - ACE_NEW_RETURN(vbs_[vb_count_], Vb (vb), *this); - // set up validity_ - validity_ = 1; - - // up the vb count - vb_count_++; - - // return self reference - return *this; - -} - -// return fomatted version of this object -const char * Pdu::to_string() -{ - // determine how big a buffer and allocate it - const int HEADER_STR = 100; - unsigned size = HEADER_STR; // header takes up this much room - int z; - - for ( z = 0; z < vb_count_; z++) - size += ACE_OS::strlen(vbs_[z]->to_string()); - - ACE_NEW_RETURN(output_, char[size], ""); - - // print pdu header info - ACE_OS::sprintf(output_, "pdu: valid: %d type:%d, req:%d, cnt: %d, err stat: %d \ - err idx: %d\n", validity_, pdu_type_, (int) request_id_, - vb_count_, error_status_, error_index_ ); - - // now append vb pairs in this object - for ( z = 0; z < vb_count_; z++) { - ACE_OS::strcat(output_, vbs_[z]->to_string()); - ACE_OS::strcat(output_, "\n\t"); - } - - return output_; -} - - -//=====================[ extract Vbs from Pdu ]========================== -// how do you know that the caler has enough memory??? -// should I self allocate this in here and require the -// caller then to free it up at soem later time -int Pdu::get_vblist( Vb* pvbs, const int pvb_count) -{ - if ((!pvbs) || ( pvb_count < 0) || ( pvb_count > vb_count_)) - return 0; - - // loop through all vbs_ and assign to params - int z; - for (z = 0; z < pvb_count; z++) - pvbs[z] = *vbs_[z]; - - return 1; - -} - -//=====================[ deposit Vbs ]=================================== -int Pdu::set_vblist( Vb* pvbs, const int pvb_count) -{ - - // if invalid then don't destroy - if ((!pvbs) || ( pvb_count < 0) || ( pvb_count > MAX_VBS)) - return 0; - - // free up current vbs_ - int z; - for ( z = 0; z < vb_count_; z++) - delete vbs_[z]; - vb_count_ = 0; - - // check for zero case - if ( pvb_count == 0) { - validity_ = 1; - error_status_ = 0; - error_index_ = 0; - request_id_ = 0; - return 0; - } - - - // loop through all vbs_ and reassign them - for ( z = 0; z < pvb_count; z++) { - validity_ = 0; - ACE_NEW_RETURN(vbs_[z], Vb (pvbs[z]), 0); - validity_ = 1; - } - - vb_count_ = pvb_count; - - // clear error status and index since no longer valid - // request id may still apply so don't reassign it - error_status_ = 0; - error_index_ = 0; - validity_ = 1; - - return 1; -} - -//===================[ get a particular vb ]============================= -// here the caller has already instantiated a vb object -// index is zero based -int Pdu::get_vb( Vb &vb, const int index) const -{ - // can't have an index less than 0 - if ( index < 0) - return 0; - - // can't ask for something not there - if ( index > (vb_count_ - 1)) - return 0; - - // asssign it - vb = *vbs_[index]; - - return 1; -} - -//===================[ set a particular vb ]============================= -int Pdu::set_vb( Vb &vb, const int index) -{ - // can't set a vb at index less than 0 - if ( index < 0) - return 0; - - // can't ask for something not there - if ( index > (vb_count_ - 1)) - return 0; - - // delete what is there - delete vbs_[index]; - - // assign it - validity_ = 0; - ACE_NEW_RETURN(vbs_[index], Vb (vb), 0); - validity_ = 1; - - return 1; - -} - -//=====================[ return number of vbs_ ]========================== -int Pdu::get_vb_count() const -{ - return vb_count_; -} - -//=====================[ return the error status ]======================= -int Pdu::get_error_status() const -{ - return error_status_; -} - -const char *Pdu::agent_error_reason() -{ - int pdu_err = get_error_status(); - if (pdu_err == 0) // any real error? - return "not in error state"; - - int n_vbs = get_vb_count(); - Vb bad; - get_vb(bad, get_error_index() -1); // not zero based?? - const char *pmsg = Snmp::error_string(get_error_status()); - const char *id = bad.to_string_oid(); - const char *val = bad.to_string_value(); - const int HDR_SZ = 100; - - if (!output_) { - int size = ACE_OS::strlen(pmsg) + ACE_OS::strlen(id) + - ACE_OS::strlen(val); - ACE_NEW_RETURN(output_, char[size + HDR_SZ], ""); - } - - ACE_OS::sprintf(output_, - "FAIL PDU REPORT: pdu id: %lu vb cnt: %d vb idx: %d\n" - " msg: %s vb oid: %s value: %s\n", - get_request_id(), n_vbs, get_error_index(), - pmsg, id, val); - - return output_; -} - -//=====================[ set the error status ]========================== -// friend -void set_error_status( Pdu *pdu, const int status) -{ - if (pdu) - pdu->error_status_ = status; -} - -//=====================[ return the error index ]======================== -int Pdu::get_error_index() const -{ - return error_index_; -} - -//=====================[ set the error index ]=========================== -// friend -void set_error_index( Pdu *pdu, const int index) -{ - if (pdu) - pdu->error_index_ = index; -} - -//=====================[ clear error status ]============================= -void clear_error_status( Pdu *pdu) -{ - if (pdu) - pdu->error_status_ = 0; -} - -//=====================[ clear error index ]============================== -void clear_error_index( Pdu *pdu) -{ - if (pdu) - pdu->error_index_ = 0; -} - -//=====================[ return the request id ]========================== -unsigned long Pdu::get_request_id() const -{ - return request_id_; -} - -//=====================[ set the request id ]============================= -// friend function -void set_request_id( Pdu *pdu, const unsigned long rid) -{ - if (pdu) - pdu->request_id_ = rid; -} - -//=====================[ returns validity_ of Pdu instance ]=============== -int Pdu::valid() const -{ - return validity_; -} - -//=====================[ get the pdu type ]=============================== -unsigned short Pdu::get_type()const -{ - return pdu_type_; -} - -// set the pdu type -void Pdu::set_type( unsigned short type) -{ - pdu_type_ = type; -} - - -// trim off the last vb -int Pdu::trim(const int p) -{ - int lp = p; - - // verify that lp is legal - if ( lp < 0 || lp > vb_count_) - return 0; - - while ( lp != 0) { - if ( vb_count_ > 0) { - delete vbs_[vb_count_ - 1]; - vb_count_--; - } - lp--; - } - return 1; -} - - - -// delete a Vb anywhere within the Pdu -int Pdu::delete_vb( const int p) -{ - // position has to be in range - if (( p < 0) || ( p > (vb_count_ - 1))) - return 0; - - // safe to remove it - delete vbs_[ p]; - - for ( int z=p;z < (vb_count_-1);z++) { - vbs_[z] = vbs_[z+1]; - } - vb_count_--; - - return 1; -} - -void Pdu::delete_all_vbs() -{ - for ( int z = 0; z < vb_count_; z++) - delete vbs_[z]; - vb_count_ = 0; -} - - -// set notify timestamp -void Pdu::set_notify_timestamp( const TimeTicks & timestamp) -{ - notify_timestamp_ = timestamp; -} - - -// get notify timestamp -void Pdu::get_notify_timestamp( TimeTicks & timestamp) const -{ - timestamp = notify_timestamp_; -} - -// set the notify id -void Pdu::set_notify_id( const Oid id) -{ - notify_id_ = id; -} - -// get the notify id -void Pdu::get_notify_id( Oid &id) const -{ - id = notify_id_; -} - -// set the notify enterprise -void Pdu::set_notify_enterprise( const Oid &enterprise) -{ - notify_enterprise_ = enterprise; -} - -// get the notify enterprise -void Pdu::get_notify_enterprise( Oid & enterprise) const -{ - enterprise = notify_enterprise_; -} - -// ------ class VbIter ------------------- -VbIter::VbIter(Pdu& pdu): idx_(-1), pdu_(&pdu) -{ -} - -// returns 1 if ok, else 0 if none left -int VbIter::next(Vb& vb) -{ - if (idx_ == -1) { - idx_ = 0; - pdu_->get_vb(vb, idx_++); - return 1; - } - else - if (idx_ < pdu_->get_vb_count()) { - pdu_->get_vb(vb, idx_++); - return 1; - } - return 0; // non left -} diff --git a/ACE/ASNMP/asnmp/pdu.h b/ACE/ASNMP/asnmp/pdu.h deleted file mode 100644 index a2d84388da0..00000000000 --- a/ACE/ASNMP/asnmp/pdu.h +++ /dev/null @@ -1,219 +0,0 @@ -/* -*-C++-*- */ -#ifndef PDU_CLS_ -#define PDU_CLS_ -//============================================================================= -/** - * @file pdu.h - * - * $Id$ - * - * Pdu class definition. Encapsulation of an SMI Protocol - * Data Unit (PDU) aka Packet in C++. - * - * - * @author Peter E Mellquist original code Michael MacFaden mrm@cisco.com ACE port - * @author add iterator class for pdus - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -// TODO: this needs to be moved into the CLASS and modifyable at runtime -// TODO: define an iterator object to traverse the vbs in a pdu - -#define MAX_VBS 25 -#include "asnmp/vb.h" // include Vb class definition - -/** - * @class Pdu - * - * @brief Protocol Data Unit (PDU) concrete class. An abstraction of the - * data packet used to by two SNMP sessions to communicate. - */ -class ASNMP_Export Pdu -{ -public: - /// constructor no args - Pdu( void); - - /// constructor with vbs and count - Pdu( Vb* pvbs, const int pvb_count); - - /// constructor with another Pdu instance - Pdu( const Pdu &pdu); - - /// destructor - ~Pdu(); - - /// assignment to another Pdu object overloaded - Pdu& operator=( const Pdu &pdu); - - /// append a vb to the pdu - Pdu& operator+=( Vb &vb); - - // TODO: add Pdu& operator-=(const Vb &vb); - - /// extract all Vbs from Pdu - int get_vblist( Vb* pvbs, const int pvb_count); - - /// deposit all Vbs to Pdu - int set_vblist( Vb* pvbs, const int pvb_count); - - /// get a particular vb - /// where 0 is the first vb - int get_vb( Vb &vb, const int index = 0) const; - - /// set a particular vb - /// where 0 is the first vb - int set_vb( Vb &vb, const int index); - - /// return number of vbs - int get_vb_count() const; - - /// return the error status - int get_error_status() const; - - /// return the complete error info from this pdu - const char *agent_error_reason(); - - /// set the error status - friend ASNMP_Export void set_error_status( Pdu *pdu, const int status); - - /// return the error index - int get_error_index() const; - - /// set the error index - friend ASNMP_Export void set_error_index( Pdu *pdu, const int index); - - /// clear error status - friend ASNMP_Export void clear_error_status( Pdu *pdu); - - /// clear error index - friend ASNMP_Export void clear_error_index( Pdu *pdu); - - /// return the request id - unsigned long get_request_id() const; - - /// set the request id - friend void set_request_id( Pdu *pdu, const unsigned long rid); - - /// get the pdu type - unsigned short get_type() const; - - /// set the pdu type - void set_type( unsigned short type); - - /// returns validity of Pdu instance - int valid() const; - - /// trim off count vbs from the end of the vb list - int trim(const int count=1); - - /// delete a Vb anywhere within the Pdu - int delete_vb( const int position); - - /// delete_all vbs in pdu - void delete_all_vbs(); - - /// set notify timestamp - void set_notify_timestamp( const TimeTicks & timestamp); - - /// get notify timestamp - void get_notify_timestamp( TimeTicks & timestamp) const; - - /// set the notify id - void set_notify_id( const Oid id); - - /// get the notify id - void get_notify_id( Oid &id) const; - - /// set the notify enterprise - void set_notify_enterprise( const Oid &enterprise); - - /// get the notify enterprise - void get_notify_enterprise( Oid & enterprise) const; - - /// return fomatted version of this object - const char *to_string(); - - - protected: - /// pointer to array of Vbs - Vb *vbs_[MAX_VBS]; - - /// count of Vbs - int vb_count_; - - /// SMI error status - int error_status_; - - /// SMI error index - int error_index_; - - /// valid boolean status of object construction - /// SMI request id - int validity_; - unsigned long request_id_; - - /// derived at run time based on request type - unsigned short pdu_type_; - - /** - * a timestamp associated with an infor - * for notify Pdu objects only - * traps & notifies - */ - TimeTicks notify_timestamp_; - - /// an id - Oid notify_id_; - - Oid notify_enterprise_; - - private: - /// buffer for to_string() - char *output_; -}; - - -/** - * @class VbIter - * - * @brief Utility class to iterate once through a PDU varbind list - */ -class ASNMP_Export VbIter -{ - public: - /// default constructor - VbIter(Pdu& pdu); - - /// returns 1 if ok, else 0 if none left - int next(Vb& vb); - - private: - /// disallow copy constructor use - VbIter(const VbIter&); - - /// current object in list - int idx_; - - /// ptr to pdu being interated over - Pdu *pdu_; -}; - -#endif //PDU_CLS_ - diff --git a/ACE/ASNMP/asnmp/sagent.cpp b/ACE/ASNMP/asnmp/sagent.cpp deleted file mode 100644 index 8ee2fdb5b8d..00000000000 --- a/ACE/ASNMP/asnmp/sagent.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// $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 -// -// ============================================================================ -#include "ace/Reactor.h" -#include "ace/SOCK_Dgram.h" - -#include "asnmp/oid.h" // snmp++ oid class -#include "asnmp/vb.h" // snbmp++ vb class -#include "asnmp/target.h" // snmp++ target class -#include "asnmp/pdu.h" // snmp++ pdu class -#include "asnmp/snmperrs.h" // error macros and strings -#include "asnmp/address.h" // snmp++ address class defs -#include "asnmp/snmp.h" // manager snmp interface -#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)"); -} - -sagent::~sagent() -{ - ACE_TRACE("sagent::~sagent"); -} - -int sagent::handle_input(ACE_HANDLE fd) -{ - ACE_TRACE("sagent::handle_input"); - - transaction tr(iv_snmp_session_); // this section needs a better design - tr.handle_input(fd); - char rcv_com_str[MAX_COMM_STR_LEN]; - if (tr.result(pdu_, rcv_com_str) < 0) - return 0; - OctetStr community(rcv_com_str); - const ACE_INET_Addr &ta = tr.get_from_addr(); - ACE_TCHAR buf_tmp[MAXHOSTNAMELEN + 1]; - ta.addr_to_string (buf_tmp, MAXHOSTNAMELEN); - UdpAddress ra (ACE_TEXT_ALWAYS_CHAR (buf_tmp)); - tgt_.set_address(ra); - - - // process msg here by calling subclass's implementation - switch (pdu_.get_type()){ - case sNMP_PDU_GET: - tgt_.set_read_community(community); - this->handle_get(pdu_, tgt_); - break; - - case sNMP_PDU_GETNEXT: - tgt_.set_read_community(community); - this->handle_get_next(pdu_, tgt_); - break; - - case sNMP_PDU_SET: - tgt_.set_write_community(community); - this->handle_set(pdu_, tgt_); - break; - - default: - ACE_ASSERT(0); - } - return 0; -} - -ACE_HANDLE sagent::get_handle() const -{ - ACE_TRACE("sagent::get_handle"); - return iv_snmp_session_.get_handle(); -} - -int sagent::respond(Pdu& pdu,UdpTarget& tgt) -{ - pdu.set_type(sNMP_PDU_RESPONSE); - transaction tr(pdu, tgt, iv_snmp_session_); - tr.send(); - return 0; -} diff --git a/ACE/ASNMP/asnmp/sagent.h b/ACE/ASNMP/asnmp/sagent.h deleted file mode 100644 index d220c3ed459..00000000000 --- a/ACE/ASNMP/asnmp/sagent.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -*-C++-*- */ -#ifndef SAGENT_CLS_ -#define SAGENT_CLS_ -//============================================================================= -/** - * @file sagent.h - * - * $Id$ - * - * SNMP agent class defintion. 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" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/SOCK_Dgram.h" - -#include "asnmp/oid.h" // snmp++ oid class -#include "asnmp/vb.h" // snbmp++ vb class -#include "asnmp/target.h" // snmp++ target class -#include "asnmp/pdu.h" // snmp++ pdu class -#include "asnmp/snmperrs.h" // error macros and strings -#include "asnmp/address.h" // snmp++ address class defs -#include "asnmp/snmp.h" // snmp interface - -// sagent - supports Version 1 operations in blocking mode - -#define DEF_AGENT_PORT (161) - -/** - * @class sagent - * - * @brief Concrete class sagent defines the session and interface to - * communicate with another SNMP Version 1 manager - */ -class ASNMP_Export sagent : public ACE_Event_Handler, private Snmp -{ - public: - - - // override the next three methods (callbacks) to implment your agent - // - - /// retrieve data from a peer agent for a given list of oid values - virtual int handle_get( Pdu &pdu, UdpTarget &target) = 0; - - /// retrieve data lexically adjacent to the oids specified in the pdu - /// from the peer agent - virtual int handle_get_next( Pdu &pdu, UdpTarget &target) = 0; - - /// set data in the agent from the list of oids in the pdu - virtual int handle_set( Pdu &pdu, UdpTarget &target) = 0; - - /// new pdu received from mgr (reactor calls this) - virtual int handle_input(ACE_HANDLE); - - /// retrieve io descriptor (reactor uses this) - virtual ACE_HANDLE get_handle() const; - - /// send a response pdu to the mgr - int respond(Pdu& pdu, UdpTarget& tgt); - - protected: - sagent(unsigned short port = DEF_AGENT_PORT); - virtual ~sagent(); - -private: - sagent(const sagent&); - Pdu pdu_; // current input pdu - UdpTarget tgt_; // addr & com strs -}; - -#endif //SAGENT_CLS_ - diff --git a/ACE/ASNMP/asnmp/smi.h b/ACE/ASNMP/asnmp/smi.h deleted file mode 100644 index 3e505c64cb8..00000000000 --- a/ACE/ASNMP/asnmp/smi.h +++ /dev/null @@ -1,147 +0,0 @@ -/* -*-C++-*- */ -#ifndef SMIDEF_ -#define SMIDEF_ -//============================================================================= -/** - * @file smi.h - * - * $Id$ - * - * Address class definition. Encapsulates various network - * addresses into easy to use, safe and portable classes. - */ -//============================================================================= - -/*=================================================================== - 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. - -=====================================================================*/ - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -//----------[ ASN/BER Base Types ]----------------------------------------- -// Basic Encoding Rules (BER) -// (used in forming SYNTAXes and certain SNMP types/values) -#define aSN_UNIVERSAL (0x00) -#define aSN_APPLICATION (0x40) -#define aSN_CONTEXT (0x80) -#define aSN_PRIVATE (0xC0) -#define aSN_PRIMITIVE (0x00) -#define aSN_CONSTRUCTOR (0x20) - -//------[ SNMP ObjectSyntax Values ]--------------------------------------- -#define sNMP_SYNTAX_SEQUENCE (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x10) - - -//------------------------------------------------------------------------- -// These values are used in the "syntax" member -// of the smiVALUE structure which follows. -// Note: UInt32 is indistinguishable from Gauge32 per SNMPv2 Draft Standard -// NsapAddr is obsoleted as unique SMI type per SNMPv2 Draft Standard -#define sNMP_SYNTAX_INT (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x02) -#define sNMP_SYNTAX_BITS (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x03) -#define sNMP_SYNTAX_OCTETS (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x04) -#define sNMP_SYNTAX_NULL (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x05) -#define sNMP_SYNTAX_OID (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x06) -#define sNMP_SYNTAX_INT32 sNMP_SYNTAX_INT -#define sNMP_SYNTAX_IPADDR (aSN_APPLICATION | aSN_PRIMITIVE | 0x00) -#define sNMP_SYNTAX_CNTR32 (aSN_APPLICATION | aSN_PRIMITIVE | 0x01) -#define sNMP_SYNTAX_GAUGE32 (aSN_APPLICATION | aSN_PRIMITIVE | 0x02) -#define sNMP_SYNTAX_TIMETICKS (aSN_APPLICATION | aSN_PRIMITIVE | 0x03) -#define sNMP_SYNTAX_OPAQUE (aSN_APPLICATION | aSN_PRIMITIVE | 0x04) -#define sNMP_SYNTAX_CNTR64 (aSN_APPLICATION | aSN_PRIMITIVE | 0x06) -#define sNMP_SYNTAX_UINT32 (aSN_APPLICATION | aSN_PRIMITIVE | 0x07) - -//------------------------------------------------------------------------- - -//---------------[ Exception conditions for SNMPv2 ]----------------------- -// support SNMP v2 -#define sNMP_SYNTAX_NOSUCHOBJECT (aSN_CONTEXT | aSN_PRIMITIVE | 0x00) -#define sNMP_SYNTAX_NOSUCHINSTANCE (aSN_CONTEXT | aSN_PRIMITIVE | 0x01) -#define sNMP_SYNTAX_ENDOFMIBVIEW (aSN_CONTEXT | aSN_PRIMITIVE | 0x02) - - -//--------------[ different types of PDU's ]------------------------------- -#define sNMP_PDU_GET (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x0) -#define sNMP_PDU_GETNEXT (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x1) -#define sNMP_PDU_RESPONSE (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x2) -#define sNMP_PDU_SET (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x3) -#define sNMP_PDU_V1TRAP (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x4) -#define sNMP_PDU_GETBULK (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x5) -#define sNMP_PDU_INFORM (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x6) -#define sNMP_PDU_TRAP (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x7) - - -//------[ smi typedefs ]--------------------------------------------------- -// SNMP-related types from RFC1442 (SMI) - -typedef unsigned char SmiBYTE, *SmiLPBYTE; - -//------------------------------------------------------------------------- -// SNMP-related types from RFC1442 (SMI) - -// int -typedef long SmiINT, *SmiLPINT; - -// int 32 -typedef SmiINT SmiINT32, *SmiLPINT32; - -// unit32 -typedef unsigned long SmiUINT32, *SmiLPUINT32; - -// octet struct -typedef struct { - SmiUINT32 len; - SmiLPBYTE ptr;} SmiOCTETS, *SmiLPOCTETS; - -// bits -typedef SmiOCTETS SmiBITS, *SmiLPBITS; - -// SMI oid struct -typedef struct { - SmiUINT32 len; - SmiLPUINT32 ptr;} SmiOID, *SmiLPOID; - -// ipaddr -typedef SmiOCTETS SmiIPADDR, *SmiLPIPADDR; - -// 32bit counter -typedef SmiUINT32 SmiCNTR32, *SmiLPCNTR32; - -// gauge -typedef SmiUINT32 SmiGAUGE32, *SmiLPGAUGE32; - -// timeticks -typedef SmiUINT32 SmiTIMETICKS, *SmiLPTIMETICKS; - -// opaque -typedef SmiOCTETS SmiOPAQUE, *SmiLPOPAQUE; - -// nsapaddr -typedef SmiOCTETS SmiNSAPADDR, *SmiLPNSAPADDR; - -// 64 bit counter -typedef struct { - SmiUINT32 hipart; - SmiUINT32 lopart; -} SmiCNTR64, *SmiLPCNTR64; - -#endif // SMIDEF_ - - diff --git a/ACE/ASNMP/asnmp/smival.h b/ACE/ASNMP/asnmp/smival.h deleted file mode 100644 index e754206f506..00000000000 --- a/ACE/ASNMP/asnmp/smival.h +++ /dev/null @@ -1,102 +0,0 @@ -/* -*-C++-*- */ -#ifndef SMIVALUE_ -#define SMIVALUE_ -//============================================================================= -/** - * @file smival.h - * - * $Id$ - * - * SMIValue class definition. Superclass for the various types - * of SNMP values (Address, Oid, Octet, etc.). Provides - * only a few functions, most info is in subclass. - * - * - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -//----[ includes ]----------------------------------------------------- -#include "asnmp/smi.h" -#include "asnmp/ASNMP_Export.h" -#include "ace/os_include/os_stddef.h" - -//----[ macros ]------------------------------------------------------- - -//====================================================================== -// SMI value structure conforming with SMI RFC -// -typedef struct { /* smiVALUE portion of VarBind */ - SmiUINT32 syntax; /* Insert SNMP_SYNTAX_ */ - union { - SmiINT sNumber; /* SNMP_SYNTAX_INT - SNMP_SYNTAX_INT32 */ - SmiUINT32 uNumber; /* SNMP_SYNTAX_UINT32 - SNMP_SYNTAX_CNTR32 - SNMP_SYNTAX_GAUGE32 - SNMP_SYNTAX_TIMETICKS */ - SmiCNTR64 hNumber; /* SNMP_SYNTAX_CNTR64 */ - SmiOCTETS string; /* SNMP_SYNTAX_OCTETS - SNMP_SYNTAX_BITS - SNMP_SYNTAX_OPAQUE - SNMP_SYNTAX_IPADDR - SNMP_SYNTAX_NSAPADDR */ - SmiOID oid; /* SNMP_SYNTAX_OID */ - SmiBYTE empty; /* SNMP_SYNTAX_NULL - SNMP_SYNTAX_NOSUCHOBJECT - SNMP_SYNTAX_NOSUCHINSTANCE - SNMP_SYNTAX_ENDOFMIBVIEW */ - } value; -} SmiVALUE, *SmiLPVALUE; - -// An "abstract" (pure virtual) class that serves as the base class -// for all specific SNMP syntax types. -// -class ASNMP_Export SnmpSyntax { - -public: - virtual const char * to_string() = 0; - // virtual function for getting a printable ASCII value for any SNMP Value - - virtual SmiUINT32 get_syntax() = 0; - // return the current syntax - - virtual SnmpSyntax * clone() const = 0; - // virtual clone operation for creating a new Value from an existing - // value. The caller MUST use the delete operation on the return - // value when done. - - virtual ~SnmpSyntax() {}; - // virtual destructor to ensure deletion of derived classes... - - virtual SnmpSyntax& operator=(SnmpSyntax &/*val*/) - { - return *this; - } - // overloaded assignment operator - // This should be pure virtual, but WinNT compiler - // complains about unresolved reference at link time. - - virtual int valid() const = 0; - // return validity of value object. - -protected: - SmiVALUE smival; -}; - -#endif // SMIVALUE_ diff --git a/ACE/ASNMP/asnmp/snmp.cpp b/ACE/ASNMP/asnmp/snmp.cpp deleted file mode 100644 index cc2e1dd4179..00000000000 --- a/ACE/ASNMP/asnmp/snmp.cpp +++ /dev/null @@ -1,286 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - - -#define INCLUDE_SNMP_ERR_STRINGS_ - -//----[ snmp++ includes ]---------------------------------------------- -#include "asnmp/snmp.h" // class def for this module -#include "asnmp/oid.h" // class def for oids -#include "asnmp/enttraps.h" // class def for well known trap oids -#include "asnmp/vb.h" // class def for vbs -#include "asnmp/address.h" // class def for addresses -#include "asnmp/wpdu.h" // adapter to cmu_library / wire protocol -#include "asnmp/transaction.h" // synchronous transaction processor -#include "ace/OS_NS_string.h" -#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; -const linkUpOid linkUp; -const authenticationFailureOid authenticationFailure; -const egpNeighborLossOid egpNeighborLoss; -const snmpTrapEnterpriseOid snmpTrapEnterprise; - -char Snmp::host_name_[MAXHOSTNAMELEN] = ""; - -Snmp::Snmp(unsigned short port): result_(0), construct_status_(SNMP_CLASS_ERROR), last_transaction_status_(0) -{ - ACE_TRACE("Snmp::Snmp"); - - ACE_INET_Addr addr(port); // any port,address is ok - if (iv_snmp_session_.open(addr) < 0) { - last_transaction_status_ = errno; // open udp/ipv4 socket - ACE_DEBUG((LM_DEBUG, "Snmp::snmp::open port %d failed", port)); - return; - } - - // initial request id randomly generated then monotonically incremented - req_id_ = (unsigned) ACE_OS::time(0); - - construct_status_ = SNMP_CLASS_SUCCESS; - return; -} - -Snmp::~Snmp() -{ - ACE_TRACE("Snmp::~Snmp"); - iv_snmp_session_.close(); -} - -int Snmp::valid() const -{ - return construct_status_; -} - -// given error code, return string definition -// class version -// static -const char * Snmp::error_string(int last_transaction_status_) -{ - ACE_TRACE("Snmp::error_string"); - - return ((last_transaction_status_ < 0) ? - ((last_transaction_status_ < MAX_NEG_ERROR)? - nErrs[ abs(MAX_NEG_ERROR) + 1] : nErrs[abs(last_transaction_status_)]): - ((last_transaction_status_ > MAX_POS_ERROR)? - pErrs[MAX_POS_ERROR+1] : pErrs[last_transaction_status_])); -} - -// instance version -const char * Snmp::error_string() -{ - return Snmp::error_string(last_transaction_status_); -} - -void Snmp::check_default_port(UdpTarget& target, unsigned short port) -{ - UdpAddress tmp; - target.get_address(tmp); - if (tmp.get_port() == 0) { - tmp.set_port(port); - target.set_address(tmp); - } -} - -int Snmp::run_transaction(Pdu& pdu, UdpTarget& target) -{ - int rc, done = 0; - - // 1. set unique id to match this packet on return - size_t hold_req_id = req_id_++; - set_request_id(&pdu, hold_req_id); - - // 2. write request to agent - transaction trans(pdu, target, iv_snmp_session_); - - // this call blocks while it attempts to retrieve agent response - while (!done) { - if ((rc = trans.run()) < 0) { - last_transaction_status_ = rc; - return rc; - } - else { - trans.result(pdu); - // verify this is the pdu we are after - if (pdu.get_request_id() == hold_req_id) - done = 1 ; - } - } - return 0; -} - -int Snmp::run_transaction(Pdu& pdu, UdpTarget& target, Snmp_Result * cb) -{ - if (!cb) - return run_transaction(pdu, target); - - // 1. set unique id to match this packet on return - hold_req_id_ = req_id_++; - set_request_id(&pdu, hold_req_id_); - pdu_ = &pdu; - result_ = cb; - - // 2. write request to agent - transaction * trans = new transaction(pdu, target, iv_snmp_session_); - return trans->run(this); -} - -void Snmp::result(transaction *t, int rc) -{ - t->result(*pdu_); - // verify this is the pdu we are after - if (pdu_->get_request_id() == hold_req_id_) - { - last_transaction_status_ = rc; - delete t; - result_->result(this, rc); - } - else - { - rc = t->run(this); - if (rc < 0) - { - delete t; - result_->result(this, rc); - } - } -} - -int Snmp::validate_args(const Pdu& pdu, const UdpTarget& target) const -{ - // 0. check object status - if (construct_status_ != SNMP_CLASS_SUCCESS) - return construct_status_; - - // 1. check args passed - if ( !pdu.valid() || !target.valid() ) - return SNMP_INVALID_ARGS; - return 0; -} - -// SYNC API: write request to wire then wait for reply or timeout -int Snmp::get( Pdu &pdu, UdpTarget &target, Snmp_Result * cb) -{ - ACE_TRACE("Snmp::get"); - int rc; - if ((rc = validate_args(pdu, target)) != 0) - return rc; - - pdu.set_type( sNMP_PDU_GET); - check_default_port(target); - return run_transaction(pdu, target, cb); -} - -int Snmp::get_next( Pdu &pdu, UdpTarget &target, Snmp_Result * cb) -{ - ACE_TRACE("Snmp::get_next"); - int rc; - if ((rc = validate_args(pdu, target)) != 0) - return rc; - - pdu.set_type( sNMP_PDU_GETNEXT); - check_default_port(target); - return run_transaction(pdu, target, cb); -} - -int Snmp::set( Pdu &pdu, UdpTarget &target, Snmp_Result * cb) -{ - ACE_TRACE("Snmp::set"); - int rc; - if ((rc = validate_args(pdu, target)) != 0) - return rc; - - pdu.set_type( sNMP_PDU_SET); - check_default_port(target); - return run_transaction(pdu, target, cb); -} - -// one way, best of luck, non-confirmed alert -int Snmp::trap( Pdu &pdu, UdpTarget &target) -{ - ACE_TRACE("Snmp::trap"); - int rc; - if ((rc = validate_args(pdu, target)) != 0) - return rc; - - pdu.set_type( sNMP_PDU_V1TRAP); - check_default_port(target, DEF_TRAP_PORT); - - // 2. write request to agent - transaction trans(pdu, target, iv_snmp_session_); - if (trans.send() > 0) // expect number of bytes sent on - return 0; - - last_transaction_status_ = SNMP_CLASS_INTERNAL_ERROR; - return -1; -} - -// Allow host name to be overriden. Supplying a null pointer or zero -// length string removes the override. -void Snmp::override_host_name(const char* name) -{ - if (name) - { - ACE_OS::strncpy(host_name_, name, MAXHOSTNAMELEN); - host_name_[MAXHOSTNAMELEN-1] = 0; - } - else { - host_name_[0] = 0; - } -} - -// Returns the current host name in the supplied string. -void Snmp::get_host_name(char* name, int len) -{ - if (name) - { - if (ACE_OS::strlen(host_name_) > 0) - { - ACE_OS::strncpy(name, host_name_, len); - name[len-1] = 0; - } - else - { - if (ACE_OS::hostname(name, len-1) == -1) - name[0] = 0; - } - } -} - -Snmp_Result::~Snmp_Result() {} diff --git a/ACE/ASNMP/asnmp/snmp.h b/ACE/ASNMP/asnmp/snmp.h deleted file mode 100644 index 5bae232baa0..00000000000 --- a/ACE/ASNMP/asnmp/snmp.h +++ /dev/null @@ -1,137 +0,0 @@ -/* -*-C++-*- */ -#ifndef SNMP_CLS_ -#define SNMP_CLS_ -//============================================================================= -/** - * @file snmp.h - * - * $Id$ - * - * SNMP class defintion. The Snmp class provides an object oriented - * approach to SNMP. The SNMP class is an encapsulation of SNMP - * sessions, gets, sets, etc. The class manages all SNMP - * resources and provides complete retry and timeout capability. - * - * - * @author Peter E Mellquist design - * @author first implementation Michael R. MacFaden port to ACE / use Reactor pattern - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -#include "ace/Reactor.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/SOCK_Dgram.h" - -#include "asnmp/oid.h" // snmp++ oid class -#include "asnmp/vb.h" // snbmp++ vb class -#include "asnmp/target.h" // snmp++ target class -#include "asnmp/pdu.h" // snmp++ pdu class -#include "asnmp/snmperrs.h" // error macros and strings -#include "asnmp/address.h" // snmp++ address class defs -#include "asnmp/transaction_result.h" -#include "asnmp/ASNMP_Export.h" - -class Snmp; -class ASNMP_Export Snmp_Result -{ - public: - virtual ~Snmp_Result(); - virtual void result(Snmp *snmp, int result) = 0; -}; - -// Snmp session class - supports Version 1 operations in blocking mode -/** - * @class Snmp - * - * @brief Concrete class Snmp defined the session and interface to - * communicate with another SNMP Version 1 agent - */ -class ASNMP_Export Snmp : public transaction_result -{ - Snmp_Result * result_; - Pdu * pdu_; - unsigned hold_req_id_; -public: - Snmp(unsigned short port = INADDR_ANY); - virtual ~Snmp(); - - /// retrieve data from a peer agent for a given list of oid values - /// default port 161 - int get( Pdu &pdu, UdpTarget &target, Snmp_Result * cb = 0); - - /** - * retrieve data lexically adjacent to the oids specified in the pdu - * from the peer agent - * default port 161 - */ - int get_next( Pdu &pdu, UdpTarget &target, Snmp_Result * cb = 0); - - /// set data in the agent from the list of oids in the pdu - /// default port 161 - int set( Pdu &pdu, UdpTarget &target, Snmp_Result * cb = 0); - - /// send an SNMPv1 trap (unreliable) to a remote system (def port 162) - int trap( Pdu &pdu, UdpTarget &target); - - /// status of object after construction - int valid() const; - - /// given error code, return string reason - static const char * error_string(int code); - - /// retrieve a reason string if any of the above commands fail - const char * error_string(); - - /// for async transaction results - void result(transaction * t, int rc); - - /// allow the host name to be overriden - static void override_host_name(const char* name); - - /// returns the overriden host name - static void get_host_name(char* name, int len); - -protected: - void check_default_port(UdpTarget& target,unsigned short port=DEF_AGENT_PORT); - int run_transaction(Pdu& pdu, UdpTarget& target); - int run_transaction(Pdu& pdu, UdpTarget& target, Snmp_Result * cb); - int validate_args(const Pdu& pdu, const UdpTarget& target) const; - - Snmp(const Snmp&); - - /// io object - ACE_SOCK_Dgram iv_snmp_session_; - - /// status of construction - int construct_status_; - - /// result code from last transaction - int last_transaction_status_; - - /// transaction request id - unsigned req_id_; - - static char host_name_[MAXHOSTNAMELEN]; -}; - -#endif //SNMP_CLS_ diff --git a/ACE/ASNMP/asnmp/snmperrs.h b/ACE/ASNMP/asnmp/snmperrs.h deleted file mode 100644 index 7aafdc0619a..00000000000 --- a/ACE/ASNMP/asnmp/snmperrs.h +++ /dev/null @@ -1,210 +0,0 @@ -/* -*-C++-*- */ -#ifndef SNMPERRS_H_ -#define SNMPERRS_H_ -//============================================================================= -/** - * @file snmperrs.h - * - * $Id$ - * - * Definition of error macros and error strings - * - * - */ -//============================================================================= - -/*=================================================================== - 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. -============================================================================*/ - - -//-------[ Positive ASNMP Error Return Codes ]------------------------------ -// These values are error status values from RFC 1905 -// -// The values can be returned via Pdu::get_error_status() -// -#define SNMP_ERROR_SUCCESS 0 // Success Status -#define SNMP_ERROR_TOO_BIG 1 // Pdu encoding too big -#define SNMP_ERROR_NO_SUCH_NAME 2 // No such VB name, see error index -#define SNMP_ERROR_BAD_VALUE 3 // Bad Vb -#define SNMP_ERROR_READ_ONLY 4 // VB is read only, see error index -#define SNMP_ERROR_GENERAL_VB_ERR 5 // General VB error, see error index -#define SNMP_ERROR_NO_ACCESS 6 // No access to MIBs data -#define SNMP_ERROR_WRONG_TYPE 7 // Requested type was incorrect -#define SNMP_ERROR_WRONG_LENGTH 8 // Request Pdu has inccorect length -#define SNMP_ERROR_WRONG_ENCODING 9 // Request Pdu has wrong encoding -#define SNMP_ERROR_WRONG_VALUE 10 // Request Pdu has wrong value -#define SNMP_ERROR_NO_CREATION 11 // Unable to create object specified -#define SNMP_ERROR_INCONSIST_VAL 12 // Inconsistent value in request -#define SNMP_ERROR_RESOURCE_UNAVAIL 13 // Resources unavailable -#define SNMP_ERROR_COMITFAIL 14 // Unable to comit -#define SNMP_ERROR_UNDO_FAIL 15 // Unable to undo -#define SNMP_ERROR_AUTH_ERR 16 // Authentication failure -#define SNMP_ERROR_NOT_WRITEABLE 17 // Mib Object not writeable -#define SNMP_ERROR_INCONSIS_NAME 18 // Inconsistent naming used - - -//-------[ Negative ASNMP Result/Error Return Codes ]------------------- - -// General -#define SNMP_CLASS_SUCCESS 0 // success -#define SNMP_CLASS_ERROR -1 // general error -#define SNMP_CLASS_RESOURCE_UNAVAIL -2 // e.g., malloc failed -#define SNMP_CLASS_INTERNAL_ERROR -3 // unexpected / internal error -#define SNMP_CLASS_UNSUPPORTED -4 // unsupported function - -// Callback reasons: -#define SNMP_CLASS_TIMEOUT -5 // outstanding request timed out -#define SNMP_CLASS_ASYNC_RESPONSE -6 // received response for outstd request -#define SNMP_CLASS_NOTIFICATION -7 // received notification (trap/inform) -#define SNMP_CLASS_SESSION_DESTROYED -8 // snmp::destroyed with oustanding reqs pending - -// Snmp Class: -#define SNMP_CLASS_INVALID -10 // snmp::mf called on invalid instance -#define SNMP_CLASS_INVALID_PDU -11 // invalid pdu passed to mf -#define SNMP_CLASS_INVALID_TARGET -12 // invalid target passed to mf -#define SNMP_CLASS_INVALID_CALLBACK -13 // invalid callback to mf -#define SNMP_CLASS_INVALID_REQID -14 // invalid request id to cancel -#define SNMP_CLASS_INVALID_NOTIFYID -15 // missing trap/inform oid -#define SNMP_CLASS_INVALID_OPERATION -16 // snmp operation not allowed for specified target -#define SNMP_CLASS_INVALID_OID -17 // invalid oid passed to mf -#define SNMP_CLASS_INVALID_ADDRESS -18 // invalid address passed to mf -#define SNMP_CLASS_ERR_STATUS_SET -19 // agent returned response pdu with error_status set - -// Transport Errors: -#define SNMP_CLASS_TL_UNSUPPORTED -20 // transport unsupported -#define SNMP_CLASS_TL_IN_USE -21 // transport in use -#define SNMP_CLASS_TL_FAILED -22 // transport operation failed - -// extras -#define SNMP_CLASS_SHUTDOWN -23 // used for back door shutdown -#define SNMP_INVALID_ARGS -24 // invalid args passed - -#ifdef INCLUDE_SNMP_ERR_STRINGS_ - -// ASCII strings returned through Snmp::error() function. NOTE: altering -// the strings in this header file will not affect the return values of -// Snmp::error(), unless you rebuild the ASNMP library from source. - -#define MAX_POS_ERROR SNMP_ERROR_INCONSIS_NAME -#define MAX_NEG_ERROR SNMP_CLASS_SHUTDOWN - -static const char * pErrs[] = { - "Success", // 0 - "SNMP: Response PDU Too Big", // 1 - "SNMP: Variable does not exist", // 2 - "SNMP: Cannot modify variable: Bad Value", // 3 - "SNMP: Cannot modify object, Read Only", // 4 - "SNMP: Cannot perform operation, General Error", // 5 - "SNMP: Cannot access variable, No Access", // 6 - "SNMP: Cannot create/modify variable, Wrong Type", // 7 - "SNMP: Cannot create/set variable, Wrong Length", // 8 - "SNMP: Cannot create/set variable, Wrong Encoding", // 9 - "SNMP: Cannot create/set variable, Wrong Value", // 10 - "SNMP: Cannot create variable, Creation Not Allowed", // 11 - "SNMP: Cannot create/set variable, Inconsistent Value", // 12 - "SNMP: Cannot create/set variable, Resource Unavailable", // 13 - "SNMP: Cannot create/set variable, Commit Failed", // 14 - "SNMP: Cannot create/set variable, Undo Failed", // 15 - "SNMP: Cannot perform operation, Authorization Error", // 16 - "SNMP: Cannot create/set variable, Not Writable", // 17 - "SNMP: Cannot create variable, Inconsistent Name", // 18 -}; - - -static const char * nErrs[] = { - // General: - // 0 SNMP_CLASS_SUCCESS - "ASNMP: Success", - - // 1 SNMP_CLASS_ERROR - "ASNMP: Operation failed", - - // 2 SNMP_CLASS_RESOURCE_UNAVAIL - "ASNMP: Resource unavailable", - - // 3 SNMP_CLASS_INTERNAL_ERROR - "ASNMP: Internal error", - - // 4 SNMP_CLASS_UNSUPPORTED - "ASNMP: Unsupported function", - - // Callback reasons: - // 5 SNMP_CLASS_TIMEOUT - "ASNMP: SNMP request timed out", - - // 6 SNMP_CLASS_ASYNC_RESPONSE - "ASNMP: Received SNMP Response", - - // 7 SNMP_CLASS_NOTIFICATION - "ASNMP: Received SNMP Notification (trap or inform)", - - // 8 SNMP_CLASS_SESSION_DESTROYED - "ASNMP: Closing session with outstanding requests", - - // 9 reserved for future - "Unknown error code", - - // Snmp Class errors: - // 10 SNMP_CLASS_INVALID - "ASNMP: Class not valid", - - // 11 SNMP_CLASS_INVALID_PDU - "ASNMP: Invalid Pdu", - - // 12 SNMP_CLASS_INVALID_TARGET - "ASNMP: Invalid Target", - - // 13 SNMP_CLASS_INVALID_CALLBACK - "ASNMP: Invalid (null) Callback Function", - - // 14 SNMP_CLASS_INVALID_REQID - "ASNMP: Invalid Request Id", - - // 15 SNMP_CLASS_INVALID_NOTIFYID - "ASNMP: Invalid Notification Id", - - // 16 SNMP_CLASS_INVALID_OPERATION - "ASNMP: SNMP Operation not supported on specified Target", - - // 17 SNMP_CLASS_INVALID_OID - "ASNMP: Invalid Object Identifier", - - // 18 SNMP_CLASS_INVALID_ADDRESS - "ASNMP: Invalid Address", - - // 19 SNMP_CLASS_ERR_STATUS_SET - "ASNMP: Agent indicates error in SNMP request", - - // Transport Errors: - // 20 SNMP_CLASS_TL_UNSUPPORTED - "ASNMP: Transport is not supported", - - // 21 SNMP_CLASS_TL_IN_USE - "ASNMP: Transport is in use", - - // 22 SNMP_CLASS_TL_FAILED - "ASNMP: Transport operation failed", - - // 23 SNMP_CLASS_SHUTDOWN - "ASNMP: Blocked Mode Shutdown", - - // unknown error code - "Unknown error code", -}; - -#endif //INCLUDE_SNMP_ERR_STRINGS_ - -#endif //SNMPERRS_H_ diff --git a/ACE/ASNMP/asnmp/target.cpp b/ACE/ASNMP/asnmp/target.cpp deleted file mode 100644 index dd99fa19560..00000000000 --- a/ACE/ASNMP/asnmp/target.cpp +++ /dev/null @@ -1,323 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. - =====================================================================*/ - -#include "asnmp/target.h" -#include "ace/OS_NS_stdio.h" - -ACE_RCSID(asnmp, target, "$Id$") - -//---------------------------------------------------------------------- -//--------[ Class default values ]---------------------- -//---------------------------------------------------------------------- -u_long SnmpTarget::default_timeout_ = DEF_TIMEOUT; -int SnmpTarget::default_retries_ = DEF_RETRIES; -u_long SnmpTarget::default_max_pdu_size_ = DEF_MAX_SNMP_PACKET; -snmp_version SnmpTarget::default_version_ = version1; - -OctetStr UdpTarget::default_rd_community_(READ_COMM_STR); -OctetStr UdpTarget::default_wr_community_(WRITE_COMM_STR); - -//---------------------------------------------------------------------- -//--------[ Abstract SnmpTarget Member Functions ]---------------------- -//---------------------------------------------------------------------- -SnmpTarget::SnmpTarget(): - validity_(0), timeout_(default_timeout_), retries_(default_retries_), - max_pdu_size_(default_max_pdu_size_), version_(default_version_) -{ -} - -// return validity of target -int SnmpTarget::valid() const -{ - return validity_; -} - -// allow destruction of derived classes -SnmpTarget::~SnmpTarget() -{ -} - -// set the timeout -void SnmpTarget::set_timeout( const u_long t) -{ - timeout_ = t; -} - -// change the default timeout -void SnmpTarget::set_default_timeout( const u_long t) -{ - default_timeout_ = t; -} - -// set the retry value -void SnmpTarget::set_retry( const int r) -{ - retries_ = r; -} - -// change the default retries -void SnmpTarget::set_default_retry( const int r) -{ - default_retries_ = r; -} - -void SnmpTarget:: set_max_pdu_size(const u_long max_pdu_sz) -{ - max_pdu_size_ = max_pdu_sz; -} - - -void SnmpTarget::set_default_max_pdu_size(const u_long max_pdu_sz) -{ - default_max_pdu_size_ = max_pdu_sz; -} - -void SnmpTarget::set_version( const snmp_version v) -{ - version_ = v; -} - -void SnmpTarget::set_default_version( const snmp_version v) -{ - default_version_ = v; -} - -snmp_version SnmpTarget::get_version() const -{ - return version_; -} - -snmp_version SnmpTarget::get_default_version() const -{ - return default_version_; -} - -u_long SnmpTarget::get_max_pdu_size() const -{ - return max_pdu_size_; -} - -// get the retry value -int SnmpTarget::get_retry() const -{ - return retries_; -} - -// get the retry value -int SnmpTarget::get_default_retry() const -{ - return default_retries_; -} - -// get the timeout -u_long SnmpTarget::get_timeout() const -{ - return timeout_; -} - -SnmpTarget& SnmpTarget::operator=(const SnmpTarget& lhs) -{ - if (this == &lhs) - return *this; - - validity_ = lhs.validity_; - timeout_ = lhs.timeout_; - retries_ = lhs.retries_; - max_pdu_size_ =lhs.max_pdu_size_; - version_ = lhs.version_; - return *this; -} - -bool operator==(const SnmpTarget& lhs, const SnmpTarget& rhs) -{ - if (lhs.timeout_ != rhs.timeout_) - return false; - - if (lhs.retries_ != rhs.retries_) - return false; - - if (lhs.max_pdu_size_ != rhs.max_pdu_size_) - return false; - - if (lhs.version_ != rhs.version_) - return false; - - return true; -} - - -//---------------------------------------------------------------------- -//--------[ IpTarget Member Functions ]---------------------------------- -//---------------------------------------------------------------------- - - -//---------[ UdpTarget::UdpTarget( void) ]---------------------------------- - -UdpTarget::UdpTarget() -{ - validity_ = 0; - read_community_ = default_rd_community_; // assign by init fails - write_community_ = default_wr_community_; -} - -UdpTarget::UdpTarget(const UdpAddress& udp) : udp_address_(udp) -{ - if (udp_address_.valid()) - validity_ = 1; - read_community_ = default_rd_community_; - write_community_ = default_wr_community_; -} - -// - copy constructor can be synthesised by compiler - -//-----------[ UdpTarget::~UdpTarget() ]-------------------------------- -UdpTarget::~UdpTarget() -{ -} - -//-----------[ UdpTarget::clone() ]-------------------------------- -SnmpTarget * UdpTarget::clone() const -{ - return (SnmpTarget *) new UdpTarget(*this); -} - - -void UdpTarget::set_default_read_community(const OctetStr& rd_community) -{ - default_rd_community_ = rd_community; -} - -void UdpTarget::set_default_write_community(const OctetStr& wr_community) -{ - default_wr_community_ = wr_community; -} - - -// get the read community name as an u_char and len -void UdpTarget::get_read_community( OctetStr& read_community_oct) const -{ - read_community_oct = read_community_; -} - -//---------[ UdpTarget::set_getcommunity ]--------------------------------- -// set the read community name -void UdpTarget::set_read_community( const OctetStr& new_read_community) -{ - read_community_ = new_read_community; -} - -//---------[ UdpTarget::get_writecommunity ]---------------------------- -// get the write community -void UdpTarget::get_write_community( OctetStr &write_community_oct) const -{ - write_community_oct = write_community_; -} - -//-----------[ UdpTarget::set_writecommunity ]--------------------------- -// set the write community -void UdpTarget::set_write_community( const OctetStr& write_community_oct) -{ - write_community_ = write_community_oct; -} - -//------------[ Address& UdpTarget::get_address() ]--------------------- -// get the address -void UdpTarget::get_address( UdpAddress &address) const -{ - address = udp_address_; - return; -} - -//-------------[ UdpTarget::set_address ]-------------------------------- -// set the address -int UdpTarget::set_address( UdpAddress &udp_address) -{ - udp_address_ = udp_address; - if ( udp_address_.valid()) - validity_ = 1; - else - validity_ = 0; - - return validity_; -} - -// overloaded assignment -UdpTarget& UdpTarget::operator=( const UdpTarget& lhs) -{ - if (this == &lhs) - return *this; - - // assign base part - *((SnmpTarget *) this) = *((SnmpTarget *)&lhs); - - udp_address_ = lhs.udp_address_; - read_community_ = lhs.read_community_; - write_community_ = lhs.write_community_; - validity_ = lhs.validity_; - - return *this; -} - -const char *UdpTarget::to_string() -{ - ACE_OS::sprintf(output_buffer_,"UdpTarget: [ valid: %d addr: %s rd: %s wr: %s \ - ver: %d, timeout: %d, retries: %d max_pdu_size: %d]", - valid(), udp_address_.to_string(), read_community_.to_string(), - write_community_.to_string(), version_, (int) timeout_, - retries_, max_pdu_size_); - - return output_buffer_; -} - -//=============[ int operator == UdpTarget, UdpTarget ]=============== -// equivlence operator overloaded -bool operator==( const UdpTarget &lhs,const UdpTarget &rhs) -{ - // need to compare all the members of a UdpTarget - if ( lhs.read_community_ != rhs.read_community_) - return false; // != - - if ( lhs.write_community_ != rhs.write_community_) - return false; // != - - if ( lhs.udp_address_ != rhs.udp_address_) - return false; - - if ( lhs.timeout_ != rhs.timeout_) - return false; - - if ( lhs.retries_ != rhs.retries_) - return false; - - return true; // they are equal -} diff --git a/ACE/ASNMP/asnmp/target.h b/ACE/ASNMP/asnmp/target.h deleted file mode 100644 index 084088e5f4f..00000000000 --- a/ACE/ASNMP/asnmp/target.h +++ /dev/null @@ -1,260 +0,0 @@ - - -#ifndef TARGET_ -#define TARGET_ -//============================================================================= -/** - * @file target.h - * - * $Id$ - * - * @brief - * - * @author Peter E Mellquist Michael R. MacFaden (ported to ACE) - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -//----[ includes ]------------------------------------------------ -#include "ace/INET_Addr.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "asnmp/address.h" -#include "asnmp/oid.h" -#include "asnmp/octet.h" - -//----[ enumerated types for SNMP versions ]------------------------- -enum snmp_version { - version1, // 0 - version2c, // 1 (Cisco IOS does not have IOS v2c agent available yet) - version3 // 2 (IETF working on this version) -}; - -// targets contain the following default properties -enum ASNMP_Defs { - DEF_TIMEOUT = 1, // unit: seconds - DEF_RETRIES = 1, // no retry default - DEF_MAX_SNMP_PACKET = 1430, // maximum pdu len on the wire (eth mtu-ip hdr) - // split bigger pdus (not implemented yet) - DEF_AGENT_PORT = 161, // port # for SNMP agent - DEF_TRAP_PORT = 162, // port # for SNMP trap receiver - DEF_VERSION = version1, // default SNMP version - MAX_COMM_STR_LEN = 255, // max value this impl will accept from client - MAX_TARGET_STRING_REP = 2048 // max value this impl will accept from client -}; - -#define READ_COMM_STR "public" -#define WRITE_COMM_STR "private" - -// Abstract class used to provide a virtual interface into Targets -// -/** - * @class SnmpTarget - * - * @brief Abstract Base class SnmpTarget is used to Collect all transmission - * details to communicate with an SNMP - */ -class ASNMP_Export SnmpTarget -{ - public: - - /// allow destruction of derived classes - virtual ~SnmpTarget(); - - /// return validity of target - int valid() const; - - /// set the retry value - void set_retry( const int r); - - /// set the object's timeout (in seconds) - void set_timeout( const unsigned long t); - - /// set the instance version - void set_version( const snmp_version v); - - /// all classes constructed will have this write community string - void set_max_pdu_size(const unsigned long max_pdu_sz); - - /// change the "class" default default timeout (in seconds) - void set_default_timeout( const unsigned long t); - - /// change the default send retries - void set_default_retry( const int r); - - /// all classes constructed will have this write community string - void set_default_max_pdu_size(const unsigned long max_pdu_sz); - - /// change class default - void set_default_version( const snmp_version v); - - // *** get methods *** - - /// get the retry value - int get_default_retry() const; - - /// get the timeout (seconds) - unsigned long get_timeout() const; - - /// get instance max buffer size - unsigned long get_max_pdu_size() const; - - /// all classes constructed will have this write community string - void get_default_max_pdu_size(const unsigned long max_pdu_sz); - - /// get the version - snmp_version get_version() const; - - snmp_version get_default_version() const; - - /// return send retry number for this instancd - int get_retry() const; - - /** - * virtual clone operation for creating a new SnmpTarget from an existing - * SnmpTarget. The caller MUST use the delete operation on the return - * value when done. - */ - virtual SnmpTarget *clone() const = 0; - - /// manipulate the base part - friend bool operator==(const SnmpTarget& lhs, const SnmpTarget& rhs); - - SnmpTarget& operator=(const SnmpTarget& lhs); - - protected: - /// SnmpTarget(const SnmpTarget &); - SnmpTarget(); - - /// used by derived class instances - int validity_; - - /// instance value xmit timeout in milli secs - unsigned long timeout_; - - /// instance value number of retries - int retries_; - - /// size of pdu - unsigned max_pdu_size_; - - /// instance value the snmp version - snmp_version version_; - - // class wide default values - /// xmit timeout in secs - static unsigned long default_timeout_; - - /// number of retries - static int default_retries_; - - /// snmp protocol version - static unsigned long default_max_pdu_size_; - static snmp_version default_version_; -}; - -//----[ UdpTarget class ]---------------------------------------------- -// UDP/IP transport using "community string" based agents (targets) -// -/** - * @class UdpTarget - * - * @brief Concrete class UdpTarget contains all Details for communicating - * with a SNMPv1 agent over UDP/IPv4 transport - */ -class ASNMP_Export UdpTarget : public SnmpTarget -{ - public: - UdpTarget(); - - /** - * constructor with only address - * assumes default as public, public - * can be constructed with IP address object - */ - UdpTarget( const UdpAddress& udp); - - /// can be constructed with Udp address object TODO: merge addresses - UdpTarget( ACE_INET_Addr& ace_inet_addr); - - /// destructor - ~UdpTarget(); - - // ** set *** - - /// set the read community using an OctetStr - void set_read_community( const OctetStr& new_read_community); - - /// set the write community using an OctetStr - void set_write_community( const OctetStr& write_community); - - /// set the address - int set_address( UdpAddress &udp_address); - - // ** get *** - - /// get the read community as an Octet Str object - void get_read_community( OctetStr& read_community_oct) const; - - /// get the write community as an OctetStr - void get_write_community( OctetStr &write_community_oct) const; - - /// get the address - void get_address( UdpAddress& address) const; - - /// all classes constructed will have this read community string - void set_default_read_community(const OctetStr& rd_community); - - /// all classes constructed will have this write community string - void set_default_write_community(const OctetStr& wr_community); - - /// all classes constructed will have this read community string - void get_default_read_community(OctetStr& rd_community) const; - - /// all classes constructed will have this write community string - void get_default_write_community(OctetStr& wr_community) const; - - /// overloaded assignment - UdpTarget& operator=( const UdpTarget& target); - - /// compare two C targets - friend bool operator==( const UdpTarget &lhs, const UdpTarget &rhs); - - /// string representation of object - const char *to_string(); - - /// clone from existing UdpTarget - SnmpTarget *clone() const; - - protected: - static OctetStr default_rd_community_; - static OctetStr default_wr_community_; - OctetStr read_community_; - OctetStr write_community_; - UdpAddress udp_address_; - snmp_version version_; - - /// to_string() rep of data - char output_buffer_[MAX_TARGET_STRING_REP]; -}; - - -#endif //TARGET_ diff --git a/ACE/ASNMP/asnmp/timetick.cpp b/ACE/ASNMP/asnmp/timetick.cpp deleted file mode 100644 index f777b43ad64..00000000000 --- a/ACE/ASNMP/asnmp/timetick.cpp +++ /dev/null @@ -1,147 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#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) -{ - smival.syntax = sNMP_SYNTAX_TIMETICKS; -} - -// copy constructor -TimeTicks::TimeTicks( const TimeTicks &t) - : SnmpUInt32 (t) -{ - smival.value.uNumber = t.smival.value.uNumber; - smival.syntax = sNMP_SYNTAX_TIMETICKS; -} - -// destructor -TimeTicks::~TimeTicks() -{ -} - -// syntax type -SmiUINT32 TimeTicks::get_syntax() -{ - return sNMP_SYNTAX_TIMETICKS; -} - -// create a new instance of this Value -SnmpSyntax *TimeTicks::clone() const -{ - return (SnmpSyntax *) new TimeTicks(*this); -} - -// overloaded assignement from ulong -TimeTicks& TimeTicks::operator=( const unsigned long int i) -{ - smival.value.uNumber =i; return *this; -} - -// overloaded assignment from TimeTicks -TimeTicks& TimeTicks::operator=( const TimeTicks &uli) -{ - this->smival.value.uNumber = uli.smival.value.uNumber; return *this; -} - -// general assignment from any Value -SnmpSyntax& TimeTicks::operator=( SnmpSyntax &in_val) -{ - if ( this == &in_val ) // handle assignement from itself - return *this; - - valid_flag = 0; // will get set true if really valid - if (in_val.valid()) { - switch (in_val.get_syntax()) { - case sNMP_SYNTAX_UINT32: - // case sNMP_SYNTAX_GAUGE32: .. indistinquishable from UINT32 - case sNMP_SYNTAX_CNTR32: - case sNMP_SYNTAX_TIMETICKS: - case sNMP_SYNTAX_INT32: // implied cast int -> uint - this->smival.value.uNumber = - ((TimeTicks &)in_val).smival.value.uNumber; - valid_flag = 1; - break; - } - } - return *this; -} - -// otherwise, behave like an unsigned long -TimeTicks::operator unsigned long() -{ - return smival.value.uNumber; -} - - -// ASCII format return -const char * TimeTicks::to_string() - /* Should do something nicer like days:hours:minutes... */ -{ - unsigned long tt, hseconds, seconds, minutes, hours, days; - tt = this->smival.value.uNumber; - - // days - days = tt / 8640000; - tt %= 8640000; - - // hours - hours = tt / 360000; - tt %= 360000; - - // minutes - minutes = tt / 6000; - tt %= 6000; - - seconds = tt / 100; - tt %= 100; - - hseconds = tt; - - if ( days ==0) - 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, - minutes,seconds,hseconds); - else - 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/timetick.h b/ACE/ASNMP/asnmp/timetick.h deleted file mode 100644 index ca52a3e1d9d..00000000000 --- a/ACE/ASNMP/asnmp/timetick.h +++ /dev/null @@ -1,85 +0,0 @@ -/* -*-C++-*- */ -#ifndef TIMETICKS_ -#define TIMETICKS_ -//============================================================================= -/** - * @file timetick.h - * - * $Id$ - * - * Class definition for SMI Timeticks class. - * - * - * @author Michael R. MacFaden - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/integer.h" - -#define TICKOUTBUF 30 // max formatted time string - -//------------[ TimeTicks Class ]----------------------------------- -// The timeticks class allows all the functionality of unsigned -// integers but is recognized as a distinct SMI type. TimeTicks -// objects may be get or set into Vb objects. -// -/** - * @class TimeTicks - * - * @brief Define RFC1155 TimeTicks Data object - */ -class ASNMP_Export TimeTicks : public SnmpUInt32 - -{ - - public: - TimeTicks( const unsigned long i = 0); - - /// copy constructor - TimeTicks( const TimeTicks &t); - - /// destructor - ~TimeTicks(); - - /// syntax type - SmiUINT32 get_syntax(); - - /// get a printable ASCII value - const char *to_string(); - - /// create a new instance of this Value - SnmpSyntax *clone() const; - - /// copy an instance of this Value - SnmpSyntax& operator=(SnmpSyntax &val); - - /// overloaded assignment - TimeTicks& operator=( const TimeTicks &uli); - - /// overloaded assignment - TimeTicks& operator=( const unsigned long int i); - - /// otherwise, behave like an unsigned long - operator unsigned long(); - - protected: - /// for storing printed form - char output_buffer[TICKOUTBUF]; -}; -#endif // TIMETICKS_ diff --git a/ACE/ASNMP/asnmp/transaction.cpp b/ACE/ASNMP/asnmp/transaction.cpp deleted file mode 100644 index de3afcf8a36..00000000000 --- a/ACE/ASNMP/asnmp/transaction.cpp +++ /dev/null @@ -1,207 +0,0 @@ -// $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 -// ============================================================================ - -#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) -{ - io.iov_base = 0; - io.iov_len = 0; -} - -transaction::transaction(const Pdu& pdu, const UdpTarget& target, - ACE_SOCK_Dgram& io): - result_(0), - wp_(pdu,target), params_(target), session_(io) -{ - // last step, convert address (get ride of this once we have merged address - UdpAddress udp; - target.get_address(udp); - // via string conversion "dotted-quad:port" - ACE_INET_Addr tmp(udp); - addr_ = tmp; - reset_receive_buffer(receive_iovec_); -} - -transaction::~transaction() -{ - ACE_Reactor::instance()->remove_handler(this, READ_MASK | DONT_CALL); - ACE_Reactor::instance()->cancel_timer(this); - - delete [] (char *) receive_iovec_.iov_base; -} - -// implement state machine, send, wait (timeout/results) return -int transaction::run() -{ - int rc, done = 0; - int retry_counter = 0; - ACE_Time_Value to(params_.get_timeout(), 0); // seconds - ACE_Reactor *reactor = ACE_Reactor::instance (); - - // 1. register io port for read access - if (reactor->register_handler(session_.get_handle(), this, - ACE_Event_Handler::READ_MASK) == -1) - return SNMP_CLASS_INTERNAL_ERROR; - - // register a time handler and a socket with this - - while (!done) { - - if ((rc = this->send()) < 0) // send pkt to agent - return rc; - else { - if (retry_counter++ > params_.get_retry()) - return SNMP_CLASS_TIMEOUT; - } - - // 2. wait for events (timeout, returned msg) - if (( rc = reactor->handle_events (to)) == 1) // one handler registered - return 0; - else { - if (rc == 0) { - to.set(params_.get_timeout(), 0); - } - else - return SNMP_CLASS_INTERNAL_ERROR; - } - } - return SNMP_CLASS_INTERNAL_ERROR; -} - -// implement state machine, send, wait (timeout/results) return -int transaction::run(transaction_result * r) -{ - result_ = r; - int rc; - - // 1. register io port for read access - ACE_Reactor * reactor = ACE_Reactor::instance(); - if (reactor->register_handler(session_.get_handle(), - this, - READ_MASK) == -1) - return SNMP_CLASS_INTERNAL_ERROR; - - retry_counter_ = 0; - - // register a time handler and a socket with this - ACE_Time_Value to (params_.get_timeout()); - if (reactor->schedule_timer(this, 0, to, to) < 0) - return SNMP_CLASS_INTERNAL_ERROR; - - if ((rc = this->send()) < 0) // send pkt to agent - return rc; - return 0; -} - -// got back response from SNMPv1 agent - process it -int transaction::handle_input (ACE_HANDLE) -{ - // OS allocates iovec_.iov_base ptr and len - delete [] (char*) receive_iovec_.iov_base; - reset_receive_buffer(receive_iovec_); - int rc = session_.recv(&receive_iovec_, receive_addr_, 0); - if (rc == -1) - { - delete [] (char*) receive_iovec_.iov_base; - reset_receive_buffer(receive_iovec_); - if (result_) - result_->result(this, SNMP_CLASS_RESOURCE_UNAVAIL); - return SNMP_CLASS_RESOURCE_UNAVAIL; - } - if (result_) - result_->result(this, rc); - - return 0; -} - -int transaction::handle_timeout(const ACE_Time_Value &, - const void *) -{ - if (this->send() < 0) // send pkt to agent - result_->result(this, 0); - else - if (retry_counter_++ > params_.get_retry()) - result_->result(this, SNMP_CLASS_TIMEOUT); - - return 0; -} - - -const ACE_INET_Addr& transaction::get_from_addr() const -{ - return receive_addr_; -} - - -// return pdu to caller -int transaction::result(Pdu& pdu, char *comm_str, ACE_INET_Addr *from) -{ - // TODO: check to see the sender matches the receiver address.. - - // remove any vbs existing in this pdu - pdu.delete_all_vbs(); - - // any data to return? - if (receive_iovec_.iov_len == 0) - return -1; - - wpdu tmp(receive_iovec_); - - snmp_version ver; - - // return comm str and from address of incomming pdu if requested - int rc = tmp.get_pdu(pdu, ver); - if (comm_str) - ACE_OS::strcpy(comm_str, (char *)tmp.get_community()); - if (from) - *from = receive_addr_; - return rc; -} - -transaction::transaction(ACE_SOCK_Dgram& io) -: result_(0), session_(io) -{ - reset_receive_buffer(receive_iovec_); -} - - -int transaction::send() -{ - iovec io = wp_.get_buffer(); - if (io.iov_len == 0) { - // NO DATA ? - return -1; - } - ssize_t rc = session_.send (io.iov_base, io.iov_len, addr_ , 0); - return rc; -} - -transaction_result::~transaction_result() {} - -ACE_HANDLE -transaction::get_handle () const -{ - return session_.get_handle (); -} diff --git a/ACE/ASNMP/asnmp/transaction.h b/ACE/ASNMP/asnmp/transaction.h deleted file mode 100644 index d114bd40d1f..00000000000 --- a/ACE/ASNMP/asnmp/transaction.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -*-C++-*- */ -#ifndef TRANSACTION_ -#define TRANSACTION_ -//============================================================================= -/** - * @file transaction.h - * - * $Id$ - * - * @brief - * - * @author Michael R. MacFaden port to ACE / use Reactor pattern - */ -//============================================================================= - - -#include "ace/Event_Handler.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "asnmp/target.h" -#include "asnmp/pdu.h" -#include "asnmp/transaction_result.h" -#include "asnmp/wpdu.h" // cmu adapter class -#include "ace/SOCK_Dgram.h" - -/** - * @class transaction - * - * @brief Used to manage the details of a particular transaction betwen - * two SNMP agents. Uses SnmpTarget class to implement retry/timeout - */ -class ASNMP_Export transaction : public ACE_Event_Handler - -{ - int retry_counter_; - transaction_result * result_; - -public: - /// constructor - /// destructor - transaction(const Pdu& pdu, const UdpTarget& target, ACE_SOCK_Dgram& io); - transaction(ACE_SOCK_Dgram& io); - ~transaction(); - - /// begin polling for values - int run(); - int run(transaction_result *r); // Async interface, with callback object - - /// return pdu with result from agent after run() is completed rc = 0 - /// optionally get community str - int result(Pdu& pdu, char *comm_str = 0, ACE_INET_Addr *from_addr = 0); - - /// called by reactor when data is ready to be read in from OS memory - /// used for resend in asynchronous run() - virtual int handle_input (ACE_HANDLE fd); - virtual int handle_timeout (const ACE_Time_Value &, const void *); - - /// transmit buffer command to network... - int send(); - - /// pre: handle_input called - /// retrieve the sender's from address from the last pkt - const ACE_INET_Addr& get_from_addr() const; - - /// Return session_ handle. - ACE_HANDLE get_handle () const; - -private: - /// disallow copy construction - transaction(const transaction&); - - wpdu wp_; // wire pdu - UdpTarget params_; // params - ACE_INET_Addr addr_; // to address - ACE_SOCK_Dgram session_; // io object - iovec receive_iovec_; // receive buffer - ACE_INET_Addr receive_addr_; // from address -}; - -#endif // TRANSACTION_ diff --git a/ACE/ASNMP/asnmp/transaction_result.h b/ACE/ASNMP/asnmp/transaction_result.h deleted file mode 100644 index 9ea94c60e8e..00000000000 --- a/ACE/ASNMP/asnmp/transaction_result.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -*-C++-*- */ -#ifndef TRANSACTION_RESULT_H_ -#define TRANSACTION_RESULT_H_ -//============================================================================= -/** - * @file transaction_result.h - * - * $Id$ - * - * An object respresenting a request/reply operation between mgr/agent - * - * - * @author Michael R. MacFaden - */ -//============================================================================= - - -class transaction; -class ASNMP_Export transaction_result -{ - public: - virtual ~transaction_result(); - virtual void result(transaction * trans, int) = 0; -}; - -#endif diff --git a/ACE/ASNMP/asnmp/vb.cpp b/ACE/ASNMP/asnmp/vb.cpp deleted file mode 100644 index 4e94b5e81b9..00000000000 --- a/ACE/ASNMP/asnmp/vb.cpp +++ /dev/null @@ -1,399 +0,0 @@ -// $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 -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/oid.h" // include oid class defs -#include "asnmp/vb.h" // include vb class defs -#include "asnmp/snmperrs.h" // error codes -#include "ace/OS_NS_stdio.h" -#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 -Vb::Vb( void): output_(0), iv_vb_value_(0), - exception_status_(SNMP_CLASS_SUCCESS) -{ -} - -//---------------[ Vb::Vb( const Oid &oid) ]----------------------------- -// constructor to initialize the oid -// makes a vb with oid portion initialized -Vb::Vb( const Oid &oid): output_(0), iv_vb_oid_(oid), iv_vb_value_(0), - exception_status_(SNMP_CLASS_SUCCESS) -{ -} - -//---------------[ Vb::Vb( const Oid &oid, const SmiSyntax &val) ]------- -Vb::Vb( const Oid &oid, const SnmpSyntax &val, const SmiUINT32 status): - output_(0), iv_vb_oid_(oid), iv_vb_value_(0), exception_status_(status) -{ - // iv_vb_value_ = recast_smi_object(val); // allocate and construct object - iv_vb_value_ = val.clone(); -} - -//---------------[ Vb::Vb( const Vb &vb) ]----------------------------- -// copy constructor -Vb::Vb( const Vb &vb): output_(0), iv_vb_value_(0) -{ - *this = vb; -} - -//---------------[ Vb::~Vb() ]------------------------------------------ -// destructor -// if the vb has a oid or an octect string then -// the associated memory needs to be freed -Vb::~Vb() -{ - free_vb(); - delete [] output_; // formatting buffer if it exists -} - - -//--------------[ Vb::valid() ]----------------------------------------- -// returns validity of a Vb object -// must have a valid oid and value -int Vb::valid() const -{ - if ( iv_vb_oid_.valid() && (iv_vb_value_ && iv_vb_value_->valid()) ) - return 1; - else - return 0; -} - - -//---------------[ Vb& Vb::operator=( const Vb &vb) ]-------------------- -// overloaded assignment allows assigning one Vb to another -// this involves deep memory thus target vb needs to be freed -// before assigning source -Vb& Vb::operator=( const Vb &vb) -{ - free_vb(); // free up target to begin with - - //-----[ reassign the Oid portion 1st ] - vb.get_oid( iv_vb_oid_); - - //-----[ next set the vb value portion ] - if (vb.iv_vb_value_ == 0) { - iv_vb_value_ = 0; - } - else { - iv_vb_value_ = vb.iv_vb_value_->clone(); - } - exception_status_ = vb.exception_status_; - - return *this; // return self reference -} - - // set a Vb null, if its not already -void Vb::set_null() -{ - free_vb(); -} - -//---------------[ Vb::set_oid( const Oid oid ) ]----------------------- -// set value oid only with another oid -void Vb::set_oid( const Oid& oid) -{ - iv_vb_oid_ = oid; -} - -//---------------[ Vb::get_oid( Oid &oid) ]----------------------------- -// get oid portion -void Vb::get_oid( Oid &oid) const -{ - oid = iv_vb_oid_; -} - -//----------------[ void Vb::free_vb() ]-------------------------------- -// protected method to free memory -// this methos is used to free memory when assigning new vbs -// or destructing -// in the case of oids and octets, we need to do a deep free -void Vb::free_vb() -{ - if (iv_vb_value_) - delete iv_vb_value_; - exception_status_ = SNMP_CLASS_SUCCESS; - iv_vb_value_ = 0; -} - -void Vb::set_value( const SnmpInt32& i) -{ - free_vb(); - iv_vb_value_ = (SnmpSyntax *)new SnmpInt32(i); -} - -void Vb::set_value( const SnmpUInt32& u) -{ - free_vb(); - iv_vb_value_ = (SnmpSyntax *)new SnmpUInt32(u); -} - -void Vb::set_value( const Gauge32& g) -{ - free_vb(); - iv_vb_value_ = (SnmpSyntax *)new Gauge32(g); -} - -void Vb::set_value( const Counter32& c) -{ - free_vb(); - iv_vb_value_ = (SnmpSyntax *)new Counter32(c); -} - -void Vb::set_value( const Counter64& c) -{ - free_vb(); - iv_vb_value_ = (SnmpSyntax *)new Counter64(c); -} - -void Vb::set_value( const TimeTicks& t) -{ - free_vb(); - iv_vb_value_ = (SnmpSyntax *)new TimeTicks(t); -} - -void Vb::set_value( const OctetStr& s) -{ - free_vb(); - iv_vb_value_ = (SnmpSyntax *)new OctetStr(s); -} - -void Vb::set_value( const Oid& o) -{ - free_vb(); - iv_vb_value_ = (SnmpSyntax *)new Oid(o); -} - -void Vb::set_value ( const SnmpSyntax &val) -{ - free_vb(); - iv_vb_value_ = val.clone(); -} - -int Vb::get_value( SnmpInt32 &i) -{ - if (iv_vb_value_ && - iv_vb_value_->valid() && - (iv_vb_value_->get_syntax() == sNMP_SYNTAX_INT32 )) { - i = *((SnmpInt32 *) iv_vb_value_); - return SNMP_CLASS_SUCCESS; - } - else - return SNMP_CLASS_INVALID; -} - -int Vb::get_value( SnmpUInt32 &u) -{ - if (iv_vb_value_ && iv_vb_value_->valid()) - { - SmiUINT32 syntax = iv_vb_value_->get_syntax(); - if (syntax == sNMP_SYNTAX_GAUGE32 || - syntax == sNMP_SYNTAX_CNTR32 || - syntax == sNMP_SYNTAX_TIMETICKS || - syntax == sNMP_SYNTAX_UINT32) - { - u = *((SnmpUInt32 *) iv_vb_value_); - return SNMP_CLASS_SUCCESS; - } - } - return SNMP_CLASS_INVALID; -} - -/* return a uint or a gauge. this is casting, but no semantic difference - * at this level - */ -int Vb::get_value( Gauge32 &g) -{ - if (iv_vb_value_ && - iv_vb_value_->valid() && - ((iv_vb_value_->get_syntax() == sNMP_SYNTAX_GAUGE32) || - iv_vb_value_->get_syntax() == sNMP_SYNTAX_UINT32) ) { - g = *((Gauge32 *) iv_vb_value_); - return SNMP_CLASS_SUCCESS; - } - else - return SNMP_CLASS_INVALID; -} - -int Vb::get_value( Counter32 &c) -{ - if (iv_vb_value_ && - iv_vb_value_->valid() && - (iv_vb_value_->get_syntax() == sNMP_SYNTAX_CNTR32 )) { - c = *((Counter32 *) iv_vb_value_); - return SNMP_CLASS_SUCCESS; - } - else - return SNMP_CLASS_INVALID; -} - -int Vb::get_value( Counter64 &c) -{ - if (iv_vb_value_ && - iv_vb_value_->valid() && - (iv_vb_value_->get_syntax() == sNMP_SYNTAX_CNTR64 )) { - c = *((Counter32 *) iv_vb_value_); - return SNMP_CLASS_SUCCESS; - } - else - return SNMP_CLASS_INVALID; -} - -int Vb::get_value( TimeTicks &t) -{ - if (iv_vb_value_ && - iv_vb_value_->valid() && - (iv_vb_value_->get_syntax() == sNMP_SYNTAX_TIMETICKS )) { - t = *((TimeTicks *) iv_vb_value_); - return SNMP_CLASS_SUCCESS; - } - else - return SNMP_CLASS_INVALID; -} - -int Vb::get_value( OctetStr &s) -{ - if (iv_vb_value_ && - iv_vb_value_->valid() && - (iv_vb_value_->get_syntax() == sNMP_SYNTAX_OCTETS )) { - s = *((OctetStr *) iv_vb_value_); - return SNMP_CLASS_SUCCESS; - } - else - return SNMP_CLASS_INVALID; -} - -int Vb::get_value( Oid &s) -{ - if (iv_vb_value_ && - iv_vb_value_->valid() && - (iv_vb_value_->get_syntax() == sNMP_SYNTAX_OID )) { - s = *((Oid *) iv_vb_value_); - return SNMP_CLASS_SUCCESS; - } - else - return SNMP_CLASS_INVALID; -} - - -//---------------[ Vb::get_value( Value &val) ]-------- -int Vb::get_value( SnmpSyntax &val) -{ - if (iv_vb_value_) { - val = *iv_vb_value_; - if (val.valid()) - return SNMP_CLASS_SUCCESS; - else - return SNMP_CLASS_INVALID; - } - else - { -//TM: should set val to be invalid - return SNMP_CLASS_INVALID; - } -} - - - -//-----[ misc]-------------------------------------------------------- - -// return the current syntax -// This method violates Object Orientation but may be useful if -// the caller has a vb object and does not know what it is. -// This would be useful in the implementation of a browser. -SmiUINT32 Vb::get_syntax() -{ - if ( exception_status_ != SNMP_CLASS_SUCCESS) - return exception_status_; - else - return ( iv_vb_value_ ? iv_vb_value_->get_syntax() : sNMP_SYNTAX_NULL); -} - -// return the printabel value -const char *Vb::to_string_value() -{ - if (iv_vb_value_) - return iv_vb_value_->to_string(); - else - return ""; -} - -// return the printable oid -const char *Vb::to_string_oid() -{ - return iv_vb_oid_.to_string(); -} - -// generate string with name/ value format -const char *Vb::to_string() -{ - int len = ACE_OS::strlen(iv_vb_oid_.to_string()); - const char *ptr = iv_vb_value_ ? iv_vb_value_->to_string() : ""; - len += ACE_OS::strlen(ptr) + 3 + 1; // " / " + null - ACE_NEW_RETURN(output_, char[len], ""); - ACE_OS::sprintf(output_, "%s / %s", iv_vb_oid_.to_string(), ptr); - return output_; -} - -// friend function to set exception status -void set_exception_status( Vb *vb, const SmiUINT32 status) -{ - vb->exception_status_ = status; -} - -// equivlence operator overloaded -// hack, by side effect, compare based on string formatting output_ -bool operator==( const Vb &lhs, const Vb &rhs) -{ - if ( lhs.iv_vb_oid_ != rhs.iv_vb_oid_) - return false; - - if (lhs.iv_vb_value_ != 0 && rhs.iv_vb_value_ != 0) - { - const int val = - ACE_OS::strcmp (lhs.iv_vb_value_->to_string(), - rhs.iv_vb_value_->to_string()); - return !val; - } - else - return false; -} diff --git a/ACE/ASNMP/asnmp/vb.h b/ACE/ASNMP/asnmp/vb.h deleted file mode 100644 index b82adb2bc0e..00000000000 --- a/ACE/ASNMP/asnmp/vb.h +++ /dev/null @@ -1,207 +0,0 @@ - - -#ifndef VB_CLS_ -#define VB_CLS_ -//============================================================================= -/** - * @file vb.h - * - * $Id$ - * - * 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 - */ -//============================================================================= - -/*=================================================================== - 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. -=====================================================================*/ - -//----[ external calls ]---------------------------------------------- -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "asnmp/smival.h" -#include "asnmp/snmperrs.h" // V2c error def -#include "asnmp/oid.h" // oid class def -#include "asnmp/timetick.h" // time ticks -#include "asnmp/counter.h" // counter -#include "asnmp/gauge.h" // gauge class -#include "asnmp/ctr64.h" // 64 bit counters -#include "asnmp/octet.h" // octet class -#include "asnmp/address.h" // address class def -#include "asnmp/integer.h" // integer class - - -//------------[ VB Class Def ]------------------------------------- -// The Vb class is the encapsulation of the SNMP variable binding. -// Variable binding lists in SNMP++ are represented as arrays of -// Vb objects. Vb objects are passed to and from SNMP objects to -// provide getting or setting MIB values. -// The vb class keeps its own memory for objects and does not -// utilize pointers to external data structures. -// -/** - * @class Vb - * - * @brief Implement the concrete Variable Bindings aka Varbind - * composite type. Varbinds hold 1 Oid and 1 Value (Any SMI value) - */ -class ASNMP_Export Vb -{ -public: - /// constructor with no arguments - /// makes an vb, unitialized (does not make object valid) - Vb( void); - - /// constructor to initialize the oid - /// makes a vb with oid portion initialized (does not make object valid) - Vb( const Oid &oid); - - /// constructor to initialize the oid - /// makes a vb with oid portion and value portion initialized, (valid) - Vb( const Oid& vb, const SnmpSyntax &val, const SmiUINT32=SNMP_CLASS_SUCCESS); - - /// copy constructor - Vb( const Vb &vb); - - /** - * destructor - * if the vb has a oid or an octect string then - * the associated memory needs to be freed - */ - ~Vb(); - - /// return validity of Vb object (both oid and value set return 1 else 0) - int valid() const; - - /// assignment to another Vb object overloaded - Vb& operator=( const Vb &vb); - - /// equivlence operator overloaded - friend ASNMP_Export bool operator==( const Vb &lhs, const Vb &rhs); - - //-----[ set oid / get oid part]------------------------------------------ - - /// set value oid only with another oid - void set_oid( const Oid& oid); - - /// get oid portion - void get_oid( Oid &oid) const; - - //-----[ set value part]-------------------------------------------------- - - /// set a Vb null, if its not already - void set_null(); - - /// returns 0 on success and a value - void set_value( const TimeTicks& ticks); - - /// returns 0 on success and a value - void set_value( const Oid& oid); - - /// returns 0 on success and a value - void set_value( const Counter32& ctr); - - /// returns 0 on success and a value - void set_value( const Counter64& ctr); - - /// returns 0 on success and a value - void set_value( const Gauge32& ctr); - - /// returns 0 on success and a value - void set_value( const SnmpUInt32& ctr); - - /// returns 0 on success and a value - void set_value( const SnmpInt32& ctr); - - /// get an octet string object - void set_value( const OctetStr& oct_str); - - //----[ get value ]------------------------------------------------ - - /// returns 0 on success and a value - int get_value( TimeTicks& ticks); - - /// returns 0 on success and a value - int get_value( Oid& oid); - - /// returns 0 on success and a value - int get_value( Counter32& ctr); - - /// returns 0 on success and a value - int get_value( Counter64& ctr); - - /// returns 0 on success and a value - int get_value( Gauge32& ctr); - - /// returns 0 on success and a value - int get_value( SnmpUInt32& ctr); - - /// returns 0 on success and a value - int get_value( SnmpInt32& ctr); - - /// get an octet string object - int get_value( OctetStr& oct_str); - - // escape hatch - /// for other derived types that can be casted - void set_value( const SnmpSyntax &val); - - /// gets a general value - int get_value( SnmpSyntax &val); - - /// return the current syntax - /// Or.. if a V2 VB exception is present then return the exception value - SmiUINT32 get_syntax(); - - /// set the exception status - friend ASNMP_Export void set_exception_status( Vb *vb, const SmiUINT32 status); - - /// return fomatted version of this object - const char *to_string(); - - /// returns a formatted version of the value - const char *to_string_value(); - - /// returns a formatted version of the value - const char *to_string_oid(); - -protected: - /// display vb as [ oid / value ] - char *output_; - - /// a vb is made up of a oid - Oid iv_vb_oid_; - - /// and a value... - SnmpSyntax *iv_vb_value_; - - /// are there any vb exceptions?? - SmiUINT32 exception_status_; - - void free_vb(); -}; - -#endif // VB_CLS_ diff --git a/ACE/ASNMP/asnmp/wpdu.cpp b/ACE/ASNMP/asnmp/wpdu.cpp deleted file mode 100644 index e99ab66821e..00000000000 --- a/ACE/ASNMP/asnmp/wpdu.cpp +++ /dev/null @@ -1,523 +0,0 @@ -// $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 -// -// ============================================================================ - -#include "asnmp/wpdu.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_stdio.h" - -#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 -#define V1_LINK_DOWN 2 -#define V1_LINK_UP 3 -#define V1_AUTH_FAILURE 4 -#define V1_EGP_NEIGHBOR_LOSS 5 -#define V1_ENT_SPECIFIC 6 - -inline -void reset_iov(iovec& iov) -{ - iov.iov_base = 0; - iov.iov_len = 0; -} - -wpdu::wpdu(const Pdu& pdu, const UdpTarget& target): - valid_flag_(SNMP_CLASS_INVALID ), comm_len(MAX_COMM_STR_LEN) -{ - reset_iov(iovec_); - version_ = target.get_version(); - int status; - OctetStr comm_str; - - community_name[0] = 0; - - snmp_pdu *raw_pdu; // create a raw pdu - raw_pdu = cmu_snmp::pdu_create( (int) pdu.get_type()); - if (!raw_pdu) { - valid_flag_ = SNMP_CLASS_RESOURCE_UNAVAIL; - return; - } - - raw_pdu->reqid = pdu.get_request_id(); - raw_pdu->errstat= (unsigned long) pdu.get_error_status(); - raw_pdu->errindex= (unsigned long) pdu.get_error_index(); - - switch (raw_pdu->command) { - case sNMP_PDU_GET: - case sNMP_PDU_GETNEXT: - target.get_read_community(comm_str); - break; - - case sNMP_PDU_SET: - target.get_write_community(comm_str); - break; - - case sNMP_PDU_V1TRAP: - target.get_read_community(comm_str); - if (set_trap_info(raw_pdu, pdu)) // will free raw_pdu - return; - break; - case sNMP_PDU_RESPONSE: - break; - - default: - ACE_ASSERT(0); - return; - } - - if (load_vbs(raw_pdu, pdu)) { - cmu_snmp::free_pdu( raw_pdu); - valid_flag_ = SNMP_CLASS_RESOURCE_UNAVAIL; - return; - } - - // TODO: determine how big raw_pdu serializes out to - iovec_.iov_len = target.get_max_pdu_size(); - ACE_NEW(iovec_.iov_base, char [iovec_.iov_len]); - - // create raw byte stream - status = cmu_snmp::build( raw_pdu, - (unsigned char *)iovec_.iov_base, - (int *) &iovec_.iov_len, - target.get_version(), - comm_str.data(), - comm_str.length()); - if ( status != 0) { - valid_flag_ = SNMP_ERROR_WRONG_ENCODING; - cmu_snmp::free_pdu( raw_pdu); - return; - } - - cmu_snmp::free_pdu( raw_pdu); - valid_flag_ = SNMP_CLASS_SUCCESS; -} - -int wpdu::set_trap_info(snmp_pdu *raw_pdu, const Pdu& pdu) const -{ - Oid enterprise; - Oid trapid; // validate caller has set this correctly - pdu.get_notify_id( trapid); - if ( !trapid.valid() || trapid.length() < 2 ) { - cmu_snmp::free_pdu( raw_pdu); - return SNMP_CLASS_INVALID_NOTIFYID; - } - - - raw_pdu->specific_type=0; - - // TODO: object should emit numeric instead of this kind of mess... - if ( trapid == coldStart) - raw_pdu->trap_type = V1_COLD_START; // cold start - else if ( trapid == warmStart) - raw_pdu->trap_type = V1_WARM_START; // warm start - else if( trapid == linkDown) - raw_pdu->trap_type = V1_LINK_DOWN; // link down - else if ( trapid == linkUp) - raw_pdu->trap_type = V1_LINK_UP; // link up - else if ( trapid == authenticationFailure ) - raw_pdu->trap_type = V1_AUTH_FAILURE; // authentication failure - else if ( trapid == egpNeighborLoss) - raw_pdu->trap_type = V1_EGP_NEIGHBOR_LOSS; // egp neighbor loss - else { - raw_pdu->trap_type = V1_ENT_SPECIFIC; // enterprise specific - // last oid subid is the specific value - // if 2nd to last subid is "0", remove it - // enterprise is always the notify oid prefix - raw_pdu->specific_type = (int) trapid[(int) (trapid.length() - 1)]; - trapid.trim(1); - if ( trapid[(int)(trapid.length() - 1)] == 0 ) - trapid.trim(1); - enterprise = trapid; - } - - if ( raw_pdu->trap_type != V1_ENT_SPECIFIC) - pdu.get_notify_enterprise( enterprise); - if ( enterprise.length() > 0) { - // note!! To the contrary, enterprise OID val is - // copied here and raw_pdu->enterprise is freed in free_pdu - // as it should be (HDN) - // these are hooks into an SNMP++ oid - // and therefor the raw_pdu enterprise - // should not free them. null them out!! - SmiLPOID rawOid; - rawOid = enterprise.oidval(); - // HDN - enterprise is a local object, cannot simply assign pointer - //raw_pdu->enterprise = rawOid->ptr; - raw_pdu->enterprise_length = (int) rawOid->len; - ACE_NEW_RETURN(raw_pdu->enterprise, - oid[raw_pdu->enterprise_length],-1); - ACE_OS::memcpy((char *)raw_pdu->enterprise,(char *)rawOid->ptr, - raw_pdu->enterprise_length * sizeof(oid)); - } - - TimeTicks timestamp; - pdu.get_notify_timestamp( timestamp); - raw_pdu->time = ( unsigned long) timestamp; - - // HDN - set agent addr using the local hostname if possible - char localHostName[MAXHOSTNAMELEN]; - Snmp::get_host_name(localHostName, MAXHOSTNAMELEN); - if (ACE_OS::strlen(localHostName) > 0) { - GenAddress addr(localHostName); - OctetStr octet; - addr.to_octet(octet); - ACE_OS::memcpy(&(raw_pdu->agent_addr.sin_addr), - octet.data(), - octet.length()); - } - - return 0; -} - -wpdu::wpdu(const iovec& iov): valid_flag_(0),comm_len(MAX_COMM_STR_LEN) -{ - community_name[0] = 0; - reset_iov(iovec_); - version_ = version1; // TODO: figure where this should come from - ACE_NEW(iovec_.iov_base, char[iov.iov_len]); - if (!iovec_.iov_base) { - valid_flag_ = SNMP_CLASS_RESOURCE_UNAVAIL; - return; - } - - copy_iovec(iovec_, iov); - valid_flag_ = SNMP_CLASS_SUCCESS; -} - -wpdu::wpdu(): valid_flag_(0), comm_len(MAX_COMM_STR_LEN) -{ - community_name[0] = 0; - reset_iov(iovec_); - version_ = version1; // TODO: figure where this should come from -} - -int wpdu::valid() const -{ - return (valid_flag_ == SNMP_CLASS_SUCCESS); -} - -int wpdu::load_vbs(snmp_pdu *raw_pdu, const Pdu& pdu) -{ - int status = 0; - - // load up the payload - // for all Vbs in list, add them to the pdu - int vb_count; - Vb tempvb; - Oid tempoid; - SmiLPOID smioid; - SmiVALUE smival; - - vb_count = pdu.get_vb_count(); - - for (int z = 0; z < vb_count; z++) { - pdu.get_vb( tempvb, z); - tempvb.get_oid( tempoid); - smioid = tempoid.oidval(); - // what are we trying to convert here (vb oid part or value part) - status = convert_vb_to_smival( tempvb, &smival ); - if ( status != SNMP_CLASS_SUCCESS) - return status; - - // add the var to the raw pdu - cmu_snmp::add_var(raw_pdu, smioid->ptr, (int) smioid->len, &smival); - free_smival_descriptor( &smival); - } - - return status; -} - -// supports overlapped copies -// static -void wpdu::copy_iovec(iovec& dest, const iovec& src) -{ - if (&dest == &src) - return; - - ACE_OS::memmove( dest.iov_base, src.iov_base, src.iov_len); - dest.iov_len = src.iov_len; -} - -int wpdu::convert_vb_to_smival( Vb &tempvb, SmiVALUE *smival ) -{ - smival->syntax = tempvb.get_syntax(); - - switch ( smival->syntax ) { - - case sNMP_SYNTAX_NULL: - break; - - // case sNMP_SYNTAX_INT32: - case sNMP_SYNTAX_INT: - { - SnmpInt32 tmp; - tempvb.get_value(tmp); - smival->value.sNumber = tmp; - } - break; - - // case sNMP_SYNTAX_UINT32: - case sNMP_SYNTAX_GAUGE32: - case sNMP_SYNTAX_CNTR32: - case sNMP_SYNTAX_TIMETICKS: - { - SnmpUInt32 tmp; - tempvb.get_value(tmp); - smival->value.uNumber = tmp; - } - break; - - // case Counter64 - case sNMP_SYNTAX_CNTR64: - { - Counter64 c64; - tempvb.get_value(c64); - smival->value.hNumber.hipart = c64.high(); - smival->value.hNumber.lopart = c64.low(); - } - break; - - // OID syntax - case sNMP_SYNTAX_OID: - { - Oid tmpoid; - tmpoid.oidval(); - tempvb.get_value(tmpoid); - SmiLPOID smi = tmpoid.oidval(); - smival->value.oid.len = tmpoid.length(); - ACE_NEW_RETURN(smival->value.oid.ptr, - SmiUINT32 [smival->value.oid.len], 1); - ACE_OS::memcpy(smival->value.oid.ptr, smi->ptr, - smival->value.oid.len *sizeof(SmiUINT32)); - } - break; - - case sNMP_SYNTAX_BITS: - case sNMP_SYNTAX_OCTETS: - case sNMP_SYNTAX_IPADDR: - { - OctetStr os; - tempvb.get_value(os); - smival->value.string.ptr = 0; - smival->value.string.len = os.length(); - if ( smival->value.string.len > 0 ) { - ACE_NEW_RETURN(smival->value.string.ptr, - SmiBYTE [smival->value.string.len], 1); - if ( smival->value.string.ptr ) { - for (int i=0; i<(int) smival->value.string.len ; i++) - smival->value.string.ptr[i] = os[i]; - } - else { - smival->syntax = sNMP_SYNTAX_NULL; // invalidate the smival - return SNMP_CLASS_RESOURCE_UNAVAIL; - } - } - } - break; - - default: - ACE_DEBUG((LM_DEBUG, "wpdu::convert_vb_to_smival did not convert vb\n")); - // ACE_ASSERT(0); - } // switch - - return 0; -} - -// free a SMI value -void wpdu::free_smival_descriptor( SmiVALUE *smival ) -{ - switch ( smival->syntax ) { - case sNMP_SYNTAX_OCTETS: - case sNMP_SYNTAX_OPAQUE: - case sNMP_SYNTAX_IPADDR: - case sNMP_SYNTAX_BITS: // obsoleted in SNMPv2 Draft Std - delete [] smival->value.string.ptr; - break; - - case sNMP_SYNTAX_OID: - delete [] smival->value.oid.ptr; - break; - } - smival->syntax = sNMP_SYNTAX_NULL; -} - - -wpdu::~wpdu() -{ - delete [] (char*) iovec_.iov_base; -} - -const iovec& wpdu::get_buffer() const -{ - return iovec_; -} - -// return a pdu from a buffer -int wpdu::get_pdu(Pdu& pdu, snmp_version& version) -{ - if (iovec_.iov_len == 0) - return -1; // NO DATA - - snmp_pdu *raw_pdu; - raw_pdu = cmu_snmp::pdu_create(0); - if (!raw_pdu) { - return SNMP_CLASS_RESOURCE_UNAVAIL; - } - - // max value a client can send us - TODO: replace this with an - // api to get actual string length - int status = cmu_snmp::parse( raw_pdu, (unsigned char *)iovec_.iov_base, - community_name, comm_len, - version, iovec_.iov_len); - if (status != 0) - return SNMP_CLASS_INTERNAL_ERROR; - - community_name[comm_len] = 0; // set null based on returned length - set_request_id( &pdu, raw_pdu->reqid); - set_error_status( &pdu, (int) raw_pdu->errstat); - set_error_index( &pdu, (int) raw_pdu->errindex); - pdu.set_type( raw_pdu->command); - - if (restore_vbs(pdu, raw_pdu)) { - cmu_snmp::free_pdu(raw_pdu); - return SNMP_CLASS_INTERNAL_ERROR; - } - - cmu_snmp::free_pdu(raw_pdu); - return 0; -} - -int wpdu::restore_vbs(Pdu& pdu, const snmp_pdu *raw_pdu) const -{ - Vb tempvb; - Oid tempoid; - struct variable_list *vp; - - for(vp = raw_pdu->variables; vp; vp = vp->next_variable) { - - // extract the oid portion - tempoid.set_data( (unsigned long *)vp->name, - ( unsigned int) vp->name_length); - tempvb.set_oid( tempoid); - - // extract the value portion - switch(vp->type) { - - // octet string - case sNMP_SYNTAX_OCTETS: - case sNMP_SYNTAX_OPAQUE: - { - OctetStr octets( (char *) vp->val.string, - (long) vp->val_len); - tempvb.set_value( octets); - } - break; - - // object id - case sNMP_SYNTAX_OID: - { - Oid oid( (unsigned long*) vp->val.objid, - (int) vp->val_len); - tempvb.set_value( oid); - } - break; - - // timeticks - case sNMP_SYNTAX_TIMETICKS: - { - TimeTicks timeticks( (unsigned long) *(vp->val.integer)); - tempvb.set_value( timeticks); - } - break; - - // 32 bit counter - case sNMP_SYNTAX_CNTR32: - { - Counter32 counter32( (unsigned long) *(vp->val.integer)); - tempvb.set_value( counter32); - } - break; - - // ip address - case sNMP_SYNTAX_IPADDR: - { - char buffer[20]; - ACE_OS::sprintf( buffer,"%d.%d.%d.%d", - vp->val.string[0], - vp->val.string[1], - vp->val.string[2], - vp->val.string[3]); - IpAddress ipaddress( buffer); - tempvb.set_value( ipaddress); - } - break; - - // 32 bit integer - case sNMP_SYNTAX_INT: - { - SnmpInt32 int32( (long) *(vp->val.integer)); - tempvb.set_value( int32); - } - break; - - // 32 bit unsigned integer - case sNMP_SYNTAX_UINT32: - { - SnmpUInt32 uint32( (unsigned long) *(vp->val.integer)); - tempvb.set_value( uint32); - } - break; - - // v2 counter 64's - case sNMP_SYNTAX_CNTR64: - break; - - case sNMP_SYNTAX_NULL: - tempvb.set_null(); - break; - - // v2 vb exceptions - case sNMP_SYNTAX_NOSUCHOBJECT: - case sNMP_SYNTAX_NOSUCHINSTANCE: - case sNMP_SYNTAX_ENDOFMIBVIEW: - set_exception_status( &tempvb, vp->type); - break; - - default: - tempvb.set_null(); - - } // end switch - - // append the vb to the pdu - pdu += tempvb; - } - - return 0; -} - -const unsigned char *wpdu::get_community() const -{ - return community_name; -} diff --git a/ACE/ASNMP/asnmp/wpdu.h b/ACE/ASNMP/asnmp/wpdu.h deleted file mode 100644 index 7feec356bc8..00000000000 --- a/ACE/ASNMP/asnmp/wpdu.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -*-C++-*- */ -#ifndef WPDU_H_ -#define WPDU_H_ -//============================================================================= -/** - * @file wpdu.h - * - * $Id$ - * - * Adapter class. Converts a Pdu and GenTarget into a format - * that can be stuffed out a I/O port - * - * - * @author Michael R. MacFaden re-worked api - * @author use ACE APIPeter E Mellquist wrote original class snmpmsg - */ -//============================================================================= - - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "asnmp/asn1.h" -#include "asnmp/pdu.h" -#include "asnmp/target.h" - -// this is an adapter class, it peforms the following transformations -// PDU / Target -> iovec buffer -// iovec buffer -> PDU / Target -struct snmp_pdu; -/** - * @class wpdu - * - * @brief Implement an Adapter pattern between CMU SNMP and HP SNMP++ - */ -class ASNMP_Export wpdu -{ -public: - - /// construct CMU data from HP SNMP++ objects - /// construct HP SNMP++ objects from raw buffer via CMU SNMP datatypes - wpdu(const Pdu& pdu, const UdpTarget& target); - wpdu(const iovec& buffer); - wpdu(); // same as using iovec? - - ~wpdu(); - - /// constructor completed ok? rc = 1 else 0 - int valid() const; - - /// return raw data stream via CMU code - const iovec& get_buffer() const; - - /// return HP SNMP++ pdu - int get_pdu(Pdu& pdu, snmp_version& version); - - /// return community strptr - const unsigned char *get_community() const; - -private: - int convert_vb_to_smival( Vb &tempvb, SmiVALUE *smival ); - int load_vbs(snmp_pdu *raw_pdu, const Pdu& pdu); - int restore_vbs(Pdu& pdu, const snmp_pdu *raw_pdu) const; - void free_smival_descriptor( SmiVALUE *smival ); - static void copy_iovec(iovec& dest, const iovec& src); - int set_trap_info(snmp_pdu *raw_pdu, const Pdu& pdu) const; - - /// raw format - iovec iovec_; - - /// object construction state - int valid_flag_; - - /// snmp version - snmp_version version_; - - unsigned char community_name[MAX_COMM_STR_LEN]; - unsigned long comm_len; // = MAX_COMM_STR_LEN; -}; - -#endif // WPDU_H_ diff --git a/ACE/ASNMP/examples/Makefile.am b/ACE/ASNMP/examples/Makefile.am deleted file mode 100644 index ba48f01c667..00000000000 --- a/ACE/ASNMP/examples/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -SUBDIRS = \ - get \ - next \ - set \ - trap \ - walk - diff --git a/ACE/ASNMP/examples/get/Makefile.am b/ACE/ASNMP/examples/get/Makefile.am deleted file mode 100644 index 0c3a6e4ea95..00000000000 --- a/ACE/ASNMP/examples/get/Makefile.am +++ /dev/null @@ -1,62 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - -noinst_PROGRAMS = - -## Makefile.asnmp_example_get.am - -if !BUILD_USES_WCHAR - -noinst_PROGRAMS += get - -get_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -get_SOURCES = \ - get.cpp - -get_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -endif !BUILD_USES_WCHAR - -## Makefile.asnmp_example_get_async.am - -if !BUILD_USES_WCHAR - -noinst_PROGRAMS += get_async - -get_async_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -get_async_SOURCES = \ - get_async.cpp - -get_async_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -endif !BUILD_USES_WCHAR - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ASNMP/examples/get/get.cpp b/ACE/ASNMP/examples/get/get.cpp deleted file mode 100644 index 1829c381442..00000000000 --- a/ACE/ASNMP/examples/get/get.cpp +++ /dev/null @@ -1,206 +0,0 @@ -// $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 -// -// ============================================================================ - -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/snmp.h" -#include "ace/Argv_Type_Converter.h" -#include "ace/Get_Opt.h" - -// FUZZ: disable check_for_streams_include -#include "ace/streams.h" - -ACE_RCSID(get, get, "$Id$") - -// -// SNMPv1 Get Application -// -class getapp { - public: - getapp(int argc, char **argv); // process command line args - int valid() const; // verify transaction can proceed - int run(); // issue transaction - static void usage(); // operator help message - - private: - getapp(const getapp&); - - UdpAddress address_; - Pdu pdu_; // construct a request Pdu - Oid oid_; - OctetStr community_; - Snmp snmp_; - UdpTarget target_; - int valid_; -}; - - -// main entry point -int main( int argc, char *argv[]) -{ - getapp get(argc, argv); - if (get.valid()) - return get.run(); - else - getapp::usage(); - return 1; -} - -int getapp::valid() const -{ - return valid_; -} -getapp::getapp(int argc, char *argv[]): valid_(0) -{ - Oid req, def_oid("1.3.6.1.2.1.1.1.0"); // default is sysDescr - if ( argc < 2) - return; - - address_ = argv[argc - 1]; - if ( !address_.valid()) { - cout << "ERROR: Invalid IPv4 address or DNS hostname: " \ - << argv[argc] << "\n"; - return; - } - - ACE_Argv_Type_Converter to_tchar (argc, argv); - ACE_Get_Opt get_opt (argc, - to_tchar.get_TCHAR_argv (), - ACE_TEXT ("o:c:r:t:p:")); - for (int c; (c = get_opt ()) != -1; ) - switch (c) - { - case 'o': - req = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - if (req.valid() == 0) - cout << "ERROR: oid value: " - << ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()) - << "is not valid. using default.\n"; - break; - - case 'c': - community_ = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - target_.set_read_community(community_); - break; - - case 'r': - target_.set_retry(ACE_OS::atoi (get_opt.opt_arg())); - break; - - case 't': - target_.set_timeout(ACE_OS::atoi (get_opt.opt_arg())); - break; - - default: - break; - } - - Vb vb; // construct a Vb object - if (req.valid()) - vb.set_oid( req); // set the Oid portion of the Vb - else { - vb.set_oid( def_oid); // set the Oid portion of the Vb - } - pdu_ += vb; - vb.get_oid(oid_); // store for later use - valid_ = 1; -} - -void getapp::usage() -{ - cout << "Usage:\n"; - cout << "get [options] dotted-quad | DNSName[:port]\n"; - cout << " -o OID defaults to 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n"; - cout << " -c Community_name, default is 'public' \n"; - cout << " -r N retries default is N = 1 retry\n"; - cout << " -t N timeout in seconds default is 1 second" << endl; -} - - -int getapp::run() -{ - - //----------[ create a ASNMP session ]----------------------------------- - if ( snmp_.valid() != SNMP_CLASS_SUCCESS) { - cout << "\nASNMP:ERROR:Create session failed: "<< - snmp_.error_string()<< "\n"; - return 1; - } - - //--------[ build up ASNMP object needed ]------------------------------- - if (address_.get_port() == 0) - address_.set_port(DEF_AGENT_PORT); - target_.set_address( address_); // make a target using the address - - //-------[ issue the request, blocked mode ]----------------------------- - cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \ - " GET SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n"; - target_.get_address(address_); // target updates port used - int rc; - const char *name = address_.resolve_hostname(rc); - - cout << "Device: " << address_ << " "; - - //FUZZ: disable check_for_lack_ACE_OS - cout << (rc ? "<< did not resolve via gethostbyname() >>" : name) << "\n"; - //FUZZ: enable check_for_lack_ACE_OS - - cout << "[ Retries=" << target_.get_retry() << " \ - Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \ - community_.to_string() << " ]"<< endl; - - if (snmp_.get( pdu_, target_) == SNMP_CLASS_SUCCESS) { - Vb vb; - // check to see if there are any errors - if (pdu_.get_error_status()) { - cout << "ERROR: agent replied as follows\n"; - cout << pdu_.agent_error_reason() << endl; - } - else { - VbIter iter(pdu_); - while (iter.next(vb)) { - cout << "\tOid = " << vb.to_string_oid() << "\n"; - cout << "\tValue = " << vb.to_string_value() << "\n"; - } - } - } - else { - const char *ptr = snmp_.error_string(); - cout << "ASNMP:ERROR: get command failed reason: " << ptr << endl; - } - - cout << "\nASNMP:INFO: command completed normally.\n"<< endl; - return 0; -} - diff --git a/ACE/ASNMP/examples/get/get.mpc b/ACE/ASNMP/examples/get/get.mpc deleted file mode 100644 index ffa5a2a5f53..00000000000 --- a/ACE/ASNMP/examples/get/get.mpc +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - -project (asnmp_example_get) : aceexe { - exename = get - after += asnmp_lib - libs += asnmp - avoids += uses_wchar - includes += $(ACE_ROOT)/ASNMP - source_files { - get.cpp - } -} - -project (asnmp_example_get_async) : aceexe { - exename = get_async - after += asnmp_lib - libs += asnmp - avoids += uses_wchar - includes += $(ACE_ROOT)/ASNMP - source_files { - get_async.cpp - } -} diff --git a/ACE/ASNMP/examples/get/get_async.cpp b/ACE/ASNMP/examples/get/get_async.cpp deleted file mode 100644 index 163d559f58e..00000000000 --- a/ACE/ASNMP/examples/get/get_async.cpp +++ /dev/null @@ -1,215 +0,0 @@ -// ============================================================================ -// $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 -// -// ============================================================================ - -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/snmp.h" -#include "ace/Argv_Type_Converter.h" -#include "ace/Get_Opt.h" - -// 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 - int valid() const; // verify transaction can proceed - int run(); // issue transaction - static void usage(); // operator help message - - virtual void result(Snmp * r, int rc); - - private: - getapp(const getapp&); - - UdpAddress address_; - Pdu pdu_; // construct a request Pdu - Oid oid_; - OctetStr community_; - Snmp snmp_; - UdpTarget target_; - int valid_; -}; - - -// main entry point -int main( int argc, char *argv[]) -{ - getapp get(argc, argv); - if (get.valid()) - return get.run(); - else - getapp::usage(); - return 1; -} - -int getapp::valid() const -{ - return valid_; -} -getapp::getapp(int argc, char *argv[]): valid_(0) -{ - Oid req, def_oid("1.3.6.1.2.1.1.1.0"); // default is sysDescr - if ( argc < 2) - return; - - address_ = argv[argc - 1]; - if ( !address_.valid()) { - cout << "ERROR: Invalid IPv4 address or DNS hostname: " \ - << argv[argc] << "\n"; - return; - } - - ACE_Argv_Type_Converter to_tchar (argc, argv); - ACE_Get_Opt get_opt (argc, - to_tchar.get_TCHAR_argv (), - ACE_TEXT ("o:c:r:t:p:")); - for (int c; (c = get_opt ()) != -1; ) - switch (c) - { - case 'o': - req = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - if (req.valid() == 0) - cout << "ERROR: oid value: " - << ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()) - << "is not valid. using default.\n"; - break; - - case 'c': - community_ = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - target_.set_read_community(community_); - break; - - case 'r': - target_.set_retry(ACE_OS::atoi (get_opt.opt_arg())); - break; - - case 't': - target_.set_timeout(ACE_OS::atoi (get_opt.opt_arg())); - break; - - default: - break; - } - - Vb vb; // construct a Vb object - if (req.valid()) - vb.set_oid( req); // set the Oid portion of the Vb - else { - vb.set_oid( def_oid); // set the Oid portion of the Vb - } - pdu_ += vb; - vb.get_oid(oid_); // store for later use - valid_ = 1; -} - -void getapp::usage() -{ - cout << "Usage:\n"; - cout << "get [options] dotted-quad | DNSName[:port]\n"; - cout << " -o OID defaults to 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n"; - cout << " -c Community_name, default is 'public' \n"; - cout << " -r N retries default is N = 1 retry\n"; - cout << " -t N timeout in seconds default is 1 second" << endl; -} - - -int getapp::run() -{ - - //----------[ create a ASNMP session ]----------------------------------- - if ( snmp_.valid() != SNMP_CLASS_SUCCESS) { - cout << "\nASNMP:ERROR:Create session failed: "<< - snmp_.error_string()<< "\n"; - return 1; - } - - //--------[ build up ASNMP object needed ]------------------------------- - if (address_.get_port() == 0) - address_.set_port(DEF_AGENT_PORT); - target_.set_address( address_); // make a target using the address - - //-------[ issue the request, blocked mode ]----------------------------- - cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \ - " GET SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n"; - target_.get_address(address_); // target updates port used - int rc; - const char *name = address_.resolve_hostname(rc); - - cout << "Device: " << address_ << " "; - - //FUZZ: disable check_for_lack_ACE_OS - cout << (rc ? "<< did not resolve via gethostbyname() >>" : name) << "\n"; - //FUZZ: enable check_for_lack_ACE_OS - - cout << "[ Retries=" << target_.get_retry() << " \ - Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \ - community_.to_string() << " ]"<< endl; - - if (snmp_.get( pdu_, target_, this) != SNMP_CLASS_SUCCESS) { - const char *ptr = snmp_.error_string(); - cout << "ASNMP:ERROR: get command failed reason: " << ptr << endl; - } else { - ACE_Reactor::instance()->run_reactor_event_loop(); - } - return 0; -} - -void getapp::result(Snmp *, int rc) -{ - Vb vb; - if (rc < 0) - { - const char *ptr = snmp_.error_string(); - cout << "ASNMP:ERROR: get command failed reason: " << ptr << endl; - } else { - // check to see if there are any errors - if (pdu_.get_error_status()) { - cout << "ERROR: agent replied as follows\n"; - cout << pdu_.agent_error_reason() << endl; - } - else { - VbIter iter(pdu_); - while (iter.next(vb)) { - cout << "\tOid = " << vb.to_string_oid() << "\n"; - cout << "\tValue = " << vb.to_string_value() << "\n"; - } - } - } - cout << "\nASNMP:INFO: command completed normally.\n"<< endl; - ACE_Reactor::instance()->end_reactor_event_loop(); -} diff --git a/ACE/ASNMP/examples/next/Makefile.am b/ACE/ASNMP/examples/next/Makefile.am deleted file mode 100644 index a7b4c2a1256..00000000000 --- a/ACE/ASNMP/examples/next/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.asnmp_example_next.am - -if !BUILD_USES_WCHAR - -noinst_PROGRAMS = next - -next_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -next_SOURCES = \ - next.cpp - -next_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -endif !BUILD_USES_WCHAR - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ASNMP/examples/next/next.cpp b/ACE/ASNMP/examples/next/next.cpp deleted file mode 100644 index a246c1ce549..00000000000 --- a/ACE/ASNMP/examples/next/next.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// $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 -// -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/snmp.h" -#include "ace/Argv_Type_Converter.h" -#include "ace/Get_Opt.h" - -// FUZZ: disable check_for_streams_include -#include "ace/streams.h" - -ACE_RCSID(next, next, "$Id$") - -// -// SNMPv1 Get Next Application -// -class nextapp { - public: - nextapp(int argc, char **argv); // process command line args - int valid() const; // verify transaction can proceed - int run(); // issue transaction - static void usage(); // operator help message - - private: - nextapp(const nextapp&); - - UdpAddress address_; - Pdu pdu_; // construct a request Pdu - Oid oid_; - OctetStr community_; - Snmp snmp_; - UdpTarget target_; - int valid_; -}; - - -// main entry point -int main( int argc, char *argv[]) -{ - nextapp get(argc, argv); - if (get.valid()) - return get.run(); - else - nextapp::usage(); - return 1; -} - -int nextapp::valid() const -{ - return valid_; -} -nextapp::nextapp(int argc, char *argv[]): valid_(0) -{ - Oid req, def_oid("1.3.6.1.2.1.1.1.0"); // default is sysDescr - if ( argc < 2) - return; - - address_ = argv[argc - 1]; - if ( !address_.valid()) { - cout << "ERROR: Invalid IPv4 address or DNS hostname: " \ - << argv[argc] << "\n"; - return; - } - - ACE_Argv_Type_Converter to_tchar (argc, argv); - ACE_Get_Opt get_opt (argc, - to_tchar.get_TCHAR_argv (), - ACE_TEXT ("o:c:r:t:")); - for (int c; (c = get_opt ()) != -1; ) - switch (c) - { - case 'o': - req = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - if (req.valid() == 0) - cout << "ERROR: oid value: " - << ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()) - << "is not valid. using default.\n"; - break; - - case 'c': - community_ = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - target_.set_read_community(community_); - break; - - case 'r': - target_.set_retry(ACE_OS::atoi (get_opt.opt_arg())); - break; - - case 't': - target_.set_timeout(ACE_OS::atoi (get_opt.opt_arg())); - break; - - default: - break; - } - - Vb vb; // construct a Vb object - if (req.valid()) - vb.set_oid( req); // set the Oid portion of the Vb - else { - vb.set_oid( def_oid); // set the Oid portion of the Vb - } - pdu_ += vb; - vb.get_oid(oid_); // store for later use - valid_ = 1; -} - -void nextapp::usage() -{ - cout << "Usage:\n"; - cout << "next [options] dotted-quad | DNSName[:port]\n"; - cout << " -o OID starts with oid after 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n"; - cout << " -c Community_name, default is 'public' \n"; - cout << " -r N retries default is N = 1 retry\n"; - cout << " -t N timeout in seconds default is 1 second" << endl; -} - - -int nextapp::run() -{ - - //----------[ create a ASNMP session ]----------------------------------- - if ( snmp_.valid() != SNMP_CLASS_SUCCESS) { - cout << "\nASNMP:ERROR:Create session failed: "<< - snmp_.error_string()<< "\n"; - return 1; - } - - //--------[ build up ASNMP object needed ]------------------------------- - if (address_.get_port() == 0) - address_.set_port(DEF_AGENT_PORT); - target_.set_address( address_); // make a target using the address - - //-------[ issue the request, blocked mode ]----------------------------- - cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \ - " GET_NEXT SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n"; - target_.get_address(address_); // target updates port used - int rc; - const char *name = address_.resolve_hostname(rc); - - cout << "Device: " << address_ << " "; - - //FUZZ: disable check_for_lack_ACE_OS - cout << (rc ? "<< did not resolve via gethostbyname() >>" : name) << "\n"; - //FUZZ: enable check_for_lack_ACE_OS - - cout << "[ Retries=" << target_.get_retry() << " \ - Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \ - community_.to_string() << " ]"<< endl; - - if (snmp_.get_next( pdu_, target_) == SNMP_CLASS_SUCCESS) { - Vb vb; - // check to see if there are any errors - if (pdu_.get_error_status()) { - cout << "ERROR: agent replied as follows\n"; - cout << pdu_.agent_error_reason() << endl; - } - else { - VbIter iter(pdu_); - while (iter.next(vb)) { - cout << "\tOid = " << vb.to_string_oid() << "\n"; - cout << "\tValue = " << vb.to_string_value() << "\n"; - } - } - } - else { - const char *ptr = snmp_.error_string(); - cout << "ASNMP:ERROR: get_next command failed reason: " << ptr << endl; - } - cout << "ASNMP:INFO:command completed normally. ACE Rocks...\n"<< endl; - return 0; -} - diff --git a/ACE/ASNMP/examples/next/next.mpc b/ACE/ASNMP/examples/next/next.mpc deleted file mode 100644 index f0022cb46a2..00000000000 --- a/ACE/ASNMP/examples/next/next.mpc +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - -project (asnmp_example_next) : aceexe { - exename = next - after += asnmp_lib - libs += asnmp - avoids += uses_wchar - includes += $(ACE_ROOT)/ASNMP - source_files { - next.cpp - } -} - diff --git a/ACE/ASNMP/examples/set/Makefile.am b/ACE/ASNMP/examples/set/Makefile.am deleted file mode 100644 index 94f708ec8e1..00000000000 --- a/ACE/ASNMP/examples/set/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.asnmp_example_set.am - -if !BUILD_USES_WCHAR - -noinst_PROGRAMS = set - -set_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -set_SOURCES = \ - set.cpp - -set_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -endif !BUILD_USES_WCHAR - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ASNMP/examples/set/set.cpp b/ACE/ASNMP/examples/set/set.cpp deleted file mode 100644 index 8cd8752f48a..00000000000 --- a/ACE/ASNMP/examples/set/set.cpp +++ /dev/null @@ -1,275 +0,0 @@ -// $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 -// -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/snmp.h" -#include "ace/Argv_Type_Converter.h" -#include "ace/Get_Opt.h" - -// FUZZ: disable check_for_streams_include -#include "ace/streams.h" - -ACE_RCSID(set, set, "$Id$") - -// -// SNMPv1 Set Application -// -class set { - public: - set(int argc, char **argv); // process command line args - int valid() const; // verify transaction can proceed - int run(); // issue transaction - static void usage(); // operator help message - - private: - set(const set&); - - UdpAddress address_; - Pdu pdu_; // construct a request Pdu - Oid oid_; - OctetStr community_; - Snmp snmp_; - UdpTarget target_; - int valid_; -}; - - -// main entry point -int main( int argc, char *argv[]) -{ - set get(argc, argv); - if (get.valid()) - return get.run(); - else - set::usage(); - return 1; -} - -int -set::valid() const -{ - return valid_; -} - -set::set(int argc, char *argv[]): valid_(0) -{ - Vb vb; // construct a Vb object - Oid req; - if ( argc < 2) - return; - target_.get_write_community(community_); - address_ = argv[argc - 1]; - if ( !address_.valid()) { - cout << "ERROR: Invalid IPv4 address or DNS hostname: " \ - << argv[argc] << "\n"; - return; - } - - ACE_Argv_Type_Converter to_tchar (argc, argv); - ACE_Get_Opt get_opt (argc, - to_tchar.get_TCHAR_argv (), - ACE_TEXT ("o:c:r:t:I:U:C:G:T:O:S:P:")); - for (int c; (c = get_opt ()) != -1; ) - switch (c) - { - case 'o': - req = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - if (req.valid() == 0) - cout << "ERROR: oid value: " - << ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()) - << "is not valid. using default.\n"; - break; - - case 'c': - community_ = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - target_.set_write_community(community_); - break; - - case 'r': - target_.set_retry(ACE_OS::atoi (get_opt.opt_arg())); - break; - - case 't': - target_.set_timeout(ACE_OS::atoi (get_opt.opt_arg())); - break; - - case 'I': // Integer32 - { - SnmpInt32 o(ACE_OS::atoi(get_opt.opt_arg())); - vb.set_value(o); - pdu_ += vb; - } - break; - - case 'U': // Unsigned32 - { - SnmpUInt32 o(ACE_OS::atoi(get_opt.opt_arg())); - vb.set_value(o); - pdu_ += vb; - } - break; - - case 'C': // Counter32 - { - Counter32 o(ACE_OS::atoi(get_opt.opt_arg())); - vb.set_value(o); - pdu_ += vb; - } - break; - - case 'G': // Gauge32 - { - Gauge32 o(ACE_OS::atoi(get_opt.opt_arg())); - vb.set_value(o); - pdu_ += vb; - } - break; - - case 'T': // TimeTicks - { - TimeTicks o(ACE_OS::atoi(get_opt.opt_arg())); - vb.set_value(o); - pdu_ += vb; - } - break; - - case 'O': // Oid as a variable identifier - { - oid_ = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - vb.set_oid(oid_); // when value is set, pdu updated - } - break; - - case 'S': // Octet String - { - OctetStr o(ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg())); - vb.set_value(o); // set the Oid portion of the Vb - pdu_ += vb; - } - break; - - case 'P': // Oid String as a value - { - Oid o(ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg())); - vb.set_value(o); // set the Oid portion of the Vb - pdu_ += vb; - } - break; - - default: - break; - } - - // if user didn't set anything use defaults - if (pdu_.get_vb_count() == 0) { - Oid def_oid("1.3.6.1.2.1.1.4.0"); // defualt is sysName - OctetStr def_value("sysName.0 updated by ASNMP set command"); - vb.set_oid(def_oid); - vb.set_value(def_value); - pdu_ += vb; - cout << "INFO: using defaults, setting sysName to : " << \ - def_value.to_string() << endl; - } - - valid_ = 1; -} - -void set::usage() -{ - cout << "Usage:\n"; - cout << "next [options] dotted-quad | DNSName[:port]\n"; - cout << " -o OID starts with oid after 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n"; - cout << " -c Community_name, default is 'private' \n"; - cout << " -r N retries default is N = 1 retry\n"; - cout << " -t N timeout in seconds default is 1 second\n"; - cout << " -O oid_to_set -{I,U,G,S,P} value\n"; - cout << " where I=int32, U=uint32, G=gauge32, S=octet, P=oid" << endl; -} - - -int set::run() -{ - - //----------[ create a ASNMP session ]----------------------------------- - if ( snmp_.valid() != SNMP_CLASS_SUCCESS) { - cout << "\nASNMP:ERROR:Create session failed: "<< - snmp_.error_string()<< "\n"; - return 1; - } - - //--------[ build up ASNMP object needed ]------------------------------- - if (address_.get_port() == 0) - address_.set_port(DEF_AGENT_PORT); - target_.set_address( address_); // make a target using the address - - //-------[ issue the request, blocked mode ]----------------------------- - cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \ - " SET SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n"; - target_.get_address(address_); // target updates port used - int rc; - const char *name = address_.resolve_hostname(rc); - - cout << "Device: " << address_ << " "; - - //FUZZ: disable check_for_lack_ACE_OS - cout << (rc ? "<< did not resolve via gethostbyname() >>" : name) << "\n"; - //FUZZ: enable check_for_lack_ACE_OS - - cout << "[ Retries=" << target_.get_retry() << " \ - Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \ - community_.to_string() << " ]"<< endl; - - if (snmp_.set( pdu_, target_) == SNMP_CLASS_SUCCESS) { - Vb vb; - // check to see if there are any errors - if (pdu_.get_error_status()) { - cout << "ERROR: agent replied as follows\n"; - cout << pdu_.agent_error_reason() << endl; - } - else { - VbIter iter(pdu_); - while (iter.next(vb)) { - cout << "\tOid = " << vb.to_string_oid() << "\n"; - cout << "\tValue = " << vb.to_string_value() << "\n"; - } - } - } - else { - const char *ptr = snmp_.error_string(); - cout << "ASNMP:ERROR: set command failed reason: " << ptr << endl; - } - cout << "ASNMP:INFO:command completed normally.\n"<< endl; - return 0; -} - diff --git a/ACE/ASNMP/examples/set/set.mpc b/ACE/ASNMP/examples/set/set.mpc deleted file mode 100644 index bb40f93e6df..00000000000 --- a/ACE/ASNMP/examples/set/set.mpc +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - -project (asnmp_example_set) : aceexe { - exename = set - after += asnmp_lib - libs += asnmp - avoids += uses_wchar - includes += $(ACE_ROOT)/ASNMP - source_files { - set.cpp - } -} - diff --git a/ACE/ASNMP/examples/trap/Makefile.am b/ACE/ASNMP/examples/trap/Makefile.am deleted file mode 100644 index a60adce7d30..00000000000 --- a/ACE/ASNMP/examples/trap/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.asnmp_example_trap.am - -if !BUILD_USES_WCHAR - -noinst_PROGRAMS = trap - -trap_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -trap_SOURCES = \ - trap.cpp - -trap_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -endif !BUILD_USES_WCHAR - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ASNMP/examples/trap/trap.cpp b/ACE/ASNMP/examples/trap/trap.cpp deleted file mode 100644 index 29ef6e4b7d8..00000000000 --- a/ACE/ASNMP/examples/trap/trap.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// $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 -// -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/snmp.h" -#define DEFINE_TRAP_CONSTANTS_ -#include "asnmp/enttraps.h" // enterprise standard traps -#include "ace/Argv_Type_Converter.h" -#include "ace/Get_Opt.h" - -// FUZZ: disable check_for_streams_include -#include "ace/streams.h" - -ACE_RCSID(trap, trap, "$Id$") - -// -// SNMPv1 Trap Application -// -class trapapp { - public: - trapapp(int argc, char **argv); // process command line args - int valid() const; // verify transaction can proceed - int run(); // issue transaction - static void usage(); // operator help message - - private: - trapapp(const trapapp&); - - UdpAddress address_; - Pdu pdu_; // construct a request Pdu - Oid oid_; - OctetStr community_; - Snmp snmp_; - UdpTarget target_; - int valid_; -}; - - -// main entry point -int main( int argc, char *argv[]) -{ - trapapp get(argc, argv); - if (get.valid()) - return get.run(); - else - trapapp::usage(); - return 1; -} - -int trapapp::valid() const -{ - return valid_; -} -trapapp::trapapp(int argc, char *argv[]): valid_(0) -{ - Oid def_ent_oid("1.3.6.1.2.1.1.1.2.0.1"); // def enterprise oid - Oid ent, trap; // user specified values - - if ( argc < 2) // hostname mandatory - return; - - address_ = argv[argc - 1]; - if ( !address_.valid()) { - cout << "ERROR: Invalid IPv4 address or DNS hostname: " \ - << argv[argc] << "\n"; - return; - } - - ACE_Argv_Type_Converter to_tchar (argc, argv); - ACE_Get_Opt get_opt (argc, - to_tchar.get_TCHAR_argv (), - ACE_TEXT ("c:e:t:")); - for (int c; (c = get_opt ()) != -1; ) - switch (c) - { - case 'c': // community string - community_ = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - target_.set_read_community(community_); - break; - - case 'e': // trap oid to send - ent = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - break; - - case 't': // trap oid - trap = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - break;; - - default: - break; - } - - if (ent.valid()) - pdu_.set_notify_enterprise( ent); // set up the enterprise of the trap - else - pdu_.set_notify_enterprise( def_ent_oid); - - if (trap.valid()) - pdu_.set_notify_id( trap); // set the id of the trap - else - pdu_.set_notify_id( coldStart); // set the id of the trap - - Oid detail_oid("1.3.6.1.4.1.11.2.16.2"); - OctetStr detail_value("SNMP++ Trap Send Test"); - Vb vb(detail_oid, detail_value); - pdu_ += vb; - - pdu_.get_notify_id(oid_); // store for later use - valid_ = 1; -} - -void trapapp::usage() -{ - cout << "Usage:\n"; - cout << "trap [options] dotted-quad | DNSName[:port]\n"; - cout << " -c Community_name, default is 'public' \n"; - cout << " -r N retries default is N = 1 retry\n"; - cout << " -t N timeout in seconds default is 1 second" << endl; - cout << " -e oid enterprise oid default is 1.3.6.1.2.1.1.1.2.0.1\n"; - cout << " -O oid trap id default is coldStart 1.3.6.1.6.3.1.1.5.1\n"; -} - -int trapapp::run() -{ - if ( snmp_.valid() != SNMP_CLASS_SUCCESS) { - cout << "\nASNMP:ERROR:Create session failed: "<< - snmp_.error_string()<< "\n"; - return 1; - } - - if (address_.get_port() == 0) - address_.set_port(DEF_TRAP_PORT); - target_.set_address( address_); // make a target using the address - - //-------[ issue the request, blocked mode ]----------------------------- - cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \ - " TRAP GENERATOR SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n"; - target_.get_address(address_); // target updates port used - int rc; - const char *name = address_.resolve_hostname(rc); - - cout << "Device: " << address_ << " "; - - //FUZZ: disable check_for_lack_ACE_OS - cout << (rc ? "<< did not resolve via gethostbyname() >>" : name) << "\n"; - //FUZZ: enable check_for_lack_ACE_OS - - cout << "[ Community=" << community_.to_string() << " ]"<< endl; - - if (snmp_.trap( pdu_, target_) == SNMP_CLASS_SUCCESS) { - cout << "Trap was written to network...\n"; - } - else { - const char *ptr = snmp_.error_string(); - cout << "ASNMP:ERROR: trap command failed reason: " << ptr << endl; - } - - cout << "ASNMP:INFO:command completed normally.\n"<< endl; - return 0; -} - diff --git a/ACE/ASNMP/examples/trap/trap.mpc b/ACE/ASNMP/examples/trap/trap.mpc deleted file mode 100644 index d0d6dc8e897..00000000000 --- a/ACE/ASNMP/examples/trap/trap.mpc +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -project (asnmp_example_trap) : aceexe { - exename = trap - after += asnmp_lib - libs += asnmp - avoids += uses_wchar - includes += $(ACE_ROOT)/ASNMP - source_files { - trap.cpp - } -} diff --git a/ACE/ASNMP/examples/walk/Makefile.am b/ACE/ASNMP/examples/walk/Makefile.am deleted file mode 100644 index 9cff32a49de..00000000000 --- a/ACE/ASNMP/examples/walk/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.asnmp_example_walk.am - -if !BUILD_USES_WCHAR - -noinst_PROGRAMS = walk - -walk_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -walk_SOURCES = \ - walk.cpp - -walk_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -endif !BUILD_USES_WCHAR - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ASNMP/examples/walk/walk.cpp b/ACE/ASNMP/examples/walk/walk.cpp deleted file mode 100644 index 2e67e2b4438..00000000000 --- a/ACE/ASNMP/examples/walk/walk.cpp +++ /dev/null @@ -1,270 +0,0 @@ -// $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 -// -// ============================================================================ -/*=================================================================== - 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. -=====================================================================*/ - -#include "asnmp/snmp.h" -#include "ace/Argv_Type_Converter.h" -#include "ace/Get_Opt.h" -// FUZZ: disable check_for_streams_include -#include "ace/streams.h" - -ACE_RCSID(walk, walk, "$Id$") - -// -// SNMPv1 Walk Mib Application -// -class walkapp { - public: - walkapp(int argc, char **argv); // process command line args - int valid() const; // verify transaction can proceed - int run(); // issue transaction - static void usage(); // operator help message - - private: - walkapp(const walkapp&); - - UdpAddress address_; - Pdu pdu_; // construct a request Pdu - Oid oid_; - OctetStr community_; - Snmp snmp_; - UdpTarget target_; - int valid_; -}; - - -// main entry point -int main( int argc, char *argv[]) -{ - walkapp get(argc, argv); - if (get.valid()) - return get.run(); - else - walkapp::usage(); - return 1; -} - -int walkapp::valid() const -{ - return valid_; -} - -walkapp::walkapp(int argc, char *argv[]): valid_(0) -{ - Oid req, def_oid("1.3.6.1.2.1.1.1.0"); // default begin walk with MIBII - if ( argc < 2) - return; - - address_ = argv[argc - 1]; - if ( !address_.valid()) { - cout << "ERROR: Invalid IPv4 address or DNS hostname: " \ - << argv[argc] << "\n"; - return; - } - - ACE_Argv_Type_Converter to_tchar (argc, argv); - ACE_Get_Opt get_opt (argc, - to_tchar.get_TCHAR_argv (), - ACE_TEXT ("o:c:r:t:")); - for (int c; (c = get_opt ()) != -1; ) - switch (c) - { - case 'o': - req = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - if (req.valid() == 0) - cout << "ERROR: oid value: " - << ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()) - << "is not valid. using default.\n"; - break; - - case 'c': - community_ = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg()); - target_.set_read_community(community_); - break; - - case 'r': - target_.set_retry(ACE_OS::atoi (get_opt.opt_arg())); - break; - - case 't': - target_.set_timeout(ACE_OS::atoi (get_opt.opt_arg())); - break; - - default: - break; - } - - Vb vb; // construct a Vb object - if (req.valid()) - vb.set_oid( req); // set the Oid portion of the Vb - else { - vb.set_oid( def_oid); // set the Oid portion of the Vb - } - pdu_ += vb; - vb.get_oid(oid_); // store for later use - valid_ = 1; -} - -void walkapp::usage() -{ - cout << "Usage:\n"; - cout << "walk [options] dotted-quad | DNSName[:port]\n"; - cout << " -o OID starts with oid after 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n"; - cout << " -c Community_name, default is 'public' \n"; - cout << " -r N retries default is N = 1 retry\n"; - cout << " -t N timeout in seconds default is 1 second" << endl; -} - - -// -// simple mib iterator class -// -class MibIter { - public: - // Pdu must contain initial oid to begin with - MibIter(Snmp *snmp, Pdu& pdu, UdpTarget* target); - int next(Vb& vb, char *&err_reason); // return next oid in mib - - private: - Snmp *snmp_; - UdpTarget *target_; - Pdu pdu_; - Vb vb_; - int first_; // flag to obtain first entry - int valid_; // flag to obtain first entry -}; - -MibIter::MibIter(Snmp* snmp, Pdu& pdu, UdpTarget *target): - snmp_(snmp), target_(target), pdu_(pdu), first_(0), - valid_(0) -{ - // verify we have a valid oid to begin iterating with - Oid oid; - Vb vb; - pdu.get_vb(vb, 0); - vb.get_oid(oid); - if (oid.valid()) - valid_ = 1; -} - -// return vb of next oid in agent tree, return 1 else return 0, reason set -int MibIter::next(Vb& vb, char *& reason) -{ - int rc; - - if (valid_ == 0) // not valid object - return -1; - - // 1. poll for value - if (first_ == 0) { - rc = snmp_->get( pdu_, *target_); - first_++; - } - else { - rc = snmp_->get_next( pdu_, *target_); - } - - if (rc != SNMP_CLASS_SUCCESS) { - reason = const_cast (snmp_->error_string()); - return 0; - } - - // 2. check for problems - if (pdu_.get_error_status()) { - reason = const_cast (pdu_.agent_error_reason()); - return 0; - } - - // 3. return vb to caller - pdu_.get_vb(vb, 0); - Oid nextoid; - vb.get_oid(nextoid); // and setup next oid to get - Vb nextvb(nextoid); - pdu_.delete_all_vbs(); - pdu_ += nextvb; // can't do set_vb as there are no entries to replace - - return 1; // ok -} - -int walkapp::run() -{ - - //----------[ create a ASNMP session ]----------------------------------- - if ( snmp_.valid() != SNMP_CLASS_SUCCESS) { - cout << "\nASNMP:ERROR:Create session failed: "<< - snmp_.error_string()<< "\n"; - return 1; - } - - //--------[ build up ASNMP object needed ]------------------------------- - if (address_.get_port() == 0) - address_.set_port(DEF_AGENT_PORT); - target_.set_address( address_); // make a target using the address - - //-------[ issue the request, blocked mode ]----------------------------- - cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \ - " WALK SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n"; - target_.get_address(address_); // target updates port used - int rc; - const char *name = address_.resolve_hostname(rc); - - cout << "Device: " << address_ << " "; - - //FUZZ: disable check_for_lack_ACE_OS - cout << (rc ? "<< did not resolve via gethostbyname() >>" : name) << "\n"; - //FUZZ: enable check_for_lack_ACE_OS - - cout << "[ Retries=" << target_.get_retry() << " \ - Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \ - community_.to_string() << " ]"<< endl; - - MibIter iter(&snmp_, pdu_, &target_); - char *err_str = 0; - Vb vb; - unsigned ctr = 0; - while (iter.next(vb, err_str)) { - cout << "\tOid = " << vb.to_string_oid() << "\n"; - cout << "\tValue = " << vb.to_string_value() << "\n"; - ctr++; - } - - if (!err_str) { - cout << "ERROR: walk: " << err_str << endl; - return 0; - } - - cout << "ASNMP:INFO:command completed normally. ACE Rocks...\n"<< endl; - return 0; -} - diff --git a/ACE/ASNMP/examples/walk/walk.mpc b/ACE/ASNMP/examples/walk/walk.mpc deleted file mode 100644 index aff0fb98d35..00000000000 --- a/ACE/ASNMP/examples/walk/walk.mpc +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -project (asnmp_example_walk) : aceexe { - exename = walk - after += asnmp_lib - libs += asnmp - avoids += uses_wchar - includes += $(ACE_ROOT)/ASNMP - source_files { - walk.cpp - } -} diff --git a/ACE/ASNMP/mibs/RFC1213-MIB.my b/ACE/ASNMP/mibs/RFC1213-MIB.my deleted file mode 100644 index f89f8bf125e..00000000000 --- a/ACE/ASNMP/mibs/RFC1213-MIB.my +++ /dev/null @@ -1,2618 +0,0 @@ --- ***************************************************************** --- RFC1213-MIB.my: MIB-II MIB file --- --- April 1994, Jeffrey T. Johnson --- --- Copyright (c) 1994-1996 by cisco Systems, Inc. --- All rights reserved. --- --- ***************************************************************** --- --- This mib was extracted from RFC 1213 --- The following changes have been applied: --- The enumerations unknown(4) and dormant(5) have been added to --- ifOperStatus to reflect a change to the ifTable introduced in --- RFC 1573 --- --- The SYNTAX of ifType has been changed to IANAifType, to reflect the --- change to the ifTable introduced in RFC1573. - - RFC1213-MIB DEFINITIONS ::= BEGIN - - IMPORTS - mgmt, NetworkAddress, IpAddress, Counter, Gauge, - TimeTicks - FROM RFC1155-SMI - OBJECT-TYPE - FROM RFC-1212 - TEXTUAL-CONVENTION - FROM SNMPv2-TC - IANAifType - FROM IANAifType-MIB; - - -- This MIB module uses the extended OBJECT-TYPE macro as - -- defined in [14]; - - - -- MIB-II (same prefix as MIB-I) - - mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } - - -- textual conventions - - DisplayString ::= - OCTET STRING - -- This data type is used to model textual information taken - -- from the NVT ASCII character set. By convention, objects - -- with this syntax are declared as having - -- - -- SIZE (0..255) - - PhysAddress ::= - OCTET STRING - -- This data type is used to model media addresses. For many - -- types of media, this will be in a binary representation. - -- For example, an ethernet address would be represented as - -- a string of 6 octets. - - - -- groups in MIB-II - - system OBJECT IDENTIFIER ::= { mib-2 1 } - - interfaces OBJECT IDENTIFIER ::= { mib-2 2 } - - at OBJECT IDENTIFIER ::= { mib-2 3 } - - ip OBJECT IDENTIFIER ::= { mib-2 4 } - - icmp OBJECT IDENTIFIER ::= { mib-2 5 } - - tcp OBJECT IDENTIFIER ::= { mib-2 6 } - - udp OBJECT IDENTIFIER ::= { mib-2 7 } - - egp OBJECT IDENTIFIER ::= { mib-2 8 } - - -- historical (some say hysterical) - -- cmot OBJECT IDENTIFIER ::= { mib-2 9 } - - transmission OBJECT IDENTIFIER ::= { mib-2 10 } - - snmp OBJECT IDENTIFIER ::= { mib-2 11 } - - - -- the System group - - -- Implementation of the System group is mandatory for all - -- systems. If an agent is not configured to have a value - -- for any of these variables, a string of length 0 is - -- returned. - - sysDescr OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..255)) - ACCESS read-only - STATUS mandatory - DESCRIPTION - "A textual description of the entity. This value - should include the full name and version - identification of the system's hardware type, - software operating-system, and networking - software. It is mandatory that this only contain - printable ASCII characters." - ::= { system 1 } - - sysObjectID OBJECT-TYPE - SYNTAX OBJECT IDENTIFIER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The vendor's authoritative identification of the - network management subsystem contained in the - entity. This value is allocated within the SMI - enterprises subtree (1.3.6.1.4.1) and provides an - easy and unambiguous means for determining `what - kind of box' is being managed. For example, if - vendor `Flintstones, Inc.' was assigned the - subtree 1.3.6.1.4.1.4242, it could assign the - identifier 1.3.6.1.4.1.4242.1.1 to its `Fred - Router'." - ::= { system 2 } - - sysUpTime OBJECT-TYPE - SYNTAX TimeTicks - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The time (in hundredths of a second) since the - network management portion of the system was last - re-initialized." - ::= { system 3 } - - sysContact OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..255)) - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The textual identification of the contact person - for this managed node, together with information - on how to contact this person." - ::= { system 4 } - - sysName OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..255)) - ACCESS read-write - STATUS mandatory - DESCRIPTION - "An administratively-assigned name for this - managed node. By convention, this is the node's - fully-qualified domain name." - ::= { system 5 } - - sysLocation OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..255)) - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The physical location of this node (e.g., - `telephone closet, 3rd floor')." - ::= { system 6 } - - sysServices OBJECT-TYPE - SYNTAX INTEGER (0..127) - ACCESS read-only - STATUS mandatory - DESCRIPTION - "A value which indicates the set of services that - this entity primarily offers. - - The value is a sum. This sum initially takes the - value zero, Then, for each layer, L, in the range - 1 through 7, that this node performs transactions - for, 2 raised to (L - 1) is added to the sum. For - example, a node which performs primarily routing - functions would have a value of 4 (2^(3-1)). In - contrast, a node which is a host offering - application services would have a value of 72 - (2^(4-1) + 2^(7-1)). Note that in the context of - the Internet suite of protocols, values should be - calculated accordingly: - - layer functionality - 1 physical (e.g., repeaters) - 2 datalink/subnetwork (e.g., bridges) - 3 internet (e.g., IP gateways) - 4 end-to-end (e.g., IP hosts) - 7 applications (e.g., mail relays) - - For systems including OSI protocols, layers 5 and - 6 may also be counted." - ::= { system 7 } - - -- the Interfaces group - - -- Implementation of the Interfaces group is mandatory for - -- all systems. - - ifNumber OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of network interfaces (regardless of - their current state) present on this system." - ::= { interfaces 1 } - - - -- the Interfaces table - - -- The Interfaces table contains information on the entity's - -- interfaces. Each interface is thought of as being - -- attached to a `subnetwork'. Note that this term should - -- not be confused with `subnet' which refers to an - -- addressing partitioning scheme used in the Internet suite - -- of protocols. - - ifTable OBJECT-TYPE - SYNTAX SEQUENCE OF IfEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "A list of interface entries. The number of - entries is given by the value of ifNumber." - ::= { interfaces 2 } - - ifEntry OBJECT-TYPE - SYNTAX IfEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "An interface entry containing objects at the - subnetwork layer and below for a particular - interface." - INDEX { ifIndex } - ::= { ifTable 1 } - - IfEntry ::= - SEQUENCE { - ifIndex - INTEGER, - ifDescr - DisplayString, - ifType - IANAifType, - ifMtu - INTEGER, - ifSpeed - Gauge, - ifPhysAddress - PhysAddress, - ifAdminStatus - INTEGER, - ifOperStatus - INTEGER, - ifLastChange - TimeTicks, - ifInOctets - Counter, - ifInUcastPkts - Counter, - ifInNUcastPkts - Counter, - ifInDiscards - Counter, - ifInErrors - Counter, - ifInUnknownProtos - Counter, - ifOutOctets - Counter, - ifOutUcastPkts - Counter, - ifOutNUcastPkts - Counter, - ifOutDiscards - Counter, - ifOutErrors - Counter, - ifOutQLen - Gauge, - ifSpecific - OBJECT IDENTIFIER - } - - ifIndex OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "A unique value for each interface. Its value - ranges between 1 and the value of ifNumber. The - value for each interface must remain constant at - least from one re-initialization of the entity's - network management system to the next re- - initialization." - ::= { ifEntry 1 } - - ifDescr OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..255)) - ACCESS read-only - STATUS mandatory - DESCRIPTION - "A textual string containing information about the - interface. This string should include the name of - the manufacturer, the product name and the version - of the hardware interface." - ::= { ifEntry 2 } - - ifType OBJECT-TYPE - SYNTAX IANAifType - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The type of interface. Additional values for ifType - are assigned by the Internet Assigned Numbers - Authority (IANA), through updating the syntax of the - IANAifType textual convention." - ::= { ifEntry 3 } - - - ifMtu OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The size of the largest datagram which can be - sent/received on the interface, specified in - octets. For interfaces that are used for - transmitting network datagrams, this is the size - of the largest network datagram that can be sent - on the interface." - ::= { ifEntry 4 } - - ifSpeed OBJECT-TYPE - SYNTAX Gauge - ACCESS read-only - STATUS mandatory - DESCRIPTION - "An estimate of the interface's current bandwidth - in bits per second. For interfaces which do not - vary in bandwidth or for those where no accurate - estimation can be made, this object should contain - the nominal bandwidth." - ::= { ifEntry 5 } - - ifPhysAddress OBJECT-TYPE - SYNTAX PhysAddress - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The interface's address at the protocol layer - immediately `below' the network layer in the - protocol stack. For interfaces which do not have - such an address (e.g., a serial line), this object - should contain an octet string of zero length." - ::= { ifEntry 6 } - - ifAdminStatus OBJECT-TYPE - SYNTAX INTEGER { - up(1), -- ready to pass packets - down(2), - testing(3) -- in some test mode - } - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The desired state of the interface. The - testing(3) state indicates that no operational - packets can be passed." - ::= { ifEntry 7 } - - ifOperStatus OBJECT-TYPE - SYNTAX INTEGER { - up(1), -- ready to pass packets - down(2), - testing(3), -- in some test mode - unknown(4), - dormant(5) - } - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The current operational state of the interface. - The testing(3) state indicates that no operational - packets can be passed." - ::= { ifEntry 8 } - - ifLastChange OBJECT-TYPE - SYNTAX TimeTicks - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The value of sysUpTime at the time the interface - entered its current operational state. If the - current state was entered prior to the last re- - initialization of the local network management - subsystem, then this object contains a zero - value." - ::= { ifEntry 9 } - - ifInOctets OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of octets received on the - interface, including framing characters." - ::= { ifEntry 10 } - - ifInUcastPkts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of subnetwork-unicast packets - delivered to a higher-layer protocol." - ::= { ifEntry 11 } - - ifInNUcastPkts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of non-unicast (i.e., subnetwork- - broadcast or subnetwork-multicast) packets - delivered to a higher-layer protocol." - ::= { ifEntry 12 } - - ifInDiscards OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of inbound packets which were chosen - to be discarded even though no errors had been - detected to prevent their being deliverable to a - higher-layer protocol. One possible reason for - discarding such a packet could be to free up - buffer space." - ::= { ifEntry 13 } - - ifInErrors OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of inbound packets that contained - errors preventing them from being deliverable to a - higher-layer protocol." - ::= { ifEntry 14 } - - ifInUnknownProtos OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of packets received via the interface - which were discarded because of an unknown or - unsupported protocol." - ::= { ifEntry 15 } - - ifOutOctets OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of octets transmitted out of the - interface, including framing characters." - ::= { ifEntry 16 } - - ifOutUcastPkts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of packets that higher-level - protocols requested be transmitted to a - subnetwork-unicast address, including those that - were discarded or not sent." - ::= { ifEntry 17 } - - ifOutNUcastPkts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of packets that higher-level - protocols requested be transmitted to a non- - unicast (i.e., a subnetwork-broadcast or - subnetwork-multicast) address, including those - that were discarded or not sent." - ::= { ifEntry 18 } - - ifOutDiscards OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of outbound packets which were chosen - to be discarded even though no errors had been - detected to prevent their being transmitted. One - possible reason for discarding such a packet could - be to free up buffer space." - ::= { ifEntry 19 } - - ifOutErrors OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of outbound packets that could not be - transmitted because of errors." - ::= { ifEntry 20 } - - ifOutQLen OBJECT-TYPE - SYNTAX Gauge - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The length of the output packet queue (in - packets)." - ::= { ifEntry 21 } - - ifSpecific OBJECT-TYPE - SYNTAX OBJECT IDENTIFIER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "A reference to MIB definitions specific to the - particular media being used to realize the - interface. For example, if the interface is - realized by an ethernet, then the value of this - object refers to a document defining objects - specific to ethernet. If this information is not - present, its value should be set to the OBJECT - IDENTIFIER { 0 0 }, which is a syntactically valid - object identifier, and any conformant - implementation of ASN.1 and BER must be able to - generate and recognize this value." - ::= { ifEntry 22 } - - - -- the Address Translation group - - -- Implementation of the Address Translation group is - -- mandatory for all systems. Note however that this group - -- is deprecated by MIB-II. That is, it is being included - -- solely for compatibility with MIB-I nodes, and will most - -- likely be excluded from MIB-III nodes. From MIB-II and - -- onwards, each network protocol group contains its own - -- address translation tables. - - -- The Address Translation group contains one table which is - -- the union across all interfaces of the translation tables - -- for converting a NetworkAddress (e.g., an IP address) into - -- a subnetwork-specific address. For lack of a better term, - -- this document refers to such a subnetwork-specific address - -- as a `physical' address. - - -- Examples of such translation tables are: for broadcast - -- media where ARP is in use, the translation table is - -- equivalent to the ARP cache; or, on an X.25 network where - -- non-algorithmic translation to X.121 addresses is - -- required, the translation table contains the - -- NetworkAddress to X.121 address equivalences. - - atTable OBJECT-TYPE - SYNTAX SEQUENCE OF AtEntry - ACCESS not-accessible - STATUS deprecated - DESCRIPTION - "The Address Translation tables contain the - NetworkAddress to `physical' address equivalences. - Some interfaces do not use translation tables for - determining address equivalences (e.g., DDN-X.25 - has an algorithmic method); if all interfaces are - of this type, then the Address Translation table - is empty, i.e., has zero entries." - ::= { at 1 } - - atEntry OBJECT-TYPE - SYNTAX AtEntry - ACCESS not-accessible - STATUS deprecated - DESCRIPTION - "Each entry contains one NetworkAddress to - `physical' address equivalence." - INDEX { atIfIndex, - atNetAddress } - ::= { atTable 1 } - - AtEntry ::= - SEQUENCE { - atIfIndex - INTEGER, - atPhysAddress - PhysAddress, - atNetAddress - NetworkAddress - } - - atIfIndex OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS deprecated - DESCRIPTION - "The interface on which this entry's equivalence - is effective. The interface identified by a - particular value of this index is the same - interface as identified by the same value of - ifIndex." - ::= { atEntry 1 } - - atPhysAddress OBJECT-TYPE - SYNTAX PhysAddress - ACCESS read-write - STATUS deprecated - DESCRIPTION - "The media-dependent `physical' address. - - Setting this object to a null string (one of zero - length) has the effect of invaliding the - corresponding entry in the atTable object. That - is, it effectively disassociates the interface - identified with said entry from the mapping - identified with said entry. It is an - implementation-specific matter as to whether the - agent removes an invalidated entry from the table. - Accordingly, management stations must be prepared - to receive tabular information from agents that - corresponds to entries not currently in use. - Proper interpretation of such entries requires - examination of the relevant atPhysAddress object." - ::= { atEntry 2 } - - atNetAddress OBJECT-TYPE - SYNTAX NetworkAddress - ACCESS read-write - STATUS deprecated - DESCRIPTION - "The NetworkAddress (e.g., the IP address) - corresponding to the media-dependent `physical' - address." - ::= { atEntry 3 } - - - -- the IP group - - -- Implementation of the IP group is mandatory for all - -- systems. - - ipForwarding OBJECT-TYPE - SYNTAX INTEGER { - forwarding(1), -- acting as a gateway - not-forwarding(2) -- NOT acting as a gateway - } - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The indication of whether this entity is acting - as an IP gateway in respect to the forwarding of - datagrams received by, but not addressed to, this - entity. IP gateways forward datagrams. IP hosts - do not (except those source-routed via the host). - - Note that for some managed nodes, this object may - take on only a subset of the values possible. - Accordingly, it is appropriate for an agent to - return a `badValue' response if a management - station attempts to change this object to an - inappropriate value." - ::= { ip 1 } - - ipDefaultTTL OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The default value inserted into the Time-To-Live - field of the IP header of datagrams originated at - this entity, whenever a TTL value is not supplied - by the transport layer protocol." - ::= { ip 2 } - - ipInReceives OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of input datagrams received from - interfaces, including those received in error." - ::= { ip 3 } - - ipInHdrErrors OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of input datagrams discarded due to - errors in their IP headers, including bad - checksums, version number mismatch, other format - errors, time-to-live exceeded, errors discovered - in processing their IP options, etc." - ::= { ip 4 } - - ipInAddrErrors OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of input datagrams discarded because - the IP address in their IP header's destination - field was not a valid address to be received at - this entity. This count includes invalid - addresses (e.g., 0.0.0.0) and addresses of - unsupported Classes (e.g., Class E). For entities - which are not IP Gateways and therefore do not - forward datagrams, this counter includes datagrams - discarded because the destination address was not - a local address." - ::= { ip 5 } - - ipForwDatagrams OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of input datagrams for which this - entity was not their final IP destination, as a - result of which an attempt was made to find a - route to forward them to that final destination. - In entities which do not act as IP Gateways, this - counter will include only those packets which were - Source-Routed via this entity, and the Source- - Route option processing was successful." - ::= { ip 6 } - - ipInUnknownProtos OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of locally-addressed datagrams - received successfully but discarded because of an - unknown or unsupported protocol." - ::= { ip 7 } - - ipInDiscards OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of input IP datagrams for which no - problems were encountered to prevent their - continued processing, but which were discarded - (e.g., for lack of buffer space). Note that this - counter does not include any datagrams discarded - while awaiting re-assembly." - ::= { ip 8 } - - ipInDelivers OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of input datagrams successfully - delivered to IP user-protocols (including ICMP)." - ::= { ip 9 } - - ipOutRequests OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of IP datagrams which local IP - user-protocols (including ICMP) supplied to IP in - requests for transmission. Note that this counter - does not include any datagrams counted in - ipForwDatagrams." - ::= { ip 10 } - - ipOutDiscards OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of output IP datagrams for which no - problem was encountered to prevent their - transmission to their destination, but which were - discarded (e.g., for lack of buffer space). Note - that this counter would include datagrams counted - in ipForwDatagrams if any such packets met this - (discretionary) discard criterion." - ::= { ip 11 } - - ipOutNoRoutes OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of IP datagrams discarded because no - route could be found to transmit them to their - destination. Note that this counter includes any - packets counted in ipForwDatagrams which meet this - `no-route' criterion. Note that this includes any - datagrams which a host cannot route because all of - its default gateways are down." - ::= { ip 12 } - - ipReasmTimeout OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The maximum number of seconds which received - fragments are held while they are awaiting - reassembly at this entity." - ::= { ip 13 } - - ipReasmReqds OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of IP fragments received which needed - to be reassembled at this entity." - ::= { ip 14 } - - ipReasmOKs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of IP datagrams successfully re- - assembled." - ::= { ip 15 } - - ipReasmFails OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of failures detected by the IP re- - assembly algorithm (for whatever reason: timed - out, errors, etc). Note that this is not - necessarily a count of discarded IP fragments - since some algorithms (notably the algorithm in - RFC 815) can lose track of the number of fragments - by combining them as they are received." - ::= { ip 16 } - - ipFragOKs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of IP datagrams that have been - successfully fragmented at this entity." - ::= { ip 17 } - - ipFragFails OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of IP datagrams that have been - discarded because they needed to be fragmented at - this entity but could not be, e.g., because their - Don't Fragment flag was set." - ::= { ip 18 } - - ipFragCreates OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of IP datagram fragments that have - been generated as a result of fragmentation at - this entity." - ::= { ip 19 } - - - - -- the IP address table - - -- The IP address table contains this entity's IP addressing - -- information. - - ipAddrTable OBJECT-TYPE - SYNTAX SEQUENCE OF IpAddrEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "The table of addressing information relevant to - this entity's IP addresses." - ::= { ip 20 } - - ipAddrEntry OBJECT-TYPE - SYNTAX IpAddrEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "The addressing information for one of this - entity's IP addresses." - INDEX { ipAdEntAddr } - ::= { ipAddrTable 1 } - - IpAddrEntry ::= - SEQUENCE { - ipAdEntAddr - IpAddress, - ipAdEntIfIndex - INTEGER, - ipAdEntNetMask - IpAddress, - ipAdEntBcastAddr - INTEGER, - ipAdEntReasmMaxSize - INTEGER (0..65535) - } - - ipAdEntAddr OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The IP address to which this entry's addressing - information pertains." - ::= { ipAddrEntry 1 } - - - ipAdEntIfIndex OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The index value which uniquely identifies the - interface to which this entry is applicable. The - interface identified by a particular value of this - index is the same interface as identified by the - same value of ifIndex." - ::= { ipAddrEntry 2 } - - ipAdEntNetMask OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The subnet mask associated with the IP address of - this entry. The value of the mask is an IP - address with all the network bits set to 1 and all - the hosts bits set to 0." - ::= { ipAddrEntry 3 } - - ipAdEntBcastAddr OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The value of the least-significant bit in the IP - broadcast address used for sending datagrams on - the (logical) interface associated with the IP - address of this entry. For example, when the - Internet standard all-ones broadcast address is - used, the value will be 1. This value applies to - both the subnet and network broadcasts addresses - used by the entity on this (logical) interface." - ::= { ipAddrEntry 4 } - - ipAdEntReasmMaxSize OBJECT-TYPE - SYNTAX INTEGER (0..65535) - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The size of the largest IP datagram which this - entity can re-assemble from incoming IP fragmented - datagrams received on this interface." - ::= { ipAddrEntry 5 } - - -- the IP routing table - - -- The IP routing table contains an entry for each route - -- presently known to this entity. - - ipRouteTable OBJECT-TYPE - SYNTAX SEQUENCE OF IpRouteEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "This entity's IP Routing table." - ::= { ip 21 } - - ipRouteEntry OBJECT-TYPE - SYNTAX IpRouteEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "A route to a particular destination." - INDEX { ipRouteDest } - ::= { ipRouteTable 1 } - - IpRouteEntry ::= - SEQUENCE { - ipRouteDest - IpAddress, - ipRouteIfIndex - INTEGER, - ipRouteMetric1 - INTEGER, - ipRouteMetric2 - INTEGER, - ipRouteMetric3 - INTEGER, - ipRouteMetric4 - INTEGER, - ipRouteNextHop - IpAddress, - ipRouteType - INTEGER, - ipRouteProto - INTEGER, - ipRouteAge - INTEGER, - ipRouteMask - IpAddress, - ipRouteMetric5 - INTEGER, - ipRouteInfo - OBJECT IDENTIFIER - } - - ipRouteDest OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The destination IP address of this route. An - entry with a value of 0.0.0.0 is considered a - default route. Multiple routes to a single - destination can appear in the table, but access to - such multiple entries is dependent on the table- - access mechanisms defined by the network - management protocol in use." - ::= { ipRouteEntry 1 } - - ipRouteIfIndex OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The index value which uniquely identifies the - local interface through which the next hop of this - route should be reached. The interface identified - by a particular value of this index is the same - interface as identified by the same value of - ifIndex." - ::= { ipRouteEntry 2 } - - ipRouteMetric1 OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The primary routing metric for this route. The - semantics of this metric are determined by the - routing-protocol specified in the route's - ipRouteProto value. If this metric is not used, - its value should be set to -1." - ::= { ipRouteEntry 3 } - - ipRouteMetric2 OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS mandatory - DESCRIPTION - "An alternate routing metric for this route. The - semantics of this metric are determined by the - routing-protocol specified in the route's - ipRouteProto value. If this metric is not used, - its value should be set to -1." - ::= { ipRouteEntry 4 } - - ipRouteMetric3 OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS mandatory - DESCRIPTION - "An alternate routing metric for this route. The - semantics of this metric are determined by the - routing-protocol specified in the route's - ipRouteProto value. If this metric is not used, - its value should be set to -1." - ::= { ipRouteEntry 5 } - - ipRouteMetric4 OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS mandatory - DESCRIPTION - "An alternate routing metric for this route. The - semantics of this metric are determined by the - routing-protocol specified in the route's - ipRouteProto value. If this metric is not used, - its value should be set to -1." - ::= { ipRouteEntry 6 } - - ipRouteNextHop OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The IP address of the next hop of this route. - (In the case of a route bound to an interface - which is realized via a broadcast media, the value - of this field is the agent's IP address on that - interface.)" - ::= { ipRouteEntry 7 } - - ipRouteType OBJECT-TYPE - SYNTAX INTEGER { - other(1), -- none of the following - - invalid(2), -- an invalidated route - -- route to directly - direct(3), -- connected (sub-)network - - -- route to a non-local - indirect(4) -- host/network/sub-network - } - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The type of route. Note that the values - direct(3) and indirect(4) refer to the notion of - direct and indirect routing in the IP - architecture. - - Setting this object to the value invalid(2) has - the effect of invalidating the corresponding entry - in the ipRouteTable object. That is, it - effectively disassociates the destination - identified with said entry from the route - identified with said entry. It is an - implementation-specific matter as to whether the - agent removes an invalidated entry from the table. - Accordingly, management stations must be prepared - to receive tabular information from agents that - corresponds to entries not currently in use. - Proper interpretation of such entries requires - examination of the relevant ipRouteType object." - ::= { ipRouteEntry 8 } - - ipRouteProto OBJECT-TYPE - SYNTAX INTEGER { - other(1), -- none of the following - - -- non-protocol information, - -- e.g., manually configured - local(2), -- entries - - -- set via a network - netmgmt(3), -- management protocol - - -- obtained via ICMP, - icmp(4), -- e.g., Redirect - - -- the remaining values are - -- all gateway routing - -- protocols - egp(5), - ggp(6), - hello(7), - rip(8), - is-is(9), - es-is(10), - ciscoIgrp(11), - bbnSpfIgp(12), - ospf(13), - bgp(14) - } - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The routing mechanism via which this route was - learned. Inclusion of values for gateway routing - protocols is not intended to imply that hosts - should support those protocols." - ::= { ipRouteEntry 9 } - - ipRouteAge OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The number of seconds since this route was last - updated or otherwise determined to be correct. - Note that no semantics of `too old' can be implied - except through knowledge of the routing protocol - by which the route was learned." - ::= { ipRouteEntry 10 } - - ipRouteMask OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-write - STATUS mandatory - DESCRIPTION - "Indicate the mask to be logical-ANDed with the - destination address before being compared to the - value in the ipRouteDest field. For those systems - that do not support arbitrary subnet masks, an - agent constructs the value of the ipRouteMask by - determining whether the value of the correspondent - ipRouteDest field belong to a class-A, B, or C - network, and then using one of: - - mask network - 255.0.0.0 class-A - 255.255.0.0 class-B - 255.255.255.0 class-C - - If the value of the ipRouteDest is 0.0.0.0 (a - default route), then the mask value is also - 0.0.0.0. It should be noted that all IP routing - subsystems implicitly use this mechanism." - ::= { ipRouteEntry 11 } - - ipRouteMetric5 OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS mandatory - DESCRIPTION - "An alternate routing metric for this route. The - semantics of this metric are determined by the - routing-protocol specified in the route's - ipRouteProto value. If this metric is not used, - its value should be set to -1." - ::= { ipRouteEntry 12 } - - ipRouteInfo OBJECT-TYPE - SYNTAX OBJECT IDENTIFIER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "A reference to MIB definitions specific to the - particular routing protocol which is responsible - for this route, as determined by the value - specified in the route's ipRouteProto value. If - this information is not present, its value should - be set to the OBJECT IDENTIFIER { 0 0 }, which is - a syntactically valid object identifier, and any - conformant implementation of ASN.1 and BER must be - able to generate and recognize this value." - ::= { ipRouteEntry 13 } - - - -- the IP Address Translation table - - -- The IP address translation table contain the IpAddress to - -- `physical' address equivalences. Some interfaces do not - -- use translation tables for determining address - -- equivalences (e.g., DDN-X.25 has an algorithmic method); - -- if all interfaces are of this type, then the Address - -- Translation table is empty, i.e., has zero entries. - - ipNetToMediaTable OBJECT-TYPE - SYNTAX SEQUENCE OF IpNetToMediaEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "The IP Address Translation table used for mapping - from IP addresses to physical addresses." - ::= { ip 22 } - - ipNetToMediaEntry OBJECT-TYPE - SYNTAX IpNetToMediaEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "Each entry contains one IpAddress to `physical' - address equivalence." - INDEX { ipNetToMediaIfIndex, - ipNetToMediaNetAddress } - ::= { ipNetToMediaTable 1 } - - IpNetToMediaEntry ::= - SEQUENCE { - ipNetToMediaIfIndex - INTEGER, - ipNetToMediaPhysAddress - PhysAddress, - ipNetToMediaNetAddress - IpAddress, - ipNetToMediaType - INTEGER - } - - ipNetToMediaIfIndex OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The interface on which this entry's equivalence - is effective. The interface identified by a - particular value of this index is the same - interface as identified by the same value of - ifIndex." - ::= { ipNetToMediaEntry 1 } - - ipNetToMediaPhysAddress OBJECT-TYPE - SYNTAX PhysAddress - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The media-dependent `physical' address." - ::= { ipNetToMediaEntry 2 } - - ipNetToMediaNetAddress OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The IpAddress corresponding to the media- - dependent `physical' address." - ::= { ipNetToMediaEntry 3 } - - ipNetToMediaType OBJECT-TYPE - SYNTAX INTEGER { - other(1), -- none of the following - invalid(2), -- an invalidated mapping - dynamic(3), - static(4) - } - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The type of mapping. - - Setting this object to the value invalid(2) has - the effect of invalidating the corresponding entry - in the ipNetToMediaTable. That is, it effectively - disassociates the interface identified with said - entry from the mapping identified with said entry. - It is an implementation-specific matter as to - whether the agent removes an invalidated entry - from the table. Accordingly, management stations - must be prepared to receive tabular information - from agents that corresponds to entries not - currently in use. Proper interpretation of such - entries requires examination of the relevant - ipNetToMediaType object." - ::= { ipNetToMediaEntry 4 } - - - -- additional IP objects - - ipRoutingDiscards OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of routing entries which were chosen - to be discarded even though they are valid. One - possible reason for discarding such an entry could - be to free-up buffer space for other routing - entries." - ::= { ip 23 } - - - -- the ICMP group - - -- Implementation of the ICMP group is mandatory for all - -- systems. - - icmpInMsgs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of ICMP messages which the - entity received. Note that this counter includes - all those counted by icmpInErrors." - ::= { icmp 1 } - - icmpInErrors OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP messages which the entity - received but determined as having ICMP-specific - errors (bad ICMP checksums, bad length, etc.)." - ::= { icmp 2 } - - icmpInDestUnreachs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Destination Unreachable - messages received." - ::= { icmp 3 } - - icmpInTimeExcds OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Time Exceeded messages - received." - ::= { icmp 4 } - - - icmpInParmProbs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Parameter Problem messages - received." - ::= { icmp 5 } - - icmpInSrcQuenchs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Source Quench messages - received." - ::= { icmp 6 } - - icmpInRedirects OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Redirect messages received." - ::= { icmp 7 } - - icmpInEchos OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Echo (request) messages - received." - ::= { icmp 8 } - - icmpInEchoReps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Echo Reply messages received." - ::= { icmp 9 } - - icmpInTimestamps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Timestamp (request) messages - received." - ::= { icmp 10 } - - icmpInTimestampReps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Timestamp Reply messages - received." - ::= { icmp 11 } - - icmpInAddrMasks OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Address Mask Request messages - received." - ::= { icmp 12 } - - icmpInAddrMaskReps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Address Mask Reply messages - received." - ::= { icmp 13 } - - icmpOutMsgs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of ICMP messages which this - entity attempted to send. Note that this counter - includes all those counted by icmpOutErrors." - ::= { icmp 14 } - - icmpOutErrors OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP messages which this entity did - not send due to problems discovered within ICMP - such as a lack of buffers. This value should not - include errors discovered outside the ICMP layer - such as the inability of IP to route the resultant - datagram. In some implementations there may be no - types of error which contribute to this counter's - value." - ::= { icmp 15 } - - icmpOutDestUnreachs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Destination Unreachable - messages sent." - ::= { icmp 16 } - - icmpOutTimeExcds OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Time Exceeded messages sent." - ::= { icmp 17 } - - icmpOutParmProbs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Parameter Problem messages - sent." - ::= { icmp 18 } - - icmpOutSrcQuenchs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Source Quench messages sent." - ::= { icmp 19 } - - icmpOutRedirects OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Redirect messages sent. For a - host, this object will always be zero, since hosts - do not send redirects." - ::= { icmp 20 } - - icmpOutEchos OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Echo (request) messages sent." - ::= { icmp 21 } - - icmpOutEchoReps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Echo Reply messages sent." - ::= { icmp 22 } - - icmpOutTimestamps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Timestamp (request) messages - sent." - ::= { icmp 23 } - - icmpOutTimestampReps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Timestamp Reply messages - sent." - ::= { icmp 24 } - - icmpOutAddrMasks OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Address Mask Request messages - sent." - ::= { icmp 25 } - - - icmpOutAddrMaskReps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of ICMP Address Mask Reply messages - sent." - ::= { icmp 26 } - - - -- the TCP group - - -- Implementation of the TCP group is mandatory for all - -- systems that implement the TCP. - - -- Note that instances of object types that represent - -- information about a particular TCP connection are - -- transient; they persist only as long as the connection - -- in question. - - tcpRtoAlgorithm OBJECT-TYPE - SYNTAX INTEGER { - other(1), -- none of the following - - constant(2), -- a constant rto - rsre(3), -- MIL-STD-1778, Appendix B - vanj(4) -- Van Jacobson's algorithm [10] - } - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The algorithm used to determine the timeout value - used for retransmitting unacknowledged octets." - ::= { tcp 1 } - - tcpRtoMin OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The minimum value permitted by a TCP - implementation for the retransmission timeout, - measured in milliseconds. More refined semantics - for objects of this type depend upon the algorithm - used to determine the retransmission timeout. In - particular, when the timeout algorithm is rsre(3), - an object of this type has the semantics of the - LBOUND quantity described in RFC 793." - ::= { tcp 2 } - - - tcpRtoMax OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The maximum value permitted by a TCP - implementation for the retransmission timeout, - measured in milliseconds. More refined semantics - for objects of this type depend upon the algorithm - used to determine the retransmission timeout. In - particular, when the timeout algorithm is rsre(3), - an object of this type has the semantics of the - UBOUND quantity described in RFC 793." - ::= { tcp 3 } - - tcpMaxConn OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The limit on the total number of TCP connections - the entity can support. In entities where the - maximum number of connections is dynamic, this - object should contain the value -1." - ::= { tcp 4 } - - tcpActiveOpens OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of times TCP connections have made a - direct transition to the SYN-SENT state from the - CLOSED state." - ::= { tcp 5 } - - tcpPassiveOpens OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of times TCP connections have made a - direct transition to the SYN-RCVD state from the - LISTEN state." - ::= { tcp 6 } - - tcpAttemptFails OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of times TCP connections have made a - direct transition to the CLOSED state from either - the SYN-SENT state or the SYN-RCVD state, plus the - number of times TCP connections have made a direct - transition to the LISTEN state from the SYN-RCVD - state." - ::= { tcp 7 } - - tcpEstabResets OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of times TCP connections have made a - direct transition to the CLOSED state from either - the ESTABLISHED state or the CLOSE-WAIT state." - ::= { tcp 8 } - - tcpCurrEstab OBJECT-TYPE - SYNTAX Gauge - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of TCP connections for which the - current state is either ESTABLISHED or CLOSE- - WAIT." - ::= { tcp 9 } - - tcpInSegs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of segments received, including - those received in error. This count includes - segments received on currently established - connections." - ::= { tcp 10 } - - tcpOutSegs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of segments sent, including - those on current connections but excluding those - containing only retransmitted octets." - ::= { tcp 11 } - - tcpRetransSegs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of segments retransmitted - that - is, the number of TCP segments transmitted - containing one or more previously transmitted - octets." - ::= { tcp 12 } - - - -- the TCP Connection table - - -- The TCP connection table contains information about this - -- entity's existing TCP connections. - - tcpConnTable OBJECT-TYPE - SYNTAX SEQUENCE OF TcpConnEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "A table containing TCP connection-specific - information." - ::= { tcp 13 } - - tcpConnEntry OBJECT-TYPE - SYNTAX TcpConnEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "Information about a particular current TCP - connection. An object of this type is transient, - in that it ceases to exist when (or soon after) - the connection makes the transition to the CLOSED - state." - INDEX { tcpConnLocalAddress, - tcpConnLocalPort, - tcpConnRemAddress, - tcpConnRemPort } - ::= { tcpConnTable 1 } - - TcpConnEntry ::= - SEQUENCE { - tcpConnState - INTEGER, - tcpConnLocalAddress - IpAddress, - tcpConnLocalPort - INTEGER (0..65535), - tcpConnRemAddress - IpAddress, - tcpConnRemPort - INTEGER (0..65535) - } - - tcpConnState OBJECT-TYPE - SYNTAX INTEGER { - closed(1), - listen(2), - synSent(3), - synReceived(4), - established(5), - finWait1(6), - finWait2(7), - closeWait(8), - lastAck(9), - closing(10), - timeWait(11), - deleteTCB(12) - } - ACCESS read-write - STATUS mandatory - DESCRIPTION - "The state of this TCP connection. - - The only value which may be set by a management - station is deleteTCB(12). Accordingly, it is - appropriate for an agent to return a `badValue' - response if a management station attempts to set - this object to any other value. - - If a management station sets this object to the - value deleteTCB(12), then this has the effect of - deleting the TCB (as defined in RFC 793) of the - corresponding connection on the managed node, - resulting in immediate termination of the - connection. - - As an implementation-specific option, a RST - segment may be sent from the managed node to the - other TCP endpoint (note however that RST segments - are not sent reliably)." - ::= { tcpConnEntry 1 } - - tcpConnLocalAddress OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The local IP address for this TCP connection. In - the case of a connection in the listen state which - is willing to accept connections for any IP - interface associated with the node, the value - 0.0.0.0 is used." - ::= { tcpConnEntry 2 } - - tcpConnLocalPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The local port number for this TCP connection." - ::= { tcpConnEntry 3 } - - tcpConnRemAddress OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The remote IP address for this TCP connection." - ::= { tcpConnEntry 4 } - - tcpConnRemPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The remote port number for this TCP connection." - ::= { tcpConnEntry 5 } - - - -- additional TCP objects - - tcpInErrs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of segments received in error - (e.g., bad TCP checksums)." - ::= { tcp 14 } - - tcpOutRsts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of TCP segments sent containing the - RST flag." - ::= { tcp 15 } - - - -- the UDP group - - -- Implementation of the UDP group is mandatory for all - -- systems which implement the UDP. - - udpInDatagrams OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of UDP datagrams delivered to - UDP users." - ::= { udp 1 } - - udpNoPorts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of received UDP datagrams for - which there was no application at the destination - port." - ::= { udp 2 } - - udpInErrors OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of received UDP datagrams that could - not be delivered for reasons other than the lack - of an application at the destination port." - ::= { udp 3 } - - udpOutDatagrams OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of UDP datagrams sent from this - entity." - ::= { udp 4 } - - - -- the UDP Listener table - - -- The UDP listener table contains information about this - -- entity's UDP end-points on which a local application is - -- currently accepting datagrams. - - udpTable OBJECT-TYPE - SYNTAX SEQUENCE OF UdpEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "A table containing UDP listener information." - ::= { udp 5 } - - udpEntry OBJECT-TYPE - SYNTAX UdpEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "Information about a particular current UDP - listener." - INDEX { udpLocalAddress, udpLocalPort } - ::= { udpTable 1 } - - UdpEntry ::= - SEQUENCE { - udpLocalAddress - IpAddress, - udpLocalPort - INTEGER (0..65535) - } - - udpLocalAddress OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The local IP address for this UDP listener. In - the case of a UDP listener which is willing to - accept datagrams for any IP interface associated - with the node, the value 0.0.0.0 is used." - ::= { udpEntry 1 } - - udpLocalPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The local port number for this UDP listener." - ::= { udpEntry 2 } - - - -- the EGP group - - -- Implementation of the EGP group is mandatory for all - -- systems which implement the EGP. - - egpInMsgs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of EGP messages received without - error." - ::= { egp 1 } - - egpInErrors OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of EGP messages received that proved - to be in error." - ::= { egp 2 } - - egpOutMsgs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of locally generated EGP - messages." - ::= { egp 3 } - - egpOutErrors OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of locally generated EGP messages not - sent due to resource limitations within an EGP - entity." - ::= { egp 4 } - - - -- the EGP Neighbor table - - -- The EGP neighbor table contains information about this - -- entity's EGP neighbors. - - egpNeighTable OBJECT-TYPE - SYNTAX SEQUENCE OF EgpNeighEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "The EGP neighbor table." - ::= { egp 5 } - - egpNeighEntry OBJECT-TYPE - SYNTAX EgpNeighEntry - ACCESS not-accessible - STATUS mandatory - DESCRIPTION - "Information about this entity's relationship with - a particular EGP neighbor." - INDEX { egpNeighAddr } - ::= { egpNeighTable 1 } - - EgpNeighEntry ::= - SEQUENCE { - egpNeighState - INTEGER, - egpNeighAddr - IpAddress, - egpNeighAs - INTEGER, - egpNeighInMsgs - Counter, - egpNeighInErrs - Counter, - egpNeighOutMsgs - Counter, - egpNeighOutErrs - Counter, - egpNeighInErrMsgs - Counter, - egpNeighOutErrMsgs - Counter, - egpNeighStateUps - Counter, - egpNeighStateDowns - Counter, - egpNeighIntervalHello - INTEGER, - egpNeighIntervalPoll - INTEGER, - egpNeighMode - INTEGER, - egpNeighEventTrigger - INTEGER - } - - egpNeighState OBJECT-TYPE - SYNTAX INTEGER { - idle(1), - acquisition(2), - down(3), - up(4), - cease(5) - } - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The EGP state of the local system with respect to - this entry's EGP neighbor. Each EGP state is - represented by a value that is one greater than - the numerical value associated with said state in - RFC 904." - ::= { egpNeighEntry 1 } - - egpNeighAddr OBJECT-TYPE - SYNTAX IpAddress - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The IP address of this entry's EGP neighbor." - ::= { egpNeighEntry 2 } - - egpNeighAs OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The autonomous system of this EGP peer. Zero - should be specified if the autonomous system - number of the neighbor is not yet known." - ::= { egpNeighEntry 3 } - - egpNeighInMsgs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of EGP messages received without error - from this EGP peer." - ::= { egpNeighEntry 4 } - - egpNeighInErrs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of EGP messages received from this EGP - peer that proved to be in error (e.g., bad EGP - checksum)." - ::= { egpNeighEntry 5 } - - egpNeighOutMsgs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of locally generated EGP messages to - this EGP peer." - ::= { egpNeighEntry 6 } - - egpNeighOutErrs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of locally generated EGP messages not - sent to this EGP peer due to resource limitations - within an EGP entity." - ::= { egpNeighEntry 7 } - - egpNeighInErrMsgs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of EGP-defined error messages received - from this EGP peer." - ::= { egpNeighEntry 8 } - - egpNeighOutErrMsgs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of EGP-defined error messages sent to - this EGP peer." - ::= { egpNeighEntry 9 } - - egpNeighStateUps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of EGP state transitions to the UP - state with this EGP peer." - ::= { egpNeighEntry 10 } - - egpNeighStateDowns OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The number of EGP state transitions from the UP - state to any other state with this EGP peer." - ::= { egpNeighEntry 11 } - - egpNeighIntervalHello OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The interval between EGP Hello command - retransmissions (in hundredths of a second). This - represents the t1 timer as defined in RFC 904." - ::= { egpNeighEntry 12 } - - egpNeighIntervalPoll OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The interval between EGP poll command - retransmissions (in hundredths of a second). This - represents the t3 timer as defined in RFC 904." - ::= { egpNeighEntry 13 } - - egpNeighMode OBJECT-TYPE - SYNTAX INTEGER { active(1), passive(2) } - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The polling mode of this EGP entity, either - passive or active." - ::= { egpNeighEntry 14 } - - egpNeighEventTrigger OBJECT-TYPE - SYNTAX INTEGER { start(1), stop(2) } - ACCESS read-write - STATUS mandatory - DESCRIPTION - "A control variable used to trigger operator- - initiated Start and Stop events. When read, this - variable always returns the most recent value that - egpNeighEventTrigger was set to. If it has not - been set since the last initialization of the - network management subsystem on the node, it - returns a value of `stop'. - - When set, this variable causes a Start or Stop - event on the specified neighbor, as specified on - pages 8-10 of RFC 904. Briefly, a Start event - causes an Idle peer to begin neighbor acquisition - and a non-Idle peer to reinitiate neighbor - acquisition. A stop event causes a non-Idle peer - to return to the Idle state until a Start event - occurs, either via egpNeighEventTrigger or - otherwise." - ::= { egpNeighEntry 15 } - - - -- additional EGP objects - - egpAs OBJECT-TYPE - SYNTAX INTEGER - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The autonomous system number of this EGP entity." - ::= { egp 6 } - - -- the Transmission group - - -- Based on the transmission media underlying each interface - -- on a system, the corresponding portion of the Transmission - -- group is mandatory for that system. - - -- When Internet-standard definitions for managing - -- transmission media are defined, the transmission group is - -- used to provide a prefix for the names of those objects. - - -- Typically, such definitions reside in the experimental - -- portion of the MIB until they are "proven", then as a - -- part of the Internet standardization process, the - -- definitions are accordingly elevated and a new object - -- identifier, under the transmission group is defined. By - -- convention, the name assigned is: - -- - -- type OBJECT IDENTIFIER ::= { transmission number } - -- - -- where "type" is the symbolic value used for the media in - -- the ifType column of the ifTable object, and "number" is - -- the actual integer value corresponding to the symbol. - - - -- the SNMP group - - -- Implementation of the SNMP group is mandatory for all - -- systems which support an SNMP protocol entity. Some of - -- the objects defined below will be zero-valued in those - -- SNMP implementations that are optimized to support only - -- those functions specific to either a management agent or - -- a management station. In particular, it should be - -- observed that the objects below refer to an SNMP entity, - -- and there may be several SNMP entities residing on a - -- managed node (e.g., if the node is hosting acting as - -- a management station). - - snmpInPkts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of Messages delivered to the - SNMP entity from the transport service." - ::= { snmp 1 } - - snmpOutPkts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Messages which were - passed from the SNMP protocol entity to the - transport service." - ::= { snmp 2 } - - snmpInBadVersions OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Messages which were - delivered to the SNMP protocol entity and were for - an unsupported SNMP version." - ::= { snmp 3 } - - snmpInBadCommunityNames OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Messages delivered to - the SNMP protocol entity which used a SNMP - community name not known to said entity." - ::= { snmp 4 } - - snmpInBadCommunityUses OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Messages delivered to - the SNMP protocol entity which represented an SNMP - operation which was not allowed by the SNMP - community named in the Message." - ::= { snmp 5 } - - snmpInASNParseErrs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of ASN.1 or BER errors - encountered by the SNMP protocol entity when - decoding received SNMP Messages." - ::= { snmp 6 } - - -- { snmp 7 } is not used - - snmpInTooBigs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP PDUs which were - delivered to the SNMP protocol entity and for - which the value of the error-status field is - `tooBig'." - ::= { snmp 8 } - - snmpInNoSuchNames OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP PDUs which were - delivered to the SNMP protocol entity and for - which the value of the error-status field is - `noSuchName'." - ::= { snmp 9 } - - snmpInBadValues OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP PDUs which were - delivered to the SNMP protocol entity and for - which the value of the error-status field is - `badValue'." - ::= { snmp 10 } - - snmpInReadOnlys OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number valid SNMP PDUs which were - delivered to the SNMP protocol entity and for - which the value of the error-status field is - `readOnly'. It should be noted that it is a - protocol error to generate an SNMP PDU which - contains the value `readOnly' in the error-status - field, as such this object is provided as a means - of detecting incorrect implementations of the - SNMP." - ::= { snmp 11 } - - snmpInGenErrs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP PDUs which were - delivered to the SNMP protocol entity and for - which the value of the error-status field is - `genErr'." - ::= { snmp 12 } - - snmpInTotalReqVars OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of MIB objects which have been - retrieved successfully by the SNMP protocol entity - as the result of receiving valid SNMP Get-Request - and Get-Next PDUs." - ::= { snmp 13 } - - snmpInTotalSetVars OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of MIB objects which have been - altered successfully by the SNMP protocol entity - as the result of receiving valid SNMP Set-Request - PDUs." - ::= { snmp 14 } - - snmpInGetRequests OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Get-Request PDUs which - have been accepted and processed by the SNMP - protocol entity." - ::= { snmp 15 } - - snmpInGetNexts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Get-Next PDUs which have - been accepted and processed by the SNMP protocol - entity." - ::= { snmp 16 } - - snmpInSetRequests OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Set-Request PDUs which - have been accepted and processed by the SNMP - protocol entity." - ::= { snmp 17 } - - snmpInGetResponses OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Get-Response PDUs which - have been accepted and processed by the SNMP - protocol entity." - ::= { snmp 18 } - - snmpInTraps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Trap PDUs which have - been accepted and processed by the SNMP protocol - entity." - ::= { snmp 19 } - - snmpOutTooBigs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP PDUs which were - generated by the SNMP protocol entity and for - which the value of the error-status field is - `tooBig.'" - ::= { snmp 20 } - - snmpOutNoSuchNames OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP PDUs which were - generated by the SNMP protocol entity and for - which the value of the error-status is - `noSuchName'." - ::= { snmp 21 } - - snmpOutBadValues OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP PDUs which were - generated by the SNMP protocol entity and for - which the value of the error-status field is - `badValue'." - ::= { snmp 22 } - - -- { snmp 23 } is not used - - snmpOutGenErrs OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP PDUs which were - generated by the SNMP protocol entity and for - which the value of the error-status field is - `genErr'." - ::= { snmp 24 } - - snmpOutGetRequests OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Get-Request PDUs which - have been generated by the SNMP protocol entity." - ::= { snmp 25 } - - snmpOutGetNexts OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Get-Next PDUs which have - been generated by the SNMP protocol entity." - ::= { snmp 26 } - - snmpOutSetRequests OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Set-Request PDUs which - have been generated by the SNMP protocol entity." - ::= { snmp 27 } - - snmpOutGetResponses OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Get-Response PDUs which - have been generated by the SNMP protocol entity." - ::= { snmp 28 } - - snmpOutTraps OBJECT-TYPE - SYNTAX Counter - ACCESS read-only - STATUS mandatory - DESCRIPTION - "The total number of SNMP Trap PDUs which have - been generated by the SNMP protocol entity." - ::= { snmp 29 } - - snmpEnableAuthenTraps OBJECT-TYPE - SYNTAX INTEGER { enabled(1), disabled(2) } - ACCESS read-write - STATUS mandatory - DESCRIPTION - "Indicates whether the SNMP agent process is - permitted to generate authentication-failure - traps. The value of this object overrides any - configuration information; as such, it provides a - means whereby all authentication-failure traps may - be disabled. - - Note that it is strongly recommended that this - object be stored in non-volatile memory so that it - remains constant between re-initializations of the - network management system." - ::= { snmp 30 } - -END diff --git a/ACE/ASNMP/tests/Address_Test.cpp b/ACE/ASNMP/tests/Address_Test.cpp deleted file mode 100644 index e0bb5598643..00000000000 --- a/ACE/ASNMP/tests/Address_Test.cpp +++ /dev/null @@ -1,550 +0,0 @@ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - -#include "ace/OS_main.h" -#include "ace/OS_NS_string.h" -#include "asnmp/address.h" -#include "test_config.h" - -ACE_RCSID(tests, Address_Test, "$Id$") - -// test the GenAddress interface -/* - */ -static void TestGenAddr() -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress: Tests: var(expected) [actual]\n")); - - // the constructors and destructors - GenAddress *ga1 = new GenAddress("1.2.3.4"); // use ipv4 address - ACE_ASSERT(ga1->valid() == 1); - GenAddress ga2(*ga1); // copy constructor; - ACE_ASSERT(ga2.valid() == 1); - GenAddress ga3("localhost"); - ACE_ASSERT(ga3.valid() == 1); - GenAddress ga4; // default constructor - ACE_ASSERT(ga4.valid() == 0); - GenAddress ga5; // default constructor - ACE_ASSERT(ga5.valid() == 0); - GenAddress ga6("127.0.0.1:7"); // udp address - ACE_ASSERT(ga6.valid() == 1); - GenAddress ga7("01234567.89ABcDeF0123"); // ipx address - ACE_ASSERT(ga7.valid() == 1); - IpAddress ip("1.2.3.4"); - ACE_ASSERT(ip.valid() == 1); - GenAddress ga8(ip); // Address conversion - ACE_ASSERT(ga8.valid() == 1); - - const char *ptr = (const char *)ga8; - - ACE_ASSERT(ga1 != 0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga1(\"1.2.3.4\") [%s]\n", - ga1->to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga2(ga1) [%s]\n", - ga2.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga3(\"localhost\") [%s]\n", - ga3.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga4(\"\") [%s]\n", - ga4.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga6(\"127.0.0.1:7\") [%s]\n", - ga6.to_string())); - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga7(\"01234567.89ABcDeF0123\") [%s]\n", - ga7.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga8(\"1.2.3.4\") [%s]\n", - ga8.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga8(\"1.2.3.4\") [%s]\n", - ptr)); - - // Test Assignment x = y, y = x - ga5 = ga3; // regular assignment - ga3 = ga3; // self assignment - ACE_ASSERT(ga5 == ga3); - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga5=ga3(\"localhost\") [%s]\n", - ga5.to_string())); - - addr_type a = ga2.get_type(); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga2.get_type(\"0\") [%d]\n", - a)); - // udp address string - a = ga6.get_type(); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga2.get_type(\"2\") [%d]\n", - a)); - - // udp address string - a = ga7.get_type(); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga2.get_type(\"1\") [%d]\n", - a)); - - delete ga1, ga1 = 0; -} - -/* public methods - IpAddress( const char *inaddr = ""); - IpAddress( const IpAddress &ipaddr); - IpAddress( const GenAddress &genaddr); - ~IpAddress(); - SnmpSyntax& operator=( SnmpSyntax &val); - IpAddress& operator=( const IpAddress &ipaddress); - SnmpSyntax *clone() const; - char *resolve_hostname(int &status); - virtual char *to_string() ; - virtual operator const char *() const; - void mask( const IpAddress& ipaddr); - virtual addr_type get_type() const; - virtual SmiUINT32 get_syntax(); - int is_loopback() const; - int is_multicast() const; - int is_broadcast() const; - int is_arpanet() const; - */ -static void TestIpAddress() -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress: Tests\n")); - - // constructors - GenAddress ga("255.255.255.255"); - IpAddress ia1; - IpAddress ia2("224.2.3.4"); - ACE_ASSERT(ia2.is_multicast()); - ACE_ASSERT(!ia2.is_loopback()); - IpAddress ia3("localhost"); - ACE_ASSERT(ia3.is_loopback()); - ACE_ASSERT(!ia3.is_multicast()); - IpAddress ia4(ia3); - ACE_ASSERT(ia4.is_loopback()); - ACE_ASSERT(!ia4.is_multicast()); - IpAddress ia5(ga); - ACE_ASSERT(ia5.is_broadcast()); - IpAddress ia6 = IpAddress("10.0.0.2"); - ACE_ASSERT(ia6.is_private()); - ACE_ASSERT(!ia6.is_multicast()); - ACE_ASSERT(!ia6.is_loopback()); - - IpAddress ia7("172.16.0.1"); - ACE_ASSERT(ia7.is_private()); - - IpAddress ia8("192.168.0.1"); - ACE_ASSERT(ia8.is_private()); - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia1(\"\") [%s]\n", - ia1.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia2(\"1.2.3.4\") [%s]\n", - ia2.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia3(\"127.0.0.1\") [%s]\n", - ia3.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia4(\"ia3\") [%s]\n", - ia4.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia5(\"255.255.255.255\") [%s]\n", - ia5.to_string())); - - // other routines - int status = 1; - const char *ptr = ia5.resolve_hostname(status); - ACE_ASSERT(status == 0); - ACE_ASSERT(ptr != 0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia5.resolve_hostname():(\"\") [%s]\n", - ptr)); - - // now lets try one we setup with a hostname - ptr = ia3.resolve_hostname(status); - ACE_ASSERT(status == 0); - ACE_ASSERT(ptr != 0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia3.resolve_hostname()(\"localhost\") [%s]\n", - ptr)); - - ptr = (const char *)ia5; - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:(const char *)(\"255.255.255.255\") [%s]\n", - ptr)); - - ia2 = ia3; - ACE_ASSERT(ia2 == ia3); - - ia4.mask(ia3); // mask with equal value should return same - ACE_ASSERT(ia2 == ia3); - - ACE_ASSERT(ia1.get_type() == type_ip); - ACE_ASSERT(ia1.valid() == 0); - ACE_ASSERT(ia2.get_type() == type_ip); - ACE_ASSERT(ia2.valid() == 1); - ACE_ASSERT(ia3.get_type() == type_ip); - ACE_ASSERT(ia3.valid() == 1); - ACE_ASSERT(ia4.get_type() == type_ip); - ACE_ASSERT(ia4.valid() == 1); - ACE_ASSERT(ia5.get_type() == type_ip); - ACE_ASSERT(ia5.valid() == 1); -} - - -// --------------- Netbios --------------- -/* - NetbiosAddress( const char *inaddr = ""); - NetbiosAddress( const NetbiosAddress& nbaddr); - NetbiosAddress( const GenAddress& genaddr); - ~NetbiosAddress(); - virtual char *to_string(); - NetbiosAddress& operator=( const NetbiosAddress &nbaddr); - nb_service get_service_type() const; - void set_service_type(nb_service nbservice); - virtual operator const char *() const; - virtual SmiUINT32 get_syntax(); - SnmpSyntax& operator=( SnmpSyntax &val); - SnmpSyntax *clone() const; - */ -static void TestNetbiosAddress() -{ - NetbiosAddress n1; - ACE_ASSERT(n1.valid() == 0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n1(\"\") [%s]\n", - n1.to_string())); - - NetbiosAddress n2(n1); - ACE_ASSERT(n2.valid() == 0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n2(n1) [%s]\n", - n2.to_string())); - - NetbiosAddress n3("pcname"); - ACE_ASSERT(n3.valid() == 1); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n3(\"pcname\") [%s]\n", - n3.to_string())); - - NetbiosAddress n4("abcdefghigjklmn"); - n4.set_service_type(nb_workstation); - ACE_ASSERT(n4.valid() == 1); - ACE_ASSERT(n4.get_service_type() == nb_workstation); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n4(\"abcdefghigjklmn\") [%s]\n", - n4.to_string())); - - NetbiosAddress n5("abcdefghigjklmno0xx"); - ACE_ASSERT(n5.valid() == 0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n4(\"abcdefghigjklmno0xx\") [%s]\n", - n5.to_string())); - - n1 = n4; - ACE_ASSERT(n1 == n4); - ACE_ASSERT(ACE_OS::strcmp((const char *)n1, (const char *)n4) == 0); - - n1.set_service_type(nb_server); - ACE_ASSERT(nb_server == n1.get_service_type()); -} - -// --------------- IPX --------------- -/* - IpxAddress( void); - IpxAddress( const char *inaddr); - IpxAddress( const IpxAddress &ipxaddr); - IpxAddress( const GenAddress &genaddr); - ~IpxAddress(); - virtual SmiUINT32 get_syntax(); - SnmpSyntax& operator=( SnmpSyntax &val); - IpxAddress& operator=( const IpxAddress &ipxaddress); - int get_hostid( MacAddress& mac); - SnmpSyntax *clone() const; - virtual operator const char *() const; - virtual addr_type get_type() const; - -Ipx Address semantics: Total length must be 21 -// Must have a separator in it -// First string length must be 8 -// Second string length must be 12 -// Each char must take on value 0-F -// -// -// Input formats recognized -// -// XXXXXXXX.XXXXXXXXXXXX -// XXXXXXXX:XXXXXXXXXXXX -// XXXXXXXX-XXXXXXXXXXXX -// XXXXXXXX.XXXXXX-XXXXXX -// XXXXXXXX:XXXXXX-XXXXXX -// XXXXXXXX-XXXXXX-XXXXXX - - */ - -static void TestIpxAddress() -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress: Tests\n")); - IpxAddress xa1; - ACE_ASSERT(xa1.valid() == 0); - ACE_ASSERT(xa1.get_type() == type_ipx); - GenAddress gen("01234567.0123456789AB"); - ACE_ASSERT(gen.valid() == 1); - IpxAddress xa2("01234567.0123456789AB"); - ACE_ASSERT(xa2.get_type() == type_ipx); - ACE_ASSERT(xa2.valid() == 1); - IpxAddress xa3("01234567:0123456789AB"); - ACE_ASSERT(xa3.get_type() == type_ipx); - ACE_ASSERT(xa3.valid() == 1); - IpxAddress xa4("01234567-0123456789AB"); - ACE_ASSERT(xa4.get_type() == type_ipx); - ACE_ASSERT(xa4.valid() == 1); - IpxAddress xa5("01234567.012345-6789AB"); - ACE_ASSERT(xa5.get_type() == type_ipx); - ACE_ASSERT(xa5.valid() == 1); - IpxAddress xa6("01234567:012345-6789AB"); - ACE_ASSERT(xa6.get_type() == type_ipx); - ACE_ASSERT(xa6.valid() == 1); - IpxAddress xa7("01234567-012345-6789AB"); - ACE_ASSERT(xa7.get_type() == type_ipx); - ACE_ASSERT(xa7.valid() == 1); - IpxAddress xa8("01234567."); - ACE_ASSERT(xa8.get_type() == type_ipx); - ACE_ASSERT(xa8.valid() == 0); - IpxAddress xa9(gen); - ACE_ASSERT(xa9.valid() == 1); - IpxAddress *xa10 = new IpxAddress(xa9); - ACE_ASSERT(xa10->get_type() == type_ipx); - ACE_ASSERT(xa10->valid() == 1); - delete xa10; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa1(\"\") [%s]\n", - xa1.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa2(\"01234567.0123456789AB\") [%s]\n", - xa2.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa3(\"01234567:0123456789A\") [%s]\n", - xa3.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa4(\"01234567-0123456789AB\") [%s]\n", - xa4.to_string())); - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa5(\"01234567.012345-6789AB\") [%s]\n", - xa5.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa6(\"01234567:012345-6789AB\") [%s]\n", - xa6.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa7(\"01234567-012345-6789AB\") [%s]\n", - xa7.to_string())); - - // assignment - xa1 = xa3; - ACE_ASSERT(xa1 == xa3); - MacAddress mac; - ACE_ASSERT(xa4.get_hostid(mac) == 1); - ACE_ASSERT(mac.valid() == 1); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa4:get_hostid(\"01:23:45:67:89:ab\") [%s]\n", mac.to_string())); - - const char *ptr = (const char *)xa7; - ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa7-ptr(\"01234567-012345-6789AB\") [%s]\n", ptr)); - -} - -/* - MacAddress( void); - - MacAddress( const char *inaddr); - MacAddress( const MacAddress &macaddr); - MacAddress( const GenAddress &genaddr); - ~MacAddress(); -* SmiUINT32 get_syntax(); -* SnmpSyntax& operator=( SnmpSyntax &val); - MacAddress& operator=( const MacAddress &macaddress); -* SnmpSyntax *clone() const; - virtual char *to_string(); - virtual operator const char *() const; - virtual addr_type get_type() const; - unsigned int hashFunction() const; - -// MAC address format -// -// MAC ADDRESS -// 01 02 03 04 05 06 -// XX:XX:XX:XX:XX:XX -// Valid input format -// -// XXXXXXXXXXXX -// Total length must be 17 -// Each char must take on value 0-F -// - -*/ - -static void TestMacAddress() -{ - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress: Tests\n")); - - MacAddress ma1; - ACE_ASSERT(ma1.valid() == 0); - ACE_ASSERT(ma1.get_type() == type_mac); - MacAddress ma2("01:23:45:67:89:AB"); - ACE_ASSERT(ma2.valid() == 1); - ACE_ASSERT(ma2.get_type() == type_mac); - MacAddress ma3("0123456789ABCEFGHI"); // invalid string - ACE_ASSERT(ma3.valid() == 0); - ACE_ASSERT(ma3.get_type() == type_mac); - GenAddress ga("01:23:45:67:89:AB"); // mac address - MacAddress ma4(ma2); - ACE_ASSERT(ma4.valid() == 1); - ACE_ASSERT(ma4.get_type() == type_mac); - MacAddress ma5(ga); - ACE_ASSERT(ma5.valid() == 0); - ACE_ASSERT(ma5.get_type() == type_mac); - - ma1 = ma2; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma1(\"01:23:45:67:89:AB\") [%s]\n", - ma1.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma2(\"01:23:45:67:89:AB\") [%s]\n", - ma2.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma3(\"\") [%s]\n", - ma3.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma4(\"01:23:45:67:89:AB\") [%s]\n", - ma4.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma5(\"\") [%s]\n", - ma5.to_string())); - const char * ptr = (const char *)ma5; - ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma5(\"\") [%s]\n", - ptr)); - - // hashFunction crashes if not usedwith valid fn - int x = ma2.hashFunction(); - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma2.hashFunction(\"483201\") [%d]\n", - x)); -} - -/* - UdpAddress( void); - UdpAddress( const char *inaddr); - UdpAddress( const UdpAddress &udpaddr); - UdpAddress( const GenAddress &genaddr); - UdpAddress( const IpAddress &ipaddr); - ~UdpAddress(); - SmiUINT32 get_syntax(); - SnmpSyntax& operator=( SnmpSyntax &val); - UdpAddress& operator=( const UdpAddress &udpaddr); - SnmpSyntax *clone() const; - virtual char *to_string() ; - virtual operator const char *() const; - void set_port( const unsigned short p); - unsigned short get_port() const; - virtual addr_type get_type() const; - - // look for port info @ the end of the string - // port can be delineated by a ':' or a '/' - // if neither are present then just treat it - // like a normal IpAddress - - */ - -static void TestUdpAddress() -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress: Tests\n")); - - UdpAddress ua1; - ACE_ASSERT(ua1.valid() == 0); - ACE_ASSERT(ua1.get_type() == type_udp); - - // semantics of not setting the port here are bizzare? - UdpAddress ua2("127.0.0.1:161"); - ACE_ASSERT(ua2.valid() == 1); - ACE_ASSERT(ua2.get_type() == type_udp); - - UdpAddress ua3(ua2); - ACE_ASSERT(ua3.valid() == 1); - ACE_ASSERT(ua3.get_type() == type_udp); - - GenAddress ga("localhost"); - UdpAddress ua4(ga); - ACE_ASSERT(ua4.valid() == 1); - ACE_ASSERT(ua4.get_type() == type_udp); - - IpAddress ia("localhost"); - UdpAddress ua5(ga); - ACE_ASSERT(ua5.valid() == 1); - ACE_ASSERT(ua5.get_type() == type_udp); - - UdpAddress *ua6 = new UdpAddress("localhost:161"); - ACE_ASSERT(ua6->valid() == 1); - ACE_ASSERT(ua6->get_type() == type_udp); - - UdpAddress ua7 = UdpAddress("localhost/162"); - ACE_ASSERT(ua7.valid() == 1); - ACE_ASSERT(ua7.get_type() == type_udp); - - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua1(\"\") [%s]\n", - ua1.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua2(\"127.0.0.1:161\") [%s]\n", - ua2.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua3(ua2)(\"127.0.0.1:161\") [%s]\n", - ua3.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua4(GenAddress)(\"127.0.0.1\") [%s]\n", - ua4.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua5(IpAddress)(\"127.0.0.1\") [%s]\n", - ua5.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua6()(\"localhost:161\") [%s]\n", - ua6->to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua7()(\"localhost/162\") [%s]\n", - ua7.to_string())); - - delete ua6; // destructor - - // assignement tests. - ua1 = ua2; - ACE_ASSERT(ua1 == ua2); - ACE_ASSERT(ua1.valid() == 1); - ua1 = ua1; - ACE_ASSERT(ua1 == ua1); - ACE_ASSERT(ua1.valid() == 1); - - // set/get port - ua1.set_port(333); - ACE_ASSERT(ua1.get_port() == 333); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua1.set_port()(\"333\") [%s]\n", - (const char *)ua1)); - -} - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Address_Test")); - - TestGenAddr(); - TestIpAddress(); - TestUdpAddress(); - TestMacAddress(); - TestNetbiosAddress(); - TestIpxAddress(); - - ACE_END_TEST; - return 0; -} diff --git a/ACE/ASNMP/tests/Counter64_Test.cpp b/ACE/ASNMP/tests/Counter64_Test.cpp deleted file mode 100644 index f0b9ee8ad56..00000000000 --- a/ACE/ASNMP/tests/Counter64_Test.cpp +++ /dev/null @@ -1,156 +0,0 @@ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - -#include "ace/OS_main.h" -#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 -#define ULLONG unsigned __int64 -#else -#define LLONG long long -#define ULLONG unsigned long long -#endif - -/* - Counter64( unsigned long long llw = 0); - Counter64( unsigned long hiparm, unsigned long loparm); - Counter64( const Counter64 &ctr64); - ~Counter64(); - SmiUINT32 get_syntax(); - long double to_long_double() const; - Counter64& assign( long double ld); - unsigned long high() const; - unsigned long low() const; - void set_high( const unsigned long h); - void set_low( const unsigned long l); - Counter64& operator=( const unsigned long long rhs); - Counter64& operator=( const Counter64 &rhs); - char *to_string(); - SnmpSyntax *clone() const; - SnmpSyntax& operator=( SnmpSyntax &val); - int valid() const; - operator unsigned long long(); - */ - -static void TestCounter64() -{ -#if !defined (ACE_WIN32) - static unsigned long ul = ULONG_MAX; - LLONG ll = (LLONG) 0x7fffffffffffffffLL; - LLONG mll = (LLONG) ((-ll) - 1); - ULLONG ull = (ULLONG) 0xffffffffffffffffULL; - long double ld = (LLONG) ll; - - cerr << "max unsigned long long is " << ull << endl; - cerr << "max long long is " << ll << endl; - cerr << "min long long is " << mll << endl; - - Counter64 c1; - ACE_ASSERT(c1.valid() == 1); - Counter64 c2(ul, ul); - ACE_ASSERT(c2.valid() == 1); - ACE_ASSERT(c2.high() == ul); - ACE_ASSERT(c2.low() == ul); - - Counter64 c3(ul); - ACE_ASSERT(c3.valid() == 1); - ACE_ASSERT(c3.low() == ul); - - Counter64 c4(c2); - ACE_ASSERT(c4.valid() == 1); - ACE_ASSERT(c4.high() == ul); - ACE_ASSERT(c4.low() == ul); - - Counter64 c5(0); - ACE_ASSERT(c5.valid() == 1); - - Counter64 c6; - c6.assign(ld); - ACE_ASSERT(c6.to_long_double() == ld); - - Counter64 c7(ull); - ACE_ASSERT(c7 == ull); - - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c1(\"\") [%s]\n", - c1.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c2(LONG_MAX,LONG_MAX) [%s]\n", - c2.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c3(LONG_MAX) [%s]\n", - c3.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c4(c2) [%s]\n", - c4.to_string())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c5(0) [%s]\n", - c5.to_string())); - - // misc routines - c1.set_low(1); - c1.set_high(2); - ACE_ASSERT(c1.low() == 1); - ACE_ASSERT(c1.high() == 2); - // assignment - c5 = c4; - ACE_ASSERT(c5 == c4); - c4 = c4; - ACE_ASSERT(c5 == c4); - c5 = ll; - ACE_ASSERT(c5 == static_cast (ll)); - // try simple arithmetic (needs more test cases) - c5 = mll; - c5 = c5 + (ULLONG) 10; - ACE_ASSERT(c5 == static_cast (mll + 10)); -#endif /*ACE_WIN32 */ -} - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Counter64_Test")); - - TestCounter64(); - - ACE_END_TEST; - return 0; -} diff --git a/ACE/ASNMP/tests/Counter_Test.cpp b/ACE/ASNMP/tests/Counter_Test.cpp deleted file mode 100644 index c6b4b4c9b72..00000000000 --- a/ACE/ASNMP/tests/Counter_Test.cpp +++ /dev/null @@ -1,136 +0,0 @@ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - -#include "ace/OS_main.h" -#include "asnmp/counter.h" -#include "test_config.h" - -ACE_RCSID(tests, Counter_Test, "$Id$") - -/* - Counter32( void); - Counter32( const unsigned long i); - Counter32( const Counter32 &c); -* SmiUINT32 get_syntax(); -* SnmpSyntax *clone() const; -* SnmpSyntax& operator=( SnmpSyntax &val); - Counter32& operator=( const Counter32 &uli); - Counter32& operator=( const unsigned long i); - operator unsigned long(); - - -- comments tyis type appears to be a wrapper class and not - a true SNMP counter. Practical for nms side,yet may lead to - some confusion if implementing an agent with this class. - - Per RFC 1155 sec 3.2.3.3 - This application-wide type represents a non-negative integer which - monotonically increases until it reaches a maximum value, when it - wraps around and starts increasing again from zero. This memo - specifies a maximum value of 2^32-1 for counters -*/ - -static void TestCounter() -{ -#if !defined (ACE_WIN32) - long l = LONG_MAX, nl = LONG_MIN; // limits.h - unsigned long ul = ULONG_MAX, def = 0; - int i = INT_MAX, ni = INT_MIN; - unsigned int ui = UINT_MAX; - unsigned short us = 10; - short si = static_cast (65535); - - // constructors - Counter32 c1; - ACE_ASSERT(c1 == def); - Counter32 c2(l); - ACE_ASSERT(c2 == static_cast (l)); - Counter32 c3(nl); - ACE_ASSERT(c3 == static_cast (nl)); - Counter32 c4(ul); - ACE_ASSERT(c4 == ul); - Counter32 c5(i); - ACE_ASSERT(c5 == static_cast (i)); - Counter32 c6(ni); - ACE_ASSERT(c6 == static_cast (ni)); - Counter32 c7(ui); - ACE_ASSERT(c7 == ui); - Counter32 *c8 = new Counter32(c5); - ACE_ASSERT(c8 != 0); - delete c8; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c1(\"\") [%u]\n", - (unsigned long)c1)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c2(\"%u\") [%u]\n", - l, (unsigned long)c2)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c3(\"%u\") [%u]\n", - nl, (unsigned long)c3)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c4(\"%u\") [%u]\n", - ul, (unsigned long)c4)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c5(\"%u\") [%u]\n", - i, (unsigned long)c5)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c6(\"%u\") [%u]\n", - ni, (unsigned long)c6)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) c7(\"%u\") [%u]\n", - ui, (unsigned long)c7)); - - // assignent - c1 = c2; // obj - ACE_ASSERT(c1 == c2); - c1 = c1; // self - ACE_ASSERT(c1 == c1); - c1 = def; // unsigned long - ACE_ASSERT(c1 == def); - c1 = us; // unsigned short - ACE_ASSERT(c1 == static_cast (us)); - c1 = si; // unsigned short - ACE_ASSERT(c1 == static_cast (si)); -#endif /*ACE_WIN32*/ -} - - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Counter_Test")); - - TestCounter(); - - ACE_END_TEST; - return 0; -} diff --git a/ACE/ASNMP/tests/Gauge_Test.cpp b/ACE/ASNMP/tests/Gauge_Test.cpp deleted file mode 100644 index 45a4ac279e7..00000000000 --- a/ACE/ASNMP/tests/Gauge_Test.cpp +++ /dev/null @@ -1,133 +0,0 @@ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - -#include "ace/OS_main.h" -#include "asnmp/gauge.h" -#include "test_config.h" - -ACE_RCSID (tests, - Gauge_Test, - "$Id$") - -/* - Gauge32( void); - Gauge32( const unsigned long i); - Gauge32 ( const Gauge32 &g); - ~Gauge32(); - SmiUINT32 get_syntax(); - SnmpSyntax *clone() const; - Gauge32& operator=( const Gauge32 &uli); - Gauge32& operator=( const unsigned long i); - operator unsigned long(); - SnmpSyntax& operator=( SnmpSyntax &val); - --- What is a Gauge? According to RFC 1155 section: 3.2.3.4 - This application-wide type represents a non-negative integer - which may increase or decrease, but which latches at a maximum - value of 2^32-1 (4294967295 dec) for gauges. - */ -static void -TestGuage (void) -{ -#if !defined (ACE_WIN32) - long l = LONG_MAX, nl = LONG_MIN; // limits.h - unsigned long ul = ULONG_MAX, def = 0; - int i = INT_MAX, ni = INT_MIN; - unsigned int ui = UINT_MAX; - unsigned short us = 10; - short si = static_cast (65535); - - // constructors - Gauge32 g1; - ACE_ASSERT(g1 == def); - Gauge32 g2(l); - ACE_ASSERT(g2 == static_cast (l)); - Gauge32 g3(nl); - ACE_ASSERT(g3 == static_cast (nl)); - Gauge32 g4(ul); - ACE_ASSERT(g4 == ul); - Gauge32 g5(i); - ACE_ASSERT(g5 == static_cast (i)); - Gauge32 g6(ni); - ACE_ASSERT(g6 == static_cast (ni)); - Gauge32 g7(ui); - ACE_ASSERT(g7 == ui); - Gauge32 *g8 = new Gauge32(g5); - ACE_ASSERT(g8 != 0); - delete g8; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) g1(\"\") [%u]\n", - (unsigned long)g1)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) g2(\"%u\") [%u]\n", - l, (unsigned long)g2)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) g3(\"%u\") [%u]\n", - nl, (unsigned long)g3)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) g4(\"%u\") [%u]\n", - ul, (unsigned long)g4)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) g5(\"%u\") [%u]\n", - i, (unsigned long)g5)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) g6(\"%u\") [%u]\n", - ni, (unsigned long)g6)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) g7(\"%u\") [%u]\n", - ui, (unsigned long)g7)); - - // assignent - g1 = g2; // obj - ACE_ASSERT(g1 == g2); - g1 = g1; // self - ACE_ASSERT(g1 == g1); - g1 = def; // unsigned long - ACE_ASSERT(g1 == def); - g1 = us; // unsigned short - ACE_ASSERT(g1 == static_cast (us)); - g1 = si; // unsigned short - ACE_ASSERT(g1 == static_cast (si)); -#endif /*ACE_WIN32*/ -} - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Gauge_Test")); - - TestGuage(); - - ACE_END_TEST; - return 0; -} diff --git a/ACE/ASNMP/tests/Integer_Test.cpp b/ACE/ASNMP/tests/Integer_Test.cpp deleted file mode 100644 index 8cea7e33f1b..00000000000 --- a/ACE/ASNMP/tests/Integer_Test.cpp +++ /dev/null @@ -1,200 +0,0 @@ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - -#include "ace/OS_main.h" -#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; -static int i = INT_MAX, ni = INT_MIN; -static unsigned int ui = UINT_MAX; -static unsigned short us = 10; -static unsigned short si = 32768; - #endif /*ACE_WIN32*/ - -/* - SnmpInt32( void); - SnmpInt32 (const long i); - SnmpInt32 (const SnmpInt32 &c); - virtual ~SnmpInt32(); - virtual SmiUINT32 get_syntax(); - SnmpInt32& operator=( const long i); - SnmpInt32& operator=( const SnmpInt32 &li); - operator long(); - char *to_string(); - SnmpSyntax *clone() const; - SnmpSyntax& operator=( SnmpSyntax &val); - int valid() const; - */ - -static void TestInteger32() -{ -#if !defined (ACE_WIN32) - // constructors - SnmpInt32 i1; - ACE_ASSERT(i1 == static_cast (def)); - SnmpInt32 i2(l); - ACE_ASSERT(i2 == l); - SnmpInt32 i3(nl); - ACE_ASSERT(i3 == nl); - SnmpInt32 i4(ul); - ACE_ASSERT(i4 == static_cast (ul)); - SnmpInt32 i5(i); - ACE_ASSERT(i5 == i); - SnmpInt32 i6(ni); - ACE_ASSERT(i6 == ni); - SnmpInt32 i7(ui); - ACE_ASSERT(i7 == static_cast (ui)); - SnmpInt32 *i8 = new SnmpInt32(i5); - ACE_ASSERT(i8 != 0); - delete i8; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) i1(\"\") [%u]\n", - (unsigned long)i1)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) i2(\"%u\") [%u]\n", - l, (unsigned long)i2)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) i3(\"%u\") [%u]\n", - nl, (unsigned long)i3)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) i4(\"%u\") [%u]\n", - ul, (unsigned long)i4)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) i5(\"%u\") [%u]\n", - i, (unsigned long)i5)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) i6(\"%u\") [%u]\n", - ni, (unsigned long)i6)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) i7(\"%u\") [%u]\n", - ui, (unsigned long)i7)); - - // assignent - i1 = i2; // obj - ACE_ASSERT(i1 == i2); - i1 = i1; // self - ACE_ASSERT(i1 == i1); - i1 = def; // unsigned long - ACE_ASSERT(i1 == static_cast (def)); - i1 = us; // unsigned short - ACE_ASSERT(i1 == static_cast (us)); - i1 = si; // unsigned short - ACE_ASSERT(i1 == static_cast (si)); - #endif /*ACE_WIN32*/ -} - -/* - SnmpUInt32( void); - SnmpUInt32 (const unsigned long i); - SnmpUInt32( const SnmpUInt32 &c); - virtual ~SnmpUInt32(); - virtual SmiUINT32 get_syntax(); - SnmpUInt32& operator=( const unsigned long i); - SnmpUInt32& operator=( const SnmpUInt32 &uli); - operator unsigned long(); - virtual char *to_string(); - virtual SnmpSyntax *clone() const; - SnmpSyntax& operator=( SnmpSyntax &val); - int valid() const; - */ -static void TestUnsignedInteger32() -{ -#if !defined (ACE_WIN32) - // constructors - SnmpUInt32 u1; - ACE_ASSERT(u1 == def); - SnmpUInt32 u2(l); - ACE_ASSERT(u2 == static_cast (l)); - SnmpUInt32 u3(nl); - ACE_ASSERT(u3 == static_cast (nl)); - SnmpUInt32 u4(ul); - ACE_ASSERT(u4 == ul); - SnmpUInt32 u5(i); - ACE_ASSERT(u5 == static_cast (i)); - SnmpUInt32 u6(ni); - ACE_ASSERT(u6 == static_cast (ni)); - SnmpUInt32 u7(ui); - ACE_ASSERT(u7 == ui); - SnmpUInt32 *u8 = new SnmpUInt32(u5); - ACE_ASSERT(u8 != 0); - delete u8; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) u1(\"\") [%u]\n", - (unsigned long)u1)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) u2(\"%u\") [%u]\n", - l, (unsigned long)u2)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) u3(\"%u\") [%u]\n", - nl, (unsigned long)u3)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) u4(\"%u\") [%u]\n", - ul, (unsigned long)u4)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) u5(\"%u\") [%u]\n", - i, (unsigned long)u5)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) u6(\"%u\") [%u]\n", - ni, (unsigned long)u6)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) u7(\"%u\") [%u]\n", - ui, (unsigned long)u7)); - - // assignent - u1 = u2; // obj - ACE_ASSERT(u1 == u2); - u1 = u1; // self - ACE_ASSERT(u1 == u1); - u1 = def; // unsigned long - ACE_ASSERT(u1 == def); - u1 = us; // unsigned short - ACE_ASSERT(u1 == static_cast (us)); - u1 = si; // unsigned short - ACE_ASSERT(u1 == static_cast (si)); -#endif /*ACE_WIN32 */ -} - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Integer_Test")); - - TestInteger32(); - - TestUnsignedInteger32(); - - ACE_END_TEST; - return 0; -} diff --git a/ACE/ASNMP/tests/Makefile.am b/ACE/ASNMP/tests/Makefile.am deleted file mode 100644 index b8ac30972bf..00000000000 --- a/ACE/ASNMP/tests/Makefile.am +++ /dev/null @@ -1,173 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - -## Makefile.asnmp_tests_Address_Test.am - -noinst_PROGRAMS = Address_Test - -Address_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -Address_Test_SOURCES = \ - Address_Test.cpp \ - test_config.h - -Address_Test_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Makefile.asnmp_tests_Counter64_Test.am - -noinst_PROGRAMS += Counter64_Test - -Counter64_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -Counter64_Test_SOURCES = \ - Counter64_Test.cpp \ - test_config.h - -Counter64_Test_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Makefile.asnmp_tests_Counter_Test.am - -noinst_PROGRAMS += Counter_Test - -Counter_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -Counter_Test_SOURCES = \ - Counter_Test.cpp \ - test_config.h - -Counter_Test_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Makefile.asnmp_tests_Gauge_Test.am - -noinst_PROGRAMS += Gauge_Test - -Gauge_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -Gauge_Test_SOURCES = \ - Gauge_Test.cpp \ - test_config.h - -Gauge_Test_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Makefile.asnmp_tests_Integer_Test.am - -noinst_PROGRAMS += Integer_Test - -Integer_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -Integer_Test_SOURCES = \ - Integer_Test.cpp \ - test_config.h - -Integer_Test_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Makefile.asnmp_tests_Octet_Test.am - -noinst_PROGRAMS += Octet_Test - -Octet_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -Octet_Test_SOURCES = \ - Octet_Test.cpp \ - test_config.h - -Octet_Test_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Makefile.asnmp_tests_Oid_Test.am - -noinst_PROGRAMS += Oid_Test - -Oid_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -Oid_Test_SOURCES = \ - Oid_Test.cpp \ - test_config.h - -Oid_Test_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Makefile.asnmp_tests_Target_Test.am - -noinst_PROGRAMS += Target_Test - -Target_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -Target_Test_SOURCES = \ - Target_Test.cpp \ - test_config.h - -Target_Test_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Makefile.asnmp_tests_Varbind_Test.am - -noinst_PROGRAMS += Varbind_Test - -Varbind_Test_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/ASNMP - -Varbind_Test_SOURCES = \ - Varbind_Test.cpp \ - test_config.h - -Varbind_Test_LDADD = \ - $(top_builddir)/ASNMP/asnmp/libasnmp.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/ASNMP/tests/Octet_Test.cpp b/ACE/ASNMP/tests/Octet_Test.cpp deleted file mode 100644 index a32f1cd2f09..00000000000 --- a/ACE/ASNMP/tests/Octet_Test.cpp +++ /dev/null @@ -1,156 +0,0 @@ -// $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 -// -// ============================================================================ - -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - -#include "ace/OS_main.h" -#include "ace/OS_NS_string.h" -#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); - ~OctetStr(); - - SmiUINT32 get_syntax(); - void set_data( const SmiBYTE* string, long int size = -1); - OctetStr& operator=( const char *string); - OctetStr& operator=( const OctetStr &octet); - - bool operator==( const OctetStr &lhs, const OctetStr &rhs); - bool operator!=( const OctetStr &lhs, const OctetStr &rhs); - bool operator<( const OctetStr &lhs, const OctetStr &rhs); - bool operator<=( const OctetStr &lhs,const OctetStr &rhs); - bool operator>( const OctetStr &lhs, const OctetStr &rhs); - bool operator>=( const OctetStr &lhs, const OctetStr &rhs); - bool operator==( const OctetStr &lhs,const char *rhs); - bool operator!=( const OctetStr &lhs,const char *rhs); - bool operator<( const OctetStr &lhs,const char *rhs); - bool operator<=( const OctetStr &lhs,char *rhs); - bool operator>( const OctetStr &lhs,const char *rhs); - bool operator>=( const OctetStr &lhs,const char *rhs); - OctetStr& operator+=( const SmiBYTE *a); - OctetStr& operator+=( const char c); - OctetStr& operator+=( const OctetStr& octetstr); - SmiBYTE& operator[]( int position); - int nCompare( const long n, const OctetStr &o) const; - size_t length() const ; - int valid() const; - SmiBYTE *data() const; - char *to_string(); - char *to_string_hex(); - SnmpSyntax *clone() const; - SnmpSyntax& operator=( SnmpSyntax &val); - */ - -static void TestOctet() -{ - const char *str = "A test of octet strings...!@@#$%^&*()_+|~{}:,./<>?"; - OctetStr o1; - ACE_ASSERT(o1.valid() == 1); - ACE_ASSERT(o1.length() == 0); - ACE_ASSERT(o1.data() != (unsigned char *)0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o1(\"\") [%s]\n", - o1.to_string())); - o1.set_data((SmiBYTE *)str); - ACE_ASSERT(!ACE_OS::strcmp(str, (char *)o1.data())); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o1(\"str\") [%s]\n", - o1.to_string())); - - OctetStr o2(str); - ACE_ASSERT(o2.valid() == 1); - ACE_ASSERT(o2.data() != (unsigned char *)0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o2(\"str\") [%s]\n", - o2.to_string())); - - OctetStr o3(str, 4); // test setting less than full string length - ACE_ASSERT(o3.valid() == 1); - ACE_ASSERT(o3.length() == 4); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o3(\"A te\") [%s]\n", - o3.to_string())); - - OctetStr o4(o3); // test setting less than full string length - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o4(\"A te\") [%s]\n", - o4.to_string())); - ACE_ASSERT(o4.valid() == 1); - ACE_ASSERT(o4.length() == 4); - - OctetStr o5; - o5 = str; - ACE_ASSERT(o5.valid() == 1); - ACE_ASSERT(o5.length() == ACE_OS::strlen(str)); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o5(\"str\") [%s]\n", - o5.to_string())); - - OctetStr o6; - o6 = o5; - ACE_ASSERT(o6.valid() == 1); - ACE_ASSERT(o5.length() == o6.length()); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o6(\"str\") [%s]\n", - o6.to_string())); - - o6 += o3; - o6 = ""; - o6 += str; - o6 += '#'; - ACE_ASSERT(o6[0] == (SmiBYTE) 'A'); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o6(\"str\") [%s]\n", - o6.to_string())); - - ACE_ASSERT(!(o3 < o3)); - ACE_ASSERT(!(o3 > o3)); - ACE_ASSERT(o3 >= o3); - ACE_ASSERT(o3 <= o3); - ACE_ASSERT(o3 == o3); - ACE_ASSERT(!(o3 != o3)); - -} - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Octet_Test")); - - TestOctet(); - ACE_END_TEST; - return 0; -} diff --git a/ACE/ASNMP/tests/Oid_Test.cpp b/ACE/ASNMP/tests/Oid_Test.cpp deleted file mode 100644 index 7add52bd790..00000000000 --- a/ACE/ASNMP/tests/Oid_Test.cpp +++ /dev/null @@ -1,181 +0,0 @@ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - -#include "ace/OS_main.h" -#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); - Oid(const unsigned long *raw_oid, size_t oid_len); - ~Oid(); - - SmiUINT32 get_syntax(); - Oid& operator=( const Oid &oid); - bool operator==( const Oid &lhs,const Oid &rhs); - bool operator!=( const Oid &lhs,const Oid &rhs); - bool operator<( const Oid &lhs,const Oid &rhs); - bool operator<=( const Oid &lhs,const Oid &rhs); - bool operator>( const Oid &lhs,const Oid &rhs); - bool operator>=( const Oid &lhs,const Oid &rhs); - Oid& operator+=( const char *a); - Oid& operator+=( const unsigned long i); - Oid& operator+=( const Oid &o); - unsigned long & operator[]( size_t position); - SmiLPOID oidval(); - void set_data( const char *dotted_oid_string); - void set_data( const unsigned long *raw_oid, const size_t oid_len); - size_t length() const; - void trim( const size_t how_many = 1); - int suboid( const size_t start, const size_t end, Oid& new_oid); - int left_comparison( const unsigned long n, const Oid &o) const; - int right_comparison( const unsigned long n, const Oid &o) const; - int valid() const; - char *to_string(); - SnmpSyntax *clone() const; - SnmpSyntax& operator=( SnmpSyntax &val); - */ - -static void OidTest() -{ - Oid d1; - ACE_ASSERT(d1.valid() == 0); - ACE_ASSERT(d1.length() == 0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d1(\"\") [%s]\n", - d1.to_string())); - - Oid d2("1.2.3"); - ACE_ASSERT(d2.valid() == 1); - ACE_ASSERT(d2.length() == 3); - ACE_ASSERT(d2[0] == (unsigned long) 1); - ACE_ASSERT(d2[1] == (unsigned long) 2); - ACE_ASSERT(d2[2] == (unsigned long) 3); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d2(\"1.2.3\") [%s]\n", - d2.to_string())); - - Oid d3(d2); - ACE_ASSERT(d3.valid() == 1); - ACE_ASSERT(d3.length() == 3); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d3(\"d2\") [%s]\n", - d3.to_string())); - - unsigned long t[3] = {2,3,4}; - Oid d4((unsigned long *)&t, sizeof(t)/sizeof(long)); - ACE_ASSERT(d4.valid() == 1); - ACE_ASSERT(d4.length() == 3); - ACE_ASSERT(d4[0] == (unsigned long) 2); - ACE_ASSERT(d4[1] == (unsigned long) 3); - ACE_ASSERT(d4[2] == (unsigned long) 4); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d4(\"long(2.3.4)\") [%s]\n", - d4.to_string())); - - // suboid - Oid d5; - ACE_ASSERT(d4.suboid(d5, 1,1) == 0); // 2,3,4, 1,1 == 3 - ACE_ASSERT(d5.length() == 1); - ACE_ASSERT(d5.valid() == 1); - ACE_ASSERT(d5[0] == 3); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d6::suboid(d5,1,1) [%s]\n", - d5.to_string())); - - // trim - Oid d7(d4); - ACE_ASSERT(d7.valid() == 1); - d7.trim(); - ACE_ASSERT(d7.length() == d4.length() -1); - - // compare methods - ACE_ASSERT(d7.left_comparison( d7.length(), d7) == 0); - ACE_ASSERT(d4.right_comparison( d4.length(), d4) == 0); - - // assignment - d1 = d4; - ACE_ASSERT(d1.valid() == 1); - ACE_ASSERT(d1 == d4); - d2 = "5.6.7"; - ACE_ASSERT(d2.valid() == 1); - ACE_ASSERT(d2[2] == (unsigned long) 7); - d1 = "8.9.10"; - ACE_ASSERT(d1.valid() == 1); - - // concat - unsigned long ll = ULONG_MAX; - d1 = ""; - d1 += (unsigned long)0; - d1 += ll; - d1 += ll; - d1 += "0"; - ACE_ASSERT(d1.valid() == 1); - ACE_ASSERT(d1.length() == 4); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d1(0,max,max,0) [%s]\n", - d1.to_string())); - ACE_ASSERT(d1[0] == (unsigned long)0); - ACE_ASSERT(d1[1] == ll); - ACE_ASSERT(d1[2] == ll); - ACE_ASSERT(d1[3] == (unsigned long)0); - - d2 += d1; - ACE_ASSERT(d2.valid() == 1); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:(5.6.7.8.9.10) [%s]\n", - d2.to_string())); - - // test out max Oid string... - - // relational operators oid,oid - ACE_ASSERT(d2 == d2); - ACE_ASSERT(!(d2 != d2)); - ACE_ASSERT(!(d2 < d2)); - ACE_ASSERT(!(d2 > d2)); - ACE_ASSERT(d2 >= d2); - ACE_ASSERT(d2 <= d2); - -} - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Oid_Test")); - OidTest(); - ACE_END_TEST; - return 0; -} diff --git a/ACE/ASNMP/tests/Target_Test.cpp b/ACE/ASNMP/tests/Target_Test.cpp deleted file mode 100644 index 28302e11cfd..00000000000 --- a/ACE/ASNMP/tests/Target_Test.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// $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 -// -// ============================================================================ - -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - -#include "ace/OS_main.h" -#include "asnmp/octet.h" -#include "asnmp/target.h" -#include "test_config.h" - -ACE_RCSID(tests, Target_Test, "$Id$") - -/* - Percieved Problems with this CTarget aka UdpTarget Interface: - - 1) can't set snmp version during constructor (default value?) - 2) doesn't use ANSI C++ String class (still uses char *) - 3) Makes it easy to mix up read and write comm strs (could be diff types) - 3) so many get/set's, leads one to rethink the design/use of UdpTarget - 4) Use of resolve_to_C smells like a HACK... - 5) No valid() member function returns 1 even if no address given.. - 6) No to_string()?! (Fixed) - 7) can't access retry, timeout parameters... - 8) can't assign or equate two UdpTargets - - UdpTarget( void); - UdpTarget( const Address &address); - UdpTarget( const UdpTarget &target); - UdpTarget( const Address &address, // address - const char *read_community_name, // read community name - const char *write_community_name); // write community name - UdpTarget( const Address &address, // address - const OctetStr &read_community_name, // read community - const OctetStr &write_community_name); // write community - ~UdpTarget(); - - SnmpTarget *clone() const; - void get_readcommunity( OctetStr& read_community_oct); - void set_readcommunity( const OctetStr& read_community); - void get_writecommunity( OctetStr &write_community_oct); - void set_writecommunity( const OctetStr& write_community); - void get_address( UdpAddress & address); - int set_address( Address &address); - snmp_version get_version(); - void set_version( const snmp_version v); - - UdpTarget& operator=( const UdpTarget& target); - friend bool operator==( const UdpTarget &lhs, const UdpTarget &rhs); - - */ - -static void TestSnmpTarget() -{ - OctetStr rd("rd_comm"), wr("wr_comm"); - ACE_ASSERT(rd.valid() == 1); - ACE_ASSERT(wr.valid() == 1); - - // constructor and get tests - UdpAddress ga; - ACE_ASSERT(ga.valid() == 0); - - UdpTarget c1; - ACE_ASSERT(c1.valid() == 0); - OctetStr a, b("public"), c("private"); - c1.get_read_community(a); - ACE_ASSERT(a == b); - c1.get_write_community(a); - ACE_ASSERT(a == c); - c1.get_address (ga); - ACE_ASSERT(c1.get_version() == version1); - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpTarget:c1(\"\") [%s]\n", - c1.to_string())); - - IpAddress ip("127.0.0.1"); - UdpTarget c2(ip); - ACE_ASSERT(c2.valid() == 1); - c2.get_address (ga); - ACE_ASSERT(ga.valid() == 1); - ACE_ASSERT(c2.get_version() == version1); - ACE_ASSERT(ga.valid() == 1); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpTarget:c2(\"\") [%s]\n", - c2.to_string())); - - UdpTarget *c5 = new UdpTarget(c2); - ACE_ASSERT(c5 != 0); - ACE_ASSERT(c5->valid() == 1); - c5->get_address (ga); - ACE_ASSERT(ga.valid() == 1); - ACE_ASSERT(c5->get_version() == version1); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpTarget:c5(\"\") [%s]\n", - c5->to_string())); - delete c5; - -// these are not supported yet -// ACE_ASSERT(c5 == c5); -// c5 = c2; -// ACE_ASSERT(c5 == c2); -} - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Target_Test")); - TestSnmpTarget(); - - ACE_END_TEST; - return 0; -} diff --git a/ACE/ASNMP/tests/Varbind_Test.cpp b/ACE/ASNMP/tests/Varbind_Test.cpp deleted file mode 100644 index e9c9ecc923b..00000000000 --- a/ACE/ASNMP/tests/Varbind_Test.cpp +++ /dev/null @@ -1,197 +0,0 @@ -// $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 -// -// ============================================================================ - -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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. --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ - -#include "ace/OS_main.h" -#include "asnmp/oid.h" -#include "asnmp/vb.h" -#include "test_config.h" - -ACE_RCSID(tests, Varbind_Test, "$Id$") -/* - Vb( void); - Vb( const Oid &oid); - Vb( const Vb &vb); - Vb( const Oid& vb, const SnmpSyntax &val, const SmiUINT32=SNMP_CLASS_SUCCESS); - ~Vb(); - int valid() const; - Vb& operator=( const Vb &vb); - void set_oid( const Oid& oid); - void get_oid( Oid &oid) const; - void set_null(); - void set_value( const TimeTicks& ticks); - void set_value( const Oid& oid); - void set_value( const Counter32& ctr); - void set_value( const Counter64& ctr); - void set_value( const Gauge32& ctr); - void set_value( const SnmpUInt32& ctr); - void set_value( const SnmpInt32& ctr); - void set_value( const OctetStr& oct_str); - int get_value( TimeTicks& ticks); - int get_value( Oid& oid); - int get_value( Counter32& ctr); - int get_value( Counter64& ctr); - int get_value( Gauge32& ctr); - int get_value( SnmpUInt32& ctr); - int get_value( SnmpInt32& ctr); - int get_value( OctetStr& oct_str); - int get_value( SnmpSyntax &val); - void set_value( const SnmpSyntax &val); - int get_value( const SnmpSyntax &val); - SmiUINT32 get_syntax(); - friend void set_exception_status( Vb *vb, const SmiUINT32 status); - char *to_string(); - char *to_string_value(); - char *to_string_oid(); - */ - -static void VbTest() -{ -#if !defined (ACE_WIN32) - - Vb v1; - ACE_ASSERT(v1.valid() == 0); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) VarBinad:v1(\"/\") [%s]\n", - v1.to_string())); - - // purpose of this routine?? - set_exception_status( &v1, 10); - - Vb v2(v1); - ACE_ASSERT(v2.valid() == 0); - Oid o1("1.2.3"), o2; - v2.set_oid(o1); - ACE_DEBUG ((LM_DEBUG, "(%P|%t) VarBinad:v2(\"1.2.3/\") [%s]\n", - v2.to_string())); - - v2.get_oid(o2); - ACE_ASSERT(o2 == o1); - ACE_ASSERT(v2.valid() == 0); - v2.set_null(); - ACE_ASSERT(v2.valid() == 0); - v2.get_oid(o2); - - Vb v3; - TimeTicks t(0), t1; - v3.set_oid(o1); - v3.set_value(t); - ACE_ASSERT(v3.valid() == 1); - v3.get_value(t1); - ACE_ASSERT(t == t1); - - Vb v4; - v4.set_oid(o1); - v4.set_value(o1); - ACE_ASSERT(v4.valid() == 1); - v4.get_value(o2); - ACE_ASSERT(o1 == o2); - - Vb v5; - Counter32 c1(12), c2; - v5.set_oid(o1); - v5.set_value(c1); - ACE_ASSERT(v5.valid() == 1); - v5.get_value(c2); - ACE_ASSERT(c1 == c2); - - Vb v6; - Counter64 c3(12345678901234ULL), c4; - v6.set_oid(o1); - v6.set_value(c3); - ACE_ASSERT(v6.valid() == 1); - v6.get_value(c4); - ACE_ASSERT(c3 == c4); - - Vb v7; - Gauge32 g1(0123456), g2; - v7.set_oid(o1); - v7.set_value(g1); - ACE_ASSERT(v7.valid() == 1); - v7.get_value(g2); - ACE_ASSERT(g1 == g2); - - Vb v8; - SnmpInt32 i1(0123456), i2; - v8.set_oid(o1); - v8.set_value(i1); - ACE_ASSERT(v8.valid() == 1); - v8.get_value(i2); - ACE_ASSERT(i1 == i2); - - Vb v9; - SnmpUInt32 u1(0123456), u2; - v9.set_oid(o1); - v9.set_value(u1); - ACE_ASSERT(v9.valid() == 1); - v9.get_value(u2); - ACE_ASSERT(u1 == u2); - - Vb v10; - OctetStr s1(" abcdefghighlmnopqrstuvwxyz!@#$%^&*()"), s2; - v10.set_oid(o1); - v10.set_value(s1); - ACE_ASSERT(v10.valid() == 1); - v10.get_value(s2); - ACE_ASSERT(s1 == s2); - ACE_ASSERT(s1.length() == s2.length()); - - // test assignment over all datatypes - v10 = v5; - ACE_ASSERT(v10 == v5); - - - Vb v11(o1, s1, SNMP_CLASS_SUCCESS); - ACE_ASSERT(v11.valid() == 1); - v11.get_oid(o2); - ACE_ASSERT(o1 == o2); - v11.get_value(s2); - ACE_ASSERT(s1 == s2); -#endif /*if ACE_WIN32*/ -} - -int -ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Varbind_Test")); - VbTest(); - ACE_END_TEST; - return 0; -} - diff --git a/ACE/ASNMP/tests/run_tests.bat b/ACE/ASNMP/tests/run_tests.bat deleted file mode 100644 index 985f88b51db..00000000000 --- a/ACE/ASNMP/tests/run_tests.bat +++ /dev/null @@ -1,44 +0,0 @@ -@echo off -rem To use this either give it no arguments to run all the tests or -rem pass it the test name (without the extention) to run only one -rem test - -if not "%1" == "" goto runtest - -call run_tests - -call run_tests Address_Test -call run_tests Counter64_Test -call run_tests Counter_Test -call run_tests Gauge_Test -call run_tests Integer_Test -call run_tests Octet_Test -call run_tests Oid_Test -call run_tests Target_Test -call run_tests Varbind_Test - -goto done - -:runtest - -echo Running %1 -%1.exe -if errorlevel 0 goto fine -echo. -echo %1 has FAILED!!! -echo. -type %temp%\log\%1.log | find /I "assertion failed" -type %temp%\log\%1.log | find /I "not supported" -type %temp%\log\%1.log | find /I "no such file or directory" -type %temp%\log\%1.log | find /I "invalid argument" -type %temp%\log\%1.log | find /I "timeout" -type %temp%\log\%1.log | find /I "bad file number" -echo. - -goto done -:fine - -rem We should check the log files here to make sure the test ended correctly -rem type %temp%\log\%1.log | find "Ending" - -:done diff --git a/ACE/ASNMP/tests/run_tests.sh b/ACE/ASNMP/tests/run_tests.sh deleted file mode 100755 index c8d911c184c..00000000000 --- a/ACE/ASNMP/tests/run_tests.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -# This is the UNIX version of the one-button ACE tests. -# Contributed by Michael Rueger -# 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 - -# these patterns should not be included in log file -ERROR_MSGS="assertion failed|not supported|No such file or directory|Invalid argument|timeout|Bad file number" - -# these patterns must be included in log file -SUCCESS_MSGS="starting|Ending" - -run() -{ - echo running $1 - /bin/rm -f core - - ./$1 - status=$? - - if [ $status -ne 0 ]; then - echo \"$1\" FAILED with exit status $status!!!! - fi - - if [ -f core ]; then - echo \"$1\" dumped core!!!! - fi - - for i in $SUCCESS_MSGS; do - grep $i log/$1.log >/dev/null - if [ $? -eq 1 ]; then - echo Error in log file no line with $i - fi - done - - for i in $ERROR_MSGS; do - grep $i log/$1.log - done -} - -echo "Starting tests..." -FILES=`ls *_Test 2>/dev/null` - -if [ -z $FILES ]; then - echo "ERROR: no test programs generated matching pattern *_Test." - echo "ERROR: Try compiling the test programs first." - exit 1 -fi - -for i in *_Test -do - run $i -done - -echo "Tests complete..." - - -# EOF diff --git a/ACE/ASNMP/tests/test_config.h b/ACE/ASNMP/tests/test_config.h deleted file mode 100644 index e1e3912c347..00000000000 --- a/ACE/ASNMP/tests/test_config.h +++ /dev/null @@ -1,177 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// = FILENAME -// test_config.h -// -// = AUTHOR -// Prashant Jain , Tim Harrison -// , and David Levine -// -// ============================================================================ - -#ifndef ACE_TEST_CONFIG_H -#define ACE_TEST_CONFIG_H - -#include "ace/ACE.h" -#include "ace/Log_Msg.h" -#include "ace/OS_main.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_time.h" -#include "ace/OS_NS_sys_stat.h" -#include "ace/OS_NS_stdlib.h" - -// FUZZ: disable check_for_streams_include -#include "ace/streams.h" - -#if defined (ACE_WIN32) - -#define ACE_DEFAULT_TEST_FILE ACE_TEXT ("C:\\temp\\ace_test_file") -#define ACE_TEMP_FILE_NAME ACE_TEXT ("C:\\temp\\ace_temp_file") -#define ACE_LOG_DIRECTORY ACE_TEXT ("C:\\temp\\log\\") -#define MAKE_PIPE_NAME(X) ACE_TEXT ("\\\\.\\pipe\\"#X) - -#else - -#define ACE_DEFAULT_TEST_FILE ACE_TEXT ("/tmp/ace_test_file") -#define ACE_TEMP_FILE_NAME ACE_TEXT ("/tmp/ace_temp_file") -#define ACE_LOG_DIRECTORY ACE_TEXT ("log/") -#define MAKE_PIPE_NAME(X) ACE_TEXT (X) - -#endif /* ACE_WIN32 */ - -#ifndef ACE_START_TEST -#define ACE_START_TEST(NAME) \ - const ACE_TCHAR *program = NAME; \ - ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM); \ - if (ace_file_stream.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)); -#endif /* ACE_START_TEST */ - -#ifndef ACE_END_TEST -#define ACE_END_TEST \ - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Ending %s test at %D\n"), program)); \ - ace_file_stream.close (); -#endif /* ACE_END_TEST */ - -#define ACE_NEW_THREAD \ -do {\ - ACE_LOG_MSG->msg_ostream (ace_file_stream.output_file ()); \ - ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER ); \ - ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM); \ -} while (0) - -#define ACE_APPEND_LOG(NAME) \ - const ACE_TCHAR *program = NAME; \ - ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM); \ - if (ace_file_stream.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)); - -#define ACE_END_LOG \ - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Ending %s test at %D\n\n"), program)); \ - ace_file_stream.close (); - -#define ACE_INIT_LOG(NAME) \ - char temp[BUFSIZ]; \ - ACE_OS::sprintf (temp, "%s%s%s", \ - ACE_TEXT_ALWAYS_CHAR (ACE_LOG_DIRECTORY), \ - ACE_TEXT_ALWAYS_CHAR (ACE::basename (NAME, ACE_DIRECTORY_SEPARATOR_CHAR)), \ - ".log"); \ - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Deleting old log file %C (if any)\n\n"), temp)); \ - ACE_OS::unlink (temp); - - -const int ACE_NS_MAX_ENTRIES = 1000; -const int ACE_MAX_TIMERS = 4; -const int ACE_MAX_THREADS = 4; -const int ACE_MAX_DELAY = 10; -const int ACE_MAX_INTERVAL = 0; -const int ACE_MAX_ITERATIONS = 10; -const int ACE_MAX_PROCESSES = 10; - -char ACE_ALPHABET[] = "abcdefghijklmnopqrstuvwxyz"; - -class ACE_Test_Output -{ -public: - ACE_Test_Output (void); - ~ACE_Test_Output (void); - int set_output (const ACE_TCHAR *filename, int append = 0); - ofstream *output_file (void); - void close (void); - -private: - ofstream output_file_; -}; - -static ACE_Test_Output ace_file_stream; - -ACE_Test_Output::ACE_Test_Output (void) -{ -} - -ACE_Test_Output::~ACE_Test_Output (void) -{ -} - -int -ACE_Test_Output::set_output (const ACE_TCHAR *filename, int append) -{ - char temp[BUFSIZ]; - // Ignore the error value since the directory may already exist. - ACE_OS::mkdir (ACE_LOG_DIRECTORY); - ACE_OS::sprintf (temp, "%s%s%s", - ACE_TEXT_ALWAYS_CHAR (ACE_LOG_DIRECTORY), - ACE_TEXT_ALWAYS_CHAR (ACE::basename (filename, ACE_DIRECTORY_SEPARATOR_CHAR)), - ".log"); - - this->output_file_.open (temp, ios::out | (append ? ios::app : ios::trunc)); - if (this->output_file_.bad ()) - return -1; - - ACE_LOG_MSG->msg_ostream (ace_file_stream.output_file ()); - ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER ); - ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM); - - return 0; -} - -ofstream * -ACE_Test_Output::output_file (void) -{ - return &this->output_file_; -} - -void -ACE_Test_Output::close (void) -{ - this->output_file_.flush (); - this->output_file_.close (); -} - -void -randomize (int array[], size_t size) -{ - size_t i; - - for (i = 0; i < size; i++) - array [i] = static_cast (i); - - ACE_OS::srand ((u_int) ACE_OS::time (0L)); - - // Generate an array of random numbers from 0 .. size - 1. - - for (i = 0; i < size; i++) - { - int index = ACE_OS::rand() % static_cast (size); - --size; - int temp = array [index]; - array [index] = array [size]; - array [size] = temp; - } -} - -#endif /* ACE_TEST_CONFIG_H */ diff --git a/ACE/ASNMP/tests/tests.mpc b/ACE/ASNMP/tests/tests.mpc deleted file mode 100644 index df62404642a..00000000000 --- a/ACE/ASNMP/tests/tests.mpc +++ /dev/null @@ -1,91 +0,0 @@ -// $Id$ - -project (asnmp_tests_Oid_Test) : aceexe { - exename = Oid_Test - after += asnmp_lib - libs += asnmp - includes += $(ACE_ROOT)/ASNMP - source_files { - Oid_Test.cpp - } -} - -project (asnmp_tests_Counter_Test) : aceexe { - exename = Counter_Test - after += asnmp_lib - libs += asnmp - includes += $(ACE_ROOT)/ASNMP - source_files { - Counter_Test.cpp - } -} - -project (asnmp_tests_Counter64_Test) : aceexe { - exename = Counter64_Test - after += asnmp_lib - libs += asnmp - includes += $(ACE_ROOT)/ASNMP - source_files { - Counter64_Test.cpp - } -} - -project (asnmp_tests_Integer_Test) : aceexe { - exename = Integer_Test - after += asnmp_lib - libs += asnmp - includes += $(ACE_ROOT)/ASNMP - source_files { - Integer_Test.cpp - } -} - -project (asnmp_tests_Octet_Test) : aceexe { - exename = Octet_Test - after += asnmp_lib - libs += asnmp - includes += $(ACE_ROOT)/ASNMP - source_files { - Octet_Test.cpp - } -} - -project (asnmp_tests_Gauge_Test) : aceexe { - exename = Gauge_Test - after += asnmp_lib - libs += asnmp - includes += $(ACE_ROOT)/ASNMP - source_files { - Gauge_Test.cpp - } -} - -project (asnmp_tests_Address_Test) : aceexe { - exename = Address_Test - after += asnmp_lib - libs += asnmp - includes += $(ACE_ROOT)/ASNMP - source_files { - Address_Test.cpp - } -} - -project (asnmp_tests_Target_Test) : aceexe { - exename = Target_Test - after += asnmp_lib - libs += asnmp - includes += $(ACE_ROOT)/ASNMP - source_files { - Target_Test.cpp - } -} - -project (asnmp_tests_Varbind_Test) : aceexe { - exename = Varbind_Test - after += asnmp_lib - libs += asnmp - includes += $(ACE_ROOT)/ASNMP - source_files { - Varbind_Test.cpp - } -} diff --git a/ACE/AUTHORS b/ACE/AUTHORS deleted file mode 100644 index 3e474e06cc0..00000000000 --- a/ACE/AUTHORS +++ /dev/null @@ -1,13 +0,0 @@ -Douglas C. Schmidt -d.schmidt@vanderbilt.edu - -Professor of Computer Science -Associate Chair of Computer Science and Engineering -Department of Electrical Engineering and Computer Science -Senior Researcher at the Institute for Software Integrated Systems (ISIS) -Vanderbilt University -Nashville, TN 37203 - -www.dre.vanderbilt.edu/~schmidt -TEL: (615) 343-8197 -FAX: (615) 343-7440 diff --git a/ACE/COPYING b/ACE/COPYING deleted file mode 100644 index a42692314f5..00000000000 --- a/ACE/COPYING +++ /dev/null @@ -1,124 +0,0 @@ - - _________________________________________________________________ - - 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 diff --git a/ACE/ChangeLog b/ACE/ChangeLog deleted file mode 100644 index 637fa136597..00000000000 --- a/ACE/ChangeLog +++ /dev/null @@ -1,269 +0,0 @@ -Tue Mar 4 09:27:18 UTC 2008 Johnny Willemsen - - * bin/ProcessVX.pm: - Added a retry to the iPass protocol code, in a full test run - we sometimes see that the reboot has failed. With this retry - we hopefully get rid of those false test failures - -Tue Mar 4 05:54:22 UTC 2008 William Otte - - * bin/svn_props.py: - Automatically set default properties when svn complains. - -Mon Mar 3 11:22:18 UTC 2008 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Just single line comments - - * bin/MakeProjectCreator/templates/gnu.mpd: - Check VXWORKSLINK for 1 - -Mon Mar 3 11:10:18 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - * include/makeinclude/platform_vxworks6.2.GNU: - * include/makeinclude/platform_vxworks6.3.GNU: - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.lib.GNU: - Use 1 for VXWORKSLINK instead of true. Added footprint=1 - as flag to specify that you are doing a footprint build - -Mon Mar 3 10:49:28 UTC 2008 Abdullah Sowayan - - * apps/JAWS/clients/WebSTONE/src/cgi-send.c: - * apps/JAWS/clients/WebSTONE/src/genrand.c: - * apps/JAWS/clients/WebSTONE/src/webmaster.c: - * contrib/utility/Example/CommandLine/Foo/command.cpp: - * contrib/utility/Example/ExH/BadCast/bad_cast.cpp: - * contrib/utility/Example/ExH/Compound/compound.cpp: - * contrib/utility/Example/ExH/HelloWorld/hello_world.cpp: - * contrib/utility/Example/ExH/LogicToSystem/logic_to_system.cpp: - * contrib/utility/Example/Hetero/Container/container.cpp: - * contrib/utility/Example/Introspection/InheritanceTree/inheritance_tree.cpp: - * contrib/utility/Example/Introspection/Traversal/driver.cpp: - * contrib/utility/Test/ExH/Converter/converter.cpp: - * contrib/utility/Test/ExH/Inline/inline.cpp: - * contrib/utility/Test/ExH/Logic/DescriptiveException/descriptive_exception.cpp: - * contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp: - * contrib/utility/Test/Introspection/Inline/inline.cpp: - * contrib/utility/Test/Synch/Inline/inline.cpp: - * etc/xlc_dummy.cpp: - * examples/Reactor/Proactor/test_aiocb.cpp: - * examples/Reactor/Proactor/test_aiosig.cpp: - - Disable fuzz's check_for_improper_main_declaration check on these files. - These files don't use ACE. - - * examples/Reactor/WFMO_Reactor/Multithreading.cpp: - * examples/Reactor/WFMO_Reactor/Registration.cpp: - * examples/Reactor/WFMO_Reactor/Registry_Changes.cpp: - * examples/Threads/task_three.cpp: - - Use the proper form of ACE_TMAIN. Namely, the argv parameter - should be "ACE_TCHAR *argv[]" instead of "ACE_TCHAR **argv" - or "ACE_TCHAR *[]" instead of "ACE_TCHAR **" - - * apps/JAWS3/bench/average.cpp: - * netsvcs/clients/Tokens/invariant/invariant.cpp: - - Use ACE_TMAIN instead of main as the program entry point to comply - with ACE/TAO/CIAO coding standards. - -Mon Mar 3 08:58:18 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_openvms.GNU: - Improved this file - -Mon Mar 3 07:30:18 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_openvms.GNU: - Don't set INSLIB - -Mon Mar 3 07:00:18 UTC 2008 Johnny Willemsen - - * include/makeinclude/rules.local.GNU: - Rearranged some rules so that C files are compiled with the - C compiler on OpenVMS - -Mon Mar 3 06:57:18 UTC 2008 Johnny Willemsen - - * bin/ProcessVX.pm: - Added support to specify a custom password for the iBoot - -Sun Mar 2 20:04:18 UTC 2008 Johnny Willemsen - - * bin/ProcessVX.pm: - Integrated some OCI changes for the iBoot - -Sun Mar 2 19:32:18 UTC 2008 Johnny Willemsen - - * bin/auto_run_tests.pl: - Use ACE_ROOT as defailt root test directory instead of the current - directory - -Sun Mar 2 18:53:12 UTC 2008 Abdullah Sowayan - - * ASNMP/agent/main.cpp: - * ace/Svc_Conf_y.cpp: - * apps/JAWS3/jaws3/main.cpp: - * examples/Mem_Map/IO-tests/test_io.cpp: - * examples/Reactor/Multicast/client.cpp: - * examples/Reactor/Multicast/server.cpp: - * examples/Reactor/Proactor/test_aiocb_ace.cpp: - * examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp: - * netsvcs/clients/Naming/Dump_Restore/createfile.cpp: - * netsvcs/clients/Tokens/collection/collection.cpp: - * netsvcs/clients/Tokens/collection/rw_locks.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/Misc/context_switch_time.cpp: - * performance-tests/Misc/test_guard.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/TTCP/ACE-C++/wrapper-new-ttcp.cpp: - - Use ACE_TMAIN instead of main as the program entry point to comply - with ACE/TAO/CIAO coding standards. - - * examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc: - - MPC doesn't recognize ACE_TMAIN as an entry point, as such, we need - to explicitly set exename in the MPC file. - - * apps/JAWS/clients/WebSTONE/src/webclient.c: - * contrib/utility/Example/CommandLine/Foo/foo.cpp: - * performance-tests/Synch-Benchmarks/context.c: - * performance-tests/TTCP/C/new-ttcp.cpp: - * tests/Unload_libACE.cpp: - - Disable fuzz's check_for_improper_main_declaration check on these files. - These files don't use ACE. - -Sat Mar 1 19:09:18 UTC 2008 Johnny Willemsen - - * bin/auto_run_tests.pl: - Added -r as option to specify an alternate root test directory - instead of the current directory. Combined this with -l we can - then run perl scripts for testing project code. - -Thu Feb 28 16:08:18 UTC 2008 Johnny Willemsen - - * bin/generate_compile_stats.sh: - Added --compiler as option so that we can specify a different - compiler then gcc - -Thu Feb 28 08:32:18 UTC 2008 Johnny Willemsen - - * docs/ACE-bug-process.html: - Removed cvs - -Wed Feb 27 19:28:18 UTC 2008 William Otte - - * bin/MakeProjectCreator/config/global.features: - disable mcpp by default. - -Tue Feb 26 15:52:37 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_openvms.GNU: - Added support for buildbits=64 - -Tue Feb 26 09:18:37 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_openvms.GNU: - Added some compiler flags to reduce the number of warnings/errors - in the OpenVMS builds - -Mon Feb 25 19:44:37 UTC 2008 Johnny Willemsen - - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - Added IgnoreHostRoot which can be set from a test script. That way - when doing cross host testing we can make sure we don't get the - executable from the host root directory. This is for example usefull - when we want to spawn perl or another system utility - - * bin/PerlACE/Run_Test.pm: - Removed commented out line - -Mon Feb 25 14:30:37 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_vxwork6.2.GNU: - * include/makeinclude/platform_vxwork6.3.GNU: - Added LD_PARTIALFLAGS which can be set for footprint builds - -Mon Feb 25 08:13:37 UTC 2008 Johnny Willemsen - - * ace/config-macros.h: - Set ACE_HAS_INTEGRAL_TYPE_THR_FUNC_RETURN when - ACE_THR_FUNC_RETURN is an integral type - - * ace/Task.cpp: - Use ACE_HAS_INTEGRAL_TYPE_THR_FUNC_RETURN to determine whether - we can do a reinterpret_cast or static_cast. This is much easier - then checking all compilers - -Sun Feb 24 19:37:37 UTC 2008 Johnny Willemsen - - * ace/Configuration.cpp: - * ace/Configuration.h: - * ace/Configuration.inl: - Added new inline file - - * ace/Get_Opt.cpp: - Prefix increment - - * ace/Event_Handler.h: - Removed commented out code - -Sat Feb 23 06:56:37 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_openvms.GNU: - OpenVMS doesn't have rwho - -Fri Feb 22 18:55:37 UTC 2008 Johnny Willemsen - - * ace/Message_Queue_NT.h: - Fixed wrong include - -Fri Feb 22 14:20:37 UTC 2008 Johnny Willemsen - - * ace/Message_Queue.{h,cpp,inl}: - * ace/Message_Queue_NT.{h,cpp,inl}: - * tests/Message_Queue_Test.cpp: - * ace/ace.mpc: - * ace/Makefile.am: - Moved ACE_Message_Queue_NT to its own file - -Fri Feb 22 08:54:37 UTC 2008 Johnny Willemsen - - * bin/global.features: - Default optimize_collocated_invocations to 1 - -Fri Feb 22 00:34:17 UTC 2008 Steve Huston - - * bin/tao_orb_tests.lst: Added !LabVIEW_RT to all tests that haven't - been adapted to the non-local filesystem mechanism I invented to run - tests for LabVIEW RT targets (and can also be used for other target - types). Now I can enable TAO tests for the LabVIEW RT scoreboard - build. - -Thu Feb 21 15:25:37 UTC 2008 Johnny Willemsen - - * docs/Download.html: - Updated download links to point to x.6.3 - - * etc/index.html: - Updated for x.6.3 - -Thu Feb 21 02:34:37 CST 2008 Johnny Willemsen - - * ACE version 5.6.3 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-00a b/ACE/ChangeLogs/ChangeLog-00a deleted file mode 100644 index 29d983c12cd..00000000000 --- a/ACE/ChangeLogs/ChangeLog-00a +++ /dev/null @@ -1,12664 +0,0 @@ -Tue Oct 10 21:54:52 2000 Nanbor Wang - - * bin/msvc_auto_compile.pl (Build_Core): Updated LIB core build - dsp list. - -Tue Oct 10 18:51:16 2000 Carlos O'Ryan - - * ace/Makefile.bor: - * ace/RMCast/Makefile.bor: - * include/makeinclude/ace_flags.bor: - Add a Borland makefile for the RMCast library. Thanks to Johhny - Willemsen for providing this. - -Tue Oct 10 17:59:09 2000 Carlos O'Ryan - - * ace/RMCast/RMCast.dsp: - Update the project file - -Tue Oct 10 17:25:32 2000 Carlos O'Ryan - - * Finally the Send_File example works correctly. In my tests four - nodes received the same file successfully. - I also tried some features to cleanly terminate receivers and - senders. - However, I still need to work on flow control, and in strategies - to limit the maximum number of messages buffered by the sender - and/or receiver. - - * ace/RMCast/Makefile: - Add the new files to the Makefile - - * ace/RMCast/RMCast.h: - Move the state transition matrix to RMCast_Receiver_Module.h - - * ace/RMCast/RMCast_Ack_Worker.h: - * ace/RMCast/RMCast_Ack_Worker.i: - * ace/RMCast/RMCast_Ack_Worker.cpp: - Move the ACE_RMCast_Ack_Worker class to its own file. Only used - in the Retransmission module. - - * ace/RMCast/RMCast_Fork.h: - * ace/RMCast/RMCast_Fork.i: - * ace/RMCast/RMCast_Fork.cpp: - This class superseeds Control_Splitter. I realized that forking - the control messages to the user layer is a more general and - cleaner solution for this problem. - - * ace/RMCast/RMCast_Control_Splitter.h: - * ace/RMCast/RMCast_Control_Splitter.i: - * ace/RMCast/RMCast_Control_Splitter.cpp: - Removed. - - * ace/RMCast/RMCast_Fragment.cpp: - Fixed bug when computing the length of the message, it should be - total_length() but I was using total_size(). - - * ace/RMCast/RMCast_IO_UDP.cpp: - Destroy proxys that return -1 from receive_message(). - Add multiple debug messages, now commented out. - - * ace/RMCast/RMCast_Membership.h: - * ace/RMCast/RMCast_Membership.cpp: - When a new member joins or leaves the group we need to resend - the ack messages to the upper layer. - The code to compute the correct Ack message is factored out. - Many debug messages, but they are commented out. - New method so clients can know how many members the group has, - it can be used for safe termination of senders. - - * ace/RMCast/RMCast_Module.cpp: - The open() and close() methods propagate through the stack as - any other message. - - * ace/RMCast/RMCast_Reassembly.h: - * ace/RMCast/RMCast_Reassembly.cpp: - Cleanup is performed in the close() operation. - Old messages are dropped from the map immediately, the - Reordering layer is the right place to reject them (if any). - - * ace/RMCast/RMCast_Reliable_Factory.cpp: - Use ACE_RMCast_Receiver_Module to validate and process the - messages in the proxy, for example, Ack messages are a clear - error on the receiver side. - - * ace/RMCast/RMCast_Receiver_Module.h: - * ace/RMCast/RMCast_Receiver_Module.i: - * ace/RMCast/RMCast_Receiver_Module.cpp: - This module implements message validation and state transitions - for a receiver. - It also generates the correct responses for an Ack_Join or Poll - message. - - * ace/RMCast/RMCast_Reordering.h: - * ace/RMCast/RMCast_Reordering.cpp: - Cleanup resources in the close() method - - * ace/RMCast/RMCast_Resend_Worker.h: - * ace/RMCast/RMCast_Resend_Worker.i: - * ace/RMCast/RMCast_Resend_Worker.cpp: - Move the ACE_RMCast_Resend_Worker class to its own file. Only - used in the Retransmission module. - - * ace/RMCast/RMCast_Resend_Handler.cpp: - Resend all the messages after each timeout. - - * ace/RMCast/RMCast_Retransmission.h: - * ace/RMCast/RMCast_Retransmission.cpp: - Worker classes moved to their own files. - - * ace/RMCast/RMCast_Sequencer.h: - * ace/RMCast/RMCast_Sequencer.i: - * ace/RMCast/RMCast_Sequencer.cpp: - Assign unique sequence numbers to each message, used on the - sender side. - - * ace/RMCast/RMCast_UDP_Proxy.cpp: - Incoming message must pass through the proxy before going up the - stack. - The source field was not set in the messages. - - * ace/RMCast/RMCast_UDP_Reliable_Sender.h: - * ace/RMCast/RMCast_UDP_Reliable_Sender.i: - * ace/RMCast/RMCast_UDP_Reliable_Sender.cpp: - Use the new ACE_RMCast_Sequencer module to assign message - sequence numbers. - Use the new ACE_RMCast_Fork class to send incoming control - messages both to the user and the retransmission/membership - modules. - Add method to detect how many members are currently registered - with the membership layer. - - * tests/RMCast/RMCast_Retransmission_Test.cpp: - Assign the sequence numbers before going into the retransmission - layer, as would be done in a normal application. - - * examples/RMCast/Send_File/Makefile: - Update dependencies - - * examples/RMCast/Send_File/Sender.cpp: - Only shutdown once all the members have left the group. - Use long periods to make debugging easier. - - * examples/RMCast/Send_File/Receiver.cpp: - Only shutdown once the Ack_Leave message is received. - Return -1 from the data() method once the complete file is - received, that initiates the termination. - Use long periods to make debugging easier. - -Tue Oct 10 16:34:01 2000 Nanbor Wang - - * ace/config-win32-common.h: Changed ACE_HAS_SVC_DLL to - ACE_SVC_HAS_DLL and commented out its definition. The default - definition of ACE_SVC_HAS_DLL has been moved to - ace/Svc_export.h. The comment-out code here only serves as a - reminder to users. Thanks to Mike Curtis - for pointing this out. - - * netsvcs/lib/Base_Optimizer.cpp: Removed redundant definition of - ACE_BUILD_DLL. - - * ace/ACE_export.h: - * ace/OS_Export.h: - Added a new macro ACE_AS_STATIC_LIBS that controls the default - value of ACE_OS_HAS_DLL and ACE_HAS_DLL so we can build static - ACE library easily. - - * ace/ace_lib.dsp: - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf_lib.dsp: Changed to use ACE_AS_STATIC_LIBS - for static configurations. - -Mon Oct 09 16:45:00 2000 Carlos O'Ryan - - * ace/RMCast/Makefile: - * ace/RMCast/RMCast.dsp: - Add new files to the RMCast project and Makefile. - - * ace/RMCast/RMCast_Control_Splitter.h: - * ace/RMCast/RMCast_Control_Splitter.i: - * ace/RMCast/RMCast_Control_Splitter.cpp: - A module to separate control messages from regular data flow. - - * ace/RMCast/RMCast_Copy_On_Write.h: - * ace/RMCast/RMCast_Copy_On_Write.cpp: - Add accessor to check if the collection is empty. - - * ace/RMCast/RMCast_IO_UDP.h: - * ace/RMCast/RMCast_IO_UDP.i: - * ace/RMCast/RMCast_IO_UDP.cpp: - * ace/RMCast/RMCast_UDP_Event_Handler.cpp: - Decouple the event handler. - - * ace/RMCast/RMCast_Module.h: - * ace/RMCast/RMCast_Module.i: - * ace/RMCast/RMCast_Module.cpp: - * ace/RMCast/RMCast_UDP_Proxy.h: - Fixed comments. - - * ace/RMCast/RMCast_Module_Factory.h: - No need to pass the IO_UDP to the module factory. - - * ace/RMCast/RMCast_Reliable_Factory.h: - * ace/RMCast/RMCast_Reliable_Factory.i: - * ace/RMCast/RMCast_Reliable_Factory.cpp: - A factory to create the per-proxy stack on the receivers. - - * ace/RMCast/RMCast_Resend_Handler.h: - * ace/RMCast/RMCast_Resend_Handler.i: - * ace/RMCast/RMCast_Resend_Handler.cpp: - An adapter to resend messages on a Reactor scheduled timer. - - * ace/RMCast/RMCast_Retransmission.h: - * ace/RMCast/RMCast_Retransmission.cpp: - Add a method to resend all the messages. - - * ace/RMCast/RMCast_Singleton_Factory.h: - * ace/RMCast/RMCast_Singleton_Factory.i: - * ace/RMCast/RMCast_Singleton_Factory.cpp: - A module factory that "creates" the same object over and over. - - - * ace/RMCast/RMCast_UDP_Reliable_Receiver.h: - * ace/RMCast/RMCast_UDP_Reliable_Receiver.i: - * ace/RMCast/RMCast_UDP_Reliable_Receiver.cpp: - Helper class to simplify the creation and configuration of a UDP - receiver. - - * ace/RMCast/RMCast_UDP_Reliable_Sender.h: - * ace/RMCast/RMCast_UDP_Reliable_Sender.i: - * ace/RMCast/RMCast_UDP_Reliable_Sender.cpp: - Helper class to simplify the creation and configuration of a UDP - sender. - - * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: - Had to change due to modifications in the I/O UDP layer - interface. - - * examples/RMCast/Makefile: - * examples/RMCast/Send_File/Makefile: - * examples/RMCast/Send_File/Receiver.cpp: - * examples/RMCast/Send_File/Receiver.dsp: - * examples/RMCast/Send_File/Send_File.dsw: - * examples/RMCast/Send_File/Sender.cpp: - * examples/RMCast/Send_File/Sender.dsp: - Add a simple example that sends a file over reliable UDP - multicast. - -Mon Oct 9 14:44:25 2000 Darrell Brunsch - - * bin/generate_export_file.pl: - - Made some minor changes to make a bit more robust. - - * bin/regenerate_exports.pl: (added) - - This script should be able to recurse from the current directory - reupdating the export files. Use at your own risk. - -Mon Oct 09 03:23:22 2000 Nanbor Wang - - * bin/generate_export_file.pl: Changed the script so we can define - a single macro to switch multiple *_HAS_DLL default definitions. - -Sat Oct 7 04:30:00 2000 Douglas C. Schmidt - - * Doug and Sonja got married in St. Louis, surrounded by - their family, friends, and many ACE+TAO developers! - -Sat Oct 7 000:50:02 2000 Darrell Brunsch - - * ace/ACE.cpp: - * ace/ACE.h: - * ace/ACE.i: - * ace/ARGV.cpp: - * ace/ATM_Acceptor.cpp: - * ace/ATM_Acceptor.i: - * ace/ATM_Addr.cpp: - * ace/ATM_Connector.cpp: - * ace/ATM_Connector.i: - * ace/ATM_QoS.cpp: - * ace/ATM_Stream.cpp: - * ace/Acceptor.cpp: - * ace/Activation_Queue.cpp: - * ace/Addr.cpp: - * ace/Arg_Shifter.cpp: - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_IO.cpp: - * ace/Based_Pointer_T.cpp: - * ace/Basic_Types.h: - * ace/CORBA_Handler.cpp: - * ace/Cache_Map_Manager_T.cpp: - * ace/Cached_Connect_Strategy_T.cpp: - * ace/Caching_Strategies_T.i: - * ace/Capabilities.cpp: - * ace/Capabilities.h: - * ace/Configuration.cpp: - * ace/Connector.cpp: - * ace/Containers_T.cpp: - * ace/DEV_Addr.cpp: - * ace/DEV_Connector.i: - * ace/DLL.cpp: - * ace/Dirent.i: - * ace/Dynamic_Service.cpp: - * ace/FIFO.cpp: - * ace/FIFO_Recv.cpp: - * ace/FIFO_Recv_Msg.cpp: - * ace/FIFO_Send.cpp: - * ace/FIFO_Send_Msg.cpp: - * ace/FILE_Addr.cpp: - * ace/FILE_Connector.cpp: - * ace/FILE_Connector.i: - * ace/File_Lock.cpp: - * ace/Filecache.cpp: - * ace/Filecache.h: - * ace/Future.cpp: - * ace/Get_Opt.cpp: - * ace/Handle_Set.cpp: - * ace/Hash_Map_Manager_T.cpp: - * ace/Hash_Map_Manager_T.i: - * ace/High_Res_Timer.cpp: - * ace/High_Res_Timer.h: - * ace/INET_Addr.cpp: - * ace/INET_Addr.h: - * ace/IO_SAP.cpp: - * ace/IPC_SAP.cpp: - * ace/LSOCK.cpp: - * ace/LSOCK_CODgram.cpp: - * ace/LSOCK_Connector.cpp: - * ace/LSOCK_Dgram.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Local_Tokens.cpp: - * ace/Local_Tokens.i: - * ace/Log_Msg.cpp: - * ace/Log_Msg.h: - * ace/Log_Record.cpp: - * ace/Logging_Strategy.cpp: - * ace/MEM_Acceptor.cpp: - * ace/MEM_Addr.cpp: - * ace/MEM_Connector.cpp: - * ace/MEM_SAP.cpp: - * ace/Malloc.cpp: - * ace/Malloc_T.cpp: - * ace/Malloc_T.h: - * ace/Map_Manager.cpp: - * ace/Map_Manager.i: - * ace/Mem_Map.cpp: - * ace/Memory_Pool.cpp: - * ace/Message_Block.cpp: - * ace/Message_Queue.cpp: - * ace/Message_Queue_T.cpp: - * ace/Module.cpp: - * ace/Name_Proxy.cpp: - * ace/Name_Request_Reply.cpp: - * ace/Naming_Context.cpp: - * ace/OS.cpp: - * ace/OS.h: - * ace/OS.i: - * ace/Object_Manager.cpp: - * ace/Obstack.cpp: - * ace/POSIX_Asynch_IO.cpp: - * ace/Parse_Node.cpp: - * ace/Pipe.cpp: - * ace/Proactor.cpp: - * ace/Process.cpp: - * ace/Process_Manager.cpp: - * ace/QoS_Manager.cpp: - * ace/QoS_Session_Factory.cpp: - * ace/QoS_Session_Impl.cpp: - * ace/RB_Tree.cpp: - * ace/RB_Tree.i: - * ace/Read_Buffer.cpp: - * ace/Registry.cpp: - * ace/Registry_Name_Space.cpp: - * ace/Remote_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_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast_QoS.cpp: - * ace/SPIPE_Acceptor.cpp: - * ace/SPIPE_Addr.cpp: - * ace/SPIPE_Connector.cpp: - * ace/SV_Message_Queue.cpp: - * ace/SV_Semaphore_Complex.cpp: - * ace/SV_Semaphore_Simple.cpp: - * ace/SV_Shared_Memory.cpp: - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.cpp: - * ace/Service_Config.cpp: - * ace/Service_Manager.cpp: - * ace/Service_Repository.cpp: - * ace/Service_Types.cpp: - * ace/Singleton.cpp: - * ace/Stats.cpp: - * ace/Stats.i: - * ace/Strategies_T.cpp: - * ace/Strategies_T.i: - * ace/Stream.cpp: - * ace/Svc_Conf.h: - * ace/Svc_Conf.l: - * ace/Svc_Conf.y: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - * ace/Svc_Handler.cpp: - * ace/Synch.cpp: - * ace/Synch.h: - * ace/Synch_T.cpp: - * ace/System_Time.cpp: - * ace/TLI.cpp: - * ace/TLI_Acceptor.cpp: - * ace/TLI_Connector.i: - * ace/TP_Reactor.i: - * ace/Task_T.cpp: - * ace/Thread_Manager.cpp: - * ace/Time_Request_Reply.cpp: - * ace/Timeprobe_T.cpp: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_T.cpp: - * ace/Timer_Wheel_T.cpp: - * ace/Token.cpp: - * ace/Token_Collection.cpp: - * ace/Token_Invariants.cpp: - * ace/Token_Manager.cpp: - * ace/Token_Request_Reply.cpp: - * ace/Token_Request_Reply.i: - * ace/Trace.cpp: - * ace/Trace.h: - * ace/UPIPE_Acceptor.cpp: - * ace/UPIPE_Connector.cpp: - * ace/UPIPE_Connector.i: - * ace/WFMO_Reactor.cpp: - * ace/WFMO_Reactor.i: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Proactor.cpp: - * ace/XTI_ATM_Mcast.i: - * ace/ace_wchar.h: - * ace/config-WinCE.h: - * ace/config-all.h: - * ace/config-win32-borland.h: - * ace/config-win32-msvc.h: - * ace/config-win32-visualage.h: - - Split several methods into char/wchar_t versions: - - ACE_OS::getenv - - ACE_OS::cuserid - - ACE_Allocator_Adapter constructor - - ACE_Manual_Event constructor - - Split several string macros into char/wchar_t versions: - - ACE_DIRECTORY_SEPARATOR_STR - - ACE_DIRECTORY_SEPARATOR_CHAR - - ACE_PLATFORM - - ACE_PLATFORM_EXE_SUFFIX - - ACE_DEFAULT_LOCALNAME - - ACE_DEFAULT_GLOBALNAME - - ACE_DEFAULT_MUTEX - - Added ACE_DEFAULT_NAMESPACE_DIR back in for ACE_LEGACY_MODE. - -Fri Oct 06 11:34:26 2000 Steve Huston - - * ace/Based_Pointer_T.cpp: - * ace/Select_Reactor_T.cpp: Added #include "ace/Log_Msg.h" else IBM - C++ can't compile the template at instantiation time. - -Wed Oct 04 12:23:34 2000 Carlos O'Ryan - - * ace/RMCast/RMCast_Copy_On_Write.h: - * ace/RMCast/RMCast_Copy_On_Write.i: - * ace/RMCast/RMCast_Copy_On_Write.cpp: - More cleanup, this time for the Read_Guard class - - * ace/RMCast/RMCast_Proxy.h: - * ace/RMCast/RMCast_Proxy.cpp: - * ace/RMCast/RMCast_UDP_Proxy.cpp: - The ACE_RMCast_Proxy class now handles outgoing Ack_Join - messages to update the sequence numbers. - - * ace/RMCast/RMCast_Reordering.cpp: - * ace/RMCast/RMCast_Retransmission.cpp: - Fixed memory management problems. - - * tests/RMCast/RMCast_Retransmission_Test.cpp: - Add tests to verify that the right number of messages is - received by *all* proxies. Also check the Ack_Join messages. - -Wed Oct 4 12:03:07 2000 Ossama Othman - - * configure.in (ACE_HAS_STREAM_PIPES): - - Verify that we can actually set a STREAM option that ACE uses. - This is particularly necessary for platforms that have ioctl - conflicts. For example, the Linux kernel's CDROM ioctls have - the same values as glibc 2.1.94's STREAM ioctls. Attempting to - set a STREAM ioctl actually causes one of the CDROM ioctls to be - set (unsuccessfully)! - - * configure.in: - * m4/ace.m4: - * m4/compiler.m4: - - Changed all uses of "$target" to "$host." "$target" is only - used for compiler tool chains. "$host" is the correct variable - since it refers to the host the application will be run on (as - opposed to the host the application was built on $build). - -Wed Oct 4 09:15:42 2000 Darrell Brunsch - - * ace/RMCast/RMCast.dsp: - - Added new files. - -Tue Oct 3 17:07:37 2000 Carlos O'Ryan - - * ace/RMCast/Makefile: - * ace/RMCast/RMCast_Reordering.h: - * ace/RMCast/RMCast_Reordering.i: - * ace/RMCast/RMCast_Reordering.cpp: - Add re-ordering module, this is the receiver-side module that - acks messages and delivers them in order to the application. - - * ace/RMCast/RMCast.h: - Fixed data type in the Ack_Join message - - * ace/RMCast/RMCast_Copy_On_Write.h: - * ace/RMCast/RMCast_Copy_On_Write.i: - * ace/RMCast/RMCast_Copy_On_Write.cpp: - * ace/RMCast/RMCast_Retransmission.cpp: - Cleanup the Copy_On_Write implementation - - * tests/RMCast/Makefile: - * tests/RMCast/RMCast_Tests.dsw: - * tests/RMCast/RMCast_Reordering_Test.cpp: - * tests/RMCast/RMCast_Reordering_Test.dsp: - Add test for the reordering module. - - * tests/RMCast/RMCast_Retransmission_Test.cpp: - Remove debug messages for the retransmission stuff. - -Tue Oct 3 15:03:42 2000 Darrell Brunsch - - * ace/OS.i: - - In the non-Win32 section of hostname (wchar version) I - forgot to call wchar_rep on the ACE_Ascii_To_Wide temp - class I was using. - - * ace/OS.h: - - ACE_PLATFORM_EXE_SUFFIX was being defined incorrectly. - -Tue Oct 3 14:25:09 2000 Darrell Brunsch - - * ace/OS.cpp: - * ace/OS.h: - * ace/OS.i: - - Expanded TCHAR versions of some string macros to have - both _A and _W versions. Moved many of these - definitions around, since a lot of the same code was - being repeated. The macros changed are: - ACE_DIRECTORY_SEPARATOR_STR, ACE_DIRECTORY_SEPARATOR_CHAR, - ACE_PLATFORM, ACE_PLATFORM_EXE_SUFFIX, - ACE_DEFAULT_LOCALNAME, ACE_DEFAULT_GLOBALNAME and - ACE_DEFAULT_MUTEX. [Bug 674] - - Split TCHAR versions of atoi, hostname, access, - open, and chdir into char and wchar_t versions. - - * ace/Process_Mutex.cpp: - * ace/Process_Mutex.h: - - Changed the ACE_Process_Mutex constructor to take a - char as a argument instead of TCHAR. Also added a - version that takes in wchar_t. - - * ace/Synch.cpp: - * ace/Synch.h: - - Changed the ACE_Auto_Event constructor to take a - char as a argument instead of TCHAR. Just like above, - added a version that takes in wchar_t also. - - * ace/ace_wchar.h: - * ace/ace_wchar.inl: (added) - - Moved the method definitions from inlined in the - class definition to the .inl file. - - Added typedefs for ACE_OS_C/WString to the - ACE_Wide_To_Ascii/Asci_To_Wide classes for legacy - support. [Bug 675] - - Added ACE_TEXT_WCHAR_TO_TCHAR macro that acts similar - to ACE_TEXT_CHAR_TO_WCHAR (except converts wchar_t's) - - Added ACE_TEXT_WIDE macro, which is used to make literal - strings wide. (We were just directly using L"" in most - cases) - -Tue Oct 3 13:27:13 2000 Joe Hoffert - - * ace/OS.i: - * ace/OS.cpp: - Added !ACE_HAS_TSS_EMULATION to the ACE_HAS_PACE - checks when TSS emulation is being used. We want - to let ACE do the emulation instead of moving it - into PACE since this would involve keeping track - of the global TSS state. - -Tue Oct 3 12:25:46 2000 Darrell Brunsch - - * ace/Thread_Exit.cpp: - - Removed default argument in the function definition. - - * ace/Thread_Adapter.cpp: - * ace/Thread_Adapter.h: - - Separated ACE_Thread_Adapter::invoke into invoke and - invoke_i because it uses SEH and James added local vars - with destructors. They don't work together in the same - function. - -Tue Oct 03 12:53:28 2000 Angelo Corsaro - - * bin/run_all_list.pm: - - Disabled Connection Purging test, and enabled Exposed - Policies test. - -Tue Oct 3 10:52:24 2000 Darrell Brunsch - - * performance-tests/Synch-Benchmarks/Base_Test/mutex_test.cpp: - - Added explicit includes for Process_Mutex and RW_Process_Mutex. - -Tue Oct 3 10:40:04 PDT 2000 James Hu - - * ace/Thread_Adapter.cpp: - * ace/Thread_Exit.cpp: - * ace/Thread_Exit.h: - - Changed this check to creating an ACE_Thread_Exit off the - heap via a smart pointeresque way of the TSS instance - fails to create. - -Tue Oct 3 05:55:01 2000 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.cpp: Added && (__SUNPRO_CC == 0x420) - to the #elif defined (__SUNPRO_CC) to make things work properly - on the Sun FORTE compiler. Thanks to Russ Noseworthy for - reporting this. - -Mon Oct 2 18:49:06 PDT 2000 James Hu - - * ace/Thread_Adapter.cpp: - - If the TSS instance of the ACE_Thread_Exit class fails to - create, the application will crash. The new code will detect - the failure, wait half a second, and try again. This - solution, while cheesy, corrects a problem Entera - encountered, and avoids the problems my previous attempt - caused with ACE. - -Mon Oct 2 13:38:44 2000 Ossama Othman - - * examples/QOS/QoS_Signal_Handler.cpp: - * examples/QOS/QoS_Util.cpp: - - Include "ace/Log_Msg.h" to pull in definitions of the - ACE_{DEBUG,ERROR} macros. - -Mon Oct 2 11:29:47 2000 Carlos O'Ryan - - * ace/RMCast/RMCast_Retransmission.h: - * ace/RMCast/RMCast_Retransmission.cpp: - Fixed several minor problems in the Retransmission module. - Use Copy_On_Write dispatching for synchronization of the - internal message buffer. - - * ace/RMCast/RMCast_Copy_On_Write.h: - * ace/RMCast/RMCast_Copy_On_Write.i: - * ace/RMCast/RMCast_Copy_On_Write.cpp: - Implement Copy_On_Write semantics for a collection like the - retransmission buffer. This is based on the ESF_Copy_On_Write - strategy developed for the event channel. - We should try to refactor this one in a reusable strategy. - - * ace/RMCast/RMCast_Worker.h: - * ace/RMCast/RMCast_Worker.i: - * ace/RMCast/RMCast_Worker.cpp: - To implement copy-on-write we need the "alternative" form of - iterators. - - * ace/RMCast/RMCast.h: - * ace/RMCast/RMCast_Fragment.h: - * ace/RMCast/RMCast_IO_UDP.h: - * ace/RMCast/RMCast_IO_UDP.cpp: - * ace/RMCast/RMCast_Membership.h: - * ace/RMCast/RMCast_Membership.i: - * ace/RMCast/RMCast_Membership.cpp: - * ace/RMCast/RMCast_Module.h: - * ace/RMCast/RMCast_Module_Factory.h: - * ace/RMCast/RMCast_Partial_Message.h: - * ace/RMCast/RMCast_Proxy.h: - * ace/RMCast/RMCast_Proxy.i: - * ace/RMCast/RMCast_Proxy.cpp: - * ace/RMCast/RMCast_UDP_Event_Handler.h: - * ace/RMCast/RMCast_UDP_Proxy.cpp: - * tests/RMCast/RMCast_Membership_Test.cpp: - Made the comments more doxygen friendly. - Renamed the highest_in_sequence field to next_expected, the new - name really reflects its semantics, this is the next sequence - number that the peer is expecting. All the previous numbers - have been either received or are simply assumed lost. - - * tests/Makefile: - If the rmcast makefile flag is set to 1 we build the RMCast - subdirectory too. - - * tests/RMCast/Makefile: - * tests/RMCast/RMCast_Tests.dsw: - * tests/RMCast/RMCast_Retransmission_Test.dsp: - * tests/RMCast/RMCast_Retransmission_Test.cpp: - New test for the Retransmission module - -Sun Oct 01 15:50:42 2000 Darrell Brunsch - - * bin/auto_run_tests.pl: - - Added support for a sandbox program that can shutdown a test - if it hangs. - -Fri Sep 29 16:32:22 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Added the BE and FE projects for TAO_IDL so the static version - gets built correctly in auto_compiles. - -Fri Sep 29 16:17:34 2000 Steve Huston - - * ace/WFMO_Reactor.cpp (register_handle_i): If a event handle - is created for association with a socket handle, the - auto_ptr which caused the ACE_Auto_Event destruction at function - return usually smashed errno (since it was closing an invalid - handle - see comments in code). Added a ACE_Errno_Guard and - removed the ACE_Auto_Event's handle while in the guard to prevent - errno smashing upon function return. - -Thu Sep 28 22:06:44 2000 Ossama Othman - - * ace/SSL/SSL_SOCK_Connector.h: - * ace/SSL/SSL_SOCK_Connector.cpp (ACE_SSL_SOCK_Connector, - shared_connect_start, shared_connect_finish, connect, complete): - - Made ACE_Time_Value arguments const to match the changes - detailed in: - - Thu Sep 28 15:02:36 2000 Irfan Pyarali - -Fri Sep 29 00:23:59 2000 Irfan Pyarali - - * ace/Log_Msg.h (ACE_RETURN): Fixed minor error. - -Thu Sep 28 22:13:04 2000 Irfan Pyarali - - * ace/Log_Msg: Macros are evil! All the ACE debugging macros were - evaluating the user arguments twice, once in - log_priority_enabled() and the other in log(). The problem was - that set() was making a deep copy of the filename. Hence, this - change: - - Wed May 3 11:43:05 2000 Douglas C. Schmidt - - was made to prevent the deep copy which was unnecessary when the - message was not actually logged. However, this resulted in the - macro evaluating the user arguments twice. Previously, a - statement like this: - - ACE_DEBUG ((LM_DEBUG, - "timeout occured, iterations left %d\n", - --iterations)); - - got reduced by one - now it got reduced by two ;-) - - The solution was to make a shallow copy of the filename in - conditional_set(). Then in log(), if the log priority is - correct, make a deep copy and then continue will log(). The - macros were changed to call conditional_set() instead of set(). - - Also, changed ACE_RETURN to specify all the parameters, - including , , and . Otherwise, the - default parameters of set() will end up losing these parameters - set by the user. - -Thu Sep 28 15:49:00 2000 Douglas C. Schmidt - - * ace/Stream.h (class ACE_Stream): Updated the documentation to clarify - that the ACE_Time_Value's are *absolute* time. Thanks to Pedro - for reporting this. Thanks to Pedro Brandao - for reporting this. - -Thu Sep 28 15:02:36 2000 Irfan Pyarali - - * ace/SOCK_Connector.cpp: ACE_Time_Value args to - ACE_SOCK_Connector could be const. Had to patch functions in - the following files to make it happen: - - ACE.cpp - ACE.h - OS.h - OS.i - SOCK_Connector.cpp - SOCK_Connector.h - - Thanks to Steve Huston for reporting - this. This also fixes bug 673. - -Thu Sep 28 11:14:29 2000 Martin Stack - - * ace/config-freebsd.h: - * ace/config-freebsd-pthread.h: - * ace/config-linux-common.h: - * ace/config-irix6.x-common.h: Added/Renamed to - ACE_USES_NEW_TERMIOS_STRUCT. - - * ace/TTY_IO.h: - * ace/TTY_IO.cpp: The Win32 section was modified to implement a - non-blocking read when read-timeout=0 is set. Also, it was - modified to ensure proper operations when a read_timeout is - required. - - Code was added to enable the DTR line on both Win32 and unix - platforms when the port is opened. - - Several new flags where added to give proper access to the - serial device. - - Relabled macro "ACE_USES_OLD_TERMIOS_STRUCT" to - "ACE_USES_NEW_TERMIOS_STRUCT" to properly indicate its purpose. - -Thu Sep 28 09:01:19 2000 Ossama Othman - - * ace/config-g++-common.h: - - Reverted my g++ 2.95 updates. They work on all platforms but - the cross-compiler used for VxWorks. - -Wed Sep 27 16:17:36 2000 Ossama Othman - - * ace/IOStream.h: - * ace/IOStream_T.h: - - Moved inclusion of `ace/INET_Addr.h' and `ace/Handle_Set.h' to - `IOStream_T.h'. They weren't needed in `IOStream.h'. - - * ace/config-g++-common.h (ACE_LACKS_AUTO_PTR, - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES, - ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS): - - G++ 2.95.x properly support the auto_ptr class, templates with - static data members, and inlined template functions. - -Wed Sep 27 14:02:30 2000 Irfan Pyarali - - * examples/Reactor/WFMO_Reactor/test_abandoned.cpp - (handle_timeout): Moved <--this->iterations_> outside the DEBUG - statement. - -Wed Sep 27 08:46:12 2000 Carlos O'Ryan - - * ace/RMCast/RMCast.dsw: - Add new files to the project - - * tests/RMCast/RMCast_Tests.dsw: - * tests/RMCast/RMCast_Membership_Test.dsp: - Add project file for the new test - - * tests/RMCast/RMCast_Membership_Test.cpp: - Fixed warning under MSVC - -Wed Sep 27 08:23:58 2000 Carlos O'Ryan - - * ace/RMCast/Makefile: - Updated dependencies - - * ace/RMCast/RMCast.h: - * ace/RMCast/RMCast_Module.h: - * ace/RMCast/RMCast_Proxy.cpp: - * ace/RMCast/RMCast_Proxy.h: - * ace/RMCast/RMCast_Reassembly.h: - * ace/RMCast/RMCast_Reassembly.cpp: - * ace/RMCast/RMCast_Retransmission.cpp: - Update comments to be doxygen friendly - - * ace/RMCast/RMCast_Membership.cpp: - Fixed problems in Ack management, we were stopping the useful - Acks, not the ones that just represented repeated information. - - * tests/RMCast/Makefile: - * tests/RMCast/RMCast_Membership_Test.cpp: - Add test for the ACE_RMCast_Membership class. - -Tue Sep 26 22:39:42 2000 Darrell Brunsch - - * examples/Reactor/WFMO_Reactor/test_abandoned.cpp: - - Changed the include of Synch.h to Process_Mutex.h since - Process Mutex was moved there. - -Tue Sep 26 15:06:05 2000 Joe Hoffert - - * ace/config-all.h: - * ace/OS.h: - Removed defining ACE_HAS_POSIX_SEM for ACE using PACE - from OS.h and put it into the config-all.h file. - - * ace/OS.{i,cpp}: - Added appropriate calls to pace_* functions when ACE - is using PACE. - -Tue Sep 26 14:14:17 2000 Steve Huston - - * ace/Cache_Map_Manager_T.h: Added some comments to the find() - methods to say what they do and what they return. - -Tue Sep 26 10:09:32 2000 Carlos O'Ryan - - * bin/auto_compile: - Modified to use the auto_run_tests.lst file to select the list - of tests to run. - Add new -config option to disable one or more tests, this will - allow us select new configurations that disable one or more - tests without requiring changes to the auto_compile script. - - * bin/auto_run_tests.lst: - Disable some tests in STATIC builds and under linux. - - * bin/run_all_list.pm: - This file is no longer used by auto_compile, add comments to - that effect. - -Tue Sep 26 11:51:27 2000 Steve Huston - - * ace/Log_Msg.h: Add #include "ace/config-all.h" to be sure that - ACE_NDEBUG is defined (or not) properly before using it. Thanks - to Edan Ayal for this fix. - -Mon Sep 25 16:00:30 2000 Douglas C. Schmidt - - * ace/Synch.h: Clarify that the ACE_Auto_Event and ACE_Manual_Event - classes only support USYNC_PROCESS on Win32. Thanks to Andreas - Schuelke for motivating this - change. - -Mon Sep 25 23:03:11 2000 Marina Spivak - - * bin/run_all_list.pm: - - Added TAO/tests/RTCORBA/Client_Propagated and - TAO/tests/RTCORBA/Server_Protocol to the list of auto daily - tests. - -Mon Sep 25 16:58:22 2000 Ossama Othman - - * ltcf-c.sh: - * ltcf-cxx.sh: - * ltconfig: - * ltmain.sh: - - Updates from upstream libtool multi-language CVS branch. - -Mon Sep 25 14:24:49 2000 Jeff Parsons - - * Static_performance.dsw: - - Added the modular IDL compiler projects, and set - the dependencies. - -Mon Sep 25 11:45:53 2000 Steve Huston - - * ace/config-win32-common.h: If NDEBUG is set, then also set - ACE_NDEBUG. Thanks to Edan Ayal for noting - that ACE_NDEBUG didn't always get set for Release builds. - -Sat Sep 23 16:55:26 2000 Carlos O'Ryan - - * ace/RMCast/Makefile: - Add new components to the RMCast library. - - * ace/RMCast/RMCast_Proxy.h: - * ace/RMCast/RMCast_Proxy.i: - * ace/RMCast/RMCast_Proxy.cpp: - All proxies must derive from this class, it offers methods to - send back replies directly to the peer. - - * ace/RMCast/RMCast.h: - The Proxy source is propagate among layers. - - * ace/RMCast/RMCast_IO_UDP.cpp: - All proxies are modules. - - * ace/RMCast/RMCast_Membership.h: - * ace/RMCast/RMCast_Membership.i: - * ace/RMCast/RMCast_Membership.cpp: - New module to keep an explicit collection of all the peers, - detecting join and leave messages and computing the messages - successfully received by all the peers using the Ack - information. - - * ace/RMCast/RMCast_Retransmission.h: - * ace/RMCast/RMCast_Retransmission.i: - * ace/RMCast/RMCast_Retransmission.cpp: - Buffer messages to allow retransmission. - - * ace/RMCast/RMCast_UDP_Proxy.h: - * ace/RMCast/RMCast_UDP_Proxy.i: - * ace/RMCast/RMCast_UDP_Proxy.cpp: - Modified to inherit from the new RMCast_Proxy class. - -Fri Sep 22 15:13:46 2000 Darrell Brunsch - - * ace/Atomic_Op.i: - - I was mistaken, inline was being used correctly here, - since on NT this is only included from Atomic_Op.h. - So I reverted the previous change and added a disable - command for fuzz. - -Fri Sep 22 14:49:19 2000 Darrell Brunsch - - * ace/OS.h: - * ace/README: - * ace/Synch.h: - * ace/Thread_Control.cpp: - * ace/Thread_Control.h: - * ace/ace_wchar.h: - * ace/config-all.h: - - Replaced ACE_ONLY_LATEST_AND_GREATEST with ACE_LEGACY_MODE - since we wanted to change our usage of it (and this should - be a bit clearer). - - To enable some legacy code, just define ACE_LEGACY_MODE - in config.h. - -Fri Sep 22 14:24:14 2000 Darrell Brunsch - - * apps/JAWS/remora/app/Remora_Export.h: - * apps/JAWS/remora/app/Remora_Import.h - * apps/JAWS/remora/app/remora.idl: - * apps/JAWS/remora/app/test.cc: - * examples/Web_Crawler/Command_Processor.h: - * tests/Handle_Set_Test.cpp: - - The CVS Id strings were not correctly formatted, so CVS - never recognized them or updated them. Fixed. - -Fri Sep 22 12:27:42 2000 Darrell Brunsch - - * bin/fuzz.pl: - - The checks for TEXT and TCHAR gave too many false positives. - Fixed to be a bit smarter about having these inside other - macro names (such as DEFAULTCHARS). - - Also improved detection of CVS Id strings, since it ends - up that there are several places where the strings are close - (start with $ and Id) but then are missing a colon so they - don't get updated properly. - - * WindozeCE/ACEApp.cpp: - * WindozeCE/WindozeCE.cpp: - * WindozeCE/WindozeCE.h: - * WindozeCE/WindozeCEDlg.cpp: - - Disabled the fuzz tchar check, since these are WinCE only - files and shouldn't have any problems with using the Win32 - specific character macros. - - * WindozeCE/WindozeCE.plg: (removed) - - Shouldn't be in the repository - - * ace/ACE.cpp: - - There were some TEXT's (albeit in comments) that I changed - to ACE_TEXT to make fuzz happy. - - * ace/Atomic_Op.i: - - Changed the inline's to ACE_INLINE to be consistent with the - rest of the file. - - * ace/Handle_Gobbler.i: - * apps/JAWS/remora/app/Remora_Export.i: - * apps/JAWS/remora/app/Remora_Import.i: - * examples/ASX/Event_Server/Event_Server/Options.i: - * examples/ASX/UPIPE_Event_Server/Options.i: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.i: - - Disabled the fuzz check for inline in these files, since - they are only included in .h files, so they should be - inline instead of ACE_INLINE. - - * apps/JAWS/clients/WebSTONE/src/bench.c: - * apps/JAWS/clients/WebSTONE/src/genrand.c: - * apps/JAWS/clients/WebSTONE/src/statistics.c: - * apps/JAWS/clients/WebSTONE/src/timefunc.c: - * apps/JAWS/clients/WebSTONE/src/webclient.c: - * apps/JAWS/clients/WebSTONE/src/webmaster.c: - * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h: - * apps/JAWS/stress_testing/global.h: - - Disabled checks for inline and math.h, since there probably - isn't any problems with them here. - - * performance-tests/TCP/tcp_test.cpp: - * performance-tests/UDP/udp_test.cpp: - - Disabled fuzz math.h include checks. - - Fuzz reports should be pretty clean now, just some Id string - stuff to clean up. [Bug 630] - -Fri Sep 22 12:01:06 2000 Ossama Othman - - * ace/Basic_Types.h (ACE_ULongLong): - - This class does't use the ACE_ALLOC_HOOK_DEFINE macro so there - was no point in using the corresponding ACE_ALLOC_HOOK_DECLARE - macro. Removed ACE_ALLOC_HOOK_DECLARE from the ACE_ULongLong - class. - - * ace/OS.h: - * ace/config-all.h: - - Moved ACE_ALLOC_HOOK* macros to `ace/config-all.h' so that it - isn't necessary to include `ace/OS.h' just to pull in the - definition of those macros. - -Fri Sep 22 13:02:41 2000 Steve Huston - - * ace/config-all.h: Enable ACE_ONLY_LATEST_AND_GREATEST by default. - If config.h sets it to 0, then it gets disabled to allow deprecated - features to be used. Do not rely on them staying there through the - next ACE release however. - -Fri Sep 22 09:27:42 2000 Darrell Brunsch - - * ace/Logging_Strategy.cpp: - - Added ACE_TEXT to a couple of the literal strings. - - * ace/Registry.cpp: - - MSVC 5 has a different signature for RegConnectRegistry where - the first argument (machine name) is not constant. Added a cast - to fix this. [Bug 620] - -Fri Sep 22 08:30:26 2000 Carlos O'Ryan - - * ace/Proactor.cpp: - Fixed small typo for platforms that define ACE_HAS_SIG_C_FUNC - -Thu Sep 21 18:04:53 2000 Ossama Othman - - * examples/IPC_SAP/SSL_SAP/Makefile (LDLIBS): - - `-lssl -lcrypto' is needed for static builds. - -Thu Sep 21 16:54:19 2000 Nanbor Wang - - * ace/OS.cpp: Fixed a typo in . Thanks to Craig - Perras . - -Thu Sep 21 14:40:07 2000 Ossama Othman - - * ace/SSL/SSL_SOCK_Connector.h: - * ace/SSL/SSL_SOCK_Connector.i: - * ace/SSL/SSL_SOCK_Connector.cpp: - - Removed all uses "non_ssl_connect_done_" attribute. It made the - SSL_SOCK_Connector class non-reentrant, and prevented the - SSL_SOCK_Connector from being used to create additional - connections. [Bug 660] - - (connect, complete): - - Do not attempt to set the handle in SSL_SOCK_Stream if it is - already set. Doing so would cause OpenSSL to create another - socket in addition to other internal OpenSSL buffers, which - isn't necessary when reconnecting to the same endpoint. - - (ssl_connect): - - Do not set the SSL connect state if an SSL connection is already - pending. - - * ace/SSL/ACE_SSL.dsp: - - Changed output library location to be `../../bin' (equivalent to - $ACE_ROOT/bin). This change makes this project file consistent - with all other ACE/TAO projects. - - * examples/IPC_SAP/SSL_SAP/SSL-client.dsp: - * examples/IPC_SAP/SSL_SAP/SSL-server.dsp: - - Updated library path to correspond to the location of the - ACE_SSL library. It was still set to the old location. - -Thu Sep 21 11:54:58 2000 Priyanka Gontla - - * ace/Service_Config.h : - * ace/Service_Config.cpp : - - * ace/Proactor.cpp: - * ace/Proactor.h (ACE_Proactor): - - Removed dependency of Service_Config on Proactor by registering - the Proactor singleton with the Object_Manager when it is - instantiated. This way we need not call - ACE_Proactor::close_singleton () in Service_Config implementation. - -Wed Sep 20 17:25:37 2000 Steve Huston - - * performance-tests/UDP/udp_test.cpp: Use ACE_High_Res_Timer instead - of ACE_hrtime_t for calculating elapsed times. ACE_hrtime_t right - from ACE_OS::gethrtime is not always in nanoseconds, particularly on - Win32. - - * performance-tests/UDP/udp_test.{dsw dsp}: New MSVC workspace/project. - -Wed Sep 20 12:57:52 2000 Carlos O'Ryan - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Add new files to the MSVC projects - - * ace/Process_Mutex.h: - Under Win32 must include "ace/Synch.h" - - * ace/WFMO_Reactor.h: - Must include "ace/Process_Mutex.h" when - ACE_ONLY_LATEST_AND_GREATEST is defined. - -Wed Sep 20 12:10:41 2000 Ossama Othman - - * ace/Basic_Types.h: - - Made inclusion of conditional on definition of - ACE_LACKS_SYS_TYPES_H macro. - -Wed Sep 20 12:00:42 2000 Carlos O'Ryan - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/ace-dll.icc: - * ace/ace-lib.icc: - * ace/File_Lock.h: - * ace/File_Lock.inl: - * ace/File_Lock.cpp: - * ace/Process_Mutex.h: - * ace/Process_Mutex.inl: - * ace/Process_Mutex.cpp: - * ace/Process_Semaphore.h: - * ace/Process_Semaphore.inl: - * ace/Process_Semaphore.cpp: - * ace/RW_Process_Mutex.h: - * ace/RW_Process_Mutex.inl: - * ace/RW_Process_Mutex.cpp: - * ace/Dynamic.cpp: - * ace/Local_Name_Space.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/MEM_SAP.h: - * ace/Naming_Context.cpp: - * ace/Synch.h: - * ace/Synch.i: - * ace/Synch.cpp: - * ace/Synch_T.h: - * ace/Thread_Exit.cpp: - * ace/Thread_Manager.cpp: - * examples/Shared_Malloc/Malloc.cpp: - * examples/Shared_Malloc/test_multiple_mallocs.cpp: - * examples/Shared_Malloc/test_position_independent_malloc.cpp: - * examples/Threads/process_mutex.cpp: - * examples/Threads/process_semaphore.cpp: - * tests/Conn_Test.cpp: - * tests/MM_Shared_Memory_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/Process_Strategy_Test.cpp: - Moved the implementation of ACE_File_Lock, ACE_Process_Mutex, - ACE_Process_Semaphore and ACE_RW_Process_Mutex to their own - files. - This removes some unwanted dependencies in the Synch file. - The ACE_ONLY_GREATEST_AND_LATEST macro was used to preserve - backwards compatibility. - -Wed Sep 20 14:51:27 2000 Steve Huston - - * ace/Basic_Types.h: Added #include after the other - system-type includes to be sure u_long is defined. - doesn't pick it up, at least on Solaris 8. - -Wed Sep 20 11:44:46 2000 Carlos O'Ryan - - * tests/run_test.pl: - * tests/run_test.lst: - Disable the ACE_Init_Test under UNIX, the test only works on NT. - -Wed Sep 20 12:55:16 2000 Steve Huston - - * ace/High_Res_Timer.(h cpp i): Win32's scale factor (from - QueryPerformanceFrequency) is very often too small a number to - convert to ticks/usec - it ends up losing about 20% of the elapsed - time in elapsed calculations. So, on Win32 only, the - global_scale_factor is now in ticks/msec, not ticks/usec. Adjusted - all of the conversions to ACE_Time_Value, nanoseconds, etc. to - account for this. - -Wed Sep 20 08:24:34 2000 Ossama Othman - - * ace/Makefile.am (INLINE_FILES): - - Corrected `CDR_Base.i' to `CDR_Base.inl'. - -Wed Sep 20 08:12:20 2000 Ossama Othman - - * tests/CDR_Test.cpp: - - Included missing `ace/SString.h' header. - -Tue Sep 19 17:12:29 2000 Ossama Othman - - * ace/Basic_Types.h: - - Added missing include of `ace/config-all.h' and - `ace/ACE_export.h'. - - Explicitly include `limits.h', `float.h' and `stdlib.h' to pull - in basic type limits (e.g. UINT_MAX) and typedefs - (e.g. ptr_arith_t). This allows `ace/Basic_Types.h' to be - included as a stand-alone header. Previously, `ace/OS.h' - must have been included at least indirectly before - `ace/Basic_Types.h'. - - * ace/CDR_Base.h: - * ace/CDR_Base.i: - * ace/CDR_Base.cpp: - - Moved base ACE_CDR class to separate set of files. This reduces - inter-header dependencies for sources that only require the CDR - types. - - * ace/CDR_Stream.h: - - Forward declared ACE_CString, and moved inclusion of - `ace/SString.h' to the `.cpp' file to reduce inter-header - dependencies. - - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - - Moved ACE_CString related methods to the `.cpp' file since the - ACE_CString method is now forward declared in the - `ace/CDR_Stream.h' header. - -Tue Sep 19 17:40:04 2000 Douglas C. Schmidt - - * ace/config-win32-common.h, - ace/config-sunos5.4-centerline-2.x.h: Removed the nonsensical - ACE_HAS_SVR5_GETTIMEOFDAY macro. Thanks to Jeff Grief for - reporting this. - -Mon Sep 18 12:39:39 2000 Ossama Othman - - * ace/OS.i (cuserid): - - When using ACE's alternate cuserid() implementation: - - ensure that the maximum length argument is non-zero - since it doesn't make sense to have a zero length user ID. - - Return a static buffer if the buffer argument is zero. This - is not reentrant but nothing else can be done in such a case. - [Bug 619] - -Mon Sep 18 11:22:02 2000 Douglas C. Schmidt - - * ace/SUN_Proactor.cpp (handle_events): Fixed a problem arising - on 64 bit Solaris platforms. Thanks to Ganesh Pai - for reporting this. - -Sun Sep 17 19:17:53 2000 Carlos O'Ryan - - * include/makeinclude/build_example.bor: - Add the IORTable library to the Simple examples. - -Sun Sep 17 17:04:22 2000 Carlos O'Ryan - - * include/makeinclude/ace_flags.bor: - Add support for the IORTable library under Borland C++ - -Sat Sep 16 16:11:39 2000 Carlos O'Ryan - - * tests/CDR_Array_Test.cpp: - Under some circumstances the buffers allocated for marshaling - did not have room for the alignment bytes. The problem was - fixed by a small overallocation. - -Fri Sep 15 16:04:26 2000 Carlos O'Ryan - - * ace/Makefile.bor: - Update the Borland Makefile - -Thu Sep 14 11:59:48 2000 Ossama Othman - - * ace/Local_Name_Space_T.cpp (resolve_i, unbind_i): - * ace/Local_Tokens.cpp (acquire, tryacquire, renew): - * ace/Message_Queue_T.cpp (enqueue_prio, enqueue_head, - enqueue_tail, next): - * ace/Stream.cpp (open): - * ace/Task.cpp (suspend, resume, activate): - * ace/Token_Invariants.cpp (mutex_acquired, reader_acquired, - writer_acquired): - - Fixed g++ "control reaches end of non-void function" warnings. - - * bin/bootstrap (ACE_HTML_MAN_PAGES): - - Fixed sed expression so that all man pages ending with `.3' are - substituted with HTML man pages ending with `.html', not just - the last man page in the list. - -Wed Sep 13 15:21:34 2000 Ossama Othman - - * ace/Synch_T.cpp (ts_init, ts_object): - - Moved code in terminating else block outside of that block, and - removed unnecessary else clauses. This fixes "control reaches - end of non-void function" warnings from GNU C++. - - * bin/autoconf_compile: - - Changed mail subject prefix from "[AUTOCONF_COMPILE]" to - "[AUTO_COMPILE]" so that those monitoring the build logs won't - have to setup an additional mail filter. - -Wed Sep 13 15:05:08 2000 Chad Elliott - - * ace/ACE.cpp - ace/SOCK_Dgram_Bcast.cpp - ace/config-chorus.h - include/makeinclude/platform_chorus4.x_g++.GNU - - Applying changes made by Wei Chiang . - Corrects a problem with recognizing ip interfaces due to dynamic - size of struct ifreq. - - Modified config-chorus.h to correctly set the CHORUS macro to the - correct version and to undefine ACE_HAS_PTHREAD_PROCESS_ENUM if - using Chorus 4.0. - - Added CHORUS_4 to the CPPFLAGS which corrects a problem with make - depend. - - Thanks Wei for finding all of these problems. - -Wed Sep 13 15:05:42 2000 Luther J Baker - - * ace/OS.h: - - ACE_HAS_PACE type redefinitions. L:3180.., L:2250 - - * ace/OS.i: - - ACE over NT implements two different kinds of mutex's. - One is a lighter CRITICAL SECTION which has a distinct - set of associated functions. In ACE_HAS_PACE code, these - functions are calling each other (on POSIX compliant - platforms, these are defined to be the same types) but - NT needs to distinguish the two. This usually means - rearranging the preprocessor code. This is just the beginning. - -Wed Sep 13 14:33:25 2000 Douglas C. Schmidt - - * ace/Service_Config.h (ACE_Service_Config): Made parse_args() - a public method to work around subtle issues with linking - services dynamically using TAO. Thanks to Paul Caffrey - for motivating this and Carlos for suggesting - the fix. - -Wed Sep 13 14:01:57 2000 Luther J Baker - - * ace/OS.i (umask): - - Missing punctuation. - -Tue Sep 12 22:00:31 2000 Steve Huston - - * ace/config-win32-common.h: Added missing 'FD_SETSIZE' to #undef - directive. - -Tue Sep 12 15:15:54 2000 Irfan Pyarali - - * ace/ACE_export.h (ACE_SINGLETON_DECLARATION): Added the new - SINGLETON_DECLARE macros. - - * ace/Timeprobe.h: Used the new macro ACE_SINGLETON_DECLARE - instead of ACE_SINGLETON_DECLARATION. This helps by not - requiring the comma which makes the precompiler think that the - comma is for an extra argument to the macro. - - Thanks to Phil Mesnier for reporting this - problem. - -Tue Sep 12 11:34:03 2000 Steve Huston - - * ace/High_Res_Timer.{h i}: Added a new function, gettimeofday_hr() - which returns the current time in a ACE_Time_Value using the - high-resolution time source. This is intended to be used as the - time retrieval function for the ACE timer queues. Be sure you - call ACE_High_Res_Timer::global_scale_factor() (or instantiate - a ACE_High_Res_Timer object) before using it to correctly - convert the timer count to a ACE_Time_Value. - - * tests/Timer_Queue_Test.cpp: Added a test for using ACE_Timer_Heap - with high-resolution timer as the time source. - - * tests/Reactor_Timer_Test.cpp: Added an option to run the test - using ACE_High_Res_Timer::gettimeofday_hr instead of the - ACE_OS::gettimeofday time retrieval. If any option is given to - the program it uses high-res, otherwise it uses ACE_OS::gettimeofday. - -Mon Sep 11 12:57:31 2000 Steve Huston - - * ace/Synch.{h i cpp} (ACE_Lock, ACE_Adaptive_Lock, ACE_File_Lock, - ACE_Semaphore, ACE_Process_Semaphore, ACE_Null_Semaphore, - ACE_RW_Mutex, ACE_Mutex, ACE_Process_Mutex, ACE_RW_Process_Mutex, - ACE_Null_Mutex, ACE_Thread_Mutex, ACE_Recursive_Thread_Mutex): - Added tryacquire_write_upgrade method. - - * ace/Synch_T.{h i} (ACE_Lock_Adapter, ACE_Reverse_Lock): Added - tryacquire_write_upgrade method. - - * ace/Token.{h i} (ACE_Token): Added tryacquire_write_upgrade - method, which is a NOP. - - Thanks to Joseph Weihs for these suggestions. - -Mon Sep 11 10:08:38 2000 Balachandran Natarajan - - * ace/Service_Manager.cpp (handle_input): Missing semicolon in a - do-while loop. - -Mon Sep 11 08:10:21 2000 Douglas C. Schmidt - - * ace/Service_Manager.cpp: There was a problem with handle_input() - on Win32 due to the default non-blocking mode of sockets. In - particular, if the client was slow/overloaded, the server recv() - would return with -1 and errno == EWOULDBLOCK. Thanks to Sandro - Doro for this fix. - - * tests: Added a new Borland-specific makefile for the ACE tests. - Thanks to Johnny Willemsen for - contributing this. - -Sun Sep 10 14:58:36 2000 Carlos O'Ryan - - * netsvcs/clients/Logger/Makefile.bor: - I left out this file when applying Christopher's patch. - -Sun Sep 10 15:43:23 2000 Douglas C. Schmidt - - * ace/Acceptor.h: Made the suspend() and resume() methods - public. Thanks to Guy Rosen - for suggesting this. - -Fri Sep 8 16:50:52 2000 Carlos O'Ryan - - * ace/OS.h: - * ace/config-all.h: - Had to #include in config-all.h to get the - definition for FUNCPTR. With this change things are happy - (again) on VxWorks. - -Fri Sep 8 13:56:50 2000 Carlos O'Ryan - - * ace/Thread_Exit.cpp: - It was not compiling under Sun/CC 4.2 and 5.0. - The fix was to make the extern "C" cleanup handler simply call - the regular cleanup handler. That solves the access problem and - it is cleaner code anyways. - -Fri Sep 8 11:30:56 2000 Christopher Kohlhoff - - * ace/config-win32-borland.h: - Added ACE_LACKS_INLINE_ASSEMBLY since the inline CDR assembly - does not currently work under BCB. Thanks to - Johnny Willemsen for reporting this. - - * ace/Makefile.bor: - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - * include/makeinclude/build_lib.bor: - * netsvcs/clients/Logger/Makefile.bor: - Added support for both recursion and a build in the one makefile. - - * include/makeinclude/ace_flags.bor: - * include/makeinclude/build_example.bor: - Added new libraries for TAO. - -Thu Sep 07 18:10:00 2000 Darrell Brunsch - - * ace/config-win32-common.h: - - ACE_HAS_WINSOCK2 is turned on by default for all of Win32. - Windows 98 and Windows ME should have Winsock2, and NT/2000 - also does. For Windows 95, this requires that the Winsock 2 - library for Windows 95 is added or ACE_HAS_WINSOCK2 defined to - 0 in config.h before including config-win32.h (overriding it). - - Thanks to Giovanni Zito for inquiring - about this. - -Thu Sep 07 17:21:17 2000 Carlos O'Ryan - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Add the new files the ACE projects. - -Thu Sep 7 16:15:24 2000 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.cpp: - Break out the dependency between the ACE_Thread_Manager and the - OS layer. The OS layer used ACE_Thread_Adapter to create - threads, this class depends on ACE_Thread_Manager, but on the - path used by the OS layer the class does not use Thread_Manager - at all. The solution was to create a base class - (ACE_Base_Thread_Adapter) and a specialized version used in the - OS layer (ACE_OS_Thread_Adapter). - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - Update the Makefile and the dependencies. - - * ace/Base_Thread_Adapter.h: - * ace/Base_Thread_Adapter.inl: - * ace/Base_Thread_Adapter.cpp: - Abstract base class for ACE_Thread_Adapter. Applications - continue to use ACE_Thread_Adapter, but the OS layer uses the - base class (or OS_Thread_Adapter). This way we decouple the OS - layer from the ACE_Thread_Manager class. - - * ace/config-all.h: - Move the definition of ACE_THR_FUNC and ACE_THR_C_FUNC out here. - - * ace/OS_Thread_Adapter.h: - * ace/OS_Thread_Adapter.inl: - * ace/OS_Thread_Adapter.cpp: - Implement a version of ACE_Base_Thread_Adapter that does not use - the Thread_Manager at all. - - * ace/Thread_Adapter.h: - * ace/Thread_Adapter.inl: - * ace/Thread_Adapter.cpp: - Removed the common code to Base_Thread_Adapter.* - - * ace/Thread.h: - Include "ace/Thread_Adapter.h" directly because the OS layer - does not include it anymore. - - * ace/Thread_Hook.h: - * ace/Thread_Hook.cpp: - This class does not need to #include Thread_Manager.h - - * ace/Log_Msg.h: - * ace/Log_Msg.cpp: - Add another hook to make the ACE_OS_Thread_Descriptor available - to the OS layer when running MFC builds. - - * ace/Thread_Exit.cpp: - The is_constructed_ flag is reset in the cleanup function - instead of letting the OS layer do it. - -Thu Sep 7 12:07:14 2000 Ossama Othman - - * bin/autoconf_compile (LOGBASE): - - Create log file with `.txt' extension instead of `.log' to - prevent web browsers from needlessly prompting users which - viewer should be used. - - * m4/acinclude.m4: - - Updated copyright information. - - * m4/platform.m4: - - When setting platform-specific flags, use the "$host" autoconf - variable instead of "$target." The latter is only supposed to - be used when building cross-platform tool chains. - - * m4/threads.m4 (CPPFLAGS): - - Place user provided preprocessor flags after the ones set by the - configure script to allow the user to override automatically - set flags. - -Thu Sep 07 14:30:49 2000 Nanbor Wang - - * bin/auto_compile_win32.pl: Added Portable Server to the project - lists in (DLL Debug/Release). Thanks to Bruce McIntosh - for reporting this - -Thu Sep 07 11:36:51 2000 Ossama Othman - - * ace/SSL/SSL_Context.cpp (set_mode): - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - * ace/SSL/SSL_SOCK_Stream.i (recv, send): - - Do not print OpenSSL error message if ACE_NDEBUG is defined. - -Thu Sep 7 10:52:47 2000 Jeff Parsons - - * tests/CDR_Array_Test.cpp: - - Code intended to allocate and zero and source buffer and - destination buffer was actually zeroing the source buffer - twice. Thanks to Johnny Willemsen - for reporting this bug. - -Thu Sep 07 11:16:36 2000 Steve Huston - - * examples/Reactor/WFMO_Reactor/test_network_events.cpp: Add a - destructor to Network_Listener which will unregister it from the - reactor, and prevent a doomed call to handle_close when the - reactor runs down. Thanks to John Buckman for - reporting this. - -Wed Sep 06 19:06:57 2000 Carlos O'Ryan - - * ACE version 5.1.9 released. - -Tue Sep 05 13:34:26 2000 Steve Huston - - * ace/TP_Reactor.cpp (dispatch_i): Try to correct mis-set size_ - in the any_ready_ handle sets by sync()ing them if the reactor - state has not been changed. This is an attempted workaround to - a symptom of having the handle set say size_ > 0 but there are - no bits set. The underlying cause is not known. - Also, reverse the eval order when checking !found_io && handle_iter - done to avoid doing another iter call when not needed. - -Mon Sep 04 10:25:27 2000 Steve Huston - - * ace/TP_Reactor.cpp (dispatch_i): If a handle's bit is set via - select in any of the masks (wr, ex, rd) and subsequently the - handle is selected for dispatching, clear it in all masks to - prevent possible spinning on a handle that can't be dispatched - because its handler is suspended. - -Sat Sep 2 15:13:59 2000 Carlos O'Ryan - - * ace/CDR_Stream.h: - Fixed typo in macro name. - -Sat Sep 2 12:22:59 2000 Carlos O'Ryan - - * ace/CDR_Stream.h: - Define macros to initialize a LongDouble, this is needed to - avoid warnings in some ORB code. - -Sat Sep 2 07:14:06 2000 Douglas C. Schmidt - - * ace/config-sunos5.5.h: Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE - to fix a bug with SunC++ 4.1. Thanks to Sameer Schabungbam - for reporting this. - -Fri Sep 1 16:50:50 2000 Jeff Parsons - - * ace/Configuration.cpp: - - The method export_section contained a delete of a void*. - Many compilers warn about this. Cast the void* to char*. - -Fri Sep 1 13:25:24 2000 Jeff Parsons - - * ace/Configuration.cpp: - * ace/Configuration.h: - - Checked in some fixes to ACE_Configuration sent in by - Chris Hafey . Chris writes: - - Fixed a handle leak in export_config(). - Thanks to Matthew Adams for reporting the bug. - - Fixed a memory leak in export_section() for binary types. Fixed a - bug in get_binary_data() for the registry version where binary - values > ACE_DEFAULT_BUFSIZE wouldn't be retrieved correctly. For - win32 versions, we now export unrecognized types as BINARY values - rather than fail entirely. Fixed a bug where the size of a new - section name was calculated incorrectly for unicode builds. - Thanks to Vijay Aswadhati for reporting - this. [Bug 649] - -Fri Sep 01 03:08:59 2000 Nanbor Wang - - * ace/Task.h: - * ace/Thread_Manager.h: - * ace/Thread_Manager.cpp: For some reason, the method - that takes a thread_id array did not take the pointer. - If a user "activate"'ed a task and asking for the thread_id's, - these thread would not be marked as these task, which caused - they unaccounted for in subsequent wast_task. Fixed the problem - by adding the argument to and make sure the - task pointer is passed in method. Thanks to Mervyn - Quah for reporting the bug. - [Bug 616] - -Thu Aug 31 15:31:30 2000 Douglas C. Schmidt - - * include/makeinclude/outputdir.bor: Added a comment to explain - how the OBJDIR macro works when the -DPASCAL option is used. - Thanks to Marcel Van Der Weert and - Christopher Kohlhoff for reporting this. - -Thu Aug 31 08:32:11 2000 Albert Wijnja - - * tests/TSS_Test.cpp (ITERATIONS): replaced calculation of - ITERATIONS so that it is now dependent on ACE_MAX_THREADS. - [Bug 657] - -Wed Aug 30 10:20:04 2000 Carlos O'Ryan - - * bin/run_all_list.pm: - Enable the Trading Service tests under Minimum CORBA, since now - they are compiled in that configuration too. - -Tue Aug 29 14:27:37 2000 Chad Elliott - - * include/makeinclude/platform_chorus4.x_g++.GNU - Made an additional modification to use the $(MERGEDIR)/Paths - include file if MERGEDIR is defined. - -Tue Aug 29 12:23:41 2000 Steve Huston - - * ace/TP_Reactor.(h cpp): Added a new dispatch_i_protected method. - This just wraps the call to dispatch_i in ACE_SEH_TRY/EXCEPT. - If/when the reactor is rearranged to pluck one dispatchable event - to call at a time, this can be removed. - - This fixes the removal of SEH from this entry: - Fri Aug 25 16:29:51 2000 Steve Huston - -Tue Aug 29 01:32:28 2000 Carlos O'Ryan - - * ace/Logging_Strategy.h: - Add missing header file (Log_Msg.h) - -Mon Aug 28 20:37:21 2000 Luther J Baker - - * ace/OS.i (rename): - * ace/OS.i (pipe): - - Changed type #if (ACE_HAS_PACE) when all the rest of the - files use #if defined (ACE_HAS_PACE). Changed mainly for - consistency. - -Mon Aug 28 18:04:17 2000 Luther J Baker - - * ace/ace_lib.dsp: - * ace/ace_dll.dsp: - - Added additional #include ../PACE search directories - to project settings. - -Mon Aug 28 17:43:00 2000 Luther J Baker - - * ace/config-win32.h: - - Added support for PACE and win32. - - * ace/OS.h::2283 - - Altered code to support - #define ACE_HAS_PACE && #define WTHREADS. - -Mon Aug 28 15:05:27 2000 Michael Kircher - - * ace/OS_Dirent.cpp: Changed a condition in readdir_emulation () - to query properly for an invalid file handle. Thanks to - Nir Drang for reporting this. - -Mon Aug 28 12:16:27 2000 Ossama Othman - - * ace/Makefile.am (libACE_OS_la_SOURCES, HEADER_FILES, - INLINE_FILES): - - Added new Thread_{Adapter, Control, Exit, Hook} source files to - these make variables. - -Mon Aug 28 11:56:42 2000 Ossama Othman - - * configure.in (ACE_HAS_PENTIUM): - - Only define this macro if the hardware is x86 *and* GNU C++ is - being used since the code enabled by this macro contains - assembler code specific to that compiler. - Reported by Rich Seibel - -Mon Aug 28 11:18:27 2000 Ossama Othman - - * ace/config-irix6.5.x-sgic++.h: - - Configuration header for IRIX 6.5.x contributed by J. Russell - Noseworthy . [Bug 623] - -Mon Aug 28 10:27:45 2000 Chad Elliott - - * include/makeinclude/platform_chorus4.x_g++.GNU - Modified the platform macros file to use the new variable - definitions provide by the "Paths" make include file. Also, - removed the use of the old (3.x) chorus macros file. - -Sat Aug 26 17:39:53 2000 Douglas C. Schmidt - - * ace/config-all.h: Added new ACE_CONST_WHEN_MUTABLE macro. - Thanks to Edan Ayal for contributing this. - - * ace/Logging_Strategy: Added support for more fine-grained - control over logging strategies and priorities. Thanks to - Martin Krumpolec for reporting this. - - * ace: Improved the "const correctness" of many Reactor methods. - Thanks to Edan Ayal for contributing this. - -Sat Aug 26 15:23:54 2000 Carlos O'Ryan - - * ace/OS.cpp: - Commented out another ACE_DEBUG statement, there should be no - printing from the ACE_OS layer. - Fixed use of obsolete ACE_LOG_MSG accessors for the event - handling fields. - -Sat Aug 26 12:00:18 2000 Douglas C. Schmidt - - * ace/Service_Repository.cpp: Modify the remove() method so that - it is "re-entrant" i.e., one can call it from other svc's fini() - called from remove(). Thanks to Martin Krumpolec - for contributing this fix. - -Fri Aug 25 18:09:04 2000 Carlos O'Ryan - - * ace/config-win32.h: - * ace/OS.cpp: - * ace/Thread_Adapter.cpp: - Factor out the definition of ACE_ENDTHREADEX to the - config-win32.h file. - -Fri Aug 25 17:11:25 2000 Carlos O'Ryan - - * ace/Thread_Control.h: - * ace/Thread_Control.cpp: - Fixed problems with the backwards compatible configuration - (i.e. ACE_HAS_ONLY_LATEST_AND_GREATEST not defined). - -Fri Aug 25 16:15:50 2000 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - * ace/OS.cpp: - * ace/Thread_Adapter.h: - * ace/Thread_Adapter.inl: - * ace/Thread_Adapter.cpp: - * ace/Thread_Control.h: - * ace/Thread_Control.inl: - * ace/Thread_Control.cpp: - * ace/Thread_Exit.h: - * ace/Thread_Exit.cpp: - * ace/Thread_Hook.h: - * ace/Thread_Hook.cpp: - * ace/Thread_Manager.h: - * ace/Thread_Manager.i: - * ace/Thread_Manager.cpp: - Move ACE_Thread_Adapter and its friends to a new directory. - This was important to discover why OS.o depends on - Thread_Manager.o and how we can break that dependency. - I'm commiting the change because it will help the compiler when - linking static libraries and it is easier to maintain this way. - - * ace/OS_String.cpp: - Cosmetic changes. - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/ace.icc: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Add all the new files to the system. - - * tests/Task_Test.cpp: - We must #include the Thread_Hook.h file directly - - * */Makefile: - Updated all the dependencies for ace. - -Fri Aug 25 15:15:27 2000 Ossama Othman - - * Makefile.am (EXTRA_DIST): - - Added libtool shell script fragments `ltcf-c.sh' and - `ltcf-cxx.sh' to the list of additional files to be packaged - with the distribution. - - * ace/Makefile (TEMPLATE_FILES): - - Added `Hash_Map_With_Allocator_T' to the list of template - source files. It was missing. - - * ace/Makefile.am: - - Updated to include all newly added source files. - -Fri Aug 25 16:29:51 2000 Steve Huston - - * ace/TP_Reactor.cpp: Temporarily remove the ACE_SEH directives - to get the build working on Win32. Will fix this correctly and put - in a new file soon. - -Fri Aug 25 15:43:28 2000 Steve Huston - - * docs/ACE-guidelines.html: Add the "use this->member" rule when - referring to member functions or variables. Thanks to Edan Ayal - for the reminder to add this rule. - -Fri Aug 25 12:12:40 2000 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - * ace/OS.cpp: - * ace/Log_Msg.h: - * ace/Log_Msg.cpp: - * ace/config-all.h: - I removed the direct cyclic dependency between the OS layer and - Log_Msg. The OS layer does not use Log_Msg anymore, but it does - use parts of ACE_Thread_Manager so there is some work left to - do. - There was a semantic change involved: the Win32 exception - handlers used to be TSS, now they are global. There was not a - real use case for that feature. Users that enable - ACE_HAS_ONLY_LATEST_AND_GREATEST will not get the TSS version of - the functions, I think it is better to make the change visible - than hide it behind a seemingly compatible interface that - actually breaks at run-time. - -Fri Aug 25 14:29:27 2000 Steve Huston - - * ace/Select_Reactor_T.h: Added new method, is_suspended_i (ACE_HANDLE) - to see if the handle is suspended or not. It's used in the TP_Reactor - to avoid dispatching suspended handlers. - - * ace/Select_Reactor_T.cpp: New method, is_suspended_i. - (any_ready_i): Do not clear this->ready_set_ if that's the - set that was scanned for ready bits. TP_Reactor - now uses that set directly, and clearing it - sort of defeats the purpose. - (suspend_i): Fixed function name in ACE_TRACE. - - * ace/TP_Reactor.h: Added dispatch_i function; Removed dispatch_io_set - function and the ACE_EH_Dispatch_Info dispatch_info_ member - - they're not used anymore. - - * ace/TP_Reactor.cpp (handle_events): Does not call handle_events_i - in Select_Reactor_T anymore. New function, dispatch_i, handles - the work that handle_events_i does for ACE_Select_Reactor - does - the wait_for_multiple_events, dispatches timers, signals, and - notifications; then, though, it records one dispatchable I/O - event for return to handle_events (similarly to what dispatch_io_set - used to do when it was called from handle_events_i). All of the - token acquiring and releasing now goes on in this function only. - Also, the return value (number of dispatched events) is now - correct. - - The effect of all this is that TP_Reactor now saves the - ready_set_ bits and the threads running the reactor will dispatch - the handlers one by one until they're gone or the reactor state - changes in a way that forces select to be re-done. - - This set of changes fixes Bugzilla # 567. - -Fri Aug 25 14:23:36 2000 Steve Huston - - * ace/Handle_Set.i (reset): Commented out the #if !defined for - ACE_HAS_BIG_FD_SET; use FD_ZERO to clear the fd bits. This was - previously not being done for Linux (which has ACE_HAS_BIG_FD_SET) - and it caused grief in the reactor when scanning for bits in - sync (). This caused the (new, see above) TP_Reactor to always - think there were many bits set in ready_set_ after each dispatched - I/O and needlessly scan through them all. - -Fri Aug 25 09:22:11 2000 Chad Elliott - - * include/makeinclude/platform_sunos5_sunc++.GNU - Modified check for SunCC 5 to work with 5.0 and 5.1 (Forte). - -Thu Aug 24 09:01:23 2000 JLopez - - * ace/config-tru64.h: #define ACE_LACKS_SYSTIME_H with - DIGITAL_UNIX >= 0x40E, not 0x40F, because that's needed - on Tru64 UNIX 4.0E. Thanks to jlopez@uida.es for - reporting this. - -Mon Aug 21 10:07:39 2000 Carlos O'Ryan - - * ace/RMCast/RMCast_IO_UDP.cpp: - Fixed warnings about unused variables. - - * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: - Add newline to debug output, it was completely unreadable - otherwise. - - * ace/RMCast/Makefile: - * tests/RMCast/Makefile: - Updated file list and dependencies. - -Mon Aug 21 08:58:19 2000 Carlos O'Ryan - - * Another iteration on the design. This time we use a single - Module to process IO events, the same class can be used on the - receiver and sender sides. The type of proxies is fixed, all - the variation is moved into the Modules, controlled by a module - factory. - - * ace/RMCast/README: - Add a new README file. - - * ace/RMCast/RMCast_Module.h: - * ace/RMCast/RMCast_Module.cpp: - Modules can pass and process control messages as well as data - messages, add new methods for the control messages. - - * ace/RMCast/RMCast_IO_UDP.h: - * ace/RMCast/RMCast_IO_UDP.i: - * ace/RMCast/RMCast_IO_UDP.cpp: - New class to manage all the IO events. - - * ace/RMCast/RMCast_UDP_Event_Handler.h: - * ace/RMCast/RMCast_UDP_Event_Handler.i: - * ace/RMCast/RMCast_UDP_Event_Handler.cpp: - Modified to use the new RMCast_IO_UDP class. - - * ace/RMCast/RMCast_UDP_Proxy.h: - * ace/RMCast/RMCast_UDP_Proxy.i: - * ace/RMCast/RMCast_UDP_Proxy.cpp: - New module used for both the client and server sides. - - * ace/RMCast/RMCast_Module_Factory.h: - * ace/RMCast/RMCast_Module_Factory.i: - * ace/RMCast/RMCast_Module_Factory.cpp: - Create and destroy a module stack. Used by both the receiver - and sender sides to control the type of event processing they - can perform. - - * ace/RMCast/RMCast.h: - Minor changes in the field names and comments. - - * ace/RMCast/RMCast_Fragment.h: - * ace/RMCast/RMCast_Fragment.cpp: - * ace/RMCast/RMCast_Reassembly.h: - * ace/RMCast/RMCast_Reassembly.cpp: - Modified to use the new methods in the Module interface. - - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: - Modified to use the new classes. - - * tests/RMCast/RMCast_Tests.dsw: - * tests/RMCast/RMCast_UDP_Best_Effort_Test.dsp: - Add new project file for the UDP best effort test. - - * ace/RMCast/RMCast.dsp: - Update the project file. - - * ace/RMCast/RMCast_Sender_Proxy.h: - * ace/RMCast/RMCast_Sender_Proxy.i: - * ace/RMCast/RMCast_Sender_Proxy.cpp: - * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.h: - * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.i: - * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.cpp: - * ace/RMCast/RMCast_Sender_Proxy_Factory.h: - * ace/RMCast/RMCast_Sender_Proxy_Factory.i: - * ace/RMCast/RMCast_Sender_Proxy_Factory.cpp: - * ace/RMCast/RMCast_UDP_Receiver.h: - * ace/RMCast/RMCast_UDP_Receiver.i: - * ace/RMCast/RMCast_UDP_Receiver.cpp: - * ace/RMCast/RMCast_UDP_Sender.h: - * ace/RMCast/RMCast_UDP_Sender.i: - * ace/RMCast/RMCast_UDP_Sender.cpp: - Removed. - -Fri Aug 18 12:36:21 2000 Steve Huston - - * ace/SUN_Proactor.cpp (find_completed_aio): Wrapped ACE_GUARD_RETURN - with ACE_MT to build ok single-threaded. - -Thu Aug 17 05:48:51 2000 Douglas C. Schmidt - - * ace/config-win32-common.h: Wrapped the redefinition of FD_SETSIZE - to #undef if it's already set to avoid a compiler/pre-processor - warning. Thanks to Johnny Willemsen - for contributing these. - -Wed Aug 16 06:03:11 2000 Douglas C. Schmidt - - * ace/Select_Reactor_Base.h: Make the notify_queue_lock_ in - ACE_Select_Reactor_Notify an ACE_SYNCH_MUTEX rather than an - ACE_SYNCH_RW_MUTEX to be consistent. Thanks to Ivan Murphy for - reporting this. - -Tue Aug 15 20:54:14 2000 Darrell Brunsch - - * ace/Logging_Strategy.cpp: - * ace/Logging_Strategy.h: - * ace/OS.i: - * ace/SOCK_Dgram_Mcast_QoS.cpp: - * ace/ace_wchar.h: - - Fixed miscellaneous wide character support problems. - Also [Bug 600] - -Mon Aug 14 21:55:54 2000 Joe Hoffert - - * ace/OS.{h,i}: - Added function typedefs for pace_signal for compiling - ACE with PACE for LynxOS. - -Fri Aug 11 17:49:36 2000 Steve Huston - - * ace/TP_Reactor.cpp: Add #include "ace/Thread.h" to pick up the - definition of ACE_Thread::self (). - -Fri Aug 11 16:24:13 2000 Shawn Hannan - - * ace/OS.i: For VXWORKS, changed checks of errno against - S_objLib_OBJ_TIMEOUT to S_objLib_OBJ_UNAVAILABLE after calls - to semTake with timeout parameter set to NO_WAIT (i.e., 0). - semTake will set errno to _UNAVAILABLE, not _TIMEOUT, if - the semaphore is empty and the timeout parameter is 0. - Thanks to Peter Fischer for reporting - this. - -Fri Aug 11 13:20:40 2000 Nanbor Wang - - * apps/gperf/src/gperf_lib.dsp: Changed the format for generated - debug info from C7 to "Program Database" to conform to rest of - the ACE project files. Thanks to Espen Harlinn - for reporting this. - -Fri Aug 11 11:06:30 2000 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU: moved - -hidden /usr/lib/cmplrs/cxx/libcxxstd.a -non_hidden to end - of link line by moving it from SOFLAGS to the end of LIBS. - This allows links to succeed with -D__USE_STD_IOSTREAM. Thanks - to Jorn Jensen for finding this solution to - the link problem, and to Michael Kramer - for verifying that it works. - -Fri Aug 11 07:40:10 2000 Douglas C. Schmidt - - * ace/WFMO_Reactor.cpp (open): Removed an unnecessary ACE_UNUSED_ARG(sh). - Thanks to Pedro Brandao for reporting this. - -Thu Aug 10 12:22:31 2000 Steve Huston - - * ace/Svc_Handler.h (close): Added some comments to help make this - function easier to understand. - -Thu Aug 10 12:15:16 2000 Steve Huston - - * ace/POSIX_Proactor.(h cpp) (ACE_POSIX_AIOCB_Proactor): Surround - definition of mutex_ member in ACE_MT_SAFE; use ACE_MT around - ACE_GUARD_RETURN macros to build clean without threads. - -Thu Aug 10 09:31:51 2000 David L. Levine - - * ace/config-cxx-common.h: with __USE_STD_IOSTREAM, added - #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1. Now, - the ACE library builds with __USE_STD_IOSTREAM, thanks - to Michael Kramer . - - Also, removed duplicate #define ACE_HAS_STANDARD_CPP_LIBRARY 1, - and move the remaining one to inside the if (__DECCXX_VER >= - 60090010) check. I don't know if it is supported on older - versions of cxx. - -Thu Aug 10 04:04:31 2000 John Heitmann - - * ace/OS.cpp: - Added pace version of thr_create and thr_exit. - - * ace/OS.h: - Added pace #define for pthread_cleanup_* - Deleted all ansi cast defines since they were - also redundantly defined in config-all.h - - * ace/OS.i: - Put all pace functions in the global scope. Minor - fixes. - - * examples/Shared_Malloc/Malloc.cpp - Removed template instantiations which are duplicated - in ACE.cpp. - -Wed Aug 9 18:16:26 2000 Carlos O'Ryan - - * ace/RMCast/RMCast.h: - * ace/RMCast/RMCast.i: - * ace/RMCast/RMCast.cpp: - Document the state transitions for the receivers, the message - formats, and the state transitions for the senders. - - * ace/RMCast/RMCast_Module.h: - * ace/RMCast/RMCast_Module.i: - * ace/RMCast/RMCast_Module.cpp: - Instead of using the ACE ASX framework we are using a lighter - weight class hierarchy. The Module interface will contain - explicit calls for all the relevant control messages, making it - easier to implement and debug. - In the future we may move back to the ASX framework, once all - the implementation problems have been nailed down. - - * ace/RMCast/RMCast_Fragment.h: - * ace/RMCast/RMCast_Fragment.i: - * ace/RMCast/RMCast_Fragment.cpp: - Use the RMCast_Module classes instead of ACE_Task. - The header information is propagated in the RMCast::Data - structure and put on a separate iovec entry by the bottom module - in the stack. - - * ace/RMCast/RMCast_Partial_Message.h: - * ace/RMCast/RMCast_Partial_Message.cpp: - Fixed missing #include and corrected a number of problems in the - implementation of the reassembly algorithm. The randomized test - passes cleanly now, even on machines with multiple CPUs. - - * ace/RMCast/RMCast_Reassembly.h: - * ace/RMCast/RMCast_Reassembly.i: - * ace/RMCast/RMCast_Reassembly.cpp: - Use the RMCast_Module classes instead of ACE_Task. - The header information is propagated in the RMCast::Data - structure and obtained from the first bytes in the message - decoded, but all that magic is performed by the Module at the - bottom of the stack. - - * ace/RMCast/RMCast_Sender_Proxy.h: - * ace/RMCast/RMCast_Sender_Proxy.i: - * ace/RMCast/RMCast_Sender_Proxy.cpp: - This class is used in the receiver side to maintain information - about one sender, and to provide an entry point to the - per-sender module stack. - - * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.h: - * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.i: - * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.cpp: - An specialized Sender_Proxy that ignores all the control - messages, essentially working in best effort mode. - - * ace/RMCast/RMCast_Sender_Proxy_Factory.h: - * ace/RMCast/RMCast_Sender_Proxy_Factory.i: - * ace/RMCast/RMCast_Sender_Proxy_Factory.cpp: - Define the interface to create Sender_Proxy instances. The - application provides an instance of this class in the receiver - side to customize the protocol. - - * ace/RMCast/RMCast_UDP_Receiver.h: - * ace/RMCast/RMCast_UDP_Receiver.i: - * ace/RMCast/RMCast_UDP_Receiver.cpp: - Implement a UDP based receiver. - Applications create an instance of this class, customized - through the Sender_Proxy_Factory, to receive messages. - The class can be used in (timed) blocking mode or through the - reactor (using the UDP_Event_Handler helper class). - - * ace/RMCast/RMCast_UDP_Sender.h: - * ace/RMCast/RMCast_UDP_Sender.i: - * ace/RMCast/RMCast_UDP_Sender.cpp: - A Module that sends a single fragment using UDP multicast. - This version does not send or receive any control messages, so - it is best-effort. - - * ace/RMCast/RMCast_UDP_Event_Handler.h: - * ace/RMCast/RMCast_UDP_Event_Handler.i: - * ace/RMCast/RMCast_UDP_Event_Handler.cpp: - Adapter between the Reactor and the UDP_Sender class. - - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - Fixed to match the new interfaces - - * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: - New unit test for the best effort UDP based senders and - receivers. - It creates a sending thread that continuosly send messages to a - single multicast address, meanwhile the main thread receives all - the messages and verifies that they have the expected contents. - It should be expandded to randomize the contents and create - multiple sending threads. - - * tests/RMCast/Makefile: - * ace/RMCast/Makefile: - Add new files, updated dependencies - - * ace/RMCast/RMCast_Header_Size.h: - * ace/RMCast/RMCast_Header_Size.cpp: - Removed - -Wed Aug 9 13:28:20 2000 Douglas C. Schmidt - - * ace/Message_Queue_T.cpp (dequeue_head_i): Make sure to reset - head_ and tail_ to 0 when the cur_count_ drops to 0. Thanks to - Zoran Ivanovic for this fix. - -Wed Aug 09 18:06:40 2000 Pradeep - - * ACE version 5.1.8 released. - -Wed Aug 09 10:10:45 2000 David L. Levine - - * tests/CDR_Array_Test.cpp: disabled LongLong test if - the platform doesn't have native long long support. - ACE's long long emulation doesn't have sufficient - capability to support what the test needs. - Thanks to Peter Kroener - for reporting this. [Bug 632] - - -Tue Aug 08 10:35:04 2000 Rich Seibel - - * ace/config-sunos5.8.h: added. We have compiled successfully - with it on Solaris 8.0 using both gcc 2.95.2 and Sun 5.0 compilers. - It simply includes the 5.7 config.h file. I have noted that there - are some possible efficiencies which autoconfig finds, but this - works. - -Mon Aug 7 21:05:35 2000 Vishal Kachroo - - * examples/QOS/server.dsp: - * examples/QOS/client.dsp: Made changes to add the relative path - for aced.lib. - -Mon Aug 07 07:31:23 2000 Peter Fischer - - * ace/OS.cpp (cond_timedwait): on VxWorks, handle - S_objLib_OBJ_UNAVAILABLE by setting error to ETIME - if msec_timeout is 0. This allows Message_Queue_Test - to succeed. - - * tests/run_tests.vxworks: re-enabled Message_Queue_Test. - -Sun Aug 6 21:40:42 2000 Darrell Brunsch - - * ace/OS.i: - * ace/OS.cpp: - * ace/OS_String.cpp: - * ace/OS_String.h: - * ace/OS_String.inl: - * ace/ace_wchar.h: - * ace/config-all.h - * ace/config-linux-common.h: - * ace/config-win32-common.h: - - Fixed up miscellaneous problems with ACE_HAS_WCHAR on Linux. - Highlights are: - - - Added ACE_HAS_VFWPRINTF and ACE_HAS_VFWPRINTF to NOTSUP a - couple of methods, since they don't seem to be available yet. - - Added ACE_LACKS_WCSDUP_PROTOTYPE, and added the prototype. - - Removed an extra copy of itoa_emulation (..wchar_t..). - - Added some static_cast's to remove unsigned/signed comparison - warnings. - - Added ACE-HAS_SAFE_WCSTOK, since the version supplied with MSVC - is the multi-threaded unsafe version (just like strtok). Here - it is similar to strtok_r. - -Sun Aug 6 17:03:29 2000 Ossama Othman - - * include/makeinclude/wrapper_macros.GNU (CPPFLAGS): - - Define ACE_HAS_SSL=1 instead of just defining ACE_HAS_SSL - without an explicit value. - -Sat Aug 5 21:49:12 2000 Darrell Brunsch - - * ace/OS_String.cpp: - * ace/OS_String.h: - * ace/OS_String.inl: - * ace/config-win32-borland.h: - - Chris Kohlhoff pointed out to me that Borland does have itoa, - but the signature is slightly different (itoa, not _itoa). - Added it back in for Borland and added some preprocessor - commands that will keep the emulation code from being included - unless it is needed. - -Sat Aug 5 11:19:23 2000 Darrell Brunsch - - * ace/config-win32-common.h: - * ace/config-win32-msvc.h: - - Moved ACE_HAS_ITOA to msvc.h, since it is compiler dependent (and - Borland doesn't have it). - -Sat Aug 05 11:26:08 2000 Ossama Othman - - * bin/generate_export_file.pl: - - Changed "#if !defined (...)" include guard to "#ifndef ..." - since some preprocessors enable "process once" optimizations if - the latter form is used. - -Sat Aug 5 01:13:01 2000 Darrell Brunsch - - * ace/OS_String.cpp: - * ace/OS_String.h: - * ace/OS_String.inl: - - Added itoa, which takes in a value, string, and radix. It then - populates the string with the representation of the value in that - radix. - - * ace/config-win32-common.h: - - Turned on ACE_HAS_ITOA. - -Fri Aug 4 15:53:27 2000 Carlos O'Ryan - - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp: - The owner_ field has no effect in the TP reactor, but setting it - or checking its value wakes up the leader thread. This can - result in performance problems for applications that use both TP - and regular reactors, such as TAO. - Thanks to Brian Wright for detecting the - problem and putting us in the right track to solve it. - -Thu Aug 3 17:50:39 2000 Carlos O'Ryan - - * THANKS: - * ace/config-irix6.x-sgic++-nothreads.h: - * include/makeinclude/platform_irix6.x_sgic++.GNU: - Define ACE_HAS_EXCEPTION in the command line, so we can - configure exceptions in a single spot. - Enabled the -LANG:std option by default. - Detect if -LANG:std is used and enable the corresponding ACE - macros. - Thanks to John Hiltenbrand for detecting - this problem and suggesting the fixes. - -Thu Aug 03 17:40:01 2000 Eric Ding - - * include/makeinclude/platform_linux.GNU - Remove ifeq($(threads),1), xt_reactor=0, fl_reactor=0, - and add -I/usr/X11R6/include, -L/usr/X11R6/include to - platform_GL flags. - Patch supplied by Craig Rodrigues - http://www.gis.net/~craigr - rodrigc@mediaone.net - -Wed Aug 2 17:44:58 2000 Balachandran Natarajan - - * ace/config-win32-borland.h: Suppress all warnings from the - preprocessor so that the IDL compiler does not fail on - TAO/tao/Policy.pidl. - - * ace/SSL/Makefile.bor: - * include/makeinclude/ace_flags.bor: Add makefile support for the - SSL and security libraries in ACE and TAO. - - The above patches were taken from - http://www.tenermerx.com/programming/corba/tao_bcb/patch.html, - which is the site maintained by Chistopher Kohlhoff - . - -Tue Aug 01 11:40:46 2000 Bala - - * ACE version 5.1.7 released. - -Mon Jul 31 22:51:11 2000 Balachandran - - * ACE version 5.1.6 released. - -Sat Jul 29 08:41:48 2000 David L. Levine - - * tests/Makefile: don't build CDR_Array_Test with - ACE_HAS_GNUG_PRE_2_8. Build it on LynxOS >= 3.1.0. - -Fri Jul 28 15:58:37 2000 Joe Hoffert - - * bin/pace_components: - Deleting from CVS since it is being melded into - bin/ace_components. - - * bin/ace_components: - Adding commands for pace. - - * include/makeinclude/wrapper_macros.GNU: - For PACE, modified so that it doesn't include the PACE - library if we are inlining. - -Fri Jul 28 12:46:54 2000 David L. Levine - - * tests/run_tests.lst: disabled SOCK_Send_Recv_Test, - Thread_Pool_Test, Cached_Conn_Test, and Process_Strategy_Test - on LynxOS. The work on LynxOS 3.0.0 x86, but not - on our LynxOS 3.1.0 PPC (maybe because it runs out of - resources?). - -Fri Jul 28 11:12:39 2000 David L. Levine - - * tests/Thread_Mutex_Test.cpp (spawn): use 3 threads instead - of 4 (ACE_MAX_THREADS) on LynxOS, otherwise the test doesn't - seem to terminate. - -Fri Jul 28 10:47:27 2000 David L. Levine - - * bin/ace-install: added this handy build+install script. - Thanks to Eric Mitchell for - initially authoring the script, and to Chad Elliott - for converting it from tcsh to - Bourne sh. - -Fri Jul 28 10:39:17 2000 David L. Levine - - * tests/Reader_Writer_Test.cpp (n_iterations): use - default value of 25 instead of 50 on LynxOS as well - as on VxWorks, so the test runs in a reasonable period - of time (under 1.5 seconds on a 266 MHz PPC). - -Fri Jul 28 10:34:01 2000 David L. Levine - - * test/Semaphore_Test.cpp (ACE_ALLOWED_SLACK): set - to 1100 if ACE isn't using a high resolution timer, - such as on LynxOS/PPC. - -Fri Jul 28 10:23:03 2000 David L. Levine - - * Makefile (DIRS, CLONE, CONTROLLED_FILES, RELEASE_LIB_FILES): - added PACE, so that it will be in ACE 5.1.6. - -Fri Jul 28 07:42:50 2000 David L. Levine - - * tests/Makefile: build CDR_Array_Test, even on LynxOS. - It builds and runs successfully on LynxOS 3.1.0. - -Fri Jul 28 00:23:37 2000 John Heitmann - - * ace/OS.h - Slightly modified semaphore code for pace. - - * ace/OS.i - Updated cond_timedwait in ACE_HAS_PACE to - initialize name_ to null. - - Linux uses native gettimeofday. - - * docs/ACE-SSL.html - Updated with new information about obtaining ACE+SSL. - -Thu Jul 27 18:03:24 2000 Luther J Baker - - * include/makeinclude/platform_linux_lxpthread.GNU: - - Updated to include the current correct platform_linux.GNU. - -Thu Jul 27 18:17:36 2000 Steve Huston - - * ace/Future.h: Added some comments to ACE_Future_Rep<>::set and - ACE_Future<>::set to say they only have an effect on the first - call for that object. Thanks to Andres Kruse , - Douglas C. Schmidt , and - John Tucker for their insight on the - original intentions. - -Thu Jul 27 08:32:58 2000 John Heitmann - - * ace/OS.i - Qualified two pace functions with the correct - pace_ name. Added preliminary pace implementation - for ACE_OS::gettimeofday. See PACE/ChangeLog for - other changes relevant to ACE_OS compiled with pace. - -Wed Jul 26 18:08:11 2000 Andrew G. Gilpin - - * ace/Log_Record.cpp - * ace/ACE.cpp - * ace/Handle_Set.cpp - * ace/Capabilities.{cpp, h} - Cosmetic changes required for split-cpp. - -Wed Jul 26 13:20:00 2000 Kirthika Parameswaran - - * ace/Cached_Connect_Strategy_T.h - (ACE_Bounded_Cached_Connect_Strategy): Added a typedef member - which I assumed wrongly would be inherited from the superclass. - -Tue Jul 25 22:41:53 2000 Steve Huston - - * ace/Log_Msg.cpp (ACE_Log_Msg::log): Replace use of C++ 'true' - value with '1' so old compilers still work. - -Tue Jul 25 22:35:31 2000 Steve Huston - - * ace/Future.cpp (ACE_Future_Rep::set): If two threads compete - to set the value, make sure only one notifies waiters. Thanks to - Joseph Weihs for this fix. - -Tue Jul 25 20:27:26 2000 Andrew G. Gilpin - - * ace/Naming_Context.cpp: - Cosmetic change required for split-cpp. - -Tue Jul 25 18:20:37 2000 John Heitmann - - * include/makeinclude/wrapper_macros.GNU: - Changed pace=1 code to check for inline=1, and - include libPACE correctly. - -Tue Jul 25 16:42:02 2000 Andrew G. Gilpin - - * ace/Logging_Strategy.cpp: - Changed #include "Logging_Strategy.h" to - #include "ace/Logging_Strategy.h" - -Tue Jul 25 16:12:31 2000 Andrew G. Gilpin - - * ace/Log_Msg.h: - More cosmetic changes, similar to previous ChangeLog entry. - -Tue Jul 25 15:58:27 2000 Andrew G. Gilpin - - * ace/Capabilities.{h, cpp}: - * ace/Filecache.cpp: - More fixes to allow to be used by $ACE_ROOT/bin/split-cpp. - These changes are merely cosmetic. - -Tue Jul 25 13:30:00 2000 Kirthika Parameswaran - - * ace/Cached_Connect_Strategy_T.{h, cpp}: Added - ACE_Bounded_Cached_Connect_Strategy which provides a bound on the - cache which is checked before creating new handlers. Thanks to - Edan Ayal for contributing this class and - Susan Liebeskind for brainstorming - about it. - -Tue Jul 25 05:46:29 2000 Douglas C. Schmidt - - * ace/Log_Msg.cpp (log): Optimized the check to make sure that - ACE_Log_Msg isn't too long. Now we can keep it in "non-debug" code! - Thanks to Tomer for this suggestion. - -Mon Jul 24 22:49:09 2000 John Heitmann - - * ace/OS_String.inl - - The emulation functions still need system libraries, - which were not being included when ace was enabled. - -Mon Jul 24 21:22:03 2000 Andrew G. Gilpin - - * ace/Remote_Tokens.cpp: - * ace/Signal.{cpp,h}: - * ace/Priority_Reactor.cpp: - * ace/Object_Manager.{cpp,h}: - * ace/OS.cpp: - * ace/Parse_Node.{cpp,h}: - - The script $ACE_ROOT/bin/split-cpp makes some assumptions about the - source code that it is working with. These changes allow split-cpp - to be used with ACE. These fixes are all mostly code formatting changes. - The functionality should not be changed in any case. - -Mon Jul 24 20:21:47 2000 Andrew G. Gilpin - - * include/makeinclude/wrapper_macros.GNU - * include/makeinclude/rules.local.GNU - * include/makeinclude/rules.lib.GNU - Added support for make split=1 which will use the split-cpp script - when compiling. This should be considered an extremely beta, - use-at-your-own-risk feature for the time being. - -Mon Jul 24 20:13:59 2000 Andrew G. Gilpin - - * bin/split-cpp: - Initial check-in. This script is used to split up C++ source files - into smaller C++ source files, each containing one static data - declaration or one function definition. For more information, see - the comments at the top of the file. - -Mon Jul 24 20:02:03 2000 Douglas C. Schmidt - - * ace/Process_Manager: Replaced ACE_Thread_Mutex with - ACE_Recursive_Thread_Mutex to avoid nasty self-deadlocks! - Thanks to Tom Arbuckle's - for reporting this. - - * ace/Log_Msg.cpp (log): Added a sanity check to make sure that - long messages don't corrupt the memory. Thanks to Tomer - Amiaz for contributing this. - -Mon Jul 24 14:03:59 2000 Chad Elliott - - * include/makeinclude/platform_vxworks5.x_g++.GNU - - Added the PENTIUM and PENTIUMPRO CPU's for x86 VxWorks. - -Mon Jul 24 10:30:35 2000 Michael Kircher - - * OS_Dirent.inl: Added the deletion of the DIR.directory_name_ - and the DIR struct itself for the Win32 emulation. - -Sat Jul 22 22:10:35 2000 Marina Spivak - - * config-win32-common.h - * config-win32-visualage.h: - - By default WIN32 has FD_SETSIZE of 64, which places the limit - between 61 and 64 on the number of clients a server using the - Select Reactor can support at the same time (i.e., 64 - standard - in, out, error). Raised the limit to 1024. - -Fri Jul 21 21:24:09 2000 Douglas C. Schmidt - - * ace/Parse_Node.cpp: Updated the ACE_Object_Name and - ACE_Function_Node constructors to use the new ACE::ldname() - method rather than ACE::strnew(). Thanks to Chris Kohlhoff for - this fix. - - * ace/ACE.cpp: Added a new method called ACE::ldname() so that - dynamic loading performed by the service configurator work the - same with BCB as with other compilers. With BCB, exported - functions from a DLL all have a "_" prepended. Previously you - had to explicitly add the "_" into the svc.conf or when you - called ACE_Service_Config::process_directive. This change - removes that need and makes BCB stuff source/config compatible - with other compilers. This change was prompted by Lothar - Werzinger and was provided by - Christopher Kohlhoff . - -Fri Jul 21 19:22:20 2000 Carlos O'Ryan - - * bin/auto_compile: - Use a .txt extension instead of .log for the log files, that - makes it possible to view them in web browsers without - downloading. - -Fri Jul 21 14:46:37 2000 Vishal Kachroo - - * ace/QoS_Decorator.h: Added ACE_Export for decorator classes for - WinNT. - * ace/QoS_Decorator.cpp: Removed an extra semi-colon. - -Fri Jul 21 09:11:36 2000 Douglas C. Schmidt - - * ace/Process_Manager: Updated the documentation to reflect the recent - change in the notify() implementation. - -Thu Jul 20 23:21:11 2000 Darrell Brunsch - - * examples/IPC_SAP/SSL_SAP/SSL-client.dsp: - * examples/IPC_SAP/SSL_SAP/SSL-server.dsp: - - Fixed up the include paths in these projects. - -Fri Jul 21 00:29:38 2000 Vishal Kachroo - - * examples/QOS/Receiver_QoS_Event_Handler.h: - * examples/QOS/Receiver_QoS_Event_Handler.cpp: Added this event - handler to handle QoS and socket data for the receiver. - - * examples/QOS/Sender_QoS_Event_Handler.h: - * examples/QOS/Sender_QoS_Event_Handler.cpp: Added this event - handler to handle QoS and socket data for the Sender. - - * examples/QOS/QoS_Util.h: - * examples/QOS/QoS_Util.cpp: This class provides utility funtions - like parsing QoS parameters for the QoS enabled applications. - - * examples/QOS/QoS_Signal_Handler.h: - * examples/QOS/QoS_Signal_Handler.cpp: Used to gracefully close - QoS sessions and shutdown RSVP signalling. - - * examples/QOS/FlowSpec_Dbase.h: Provides a name-Flowspec mapping - for the standard QoS flowspecs like g711. Typical QoS flowspecs - required for different video encoding/decoding schemes can be - listed here. - - * examples/QOS/Fill_ACE_QoS.h: - * examples/QOS/Fill_ACE_QoS.cpp: This class helps users to add - new flow specs and provides utility functions for filling up the - flow specs for simplex/duplex sessions. - - * examples/QOS/server.cpp: QoS enabled receiver application. - * examples/QOS/client.cpp: QoS enabled sender application. - - * examples/QOS/Makefile: - * examples/QOS/README - * examples/QOS/QOS.dsw: - * examples/QOS/client.dsp: - * examples/QOS/server.dsp: Updated these files to reflect changes - to the test. The above test demonstrates the use of various - aspects of AQoSA (ACE QoS API). - -Thu Jul 20 23:04:30 2000 John Heitmann - - * ace/Thread_Manager.cpp - * ace/OS_String.inl - Added pace functionality. - -Thu Jul 20 18:28:43 2000 Douglas C. Schmidt - - * ace/SV_Message_Queue: Made the get_id() method const. Thanks - to Mike Winter for suggesting this. - - * ace/Typed_SV_Message_Queue: Added a get_id() accessor. Thanks - to Mike Winter for reporting this. - -Thu Jul 20 14:19:06 2000 Douglas C. Schmidt - - * ace/Thread_Manager.h: Updated the comments on the various *kill*() - methods to clarify what they do and where they are not portable. - Thanks to Steve Huston for motivating this. - -Thu Jul 20 11:00:00 2000 Kirthika Parameswaran - - * ace/Caching_Utility_T.cpp: To get rid of egcs warnings on Linux, - static casted both fields of ACE_MAX in method . - Thanks to David Levine for pointing this - out. Also changed ssize_t to size_t in the cast. - -Thu Jul 20 08:04:13 2000 Douglas C. Schmidt - - * ace/OS.i: Rearranged some code so that the operator *= - and the ACE_Time_Value copy constructor appear in the right - order... Thanks to David for reporting this. - -Wed Jul 19 22:51:42 2000 Steve Huston - - * ace/OS.i (ACE_OS::cond_timedwait): For pSOS, convert absolute - time value to relative, expressed in ticks. Account for pSOS - behavior on timeout - returns with mutex unlocked. Thanks to - Sarmeesha Reddy for this fix. - -Wed Jul 19 19:30:00 2000 Kirthika Parameswaran - - * ace/Caching_Utility_T.cpp: Rectified a typo made in method - . - -Wed Jul 19 17:12:50 2000 John Heitmann - - * ace/OS.h - * ace/OS.i - Wrapped most pace calls with ACE_OSCALL to handle EINTR - correctly, minor corrections and adjustments to pace - functions. - -Wed Jul 19 16:50:00 2000 Kirthika Parameswaran - - * ace/Caching_Utility_T.cpp: Changed the formula to calculate the - as per the contribution by Edan Ayal - . Thanks to Edan for discovering this bug and - contributing the solution for it. - -Wed Jul 19 08:40:10 2000 Douglas C. Schmidt - - * ace/OS.i: Moved the new operator *= so that it's *after* - the inlined sec() and usec() members. - -Tue Jul 18 23:30:59 2000 John Heitmann - - * ace/OS.h - - Modified earlier changes to improve support for LynxOS - signals using pace. - - * ace/ACE.cpp - * ace/OS_Memory.h - - Use pace system calls instead of regular calls - when pace is enabled. - -Tue Jul 18 12:55:55 2000 Joe Hoffert - - * include/makeinclude/platform_lynxos.GNU: - Added PACE_SYSVER assignment to distinguish different - versions of LynxOS in the future. - -Mon Jul 17 23:44:36 2000 Vishal Kachroo - - * ace/Makefile (OTHER_FILES): Moved SOCK_Dgram_Mcast_QoS to the - other files category. It really belongs to a separate category - that I'll create later. - -Mon Jul 17 12:41:25 2000 Andrew G. Gilpin - - * ace/Log_Msg.cpp (LOCAL_EXTERN_PREFIX): - - Changed #define LOCALEXTERN_PREFIX to #define LOCAL_EXTERN_PREFIX - -Mon Jul 17 05:38:15 2000 Douglas C. Schmidt - - * ace/Process_Manager.cpp (open): Zapped a stray register_handler() - call that was mistakenly left around during the recent merge. - Thanks to Darrell Brunsch for reporting this. - -Sun Jul 16 18:53:42 2000 Darrell Brunsch - - * ace/TTY_IO: Removed the #define for ACE_BUILD_DLL, since it - is already defined in the .dsp file. - -Sun Jul 16 19:36:17 2000 Vishal Kachroo - - * ace/QoS_Session.h: - * ace/QoS_Session_Impl.{cpp,h,i}: - * ace/SOCK_Dgram_Mcast_QoS.cpp: Changed these files to accomodate - the new QoS decorator classes. - - * ace/QoS_Decorator.{cpp,h}: Added the QoS decoration for the - ACE_Event_Handler that enables it to catch the RAPI events along - with the usual socket events. - -Sun Jul 16 08:49:44 2000 Douglas C. Schmidt - - * ace/OS: Added multiplication operators to ACE_Time_Value. Thanks - to Tomer Amiaz for contributing these. - - * ace/Process_Manager: To fix deadlocks with the Process_Manager - on UNIX applied the following fixes: - - Use the notify() capability of the reactor from the signal - handler. This allows the signal handler to notify the reactor - (over a pipe) that the signal should be processed. This is done - completely without MT locks. If - ACE_HAS_REACTOR_NOTIFICATION_QUEUE is defined, - ACE_Select_Reactor_Notify::notify_queue_lock_ is now made a - recursive mutex. - - Thanks to Roger Larsson for contribution - these fixes. - - * ace/TTY_IO: Added additional support for the ACE serial line I/O - wrapper facades. Thanks to Martin Stack - for contribution this. - - * ace/Service_Repository.h, - * ace/Service_Object.h, - * ace/Service_Config.h: Added the following aliases: - - #define ACE_Component ACE_Service_Object - #define ACE_Component_Config ACE_Service_Config - #define ACE_Component_Repository ACE_Service_Repository - - to be consistent with the terminology in the POSA2 book. - -Fri Jul 14 19:31:39 2000 Eric Ding - - * ace/config-linux.h - * ace/config-linux-lxpthreads.h - * include/makeinclude/platform_linux.GNU - * include/makeinclude/platform_linux_lxpthreads.GNU - - Changing the default config/platform setting to thread enable on Linux - -Fri Jul 14 19:03:49 2000 John Heitmann - - * include/makeinclude/wrapper_macros.GNU: - Added -DPACE_HAS_ALL_POSIX_FUNCS to the pace flag. - - * ace/OS.h: - Changed typedef of ACE_SignalHandler on LynxOS to - use pace_sig_pf when pace is enabled. Also changed - SIG_IGN accordingly. - -Fri Jul 14 17:25:29 2000 Steve Huston - - * tests/UNIXserver.conf: - * tests/UNIXclerk.conf: - * tests/UNIXtokens.conf: - * tests/Win32server.conf: - * tests/Win32clerk.conf: - * tests/Win32tokens.conf: Look for _make_ACE_Logging_Strategy in - ACE, not netsvcs. It was moved there recently. - -Fri Jul 14 12:00:26 2000 Steve Huston - - * ace/Log_Msg.h (ACE_Log_Msg): Replaced class comments with some new - text submitted by Jerry D. DeMaster - that explain the per-thread and per-process logging enablement - clearly. - -Fri Jul 14 00:28:07 2000 John Heitmann - - * ace/OS.i - - Updates to srand and qsort to eliminate return (for pace). - -Thu Jul 13 20:25:51 2000 Douglas C. Schmidt - - * ACE-INSTALL.html: Updated this file to reflect current reality - wrt Borland C++. Thanks to Christopher Kohlhoff - for reporting this. - -Thu Jul 13 16:34:36 2000 John Heitmann - - * include/makeinclude/wrapper_macros.GNU: - - Added 'pace' flag to use pace as the underpinnings - of ACE_OS. - -Thu Jul 13 14:50:39 2000 Balachandran Natarajan - - * ace/OS.h: Undid the change - Mon Jun 19 17:33:28 2000 Douglas C. Schmidt - - This was creating problems in the IRIX builds. Moreover this - also busted the 'thread-per-connection' strategy in TAO. The - change actually removed a conditional check. I have added that - back. Thanks to Nanbor Wang for guiding me through this. - -Thu Jul 13 14:41:58 2000 John Heitmann - - * ace/OS.i: - - Minor updates to PACE functions which used to use - double parenthesis. - -Thu Jul 13 12:58:26 2000 Ossama Othman - - * ace/SSL/ACE_SSL.dsp: - - Added `SSL_Export.h' to the list of headers. - - * ace/SSL/SSL_Context.cpp: - - Moved preprocessor conditional that checks if ACE_HAS_SSL is - defined after the inclusion of SSL_Context.h. This fixes a link - error that occurs when ACE_HAS_SSL is defined in the config - header instead of on the command line. - -Thu Jul 13 10:55:44 2000 David L. Levine - - * ace/Makefile: changed ssl check from ifneq null to - ifeq 1, to allow ssl = 0. - -Thu Jul 13 10:10:54 2000 David L. Levine - - * ace/Makefile: move ssl check to after include of wrapper_macros.GNU, - so that ssl=1 can be set in platform_macros.GNU. - -Thu Jul 13 09:33:45 2000 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.i (send, recv): - - Fixed typos where size of buffer being sent/received was passed - to the OpenSSL SSL_get_error() function, instead of the return - status of the SSL_write()/SSL_read() call. This will fix - some broken error handling. - Reported by Craig Perras - -Thu Jul 13 07:55:41 2000 David L. Levine - - * docs/ACE-guidelines.html: added general guideline to not - end text lines with spaces, and the .emacs incantation - that removes them. Thanks to Craig Rodrigues - for suggesting this addition, which we already check for - when committing to our CVS repository. - -Wed Jul 12 09:42:21 2000 Giga Giguashvili - - * ace/CDR_Stream.h: added forward declaration of - ACE_InputCDR before ACE_OutputCDR class definition. - -Wed Jul 12 07:26:25 2000 David L. Levine - - * tests/Service_Config_Test.cpp (instance): cast the u_short to - u_long before casting to void *, to avoid KCC warning about - casting to pointer from integer of different size. - -Tue Jul 11 17:20:48 2000 David L. Levine - - * ace/Local_Tokens.cpp (ACE_TPQ_Entry ctor): try a reinterpret cast - of ACE_Thread::self () to u_long. We need u_long on Linux. - -Tue Jul 11 16:09:14 2000 David L. Levine - - * bin/auto_run_tests.lst: don't run LongUpcalls test - with minimum CORBA. Thanks to Irfan for reporting - that the test needs AMI to run, and minimum CORBA - doesn't have AMI. - -Tue Jul 11 16:03:58 2000 David L. Levine - - * ace/Local_Tokens.cpp (ACE_TPQ_Entry ctor): don't cast result - of ACE_Thread::self (), because it might be a structure. - Thanks to Ossama for reminding me of that. - Changed format specifier to be %u instead of %lu, to avoid - mismatch, at least on some platforms. - -Tue Jul 11 14:47:48 2000 Chris Kohlhoff - - * ace/config-win32-common.h: - Use default value of 0 for ACE_USE_RCSID on Win32 since RCS IDs - should probably not be required on this platform. - - * include/makeinclude/build_core_exe.bor: - * include/makeinclude/build_core_library.bor: - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - * include/makeinclude/build_lib.bor: - * include/makeinclude/make_flags.bor: - * include/makeinclude/outputdir.bor: - * include/makeinclude/recurse.bor: - * include/makeinclude/install.bor: - * ace/Makefile.bor: - Added support for 'make install'. - - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - * include/makeinclude/build_lib.bor: - * include/makeinclude/clean.bor: - Changed clean target so that files generated by the IDL compiler - are removed. - - * ace/ace_wchar.h: - * ace/config-win32-borland.h: - * ace/OS.h: - * ace/OS_String.h: - * ace/OS.i: - Bring certain types and functions into the global namespace. This - is necessary so that the ACE headers will work the same regardless - of any standard C++ headers that may be included beforehand. - -Tue Jul 11 14:21:51 2000 Steve Huston - - * ace/Log_Msg.cpp (ACE_Log_Msg::log): Added an ACE_Errno_Guard to - prevent errors in this function from destroying errno. This function - should be benign, just reporting, and leaving errno alone for - further checks/logging by apps. - -Tue Jul 11 14:20:35 2000 Steve Huston - - * tests/SOCK_Send_Recv_Test.cpp: Added some additional output - to replace an assert - helps track problems quicker. Thanks to - David Levine for this suggestion. - -Tue Jul 11 11:06:45 2000 Craig Rodrigues - - * ace/config-linux-common.h: in glibc 2.2, the function - prototypes for msgsnd() and msgrcv() were changed to be POSIX - compliant. So, ACE_LACKS_SOME_POSIX_PROTOTYPES breaks - compilation. - -Tue Jul 11 11:03:50 2000 David L. Levine - - * bin/make_release: chmod of kits to 664, and chgrp to doc, - after creation. - -Tue Jul 11 10:45:46 2000 David L. Levine - - * bin/generate_man_pages: don't try generate man pages for - RMCast_Reassembly.h, either, because it trips up class2man. - [Bug 608] - -Tue Jul 11 10:40:48 2000 David L. Levine - - * bin/make_release: robustness improvements: - 1) set CVSROOT and ACE_ROOT environment variables, and $logname, - to reasonable default values if they were null. - 2) Always prepend /project/danzon/pkg/gnu/bin to PATH. Before, - -d was first used to check to see if it existed. But, it - might not have been mounted, and -d won't cause it to automount. - -Tue Jul 11 08:24:33 2000 Douglas C. Schmidt - - * ace/POSIX_Asynch_IO.h, - * ace/SUN_Proactor.h: Fixed these files so that class2man - now generates proper manual pages. [Bug 608] - -Tue Jul 11 08:07:23 2000 David L. Levine - - * bin/generate_man_pages: don't try generate man pages for - RMCast_Export.h, because it's a generated file and doesn't - have any man page formatting info. It trips up class2man. - [Bug 608] - -Tue Jul 11 07:42:57 2000 David L. Levine - - * ace/Local_Tokens.cpp (ACE_TPQ_Entry ctor): cast result - to ACE_Thread::self () to u_long, to avoid mismatch with - %lu sprintf parameter. - -Tue Jul 11 06:21:35 2000 Douglas C. Schmidt - - * apps/Gateway/Peer/Peer.cpp (transmit): The last two arguments to - Event_Header were reversed! Thanks to Kim Lester - for reporting this. - -Mon Jul 10 20:35:08 2000 Marina Spivak - - * ACE version 5.1.5 released. - -Mon Jul 10 13:15:10 2000 Ossama Othman - - * ace/SSL/Makefile (ACE_SHLIBS): - - Added "-lACE" to the list of libraries that should be linked in - to libACE_SSL, since the ACE SSL wrappers depend on ACE. - -Sun Jul 09 21:38:03 2000 Ossama Othman - - * ace/SSL/ACE_SSL.dsp: - - Fixed library path in "Release" configuration. - -Sun Jul 09 14:20:42 2000 Darrell Brunsch - - * ace/ace_wchar.h: - - Added support for wchar_t on VxWorks. It now compiles, but - unfortunately VxWorks doesn't come with any C library support - beyond conversion to/from multi-byte character strings. - - This will only take effect when ACE_HAS_WCHAR is defined (it - isn't by default). Emulation for the missing str* functions - will be added soon. - -Sun Jul 09 14:00:42 2000 Darrell Brunsch - - * ace/ace_wchar.h: - - Added two macros for straight out conversion of strings: - ACE_TEXT_CHAR_TO_WCHAR and ACE_TEXT_WCHAR_TO_CHAR. - - * ace/adapter/README: (Added) - * ace/adapter/ace/ACE.h: (Added) - * ace/adapter/ace/ARGV.h: (Added) - * ace/adapter/ace/Arg_Shifter.h: (Added) - * ace/adapter/ace/ATM_Addr.h: (Added) - * ace/adapter/ace/DEV_Addr.h: (Added) - * ace/adapter/ace/Dirent.h: (Added) - * ace/adapter/ace/DLL.h: (Added) - * ace/adapter/ace/Dynamic_Service.h: (Added) - * ace/adapter/ace/FIFO.h: (Added) - * ace/adapter/ace/FIFO_Recv.h: (Added) - * ace/adapter/ace/FIFO_Recv_Msg.h: (Added) - * ace/adapter/ace/FIFO_Send.h: (Added) - * ace/adapter/ace/FIFO_Send_Msg.h: (Added) - * ace/adapter/ace/FILE_Addr.h: (Added) - * ace/adapter/ace/Functor.h: (Added) - * ace/adapter/ace/High_Res_Timer.h: (Added) - * ace/adapter/ace/INET_Addr.h: (Added) - * ace/adapter/ace/Malloc_T.h: (Added) - * ace/adapter/ace/Memory_Pool.h: (Added) - * ace/adapter/ace/MEM_Addr.h: (Added) - * ace/adapter/ace/OS_Dirent.h: (Added) - * ace/adapter/ace/OS_String.h: (Added) - * ace/adapter/ace/Service_Config.h: (Added) - * ace/adapter/ace/Service_Object.h: (Added) - * ace/adapter/ace/SOCK_Dgram_Bcast.h: (Added) - * ace/adapter/ace/SOCK_Dgram_Mcast.h: (Added) - * ace/adapter/ace/SPIPE_Addr.h: (Added) - * ace/adapter/ace/System_Time.h: (Added) - * ace/adapter/ace/Task_T.h: (Added) - * ace/adapter/ace/Trace.h: (Added) - - This is a initial shot at the implementation of an adaptation - layer for ACE that provides a Wide character interface with - a character library and vice versa. - - Right now the above files contain classes ending with _W that - correspond to the actual classes (such as ACE_W). This class - will have methods that take in wchar_t instead of char, and - then convert the parameters and return value when calling - the actual char implementation. - - Note, this is an initial implementation that isn't complete - across all interfaces and there are memory management issues that - still must be dealt with. - -Sat Jul 08 14:50:34 2000 David L. Levine - - * all Makefiles: updated dependencies. - -Fri Jul 7 20:24:30 2000 Douglas C. Schmidt - - * examples/Reactor/Multicast/server.cpp: The last character 0x0D in the - message was messing up the display. Thanks to Zoran Ivanovic - for this fix. - -Fri Jul 07 17:17:21 2000 George Reid - - * ace/config-mvs.h: long long support was introduced in os/390 - version 2.6, so only #define ACE_LACKS_LONGLONG_T with - if __COMPILER_VER__ < 0x22060000. - - * ace/config-mvs.h: added #define ACE_LACKS_PLACEMENT_OPERATOR_DELETE, - even though it doesn't seem to have an effect on - ace/Svc_Handler.cpp. - -Fri Jul 7 09:47:36 2000 Douglas C. Schmidt - - * netsvcs/lib/Server_Logging_Handler_T.cpp (open_common): Don't - pass in the length to the ACE_CString constructor -- just let is - copy what's already there. Thanks to Valery Arkhangorodsky - for reporting this. - - * ace/ACE.cpp (timestamp): Make sure to insert a NUL byte at the - end of yeartmp and timetmp. Thanks to David Levine and Purify - for reporting this. - -Fri Jul 07 09:36:05 2000 David L. Levine - - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client): - cast result of ACE_OS::getpid () to int, and print as an int, to - avoid compiler warning about mismatched format specifier. - -Thu Jul 6 10:36:46 2000 Douglas C. Schmidt - - * ace/ACE.cpp: Fixed the timestamp() call so that it returns a string - with the date that also contains the year. Thanks to Nicoletta Viale - for reporting this. - -Thu Jul 06 10:59:41 2000 David L. Levine - - * performance-tests/Misc/test_naming (bind,rebind,unbind,find): - changed ACE_ASSERTs to statements that are always executed, - even with ACE_NDEBUG set. Added ACE_ERRORs to report errors. - -Thu Jul 06 10:51:19 2000 David L. Levine - - * examples/Reactor/Misc/test_time_value.cpp (main): added - some ACE_UNUSED_ARGS with ACE_NDEBUG to eliminate warnings - about unused variables with debug=0. - -Wed Jul 5 23:36:12 2000 John Heitmann - - * ace/OS.i: - Added PACE functionality to functions whose counterparts were - recent additions to PACE. - -Wed Jul 5 14:04:50 2000 Douglas C. Schmidt - - * ace/SUN_Proactor: Added yet another handle_events() method to keep - SunC++ from complaining! Thanks to David for reporting this. - -Wed Jul 05 13:19:52 2000 Steve Huston - - * ace/OS.h: Don't typedef pid_t for ACE_PSOS_DIAB_PPC - it's defined - in sys/types.h. - -Wed Jul 05 12:06:17 2000 Steve Huston - - * ace/OS.h: make the pSOS section adapt better to different pSOS - versions which seem to define different sets of errno values. - Also merge in some additions supplied by Matt Emerson - to define needed types based on the - ACE_PSOS_CANT_USE_SYS_TYPES config macro. (I think this macro - may have been added a while back by someone else working on the - pSOS port, but was not noted in this ChangeLog). - -Wed Jul 05 11:24:51 2000 Steve Huston - - * ace/config-psos-diab-ppc.h: Added ACE_HAS_EXCEPTIONS in the - non-g++ section. - -Tue Jul 4 10:12:12 2000 Douglas C. Schmidt - - * ace/SUN_Proactor: Added a new method with the name/signature - - virtual int handle_events (ACE_Time_Value &); - - so that we get the appropriate overloading/overriding behavior. - Thanks to Marina for reporting this. - - * ace/POSIX_Proactor.cpp: Removed unnecessary parens around - aiocb * and ACE_POSIX_Asynch_Result * to make certain compilers - happy. Thanks to Marina for reporting this. - - * ace/SUN_Proactor.cpp (handle_events): Fixed an ACE_ERROR that - should have been ACE_ERROR_RETURN. Thanks to Marina for - reporting this. - (start_aio): Fixed capitalization of "Op" to be "op". - - * ace/POSIX_Proactor.cpp, - * ace/SUN_Proactor.cpp: Fixed improper use of TCHAR to be ACE_TCHAR - and also fixed another stray use of "int result". Thanks to - David Levine for reporting this. - -Mon Jul 3 08:04:00 2000 Douglas C. Schmidt - - * ace/POSIX_Proactor.h (ACE_POSIX_AIOCB_Proactor): Fixed another - syntax error. Thanks to David Levine for reporting it. - -Mon Jul 3 00:22:57 2000 John Heitmann - - * ace/OS.{cpp,h}: - Made changes to support changes made to PACE. All - changes occured inside #ifdef ACE_HAS_PACE. - -Sun Jul 2 17:38:25 2000 Douglas C. Schmidt - - * ace/POSIX_Proactor.cpp, - * ace/POSIX_Asynch_IO.cpp: Fixed some bugs with the integrated code, - in particular, the use of the legacy ASYS_TEXT has been fixed. - -Sat Jul 1 11:33:45 2000 Alex Libman - - * ace/SUN_Proactor: Added new files that specialize the - POSIX_Proactor to use the Sun-specific versions of aioread() and - aiowrite(), which are much faster than the POSIX versions. - - * ace/POSIX_Proactor: Added public virtual method ProactorType get_impl_type () - where enum ProactorType { - PROACTOR_POSIX, // base class type - PROACTOR_AIOCB, - PROACTOR_SIG , - PROACTOR_SUN - }; - - This has been done with purpose not to develop additional - classes ACE_SUN_Asynch_Read/Write_Stream/File and to take into - account differencies in ACE_POSIX_Asynch_Operation::cancel () - method. - - * ace/POSIX_AIOCB_Proactor: The public constructor now defines max - number asynchronous operations which can be started at the same time: - - ACE_POSIX_AIOCB_Proactor ( size_t nMaxOp = 256 ); - - ACE_RTSIG_MAX ( usually 8 ) is too small for real job. - - Also added proctected constructor - - ACE_POSIX_AIOCB_Proactor ( size_t nMaxOp , int Flg); - - This constructor is used by ACE_SUN_Proactor. The difference - between constructors: public constructor calls - create_notify_manager (see 3.) and protected does not. The - reason: it is necessary to create ACE_AIOCB_Notify_Pipe_Manager - instance when the virtual table for derived class is biult. - - Added protected method: - - void create_notify_manager () ; - - The method is called from public ACE_POSIX_AIOCB_Proactor - constructor and ACE_SUN_Proactor constructor - ACE_AIOCB_Notify_Pipe_Manager should be created after - building the virtual table for the final subclass. - - Added protected method: - - void delete_notify_manager () ; - - The method is called from ACE_POSIX_AIOCB_Proactor and - ACE_SUN_Proactor destructors. It is possible to call it twice, - as it deletes ACE_AIOCB_Notify_Pipe_Manager and sets pointer to - zero. - - Replaced the protected method - - int register_aio_with_proactor (ACE_POSIX_Asynch_Result *result) - - with two protected following methods: - - virtual int register_and_start_aio( ACE_POSIX_Asynch_Result *result, - int Op ); - virtual int start_aio (ACE_POSIX_Asynch_Result *result, int Op ); - - where Op means : 0-read, 1- write - - These methods are made both as virtual to overwrite in - ACE_SUN_Proactor. register_and_start_aio shoud be called - instead of old register_aio_with_proactor and it locks access to - aiocb lists. start_aio is called only from register_and_start_aio. - - Added protected method to find and extract the results of the - completed aio operation: - - ACE_POSIX_Asynch_Result * find_completed_aio (int & error_status, - int & return_status ); - - This method is called from int handle_events (unsigned long milli_seconds) - and locks access to aiocb lists. - - Replace the following members : - - aiocb *aiocb_list_ [ACE_RTSIG_MAX]; - ACE_POSIX_Asynch_Result *result_list_ [ACE_RTSIG_MAX]; - - with - - aiocb ** m_pAIOCB_list_ ; - ACE_POSIX_Asynch_Result ** m_pResult_list_ ; - - The listsd are be allocated dynamically. - - Added thread mutex to protect the work with lists. - ACE_Thread_Mutex m_MtxAIOCB ; - - * ace/POSIX_AIOCB_Asynch_Operation: The method - - int register_aio_with_proactor (ACE_POSIX_Asynch_Result *result); - - is replaced by - - int register_and_start_aio (ACE_POSIX_Asynch_Result *result,int Op); - - where Op means operation : 0 - read , 1 - write - - The method - - int cancel (void); - - is modified according to the type of Proactor's implementation. - - The following methods are changed as shown below: - - int ACE_POSIX_AIOCB_Asynch_Read_Stream::shared_read - (ACE_POSIX_Asynch_Read_Stream_Result *result) - { - result->aio_sigevent.sigev_notify = SIGEV_NONE; - return register_and_start_aio ( result , 0 ) ; // read - } - - and - - int ACE_POSIX_AIOCB_Asynch_Read_Stream::shared_write - (ACE_POSIX_Asynch_Read_Stream_Result *result) - { - result->aio_sigevent.sigev_notify = SIGEV_NONE; - return register_and_start_aio ( result , 1 ) ; //write - } - -Sat Jul 01 11:46:23 2000 David L. Levine - - * ace/config-cxx-common.h: moved ACE_HAS_STANDARD_CPP_LIBRARY - and ACE_HAS_CPLUSPLUS_HEADERS defines out of Linux-only - section, to minimize the differences between Linux and Tru64. - Those defines don't hurt on Tru64. - -Fri Jun 30 16:51:48 2000 Steve Huston - - * tests/CDR_Array_Test.cpp: Add template type specifiers to copy - ctor and operator= to satisfy IBM C/C++. - -Fri Jun 30 10:59:23 2000 Joe Hoffert - - * include/makeinclude/platform_lynxos.GNU: - Added PACE_SYSNAME = LynxOS so that PACE can set the - appropriate platform subdirectory when building. - -Fri Jun 30 03:21:58 2000 John Heitmann - - * ace/OS.{h,i}: - * ace/OS_Dirent.{h,inl}: - Added more pace calls. OS.i is now mostly complete. - -Thu Jun 29 18:44:07 2000 John Heitmann - - * ace/OS.{i,cpp,inl}: - * ace/OS_Dirent.{inl,h}: - Began integration of pace with ACE_OS. #define - ACE_HAS_PACE to activate. About 25% is complete. - -Thu Jun 29 15:49:16 2000 Steve Huston - - * ace/INET_Addr.h (ACE_INET_Addr (const ACE_TCHAR [])): - * ace/DEV_Addr.h (ACE_DEV_Addr (const ACE_TCHAR *)): - * ace/Dirent.h (ACE_Dirent (const ACE_TCHAR *)): - * ace/FILE_Addr.h (ACE_FILE_Addr (const ACE_TCHAR *)): - * ace/Local_Tokens.h (ACE_Mutex_Token (const ACE_TCHAR *), - ACE_RW_Token (const ACE_THCAR *)): - * ace/MEM_Addr.h (ACE_MEM_Addr (const ACE_THCAR [])): - * ace/Parse_Node.h (ACE_Parse_Node (const ACE_TCHAR *), - ACE_Static_Function_Node (const ACE_TCHAR *)): Added ACE_EXPLICIT - to prevent unintended conversion of strings to these objects. - Thanks to Joseph Weihs for this correction. - - * ace/OS.h, config-all.h: Move setups for ACE_EXPLICIT and - ACE_MUTABLE macros from OS.h to config-all.h. ACE_EXPLICIT was - needed for the above (Dirent triggered the need to move it) and - ACE_MUTABLE seemed like the same sort of compiler setting thing to - be more properly in config-all.h. - -Wed Jun 28 19:35:23 2000 Jerry D. De Master - - * netsvcs/lib/Client_Logging_Handler.cpp: - Currently, the client logging daemon attempts to connect to a - server logging daemon to which all logging records are - forwarded. In the event that a connection cannot be established - at initialization, or if the connection is lost during daemon - execution, logging output "rolls-over" to STDERR. This seems - like reasonable behavior, however.... - - One interesting use case of the client logging daemon is to use - it to collect all logging output from all clients, on a single - node system. For this use case, there is no need for a server - logging daemon. One could run the client logging daemon without - a server logging daemon and redirect STDERR to a logfile, - however, this methodology does not allow the use of the - ACE_Logging_Strategy class to configure the client daemon's - logging behavior (especially the new -i and -m options). This - problem can be easily fixed by first testing if the client - daemon is already logging to a msg_ostream - if it is, do not - roll-over logging to STDERR upon connection failure. - -Wed Jun 28 11:20:08 2000 Joe Hoffert - - * bin/pace_components: - Modified to make PACE_ROOT $(ACE_ROOT)/PACE rather than the - previous value of $(ACE_ROOT)/pace. - -Wed Jun 28 11:42:53 2000 Steve Huston - - * ace/config-psos-diab-ppc.h: Added ACE_LACKS_PRAGMA_ONCE for the - non-g++ situation. The newer Diab compiler (at least) needs this. - Corrected a '#defined' directive to '#define'. - -Tue Jun 27 13:01:37 2000 Steve Huston - - * tests/CDR_Array_Test.cpp: Moved the 'digits' array inside the - function which used it. With the array at module scope, the template - instantiation didn't find it for debug=0 optimize=1 on Sun C++ 4.2. - -Tue Jun 27 11:11:41 2000 Steve Huston - - * tests/OS_Test.cpp: Remove more output which triggers false fails - in test scripts. Thanks to David Levine for his patience and help - with this. - -Tue Jun 27 09:23:01 2000 Joe Hoffert - - * include/makeinclude/platform_sunos5_g++.GNU: - Changed optimization flag from -O2 to -O3 to get rid of - function declared but not used warnings for PACE. - -Tue Jun 27 08:55:21 2000 Michael Kircher - - * ace/OS_Dirent.cpp: Fixed the algorithm of reading a directory - in the readdir_emulation () method. Thanks to Zoran Ivanovic - for pointing this out. - -Tue Jun 27 08:30:21 2000 Steve Huston - - * netsvcs/servers/main.cpp: Add "ace/" to #include Logging_Strategy.h - to find it in it's new home. - -Tue Jun 27 08:24:49 2000 Steve Huston - - * ace/Makefile: - * netsvcs/lib/Makefile: Updated dependencies. - -Mon Jun 26 18:26:47 2000 Ossama Othman - - * netsvcs/lib/Makefile.am (libnetsvcs_la_SOURCES, noinst_HEADERS): - * netsvcs/lib/Makefile.bor (OBJFILES): - - Removed Logging_Strategy.* from these make variables. The - Logging_Strategy files have been moved to ACE. - -Mon Jun 26 17:42:15 2000 Carlos O'Ryan - - * ace/SSL/ACE_SSL.dsw: - Add a new workspace for the SSL adaptation library. - - * ace/SSL/ACE_SSL.dsp: - Fixed include paths, removed ACE_HAS_SSL from the command line - (it should be in config.h), but still has problems with the link - phase when SSL is not around. - -Mon Jun 26 17:01:35 2000 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++.GNU (CC_VERSION): - use $(CXX) instead of hardcoding CC, in case the user overrides - CXX. Thanks to Alexander Belopolsky - for reporting this. - -Mon Jun 26 13:31:39 2000 Steve Huston - - * tests/OS_Test.cpp: Don't use the word 'fail' when the test - succeeds... the test scripts look for that word to mean test fail. - -Mon Jun 26 12:09:33 2000 David L. Levine - - * ace/config-lynxos.h: use _POSIX_VERSION to detect the - LynxOS version, instead of trying to rely on the g++ - version. Thanks to Chad Elliott - for this suggestion. - -Mon Jun 26 12:01:17 2000 Chad Elliott - - * tests/run_tests.sh - Removed the -p option from the #!/bin/sh line. Tru64's Bourne - Shell doesn't seem to like that option. - -Sat Jun 24 19:58:22 2000 John Heitmann - - * ace/OS.h - * ace/OS.i - * ace/config-macosx.h - * include/makeinclude/platform-macosx.GNU - Added preliminary support for Mac OS X Developer Preview 4. Quite - a bit is still broken, but the core ACE library works great. Grep - for __MACOSX__ in OS* to see the changes. - -Thu Jun 22 17:27:35 2000 Steve Huston - - * ace/Log_Msg.cpp (ACE_Log_Msg_Attributes::inherit_hook): Use a - temporary void * to hold the reference - this keeps Sun C++ 4.2 - from complaining you can't static_cast a void *& to a - ACE_Log_Msg_Attributes*. - -Thu Jun 22 17:58:21 2000 Steve Huston - - * ace/Handle_Set.cpp: Added pSOS-specific changes to deal with pSOS's - ordering of fd_set bits reversed from all other platforms. Thanks - to Matt Emerson for figuring this out. - -Thu Jun 22 15:16:31 2000 Steve Huston - - * ace/OS.cpp: Added pSOS implementation for ACE_OS::uname. - Added pSOS implementation for ACE_OS::inet_ntoa - this one is not - inlined, whereas all other platforms' ACE_OS::inet_ntoa are in - OS.i, inlined (if enabled). Thanks to Matt Emerson - for these. - - * ace/OS.i (ACE_OS::inet_ntoa): Disabled this for pSOS - pSOS's version - is in OS.cpp now. - -Thu Jun 22 14:03:53 2000 Nanbor Wang - - * netsvcs/servers/svc.conf: Changed the library name where the - Logging_Strategy could be found. - - * netsvcs/lib/netsvcs.dsp: Removed Logging_Strategy.* from the - project file. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added Logging_Strategy.*. - - * ace/Logging_Strategy.h: Removed ACE_SVC_BUILD_DLL. It's now - under ACE. Changed ACE_SVC_FACTORY_DECLARE to - ACE_FACTORY_DECLARE. - - * ace/Logging_Strategy.cpp: Changed ACE_SVC_FACTORY_DEFINE to - ACE_FACTORY_DEFINE. - -Thu Jun 22 13:59:26 2000 Nanbor Wang - - * ace/OS.cpp: Removed an extra 'g' from the very beginning of the - file. - -Thu Jun 22 14:11:26 2000 Steve Huston - - * ace/OS.cpp (ACE_OS::thr_keycreate): Add some type cast to compile - clean on pSOS. Thanks to Matt Emerson . - -Thu Jun 22 12:46:43 2000 Douglas C. Schmidt - - * ace: Added Logging_Strategy.{h,cpp} to ACE and the Makefile. - - * netsvcs/lib: Zapped the Logging_Strategy.{h,cpp} - files from netsvcs and moved them into ACE, where they can be - reused more readily. Thanks to Martin Krumpolec - for this suggestion. - -Thu Jun 22 13:29:22 2000 Steve Huston - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): Added cleanup code for - pSOS tasks at the end of the function. The code is from ISI's - documentation. Thanks to Matt Emerson for - pointing out this problem and supplying the fix. - -Thu Jun 22 09:47:56 2000 Chad Elliott - - * ace/OS_Dirent.h - Added include of unistd.h before dirent.h. The lack of the - STATUS typedef was causing a build failure on VxWorks with the - GNU compiler. - -Thu Jun 22 08:28:48 2000 Steve Huston - - * tests/OS_Test.cpp: Fixed unused argv warning for g++. - -Wed Jun 21 14:40:15 2000 Carlos O'Ryan - - * ace/OS.i: - Removed unused arg warnings in ACE_OS::rename() - -Wed Jun 21 13:41:27 2000 Steve Huston - - * tests/OS_Test.cpp: New test for OS things. All it tests now is - ACE_OS::rename. - * tests/OS_Test.dsp: MSVC project file for new test. - * tests/tests.dsw: Added OS_Test.dsp. - * tests/Makefile: Add new OS_Test. - * tests/run_tests.lst: Added OS_Test. - * trests/version_tests/OS_Test.dsp: MSVC project file for new test. - * tests/version_tests.dsp: Added new OS_Test.dsp. - -Wed Jun 21 13:25:41 2000 Steve Huston - - * ace/OS.i (rename): On ACE_HAS_WINNT4 systems (Win NT, 2000), the - rename is accomplished via MoveFileEx, which allows an existing - destination file to be replaced. This makes the behavior in this - case the same on NT/2000 as on *NIX systems (the file is replaced). - -Wed Jun 21 13:23:18 2000 Steve Huston - - * ace/OS.h (rename): Added a 3rd argument (int flags) which defaults - to -1 (meaning to use ACE-default flags inside the function). The - flags are only useful on NT/2000 for supplying values to the - MoveFileEx function's flags argument. - -Wed Jun 21 03:02:37 2000 Nanbor Wang - - * ace/OS.i (set_errno_to_last_error): - * ace/OS.i (set_errno_to_wsa_last_error): The RTL for IBM - VisualAge C++/NT has the same problem as Borland 4. Thanks to - Boris Kaminer for reporting this. - -Wed Jun 21 01:12:59 2000 Irfan Pyarali - - * ace/ACE.cpp: Changed all the timed versions of the "_n_i()" - methods so that they are more optimistic. Previously, these - methods would check with select() before issuing the data - transfer call. There was really no need to do this since the - socket is already in non-blocking mode and will therefore not - block in transferring the data. This change should make these - methods faster in the case when there is no blocking since - select() will not be called. - - As a side effect of this change, checking for EWOULDBLOCK now - happens after the call to send()/recv(). This automatically - fixed bug 594 though I am still not sure why send()/recv() would - EWOULDBLOCK right after select() indicated that the socket was - ready. Either way, thanks to Viatcheslav A. Batenine - for reporting the bug and providing an - example illustrating the bug. - -Tue Jun 20 19:37:53 2000 Carlos O'Ryan - - * ace/CORBA_macros.h: - Fixed the definition of ACE_RE_THROW_EX, there was a space - between the macro name and the ( that starts its arguments. - - * ace/RMCast/Makefile: - * ace/RMCast/RMCast_Header_Size.h: - * ace/RMCast/RMCast_Header_Size.i: - * ace/RMCast/RMCast_Header_Size.cpp: - A simple control message, still unused. - - * ace/RMCast/RMCast_Partial_Message.cpp: - Verify that all fragments report the same total size. - -Tue Jun 20 14:55:26 2000 Nanbor Wang - - * ace/OS.cpp: Applied patches for ACE_BEGINTHREADEX and - ACE_ENDTHREADEX for using IBM VisualAge C++ 4.0 on NT. Thanks - to Boris Kaminer for providing the - patches. - -Tue Jun 20 12:04:24 2000 Ossama Othman - - * ace/Makefile (ssl): - - Reverted change that causes the SSL wrappers to be built when - SSL support isn't explicitly disabled. It caused SSL support to - always be built, which was not the desired effect. - -Tue Jun 20 12:57:12 2000 Nanbor Wang - - * ace/config-freebsd-pthread.h: Undefined ACE_LACKS_SETSCHED if we - are compiling on R4.0 or above. Thanks to Sergey A. Osokin - for reporting this for Nick Logvinov - . - -Tue Jun 20 07:37:18 2000 Douglas C. Schmidt - - * ace/Select_Reactor_T.h, - * ace/Select_Reactor_T.cpp, - * ace/Reactor.h, - * ace/Reactor.i, - * ace/Reactor_Impl.h, - * ace/WFMO_Reactor.h, - * ace/WFMO_Reactor.cpp: - Added a new method to access the Reactor's timer queue. Also - renamed the accessors timer_queue(ACE_Timer_Queue *) and - ACE_Timer_Queue *timer_queue() to be more consistent with ACE - naming conventions. Thanks to Jody Hagins for reporting this. - -Tue Jun 20 02:06:15 2000 Craig Rodrigues - - * include/makeinclude/platform_sunos5_g++.GNU - * include/makeinclude/platform_sunos5_sunc++.GNU - - Updated PLATFORM_X11_CPPFLAGS to include the standard - include path for X11 and Motif headers under Solaris. - -Mon Jun 19 22:14:26 2000 Alex Arulanthu - - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Proactor.h: - * ace/POSIX_Proactor.cpp: - * examples/Reactor/Proactor/Makefile - * examples/Reactor/Proactor/test_proactor2.cpp: - - Thanks to Alex Libman , the following - changes have been integrated onto POSIX Proactor. - - - Enabling the completion call backs even if aio_return - fails. We will call the completion call back methods with 0 - transferred data parameter. - - - MT safe'ing AIOCB proactor. It would not improve the - efficiency. - -Mon Jun 19 19:44:05 2000 Ossama Othman - - * ace/Makefile (ssl): - - Fixed conditional so that the SSL wrappers are built when SSL is - not explicitly disabled, i.e. when the "ssl" make variable is - not equal to zero. Note that the default is not to build the - SSL wrappers. - - * ace/OS.i (thr_yield): - - Corrected typo in comment. - - * m4/platform.m4 (ACE_CPPFLAGS): - - Define necessary feature test macros on the command line, not in - the configuration header. This allows ACE applications to - utilize those macro definitions without having to worry about - header inclusion ordering. - - (ACE_DEFAULT_SELECT_REACTOR_SIZE): - - It is no longer necessary to hard-code the default reactor size - for older Linux kernels that had a file descriptor limit less - than FD_SETSIZE since the Select Reactor now falls back on the - run-time file descriptor limit for the given process. - - (ACE_HAS_IRIX62_THREADS): - - Removed redundant definition. Only define - ACE_HAS_IRIX62_THREADS for IRIX 6.2. - -Mon Jun 19 17:33:28 2000 Douglas C. Schmidt - - * ace/OS.h: Removed the special case check for - - # if defined (ACE_HAS_IRIX62_THREADS) - # define THR_SCOPE_SYSTEM 0x00100000 - # else - - and just used this: - - # define THR_SCOPE_SYSTEM THR_BOUND - - Thanks to John Foresteire - for this suggestion. - -Mon Jun 19 12:38:58 2000 Carlos O'Ryan - - * ace/config-all.h: - * ace/OS.h: - * ace/OS.cpp: - * ace/Log_Msg.h: - * ace/Log_Msg.cpp: - In Win32 we have to pass the structured exception handlers - around. - -Mon Jun 19 11:43:43 2000 Carlos O'Ryan - - * Decouple the Log_Msg inheritance from the ACE_OS layer: the - Log_Msg class registers hooks with the ACE_OS layer that are - invoked when a new thread is created. - The callback is used to first copy the state from the current - thread to a temporary object and then copy (in the created - thread) the temporary object state to the TSS Log_Msg object. - The temporary holder for the Log_Msg state is allocated in the - heap, and destroyed as soon as we don't need it anymore. - - * ace/Log_Msg.h: - * ace/Log_Msg.cpp: - New ACE_Log_Msg_Attributes class used as the temporary holder of - the Log_Msg state during thread creation. - - * ace/config-all.h: - * ace/OS.h: - * ace/OS.i: - * ace/OS.cpp: - Define the new hooks used to inherit the Log_Msg state. - -Mon Jun 19 12:45:45 2000 David L. Levine - - * ace/config-lynxos.h: removed the ACE_LACKS_PTHREAD_SIGMASK, - and added back the pthread_sigmask () declaration. With - extern "C", this time. - - * include/makeinclude/platform_lynxos.GNU: moved our LynxOS - cross development kit to where it belongs, so that - ENV_PREFIX is now the same as with 2.5.0 and 3.0.0. - -Mon Jun 19 11:49:43 2000 David L. Levine - - * include/makeinclude/platform_lynxos.GNU: export environment - variables that are set on the host (for cross-compilation). - The cross-compile g++ needs ENV_PREFIX in order to link - properly. - - * ace/config-lynxos.h: added ACE_LACKS_PTHREAD_SIGMASK with - LynxOS 3.1.0. In addition to not be declared in the system - headers, pthread_sigmask () isn't in the threads libs. - -Mon Jun 19 10:43:27 2000 David L. Levine - - * include/makeinclude/platform_lynxos.GNU: use -mthreads - with LynxOS 3.1.0, as well as with prior versions. - -Mon Jun 19 02:47:12 2000 Nanbor Wang - - * ace/CORBA_macros.h: Fixed misspellings of deprecated. Thanks to - Ossama for pointing this out. - -Sun Jun 18 11:39:48 2000 David L. Levine - - * include/makeinclude/platform_lynxos.GNU: rework environment - variables to better support LynxOS 3.1.0. - -Sun Jun 18 10:54:59 2000 Douglas C. Schmidt - - * ace/INET_Addr: Added operator < to ACE_INET_Addr so that it - can be used in an STL map. Thanks to Tomer Amiaz - for this suggestion. - -Sun Jun 18 03:18:21 2000 Nanbor Wang - - * ace/CORBA_macros.h: The definition of ACE_RETHORW is flawed - because it requires all ACE_RETHROW statements be the last - statement executed within the ACE_CATCH block as this example: - - ACE_CATCH ( /* whatever */ ) - { - // Do something else - ACE_RETHROW; - } - ACE_ENDTRY; - ACE_CHECK; - - However, if this is not the case, programs may exhibit different - behavior on platforms with/without native C++ exceptions, as - shown in the following example: - - ACE_CATCH ( /* whatever */ ) - { - if (foo == bar) - ACE_RETHROW; - foo = bar; - } - ACE_ENDTRY; - ACE_CHECK; - - Although the problem is easy to fix, unfortunately, I can't find - a way to fix it without changing the macro name because the - program flow may get completely messed up if ACE_TRY and - ACE_TRY_EX are used together. Therefore, I have added two new - macros ACE_RE_THROW and ACE_RE_THROW_EX. - - The old macro is now deprecated. If you are absolutely sure - that you are not using the old ACE_RETHROW macro as mentioned - above, you can define ACE_HAS_DEPRECATED_ACE_RETHROW in your - ace/config.h file and continue to use ACE_RETHROW. However, - you should move to the new macros as soon as possible. - -Sat Jun 17 18:15:00 2000 Kirthika Parameswaran - - * tests/Makefile.DLL: - * tests/Makefile.DLL_Test: - Renamed Makefile.DLL since on NT it appeared as if there was a - dll version of the Makefile. Also did a make depend. Thanks to - James Megquier for reporting this and to - Darrell brunsch for suggesting that the - name be changed. - * tests/Makefile: Updated the Makefile to now have - Makefile.DLL_Test. - -Sat Jun 17 08:03:53 2000 Douglas C. Schmidt - - * docs/tutorials/Chap_5/ex02.html: Fixed a typo where - peer() should have been peer_i(). Thanks to Keo Kelly - for reporting this. - -Sat Jun 17 07:46:44 2000 Chris Kohlhoff - - * include/makeinclude/ace_flags.bor: - - Added support for new LoadBalancing orbsvcs library. - -Fri Jun 16 17:30:18 2000 Carlos O'Ryan - - * ace/RMCast/Makefile: - * ace/RMCast/RMCast.dsp: - * ace/RMCast/RMCast.dsw: - * ace/RMCast/RMCast_Export.h: - In this library we will implement a simple, small scale reliable - multicast protocol for ACE. The library is based on the ASX - classes in ACE (Task, Module and friends). - - * tests/RMCast/Makefile: - * tests/RMCast/RMCast_Tests.dsw: - The unit test directory for the RMCast library components. - - * ace/RMCast/RMCast_Fragment.h: - * ace/RMCast/RMCast_Fragment.i: - * ace/RMCast/RMCast_Fragment.cpp: - The fragmentation task. It divides a message block chain in - small fragments. The fragments are limited by the number of - bytes and the number of entries in the chain (for platforms with - limited IO vectors). - - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Fragment_Test.dsp: - Unit test for the fragmentation layer. - - * ace/RMCast/RMCast_Partial_Message.h: - * ace/RMCast/RMCast_Partial_Message.i: - * ace/RMCast/RMCast_Partial_Message.cpp: - A simply class to maintain a partial received messages, keeps - track of the missing bytes and detects when the complete message - has been received. - - * ace/RMCast/RMCast_Reassembly.h: - * ace/RMCast/RMCast_Reassembly.i: - * ace/RMCast/RMCast_Reassembly.cpp: - The reassembly layer. Uses the Partial_Message class to do a - great deal of the work. - - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.dsp: - Unit test for the reassembly layer. - -Fri Jun 16 17:00:03 2000 Carlos O'Ryan - - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/wrapper_macros.GNU: - Joe's change does not work. A *LOT* of makefiles in TAO do not - include the rules.bin.GNU file. - -Fri Jun 16 16:18:21 2000 Ossama Othman - - * ace/Makefile (DIRS): - - Descend into and build the newly added SSL directory if "make - ssl=1" is issued. - - * ace/SSL/ACE_SSL.dsp: - * ace/SSL/Makefile: - * ace/SSL/SSL_Context.cpp: - * ace/SSL/SSL_Context.h: - * ace/SSL/SSL_Export.h: - * ace/SSL/SSL_SOCK.cpp: - * ace/SSL/SSL_SOCK.h: - * ace/SSL/SSL_SOCK_Acceptor.cpp: - * ace/SSL/SSL_SOCK_Acceptor.h: - * ace/SSL/SSL_SOCK_Connector.cpp: - * ace/SSL/SSL_SOCK_Connector.h: - * ace/SSL/SSL_SOCK_Stream.cpp: - * ace/SSL/SSL_SOCK_Stream.h: - - Integrated the ACE SSL wrappers into the ACE mainline - distribution. Enable using "make ssl=1." The library that is - generated is called "libACE_SSL.so" on UNIX, and ACE_SSL{d}.dll on - Win32. - - * examples/IPC_SAP/Makefile: - - Build SSL_SAP example if "make ssl=1" is issued. - - * examples/IPC_SAP/SSL_SAP/SSL_SOCK_SAP.dsw: - * examples/IPC_SAP/SSL_SAP/Makefile: - * examples/IPC_SAP/SSL_SAP/README: - * examples/IPC_SAP/SSL_SAP/SSL-client.dsp: - * examples/IPC_SAP/SSL_SAP/SSL-server.dsp: - * examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client-simple.h: - * examples/IPC_SAP/SSL_SAP/SSL-client.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client.h: - * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server.cpp: - * examples/IPC_SAP/SSL_SAP/dummy.pem: - * examples/IPC_SAP/SSL_SAP/key.pem - * examples/IPC_SAP/SSL_SAP/local_data: - * examples/IPC_SAP/SSL_SAP/summarize: - - Integrated example that demonstratres use of the ACE SSL - wrappers. - - * include/makeinclude/wrapper_macros.GNU (ssl): - - Added make flag to enable compilation of OpenSSL support in - ACE. (e.g. make ssl=1) - -Fri Jun 16 14:40:34 2000 Carlos O'Ryan - - * bin/run_all_list.pm: - * bin/auto_run_tests.lst: - Add the LongUpcalls to the run_test lists. - -Fri Jun 16 16:00:45 2000 Joe Hoffert - - * include/makeinclude/{rules.bin.GNU,wrapper_macros.GNU}: - Moving VLDLIBS definition from wrapper_macros.GNU to rules.bin.GNU - to allow unsetting ACE_LIB. Needed for PACE builds that don't need - the ACE library. - -Fri Jun 16 14:24:36 2000 Steve Huston - - * ace/config-hpux-11.00.h: - * include/makeinclude/platform_hpux_aCC.GNU: Allow user to do make - exceptions=0 to disable exception handling. This is not a safe - thing to do since the C++ runtime throws exceptions, but if you - must, and you know what you're doing, here's the rope. - -Fri Jun 16 08:40:38 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Moved the print statement for a project file from Build_Config - to Build, so it will be executed for the -CORE target. - - This was causing incorrect headers in nightly build reports. - -Fri Jun 16 08:12:37 2000 David L. Levine - - * docs/ACE-guidelines.html: added a section for PACE. - -Thu Jun 15 21:30:37 2000 Ossama Othman - - * ace/Makefile.am (pkgincludedir): - - Corrected value for this variable. It should have been - "$(includedir)/ace" instead of "$(prefix)/include/ace." In any - case, this was more of a consistency change than anything else, - since this variable is actually commented out. - -Thu Jun 15 20:01:35 2000 Steve Huston - - * ace/OS.i (ACE_OS::tempnam): Made the (__IBMCPP__) a 'defined' check - and combined it with defined (ACE_WIN32) so it works right on AIX. - Moved the NOTSUP stuff for ACE_HAS_WINCE to the section with the - other platforms that don't support it. - -Thu Jun 15 16:10:51 2000 Steve Huston - - * include/makeinclude/platform_aix4_cset++.GNU: Force exceptions=1 - because IBM C/C++ doesn't have a way to disable exceptions. - - * ace/config-aix-4.x.h: Add #if !defined around ACE_HAS_EXCEPTIONS - to avoid compile errors if exceptions=1 explicitly stated. - -Thu Jun 15 16:03:11 2000 David L. Levine - - * include/makeinclude/platform_lynxos.GNU: removed - -mthreads from CFLAGS with LynxOS 3.1.0. - -Thu Jun 15 15:56:27 2000 Michael Ravits - - * ace/OS_String.inl (strtoul): removed cast to unsigned - long on Linux. It's no longer needed with current glibc. - -Thu Jun 15 15:18:31 2000 Steve Huston - - * include/makeinclude/platform_aix4_g++.GNU: Add default setting for - exceptions (off by default); added proper handling for turning off - threads. Thanks to Soren Schmidt for these. - -Thu Jun 15 12:49:50 2000 Ossama Othman - - * ace/OS.h: - - Do not define priority range related macros - (ACE_{PROC,THR}_PRI_{FIFO,RR,OTHER}_{MIN,MAX}) to use - sched_get_priority_{min,max}() unless _POSIX_PRIORITY_SCHEDULING - is defined. - - Include prior to using _POSIX_PRIORITY_SCHEDULING - since that macro is supposed to be defined there. - - * ace/Malloc_T.cpp (trybind, bind, find): - * ace/Process_Manager.cpp (register_handler, spawn, remove): - * ace/Service_Repository.cpp (insert, remove): - * ace/Thread_Manager.cpp (spawn, insert_thr, check_state): - - Fixed "control reaches end of non-void function" warnings issued - by g++ 2.95.2. - - * ace/config-linux-lxpthreads.h (PTHREAD_MIN_PRIORITY, - PTHREAD_MAX_PRIORITY): - - Removed definition of these macros. They aren't used, nor - should they be, since priority ranges for each scheduling policy - are determined at run-time when creating a thread by invoking - the sched_get_priority_{min,max}() OS functions. This is only - done when ACE is configured for platforms that support the - Pthreads final standard (ACE_HAS_PTHREADS_STD), which glibc >= - 2.0.x does. - -Thu Jun 15 13:15:06 2000 David L. Levine - - * ace/config-lynxos.h: fixed 3.1.0 support. Rely on the - GNU compiler version instead of __LYNXOS_SDK_VERSION, - because that's not defined with 3.1.0. And added a - declaration of pthread_sigmask (), because that's missing - from the system headers. - - * include/makeinclude/platform_lynxos.GNU: fixed 3.1.0 support. - Removed the extra $(LYNXTARGET) from the PATH, and - added a -I/usr/lynx/$(VERSION)/usr/include (which shouldn't - be necessary, but apparently is). - - * ace/OS.i (thr_sigsetmask): don't call ::pthread_sigmask () - if ACE_LACKS_PTHREAD_SIGMASK is defined. - -Thu Jun 15 10:28:05 2000 Martin Stack - - * ace/TTY_IO.cpp (control): Added - - dcb.fDtrControl = DTR_CONTROL_ENABLE; - - for Win32 so that it will have the same default semantics as - Linux. - -Thu Jun 15 07:35:57 2000 Roger Larsson - - * ace/Process_Manager.cpp: Make sure to grab the lock inside the - terminate() methods and also call remove_proc() rather than - remove(). - -Thu Jun 15 12:41:05 2000 Yamuna Krishnamurthy - - * ACE version 5.1.4 released. - -Wed Jun 14 18:15:43 2000 Ossama Othman - - * configure.in (ACE_HAS_UCONTEXT_T): - - Check if ucontext_t gets defined by including , if the - check in fails. Some platforms define ucontext_t - in , but ACE doesn't explicitly include that - header. However, it is very likely that does, either - directly or indirectly. This should fix a configuration problem - that was occuring on FreeBSD 4.0. - -Wed Jun 14 17:54:18 2000 Ossama Othman - - * Makefile.am: - - Moved generation of aceConf.sh and ace-config.1 to configure - script. There was no reason for them to be generated in the - Makefile. This also fixes a problem where the Solaris sed - command didn't understand a substitution. - - * acconfig.h (PTHREAD_MIN_PRIORITY, PTHREAD_MAX_PRIORITY): - - Removed macros related to these macros. The configure script - will automatically add them. - - * configure.in: - - Generate aceConf.sh and ace-config.1 at configure time, rather - than make time. See above entry for details. - - Fixed tests for PTHREAD_MAX_PRIORITY and PTHREAD_MIN_PRIORITY. - These macros should only be used if the sched_get_priority_max() - and sched_get_priority_min() functions are not available. If - PTHREAD_{MAX,MIN}_PRIORITY isn't available, then check if - PX_PRIO_{MAX,MIN} is available. If so, then define - PTHREAD_{MAX,MIN}_PRIORITY to be those values. These changes - fix some configuration problems experienced IRIX. - - Improved test for ACE_Addr::sap_any support. ACE_Addr:sap_any - is now passed as an argument to the ACE_FILE_Addr constructor. - - * ace/Cached_Connect_Strategy_T.cpp: - - This file was still including a file that was removed from the - distribution, i.e. `ace/Cached_Connect_Strategy_T.i', which - caused compile-time errors to occur when building with inlining - disabled. - -Wed Jun 14 11:55:56 2000 Ossama Othman - - * ace/Cleanup_Strategies_T.cpp: - - This file was still including a file that was removed from the - distribution, i.e. `ace/Cleanup_Strategies_T.i', which caused - compile-time errors to occur when building with inlining - disabled. - -Wed Jun 14 10:24:02 2000 Douglas C. Schmidt - - * netsvcs/lib/Logging_Strategy.cpp (handle_timeout): Removed a - couple of non-referenced parameters. Thanks to David and Yamuna - for reporting this. - -Wed Jun 14 07:43:27 2000 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp: Added ACE_TEXT macros - to the appropriate places in this file. - - * netsvcs/lib/Logging_Strategy.cpp: Removed the legacy - ASYS_TEXT and replaced them with ACE_TEXT. - -Wed Jun 14 08:30:53 2000 Carlos O'Ryan - - * */Makefile: - Updated dependencies (again), the last time I had - static_libs_only enabled that broke a number of things. - -Tue Jun 13 17:46:42 2000 Irfan Pyarali - - * ace/Connector.cpp: - - - handle_close(): cleanup_AST() will unbind an entry from the - map. This change of state in the map invalidates any iterators - currently iterating over the map. Therefore, the code in - handle_close() was changed such that a new iterator is created - after every call to cleanup_AST(). - - - cancel(): Cannot use the after cleanup_AST() is called - as cleanup_AST() will unbind the from the map. - - Thanks to Roland Fischer for pointing out this - bug. - -Tue Jun 13 15:31:21 2000 Ossama Othman - - * ltcf-c.sh: - * ltcf-cxx.sh: - * ltconfig: - * ltmain.sh: - - Updated to latest upstream versions. - -Tue Jun 13 15:51:33 2000 Jerry D. De Master - - * netsvcs/lib/Logging_Strategy: Enhanced the Logging Strategy so - it can be used to limit log file size at any logging point - (i.e., application, client logging daemon, or server logging - daemon) by specifying the -i and -m - options for the Logging_Strategy class in a - svc.conf file. - -Tue Jun 13 12:56:36 2000 Carlos O'Ryan - - * */Makefile: - Updated dependencies. - -Tue Jun 13 09:47:25 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Fixed some typos related to the static build core. - -Mon Jun 12 20:45:18 2000 Darrell Brunsch - - * bin/Process_Win32.pm: - - Changed the $newwindow check to check to see if the variable - was defined before comparing it to "yes". This removes a - perl warning. - - * bin/msvc_auto_compile.pl: - - The TAOACE[_static].dsw files were changed, so I altered the - CORE option to use the TAOACE.dsw file with -DLL, and added - some missing dsp files for the -LIB build. - - * bin/create_vt_dsps.pl: - - Changed the runtime library type used in the static versions - and added ACE_OS_HAS_DLL=0. - - * ace/ace_lib.dsp: - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf_lib.dsp: - * examples/IPC_SAP/ATM_SAP/CPP_client.dsp: - * examples/IPC_SAP/ATM_SAP/CPP_server.dsp: - - Miscellaneous fixes to get the static versions working again. - Mainly just adding ACE_OS_HAS_DLL=0. - - * tests/version_tests/CDR_Array_Test.dsp: (added) - * tests/version_tests/Atomic_Op_Test.dsp: - * tests/version_tests/Auto_IncDec_Test.dsp: - * tests/version_tests/Barrier_Test.dsp: - * tests/version_tests/Basic_Types_Test.dsp: - * tests/version_tests/Buffer_Stream_Test.dsp: - * tests/version_tests/CDR_File_Test.dsp: - * tests/version_tests/CDR_Test.dsp: - * tests/version_tests/Cache_Map_Manager_Test.dsp: - * tests/version_tests/Cached_Accept_Conn_Test.dsp: - * tests/version_tests/Cached_Conn_Test.dsp: - * tests/version_tests/Capabilities_Test.dsp: - * tests/version_tests/Collection_Test.dsp: - * tests/version_tests/Conn_Test.dsp: - * tests/version_tests/DLL_Test.dsp: - * tests/version_tests/DLList_Test.dsp: - * tests/version_tests/Dynamic_Priority_Test.dsp: - * tests/version_tests/Enum_Interfaces_Test.dsp: - * tests/version_tests/Env_Value_Test.dsp: - * tests/version_tests/Future_Set_Test.dsp: - * tests/version_tests/Future_Test.dsp: - * tests/version_tests/Handle_Set_Test.dsp: - * tests/version_tests/Hash_Map_Bucket_Iterator_Test.dsp: - * tests/version_tests/Hash_Map_Manager_Test.dsp: - * tests/version_tests/High_Res_Timer_Test.dsp: - * tests/version_tests/IOStream_Test.dsp: - * tests/version_tests/Lazy_Map_Manager_Test.dsp: - * tests/version_tests/MM_Shared_Memory_Test.dsp: - * tests/version_tests/MT_Reactor_Timer_Test.dsp: - * tests/version_tests/MT_SOCK_Test.dsp: - * tests/version_tests/Malloc_Test.dsp: - * tests/version_tests/Map_Manager_Test.dsp: - * tests/version_tests/Map_Test.dsp: - * tests/version_tests/Mem_Map_Test.dsp: - * tests/version_tests/Message_Block_Test.dsp: - * tests/version_tests/Message_Queue_Notifications_Test.dsp: - * tests/version_tests/Message_Queue_Test.dsp: - * tests/version_tests/Naming_Test.dsp: - * tests/version_tests/New_Fail_Test.dsp: - * tests/version_tests/Notify_Performance_Test.dsp: - * tests/version_tests/Object_Manager_Test.dsp: - * tests/version_tests/OrdMultiSet_Test.dsp: - * tests/version_tests/Pipe_Test.dsp: - * tests/version_tests/Priority_Buffer_Test.dsp: - * tests/version_tests/Priority_Reactor_Test.dsp: - * tests/version_tests/Priority_Task_Test.dsp: - * tests/version_tests/Process_Manager_Test.dsp: - * tests/version_tests/Process_Mutex_Test.dsp: - * tests/version_tests/Process_Strategy_Test.dsp: - * tests/version_tests/RB_Tree_Test.dsp: - * tests/version_tests/Reactor_Exceptions_Test.dsp: - * tests/version_tests/Reactor_Notify_Test.dsp: - * tests/version_tests/Reactor_Performance_Test.dsp: - * tests/version_tests/Reactor_Timer_Test.dsp: - * tests/version_tests/Reactors_Test.dsp: - * tests/version_tests/Reader_Writer_Test.dsp: - * tests/version_tests/Recursive_Mutex_Test.dsp: - * tests/version_tests/Reverse_Lock_Test.dsp: - * tests/version_tests/SOCK_Connector_Test.dsp: - * tests/version_tests/SOCK_Send_Recv_Test.dsp: - * tests/version_tests/SOCK_Test.dsp: - * tests/version_tests/SPIPE_Test.dsp: - * tests/version_tests/SString_Test.dsp: - * tests/version_tests/SV_Shared_Memory_Test.dsp: - * tests/version_tests/Semaphore_Test.dsp: - * tests/version_tests/Service_Config_Test.dsp: - * tests/version_tests/Sigset_Ops_Test.dsp: - * tests/version_tests/Simple_Message_Block_Test.dsp: - * tests/version_tests/Svc_Handler_Test.dsp: - * tests/version_tests/TSS_Test.dsp: - * tests/version_tests/Task_Test.dsp: - * tests/version_tests/Thread_Manager_Test.dsp: - * tests/version_tests/Thread_Mutex_Test.dsp: - * tests/version_tests/Thread_Pool_Reactor_Test.dsp: - * tests/version_tests/Thread_Pool_Test.dsp: - * tests/version_tests/Time_Service_Test.dsp: - * tests/version_tests/Time_Value_Test.dsp: - * tests/version_tests/Timeprobe_Test.dsp: - * tests/version_tests/Timer_Queue_Test.dsp: - * tests/version_tests/Tokens_Test.dsp: - * tests/version_tests/UPIPE_SAP_Test.dsp: - * tests/version_tests/Upgradable_RW_Test.dsp: - * tests/version_tests/version_tests.dsw: - - Regenerated. - -Mon Jun 12 18:17:42 2000 Darrell Brunsch - - * bin/auto_run_tests.lst: (added) - * bin/auto_run_tests.pl: (added) - * tests/run_test.lst: (added) - * tests/run_test.pl: (added) - - New scripts to facilitate the auto_build testing on NT. - -Sun Jun 11 18:12:12 2000 Vishal Kachroo - - * examples/QOS/QoSEvent.h: Removed a warning on Win2K. - -Sat Jun 10 23:34:16 2000 Darrell Brunsch - - * docs/CE-status.txt: - - Updated to reflect my current plans for Windows CE. - Unfortunately, ACE on CE will not be working with the - next beta kit of ACE. :-( Need to get an autobuild - set up for CE sometime... - -Sat Jun 10 20:51:56 2000 Darrell Brunsch - - * ace/config-win32-common.h: - - Changed the "You must link with Multithreaded DLL" error - to make it sound less like it is a problem with the ACE - project file instead of the application project file. - - * docs/ACE-guidelines.html: - - Updated the section on wchar support in ACE. - -Sat Jun 10 17:33:55 2000 Carlos O'Ryan - - * ace/Configuration.cpp: - Fixed warnings under Linux/KCC - - * bin/auto_compile: - Add separators between the different sections of the log. - Darrell script would be able to generate nice color coded - summaries based on that. - - * include/makeinclude/platform_linux_kcc.GNU: - Add support for the math library. - -Fri Jun 09 11:31:24 2000 Nanbor Wang - - * ace/Service_Config.cpp (close_singletons): Applied Tom - Arbuckle's patch so the - Process_Manager singleton is closed before Reactor singleton. - -Fri Jun 9 09:28:18 2000 Carlos O'Ryan - - * include/makeinclude/platform_linux_kcc.GNU: - More fixes to make sure that shared and static libraries are - generated with the right configuration (threads, exceptions, - etc.). - -Fri Jun 9 07:19:10 2000 Toshio Hori - - * ace/Stream.h (class ACE_Stream): Added an updated version an - insert() and replace() that make it possible to replace the - stream head and tail. - -Fri Jun 09 02:34:07 2000 Irfan Pyarali - - * ace/OS.i (floor and ceil): Added new methods. - -Thu Jun 8 20:58:17 2000 Darrell Brunsch - - Patched for IBM VAC++ 4.02 for WinNT applied on behalf of - Boris Kaminer - - * config-win32-visualage.h: - - Remove dupplicate definition of ACE_HAS_TYPENAME_KEYWORD. - - * Auto_Ptr.h: - * Auto_Ptr.i: - - Copy constructors bodies into class declarations from Auto_Ptr.i - to Auto_ptr.h for constructors with ACE_EXPLICIT. (workaround - for explicit bug in VAC++ 4.02) - - * Malloc.cpp: - - Changed ACE_ASSERT (0 == "not implemented!"); to - ACE_ASSERT (!"not implemented!"); - (get over codestore fault) - - * OS.i: (chdir) - - Added !defined (ACE_WIN32) to the check for IBM CPP - - * ace-dll.icc: - - Changed the order of hpp files, and added a define for - _INTEGRAL_MAX_BITS = 64. - -Thu Jun 8 18:35:30 2000 Carlos O'Ryan - - * ace/Date_Time.h: - * ace/Date_Time.i: - Made a bunch of accessors const, thanks to Derek Dominish - for pointing this out. - -Thu Jun 08 14:17:20 2000 Nanbor Wang - - * ace/Process_Manager.{h,cpp} (close_singleton): - * ace/Service_Config.cpp (close_singletons): Applied Tom Arbuckle's - patch to clean up - Process_Manager singleton at program exit. - -Thu Jun 8 13:00:38 2000 Toshio Hori - - * ace/Stream.h (class ACE_Stream): Added support for an insert() - and replace() to make it easier to insert and update the - contents of an ACE_Stream. - -Thu Jun 8 09:52:36 2000 Joe Hoffert - - * bin/pace_components: - Adding this file to handle setup and cleanup of PACE components - just like the ace_components file does for ACE. - -Thu Jun 08 01:53:03 2000 Irfan Pyarali - - * ace/Message_Queue.i (peek_dequeue_head): Fixed typo. - -Wed Jun 7 20:41:33 2000 Douglas C. Schmidt - - * ace/Message_Queue: Added some "no-op" impls for the new - pure virtual methods added to ACE_Message_Queue recently. - Thanks to Darrell for pointing this out. - -Wed Jun 7 13:24:22 2000 Carlos O'Ryan - - * ace/OS.h: - For KCC under linux we have to define ACE_DEFAULT_SHLIB_MODE as - RLTD_LAZY (RTLD_GROUP and RTLD_NODELETE are not defined in that - configuration). - - * ace/OS_Dirent.inl: - Removed unreachable statement. - - * ace/config-linux-common.h: - KCC does not have LLSEEK or LLSEEK64 - - * include/makeinclude/platform_linux_kcc.GNU: - Fixed the configuration file so the default settings for - debugging, optimization and exceptions can be overriden by the - user. - -Wed Jun 7 12:05:23 2000 Darrell Brunsch - - * bin/fuzz.pl: - - Dropped the level for the TCHAR check to 4, so it runs - by default. - - Also added a new test to check for mismatch of ace/pre.h - and ace/post.h in header files (level 4). - - * ace/ace_wchar.h: - - Added a FUZZ: disable for the TCHAR check, since we need - to define the ASYS_TCHAR type macros for backwards - compatiblity here. - -Wed Jun 07 13:22:01 2000 David L. Levine - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (twoway_client_test): - replaced ASYS_TEXT with ACE_TEXT, see - Tue Jun 6 12:39:23 2000 Phil the Build Czar - :-) - -Wed Jun 7 12:09:50 2000 Joe Hoffert - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Changed position-independent-code option from -PIC to -KPIC since - the C++ compiler recognizes either and the C compiler only - recognizes -KPIC. - * include/makeinclude/rules.local.GNU: - Added a compilation rule for C (i.e., .c) files. - -Tue Jun 6 22:32:16 2000 Carlos O'Ryan - - * ace/OS.i: - * ace/OS_TLI.h: - Moved the explicit declaration of t_getname() from OS.i to OS_TLI.h - -Tue Jun 6 20:02:18 2000 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - * ace/OS_TLI.cpp: - * ace/OS_TLI.h: - * ace/OS_TLI.inl: - * ace/config-all.h: - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/ace-dll.icc: - * ace/ace-lib.icc: - * ace/ace.icc: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Moved the TLI wrappers to ACE_OS_TLI. - -Tue Jun 6 17:57:14 2000 Vishal Kachroo - - * examples/QOS/server.cpp: - * examples/QOS/client.cpp: - Changed these to reflect changes to the ACE QoS API. - -Tue Jun 06 15:44:03 2000 David L. Levine - - * ace/config-lynxos.h: added support for LynxOS 3.1.0. - It uses ACE_HAS_PTHREADS_STD instead of ACE_HAS_PTHREADS_DRAFT4 + - ACE_HAS_STDARG_THR_DEST. Thanks to Dorr H. Clark - for reporting this. - -Tue Jun 6 12:39:23 2000 Phil Mesnier - - Ported ACE & TAO to Unixware 7.1, using GNU C++ compiler gcc 2.95.2. - See ACE-INSTALL for specific information on configuring the build - environment. - - * ACE-INSTALL.html - * ace/OS.h - * ace/config-unixware-7.1.0.h - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp - * examples/Threads/tss1.cpp - * include/makeinclude/platform_unixware_g++.GNU - * include/makeinclude/wrapper_macros.GNU - -Tue Jun 6 10:32:51 2000 Edan Ayal - - * ace/Message_Queue.h: Added the following two pure - virtual methods to class 'ACE_Message_Queue_Base': - - virtual ACE_Notification_Strategy *notification_strategy (void) = 0; - virtual void notification_strategy (ACE_Notification_Strategy *s) = 0; - virtual int peek_dequeue_head (ACE_Message_Block *&first_item, - ACE_Time_Value *timeout = 0); - - These methods allow the 'ACE_Message_Queue_Base' to be used as a - base class (without specifying the synch method or templatizing - on it) and access/alter the notification strategy. - -Tue Jun 6 09:42:39 2000 Chris Kohlhoff - - * include/makeinclude/ace_flags.bor: - Added support for new orbsvcs libraries. - -Mon Jun 05 20:59:42 2000 David L. Levine - - * include/makeinclude/wrapper_macros.GNU: protected definitions - of shared_libs and static_libs with ifeq null. Users can still - override the settings in their platform_macros.GNU, because - that's included after these definitions, or in their environment. - But this makes the code look more consistent. Thanks to Jody - Hagins for this suggestion. - -Mon Jun 5 14:54:46 2000 Ossama Othman - - * ace/Select_Reactor_T.cpp (ACE_Select_Reactor_T): - - There is no need to deallocate resources from the previous call - to open() since the open() method deallocates any resources - prior to exiting if an error was encountered. - -Mon Jun 5 14:18:18 2000 Ossama Othman - - * ace/Select_Reactor_T.cpp (ACE_Select_Reactor_T): - - If the Reactor fails to open with the hard-coded default size - then set the Reactor size to be the current run-time limit on - the number of file descriptors available to the process. This - size is not necessarily the maximum limit. On platforms that do - not support run-time evaluation of the current file descriptor - limit, a default value of FD_SETSIZE will be used. This - corrects a problem on Solaris in 32 bit mode, and on any other - platform where the per-process file descriptor limit is less - than FD_SETSIZE. - Reported by Marvin Allen Wolfthal . - - * ace/config-linux-common.h (ACE_DEFAULT_SELECT_REACTOR_SIZE): - - It is no longer necessary to hard-code the default reactor size - for older Linux kernels that had a file descriptor limit less - than FD_SETSIZE since the Select Reactor now falls back on the - run-time file descriptor limit for the given process. - -Mon Jun 5 10:22:22 2000 Darrell Brunsch - - * ace/OS_Memory.h: - - Just like in OS_String.h, added an include for stddef.h to - get the definition of size_t. - -Mon Jun 5 09:55:20 2000 Darrell Brunsch - - * ace/OS_String.h: - * ace/OS_String.inl: - * ace/OS_String.cpp: - - Removed some unnecessary *_emulation methods, and fixed some - other miscellaneous mistakes (like using ACE_OS instead of - ACE_OS_String). - - During my last checkin, it seems like the strncasecmp_emulation - versions were lost, so I resurrected them. - - Also changed the use of u_char in memchr_emulation to unsigned - char, since we shouldn't depend on definitions of u_char (since - on some platforms we don't have a definition of u_char at that - time). Thanks to David Levine for reporting this. - -Sun Jun 4 14:58:37 2000 Darrell Brunsch - - * apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh: - * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh: - * apps/Orbix-Examples/Logger/logger.hh: - * docs/ACE-categories.html: - * docs/tutorials/guide-tutorials.html: - * docs/tutorials/online-tutorials.html: - * docs/tutorials/templates.html: - * docs/tutorials/Chap_2/ex01.html: - * docs/tutorials/Chap_2/ex02.html: - * docs/tutorials/Chap_2/ex03.html: - * docs/tutorials/Chap_2/ex04.html: - * docs/tutorials/Chap_2/ex05.htm: - * docs/tutorials/Chap_2/ex05.html: - * docs/tutorials/Chap_2/ex06.html: - * docs/tutorials/Chap_3/ex01.html: - * docs/tutorials/Chap_3/ex02.html: - * docs/tutorials/Chap_4/ex01.html: - * docs/tutorials/Chap_4/ex02.html: - * docs/tutorials/Chap_4/ex03.html: - * docs/tutorials/Chap_4/ex04.html: - * docs/tutorials/Chap_4/ex05.html: - * docs/tutorials/Chap_4/ex06.html: - * docs/tutorials/Chap_4/ex07.html: - * docs/tutorials/Chap_4/ex08.html: - * docs/tutorials/Chap_5/ex01.html: - * docs/tutorials/Chap_5/ex02.html: - * docs/tutorials/Chap_5/ex03.html: - * docs/tutorials/Chap_5/ex04.html: - * docs/tutorials/Chap_5/ex05.html: - * docs/tutorials/Chap_6/ex01.html: - * docs/tutorials/Chap_6/ex02.html: - * docs/tutorials/Chap_6/ex03.html: - * docs/tutorials/Chap_6/ex04.html: - * docs/tutorials/Chap_6/ex05.html: - * docs/tutorials/Chap_6/ex06.html: - * docs/tutorials/Chap_6/ex07.html: - * docs/tutorials/Chap_6/ex08.html: - * docs/tutorials/Chap_6/ex09.html: - * docs/tutorials/Chap_6/ex10.html: - * docs/tutorials/Chap_7/ex01.html: - * docs/tutorials/Chap_7/ex02.html: - * docs/tutorials/Chap_7/ex03.html: - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.i: - * os-patches/lynxos-patches.html: - * performance-tests/Synch-Benchmarks/context.c: - * psosim/drv_conf.c: - * rpc++/callback.cc: - * rpc++/request.cc: - * rpc++/service.cc: - * rpc++/stub.cc: - * rpc++/version.h: - * rpc++/xdr++.cc: - * rpc++/StdHdrs/rpc/auth.h: - * rpc++/StdHdrs/rpc/c_types.h: - * rpc++/StdHdrs/rpc/clnt.h: - * rpc++/StdHdrs/rpc/pmap_clnt.h: - * rpc++/StdHdrs/rpc/svc.h: - * rpc++/StdHdrs/rpc/xdr.h: - * rpc++/example/calcsvc.cc: - * rpc++/example/calcsvc.h: - * rpc++/example/client.cc: - * rpc++/example/server.cc: - * rpc++/rpc++/callback.h: - * rpc++/rpc++/request.h: - * rpc++/rpc++/service.h: - * rpc++/rpc++/stub.h: - * rpc++/rpc++/xdr++.h: - - Added missing CVS Id strings. - -Sun Jun 4 14:55:46 2000 Darrell Brunsch - - * bin/fuzz.pl: - - Added html files to the list of files checked for - ending with a newline. - -Sun Jun 4 14:38:43 2000 Darrell Brunsch - - * ace/OS_String.inl: - - Some platforms (like QNX Neutrino) need strings.h to get - the declaration of strcasecmp. - - * ace/config-qnx-neutrino.h: - - Added a definition of ACE_HAS_STRINGS so strings.h will be - included in OS_String.inl. - -Sun Jun 04 09:40:43 2000 David L. Levine - - * ace/config-cxx-common.h: with __USE_STD_IOSTREAM, added - #define ACE_HAS_STANDARD_CPP_LIBRARY 1. Thanks to - Warren Miller for reporting this [Bug 582]. - -Sat Jun 3 21:18:43 2000 Darrell Brunsch - - * ace/OS.h: - * ace/OS.i: - * ace/OS_Memory.cpp: (added) - * ace/OS_Memory.h: (added) - * ace/OS_Memory.inl: (added) - - Another bit of OS split off. Memory contains all the - malloc, calloc, etc. stuff. - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/ace-dll.icc: - * ace/ace-lib.icc: - * ace/ace.icc: - * ace/ace_dll.dsp: - * ace/ace_dll_ce.dsp: - * ace/ace_lib.dsp: - - Needed to add OS_Memory to the makefiles/projects. - - * ace/OS_Dirent.cpp: - * ace/OS_Dirent.h: - * ace/OS_Dirent.inl: - * ace/OS_String.cpp: - * ace/OS_String.h: - * ace/OS_String.inl: - - Over the years, the functions in OS.i have gotten way too - large and complicated to make sense being inlined. But the - problem is too many were complicated only on some platforms, - while being really simple (and inline-able) on others. - - So the question is, how to separate two versions of a function - into the .cpp and .inl files. The latest solution is to do - this. For the simple stuff, keep it in the .inl file, but for - complicated versions, add another method to the class (like - foo_emulation for foo) and call that from the .inl file. - - This gives us the best of both worlds, and should be - the easiest to understand of the possible ways of doing - this. - -Sat Jun 3 18:51:46 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Changed the way libraries were detected to remove false - positives when the dsps are in a directory with DLL in - its name. Now it will search for " DLL " or " LIB " - instead of "DLL" or "LIB". - - * bin/fuzz.pl: - - Was giving false positives for TEXT, changed it to search - for "TEXT (" to remove it (so it will not detect "MUTEXTYPE" - like words. - - Also disabled the 80 character check for ACE_RCSID lines, - since they are difficult to reduce in size, since they contain - the CVS ID string. - -Sat Jun 3 17:00:11 2000 Darrell Brunsch - - * bin/fuzz.pl: - - Added two new tests: - - a check to see if a file ends with a newline - - a check to detect use of TCHAR, LPTSTR, LPCTSR, TEXT - ASYS_TEXT, and ASYS_TCHAR - - Changed to look at more files, including those ending with - .cc, .c, .pl, .htm, .html, .hxx, .cxx, .hpp, .idl and .pidl. - - Changed to keep track of the number of errors and warnings - and prints out the totals at the end of the run. Also will - exit with an exit code of 1 if there are any errors. - - Added a new flag, -c, which will tell fuzz.pl to get the list - of files from ARGV instead of from searching or cvs. - - Finally, also added support for the usage of - "FUZZ: disable check_for_xxxx" and - "FUZZ: enable check_for_xxxx" in files so the detection can - be turned off for files where the "offending" usage is needed. - This can be used with: - - check_for_inline - - check_for_math_include - - check_for_tchar - -Fri Jun 02 22:33:32 2000 Irfan Pyarali - - * ace/Priority_Reactor.cpp (init_bucket): Removed extra inline - directive. Thanks to Darrell for pointing this out. - -Fri Jun 2 11:06:33 2000 Darrell Brunsch - - * bin/fuzz.pl: - - Bumped up the levels for the 80 char lines and preprocessor - comment tests. The latter should now not run by default. - -Thu Jun 2 12:30:00 2000 Kirthika Parameswaran - - * ace/Caching_Utility.cpp: Changed the cache entries limit to 0 so - that when the Purge_Percent is 100, all the entries are purged - from the cache. Thanks to Edan Ayal for - reporting this bug and sending in the fix too! - -Thu Jun 1 15:16:26 2000 Ossama Othman - - * ace/config-linux-common.h: - - The change that allowed more than 256 file descriptors to be - opened for non-root processes on Linux only works for more - recent Linux kernels, such as the 2.2.x series. As such, the - default Select Reactor size is now set to 256 for Linux kernels - older than 2.2.0. Thanks to David for pointing out this - limitation. - - * m4/platform.m4 (ACE_DEFAULT_SELECT_REACTOR_SIZE): - - Added test that sets the default Select Reactor size to 256 if - the Linux kernel version is less than 2.2.0. This change is - related to the 256 file descriptor limit described above. - -Thu Jun 01 12:35:00 2000 Nanbor Wang - - * ace/ace_dll.dsp: Fixed typos in ACEMFC configuration. Thanks - to Steve for pointing this out. - -Thu Jun 1 10:08:31 2000 Darrell Brunsch - - * bin/fuzz.pl: - - Was printing out "line test" when doing the preprocessor - comment test. - -Thu Jun 1 08:43:14 2000 Darrell Brunsch - - Fuzz is a script whose purpose is to check through ACE/TAO - files for easy to spot (by a perl script, at least) problems. - - Usage is: - fuzz.pl [-dhm] [-l level] - - -d turn on debugging - -h display this help - -l level set detection level (default = 5) - -m only check locally modified files (uses cvs) - - It currently has checks for these: - - - ACE/ASYS_INLINE in .cpp files (level 2+) - - $ID string in .h/.i/.cpp files (level 2+) - - Bare inline in a .i file (level 2+) - - Inclusion of math.h in a .h/.i/.cpp file (level 3+) - - Check for lines of > 80 chars in .h/.i/.cpp (level 6+) - - Check for use of // in a preprocessor directive (level 3+) - -Wed May 31 16:30:44 2000 Ossama Othman - - * configure.in (AC_REVISION): - - The RCS ID had to be quoted, otherwise the generated configure - script would end up having a mangled version of the RCS ID. - -Wed May 31 16:18:35 2000 Ossama Othman - - * configure.in: - - Fixed the informational message that is displayed when the - configuration integrity check fails so that the shell will no - longer interpret the RCS ID as a variable. This was done by - removing the dollar '$' signs from the RCS ID by using the M4 - translit() built-in. - - (LIBS): - - Removed "-lrt" from the hardcoded list of libraries for OSF/1 - {3,4,5}. The ACE_CHECK_ASYNCH_IO test should be able to detect - this library. - - (AC_REVISION): - - Changed revision string to be the RCS ID. - - (AC_OUTPUT): - - Removed the commented out TAO output files from the list files - the configure script should create. The latest CVS Autoconf - flagged them as problems when generating the configure script. - -Wed May 31 18:08:12 2000 Vishal Kachroo - - * examples/QoS/QosEvent.h: - * examples/QoS/server.cpp: - * examples/QoS/client.cpp: - * examples/QoS/Receiver_QOS_Event_Handler.{cpp,h}: - * examples/QoS/Sender_QOS_Event_Handler.{cpp,h}: - - Fixed the calls to subsribe() and qos () methods that - broke because of changes to ACE QoS API. - -Wed May 31 12:29:12 2000 Darrell Brunsch - - * apps/JAWS2/JAWS/jaws.dsp: - - Added a couple of files that were in the Makefile but not - in this file. - -Wed May 31 14:49:36 2000 Steve Huston - - * ace/Log_Msg.cpp (log): Revert change from Thu May 25 17:39:22 2000. - Add #if !defined (ACE_LACKS_UNIX_SIGNALS) to ACE_Log_Msg_Sig_Guard - ctor which matches a similar check in the dtor. This makes it work - on pSOS same as on other platforms without UNIX-like signals. - - * ace/Signal.i (ACE_Sig_Guard::ACE_Sig_Guard): Added compile-time - check for !defined (ACE_LACKS_UNIX_SIGNALS) to not try to manipulate - the signal mask for platforms that don't do it. Matches an existing - check in the dtor. - -Wed May 31 11:51:46 2000 Darrell Brunsch - - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf_lib.dsp: - - Fixed the output directories to be relative to ".\". Thanks - to Francois Bernier for pointing - this out. - -Wed May 31 10:31:18 2000 Darrell Brunsch - - * examples/ConfigViewer/ConfigurationViewer.dsp: - - Changed the configuration type to "Win32 wxWindows Debug" - instead of "Win32 Debug" (and the same for Release). - This will prevent this project from being picked up by - the msvc_auto_compile.pl, since we do not have wxWindows - installed with the auto builds. - -Wed May 31 10:13:10 2000 Darrell Brunsch - - * examples/Export/export_dll.dsp: - * examples/Export/test.dsp: - - Fixed the relative paths for ace includes and libraries. - -Wed May 31 11:25:34 2000 Irfan Pyarali - - * examples/Reactor/WFMO_Reactor/test_handle_close.cpp: Fixed - signed/unsigned comparison warning. - -Tue May 30 14:23:22 2000 Ossama Othman - - * apps/Gateway/Gateway/gatewayd.cpp: - * examples/ASX/UPIPE_Event_Server/Options.cpp: - * examples/Naming/test_multiple_contexts.cpp: - - Added missing "ace/Log_Msg.h" include. - -Tue May 30 10:41:34 2000 Darrell Brunsch - - * ace/Makefile.bor: - * include/makeinclude/ace_flags.bor: - - ACE_OS_BUILD_DLL and ACE_OS_HAS_DLL were not being set correctly - in Borland. - -Mon May 29 16:49:25 2000 Douglas C. Schmidt - - * ace/OS.i: Changed all 'ACE_Errno_Guard (errno, 0)' to - 'ACE_Errno_Guard (errno)' in the following methods. - - ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv), - ACE_OS::rw_unlock (ACE_rwlock_t *rw), - ACE_OS::rw_trywrlock (ACE_rwlock_t *rw), - ACE_OS::rw_unlock (ACE_rwlock_t *rw) - - Thus, if a critical section of code is guarded using an - ACE_Read_Guard, and errno is set inside, the value is not - overridden with 0 when the section is exited in - ACE_OS::rw_unlock. Thanks to Edan Ayal for - reporting this. - - * ace/Connector.h: Added a new typedef defined as follows: - - typedef ACE_TYPENAME _ACE_PEER_CONNECTOR::PEER_ADDR - ACE_TYPENAME_ACE_PEER_CONNECTOR_PEER_ADDR; - - This fixes some problems on some platforms due to problems with - the typename in a cast expression. Thanks to Ingo Dahm - for reporting this. - - * ace/IO_Cntl_Msg.h: Changed the ACE_IO_Cntl_Cmds enum to be - a typedef u_short so that users could create their own values. - Thanks to vsg@ivl.kiev.ua for this suggestion. - - * ace/ACE.h, - * ace/ACE.h: Make the documentation consistent for both - sockets and "normal" I/O methods! - -Mon May 29 11:36:28 2000 Michael Kircher - - * ace/OS_Dirent.cpp: Fixed the memory allocation in open_dir, - which allocated one char too little. - -Sun May 28 17:26:28 2000 Ossama Othman - - * ace/Timer_Heap_T.cpp: - * ace/Timer_Queue_T.cpp: - * apps/JAWS/server/HTTP_Helpers.cpp: - * apps/JAWS/server/HTTP_Response.cpp: - * apps/drwho/BS_Client.cpp: - * examples/ASX/Event_Server/Event_Server/Options.cpp: - * examples/Logger/simple-server/Logging_Handler.cpp: - * examples/Logger/simple-server/server_loggerd.cpp: - * examples/Mem_Map/IO-tests/test_io.cpp: - * examples/Naming/test_non_existent.cpp: - * examples/Naming/test_writers.cpp: - * examples/Reactor/Dgram/CODgram.cpp: - * examples/Reactor/Dgram/Dgram.cpp: - * examples/Reactor/FIFO/server.cpp: - * examples/Reactor/Misc/pingpong.cpp: - * examples/Reactor/Misc/test_signals_1.cpp: - * examples/Reactor/Misc/test_timer_queue.cpp: - * examples/Reactor/Multicast/server.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h: - * examples/Service_Configurator/IPC-tests/server/server_test.cpp: - * examples/Service_Configurator/Misc/Timer_Service.cpp: - * examples/Service_Configurator/Misc/main.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp: - * examples/Threads/process_mutex.cpp: - * examples/Threads/process_semaphore.cpp: - * examples/Threads/tss2.cpp: - * netsvcs/clients/Naming/Client/main.cpp: - * netsvcs/clients/Naming/Dump_Restore/main.cpp: - * performance-tests/Misc/test_naming.cpp: - * performance-tests/UDP/udp_test.cpp: - - Added missing "ace/Log_Msg.h" include. This fixes a series of - compile-time errors with Compaq C++. - -Sat May 27 20:55:24 2000 Ossama Othman : - - * tests/test_config.h: - - Added missing include for "ace/Log_Msg.h." This fixes a - compile-time error from Sun C++ 5.0. - -Sat May 27 20:41:14 2000 Ossama Othman - - * ace/Hash_Map_Manager_T.h: - - Added missing include for "ace/Log_Msg.h." This fixes a - compile-time error on Tru64. - -Sat May 27 17:09:03 2000 David L. Levine - - * docs/ACE-guidelines.html: added const to example - accessor declaration. - -Sat May 27 14:17:35 2000 Ossama Othman - - * apps/JAWS2/HTTPU/parse_url.cpp: - * examples/Web_Crawler/URL_Addr.cpp: - * examples/Reactor/Multicast/client.cpp: - * examples/OS/Process/process.cpp: - * examples/IPC_SAP/ATM_SAP/CPP-client.cpp: - * examples/IPC_SAP/ATM_SAP/CPP-server.cpp: - * examples/DLL/Newsweek.cpp: - * examples/DLL/Today.cpp: - * examples/DLL/test_dll.cpp: - * websvcs/tests/Test_URL_Addr.cpp: - - Added missing `ace/Log_Msg.h' include. - - * examples/Web_Crawler/URL_Addr.cpp (ACE_URL_Addr): - - Fixed warning about missing base class initialization in copy - constructor base member initializer list. - - (~ACE_URL_Addr, addr_to_string): - - Changed use of "LPTSTR" to "ACE_TCHAR *". This fixes an error - on UNIX builds. - -Sat May 27 14:59:08 2000 Douglas C. Schmidt - - * tests/Signal_Test.cpp (worker_parent): Yet another fix of this... - Now we add an ACE_static_cast to long, as well as doing the %ld! - Thanks to Yamuna for fixing this! - - * ace/SOCK_Stream.h: Improved the documentation of recv_n() et al. - Thanks to Sami Aario for this - suggestion. - -Sat May 27 01:07:01 2000 Darrell Brunsch - - * ace/config-win32-common.h: - - Added a semicolon to the definitions of - ACE_EXPORT_SINGLETON_DECLARE - ACE_IMPORT_SINGLETON_DECLARE - - Since the default definition for this is nothing, the semicolon is - better off in the definitions themselves. Otherwise, one needs to - add a semicolon after the use of these macros, which can cause - warnings when the macro expands to nothing. - -Fri May 26 20:00:22 2000 Darrell Brunsch - - * ace/OS_String.inl (strcasecmp, strncasecmp): - - I have no idea how this worked before, but in these two functions - we were using _stricmp/_strnicmp for Win32. Borland doesn't define - these by default, instead they use stricmp/strnicmp. So instead - of trying to figure out how this all worked before, I just added - an #elif for __BORLAND__ and called the stricmp/strnicmp. - -Fri May 26 19:26:34 2000 Ossama Othman - - * netsvcs/clients/Logger/direct_logging.cpp: - - Added missing include of `ace/Log_Msg.h'. - -Fri May 26 18:14:47 2000 Darrell Brunsch - - * ace/OS_String.inl: - - Moved the ACE_OS_String::to_lower () methods up in the file, since - they are used in other inlined functions. - -Fri May 26 16:13:08 2000 Darrell Brunsch - - * ace/OS.cpp: - * ace/OS.h: - * ace/OS_String.cpp: - * ace/OS_String.h: - - Moved the strptime back to OS.h, because it is more a time - thing than a string thing. - -Fri May 26 15:58:52 2000 Ossama Othman - - * ace/Select_Reactor_Base.cpp (open): - - Re-enabled the change that added ability to set the handle limit - to a value greater than FD_SETSIZE on platforms that support - this functionality. This was made possible by Steve Huston's - change to the ACE::max_handles() method described several - ChangeLog entries below. - -Fri May 26 14:27:02 2000 Darrell Brunsch - - * ace/OS_String.inl: - - Changed the strncasecmp methods to not use ssize_t inside of - them. This required a reworking of the loop, since it - depended on negative values. This was needed since ssize_t - is more difficult to get defined than size_t, so it seemed - less obtrusive to do it this way. - -Fri May 26 12:30:56 2000 Ossama Othman - - * ace/TLI_Connector.h: - * ace/TLI_Connector.cpp: - - Moved include of ace/Log_Msg.h to the header file. - TLI_Connector.i utilizes some of the ACE_Log_Msg macros. - -Fri May 26 14:25:31 2000 Jeff Parsons - - * ace/ace_dll.dsp: - Added OS_String.h to project for convenience. - -Fri May 26 12:23:55 2000 Ossama Othman - - * ace/TLI_Acceptor.cpp: - * ace/TLI_Connector.cpp: - - *sigh* These files also needed to include "ace/Log_Msg.h." - -Fri May 26 12:13:26 2000 Ossama Othman - - * ace/Singleton.cpp: - * ace/TLI.cpp: - - These files needed to explicitly include "ace/Log_Msg.h," too. - -Fri May 26 12:04:39 2000 Ossama Othman - - * ace/ARGV.cpp: - * ace/Capabilities.cpp: - * ace/Dump.cpp: - * ace/Filecache.cpp: - * ace/Local_Tokens.h: - * ace/Log_Msg.cpp: - * ace/Malloc.h: - * ace/Map_Manager.h: - * ace/Memory_Pool.cpp: - * ace/Name_Proxy.cpp: - * ace/Process.cpp: - * ace/Process_Manager.cpp: - * ace/QoS_Manager.cpp: - * ace/QoS_Session_Factory.cpp: - * ace/QoS_Session_Impl.cpp: - * ace/Remote_Name_Space.cpp: - * ace/SOCK_Acceptor.cpp: - * ace/SOCK_Dgram.cpp: - * ace/Select_Reactor_Base.cpp: - * ace/Service_Repository.cpp: - * ace/Signal.cpp: - * ace/Stats.h: - * ace/Synch.cpp: - * ace/TP_Reactor.h: - * ace/Thread_Manager.h: - * ace/Token.cpp: - - These files needed to explicitly include "ace/Log_Msg.h," too. - -Fri May 26 11:29:44 2000 Ossama Othman - - * ace/ACE.cpp: - * ace/Malloc.h: - - Include "ace/Log_Msg.h" to pull in the appropriate definition of - the ACE llessogging macros. This fixes a problem on Solaris. - -Thu May 25 19:39:59 2000 Ossama Othman - - * configure.in: - - Re-enabled test for ACE_HAS_SIGNAL_SAFE_OS_CALLS. The fixes to - the ACE_OSCALL* macros below make it possible to enable this - feature. - - * ace/config-all.h (ACE_OSCALL, ACE_OSCALL_RETURN): - - Removed call to "ACE_LOG_MSG->restart()" from these macros in - the "ACE_HAS_SIGNAL_SAFE_OS_CALLS" case. - - * ace/OS.h: - - Remove inclusion of "ace/Log_Msg.h" when the - ACE_ONLY_LATEST_AND_GREATEST preprocessor macro is defined. - This reduces the number of extraneous header interdependencies - in much of the ACE source files. - - Added a forward declaration for ACE_Log_Msg to compensate for - the declaration that was initially pulled in by "ace/Log_Msg.h" - It was only needed for "friend" declaration inside the - ACE_OS_Object_Manager class. - - * ace/Addr.cpp: - * ace/Addr.h: - * ace/Auto_Ptr.h: - * ace/DEV_Addr.cpp: - * ace/DEV_Connector.h: - * ace/DEV_Connector.i: - * ace/DEV_IO.cpp: - * ace/DLL.cpp: - * ace/FIFO.cpp: - * ace/FIFO_Recv.cpp: - * ace/FIFO_Recv_Msg.cpp: - * ace/FIFO_Send.cpp: - * ace/FIFO_Send_Msg.cpp: - * ace/FILE_Addr.cpp: - * ace/FILE_Connector.h: - * ace/FILE_IO.cpp: - * ace/Get_Opt.cpp: - * ace/Handle_Set.cpp: - * ace/INET_Addr.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/Log_Record.cpp: - * ace/MEM_Addr.cpp: - * ace/Makefile: - * ace/Mem_Map.cpp: - * ace/Name_Request_Reply.cpp: - * ace/OS.cpp: - * ace/Pipe.cpp: - * ace/SOCK.cpp: - * ace/SOCK_CODgram.cpp: - * ace/SOCK_Connector.cpp: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/SOCK_Dgram_Mcast_QoS.cpp: - * ace/SPIPE_Acceptor.cpp: - * ace/SPIPE_Connector.cpp: - * ace/SV_Message_Queue.cpp: - * ace/SV_Semaphore_Complex.cpp: - * ace/SV_Semaphore_Simple.cpp: - * ace/SV_Shared_Memory.cpp: - * ace/Time_Request_Reply.cpp: - * ace/Trace.cpp: - * ace/Typed_SV_Message_Queue.cpp: - * ace/UNIX_Addr.h: - * apps/Gateway/Peer/Options.cpp: - * apps/JAWS/server/Parse_Headers.cpp: - * apps/drwho/Binary_Search.cpp: - * apps/drwho/CM_Client.cpp: - * apps/drwho/CM_Server.cpp: - * apps/drwho/Hash_Table.cpp: - * apps/drwho/Multicast_Manager.cpp: - * apps/drwho/Options.cpp: - * apps/drwho/PMC_All.cpp: - * apps/drwho/PMC_Flo.cpp: - * apps/drwho/PMC_Ruser.cpp: - * apps/drwho/PMC_Usr.cpp: - * apps/drwho/PMS_All.cpp: - * apps/drwho/PMS_Flo.cpp: - * apps/drwho/PMS_Ruser.cpp: - * apps/drwho/PMS_Usr.cpp: - * apps/drwho/PM_Client.cpp: - * apps/drwho/Protocol_Manager.cpp: - * apps/drwho/Protocol_Record.cpp: - * apps/drwho/SMR_Client.cpp: - * apps/drwho/SMR_Server.cpp: - * apps/drwho/SM_Client.cpp: - * apps/drwho/SM_Server.cpp: - * apps/drwho/Search_Struct.cpp: - * apps/drwho/Single_Lookup.cpp: - * apps/drwho/client.cpp: - * apps/drwho/server.cpp: - * examples/IOStream/client/iostream_client.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp: - * examples/IPC_SAP/SPIPE_SAP/producer_read.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-server.cpp: - * examples/IPC_SAP/TLI_SAP/db-client.cpp: - * examples/IPC_SAP/TLI_SAP/ftp-client.cpp: - * examples/Log_Msg/test_callback.cpp: - * examples/Log_Msg/test_log_msg.cpp: - * examples/Log_Msg/test_ostream.cpp: - * examples/Logger/client/logging_app.cpp: - * examples/Mem_Map/IO-tests/IO_Test.cpp: - * examples/Mem_Map/file-reverse/file-reverse.cpp: - * examples/Misc/test_get_opt.cpp: - * examples/Misc/test_profile_timer.cpp: - * examples/Misc/test_sstring.cpp: - * examples/Reactor/FIFO/client.cpp: - * examples/Reactor/Misc/test_early_timeouts.cpp: - * examples/Reactor/Misc/test_time_value.cpp: - * examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp: - * examples/Shared_Malloc/Options.cpp: - * examples/Shared_Memory/test_MM.cpp: - * examples/Shared_Memory/test_SV.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp: - * netsvcs/clients/Logger/indirect_logging.cpp: - * netsvcs/lib/Logging_Strategy.cpp: - * performance-tests/Misc/basic_perf.cpp: - - Include "ace/Log_Msg.h" to pull in the appropriate definition of - the ACE logging macros. - -Fri May 26 09:16:21 2000 Darrell Brunsch - - * ace/OS_Dirent.cpp: - - I shall not put ACE_INLINE's in a .cpp file. - I shall not put ACE_INLINE's in a .cpp file. - I shall not put ACE_INLINE's in a .cpp file. - I shall not put ACE_INLINE's in a .cpp file. - I shall not put ACE_INLINE's in a .cpp file. - I shall not put ACE_INLINE's in a .cpp file. - I shall not put ACE_INLINE's in a .cpp file. - I shall not put ACE_INLINE's in a .cpp file. - I shall not put ACE_INLINE's in a .cpp file. - I shall not put ACE_INLINE's in a .cpp file. - - :-) - -Thu May 25 20:23:45 2000 Darrell Brunsch - - * bin/Process_Win32.pm: - - The timed_wait wasn't returning the correct value if the - server actually timed out. - -Thu May 25 18:21:41 2000 Steve Huston - - * ace/ACE.cpp (max_handles): If an ACE_LACKS_RLIMIT platform, let - it try sysconf or FD_SETSIZE instead of always getting ENOTSUP. - -Thu May 25 17:39:22 2000 Steve Huston - - * ace/Event_Handler.cpp (register_stdin_handler): On pSOS, do - stdin using another thread (like Win32) because ACE_STDIN is not - a handle that select() can demux on. It only does sockets. - - * ace/Log_Msg.cpp (log): Don't do a ACE_Log_Msg_Sig_Guard on pSOS. - It doesn't have signals to block out anyway. - -Thu May 25 16:57:16 2000 Steve Huston - - * ace/Select_Reactor_T.cpp (handle_error, check_handles): For pSOS, - select() sets errno to EBADS for invalid socket handle. And, we - need to use select() (not fstat) to weed out the bad ones. - -Thu May 25 15:19:14 2000 Darrell Brunsch - - * ace/OS_String.cpp: - - Added an include for stddef.h, since we use size_t here. Also - moved the OS_Export.h include after the #pragma once stuff. - -Thu May 25 12:26:36 2000 Joe Hoffert - - * examples/IPC_SAP/ATM_SAP/Makefile: - Removed libraries that FORE used to need. - -Thu May 25 09:07:16 2000 Carlos O'Ryan - - * ace/OS_String.cpp: - Removed a few ACE_INLINEs. - -Wed May 24 20:27:26 2000 Ossama Othman - - * ace/OS_String.h: - - Changed "u_long" to "unsigned long." The u_long typedef wasn't - being pulled in, so just use the basic type. This avoids having - to pull in a header, and fixes a compile time problem. - -Wed May 24 20:18:59 2000 Ossama Othman - - * ace/Select_Reactor_Base.cpp (open): - - Temporarily backed out change that added ability to set handle - limit to value greater than FD_SETSIZE. It breaks platforms - that don't support getrlimit(). - -Wed May 24 18:56:16 2000 Darrell Brunsch : - - * ace/OS_Export.h: (added) - - In preparation for an eventual splitting up of the ACE DLLs, - I'm starting to split up the Export macros also. OS_Export will - be used for the lowest level OS library. - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/ace-dll.icc: - * ace/ace-lib.icc: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - * ace/OS.cpp: - * ace/OS.h: - * ace/OS.i: - * ace/OS_String.cpp: (added) - * ace/OS_String.h: (added) - * ace/OS_String.inl: (added) - - Moved the string methods of ACE_OS to ACE_OS_String. - - * ace/OS_Dirent.cpp: - * ace/OS_Dirent.h: - * ace/OS_Dirent.inl: - - Separated the Win32 versions of some of the methods into the - cpp file. The Win32 versions were a bit too complicated to make - sense having inlined. - - Also changed to use ACE_OS_Export. - -Wed May 24 10:22:18 2000 Ossama Othman - - * THANKS: - - Added Håkon Innerdal to the list of - contributors. - - * ace/config-linux-common.h (ACE_DEFAULT_SELECT_REACTOR_SIZE): - - Commented out the definition of this macro. Its setting - unnecessarily limited the default size of the Select_Reactor to - 256 file descriptors. `ace/OS.h' correctly sets the default - size to FD_SETSIZE. Thanks to Håkon Innerdal - for pointing this out. - - * ace/Select_Reactor_Base.cpp (open): - - Do not check if the desired size of the repository, i.e. the - maximum number of file descriptors, is greater than FD_SETSIZE. - The same check is effectively done in the call to - ACE::set_handle_limits(). The redundant check also prevented - the Reactor from supporting file descriptors numbering more than - FD_SETSIZE on platforms that support them (e.g. via - setrlimit(RLIMIT_NOFILE, ...)). Thanks to Håkon Innerdal - for reporting the problem, and for providing - a fix. - - * m4/platform.m4 (ACE_DEFAULT_SELECT_REACTOR_SIZE): - - No longer set the default size to 256 file descriptors. - `ace/OS.h' correctly set it to FD_SETSIZE. - -Wed May 24 10:08:37 2000 Joe Hoffert - - * THANKS: - Added Pedro Brandao name for his additions - to support ATM for Linux. - -Wed May 24 10:01:26 2000 Joe Hoffert - - * ace/ATM_Acceptor.{h,i,cpp} - * ace/ATM_Addr.{h,i,cpp} - * ace/ATM_Connector.{h,i,cpp} - * ace/ATM_Params.h - * ace/ATM_QoS.{h,i,cpp} - * ace/ATM_Stream.cpp: - Added support for ATM on Linux. Thanks to Pedro Brandao - for providing this. - - * ace/TLI.{h,i,cpp} - * ace/TLI_Connector.{h,i,cpp} - * ace/TLI_Stream.{h,i,cpp}: - Changed hard-coded "inline" to "ACE_INLINE" - -Wed May 24 08:10:21 2000 Steve Huston - - * ace/WFMO_Reactor.h: Wrapped the !WinSock2 defs in defined(ACE_WIN32) - to prevent compile errors on non-win32 platforms. It may be better to - wrap the whole file in #if defined (ACE_WIN32), but this will solve - the immediate problem. - -Tue May 23 20:13:52 2000 Irfan Pyarali - - * ace/WFMO_Reactor.h: Moved the definition of WSANETWORKEVENTS to - before its use. Thanks to Craig Perras - for reporting this. - -Tue May 23 17:59:06 2000 Luther J Baker - - * ACE_wrappers/pace/pace: - Source files added. - Changes to pace subdirectory will be noted in - ACE_wrappers/pace/ChangeLog. - -Tue May 23 17:55:17 2000 Steve Huston - - * ace/Log_Msg.cpp (log): For %t on MVS, use the old ACE 5.0 cast. - The pthread_t is a struct on MVS. - -Tue May 23 17:21:37 2000 Steve Huston - - * include/makeinclude/platform_psos_diab_ppc.GNU: Add -ei1676 to - CCFLAGS to turn off the gazillion messages about not overriding - pure virtual functions in derived classes. Thanks to Matt Emerson - for this. - -Tue May 23 16:37:27 2000 Luther J Baker - - * ACE_wrappers/pace directories added to ACE_wrappers: - - ACE_wrappers/pace/docs - ACE_wrappers/pace/examples - ACE_wrappers/pace/pace - ACE_wrappers/pace/pace++ - ACE_wrappers/pace/tests - -Mon May 22 15:26:42 2000 Steve Huston - - * ace/Synch.(cpp h i): ACE_Process_Mutex, ACE_Process_Semaphore - - changed to using ACE_Mutex and ACE_Semaphore for the underlying - synch. mechanism (same as Win32 and POSIX semaphores). Process - and thread are the same thing (synch-wise) on pSOS, and the - underlying mechanisms Do The Right Thing. - -Wed May 10 16:47:31 2000 Steve Huston - (actually committed on Tue May 23) - * ace/OS.(h i): pSOS changes: - - Use ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL ()) rather than using - return func() == 0 ? 0 : -1 to avoid losing errno values. - - ACE_OS::thr_getspecific, copy existing code from the TSS-emulated - section to the native TSD-using section. - - Use u_long as ACE_condattr_t and set its flags in - ACE_OS::condattr_init rather than in ACE_OS::cond_init to - avoid strange return errors in other parts of ACE that use - ACE_OS::condattr_init and expect it to work. - -Mon May 22 15:25:33 2000 Nanbor Wang - - * ace/OS.{h,cpp} (ACE_Thread_Exit): - * ace/Thread_Manager.cpp (~ACE_Thread_Exit): Moved the reset of - ACE_Thread_Exit::is_constructed_ from the Thread_Exit's - destructor to ACE_OS_Object_Manager::fini (). Otherwise, the - singleton ACE_Thread_Exit may get created multiple times. - Thanks to Eric Yee for reporting the - problem. - - Notice that ACE 5.1.1, 5.1.2 and 5.1.3 all have the same problem - of creating TSS keys unnecessarily without cleaning them up. - This will most likely cause a long running server process - creating a lot of threads to crash eventually (at least on NT.) - Therefore, you should not use these versions in a production - environment. - -Mon May 22 11:23:19 2000 Pradeep Gore - - * ACE version 5.1.3 released. - -Sun May 21 17:11:12 2000 Darrell Brunsch - - * ace/Configuration.cpp: - - Fixed some ACE_USES_WCHAR problems. - -Sun May 21 12:29:11 2000 Carlos O'Ryan - - * bin/run_all_list.pm: - Removed the Connection_Purging test from the single threaded - builds, the test cannot work in that configuration. - -Sun May 21 11:39:11 2000 Douglas C. Schmidt - - * tests/Signal_Test.cpp (worker_parent): My earlier fix on May 18th, 2000 - was incorrect. The right fix is to make the format specifier be - %ld, rather than cast the pid_t to (int). - -Sat May 20 18:34:05 2000 Ossama Othman - - * configure.in (ACE_HAS_BROKEN_T_ERROR): - - Fixed the test that checks if t_error() correctly accepts a - "const char *" parameter. This should fix a problem that was - occuring on Solaris. - -Sat May 20 19:47:52 2000 Nanbor Wang - - * ace/Memory_Pool.cpp: Added the seh_selector method for - ACE_Pagefile_Memory_Pool so it can be used with ACE_Malloc. - Thanks to Charlie Duke for pointing this - out. - -Fri May 19 16:19:11 2000 Carlos O'Ryan - - * bin/run_all_list.pm: - Removed the InterOp-Naming test from the Minimum CORBA builds. - -Thu May 18 20:40:37 2000 Carlos O'Ryan - - * tests/Makefile: - More tweaking to get CDR_Array_Test *not* to compile on LynxOS - but to compile in other platforms. - -Thu May 18 15:59:10 2000 Carlos O'Ryan - - * tests/CDR_File_Test.cpp: - Fixed so it works on platforms that lack native 64 bit types. - -Thu May 18 13:56:49 2000 Jeff Parsons - - * ace/Configuration.cpp: - Removed an unused variable from import_config(). - -Thu May 18 13:28:41 2000 Carlos O'Ryan - - * tests/Makefile: - More tweaking to disable the CDR_Array_Test on LynxOS, the 3.0 - version of Lynx has a newer g++ compiler, but it is still - broken. - -Thu May 18 12:48:54 2000 Douglas C. Schmidt - - * tests/Signal_Test.cpp (worker_parent): Added a cast of - pid_t to int to make G++ happy. Thanks to David Levine for - reporting this. - -Thu May 18 10:37:30 2000 Darrell Brunsch - - * ace/OS_Dirent.h: - - It looks like LynxOS needed sys/types.h to be included - before dirent.h. - -Thu May 18 10:29:49 2000 Carlos O'Ryan - - * tests/Makefile: - Disable the CDR_Array_Test with older versions of g++ because - the test breaks the templates there. - - * tests/CDR_File_Test.cpp: - Use ULongLong instead of LongLong because the former is better - supported. - -Thu May 18 10:11:20 2000 Darrell Brunsch - - * ace/streams.h: - - For !ACE_HAS_STANDARD_CPP_LIBRARY, iomanip wasn't being included - (except for MSVC). So I moved it outside of the _MSC_VER block - so platforms like IRIX will now include it. - -Thu May 18 09:49:12 2000 Jeff Parsons - - * ace/Configuration.h: - * ace/Configuration.cpp: - Chris Hafey's bug fixes and - enhancements to ACE_Configuration. Set_string_value - and set_integer_value now work when the value already - exists, memory leaks have been plugged, and a new - function added called find_value, which checks for the - existence in a section of a field by name, and returns - the data type stored there if it is found. - -Wed May 17 20:37:49 2000 Carlos O'Ryan - - * tests/Makefile.am: - Add missing CDR_File_Test_SOURCES and CDR_Array_Test_SOURCES - definitions. - -Wed May 17 20:25:21 2000 Darrell Brunsch - - * ace/OS.h: - * ace/config-all.h: - - Needed to move another define from OS.h to config-all - (the ENOSYS to EFAULT define) since Borland doesn't - have ENOSYS defined. - -Wed May 17 20:02:25 2000 Darrell Brunsch - - * ace/Dirent.h: - * ace/Dirent.i: - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/OS.h: - * ace/OS.i: - * ace/OS_Dirent.cpp: (added) - * ace/OS_Dirent.h: (added) - * ace/OS_Dirent.inl: (added) - * ace/ace-dll.icc: - * ace/ace-lib.icc: - * ace/ace.icc: - * ace/ace_dll.dsp: - * ace/ace_dll_ce.dsp: - * ace/ace_lib.dsp: - * ace/config-all.h: - - Ladies and Gentlemen, you are witnessing the beginning of the - end of ACE_OS as we know it. That's right, I am taking on the - bazillion lines of stuff in OS.*, and separating it into bite - size pieces. - - So this is the first step, kind of a test of concept. I took - the dirent methods and separated them out into a separate class - (in its own files), ACE_OS_Dirent. So now if one only wishes - to use the dirent static methods, one only has to include - OS_Dirent.h. - - But what about all the code that thinks it is still in ACE_OS? - Glad you asked, since ACE_OS now inherits from ACE_OS_Dirent, - meaning using ACE_OS::opendir () and family still works. - - So eventually everything will be moved out, and ACE_OS will - just be a shell of a class that inherits from the ACE_OS_* - classes (with maybe an ACE_ONLY_LATEST_AND_GREATEST thrown - in here and there). - - Let's just hope that this works.... - -Wed May 17 19:01:52 2000 Carlos O'Ryan - - * bin/auto_compile: - Fixed minor typos in the -smart_proxies option. - - * bin/run_all_list.pm: - The path for one of the tests (InterOp-Naming) was broken, my - fault. - -Wed May 17 16:20:30 2000 Darrell Brunsch - - * ace/Future.cpp: - * ace/Future.h: - * ace/Future_Set.cpp: - * ace/Future_Set.h: - * ace/LOCK_SOCK_Acceptor.cpp: - * ace/config-pharlap.h: - - While searching for the cause of a warning being undisabled, - I noticed there were several places where we were using - #include /**/ "ace/some-header.h". The #include /**/ is only - for system headers, so it doesn't need to be used with ACE - headers. - - * ace/streams.h: - - If ACE_HAS_STANDARD_CPP_LIBRARY is defined, then we include - the .h-less versions of the header files. This is all fine - and good, except that these headers in MSVC will disable some - warnings with #pragma warning, but then set them back to - default at the end. So if we disabled a warning in the config - file, it would get reenabled because of these headers. - - So I added a #pragma warning(push/pop) pair around the includes - in this file to localize the warning settings. - -Wed May 17 14:32:50 2000 Carlos O'Ryan - - * tests/CDR_Array_Test.cpp: - Fixed warnings in KAI-3.4 (and other EDG based compilers), it - makes no sense to return 'const int' - -Wed May 17 12:03:41 2000 Darrell Brunsch - - * Msg_WFMO_Reactor.cpp: - * Msg_WFMO_Reactor.h: - * Msg_WFMO_Reactor.i: - * ace/README: - * ace/config-WinCE.h: - * ace/config-pharlap.h: - - Added an ACE_LACKS_MSG_WFMO macro that is used when ACE_WIN32 - is defined but MsgWaitForMultipleOjbects isn't. This replaces - the checking for Pharlap and Windows CE. Thanks to David Hauck - for this suggestion. - -Wed May 17 13:34:22 2000 Steve Huston - - * tests/Thread_Pool_Reactor_Test.cpp: Added a little more diagnostic - info that was useful in diagnosing a previous problem in the - ACE_TP_Reactor. - -Wed May 17 12:48:24 2000 Carlos O'Ryan - - * tests/CDR_File_Test.cpp: - More workarounds for compiler bugs, this time egcs-1.1.1 is at - fault. - -Wed May 17 10:58:23 2000 Steve Huston - - * ace/WFMO_Reactor.(cpp h): Changed complex_dispatch_handler() and - upcall() to redo upcall(s) when the handler returns 1. This adds - ACE_WFMO_Reactor functionality equivalent to the ACE_Select_Reactor - family. To do this, the upcall() function's signature was changed - to accept a WSANETWORKEVENTS structure by reference. upcall() - updates the lNetworkEvents flags to indicate which requested a - callback. If the handler is not marked for deletion, the upcall - is done again. To properly support this, the call to - WSAEnumNetworkEvents is done once in complex_dispatch_handler and - the events flags are updated on each call to upcall(). - Thanks to Irfan Pyarali for his guidance - in designing this change. - -Wed May 17 10:54:05 2000 Jeff Parsons - - * examples/ConfigViewer/ConfigTreeCtrl.cpp: - * examples/ConfigViewer/ConfigTreeCtrl.h: - * examples/ConfigViewer/ConfigurationViewer.cpp: - * examples/ConfigViewer/ConfigurationViewer.dsp: - * examples/ConfigViewer/ConfigurationViewer.dsw: - * examples/ConfigViewer/ConfigurationViewer.rc: - * examples/ConfigViewer/MainFrame.cpp: - * examples/ConfigViewer/MainFrame.h: - * examples/ConfigViewer/README: - * examples/ConfigViewer/ValueDlg.cpp: - * examples/ConfigViewer/ValueDlg.h: - * examples/ConfigViewer/ValueListCtrl.cpp: - * examples/ConfigViewer/ValueListCtrl.h: - * examples/ConfigViewer/mondrian.ico: - * examples/ConfigViewer/mondrian.xpm: - * examples/ConfigViewer/stdafx.cpp: - * examples/ConfigViewer/stdafx.h: - Chris Hafey's ACE_Configuration viewer/editor for vxWindows. - For details, see the README file or email Chris at - . - -Wed May 17 09:02:45 2000 Carlos O'Ryan - - * tests/CDR_Array_Test.cpp: - Workaround problems with old versions of g++, in some cases it - gets confused with sizeof(T) inside a template. - -Tue May 16 12:01:56 2000 Darrell Brunsch - - * ace/Msg_WFMO_Reactor.cpp: - * ace/Msg_WFMO_Reactor.h: - - Applied some patches that Bruce Trask - sent for building ACE on Pharlap. - - * ace/OS.cpp: - * ace/OS.h: - * ace/Process.cpp: - * ace/ace_wchar.h: - - GetEnvironmentStrings is the only Windows API function that I've - seen that doesn't follow the same FuncA/FuncW naming that the - rest do. So I added a wrapper in ACE_OS (getenvstrings) and it - does the appropriate magic in the .cpp file to get this to work. - - This only showed up when UNICODE was defined but ACE_USES_WCHAR - wasn't. - - * ace/Process.cpp: - - Removed a comment that stated that the WinCE version of - inherit_environment () was in Process.i. Actually, there isn't - a version for CE at all. - - * tests/CDR_Array_Test.cpp: - - Updated the test so it works with ACE_USES_WCHAR. - -Tue May 16 10:02:33 2000 Carlos O'Ryan - - * tests/CDR_File_Test.cpp: - The test was removing the file even when the user requested not - to do so. - -Tue May 16 09:53:19 2000 Carlos O'Ryan - - * ace/CDR_Stream.i: - Change swap_8 again, this time it compiles with -O2 and -O3, - using the assembly instructions for full performance. - - * tests/CDR_Array_Test.cpp: - Fixed several problems reported during the last night builds. - Mostly template quirks and the ever annoying problems of Sun/CC - 4.2 with static_casts - - * tests/CDR_File_Test.cpp: - Don't use ?: operators when the arguments are of different - types. - -Mon May 15 21:00:31 2000 Carlos O'Ryan - - * ace/CDR_Stream.i: - The swap_8 operator was not working when debugging was - disabled. - -Mon May 15 16:06:01 2000 Priyanka Gontla - - * ace/CORBA_macros.h: - - Added Support for Exception::_downcast () by modifying _narrow - to _downcast (). Thanks to William Horn . - - -Mon May 15 15:49:37 2000 Carlos O'Ryan - - * bin/run_all_list.pm: - Add Connection_Purging to the list. - -Mon May 15 15:23:27 2000 Ossama Othman - - The following are primarily consistency related updates. - - * ace/LSOCK.i (ACE_LSOCK): - - Initialize "aux_handle_" member to ACE_INVALID_HANDLE in the - base member initializer list. - - * ace/Thread_Manager.i (ACE_At_Thread_Exit): - - Initialize "next_" member to 0 in the base member initializer - list. - - (ACE_Thread_Descriptor_Base): - - Initialize "next_" and "prev_" members to 0 in the base member - initializer list. - -Mon May 15 15:14:41 2000 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - Cristian Ferretti has contributed - a number of optimizations to the byte swapping code for CDR - streams. The optimizations include loop unrolling for 32-bit - and 64-bit architectures, use of especial assembly instructions - for x86-based platforms and use of bit operations (instead of - memory manipulation) for other processors. - - * tests/Makefile: - * tests/Makefile.am: - * tests/Makefile.bor: - * tests/run_tests.bat: - * tests/run_tests.lst: - * tests/run_tests.vxworks: - * tests/tests.dsw: - * tests/CDR_Array_Test.cpp: - * tests/CDR_Array_Test.dsp: - * tests/CDR_Array_Test.icc: - New test to verify that the array operations in the CDR classes - actually work, this is specially critical because the new - versions unroll loop, perform assembly instructions that work - best when the alignment is right, etc. - - * tests/CDR_File_Test.cpp: - The test was extended. Now we can save a file in one platform - and load it (manually) in another platform, to verify that byte - swapping actually works. - Both tests were contributed by Cristian Ferretti - , which is good because all this - voodoo programming needs testing. - The changes were tested using PA-RISC, Alphas, Sparcs and - finally Pentiums in various forms and using several compilers. - -Mon May 15 14:01:23 2000 Ossama Othman - - * ace/OS.h: - - QNX Neutrino has the header, so include it. - - * ace/config-qnx-neutrino.h: - - QNX supports the {get,set}rlimit() functions. ACE's autoconf - support detected this support. - -Mon May 15 12:32:05 2000 Ossama Othman - - * ace/Log_Record.cpp (print): - - Added a "%s" format specifier to the fprintf() call. This was - needed to allow strings containing percent signs '%' to be - printed. This problem was inadvertently introduced during some - UNICODE related updates. The "%s" format specifier can handle - UNICODE strings. Thanks to Edan Ayal for - reporting this problem and providing a fix. - -Mon May 15 10:25:38 2000 Darrell Brunsch - - * bin/create_vt_dsps.pl: - - I got tired of creating the version tests for the ACE tests, - so why not script it? - - * tests/version_tests/ACE_Init_Test.dsp: (removed) - - This test is tricky. It uses MFC, which gets complicated when - also using the static version of ACE. Since this is the only - test that does this, I just disabled it in the create_vt_dsps.pl. - - * tests/version_tests/Reactor_Exception_Test.dsp: (removed) - * tests/version_tests/Sigset_Op_Test.dsp: (removed) - - These two were named differently than their parents in - tests/, so they have been renamed. - - * tests/version_tests/Atomic_Op_Test.dsp: - * tests/version_tests/Auto_IncDec_Test.dsp: - * tests/version_tests/Barrier_Test.dsp: - * tests/version_tests/Basic_Types_Test.dsp: - * tests/version_tests/Buffer_Stream_Test.dsp: - * tests/version_tests/CDR_File_Test.dsp: - * tests/version_tests/CDR_Test.dsp: - * tests/version_tests/Cache_Map_Manager_Test.dsp: - * tests/version_tests/Cached_Accept_Conn_Test.dsp: - * tests/version_tests/Cached_Conn_Test.dsp: - * tests/version_tests/Capabilities_Test.dsp: - * tests/version_tests/Collection_Test.dsp: - * tests/version_tests/Conn_Test.dsp: - * tests/version_tests/DLL_Test.dsp: - * tests/version_tests/DLList_Test.dsp: - * tests/version_tests/Dynamic_Priority_Test.dsp: - * tests/version_tests/Enum_Interfaces_Test.dsp: - * tests/version_tests/Env_Value_Test.dsp: - * tests/version_tests/Future_Set_Test.dsp: - * tests/version_tests/Future_Test.dsp: - * tests/version_tests/Handle_Set_Test.dsp: - * tests/version_tests/Hash_Map_Bucket_Iterator_Test.dsp: - * tests/version_tests/Hash_Map_Manager_Test.dsp: - * tests/version_tests/High_Res_Timer_Test.dsp: - * tests/version_tests/IOStream_Test.dsp: - * tests/version_tests/Lazy_Map_Manager_Test.dsp: - * tests/version_tests/MM_Shared_Memory_Test.dsp: - * tests/version_tests/MT_Reactor_Timer_Test.dsp: - * tests/version_tests/MT_SOCK_Test.dsp: - * tests/version_tests/Malloc_Test.dsp: - * tests/version_tests/Map_Manager_Test.dsp: - * tests/version_tests/Map_Test.dsp: - * tests/version_tests/Mem_Map_Test.dsp: - * tests/version_tests/Message_Block_Test.dsp: - * tests/version_tests/Message_Queue_Notifications_Test.dsp: - * tests/version_tests/Message_Queue_Test.dsp: - * tests/version_tests/Naming_Test.dsp: - * tests/version_tests/New_Fail_Test.dsp: - * tests/version_tests/Notify_Performance_Test.dsp: - * tests/version_tests/Object_Manager_Test.dsp: - * tests/version_tests/OrdMultiSet_Test.dsp: - * tests/version_tests/Pipe_Test.dsp: - * tests/version_tests/Priority_Buffer_Test.dsp: - * tests/version_tests/Priority_Reactor_Test.dsp: - * tests/version_tests/Priority_Task_Test.dsp: - * tests/version_tests/Process_Manager_Test.dsp: - * tests/version_tests/Process_Mutex_Test.dsp: - * tests/version_tests/Process_Strategy_Test.dsp: - * tests/version_tests/RB_Tree_Test.dsp: - * tests/version_tests/Reactor_Notify_Test.dsp: - * tests/version_tests/Reactor_Performance_Test.dsp: - * tests/version_tests/Reactor_Timer_Test.dsp: - * tests/version_tests/Reactors_Test.dsp: - * tests/version_tests/Reader_Writer_Test.dsp: - * tests/version_tests/Recursive_Mutex_Test.dsp: - * tests/version_tests/Reverse_Lock_Test.dsp: - * tests/version_tests/SOCK_Connector_Test.dsp: - * tests/version_tests/SOCK_Send_Recv_Test.dsp: - * tests/version_tests/SOCK_Test.dsp: - * tests/version_tests/SPIPE_Test.dsp: - * tests/version_tests/SString_Test.dsp: - * tests/version_tests/SV_Shared_Memory_Test.dsp: - * tests/version_tests/Semaphore_Test.dsp: - * tests/version_tests/Service_Config_Test.dsp: - * tests/version_tests/Simple_Message_Block_Test.dsp: - * tests/version_tests/Svc_Handler_Test.dsp: - * tests/version_tests/TSS_Test.dsp: - * tests/version_tests/Task_Test.dsp: - * tests/version_tests/Thread_Manager_Test.dsp: - * tests/version_tests/Thread_Mutex_Test.dsp: - * tests/version_tests/Thread_Pool_Reactor_Test.dsp: - * tests/version_tests/Thread_Pool_Test.dsp: - * tests/version_tests/Time_Service_Test.dsp: - * tests/version_tests/Time_Value_Test.dsp: - * tests/version_tests/Timeprobe_Test.dsp: - * tests/version_tests/Timer_Queue_Test.dsp: - * tests/version_tests/Tokens_Test.dsp: - * tests/version_tests/UPIPE_SAP_Test.dsp: - * tests/version_tests/Upgradable_RW_Test.dsp: - * tests/version_tests/version_tests.dsw: - * tests/version_tests/Reactor_Exceptions_Test.dsp: (added) - * tests/version_tests/Sigset_Ops_Test.dsp: (added) - - These files were regenerated. - -Mon May 15 12:28:32 2000 Aviad Eden - - * ace/Object_Manager.h: In the paragraph that describes the - behavior of ::exit function (starting with the words "NOTE - on the use of ::exit --"). The first sentence states that - using ::exit "does not destroy static objects" while it - should be "does not destroy automatic objects". - -Mon May 15 12:25:59 2000 David L. Levine - - * ace/OS.i (thr_join): removed comments about possible - implementation using ::taskSafe ()/::taskUnsafe () on - VxWorks. Join functionality is better implemented - in the Thread_Manager. Thanks to Umar for asking about - this comment. - -Mon May 15 09:09:49 2000 Darrell Brunsch - - * ace/Local_Name_Space_T.cpp: - * ace/Remote_Name_Space.cpp: - * netsvcs/lib/Name_Handler.cpp: - - Changed my use of ACE_Auto_Array_Ptr for ACE_USHORT16 - to ACE_Auto_Basic_Array_Ptr. Thanks to Andy Gokhale for - reporting this. - -Mon May 15 08:31:13 2000 Darrell Brunsch - - * ace/streams.h: - - Undid the commenting out of #include for - ACE_USES_OLD_IOSTREAMS. It had previously been commented - out because of a problem with Qt. A better solution would - be to not include it only when ACE is used with Qt. - - This problem was showing up with Explicit_Event_Loop. - -Sun May 14 12:43:35 2000 Darrell Brunsch - - (On behalf of Christopher Kohlhoff ) - - * ace/Makefile.bor: - * include/makeinclude/ace_flags.bor: - - Added new file, moved ACE_BUILD_DLL macro into ACE library's - makefile. Thanks also to Mogens Hansen . - - * include/makeinclude/recurse.bor: - - Arguments like -i should now be propogated with makefile - recursion - -Sun May 14 12:19:41 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Added a -TAO option to specify that the TAO subdirectory - should be compiled. - -Sat May 13 19:05:23 2000 Darrell Brunsch - - * ace/SString.cpp: - - Forgot to add a base member initialization for the allocator - in the new ACE_USHORT16 constructor for ACE_WString. Thanks - to Chris Kohlhoff for noticing this. - -Sat May 13 19:07:32 2000 Nanbor Wang - - * ace/config-kcc-common.h: Added ACE_HAS_STRING_CLASS. This fixed - the IOStream_Test. - -Sat May 13 13:01:08 2000 Darrell Brunsch - - * tests/SString_Test.cpp: - - So yesterday I changed a type from ACE_USHORT16 to - wchar_t. Rather, it should have been ACE_WSTRING_TYPE. - -Sat May 13 01:06:22 2000 Darrell Brunsch - - * ace/Local_Name_Space_T.cpp: - * ace/Remote_Name_Space.cpp: - - SunCC 5 didn't like the template instantiations in the - Local_Name_Space_T file, so I moved them to - Remote_Name_Space.cpp. - -Fri May 12 17:48:17 2000 Darrell Brunsch - - * bin/generate_export_file.pl: - - Found a new way to write this script using map and a __DATA__ - block. - -Fri May 12 17:52:22 2000 Nanbor Wang - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): Reverted James' - previous change for now. It's causing problem with MSVC. - -Fri May 12 15:04:58 2000 Carlos O'Ryan - - * bin/run_all_list.pm: - * bin/auto_compile_win32.pl: - Updated to include the new TAO test. - -Fri May 12 11:25:10 2000 Darrell Brunsch - - * ace/Basic_Types.h: - - Didn't understand at first why ACE_SIZEOF_WCHAR wasn't - defined to just "sizeof (wchar_t)". So I changed it, but - now I realize that this will not work if ACE_SIZEOF_WCHAR - is used in a #if. Bleh. Since wchar_t is always different, - I just defined it as 2 for WIN32 and 0 for others (so the - tests/Basic_Types_Test will catch it). [Bug 560] - - * ace/ACE.cpp: - - Chris Kohlhoff reported that Borland - didn't like "sizeof wchar_t", but adding parenthesis worked. - Applied this patch, and changed the cast to an ACE_static_cast. - [Bug 560] - - * ace/High_Res_Timer.cpp: - - Borland was giving some warnings here since a const method - was calling this->global_scale_factor (), which is a static - method. Changed it to ACE_High_Res_Timer::global_scale_factor () - and things compiled cleanly. - - * ace/config-win32-borland.h: - * ace/README: - * ace/SString.cpp: - * ace/SString.h: - * ace/Local_Name_Space_T.cpp: - * ace/Remote_Name_Space.cpp: - * netsvcs/lib/Name_Handler.cpp: - - On Borland BCB 5, wchar_t is (correctly) a separate type than - unsigned short, so all the implicit casting between the two in - the ACE Name Space. So added a new macro, - ACE_WSTRING_HAS_USHORT_SUPPORT, that enables another constructor - for ACE_WString. - - Chris Kohlhoff also reported this problem - and a solution, but unfortunately ACE_Name_Space requires that - this type is 2 bytes so we couldn't just use ACE_WSTRING_TYPE - here. Instead I added in both the new constructor and a - ushort_rep method on ACE_WString. I changed the Name Space stuff - to use this instead. BTW, old code shouldn't need to be changed - on MSVC, just if you use BCB. [Bug 561] - - * tests/SString_Test.cpp: - - We were using ACE_USHORT16 as the single character type for - ACE_WString. This has been changed to wchar_t. Thanks to Chris - for this one also. [Bug 561] - -Fri May 12 10:12:05 2000 James Hu - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): - If the TSS instance of the ACE_Thread_Exit class fails to - create, the application will crash. The new code will - detect the failure, and use an instance created off the - stack if it happens. This mimics how ACE does it in - the case of platforms that do not support TSS. - -Thu May 11 18:07:53 2000 Chris Cleeland - - * ace/OS.i (malloc): Bug 566. - * ace/OS.i (realloc): - * ace/OS.i (calloc): - * ace/OS.i (free): Use the new macros (below) instead of directly - calling malloc-like functions, thereby allowing an installation to - substitute an alternate mallocator for the global (see comment for - OS.h below). - - * ace/OS.i (strdup): Changed the emulation of strdup() to use - ACE_OS::malloc() rather than ::malloc(). - - * ace/OS.h: Added the four macros ACE_MALLOC_FUNC, - ACE_CALLOC_FUNC, ACE_REALLOC_FUNC, and ACE_FREE_FUNC which default - to the names of the global ::malloc, ::calloc, ::realloc and - ::free. Using this, a site can define these in their config.h in - order to substitute an alternate malloc-like allocator. - -Thu May 11 17:23:14 2000 Jeff Parsons - - * ace/ace_dll.dsp: - Removed non-existent file Configuration.i from project. - -Thu May 11 15:21:34 2000 Darrell Brunsch - - * ace/OS.i (dlsym): - - I was checking for ACE_HAS_WIN32 instead of ACE_WIN32, - so this wasn't doing what it was supposed to with - ACE_USES_WCHAR turned on. - -Thu May 11 02:04:58 2000 Irfan Pyarali - - * ace/OS.h - * ace/OS.cpp - * ace/SOCK_Stream.h - * ace/SOCK_Stream.i - * ace/TLI_Stream.h - * ace/TLI_Stream.i - * ace/ACE.cpp - * ace/ACE.h - * ace/ACE.i - - In order to make the return values of recv_n() and send_n() - match the return values of recv() and send(), the following - changes were made to the interface: - - old interface: - - static ssize_t recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout = 0, - int error_on_eof = 1); - - new interface: - - static ssize_t recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - - Return value are: - - - On complete transfer, is returned. - - On timeout, -1 is returned, errno == ETIME. - - On error, -1 is returned, errno is set to appropriate error. - - On EOF, 0 is returned, errno is irrelevant. - - On partial transfers, i.e., if any data is transferred before - timeout/error/EOF, will contain the number - of bytes transferred. These return values now closely match the - return values from the non "_n" methods. - - Thanks to Douglas Schmidt, Chris Cleeland, Steve Huston, James - Hu, and Rich Seibel for helping out! - -Thu May 11 01:59:10 2000 Irfan Pyarali - - * ace/Pipe.cpp: Reader and writer handles were being left open - when there was an error in ACE_Pipe::open(). This fixes bug - 549. Thanks to Rick Ohnemus for - reporting this bug and providing patches. - -Wed May 10 18:36:58 2000 Carlos O'Ryan - - * THANKS: - Add a new contributor - - * bin/msvc_auto_compile.pl: - * bin/auto_compile_win32.pl: - Upgraded to use the new libraries in orbsvcs. - -Tue May 9 20:02:41 2000 Darrell Brunsch - - * ace/Asynch_Acceptor.cpp: - - Was still including "Asynch_Acceptor.i" which has been removed. - - * apps/JAWS2/JAWS/Cache_Manager_T.cpp: - - Removed iostream.h include here. This is not good since ACE - already includes it, and ACE might already include , - which is incompatible with . - - * examples/Reactor/WFMO_Reactor/test_talker.cpp: - - Looks like the constructor to Proactor was changed, but this - test didn't get changed also. Removed one of the arguments - being passed to it. - - * websvcs/lib/websvcs_export.h: - - Regenerated it. It seems like I changed the websvcs library - based on what I thought was in this file. This didn't work, - since I was assuming that ACE_WEBSVCS_HAS_DLL was automatically - defined (and older versions of these export files did not do - that). - - * apps/JAWS/server/HTTP_Helpers.cpp: - * examples/Shared_Malloc/test_malloc.cpp: - - Changed empty ;'s in if statements to {} to remove warnings. - - - * bin/msvc_auto_compile.pl: - - Added a -u option that tells the script to pass the /USEENV - flag to msdev when it runs. - - Added a -ACE option that tells the script just to compile the - ACE directories. - - Changed -core to -CORE to be consistent with -ACE (and the - upcoming -TAO). - - * apps/Gateway/Gateway/Gateway.dsp: - * apps/Gateway/Gateway/gatewayd.dsp: - * apps/Gateway/Peer/Peer.dsp: - * apps/Gateway/Peer/peerd.dsp: - * apps/JAWS/clients/Caching/Caching.dsp: - * apps/JAWS/server/jaws.dsp: - * apps/JAWS2/server.dsp: - * apps/JAWS2/HTTPU/HTTPU.DSP: - * apps/JAWS2/HTTPU/HTTPU.DSW: - * apps/JAWS2/JAWS/jaws.dsp: - * examples/ASX/Event_Server/Event_Server/Event_Server.dsp: - * examples/ASX/Event_Server/Transceiver/transceiver.dsp: - * examples/ASX/Message_Queue/Bounded_Buffer.dsp: - * examples/ASX/Message_Queue/Buffer_Stream.dsp: - * examples/ASX/Message_Queue/Priority_Buffer.dsp: - * examples/ASX/UPIPE_Event_Server/UPIPE_Event_Server.dsp: - * examples/Bounded_Packet_Relay/Bounded_Packet_Relay.dsp: - * examples/Configuration/Test.dsp: - * examples/Connection/blocking/SPIPE.dsp: - * examples/Connection/blocking/acceptor.dsp: - * examples/Connection/non_blocking/non_blocking.dsp: - * examples/Connection/non_blocking/server.dsp: - * examples/IPC_SAP/ATM_SAP/CPP_client.dsp: - * examples/IPC_SAP/ATM_SAP/CPP_server.dsp: - * examples/IPC_SAP/SOCK_SAP/CPP_inclient.dsp: - * examples/IPC_SAP/SOCK_SAP/CPP_inserver.dsp: - * examples/IPC_SAP/SOCK_SAP/CPP_memclient.dsp: - * examples/IPC_SAP/SOCK_SAP/CPP_memserver.dsp: - * examples/IPC_SAP/SOCK_SAP/C_inserver.dsp: - * examples/IPC_SAP/SOCK_SAP/SOCK_SAP.dsp: - * examples/Log_Msg/Callback.dsp: - * examples/Log_Msg/Log_Msg.dsp: - * examples/Log_Msg/Ostream.dsp: - * examples/Logger/Acceptor-server/server_loggerd.dsp: - * examples/Mem_Map/file-reverse/file_reverse.dsp: - * examples/Naming/Naming.dsp: - * examples/Naming/multiple_contexts.dsp: - * examples/Naming/non_existent.dsp: - * examples/OS/Process/Process.dsp: - * examples/OS/Process/imore.dsp: - * examples/QOS/client.dsp: - * examples/QOS/server.dsp: - * examples/Reactor/Dgram/CODgram.dsp: - * examples/Reactor/Dgram/Dgram.dsp: - * examples/Reactor/Misc/Misc.dsp: - * examples/Reactor/Misc/demuxing.dsp: - * examples/Reactor/Misc/early_timeouts.dsp: - * examples/Reactor/Misc/notification.dsp: - * examples/Reactor/Misc/reactors.dsp: - * examples/Reactor/Misc/signals_1.dsp: - * examples/Reactor/Misc/signals_2.dsp: - * examples/Reactor/Ntalker/ntalker.dsp: - * examples/Reactor/Proactor/post_completions.dsp: - * examples/Reactor/Proactor/test_cancel.dsp: - * examples/Reactor/Proactor/test_end_event_loop.dsp: - * examples/Reactor/Proactor/test_multiple_loops.dsp: - * examples/Reactor/Proactor/test_proactor.dsp: - * examples/Reactor/Proactor/test_timeout.dsp: - * examples/Reactor/WFMO_Reactor/Handle_Close.dsp: - * examples/Registry/Registry.dsp: - * examples/Registry/update.dsp: - * examples/Service_Configurator/Misc/Timer.dsp: - * examples/Service_Configurator/Misc/main.dsp: - * examples/Shared_Malloc/malloc.dsp: - * examples/Shared_Malloc/multiple_mallocs.dsp: - * examples/Shared_Malloc/persistence.dsp: - * examples/Shared_Malloc/position_independent_malloc.dsp: - * examples/Web_Crawler/Web_Crawler.dsp: - * performance-tests/Misc/basic_perf.dsp: - * performance-tests/Misc/childbirth_time.dsp: - * performance-tests/Misc/context_switch_time.dsp: - * performance-tests/Misc/test_mutex.dsp: - * performance-tests/Misc/test_naming.dsp: - * performance-tests/Misc/test_singleton.dsp: - * performance-tests/Server_Concurrency/Leader_Follower/Leader_Follower.dsp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/Queue_Based_Workers.dsp: - * performance-tests/TCP/TCP.dsp: - - While testing the -ACE flag in msvc_auto_compile, I found that - there were many dsps that were either creating precompiled - headers, didn't have the correct include paths, or even weren't - in the CRLF format. Fixed them up. - - * apps/JAWS/clients/Caching/testing.dsp: - * performance-tests/Synch-Benchmarks/Synch_Tests.dsp: - - These project files didn't look like they are used anymore, - so I removed them. - -Tue May 9 17:38:47 2000 Carlos O'Ryan - - * bin/auto_compile_win32.pl: - Include the new library used in the RT CORBA tests. - -Tue May 9 09:01:24 2000 Darrell Brunsch - - * examples/Export/README: (added) - * examples/Export/dll.cpp: (added) - * examples/Export/dll.h: (added) - * examples/Export/export_dll.dsp: (added) - * examples/Export/export_test.dsw: (added) - * examples/Export/run_test.pl: (added) - * examples/Export/test.cpp: (added) - * examples/Export/test.dsp: (added) - * examples/Export/test_export.h: (added) - - The export example is an example of how to use the ACE_Export - type macros for DLLs. - -Mon May 8 14:37:32 2000 Douglas C. Schmidt - - * ace/Task.h: Cleaned up the documentation so that it will - work correctly with class2man. Thanks to Charlie Duke - for reporting this. - -Mon May 08 22:56:28 2000 Carlos O'Ryan - - * ACE version 5.1.2 released. - -Mon May 8 11:02:49 2000 Darrell Brunsch - - * docs/CE-status.txt: - - I will not get a chance to update this before the beta, so - I just put in a note mentioning that it is out of date and - will be updated next time. - -Mon May 8 12:30:15 2000 Nanbor Wang - - * include/makeinclude/platform_sunos5_kcc.GNU: Added - "--once_instantiation_per_object" flag for both compiler and - linker to avoid some warnings about duplicate symbol - definitions. - -Sun May 7 19:50:21 2000 Darrell Brunsch - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Undid Doug's change on "Wed May 3 18:07:16 2000". - The fix wasn't working in our SUNCC 5 builds. - -Sat May 6 17:49:01 2000 Darrell Brunsch - - * ace/Log_Msg.h: - * ace/Log_Msg.cpp: - - Changed the signature of log_priority_enabled to have both the - char * and wchar_t * versions when using ACE_USES_WCHAR. The - reason why this has to be done is because of ACE_HEX_DUMP. - - ACE_HEX_DUMP calls both log_priority_enabled and log_hexdump, - and it doesn't make sense to change the signature of log_hexdump. - If it were to take in a wchar_t buffer, it should print the - entire wchar_t. But if we have a buffer that is a char *, then - it doesn't make sense to convert it to a wchar_t * buffer, since - it adds all those extra bytes that would show up with hexdump. - - And now that we have 3 versions of this method which do the same - things, I changed the ones that is used by the macros to call - the one that just takes in the priority. An extra function call, - but if that is a problem, then they can be inlined. - -Sat May 6 19:33:49 2000 Nanbor Wang - - * include/makeinclude/platform_freebsd.GNU: Removed definition - BIN_TRUE. It's no longer used. - -Thu May 4 14:53:45 2000 Darrell Brunsch - - * ace/config-all.h: - * ace/config-win32-common.h: - * bin/generate_export_file.pl: - - Changed the ACE_EXPORT_SINGLETON_DECLARE and - ACE_IMPORT_SINGLETON_DECLARE to take in arguments, but - this time it takes in 3, the singleton type, the class, - and then the lock. So we have: - - ACE_EXPORT_SINGLETON_DECLARE (ACE_Singleton, foo, ACE_Null_Mutex); - -Thu May 4 13:59:58 2000 Darrell Brunsch - - * ace/config-all.h: - * ace/config-win32-common.h: - - Added two new macros, ACE_EXPORT_SINGLETON_DECLARE and - ACE_IMPORT_SINGLETON_DECLARE. They do the same thing as the - *_DECLARATION macros except they do not take arguments. - - So instead of - ACE_EXPORT_SINGLETON_DECLARATION (foo); - you use - ACE_EXPORT_SINGLETON_DECLARE foo; - - This was needed since foo may be a template, and if so, the - comma that can be between multiple arguments causes problems. - - * bin/generate_export_file.pl: - - Now creates the above DECLARE macros in addition to the rest. - -Thu May 4 14:47:09 2000 Nanbor Wang - - * include/makeinclude/platform_freebsd.GNU: Defined BIN_TRUE as - /usr/bin/true. - -Wed May 3 19:35:48 2000 Carlos O'Ryan - - * ace/Log_Msg.cpp: - The implementation of the log_priority_enabled function did not - match its declaration. - -Wed May 3 17:21:50 2000 Darrell Brunsch - - * ace/config-win32-common.h: - - After many reports of not having _MT defined (and then not - quite knowing what to do about it), I felt we needed a bit - more descriptive error and comment. - - * docs/ACE-FMM.html: - * docs/ACE-bug-process.html: - * docs/ACE-development-process.html: - * docs/ACE-guidelines.html: - * docs/ACE-lessons.html: - * docs/ACE-porting.html: - * docs/ACE-subsets.html: - * docs/exceptions.html: - * docs/index.html: (added) - * docs/usage-bugzilla.html: - - Added an index for the files in this directory. Added - backlinks to the other files. - -Wed May 3 18:07:16 2000 Douglas C. Schmidt - - * ace/Malloc_T (memory_pool): Found another bug with SunC++ 5.0... - Moved the ACE_Allocator_Adapter::protect() into the Malloc_T.cpp - file. - -Wed May 3 17:16:12 2000 Ossama Othman - - * ace/Log_Msg.h (log_priority_enabled): - - Corrected use of "ASYS_TCHAR." "ACE_TCHAR" should be used - instead. - -Wed May 3 18:07:16 2000 Douglas C. Schmidt - - * ace/Log_Msg: Added the new log_priority_enabled() method. Thanks - to Ossama for reporting this ;-). - - * include/makeinclude/platform_sunos5_sunc++.GNU (CC_VERSION): - The keywords to check if the version if greater than 5 is "C++" - on Solaris, not "Compilers." Thanks to Rick Weisner - for reporting this. - -Wed May 3 15:08:03 2000 Nanbor Wang - - * include/makeinclude/platform_freebsd.GNU: Changed to set - versioned_so only when building on version 2 of FreeBSD. Thanks - to Henrik Kai for pointing this out. - -Wed May 3 12:31:32 2000 Ossama Othman - - * ace/Makefile.am (INLINE_FILES): - - Removed deprecated inline files from the list. - -Wed May 3 11:59:14 2000 Carlos O'Ryan - - * include/makeinclude/macros.GNU: - * include/makeinclude/rules.common.GNU: - * include/makeinclude/rules.local.GNU: - New target that recusively builds all the IDL - generated files. - -Wed May 3 11:43:05 2000 Douglas C. Schmidt - - * ace/Log_Msg.h: Only call set() in the ACE_{ERROR,DEBUG} macros if - the log_priority_enabled() is non-0, which avoids making - unecessary strcpy() calls. Thanks to Ganesh Pai - for reporting this. - - * ace/Timer_Queue_Adapters (schedule): Make sure to pass - the act to the schedule() method. Also, updated the header file - so that it explains that interval timers aren't implemented. - Thanks to Umar Syyid for reporting these. - -Wed May 3 09:49:57 2000 Jeff Parsons - - * ace/Caching_Utility_T.cpp: - * ace/Map.cpp: - * ace/Pair.cpp: - * ace/Svc_Handler.cpp: - * ace/Win32_Asynch_IO.cpp: - * ace/Win32_Proactor.cpp: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Removed inclusion of non-existent .i files from corresponding - .cpp files and from the project files. - -Tue May 2 19:33:57 2000 Douglas C. Schmidt - - * Updated all the dependencies. - - * ace: Removed all the following files because they were empty and - yet were being #included into various other *.h files, which - slowed down compilation unnnecessarily! Thanks to Espen Harlinn - for reporting this. - * ace/Acceptor.i - * ace/WIN32_Proactor.i: - * ace/WIN32_Asynch_IO.i: - * ace/Token_Invariants.i: - * ace/TLI_Acceptor.i: - * ace/Svc_Handler.i: - * ace/Proactor.i: - * ace/Stream_Modules.i: - * ace/Select_Reactor.i: - * ace/Map.i: - * ace/Priority_Reactor.i: - * ace/Pair.i: - * ace/Hash_Map_Manager.i: - * ace/LSOCK_Acceptor.i - * ace/CORBA_Ref.i: - * ace/Configuration.i: - * ace/Connector.i: - * ace/Cleanup_Strategies_T.i; - * ace/SPIPE_Acceptor.i: - * ace/Trace.i: - * ace/Log_Msg.i: - * ace/IO_Cntl_Msg.i: - * ace/Dynamic_Service.i: - * ace/Caching_Utility_T.i: - * ace/Cached_Connect_Strategy_T.i: - * ace/Asynch_IO.i: - * ace/Asynch_Acceptor.i: - - * ace/OS.i (readdir_r): Apparently the GNU compiler on DEC UNIX - defines a macro for readdir_r() that was breaking things. - Therefore, we #ifdef for that! Thanks to Jean-Marc Strauss - for reporting this. - -Tue May 2 12:48:00 2000 Carlos O'Ryan - - * bin/g++dep: - Use `pwd` instead of $PWD to get the currenct directory because - some shell don't get that one right. - -Tue May 02 13:51:21 2000 David L. Levine - - * bin/create_ace_build: updated comments at top to reflect - the fact that dead symlinks are removed when run on an - existing build tree. - -Tue May 2 10:24:10 2000 Darrell Brunsch - - * bin/auto_compile_win32.pl: - - Fixed a couple of release configurations that were out of date. - -Tue May 2 10:05:21 2000 Darrell Brunsch - - * websvcs/lib/URL_Addr.cpp: - * websvcs/lib/URL_Addr.h: - * websvcs/lib/URL_Addr.i: - * websvcs/lib/websvcs.dsp: - - The changes to the new wchar style wasn't completely correct, - and I missed quite a few LPCTSTRs in the .i file. Also corrected - my earlier attempt at doing the export stuff the "right way". - - Also changed the use of the variable passwd to password. passwd - is also used as a structure so it confused MSVC when used in the - FTP class constructor - -Tue May 2 09:34:31 2000 Steve Huston - - * tests/SOCK_Send_Recv_Test.cpp: Fix signed/unsigned warnings. - -Mon May 1 16:51:07 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Now gets the current directory for the default of ACE_ROOT - instead of using ".". Also only tries compiling files ending - with dsp, not just ones with .dsp in their name (like *.dsp.bak). - Finally, added a print_status options (-s) that will output - status messages to STDERR, so you can see how much far it has - progressed when you are redirecting stdout to a file. - -Mon May 01 12:41:39 2000 Irfan Pyarali - - * ace/Hash_Map_Manager_T.cpp (close_i): Restored freeing of the - table memory which had been mistakenly removed. Thanks to David - for pointing this out. - -Mon May 1 10:27:48 2000 Darrell Brunsch - - * bin/auto_compile_win32.pl: - - Some minor changes that should make the Win32 builds clean - ( which I want to see once before bugging Nanbor to switch - to my script :-) ) - -Mon May 01 02:06:02 2000 Nanbor Wang - - * ace/Malloc_T.cpp (avail_chunks): Changed to use do-while loop to - go over all freelist when calculating the avail_chunks to make - sure all nodes in the freelist are accounted for. - doesn't always point to the anchoring Malloc_Header in the - control block. Thanks to Ivan Murphy - for reporting the problem. - - Also we must reduce the header size count by one when - calculating the avail_chunks because each returning allocated - memory chunk takes at least two Malloc_Header's. This change - made the result of more realistic. - - * ace/Malloc.h: Added more documentation explaining how Malloc_T - works. - -Sun Apr 30 23:20:00 2000 Darrell Brunsch - - * ace/SString.h: - - SunCC 5 had problems with ACE_TString when it was typdefed, - but not when it was #defined. - - * ace/ace_wchar.h: - - Noticed I was including tchar.h still, which is no longer - necessary since ACE's use of wchar_t is separate from - tchar.h's. - -Sat Apr 29 20:02:39 2000 Ossama Othman - - * bin/autoconf_compile (BUILD_LIST): - - Remove TAO from the build list. It's autoconf support hasn't - been fully integrated yet. - -Sat Apr 29 19:45:41 2000 Ossama Othman - - * netsvcs/lib/Log_Message_Receiver.cpp (attach, detach): - - Fixed warning that occured when - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES was not defined. - - Use ACE_GUARD{_RETURN} macro instead of naked ACE_Guard. - -Sat Apr 29 19:17:25 2000 Ossama Othman - - * ace-dll.icc: - * ace_dll.dsp: - * ace_lib.dsp: - - These files still referred to the deprecated `inc_user_config.h' - header. The header is now called `config-all.h'. - -Sat Apr 29 19:09:00 2000 Ossama Othman - - * ace/QoS_Manager.h: - - Moved inclusion of one of the ACE headers prior to the check for - ACE_LACKS_PRAGMA_ONCE. The definition of ACE_LACKS_PRAGMA_ONCE - wasn't pulled before the check, so it ended up being defined - twice. - -Sat Apr 29 16:15:29 2000 Ossama Othman - - * bin/autoconf_compile: - * bin/autoconf_compile_wrapper: - - The ACE+autoconf counterparts to the auto_compile* scripts. - These scripts are used to run automatic builds of the ACE's - autoconf support. - -Sat Apr 29 15:59:53 2000 Ossama Othman - - * ace/Makefile.am (HEADER_FILES): - - Removed `inc_user_config.h' from the list of headers. It no - longer exists. - - Added `config-all.h', `ACE_export.h' and `svc_export.h' to the - list of headers. - -Sat Apr 29 17:13:55 2000 Vishal Kachroo - - * ace/Makefile.am: Added the SOCK_Dgram_Mcast_QoS.{cpp,h,i} - -Sat Apr 29 14:49:13 2000 Darrell Brunsch - - * examples/DLL/Newsweek.dsp: - * examples/Threads/barrier1.dsp: - * examples/Threads/barrier2.dsp: - * examples/Threads/cancel.dsp: - * examples/Threads/future1.dsp: - * examples/Threads/future2.dsp: - * examples/Threads/manual_event.dsp: - * examples/Threads/process_mutex.dsp: - * examples/Threads/process_semaphore.dsp: - * examples/Threads/reader_writer.dsp: - * examples/Threads/recursive_mutex.dsp: - * examples/Threads/task_five.dsp: - * examples/Threads/task_four.dsp: - * examples/Threads/task_one.dsp: - * examples/Threads/task_three.dsp: - * examples/Threads/task_two.dsp: - * examples/Threads/test.dsp: - * examples/Threads/thread_manager.dsp: - * examples/Threads/thread_pool.dsp: - * examples/Threads/thread_specific.dsp: - * examples/Threads/token.dsp: - * examples/Threads/tss1.dsp: - * examples/Threads/tss2.dsp: - * examples/Timer_Queue/Async_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Thread_Timer_Queue_Test.dsp: - * examples/Web_Crawler/Web_Crawler.dsp: - * performance-tests/Synch-Benchmarks/synch_driver.dsp: - * performance-tests/Synch-Benchmarks/Base_Test/Base_Test.dsp: - * performance-tests/Synch-Benchmarks/Perf_Test/Perf_Test.dsp: - * performance-tests/Synch-Benchmarks/Synch_Lib/Synch_Lib.dsp: - * websvcs/lib/websvcs.dsp: - * websvcs/tests/Test_URL_Addr.dsp: - - I started to test out my msvc_auto_compile.pl script and after - testing it for the whole thing, found out that I soon ran out - of disk space. By the time I ran out of space, the PCH files - made up 3 GB of disk. So I removed them from these projects. - -Sat Apr 29 14:15:12 2000 Darrell Brunsch - - * bin/clean_dsp.pl: - - Was still some bugs in this script. In general, beware - of using it. There is no guarantess that it does or ever - will work. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - - Having said that, I went and used it on these project files - anyway. Reduced their size by a good 50%. - - * ace/ace_dll_ce.dsp: - - Made the x86 emulation release configuration build correctly - by ingoring default libraries. Also cleaned this dsp, which - had an improvement of 98%. - -Sat Apr 29 13:20:11 2000 Darrell Brunsch - - * apps/drwho/PMS_All.cpp: - * apps/drwho/PMS_Ruser.cpp: - - Was still using some ACE::strecpy, changed to ACE_OS::strecpy. - -Fri Apr 28 21:30:46 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Fixed the build core logic to work correctly when more than - one configuration is specified. - - * bin/vc_filter.pl: - - Now ignores the LINK4089 warnings. We haven't quite figured - out how to fix them yet. - -Fri Apr 28 21:11:32 2000 Darrell Brunsch - - * bin/clean_dsp.pl: (added) - - This script should clean out excess baggage from DSP files. - -Fri Apr 28 13:11:20 2000 Ossama Othman - - * include/makeinclude/platform_linux_lxpthread.GNU: - * include/makeinclude/platform_linux_lxpthreads.GNU: - - Renamed `platform_linux_lxpthread.GNU' to - platform_linux_lxpthreads.GNU to be consistent with the name of - its corresponding config header `config-linux-lxpthreads.h'. - Thanks to Ken Weinert for reporting this. - - `platform_linux_lxpthread.GNU' now includes the newly renamed - file for backward compatibility. - -Fri Apr 28 11:54:21 2000 Douglas C. Schmidt - - * ace/SString.cpp: Fixed the delimiter_replace() method so that - it actually does what it's comment implies... Thanks to Martin - Krumpolec for reporting this. - -Thu Apr 27 18:19:19 2000 James Hu - - * ace/Dirent.i: Added checks to see if dirp_ is initialized - before calling into ACE_OS. - -Thu Apr 27 16:53:49 2000 Irfan Pyarali - - * ace/Hash_Map_Manager_T.cpp (unbind_all_i): Added new method - unbind_all() for removing all the entries in one shot. Thanks - to Boris Sukholitko for providing this - enhancement. - - * tests/Hash_Map_Manager_Test.cpp: Added test for unbind_all(). - -Thu Apr 27 14:17:52 2000 Darrell Brunsch - - * ace/OS.i: - - isatty (): Messed up on my CE change, so the version that - takes an int was hidden by a ACE_WIN32 block. This has been - moved outside again. - - * ace/OS.cpp: - - Weird, somehow part of a section that should have been removed - with the CE changes was still present. Removed again. - -Thu Apr 27 13:08:00 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Changed the code style and made it consistent. - - Also changed the core build to build all of the orbsvcs and - do the static builds in the right order. - - * ace/OS.cpp: - * ace/OS.i: - - For some reason, I had trouble with the libraries when the - ACE_Cleanup destructor was in the .i file. So I moved it to - the .cpp file instead. - - * ace/ace_dll.dsp: - - Was defining ACE_ACE_HAS_DLL=1, which is #1, not needed and, - #2, the wrong macro name. - - * ace/ace_lib.dsp: - - Changed the static configs to be of type Win32 Static Release/ - Debug instead of Win32 Release/Debug. - - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf_lib.dsp: - - Added Win32 Static Release/Debug configs. - -Thu Apr 27 14:32:45 2000 Douglas C. Schmidt - - * ACE-INSTALL (make): Updated the documentation. Thanks to - Ken Weinert for reporting this. - -Thu Apr 27 12:41:42 2000 James C. Hu - - * ace/OS.i: - * ace/OS.cpp: - * ace/config-freebsd-pthread.h: - * ace/README: - - Removed ACE_HAS_TIME_R in favor of using existing - mechanism of ACE_HAS_REENTRANT_FUNCTIONS, and then - adding ACE_LACKS_NETDB_REENTRANT_FUNCTIONS and - also ACE_LACKS_PWD_REENTRANT_FUNCTIONS. Created a - new lacks called ACE_LACKS_RAND_REENTRANT_FUNCTIONS - to match the previous two. FreeBSD can now use its - native *time_r functions. - -Thu Apr 27 10:55:11 2000 Darrell Brunsch - - These changes bring the Windows CE port up to date. It currently - supports Windows CE 2.11 on the H/PC Pro. I am looking into the 2.11 - P/PC port, but there are other problems with it still. Hopefully - the WinCE 3.0 SDK will be more mature. - - * ace/ace_dll_ce.dsp: (added) - * ace/ace_ce_dll.dsp: (removed) - * ace/ace_ce.dsw: - - Created a new dsp file from scratch from CE to see how the - toolkit sets up the projects. Removed the old one. - - * ace/ACE.cpp: - - format_hexdump (): Changed usage of isprint to ACE_OS::ace_isprint. - - get_ip_interfaces (): Changed use of deprecated ACE_TEXT_STRING to - ACE_TString. Also added an ACE_TEXT_CHAR_TO_TCHAR to a use - of the ACE_INET_Addr constructor. - - * ace/ARGV.cpp: - - create_buf_from_queue (): We were not adjusting the size of a - ACE_TCHAR buffer by sizeof ACE_TCHAR when we did a memcopy. - Thanks to Valery Arkhangorodsky - for reporting this. - - * ace/Memory_Pool.cpp: - - seh_selector (): Changed use of LPEXCEPTION_POINTERS to - EXCEPTION_POINTERS * since it seems like that definition is - missing in some WinCE configs. - - * ace/ace_wchar.h: - - Added deprecated definition of ACE_TEXT_STRING. - - convert (): Changed the conversions from CharToOem to - MultiByteToWideChar, since it is more widely supported in Win32. - Also removed the loading of user32.lib since it was only needed - for CharToOem. - - * ace/config-win32-common.h: - - Changed the _MT check so it doesn't do anything on CE. Some - CE targets do not have the Multithreaded DLL generation option. - - * ace/config-WinCE.h: - - Changed ACE_DEFAULT_LD_SEARCH_PATH to use ACE_TEXT. - - Added a define for ACE_HAS_WCHAR and a check to always define - ACE_USES_WCHAR. - - Commented out the ACE_HAS_MFC check. - - Defined FILE, since it seems to be missing from CE 2.11 H/PC Pro. - - Added a definition for EXCEPTION_ACCESS_VIOLATION that was in - older SDK's. - - Removed some UNDER_CE < 2.11 defines. < 2.11 CE will not be - supported anymore. - - Removed definition of is_print, since it was moved into ACE_OS. - - Added a definition for the operator placement new, which is - missing when MFC isn't used. - - * ace/OS.h: - - Enabled is_atty for Windows CE. Added ace_isprint and made - ace_isspace an ACE_TCHAR method. - - * ace/OS.i: - - chdir (): NOTSUP on CE 2.11 - - tempnam (): Also NOTSUP on CE 2.11 - - abort (): changed ::exit to exit to get it to compile. - - ace_isspace (): Changed to use ACE_TCHAR, but also made it - NOTSUP on CE 2.11. - - ace_isprint (): Added, but NOTSUP on CE 2.11. - - sema_init (): Needed to cast an void *arg to ACE_mutexattr_t. - - dlsym (): Changed the way ACE declares symbolname so it uses the - right one on Win32 (WinNT always uses char *, CE always uses - wchar_t *). The function still takes in ACE_TCHAR * though. - Thanks to Jeff Greif for reporting this. - - Removed a few global function definitions that were just for - CE (like fwrite, fread, getc, etc.). These are either supported - in newer CE's or is disabled in the ACE_OS methods. - - is_atty (): Enabled on CE. - - * ace/OS.cpp: - - Enabled fopen on CE by using _wfopen (but not sure if this will - work correctly, since on other Win32 platforms we have a lot more - stuff. - - Enabled several printf methods on CE. - - open (): Removed the use of FILE_SHARE_DELETE on CE. - - * ace/Service_Config.i: - - initialize (): Added an ACE_TEXT_CHAR_TO_TCHAR and replaced - an ACE_WIDE_STRING with it also. - - * ace/Svc_Conf.h: - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: - - ace_yyerror (): Takes an ACE_TCHAR * instead of char * now. - Thanks to Valery Arkhangorodsky - for also reporting this. - - * ace/Svc_Conf.l: - * ace/Svc_Conf_l.cpp: - - Changed to use ACE_OS::isatty () and ACE_OS::ace_isprint. - -Thu Apr 27 11:49:52 2000 Douglas C. Schmidt - - * ace/OS.i (memchr): Do not cast away constness when emulating - memchr(). Thanks to Rick Ohnemus - for reporting this. - - * ace/Select_Reactor_Base.cpp (open): The notification pipe handlers - created by the ACE_Select_Reactor_Notify::open were being left - open after fork() and exec(). Thanks to Rick Ohnemus - for reporting this. - -Wed Apr 26 23:47:31 2000 Douglas C. Schmidt - - * ace/Process_Manager.cpp (open): Make sure that the dummy I/O - handle is not inherited by child processes. Thanks to Rick - Ohnemus for reporting this. - -Wed Apr 26 20:32:59 2000 James C. Hu - - * ace/OS.cpp: - * ace/OS.i: - * ace/README: - * ace/config-freebsd-pthread.h: - Added a new define ACE_HAS_TIME_R. FreeBSD supports - *time_r() calls, but not gethostbyname_r, so a new feature - specification was needed to get these functions into - ACE_OS. - -Wed Apr 26 12:21:16 2000 Steve Huston - - * ace/ACE.cpp (send_n_i (ACE_HANDLE, const void *, size_t, int) and - send_n_i (ACE_HANDLE, const void *, size_t): If the send fails - with EWOULDBLOCK, wait for the handle to become writeable again - before retrying the send. Thanks to Edan Ayal - for reporting this. - - * tests/SOCK_Send_Recv_Test.cpp: Added test 3 for send_n to verify - fix for writing to nonblocking handle. - -Wed Apr 26 08:43:21 2000 Darrell Brunsch - - * apps/drwho/PMC_Flo.cpp: - * apps/drwho/PMC_Usr.cpp: - * apps/drwho/PMS_All.cpp: - * apps/drwho/PMS_Flo.cpp: - * apps/drwho/PMS_Ruser.cpp: - * apps/drwho/PMS_Usr.cpp: - - Was still using ACE::strecpy, changed to ACE_OS::strecpy. - -Tue Apr 25 15:11:41 2000 Carlos O'Ryan - - * THANKS: - Add new member to the list. - -Tue Apr 25 11:35:07 2000 Darrell Brunsch - - * ace/Local_Name_Space.cpp: - - The hash function was using the wrong length of the USHORT16 - string representation. The len_ actually is the length in bytes, - not characters. - -Tue Apr 25 08:57:59 2000 Darrell Brunsch - - * ASNMP/tests/test_config.h: - - Was using XXX_A and XXX_W macros which really do not make sense - anymore. Removed them and replaced with just the XXX macro which - uses ACE_TEXT. - - * examples/Naming/test_multiple_contexts.cpp: - * examples/Naming/test_non_existent.cpp: - * examples/Naming/test_writers.cpp: - * performance-tests/Misc/test_naming.cpp: - * tests/Naming_Test.cpp: - * tests/SString_Test.cpp: - - All of these were still being disabled when ACE_HAS_WCHAR wasn't - defined. Since the naming stuff was changed to work without - ACE_HAS_WCHAR, these were reenabled. - -Tue Apr 25 00:02:08 2000 Douglas C. Schmidt - - * ace/Log_Msg.h (ACE_Log_Msg): Split msg_ostream() into two functions, - one of which allows the delete_ostream_ flag to be reset and the - other that doesn't. Thanks to Boris Sukholitko - for reporting this. - - * ace/Message_Block.i (replace_data_block): If a data block is replaced - with a NULL pointer then don't bother doing certain operations! - Thanks to Boris Sukholitko for - reporting this. - - * ace/OS.i (dlerror): Changed sizeof buf to sizeof buf / sizeof buf[0] - to avoid over-allocating a buffer in the - ACE_TEXT_FormateMessage() function. Thanks to Valery - Arkhangorodsky for reporting this. - - * ace/Service_Repository.cpp: The fini() method was claiming - it was the close() method. Likewise, changed the close() method - so that it keeps decrementing the current_size each time through - the look to allow checking the respository size or doing other - work from inside the fini() call. Thanks to Valery - Arkhangorodsky for reporting this. - -Mon Apr 24 17:44:21 2000 Darrell Brunsch - - * ace/Object_Manager.cpp: - - Ai Carumba! I disabled some stuff here a while back when - I first disabled the Naming Service, but forgot to enable - it again once I fixed that. - -Mon Apr 24 16:44:22 2000 Darrell Brunsch - - * ace/SString.i: - - A couple of compilers were having problems with some - casting I was doing in a const hash method. Changed the - types of casts to hopefully make the compilers happy. - -Mon Apr 24 10:04:51 2000 Darrell Brunsch - - * ace/OS.cpp: - - Another problem with a missing parenthesis. - -Mon Apr 24 09:15:03 2000 Darrell Brunsch - - * ace/OS.i: - - Forgot a couple of ')'s that showed up on Lynx builds. - - Also, ACE_const_char doesn't exist, ACE_const_cast does. - -Sun Apr 23 19:51:41 2000 Darrell Brunsch - - * ace/ACE.cpp: - * ace/Naming_Context.cpp: - * ace/SOCK_Dgram_Mcast_QoS.cpp: - - Just tried the ACE_USES_WCHAR build and there were a couple - of things that needed updating. Mainly some missing ACE_TEXT's - or char's used instead of ACE_TCHAR's. - - * tests/Process_Mutex_Test.cpp: - - Was still using an old ACE_DEFAULT_MUTEX_A macro (updated to - ACE_DEFAULT_MUTEX). - - * ace/ace_lib.dsp: - - Added "static" to the config names (Win32 Debug => Win32 Static - Debug) so it is easier for the msvc_auto_compile.pl script to - figure out which is which. - -Sun Apr 23 18:14:33 2000 Darrell Brunsch - - * ace/ace_wchar.h: - - Added compatibility for all the old ASYS_* macros by default. - But no part of ACE/TAO should still use them anymore. This - compatibility can be turned off by defining - ACE_ONLY_LATEST_AND_GREATEST. - - * ace/SString.cpp: - * ace/SString.h: - * ace/SString.i: - * ace/Local_Name_Space.cpp: - * ace/Local_Name_Space.h: - * ace/Local_Name_Space_T.h: - * ace/Name_Space.cpp: - * ace/Name_Space.h: - * ace/Naming_Context.cpp: - * ace/Naming_Context.h: - * ace/Remote_Name_Space.cpp: - * ace/Remote_Name_Space.h: - - Found a better way of support for the ACE_Name_Space classes when - there isn't a wchar_t. We now define the ACE_WString to internally - use a type called ACE_WSTRING_TYPE, which is defined to wchar_t - unless ACE_USES_WCHAR is not defined (in which case it is defined - to ACE_USHORT16). - -Sun Apr 23 14:27:11 2000 Darrell Brunsch - - * ace/CLASSIX/CLASSIX_Port.cpp: - * tests/IOStream_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - - Found some old ASYS macros still hanging around in code that wasn't - enabled on NT. - -Sat Apr 22 22:01:15 2000 Darrell Brunsch - - * ace/Local_Name_Space_T.cpp: - * ace/Naming_Context.cpp: - - Fixed some wchar related changes. - -Sat Apr 22 20:53:11 2000 Darrell Brunsch - - This is my first checkin of my Unicode changes. They should be - mostly harmless, since most platforms and build do not use Unicode - stuff, in which these changes *should* result in the exact same - behavior as before. - - But, if Unicode was being used, then chances are it is not going - to work without a few changes. A summary of the changes are: - - - Standardized wide char support to the following macros: - - ACE_HAS_WCHAR - if not defined, ACE will not use the type wchar_t - or provide any of the functions that use it. - ACE_USES_WCHAR - if defined, ACE will use wchar_t instead of char - for its strings (but not its buffers). - - This support has been mostly completed, but there are still some - loose ends that need to be cleaned up. - - Note also that even if ACE_USES_WCHAR is defined or not, both - wide and narrow versions of the string operations will be - available. - - - Removed all the ASYS_* macros (besides ASYS_INLINE). So all code - using ASYS_TEXT and ASYS_TCHAR should now use ACE_TEXT and - ACE_TCHAR. And unlike their predecessers, these *will* turn into - wide character versions when ACE_USES_WCHAR is defined. - - - Removed the macros ACE_HAS_WCHAR_TYPEDEFS_USHORT and - ACE_HAS_WCHAR_TYPEDEFS_CHAR since ACE will not depend on what - wchar_t defaults to. - - - Messed around with Windows CE support, most likely it broke it - even more. I've halted my work on Windows CE until after this - change, so I'll be fixing it up in upcoming checkins. - - - Since ACE_WString was changed, everything using it will now - not be available when ACE_HAS_WCHAR is not defined. - - The motivation for this change was that the Unicode support was - a mess and was very unintuitive. Since I was given the job of - maintaining it (since I'm doing Windows CE stuff now), I decided - to fix it instead of try to figure out what was currently - happening. A consistent design is much easier to explain and - maintain. - - * ace/ACE.h: - * ace/ACE.i: - * ace/ACE.cpp: - * ace/ARGV.cpp: - - Removed ACE's strecpy since all it did was call ACE_OS's strecpy. - - * ace/ace_wchar.h: (added) - - Moved all the unicode specific stuff here. - - * ace/SString.cpp: - * ace/SString.h: - * ace/SString.i: - - ACE_WString used to use ACE_USHORT16 instead of wchar_t. I - changed it so it does, since it will be more useful and intuitive - this way. - - * ace/Log_Record.cpp: - - We were using ACE_OS::fwrite to print the string. This didn't work - when the string was wchar_t, so this was changed to ACE_OS::fprintf - instead. - - * TODO: - * acconfig.h: - * configure.in: - * ace/ACE.cpp: - * ace/ACE.h: - * ace/ACE.i: - * ace/ARGV.cpp: - * ace/ARGV.h: - * ace/ARGV.i: - * ace/ATM_Addr.cpp: - * ace/ATM_Addr.h: - * ace/ATM_Connector.i: - * ace/ATM_QoS.cpp: - * ace/Acceptor.cpp: - * ace/Acceptor.h: - * ace/Activation_Queue.cpp: - * ace/Addr.cpp: - * ace/Arg_Shifter.cpp: - * ace/Arg_Shifter.h: - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_IO.cpp: - * ace/Based_Pointer_T.cpp: - * ace/Basic_Types.h: - * ace/CORBA_Handler.cpp: - * ace/Cache_Map_Manager_T.cpp: - * ace/Cached_Connect_Strategy_T.cpp: - * ace/Caching_Strategies_T.i: - * ace/Capabilities.cpp: - * ace/Capabilities.h: - * ace/Capabilities.i: - * ace/Configuration.cpp: - * ace/Configuration.h: - * ace/Connector.cpp: - * ace/Connector.h: - * ace/Containers_T.cpp: - * ace/DEV_Addr.cpp: - * ace/DEV_Addr.h: - * ace/DEV_Addr.i: - * ace/DEV_Connector.i: - * ace/DLL.cpp: - * ace/DLL.h: - * ace/Dirent.h: - * ace/Dirent.i: - * ace/Dynamic_Service.cpp: - * ace/Dynamic_Service.h: - * ace/Env_Value_T.h: - * ace/Env_Value_T.i: - * ace/FIFO.cpp: - * ace/FIFO.h: - * ace/FIFO.i: - * ace/FIFO_Recv.cpp: - * ace/FIFO_Recv.h: - * ace/FIFO_Recv_Msg.cpp: - * ace/FIFO_Recv_Msg.h: - * ace/FIFO_Send.cpp: - * ace/FIFO_Send.h: - * ace/FIFO_Send_Msg.cpp: - * ace/FIFO_Send_Msg.h: - * ace/FILE_Addr.cpp: - * ace/FILE_Addr.h: - * ace/FILE_Addr.i: - * ace/FILE_Connector.cpp: - * ace/FILE_Connector.i: - * ace/Filecache.cpp: - * ace/Filecache.h: - * ace/Functor.h: - * ace/Functor.i: - * ace/Future.cpp: - * ace/Get_Opt.cpp: - * ace/Get_Opt.h: - * ace/Handle_Set.cpp: - * ace/Hash_Map_Manager_T.cpp: - * ace/Hash_Map_Manager_T.i: - * ace/High_Res_Timer.cpp: - * ace/High_Res_Timer.h: - * ace/INET_Addr.cpp: - * ace/INET_Addr.h: - * ace/INET_Addr.i: - * ace/IO_SAP.cpp: - * ace/IPC_SAP.cpp: - * ace/LSOCK.cpp: - * ace/LSOCK_CODgram.cpp: - * ace/LSOCK_Connector.cpp: - * ace/LSOCK_Dgram.cpp: - * ace/Local_Name_Space.cpp: - * ace/Local_Name_Space.h: - * ace/Local_Name_Space_T.cpp: - * ace/Local_Name_Space_T.h: - * ace/Local_Tokens.cpp: - * ace/Local_Tokens.h: - * ace/Local_Tokens.i: - * ace/Log_Msg.cpp: - * ace/Log_Msg.h: - * ace/Log_Record.cpp: - * ace/Log_Record.h: - * ace/Log_Record.i: - * ace/MEM_Acceptor.cpp: - * ace/MEM_Acceptor.h: - * ace/MEM_Acceptor.i: - * ace/MEM_Addr.cpp: - * ace/MEM_Addr.h: - * ace/MEM_Addr.i: - * ace/MEM_Connector.cpp: - * ace/MEM_SAP.cpp: - * ace/MEM_SAP.h: - * ace/Malloc.cpp: - * ace/Malloc_T.cpp: - * ace/Malloc_T.h: - * ace/Malloc_T.i: - * ace/Map_Manager.cpp: - * ace/Map_Manager.i: - * ace/Mem_Map.cpp: - * ace/Mem_Map.h: - * ace/Mem_Map.i: - * ace/Memory_Pool.cpp: - * ace/Memory_Pool.h: - * ace/Message_Block.cpp: - * ace/Message_Queue.cpp: - * ace/Message_Queue_T.cpp: - * ace/Module.cpp: - * ace/Module.h: - * ace/Module.i: - * ace/NT_Service.cpp: - * ace/NT_Service.h: - * ace/NT_Service.i: - * ace/Name_Proxy.cpp: - * ace/Name_Request_Reply.cpp: - * ace/Name_Space.cpp: - * ace/Name_Space.h: - * ace/Naming_Context.cpp: - * ace/Naming_Context.h: - * ace/OS.cpp: - * ace/OS.h: - * ace/OS.i: - * ace/Object_Manager.cpp: - * ace/Obstack.cpp: - * ace/Obstack.h: - * ace/POSIX_Asynch_IO.cpp: - * ace/Parse_Node.cpp: - * ace/Parse_Node.h: - * ace/Pipe.cpp: - * ace/Proactor.cpp: - * ace/Process.cpp: - * ace/Process.h: - * ace/Process.i: - * ace/Process_Manager.cpp: - * ace/QoS_Manager.cpp: - * ace/QoS_Session_Factory.cpp: - * ace/QoS_Session_Impl.cpp: - * ace/RB_Tree.cpp: - * ace/RB_Tree.i: - * ace/README: - * ace/Read_Buffer.cpp: - * ace/Registry.cpp: - * ace/Registry.h: - * ace/Registry_Name_Space.cpp: - * ace/Remote_Name_Space.cpp: - * ace/Remote_Name_Space.h: - * ace/Remote_Tokens.cpp: - * ace/Remote_Tokens.h: - * ace/Remote_Tokens.i: - * 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_Bcast.h: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast_QoS.cpp: - * ace/SOCK_Dgram_Mcast_QoS.h: - * ace/SPIPE_Acceptor.cpp: - * ace/SPIPE_Addr.cpp: - * ace/SPIPE_Addr.h: - * ace/SPIPE_Addr.i: - * ace/SPIPE_Connector.cpp: - * ace/SString.cpp: - * ace/SString.h: - * ace/SString.i: - * ace/SV_Message_Queue.cpp: - * ace/SV_Semaphore_Complex.cpp: - * ace/SV_Semaphore_Simple.cpp: - * ace/SV_Shared_Memory.cpp: - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.cpp: - * ace/Service_Config.cpp: - * ace/Service_Config.h: - * ace/Service_Config.i: - * ace/Service_Manager.cpp: - * ace/Service_Manager.h: - * ace/Service_Object.cpp: - * ace/Service_Object.h: - * ace/Service_Object.i: - * ace/Service_Repository.cpp: - * ace/Service_Repository.h: - * ace/Service_Types.cpp: - * ace/Service_Types.h: - * ace/Service_Types.i: - * ace/Shared_Memory_MM.cpp: - * ace/Shared_Memory_MM.h: - * ace/Shared_Memory_MM.i: - * ace/Shared_Object.cpp: - * ace/Shared_Object.h: - * ace/Singleton.cpp: - * ace/Stats.cpp: - * ace/Stats.h: - * ace/Stats.i: - * ace/Strategies_T.cpp: - * ace/Strategies_T.i: - * ace/Stream.cpp: - * ace/Stream.h: - * ace/Stream_Modules.cpp: - * ace/Stream_Modules.h: - * ace/Svc_Conf.h: - * ace/Svc_Conf.l: - * ace/Svc_Conf.y: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - * ace/Svc_Handler.cpp: - * ace/Svc_Handler.h: - * ace/Synch.cpp: - * ace/Synch.h: - * ace/Synch.i: - * ace/Synch_T.cpp: - * ace/Synch_T.h: - * ace/Synch_T.i: - * ace/System_Time.cpp: - * ace/System_Time.h: - * ace/TLI.cpp: - * ace/TLI_Acceptor.cpp: - * ace/TLI_Connector.i: - * ace/TP_Reactor.cpp: - * ace/TP_Reactor.i: - * ace/Task_T.cpp: - * ace/Task_T.h: - * ace/Template_Instantiations.cpp: - * ace/Thread_Manager.cpp: - * ace/Time_Request_Reply.cpp: - * ace/Timeprobe_T.cpp: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_T.cpp: - * ace/Timer_Wheel_T.cpp: - * ace/Token.cpp: - * ace/Token.h: - * ace/Token_Collection.cpp: - * ace/Token_Collection.h: - * ace/Token_Collection.i: - * ace/Token_Invariants.cpp: - * ace/Token_Invariants.h: - * ace/Token_Manager.cpp: - * ace/Token_Manager.h: - * ace/Token_Request_Reply.cpp: - * ace/Token_Request_Reply.h: - * ace/Token_Request_Reply.i: - * ace/Trace.cpp: - * ace/Trace.h: - * ace/UPIPE_Acceptor.cpp: - * ace/UPIPE_Connector.cpp: - * ace/UPIPE_Connector.i: - * ace/WFMO_Reactor.cpp: - * ace/WFMO_Reactor.i: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Proactor.cpp: - * ace/XTI_ATM_Mcast.i: - * ace/config-WinCE.h: - * ace/config-all.h: - * ace/config-ghs-common.h: - * ace/config-tandem.h: - * ace/config-win32-borland.h: - * ace/config-win32-common.h: - * ace/config-win32-msvc.h: - * ace/config-win32-visualage.h: - * ace/CLASSIX/CLASSIX_CLD_Connector.cpp: - * ace/CLASSIX/CLASSIX_CO_Acceptor.cpp: - * ace/CLASSIX/CLASSIX_Port.cpp: - * ace/CLASSIX/CLASSIX_Port.h: - * ace/CLASSIX/CLASSIX_Select_Reactor.cpp: - * apps/Gateway/Gateway/Options.cpp: - * apps/JAWS/PROTOTYPE/JAWS/JAWS.h: - * bin/envinfo.cpp: - * docs/ACE-guidelines.html: - * docs/tutorials/Chap_3/mm.cpp: - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/Connection/blocking/SPIPE-acceptor.h: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/Connection/blocking/SPIPE-connector.h: - * examples/Connection/non_blocking/test_lsock_acceptor.cpp: - * examples/Connection/non_blocking/test_lsock_connector.cpp: - * examples/IPC_SAP/ATM_SAP/CPP-client.cpp: - * examples/IPC_SAP/ATM_SAP/CPP-server.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: - * examples/IPC_SAP/UPIPE_SAP/ex3.cpp: - * examples/Naming/test_multiple_contexts.cpp: - * examples/Naming/test_non_existent.cpp: - * examples/Naming/test_writers.cpp: - * examples/Reactor/WFMO_Reactor/test_console_input.cpp: - * examples/Reactor/WFMO_Reactor/test_directory_changes.cpp: - * examples/Reactor/WFMO_Reactor/test_handle_close.cpp: - * examples/Reactor/WFMO_Reactor/test_registry_changes.cpp: - * examples/Registry/test_registry_iterator.cpp: - * examples/Service_Configurator/Misc/Timer_Service.cpp: - * examples/Service_Configurator/Misc/Timer_Service.h: - * examples/Service_Configurator/Misc/main.cpp: - * examples/Service_Configurator/Misc/main.dsp: - * examples/Web_Crawler/Options.cpp: - * examples/Web_Crawler/Options.h: - * examples/Web_Crawler/URL_Addr.cpp: - * examples/Web_Crawler/URL_Addr.h: - * netsvcs/clients/Logger/indirect_logging.cpp: - * netsvcs/clients/Naming/Client/main.cpp: - * netsvcs/lib/Logging_Strategy.cpp: - * netsvcs/lib/TS_Clerk_Handler.cpp: - * netsvcs/lib/TS_Clerk_Handler.h: - * performance-tests/Misc/test_naming.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - * performance-tests/TCP/tcp_test.cpp: - * tests/ACE_Init_Test.dsp: - * tests/ARGV_Test.cpp: - * tests/Atomic_Op_Test.cpp: - * tests/Auto_IncDec_Test.cpp: - * tests/Barrier_Test.cpp: - * tests/Basic_Types_Test.cpp: - * tests/Buffer_Stream_Test.cpp: - * tests/CDR_File_Test.cpp: - * tests/CDR_Test.cpp: - * tests/Cache_Map_Manager_Test.cpp: - * tests/Cached_Accept_Conn_Test.cpp: - * tests/Cached_Conn_Test.cpp: - * tests/Capabilities_Test.cpp: - * tests/Collection_Test.cpp: - * tests/Conn_Test.cpp: - * tests/DLL_Test.cpp: - * tests/DLL_Test.h: - * tests/DLList_Test.cpp: - * tests/Dynamic_Priority_Test.cpp: - * tests/Enum_Interfaces_Test.cpp: - * tests/Env_Value_Test.cpp: - * tests/FlReactor_Test.cpp: - * 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/High_Res_Timer_Test.cpp: - * tests/IOStream_Test.cpp: - * tests/Lazy_Map_Manager_Test.cpp: - * tests/Log_Msg_Test.cpp: - * tests/MM_Shared_Memory_Test.cpp: - * tests/MT_Reactor_Timer_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/Map_Manager_Test.cpp: - * tests/Map_Test.cpp: - * tests/Mem_Map_Test.cpp: - * tests/Message_Block_Test.cpp: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Message_Queue_Test.cpp: - * tests/Naming_Test.cpp: - * tests/New_Fail_Test.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/Object_Manager_Test.cpp: - * tests/OrdMultiSet_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Priority_Buffer_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Priority_Task_Test.cpp: - * tests/Process_Manager_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Process_Strategy_Test.h: - * tests/RB_Tree_Test.cpp: - * tests/Reactor_Exceptions_Test.cpp: - * tests/Reactor_Notify_Test.cpp: - * tests/Reactor_Performance_Test.cpp: - * tests/Reactor_Timer_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Reader_Writer_Test.cpp: - * tests/Recursive_Mutex_Test.cpp: - * tests/Reverse_Lock_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Test.cpp: - * tests/SPIPE_Test.cpp: - * tests/SString_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/Service_Config_Test.cpp: - * tests/Signal_Test.cpp: - * tests/Sigset_Ops_Test.cpp: - * tests/Simple_Message_Block_Test.cpp: - * tests/Svc_Handler_Test.cpp: - * tests/TSS_Test.cpp: - * tests/Task_Test.cpp: - * tests/Thread_Manager_Test.cpp: - * tests/Thread_Mutex_Test.cpp: - * 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_Queue_Test.cpp: - * tests/TkReactor_Test.cpp: - * tests/Tokens_Test.cpp: - * tests/UPIPE_SAP_Test.cpp: - * tests/Upgradable_RW_Test.cpp: - * tests/XtReactor_Test.cpp: - * tests/test_config.h: - * websvcs/lib/URL_Addr.cpp: - * websvcs/lib/URL_Addr.h: - * websvcs/lib/URL_Addr.i: - * websvcs/tests/Test_URL_Addr.cpp: - - Made all the appropriate changes to support the new wide char - policy. Most changes were macro changes, changing ASYS_* to - ACE_*, changing char's to ACE_TCHAR's, adding in ACE_TEXT ()'s - when necessary, etc. - -Sat Apr 22 18:41:06 2000 Vishal Kachroo - - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_Dgram_Mcast.i: Removed the QoS enabled overloaded - methods. - - * ace/SOCK_Dgram_Mcast_QoS.h: - * ace/SOCK_Dgram_Mcast_QoS.cpp: - * ace/SOCK_Dgram_Mcast_QoS.i: Added this new class that derives from - ACE_SOCK_Dgram_Mcast and handles all the QoS functionality that - was being done by the latter. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added the ace/SOCK_Dgram_Mcast_QoS.{cpp,i,h} - -Fri Apr 21 10:23:19 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Removed all chdir's and fixed a bug with specifying multiple -dir's. - -Fri Apr 21 09:13:20 2000 Carlos O'Ryan - - * websvcs/lib/URL_Addr.cpp: - The URL schemes are supposed to be case insensitive, thanks to - Paul Carreiro for pointing this out. - -Thu Apr 20 21:05:42 2000 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Added a -core for only the core libraries. Also fixed a problem - with specifying incorrect directories and the -DLL/-Debug/etc. - macros. - -Thu Apr 20 18:11:48 2000 Darrell Brunsch - - * examples/DLL/Main.dsp: - * examples/DLL/Newsweek.dsp: - * examples/DLL/Today.dsp - * examples/Configuration/Configuration.dsw: - * examples/Bounded_Packet_Relay/Bounded_Packet_Relay.dsp: - * examples/Configuration/Test.dsp: - * examples/IPC_SAP/ATM_SAP/ATM_SAP.dsw: - * examples/IPC_SAP/ATM_SAP/CPP_client.dsp: - * examples/IPC_SAP/ATM_SAP/CPP_server.dsp: - * examples/IPC_SAP/SOCK_SAP/CPP_memclient.dsp: - * examples/Mem_Map/file-reverse/file_reverse.dsp: - * examples/NT_Service/NT_Service.dsp: - * examples/NT_Service/NT_Service.dsw: - * examples/OS/Process/Process.dsp: - * examples/OS/Process/imore.dsp: - * examples/QOS/client.dsp: - * examples/QOS/server.dsp: - * examples/Reactor/Misc/demuxing.dsp: - * examples/Reactor/Multicast/client.dsp: - * examples/Reactor/Multicast/server.dsp: - * examples/Service_Configurator/Misc/Timer.dsp: - * examples/Service_Configurator/Misc/main.dsp: - * examples/Timer_Queue/Async_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Thread_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Timer_Queue.dsw: - * examples/Web_Crawler/Web_Crawler.dsp: - - Fixed miscellaneous problems with these projects and workspaces. - Some projects were missing from workspaces or listed incorrectly. - Many project didn't have the correct include paths or definitions. - - * examples/Reactor/Proactor/post_completion.dsp: (removed) - - There was already a post_completions.dsp that was being used. - - * examples/OS/Process/imore.cpp: - * examples/OS/Process/process.cpp: - - Changed the type of the variables used with Process::wait from - int to ACE_exitcode. - - * examples/Reactor/WFMO_Reactor/test_abandoned.cpp: - * examples/Reactor/WFMO_Reactor/test_apc.cpp: - - Missing parentheses. - - * Synch-Benchmarks/Synch_Lib/Synch_Lib.dsp: - - Changed the name of the project so win32_auto_compile.pl works - with it properly. - - * bin/msvc_auto_compile.pl: (added) - - This is a new script for autocompiling with MSVC 6. - Eventually this should replace auto_compile_win32.pl. It still - needs more directories added to it and tested before we put it - into production - - * bin/vc_filter.pl: - - Updated to properly color code output from msvc_auto_compile.pl - also. - -Thu Apr 20 09:50:49 2000 Carlos O'Ryan - - * ace/RB_Tree.h: - * ace/RB_Tree.i: - Fixed implementation of the end() method. It should return a - singular iterator that is different from all valid iterator, not - an iterator pointing to the last element in the collection. - -Thu Apr 20 08:53:31 2000 Carlos O'Ryan - - * ace/CDR_Stream.i: - Fixed problem in the align_write_ptr() method. It was optimized - for the case where there was enough room in the current buffer, - but the optimization broke with a previous fix from Feb 29. - -Thu Apr 20 08:40:00 2000 Chris Gill - - * examples/Bounded_Packet_Relay/BPR_Drivers_T.h, - examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp: - Fixed warnings from g++ - -Wed Apr 19 21:53:52 2000 Douglas C. Schmidt - - * examples/Bounded_Packet_Relay: Added some missing template - instantiations and other assorted problems. Thanks to Aoxiang - Xu for reporting these. - -Wed Apr 19 07:04:13 2000 Douglas C. Schmidt - - * ace/Containers_T.cpp (copy_nodes): insert_head() should have - been insert_tail(). Thanks to Umar Syyid for clarifying this. - Also, added some comments to explain what's going on in - insert_tail() since the code was somewhat non-intuitive ;-). - -Wed Apr 19 15:00:44 2000 Carlos O'Ryan - - * apps/Makefile: - * apps/drwho/Makefile: - * performance-tests/Makefile: - * performance-tests/Server_Concurrency/Leader_Follower/Makefile: - * performance-tests/Server_Concurrency/Queue_Based_Workers/Makefile: - More Makefiles that were not in the default compilation path, - added them and update dependencies. - - * bin/Makefile: - * examples/Bounded_Packet_Relay/Makefile: - * examples/QOS/Makefile: - * performance-tests/RPC/Makefile: - * performance-tests/Synch-Benchmarks/Base_Test/Makefile: - * performance-tests/Synch-Benchmarks/Perf_Test/Makefile: - * performance-tests/Synch-Benchmarks/Synch_Lib/Makefile: - * ASNMP/asnmp/Makefile: - * ASNMP/examples/get/Makefile: - * ASNMP/examples/next/Makefile: - * ASNMP/examples/set/Makefile: - * ASNMP/examples/trap/Makefile: - * ASNMP/examples/walk/Makefile: - * ASNMP/tests/Makefile: - Just updated dependencies. More fixes are needed to put them in - the normal compilation path. - - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - They wouldn't compile on platforms that lack context switch - counters in rusage. Conditionally compile that code to avoid - the problem. - -Wed Apr 19 14:09:29 2000 Darrell Brunsch - - * etc/Svc_Conf_l.cpp.diff: Fixed the diff so it generates - the correct Svc_Conf_l.cpp. - -Wed Apr 19 12:48:21 2000 Balachandran Natarajan - - * ace/ACE.cpp: Added a missing pointer in the signature of - ACE::t_rcv_n_i (). - -Wed Apr 19 10:11:23 2000 Darrell Brunsch - - * tests/Atomic_Op_Test.dsp: - * tests/Auto_IncDec_Test.dsp: - * tests/Barrier_Test.dsp: - * tests/Basic_Types_Test.dsp: - * tests/Buffer_Stream_Test.dsp: - * tests/CDR_File_Test.dsp: - * tests/CDR_Test.dsp: - * tests/Cache_Map_Manager_Test.dsp: - * tests/Cached_Accept_Conn_Test.dsp: - * tests/Cached_Conn_Test.dsp: - * tests/Capabilities_Test.dsp: - * tests/Collection_Test.dsp: - * tests/Conn_Test.dsp: - * tests/DLList_Test.dsp: - * tests/Dynamic_Priority_Test.dsp: - * tests/Enum_Interfaces_Test.dsp: - * tests/Env_Value_Test.dsp: - * tests/Future_Set_Test.dsp: - * tests/Future_Test.dsp: - * tests/Handle_Set_Test.dsp: - * tests/Hash_Map_Bucket_Iterator_Test.dsp: - * tests/Hash_Map_Manager_Test.dsp: - * tests/High_Res_Timer_Test.dsp: - * tests/IOStream_Test.dsp: - * tests/Lazy_Map_Manager_Test.dsp: - * tests/MM_Shared_Memory_Test.dsp: - * tests/MT_Reactor_Timer_Test.dsp: - * tests/MT_SOCK_Test.dsp: - * tests/Malloc_Test.dsp: - * tests/Map_Manager_Test.dsp: - * tests/Map_Test.dsp: - * tests/Mem_Map_Test.dsp: - * tests/Message_Block_Test.dsp: - * tests/Message_Queue_Notifications_Test.dsp: - * tests/Message_Queue_Test.dsp: - * tests/Naming_Test.dsp: - * tests/New_Fail_Test.dsp: - * tests/Notify_Performance_Test.dsp: - * tests/Object_Manager_Test.dsp: - * tests/OrdMultiSet_Test.dsp: - * tests/Pipe_Test.dsp: - * tests/Priority_Buffer_Test.dsp: - * tests/Priority_Reactor_Test.dsp: - * tests/Priority_Task_Test.dsp: - * tests/Process_Manager_Test.dsp: - * tests/Process_Mutex_Test.dsp: - * tests/Process_Strategy_Test.dsp: - * tests/RB_Tree_Test.dsp: - * tests/Reactor_Exceptions_Test.dsp: - * tests/Reactor_Notify_Test.dsp: - * tests/Reactor_Performance_Test.dsp: - * tests/Reactor_Timer_Test.dsp: - * tests/Reactors_Test.dsp: - * tests/Reader_Writer_Test.dsp: - * tests/Recursive_Mutex_Test.dsp: - * tests/Reverse_Lock_Test.dsp: - * tests/SOCK_Connector_Test.dsp: - * tests/SOCK_Send_Recv_Test.dsp: - * tests/SOCK_Test.dsp: - * tests/SPIPE_Test.dsp: - * tests/SString_Test.dsp: - * tests/SV_Shared_Memory_Test.dsp: - * tests/Semaphore_Test.dsp: - * tests/Service_Config_Test.dsp: - * tests/Sigset_Ops_Test.dsp: - * tests/Simple_Message_Block_Test.dsp: - * tests/Svc_Handler_Test.dsp: - * tests/TSS_Test.dsp: - * tests/Task_Test.dsp: - * tests/Thread_Manager_Test.dsp: - * tests/Thread_Mutex_Test.dsp: - * tests/Thread_Pool_Reactor_Test.dsp: - * tests/Thread_Pool_Test.dsp: - * tests/Time_Service_Test.dsp: - * tests/Time_Value_Test.dsp: - * tests/Timeprobe_Test.dsp: - * tests/Timer_Queue_Test.dsp: - * tests/Tokens_Test.dsp: - * tests/UPIPE_SAP_Test.dsp: - * tests/Upgradable_RW_Test.dsp: - * tests/pharlap/Atomic_Op_Test.dsp: (added) - * tests/pharlap/Auto_IncDec_Test.dsp: (added) - * tests/pharlap/Barrier_Test.dsp: (added) - * tests/pharlap/Basic_Types_Test.dsp: (added) - * tests/pharlap/Buffer_Stream_Test.dsp: (added) - * tests/pharlap/CDR_File_Test.dsp: (added) - * tests/pharlap/CDR_Test.dsp: (added) - * tests/pharlap/Cache_Map_Manager_Test.dsp: (added) - * tests/pharlap/Cached_Accept_Conn_Test.dsp: (added) - * tests/pharlap/Cached_Conn_Test.dsp: (added) - * tests/pharlap/Capabilities_Test.dsp: (added) - * tests/pharlap/Collection_Test.dsp: (added) - * tests/pharlap/Conn_Test.dsp: (added) - * tests/pharlap/DLList_Test.dsp: (added) - * tests/pharlap/Dynamic_Priority_Test.dsp: (added) - * tests/pharlap/Enum_Interfaces_Test.dsp: (added) - * tests/pharlap/Env_Value_Test.dsp: (added) - * tests/pharlap/Future_Set_Test.dsp: (added) - * tests/pharlap/Future_Test.dsp: (added) - * tests/pharlap/Handle_Set_Test.dsp: (added) - * tests/pharlap/Hash_Map_Bucket_Iterator_Test.dsp: (added) - * tests/pharlap/Hash_Map_Manager_Test.dsp: (added) - * tests/pharlap/High_Res_Timer_Test.dsp: (added) - * tests/pharlap/IOStream_Test.dsp: (added) - * tests/pharlap/Lazy_Map_Manager_Test.dsp: (added) - * tests/pharlap/MM_Shared_Memory_Test.dsp: (added) - * tests/pharlap/MT_Reactor_Timer_Test.dsp: (added) - * tests/pharlap/MT_SOCK_Test.dsp: (added) - * tests/pharlap/Malloc_Test.dsp: (added) - * tests/pharlap/Map_Manager_Test.dsp: (added) - * tests/pharlap/Map_Test.dsp: (added) - * tests/pharlap/Mem_Map_Test.dsp: (added) - * tests/pharlap/Message_Block_Test.dsp: (added) - * tests/pharlap/Message_Queue_Notifications_Test.dsp: (added) - * tests/pharlap/Message_Queue_Test.dsp: (added) - * tests/pharlap/Naming_Test.dsp: (added) - * tests/pharlap/New_Fail_Test.dsp: (added) - * tests/pharlap/Notify_Performance_Test.dsp: (added) - * tests/pharlap/Object_Manager_Test.dsp: (added) - * tests/pharlap/OrdMultiSet_Test.dsp: (added) - * tests/pharlap/Pipe_Test.dsp: (added) - * tests/pharlap/Priority_Buffer_Test.dsp: (added) - * tests/pharlap/Priority_Reactor_Test.dsp: (added) - * tests/pharlap/Priority_Task_Test.dsp: (added) - * tests/pharlap/Process_Manager_Test.dsp: (added) - * tests/pharlap/Process_Mutex_Test.dsp: (added) - * tests/pharlap/Process_Strategy_Test.dsp: (added) - * tests/pharlap/RB_Tree_Test.dsp: (added) - * tests/pharlap/Reactor_Exceptions_Test.dsp: (added) - * tests/pharlap/Reactor_Notify_Test.dsp: (added) - * tests/pharlap/Reactor_Performance_Test.dsp: (added) - * tests/pharlap/Reactor_Timer_Test.dsp: (added) - * tests/pharlap/Reactors_Test.dsp: (added) - * tests/pharlap/Reader_Writer_Test.dsp: (added) - * tests/pharlap/Recursive_Mutex_Test.dsp: (added) - * tests/pharlap/Reverse_Lock_Test.dsp: (added) - * tests/pharlap/SOCK_Connector_Test.dsp: (added) - * tests/pharlap/SOCK_Send_Recv_Test.dsp: (added) - * tests/pharlap/SOCK_Test.dsp: (added) - * tests/pharlap/SPIPE_Test.dsp: (added) - * tests/pharlap/SString_Test.dsp: (added) - * tests/pharlap/SV_Shared_Memory_Test.dsp: (added) - * tests/pharlap/Semaphore_Test.dsp: (added) - * tests/pharlap/Service_Config_Test.dsp: (added) - * tests/pharlap/Sigset_Ops_Test.dsp: (added) - * tests/pharlap/Simple_Message_Block_Test.dsp: (added) - * tests/pharlap/Svc_Handler_Test.dsp: (added) - * tests/pharlap/TSS_Test.dsp: (added) - * tests/pharlap/Task_Test.dsp: (added) - * tests/pharlap/Thread_Manager_Test.dsp: (added) - * tests/pharlap/Thread_Mutex_Test.dsp: (added) - * tests/pharlap/Thread_Pool_Reactor_Test.dsp: (added) - * tests/pharlap/Thread_Pool_Test.dsp: (added) - * tests/pharlap/Time_Service_Test.dsp: (added) - * tests/pharlap/Time_Value_Test.dsp: (added) - * tests/pharlap/Timeprobe_Test.dsp: (added) - * tests/pharlap/Timer_Queue_Test.dsp: (added) - * tests/pharlap/Tokens_Test.dsp: (added) - * tests/pharlap/UPIPE_SAP_Test.dsp: (added) - * tests/pharlap/Upgradable_RW_Test.dsp: (added) - * tests/pharlap/pharlap_tests.dsw: (added) - - Moved all the pharlap configurations to their own dsp files in - their own subdirectory. This was done so those of us who don't - have pharlap can load tests.dsw and do a select all in the Build - All window and only get the relavant builds. - - * tests/run_pharlap_tests.bat: (removed) - * tests/pharlap/run_pharlap_tests.bat: (added) - - Moved this file to the pharlap directory also. - -Wed Apr 19 10:03:10 2000 Carlos O'Ryan - - * ace/SOCK_Stream.i: - The new flag was present but not used in several - methods, just forward them to the ACE::xxx() operation. - -Wed Apr 19 08:18:30 2000 Carlos O'Ryan - - * */Makefile: - Updated all the dependencies - -Wed Apr 19 09:44:14 2000 Jeff Parsons - - * ace/Log_Msg.cpp: - Changed the signature of a (WIN32-specific) call to - send_n, to resolve a function overload ambiguity on NT. - -Wed Apr 19 00:00:29 2000 Irfan Pyarali - - * ace: There are two general use cases of the _n() methods: - - (1) The method keeps looping, until all the data has been - transmitted, or until timeout occurs, or until the handle is - closed. This use case occurs when one does not know how much - data is coming across in the case of a recv(), or one wants to - know exactly how much data was sent in the case of a send(). - And one don't want to treat a premature eof as an error but - wants to know the exact number of bytes that have been - transferred so far. - - (2) In other cases when one knows exactly how much data is - coming across in the case of recv(), or how much data needs to - be transmitted in the case of a send(). Premature closing of the - handle is usually an error. - - By adding an additional parameter to all the _n() - methods, the above two use cases can be distinguished. The - following files were modified: - - - OS - - ACE - - SOCK_Stream - - TLI_Stream - - The other IO classes such as FIFO, MEM_IO, PIPE, etc., should - also include this change. However, they should first get fixed - with respect to timeouts. If comes before - timeouts, ordering of the parameters will get messed up. - - Thanks to Steffen Winther Sorensen for - reporting this second use of the _n() methods. - - * ace/OS.h: t_snd() interface was fixed. The buffer parameter - should be const. - - * ace/ACE: Added support for TLI I/O functions to the ACE class. - -Tue Apr 18 19:08:37 2000 Darrell Brunsch - - * ace/config-all.h: (added) - * ace/inc_user_config.h: (removed) - * ace/Codeset_IBM1047.h: - * ace/NT_Service.h: - * ace/config-win32-common.h: - * ace/OS.h: - - Started moving several of the macros from OS.h to config-all.h. - The plan is to eventually split up OS.h, and config-all is a - place where the macros (which are not specific to any part of - ACE_OS) can go. config-all.h also ate inc_user_config.h. - - * ASNMP/agent/main.cpp: - * ace/iosfwd.h: - * ace/streams.h: - * apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.cpp: - * tests/OrdMultiSet_Test.cpp: - * tests/Time_Value_Test.cpp: - * tests/test_config.h: - - Since inc_user_config.h was eaten, needed to change includes of - it to config-all.h. - - * bin/generate_export_file.pl: (added) - * bin/GenExportH.BAT: (removed) - - Replaced the batch file with a perl file so - - people can generate on other platforms - - it can generate Word_export and WORD_BUILD_DLL - (the batch file couldn't change the case of the key) - - * ace/ACE_export.h: (added) - * ace/svc_export.h: (added) - - Took the existing ACE_Export and ACE_Svc_Export macro and - moved them to separate files. Also tested out the new - generate_export_file.pl. - - * ace/ACE.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/Asynch_Acceptor.cpp: - * ace/Asynch_IO.cpp: - * ace/Asynch_IO_Impl.cpp: - * ace/Auto_IncDec_T.cpp: - * ace/Auto_Ptr.cpp: - * ace/Based_Pointer_Repository.cpp: - * ace/Based_Pointer_T.cpp: - * ace/Basic_Types.cpp: - * ace/CDR_Stream.cpp: - * ace/CORBA_Handler.cpp: - * ace/CORBA_Ref.cpp: - * ace/Cache_Map_Manager_T.cpp: - * ace/Cached_Connect_Strategy_T.cpp: - * ace/Capabilities.cpp: - * ace/Cleanup_Strategies_T.cpp: - * ace/Configuration.cpp: - * ace/Connector.cpp: - * ace/Containers.cpp: - * ace/Containers_T.cpp: - * ace/DEV.cpp: - * ace/DEV_Addr.cpp: - * ace/DEV_Connector.cpp: - * ace/DEV_IO.cpp: - * ace/DLL.cpp: - * ace/Date_Time.cpp: - * ace/Dirent.cpp: - * ace/Dump.cpp: - * ace/Dynamic.cpp: - * ace/Dynamic_Service.cpp: - * ace/Event_Handler.cpp: - * ace/Event_Handler_T.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/Filecache.cpp: - * ace/FlReactor.cpp: - * ace/Functor.cpp: - * ace/Functor_T.cpp: - * ace/Future.cpp: - * ace/Future_Set.cpp: - * ace/Get_Opt.cpp: - * ace/Handle_Set.cpp: - * ace/Hash_Cache_Map_Manager_T.cpp: - * ace/Hash_Map_Manager.cpp: - * ace/High_Res_Timer.cpp: - * ace/INET_Addr.cpp: - * ace/IOStream.cpp: - * ace/IOStream_T.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/Local_Name_Space.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Local_Tokens.cpp: - * ace/Log_Msg.cpp: - * ace/Log_Record.cpp: - * ace/MEM_Acceptor.cpp: - * ace/MEM_Addr.cpp: - * ace/MEM_Connector.cpp: - * ace/MEM_IO.cpp: - * ace/MEM_SAP.cpp: - * ace/MEM_Stream.cpp: - * ace/Malloc.cpp: - * ace/Malloc_T.cpp: - * ace/Managed_Object.cpp: - * ace/Map.cpp: - * ace/Map_Manager.cpp: - * ace/Mem_Map.cpp: - * ace/Memory_Pool.cpp: - * ace/Message_Block.cpp: - * ace/Message_Block_T.cpp: - * ace/Message_Queue.cpp: - * ace/Message_Queue_T.cpp: - * ace/Method_Request.cpp: - * ace/Module.cpp: - * ace/Msg_WFMO_Reactor.cpp: - * ace/Multiplexor.cpp: - * ace/NT_Service.cpp: - * ace/Name_Proxy.cpp: - * ace/Name_Request_Reply.cpp: - * ace/Name_Space.cpp: - * ace/Naming_Context.cpp: - * ace/OS.cpp: - * ace/Object_Manager.cpp: - * ace/Obstack.cpp: - * ace/POSIX_Proactor.cpp: - * ace/Pair.cpp: - * ace/Parse_Node.cpp: - * ace/Pipe.cpp: - * ace/Priority_Reactor.cpp: - * ace/Proactor.cpp: - * ace/Process.cpp: - * ace/Process_Manager.cpp: - * ace/Profile_Timer.cpp: - * ace/QoS_Manager.cpp: - * ace/QoS_Session_Factory.cpp: - * ace/QoS_Session_Impl.cpp: - * ace/Reactor.cpp: - * ace/Read_Buffer.cpp: - * ace/Registry.cpp: - * ace/Registry_Name_Space.cpp: - * ace/Remote_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_Stream.cpp: - * ace/SPIPE.cpp: - * ace/SPIPE_Acceptor.cpp: - * ace/SPIPE_Addr.cpp: - * ace/SPIPE_Connector.cpp: - * ace/SPIPE_Stream.cpp: - * ace/SString.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/Sched_Params.cpp: - * ace/Select_Reactor.cpp: - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.cpp: - * ace/Service_Config.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_SV.cpp: - * ace/Shared_Object.cpp: - * ace/Signal.cpp: - * ace/Singleton.cpp: - * ace/Stats.cpp: - * ace/Strategies.cpp: - * ace/Strategies_T.cpp: - * ace/Stream.cpp: - * ace/Stream_Modules.cpp: - * ace/Svc_Conf.y: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - * ace/Svc_Handler.cpp: - * ace/Synch.cpp: - * ace/Synch_Options.cpp: - * ace/Synch_T.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/TTY_IO.cpp: - * ace/Task.cpp: - * ace/Task_T.cpp: - * ace/Thread.cpp: - * ace/Thread_Manager.cpp: - * ace/Time_Request_Reply.cpp: - * ace/Timeprobe.cpp: - * ace/Timer_Hash.cpp: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Heap.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_List.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Queue.cpp: - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_T.cpp: - * ace/Timer_Wheel.cpp: - * ace/Timer_Wheel_T.cpp: - * ace/TkReactor.cpp: - * ace/Token.cpp: - * ace/Token_Collection.cpp: - * ace/Token_Invariants.cpp: - * ace/Token_Manager.cpp: - * ace/Token_Request_Reply.cpp: - * ace/Trace.cpp: - * ace/Typed_SV_Message.cpp: - * ace/Typed_SV_Message_Queue.cpp: - * ace/UNIX_Addr.cpp: - * ace/UPIPE_Acceptor.cpp: - * ace/UPIPE_Connector.cpp: - * ace/UPIPE_Stream.cpp: - * ace/WFMO_Reactor.cpp: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Proactor.cpp: - * ace/XTI_ATM_Mcast.cpp: - * ace/XtReactor.cpp: - * include/makeinclude/ace_flags.bor: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - - The definition of ACE_BUILD_DLL was moved from the .cpp files - to the project files - so it is now handled like most of the - other libraries in ACE and TAO. - -Tue Apr 18 21:32:21 2000 Douglas C. Schmidt - - * ace/OS.i (sema_init): Fixed another problem that required - a cast to ACE_mutexattr_t *. Thanks to Priyanka for - reporting this. - -Tue Apr 18 19:39:41 2000 Douglas C. Schmidt - - * ace/Synch.cpp, - * ace/OS.cpp: Added a cast to ACE_mutexattr_t *. Thanks to - Darrell for pointing this out. - -Tue Apr 18 15:18:53 2000 Douglas C. Schmidt - - * ace/OS.h, - * ace/OS.i, - * ace/Synch.h, - * ace/Synch.cpp: Updated the ACE_OS::*mutex_init() methods (and the - corresponding ACE_Thread_Mutex, ACE_Mutex, and - ACE_Recursive_Thread_Mutex classes) so that they now take an - optional ACE_mutexattr_t * rather than just a void *. This is - nice because it makes it possible to pass in special attributes, - such as the mutex prioceiling attribute, to the underlying - pthreads mutex (assuming we're running on pthreads, of course). - Thanks to lafortg@res.raytheon.com for motivating this. - - * ace/Containers_T.cpp (copy_nodes): Added a call to the - allocator->malloc() rather than new. Thanks to Umar Syyid - for reporting this. - -Tue Apr 18 14:06:32 2000 Jeff Parsons - - * ace/CDR_Stream.cpp: - Patch to ACE_CDR::consolidate() sent in by Carlos, that - fixes a bug reported by Harald Finster , - and an added check for 0 value of the 'length' arg in - read_array() and write_array(), that fixes [Bug 540], - reported by Mathew Samuel . - -Tue Apr 18 11:47:57 2000 Ossama Othman - - * ace/SOCK_Connector.cpp: - - Removed inclusion of `ace/Handle_Set.h'. The ACE_SOCK_Connector - doesn't directly use an ACE_Handle_Set. - - * ace/Makefile: - - Updated dependencies. - -Tue Apr 18 08:54:04 2000 Darrell Brunsch - - * bin/vc_filter.pl: - - Brand spankin' new filter script for Win32 auto build results. - -Sun Apr 16 22:24:34 2000 Douglas C. Schmidt - - * ACE-INSTALL.html: Updated the link for GNU make to be more - specific. Thanks to Xiaojun Wu for - reporting this. BTW, Xiaojun was the 900th contributor to - ACE+TAO, so he gets a free copy of ACE+TAO! - -Mon Apr 17 20:10:18 2000 Vishal - - * ACE version 5.1.1 released. - -Mon Apr 17 16:33:17 2000 Ossama Othman - - * acconfig.h (ACE_LACKS_ACE_OTHER, ACE_LACKS_ACE_SVCCONF, - ACE_LACKS_ACE_TOKEN): - - Added support for these macros. They are used when enabling - subsetting. - - * configure.in: - - lseek64() and llseek() test has been moved to - `m4/acinclude.m4'. - - Include `sys/types.h' when running the TLI/XTI tests. Some - platforms use typedefs such as "ulong" but such typedefs may not - be defined in the TLI/XTI headers. - - (ACE_HAS_BROKEN_T_ERROR): - - Corrected test for broken t_error(). A variable, "errmsg" was - being passed to the t_error() call in the test, but the variable - was declared as "ace_errmsg." Thanks to Roland Gigler - for pointing this out. - - (ACE_MAJOR, ACE_MINOR, ACE_BETA): - - If any of these variables is evaluates to the empty string, then - set it to zero. This fixes a problem that was occuring when the - the ACE version contained no beta number (e.g. "5.1" instead - "5.1.0"). Libtool didn't like the fact that one of the numbers - was an empty string. - - * ace/Makefile.am (libACE_IPC_la_SOURCES, libACE_Other_la_SOURCES, - HEADER_FILES, INLINE_FILES): - - Synchronized the sources associated with these Makefile - variables with those in the classical ACE Makefile. - - * m4/acinclude.m4 (ACE_CHECK_LSEEK64): - - Moved checks for lseek64() and llseek() from configure.in to - this file. The beginnings of a test for a 64 bit offset type - have also been added, but that test is currently not in use. - - * m4/ace.m4 (ACE_COMPILATION_OPTIONS): - - Removed check for exception support in C compiler. It didn't - make too much sense to check for exception support in a C - compiler. - - Since exception support is disabled by default, make sure - "-fno-exceptions" is set when using g++ with the default ACE - exception configuration value. - - * m4/compiler.m4 (ACE_SET_COMPILER_FLAGS): - - Fixed typos where "$GXX" was used instead of "$CXX." "$GXX" is - set to yes when GNU C++ is being used, and "$CXX" is set to the - compiler being used (e.g. "c++"). Thanks to Rich Seibel - for pointing this out. - - This also fixes a problem where "-fcheck-new" wasn't being added - to the C++ flags ($CXXFLAGS). - - * m4/subsets.m4 (ACE_LACKS_ACE_OTHER, ACE_LACKS_ACE_SVCCONF, - ACE_LACKS_ACE_TOKEN): - - When disabling the "Other," "SvcConf" and/or the "Token" subset, - then define the corresponding preprocessor macro. - -Sat Apr 15 21:49:04 2000 Darrell Brunsch - - * ace/ACE.cpp: - * apps/Gateway/Gateway/Options.cpp: - - Nick Pratt reported two cases where - we were using sizeof some_string to figure out its length. This - of course doesn't work when the string is a wide string, so they - have been changed to account for the character size. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf_lib.dsp: - - Changed around the order of the configurations so that in the - default case (such as out of the box) the regular Debug version - will be the current configuration. - -Sat Apr 15 19:35:57 2000 Darrell Brunsch - - (On behalf of Christopher Kohlhoff ) - - * ace/Makefile.bor: - - Added new file QoS_Manager.cpp. - - * ace/Basic_Types.h: - * ace/Timer_Queue_Adapters.h: - - Added missing pre/post includes. - - * include/makeinclude/ace_flags.bor: - * include/makeinclude/build_example.bor: - - Updated for new orbsvcs libraries. - -Sat Apr 15 18:17:02 2000 Douglas C. Schmidt - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: - Fixed the handle_output() function so that it does the "Right - Thing"[TM] on Windows NT. Win32 Winsock doesn't trigger - multiple "You can write now" signals, so we have to assume that - we can continue to write until we get another EWOULDBLOCK. - Thanks to Nick Pratt - -Thu Apr 13 16:30:01 2000 David L. Levine - - * ace/config-sunos5.7.h: added #undef ACE_NEEDS_LWP_PRIO_SET. - SunOS 5.7 no longer needs it, as shown by - performance-tests/Misc/preempt (run as superuser). Thanks - to John Foresteire - for reporting this. - -Tue Apr 11 21:41:20 2000 Nanbor Wang - - * bin/auto_compile_win32.pl: Updated the lists of - workspaces/projects to build. - -Tue Apr 11 16:15:31 2000 David L. Levine - - * ace/OS.cpp: moved ACE_Thread_Exit::is_constructed_ - definition so that it's seen on all platforms, not just - those that are ACE_MT_SAFE. Fixes: - Mon Apr 10 07:30:22 2000 John Rodgers - Thanks to Vishal for reporting it. - -Tue Apr 11 13:57:11 2000 Douglas C. Schmidt - - * ace/Synch_T.cpp: Make sure to cast the "type" argument to - "short" to avoid overload confusions by certain compilers. - Thanks to Charles Taurines for reporting - this. - -Tue Apr 11 12:52:04 2000 Vishal Kachroo - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): Removed the #ifdef - for template instantiation. - -Tue Apr 11 11:32:03 2000 Chad Elliott - * bin/ACEutils.pm - - Refactored duplicate test code into ACEutils.pm - -Mon Apr 10 19:45:32 2000 Vishal Kachroo - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): Added a #ifdef to - get past a g++ error. I am looking into the right way to - do this. - -Mon Apr 10 17:37:53 2000 Nanbor Wang - - * ace/config-freebsd-pthread.h: Addplied John Aughey - 's patch for FreeBSD 4.0. - -Mon Apr 10 07:30:22 2000 John Rodgers - - * ace/OS.{h,cpp},Thread_Manager.cpp (instance,~ACE_Thread_Exit): - added a state variable, is_constructed_, to ACE_Thread_Exit. - instance () sets it, ~ACE_Thread_Exit () clears it. This - allows ACE::init () to be called after ACE::fini (), because - a new ACE_Thread_Exit instance will be created. [Bug 526] - -Sun Apr 9 14:16:23 2000 James CE Johnson - - * docs/tutorials/015/page01.html : Thanks to Conrad Hughes for - pointing out that a real implementation would compress before - encrypting since encrypted data shouldn't really be compressible - anyway. - - * docs/tutorials/015/Protocol_Stream.cpp (open): Reorder the - module pushing so that encryption happens before compression. - - * docs/tutorials/015/Crypt.cpp : - * docs/tutorials/015/Compressor.cpp : - Add a few extra bytes when creating the new message blocks. A - real implementation would probably need that. - -Sun Apr 09 00:04:25 2000 Nanbor Wang - - * ace/Malloc_T.cpp (remove): Removed invocation of destructor to - . It is a member of Control_Block and does not - require explicit initialization/destruction. This was causing - ACE not to compile when ACE_HAS_MALLOC_STATS was defined. - Thanks to John Smyder for reporting the - problem. - - * ace/Malloc_T.cpp (open): Removed invocation of contructor to - for the same reason. - -Fri Apr 07 23:32:16 2000 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added QoS_Manager.* into project files. - -Thu Apr 6 07:29:48 2000 Douglas C. Schmidt - - * ace/Token.h (ACE_Token): Clarified the recursive semantics of - ACE_Token. Thanks to Antti Valtokari - for reporting this. - -Wed Apr 5 22:59:58 2000 Douglas C. Schmidt - - * ace/config-sunos5.5.h: Moved the ACE_HAS_USING_KEYWORD into - the part of this header file that's enabled when - __SUNPRO_CC_COMPAT >= 5 is defined. Thanks to Susan Liebeskind - for reporting this. - -Tue Apr 4 23:50:02 2000 Douglas C. Schmidt - - * ace/ACE.cpp (sock_error): Changed "int error" to "ssize_t error" - to be consistent... - -Tue Apr 4 20:19:36 2000 - - * ace/Acceptor.cpp: Modified the implementation of - ACE_Acceptor::open() and ACE_Acceptor::accept_svc_handler() so - that the peer acceptor's handle is set into non-blocking mode. - This is a safe-guard against the race condition that can - otherwise occur between the time when indicates - that a passive-mode socket handle is "ready" and when we call - . During this interval, the client can shutdown the - connection, in which case, the call can hang! Thanks - to Irfan for pointing this out. - -Fri Jun 1 13:04:31 2001 Douglas C. Schmidt - - * ace/Makefile: - Removed the moc compiler path definition from ace/Makefile - since it is now in include/makeinclude/wrapper_macros.GNU - Thanks to Hans Utz for - reporting this. - - * include/makeinclude/wrapper_macros.GNU (YACC): Added the moc - compiler path definition to include/makeinclude/wrapper_macros.GNU - Thanks to Hans Utz for - reporting this. - - * ace/Timer_Wheel_T.cpp: Removed check to see if Timer_Wheel was - empty from earliest_time(). - - * ace/Timer_List_T.h, - * ace/Timer_Hash_T.h, - * ace/Timer_Heap_T.h, - * ace/Timer_Queue_T.h, - * ace/Timer_Wheel_T.h: - Added a comment to point out that earliest_time() can only be - called on a non-empty queue. Thanks to Gil Rapaport - for reporting this. - -Tue May 29 17:38:15 2001 Douglas C. Schmidt - - * ace/OS.h: Moved the VMIN and VMAX macros to the right place. - Thanks to Hans Utz for - reporting this. - -Fri Jun 1 16:11:42 2001 Balachandran Natarajan - - * ace/Acceptor.cpp (open): Enabled the socket to be non-blocking - mode in the ACE_Strategy_Acceptor::open () call. Thanks to Singh - Kirat , for reporting this through a problem - in TAO. - -Thu May 31 17:29:33 2001 Ossama Othman - - * tests/Refcounted_Auto_Ptr_Test.cpp: - - Removed duplicate template instantiation. Fixes a build error. - -Thu May 31 15:25:19 2001 Steve Huston - - * ace/Refcounted_Auto_Ptr.i (ACE_Refcounted_Auto_Ptr_Rep::detach): - If the object needs to be deleted, release the guard first to - avoid later unlocking a lock residing in memory that had been - freed and potentially reallocated. Thanks to Steve Witten - for noticing this bug, and Purify for making - it relatively easy to track down. - - * tests/Refcounted_Auto_Ptr_Test.cpp: Rearranged to verify things - which should happen, and improve the logging and thread rundown - sequence. - - * THANKS: Added Steve Witten to the Hall of Fame. - - * ACE-INSTALL.html: Fixed the section about how to build on AIX - to account for the new ace.icc file, and Visual Age C++ 5. - -Thu May 31 08:59:00 2001 Craig Rodrigues - - * ace/config-g++-common.h: - - Only define ACE_LACKS_AUTO_PTR for gcc versions <= 2.91 - -Wed May 30 23:54:27 2001 Yamuna Krishnamurthy - - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - - Fixed the subscribe method so things worked even when no qos - was specified. - -Wed May 30 11:13:16 2001 Ossama Othman - - * ace/Singleton.cpp (instance): - - Integrated David's suggested changes that deal with potential - problems related to registering Singletons in the presence of - multiple ACE_Object_Manager instances. - -Wed May 30 00:37:57 2001 Ossama Othman - - * ace/Singleton.cpp (instance): - - Fixed memory leak that occured due to the singleton instance not - being registered with the ACE_Object_Manager when built without - thread support. Thanks to Kitty and David for helping with - this problem. - -Tue May 29 15:06:48 2001 Ossama Othman - - * include/makeinclude/platform_linux.GNU (CFLAGS, CPPFLAGS): - - Do not set preprocessor flags in the "CFLAGS" variable. They - should instead be set in the CPPFLAGS variable. The - preprocessor need not be the same as the compiler! - -Mon May 28 18:11:20 2001 Douglas C. Schmidt - - * ace/OS.i (mutex_init): Using pthreads and passing attributes - into mutex_init(), the function will always fail because the - local variable result is initialized to -1 and then tested - against 0. Thanks to Brodie Thiesfield - for this fix. - -Tue May 29 13:08:33 2001 Phil Mesnier - - * ace/Process.i (handle_inheritence): - * ace/Process.h: - - Exposed the interface for handle_inheritence to non-win32 builds to - allow it to be used as part of the solution to bug 902. Since this is - a win32 only feature, the method will invoke the NOTSUP macro to - document its use, but failure is benign, returning 0. This is part 3 - of the 3 part solution to bug 902. - -Mon May 28 18:43:51 2001 Steve Huston - - * tests/Thread_Pool_Reactor_Resume_Test.icc: Visual Age C++ config - for this new test. - - * tests/tests.icp: Added Thread_Pool_Reactor_Resume_Test.icc. - - * include/makeinclude/platform_aix_ibm.GNU: Added $(ACELIB) to - LIBS to get netsvcs stuff to build clean. Thanks to Erik - Toubro Nielsen for this fix. - - * THANKS: Added Erik Nielsen. - -Mon May 28 14:44:29 2001 Steve Huston - - * ace/Timer_Heap_T.{h cpp}: Add new member, cur_limbo_ to keep track - of timer entries removed from the heap, but not reclaimed (caller - must call either reschedule() or free_node() to finish up the - work). - - * ace/Timer_Queue_T.cpp (expire): When expiring a ACE_Timer_Node, - either reschedule it or free it prior to doing the upcall. - This necessitates having a copy of the TYPE element, not a - reference. In the vast majority of cases, this is an - ACE_Event_Handler pointer, and should make no difference in - performance. - -Sat May 27 10:40:27 2001 Yamuna Krishnamurthy - - * ace/QoS/QoS_Session_Impl.cpp: - - Added an adhoc fix for propagating the right service type when - a PATH message is received. - -Sat May 26 16:36:27 2001 Krishnakumar B - - * bin/auto_run_tests.lst: - - Switched off TAO/examples/PluggableUDP/tests/Basic/run_test.pl - from the Single Threaded builds. Added - TAO/examples/PluggableUDP/tests/SimplePerformance/run_test.pl - instead to run on all the builds. - -Fri May 25 20:51:33 2001 Christopher Kohlhoff - - * netsvcs/build.bor: - Changed contents of file back to its original state. - -Fri May 25 13:38:21 2001 Douglas C. Schmidt - - * ace/Message_Block.h: Added a better explanation of what "crunch()" - does. Thanks to Masaoud T. Moonim for - motivating this. - -Fri May 25 19:06:51 2001 Irfan Pyarali - - * ace/Map_T.i (create_key): Added a new method to the maps. This - method allows the user to create a key without binding to the - map. For the linear and hash maps, this call simply forwards to - the key generators. This method is not supported by the active - map since the key encodes the slot position which cannot come - without occupying a slot in the map. - -Fri May 25 08:37:37 2001 Jeff Parsons - - * ace/Message_Block.cpp: - - Fixed an error in ACE_Data_Block::clone, where ACE_NEW_RETURN - is used without a constructor as one of the arguments. Besides, - it is a mistake to allocate, because the call to clone_nocopy - has already done an allocation. All we need to do is check for - a 0 return from clone_nocopy. - -Fri May 25 05:42:39 2001 Douglas C. Schmidt - - * ace/Message_Block.cpp (clone): Make sure to check for memory failure - and return 0 in this case. Thanks to Airat A. Sadreev - for reporting this. - -Thu May 24 22:06:45 2001 Sharath R. Cholleti - - * tests/CDR_Test.cpp: Changed the initialization of WChar variable, to - remove the warning "integer conversion resulted in a change of sign" - by some compilers. - -Thu May 24 20:26:39 2001 Steve Huston - - * ace/Timer_Heap_T.{h cpp}: Fixed some problems in managing the - free timer ID list. - - * ace/Timer_Hash_T.cpp (expire): Changed this to peek at the first - timer node from each table, do reschedule iterative timers, and - do the upcall, then _cancel_ the original, rather than try to - manage a remove_first()/reschedule-or-free sequence. The ID - assigned by the underlying table is not important, since its not - seen by the ACE_Timer_Hash_T caller anyway, and that's the main - impetus for using remove_first/reschedule (or free_node). - - * tests/Timer_Queue_Test.cpp (test_functionality): Added a test - to verify empty timer queue after adding/removing two timers - right at the start. - -Thu May 24 12:15:35 2001 Douglas C. Schmidt - - * ace/OS.h: Added #defines for RTLD_LAZY, RTLD_NOW, RTLD_GLOBAL. - Thanks to Kobi Cohen-Arazi for suggesting - this. - - * ace/OS.h: Updated the ACE_Time_Value class to point out that the - values are in secs and usecs. Thanks to Israel Illescas Gomez - for motivating this. - -Thu May 24 18:08:27 2001 Steve Huston - - * tests/run_test.lst: Re-enable MT_Reactor_Timer_Test. - -Thu May 24 15:34:48 2001 Nanbor Wang - - * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp: Changed to - to avoid warnings on some platforms. is not safe - to use. - -Thu May 24 15:28:19 2001 Krishnakumar B - - * bin/auto_run_tests.lst: - - Removed this test from being run on single-threaded configurations - since this test uses the ACE_Thread_Manager. - -Thu May 24 15:12:16 2001 Krishnakumar B - - * ace/config-tru64.h: - - Added ACE_HAS_NONSTATIC_OBJECT_MANAGER to the default builds to - work around hangs in some of the tests which load a dynamic - library. This fixes some more of the problems reported in Bug Id - 912. - -Thu May 24 13:42:24 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst: We dont have Red Hat 7.0 - anymore. So changed it as Red Hat 7.1. - -Thu May 24 10:51:45 2001 Balachandran Natarajan - - * tests/Thread_Pool_Reactor_Resume_Test.dsp: - * tests/tests.dsw: Files for Win32. - -Thu May 24 10:35:45 2001 Balachandran Natarajan - - * tests/Thread_Pool_Reactor_Resume_Test.cpp - * tests/Thread_Pool_Reactor_Resume_Test.h: A new test that tests - the resumption of handler at the application level. This test is - an adaptation of the famous Thread_Pool_Reactor_Test. - - * tests/Makefile: Added the test for compilation. - * tests/run_test.lst: Added the above test for the nightly - builds. - -Thu May 24 10:26:35 2001 Balachandran Natarajan - - * tao/Event_Handler.cpp: - * tao/Event_Handler.h: A starter for bug #575. Please see the - documentation of bug 575 for details of this change. In short - the Event Handler class has an extra method called - resume_handler (). Applications that use the TP_Reactor and - would like to take control of resuming the handler can overload - this method in their implementation and return a value other - than zero. - - * tao/TP_Reactor.cpp: Added a check by calling the resume_handler - () on the event handler object before resuming the handler. - -Wed May 23 16:35:15 2001 Douglas C. Schmidt - - * ace/Sock_Connect.h, - * ace/Flag_Manip.h, - * ace/config-all.h: Make sure that all ACE include file have a - "ace/" prefix. Thanks to John Lindal for - reporting this. - - * ace/config-win32-common.h: Fixed a problem where FD_SETSIZE wasn't - getting reset properly. Thanks to Roger Tragin - for reporting this. - -Wed May 23 17:37:30 2001 Krishnakumar B - - * bin/auto_run_tests.lst: - * tests/run_test.lst: - - Removed some tests from being run on Single Threaded - Configuration as they were spawning threads. The tests removed - are: - - TAO/performance-tests/AMI_Latency/run_test.pl - TAO/tests/AMI_Timeouts/run_test.pl - and - tests/Logging_Strategy_Test - - This is related to Bug Id 912. - -Wed May 23 17:33:59 2001 Krishnakumar B - - * bin/make_pretty.pl: - - Seems to have missed my previous update. Add the code to remove - the bogus warning associated with SunCC5. Check the ChangeLog - tag Mon May 21 16:37:18 2001 Krishnakumar B - for more. - -Wed May 23 18:22:41 2001 Steve Huston - - * ace/Reactor.cpp (run_reactor_event_loop (ACE_Time_Value&, eh)): - It is possible for rounding/conversion fudges in calculating - the WFMO/select wait time to cause the wait to time out, but the - timer queue be not quite ready to expire the next timer. In this - case, the ACE_Time_Value won't have been reduced to 0, so the - handle_events call is repeated. Fixes Bugzilla # 153. - -Wed May 23 15:55:21 2001 Steve Huston - - * ace/Containers_T.h: Fixed comment directing reader to include - ace/Unbounded_Queue.h (rather than _Set.h) for ACE_Unbounded_Queue. - - * ace/Timer_Heap_T.{cpp h}: Changed the free IDs list from a stack - to a round-robin list. Newly-allocated IDs keep increasing til - there aren't any more, then wrap around to the lowest numbered - free ID and start again. This is a ease-of-use improvement to - help applications catch their timer-related errors easier, - which is apparantly important, especially in multi-threaded - applications. - Also, when remove_first() is called, remove the ACE_Timer_Node - from the heap, but do not release its ID back to the free list. - remove_first() must be followed by a call to reschedule() or - remove(). The latter just reinserts the timer node in the heap, - and the latter cleans up the timer ID. - -Wed May 23 14:41:00 2001 Balachandran Natarajan - - * netsvcs/ACE-netsvcs.html: - * netsvcs/Makefile: - * netsvcs/Makefile.am: - * netsvcs/Makefile.bor: - * netsvcs/README: - * netsvcs/build.bor: Resurrected the files from the repo. - -Wed May 23 11:13:00 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Removed TAO/performance-tests/Latency from the nightly builds. - This test has been superseeded by Single_Threaded_Latency and - friends. In fact it is no longer used to generate performance - results. - This is part of the fixes for [BUGID:324] - -Tue May 23 11:53:24 2001 Paul Calabrese - - * docs/exceptions.html: Fix bad reference to OCI devguide: - the link was broken and the chapter # was incorrect. - -Wed May 23 8:23:20 2001 Yamuna Krishnamurthy - - * ace/QoS/QoS_Session.h: - * ace/QoS/QoS_Session_Impl.h: - * ace/QoS/QoS_Session_Impl.cpp: - - Added a method to propagate the rsvp event type to the application. - -Wed May 23 06:52:44 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst: Moved the FORTE builds to ace. - -Tue May 22 21:57:46 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst: Added NO_AMI_MESSAGING to the - builds. - -Mon May 21 18:34:52 2001 Douglas C. Schmidt - - * include/makeinclude/platform_linux.GNU: Added default macros for: - - PLATFORM_QT_LIBS - PLATFORM_QT_LDFLAGS - PLATFORM_QT_LDFLAGS - - Thanks to Hans Utz for - contributing this. - - * performance-tests/Misc/Makefile (LDLIBS): Added back - -lPerf. Thanks to Hans Utz for - reporting this. - -Mon May 21 16:37:18 2001 Krishnakumar B - - * ace/OS.h: - * ace/Timer_Queue_Adapters.cpp: - * bin/make_pretty.pl: - - Changed the make_pretty script to remove the false warning on - SunCC5. Added documentation in the affected files. This fixes - Bug Id 879. - -Sun May 20 08:48:59 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst: Added FORTE 6.1 to the list. - -Sun May 20 07:37:26 2001 Balachandran Natarajan - - * ace/POSIX_Proactor.cpp: Fixed a compile error with g++. - -Sun May 20 01:38:59 2001 Nanbor Wang - - * ace/config-freebsd-pthread.h: - * ace/POSIX_Proactor.cpp: Applied patches from Russell L. Carter - that introduce FreeBSD 4.3 to AIO - (compiling at least). [Bug 917] - -Sat May 19 10:28:56 2001 Balachandran Natarajan - - * bin/make_pretty.pl: Ignore the mktemp () messages on Linux. - -Fri May 18 20:58:59 2001 Ossama Othman - - * bin/auto_run_tests.lst: - - Added TAO's security tests to the list of tests to run in the - nightly builds. They will only be run on platforms that support - the "SSL" build configuration. - -Fri May 18 14:39:31 2001 Steve Huston - - * ace/config-aix-4.x.h: Removed ACE_LACKS_SETSCHED for AIX 4.3. - Fixes Bugzilla # 47. - - * ace/OS.h: AIX's ACE_THR_PRI_*_{MIN MAX} values are 1 and 127, - respectively. PRIORITY_{MIN MAX} are process priorities, - and the range is not legal for pthread_attr_setschedparam. - - * ace/Makefile.vac: - * tests/Makefile.vac: Use -sev=w instead of -severity=warning - to avoid tripping the scoreboard error detector unnecessarily. - -Fri May 18 10:50:55 2001 Jeff Parsons - - * Configuration.cpp: - - Reverted a change made to the validate_name() function that - added '/' as an illegal character. This breaks the Interface - Repository completely. - -Fri May 18 06:11:49 2001 Douglas C. Schmidt - - * ace/config-cxx-common.h: Changed - # if defined (DIGITAL_UNIX) && DIGITAL_UNIX >= 0x40F - to: - # if defined (DIGITAL_UNIX) && DIGITAL_UNIX >= 0x40D - This gets rid of a very annoying informational message. Thanks - to Steve Vranyes for reporting this - - * ace/config-tru64.h: Changed 0x40E to 0x40D in the check for - DIGITAL_UNIX to disable the use of systime.h. Thanks to - Steve Vranyes for reporting this - and for David Levine for suggesting the fix. - -Thu May 17 23:36:18 2001 Ossama Othman - - * bin/auto_run_tests.lst: - - Added TAO's Request_Interceptor_Flow test to the list of tests - to run in the nightly builds. - -Fri May 18 01:31:47 2001 Irfan Pyarali - - * ace/Timeprobe.h: Reordered the include files: Timeprobe_T.h - should come after Synch.h. Thanks to Bruce McIntosh - for reporting this - problem. - -Fri May 18 00:36:35 2001 Irfan Pyarali - - * ace/Map_Manager.cpp (unbind_all): Added a new method that - unbinds all entries in the map. Also, refactored out some code - into unbind_slot(). - - BTW, this functionality is somewhat redundant since one can also - do the following: - - // Unbind one at a time. - MAP_MANAGER::iterator end = map.end (); - while (1) - { - MAP_MANAGER::iterator iter = map.begin (); - if (iter == end) - break; - map.unbind ((*iter).ext_id_); - } - - However, the following should be much faster: - - // Unbind in one swoop. - map.unbind_all (); - - Another reason to add the unbind_all() is that the method is - available on the other map_managers and that it is now easier to - convert a hash map to a normal map and back without changing any - real code. - - * tests/Map_Manager_Test.cpp (test_map_manager): Added test for - unbind. - - Thanks to Johnny Willemsen for - suggesting this. - -Thu May 17 21:34:28 2001 Douglas C. Schmidt - - * ace/POSIX_Asynch_IO.cpp: Added an ACE_UNUSED_ARG to keep G++ - happy. - -Thu May 17 16:52:17 2001 Priyanka Gontla - - * tests/CDR_File_Test.cpp (run_test): - Modified ACE_OutputCDR instantiation to follow the new modified - constructor. - -Thu May 17 17:01:11 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst: Re-enabled Core and Full builds on - RedHat 7.1. - -Thu May 17 14:36:57 2001 Douglas C. Schmidt - - * ace/Asynch_IO.cpp - ace/Asynch_IO.h - ace/Asynch_IO_Impl.cpp - ace/Asynch_IO_Impl.h - ace/Asynch_IO_Impl.i - ace/POSIX_Asynch_IO.cpp - ace/POSIX_Asynch_IO.h - ace/POSIX_Asynch_IO.i - ace/POSIX_Proactor.cpp - ace/POSIX_Proactor.h - ace/POSIX_Proactor.i - ace/Proactor.cpp - ace/Proactor.h - ace/Proactor_Impl.h - ace/WIN32_Asynch_IO.cpp - ace/WIN32_Asynch_IO.h - ace/WIN32_Proactor.cpp - ace/WIN32_Proactor.h: Added more fixes and improved comments - from Roger Tragin . - - * ace/SString.cpp: Fixed a bug in the check_allocate() method. - Thanks to Wayne Erchak for reporting this. - -Thu May 17 12:16:57 2001 Priyanka Gontla - - * ace/CDR_Stream.h (ACE_InputCDR): - * ace/CDR_Stream.cpp: - Modified so that even the Message_Block_Allocators are also - allocated from TSS memory. The constructor of ACE_OutputCDR - changes. - -Thu May 17 11:51:03 2001 Carlos O'Ryan - - * include/makeinclude/rules.local.GNU: - Removed misuse of CC_OUTPUT_FLAG in the middle of an 'if' shell - statement. Chances are that this was the result of a global - search and replace. Thanks to Cristian Ferretti - for pointing this out. - -Thu May 17 12:43:26 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst: Removed the beguine builds for - some time till we get Redhat machine in place. - -Thu May 17 11:36:02 2001 Douglas C. Schmidt - - * ace/Configuration.cpp: Fixed an inconsistency in the - enumerate_sections() method so that - ACE_Configuration_Win32Registry and ACE_Configuration_Heap will - behave the same. ACE_Configuration_Win32Registry was returning - -2 upon no more sections to enumerate, rather than 1. This is - because it is not checking for a return of ERROR_NO_MORE_ITEMS - from ACE_TEXT_RegEnumKeyEx. Thanks to Kevin Burge - for reporting this. - -Thu May 17 10:46:31 2001 Chad Elliott - - * bin/nightlybuilds/builds.lst: - - Adding the HP-UX 11.00 build back to the list. - -Thu May 17 10:16:03 2001 Douglas C. Schmidt - - * ace/POSIX_Asynch_IO.{h,cpp}: There are some weird inconsistencies - between the declaration and definition of the recv() methods in - ACE_POSIX_SIG_Asynch_Read_Dgram and - ACE_POSIX_AIOCB_Asynch_Read_Dgram. I've made a fix that - compiles, but we need feedback from Roger Tragin to really fix - this... - -Thu May 17 10:00:59 2001 Frank Hunleth - - * ace/Proactor_Impl.h: - Added interfaces for create_asynch_read_dgram_result and - create_asynch_write_dgram_result. - -Thu May 17 06:23:59 2001 Douglas C. Schmidt - - * ace/Proactor_Impl.h: Added two missing factory methods to - ACE_Proactor_Impl. Thanks to Bala for reporting this. - - * ace/WIN32_Proactor.h (ACE_WIN32_Proactor): The signal_number - parameter was missing. Thanks to Andy Gokhale for reporting this. - -Thu May 17 06:23:59 2001 Douglas C. Schmidt - - * ace/Asynch_IO.cpp - ace/Asynch_IO.h - ace/Asynch_IO_Impl.cpp - ace/Asynch_IO_Impl.h - ace/Asynch_IO_Impl.i - ace/POSIX_Asynch_IO.cpp - ace/POSIX_Asynch_IO.h - ace/POSIX_Asynch_IO.i - ace/POSIX_Proactor.cpp - ace/POSIX_Proactor.h - ace/POSIX_Proactor.i - ace/Proactor.cpp - ace/Proactor.h - ace/WIN32_Asynch_IO.cpp - ace/WIN32_Asynch_IO.h - ace/WIN32_Proactor.cpp - ace/WIN32_Proactor.h: Added Async IO support for UDP dgrams - on NT so they can be used via the Proactor. Thanks to - Roger Tragin for contributing this. - -Wed May 16 22:43:19 2001 Steve Huston - - * ace/Synch.i (ACE_Mutex::remove): Properly clean up the shared - memory object and file backing for interprocess mutex. - - * tests/run_test.lst: Added Config_Test so run_test.pl runs it. - -Wed May 16 18:30:42 2001 Steve Huston - - * tests/Config_Test.cpp: Added a test to verify the ability to set - a new integer value. - -Wed May 16 17:05:29 2001 Sharath R. Cholleti - - * ace/CDR_Stream.cpp: - - In ACE_OutputCDR::write_wchar(), casting int to ACE_CDR::Octet and - passing the pointer to that to write_1() instead of casting the - pointers - to avoid little Endian and big Endian issues. Thanks to - Krishnakumar B in tracking this. - - * tests/CDR_Test.cpp: - - Added test for writing and reading ACE_CDR::WChar. - -Wed May 16 14:51:37 2001 Douglas C. Schmidt - - * tests/Config_Test.cpp: Updated this test to include Chris - Hafey's improvements. - - * ace/Configuration.{h,cpp}, - * ace/Configuration_Import_Export.cpp: Added a number of fixes from - Chris Hafey and Jonathan Reis that had been lost when Jerry - Odenwelder added his changes. - -Wed May 16 09:49:29 2001 Steve Huston - - * ace/ACE.cpp (handle_timed_complete): On Win32, interpret exception - handle bit set as failure, regardless of what getsockopt says about - an error. NT always reports 0 for error. - - * tests/SOCK_Connector_Test.cpp: Changed some LM_DEBUG to LM_ERROR and - LM_WARNING to more easily interpret the log file. - -Wed May 16 02:40:00 2001 Michael Kircher - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - - Added the PPC 403 CPU to the list of supported CPUs. - -Tue May 15 20:37:31 2001 Steve Huston - - * ace/Process_Mutex.{h cpp inl}: (Follow up to Thu May 10 change - later reverted on Mon May 14). Changed the preprocessor macros - that select use of ACE_SV_Semaphore_Complex over ACE_Mutex - as the underlying mechanism for ACE_Process_Mutex. If - ACE_HAS_SYSV_IPC is set in config.h, ACE_SV_Semaphore_Complex - is used, unless the new macro ACE_USES_MUTEX_FOR_PROCESS_MUTEX - is also set. If ACE_HAS_SYSV_IPC is not enabled, ACE_Mutex - is used, regardless of any other setting. - Also, doxygen-ized the member function comments. - - * ace/Malloc.h: If ACE_Process_Mutex is to be used with - ACE_HAS_MALLOC_STATS, include ace/Process_Mutex.h, not Synch_T.h. - - * tests/libDLL_Test.icc: Changed this to correctly generate shr.o, - not libDLL_Test.o, for insertion into libDLL_Test.a. This lets - it get picked up correctly from DLL_Test. - -Tue May 15 18:00:49 2001 Steve Huston - - * ace/config-win32-common.h: Added support for a new config macro, - ACE_NO_WIN32_LEAN_AND_MEAN. If this is set, WIN32_LEAN_AND_MEAN - will not be defined before including windows.h. This is needed - when code makes use of non-lean things like COM, which get - included only when WIN32_LEAN_AND_MEAN is not defined. - - * ace/README: Added description of ACE_NO_WIN32_LEAN_AND_MEAN. - - * bin/make_pretty.pl (is_error): Don't report AIX's ld message to - please check the -bloadmap as an error. It gets generated when - there are multiple defines, which we filter out, so we don't - want to see this follow-up message either. - -Tue May 15 10:14:56 2001 Balachandran Natarajan - - * ace/OS.i (mmap): Added an extra check for an empty - string. Thanks to Edan Ayal for reporting - this problem and suggesting an easy fix. - -Mon May 14 22:38:06 2001 Balachandran - - * ACE version 5.1.16 released. - -Mon May 14 14:45:57 2001 Balachandran Natarajan - - * ace/CDR_Stream.h (ACE_InputCDR): Somehow the removed - steal_data () got back into the header file. Removed the - method. - -Mon May 14 11:02:20 2001 Balachandran Natarajan - - * ace/Strategies_T.i: Removed the ACE_ERROR statement from the - destructor of ACE_Accept_Strategy. This created problems when - the destructor was called during shutdown if the object was - statically allocated. Thanks to Jonathan Reis - for reporting this problem. - -Mon May 14 07:48:16 2001 Balachandran Natarajan - - * ace/Process_Mutex.{h,cpp,inl}: Reverted the change "Thu May 10 - 18:37:41 2001 Steve Huston ". The change - was breaking SHMIOP in TAO. - -Fri May 11 10:25:00 2001 Douglas C. Schmidt - - * ace/OS_Dirent.h (ACE_OS_Dirent): Missed a conversion of "DIR" to - "ACE_DIR". - - * ace/Synch.cpp (get_nesting_level): Added better protection for the - case where ACE_HAS_RECURSIVE_MUTEXES -- only return - RecursionCount if ACE_WIN32 is defined. Thanks to Corey Trager - for reporting this. - - * ace/OS.cpp: Reformatted all the ACE_reinterpret_cast() macros so their - arguments are on the same line to avoid tickling a bug with - SunC++'s preprocessor. Thanks to Corey Trager - for reporting this. - -Fri May 11 07:14:50 2001 Balachandran Natarajan - - * tests/CDR_Test.cpp: Reverted this change "Wed May 9 23:19:30 - 2001 Sharath R. Cholleti " - -Fri May 11 06:47:33 2001 Balachandran Natarajan - - * tests/ARGV_Test.cpp: One of those extra ")". - -Fri May 11 06:14:58 2001 Douglas C. Schmidt - - * ace/Dirent.h (ACE_Dirent), - * ace/OS.cpp (uname), - * ace/OS.h (ACE_OS), - * ace/OS.i (hostname), - * ace/OS_Dirent.cpp (readdir_emulation), - * ace/OS_Dirent.h (ACE_OS_Dirent), - * ace/OS_Dirent.inl (ACE_OS_Dirent), - * ace/config-win32-common.h (ACE_LACKS_STRUCT_DIR), - * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp (Notification_Receiver_Handler), - * apps/Orbix-Examples/Logger/Logger.cpp (Logger), - * bin/envinfo.cpp (main), - * examples/Reactor/Multicast/Log_Wrapper.cpp (open), - * performance-tests/Misc/basic_perf.cpp (main), - * tests/Dirent_Test.cpp (main), - * tests/Enum_Interfaces_Test.cpp (main), - * tests/SOCK_Connector_Test.cpp (find_another_host): - Updated all of ACE and its tests to use ACE_DIR rather than DIR - to avoid conflicts with other programs (like Perl) that also - define an enumation with DIR. Thanks to Gonzo Diethelm - for contributing these fixes. - - The following fixes are all thanks to Ingo Dahm - - * ace/config-sunos5.6.h: Added support for SunC++ 5.2. - * ace/IOStream.h: Added support for SunC++ 5.2. - * ace/config-sunos5.8.h: Added Solaris 8 support for native - POSIX RW locks. - * include/makeinclude/platform_sunos5_sunc++.GNU: Added support - for Sun C++ 5.2. - -Thu May 10 19:33:03 2001 Carlos O'Ryan - - * tests/ARGV_Test.cpp: - Fixed argv, it should be an ACE_TCHAR, add missing ACE_TEXT() - and removed superfluous one. - -Thu May 10 18:19:09 2001 Carlos O'Ryan - - * ACE-INSTALL.html: - Add documentation for the mingw support, thanks Cristian Ferretti - for providing this info. - -Thu May 10 16:55:20 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Add the new Latency and Throughput tests to the nightly - regression testsuite. - -Thu May 10 18:37:41 2001 Steve Huston - - * ace/POSIX_Asynch_IO.cpp (ACE_POSIX_Asynch_Result ctor): Added - initializers for bytes_transferred_ and error_. Thanks to - Itzhak Briskman for this fix. - - * THANKS: Added Itzhak Briskman to the Hall of Fame. - Updated David Brock's email address. - - * ace/SString.cpp (ACE_CString::substring): If requesting a substring - longer than the string is, return only what's left. Thanks to - David Brock for reporting this. - - * tests/SString_Test.cpp: Add a substring extraction test to catch - the above problem (returning a substring with more than is left - in the original string). - - * ace/Process_Mutex.{h cpp inl}: Changed the "uses mutex" vs - "uses SV_Semaphore_Complex" decision to make use of a private - macro defined in Process_Mutex.h. Further, the platforms that - use mutexes are now Win32, PSOS, Pthreads, Sthreads. - - * ace/config-sunos5.6.h: - * ace/config-hpux-11.00.h: Added ACE_HAS_SHM_OPEN since these - platforms support shm_open, and ACE_Mutex wants to use it for - cross-process mutexes. - - * ace/Proactor.h: Updated handle_events comments to note that the - ACE_Time_Value is relative and is updated before return. - - * ace/Synch.(h cpp) (ACE_Mutex): Added ACE_HAS_PTHREADS and - ACE_HAS_STHREADS to the platforms which handle inter-process mutex - by allocating it in shared memory. - - * tests/Process_Mutex_Test.cpp: Made the child process create an - exclusive access file after acquiring the mutex and delete it - before releasing. If the file can't be created, it means the - mutex is acquired twice, and that's a no-no. - When the parent is checking child process exit, also check the - status - if the child exited with something other than 0 status, - note that so the test procedure will see a LM_ERROR in the log - and flag it. - - * tests/MEM_Stream_Test.cpp: Changed some debug text to match the - function it is in. - - * ace/Parse_Node.{h cpp}: Handle dynamic libraries using ACE_DLL, - not ACE_OS::dlopen, etc. and handles. This is a proper refactoring - of the code (ACE_DLL didn't exist when this was first written) - and is needed to properly support dynamic services on AIX. - - * ace/DLL.cpp (open): (AIX only) If the dlopen fails and we're - trying to open an archive lib, tack on "(shr.o)" and retry - with the RTLD_MEMBER option set in the mode. This is to - properly support AIX shared libraries which get built as - .o files and loaded into an archive. - -Thu May 10 16:12:02 2001 Douglas C. Schmidt - - * ace/ACE.cpp (timestamp): The abbreviation of thursday should be - "Thu" not "Thr". Thanks to Munagala Ramanath - for pointing this out. - -Thu May 10 10:06:57 2001 Carlos O'Ryan - - * tests/tests.dsw: - * tests/ARGV_Test.dsp: - Add project file for ARGV_Test, thanks to Cristian Ferretti - for pointing this out. - -Thu May 10 06:36:08 2001 Balachandran Natarajan - - * tests/CDR_File_Test.cpp: Fixed a compile error with g++. - -Thu May 10 08:13:12 2001 Johnny Willemsen - - * tests/Makefile.bor - * tests/Misc/Makefile.bor - * tests/Naming/Makefile.bor - * tests/Reactor/Makefile.bor - * tests/Reactor/Dgram/Makefile.bor - * tests/Reactor/Ntalker/Makefile.bor - * tests/Registry/Makefile.bor - * tests/Synch/Makefile.bor - - Added or updated the above BCB makefiles so that the tests are - build with BCB - -Wed May 9 23:19:30 2001 Sharath R. Cholleti - - * ace/CDR_Streams.h: - * ace/CDR_Streams.cpp: - * ace/CDR_Streams.i: - * ace/CDR_Base.h: Changed the WChar implementation to suit GIOP - 1.2. - - * tests/CDR_Test.cpp:Added test for wchar. - - Thanks to Bala (bala@cs.wustl.edu) for helping me out. - -Wed May 9 16:06:34 2001 Balachandran Natarajan - - * ace/TTY_IO.cpp (control): - * ace/OS.h: Corrected this change "Wed May 9 14:03:01 2001 - Douglas C. Schmidt". The problem was with the definition of the - macro ACE_VTIME. Looks more like a cut and paste error. - -Wed May 9 16:00:22 2001 Balachandran Natarajan - - * ace/OS.h: - * ace/TTY_IO.cpp: Reverted this change "Wed May 9 14:03:01 2001 - Douglas C. Schmidt". - -Wed May 9 14:03:01 2001 Douglas C. Schmidt - - * ace/TTY_IO.cpp (control): Use the new ACE_VMIN and ACE_VTIME - macros. Thanks to Hans Utz for - suggesting this. - - * ace/OS.h: Added support for the new ACE_VMIN and ACE_VTIME - macros. Thanks to Hans Utz - for suggesting this. - -Wed May 9 14:25:35 2001 Balachandran Natarajan - - * THANKS: Added Darren Griffith - to the hall of fame. - -Wed May 9 11:40:06 2001 Carlos O'Ryan - - * ace/OS.i: - Don't use OpenFileMapping for WindowsCE. - - * ace/OS.i: - * ace/config-win32-mingw.h: - Use the /**/ trick for #includes with angle brackets, otherwise - the Embedded C++ compiler gets angry. - -Wed May 09 10:02:10 2001 Balachandran - - * ACE version 5.1.15 released. - -Mon May 7 07:14:08 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Commented out OctetSeq test from running - in static configurations. - -Mon May 7 06:40:44 2001 Douglas C. Schmidt - - * examples/Shared_Memory/test_SV.cpp: Cast SHM_KEY to (key_t) to - make BCB happy. Thanks to Johnny Willemsen for this. - -Sat May 5 15:30:40 2001 Douglas C. Schmidt - - * THANKS: Just added the 1,200th contributor to the ACE+TAO. - Thanks to Alexandre Cervieri - for helping us hit a new milestone! - -Sat May 5 08:51:23 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst: Just commented the HP_UX - builds. OCI seems to be having problems with their HP - machine. We will get it online once the builds start running. - -Sat May 5 08:01:30 2001 Douglas C. Schmidt - - * tests/Thread_Mutex_Test.cpp: Added a series of tests that exercise - the new functionality of the ACE_Guard. Thanks to Christopher - Kohlhoff for providing the enhancements. - -Fri May 4 15:42:20 2001 Craig Rodrigues - - * ace/OS.h - Changed ACE_SERVICETYPE_CONTROLLEDLOAD from 2 to 1 - This is necessary to work with RAPI. - -Fri May 4 06:28:19 2001 Douglas C. Schmidt - - * ace/OS.h: Changed the typedefs of uid_t, gid_t, and mode_t to - match those in standard POSIX. Thanks to Gonzalo Diethelm - for reporting this. - -Fri May 4 06:28:19 2001 Douglas C. Schmidt - - * ace/ace_wchar.h: Add a new macro (ACE_USES_L_PREFIX) that allows - users to control whether wide character strings use the "L" - prefix via their config.h files. Thanks to Albert Wijnja for - this fix. - - * examples/Misc/test_read_buffer.cpp (main): Changed to - so this will work properly on Win32 platforms. - Thanks to Johnny Willemsen for reporting the problem. - - * examples/Misc/test_XtReactor2.cpp (main): Fixed a stray ')'. - Thanks to Johnny Willemsen for reporting the problem. - -Thu May 3 17:33:45 2001 Douglas C. Schmidt - - * ace/OS.h: Fixed a mistake in the setsockopt() comment. Thanks - to Craig Rodrigues for reporting this. - -Thu May 3 17:43:33 2001 Balachandran Natarajan - - * ace/Acceptor.cpp (ACE_Acceptor): Fixed a warning in g++ builds. - -Thu May 3 16:00:15 2001 Nanbor Wang - - * ace/Malloc.h: - * ace/PI_Malloc.h: Fixed the [PI_]Control_Block size estimation - macros. I added a new member to control block. - -Thu May 3 14:52:33 2001 Balachandran Natarajan - - * ace/CDR_Stream.h (ACE_InputCDR): - * ace/CDR_Stream.cpp: Removed the method steal_data () as it did - not serve the purpose. Added a new method exchange_data_blocks - (). This method exchanges data_blocks between two CDR - streams. The write and read pointers are also exchanged. This - method performs no allocation and no releases and is lock free. - -Thu May 3 06:58:29 2001 Douglas C. Schmidt - - * ace/Acceptor.{h,cpp}, - * ace/SOCK_Acceptor.{h,cpp}: When the number of clients - connecting to a server exceeds the process handle limit the - server would busy loop. The Acceptor accept_svc_handler() - method is called which (1) constructs a handler and (2) attempts - to accept the connection, which fails (because there is no - available handle). The handler is destructed, but the connect - request is still queued and so the acceptor gets called back - again.... and so on until one of the client which is already - connected disconnects and frees up a descriptor. Changed the - Acceptor the close and reopen the connection when accept() - fails. A check is done to make sure address reuse is set. So - this fix will only work in case where it is set. Thanks to - Dominic Hughes for this fix. - - * ace/Unbounded_Queue.h: The comment was incorrect for - ~ACE_Unbounded_Queue. Thanks to Johnny Willemsen for - reporting this. - -Thu May 3 08:00:56 2001 Balachandran Natarajan - - * examples/ASX/Event_Server/Event_Server/Options.cpp: - * examples/ASX/UPIPE_Event_Server/Options.cpp: Warning fixes that - missed my earlier fix. This warning will appear only in the - evening SUNOS EGCS build result. Just a proactive fix. :) - -Thu May 3 07:42:01 2001 Balachandran Natarajan - - * examples/IPC_SAP/FILE_SAP/client.cpp: Fixed a warning with Linux - builds. - -Wed May 2 22:55:25 2001 Balachandran Natarajan - - * examples/ASX/Event_Server/Event_Server/Options.cpp: - * examples/ASX/UPIPE_Event_Server/Options.cpp: - * examples/IPC_SAP/FILE_SAP/client.cpp: - * examples/Naming/test_open.cpp: - * examples/Naming/test_writers.cpp: Fixed warnings in g++ builds. - -Wed May 2 18:36:29 2001 Douglas C. Schmidt - - * tests/README: Clarified that the shared memory tests now - work fine on Win9x! Thanks to Cristian Ferritti for reminding - me to do this. - -Wed May 2 15:10:28 2001 Balachandran Natarajan - - * ace/CDR_Stream.h (ACE_InputCDR): - * ace/CDR_Stream.cpp: Added a new constructor for ACE_inputCDR - class. This constructor would take the data block with a - pre-determined read and write pointer positions. This is helpful - when an application would like to create a CDR stream with a - smei-processed data block. - -Wed May 2 11:10:59 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added a colon to seperate the - run_test.pl specification from "!" that is used to indicate - where the scripts shouldn't be run. - -Wed May 02 05:40:47 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Use Queued_Message_Test/run_test.pl - -Wed May 2 06:31:46 2001 Douglas C. Schmidt - - * ace/Makefile: Make it possible to set where the QTDIR is located. - Thanks to Thomas Groth for this - enhancement. - -Tue May 1 21:38:00 2001 Balachandran Natarajan - - * ace/Process.cpp (spawn): When an application running with user - ID=0 (i.e. root) spawns a new process using - ACE_Process_Manager::spawn(), which in turn calls - ACE_Process::spawn() and tries to set a user ID and a group ID - for the new process different from root/other, the call to - setreuid() succeedes but the call to setregid() made thereafter - fails, because the process has no longer UID=0 and thus it - cannot change to a different group. To fix this, it was - necessary to swap the order of the calls to setreuid() and - setregid(). Thanks to Ramiro Penataro for - reporting this. - -Tue May 1 11:05:48 2001 Ossama Othman - - * tests/MEM_Stream_Test.cpp (handle_input): - - Fixed syntax error. "ACE_TCHAR," not "ACE_CHAR." - -Tue May 1 09:57:30 2001 Douglas C. Schmidt - - * ace/Activation_Queue.cpp (enqueue): Clarified the behavior - of passing sizeof (*mr). Thanks to Guy Bolton King - - -Tue May 1 07:13:59 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst : Sun CC 5.1 cannot work with - Simple_Naming test. Made sure that this test does not run with - Sun CC 5.1. - -Tue May 1 06:15:26 2001 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.h (class ACE_Hash_Map_Manager_Ex): Fixed - an erroneous comment. Thanks to Mark Drijver - for finding this. - - * ace/Local_Name_Space_T.cpp (create_manager_i): It's now valid - to use fixed mmap addresses on Win9x. Thanks to Cristian Ferretti - for these fixes. - - * ace/Mem_Map.{h,i}, - * ace/ace_wchar.h, - * ace/OS.{h,i}: Added support to the ACE_OS::mmap() function and - ACE_Mem_Map class so they work properly on Win9x. Thanks to - Cristian Ferretti for these fixes. - - * tests/Malloc_Test.cpp (main): Updated this test so that it - doesn't try to do any remapping or alternative child address - ranges on Win9x. Thanks to Cristian Ferretti - for pointing this out. - - * tests/MEM_Stream_Test.cpp (handle_input): Make sure to multiple - MAXPATHLEN * sizeof (ACE_CHAR) to handle Unicode properly. - Thanks to Cristian Ferretti for - pointing this out. - -Mon Apr 30 12:56:03 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst : Removed RAPI of the scoreboard. - -Sun Apr 29 15:20:00 2001 Michael Kircher - - * bin/auto_run_tests.lst: - - Added a flag to the Pluggable UDP test, so that it does not - get run in environments using only statically linked libraries. - -Sun Apr 29 11:44:26 2001 Douglas C. Schmidt - - * ace/ace_wchar.h: Reverted the following change - - Tue Apr 24 06:28:00 2001 Douglas C. Schmidt - * ace/ace_wchar.h: Fixed some code for VxWorks. Thanks to - Albert Wijnja for reporting this. - - This change is confusing since it's inconsistent with other - platforms that enable ACE_TEXT_WIDE. - -Thu Apr 26 20:14:48 2001 Balachandran Natarajan - - * ace/CDR_Stream.h (ACE_InputCDR): - * ace/CDR_Stream.cpp: Added a new method steal_data () which - replaces data blocks from one InputCDR stream to another. This - is a slightly modified form of steal_from () which basically - creates a new data block for the source stream. Creating a new - data block incurs the unwanted malloc overhead. - -Thu Apr 26 12:37:45 2001 Nanbor Wang - - * tests/README: Updated the list of tests that do not work on - windows 9x/ME for their limited shared memory support. Thanks - to Cristian Ferretti for pointing - them out. - -Thu Apr 26 12:30:19 2001 Nanbor Wang - - * ace/Containers_T.h Updated documentation for - ACE_DLList_*Iterator's on the use of method - . Users are responsible for release - (free'ing) the returned element. Thanks to Rachel G. Smith - for motivating the change. - -Thu Apr 26 07:58:56 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Prevented the BiDirectional tests from - running in the Minimum nightly builds. - -Thu Apr 26 07:48:30 2001 Balachandran Natarajan - - * ace/MEM_IO.h (ACE_MEM_IO): Some cosmetic fixes. - -Thu Apr 26 07:38:01 2001 Balachandran Natarajan - - * examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp: Fixed a compile - error. The ACE_MEM_IO::fini () was taking an integer - value. There was no method with a signature fini (int). Removed - the integer argument. - -Wed Apr 25 23:24:25 2001 Nanbor Wang - - * tests/MEM_Stream_Test.cpp: Changed the error message on SysV - semaphores to LM_WARNING and moved it up before executing the MT - test. - - * ace/MEM_IO.cpp: - * ace/MEM_IO.h: - * ace/MEM_IO.i: Do not compile MT signaling code if only SysV - semaphores are available. - - * ace/MEM_Acceptor.cpp: - * ace/MEM_Connector.cpp: Force the other party to use Reactive - signaling if we don't support MT signaling. - -Wed Apr 25 19:48:48 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Remove the tests/Oneway_Buffering/run_timeout.pl test from the - list. It is giving spurious errors, but fixing them would take - me too long. - -Wed Apr 25 20:23:44 2001 Nanbor Wang - - * ace/config-linux-common.h: Revert my previous change: - - Wed Apr 25 03:45:55 2001 Nanbor Wang - - Linux's POSIX semaphores is broken. Thanks to Ossama for - noticing this. - -Wed Apr 25 18:32:54 2001 Douglas C. Schmidt - - * ACE-INSTALL.html: Make sure to mention that ACE (and TAO) run - on Solaris 8. Thanks to Richard Hardgrave - for motivating this. - - * include/makeinclude: Zapped the platform_sunos5_egcs.GNU - file. Thanks to Craig Rodrigues for the suggestion. - -Wed Apr 25 15:30:18 2001 Nanbor Wang - - * tests/Malloc_Test.cpp: The reference counter needs to be release - if we want it to work. - -Wed Apr 25 03:45:55 2001 Nanbor Wang - - * tests/MEM_Stream_Test.cpp: Temporarily changed the informational - message about the use SYSV semaphores to LM_ERROR so we can find - those platforms out quicker. Many of them may actually support - POSIX semaphores. We need to enable them in that case. - - * ace/config-linux-common.h: Added ACE_HAS_POSIX_SEM and - ACE_LACKS_NAMED_POSIX_SEM. Linux actually support them. I'm - not sure if there are any version of linux that don't. - -Wed Apr 25 03:15:34 2001 Nanbor Wang - - * ace/Malloc.h: Added new variables to reference counting the - Malloc. - - * ace/PI_Malloc.h: Added new variables to reference counting the - Malloc and removed a ton of duplicated code that had already - been defined in Malloc.h. - - * ace/Malloc_T.cpp: - * ace/Malloc_T.h: - * ace/Malloc_T.i: Added 2 new methods to query the reference - counter and to release the reference counter. The reference - counter is created with 1 when the malloc first use a new - backing store. Later malloc that attaches to the same backing - store will increase the reference counter. It's the user's - responsibility to invoke release when the malloc is no longer - needed. The reference counter provides a way to indication it's - safe to clean up the backing store without upsetting other - malloc that might still need it. Note, however, the malloc will - not cleanup the backing store automatically when the reference - counter drops to 0 because we may want to attach another malloc - to it in some later point. - - * ace/MEM_IO.cpp: - * ace/MEM_IO.h: - * ace/MEM_SAP.cpp: - * ace/MEM_SAP.h: Use the aforementioned reference counter to - cleanup the backing store automagically. - - * ace/MEM_Stream.h: - * ace/MEM_Stream.i: Removed cleanup method as it is no longer - needed with the previous changes. Removed unnecesary - argument from fini () method. - - * ace/MEM_Stream.cpp: Simply calling fini () without worrying - about cleaning up the backing store. - - * tests/MEM_Stream_Test.cpp: No longer need to hint for cleanup. - - * tests/Malloc_Test.cpp: Added ACE_ASSERT to check for proper - operation of reference counter. - -Tue Apr 24 17:54:00 2001 Carlos O'Ryan - - * ace/Makefile: - Add 'Timer' to the default list of ACE components, without many - a test, application or example do not compile. - -Tue Apr 24 16:39:29 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Add Reliable_Oneways, Blocking_Sync_None, Oneway_Buffering, - Big_Oneways, Big_Twoways, Big_Request_Muxing and - Queued_Message_Test to the nightly builds. Most of these tests - are part of the 132 regression test suite. - -Tue Apr 24 06:28:00 2001 Douglas C. Schmidt - - * ace/Makefile: Refactored some stuff to improve the - ACE subsetting as follows: - - . Moved Malloc_Instantiations.cpp from libACEUtils to the - component libACE_Memory. - - . Moved Handle_Set.* to libACE_Utils to satisfy ACE.* - - . Moved Dynamic_Service_Base to libACE_Svcconf - - . Build a new component libACE_Timer with : - Timer_Wheel.*,Timer_Queue.*,Timer_List.*,Timer_Heap.*,Timer_Hash.* - Timeprobe.* Time_Request_Reply.* System_Time.* Profile_Timer.* - High_Res_Timer.* - - Thanks to Thomas Groth for these - suggestions. - - * docs/ACE-guidelines.html: Updated the discussion of using - open() rather than constructors. Thanks to Stan Pinte - for motivating this. - -Sat Apr 14 10:51:39 2001 Carlos O'Ryan - - * ace/Log_Msg.h: - Document the lock related functions in a separate Doxygen - section. - -Mon Apr 23 17:18:35 2001 Steve Huston - - * ace/ACE.cpp (ACE::handle_timed_complete): Set need_to_check for - any non-success result, or on a system where you can't tell (AIX). - Also, to check, use getsockopt to retrieve the status/error if - SOL_SOCKET and SO_ERROR are defined; else use the old recv method. - This gets you a real error code on a failed connect, if the platform - supports it. - - * tests/SOCK_Connector_Test.cpp: For an expected success, allow test - to pass if socket gets a reset but not if it says ENOTCONN. If there - are platforms that can't do SOL_SOCKET/SO_ERROR (above) then this - other code may need to be re-enabled. - -Mon Apr 23 13:36:27 2001 Steve Huston - - * ace/ACE.cpp (ACE::handle_timed_complete): Winsock (ACE_WIN32) sets - the exception bit (not the read bit) for a failed async connect. - So on fail, don't bother to do the recv trick to see if the socket - really did fail. - - * ace/Connector.cpp (ACE_Connector::handle_output): - * ace/SOCK_Connector.cpp (complete): Apparantly, Win2000 has - fixed the problem where a connection succeeds but can't be used - for a time. So, the sleep workaround is restructured for ACE_WIN32 - to try the new socket first, and only do the sleep if it fails. - Don't try to do this check (e.g. building on Win2000) at compile - time, since we want to be able to build on NT and run on Win2000. - - * ace/README: - * ace/config-win32-common.h: Removed the macro, - ACE_HAS_BROKEN_NONBLOCKING_CONNECTS. It was only used in the two - cases above, and is not needed any longer. - -Mon Apr 23 07:08:09 2001 Douglas C. Schmidt - - * ace/Based_Pointer_T.h: Updated the documentation to - explain how ACE_Based_Pointer (NULL) behaves. Thanks to Tom - Moog for motivating this. - -Sun Apr 22 14:26:56 2001 Carlos O'Ryan - - * ace/OS.h: - Some warnings are automatically disabled, but the pragmas only - make sense for MSVC. - - * ace/streams.h: - Fixed problems for Sun/CC-4.2, the trick is to include - strstream.h on MINGW32 *and* unix-like platforms, while - strstrea.h is included for all other WinXX-based compilers. - -Sat Apr 21 19:02:27 2001 Nanbor Wang - - * netsvcs/clients/Naming/Dump_Restore/Makefile: - * netsvcs/clients/Naming/Client/Makefile: Removed duplicated ACE - library. I thought I removed them all. - -Sat Apr 21 15:31:27 2001 Carlos O'Ryan - - * ace/ACE.cpp: - * ace/Basic_Types.h: - * ace/Configuration.cpp: - * ace/Handle_Gobbler.i: - * ace/Lib_Find.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Log_Msg.cpp: - * ace/Makefile: - * ace/Mem_Map.cpp: - * ace/Memory_Pool.cpp: - * ace/Message_Queue.i: - * ace/NT_Service.cpp: - * ace/OS.cpp: - * ace/OS.h: - * ace/OS.i: - * ace/OS_String.cpp: - * ace/Process.cpp: - * ace/Process_Manager.cpp: - * ace/Registry.cpp: - * ace/SOCK_Connector.i: - * ace/Sock_Connect.cpp: - * ace/TTY_IO.cpp: - * ace/WFMO_Reactor.cpp: - * ace/WFMO_Reactor.i: - * ace/WIN32_Asynch_IO.cpp: - * ace/config-cygwin32-common.h: - * ace/config-g++-common.h: - * ace/config-win32-common.h: - * ace/config-win32-mingw.h: - * ace/config-win32.h: - * ace/streams.h: - * examples/NT_Service/Makefile: - * examples/NT_Service/main.cpp: - * examples/NT_Service/ntsvc.cpp: - * include/makeinclude/platform_cygwin32.GNU: - * include/makeinclude/platform_gnuwin32_common.GNU: - * include/makeinclude/platform_mingw32.GNU: - * include/makeinclude/rules.local.GNU: - * include/makeinclude/wrapper_macros.GNU: - * tests/CDR_File_Test.cpp: - * tests/Cached_Accept_Conn_Test.cpp: - * tests/Cached_Conn_Test.cpp: - * tests/Conn_Test.cpp: - * tests/Handle_Set_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/MEM_Stream_Test.h: - * tests/MM_Shared_Memory_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/Mem_Map_Test.cpp: - * tests/OS_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Reactor_Exceptions_Test.cpp: - * tests/Reactor_Notify_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Test.cpp: - * tests/SPIPE_Test.cpp: - * tests/Svc_Handler_Test.cpp: - * tests/run_tests.bat: - * tests/run_tests.sh: - * tests/RMCast/RMCast_Fragment_Test.cpp: - Add support for mingw (www.mingw.org) and partial support for - cygwin (http://cygwin.com/). Many thanks to Cristian Ferretti - - -Fri Apr 20 18:21:41 2001 Carlos O'Ryan - - * ace/CDR_Stream.i (align_write_ptr): - Don't use grow_and_adjust() here because it forces an - allocation, using simply adjust() is better. - -Fri Apr 20 19:37:53 2001 Douglas C. Schmidt - - * ace/Get_Opt.h: Updated the documentation to match the constructor - arguments for ACE_Get_Opt. Thanks to Benot Desmeules - for reporting this. - - * ace/TP_Reactor.cpp: Added a workaround for compiling ACE on - Linux for the OS/390 OS. Thanks to James Dorsey - for reporting this. - -Fri Apr 20 00:57:24 2001 Douglas C. Schmidt - - * ace/Containers_T.cpp (operator=): Added a missing assignment to - this->size_ = s.size_. Thanks to Juan Jose Comellas - for reporting this. - - * ace/SOCK_Dgram: One of the send() methods was lacking a "const" - in front of the ACE_Addr &. This has been fixed. Thanks to - Victor Poznyak for reporting this. - -Thu Apr 19 16:18:33 2001 Steve Huston - - * ace/Log_Msg.h: Doxygen-ized some function arguments; other - minor doc cleanups. - -Thu Apr 19 11:08:15 2001 Douglas C. Schmidt - - * ACE-INSTALL.html: Point out that ACE supports Solaris 8. - Thanks to Logan Modahala for motivating - this. - -Wed Apr 18 13:57:40 2001 Chad Elliott - - * ace/ACE.cpp: - - Modification to check errno for ENOBUFS (in addition to - EWOULDBLOCK) after writing to a file descriptor. This will happen - on VxWorks when a client sends data faster than the server can - receive it. This modification causes this to be a retry situation - instead of an error. [Bug 866] - -Wed Apr 18 11:33:07 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the BiDirectional tests to the - nightly builds. There is no reason why it did not go in so far. - -Wed Apr 18 10:25:03 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Changed the name of the -config option - for SUNCC5.1. Removed the dot and replaced it with a '_'. - -Wed Apr 18 05:23:53 2001 Douglas C. Schmidt - - * tests/Config_Test.cpp: Fixed several warnings related to - not using ACE_TEXT for wide-strings. Thanks to Bala for - reporting this. - -Wed Apr 18 02:08:16 2001 Nanbor Wang - - * examples/Synch/proc_sema.dsp: Fixed release build settings. - -Tue Apr 17 12:33:49 2001 Steve Huston - - * ace/Service_Config.cpp (open_i): If the caller supplies a - logger key, enable the ACE_Log_Msg::LOGGER bit when opening - the ACE_Log_Msg instance, else the logger key is ignored. - -Tue Apr 17 06:15:00 2001 Michael Kircher - - * bin/auto_run_tests.lst: - - Added the UDP Pluggable Protocol test to the list of executed tests. - -Mon Apr 16 20:42:46 2001 Carlos O'Ryan - - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - Remove obsolete comments and raise the optimization level from - -O2 to -O3, the latter disables a huge number of warnings for - PACE. - -Mon Apr 16 22:15:28 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Commented out some tests that are - failing on SUNCC 5.1. The failure is because of a compiler - bug. The problem is that the compiler seems to have difficulty - in calling the virtual method in a class hierarchy which is - built with multiple inheritance. - -Mon Apr 16 20:24:11 2001 Douglas C. Schmidt - - * tests/Config_Test.cpp (main): Remoted the test_io() function. - Thanks to Jerry Odenwelder for - confirming this. - -Mon Apr 16 16:18:57 2001 Carlos O'Ryan - - * ace/config-qnx-rtp.h: - Add support for gperf under QNX - - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - The -fexceptions flag has no place in the CPPFLAGS macros, it - should go in CCFLAGS (though I could be convinced to put it in - CFLAGS) - -Mon Apr 16 16:13:29 2001 Steve Huston - - * ace/Configuration.h (ACE_Configuration::root_section): Made this - method 'const'; makes today's changes easier to deal with. - - * ace/Configuration_Import_Export.cpp (string_has_white_space): - * ace/Configuration.cpp (operator==): Replaced 'true' with 1 and - 'false' with 0; replace const_cast<> with ACE_const_cast (), - per docs/ACE-guidelines.html, and IBM C++ :-) Also, use two - non-const local variables instead of const_casting 'this' and - 'rhs' on every use. - Made ACE_Configuration::root_section (void) const. - - * ace/ace.icc: This was an early hack attempt to use library or DLL - build for Visual Age C++ 4. It is now the Visual Age C++ 5 - configuration for building ACE on AIX. The ace-dll.icc and - ace-lib.icc are still around for Visual Age C++ 4 users, but may - not work and will be removed in a future ACE release. This - config is for Visual Age C++ 5 only and can/will be extended to - do subset builds as well as debug/optimize/etc variants. - - * bin/make_pretty.pl: Pick out AIX ld errors correctly. - - * include/makeinclude/platform_hpux_aCC.GNU: Note HP problem report - number and disposition for inability to use -AA and +noeh together. - -Mon Apr 16 12:32:48 2001 Nanbor Wang - - * tests/MEM_Stream_Test.cpp: Limited the concurrent connections - used in the multithreaded test on platforms without POSIX or - Win32 semaphores. In this case, SysV semaphores are used and - a user can only instantiate very limited number of them. The - test will also print out an INFO in this case as it implies - there can only be one "multithreaded" connection in one host at - any instance. This fixed the test on some obsolete UNIX - platforms. - -Mon Apr 16 09:58:23 2001 Balachandran Natarajan - - * tests/Config_Test.cpp: Fixed a warning with g++ builds. The - warning was because of an unused function. - -Sun Apr 15 21:27:19 2001 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added new Configuration_Import_Export.{h,cpp} - files. - -Sun Apr 15 19:33:19 2001 Douglas C. Schmidt - - * ace/Configuration.cpp, - * ace/Configuration_Import_Export.cpp: Fixed some warnings - that show up with G++. Thanks to Carlos for reporting this. - -Sun Apr 15 17:13:40 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Disabled TAO/tests/Client_Leaks on all configurations, it is - failing systematically because it cannot create processes fast - enough. - -Sat Apr 14 18:08:16 2001 Carlos O'Ryan - - * ace/Configuration_Import_Export.h: - Fixed small typo in the @file comment for - Configuration_Import_Export.h - -Sat Apr 14 18:31:15 2001 Douglas C. Schmidt - - * ace/Makefile.bor: Added new Configuration_Import_Export.obj file. - - * tests/Config_Test.cpp: Added tests for the new ACE_Configuration* - stuff. Thanks to Jerry Odenwelder for - contributing these. - - * ace/Configuration_Import_Export.{h,cpp}: Added two new files that - do the following: - - 1. Remove the import and export functionality from the - ACE_Configuration object. - 2. Provide two new classes to import/export ACE_Configuration - objects: - - * ACE_Registry_ImpExp import and exports in the Win32 - Registry format - this was the old import/export routine on - ACE_Configuration. - * ACE_Ini_ImpExp imports and exports in an INI format. The - import part of this was called import_config_as_strings in - the old ACE_Configuration object. While this object will - export any ACE_Configuration object, it can only import data as - strings. This is due to the inability to distinguish type - in the INI format. - 3. Added operator== to ACE_Configuration. This is to compare - contents not type. - 4. Test programs were modified to exercise this new functionality. - - Thanks to Jerry Odenwelder for - contributing these. - -Sat Apr 14 12:44:17 2001 Carlos O'Ryan - - * ace/MEM_IO.i: - Reorder operations to eliminate warnings on Tru64/CXX - -Sat Apr 14 11:12:26 2001 Steve Huston - - * tests/CLASSIX_Addr_Test.icc: - * tests/CLASSIX_CLD_Connector_Test.icc: - * tests/CLASSIX_Con_Acc_Test.icc: - * tests/CLASSIX_Group_Test.icc: - * tests/CLASSIX_Notify_Test.icc: - * tests/CLASSIX_OS_Test.icc: - * tests/CLASSIX_Reactor_Test.icc: - * tests/CLASSIX_Select_Reactor_Test.icc: - * tests/CLASSIX_Stream_Test.icc: - Removed these files. They were moved/copied to tests/CLASSIX some - time back and don't belong here. - - * tests/t.icc: Removed. This is not used for anything. - - * tests/Makefile.vac: Corrected 'realclean' actions. - -Sat Apr 14 09:17:32 2001 Steve Huston - - * examples/QOS/Change_Sender_TSpec/sender.dsp: Added extra level of - directory for include and lib - missed this one in yesterday's - set of changes. - -Sat Apr 14 09:08:33 2001 Steve Huston - - * ace/Array_Base.h: Added forward declaration for ACE_Allocator. - * ace/Array_Base.cpp: Added #include "Malloc_Base.h" so IBM C++ - can find ACE_Allocator when instantiating templates. - - * ace/config-hpux-10.x-hpc++.h: When using standard C++ lib, - set the value of ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB to 1. - - * netsvcs/clients/Naming/Dump_Restore/Makefile: - * netsvcs/clients/Naming/Client/Makefile: Add ACELIB to LIBS. This - allows IBM C++ compilers to build the library clean. - - * tests/Makefile.vac: Don't try to use vacbld_r on the entire - project. It can take so long that make gives up and kills - off the build, making a real mess of the .ics files and leaving - random numbers of tests unbuilt. Instead, run vacbld_r on - each .icc file in the directory. Similarly for clean, don't - reply on vacbld_r on the project file - run through all the - ics files and executables based on existing .icc files. - -Fri Apr 13 12:44:21 2001 Steve Huston - - * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record): - If logging to STDERR is not enabled, don't dump the log record - there either. - -Fri Apr 13 12:21:01 2001 Nanbor Wang - - * ace/Malloc_T.h: Added an explanation on the requirement about - sizeof (TYPE)link of ACE_Cached_Allocator and a link to - ACE_Cached_Mem_Pool_Node where this stuff was explained. Thanks - to Rachel G. Smith for motivating - the change. - -Fri Apr 13 12:05:38 2001 Nanbor Wang - - * tests/MEM_Stream_Test.h: - * tests/MEM_Stream_Test.cpp: Borland C++ has problem cleaning up - the static Atomic_Op object in Echo_Handler in the right order. - Made that an ACE_Singleton and re-organized the test a big. - Thanks to Chris Kohlhoff for reporting and - suggesting the fix. [Bug 862] - -Fri Apr 13 11:58:58 2001 Carlos O'Ryan - - * ace/OS.i (gethrtime): - Add support for the the clock tick register as a high resolution - timer under KCC/Linux. Thanks to David Levine for help on this. - -Fri Apr 13 05:30:04 2001 Douglas C. Schmidt - - * ace/OS.i: Make sure that the PTHREADS version of ACE_OS::thr_yield() - gets top priority over the STHREADS version. Thanks to Munagala - Ramanath for reporting this. - - * ace/Malloc_T.{h,i}: Added support for one of the calloc() methods - to ACE_Cached_Allocator. Thanks to Rachel G Smith - for motivating this change. - - * ace/Malloc_Allocator.h: Updated the comments for ACE_New_Allocator - to indicate that the calloc() methods are also supported. - Thanks to Rachel G Smith for - motivating this change. - - * docs/ACE-bug-process.html: Updated this document to explain how - bugs pertaining to OCI's TAO releases should be handled. Thanks - to Georg Lohrer for motivating this. - -Thu Apr 12 20:36:30 2001 Douglas C. Schmidt - - * ace/OS.i (thr_getspecific): Reorder the way in which we check - the flags so that ACE_HAS_PTHREADS takes precedence over - ACE_HAS_STHREADS. Thanks to Munagala Ramanath - for reporting this. - -Thu Apr 12 21:18:44 2001 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Added - -D_RWSTD_MULTI_THREAD -D_REENTRANT to CCFLAGS for stdlibcpp build. - Makes execution clean, no core dump on program init. - -Thu Apr 12 17:31:36 2001 Steve Huston - - * examples/IOStream/server/iostream_server.h: Wrap the guts of this - in #if !defined (ACE_LACKS_ACE_IOSTREAM) to build clean on platforms - that can't handle ACE_IOStream. - -Thu Apr 12 17:02:41 2001 Steve Huston - - * examples/QOS/Change_Sender_TSpec/sender.dsp: - * examples/QOS/Change_Sender_TSpec/receiver.dsp: - * examples/QOS/Change_Receiver_FlowSpec/sender.dsp: - * examples/QOS/Change_Receiver_FlowSpec/receiver.dsp: - * examples/QOS/Simple/sender.dsp: - * examples/QOS/Simple/receiver.dsp: Changed project names from 002 - and 003 to sender and receiver. Corrected relative paths for include - and library lookup (add another ..). - - * examples/QOS/QOS.dsw: Change project names from 002/003 to sender - and receiver. - -Thu Apr 12 15:48:22 2001 Joe Hoffert - - * ace/CDR_Stream.i (length): - Moved definition of length method above any of the methods - that call into it. Was producing warnings on Tru64 platform. - -Thu Apr 12 13:06:27 2001 Joel Sherrill - - * include/makeinclude/Makefile.rtems: Replaced debug version - with real version that queries RTEMS application Makefile - infrastructure. - - * include/makeinclude/platform_rtems.x_g++.GNU: Added - --no-print-directory option to all invocations of recursive - make to determine information from Makefile.rtems. This - avoids getting the "entering/exiting directory" messages - included in the results. - - * ACE-RTEMS.README: Added requirement to configure C++ - support in RTEMS. Updated to reflect also compiling for mc68360 - target. - -Wed Apr 11 20:36:36 2001 Nanbor Wang - - * examples/Synch/proc_sema.cpp (main): Fixd an assigning string - literal to char* warning. - -Wed Apr 11 18:04:33 2001 Steve Huston - - * include/makeinclude/rules.bin.GNU: Change the Visual Age C++ - incremental build command to use vacbld_r, the thread-enabled - variant of vacbld. - -Wed Apr 11 11:00:50 2001 Douglas C. Schmidt - - * ACE-INSTALL.html: Added a section illustrating how to build - ACE+TAO for RTEMS. Thanks to Joel Sherrill - for this build procedure. - -Wed Apr 11 11:38:37 2001 Steve Huston - - * ace/IOStream.h: Reverted change from - Tue Apr 10 18:35:22 2001 Steve Huston - and replaced it with a section that sets ACE_LACKS_ACE_IOSTREAM - if ACE_HAS_STANDARD_CPP_LIBRARY is set and ACE_USES_OLD_IOSTREAMS - is not. This restriction is noted and tracked in Bugzilla # 857. - - * ace/IOStream.cpp: - * tests/IOStream_Test.cpp: Reverted change from - Tue Apr 10 18:35:22 2001 Steve Huston - -Wed Apr 11 09:44:32 2001 Chad Elliott - - * examples/Misc/test_trace.cpp: - - Fixed a strange compiler error with Tornado II. - My_Task::recursive was inline which caused an internal compiler - error. - -Wed Apr 11 08:04:21 2001 Douglas C. Schmidt - - * include/makeinclude/platform_linux.GNU: By default, we build - ACE+TAO with exceptions enabled on Linux. Thanks to Craig - Rodrigues for motivating this change. - - * ace/SString.i (operator+): Fixed an "inlined before use" warning. - Thanks to Bala for reporting this. - -Tue Apr 10 16:58:54 2001 Ossama Othman - - * ace/OS.h (ACE_DEFAULT_FILE_PERMS, ACE_DEFAULT_DIR_PERMS): - - Changed the default values on UNIX from 0666 and 0777 to 0644 - and 0755, i.e. removed global write permissions. This addresses - some security issues. Now, only the owner has write permissions - by default. - -Tue Apr 10 18:35:22 2001 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU: Added a new - build option, stdcpplib, which defaults to 1. If set to 1, - Sun Workshop 5 and Forte 6 compilers will use the standard - C++ library, including standard iostreams. Set to 0 to - use the old, classic iostreams. - - * include/makeinclude/platform_hpux_aCC.GNU: Added support for - the stdcpplib build option. It defaults to 1 if using aC++ - x.27, or 0 if not. Thanks very much to Istvan Buki - for these changes. - - * ace/config-aix-4.x.h: For Visual Age C++ 5, turn on - ACE_HAS_STANDARD_CPP_LIBRARY and - ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB. - - * ace/config-sunos5.5.h: For Sun Workshop 5 and Forte 6 compilers, - take the ACE_USES_OLD_IOSTREAMS setting from the platform_macros.GNU - file; don't set it here. - - * ace/config-hpux-11.00.h: - * ace/config-hpux-10.x-hpc++.h: If the stdcpplib=1 option was used, - then turn on ACE_HAS_STANDARD_CPP_LIB and - ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB. Else turn on - ACE_USES_OLD_IOSTREAMS. - - * ace/IOStream.{h cpp}: Only try to build this stuff if - ACE_LACKS_ACE_IOSTREAM is not defined and ACE_USES_OLD_IOSTREAMS - _is_ defined. The check on ACE_USES_OLD_IOSTREAMS can be removed - when ACE_IOStream gets ported to standard iostreams. - - * tests/IOStream_Test.cpp: Only try this if ACE_USES_OLD_IOSTREAMS - is defined. Remove this if/when ACE_IOStream is ported to new - iostreams. - -Tue Apr 10 17:51:25 2001 Pradeep Gore - - * bin/auto_run_tests.lst: - Added TAO/tests/OctetSeq/run_test1{2}.pl to auto testing. - -Tue Apr 10 16:33:42 2001 Joe Hoffert - - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - Added sanity checks for sizes of strings and arrays. - -Tue Apr 10 15:14:52 2001 Chad Elliott - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - - Added missing else/endif from previous support addition. - -Tue Apr 10 11:48:51 2001 Douglas C. Schmidt - - * include/makeinclude/platform_vxworks5.x_g++.GNU: Added support - for the M68k line of CPUs. Thanks to Albert Pariante - for reporting this. - -Tue Apr 10 02:14:55 2001 Nanbor Wang - - * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Added a new - PerlACE function that checks for unwanted files and spits out a - warning before removing the file. It makes sure that we not - only clean up resource leaks but also notice their existence. - - * tests/run_test.pl (delete_temp_files): Used the new - to remove the temp files for - MEM_Stream_Test, if there are any. - -Tue Apr 10 1:44:02 2001 Yamuna Krishnamurthy - - * examples/QOS/Change_Sender_TSpec/receiver.cpp: - * examples/QOS/Change_Sender_TSpec/receiver.dsp: - * examples/QOS/Change_Sender_TSpec/sender.cpp: - * examples/QOS/Change_Sender_TSpec/sender.dsp: - * 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_QoS_Event_Handler.h: - * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp: - * examples/QOS/Change_Sender_TSpec/QoS_Util.h: - * examples/QOS/Change_Sender_TSpec/QoS_Util.cpp: - * examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.h: - * examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.cpp: - * examples/QOS/Change_Sender_TSpec/FlowSpec_Dbase.h: - * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h: - * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp: - * examples/QOS/Change_Sender_TSpec/README: - * examples/QOS/Change_Sender_TSpec/Makefile: - - Added a test to dynamically change the Sender flow spec in - order to continuously change the PATH messages. - - * examples/QOS/Change_Receiver_FlowSpec/receiver.cpp: - * examples/QOS/Change_Receiver_FlowSpec/receiver.dsp: - * examples/QOS/Change_Receiver_FlowSpec/sender.cpp: - * examples/QOS/Change_Receiver_FlowSpec/sender.dsp: - * 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_QoS_Event_Handler.h: - * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp: - * examples/QOS/Change_Receiver_FlowSpec/QoS_Util.h: - * examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp: - * examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.h: - * examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.cpp: - * examples/QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h: - * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h: - * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp: - * examples/QOS/Change_Receiver_FlowSpec/README: - * examples/QOS/Change_Receiver_FlowSpec/Makefile: - - Added a test to dynamically change the Receiver flow spec in - order to continuously change the RESV messages. - - * examples/QOS/Simple/receiver.cpp: - * examples/QOS/Simple/receiver.dsp: - * examples/QOS/Simple/sender.cpp: - * examples/QOS/Simple/sender.dsp: - * examples/QOS/Simple/Sender_QoS_Event_Handler.h: - * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp: - * examples/QOS/Simple/Receiver_QoS_Event_Handler.h: - * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp: - * examples/QOS/Simple/QoS_Util.h: - * examples/QOS/Simple/QoS_Util.cpp: - * examples/QOS/Simple/QoS_Signal_Handler.h: - * examples/QOS/Simple/QoS_Signal_Handler.cpp: - * examples/QOS/Simple/FlowSpec_Dbase.h: - * examples/QOS/Simple/Fill_ACE_QoS.h: - * examples/QOS/Simple/Fill_ACE_QoS.cpp: - * examples/QOS/Simple/README: - * examples/QOS/Simple/Makefile: - - Moved the original QOS example to Simple. - - * examples/QOS/Makefile: - * examples/QOS/QOS.dsw: - - Updated the Makefile to compile the constituent tests. - -Mon Apr 9 18:48:02 2001 Douglas C. Schmidt - - * include/makeinclude/Makefile.rtems: Zapped - - export RTEMS_MAKEFILE_PATH=/opt/rtems/sparc-rtems/erc32/ - - so that the environment variable is obtained from the users - environment. Thanks to Joel Sherrill for - this fix. - - * ace/Log_Msg.h: Only define the ACE_ASSERT macro if it's not - already defined. This make it easy for developers to override - this macro in their config.h file. Thanks to Nathalie D'Amours - for motivating this change. - -Mon Apr 9 15:36:04 2001 Carlos O'Ryan - - * ace/High_Res_Timer.cpp: - Use the 'cpu MHz' line from /proc/cpuinfo in favor of the - 'bogomips' line, because the latter gives the wrong number on - multi-CPU boxes. - -Mon Apr 9 14:37:30 2001 Chad Elliott - - * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp: - - Removed extraneous template instantiations. - -Mon Apr 09 09:19:37 2001 Carlos O'Ryan - - * ace/SString.cpp: - Fixed Fuzz error - -Mon Apr 9 08:28:47 2001 Douglas C. Schmidt - - * ace/SString.{h,i,cpp}: Added improved support for ACE_WString: - . The magic number 32 has been changed to ACE_DEFAULT_GROWSIZE. - . ACE_WString only allocates memory when it is needed. - . The grow strategy can be modified by setting the ACE_GROW_LINEAR define. - the string does not double the memory then, but increases the memory by - ACE_DEFAULT_GROWSIZE. - Thanks to Eric Zuur for contributing these - enhancements. - - * ace/High_Res_Timer.cpp (get_cpuinfo): Added support for the Pentium - III and IV. Thanks to Stephane Pion - for contributing this fix. - -Mon Apr 9 07:50:08 2001 Chad Elliott - - * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp: - * examples/IPC_SAP/SOCK_SAP/Makefile: - Fixed a typo in the Makefile and added "CPP-inclient.h" include to - CPP-memclient.cpp. - -Mon Apr 9 07:42:29 2001 Chad Elliott - - * ace/Basic_Types.cpp: - Changed format flags from ios::fmtflags to unsigned long. - This typedef is not supported by all platforms. Thanks Carlos - for suggesting this change. - -Mon Apr 09 08:08:11 2001 Johnny Willemsen - - * ace/Timer_Queue_T.h - Declared private copy constructor and assignment operator - for class ACE_Event_Handler_Handle_Timeout_Upcall - -Sun Apr 08 18:55:58 2001 Carlos O'Ryan - - * tests/DLL_Test.cpp: - Use ACE::ldname() instead of keeping a local function to - decorate the name. - Use the "d" suffix only on MSVC debug builds. - - * tests/Makefile.bor: - * tests/DLL_Test.bor: - New Borland Makefile for the shared library in DLL_Test. Thanks - to Christopher Kohlhoff for providing the - patches. - - * tests/run_test.pl: - Add ExeSubDir to the path, required in Borland builds to find - the shared libraries created locally. - -Sun Apr 8 13:12:54 2001 Douglas C. Schmidt - - * ace/SString.cpp: Reordered various constructor initializers so - G++ doesn't complain. Thanks to Bala for reporting this. - - * ace/SString.{h,i,cpp}: Added various optimizations to ACE_WString - so it will perform certain operations as efficiently as - ACE_CString. Thanks to Eric Zuur for - contributing these enhancements. - -Sun Apr 08 12:10:30 2001 Nanbor Wang - - * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp: - * examples/IPC_SAP/SOCK_SAP/Makefile: Updated obsolete - shared-memory transport functions. - -Sun Apr 8 09:49:26 2001 Douglas C. Schmidt - - * bin: Added a new shell script called "make-components" that enables - each ACE component to be built in a simple manner using the - following change from Arturo. - - * ace/Makefile: Generalized the libACE.a and libACE.$(SOEXT) targets - to simplify subsettings. Thanks to Arturo Montes - for reporting this. - -Sat Apr 7 16:00:48 2001 Douglas C. Schmidt - - * tests: Added a new rtems_init.c file. Thanks to Joel Sherrill - for contributing this port. - - * include/makeinclude: Added the new platform_rtems.x_g++.GNU file. - * ace: Added the new config-rtems.h file. - - * ace/OS.cpp: Added support for RTEMS, which is an open-source - real-time operating system that can be downloaded from - ftp://ftp.oarcorp.com/pub/rtems. Thanks to Joel Sherrill - for contributing this port. - - * ace/OS.cpp: The return type for ACE_OS::readv_emulation() - should have been ssize_t, not int, to be consistent with its - definition in the header file. Thanks to Joel Sherrill - for reporting this. - -Sat Apr 7 21:16:49 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Add the new Crash_On_Write and MT_Timeout tests to the nightly - builds. - -Fri Apr 6 21:02:05 2001 Carlos O'Ryan - - * examples/Synch/proc_sema.cpp: - Add missing #include for "ace/Log_Msg.h", on platforms that - define ACE_TEMPLATES_REQUIRE_SOURCE this include is magically - obtained, but this is not the case for SunCC 4.2, and - True64/CXX. - -Fri Apr 06 16:22:24 2001 Nanbor Wang - - * ace/SString.h (ACE_Tokenizer): Updated documentation and added - some examples. Thanks to Jody Hagins for - providing the original example. - -Fri Apr 6 17:11:34 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the Single_Read test to the - nightly build list. - -Fri Apr 6 14:45:52 2001 Chad Elliott - - * ace/Basic_Types.h: - * ace/Basic_Types.cpp: - Changed the as_string() method to avoid using floor() which - required math.h and ACE_CString which caused unnecessary coupling. - -Fri Apr 6 08:34:15 2001 Carlos O'Ryan - - * bin/make_pretty.pl: - Do no give out warnings for the 'nocompatwarnings' option in - HP-UX. - -Fri Apr 6 08:23:02 2001 Chad Elliott - - * ace/Basic_Types.cpp: - * ace/Basic_Types.h: - * tests/Process_Strategy_Test.cpp: - * examples/Connection/misc/Connection_Handler.cpp: - Remove build warnings for platforms that don't support unsigned - long long types and have unsigned char's. - -Fri Apr 6 02:02:01 2001 Nanbor Wang - - * ace/OS.h: - * ace/OS.i: The implementation for process semaphore on platforms - lacking named POSIX semaphores was broken. On these platforms, - semaphores are allocated in MMAP file so they should never be - deleted. Added a flag to remember if a semaphore - can be deleted (USYNC_THREAD) or not (USYNC_PROCESS). - - * ace/config-sunos5.6.h: According to the man pages, SunOS started - supporting POSIX semaphores from 5.6. Defined ACE_HAS_POSIX_SEM - and ACE_LACKS_NAMED_POSIX_SEM. - -Thu Apr 5 11:23:05 2001 Carlos O'Ryan - - * html/index.html: - Add link to the new QoS library documentation. - -Thu Apr 05 03:26:13 2001 Nanbor Wang - - * examples/Makefile: - * examples/Synch/Makefile: - * examples/Synch/README: - * examples/Synch/Synch.dsw: - * examples/Synch/proc_sema.cpp: - * examples/Synch/proc_sema.dsp: Added a new example to play with - process semaphores. - -Thu Apr 05 02:48:51 2001 Nanbor Wang - - * ace/MEM_IO.cpp (write): My earlier change was causing the test - to crash. - - * ace/MEM_Stream.h: - * ace/MEM_Stream.i: - * ace/MEM_Stream.cpp: Added a new method to inform the stream to - clean up its resources when closing down. - - * tests/MEM_Stream_Test.cpp (handle_close): Handle_close should - only inform it's peer to destroy the mmap file instead of - removing the file itself. - -Wed Apr 4 16:21:13 2001 Darrell Brunsch - - * bin/auto_run_tests.lst: - - Added the ImplRepo tests. - -Wed Apr 4 12:13:52 2001 Nanbor Wang - - * ace/MEM_IO.h: Declared ACE_INLINE_FOR_GNUC for - ACE_MT_MEM_IO::Simple_Queue's constructor to eliminate a bogus - warning reported by vxworks' gcc compiler. - -Wed Apr 04 07:47:48 2001 Craig Rodrigues - - * etc/ace_qos.doxygen: - * bin/generate_doxygen.pl: - Generate doxygen documentation for ACE QoS API - -Tue Apr 03 19:55:26 2001 Steve Huston - - * bin/auto_compile: Added a -make_type option - the argument to - the option is the suffix of Makefile to use. Example: - -make_type vac would use Makefile.vac instead of Makefile - when building. - - * bin/make_pretty.pl: Corrected tests for AIX errors/warnings. - - * ace/ace.icp: (new) Visual Age C++ 5 project file for libACE. - - * ace/ace.icc: (new) Visual Age C++ 5 configuration file for - libACE. Replaces ace-dll.icc. It will eventually have the - stuff added to make debug/optimize as well as subsets. - - * ace/ace_vacpp_options.icc: Visual Age C++ file for setting ACE - build options. - - * ace/Makefile.vac: Makefile to build libACE using the Visual - Age C++ 5 incremental compiler. It only has "all" and "realclean" - targets, and uses vacbld_r to do the build. - - * tests/tests.icp: Visual Age C++ 5 Project file for making all the - tests. - - * tests/Makefile.vac: Makefile to drive vacbld_r for Visual Age C++. - - * tests/Config_Test.icc: - * tests/Dirent_Test.icc: - * tests/Logging_Strategy_Test.icc: - * tests/MEM_Stream_Test.icc: - * tests/Message_Queue_Test_Ex.icc: - * tests/OS_Test.icc: - New files for building tests with Visual Age C++. - - * tests/libDLL_Test.icc: Changed to use up-to-date source file. - -Tue Apr 03 13:45:02 2001 Nanbor Wang - - * ace/MEM_IO.cpp: Fixed mismatched ACE_TRACE messages. Thanks to - the all mighty fuzzmasterd for reporting this. - -Tue Apr 3 11:40:42 2001 Priyanka Gontla - - * examples/IPC_SAP/SSL_SAP/dummy.pem: - * examples/IPC_SAP/SSL_SAP/key.pem: - The previous certificates expired. So, generated them - again. - -Tue Apr 03 09:30:10 2001 Nanbor Wang - - * ace/MEM_IO.cpp (write): Fixed a compilation error for Borland - compiler. Thanks to Johnny Willensen for reporting this. - -Mon Apr 02 23:41:34 2001 Nanbor Wang - - * ace/MEM_SAP.cpp: - * ace/MEM_SAP.h: - * ace/MEM_SAP.i: - Generalized the ACE_MEM_SAP class to allocate memory in the new - memory wrapper class ACE_MEM_SAP_Node. - - * ace/MEM_IO.cpp: - * ace/MEM_IO.h: - * ace/MEM_IO.i: - Separated the different signaling mechanisms into a different - class in ACE_MEM_IO so it can determine the "right" signaling - strategy allowed. Currently, we implement the Reactive strategy - (ACE_Reactive_MEM_IO) which uses sockets for signaling and - multithreaded strategy (ACE_MT_MEM_IO) which uses semaphores for - signaling. - - * ace/MEM_Stream.cpp: - Sending an empty buffer over to wake up the "other" end when we - are closing down. - - * ace/MEM_Acceptor.cpp: - * ace/MEM_Acceptor.h: - * ace/MEM_Acceptor.i: - * ace/MEM_Connector.cpp: - * ace/MEM_Connector.h: - * ace/MEM_Connector.i: Added facility to specify the "preferred" - signaling strategy so the acceptor and connector can negociate - and agree on the best signaling mechanism to use. - - * ace/MEM_Stream_Test.h: - * ace/MEM_Stream_Test.cpp: - Added the test for the new MT signaling MEM_Stream transfer. - This part of the test seems to be failing on system that depends - on SysV semaphores (because we need more semaphore than the - system can provide.) - -Mon Apr 2 15:17:13 2001 Chad Elliott - - * ace/config-chorus.h: - - Chorus 4.x supports unsigned long long's. - -Mon Apr 2 14:23:31 2001 Craig Rodrigues - - * ace/Makefile: - only build QoS directory under UNIX if rapi is installed - * ace/QoS/README: - add installation instructions and GQOS/RAPI information - -Mon Apr 2 09:57:31 2001 Darrell Brunsch - - * bin/PerlACE/MSProject.pm: - - Made a change to the tao_idl depencency checking. - It was only checking for tao_idl and $(InputName) where - some places we use $(InputPath) instead. - - * ace/config-win32-msvc-5.h: - * ace/config-win32-msvc-6.h: - - Disabled the Inheritance by Dominance informational - warning that MSVC gives. We have cases of this all over - the place, and normally we just disable the warning on - a file by file basis, but now we just do a blanket disable. - -Mon Apr 2 08:45:24 2001 Carlos O'Ryan - - * bin/nightlybuilds/builds.lst: - Renamed the Debian_Full_WU build, its most important feature is - not that it is at WashU nor that it enables most components. It - is the fact that interceptors are disabled on its configuration. - -Sun Apr 1 17:20:22 2001 Darrell Brunsch - - * ace/INET_Addr.h: - - Added /**/ around for the inclusion of inetLib.h, since some - MS compilers pick this up in dependency generation. - - * bin/PerlACE/MSProject.pm: - - Used \Q\E around the library names when matching, otherwise - the backslashes were interpreted as escaping, and weird - unicode errors popped up. - - * bin/pippen.pl: - - Pippen was being case sensitive, so tao.lib was different - than TAO.lib. Changes to store only lowercase. - -Sat Mar 31 10:16:01 2001 Carlos O'Ryan - - * ACE-INSTALL.html: - Removed broken link, the web page does not exist anymore. Thanks - to John R. Ashmun for pointing this out. - This fixes [BUGID:833] - -Fri Mar 30 14:08:18 2001 Douglas C. Schmidt - - * performance-tests/TTCP/C/new-ttcp.cpp: - * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp: - Zapped the gettimeofday() method since it didn't seem to be - used. Also, #include "ace/Log_Msg.h". Thanks to Thomas Groth - for reporting this. - - * ace/OS.h: Changed all the ACE_DEFAULT_* default ports of the - various services to start with 200xx rather than 100xx to avoid - conflicts on AIX, which apparently hijacks port 10002 for - various things. Thanks to David Sperry - for reporting this. - -Sat Mar 31 02:06:09 2001 Christopher Kohlhoff - - * ace/config-win32-borland.h: - * include/makeinclude/ace_flags.bor: - Fixed up use of inline functions in DEBUG build. - - * include/makeinclude/ace_flags.bor: - Added macros for the TAO_BiDirGIOP and TAO_TypeCodeFactory - libraries. - -Fri Mar 30 11:17:39 2001 Carlos O'Ryan - - * bin/fuzz.pl: - Add a couple of TODO entries - - * html/index.html: - Add the Audio/Video Streaming service to the index file. - -Fri Mar 30 11:12:53 2001 Carlos O'Ryan - - * ace/*/Makefile: - * apps/*/Makefile: - * docs/*/Makefile: - * examples/*/Makefile: - * netsvcs/*/Makefile: - * performance-tests/*/Makefile: - * tests/*/Makefile: - * websvcs/*/Makefile: - * ASNMP/*/Makefile: - Regenerate dependencies. - -Fri Mar 30 08:15:26 2001 Carlos O'Ryan - - * ace/QoS/QoS_Session.h: - Add #include for ACE_QoS_Export - -Fri Mar 30 07:31:54 2001 Carlos O'Ryan - - * ace/QoS/QoS_Session.h: - Fixed export macro - -Thu Mar 29 20:14:00 2001 Craig Rodrigues - - * ace/SOCK.h: - Remove include of QoS_Session.h, since it is not used here. - -Thu Mar 29 19:48:00 2001 Craig Rodrigues - - * ace/QoS_Session.h: - * ace/QoS/QoS_Manager.h: - * ace/QoS/QoS_Session_Impl.h: - * ace/QoS/QoS_Session_Factory.h: - * examples/QOS/QoS_Signal_Handler.h: - * examples/QOS/Receiver_QoS_Event_Handler.h: - * examples/QOS/client.cpp: - * examples/QOS/QoS_Util.h: - * examples/QOS/Sender_QoS_Event_Handler.h: - * examples/QOS/server.cpp: - * examples/QOS/Makefile: - - Move QoS_Session.h to the ace/QoS directory. - -Thu Mar 29 19:12:38 2001 Steve Huston - - * include/makeinclude/rules.lib.GNU: AIX-specific changes to - build shared libraries by making a shared shr.o file and putting - that into an archive. Seems weird, but that's the way AIX does - things. This makes ACE consistent with other AIX software. - - * include/makeinclude/platform_aix4_cset++.GNU: Made some changes - to attempt to work with the new scheme for shared lib creation on - AIX. Did not test it, and don't plan to. The CSet++ compiler is not - supported by IBM any longer, and Riverace is not supporting ACE - with it. If someone out there sends patches for this, I'll put - them in, but this file is going away after ACE 5.2 is released. - All uses of IBM-supported compilers (IBM C/C++ and Visual Age C++ - in batch mode) should be with the platform_aix_ibm.GNU file. - -Thu Mar 29 16:16:07 2001 Douglas C. Schmidt - - * ace/Token.cpp (renew): A conditional expression used an && rather - and ||, which was causing problems with ACE_Token. Thanks to - Carsten Madsen for reporting this. - - * ace/Message_Queue_T.cpp: If any of the various ACE_Message_Queue_Ex - enqueue*() methods fail then make sure to release the message - blocks! Thanks to Boris Kolpackov for reporting - this. - -Wed Mar 28 21:39:26 2001 Darrell Brunsch - - * ace/NT_Service.h: - - Changed the ACE_NT_SERVICE macros to use ACE_TEXT_* API - calls for those that can take in unicode strings. - - * examples/NT_Service/main.cpp: - - Fixed use of ACE_NT_SERVICE to work with ACE_USES_WCHAR. - - * examples/OS/Process/process.cpp: - * examples/Reactor/WFMO_Reactor/test_directory_changes.cpp: - - Changed some Win32 API calls to use ACE_TEXT_* equivalents. - - * ace/ace_wchar.h: - - Added all the ACE_TEXT_* API macros needed above. - - Thanks to Nick Pratt for - reporting the first of these errors. - -Wed Mar 28 22:07:03 2001 Nanbor Wang - - * tests/tests.dsw: Fixed project dependencies between DLL_Test and - DLL_Test_Impl. Thanks to Alain Decamps - for reporting this. - -Wed Mar 28 20:33:28 2001 Douglas C. Schmidt - - * ace/ACE.cpp: Further improved the implementation of - handle_ready() by simply calling poll() with the timeout - pointer. Thanks to Przemyslaw Marciniak - for reporting this. - -Wed Mar 28 17:45:22 2001 Steve Huston - - * bin/make_pretty.pl: Adjust the error detector for IBM C/C++ 3.6.6. - - * ace/Containers_T.cpp: Add #include "ace/Log_Msg.h" so IBM C/C++ - can see ACE_DEBUG when compiling template instantiations. - -Wed Mar 28 16:40:24 2001 Luther Baker - - * ace/config-all.h - - Removed ACE_WIN32 support for ACE_HAS_POSIX_SEM just because - ACE_HAS_PACE. This can be defined for ACE_WIN32 after we - write more WIN32 emulation. - - * ace/OS.h - * ace/OS.i - * ace/OS.cpp - - PACE updates. - -Wed Mar 28 11:37:09 2001 Fuzz Master D - - * bin/fuzz.pl: - - There are several instances where fuzz gives false - positives, and the code is impossible to fix without - creating compiler warnings. Example: - - void function (CORBA::Environment &ACE_TRY_ENV) - { - #if FOO - some_other_function (ACE_TRY_ENV); - ACE_CHECK; - #else - ACE_UNUSED_ARG (ACE_TRY_ENV); - #endif - } - - So normally ACE_UNUSED_ARG errors can be fixed by keeping - the CORBA::ENvironment unnamed and removing the ACE_UNUSED_ARG, - but in this case it isn't possible. So fuzz now accepts - an ignore command for single line use. The above can be fixed - by changing to: - - void function (CORBA::Environment &ACE_TRY_ENV) - { - #if FOO - some_other_function (ACE_TRY_ENV); - ACE_CHECK; - #else - ACE_UNUSED_ARG (ACE_TRY_ENV); // FUZZ: ignore check_for_ace_check - #endif - } - -Tue Mar 28 13:03:07 2001 Chad Elliott - - * bin/make_pretty.pl: - Modification to recognize HP's future errors as warnings. - -Wed Mar 28 11:34:54 2001 Frank Hunleth - - * ace/CDR_Base.inl: - Removed memset in ACE_CDR::mb_align when ACE_HAS_PURIFY == - 1, since it was causing some TAO unit tests to break (in - particular, the Portable_Interceptors/Service_Context_Manipulation - test). After running Cubit and a few other tests, Purify didn't - notice any more uninitialized memory accesses. Fixes bug #828. - -Wed Mar 28 11:55:39 2001 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: New file, replaces - platform_aix_vacpp.GNU for Visual Age C++ 5. Also replaces - use of platform_aix4_cset++.GNU for IBM C/C++ Compilers 3.6.6. - So, for the supported, IBM-supplied compilers (IBM C/C++ 3.6.6 - and Visual Age C++ 5) use this file. If you want to try to keep - using CSet++ 3.4 or earlier, you can keep using - platform_aix4_cset++.GNU, but it's not tested any longer and - will disappear at the next ACE version. If you want to use - Visual Age C++ 4, you should reconsider, and upgrade to version 5. - - * include/makeinclude/platform_aix_vacpp.GNU: Deleted. - - * netsvcs/lib/TS_Clerk_Handler.h: Moved #include "ace/Connector.h" - to be after #include "ace/SOCK_Connector.h" to fix compile error - on AIX, Visual Age C++ 5. - - * ace/config-aix-4.x.h: Clarified comments that this file is for - Visual Age C++ also. Added ACE_DLL_SUFFIX ".a" to match what - is now generated from platform_aix_ibm.GNU. - - * bin/auto_compile: - * bin/make_pretty.pl: Add detection of compile/link warnings and - errors for AIX using the IBM compilers' code. Ignores the multiply - defined symbol warnings from ld if it's an ACE symbol. - - * docs/ACE-development-process.html: Changed to link to Bugzilla so - it works from anywhere. - -Wed Mar 28 10:13:16 2001 Steve Huston - - * ace/Makefile.bor: Don't try to build the SSL directory if - SSL_ROOT is not set. - -Wed Mar 28 08:39:26 2001 Carlos O'Ryan - - * etc/tao_av.doxygen: - New configuration file for the AV streaming service. Many - thanks to Craig Rodrigues for converting that - directory. - - * bin/generate_doxygen.pl: - Add the new configuration file. - -Tue Mar 27 19:54:11 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Disable POA/On_Demand_Loading and POA/Loader for Linux/KCC - builds, because that compiler has problems with destructors - after dynamic loading. - Also add the new Hello test to the nightly regression tests. - -Tue Mar 27 19:43:39 2001 Carlos O'Ryan - - * include/makeinclude/platform_linux.GNU: - Add support for Insure++ - - * include/makeinclude/rules.local.GNU: - Add new macro to let developers change the default destination - for the dependencies. - - * include/makeinclude/wrapper_macros.GNU: - Let the user override the default VDIR directory, and define the - default values for the IDL generated code extensions. - - Thanks to Jody Hagins for all these - improvements. - -Tue Mar 27 19:15:36 2001 Carlos O'Ryan - - * ace/Unbounded_Queue.h: - Add required #include for Chorus builds. - -Tue Mar 27 15:28:56 2001 Douglas C. Schmidt - - * ace/ACE.cpp (handle_ready): Don't try to dereference through - a NULL timeout pointer! Thanks to Przemyslaw Marciniak - for reporting this. - -Tue Mar 27 10:08:44 2001 Carlos O'Ryan - - * ace/Select_Reactor_Base.h: - Add missing #include for builds that define - ACE_HAS_REACTOR_NOTIFICATION_QUEUE. - -Tue Mar 27 05:35:38 2001 Christopher Kohlhoff - - * include/makeinclude/make_flags.bor: - Prevent PASCAL build by default with BCB5 since it is not - required. Since both VCL and non-VCL applications share a common - run-time library you can simply link your VCL code with a - non-PASCAL build of the ACE+TAO libraries. This behaviour can be - overridden by defining the FORCE_PASCAL flag. - - * include/makeinclude/build_core_exe.bor: - * include/makeinclude/build_core_library.bor: - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - * include/makeinclude/build_lib.bor: - * include/makeinclude/clean.bor: - Build all executables into a directory below the source directory. - Core executables are then copied to the common bin directory. This - is to allow the test scripts to assume all executables can be - found relative to the source directory. - - * include/makeinclude/recurse.bor: - Removed definition of OBJFILES since Borland make doesn't seem to - support recursive macro expansion. - - * ace/config-win32-borland.h: - * include/makeinclude/ace_flags.bor: - Always explicitly define __ACE_INLINE__, with it defaulting to 1. - This change will allow the same compiler flags to be used in user - applications regardless of whether a debug or non-debug build of - ACE is being used. - -Tue Mar 27 09:48:33 2001 Johnny Willemsen - - * include/makeinclude/ace_flags.bor - Corrected the smartproxies_cflags - - * examples/IPC_SAP - Added new BCB makefiles for these examples - - * ace/Timer_Hash_T.cpp - * ace/Timer_Hash_T.h - * ace/Timer_Heap_T.cpp - * ace/Timer_Heap_T.h - * ace/Timer_List_T.cpp - * ace/Timer_List_T.h - * ace/Timer_Wheel_T.cpp - * ace/Timer_Wheel_T.h - Made the isdone method on the iterator classes constant - - * ace/Timer_Queue_T.h - * ace/Timer_Queue_T.i - Several get methods are now const - Argument of set_timer_value and set_interval is now passed by const reference - - * ace/Unbounded_Set.h - * ace/Unbounded_Set.cpp - * tests/Collection_Test.cpp - Added the ACE_Unbounded_Set_Const_Iterator which can be used - to iterate over an const set - -Mon Mar 26 21:02:24 2001 Darrell Brunsch - - * ace/Log_Msg_NT_Event_Log.cpp: - - Fixed a compilation problem with RegSetValueEx when - ACE_USES_WCHAR and UNICODE were defined. Thanks to Nick - Pratt for reporting this. - - * ace/ace_dll.dsp: - - Unchecked the "separate types" option for debug linking. - Thanks to Nick Pratt for this suggestion also. - -Mon Mar 26 13:00:37 2001 Carlos O'Ryan - - * ace/Node.h: - * ace/Node.cpp: - * ace/Array_Base.h: - * ace/Array_Base.inl: - * ace/Array_Base.cpp: - * ace/Unbounded_Queue.h: - * ace/Unbounded_Queue.inl: - * ace/Unbounded_Queue.cpp: - * ace/Unbounded_Set.h: - * ace/Unbounded_Set.inl: - * ace/Unbounded_Set.cpp: - * ace/Containers_T.h: - * ace/Containers_T.i: - * ace/Containers_T.cpp: - Move several containers to their own file. This reduces the - amount of code that needs to be parsed, improving compilation - time (not to mention the fact that the code becomes more - readable.) - For backwards compatibility the Containers file still includes - the new smaller files. - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - Add new files to the install rules. - Since they are templates they do not need to be compiled on MSVC - so no changes to the project files are required. - - * ace/ARGV.h: - * ace/ARGV.cpp: - * ace/Future.h: - * ace/Handle_Gobbler.h: - * ace/Local_Name_Space.h: - * ace/Malloc_Base.h: - * ace/Memory_Pool.h: - * ace/Name_Space.h: - * ace/Priority_Reactor.h: - * ace/Remote_Name_Space.h: - * ace/Service_Config.h: - * ace/Signal.cpp: - * ace/Signal.h: - * ace/Stats.h: - * ace/Thread_Manager.h: - * ace/Timeprobe_T.h: - * ace/Timer_Heap_T.h: - * ace/Timer_Queue_Adapters.h: - * ace/TkReactor.cpp: - To reduce compilation and recompilation times we only include - the header file that includes the container used in each case, - instead of the full containers class. - -Fri Mar 23 12:40:34 2001 Douglas C. Schmidt - - * apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp: Make sure - to delete the Consumer_Dispatch_Set * that we get back from - unbind(). Thanks to the ever vigilant Mike Winter - for reporting this. - -Thu Mar 22 10:18:24 2001 Douglas C. Schmidt - - * ace/SString.h: Make the various data members protected - rather than private so subclasses can access them. Thanks to - Martin Krumpolec for this suggestion. - - * tests/README: Clarified some things about the tests. - Thanks to Eric Desamore for - motivating this. - -Mon Mar 26 11:03:22 2001 Balachandran - - * ACE version 5.1.14 released. - -Sat Mar 24 07:02:35 2001 Chris Cleeland - - * ace/INET_Addr.i (get_host_addr): Added a const_cast to the - VxWorks-only arm that casts away const on the this ptr so that - inet_ntoa_b can access and fill in the buffer data member that's - used to hold the result from inet_ntoa_b. Thanks to Erik Johannes - for point this out. - -Fri Mar 23 18:01:05 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Some of the tests cannot be run in - Single threaded configurations. Prevented such tests from - running in the nightly builds. - -Fri Mar 23 16:25:18 2001 Balachandran Natarajan - - * tests/New_Fail_Test.cpp: Reverted the change from "Fri Mar 23 - 06:34:33 2001 Balachandran Natarajan ". The - change fails to comipile when exceptions are on. - -Fri Mar 23 08:47:29 2001 Carlos O'Ryan - - * apps/Gateway/Gateway/Options.cpp: - Explicitly #include Log_Msg.h, on platforms that do not define - ACE_TEMPLATES_REQUIRE_SOURCE the header file is not implicitly - included. This should fix compilation problems on Tru64/CXX and - SunCC/4.2 - -Fri Mar 23 06:34:33 2001 Balachandran Natarajan - - * tests/New_Fail_Test.cpp: Fixed a stupid warning in g++, - No_AMI_Messaging builds. Surprising that it showed up only in - this build. - -Thu Mar 22 21:33:37 2001 Chris Cleeland - - * ace/INET_Addr.h: VxWorks' inet_ntoa doesn't behave like most - others, and our use was causing memory leaks. VxWorks prefers - that you use its own inet_ntoa_b, which takes the buffer to fill - as an argument. Thus, for VxWorks, added a data member char buf - of the appropriate length so that get_host_addr can use - inet_ntoa_b to fill that in. - - * ace/INET_Addr.i (get_host_addr): For VxWorks only, changed this - to use the preferred inet_ntoa_b. This eliminate memory leaks - under VxWorks. Thanks to Erik Johannes for - the suggested fix. - -Wed Mar 21 19:20:02 2001 Balachandran Natarajan - - * apps/Gateway/Peer/Peer.cpp (nonblk_put): Fixed a compile error - in g++. - -Wed Mar 21 17:28:26 2001 Steve Huston - - * ace/Message_Queue.h: - * ace/Message_Queue_T.h: Moved definition of typedef for - ACE_DEFAULT_MESSAGE_QUEUE_TYPE from Message_Queue.h to - Message_Queue_T.h, just after defining ACE_Message_Queue<>. - Fixes the case where Message_Queue_T.h is included first, - it includes Message_Queue.h before ACE_Message_Queue<> is - defined, and that breaks the compile. IBM C/C++ hit this. - -Wed Mar 21 16:42:19 2001 Steve Huston - - * bin/auto_compile: Added an option: -notao to ignore the TAO aspects - of the non-configurable things, like looking at the TAO/ChangeLog. - Also, now looks for auto_run_tests.lst in the $BUILD/bin directory, - not the $MODULE/bin directory - this allows some builds to specify - their own lists. - -Wed Mar 21 16:00:56 2001 Nanbor Wang - - The followings are contributions from Scott Snyder - to make ACE happy on Digital UNIX with KCC - 3.4d. - - * include/makeinclude/platform_tru64_kcc.GNU: - * include/makeinclude/platform_osf1_4.0_kcc.GNU: Added KCCOPTS and - support for tru64 unix. - - * ace/OS.h: On this platform, we ran into problems with sigwait - being a macro. The fix that had been added for this was keyed - on __DECCXX_VER, so it isn't picked up on this platform. - - * ace/Sock_Connect.cpp: Enum_Interface_Test failed on this - platform. The code in Socket_Connect.cpp that implements this - is conditional on `__unix' being defined. However, with this - compiler, we get `unix' and `__unix__' defined, but not - `__unix'. Fixed by testing for `__unix__' too. - - * ace/ACE.cpp: Cache_Conn_Test was failing. It looks like the - code in ACE::out_of_handles doesn't have a case to handle osf1. - -Wed Mar 21 12:08:35 2001 Nanbor Wang - - The followings are contributions from Scott Snyder - to make ACE happy on IRIX 6.x with KCC 3.4d. - - * include/makeinclude/platform_irix6.x_kcc.GNU: - Disable the following warings and separate common options into - $(KCCOPTS). - - 280: declaration of a member with the same name as its class Get - this from . - - 608: this pragma must immediately precede a declaration or - statement Get this from . - - * ace/OS.h: Changed to only request RTLD_GROUP and RTLD_NODELETE - if they are actually available. - - * ace/config-irix6.x-kcc.h: Undefined - ACE_LACKS_PLACEMENT_OPERATOR_DELETE since KCC actually supports it. - - Config_Test was failing because with the default setup, ace - tries to locate the shared memory pool at 0x04000000. But it - turns out that this is the same address at which irix likes to - load the KCC shared library, libKCC.so. So the memory pool ends - up blowing away all the library code. Fixed by shifting the - default base address to 0x05000000 for this configuration. - - OS_Test was failing because on irix, kcc 4.0d miscompiles - memchr_emulation if +K3 optimization is used. I worked around - this by just using the library version of memchr instead: - - * ace/ACE.cpp: Cached_Conn_Test was failing because the code in - ACE::out_of_handles doesn't have a case to handle irix. - - * tests/DLL_Test.cpp: It died trying to run object dtors. Fixed by - turning off the close-on-destruction flag for this test. - -Wed Mar 21 13:33:58 2001 Ossama Othman - - * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp: - - Patched this file so that the example actually works. It now - correctly interacts with the SSL client in this example. Thanks - to Defang Zhou for contributing the - patch/changes necessary to make it work. - -Wed Mar 21 07:23:15 2001 Douglas C. Schmidt - - * tests/SOCK_Connector_Test.cpp (find_another_host): Make the - test a bit more resilent against errors with gethostbyname(). - Thanks to Lu Yunhai for this fix. - -Tue Mar 20 17:31:21 2001 Carlos O'Ryan - - * tests/run_test.lst: - The Logging_Strategy_Test dynamically loads the Logger service - (from netsvcs), therefore it does not work on static builds. - -Tue Mar 20 18:17:24 2001 Douglas C. Schmidt - - * ace/OS.i: Fixed the USYNC_PROCESS arm of CreateMutex() in - ACE_OS::mutex_init() so that it calls - ACE_OS::set_errno_to_last_error(). Thanks to Ram Ben-Yakir - for reporting this. - -Tue Mar 20 01:33:24 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - * ace/SSL/SSL_SOCK_Stream.i (send, close): - - Wrap the underlying OpenSSL calls in a do-while(SSL_pending()) - loop. I decided to wrap the SSL_write() calls just in case. - This should fix the last of the non-blocking IO issues in ACE's - SSL wrappers. [Bug 393] - -Tue Mar 20 00:40:43 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.i (recv): - - Fixed non-blocking IO support for this method. It was necessary - to ensure that a full SSL record was read before returning - control to the caller. Note that the send() method doesn't need - modification since OpenSSL always writes a full record before - returning. [Bug 393] - -Mon Mar 19 19:53:34 2001 Carlos O'Ryan - - * include/makeinclude/ace_flags.bor: - Define macros for the RT Event Service test library - -Mon Mar 19 16:57:43 2001 Irfan Pyarali - - * ace/TP_Reactor.cpp (handle_events): Return value from - handle_events() after the Reactor has been deactivated should be - -1. We just need to remember that as illustrated in - ACE_Reactor::run_reactor_event_loop(), this is not an error: - - if (result == -1 && this->implementation_->deactivated ()) - return 0; - - * tests/Thread_Pool_Reactor_Test.cpp (svr_worker): Changed this - function to call ACE_Reactor::run_reactor_event_loop() instead - of ACE_Reactor::handle_events(). In the previous revision, we - were not handling return values from - ACE_Reactor::handle_events() correctly when - ACE_Reactor::deactivated() had been called. - -Mon Mar 19 09:14:12 2001 Chad Elliott - - * include/makeinclude/platform_chorus4.x_g++.GNU: - - Added an output option to the link command. Linking would fail - in cases where the output was specified in another directory. - -Sun Mar 18 22:12:16 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.i (close): - - Commented out debugging output that was inadvertently committed - to the repository. - - Don't bother invalidating the handle. Doing so can potentially - cause some side-effects in the underlying OpenSSL - implementation since setting the handle in the SSL_SOCK_Stream - also causes the OpenSSL SSL_set_fd() function to be called. - - Fixed a socket leak caused by the fact that the handle was - invalidated before the underlying ACE_SOCK_Stream was closed. - -Sun Mar 18 09:46:47 2001 Balachandran Natarajan - - * tests/New_Fail_Test.cpp: Fixed warnings in g++. - -Sun Mar 18 08:31:34 2001 Douglas C. Schmidt - - * apps/Gateway/Gateway, - * apps/Gateway/Peer: Added a number of fixes to the Gateway and Peer - applications. Thanks to Lu Yunhai for - contributing these. - -Sun Mar 18 08:31:34 2001 Douglas C. Schmidt - - * examples/IPC_SAP/FILE_SAP/client.cpp (main): Added a couple of - casts so that the arguments passed to printf() will match the - format specifier types. - -Sat Mar 17 18:02:28 2001 Steve Huston - - * ace/config-aix-4.x.h: Fixed settings for exceptions and - placement delete to be ok for Visual Age C++ 5. - - * include/makeinclude/platform_aix_vacpp.GNU: Basically new, - works with the Visual Age C++ 5 batch mode build on AIX. - - * include/makeinclude/rules.lib.GNU: Added aix_build piece to - the section for linking a shared library. It uses the linker - to generate a shr.o (shared) file, then inserts that into - the library that's being built. This new section is only - used with platform_aix_vacpp.GNU at this point. - -Fri Mar 16 15:07:23 2001 Ossama Othman - - * ace/SSL/SSL_Context.h (set_mode): - - Changed the default mode from SSLv3 to SSLv23, i.e. support - SSLv2 and SSLv3 by default. This fixes interoperability - with applications that use Sun's JSSE, which only supports - SSLv2. Thanks to Max Khon for providing the - patch. - -Thu Mar 15 17:47:28 2001 Balachandran Natarajan - - * tests/Log_Msg_Test.cpp: Changed a ERROR message as a DEBUG - message. If it is an error message the scripts that run the - build gets confused. - -Thu Mar 15 17:42:54 2001 Balachandran Natarajan - - * tests/Logging_Strategy_Test.cpp: Changed the "-s" option in the - test to write the output in to the output generated in the "log" - directory. This is just a hack to make the scoreboard clean. - -Thu Mar 15 15:55:37 2001 Steve Huston - - * ace/Message_Queue_T.h: Add #include "ace/Message_Queue.h" so - IBM Visual Age C++ sees ACE_Message_Queue_Base when instantiating - templates. - - * ace/ace-dll.icc: Fixed after being munged in a previous commit. - Also, corrected libACE.a generation and cleanup, and incorporated - fixes from Steve Ige and Jerry - Odenwelder . - - * THANKS: Added Steve Ige to the Hall of Fame. - -Thu Mar 15 11:26:35 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Acceptor.i (ACE_SSL_SOCK_Acceptor): - - Make sure the handle is set for the ACE_SSL_SOCK_Acceptor, after - initializing the underlying ACE_SOCK_Acceptor. This ensures - that OpenSSL has the proper handle. Thanks to Greg McCain - for suggesting this fix. - - * THANKS: - Added Greg to the hall of the fame. - -Thu Mar 15 05:46:59 2001 Douglas C. Schmidt - - * ace/FILE_Addr.cpp (ACE_FILE_Addr): Make sure to divide the size of - the filename_ by the sizeof (ACE_TCHAR) to handle unicode - correctly. Thanks to the ever vigilant Ivan Murphy for catching - this! - -Wed Mar 14 01:47:10 2001 Nanbor Wang - - * apps/Gateway/Gateway/Makefile: - * apps/Gateway/Peer/Makefile: - * apps/JAWS/server/Makefile: - * apps/gperf/tests/Makefile: - * examples/ASX/CCM_App/Makefile: - * examples/Service_Configurator/IPC-tests/server/Makefile: - * examples/Service_Configurator/Misc/Makefile: - * examples/Timer_Queue/Makefile: - * netsvcs/clients/Naming/Client/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile: Removed - unnecessary 'LIBS += $(ACELIB)'. They were causing link problem - for the latest KCC. compiner. - -Tue Mar 13 20:56:10 2001 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (remove_to_be_added_handler_i): - * ace/WFMO_Reactor.cpp (remove_suspended_handler_i): - * ace/WFMO_Reactor.cpp (remove_handler_i): - - If a user tried to (a) remove a "to be suspended handle" from - either the current info set or the to be added set, the handle - was correctly removed but the "to be suspended handle" count was - not reduced; (b) remove a "to be resumed handle" from the - suspended set, the handle was correctly removed but the "to be - resumed handle" count was not reduced. Since the "to be resumed - handle" and the "to be suspended handle" were not adjusted - properly, the reactor kept waking up thinking that changes were - required. Thanks to Lu Yunhai for - reporting this problem. - - * examples/Reactor/WFMO_Reactor/test_suspended_removals.cpp: Added - an extensive example for regression testing the above use cases. - -Tue Mar 13 15:23:04 2001 Nanbor Wang - - * ace/Service_Manager.cpp (list_services): Fixed Unicode bugs. - -Tue Mar 13 15:13:48 2001 Nanbor Wang - - * tests/Logging_Strategy_Test.cpp: Fixed Unicode related bugs. - -Tue Mar 13 10:04:06 2001 Carlos O'Ryan - - * performance-tests/TCP/run_test.pl: - Fixed the path to the $ACE_ROOT/bin directory, now the script - runs again. - -Tue Mar 13 06:04:03 2001 Douglas C. Schmidt - - * ace/Service_Manager.cpp (list_services): Add an indication of whether - a service is active or paused. Thanks to Mike Curtis for this - improvement. - - * ace/Reactor.h: Clarified that the remove_handler (handle, mask) - method also removes the event handle. Thanks to Pierre Fayolle - for reporting this. - - * tests/Logging_Strategy_Test.cpp (get_statistic): Replace struct stat - with ACE_stat. Thanks to Johnny Willemsen for reporting this. - -Tue Mar 13 00:35:35 2001 Irfan Pyarali - - * ace/Select_Reactor_T.i (deactivated): Reverted this change - regarding Select_Reactor_T::deactivated(): - - Thu Feb 22 12:28:15 2001 Irfan Pyarali - - Though my change improved correctness of access and change to - the variable, it had a negative consequence: the - event loop calls Select_Reactor_T::deactivated() before calling - Select_Reactor_T::handle_events() to make sure that the reactor - is not closed yet. Unfortunately, if - Select_Reactor_T::deactivated() has a guard, it will send a null - event waking up the current leader and thus lead to unnecessary - thrashing. For now, I have removed the guard from the - Select_Reactor_T::deactivated() methods. We should revisit this - issue some time again. This fixes bug 816. - -Mon Mar 12 16:30:32 2001 Balachandran Natarajan - - * tests/Logging_Strategy_Test.cpp (main): Fixed the rest of the - warnings in VxWorks builds. - -Mon Mar 12 16:21:42 2001 Balachandran Natarajan - - * tests/Logging_Strategy_Test.cpp (main): Fixed a couple of - warnings in VxWorks build. Couple of more warnings are left. - -Mon Mar 12 14:16:03 2001 Balachandran Natarajan - - * ace/Local_Name_Space_T.cpp (create_manager_i): Fixed a compile - error on Win32 Unicode platforms. - -Mon Mar 12 12:12:36 2001 Nanbor Wang - - * ACE-INSTALL.html: Also mentioned Windows 2000 explicitly in the - document. Thanks to Rahul Shukla for - raising the question. - -Mon Mar 12 00:49:24 2001 Nanbor Wang - - * tests/tests.dsw: - * tests/Logging_Strategy_Test.dsp: Added a new dsp file. - -Sun Mar 11 21:00:16 2001 Carlos O'Ryan - - * bin/auto_compile: - Print out the config.h and platform_macros.GNU files, this is - useful when debugging builds. - -Sun Mar 11 18:41:08 2001 Douglas C. Schmidt - - * ace/CDR_Stream.h: Updated a comment to clarify that the buffer() - method just returns a pointer to the first block in the chain. - Thanks to Johnny Willemsen for pointing this out. - -Sun Mar 11 17:46:45 2001 Balachandran Natarajan - - * ace/Local_Name_Space_T.cpp: Fixed a compiler error on Win32 - Unicode platforms. - -Sun Mar 11 17:28:40 2001 Irfan Pyarali - - * ace/QoS/QoS_Session_Impl.cpp (rsvp_callback): was unused. - -Sun Mar 11 08:31:05 2001 Douglas C. Schmidt - - * tests/Makefile.bor (NAMES): Added Logging_Strategy_Test. - -Sun Mar 11 07:32:18 2001 Balachandran Natarajan - - * tests/Logging_Strategy_Test.cpp (order): Fixed a warning in g++ - builds. - -Sat Mar 10 23:15:10 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Fixed name of Crashed_Callback test - -Sat Mar 10 19:28:30 PST 2001 Mayur Deshpande - - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - Fixes to enable debugging on QNX without ACE crashing. - Thanks to Andy Olson for the suggestions. - -Sat Mar 10 19:05:38 2001 Darrell Brunsch - - * ace/config-win32.h: - - Include config-win32-common.h even on Windows CE. - - * ace/config-win32-msvc-6.h: - - If ACE_ENDTHREADEX is already defined, don't define it. - - * ace/OS_Dirent.h: - - Changed the use of ACE_WINCE to ACE_HAS_WINCE. - - * ace/Service_Manager.cpp: - - Fixed a couple of ACE_TCHAR/ACE_LIB_TEXT problems. - - * ace/ace_wchar.h: - - On Windows CE, #include wtypes.h. - - * ace/ace_dll.vcp: - * ace/ace_os_dll.vcp: - - Redid the output files and directories. Now intermediate - files go into Release/PLATFORM and Debug/PLATFORM (where - PLATFORM = MIPS/ARM/X86EM/SH3/SH4). The *.lib files go - into ../Lib/PLATFORM and the *.dll into ../bin/PLATFORM. - Also, the DLL's were renamed from ace_dll.dll and - ace_os_dll.dll to ace[d].dll and ace_os[d].dll. - - * bin/pippen.pl: - - Changed the environment variables from DEFAULT_COMPILER and - DEFAULT_CONFIGS to PIPPEN_COMPILER and PIPPEN_CONFIGS. Also - used \Q\E for the configs because some of the Windows CE - configs confused the script because they use parentheses. - -Sat Mar 10 16:59:51 2001 Carlos O'Ryan - - * ACE-INSTALL.html: - Remove references to the now obsolete config-linux-lxpthreads.h - and platform_linux_lxpthread.GNU - -Sat Mar 10 16:38:22 2001 Carlos O'Ryan - - * tests/run_test.lst: - Running the Recursive_Mutex_Test on single-threaded builds makes - very little sense. - -Sat Mar 10 16:35:19 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Add new tests: Muxing, Crashed_Callback, Client_Leaks and - Server_Leaks to the nightly runs. - -Sat Mar 10 17:55:53 2001 Douglas C. Schmidt - - * include/makeinclude: Zapped the platform_linux_pthread.GNU, - platform_linux_lxpthread.GNU, and platform_linux_lxpthreads.GNU - files since they are confusing and shouldn't not be used in - favor of platform_linux.GNU. - - * ace: Zapped the config-linux.pthread.h and config-linux-lxpthreads.h - file since they are confusing and shouldn't not be used in favor - of config-linux.h. Thanks to Craig Rodrigues for this - suggestion. - -Sat Mar 10 12:39:16 2001 Craig Rodrigues - - * ace/Reactor.h: - * ace/WFMO_Reactor.h: - * ace/Select_Reactor_T.h: - * ace/Reactor_Impl.h: - Cleaned up comment for schedule_timer() - -Sat Mar 10 07:05:16 2001 Douglas C. Schmidt - - * tests: Added Logging_Strategy_Test.cpp. Thanks to Orlando - Ribeiro for contributing this. - - * tests/Makefile (BIN): Added Logging_Strategy_Test. - - * tests/run_test.lst: Added Log_Msg_Test and - the new Logging_Strategy_Test. - - * tests/Log_Msg_Test.cpp: Added ACE_TEXT macros to all the ACE_DEBUG and - ACE_ERROR calls. - - * ace/Service_Manager.{h,cpp}: Refactored the request processing - code so that it's in a single place. Also, added support to - enable remote reconfiguration. Thanks to Mike Curtis - for contributing this. - - * ace/Logging_Strategy.cpp (parse_args): Fixed a mistaken - re-initialization of the thread_priority_mask_ and the - process_priority_mask_. Thanks to Martin Krumpolec - for reporting this. - - * ace/Local_Name_Space_T.cpp (create_manager_i): Fixed this code so that - it doesn't fail if run on a directory that doesn't support locks - (like some NFS mounts). Thanks to scott snyder - for reporting this. - - * tests/SOCK_Connector_Test.cpp: Split up a loop so that the test - doesn't hang on RedHat Linux 7.0. Thanks to Michael Searles - for this fix. - -Fri Mar 9 22:39:28 2001 Carlos O'Ryan - - * ace/Svc_Conf.h: - * ace/Service_Config.h: - * ace/Service_Config.cpp: - Add new method to the Service Configurator to add static - services into the repository, this factors out common code used - in the ORB and ACE. In general it fixes the hacks done this - past Feb 20th - -Fri Mar 9 16:47:15 2001 Priyanka Gontla - - * bin/nightlybuilds/builds.lst (LIST): - Added HPUX to the scoreboard. - -Fri Mar 9 14:34:34 2001 Chad Elliott - - * PACE/Makefile: - * apps/drwho/Makefile: - * bin/PerlACE/Process_Unix.pm: - * include/makeinclude/platform_chorus4.x_g++.GNU: - - Modifications to make things build and run correctly with - Chorus 4.0.1. - -Thu Mar 8 08:38:01 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - The Single_Threaded_POA test cannot run with minimum CORBA or - (isn't this ironic) on single threaded configurations. - -Wed Mar 07 20:25:51 2001 Carlos O'Ryan - - * bin/nightlybuilds/builds.lst: - Add QNX to the configurations in the scoreboard. - -Wed Mar 7 12:41:05 2001 Douglas C. Schmidt - - * ace/Select_Reactor_T.h, - * ace/Reactor_Impl.h, - * ace/WFMO_Reactor.h, - * ace/Reactor.h: Updated the comments to be more accurate. Thanks - to Craig Rodrigues for reporting this. - -Wed Mar 7 08:57:42 2001 Darrell Brunsch - - * ace/Asynch_IO.h: - Changed use of ACE_UNIMPLEMENTED_FUNC to just defining the - assignment operators outright. The point here is to just - provide any implementation, since the default one is flagged as - causing infinite recursion. - - Thanks to David Levine for pointing out this incorrect usage of - the macro. - - * ace/config-win32-msvc-5.h: - * ace/config-win32-msvc-6.h: - - @file comments were mismatched. - - * ace/config-win32.h: - - Changed config-win32-wince.h to config-WinCE.h. - - * ace/ace_wchar.h: - * ace/Log_Msg_NT_Event_Log.cpp: - - Changed several system calls to ACE_TEXT_* (and needed to - add some to ace_wchar.h) since they need the ACE_TEXT - treatment. - -Wed Mar 7 08:20:01 2001 Chad Elliott - - * ace/ARGV.cpp: - - Removed a warning about possible use of uninitialized variable. - - * bin/ace_ld: - - Added new functionality to filter out the harmless symbol size - change warnings for VxWorks 5.4. - - * examples/Shared_Malloc/test_multiple_mallocs.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - * examples/Shared_Malloc/test_position_independent_malloc.cpp: - - Renamed the typedef MALLOC to TEST_MALLOC. A MALLOC macro is - defined by a VxWorks system header. - -Wed Mar 7 06:11:52 2001 Douglas C. Schmidt - - * ace/Asynch_IO.h: Removed the unnecessary/improper ';' at the - end of the line. Thanks to Johnny Willemsen and Chris Kohlhoff - for reporting/fixing this. - - * ace/*_Connector.h: Clarified in the comments that the - ACE_Time_Value *timeout represents the *maximum* amount of time - to wait. If the server is not running, however, connect() can - return much sooner. Thanks to Dipti Jain - for motivating this. - -Tue Mar 6 14:14:06 2001 Darrell Brunsch - - Here are some fixes for MSVC 7 beta. Note that no project files - are checked in. Right now they will have to be generated from - the MSVC 5/6 files (The devenv.exe will do this automatically). - When MSVC 7 becomes released, we'll probably have to deal with - including their files (even if only for nightly builds). - - * ace/OS.h: - * ace/config-win32-msvc.h: - - Moved the inclusion of the crtdbg.h file to where it is being - used. This is mainly to alleviate some excessive inclusions. - - * ace/config-WinCE.h: - * ace/config-win32.h: - * ace/config-win32-msvc-5.h: (added) - * ace/config-win32-msvc-6.h: (added) - * ace/config-win32-msvc-7.h: (added) - * ace/config-win32-borland.h: - * ace/config-win32-common.h: - * ace/config-win32-ghs.h: - * ace/config-win32-msvc.h: - * ace/config-win32-visualage.h: - - Added a new config-win32-msvc-7.h with some new settings. While - doing this I also rearranged the files a bit. Everything now - goes through config-win32.h (and an error will occur if you - include the others directly). - - * ace/config-hpux-10.x-hpc++.h: - * ace/config-hpux-11.00.h: - * ace/config-win32-msvc-5.h: - * ace/config-win32-msvc-6.h: - * ace/README: - - Removed ACE_HAS_ONE_DEFINITION_RULE. Could not find this - actually used anywhere so I'm assuming it can be safely - removed. - - * ace/Asynch_IO.h: - - Added some dummy assignment operators. It seems that the default - ones produce infinite recursion (at least with MSVC 6 SP5 and - MSVC 7 beta) - - * ace/Future.h: - - Future_Holder needs to be ACE_Export-ed. - -Tue Mar 6 16:58:17 2001 Balachandran Natarajan - - * ace/ACE.cpp (format_hexdump): The format_hexdump () was missing - a space if the remaining message that needs dumping was less - than 16 bytes. Thansk to Johnny Willemsen" - for giving this fix. - -Tue Mar 6 11:25:53 2001 Carlos O'Ryan - - * bin/PerlACE/Process_Unix.pm: - Ignore SIGABRT too, because it is used by abort() and we call - that function to test the ORB under fault conditions. - -Tue Mar 6 12:25:34 2001 Chad Elliott - - * configure.in: - - The configure script was broken on major releases (i.e. those with - no beta numbers). A test for an empty string should have double - quotes around the variable. - -Tue Mar 6 10:16:31 2001 Darrell Brunsch - - * ace/config-win32-common.h: - Removed old comment about ACE_HAS_WINSOCK2 being related to - ACE_HAS_WINNT4. Thanks to Johnny Willemsen - for pointing this out. - -Tue Mar 6 10:13:03 2001 Carlos O'Ryan - - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Membership_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/RMCast/RMCast_Reordering_Test.cpp: - * tests/RMCast/RMCast_Retransmission_Test.cpp: - Use ACE_OS::time(0) to initialize the pseudo-random numbers - seed. It is good enough for our purposes, and it works on - platforms without 64-bit integer support. - -Mon Mar 5 13:56:33 2001 Douglas C. Schmidt - - * ace/Synch_T.{h,i}: Further simplified the new ACE_Guard constructor. - Thanks to Chris Kohlhoff for contributing - this. - -Mon Mar 5 19:20:45 2001 Fuzz Master D - - * bin/fuzz.pl: - As Ossama pointed out, the ACE_CHECK test was seeing - problems in the tao_idl files since it has uses of ACE_TRY_ENV - inside quotes. Made sure not to detect problems in this case. - -Mon Mar 5 18:58:32 2001 Fuzz Master D - - * bin/fuzz.pl: - Fixed some false positives in the resolve_initial_reference - test and also added an ACE_CHECK test by Carlos's request. - -Mon Mar 5 18:54:42 2001 Darrell Brunsch - - * bin/PerlACE/Process_Unix.pm: - Updated the signal detection to not pay attention to TERM and - KILL. Will print out better output when signals cause a process - to exit during most calls like Kill () or TerminateWaitKill (). - -Mon Mar 5 13:56:33 2001 Douglas C. Schmidt - - * ace/Synch_T.{h,i}: Added a new ACE_Guard constructor that - allows the caller to select whether the guard owns/acquires the - lock or not. Thanks to Chris Kohlhoff for - contributing this. - - * ace/Synch_T.{h,i}: Added a disown() method that relinquishes - ownership of the lock so that it is not released implicitly in - the destructor. Thanks to Chris Kohlhoff - for contributing this. - - * ace/Event_Handler.h: Updated the comment on handle_close() so that - it more accurately reflects what is going on. Thanks to Defang - Zhou for suggesting this. - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.{h,cpp}: Added - handle_close() operations to solve problems with certain - concurrency models. Thanks to Defang Zhou - for reporting this. - -Mon Mar 5 11:29:36 2001 Carlos O'Ryan - - * docs/ACE-categories.html: - Fixed links to the doxygen files. - - * ace/Pipe.cpp: - Fixed what looks like a typo, we want to *disable* the stream - pipes under QNX, not to enable them just on that platform. - -Mon Mar 5 08:20:21 2001 Carlos O'Ryan - - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - Undo Doug's changes. They broke the test. - -Mon Mar 5 07:52:52 2001 Douglas C. Schmidt - - * ace/Log_Record.cpp (priority): Clarified the behavior of the - priority() set/get methods. Thanks to Christian Schuhegger - for reporting this. - - * tests/RMCast/RMCast_Fragment_Test.cpp, - * tests/RMCast/RMCast_Reassembly_Test.cpp, - * tests/Dynamic_Priority_Test.cpp, - * tests/Thread_Pool_Test.cpp: Make sure to write into the - wr_ptr() rather than the rd_ptr(). Thanks to Gonzalo Diethelm - for reporting this. - -Mon Mar 5 08:00:23 2001 Chad Elliott - - * bin/nightlybuilds/builds.lst: - - Added new VxWorks 5.4 and Chorus 4.0.1 nightly builds. - -Mon Mar 05 00:10:15 2001 Ossama Othman - - * bin/fuzz.pl: - - Updated to detect missing ACE_TRY_ENV parameters in - ORB::resolve_initial_references() calls when emulated exceptions - are used. Thanks to Darrell for providing this update. - -Mon Mar 5 07:57:07 2001 Johnny Willemsen - - * tests/Makefile.bor: - - Added missing Refcounted_Auto_Ptr_Test to the build - -Sun Mar 4 19:31:16 2001 Darrell Brunsch - - * bin/auto_run_tests.lst: - - Added the run_test_mt.pl for Leader_Follers. - - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - - Added a destructor to detect if a process wasn't explicitly - killed before the object went out of scope. Will print out - an error and kill it. - - * bin/PerlACE/Run_Test.pm: - - Turned on autoflush for all scripts. - - * docs/run_test.txt: - - Updated run_test.pl instructions to fit all the changes I - just made. - - * examples/Export/run_test.pl: - * performance-tests/RPC/run_test.pl: - * performance-tests/TCP/run_test.pl: - * performance-tests/UDP/run_test.pl: - - Updated to use PerlACE::Run_Test; - - * tests/Atomic_Op_Test.dsp: - * tests/Auto_IncDec_Test.dsp: - * tests/Barrier_Test.dsp: - * tests/Basic_Types_Test.dsp: - * tests/Buffer_Stream_Test.dsp: - * tests/CDR_Array_Test.dsp: - * tests/CDR_File_Test.dsp: - * tests/CDR_Test.dsp: - * tests/Cache_Map_Manager_Test.dsp: - * tests/Cached_Accept_Conn_Test.dsp: - * tests/Cached_Conn_Test.dsp: - * tests/Capabilities_Test.dsp: - * tests/Collection_Test.dsp: - * tests/Config_Test.dsp: - * tests/Conn_Test.dsp: - * tests/DLL_Test.dsp: - * tests/DLList_Test.dsp: - * tests/Dirent_Test.dsp: - * tests/Dynamic_Priority_Test.dsp: - * tests/Enum_Interfaces_Test.dsp: - * tests/Env_Value_Test.dsp: - * tests/Future_Set_Test.dsp: - * tests/Future_Test.dsp: - * tests/Handle_Set_Test.dsp: - * tests/Hash_Map_Bucket_Iterator_Test.dsp: - * tests/Hash_Map_Manager_Test.dsp: - * tests/High_Res_Timer_Test.dsp: - * tests/IOStream_Test.dsp: - * tests/Lazy_Map_Manager_Test.dsp: - * tests/Log_Msg_Test.dsp: - * tests/MEM_Stream_Test.dsp: - * tests/MM_Shared_Memory_Test.dsp: - * tests/MT_Reactor_Timer_Test.dsp: - * tests/MT_SOCK_Test.dsp: - * tests/Malloc_Test.dsp: - * tests/Map_Manager_Test.dsp: - * tests/Map_Test.dsp: - * tests/Mem_Map_Test.dsp: - * tests/Message_Block_Test.dsp: - * tests/Message_Queue_Notifications_Test.dsp: - * tests/Message_Queue_Test.dsp: - * tests/Message_Queue_Test_Ex.dsp: - * tests/Naming_Test.dsp: - * tests/New_Fail_Test.dsp: - * tests/Notify_Performance_Test.dsp: - * tests/OS_Test.dsp: - * tests/Object_Manager_Test.dsp: - * tests/OrdMultiSet_Test.dsp: - * tests/Pipe_Test.dsp: - * tests/Priority_Buffer_Test.dsp: - * tests/Priority_Reactor_Test.dsp: - * tests/Priority_Task_Test.dsp: - * tests/Process_Manager_Test.dsp: - * tests/Process_Mutex_Test.dsp: - * tests/Process_Strategy_Test.dsp: - * tests/RB_Tree_Test.dsp: - * tests/Reactor_Exceptions_Test.dsp: - * tests/Reactor_Notify_Test.dsp: - * tests/Reactor_Performance_Test.dsp: - * tests/Reactor_Timer_Test.dsp: - * tests/Reactors_Test.dsp: - * tests/Reader_Writer_Test.dsp: - * tests/Recursive_Mutex_Test.dsp: - * tests/Refcounted_Auto_Ptr_Test.dsp: - * tests/Reverse_Lock_Test.dsp: - * tests/SOCK_Connector_Test.dsp: - * tests/SOCK_Send_Recv_Test.dsp: - * tests/SOCK_Test.dsp: - * tests/SPIPE_Test.dsp: - * tests/SString_Test.dsp: - * tests/SV_Shared_Memory_Test.dsp: - * tests/Semaphore_Test.dsp: - * tests/Service_Config_Test.dsp: - * tests/Sigset_Ops_Test.dsp: - * tests/Simple_Message_Block_Test.dsp: - * tests/Svc_Handler_Test.dsp: - * tests/TSS_Test.dsp: - * tests/Task_Test.dsp: - * tests/Thread_Manager_Test.dsp: - * tests/Thread_Mutex_Test.dsp: - * tests/Thread_Pool_Reactor_Test.dsp: - * tests/Thread_Pool_Test.dsp: - * tests/Time_Service_Test.dsp: - * tests/Time_Value_Test.dsp: - * tests/Timeprobe_Test.dsp: - * tests/Timer_Queue_Test.dsp: - * tests/Tokens_Test.dsp: - * tests/UPIPE_SAP_Test.dsp: - * tests/Upgradable_RW_Test.dsp: - * tests/version_tests/Atomic_Op_Test.dsp: (removed) - * tests/version_tests/Auto_IncDec_Test.dsp: (removed) - * tests/version_tests/Barrier_Test.dsp: (removed) - * tests/version_tests/Basic_Types_Test.dsp: (removed) - * tests/version_tests/Buffer_Stream_Test.dsp: (removed) - * tests/version_tests/CDR_Array_Test.dsp: (removed) - * tests/version_tests/CDR_File_Test.dsp: (removed) - * tests/version_tests/CDR_Test.dsp: (removed) - * tests/version_tests/Cache_Map_Manager_Test.dsp: (removed) - * tests/version_tests/Cached_Accept_Conn_Test.dsp: (removed) - * tests/version_tests/Cached_Conn_Test.dsp: (removed) - * tests/version_tests/Capabilities_Test.dsp: (removed) - * tests/version_tests/Collection_Test.dsp: (removed) - * tests/version_tests/Config_Test.dsp: (removed) - * tests/version_tests/Conn_Test.dsp: (removed) - * tests/version_tests/DLL_Test.dsp: (removed) - * tests/version_tests/DLList_Test.dsp: (removed) - * tests/version_tests/Dirent_Test.dsp: (removed) - * tests/version_tests/Dynamic_Priority_Test.dsp: (removed) - * tests/version_tests/Enum_Interfaces_Test.dsp: (removed) - * tests/version_tests/Env_Value_Test.dsp: (removed) - * tests/version_tests/Future_Set_Test.dsp: (removed) - * tests/version_tests/Future_Test.dsp: (removed) - * tests/version_tests/Handle_Set_Test.dsp: (removed) - * tests/version_tests/Hash_Map_Bucket_Iterator_Test.dsp: (removed) - * tests/version_tests/Hash_Map_Manager_Test.dsp: (removed) - * tests/version_tests/High_Res_Timer_Test.dsp: (removed) - * tests/version_tests/IOStream_Test.dsp: (removed) - * tests/version_tests/Lazy_Map_Manager_Test.dsp: (removed) - * tests/version_tests/Log_Msg_Test.dsp: (removed) - * tests/version_tests/MEM_Stream_Test.dsp: (removed) - * tests/version_tests/MM_Shared_Memory_Test.dsp: (removed) - * tests/version_tests/MT_Reactor_Timer_Test.dsp: (removed) - * tests/version_tests/MT_SOCK_Test.dsp: (removed) - * tests/version_tests/Malloc_Test.dsp: (removed) - * tests/version_tests/Map_Manager_Test.dsp: (removed) - * tests/version_tests/Map_Test.dsp: (removed) - * tests/version_tests/Mem_Map_Test.dsp: (removed) - * tests/version_tests/Message_Block_Test.dsp: (removed) - * tests/version_tests/Message_Queue_Notifications_Test.dsp: (removed) - * tests/version_tests/Message_Queue_Test.dsp: (removed) - * tests/version_tests/Message_Queue_Test_Ex.dsp: (removed) - * tests/version_tests/Naming_Test.dsp: (removed) - * tests/version_tests/New_Fail_Test.dsp: (removed) - * tests/version_tests/Notify_Performance_Test.dsp: (removed) - * tests/version_tests/OS_Test.dsp: (removed) - * tests/version_tests/Object_Manager_Test.dsp: (removed) - * tests/version_tests/OrdMultiSet_Test.dsp: (removed) - * tests/version_tests/Pipe_Test.dsp: (removed) - * tests/version_tests/Priority_Buffer_Test.dsp: (removed) - * tests/version_tests/Priority_Reactor_Test.dsp: (removed) - * tests/version_tests/Priority_Task_Test.dsp: (removed) - * tests/version_tests/Process_Manager_Test.dsp: (removed) - * tests/version_tests/Process_Mutex_Test.dsp: (removed) - * tests/version_tests/Process_Strategy_Test.dsp: (removed) - * tests/version_tests/RB_Tree_Test.dsp: (removed) - * tests/version_tests/Reactor_Exceptions_Test.dsp: (removed) - * tests/version_tests/Reactor_Notify_Test.dsp: (removed) - * tests/version_tests/Reactor_Performance_Test.dsp: (removed) - * tests/version_tests/Reactor_Timer_Test.dsp: (removed) - * tests/version_tests/Reactors_Test.dsp: (removed) - * tests/version_tests/Reader_Writer_Test.dsp: (removed) - * tests/version_tests/Recursive_Mutex_Test.dsp: (removed) - * tests/version_tests/Refcounted_Auto_Ptr_Test.dsp: (removed) - * tests/version_tests/Reverse_Lock_Test.dsp: (removed) - * tests/version_tests/SOCK_Connector_Test.dsp: (removed) - * tests/version_tests/SOCK_Send_Recv_Test.dsp: (removed) - * tests/version_tests/SOCK_Test.dsp: (removed) - * tests/version_tests/SPIPE_Test.dsp: (removed) - * tests/version_tests/SString_Test.dsp: (removed) - * tests/version_tests/SV_Shared_Memory_Test.dsp: (removed) - * tests/version_tests/Semaphore_Test.dsp: (removed) - * tests/version_tests/Service_Config_Test.dsp: (removed) - * tests/version_tests/Sigset_Ops_Test.dsp: (removed) - * tests/version_tests/Simple_Message_Block_Test.dsp: (removed) - * tests/version_tests/Svc_Handler_Test.dsp: (removed) - * tests/version_tests/TSS_Test.dsp: (removed) - * tests/version_tests/Task_Test.dsp: (removed) - * tests/version_tests/Thread_Manager_Test.dsp: (removed) - * tests/version_tests/Thread_Mutex_Test.dsp: (removed) - * tests/version_tests/Thread_Pool_Reactor_Test.dsp: (removed) - * tests/version_tests/Thread_Pool_Test.dsp: (removed) - * tests/version_tests/Time_Service_Test.dsp: (removed) - * tests/version_tests/Time_Value_Test.dsp: (removed) - * tests/version_tests/Timeprobe_Test.dsp: (removed) - * tests/version_tests/Timer_Queue_Test.dsp: (removed) - * tests/version_tests/Tokens_Test.dsp: (removed) - * tests/version_tests/UPIPE_SAP_Test.dsp: (removed) - * tests/version_tests/Upgradable_RW_Test.dsp: (removed) - * tests/version_tests/run_all_tests.bat: (removed) - * tests/version_tests/version_tests.dsw: (removed) - - Moved the version_tests back into the tests/*.dsp files. The - reason they were originally moved is because it was easier to - select all the debug versions during a batch build. But now we - have pippen.pl and msvc_auto_compile.pl, so this is no longer an - issue, while this strange setup would compilicate the nightly - builds. Thus, it was standardized back. - - * bin/create_vt_dsps.pl: (removed) - - No need for this anymore. - -Sun Mar 4 19:27:42 2001 Darrell Brunsch - - * ace/Log_Msg.cpp: - * ace/Log_Msg_NT_Event_Log.h: - * ace/OS.cpp: - - Disabled Log_Msg_NT_Event_Log on Windows CE. - -Sun Mar 04 13:19:35 2001 Carlos O'Ryan - - * etc/tao.doxygen: - Add .txt files, so we can add web pages to the basic TAO - documentation. - -Sun Mar 04 10:58:08 2001 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added Log_Msg_NT_Event_Log.{h,cpp} to NT - project files. - -Sun Mar 4 10:41:57 2001 Douglas C. Schmidt - - * ace/Log_Msg.cpp, - ace/Log_Msg.h, - ace/Logging_Strategy.cpp, - ace/Makefile.bor, - ace/OS.cpp, - ace/OS.h, - ace/OS.i, - ace/ace.rc: Added support for the new NT event logging capability. - Thanks to Chris Kohlhoff for contributing this. - - * ace/Log_Msg_NT_Event_Log.cpp - ace/Log_Msg_NT_Event_Log.h - ace/ace_message_table.bin: Added these files to support the new - NT event logging capability. - Thanks to Chris Kohlhoff for contributing - this. - -Sun Mar 4 04:46:44 2001 Darrell Brunsch - - * bin/nightlybuilds/builds.lst: - - Added new Windows CE nightly build. - -Sun Mar 04 03:12:17 2001 Nanbor Wang - - * bin/generate_export_file.pl: ACE_AS_STATIC_LIBS was incorrectly - typed in as ACE_STATIC_LIBS. - - * ace/svc_export.h: - * ace/RMCast/RMCast_Export.h: - * ace/SSL/SSL_Export.h: - * websvcs/lib/websvcs_export.h: These files didn't check for - ACE_AS_STATIC_LIBS to determine if they should define their - export macros for static build. Thanks to Chris Kohlhoff - for reporting this. [Bug 813] - -Sat Mar 3 19:07:31 2001 Pradeep Gore - - * ace/QoS/QoS_Session_Impl.cpp: - * ace/QoS/QoS_Session_Impl.i: - * examples/QOS/Fill_ACE_QoS.cpp: - * examples/QOS/Fill_ACE_QoS.h: - * examples/QOS/Makefile: - * examples/QOS/QoS_Util.cpp: - * examples/QOS/Receiver_QoS_Event_Handler.cpp: - * examples/QOS/Sender_QoS_Event_Handler.cpp: - Fixed various compile warnings when compiling with rapi=1 on - Redhat Linux 6.2 - -Sat Mar 3 16:47:53 2001 Darrell Brunsch - - * bin/fuzz.pl: - - Changed the detection pattern a bit to pick up - stuff like: - - void - operator < (...) - - better. - - * ace/Auto_Ptr.i: - * ace/Base_Thread_Adapter.cpp: - * ace/Based_Pointer_T.i: - * ace/Connector.cpp: - * ace/Containers_T.cpp: - * ace/DEV_Addr.i: - * ace/Dynamic.i: - * ace/FILE.cpp: - * ace/Flag_Manip.i: - * ace/Handle_Set.i: - * ace/Hash_Map_Manager_T.cpp: - * ace/Lib_Find.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Local_Tokens.cpp: - * ace/MEM_Addr.i: - * ace/Malloc.cpp: - * ace/Malloc_Allocator.cpp: - * ace/Malloc_T.cpp: - * ace/Memory_Pool.cpp: - * ace/Message_Block.cpp: - * ace/Message_Block.i: - * ace/Message_Block_T.cpp: - * ace/Message_Queue.i: - * ace/Message_Queue_T.cpp: - * ace/Message_Queue_T.i: - * ace/Naming_Context.cpp: - * ace/OS.cpp: - * ace/OS.i: - * ace/PI_Malloc.cpp: - * ace/POSIX_Asynch_IO.cpp: - * ace/Process_Manager.cpp: - * ace/QtReactor.cpp: - * ace/RB_Tree.i: - * ace/RW_Process_Mutex.cpp: - * ace/Reactor.cpp: - * ace/Remote_Name_Space.cpp: - * ace/Remote_Tokens.cpp: - * ace/SOCK_Dgram.i: - * ace/SString.cpp: - * ace/SUN_Proactor.cpp: - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.cpp: - * ace/Service_Object.i: - * ace/Service_Repository.cpp: - * ace/Signal.cpp: - * ace/Signal.i: - * ace/Svc_Handler.cpp: - * ace/Synch.cpp: - * ace/Synch_T.cpp: - * ace/Thread_Adapter.cpp: - * ace/Thread_Manager.cpp: - * ace/Timer_Heap_T.cpp: - * ace/TkReactor.cpp: - * ace/Token.cpp: - * ace/Token_Manager.cpp: - * ace/CLASSIX/CLASSIX_CO_Acceptor.i: - * ace/CLASSIX/CLASSIX_Select_Reactor.cpp: - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - * netsvcs/ACE-netsvcs.html: - * netsvcs/lib/Server_Logging_Handler_T.cpp: - * netsvcs/lib/Token_Handler.cpp: - - Fixed bad ACE_TRACE and ACE_OS_TRACE's. (fuzz errors) - - * docs/ACE-categories.html: - * docs/ACE-porting.html: - * docs/ACE-subsets.html: - * docs/tutorials/new-tutorials.html: - - Changed references to - http://www.cs.wustl.edu/~schmidt/ACE_wrappers/* to - relative paths instead (Fixes the last of the fuzz errors). - -Fri Mar 2 20:08 Angelo Corsaro - - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - Added macros tha expand to multiple libraries - on QNX RTP to fix most of the link problems. - -Fri Mar 2 16:35:58 2001 Darrell Brunsch - - * ace/config-win32-borland.h: - - Added /**/ to #include so it isn't picked up by - MSVC-based dependency generators. - -Fri Mar 02 19:36:22 2001 Steve Huston - - * ace/OS.i (ACE_OS::send): (only non-Win32), if call fails and - errno is EAGAIN, change it to EWOULDBLOCK. Improve portability - for platforms where EAGAIN and EWOULDBLOCK are different values - and both used, like HP-UX. Thanks to Michael Grove - for reporting this problem. - - * ace/ACE.i (send_i): Call ACE_OS::send, not ACE_OS::write, on HP-UX. - This makes it pick up the EAGAIN->EWOULDBLOCK change. - - * tests/TSS_Test.cpp: Avoid doing ACE_Thread::keyfree on where - ACE_HAS_PTHREADS_DRAFT4 or ACE_HAS_PTHREADS_DRAFT6 (unless - ACE_HAS_TSS_EMULATION is also defined) since ACE_Thread::keyfree - will get ENOTSUP anyway. - -Fri Mar 02 17:50:40 2001 Sharath R. Cholleti - - * ace/QtReactor.cpp: - Thanks to Stefan Scherer for reporting - and fixing the problem - crashing of TAO/tests/QtTests/ client - example after moving the slider. - -Fri Mar 02 15:35:40 2001 Nanbor Wang - - * ace/MEM_Acceptor.cpp: - * ace/MEM_Acceptor.h: - * ace/MEM_Addr.cpp: - * ace/MEM_Addr.h: - * ace/MEM_Connector.cpp: - * ace/MEM_Connector.h: - * ace/MEM_IO.cpp: - * ace/MEM_IO.h: - * ace/MEM_SAP.cpp: - * ace/MEM_SAP.h: - * ace/MEM_Stream.cpp: - * ace/MEM_Stream.h: Disabled MEM_Stream support if one chooses - not to support position independent pointers. - -Fri Mar 02 13:17:36 2001 Steve Huston - - * examples/IOStream/server/iostream_server.cpp (main): Removed the - call to register peer_acceptor with the reactor. The - acceptor::open call already registers for ACCEPT_MASK. Prevents - leaving a hanging READ_MASK registered after the acceptor is - destroyed when main() returns. This fixes Bugzilla # 801. Thanks - to Pim Philipse for reporting this. - - * THANKS: Added Pim Philipse to the Hall of Fame. - -Fri Mar 02 12:24:27 2001 Steve Huston - - * ace/config-hpux-10.x-hpc++.h: If compiling without exceptions - (+noeh) then don't set ACE_HAS_EXCEPTIONS (don't set - ACE_NEW_THROWS_EXCEPTIONS either). - - * ace/Thread_Manager.cpp (join_thr): Moved the code for - ACE_HAS_PTHREADS_DRAFT4 that does a pthread_detach from here to - ACE_OS::thr_join (which this function calls) so that - ACE_Thread::join also causes a pthread_detach. This is needed on - Pthreads Draft 4 (HP-UX 10.x) to properly clean up the thread - storage and avoid leaking memory. Thanks to Vladimir Kondratiev - for reporting this and providing - excellent test cases to help resolve it quickly. - - * ace/OS.i (ACE_OS::thr_join): Added the code that was removed from - ACE_Thread_Manager::join_thr, above. - - * ace/Event_Handler.cpp (~ACE_Event_Handler): Add an ACE_Errno_Guard - around purge_pending_notifications to prevent against an ENOTSUP - from purge_pending_notifications. - -Thu Mar 1 17:02:10 2001 Darrell Brunsch - - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - - Fixed up the Spawn code to use the Executable () instead of - {EXECUTABLE}, since that's how we get the adjusted name (with - .exe and stuff). And also skipped the file existance with - IgnoreExeSubDir, since IgnoreExeSubDir is often used when you - need to find the program in the path. - -Thu Mar 1 15:48:10 2001 Darrell Brunsch - - * bin/fuzz.pl: - - Fuzz was being a bit to eager with the class matching in the - TRACE test. It was having problems with something like: - - char *foo::bar () - - since it thought the class was "char *foo" instead of just - "foo". - - But it is feeling muuuuuuch better now. - -Thu Mar 1 13:18:07 2001 Darrell Brunsch - - * bin/fuzz.pl: - - Added two new tests: - - - absolute ACE_wrappers test: - - Check for ~schmidt/ACE_wrappers in html files. These should - be relative links since these html files already exist in - their own ACE_wrappers tree. - - - TRACE test: - - Does a check on whether the ACE_TRACE or ACE_OS_TRACE actually - refers to the function/method it is in. - - And expanded the checks in the bad run_test test (level 6) - - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - - - Added checks for file existence before running. - - Added IgnoreExeSubDir option. - - Added TerminateWaitKill method. - - * bin/pippen.pl: (added) - * bin/PerlACE/MSProject.pm: (added) - * bin/PerlACE/MSProject/DSP.pm: (added) - * bin/PerlACE/MSProject/VCP.pm: (added) - - There is nothing to see here...please be on your way. - - It isn't like this is a super top secret project to - replace msvc_auto_compile.pl with something that works - better and also has a cool code-name that is shorter - than "msvc_auto_compile.pl". - - But remember, you didn't hear that from me. - -Thu Mar 1 10:54:23 2001 Ossama Othman - - * bin/auto_run_tests.lst: - - Added the TAO Codec to the list of tests to run. - - * include/makeinclude/wrapper_macros.GNU: - - Fixed all incorrect uses of CFLAGS and CCFLAGS where - preprocessor macros were defined. Preprocessor macros should be - defined in the CPPFLAGS variable. - - Define ACE_USE_RCSID in non-debug builds (i.e. debug=0). - -Thu Mar 01 07:29:58 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Fixed typos in the Service_Context_Manipulation test. It was - running in platforms where it shouldn't. - -Thu Mar 01 07:07:03 2001 Christopher Kohlhoff - - * include/makeinclude/recurse.bor: - Added support for makefiles which contain multiple targets. - - * examples/IPC_SAP/SOCK_SAP/Makefile.bor: - * examples/Log_Msg/Makefile.bor: - * examples/Map_Manager/Makefile.bor: - * examples/Mem_Map/file-reverse/Makefile.bor: - * examples/RMCast/Send_File/Makefile.bor: - * examples/Service_Configurator/IPC-tests/client/Makefile.bor: - * examples/Threads/Makefile.bor: - * netsvcs/clients/Logger/Makefile.bor: - * tests/Makefile.bor: - * tests/RMCast/Makefile.bor: - Updated to work with new multi-target makefile support. - -Wed Feb 28 22:58:50 2001 Carlos O'Ryan - - * html/index.html: - Reference */index.html directly, instead of assuming that the - web browser will use index.html as the default file, this also - works better when browsing locally. Thanks to Alain Decamps - for pointing this out. - -Wed Feb 28 16:41:42 2001 Darrell Brunsch - - * docs/bugzilla-build-setup.html: - - Updated the section about the scoreboard and added a - placeholder for Win32 nightly build information. - -Wed Feb 28 16:04:14 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst (TYPE): Added a build with AMI and - Messaging support disabled for the nightly builds. - -Wed Feb 28 15:35:59 2001 Joe Hoffert - - * docs/bugzilla-build-setup.html: - Added html file outlining steps for adding a bugzilla nightly - build. - -Wed Feb 28 00:25:42 2001 Darrell Brunsch - - * bin/auto_run_tests.lst: - - The examples/POA/Adapter_Activator/run_test.pl test was being - run twice. In fairness to all the other tests that only get to - run once, I removed the second instance. - -Tue Feb 27 17:31:48 2001 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Turn on -D_REENTRANT for - the threads=0 build - this enables the reentrant functions which - are present, threads or not. It does not turn on threads, which - are instead enabled by -D_POSIX_C_SOURCE=199506L. - - * ace/config-hpux-11.00.h: Added ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R - - * ace/OS.i (rand_r): Added 'defined (HPUX_11)' to the ways to get to - the POSIX.1c-conformant version of rand_r. Allows clean compile - on HP-UX 11 without thread support. Also lined up some - misaligned #if/else/endif lines to make it easier to find one's - way through. - - * ace/OS_Dirent.inl (readdir_r): Added 'defined (HPUX_11)' to the - ways to get the POSIX.1c-conformant version of readdir_r. Allows - clean compile on HP-UX 11 without thread support. - -Tue Feb 27 11:38:38 2001 Douglas C. Schmidt - - * performance-tests/TCP/tcp_test.cpp (main): Zapped the - non-existent '-f' option. Thanks to Mike Curtis for reporting - this. - - * performance-tests/TCP/tcp_test.cpp (main): Check for improper - bufsz. Thanks to Mike Curtis for reporting this. - - * performance-tests/TCP/tcp_test.cpp (main): Documented the '-t' - option, which specifies the number of threads. - - * performance-tests/TCP/README: Fixed a typo. Thanks to - Mike Curtis for reporting this. - -Tue Feb 27 10:51:18 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the AMI tests to the daily - builds. - -Tue Feb 27 10:23:20 2001 Balachandran Natarajan - - * Makefile: Changed the ChangeLog listing in the CONTROLLED_FILES - to ChangeLog*. This should help us to avoid missing ChangeLog - entries in the beta distribution, just about every time we split - and add a ChangeLog. - -Mon Feb 27 07:39:16 2001 Chad Elliott - - * include/makeinclude/platform_hpux_aCC.GNU: - - Removed suppression of Future Error 129. - Removed the use of CFLAGS. - - * ace/OS.h: - * ace/config-hpux-11.00.h: - Modification to remove system header macro definition conflicts. - This change does not suppress the conflicts, but does an undef - of the two conflicting macros before includeing tcp.h. Thanks - to Sam Chong for reporting this problem. - -Mon Feb 26 19:01:16 2001 Douglas C. Schmidt - - * ace/Logging_Strategy.{h,cpp}: Added a new -k option to - set the logging key via the ACE_Logging_Strategy. Thanks to - Chris Kohlhoff for contributing this. - -Mon Feb 26 18:18:38 2001 Steve Huston - - * ace/SString.i - (ACE_CString::find (const char *s, int pos) const): - (ACE_CString::find (char c, int pos) const): - (ACE_SString::find (const char *s, int pos) const): - (ACE_SString::find (char c, int pos) const): - (ACE_WString::find (const ACE_WSTRING_TYPE *s, int pos) const): - If match is found, return index from start of string, not from - 'pos'. Matches the C++ string standard, which was the model for - these classes. Thanks to Glen Osterhout - for this fix. - - * ace/SString.h: Clarified comments on return value for above - functions. - - * tests/SString_Test.cpp: Changed to look for the correct return - from the npos tests of the functions above. - - * THANKS: Added Glen Osterhout to the Hall of Fame. - -Mon Feb 26 15:01:55 2001 Darrell Brunsch - - * tests/DLL_Test_Impl.dsp: - * tests/version_tests/DLL_Test_Impl.dsp: (removed) - Me thinks that the Release and Static configurations should - also compile, and me thinks that it is now fixed. - -Mon Feb 26 12:29:45 2001 Douglas C. Schmidt - - * ace/ARGV.h: Clarify that the int add (const ACE_TCHAR *next_arg) - method assumes ownership of , rather than copying it. - Thanks to Steve Hespelt for reporting this. - Fixes [Bug 807]. - - The generated version_tests dsp didn't work (since DLL_Test_Impl - creates a library). Manually created the configurations in the - tests/DLL_Test_Impl.dsp version instead. - -Mon Feb 26 15:54:33 2001 Phil Mesnier - - Port to Unixware 7 (7.1.1) Using UDK CC (7.1.1.b) - - * docs/tutorials/013/message_queue.cpp: - * tests/Malloc_Test.cpp: - - Fixed errors in #pragma instiate lines including removal of ';', - mispellings - - * ace/config-all.h: - - Added definition of Unixware UDK for definition of ACE_NOTREACHED() - - * ace/config-unixware-7.1.0.udk.h: - * include/makeinclude/platform_unixware_udk.GNU: - - New configuration files for building on Unixware 7 with UDK CC. - -Mon Feb 26 12:29:45 2001 Douglas C. Schmidt - - * ace/ARGV.h: Clarify that the int add (const ACE_TCHAR *next_arg) - method assumes ownership of , rather than copying it. - Thanks to Steve Hespelt for reporting this. - Fixes [Bug 807]. - -Mon Feb 26 12:27:46 2001 Jeff Parsons - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - Added method to reset the byte order in class OuputCDR. This - will be used by a gateway to set the byte order of a reply to a - reqest it has handled to one different than the gateway's own - byte order, if necessary. It should be called while the stream - is still empty, that is, before any part of the reply, including - the header, has been marshaled. - -Mon Feb 26 12:07:00 2001 Nanbor Wang - - * ace/Memory_Pool.cpp: Moved the copying of MMAP flags up before - setting the MAP_FIXED flag. Thanks to for - reporting this. [Bug 752] - -Mon Feb 26 09:29:36 2001 Carlos O'Ryan - - * ace/RB_Tree.h: - Fully qualified enum name. This fixes problems on gcc-272 builds. - -Mon Feb 26 00:19:28 2001 Darrell Brunsch - - Time to do some spring cleaning... - - * tests/version_tests/Config_Test.dsp: (added) - * tests/version_tests/DLL_Test_Impl.dsp: (added) - * tests/version_tests/Log_Msg_Test.dsp: (added) - * tests/version_tests/Message_Queue_Test_Ex.dsp: (added) - * tests/version_tests/version_tests.dsw: - - Updated the version_tests dir with create_vt_dsps.pl. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - * netsvcs/lib/netsvcs.dsp: - * netsvcs/servers/servers.dsp: - * tests/ACE_Init_Test.dsp: - * tests/Atomic_Op_Test.dsp: - * tests/Auto_IncDec_Test.dsp: - * tests/Barrier_Test.dsp: - * tests/Basic_Types_Test.dsp: - * tests/Buffer_Stream_Test.dsp: - * tests/CDR_Array_Test.dsp: - * tests/CDR_File_Test.dsp: - * tests/CDR_Test.dsp: - * tests/Cache_Map_Manager_Test.dsp: - * tests/Cached_Accept_Conn_Test.dsp: - * tests/Cached_Conn_Test.dsp: - * tests/Capabilities_Test.dsp: - * tests/Collection_Test.dsp: - * tests/Config_Test.dsp: - * tests/Conn_Test.dsp: - * tests/DLL_Test.dsp: - * tests/DLList_Test.dsp: - * tests/Dirent_Test.dsp: - * tests/Dynamic_Priority_Test.dsp: - * tests/Enum_Interfaces_Test.dsp: - * tests/Env_Value_Test.dsp: - * tests/Future_Set_Test.dsp: - * tests/Future_Test.dsp: - * tests/Handle_Set_Test.dsp: - * tests/Hash_Map_Bucket_Iterator_Test.dsp: - * tests/Hash_Map_Manager_Test.dsp: - * tests/High_Res_Timer_Test.dsp: - * tests/IOStream_Test.dsp: - * tests/Lazy_Map_Manager_Test.dsp: - * tests/Log_Msg_Test.dsp: - * tests/MEM_Stream_Test.dsp: - * tests/MM_Shared_Memory_Test.dsp: - * tests/MT_Reactor_Timer_Test.dsp: - * tests/MT_SOCK_Test.dsp: - * tests/Malloc_Test.dsp: - * tests/Map_Manager_Test.dsp: - * tests/Map_Test.dsp: - * tests/Mem_Map_Test.dsp: - * tests/Message_Block_Test.dsp: - * tests/Message_Queue_Notifications_Test.dsp: - * tests/Message_Queue_Test.dsp: - * tests/Message_Queue_Test_Ex.dsp: - * tests/Naming_Test.dsp: - * tests/New_Fail_Test.dsp: - * tests/Notify_Performance_Test.dsp: - * tests/OS_Test.dsp: - * tests/Object_Manager_Test.dsp: - * tests/OrdMultiSet_Test.dsp: - * tests/Pipe_Test.dsp: - * tests/Priority_Buffer_Test.dsp: - * tests/Priority_Reactor_Test.dsp: - * tests/Priority_Task_Test.dsp: - * tests/Process_Manager_Test.dsp: - * tests/Process_Mutex_Test.dsp: - * tests/Process_Strategy_Test.dsp: - * tests/RB_Tree_Test.dsp: - * tests/Reactor_Exceptions_Test.dsp: - * tests/Reactor_Notify_Test.dsp: - * tests/Reactor_Performance_Test.dsp: - * tests/Reactor_Timer_Test.dsp: - * tests/Reactors_Test.dsp: - * tests/Reader_Writer_Test.dsp: - * tests/Recursive_Mutex_Test.dsp: - * tests/Refcounted_Auto_Ptr_Test.dsp: - * tests/Reverse_Lock_Test.dsp: - * tests/SOCK_Connector_Test.dsp: - * tests/SOCK_Send_Recv_Test.dsp: - * tests/SOCK_Test.dsp: - * tests/SPIPE_Test.dsp: - * tests/SString_Test.dsp: - * tests/SV_Shared_Memory_Test.dsp: - * tests/Semaphore_Test.dsp: - * tests/Service_Config_Test.dsp: - * tests/Sigset_Ops_Test.dsp: - * tests/Simple_Message_Block_Test.dsp: - * tests/Svc_Handler_Test.dsp: - * tests/TSS_Test.dsp: - * tests/Task_Test.dsp: - * tests/Thread_Manager_Test.dsp: - * tests/Thread_Mutex_Test.dsp: - * tests/Thread_Pool_Reactor_Test.dsp: - * tests/Thread_Pool_Test.dsp: - * tests/Time_Service_Test.dsp: - * tests/Time_Value_Test.dsp: - * tests/Timeprobe_Test.dsp: - * tests/Timer_Queue_Test.dsp: - * tests/Tokens_Test.dsp: - * tests/UPIPE_SAP_Test.dsp: - * tests/Upgradable_RW_Test.dsp: - - Removed the Alpha configurations. I don't think we've actually - looked at these for over a year, and they are missing from a lot - of projects. Thankfully, they are easy to recreate if they are - needed. - - * ACE-INSTALL.html: - - Changed the Windows NT Alpha section to mention that we no - longer have configurations out of the box for Win32/Alpha, they - must be recreated if needed. - - * WindozeCE/ACEApp.cpp: (removed) - * WindozeCE/ACEApp.h: (removed) - * WindozeCE/README: (removed) - * WindozeCE/StdAfx.cpp: (removed) - * WindozeCE/StdAfx.h: (removed) - * WindozeCE/WindozeCE.aps: (removed) - * WindozeCE/WindozeCE.clw: (removed) - * WindozeCE/WindozeCE.cpp: (removed) - * WindozeCE/WindozeCE.dsp: (removed) - * WindozeCE/WindozeCE.h: (removed) - * WindozeCE/WindozeCE.rc: (removed) - * WindozeCE/WindozeCEDlg.cpp: (removed) - * WindozeCE/WindozeCEDlg.h: (removed) - * WindozeCE/resource.h: (removed) - * WindozeCE/res/WindozeCE.ico: (removed) - * WindozeCE/res/WindozeCE.rc2: (removed) - - No longer used. - - * Makefile: - - Removed WindozeCE from CONTROLLED_FILES. - - * tests/WinCE/Atomic_Op_Test.dsp: (removed) - * tests/WinCE/Barrier_Test.dsp: (removed) - * tests/WinCE/Basic_Types_Test.dsp: (removed) - * tests/WinCE/Buffer_Stream_Test.dsp: (removed) - * tests/WinCE/Conn_Test.dsp: (removed) - * tests/WinCE/DLL_Test.dsp: (removed) - * tests/WinCE/Enum_Interfaces_Test.dsp: (removed) - * tests/WinCE/Future_Test.dsp: (removed) - * tests/WinCE/Handle_Set_Test.dsp: (removed) - * tests/WinCE/Hash_Map_Manager_Test.dsp: (removed) - * tests/WinCE/MT_Reactor_Timer_Test.dsp: (removed) - * tests/WinCE/MT_SOCK_Test.dsp: (removed) - * tests/WinCE/Map_Manager_Test.dsp: (removed) - * tests/WinCE/Mem_Map_Test.dsp: (removed) - * tests/WinCE/Message_Block_Test.dsp: (removed) - * tests/WinCE/Message_Queue_Notifications_Test.dsp: (removed) - * tests/WinCE/Message_Queue_Test.dsp: (removed) - * tests/WinCE/Notify_Performance_Test.dsp: (removed) - * tests/WinCE/OrdMultiSet_Test.dsp: (removed) - * tests/WinCE/Priority_Buffer_Test.dsp: (removed) - * tests/WinCE/Priority_Task_Test.dsp: (removed) - * tests/WinCE/Reactor_Exceptions_Test.dsp: (removed) - * tests/WinCE/Reactor_Notify_Test.dsp: (removed) - * tests/WinCE/Reactor_Performance_Test.dsp: (removed) - * tests/WinCE/Reactor_Timer_Test.dsp: (removed) - * tests/WinCE/Reactors_Test.dsp: (removed) - * tests/WinCE/Reader_Writer_Test.dsp: (removed) - * tests/WinCE/Recursive_Mutex_Test.dsp: (removed) - * tests/WinCE/SOCK_Connector_Test.dsp: (removed) - * tests/WinCE/SOCK_Test.dsp: (removed) - * tests/WinCE/SString_Test.dsp: (removed) - * tests/WinCE/Semaphore_Test.dsp: (removed) - * tests/WinCE/Sigset_Ops_Test.dsp: (removed) - * tests/WinCE/Simple_Message_Block_Test.dsp: (removed) - * tests/WinCE/TSS_Test.dsp: (removed) - * tests/WinCE/Task_Test.dsp: (removed) - * tests/WinCE/Thread_Manager_Test.dsp: (removed) - * tests/WinCE/Thread_Mutex_Test.dsp: (removed) - * tests/WinCE/Thread_Pool_Test.dsp: (removed) - * tests/WinCE/Time_Value_Test.dsp: (removed) - * tests/WinCE/Timer_Queue_Test.dsp: (removed) - * tests/WinCE/ce_tests.dsw: (removed) - - Removed these Windows CE Toolkit for Visual C++ files. - -Mon Feb 26 00:15:42 2001 Darrell Brunsch - - * tests/DLL_Test_Impl.dsp: - - Made sure the Code Generation settings were correct. - -Sun Feb 25 19:40:11 2001 Carlos O'Ryan - - * bin/ACEutils.pm (CheckForConfig): - This routine was not removing all the -Config options from the - command-line, causing problems in some of the tests. - -Sun Feb 25 16:33:26 2001 Darrell Brunsch - - * tests/DLL_Test.cpp: - - Left the DLL end with a d in debug mode, but changed - the test to add the d when _DEBUG and ACE_WIN32 is - defined. Test should now work again on Win2000_Debug. - -Sun Feb 25 11:28:06 2001 Darrell Brunsch - - * tests/run_test.pl: - - When there are errors in the log, print out the entire - log. This should make it much easier to understand - problems in the nightly build logs. - -Sun Feb 25 09:04:43 2001 Carlos O'Ryan - - * tests/DLL_Test.cpp: - Accidentally left the 'd' suffix in the name of the DLL. - -Sat Feb 24 22:58:42 2001 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - * TAO/TAOACE.dsw: - * TAO/TAOACE_Static.dsw: - * Static_Performance.dsw: - - Removed references to gperf_lib.dsp - - * TAO/version_tests.dsw: (removed) - - This was still referring to orbsvcs.dsp, which shows that - it is way out of date (and not used). Zapped. - -Sat Feb 24 20:59:42 2001 Darrell Brunsch - - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf.dsw: - * apps/gperf/src/gperf_lib.dsp: (removed) - - Merged gperf into one project. This will bring the - structure in line with the Makefiles. - -Sat Feb 24 19:28:42 2001 Darrell Brunsch - - * ace/OS.i: - - Fixed my recent changes to ACE_OS::dlsym () to work on - Windows CE. - -Sat Feb 24 17:50:38 2001 Darrell Brunsch - - * tests/DLL_Test.cpp: - - OBJ_PREFIX was being created by attaching a char string to - a ACE_TCHAR string. Needed to add ACE_TEXT to the first - string for compilation on ACE_USES_WCHAR. - - * tests/DLL_Test_Impl.dsp: - - Changed the internal name to "DLL_Test DLL" to make sure - this gets compiled in the first pass by msvc_auto_compile.pl. - - * tests/run_test.pl: - - Added a check for LM_WARNINGs in log files. Let's see if - there have been any hidden (DLL_Test actually was producing - a warning on Windows, but Carlos's fix already got rid of it, - Yay!). - -Sat Feb 24 15:44:58 2001 Carlos O'Ryan - - * tests/tests.dsw: - * tests/DLL_Test_Impl.dsp: - Add new project file for the shared library used in the test. - - * tests/DLL_Test.cpp: - * tests/DLL_Test_Impl.cpp: - Change the Win32 version to load a shared library instead of the - exe. - -Sat Feb 24 14:07:11 2001 Darrell Brunsch - - * tests/Thread_Pool_Reactor_Test.cpp: - - Did a careful study of what this test was doing in regards to - sending wide-character strings, and made it consistent. The - most troublesome aspect was the fact that the length is encoded - in the shutdown string ("\011shutdown") which meant that I had - to send the length in characters, not in bytes. This should - really fix [Bug 537]. - -Sat Feb 24 14:37:00 2001 Craig Rodrigues - - * ace/config-g++-common.h - gcc 2.97 and higher require the use of the std namespace for - iostrams - -Sat Feb 24 10:27:04 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Disable the interceptor tests when the ORB is compiled without - interceptor support. - - * tests/run_test.lst: - Disable the Reactor_Notify_Test on single threaded builds, it - uses threads. - - * bin/nightlybuilds/scoreboard_update.pl: - Fixed usage message. - -Sat Feb 24 09:45:18 2001 Carlos O'Ryan - - * tests/run_test.lst: - Disable the DLL_Test on KCC/Linux builds. The test runs - normally, but crashes on shutdown(), it appears as if the - run-time system is invoking the destructors after the library is - unloaded. - - * tests/Makefile: - * tests/Makefile.DLL_Test: - * tests/DLL_Test.h: - * tests/DLL_Test.cpp: - * tests/DLL_Test_Impl.h: - * tests/DLL_Test_Impl.cpp: - Cleanup code, and truly separate the shared library code to a - completely new separate file. - -Sat Feb 24 09:51:45 2001 Carlos O'Ryan - - * bin/auto_compile: - Pass the -Config options to each script, this helps the - $ACE_ROOT/bin/run_test.pl script that needs to disable some - tests in certain configurations. - -Sat Feb 24 08:21:48 2001 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - added -fno-implicit-templates on Tornado II for Intel 386 - family targets. Thanks to Albert Wijnja - for reporting that static template data members weren't really on - VxWorks/386, and to Greg Holtmeyer - for confirming that -fno-implicit-templates should work with - the Tornado II g++. [Bug 658] - -Thu Feb 22 15:59:04 2001 Douglas C. Schmidt - - * ace/OS.i: The ACE_TRACE call for ACE_OS::gmtime identified the - function as "localtime". This is now fixed. Thanks to Mason - Deaver for reporting this. - -Fri Feb 23 19:44:36 2001 Krishnakumar B - - * ACE version 5.1.13 released. - -Thu Feb 22 12:28:15 2001 Irfan Pyarali - - * ace/TP_Reactor.cpp (handle_events): Here is the description of - how things were working and where the problem was: In the - TP_Reactor there is one leader thread waiting in select() and - the others waiting on the token. During deactivation(), the - flag is set on the reactor, signal_all_threads() - is called on the token, and an empty notification is send to the - current leader thread. signal_all_threads() sets the - flag on the Token when there are waiters - on the Token (does nothing if there are no waiters). This - scheme worked fine when there were leader and follower threads - waiting. When a new leader is chosen, it returns the magic - number 2 from token.acquire_read() and hence exits gracefully - from the handle_events(). However, the problem was that when - some (or all) of the TP threads are busy running upcalls, - signal_all_threads() was a no-op and the magic number 2 was not - returned from token.acquire_read() and hence the exit from - handle_events() was flagged as an error. - - The fix is as described below: - - (1) ACE_Token::signal_all_threads() does not make sense. The - token is a mutex, not a condition variable. Therefore, it does - not make sense to have a signal_all_threads() methods. Plus I - believe that the method does not do as advertised. Therefore, I - removed this method from the token class. - - (2) There is no need to signal all the threads in the - TP_Reactor. Marking the Reactor as closed and signaling the - leader thread is enough. The leader thread will wake up to - handle the empty event, the next leader will see that the - Reactor is closed and exit gracefully. This will continue until - all the waiters are drained. - - (3) With the above change, there is no need to check for an - magic returns from token.acquire_read(). When a thread gets the - token, it checks the deactivation flag before proceeding. If - the Reactor is closed, it gracefully exits. Otherwise, it - continues as leader. - - (4) Since there is no need to call token.signal_all_threads(), - ACE_TP_Reactor::wakeup_all_threads() can be removed since it is - now the same as ACE_Select_Reactor_T::wakeup_all_threads(). - - Note that this change should help with making - Thread_Pool_Reactor_Test run without shutdown errors. - - * ace/Select_Reactor_T.i (deactivate): The setting of the - flag and waking up of all the threads should be - atomic. I am being picky about this one but I think am I right. - Also added the guard to the accessor. - -Thu Feb 22 08:51:42 2001 Darrell Brunsch - - * ace/OS.i: - - Bleh. Changed an && to || to make sure we get a symbolname - variable for non-Unicode Win32. - - "He who lives without committing any folly is not so - wise as he thinks" - La Rochefoucauld - -Thu Feb 22 08:43:30 2001 Carlos O'Ryan - - * include/makeinclude/rules.local.GNU: - Add SunWS_cache and ir.out to the list of files removed by - the realclean pseudo-target. This directory is used by Sun/CC - 5.0 (and Forte), if not removed the information there can become - stale, and break the builds. - This should fix the Sun/CC 5.0 nightly builds. - -Thu Feb 22 07:51:36 2001 Balachandran Natarajan - - * ace/OS.i: Reverted the change "Thu Feb 22 03:31:06 2001 - Krishnakumar B ". - -Thu Feb 22 03:31:06 2001 Krishnakumar B - - * ace/OS.i (dlsym): - Hopefully fixed the Win32 builds. Removed a extra ! in the - #ifdef. - -Thu Feb 22 02:58:36 2001 Krishnakumar B - - * VERSION: - * PROBLEM-REPORT-FORM: - * ace/Version.h: - Reverted the changes and restored the old versions of - these files as the beta build script was killed. Pain :-( - -Wed Feb 21 20:10:42 2001 Darrell Brunsch - - * ace/OS.i: - * tests/DLL_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - - Fixed the remaining problems with the Win2000_Unicode tests. - [Bug 537] - -Tue Feb 20 21:19:39 2001 Carlos O'Ryan - - * ace/Svc_Conf.h: - Add ACE_Export macro for ace_create_service_type() it is used - outside the library now. - -Tue Feb 20 06:34:26 2001 Douglas C. Schmidt - - * include/makeinclude/platform_sunos5_g++.GNU: Make sure to explicitly - set ACE_HAS_GNUG_PRE_2_8. Thanks to Christian von Mueffling - for reporting this. - - * ace/Thread_Manager.cpp (cancel_grp): Fixed a typo in - the ACE_TRACE macro. Thanks to Mike Curtis for reporting this. - -Mon Feb 19 16:38:08 2001 Krishnakumar B - - * ace/Asynch_Acceptor.{h,cpp}: - Added method void handle (ACE_HANDLE) and made it call the base - class's handle(ACE_HANDLE) method to remove warning about - partial overloading. Fix suggested by Irfan. - -Sun Feb 18 21:55:16 2001 Krishnakumar B - - * ace/OS.h: - Added an extern "C" void ace_mutex_lock_cleanup_adapter before - the definition of ACE_PTHREAD_CLEANUP_PUSH to avoid warnings on - SunCC 5.x. - -Sun Feb 18 17:16:41 2001 Douglas C. Schmidt - - * netsvcs/clients/Tokens/manual/manual.cpp (main), - * tests/Tokens_Test.cpp (main): Reordered the #ifdefs for the - ACE_HAS_TOKENS_LIBRARY stuff. Thanks to Kitty for reporting - this. - -Sun Feb 18 16:28:45 2001 Chris Gill - - * ace/RB_Tree.h: Changed order of method declarations to (hopefully) - dodge an internal compiler error on VxWorks. - -Sun Feb 18 09:59:18 2001 Douglas C. Schmidt - - * netsvcs/clients/Tokens: - * netsvcs/servers/main.cpp (main): - * netsvcs/servers/svc.conf: - * netsvcs/lib/Token_Handler: Only compile this stuff if the - ACE_HAS_TOKENS_LIBRARY macro is enabled. Thanks to Carlos - for reporting this. - - * ace/Object_Manager.cpp: Added a check for ACE_HAS_TOKENS_LIBRARY - so we can skip initializing certain things if that macro is - undefined. - - * ace/Token_Collection.*: - * ace/Token_Invariants.*: - * ace/Token_Manager.*: - * ace/Local_Tokens.*: - * ace/Remote_Tokens.*: - * ace/Token_Request_Reply.*: - Only compile these files if ACE_HAS_TOKENS_LIBRARY is enabled - since this functionality does not appear to be widely used and - yet it takes up space. - - * tests/Tokens_Test.cpp (main): Only run this test if - ACE_HAS_TOKENS_LIBRARY is defined. - -Sat Feb 17 17:23:46 2001 Darrell Brunsch - - * ace/SOCK_Dgram_Mcast.cpp: - - Integrated a fix from Keith Nicewarner - In effect, this reverts the multicast code changed on - Fri Jan 26 11:18:15 2001 Douglas C. Schmidt ... - for all platforms except linux. - -Sat Feb 17 15:52:09 2001 Carlos O'Ryan - - * bin/run_all_list.pm: - * tests/run_tests.pl: - Remove obsolete scripts. - -Sat Feb 17 13:26:17 2001 Douglas C. Schmidt - - * ace/POSIX_Asynch_IO.cpp (thread_function): Make sure to cast - -1 to void * since that's the signature of the method. Thanks - to Bala for reporting this. - - * ace/POSIX_Asynch_IO.cpp (thread_function): Zapped the unused - result local variable and also changed the logic to bailout if - handle_events() returns -1. This fixes a warning reported by - KCC. - -Fri Feb 16 17:39:16 2001 Mayur Deshpande - - * ace/config-qnx-rtp.h: Commented out ACE_HAS_NONSTATIC_OBJECT_MANAGER. - Thanks to Andrew Olson for the suggestion. - - * include/makeinclude/platform_qnx_rtp_gcc.GNU: Added -fexceptions to - CCFLAGS and 'exceptions=1' at end of file. - Thanks to Andrew Olson for the suggestion. - -Fri Feb 16 05:37:47 2001 Douglas C. Schmidt - - * ace/Logging_Strategy.h: Updated the documentation to explain what - the various options mean. - - * tests/Log_Msg_Test.cpp (test_log_msg_features): Added - ACE_Log_Msg::PROCESS to a couple of priority_mask() calls to - make the test work correctly. Thanks to Kitty for reporting - this. - -Thu Feb 15 17:53:31 2001 Frank Hunleth - - * ace/Thread_Manager.i: Simplified casting in - ACE_Thread_Descriptor::get_next per suggestion from Carlos. - -Thu Feb 15 14:57:59 2001 Frank Hunleth - - * ace/Thread_Manager.i: Fixed typo in ACE_Thread_Descriptor::get_next. - -Thu Feb 15 11:33:55 2001 Douglas C. Schmidt - - * tests/Refcounted_Auto_Ptr_Test.cpp (main): Always call ACE_OS::exit(0) - to make sure that this test terminates... - - * ace/Thread_Manager.i (get_next): Added an ACE_const_cast() to - make certain compilers happy. - - * ace/Logging_Strategy.cpp: Fixed some Unicode problems on Win32. - -Thu Feb 15 08:49:44 2001 Carlos O'Ryan - - * bin/nightlybuilds/builds.lst: - Rename WashU builds so all the Debian builds appear together. - -Thu Feb 15 07:15:39 2001 Douglas C. Schmidt - - * ace/Logging_Strategy.{h,cpp}: Added support to generate multiple - log files, rather than just two. Thanks to Orlando Ribeiro - for this fix. - -Thu Feb 15 03:36:46 2001 Krishnakumar B - - * bin/nightlybuilds/builds.lst (WEB): - Added a new build with TAO_MINIMUM linked statically. - -Wed Feb 14 05:28:59 2001 Douglas C. Schmidt - - * ace/Thread_Manager.{h,i}: Added const to state(), grp_id(), - task(), get_next(), and self(). Thanks to Johnny Willemsen - for reporting this. - -Tue Feb 13 17:51:47 2001 Douglas C. Schmidt - - * tests/Makefile.bor (TESTS): Added Dirent_Test to list of TESTS. - Thanks to Mike Curtis for reporting this. - - * tests/run_tests.bat: Fixed a typo so that Dirent_Test will run. - Thanks to Mike Curtis for reporting this. - -Wed Feb 14 12:08:10 2001 Frank Hunleth - - * ace/Read_Buffer.cpp: Fixed boundary condition in rec_read. - If record was a multiple of BUFSIZ and the record was - terminated with an EOF instead of a "term" character, - rec_read would return 0 instead of the actual data read in. - The problem was that the partial buffer fill size was being - checked instead of the total number of bytes read in. This - issue was noticed when trying to read in an IOR file in TAO - that was exactly 512 bytes (BUFSIZ * 2 on Win2k) long. - -Tue Feb 13 14:44:28 2001 Nanbor Wang - - * ace/ace_wchar.inl: Changed several variable from type - to type as on 64-bit whistler, size_t and int are not the - same size which confuses 64-bit compiler. (Per Kitty's - request.) - -Tue Feb 13 10:23:31 2001 Steve Huston - - * apps/JAWS/server/IO.{h cpp}: (Side-affect necessitated by addition of - handle () method and handle_ member to ACE_Handler). Moved the - handle_ member to the JAWS_Synch_IO class - it needs it, and - JAWS_Asynch_IO class has it by inheritance from ACE_Handler. Left - the handle () methods in JAWS_IO, but made them pure virtual, - implemented in JAWS_Synch_IO (implementation moved from JAWS_IO) - and in JAWS_Asynch_IO, where they forward up to ACE_Handler's - handle () methods. - -Mon Feb 12 18:18:05 2001 Frank Hunleth - - * tests/Thread_Mutex_Test.cpp: - Modified test to use process mutexes for Win32 platforms - so that timed mutexes could be tested. - -Sun Feb 11 15:33:39 2001 Darrell Brunsch - - * ace/QoS/ACE_QoS_Export.h: - - Added ACE_AS_STATIC_LIBS support. - - * ace/QoS/ACE_QoS.dsp: - * ace/QoS/ACE_QoS_Lib.dsp: - - Fixed to comply with ACE standards. - -Sun Feb 11 10:50:10 2001 Douglas C. Schmidt - - * include/makeinclude/platform_sunos5_g++.GNU (exceptions): - Only set the -fno-exceptions option if we're *not* using GCC - 2.7.2! Thanks to Pradeep for explaining how to do this. - -Sun Feb 11 10:15:08 2001 Johnny Willemsen - - * ace/Makefile.bor: - * ace/QoS/Makefile.bor: - * include/makeinclude/ace_flags.bor: - Added build support for QoS library with Borland compiler. - -Sat Feb 10 15:29:08 2001 Carlos O'Ryan - - * ace/Message_Block.h: - Improved documentation for the lenth(), size() and space() - methods. - -Sat Feb 10 07:19:37 2001 Christopher Kohlhoff - - * include/makeinclude/outputdir.bor: - Removed the now out-of-date comment about pascal/non-pascal - build directories. - - * ace/config-win32-borland.h: - Added support for new ACE_HAS_VCL define to enable inclusion - of VCL header files. - -Fri Feb 9 16:47:44 2001 Pradeep Gore - - * ace/Makefile.am: - Removed references to the AQoSA files. - -Fri Feb 9 16:42:10 2001 Pradeep Gore - - * examples/QOS/client.dsp: - * examples/QOS/server.dsp: - Updated the corrected project files. - Thanks to Darrell for pointing this out. - -Thu Feb 8 19:25:03 2001 Carlos O'Ryan - - * performance-tests/RPC/run_test.pl: - * performance-tests/TCP/run_test.pl: - * performance-tests/UDP/run_test.pl: - Add driver strings - -Thu Feb 08 19:18:36 2001 Angelo Corsaro - - * bin/auto_run_tests.lst: - - Removed comment from Exposed Policies test. The test has been fixed. - -Thu Feb 8 14:11:36 2001 Darrell Brunsch - - * ace/ws2tcpip.h: [Removed] - - I don't see any reason to have this file in ace; it is a system - header file. And from [Bug 722], our version is out of date anyway. - - * ace/OS.h: - - Changed to include system version of ws2tcpip.h - - * ace/Makefile.am: - * ace/ace-dll.icc: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - - Removed references to ws2tcpip.h. - - * ace/SOCK_Connect.cpp: - - Changed get_ip_interfaces to remove a memory error. Thanks to - Viatcheslav Batenine for helping out with - this. - - * ace/SOCK_Dgram_Mcast.cpp: - - It looks like the change made on: - - Fri Jan 26 11:18:15 2001 Douglas C. Schmidt ... - - doesn't work on Win32. Reverted back to the old scheme for Win32 - only. - -Thu Feb 8 00:34:57 2001 Douglas C. Schmidt - - * include/makeinclude/platform_sunos5_g++.GNU: Added support for - -fno-exception when exceptions=0 is given to the Makefile. - Thanks to Christian v. Mueffling for reporting - this. - -Wed Feb 7 23:02:46 2001 Douglas C. Schmidt - - * ace/SUN_Proactor.cpp: Fixed the cancel_aiocb() method and added a - new overridden cancel_aio() method. Thanks to Alexander Libman - for contributing this. - -Thu Feb 8 02:09:05 2001 Pradeep Gore - - * examples/QOS/Makefile: - * examples/QOS/client.dsp: - * examples/QOS/server.dsp: - Modified to use the ACE_QoS lib. - * Receiver_QoS_Event_Handler.cpp: - * Sender_QoS_Event_Handler.cpp: - Added missing Log_Msg.h for ACE_DEBUG. - Other files were modified to reflect changed directory location - of AQosA imclude files. - -Thu Feb 8 00:17:43 2001 Pradeep Gore - - * ace/QoS_Decorator.cpp: - * ace/QoS_Session_Factory.cpp: - * ace/SOCK_Dgram_Mcast_QoS.cpp: - * ace/QoS_Decorator.h: - * ace/QoS_Session_Factory.h: - * ace/SOCK_Dgram_Mcast_QoS.h: - * ace/QoS_Manager.cpp: - * ace/QoS_Session_Impl.cpp: - * ace/SOCK_Dgram_Mcast_QoS.i: - * ace/QoS_Manager.h: - * ace/QoS_Session_Impl.h: - * ace/QoS_Session_Impl.i: - Moved the AQoSA classes to ace/QoS directory. - - * ace/Makefile: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Removed the QoS related files, added QoS directory to build. - - * ace/Qos/Makefile - * ace/QoS/ACE_QoS.dsw: - * ace/QoS/ACE_QoS.dsp: - * ace/QoS/ACE_QoS_Lib.dsp: - * ace/QoS/ACE_QoS_Export.h: - Added Makefile and MSVC project files. - Thanks to Craig Rodrigues for suggesting this - change and providing the patch. - -Wed Feb 7 11:34:56 2001 Carlos O'Ryan - - * tests/Message_Queue_Test_Ex.cpp: - Fix build problems for single threaded environments. - -Wed Feb 7 09:03:22 2001 Douglas C. Schmidt - - * apps/Gateway/Gateway/Event_Channel.cpp (initiate_acceptors): Fixed - incorrect if/else branching. Thanks to Lu Yunhai - for reporting this. - -Tue Feb 6 23:43:49 2001 Douglas C. Schmidt - - * apps/Gateway/Peer/Peer.cpp (await_events): Fixed the use of - %s to be %*s since the string may not be nul terminated! Thanks - to Lu Yunhai for reporting this. - -Tue Feb 6 20:11:28 2001 Krishnakumar B - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Remove double inclusion of $(CFLAGS) for Sun CC 5.0. - -Tue Feb 6 19:30:26 2001 Krishnakumar B - - * ace/Malloc_T.cpp (shared_malloc): - Added a #ifdef to remove the warnings from Digital Tru64 cxx. This - is a temporary workaround. TODO: Change ACE_SEH_* macros so that such - hacks are unnecessary. - -Tue Feb 6 19:23:16 2001 Krishnakumar B - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Complete reverting the changes made by Irfan on Sat Jan 27 - 01:06:09 2001. This file was missed in the last revert done by me. - -Tue Feb 06 19:03:35 2001 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU: For C++ 5, make sure - to add CFLAGS into CCFLAGS, even if no other options are added. Else - things get built without -mt. - -Tue Feb 06 18:37:41 2001 Steve Huston - - * tests/Thread_Mutex_Test.cpp: Changed wording of the message for - "timed acquire" not supported so as not to trip the error catcher - in run_tests.pl. - -Tue Feb 06 17:55:28 2001 Steve Huston - - * examples/Reactor/Proactor/post_completions.cpp: Allow this to - run with AIOCB_Proactor. - - * ace/Asynch_IO.{h cpp}: Added ACE_Handler::handle (ACE_HANDLE) - function to set the handle; changed ACE_HANDLE ACE_Handler::handle - to return the actual value. - - * ace/Asynch_Acceptor.cpp (handle_accept): Call ACE_Handler::handle - to set the handle value for the new handler before calling its - open() method. - -Tue Feb 06 17:16:43 2001 Steve Huston - - * tests/MEM_Stream_Test.cpp: - * tests/MEM_Stream_Test.h: New file; moved definition of Echo_Handler - from MEM_Stream_Test.cpp to this file to make it visible to AIX - C++ 3.6.6 at template instantiation time. - -Mon Feb 5 16:19:20 2001 Douglas C. Schmidt - - * ace/ACE.cpp: ACE_TRACE ("ACE::basename") should be ACE_TRACE ("ACE::diname"). - Thanks to Lu Yunhai for reporting this. - - * ace/Basic_Types.h: Changed the ACE_BIG_ENDIAN and ACE_LITTLE_ENDIAN - macros to use the form 0x0123 rather than 0123X. Thanks to - Craig Rodrigues for helping find this - problem. - -Mon Feb 5 18:20:11 2001 Krishnakumar B - - * ace/config-sunos5.5.h (ACE_USES_OLD_IOSTREAMS): - - Reverted the change to config-sunos5.5.h and turned on - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION, - ACE_TEMPLLATES_REQUIRE_SOURCE and ACE_USES_OLD_IOSTREAMS for the - SunCC 5.0 compiler. - -Mon Feb 5 16:19:20 2001 Douglas C. Schmidt - - * examples/RMCast/Send_File/Receiver.cpp (init): Replaced - a hard-coded file permission of 0644 with - ACE_DEFAULT_FILE_PERMS. Thanks to Chris Kohlhoff - for reporting this. - -Mon Feb 5 13:00:17 2001 Krishnakumar B - - * tests/Thread_Mutex_Test.cpp: (reported_notsup) - Removed a warning about defined but not used. - -Sat Feb 3 14:41:17 2001 Darrell Brunsch - - * ace/OS.h: - * ace/config-win32-msvc.h: - - Fixed problems with LLSEEK and ACE_stat on Windows CE. - -Sat Feb 3 14:12:36 2001 Darrell Brunsch - - * tests/Config_Test.cpp: - * tests/Config_Test.h: - * tests/Log_Msg_Test.cpp: - - Fixed ACE_USES_WCHAR problems. - -Fri Feb 02 18:36:42 2001 Steve Huston - - * ace/config-linux-common.h: Added #define ACE_POSIX_AIOCB_PROACTOR - unless the user #defines ACE_POSIX_SIG_PROACTOR before including - config-linux.h. (At least prior to 2.4 kernels) queueing signals - across threads does not work - it fails silently, which breaks - basic functionality of the async model - like asynchronously - accepting TCP connections - and pretty much prevents multi-threaded - work with timers and probably other async operations. - - * examples/Reactor/Proactor/test_proactor.cpp: Disabled the ACE_DEBUG - calls that display message buffers - they're often too large and - overrun the ACE_Log_Msg buffers and crash the program. - -Fri Feb 2 08:38:37 2001 Douglas C. Schmidt - - * ace/WFMO_Reactor.cpp (handler): Set the existing_masks variable to 0 - to avoid warnings from static analysis tools. Thanks to Ivan - Murphy for reporting this. - -Thu Feb 01 22:00:17 2001 Sharath R. Cholleti - - * tests/Message_Queue_Test_Ex.cpp - - Fixed the bugs which were giving runtime error on - Win32 - removed "queue_type" from single_thread_performance_test - and performance_test functions. Now these funtions dont - have args. - - * tests/tests.dsw - - Just an update of the workspace. - -Thu Feb 1 21:00:57 2001 Frank Hunleth - - * bin/auto_compile_win32.pl: - * bin/run_all_list.pm: - - Added TAO RT Mutex unit tests to auto build and test - lists. - -Thu Feb 01 18:52:27 2001 Angelo Corsaro - - * RTJava: - Added Directory for RTJava related research. Check the - ChangeLog included in the newly directory for more info. - -Thu Feb 01 18:23:17 2001 Sharath R. Cholleti - - * tests/Log_Msg_Test.dsp: - * tests/Config_Test.dsp: - - Added these files. - * tests/tests.dsw: - - Added the above two projects to the workspace. - -Thu Feb 1 18:01:26 2001 Luther J Baker - - * ace/OS.i (mutex_init): - - Removed call into PACE. - -Thu Feb 01 18:21:15 2001 Steve Huston - - * tests/Thread_Mutex_Test.cpp: Only report "operation not supported" - once for a failed ACE_Thread_Mutex::acquire (ACE_Time_Value &). - Also, if it reports ENOTSUP while ACE_HAS_MUTEX_TIMEOUT is - defined, warns the user that it's probably the wrong setting. - -Thu Feb 01 17:36:28 2001 Steve Huston - - * examples/Reactor/Proactor/test_proactor3.cpp: Fixed a non-constant - array dimension and some output formatting. - -Thu Feb 01 17:07:35 2001 Steve Huston - - * examples/Reactor/Proactor/post_completions.cpp: Removed extraneous - 'd' from the 'count' display. - -Thu Feb 01 15:33:26 2001 Steve Huston - - * ace/Reactor.h (purge_pending_notifications): - * ace/WFMO_Reactor.h (purge_pending_notifications): - * ace/Select_Reactor_Base.h (purge_pending_notifications): - Removed the default argument value - callers must now explicitly - specify a 0 ACE_Event_Handler* to remove all handler notifications. - Thanks to Edan Ayal for arguing this point. - -Thu Feb 1 09:57:41 2001 Jeff Parsons - - * ace/SString.i: - - Changed behavior of ACE_WString::rep to be the same - as ACE_CString::rep, that is, to return an empty - (w)string rather than a null (w)string when the length - is 0. Thanks to Johnny Willemsen - for pointing out this discrepancy. - -Thu Feb 1 09:42:41 2001 Chad Elliott - - * include/makeinclude/platform_chorus4.x_g++.GNU: - - Modification to allow building for Chorus 4.x on x86. CPU will be - set to x86, but CLX_TYPE will be set to i486-elf-sysv4. - -Thu Feb 01 10:29:31 2001 Steve Huston - - * ace/Synch.i (ACE_Null_Mutex::acquire (ACE_Time_Value&)): Removed - the arg name to fix "unused argument" warning from g++. - -Wed Jan 31 22:01:00 2001 Rick Stille - * ace/OS.cpp(operator FILETIME): Corrected an error in the Jan 26 GHS - revision. The term "ACE_Time_Value::FILETIME_to_timval_skew" had been - omitted from the calculation. - -Wed Jan 31 18:43:26 2001 Krishnakumar B - - * tests/Message_Queue_Test_Ex.cpp (single_thread_performance_test): - Removed the warning about queue_type using ACE_UNUSED_ARG. - -Wed Jan 31 17:27:35 2001 Steve Huston - - * ace/Acceptor.cpp (ACE_Oneshot_Acceptor::handle_input): Unregister - the acceptor from the reactor before doing the shared_accept call - to guard against the use-case where the acceptor is destroyed during - the service handler activation sequence. - -Wed Jan 31 15:55:23 2001 Frank Hunleth - - * ace/Synch.i: - Added ACE_Null_Mutex::acquire (ACE_Time_Value &tv) - to fix link error. - -Wed Jan 31 15:12:00 2001 Jeff Parsons - - * ace/CDR_Stream.h: - - Made method do_byte_swap() public. If ACE_ENABLE_SWAP_ON_WRITE - is defined, TAO_GIOP_Message_Base::format_message() and - TAO_GIOP_Message_Lite::format_message() both call this method. - Thanks to Paul Rubel for reporting this bug. - -Wed Jan 31 12:19:51 2001 Steve Huston - - * docs/tutorials/Chap_2/ex03.html, ex04.html: Fixed these example - programs to 1) send the Nul terminators with the strings, - 2) allow enough space on the recv to get it all, 3) return a - value from main. - - * docs/tutorials/Chap_2/Chap_2.zip: Updated the above examples. - -Wed Jan 31 06:43:27 2001 Douglas C. Schmidt - - * ace/Message_Queue_T.cpp: Make sure that dequeue_head() returns - the number of items still on the queue. Thanks to Johnny - Willemsen for reporting this. - -Tue Jan 30 21:39:15 2001 Sharath R. Cholleti - - * tests/Log_Msg_Test.cpp: In funtion test_ostream(), removed the - if condition to check if ACE_OS::unlink() succeeds. Also set - the ostream to NULL before calling ACE_ERROR_RETURN(). Thanks - to Mike Curtis for pointing out problem - caused when ACE_OS::unlink() fails. Thanks to Doug in helping - fix the problem. - -Tue Jan 30 18:04:08 2001 Douglas C. Schmidt - - * tests/Message_Queue_Test_Ex.cpp (single_thread_performance_test): - Zap the Win32 and VxWorks-specific code from this function. - Thanks to Sharath for reporting this. - -Tue Jan 30 11:34:26 2001 Steve Huston - - * examples/Reactor/Proactor/test_aiosig_ace.cpp: Fixed a bunch - of mis-coded ACE_ERROR_RETURNs; added a explicit queued completion, - and disabled the display of buffers that may overrun ACE_Log_Msg's - internal buffers to prevent spurious crashes. - -Tue Jan 30 11:26:42 2001 Steve Huston - - * examples/Reactor/Proactor/post_completions.cpp: Added a count - to be sure that all expected completions are delivered, and - print error message if not. - -Tue Jan 30 10:47:52 2001 Steve Huston - - * ace/Select_Reactor_Base.cpp - (ACE_Select_Reactor_Notify::purge_pending_notifications): - * ace/WFMO_Reactor.cpp - (ACE_WFMO_Reactor_Notify::purge_pending_notifications): Changed - to not purge notifications destined for the reactor only - (notification buffer with 0 handler value). Thanks to Edan - Ayal for this fix. - -Tue Jan 30 01:05:51 2001 Douglas C. Schmidt - - * tests/Message_Queue_Test_Ex.cpp (single_thread_performance_test): - Add cases for VxWorks and NT. Thanks to Sharath for reporting - this. - - * ace/OS.h: #define _SC_AIO_MAX to 1 if it's not set by default. - Thanks to Jean-Francois Daune for reporting this - fix for VxWorks. - -Mon Jan 20 18:36:41 2001 Steve Huston - - * ace/Message_Queue_T.h (ACE_Message_Queue_Ex): Use _USE - rather than _DECL to define the ACE_Message_Queue - fixes - compile error. - -Mon Jan 29 17:29:31 2001 Steve Huston - - * ace/Message_Queue_T.{h i cpp}: Corrected a bunch of references - to Message_Queue_Ex's queue_ member to use . rather than -> - and removed the ACE_NEW to allocate it (follow-ups from Doug's - Sun Jan 28 08:32:07 2001 change). Fixed other compile - errors to allow tests/Message_Queue_Test_Ex.cpp to build. - FYI... whomever added this, it probably should have been named - Message_Queue_Ex_Test to conform. - -Mon Jan 29 15:30:27 2001 Steve Huston - - * ace/POSIX_Proactor.{h cpp} (ACE_POSIX_SIG_Proactor): Don't - mask/block all signals, just the one(s) being used for this - sig proactor instance. Blocking everything can break other - things, such as debuggers and the ability to kill a program. - Also, don't setup a handler for the signals being blocked/waited - as this is a combination whose behavior is undefined. - -Sun Jan 28 08:39:17 2001 Carlos O'Ryan - - * tests/Thread_Mutex_Test.cpp: - Fixed use of ACE_TEXT and string concatenation. - -Sun Jan 28 08:03:08 2001 Carlos O'Ryan - - * tests/tests.dsw: - * tests/Message_Queue_Test_Ex.dsp: - Add NT project files for the new test - -Sun Jan 28 08:32:07 2001 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp: Fixed the order in which - the iostream messages are logged so that we don't bomb out when - the VERBOSE option is enabled. Thanks to Craig Rodrigues - for helping find this problem. - - * ace/Message_Queue_T.h: Make sure the lock() forwarding method - forwards to queue_.lock(). - - * ace/Message_Queue_T.{h,i,cpp}: There's no reason to dynamically - allocate the implementation of ACE_Message_Queue_Ex -- instead - it can be simply an instance of ACE_Message_Queue. - - * ace/Message_Queue_T.h: Make sure that the methods on - ACE_Message_Queue_Ex are properly virtual. Thanks to Kitty for - pointing this out. - -Sat Jan 27 19:40:36 2001 Ossama Othman - - * bin/auto_run_tests.lst: - - Added TAO's Portable Interceptor "Service_Context_Manipulation" - test to the list of tests to run. - -Sat Jan 27 19:34:20 2001 Douglas C. Schmidt - - * tests/Config_Test.{h,cpp}: Fixed the use of "bool," which is - not supported on older compilers. Thanks to Kitty for reporting - this. - -Sat Jan 27 15:22:03 2001 Ossama Othman - - * tests/Thread_Mutex_Test.cpp (test): - - Added code that tests mutex timeout functionality. - -Sat Jan 27 15:16:33 2001 Douglas C. Schmidt - - * ace/POSIX_Proactor.h: Replace ACE_Thread_Mutex with ACE_SYNCH_MUTEX - to avoid the need for conditional compilation. - - * ace/SUN_Proactor.h: Don't use ACE_Condition - but instead use the ACE_SYNCH_CONDITION, which also avoids the - need to conditionally compile for threaded platforms. - -Sat Jan 27 13:29:51 2001 Ossama Othman - - * ace/config-linux.h: - - Declare the pthread_mutex_timedlock() prototype as an - 'extern "C"' function. This fixes an "unresolved symbol" link - error. - -Sat Jan 27 10:39:28 2001 Carlos O'Ryan - - * bin/nightlybuilds/builds.lst: - Apparently the blank in 'RedHat 7.0' breaks the scoreboard. - -Sat Jan 27 01:06:09 2001 Irfan Pyarali - - * include/makeinclude/platform_sunos5_sunc++.GNU: SPRO 5.0 - compiler should be able to support automatic template - instantiation. Also, standard C++ library should be ok. -g was - added to DCCFLAGS. - - * ace/config-sunos5.5.h: Turned off - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION, - ACE_TEMPLATES_REQUIRE_SOURCE and ACE_USES_OLD_IOSTREAMS for the - SPRO 5.0 compiler. - - Thanks to J. Russell Noseworthy - for contributing the above patches. - -Sat Jan 27 00:37:26 2001 Irfan Pyarali - - * ace/OS.i: - - - (mutex_lock): Windows code must use relative time since that - is what WaitForSingleObject() expects. Also, fixed extra - "return" before ACE_NOTSUP_RETURN. - - - (thread_mutex_lock): Made thread_mutex_lock() with timeout - close to the thread_mutex_lock() without timeouts. - -Fri Jan 26 21:53:45 2001 Ossama Othman - - * ace/OS.h: - * ace/OS.i (thread_mutex_lock): - - Added an overloaded version of this method that accepts a - timeout argument. It delegates to the standard - ACE_OS::mutex_lock() method on non-Windows platforms. - Otherwise, it returns with an ENOTSUP. - - The addition of this method was necessary to fix a compile - problem related to the ACE_Thread_Mutex class. - - * ace/Synch.i (acquire): - - In ACE_Thread_Mutex::acquire() that accepts a timeout argument, - call the corresponding ACE_OS::thread_mutex_lock() method. This - fixes compile-time error on MS Windows builds due to the fact - that ACE_mutex_t and ACE_thread_mutex_t are different types on - that platform. - -Fri Jan 26 17:31:26 2001 Ossama Othman - - * ace/OS.i (mutex_lock): - - Fixed unused argument warnings that occured when compiling for - the single threaded case. - -Fri Jan 26 16:58:03 2001 Ossama Othman - - * ace/config-linux.h: - - glibc 2.1.x doesn't have the (very useful) __GLIBC_PREREQ - macro. Use a preprocessor test that doesn't rely on it. - -Fri Jan 26 16:48:06 2001 Ossama Othman - - * ace/config-qnx-neutrino.h (ACE_HAS_MUTEX_TIMEOUTS): - * ace/config-qnx-rtp.h (ACE_HAS_MUTEX_TIMEOUTS): - - QNX supports pthread_mutex_timedlock(). Yes! - -Fri Jan 26 17:50:38 2001 Douglas C. Schmidt - - * ace/config-win32-common.h: - ace/config-vxworks-5.x.h: Added ACE_HAS_MUTEX_TIMEOUTS macro. - - * ace/OS.i: Added timed mutex operations for Win32, VxWorks, and - pSoS. - -Fri Jan 26 16:31:15 2001 Ossama Othman - - * ace/OS.h (mutex_lock): - - Updated documentation for the version of this method that - accepts a timeout value. - - * ace/OS.i (mutex_lock): - - If the platform does not support timed mutexes, then return with - an ENOTSUP. - - * ace/Process_Mutex.h: - * ace/Process_Mutex.inl (acquire): - - Added version of this method that accepts a timeout value. - -Fri Jan 26 17:50:38 2001 Douglas C. Schmidt - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp (report_stats): - Fixed some unintentional tabs. Thanks to Mike Curtis for - reporting this! - -Fri Jan 26 15:34:01 2001 Ossama Othman - - * ace/OS.h: - * ace/OS.i (mutex_timedlock, mutex_lock): - * ace/Synch.i (acquire): - - Renamed the ACE_OS::mutex_timedlock() to the overloaded - ACE_OS::mutex_lock(). - -Fri Jan 26 14:13:32 2001 Ossama Othman - - * ace/OS.h: - * ace/OS.i (mutex_timedlock): - - Wrapped the pthread_mutex_timedlock() function. It times out if - a lock hasn't been acquired by the given absolute time. - - * ace/Synch.h: - * ace/Synch.i (acquire): - - Added versions of this method that accept an ACE_Time_Value. - They are used to prevent blocking definitely while waiting for a - given mutex to become available. - - * ace/config-linux.h (ACE_HAS_MUTEX_TIMEOUTS): - - glibc 2.2.x supports the pthread_mutex_timedlock() function. - - * ace/config-linux-common.h: - - Undefine ACE_LACKS_{LLSEEK,LSEEK64}_PROTOTYPE prior to include - the KCC configuration file. Thanks to Jeff Greif - for reporting this. - - * ace/README: - - Added ACE_HAS_MUTEX_TIMEOUTS to the list of ACE macros. - -Fri Jan 26 11:18:15 2001 Douglas C. Schmidt - - * ace/Log_Msg.cpp (dump): Fixed some unintentional tabs. Thanks - to Mike Curtis for reporting this! - - * ace/SOCK_Dgram_Mcast.cpp (open): Modified the call to - ACE_SOCK_Dgram::shared_open() to just pass in this->mcast_ - rather than making a local copy that just contained the port - number. Thanks to Keith Nicewarner for - reporting this. - - * tests/Makefile.bor (TESTS): Added Message_Queue_Test_Ex.cpp. - -Fri Jan 26 13:37:30 2001 Luther J Baker - - * ace/OS.h: - - If using PACE, ACE_stat typedefs to pace_stat_s. - -Fri Jan 26 11:18:15 2001 Douglas C. Schmidt - - * tests/Message_Queue_Test_Ex.cpp: Fixed some ASYS_* macros with - ACE_* stuff. Thanks to Darrell for reporting this. - - * ace/Message_Queue_T.h, - * ace/Message_Queue_T.i, - * ace/Message_Queue_T.cpp: - Added the ACE_Message_Queue_Ex, which provides a message queue - abstraction whose type is templatized. Thanks to Michael Vitalo - for contributing this. - - * tests/run_tests.lst: - * tests/run_test.lst: - * tests: Added support for the new Message_Queue_Test_Ex.cpp file. - Thanks to Michael Vitalo for contributing - this. - -Fri Jan 26 09:33:20 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Add TAO/tests/Object_Loader to the list - - * include/makeinclude/rules.lib.GNU: - Allow both .cpp and .c files in the LSRC macro. This should - let the PACE guys use the real name for their files, and - generate proper dependencies. - -Fri Jan 26 02:16:42 2001 Darrell Brunsch - - * tests/OS_Test.cpp: - - Changed a use of struct stat to ACE_stat. - -Thu Jan 25 19:16:48 2001 Ossama Othman - - * ace/config-linux.h: - - Only define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS and - ACE_LACKS_THREAD_STACK_SIZE for glibc < 2.1. glibc 2.1+ has the - netdb reentrant functions (albeit with funky signatures), and it - has pthread_attr_setstacksize(). - - * ace/OS.h: - - Removed trailing whitespace. - - * ace/OS.i (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r, - gethostbyname_r, getservbyname_r): - - Added glibc-specific calls to these functions. This allows us - to avoid grabbing a lock! Thanks to Ben Strong - for providing the patch. - - * THANKS: - - Added Ben Strong to list of contributors. - -Thu Jan 25 20:10:24 2001 Irfan Pyarali - - * include/makeinclude/platform_irix6.x_sgic++.GNU: - * include/makeinclude/platform_irix5.3_sgic++.GNU: - - Removed -rpath "$(ACE_ROOT)/ace" from LDFLAGS. - - * ace/Message_Queue_T.{h,i}: Moved code from .i to .h to work - around a compiler bug. The Sun Forte 6 (CC 5.1) compiler is - only happy if this is in the header file. - - * ace/Message_Block_T.cpp: Fixed template parameter name mismatch - between declaration and definition. - - Thanks to J. Russell Noseworthy - for contributing the above patches. - -Thu Jan 25 10:50:35 2001 Steve Huston - - * ace/Reactor.h: Add comments to schedule_wakeup/cancel_wakeup that - they don't cause an immediate re-examination of the masks like - register_handler does. Thanks to Oscar Rodriquez - for prompting this clarification. - - * ace/WFMO_Reactor.cpp (ACE_WFMO_Reactor_Notify::handle_signal): - The call to ACE_Message_Queue::dequeue_head may change the - ACE_Time_Value passed to it, so don't override ACE_Time_Value::zero's - const-ness, lest ACE_Time_Value::zero take on some strange new value. - Thanks to Edan Ayal for this fix. - -Thu Jan 25 05:34:58 2001 Douglas C. Schmidt - - * ace/Connector.cpp (connector): Added an ACE_const_cast() to - get rid of the const for the accessor method! - - * ace/Acceptor.cpp (acceptor): Added an ACE_const_cast() to - get rid of the const for the accessor method! - - * ace/Log_Msg.{h,cpp}, - * ace/Trace.{h,cpp}: The Log_Msg -I flag now uses the current - ACE_Trace nesting level rather than always using 1. Thanks to - Mike Curtis for providing this. - -Wed Jan 24 19:43:24 2001 Nanbor Wang - - * ace/OS.i (lstat,stat): Separated win32 cases out. - -Wed Jan 24 18:15:59 2001 Nanbor Wang - - * ace/OS.i (fstat): Oops, wrong version of this function was - modified. - -Wed Jan 24 14:44:12 2001 Nanbor Wang - - * ace/FILE.cpp: - * ace/Filecache.cpp: - * ace/Filecache.h: - * ace/OS.h: - * ace/OS.i: - * ace/OS.cpp: Changed the signature of , , and - to use ACE_stat instead of "struct stat". Also changed - to use _fstat and _stat on win32 instead of and - directly. Also replaced several use of "struct stat" to - ACE_stat. Thanks to Mike Anderson for - reporting this. [Bug 762] - -Wed Jan 24 16:13:10 2001 Douglas C. Schmidt - - * ace/OS_Dirent.cpp: Fixed a bug in the readdir_emulation() method. - Thanks to Yung Trinh for reporting this. - - * ace/Connector.{h,cpp}: Added a new connector() accessor to - return the underlying ACE_PEER_CONNECTOR. Thanks to Pedro - Brandao for suggesting this. - -Wed Jan 24 10:17:03 2001 Carlos O'Ryan - - * ace/Makefile: - Add dependencies (again). They were lost is a previous commit. - - * */Makefile: - Update dependencies (yet another time). - -Wed Jan 24 09:41:54 2001 Carlos O'Ryan - - * ace/Configuration.cpp: - Fixed warning under gcc. Also made the for() loop more - ACE-like, not better, but at least consistent. - -Wed Jan 24 08:56:16 2001 Carlos O'Ryan - - * ace/OS.h: - The changed to document the ACE_SVC_* macros were accidentally - lost, fixed. - - * ace/Service_Config.cpp: - New debug message when processing an explicit directive, useful - to find out when and why TAO invokes - ACE_Service_Config::process_directive() directly. - As with all other debug messages in this file it only shows up - if ACE::debug() returns non-zero. - -Wed Jan 24 01:44:47 2001 Douglas C. Schmidt - - * ace/Configuration.cpp (expand_path): Fixed a bug with assignment to - temp in the loop. Thanks to Jonathan Reis for reporting this! - -Tue Jan 23 17:02:42 2001 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Removed PACE until we figure out how to handle it in the - DLL builds. - -Tue Jan 23 16:50:35 2001 Darrell Brunsch - - * tests/Dirent_Test.dsp: - - Updated to make consistent with the rest of the dsps in - this directory in regards to output directories and non-use - of ACE_ROOT. - - * tests/Dirent_Test.cpp: - - Updated wide character compatibility and removed the use - of ACE_ROOT (now looks at ../tests", which should give - the same results). - - * tests/run_test.lst: - - Added the Dirent_Test to the list - - * tests/version_tests/Dirent_Test.dsp: (added) - * tests/version_tests/Refcounted_Auto_Ptr_Test.dsp: (added) - * tests/version_tests/version_tests.dsw: - - Used the create_vt_dsps.pl script to update this directory. - -Tue Jan 23 18:03:26 2001 Jeff Parsons - - * ace/CDR_Stream.cpp: - - Added patches to read_8 and write_8 sent in by - Keith Nicewarner to deal - with the ARM byte format for doubles - -Tue Jan 23 15:06:18 2001 Darrell Brunsch - - * ace/Configuration.cpp: - * ace/OS_Dirent.cpp: - - Updated wide character compatibility. - - * ace/ace_dll.dsp: - - Removed unneeded verbose library option. - -Tue Jan 23 10:54:14 2001 Jeff Parsons - - * ace/config-doxygen.h: - * bin/autoconf_compile: - - Removed all occurrences of 'smart_proxies' and 'interface_repo'. - These are no longer necessary. - - * include/makeinclude/ace_flags.bor: - - Added necessary variables to go along with the Borland - makefiles for the new libraries tao/Domain and - tao/IFR_Client. - -Mon Jan 22 17:01:17 2001 Darrell Brunsch - - * ace/OS_String.cpp: - * ace/OS_String.inl: - * ace/ace_wchar.inl: - * ace/config-qnx-rtp.h: - - ACE_HAS_WCHAR fixes. Support is really bad on QNX RTP - so we just end up emulating most everything. As far as - I could tell, there isn't even a way to convert between - the two types of strings. - - * ace/OS_Dirent.cpp: - - Rewrote a paragraph to remove the use of "/*" in a larger - /*...*/ comment, since gcc complains about it. - - * tests/Message_Queue_Test.cpp: - - Backed out some changes to it on Jan 21, since it had - problems and I couldn't find any ChangeLog entry for the - changes (mistakenly checked in?). - -Mon Jan 22 13:51:11 2001 Phil Mesnier - - * ace/OS_Dirent.cpp (opendir_emulation): Added code to make the - emmulation work properly on Win32. Thanks to Edwin Wrench - for finding this. - - * tests/Dirent_Test.cpp: - tests/Makefile: - tests/run_tests.bat: - tests/run_tests.lst: Added test to verify correctness of above - fix. This test attempts to scan $ACE_ROOT/tests and will fail if - the number of entries is 0 or 1. - -Mon Jan 22 10:21:20 2001 Douglas C. Schmidt - - * ace/Map_Manager.h: Clarify that find() returns 0, rather than - saying "a non-negative number". Thanks to Albert Wijna - for clarifying this. - -Mon Jan 22 15:38:12 2001 Johnny Willemsen - - * ace/Containers_T.h: - ace/Containers_T.cpp: - Added operator* to the ACE_Ordered_Multiset_Iterator class - - * tests/Ordmultiset_test.cpp - Expanded test for the new operator* of the ACE_Ordered_Multiset_ - Iterator class - -Sat Jan 20 14:53:07 2001 Douglas C. Schmidt - - * ace/Configuration.{h,cpp}: Fixed some problems with const char * - that was busting the compilation. Thanks to Carlos for pointing - this out. - - * ace/Configuration.{h,cpp}: Added several fixes for - mistakes with memory management and other minor problems. - Thanks to Jonathan Reis for contributing - these fixes! - -Sat Jan 20 10:49:05 2001 Carlos O'Ryan - - * docs/ACE-guidelines.html: - Update the guidelines to point people to the Doxygen - documentation, instead of the now abandoned OSE tools. - -Sat Jan 20 10:21:08 2001 Carlos O'Ryan - - * ace/OS.cpp: - Another pass fixing problems with ACE_BEGINTHREADEX() under - Win32, this time Win32 is working fine. - -Sat Jan 20 10:20:50 2001 Douglas C. Schmidt - - * doc/tutorials: Integrated the new Service Configurator tutorial - into the main tutorials page. - -Fri Jan 19 16:57:43 2001 Douglas C. Schmidt - - * ace/Svc_Handler.h: Updated the comments to explain why - operator new is overloaded. Thanks to Kirill Kuolechov - for reporting this. - -Fri Jan 19 15:39:43 2001 Carlos O'Ryan - - * ace/OS.cpp: - QNX/RTP has the same problem that LynxOS has, after fork() is - invoked trying to destroy the preallocated objects in - ACE_OS_Object_Manager fails. - Factor out this variation in a new macro: - ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK - - * ace/config-lynxos.h: - * ace/config-qnx-rtp.h: - Define the new macro for the two relevant platforms. - - * ace/README: - Document the macro. - -Fri Jan 19 15:08:37 2001 Carlos O'Ryan - - * ace/OS.cpp: - I disabled too much in the commit at 10:50am... Now it seems to - be OK. - - * ace/Makefile: - Remove extra -v - -Fri Jan 19 13:16:49 2001 Priyanka Gontla - - * include/makeinclude/platform_hpux_aCC.GNU: - Added new options to the CCFLAGS so that the known future errors - arising because of HPUX are suppressed. - -Fri Jan 19 13:01:13 2001 Priyanka Gontla - - * ace/SSL/Makefile: - Put a check for defining ACE_SHLIBS to get it compiled on HPUX. - - * ace/RMCast/Makefile: - * ace/Makefile : - Updated dependencies - - * ace/config-all.h - Fix a build problem on HP-UX 11.00 with aCC A.03.25. The macro - used to determine the use of the std namespace changed from - RWSTD_NO_NAMESPACE to _NAMESPACE_STD. NOTE: I did preserve the - check for RWSTD_NO_NAMESPACE with aCC versions less than A.03.25. - - Thanks to Chad Elliott for making this fix. - -Fri Jan 19 11:22:42 2001 Priyanka Gontla - - * docs/tutorials/022/client_handler.cpp : - * docs/tutorials/022/client_hander.h : - * docs/tutorials/022/Acceptor_Service.cpp : - * docs/tutorials/022/Acceptor_Service.h : - * docs/tutorials/022/server.cpp : - * docs/tutorials/022/Makefile : - - * docs/tutorials/022/client/Makefile: - * docs/tutorials/022/client/client.cpp: - - * docs/tutorials/022/page01.html: - * docs/tutorials/022/page02.html: - * docs/tutorials/022/page03.html: - * docs/tutorials/022/page04.html: - * docs/tutorials/022/page05.html: - - Developed a new tutorial for the ACE_Service_Configurator. - Based on the ACE tutorial 005. - -Fri Jan 19 10:50:11 2001 Carlos O'Ryan - - * ace/OS.cpp: - Use the Green Hills specific tricks *only* if we are compiling - under Green Hills, and only for the platform where they make - sense (in this case Win32). - -Thu Jan 18 23:21:53 2001 Carlos O'Ryan - - * ace/OS.h: - Document the infamous ACE_STATIC_SVC macros. - -Thu Jan 18 23:50:35 2001 Rick Stille - - The Green Hills(GHS) Native x86 compiler does not provide support - for 64-bit integers, structural exceptions, or DLL's. Thus the - keywords __int64, __try, __dllimport, etc., are not defined. In - addition, exceptions do not work in a multi-threaded environment. - The following changes were made to address these shortcomings. - - * ace/Basic_Types.h: Because the GHS compiler has both - ACE_LACKS_LONGLONG_T and ACE_WIN32 defined, the - ACE_LACKS_LONGLONG_T macro must appear first, so the order of - these two macros has been reversed in the defines of both - ACE_UINT64_LITERAL(n) and ACE_UINT64_DBLCAST_ADAPTER(n). - - * ace/config-win32-common.h: The typedef of ACE_UINT64 as an - unsigned __int64 and the define of ACE_HAS_LLSEEK are blocked - out for ghs. - - * ace/config-win32-ghs.h: This is the new configuration file for - Green Hills/Win32. - - * ace/Configuration.cpp(resolve_key): The "return 0" at the end of - this function has been blocked out for ghs to eliminate an - "unreachable code" warning. - - * ace/Event_Handler_T.h(handle_signal): The type of the "signum" - parameter has been changed to "int" so that it matches the type - in the Event_Handler class. - - * ace/Event_Handler_T.i(handle_signal): The type of the "signum" - parameter has been changed to "int" so that it matches the type - in the Event_Handler class. - - * ace/High_Res_Timer.cpp(global_scale_factor): The Native x86 - compiler defines "QuadPart" in the LARGE_INTEGER union as a - "double," so it cannot be used in the calculation of - "global_scale_factor." Instead, for GHS, the low and high parts - of the LARGE_INTEGER structure are copied into an ACE_UINT64 - structure (which is actually an ACE_U_LongLong) and the - ACE_U_LongLong operators are used. The code segment if - (ACE_High_Res_Timer::global_scale_factor_ == 1u) // Failed to - retrieve CPU speed from system, so calculate it. - ACE_High_Res_Timer::calibrate (); is unreachable hen ACE_WIN32 - is defined, so it has been blocked out for Win32 platforms to - silence the Green Hills "unreachable code" warning. - - * ace/High_Res_Timer.i(hrtime_to_tv): There is no assignment - operator that converts an ACE_U_LongLong to a "long," so an - intermediate ACE_U_LongLong variable "usec64" has been - introduced. The type of "msec" and "usec" have been changed from - "long" to ACE_UINT32, as have been the casts. The conversion is - then carried out by using the lower part of "usec64." - - * ace/Local_Name_Space_T.cpp(remap): The "DWORD" cast has been - removed from both EXCEPTION_CONTINUE_SEARCH and - EXCEPTION_CONTINUE_EXECUTION beause the function return value is - of type "int" and the cast was causing an "integer conversion - resulted in a change of sign" warning. - - * ace/Memory_Pool.cpp(map): Removed references to the "mem_offset" - variable because it was not being used and the compiler was - issuing a warning to this effect. - - * ace/NT_Service.cpp(startup): This function was returning "-1" - when svc_sc_handle() failed, and returning a "0" when - QueryServiceConfig() failed. Since the return type of this - function is "DWORD," the compiler was issuing an "integer - conversion resulted in a change of sign" warning for the "-1" - value. Upon investigation of this issue, it was discovered that - "0" is a valid service type value, and thus the use of "0" to - indicate failure is a bug. The return value for svc_sc_handle() - failure has been changed to "MAXDWORD - 1," which is the DWORD - equivalent of "-2," and the return value for failure of - QueryServiceConfig() has been changed to "MAXDWORD," which is - the DWORD equivalent of -1. - - * ace/OS.cpp: The compiler cannot handle a 64-bit literal, so the - literal passed to FILETIME_to_timval_skew has been created as - ACE_U_LongLong(0xd53e8000, 0x19db1de). - - * ace/OS.cpp(set): The Native x86 compiler defines "QuadPart" in - the LARGE_INTEGER union as a "double," so it cannot be used in - the calculations of tv_sec and tv_usec. Instead, the low and - high parts of the LARGE_INTEGER structure are copied into an - ACE_U_LongLong structure, and the ACE_U_LongLong operators are - used. - - * ace/OS.cpp(operator FILETIME): The Native x86 compiler defines - "QuadPart" in the LARGE_INTEGER union as a "double," so it - cannot be used in the calculation of file_time. Instead, tv_sec - and tv_usec are converted iinto ACE_U_LongLong structures and - the ACE_U_LongLong operators are used. - - * ace/OS.cpp(uname): The Native x86 compiler names both the union - and the structure within the SYSTEM_INFO structure, so the - "wProcessorArchitecture" member within the "s" structure, which - is itself within the "u" union, must be accessed by using - ".u.s." - - * ace/OS.cpp(ACE_BEGINTHREADEX): Green Hills compiler gets - confused when __stdcall is imbedded in parameter list, so the - type ACE_WIN32THRFUNC_T has been defined, then used within the - parameter list of ::_beginthreadex(). - - * ace/OS.h(ACE_Time_Value): The Native x86 compiler defines - "DWORDLONG" as type "double," so FILETIME_to_timval_skew is - instead defined as type ACE_U_LongLong. - - * ace/OS.h: The pragmas "#pragma warning( disable : ... " are - unknown to the Native x86 compiler, so it produces warnings to - this effect. These pragma have been blocked out for ghs. - - * ace/OS.h: Because the Native x86 compiler does not support the - __int64 keyword, the typedef of ACE_hrtime_t has been changed - from "unsigned __int64" to "ACE_UINT64" for ghs. Because no - usage of "ACE_QWORD" could be foound, its definition has been - blocked out for ghs. - - * ace/OS.i(gettimeofday):The code at the end of this function is - not reachable if either ACE_HAS_WINCE or ACE_WIN32 is - defined. In order to quiet the Green Hills compiler warnings - about unreachable code, this code has been blocked out for - ACE_HAS_WINCE and ACE_WIN32. With this code blocked out, - however, the variables "tv" and "result" are not used, and the - compiler warns about about variables defined, but never used. In - order to quiet these warnings, the definitions of these two - variables have been blocked out for ACE_HAS_WINCE and ACE_WIN32. - - * ace/OS.i(gethrtime): The ACE_gethrtime() function is not meant - to be used by a Win32 platform, but because both "ghs" and - "ACE_HAS_PENTIUM" are defined for the Native x86 platform, a - call to ACE_gethrtime() was included in the code. This problem - has been solved by adding "&& !defined(ACE_WIN32)" to the two - "... defined (ghs) && defined (ACE_HAS_PENTIUM)" statements - which block out references to ACE_gethrtime(). - - The Native x86 compiler defines "QuadPart" in the LARGE_INTEGER - union as a "double," so it cannot be used as the return - value. Instead, because the return type is "ACE_hrtime_t," which - is type "ACE_UINT64," the low and high parts of the - LARGE_INTEGER structure are copied into an ACE_UINT64, which is - then returned. - - * ace/Process_Manager.cpp(wait): The "result >= WAIT_OBJECT_0" - test within the ACE_ASSERT statement causes the Native x86 - compiler to produce a pointless comparison of unsigned - integer with zero warning because "result" is of type - "DWORD," which is defined by the Native x86 compiler as type - "unsigned int." This test has been blocked out for ghs. - - * ace/Profile_Timer.cpp(elapsed_time): Because the "__int64" - keyword is not defined by the Native x86 compiler, it cannot be - used to cast the value of "delta_t" in the calculation of - "real_time." But "delta_t" is of type "ACE_hrtime_t," and - ACE_hrtime_t is typedefed as ACE_U_LongLong, so the division - operator defined for in the ACE_U_LongLong class can be used - directly with a divisor of type "double." Thus the "__int64" - cast has been removed for ghs. - - * ace/Sock_Connect.cpp(get_reg_value): This function is used - within the function get_ip_interfaces() function only when - either ACE_HAS_WINSOCK2 is not defined or when ACE_HAS_WINSOCK2 - is defined as "0." Because ACE_HAS_WINSOCK2 is defined on the - Native x86 platform, the compiler was issuing a defined, but - never used warning. This warning has been eliminated by - blocking out the definition of get_reg_value() when - ACE_HAS_WINSOCK2 is defined as a value other than "0." - - * ace/Stats.cpp(accumulate): The comparison "rhs.samples_count () - == 0" was producing a warning because rhs.samples_count() - returns an ACE_UINT32, but is being compared to the signed - literal "0." The "0" has been changed to "0u." - - * ace/WFMO_Reactor.cpp(ok_to_wait): The comparison of the "switch" - statement parameter "result" to "DWORD" values in the case - statements elicited an "integer conversion resulted in a change - of sign" warning from the compiler, so the type of "result" has - been changed to "DWORD." - - * ace/WFMO_Reactor.cpp(dispatch): The comparison of the "switch" - statement parameter "wait_status" to "DWORD" values in the case - statements elicited an "integer conversion resulted in a change - of sign" warning from the compiler, so the type of "wait_status" - has been cast to "DWORD." - - * ace/WFMO_Reactor.cpp(dispatch_handles): The "wait_status >= - WAIT_OBJECT_0" comparison was producing a pointless - comparison of unsigned integer with zero warning because - "wait_status" is an unsigned integer. This was a known problem - with Borland, so the blocking out of this comparison has been - extende to ghs. - - * tests/Basic_Types_Test.cpp(main): Because both the - ACE_LACKS_LONGLONG_T and ACE_WIN32 macros are defined, the - ACE_LACKS_LONGLONG_T macro must appear first, so the order of - these two macros has been reversed. - - * tests/Cached_Accept_Conn_Test.cpp: The template class - ACE_Node must be explicitly instantiated for this - platform. - - * tests/Cached_Conn_Test.cpp: The template class - ACE_Node must be explicitly instantiated for this - platform. - - * tests/Handle_Set_Test.cpp: The template class - ACE_Node must be explicitly instantiated for this - platform. This was already being done for the _CRAYMPP, so it - has been extended to ghs. - - * tests/Malloc_Test.cpp: Because the Native x86 compiler does not - support structural exceptions, it cannot support the "remap" - function, so the blocking of the ACE_TEST_REMAP_ON_FAULT macro - definition, which was already in effect for linux, has been - extended to ghs. - -Thu Jan 18 12:49:53 2001 Douglas C. Schmidt - - * ace/SUN_Proactor.cpp: Added support for cancel_aiocb(). Thanks - to Alexander Libman for contributing - this. - - * tests/Makefile.bor (TESTS): Added Config_Test so that this test - runs on Borland. - - * tests: Moved the config_test stuff (which tests ACE_Configuration* - classes) from the examples/Configuration/ directory to the - tests/ directory and made it a one-button test. - - * ace/Future.h: Changed the order of the thread mutex and the condition - variable to avoid confusion in the future regarding "order of - initialization." Thanks to Edan Ayal for - reporting this. - - * examples/Configuration: Updated this example to include the new - test for the ACE_Configuration_Heap methods. Thanks to Michael - Searles for contributing this. - -Thu Jan 18 18:55:37 2001 Carlos O'Ryan - - * bin/nightlybuilds/builds.lst: - Add the RedHat_Implicit_Templates build. - -Thu Jan 18 18:48:33 2001 Carlos O'Ryan - - * ace/Log_Msg.cpp: - Declare sys_nerr as const int under QNX/RTP (and NTO). - - * ace/Pipe.cpp: - Use pipe() under QNX because it lacks both socketpair() and it - cannot open a socket to itself. - - * ace/config-qnx-rtp.h: - Remove ACE_NTRACE hacks. - - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - Do not enable the repo by default it breaks QNX. - Instead of removing the definition of DCFLAGS by default we - set debug=0 all the time, that seems like a cleaner way to - disable debugging. - -Thu Jan 18 09:34:35 2001 Carlos O'Ryan - - * include/makeinclude/platform_linux.GNU: - The -fno-implicit-templates flag was hardcoded, but this gave - the users no recourse to remove should they want to use - -fimplicit-templates. - The macro IMPLICIT_TEMPLATES_FLAG is used to set the flag now, - unless the user provides a value for the macro the makefiles - continue to work as they did before this change, i.e., adding - -fno-implicit-templates to CCFLAGS. - Notice that this functionality was available in - platform_linux_lxpthreads.GNU, but dissapeared when everything - was rolled into platform_linux.GNU. - -Thu Jan 18 06:26:42 2001 Douglas C. Schmidt - - * ace/Configuration.{h,cpp}: Added functionality to read in all - values in a config file without requiring a type prefix on each - value, skips whitespace and allows comments on the end of lines. - Thanks to Michael Searles for contributing - this. - -Wed Jan 17 11:48:42 2001 Darrell Brunsch - - * bin/msvc_auto_compile.pl: - - Added PACE to the list of ACE directories so PACE is - compiled in full auto builds. - -Wed Jan 17 10:00:42 2001 Darrell Brunsch - - * ace/Handle_Ops.cpp: (handle_timed_open) - - Removed the use of ACE_NONBLOCK on Win32. This use - didn't function as expected, since ACE_NONBLOCK would - be interpreted as O_WRONLY. Also, the CreateFile API - call doesn't support any nonblocking option, so - redefining ACE_NONBLOCK would not seem to fix anything. - - Thanks to Matthias Wittig for reporting - a problem report form about this. - - * bin/PerlACE/Process_Unix.pm: - - Fixed up the use of the RUNNING state, so wait and kill - work properly. Also made Kill automatically use waitpid - (since I can't think of any time we'd kill without wanting to - clean up the resources). - -Wed Jan 17 07:44:29 2001 Douglas C. Schmidt - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (send): Set errno to - EWOULDBLOCK if n < len so that the caller will initiate a - handle_output()-driven reply. Thanks to Klaus H. Wolf - for reporting this. - - * ace/Log_Msg.h (ACE_Log_Msg): Clarified that only the current message - is stored in TSS. Thanks to Pierre Oberson - for pointing out the need for this - clarification. - - * examples/Log_Msg/test_log_msg.cpp (main): Fixed the example by - adding ACE_Log_Msg::PROCESS so that the messages do not print - out (which is the correct behavior for this test). Thanks to - Mike Curtis for reporting this. - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (send): Set errno to - EWOULDBLOCK if n < len so that the caller will initiate a - handle_output()-driven reply. Thanks to Klaus H. Wolf - for reporting this. - - * ace/Log_Msg.h (ACE_Log_Msg): Clarified that only the current message - is stored in TSS. Thanks to Pierre Oberson - for pointing out the need for this - clarification. - - * examples/Log_Msg/test_log_msg.cpp (main): Fixed the example by - adding ACE_Log_Msg::PROCESS so that the messages do not print - out (which is the correct behavior for this test). Thanks to - Mike Curtis for reporting this. - -Tue Jan 16 15:28:22 2001 Carlos O'Ryan - - * netsvcs/lib/Server_Logging_Handler_T.cpp: - The formal parameter names must match in the .h and .cpp file - to make Sun/CC 6.0 happy. - -Tue Jan 16 11:25:32 2001 Douglas C. Schmidt - - * ace/Log_Msg.cpp (log): Convert strerror() text string to a - TCHAR so that this call will work correctly with Unicode. - Thanks to Matthias Wittig for reporting - this. - -Tue Jan 16 09:58:20 2001 Darrell Brunsch - - * ace/ace_wchar.inl: - - Updated ACE_Ascii_To_Wide and ACE_Wide_To_Ascii to - preserve null pointers. - - Thanks to Matthias Wittig for - reporting this and suggesting a fix. - -Tue Jan 16 10:47:33 2001 Frank Hunleth - - * ace/config-win32-common.h: - * ace/config-win32-msvc.h: - Moved #define ACE_HAS_LLSEEK from config-win32-common.h to - config-win32-msvc.h, since _lseeki64 isn't defined for - Borland. Also implicitly removed ACE_HAS_LLSEEK for the - VisualAge compiler - it might have worked (didn't know, - couldn't test) - -Mon Jan 15 15:22:42 2001 Douglas C. Schmidt - - * ace/Asynch_IO.h: Changed the ACE_Asynch_Read_Stream::read() - method's "bytes_to_read" parameter to "num_bytes_to_read" to - workaround a weird problem with some compilers. Thanks to Chris - Kohlhoff for this fix. - - * examples/Service_Configurator/IPC-tests/README: Updated this - file so that it's now up-to-date and also explains how to - reconfigure a server if SIGHUP isn't supported. Thanks to Mike - Curtis for reporting this. - -Mon Jan 15 12:13:48 2001 Darrell Brunsch - - * bin/nightlybuilds/builds.lst: [Added] - * bin/nightlybuilds/scoreboard_update.pl: [Added] - - Moved the scoreboard stuff from the internal cvs repos - to this one, so it is easier for people to edit the - list. - -Mon Jan 15 12:29:53 2001 Douglas C. Schmidt - - * ace/config-macosx.h: Fixed typo so that ACE_HAS_CLOCK_GETTIME - is spelled correctly. Thanks to Mike Curtis - for reporting this. - - * ace/Strategies_T.cpp (open): Replace the ACE_OS::strncpy() functions - with ACE_OS::strcpy() functions. Thanks to Ron Hashimshony - for reporting this. - -Mon Jan 15 09:44:16 2001 Carlos O'Ryan - - * ace/RMCast/Makefile: - Fixed Makefile to link the ACE library, otherwise we get - undefined symbols under certain platforms (AIX). Thanks to - Scott Bolin for pointing this out. - -Mon Jan 15 09:11:12 2001 Douglas C. Schmidt - - * ace/config-win32-common.h: Added support for ACE_HAS_LLSEEK, though - this should probably be changed to be compiled only on some - Win32 platforms. - - * ace/OS.{h,i}: Added support for ACE_OS::llseek() on Win32. Thanks - to Nick Lin for contributing this. - - * ace/Log_Priority.h: Clarified the fact that we only use 12 bits - for ACE_Log_Priority. Thus, the remaining bits are available - for application use. Thanks to David Singer - for motivating this comment. - -Sun Jan 14 16:53:11 2001 Douglas C. Schmidt - - * ace/Configuration.{h,cpp}: Fixed a memory leak that occurred - with transient heaps. Also added a list of current limitations - to import/export routine. Thanks to Chris Hafey - for contributing this stuff. - -Fri Jan 12 20:46:05 2001 Angelo Corsaro - - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - Platform macros needed to run ACE on QNX RTP. - - * ace/config-qnx-rtp.h: - Configuration file needed to run ACE on QNX RTP. - - * ACE-INSTALL.html: - Added documentation on how to install ACE on QNX RTP, - and the issue with the current version of QNX RTP. - - -Fri Jan 12 14:59:15 2001 Carlos O'Ryan - - * tests/RMCast/RMCast_Fragment_Test.cpp: - Fixed conversion from 64-bit ulong to 32-bit ulong under some - VxWorks compilers where 64 bits are emulated. Thanks to Edwin - McKay for pointing this out. - -Fri Jan 12 07:18:16 2001 Douglas C. Schmidt - - * ace/OS.{h,i}: Moved some "using std::*" definitions from OS.i to - OS.h. Thanks to Mike Curtis for reporting - this and to Christopher Kohlhoff for - suggesting the fix. - -Fri Jan 12 15:34:28 2001 Steve Huston - - * ace/Managed_Object.h: Added to the unimplemented operator= - declaration. Fixes compile w/ IBM C/C++ 3.6 on AIX. - -Fri Jan 12 07:59:19 2001 Joe Hoffert - - * Makefile: - Add the PACE directory back into the build. PACE should - not generate any build failures for the platforms - currently supported. - -Wed Jan 10 23:30:21 2001 Douglas C. Schmidt - - * ace/FILE_Addr.cpp (set): Replace (sizeof this->filename_) - with (sizeof this->filename_ / sizeof (ACE_TCHAR)). Thanks to - Matthias Wittig for reporting this. - -Tue Jan 9 07:27:19 2001 Douglas C. Schmidt - - * ace/Containers_T.h: Clarified that the ACE_Ordered_Multiset class - allows duplicates. Thanks to Albert Wijna - for clarifying this. - -Sat Jan 6 10:20:55 2001 Douglas C. Schmidt - - * ace/File_Lock.{h,inl}: Made the get_handle() method const. - Thanks to Johnny Willemsen for - reporting this. - - * ace/TP_Reactor.h: - * ace/Get_Opt.h: - * ace/Caching_Utility_T.h: Added "ACE_UNIMPLEMENTED_FUNC" macros - for all copy constructors and assignment operators. Thanks to - Johnny Willemsen for reporting this. - -Fri Jan 5 01:09:28 2001 Douglas C. Schmidt - - * performance-tests/Misc/context_switch_time.cpp (get_options), - * performance-tests/Misc/preempt.cpp (open), - * examples/Reactor/Misc/pingpong.cpp (run_svc), - * examples/Reactor/Misc/notification.cpp (main), - * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp (main), - * examples/Shared_Malloc/Options.cpp (print_usage_and_die), - * examples/Service_Configurator/IPC-tests/client/: Updated all - these programs so that don't abort via %a, but instead call - ACE_OS::exit(). Thanks to Mike Curtis for - suggesting this. - - * apps/Gateway/Peer/Options.cpp (print_usage_and_die): Make sure to - actually *die* when we're done with this function! Thanks to - Mike Curtis for suggesting this. - -Thu Jan 4 00:10:26 2001 Douglas C. Schmidt - - * ace/Select_Reactor_T.i: The cancel_timer() method should return the - number of events canceled, rather than 0 or 1. Thanks to Joe - Guan for reporting this and providing - the fix. - - * ace/Synch.h: Added an acquire (ACE_Time_Value &) method to ACE_Null_Mutex - so that this will work properly when - ACE_HAS_OPTIMIZED_MESSAGE_QUEUE is enabled. Thanks to Yuriy - Zaporozhets for reporting this. - -Wed Jan 3 23:00:52 2001 Douglas C. Schmidt - - * ace/Lib_Find.cpp (ldfind), - * ace/Makefile.bor (CFLAGS), - * include/makeinclude/outputdir.bor (OBJDIR), - * ace/config-win32-msvc.h: Added support for the new ACE_LD_DECORATOR_STR - macro which is used to work around the fact that Borland - attaches a so-called "decorator suffix" to all library names. - Thanks to Chris Kohlhoff for reporting - this. - - * ace/Lib_Find.h: Fixed a typo where ACE_LIB_FIND_H was misspelled. - Thanks to Chris Kohlhoff for reporting - this. - - * ace/SOCK_Stream.i, - ace/MEM_Stream.i: Updated the calls to ACE_OS::shutdown() to use - the new macros described below! - - * ace/OS.h: Added better support for the ACE_OS::shutdown() second - parmeter in the form of new macros ACE_SHUTDOWN_READ, - ACE_SHUTDOWN_WRITE, and ACE_SHUTDOWN_BOTH. Thanks to Mike - Curtis for suggesting this. - - * ace/SOCK_Stream.h: Clarified the role of the timeout parameters in - the various methods. Thanks to Allen Broadman - for motivating this. - -Thu Jan 11 17:24:30 2001 Carlos O'Ryan - - * Makefile: - Add new target 'Core' to quickly compile the basic ACE+TAO - components. - -Thu Jan 11 09:56:43 2001 Frank - - * ACE version 5.1.12 released. - -Thu Jan 11 05:38:24 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp: Reverted the change that was made for SPRO - 5.1 compilers. The change that was reverted is this - - Thu Jan 4 17:14:33 2001 Balachandran Natarajan - - - * ace/Handle_Set.cpp: Changed the macro - - ACE_DIV_BY_WORDSIZE(x) ((x) >> (ACE_Handle_Set::WORDSIZE)) to - - ACE_DIV_BY_WORDSIZE(x) ((x) >> ((int) - ACE_Handle_Set::WORDSIZE)). This seems to be a better - fix. Thanks to David Allen for suggesting - this. - -Tue Jan 9 09:53:53 2001 Carlos O'Ryan - - * tests/MEM_Stream_Test.cpp: - Run the event loop for at most 1 minute. After that we know - that something is amiss with the client threads, and we should - exit. This fixes the deadlock problems we were seeing in the - nightly builds. - The real cause of the problem is something broken with the way - MEM_Addr objects compare local addresses, sometimes they fail to - compare equal. In the test this results in failed connections. - -Mon Jan 8 18:53:39 2001 Sharath R. Cholleti - - * examples/Map_Manager/test_hash_map_manager.cpp: - Removed template instantiations for - ACE_Guard, - ACE_Read_Guard, and - ACE_Write_Guard to fix linker - errors under Lynx_I386. - -Mon Jan 8 10:44:57 2001 Darrell Brunsch - - * ace/OS.h: - - Added some more protection (!VXWORKS) around the cuserid - inline statement since VXWORKS doesn't have cuserid. - -Mon Jan 08 10:04:55 2001 Nanbor Wang - - * ace/Thread_Manager.cpp (terminate): Reordered some statements so - we get the thread descriptor's log_msg pointer before we delete - the thread descriptor. Thanks to Tomer Amiaz - for reporting this. - -Sun Jan 7 16:51:42 2001 Darrell Brunsch - - * ace/ace_dll.dsp: - - Removed the PACE libraries from linking. We are going to come - up with a different solution for pace. - - * docs/run_test.txt: - - Changed the instructions a little to use PerlACE::LocalFile - for the server's IOR file. - -Sun Jan 7 08:59:09 2001 Balachandran Natarajan - - * tests/DLL_Test.cpp: Added a message in a ACE_ERROR statement. - * tests/run_test.lst: Disabled MEM_Stream_Test in Linux. - -Thu Jan 4 17:14:33 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp (dispatch_i): Eliminate a portion of the - code from SunCC5 builds. This piece of code was trying to set - things right when it sees all the masks clear and the - greater than zero. This seems to be creating problems with SunCC - 5 builds alone. Commenting out this piece for SunCC5 helps. This - should also be a work around for the bug #750 in bugzilla. - -Thu Jan 04 17:07:48 2001 Luther Baker - - * ace/ace_dll.dsp - - Consistent typography (win32 specific backslash). - -Thu Jan 4 15:34:14 2001 Luther J Baker - - * ace/ace_dll.dsp - - Added PACE library to the ACE DLL project file. - (also changed the library search path) - -Wed Jan 3 17:24:11 2001 Darrell Brunsch - - * ace/OS.h: - - Mistakenly changed the ace_timezone () method to use - timezone () instead of timezone. Changed back. - -Wed Jan 3 16:00:22 2001 Darrell Brunsch - - * ace/ACE.cpp - - Changed the types of day_of_week_name and month_name in - ACE::timestamp to ACE_TCHAR (since that was the data - being assigned to it and the type that is later expected). - This fixed errors in Win32's Unicode build. - -Wed Jan 3 15:44:31 2001 Darrell Brunsch - - * ace/OS.i: - - Removed ACE_TIMEZONE since we found another workaround for - platforms that define timezone () as a macro. - - * ace/OS.h: - * ace/OS.i: - - Moved much of the code from ACE_OS::timezone and - ACE_OS::difftime into ace_timezone and ace_difftime. Since - some platforms don't have timezone or difftime, we needed - to do something here so those methods aren't used. Instead - of figuring out what larger #if !... should be, it is easier - (and less error prone) to just move the code here. - -Wed Jan 3 13:10:39 2001 Darrell Brunsch - - * apps/JAWS/server/HTTP_Helpers.cpp: - - Added ACE_MT around an ACE_Guard to remove an unused var - warning in the single threaded builds. - -Wed Jan 3 12:56:13 2001 Darrell Brunsch - - * ace/Timer_Wheel_T.cpp: - * ace/Timer_Wheel_T.h: - - Doug noticed some redundant code in expire while making his - change on the 21st. I checked and he was right, it looks like - I was moving around the loop termination conditionals and left - some around. Removed them and also added some better comments - and made it more doxygen complient. - -Wed Jan 3 12:06:20 2001 Darrell Brunsch - - * tests/Refcounted_Auto_Ptr_Test.dsw: - - Projects are listed in tests.dsw, so this is unneeded. - - * tests/tests.dsw: - - Added Refcounted_Auto_Ptr_Test.dsp. - -Tue Jan 3 10:30:42 2001 Darrell Brunsch - - * docs/msvc_notes.txt: - - Added this file explaining some issues or explanations on how - ACE/TAO are set up for use with MSVC. Mainly I'm thinking of - this as a place to put random stuff about ACE and TAO on MSVC. - - Plus I think we need more nifty doxygen documents. ;-) A tip of - the hat goes to Letha Etzkorn and - Shivakumar Patil for bringing up - questions that led to the dump of info to this file. - - * ACE-INSTALL.html: - - Added a reference to msvc_notes.txt. - -Wed Jan 3 09:15:24 2001 Jeff Parsons - - * ace/ACE.cpp: - - Replaced these lines - - SYSTEMTIME local; - ::GetLocalTime (&local); - - in the timestamp() method. - They were removed the last time this file was - modified, breaking the Win32 builds. - -Wed Jan 03 05:49:11 2001 Carlos O'Ryan - - * ace/OS.h: - The ace_cuserid() helper cannot be defined in Win32 - -Wed Jan 03 05:42:20 2001 Carlos O'Ryan - - * ace/OS.h: - Remove broken #include of unistd.h, it was a debug statement - that sneaked through the commit. - -Tue Jan 2 18:33:03 2001 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - Workaround platforms that define timezone, difftime or cuserid - as macros. Instead of just dropping support for the ACE_OS::XXX - method we create an inline ace_XXX() function, that uses the - original macro expansion, then we #undef the offending macro, - and use the inline function in the code. - - * ace/config-tru64.h: - Enable cuserid() again, with the new workaround it should work - without problems. - This fix should remove some of the redness in the TRU64_CXX - builds. - -Tue Jan 2 14:22:21 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Add the DII version of Param_Test to the nightly builds. - -Tue Jan 2 10:25:30 2001 Balachandran Natarajan - - * ace/Cached_Connect_Strategy_T.cpp: Added the patch provided by - Edan Ayal for - ACE_Bounded_Cached_Connect_Strategy::find_or_create_svc_handler_i (). - -Tue Jan 2 09:03:18 2001 Douglas C. Schmidt - - * ace/Asynch_Acceptor.{h,cpp}, - ace/POSIX_Async_IO.{h,cpp}, - ace/POSIX_Proactor.{h,cpp}, - ace/SUN_Proactor.{h,cpp}: Added enhanced versions of ACE_POSIX_Proactor - and ACE_SUN_Proactor to fix various problems uncovered and fixed by - Alexander Libman . - - * ace/ACE.{h,cpp}: Fixed the timestamp() method so that it works - identically on Win32 and on UNIX. Also provided a new option - that'll make it possible to return a pointer to the beginning of - the time portion of "date and time." Thanks to Michael Searles - for contributing these fixes. - -Mon Jan 01 16:35:00 2001 Michael Kircher - - * tests/Reader_Writer_Test.cpp: Added a #ifdef to check for native - RW lock support. If the platform supports native RW locks we should - not report a failure on upgrading, because native RW locks do not - support upgrading, only our RW lock emulation does this. - Thanks to Frank and Doug for pointing out this failure. diff --git a/ACE/ChangeLogs/ChangeLog-01b b/ACE/ChangeLogs/ChangeLog-01b deleted file mode 100644 index 504c875d72b..00000000000 --- a/ACE/ChangeLogs/ChangeLog-01b +++ /dev/null @@ -1,8242 +0,0 @@ -Mon Dec 31 09:32:59 2001 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.h: Added ACE_UNIMPLEMENTED_FUNC() for the - assignment operator and copy constructor of class - ACE_Hash_Map_Manager_Ex. Thanks to Johnny Willemsen for - reporting this. - -Mon Dec 31 16:33:17 2001 Johnny Willemsen - - * ace/OS.{h,i}: - Added ACE_OS::freopen. This method reassigns an existing - stream with a new stream. This is not supported on WinCE - -Mon Dec 31 15:09:12 2001 Johnny Willemsen - - * apps/drwho/BM_Server.cpp: - * apps/drwho/Options.cpp: - * apps/drwho/PM_Client.cpp: - * apps/drwho/PMC_Ruser.cpp: - * apps/drwho/PMC_Ruser.cpp: - * apps/gperf/src/Options.cpp: - * docs/tutorials/010/message_queue.cpp: - * docs/tutorials/011/message_queue.cpp: - * docs/tutorials/012/message_queue.cpp: - * docs/tutorials/013/message_queue.cpp: - * examples/IOStream/server/iostream_server.cpp: - * examples/Reactor/WFMO_Reactor/test_multithreading.cpp: - * netsvcs/clients/Logger/direct_logging.cpp: - * tests/Pipe_Test.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i: - Changed occurences of atoi with ACE_OS::atoi because the normal - atoi gives problems when compiling with ACE_USES_WCHAR defined - -Mon Dec 31 14:40:12 2001 Johnny Willemsen - - * ace/Get_Opt.cpp: - Replaced ACE_TEXT by ACE_LIB_TEXT because ACE_LIB_TEXT must be used - within the ACE library instead of ACE_TEXT - -Sun Dec 30 16:54:18 2001 Douglas C. Schmidt - - * ace/Parse_Node.cpp: Now that ACE::strnew() checks for a NULL - parameter, we can remove the checks in the ACE code. - - * ace/ACE.i (strnew): Check to see if the pointer passed to - ACE::strnew() is non-NULL. Thanks to Don Hinton for reporting - this. - -Sat Dec 29 18:36:13 2001 Douglas C. Schmidt - - * ace/OS.i (putenv): Fixed a typo. Thanks to Venkita for - reporting this. - - * ace/OS.i (getenv): Return ACE_NOTSUP_RETURN(0) if we're - compiling on a platform that lacks getenv(), e.g., WinCE. - Thanks to Venkita for reporting this. - -Sat Dec 29 16:14:41 2001 Balachandran Natarajan - - * ace/OS.h: - * ace/Default_Constants.h: Moved some constants from this file to - OS.h as it needed includes in OS.h. Need to take a better look - before any other dissection can be performed. - -Sat Dec 29 12:08:40 2001 Balachandran Natarajan - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added new header files into the project. - -Sat Dec 29 11:57:40 2001 Balachandran Natarajan - - * ace/Default_Constants.h: A new header file that houses some of - the constants that are used widely by ACE and applications based - on ACE. The motivation for this one is the same as that of - creating Global_Macros.h. - - * ace/Global_Macros.h: Moved some constant definitions from this - file to Default_Constants.h. - - * ace/OS.h: Moved some constant definitions out of this - file. There are some more that needs moving and will be done - over a period of time hopefully. - -Sat Dec 29 06:31:50 2001 Douglas C. Schmidt - - * tests/MEM_Stream_Test.cpp (test_concurrent): Added an - ACE_UNUSED_ARG(connect_client) to silence complaints on certain - compilers about unused arguments. - -Sat Dec 29 12:54:45 2001 Johnny Willemsen - - * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp: - * examples/Mem_Map/file-reverse/file-reverse.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Reactor/Multicast/server.cpp: - Made these files compiling when ACE_USES_WCHAR is set - - * examples/Map_Manager/test_hash_map_manager.cpp: - Made this file partly compiling when ACE_USES_WCHAR is set - -Sat Dec 29 10:42:12 2001 Johnny Willemsen - - * tests/SSL/Makefile.bor: - Added SSL_LIB to lib files - -Sat Dec 29 02:55:24 2001 Venkita Subramonian - - * ace/OS.i: - Fixed problem with idl compiler segmentation fault. - replaced - # if !defined ACE_LACKS_ENV - with - # if defined ACE_LACKS_ENV - in ACE_OS::strenvdup. - -Fri Dec 28 16:01:58 2001 Balachandran Natarajan - - * ace/Global_Macros.h: Fixed a fuzz error. - -Fri Dec 28 15:15:42 2002 Steve Huston - - * ace/Select_Reactor_T.h: Improved Doxygenization of some comments. - -Fri Dec 28 13:41:23 2001 Douglas C. Schmidt - - * ace/OS.{h,i,cpp} (putenv,getenv,strenvdup,getenvstrings): - * ace/Get_Opt.cpp (ACE_Get_Opt): Removed the #ifndef (ACE_LACKS_ENV) - from Get_Opt.cpp and move this into OS.i where it belongs! - Thanks to Venkita and Don Hinton for reporting this. - -Fri Dec 28 19:56:12 2001 Johnny Willemsen - - * performance-tests/Misc/test_naming.cpp: - * performance-tests/Server_Concurrency/Latency_Stats.h: - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - * performance-tests/TCP/tcp_test.cpp: - * performance-tests/UDP/udp_test.cpp: - Made these files compiling when ACE_USES_WCHAR is set - - * Makefile.bor: - Added the performance-tests directory to this BCB makefile. All files - in this directory now compile when ACE_USES_WCHAR is set - -Fri Dec 28 10:45:33 2001 Steve Huston - - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: Make the string - arguments to ACE_SSL_Context char * - don't use any ACE_* - macros. Fixes build problems on Borland Unicode builds. Thanks - to Johnny Willemsen for this fix. - -Fri Dec 28 06:31:46 2001 Venkita Subramonian - - * ace/Get_Opt.cpp: Changed #ifndef check to ACE_LACKS_ENV - instead of ACE_LACKS_GETENV. - -Fri Dec 28 05:20:29 2001 Douglas C. Schmidt - - * ace/Get_Opt.cpp (ACE_Get_Opt): Protect the call to ACE_OS::getenv() - with a #ifndef (ACE_LACKS_GETENV). Thanks to Bala and Venkita - for reporting this! - -Fri Dec 28 10:52:12 2001 Johnny Willemsen - - * tests/SSL/Makefile.bor: - Added ACE_SSL_LIB to fix linker errors in BCB build - -Thu Dec 27 22:14:30 2001 Balachandran Natarajan - - * ace/Global_Macros.h: A new file that will house the macros used - by ACE and applications. Have moved a very few macros from OS.h - to this file. The real need for this was the need to include - OS.h even if one wants to use a simple macro like - ACE_UNIMPLEMENTED_FUNC or something as simple as that. Over a - period of time we need to move more macros into this file so - that applications can use this instead of OS.h. It would be nice - to split this file into pieces having macros for every specific - functionality. That was getting too tedious and error - prone. Thought that this could be a first step to move further. - - * ace/OS.h: Moved a few macros into Global_Macros.h file. Also - included the file in OS.h The need for inclusion comes from the - fact that there are dependencies that exist between the macros - moved and the stuff that exist in OS.h. - -Thu Dec 27 20:43:43 2001 Nanbor Wang - - * ace/Configuration_Import_Export.cpp: The .ini reader didn't - handle equal signs in values even if they are quoted. Changed - the strrchr in import_config() to strchr. Thanks to Glen - Coakley for reporting and submitting - the patch. - -Thu Dec 27 15:47:22 2001 Steve Huston - - * examples/OS/Process/imore.cpp: Fixed typo in optind -> opt_ind() - conversion. - -Thu Dec 27 09:52:56 2001 Douglas C. Schmidt - - * tests/Get_Opt_Test.cpp: Added ACE_TEXT macros to the various - strings so they will compile on Unicode builds. Thanks to - Venkita for noticing this! - -Thu Dec 27 14:53:49 2001 Steve Huston - - * ace/SSL/SSL_SOCK_Acceptor.(h cpp): - * ace/SSL/SSL_SOCK_Connector.(h cpp): Removed #include "ace/Reactor.h" - from the .h files and added #include "ace/Handle_Set.h" to the - .cpp files. Reactor is no longer needed for the class, but - ACE_Handle_Set is used in the implementation. - - * ace/SSL/Makefile: Removed Reactor*.* from dependencies. - -Thu Dec 27 12:56:31 2001 Steve Huston - - * ace/SSL/SSL_SOCK_Stream.i (close): Reverted this change: - Fri Dec 7 10:22:25 2001 Ossama Othman - The reactor is not used, so no workaround for it is needed. - If the ACE_SSL_SOCK_Stream is closed, the handle is invalidated. - -Thu Dec 27 11:39:48 2001 Steve Huston - - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: Changed ACE_TEXT to - ACE_TEXT_ALWAYS_CHAR for the file names passed to ACE_SSL_Context. - The underlying SSL calls want a char *, so it appears pointless - to change ACE_SSL_Context to accept wide chars. - -Thu Dec 27 09:38:24 2001 Balachandran Natarajan - - * examples/Reactor/Proactor/test_timeout.cpp: - * examples/Reactor/Proactor/test_multiple_loops.cpp: - * examples/Reactor/Proactor/post_completions.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.h: - - Added #includes to prevent compilation errors on Win32. Thanks - to Venkita for pointing this out. - -Thu Dec 27 06:41:24 2001 Douglas C. Schmidt - - * tests/Proactor_Timer_Test.cpp: Added #ifndefs to guard against - trying to compile this test on platforms that don't support the - Proactor! Thanks to Venkita for noticing this. - -Wed Dec 26 15:51:28 2001 Venkita Subramonian - - * ace/Get_Opt.h: - ace/Get_Opt.cpp: - Fixed compiler warnings. Changed order of member variable - initialization. - -Wed Dec 26 11:18:31 2001 Douglas C. Schmidt - - * ace/Get_Opt.cpp (permute): Add ACE_TEXT() around the - "--" string to make things work properly on Unicode builds. - Thanks to Johnny Willemsen and Don Hinton for contributing this - fix! - -Wed Dec 26 09:07:45 2001 Douglas C. Schmidt - - * tests/*.cpp: Replaced all uses of getopt.optarg with - getopt.opt_arg() and all uses of getopt.optind with - getopt.opt_ind(). - - * ace/Logging_Strategy.cpp - ace/Naming_Context.cpp - ace/Service_Config.cpp - ace/Service_Manager.cpp - 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_guard.cpp - performance-tests/RPC/client.cpp - performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp - performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp - performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp - performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp - performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp - performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp - performance-tests/TCP/tcp_test.cpp - performance-tests/UDP/udp_test.cpp - apps/Gateway/ - gperf/Options.cpp - drwho/Options.cpp - netsvcs/clients/Tokens/collection/collection.cpp - netsvcs/clients/Tokens/collection/rw_locks.cpp - netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp - netsvcs/clients/Tokens/manual/manual.cpp - netsvcs/clients/Tokens/mutex/test_mutex.cpp - netsvcs/clients/Tokens/rw_lock/rw_locks.cpp - netsvcs/lib/Client_Logging_Handler.cpp - netsvcs/lib/Name_Handler.cpp - netsvcs/lib/TS_Server_Handler.cpp - netsvcs/lib/Server_Logging_Handler_T.cpp - netsvcs/lib/TS_Clerk_Handler.cpp - netsvcs/lib/Token_Handler.cpp - examples/ASX/Event_Server/Event_Server/Options.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/blocking/SPIPE-connector.cpp - examples/Connection/blocking/SPIPE-acceptor.cpp - examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp - examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp - examples/IPC_SAP/SSL_SAP/SSL-client.cpp - examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp - examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp - examples/Logger/Acceptor-server/server_loggerd.cpp - examples/Logger/simple-server/server_loggerd.cpp - examples/Mem_Map/IO-tests/test_io.cpp - examples/Misc/test_get_opt.cpp - examples/NT_Service/main.cpp - examples/OS/Process/process.cpp - examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp - examples/QOS/Change_Sender_TSpec/QoS_Util.cpp - examples/QOS/Simple/QoS_Util.cpp - examples/Reactor/Multicast/client.cpp - examples/Reactor/Ntalker/ntalker.cpp - examples/Reactor/Proactor/simple_test_proactor.cpp - examples/Reactor/Proactor/test_cancel.cpp - examples/Reactor/Proactor/test_proactor.cpp - examples/Reactor/Proactor/test_proactor2.cpp - examples/Reactor/Proactor/test_proactor3.cpp - examples/Reactor/Proactor/test_udp_proactor.cpp - examples/Reactor/WFMO_Reactor/test_multithreading.cpp - examples/Reactor/WFMO_Reactor/test_talker.cpp - examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp - examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp - examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp - examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp - examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp - examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp - examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp - examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp - examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp - examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp - examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i - examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i - examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i - examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i - examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i - examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i - examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i - examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i - examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i - examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp - examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i - examples/Shared_Malloc/Options.cpp - examples/Shared_Malloc/test_position_independent_malloc.cpp - examples/Synch/proc_sema.cpp - examples/Threads/process_manager.cpp - examples/Threads/reader_writer.cpp - examples/Threads/recursive_mutex.cpp - examples/Web_Crawler/Options.cpp: Replaced all uses of getopt.optarg - with getopt.opt_arg(). - - * examples/Misc/test_get_opt.cpp (main): - * examples/OS/Process/imore.cpp (parse_args): - * examples/NT_Service/main.cpp (parse_args): Replaced all uses - of getopt.optind with getopt.opt_ind (). - - * ace/Get_Opt.h: Made the optind, optarg, opterr, argv_, and argc_ - data members public rather than private to avoid breaking - existing code. Also removed the new optind and optarg macros to - avoid breaking existing code that used those names as - identifiers! - -Wed Dec 26 06:19:32 2001 Douglas C. Schmidt - - * ace/Proactor.cpp: - * ace/Proactor.h: The #include "ace/Proactor.i" must come inside - of the #ifdefs that determine if the Proactor will be available - on a particular platform. - - * examples/Reactor/Misc/test_reactors.cpp: Removed a duplicate - ACE_Atomic_Op_Ex instantiation. - -Tue Dec 25 19:43:34 2001 Balachandran Natarajan - - * Updated dependencies that were left behind from the last one. - -Tue Dec 25 09:30:14 2001 Douglas C. Schmidt - - * tests/Makefile: - * tests/Makefile.bor: Added the new Proactor_Timer_Test. - - * tests/run_test.lst: Added the new Proactor_Timer_Test. - - * tests: Added the new Proactor_Timer_Test.cpp and - Proactor_Timer_Test.dsp to exercise the new high-resolution - support in the ACE_Proactor. Thanks to Miljenko Norsic for - contributing this. - - * ace/Proactor.cpp: Added support for high-resolution timers to - the proactor. Thanks to Miljenko Norsic for contributing this. - - * ace/OS.{h,i}: Changed the ACE_OS::event_timedwait() method to - allow callers to specify either relative or absolute time. - Thanks to Miljenko Norsic for - contributing this. - - * ace/Synch.{h,cpp}: Changed the timed wait() method on ACE_Event so - allow callers to specify either relative or absolute time. - Thanks to Miljenko Norsic for - contributing this. - -Tue Dec 25 12:55:56 2001 Carlos O'Ryan - - * Updated all dependencies. - -Tue Dec 25 09:30:14 2001 Douglas C. Schmidt - - * tests/Get_Opt_Test.cpp: Make the "test_args" parameter to - parse_args() a *const* ACE_TCHAR rather than just an ACE_TCHAR. - - * tests/Get_Opt_Test.cpp (main): Added an ACE_UNUSED_ARG(argv) and - replaced the name of the test so the log file stuff will work - properly. - - * ace/Get_Opt.{h,i}: Changed the return type of opt_ind() from - int to int& so that optind++ will work correctly! Thanks - to Don Hinton for this fix. - -Tue Dec 25 09:07:07 2001 Balachandran Natarajan - - * examples/Threads/tss2.cpp: - * examples/Threads/TSS_Task.h: - * examples/Threads/task_two.cpp: - * examples/Threads/reader_writer.cpp: - * examples/Threads/manual_event.cpp: - * examples/Threads/future2.cpp: - * examples/Threads/future1.cpp: - * examples/Reactors/Misc/teste_reactors.cpp: - * netsvcs/lib/Server_Logging_T.cpp: - * netsvcs/lib/Server_Logging.cpp: Added #include of - Atomic_Op.h. Added template instantiations for ACE_Atomic_Op_Ex - in places that was required. - - * netsvcs/lib/Makefile: - * netsvcs/servers/makefile: Updated dependencies. - -Mon Dec 25 01:05:43 2001 Balachandran Natarajan - - * ace/Atomic_Op.h: Added a #include to get it compiling on win32 - platforms. - -Mon Dec 25 00:18:43 2001 Balachandran Natarajan - - * Merry Christmas to the members of the doc_group and to all the - users the world over. - - * ace/ace_lib.dsp: - * ace/ace_dll.dsp: Added Atomic_Op.{h,cpp} to the project files. - -Mon Dec 24 23:52:43 2001 Balachandran Natarajan - - * ace/Synch_T.cpp: - * ace/Synch_T.h: Removed ACE_Atomic_Op to a new file. - - * ace/Atomic_Op.h: - * ace/Atomic_Op.i: - * ace/Atomic_Op.cpp: The class ACE_Atomic_Op is in this file now. - - * ace/Functor.h: - * ace/Functor.i: Added template specializations for some base - types like ACE_UINT16. Thanks to Joe Hoffert for giving the - patches. - - * ace/RMCast/RMCast_Reassembly.cpp: Removed a template - instantation for ACE_Equal_To. - - * tests/Atomic_Op_Test.cpp: - * tests/Auto_IncDec_Test.cpp: - * tests/Cache_Map_Manager_Test.cpp: - * tests/Future_Set_Test.cpp: - * tests/Future_Test.cpp: - * tests/Hash_Map_Bucket_Iterator_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Map_Manager_Test.cpp: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Reader_Writer_Test.cpp: - * tests/Upgradable_RW_Test.cpp: Added #include of Atomic_Op.h in - all the above files. - -Mon Dec 24 20:12:05 2001 Balachandran Natarajan - - * ace/Synch_T.h: - * ace/Synch_T.cpp: Changed a copy constructor in ACE_Atomic_Op to - take ACE_Atomic_Op as an argument instead of - ACE_Atomic_Op_Ex. This should fix compile errors in g++. - - * ace/Atomic_Op.i: Made a cosmetic change. - - -Mon Dec 24 08:08:40 2001 Douglas C. Schmidt - - * ace/Atomic_Op.i: Make sure to initialize the mutex_ reference in the - ACE_Atomic_Op_Ex copy constructor. - - * ace/OS.cpp (pwrite): The lseek() call must use SEEK_CUR rather - than SEEK_SET. Thanks to Duane Binder - for reporting this. This fixes bugid - 1095. - - * ace/Proactor.i (run_event_loop): Refactored the code to - use the new ACE_Proactor::check_reconfiguration() static method, - just like the Reactor! - - * ace/Proactor.h: Added the check_reconfiguration() static method - to ACE_Proactor, a la the Reactor! - - * tests/Thread_Pool_Reactor_Resume_Test.cpp, - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp, - * tests/Thread_Pool_Reactor_Test.cpp: Changed the signature of the - reactor_event_hook() method to conform to the minor - modifications outlined below. - - * ace/Reactor.h: Changed the signature of - ACE_Reactor::check_reconfiguration() to reflect the following - change. - - * ace/Reactor.h: Changed the REACTOR_EVENT_HOOK typedef to take a pointer - to the ACE_Reactor. Thanks to Alex Libman for suggesting this. - - * performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp: - * examples/Threads/tss2.cpp: - * examples/Reactor/Misc/test_reactors.cpp: - * examples/Reactor/Proactor/post_completions.cpp: - * examples/Reactor/Proactor/test_timeout.cpp: - * examples/Threads/manual_event.cpp: - * examples/Threads/future1.cpp: - * examples/Threads/future2.cpp: - * examples/Threads/reader_writer.cpp: - * examples/Threads/task_two.cpp: - * tests/Atomic_Op_Test.cpp: - * tests/Auto_IncDec_Test.cpp: - * tests/Future_Set_Test.cpp: - * tests/Future_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Upgradable_RW_Test.cpp: - * tests/Reader_Writer_Test.cpp: - Added explicit template instantiation for ACE_Atomic_Op_Ex<>. - - * ace/Malloc_Allocator.cpp: Added explicit template instantiation - for ACE_Atomic_Op_Ex. - - * ace/Atomic_Op.i, - * ace/Synch_T.{h,cpp}: Factored out some of the structure/logic - from ACE_Atomic_Op into a new base class called - ACE_Atomic_Op_Ex. ACE_Atomic_Op_Ex uses extra parameter - - reference to ACE_LOCK to allow several ACE_Atomic_Op_Ex share - the same lock. ACE_Atomic_Op is derived from ACE_Atomic_Op_Ex - and its interface is the same as it was. It has only - constructors implementation and operators =. All other methods - are inherited from ACE_Atomic_Op_Ex. Templates instantiation - for ACE_Atomic_Op_Ex should be added to all files that have - templates instantiation for ACE_Atomic_Op. Thanks to Alex - Libman for contributing this. - - * ace/Service_Config.cpp (close_singletons): Add support to close - the Proactor singleton, just like the Reactor singleton. Thanks - to Alex Libman for contributing this. - - * ace/WIN32_Proactor.cpp: Make sure to remove all the pending - results from the I/O completion port queue when we close down to - avoid memory leaks. Thanks to Alex Libman - for contribuging this. - - * ace/Proactor.{h,i,cpp}: Added Alex Libman's - enhancements that make the ACE_Proactor behave more like the - ACE_Reactor with respect to singletons etc. In particular: - - 1. For each static ACE_Proactor method XXX_event_loop there is - the non-static proactor_XXX_event_loop method. - 2. There is a new method proactor_post_wakeup_completions which - is called from static post_wakeup_completions. - 3. The end_event_loop_ and event_loop_thread_count_ are now - instance members, not globals! - 4. The proactor instance has its own mutex to protect work with - end_event_loop_ and event_loop_thread_count_. - 5. Method ACE_Proactor::instance() now has a second parameter - delete_proactor (default value 0 means don't delete). It - returns the pointer to the previous global instance of - Proactor. The caller now is responsible for deletion of this - previous instance. - 6. Method ACE_Proactor::cleanup() is removed since the behavior - of singleton is simular to Reactor singleton. - 7. Methods ACE_Proactor::proactor_run_event_loop (....) - have now an extra parameter: (PROACTOR_EVENT_HOOK = 0), - where the PROACTOR event hook is defined as - typedef int (*PROACTOR_EVENT_HOOK)(ACE_Proactor *); - - * ace/Logging_Strategy.cpp - * ace/Naming_Context.cpp - * ace/Service_Manager.cpp: Removed the explicit template instantiations - for ACE_Array_Base<> to avoid problems with multiply defined - symbols. - - * ace/Service_Config.cpp: Added explicit template instantiations - for template class ACE_Array. - - * docs/tutorials/014/page02.html, - * docs/tutorials/014/page03.html, - * docs/tutorials/014/page04.html, - * docs/tutorials/014/page05.html, - * docs/tutorials/014/stream.cpp, - * docs/tutorials/014/Task.{h,cpp}: Fixed the tutorial so that it - uses the correct synchronization mechanism for the message - blocks. Thanks to Ulrich Voigt for - reporting this. - - * ace/Log_Msg.cpp: Moved the call to ACE_Log_Msg_Manager::close() - to first in the ACE_Log_Msg::close() method to avoid memory - leaks. Fixes BugId 1103. Thanks to Ahmed Riza - for reporting this. - -Sun Dec 23 23:02:17 2001 Carlos O'Ryan - - * examples/QOS/Diffserv/Diffserv.dsw: - * examples/QOS/Diffserv/diffserv_test.dsp: - * examples/QOS/Diffserv/server.dsp: - * examples/Reactor/FIFO/FIFO.dsw: - * examples/Reactor/FIFO/client.dsp: - * examples/Reactor/FIFO/server.dsp: - * examples/Shared_Memory/Shared_Memory.dsw: - * examples/Shared_Memory/test_MM.dsp: - * examples/Shared_Memory/test_SV.dsp: - Add more missing project files and workspaces. - -Mon Dec 24 00:48:34 2001 Nanbor Wang - - * tests/tests.dsw: - * tests/Get_Opt_Test.dsp: Added this new project file. - -Sun Dec 23 12:25:55 2001 Don Hinton - - * ace/Logging_Strategy.cpp - * ace/Naming_Context.cpp - * ace/Service_Config.cpp - * ace/Service_Manager.cpp - * ace/Get_Opt{h,i,cpp}: - - Added long option support to ACE_Get_Opt that closely minimics - getopt_long(3c) functionality as follows: made all member - variables private; added accessor functions and macros wrappers to - transparently provide backward compatibility; added new function, - long_option(), that can be used to add long options with/without - corresponding short options. - - * tests/Makefile - * tests/Makefile.bor - * tests/run_test.lst - * tests/Get_Opt_Test.cpp: - - Added a new one-button test for ACE_Get_Opt that tests new long option - support and demonstrates its use. - -Sat Dec 22 23:12:33 2001 Carlos O'Ryan - - * examples/Misc/Misc.dsw: - * examples/Misc/test_XtReactor1.dsp: - * examples/Misc/test_XtReactor2.dsp: - * examples/Misc/test_dump.dsp: - * examples/Misc/test_get_opt.dsp: - * examples/Misc/test_profile_timer.dsp: - * examples/Misc/test_read_buffer.dsp: - * examples/Misc/test_set.dsp: - * examples/Misc/test_sstring.dsp: - * examples/Misc/test_trace.dsp: - * examples/IPC_SAP/DEV_SAP/reader/reader.dsp: - * examples/IPC_SAP/DEV_SAP/reader/reader.dsw: - * examples/IPC_SAP/DEV_SAP/writer/writer.dsp: - * examples/IPC_SAP/DEV_SAP/writer/writer.dsw: - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.dsp: - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.dsp: - * examples/IPC_SAP/FIFO_SAP/FIFO-client.dsp: - * examples/IPC_SAP/FIFO_SAP/FIFO-server.dsp: - * examples/IPC_SAP/FIFO_SAP/FIFO-test.dsp: - * examples/IPC_SAP/FIFO_SAP/FIFO_SAP.dsw: - * examples/IPC_SAP/SPIPE_SAP/NPClient.dsp: - * examples/IPC_SAP/SPIPE_SAP/NPServer.dsp: - * examples/IPC_SAP/SPIPE_SAP/SPIPE_SAP.dsw: - * examples/IPC_SAP/SPIPE_SAP/client.dsp: - * examples/IPC_SAP/SPIPE_SAP/consumer_msg.dsp: - * examples/IPC_SAP/SPIPE_SAP/consumer_read.dsp: - * examples/IPC_SAP/SPIPE_SAP/producer_msg.dsp: - * examples/IPC_SAP/SPIPE_SAP/producer_read.dsp: - * examples/IPC_SAP/SPIPE_SAP/server.dsp: - * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.dsp: - * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.dsp: - * examples/IPC_SAP/TLI_SAP/CPP-client.dsp: - * examples/IPC_SAP/TLI_SAP/CPP-server.dsp: - * examples/IPC_SAP/TLI_SAP/TLI_SAP.dsw: - * examples/IPC_SAP/TLI_SAP/db-client.dsp: - * examples/IPC_SAP/TLI_SAP/db-server.dsp: - * examples/IPC_SAP/TLI_SAP/ftp-client.dsp: - * examples/IPC_SAP/TLI_SAP/ftp-server.dsp: - * examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.dsw: - * examples/IPC_SAP/UPIPE_SAP/ex1.dsp: - * examples/IPC_SAP/UPIPE_SAP/ex2.dsp: - * examples/IPC_SAP/UPIPE_SAP/ex3.dsp: - Add yet more missing project files. - - * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp: - Fixed minor syntax errors for Win32 builds. - -Sat Dec 22 11:27:11 2001 Carlos O'Ryan - - * bin/auto_compile: - Add missing -i flags for make_pretty.pl. - -Sat Dec 22 11:24:53 2001 Carlos O'Ryan - - * examples/Service_Configurator/IPC-tests/client/client.dsw: - * examples/Service_Configurator/IPC-tests/client/broadcast_client_test.dsp: - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.dsp: - * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.dsp: - * examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.dsp: - * examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.dsp: - * examples/Service_Configurator/IPC-tests/client/local_stream_client_test.dsp: - * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.dsp: - * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.dsp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.dsp: - * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.dsp: - * examples/Service_Configurator/IPC-tests/server/server.dsw: - * examples/Service_Configurator/IPC-tests/server/Server.dsp: - * examples/Service_Configurator/IPC-tests/server/Server_static.dsp: - * examples/Service_Configurator/IPC-tests/server/server_test.dsp: - Add missing project files and workspaces. - - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h: - Add export directives for Win32 builds. - -Fri Dec 21 14:39:57 2001 Carlos O'Ryan - - * examples/Map_Manager/Map_Manager.dsw: - * examples/Map_Manager/test_hash_map_manager.dsp: - * examples/ASX/CCM_App/CCM_App.dsp: - * examples/ASX/CCM_App/CCM_App.dsw: - * examples/ASX/CCM_App/CCM_App_static.dsp: - * examples/ASX/CCM_App/SC_Client.dsp: - * examples/ASX/CCM_App/SC_Server.dsp: - * examples/Connection/misc/Connection_Handler.dsp: - * examples/Connection/misc/misc.dsw: - * examples/Connection/misc/test_upipe.dsp: - * examples/IOStream/client/client.dsw: - * examples/IOStream/client/iostream_client.dsp: - * examples/IOStream/server/server.dsw: - * examples/IOStream/server/iostream_server.dsp: - * examples/Smart_Pointers/Smart_Pointers.dsw: - * examples/Smart_Pointers/gadget_test.dsp: - * examples/Smart_Pointers/widget_test.dsp: - Add missing project files and workspaces. - -Fri Dec 21 16:22:39 2001 Steve Huston - - * ace/ace.icc: Corrected entries for String_Base_Const.(h cpp). - -Fri Dec 21 16:00:00 2001 Steve Huston - - * tests/SSL/Makefile.bor: Add $(SSL_CFLAGS) $(ACE_SSL_CFLAGS) to - CFLAGS to pick up the SSL include dirs, etc. - -Fri Dec 21 11:30:01 2001 Carlos O'Ryan - - * examples/Shared_Malloc/multiple_mallocs.dsp: - Add Malloc.cpp and Options.cpp to this project. Though not - strictly required for Win32 the files are used in Unix builds. - Having the .dsp and Makefile consistent is helpful for samwise. - -Fri Dec 21 14:14:51 2001 Steve Huston - - * ace/SSL/Makefile: Removed SSL_Accept_Handler.* and - SSL_Connect_Handler.* from the dependencies. - - * tests/Makefile: Only build SSL tests if ssl eq 1. - -Fri Dec 21 16:13:54 2001 Balachandran Natarajan - - * Makefile: Added Makefile.bor to the list of controlled files for - the release. - -Thu Dec 20 18:20:51 2001 Douglas C. Schmidt - - * ace/RB_Tree.cpp: Added checks in the RB_tree_predecessor() and - RB_tree_successor() methods to guard against indirections via a - NULL pointer. Thanks to Craig Ching for - reporting this fix. - -Thu Dec 20 18:05:32 2001 Steve Huston - - * examples/Shared_Malloc/test_persistence.cpp: Added a nothrow - variant of operator new to work with ACE_HAS_NEW_NOTHROW platforms. - -Thu Dec 20 15:04:52 2001 Steve Huston - - * ace/SSL/SSL_SOCK_Acceptor.h: Improved documentation. Changed - "protocol_family" argument defaults from PF_INET to PF_UNSPEC - to work correctly with IPv6 support. - -Thu Dec 20 13:53:48 2001 Steve Huston - - * ace/SSL/SSL_SOCK_Acceptor.cpp: - * ace/SSL/SSL_SOCK_Connector.cpp: Fixed compile errors on Win32. - -Thu Dec 20 13:37:42 2001 Steve Huston - - * ace/config-all.h: Restructured the section for - ACE_NEW_THROWS_EXCEPTIONS so that if ACE_HAS_NEW_NOTHROW is defined, - the new(nothrow) version is used rather than setting up a try/catch. - (Previously, this was only done for HP aC++). Also, check for - __BORLANDC__ and set up the ACE_bad_alloc exception value properly. - Thanks to Johnny Willemsen for reporting - this problem. - -Thu Dec 20 11:43:29 2001 Steve Huston - - * tests/SSL: New directory for ACE_SSL tests. - - * tests/SSL/dummy.pem: - * tests/SSL/key.pem: - * tests/SSL/Makefile: - * tests/SSL/Makefile.bor: Structure support for new tests. - - * tests/Thread_Pool_Reactor_SSL_Test.(h cpp): Tests the ACE_TP_Reactor - with ACE_SSL wrappers. Thank you to Robert Handl - for contributing this test. - - * tests/Makefile: - * tests/Makefile.bor: Add SSL to build dirs if building with SSL. - - * THANKS: Added Robert Handl to the Hall of Fame. - -Thu Dec 20 11:34:51 2001 Steve Huston - - * ace/SSL/SSL_SOCK_Acceptor.(h cpp i): - * ace/SSL/SSL_SOCK_Connector.(h cpp i): Series of changes: - - Does not use an ACE_Reactor any longer. Waiting for socket - I/O possibility is done using ACE::select. It's simpler and - doesn't suffer on Win32. - - The basic socket acceptance is referred to ACE_SOCK_Acceptor, - so the shared_accept_start and shared_accept_finish methods - are gone (in SSL_SOCK_Acceptor.*; no affect on Connector). - - The timed and non-timed versions of ssl_accept/connect are - now combined into one function. The timeout value passed to - the ACE_SSL_SOCK_Acceptor::accept() method is used, and it - correctly drives ACE::accept. - - * ace/SSL/SSL_Connector_Handler.(cpp h): - * ace/SSL/SSL_Accept_Handler.(cpp h): These are no longer needed. - since all of the accept handshaking activity is paced by - ACE::accept, not a reactor. - - * ace/SSL/Makefile: - * ace/SSL/Makefile.bor: - * ace/SSL/ACE_SSL.dsp: - * ace/SSL/ACE_SSL_LIB.dsp: Removed SSL_Accept_Handler and - SSL_Connect_Handler. - -Thu Dec 20 09:03:12 2001 Johnny Willemsen - - * Makefile.bor: - Only build ace and its tests because the rest is not fully - unicode compliant - -Wed Dec 19 22:28:00 2001 Ossama Othman - - * ace/WFMO_Reactor.cpp (upcall): Corrected syntax error. - -Wed Dec 19 21:54:29 2001 Steve Huston - - * ace/config-hpux-10.x-hpc++.h: Added ACE_HAS_NEW_NOTHROW when - exceptions are enabled. - -Wed Dec 19 11:10:35 2001 Douglas C. Schmidt - - * ace/WFMO_Reactor.cpp: Use the ACE_BIT_ENABLED macro - rather than the '&' operator directly. - -2001-12-18 Douglas C. Schmidt - - * Both Irfan Pyarali and Chris Gill are now *Dr.* Pyarali and - *Dr.* Gill. Congrats to both on a job well done! - -Wed Dec 19 10:02:53 2001 Venkita Subramonian - - * Makefile.bor: - Made changes for Borland ace-only builds as per - Johnny Willemsen . - -Wed Dec 19 09:39:03 2001 Venkita Subramonian - - * tests/Message_Queue_Test_Ex.cpp: - - Fixed compiler warning. Deleted an unused variable declaration. - -Wed Dec 19 10:31:12 2001 Johnny Willemsen - - * tests/Makefile.bor: - Added INET_Addr_Test - - * tests/INET_Addr_Test.cpp: - Changed type of argv from char to ACE_TCHAR to solve link errors - in the Unicode builds - -Tue Dec 18 19:15:42 2001 Steve Huston - - * tests/INET_Addr_Test.dsp: New test project for INET_Addr_Test. - - * tests/tests.dsw: Added INET_Addr_Test project. - -Tue Dec 18 18:50:29 2001 Steve Huston - - * ace/README: Added entry for new macro, ACE_HAS_NEW_NOTHROW. - This setting should be enabled if the compiler offers - new (nothrow). It enables nothrow variants of operator new - where that operator is defined on ACE classes. - - * ace/config-hpux-11.00.h: Added ACE_HAS_NEW_NOTHROW for aCC. - - * ace/config-all.h: Changed ACE_NEW[_RETURN] for HP aC++ to use - new(nothrow) rather than trying to catch exceptions, which - works particularly poorly when exceptions are disabled. Even - if they're disabled at compiler time, the run-time will still - throw an exception if allocation fails. - Fix decision making for how to do this correctly for both - HP-UX 10.20 and 11.x. - Correct ACE_throw_bad_alloc to compile correctly. - - * ace/Configuration.cpp (create_index_helper, value_open_helper, - section_open_helper): - * ace/Local_Name_Space_T.cpp (create_manager_i): - * ace/Malloc_Allocator.cpp (ACE_Allocator::instance): - Use naked placement new rather than ACE_NEW_RETURN. Placement - new does not work with new(nothrow) and a placement new won't - throw an exception that the ACE_NEW_* macros would catch anyway. - - * ace/Svc_Handler.(h cpp): Added a nothrow version of operator - new if ACE_HAS_NEW_NOTHROW is defined. - - * ace/config-hpux-11.x-hpc++.h: As promised before ACE 5.1, this - file is removed. config-hpux-11.00.h is the HP-UX 11.x config. - - * ace/config-aix-3.2.5.h: - * ace/config-hpux-9.x.h: Removed. These are hopelessly out of date - and the compilers don't support them any longer. - -Tue Dec 18 17:47:44 2001 Steve Huston - - * ace/Caching_Utility_T.cpp: Added #include "ace/Recyclable.h" - to pick up def for ACE_RECYCLABLE_IDLE_AND_PURGABLE. - - * tests/INET_Addr_Test.cpp: ACEified. - - * tests/run_test.lst: Added INET_Addr_Test. - -Tue Dec 18 14:43:02 2001 Carlos O'Ryan - - * ace/Sock_Connect.cpp: - * ace/config-cygwin32-common.h: - Use the #include /**/ trick to shut up the WinCE warnings. - -Tue Dec 18 22:05:04 2001 Balachandran Natarajan - - * bin/make_release: Added comment to indicate the problem in - producing diffs when a beta after a major or minor release is - cut. This needs fixing. Will get to this when the other pending - changes go in. - -Tue Dec 18 16:01:59 2001 Douglas C. Schmidt - - * ace/OS_Dirent.cpp (readdir_emulation): Fixed an "off-by-one" - memory allocation error. Thanks to Kyle Brost - for reporting this. - -Mon Dec 17 09:04:28 2001 Douglas C. Schmidt - - * ace/OS.i (ctime_r): Replaced ACE_OS::strsncpy() with - ACE_OS::strncpy() to fix a bug on Linux. Thanks to Vlado - Chovanec for reporting this. - This fixes BugID 1101. - -Tue Dec 18 13:04:07 2001 Carlos O'Ryan - - * bin/make_pretty.pl: - Incorporate numerous pending changes and improvements. - -Tue Dec 18 12:45:45 2001 Carlos O'Ryan - - * bin/nightlybuilds/builds.lst: - Updated to use the new build standard. - - * bin/nightlybuilds/scoreboard_update.pl: - Incorporate changes to support multiple "groups" (for external - builds), to print out the last reported status of each build - (such as "COMPILING"), and to adjust the build timeouts on a - per-build basis. - -Tue Dec 18 11:11:29 2001 Steve Huston - - * ace/SPIPE.h: Improved comments for Doxygen processing. - -Mon Dec 17 18:30:41 2001 Steve Huston - - * ace/SPIPE_Acceptor.(h cpp): For Windows, use the event handle - instead of the pipe handle for the handle value stored in the - ACE_IPC_SAP class. The pipe handle is pretty useless for doing - anything like detecting when the pipe connect is done - the - event handle is what's really useful there, and it stays - consistent across accepts, while the pipe handle changes. This - change allows the get_handle() value to be registered with the - reactor, albeit for signal, not input. - -Mon Dec 17 00:13:47 2001 Nanbor Wang - - * ace/String_Base_Const.h: - * ace/String_Base_Const.cpp: Added a new base class for - ACE_String_Base extracting out the static member data to - circumvent a SunCC compilation problem which only happen when - debug=0 is defined. - - * ace/String_Base.h: - * ace/String_Base.cpp: Removed the offending static member sata. - - * ace/Makefile: - * ace/Makefile.bor: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - * ace/ace.icc: - * ace/ace-lib.icc: - * ace/ace-dll.icc: Added String_Base_Const.* to various project files. - -Sun Dec 16 10:33:17 2001 Douglas C. Schmidt - - * ace/Select_Reactor_T.h: Improve the documentation of the - ACE_Select_Reactor_T() constructor to clarify the mask_signals - and disable_notify_pipe parameters. Thanks to Bob Jolliffe - for motivating this. - -Sun Dec 16 16:42:12 2001 Johnny Willemsen - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.{h,cpp}: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.{h,cpp}: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: - * examples/IPC_SAP/FILE_SAP/client.cpp: - * 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: - - Made these examples compile when ACE_USES_WCHAR is set - -Sun Dec 16 08:04:23 2001 Venkita Subramonian - - * tests/Message_Queue_Test_Ex.cpp : fixed a compiler error - -Sat Dec 15 09:30:31 2001 Douglas C. Schmidt - - * tests/Message_Queue_Test_Ex.cpp (main): Fixed a minor bug - by removing the size-hint from the call to User_Class. Thanks - to Venkita Subramonian for reporting - this. - - * ace/config-win32-mingw.h. Added #define ACE_HAS_BROKEN_SAP_ANY - so that it'll compile on MinGW32. Thanks to Ben Flight - for reporting this. - - * tests/Logging_Strategy_Test.cpp: include ace/Logging_Strategy.h - rather than ace/Logging_Strategy.cpp. Thanks to Mike Connors - for reporting this. - -Sat Dec 15 16:20:28 2001 Balachandran Natarajan - - * ace/ace_os_dll.vcp: Added the files OS_QoS.{h,cpp}. - -Sat Dec 15 09:52:14 2001 Carlos O'Ryan - - * examples/Misc/test_set.cpp: - Add missing #include for Tru64/DU/CXX, probably implicitly - included on other platforms due to the - ACE_TEMPLATES_REQUIRE_SOURCE. - -Sat Dec 15 09:30:31 2001 Douglas C. Schmidt - - * tests/Message_Queue_Test_Ex.cpp: Improved the example to use - a user-defined class parameter for ACE_Message_Queue_Ex rather - than ACE_Message_Block. Thanks to Bill Fulton - for reporting this. - - * ace/Configuration.cpp: Make the return code of enumerate_values() - consistent with enumerate_sections(). Thanks to Kevin Burge - for reporting this. - -Fri Dec 14 21:36:29 2001 Steve Huston - - * ace/ace.icc: Adjusted file list as a result of split-apart - Strategies.* files (Mon Dec 10 15:39:22 2001 Balachandran Natarajan) - - * ace/Connection_Recycling_Strategy.cpp: - * ace/Hashable.cpp: - * ace/Recyclable.cpp: - * ace/Refcountable.cpp: Changed the ACE_RCSID to reflect the correct - module name (they all still were named Strategies, from whence - they came. - -Fri Dec 14 14:05:09 2001 Carlos O'Ryan - - * ace/svc_export.h: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.dsp: - Found a better way to deal with the inconsistencies in the - ACE_Svc_Export macro. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore_static.dsp: - Fixed project file for static library. - -Fri Dec 14 11:35:01 2001 Craig Rodrigues - - * ace/SSL/SSL_SOCK_Acceptor.h: - * ace/SSL/SSL_SOCK_Connector.h: - * examples/QOS/Simple/Fill_ACE_QoS.h: - * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h: - * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h: - Add #include "ace/OS_QoS.h". - -Thu Dec 13 22:16:02 2001 Carlos O'Ryan - - * ace/svc_export.h: - Support ACE_Svc_BUILD_DLL also, to be consistent with all the - other export macros. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h: - Add missing ACE_Svc_Export to the class. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.dsw: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.dsp: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore_static.dsp: - * netsvcs/clients/Naming/Dump_Restore/main.dsp: - Add missing project files and a workspace. - -Fri Dec 14 00:08:57 2001 Craig Rodrigues - - * ace/OS.h: Move around definitions of ACE_SOCK_GROUP - and ACE_OVERLAPPED_COMPLETION_FUNCTION_FUNC to fix - Win32 builds. - - * ace/OS.cpp: Add #include "ace/OS_QoS.h" to fix Win32 - builds. - -Thu Dec 13 22:21:52 2001 Balachandran Natarajan - - * Updated dependencies of many Makefile's. - -Thu Dec 13 21:36:15 2001 Craig Rodrigues - - * ace/OS.cpp: Remove ACE_INLINE from join_leaf(). - * ace/OS_QoS.cpp: Remove ACE_INLINE. - * ace/OS_QoS.h: Add include for pre.h. - -Thu Dec 13 16:53:00 2001 Ossama Othman - - * bin/auto_run_tests.lst: - - Added TAO/orbsvcs/tests/Security/Callback test to the list of - tests to run in our automated regression test suite. - -Thu Dec 13 18:11:00 2001 Craig Rodrigues - - * ace/OS.h: Move QoS data structures to OS_QoS.h. Forward - declare QoS data structures now contained in OS_QoS.h and - OS_QoS.cpp. - - * ace/OS.i: - * ace/OS.cpp: Move QoS enabled socket API functions from OS.i to - OS.cpp. - - * ace/OS_QoS.h (added): - * ace/OS_QoS.cpp (added): OS specific QoS data structures go here. - - * ace/MEM_Acceptor.h: - * ace/SOCK_Acceptor.cpp: - * ace/SOCK_Connector.cpp: - * ace/QoS/QoS_Session.h: Add #include "ace/OS_QoS.h". - - * ace/QoS/QoS_Session_Impl.cpp: Add u_long casts to eliminate - compiler warnings. - - * ace/Makefile: Add rule for OS_QoS. - * ace/Makefile.bor: Same. - * ace/ace_dll.dsp: Same. - * ace/ace_lib.dsp: Same. - -Thu Dec 13 14:58:43 2001 Ossama Othman - - * THANKS: - - Added Greg Burley to our Hall of Fame. - -Thu Dec 13 14:11:26 2001 Carlos O'Ryan - - * ace/ace_dll.vcp: - Remove Strategies.* from the WinCE project - files, and add the new files that replace it. - -Thu Dec 13 16:41:39 2001 Steve Huston - - * examples/Reactor/WFMO_Reactor/test_multithreading.cpp: Changed - call to ACE_Service_Config::close_singletons () to call - ACE_Reactor::close_singleton() instead. Recent changes made - it necessary to include "ace/Service_Config.h" here to use - the former, and it seemed better to call the only needed singleton - destroyer necessary in this case. - - * examples/Reactor/WFMO_Reactor/test_suspended_removals.cpp: - * examples/Reactor/WFMO_Reactor/test_window_messages.cpp: - * examples/Bounded_Packet_Relay/BPR_Drivers.h: - Added #include "ace/Reactor.h" - recent changes necessitate this. - - * examples/Reactor/WFMO_Reactor/test_talker.cpp: Added - #include "ace/Reactor_Notification_Strategy.h" - recent changes - necessitate this. - -Wed Dec 12 16:29:17 2001 Greg Burley - - * ace/SSL/SSL_Context.h: - * ace/SSL/SSL_Context.inl: - * ace/SSL/SSL_Context.cpp: - - Made it possible to specify certificate authority locations - after the verification mode has been set. - -Wed Dec 12 12:38:16 2001 Ossama Othman - - * ace/SSL/SSL_Accept_Handler.cpp: - * ace/SSL/SSL_Connect_Handler.cpp: - - Added missing "ace/Reactor.h" include. ACE_Reactor is only - forward declared otherwise. - -Wed Dec 12 12:21:11 2001 Vladimir Chovanec - - * ace/SSL/SSL_Accept_Handler.cpp (handle_input, handle_output): - - On Win32 platforms, cancel any previously scheduled "wakeup" - before attempting to perform IO. If necessary, a "wakeup" will - be scheduled if the IO call would block. - - (ssl_accept): - - On Win32 platforms, it is necessary to schedule a "wakeup" in - the Reactor if an IO call would block. This is necessary since - Windows events are only notified once. Hence, event handlers - must be rescheduled. - - * ace/SSL/SSL_Connect_Handler.cpp (handle_input, handle_output, - ssl_connect): - - Likewise. - -Wed Dec 12 06:56:46 2001 Balachandran Natarajan - - * THANKS: Added Petr Tuma to the hall of fame. - -Wed Dec 12 07:29:12 2001 Johnny Willemsen - - * ace/Makefile.bor: - Added Recycable - -Tue Dec 11 12:17:45 2001 Ossama Othman - - * ace/SSL/SSL_Accept_Handler.h (ACE_SSL_Accept_Handler): - * ace/SSL/SSL_Connect_Handler.h (ACE_SSL_Connect_Handler): - - Accept a reference to the flag that causes the calling thread's - event loop to stop on error. See below for details. - - * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): - * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): - - Return 1 if errno == EWOULDBLOCK and SSL_pending() return a - value greater than zero. The event handler should be called - back before waiting for more in events in the reactor. This - change causes the behavior for this case to match that of the - SSL_ERROR_WANT_{READ,WRITE} cases. Thanks to Vladimir Chovanec - for providing this fix. - - (handle_close): - - Set the "handler_closed" flag to one. This will notify the - event loop in the SSL_SOCK_{Acceptor,Connector} that it should - stop handling events in the event of an error. - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - - Pass a flag by reference to the event handler responsible for - completing the non-blocking SSL connection. The event handler - will set the flag to 1 in order to cause the event loop in this - method to stop if the event handler is closed on error. - - Stop the event loop if a timeout occurs, i.e. handle_events() - returns 0. In conjunction with the above change, this fixes an - infinite loop that would occur in such a timeout situation. - -Tue Dec 11 07:59:12 2001 Johnny Willemsen - - * ace/Makefile.bor: - Updated BCB makefile with the changes of the changelog entry - Mon Dec 10 15:39:22 2001 Balachandran Natarajan - - * tests/MEM_Stream_Test.cpp: - Removed wrong ; after an if statement in this test. This should fix - the warning in the MSVC builds - -Mon Dec 10 19:10:22 2001 Balachandran Natarajan - - * ace/Refcountable.h: - * ace/Recyclable.h: - * ace/Hashable.h: - * ace/Hashable.inl: - * ace/Notification_Strategy.inl: - * ace/Reactor_Notification_Strategy.inl: Fixed fuzz errors. - -Mon Dec 10 18:54:22 2001 Balachandran Natarajan - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added the new files and removed old ones. - -Mon Dec 10 15:39:22 2001 Balachandran Natarajan - - Merged from my branch. This checkin actually splits classes in - Strategies.h to multiple files. We also remove Strategies.* files - from the repo. - - Tue Nov 27 12:29:09 2001 Balachandran Natarajan - - * ace/Refcountable.h: Added a #define for the inlined file. - - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.h: - * examples/Timer_Queue/main_reactor.cpp: Added #includes - - * examples/*/Makefile: - * tests/Makefile: Updated dependencies - - Wed Nov 21 10:44:33 2001 Balachandran Natarajan - - * tests/Cached_Accept_Conn_Test.h: - * tests/Cached_Conn_Test.cpp: - * tests/Conn_Test.cpp: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Service_Config_DLL.cpp: - * tests/RMCast/Makefile: Fixed compilation errors. - - Wed Nov 21 10:42:13 2001 Balachandran Natarajan - - * ace/Svc_Handler.cpp: - * ace/Connector.h: - * ace/Strategies_T.h: - * ace/Acceptor.h: - * ace/Svc_Handler.h: Fixed compilation errors. - - Tue Nov 20 12:48:39 2001 Balachandran Natarajan - - * ace/Strategies.h: - * ace/Strategies.cpp: - * ace/Strategies.i: Removed from the repo as the files are being - replaced with multiple files, with one class per file. Please - see below for details. The conglomeration of all the classes in - the same file made very less sense. - - * ace/Connection_Recycling_Strategy.h: - * ace/Connection_Recycling_Strategy.cpp: Added a new file for the - class ACE_Connection_Recycling_Strategy - - * ace/Hashable.h: - * ace/Hashable.cpp: - * ace/Hashable.inl: New file for the class ACE_Hashable - - * ace/Notification_Strategy.h: - * ace/Notification_Strategy.cpp: - * ace/Notification_Strategy.inl: New file for the class - ACE_Notification_Strategy. - - * ace/Reactor_Notification_Strategy.h: - * ace/Reactor_Notification_Strategy.cpp: - * ace/Reactor_Notification_Strategy.inl: New file for the class - ACE_Reactor_Notification_Strategy - - * ace/Recyclable.h: - * ace/Recyclable.cpp: - * ace/Recyclable.inl: New file for the class ACE_Recyclable - - * ace/Refcountable.h: - * ace/Refcountable.cpp: - * ace/Refcountable.inl: New file for the class ACE_Refcountable. - - * ace/OS.h: Moved the enum ACE_Recyclable_State to Recyclable.h - - * ace/Acceptor.h: - * ace/Caching_Utility_T.cpp: - * ace/Message_Queue.h: - * ace/Message_Queue_T.cpp: - * ace/Strategies_T.h: - * ace/Svc_Handler.cpp: Removed inclusion of Strategies.h. - - * ace/Procator.cpp: #included Service_Config.h - - * ace/Makefile: Added new file and generated dependencies - - * ace/SSL/Makefile: - * ace/RMCast/Makefile: Generated dependencies. - -Mon Dec 10 14:10:00 2001 Nanbor Wang - - * Makefile.bor: Added an ace_only target for Borland_wchar nightly - build. - -Sun Dec 9 08:54:38 2001 Douglas C. Schmidt - - * ace/Activation_Queue.cpp (enqueue): Fixed a leak where the - dynamically allocated ACE_Message_Block wasn't being released if - enqueue_prio() failed. Thanks to Dan Gilboa - for reporting this. - - * tests/Logging_Strategy_Test.cpp (run_reactor): Fixed a warning. - - * tests/MEM_Stream_Test.cpp: Added a call to ACE_Thread_Manager::wait() - to ensure the test shuts down in the right order. Thanks to - Michael Searles for reporting this. - - * ace/Message_Queue_T.i (dequeue): Call dequeue_head() rather than - queue_.dequeue() to get the proper type enforcement. Thanks to - Bill Fulton for contributing this fix. - -Sat Dec 8 17:07:01 2001 Ossama Othman - - * bin/fuzz.pl (check_for_missing_rir_env): - - Check for TAO_ENV_ARG_PARAMETER instead of ACE_TRY_ENV. TAO now - uses the former instead of the latter. - -Sat Dec 8 09:39:48 2001 Douglas C. Schmidt - - * ace/OS.cpp (string_to_argv): Improved the support for quoted strings. - Thanks to Kevin Burge for reporting - this. - - * ace/Profile_Timer.cpp, - ace/OS.i, - ace/OS.h, - ace/OS.cpp, - ace/High_Res_Timer.i, - ace/High_Res_Timer.cpp, - ace/config-win32-ghs.h, - ace/config-win32-common.h: Added improved support for ACE_LACKS_LONGLONG_T. - Thanks to Alain Decamps for contributing this. - -Fri Dec 7 07:57:12 2001 Douglas C. Schmidt - - * ace/OS.cpp (cond_timedwait): Fixed a bug in the WinCE semaphore - simulation version of ACE_OS::cond_timedwait(). Thanks to - Michael Graf for helping to find this. - -Fri Dec 07 14:28:33 2001 Carlos O'Ryan - - * tests/ACE_Init_Test.cpp: - * tests/ACE_Init_TestDlg.cpp: - Fix order of #includes to work under unicode builds. - -Fri Dec 07 15:42:44 2001 Nanbor Wang - - * ace/Registry_Name_Space.cpp: Changed to conditionally use - char_rep for binding/unbinding/resolving name bindings. This is - because ACE_CString and ACE_WString no longer allow - initialization with different string type. - -Fri Dec 7 10:22:25 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.i (close): - - Do not invalidate the handle when closing the - ACE_SSL_SOCK_Stream. Doing so causes subtle side-effects when a - reactor invokes an event handler that uses a shutdown - ACE_SSL_SOCK_Stream. For example, if an SSL handshake fails - then the stream andle will be invalidated. This prevents the - ACE_SSL_Accept_Handler from being removed from the reactor. - Later when handle_events() is called the reactor will attempt - to call the ACE_SSL_Accept_Handler with the shutdown - ACE_SSL_SOCK_Stream, which appears to cause an access violation - on Windows, and a "hang" on Unix platforms. Thanks to Vladimir - Chovanec for tracking down this - problem. - -Thu Dec 6 18:48:07 2001 Douglas C. Schmidt - - * ace/Lib_Find.cpp: Fixed the ldfind() method so that it - does a case-insensitive comparison on Windows platforms. Thanks - to Kevin Burge for reporting this. - -Thu Dec 6 09:02:06 2001 Douglas C. Schmidt - - * ace/Sock_Connect.cpp: Added MACOSX support. Thanks to - John Michael Zorko for contributing this. - - * tests/Logging_Strategy_Test.cpp: Add a "wait()" at the - end of the main function to avoid problems when the main thread - exits before the reactor thread. Thanks to Michael Searles - for reporting this. - -Thu Dec 06 20:28:02 2001 Nanbor Wang - - * ace/SString.cpp (ACE_NS_WString): Char string constructor only - initialized the buffer length but not the string length. This - was causing string comparisons to fail. - -Thu Dec 6 18:51:39 2001 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU: Re this change: - Wed Dec 5 12:37:56 2001 Carlos O'Ryan - more than the Orbix stuff was removed... restored the setting - of required link libraries and handling for the distrib option. - -Thu Dec 06 14:06:22 2001 Nanbor Wang - - * tests/Config_Test.cpp: The string literals used to initialize - ACE_TString need to be enclosed in an ACE_TEXT macro. - - * ace/Registry_Name_Space.h: - * ace/Registry_Name_Space.cpp: Changed ACE_WString to - ACE_NS_WString. I missed these last time. - - * ace/SString.i: Added an ACE_NS_WString constructor that I - missed. - -Thu Dec 6 11:19:18 2001 Venkita Subramonian - - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h: - Fixed warnings in gcc 3.0.2 - -Thu Dec 6 11:15:28 2001 Balachandran Natarajan - - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h: - Fixed Fuzz errors in these files. - -Thu Dec 6 07:39:07 2001 Chad Elliott - - * Added two new static functions for VxWorks only. spae() and - spaef() which are similar to spa(), but allow more than 10 - arguments with the help of double quoted strings. spaef() is - similar to spae() except that a new task is not spawned to run - the main function of the program. Thanks to Albert Wijnja - for the idea and supplying the original - code. - -Thu Dec 06 00:06:52 2001 Nanbor Wang - - * performance-tests/Misc/test_naming.cpp: Replaced the use of - ACE_WString with ACE_NS_WString as ACE_WString no longer support - initization using char string. - -Wed Dec 05 17:13:15 2001 Nanbor Wang - - * ace/SString.h: The concatenation oeprator needed to be - exported. - -Wed Dec 5 19:58:42 2001 Steve Huston - - * ace/Logging_Strategy.cpp: Set the logger_key_ member to 0 (no key) - unless/until the LOGGER flag is specified (and then the default - key is set) or the -k option is given, which specifies a new key. - Always passing a logger_key, even when there's no logger to be - used, makes for some odd names in the syslog and NT Event Logs - after the change:Sat Dec 1 19:39:22 2001 Steve Huston - Thanks to Chris Kohlhoff for pointing this out. - -Wed Dec 5 15:35:20 2001 Carlos O'Ryan - - * apps/Makefile.am: - * docs/ACE-categories.html: - Removed left over references to Orbix handler. - - * apps/JAWS/remora/app/Makefile: - * apps/JAWS/remora/app/stdmk: - * apps/JAWS/remora/app/test.cc: - * apps/JAWS/remora/app/remora.idl: - * apps/JAWS/remora/app/Remora_Export.h: - * apps/JAWS/remora/app/Remora_Export.i: - * apps/JAWS/remora/app/Remora_Export.cc: - * apps/JAWS/remora/app/Remora_Import.h: - * apps/JAWS/remora/app/Remora_Import.i: - * apps/JAWS/remora/app/Remora_Import.cc: - Another directory that could only compile if ORBeline was still - available. - -Wed Dec 05 14:47:32 2001 Carlos O'Ryan - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Removed CORBA_Handler.* and CORBA_Ref.* classes from the project - files. - -Wed Dec 5 16:38:31 2001 Nanbor Wang - - * tests/SString_Test.cpp: - * examples/Misc/test_sstring.cpp (main): Changed from ACE_WString - to ACE_NS_WString so we can still initialize the test string - from char strings. We can no longer initialize ACE_WString's - with char strings. ACE_NS_WString maintains the old behavior, - however. - - * ace/SString.h: - * ace/SString.i: Added string contatenation operator - ACE_NS_WString::operator+. - -Wed Dec 5 12:37:56 2001 Carlos O'Ryan - - * Removed all code to support Orbix and any references to it in - the documentation (at least all references that I found). - We haven't tested this code in ages, so it was probably broken, - furthermore, IONA does not sell Orbix-2.X nor Orbix-3.X (the - versions our code was based on), and will probably stop - supporting old versions of Orbix before ACE-5.3 (or 6.0) come - out. - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/ace-dll.icc: - * ace/ace-lib.icc: - * ace/ace.icc: - * ace/CORBA_Handler.h: - * ace/CORBA_Handler.i: - * ace/CORBA_Handler.cpp: - * ace/CORBA_Ref.h: - * ace/CORBA_Ref.cpp: - * ace/config-hpux-9.x-orbix.h: - * ace/config-sunos4-sun4.x-orbix.h: - * ace/config-sunos5.4-sunc++-4.x-orbix.h: - * ace/config-sunos5.x-sunc++-4.x-orbix.h: - * apps/Makefile: - * apps/Makefile.am: - * apps/Orbix-Examples/Makefile: - * apps/Orbix-Examples/Event_Comm/Makefile: - * apps/Orbix-Examples/Event_Comm/README: - * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp: - * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h: - * apps/Orbix-Examples/Event_Comm/Consumer/Makefile: - * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp: - * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h: - * apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp: - * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp: - * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h: - * apps/Orbix-Examples/Event_Comm/Supplier/Makefile: - * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp: - * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h: - * apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp: - * apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh: - * apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h: - * apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h: - * apps/Orbix-Examples/Event_Comm/include/Notifier_i.h: - * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh: - * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl: - * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp: - * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp: - * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h: - * apps/Orbix-Examples/Event_Comm/libsrc/Makefile: - * apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl: - * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl: - * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp: - * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h: - * apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl: - * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp: - * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h: - * apps/Orbix-Examples/Logger/Logger.cpp: - * apps/Orbix-Examples/Logger/Logger.h: - * apps/Orbix-Examples/Logger/Makefile: - * apps/Orbix-Examples/Logger/Orbix.hostgroups: - * apps/Orbix-Examples/Logger/Orbix.hosts: - * apps/Orbix-Examples/Logger/README: - * apps/Orbix-Examples/Logger/a1.tex: - * apps/Orbix-Examples/Logger/client.cpp: - * apps/Orbix-Examples/Logger/logger.hh: - * apps/Orbix-Examples/Logger/logger.idl: - * apps/Orbix-Examples/Logger/loggerS.cpp: - * apps/Orbix-Examples/Logger/logger_i.cpp: - * apps/Orbix-Examples/Logger/logger_i.h: - * apps/Orbix-Examples/Logger/server.cpp: - * examples/CORBA/Makefile: - * examples/CORBA/Test.idl: - * examples/CORBA/Test_i.cpp: - * examples/CORBA/Test_i.h: - * examples/CORBA/client.cpp: - * examples/CORBA/server.cpp: - * include/makeinclude/platform_hpux_orbix.GNU: - * include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU: - * include/makeinclude/platform_sunos5_centerline_orbix.GNU: - * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: - Removed examples and classes to support orbix with ACE. - - * ACE-INSTALL.html: - * FAQ: - * README: - * TODO: - * acconfig.h: - * ace/README: - * ace/config-win32-common.h: - * apps/README: - * ace/config-tandem.h: - * docs/ACE-configuration.txt: - * include/makeinclude/platform_aix4_cset++.GNU: - * include/makeinclude/platform_dgux4_epc.GNU: - * include/makeinclude/platform_m88k.GNU: - * include/makeinclude/platform_sunos4_g++.GNU: - * include/makeinclude/platform_sunos5_g++.GNU: - * include/makeinclude/platform_sunos5_kcc.GNU: - * include/makeinclude/platform_sunos5_sunc++.GNU: - * include/makeinclude/platform_unixware_g++.GNU: - * include/makeinclude/platform_unixware_udk.GNU: - * include/makeinclude/rules.local.GNU: - * include/makeinclude/wrapper_macros.GNU: - * m4/ace.m4: - * performance-tests/README: - * performance-tests/TTCP/C/README: - Files that referenced Orbix support or documented how to use - it. - - * examples/Reactor/Multicast/Log_Wrapper.h: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - Fixed documentation, it was referencing Orbix but actually it - uses UDP multicast, looks like a cut&paste error to me. - -Wed Dec 5 12:15:36 2001 Carlos O'Ryan - - * ace/SString.cpp: - Add missing template instantiations, only a problem when - inlining was disabled. - - * tests/Hash_Map_Manager_Test.cpp: - Rename global variable 'alloc' to 'ace_test_allocator', the - former conflicts with STL symbols under Linux. - - * tests/Map_Test.cpp: - Rename the value_type and expanded_value global typedefs to have - an ace_ prefix. Though only used in this test they conflict - with some STL symbols by the same name. - - * tests/DLList_Test.cpp: - Remove unused global variable 'alloc' looks like a cut&paste - carry-over. - -Wed Dec 05 10:08:56 2001 Carlos O'Ryan - - * rpc++/*: - Removed, this directory was not distributed with ACE and having - it around just made the administration harder. - -Wed Dec 5 12:10:42 2001 Chad Elliott - - * bin/nightlybuilds/builds.lst: - - Temporarily disable the OCI nightly builds. - -Wed Dec 5 09:55:28 2001 Steve Huston - - * tests/INET_Addr_Test.cpp: Made the ipv4_addresses array const char *. - -Wed Dec 5 15:41:08 2001 Johnny Willemsen - - * ace/OS.h: - Corrected doxygen docu of ACE_Countdown_Time::max_wait_time_ - -Wed Dec 5 14:14:32 2001 Johnny Willemsen - - * ace/String_Base.h: - Corrected the description of the rep() method - -Wed Dec 5 09:21:12 2001 Johnny Willemsen - - * ace/SString.cpp: - Fixed compile error and warning that appeared in BCB build - -Tue Dec 4 22:26:28 2001 Nanbor Wang - - * ace/OS_String.h: - * ace/OS_String.i: - * ace/OS_String.cpp (strncpy, wcsncat_emulation): One more - string function that needs to be available. (See next entry.) - -Tue Dec 04 22:12:04 2001 Nanbor Wang - - * ace/OS_String.h: - * ace/OS_String.cpp (strsncpy): Made the wchar_t version of this - function available on all platforms and changed it to use type - ACE_WCHAR_T. - -Tue Dec 04 20:08:49 2001 Nanbor Wang - - Merged in the new String_Base template class. - - * ace/Makefile: Added String_Base into the list of template - files. - - * ace/Basic_Types.h: Added definitions of ACE_WCHAR_T and - ACE_WINT_T which are defined to wchat_t and wint_t when - ACE_HAS_WCHAR are defined, and ACE_USHORT16 otherwise. They are - needed to support various "wide character" string operations - that we need to support the templatized ACE_WString, which uses - ACE_USHORT16 as the wide char type when wchar_t is not - supported. - - * ace/OS_String.h: - * ace/OS_String.inl: - * ace/OS_String.cpp: Made several wchar version string functions - available no matter ACE_HAS_WCHAR is defined or not. There are - more functions (the ones that have *_emulation helpers - available) that can be made availabe at all time, but I just - fixed the ones that ACE_WString needed for now. We can add more - later. - - * ace/SString.h: Changed the definition of ACE_WSTRING_TYPE to - ACE_WCHAR_T. ACE_WCHAR_T is defined in the same fashion as - ACE_WSTRING_TYPE was originally defined. - - * ace/Local_Name_Space.cpp: ACE_NS_WString::char_rep works just - fine. We don't need to use ACE_Wide_To_Ascii::convert - explicitly since it is not available when ACE_HAS_WCHAR isn't - defined. - - * ace/SString.cpp (operator<<): Avoided the problem of printing - wchar strings temporarily. Using ACE_Wide_To_Ascii didn't work - on platforms that don't support wchar. Thanks to Keith Hamburg - for pointing this out. - - * ace/String_Base.cpp: Fixed incorrect RCSID name. Thanks to - Keith Hamburg for reporting it. - - * ace/SString.cpp: - * ace/SString.h: - * ace/SString.i: Changed ACE_WString to be a typedef of - ACE_String_Base and added a subclass of it - called ACE_NS_WString to maintain backward compatibility. - - * tests/Naming_Test.cpp: - * ace/Local_Name_Space.cpp: - * ace/Local_Name_Space.h: - * ace/Local_Name_Space_T.cpp: - * ace/Local_Name_Space_T.h: - * ace/Name_Space.cpp: - * ace/Name_Space.h: - * ace/Naming_Context.cpp: - * ace/Naming_Context.h: - * ace/Remote_Name_Space.cpp: - * ace/Remote_Name_Space.h: - * netsvcs/clients/Naming/Client/Client_Test.cpp: - * netsvcs/lib/Name_Handler.cpp: - * netsvcs/lib/Name_Handler.h: Changed the use of ACE_WString to - ACE_NS_WString. - - * tests/SString_Test.cpp: Added ACE_TEXT_WIDE to convert char - strings to wchar strings for initializing ACE_WString as you can - no longer initialize a ACE_WString with a char string. - - * ace/String_Base.h: - * ace/String_Base.i: - * ace/String_Base.cpp: Abstracted out ACE_CString and ACE_WString - into a templatized String_Base. - - * ace/CDR_Stream.h: Removed forward declarating ACE_CString and - added inclusion of . - - * ace/SString.h: - * ace/SString.i: - * ace/SString.cpp: Changed ACE_CString to be a typedef of - ACE_String_Base. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added String_Base.* to appropriate folders. - -Tue Dec 4 20:57:09 2001 Balachandran Natarajan - - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: - - Added a outgoing queue to the test. This should more or less - represent a simple CORBA invocation. Reduced a call to new to by - using a shared data block with a lock. - -Tue Dec 4 19:10:22 2001 Steve Huston - - * ace/config-sunos5.6.h: Removed the setting of _POSIX_C_SOURCE to - 199309L and __EXTENSIONS__. They aren't needed to pick up shm_open - as previously believed, and they interfere with availability of - some Solaris/C9x functions. - -Tue Dec 4 14:47:39 2001 Steve Huston - - * ace/OS.i (gethostbyaddr): Moved this up before getipnodebyaddr() - to avoid a call to gethostbyaddr() before it's been seen - inlined. Thanks to Bala for reporting this. - -Tue Dec 4 13:52:44 2001 Steve Huston - - * tests/Date_Time_Test.cpp: Add a test for the microseconds part. - -Tue Dec 4 09:27:21 2001 Ossama Othman - - * ace/OS.h: - - Reverted the change that added group write permissions to the - default file and directory permissions. Doug correctly points - out that this introduces a security hole. Users who need less - restrictive permissions can redefine these macros in their - config.h header. - -Tue Dec 4 10:07:31 2001 Steve Huston - - * bin/auto_compile: Add an optional 6th command line arg that is - the module to check out from CVS. Defaults to ACE_wrappers so - it works the same as it used to without the argument. - -Tue Dec 4 06:59:09 2001 Balachandran Natarajan - - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp: - - New tests for measuring the throughput of two different server - concurrency architectures. The idea is to make it simpler than - what is already there and hence the tests. The old tests were a - bit confusing and very complicated. The old tests have been - retained. The tests are for getting some ball-park figures for - RT_CORBA and for TAO in general. - -Tue Dec 4 10:00:04 2001 Johnny Willemsen - - * examples/Reactor/Multicast/client.cpp: - * examples/Naming/test_non_existent.cpp: - * examples/Naming/test_open.cpp: - * examples/Naming/test_writers.cpp: - Made these files compiling when ACE_USES_WCHAR is set - -Mon Dec 3 18:19:11 2001 Ossama Othman - - * bin/fuzz.pl (check_for_id_string): - - Corrected capitalization of "\$Id\$" in output message. - -Mon Dec 3 16:30:07 2001 Ossama Othman - - * ace/OS.h: - - Added group write permissions to the default file and directory - permission macros supplied by ACE. Allows the ACE_Process_Mutex - to be used with process from different user in the same group. - Thanks to Michael Brinkmann for - providing a fix. - -Mon Dec 3 16:22:56 2001 Ossama Othman - - * ace/Process_Mutex.h: - - Corrected Doxygen documentation. - -Mon Dec 03 14:22:57 2001 Carlos O'Ryan - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Add UNIX-only files. Though strictly not required to compile - ACE under NT, putting them in the project makes this directory - more amenable for samwise. - - * ace/POSIX_Proactor.cpp: - Remove duplicate ACE_BUILD_DLL macro, when needed this is - defined via options in the project file. - -Mon Dec 3 13:59:06 2001 Ossama Othman - - * ace/README: - - The ACE_HAS_IP6 macro has been superceded by the ACE_HAS_IPV6 - macro. Also added description of the - ACE_USES_IPV4_IPV6_MIGRATION macro based on Steve's description - below. - -Mon Dec 3 15:50:42 2001 Steve Huston - - * IPv6 changes done by John Aughey and myself. To enable IPv6 - support for a build, put this in your config.h file: - #define ACE_HAS_IPV6 - If your build with IPv6 enabled must also run on systems where - the IPv6 support in the kernel is not actually turned on (for - example, Redhat Linux 7 by default), also add this to your - config.h file: - #define ACE_USES_IPV4_IPV6_MIGRATION - - * ace/ACE.cpp (format_hexdump): Add \n to last part of a dump line. - - * ace/INET_Addr.(h i cpp): If IPv6 is enabled, the inet_addr_ - member is now a union of sockaddr_in and sockaddr_in6. Which - one is legit is noted in ACE_Addr::type as well as the family - member of either of the union members. The host name lookup - functions can look up ipv6 as well as ipv4 names, and the - caller can force one or the other by using the address_family - argument to set(). - - * ace/OS.(h i): Removed ACE_OS::gethostbyname2; replaced it with - the more correctly-named and more flexible ACE_OS::getipnodebyname. - Also added ACE_OS::getipnodebyaddr. These are the IPv6-capable - functions analogous to gethostbyname and gethostbyaddr. - - * ace/SOCK.cpp (get_remote_addr, get_local_addr): Set up the - ACE_Addr's type properly to account for ipv4/6 possibilities. - - * ace/SOCK_Acceptor.(h cpp): Allow accepting on ipv4 and ipv6 sockets. - - * ace/SOCK_CODgram.h: - * ace/SOCK_Connector.(cpp h ): - * ace/SOCK_Dgram.(cpp h ): Change default protocol family from - PF_INET to vary and take advantage of IPv6 if available. - - * ace/Sock_Connect.(cpp h): Added ACE_Sock_Connect::ipv6_enabled() - method - it checks to see if the running kernel can do IPv6 - sockets or not. - - * ace/Sock_Connect.cpp (get_ip_interfaces): Removed a #if 0'd - block that had possible specializations for MSVC 4.2. It's - been a number of years, and it's obviously not needed. - - * ace/MEM_Addr.cpp (same_host): Don't try to compare binary - addresses directly... get ACE_INET_Addr objects, clear the port - numbers, and compare them. - - * ace/MEM_Connector.cpp (connect): Print error text with message. - - * ace/Asynch_Acceptor.cpp (open): For the new socket, use the - protocol family from the listen address, not PF_INET. - - * tests/INET_Addr_Test.cpp: New test. - - * tests/Makefile: Added INET_Addr_Test. - -Mon Dec 3 10:54:34 2001 Carlos O'Ryan - - * ace/OS.h: - Document CDR default buffer sizes and control macros - using Doxygen. - Document memory alignment macros in Doxygen form. - - * ace/Sample_History.h: - * ace/Sample_History.inl: - Add accessor to get the samples saved on the history. - - * ace/RMCast/RMCast_Singleton_Factory.h: - Document constructor in more detail. - -Mon Dec 03 07:54:04 2001 Johnny Willemsen - - * ace/Unbounded_Queue.{h,cpp}: - Added const iterator for this container class - -Sun Dec 02 15:13:30 2001 Carlos O'Ryan - - * ace/OS.cpp: - Fixed Fuzz problems, the ACE_TRACE calls in operator++/-- - definitions had less whitespace than the actual operators. - -Sun Dec 02 15:17:47 2001 Nanbor Wang - - * ace/Thread_Manager.cpp (join): This method mistakenly used the - local copy of Thread_Descriptor to change the thread status when - it found a thread to join from the . This prevented - the status of the original Thread_Descriptor to be updated - correctly and the same descriptor got put into the - again, which caused the same thread to be - waiting on in some cases. Changed to manipulate the descriptor - directly to avoid the problem. Thanks to Eyal Lubetzky - for reporting the problem and providing a - nice example to showcase it. - -Sun Dec 2 12:44:58 2001 Carlos O'Ryan - - * tests/ACE_Init_Test.cpp: - * tests/ACE_Init_TestDlg.cpp: - Protect this test against compilation on non-Win32 platforms, - that makes it easier to compile using samwise. - - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Membership_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/RMCast/RMCast_Reordering_Test.cpp: - * tests/RMCast/RMCast_Retransmission_Test.cpp: - * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: - Change #include "test_config.h" to #include "../test_config.h", - it is easier to generate makefiles and projects files with - samwise if we do that. - -Sun Dec 02 12:15:25 2001 Carlos O'Ryan - - * ace/OS.cpp: - Fixed typos in ACE_Time_Value::operator++ implementations. - Also moved the implementation outside the #ifdef ACE_WIN32 - section. - -Sun Dec 2 12:17:09 2001 Balachandran Natarajan - - * ace/Reactor.i: Fixed a warning in TRU 64. Thanks to - which reminded me of the fix in one of my - workspaces. This shows up only in V6.3-013 (cxx) of the - compiler. - -Sat Dec 1 19:39:22 2001 Steve Huston - - * ace/Date_Time.i (update): Use ACE_OS::gettimeofday for the time - source. This gets both the seconds-since-epoch value from which - the date and time are calculated and the microseconds value. - Thanks to Jim Connelly for reporting this. - - * THANKS: Added Jim Connelly to the Hall of Fame. - - * ace/Log_Msg_NT_Event_Log.{cpp h} (open): - * ace/Log_Msg_UNIX_Syslog.{cpp h} (open): - If the caller passes a prog_name (logger_key) argument, use it - for the Source field in the event log entries (or ident in the - syslog entries). If not, use the program name (previous behavior). - Added comments to define this behavior. - - * ace/Log_Msg.cpp (open): Don't refuse to open a backend if the - arg is 0 and the SYSLOG bit is enabled. The SYSLOG - backends, both UNIX and NT Event Log, work perfectly fine with - a 0 logger_key. Thanks to Steve Witten for - reporting this. - -Sat Dec 1 18:03:51 2001 Douglas C. Schmidt - - * ace/config-macosx.h: - * include/makeinclude/platform_macosx.GNU: - Added support so that ACE will build and run on Mac OS X 10.1. - Thanks to John Michael Zorko for contributing - this. - -Fri Nov 30 19:08:19 2001 Douglas C. Schmidt - - * ace/ARGV.cpp (dump): Fixed a bug with dump() so that it - works properly even if argv_ changes. Thanks to Kyle Brost - for this fix. - -Thu Nov 29 16:31:57 2001 Douglas C. Schmidt - - * ace/OS.{h,i,cpp}: Changed the return value of - ACE_Time_Value::operator+= and operator -= to be ACE_Time_Value - & rather than void. Also, added overloaded operator++ and - operator--. This is all to make this stuff work better with - ACE_Atomic_Op. Thanks to Kelly F. Hickel - for suggesting this. - - * ace/Asynch_Acceptor.cpp (parse_address): Changed - the "message_block.size () - 2 * this->address_size ()" argument - to "bytes_to_read_" to work properly on Win32. Thanks to Kelly - F. Hickel for reporting this. - -Wed Nov 28 17:44:26 2001 Douglas C. Schmidt - - * ace/OS_Dirent.cpp (readdir_emulation): Fixed a memory leak - in the dirent emulation. Thanks to Olivier Brunet - for reporting this. - - * ace/SPIPE_Acceptor.h (ACE_SPIPE_Acceptor): Clarified the - return value of open(). Thanks to Garth Watney - for motivating this. - - * ace/OS.h: Added a workaround to the Borland bug for - ACE_OS::stat(). Thanks to Christopher Kohlhoff - and Chris Able for - reporting/fixing this. - -Sat Dec 01 09:26:27 2001 Balachandran - - * ACE version 5.2.1 released. - -Wed Nov 28 09:28:09 2001 Johnny Willemsen - - * ace/examples/IPC_SAP/SOCK_SAP/* - * ace/examples/IPC_SAP/SPIPE_SAP/* - * ace/examples/Misc/* - * ace/examples/Naming/* - * ace/examples/RMCast/Send_File/* - * ace/examples/Reactor/DGram/* - * ace/examples/Reactor/Ntalker/* - * ace/examples/Registry/* - * ace/examples/Threads/* - * ace/examples/Service_Configurator/IPC_tests/client/* - Made these examples compiling when ACE_USES_WCHAR is set - -Mon Nov 26 16:07:57 2001 Balachandran Natarajan - - * bin/make_release: The distribution will be available in bzip2 - compressed format too. Made modifications to the release scripts - to put out the beta in bzip2 compressed format. - -Sat Nov 24 10:23:00 2001 Douglas C. Schmidt - - * ace/Unbounded_Set.h (class ACE_Unbounded_Set): Moved the - insert_tail() method from the private part of the class to the - public part since it's needed by the examples/Misc/test_set.cpp - file. - - * examples/Misc/test_set.cpp (main): Somehow the contents of this file - got lost. Thanks to Johnny Willemsen for reporting this! - -Fri Nov 23 08:40:33 2001 Douglas C. Schmidt - - * tests/Refcounted_Auto_Ptr_Test.cpp: Added some ACE_DEBUGs to - print out the reference count. - - * ace/Refcounted_Auto_Ptr.h: Added a count() accessor method to - return the reference count. Thanks to Andrea Bernicchia - for contributing this. - -Thu Nov 22 05:24:51 2001 Craig Rodrigues - - * examples/QOS/Diffserv: Added a simple example to illustrate - how to set Diffserv Codepoints on an ACE_SOCK_CODgram. - * examples/QOS/Makefile: Updated. - -Wed Nov 21 11:35:50 2001 Michael Kircher - - * ace/Bound_Ptr.h - * ace/Bound_Ptr.i - * ace/Future.cpp - * ace/Future.h - * ace/Refcounted_Auto_Ptr.h - * ace/Refcounted_Auto_Ptr.i - - Made the memory allocation failure behavior consistent - to the behavior prior to the change on Sun Oct 28 13:15:00 2001. - Thanks to Christopher Kohlhoff who prepared - this change. - The problem was that with the above mentioned change failed - allocations would return 0 in either case, if exceptions were - enabled by the platform or not. This was incosistent to the - behavior before, as new threw bad_alloc on allocation failure - when exceptions were supported by the platform. - - To fix this we faced the following forces: - - Not to introduce yet another macro - - Minimize impact of changes, localize the problem - - Keep the new calls wrapped by a ACE_NEW macro to allow - users to eventually redefine the macro (using e.g. new (nothrow) - - As the ACE_NEW macros are quite restrictive in their supported - semantics, e.g. you can only return on error, we decided to introduce - a new method (as inline) internal_create which does the allocation. - internal_create is called by create which does the differentiation - between the exception-supported and exception-not-supported case. - -Wed Nov 21 09:07:37 2001 Douglas C. Schmidt - - * ace/OS.h: Updated the ACE_GUARD_ACTION macro and added a new - ACE_GUARD_REACTION macro. Then, reimplemented the ACE_GUARD and - ACE_GUARD_RETURN macros in terms of these new macros. Thanks to - Don Hinton for contributing these. - - * ace/Log_Msg_Callback.h: Improved the comments to explain why - ACE_Log_Msg_Callback isn't inherited. Thanks to - Alexey Chalimov for motivating this. - -Tue Nov 20 15:36:52 2001 Douglas C. Schmidt - - * ACE-INSTALL.html: Pointed out that on Solaris with g++ you may - need to use GNU as instead of /usr/ccs/bin/as, if you want - -gstabs+ and -pipe support. Thanks to C Chan - for reporting this. - -Mon Nov 19 07:24:05 2001 Douglas C. Schmidt - - * examples/Synch/proc_sema.cpp: Added the ACE_TEXT macro so that - ACE_Get_Opt works correctly. Thanks to Johnny Willemsen for - contributing this. - - * tests/Aio_Platform_Test.cpp (main): Fixed the code so that it - compiles when ACE_USES_WCHAR. Thanks to Johnny Willemsen for - reporting this. - - * docs/ACE-categories.html: Updated the Doxygen URLs to use the - new format. Thanks to Peter J. Mason - for reporting the problem. - -Fri Nov 16 10:39:52 2001 Douglas C. Schmidt - - * docs: Moved minimumTAO.html from $TAO_ROOT/docs/ to - $ACE_ROOT/docs. - - * ace/OS.h: Added two new macros ACE_GUARD_ACTION and - ACE_GUARD_ACTION_RETURN. Thanks to Boris Kaminer - for suggesting these. - - * ace/NT_Service.cpp (state): Fixed a bug where calling - ACE_NT_Service::state(x,x) while the service is stopped was - causing the internal status variables of ACE_NT_Service to - become corrupt. If the control_mask is set to - SERVICE_ACCEPT_STOP in the constructor, the call to state will - cause this mask to be reset (if the service is not running). - This ultimately results in an NT Service that can be started but - not stopped. Thanks to Kyle Brost for - providing this fix. - -Wed Nov 21 10:00:20 2001 Chad Elliott - - * ace/config-irix6.x-common.h: - - Changed the size of a long double from 16 to 8 for the GNU - compiler. - - * include/makeinclude/platform_irix6.x_sgic++.GNU: - - Add buildbits macro to allow 32 and 64 bit builds on IRIX. - -Wed Nov 21 12:49:08 2001 Johnny Willemsen - - * 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_mutex.cpp - * performance-tests/Misc/test_singleton.cpp - Made these tests compiling when ACE_USES_WCHAR is set - -Wed Nov 21 08:49:12 2001 Johnny Willemsen - - * ace/OS.h - Added ACE_LIB_TEXT around ACE_DEFAULT_RENDEZVOUS to make a unicode - constant when ACE_USES_WCHAR is defined - - * tests/FlReactor_Test.cpp - * tests/TkReactor_Test.cpp - * tests/XtReactor_Test.cpp - Changed type of argv argument of main from char to ACE_TCHAR so that - these tests compile without problems when ACE_USES_WCHAR is defined - - * examples/IPC_SAP/ATM_SAP/CPP-client.cpp - * examples/IPC_SAP/ATM_SAP/CPP-server.cpp - * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp - * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp - Made these example compiling when ACE_USES_WCHAR is set - -Tue Nov 20 12:02:16 2001 Ossama Othman - - * configure.in: - - Removed this file from the distribution. Some folks insist on - attempting to build ACE/TAO with the configure script and - reporting problems despite the fact we've explicitly disabled - it. - -Tue Nov 20 13:30:36 2001 Balachandran Natarajan - - * ace/Strategies.h: - * ace/Strategies.cpp: - * ace/Strategies.i: Re-added files back into the main trunk. Got - accidentally removed from the main when I was doing some work on - a branch. - -Mon Nov 19 20:35:44 2001 Jaiganesh Balasubramanian - - * ace/SOCK_Dgram_Mcast.cpp: - This class allow application to subscribe a single socket to - many multicast groups. However, the unsubscribe operation - failed to work with more than one group. For some strange - reason it was storing the first multicast group subscription in - a class member and using that member in all the paths for the - unsubscribe methods. - - We have changed the unsubscribe(const ACE_INET_Addr&,...) method - to work as adversited, i.e. unsubscribe the *given* multicast - address, not the stored one, as an added benefit the method is - now re-entrant. The unsubscribe(void) method works as before. - The code has been re-factored to minimize duplication. - -Mon Nov 19 11:03:07 2001 Ossama Othman - - * ACE-INSTALL.html: - - Added missing build instructions for the ACE_SSL library, and - updated the list of "make" flags recognized by ACE's Makefile - scheme. - -Mon Nov 19 00:53:54 2001 Krishnakumar B - - * ace/Svc_Conf_y.cpp: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_Tokens.h: - - Fixed some bugs introduced by my previous checkin because of - patch confusion. Replaced all the standard C system calls with - ACE_OS calls. Made it more wchar friendly. - - * ace/Makefile: - - Removed the dependency on /pkg/gnu/bin/flex. It was broken. We - now use $(LEX) and $(YACC) defined in - $ACE_ROOT/include/makeinclude/wrapper_macros.GNU. - - * include/makeinclude/wrapper_macros.GNU: - - Changed the definition of YACC to bison (by default). If people - want to change this, it can be overridden by a variable in the - Makefile. But things are most likely to break if you use yacc. - - * etc/Svc_Conf_l.cpp.diff: - * etc/Svc_Conf_y.cpp.diff: - - Regenerated the diffs. - - *Sigh* This patching business is ugly. - -Fri Nov 16 07:22:19 2001 Balachandran Natarajan - - * bin/make_release: Updated the script to copy the beta to a - different location. Have tested this by creating a dummy - repository and a dummy export directory. Things worked - fine. Hopefully the beta should go through without any hassle. - - The script is tied to its usage on ace.cs. Needs to be - changed. Will do that after this beta goes out. Having too many - changes at the same time may not be good. - -Thu Nov 15 20:44:40 2001 Craig Rodrigues - - * etc/Svc_Conf_l.cpp.diff: Updated. Thanks to Kitty for reporting it. - * etc/Svc_Conf_y.cpp.diff: Added. We need it for uses of ACE_LIB_TEXT. - * ace/Makefile: Added rule to apply patch to Svc_Conf_y.cpp. - -Thu Nov 15 08:26:57 2001 Douglas C. Schmidt - - * ace/*.cpp: Changed all remaining uses of ACE_TEXT to ACE_LIB_TEXT - to be consistent... Thanks to Johnny Willemsen for reporting - the inconsistencies and for Darrell Brunsch for clarifying what - the right behavior should be. - -Wed Nov 14 07:43:20 2001 Douglas C. Schmidt - - * docs/ACE-guidelines.html: Updated the guidelines to explain - the use of ACE_TCHAR for the argv parameter to main(). Thanks - to Johnny Willemsen for reporting this. - - * ace/OS_Dirent.inl (opendir): Replace char * const cast with - ACE_TCHAR * const cast. Thanks to Nick Pratt for reporting - this. - - * tests/Upgradable_RW_Test.cpp (main): Fixed the test to avoid - dividing by 0 and also initialized all pointers to NULL. Thanks - to Johnny Willemsen for reporting this. Thanks fixes BudID 650. - -Tue Nov 13 15:25:04 2001 Douglas C. Schmidt - - * ace/ACE.h (ACE): Clarified what the time_len parameter is used for. - Thanks to Tompa for reporting this. - -Sun Nov 11 09:50:52 2001 Douglas C. Schmidt - - * ace/Naming_Context.cpp (info): Added an ACE_UNUSED_ARG to - silence warning about "length" parameter and changed buf from - char to ACE_TCHAR. Thanks to Johnny Willemsen for reporting - this. - - * tests/Aio_Platform_Test.cpp: The argv parameter of main() should - be ACE_TCHAR rather than char. Thanks to Johnny Willemsen for - reporting this. - -Thu Nov 15 15:43:20 2001 Craig Rodrigues - - * ace/Naming_Context.cpp (info): Wrapped sprintf() arguments with - ACE_LIB_TEXT. Fix supplied by Johnny Willemsen. - -Thu Nov 15 12:43:31 2001 Nanbor Wang - - * docs/wchar.txt: Added a writeup for ACE_LIB_TEXT and ACE_TEXT - from "the authority." - -Wed Nov 14 21:36:42 2001 Ossama Othman - - * docs/usage-bugzilla.html: - - Corrected link to the DOC Center's bugzilla site. - -Wed Nov 14 23:11:59 2001 Craig Rodrigues - - * ace/Naming_Context.cpp (info): Fixed Unicode build problems - by consistently using ACE_TCHAR instead of char, and by - using Unicode aware string functions in ACE_OS_String - instead of ACE_OS. - - * ace/Svc_Conf_l.cpp: Default intialized ace_yy_c_buf_p to ACE_TCHAR - instead of char. Default initialized ace_yy_cp, ace_yy_bp to 0. - - * ace/Svc_Conf_y.cpp: Wrap string literals passed to ace_yyerror - with ACE_LIB_TEXT(). - -Wed Nov 14 06:38:41 2001 Balachandran Natarajan - - * docs/ACE-bug-process.html (HREF): Changed references from ace.cs - to deuce.doc. Thanks to Johnny Willemsen for reporting this. - -Tue Nov 13 15:04:15 2001 Carlos O'Ryan - - * html/Stats/index.shtml: - * html/Stats/detailed_performance.shtml: - Improved documentation about the test location, ORB, and network - configuration used. Thanks to David Yongqiang Wang - for pointing out the problems. - -Tue Nov 13 11:46:11 2001 Chris Cleeland - - * tests/Collection_Test.cpp (iterate_const): Fixed ACE_DEBUG print - statements that were accessing the element of the unbounded set - as an int rather than an UglyThing. Thanks to Ossama for - pointing this out. - -Mon Nov 12 11:41:35 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.cpp (send, recv): - - In the va_arg versions of these methods, do not use - send/recv_n() to as the underlying send/recv() method. It - forces unnecessary blocking. - - Corrected return value semantics in versions of these methods - that use loop to send/receive multiple buffers. If data was - sent or received than do not return -1 on error. Instead return - the amount of bytes sent/received. This is necessary to allow - the caller to keep track of sent or received data. [Bug 882] - -Sun Nov 11 23:50:00 2001 Craig Rodrigues - - * tests/Date_Time_Test.cpp: Remove argv variable from - main() to eliminate unused variable compiler warning. - * tests/Arg_Shifter_Test.cpp: Same. - -Sun Nov 11 10:00:56 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream): - - Removed unused class members. - - * ace/SSL/SSL_SOCK_Stream.cpp (sendv): - - If an error occurs but data was sent on a previous loop - iteration then return the amount of bytes sent, not the error. - This extends previous check for EWOULDBLOCK and ETIME. All - errors are now caught. The caller must always know if any data - was successfully sent. [Bug 882] - - Do not continue on to the next loop iteration if the amount of - data sent was less than the amount data given. This avoids a - subtle problem where "holes" in the data stream would occur if - partial sends of a given buffer in the iovec array occured. - [Bug 882] - -Sun Nov 11 07:58:07 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.cpp (sendv): - - Fixed unused variable warnings. - -Sat Nov 10 23:25:50 2001 Ossama Othman - - * bin/auto_run_tests.lst: - - Added new SSLIOP "Big_Request" test to the list of regression - tests to automatically run during the nightly builds. - -Sat Nov 10 22:13:54 2001 Krishnakumar B - - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - * ace/Svc_Conf_Tokens.h: - - Regenerated the files after fixing the warnings that showed up - under Sun CC Forte Update. They were caused because Sun CC's - preprocessor doesn't like the #line statements generated by flex - and bison. Since these files are not modified on a daily basis, - people debugging the lexer can turn it on by removing the flags - '-l' and '-L' to bison and flex respectively in the Makefile. - For now, this removes a lot of noise. - - * ace/Makefile: - - Added flags '-l' to bison and '-L' to flex. - - * etc/Svc_Conf_l.cpp.diff: - - Regenerated the diff to match the current version. - - * etc/Svc_Conf_y.cpp.diff: - - This file held the stuff which have been obsoleted by the move - to use bison. So removed this file to avoid causing confusion in - the future. Thanks to Ossama for pointing this out. - - Let's see some green :-) - -Sat Nov 10 19:27:36 2001 Ossama Othman - - * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): - * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): - - If data is still buffered within OpenSSL's internal buffer, then - force the Reactor to invoke the event handler (with - the appropriate mask) before waiting for more events - (e.g. blocking on select()) by returning a value greater than - one. All pending data must be processed before waiting for more - events to come in on the SSL handle. - - * ace/SSL/SSL_SOCK_Stream.h (reactor, handler, notify): - - These methods are no longer needed. Removed them. - - (sendv): - - Added missing timeout parameter. - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - * ace/SSL/SSL_SOCK_Stream.i (notify, recv_i, send_i, close): - - Reverted code that notify()ed the Reactor if data was still - pending in OpenSSL's internal buffers. The idea was to force - the reactor to call the appropriate event handler before polling - for events (e.g. blocking on select()). However, notifications - are not dispatched until after events are polled which meant - that there is no point in notify()ing the Reactor. - - * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): - - These methods are no longer needed. Removed them. - - (sendv): - - Fixed/improved the writev() semantics and emulation in this - method. Previously, if an iov_base buffer was successfully - sent, that success was not reported to the caller if subsequent - sends in the emulation loop failed. The caller would end up - thinking that no part of the message was sent. The improved - semantics are now the following if the underlying send() call - returns with an EWOULDBLOCK or ETIME error condition: - - - If no data was sent, then return -1. - - If some data was sent on a previous loop iteration then - return the number of bytes successfully sent. - - In both cases, errno is unchanged. [Bug 882] - - Incidentally, this fixes a problem in TAO's SSLIOP pluggable - protocol when sending very large requests. Thanks to Andrew - Finnell for providing an - example that exhibited the problem. - - Lastly, the missing timeout support has been added. The timeout - is decremented on each loop iteration. - -Sat Nov 10 17:16:59 2001 Nanbor Wang - - * ace/OS.cpp (fopen): Removed redundant parentheses. - -Sat Nov 10 09:29:48 2001 Douglas C. Schmidt - - * ace/OS.i (pipe): Replaced the _pipe() call on Win32 with the - CreatePipe() call. Thanks to Bo Balders - for reporting this. - - * ace/Log_Msg.cpp (log): The "format" string was omitted. Thanks - to Martin Krumpolec for noticing this. - -Sat Nov 10 08:48:24 2001 Douglas C. Schmidt - - * ace/Arg_Shifter.{h,cpp}: Added a new constructor to ACE_Arg_Shifter - so that it can handle both const char ** and char ** arguments. - -Fri Nov 9 07:42:41 2001 Douglas C. Schmidt - - * ace/Arg_Shifter.cpp: Made the argv parameter to ACE_Arg_Shifter - a "const" ACE_CHAR **. - - * tests/Arg_Shifter_Test.cpp (main): Added "const" to the - args local variable to remove a warning from SunC++. - -Fri Nov 9 11:23:01 2001 Chris Cleeland - - * tests/Collection_Test.cpp: Fixed up things that caused problems - on several platforms. Added the ARRAY tests back in. - -Thu Nov 8 14:52:39 2001 Steve Huston - - * ace/Log_Msg.h: Added a new 'M' option to print out the name of - the log priority. Thanks to Vladimir Chovanec - for reporting this. - -Thu Nov 8 10:41:44 2001 Douglas C. Schmidt - - * ace/OS_String.h: Enhanced the documentation so that it explains - the differences between ACE_OS::strsncpy() and ACE_OS::strcpy() - more precisely. Thanks to Alain Decamps for contributing this. - - * ace/Naming_Context.{h,cpp}: The info() method should have - ACE_TCHAR ** rather than char **. Thanks to Johnny Willemsen - for reporting this. - - * ace/OS.cpp: Added support for Borland's idiosyncratic _wfdopen() - method. Thanks to Johnny Willemsen for reporting this. - -Wed Nov 7 05:17:03 2001 Douglas C. Schmidt - - * ace/Message_Queue_T.{h,cpp}: Changed the typo DEFUALT_PRIORITY - to DEFAULT_PRIORITY. - - * ace/OS.i: In BCB the _wtempnam() has the following signature: - wchar_t *_wtempnam(wchar_t *dir, wchar_t *prefix) - - This means that the arguments must be made non-const by a cast. The - fix is to add some defines so that with BCB and no wchar the - _tempnam is used (with the casts) and with BCB and wchar then - the _wtempnam is used with the casts. Thanks to Johnny - Willemsen for this fix. - -Thu Nov 8 14:52:39 2001 Steve Huston - - * ace/Arg_Shifter.h: Doxygen-ized some comments. - - * ace/Date_Time.i (update): Add 1900 to years value to convert from - localtime's years-since-1900 value to now. Add 1 to the month - to convert localtime's 0-11 range to 1-12. Thanks to Syed - Wasim Ali for reporting this. - - * tests/Date_Time_Test.(cpp dsp icc): New test for ACE_Date_Time. - - * tests/tests.dsw: - * tests/tests.icp: - * tests/Makefile[.bor]: Added Date_Time_Test. - - * tests/run_test.lst: Added Arg_Shifter_Test and Date_Time_Test. - -Thu Nov 8 11:53:00 2001 Steve Huston - - * tests/Arg_Shifter_Test.(cpp dsp icc): New test for ACE_Arg_Shifter. - - * tests/tests.dsw: - * tests/tests.icp: - * tests/Makefile[.bor]: Added Arg_Shifter_Test. - -Thu Nov 8 13:05:12 2001 Chad Elliott - - * include/makeinclude/platform_irix6.x_sgic++.GNU: - - Added an option to suppress warnings about #pragma pack. - -Thu Nov 8 10:43:22 2001 Chad Elliott - - * ace/OS.cpp: - - Correct a build problem for GHS on Win32. - -Wed Nov 07 13:50:39 2001 Nanbor Wang - - * ace/Task_T.h (ACE_Task): Decorated ACE_Task with ACE_Export to - avoid VC7's internal compiler error. Thanks to Darrell for - submitting the change. - -Wed Nov 7 10:59:00 2001 Craig Rodrigues - - * include/makeinclude/platform_sunos5_g++.GNU: Append -D_REENTRANT - to CPPFLAGS if threads=1 - -Wed Nov 7 08:09:20 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst: Changed the name CC5 build as - CC51. It uses version 5.1 of the compiler anyway. - -Tue Nov 6 14:39:28 2001 Douglas C. Schmidt - - * ace/SString.i (find), - * ace/Local_Name_Space_T.cpp (resolve_i): Fixed "off-by-one" - bugs with ACE_OS::strscpy(). Thanks to Alain Decamps - for contributing this. - -Tue Nov 6 13:25:40 2001 Chris Cleeland - - * tests/Collection_Test.cpp: Committed an old change that uses an - actual class as the element in the Unbounded_Set rather than an - int. I wrote this to get a better understanding of how the - iterator and accessors on the iterator worked. - - * tests/SString_Test.cpp (main): Added a test for the rep() method - that insures that the char array returned is equivalent to the - string in the ACE_CString from which it's obtained. - -Mon Nov 5 10:12:01 2001 Douglas C. Schmidt - - * ace/OS.cpp, - * ace/Local_Name_Space_T.cpp, - * ace/FILE_Addr.cpp, - * ace/Acceptor.cpp, - * ace/ACE.cpp: Changed uses of strncpy() to ACE_OS::strsncpy(). - Thanks to Alain Decamps for these fixes. - -Sun Nov 4 12:11:31 2001 Douglas C. Schmidt - - * ace/Reactor.cpp: Enhanced all the Reactor's event loop methods - to first check and see if the Reactor's been deactivated and to - bailout immediately in this case. Thanks to Don Hinton for - suggesting this. - - * ace/Reactor.i: Moved the reactor_event_loop_done() method from - the *.cpp file into the *.i file and made inlineable. - - * ace/Select_Reactor_T.cpp: Be more careful about error handling in the - dispatch_notification_handlers() method. If a failure occurs, - when dispatch_notifications() is called, return -1, rather than - erroneously "incrementing" the count of the number of handlers - dispatched. Thanks to Don Hinton for reporting this. - -Sat Nov 3 11:15:43 2001 Douglas C. Schmidt - - * The following fixes are from Joachim Achtzehnter : - - In ace/config-pharlap.h we had to explicitly #undef - ACE_HAS_WCHAR after the #include "ace/config-win32.h" - directive. Without this change the resulting DLL depended on - several wide character versions of Win32 system functions, such - as _CreateMutexW. At least some of these dependencies were - caused by ace/OS.i. - - In ace/Log_Msg.cpp we had to add !defined(ACE_HAS_PHARLAP) to a - few more places in addition to the ones Bruce Trask had posted - to avoid reference to the NT Eventlog functionality. - - At the top of ace/Log_Msg_NT_Event_Log.h and - ace/Log_Msg_NT_Event_Log.cpp we added !defined(ACE_HAS_PHARLAP) - to completely bypass the contents of these two files. - - * ace/DEV_Addr.i (addr_to_string): - * ace/Local_Tokens.i (name): - * ace/Module.i (name): - * ace/OS.i (asctime_r): - * ace/SPIPE_Addr.i (addr_to_string): - * ace/UNIX_Addr.i (addr_to_string): - * ace/SString.i (rep): Changed uses of strncpy() to ACE_OS::strsncpy(). - Thanks to Alain Decamps for these fixes. - -Fri Nov 2 14:38:49 2001 Douglas C. Schmidt - - * ace/Task.h (ACE_Task_Base): Clarify the meaning of the put() - hook method. Thanks to Tommy Svensson - for motivating this. - -Mon Nov 5 14:23:12 2001 Chad Elliott - - * ace/ACE.cpp: - - Remove a build warning for gcc 2.95.3 on SunOS 5.6. - -Mon Nov 5 14:21:30 2001 Chad Elliott - - * bin/nightlybuilds/builds.lst: - - Added the HP-UX nightly build back to the list. - -Mon Nov 5 13:31:15 2001 Chad Elliott - - * ace/ACE.cpp: - - Fix a build warning for 64-bit HP-UX. - - * ace/Active_Map_Manager_T.i: - - Cast the free list id to ACE_UINT32 to match up with the - slot_index () type. On 64-bit HP-UX, the free list id type - (size_t) is a 64 bit number and must be cast down to 32 bits. - Otherwise, the slot_index is cast up to 64 bits and does not give - the correct results. - - * include/makeinclude/platform_hpux_aCC.GNU: - - Add a -L./ to allow the 64-bit HP-UX builds to link properly. - -Mon Nov 5 11:17:20 2001 Carlos O'Ryan - - * bin/auto_compile: - Add support for the new status.txt file in the scoreboard. - -Mon Nov 5 13:02:50 2001 Chad Elliott - - * ace/config-hpux-11.00.h: - - Added #define of ACE_HAS_CHARPTR_DL. This corresponds with the - declaration of dlopen(char*,unsigned int). - - * ace/OS.cpp: - - Changed the default thread scope to system (similar to Linux). - Process thread scope is not supported in HP-UX. - -Sun Nov 04 11:18:31 2001 Nanbor Wang - - * ace/OS.cpp (fopen): Changed to forward call to fopen instead of - _fopen on non-borland compilers when not using UNICODE. This - change allows the code to compile on Win98. Thanks to Jstwo - for submitting the fix. - -Thu Nov 1 16:21:51 2001 Chris Cleeland - - * bin/auto_run_tests.pl: Added snippet of code that puts the - current directory ('.') in the PATH environment variable since - auto_run_tests.pl depends on the current directory being there. - -Thu Nov 1 15:49:04 Balachandran Natarajan - - * include/makeinclude/platform_osf1_4.x_cxx.GNU: Moved the - CXX_VERSION definition to the global scope. - - * include/makeinclude/platform_tru64_cxx.GNU: Added - -D_PTHREAD_ENV_DECCXX flag to the CPPFLAGS. This is done only - for v5.1, 1885. The pthreads.h in 1885 is messed up. The - conditional include of c_asm.h is busted for DECCXX and - v1885. Hence the change. We need to do this to protect ACE and - TAO applications on this platform and compiler - combinations. Thanks to Don Hinton for - reporting the problem. - -Thu Nov 1 14:25:52 2001 Jeff Parsons - - * ace/config-win32-borland.h: - - Added fix sent in by Chris Kohlhoff - to ACE_CC_PREPROCESSOR_ARGS to enable the recognition of a - filename to which the preprocessor output is to be directed. - There is also a corresponding fix in TAO_IDL/driver/drv_preproc.cpp - that carries out the redirection. - -Thu Nov 1 10:27:21 2001 Ossama Othman - - * ace/Select_Reactor_Base.h (open): - * ace/Select_Reactor_T.h (ACE_Select_Reactor_T, open): - - Added a note about the "size" of the Select_Reactor on Unix - platforms. On Unix platforms, the size 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 of event handlers maintained by - the Reactor's handler repository. Direct indexing is used for - efficiency reasons. - -Thu Nov 1 06:38:30 2001 Douglas C. Schmidt - - * ace/ACE.cpp: Fixed some minor formatting problems so that - format_hexdump() works properly. Thanks to Kyle Brost - for reporting this. - - * ace/config-win32.h: Include the config-cygwin32.h file when - __CYGWIN32__ is enabled. Thanks to Johnny Willemsen for - reporting this. - - * ace/Synch.i (remove): Added some casts to make certain compilers - happy? Thanks to Guillaume Renaud - for reporting this. - - * ace/OS.i: Updated the Win32 version of ACE_OS::llseek(). Thanks to - Doron Rajwan for reporting this. - -Wed Oct 31 11:25:40 2001 Douglas C. Schmidt - - * ace/OS.h: The ACE_OS::llseek() method must be static! Thanks to - Doron Rajwan for reporting this. - -Tue Oct 30 08:30:16 2001 Douglas C. Schmidt - - * ace/RB_Tree.cpp (operator=): Make sure to check for self-assignment - in the operator=. Thanks to Johnny Willemsen for reporting - this. - -Mon Oct 29 05:23:56 2001 Douglas C. Schmidt - - * ace/Naming_Context.{h,cpp}: Moved ACE_STATIC_SVC_REQUIRE from the - .h file to the .cpp file to avoid multiple definitions. Thanks to - Boris Kaminer for reporting this. - -Sun Oct 28 10:05:32 2001 Douglas C. Schmidt - - * ace/config-macosx.h: - * include/makeincludes/platform_macosx.GNU - Added new fixes to get this to work on MacOS X. Thanks to John - Michael Zorko and Fikri Pribadi - for contributing this. - -Wed Oct 24 23:59:13 2001 Douglas C. Schmidt - - * ace/Configuration_Import_Export.cpp: Fixed a bug where a - check of a pointer was made rather than the character pointed to - by the pointer. Thanks to Juan Jose Comellas - for reporting this. - -Wed Oct 31 16:45:07 2001 Ossama Othman - - * ace/OS.h (llseek): - - Made ACE_OS::llseek() a static method, as it was originally - intended to be. Thanks to Doron Rajwan for - pointing out the problem. - -Tue Oct 30 22:53:57 2001 Ossama Othman - - * ace/Svc_Conf_l.cpp: - - Fixed incorrect #line preprocessor directives. - - * etc/Svc_Conf_l.cpp.diff: - - Regenerated this diff so that it includes recent updates. - -Mon Oct 29 20:12:40 2001 Ossama Othman - - * tests/run_test.lst: - - Added the Proactor test to the list of one-button tests to run. - -Mon Oct 29 20:04:40 2001 Ossama Othman - - * tests/Proactor_Test.cpp: - - More patches from Alexander Libman. The Proactor_Test appears - to finally work on Linux. - -Mon Oct 29 17:49:21 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp: Added some error checks at places where - token where acquired. - -Mon Oct 29 16:59:58 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp (acquire_token): The acquire_token () called - acquire with a sleep hook. It was wrong. It should just unblock - the thread by sending notify. A bad cut and paste error - :(. Thanks to Graeme Clark for reporting - this. This closes [BUGID 1077]. - -Sun Oct 28 20:36:56 2001 Ossama Othman - - * ace/Map_T.i (clone): - - Fixed syntax errors. - - * ace/Svc_Handler.cpp (new): - - Reverted Michael's change. It incorrectly altered the semantics - of the new operator, particularly when compiling with native - exception support enabled. Fixes a warning. - -Sun Oct 28 16:44:20 2001 Ossama Othman - - * ace/Timer_Hash_T.cpp (ACE_Timer_Hash_T): - - Corrected syntax error that was introduced in the changes - described below by removing extraneous trailing bracket. - -Sun Oct 28 13:15:00 2001 Michael Kircher - - * ace/ACE.i: - * ace/Activation_Queue.cpp: - * ace/Bound_Ptr.i: - * ace/Configuration.cpp: - * ace/Configuration_Import_Export.cpp: - * ace/Containers_T.cpp: - * ace/Future.cpp: - * ace/Handle_Gobbler.h: - * ace/Local_Tokens.i: - * ace/MEM_SAP.i: - * ace/Map_T.i: - * ace/Message_Block.cpp: - * ace/OS_Errno.cpp: - * ace/Object_Manager.cpp: - * ace/Obstack_T.cpp: - * ace/Refcounted_Auto_Ptr.i: - * ace/Remote_Tokens.i: - * ace/Strategies_T.cpp: - * ace/Stream.cpp: - * ace/Svc_Handler.cpp: - * ace/Synch_T.cpp: - * ace/TLI.cpp: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Queue_T.cpp: - * ace/Unbounded_Queue.cpp: - * ace/Unbounded_Set.cpp: - - Changed almost all direct usages of operator new in ACE to use - ACE_NEW_RETURN (Exceptions is Dump_T.h). In one case in - Stream.cpp the semantics changed slightly if operator new would - have been overloaded, see the "@@ Michael" comment. - - When new got used with placement most of the usages got - replaced with ACE_NEW_MALLOC_RETURN. In some cases as in - Malloc_T.cpp, Map_Manager.cpp, PI_Malloc.i, Array_Base.cpp - special cases exist, where the macros would have incurred - different semantics and performance penalties. - -Fri Oct 26 07:37:43 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Quoter example will not run in - minimum_corba builds. - -Wed Oct 24 08:04:36 2001 Balachandran Natarajan - - * ace/Reactor.h: Improved the documentation of the - end_reactor_event_loop (). - -Tue Oct 23 10:04:25 2001 Ossama Othman - - * tests/Proactor_Test.cpp: - - Replaced uses of a static global lock with the - ACE_Static_Object_Lock singleton. - - Fixed incorrect uses of the "%l" format specifier. "%d" is the - expected format specifier. - - (Acceptor): - - Initialize the "sessions_" member in the base member initializer - list. Corrects a problem where the session number initially - contained a "garbage" value. - -Mon Oct 22 17:55:00 2001 Craig Rodrigues - - * ace/Svc_Conf_l.cpp: Remove include of stdlib.h, fix g++/Solaris - build. - -Mon Oct 22 15:54:29 2001 Steve Huston - - * ace/config-hpux-10.x-hpc++.h: Remove hard-coded setting of - ACE_HAS_EXCEPTIONS. It is controlled by platform_hpux_aCC.GNU. - -Mon Oct 22 15:50:35 2001 Balachandran Natarajan - - * THANKS: Added Chris Hughes name to the Hall of Fame - -Sun Oct 21 16:44:41 2001 Ossama Othman - - * tests/Proactor_Test.cpp (disable_signal): - - Fixed warnings regarding a method that "hid" virtual function - with the same name, in addition to unused argument warnings. - -Sun Oct 21 15:22:57 2001 Ossama Othman - - * tests/Proactor_Test.cpp: - - Fixed warning about deprecated conversion of "const char *" to - "char *" exhibited by GCC 3.0.x builds. - -Sun Oct 21 12:50:39 2001 Douglas C. Schmidt - - * ace/LSOCK.cpp: The ACE_LSOCK::recv_handle() was returning success - without setting the I/O handle. Thanks to Rick Ohnemus - for reporting this. - - * ace/config-freebsd-pthread.h: Changed - #if (__FreeBSD_version > 430000) to - #if (__FreeBSD_version > 440000) to get ACE to work with FreeBSD 4.4. - Thanks to Gu Song for reporting this. - -Fri Oct 19 06:44:17 2001 Douglas C. Schmidt - - * examples/Reactor/WFMO_Reactor/test_window_messages.cpp: - Don't use a global Event_Handler object since this violates the - design rules for the ACE_Reactor. - -Sun Oct 21 13:39:27 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the Quoter example in - $TAO_ROOT/examples to the list of tests in the daily builds. - -Thu Oct 18 20:56:53 2001 Ossama Othman - - * tests/Proactor_Test.cpp: - - Added no-op main() function for platforms that do not support - asynchronous IO. - -Thu Oct 18 22:46:09 2001 Balachandran Natarajan - - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp: Fixed warnings in Sun CC and TRU 64 builds. - -Thu Oct 18 20:42:55 2001 Ossama Othman - - * tests/Proactor_Test.cpp: - - Fixed Unicode build errors. - -Thu Oct 18 19:52:44 2001 Craig Rodrigues - - * ace/SString.h: clarify example in comments to ACE_Tokenize - so that constant strings are not passed in its constructor. - - * examples/OS/Process/process.cpp: do not pass constant strings - to ACE_Tokenize constructor. Thanks to - Werner Buchert and - Don Hinton . - -Wed Oct 17 23:56:45 2001 Ossama Othman - - * tests/Proactor_Test.cpp: - * tests/Proactor_Test.dsp: - - Proactor test contributed by Alexander Libman - . - - * tests/tests.dsw: - - Added Proactor_Test project to the tests workspace. - -Wed Oct 17 18:59:53 2001 Christopher Kohlhoff - - * include/makeinclude/install.bor: - Borland makefile fix to ensure that, when doing the install - target, core executables are built correctly if they don't - already exist. - -Wed Oct 17 09:15:10 2001 Douglas C. Schmidt - - * ace/config-linux-common.h: Clarified that this file should - not be included directly! Thanks to Suresh N - for reporting this. - -Wed Oct 17 16:00:19 2001 Balachandran Natarajan - - * THANKS: Added Graeme Clark to the Hall of Fame. - -Wed Oct 17 15:49:20 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp: - * ace/TP_Reactor.h: Added remove_handler () calls to the - TP_Reactor. Before this, the call on the reactor used to be - handled by the Select_Reactor's implementation. The - implementation has a problem. It tries to call handle_close () - (an upcall) as one of the calls after holding the token. This - was asking for trouble. This could lead to deadlocks as - mentioned in [BUG ID 1055]. - - The method in the TP_Reactor now calls remove_handler () on the - Select_Reactor (its base class) with a DONT_CALL flag. Then it - calls handle_close () on the Event_Handler if the user did not - pass in the DONT_CALL mask. This two step process would get - around the problem that was mentioned before. Thanks to Graeme - Clark for reporting the problem and - testing this fix. - - This should close [BUG ID 1055]. - -Wed Oct 17 10:40:17 2001 Ossama Othman - - * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): - * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): - - If errno is set to EWOULDBLOCK for the SSL_ERROR_SYSCALL case, - then continue the connection establishment loop. Do not return - right away. Fixes non-blocking connection establishment on AIX. - Thanks to Vladimir Chovanec for - providing this fix. - - * ace/SSL/SSL_SOCK_Stream.h (notify): - - Made this method protected. It isn't intended to be used - internally by the ACE_SSL_SOCK_Stream class. - -Wed Oct 17 12:15:15 2001 Chris Cleeland - - * ace/Select_Reactor_T.cpp (handle_error, check_handles): Add - vxworks to the ever-growing list of OSs which return - unpredictable values in errno when there's a bad file descriptor - in a select mask. [Bug 1058]. - - Thanks to Dave Arndt , Tad Hetke - , and Erik Johannes - for tracking down and providing this fix. - -Tue Oct 16 23:08:27 2001 Ossama Othman - - * ace/Svc_Conf.h (ACE_Svc_Conf_Param): - - Added a new ACE_Obstack attribute that is passed down to the - parser and scanner. This obviates the need for the global - pointer to the ACE_Obstack that was formally used, which in turn - avoids a race condition. - - (ace_obstack): - - No longer a need to maintain a global pointer to the ACE_Obstack - instance used during parsing/scanning. - - * ace/Svc_Conf.y: - * ace/Svc_Conf.l: - - Retrieve the Obstack from the parameter passed down to yyparse() - and yylex() instead of using the (now non-existent) global - instance. This is part of a race condition fix. - - * ace/Svc_Conf_y.cpp: - * ace/Svc_Conf_l.cpp: - - Updated to pull in the changes made to the source files from - which these files were generated. - - * ace/Service_Config.cpp (process_directives_i): - - The global ACE_Obstack pointer used during each Service - Configurator parse has been removed. An ACE_Obstack instance is - now passed down to the parser and scanner in a - reentrant/thread-safe manner via the new ACE_Svc_Conf_Param - parameter. As such, there is no longer any need to maintain a - global pointer to the ACE_Obstack instance in use, nor is it - necessary to store/restore the previous value when performing - nested or parallel Service Configurator directive processing. - This fixes a race condition that was causing some memory - corruption when parsing Service Configurator directives in - parallel. - - Note that the ACE_Obstack is now instantiated on the stack - rather than the heap, thus improving Service Configurator - directive processing performance. - -Mon Oct 15 23:16:55 2001 Ossama Othman - - * ace/Service_Config.h (process_directives_i): - - Updated the signature of this method to accept a parameter that - will eventually passed to the parser and the scanner. - - * ace/Service_Config.cpp: - - No need to include "ace/Svc_Conf_Lexer_Guard.h" and - "ace/Object_Manager.h". - - (process_directives_i): - - Updated the signature of this method to accept a parameter that - will eventually passed to the parser and the scanner. - - Pass the "ACE_Svc_Conf_Param" parameter to the yyparse() call. - This is reentrant/thread-safe. - - Check the error count found in the "ACE_Svc_Conf_Param" object. - It's count is incremented in a thread-safe/reentrant manner. - - (process_directive, process_directives): - - The ACE_Svc_Conf_Lexer_Guard and its accompanying - synchronization has been moved to the generated scanner code. - This makes locking finer grained. Specifically, instead of - holding a lock for the duration of the scope within which - service configurator directive parsing and scanning is - performed (e.g. for the duration of the yyparse() call), the - lock is only held for the duration of the scope where service - configurator directive scanning occurs (i.e. the entire yylex() - call is synchronized). This is part of the core fix that - corrects a deadlock that occurred when activating an ACE_Task, - in conjunction with the singleton instance of the - ACE_Thread_Manager, during Service Object initialization. - [Bug 1036] - - * ace/Service_Config.i: - - Cosmetic update. - - * ace/Svc_Conf.h: - - Added declaration and method definitions for the - ACE_Svc_Conf_Param class. Instances of this class contain the - state used when parsing/scanning a given service configurator - file or service configurator directive. - - (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): - - There is no longer any hard-coded limit on the maximum depth - nested service configurator directives may be processed. Only - process resource limits limit the maximum nesting depth. - - (ace_yyparse, ace_yylex): - - Updated the parser and lexer entry points to accept an - additional parameter, i.e. a pointer to an ACE_Svc_Conf_Param - object. - - (ace_yy_push_buffer, ace_yy_pop_buffer): - - Pass a pointer to the buffer that will be "switched" in our out - when processing nested service configurator directives those - that are processed in parallel. - - * ace/Svc_Conf.l: - - Removed array that implemented the service configurator - directive stack. The "stack" is now implemented using the - function call stack itself. Hence there is no hard-coded limit - to the stack size. - - Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, - COLON, STAR}. Just return their corresponding symbolic integer - constants (e.g. ACE_COLON --> ':'). - - Increment error and line count in the ACE_Svc_Conf_Param object - passed to the yylex() function from yyparse(). This improves - reentrance/thread-safety when tracking error counts. - - (yy_push_buffer, yy_pop_buffer): - - Pass a pointer to the buffer that will be "switched" in our out - when processing nested service configurator directives those - that are processed in parallel. - - * ace/Svc_Conf.y: - - Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, - COLON, STAR}. Just use their corresponding symbolic integer - constants (e.g. ACE_COLON --> ':'). - - Increment error and line count in the ACE_Svc_Conf_Param object - passed to the yylex() function from yyparse(). This improves - reentrance/thread-safety when tracking error counts. - - * ace/Svc_Conf_Lexer_Guard.h: - - Store a pointer the lexer buffer currently being scanned. - - * ace/Svc_Conf_Lexer_Guard.cpp: - - Updated constructor to accept a pointer to an ACE_Svc_Conf_Param - object. If the buffer in that object is zero, it will be - initialized. - - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - * ace/Svc_Conf_Tokens.h: - - Regenerated these files in order to pull in the updates made to - their corresponding source files (i.e. Svc_Conf.{l,y}). - -Mon Oct 15 11:26:39 2001 Steve Huston - - * examples/C++NPv2: New directory for examples in "C++ Network - Programming, Volume 2: Systematic Reuse with ACE and Frameworks" - Moved these changes to the new directory, and reverted the - C++NPv1 files to their ACE 5.2 state: - Sun Oct 14 17:05:14 2001 Douglas C. Schmidt - Tue Oct 9 07:46:20 2001 Douglas C. Schmidt - -Sun Oct 14 17:05:14 2001 Douglas C. Schmidt - - * examples/C++NPv1/Logging_Handler.{h,cpp}: Changed log_file_ from - a reference to a pointer so that it can be initialized - correctly. Thanks to Kitty for reporting this. - -Fri Oct 12 14:54:58 2001 Craig Rodrigues - - * ace/OS.i: - Remove extraneous check for macro ACE_HAS_WINSOCK2_GQOS, - which was breaking various builds under Windows. - Thanks to Jeff McNiel for pointing it out. - -Fri Oct 12 12:15:22 2001 Carlos O'Ryan - - * bin/nightlybuilds/builds.lst: - The QNX machine is no longer running that OS, plus attempts to - bring it back to life failed. The build is removed until - further notice. - -Thu Oct 11 17:52:32 2001 Priyanka Gontla - - * ace/SOCK_Dgram_Mcast.cpp: - Somehow the file didnt get committed yesterday. So, committing - the following change now. - - Wed Oct 10 16:56:18 2001 Priyanka Gontla - -Thu Oct 11 10:57:58 2001 Carlos O'Ryan - - * ace/RB_Tree.h: - * ace/RB_Tree.i: - * ace/RB_Tree.cpp: - Reverted to the 5.2 release state. The proposed changes were - breaking some builds, and they were not bug fixes in any case. - -Wed Oct 10 16:56:18 2001 Priyanka Gontla - - * ace/SOCK_Dgram_Mcast.cpp: - Reverted the following change as it ended up with some problems - for multicast services. - - Fri Oct 5 14:40:03 2001 Balachandran Natarajan - -Wed Oct 10 06:16:52 2001 Douglas C. Schmidt - - * ace/Activation_Queue.{h,cpp}: Added support for two ACE_Allocator that - will control how the message blocks and data blocks are - allocated. Thanks to Gil Rapaport - for contributing this. - - * examples/Reactor/WFMO_Reactor/test_apc.cpp (main): - * examples/Reactor/WFMO_Reactor/test_abandoned.cpp (main): Don't - use a global Event_Handler since this violates the design rules - for the ACE_Reactor. Thanks to Heping He - and Hartmut Quast - for reporting this and to Irfan for - suggesting where the problem arose. - -Tue Oct 9 07:46:20 2001 Douglas C. Schmidt - - * examples/C++NPv1/Logging_Handler.h: Added a new constructor to - class Logging_Handler that just takes an ACE_SOCK_Stream. We - need to use this in C++NPv2. - - * ace/Message_Queue_T.cpp (wait_not_full_cond): Thanks to Leo Kov - for reporting this. - - * ace/TTY_IO.cpp (control): Inserted some useful - ACE_OS::set_errno_to_last_error() calls. Also, for Win32 made - readtimeoutmsec == 0 cause no timeout, whereas readtimeoutmsec - == MAXDWORD causes infinite timeout. Thanks to Lars Steubesand - for reporting this. - -Mon Oct 8 20:19:44 2001 Nanbor Wang - - * examples/DLL/test_dll.cpp: There's no need to specify - ACE_DLL_SUFFIX as it prevent ACE_Lib_Find to figure out the - correct DLL name. - - The ACE_ERROR_RETURN macro store and reset the errno so there's - no need to use dll.error() with it. Changed to use "%p" to - display the error. - - Thanks to Heping He for reporting - the problem. - -Mon Oct 8 11:15:21 2001 Angelo Corsaro - - * ace/RB_Tree.h (class ACE_RB_Tree_Node): - * ace/RB_Tree.i: - - Changed access privilege on the operator new/delete to be - public, and added assertion in those method implementation to - make sure that wrong use of these method are promptly notified. - This changes should fix the problem that some compiling were - still having with RB_Trees. - -Sat Oct 06 23:06:41 2001 Ossama Othman - - * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): - * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): - * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i, close): - - Removed the do/while(SSL_pending()) loop. Its introduction into - the code was a bit misguided. There is no need to flush the SSL - buffer before returning to the Reactor's event loop since the - code now sends a notification to the Reactor to force the - Reactor to invoke the event handler before waiting in the event - loop. This fixes some SSL protocol errors that manifested - during multithreaded SSL communication. [Bug 943] - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - - It is no longer necessary to call SSL_accept()/connect() to - flush the SSL buffer before running the Reactor's event loop - since the Reactor is notified that it should call the - appropriate event handler before blocking on select() for - WaitForMultipleObjects(), for example. - - * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): - - New methods to set the Reactor and event handler associated with - the ACE_SSL_SOCK_Stream. If each of these is set, then the - Reactor will be notified if data is still pending in the SSL - buffer. - - (~ACE_SSL_SOCK_Stream): - - Uninlined the destructor. There is no need for it to be - inlined, and doing so only caused unnecessary code bloat. - - * ace/SSL/SSL_SOCK_Stream.h (notify, reactor, handler): - - Added these new method declarations, in addition to the - corresponding attributes. - - Updated documentation. - - * ace/SSL/SSL_SOCK_Stream.i (notify): - - Method that pushes the event handler on to the Reactor's - notification pipe when necessary. Invoked by recv_i() and - send_i(). - - * ace/SSL/SSL_SOCK_Acceptor.h: - * ace/SSL/SSL_SOCK_Connector.h: - * ace/SSL/SSL_Accept_Handler.h: - * ace/SSL/SSL_Connect_Handler.h: - - Updated documentation. - -Sat Oct 6 16:04:29 2001 Angelo Corsaro - - * ace/RB_Tree.h: - * ace/RB_Tree.i: - - The operator new and delete were declared to be No-Op but were - not implemented as such. This was breaking some builds. Now the - operator are declared as private and they also have a no-op - implementation. This should solve some linking error that were - occurring. - -Sat Oct 6 11:17:22 2001 Balachandran Natarajan - - * THANKS: Added Adrian Mercieca to the hallf of fame. - -Fri Oct 05 18:30:59 2001 Irfan Pyarali - - * ace/RW_Process_Mutex.cpp: Added inclusion ACE.h and fixed member - initialization. - -Fri Oct 5 18:16:53 2001 Balachandran Natarajan - - * ace/SString.h: - * ace/SString.cpp: Changes the usage of ostream to - ACE_OSTREAM_TYPE. Thanks to Russ Noseworthy for letting us - know. - -Thu Oct 4 07:10:01 2001 Douglas C. Schmidt - - * ace/RB_Tree.*: Added support for using the "ACE_Allocator" parameters - to manage memory. Thanks to Airat A. Sadreev - for reporting contributing this. - -Wed Oct 3 07:20:06 2001 Douglas C. Schmidt - - * ace/RW_Process_Mutex.{h,cpp}: Added the ability to create a - unique name if the user doesn't supply one. Thanks to Tom - Wagner for suggesting this. - - * ace/Synch.h: Clarified that the timed wait capabilities of - ACE_Semaphore only work on Solaris if ACE_HAS_PTHREAD is enabled - *and* ACE_HAS_POSIX_SEM/ACE_HAS_STHREAD are disabled. Thanks to - Bonifides Bautista for reporting this. - -Fri Oct 5 12:48:48 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.i (close): - - Reset the SSL object to allow another connection to be made - using the existing ACE_SSL_SOCK_Stream instance. This prevents - the previous SSL session state from being associated with the - new SSL session/connection. Thanks to Vladimir Chovanec - for pointing out this problem and - suggesting a course of action. - -Fri Oct 5 14:40:03 2001 Balachandran Natarajan - - * ace/SOCK_Dgram_Mcast.cpp (open): Removed the #if defined (linux) - from the code. Looks like this had to be removed to get it - working for RTI under Linux. The other ChangeLog entries that - this change is concerned with are "Sat Feb 17 17:23:46 2001 - Darrell Brunsch " and "Fri Jan 26 11:18:15 2001 - Douglas C. Schmidt". Looks like the patch provided by Keith - Nicewarner is being reverted. I remember - a communication from Keith which seemed to hint that this may - not be required. - - Thanks to Russ Noseworthy for suggesting this. - -Fri Oct 5 14:04:39 2001 Balachandran Natarajan - - * THANKS: Added Hagen Ulrich to the Hall of Fame. - -Fri Oct 5 13:55:02 2001 Balachandran Natarajan - - * ace/Makefile: Removed the SUPPRESS_DASH_G option. Not really - sure where it is used. Further, added a tab to the place where - rules for CHORUS are set. This should fix BUGID 1049. Thanks to - Hagen Ulrich and Dr.David Levine for - reporting and verifying the fix. - -Fri Oct 05 05:56:50 2001 Balachandran - - * ACE version 5.2 released. - -Thu Oct 4 17:38:21 2001 Steve Huston - - * ace/Synch.h: Added some comments to explain the rationale for - the different return values from the blocking and timed - versions of ACE_Null_Semaphore::acquire(). Thanks to Doug - Schmidt for explaining this. - -Thu Oct 4 17:27:39 2001 Steve Huston - - * examples/C++NPv1/Logging_Handler.cpp (recv_log_record): Insure that - the payload message block is properly aligned for any CDR - extraction. Many thanks to Bala for noticing this problem and - sending code for the fix. - -Thu Oct 4 17:08:39 2001 Steve Huston - - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - In prepare(), call ACE_Process_Options::command_line() rather - than ACE_Process_Options::process_name() to set the program - path for the child process. - -Thu Oct 4 13:18:37 2001 Steve Huston - - * examples/C++NPv1/Logging_Handler.cpp: Use a ACE_Message_Block, - rather than hijacking a CDR block, to read the payload into. - -Thu Oct 4 10:14:34 2001 Balachandran Natarajan - - * THANKS: Added Donald Acton to the Hall of Fame. - -Thu Oct 4 06:39:20 2001 Balachandran Natarajan - - * ace/config-sunos5.5.h: Added ACE_LACKS_MKSTEMP as SunOS 5.5 does - not support mkstemp (). - - * ace/config-sunos5.6.h: Undefined ACE_LACKS_MKSTEMP as Sun 5.6 - and above support it. - - Thanks to Don Hinton for reporting this - problem and Chad Elliott for testing this out on a Sun OS 5.5 - box. - -Wed Oct 3 16:37:41 2001 Balachandran Natarajan - - * ace/CDR_Stream.cpp (read_1): Reverted this change "Wed Oct 3 - 15:05:43 2001 Jeff Parsons ". This - change is alone not enough to fix the problem that Brad - reported. The sample program for the text needs to be fixed to - get it working right. - -Wed Oct 3 15:05:43 2001 Jeff Parsons - - * ace/CDR_Stream.cpp (read_1); - - Reverted changed made in - - Fri Aug 17 16:56:16 2001 Jeff Parsons - - to read_1(). A similar change made in several other methods is - ok, but in this case bytes can be copied into the input CDR - stream without changing wr_ptr, so the check will fail - unnecessarily. Thanks to Brad Hoskins - for pointing this out. - -Wed Oct 2 12:18:37 2001 Steve Huston - - * examples/C++NPv1/Logging_Server.cpp: Fixed spelling error. - * examples/C++NPv1/Logging_Handler.cpp: Comment length adjustment. - -Tue Oct 2 21:52:31 2001 Steve Huston - - * examples/C++NPv1/Logging_Client.cpp: Reverted this: - Mon Oct 1 18:27:41 2001 Steve Huston - -Tue Oct 2 19:52:57 2001 Balachandran Natarajan - - * Makefile: Removed some of the files that no longer exist in the - repository. The inclusion of these files in the Makefile added - noise during the beta cutting process. - -Tue Oct 02 15:34:49 2001 Carlos O'Ryan - - * etc/tao_cosevent.doxygen: - * etc/tao_cosnotification.doxygen: - Fixed typos in the tag file names. - -Tue Oct 2 15:52:27 2001 Balachandran Natarajan - - * THANKS: Added Sunny Leung to the Hall of Fame. - -Tue Oct 2 15:33:36 2001 Balachandran Natarajan - - * THANKS: Removed one instance of Peter Phillips - from the Hall of Fame. - -Tue Oct 2 15:00:37 2001 Balachandran Natarajan - - * ace/CDR_Stream.cpp (clone_from): Copied the GIOP major and minor - versions from the incoming CDR stream. Thanks to Sunny Leung - for reporting this. This closes bugzilla - #1043. - -Tue Oct 2 09:45:39 2001 Steve Huston - - * tests/libDLL_Test.icc: - * tests/libService_Config_DLL.icc: Add link(exportAll) to the link - options to export the entrypoints needed for the tests. - -Mon Oct 1 20:04:14 2001 Priyanka Gontla - - * THANKS: - Added Tushar Nair to the THANKS file. - -Mon Oct 1 18:06:48 2001 Priyanka Gontla - - * ace/Object_Manager.cpp (ACE_UnhandledExceptionFilter): - Removed the un-needed #if 0's. Left them before as a safety - measure (in case something doesnt work) and forgot to remove - them later. - - * ace/Log_Msg.cpp (instance): - Fixed the seg faults that are raised when ace is compiled with - ACE_NTRACE=0 on SunOS. Added a check before locking and - releasing a lock. - - Thanks to Tushar Nair for reporting the - problem and for providing a fix. - -Mon Oct 1 18:27:41 2001 Steve Huston - - * examples/C++NPv1/Logging_Client.cpp: Remove the third (optional) - arg from getline(). Using a char literal without further - qualification causes confusion in Unicode builds. - -Mon Oct 1 14:44:13 2001 Ossama Othman - - * ace/SSL/SSL_Context.cpp (ssl_library_init): - - Initialize the locking callbacks in the crypto library before - initializing the OpenSSL library. OpenSSL may require the - locking callbacks to be initialized before its own - initialization. - - * ace/SSL/SSL_Context.cpp (ssl_library_fini): - - Perform crypto library resource cleanup before reclaiming the - locks used by the locking callbacks. Crypto library resource - cleanup makes use of the locking callbacks. - -Mon Oct 1 15:19:11 2001 Douglas C. Schmidt - - * examples/C++NPv1/README: Added a section that illustrates the - mapping of chapters onto files in the directory. - -Mon Oct 1 12:58:57 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp (handle_socket_events): A fix for the problem - that started showing up this time is like this. One of the - threads was dispatching an upcall. In the intermediate time the - Reactor woke up another thread to close the handler, remember - that this is possible with the TP_Reactor if the application - resumes the handles (the way TAO does that). Now when the thread - that that dispatched the upcall returned it tries to invoke a - method on the already closed handle. To prevent that from - happening we make an extra check to see whether the handle - associated with the handler is still available in the internal - map of the Reactor. As this check is done in the return path of - the thread this should have less performance impact. This is - another reason why we should have #1031 in place ASAP. - -Mon Oct 1 12:23:57 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst (WEB): Changed the name of the - Sun's EGCS build. We have not been using EGCS but 2.95.x for a - long time now. - -Mon Oct 1 10:46:15 2001 Balachandran Natarajan - - * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Removed the - word "ERROR" when files are left behind. This was creating noise - in the daily builds. We have captured the problem in the - bugzilla with id #1014. After 1.2 goes out, if someone is - looking at this problem again we need to add this back so that - our daily builds can pick them up. - -Sun Sep 30 17:25:33 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): - - Reset errno to prevent previous values (e.g. EWOULDBLOCK) from - being associated with a fatal SSL error (e.g. an alert). - -Sun Sep 30 16:52:22 2001 Ossama Othman - - * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_shutdown): - - Return the "retval" variable instead of always returning -1. - The actual return value may not always be -1. Thanks to Alain - Totouom for providing this fix. - - * THANKS: - - Added Alain to the list of contributors. - -Sun Sep 30 09:13:04 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - - Made reactor mask constant to emphasize the fact that it is - indeed a constant. - -Sat Sep 29 08:07:07 2001 Douglas C. Schmidt - - * ace/Configuration.{h,cpp}: Changed "allocator" to "alloc" to - avoid bugs with MSVC++ 5.0. Thanks to Munagala Ramanath - for reporting this. - - * ACE-INSTALL.html: Yet more improvements courtesy of Chris - Kohloff. - -Fri Sep 28 23:38:07 2001 Ossama Othman - - * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): - - Cleaned up the code. - - Do not attempt to verify the X.509 certificate. Only the - application knows how best to do that. - - * ace/SSL/SSL_Context.cpp (ssl_library_init): - - Fixed some Unicode problems. Wrap strings within an ACE_TEXT - macro. - - * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): - * ace/SSL/SSL_SOCK_Stream.i: - - Corrected some comments. - - * ace/SSL/SSL_SOCK_Stream.h (send_n, recv_n): - - Added a "bytes transferred" pointer parameter. This allows the - amount of bytes transferred to returned via this parameter, thus - matching the semantics of their ACE_SOCK_Stream counterparts. - - * ace/SSL/SSL_SOCK_Stream.cpp (send): - - Do not block attempt a timed send() if data is available in - OpenSSL's internal buffer. This prevents a condition where - needlessly blocking on select() would occur. A similar fix for - recv() was made earlier. See Fri Aug 24 16:54:02 2001 Ossama - Othman for details. - - (send_n, recv_n): - - If the "bytes transferred" pointer parameter is non-zero then - return the amounts of bytes transferred through it. This makes - these methods better match the semantics of their - ACE_SOCK_Stream counterparts. - -Fri Sep 28 19:24:51 2001 Steve Huston - - * ace/config-hpux-11.00.h: Moved the definitions for ACE_HAS_WCHAR - and ACE_HAS_XPG4_MULTIBYTE_CHAR from the compiler-independent - section to the aC++ section. (at least) gcc 3.0 distributed from - HP can't handle compiling wide char stuff... it refers to - wctype.h, only available in aC++. - -Fri Sep 28 12:46:25 2001 Ossama Othman - - * ace/SSL/SSL_Context.cpp (report_error): - - Don't bother displaying an error message if the error code is - zero (i.e. no error). - -Fri Sep 28 12:31:39 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - - Transfer ownership of the Reactor to the previous owner for the - SSL_ERROR_ZERO_RETURN case. Thanks to Vladimir Chovanec - for pointing out this problem. - - Remove the SSL event handler from the reactor for the - SSL_ERROR_ZERO_RETURN case. Previously, this method returned - without removing it, resulting in a seg fault. - - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - - Ported the updates made to the ssl_accept() counterpart to this - method. - - * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): - * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): - * ace/SSL/SSL_SOCK_Stream.i (send_i): - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - - In the event a SSL_ERROR_SYSCALL error condition occurs, call - ACE_OS::set_errno_to_last_error() to make sure errno is updated - appropriately since OpenSSL does not do that. Fixes some - "misbehaving" Reactor interactions. Thanks to Andrew Finnell - for tracking down the problem - and suggesting these fixes. - -Fri Sep 28 09:37:28 2001 Ossama Othman - - * ace/SSL/SSL_Context.h (report_error): - * ace/SSL/SSL_Context.cpp (report_error): - - New SSL error reporting functions that use the ACE_Log_Msg - facilities to dump error information. - - * ace/SSL/SSL_Context.cpp (set_mode): - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): - * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): - * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): - - Use the new report_error() static method to display error - information instead of OpenSSL's ERR_print_error_fp(). - - * ace/SSL/SSL_SOCK_Connector.cpp: - - Include 'ace/Log_Msg.h' to pull ACE_ERROR macro definitions. - Fixes compile-time problems on Tru64. Thanks to Martin - Krumpolec for providing this fix. [Bug 1034] - - (ACE_SSL_SOCK_Connector): - - Wrap format specifier string in ACE_ERROR call with ACE_TEXT. - Fixes mismatched Unicode/non-unicode strings. - -Fri Sep 28 06:17:27 2001 Douglas C. Schmidt - - * ace/SPIPE_Acceptor.{h,cpp}: Fixed the use of "char" for - "already_connected_" to be "int". Thanks to Johnny Willemsen - for reporting this. - - * ACE-INSTALL.html: Improved the installation instructions for BCB 4/5. - Thanks to Chris Kohloff for contributing this and to - Jan Kalin for motivating this. - - * ace/TTY_IO.cpp: Fixed numerous bugs in the control() method. - Thanks to Airat A. Sadreev for reporting this. - - * ace/TTY_IO.h: Add a new field for Win32. Thanks to - Airat A. Sadreev for reporting this. - -Thu Sep 27 06:12:21 2001 Douglas C. Schmidt - - * ace/config-win32.h: Added a special-case for Borland C++ Builder, - which must include vcl.h before windows.h. Thanks to Chris - Kohloff for reporting this. This fixes Bug ID 899 for the time - being. - - * ace/Module.cpp (ACE_Module): The line - - this->name (""); - - was be replaced with - - this->name (ACE_TEXT("")); - - Thanks to Airat A. Sadreev for - reporting this. This fixes bug id 1041. - -Thu Sep 27 13:09:19 2001 Bala - - * ACE version 5.1.21 released. - -Tue Sep 25 16:12:14 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.i (recv_i): - - Use ACE_OS::set_errno_to_last_error() set errno instead of doing - so manually to get around broken compilers that reset the last - error when assigning to errno. Thanks to Chris Kohloff for - pointing out the problem and suggesting this fix. - -Tue Sep 25 13:00:37 2001 Nanbor Wang - - * ace/Obstack.h: Fixed a typo when declaring ACE_Obstack - exportable. I mistakenly used the underlying - ACE_EXPORT_SINGLETON_DECLARATION macro directly. - ACE_SINGLETON_DECLARATION is the right macro to use here. - Thanks to Martin Krumpolec for reporting - the bug. - -Tue Sep 25 09:12:28 2001 Andrew Finnell - - * ace/SSL/SSL_SOCK_Stream.i (recv_i): - - On MS Windows, OpenSSL does not store the last error in errno so - explicitly do so. This corrects problems where a server is - unaware that a client has forcefully disconnected. - -Tue Sep 25 00:01:59 2001 Irfan Pyarali - - * ace/Service_Repository.cpp (instance): There are three stages of - the Object Manager: (a) starting up; (b) running; (c) shutdown. - ACE_Service_Repository::instance() was not creating a new - instance in (a) and (c). It was changed to allow creation (a). - -Mon Sep 24 01:55:29 2001 Ossama Othman - - * bin/auto_run_tests.lst: - - Added TAO's PICurrent test to the list of automated regression - tests. - -Sun Sep 23 19:28:06 2001 Nanbor Wang - - * ace/Reactor.h (ACE_Reactor): Fixed comments for - and . Both - methods work on an instance of reactor, not the global singleton - reactor. Thanks to Doug for noticing this. - -Sun Sep 23 10:02:59 2001 Balachandran Natarajan - - * ace/High_Res_Timer.h: Removed a question mark "?", in a line - which read "or sometimes 3.579 Mhz??". This seems to remove the - warning in VXWORKS builds. I have no clue about the problem that - VXWORKS compiler sees. It took only more than an hour to figure - this out. :(. - -Sat Sep 22 08:59:24 2001 Douglas C. Schmidt - - * ace/Service_Manager.cpp (handle_input): Added some logic to - strip off newlines and carriage returns for Windows platforms. - Thanks to Kyle Brost for contributing - this. - -Sat Sep 22 12:28:21 2001 Ossama Othman - - * ace/SSL/ACE_SSL_LIB.dsp: - - Corrected code generation settings to use the multi-threaded DLL - version of the run-time library. Corrects "legacy" build - problems. - -Sat Sep 22 08:59:24 2001 Douglas C. Schmidt - - * ace/High_Res_Timer.{h,i,cpp}: Added comments to explain how - to configure the timers properly on various platforms. Thanks - to Alain Decamps for reporting this. - - * ace/OS.i (ACE_Flow_Spec): Added a check for ACE_HAS_WINSOCK2_GQOS - so that things will compile properly on MinGW32. Thanks to Jeff - McNiel for reporting this. - -Fri Sep 21 15:54:55 2001 Douglas C. Schmidt - - * ace/OS_Dirent.cpp: Fixed all the allocations so they work properly - when used with ACE_TCHAR! Thanks to Olof Lindfors - . - -Tue Sep 18 06:25:22 2001 Douglas C. Schmidt - - * ace/*Reactor*: Changed all uses of "delta_time" to "delay_time". - Thanks to Johnny Willemsen for reporting this. - -Sun Sep 16 11:53:38 2001 Douglas C. Schmidt - - * ace/Connector.cpp (handle_output): Fixed the comment to be - ACE_WIN32. Thanks to Kobi Cohen-Arazi for - reporting this. - -Fri Sep 21 17:11:52 2001 Balachandran Natarajan - - * ace/Message_Block.h: Tried rewording some comments in the - ACE_Message_Block. Thanks to Tom Wagner for - suggesting this. - - * THANKS: Added Tom Wagner to the Hall of - Fame. - -Fri Sep 21 22:11:53 2001 Ossama Othman - - * ace/SSL/ACE_SSL_LIB.dsp: - - Removed hardcoded user-specific include paths, and user-specific - preprocessor macro definitions. - -Thu Sep 20 18:15:49 2001 Steve Huston - - * tests/Config_Test.cpp: Added some more tests to verify correct - string value reset and enumerate values/sections. - -Thu Sep 20 12:29:09 2001 Ossama Othman - - * ace/SSL/ACE_SSL_LIB.dsp: - * ace/SSL/ACE_SSL_LIB.dsw: - - New static build MSVC++ project and workspace files for the - ACE_SSL library contributed by Jonathan Reis . - [Bug 1032] - -Thu Sep 20 12:16:13 2001 Ossama Othman - - * ace/SSL/SSL_SOCK.cpp (enable, disable): - - Removed unreachable "return" statements. [Bug 1033] - - * ace/SSL/SSL_SOCK_Stream.i (ACE_SSL_SOCK_Stream): - * ace/SSL/SSL_SOCK_Stream.cpp: - - Moved constructor to the ".cpp" file since to prevent inclusion - of `ace/Log_Msg.h' in `SSL_SOCK_Stream.h'. This fixes problems - with some platforms needing the Log_Msg include to pull in the - ACE_ERROR macros without needlessly increasing inter-header - dependencies and inclusions. [Bug 1034] - -Thu Sep 20 14:44:29 2001 Steve Huston - - * ace/Process.cpp (ACE_Process_Options): Moved avoid_zombies_ - initialization outside the !Win32 section. Thanks to Johnny - Willemsen for this fix. - -Thu Sep 20 06:28:50 2001 Chad Elliott - - * ace/config-hpux-11.00.h: - - Reverting the change from "Wed Aug 29 15:32:10 2001 Douglas C. - Schmidt ". HP-UX 11.00 does - not actually support pread/pwrite. - -Wed Sep 19 16:56:02 2001 Irfan Pyarali - - * ace/OS.h (THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM): Added - definitions for THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM on - platforms that do not support threads. - -Wed Sep 19 16:54:04 2001 Jeff Parsons - - * ace/Containers_T.cpp: - - In copy constructor for ACE_Double_Linked_List, added line to - copy the size of the rhs to the lhs. The new list was ending - up with a garbage value for its size. - -Wed Sep 19 14:15:08 2001 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Enabled generation of debug info even for - release configurations. Thanks to Jonathan Reis - for suggesting this. - -Wed Sep 19 10:23:06 2001 Carlos O'Ryan - - * html/index.html: - Add couple of missing links to the RT-CORBA components - -Wed Sep 19 12:00:04 2001 Johnny Willemsen - - * ACE-INSTALL.html: - Added BCB5 to some places as supported/used compiler - - * ace/Future.h: - * ace/Test_and_Set.h: - Removed the ACE_EXPORT from the templates ACE_Future_Holder and - ACE_Test_and_Set - - * ace/Service_Config.{h,cpp}: - Changed the type of the members be_a_daemon_ and no_static_svcs_ - from char to int - -Tue Sep 18 13:57:36 2001 Carlos O'Ryan - - * */Makefile: - * */Makefile.*: - Updated dependencies, some of the paths were absolute leading to - ambiguities in parallel builds. - -Tue Sep 18 12:18:26 2001 Carlos O'Ryan - - * bin/footprint_stats.sh: - Fixed bug in footprint charts generation. - -Tue Sep 18 10:50:15 2001 Carlos O'Ryan - - * html/index.html: - Add COS Event and COS Notification services to the index. - -Mon Sep 17 19:00:00 2001 Irfan Pyarali - - * ace/OS.h: - - - THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM were not defined - for NT. Added them. - - - Moved the following definitions of VxWorks around such - that these defines are available even when PACE is not - used. - - THR_INHERIT_SCHED - THR_EXPLICIT_SCHED - THR_SCHED_IO - THR_SCOPE_SYSTEM - THR_SCOPE_PROCESS - - * ace/OS.cpp: LinuxThreads do not have support for - PTHREAD_SCOPE_PROCESS; only PTHREAD_SCOPE_SYSTEM is supported. - Therefore, PTHREAD_SCOPE_PROCESS is ignored when setting the - thread scheduling scope. - - * ace/Sample_History.cpp: Added accessors for and - . - - * bin/auto_run_tests.lst: Added new RTCORBA tests. Removed - Minimum CORBA dependency on these tests. - -Mon Sep 17 13:49:07 2001 Carlos O'Ryan - - * etc/tao_cosevent.doxygen: - * etc/tao_cosnotification.doxygen: - Add new Doxygen files for the Notification and COS Event - Services - - * bin/generate_doxygen.pl: - Add new doxygen files to the automatically generated - documentation. - -Mon Sep 17 11:36:54 2001 Balachandran Natarajan - - * tests/run_tests.lst: This is the script used by the shell - script in that directory. As the name is confusing this is being - moved as a new file. - - * tests/run_tests_remote.lst: Renamed the run_tests.lst as - run_tests_shell.lst. This is invoked by run_tests.sh - - * tests/run_tests.sh: Renamed as a new file. - - * tests/run_tests_remote.sh: Renamed the file run_tests.sh as this - one. This script can be used to run tests remotely on a - CHORUS/ClassiX/MVME targets. Further this can also be used to - run tests on platforms that dont support perl or do not have - perl. - -Sun Sep 16 11:19:01 2001 Balachandran - - * ACE version 5.1.20 released. - -Sat Sep 15 16:58:08 2001 Balachandran Natarajan - - * tests/High_Res_Timer_Test.cpp: Fixed compile problem with Sun CC - 4.2. - -Fri Sep 14 05:28:13 2001 Douglas C. Schmidt - - * THANKS: We now have over 1,300 contributors to ACE+TAO! - - * ace/Basic_Types.{h,i}: Added "const" to various operators and - methods. Thanks to Alain Decamps for reporting this. - -Thu Sep 13 11:02:41 2001 Douglas C. Schmidt - - * ace/Singleton.cpp: If we're not compiling with threading enabled, - don't call the get_singleton_lock() code. Thanks to Charles - Frasch for contributing this. - -Tue Sep 11 06:23:08 2001 Douglas C. Schmidt - - * ace/Array_Base.h: Changed current_ from u_int to size_t. Thanks - to Johnny Willemsen for reporting this. - -Fri Sep 14 17:18:37 2001 Steve Huston - - * tests/High_Res_Timer_Test.cpp (check_micro_nano): If the - nanointerval is 0, change it to 1 to prevent divide-by-zero. - -Fri Sep 14 17:02:39 2001 Steve Huston - - * tests/High_Res_Timer_Test.cpp: Replaced some (u_int) casts with - ACE_U64_TO_U32, which is correct. Thanks to Alain Decamps, yet - again!, for this fix. - -Fri Sep 14 11:39:03 2001 Balachandran Natarajan - - * THANKS: Added Mahesh Varadarajan and Kevin Clien to the Hall of - Fame. - -Thu Sep 13 22:43:34 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the new Cache_Growth_Test to the - daily tests. - -Thu Sep 13 20:38:44 2001 Nanbor Wang - - * ace/Thread_Manager.h (ACE_Thread_Manager): Changed the default - argument for the constructor from 0 to - ACE_DEFAULT_THREAD_MANAGER_PREALLOC. Thanks to Doug for - pointing this out. - - Added better documentation to explain the purpose of each - argument in ACE_Thread_Manager's constructor. Thanks to Nick - Pratt for motivating the change. - -Thu Sep 13 13:38:41 2001 Steve Huston - - * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), - elapsed_time_incr (ACE_hrtime_t&nanoseconds): Instead of using - "nanoseconds >>= 10", use "nanoseconds = nanoseconds >> 10" to - work around a Borland C++Builder bug. Thanks very much to - Johnny Willemsen, Christopher Kohlhoff, and Alain Decamps - for solving this problem. - -Thu Sep 13 13:33:29 2001 Steve Huston - - * tests/Service_Config_Test.cpp: Added #include "ace/Log_Msg.h". - This was probably to get AIX to build clean, but it's been a - while. - -Thu Sep 13 12:04:04 2001 Balachandran Natarajan - - * THANKS: Added Werner Buchert to the Hall of Fame. - -Wed Sep 12 15:10:41 2001 Steve Huston - - * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), - elapsed_time_incr (ACE_hrtime_t&nanoseconds): Changes to account - for very fast clocks (> 1GHz). Thank you to Derek Dominish - and Alain Decamps - for identifying the problem and coming - up with a good solution. This fixes Bugzilla #1024 (how - appropriate! ;-) - - * ace/High_Res_Timer.i (elapsed_microseconds (ACE_hrtime_t &usecs): - More adjustment to the Win32 scale factor adjusting. Thanks (again!) - to Alain Decamps for identifying and - supplying a fix for this. This fixes Bugzilla #948 (again). - -Wed Sep 12 14:33:29 2001 Steve Huston - - * tests/High_Res_Timer_Test.cpp: Incorporated some additional tests - for usec/nsec sanity checks on the calculated ACE_High_Res_Timer - values. Thank you very much to Alain Decamps - for this test. - -Tue Sep 11 12:40:01 2001 Balachandran Natarajan - - * Terror unleashed. The World Trade Center and the Pentagon - attacked today. Looks like there could be lots of loss to - precious lives. This is too horrible. We convey our condolences - to the bereaved families. God save this world. - -Tue Sep 11 06:41:31 2001 Balachandran Natarajan - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: Fixed a - typo. This should fix most of the errors in the scoreboard. - -Mon Sep 10 18:59:24 2001 Douglas C. Schmidt - - * apps/Gateway/Peer/Peer.cpp (nonblk_put): - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (nonblk_put): - Reverted Bala's changes below since the original code was - correct. Also, added comments to clarify things to prevent - confusion in the future. - -Mon Sep 10 17:31:11 2001 Balachandran Natarajan - - * ACE-INSTALL.html: Added a new platform to the list. - -Mon Sep 10 12:54:28 2001 Balachandran Natarajan - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: - Changed the condition that checks for EWOULDBLOCK after a - send. It was erroneously written. Thanks to Nick Pratt - for pointing this out. - -Mon Sep 10 12:36:07 2001 Balachandran Natarajan - - * apps/Gateway/Peer/Peer.cpp (nonblk_put): Changed the condition - that checks for EWOULDBLOCK after a send. It was erroneously - written. Thanks to Nick Pratt for - pointing this out. - -Mon Sep 10 08:17:08 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Will not run the File_IO test in the - Minimum CORBA configuration. - -Mon Sep 10 08:05:39 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Prevented the DLL_ORB test from running - in static builds. - -Sun Sep 9 10:20:59 2001 Balachandran Natarajan - - * */Makefile: Updated dependencies. - -Sun Sep 9 08:43:02 2001 Balachandran Natarajan - - * ace/Handle_Set.i: Added a check in set_bit () and clr_bit () for - ACE_INVALID_HANDLE. If we pass a ACE_INVALID_HANDLE we were - crashing which is not good and hence the fix. - -Sun Sep 9 08:28:52 2001 Balachandran Natarajan - - * ace/Reactor_Impl.h: - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_Base.cpp (is_dispatchable): Added a new - method. This method, just figures out whether the buffer has any - dispatchable info or not. - - * ace/WFMO_Reactor.h: - * ace/WFMO_Reactor.cpp: Added the above method in the WFMO - Reactor. - - * ace/TP_Reactor.cpp: The handle_notify_events () method now - checks whether the buffer it has read is dispatchable or not. If - it is then it gives up the token to make an upcall. Else, it - just sits around to remove messages of the pipe, till it find - one with a dispatchable info. The fix was necessary so that - wake-up calls that are unanswered are removed of the - pipe. Unanswered wakeup calls were filling up the pipe and they - were blocking some application from writing further to the - pipe. This should be in all probability be the final fix to the - Reactor. - -Sat Sep 8 09:34:52 2001 Balachandran Natarajan - - * tests/Logging_Strategy_Test.cpp: Fixed a typo that was giving - compile errors in VXWORKS builds. - -Fri Sep 7 16:40:37 2001 Priyanka Gontla - - * ace/OS.h: - Added an if-def case for IP_MULTICAST_TTL too. - -Fri Sep 7 17:09:04 2001 Balachandran Natarajan - - * tests/Thread_Pool_Reactor_Resume_Test.cpp: Initialised the lock - to null in the constrcutor before allocating memory for - it. This was done to remove the ABW errors in - purify. This should remove the problem that we see with this - test in our daily builds with SunCC 4.2. - -Fri Sep 7 15:51:48 2001 Balachandran Natarajan - - * tests/Logging_Strategy_Test.cpp: Included Auto_Ptr.h. - -Fri Sep 07 15:29:37 2001 Yamuna Krishnamurthy - - * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp: - * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp:: - * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp: - - * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp: - * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:: - * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp: - - * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp: - * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp: - * examples/QOS/Simple/Fill_ACE_QoS.cpp: - - Fixed compile errors. - -Fri Sep 7 14:17:41 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp: Do not clear the notify handle bit when - trying to dispatch notify calls. This shoudl fix the long - pending problems with TRU 64 builds. - -Fri Sep 07 12:12:39 2001 Steve Huston - - * examples/C++NPv1/Iterative_Logging_Server.dsp: - * examples/C++NPv1/Logging_Client.dsp: - * examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp: - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp: - * examples/C++NPv1/Reactive_Logging_Server.dsp: - * examples/C++NPv1/Reactive_Logging_Server_Ex.dsp: - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp: - Use relative paths to include and library files rather than - $(ACE_ROOT). Makes it easier to use in place regardless of - ACE version. - - * examples/C++NPv1/Logging_Client.cpp: Fixed scoping of the getline() - method call. - -Thu Sep 6 21:14:05 2001 Balachandran Natarajan - - * tests/Logging_Strategy_Test.cpp: Changed the usage of auto_ptr - <> to ACE_Auto_Basic_Ptr<>. Thanks to Carlos O'Ryan for this - suggestion. - -Thu Sep 06 18:42:39 2001 Steve Huston - - * examples/C++NPv1: New directory that contains all of the example - code for Doug/my book, C++ Network Programming, Vol 1. - -Thu Sep 6 12:01:15 2001 Priyanka Gontla - - * ace/OS.h: - Added a if-def case for IP_MULTICAST_IF. Seems like it is not - defined in some of the OS versions. - -Thu Sep 06 12:36:43 2001 Yamuna Krishnamurthy - - * ace/OS.h: - * ace/OS.i: - * ace/QoS/QoS_Session_Impl.cpp: - * ace/QoS/QoS_Session.h: - - Fixed compile errors. - -Thu Sep 6 10:24:15 2001 Ossama Othman - - * ace/Acceptor.cpp (accept_svc_handler): - * ace/Strategies_T.cpp (accept_svc_handler): - - Do not close and reopen the peer acceptor on failed attempts to - accept a connection. Several problems were fixed by removing - this code: - - - A race condition existed where another thread or process - could acquire the port that the peer acceptor was - listening on before it was closed. Note that it is not - enough to attempt to synchronize this code with a lock - since an external process could still acquire the port. - - - If the port in the peer acceptor (assuming it is an - ACE_INET_Addr based one) is the wildcard port (zero), then - there is no guarantee that the acceptor will be opened on - the same port upon which it is was previously listening. - In such a case, IORs generated by TAO (for example) can be - rendered invalid since the addressing information embedded - in those IORs will no longer contain the actual port to - connect to when making invocations. [Bug 962] - - - The above two problems actually introduced a - denial-of-service attack vulnerability (now closed by this - fix) since it was relatively easy to force a failed - connection attempt, which would then cause the peer - acceptor to be reopened on potentially a different port, - or to shutdown completely if reopening failed. - - * ace/SSL/SSL_SOCK_Acceptor.i (close): - - Invalidate the handle stored within the ACE_SSL_SOCK_Acceptor - instance. Corrects problems arising from attempts to use a - listening socket that has been shut down. - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - - Perform an OpenSSL SSL_accept() in case OpenSSL buffered data - that must be handled before entering the Reactor event loop used - to complete a non-blocking SSL passive connection. - - If the OpenSSL error status is SSL_ERROR_ZERO_RETURN shut down - the partially initialized SSL stream/session since the peer has - itself shut down. - -Thu Sep 6 11:00:46 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp: The timer events are not included as a part - of number of active handles from wait_for_multiple_events - (). The check for event_count > 0 before processing timer events - was wrong. Removed the check. Thanks to Chad Elliott for - pointing this out. - - Further did some cosmetic changes like adding comments, removing - comments that was not valid etc. - -Thu Sep 6 07:50:56 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: The AMI buffering test should not be run - Single threaded builds. - -Thu Sep 6 02:30:14 2001 Christopher Kohlhoff - - * examples/Export/Makefile.bor: - * examples/Export/export_dll.bor: - * examples/Export/test.bor: - * examples/Export/dll.h: - Added makefiles for this example and fixed a template problem with - Borland C++. Thanks to Charles Frasch for - contributing this. - -Wed Sep 5 19:48:34 2001 Priyanka Gontla - - * ace/SOCK_Dgram.cpp (set_nic): - Fixed the errors that raised in Win. - -Wed Sep 5 20:38:10 2001 Balachandran Natarajan - - * ace/OS.h: - * ace/OS.i: - * ace/QoS/QoS_Session_Impl.cpp: - * ace/QoS/QoS_Session.h: Reverted the change "Wed Sep 5 18:58:00 - 2001 Yamuna Krishnamurthy ". The change - broke builds. Further there was no reason why the QoS - information should come inside OS.* files. Talk about increasing - foot print. - -Wed Sep 5 18:58:00 2001 Yamuna Krishnamurthy - - * ace/QoS/QoS_Session.h: - * ace/QoS/QoS_Session_Impl.h: - * ace/QoS/QoS_Session_Impl.cpp: - - Added rapi_sender and rapi_reserve calls with null tspec and - flow spec respectively to facilitate the tearing down of PATH - and RESV messages. - - * ace/OS.h: - * ace/OS.i: - - Changed the sending_flowspec_ and receiving_flowspec_ members of - the ACE_QoS class to pointers so they can be initialized to null - flow specs. - -Wed Sep 5 16:50:03 2001 Balachandran Natarajan - - * THANKS: Added Peter Phillips to the Hall - of Fame. - - * ace/OS_String.cpp: Fixed a warning in TRU64 builds. - -Wed Sep 5 11:29:59 2001 Priyanka Gontla - - * ace/SOCK_Dgram.h: - * ace/SOCK_Dgram.cpp: - - Added a new method to set the NIC address in the socket. - -Wed Sep 05 12:00:42 2001 Steve Huston - - * include/makeinclude/platform_aix4_g++.GNU: Sets ACE_AIX_VERS rather - than separate major/minor; see entry below for further info. - -Wed Sep 05 11:52:39 2001 Steve Huston - - * ace/config-aix5.1.h: New config file for AIX 5L, version 5.1, - using Visual Age C++ 5. - - * ace/config-aix-4.1.x.h: - * ace/config-aix-4.2.x.h: - * ace/config-aix-4.3.x.h: - * ace/config-aix-4.x.h: Use ACE_AIX_VERS (which has both major and - minor version) rather than ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS. - - * include/makeinclude/platform_aix_ibm.GNU: Rather than making - separate major/minor OS version variables, use one that incorporates - both to make it easier for config.h files to set upwardly-compatible - feature flags. - -Wed Sep 5 06:55:44 2001 Chad Elliott - - * tests/Log_Msg_Test.cpp: - - Add ACE_TEXT() around the default program name for the Windows - WChar Unicode build. - -Tue Sep 4 18:48:00 2001 Balachandran Natarajan - - * ace/Select_Reactor_Base.cpp: Changed the value returned from - ACE_Select_Reactor_Notify_Handler::handle_input (). This now - returns a 0 if we did not dispatch any handles or the number of - handles dispatched. We were returning a -1 if we did not - dispatch any handles, after reading the notification from the - pipe. This should fix the Reactor_Notify_Test in the Implicit - templates build. - -Tue Sep 4 12:46:50 2001 Balachandran Natarajan - - * ace/ACE.cpp: Reverted this change "Tue Sep 4 07:37:17 2001 - Balachandran Natarajan ". Thanks to Irfan - for pointing that this change, changes the semantics of the - methods. - -Tue Sep 4 09:14:36 2001 Chad Elliott - - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - - Work around a compiler bug in the latest Green Hills Multi200. - Casting a float to an ACE_CDR::ULong* caused internal compiler - errors if the code was inlined. - - * ace/config-vxworks5.x.h: - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - - Updated support for Green Hills Multi2000. - -Tue Sep 4 07:41:42 2001 Balachandran Natarajan - - * THANKS: Added Eyal Neuman to the Hall of - Fame. - -Tue Sep 4 07:37:17 2001 Balachandran Natarajan - - * ace/ACE.cpp: Fixed a bug with recv_n_i (). The problem was form - returning the exact number of bytes from the for loop. If the - loop had executed once and if we get 0 in the next recv_i () - call, then we should be returning the number of bytes read in - the previous iteration and not 0. Thanks to Eyal Neuman - for this fix. This closes bug 1015. - -Tue Sep 4 07:08:30 2001 Balachandran Natarajan - - * ace/ACE.cpp: Fixed a unicode error in teh Win32 builds. Acted as - a dumbo when I made this change yesterday:( - -Mon Sep 3 20:08:25 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp: Fixed a warning in TRU 64 builds. - -Mon Sep 3 09:58:32 2001 Balachandran Natarajan - - * */Makefile: Updated dependencies - -Mon Sep 3 09:44:46 2001 Balachandran Natarajan - - * ace/Select_Reactor_Base.cpp: Fixed a warning in Implicit - template builds. - -Mon Sep 3 08:21:36 2001 Balachandran Natarajan - - * ace/ACE.cpp: Replaced L with ACE_TEXT_WIDE. - -Mon Sep 3 07:54:32 2001 Balachandran Natarajan - - * ace/OS_String.cpp: Fixed compile errors in win32 builds. Thanks - to Johnny Willemsen for sending in patches for replacing L with - ACE_TEXT_WIDE. - -Sun Sep 2 19:33:07 2001 Balachandran Natarajan - - * ace/Select_Reactor_Base.cpp: Fixed a small problem with the - select reactor's notify () handling mechanism. This was more of - a problem with me not checking the while () loop condition - properly. This should fix most of the reactor problems seen in - the daily builds. - -Sat Sep 1 14:10:08 2001 Douglas C. Schmidt - - * ace/System_Time.cpp, - * ace/Stream_Modules.cpp, - * ace/Service_Types.cpp, - * ace/Service_Manager.cpp, - * ace/SPIPE_Addr.cpp, - * ace/OS.cpp, - * ace/Memory_Pool.cpp, - * ace/Mem_Map.cpp, - * ace/Local_Name_Space_T.cpp, - * ace/FILE_Addr.cpp, - * ace/FIFO.cpp, - * ace/Connector.cpp, - * ace/Acceptor.cpp, - * ace/Token_Collection.cpp, - * ace/Name_Request_Reply.cpp, - * ace/Local_Tokens.cpp, - * ace/ACE.cpp, - * ace/Log_Record.cpp, - * ace/Log_Msg.cpp: Added the use of the new ACE_OS::strsncpy() - method. Thanks to Alain for reporting this. - - * ace/OS_String.{h,cpp}: Added a "safe" c string copy method: - strsncpy(dst,src,maxlen). Changing an occurence off strncpy() - to strsncpy() is less errorprone, but could break somebody's - code if he/she is using the fact that the strncpy's where - nul-padding the destination, but this is extremely - unlikely. Using strsncpy() is also almost always (a lot) faster - than strncpy(). Thanks to Alain Decamps - for this method. - -Sat Sep 1 09:54:55 2001 Balachandran Natarajan - - * tests/Bound_Ptr_Test.cpp: Added a patch from Chris Kohlhoff that - fixes the problem with VXWORKS builds. The old gcc compiler - seems to have problems with forward declared types as template - parameters. Chris solves the problem by defining a ABC properly - and making the offending class inherit from it. This should fix - our daily VXWORKS builds. - -Sat Sep 1 08:07:51 2001 Balachandran Natarajan - - * ace/Select_Reactor_Base.cpp: Fixed a compilation error in the - Notification queue portion of the code. Thanks to our daily - builds for helping me with this testing. - -Fri Aug 31 22:12:26 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp: - * ace/Select_Reactor_Base.cpp: Fixed fuzz errors. - -Fri Aug 31 22:07:57 2001 Balachandran Natarajan - - * ace/WFMO_Reactor.h: - * ace/WFMO_Reactor.cpp: Added the method read_notify_pipe () to - the WFMO_Notify_Handler. - -Fri Aug 31 19:14:52 2001 Balachandran Natarajan - - * ace/Reactor_Impl.h: Added a new method by name read_notify_pipe - (). Also changed the dispatch_notify () to take in a - Notification buffer instead of a ACE_HANDLE. - - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_Base.h: Made the following changes - - - Implemented read_notify_pipe (). Will read just one message from - the notify pipe or one message from the notification queue. - - - Reimplemented dispatch_notify (). This method would just - dispatch the upcall using the information in the notification - buffer. - - - The handle_input () now uses the read_notify_pipe () and - dispatch_notify () to achieve what it was doing before. - - - The notify () call now sends one notify message on the pipe - for every message in the notification queue. - - * ace/TP_Reactor.cpp (handle_socket_events): - * ace/TP_Reactor.h: - * ace/TP_Reactor.i: We had a race condition. The race condition - was because two threads were trying to read from the notify_pipe - at the same instance. This race condition was fixed by adding a - call to read_notify_pipe () with the lock held and then calling - dispatch_notify () with the buffer read after releasing the - lock. Did the following minor modifications - - - Changed dispatch_socket_events () as dispatch_socket_event () - as we were dispatching only one event. - - - We dont grab the token in the constructor of the token. We - have to make a call specfically to grab_token () to get the - token. - - The above checkins should fix the correctness of the reactor - problems that we have been seeing. - -Fri Aug 31 18:30:28 2001 Krishnakumar B - - * bin/auto_run_tests.lst: - - Added Blocking_Sync_None to the list of tests to be run on - Tru64. - - * ACE-INSTALL.html: - - Added Linux/IA64 to the list of platforms supported. - -Fri Aug 31 15:27:09 2001 Balachandran Natarajan - - * ace/Bound_Ptr.i: Fixed a problem with Sun CC42 builds. Used 1 - instead of true. - -Fri Aug 31 14:57:42 2001 Steve Huston - - * tests/MEM_Stream_Test.cpp: Fixed usage of ACE_SYNCH meta-class - to work correctly with templates. - -Fri Aug 31 11:53:05 2001 Krishnakumar B - - * ace/OS.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Queue_T.h: - * ace/config-hpux-11.00.h: - * ace/config-hpux11.h: - * ace/config-irix6.x-common.h: - * ace/config-linux-common.h: - * ace/config-lynxos.h: - * ace/config-osf1-4.0.h: - * ace/config-pharlap.h: - * ace/config-sunos4-g++.h: - * ace/config-sunos4-lucid3.2.h: - * ace/config-sunos4-sun3.x.h: - * ace/config-sunos4-sun4.1.4.h: - * ace/config-sunos4-sun4.x-orbix.h: - * ace/config-sunos5.4-centerline-2.x.h: - * ace/config-sunos5.4-g++.h: - * ace/config-sunos5.4-sunc++-4.x-orbix.h: - * ace/config-sunos5.4-sunc++-4.x.h: - * ace/config-sunos5.5.h: - * ace/config-tandem.h: - - Fixed up documentation of ACE_TIMER_SKEW. Fixed bogus values in - all the above files. Should help in removing some of the errors - in TAO tests. Any test in ACE/TAO which breaks because of this - change is broken and should be fixed. - -Fri Aug 31 12:00:00 2001 Steve Huston - - * tests/Bound_Ptr_Test.icc: New Visual Age C++ config for this test. - * tests/tests.icp: Added Bound_Ptr_Test.icc, Service_Config_Test.icc, - and libService_Config_DLL.icc. - -Fri Aug 31 11:40:31 2001 Steve Huston - - * tests/MEM_Stream_Test.(cpp h): Fixed single-threaded builds. - -Fri Aug 31 08:13:26 2001 Chad Elliott - - * bin/perltest2cpp.pl: - - Added a -t option to set the timeout factor. - -Thu Aug 30 18:08:32 2001 Krishnakumar B - - * ace/config-linux-common.h: - - Added some more missing stuff which might break compilations. - The previous change also removed the existing definition for - ACE_TIMER_SKEW so add it back till the new version is checked in. - -Thu Aug 30 17:54:40 2001 Krishnakumar B - - * ace/config-linux-common.h: - - This file was checked in inadvertently when checking in fixes - for ACE_NEEDS_HUGE_THREAD_STACKSIZE. - -Thu Aug 30 13:04:38 2001 Steve Huston - - * tests/run_test.lst: Added Bound_Ptr_Test. - -Thu Aug 30 11:40:39 2001 Steve Huston - - * tests/run_test.pl (run_program): Fixed the 'unlink' to get - all of a test's log files; prevents seeing previous sub-logs - from a test such as MEM_Stream_Test and falsely reporting errors. - -Thu Aug 30 10:46:51 2001 Steve Huston - - * ace/High_Res_Timer.cpp (global_scale_factor ()): When checking for - a high-res timer mechanism, don't set the global_scale_factor_status_ - away from 0 until _after_ getting the scale factor, to avoid - a second parallel thread from using a bogus value. Thanks very much - to Alain Decamps for this fix. - -Thu Aug 30 09:30:19 2001 Chad Elliott - - * tests/Log_Msg_Test.cpp: - - Fix for VxWorks when ace_main() is called with argc == 0. - - * tests/run_test.lst: - - Update the list of tests that run on VxWorks. - - * tests/Makefile: - * tests/run_test.pl: - - Update the script to output VxWorks commands to a file. - -Thu Aug 30 09:58:38 2001 Steve Huston - - * ace/High_Res_Timer.i (elapsed_microseconds): For Win32, isolate the - msec modulus before converting it up to usecs. Thanks to Francois - Rioux for reporting this. - -Thu Aug 30 00:42:41 2001 Christopher Kohlhoff - - * ace/Service_Config.cpp: - Service_Object instances are now inserted into the Service_Repository - only after they have been successfully initialised, to provide better - support for recursive use of the service configurator. With this - change, a service loaded from 'inside' another services's init() will - be inserted into the repository first and unloaded last. This ensures - that any recursively loaded services on which the original service - depends still exist when the original service's fini() function is - called. - -Thu Aug 30 00:27:05 2001 Krishnakumar B - - * ChangeLog: - - Removed bogus files from the previous entry. I should not play - around with a lot of tasks at once. - -Wed Aug 29 19:57:29 2001 Krishnakumar B - - * ace/config-osf1-4.0.h: - - Remove definition of ACE_NEEDS_HUGE_THREAD_STACKSIZE. The - default value seems to be good enough. - - * ace/config-vxworks5.x.h: - * ace/config-lynxos.h: - * ace/config-qnx-neutrino.h: - * ace/config-rtems.h: - - Standardized the values to 64KB on these platforms. Don't know - if these platforms need it. But I don't have access to any of - these so playing it safe. - - -Wed Aug 29 18:52:12 2001 Christopher Kohlhoff - - * tests/Bound_Ptr_Test.cpp: - Removed a stray asterisk that was causing compilation failures. - -Wed Aug 29 17:54:52 2001 Steve Huston - - * tests/libDLL_Test.icc: - * tests/libService_Config_DLL.icc: Fixed the "run after" directives - to correctly build the lib*.a files. Also, fixed the cleanup - directives to properly clean up both .a and shr.o files. - -Wed Aug 29 15:32:10 2001 Douglas C. Schmidt - - * ace/config-aix-4.x.h: - * ace/config-hpux-11.00.h: - * ace/config-osf1-4.0.h: Added better support for pread()/pwrite(). - Thanks to Steve Vranyes for these fixes. - -Wed Aug 29 15:47:33 2001 Steve Huston - - * tests/run_test.lst: Re-enabled MEM_Stream_Test. - -Wed Aug 29 12:15:01 2001 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added Bound_Ptr.* to the projects. - - * tests/tests.dsw: - * tests/Bound_Ptr_Test.dsp: Added a new project for - Bound_Ptr_Test. - -Wed Aug 29 11:01:22 2001 Steve Huston - - * tests/MEM_Stream_Test.cpp: Fixed a cut/paste error and now runs the - proper number of threads/processes for the MT case, avoiding a - hang. - -Wed Aug 29 07:08:23 2001 Douglas C. Schmidt - - * tests/run_tests.lst: - * tests/Makefile - * tests/Makefile.bor - * ace/Makefile - * ace/Bound_Ptr.{h,i} - * tests/Bound_Ptr_Test.cpp - * examples/Smart_Pointer: Added a pair of new smart pointer classes, - ACE_Strong_Bound_Ptr and ACE_Weak_Bound_Ptr. Thanks to - Christopher Kohlhoff for contributing - these. - -Tue Aug 28 17:51:19 2001 Steve Huston - - * tests/run_test.pl: If a test has log files associated with the - main log of the form -.log, e.g. MEM_Stream_Test-331.log - the check_log function will scan those for errors/warnings too. - -Tue Aug 28 16:48:23 2001 Balachandran Natarajan - - * ace/TP_Reactor.i: We (the current thread) should not release the - token unless we own it. This simple mistake just took 3 days to - figure out. An 'if' condition was mixing and have added - it. Shows how a small problem at lower levels can take days to - fix. - -Tue Aug 28 17:45:22 2001 Steve Huston - - * tests/MEM_Stream_Test.cpp: Fixed compile warning on gcc. - -Tue Aug 28 13:16:31 2001 Chad Elliott - - * bin/vxworks_modify.pl: - * bin/perltest2cpp.pl: - - Generated c++ files now pass the fuzz check. - -Tue Aug 28 11:02:08 2001 Ossama Othman - - * bin/nightlybuilds/builds.lst: - - Renamed the GCC 3.0 build to "Debian_GCC_3.0.1." since we're - actually compiling with GCC 3.0.1, not GCC 3.0. The latter has - bugs that prevent it from compiling ACE/TAO at the "-O3" - optimization level. - -Tue Aug 28 10:19:18 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.i (recv_i): - - Corrected Borland warning using a more efficient fix (i.e. less - function calls). - -Tue Aug 28 10:36:10 2001 Chad Elliott - - * bin/vxworks_modify.pl: - * bin/perltest2cpp.pl: - - Added these scripts for use with VxWorks and the newly added TAO - TestUtils. These scripts modify c++ and perl to generate - "one-button" modules for TAO testing on VxWorks. - -Tue Aug 28 11:07:26 2001 Steve Huston - - * tests/MEM_Stream_Test.cpp: Be sure to close the stream from the - client end. - -Mon Aug 27 20:16:38 2001 Balachandran Natarajan - - * tests/run_test.lst: Removed the MEM_Stream_Test from the daily - builds as they were hanging. This was causing the builds to - choke. I will keep Steve Huston informed on this so that he can - reenable them once he has fixed the test. - -Mon Aug 27 18:33:59 2001 Krishnakumar B - - * bin/nightlybuilds/builds.lst (WEB): - - Removed the stray yoda part of LIST which is causing the wrong - results to show up. - -Mon Aug 27 18:14:38 2001 Krishnakumar B - - * bin/nightlybuilds/builds.lst (WEB): - - Added the IA-64 builds back again. We now have a faster machine - running a better version of Linux. - -Mon Aug 27 09:39:33 2001 Balachandran Natarajan - - * ace/Timer_Queue_T.i (get_dispatch_info): - * ace/Timer_Queue_T.h: Fixed the compile problem in VXWORKS - builds. How could I forget that there are a few compilers which - cannot grok traits? - -Mon Aug 27 09:39:12 2001 Johnny Willemsen - - * examples/Makefile.bor: - * examples/NT_Service/Makefile.bor - Added BCB makefile for this example - -Sun Aug 26 22:08:32 2001 Balachandran Natarajan - - * ace/TP_Reactor.i: Reordered methods to fix warnings in TRU 64 - builds. - -Sun Aug 26 20:50:22 2001 Balachandran Natarajan - - * ace/SSL/SSL_SOCK_Stream.i: Fixed a warning (hopefully) in - Borland builds. The warning was because a temporary variable was - created. - -Sun Aug 26 20:45:24 2001 Balachandran Natarajan - - * tests/MEM_Stream_Test.cpp: Fixed a unused variable warning in - Borland. - -Sun Aug 26 08:13:12 2001 Douglas C. Schmidt - - * tests/test_config.h: Added a new ACE_CLOSE_TEST_LOG macro. Thanks to - Edan for this. - -Sun Aug 26 09:07:32 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp: Fixed a compile error with SunCC4.2 - -Sun Aug 26 08:28:09 2001 Balachandran Natarajan - - * ace/Timer_Queue_T.cpp: Fixed a warning from an unused variable - reported by KCC compilers. - -Sun Aug 26 08:13:12 2001 Douglas C. Schmidt - - * tests/Logging_Strategy_Test.cpp: Applied the following fixes from - Edan: - - - Included ace/Logging_Strategy.h - - Addition of -w switch to enable initial wipeout of logfile - - Removal of the redundant ACE_LOG_MSG->open() - - Explicitly close the previous log before applying the changes to the - ACE_LOG_MSG - - Moved remove_files() call higher, just before logfile close - - * ace/Logging_Strategy.{h,cpp}: Added the following fixes from - Edan Ayal: - - - Logging_Strategy now supports any ACE_Log_Msg, not just the - ACE_LOG_MSG singleton. - - Added a check for success (ios::goodbit) of new ofstream - creation. - - Changed default values for max_size and interval. Now the - default interval is 10 minutes (instead of 0) and the default - log file size is 0 (was 16K). The timer is now activated only - if both are non-zero. - - Added a mutator to set the ACE_Log_Msg to work with, and a - member variable - - Added definition for ACE_DEFAULT_LOGFILE_POLL_INTERVAL - - Removed definition of ACE_DEFAULT_MAX_LOGFILE_SIZE - - * ace/Log_Record.{h,cpp}: Enhanced this implementation to (1) - be consistent with recent changes to Log_Msg.h and (2) to - replace problematic use of strncpy(). Thanks to Alain - Decamps for these fixes. - -Sat Aug 25 20:58:22 2001 Nanbor Wang - - * ace/FILE_IO.i (send_n): Changed to use ACE::write_n to send the - chain of Message_Blocks. The originally used ACE::send_n was - causing problem on NT because send_n was restricted for sockets - I/O on NT. Thanks to Doug for pointing this out. - -Sat Aug 25 10:16:21 2001 Douglas C. Schmidt - - * tests/Svc_Handler_Test.cpp (main): The destructor of svc_handler - will close file_io, so we don't need to do it explicitly! - - * ace/Log_Msg.cpp (log): Changed range check from - - this->msg_ + ACE_Log_Record::MAXLOGMSGLEN - - to - - this->msg_ + sizeof this->msg_ - - to correspond to the change below. - - * ace/Log_Msg.h (ACE_Log_Msg): Increased the size of the buffer - used to store log records to account for the NUL-terminator. - - * tests/Svc_Handler_Test.cpp (main): Changed the buffer size - and NUL-terminated the buffer so that things print correctly. - Thanks to Nanbor for finding this. - -Sat Aug 25 09:00:28 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp: - * ace/TP_Reactor.h (ACE_TP_Reactor): Fixed a warning in KCC - builds. - -Sat Aug 25 08:42:57 2001 Balachandran Natarajan - - * ace/Configuration_Import_Export.cpp: Fixed warnings with g++. I - am not sure how this fix will be accepted on different - compilers. Things are always dicy when you want to delete a - void *. - -Fri Aug 24 23:29:09 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added File_IO test to our daily builds. - -Fri Aug 24 23:12:15 2001 Balachandran Natarajan - - * ace/WFMO_Reactor.h: - * ace/WFMO_Reactor.cpp (dispatch_notify): Fixed a compile error on - MSVC. - -Fri Aug 24 23:07:42 2001 Balachandran Natarajan - - * ace/Configuration_Import_Export.cpp: Fixed a compile error with - g++. - -Fri Aug 24 21:55:00 2001 Craig Rodrigues - - * ace/QoS/QoS_Session_Impl.cpp: - Check for null parameters in rsvp_callback(). - Thanks to Yamuna Krishnamurthy . - -Fri Aug 24 20:32:39 2001 Steve Huston - - * tests/MEM_Stream_Test.cpp: Changed this test to use multiple - processes on any platform without ACE_LACKS_FORK. It actually - could be broader than this if desired. This is motivated by the - fact that HP-UX can't mmap() (the call underlying ACE_MEM_IO) - the same file more than once in the same process. With this, - MEM_Stream_Test goes a lot better on HP-UX, though not perfectly - yet. - -Fri Aug 24 16:54:02 2001 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.h (recv_i): - - Added a timeout parameter. See below for details. - - * ace/SSL/SSL_SOCK_Stream.i (recv_i): - - Perform an SSL_read() before attempting to block on select() - with a timeout. OpenSSL may buffer more data than requested - since it is a record-oriented protocol. Fixes a problem where - subsequent calls to ACE_SSL_SOCK_Stream::recv() could timeout - when needlessly blocking on select() because the expected data - has already been buffered by OpenSSL. Thanks to Martin - Krumpolec for reporting and diagnosing the - problem. [Bug 1006] - - * ace/SSL/SSL_SOCK_Stream.cpp (recv): - - Moved the timed recv() code to the lower level recv_i() method - since timeout support must now be more tightly integrated with - do/while(SSL_pending()) SSL_read() loop. - -Fri Aug 24 18:33:09 2001 Douglas C. Schmidt - - * ace/Parse_Node.cpp (ACE_Function_Node): Make sure to dynamically - allocate the pathname_ so we can delete it! Thanks to - Don Hinton for reporting this. - - * ace/Configuration_Import_Export.cpp: Changed a couple of - delete (char *) buf to delete (char *) [] buf. Thanks to - Don Hinton for reporting this. - -Fri Aug 24 16:10:20 2001 Balachandran Natarajan - - Merged in changes from the reactor_deadlock branch. This set of - changes actually fixes a long standing problem with the - TP_Reactor. The TP_Reactor was holding the token too long and - this created all sorts of problems for TAO. The changes have been - merged from the branch and here are the relevant - ChangeLog entries. - - Fri Aug 24 14:59:52 2001 Balachandran Natarajan - - * ace/TP_Reactor.cpp (dispatch_socket_events): Cosmetic changes. - - Fri Aug 24 14:19:02 2001 Balachandran Natarajan - - * ace/Timer_Queue_T.i: - * ace/Timer_Queue_T.h:Removed the default constructor and - destructor for ACE_Timer_Node_Dispatch_Info_T allowing the - compiler to do the job. - - Fri Aug 24 12:05:25 2001 Balachandran Natarajan - - * ace/Timer_Queue_T.cpp: Removed some vague debug statements. - - Fri Aug 24 11:34:11 2001 Balachandran Natarajan - - * ace/Timer_Queue_T.h: - * ace/Timer_Queue_T.cpp: - * ace/Timer_Queue_T.i: Added a new class - ACE_Timer_Node_Dispatch_Info_T that has the dispatch information - needed to make the upcall. Added methods, dispatch_info () and - dispatch_info_i () in ACE_Timer_Queue_T. These methods return - the dispatch information if there is a node in the queue whose - timer value <= current time. Changed the expire () method to use - this method to get dispatch information. - - * ace/Timer_Queue.h: Added a template specialisation for - ACE_Timer_Node_Dispatch_Info_T. - - * ace/Timer_Queue.cpp: Added template instantiations for the - specialisation. - - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp: Added a new method handle_timer_events () - that would handles timer events. - - Thu Aug 23 11:50:18 2001 Balachandran Natarajan - - * ace/Reactor_Impl.h: Added two new methods notify_handle () and - dispatch_notify () to the ACE_Reactor_Impl class. - - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_Base.cpp: Implemented the above two - methods in the ACE_Select_Reactor_Notify class. The - notify_handle () method returns the handle of the pipe on which - it is listening. The dispatch_notify () call does a dispatch of - just one notify () call in the notify pipe. The handle_input () - call that used to process all the notify calls now calls the - dispatch_notify () in a loop. The change essentially allows - some extrenal client of this class to just process one notify at - a time if needed. - - * ace/TP_Reactor.h: - * ace/TP_Reactor.i: - * ace/TP_Reactor.cpp (handle_events): Fixed a bug with - handle_events (ACE_Time_Value &). This should be calling the - handle_events () of the TP_Reactor and not the select reactor. - - Added a whole slew of new methods that basically allows us to do - this - - handle one event at a time - - - once the thread knows the event that needs handling it should - release the token before dispatching the events - - The new methods that have been added are - - - handle_signals (), which handle signals that interrupted the - select (). The implementation of this method is busted. The - implementation has been copied from the existing setup - - - handle_notify_events (), which handles one notify on the - notify_pipe at a time - - - handle_socket_events (), which handles socket events. - - Quite a few helper methods have also been added. They are - get_notify_handle (), get_socket_event_info (), and - dispatch_socket_events (). Removed the methods dispatch_i (), - dispatch_i_protected () and notify_handle (). This checkin fixes - the problem in 1002. But we still have to add handling timeouts - into the TP_Reactor. - - - Tue Aug 21 17:21:07 2001 Balachandran Natarajan - - * ace/TP_Reactor.i: - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp: Made lots of changes which havent been - compiled yet. Added a new class ACE_TP_Token_Guard that helps - in obtaining and releasing tokens. Moved the grab_token () from - the ACE_TP_Reactor class to the TP_Token_Guard class. Added a - new method for handling signals. They havent been compiled yet - and this checkin is to put files from work to my home box. - - Tue Aug 21 07:58:42 2001 Balachandran Natarajan - - * ace/TP_Reactor.i: - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp (handle_events): Started refactoring some of - the code to help with this bug. This change has not been - compiled. This is just being done to transfer files from home - to work. - -Fri Aug 24 14:25:31 2001 Balachandran Natarajan - - * THANKS: Added Massimo Pichini to the - Hall of Fame. - -Fri Aug 24 13:40:01 2001 Balachandran Natarajan - - * bin/nightlybuilds/builds.lst: Removed HPUX and AIX_VAC for the - timebeing. Looks like OCI is running different versions of the - OS for their internal use. - -Fri Aug 24 10:17:00 2001 Balachandran Natarajan - - * ace/Log_Msg.cpp (log_hexdump): Added a patch provided by Massimo - Pichini . This prevents overflows with - long strings that are used in printing hexdumps. Previously we - had a buffer of 80 bytes on the stack. - -Fri Aug 24 10:03:29 2001 Steve Huston - - * ace/INET_Addr.(h cpp): Applied changes submitted by - Alain Decamps to insure that - get_host_name (char hostname[], size_t len) const always - nul-terminates the hostname string. If the host lookup is - successful, but the supplied buffer is too short, the function - returns -1, errno == ENOSPC. - -Thu Aug 23 22:01:11 2001 Balachandran Natarajan - - * tests/Logging_Strategy_Test.cpp: Reverted this change "Thu Aug - 23 05:24:57 2001 Douglas C. Schmidt" as this was giving - warnings with MSVC 6.0 - -Thu Aug 23 11:49:15 2001 Paul Calabrese - - * bin/msvc_auto_compile.pl: - - Revert changes from Mon Aug 20 15:48:30 2001. - Thanks to Darrell to showing me the error in my ways. - -Thu Aug 23 09:17:25 2001 Balachandran Natarajan - - * ace/Log_Msg.cpp (file): Reduced the number of bytes copied in - ACE_Log_Msg::file () and ACE_Log_Msg::msg () by one. Thanks to - Alain Decamps for pointing this out. - -Thu Aug 23 08:11:22 2001 Steve Huston - - * ace/Configuration_Import_Export.cpp (process_previous_line_format): - Prepend ACE_OS:: to atoi to work with both narrow and wide chars. - -Thu Aug 23 08:03:00 2001 Craig Rodrigues - - * ace/QoS/QoS_Session_Impl.cpp: - Improve debugging messages. Return -1 inside rsvp_callback() - if flowspec type is unknown. - -Thu Aug 23 05:24:57 2001 Douglas C. Schmidt - - * tests/Logging_Strategy_Test.cpp: Added new and improved test that - it better documented and fixes some minor bugs. Thanks to - Edan Ayal for this. - -Wed Aug 22 19:04:57 2001 Douglas C. Schmidt - - * tests/Logging_Strategy_Test.cpp: Enable this test to work - on platforms that don't support DLLs. Thanks to Edan Ayal - for suggestion this and providing the code. - - * tests/Logging_Strategy_Test.cpp (parse_args): Changed 'n' for 'N' - since that controls the max number of log files. Thanks to Edan - Ayal for reporting this. - -Thu Aug 23 07:30:12 2001 Johnny Willemsen - - * ace/SString.{h,i}: Added clear() method to the ACE_CString and - ACE_WString so that it is possible to clear a string in just one - call - * tests/SString_Test.cpp: Extended to test clear() method - -Wed Aug 22 15:30:05 2001 Carlos O'Ryan - - * bin/auto_compile: - Use the print_config.pl script to print out the configuration. - -Wed Aug 22 17:33:29 2001 Steve Huston - - Applied fixes submitted by Jerry D. Odenwelder, to fix - Bugzilla #953: - - * ace/Configuration.cpp (import_config, export_config): Changed - from using a ACE_Ini_ImpExp object to an ACE_Registry_ImpExp - to preserve type information in the import/export files, and - retain the ability to read an ACE 5.1-format file (with the - changes next...) - - * ace/Configuration_Import_Export.(h cpp): Added a new - ACE_Registry_ImpExp::process_previous_line_format() method that - knows how to read an ACE 5.1-format config line. If - ACE_Registry_ImpExp::import_config finds a line that does not - begin with one of <"[#;> it calls process_previous_line_format - to try to convert it using ACE 5.1-format rules. - Note that the auto conversion works on import. If the - object is subsequently exported, the new registry format - will be used to write the file, effectively updating it - from old to new format. - -Wed Aug 22 12:04:04 2001 Douglas C. Schmidt - - * ace/WFMO_Reactor.h (ACE_WFMO_Reactor): Clarified that the - work_pending() method isn't implemented and suggest what to do - for a workaround. Thanks to Michelangelo Riccobene - (michelangelo.riccobene@marconi.com) for reporting this. - -Wed Aug 22 10:38:08 2001 Carlos O'Ryan - - * bin/nightlybuilds/print_config.pl: - Add new perl script to print out the build configuration, the - script will be shared by the Unix and Win32 builds. - -Wed Aug 22 11:30:13 2001 Joe Hoffert - - * ace/OS_Memory.h: - Removed include of pace/stddef.h. PACE does not have this - file. There are no POSIX functions that typically reside - in this header. Maybe PACE will need this later but it - doesn't now. - - * ace/OS.h (ACE_cond_t): - Modified #if guard to include ACE_cond_t class if we're - on Win32. If we're using PACE then we don't want this method - (since PACE takes care of it) unless we're on Windows. Win32 - mutexes, semaphores, and condition variables are not yet - supported in PACE. - - * ace/OS.cpp (ACE_OS::cond_destroy): - Modified #if guard to include ACE_cond_t::cond_destroy - if we're on Win32. If we're using PACE then we don't want - this method (since PACE takes care of it) unless we're on - Windows. Win32 mutexes, semaphores, and condition variables - are not yet supported in PACE. - - * ace/OS.i (ACE_OS::waiters): - Modified #if guard to include ACE_cond_t::waiters if - we're not on Win32. If we're using PACE then we want - this method (since PACE defines cond_t) unless we're - on Windows. Win32 mutexes, semaphores, and condition - variables are not yet supported in PACE. - -Tue Aug 21 08:26:30 2001 David L. Levine - - * docs/ACE-guidelines.html: changed the example referenced - in: - Sun Aug 19 08:17:14 2001 David L. Levine - to be a bit more realistic. - -Tue Aug 21 06:58:49 2001 Balachandran Natarajan - - * ace/Log_Msg.cpp: Fixed problematic uses of strncpy. Thanks to - Alain Decamps for giving this patch. - -Tue Aug 21 10:40:12 2001 Johnny Willemsen - - * ace/Map.i: Made the return value of ACE_Incremental_Key_Generator - getCurrentValue() const - - * ace/Map_Manager.*: Added a const iterator for the - ACE_Map_Manager - -Mon Aug 20 18:20:51 2001 Steve Huston - - * ace/Process.cpp (pass_handle): Only try to compile the - DuplicateHandle stuff when !ACE_HAS_WINCE... I think it's - right this time... - -Mon Aug 20 15:54:46 2001 Douglas C. Schmidt - - * ace/SUN_Proactor.cpp: Removed the instantiation of - ACE_Condition. Thanks to David Trusty - for reporting this. - -Mon Aug 20 15:48:30 2001 Paul Calabrese - - * bin/msvc_auto_compile.pl: - - Modify script to print config.h contents. - -Mon Aug 20 13:14:00 2001 Carlos O'Ryan - - * bin/auto_compile: - Fixed chdir commands for the auto_compile scripts. - -Mon Aug 20 14:33:31 2001 Douglas C. Schmidt - - * ace/Message_Queue_T.cpp: If we timeout in the semaphore implementation - of the message queue in wait_not_full_cond() or - wait_not_empty_cond() make sure to decrement the "waiters" count - accordingly! Thanks to Patrick Rabau - for noticing this in the C++NPv1 book version! - -Mon Aug 20 07:01:31 2001 Douglas C. Schmidt - - * ace/Synch_T.i (release): If owner_ == -1 then return - -1. Thanks to Don Hinton for suggesting this. - -Mon Aug 20 13:18:51 2001 Steve Huston - - * ace/SOCK.h: Corrected comment on ACE_SOCK ctor being protected, - not private. Thanks to Don Hinton for - pointing this out. - - * THANKS: Added Don Hinton to the Hall of Fame. - -Mon Aug 20 11:00:50 2001 Chad Elliott - - * ace/OS.h: - - Set the ACE_DEFAULT_FILE_PERMS to the correct value for VxWorks. - - * tests/run_test.lst: - - Removed tests for VxWorks for which the platform has no support. - - * tests/CDR_File_Test.cpp: - * tests/Svc_Handler_Test.cpp: - - Add VxWorks to the list of platforms that can't unlink the file - in advance of the test completing. - -Mon Aug 20 01:49:12 2001 Christopher Kohlhoff - - * include/makeinclude/build_dll.bor: - Build non-core DLLs into the common bin directory. This is necessary - so that the tests can find all the DLLs they need on the path. - - * tests/run_test.pl: - Removed the append of the ExeSubDir to the path, since it is no - longer needed and never really worked properly anyway. - -Mon Aug 20 00:01:29 2001 Steve Huston - - * ace/SOCK_Connector.h: Clarify the conditions under which errno - will be ETIME (caller-specified timeout expires w/o connect) - vs. ETIMEDOUT (protocol layer timed out the connect). - - * ace/SOCK_Connector.cpp: Add "|| errno == ETIME" to a couple - places where an ACE_ERROR is _not_ done for certain conditions. - - * ace/ACE.cpp (handle_timed_complete): If the user-specified timeout - expires before the connect is resolved one way or the other, - set errno to ETIME, not ETIMEDOUT. This makes it match the - documented behavior in the ACE_SOCK_Connector man page. - -Sun Aug 19 20:33:39 2001 Carlos O'Ryan - - * bin/nightlybuilds/builds.lst: - Update build list - -Sun Aug 19 15:36:23 2001 Carlos O'Ryan - - * bin/auto_compile: - Add new 'Config' section at the end of the build, useful for the - next generation scoreboard. - -Sun Aug 19 13:25:51 2001 Carlos O'Ryan - - * bin/footprint_stats.sh: - * bin/performance_stats.sh: - * bin/generate_footprint_chart.sh: - * bin/generate_performance_chart.sh: - * html/Stats/Stats.css: - * html/Stats/configuration.shtml: - * html/Stats/detailed_footprint.shtml: - * html/Stats/detailed_performance.shtml: - * html/Stats/footer.html: - * html/Stats/index.shtml: - * html/Stats/navigation.html: - Put the scripts and HTML documents used to generate the Stats - pages under CVS control. Now it is easier for people to add - their own libraries and tests, as well as let our user community - examine the way the pages are generated. - - * bin/auto_run_tests.lst: - Remove TAO/tests/LongUpcalls/run_ami_test.pl, the tests have - been incorporated into the run_test.pl script. - - * bin/sandbox.cpp: - Minor changes to the sandbox script, actually not very useful, - the ACE classes to create processes start a new process group by - default, therefore there is no simple way to kill all the - subprocesses if a test fails. - -Sun Aug 19 08:17:14 2001 David L. Levine - - * docs/ACE-guidelines.html: replaced function call in - ASSERT with simple comparison of a variable value. Thanks - to Tino Schwarze - for suggesting this. - -Sat Aug 18 18:26:24 2001 Balachandran Natarajan - - * ace/ACE.cpp: Removed the ASYS_INLINE macro from the definition - of write_n (). - -Sat Aug 18 13:18:10 2001 Douglas C. Schmidt - - * ace/ACE.{h,cpp}: Added a new write_n(...ACE_Message_Block *...) - for file transfers that's the dual of - send_n(...ACE_Message_Block *...). This helps out the C++NPv1 - book symmetry. Thanks to Alain Decamps - for motivating this. - -Fri Aug 17 18:17:38 2001 Douglas C. Schmidt - - * bin/clone.cpp: Only use extern char *sys_errlist[] if we're not - compiling on Linux. Thanks to Thomas Groth - for reporting this. - -Fri Aug 17 19:04:31 2001 Steve Huston - - * ace/Process.cpp (ACE_Process_Options::pass_handle): For WinCE, - just do ACE_NOTSUP_RETURN (-1). It can't dup a handle. - -Fri Aug 17 16:56:16 2001 Jeff Parsons - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - - Added wr_ptr() accessor method to ACE_InputCDR, and added its - use to adjust(), align_read_ptr(), read_1(), skip_string() and - skip_bytes() instead of end(). Also added reset of good_bit_ - to 0 upon failure in read_string() and read_wstring(). Thanks to - Peter Phillips for reporting this bug, - which was causing excessive memory allocation is some cases. - [Bug 591, 944, 983] - -Fri Aug 17 13:31:45 2001 Chad Elliott - - * tests/run_test.pl: - - Added the ability to generate windsh commands to load and run - the ace tests. - - * tests/Makefile: - - Added a rule to generate run_test.vxworks, using run_test.pl, - which can be used to run the tests selected for the VxWorks OS. - - * tests/run_test.lst: - - Update this list to take into account the limitations of VxWorks. - - * tests/test_config.h: - - Change the permissions of the log file open (for VxWorks only) to - use the symbolic permission names instead of 0x644. The - permissions differ from the standard UNIX modes. - - * tests/run_tests.vxworks: - - This file was out of date and no longer needs to be maintained. - So, it has been removed. - -Fri Aug 17 09:44:49 2001 Balachandran Natarajan - - * ace/Map_T.{h,i}: Reverted this change "Fri Aug 17 08:07:12 2001 - Johnny Willemsen " as this was giving too - much of warnings in the builds. - -Fri Aug 17 09:30:34 2001 Balachandran Natarajan - - * gperf/apps/tests/Makefile: Fixed the problem that was causing - the builds to fail. - -Fri Aug 17 08:07:12 2001 Johnny Willemsen - - * ace/Map_T.(h i): made the return value of - ACE_Incremental_Key_Generator::current_value const T& instead - of T&. Added uppercase traits to the ACE_Map class. - -Thu Aug 16 19:27:29 2001 Steve Huston - - * ace/Process.cpp (ACE_Process_Options::pass_handle): Add - "::" to front of "DuplicateHandle" so the WinCE compiler - sees the right function. - Also added ctor/dtor for ACE_Managed_Process to try and fix the - can't find vtable error on Linux. - - * ace/Process.h: Added a constructor for ACE_Managed_Process - to fix "can't find vtable" error on Linux. - - * ace/Process.i: Moved ACE_Managed_Process dtor to .cpp file. - -Thu Aug 16 15:10:42 2001 Steve Huston - - * ace/Process.h (pass_handle): Clarify comments for this method. - - * ace/Process_Manager.cpp: - * ace/Process.(h i): Moved the ACE_Managed_Process class out - of Process_Manager.cpp, exposing it for general use. - -Thu Aug 16 10:34:20 2001 Douglas C. Schmidt - - * ace/POSIX_Proactor.cpp (allocate_aio_slot): Added a fix so that - the POSIX Proactor compiles with FreeBSD 4.4. Thanks to Yev - Omenzel for reporting this and to Craig - Rodrigues for fixing it and to - John E Hein for fixing the fix ;-) - -Thu Aug 16 08:09:53 2001 Chad Elliott - - * tests/run_test.lst: - - Added the OTHER requirement to the Thread_Pool_Reactor_Test and - the Thread_Pool_Reactor_Resume_Test. These are only built if - OTHER is part of the ACE components list. - - -Wed Aug 15 15:50:38 2001 Douglas C. Schmidt - - * ace/WFMO_Reactor.cpp: Don't try to purge the notifications if - notify_handler_ is 0. Thanks to Edan Ayal - for reporting this. - -Wed Aug 15 11:33:26 2001 Carlos O'Ryan - - * bin/nightlybuilds/builds.lst: - Remove one build from the list, the machine is being retargeted - for performance testing. - -Wed Aug 15 11:10:22 2001 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU: Added $(VDIR) for - OBJDIRS. This prevents hardcoding the value of OBJDIRS. This has - been tested for a dynamic and a static library on Linux. If - there are other platforms that gives problems, please feel free - to revert the changes to the version 4.114 of the file. - -Wed Aug 15 09:35:19 2001 Chad Elliott - - * ace/Dirent_Test.cpp: - - Added #define's for VXWORKS that allow this test to function - properly. Avoid hard-coded relative paths that may not exist on - VxWorks. - -Wed Aug 15 09:08:40 2001 Chad Elliott - - * ace/Sock_Connect.cpp: - - Added an implementation to ACE_Sock_Connect::get_ip_interfaces(). - With this, the Enum_Interfaces_Test works correctly. - -Wed Aug 15 07:54:49 2001 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU: Unravelled the mystery a - bit. The patch that was applied to remove the hard coding of - OBJDIRS seems to be the problem. The OBJDIRS has been hardcoded - again. This should fix the problems that we have been seeing in - the builds. If at all we need to remove hardcoding the OBJDIRS, - we either need to put the value of VDIR or VSHDIR. If we put - both we are going to end up with duplicate targets. Now the - killer, what do we add to the OBJDIRS? Me thinks it is VDIR. I - have test that out else I would be breaking builds again. - -Wed Aug 15 07:30:00 2001 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU: Reverted the change "Tue - Aug 14 21:42:24 2001 Balachandran Natarajan". Thought that was a - typo. But looks like it is not. - -Wed Aug 15 06:39:50 2001 Balachandran Natarajan - - * ace/Process.cpp: Fixed a warning with g++. - -Tue Aug 14 23:57:42 2001 Steve Huston - - * A set of changes to encapsulate passing handles to spawned - processes. Thanks very much to Eamonn Saunders - for suggesting that this could work - and pointing out the Win32 details! - - * THANKS: Added Eamonn Saunders to the Hall of Fame - - * ace/Handle_Set.h: Replace include ace/ACE.h with ace/OS.h. This - class is part of the OS subset. - - * ace/Process.h: Added the following methods: - - ACE_Process_Options::pass_handle (ACE_HANDLE). Cause the specified - handle to be passed to a child process when it's spawned. Has - meaning mainly for Win32. The handle value will be included - in the spawned process's command line as +H . The passed - handle value will be duplicated if on Win32 less than NT4. - - - ACE_Process_Options::dup_handles (ACE_Handle_Set set) const - Get a copy of the handles the ACE_Process_Options duplicated - for the spawned process. - - - ACE_Process_Options::passed_handles (ACE_Handle_Set set) const - Get a copy of the handles passed to the spawned process. This - will be the set of handles previously passed to pass_handle(). - - - ACE_Process::close_dup_handles (). Close all the handles in - the set obtained from ACE_Process_Options::dup_handles. - - - ACE_Process::close_passed_handles (). Close all the handles in - the set obtained from ACE_Process_Options::passed_handles. - - Also moved the avoid_zombies() functions and flag out of the - non-Win32 section - it can safely be ignored, maintain the - intended semantics, and help apps stay portable. - - * Process.cpp: Implement the above new methods. Also, after spawning - a process, the parent will call the above dup_handles/passed_handles - methods to get any passed handles. The close_*_handles() methods - can then close them. Also, the destructor will call close_dup_handles - to be sure that no handles leak on Win32 less than NT4. - - * Process.i (command_line_buf ()): Added a new arg to receive the - maximum length of the buffer pointed to on return. To maintain - backward compatibility, the arg defaults to 0 (don't return - the max length). - - * ace/Makefile: Moved Handle_Set from the UTILS group to the OS group. - - * ace/ace.icc: Moved Handle_Set from DEMUX to OS. - - * docs/ACE-subsets.html: Move Handle_Set from DEMUX to OS. - -Tue Aug 14 21:42:24 2001 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU: Fixed a typo. - -Tue Aug 14 21:30:04 2001 Balachandran Natarajan - - * apps/Makefile: Removed JAWS2 and JAWS from the Makefile. There - are several reasons for reverting. This breaks the builds. The - Makefiles in the recursed directories are all messed up. The - library dependencies doesnt seem trivial. Nobody may have time - to fix this. Further, our daily builds return too quickly and we - just needed more files to compile :-). - -Tue Aug 14 14:19:49 2001 Steve Huston - - * ace/Memory_Pool.i (ACE_Local_Memory_Pool dtor): Call release() - here to free up the blocks allocated by the pool, else they're - stranded and can't be freed. - - * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): After - freeing up the blocks, reset the allocated_chunks_ set to be - sure they are also freed, and the chunks can't be freed again. - -Tue Aug 14 14:19:37 2001 Balachandran Natarajan - - * ace/Log_Msg.cpp: Applied the patches sent by Tibor Kiss - for ACE_Log_Msg::close () - -Tue Aug 14 13:55:42 2001 Balachandran Natarajan - - * include/makeinclude/platform_macosx.GNU: Added a patch from John - Michael Zorko . - -Tue Aug 14 10:21:39 2001 Steve Huston - - * ace/Log_Msg.h: Clarified the defaults for the per-process and - per-instance default priority masks. - -Mon Aug 13 14:01:35 2001 Douglas C. Schmidt - - * include/makeinclude/wrapper_macros.GNU: Fixed some hard-coded - uses of .shobj and .obj. Thanks to Shashi Bhushan - for contributing these. - - * ace/CDR_Stream.h: Added comments warning about the deletarious - effects of not aligning buffers to ACE_InputCDR and - ACE_OutputCDR properly. Thanks to Alain Decamps - for reporting this. - -Sun Aug 12 14:46:07 2001 Douglas C. Schmidt - - * ace/OS.cpp (sched_params): Make sure to set errno for Win32 so - that callers can figure out what's going wrong in a consistent - way. - - * ace/Select_Reactor_Base.i (purge_pending_notifications): Don't - try to purge the notifications if notify_handler_ is 0. thanks - to Steve Rahn for reporting this. - -Mon Aug 13 20:09:04 2001 Balachandran - - * ACE version 5.1.19 released. - -Sun Aug 12 02:17:01 2001 Nanbor Wang - - * ace/MEM_Acceptor.cpp: - * ace/MEM_Connector.cpp: On non-Win32 platforms, disable - multithreaded MEM_IO if _ACE_USE_SV_SEM is defined. - -Sun Aug 12 01:27:51 2001 Steve Huston - - * tests/Log_Msg_Test.cpp: Correct const-ness of a pointer - retrieved from ACE_Log_Record::msg_data(). - -Sun Aug 12 00:34:42 2001 Steve Huston - - * ace/Log_Record.h: - * ace/Log_Record.i (msg_data()): Changed ACE_TCHAR *msg_data() - to: const ACE_TCHAR *msg_data (void) const. Makes it safer, - and conforms to all current usage inside ACE. Also makes - C++ Network Programming examples simpler :-) - -Sat Aug 11 09:01:11 2001 Douglas C. Schmidt - - * ace/Thread.h: - * ace/Task.h: Added a list of other flags that can be passed to - activate(). - -Fri Aug 10 19:39:48 2001 Krishnakumar B - - * bin/auto_run_tests.lst: - - Disabled the Blocking_Sync_None test from running under Tru64. - Also changed the config parameter passed to the auto_compile - script from TRU_64 to Tru64 in - ~bugzilla/bin/auto_compile_tru64_cxx. - - This is so that the test is disabled only for the WashU builds. - The reason being that Bala was not too happy with changing the - default values for all the platforms and we also wanted to avoid - more #ifdefs in the code. Other builds might have better values - and the test might succeed. Have to confirm this though. - -Fri Aug 10 17:59:47 2001 Nanbor Wang - - * ace/Svc_Conf_y.cpp: - * ace/OS.h: Added /**/ between #include and and - to avoid warning from CE compiler. - - * ace/ace_dll.vcp: Added Svc_Conf_Lexer_Guard.* to the project. - -Fri Aug 10 13:40:46 2001 Chad Elliott - - * bin/nightlybuilds/builds.lst: - - I didn't realize the LIST definition was needed. I have - added it for the Tru64 4.0f Compaq C++ 6.3-10 build. - -Fri Aug 10 11:45:03 2001 Chad Elliott - - * bin/nightlybuilds/builds.lst: - - Added the Tru64 4.0f Compaq C++ 6.3-10 build. - -Fri Aug 10 11:06:23 2001 Chad Elliott - - * apps/drwho/CM_Client.cpp: - * apps/drwho/CM_Server.cpp: - * apps/drwho/server.cpp: - - Changes to avoid warnings on HP-UX with aCC. - -Thu Aug 9 16:56:05 2001 Balachandran Natarajan - - * ace/Hash_Map_Manager_T.i: - * ace/Hash_Map_Manager_T.cpp: We seem to be re-inventing wheels - again and again. A few months back we had a show stopper in a - beta which was caused by usage of static cast. The cast was not - to the liking of SunCC 4.2. Looks like we had to change a bunch - of static cast sprayed in these two files to a C style cast as - 4.2 doesnt like them. Compilers like Borland handle these - better, but not 4.2. - -Thu Aug 9 11:51:10 2001 Balachandran Natarajan - - * include/makeinclude/platform_hpux_aCC.GNU: On popular mandate we - have the -w flag removed from CCFLAGS in the above file. Looks - like the -w disables lots of warnings that may be useful. - -Thu Aug 9 11:41:01 2001 Balachandran Natarajan - - * ace/CDR_Stream.h (ACE_OutputCDR): Fixed the ambigous constructor - problem. The InputCDR class had two constructors which were - similar if the default values for the arguments were - exercised. Thanks to Torbjorn Backstrom - for reporting this. - -Thu Aug 9 12:31:21 2001 Douglas C. Schmidt - - * ace/OS_String.cpp (strtok_r_emulation): Make sure to check - for a NULL return from strtok() before calling strlen()! Thanks - to Boris Sukholitko for reporting this. - -Wed Aug 08 21:27:50 2001 Ossama Othman - - * bin/nightlybuilds/builds.lst (Debian_Wchar, Debian_GCC_3.0): - - The host these nightly builds were built on is now called - "rumba" (previously "valinor"). Updated the build list - accordingly. - -Wed Aug 08 21:19:09 2001 Ossama Othman - - * tests/Service_Config_Test.UTF-16.conf: - - Removed extraneous characters from this file that were causing - the Service Configurator's underlying lexer to "choke." - -Wed Aug 8 16:23:31 2001 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Add the AMI_Buffering tests to the nightly regression testsuite. - -Wed Aug 8 16:07:26 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: The GIOP lite tests will not work in the - static builds. It was adding more complications to the test - than what is already there to get it working for the static - builds. - -Wed Aug 8 14:06:36 2001 Krishnakumar B - - * ace/config-tru64.h: - - Define ACE_HAS_NONSTATIC_OBJECT_MANAGER for all DEC Unix 4.x - versions. - - * ace/config-cxx-common.h: - - Define ACE_AUTO_PTR_LACKS_RESET if __DECCXX_VER == 60190027. - Thanks to Robert Burke for reporting - this. - - * include/makeinclude/platform_osf1_3.2.GNU: - * include/makeinclude/platform_osf1_4.0.GNU: - * include/makeinclude/platform_osf1_4.0_g++.GNU: - * include/makeinclude/platform_osf1_4.0_kcc.GNU: - * include/makeinclude/platform_osf1_4.0_rcc.GNU: - - Removed the following files. - - * include/makeinclude/platform_osf1_3.2_cxx.GNU: - * include/makeinclude/platform_osf1_4.x_cxx.GNU: - * include/makeinclude/platform_osf1_4.x_g++.GNU: - * include/makeinclude/platform_osf1_4.x_kcc.GNU: - * include/makeinclude/platform_osf1_4.x_rcc.GNU: - - Added new versions of the removed files. - - * include/makeinclude/platform_tru64_pre.GNU: - * include/makeinclude/platform_tru64_post.GNU: - - Moved a lot of duplicated code into these new files. - - * include/makeinclude/platform_tru64_cxx.GNU: - * include/makeinclude/platform_tru64_g++.GNU: - * include/makeinclude/platform_tru64_kcc.GNU: - - Removed a lot of old *cruft* like setting up compilation with - cxx when gcc was asked for etc. etc. Somebody went overboard - with cut'n paste and copied David's changes blindly. Still not - completely satisfied. But it works and is better than before. - This also fixes Bug Id 989. - -Wed Aug 08 11:30:26 2001 Ossama Othman - - * tests/Service_Config_Test.cpp (run_test): - - Don't check if "ACE_USES_WCHAR == 1" since some configurations - neglect to set it an integer value. Instead, just check if it - is defined. - -Wed Aug 8 12:31:51 2001 Balachandran Natarajan - - * tests/MEM_Stream_Test.cpp: Changed a ACE_DEBUG statment with an - LM_WARNING to an LM_DEBUG. - -Wed Aug 08 11:59:45 2001 Nanbor Wang - - * ace/OS.h: Do not redefine ACE_IOV_MAX if it has already been - defined. - -Wed Aug 8 06:21:24 2001 Douglas C. Schmidt - - * ace/Makefile: Moved Message_Block from STREAMS_FILES to - UTILS_FILES. - - * ace/OS_Dirent.inl (closedir): Changed delete d->directory_name_ to - delete [] d->directory_name_. Thanks to Olivier Brunet - for reporting this. - -Tue Aug 7 21:59:42 2001 Douglas C. Schmidt - - * tests/Svc_Handler_Test.cpp: Modified the test to dump the contents - of the temporary file to the log file. - -Tue Aug 7 19:14:24 2001 Douglas C. Schmidt - - * ace/CDR_Stream.i: - * ace/SOCK_Stream.h: Fixed incorrect comments. - Thanks to Alain Decamps for reporting - these. - -Tue Aug 7 15:19:38 2001 Douglas C. Schmidt - - * ace: Changed all uses of IOV_MAX to use the new ACE_IOV_MAX. - * ace/OS.h: Added a new ACE_IOV_MAX that makes it clear this is - an ACE-level #define. We use this in C++NP v1. - -Tue Aug 7 14:16:57 2001 Douglas C. Schmidt - - * ace/Svc_Handler.cpp: Reimplemented the flush() method to use - the new send_n() method on the various ACE I/O classes. - - * ace/SOCK_Stream.{h,i}: - * ace/FILE_IO.{h,i}: Added a new send_n() method that sends all - the s chained through their and - pointers using the underlying OS gather-write operation to - reduce the domain-crossing penalty. - -Tue Aug 7 17:27:16 2001 Balachandran Natarajan - - * tests/Collection_test.cpp: Fixed a compile error with g++. This - is a patch that Johnny Willemsen sent as a part of his last - checkin. - -Tue Aug 07 11:25:36 2001 Nanbor Wang - - * ace/config-freebsd-pthread.h: Made the following definition - valid only for pre-4.2-RELEASE. - - #define ACE_LACKS_GETPGID - #define ACE_LACKS_SETPGID - #define ACE_LACKS_SETREGID - #define ACE_LACKS_SETREUID - - Thanks to Robert Burke for reporting - this. - -Tue Aug 07 16:40:12 2001 Johnny Willemsen - - * ace/Hash_Map_Manager_T.*: - Added const_iterator to the Hash_Map_Manager so that it is - possible to iterate over a hash map in a const method - - The operator= of the iterator now check the value of this to - check that the iterator instance is assigned to itself - - * tests/Hash_Map_Manager_Test.cpp - Extended this test to test the new const_iterator capabilities - of the hash map - - * ace/Unbounded_Set.cpp: - Implemented missing operator* for the const iterator - - * tests/Collection_test.cpp: - Extended test to test the operator* of the - Unbounded_Set_Const_Iterator - -Mon Aug 6 19:58:48 2001 Douglas C. Schmidt - - * ace/config-hpux-11.00.h: Added #define for ACE_HAS_TERM_IOCTLS. - Thanks to Torbjorn Backstrom - for reporting this. - - * ace/OS.h: Added a #include for for HP/UX. Thanks - to Torbjorn Backstrom for - reporting this. - -Mon Aug 6 12:51:35 2001 Douglas C. Schmidt - - * ace/Synch.h (ACE_Null_Mutex>): Fixed a cut&paste error - where acquire_write() should be acquire_read(). Thanks to - Russell Mora for fixing this. - -Mon Aug 06 17:17:33 2001 Ossama Othman - - * ace/Service_Config.cpp: - - Fixed some debugging messages that were not wrapped within an - ACE_LIB_TEXT macro. - - * tests/Service_Config_Test.UTF-16.conf: - - Interim UTF-16 encoded version of the UTF-8 encoded - Service_Config_Test.conf. It was generated on a little-endian - host. Its current purpose is simply to keep our Unicode - regression testing happy until the on-the-fly generation is - implemented. Once we start generating this file on-the-fly - this file should disappear. - - * tests/Service_Config_Test.cpp (run_test): - - When using full Unicode support, use the version of the Service - Configurator file that is UTF-16 encoded (as described above). - -Mon Aug 06 11:10:24 2001 Ossama Othman - - * ace/Svc_Conf_l.cpp: - - More Unicode fixes. Flex's allocation function uses malloc() as - its underlying allocator. Since it only accepts the size in - bytes, allocate "size * sizeof (ACE_TCHAR)" when allocating - string buffers. This should clear up some strange looking text - "unknown character" messages emanating from the Service - Configurator's underlying text scanner. - - Note that these changes do not fix the cause of the "unknown - character." Those fixes should soon follow. - -Mon Aug 06 09:04:04 2001 Ossama Othman - - * ace/Svc_Conf.l: - - Unicode updates. Wrap debugging text within an ACE_LIB_TEXT - macro. - -Sun Aug 5 14:31:10 2001 Balachandran Natarajan - - * tests/run_tests.lst: Ossama suggested that we dont run the - Service_Config_Test in static builds. - -Fri Aug 04 3:33:31 2001 Yamuna Krishnamurthy - - * ace/QoS/SOCK_Dgram_Mcast_QoS.h: - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - - Made the open method public so we can open UDP sockets for - non-multicast addresses. - -Fri Aug 03 22:19:31 2001 Steve Huston - - * ace/config-hpux-11.00.h: Added ACE_HAS_WCHAR to build in the - wide char handling since Darrell so nicely straightened all - the muck out throughout ACE. Thanks Darrell! - -Fri Aug 03 22:15:51 2001 Steve Huston - - * ace/Log_Msg.cpp (log): For 'W' and 'w' on HP-UX, the 'ls' and - 'lc' forms are not allowed; HP-UX requires 'S' and 'C'. - -Fri Aug 3 13:10:59 2001 Ossama Othman - - * ace/config-linux-common.h (ACE_UINT64_FORMAT_SPECIFIER, - ACE_SSIZE_T_FORMAT_SPECIFIER, ACE_SIZE_T_FORMAT_SPECIFIER): - - Removed unnecessary and some incorrect format specifiers for the - 32-bit platform case. In particular, the format specifier for - an unsigned 64-bit integer was incorrectly set to "%Lu." "%L" - is the format specifier for a "long double," not a "long long" - integer on 32-bit platforms. "%llu" is the correct format - specifier which `ace/Basic_Types.h' already defines. - -Fri Aug 3 09:55:38 2001 Ossama Othman - - * bin/auto_run_tests.lst: - - Added the new TAO "DLL_ORB" test to the list of tests to run. - -Fri Aug 3 08:26:45 2001 Balachandran Natarajan - - * ace/RW_Process_Mutex.cpp: Added a missing comma in the - constructor. This should fix Win32 compile errors. - -Fri Aug 3 08:07:45 2001 Balachandran Natarajan - - * ace/CDR_Base.cpp: Added a check for a memory allocation failure - in grow (). Thanks to Francis Paul for - pointing this out. - -Thu Aug 2 18:37:23 2001 Douglas C. Schmidt - - * ace/RW_Process_Mutex.cpp: Added ACE_DEFAULT_OPEN_PERMS - to the constructor call to ACE_RW_Process_Mutex so that it does - the right thing on Win32. Thanks to Wayne Erchak - for reporting this. This fixes - bugid 996. - -Thu Aug 02 13:04:19 2001 Steve Huston - - * ace/ace.icc: Added Intrusive_List.cpp to the TEMPLATE_FILES - section. - -Thu Aug 02 06:59:39 2001 Steve Huston - - * ace/Basic_Types.h (ACE_SIZEOF_WCHAR): If ACE_HAS_XPG4_MULTIBYTE_CHAR - is defined, use sizeof(wchar_t) to set ACE_SIZEOF_WCHAR. - -Wed Aug 1 16:05:49 2001 Carlos O'Ryan - - * Merged changes from the fix_886 branch - - Tue Jul 31 09:17:49 2001 Carlos O'Ryan - - * ace/Intrusive_List.h: - * ace/Intrusive_List.inl: - Add new methods to access the head and tail of the list. - - * ace/Intrusive_List.cpp: - Fixed the implementation of remove(), if the element to be - removed was the last on the list it wasn't removed at all. - Left some code to check invariants, have to find a way to keep - that code around with some optional compilation flags. - - Thu Jul 26 16:50:54 2001 Carlos O'Ryan - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/Intrusive_List.h: - * ace/Intrusive_List.inl: - * ace/Intrusive_List.cpp: - Add new template to implement intrusive lists, i.e. lists that - assume their elements implement the next() and prev() methods. - - * ace/Intrusive_List_Node.h: - * ace/Intrusive_List_Node.inl: - * ace/Intrusive_List_Node.cpp: - Helper class to add the requirements of ACE_Intrusive_List to - any other class, simply do: - class Foo : public ACE_Intrusive_List_Node - -Wed Aug 1 15:57:35 2001 Ossama Othman - - * ace/Message_Block.cpp (release, release_i): - - Obtain the pointer to the allocator from the object that will be - destroyed before calling ACE_DES_FREE on the object. Previously - we were obtaining the allocator after the object was destroyed, - due to the way the ACE_DES_FREE macro works. Thanks to Hyman - Rosen for reporting the problem, and to - Carlos for suggesting a fix. [Bug 992] - -Wed Aug 1 15:00:21 2001 Douglas C. Schmidt - - * ace/Log_Record.{h,i}: Changed msg_data_len() from a "setter" - to a "getter" method, which makes more sense. Thanks to Patrick - Rabau for reporting this. - -Wed Aug 1 12:43:57 2001 Ossama Othman - - * ace/Svc_Conf_l.cpp: - - Reintegreated Nanbor's change (Wed Jun 13 10:22:10 2001 Nanbor - Wang ) that enables proper handling of - UNICODE Service Configurator directives. - -Wed Aug 1 07:14:42 2001 Douglas C. Schmidt - - * include/makeinclude/platform_vxworks5.x_g++.GNU: Checked in a new - version of this file, which includes support for the Hitachi - chip. Thanks to Frank Wolf for this. - - * ace/Log_Record.cpp (format_msg): Added a cast to fix a warning. - Thanks to Bala for reporting this. - -Tue Jul 31 22:53:26 2001 Ossama Othman - - * tests/libService_Config_DLL.icc: - - New Visual Age project file for the libService_Config_DLL - library. - - * tests/Makefile.am: - - Added build targets/dependencies for the libService_Config_DLL - library. - -Tue Jul 31 22:46:33 2001 Ossama Othman - - * tests/Service_Config_DLL.dsp: - * tests/Service_Config_Test.dsp: - - Removed the static library configurations. The - Service_Config_Test currently requires dynamically loadable - objects. Fixes Win32 "LIB" build failures. - -Tue Jul 31 22:10:48 2001 Ossama Othman - - * tests/Service_Config_Test.cpp (run_test): - - Wrap strings passed to ACE_ARGV::add() within an ACE_TEXT - macro. Fixes Unicode conversion problems. - -Tue Jul 31 16:53:57 2001 Ossama Othman - - * ace/Svc_Conf.h (ace_yyrestart, ace_yy_delete_parse_buffer, - ace_yydirective): - - Remove these global function and variable declarations. They - are no longer used. - -Tue Jul 31 16:43:33 2001 Ossama Othman - - * ace/Basic_Types.h: - - If "__LITTLE_ENDIAN__" is defined then assume that the - architecture is little endian. Some compilers/platforms define - that macro. Suggested by Frank Wolf" . - - * ace/Svc_Conf.h (yy_push_buffer): - * ace/Svc_Conf.l (yy_push_buffer): - * ace/Svc_Conf_l.cpp (ace_yy_push_buffer): - * ace/Svc_Conf_Lexer_Guard.cpp (ACE_Svc_Conf_Lexer_Guard): - * ace/Svc_Conf_Lexer_Guard.h (ACE_Svc_Conf_Lexer_Guard): - - The Service Configurator directive is an "ACE_TCHAR *" not a - "char *". Updated these method/function parameters to accept - the former. Fixes a compile-time problem on "wchar/Unicode" - builds. - -Tue Jul 31 05:34:48 2001 Douglas C. Schmidt - - * ace/OS.h: Removed a spurious WNOHANG definition. Thanks to - Christina Junru for reporting this. - -Mon Jul 30 15:31:42 2001 Douglas C. Schmidt - - * ace/Log_Msg.{h,i,cpp}: Fixed this class so that all of its fields - are ACE_UINT32 or ACE_INT32 internally so that it'll always be - the same on all platforms. Thanks to Fabris - for reporting this. - -Tue Jul 31 10:22:38 2001 Ossama Othman - - * tests/Makefile: - - Only build the Service_Config_Test if shared libraries are - enabled, since it attempts to dynamically load a shared - library. - -Tue Jul 31 10:16:31 2001 Steve Huston - - * ace/Dump.h: Clarified the use of ACE_NDEBUG for turning this - feature off, not on. Thanks to Don Hinton - for noticing this. - -Mon Jul 30 13:41:00 2001 Nanbor Wang - - * ace/OS.cpp (ACE_Time_Value::FILETIME_to_timval_skew): Updated - docuementation to better explain the meaning of this constant. - Thanks to Mike Vitalo for motivating the - change. - -Mon Jul 30 09:43:06 2001 Douglas C. Schmidt - - * ace/OS.i (mutex_lock): Missing an argument to the ACE_OSCALL macro. - Thanks to Bala for reporting this. - -Mon Jul 30 05:43:23 2001 Douglas C. Schmidt - - * ace/Synch.h (ACE_Semaphore): Corrected the comment on - how to get POSIX Pthreads "implementation" of semaphores (which - supports the timed acquire() option). Thanks to Grzegorz - Sikora for reporting this. - -Sun Jul 29 19:03:56 2001 Douglas C. Schmidt - - * tests/Thread_Mutex_Test.cpp (test): Fixed this test to be - consistent wrt the errno for the timed acquire(), which should - now always be set to ETIME rather than ETIMEDOUT and EBUSY. - - * ace/Message_Queue_T.cpp (wait_not_full_cond, - wait_not_empty_cond): Fixed a nasty bug with the semaphore - version of ACE_Message_Queue that would have reared it's ugly - head if ACE_NULL_SYNCH were used when - ACE_HAS_OPTIMIZED_MESSAGE_QUEUE was enabled. Fixing this bug - also triggered the following changes. - - * ace/OS.{h,i}: Added support for ACE_OS::sema_wait(), - ACE_OS::mutex_lock(), ACE_OS::thread_mutex_lock() that take - ACE_Time_Value *. - - * ace/OS.i: For some odd reason the timeouts for the timed version - of mutex_lock() were returning a random smattering of errnos. - I've changed them to all be consistent with the - ACE_Condition_Thread_Mutex::wait() errno, which is ETIME. - - * ace/Synch.h: Updated the documentation of all the timed - acquire() methods to explain what the various return values - mean. - -Sun Jul 29 22:10:40 2001 Ossama Othman - - * tests/Service_Config_DLL.cpp: - * tests/Service_Config_DLL.h: - * tests/Service_Config_DLL.dsp: - * tests/Service_Config_DLL_Export.h: - * tests/Service_Config_Test.conf: - - New files associated with the existing Service_Config_Test. - They are used when testing the reentrance/thread-safety of the - Service Configurator, in addition to testing the Service - Configurator's ability to handle nested processing of Service - Configurator directives. - - * tests/Service_Config_Test.cpp (run_test): - - Add arguments to the Service Configurator argument vector to - make it process the newly added `Service_Config_Test.conf' - file. - - (main): - - Make the ACE_Thread_Manager wait for all running threads before - exiting the test. Processing the `Service_Config_Test.conf' - file causes some threads to be spawned. - -Sun Jul 29 19:19:20 2001 Ossama Othman - - * ace/Service_Config.cpp (process_directive, process_directives): - - Wrap the ACE_GUARD_RETURN macro within an ACE_MT block. The - ACE_Static_Object_Lock declaration is only visible if - ACE_HAS_THREADS is defined. This truly fixes the - single-threaded build problems. - -Sun Jul 29 19:06:11 2001 Ossama Othman - - * ace/Svc_Conf.y (ace_obstack): - * ace/Svc_Conf_y.cpp: - * ace/Svc_Conf_l.cpp: - - UNICODE updates and fixes. - -Sun Jul 29 10:50:45 2001 Ossama Othman - - * ace/Svc_Conf_Lexer_Guard.cpp: - - There is no longer any need to include "ace/Object_Manager.h" - - * ace/Service_Config.cpp: - - Include "ace/Object_Manager.h" to pull in the definition of - ACE_Static_Object_Lock. Fixes a problem found in Sun builds and - single-threaded builds. - -Sat Jul 28 23:03:24 2001 Ossama Othman - - The following are changes that make the Service Configurator - reentrant and thread-safe. - - * ace/Svc_Conf.y: - - Generate a pure (reentrant) parser using Bison. BYACC doesn't - support generation of reentrant parsers. - - * ace/Svc_Conf.l: - - Implemented "buffer stack" support. This feature makes it - possible to process Service Configurator directives within a - Service Object's init() method, i.e. support nested directive - processing. - - (ace_yyerrno): - - Moved declaration of ace_yyerrno from this file to - `Svc_Conf.y'. ace_yyerrno was not used in the generated - scanner. It was only used in the generated parser. - - (yy_delete_parse_buffer): - - There is no longer any need for this function. The lexer buffer - stack implementation handles memory management of lexer buffers. - - (yywrap): - - Do not call yy_delete_parse_buffer(). It is no longer necessary - to do so, in addition to the fact that that function was - removed (as described above). - - (<>): - - Do not call ACE_YY_NEW_FILE in this rule. The new buffer stack - implementation handles the buffer switching that ACE_YY_NEW_FILE - did, and more. - - * ace/Svc_Conf_Tokens.h: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - - Regenerated these files using updated Bison/YACC and FLEX input - files to pull in support for reentrant parsing and nested - processing of Service Configurator directives. - - * ace/Svc_Conf.h (ace_yy_push_buffer, ace_yy_pop_buffer): - - Added function prototypes for the newly implemented lexer buffer - stack manipulation functions. - - (ace_yylex): - - Added ACE_YYSTYPE parameter to this functions signature, as - required by the new reentrant parser support. - - (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): - - New symbolic constant that defines the maximum supported depth - for nested Service Configurator processing. The current default - is 8. - - (ACE_YY_INPUT): - - No longer any need to redefine this macro to support scanning of - Service Configurator directive strings. The new lexer buffer - stack implementation provides support for lexer buffer scanning - from a string instead of a pointer to "FILE." - - (ace_yydirective): - - This global variable is no longer needed due to the fact that - the new buffer stack implementation handles directives read from - both a string and a file. - - * ace/Service_Config.cpp: - - (process_directive, process_directives): - - Obtain a recursive lock before manipulating the lexer buffer - stack, and invoking the parser and scanner. This makes - invocation of the scanner thread-safe. - - The new lexer buffer stack implemenation obviates the need to - call yyrestart() since buffer switching is handled by the stack - implementation. - - (open_i, close): - - No need to deallocate the lexer buffer since the buffer stack - implementation handles that. - - * ace/Svc_Conf_Lexer_Guard.h: - * ace/Svc_Conf_Lexer_Guard.cpp: - - New "guard" class that makes lexer buffer stack pushing and - popping exception-safe. - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/ace.icc: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - - Added Svc_Conf_Lexer_Guard.* sources to these Makefiles and - project files. - -Sat Jul 28 14:58:30 2001 Douglas C. Schmidt - - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: Reran BYACC and FLEX on the Svc_Conf.l and - Svc_Conf.y files to regenerate them. Thanks to Bala for - motivating this. - - * netsvcs/clients/Tokens/collection/Makefile, - netsvcs/clients/Tokens/deadlock/Makefile, - netsvcs/clients/Tokens/invariant/Makefile, - netsvcs/clients/Tokens/mutex/Makefile, - netsvcs/clients/Tokens/rw_lock/Makefile, - examples/ASX/CCM_App/Makefile, - examples/Logger/Acceptor-server/Makefile, - examples/Reactor/Multicast/Makefile, - examples/Reactor/Ntalker/Makefile, - examples/Shared_Malloc/Makefile, - performance-tests/TCP/Makefile, - performance-tests/UDP/Makefile: Removed the line - include $(ACE_ROOT)/include/makeinclude/rules.LIB.GNU - so that these projects will build correctly on VxWorks with - Make 3.79.1. Thanks to Frank Wolf for reporting this. - -Fri Jul 27 11:24:50 2001 Douglas C. Schmidt - - * ace/Svc_Conf.y: Allow quoted strings as the pathname. Thanks - to Kevin Burge for suggesting this - and providing the fix. - - * ace/Svc_Conf.l: Added support for "~" in pathnames to support - Win32isms. Thanks to Kevin Burge - for suggesting this and providing the fix. - - * ace/Refcounted_Auto_Ptr.i (assign): Fixed the code to avoid a - race condition. Thanks to Charlie Duke for this fix. - -Thu Jul 26 08:15:36 2001 Douglas C. Schmidt - - * include/makeinclude/platform_vxworks5.x_g++.GNU: Changed - $PATH to $(PATH). Thanks to Frank Wolf for reporting this. - -Wed Jul 25 17:46:58 2001 Douglas C. Schmidt - - * ace/Asynch_Acceptor.{h,cpp}: Added an asynch_accept() accessor - method. Thanks to Craig L. Ching for - reporting this. - -Wed Jul 25 17:36:09 2001 Douglas C. Schmidt - - * ace/Refcounted_Auto_Ptr.i: Added a lock for the reference count - to the assign() method. Thanks to Charlie Duke - for reporting this. - -Fri Jul 27 23:17:31 2001 Steve Huston - - * ace/ace_wchar.h: If ACE_HAS_XPG4_MULTIBYTE_CHAR is set, then - also set up definitions for functions that are not present - (ACE_LACKS_ITOW, ACE_LACKS_WCSICMP, ACE_LACKS_WCSNICMP, - ACE_LACKS_WCSDUP). - - * ace/ace_wchar.inl: If not ACE_WIN32, include to see - strlen(). - - * ace/OS_String.inl (strstr): The XPG4 multibyte version of - strstr() is wcswcs(), whereas the ANSI C / UNIX98 version is - wcsstr(). So if ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, use - wcswcs. - -Fri Jul 27 21:52:48 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the IDL_Cubut test with GIOP Lite - script, to our daily builds. - -Fri Jul 27 16:50:49 2001 Steve Huston - - * tests/Log_Msg_Test.cpp: Silence a compile warning in g++. - -Fri Jul 27 12:18:49 2001 Steve Huston - - * ace/Log_Msg.cpp (log): Fixed compile error - missing "" around - 's' for the %S case. - -Fri Jul 27 11:07:26 2001 Chad Elliott - - * ace/OS.h: - - After conversation with Steve Huston, I am reverting his change - pertaining to HPUX from "Tue Jul 10 18:15:39 2001 Steve Huston - ". - -Fri Jul 27 10:57:24 2001 Chad Elliott - - * ace/SOCK_Dgram_Bcast.cpp: - - Fix the ACE_SOCK_Dgram_Bcast::mk_broadcast() which was completely - broken on AIX. The broadcast_client in docs/tutorials/008 now - works with the help of this change. - -Thu Jul 26 22:09:19 2001 Steve Huston - - * ace/Log_Msg.cpp (log): Extend behavior so that all printf - formatting conversion specifiers can be used with all legal - ACE_Log_Msg format characters. This allows the caller to line - up columns on any field, like line number or program name, or - thread ID. Thanks to Paul Caffrey for - motivating this extension. - - * tests/Log_Msg_Test.cpp: Added a new function, test_format_specs, - that verifies the formatting. Right now it does not detect the - correctness of the strings produced - they have to be examined - in the log file to check. This needs to be fixed still. - -Thu Jul 26 11:48:16 2001 Carlos O'Ryan - - * bin/count_lines: - Add a few new file types. - -Wed Jul 25 23:49:43 2001 Krishnakumar B - - * include/makeinclude/platform_tru64_g++.GNU: - - Fixed some missing defines in the Makefile for DEC Unix versions - 4.0D, 4.0E. We don't support or suggest this combination. Hence - the oversight in missing the needed defines. - - Thanks to Martin Krumpolec for reporting this. - -Wed Jul 25 23:49:00 2001 Craig Rodrigues - - * include/makeinclude/wrapper_macros.GNU: - - Remove extraneous rapi = 0. - -Wed Jul 25 18:53:18 2001 Ossama Othman - - * html/index.html: - - Added CORBA Security Service main page link to the list of - documentation. - -Wed Jul 25 17:41:43 2001 Ossama Othman - - * ltcf-c.sh: - * ltcf-cxx.sh: - * ltconfig: - - Removed these libtool related files. New versions of libtool - (GNU libtool >= 1.4b) no longer use them. - - * config.guess: - * config.sub: - * ltmain.sh: - - Removed these files. We no longer need to keep custom copies - lieing around since libtool 1.4b includes all of our local - changes (i.e. our changes have been folded into the upstream - libtool sources). - - * install-sh: - * missing: - * mkinstalldirs: - - Removed these files. Automake will automatically add these when - necessary. - -Wed Jul 25 16:29:48 2001 Steve Huston - - * tests/Max_Default_Port_Test.cpp: ACE-ified the code and fixed - a number of ACE_DEBUG %p directives without a corresponding - string. Also, closed a 2 handle-per-try handle leak, which - may have affected test results on some platforms. - * tests/Max_Default_Port_Test.h: Added a destructor to the - test class - it's used to close the acceptor handle down. - -Wed Jul 25 15:21:22 2001 Krishnakumar B - - * ace/OS.h: - - Fixed the _XOPEN_SOURCE checking to _XOPEN_SOURCE < 500 to fix - incorrect declaration of prototype. This fixes the warnings when - compiling with gcc-3.0. Thanks to Ossama for suggesting the fix. - -Wed Jul 25 08:05:45 2001 Balachandran Natarajan - - * tests/Thread_Pool_Reactor_Resume_Test.h: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: Fixed a subtle race - condition. This hardly showed up in many of our daily - builds. The race condition had to be fixed to show the users of - the cautious approach that one needs to take if they are - resuming the handle in the application itself. - -Tue Jul 24 16:41:57 2001 Joe Hoffert - - * ace/Thread_Manager.cpp : - Added "&& ! defined (ACE_HAS_PACE)" ifdefs to already existing - #if defined (VXWORKS) sections of code to get ACE_HAS_PACE to - compile on VxWorks. - - * ace/OS.i : - * ace/OS.cpp: - Fixed formatting of some comments and added needed PACE - calls for ACE_HAS_PACE on VxWorks. - - * ace/OS.h : - Put #if !defined guards around the ACE_THR_PRI* macros - so that we can define them in the config*.h files if - they need to be corrected. For instance, ACE_THR_PRI_OTHER_MIN - has a different value on SunOS 5.8 than it does on SunOS 5.7, - i.e., -20 vs. 0 respectively. - - Also, added some needed typedefs and #define for ACE_HAS_PACE - on VxWorks and updated some comments concerning ACE_OS::thr_create - flags. - - * ace/Sched_Params.cpp (priority_min, priority_max): - Changed to return correct thread priority min/max for - Solaris threads. We now use the ACE_PRI_THR* macros - for these values while still calling ACE_OS::priority_control - for process and LWP priorities. - - * ace/config-sunos5.8.h: - Added setting of ACE_THR_PRI_OTHER_MIN to be correct - for SunOS 5.8. - -Tue Jul 24 13:47:32 2001 Balachandran Natarajan - - * ace/SSL/SSL_Asynch_Stream.h (ACE_SSL_Asynch_Stream): - * ace/SSL/SSL_Asynch_Stream.cpp: Added a open () method that - matches the signature of ACE_Service_Handler. This should fix - the warnings in Borland builds that complain about hiding - the virtual functions. - -Tue Jul 24 10:56:04 2001 Ossama Othman - - * bin/generate_doxygen.pl (TAO_DOCS): - - Added "tao_security" and "tao_ssliop" Doxygen configurations to - the list of documentation to generate. - -Tue Jul 24 07:45:03 2001 Douglas C. Schmidt - - * ace/Containers_T: Fixed some problems with the lack of - const for the ACE_DLList and ACE_Double_Linked_List classes. - Thanks to Michael Kircher for reporting this. - - * ace/config-cygwin32-common.h: Removed the ACE_LACKS_FORK - macro since this is apparently working on Cygwin. Thanks tj - Stefan Kluehspies for reporting - this. - - * ace/config-cygwin32.h: Removed the #define _CLOCKID_T - macro, which should now be handled by the following change. - - * ace/OS.h: Added a #defined for _CLOCKID_T_. Thanks to - Stefan Kluehspies for - reporting this. - -Tue Jul 24 11:10:59 2001 Krishnakumar B - - * ace/OS.h: - - Fix the compile errors seen on gcc-3.0 with -pedantic and - -Wno-long-long. This should fix all the errors. - -Tue Jul 24 10:07:31 2001 Chad Elliott - - * include/makeinclude/platform_sunos5_g++.GNU: - - Add an optimize override to 0 for g++ 3.0. The compiler breaks on - a tremendous amount of files, even with -O. - -Tue Jul 24 10:04:52 2001 Chad Elliott - - * ace/INET_Addr.cpp: - - Corrected a run-time error on Tru64 with gcc. Any executable - that called ACE_INET_Addr::get_host_name() would core dump. - This was caused by the call to ACE_OS::gethostbyaddr_r(). - -Tue Jul 24 08:20:02 2001 Chad Elliott - - * include/makeinclude/platform_aix_ibm.GNU: - - Change -O2 to -O. The optimizer seems to be a tiny - bit broken, which is demonstrated by a few TAO and orbsvcs - tests. - -Mon Jul 23 17:38:46 2001 Ossama Othman - - * etc/tao_security.doxygen: - * etc/tao_ssliop.doxygen: - - New Doxygen files for TAO's CORBA security libraries. - -Mon Jul 23 13:48:26 2001 Ossama Othman - - * ace/MEM_Connector.cpp (connect): - - Disable non-blocking on the stream after its handle has been - set. Previously, non-blocking was disabled on an uninitialized - MEM_Stream, after which the handle was set (i.e. initializing - the stream). In order to properly disable non-blocking on a - stream, its handle must be set first since ioctl() operations - are typically performed on the underlying stream handle. - -Mon Jul 23 13:06:39 2001 Steve Huston - - * ace/WFMO_Reactor.cpp (event_handling): Corrected the loop check - to account for a zero ACE_Time_Value *, avoiding a crash in - tests/Reactor_Timer_Test, as well as any other program that - called ACE_Reactor::handle_events with a zero timer pointer. - -Mon Jul 23 10:39:55 2001 Nanbor Wang - - * ace/OS.h: Added /**/ between #include and to - avoid warning from CE compiler. - - * ace/ace_dll.vcp: Added Obchunk.cpp to the project. - -Sun Jul 22 08:19:43 2001 Douglas C. Schmidt - - * ace/config-cygwin32.h: ADded a #define for_CLOCKID_T. Thanks to - Christophe Galerne for - reporting this. - - * ace/Log_Record.cpp (priority_names_): Added commas after the - 'ACE_LIB_TEXT ("LM_UNK(04000)")' lines. Thanks to Steve Harris - for reporting this. - -Sat Jul 21 19:56:08 2001 Douglas C. Schmidt - - * ace/Map_T.{h,i}: Made current_value() a const member function. - Thanks to Johnny Willemsen for reporting this. - -Fri Jul 20 10:16:46 2001 Douglas C. Schmidt - - * ace/Connector.cpp (create_AST): Replaced some calls to - sh->get_handle () with a cached value of handle. This fixes a - bug with gcc 2.96 on Tornado 2.1/VxWorks for SuperH. Thanks to - Frank Wolf for reporting this. - - * examples/Connection/non_blocking/CPP-acceptor.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - * examples/Connection/non_blocking/CPP-connector.cpp: Changed the - SH macro to SVH to avoid clashes with a macro in VxWorks. - Thanks to Frank Wolf for reporting this. - -Thu Jul 19 06:55:07 2001 Douglas C. Schmidt - - * ace/config-g++-common.h: Version 2.96 of g++ on VxWorks - is missing auto_ptr, so let's add the ACE_LACK_AUTO_PTR flag - there. Thanks to Frank Wolf for suggesting this. - -Fri Jul 20 09:47:38 2001 Nanbor Wang - - * ace/Log_Msg.cpp: Fixed WinCE errors. CE does not support - UNIX_Syslog. - -Thu Jul 19 22:39:32 2001 Nanbor Wang - - * tests/MEM_Stream_Test.cpp: - * ace/MEM_IO.h: - * ace/MEM_IO.i: - * ace/MEM_IO.cpp: On non-Win32 platforms, disable multithreaded - MEM_IO if _ACE_USE_SV_SEM is defined. - -Thu Jul 19 15:25:11 2001 Paul Calabrese - - * ace/MEM_Acceptor.i (mmap_prefix): - - Fix case where a null pointer is passed in. - -Thu Jul 19 06:55:07 2001 Douglas C. Schmidt - - * ace/Connector.cpp (connect_svc_handler): Missed one change... - Thanks to Bala for reporting this! - - * include/makeinclude/platform_vxworks5.x_g++.GNU (HOST_DIR): Added - support for the SH7700 and SH7700LE. Thanks to Frank Wolf - for reporting this. - - * ace/OS.i (truncate): Make sure to close the handle that we - opens. Thanks to Lothar for reporting this. - - * ace/Connector.cpp: Changed the SH macro to SVH to avoid clashes - with a macro in VxWorks. Thanks to Frank Wolf - for reporting this. - -Wed Jul 18 13:15:06 2001 Douglas C. Schmidt - - * ace/OS_Dirent.cpp (scandir_emulation): Removed the calls to the - ACE_ERROR_RETURN macros to avoid dependencies on ACE_Log_Msg - from within the ACE_OS layer. Thanks to Bala for pointing this - out! - - * ace/ACE.{h,cpp}: Added a new wrapper method for ACE_OS::select() - that uses ACE_Handle_Set *'s rather than fd_set *'s. This is - motivated by work Steve Huston and I are doing on our new book - "C++ Network Programming: Resolving Complexity with ACE and - Patterns." - - * ace/Malloc_T.i (release): Removed an unnecessary "else" to - make gcc 2.96 happy. Thanks to Frank Wolf for - reporting this. - - * Happy birthday to me and Angelo Corsaro! - -Tue Jul 17 00:34:40 2001 Douglas C. Schmidt - - * ace/SString.h (ACE_Tokenizer): Make sure that the data members - are protected, not private... Thanks to Martin Krumpolec for - reporting this (again)! - -Wed Jul 18 16:40:56 2001 Irfan Pyarali - - * ace/Log_Msg.cpp (program_name): Undid the following changes: - - ChangeLogTag:Tue Jul 10 11:32:26 2001 Tibor Kiss - - Tibor will be looking into this further since this change - currently causes shutdown problems on Win2000. - -Wed Jul 18 15:59:03 2001 Krishnakumar B - - * ace/config-tru64.h: - - Removed _LIBC_POLLUTION_H. It seems that this macro is causing - problems for some users. Thanks to Pierre Oberson - for prompting this fix. - -Tue Jul 17 13:00:11 2001 Balachandran Natarajan - - * tests/run_test.lst: Enabled the MEM_Stream test on Linux. - -Mon Jul 16 14:59:32 2001 Douglas C. Schmidt - - * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): Added a comment - that discourages developer from using the ACE_Shared_Memory_Pool - and points them to the ACE_MMAP_Memory_Pool instead. Thanks to - Johnny Chen for motivating this. - - * ace/OS_Dirent.cpp (readdir_emulation): Fixed a handle leak - in the event that errors occur. Thanks to Kevin Burge - for reporting this. - - * ace/Log_Msg_UNIX_Syslog.cpp (open): Add an ACE_const_cast() - to the program name for platforms like LynxOS whose openlog() - method is char * rather than const char *. Thanks to Bala for - reporting this. - -Sun Jul 15 11:06:33 2001 Douglas C. Schmidt - - * ace/Log_Msg_NT_Event_Log.cpp: Fixed the implementation so that - it's consistent with the new program_name() features. Thanks to - Chris Kohloff for this fix. - -Sun Jul 15 11:04:26 2001 Carlos O'Ryan - - * ace/SSL/ACE_SSL.dsp: - Removed references to $OPENSSL_ROOT, the user should configure - those in the Tools -> Option -> Directories tab. - -Fri Jul 13 23:02:46 2001 Ossama Othman - - * ace/SSL/SSL_Asynch_Stream.h: - * ace/SSL/SSL_Asynch_Stream.cpp: - * ace/SSL/SSL_Asynch_BIO.h: - * ace/SSL/SSL_Asynch_BIO.cpp: - - Only support asynchronous SSL streams when using OpenSSL > - 0.9.5a. The BIO method signatures changed in OpenSSL 0.9.6. - -Fri Jul 13 22:48:56 2001 Ossama Othman - - * ace/SSL/SSL_Asynch_BIO.cpp (methods_ACE): - - Removed excess element in aggregate initializer. - -Fri Jul 13 22:29:01 2001 Ossama Othman - - * ace/SSL/SSL_Asynch_Stream.cpp (print_error): - - The OpenSSL ERR_error_string_n() function is only supported in - OpenSSL 0.9.6 or better. - -Fri Jul 13 14:59:18 2001 Alexander Libman - - * ace/WIN32_Asynch_IO.h (ACE_WIN32_Asynch_Result): - * ace/WIN32_Asynch_IO.cpp (set_error, set_bytes_transferred): - - Added new methods set_error() and set_bytes_transferred(). - Needed for below changes and new asynchronous SSL stream - implementation. - - * ace/WIN32_Proactor.cpp (handle_events): - - Fixed error handling semantics so that it is consistent with the - POSIX Proactor error handling semantics. - - (post_completion): - - Pass the amount of bytes transferred and the completion key to - the Win32 PostQueuedCompletionStatus() function. The error, if - any, will later be extracted in the handle_events() method. - -Fri Jul 13 15:59:45 2001 Douglas C. Schmidt - - * netsvcs/servers/main.cpp (main): The server was always outputing - LM_DEBUG information, even when the program was not run with the - -d command line argument. Therefore, changed the following - lines from: - - if (ACE::debug () == 0) - ACE_Log_Msg::disable_debug_messages (); - - to: - - if (ACE::debug () == 0) - ACE_LOG_MSG->priority_mask (~LM_DEBUG, ACE_Log_Msg::PROCESS); - - Thanks to Jerry D. De Master for - reporting this fix. - -Fri Jul 13 12:16:03 2001 Ossama Othman - - * ace/SSL/SSL_Asynch_BIO.h: - * ace/SSL/SSL_Asynch_BIO.cpp: - * ace/SSL/SSL_Asynch_Stream.h: - * ace/SSL/SSL_Asynch_Stream.cpp: - - New asynchrounous SSL stream implementation contributed by - Alexander Libman . - - * ace/SSL/ACE_SSL.dsp: - * ace/SSL/Makefile: - * ace/SSL/Makefile.bor: - - Added new asynchronous SSL stream source files to these - Makefiles and project files. - -Fri Jul 13 09:40:08 2001 Jerry D. De Master - - * ace/Log_Msg.*, - ace/Logging_Strategy.*, - ace/Log_Msg_UNIX_Syslog.*: - Applied patches to ACE_Log_Msg, ACE_Logging_Strategy, and - ACE_Log_Msg_UNIX_Syslog that are required to add the program - name logging strategy option ('n') and to initialize the UNIX - syslog facility with the program name. Also included are Boris - Kolpackov patches for ACE_LACKS_IOSTREAM_TOTALLY - to ACE_Logging_Strategy. - -Thu Jul 12 19:54:27 2001 Ossama Othman - - * examples/Registry/test_registry_update.cpp (main): - - Fixed unused argument warning. - -Thu Jul 12 19:57:12 2001 Frank Hunleth - - * bin/auto_run_tests.lst: - - Added TAO/tests/RTCORBA/ORB_init to the auto run list. - -Thu Jul 12 17:11:35 2001 Krishnakumar B - - * bin/nightlybuilds/builds.lst (WEB): - - Temporarily removed the IA-64 build till some issues get sorted - out. - -Thu Jul 12 06:01:03 2001 John Michael Zorko - - * netsvcs/lib/Server_Logging_Handler.cpp: - Added an an additional #define in config-macosx.h called - ACE_HAS_MACOSX_DYLIB, and checked to see if this was _not_ - defined before instantiating the offending template in - Server_Logging_Handler.cpp. OS X has this thing about .dylibs - (OS X version of .so) where they can't have any duplicate - symbols, which is why libnetsvcs wasn't building on OS X - earlier. This fixes that. - - * include/makeincludes/platform-macosx.GNU: Added -lACE to the - LIBS line, which fixed the majority of the build problems. - - * ace/config-macosx.h: Added the ACE_HAS_MACOSX_DYLIB #define - mentioned above. - -Thu Jul 12 06:01:03 2001 Douglas C. Schmidt - - * ace/TLI_Connector.cpp (complete): Changed ACE_OS::t_rcvconnect() - to simply t_rcvconnect(). Thansk to Andreas Geisler for - reporting this. - -Thu Jul 12 09:43:36 2001 Ossama Othman - - * ace/FILE_Connector.h (ACE_FILE_Connector, connect): - - Removed the default O_EXCL flag I added a few days ago. It is - mostly useful for preventing symbolic link attacks in a - directory with global write permissions. Pass the - responsibility of using the O_EXCL flag when necessary on to the - application developer. - -Wed Jul 11 22:31:50 2001 Krishnakumar B - - * include/makeinclude/rules.local.GNU (clean.local): - - Added ti_files to remove the template cache generated by KCC. - - * ace/TLI_Acceptor.cpp(open_new_endpoint): - - Fixed a small typo causing compilation errors under Tru64. - -Wed Jul 11 13:06:33 2001 Steve Huston - - * tests/Log_Msg_Test.cpp: Changed the ostream test to close the - under-test ostream file before trying to open it and read the - contents. Avoids the "already open" error now that - ACE_FILE_Connector includes O_EXCL by default, and avoids any - potential file buffering issues reading an already-open file. - -Wed Jul 11 08:31:02 2001 Jeff Parsons - - * tests/Dirent_Test.cpp: - - Wrapped a string literal with ACE_TEXT, to get rid of a Win2000 - WChar build error. - -Wed Jul 11 06:41:43 2001 Douglas C. Schmidt - - * ace/TLI_Stream.cpp, - * ace/TLI_Connector.cpp, - * ace/TLI_Acceptor.cpp: Added enhancements so that the code would - work on Win32. Thanks to Andreas Geisler - for reporting this. - -Tue Jul 10 19:26:15 2001 Ossama Othman - - * ace/ace_dll.dsp: - - Disabled generation of source browse information. It was - causing problems on some existing builds that didn't use it. - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - - Removed certificate verification code. It is up to the - application, not the ACE_SSL library, to perform proper - certificate verification. - -Tue Jul 10 23:02:00 2001 Craig Rodrigues - - * tests/Log_Msg_Test.cpp: - Fix test so it doesn't open output file to write to twice. - Thanks to Ossama for finding it. - -Tue Jul 10 19:10:19 2001 Steve Huston - - * ace/ace.icc: Corrected the mis-applied patch for ace.icc in - Mon Jul 09 19:12:42 2001 Steve Huston - -Tue Jul 10 16:01:52 2001 Ossama Othman - - * THANKS: - - Added Sangeetha Ramadurai to - the hall of fame. - -Tue Jul 10 18:15:39 2001 Steve Huston - - * ace/WFMO_Reactor.cpp (event_handling): Move the logic for - noticing that the wait timed out, but did not expire any - timers, into this function. Will remove it from Reactor.cpp, - to properly move the fix into handle_events() rather than - needing to call run_reactor_event_loop to get it right. - * ace/Select_Reactor_T.cpp - still need to add similar logic here. - - * ace/config-sunos5.6.h: Re the following: - Mon Jul 2 15:26:32 2001 Nanbor Wang - Replaced ACE_HAS_POSIX_SEM, and left ACE_LACKS_NAMED_POSIX_SEM out. - Solaris does indeed have POSIX semaphores in 2.6 and later, but - requires the changes to OS.i below to work right. - - * ace/OS.h: For ACE_PROC_PRI_OTHER_MIN (and MAX), on HP-UX, - convert the HP-UX priority value to the POSIX range. - - * ace/OS.i (ACE_OS::sema_init, named POSIX semaphore): On Solaris - and HP-UX, the name of a POSIX semaphore needs to start with - a slash (further restricted on Solaris). Enforce that here by - prepending a slash, or by chopping off parts of the name. - -Tue Jul 10 16:08:04 2001 Krishnakumar B - - * include/makeinclude/platform_osf1_4.0.GNU: - - Fixed the default flags so that it enables the user to override - settings. Now that the long pending fix to wrapper_macros.GNU is - through, this should work fine now. - -Tue Jul 10 13:37:31 2001 Jeff Parsons - - * ace/OS_Dirent.cpp (readdir_emulation): - - Removed the hard cast to char* of one of the two arguments in - a call to strcpy. In the WChar win32 build, this cast was - causing the source and target strings to be of different widths. - -Tue Jul 10 11:32:26 2001 Tibor Kiss - - * ace/Log_Msg.cpp: - Completed the ACE_Log_Msg::close method with the - ACE_Thread::keyfree (log_msg_tss_key_) and key_created_ = 0; to - ensure restartability by multiple successive ACE::init and - ACE::fini calls. This fix prevent leaks from occurring when - ACE::init() and ACE::fini() are called multiple times. - -Tue Jul 10 11:12:00 2001 Chris Gill - - * ace/OS_Dirent.{h, inl}: refactored XDIR, dirent usage for pSOS - - user is no longer responsible for buffer deallocation after each - readdir call, only for passing the pointer returned from opendir - into closedir when all done. ACE_DIR structure is now used - consistently for all pSOS dirent calls. - -Tue Jul 10 06:06:07 2001 Douglas C. Schmidt - - * ace/Service_Repository.h: Updated the insert() comment to - clarify the return values. Thanks to Johnny Willemsen for - suggesting this. - - * ace/Service_Repository.{h,i}: Made the current_size() and - total_size() methods const. Thanks to Johnny Willemsen for - suggesting this. - - * ace/Service_Repository.h: Fixed a typo in the comments. Thanks - to Johnny Willemsen for reporting this. - -Tue Jul 10 08:39:04 2001 Chad Elliott - - * ace/config-vxworks5.x.h: - - Added the macro ACE_LACKS_UNIX_SYSLOG. - -Tue Jul 10 08:26:57 2001 Chad Elliott - - * ace/Log_Msg_UNIX_Syslog.cpp: - - Added a macro, ACE_LACKS_SETLOGMASK, for platforms that have - syslog, but don't have setlogmask(). - - * ace/config-chorus.h: - - ChorusOS 4.0.1 happens to be one of them. - -Tue Jul 10 09:00:12 2001 Johnny Willemsen - - * ace/OS_Dirent.h - Made the member 'd_name' of the 'dirent' struct non-const, because - BCB had problems with it - -Mon Jul 09 22:41:43 2001 Ossama Othman - - * include/makeinclude/wrapper_macros.GNU (exceptions): - - Include platform_macros.GNU before the default for "exceptions" - is set. This fixes a problem where the default native - exceptions setting in platform_linux.GNU was not set due to the - fact that it was previously set in wrapper_macros.GNU. Thanks - to Hans Utz for tracking down - the problem. - -Mon Jul 9 16:40:02 2001 Ossama Othman - - * ace/Dirent_Selector.cpp (ACE_Dirent_Selector): - - Correct order of initialization of members to match order of - declaration. Fixes a warning issued from GCC. - - * ace/Dirent_Selector.inl: - - Added missing RCS ID keyword. Fuzz was whining about the lack - of it. - - * ace/Dirent_Selector.h: - - Corrected some Doxygen comments. - -Mon Jul 09 19:12:42 2001 Steve Huston - - * ace/ace.icc: Added Log_Msg_UNIX_Syslog and Log_Msg_NT_Event_Log - modules to the LOGGING component. Added Dirent_Selector to the - UTILS component. - -Mon Jul 9 15:59:56 2001 Joe Hoffert - - * ace/config-lynxos.h: - Added ACE_LACKS_MKSTEMP since LynxOS doesn't seem to have - this. - -Mon Jul 9 15:28:29 2001 Jeff Parsons - - * ace/Dirent_Selector.cpp: - * ace/Dirent_Selector.h: - - Added ACE_INLINE guards around inclusion of Dirent_Selector.inl. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - - Added Dirent_Selector.{h,i,cpp} to these projects. - -Mon Jul 9 06:52:09 2001 Douglas C. Schmidt - - * ace/Makefile.bor (OBJFILES): Added the Dirent_Selector.obj file. - - * tests/Dirent_Test.cpp: Integrated a new test for the - ACE_Dirent_Selector class. - - * ace/Makefile (UTILS_FILES), - * ace/Dirent_Selector.h, - * ace/Dirent_Selector.inl, - * ace/Dirent_Selector.cpp: Added support for a C++ wrapper facade that - encapsulates ACE_OS_Dirent::scandir(). Thanks to Rich Newman for - contributing this, as well. - - * ace/OS_Dirent.h, - * ace/OS_Dirent.inl, - * ace/OS_Dirent.cpp: Added support for the scandir() feature, which - makes it possible to selectively pick which files in a directory - to iterate over. Also fixed a bug in the emulation of dirent. - Thanks to Rich Newman for contributing - these fixes. - -Mon Jul 09 14:39:50 2001 Irfan Pyarali - - * ace/OS.i (thr_getprio and thr_setprio): Changed these two - function such that if we are on Solaris and we have pthreads - enabled, we should use the pthread calls rather than the native - Solaris calls. The reasons for choosing the pthread calls is - due to following problems with the native calls: - - - thr_getprio() is evil because on Solaris 5.8, a thread with - priority -20 (SCHED_OTHER) is reported to have priority 80. - - - thr_setprio() is evil because it cannot set the negative - priorities on Solaris 5.8. - - - Also, thr_setprio() cannot change the priority of a thread - with negative priority to a positive priority on Solaris 5.8 - (even though there is no error reported and thr_getprio() shows - that the change happened but pthread_getschedparam() shows that - no change happened). - - - In addition, suppose a thread of policy SCHED_RR or SCHED_FIFO - uses thr_setprio() to reset its priority, the priority will be - reset but the scheduling policy will be dropped to SCHED_OTHER. - This happens with both Solaris 5.7 and Solaris 5.8. - -Mon Jul 9 13:33:43 2001 Joe Hoffert - - * include/makeinclude/wrapper_macros.GNU: - Change PACE path to start at $PACE_ROOT rather than $ACE_ROOT/PACE - since the latter is not as flexible. Defined PACE_ROOT if not - already defined. Also, added inclusion of PACE library for VxWorks - even when inlining since not all the PACE functions should be - inlined. - -Mon Jul 09 10:59:22 2001 Ossama Othman - - * THANKS: - - Added Mouna Seri to the hall of fame. - -Mon Jul 9 11:10:44 2001 Jeff Parsons - - * ace/config-win32-msvc-5.h: - * ace/config-win32-msvc-6.h: - - Added conditional definitions for ACE_LD_DECORATOR_STR - "mfc" and "mfcd" so that the MFC release and debug versions - of libraries can be dynamically loaded in the same way that - the non-MFC release and debug versions are. Thanks to - Francois Bernier for suggesting - this enhancement. - -Mon Jul 09 11:31:12 2001 Johnny Willemsen - - * ace/pre.h - * include/makeinclude/compiler.bor - - Removed the disabling of the compiler warning 'parameter never - used'. Unused parameters are handled by ACE_UNUSED_ARG macro. - A missing ACE_UNUSED_ARG is now shown as warning in the BCB build - log. - -Sun Jul 08 11:26:23 2001 Ossama Othman - - * ace/OS.h (mkstemp): - * ace/OS.i (mkstemp): - - New mkstemp() wrapper. It is assumed to be available on the - given platform, unless ACE_LACKS_MKSTEMP is defined. - - * ace/FILE_Connector.h: - - Added O_EXCL to the default flags. This is a security hole - fix. - - * ace/FILE_Connector.cpp (connect): - - If mkstemp() is available, then use it to create a temporary - file rather than mktemp() (via ACE_FILE_Addr) since mktemp() is - susceptible to a denial-of-service attack. - - * ace/config-win32-common.h: - * ace/config-vxworks5.x.h: - - mkstemp() is not supported on MS Windows and VxWorks. Define - ACE_LACKS_MKSTEMP in these headers. - -Sun Jul 8 08:13:12 2001 Douglas C. Schmidt - - * ace/Select_Reactor_Base.h: Added a comment explaining what - the ACE_HAS_REACTOR_NOTIFICATION_QUEUE macro means. Thanks to - Kobi Cohen-Arazi for motivating this. - -Sat Jul 7 18:53:49 2001 Krishnakumar B - - * include/makeinclude/platform_osf1_4.0.GNU: - - Revert the changes made to this file. Please see the file for a - lengthy description. - -Fri Jul 06 21:53:26 2001 Christopher Kohlhoff - - * ace/config-win32-borland.h: - Reverted addition of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION. - -Fri Jul 6 19:55:23 2001 Douglas C. Schmidt - - * examples/Reactor/Multicast: Adding the support for UNIX Syslog - broke this example because LOG_DEBUG was suddenly defined as a - macro (it's in syslog.h). I've fixed this by renaming the LOG_ - enums to LM_ instead. Thanks to Bala for reporting this. - -Fri Jul 06 20:23:41 2001 Steve Huston - - * ace/Refcoutned_Auto_Ptr.i (null): Change const_cast<> to - ACE_const_cast() to build on older compilers, like IBM C/C++ 3.6.6. - -Fri Jul 06 20:13:29 2001 Steve Huston - - * netsvcs/lib/Name_Handler.cpp: - * netsvcs/lib/Server_Logging_Handler_T.cpp: - * netsvcs/lib/Token_Handler.cpp: - - More ACE_DEBUG disables. - -Fri Jul 6 15:55:54 2001 Ossama Othman - - * ace/OS.h (ACE_FD_SETSIZE): - - Integrated patch from Jody Hagins . Set the - default reactor file descriptor set size to be an integer - constant rather than a preprocessor constant. Some third party - software #undef FD_SETSIZE in their header files, causing build - problems in ACE. - -Fri Jul 06 18:20:39 2001 Steve Huston - - * netsvcs/lib/Client_Logging_Handler.cpp: #if 0'd out a bunch of - ACE_DEBUG statements that aren't appropriate for use in commercial - logging. These can be #if 1'd if there's some doubt while debugging - this stuff, but they aren't useful once debugged, and are - distracting since they're interespersed with application records. - -Fri Jul 6 13:40:20 2001 Balachandran Natarajan - - * ace/Log_Msg_UNIX_Syslog.cpp: Fixed a warning in g++. - -Fri Jul 06 11:39:41 2001 Steve Huston - - * ace/INET_Addr.h: Clarified (and improved doxygenation) of - constructor and set() methods regarding byte orders. - - * tests/Max_Default_Port_Test.icc: New file for this test. - * tests/tests.icp: Added Max_Default_Port_Test - -Fri Jul 6 08:36:20 2001 Chad Elliott - - * netsvcs/Makefile: Don't build this if ACE_COMPONENTS does not - contain Other. The netsvcs library requires Naming_Context. - -Fri Jul 6 05:44:13 2001 Douglas C. Schmidt - - * ace/Makefile (LOGGING_FILES): Added support for - Log_Msg_UNIX_Syslog. - - * ace/Log_Msg_UNIX_Syslog.{h,cpp}: - * ace/Log_Msg.cpp, - * ace/OS.h: Added support for a new UNIX syslog backend for the - ACE_Log_Msg class. Thanks to Jerry D. De Master - and Robert Davidson - . - - * ace/SOCK_Dgram.h: Fixed a typo in one of the send() method - comments. Thanks to Alain Decamps for - reporting this. - - * ace/config-macosx.h: Added a new file courtesy of John - Zorko so that things will work on MacOSX. - -Thu Jul 5 23:22:21 2001 Balachandran Natarajan - - Fixes that were required for fixing bug 575. Merged in from - branch bug_575_stage_2. - -Thu Jul 5 23:09:29 2001 Balachandran Natarajan - - * ace/CDR_Stream.cpp (ACE_InputCDR): Fixed a long standing bug in - the branch. This caused the DSI_Gateway test to fail. The - problem was from setting the write pointer to a wrong position - during the construction. - -Thu Jul 5 14:39:45 2001 Balachandran Natarajan - - * Merged with the main trunk and moved it to a new branch by name - bug_575_stage_2. - -Thu Jun 28 15:25:07 2001 Balachandran Natarajan - - * ace/Reactor.h (ACE_Reactor): - * ace/Reactor.cpp: Added a new method resumable_handler () to the - reactor interface. This would indicate whether the application - can take advantage by resuming the handlers themselves or - not. Not all reactors can allow this feature. - - * ace/Reactor_Impl.h: - * ace/Reactor_Impl.cpp: Added a pure virtual function so that all - the implementations can decide whether the handlers are - resumable or not. - - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_Base.cpp: - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp: - * ace/WFMO_Reactor.h: - * ace/WFMO_Reactor.cpp:Implemented resumable_handlers (). - -Sun Jun 24 11:25:07 2001 Balachandran Natarajan - - * Created this file. Got the whole stuff in ace to a new branch by - name bug_575_stage_1. This ChangeLog file will be in branch - bug_575. - -Fri Jun 22 16:52:13 2001 Balachandran Natarajan - - * ace/CDR_Stream.cpp: Changed the copy constructor for the - ACE_InputCDR's. Instead of duplicating the ACE_Data_Block we - now use the new copy constructor in the ACE_Message_Block. - - * ace/Message_Block.h: - * ace/Message_Block.cpp: Added a new copy constructor to the - ACE_Message_Block. This copy constructor does a deep copy from - the data block if the data block of the incoming message block - is on the stack or does a shallow copy of the data block (by - incrementing the ref count) if it is on the heap. - - END of entries from bug_575_stage_2. - -Thu Jul 5 22:07:33 2001 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the new perl script in LongUpcalls - in the daily builds. - -Thu Jul 5 20:36:00 2001 Craig Rodrigues - - * ace/config-win32-borland.h - define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION - * tests/Token_Test.cpp - Fix template instantiation problem. - -Wed Jul 4 15:35:47 2001 Joe Hoffert - - * tests/run_tests.vxworks: - Removed invocation of CDR_Array_Test. According to the ace - config files the compiler we are using is pre 2.8 (i.e., - ACE_HAS_GNUG_PRE_2_8 is defined). Therefore don't run - CDR_Array_Test since the Makefile doesn't build it (due to - the ACE_HAS_GNUG_PRE_2_8 macro). - -Wed Jul 04 14:26:10 2001 Irfan Pyarali - - * ace/Synch_T.h (class ACE_Acquire_Method): Moved the enums from - the Reverse Lock class into ACE_Acquire_Method, a non-template - class. These enums should have been inside the reverse lock - class, but some lame compilers cannot handle enums inside - template classes. - -Wed Jul 04 12:43:22 2001 Irfan Pyarali - - * ace/Synch_T.i (ACE_Reverse_Lock): Fully specified the - ACE_ACQUIRE_METHOD type. - -Tue Jul 3 15:43:25 2001 Balachandran Natarajan - - * ace/Select_Reactor_Base.cpp: Fixed a warning in g++. - -Tue Jul 3 14:44:00 2001 Craig Rodrigues - - * ace/config-win32-common.h: Borland C++ apparently - does not support the "extern template class" Microsoft VC++ - proprietary extension. Thanks to Chris Kohloff - for the fix. - -Tue Jul 03 12:26:33 2001 Irfan Pyarali - - * ace/Synch_T.h (class ACE_Reverse_Lock): Added a parameter to the - constructor of the reverse lock. The ACE_ACQUIRE_METHOD - parameter is used to indicate which acquire() method will be - called on the real lock when the release() method is called on - the reverse lock. REGULAR indicated the acquire() method, READ - indicates the acquire_read() method, and WRITE indicates the - acquire_write() method. Note that the try_*() methods are not - represented here because we have to make sure that the release() - method on the reverse lock acquires a lock on the real lock. - - Thanks to Edan Ayal for suggesting this. - -Tue Jul 3 06:20:13 2001 Douglas C. Schmidt - - * ace/Reactor.h, - * ace/Reactor_Impl.h, - * ace/Select_Reactor_Base.cpp, - * ace/Select_Reactor_Base.i, - * ace/Select_Reactor_Base.h, - * ace/WFMO_Reactor.cpp, - * ace/WFMO_Reactor.h: Added an enhancement that allows the - Reactor to selectively purge event handlers from its - notification queue according to their Reactor_Mask type. Thanks - to Edan Ayal for contributing this. - - * tests/Reactor_Notify_Test.cpp (run_notify_purge_test): - Added a new set of tests for the new selective notification - purging features of the Reactor. Thanks to Edan Ayal - for contributing this. - - * ace/WIN32_Asynch_IO.cpp: Removed the - ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority, - signal_number), initializer since we no longer use virtual - inheritance. Thanks to Alexander Libman - for reporting this. - - * ace/WIN32_Asynch_IO.h: Removed the virtual inheritance from - ACE_WIN32_Asynch_Result for the ACE_Asynch_Read_Stream_Result - and ACE_Asynch_Read_Dgram_Result classes. Thanks to Alexander - Libman for reporting this. - - * ace/Refcounted_Auto_Ptr.h: Made the destructor of - ACE_Refcounted_Auto_Ptr virtual so that users can override it - locally. Thanks to Jenny Kowald for - reporting this. - -Tue Jul 3 09:40:59 2001 Chad Elliott - - * include/makeinclude/platform_osf1_4.0.GNU: - * include/makeinclude/platform_osf1_4.0_g++.GNU: - - Allow users to set options like debug, exceptions, ... without - using override. - -Tue Jul 3 08:38:47 2001 Jeff Parsons - - * examples/Reactor/Proactor/test_dup_proactor.dsp: - - Fixed a mistake in the link to the ACE library. - -Mon Jul 2 16:23:04 2001 Jeff Parsons - - * examples/Reactor/Proactor/test_multiple_loops.dsp: - * examples/Reactor/Proactor/test_proactor.dsp: - * examples/Reactor/Proactor/test_proactor.dsw: - * examples/Reactor/Proactor/test_timeout.dsp: - * examples/Reactor/Proactor/test_udp_proactor.dsp: - - Fixed settings on release version of test_udp_proactor.dsp, - added it to the workspace, and removed unused file folders - from the FileViews of the other projects. - -Mon Jul 2 15:26:32 2001 Nanbor Wang - - * ace/config-sunos5.6.h: Removed ACE_HAS_POSIX_SEM and - ACE_LACKS_NAMED_POSIX_SEM. Thanks to Glenn Popelka - for helping track this down. - -Mon Jul 02 11:45:57 2001 Ossama Othman - - * bin/make_release: - - Disabled bootstrapping of ACE's autoconf support. It isn't - ready for general use. Doing so reduces the amount of - confusion. Thanks to Holger P. Krekel for - motivating this change. - -Mon Jul 2 13:18:14 2001 Douglas C. Schmidt - - * Moved ACE-configurations.txt into the docs directory. Also - removed the hopelessly out of date BIBLIOGRAPHY file. - - * Moved all the ChangeLog-* files into the new ChangeLogs - directory. Thanks to Holger P. Krekel for - this suggestion. - -Mon Jul 02 11:20:52 2001 Ossama Othman - - * config.guess: - * config.sub: - - Updated to the latest versions from the GNU FTP site. - -Mon Jul 02 11:30:20 2001 Irfan Pyarali - - * ace/Synch_T.i: Since the release() method on the reverse lock - calls the simple acquire() method on the real lock, it is - assumed that it is a simple acquire/release protocol with the - real lock. Therefore, I think all the other methods on the - reverse lock tryacquire(), acquire_read(), acquire_write(), - tryacquire_read(), tryacquire_write(), and - tryacquire_write_upgrade() should not be allowed. This falls in - line with the original concept of using reverse locks with - regular guards. - - Thanks to Edan Ayal for pointing this out. - -Mon Jul 2 11:17:37 2001 Chad Elliott - - * ace/Profile_Timer.cpp: - - Cleaned up the conditional macros. Added method bodies for - ACE_Profile_Timer::get_rusage() and - ACE_Profile_Timer::elapsed_rusage() when neither ACE_HAS_PRUSAGE_T - nor ACE_HAS_GETRUSAGE is defined. - - * Reverted the reverted changes in this entry. - "Fri Jun 29 22:31:56 2001 Balachandran Natarajan - ". These changes are ok, I just - needed to fix the bug in Profile_Timer.cpp. - -Mon Jul 2 09:40:45 2001 Chad Elliott - - * include/makeinclude/platform_aix_ibm.GNU: - - Add the output filter to the linker to avoid the duplicate symbol - warnings on AIX. - -Mon Jul 2 05:40:54 2001 Douglas C. Schmidt - - * ace/Logging_Strategy.cpp: Enhanced the code so that it works with - ACE_LACKS_IOSTREAM_TOTALLY. Thanks to Nir Drang - and Edan Ayal for reporting this. - - * ace/SPIPE_Addr.cpp (set): Added a "+ 1" to the computation of - the size of the SPIPE_Addr to account for the trailing NUL. - Thanks to Oren Zeev-Ben-Mordehai for - reporting this. - - * ace/Refcounted_Auto_Ptr.{h,i}: Added support for a "null()" - method to check if a refcounted auto ptr is NULL. Thanks to - Jenny Kowald for reporting this. - - * ace/config-macosx.h, - * ace/platform_macosx.GNU: Enhanced these files to support MacOSX. - Thanks to John Zorko for contributing this. - - * ace/Synch.h: Fixed the Doxygen documentation for all the - removed_ fields, which where somehow messed up. Thanks to - Johnny Willemsen for reporting this. - -Sun Jul 1 11:49:13 2001 Alexander Libman - - * ace: Enhanced the POSIX and Sun Proactor implementations as - follows: - - . POSIX_SIG_Proactor is now based on POSIX_AIOCB_Proactor - - . All classes ACE_POSIX_SIG_Asynch_XXXX are removed. - POSIX_SIG_Proactor uses the ACE_POSIX_AIOCB_Asynch_XXXX - classes now. - - . ACE_POSIX_AIOCB_Proactor::register_and_start_aio (...) - now calls a new virtual method: int - ACE_POSIX_AIOCB_Proactor::allocate_aio_slot - (ACE_POSIX_Asynch_Result *result). - - . The strategy of free slot allocation in SIG_Proactor is - a bit different from AIOCB and SUN Proactors. The - allocate_aio_slot() method is responsible for setting - notification information for aio request - (SIGEV_NONE/SIGEV_SIGNAL). For SIG_Proactor, the field - aio_sigevent.sigev_value.sival_int now contains index of aiocb - in the aiocb_list_, not a pointer. - - . The ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status, - int &return_status, size_t - &index, size_t &count) - parameter index defines initial slot to scan and the new - parameter count tells us maximum number slots to scan. On - return: index contains value to start scan next time, count - contains remained number of slots. Scanning is performed in - "wheel" style to allow all requests be handled with equal - priorities. - - . ACE_POSIX_AIOCB_Proactor::check_max_aio_num () checks for - max_number_files to open and tries to setup max_number_files - equal to aiocb_max_size_. if we failed than cut off - aiocb_max_size_ value to existing max_number_files. - - . POSIX_Proactor added member int os_id_ and constructor sets up - os_id_ (compilation time + run_time function) to know - OS(Sun/HP/Linux/...) and version. We need such info for - POSIX_SIG_Proactors to take into account the behavior of - different OS. - - . Delivery of simulated/"post_completed" Asynch_Results - (Timers, AsynchAccept,Wakeup ...). As both Proactors have no - reliable mechanizm for delivery "post_completed" results, so - the reliable queue of "post_completed" results was - implemented. The new member of AIOCB Proactor - ACE_Unbounded_Queue result_queue_ - has been added. Also added protected methods to the - ACE_POSIX_AIOCB_Proactor. - - . We had an error in all previous versions (from major ACE 5.1): - post_completion (int how_many) does not guarantee that all - completions will be delivered to the different threads running - event_loop (sometimes several completions could be delivered - to the one thread, in another thread performs during long time - application_spesific_code ()). Moreover, you can run now - Proactor event_loop in any number of threads (more than - SIGQUEMAX). - -Sun Jul 1 11:49:13 2001 Douglas C. Schmidt - - * examples/Reactor/Proactor: Integrated a test that exercises the - support for asynchronous UDP operations. Thanks to Roger Tragin - for contributing this. - - * ace/Synch_T.i: Changed the implementations of all the - acquire*() method to call release(). Thanks to Edan Ayal - for reporting this. - -Sat Jun 30 12:44:11 2001 Douglas C. Schmidt - - * examples/Connection/blocking/SPIPE-acceptor.cpp: Added better - support for shutting down the server when a signal occurs. - Thanks to Rich Newman for this - enhancement. diff --git a/ACE/ChangeLogs/ChangeLog-02a b/ACE/ChangeLogs/ChangeLog-02a deleted file mode 100644 index 870ec350d6e..00000000000 --- a/ACE/ChangeLogs/ChangeLog-02a +++ /dev/null @@ -1,9018 +0,0 @@ -Fri Jul 5 10:30:44 2002 Douglas C. Schmidt - - * ace/Array_Base.cpp: Swapped the order of includes so that - Array_Base.h comes after Malloc_Base.h. Thanks to Al Pariante - for reporting this. - -Thu Jul 4 11:27:05 2002 Douglas C. Schmidt - - * Happy 226th Birthday USA! - -Sat Jul 06 19:32:40 2002 Balachandran Natarajan - - * ace/Time_Value.h (ACE_Time_Value): Fix for [BUGID 1240]. Some of - the operators were missing explicit declarations in the header - file (they were anyway defined in the inlined files) which - created problems in builds where inlining was diabled. Please - see - - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1240 for - more details. Thanks to Marina Spivak for - reporting this. - -Fri Jul 5 18:44:39 2002 Steve Huston - - * ace/ACE.cpp: Corrected undeclared 'select_width' errors and - signed/unsigned mismatch warnings. - -Fri Jul 5 16:14:51 2002 Steve Huston - - * ace/OS.{h i} (send, sendto, recv, recvfrom): Change 'len' argument - from int to size_t. - Removed conditional typedef of ssize_t; it's done in Basic_Types.h. - - * ace/ACE.h (recv): Filled in documentation for varargs variant. - * ace/ACE.cpp (send, recv): Properly convert size_t 'count' arg to int - iovec count for call to ACE_OS::sendv/recvv(). - (handle_timed_accept, handle_timed_complete, handle_ready): Use - an int select_width for ACE_OS::select() calls to get the types - correct. This arg is ignored on Windows anyway. - - * ace/Basic_Types.h: If ACE_HAS_SSIZE_T not defined, and Win64, - typedef SSIZE_T ssize_t; else use the existing int typedef. - - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: - Change thread function to return ACE_THR_FUNC_RETURN, not void *. - -Tue Jul 02 21:43:53 2002 Nanbor Wang - - * ACEXML/common/XMLFilterImpl.h: One more pre/post mismatch. - -Tue Jul 2 16:58:55 2002 Krishnakumar B - - * ACEXML/common/XML_Types.h: - - Removed unnecessary includes and fixed a typo. - -Tue Jul 02 16:35:19 2002 Nanbor Wang - - * ACEXML/common/Attributes.h: - * ACEXML/common/Locator.h: Fixed mismatched pre/post inclusions. - - * ACEXML/parser/parser/Parser.cpp: Fixed compilation errors. - -Tue Jul 2 11:53:29 2002 Steve Huston - - * ace/config-all.h: Changed definition of ACE_THR_FUNC to incorporate - the platform's thread function return type (DWORD on Windows, - void * on most others). Uses a new typedef ACE_THR_FUNC_RETURN - to specify the platform's thread function return type. - - * ace/OS.{h i cpp} (thr_exit, thr_join): The status arg is now - a ACE_THR_FUNC_RETURN *. - Also moved remaining thread function definition type things to - config-all.h with the rest of them. - - * ace/Base_Thread_Adapter.{h cpp} (invoke(), ace_thread_adapter()): - * ace/OS_Thread_Adapter.{h cpp} - * ace/Thread_Adapter.{h cpp} (invoke(), invoke_i()): - Return type changed from void * to ACE_THR_FUNC_RETURN. - - * ace/Event_Handler.{cpp h} (read_adapter): Change return value from - void* to ACE_THR_FUNC_RETURN. - - * ace/Thread_Hook.{h cpp}: ACE_Thread_Hook::start () returns - ACE_THR_FUNC_RETURN, not void *. - - * ace/Thread.{h i} (exit, join): 'status' arg is now - ACE_THR_FUNC_RETURN *, not void *. - - * ace/Thread_Control.{h inl cpp} (status, exit): - * ace/Thread_Manager.{h cpp} (exit, join): Thread exit status - type changed from void * to ACE_THR_FUNC_RETURN. - - * ace/Task.{h cpp} (ACE_Task_Base): Return type from svc_run now - ACE_THR_FUNC_RETURN. - - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.{cpp, h}: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Client_Logging_Daemon.cpp: - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server.cpp: - * examples/Reactor/WFMO_Reactor/Abandoned.cpp: - * performance-tests/TCP/tcp_test.cpp: - * tests/ACE_Init_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Service_Config_DLL.cpp: - * tests/Task_Test.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - Change thread function to return ACE_THR_FUNC_RETURN, not void *. - - * examples/C++NPv2/TP_Logging_Server.cpp (handle_input, svc): - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp (open): - * examples/C++NPv2/display_logfile.cpp (svc): Change - ACE_reinterpret_cast to ACE_static_cast. Thanks to Doug Schmidt - for finding this. - - * examples/C++NPv2/TP_Logging_Server.h: - * examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp: Corrected use - of ACE_NEW_RETURN. - -Mon Jul 1 23:16:47 2002 Jeff Parsons - - * */Makefile: - - Updated dependencies. - -Mon Jul 1 21:59:44 2002 Krishnakumar B - - * ACEXML/common/Attributes.h: - * ACEXML/common/AttributesImpl.h: - * ACEXML/common/Attributes_Def_Builder.h: - * ACEXML/common/CharStream.h: - * ACEXML/common/ContentHandler.h: - * ACEXML/common/DTDHandler.h: - * ACEXML/common/DTD_Manager.h: - * ACEXML/common/DefaultHandler.h: - * ACEXML/common/Element_Def_Builder.h: - * ACEXML/common/EntityResolver.h: - * ACEXML/common/Env.h: - * ACEXML/common/ErrorHandler.h: - * ACEXML/common/Exception.h: - * ACEXML/common/FileCharStream.h: - * ACEXML/common/HttpCharStream.h: - * ACEXML/common/InputSource.h: - * ACEXML/common/Locator.h: - * ACEXML/common/LocatorImpl.h: - * ACEXML/common/Mem_Map_Stream.h: - * ACEXML/common/NamespaceSupport.h: - * ACEXML/common/SAXExceptions.h: - * ACEXML/common/StrCharStream.h: - * ACEXML/common/Transcode.h: - * ACEXML/common/URL_Addr.h: - * ACEXML/common/Validator.h: - * ACEXML/common/XMLFilter.h: - * ACEXML/common/XMLFilterImpl.h: - * ACEXML/common/XMLReader.h: - * ACEXML/common/XML_Codecs.h: - * ACEXML/common/XML_Types.h: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.h: - * ACEXML/parser/debug_validator/Debug_DTD_Manager.h: - * ACEXML/parser/debug_validator/Debug_Element_Builder.h: - * ACEXML/parser/debug_validator/Element_Tree.h: - * ACEXML/parser/parser/Entity_Manager.h: - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/parser/parser/Parser.h: - - ACE_LACKS_PRAGMA_ONCE fixes. - -Mon Jul 1 06:21:00 2002 Douglas C. Schmidt - - * ace/Sock_Connect.cpp (count_interfaces): Added a MacOSX-specific - value for OSIOCGIFCONF. Thanks to John Zorko - for this fix. - -Sun Jun 30 22:22:05 2002 Irfan Pyarali - - * ace/MEM_Addr.cpp (same_host): This method was unnecessarily - creating and copying both the local and remote addresses. I - changed it so that we only compare the IP addresses. - - * ace/MEM_Connector.cpp (connect): Changed debugging statement to - provide additional information. - -Sun Jun 30 15:32:47 2002 Douglas C. Schmidt - - * ace/Based_Pointer_Repository.h: - * ace/Array_Base.h: Added #include "ace/OS.h" to get the - definition of size_t on MacOS. Thanks to John Zorko - for this fix. - - * ace/Synch.cpp: Fixed the ACE_recursive_mutex_state::reset() method - so that it sets m.LockCount to 0. Thanks to Davide Pasetto - for reporting this. - - * ace/Synch.cpp: Fixed the implementation of - ACE_Condition so that it works - properly on Windows, where the recursive mutex count is - incremented by the OS. Thanks to Davide Pasetto - for reporting this. - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/C++NPv2/Client_Logging_Daemon.cpp: Changed "blocks" - parameter to "chunk" to be consistent with the terminology in - the book. - - * examples/C++NPv2/TP_Logging_Server.h: - * examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp: Added some - new code to safely allocate an array. - -Sun Jun 30 08:55:18 2002 Douglas C. Schmidt - - * tests/Enum_Interfaces_Test.cpp (ACE_TMAIN): Fixed this to use - ACE_Sock_Connect::get_ip_interfaces() rather than ACE::get_ip_interfaces(). - Thanks to for reporting this. - -Sun Jun 30 12:22:12 2002 Johnny Willemsen - - * etc/tao_portablegroup.doxygen: - Added this file that configures the doxygen configuration of the TAO - PortableGroup library. - - * html/index.html: - * bin/generate_doxygen.pl: - Updated these files so that the new PortableGroup doxygen - documentation is generated and listed in the index page. - -Fri Jun 28 08:07:12 2002 Douglas C. Schmidt - - * ace/Logging_Strategy.cpp: Added the ability to toggle - the LM_STARTUP and LM_SHUTDOWN messages. Thanks to - Adee Ran for the patch. - -Fri Jun 28 07:37:12 2002 Johnny Willemsen - - * ACEXML/common/URL_Addr.cpp: - Fixed BCB Unicode build error. - -Thu Jun 27 16:50:19 2002 Balachandran Natarajan - - * ace/TP_Reactor.cpp: - * ace/TP_Reactor.h: - * ace/TP_Reactor.i: Moved common code in get_socket_event_info () - to a new method clear_handle_read_set () and simplified the code - in get_notify_handle () so that it improves readability. - -Thu Jun 27 20:26:33 UTC 2002 Craig Rodrigues - - * tests/DLL_Test.cpp: Define retval before preprocessor checks to - fix Lynx build problem. - -Thu Jun 27 14:32:50 2002 Nanbor Wang - - * bin/nightlybuilds/builds.lst: Moved Fuzz, DLL_Core, DLL_Debug - builds to the new scoreboard also. - -Thu Jun 27 07:47:12 2002 Johnny Willemsen - - * ACEXML/tests/HttpCharStream_Test.cpp: - Fixed BCB Unicode build errors. - - * ACEXML/common/URL_Addr.h: - Documentation update. - -Wed Jun 26 09:56:38 2002 Nanbor Wang - - * bin/msvc_auto_compile.pl: Changed the list of XML related - directory name from XML to ACEXML. - -Wed Jun 26 13:55:01 UTC 2002 Craig Rodrigues - - * examples/Reactor/Multicast/Log_Wrappers.cpp: - * examples/Reactor/Ntalker/Log_Wrappers.cpp: - Remove references to SOCK_Dgram_Mcast_T. - -Tue Jun 25 15:13:49 2002 Steve Huston - - * ace/Basic_Types.h: Added ACE_WIN64 versions of - ACE_SSIZE_T_FORMAT_SPECIFIER and ACE_SIZE_T_FORMAT_SPECIFIER. - -Tue Jun 25 23:22:09 UTC 2002 Craig Rodrigues - - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast.i: - * ace/SOCK_Dgram_Mcast_T.cpp: Removed. - * ace/SOCK_Dgram_Mcast_T.h: Removed. - * ace/SOCK_Dgram_Mcast_T.i: Removed. - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - * ace/QoS/SOCK_Dgram_Mcast_QoS.h: - Reverted these files to before June 9. Existing code in QoS and - AVStreams were broken do to the changes. - -Tue Jun 25 14:45:31 2002 Steve Huston - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Comment out - declarations for info(), suspend(), and resume() - they're left - as exercises for the reader. - - * examples/C++NPv2/AC_CLD.dsp: Added SSL link libraries. - -Tue Jun 25 12:13:39 2002 Steve Huston - - * examples/C++NPv2/AC_CLD.dsp: - * examples/C++NPv2/examples.dsw: Added project for the - Acceptor-Connector Client Logging Daemon in chapter 7. - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Use the ACE - traits macros instead of relying on traits class support to - help the aged MSVC 6 compiler along. - -Mon Jun 24 20:55:45 2002 Irfan Pyarali - - * ace/ACE.cpp (select): Fixed typo. - -Mon Jun 24 17:39:31 2002 Steve Huston - - * ace/ace_dll64.mak: - * ace/ace_lib64.mak: NMAKE files for building ACE on 64-bit Windows - XP with the Platform SDK compiler. At some point, hopefully, - MSVC will allow 64-bit builds via the regular project files, - but for now, must use NMAKE. - - * ace/config-win32-common.h: #define ACE_WIN64 if doing a 64-bit build. - - * ace/ACE.cpp (select): Don't sync() the handles after select() on - Win64. The cast is illegitmate, and the call is a no-op on Windows. - -Mon Jun 24 17:55:58 2002 Krishnakumar B - - * include/makeinclude/wrapper_macros.GNU (ACE_BETA_VERSION): - - Grab the version information from Version.h rather than VERSION - as VERSION is not likely to installed when doing a make install. - Thanks to Bala for the suggestion. - - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/parser/parser/Parser.h: - - Get the prefix right in case of a default namespace being - present. Previously we were using a URI a get to the prefix, - which doesn't work when the URI is the same as URI for another - namespace prefix. - -Mon Jun 24 19:54:34 UTC 2002 Craig Rodrigues - - * ace/config-g++-common.h: Define - ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION for gcc 2.95 and higher. - -Mon Jun 24 07:26:41 2002 Douglas C. Schmidt - - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_Adapters.h: Changed uses of ACE_Recursive_Thread_Mutex - to ACE_RECURSIVE_SYNCH_MUTEX so things will work properly on - single-threaded configurations. Thanks to Craig Rodrigues for - reporting this. - -Mon Jun 24 12:07:00 UTC 2002 Craig Rodrigues - - * ace/RMCast/RMCast_IO_UDP.cpp: Remove ACE_SOCK_Dgram_Ex template instantiation. - -Mon Jun 24 03:26:10 2002 Krishnakumar B - - * ACEXML/common/AttributesImpl.cpp(isDuplicate): - - New function isDuplicate() to check duplicate attributes. Merged - support for duplicate attribute checking in setAttribute(). - - * ACEXML/common/AttributesImpl.h: - - Fixed documentation for a bunch of functions which had set/get - roles reversed. - - * ACEXML/common/AttributesImpl.i: - - Fixed more memory leaks. - - * ACEXML/common/NamespaceSupport.cpp(processName): - - Added support for processing attributes. - - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/parser/parser/Parser.h: - - Implement XML Namespace (http://www.w3.org/TR/REC-xml-names) - support. ACEXML parser supports the SAX 2.0 XML API. Parser has - two user tunable features available: namespaces (defaults to - true) and namespace_prefixes (defaults to false). - - * ACEXML/examples/SAXPrint/Print_Handler.cpp: - * ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp: - - Changed to reflect more event callbacks available now due to - above added support. - - * ACEXML/examples/SAXPrint/ns.svc.conf.xml: - - Changed to include a default namespace to test more code paths. - Found a bug in the process :-) Will fix tomorrow. - - The only remaining feature in ACEXML parser needed for CCM is - validator. Next target.... - - * ace/Message_Block.h: - - Fixed typo in documentation (ceases to exist and not seizes to - exist). - -Sun Jun 23 21:06:28 UTC 2002 Craig Rodrigues - Bill Fulton - - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast_T.cpp: - * ace/SOCK_Dgram_Mcast_T.h: - * ace/SOCK_Dgram_Mcast_T.i: - More SOCK_Dgram fixes supplied by Bill Fulton with modifications - by Craig Rodrigues. - - Remove proprietary typedefs for ACE mutex classes - - Make default mutex strategy for SOCK_Dgram_Mcast ACE_SYNCH_MUTEX - - (subscribe_ifs) fix check when determining if subscribed address - is the same as the bound address - -Sun Jun 23 14:51:48 2002 Douglas C. Schmidt - - * ace/Synch.h: Put the class ACE_recursive_mutex_state inside - the section ACE_HAS_THREADS. Thanks to Craig Rodrigues - for noticing the need for this. - -Sun Jun 23 14:05:12 2002 Johnny Willemsen - - * ACEXML/common/HttpCharStream.cpp: - Fixed BCB Unicode compile errors. - -Fri Jun 21 19:18:05 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move to IA64_Linux_GCC_3.1 and - Tru64_CXX builds to new scoreboard. - -Fri Jun 21 14:34:51 2002 Steve Huston - - * ace/config-sunos5.5.h: Enable - ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION for Forte 6 Update 1. - -Fri Jun 21 14:06:33 2002 Steve Huston - - * ace/Timer_Queue_Adapters.cpp (ACE_Thread_Timer_Queue_Adapter): - Changed ACE_GUARD_RETURN uses of command_mutex_ from - ACE_Recursive_Condition_Mutex to ACE_SYNCH_MUTEX to match - its definition. - -Fri Jun 21 06:21:33 2002 Christopher Kohlhoff - - * ace/config-win32-borland.h: - Re-enable ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION for all - versions of Borland C++. - -Thu Jun 20 20:50:51 2002 Steve Huston - - * ace/config-sunos5.5.h: Re-enable - ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION for Forte 6 Update 2. - - * ace/Functor.i: - * ace/Synch.cpp: Commented out all the uses of - ACE_TEMPLATE_METHOD_SPECIALIZATION. The class specialization was - already declared such, and doing it on the methods is not right. - But they're only commented out for now, just in case... - -Thu Jun 20 20:29:31 2002 Steve Huston - - * ace/Codecs.h (ACE_Base64): Added "friend class ace_dewarn_gplusplus" - to silence g++ warnings about private ctors and no friends. - -Thu Jun 20 20:21:39 2002 Steve Huston - - * tests/Recursive_Condition_Test.icc: Visual Age C++ configuration - for this new test. - * tests/tests.icp: Added Recusrive_Condition_Test.icc. - -Fri Jun 21 00:21:48 UTC 2002 Craig Rodrigues - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (dump): - Switch from ACE_SYNCH_MUTEX to ACE_SYNCH_RECURSIVE_MUTEX. - -Thu Jun 20 14:32:03 2002 Douglas C. Schmidt - - * ace/Synch.cpp (ACE_recursive_mutex_state): Replaced the - ACE_OS::mutex_lock/unlock calls with - ACE_OS::thread_mutex_lock/unlock so things will work on NT. - Thanks to Jeff Parsons for reporting this. - - * ace/Synch.{h,cpp}: Only compile the new - ACE_Condition template - specialization if ACE_HAS_THREADS. Thanks to Craig Rodrigues - for motivating this. - - * include/makeinclude/platform_sunos5_sunc++.GNU (CC_VERSION): Added - additional cases for SunC++ 5.2 and 5.3. Thanks to Carsten - Tonsberg Nielsen for reporting this. - - * ace/ATM_Stream.cpp (get_peer_name): - * ace/Log_Msg_UNIX_Syslog.cpp (log): - * ace/Logging_Strategy.cpp: Replaced the use of ACE_OS::strtok() with - ACE_OS::strtok_r(). Thanks to Eugene Alterman - for motivating this. - -Thu Jun 20 16:02:22 2002 Steve Huston - - * ace/config-sunos5.5.h: Commented out the below addition for now. - -Thu Jun 20 15:49:39 2002 Steve Huston - - * ace/config-sunos5.5.h: For Forte 6, Update 2 and up, add - #define ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION. - Earlier Forte 6 versions may also support this, but I don't have - one to test on. - Fixes compile warning on Filecache.cpp. - -Thu Jun 20 13:37:55 2002 Douglas C. Schmidt - - * examples/C++NPv2/README: Updated the README file to map the - filenames to the chapters in C++NPv2. - -Wed Jun 19 21:30:05 UTC 2002 Craig Rodrigues - Bill Fulton - - * ace/SOCK_Dgram_Mcast_T.cpp: Fix Win32 wchar build problems. - Thanks to Bill Fulton for supplying these fixes. - -Wed Jun 19 16:16:32 2002 Nanbor Wang - - * tests/tests.dsw: - * tests/Recursive_Condition_Test.dsp: Added a new project file. - -Wed Jun 19 06:50:54 2002 Douglas C. Schmidt - - * tests/run_test.lst: - * tests/Makefile.bor: - * tests/Makefile: Added the new Recursive_Condition_Test. - - * ACE/Timer_Queue_Adapters.{h,cpp}: Enhanced - ACE_Thread_Timer_Queue_Adapter so it uses the new - ACE_Condition. Thanks to - Stephen Howard for - suggesting this. - - * ace/Synch_T.h: Added a new RECURSIVE_CONDITION trait in - ACE_NULL_SYNCH and ACE_MT_SYNCH. - - * ace/Synch_T.h: Added a #define for ACE_SYNCH_RECURSIVE_CONDITION - so that we can parameterize it based on threads vs. non-threads. - - * docs/exceptions.html: Updated document to use ACE_RE_THROW - instead of the deprecated ACE_RETHROW macro. Thanks to - Andy Ling for reporting this. - - * ace/Timer_Queue_Adapters.h: Changed the order in which - the condition variable and mutex are defined to ensure the - mutex is initialized before we pass it to condition_'s - constructor. - - * ace/Filecache.cpp: - * ace/Synch.cpp: - * ace/Atomic_Op.i: Replaced ACE_TEMPLATE_SPECIALIZATION with - ACE_TEMPLATE_METHOD_SPECIALIZATION so this will compile correctly - on certain (broken) compilers, such as SunC++ 6.1. - -Wed Jun 19 14:25:52 2002 Balachandran Natarajan - - * ace/TP_Reactor.cpp (handle_socket_events): Couple of small - fixes. The fixes are for - - 1. Bug http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1231 - and it is self-explanatory - - 2. The find () operation after dispatch was not holding the lock - and chances of race are high. This is documented as #2 in - bug http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1233 - - Added some comments in the code explaining what is going - on. Thanks to Carlos for identifying the problem. - - * ace/Event_Handler.h: Added a enum to indicate the two states - returnable by the call resume_handler (). - - * ace/Event_Handler.cpp (resume_handler): Instead of returning 0, - we return ACE_Event_Handler::ACE_REACTOR_RESUMES_HANDLER. - -Wed Jun 19 13:42:16 2002 Balachandran Natarajan - - * tests/tests.dsw (Project): Added TP_Reactor_Test.dsp to the - workspace. - -Wed Jun 19 11:57:02 2002 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Disable TAO/tests/Nested_Upcall_Crash on minimum_corba builds. - -Tue Jun 18 14:29:26 2002 Douglas C. Schmidt - - * ace/Synch.{h,i}: Added a new template specialization of ACE_Condition<> - that supports recursive mutexes used in conjunction with ACE - condition variables. Thanks to Michael Lindner - and Mike Vitalo for - contributing this. - - * ace/SOCK_Dgram_Mcast.cpp: Reverted the file to the previous version - since somehow things got messed up... - -Tue Jun 18 12:44:54 2002 Douglas C. Schmidt - - * ace/OS.{h,i}: Added a new method called stopped() that - returns 1 if the timer has already been stopped. Thanks to - Giovanni Zito for this suggestion. - -Tue Jun 18 12:17:58 2002 Jaiganesh Balasubramanian - - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - Added the RCS ID symbol. - -Tue Jun 18 12:41:15 2002 Balachandran Natarajan - - * ace/CDR_Stream.i (adjust): Added a check for pointer overflow - befor setting the write pointer. thanks to Rich Siebel and Byron - Harris for pointing this out. - -Tue Jun 18 07:50:14 2002 Ossama Othman - - * ace/Env_Value_T.h: - - Include "ace/OS.h". It is required for some types and function - calls made in this header. Thanks to Michael Kircher for - pointing this out. - -Mon Jun 17 17:36:52 2002 Steve Huston - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: Changed call - to ACE_Asynch_Connector::open() to take advantage of new - defaults, made on: - Sat Jun 15 20:30:41 2002 Steve Huston - -Mon Jun 17 17:21:38 2002 Steve Huston - - * ace/SUN_Proactor.cpp (handle_events): Remove the now-deleted - success argument from call to application_specific_code(). - -Mon Jun 17 13:40:24 2002 Balachandran Natarajan - - * include/makeinclude/platform_osf1_4.x_cxx.GNU: Removed the hard - override of LDFLAGS. Thanks to Martin Krumpolec - . - -Mon Jun 17 06:20:55 2002 Christopher Kohlhoff - - * ace/Object_Manager.cpp: - * ace/Service_Config.h: - * ace/Service_Config.cpp: - - Some components registered with the framework repository have - dependencies on the ACE_Log_Msg or ACE_Thread_Manager singletons. - Reorganised the ACE_Object_Manager::fini function so that the - framework repository is cleaned up before these objects. Thanks to - Don Hinton for assistance in tracking this down. - - * ace/Reactor.cpp: - - Prevent the reactor from being erroneously registered with the - framework repository a second time, as happened when the reactor - instance pointer was explicitly set. - -Sun Jun 16 20:38:27 2002 Krishnakumar B - - * ace/DLL_Manager.cpp (ACE_DLL_Handle): - * ace/DLL.cpp: - - More mismatched delete/delete[] errors. I am fixing the easier - ones. There may be more. - -Sun Jun 16 20:22:28 2002 Krishnakumar B - - * ACEXML/common/AttributesImpl.i (qName): - - Fixed memory leaks caused by mismatched delete/delete[]. Caught - by Valgrind. - - * ACEXML/examples/SAXPrint/main.cpp: - - Give useful usage messages. - - -Sat Jun 15 20:56:29 2002 Steve Huston - - * tests/tests.dsw: Added Proactor_Timer_Test.dsp. - -Sat Jun 15 20:30:41 2002 Steve Huston - - * ace/Asynch_Acceptor.{h cpp}: Added a new template method, - virtual int validate_connection - (const ACE_Asynch_Connect::Result& result, - const ACE_INET_Addr &remote, - const ACE_INET_Addr& local) - It replaces the old validate_new_connection() method, which is - now marked deprecated. Semantics are the same (return -1 to - ask framework to abort the connection before activating a - service). However, more information is available, including - the socket handle. - - * ace/Asynch_Connector.{h cpp}: Replaced validate_new_connection() - method with: - virtual int validate_connection - (const ACE_Asynch_Connect::Result& result, - const ACE_INET_Addr &remote, - const ACE_INET_Addr& local) - Examining the result argument is the only way to find out if - the asynchronous connect attempt succeeded or not. - The connect completion calls validate_connection() on either - success or failure as long as the validate_new_connection - flag is set on open(). The default value was changed from - 0 (don't call) to 1 (call) since this is the only way to learn - about connection success/failure. - - * ace/POSIX_Proactor.{h cpp} (application_specific_code): - * ace/WIN32_Proactor.{h cpp} (application_specific_code): Removed the - 'int success' argument. Success/fail is determined by the error - value now (0 == success). Simplifies the code, and makes the - result.success() call return 1 iff the operation succeeded. - - Thanks very much to Alex Libman for these ideas and for working - to improve these classes for ACE and C++NPv2! - -Sat Jun 15 12:01:38 2002 Steve Huston - - * ace/Obstack_T.cpp (request): Don't lose an initial set of characters - if the requested length won't fit. Thanks to Christopher W. Midgley - for this report and fix. - - * tests/Obstack_Test.{cpp dsp icc}: New test for the above, and - its MSVC and Visual Age C++ files. - - * tests/Makefile: - * tests/Makefile.bor: - * tests/run_test.lst: - * tests/tests.dsw: - * tests/tests.icp: Added new Obstack_Test. - - * THANKS: Added Christopher W. Midgley. - -Sat Jun 15 12:41:07 Frank Hunleth - - * THANKS: Added Nick Cross to the hall of fame. - -Fri Jun 14 14:39:33 2002 Nanbor Wang - - * ace/Filecache.cpp: Removed excessive ACE_DEBUG statements. - Thanks to Charles F. Frasch for - reporting them. - -Fri Jun 14 12:04:17 2002 Jaiganesh Balasubramanian - - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - * ace/QoS/SOCK_Dgram_Mcast_QoS.h: - Removed build errors for QoS library, due to dependencies to the - old SOCK_Dgram_Mcast class. Thanks to Bill Fulton for this fix. - -Fri Jun 14 14:17:49 2002 Carlos O'Ryan - - * bin/auto_run_tests.pl: - Fixed wrong application name in Usage message. - - * bin/auto_run_tests.lst: - Add the Nested_Upcall_Crash test. - -Fri Jun 14 09:34:41 2002 Ossama Othman - - * ace/OS.i (ctime): - - For the ACE_HAS_WINCE, pass a statically allocated buffer to - ctime_r() since ctime_r() will return that same buffer as the - return value of ctime(). Fixes memory access violations. - Thanks to Michael Searles for pointing out - the problem. - -Thu Jun 13 21:26:49 2002 Steve Huston - - * ace/Configuration_Import_Export.cpp (squish): Replaced use - of naked isspace() with ACE_OS_String::ace_isspace() to work - with wide chars also. - -Thu Jun 13 21:09:33 2002 Steve Huston - - * tests/Config_Test.cpp (run_tests): Added a test for importing - a previously-existing ini file and verifying its contents. - - * tests/Config_Test_Import_1.ini: File for the above test. - -Thu Jun 13 19:05:57 2002 Krishnakumar B - - * include/makeinclude/rules.local.GNU: - - Added a rule to install a symlink to libfoo.so.3 under - $(ACE_ROOT)/ace. This should fix all the build errors. ld.so - needs libfoo.so.3 to be in LD_LIBRARY_PATH. libfoo.so doesn't - do. Thanks to Marvin Wolfthal for reporting the - problem. - - * bin/make_release: - - Changes to ensure that all major releases are named - ACE-[0-9]+.0.0 and all minor releases are named - ACE-[0-9]+.[0-9]+.0. PLEASE TAG THE REPOSITORY AS ACE_5_3_0 and - TAO_1_3_0 or ACE_6_0_0 and TAO_2_0_0 WHEN MAKING A MINOR OR A - MAJOR RELEASE. Pointers to add this to somewhere more prominent - are welcome. - -Thu Jun 13 14:45:13 2002 Douglas C. Schmidt - - * ace/SOCK_Dgram_Mcast_T.cpp: Added wchar support - remove - warnings in MSVC when #define ACE_USES_WCHAR used in config.h. - Thanks to Bill Fulton for this fix. - -Wed Jun 12 21:28:29 2002 Steve Huston - - * tests/Framework_Component_DLL.cpp (Server_T): Add template - parameter name to class template arg to get aC++ to eat it. - -Wed Jun 12 18:29:11 2002 Krishnakumar B - - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.local.GNU: - * include/makeinclude/wrapper_macros.GNU: - * TAO/rules.tao.GNU: - * include/makeinclude/platform_g++_common.GNU: - - Added support for shared library versioning. Libraries built - with GNU ld will be versioned by default. - - * include/makeinclude/platform_aix4_cset++.GNU: - * include/makeinclude/platform_aix4_g++.GNU: - * include/makeinclude/platform_aix_g++.GNU: - * include/makeinclude/platform_aix_ibm.GNU: - * include/makeinclude/platform_hpux.GNU: - * include/makeinclude/platform_hpux_aCC.GNU: - * include/makeinclude/platform_hpux_gcc.GNU: - * include/makeinclude/platform_hpux_kcc.GNU: - - Added null SONAME and SOVERSION for disabling shared library - versioning. - - * include/makeinclude/platform_dgux4_epc.GNU: - * include/makeinclude/platform_freebsd.GNU: - * include/makeinclude/platform_gnuwin32_common.GNU: - * include/makeinclude/platform_irix5.3_g++.GNU: - * include/makeinclude/platform_irix5.3_sgic++.GNU: - * include/makeinclude/platform_irix6.x_g++.GNU: - * include/makeinclude/platform_irix6.x_kcc.GNU: - * include/makeinclude/platform_irix6.x_sgic++.GNU: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/platform_linux_cxx.GNU: - * include/makeinclude/platform_linux_icc.GNU: - * include/makeinclude/platform_linux_kcc.GNU: - * include/makeinclude/platform_m88k.GNU: - * include/makeinclude/platform_macosx.GNU: - * include/makeinclude/platform_mvs.GNU: - * include/makeinclude/platform_netbsd.GNU: - * include/makeinclude/platform_osf1_3.2_cxx.GNU: - * include/makeinclude/platform_osf1_4.x_cxx.GNU: - * include/makeinclude/platform_osf1_4.x_g++.GNU: - * include/makeinclude/platform_osf1_4.x_kcc.GNU: - * include/makeinclude/platform_osf1_4.x_rcc.GNU: - * include/makeinclude/platform_psosim_g++.GNU: - * include/makeinclude/platform_qnx_neutrino.GNU: - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - * include/makeinclude/platform_sco-nothread.GNU: - * include/makeinclude/platform_sco5.0.0-CC-fsu-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-mit-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-nothread.GNU: - * include/makeinclude/platform_sunos4_g++.GNU: - * include/makeinclude/platform_sunos4_lucid.GNU: - * include/makeinclude/platform_sunos4_sunc++3.x.GNU: - * include/makeinclude/platform_sunos4_sunc++4.x.GNU: - * include/makeinclude/platform_sunos5_centerline.GNU: - * include/makeinclude/platform_sunos5_g++.GNU: - * include/makeinclude/platform_sunos5_ghs.GNU: - * include/makeinclude/platform_sunos5_kcc.GNU: - * include/makeinclude/platform_sunos5_sunc++.GNU: - * include/makeinclude/platform_tandem.GNU: - * include/makeinclude/platform_unixware_g++.GNU: - * include/makeinclude/platform_unixware_udk.GNU: - - Changed SOFLAGS = to SOFLAGS += to avoid dealing with order of - includes of various Makefile rules. - -Wed Jun 12 11:25:22 2002 Douglas C. Schmidt - - * tests/Config_Test.cpp (test): Removed what appeared to be - an unnecessary and unused called to - const ACE_Configuration_Section_Key &root = config->root_section (); - - * ace/Configuration.cpp (open_section): Fixed a warning in the - loop expression. - -Wed Jun 12 11:49:33 2002 Steve Huston - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Changed to - match book. - - * examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp (init): - Use ACE_Auto_Array_Ptr to be cleaner about allocated char ptr - array. Coincides with book change. - -Tue Jun 11 10:23:03 2002 Stephen Torri - - * ace/String_Base.h: Updated comments/documentation on the String_Base - class. - - * ace/String_Base.{i,cpp}: Added brackets to if/else statements for - better structure/readability. Changed "(cond) ? true : false" to - better "if/else" structure. - -Tue Jun 11 19:05:39 2002 Douglas C. Schmidt - - * ace/SOCK_Dgram_Mcast.h: Added a default constructor for - ACE_SOCK_Dgram_Mcast. - - * tests/Config_Test.cpp (test): Added tests for the following capability. - Thanks to Eugene Alterman for - contributing these tests. - - * ace/Configuration.{h,cpp}: - ACE_Configuration_Heap::open_section() now accepts path - separators in section name, so that it is consistent with the - updated version of - ACE_Configuration_Win32Registry::open_section(). Thanks to - Eugene Alterman for contributing this - patch. - -Tue Jun 11 20:02:39 2002 Steve Huston - - * ace/DLL_Manager.cpp (ACE_DLL_Handle::error()): Change to a - different form of auto_ptr initialization that Visual Age C++ - likes better. - -Tue Jun 11 13:17:29 2002 Douglas C. Schmidt - - * ace/Cache_Map_Manager_T.h: - * ace/Caching_Utility_T.h: - * ace/Env_Value_T.h: Added #include "ace/Global_Macros.h". - Thanks to Ty Tenait for reporting this. - - * ace/Dirent_Selector.h: Added #include "ace/ACE_export.h". - Thanks to Ty Tenait for reporting this. - -Tue Jun 11 09:42:06 2002 Ossama Othman - - * ace/SOCK_Dgram_Mcast_T.cpp (make_multicast_ifaddr): - - Use ACE_HTONL instead of htonl(). The latter causes the - assembler to choke on some Linux installations. - -Mon Jun 10 14:50:46 2002 Nanbor Wang - - * examples/DLL/Dll.dsw: - * examples/ASX/CCM_App/CCM_App.dsw: Updated project dependencies. - -Mon Jun 10 14:23:28 2002 Douglas C. Schmidt - - * ace/Reactor.h (ACE_Reactor): Added a comment explaining that - the mask passed to notify() can only be READ_MASK, WRITE_MASK, - or EXCEPT_MASK. Thanks to Cary Steinmetz - for motivating this comment. - - * ace/OS_String.cpp: Make sure to check whether src == dst and - avoid doing any copies in this case. Thanks to Michael Searles - for reporting this. - -Sun Jun 9 20:01:00 2002 Douglas C. Schmidt - - * ace/Makefile: Something is wrong with my ACE_ROOT environment - variable, which caused problems with the dependency generation. - This is now fixed. - -Sun Jun 9 19:31:04 2002 Douglas C. Schmidt - - * ace/SOCK_Dgram_Mcast.h: Added ACE_Export to ACE_SOCK_Dgram_Mcast. - -Sun Jun 9 18:57:07 2002 Douglas C. Schmidt - - * examples/Reactor/Ntalker/ntalker.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: Added template - instantiations for the new ACE_SOCK_Dgram_Mcast_Ex<> template. - -Sun Jun 9 18:47:22 2002 Douglas C. Schmidt - - * tests/Config_Test.cpp (run_tests): Added code to exercise the - new subkey path feature contributed by Eugene Alterman. - - * ace/Configuration.{h,cpp}: Added support for the path separator - ('\\') in key names. Thanks to Eugene Alterman - for contributing this patch. - - * ace/Date_Time.{h,i}: Added support for weekday. Thanks to - Eyal Lubetzky for reporting this. - -Sun Jun 9 18:11:02 2002 Douglas C. Schmidt - - * ace/SOCK_Dgram_Mcast.cpp: Removed the explicit inclusion of - "ace/SOCK_Dgram_Mcast_T.cpp" since this is #included appropriately - by SOCK_Dgram_Mcast.h. - - * ace/SOCK_Dgram_Mcast.cpp: Removed the ';' from the end of the - #pragma instantiates. - - * ace/Makefile: Added SOCK_Dgram_Mcast_T. - - * ace/SOCK_Dgram_Mcast_T.cpp - ace/SOCK_Dgram_Mcast_T.i - ace/SOCK_Dgram_Mcast_T.h: - Minor changes to conform to ACE coding conventions. - -Sun Jun 9 17:50:37 2002 Bill Fulton - - * ace/SOCK_Dgram_Mcast.cpp - ace/SOCK_Dgram_Mcast.h - ace/SOCK_Dgram_Mcast_T.cpp - ace/SOCK_Dgram_Mcast_T.i - ace/SOCK_Dgram_Mcast_T.h - - Somewhat massive changes to the (already very useful) - ACE_SOCK_Dgram_Mcast class; some fixes to existing functionality, - some new functionality, and a different way of controlling optional - (per-instance) functionality. The intent was to preserve existing - interface and functionality (when correct), including environment- - specific functionality. - - Fixes to Existing Functionality: - - - For ::unsubscribe(void); unsubscribes from all active subscriptions. - Previous version unsubscribed only from the most recently - subscribed group/net_if. - * This could change execution behavior of existing code. - - - Enhanced support for a passed port# of '0'. - The ephemeral port# assigned by the system when the socket is - bound is used for all local ::send methods. - - - Validation of non-zero port# and, optionally, the address passed - to the ::subscribe method, if the socket has been bound. - On second and subsequent ::subscribe invocations, the previous - version allowed passed parameters that were inconsistent with the - bound socket parameters. This could result in a confusing - condition; you would not receive messages sent to the port and/or - address passed to ::subscribe. - * This could change execution behavior of existing code. - - Added Functionality: - - - Support specification of the (multicast) address and interface to - be used by all local ::send methods, independent of the receive - address and interface. The same port# is used for all base class - ::recv methods and all local class ::send methods. The send - interface applies to all local and all base class ::send methods. - - - Enhanced ::dump method, to show the dynamic list of subscriptions, - the bound address/port#, the send address/interface, and the state - of optional functionality. Also did some output reformatting. - - Optional Functionality via Template Parameters and Ctor Args: - - In the previous implementation, some aspects of class functionality - were transparently configured based on the OS it was compiled - under. This has been changed so that all optional functionality is - explicitly specified, using (a baroque set of) optional - constructor arguments. In addition, new optional functionality - was added and is specified with template parameters and optional - constructor arguments. For backward compatibility, there is an - explicit specialization called ACE_SOCK_Dgram_Mcast - this should - have the same functionality, including OS-specific functionality, - as the previous class implementation, and can still be used for - most normal (if there is such a thing with multicast) apps. - Overview of new template parameter: - ACE_SDM_LOCK_* - - Strategized locking (very limited MT-safety - see below). - Overview of new, optional ctor arguments (enumerations): - opt_bindaddr_* - - Whether to bind the address as well as the port#. - opt_nulliface_* - - Defines semantics of passing net_if parameter of NULL; - i.e. use all or only one iface. - opt_dtorunsub_* - - Whether destructor explicitly unsubscribes from all - groups. - See SOCK_Dgram_Mcast_T.h for a full description. Environment- - specific default values are explicitly declared, for use by app - code. - - Changes to Previous Class (public) Interface & Functionality: - - - Added a public (overloaded) ::open method. - This allows explicit specification of the port# and the multicast - address (if opt_bindaddr_yes is used) that is bound to this - socket. This also allows specification of the address and the - network interface to be used by local ::send methods (and the - network interface used by super-class and sub-class ::send - methods). There is only one address parameter; the same parameter - is used for both the send address/port# and the bound - address/port#. The port# in the address may be 0 (to use a - system-assigned ephemeral port# for sending and receiving). - - NOTE: Use of this method is optional and, if used, must be - invoked _before_ any ::subscribe method is invoked - otherwise it - is _ignored_, and the (first) ::subscribe parameters will be used - to bind the socket and set the send parameters (as in the previous - code). Note that ::subscribe need not be invoked at all, now; if - only ::open is used, you can send but not receive multicast - messages, and you can specify the interface used for sending. - - - Validation of ::subscribe parameters is now strict. - Once the port# is bound (by ::open or the first ::subscribe), the - port# passed to every ::subscribe call must either be '0' or match - the bound port#. Additionally; if opt_bindaddr_yes is used, the - address passed must match the bound address. If these conditions - are not met, an error is returned (with errno=ENXIO). Note that - such subscriptions would have no (useful) effect, since messages - could never be received for the given port#/address, due to IP - stack filtering. This condition was ignored in the previous - version; it is now an error condition. This may break some - existing code - but note that it flushes out a (silent) logical - error condition. - The port# in ::unsubscribe(addr,...) is _not_ checked, though; - this is not logically consistent, but ... a mistaken port# here - seems less potentially dangerous and/or confusing. - - - The previous ::subscribe and ::unsubscribe methods had a special - return code (1) to indicate that (previously Win32-specific) - multiple-interface subscription/unsubscription had been done. This - seemed to be useful only internally, but was visible to the - caller. The new methods will always return '0' for success (even - if opt_nulliface_all is used). - - - The dynamic subscription list housekeeping adds slight processing - overhead, and even more overhead is added if locking is enabled. - This should not be noticeable, except in MT thrashing conditions - and/or if doing very frequent subscribes/unsubscribes. - - Known Restrictions: - - - Interaction/Integration with other ACE multicast-oriented classes - and library code is _undefined_, i.e.: - + ACE_SOCK_Dgram_Mcast_QoS: Presumably works ok, but inherits - legacy class; can't specify optional functionality. - + ACE_RMCast: Presumably works ok, but uses legacy class; - can't specify optional functionality. - + ACE_XTI_ATM_Mcast: I presume there's no integration desirable. - I've re-built vers. 5.2 ACE under Solaris and Windows with the - modified files, and it builds ok. Since the original functionality - is (basically) unchanged, it is _assumed_ that any other ACE lib - code that references the ACE_SOCK_Dgram_Mcast class signature - still functions ok. But ... things like adding templated code - could introduce problems! Also note that these classes use (now) - deprecated interface methods; e.g. RMCast passes protocol options - to ::subscribe that are now ignored. - - - Environment-specific notes/restrictions on use of options: - + The opt_nulliface_all option should be used only in environments - for which the ACE_Sock_Connect::get_ip_interfaces call is - correctly implemented (currently only Windows). In other - environments, using this option will _always_ return an error - from ::subscribe/::unsubscribe. - + The opt_dtorunsub_yes option allows finer control of multicast - group "leave" effects for environments that do not automatically - unsubscribe when the socket is closed, or in situations where - the underlying handle has been duplicated (e.g. via fork()), - but will not be used. All in all, this option is useful only - under special, controlled circumstances. - + The effect of using opt_bindaddr_yes is very environment- - specific; it may not do what you expect (or may do what you - don't expect :-) - The default option values are defined with these notes in mind. - - - Options enumeration weaknesses. - + The options enumeration list was put in the global namespace. - It seems like a pain for user code to have to prefix the option - values with the templated class name. - + All option values use the same enumeration; this could allow - option values to be used for the "wrong" option in the ctor - options list. This was a trade-off; I didn't want to add too - many things to the global namespace. (Note that more options - might be added to the list, in the future.) All new code - compares against explicit enum values (instead of 0), for safety. - - - The ::open parameter list may be too "dense" - it tries to do too - many different things with the passed parameters. This is an - artifact of its heritage. (Note that ::subscribe can also invoke - ::open behavior). In particular, it would be nice to separate - bound addr/iface from send addr/iface. - - - Does not explicitly check for duplicate active subscriptions (i.e. - subscription to the same address and interface while a previous - subscription is still active). (Subscription to the same address - but different interface is not a duplicate and is fully - supported.) Note that, for most IP stacks, a subscription attempt - for a duplicate addr/iface will fail (and a duplicate entry will - not be created). If it is allowed by the IP stack and you create - duplicate internal subscription list entries, you must call - ::unsubscribe(addr) for _each_ duplicate subscription (or - ::unsubscribe(void)) - until this is done, you will continue to - recv messages for this subscription. - - - This implementation carries forward (for backward compatibility) - certain environment-specific hacks, i.e.: - + A Win32 hack such that the default opt_nulliface_defopt value - for Win32 is different from all other environments. - + A Linux hack such that the full address is unconditionally bound. - These would seem likely to lead to unexpected behavior for the - "casual user", but changing the default would break existing code. - - - The SDM_OPT_LOCK parameter only controls locking of the dynamic - subscription list; and the need/use for this is debatable. It was - added as a fail-safe, in case one class instance is shared by - multiple threads. Note that a given instance can _not_ (reliably) - be shared by multiple threads; there are logical race conditions - (e.g. calling ::open) - but the logical race conditions should - cause only unpredictable operation, not corruption. However; the - subscription list could be corrupted if one instance is shared by - multiple threads, which could lead to undefined behavior/crashes. - - - The class interface is probably too "busy"; there are a _lot_ of - side-effects that may not be evident. - - - Currently only built and tested under Solaris w/ Forte-C++ and - Windows NT and 2000 w/ MSVC 6. - - Implementation Changes: - - - Now implemented as a templated class (ACE_SOCK_Dgram_Ex), via the - new SOCK_Dgram_Mcast_Ex.* files. The (remaining) SOCK_Dgram_Mcast.* - files are vestigial; they remain due to the build rules and - documentation conventions, and because existing user code - references the ace/SOCK_Dgram_Mcast.h file. Note that this - differs from most other *_Ex.* template source files in ACE, where - there is still at least some function implemented in the - non-templated source files; here there is none. - An explicit specialization is declared that matches the old class - signature. - - - The constructor now has optional arguments (to specify per-instance - optional functionality. A default ctor can still be used; the - legacy default environment-specific functionality will be declared. - - - I've tried to generalize code that was previously overly - environment-dependent and/or macro-driven. The intent was to make - future enhancements easier (there's still much desirable work to - be done ... speaking of which ...) - - Suggested Future Work: - - - Expose the SOCK_Dgram::send methods; i.e. allow specification of an - arbitrary dest address/port# with the ::send call. (Must check for - port# of '0' in the send address and set port# to the bound port#). - This would allow the specification of the network interface for - arbitrary multicast transmissions from one instance, and should - work as expected if the address specified is unicast. This seems - useful; currently, if you want to send multicast messages with - interface control, you would either have to create one instance of - this class for each send address, or force access to the inherited - ACE_SOCK_Dgram instance (which works ... "but it would be wrong"). - I'm not sure why access to these was disabled in the original - design. (Is there a good reason not to do this?) - - - Mark the current ::subscribe and ::unsubscribe interfaces as - deprecated and add new interfaces that remove all unnecessary - parameters. - + Remove the (optional) protocol* parameters from the ::subscribe - and ::unsubscribe methods - they don't do anything. I (really) - wanted to do this now, but it could break existing app code (but - you can't really specify anything other than the default values, - anyway!) - + Remove the (optional) reuse_addr parameter from the ::subscribe - method - it is only useful if ::open has not been previously - invoked. Problem: This will require that the ::open method be - explicitly invoked before invoking ::subscribe, which makes the - interface more clumsy. - Problem: Hard to get a unique signature for the new methods, - especially for ::unsubscribe. - - - It seems that an ACE_SOCK_Dgram_Mcast_Manager class could be a - useful "layered" addition, e.g.: - - Trap ::subscribe invocations using different port numbers, and - create separate instances/sockets for each unique port#. - - Implement software loopback filtering for environments that do - not implement loopback disabling in the IP stack (e.g. older - Windows). Also implement per-interface filters for environments - (like Win/NT) that don't do this right. - - Implement multicast group "sets" to support easy and atomic - joins/leaves of a user-defined list of group/interface - combinations. Include enhanced failure condition handling, such - as subscription "roll-back"; all-or-none of the set's members - are joined. - Actually; all of these could be done in the current class - but - there are too many options in this class already, and the function - seems (to me) more appropriate to a higher-level "manager". - - - Allow the send interface (and default send addr) to be changed, - after initial setting. (OS-specific support needed - most stacks - allow the interface to be changed once set, but I presume that not - all do.) - In general; might be worth splitting out the send from the - ::open/::subscribe methods - e.g. ::send_parameters. Might add - optional TTL and loopback parameters to this, too. - - - Add explicit methods to set common multicast socket options, e.g. - TTL, loopback. (So you don't have to remember the macro names and - to make these macros/actions more portable!). - - - Tighten up the parameter semantics and/or validation, e.g.: - + Verify that all addresses passed are multicast addresses. - For example, ::open does not check the send address. (It should - still work as expected - sending unicast on the route-derived - interface - but that's not the intended use.) - + The reuse_addr parameter in ::open is used for both REUSEADDR - and REUSEPORT (if implemented) option setting; should these be - distinct parameters? (They do different things!) - - - Enhanced integration with other ACE multicast classes, as needed - or desirable (see Restrictions section). - - - (?) For ::subscribe and ::unsubscribe - if successful, return the - (positive) number of subscribes/unsubscribes done (instead of '0'). - Possibly useful, as a way for the app to sense multi-interface - subs/unsubs (e.g. code that is passed an instance and does not - know what options were used when the instance was created). - - - (?) Add method ::unsubscribe(int n) to unsubscribe from most - recent n subscription(s) (including opt_nulliface_all option - support.) The implementation of group sets might obviate the - usefulness of this. - - - (?) Enhanced MT-safety and exception handling. - Don't know if any particular problems; but haven't tested - extensively. Also; might be able to make it more efficient. - In particular; if one instance is intended to be shared by multiple - threads, there is _much_ work to be done. - - - (??) Track subscription list state; i.e. recognize the state when - any ::unsubscribe emptys the subscription list. This state might - be used to re-define some parameters (especially the network - interface for sends) set with ::open and for other changes ... but - utility vs. added complexity ratio seems low. (Note that closing - the socket and reopening another can cause nasty side-effects, so - probably can't change the bound parameters, anyway.) - -Sun Jun 9 16:26:00 2002 Douglas C. Schmidt - - * ace/ATM_Acceptor.cpp: - * ace/ATM_Addr.cpp: - * ace/ATM_Connector.i: - * ace/ATM_QoS.cpp: - * ace/ATM_Stream.cpp: - * ace/CE_Screen_Output.cpp: - * ace/Configuration.cpp: - * ace/Handle_Set.i: - * ace/IOStream.cpp: - * ace/Lib_Find.cpp: - * ace/Log_Msg.cpp: - * ace/Log_Record.cpp: - * ace/MEM_Addr.cpp: - * ace/Malloc_T.i: - * ace/Memory_Pool.cpp: - * ace/Message_Queue.cpp: - * ace/Msg_WFMO_Reactor.cpp: - * ace/OS.cpp: - * ace/OS.i: - * ace/OS_String.cpp: - * ace/Process.cpp: - * ace/SOCK_Connector.i: - * ace/SPIPE_Connector.cpp: - * ace/Sock_Connect.cpp: - * ace/Synch_T.cpp: - * ace/ace_wchar.inl: Changed improper use of NULL to - 0. - -Sun Jun 9 15:33:05 2002 Jeff Parsons - - * ace/Date_Time.i: - - Fixed some typos that caused build errors. - -Sat Jun 8 14:46:19 2002 Douglas C. Schmidt - - * ace/Array_Base.h: Replaced - - #include "Global_Macros.h" - - with - - #include "ace/Global_Macros.h" - - Thanks to Bill Fulton for reporting - this. - -Fri Jun 7 19:00:31 2002 Steve Huston - - * ace/OS_String.inl (strstr): Also see: - Thu May 30 16:45:10 UTC 2002 Craig Rodrigues - - HP-UX 11.00 doesn't supply wcsstr(), only wcswcs (), so - special-case that one with #if defined (HPUX). - -Fri Jun 7 16:42:29 2002 Steve Huston - - * ace/Date_Time.i (update): Use ACE_OS::localtime_r rather than - ACE_OS::localtime to avoid MT time confusion. Thanks to Kelly - Hickel for reporting this. - -Fri Jun 7 16:29:21 2002 Steve Huston - - * ace/Acceptor.{h cpp}: - (ACE_Strategy_Acceptor) Added an open () method with signature - that matches ACE_Acceptor::open to avoid hiding the one in - ACE_Acceptor, according to Forte 6. In the new open(), however, - the ACE_Reactor* arg is required, to make it distinguishable from - the existing open(). The new open forwards everything - to the previously-existing, more full-featured open(). - - Constructors and full-featured open(), added optional reuse_addr - arg - it's passed down to the ACE_Accept_Strategy::open method. - - Removed the service_port_ member - it's not used. - - (ACE_Acceptor::open): If the reactor registration fails, close - the peer_acceptor_ object. - - * netsvcs/TS_Server_Handler.cpp (ACE_TS_Server_Acceptor::parse_args): - * netsvcs/Name_Handler.cpp (ACE_Name_Acceptor::parse_args): - * netsvcs/Server_Logging_Handler_T.cpp (ACE_Server_Logging_Acceptor_T): - Use a local variable for the -p port option; server_port_ is gone. - -Fri Jun 7 14:30:22 2002 Steve Huston - - * ace/Message_Queue.{h cpp} (ACE_Message_Queue_NT): Change - deactivate (int pulse) to deactive() and pulse() - forgot this - one in "Thu Jun 6 18:10:45 2002 Steve Huston" set of changes. - Also, corrected the way the completion routine checks state - of the queue. enqueue() will always pass ACTIVATED as the - queue state to be sure that blocks are seen when dequeued. - -Thu Jun 6 17:41:24 2002 Krishnakumar B - - * ACEXML/common/Mem_Map_Stream.h: - * ACEXML/common/Mem_Map_Stream.cpp: - * ACEXML/common/HttpCharStream.h: - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/URL_Addr.cpp: - - Fixed the explicit template instantiation problems on Solaris. - -Thu Jun 6 18:35:49 2002 Steve Huston - - * ace/Acceptor.h (ACE_Strategy_Acceptor): Made open() virtual - since its parent class (ACE_Acceptor) ope() is also virtual. - Resolves warning from Forte 6 that open() hides its parent - class's open(). - -Thu Jun 6 18:10:45 2002 Steve Huston - - * ace/README: Removed ACE_HAS_OPTIMIZED_MESSAGE_QUEUE. No configs - use it, and it's functionality doesn't really support the - message queue deactivation/pulse semantics. - - * ace/Message_Queue.h: - * ace/Message_Queue_T.{h cpp i}: Removed the "int pulse" argument - from deactivate() and add a pulse() method. States stay the - same. - Took out all the ACE_HAS_OPTIMIZED_MESSAGE_QUEUE stuff. It's - not used any longer. - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Use the pulse() - method instead of deactivate (1). - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: Removed answered - questions. Removed reimplemented handle_connect() method - because the needed things are now available via the framework. - - * ace/Asynch_Acceptor.{h cpp}: - * ace/Asynch_Connector.{h cpp}: Added new hook method, - int validate_connection (const ACE_Asynch_Accept::Result&result, - const ACE_INET_Addr& remote_addr, const ACE_INET_Addr& local_addr) - that allows access to success/fail, handle, and addresses. The - validate_new_connection (const ACE_INET_Addr&) method is now - deprecated. - - * ace/WFMO_Reactor.{h cpp} (ACE_WFMO_Reactor_Notify): Add an - optional argument to ACE_WFMO_Reactor_Notify constructor. - size_t max_notifies is used to specify a limit for how many - notifications can be queued. The value is used to calculate - new high and low watermarks to the message_queue_. Default 1024. - - * ace/Activation_Queue.cpp: - * ace/Message_Block.cpp: - * ace/Message_Queue_T.cpp: Added #include "ace/Log_Msg.h" to get - the ACE_DEBUG, etc. definitions. - - * ace/Read_Buffer.cpp: Added #include for ace/Log_Msg.h and - ace/Malloc_Base.h (for ACE_Allocator). - - * ace/Log_Msg.cpp (log (ACE_Log_Record&)): If there's a - ACE_Log_Msg_Callback, do it before sending the log record - to any other logging sinks. Allows the callback to munge - the data. - -Thu Jun 06 10:50:37 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.cpp (cancel_timer): - - Fixed race condition by adding an ACE_GUARD. Basically the same - fix that Doug made to the Select_Reactor below. - -Thu Jun 6 12:28:20 2002 Douglas C. Schmidt - - * ace/Select_Reactor_T.cpp: Moved the cancel_timer() methods - from the Select_Reactor_T.i file and added ACE_GUARD's around - them to ensure we're serialized correctly. Thanks to Johnny - Chen for motivating this. - -Thu Jun 6 08:24:43 2002 Jeff Parsons - - * ace/Malloc_T.h: - - Removed extra comment closer */. - -Thu Jun 6 07:11:15 2002 Douglas C. Schmidt - - * THANKS: Just added our 1,500th ACE+TAO contributor!!!!! - - * ace/Malloc_T.cpp: Clarify that the memory backing store must - reside in a directory with the appropriate visibility and - permissions. Thanks to Frank O. Flemisch - for reporting this. - -Wed Jun 5 23:06:11 UTC 2002 Don Hinton - - * ace/DLL_Manager.h: Fixed compile error. Thanks to Jai - Balasubramanian for pointing this out. - -Wed Jun 5 16:58:41 2002 Krishnakumar B - - * ACEXML/common/Mem_Map_Stream.cpp: - - Instantiate the templates needed when explicit templates are - defined. Thanks to Carlos for pointing this out. - - * ACEXML/common/HttpCharStream.cpp: - - Peek means "get the next character", not "get the character - after next". The previous change to the test caught this bug. - -Wed Jun 5 16:42:43 2002 Krishnakumar B - - * ACEXML/examples/SAXPrint/main.cpp (ACE_TMAIN): - - Modified the example to test fetching and parsing an XML URL. - This actually tests most of the functions of the new stream - class and is better than the lame test that I wrote the other - day. - -Wed Jun 5 13:54:03 UTC 2002 Don Hinton - - * ace/DLL_Manager.{h,cpp}: - * ace/Framework_Component.cpp: - - Made ACE_DLL_Manager a true singleton instead of using the - ACE_*Singleton templates, thus avoiding a problem with multiple - instantiations by broken compilers. Thanks to Chris Kohlhoff - for this suggestion. - -Wed Jun 5 08:33:25 2002 Douglas C. Schmidt - - * ace/Timer_Queue_T.h (class ACE_Timer_Queue_T): Clarify that the - second calculate_timeout() method doesn't use a lock. Thanks to - Johnny Chen for motivating this. - - * ace/Process_Manager.cpp (handle_signal): Added a check for - i == -1. Thanks to Dimitrije Jankovic - for reporting this and providing a fix! - -Tue Jun 04 16:47:27 2002 Ossama Othman - - * ace/Service_Config.h: - - No need to include "ace/DLL.h". Forward declaring ACE_DLL is - enough. - - * ace/Service_Config.cpp: - - Include "ace/DLL.h" to pull in ACE_DLL class declaration. - -Tue Jun 04 16:34:18 2002 Ossama Othman - - * ace/Service_Config.cpp: - - Removed duplicate "ace/Auto_Ptr.h" include. - - * ace/Svc_Conf_Lexer_Guard.cpp: - - Moved Svc_Conf.h include within the ACE_USES_CLASSIC_SVC_CONF - preprocessor block. It isn't needed for the XML-based Service - Configurator. - -Tue Jun 04 16:02:11 2002 Krishnakumar B - - * ACEXML/common/HttpCharStream.h: - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/Filecharstream.h: - * ACEXML/common/Filecharstream.cpp: - - Removed the constructor which accepted a string containing - either a filename or a URL from these files. Problem was it was - relying on calling open to do the work, but if open fails there - was no way to report the error without throwing exceptions. So - don't allow people to use this constructor and always insist on - using open. - - * ACEXML/common/Mem_Map_Stream.cpp: - * ACEXML/common/URL_Addr.h: - * ACEXML/common/URL_Addr.cpp: - * ACEXML/common/XML_Codecs.cpp: - * tests/Codecs_Test.cpp: - - Other miscellaneous fixes including using - ACE_Auto_Basic_Array_Ptr instead of ACE_Auto_Array_Ptr. - - * ACEXML/common/Makefile.bor: - * ACEXML/tests/Makefile.bor: - - Added new files. - - * ACEXML/tests/HttpCharStream_Test.cpp: - - Cosmetic fixes. - -Tue Jun 04 14:18:56 2002 Nanbor Wang - - * ACEXML/tests/HttpCharStream_Test.dsp: - * ACEXML/tests/Tests.dsw: Added a new test project. - -Tue Jun 04 13:45:39 2002 Nanbor Wang - - * ACEXML/common/Mem_Map_Stream.h: Fixed typedefs of template - classes. - - * ACEXML/common/XML_Common.dsp: Added new files to project files. - -Tue Jun 4 12:35:12 2002 Jeff Parsons - - * ace/Message_Queue*: Moved the state_ member and the accessor method - to the non-template base class to get rid of the Win32 build - bustage, since ACE_Message_Queue_NT is not a template class, and does - not inherit from ACE_Message_Queue<>. - -Tue Jun 4 10:03:19 2002 Douglas C. Schmidt - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Reverted the thr_count() - stuff since we need to reactivate the queue now. - - * ace/Message_Queue*: Changed all the message queue implementations to - use the new ACTIVATED/DEACTIVATED/PULSED implementation of - deactivate()/activate(). - -Tue Jun 4 09:48:34 2002 Jeff Parsons - - * ace/Message_Queue.h: - * ace/Message_Queue_T.h: - - Fixed the signatures of deactivate and deactivate_i to make the - appearance of the default parameter 'int pulse' consistent. - -Tue Jun 4 06:46:27 2002 Douglas C. Schmidt - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Added the - "1" parameter to the call to deactivate() method to simply - "pulse" the queue. Also, changed the AC_Output_Handler::open() - method to check if thr_count() == 0 when determining if to - activate the service handler. - - * ace/Message_Queue_T.h: Added new pulse parameter to - ACE_Message_Queue::deactivate() so that callers can decide - whether to change the state of the queue to be "deactivated" or - just to pulse waiting threads to wake up and continue their - processing. This simplies one of the examples in C++NPv2. - -Mon Jun 3 16:11:12 2002 Krishnakumar B - - * ACEXML/common/FileCharStream.cpp: - - Fixed a memory leak. - - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/HttpCharStream.h: - * ACEXML/common/Makefile: - * ACEXML/common/Mem_Map_Stream.cpp: - * ACEXML/common/Mem_Map_Stream.h: - * ACEXML/common/URL_Addr.cpp: - * ACEXML/common/URL_Addr.h: - - Functionality needed by the parser to fetch URI's (DTDs etc) - from the web. This is a simple http_get implementation and - doesn't work for https URLs (which can be fixed easily provided - there is interest). - - * ACEXML/common/Parser.cpp: - - Fixed a typo. - - * ACEXML/tests/HttpCharStream_Test.cpp: - * ACEXML/tests/Makefile: - - New regression test to test fetching of URI's from the web by - the parser. - - -Mon Jun 3 06:21:57 2002 Douglas C. Schmidt - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: Removed - unnecessary 'return;' calls. - -Mon Jun 3 07:23:56 UTC 2002 Don Hinton - - * Framework_Component_DLL.bor: Fixed typo. - -Sun Jun 2 22:52:23 UTC 2002 Craig Rodrigues - - [Bug 1208] - * ace/README: Document new ACE_HAS_3_PARAM_WCSTOK macro. - * ace/OS_String.inl (strtok_r): Check ACE_HAS_3_PARAM_WCSTOK macro. - - * ace/config-aix-4.x.h: - * ace/config-linux-common.h: - * ace/config-sunos5.7.h: - Define ACE_HAS_3_PARAM_WCSTOK on these platforms after doing - the appropriate checks. - -Sun Jun 2 15:34:41 UTC 2002 Don Hinton - - * ace/DLL.cpp: - - Test for null dll_name_ before calling open() in the copy ctor, since - open would flag it as an error. Improved error messages. - - * ace/DLL_Manager.{h,cpp}: - * ace/Framework_Component.cpp: - - Changed ACE_DLL_Manager to use ACE_Unmanaged_Singleton so that it can be - explicitely closed by ACE_Framework_Repository after ACE_Service_Config - is closed. Improved error messages. Thanks to Steve Huston for finding - this. - -Sun Jun 2 09:03:06 2002 Douglas C. Schmidt - - * ace/Select_Reactor_Base.cpp: Delete temp buffers - if enqueue_head() fails in the ACE_Select_Reactor_Notify open() - and notify() methods. Thanks to Chris Uzdavinis - for reporting this. - -Sat Jun 1 22:42:17 2002 Steve Huston - - * examples/C++NPv2/AC_CLD.mak: - * examples/C++NPv2/TPCLS.mak: Added "ssl=1" to properly include - the SSL stuff in the build; these examples use SSL. - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: - * examples/C++NPv2/AIO_CLD_export.h: - * examples/C++NPv2/AIO_CLD.mak: Asynch I/O example from Chapter 8. - -Sat Jun 1 15:38:40 2002 Steve Huston - - * ace/Asynch_Acceptor.cpp (open): bind_port is in ACE_Sock_Connect, - not ACE. - Added #include "ace/SOCK_Stream.h" that class is also used, and - #include "ace/Log_Msg.h" to get the ACE_ERROR macros. - - * ace/Asynch_Connector.cpp (handle_connect): clr_flags() is in - ACE_Flag_Manip, not ACE. - Added #include "ace/Log_Msg.h" to get ACE_ERROR macros. - -Fri May 31 13:35:41 2002 Steve Huston - - * examples/C++NPv2/TPC_Logging_Server.{h cpp}: - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - Primarily formatting changes to match the book. - - * examples/C++NPv2/SLDex.mak: Removed Logging_Acceptor_Ex from - files list; it's only a header file. - -Fri May 31 11:07:25 2002 Douglas C. Schmidt - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Modified this - so use pointers rather than references to simplify things in - the book. - -Thu May 30 23:03:38 2002 Steve Huston - - * examples/C++NPv2/SR_Configurable_Logging_Server.{cpp mak}: - * examples/C++NPv2/Makefile: Added new ACE_Select_Reactor-based - configurable logging server. - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Code changes - to match book and fix reconnect problems. - -Thu May 30 18:02:35 2002 Douglas C. Schmidt - - * ace/OS.h: Changed EACESS to EACCES to be POSIX compliant. Thanks - to Eric Eide for (re)reporting this! - -Thu May 30 10:01:12 2002 Ossama Othman - - * ace/UPIPE_Stream.h (ACE_UPIPE_Stream): - - Added missing PEER_ADDR trait. - -Thu May 30 16:45:10 UTC 2002 Craig Rodrigues - - [Bug 1208] - * ace/OS_String.inl (strstr): Remove wcswcs(), use wcsstr() - instead. - -Thu May 30 9:15:19 2002 Douglas C. Schmidt - - Thanks to Edan Ayal and Alex Libman - for the following fixes. - - * ACE_WIN32_Asynch_Read_Stream_Result::complete () - ACE_WIN32_Asynch_Write_Stream_Result::complete () - ACE_WIN32_Asynch_Write_Dgram_Result::complete - ACE_WIN32_Asynch_Read_Dgram_Result::complete improved - readability and logic - - * ACE_WIN32_Asynch_Read_File_Result::complete () - ACE_WIN32_Asynch_Write_File_Result::complete () fixed - errors,improved readability and logic - - * ACE_WIN32_Asynch_Read_Stream::read () - ACE_WIN32_Asynch_Read_File::read () - ACE_POSIX_Asynch_Read_Stream::read () - ACE_POSIX_Asynch_Read_File::read () - Added check for enough space in message block - bytes_to_read <= mb->space() - - * ACE_WIN32_Asynch_Write_Stream::write () - ACE_WIN32_Asynch_Write_File::write () - ACE_POSIX_Asynch_Write_Stream::write () - ACE_POSIX_Asynch_Write_File::write () - Added check for correct length of message block - bytes_to_write <= mb->length() - - * ACE_WIN32_Asynch_Read_Stream::readv () - ACE_WIN32_Asynch_Read_File::readv () - ACE_WIN32_Asynch_Read_Dgram::recv Added checks for: never read - more bytes_to_read bytes; correct using of buffers - message - blocks - - * ACE_POSIX_Asynch_Write_Stream::writev () - ACE_POSIX_Asynch_Write_File::writev () - ACE_WIN32_Asynch_Write_Dgram::send Added checks for: never write - more bytes_to_write bytes; correct using of buffers - message - blocks improved readability and logic - -Thu May 30 08:48:19 2002 Douglas C. Schmidt - - * ace/Configuration_Import_Export.cpp (squish): - Replaced (*cp == ' ') || (*cp == '\t') || (*cp == '\n') || (*cp - == '\r')) with isspace (*cp). Thanks to Gonzalo A. Diethelm - and Dave Steele - for this suggestion. - -Thu May 30 11:53:05 UTC 2002 Don Hinton - - * ace/DLL_Manager.cpp: Fixed Fuzz errors. Thanks to Johnny - Willemsen for pointing this out. - -Thu May 30 11:40:45 UTC 2002 Don Hinton - - * tests/Framework_Component_DLL.bor: - - Fixed cut-n-paste error that caused the symbols not to be - exported. Should fix the Borland builds. - -Thu May 30 10:18:27 UTC 2002 Don Hinton - - * tests/Framework_Component_Test.cpp: - - Modified test to use the new macro definitions and method names. - - * tests/Framework_Component_DLL.cpp: - - Added ACE_DLL_UNLOAD_POLICY declaration specifying LAZY unloading. - Changed an errant ACE_LIB_TEXT macro to ACE_TEXT. - - * ace/config-all.h: - - Added the dll unloading policies mentioned below as well as an - ACE_DLL_UNLOAD_POLICY macro dlls can use to set/export their own - policy. If no policy is exported, the current per-process policy - is used. - - * ace/DLL_Manager.{h,cpp}: - - Renamed unload_strategy to unload_policy and moved the policy - definitions to config-all.h so that they can be used without - including DLL_Manager.h (which includes OS.h, etc...). - - Refactored the unloading policies and implemented the per-dll - case by probing the dll for a "_get_dll_unload_policy" function - that returns the dll specific policy--if the dll chose to - implement it. - - Added missing template instantiations. - - * ace/DLL.{h,cpp} (symbol): - * ace/DLL_Manager.{h,cpp} (symbol): - - Added additional default parameter, ignore_errors, so the dll - can be probed for symbols without sending error messages to - the log. - -Thu May 30 08:53:12 2002 Johnny Willemsen - - * tests/Codecs_Test.cpp: - Removed not needed ; after the ACE_RCSID. This will fix a warning in - the Tru64 build - - * tests/Framework_Component_DLL.cpp: - Corrected playing of ;. This will fix a warning in the Tru64 build. - -Thu May 30 02:27:29 2002 Steve Huston - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/C++NPv2/AC_CLD_export.h: - * examples/C++NPv2/AC_CLD.mak: - * examples/C++NPv2/Makefile: Added remaining Chapter 7 example. - -Thu May 30 08:04:12 2002 Johnny Willemsen in comment to \ because the

    is a commend - that is recognized by doxygen. - -Thu May 30 07:46:12 2002 Johnny Willemsen - - * ace/Acceptor.h (ACE_Acceptor, ACE_Oneshot_Acceptor): - * ace/Connector.h (ACE_Connector): - - Use ACE_TYPENAME where appropriate in newly added traits to - correct build problems in g++ 2.95.x or better builds. - -Wed May 29 22:13:19 2002 Ossama Othman - - * ace/Acceptor.h (ACE_Acceptor, ACE_Oneshot_Acceptor): - * ace/Connector.h (ACE_Connector): - * ace/Svc_Handler.h (ACE_Svc_Handler): - - Added STL-style traits that may be useful when subclassing these - classes. - -Wed May 29 21:55:49 2002 Steve Huston - - * examples/C++NPv2/TPC_Logging_Server.{h cpp}: - * examples/C++NPv2/TPCLS_export.h: - * examples/C++NPv2/TPCLS.mak: - * examples/C++NPv2/Makefile: Added Chapter 7 examples. - - * ace/Acceptor.h (ACE_Acceptor::open): Made open() virtual. - -Thu May 30 01:38:51 UTC 2002 Craig Rodrigues - - * ace/OS_String.inl: Revert: - Wed May 29 09:38:53 2002 Ossama Othman - The intended fix is satisfactorily addressed by: - Tue May 28 18:35:46 UTC 2002 Craig Rodrigues - -Wed May 29 16:36:42 2002 Ossama Othman - - * ace/CDR_Stream.cpp (write_wchar, read_wchar, skip_wchar): - * ace/CDR_Stream.i (write_wchar_array, read_wchar_array): - - Take into account the actual size of the ACE_CDR::WChar type - instead of assuming that it is always 16 bits long. - -Wed May 29 20:16:48 UTC 2002 Don Hinton - - * tests/Framework_Component_Test.cpp: - - Changed ACE_Service_Config::open() to call the - ignore_default_svc_conf_file flag since all the directives - are passed directly without using a config file anyway. - - * ACEXML/apps/svcconf/Svcconf_Handler.{h,cpp}: - - Removed handle_ member variable and pass the local svc_dll - object instead of handle_ to ACE_Service_Config::create_service_type() - in accordance with changes below to ACE_DLL. - -Wed May 29 12:35:21 2002 Ossama Othman - - * ace/OS.h: - - If ACE_HAS_WCHAR is defined define the ACE_OS::WChar type to be - of type wchar_t. Otherwise, define it to be ACE_UINT16 (the - previous default). Addresses some wide character CDR and CORBA - C++ mapping issues. Thanks to David Smith - for reporting this. - -Wed May 29 09:46:56 2002 Ossama Othman - - * ace/Message_Queue.h: - - Include "ace/Synch.h" to pull in ACE_Thread_Mutex class - declaration. Thanks to Marek Maleta - for reporting the problem. - - * THANKS: - - Added Marek to the Hall of Fame. - -Wed May 29 09:38:53 2002 Ossama Othman - - * ace/OS_String.inl (strstr): - - Only use wcswcs() if _XOPEN_SOURCE is defined. In any case, the - Single UNIX Specification version 2 strongly encourages use of - wcsstr(). Fixes a compile-time error on glibc 2.x platforms. - - (strtok_r): - - Glibc has the 3 argument version of wcstok(). Use it instead. - Fixes a compile-time error on glibc 2.x platforms. - -Wed May 29 15:52:52 UTC 2002 Don Hinton - - * ace/DLL_Manager.{h,cpp}: - - Cleaned some problems with auto_ptr usage and added symbol - name to the debug message if the symbol isn't found--not - all systems seem to give you the name of the unfound symbol. - -Wed May 29 15:06:32 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move Debian_NoInterceptors to new - scoreboard. - -Wed May 29 10:29:10 2002 Steve Huston - - * examples/C++NPv2/Client_Logging_Daemon.cpp: Use a safer scheme - to clean up sent blocks; compile the INET_Addr stuff clean. - -Wed May 29 12:54:23 2002 Johnny Willemsen - - * ace/DLL_Manager.cpp: - * ace/Framework_Component.cpp: - Fixed msvc wchar compile errors - -Wed May 29 08:41:12 2002 Johnny Willemsen - - * ace/Codecs.h: - Removed the ; after the ACE_UNIMPLEMENTED_FUNC, the BCB compiler has - problems with it. - - * tests/Makefile.bor: - Added the new Codecs_Test. - -Tue May 28 19:40:44 2002 Steve Huston - - * examples/C++NPv2/Client_Logging_Daemon.cpp: - * examples/C++NPv2/CLD_export.h: - * examples/C++NPv2/CLD.mak: - * examples/C++NPv2/TP_Logging_Server.{h cpp}: - * examples/C++NPv2/TPLS_export.h: - * examples/C++NPv2/TPLS.mak: - * examples/C++NPv2/Makefile: Added new client logging daemon - and thread pool logging server examples from chapter 6. - -Wed May 29 02:09:32 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move RedHat_7.1_Full and - RedHat_7.1_NO_AMI_Messaging builds to new scoreboard. - -Tue May 28 19:20:58 2002 Krishnakumar B - - * ace/Read_Buffer.cpp (rec_read): - - It seems that my changes trash the files written by test - programs. I need to write a test to check out what's happening - before changing the CVS head. Reverting my change of Tue May 28 - 17:00:21 2002 Krishnakumar B . - -Tue May 28 23:13:45 UTC 2002 Don Hinton - - * tests/Framework_Component_DLL.cpp: - - Added missing ";" to end of template instantiation statements. - -Tue May 28 22:34:03 UTC 2002 Don Hinton - - * ace/DLL.cpp: Added missing ACE_const_cast(). - -Tue May 28 17:00:21 2002 Krishnakumar B - - * ace/Read_Buffer.cpp (rec_read): - - Fixed stupid thinko when decrementing slot. Tell myself to think - twice to about using ?:. My previous change also ate the - character when only one character is in a file. ACE_Read_Buffer - is crying for a test under $ACE_ROOT/tests which tests variable - sized buffers with sizes of 1, < BUFSIZ, BUFSIZ, > BUFSIZ - instead of under examples/misc/test_tead_buffer.cpp. Will try to - get in one. - - * docs/ACE-guidelines.html: - - Update guidelines to be careful about using ?: in some - situations. Thanks to Doug for suggesting this. - -Tue May 28 21:54:44 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move Debian_NoInline and - Debian_GCC_3.0.4 builds to new scoreboard. - -Tue May 28 21:32:42 UTC 2002 Don Hinton - - * ace/DLL.cpp: - * ace/DLL_Manager.cpp: - * ace/Framework_Component.cpp: - * ace/Framework_Component_T.cpp: - - Fixed Fuzz errors. - -Tue May 28 18:35:46 UTC 2002 Craig Rodrigues - - [Bug 1208] - * ace/OS_String.cpp (strok_r_emulation): Call ACE_OS_String::strtok - instead of ::wcstok. - * ace/OS_String.inl (strtok): If ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, - call 3 parameter version of wcstok, else call 2 parameter version. - * ace/config-linux-common.h: Only define ACE_LACKS_WCSTOK and - ACE_LACKS_WCSDUP_PROTOTYPE for glibc versions less than 2. Define - ACE_HAS_XPG4_MULTIBYTE_CHAR for glibc 2 and higher. - * tests/OS_Test.cpp: Add test for wchar_t version of strtok. - -Tue May 28 15:02:01 UTC 2002 Don Hinton - - * tests/tests.dsw: - * tests/Framework_Component_DLL.dsp: Added new dsp. - -Tue May 28 09:35:17 2002 Jeff Parsons - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - - Added DLL_Manager.* to these projects. - -Tue May 28 10:47:50 UTC 2002 Don Hinton - - * tests/Logging_Strategy_Test.cpp: - - Fixed typo, ACE_AS_* > ACE_HAS_*. - - * tests/Makefile.Framework_Component_DLL: - * tests/Makefile: - * tests/Makefile.bor: - - Added/modified Makefiles to add new test file, and updated - dependancies. - - * tests/Framework_Component_Test.{h,cpp}: - * tests/Framework_Component_DLL.{h,cpp}: Added. - * tests/Framework_Component_DLL_export.h: Added. - - Modified to test to exercise the new ACE_DLL_Singleton and - ACE_DLL* classed in concert with the Service Config framework - and new Framework Component mechanisms. - - * tests/DLL_Test.{h,cpp}: - - Modified test to fully test all the features of the new - ACE_DLL, ACE_DLL_Handle, and ACE_DLL_Manager classes. - - * ace/Makefile: - * ace/Makefile.bor: - - Added DLL_Manager and updated dependancies. - - * bin/generate_export_file.pl: - - Added generation of library specific TRACE macros in - terms of the new ACE_TRACE_IMPL macro below. - - * ace/Global_Macros.h: - - Added new macro, ACE_TRACE_IMPL and implemented ACE_TRACE - in terms of it if tracing is enabled. This allows you - to turn tracing on for a particular cpp by just undef'ing - ACE_TRACE and redefining it as ACE_TRACE_IMPL. - - * ace/Parse_Node.{h,cpp}: - - Removed handle() method and added a dll() method. Also, - since ACE_DLL_Handle::symbol() calls ACE::ldname() internally, - changed the ACE::ldname() calls in the ctors for - ACE_Object_node and ACE_Function_Node to ACE::strnew(). - - * ace/Svc_Conf_y.cpp: - - Changed call to ACE_Location_Node::handle() to ACE_Location_Node::dll() - in ACE_Service_Type::ctor. - - * ace/Service_Object.{h,cpp,i}: - - Modified ACE_Service_Type to maintain an ACE_DLL member variable - instead of an ACE_SHLIB_HANDLE, and changed ctor accordingly. - Removed call to ACE_OS::dlclose() from dtor. Removed handle() - methods. - - * ace/Object_Manager.cpp: - * ace/Service_Config.cpp: - - The Object Manager is now always responsible for cleaning up - the ACE_Framework_Repository, but only after the Service - Config framework has been cleanup. ACE_Service_Config no longer - knows anything about ACE_Framework_Repository. - - * ace/Service_Config.cpp: - - Changed create_service_type() to take an ACE_DLL& instead of - an ACE_SHLIB_HANDLE. Removed unneeded call to ACE::ldname(). - - * ace/DLL_Manager.{h,cpp}: Added. - * ace/DLL.{h,cpp}: - - Added new classes, ACE_DLL_Manager_Ex and ACE_DLL_Handle, and - and moved all functionalility from ACE_DLL to the new classes. - ACE_DLL maintains the same interface and semantics but defers - all calls to the new classes. ACE_DLL_Manager is a singleton - that manages the lifetimes of instances of refcounted - ACE_DLL_Handle objects that represent the actual dlls. The - following unloading strategies are available: per-process/dll, - eager/lazy. - - Added copy ctor to ACE_DLL so that the get/set_handle() methods - aren't needed--there use in the Service Config framework can - complicate orderly destruction of singletons based on - ACE_DLL_Singleton. - - Added call to ACE::ldname() to the symbol() method so that - the caller no longer needs to do it themselves. - - * ace/Singleton.{h,cpp,i}: - - Added new singleton template, ACE_DLL_Singleton, that registers - itself with the ACE_Framework_Repository so that it can be - destroyed when the dll with which it is associated is unloaded. - - - * ace/Proactor.{h,cpp}: - * ace/Reactor.{h,cpp}: - - Added name() method as needed by changes below, and implemented - dll_name() method to return "ACE". - - * ace/Framework_Component.{h,cpp,inl}: - * ace/Framework_Component_T.{h,cpp}: - - Enhanced the Framework Component "framework" ;-) to allow the - removal of registered components, either individually by name or - as a group, based on the dll that registered them. - -Mon May 27 15:59:17 2002 Nanbor Wang - - * ACEXML/common/XML_Codecs.h: - * ACEXML/common/XML_Codecs.cpp: Fixed VC warnings. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added Codecs.*. - - * tests/tests.dsw: - * tests/Codecs_Test.dsp: Added a new test. - - * ACEXML/common/XML_Common.dsp: Added XML_Codecs.*. - -Mon May 27 15:47:44 2002 Steve Huston - - * ace/OS.h: Add new service-related macro, ACE_Local_Service_Export. - This is intended for use in the ACE_FACTORY_DEFINE macro, for - static services whose factory functions need not be exported. - To use this when defining a factory function, do - ACE_FACTORY_DEFINE(ACE_Local_Service, StaticSvcClass) - - * examples/C++NPv2/Service_Reporter.cpp: Use ACE_Local_Service - in the ACE_FACTORY_DEFINE for the Service_Reporter service. - -Mon May 27 15:21:57 2002 Krishnakumar B - - * ace/Codecs.h: - * ace/Codecs.cpp: - - New files meant to hold all encoding/decoding classes/functions. - Currently implements Base 64 encoding. - - * ACEXML/common/XML_Codecs.h: - * ACEXML/common/XML_Codecs.cpp: - * ACEXML/common/Makeile: - - Same guy under a different hood. - - * ace/Basic_Types.h: - - Added definition of ACE_Byte. - - * tests/Codecs_Test.cpp: - * tests/run_test.lst: - - Regression test which tests the encoding/decoding functionality - added above. - - * tests/Makefile: - * tests/RMCast/Makefile: - * ace/Makefile: - * ace/RMCast/Makefile: - - Updated dependencies. - - * ace/Read_Buffer.cpp: - - Decrement the extra increment of slot. This is not completely - correct, as we should abstract the handling of end-of-line across - Unix and Windows and then use it here and all the places which - read stuff from files. See Fri May 24 10:42:25 2002 Douglas C. - Schmidt for another manifestation - of the same bug. - - * include/makeinclude/rules.local.GNU: - - Remove files named core.[0-9]+. Newer kernels dump a core file - associated with each process separately. - -Mon May 27 15:04:31 2002 Steve Huston - - * ace/OS.h (ACE_FACTORY_DEFINE): Add the export declaration to - the generated factory, removing the need to also use the - ACE_FACTORY_DECLARE in simple (most common) situations. - - * examples/C++NPv2/SLD.cpp: - * examples/C++NPv2/SLDex.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: Remove ACE_FACTORY_DECLARE. - It's not needed in these situations. - -Mon May 27 07:39:41 2002 Douglas C. Schmidt - - * ace/Configuration_Import_Export.cpp (squish): Added a - check for '\r' to ensure that empty lines are handled properly. - Thanks to Vladimir Chovanec for - reporting this. - -Mon May 27 09:20:12 2002 Johnny Willemsen - - * bin/generate_doxygen.pl: - Added tao_costime to the list of doxygen files that must be run - - * etc/tao_costime.doxygen: - Created doxygen config file for this TAO service - - * html/index.html: - Added link for the TAO CosTime service doxygen documentation - -Mon May 27 08:18:12 2002 Johnny Willemsen - - * ACEXML/common/Attributes_Def_Builder.h: - * ACEXML/common/DTD_Manager.h: - * ACEXML/common/Element_Def_Builder.h: - * ACEXML/common/Validator.h: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.h: - * ACEXML/parser/debug_validator/Debug_Element_Builder.h: - * ACEXML/parser/debug_validator/Element_Tree.h: - Corrected doxygen commands, no space between @ and the command is - allowed. - - * ace/Active_Map_Manager.h: - * ace/Arg_Shifter.h: - * ace/Based_Pointer_Repository.cpp: - * ace/CDR_Stream.h: - * ace/Caching_Utility_T.h: - * ace/Configuration.h: - * ace/DEV_IO.h: - * ace/Dev_Poll_Reactor.h: - * ace/Dirent_Selector.h: - * ace/Env_Value_T.h: - * ace/FILE.h: - * ace/Get_Opt.h: - * ace/Hashable.h: - * ace/IO_Cntl_Msg.cpp: - * ace/Init_ACE.h: - * ace/Local_Tokens.h: - * ace/Log_Msg.cpp: - * ace/Log_Msg.h: - * ace/Memory_Pool.h: - * ace/Message_Block.h: - * ace/OS.cpp: - * ace/OS.h: - * ace/Object_Manager.cpp: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Proactor.h: - * ace/Pair_T.h: - * ace/Proactor.cpp: - * ace/Process.h: - * ace/Reactor_Impl.h: - * ace/Remote_Tokens.h: - * ace/SV_Message.h: - * ace/Select_Reactor_T.h: - * ace/Svc_Conf.h: - * ace/System_Time.h: - * ace/TLI_Stream.h: - * ace/TP_Reactor.cpp: - * ace/TP_Reactor.h: - * ace/Task.h: - * ace/Task_T.h: - * ace/Thread.h: - * ace/Timer_Wheel_T.cpp: - * ace/Token.h: - * ace/Token_Manager.h: - * ace/WIN32_Proactor.cpp: - Improved the doxygen documenation by converting old style documentation - to doxygen style. Also corrected small typing errors, start sentences with - capital letters and corrected incorrected doxygen commands. - - * ace/POSIX_Proactor.cpp: - Corrected the signature of handle_events from unsigned long to u_long to - match the declaration of this method. This was found using the warning file - of the doxygen generation. - - * ace/Future.h: - Corrected brief documentation. Brief documentation ends when a dot is found - followed by a space of a newline. We had "i.e. " in the brief documenation - and now this documentation ended after the second dot, changed it to - "i.e.,". This fixed [Bug 892]. - - * ace/config-doxygen.h: - Added ACE_HAS_TOKENS_LIBRARY to generate ACE token library documentation - - * bin/generate_doxygen.pl: - Added tao_cosnaming to the list of doxygen files that must be run - - * etc/tao_cosnaming.doxygen: - Created doxygen config file for this TAO service - - * etc/tao_cosnotification.doxygen: - Corrected tagfile name and directory that is generated - - * html/index.html: - Added link for the TAO Naming service doxygen documentation - -Sun May 26 21:48:49 2002 Steve Huston - - * examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp: Added - include guard. - - * examples/C++NPv2/SLD.dsp: Define SLD_BUILD_DLL, not ACE_BUILD_DLL, - to set up the export stuff correctly. - - * examples/C++NPv2/SLDex.dsp: - * examples/C++NPV2/examples.dsw: Add new project for second part - of chap 5 example. - - * examples/C++NPv2/SLD.cpp: - * examples/C++NPv2/SLDex.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: Add ACE_FACTORY_DECLARE to - get correct export declaration for factory. - -Sun May 26 13:20:15 2002 Douglas C. Schmidt - - * ace/config-macosx.h: Added #define ACE_LACKS_SYSTIME_H. - Thanks to Dennis C. De Mars for - recommending this. - -Sat May 25 17:45:21 2002 Nanbor Wang - - * tests/Proactor_Scatter_Gather_Test.dsp: - * tests/tests.dsw: Added Proactor_Scatter_Gather_Test. - -Sat May 25 16:42:46 2002 Douglas C. Schmidt - - * tests/run_test.lst, - * tests/Makefile.bor, - * tests/Makefile: Added Proactor_Scatter_Gather_Test. - -Sat May 25 16:30:00 2002 Edan Ayal - - * tests/Proactor_Scatter_Gather_Test.cpp: - Added a new test for the asynch scatter/gather I/O - functionality. It is currently supported (as the feature itself) - only under Win32 - actually NT4 SP2 and above. The test runs in - a single thread, and involves a single Sender, two Receivers and - a single Writer. The Sender async-reads (scattered) from a file - into chunks of . It async-sends (gathered) the odd - chunks to the first receiver over a stream, and the even chunks - to the second receiver over a different stream. The receivers - async-read (scattered) from the socket streams into chunks in - size of , and convey the data to the Writer. The - Writer reconstructs the file using async-write - (gathered). Finally, the reconstructed file is compared to the - original file to determine test success. The test therefore - covers both async scatter/gather stream I/O and async - scatter/gather file I/O. - -Sat May 25 14:52:06 2002 Douglas C. Schmidt - - * ace/Strategies_T.cpp (make_svc_handler): Fixed a typo where - dll_name_ was misspelled as shared_library_. Thanks to Nathan - Krasney for reporting this. - -Fri May 24 10:42:25 2002 Douglas C. Schmidt - - * ace/Configuration_Import_Export.cpp (squish): Added a - check for '\n' to ensure that empty lines are handled properly. - Thanks to Vladimir Chovanec for - reporting this. - -Sat May 25 15:09:42 2002 Steve Huston - - * examples/C++NPv2/SLDex.{cpp mak}: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/SLDEX_export.h: - * examples/C++NPv2/Makefile: Add new dll for second part of - Chapter 5 dynamic (re)config example. - -Sat May 25 11:47:33 2002 Steve Huston - - * examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp (init): - Add wide->narrow char conversion to get ACE_TCHAR into - a char-based method. - -Sat May 25 01:15:02 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move Debian_Minimum bulid to - new scoreboard. - -Fri May 24 23:52:39 2002 Steve Huston - - * examples/C++NPv2/Configurable_Logging_Server.dsp: - * examples/C++NPv2/SLD.dsp: - * examples/C++NPv2/examples.dsw: Added new projects for chapter - 5's configurable logging server. - -Fri May 24 20:51:25 2002 Christopher Kohlhoff - - * ace/Log_Msg_NT_Event_Log.cpp (open): - Need to use logger_key, when it is supplied, to register the - event source with the system. - - * ace/Log_Msg_NT_Event_Log.cpp (log): - Replace all newlines in the message with the CR-LF character - sequence so that line breaks are correctly displayed in the - event viewer. - -Fri May 24 20:18:41 2002 Steve Huston - - * examples/C++NPv2/Reactor_Logging_Server.cpp: - * examples/C++NPv2/Reactor_Logging_Server_T.cpp: Move all the - method implementations for Reactor_Logging_Server<> into - Reactor_Logging_Server_T.cpp so they're reuseable in a - shared library. - - * examples/C++NPv2/Reactor_Logging_Server.h: Add template - implementation reference plumbing for compilers. - - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: Remove the - (duplicate) definitions of Reactor_Logging_Server<>; the - compiler now generates this using the code in - Reactor_Logging_Server_T.cpp. - - * examples/C++NPv2/svc.conf: - * examples/C++NPv2/SLD.cpp: - * examples/C++NPv2/SLD_export.h: - * examples/C++NPv2/SLD.mak: Code and Makefile for the dynamic - logging service in chapter 5. - - * examples/C++NPv2/Makefile: Added SLD.mak. - - * examples/C++NPv2/Logging_Acceptor.h: Added a PEER_ADDR trait. - The Reactor_Logging_Server_Adapter's use of Logging_Acceptor - needs the trait. - - * examples/C++NPv2/Service_Reporter.h: Make ctor public so - the service factory can instantiate this class. - -Sat May 25 00:20:50 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move Debian_WChar to new scoreboard. - -Fri May 24 10:18:39 2002 Steve Huston - - * bin/auto_compile: Don't bail out if the only CVS conflict is - in ChangeLog or THANKS. - - * ace/CDR_Stream.h (ACE_InputCDR): Added comments clarifying - the behavior of the ctor that takes a const ACE_Message_Block *. - Thanks to Alexander Maack for motivating this. - - * examples/C++NPv2/display_logfile.cpp (svc): Fix memory leak - (thanks to Alexander Maack for reporting this) and don't lose - the host name in the data if demarshaling has to be aborted to - go read more data from the file. - - * examples/C++NPv2/Logging_Acceptor_Ex.h: - * examples/C++NPv2/Logging_Event_Handler_Ex.h: Remove trailing ';' - on inlined methods; Changed to match book. - - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: Changed to - match book. - - * examples/C++NPv2/Reactor_Logging_Server_Adapter.{h cpp}: - * examples/C++NPv2/Service_Reporter.{h cpp}: - * examples/C++NPv2/Configurable_Logging_Server.{cpp mak}: - Example code from Chapter 5 of C++NPv2 (Service Configurator). - - * examples/C++NPv2/Makefile: Added new examples. - - * THANKS: Added Alexander Maack to the Hall of Fame. - - * ace/Reactor.h: Mark run[_alertable]_event_loop, end_event_loop, - event_loop_done, and reset_event_loop static methods deprecated - in favor of calling the non-static methods on - ACE_Reactor::instance(). Thanks to Don Hinton for motivating this. - - * ace/String_Base.h (rep): Added note that directs the caller to free - the returned memory. - -Mon May 13 19:15:49 2002 Steve Huston - - * ace/Service_Config.h: Doxygen-ized comments for open(), and - added a note on -b that files are evaluated relative to "/". - - * netsvcs/servers/main.cpp: Move the reactor/signal initialization - to be after the service loading. If the user specifies -b (be a - daemon) it closes all handles, including the reactor - notification pipe. Also added ACE_TEXT decorator to the string - literals. - -Fri May 24 13:29:05 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move Debian_Full and - Debian_Minimum_Static builds to new scoreboard. - -Thu May 23 20:35:22 2002 Steve Huston - - * ace/RB_Tree.h: Clarified that iterator is valid after changes to - container only if the iterated-over element is not removed. Thanks - to Craig Ching for noticing this. - - * ace/Module.cpp (close): Fixed to only use the passed-in flags if - the task delete policy was not set explicitly. Thanks to Doug - Schmidt for this fix! - - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: Use new technique - for detecting "quit" command. Unified with book content. - -Thu May 23 20:36:46 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move Lynx_PPC build to new scoreboard. - -Thu May 23 14:04:52 2002 Krishnakumar B - - * ACEXML/common/LocatorImpl.cpp: - * ACEXML/common/LocatorImpl.h: - * ACEXML/common/LocatorImpl.i: - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/parser/parser/Parser.h: - * ACEXML/parser/parser/Parser.i: - - Implemented the Locator for the XML parser. - - * ACEXML/common/CharStream.h: - * ACEXML/common/DTDHandler.h: - * ACEXML/common/Env.h: - * ACEXML/common/Exception.h: - * ACEXML/common/FileCharStream.h: - * ACEXML/common/InputSource.cpp: - * ACEXML/common/SAXExceptions.cpp: - * ACEXML/common/SAXExceptions.h: - * ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp: - * ACEXML/examples/SAXPrint/SAXPrint_Handler.h: - - Cosmetic fixes including some fixing some memory leaks. - - * ACEXML/examples/SAXPrint/Print_Handler.cpp: - * ACEXML/examples/SAXPrint/Print_Handler.h: - * ACEXML/examples/SAXPrint/main.cpp: - - Add support for printing out errors which uses the Locator. This - will print out errors only if there is an error in the XML file. - - -Thu May 23 07:53:37 2002 Douglas C. Schmidt - - * examples/Misc/test_read_buffer.cpp (ACE_TMAIN): Use ACE_STDIN - rather than 0. Thanks to Soeren Gerlach - for motivating this. - -Tue May 21 06:13:50 2002 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.h (class ACE_Hash_Map_Manager_Ex): Made - shared_find() protected rather than private. Thanks to - Ganesh Pai for reporting this. - -Wed May 22 23:18:26 2002 Priyanka - - * ACE version 5.2.3 released. - -Sat May 18 09:32:58 2002 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.cpp (get_remote_addr): - - Set errno to ENOTCONN if the SSL connection hasn't been - completed yet, and errno to EBADF if the file descriptor hasn't - been set yet. This emulates the getpeername() errno semantics. - -Sat May 18 08:19:48 2002 Ossama Othman - - * ace/SSL/SSL_Connector.h: - * ace/SSL/SSL_Connector.cpp: - - Temporarily removed these files since there are still some - thread-safefy issues to be addressed in the implementation. - Better to wait until after the forthcoming beta to ship them. - -Fri May 17 07:32:49 2002 Douglas C. Schmidt - - * ace/Log_Msg.cpp: Replaced ACE_NEW_RETURN_I with ACE_NEW_RETURN. - Thanks to Johnny Willemsen for reporting this. - -Thu May 16 20:15:36 2002 Douglas C. Schmidt - - * ace/OS.i: Added ACE_HAS_ISASTREAM_PROTO guard around the - extern "C" int isastream() method. Thanks to Oleg Terletsky - for reporting this. - - * ace/ARGV.h: Added a comment that points out the "add()" method - doesn't handle memory management. Thanks to Kyle Brost - and Don Hinton for clarifying this. - -Thu May 16 17:05:19 2002 Ossama Othman - - * ace/SSL/SSL_Connector.cpp (handle_input, handle_output): - - Qualify the AST type with its appropriate scope. g++ requires - it. - -Thu May 16 15:28:24 2002 Ossama Othman - - * ace/SSL/SSL_Connector.h: - * ace/SSL/SSL_Connector.cpp: - - New ACE_SSL-specific subclasses of the standard - ACE_{Strategy_}Connector classes. The standard ACE_Connector - class assumes that a connection is established once the stream - handle becomes writable. However, that only holds for protocols - with a single handshake, such as TCP. Protocols with multiple - handshakes, such as SSL, require special handling to prevent the - connection from being considered completed once the stream - handle becomes writable. The subclasses simply override the - handle_input() and handle_output() methods for each of base - classes that were subclassed. If possible, these changes will - be generalized and merged into ACE proper. When that occurs, - these classes will be deprecated. As such, these classes are - only intended to be an interim solution. - - * ace/SSL/SSL_SOCK_Connector.cpp (connect): - - Fixed bug where the handle in the SSL_SOCK_Stream was not set if - a connection is in progress. In that case, the handle must also - be set in the SSL_SOCK_Stream so that the correct handle is - returned from SSL_SOCK_Stream::get_handle() when performing - non-blocking connect()s via the SSL_SOCK_Connector. - - (complete): - - No need to set the handle in SSL_SOCK_Stream since it is - already set in the connect() method. - - Only attempt to complete the TCP connection if that hasn't - already been done. - - * ace/SSL/SSL_SOCK_Stream.h (peer): - - Made this method public so that it can be called by the new - SSL_{Strategy_}Connector classes. - - * ace/SSL/SSL_SOCK_Stream.cpp (get_remote_addr): - - Overrode the base class implementations of this method. Some - applications use get_remote_addr() as a way of determining - whether or not a connection has been established. In SSL's - case, the remote addr will be available once the TCP handshake - has been complete. Despite that fact, the SSL connection may - not have been completed. In such a case, a successful return - from get_remote_addr() would be misleading. - -Thu May 16 13:34:19 2002 Nanbor Wang - - * ACEXML/examples/SAXPrint/main.cpp: Added constness to - . This fixed a GCC 3.0 warning. - -Wed May 15 17:47:24 UTC 2002 Don Hinton - - * ace/DLL.cpp: Fixed compile error in an AIX ifdef'd - section of code I missed before. - -Wed May 15 17:18:58 UTC 2002 Don Hinton - - * ace/DLL.cpp (open): - - Removed unreferenced return value. Thanks to Nanbor - for noticing this. - -Wed May 15 16:44:27 UTC 2002 Don Hinton - - * ace/DLL.cpp (save_last_error): - - Use ACE::strnew to make a copy of the saved string. - -Wed May 15 15:58:07 UTC 2002 Don Hinton - - * tests/DLL_Test.cpp: - - Modified test to make calles to ACE_DLL::error () in order to test - changes below. - - * ace/DLL.{h,cpp}: - - Removed the return in open() after an ACE_Lib_Find error, so that - dlopen() will be called and the appropriate error stored. - - Added new static flag, open_called_, to keep track of whether or not - a library function (specifically dlopen) has been called. This is - used internally to make sure that dlerror() isn't called unless the - library has been initialized with a call to dlopen first. Otherwise - it seg-faults on Linux (and perhaps others). - - Also added a last_error_ variable and save_last_error() method and - placed a call to save_last_error() after each library call. Then - changed error() so it just returns last_erro_. This solves a few - problems, since open() made calls to error() which returned the - appropriate error but cleared the value for the next call. So for - instance, when the ctor failed and tried to call error() to report - the error, it didn't return anything since open() had already called - it. Also, if open() failed, and the called tried to call error() to - find out why, they got a blank error message since error() had - already been called by open(). - -Tue May 14 19:40:11 2002 Priyanka Gontla - - * tests/Proactor_Test.cpp (initiate_write_stream): - Applied the Patch Johnny Willemsen sent to fix the test for the - unicode builds. - -Tue May 14 19:14:11 2002 Priyanka Gontla - - * tests/TP_Reactor_Test.cpp (Connector): - Fixed the warnings by removing the check condition - 'size_t index_ >= 0' which is always going to be true. - - * tests/Proactor_Test.cpp: - Integrated the changes sent by Alex Libman - to fix the test on - linux and other platforms that has a weak AIO implementation. - -Mon May 13 16:43:34 2002 Krishnakumar B - - * ACEXML/parser/parser/Parser.cpp (parse_xml_prolog): - - I meant to change "standalong" to "standalone" not "encoding" to - "encodine". Brain damage... - -Mon May 13 16:31:33 2002 Krishnakumar B - - * ACEXML/parser/parser/Parser.cpp (parse_xml_prolog): - - Fixed a small typo. We should parse "standalone" not - "standalong". - -Mon May 13 10:19:48 2002 Nanbor Wang - - * ace/Message_Block.cpp: Fixed a fuzz warning. - -Mon May 13 08:36:38 2002 Alex Libman - - * tests/Proactor_Test.cpp: - - Improved flow-control in full-duplex mode by increasing the - window size, total_send - total_recv to achieve max performance - from TCP/IP - - Improved static info which includes the number of bytes - sent/recv and the number of read/write operations. This allows - to see distribution of I/O operations between handlers. Would be - useful for Proactor's future improvements. - - Impoved scatter/gather branch under Win32. Instead of splitting - one message into 3 small blocks we now send them as a - chain. This helps to improve performance. - -Mon May 13 07:33:43 2002 Chad Elliott - - * ACEXML/examples/SAXPrint/main.cpp: - - Fix the Debian build by using ACEXML_Char instead of ACE_TCHAR. - -Sun May 12 23:20:06 2002 Alex Libman - - * tests/TP_Reactor_Test.{h,cpp}: - Improved flow-control in full-duplex mode by increasing the - window size, total_send - total_recv to achieve max performance - from TCP/IP - - Improved static info which includes the number of bytes - sent/recv and the number of read/write operations. This allows - to see distribution of I/O operations between handlers. Would be - useful for TP_Reactor's future improvements. - -Sun May 12 10:11:07 2002 Douglas C. Schmidt - - * ace/Message_Queue_T.cpp: Updated all the enqueue*() and - dequeue*() methods so that they use the new - total_size_and_length() method, which is more efficient. - - * ace/Message_Block.h (ACE_Message_Block): Added new - total_size_and_length() method to speed up calculation of these - values by putting them into one loop. - -Sun May 12 11:12:00 2002 Nanbor Wang - - * Makefile: Moved ACEXML directory up so it would be compile right - after ACE. We will need them when XML-based Service - Configurator becomes the default. Thank to Kitty for pointing - this out. - -Sat May 11 13:04:49 2002 Douglas C. Schmidt - - * ace/Synch.h: Updated the documentation explaining - what an ACE_Barrier does. Thanks to Timothy Culp - for motivating this. - -Sun May 12 09:45:37 2002 Edan Ayal - - * ace/WIN32_Asynch_IO.cpp: Fixed check for ACE_IOV_MAX - limitation in the following methods: - - ACE_WIN32_Asynch_Read_Dgram::recv - - ACE_WIN32_Asynch_Write_Dgram::send - - ACE_WIN32_Asynch_Read_Stream::readv - - ACE_WIN32_Asynch_Write_Stream::writev - - ACE_WIN32_Asynch_Read_File::readv - - ACE_WIN32_Asynch_Write_File::writev. - -Fri May 10 18:29:48 2002 Krishnakumar B - - * ace/config-icc-common.h (ACE_HAS_ANSI_CASTS): - * include/makeinclude/platform_linux_icc.GNU: - - Fixed the config file to ensure compilation with Intel C++ - Compiler version 6.0. - -Fri May 10 18:16:50 2002 Irfan Pyarali - - * ace/Connector.cpp (handle_output): Removed unnecessary debug - statement. - -Thu May 9 20:02:10 2002 Douglas C. Schmidt - - * docs/ACE-bug-process.html: Fixed a typo in the hostname of - the TAO FAQ. Thanks to Jeff Adams - for reporting this. - -Thu May 9 16:26:48 2002 Nanbor Wang - - * ACEXML/examples/SAXPrint/main.cpp: Added missing include file. - - * ace/Service_Config.cpp: - * ace/Service_Config.h: - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: Consolidated ace_create_service_type into - ACE_Service_Config::create_service_type_impl. - - -Thu May 9 14:35:24 2002 Nanbor Wang - - * ace/XML_Svc_Conf.h: Changed to include ACE_export.h instead of - config-all.h and added #pragma once macros. - -Thu May 09 12:12:59 2002 Nanbor Wang - - * ACEXML/apps/svcconf/Svcconf.h: - * ACEXML/apps/svcconf/Svcconf.cpp: - * ACEXML/apps/svcconf/Svcconf_Handler.h: - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: Commented out the code - if XML-based Service Configurator is not used. - - * ACEXML/apps/svcconf/Makefile: - * ACEXML/apps/svcconf/XML_Svc_Conf_Parser.dsp: Removed ACEXML from - the list of include path to be consistent with other projects. - -Thu May 09 10:53:51 2002 Nanbor Wang - - * ACEXML/common/XML_Common.dsp: One more mis-merged project file. - -Thu May 09 10:39:17 2002 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Fixed link error on win32. I forgot to merge - these project files differently (they can not be merged.) - -Thu May 9 01:07:56 2002 Nanbor Wang - - * ACEXML/common/StrCharStream.h: - * ACEXML/common/StrCharStream.cpp: Fixed Linux compilation - errors. - -Thu May 09 00:38:22 2002 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (event_handling): Added a fix for bug - 1161. The problem was described aptly and the fix was applied - exactly as suggested by Lyn Headley : - - Problem: "The do-while loop in this function is problematic, - because active threads is incremented once prior to executing - the loop, and then decremented on every iteration of the loop - inside safe dispatch(). Thus on the second iteration of the - loop active threads is decremented to 2^32, which causes the - thread to block on waiting to change state inside update - state(), which is never signaled (because there are no other - active threads)." - - Solution: "Moving the do clause of the loop up a few statements - to include the increment of active threads (and the acquisition - of the lock) would probably fix the larger bug." - - Also, thanks to Lyn Headley and Paxton Mason - at Wolverine, and Kobi Cohen Arazi - , Mike Winter (mwinter@sonic.net), - who have all suggested fimilar problems - and fixes. - -Thu May 09 00:06:47 2002 Irfan Pyarali - - * examples/Reactor/WFMO_Reactor: Added the "Static Debug", "Static - Release", and "Release" build configurations to the "Debug" - configuration for all the 16 dsp files in this directory. - -Wed May 8 23:57:32 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move Redhat 7.1 Core build to new scoreboard. - -Wed May 8 15:15:41 2002 Nanbor Wang - - Merged in the XML-based Service Configurator framework. The - XML-based Service Configruator is *not* enabled by default and - the merge should not affect existing applications. We will make - the XML-based Service Configurator the defualt one at some point - in the future. So you might want to try it out before that - time. :) To switch current ACE to use XML Service Configurtor, - Add - - #define ACE_HAS_XML_SVC_CONF - - in your . You can use the - $(ACE_ROOT)/bin/svcconf_convert.pl to convert your existing - svc.conf files to svc.conf.xml. - - * ace/OS.h: - * ace/Parse_Node.cpp: - * ace/Parse_Node.h: - * ace/Service_Config.cpp: - * ace/Service_Config.h: - * ace/Svc_Conf.h: - * ace/Svc_Conf_Lexer_Guard.cpp: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - * tests/Service_Config_DLL.cpp: Simplified the macro check. - - - * ace/Service_Config.h: - * ACEXML/apps/svcconf/Svcconf.cpp: Fixed Linux compilation warnings. - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ace/Service_Config.cpp: Added more comprehensive error messages. - - * ACEXML/Makefile: - * ACEXML/Makefile.bor: - * ACEXML/apps/Makefile: - * ACEXML/apps/Makefile.bor: - * ACEXML/apps/svcconf/Makefile: - * ACEXML/apps/svcconf/Makefile.bor: - * ACEXML/parser/parser/Makefile: - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/ace.icc: - * examples/ASX/CCM_App/Makefile: - * examples/ASX/CCM_App/Makefile.CCM_App: Added or Updated Makefiles. - - - * bin/svcconf-convert.pl: Added more debugging info printout. - Fixed incorrect mapping on initializer path/path and - state/params. - - * ace/Service_Object.h: Added enum definition to differentiate - ACE_Service_Type_Impl. The enum values are taken from - "ace/Svc_Conf_Toekns.h" so that the same service can work with - both classic and XML service configurator frameworks. - - - * ace/Service_Config.h: - * ace/Service_Config.cpp: Added and - methods to ensure objects are - allocated in consistent DLL. - - * ACEXML/parser/parser/Parser.cpp: Made the exception messages - more comprehensive so it's easier to determine the origins of - parse errors. - - * ACEXML/apps/svcconf/Svcconf_Handler.h: - * ACEXML/apps/svcconf/Svcconf_Handler.i: - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: Added more implementation. - - * examples/ASX/CCM_App/svc.conf.xml: - * netsvcs/servers/svc.conf.xml: - * tests/Service_Config_Test.conf.xml: Added new XML-based svc.conf files. - - * tests/Service_Config_DLL.cpp: Added xml-based inline svc.conf directives. - - - * ACEXML/apps/XML_Apps.dsw: Added new workspace for XML - applications. This should contains all projects under this - subdirectory. - - * ACEXML/apps/svcconf/README: - * ACEXML/apps/svcconf/Svcconf.cpp: - * ACEXML/apps/svcconf/Svcconf.h: - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ACEXML/apps/svcconf/Svcconf_Handler.h: - * ACEXML/apps/svcconf/Svcconf_Handler.i: - * ACEXML/apps/svcconf/XML_Svc_Conf_Parser.dsp: Added new files - that implement the parser for XML-based Service Configurator. - - * bin/svcconf-convert.pl: Updated the help message. - - * ace/config-all.h: Added ACE_DEFAULT_SVC_CONF_EXT to define the - default file extention name for svc.conf files. It is ".conf" - when using classic Service Configurator and ".conf.xml" when - using XML Service Configurator. - - * tests/Service_Config_Test.cpp: Changed to use different file - extension with different Service Configurator. - - * tests/Service_Config_Test.conf.xml: Added the converted XML - based svc.conf file. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - * ace/XML_Svc_Conf.h: - * ace/XML_Svc_Conf.cpp: Added abstract interface definition for - DLL based XML parser. - - * ace/OS.h: Defined ACE_DEFAULT_SVC_CONF_FILE to "svc.conf.xml" if - ACE_USES_CLASSIC_SVC_CONF is not defined. - - * ace/Service_Config.cpp: Adapt Service_Config to use XML parser - to process an svc.conf.xml file. - - - * bin/generate_export_file.pl: Added code to record the flags used - to generate an export file. - - - * XML/examples/svcconf/Svcconf_Handler.h: - * XML/examples/svcconf/Svcconf_Handler.i: - * XML/examples/svcconf/Svcconf_Handler.cpp: Added Svcconf handling - simulation. - - * XML/examples/test_docs/svcconf.dtd: Revised Svcconf DTD. - - - * XML/examples/test_docs/svcconf.dtd: Updated the DTD again. - The tag also needed an "id" attribute. - - * XML/examples/SAXPrint/main.cpp: - * XML/examples/SAXPrint/svc.conf.xml: Modified the sample XML to - conform to the updated svcconf.dtd. - - * XML/examples/svcconf/README: - * XML/examples/svcconf/Svcconf.dsp: - * XML/examples/svcconf/Svcconf.dsw: - * XML/examples/svcconf/Svcconf_Handler.cpp: - * XML/examples/svcconf/Svcconf_Handler.h: - * XML/examples/svcconf/Svcconf_Handler.i: - * XML/examples/svcconf/main.cpp: New example to test out - svc.conf.xml parsing. Not finished. - - - * XML/examples/test_docs/svcconf.dtd: Simplied the svc.conf.dtd by - removing the tags and making it an attribute for - and tags. - - - * ace/Parse_Node.cpp: - * ace/Parse_Node.h: - * ace/Service_Config.cpp: - * ace/Service_Config.h: - * ace/Svc_Conf.h: - * ace/Svc_Conf.y: - * ace/Svc_Conf_Lexer_Guard.cpp: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: Decoupled old Service_Config parser from ACE. - - - * XML/examples/SAXPrint/main.cpp: Added a new test to try the new - StrCharStream and switch to use ACE_Get_Opt to support more - robust command line arguments. - - * XML/common/StrCharStream.h: - * XML/common/StrCharStream.cpp: Added new CharStream class that - take a null-terminated ACEXML_Char string as an input source. - - * XML/common/FileCharStream.h: Removed unnecessary inclusion of - "ace/streams.h". - - * XML/common/Makefile: - * XML/common/Makefile.bor: - * XML/common/XML_Common.dsp: Added StrCharStream.*. - -Wed May 8 16:29:05 2002 Krishnakumar B - - * bin/nightlybuilds/builds.lst (STATUS): - - Added more information about the build on toutatis. - -Wed May 8 13:57:58 2002 Chad Elliott - - * ace/OS_Dirent.h: - * ace/OS_Dirent.cpp: - - Fixed the Dirent_Test under wide character builds with Visual C++ - 6.0. The d_name member of the dirent struct is normally a one - element ACE_TCHAR array that is used as an ACE_TCHAR pointer. - This doesn't work properly under wide character builds with VC6. - Note: because of this change, memcpy on a 'struct dirent' no - longer works on Windows as it would on UNIX. - -Wed May 8 11:02:44 2002 Balachandran Natarajan - - * tests/TP_Reactor_Test.cpp: Turned off full traces, only the - error messages will goto the log. - -Wed May 8 10:58:15 2002 Alex Libman - - * tests/Proactor_Test.cpp: Fixed the test to work right on - Linux. Turned off full traces, only the error messages and - statistics will go to the log. - -Wed May 8 06:14:08 2002 Douglas C. Schmidt - - * ace/Proactor.h (ACE_Proactor): Fixed a comment that said - "ACE_Reactor" rather than "ACE_Proactor" (cut+paste error ;-)). - Thanks to Don Hinton for reporting this. - - * ace/Filecache.cpp (R_MASK): Allow file sharing by default. - Thanks to Peter Kullmann" for reporting - this. - -Tue May 07 21:03:01 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.cpp: - - Removed vestigial debugging code. - -Tue May 07 17:42:16 2002 Irfan Pyarali - - * ace/OS.i: Added missing "\". - -Tue May 7 16:45:13 2002 Krishnakumar B - - * ace/ACE.cpp (handle_timed_complete): - - Check for the return value from ACE_OS::getsockopt(). Return - ACE_INVALID_HANDLE if return value is -1. Thanks to Jonathan - Wackley for reporting this. - - * ace/OS.i (ACE_LACKS_SETREUID_PROTOTYPE): - - Check if we are compiling with gcc in addition to checking for - _XOPEN_SOURCE. GCC unconditionally turns on _XOPEN_SOURCE, but - it is not defined in Solaris 2.5.1. So this hack to expose the - missing prototypes of setreuid() and setregid(). Thanks to - Jonathan Wackley for reporting this. - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Cosmetic fixes. - -Tue May 07 15:44:41 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Reverted the change "Tue May 07 15:15:30 - 2002 Balachandran Natarajan ". Got an idea - waht was going wrong with the test and fixed that. - -Tue May 07 15:15:30 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Removed No_Server_MT_Connect_Test from - the daily builds. The testing methodology needs to be - rethought. Thanks to Ru for ppointing out that the test is - failing on a few paltforms. - -Tue May 7 12:59:24 2002 Balachandran Natarajan - - * tests/Proactor_Test.cpp (handle_write_stream): Tried to fix - warnings and errors in Borland builds. Thanks to Ru for pointing - it out. - -Tue May 7 10:31:24 2002 Alex Libman - - * tests/TP_Reactor_Test.cpp: - * tests/TP_Reactor_Test.h: Fixed the tests to work fine on all - platforms. - - * tests/run_test.lst (TP_Reactor_Test): Enabled the test for the - daily runs. - -Mon May 06 16:31:14 2002 Irfan Pyarali - - * examples/Reactor/WFMO_Reactor/Abandoned.cpp (handle_timeout): - * examples/Reactor/WFMO_Reactor/APC.cpp (handle_signal): - - Make sure to remove handlers from the reactor if they are not - going to be around when the reactor closes down. - - * examples/Reactor/WFMO_Reactor/Handle_Close.cpp: Reactor creation - was buggy and the wrong reactor's event loop was being run. - - * examples/Reactor/WFMO_Reactor/Talker.cpp: STDIN handler was not - getting cleaned up properly. Also, Proactor was not getting - removed properly from the Reactor. - - * examples/Reactor/WFMO_Reactor/Network_Events.cpp: Network - listener was not getting cleaned up properly. - - * examples/Reactor/WFMO_Reactor/Multithreading.cpp (Task_Handler): - Fixed an "out of bounds" error where a "for" loop that was going - from 1 to n rather than from 0 to n-1. Also, added a debug - statement. - - * examples/Reactor/WFMO_Reactor/run_test.pl: Redirected some of - the output from STDERR to STDOUT. - -Mon May 06 15:45:35 2002 Nanbor Wang - - * ACEXML/parser/debug_validator/Debug_Validator.dsp: Fixed - rum-time library options to avoid compilation errors when MFC is - enabled. - -Mon May 6 14:26:52 2002 Balachandran Natarajan - - * tests/Proactor_Test.cpp: Fixed unused variable warnings in - non-win32 builds. - -Mon May 6 13:37:45 2002 Balachandran Natarajan - - * bin/generate_performance_chart.sh: Changed the range of the y - range for the plots. - -Mon May 6 07:39:22 2002 Douglas C. Schmidt - - * ace/Message_Queue_T.cpp (notify): Moved int queue_count definition - to outside the scope. Thanks to Chad Elliot for reporting this. - -Sun May 5 19:14:34 2002 Douglas C. Schmidt - - * ace/Message_Queue_T.cpp: Modified all the enqueue*() methods so that - their calls to notify() occur *outside* of the monitor lock. - This change prevents deadlock from occurring when a reactor's - notification pipe is full. Thanks to Sasha Agranov - for reporting this. - -Mon May 6 10:24:12 2002 Johnny Willemsen - - * apps/gperf/src/Makefile: - Removed INSBIN because this didn't work before my change of - Fri May 03 2002, but now it works and it causes error in all - builds. - -Sun May 5 22:23:00 2002 Edan Ayal - - * tests/Proactor_Test.cpp (Sender): - - Totally removed the message content mem-copies by having the - message blocks assume ownership without copying, by - pre-allocating space for the ending '\0' (needed for the - printouts), and by using an additional complete message content - string for the non-scatter/gather case. - - - Added missing message blocks releases when the write - operations fail. - - - Added a missing message block rd_ptr adjustment at the message - content printout in the non-scatter/gather case. - -Fri May 03 20:29:12 UTC 2002 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Only set INSBIN, INSLIB, INSMAN and INSINC when they are not set - yet. This way these can be overruled in a makefile. - -Fri May 03 08:38:27 2002 Ossama Othman - - * ace/SSL/SSL_Context.cpp (ssl_library_init): - - Removed extraneous "SSL_library_init()" call. - SSLeay_add_ssl_algorithms(), which is an alias for - SSL_library_init(), is already called. - -Thu May 02 16:33:05 2002 Nanbor Wang - - * ace/OS.i (mmap): On Win32, check for both ERROR_INVALID_NAME and - ERROR_FILE_NOT_FOUND to account for difference when running it - on WINNT but with ACE_HAS_WINNT4 = 0. Thanks to Ram Ben-Yakir - for figuring this out. - -Fri May 3 07:21:20 2002 Ossama Othman - - * tests/Dev_Poll_Reactor_Test.cpp: - - Uncommented ACE_START/END_TEST macros and removed extraneous - debugging statements. - -Fri May 3 08:00:55 2002 Chad Elliott - - * docs/tutorials/012/work.h: - - Include ace/Log_Msg.h to get the definition of ACE_DEBUG and - related macros. - -Fri May 3 07:07:31 2002 Chad Elliott - - * tests/Proactor_Test.cpp: - - Put ACE_TEXT around bare char strings. - -Fri May 3 06:57:13 2002 Chad Elliott - - * tests/Proactor_Test.cpp: - - Add a conditional to avoid building this test if threads are not - enabled. - -Fri May 3 06:47:23 2002 Chad Elliott - - * tests/Dev_Poll_Reactor_Test.cpp: - - Add a conditional main for when ACE_HAS_DEV_POLL and - ACE_HAS_EVENT_POLL are not defined. - -Fri May 3 06:41:10 2002 Chad Elliott - - * ace/Token.h: - - Remove parameter name to avoid a warning from g++. - -Thu May 02 15:54:48 2002 Ossama Othman - - * ace/Select_Reactor_T.cpp (work_pending): - - Check if any timers are pending. If so, override any timeout - from the select() call. Corrects a problem where the decision - that no work was pending despite the fact that timers were - pending. - -Thu May 02 15:53:39 2002 Ossama Othman - - * tests/Dev_Poll_Reactor_Test.cpp: - - Added some comments that briefly describe the test. - -Thu May 2 15:45:34 2002 Ossama Othman - - * tests/Dev_Poll_Reactor_Test.cpp: - - New one-button test for the Dev_Poll_Reactor. Currently it is - fairly simple. Improvements to be added soon. - -Thu May 2 15:22:36 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.h (work_pending_i): - * ace/Dev_Poll_Reactor.cpp (work_pending_i): - - Accept a pointer to ACE_Time_Value instead of a reference. - - Corrected the logic for the test for pending timers. - -Thu May 02 14:38:53 2002 Ossama Othman - - * examples/Reactor/Misc/pingpong.cpp: - - Include "ACE.h" to pull in methods in the ACE class/namespace. - -Thu May 2 14:02:20 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.cpp (work_pending_i): - - Take into account pending timers when deciding if there is work - to be done. - -Thu May 02 13:34:08 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.cpp: - - Include "ACE.h" to pull in methods in the ACE class/namespace. - -Thu May 2 13:28:01 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.h: - - Updated some documentation. - - * ace/Dev_Poll_Reactor.inl (upcall): - - New method containing common upcall operations for all types of - IO events. - - * ace/Dev_Poll_Reactor.cpp: - - Commented out "ready set" code since the upcall will simply loop - until the event handler no longer desires callbacks. This is - okay since multiple threads may dispatch event handlers (similar - to what the TP_Reactor does). - - (close): - - Cleaned up memory and resource leaks. - - (handle_events_i, work_pending_i): - - Moved "event polling" code to the new work_pending_i() method. - handle_events_i() now calls that method to determine if any - events must be dispatched. - - If the underlying ioctl() call was interrupted (e.g. via the - INTR signal), i.e. returns -1 with errno set to EINTR, then - automatically restart the event loop if so desired by the user. - - (work_pending): - - Implemented this method. It simply grabs the reactor lock and - calls the new work_pending_i() method. - - (dispatch_io_events): - - Call the remove_handler() method that acquires the lock instead - of the one doesn't. The lock must be reacquired since reactor - state will potentially change during an upcall and since the - lock was released prior to dispatching the upcall. Fixes a race - condition. - - Directly use pollfd pointers as the loop variables instead of an - integer. No need for the additional indirection. - - 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 poll) must be dispatched before any additional event - can be polled. As such, the Dev_Poll_Reactor keeps track of the - progress of events that have been dispatched. - - The semantics of the event loop in the presence of multiple - threads is non-trivial. The "start point" of the loop will be - incremented each time an event handler is dispatched, which may - be done across multiple threads. Multiple threads may change - the loop variables. Care must be taken to only change those - variables with the reactor lock held. - - (dispatch_timer_handlers): - - Release the reactor lock during the upcall. Fixes a potential - deadlock. - -Thu May 2 10:35:25 2002 Phil Mesnier - - * ace/Log_Msg.cpp: ACE_Log_Msg::open() did not properly initialize a - custom backend due to improper evaluation of result code. - -Thu May 02 07:15:31 2002 Ossama Othman - - * ace/IO_Cntl_Msg.h: - - Include OS.h to pull in size_t typedef. - -Thu May 2 07:50:29 2002 Chad Elliott - - * examples/Web_Crawler/URL_Addr.h: - - Include ace/ACE.h to avoid compilation error due to missing - method (ACE::hash_pjw) in inline method ACE_URL_Addr::hash(). - -Thu May 2 07:46:59 2002 Chad Elliott - - * websvcs/lib/URL_Addr.h: - - Include ace/ACE.h to avoid compilation error due to missing - method (ACE::hash_pjw) in inline method ACE_URL_Addr::hash(). - -Thu May 2 07:34:59 2002 Chad Elliott - - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - - Switch ACE::get_ip_interfaces() to - ACE_Sock_Connect::get_ip_interfaces() and include - ace/Sock_Connect.h. This only applies to Win32. - -Thu May 2 00:39:32 2002 Irfan Pyarali - - * ace/Dynamic.i: Uncommented ACE_TRACE calls. - -Thu May 2 00:29:34 2002 Irfan Pyarali - - * ace/TLI_Stream: Uninlined a methods that needed access to the - ACE class. - - * ace/Service_Object: Uninlined ACE_Service_Type::name(). - - * ace/Malloc_T.cpp: - * ace/Process_Mutex.cpp: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/TLI_Acceptor.cpp: - * ace/TLI_Connector.cpp: - * ace/TLI_Stream.cpp: - - Added #include "ace/ACE.h". - -Wed May 1 21:07:23 2002 Ossama Othman - - * ace/config-win32-msvc-6.h: - - Moved library "decorator" related macros to - config-win32-msvc.h. - - * ace/config-win32-msvc.h: - - Support "decorated" library names for MSVC 6 or better. Fixes - run-time library search problems in MS Visual Studio .NET - builds. - - * ace/ATM_Addr.h: - * ace/ATM_Params.h: - * ace/MEM_Addr.h: - * ace/Module.h: - * ace/Name_Space.h: - * ace/Naming_Context.h: - * ace/Remote_Name_Space.h: - - Include "ACE_export.h" instead of "ACE.h." The latter is - overkill. - - * ace/PI_Malloc.h: - - Include "ACE_export.h" instead of "ACE.h." The latter is - overkill. - - No need to include "ace/Malloc_T.h" and "ace/Memory_Pool.h" - - * ace/Date_Time.h: - * ace/Event_Handler.h: - * ace/High_Res_Timer.h: - * ace/Malloc.h: - * ace/Malloc_Allocator.h: - * ace/Malloc_T.h: - * ace/Mem_Map.h: - * ace/Pipe.h: - * ace/Profile_Timer.h: - * ace/Read_Buffer.h: - * ace/Shared_Memory.h: - * ace/Shared_Object.h: - * ace/SOCK.h: - * ace/SPIPE_Addr.h: - * ace/Stats.h: - * ace/SV_Message.h: - * ace/SV_Semaphore_Simple.h: - * ace/SV_Shared_Memory.h: - * ace/Synch.h: - * ace/Synch_Options.h: - * ace/Thread.h: - * ace/Typed_SV_Message.h: - - Include "OS.h" and "ACE_export.h" instead of "ACE.h." The - latter is overkill. - - * ace/Configuration.h: - * ace/DEV_Addr.h: - * ace/FIFO.h: - * ace/Get_Opt.h: - * ace/Vector_T.h: - - No need to include "ACE.h." - - * ace/Dynamic.h: - - No need to include "ACE.h", "Synch_T.h" and "Singleton.h." - "ACE_export.h" is enough. - - * ace/INET_Addr.h: - - Include "Sock_Connect.h" instead of "ACE.h". The latter is - overkill. - - * ace/Message_Block.h: - - Include "ace/OS.h" and "ace/ACE_export.h" instead "ace/ACE.h". - The latter is overkill. - - No need to include "Malloc.h" - - * ace/IO_Cntl_Msg.h: - * ace/Sock_Connect.h: - - Include "ACE_export.h" to pull in ACE_Export macro definition. - - * ace/Activation_Queue.cpp: - * ace/Message_Block.cpp: - - Include "ace/Malloc_Base.h" to pull in ACE_Allocator class - declaration. - - * ace/DEV_IO.h: - * ace/FIFO_Recv.h: - * ace/FIFO_Send.h: - * ace/NT_Service.h: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_IO.h: - * ace/SPIPE_Stream.h: - * ace/SV_Semaphore_Simple.cpp: - * ace/Service_Types.h: - * tests/test_config.h: - - Include "ace/ACE.h" pull in methods in the "ACE" - class/namespace. - - * ace/Stream.h: - * ace/SV_Message_Queue.h: - - Include "config-all.h" instead of "ACE.h." The latter is - overkill. - - * ace/OS_Memory.h: - * ace/config-all.h: - - Moved default definition of the - ACE_HAS_POSITION_INDEPENDENT_POINTERS macro to - "ace/config-all.h". Allows for additional reductions in - inter-header dependencies. - - * ace/PI_Malloc.cpp: - - Moved non-essential includes within the - "ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1" block. No need to - include them if the implementation won't be compiled. - - * ace/Select_Reactor_T.cpp: - - Include "ace/ACE.h" pull in methods in the "ACE" - class/namespace. - - (handle_events): - - Moved ACE_Countdown_Time declaration within the ACE_MT_SAFE - block. It is only used for the multi-threaded case. - - (work_pending): - - As part of the timeout take into account the time taken to - acquire the lock. - - Copy the timeout value. Do not ignore the interface by casting - away the const-ness. - - Do not bother continuing if the reactor has been deactivated. - -Wed May 1 15:49:33 2002 Steve Huston - - * tests/DLL_Test_Impl.{h cpp}: Add a nothrow variant of operator new - for platforms with ACE_HAS_NEW_NOTHROW (like HP-UX, aC++). - -Tue Apr 30 14:54:02 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added $TAO_ROOT/tests/Connection_Timeout - to the daily build list. - -Tue Apr 30 14:42:06 2002 Chad Elliott - - * ace/Synch.h: - * ace/Synch.i: - - Change the Null wait condition wait() method to take a const - ACE_Time_Value* like the Mutex wait condtion. - -Mon Apr 29 20:28:49 UTC 2002 Craig Rodrigues - - * bin/nightlybuild/builds.lst: Move SunOS_SunCC51, SunOS_GCC_2_95, - Solaris8_FORTE_UP_1 to new scoreboard. - -Sun Apr 28 18:03:50 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the new tests to our daily list of - tests that needs to be run. - -Sun Apr 28 11:50:17 2002 Edan Ayal - - * ace/WIN32_Asynch_IO.cpp: - ACE_WIN32_Asynch_Read/Write_Stream/File_Result::complete - - corrected the updates to the chained message blocks (rd_ptr and - wr_ptr) in case of scatter-gather IO. This was apparently a - cut-n-paste bug. - -Sun Apr 28 08:19:37 2002 Balachandran Natarajan - - * tests/Proactor_Test.cpp: Added code to test async scatter-gather - IO on Win32. Thanks Edan Ayal for donating - this. - -Sun Apr 28 12:27:12 2002 Johnny Willemsen - - * include/makeinclude/ace_flags.bor: - Added cflags and lib for new TAO IFRService library - -Sat Apr 27 20:00:27 2002 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Exclude template files Atomic_Op.cpp and - Framework_Component_T.cpp from compilation. - -Sat Apr 27 18:10:37 2002 Balachandran Natarajan - - * ace/Message_Queue_T.cpp (flush): Fixed fuzz error. - -Sat Apr 27 17:13:16 2002 Balachandran Natarajan - - * ace/Svc_Handler.cpp: Added a closing '}' for the method - ACE_Buffered_Svc_Handler::dump () const. This should fix the - compile errors with g++ that will start showing up shortly in - the Scoreboard. - - * ace/*makefile: Updated dependencies. - -Sat Apr 27 11:16:03 2002 Douglas C. Schmidt - - Thanks to Boris Temkin for motivating the - following fixes: - - * ace/Svc_Handler.cpp: Updated the flush_i() method to call the - message queue's flush_i() method to avoid deadlocks on platforms - that lack recursive mutexes. - - * ace/Message_Queue_T.{h,cpp}: Added the flush() and flush_i() - methods to the ACE_Message_Queue in order to remove messages - without deactivating the queue. Also refactored the close() - method to use flush_i(). - -Sat Apr 27 09:26:43 2002 Edan Ayal - - Added support (currently under win32 only) for asynchronous - scattered read and asynchronous gathered write with socket streams - and with files. - - * ace/Asynch_IO.{h cpp}: Added methods 'readv' to - ACE_Asynch_Read_Stream/File, and 'writev' to - ACE_Asynch_Write_Stream/File, for win32 only. The methods just - delegate to the implementation. - - * ace/Asynch_IO_Impl.h: Added pure virtual methods - 'readv' to ACE_Asynch_Read_Stream/File_Impl, and 'writev' to - ACE_Asynch_Write_Stream/File_Impl, for win32 only. - - * ace/WIN32_Asynch_IO.{h cpp}: Implemented the 'readv' - for ACE_WIN32_Asynch_Read_Stream/File and 'writev' for - ACE_WIN32_Asynch_Write_Stream/File. Modified the 'complete' - method and the ctor of ACE_WIN32_Asynch_Read_Stream/File_Result - and ACE_WIN32_Asynch_Write_Stream/File_Result. - -Sat Apr 27 16:07:12 UTC 2002 Johnny Willemsen - - * examples/Reactor/Proactor/test_udp_proactor.cpp: - Fixed BCB warning about hides virtual function by renaming open - to open_addr - - * ace/Asynch_IO.h: - Minor comment update - -Sat Apr 27 08:59:56 2002 Douglas C. Schmidt - - * ace/Process.i: If getpid() is ACE_INVALID_HANDLE, don't call - ACE::terminate_process() or ACE_OS::kill() since - ACE_INVALID_HANDLE is -1 on UNIX, which causes all sorts of - problems due to the fact that -1 terminates the whole session - group! Thanks to Olivier Brunet for - reporting this. - -Sat Apr 27 15:28:12 UTC 2002 Johnny Willemsen - - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/WFMO_Reactor/Talker.cpp: - Fixed MSVC6 compile errors - -Fri Apr 26 17:00:23 2002 Dante J. Cannarozzi - - * ace/Containers_T.h - * ace/Unbounded_Set.h - * ace/Hash_Map_Manager.h - * ace/RB_Tree.h - * ace/Vector_T.h - * ace/Unbounded_Queue.h - : with the help of Matt Hampton updated - doxygen to contain a consistent html list that summarizes the - each container (like internal structure, duplicates allowed, etc.) - at the request of Steve Huston. - -Fri Apr 26 16:36:52 2002 Steve Huston - - * netsvcs/lib/Server_Logging_Handler_T.cpp: Added #include - "ace/Log_Record.h" to pick up ACE_Log_Record declaration. - Fixes compile error on HP-UX. - -Fri Apr 26 15:10:21 2002 Steve Huston - - * ace/ACE.cpp: - * ace/Sock_Connect.cpp: Moved ACE_Auto_Array_Ptr<> and - ACE_Auto_Basic_Array_Ptr<> instantiations from ACE.cpp to - Sock_Connect where they are now used. Also added MACOSX to the - platforms that get them instantiated. - Added include of OS.h in Sock_Connect.cpp to pick up the ifreq - stuff portably. - - * ace.icc: Added Time_Value, Copy_Disabled, Argv_Type_Converter, - Dev_Poll_Reactor, POSIX_CB_Proactor, WIN32_Proactor, - WIN32_Asynch_IO, Obstack, Vector_T. - Added the new group TIMER_FILES (and TIMER_INCLUDES) to parallel - the TIMER_FILES in ace/Makefile. - -Fri Apr 26 14:05:49 2002 Chad Elliott - - * ace/OS.i: - - Modify the ACE_OS::fflush() method to not call the system - implementation on VxWorks if the FILE* is 0. This causes - problems for the OS. Thanks to Michael Kirher - for reporting and providing - a fix for this. - - * ace/Svc_Conf.l: - * ace/Svc_Conf_l.cpp: - - Use ACE_OS::fflush() instead of fflush(). - -Fri Apr 26 13:22:18 2002 Douglas C. Schmidt - - * ace/Svc_Handler.{h,cpp}: Applied the Thread-safe Interface pattern - by factoring out the flush logic into a flush_i() method (that - doesn't hold a lock) and call this method from the put() and - flush() methods (that do hold locks). Thanks to Boris Temkin - for reporting this problem. - -Fri Apr 26 14:45:28 2002 Steve Huston - - * tests/Proactor_Test.cpp: Replace CALLBACK with CB. Apparantly, - CALLBACK is a macro with MSVC. - -Fri Apr 26 14:39:37 2002 Steve Huston - - * tests/Proactor_Test.cpp: Use default proactor type for platform - if no specific proactor type for platform is chosen. - -Fri Apr 26 11:39:22 2002 Steve Huston - - * examples/C++NPv2/examples.dsw: - * examples/C++NPv2/display_logfile.dsp: - * examples/C++NPv2/Reactor_Logging_Server.dsp: - * examples/C++NPv2/Select_Reactor_Logging_Server.dsp: - * examples/C++NPv2/TP_Reactor_Logging_Server.dsp: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.dsp: - New project/workspace for the examples here so far. - - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: Make dtor - public - this object is created on the stack. - Added constructor that accepts a ACE_Reactor * and passes it up - the inheritance chain. - - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: Add preprocessor - check to be sure that the correct C++ library is enabled on Windows. - Qualify "getline" call with "std::". - -Fri Apr 26 07:42:12 2002 Johnny Willemsen - - * tests/IOStream_Test.cpp: - Corrected the debug output string of server received so that - the formatting is the same as client received. Thanks to - Soeren Gerlach for reporting this. - - * examples/Reactor/WFMO_Reactor/Talker.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/Proactor/test_proactor2.cpp: - Fixed BCB compile warnings - -Thu Apr 25 17:34:31 2002 Steve Huston - - * bin/auto_compile: When doing 'realclean', do them in reverse - order of the builds, else ace/ACE_COMPONENTS.list gets wiped - out first, preventing things that examine the components list - (like netsvcs) from getting cleaned. - -Thu Apr 25 16:20:33 2002 Steve Huston - - * examples/C++NPv2/TP_Reactor_Logging_Server.{cpp mak}: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - New source and makefiles for C++NPv2 chapter 4 examples. - - * examples/C++NPv2/Makefile: Added TP_Reactor_Logging_Server. - -Thu Apr 25 15:46:39 2002 Steve Huston - - POSIX asynch I/O improvements/corrections submitted by Alex - Libman : - - * ace/POSIX_CB_Proactor.{h i cpp}: New POSIX Proactor implementation - that makes use of the AIO facility's callback feature. This has - only been tested on SGI Irix. - - * ace/Makefile: Added POSIX_CB_Proactor. - - * ace/POSIX_Proactor.{h cpp}: Refactored some code and added better - cancellation/cleanup handling. Added hooks for the new - ACE_POSIX_CB_Proactor class and refactored methods - close(), get_result_status(), create_result_aiocb_list(), and - delete_result_aiocb_list(). - - * ace/SUN_Proactor.{h cpp}: Add the new get_result_status() method - and refactored the old results code into the new method. Also, - make good use of the new aiocb create/delete methods. Improvements - to operation status detection based on input from Sun. - - * tests/Proactor_Test.cpp: Add support for new ACE_POSIX_CB_Proactor. - Added a log lock to be sure all messages from one transaction are - logged together. Also, sets up full duplex I/O for Windows and - Solaris; half duplex for all others due to general weakness in - AIO subsystems. If further testing reveals that more can be set - to full duplex, this can be expanded. - -Thu Apr 25 14:02:38 2002 Steve Huston - - * tests/MT_Reactor_Upcall_Test.cpp: Fixed compile errors by using - sizeof (type) instead of sizeof type. - -Thu Apr 25 06:51:58 2002 Douglas C. Schmidt - - * ace/OS.h (ACE_FACTORY_DEFINE): Replaced an ACE_reinterpret_cast() - with an ACE_static_cast() since the latter works correctly with - multiple inheritance. Thanks to Chris Uzdavinis - for reporting this. - - * ace/CDR_Base.h (ACE_CDR): Improved the documentation of the - consolidate() method. Thanks to Alain Decamps for helping with this. - -Thu Apr 25 03:34:43 2002 Irfan Pyarali - - * tests/MT_Reactor_Upcall_Test.cpp: Changed the test such that the - end of the test is indicated by a shutdown message rather than - an explicit message count. - -Wed Apr 24 23:39:00 2002 Irfan Pyarali - - * examples/Reactor/WFMO_Reactor: Updated file names to match - executable names. - -Thu Apr 25 07:34:12 UTC 2002 Johnny Willemsen - - * ace/Log_Msg.h: - Doxygen-ized some of the comments - -Wed Apr 24 18:53:56 2002 Balachandran Natarajan - - * include/makeinclude/rules.local.GNU (clean.local): Reverted the - change "Wed Apr 24 16:08:30 2002 Balachandran Natarajan - " since it is bogus. - -Wed Apr 24 16:08:30 2002 Balachandran Natarajan - - * include/makeinclude/rules.local.GNU: Added a rule to clean up - Sunws_cache properly. Should help SunCC5_1 builds. - -Wed Apr 24 11:07:15 2002 Douglas C. Schmidt - - * ace/RMCast/Makefile (FILES): Removed a stray "\". Thanks to - Amir Kunst for reporting this. Also reordered - the files so they would be in alphabetical order. - -Wed Apr 24 11:17:31 2002 Steve Huston - - * PROBLEM-REPORT-FORM: Always ask for config.h and - platform_macros.GNU; not just on compilation issues. - -Wed Apr 24 07:56:12 UTC 2002 Johnny Willemsen - - * ace/Future_Set.h: - Converted a comment to javadoc style because it is very long for - the brief documentation. - - * ace/DEV_IO.h: - * ace/TTY_IO.h: - Removed not needed includes - -Wed Apr 24 03:14:11 UTC 2002 Craig Rodrigues - - * tests/MT_Reactor_Upcall_Test.cpp: Fix warnings on threads=0 - build. - -Tue Apr 23 18:45:31 2002 Steve Huston - - * examples/C++NPv2/Logging_Event_Handler.h (get_handle): Cast - away const-ness of logging_handler_ member to call it's - peer() method, but use that in a const method call. Keeps - the interface contract intact. This example now works. - - * examples/C++NPv2/display_logfile.mak: Makefile for the - display_logfile example (chapter 9). - - * examples/C++NPv2/Select_Reactor_Logging_Server.{cpp mak}: New - example for the ACE_Select_Reactor section in chapter 4. - - * examples/C++NPv2/Makefile: Added Select_Reactor_Logging_Server. - -Tue Apr 23 16:01:47 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Prevented the Miop/McastHello test from - running in SUNCC51 builds. SUNCC51 is too broken. Time to remove - the build of the scoreboard. - -Tue Apr 23 11:31:43 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.inl (ACE_Dev_Poll_Handler_Guard): - (~ACE_Dev_Poll_Handler_Guard): - - Added "todo" comments about suspending and resuming the event - handler before and after the upcall, respectively. - -Tue Apr 23 11:38:40 2002 Steve Huston - - * examples/C++NPv2/Makefile: Rearranged to build all the examples. - -Tue Apr 23 13:32:12 UTC 2002 Johnny Willemsen - - * examples/Reactor/Makefile.bor: - Added Proactor directory - - * examples/Reactor/Proactor/Makefile.bor: - Added this BCB makefile - - * examples/Reactor/Proactor/*.cpp - Made all files compiling when doing a wchar build. - -Tue Apr 23 10:03:12 UTC 2002 Johnny Willemsen - - * examples/Reactor/Makefile.bor: - Added WFMO_Reactor directory - - * examples/Reactor/WFMO_Reactor/Makefile.bor: - Added this BCB makefile - - * examples/Reactor/WFMO_Reactor/*.cpp - Fixed several unused argument warnings that appeared with bcb. - Made all files compiling when doing a wchar build. - -Tue Apr 23 07:35:12 UTC 2002 Johnny Willemsen - - * ace/Base_Thread_Adapter.h: - * ace/Future.h: - * ace/Naming_Context.h: - * ace/Malloc.h: - * ace/Malloc_Base.h: - * ace/Malloc_T.h: - * ace/NT_Service.h: - * ace/Notification_Strategy.h: - * ace/Object_Manager.h: - * ace/OS_Thread_Adapter.h: - * ace/WIN32_Asynch_IO.h: - Doxygen-ized some of the comments - - * ace/OS.h: - Added ACE_ALLOCATOR_NORETURN and ACE_NEW_MALLOC_NORETURN, these - macro's set errno to ENOMEM incase of an memory error but don't - call return but guarantee that the pointer is 0. - - * ace/QoS/QoS_Manager.h: - * ace/QoS/QoS_Session_Impl.h: - Doxygen-ized some of the comments - - * ace/config-doxygen.h: - Added define ACE_YY_USES_PROTOS to parse ace/Svc_Conf_l.cpp correctly - - * tests/MT_Reactor_Upcall_Test.cpp: - Fixed unicode and single threaded build errors/warnings - -Mon Apr 22 20:40:41 2002 Steve Huston - - * examples/C++NPv2/Logging_Event_Handler.{cpp h}: - Moved LOGFILE_SUFFIX to open() method. Changed get_handle() to be - const to match the signature inherited from ACE_Event_Handler. - - * examples/C++NPv2/Logging_Event_Handler_Ex.h: Moved MAX_CLIENT_TIMEOUT - into class declaration as an enum. - - * examples/Logging_Handler.h: Added terminating ';' to inlined - methods. - -Mon Apr 22 18:33:20 2002 Irfan Pyarali - - * examples/Reactor/WFMO_Reactor/run_test.pl: This file will allow - us to run these tests nightly. Note that Console_Input, - Network_Events, and Talker are not included since they are - interactive tests. - - * bin/auto_run_tests.lst: Added new test script. - - * examples/Reactor/WFMO_Reactor/test_handle_close.cpp: - * examples/Reactor/WFMO_Reactor/test_multithreading.cpp: - * examples/Reactor/WFMO_Reactor/test_network_events.cpp: - Fixed several memory management and shutdown issues. - - * examples/Reactor/WFMO_Reactor/WFMO_Reactor.dsw: - Changed "Abondoned" to "Abandoned" - - * examples/Reactor/WFMO_Reactor/test_window_messages.cpp: - Fixed debug message formatting. - - * examples/Reactor/WFMO_Reactor/test_network_events.cpp: - Fixed documentation to says that ACE_DEFAULT_SERVER_PORT - defaults to 10002; correct value is 20002. - -Mon Apr 22 17:24:39 2002 Steve Huston - - * examples/C++NPv2/Reactor_Logging_Server.mak: - * examples/C++NPv2/Logging_Acceptor.{cpp h}: - * examples/C++NPv2/Logging_Acceptor_Ex.h: - * examples/C++NPv2/Logging_Event_Handler.{cpp h}: - * examples/C++NPv2/Logging_Event_Handler_Ex.{cpp h}: - * examples/C++NPv2/Reactor_Logging_Server.{cpp h}: - New files for examples in C++NPv2, chapter 3. - -Mon Apr 22 15:43:15 2002 Nanbor Wang - - * examples/DLL/Today.h: - * examples/DLL/Today.cpp: - * examples/DLL/Newsweek.h: - * examples/DLL/Newsweek.cpp: Added overloaded new/delete opertors - and updated magazine messages. - -Mon Apr 22 15:20:02 2002 Nanbor Wang - - * tests/DLL_Test.h: - * tests/DLL_Test.cpp: Removed the destroy method as it didn't help - ensuring allocating/deallocating the DLL object with consistent - heap. Instead, we reverted back to use auto_ptr and relied on - the overloaded new/delete operators. - - * tests/DLL_Test_Impl.h: - * tests/DLL_Test_Impl.cpp: Added the aforementioned overloaded - new/delete operator implementations. - -Mon Apr 22 12:33:30 2002 Irfan Pyarali - - * tests/MT_Reactor_Upcall_Test: 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. - - The following files were updated to include the new test: - - - tests/Makefile - - tests/Makefile.am - - tests/Makefile.bor - - tests/Reactor_Dispatch_Order_Test.dsp - - tests/Reactor_Dispatch_Order_Test.icc - - tests/icc.bat - - tests/run_test.lst - - tests/run_tests.bat - - tests/run_tests.psosim - - tests/run_tests_remote.lst - - tests/tests.dsw - - tests/tests.icp - - tests/MT_Reactor_Upcall_Test_WinCE.vcp - - tests/tests_WinCE.vcw - -Mon Apr 22 15:27:12 UTC 2002 Johnny Willemsen - - * docs/tutorials/021/page01.html - Corrected incorrect link - -Mon Apr 22 11:20:12 UTC 2002 Johnny Willemsen - - * ace/Svc_Conf_y.cpp: - Removed some strange characters from this file - - * ace/config-doxygen.h: - Added define of __cplusplus so that the file Svc_Conf_y.cpp and - Svc_Conf_l.cpp are correctly parsed. We parsed the c-code and - we got the following defines which we don't want: - #define const - Also there was a global variable 'int size' which cluttered other - documentation. - -Mon Apr 22 08:55:12 UTC 2002 Johnny Willemsen - - * ace/Timer_Queue_T.h: - Doxygen-ized some of the comments - - * etc/*.doxygen: - Added the following to all doxygen config files - DISTRIBUTE_GROUP_DOC = YES - When a doxygen group is used (starts with //@{ and ends with - //@}) and if there is only one description for all group members than - this description is used for all the members separately. If a member - has its own description than that description is used. - -Mon Apr 22 01:34:32 2002 Nanbor Wang - - * ace/Task.h: Enhanced the comment for method to make it - clear that it will not wait for detached thread. Thanks to - Alain Decamps for suggesting this. - -Sun Apr 21 21:23:59 2002 Krishnakumar B - - * include/makeinclude/platform_osf1_4.x_cxx.GNU (SOFLAGS): - - Re-enable -use_ld_input in SOFLAGS. Seems that this flag is used - to identify Digital Unix in some Makefiles which resort to all - kinds of hackery to get some files to link. - -Sun Apr 21 20:59:26 2002 Krishnakumar B - - * include/makeinclude/platform_osf1_4.x_cxx.GNU (OCFLAGS): - * include/makeinclude/platform_osf1_4.x_g++.GNU (OCFLAGS): - - Set the optimization to level -O3. That way we will might just - get two builds in a day. This is also the recommended level in - the manual. - -Sun Apr 21 15:02:52 UTC 2002 Craig Rodrigues - - * ace/TP_Reactor_Test.cpp: Add checks for ACE_AS_THREADS. - -Sun Apr 21 09:42:05 2002 Douglas C. Schmidt - - * ace/config-win32-common.h: Changed the value of ACE_IOV_MAX to - be 64 rather than 1024. Thanks to Alain Decamps for motivating - this. - -Sat Apr 20 19:57:55 2002 Craig Rodrigues - - * ace/Asynch_Pseudo_Task.cpp (stop): Wrap ace_mon in ACE_MT() to eliminate - errors on builds which are configured single-threaded. - -Fri Apr 19 12:05:42 2002 Ossama Othman - - * examples/Bounded_Packet_Relay/bpr_thread.cpp: - * examples/Timer_Queue/main_async.cpp: - * examples/Timer_Queue/main_reactor.cpp: - * examples/Timer_Queue/main_thread.cpp: - - The recent "ace/OS.h" inclusion reductions prevented a pragma - that disables a MSVC 6 warning about an overly long debugging - symbol from occurring. Explicitly disable that warning in this - file to silence the warning. - -Fri Apr 19 11:41:12 UTC 2002 Johnny Willemsen - - * ace/Typed_SV_Message_Queue.h: - * ace/Strategies_T.h: - * ace/OS.h: - * ace/MEM_SAP.h: - * ace/Asynch_IO.h: - Doxygen-ized some of the comments - -Thu Apr 18 15:58:49 2002 Steve Huston - - * ace/Asynch_Connector.{h cpp}: Removed static member inet_addr_any_. - It doesn't work for all compilers (static in a template). Replaced - default arg for ACE_Asynch_Connector::connect with - ACE_INET_Addr ((u_short)0) to get the equivalent effect, i.e., let - the OS pick an unused port. - - * ace/Asynch_Acceptor.cpp (parse_address): Use the ACE_SOCK support - for dealing with addresses, else the ability to deal with both - IPv4 and IPv6 is lost. - Also get rid of a lot of debugging output; use ACE_TRACE instead. - - * tests/Proactor_Test.cpp: Fixed log file name. Corrected formatting - per ACE guidelines. - - * tests/run_test.lst: Enabled Proactor_Test and Proactor_Timer_Test - everywhere except Chorus, VxWorks, LynxOS. - -Thu Apr 18 11:34:12 UTC 2002 Johnny Willemsen - - * ace/Asynch_IO.h: - * ace/ATM_Params.h: - * ace/ATM_Stream.h: - * ace/Caching_Strategies_T.h: - * ace/Event_Handler.h: - * ace/MEM_Acceptor.h: - * ace/MEM_Connector.h: - * ace/MEM_SAP.h: - * ace/Memory_Pool.h: - * ace/Message_Block.h: - * ace/Message_Queue_T.h: - * ace/Pair_T.h: - * ace/Parse_Node.h: - * ace/Select_Reactor_Base.h: - * ace/Thread_Adapter.h: - * ace/Thread_Adapter.h: - * ace/Thread_Manager.h: - * ace/WIN32_Asynch_IO.h: - * ace/WIN32_Proactor.h: - Doxygen-ized some of the comments - -Tue Apr 18 07:39:12 UTC 2002 Johnny Willemsen - - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.h: - * performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.h: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.h: - Added include of svc_export.h. - -Wed Apr 17 18:41:30 2002 Steve Huston - - * ace/Activation_Queue.h: - * ace/Method_Request.h: Doxygen-ize and improve some documentation. - -Wed Apr 17 15:24:36 2002 Ossama Othman - - * bin/auto_run_tests.lst: - - Added ORT test to the list of tests to run. - -Wed Apr 17 14:30:29 2002 Steve Huston - - * examples/C++NPv2/display_logfile.cpp (Logrec_Module ctor): Change - name from ACE_TCHAR * to const ACE_TCHAR *. - -Wed Apr 17 10:39:24 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.cpp (open): - - Corrected a potential resource (file descriptor) leak for the - "ACE_HAS_DEV_POLL" case. - - Fixed a warning. Use "ACE_NEW_RETURN" instead of "ACE_NEW." - -Wed Apr 17 10:29:14 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.cpp (ACE_HAS_DEV_POLL): - - Added missing "#endif" for this configuration. - -Wed Apr 17 12:47:41 2002 Steve Huston - - * ace/WIN32_Asynch_IO.cpp (set_handle, handle_close): Fixed - "unused argument" warnings from C++Builder. - -Wed Apr 17 14:30:12 UTC 2002 Johnny Willemsen - - * ace/config-doxygen.h: - Added define UNICODE to generate ACE_Registry_Name_Space - - * ace/Proactor.h: - * ace/Proactor_Impl.h: - * ace/RB_Tree.h: - * ace/Reactor_Notification_Strategy.h: - * ace/Recyclable.h: - * ace/Registry.h: - * ace/Service_Types.h: - * ace/Signal.h: - * ace/Token_Request_Reply.h: - * ace/Typed_SV_Message.h: - Doxygen-ized some of the comments - -Wed Apr 17 12:27:23 UTC 2002 Johnny Willemsen - - * etc/ace.doxygen: - * etc/ace_man.doxygen: - Removed ACE_COMPILE_TIMEPROBES as PREDEFINED because it should be - defined in Config-doxygen.h - - * ace/Config-doxygen.h - Added ACE_COMPILE_TIMEPROBES as define to generate timeprobe - documentation. This config file is automatically included when doing - a doxygen generation. - - * ace/Intrusive_List.h: - * ace/Synch.h: - Doxygen-ized some of the comments - - * ace/Message_Queue.h: - Fixed typo - -Wed Apr 17 07:28:12 UTC 2002 Johnny Willemsen - - * examples/DLL/Newsweek.cpp: - * examples/DLL/Today.cpp: - Added include of svc_export.h. - - * tests/Proactor_Test.cpp: - Fixed fuzz and unicode error - - * ace/Asynch_Acceptor.h: - * ace/Functor.h: - * ace/Message_Queue.h: - * ace/Module.h: - * ace/Thread_Manager.h: - Doxygen-ized some of the comments - -Tue Apr 16 23:32:49 2002 Steve Huston - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added Asynch_Connector.{h cpp} and - Asynch_Pseudo_Task.{h cpp}. - -Tue Apr 16 16:39:07 2002 Ossama Othman - - * ace/POSIX_Asynch_IO.cpp (set_handle, handle_close): - - Fixed unused argument warnings. - -Tue Apr 16 19:25:47 2002 Steve Huston - - * ace/Makefile.bor: - * ace/ace.icc: Added new Asynch_Connector and Asynch_Pseudo_Task files. - -Tue Apr 16 19:07:22 2002 Steve Huston - - * tests/Proactor_Test.cpp: Basically replaced; new version also - tests new ACE_Asynch_Connector facility. - -Tue Apr 16 18:42:39 2002 Steve Huston - - New feature, ACE_Asynch_Connect, contributed by Alex Libman - . Allows asynchronous connect using the - ACE Proactor framework. The new classes follow the same arrangement - as the existing ACE_Asynch_Accept framework. - - * ace/Asynch_Connector.{h cpp}: New files - - * ace/Asynch_IO.{h cpp}: Added new ACE_Asynch_Connect class and - its result. Added new method, ACE_Handler::handle_connect(), to - handle completion of asynch connect operations. - - * ace/Asynch_IO_Impl.{h i cpp}: Added new classes - ACE_Asynch_Connect_Impl and ACE_Asynch_Connect_Result_Impl. - - * ace/Asynch_Pseudo_Task.{h cpp}: Generalized task that handles - asynch emulation where needed, for example, asynch accept/connect. - Replaces the ACE_Asynch_Accept_Task and used for both accept/connect. - - * ace/POSIX_Asynch_IO.{h cpp}: Removed ACE_POSIX_Asynch_Accept_Task - (subsumed by ACE_Asynch_Pseudo_Task, above) and add the - ACE_POSIX_Asynch_Connect and its Result class. - - * ace/POSIX_Proactor.{h cpp}: Added asynch connect plumbing. - - * ace/Proactor.{h cpp}: Added asynch connect support methods. - - * ace/Proactor_Impl.h: Added create_asynch_connect[_result] methods. - - * ace/SUN_Proactor.cpp: Change from asynch_accept_task to - asynch_pseudo_task. - - * ace/WIN32_Asynch_IO.{h cpp}: Add new ACE_WIN32_Asynch_Connect and - _Result. - - * ace/WIN32_Proactor.{h cpp}: Added new create_asynch_connect() and - create_asynch_connect_result() methods. - - * ace/Makefile: Added Asynch_Connector, Asynch_Pseudo_Task - -Tue Apr 16 11:49:00 2002 Ossama Othman - - * ace/Service_Templates.cpp: - * ace/Thread_Manager.cpp: - - Only instantiate ACE_Auto_Basic_Ptr templates if - ACE_LACKS_AUTO_PTR is defined or if ACE_HAS_STANDARD_CPP_LIBRARY - is not defined. In the above cases, they are only used as - base classes for ACE's implementation of the standard auto_ptr - template. When using the auto_ptr implementation provided by - the standard C++ library in use, the ACE_Auto_Basic_Ptr template - instances aren't needed. Reduces footprint in cases where the - standard C++ library implementation is used, and explicit - template instantation is required. - -Tue Apr 16 14:38:12 UTC 2002 Johnny Willemsen - - * etc/ace.doxygen: - * etc/ace_man.doxygen: - Set ACE_COMPILE_TIMEPROBES as PREDEFINED so that timeprobe doxygen - documentation is generated - - * ace/Dump.h: - * ace/Message_Block.h: - * ace/Task.h: - * ace/Task_T.h: - * ace/Thread_Manager.h: - * ace/TLI_Stream.h: - Doxygen-ized some of the comments - -Tue Apr 16 11:04:12 UTC 2002 Johnny Willemsen - - * ace/Event_Handler.h: - * ace/Log_Msg.h: - * ace/Message_Block.h: - * ace/Timer_Hash_T.h: - Doxygen-ized some of the comments - -Mon Apr 15 22:25:28 2002 Balachandran Natarajan - - * THANKS: Added Andrew Guy to the hallf of fame. - -Mon Apr 15 21:43:44 2002 Krishnakumar B - - * ace/Log_Msg.cpp (log): - * ace/Log_Msg.h: - - Added new option '@' to ACE_Log_Msg to print out pointers in - hexadecimal format. This is equivalent to the "%p" option of the - standard C library printf. - -Mon Apr 15 14:04:28 2002 Ossama Othman - - * ace/Dev_Poll_Reactor.h: - * ace/Dev_Poll_Reactor.inl: - * ace/Dev_Poll_Reactor.cpp: - - Experimental implementation of a /dev/poll (or Linux /dev/epoll) - based Reactor. Refinements will be committed to the - implementation very soon. - -Mon Apr 15 11:29:49 2002 Ossama Othman - - * ace/config-win32-msvc-7.h (ACE_NEEDS_FUNC_DEFINITIONS): - - MSVC 7 requires "hidden" functions/methods to be defined. A - declaration is not enough. Fixes link-time "unresolved symbol" - errors when using the ACE_UNIMPLEMENTED_FUNC macro in exported - templates. - -Mon Apr 15 16:20:12 UTC 2002 Johnny Willemsen - - * ace/Timer_Queue_Adapters.{h,i,cpp}: - Made several additions to the ACE_Thread_Timer_Queue_Adapter - - Make it possible to pass a timer queue instance to the - ACE_Thread_Timer_Queue_Adapter instance using the constructor - - Make it possible to get/set the timer queue based on pointers, the - get method with a & is still available, but is marked as deprecated - - Make the thr_id method const - - When the timer queue is created by the - ACE_Thread_Timer_Queue_Adapter then it is also deleted, if it is - passed or set afterwards it isn't deleted by - ACE_Thread_Timer_Queue_Adapter (just like in the ACE_Reactor). - -Mon Apr 15 10:22:12 UTC 2002 Johnny Willemsen - - * ace/Containers_T.h: - Doxygen-ized some of the comments - -Mon Apr 15 08:49:23 UTC 2002 Johnny Willemsen - - * examples/Makefile.bor: - * examples/Timer_Queue/Makefile.bor: - * exmaples/Timer_Queue/Async_Timer_Queue_Test.bor: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.bor: - * examples/Timer_Queue/Thread_Timer_Queue_Test.bor: - Added BCB makefiles - - * examples/Timer_Queue/main_async.cpp: - * examples/Timer_Queue/main_reactor.cpp: - * examples/Timer_Queue/main_thread.cpp: - Made the example compiling in an unicode build - -Mon Apr 15 07:39:12 UTC 2002 Johnny Willemsen - - * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: - Added include of OS.h to get ACE_TMAIN macro - - * apps/JAWS/server/HTTP_Server.h: - Added include of svc_export.h. - -Sun Apr 14 20:33:12 UTC 2002 Johnny Willemsen - - * ace/Connector.h: - * ace/Process.h: - Doxygen-ized some of the comments - -Sun Apr 14 19:25:12 UTC 2002 Johnny Willemsen - - * ace/Future.h: - Fixed small typing errors in comments - -Sun Apr 14 17:56:33 UTC 2002 Johnny Willemsen - - * ace/SOCK_Dgram_Bcast.h: - * ace/SV_Message.h: - * ace/SV_Message_Queue.h: - Doxygen-ized some of the comments - -Sun Apr 14 11:59:12 UTC 2002 Johnny Willemsen - - * ace/SPIPE_Addr.h: - * ace/Filecache.h: - * ace/Time_Request_Reply.h: - * ace/TLI.h: - Doxygen-ized some of the comments - -Sat Apr 13 19:28:40 UTC 2002 Don Hinton - - * ace/Basic_Types.h: Added include of pthread.h to pick - up typedef of pthread_key_t. - -Sat Apr 13 17:16:10 UTC 2002 Don Hinton - - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h: - * examples/ASX/CCM_App/CCM_App.cpp: - - Added include of svc_export.h. - -Sat Apr 13 15:42:03 UTC 2002 Don Hinton - - * tests/DLL_Test.{h,cpp}: - * tests/DLL_Test_Impl.{h,cpp}: Added methods to test the - the malloc/free and strnew/strdelete methods below. Also - removed use auto_ptr and added a destroy method to delete - the object within the dll/heap it was allocated. - - * ace/OS_Memory.{inl,cpp}: Changed malloc(), calloc() - realloc(), and free() to be non-inlined to avoid the heap - problem on Windows. - - * ace/ACE.{h,i,cpp}: Changed strnew() to be non-inlined and - added strdelete() for the same reason. - -Sat Apr 13 14:33:12 2002 Johnny Willemsen - - * ace/Configuration.h: - * ace/Containers_T.h: - * ace/High_Res_Timer.h: - * ace/Object_Manager.h: - * ace/Reactor.h: - * ace/Reactor_Impl.h: - * ace/Select_Reactor_T.h: - * ace/WFMO_Reactor.h: - Improved doxygen comments. Added @deprecated to methods that - are deprecated so that in the doxygen description this is also - clearly list. - -Sat Apr 13 03:32:52 2002 Krishnakumar B - - * ace/Proactor.h: - - Moved OS.h and ACE_export.h outside the #ifdef ACE_WIN32. - ACE_export.h beacuse the #else part uses it and OS.h because - sig_atomic_t is used in one of the dummy class's signatures. If - others have other opinions, please fix the case for the #else - part also. Fixes Tru64 bustage. - -Fri Apr 12 19:15:39 2002 Steve Huston - - * ace/Asynch_Acceptor.cpp (parse_address): Set the entire address - (address and port) instead of just the IP address part. - Thanks to Alex Libman for this fix. - -Fri Apr 12 18:00:41 UTC 2002 Don Hinton - - * ace/Log_Msg.h: Added missing includes. - - * ace/Basic_Types.h: Removed erroneous ENOMEM definition. - -Fri Apr 12 10:02:58 2002 Priyanka Gontla - - * ace/Based_Pointer_T.h: - Included ace/Trace.h to fix the compilation errors about - undeclared ACE_TRACE. - -Fri Apr 12 08:56:46 2002 Priyanka Gontla - - * tests/DLL_Test_Impl.cpp: - Included OS_Errno.h to fix the compilation error about - undeclared errno. - -Fri Apr 12 15:03:12 2002 Johnny Willemsen - - * etc/*.doxygen: - Set JAVADOC_AUTOBRIEF to YES. From now on, when there is only - javadoc style comments, there first line until the first '.' is - used as brief comment. In the brief class description a lof of more - methods will have a description. - - * Timer_Heap_T.h: - Change the comment style for method remove_first from doxygen style - to javadoc style - -Fri Apr 12 13:32:12 2002 Johnny Willemsen - - * ace/WFMO_Reactor.h: - * ace/Timer_List_T.h: - * ace/Timer_Heap_T.h: - * ace/Timer_Hash_T.h: - * ace/Timeprobe_T.h: - Minor improvements doxygen comments - - * ace/POSIX_Asynch_IO.h: - Doxygen-ized some of the comments - -Fri Apr 12 00:15:32 2002 Krishnakumar B - - * include/makeinclude/platform_sunos5_sunc++.GNU: - * ace/config-sunos5.5.h: - - Reverted to status quo. If and when things go fine, I will - re-enable them. Too many things breaking currently. - -Thu Apr 11 20:37:53 2002 Krishnakumar B - - * ace/OS.i (ftell): - * ace/OS.h: - - Added new wrappers for ftell, fgetpos & fsetpos. - - * ACEXML/common/FileCharStream.cpp: - * ACEXML/common/FileCharStream.h: - - Implemented the previously unavailable available() call. - -Thu Apr 11 20:06:41 2002 Steve Huston - - * examples/C++NPv2/display_logfile.cpp: Spacing/line length - changes so it fits on the book pages. - -Thu Apr 11 18:29:27 2002 Steve Huston - - * examples/C++NPv2/Makefile: New Makefile to build display_logfile. - - * examples/C++NPv2/display_logfile.cpp: Finished and debugged on Linux. - -Thu Apr 11 22:07:40 UTC 2002 Don Hinton - - * netsvcs/lib/Client_Logging_Handler.cpp: Added missing - Log_Record.h include. - - * tests/Svc_Handler_Test.cpp: - Changed ACE_Log_Record::MAXLOGMSGLEN to ACE_MAXLOGMSGLEN. - -Thu Apr 11 20:04:22 UTC 2002 Don Hinton - - * ace/ARGV.h: Rolled back the change and readded ACE.h. - Too many error down the line to fix. - - * ace/Sample_History.cpp: Added include of OS.h. - - * apps/apps/gperf/src/Options.h: Added include of OS.h. - -Thu Apr 11 14:37:09 2002 Nanbor Wang - - * ace/config-win32-common.h: Added ACE_LACKS_PARAM_H. - -Thu Apr 11 18:21:25 UTC 2002 Don Hinton - - * ace/Basic_Types.h: Added include of - to pickup MAXPATHLEN if available and get rid of warning. - -Thu Apr 11 17:37:20 UTC 2002 Don Hinton - - * ace/Basic_Types.h: Added missing typedefs for pid_t and - ssize-t for WIN32 builds needed for my Log_Msg changes - below. - -Thu Apr 11 14:42:32 UTC 2002 Don Hinton - - * ace/ARGV.h: Replaced include of ACE.h with config-all.h. - - * ace/Addr.cpp: - * ace/OS_Dirent.cpp: - * ace/Trace.cpp: - - Added include of OS.h. - - * apps/gperf/src/Bool_Array.cpp: Changed ACE_OS::memset() to - ACE_OS_String::memset() and added include of OS_String.h. - - * tests/Log_Msg_Test.cpp: - * examples/Logger/Acceptor-server.cpp: - * examples/Logger/simple-server/Logging_Handler.cpp: - * examples/Log_Msg/test_callback.cpp: - - Added includes of Log_Record.h. - - * ace/Log_Msg.{h,cpp}: - - Added new method, last_error_adapter(), and changed the - ACE_DEBUG, et al, macros to use new method instead of - ACE_OS::last_error(). Removed includes of OS.h and - Log_Record. Changed ACE_Log_Record::MAXLOGMSGLEN to - ACE_MAXLOGMSGLEN. Removed ACE_OS::cleanup_tss friend. - - * ace/Basic_Types.h: Added definition of MAXPATHLEN and - typedef of ACE_thread_t to prevent need to include OS.h - in Log_Msg.h above. - - * ace/Default_Constants.h: - * ace/OS.h: - - Moved definitions of ACE_MAXLOGMSGLEN, ACE_MAXTOKENNAMELEN, - and ACE_MAXCLIENTIDLEN here from OS.h. - -Thu Apr 11 14:26:12 2002 Johnny Willemsen - - * Timer_Hash_T.h: - * Timer_Heap_T.h: - * Timer_List_T.h: - * Timer_Wheel_T.cpp: - * Timer_Wheel_T.h: - The timer queue classes schedule timers using absolute time. The - describtion in the implementaton files correctly described this, - but the header file comment and the argument name where describing - that the queues work on delta timers, so corrected this. - - * Timer_Queue_Adapters.cpp: - * Timer_Queue_Adapters.h: - Updated the describtion that the schedule method expects an absolute - time. - -Thu Apr 11 13:29:12 2002 Johnny Willemsen - - * ace/String_Base.h: - Fixed some small typo in comment - -Thu Apr 11 08:30:11 UTC 2002 Don Hinton - - * ace/OS_String.inl (strnlen): - Fixed compile error. - -Thu Apr 11 08:16:12 2002 Johnny Willemsen - - * ace/Timer_Queue_T.cpp: - Reverted my change of yesterday. Already the copy constructor is called - - * ace/Task.h: - * ace/Timer_Queue_Adapters.h: - Fixed some small typos in comment - - * ace/Capabilities.h: - Placed right comment with right method - -Wed Apr 10 20:00:57 2002 Ossama Othman - - * ace/Proactor.h: - - Include "ace/ACE_export.h" to pull in definition of ACE_Export - macro. - -Wed Apr 10 19:53:01 2002 Ossama Othman - - * ace/Argv_Type_Converter.cpp: - - Include "ace/OS_Errno.h" to pull in ENOMEM definition. - - (align_char_with_wchar): - - Fixed remaining ACE_OS::strcmp() to be ACE_OS_String::strcmp(). - -Wed Apr 10 19:37:58 2002 Ossama Othman - - * apps/gperf/src/Bool_Array.h: - * apps/gperf/src/Iterator.h: - * apps/gperf/src/List_Node.h: - - No need to include "ace/OS.h". "ace/config-all.h" is enough. - -Wed Apr 10 19:25:39 2002 Ossama Othman - - * apps/Gateway/Gateway/Config_Files.cpp (read_entry): - - Use "unsigned short" instead of the "u_short" typedef to avoid - including "ace/OS.h". - - * apps/Gateway/Gateway/Gateway.h: - * apps/Gateway/Gateway/Event_Channel.h: - * apps/Gateway/Gateway/Options.h: - * apps/Gateway/Peer/Options.h: - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h: - * examples/Service_Configurator/Misc/Timer_Service.h: - * netsvcs/clients/Naming/Client/Client_Test.h: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h: - * tests/DLL_Test_Impl.cpp: - - Include "ace/svc_export.h" to pull in ACE_Svc_Export macro. - -Wed Apr 10 18:57:11 2002 Ossama Othman - - * netsvcs/lib/Client_Logging_Handler.h: - * netsvcs/lib/Name_Handler.h: - * netsvcs/lib/Server_Logging_Handler.h: - * netsvcs/lib/TS_Clerk_Handler.h: - * netsvcs/lib/TS_Server_Handler.h: - - Include "ace/svc_export.h" to pull in ACE_Svc_Export macro. - -Wed Apr 10 19:37:12 2002 Krishnakumar B - - * ace/config-g++-common.h: - - Fixed a missing #define. This should fix the Lynx PPC build. - -Wed Apr 10 17:23:09 2002 Ossama Othman - - * ace/Auto_IncDec_T.h: - - Include "ace/Global_Macros.h" to pull ACE_UNIMPLEMENTED_FUNC - macro definition. - -Wed Apr 10 19:28:27 2002 Steve Huston - - * examples/C++NPv2/display_logfile.cpp: First cut at the C++NPv2 - Streams chapter code for displaying a logfile written from any - C++NPv1 or C++NPv2 logging daemon. - -Wed Apr 10 17:38:31 2002 Steve Huston - - * ace/README: New config macros ACE_HAS_STRNLEN and ACE_HAS_WCSNLEN. - - * ace/OS_String.{h inl}: New method ACE_OS_String::strnlen finds the - length of a string with a specified maximum length. Mimicks the - GNU strnlen(3) and wcsnlen(3) functions. - - * ace/config-linux-common.h: Added ACE_HAS_STRNLEN and ACE_HAS_WCSNLEN - if _GNU_SOURCE is defined, else glibc headers doesn't declare them. - -Wed Apr 10 11:16:57 2002 Ossama Othman - - * ace/Addr.h (hash): - * ace/Addr.i (hash): - - Use "unsigned long" instead of the "u_long" typedef to avoid - including "ace/OS.h". - -Wed Apr 10 11:07:42 2002 Ossama Othman - - * ace/Method_Request.h: - - Fixed remaining "u_long" to "unsigned long" change. - -Wed Apr 10 11:04:56 2002 Ossama Othman - - * ace/Array_Base.h: - - Include "ace/Global_Macros.h" to pull in the ACE_DES_* macros - that required by the inlined ACE_Array_Base destructor. - -Wed Apr 10 11:01:56 2002 Ossama Othman - - * ace/Global_Macros.h: - * ace/OS.h: - - Moved ACE_DES_* macros to Global_Macros.h. This allows some - sources to avoid including ace/OS.h. - -Wed Apr 10 10:54:58 2002 Ossama Othman - - * ace/OS.h: - * ace/Time_Value.h: - - Moved "time" related includes from OS.h to Time_Value.h. Fixes - build problems on Unix platforms. - -Wed Apr 10 10:40:36 2002 Ossama Othman - - Inter-header dependency reductions: - - * ace/Auto_IncDec_T.h: - * ace/Auto_Ptr.h: - * ace/Based_Pointer_T.h: - * ace/Bound_Ptr.h: - * ace/Cached_Connect_Strategy_T.h: - * ace/Cache_Map_Manager_T.h: - * ace/Caching_Strategies_T.h: - * ace/Caching_Utility_T.h: - * ace/Capabilities.h: - * ace/Cleanup_Strategies_T.h: - * ace/Containers_T.h: - * ace/CORBA_macros.h: - * ace/Dynamic_Service.h: - * ace/Env_Value_T.h: - * ace/Managed_Object.h: - * ace/Map.h: - * ace/Map_Manager.h: - - No need to include "ace/OS.h". "ace/config-all.h" is enough. - - * ace/Asynch_Acceptor.h: - - No need to include "ace/OS.h". "ace/Default_Constants.h" is - enough. - - * ace/Addr.h: - * ace/Arg_Shifter.h: - * ace/Argv_Type_Converter.h: - * ace/Based_Pointer_Repository.h: - * ace/Containers.h: - * ace/Containers.cpp: - * ace/Init_ACE.h: - * ace/Trace.h: - - No need to include "ace/OS.h". "ace/ACE_export.h" is enough. - - * ace/RB_Tree.h: - - No need to include "ace/OS.h". "ace/Global_Macros.h" is - enough. - - * ace/Global_Macros.h: - - Moved ACE_GUARD macros to this file, meaning that it is no - longer necessary to include "ace/OS.h" just to get those - macros. This should save on pre-processing times for some - sources. - - Include "ace/OS_Export.h" to pull in the ACE_OS_Export macro - definitions. - - * ace/Arg_Shifter.cpp: - * ace/Argv_Type_Converter.cpp: - - Include "ace/OS_String.h" to pull in static string manipulation - methods. - - Changed all ACE_OS string method calls to ACE_OS_String. - - * ace/Trace.cpp: - - Minor include file cosmetic tweaks. - - * ace/Time_Value.h: - * ace/Time_Value.inl: - * ace/Time_Value.cpp: - - Moved ACE_Time_Value class and related macros/constants to these - files. Files that only need the ACE_Time_Value class - declaration need only include this header instead of "ace/OS.h", - thus reducing pre-processing times. - - * ace/OS.h: - - Moved ACE_Time_Value class and ACE_GUARD macros out of this - header. - - * ace/OS.i: - * ace/OS.cpp: - - Moved ACE_Time_Value methods out of the files into the new - Time_Value.* files. - - * ace/Init_ACE.cpp: - - Use "unsigned int" instead of the "u_int" typedef to avoid - including "ace/OS.h". - - * ace/Hashable.h: - * ace/Hashable.cpp: - * ace/Method_Request.h: - * ace/Method_Request.cpp: - - No need to include "ace/OS.h". "ace/ACE_export.h" is enough. - - Use "unsigned long" instead of the "u_long" typedef to avoid - including "ace/OS.h". - - * ace/Proactor.h: - - No need to include "ace/OS.h" to pull in ACE_Time_Value class - declaration. A forward declaration is enough. - - * ace/Argv_Type_Converter.inl: - * ace/CE_Screen_Output.h: - - Cosmetic changes to improve conformance to our coding - style/guidelines. - - * ace/config-all.h: - - No need to include "ace/ACE_export.h" and "ace/svc_export.h". - They should only be included by headers that need them. - - Do not include "ace/OS_Errno.h". Fixes a circular dependency. - - * ace/Copy_Disabled.h: - * ace/Dirent.h: - * ace/Log_Msg_Backend.h: - * ace/Refcountable.h: - * ace/Recyclable.h: - * ace/String_Base_Const.h: - * ace/Thread_Adapter.h: - - Include "ace/ACE_export.h" to pull in definition of ACE_Export - macro. - - * ace/OS_Export.h: - - Include "ace/config.h" instead of "ace/config-all.h" to fix a - circular include. - - * ace/OS_Errno.h: - - No need to include "ace/config.h". It is already included - indirectly by "ace/OS_Export.h". - - * ace/OS_Dirent.h: - - Include "ace/OS_Errno.h" to pull in errno definitions. - - * ace/Handle_Ops.h: - - Include "ace/ACE_export.h" to pull in ACE_Export macro - definition. - - Added missing "#pragma once". - - * ace/Makefile: - * ace/Makefile.bor: - - Added new Time_Value.* sources to these Makefiles. - -Wed Apr 10 13:32:15 2002 Johnny Willemsen - - * ace/Token.h: - * ace/Timer_Queue_T.h: - Doxygen-ized some of the comments - - * ace/Select_Reactor_T.cpp: - Fixed typo in comment - -Wed Apr 10 07:44:12 2002 Johnny Willemsen - - * ace/Timer_Queue_T.cpp: - Instead of creating a ACE_Time_Value with the default constructor - and immediatly filling it with the assignment operator, create the - ACE_Time_Value with the copy constructor - - * examples/Logger/simple-server/Logging_Acceptor.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h: - * examples/Reactor/Misc/test_signals_2.cpp: - Added missing includes of Log_Msg.h. These where caused by the - compilation speedup of Don Hinton on April 5th. - - * ace/Name_Request_Reply.h: - -Tue Apr 9 22:59:20 2002 Krishnakumar B - - * ace/config-sunos5.5.h: - - Added ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES to fix errors. - - * ace/config-sunos5.6.h: - - Removed definition of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION as - we turn it on on the command line. - -Tue Apr 9 19:48:15 2002 Krishnakumar B - - * include/makeinclude/platform_osf1_4.x_cxx.GNU (LDFLAGS): - - Moved the -hidden and -non_hidden from LIBS to LDFLAGS. The - linker doesn't like it seeing at the end. This fixes the - problems with Tru64. - -Tue Apr 9 12:43:04 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added POA_BiDir to the list of tests to - be run and prevented MT_BiDir from running in minimum_corba - builds. - -Tue Apr 9 11:46:52 2002 Steve Huston - - * ace/Message_Block.h: Doxygen tweaks to block type enum. - -Tue Apr 9 11:20:19 2002 Steve Huston - - * netsvcs/Server_Logging_Handler_T.cpp (handle_logging_record): - Moved variable 'count' inside the #if 0 block so it's not flagged - as unused. - -Tue Apr 9 15:02:12 2002 Johnny Willemsen - - * ace/Containers_T.h: - Fixed two small typos - - * ace/Thread_Manager.h: - Doxygen-ized some of the comments - -Tue Apr 9 03:04:19 2002 Krishnakumar B - - * include/makeinclude/rules.lib.GNU (VLIB): - - Ensure that templates in the repository get added to the static - library during creation. This build now uses a new variable - called TMPINCDIR which points to the template repository from - which the templates should be pulled in. - - * include/makeinclude/platform_osf1_4.x_cxx.GNU: - - Added support for different template instantiations. - - * include/makeinclude/platform_tru64_cxx.GNU: - - Removed some repeated flags from the command line. - - * ace/config-cxx-common.h: - - Added ACE_TEMPLATES_REQUIRE_SOURCE to pull in the template - definitions to ensure proper template instantiation. - -Tue Apr 9 00:52:42 2002 Krishnakumar B - - * ace/config-sunos5.5.h (ACE_TEMPLATES_REQUIRE_SOURCE): - - Moved this from within a guard to enable it unconditionally. - - * ace/Obstack_T.cpp: - - Added guards to make it consistent with other usage of _T.cpp - files. - - * tests/test_config.h: - - Reverted the change Sun Apr 7 18:04:56 2002 Krishnakumar B - . The original code was right. - - * include/makeinclude/platform_g++_common.GNU: - - Cosmetic fixes. Explicitly check for egcs. It dumps out version - information in a non-standard format confusing the make - conditionals. Should fix the RedHat Static build. - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Cosmetic fixes to fix build bustage. - -Tue Apr 9 00:05:37 2002 Douglas C. Schmidt - - * ace/Logging_Strategy.h (ACE_Logging_Strategy): Changed "private" to - "protected" so subclasses can access the implementation. Thanks - to Martin Krumpolec for reporting this. This - fixes bugid 1182. - -Mon Apr 8 13:18:12 2002 Johnny Willemsen - - * ace/Activation_Queue.h: - Corrected location of doxygen comments so that the right comment - is placed below the right method - -Sun Apr 7 18:04:56 2002 Krishnakumar B - - * tests/test_config.h (randomize): - - Wrapped the initialization of singleton_ within a - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES guard. This should fix - the problems on FreeBSD and under RedHat static. Thanks to Craig - Rodrigues for reporting this. - -Sun Apr 7 06:02:26 2002 Krishnakumar B - - * include/makeinclude/platform_lynxos.GNU: - * include/makeinclude/platform_macosx.GNU: - - Didn't know that these platforms used g++. Fixing them. - -Sun Apr 7 05:27:35 2002 Krishnakumar B - - * include/makeinclude/platform_g++_common.GNU: - - Fixed a comment from the previous checkin. - - * include/makeinclude/platform_sunos5_sunc++.GNU: - * include/makeinclude/platform_sunos5_ghs.GNU: - * include/makeinclude/platform_sunos5_kcc.GNU: - - Changed these files to the new template instantiation mechanism. - - * tests/test_config.h: - - Added missing definition for the template member. - -Sun Apr 7 04:22:19 2002 Krishnakumar B - - * include/makeinclude/wrapper_macros.GNU(templates): - - Added option templates which can be used to specify the - instantiation policy desired. Allowed values are explicit, - automatic and used. Added flag TEMPLATE_FLAGS which should be - set to the proper value in each of the platform config files. - - * include/makeinclude/platform_g++_common.GNU: - - New file which holds the parsing and setting logic for GNU C++. - - * include/makeinclude/platform_aix4_g++.GNU(templates): - * include/makeinclude/platform_aix_g++.GNU: - * include/makeinclude/platform_chorus4.x_g++.GNU: - * include/makeinclude/platform_freebsd.GNU: - * include/makeinclude/platform_gnuwin32_common.GNU: - * include/makeinclude/platform_hpux_gcc.GNU: - * include/makeinclude/platform_irix5.3_g++.GNU: - * include/makeinclude/platform_irix6.x_g++.GNU: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/platform_osf1_4.x_g++.GNU: - * include/makeinclude/platform_psosim_g++.GNU: - * include/makeinclude/platform_rtems.x_g++.GNU: - * include/makeinclude/platform_sco5.0.0-mit-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-nothread.GNU: - * include/makeinclude/platform_sunos4_g++.GNU: - * include/makeinclude/platform_sunos5_g++.GNU: - * include/makeinclude/platform_unixware_g++.GNU: - - For all of the platforms above, when using g++ versions 2.95.x, - 2.96, 3.0.x or 3.x or later, the instantiation policy is set to - automatic. - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - - Only exception to the above. The kind of parsing that is done in - this file scares me. So I explicitly set it to "explicit". - - Thanks to Alex Libman for motivating - this. - - If people with any of the above platforms can test if this works - for them, it would be great. If suddenly your files don't link, - just set templates="explicit" in platform_macros.GNU and all - will be fine. This one was easy :-) Next round of changes is for - the above platforms with different compilers. - -Sun Apr 7 04:02:23 2002 Krishnakumar B - - * ace/config-g++-common.h (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES): - - Moved common definitions for egcs into a single block. Wrapped - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES inside appropriate - compiler checks. - - * ace/config-all.h: - - Added a negation before check for - ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS. - - * ace/config-sunos5.5.h: - - Enabled ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION and - ACE_TEMPLATES_REQUIRE_SOURCE only if Sun CC version <= 5.0. - -Sun Apr 07 10:25:12 2002 Johnny Willemsen - - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: - Added include of Log_Msg.h to fix build errors in BCB - -Fri Apr 05 21:17:44 2002 Balachandran Natarajan - - * ace/CDR_Stream.cpp: Initialized a null wstring properly. - - * tests/CDR_Test.cpp (test_get): Added a test case for a - marshalling and unmarshalling a zero length wstring. - - The above changes fix [Bug 1169]. Thanks to Duane Binder - for suggesting these fixes. - -Fri Apr 5 19:20:39 2002 Steve Huston - - * ace/Proactor.h: Add #include "ace/OS.h" in the "non-AIO" section - to get the ACE_Time_Value class needed for the stubbed-out class. - - * ace/config-aix-4.x.h: Add some commentary about ACE_HAS_AIO_CALLS. - - * ace/Service_Manager.cpp: Added #include "ace/Log_Msg.h" to fix a - compile problem on AIX. - -Fri Apr 5 11:30:00 2002 Justin Michel - - * ace/OS.i: - * ace/config-win32-common.h: - - SO_REUSEADDR fix brought over from 1.2a - FD_SETSIZE fix brought over from 1.2a - Thanks to Juergen Pfreundt for - motivating this. - -Fri Apr 5 07:45:54 2002 Balachandran Natarajan - - * ace/Local_Tokens.cpp: Fixed a compile error. - -Fri Apr 5 12:51:11 UTC 2002 Don Hinton - - * ace/ACE.i (strnew): Added null pointer check to - the wchar_t version so its behavior matches the char - version. - -Fri Apr 5 11:40:00 UTC 2002 Don Hinton - - * ace/ATM_Acceptor.h - * ace/ATM_Addr.cpp - * ace/ATM_Addr.h - * ace/ATM_Connector.cpp - * ace/ATM_Connector.h - * ace/ATM_Params.h - * ace/ATM_QoS.h - * ace/ATM_Stream.h - * ace/Asynch_Acceptor.h - * ace/Asynch_IO.h - * ace/Asynch_IO_Impl.cpp - * ace/Asynch_IO_Impl.h - * ace/CE_Screen_Output.cpp - * ace/CE_Screen_Output.h - * ace/FlReactor.cpp - * ace/FlReactor.h - * ace/IOStream.h - * ace/LSOCK.cpp - * ace/LSOCK.h - * ace/LSOCK_Acceptor.cpp - * ace/LSOCK_Acceptor.h - * ace/LSOCK_CODgram.cpp - * ace/LSOCK_CODgram.h - * ace/LSOCK_Connector.cpp - * ace/LSOCK_Connector.h - * ace/LSOCK_Dgram.cpp - * ace/LSOCK_Dgram.h - * ace/LSOCK_Stream.cpp - * ace/LSOCK_Stream.h - * ace/Local_Tokens.cpp - * ace/Local_Tokens. - * ace/Msg_WFMO_Reactor.h - * ace/POSIX_Asynch_IO.h - * ace/POSIX_Proactor.h - * ace/Proactor.cpp - * ace/Proactor.h - * ace/Proactor_Impl.h - * ace/QtReactor.h - * ace/Reactor.cpp - * ace/SUN_Proactor.h - * ace/TkReactor.cpp - * ace/TkReactor.h - * ace/UNIX_Addr.cpp - * ace/UNIX_Addr.h - * ace/WFMO_Reactor.cpp - * ace/WFMO_Reactor.h - * ace/WIN32_Asynch_IO.h - * ace/WIN32_Proactor.h - * ace/XTI_ATM_Mcast.h - * ace/XtReactor.cpp - * ace/XtReactor.h - Moved all includes inside the platform- or feature-specific - macro guards and added config-all.h to the headers in order - to speed up compiles when the guard isn't defined. - -Fri Apr 5 08:51:12 2002 Johnny Willemsen - - * apps/Gateway/Peer/Peer.h: - Added missing explicit template instantion exports for msvc7. - Thanks to Tom Phan for reporting this - -Thu Apr 4 21:01:11 2002 Carlos O'Ryan - - * ace/SOCK_Dgram.cpp: - I accidentally left out some code in my last change, without it - platforms that lack IPV6 support will probably break. Whoopsie. - -Thu Apr 4 20:39:51 2002 Carlos O'Ryan - - * bin/g++dep: - Remove bogus path(s) to find gcc, they were site-specific, - host-specific and version-specific, and then outdated at - that. The developer better has a decent version of gcc in her - PATH already, or the 'make depend' commands simply won't work. - -Thu Apr 4 13:17:52 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added a new test to the list of tests - that need to be run. - -Thu Apr 4 11:52:45 2002 Carlos O'Ryan - - * ace/SOCK_Dgram.cpp: - Add support for anonymous PF_LOCAL/SOCK_DGRAM (aka - PF_UNIX/SOCK_DGRAM) sockets. As the class stood before these - changes it was impossible to create such sockets, forcing people - to choose a binding address even for sockets that are used only - to send messages. For PF_INET this is not a big deal, because - the OS (or ACE::bind_port) can choose a port for the - application. But there is no such luck for PF_LOCAL sockets, - where the application has to choose a filename for the socket, - functions like ACE_OS::tempnam() or ACE_OS::mktemp() are more - trouble than they are worth, as they open a security can of - worms. - This fixes bug 1179. - -Thu Apr 4 10:30:54 2002 Balachandran Natarajan - - * ace/RMCast/Makefile: - * ace/SSL/Makefile: - * ace/Makefile: Updated dependency. Other directories need this - too. Will get to them before the beta. - -Thu Apr 4 11:05:48 2002 Carlos O'Ryan - - * ace/Select_Reactor_Base.cpp: - Apply proposed patch for bug 1175, i.e. a possible deadlock - condition when ACE_HAS_REACTOR_NOTIFICATION_QUEUE is defined. - -Thu Apr 4 08:32:26 UTC 2002 Don Hinton - - * ace/CDR_Stream.cpp (ctor): - Modified default ctor to always add ACE_CDR::MAX_ALIGNMENT to - the size parameter since it is always required since the - subsequent call to ACE_CDR::mb_align() might advance the - (rd|wr)_ptr's up to ACE_CDR::MAX_ALIGNMENT-1 bytes. - -Wed Apr 3 18:01:33 2002 Steve Huston - - * ace/SOCK_Dgram.cpp (shared_open): Add PF_INET6 to the test for - need to bind an unused port if ACE_HAS_IPV6 is defined. - -Wed Apr 3 11:04:37 2002 Steve Huston - - * ace/Handle_Ops.{h, cpp} (handle_timed_open): - * ace/SPIPE_Connector.{h cpp} (ctor, connect): Added optional - LPSECURITY_ATTRIBTUES arg, defaults to 0. Allows Windows users - to set security for the new file/pipe open. - - * ace/SPIPE_Acceptor.{h cpp} (ctor, open): Added optional - LPSECURITY_ATTRIBUTES arg, defaults to 0, same as above. - Also added a LPSECURITY_ATTRIBUTES member for NT4 and up. - The LPSECURITY_ATTRIBUTES passed in is remembered across - named pipe instances, and is used to create each new instance. - Doxygen-ized the comments. - -Wed Apr 3 10:15:00 2002 Si Mong Park - - * tests/Atomic_Op_Test_WinCE.vcp: - * tests/Auto_IncDec_Test_WinCE.vcp: - * tests/Barrier_Test_WinCE.vcp: - * tests/Basic_Types_Test_WinCE.vcp: - * tests/Bound_Ptr_Test_WinCE.vcp: - * tests/Buffer_Stream_Test_WinCE.vcp: - * tests/Cached_Accept_Conn_Test_WinCE.vcp: - * tests/Cached_Conn_Test_WinCE.vcp: - * tests/Cache_Map_Manager_Test_WinCE.vcp: - * tests/Capabilities_Test_WinCE.vcp: - * tests/CDR_Array_Test_WinCE.vcp: - * tests/CDR_File_Test_WinCE.vcp: - * tests/CDR_Test_WinCE.vcp: - * tests/Collection_Test_WinCE.vcp: - * tests/Conn_Test_WinCE.vcp: - * tests/DLList_Test_WinCE.vcp: - * tests/DLL_Test_WinCE.vcp: - * tests/Dynamic_Priority_Test_WinCE.vcp: - * tests/Enum_Interfaces_Test_WinCE.vcp: - * tests/Future_Set_Test_WinCE.vcp: - * tests/Future_Test_WinCE.vcp: - * tests/Handle_Set_Test_WinCE.vcp: - * tests/Hash_Map_Bucket_Iterator_Test_WinCE.vcp: - * tests/Hash_Map_Manager_Test_WinCE.vcp: - * tests/High_Res_Timer_Test_WinCE.vcp: - * tests/Lazy_Map_Manager_Test_WinCE.vcp: - * tests/Logging_Strategy_Test_WinCE.vcp: - * tests/Log_Msg_Test_WinCE.vcp: - * tests/Malloc_Test_WinCE.vcp: - * tests/Map_Manager_Test_WinCE.vcp: - * tests/Map_Test_WinCE.vcp: - * tests/Max_Default_Port_Test_WinCE.vcp: - * tests/Mem_Map_Test_WinCE.vcp: - * tests/MEM_Stream_Test_WinCE.vcp: - * tests/Message_Block_Test_WinCE.vcp: - * tests/Message_Queue_Notifications_Test_WinCE.vcp: - * tests/Message_Queue_Test_Ex_WinCE.vcp: - * tests/Message_Queue_Test_WinCE.vcp: - * tests/MM_Shared_Memory_Test_WinCE.vcp: - * tests/MT_Reactor_Timer_Test_WinCE.vcp: - * tests/MT_SOCK_Test_WinCE.vcp: - * tests/Naming_Test_WinCE.vcp: - * tests/New_Fail_Test_WinCE.vcp: - * tests/Notify_Performance_Test_WinCE.vcp: - * tests/Object_Manager_Test_WinCE.vcp: - * tests/OrdMultiSet_Test_WinCE.vcp: - * tests/OS_Test_WinCE.vcp: - * tests/Priority_Buffer_Test_WinCE.vcp: - * tests/Priority_Reactor_Test_WinCE.vcp: - * tests/Priority_Task_Test_WinCE.vcp: - * tests/Process_Manager_Test_WinCE.vcp: - * tests/RB_Tree_Test_WinCE.vcp: - * tests/Reactors_Test_WinCE.vcp: - * tests/Reactor_Exceptions_Test_WinCE.vcp: - * tests/Reactor_Notify_Test_WinCE.vcp: - * tests/Reactor_Performance_Test_WinCE.vcp: - * tests/Reactor_Timer_Test_WinCE.vcp: - * tests/Reader_Writer_Test_WinCE.vcp: - * tests/Recursive_Mutex_Test_WinCE.vcp: - * tests/Refcounted_Auto_Ptr_Test_WinCE.vcp: - * tests/Reverse_Lock_Test_WinCE.vcp: - * tests/Semaphore_Test_WinCE.vcp: - * tests/Service_Config_Test_WinCE.vcp: - * tests/Sigset_Ops_Test_WinCE.vcp: - * tests/Simple_Message_Block_Test_WinCE.vcp: - * tests/SOCK_Connector_Test_WinCE.vcp: - * tests/SOCK_Send_Recv_Test_WinCE.vcp: - * tests/SOCK_Test_WinCE.vcp: - * tests/SPIPE_Test_WinCE.vcp: - * tests/SString_Test_WinCE.vcp: - * tests/Svc_Handler_Test_WinCE.vcp: - * tests/Task_Test_WinCE.vcp: - * tests/Thread_Manager_Test_WinCE.vcp: - * tests/Thread_Mutex_Test_WinCE.vcp: - * tests/Thread_Pool_Reactor_Resume_Test_WinCE.vcp: - * tests/Thread_Pool_Reactor_Test_WinCE.vcp: - * tests/Thread_Pool_Test_WinCE.vcp: - * tests/Timeprobe_Test_WinCE.vcp: - * tests/Timer_Queue_Test_WinCE.vcp: - * tests/Time_Service_Test_WinCE.vcp: - * tests/Time_Value_Test_WinCE.vcp: - * tests/Tokens_Test_WinCE.vcp: - * tests/TSS_Test_WinCE.vcp: - * tests/Upgradable_RW_Test_WinCE.vcp: - Added aygshell.lib to the link option. - -Wed Apr 3 00:03:05 2002 Krishnakumar B - - * include/makeinclude/platform_sunos5_g++.GNU (exceptions): - * include/makeinclude/platform_qnx_neutrino.GNU: - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - - Removed redefinitions of ACE_HAS_GNUG_PRE_2_8 as they were - unnecessary. Some more files also seem to be abusing this flag. - But I don't have access to those exotic platforms. - -Tue Apr 2 19:36:31 2002 Steve Huston - - * ace/OS_String.inl (strtok_r): Another variant of wcstok()... - Linux/glibc uses the 3-arg version of wcstok(), and says it's - from UNIX98 and ISO/ANSI C. - -Tue Apr 2 16:21:39 2002 Steve Huston - - * ace/Get_Opt.h: Doxygen-ized the comments. - -Tue Apr 02 15:12:10 2002 Nanbor Wang - - * bin/nightlybuilds/builds.lst: Removed KCC builds from the list. - -Tue Apr 2 14:02:06 2002 Chris Cleeland - - * ace/SSL/SSL_Context.cpp (dh_params): Changed this to use the - OpenSSL 'BIO' abstraction for file i/o rather than file pointers. - Using file pointers caused problems on Win32 platforms, and BIOs - don't. So, despite the fact that it's ugly and pollutes ACE code - with an OpenSSL abstraction, at least it works. We'll have to - figure out a more palatable way of dealing with this eventually. - -Tue Apr 2 12:53:00 2002 Si Mong Park - - * ace/Argv_Type_Converter.cpp: - Fixed possible memory leak in the Dtor with incorrect counter of - argv. Thanks to Don Hinton for finding this bug. - -Mon Apr 1 18:27:46 2002 Steve Huston - - * ace/OS_String.inl (strtok_r): Corrected decision to call - wcstok() or wcstok_r(). This fixes builds on HP-UX 11. -Mon Apr 1 16:35:29 2002 Steve Huston - - * ace/Containers_T.h (ACE_Array): Added performance characteristics - and requirements table. - -Mon Apr 1 11:56:55 2002 Steve Totten - - * ace/Process.h: - * ace/Process.cpp: - - Applied change from Rich Seibel to add a - reset for the command_line_calculated_ flag (three places) and - rewrote the description of command_line_buf(). - -Mon Apr 1 12:38:44 2002 Steve Huston - - * ace/Asynch_Acceptor.h: Corrected @arg to be @a for Doxygen. - -Sun Mar 31 22:44:00 2002 Si Mong Park - - * apps/FaCE/FaCE_OS.h: - * apps/FaCE/FaCE.cpp: - * apps/FaCE/Main.cpp: - Changed 'LPWSTR' to 'ACE_TCHAR*' and 'LPCTSTR' to 'const ACE_TCHAR*'. - Also removed fuzz no-checking header to enable fuzz again. - -Sun Mar 31 22:08:00 2002 Si Mong Park - - * ChangeLog: - Fixed incorrect path for FaCE related files on prior change log - items. - -Sat Mar 30 08:58:57 2002 Douglas C. Schmidt - - * ace/Asynch_Acceptor.cpp: (handle_accept): Removed a stray - ACE_DEBUG() call. - Thanks to Edan Ayal for reporting this. - -Sun Mar 31 01:18:00 2002 Si Mong Park - - * apps/FaCE/FaCE_OS.h: - * apps/FaCE/FaCE.cpp: - * apps/FaCE/Main.cpp: - Added "// FUZZ: disable check_for_tchar" as the code is only and - specifically for the WinCE. Thanks to Nanbor Wang for help. - - * apps/CE_ARGV.H: - * apps/CE_ARGV.CPP: - Minor lower/upper case change in the include statement. - -Sat Mar 30 22:19:00 2002 Si Mong Park - - * ace/OS.h: - Removed FaCE_MAIN definition originally added during WinCE port - and moved to FaCE_OS.h in the FaCE package since it is FaCE - specific macro. - - * apps/FaCE/Face_OS.h: - Contains FaCE_MAIN macro definition to set entry point on WinCE. - - * apps/FaCE/ReadMe.txt: - Updated installation part for FacE_OS.h. - -Fri Mar 29 17:35:39 2002 Steve Huston - - * ace/Proactor.h: Doxygen-ize some comments; correct the - close() comment (no I/O completion port is known at this level). - -Fri Mar 29 13:40:00 2002 Si Mong Park - - * ace/OS.h: - Minor fix for WinCE IDC name. - - * apps/FaCE/ACE.ico: - * apps/FaCE/ACE_Racer.bmp: - * apps/FaCE/CE_ARGV.CPP - * apps/FaCE/CE_ARGV.H - * apps/FaCE/CE_Screen_Output.cpp: - * apps/FaCE/CE_Screen_Output.h: - * apps/FaCE/FaCE.cpp: - * apps/FaCE/FaCE.h: - * apps/FaCE/FACE.ico: - * apps/FaCE/FaCE.rc: - * apps/FaCE/FaCE.vcp: - * apps/FaCE/FaCE.vcw: - * apps/FaCE/FaCENOACE.vcp: - * apps/FaCE/FaCENOACE.vcw: - * apps/FaCE/License.txt: - * apps/FaCE/Main.cpp: - * apps/FaCE/newres.h: - * apps/FaCE/ReadMe.txt: - * apps/FaCE/resource.h - * apps/FaCE/TAO.BMP: - A new front-end framework utility/plug-in for ACE on WinCE. - -Fri Mar 29 11:33:00 2002 Si Mong Park - - * ace/ace_dll.vcp: - * tests/Refcounted_Auto_Ptr_Test_WinCE.vcp: - * tests/Service_Config_DLL_WinCE.vcp: - Added few files into project. - - * tests/CE_fostream.h: - * tests/CE_fostream.cpp: - A class that simulates fostream on WinCE for CDR File test. - - * tests/Bound_Ptr_Test.cpp: - * tests/CDR_File_Test.cpp: - * tests/Log_Msg_Test.cpp: - * tests/Logging_Strategy_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/MM_Shared_Memory_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Priority_Task_Test.cpp: - * tests/Refcounted_Auto_Ptr_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Test.cpp: - * tests/Svc_Handler_Test.cpp: - * tests/Thread_Pool_Test.cpp: - Minor updates for WinCE build. - -Fri Mar 29 11:08:29 2002 Steve Huston - - * ace/Asynch_Acceptor.h: Doxygen-ized the method comments. - -Fri Mar 29 02:50:33 2002 Craig Rodrigues - - * examples/QOS/Diffserv/README: Update links to RFC's for - Expedited Forwarding. - -Fri Mar 29 08:32:12 2002 Johnny Willemsen - - * tests/Makefile.bor: - Added new Cached_Allocator_Test - - * tests/Cached_Allocator_Test.cpp: - Fixed unicode build errors - -Thu Mar 28 23:47:00 2002 Si Mong Park - - * ace/OS.h: - * ace/OS.cpp: - Fixed WinCE entry point definitions, and factored out Unicode format - checking parts as a separate function for both WinCE and Unicode builds. - - * ace/config-WinCE.h: - Commented out the part that 'forces' WinCE to use DLL only. The - 'commented out' part has been left for possible future reference. - - * tests/test_config.h: - Changed path settings for WinCE file system as CE only supports absolute- - path and does not have concept of './'. - - * tests/tests_WinCE.vcw: - * tests/ARGV_Test_WinCE.vcp: - * tests/Atomic_Op_Test_WinCE.vcp: - * tests/Auto_IncDec_Test_WinCE.vcp: - * tests/Barrier_Test_WinCE.vcp: - * tests/Basic_Types_Test_WinCE.vcp: - * tests/Bound_Ptr_Test_WinCE.vcp: - * tests/Buffer_Stream_Test_WinCE.vcp: - * tests/Cached_Accept_Conn_Test_WinCE.vcp: - * tests/Cached_Conn_Test_WinCE.vcp: - * tests/Cache_Map_Manager_Test_WinCE.vcp: - * tests/Capabilities_Test_WinCE.vcp: - * tests/CDR_Array_Test_WinCE.vcp: - * tests/CDR_File_Test_WinCE.vcp: - * tests/CDR_Test_WinCE.vcp: - * tests/Collection_Test_WinCE.vcp: - * tests/Conn_Test_WinCE.vcp: - * tests/DLList_Test_WinCE.vcp: - * tests/DLL_Test_DLL_WinCE.vcp: - * tests/DLL_Test_WinCE.vcp: - * tests/Dynamic_Priority_Test_WinCE.vcp: - * tests/Enum_Interfaces_Test_WinCE.vcp: - * tests/Future_Set_Test_WinCE.vcp: - * tests/Future_Test_WinCE.vcp: - * tests/Handle_Set_Test_WinCE.vcp: - * tests/Hash_Map_Bucket_Iterator_Test_WinCE.vcp: - * tests/Hash_Map_Manager_Test_WinCE.vcp: - * tests/High_Res_Timer_Test_WinCE.vcp: - * tests/Lazy_Map_Manager_Test_WinCE.vcp: - * tests/Logging_Strategy_Test_WinCE.vcp: - * tests/Log_Msg_Test_WinCE.vcp: - * tests/Malloc_Test_WinCE.vcp: - * tests/Map_Manager_Test_WinCE.vcp: - * tests/Map_Test_WinCE.vcp: - * tests/Max_Default_Port_Test_WinCE.vcp: - * tests/Mem_Map_Test_WinCE.vcp: - * tests/MEM_Stream_Test_WinCE.vcp: - * tests/Message_Block_Test_WinCE.vcp: - * tests/Message_Queue_Notifications_Test_WinCE.vcp: - * tests/Message_Queue_Test_Ex_WinCE.vcp: - * tests/Message_Queue_Test_WinCE.vcp: - * tests/MM_Shared_Memory_Test_WinCE.vcp: - * tests/MT_Reactor_Timer_Test_WinCE.vcp: - * tests/MT_SOCK_Test_WinCE.vcp: - * tests/Naming_Test_WinCE.vcp: - * tests/New_Fail_Test_WinCE.vcp: - * tests/Notify_Performance_Test_WinCE.vcp: - * tests/Object_Manager_Test_WinCE.vcp: - * tests/OrdMultiSet_Test_WinCE.vcp: - * tests/OS_Test_WinCE.vcp: - * tests/Priority_Buffer_Test_WinCE.vcp: - * tests/Priority_Reactor_Test_WinCE.vcp: - * tests/Priority_Task_Test_WinCE.vcp: - * tests/Process_Manager_Test_WinCE.vcp: - * tests/RB_Tree_Test_WinCE.vcp: - * tests/Reactors_Test_WinCE.vcp: - * tests/Reactor_Exceptions_Test_WinCE.vcp: - * tests/Reactor_Notify_Test_WinCE.vcp: - * tests/Reactor_Performance_Test_WinCE.vcp: - * tests/Reactor_Timer_Test_WinCE.vcp: - * tests/Reader_Writer_Test_WinCE.vcp: - * tests/Recursive_Mutex_Test_WinCE.vcp: - * tests/Refcounted_Auto_Ptr_Test_WinCE.vcp: - * tests/Reverse_Lock_Test_WinCE.vcp: - * tests/Semaphore_Test_WinCE.vcp: - * tests/Service_Config_DLL_WinCE.vcp: - * tests/Service_Config_Test_WinCE.vcp: - * tests/Sigset_Ops_Test_WinCE.vcp: - * tests/Simple_Message_Block_Test_WinCE.vcp: - * tests/SOCK_Connector_Test_WinCE.vcp: - * tests/SOCK_Send_Recv_Test_WinCE.vcp: - * tests/SOCK_Test_WinCE.vcp: - * tests/SPIPE_Test_WinCE.vcp: - * tests/SString_Test_WinCE.vcp: - * tests/Svc_Handler_Test_WinCE.vcp: - * tests/Task_Test_WinCE.vcp: - * tests/Thread_Manager_Test_WinCE.vcp: - * tests/Thread_Mutex_Test_WinCE.vcp: - * tests/Thread_Pool_Reactor_Resume_Test_WinCE.vcp: - * tests/Thread_Pool_Reactor_Test_WinCE.vcp: - * tests/Thread_Pool_Test_WinCE.vcp: - * tests/Timeprobe_Test_WinCE.vcp: - * tests/Timer_Queue_Test_WinCE.vcp: - * tests/Time_Service_Test_WinCE.vcp: - * tests/Time_Value_Test_WinCE.vcp: - * tests/Tokens_Test_WinCE.vcp: - * tests/TSS_Test_WinCE.vcp: - * tests/Upgradable_RW_Test_WinCE.vcp: - Project files for WinCE build on eMbedded Visual C++ 3.0. - Note that some tests run fine under emulator but not on the real - machine, and some tests run okay on WinCE 3.0 but not on Pocket PC 2002. - The missing tests are mostly not supported by WinCE 3.0/PPC 2002. - For example, WinCE does not have 'fork' or environment variables. - Also, WinCE supports memory mapped file; however, the method is so different - to other Windows platforms that it is really hard to make it work correctly - on current ACE mem-map function structure. - -Thu Mar 28 16:15:17 2002 Douglas C. Schmidt - - * ace/TTY_IO.h: Added the ACE_Export macro to the Serial_Params - struct. Thanks to Pavel Repin for reporting - this. - -Thu Mar 28 13:31:19 2002 Priyanka Gontla - - * ace/POSIX_Asynch_IO.cpp (handle_close): - Fixed the warnings on Debian_Core build that were caused by the - changes earlier today. - -Thu Mar 28 16:14:39 2002 Steve Huston - - * ace/OS.h (ACE_Time_Value::dump): Added comments that'll go to - the man page to explain why this is a no-op. - -Thu Mar 28 14:26:19 2002 Douglas C. Schmidt - - * tests/Cached_Allocator_Test.cpp: Added a missing template - instantiation. - -Thu Mar 28 10:45:16 2002 Nanbor Wang - - * tests/tests.dsw: - * tests/Cached_Allocator_Test.dsp: Added this new MSVC project. - -Thu Mar 28 10:12:13 2002 Douglas C. Schmidt - - * ace/Malloc_T.{h,i,cpp}: Added support for - ACE_Dynamic_Cached_Allocator. - Thanks to Jaroslaw Nozderko for - contributing this. - - * tests: Added Cached_Allocator_Test.cpp. Thanks to - Jaroslaw Nozderko for contributing this. - - * tests/Makefile (BIN): - * tests/run_test.lst: Added Cached_Allocator_Test. - -Thu Mar 28 06:15:22 2002 Alex Libman - - * ace/POSIX_Asynch_IO.cpp, - ace/POSIX_Asynch_IO.h: - ACE_POSIX_AOICB_Asynch_Operation and ACE_POSIX_Asynch_Operation - merged in one class ACE_POSIX_Asynch_Operation - - Since POSIX_SIG_Proactor and SUN_Proactor are based on - POSIX_AIOCB_Proactor and both of them use - ACE_POSIX_AOICB_Asynch_Operation, there is no necessity to - support extra class tree. - - * ace/POSIX_Asynch_IO.cpp, - ace/POSIX_Asynch_IO.h: - ACE_POSIX_AOICB_Transmit_Handler and ACE_POSIX_Transmit_Handler - merged in ACE_POSIX_Transmit_Handler for same reason as previous - change. - - * ace/POSIX_Asynch_IO.cpp, - ace/POSIX_Asynch_IO.h: ACE_POSIX_Asynch_Accept merged with - ACE_POSIX_Asynch_Accept_Hanlder and redesigned and added - new class ACE_POSIX_Asynch_Accept_Task. - - POSIX_AIOCB_Proactor has new member - ACE_POSIX_Asynch_Accept_Task asynch_accept_task_. - - Task activation should be done from the most derived - constructors , when the final table of virtual functions is - built (simular case with notify_manager). - - // start asynch accept task - this->get_asynch_accept_task.start (); - - All POSIX_Proactors implementations ( AIOCB,SIG,SUN ) should - stop ACE_POSIX_Asynch_Accept_Task in their destructors to avoid - post_completions from based classes - - // stop asynch accept task - this->get_asynch_accept_task.stop (); - -Thu Mar 28 06:14:22 2002 Douglas C. Schmidt - - * ace/TTY_IO.cpp (Serial_Params): Zero out the values in the - Serial_Params constructor. Thanks to Pavel Repin - for reporting this. - -Wed Mar 27 20:00:31 2002 Douglas C. Schmidt - - * include/makeinclude/platform_linux.GNU: Fixed a typo where - PLATFORM_XT_LDFLAGS was spelled incorrectly. Thanks to Eric - Eide and Ansgar Konermann - for reporting this. - -Wed Mar 27 18:36:14 2002 Krishnakumar B - - * include/makeinclude/platform_linux.GNU (CXX_VERSION): - - Reorganised the switches a bit for handling the implicit - templates. - - * include/makeinclude/wrapper_macros.GNU (ACE_HAS_GNUG_PRE_2_8): - - If the compiler has g++ or any mutations of g++, test whether - the version is less than 2.8. If so set ACE_HAS_GNUG_PRE_2_8 - to 1 else set it to 0. Thanks to James Haiar - for reporting this. - -Wed Mar 27 16:32:55 2002 Irfan Pyarali - - * tests/Reactor_Dispatch_Order_Test.cpp: Minor compilation fixes. - -Wed Mar 27 15:10:27 2002 Irfan Pyarali - - * tests/Reactor_Dispatch_Order_Test: Added a new test to check the - order of dispatching of ACE Reactors. Order should be: timeout, - output, and then input. Currently, Select and WFMO Reactors are - tested. - - The following files we updated to include the new test: - - - tests/Makefile - - tests/Makefile.am - - tests/Makefile.bor - - tests/Reactor_Dispatch_Order_Test.dsp - - tests/Reactor_Dispatch_Order_Test.icc - - tests/icc.bat - - tests/run_test.lst - - tests/run_tests.bat - - tests/run_tests.psosim - - tests/run_tests_remote.lst - - tests/tests.dsw - - tests/tests.icp - - * ace/WFMO_Reactor.cpp (upcall): Changed the dispatch order to - match the Select_Reactor's dispatch order. The order now is: - - FD_WRITE - FD_CONNECT - FD_OOB - FD_READ - FD_CLOSE - FD_ACCEPT - FD_QOS - FD_GROUP_QOS - - Thanks to Steve Huston for pointing this - out. - - * tests/icc.bat: Removed duplicates. - -Wed Mar 27 10:25:12 2002 Johnny Willemsen - - * ace/High_Res_Timer.{h,cpp}: - Fixed a few small typing errors in comments - -Tue Mar 26 13:55:19 2002 Douglas C. Schmidt - - * ace/OS.i (operator *=): Explicitly promote sec() to double before - multiplying it to prevent problems with overflow. Thanks to - Eric Page for reporting this. This - fixes BugId [1174]. - -Tue Mar 26 06:50:58 2002 Douglas C. Schmidt - - * ace/Synch.h (ACE_Null_Mutex): Added a dummy "lock_" variable - to make ACE_Condition work properly. Thanks to - Ido Yellin for reporting this. - -Wed Mar 21 08:11:15 2002 Boris Kolpackov - - * THANKS: Added Frank Rybak to the Hall of fame. - -Wed Mar 20 11:23:38 2002 Priyanka Gontla - - * ace/Service_Manager.cpp (handle_input): - Moved the declaration of 'error' outside the do-while loop to - fix the 'error (undeclared)' error. - -Wed Mar 20 09:51:47 2002 Douglas C. Schmidt - - * ace/Acceptor.cpp (handle_input): Updated the comments to point out that - svc_handler->close() is called in accept_svc_handler() and - activate_svc_handler() if a failure occurs. Thanks to Rainer - Lucas for motivating this. - -Wed Mar 20 06:44:02 2002 Douglas C. Schmidt - - * ace/Service_Manager.cpp (handle_input): Fixed a bug that prevents - an infinite loop. Thanks to Sandro Doro - for reporting this. - - * include/makeinclude/platform_vxworks5.x_g++.GNU (HOST_DIR): Fixed - a typo where -mlongcal should be -mlongcall. Thanks to Erik - Johannes for reporting this. - -Wed Mar 20 14:26:12 2002 Johnny Willemsen - - * docs/usage-bugzilla.html: - Updated the link to the Bugzilla project - -Tue Mar 19 15:17:25 2002 Dante J. Cannarozzi - - * ace/Containers_T.h: with the help of Matt Hampton - updated doxygen comments for container classes - with more details at the request of Steve Huston. - -Tue Mar 19 02:40:00 2002 Si Mong Park - - * ace/OS_String.h: - * ace/OS_String.inl: - * ace/OS_String.cpp: - Corrected proper ACE_HAS_REENTRANT_FUNCTIONS macro checking location - for the strtok_r_emulation functions. Debian compilation error was - because ACE_HAS_REENTRANT_FUNCTIONS was not defined in the configuration. - If ACE_HAS_REENTRANT_FUNCTIONS is defined, then emulation functions - should not be visible. - -Mon Mar 19 08:32:34 2002 Boris Kolpackov - * THANKS: Added Chen Jian to the Hall of fame. - -Sun Mar 17 18:22:12 2002 Craig Rodrigues - - * include/makeinclude/platform_freebsd.GNU: Copy lines from - platform_linux.GNU. exceptions=1 is now the default, - unless overridden by the user, just like for Linux. - -Sun Mar 17 11:53:12 2002 Johnny Willemsen - - * include/makeinclude/compiler.bor: - When doing a wchar build don't automatically define UNICODE and _UNICODE. - -Fri Mar 15 18:08:28 2002 Steve Huston - - * ace/config-aix-4.x.h: Removed the optional setting of - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION for Visual Age C++ - 5 without __TEMPINC__ set. This was an experiment to try and - rid the build of all the "duplicate symbol" warnings, and it - broke the incremental builds. - -Fri Mar 15 12:19:58 2002 Chad Elliott - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - - Added support for building with exceptions enabled. - -Fri Mar 15 05:59:45 2002 Douglas C. Schmidt - - * ace/SPIPE_Acceptor.cpp: Removed the ACE_ASSERT (result == FALSE) - macro call. Thanks to Oleg Burlachenko - for reporting this. - -Fri Mar 15 00:16:06 2002 Craig Rodrigues - - * include/makeinclude/platform_freebsd.GNU: - * include/makeinclude/platform_netbsd.GNU: - Make -fno-implicit-templates conditional, instead of default. - Thanks to Denis Otchenashko for motivating - me to look into this and fix this. - -Thu Mar 14 12:50:00 2002 Si Mong Park - - * ace/OS_String.h: - * ace/OS_String.inl: - * ace/OS_String.cpp: - Fixed a skipping strtok_r_emulation definition when ACE_HAS_WCHAR is - defined. - -Thu Mar 14 11:26:41 2002 Nanbor Wang - - * performance-tests/Misc/context_switch_time.cpp: Renamed the - internally used macro, DEBUG, to ACE_DEBUG_CST to avoid clashing - with the compiler defined macro. Thanks to Allan S Iverson - for motivating the fix. - -Thu Mar 14 09:17:55 2002 Douglas C. Schmidt - - * ace/Strategies_T.cpp (activate_svc_handler): Added a call to - destroy() the svc_handler if ACE::fork() fails. Thanks to - Rainer Lucas for reporting this. - - * ace/Configuration.cpp (remove_section): Made the code consistent - for all versions of Windows. Thanks to Jon Lambert - for the fix. - - * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp (ACE_TMAIN): Added - '\n' to the end of command strings so that the client won't hang. Thanks to - Marc M Adkins for this fix. - -Wed Mar 13 15:55:54 2002 Douglas C. Schmidt - - * ace/OS.h: EACCESS was misspelled! Thanks to Eric Eide - for reporting this. - -Wed Mar 13 20:50:00 2002 Si Mong Park - - * ace/OS.i: - Minor change to resolve signed/unsigned comparison warning. - - * ace/OS_String.h: - * ace/OS_String.inl: - * ace/OS_String.cpp: - Added wide-char version of strtok_r and strtok_r_emulation. - - * ace/Functor.h: - * ace/Functor.i: - Added hash related templates for ACE_ANTI_TCHAR type - when ACE_USES_WCHAR is defined. - - * ace/ace_dll.vcp: - * ace/ace_os_dll.vcp: Added missing files. - -Wed Mar 13 11:57:41 2002 Steve Huston - - * ace/Configuration_Import_Export.cpp: Replace ACE_ASSERTs with - validity checks that set errno and return -1. ACE_ASSERT is - a little too drastic for a simple error, and the ACE_ASSERT - check is removed altogether when building with ACE_NDEBUG. - -Wed Mar 13 10:36:02 2002 Craig Rodrigues - - * ace/config-freebsd-pthread.h: Fix test for POSIX RT signals. - Thanks to Denis Otchenashko for reporting - these problems. - -Wed Mar 13 10:21:49 2002 Steve Huston - - * ace/Configuration_Import_Export.cpp (ACE_Ini_ImpExp::import_config): - Remove the "else value = ACE_LIB_TEXT("")" for zero-length - values - value is already a zero-length string. - -Wed Mar 13 09:40:12 2002 Johnny Willemsen - - * ace/Registry_Name_Space.cpp: - Fixed warnings about unused variables in BCB Unicode build - -Tue Mar 12 18:37:49 2002 Steve Huston - - * ace/Configuration_Import_Export.{h cpp} (ACE_Ini_ImpExp): - Changed behavior of ACE_Ini_ImpExp::import_config() to take - the entire string, with or without whitespace, without requiring - quotes around the string. This puts functionality on par with - regular Windows INI files. - - Also, on ACE_Ini_ImpExp::export_config(), don't add quotes to - string values that are exported. import_config() will still read - files exported previously (which have quotes around strings) - but when re-exported, the quotes will not be added. - -Tue Mar 12 17:43:32 2002 Balachandran Natarajan - - * ace/CDR_Base.cpp (consolidate): If the incoming message block - does not have a chain of message blocks, there is no need to do - a deep copy, a refcount increment on the incoming datablock - would do. Thanks to Lothar Werzinger - for the patches. - -Tue Mar 12 15:32:46 2002 Balachandran Natarajan - - * PROBLEM-REPORT-FORM (Subject): Added a request for the version - of winsock on Windows based OS's. - -Tue Mar 12 15:22:29 2002 Balachandran Natarajan - - * ace/OS.i (sendv): When using winsock1, we transfer data by - sending one iovec at a time. If transfer of a buffer isnt - complete because the socket buffers got full, we need to drop - out of the loop that sends data. Thanks to Stephan Gudmundson - for providing this patch. - - * THANKS: Added Stephan Gudmundson to the Hall of fame. - -Mon Feb 25 14:06:45 2002 Chad Elliott - - * ace/config-hpux-11.00.h: - - Do not define __HP_aCC if using KCC. - - * include/makeinclude/platform_hpux_kcc.GNU: - - Add the --one-instantiation-per-object parameter to avoid - build problems with KCC. - - * tests/Dirent_Test.cpp: - - Modify this test to work with Chorus (as it does with VxWorks). - - * ace/config-aix-4.x.h: - - Defined ACE_HAS_USING_KEYWORD for AIX 4.x with Visual Age 5 or - later. This change came from Yan Dai - -Tue Mar 12 11:53:53 2002 Chad Elliott - - * bin/perltest2cpp.pl: - - Corrected the code for array assignments. - - * bin/vxworks_modify.pl: - - Use ACE_ENV_* instead of TAO_ENV_*. - -Tue Mar 12 10:45:00 2002 Justin Michel - - * ace/OS.i: - - Added call to ACE_OS::set_errno_to_last_error() in two places - where Winsock WSARecvFrom or WSASendTo were called. - -Tue Mar 12 09:06:00 2002 Si Mong Park - - * etc/Svc_Conf_l.cpp.diff: - Incorrect file had been checked in on prior commit. - This is the correct file. - - * tests/Config_Test.cpp: - Fixed incorrect delete statement. - -Tue Mar 12 08:54:00 2002 Si Mong Park - - * etc/Svc_Conf_l.cpp.diff: - Fixed CR/LF (DOS format) problem: no content changed. - -Tue Mar 12 13:52:12 2002 Johnny Willemsen - - * THANKS : Added Oleg Kraynov - -Mon Mar 11 21:05:26 2002 Krishnakumar B - - * ACEXML/parser/parser/Parser.cpp (parse): - - Added comment on the order of processing that should be done by - the parser. - -Mon Mar 11 20:21:38 2002 Steve Huston - - * ace/config-all.h: Fixed ACE_NEW section to work with HP-UX 10.20, - aC++ A.01.27 with -AA option. - -Mon Mar 11 18:48:41 2002 Steve Huston - - * examples/C++NPv1/Logging_Client.cpp: Added a compile-time check - for Win32 to be sure ACE_HAS_STANDARD_CPP_LIBRARY is set, else - trying to use the new getline() method with an old cin won't work. - -Mon Mar 11 17:43:00 2002 Si Mong Park - - * ace/Svc_Conf_l.cpp: - Minor comment change to make diff file. - - * etc/Svc_Conf_l.cpp.diff: - Updated diff file for Svc_Conf_l.cpp. - -Mon Mar 11 16:59:42 2002 Steve Huston - - * tests/TP_Reactor_Test.h (new file): - * tests/TP_Reactor_Test.cpp: Moved declarations for Receiver, - Acceptor, Sender, and Connector classes to the new file - TP_Reactor_Test.h so Visual Age C++ can find them when - instantiating templates. - -Mon Mar 11 16:38:49 2002 Steve Huston - - * tests/Reactor_Notify_Test.cpp: Added missing #include "ace/Reactor.h" - to fix Visual Age C++ compile error. - -Mon Mar 11 16:27:59 2002 Steve Huston - - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp: - Added missing #include "ace/Auto_Ptr.h" to fix compile problem - for platforms w/o native auto_ptr (like MSVC). - -Mon Mar 11 14:23:00 2002 Si Mong Park - - * tests/Config_Test.cpp: - Removed one of the delete statement that deletes twice and thus - causing an invalid access violation. - -Mon Mar 11 10:28:45 2002 Chad Elliott - - * bin/vxworks_modify.pl: - - Update this script to work correctly with the new CORBA - Environment style. - -Mon Mar 11 12:17:12 2002 Johnny Willemsen - - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - * include/makeinclude/build_lib.bor: - * include/makeinclude/compiler.bor: - * include/makeinclude/decorator.bor: - * include/makeinclude/make_flags.bor: - * include/makeinclude/outputdir.bor: - Added support for a real unicode build with BCB builder. A real - unicode build can for example be done with: - make -f makefile.bor -DUNICODE - Doing a real unicode build means that the defines ACE_USES_WCHAR, - UNICODE and _UNICODE are set, diffent BCB object files are used - to link with and the compiler gets the extra compiler option -WU. - The dll names have a 'u' added so that unicode dll's are separated - from the non-unicode dll's. Also the output files are build in a - separate subdirectory. - - * ACE-INSTALL.html: - Explained the BCB make options that can be used with ACE - -Mon Mar 11 11:35:12 2002 Johnny Willemsen - - * ace/Registry_Name_Space.cpp: - Changed ACE_USHORT16 to ACE_WSTRING_TYPE because the underlying type - of ACE_WString is ACE_USHORT16 with MSVC and with BCB it is - wchar_t. The define ACE_WSTRING_TYPE hides these differences. When - UNICODE and ACE_USES_WCHAR are defined BCB gave a compile error. - -Sun Mar 10 18:53:48 2002 Si Mong Park - - * ace/Svc_Conf_l.cpp: - Commented out 'break' line to resolve unreachable statement warning. - -Sun Mar 10 05:54:30 2002 Balachandran Natarajan - - * THANKS : Added Val Dumitrescu to the - Hal of Fame. - * bin/auto_run_tests.lst: Added a new test to the daily builds. - -Sat Mar 9 21:22:51 2002 Balachandran Natarajan - - * ace/CDR_Stream.cpp: - * ace/CDR_Stream.i: - * ace/CDR_Stream.h: Added accessor methods for GIOP versions of - Input and Output CDR streams. - -Sat Mar 9 07:52:45 2002 Douglas C. Schmidt - - * ace/SPIPE_Addr.cpp (set): Changed a strcpy() to a strcat() to - fix the code. Thanks to Robert Laferriere - for reporting this. - -Fri Mar 8 22:29:36 2002 Si Mong Park - - * ace/Argv_Type_Converter.cpp: - * ace/Argv_Type_Converter.h: - * ace/Argv_Type_Converter.inl: - new class to convert command line parameter type between char - and wchar_t. - - * ace/Basic_Types.h: - Set the endian type to 'little endian' for ARM processor - - Pocket PC 2002 platform. - - * ace/Log_Record.cpp: - * ace/Log_Record.h: - Removed print method that uses ACE_CE_Bridge since CE_Bridge is - no longer supported by ACE CE port. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Added Argv_Type_Converter class to the project. - - * ace/WFMO_Reactor.cpp: - * ace/WFMO_Reactor.h: - * ace/WFMO_Reactor.i: - Updated to support WinCE. - - * ace/Process.cpp: - Fixed incorrect call to CreateProcess for WinCE. - - * ace/config-WinCE.h: - Updated for WinCE Pocket PC 2002. - - * ace/ace.vcw: - * ace/ace_dll.vcp: - * ace/ace_os_dll.vcp: - New ACE project file for WinCE Pocket PC 2002 build on eMbedded - Visual C++ 3.0. - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - Added Argv_Type_Converter file. - - * ace/Configuration.cpp: - * ace/Memory_Pool.cpp: - Updated for the WinCE port. - - * ace/Read_Buffer.cpp: - * ace/Read_Buffer.h: - Disabled Ctor with ACE_HANDLE on WinCE since ACE_HANDLE is same - as FILE* on WinCE. - - * ace/OS.cpp: - * ace/OS.h: - * ace/OS.i: - Updated for WinCE port. Changes includes removal of CE Bridge - added CE argv process class, enabled many file IO functions - that formerly disabled on CE, bypassing QoS parts for CE, and - other CE specific declarations. - - * ace/Dynamic_Service.h: - * ace/Dynamic_Service.i: - Added 'instance' method uses ACE_ANTI_TCHAR type name for when - ACE_TCHAR is wchar_t. - - * ace/CE_Screen_Output.cpp: - * ace/CE_Screen_Output.h: - screen output helper class only for WinCE platform - should - not be used on any other platform. - - * ace/OS_Memory.h: - * ace/OS_String.h: - Changed to skip including stddef.h for WinCE. - - * ace/MEM_Acceptor.h: - * ace/MEM_Acceptor.i: - * ace/SOCK_Acceptor.cpp: - * ace/SOCK_Acceptor.h: - * ace/SOCK_Connector.cpp: - * ace/SOCK_Connector.h: - * ace/SOCK_Dgram_Mcast.h: - Updated to skip QoS part on WinCE. - - * ace/Svc_Conf.l: - * ace/Svc_Conf_l.cpp: - Fixed a problem giving a parse error on reading carriage return - token on Unicode formatted svc conf file. - - * ace/Registry.cpp: - Changed connect function for WinCE to return -1 because CE does - not allow direct registry connection. - - * ace/Sock_Connect.cpp: - Changed to use Iphlpapi library (standard on WinCE) on WinCE to - find IP address instead of searching registry since CE has so - many variations on registry settings. - - * ace/Log_Msg.cpp: - Minor change for WinCE on stderr. - -Fri Mar 8 19:45:31 2002 Steve Huston - - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp: - Use auto_ptr<> to manage dynamically-allocated Thread_Args. - Thanks to Chris Uzdavinis for this suggestion. - -Thu Mar 7 16:10:02 2002 Douglas C. Schmidt - - * include/makeincludes/platform_linux_icc.GNU, - * ace/config-icc-common.h, - * ace/config-linux-common.h: Added support for the Intel C++ compiler - (icc). Thanks to Roger Tragins for contributing this. - -Thu Mar 7 11:17:12 2002 Johnny Willemsen - - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Membership_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/RMCast/RMCast_Reordering_Test.cpp: - * tests/RMCast/RMCast_Retransmission_Test.cpp: - * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: - Replaced main with ACE_TMAIN. - -Wed Mar 6 21:48:15 2002 Krishnakumar B - - * include/makeinclude/platform_linux_kcc.GNU (CCFLAGS): - - Moved --one_instantiation_per_object flag as a common flag. - Otherwise building with debugging enabled doesn't work with - libraries built without debug information. - -Wed Mar 6 21:42:37 2002 Krishnakumar B - - * bin/ace-install: - - Make sure that the .inl files are also installed. Thanks to - Carsten Prescher for reporting this. - -Wed Mar 6 18:30:49 2002 Steve Huston - - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.h: - Reimplemented the Logging_Server::run method. Because the - handle_connections() method spawns a new thread to run the - logging session, and it calls handle_data(), the call to - handle_data() from Logging_Server::run() is incorrect. Thanks - to Raghuram Shetty for reporting - this issue. - - * examples/C++NPv1/Reactive_Logging_Server.h: - Fix wait_for_multiple_events() to correctly check error return - from select(). Also, in handle_connections(), sync the code - with the book to clear acceptor handles from the active_handles_ - after accepting all ready connections. - - * examples/C++NPv1/Reactive_Logging_Server_Ex.h (handle_connections): - Clear acceptor's handle from active_read_handles_ to keep from - dispatching it as a data handle. See, this is why you should use - the Reactor framework - so be sure to buy vol 2 ;-) - - * THANKS: Added Raghuram Shetty to the Hall of Fame. - -Wed Mar 06 17:06:43 2002 Nanbor Wang - - * tests/Cached_Accept_Conn_Test.cpp: - * tests/Cached_Conn_Test.cpp: Replaced main with ACE_TMAIN. - -Wed Mar 6 14:43:34 2002 Nanbor Wang - - * ace/OS.h: Reverted my previous "fix" to the argv argument type. - - Mon Jan 21 23:27:03 2002 Nanbor Wang - - A program entry poing main can take any of the - three forms: - - int main (int argc, char *argv[]) - int wmain (int argc, wchar_t *argv[]) - int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) - - Of them, the entry point main always gives you - the command line arguemnt in char strings form. The entry - point wmain currently can only be used under - Win32 and it returns the command line arguments in wchar - strings format. Defining the ACE_TMAIN as the - program entry point is the more portable form. The command - line arguments are given in char strings in most cases, - or wchar strings when ACE_USES_WCHAR is defined. - See $ACE_ROOT/docs/wchar.txt for more information - on ACE support on wchar. - - * docs/ACE-guidelines.html: Added a new guideline explaining which - main entry point to use, as above. - - * bin/main2TMAIN.pl: Script to replace entry points of the form - - main (int, ACE_TCHAR *[]) - - to - - ACE_TMAIN (int, ACE_TCHAR *[]) - - * *.cpp: Changed to use the new ACE_TMAIN. - -Tue Mar 06 14:30:12 2002 Johnny Willemsen - - * tests/MEM_Stream_Test.cpp: - Fixed the shutdown of this test. When _TEST_USES_THREADS is defined - we must do a wait() on the thread manager, else on the process - manager. - -Tue Mar 05 20:34:22 2002 Ossama Othman - - * ace/OS_Thread_Adapter.cpp (invoke): - * ace/Thread_Adapter.cpp (invoke_i): - - Fixed "jump out of __finally block" warning emanating from - MSVC 7. - -Tue Mar 05 15:46:15 2002 Nanbor Wang - - * ace/Memory_Pool.h: - * ace/Memory_Pool.i: Added a base_addr () method for all memroy - pool classes. For memory pools that don't have a base_addr and - will never remap the pool to a different area, this method - always return 0. - - * ace/Malloc_T.cpp: Reset this->cb_ptr_ after acquiring new memory - to memory_pool's base_addr (if base_addr != 0). This makes sure - the cb_ptr_ points to the right memory after a remap. Thanks to - Ariel Peltz for pointing this out. - -Tue Mar 5 12:20:26 2002 Ossama Othman - - * ace/INET_Addr.cpp (get_host_name_i, set): - - h_errno -> h_error. h_errno conflicts with a declaration in - Microsoft's Winsock headers. Thanks to Nanbor for pointing out - the problem. - -Tue Mar 05 09:26:46 2002 Ossama Othman - - * ace/INET_Addr.cpp (get_host_name_i, set): - - Do not clobber errno with the h_errno value returned from - gethostbyaddr_r(). They are two distinct types of errors. - - Renamed "error" to "h_errno" where appropriate to make it - more obvious that errno should not be set to the value of - h_errno. Thanks to Felix Wyss for - reporting this. - -Tue Mar 5 05:51:44 2002 Douglas C. Schmidt - - * ace/Process.cpp (spawn): If fork()/exec() fail, call ACE_OS::_exit() - rather than ACE_OS::exit() to avoid destructors being called - that will yield hang problems. Thanks to Renjie Tang - , Max V. Zinal , and - Michael Hornok for this suggestion. - This fixes BugID 1147. - -Tue Mar 5 12:24:12 2002 Johnny Willemsen - - * ace/Auto_IncDec_T.h: - Corrected typing error in comment - -Mon Mar 4 19:59:31 2002 Steve Huston - - * tests/Process_Strategy_Test.h: Added #include "ace/Strategies_T.h" - so Visual Age C++ can find ACE_Process_Strategy when instantiating - templates. - -Mon Mar 4 19:52:27 2002 Steve Huston - - * tests/Message_Queue_Test_Ex.h (new file): - * tests/Message_Queue_Test_Ex.cpp: Moved declaration of - User_Class to .h file so Visual Age C++ can find it when - instantiating templates. - -Mon Mar 4 19:43:51 2002 Steve Huston - - * tests/Framework_Component_Test.h (new file): - * tests/Framework_Component_Test.cpp: Moved declaration of - My_Singleton to .h file so Visual Age C++ can find it when - instantiating templates. - -Mon Mar 04 11:20:45 2002 Carlos O'Ryan - - * ace/Copy_Disabled.h: - * ace/Copy_Disabled.cpp: - Add new helper class to disable copy constructors and assignment - operators. I simply got sick of writing this repetitive code: - - // private & undefined - Foo (const Foo &); - Foo &operator= (const Foo&); - - The new class makes life *much* easier, simply say: - - class Foo : private ACE_Copy_Disabled - - Isn't that cool? - - * ace/Makefile: - * ace/Makefile.am: - * ace/Makefile.bor: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Add new file to the project files and Makefiles. - -Mon Mar 4 07:36:12 2002 Johnny Willemsen - - * tests/Token_Strategy_Test.cpp: - Fixed MSVC6 unicode build errors. - -Sun Mar 3 15:56:23 2002 Craig Rodrigues - - * tests/Token_Strategy_Test.cpp: - Add template instantiations for ACE_Array, ACE_Array_Base, - ACE_Array_Iterator. - -Sun Mar 3 16:23:12 2002 Johnny Willemsen - - * tests/Token_Strategy_Test.cpp: - Fixed MSVC6 unicode build errors. - -Sun Mar 3 11:00:12 2002 Johnny Willemsen - - * tests/Token_Strategy_Test.dsp: - Added MSVC project for this test - - * tests/Token_Strategy_Test.cpp: - Corrected small typing errors in comment - - * tests/tests.dsw: - Added new Token_Strategy_Test.dsp - -Sat Mar 2 09:17:45 2002 Douglas C. Schmidt - - * ace/INET_Addr.cpp (set): Change errno = EINVAL to errno = error if - the call to ACE_OS::gethostbyname_r() fails since errno should - already have been set! Thanks to Felix Wyss - for reporting this. - -Fri Mar 01 08:03:12 2002 Johnny Willemsen - - * ace/Makefile.bor: - Added Swap.cpp to the list of installable files - - * ace/SSL/SSL_Context.cpp: - Added ACE_TEXT_CHAR_TO_TCHAR around first argument of ACE_OS::fopen - call to convert char to ACE_TCHAR to fix compile errors in unicode - build - - * include/makeinclude/ace_flags.bor: - Corrected typing error for new tao messaging library - -Wed Feb 27 13:50:20 2002 Jaiganesh Balasubramanian - - * ace/INET_Addr.cpp: - Pull back changes from last night. - -Wed Feb 27 06:00:37 2002 Douglas C. Schmidt - - * ace/Synch.h: Clarified that ACE_Auto_Event, ACE_Manual_Event, and - ACE_Event all support process-scope locking, but only Win32 - supports global naming and system-scope locking. Thanks to - Kobi Cohen Arazi for motivating this change. - -Wed Feb 27 09:24:30 2002 Carlos O'Ryan - - * include/makeinclude/platform_linux.GNU: - Pull back Jai's change from last night. It looks like an - accident to me, and it is breaking all the builds. - -Wed Feb 27 12:09:12 2002 Johnny Willemsen - - * ACE-INSTALL.html: - Added description about setting environment variable BCBVER to - the Borland building instructions - -Wed Feb 27 10:47:12 2002 Johnny Willemsen - - * include/makeinclude/ace_flags.bor: - Added lines for new TAO_Messaging library - -Wed Feb 27 01:12:32 2002 Carlos O'Ryan - - * ace/Swap.h: - * ace/Swap.inl: - * ace/Swap.cpp: - Add helper template to swap variables, very useful when - implementing exception neutral/safe classes. - -Wed Feb 26 00:38:50 2002 UTC Don Hinton - - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor.cpp: - * ace/Select_Reactor_T.cpp: - - Removed ACE_SELECT_REACTOR_HAS_DEADLOCK_DETECTION since - it isn't used. - -Tue Feb 26 22:54:50 2002 UTC Don Hinton - - * ace/Synch.i (ACE_Noop_Token::queueing_strategy): - - Removed ACE_UNUSED_ARG and commented out the parameter - instead. Thanks to Ossama and Craig for pointing this out. - -Tue Feb 26 16:17:45 2002 Nanbor Wang - - * ace/Thread_Manager.h (ACE_Thread_Manager): Fixed a typo in - doxygen document tag. Thanks to Brad Hoskins - for reporting this. - -Tue Feb 26 10:22:39 2002 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU: Added the ability - to enable RTTI in the compat=4 case. Removed the explicit - inclusion of an installation-specific path to -L for compat=4. - Installation-specific adidtions/changes should go in the - installation's platform_macros.GNU file. - -Tue Feb 26 09:48:24 2002 Craig Rodrigues - - * apps/drwho/Protocol_Manager.cpp: Replace #include "new.h" - with #include "ace/config.h" to eliminate gcc 3.1 warning - about deprecated header. - -Tue Feb 25 10:16:12 2002 Johnny Willemsen - - * tests/Token_Strategy_Test.cpp: - Fixed unicode compile error - -Mon Feb 25 19:30:54 2002 Steve Huston - - * tests/Collection_Test.cpp: Moved the declaration of UglyThing - to a new file, Collection_Test.h. Visual Age C++ needs it in - a separate file to do auto template instantiation. - * tests/Collection_Test.h: New file. - -Mon Feb 25 19:27:41 2002 Steve Huston - - * ace/Log_Msg.cpp (log): In handling for %t, fixed the feature - test that changes behavior for AIX 4.2 and earlier. This - section missed my long-time-ago change to the AIX OS - version constants, and ended up being used for all AIX versions - which is wrong. Thanks to Yan Dai for - reporting this problem. - - * THANKS: Added Yan Dai to the Hall of Fame. - -Mon Feb 25 19:16:12 2002 Johnny Willemsen - - * docs/tutorials/007/thread_pool.{h|cpp}: - * docs/tutorials/007/page07.html: - * docs/tutorials/007/page08.html: - * docs/tutorials/013/mld.h: - * docs/tutorials/013/page03.html: - * docs/tutorials/017/Barrier_i.h: - * docs/tutorials/017/page03.html: - * docs/tutorials/018/page03.html: - Added missing include of 'ace/Atomic_Op.h' - -Mon Feb 25 18:51:37 2002 Johnny Willemsen - - * tests/Makefile.bor: - Added new Token_Strategy_Test - - * tests/Token_Strategy_Test.cpp: - Fixed small compile error that appeared with the BCB compiler - -Mon Feb 25 17:17:37 2002 UTC Don Hinton - - * ace/Select_Reactor.h: - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_T.h: Added a new typedef, ACE_SELECT_TOKEN, - to Select_Reactor_Base.h so that the choice of TOKEN type can be - made prior to typedefing the class. This allows the use of the - TOKEN type within the paramaterized class, i.e., - ACE_Select_Reactor_Token_T and ACE_Select_Reactor_T. Otherwise - you get an error on some compilers, e.g., M$VC, that complain - about generic types. - -Mon Feb 25 15:53:56 2002 UTC Don Hinton - - * ace/Synch.i (queueing_strategy): Added ACE_UNUSED_ARG for unused - queueing_strategy parameter, thanks to Craig Rodrigues - for pointing this out. - -Mon Feb 25 09:17:39 2002 Chris Cleeland - - * ace/SSL/SSL_Context.cpp (dh_params): Wrapped the second argument - to ACE_OS::fopen with ACE_TEXT so that it behaves properly on - wide character platforms. Thanks to Craig Rodrigues for - pointing this out and Ossama Othman for explaining the - difference btw. ACE_TEXT and ACE_LIB_TEXT. - -Mon Feb 25 13:50:43 2002 UTC Don Hinton - - * ace/Token.{h|i|cpp}: Added the ability to chose the queueing - strategy, FIFO or LIFO, by using the queueing_strategy() - methods. The default is FIFO, which was the previous behavior. - Now ACE_Token_Queue::insert_entry() is always called with the - queueing_strategy in order to determine where the thread should - requeue itself. - - * ace/Synch.{h|i}: Added queueing strategy methods to - ACE_Noop_Token. - - * ace/Select_Reactor_T.{h|cpp}: - * ace/TP_Reactor.{h|cpp}: Added QUEUEING_STRATEGY parameter to - ACE_Select_Reactor_Token_T, ACE_Select_Reactor_T, and - ACE_TP_Reactor ctors with FIFO default. - - * tests/Token_Strategy_Test.cpp : - * tests/Makefile : - * tests/run_test.lst: Added new Token_Strategy_Test.cpp to test - the FIFO/LIFO strategies. - -Mon Feb 25 13:44:12 2002 Johnny Willemsen - - * docs/tutorials/018/Test_T.h: - Added missing include of Atomic_Op.h - -Fri Feb 22 15:54:32 2002 Craig Rodrigues - - * ace/Refcounted_Auto_Ptr.h: Fix comment, thanks to - Serge Kolgan . - -Fri Feb 22 09:31:35 2002 Craig Rodrigues - - * ace/QoS/QoS_Session_Factory.h (ACE_QoS_Session_Type): - Change "const static" to "static const" to remove gcc 3.1 - warning. - -Fri Feb 22 08:07:12 2002 Johnny Willemsen - - * ace/Makefile.bor: Added String_Base.cpp and Atomic_op.cpp to the - list of files that must be installed when doing a make install. - Thanks to Cyrille Chépélov for reporting that - these files missed. - -Thu Feb 21 16:33:11 2002 Douglas C. Schmidt - - * docs/tutorials/007: Rename Thread_Pool::open() to - Thread_Pool::start() and Thread_Pool::close() to - Thread_Pool::stop() and fixed all the usages. Also removed the - unneeded parameter from stop() and removed the unneeded - re-definition of close() (since we are not shadowing it any - more). Thanks to Peter Heitman for - reporting this. - -Thu Feb 21 13:12:44 2002 Chris Cleeland - - * ace/SSL/SSL_Context.* (ACE_SSL_Context): Added new methods to - specify Diffie-Hellman parameters. These parameters are - required when using DSA certificates/keys. The new methods are - dh_params, dh_params_file_name, and dh_params_file_type. - -Thu Feb 21 09:32:56 2002 Douglas C. Schmidt - - * ace/TTY_IO.cpp (control): Use the appropriate B* macros to set - all the baudrate cases. Thanks to Olli Savia for - contributing this. - - * ace/Signal.cpp (dispatch): Added a cast of (ACE_SignalHandler) - to the SIG_DFL parameter so things will work on IRIX 6.5 with - GCC 3.0.1. Thanks to Dan Green for - reporting this. - -Thu Feb 21 13:09:13 2002 Craig Rodrigues - - * ace/streams.h: strstream was deprecated in the 1998 ISO C++ - standard [D.7 depr.str.strstreams], and has been replaced by - sstream. Including or causes annoying - warnings with gcc 3.1. Since strstream and sstream are not used - internally within ACE or TAO, remove includes for strstream, and - let the developer include them in their own code. - -Wed Feb 20 15:26:43 2002 Phil Mesnier - - * apps/soreduce/Library.cpp: - * apps/soreduce/Library.h: - * apps/soreduce/Makefile: - * apps/soreduce/Obj_Module.cpp: - * apps/soreduce/Obj_Module.h: - * apps/soreduce/README: - * apps/soreduce/SO_Group.cpp: - * apps/soreduce/SO_Group.h: - * apps/soreduce/Sig_List.cpp: - * apps/soreduce/Sig_List.h: - * apps/soreduce/Signature.cpp: - * apps/soreduce/Signature.h: - * apps/soreduce/soreduce.cpp: - New application to assist in production of reduced footprint - shared libraries for specific collections of applications. For - more details see the enclosed README. - -Wed Feb 20 14:18:14 2002 Phil Mesnier - - * ace/Process.cpp: - * ace/Process.h: Added a new method - ACE_Process_Options::release_handles() to fix the trouble of - using a pipe as stdout, where the pipe closes completely when - the child terminates. This method replaces some functionality in - the Process options destructor. - -Wed Feb 20 13:01:25 2002 Douglas C. Schmidt - - * ace/Atomic_Op.i: Fix the return value of the ACE_GUARD_RETURN - macros so that if the lock fails, the comparison also fails. - Thanks to Ivan Pia for reporting this. - -Wed Feb 20 17:00:34 2002 Balachandran Natarajan - - * include/makeinclude/platform_sunos5_sunc++.GNU: Users who use - 5.2 and above could use native exceptions with inlining turned - on. Thanks to Ken O'Brien for reporting - this problem. - - * THANKS: Added Ken O'Brien to the hall of - fame. - -Mon Feb 18 23:17:08 2002 Christopher Kohlhoff - - * ACEXML/parser/parser/Makefile.bor: - Changed library name for the Borland build to be consistent with the - UNIX build. - - * include/makeinclude/ace_flags.bor: - Added macros for the ACEXML Parser library. - - * ACEXML/examples/Makefile.bor: - * ACEXML/examples/SAXPrint/Makefile.bor: - Added Borland makefiles for the SAXPrint example. - -Mon Feb 18 20:16:27 2002 Douglas C. Schmidt - - * ace/Acceptor.cpp (make_svc_handler): - * ace/Connector.cpp (make_svc_handler): There doesn't seem to be - anypoint in *conditionally* assigning the Acceptor/Connector's - reactor to the Svc_Handler, so we'll just assign it... - -Mon Feb 18 18:41:33 2002 Steve Huston - - Integrated the following from the ACE 5.2 stream: - - Wed Feb 13 15:37:41 2002 Steve Huston - - * ace/Hash_Cache_Map_Manager_T.h: Added #include "ace/Synch.h" to - pick up ACE_Null_Mutex. - - * tests/Process_Manager_Test.cpp: Added #include "ace/Thread.h" to - pick up ACE_Thread::self (). - - * tests/Refcounted_Auto_Ptr_Test.h (new file): - * tests/Refcounted_Auto_Ptr_Test.cpp: Moved definition of Printer - from .cpp to .h so Visual Age C++ can find it when instantiating - templates. Also removes the compile warning where the compiler - warns that the test won't work... - - Tue Feb 12 21:59:42 2002 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: Added -qstaticinline - to CCFLAGS to tell compiler to generate inlined functions with - static scope instead of extern scope (how stupid is this?). - Removed error suppression options which should be unnecessary now. - - Sat Feb 9 18:34:59 2002 Steve Huston - - * examples/C++NPv1/Reactive_Logging_Server_Ex.h: Removed an extra - master_handle_set_.set_bit call. Thanks to Craig Perras - for reporting this. - - Sat Feb 9 13:49:44 2002 Steve Huston - - * ace/Hash_Map_With_Allocator_T.h: Added #include "ace/Synch.h" to - see the definition of ACE_Null_Mutex. - - * ace/config-all.h (ACE_RCSID): Make generated function static to - keep Visual Age C++ from complaining about the multiple definitions. - - Fri Feb 8 16:20:51 2002 Steve Huston - - * ace/config-aix-4.x.h: Removed #define ACE_TEMPLATES_REQUIRE_SOURCE - for Visual Age C++ 5. As it turns out, wherever the compiler sees - source and a template is referenced, it generates the template - class functions used. This is very bad for size as well as for - situations counting on only one such as ACE_Singleton. - - Also added support for explicit template instantiation with Visual - Age C++. If the preprocessor define __TEMPINC__ is not defined, - explicit instantiation is turned on. - - Mon Feb 4 17:21:39 2002 Steve Huston - - * ace/Singleton.h (ACE_TSS_Singleton): Added ACE_UNIMPLEMENTED_FUNCS - for assignment and copy ctor methods. This is necessary to allow - the *_SINGLETON_DECLARE macro, that explicitly instantiates a - template class on Win32, to compile clean when instantiating an - ACE_TSS_Singleton class. Thanks very much to Nanbor Wang for - direction on solving this problem. - - * ace/config-win32-msvc-6.h: Added ACE_NEEDS_FUNC_DEFINITIONS. This - avoids warnings when explicitly instantiating an entire class, as - with ACE_TSS_Singleton and *_SINGLETON_DECLARE, above. - - -Mon Feb 18 18:23:49 2002 Steve Huston - - * ace/Reactor.h: Clarified behavior with respect to remaining - queued notifications when end_reactor_event_loop() is called - or when the reactor instance is closed/deleted. - -Mon Feb 18 19:28:12 2002 Johnny Willemsen - - * ace/README: - * ace/Proactor.cpp: - * ace/SString.h: - * ace/Task_T.h: - * ace/Timer_Queue_Adapters.h: - * ace/config-win32-msvc-7.h: - * netsvcs/lib/Client_Logging_Handler.h: - * netsvcs/lib/Name_Handler.h: - * netsvcs/lib/TS_Clerk_Handler.h: - * netsvcs/lib/TS_Server_Handler.h: - - Made ACE compiling with the Microsoft Visual C++ 7 compiler. - Template classes cannot be exported when doing a dynamic build, so - removed some export macro's from template definitions. When a class - is derived from a class template then the class template must be - explicit instantiated and be exported. To make sure that we only do - this when a compiler supports this we introduced the new define - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT. Also vc++ 7 generates - now a warning when a class is exported is derived from a class that - is not exported. - - The following info was given by Microsoft on this: - The reason that a template can't be exported anymore is that it is - unlikely that anyone wants to export all specializations of a - class template. When B is a template and D is a class, the - construction 'class ACE_Export D : public B' should - give no problems, but unfornately there is a bug in the vc++ - compiler. - - That's why we now explicit export the template instantations in ace. - -Mon Feb 18 11:00:17 2002 Nanbor Wang - - * html/index.html: Added an entry for ACEXML document. - - * ace/OS.h: Removed the extern "C" link designator from the - typedef of ACE_Service_Object_Exterminator and the definition of - gobbler functions in ACE_FACTORY_DEFINE. They are not used - outside of a DLL so it's okay to have a mangled gobbler name. - Thanks to Doug for noticing this. - -Mon Feb 18 11:12:39 2002 Steve Huston - - * ace/Refcounted_Auto_Ptr.h: Improved Doxygenation of some comments. - -Mon Feb 18 10:45:00 2002 Craig Rodrigues - - * ace/QoS/QoS_Session_Factory.h: - Add new constant - ACE_QoS_Session_Factory::ACE_DEFAULT_QOS_SESSION. Give - ACE_QoS_Session_Factory::create_session() a default argument of - ACE_DEFAULT_QOS_SESSION. - - * ace/QoS/QoS_Session_Factory.cpp: - Set the value of ACE_DEFAULT_QOS_SESSION to ACE_RAPI_SESSION on - platforms with RAPI RSVP support. Set it to - ACE_GQOS_SESSION on Win32 platforms with GQoS support. - Otherwise, issue a compilation error, since these are the only - two QoS types supported currently. - - * 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: - Remove reference to ACE_RAPI_SESSION from invocations of - create_session(), leave it empty and choose default argument - instead. This will allow the examples to compile and run on - Win32. - -Mon Feb 18 08:07:59 2002 Douglas C. Schmidt - - * ace/String_Base.{h,i}: Added two new overloaded operators that - work on characters. Thanks to Martin Krumpolec - for contributing these patches. - -Mon Feb 18 13:05:12 2002 Johnny Willemsen - - * ace/config-all.h: - Added ACE_NEW_NORETURN macro. This macro is the same as ACE_NEW - but doesn't do a return when an out of memory error occured so that - the caller can do extra handling. - - * tests/New_fail_test.cpp: - Extended this test to test the new ACE_NEW_NORETURN macro. - -Mon Feb 18 01:45:07 2002 Christopher Kohlhoff - - * include/makeinclude/compiler.bor: - * include/makeinclude/make_flags.bor: - Added support for Borland C++Builder 6. - -Sun Feb 17 16:32:01 2002 Venkita - - * ACE version 5.2.2 released. - -Sun Feb 17 16:03:03 2002 Nanbor Wang - - * etc/acexml.doxygen: Fixed the output directory name for ACEXML. - -Fri Feb 15 10:50:26 2002 Venkita Subramonian - - * ace/Dynamic_Service.h: - Fixed compile error. Added forward declaration for - ACE_Service_Object. - -Thu Feb 14 19:10:04 2002 Douglas C. Schmidt - - * ace/Refcounted_Auto_Ptr.h: Make the rep_ protected rather - than private. Rodney Morris for - motivating this. - -Thu Feb 14 15:26:06 2002 Douglas C. Schmidt - - * ace/Dynamic_Service.i (instance): Fixed instance to use an - ACE_dynamic_cast() so that the vptr is set correctly. Thanks to - Bill Dyer for suggesting this. - -Thu Feb 14 16:15:50 2002 Balachandran Natarajan - - * COPYING: Updated copyright years. - -Thu Feb 14 11:25:39 2002 Nanbor Wang - - * ACEXML/docs/bugs.txt: - * ACEXML/docs/guidelines.txt: Updated document. - -Thu Feb 14 08:17:40 2002 Douglas C. Schmidt - - * ace/config-all.h: There was a subtle difference between the - ACE_NEW based on try/catch and a 0 pointer. The version based on - the fact that new can return 0 always sets the pointer to 0 when - a memory error occured. The version that is based on try/catch - the pointer wasn't set to 0. If the pointer had a different - value, the pointer stays at the old value and wasn't set to 0. - This is now fixed. Thanks to Peter van Merkerk - for noticing this and to Johnny - Willemsen for reporting it. - - * ace/Strategies_T.h: - * ace/Strategies_T.i: Allow the reactor of the Svc Handler to be - set to the reactor passed to the Creation Strategy. Thanks to - David Smith for motivating this. - -Thu Feb 14 01:14:40 2002 Nanbor Wang - - * include/makeinclude/ace_flags.bor: Updated ACE_XML_CFLAGS. - Thanks to Johnny Willemsen for reminding this. - -Thu Feb 14 01:01:10 2002 Nanbor Wang - - * ACEXML/ACEXML.dsw: - * ACEXML/common/XML_Common.dsp: - * ACEXML/examples/SAXPrint/SAXPrint.dsp: - * ACEXML/parser/debug_validator/Debug_Validator.dsp: - * ACEXML/parser/parser/Parser.dsp: - * ACEXML/tests/NamespaceSupport_Test.dsp: - * ACEXML/tests/Transcoder_Test.dsp: Updated base include directories. - -Thu Feb 14 00:20:39 2002 Nanbor Wang - - * Makefile: - * Makefile.bor: - * ACEXML/common/Attributes.h: - * ACEXML/common/AttributesImpl.cpp: - * ACEXML/common/AttributesImpl.h: - * ACEXML/common/Attributes_Def_Builder.cpp: - * ACEXML/common/Attributes_Def_Builder.h: - * ACEXML/common/CharStream.cpp: - * ACEXML/common/CharStream.h: - * ACEXML/common/ContentHandler.h: - * ACEXML/common/DTDHandler.h: - * ACEXML/common/DTD_Manager.cpp: - * ACEXML/common/DTD_Manager.h: - * ACEXML/common/DefaultHandler.cpp: - * ACEXML/common/DefaultHandler.h: - * ACEXML/common/Element_Def_Builder.cpp: - * ACEXML/common/Element_Def_Builder.h: - * ACEXML/common/EntityResolver.h: - * ACEXML/common/Env.cpp: - * ACEXML/common/Env.h: - * ACEXML/common/ErrorHandler.h: - * ACEXML/common/Exception.cpp: - * ACEXML/common/Exception.h: - * ACEXML/common/FileCharStream.cpp: - * ACEXML/common/FileCharStream.h: - * ACEXML/common/InputSource.cpp: - * ACEXML/common/InputSource.h: - * ACEXML/common/Locator.h: - * ACEXML/common/LocatorImpl.cpp: - * ACEXML/common/LocatorImpl.h: - * ACEXML/common/Makefile: - * ACEXML/common/NamespaceSupport.cpp: - * ACEXML/common/NamespaceSupport.h: - * ACEXML/common/SAXExceptions.cpp: - * ACEXML/common/SAXExceptions.h: - * ACEXML/common/Transcode.cpp: - * ACEXML/common/Transcode.h: - * ACEXML/common/Validator.cpp: - * ACEXML/common/Validator.h: - * ACEXML/common/XMLFilter.h: - * ACEXML/common/XMLFilterImpl.cpp: - * ACEXML/common/XMLFilterImpl.h: - * ACEXML/common/XMLReader.h: - * ACEXML/common/XML_Types.h: - * ACEXML/examples/SAXPrint/Makefile: - * ACEXML/examples/SAXPrint/Print_Handler.h: - * ACEXML/examples/SAXPrint/SAXPrint_Handler.h: - * ACEXML/examples/SAXPrint/main.cpp: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.h: - * ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp: - * ACEXML/parser/debug_validator/Debug_DTD_Manager.h: - * ACEXML/parser/debug_validator/Debug_Element_Builder.cpp: - * ACEXML/parser/debug_validator/Debug_Element_Builder.h: - * ACEXML/parser/debug_validator/Element_Tree.cpp: - * ACEXML/parser/debug_validator/Element_Tree.h: - * ACEXML/parser/parser/Entity_Manager.cpp: - * ACEXML/parser/parser/Entity_Manager.h: - * ACEXML/parser/parser/Makefile: - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/parser/parser/Parser.h: - * ACEXML/tests/Makefile: - * ACEXML/tests/NamespaceSupport_Test.cpp: - * ACEXML/tests/Transcoder_Test.cpp: - * etc/acexml.doxygen: Renamed directory XML to ACEXML and moved the - base directory to include XML related files to $(ACE_ROOT). - Thanks to Johnny Tucker for the - suggestion. - -Wed Feb 13 17:42:32 2002 Balachandran Natarajan - - * ace/Configuration.cpp (operator=): Fixed a warning in g++ - builds. Stupid mistake on my part :(. - -Wed Feb 13 12:45:06 2002 Balachandran Natarajan - - * ace/Configuration.cpp: - * tests/Config_Test.cpp (iniCompare): Fixed memory leaks. Thanks - to Johnny willemson for providing the patches. - -Wed Feb 13 11:46:54 2002 Nanbor Wang - - * XML/parser/parser/Makefile: Added a library (-lACEXML) to link - to. Thanks to John Michael Zorko for - reporting this. - -Tue Feb 12 20:30:53 2002 Douglas C. Schmidt - - * ace/WIN32_Proactor.cpp (handle_events): When the proactor - was called by the reactor in handle_signal() this method should - loop till all events are done. But the loop never got executed - twice because handle_events returned 1 on success and the loop - exits. To catch more than one notifications handle_events - should be called again. Even if the loop is executed twice and - no more events are outstanding handle_events should return 0 and - not -1 when calling with timeout 0. Calling - GetQueuedCompletionStatus with timeout value 0 returns FALSE and - errno "ERROR_SUCCESS". This check has to be added to - handle_events and 0 has to be returned. Thanks to Hartmut Quast - for reporting this. - -Tue Feb 12 16:18:59 2002 Ossama Othman - - * tests/Proactor_Test.cpp (logflag): - * tests/TP_Reactor_Test.cpp (logflag): - - Removed these unused global variables. Fixes an unused variable - warning. - -Tue Feb 12 11:50:18 2002 Nanbor Wang - - * bin/pippen.pl: Applied a patch from "the source" to fix a - problem in determining project dependencies. - -Tue Feb 12 09:37:56 2002 Ossama Othman - - * ACE-INSTALL.html: - - Corrected EGCS documentation. Native exception support is now - the default. [Bug 1149] - - G++ 2.7.x is no longer supported. Updated accordingly. - -Mon Feb 11 16:31:04 2002 Ossama Othman - - * bin/make_pretty.pl (is_warning): - - Do not flag Fuzz's "#pragma warning(push)/(pop)" test title as a - warning. - -Mon Feb 11 13:49:35 2002 Ossama Othman - - * bin/fuzz.pl (check_for_push_and_pop): - - New test that verifies the number of #pragma warning(push) - pragmas matches the number of #pragma warning(pop) pragmas. - - * examples/IPC_SAP/SSL_SAP/SSL-client.cpp (shared_client_test): - * examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp - (shared_client_test): - - Do not convert the buffer length to network byte order when - allocating the buffer. Fixes excessive memory allocation. This - was apparently a cut-n-paste bug. Thanks to M Schulze - . - - * THANKS: - - Added M Schulze to the Hall of Fame. - -Mon Feb 11 05:42:02 2002 Balachandran Natarajan - - * ace/Connector.h: Fixed a typo in the coments. Thanks to Miljenko - Norsic (ETK) for reporting - this. - -Sun Feb 10 16:28:30 2002 Douglas C. Schmidt - - * ace/config-macosx.h - * ace/config-freebsd.h - * ace/config-freebsd-pthread.h - * ace/TTY_IO.cpp: - * TODO: Removed the ACE_USES_HIGH_BAUD_RATES macro since it no longer - seems to be necessary. Thanks to Olli Savia for - reporting this. - - * ace/TTY_IO.cpp: Replaced the two strcmp() calls with one - strcasecmp(). Thanks to Olli Savia for reporting - this. - -Sat Feb 9 15:17:45 2002 Balachandran Natarajan - - * bin/make_release: Changed the path of gv as a new version of GV - was installed on deuce.doc. The old version had less colors and - it started mapping them to a smaller range. The graphs looked - very ugly. The new version fixes the problem and hence a change - in path. - -Fri Feb 8 22:56:29 2002 Balachandran Natarajan - - * ace/Log_Msg.cpp (log): Fixed a warning in TRU 64 builds. - -Fri Feb 8 14:54:21 2002 Douglas C. Schmidt - - * apps/JAWS2/Makefile (LDFLAGS): - * apps/JAWS2/HTTPU/Makefile (LDFLAGS): Fixed some makefile bugs so - that this stuff compiles on AIX. Thanks to Steve Ige - for reporting this. - -Thu Feb 7 18:13:03 2002 Douglas C. Schmidt - - * tests/ACE_Init_Test.cpp (wait_and_kill_dialog): Replaced the call - to EndDialog() with EndModalLoop() to fix a race condition. - Thanks to Petru Marginean for reporting this. - -Fri Feb 8 14:02:06 2002 Balachandran Natarajan - - * THANKS: Added Marco Kranawetter - to the hall of fame. - -Fri Feb 08 11:24:36 2002 Nanbor Wang - - * ace/String_Base.h: - * ace/Task_T.h: Removed the ACE_Export decl from ACE_Task and - ACE_String_Base. They were added as work-aronds for a VC7's - internal compiler bug but didn't seem to solve the problem. - Thanks to Patrick Bennett , Johnny, and - Christian Veleba for reporting - this. - -Thu Feb 7 16:19:39 2002 Steve Huston - - * ace/config-all.h: Define new macros, ACE_nothrow and ACE_nothrow_t, - to decide which variety of nothrow is used in new (nothrow). At - this point, HP aC++ is the only platform defined to use this - feature, so that's the only section that defines it. - - * ace/Svc_Handler.(cpp h): - * examples/Shared_Malloc/test_persistence.cpp: Use the new - ACE_nothrow[_t] macros in overridden operator new. - -Thu Feb 7 14:11:31 2002 Douglas C. Schmidt - - * ace/Singleton.cpp (close): Fixed the implementation so that the - ACE_Unmanaged_Singleton's internal singleton point is reset to 0 - after cleanup to avoid double-deletion. Thanks to Marc Walrave - for this fix. - -Thu Feb 7 07:52:47 2002 Douglas C. Schmidt - - * ace/Activation_Queue.{h,i}: Added get/set methods to access/update - the underlying ACE_Message_Queue so users can call methods on - the queue directly if necessary. Thanks to Timothy Kilbourn - for reporting this. - -Tue Feb 5 07:25:49 2002 Douglas C. Schmidt - - * tests/TP_Reactor_Test.cpp: Improved the comments to clarify the - differences between this test and the Thread_Pool_Reactor_Test.cpp. - Thanks to Alex Libman for explaining this. - -Thu Feb 7 08:16:24 2002 Oliver Kellogg - - * ACE-INSTALL.html: Document the include_env=1 make switch. - - * docs/exceptions.html: Replaced the "Transition from TAO_TRY - to ACE_TRY" section with "Transition from ACE_TRY_ENV usage - to ACE_ENV_ARG". - -Wed Feb 6 06:57:35 2002 Balachandran Natarajan - - * tests/run_test.lst: Disabled TP_Reactor_Test as the test is - hanging. - -Tue Feb 5 11:59:00 2002 Craig Rodrigues - - * tests/TP_Reactor_Test.cpp (disable_signal): Eliminate unused - arguments warning on Win32 platforms. - -Mon Feb 4 16:22:20 2002 Craig Rodrigues - - * ace/OS.h: Include instead of if - ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB is defined. - -Mon Feb 4 19:58:03 2002 Boris Kolpackov - - * ace/Log_Msg.cpp: - - Fixed minor bug in what's just commited before. - Thanks to Craig Rodrigues - for pointing it out. - -Mon Feb 4 14:11:14 2002 Boris Kolpackov - - * ace/Log_Msg.h: - * ace/Log_Msg.cpp: - - Added ability to install custom backend which is a - per-process entity as opposite to callback which is - a per-thread not-inheritable entity. - -Sun Feb 3 17:59:36 2002 Krishnakumar B - - * ace/config-sunos5.5.h (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION): - - Explicitly defined the above macro as this is needed for SunOS - gcc to work. This was inside a __SUNPRO_CC #ifdef. I missed that - in my previous change. This should fix the builds under SunOS - gcc. - -Sun Feb 3 18:32:29 2002 Craig Rodrigues - - * tests/TP_Reactor_Test.cpp: Use size_t instead of long - and int for index_ and sessions_ in order to eliminate - more compiler warnings. - -Sun Feb 3 09:20:04 2002 Douglas C. Schmidt - - * tests/TP_Reactor_Test.cpp: Fixed a bunch of warnings. Thanks - to Venkita for reporting this. - -Sun Feb 3 08:22:28 2002 Venkita Subramonian - - * tests/Makefile: - Regenerated makefile to create dependencies for TP_Reactor_Test. - -Sun Feb 3 08:05:12 2002 Venkita Subramonian - - * tests/TP_Reactor_Test.dsp (RSC): - Regenerated the file in MSVC++. - -Sun Feb 3 11:16:12 2002 Johnny Willemsen - - * tests/TP_Reactor_Test.cpp: - Fixed compile error in BCB unicode build - -Sat Feb 2 07:45:51 2002 Douglas C. Schmidt - - * tests/run_test.lst: - * tests/TP_Reactor_Test.dsp: - * tests/Makefile.bor: - * tests/Makefile: Added the TP_Reactor_Test. - - * tests/TP_Reactor_Test.cpp: Added another test of the ACE_TP_Reactor. - Thanks to Alex Libman for contributing this. - - * ace/config-irix6.x-common.h: IRIX 6.5 supports AIO, so we'll - enable these features. Thanks to Alex Libman for validating - this. - - * ace/Select_Reactor_T.cpp: Fixed work_pending() so that it takes - into account pending timers that need to be expired. Thanks to - Russ Noseworthy for reporting this. - - * ace/Select_Reactor_T.cpp: Simplified the logic for calculating - timeouts in wait_for_multiple_events(). - - * ace/Process.{h,i,cpp}: When using ACE_Process_Options with the - inherit_environment set to off, i.e., ACE_Process_Options opts - (0), ACE_Process::spawn() was improperly setting the environment - in the child's process after fork (), before exec (). Changed - ACE_Process::spawn to check for the inherit_environment flag, - and to use the execve () call instead of execvp () if - inherit_environment is false. Thanks to James Risinger - for contributing this fix. - - * ace/Process.{h,i}: Added "const" to the various accessor methods. - -Sat Feb 2 00:01:36 2002 Venkita Subramonian - - * ace/config-sunos5.6.h: - Added missing #endif. - -Fri Feb 1 23:42:03 2002 Venkita Subramonian - - * ace/config-all.h: - Removed extra ). - -Fri Feb 1 21:08:37 2002 Steve Huston - - * tests/Framework_Component_Test.icc: - * tests/Vector_Test.icc: New Visual Age C++ test configurations. - - * tests/tests.icp: Add new test configurations to the project. - -Fri Jan 1 19:33:49 2002 Steve Huston - - * ace/Vector.(h i cpp): Removed 'const' from the 2nd template - argument (size_T DEFAULT_SIZE). A size_t is always const, - and having const there causes errors from HP aC++. I'm not sure - if they're completely legit, but Stroustrup 3rd Ed says the - template argument is const anyway... if this is a problem, - please let me know. - -Fri Feb 1 18:53:44 2002 Steve Huston - - * ace/ace.icc: Added Framework_Component.(h cpp) to the files list. - -Fri Feb 1 10:19:46 2002 Jeff Parsons - - * Thread_Manager.h: - - Removed extra '*/'. - -Fri Feb 01 00:00:12 2002 Nanbor Wang - - * ace/Task.h: - * ace/Thread_Manager.h: Added more explanation on how to use the - argument. Thanks to Petr Shelomovsky - for motivating the change. - -Thu Jan 31 19:18:37 2002 Steve Huston - - * ace/NT_Service.{h cpp}: To avoid race condition at shutdown time, - moved the call to report_status(SERVICE_STOPPED, 0) from the - open() method to a new override of the fini() method. Setting - status to SERVICE_STOPPED frees up Windows to do its own shutdown - for the service, and that can't be allowed to commence until all - ACE_NT_Service things are done. Thanks to Zoran Cetusic - , Patrick Bennett and Felix Wyss from - Interactive Intelligence, Inc. for diagnosing this problem and - sending in a fix. - - * THANKS: Added Zoran Cetusic, Patrick Bennett, and Felix Wyss to - the Hall of Fame. - -Thu Jan 31 17:00:52 2002 Balachandran Natarajan - - * ace/config-all.h: Need to include with all versions of - SunCC compiler and not just CC 5.0, when the compiler is using - compat mode 4. - * ace/config-sunos5.6.h: Need to define ACE_LACKS_ACE_IOSTREAM - when higher versions of CC are used with compat mode 4 and - such. - - Thanks to Tim Rydell for the fixes. - - * THANKS: Added Tim Rydell to the hall of fame. - -Thu Jan 31 17:21:49 2002 Steve Huston - - * ace/Trace.cpp (constructor and destructor): Do not attempt - trace output if ACE has not been initialized. There is too - much not set up yet to bother trying. If you are on a platform - with ACE_HAS_NONSTATIC_OBJECT_MANAGER (such as Windows) and you - really, really need tracing in static objects, you should - try #define ACE_HAS_NONSTATIC_OBJECT_MANAGER 0 in your config.h - along with #define ACE_NTRACE 0. Beware, though, there are - crocodiles lurking there - platforms defined to use non-static - object manager are that way for good reason. - - Thank you to Shmulik Regev for reporting this. - -Thu Jan 31 13:32:07 2002 Nanbor Wang - - * XML/common/XML_Common.dsp: Fixed the LIB path to use relative - path. - -Thu Jan 31 19:18:16 2002 Oliver Kellogg - - * include/makeinclude/wrapper_macros.GNU: - Corrected placement of the include_env switch. - include_env=1 is only sensible in combination with - exceptions=1. NB: The include_env switch is only - intended to facilitate transition to the ACE_ENV_ARG - macros and should not be used for new applications. - There will be unused-variable warnings when using this - build configuration. - -Thu Jan 31 11:57:07 2002 Nanbor Wang - - * XML/parser/debug_validator/Debug_Attributes_Builder.cpp: - * XML/parser/debug_validator/Debug_Element_Builder.cpp: - Temporarily removed unused arguments. - - * XML/common/FileCharStream.cpp (get): Made sure the character - read from the input file was converted to ACEXML_Char type - correctly. Casted the read XML_Char before comparing it to - 'EOF'. - -Thu Jan 31 13:06:12 2002 Boris Kolpackov - - * THANKS: - - Added Koushik Banerjee to the hall of fame. - -Wed Jan 30 22:41:39 2002 Krishnakumar B - - * include/makeinclude/platform_linux.GNU (CXX_VERSION): - - Made it work when someone wants to turn off the implicit - template instantiation. Care should be taken to #define - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION in config.h also. - Surprisingly the code compiles without that also... - -Wed Jan 30 17:22:49 2002 Steve Huston - - * ace/Process.cpp (wait (const ACE_Time_Value&, ACE_exitcode *)): - * ace/Process_Manager.cpp (wait (pid_t, const ACE_Time_Value&, - ACE_exitcode *)): - The mechanism for waiting up to a specified time for a child - process to exit has been replaced. Replaces the fix from: - Fri Jan 25 19:58:41 2002 Steve Huston - and makes unnecessary any further work from: - Sat Jan 26 21:41:39 2002 Steve Huston - - Both classes now do a timed wait for a child by doing an - ACE_OS::sleep, counting on being interrupted if a SIGCHLD - is delivered. In ACE_Process_Manager when a reactor hasn't - been specified, and always in ACE_Process, a temporary - SIGCHLD handler is installed for the duration of the wait. - This is necessary because the default SIGCHLD action on - POSIX (and holds true for most non-Win32) is SIG_IGN, and - SIGCHLD is not generated when a child process exits. - Therefore, a handler is installed to force the SIGCHLD. - It's not needed in ACE_Process_Manager when a reactor is in - place because the reactor already has a handler for SIGCHLD. - -Wed Jan 30 15:11:49 2002 Krishnakumar B - - * include/makeinclude/platform_linux.GNU (CXX_VERSION): - * ace/config-g++-common.h: - - Turned off explicit template instantiation with gcc under Linux. - The specific versions are 2.95.x, 2.96, 3.0.x (3.x). Added a - flag implicit_templates to tweak the behaviour from the - platform_macros.GNU file. - - The combination of the compiler and binutils seems to give a - nice reduction in the footprint. - -Wed Jan 30 16:00:39 2002 Steve Huston - - * ace/Process_Manager.cpp (register_handler): Replaced ECHILD with - EINVAL if the pid is not found. Probably a more accurate - assessment of the situation, and should compile clean on WinCE. - -Wed Jan 30 13:50:17 2002 Douglas C. Schmidt - - * docs/index.html: Fixed the ACE-inheritance.pdf document so - it isn't gzipped. Thanks to Michael Searles - for reporting this. - -Wed Jan 30 09:28:12 2002 Johnny Willemsen - - * XML/parser/debug_validator/Debug_Attributes_Builder.cpp: - * XML/parser/debug_validator/Debug_DTD_Manager.cpp: - * XML/parser/debug_validator/Debug_Element_Builder.cpp: - * XML/parser/debug_validator/Element_Tree.cpp: - Added missing ACE_LIB_TEXT. This fixes the BCB unicode build errors - -Tue Jan 29 20:11:21 2002 Balachandran Natarajan - - * etc/*.doxygen (EXPAND_AS_DEFINED): Added ACE_CACHE_MAP_MANAGER - to the list in EXPAND_AS_DEFINED. Thanks to Don Hinton - for the suggestion. - -Tue Jan 29 19:36:24 2002 Balachandran Natarajan - - * bin/make_release: The whole release process has been moved to - Linux box. This is because the sun machines at WashU were having - problems and they are not dependable. The following are the list - of changes made - - - All the path related stuff have been changed ie. instead of - using /pkg/gnu tools, we use native tools on Linux now. - - - The gnu suffixes to many of the tools have been removed. - - - Most of the path to the tools have been hardcoded in the PATH - environment variabe. - - - Tools that were missing have been loaded on 3 main Linux boxes - at WashU including Graphviz and doxygen. - - - A beta cannot be cut from a sun box. - - - The script will recommend cutting a beta from deuce.doc. - - The script has been tested with a dummy release. - -Tue Jan 29 16:01:54 2002 Ossama Othman - - * bin/fuzz.pl (check_for_missing_rir_env): - - Check for ACE_ENV_ARG_PARAMETER instead of - TAO_ENV_ARG_PARAMETER. The latter is deprecated. - -Tue Jan 29 20:47:24 2002 Oliver Kellogg - - * docs/exceptions.html: Document the new ACE_ENV_ macros. - - * bin/subst_env.pl: Transform to ACE_ENV_ instead of TAO_ENV_. - -Tue Jan 29 08:39:24 2002 Oliver Kellogg - - * ace/CORBA_macros.h: - Added ACE_ENV_ARG macros to replace the TAO_ENV_ARG macros - defined in TAO/tao/orbconf.h. All exception related macros - are now defined in ace/CORBA_macros.h, and the TAO_ENV_ARG - macros will soon be deprecated. - - * include/makeinclude/wrapper_macros.GNU: - Added the include_env switch for compatibility with the - exception handling use before TAO 1.2.2. - -Tue Jan 29 08:17:12 2002 Johnny Willemsen - - * include/makeinclude/ace_flags.bor: - Added compiler flags for new cosevent orbsvcs test library CECTEST - Added compiler flags for new notify orbsvcs test library NotifyTests - -Mon Jan 28 17:44:51 2002 Steve Huston - - * ace/Process_Manager.cpp (wait): When waiting for a non-specific - process, specify -1 pid for waitpid(). This is necessary because - of Fri Jan 25 19:58:41 2002 Steve Huston - change to not alter the process group ID when ACE_Process_Manager - spawns a process. - Timed waits for a process still don't work on non-Win32, but - this fix corrects the failed wait with errno == ECHILD. - -Mon Jan 28 12:16:28 2002 Carlos O'Ryan - - * bin/auto_run_tests.lst: - Removed EC_Basic and Event_Latency tests from nightly builds, I - left them there by mistake when I took them out of the - repository (around December, 25th 2001) - -Mon Jan 28 13:20:32 2002 Nanbor Wang - - * XML/common/AttributesImpl.cpp: Removed a bunch of inline - designators. - -Sun Jan 27 22:18:50 2002 Nanbor Wang - - * bin/msvc_auto_compile.pl: Projects in XML subdirectory are - interdependent. List out the order they should be built - explicitly. - -Sun Jan 27 12:48:48 2002 Ossama Othman - - * bin/auto_run_tests.lst - * bin/performance_stats.sh: - - Updated in accordance with the new TAO "Latency" performance - test organization. - -Sun Jan 27 12:08:45 2002 Nanbor Wang - - * XML/common/Transcode.h (ACEXML_Transcoder): Improved the - documentation. - - The followings fixed the Tru64 warnings/errors. - - * XML/common/AttributesImpl.i (operator): - * XML/common/Env.i: Reordered inline functions. - - * XML/tests/Transcoder_Test.cpp: Removed an unused argument. - - * XML/common/Attributes_Def_Builder.h: Added inclusion of - "ace/Auto_Ptr.h". - - * XML/examples/SAXPrint/SAXPrint_Handler.cpp: - * XML/examples/SAXPrint/Print_Handler.cpp: Added inclusion of - "ace/Log_Msg.h". - -Sun Jan 27 15:03:12 2002 Johnny Willemsen - - * Makefile.bor: - Build the XML library with BCB - - * XML/parser/Makefile.bor: - Added debug_validator - - * XML/parser/debug_validator/Makefile.bor: - Added BCB makefile - -Sat Jan 26 19:02:49 2002 Ossama Othman - - * ace/Process_Manager.cpp (register_handler): - - Corrected code that always returned -1. Code that should only - have been run on error was always run since it was outside of an - "if block." Curly braces are a good thing (they were missing). - -Sat Jan 26 21:41:39 2002 Steve Huston - - * ace/Process_Manager.cpp (wait): Fixed compiler warning on - Linux about unused wait_until. This fix removes the ability - to spin around the 'for' loop waiting for signals multiple - times with the timeout decreasing to account for wait time. - Will have to come back to restore this functionality later. - -Sat Jan 26 14:40:12 2002 Johnny Willemsen - - * include/makeinclude/ace_flags.bor: - Added compiler and linker flags for new XML library - - * XML/common/Makefile.bor: - * XML/parser/parser.Makefile.bor: - * XML/Makefile.bor: - * XML/parser/Makefile.bor: - * XML/tests/Makefile.bor: - Added BCB makefiles for the new XML library. - -Fri Jan 25 19:58:41 2002 Steve Huston - - * ace/Process_Manager.cpp (wait(pid_t, const ACE_Time_Value &, - ACE_exitcode *status)): If platform offers sigtimedwait, use it - instead of setting ualarm and then doing sigwait. Once ualarm - is set, it will fire, even if this method has returned. This - causes Solaris processes to die on SIGALRM. - - Also, do not play with the process group ID by default. It's - not needed for doing normal signal management by most processes. - If processes really have a need to change or set a new process - group, they need to do it explicitly by using ACE_OS::setpgid() - or by setting a process group ID in an ACE_Process_Options object - when spawning processes. - - * tests/Process_Manager_Test.cpp: Added a bit more diagnostic info. - -Fri Jan 25 18:29:37 2002 Steve Huston - - * ace/config-aix-4.x.h: Removed ACE_HAS_SIGTIMEDWAIT. It compiles, - but returns ENOSYS at run time. - - * ace/config-aix5.1.h: Added ACE_HAS_SIGTIMEDWAIT. - -Fri Jan 25 15:36:40 2002 Nanbor Wang - - * ace/ace_dll.dsp: Removed /version flags from the project since - they have been taken care of by ace.rc file. Thanks to Ossama - for pointing it out. - -Fri Jan 25 14:45:00 2002 Venkita Subramonian - - * bin/auto_run_tests.lst: - Added Two_Objects test to the list. - -Fri Jan 25 14:40:15 2002 Nanbor Wang - - * XML/common/Exception.cpp: - * XML/common/NamespaceSupport.cpp: - * XML/common/SAXExceptions.cpp: - * XML/parser/parser/Parser.cpp: Moved the initialization of static - members before the inclusion of inline files to avoid - compilation erros on Borland compiler. Thanks to Johnny - Willemsen for figuring this out. - -Fri Jan 25 14:31:06 2002 Nanbor Wang - - * XML/common/NamespaceSupport.cpp: - * XML/parser/parser/Parser.cpp: Fixed several KCC warnings. - -Fri Jan 25 12:01:14 2002 Nanbor Wang - - The following changes fixed SunCC5.1 compilation errors. - - * XML/common/Makefile: - * XML/parser/parser/Makefile: - * XML/tests/Makefile: - * XML/examples/SAXPrint/Makefile: Removed extra spaces for -I - flags. - - * XML/common/Attributes_Def_Builder.h: Removed a redundant comma. - - * XML/common/NamespaceSupport.i: Changed - ACE_TEMPLATE_METHOD_SPECIALIZATION to - ACE_TEMPLATE_SPECIALIZATION. - - * XML/tests/NamespaceSupport_Test.cpp: String literals needed to - be assigned to const char *. - -Fri Jan 25 09:42:12 2002 Ossama Othman - - * ace/ace_dll.dsp: - - Corrected inconsistency in the DLL minor version. The correct - minor version for the ACE 5.2 series is "2," not "1." - -Fri Jan 25 11:21:28 2002 Nanbor Wang - - * bin/msvc_auto_compile.pl: Added XML into the list of auto build - targets. - -Fri Jan 25 00:37:00 2002 Douglas C. Schmidt - - * We now have 1,400 contributors to the ACE+TAO software. Yow! - -Thu Jan 24 17:49:46 2002 Balachandran Natarajan - - * ace/CDR_Stream.i: Fixed the check for the length within - ACE_InputCDR::read_*_array (). The method was checking just for - length passed in, which happens to be the number of elements in - the array, instead of the number of bytes necessary for the - elements. Thanks to William R Volz for - reporting this. - - * THANKS: Added William Volz to the hall of fame. - -Thu Jan 24 18:31:49 2002 Steve Huston - - * tests/Process_Manager_Test.cpp: Better diagnostics added. - -Thu Jan 24 15:14:52 2002 Nanbor Wang - - * ace/Lib_Find.cpp (ldfind): Restored previously removed Win32 - code and re-organized macros so we wouldn't upset CE builds. - -Thu Jan 24 14:53:38 2002 Nanbor Wang - - * bin/generate_doxygen.pl: - * etc/acexml.doxygen: Added the doxygen config file for XML - subdirectory. - - * Makefile: Added XML subdirectory into the lists to be compiled - and be included in the release. - - * XML/*: Merged in the XML parser code. - -Thu Jan 24 10:14:47 2002 Nanbor Wang - - * ace/ace_wchar.h: Added the definition for ACE_TEXT_SearchPath. - - * ace/Lib_Find.cpp (ldfind): Fixed UNICODE and Fuzz builds - errors. Thanks to Johnny Willemsen for - the fix. - -Wed Jan 23 16:48:54 2002 Nanbor Wang - - * ace/Lib_Find.h: - * ace/Lib_Find.cpp (ldfind): Change to use Win32 API SearchPath to - search for the target DLL and updated the document for ldfind in - header file. Thanks to Eugene Alterman - for submitting the patch. - -Wed Jan 23 14:01:32 2002 Ossama Othman - - * ace/config-lynxos.h (ACE_LACKS_INET_ATON): - - LynxOS does not implement the inet_aton() function. - -Wed Jan 23 16:37:52 2002 Steve Huston - - * ace/NT_Service.cpp (insert): If the CreateService call fails, - be sure to save the error value before making another Win32 call - that will smash it. Thanks to Kelly Hickel - for reporting this. - Also ACE-ified the source better. - - * examples/NT_Service/main.cpp: Added some ACE_ERROR output if - operations requested from the command line fail. - -Wed Jan 23 16:14:43 2002 Boris Kolpackov - - * include/makeinclude/platform_sunos5_sunc++.GNU - - Added work around for famous Sun CC "pure virtual function called" - bug. Unfortunately this involves introduction of yet another #define. - See TAO/tao/ValueBase.h for more information. - -Tue Jan 22 21:27:25 2002 Balachandran Natarajan - - * ace/ace_dll.vcp: Add Frameork_Component.* to the builds. Thanks - to Venkita for pointing it out. - -Tue Jan 22 17:42:39 2002 Steve Huston - - * ace/NT_Service.(h cpp): Added two new methods: - void capture_log_msg_attributes (void): Grabs a copy of the - calling thread's ACE_OS_Log_Msg_Attributes to facilitate - inheritance of the logging attributes in the service thread. - void inherit_log_msg_attributes (void): Called in a service - thread, inherits the main thread's logging attributes. - Modified the ACE_NT_SERVICE_RUN macro to capture the main - thread's logging attributes before starting the service control - dispatcher. Modified the ACE_NT_SERVICE_DEFINE macro to call - inherit_log_msg_attributes if the ACE_NT_Service object for - the service was set up before the thread started. - Fixes Bugzilla # 82. - - * examples/NT_Service/main.cpp: - * examples/NT_Service/ntsvc.cpp: Now writes a log file in the current - working directory which should have messages from both main and - service threads in it. - -Tue Jan 22 15:19:29 2002 Nanbor Wang - - * ace/DLL.cpp: Changed to invoke this->open() in the - constructor. Thanks to Eugene Alterman - for motivating this. - -Mon Jan 21 23:27:03 2002 Nanbor Wang - - * ace/OS.h: Reordered main redefinition macros so that it actually - passed wchar argv to main when UNICODE is defined. - -Mon Jan 21 10:01:34 2002 Frank Hunleth - - * bin/auto_run_tests.lst: - Added MIOP unit tests. - -Mon Jan 21 03:00:14 2002 Ossama Othman - - * ace/Framework_Component.cpp (register_component): - - Removed debugging statements that always printed text. - -Mon Jan 21 07:45:12 2002 Johnny Willemsen - - * ace/Framework_Component.cpp: - Fixed fuzz error - -Mon Jan 21 00:13:42 2002 Christopher Kohlhoff - - * ace/streams.h: - Workaround for Borland C++ 5.5.1 bug we have now just hit. - -Sun Jan 20 21:42:53 2002 Balachandran Natarajan - - * ace/Framework_Component.cpp: - * ace/Framework_Component_T.cpp: Fixed fuzz errors. - -2002-01-20 Oliver Kellogg - - * bin/subst_env.pl: New script to ease the transition to the - TAO_ENV_ARG macros defined in TAO/tao/orbconf.h. - -Sun Jan 20 12:38:28 2002 Balachandran Natarajan - - * tests/Framework_Component_Test.dsp: New dsp file for the test. - * tests/tests.dsw: Added the above test to the workspace. - -Sun Jan 20 12:25:28 2002 Balachandran Natarajan - - * ace/Framework_Component.h: Removed the definition of the - default constructor (in ACE_UNIMPLEMENTED_FUNC definition). The - other private constructor with a default argument tends towards - a default constructor and VC++ signals a multiple definition - error. Not sure how g++ didnt signal this one. - - * ace/Framework_Component_T.h: #include'd Framework_Component.h - * ace/Framework_Component_T.cpp: Added a #ifndef around the file. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added the Framwork_Component* files to the - project file. - -Sun Jan 20 10:40:28 2002 Nanbor Wang - - * tests/Vector_Test.dsp: - * tests/tests.dsw: Added a new project for Vector_Test. - -Sun Jan 20 16:25:12 2002 Johnny Willemsen - - * ace/Makefile.bor: - Added new Framework_Component - - * tests/Makefile.bor: - Added new Framework_Component_Test - -Sun Jan 20 00:00:30 2002 UTC Don Hinton - - * ace/Vector_T.cpp (dump): Commented out the contents of this - function for the time being. It assumed that the element - was an object with a dump() method, which won't always be - the case. - - * tests/Vector_Test.cpp: Changed a few data types from signed - to unsigned, size_t, to get rid of compiler warnings. - -Sat Jan 19 17:29:50 2002 Douglas C. Schmidt - - * ace/Vector_T.cpp (dump): Fixed problems with this method. Thanks - to Don Hinton for reporting this. - - * tests/Vector_Test.cpp: Changed the typedef of DATA from int to - size_t to avoid "type mismatch" compiler warnings. Thanks to - Don Hinton for reporting this. - -Sat Jan 19 22:30:26 UTC 2002 Don Hinton - - * apps/JAWS2/JAWS/Hash_Bucket_T.h: - * apps/JAWS2/JAWS/Assoc_Array.h: Added missing keyword "class" to - friend declarations. - - * ace/SString.cpp: Removed unneeded include of Service_Config.h. - - * ace/Service_Config.{h|cpp}: - * examples/Connection/misc/Connection_Handler.cpp: - - Removed static methods from ACE_Service_Config that delegated to - ACE_Reactor::instance(), and fixed a few instances where they were - still called. - - * ace/Object_Manager.cpp: - * ace/Service_Config.cpp: - * ace/Proactor.cpp: - * ace/Reactor.cpp: - - Added call to instance() methods that registers the singleton with - the new ACE_Framework_Repository so it can handle destruction, and - replaced explicit references to ACE_Reactor and ACE_Proactor with - calls to ACE_Framework_Repository. - - * ace/Framework_Component.{h|inl|cpp}: - * ace/Framework_Component_T.{h|inl|cpp}: - * ace/Makefile: - * tests/Framework_Component_Test.cpp: - * tests/Makefile: - * tests/run_test.lst: - - Added ACE_Framework_Repository to manage ACE_Framework_Component's, - e.g., singletons like ACE_Reactor or ACE_Proactor. It uses - External Polymorphism obviating any interface changes. The - components register themselves with repository in their instance - methods. This allows the Object_Manager and Service_Config to - manage these components without having to know about them a priori. - - This was needed to reduce footprint for applications like TAO that - don't need to use all the available components, e.g., ACE_Proactor. - -Sat Jan 19 10:23:39 2002 Douglas C. Schmidt - - * ace/Makefile (TEMPLATE_FILES): - * tests/Makefile.bor: - * tests/Makefile: - * tests/run_test.lst: - * ace/Vector_T.{h,i,cpp}: - * tests/Vector_Test.cpp: Added support for the new ACE_Vector to - the appropriate places. This vector behaves like the STL - vector. Thanks to Gonzo and Craig Ching for contributing this. - - * ace/Future_Set.h: Updated the documentation to explain how - various features work better. Thanks to Johnny Tucker for - contributing this. - -Fri Jan 18 19:09:41 2002 Steve Huston - - * tests/run_test.lst: Re-enabled Process_Manager_Test for all but - Chorus and VxWorks. Could not find a reason it was disabled. - Also enabled Process_Mutex_Test on Win32. - -Fri Jan 18 16:44:29 2002 Steve Huston - - * ace/ace.icc: Added Reactor_Notification_Strategy.(h cpp) sources. - - * ace/Reactor_Notification_Strategy.cpp: Fixed ACE_RCSID to refer to - Reactor_Notification_Strategy, not Strategies. - - * tests/Get_Opt_Test.icc: - * tests/INET_Addr_Test.icc: New Visual Age C++ configs for these tests. - - * tests/tests.icp: Added Get_Opt_Test.icc and INET_Addr_Test.icc - -Fri Jan 18 12:56:36 2002 Douglas C. Schmidt - - * ace/Log_Msg.cpp (init_backend): Added support for SysLog on platforms - that don't lack it. Thanks to Alexei I. Adamovich - for reporting this fix. - -Fri Jan 18 10:29:06 2002 Ossama Othman - - * ace/Service_Config.h (process_file): - * ace/Service_Config.cpp (process_directives, process_file): - - Factored out code that processes a svc.conf file into the new - static process_file() method. This allows svc.conf files to be - explicitly parsed by the application at any arbitrary point in - time instead of Service Configuration initialization time alone. - -Thu Jan 17 18:51:09 2002 Douglas C. Schmidt - - * ace/Name_Space.cpp (operator =): Fixed a memory leak. Thanks - to Ian Cahoon for reporting this. - -Thu Jan 17 12:13:51 2002 Ossama Othman - - * ace/SSL/SSL_Context.h (private_key, verify_private_key): - - Added new documentation. These methods should only be called - after a certificate has been set since key verification is - performed against the certificate, among other things. - -Thu Jan 17 13:11:27 2002 Chad Elliott - - * ace/Message_Queue.h: - * ace/Message_Queue.cpp: - * ace/Message_Queue_T.h: - * ace/Message_Queue_T.cpp: - - Provide the ability to enqueue based on the message deadline and - to dequeue based on priority, deadline and from the end. - -Wed Jan 16 11:24:52 2002 Priyanka Gontla - - * THANKS: - Updated to add Gerhard Voss . - -Wed Jan 16 06:19:01 2002 Douglas C. Schmidt - - * ace/OS.i: Replaced "set" with "sset" in sigtimedwait() and sigwait() - to avoid STL symbol clashes with MSVC++ 6.0. Thanks to Shmulik - Regev for reporting this. - -Wed Jan 16 09:01:12 2002 Johnny Willemsen - - * ace/Containers_T.{h,cpp}: - Added ACE_Fixed_Set_Const_Iterator to make it possible to - iterate through a const ACE_Fixed_Set instance - -Wed Jan 16 07:53:12 2002 Johnny Willemsen - - * include/makeinclude/ace_flags.bor: - Added new flags for the new TAO ETCL orbsvcs library - -Tue Jan 15 17:24:53 2002 Steve Huston - - * ace/SSL/SSL_Context.cpp (report_error()): Set ACE_OS::last_error() - to ERR_get_error() so the caller can get the error code later. - - * ace/SSL/SSL_SOCK_Connector.cpp: If the SSL handshake phase of a - connection attempt fails, close the underlying socket. - -Tue Jan 15 15:35:41 2002 Steve Huston - - * ace/SOCK_Connector.(h cpp): - * ace/LSOCK_Connector.(h i cpp): - * ace/MEM_Connector.(h cpp): - * ace/SSL/SSL_SOCK_Connector.(h cpp): - Improved the Doxygenation and removed the protocol_family and - protocol arguments from the ctors and connect() methods. The - protocol family is always taken from the ACE_Addr remote_sap - argument since it can now be either PF_INET or PF_INET6 (for - SOCK_Connector objects) and should be PF_UNIX for LSOCKs. - It is pointless to allow the user to request something that - is impossible to do correctly. - -Tue Jan 15 10:52:12 2002 Johnny Willemsen - - * include/makeinclude/ace_flags.bor: - Added new flags for the new TAO PortableGroup library - -Mon Jan 14 14:40:25 2002 Carlos O'Ryan - - * bin/g++dep: - Fixed small problems in the dependency generation: - - The script did not properly handle files with '+' in their - names. - - In some cases the script generated escaped blanks, i.e. lines - containing a blank preceded by a backslash. Such blanks are - interpreted as part of a dependency name and break havoc with - the builds. - -Mon Jan 14 16:49:37 2002 Steve Huston - - * ace/OS.h (ACE_STATIC_SVC_DEFINE): Corrected the documentation to - say the service-implementing class must be derived from - ACE_Service_Object, not ACE_Service_Config. - -Mon Jan 14 07:40:16 2002 Douglas C. Schmidt - - * ace/OS.i (mmap): There was a typo that prevented the ACE Memory Map - stuff from working properly on Win9x. Thanks to Edan Ayal - for reporting this. - -Sun Jan 13 18:59:37 2002 Douglas C. Schmidt - - * ace/Memory_Pool.{h,cpp}: Added a new option that makes is possible - to control whether or not a fixed address will be used when - remapping a memory-mapped file. Thanks to Jonathan Reis - for this enhancement. - -Mon Jan 14 11:02:12 2002 Johnny Willemsen - - * include/makeinclude/ace_flags.bor: - Added flags for new TAO FT_ORB library - -Sun Jan 13 08:20:05 2002 Craig Rodrigues - - * ace/config-all.h: Make sure that ACE_bad_alloc - is defined as std::bad_alloc if - ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB macro is set. - Fixes gcc 3.0.3 compilation problem. - -Fri Jan 11 22:54:22 2002 Balachandran Natarajan - - * ace/config-lynxos.h: Added #define ACE_HAS_USING_KEYWORD to teh - file. The compiler supports namespaces. According to the new - rules at the doc_group, we dont use any compilers that dont - support namespaces. The above macro is itself a waste. But we - cannot remove it overnight as it has far reaching - consequences. Working around that for the timebeing. - -Thu Jan 10 18:35:41 2002 Steve Huston - - * ace/Profile_Timer.h: Clarified that elapsed_time() calculates time - from start() to stop(). Improved Doxygenation. - -Thu Jan 10 16:53:41 2002 Nanbor Wang - - * examples/Service_Configurator/IPC-tests/server/server.dsp: The - Release version of the library needs to link in ADVAPI32.LIB as - GetUserName is used in ACE's inline code. - -Wed Jan 9 22:07:50 2002 Douglas C. Schmidt - - * ace/Logging_Strategy.cpp (fini): Make sure to cancel the - timer if interval_ and max_size_ are > 0. Thanks to Yaniv Ben - Ari for reporting this. - -Wed Jan 9 11:38:58 2002 Ossama Othman - - * tests/SSL/Makefile (LDLIBS): - - Added missing SSL and crypto libraries. Fixed link errors. - Thanks to Marvin Wolfthal for reporting the - error and suggesting a fix. - -Wed Jan 9 12:24:39 2002 Steve Huston - - * ace/Process.cpp (spawn): Don't attempt ACE_OS::setpgid if - ACE_LACKS_SETPGID is defined. Thanks to Victor Terber - for reporting this. - -Wed Jan 09 11:19:07 2002 Nanbor Wang - - * ace/OS.h: Updated the comment for ACE_CE_Bridge to indicate that - it's obsolete and will be removed in the future. - -Wed Jan 9 00:48:48 2002 Don Hinton - - * ace/Get_Opt.cpp: Make sure to cast away constness - before deleting an ACE_TCHAR array. Thanks to - Bala for reporting this. - -Tue Jan 8 17:29:33 2002 Steve Huston - - * ace/SSL/SSL_SOCK_Connector.cpp: Don't try to dereference a 0 - timeout pointer. Gack. Thanks to Ossama for pointing this out. - -Tue Jan 8 15:51:06 2002 Don Hinton - - * ace/Get_Opt.cpp - * ace/Service_Config.cpp: - - Moved the template instantiations from Service_Config.cpp to - Get_Opt.cpp where they belong. - - * ace/Get_Opt.{h.cpp}: Replaced ACE_TString with ACE_TCHAR for - type of member variable ACE_Get_Opt_Long_Option since it - wasn't really needed and took up space. - -Tue Jan 8 10:43:48 2002 Ossama Othman - - * ace/config-sunos5.5.h (ACE_LACKS_INET_ATON): - - Solaris does indeed implement the inet_aton() function, but it - is found in `libresolv.*'. It doesn't seem worth it to link - another library just for that function. Just use the emulation - in ACE that has been used for years. - -Tue Jan 8 11:31:22 2002 Steve Huston - - * tests/Makefile: When doing realclean, use the DLL_Test and - Service_Config_DLL Makefiles to clean their files up. - -Tue Jan 8 08:36:33 2002 Steve Huston - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): Corrected order - of operations checking EWOULDBLOCK, and fixed compile errors. - Thanks to Vlado Chovanec for this fix. - -Mon Jan 7 19:55:39 2002 Steve Huston - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): Added extra check - for SSL_accept/connect status failure to avoid looping on a bad - socket if the socket closes during handshake. Thanks to Vlado - Chovanec for this fix. - - Also added timeout countdown support for SSL_SOCK_Connector, same - as in: Sun Jan 6 09:37:02 2002 Ossama Othman - -Mon Jan 7 15:55:26 2002 Ossama Othman - - * ace/INET_Addr.cpp (set): - - Pass a pointer to a "struct in_addr" to inet_aton(), i.e. the - proper type, instead of a forcibly casted ACE_UINT32. Also - updated existing code to use the in_addr::s_addr member instead - of the previous ACE_UINT32 variable. - -Mon Jan 7 15:13:09 2002 Mayur Deshpande - - * performance-tests/Misc/context_switch_time.cpp (main): - Since the Yield_test does seem to work on VxWorks now (see - ChangeLog below), the 'ifdefs' for bypassing VxWorks for the - Yield-Test have now been removed. - -Mon Jan 7 15:08:25 2002 Mayur Deshpande - - * ace/OS.i (thr_yield): - Changed ::taskDelay (1) to ::taskDelay (0) for VxWorks in - thr_yield (). The change with (0), now does seem to perform - the yield correctly as reflected in the Yield-Test of - context_switch_time. Thanks to Charlie Grames - for this tip. - -Mon Jan 7 15:16:10 2002 Ossama Othman - - * ace/OS.h (INADDR_NONE): - - If the platform does not define this constant, then define it. - - * ace/OS.cpp (inet_aton): - - For some reason we were emulating inet_aton() on all platforms - using the now deprecated inet_addr() function. Use the native - inet_aton() function unless ACE_LACKS_INET_ATON is defined. - - Instead of performing a memcpy() of the IPv4 32-bit address into - the in_addr data structure, simply assign it to the s_addr field - of that data structure. It's not clear why we didn't do this in - the first place. - - (inet_ntoa): - - Fixed PSoS emulation of this method. The result is supposed to - be stored in a statically allocated string, not a dynamically - allocated one. Fixes a memory leak. Note that this change - makes the implementation non-reentrant. However, inet_ntoa() - was not designed to be reentrant to begin with. - - * ace/OS.i (inet_addr): - - On error, inet_addr() is supposed to return INADDR_NONE. - - The return value should be a 32 bit unsigned integer, not a - signed one. - - * ace/config-win32-common.h: - - MS Windows does not support the inet_aton() function. Define - ACE_LACKS_INET_ATON. - -Mon Jan 7 12:20:26 2002 Ossama Othman - - * bin/auto_run_tests.lst: - - Added the MT_SSLIOP test to the regression test suite list. - -Sun Jan 6 21:19:10 2002 John Aughey - - * tests/run_test.lst: Uncommented out Conn_Test from daily builds. - -Sun Jan 6 21:09:10 2002 John Aughey - - * ace/INET_Addr.cpp: - * ace/INET_Addr.h: - - Reverted to January 1 version until I have time to put the - set_host_name() method in correctly. - -Sun Jan 6 20:01:10 2002 Balachandran Natarajan - - * tests/run_test.lst: Commented out Conn_Test from the daily - builds. This test seems to hang blocking build progress. Have - sent a mail to John Aughey on this. - -Sun Jan 6 09:37:02 2002 Ossama Othman - - * ace/SSL/SSL_SOCK_Acceptor.cpp (accept, ssl_accept): - - Take into account the time to complete the basic TCP handshake - and the SSL handshake. Specifically, ACE_Countdown_Time is used - to reduce the timeout value after each IO operation - (e.g. accept(), SSL_accept()) used during SSL passive connection - establishment. [Bug 1110] - - Commented out debugging statements. - -Sat Jan 5 20:57:36 2002 Venkita Subramonian - - * ace/Future.cpp (get): Added another ACE_const_cast in addition - to Doug's changes to fix compile errors. See below. - -Sat Jan 5 14:57:36 2002 Craig Rodrigues - - * ace/OS_QoS.h: Fix comments, put in doxygen format. - -Sat Jan 5 08:59:41 2002 Douglas C. Schmidt - - * ace/Future.cpp (get): Added an ACE_const_cast() to silence certain - C++ compilers. Thanks to Venkita for reporting this. - -Fri Jan 5 15:17:12 2002 Johnny Willemsen - - * ace/OS.{h,cpp}: - Added ACE_TSS_Emulation::release_key() method to release a - thread_key within the TSS_Emulation when a thread is stopped. - Added ACE_TSS_Emulation::tss_keys_used_ member to administrate which - thread_keys are used and which not. - Added ACE_TSS_Keys::is_set() method to test whether a specific - thread_key is marked as used. - Changed ACE_TSS_Emulation::next_key() method to return a thread_key - that is not used yet, this key is then marked as used at the same - time. - Changed ACE_OS::thr_keyfree() method to release the key in the - TSS_Emulation when ACE_HAS_TSS_EMULATION is defined. - - These changes fix the bugzilla bugs 223 and 657. The ACE_TSS_Emulation - now recycles keys that are released earlier. - -Fri Jan 4 19:59:03 2002 John Aughey - - * ace/INET_Addr.cpp: Fixed the new set_host_name method - -Fri Jan 4 18:59:27 2002 Balachandran Natarajan - - * ChangeLogs/ChangeLog-01b: Added a new file. Trimmed this file - to have entries only in 2002. - -Fri Jan 4 15:50:42 2002 Steve Huston - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - On ACE::select-reported timeout or failure, set status to return - a -1 to caller, not 0. Thanks to Vladimir Chovanec - for reporting this and sending a fix. - -Fri Jan 4 08:31:49 2002 Douglas C. Schmidt - - * tests/Thread_Manager_Test.cpp (test_task_record_keeping): Fixed - a typo in an expression on line 226. Thanks to Harvinder - Sawhney for reporting this. - -Fri Jan 4 05:51:22 2002 Douglas C. Schmidt - - * ace/Future.{h,cpp}: Made the get() and ready() methods const. - Thanks to Ran Kohavi for reporting this. - -Fri Jan 4 15:06:31 2002 Steve Huston - - * ace/String_Base.h (operator=): Add to ACE_String_Base - return type. Fixes compile error on IBM C/C++. - - * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): - If SSL_get_error() returns SSL_ERROR_SYSCALL and it's EWOULDBLOCK, - don't blindly set both read and write handles for select. Check - if SSL is indicating SSL_want_write() and set the proper handle. - Also, don't ACE_ASSERT SSL_pending before return... if there's - an SSL handshake screw-up (like someone trying to break in) - just report the failure, don't abort/crash. - -Wed Jan 02 13:27:09 2002 Nanbor Wang - - * ace/INET_Addr.h: - * ace/INET_Addr.cpp: Removed tabs and trailing whitespaces. - -Wed Jan 2 08:19:18 2002 Douglas C. Schmidt - - * ace/FILE_Connector.h, - * ace/OS.h (ACE_OS): Clarified the weak semantics of O_APPEND - on Win32. Thanks to Eugene Alterman for - reporting this. - -Wed Jan 2 12:43:00 2002 John Aughey - - * ace/INET_Addr.h - * ace/INET_Addr.cpp : Added set_host_name method and moved - relevant code into this method. Changed signature of - set_address method to take a void pointer rather than a - char *. - -Wed Jan 2 12:30:01 2002 Chris Gill - - * ace/RB_Tree.i - * tests/RB_Tree_Test.cpp : added check for valid current node to - forward_i and reverse_i methods of iterator base class. Thanks to - Craig L. Ching for reporting this! - -Wed Jan 2 08:19:18 2002 Douglas C. Schmidt - - * tests/README: Clarify that run_test.pl should be used rather - the run_tests.sh. - - * tests/run_tests.bat: Clarify that run_test.pl should be used - on Win9x. Thanks to Edward A Thompson - for prompting this. - -Wed Jan 2 07:37:01 2002 Balachandran Natarajan - - * ace/Handle_Set.h: - * ace/Handle_Set.cpp: Added a method reset_state () to the - ACE_Handle_Set_Iterator class. - -Tue Jan 2 11:39:12 2002 Johnny Willemsen - - * ace/OS.i: - Added missing ACE_UNUSED_ARG in ACE_OS::event_timedwait - -Tue Jan 1 15:36:39 2002 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU: Added support - for the buildbits=64 make option. - -Tue Jan 1 20:05:12 2002 Johnny Willemsen - - * ace/Name_Request_Reply.{h,cpp}: - Changed type of 3 constructor arguments from size_t to ACE_UINT32 - because the members in which these arguments are stored are also - of type ACE_UINT32 - - * ace/OS.i - In ACE_OS::umask method, changed the type in the ACE_OSCALL_RETURN - macro from int to mode_t because that is the return type of the - method - -Tue Jan 1 08:47:25 2002 Douglas C. Schmidt - - * ace/Thread.h: Clarify how the ACE_Thread_Adapter is deleted - when spawn() is called. Thanks to Preston Elder - for reporting this confusion. - -Tue Jan 1 14:09:26 2002 Johnny Willemsen - - * examples/Map_Manager/test_hash_map_manager.cpp: - Made this example compiling when ACE_USES_WCHAR is set - - * Makefile.bor: - Added examples directory because all examples for which there are - BCB makefiles now build when ACE_USES_WCHAR is set - -Tue Jan 1 00:02:12 2002 Nanbor Wang - - * ace/ace_dll.vcp: Added String_Base_Const.*. diff --git a/ACE/ChangeLogs/ChangeLog-02b b/ACE/ChangeLogs/ChangeLog-02b deleted file mode 100644 index c13db37e19f..00000000000 --- a/ACE/ChangeLogs/ChangeLog-02b +++ /dev/null @@ -1,7227 +0,0 @@ -Tue Dec 31 21:21:26 2002 Balachandran Natarajan - - * bin/generate_topinfo_charts.sh: - * bin/topinfo_stats.sh: Scripts to track the memory usage and plot - them. At present it works only for the simple test in - $TAO_ROOT/performance-tests/Memory/Single_Threaded. - -Tue Dec 31 17:57:19 2002 Steve Huston - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h: - Add #include "ace/Svc_Handler.h" - -Tue Dec 31 17:50:39 2002 Steve Huston - - * ace/OS.h: For WinCE 4 (.NET) and up, include rather than - typedef-ing ptrdiff_t. - -Tue Dec 31 17:26:41 2002 Steve Huston - - * tests/tests.mpc (DLL Test Lib): Add dllflags = ACE_BUILD_SVC_DLL to - add the correct /D option. The source uses ACE_Svc_Export to flag - dll import/export correctly. - - * tests/CE_fostream.h: #include "ace/config-all.h" before checking for - #if defined (ACE_HAS_WINCE). - -Tue Dec 31 15:05:42 2002 Steve Huston - - * ACEXML/apps/svcconf/Svcconf.cpp: Changed the condition for when - a dummy entrypoint is needed from AIX 4.3 to AIX and Visual Age C++ - version 5. Thanks for Jon Wackley for this adjustment. Also see: - Fri Dec 27 19:46:31 2002 Steve Huston - - * netsvcs/clients/Naming/Client/Makefile: If building this stuff, - reset OBJDIRS to $(VDIR) and $(VSHDIR) to clean up both. - -Mon Dec 30 21:30:41 2002 Steve Huston - - * include/makeinclude/platform_hpux_gcc.GNU: Removed the SOVERSION= - line to allow versions libraries to be set up properly. - - * ace/Based_Pointer_Repository.cpp: - * ace/Dynamic.cpp: - * ace/SString.cpp: - * tests/Framework_Component_DLL.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Timeprobe_Test.cpp: - * apps/drwho/File_Manager.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - * examples/Logger/Acceptor-server/server_loggerd.cpp: - * examples/Logger/simple-server/server_loggerd.cpp: - * examples/Threads/auto_event.cpp: - * examples/Threads/tss2.cpp: - Add __hpux to the conditions needed to instantiate - static template members. Also see - Sat Nov 23 18:12:37 2002 Steve Huston - -Mon Dec 30 19:32:18 2002 Steve Huston - - * tests/Codecs_Test.cpp: Add explicit template instantiation for - ACE_Auto_Basic_Array_Ptr. - -Mon Dec 30 18:44:20 Steve Huston - - * examples/C++NPv2/TP_Logging_Server.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - * examples/Logger/Acceptor-server/server_loggerd.cpp: - * examples/Logger/simple-server/server_loggerd.cpp: - * examples/Threads/auto_event.cpp: - * examples/Threads/tss2.cpp: - * performance-tests/Misc/test_singleton.cpp: - More singleton_ instantiations for g++ on AIX. - -Mon Dec 30 18:11:39 2002 Steve Huston - - * apps/drwho/File_Manager.cpp: Add explicit instantiation of - ACE_Singleton::singleton_. - Similar to those done for: - Tue Dec 3 20:47:39 2002 Steve Huston - -Mon Dec 30 17:38:31 2002 Steve Huston - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - For Visual Age C++ 5 and up on AIX, explicitly instantiate the - CLI_Stream<> constructor. The compiler misses this one when - instantiating templates. Thank you very much to Jonathan - Wackley for diagnosing this problem and - leading to a workaround. - -Mon Dec 30 15:25:26 2002 Nanbor Wang - - * ACEXML/common/StrCharStream.cpp (open): - * ACEXML/common/FileCharStream.cpp (open): Changed to allow open - to succeed if automatic determination of encoding fails. This - allows the "Simple parsing" feature of ACEXML to work. Thanks - to Michael F"olsl for reporting the - problem. - - * ACEXML/examples/SAXPrint/main.cpp: Added a new option to test - out ACEXML's simpling parsing feature. - - * ACEXML/examples/SAXPrint/simple.svcconf.xml: Added this new - "simple" XML document to test out the "Simple" parsing feature - in ACEXML. - -Mon Dec 30 12:21:33 2002 Balachandran Natarajan - - * bin/MakeProjectCreator/config/taoversion.mpb: Fixed the version - information. This should automatically get updated during the - next beta/release. - -Sun Dec 29 18:27:38 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Prevented BiDirGIOP tests from running - in GIOP 10 builds. - -Sun Dec 29 16:43:03 2002 Nanbor Wang - - * ACEXML/common/FileCharStream.cpp (close): Changed to reset the - file pointer, filename_ and encoding_ strings after they are - release. Thanks to Andrew Marlow for - suggesting the change. - -Sun Dec 29 00:47:58 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Security tests using SSLIOP will not be - run in static builds. - -Sat Dec 28 23:05:51 2002 Steve Huston - - * bin/make_release: Use -relative to replace ACE_ROOT with a relative - path in generated makefiles. - -Sat Dec 28 13:16:24 2002 Nanbor Wang - - * ace/MEM_IO.cpp (recv_buf): Reverted my previous hack in: - - Fri Dec 27 08:38:29 2002 Nanbor Wang - - and make the connection close handling more robust. - - * tests/MEM_Stream_Test.cpp: Reverted my previous change in: - - Sat Dec 28 11:04:38 2002 Nanbor Wang - - It was not necessary. Added debug information for close - connection. - -Sat Dec 28 11:04:38 2002 Nanbor Wang - - * tests/MEM_Stream_Test.cpp: Made sure this test ignore the EIO - error from the following change when a connection was closed. - - Fri Dec 27 08:38:29 2002 Nanbor Wang - -Fri Dec 27 20:06:39 2002 Nanbor Wang - - * ace/Malloc_T.h: - * ace/Malloc_T.i: - * ace/Malloc_T.cpp: Added a new ACE_Malloc_T::bad () method to - query whether a Malloc_T object was constructed successfully. - This approach, IMO, is sub-optimal compared to using an explicit - init method approach. The existing constructor signatures, - however, prevent us from doing so without breaking backward - compatibility. - - * ace/MEM_SAP.cpp: Now that there's a way to check whether the - underlying Malloc is functioning or not. Changed MEM_SAP to - check for proper initialization of underlying Malloc object and - clean up OS resources if the Malloc object is defected. This - change makes MEM_Stream transport mechanism more robust. - -Fri Dec 27 19:46:31 2002 Steve Huston - - * ACEXML/apps/svcconf/Svcconf.cpp: Add a dummy entrypoint when - ACE_USES_CLASS_SVC_CONF == 0 on AIX 4.3. Else the AIX 4.3 linker - complains there are no csects or exported symbols saved at link - time. Thanks to Jon Wackley for reporting - this problem. - -Fri Dec 27 17:43:29 2002 Steve Huston - - * ace/OS.h: For WinCE, only typedef ptrdiff_t for _WIN32_WCE < 400. - eMbedded Visual C++ 4 (Win CE.NET) defines this type. - - * bin/MakeProjectCreator/templates/em3vcp.mpd: Removed /M$(CECrtMT) - from the CPP options. Neither evc3 nor 4 support any /M options to - set the C run-time like MSVC does. It's controlled via the _DEBUG - macro only. This also allows the generated vcp file to be used - with either evc3 or evc4 (Windows CE .NET). evc3 ignored the option, - but evc4 flags it as unknown. - -Fri Dec 27 08:38:29 2002 Nanbor Wang - - * ace/MEM_IO.cpp (recv_buf): Changed to return error (-1) and set - the errno to EIO when we receive 0 byte off the signaling socket - as this should never happen under normal circumstance. However, - on Win32 and Solaris, when one end of a connection closes the - socket while the other end is still reading the socket, the - active end will continuously receive several 0 bytes messages. - This confuses the hack of the MEM_IO mechanism and causes the - memory management routine to fall into a tight spinning - deadlock. - -Fri Dec 27 07:49:28 2002 Craig Rodrigues - - * ace/config-macosx.h: Remove temporary hacks for buggy - gcc 3.1 compiler. Thanks to John Zorko for reminding me about - this. - - * examples/Service_Configurator/IPC-tests/server/Makefile: - * examples/Service_Configurator/Misc/Makefile: - * examples/Timer_Queue/Makefile: - Add ACELIBS to ACE_SHLIBS to fix MacOS X linking problem. - -Thu Dec 26 17:11:54 2002 Balachandran Natarajan - - * bin/make_release: Fixed the following problems in the release - script which caused problems during the beta cutting process: - - - cvs commits of TAO/Changelog TAO/VERSION etc. failed. The - failure was because we were also commiting taoversion.mpb but - from $TAO_ROOT as "cvs commit ChangeLog VERSION - other_files ../bin/Makeyada". Using ../ to indicate files in - higher directories is an unpardonable mistake for cvs - 1.10.x. It used to work 1.9.x. But with 1.10* versions the - protocol changed disallowing the ../ - - - we didnt set the file permissions on the generated files - properly - - - the generated files from mpc were not added to the list of - files for which LF->CRLF conversions are supposed to be - masked during zip! - -Thu Dec 26 16:17:41 2002 Steve Huston - - * tests/tests.mpc: For DLL Test Lib, the source is DLL_Test_Impl.cpp, - not DLL_Test.cpp. - -Thu Dec 26 09:14:38 2002 Balachandran Natarajan - - * Makefile: Removed configure.in from the list of controlled files. - -Thu Dec 26 07:36:10 2002 Balachandran Natarajan - - * include/makeinclude/platform_freebsd_pthread.GNU: Removed for - sure now. This should have been removed in this "Thu Nov 14 - 22:47:45 UTC 2002 Craig Rodrigues " - checkin. Again, thanks to Craig for catching this. - -Thu Dec 26 07:31:42 2002 Balachandran Natarajan - - * apps/Gateway/Gateway/Makefile: Fixed a ttypo. Thanks to Craig - Rodrigues for catching this. - -Wed Dec 25 17:47:12 2002 Bala - - * ACE version 5.2.8 released. - -Wed Dec 25 17:39:05 2002 Balachandran Natarajan - - * bin/make_release: Fixed problems with generation of vcproj etc. - -Wed Dec 25 06:14:17 2002 Douglas C. Schmidt - - * Merry Christmas to all. May we have peace and justice for all in 2003. - -Tue Dec 24 17:29:11 2002 Balachandran Natarajan - - * docs/ACE-subsets.html: Documented the compiler options that - Steve Vranyes experimented and tested with to get a good - footprint reduction on Solaris. - -Tue Dec 24 07:31:54 2002 Balachandran Natarajan - - * ace/Argv_Type_Converter.h: - * ace/Argv_Type_Converter.cpp: Reverted the following changes "Mon - Dec 23 17:26:42 2002 Steve Huston " and - "Mon Dec 23 22:57:18 2002 Balachandran Natarajan - ". The argument parsing in - TAO gets busted due to these changes and most of tests in our - daily builds fail. - -Mon Dec 23 22:57:18 2002 Balachandran Natarajan - - * ace/Argv_Type_Converter.h: Changed saved_argc_ to be of type int - as opposed to int &. This seems to be necessitated by the change - "Mon Dec 23 17:26:42 2002 Steve Huston " - which gives compile errors on all platforms. - -Mon Dec 23 21:07:20 2002 Steve Huston - - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: Changed the Debug - define from DEBUG to _DEBUG, matching all others, and what the - ACE files expect. Fixes mismatch inlines in ACE tests. - - * tests/tests.mpc: Added CE_fostream.cpp to the CDR_File_Test inputs. - - * tests/CE_fostream.{cpp h}: Added #if defined (ACE_HAS_WINCE) to - prevent trying to compile this on non-CE systems. - -Mon Dec 23 17:26:42 2002 Steve Huston - - * ace/OS.h (main): For WinCE, eVC can't grok the #include within the - 'main' macro expansion, so #include "ace/Argv_Type_Converter.h" is - moved outside the macro definition. - - * ace/Argv_Type_Converter.{h cpp} (ctor): Change argc from int& to - int, else it can't be used in the way it's already coded into use - in the 'main' definition (above, OS.h). - - * tests/Dev_Poll_Reactor_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Proactor_Scatter_Gather_Test.cpp: Changed main() to - ACE_TMAIN(). - - * tests/FlReactor_Test.cpp: - * tests/XtReactor_Test.cpp: Add /**/ between #include and filename - to silence MS warnings about missing files during dependency updates. - -Mon Dec 23 16:16:05 2002 Boris S Kolpackov - - * bin/auto_run_tests.lst: Added - TAO/orbsvcs/tests/Security/Crash_Test to the list of tests. - -Mon Dec 23 17:08:17 2002 Balachandran Natarajan - - * THANKS: Changed Boris's information in the Hall of Fame. - -Mon Dec 23 12:13:51 2002 Steve Huston - - * examples/C++NPv1/Process_Per_Connection_Logging_Server.h: Add - 'public' keyword to Process_Per_Connection_Logging_Server's - inheritance from Logging_Server. - - * examples/C++NPv2/Makefile: Add a $(RM) -rf tempinc after each - mkfile make to clean up template instantiations for Visual Age C++ - on AIX. - - * examples/C++NPv2/Makefile.SLD: Add Logging_Handler to the files - comprising this service. - - * examples/C++NPv2/Makefile.SLDex: Added Logging_Acceptor, - Logging_Event_Handler, and Logging_Handler to the files for this - service. Removed the TEMPINC trick for Visual Age C++ to keep the - templates from each compile around for the link stage where they're - needed. - - * examples/C++NPv2/Makefile.CLD: Added Logging_Handler to files. Remove - TEMPINC destruction from each compile. - - * examples/C++NPv2/Makefile.TPLS: Add Logging_Handler to files. Remove - TEMPINC destruction from each compile. - -Mon Dec 23 14:05:21 UTC 2002 Johnny Willemsen - - * ace/config-cygwin32-common.h: - When ACE_IOV_MAX is not defined, define it is 64. The Cygwin header - files define IOV_MAX as MAX_INT-1 and ACE_IOV_MAX is defined as - IOV_MAX by default. Allocating an array of this size on the stack - results in compile errors, so we define ACE_IOV_MAX to a smaller and - more realistic number. - -Mon Dec 23 12:16:33 UTC 2002 Johnny Willemsen - - * ace/RMCast/RMCast_IO_UDP.cpp: - * ace/RMCast/RMCast_Fragment.cpp: - Use ACE_IOV_MAX instead of IOV_MAX. - -Mon Dec 23 12:02:33 UTC 2002 Johnny Willemsen - - * bin/ace_ld: - Extended this perl script so that the location of the __ctordtor.o - can be passed as -o command line option. The location is dependent - on the $VDIR in the vxworks make files. - - * include/makeinclude/platform_vxworks5.x_diab.GNU: - * include/makeinclude/platform_vxworks5.x_g++.GNU: - When calling the ace_ld perl script, pass the $VDIR as command line option - -o to the script. - -Sun Dec 22 11:41:56 2002 Balachandran Natarajan - - * ace/Connector.cpp: Fixed fuzz errors. - -Sun Dec 22 11:37:44 2002 Balachandran Natarajan - - * THANKS: Added Daniel White to the hall of fame! - -Sun Dec 22 11:31:53 2002 Craig Rodrigues - - * apps/Gateway/Gateway/Makefile: - * apps/Gateway/Peer/Makefile: Add $(ACELIB) to $(ACE_SHLIBS) so - that -lACE is added to the linkline when a shared library is - built. Solves linking problem MacOS X. Thanks to John Zorko and - Daniel white for pointing this out. - -Sun Dec 22 10:25:35 2002 Balachandran Natarajan - - * ace/Connector.cpp: Fixed a warning with g++. - -Sun Dec 22 09:18:00 2002 Balachandran Natarajan - - * ace/Connector.cpp: - * ace/Connector.h: Added a lock to the ACE_Connector class to - make the following atomic - - . Registration of AST with the handler_map_ - . Registration of the ACE_Connector with the Reactor - . and the registration of timers with the Reactor's timer - queue. - - If they are not atomic, it throws open race conditions such as - the ones documented in BUG 1405. This is not complete fix for - BUG 1405, since it taxes applications using only one thread with a - lock. This is a short-term fix to prevent the race condition - from occuring. - - Other relevant changes include - - . the AST is now refcounted - . the AST cannot be deleted directly. The lifetime of the AST - can only be manipulated using the refcount on the AST. - -Sat Dec 21 18:27:42 2002 Steve Huston - - * ace/ace_dll.vcp: - * ace/ace_os_dll.vcp: - * ace/ace.vcw: eMbedded Visual C++ workspace/projects deleted. These - need to be generated from ace.mpc when needed. The make_release - script now generates them for each source kit. When needed on a - CVS workspace build, use mwc/mpc. The autobuild system has commands - generate_workspace and generate_makefile that accomplish this. - See autobuild configs in the riverace directory for examples. - - * tests/tests_WinCE.vcw: - * tests/ARGV_Test_WinCE.vcp: - * tests/Atomic_Op_Test_WinCE.vcp: - * tests/Auto_IncDec_Test_WinCE.vcp: - * tests/Barrier_Test_WinCE.vcp: - * tests/Basic_Types_Test_WinCE.vcp: - * tests/Bound_Ptr_Test_WinCE.vcp: - * tests/Buffer_Stream_Test_WinCE.vcp: - * tests/Cached_Accept_Conn_Test_WinCE.vcp: - * tests/Cached_Conn_Test_WinCE.vcp: - * tests/Cache_Map_Manager_Test_WinCE.vcp: - * tests/Capabilities_Test_WinCE.vcp: - * tests/CDR_Array_Test_WinCE.vcp: - * tests/CDR_File_Test_WinCE.vcp: - * tests/CDR_Test_WinCE.vcp: - * tests/Collection_Test_WinCE.vcp: - * tests/Conn_Test_WinCE.vcp: - * tests/DLList_Test_WinCE.vcp: - * tests/DLL_Test_DLL_WinCE.vcp: - * tests/DLL_Test_WinCE.vcp: - * tests/Dynamic_Priority_Test_WinCE.vcp: - * tests/Enum_Interfaces_Test_WinCE.vcp: - * tests/Future_Set_Test_WinCE.vcp: - * tests/Future_Test_WinCE.vcp: - * tests/Handle_Set_Test_WinCE.vcp: - * tests/Hash_Map_Bucket_Iterator_Test_WinCE.vcp: - * tests/Hash_Map_Manager_Test_WinCE.vcp: - * tests/High_Res_Timer_Test_WinCE.vcp: - * tests/Lazy_Map_Manager_Test_WinCE.vcp: - * tests/Logging_Strategy_Test_WinCE.vcp: - * tests/Log_Msg_Test_WinCE.vcp: - * tests/Malloc_Test_WinCE.vcp: - * tests/Map_Manager_Test_WinCE.vcp: - * tests/Map_Test_WinCE.vcp: - * tests/Max_Default_Port_Test_WinCE.vcp: - * tests/Mem_Map_Test_WinCE.vcp: - * tests/MEM_Stream_Test_WinCE.vcp: - * tests/Message_Block_Test_WinCE.vcp: - * tests/Message_Queue_Notifications_Test_WinCE.vcp: - * tests/Message_Queue_Test_Ex_WinCE.vcp: - * tests/Message_Queue_Test_WinCE.vcp: - * tests/MM_Shared_Memory_Test_WinCE.vcp: - * tests/MT_Reactor_Timer_Test_WinCE.vcp: - * tests/MT_Reactor_Upcall_Test_WinCE.vcp: - * tests/MT_SOCK_Test_WinCE.vcp: - * tests/Naming_Test_WinCE.vcp: - * tests/New_Fail_Test_WinCE.vcp: - * tests/Notify_Performance_Test_WinCE.vcp: - * tests/Object_Manager_Test_WinCE.vcp: - * tests/OrdMultiSet_Test_WinCE.vcp: - * tests/OS_Test_WinCE.vcp: - * tests/Priority_Buffer_Test_WinCE.vcp: - * tests/Priority_Reactor_Test_WinCE.vcp: - * tests/Priority_Task_Test_WinCE.vcp: - * tests/Process_Manager_Test_WinCE.vcp: - * tests/RB_Tree_Test_WinCE.vcp: - * tests/Reactors_Test_WinCE.vcp: - * tests/Reactor_Exceptions_Test_WinCE.vcp: - * tests/Reactor_Notify_Test_WinCE.vcp: - * tests/Reactor_Performance_Test_WinCE.vcp: - * tests/Reactor_Timer_Test_WinCE.vcp: - * tests/Reader_Writer_Test_WinCE.vcp: - * tests/Recursive_Mutex_Test_WinCE.vcp: - * tests/Refcounted_Auto_Ptr_Test_WinCE.vcp: - * tests/Reverse_Lock_Test_WinCE.vcp: - * tests/Semaphore_Test_WinCE.vcp: - * tests/Service_Config_DLL_WinCE.vcp: - * tests/Service_Config_Test_WinCE.vcp: - * tests/Sigset_Ops_Test_WinCE.vcp: - * tests/Simple_Message_Block_Test_WinCE.vcp: - * tests/SOCK_Connector_Test_WinCE.vcp: - * tests/SOCK_Send_Recv_Test_WinCE.vcp: - * tests/SOCK_Test_WinCE.vcp: - * tests/SPIPE_Test_WinCE.vcp: - * tests/SString_Test_WinCE.vcp: - * tests/Svc_Handler_Test_WinCE.vcp: - * tests/Task_Test_WinCE.vcp: - * tests/Thread_Manager_Test_WinCE.vcp: - * tests/Thread_Mutex_Test_WinCE.vcp: - * tests/Thread_Pool_Reactor_Resume_Test_WinCE.vcp: - * tests/Thread_Pool_Reactor_Test_WinCE.vcp: - * tests/Thread_Pool_Test_WinCE.vcp: - * tests/Timeprobe_Test_WinCE.vcp: - * tests/Timer_Queue_Test_WinCE.vcp: - * tests/Time_Service_Test_WinCE.vcp: - * tests/Time_Value_Test_WinCE.vcp: - * tests/Tokens_Test_WinCE.vcp: - * tests/TSS_Test_WinCE.vcp: - * tests/Upgradable_RW_Test_WinCE.vcp: eMbedded Visual C++ - workspace/projects deleted. These need to be generated from - tests.mpc when needed. The make_release script now generates - them for each source kit. When needed on a CVS workspace build, - use mwc/mpc. The autobuild system has commands - generate_workspace and generate_makefile that accomplish this. - See autobuild configs in the riverace directory for examples. - - * tests/tests.mpc: Added New_Fail_Test. - - * ace/config-WinCE.h: Add #define ACE_LACKS_ACE_IOSTREAM. If it has - ACE_LACKS_IOSTREAM_TOTALLY, it can't possibly do ACE_IOStream<>. - - * ace/ATM_Acceptor.{h cpp}: - * ace/ATM_Addr.{h cpp}: - * ace/ATM_Params.h: - * ace/ATM_QoS.h: - * ace/Dev_Poll_Reactor.cpp: - * ace/FlReactor.cpp: - * ace/POSIX_Proactor.cpp: - * ace/QtReactor.h: - * ace/SUN_Proactor.h: - * ace/TkReactor.h: Add /**/ between #include and filename to silence - MS warnings about missing files during dependency updates. - - * ace/OS.i: Fixed typo for ACE_HAS_WINCE. - - * ace/OS.{h cpp}: Enabled ACE_OS::mktime() for ACE_HAS_WINCE. To do - this, define struct tm similarly to the way it is in the standard - C library. When called, converts the struct tm to a SYSTEMTIME, - then to a FILETIME, then inserts that into an ACE_Time_Value and - pulls out the sec() value. - In OS.h, add the ACE_HAS_WINCE section for the ace_timezone() - function. - - * ace/Filecache.cpp (ACE_Filecache_Object::update): For ACE_HAS_WINCE, - return status to indicate every file has changed since cached. - There's probably a way to do this correctly on WinCE, but there's - no time to figure it out right now. - - * ace/Logging_Strategy.cpp: In calls to ACE_OS::fopen(), added - ACE_LIB_TEXT around naked char strings to build clean with Unicode. - - * ace/NT_Service.{h cpp}: Add ACE_HAS_WINCE to the platforms that - don't attempt to build this class. - - * ace/SPIPE_Connector.cpp (connect): Pretty much disabled this for CE. - - * bin/MakeProjectCreator/templates/em3vcp.mpd: When generating - CPU-based /D options, just do /D, not /D=1. If =1 is need - for something, add it to the .mpt file. - - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: Remove /GX, /Gm, - /GR, /Gy, and /Md[d] options - embedded VC++ doesn't do these or the - previous near-working .vcp files didn't use them and no value is - seen in enabling something not previously used. - Insured that the options are consistent, for example, all Release - builds use /Ob2 (high level of inlining). - * bin/MakeProjectCreator/templates/em3vcplib.mpt: In addition to the - above removals, remove /G5 (optimize for Pentium) from Debug build. - -Sat Dec 21 12:38:41 2002 Steve Huston - - * ace/OS.cpp (snprintf): Win32 doesn't 0-terminate the string if - the maxlen is exceed, so terminate the string in that case. - -Sat Dec 21 14:36:43 UTC 2002 Johnny Willemsen - - * include/makeinclude/platform_cygwin32.GNU: - Enabled threads and removed the setting that only static libs are - build. Also set SONAME and SOVERSION to nothing because the - Cygwin linker can't handle a dll name where the version is added - after .dll. - -Fri Dec 20 20:02:41 2002 Steve Huston - - * bin/make_release: When updating version files, also update - bin/MakeProjectCreator/config/aceversion.mpb and taoversion.mpb. - Added a new subroutine, generate_makefiles() that's called just - before create_kit. It generates the workspace and project files - for ACE_wrappers/ace and ACE_wrappers/tests. If any of these are - desired for TAO, someone knowledgeable on TAO should add to the - place in generate_makefiles() for the TAO stuff. - -Fri Dec 20 16:12:33 2002 Johnny Willemsen - - * ace/ACE.h: - The math.h delived with the Cygwin32 compiler already defines - log2 as macro so added a define acelog2 as log2 to handle this - already defined macro. - -Thu Dec 19 18:47:29 2002 Steve Huston - - * tests/tests.mpc: Added Obstack_Test and Recursive_Condition_Test. - -Thu Dec 19 16:47:17 2002 Douglas C. Schmidt - - * ace/SOCK_Dgram.h: - ace/SOCK_CODgram.h: Added metatype information for - ACE_SOCK_Dgram and ACE_SOCK_CODgram. Thanks to Sankaranarayanan - K V for reporting this. - -Thu Dec 19 10:02:56 2002 Rich Seibel - - * tests/MM_Shared_Memory_Test.cpp - - removed extraneous line that made the test appear to fail - -Thu Dec 19 06:47:07 2002 Chad Elliott - - * bin/MakeProjectCreator/config/aceversion.mpb: - * bin/MakeProjectCreator/config/taoversion.mpb: - - Updated the version to reflect the current release version. - - * bin/MakeProjectCreator/modules/Driver.pm: - - Moved the Cwd::getcwd() outside the loop to avoid calling it - multiple times. - - * bin/MakeProjectCreator/templates/vc7.mpd: - - Modified the ProgramDatabaseFile to use the intermediate_dir as - the output location. Thanks to Steve Huston - for reporting it. - -Wed Dec 18 20:52:41 2002 Steve Huston - - * ace/SOCK_Dgram_Mcast.cpp (open_i): Call shared_open using the - protocol family from the specified address, not PF_INET. Allows - working with IPv6. - - * tests/Multicast_Test.cpp: If join fails, log the error reason. - -Wed Dec 18 19:57:51 2002 Steve Huston - - * ace/config-sunos5.7.h: Added ACE_HAS_SNPRINTF. I have verified - that it's available from Solaris 7 on. If someone can determine - it's available earlier, please move the definition to one of the - earlier-version config-sunos5.*.h files. - -Wed Dec 18 18:59:41 2002 Steve Huston - - * ace/ace.mpc: - * tests/tests.mpc: Back out the below changes... jumped the gun. - -Wed Dec 18 18:55:31 2002 Steve Huston - - * ace/ace.mpc: Added new Hash_Map_Manager_RT[_T].cpp files. - - * tests/tests.mpc: Added new Hash_Map_Manager_RT_Test.cpp project. - -Wed Dec 18 15:03:03 2002 Nanbor Wang - - * ace/Get_Opt.cpp (long_option): For MSVC 7.x compiler, we need to - make sure that the argument passed to "isalnum" is legal, i.e., - between 0 and 0xff, otherwise, it will crash the process. Added - a special case for MSVC 7.x and above to prevent this. - -Wed Dec 18 13:36:49 2002 Steve Huston - - * ace/ace.mwc: Workspace definition file for ACE and it's immediate - subordinates, RMCast. - - * tests/tests.mwc: Workspace definition for tests and tests/RMCast. - - * bin/MakeProjectCreator/modules/Driver.pm (run): When processing - specified input files, chdir to the directory containing the file - so the files are read and written properly when referred to using - relative paths. - -Wed Dec 18 11:38:39 2002 Nanbor Wang - - * ace/config-win32-msvc-7.h: Added pragma prefix to disable - warning of using Microsoft extension. - - * ace/Timeprobe.h: Removed MSVC specific disabling and re-enabling - of warning of using Microsoft entension. We already do this - through all the MSVC config files and there's no point of doing - this again here. - -Mon Dec 16 16:34:23 2002 Nanbor Wang - - * ace/OS.i: Applied the following patch from Eugene Alterman - . - - It appears that Win32 mmap() emulation implements MAP_FIXED - semantic under the wrong assumption about MapViewOfFileEx() - behavior. In fact if a non-null base address is supplied to - MapViewOfFileEx() it behaves like mmap() with MAP_FIXED set - it - maps at that address or fails if it unable to do it. If a null - base address is supplied it behaves like mmap() with MAP_FIXED - not set. - - This means that if MAP_FIXED is not set the emulation should set - the base address argument to 0, and it should fail if MAP_FIXED - is set and is 0. - - Besides, it makes sense for WinCE emulation to fail whenever - MAP_FIXED is set since WinCE does not support MAP_FIXED - semantic. - -Wed Dec 18 08:29:04 2002 Rich Seibel - - * ace/Synch.cpp: Added code to generate a unique name if a - platform lacks unnamed semaphores (MACOSX 10.2). - - * ace/Sock_Connect.cpp: Added a conditional include for - ifaddrs.h (MACOSX 10.2). - - * tests/Priority_Task_Test.cpp: Changed test to notify - if platform does not implement getprio instead of fail. - (MACOSX 10.2) - - * tests/MM_Shared_Memory_Test.cpp: Changed compile time test to - pick up the right implementation on platform that have - POSIX semaphores but not SYSV semaphores (MACOSX 10.2). - - * ace/Lib_Find.cpp - ace/config-macosx.h: - - Gave the builder a choice of where to get the dlcompat package. - - * ace/OS.i - ace/config-macosx.h: - - Added a switch to eliminate an error message since the dlcompat - provided APPLE dynamic linkage does not support unloading thus - complains on the use of dlclose. - -Wed Dec 18 08:29:04 2002 Rich Seibel - - * ace/Timer_Wheel_T.cpp: - - Changed types from int to long to match the return - for timer ids. - -Wed Dec 18 05:42:52 2002 Douglas C. Schmidt - - * ace/High_Res_Timer.cpp (global_scale_factor): The INTEL compiler - can also set the global scale factor. Thanks to Chris Kohlhoff - for reporting this. - -Tue Dec 17 11:22:31 2002 Phil Mesnier - - * ace/Codeset_IBM1047.h: - * ace/Codeset_IBM1047.cpp: - - Added implementations of ncs and tcs methods to return the proper - values as defined by the OSF's code and character set registry. - - * ace/CDR_Stream.cpp: - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - - Stripped out the reference counting on translator objects to avoid - build problems. - -Tue Dec 17 11:30:31 2002 Balachandran Natarajan - - * ACE-INSTALL.html: Fixed fuzz errors. - -Tue Dec 17 08:20:22 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - - Fixed a problem with generated Makefiles where CFG is defaulted. - - * bin/MakeProjectCreator/templates/nmake.mpd: - - Modified the dependencies file name. - -Tue Dec 17 07:03:40 2002 Chad Elliott - - * ace/Array_Base.h: - * ace/Atomic_Op_T.cpp: - * ace/Message_Queue.cpp: - * ace/OS.h: - - Added #include's for various files for the Green Hills compiler - for VxWorks. - - * ace/OS.cpp: - - Added a call to ::inet_aton() with a non-const char* for VxWorks. - - * ace/Thread_Adapter.cpp: - - Changed the pointer type from ACE_THR_FUNC_INTERNAL to - ACE_THR_FUNC. - - * ace/config-vxworks5.x.h: - - Added a #define for ACE_LACKS_CLEARERR for the Green Hills - compiler. - -Mon Dec 16 12:28:05 2002 Douglas C. Schmidt - - * ACE-INSTALL.html: Fixed some broken links. Thanks to - Jonathan Wackley for reporting this. - -Sat Dec 14 13:06:09 2002 Douglas C. Schmidt - - * docs/ACE-categories.html: Removed all mention of the - ACE_Multiplexor class. Thanks to Marc Tardif - for reporting this. - -Tue Dec 17 07:37:40 2002 Balachandran Natarajan - - * tests/README: Fixed typos. - -Mon Dec 16 23:31:25 2002 Balachandran Natarajan - - * THANKS: Added Guan Joe to the hall of fame. - -Mon Dec 16 18:11:03 2002 Balachandran Natarajan - - * ace/CDR_Stream.h: Moved the destructor of - ACE_Char_Codeset_Translator to be public. - -Mon Dec 16 13:14:34 2002 Phil Mesnier - - * ace/CDR_Stream.cpp: - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - Preparing for codeset negotiation. The ACE input/output CDR - streams' support for wide character IO is enhanced by adding a - flag to allow or disallow wchar i/o regardless of whether a - translator is present. There are times when wchar is not - allowed, such as GIOP 1.0, or when a native codeset for wchar - was not specified. In CORBA, a native wchar codeset must be - specified, it may not be defaulted. Within the ACE CDR streams, - wchar i/o is allowed by default, to ensure backwards - compatibility. - - I fixed a few of the reading and writing methods to ensure that - the good_bit_ flag is cleared if an error occurs. This was not - happening in all cases, leading to errors elsewhere. - - I have extended the definition of the - ACE_[W]Char_Codeset_Translator classes to make them reference - counted objects. There are some codesets that support shifting - and may be stateful. By using reference counting, the CDR - streams don't have to worry about ownership of stateful - translators. - - Finally, the translators now have pure virtual methods that - return the native and translated codeset ID values. These values - refer to entries in the DCE Code and Character Set Registry, - which is the reference for CORBA codeset ids. Anyone - implementing a char or wchar codeset will have to supply a - numeric value for the native codeset (ncs) and the translated - codeset (tcs). NCS refers to the codeset of the text on the - application side of the stream, and TCS refers to the codset of - the text on the "wire" side of the stream. - - These changes are not everything that is required to support - codeset negotiation, but it is all the changes required to the - CDR streams. - -Sat Dec 14 08:56:23 2002 Douglas C. Schmidt - - * ace/Timer_Queue_T.cpp (timeout): Commented out the change below - until we figure out how to break the dependencies on the - Reactor. Thanks to Bala for reporting this. - -Fri Dec 13 16:05:05 2002 Douglas C. Schmidt - - * ace/Timer_Queue_T.cpp (timeout): Optimize Steve's patch below - for the case where the upcall is coming from a reactor. Thanks - to Irfan for pointing this out. - -Fri Dec 13 21:12:29 2002 Steve Huston - - * ace/test_config.h: Add __hpux to the conditions needed to instantiate - ACE_Singleton::singleton_. Also see - Sat Nov 23 18:12:37 2002 Steve Huston - -Fri Dec 13 18:25:42 2002 Steve Huston - - * ace/config-aix-4.x.h: Set ACE_HAS_THREADS to 1 or 0 based on the - compiler's predefined macros. This lets users build easier without - having to worry about what ACE expects - they just have to invoke - the compiler correctly. Add #include "ace/config-posix.h" to pick - the detectable POSIX-ish settings. - - * ace/config-posix.h: If ACE_HAS_THREADS is defined as 0 on entry, - undef it and don't pick up the POSIX threads settings. Allows - single-threaded builds using this very handy config. - -Fri Dec 13 18:10:31 2002 Steve Huston - - * ace/OS.cpp (wchar snprintf, sprintf): Change the selection for - ability to use vswprintf from ACE_HAS_XPG4_MULTIBYTE_CHAR to - _XOPEN_SOURCE >= 500. vswprintf came in at XPG5 (and C99). - - * ace/config-hpux-11.00.h: Enable ACE_HAS_SNPRINTF if - _INCLUDE_HPUX_SOURCE is set after including stdsyms.h. - - * ace/config-posix.h: Set ACE_HAS_SNPRINTF if _XOPEN_SOURCE >= 500. - -Thu Dec 12 20:11:39 2002 Steve Huston - - * ace/Timer_Heap_T.cpp (cancel): Release the queue lock before - upcalling to handle_close. Fixed Bugzilla #1387. - -Thu Dec 12 12:50:34 2002 Douglas C. Schmidt - - * ace/OS.cpp: Changed a cast of unique_name to &unique_name to - fix a bug on pSoS. Thanks to Dieter Knueppel - for reporting this. - -Thu Dec 12 12:55:41 2002 Steve Huston - - * ace/OS.h: Add missing snprintf() method declaration for ACE_HAS_WCHAR - -Thu Dec 12 08:49:31 2002 Balachandran Natarajan - - * ace/Log_Msg.cpp: Fixed a warning in LynxOS builds. - -Thu Dec 12 06:18:02 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/Parser.pm: - - Fixed a bug with setting and retrieving the current working - directory. Thanks to Steve Huston for - reporting this. - -Thu Dec 12 00:01:37 2002 Balachandran Natarajan - - * netsvcs/clients/Naming/Client/Makefile: Fixed a small problem in - static builds. Hopefully they should be fine in the next round - of builds. - -Wed Dec 11 23:11:09 2002 Balachandran Natarajan - - * bin/clean_sems.sh: A shell script to remove - semaphores. Integrating the script that Ossama used to the - daily build system. - -Wed Dec 11 21:05:49 2002 Steve Huston - - * ace/Message_Block_T.cpp: - * examples/ASX/Message_Queue/priority_buffer.cpp: - * examples/Misc/test_read_buffer.cpp: - * examples/Threads/TSS_Obj.h: Added missing - #include "ace/Malloc_Base.h" to build clean on AIX, Visual Age C++ 6. - - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv2/Reactor_Logging_Server.cpp: - * examples/C++NPv2/Service_Reporter.cpp: - * examples/C++NPv2/SLD.cpp: - * examples/C++NPv2/SLDex.cpp: Add missing #include - "ace/Log_Msg.h" to pick up ACE_ERROR_RETURN for AIX Visual Age C++ 6. - - * examples/C++NPv2/Makefile.SLD: Remove the tempinc-bashing - redefinition of COMPILE.cc... that only works if there's a single - source file for each program. - -Wed Dec 11 19:33:19 2002 Steve Huston - - * ace/config-hpux-10.x-hpc++.h: - * ace/config-hpux-10.x.h: Picked up these changes from the 11.x config: - - Sat Nov 23 17:54:18 2002 Steve Huston - - * ace/config-hpux-11.00.h: Control the ACE_HAS_STANDARD_CPP_LIBRARY - and ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB settings by compiler- - defined macro _HP_NAMESPACE_STD, not passing them through from - platform_hpux_aCC.GNU. Similarly with ACE_HAS_EXCEPTIONS (define - it unless __HPACC_NOEH is set). This breaks a coupling from the - platform_hpux_aCC.GNU file, and will make autoconf easier as well - as making it easier for users to write makefiles without following - the ties through and trying to duplicate them. - Also, include config-posix.h to let it pick up system-supplied - settings. - - * ace/Time_Value.h: For HP-UX 10, need to typedef timespec_t because - the OS doesn't define it. - -Wed Dec 11 17:05:28 2002 Balachandran Natarajan - - * examples/Reactor/WFMO_Reactor/Talker.cpp: Fixed a warning in - Borland builds. - -Wed Dec 11 17:00:21 2002 Balachandran Natarajan - - * ace/WIN32_Asynch_IO.cpp: Fixed a warning in Borland builds. - -Tue Dec 10 19:42:29 2002 Steve Huston - - * ace/OS.{h cpp}: Added new method, ACE_OS::snprintf() that wraps - native snprintf() if available (ACE_HAS_SNPRINTF for char, - ACE_HAS_XPG4_MULTIBYTE or ACE_WIN32 for wide char); else returns - -1, ENOTSUP. - - * ace/config-linux-common.h: Add detection for ACE_HAS_SNPRINTF. - - * ace/config-win32-common.h: Removed #define ACE_HAS_VSWPRINTF. - vswprintf() on Windows is not the standard way, and this setting - was only used for Win32. See comments in OS.cpp, sprintf(wchar_t...) - for more info. Added ACE_HAS_SNPRINTF in its place. - - * ace/Log_Msg.cpp (log): Don't overrun the msg_ buffer while - building the logged message. Silently stops logging characters - when the limit is reached. - Also, on %a aborts, don't just do a "while (1);" on WinCE. - Forcing the user to cycle power is not a good idea. - - * tests/Log_Msg_Test.cpp: Add a test case for logging a string - that can't possibly fit in the logging buffers. - -Tue Dec 10 18:10:41 2002 Steve Huston - - * tests/Proactor_Test.cpp: Changed the default proactor type to - DEFAULT. If a specific proactor implementation type is desired, that - must be specified now. This matches ACE's behavior that users will - get unless they specifically change it. Also, changed loglevel to - be 0 (only highlights and errors), 1 (more progress information), - and 2 (all operation parameters and result information). The default - is 0, allowing for increased load on this test without creating - gigantic log files. All platforms now use the same test parameters - (clients, byte counts, threads, etc.) except that if the SUN - proactor is selected, the test will run with one thread regardless - of user selection. The ACE_SUN_Proactor's completion detector - (aiowait) is not multithread safe. - -Tue Dec 10 17:19:06 2002 Balachandran Natarajan - - * tests/OS_Test.cpp (ACE_TMAIN): Integrated the latest tests from - Alain for string_strsncpy_test (). The test is more robust and - tests things better. It also has comments on what it is testing - :-). - -Tue Dec 10 16:53:29 2002 Steve Huston - - * tests/OS_Test.cpp: Add missing '=' signs to fix compile error on - wide-char builds. - -Tue Dec 10 16:05:37 2002 Balachandran Natarajan - - * Makefile: Added a target 'reverseclean' - * bin/reverse_clean: Added a small perl script that does a - realclean in the reverse order on the directories passed to - it. - - The motivation for this is that some of our builds dont clean up - properly due to the dependencies. The reason for this is that - ace/ACE_COMPONENTS.list gets wiped out first, preventing things - that examine the components list (like netsvcs) from getting - cleaned. Hence we need to do a 'realclean' in reverse order of - the builds. - -Tue Dec 10 13:23:37 2002 Nanbor Wang - - * bin/PerlACE/Process.pm: - * bin/PerlACE/Process_Win32.pm: - * bin/PerlACE/Process_Unix.pm: Changed WAIT_DELAY_FACTORY from a - data member in Process_Win32 to a global data in - PerlACE::Process. You can now define an environment variable - "ACE_RUNTEST_DELAY" on both Win32 and UNIX to multiply the wait - time with the number. The same trick that I added last time - into Process_Win32 to invoke tests with purify should also work - with valgrind. - - * bin/PerlACE/Run_Test.pm (waitforfile): Changed to multiply the - wait time with the PerlACE::Process::WAIT_DELAY_FACTOR . - -Tue Dec 10 10:20:35 2002 Balachandran Natarajan - - * ace/Synch.cpp: Commented out the dump () call on ACE_cond_t, - which caused build errors from the checkin "Mon Dec 9 18:54:09 - 2002 Douglas C. Schmidt ". There is - no dump method on ACE_cond_t. - - Fixed the return type of the implementation to match the - declaration. - -Mon Dec 9 18:54:09 2002 Douglas C. Schmidt - - * ace/Synch.{h,cpp}: Added a dump() method to the template - specialization of ACE_Condition. - Thanks to Mathias Waack for reporting - this. - - * ace/Get_Opt.{h,i} Added a new argc() accessor. Thanks to - Volker Boerchers for contributing this. - -Mon Dec 9 17:58:31 2002 Steve Huston - - * tests/Multicast_Test.cpp: Added missing template instantiation for - Sun Workshop 5 compiler. - -Mon Dec 9 17:27:49 2002 Steve Huston - - * tests/Recursive_Condition_Test.cpp: In test_4, wait for the - waiter thread to wake up and exit itself before checking the - mutex recursion count. Else, the waiter may have the mutex while - the main thread is checking the count and detect a false fail. - -Mon Dec 9 17:02:41 2002 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: Change from using - -qtemplateregistry to use -qtempinc for Visual Age C++ 6 template - handling. -qtemplateregistry is a nice idea, but generates too - many errors from missing templates. Using -qtempinc still generates - gobs of multiple-instantiation warnings, but the build is correct - and the tests run. - - * bin/aix_shr: Add the error number patterns for VA 6's multiple - template instantiation warnings to the filter-out pattern. - -Mon Dec 9 15:42:39 UTC 2002 Don Hinton - - * examples/C++NPv1/Reactive_Logging_Server_Ex.cpp: Removed - duplicate template specialization for ACE_Hash on - Windows that's no longer needed. - -Mon Dec 9 07:41:39 2002 Balachandran Natarajan - - * tests/OS_Test.cpp: - * ace/OS_String.cpp (strsncpy): Fixed a cut and paste error. - -Mon Dec 9 00:09:55 2002 Balachandran Natarajan - - * ace/INET_Addr.cpp (get_host_addr): Changed the usage of strncpy - () to strsncpy (). Thanks to Alain Decamps for donating this patch. - -Sun Dec 8 23:56:09 2002 Balachandran Natarajan - - * ace/OS_String.cpp: Applied patches from Alain Decamps to make - strsncpy () more robust. If dst == src, the return string will - have utmost 'maxlen'. - - * tests/OS_Test.cpp: Added a test case for strsncpy (). Thanks to - Alain Decamps for donating the patch. - -Sun Dec 08 22:44:07 2002 Balachandran Natarajan - - * ace/Functor.h (void *): - * ace/Functor.i: Added a template specialization for ACE_Hash . - -Sun Dec 08 09:45:34 UTC 2002 Johnny Willemsen - - * ace/Map_Manager.h: - * ace/SString.h: - * ace/Unbounded_Queue.h: - Improved doxygen documentation - -Sun Dec 08 09:37:12 UTC 2002 Johnny Willemsen - - * etc/*.doxygen: - Set JAVADOC_AUTOBRIEF to NO in all doxygen config files. When - only javadoc style documentation is used, only detailed documentation - is generated. - -Sun Dec 08 01:17:26 2002 Nanbor Wang - - * ace/Event_Handler.cpp: Fixed a typo. - -Thu Dec 5 20:30:56 2002 Douglas C. Schmidt - - * ace/Event_Handler.cpp: Updated the implementation of - ACE_Event_Handler::read_adapter() so that the code is consistent - with the stated semantics. Thanks to Ron Muck - for the fix. - - * ace/OS_Dirent.inl (readdir_r): Enhanced the - ACE_OS_Directn::readdir_r() wrapper facade so that it returns 1 - (i.e., "done") when an error occurs. Thanks to Abhay Kulkarni - for reporting this. - -Sat Dec 7 19:54:12 2002 Steve Huston - - * ace/OS.h: For WinCE, define S_IFDIR and S_IFREG file mode masks. - Also, added define for ENXIO if not supplied (like on WinCE). - -Sat Dec 07 14:29:47 2002 Nanbor Wang - - * ace/ACE.cpp (format_hexdump): This change fixed the problem that - a character is missing when the last line has less than 16 bytes - or less to display. Thanks to Terry Lao for - submitting the patch, and Johnny Willemsen - for reviewing the change. - -Fri Dec 6 23:58:47 2002 Balachandran Natarajan - - * ace/CDR_Stream.cpp: - * ace/CDR_Stream.i: Set good_bit_ to zero whenever the sanity - check for remaining length in the stream fails. Thanks to Jerry - D. De Master for pointing out the - problem. - - * ace/CDR_Array_Test.cpp: Extended the test to include test for - checking the value of good_bit () by forcing an erroneous read. - -Fri Dec 6 16:26:49 2002 Krishnakumar B - - * ace/FILE_Addr.cpp (set): Windows appends ASCII 'a' - 'z' and - 'A' - 'Z' to generate unique filenames and gives up if the - character in the template is a non-alphabetic character. In such - cases, it returns a NULL. Make sure that we supply a template - with a alphabetic character before XXXXXX as well as check for a - NULL return value. - -Thu Dec 5 22:19:41 2002 Steve Huston - - * ace/OS.{h i}: Added ACE_OS::sigwaitinfo() wrapper. - - * ace/POSIX_Proactor.{h cpp} (ACE_POSIX_SIG_Proactor): Clean up some - spelling and formatting in documentation comments. Clean up the - signal calls, and substitue ACE_OS calls for naked API calls. - Unless we have specific evidence to the contrary, trust what the - OS says with signal information. Otherwise, if we run through - all the aiocbs on every signal, we could get into a situation - where deferred I/O operations are never restarted. - - * ace/POSIX_CB_Proactor.h: Changed the comments to say this is a - callback-based proactor, not an SGI IRIX one. The callback - paradigm is part of newer POSIXes and available on more than - SGI... HP-UX, for instance. - -Thu Dec 5 20:33:18 2002 Steve Huston - - * ace/config-aix-4.x.h: Removed ACE_NEEDS_DEV_IO_CONVERSION. This - seems like a ludicrous workaround to some old, buggy compiler. - -Thu Dec 5 14:35:50 2002 Balachandran Natarajan - - * netsvcs/clients/Naming/Client/Makefile: Do not build in static - builds. - -Thu Dec 5 09:45:25 2002 Douglas C. Schmidt - - * examples/Synch/proc_sema.cpp: Fixed some typos. Thanks to - Andy King for reporting this. - -Thu Dec 5 07:39:45 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Removed Bug_1020_Regression from the - nightly regression test on Win32. - -Thu Dec 5 09:58:45 UTC 2002 Don Hinton - - * ace/config-openbsd-pthread.h: Added - ACE_LACKS_PERFECT_MULTICAST_FILTERING 1. This should - fix the errors in the test/Multicast_Test in the - nightly autobuilds. - -Wed Dec 4 21:53:28 2002 Steve Huston - - * ace/OS.h: Include for __hpux platform. - * ace/OS.cpp (num_processors_online): Try the syscall for this - on HP-UX if __hpux is defined, not hpux (only set for g++). - -Wed Dec 4 21:18:31 2002 Steve Huston - - * ace/Proactor_Timer_Test.cpp: Fix incorrect use of pointer-integer - casting. Log pointers with %@, not %x. - -Wed Dec 4 21:11:41 2002 Steve Huston - - * tests/Proactor_Test.cpp: Set all the default options and values - before parsing command line options to make it easy to predictably - vary things by hand. Also, rather than run for a determined number - of seconds, run a specific number of bytes around the loop. This - limits the size of the log, especially nice for fast processors. - Thanks to Johnny Willemsen for this idea. - -Wed Dec 4 18:37:10 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added a Server_Connection_Purging to the - nightly regression tests. - -Wed Dec 4 17:47:49 2002 Steve Huston - - * tests/Proactor_Test.cpp: On Sender read complete, start another - read if either in full duplex mode OR writing has been stopped. - We want to catch the Receiver closing the socket (read 0 bytes). - -Wed Dec 4 11:41:15 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added a Bug_1020_Regression to the - nightly regression test on Win32. - -Tue Dec 3 20:47:39 2002 Steve Huston - - * ace/SSL/SSL_Context.cpp: Add explicit instantiation of - ACE_Singleton::singleton_. - * netsvcs/lib/Name_Handler.cpp: Add explicit instantiation of - ACE_Singleton::singleton_. - * netsvcs/lib/Server_Logging_Handler.cpp: Add explicit instantiation of - ACE_Server_Logging_Handler_T::request_count_; - * tests/Framework_Component_DLL.cpp: Add explicit instantiation of - ACE_DLL_Singleton_T, - ACE_SYNCH_MUTEX>::singleton_. - * tests/MEM_Stream_Test.cpp: Add explicit instantiation of - ACE_Singleton, - ACE_SYNCH_RECURSIVE_MUTEX>::singleton_. - * tests/Process_Strategy_Test.cpp: Add explicit instantiation of - ACE_Singleton::singleton_. - * tests/Timeprobe_Test.cpp: Add explicit instantiation of - ACE_Singleton::singleton_. - - These are similar to those done in: - Sat Nov 23 18:12:37 2002 Steve Huston - - * netsvcs/clients/Naming/Client/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile: Add ACELIB to LIBS - to include -lACE for building the shared libs. rules.lib.GNU - doesn't add VLDLIBS when linking a shared lib, but rules.bin.GNU - adds it for binaries. This should probably be changed, but it's a - quagmire to wade into at this point, and autoconf is coming. - This fix is needed now to get this stuff building with g++ on AIX. - -Mon Dec 2 20:09:29 2002 Steve Huston - - * examples/C++NPv1/Reactive_Logging_Server_Ex.cpp: - * ACEXML/common/Mem_Map_Stream.cpp: - * ACEXML/common/URL_Addr.cpp: - * ACEXML/common/XML_Codecs.cpp: Added missing explicit template - instantiations to build clean on Sun Workshop 5. - -Mon Dec 2 19:41:27 2002 Steve Huston - - * tests/Proactor_Test.cpp: Rather than close connections outright - when beginning to shut down test, just shut down the write side. - This is an effort to make the receiving closes cleaner. - -Mon Dec 2 17:58:06 2002 Balachandran Natarajan - - * ace/ACE.cpp: Fixed a compile error with g++. - -Sat Nov 30 09:18:51 2002 Douglas C. Schmidt - - * ace/ACE.{h,cpp}: Added a new crc32() method that works on - an iovec. Thanks to Tufan Oruk for contributing - this. - - * THANKS: Just added our 1,600 contributor to ACE+TAO! - -Mon Dec 02 18:59:33 UTC 2002 Johnny Willemsen - - * ace/DLL.h: - * ace/Dirent.h: - * ace/Future_Set.h: - * ace/UPIPE_Connector.h: - * ace/UPIPE_Acceptor.h: - * ace/UNIX_Addr.h: - * ace/Configuration_Import_Export.h: - Improved doxygen documentation. - -Mon Dec 02 18:47:32 UTC 2002 Johnny Willemsen - - * THANKS: Added Tim Smith - -Sun Dec 01 10:16:45 2002 Balachandran - - * ACE version 5.2.7 released. - -Sat Nov 30 22:46:00 2002 Balachandran Natarajan - - * THANKS: Added Christophe Vedel to the hall of fame. - -Fri Nov 29 12:23:14 2002 Nanbor Wang - - * ace/Thread_Manager.h (ACE_Thread_Manager): Changed all the - accessors to the Thread_Descriptor to be protected. - - * ace/Thread_Manager.i: Removed assertion test for null - Thread_Descriptor pointer. This can happen when calling - thread_desc_self() from a thread not spawned by the - Thread_Manager, e.g., the main thread. - - Added checks in all ACE_Thread_Manager::at_exit for null - thread_desc_self to avoid crash. - - Thanks to Mathias Waack for reporting - the bug. - -Thu Nov 28 06:36:04 2002 Douglas C. Schmidt - - * apps/soreduce/Makefile: Changed INSBIN from $ACE_ROOT/bin/soreduce/ - to $ACE_ROOT/bin/. Thanks to Jaroslaw Nozderko - for reporting this. - -Thu Nov 28 07:54:28 2002 Craig Rodrigues - - * docs/tutorials/022/Acceptor_Service.h: Add include of svc_export.h - to fix compilation errors. Thanks to Viktor Ransmayr - for reporting the problem. Not - sure whether this example would still compile fine. - -Thu Nov 28 09:04:12 UTC 2002 Johnny Willemsen - - * ace/FILE.h: - * ace/Default_Constants.h: - Improved usage of doxygen commands. - -Thu Nov 28 07:23:12 UTC 2002 Johnny Willemsen - - * ace/Typed_SV_Message_Queue.h: - * ace/Strategies_T.h: - * ace/Framework_Component.h: - Improved doxygen documentation. - - * ace/TLI_Connector.i: - Made method definition and implementation the same. - -Wed Nov 27 22:38:15 2002 Balachandran Natarajan - - * ace/Connector.h: - * ace/Connector.cpp: Fix for BUG 1361. Please see - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1361 for - more details on the problem. - - The fix is based on the assumption that ACE_Connector need not - be resumed by the TP_Reactor when used for asynch connects. - The supporting reason for this assumption is that during - connection completion or connection closure, the handler - ie. the ACE_Connector in this case is removed from the - Reactor. Hence this fix, which essentially implements the - virtual function resume_handler () and prevents itself from - being resumed. Thaks to Irfan for reviewing the fix. - -Wed Nov 27 20:35:49 2002 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: Add Visual Age C++ 6 to - the list of compiler versions it knows about. For VA 6, use the - new -qtemplateregistry build option to try to be more efficient - about template compilation. It's still lamer than most though, and - Visual Age C++ 6 needs the aixshr filter to weed out the Duplicate - Symbol warnings. - - * include/makeinclude/rules.local.GNU: Add templateregistry to the - files/directories removed on clean. It's used by Visual Age C++ 6. - -Wed Nov 27 19:42:51 2002 Steve Huston - - * tests/MT_Reactor_Upcall_Test.cpp: Send and receive each message - field specifically; don't rely on the type and size fields being - adjacent in memory. On 64-bit Solaris w/ Forte 7 and on 64-bit - Windows XP, they aren't. - -Wed Nov 27 15:47:41 2002 Steve Huston - - * ace/config-aix5.1.h: Add #define ACE_HAS_AIO_CALLS, but commented - out. AIX did things differently enough here to be a real problem. - It should be possible to get AIO working on AIX 5, but it will - take some real work. - - * ace/POSIX_Proactor.cpp: Add #include "ace/ACE.h" - - * ace/Sock_Connect.cpp: Visual Age C++ 6 still needs to hack to - get the templates built correctly :-( Changed the compile-time check - to an alleged Visual Age C++ 7 to see if they get it right then. - - * ACEXML/common/Env.i: Add missing #include "ace/Log_Msg.h" to pick - up ACE_ASSERT. - - * ACEXML/common/FileCharStream.cpp: - * ACEXML/common/StrCharStream.cpp: Add missing #include "ace/Log_Msg.h" - - * ACEXML/common/NamespaceSupport.h: - * ACEXML/parser/parser/Entity_Manager.h: Add missing #include - "ace/Synch.h" - -Wed Nov 27 07:23:30 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Two new tests cannot run in single - threaded builds. - -Wed Nov 27 09:30:33 UTC 2002 Johnny Willemsen - - * ace/DLL.h: - * ace/Singleton.h: - Improved doxygen documentation. - -Tue Nov 26 20:04:38 2002 Steve Huston - - * tests/Proactor_Test.cpp: Added checks for condition where a read or - write fails to initiate because the socket was closed. For Windows, - this is a ERROR_NETNAME_DELETED error on the ReadFile/WriteFile call - under ACE_WIN32_Asynch_Read/Write_Stream. The test now checks for - this and doesn't report an error, but this is a departure from - what one would expect from a socket. It might be better if the - underlying call was changed to WSARecv/WSASend for Winsock2-enabled - systems. - -Tue Nov 26 16:08:22 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added two new tests to our daily builds. - -Tue Nov 26 15:10:57 2002 Balachandran Natarajan - - * ACE-INSTALL.html: Updated the file to have the right GNU make - version. Our make's dont work well with 3.78 and lower. - -Mon Nov 25 23:49:38 2002 Craig Rodrigues - - * ace/config-macosx.h: Updates for pthread configuration, provided - by John Zorko and Rich Seibel - . - - * ace/OS.i: - * ace/Sock_Connect.cpp: Remove unnecessary __MACOSX__ macros. - See: Thu Oct 17 19:18:02 UTC 2002 Craig Rodrigues - - -Mon Nov 25 18:20:41 2002 Steve Huston - - * ace/config-hpux-11.00.h: Added #define ACE_SIZEOF_WCHAR _WCHAR_T - to get ACEXML to compile. ACEXML's usage of ACE_SIZEOF_WCHAR breaks - the previous allowance for ACE_SIZEOF_WCHAR to be sizeof (wchar_t) - because it uses ACE_SIZEOF_WCHAR in a math expression. - - * examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp: Added - #include "ace/INET_Addr.h" to build clean on HP-UX. - -Mon Nov 25 20:32:02 UTC 2002 Don Hinton - - * ace/README: Added ACE_LACKS_PERFECT_MULTICAST_FILTERING. - -Mon Nov 25 18:58:33 2002 Johnny Willemsen - - * ace/Local_Name_Space_T.cpp: - * ace/Process.h: - * ace/Local_Name_Space_T.h: - * ace/ATM_Params.h: - * ace/Timer_Queue_Adapters.h: - Improved documentation for doxygen generation. - - * ace/Svc_Handler.cpp: - Made method definition and implementation arguments match. - -Sat Nov 23 20:01:36 2002 Balachandran Natarajan - - * apps/*/Makefile: Updated dependecies. Thanks to Erwin Rol for - pointing out the problem. - -Sat Nov 23 18:12:37 2002 Steve Huston - - * ace/SString.cpp: Add explicit instantiation of - ACE_String_Base::NULL_String_ and - ACE_String_Base::NULL_String. - * ace/Based_Pointer_Repository.cpp: Add explicit instantiation of - ACE_Singleton:: - singleton_. - * ace/Dynamic.cpp: Add explicit instantiation of - ACE_TSS_Singleton::singleton_. - * tests/test_config.h: Added explicit instantiation of - ACE_Singleton::singleton_. - - The above are only done when using automatic template instantiation - on AIX with g++. Without this, the compiler and linker don't get - things done right and static data members in templates don't get - instantiated correctly. Thanks to Max F. Bilyk - for reporting this problem. - - * ace/SSL/Makefile: Set LIBS = $(ACELIB). Else it won't link on - AIX, g++. - - * include/makeinclude/platform_aix4_g++.GNU: Removed. Use - platform_aix_g++.GNU instead. They were similar, though not equal, - and confusing each other. - - * include/makeinclude/platform_aix_g++.GNU: Fixed to work correctly - and is now the one to use for AIX 4 and 5 with g++. - -Sat Nov 23 18:03:41 2002 Steve Huston - - * ace/String_Base.i (compare): Fix a size_t/int mismatch. - -Sat Nov 23 17:54:18 2002 Steve Huston - - * ace/POSIX_CB_Proactor.{h cpp}: Changes to align with recent - ACE_POSIX_AIOCB_Proactor changes: changed handle_events (ulong) to - handle_events_i() and made nonvirtual. Removed get_result_status(), - cancel_aiocb(), and cancel_aio() since they simply forwarded to - ACE_POSIX_AIOCB_Proactor. Remove most of allocate_aio_slot(); call - up to ACE_POSIX_AIOCB_Proactor::allocate_aio_slot then tweak the - aiocb fields for the callback. - - * ace/config-hpux-11.00.h: Control the ACE_HAS_STANDARD_CPP_LIBRARY - and ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB settings by compiler- - defined macro _HP_NAMESPACE_STD, not passing them through from - platform_hpux_aCC.GNU. Similarly with ACE_HAS_EXCEPTIONS (define - it unless __HPACC_NOEH is set). This breaks a coupling from the - platform_hpux_aCC.GNU file, and will make autoconf easier as well - as making it easier for users to write makefiles without following - the ties through and trying to duplicate them. - Also, include config-posix.h to let it pick up system-supplied - settings. - - * ace/OS_Memory.h: In the HP aCC section, remove the checks for - aCC version > 32500 and _HP_NAMESPACE_STD... just use the - ACE_HAS_STANDARD_CPP_LIBRARY setting from config-hpux-11.00.h. - - * ace/Proactor.cpp (ctor): When no implementation is supplied, be - sure to make one up, even w/o presence of realtime signals. - - * include/makeinclude/platform_hpux_aCC.GNU: If stdcpplib is not - specified by user, set it to 1 always, unless the compiler is - a .2x version and not .27 (03.27 (01.27 on 10.20) is the first - version that can do -AA); makes it unnecessary to update this every - time HP releases a new compiler version. Also rearranged the - thread-related compiler option settings to be simpler and easier - to match with what the documentation says to set. Removed the - ACE_HAS_STANDARD_CPP_LIBRARY settings; they're defined in - ace/config-hpux-11.00.h when proper (see above). - Also, added +W930 to CCLFAGS when -AA to stop a spurious warning - about placement operator delete on aC++ 03.37, 03.39. - -Sat Nov 23 17:43:29 2002 Steve Huston - - * ace/ACE.cpp (send_n): Properly update byte count for each message - block in the chain to send. Thanks to Venkita Subramonian - for reporting this and sending a fix. - -Sat Nov 23 16:55:39 2002 Steve Huston - - * tests/MEM_Stream_Test.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Process_Manager_Test.cpp: - * tests/Reactor_Performance_Test.cpp: Replaced calls to the - deprecated ACE_Reactor::run_event_loop() and end_event_loop() - with run_reactor_event_loop() and end_reactor_event_loop(). - - * tests/Proactor_Test.cpp: Add missing \n in an ACE_DEBUG message. - -Sat Nov 23 00:16:59 2002 Craig Rodrigues - - * ace/config-posix.h: Define ACE_HAS_PTHREADS_STD - if platform defines _POSIX_THREADS. - -Fri Nov 22 13:48:39 2002 Nanbor Wang - - * ace/Containers_T.cpp (init_head): Broke up the cascading pointer - assignments to avoid a problem when using position independent - pointer. Thanks to Eugene Alterman for - reporting this. - - * ace/Svc_Conf.l: - * ace/Svc_Conf_l.cpp: Changed to always remove the matching quote - character (' or ") instead of first search for double quote, - then single quote. Thanks to Johnny Willemsen - for sumitting the patch. - -Fri Nov 22 04:52:16 2002 Bala - - * ACE version 5.2.6 released. - -Tue Nov 19 22:36:38 2002 Ossama Othman - - * ace/Time_Value.h (sec, usec, msec): - - Documentation updates/clarifications. - - * ace/Time_Value.cpp (operator++, operator--): - - Fixed postfix increment and decrement operators. Previously - they had the same implementation as their prefix increment and - decrement operator counterparts. A copy of the ACE_Time_Value - is now done prior to in/decrementing it via the corresponding - prefix operator. That copy is returned. A copy is only - performed for the postfix case. - -Tue Nov 19 18:14:10 2002 Pradeep Gore - - * bin/auto_run_tests.lst: - Modified Notify configurations. - - * bin/auto_run_tests.pl: - Checkin on behalf of Irfan - Changed logic so that it checks for - the existence of the executable and not of the parameters passed - to the executable. - -Tue Nov 19 07:09:15 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Tests not runnable in minimum - configuration were being run. Hence prevented them from - running. - -Mon Nov 18 20:49:33 2002 Nanbor Wang - - * examples/IPC_SAP/FILE_SAP/client.cpp (ACE_TMAIN): Changed to use - predefined ACE_DEFAULT_FILE_PERMS instead of the non-portable 0666. - -Mon Nov 18 12:27:46 2002 Balachandran Natarajan - - * ace/Dev_Poll_Reactor.cpp (handler): - * ace/WFMO_Reactor.i (handler): - * ace/Select_Reactor_Base_T.cpp (handler_i): The methods that - returns a signal handler associated with a certain type of - signal, does restrictive sanity checks. One of the checks that - it performs is to see whether a pointer to an event_handler is 0 - just before assigning a new event handler pointer. This check - was not required at all and hence it is now removed. Thanks to - Edan Ayal for reporting this. - -Sat Nov 16 09:38:38 2002 Balachandran Natarajan - - * ace/*/Makefile: - * tests/Makefile: - * examples/*/Makefile: - * performance-tests/*/Makefile: - * ACEXML/*/Makefile: Updated dependencies. - -Fri Nov 15 20:33:02 UTC 2002 Don Hinton - - * ace/SOCK_Dgram_Mcast.h: - * ace/config-all.h: Added new macro for platforms that don't yet - implement the new IGMPv3, perfect multicast filtering, and - replaced the #ifdef linux in the ACE_SOCK_Dgram_Mcast::ctor - with the new macro, since this isn't just a linux thing. - - * ace/config-aix-4.x.h: - * ace/config-freebsd.h: - * ace/config-linux-common.h: - * ace/config-netbsd.h: - * ace/config-openbsd.h: - Defined ACE_LACKS_PERFECT_MULTICAST_FILTERING for these platforms. - - * ace/SOCK_Dgram_Mcast.cpp (open_i): Removed redundant call to - ACE_SOCK::set_option() to set SO_REUSEADDR, since it's set in - the call to ACE_SOCK::open(). This fixes [bug 1111]. - - * tests/Multicast_Test.cpp: Enhanced test by adding new options - control the wait time when running test as a CONSUMER only, - and contol the TTL so the test could be used over routers. - Also cleaned up the code a bit to make it more readable. Thanks - to Bill Fulton for motivating these enhancements. - -Fri Nov 15 14:16:10 2002 Nanbor Wang - - * ace/Thread_Exit.h: - * ace/Thread_Exit.cpp (cleanup): Changed the type of the argument - takes to the generic (void*) and avoid including - in Thread_Exit.h. This eliminated the circular header - dependencies when ACE_LEGACY_MODE is define. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Removed some template files from the build - lists and make sure all template files are not being built. - -Fri Nov 15 13:22:41 2002 Steve Huston - - * tests/Proactor_Test.cpp: On Win32, check for canceled I/O using - ERROR_OPERATION_ABORTED instead of ECANCELED. - -Fri Nov 15 16:51:11 UTC 2002 Craig Rodrigues - - * ace/POSIX_CB_Proactor.h: - * ace/POSIX_CB_Proactor.cpp: - Do not build on Lynx. - -Fri Nov 15 14:14:39 UTC 2002 Craig Rodrigues - - * ace/POSIX_CB_Proactor.h: - * ace/POSIX_CB_Proactor.cpp: - Do not build on Sun. - -Fri Nov 15 14:08:11 UTC 2002 Craig Rodrigues - - * include/makeinclude/platform_linux.GNU: - Linux glibc has aio_ and pthread_ calls in librt.so. - Add fix so that librt.so is linked in if threads=0. - -Fri Nov 15 07:48:37 2002 Balachandran Natarajan - - * tests/OS_Test.cpp: Added the test cases for itoa from - Joseph Sarbak . - -Fri Nov 15 07:08:46 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Fixed a few minor problems that showed - up in the daily builds. - -Thu Nov 14 22:08:49 2002 Steve Huston - - * tests/Proactor_Test.cpp: Make this test behave better: - - At the end of running time, close all the Senders. This should - cancel all the Sender outstanding operations and trip all the - Receivers into finishing their receives and closing themselves. - - Change the default Sender/Receiver count from 20 to 10. This - shrinks the log a bit without sacrificing test quality. - - Change the "inferior platforms" default Sender/Receiver count - from 1 to 3. With Proactor improvements made so far, let's give - these platforms some more exercise and see what happens. - -Thu Nov 14 23:10:32 UTC 2002 Craig Rodrigues - - * ace/POSIX_CB_Proactor.cpp: - * ace/POSIX_CB_Proactor.h: - * ace/POSIX_CB_Proactor.i: - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Proactor.h: - * ace/POSIX_Proactor.i: - * ace/Proactor.cpp: - * tests/Proactor_Test.cpp: - Fixed Proactor so that on platforms that support POSIX IO, - but not POSIX RT signals, it will compile. Use the new - ACE_HAS_POSIX_REALTIME_SIGNALS macro. - -Thu Nov 14 22:47:45 UTC 2002 Craig Rodrigues - - * include/makeinclude/platform_freebsd.GNU: Merged with the - pthread version of this file. To compile without threads, - set, do make threads=0, or set threads=0 in this file. - * include/makeinclude/platform_freebsd_pthread.GNU: Removed. - * ace/config-freebsd.h: Merge with pthread version of this file. - * ace/config-freebsd-pthread.h: Removed. - * ace/OS.h: Use new ACE_HAS_POSIX_REALTIME_SIGNALS macro for - POSIX RT signals stuff, instead of ACE_HAS_AIO_CALLS. - FreeBSD has POSIX AIO, but not POSIX RT signals. - * ace/config-sunos5.6.h: Define ACE_HAS_POSIX_REALTIME_SIGNALS, - ACE_HAS_POSIX_MESSAGE_PASSING. - * ace/config-linux-common.h: Define ACE_HAS_POSIX_REALTIME_SIGNALS, - ACE_HAS_AIO_CALLS. - -Thu Nov 14 16:19:57 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added two tests, Bug_1269_Regression and - Bug_1270_Regression into the daily regression suite. They will - not run on Win32. - -Thu Nov 14 13:35:44 2002 Nanbor Wang - - * ace/Containers_T.cpp: Changed to deallocate internal nodes in - ACE_Double_Linked_List with the allocator. Thanks to Eugene - Alterman for reporting the problem. - -Thu Nov 14 10:57:47 2002 Carlos O'Ryan - - * ace/OS.h (ace_timezone): - - Fixed broken implementation for Linux. Call tzset() and then - return the global "timezone" variable instead. [Bug 1359] - -Thu Nov 14 12:19:51 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - - Modify the way projects are created on windows. If using - cygwin perl then use \n instead of \r\n. - - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - - Sort the list of projects to make the generated solution file more - similar to actual solution files. - -Thu Nov 14 06:16:51 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/Parser.pm: - - Take into account relative directories in the cd() method. - The original optimization overlooked this. - -Thu Nov 14 06:59:12 UTC 2002 Johnny Willemsen - - * ace/Date_Time.{h,i}: - Added update() method with which it is possible to set the values - in ACE_Date_Time based on a passed ACE_Time_Value. - - * ace/Time_Request_Reply.{h,cpp}: - Made the argument of the timeout method const&. Updated doxygen - documentation and marked init() as deprecated because it is a no-op. - -Wed Nov 13 18:28:39 2002 Steve Huston - - * tests/FIFO_Test.cpp: Changed to both clarify the usage of - ACE_FIFO_(Send|Recv)_Msg with and without ACE_HAS_STREAM_PIPES - and test that usage. - -Wed Nov 13 17:39:41 2002 Steve Huston - - * ace/POSIX_Proactor.{h cpp}: - * ace/SUN_Proactor.{h cpp}: Leave two handle_events() methods - available; one with a timeout, one without. Each proactor's - implementations calls an internal handle_events_i() method - that does the right thing. - (start_aio): This is a virtual method used to start an asynch I/O - request from outside the proactor (such as from an asynch read - stream). When the actual operation is to start, start_aio calls - start_aio_i(), implemented differently for the different proactors. - Similar arrangement for cancel_aio(). - - * tests/Proactor_Test.cpp: Cancel all outstanding operations before - trying to abruptly stop everything. - -Wed Nov 13 17:29:31 2002 Steve Huston - - * ace/WIN32_Asynch_IO.h (cancel_uncompleted): Filled in - description of the 'set' parameter. Thanks to Craig - Rodrigues for noticing its omission. - -Wed Nov 13 16:52:04 UTC 2002 Craig Rodrigues - - * ace/Lib_Find.cpp (ldname): MacOS X prepends an underscore to - symbols in shared libaries. - - * ace/config-macosx.h: - * include/makeinclude/platform_macosx.GNU: - - - add support for dlcompat, a third party package which provides - dlopen(), dlsym(), dlcose() functions - - - Define ACE_LD_SEARCH_PATH to DYLD_LIBRARY_PATH and - ACE_LD_SUFFIX to .dylib - -Tue Nov 12 14:12:59 2002 Balachandran Natarajan - - This is a hackish fix for BUG 1361. Please see - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1361 - for details of this problem - - * ace/TP_Reactor.cpp (handle_socket_events): A hack to prevent - BUG 1361 from surfacing for applications like TAO, using the - TP_Reactor. This fix basically ensures that resume_i () is - not called naively. - - * ace/Event_Handler.h: Added a enum type which could be could be - used by the TP_Reactor. - -Tue Nov 12 11:53:29 2002 Steve Huston - - * tests/run_test.lst: Change FIFO_Test from !MSVC to !Win32 to - prevent it from running with Borland on Windows. Thanks to - Johnny Willemsen for pointing this out. - -Tue Nov 12 14:11:33 UTC 2002 Johnny Willemsen - - * ace/Time_Value.h: - Doxygen documentation improvements. - -Tue Nov 12 13:15:12 UTC 2002 Johnny Willemsen - - * ace/Message_Queue_T.h: - Doxygen documentation improvements. - -Mon Nov 11 20:37:18 2002 Ossama Othman - - * bin/auto_run_tests.lst: - - Added Jai's application-controlled membership load balancing - test to the list of regression tests to be run. - -Mon Nov 11 17:57:12 2002 Ossama Othman - - * bin/auto_run_tests.lst: - - Added Carlos' new PortableInterceptor AMI test to the list of - regression tests to be run. - -Mon Nov 11 16:17:59 2002 Nanbor Wang - - * bin/MakeProjectCreator/modules/TemplateParser.pm (relative): - Changed to invoke slash_to_backslash from $self. The original - code only runs on some specific version of perl. - -Mon Nov 11 13:35:53 2002 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.h: Updated - comments on the class ACE_Hash_Map_Bucket_Iterator. Thanks to - Kitty and Irfan for helping with this. - -Mon Nov 11 12:52:41 2002 Steve Huston - - * docs/ACE-subsets.html: Added the Timer component to the list of - buildable pieces. Thanks to Jason Pasion - for reporting this problem. - - * THANKS: Added Jason Pasion to the Hall of Fame. - -Mon Nov 11 12:39:18 2002 Steve Huston - - * ace/FIFO_Send_Msg.cpp (send): When setting iovec length, - static_cast the int length to size_t; the target is not an - int (as the strbuf length is). When returning the sent byte - count, don't include any additional bytes added internally - for record framing. - - * tests/FIFO_Test.cpp: New test to exercise basic and overflow - message-based FIFO I/O. - - * tests/Makefile: - * tests/run_test.lst: Added FIFO_Test. Disabled on MSVC builds - since Windows doesn't have FIFOs. - -Mon Nov 11 09:58:13 2002 Douglas C. Schmidt - - * ace/CDR_Stream.{i,cpp} Add casts to ACE_CDR::Octet and - ACE_CDR::Boolean to prevent warnings when run with MSVC++ level - 4 warnings. Thanks to Lukas Gruetzmacher - for motivating this fix. - - * ace/OS_String.cpp (itoa_emulation): Updated the code so that it'll - work correctly with negative numbers. Thanks to Joseph Sarbak - for reporting this and providing a fix. - -Sun Nov 10 19:38:45 2002 Balachandran Natarajan - - * ace/Message_Block.cpp(copy): The copy () methods were copying - data till the end_ pointer. This is a wrong assumption, - especially in places where the alloted bytes are less than the - allocated bytes. Now we use the space () method to find out the - amount of space available in the data block for copying. Thanks - to Edan Ayal for finding this and providing a patch. - - * ace/Simple_Message_Block_Test.cpp: Added a test which tests - copying in a case where the alloted space is less than the - allocated space. Thanks to Edan Ayal for this test case. - -Sat Nov 9 12:37:54 2002 Douglas C. Schmidt - - * docs/ACE-guidelines.html: Updated the ACE guidelines to - refer to the correct Doxygen links. Thanks to - Johnny Willemsen for reporting this. - -Sat Nov 9 21:48:31 2002 Steve Huston - - * tests/Proactor_Test.cpp: When disabling Nagle's, use IPPROTO_TCP, - not SOL_SOCKET, for the setsockopt level. Fixes set_option errors - in this test log. - -Sat Nov 9 18:49:11 2002 Steve Huston - - * ace/POSIX_Proactor.{h cpp i} (create_asynch_read_stream, - create_asynch_write_stream, create_asynch_read_dgram, - create_asynch_write_dgram, create_asynch_read_file, - create_asynch_write_file, create_asynch_accept, - create_asynch_connect, create_asynch_transmit_file): - Refactored all the factory creation methods from - ACE_POSIX_AIOCB_Proactor to ACE_POSIX_Proactor. - Moved the pseudo task from ACE_POSIX_AIOCB_Proactor to - ACE_POSIX_Proactor as well. - - (handle_events, cancel_aio): - Added these methods to ACE_POSIX_Proactor as pure virtual, - forcing their definition in the specific implementations. - - (start_aio): This is now a pure virtual function that all - more specific proactors need to implement. The old start_aio() - is now start_aio_i(). What used to be ACE_POSIX_AIOCB_Proactor:: - register_and_start_aio() is now ACE_POSIX_AIOCB_Proactor::start_aio. - Which type of I/O to start is now defined by an enum Opcode - that's passed to start_aio(). - - * ace/POSIX_Asynch_IO.{h cpp} (ACE_POSIX_Asynch_Operation): - Replace references to ACE_POSIX_AIOCB_Proactor with - ACE_POSIX_Proactor. Refactoring things out of specific proactor - types. - (ACE_POSIX_Asynch_Read_Stream, ACE_POSIX_Write_Stream, - ACE_POSIX_Asynch_Read_File, ACE_POSIX_Asynch_Write_File, - ACE_POSIX_Asynch_Accept, ACE_POSIX_Asynch_Connect, - ACE_POSIX_Asynch_Transmit_File, ACE_POSIX_Asynch_Transmit_Handler, - ACE_POSIX_Asynch_Read_Dgram, ACE_POSIX_Asynch_Write_Dgram): - Replace args of type ACE_POSIX_AIOCB_Proactor with - ACE_POSIX_Proactor. Matches POSIX_Proactor.* changes above. - Removed all the methods that said they were only there to kill - dominance warnings. These are not needed. - - These things all simplify the proactor framework code. Thanks to - Alex Libman for these ideas. - -Sat Nov 9 13:16:50 2002 Balachandran Natarajan - - * THANKS: Added Simon McQueen to the hall of fame. - -Fri Nov 8 13:04:10 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug in MPC where the idl file name could cause - an error on Windows if it had a slash in it. It would be - converted to a back slash and then interpreted inside a - regular expression which would cause MPC to abort. - -Fri Nov 8 13:00:56 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/EM3ProjectCreator.pm: - * bin/MakeProjectCreator/modules/EM3WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GHSProjectCreator.pm: - * bin/MakeProjectCreator/modules/GHSWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GNUProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GUID.pm: - * bin/MakeProjectCreator/modules/NMakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateInputReader.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/VA4ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VA4WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Performed various optimization which dramatically decreased the - amount of time to generate projects for the entire ACE tree. In - tests, the time went from 2 minutes to 1 minute. - -Fri Nov 8 12:57:57 2002 Chad Elliott - - * bin/MakeProjectCreator/README: - - Added documentation for the new verbatim keyword. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Added functionality to place test verbatim into a generated - project file. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added verbatim markers top, macros, local and bottom. - -Fri Nov 8 12:52:16 2002 Chad Elliott - - * bin/MakeProjectCreator/README: - - Added documentation about the new idlgendir keyword. - - * bin/MakeProjectCreator/modules/GHSWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - - Modified flag_overrides to work with both idlflags and idlgendir. - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Modified all templates that deal with idl files to utilize the - idlgendir keyword. - -Fri Nov 8 04:03:29 UTC 2002 Don Hinton - - * tests/Multicast_Test.cpp: Cleaned up error messages and - error handling and insure that errors are returned. Added - 2 second timeout to call to ACE_Thread_Manager::wait() so - that lost messages won't cause test to hang. - -Wed Nov 6 18:55:22 2002 Steve Huston - - * ace/OS.{h i} (recursive_mutex_cond_unlock, - recursive_mutex_cond_relock): For Windows, don't try to save/restore - CRITICAL_SECTION members individually - there are undocumented - details at work there. Instead, release and acquire the mutex - one fewer times than the recursion count, letting Windows take - care of its internals. Fixes the hung Recursive_Condition_Test on - Windows. This also neatly removes the WinCE conditional code in - this area. - - * tests/Recursive_Condition_Test.cpp: Fix a const error that gcc - pointed out. - -Wed Nov 6 11:12:28 2002 Steve Huston - - * tests/Recursive_Condition_Test.cpp: Replaced ACE_TRACE with - ACE_DEBUG so the log gets all the info. Re-enabled the timer queue - part of the test and added a check to be sure "enough" expirations - are recorded. Added a piece of data protected by the mutex/condition - to be sure threads aren't released too early. - -Tue Nov 5 21:54:40 2002 Balachandran Natarajan - - * tests/run_tests.lst: - * tests/run_tests_remote.lst: Removed these files, since they - served no purpose other than adding to the noise. - -Tue Nov 5 15:51:29 2002 Steve Huston - - * ace/INET_Addr.cpp (set_addr): Add missing ';' in the IPv6 case. - -Tue Nov 5 20:26:33 UTC 2002 Don Hinton - - * tests/tests.mpc: Added Multicast_Test entry. - - * tests/README: Upadate instructions for adding new tests. - -Tue Nov 5 12:12:05 2002 Balachandran Natarajan - - * tests/Multicast_Test.cpp: Fixed compile errors in single threaded - builds. - -Tue Nov 5 11:24:03 2002 Nanbor Wang - - * ace/Process.h: - * ace/Process.i: Added a new method which returns - the actual value returned or 'ed by the child process. - The accessor returns the raw exit status returned by - the system APIs and the value is OS dependent. Changed the - mutator to be a proctected method and declare - ACE_Process_Manager a fried of ACE_Process as - mutator should only be used by ACE_Process_Manager. - - Thanks to Stephen Blake for reporting the - problem. - -Tue Nov 5 05:12:16 2002 Ossama Othman - - * ace/Acceptor.h: - * ace/Connector.h: - * ace/Strategies_T.h: - - Added missing STL-style template traits found in C++NPv2 - including the following: - - addr_type - acceptor_type - connector_type - handler_type - stream_type - base_type - accept_strategy_type - connect_strategy_type - creation_strategy_type - concurrency_strategy_type - recycling_strategy_type - scheduling_strategy_type - - where applicable. The old traits are still available and remain - unchanged. - -Tue Nov 5 05:54:16 UTC 2002 Don Hinton - - * tests/Multicast_Test.cpp: Fixed typo in pragma instantiation, - and replaced an instance of char* with ACE_TCHAR* to fix unicode - builds. Added #ifdef for ACE_HAS_THREADS, since it uses - ACE_Task as an active object. - - * tests/run_test.lst: Turned off Multicast_Test and - Token_Stategy_Test for single threaded builds. - -Mon Nov 4 18:01:25 UTC 2002 Don Hinton - - * tests/Makefile.bor: Added new Multicast_Test. Thanks to - Johnny Willemsen for noticing this. - -Mon Nov 4 16:14:21 UTC 2002 Don Hinton - - * tests/Multicast_Test.cpp (get_handle): Made return type of - definition ACE_HANDLE to match the declaration. Thanks to - Ed Skees for reporting this. - - * tests/Multicast_Test.dsp: - * tests/tests.dsw: Added new dsp. Thanks again to Ed Skees - for providing this. - - * THANKS: Added Ed Skees to hall of fame... - -Mon Nov 4 09:28:34 UTC 2002 Don Hinton - - * ace/SOCK_Dgram.cpp (recv): Corrected method signature in .cpp to - match the one in the .h. The .h version specified iovec*, but - the .cpp had iovec[] which confused doxygen. This fixes bug [1353]. - -Sun Nov 3 19:41:30 UTC 2002 Don Hinton - - * tests/Multicast_Test.cpp: - * tests/Makefile: - * tests/run_test.lst: Added a new test to exercise some of the new - functionality of ACE_SOCK_Dgram_Mcast. - -Sun Nov 3 10:36:50 2002 Balachandran Natarajan - - * tests/run_test.lst: Prevented SV_Shared_Memory test from running - in RH_7.1 configurations. Please see BUGID 1351 for details. - -Sat Nov 2 17:44:00 2002 Balachandran Natarajan - - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_Base.cpp: Fixed a subtle bug in the - Select_Reactor. The following were performed during the bind () - operation, which binds a handle with interested mask to an - event_handler, - - - The new masks were added to the existing wait_set - - and the new masks were also removed from the suspend_set. - - Though the above steps were fine, there exists a possibility - when the reactor could land up with a state when the handle - could be both in the wait_set and suspend_set. If suppose a - handle is initially registered for READ and EXCEPTION with the - reactor and then suspended. If the user calls register_handler - () to register the same handle for READ and WRITE, things could - go totally bizzare. - - The present fix does the following - - - If the handle is suspended, the masks are added to the - suspend_set - - else the masks are added to the wait_set and the flag that - indicates state changes within the reactor is set to 1. - - A pure virtual call is_suspended_i () was added to the - ACE_Select_Reactor_Base class to make the check for a suspended - handle possible within the bind () call. Thanks to Irfan - Pyarali who reported this problem. This - should fix the problem reported in [BUG 1305]. - -Fri Nov 1 07:35:10 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the new - MProfile_Connection_Timeout test to the daily regression tests. - -Thu Oct 31 19:15:49 2002 Nanbor Wang - - * ACEXML/common/Attributes.h: Added the missing inclusion of - ACEXML_Export.h and the #pragma once directive. Thanks to Paul - Marquis for reporting this. - -Thu Oct 31 12:57:10 2002 Nanbor Wang - - * ace/OS.i (fstat): Added check for FILE_ATTRIBUTE_DIRECTORY on - Win32 to set the file type in the st_mode so one can determine - if it's a file or a directory. Thanks to Paul Marquis - for submitting the patch. - -Wed Oct 30 13:47:14 2002 Steve Huston - - * ace/Thread_Exit.cpp: Add #include "ace/Managed_Object.h" to get - the definition of ACE_Managed_Object. - -Wed Oct 30 11:38:36 2002 Irfan Pyarali - - * ace/Timeprobe.h: Fixed formatting of comments that somehow got - messed up in: - - http://cvs.doc.wustl.edu/viewcvs.cgi/ace/Timeprobe.h.diff?r1=4.29&r2=4.30 - -Tue Oct 29 22:27:24 2002 Frank Hunleth - - * apps/gperf/src/Key_List.cpp: Added cast to int on UCHAR_MAX and - USHRT_MAX to remove warnings of comparing signed and unsigned - values under OpenBSD. - - * ace/config-openbsd.h: - * ace/config-openbsd-pthread.h: Added ACE_HAS_MKSTEMP since - OpenBSD has the mkstemp() function, and it helps clear up - linker warnings. Also added ACE_HAS_ALT_CUSERID to clear - up errors due to _cuserid(). Thanks to Craig Rodrigues - for the latter patch. - -Tue Oct 29 15:45:06 2002 Nanbor Wang - - * ace/Thread_Exit.h: - * ace/Thread_Exit.cpp: - * ace/Thread_Manager.h: - * ace/Thread_Manager.cpp: Changed to use ACE_Thread_Manager to - clean up the global TSS ACE_Thread_Exit object instead of - depending on the more general ACE_Object_Manager::at_exit method - so we can better control the order of destruction. The change - makes sure the global TSS ACE_Thread_Exit object will only get - deleted *after* ACE_Thread_Manager has cleaned up all threads - and destroyed itself. - - Thanks to Patrick McNerthney and - Daniel Bell for reporting - the problem. - -Tue Oct 29 16:19:54 UTC 2002 Craig Rodrigues - - * ace/INET_Addr.cpp: - * ace/INET_Addr.i: - * ace/INET_Addr.h: - - Added a reset() method to initialize the underlying sockaddr_in - or sockaddr_in6 structure, and set the address family. Changed - all constructors to use this reset() method. [Bug 1342] - - (INET_Addr::set_addr) the port number was not being set, - so set it. [Bug 1329] - * tests/INET_Addr_Test.cpp: Add test to verify that address family - is being set. - * THANKS: Added Thomas Devanneaux who provided - these fixes. - -Mon Oct 28 20:46:33 2002 Steve Huston - - * ace/SOCK_Dgram_Mcast.cpp (ACE_SDM_helpers::addr_to_string): Use - the "" string in place rather than try to declare it a static. - gcc reports the original usage won't do what you think (keep one - copy for the method) but will duplicate it in each generated - method. Use it as a literal and let the compiler try to place a - single copy in a read-only section. - -Mon Oct 28 20:38:27 2002 Steve Huston - - * ace/Asynch_IO.cpp (ACE_Service_Handler::addresses()): Don't - print addresses from here. It's inappropriate for a framework - to be printing things out without being asked to. - - * ace/POSIX_Asynch_IO.cpp (ACE_POSIX_Asynch_Read_Stream::read): - * ace/WIN32_Asynch_IO.cpp (ACE_WIN32_Asynch_Read_Stream::read): - Don't print a message for a 0-byte/no space read - set errno to - ENOSPC so the caller can figure out what's going on. - - * ace/SUN_Proactor.{h cpp}: - * ace/POSIX_Proactor.{h cpp} (ACE_POSIX_AIOCB_Proactor):Change - 'return_status' arg to get_result_status(), find_completed_aio() - from int to size_t and rename transfer_count; get_result_status() - takes care of sensing -1 count and changing to 0. Passing back - a size_t smooths the path from here through to the result object. - Removed application_specific_code() - reuse the one from - ACE_POSIX_Proactor - this one called it; remove the middle-man. - - * tests/Proactor_Test.cpp: Added addresses() method implementations - to print address with session IDs; helps to match Sender/Receiver - pairs in the log. Also added some logging of basic send/recv info - to help try to track down why this facility doesn't work well. - Added a check for comparable sends/receives when a session ends. - Added a warning if there are outstanding I/O when the session - ends. This probably should be an error, but I haven't thought - through it enough to go that far. For the SUN Proactor, use one - thread by default (not 3) - aiosuspend() is not MT safe. - -Mon Oct 28 12:48:14 2002 Nanbor Wang - - * bin/PerlACE/Process_Unix.pm (Spawn): Return 0 when the function - complete successfully. Thanks to Charles F. Frasch - for reporting and suggesting the fix. - -Sun Oct 27 07:44:32 2002 John Aughey - - * ace/INET_Addr.cpp: Changed the default constructor to only - set the address family rather than doing a full set. This - should exhibit the same behavior without additional overhead. - -Sat Oct 26 21:49:15 2002 Nanbor Wang - - * ace/Process.cpp (wait): - * ace/Process.i (wait): Changed to always update this->exit_code_ - when waiting on a child process to allow method to - function properly. Removed the use of the macro - ACE_OSCALL_RETURN on ACE_OS::waitpid since ACE_OS::waitpid is - already signal safe. - - * ace/Process.h: Changed the type of this->exit_code_ from int to - ACE_exitcode. Updated documentation for mutator method - to better reflect the intention for using this - method. - - Thanks to Artashes Ghazaryan , Jaroslaw Nozderko - , and Stephen Blake - for reporting the problem. - -Sat Oct 26 11:42:04 UTC 2002 John Aughey - - * ace/INET_Addr.cpp: Changed default behavior to set 0 - port and INADDR_ANY address. - -Sat Oct 26 09:45:12 UTC 2002 Johnny Willemsen - - * ace/Timer_Heap_T.h: - Doxygen documentation fix - - * ace/OS.h: - The BCB4 header files don't define ENOTEMPTY, so define this when - detecting the BCB4 compiler. Thanks to Mike Curtis - for reporting this. - - * examples/Reactor/Proactor/test_proactor2.cpp: - Removed not needed return. Fixes a BCB4 build error - - * THANKS: Added Mike Curtis - -Wed Oct 23 16:37:15 2002 Balachandran Natarajan - - * THANKS: Added Sandeep to the Hall of Fame. - -Wed Oct 23 17:20:18 UTC 2002 Don Hinton - - * ace/Service_Object.{h,cpp} (suspend, resume, fini): - Changed return value from void to int so that the - return value of the contained ACE_Service_Type could be - propagated. - - * ace/Service_Repository.cpp (suspend, resume, fini): - Changed to propagate the return value from the - ACE_Service_Type instead of always 0. - -Tue Oct 22 16:26:56 2002 Rich Seibel - - * ace/Basic_Types.h: - Added a test for _BYTE_ORDER, same as BYTE_ORDER and - __BYTE_ORDER. VxWorks defines this. Also note, compilers - that previously automatically looked for _BYTE_ORDER when - only BYTE_ORDER was specified will likely not do so in the - future. This will proactively fix them also. - - * ace/config-all.h: - Moved the use of FUNCPTR until after the include that defines - it. Only affects VxWorks. - -Tue Oct 22 13:11:42 2002 Nanbor Wang - - * ace/OS.cpp (DllMain): Added code to invoke - DisableThreadLibraryCalls during PROCESS_ATTACH when - ACE_DISABLES_THREAD_LIBRARY_CALLS is defined to 1 as described - below. This should enhance performance of applications that - spawn a lot of threads. Thanks to Patrick McNerthney - for suggesting the change. - - We should probably apply the same optimization for the core TAO - libraries. - - * ace/config-win32-common.h: Defined a Win32-only new macros - ACE_DISABLES_THREAD_LIBRARY_CALLS which is default to 0 if not - defined by users. - -Mon Oct 21 17:26:15 2002 Douglas C. Schmidt - - * ace/SPIPE_Acceptor.cpp: Modified - SPIPE_Acceptor::create_new_instance to manually signal the event - used in the ConnectNamedPipe call when an ERROR_PIPE_CONNECTED - status is returned. Also added the handling of the status of - ERROR_NO_DATA to the same logic as ERROR_PIPE_CONNECTED. Thanks - to Patrick J. McNerthney for contributing - this. - -Tue Oct 22 10:20:41 2002 Balachandran Natarajan - - * examples/C++NPv2/Reactor_Logging_Server_T.cpp: Fixed a typo that - broke the builds. My bad :( - -Mon Oct 21 20:13:27 2002 Balachandran Natarajan - - * examples/C++NPv2/Reactor_Logging_Server_T.cpp: - * examples/C++NPv1/Logging_Server.cpp: - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp: - Fix for compile errors on Lynx platform. Thanks to Craig - Rodrigues for supplying the patches. - -Tue Oct 22 12:36:12 UTC 2002 Johnny Willemsen - - * ace/Basic_Stats.h: - * ace/Dirent_Selector.h: - * ace/Service_Config.h: - * ace/Timer_Heap_T.h: - Improved doxygen documentation. - -Mon Oct 21 22:30:51 2002 Balachandran Natarajan - - * tests/SString_Test.cpp (ACE_TMAIN): Fixed a warning in Win32 builds. - -Mon Oct 21 20:04:12 2002 Balachandran Natarajan - - * ace/WIN32_Asynch_IO.h: - * ace/WIN32_Asynch_IO.cpp: Integrated the latest patches from Eric - Frias . - -Mon Oct 21 06:54:12 2002 Balachandran Natarajan - - * tests/Recursive_Condition_Test.cpp (test_4): - * tests/RB_Tree_Test.cpp: Fixed compile errors arising out of M$ - quirks. The scoping rules for 'for' loops are busted and hence - these fixes. These fixes basically change the variable names for - the different for loops inside the same scope. - -Sun Oct 20 21:40:13 2002 Krishnakumar B - - * ACEXML/common/HttpCharStream.cpp: Handle all the error paths - gracefully and don't leak memory/sockets. - -Sun Oct 20 14:06:36 2002 Krishnakumar B - - * ACEXML/common/FileCharStream.cpp (peek_i): Fixed more - compilation errors in Borland WCHAR builds. MSVC sucks... - -Sun Oct 20 11:36:34 2002 Balachandran Natarajan - - * ACEXML/common/FileCharStream.cpp: Fixed a compile error in - Borland builds. The compile error is due to strict enforcement - of scoping rules in a for loop by Borland compiler. - -Sun Oct 20 11:31:45 2002 Balachandran Natarajan - - * ACEXML/common/Makefile.bor: Added Encoding.obj to the list of - object files. Thanks to Johnny for pointing this out. - -Sun Oct 20 11:30:04 2002 Balachandran Natarajan - - * tests/SPIPE_Test.cpp: Fixed compile errors in Borland builds. - -Sun Oct 20 10:16:23 2002 Balachandran Natarajan - - * examples/C++NPv2/display_logfile.cpp: Fix for single threaded - builds. - -Sun Oct 20 10:12:42 2002 Balachandran Natarajan - - * tests/Recursive_Condition_Test.cpp: Fix for single threaded - builds. The ACE_HAS_THREADS were improperly placed. - -Sun Oct 20 09:26:58 2002 Balachandran Natarajan - - * examples/C++NPv1/Makefile: Added changes from "Fri Oct 18 - 21:01:25 UTC 2002 Craig Rodrigues " back - since the changes are fine. Thanks to Craig for pointing that - out. - -Sun Oct 20 13:34:45 UTC 2002 Craig Rodrigues - - * examples/C++NPv2/Makefile: Replace with recursive Makefile which - does not use for loops. Add .NOTPARALLEL target to fix - build errors on parallel builds. - -Sun Oct 20 08:10:43 2002 Balachandran Natarajan - - * tests/Recursive_Condition_Test.cpp: Fixed a unused variable warning. - -Sun Oct 20 00:27:02 2002 Balachandran Natarajan - - * tests/Recursive_Condition_Test.cpp: Fixed a fuzz error. - -Sun Oct 20 00:14:32 2002 Balachandran Natarajan - - * examples/C++NPv1/Makefile: Reverted the change "Fri Oct 18 - 21:01:25 UTC 2002 Craig Rodrigues " since - this opens up some problems. Craig will look into it later and - provide a clean fix. Till then.. - -Sat Oct 19 20:00:00 2002 Stephen Torri - - * tests/Recursive_Condition_Test.cpp: - - Added test to check nesting_level after requiring a Recursive - Condition Mutex multiple times. Also after releasing for the - same number of times. - - * tests/SString_Test.cpp: - * ace/String_Base.i: - - Bug 1323 (Reported by Wayne Erchak ): Fixed. - In the effort to protect from memory problems with non-null - terminated strings the operators '<' and '>' where - rendered useless. Now the comparions use memcmp instead of - strncmp. A series of tests have been added to SString_Test.cpp - to ensure this does not happen again. - -Sat Oct 19 21:58:00 2002 Krishnakumar B - - * ace/Argv_Type_Converter.cpp: - * ace/Argv_Type_Converter.h: - * ace/Argv_Type_Converter.inl: - * ace/Codecs.cpp: - * ace/Codecs.h: - * ace/OS.cpp: - * ace/Vector_T.cpp: - * ace/Vector_T.h: - * ace/WFMO_Reactor.cpp: - * tests/Proactor_Scatter_Gather_Test.cpp: Convert bool to use int. - - * ace/SString.cpp: Removed a redundant initialization to 0. - - * tests/Makefile: Add DIRS_PARALLEL=1 to allow building in - parallel in $ACE_ROOT/tests. - -Sat Oct 19 11:40:22 2002 Steve Huston - - * ace/OS.h: Added a ptrdiff_t typedef for ACE_HAS_WINCE. eVC3, - PocketPC2002 don't define this type. - - * ace/OS.i (recursive_mutex_cond_unlock, recursive_mutex_cond_relock): - PocketPC 2002 doesn't have the RecursionCount member in the - CRITICAL_SECTION. - - * ace/OS.cpp: ACE-ified the ACE_CE_ARGV class. - - * ace/OS_Errno.cpp: Add #include "ace/OS_Memory.h" to get ACE_NEW. - - * ace/ace_os_dll.vcp: Added files Time_Value.{h cpp inl}. Changed - preprocessor file locations from $ACE_ROOT to ".." to allow - working with more than one ACE version/build. - - * ace/ace_dll.vcp: Added files DLL_Manager.{h cpp}. - Changed preprocessor file locations from $ACE_ROOT to ".." to - allow working with more than one ACE version/build. - - * ace/config-win32-common.h: Set ACE_HAS_WIN32_TRYLOCK for WinCE - in addition to ACE_HAS_WINNT4. Also ACE_HAS_INTERLOCKED_EXCHANGEADD, - but only for PPC. - - * ace/Atomic_Op.h: Only set ACE_HAS_BUILTIN_ATOMIC_OP without - ACE_HAS_INTERLOCKED_EXCHANGEADD for MSVC on x86. It's not available - for eVC, CE on other than PPC. - - * tests/ARGV_Test_WinCE.vcp - * tests/Atomic_Op_Test_WinCE.vcp - * tests/Auto_IncDec_Test_WinCE.vcp - * tests/Barrier_Test_WinCE.vcp - * tests/Basic_Types_Test_WinCE.vcp - * tests/Bound_Ptr_Test_WinCE.vcp - * tests/Buffer_Stream_Test_WinCE.vcp - * tests/Cached_Accept_Conn_Test_WinCE.vcp - * tests/Cached_Conn_Test_WinCE.vcp - * tests/Cache_Map_Manager_Test_WinCE.vcp - * tests/Capabilities_Test_WinCE.vcp - * tests/CDR_Array_Test_WinCE.vcp - * tests/CDR_File_Test_WinCE.vcp - * tests/CDR_Test_WinCE.vcp - * tests/Collection_Test_WinCE.vcp - * tests/Conn_Test_WinCE.vcp - * tests/DLList_Test_WinCE.vcp - * tests/DLL_Test_DLL_WinCE.vcp - * tests/DLL_Test_WinCE.vcp - * tests/Dynamic_Priority_Test_WinCE.vcp - * tests/Enum_Interfaces_Test_WinCE.vcp - * tests/Future_Set_Test_WinCE.vcp - * tests/Future_Test_WinCE.vcp - * tests/Handle_Set_Test_WinCE.vcp - * tests/Hash_Map_Bucket_Iterator_Test_WinCE.vcp - * tests/Hash_Map_Manager_Test_WinCE.vcp - * tests/High_Res_Timer_Test_WinCE.vcpL - * tests/Lazy_Map_Manager_Test_WinCE.vcp - * tests/Logging_Strategy_Test_WinCE.vcp - * tests/Log_Msg_Test_WinCE.vcp - * tests/Malloc_Test_WinCE.vcp - * tests/Map_Manager_Test_WinCE.vcp - * tests/Map_Test_WinCE.vcp - * tests/Max_Default_Port_Test_WinCE.vcp - * tests/Mem_Map_Test_WinCE.vcp - * tests/MEM_Stream_Test_WinCE.vcp - * tests/Message_Block_Test_WinCE.vcp - * tests/Message_Queue_Notifications_Test_WinCE.vcp - * tests/Message_Queue_Test_Ex_WinCE.vcp - * tests/Message_Queue_Test_WinCE.vcp - * tests/MM_Shared_Memory_Test_WinCE.vcp - * tests/MT_Reactor_Timer_Test_WinCE.vcp - * tests/MT_Reactor_Upcall_Test_WinCE.vcp - * tests/MT_SOCK_Test_WinCE.vcp - * tests/Naming_Test_WinCE.vcp - * tests/New_Fail_Test_WinCE.vcp - * tests/Notify_Performance_Test_WinCE.vcp - * tests/Object_Manager_Test_WinCE.vcp - * tests/OrdMultiSet_Test_WinCE.vcp - * tests/OS_Test_WinCE.vcp - * tests/Priority_Buffer_Test_WinCE.vcp - * tests/Priority_Reactor_Test_WinCE.vcp - * tests/Priority_Task_Test_WinCE.vcp - * tests/Process_Manager_Test_WinCE.vcp - * tests/RB_Tree_Test_WinCE.vcp - * tests/Reactors_Test_WinCE.vcp - * tests/Reactor_Exceptions_Test_WinCE.vcp - * tests/Reactor_Notify_Test_WinCE.vcp - * tests/Reactor_Performance_Test_WinCE.vcp - * tests/Reactor_Timer_Test_WinCE.vcp - * tests/Reader_Writer_Test_WinCE.vcp - * tests/Recursive_Mutex_Test_WinCE.vcp - * tests/Refcounted_Auto_Ptr_Test_WinCE.vcp - * tests/Reverse_Lock_Test_WinCE.vcp - * tests/Semaphore_Test_WinCE.vcp - * tests/Service_Config_DLL_WinCE.vcp - * tests/Service_Config_Test_WinCE.vcp - * tests/Sigset_Ops_Test_WinCE.vcp - * tests/Simple_Message_Block_Test_WinCE.vcp - * tests/SOCK_Connector_Test_WinCE.vcp - * tests/SOCK_Send_Recv_Test_WinCE.vcp - * tests/SOCK_Test_WinCE.vcp - * tests/SPIPE_Test_WinCE.vcp - * tests/SString_Test_WinCE.vcpS - * tests/Svc_Handler_Test_WinCE.vcp - * tests/Task_Test_WinCE.vcp - * tests/Thread_Manager_Test_WinCE.vcp - * tests/Thread_Mutex_Test_WinCE.vcp - * tests/Thread_Pool_Reactor_Resume_Test_WinCE.vcp - * tests/Thread_Pool_Reactor_Test_WinCE.vcp - * tests/Thread_Pool_Test_WinCE.vcp - * tests/Timeprobe_Test_WinCE.vcp - * tests/Timer_Queue_Test_WinCE.vcp - * tests/Time_Service_Test_WinCE.vcp - * tests/Time_Value_Test_WinCE.vcp - * tests/Tokens_Test_WinCE.vcp - * tests/TSS_Test_WinCE.vcp - * tests/Upgradable_RW_Test_WinCE.vcp - Changed include file path from $ACE_ROOT to .. to allow building - multiple versions. Added aced.lib to CE ARM Debug builds. - -Sat Oct 19 16:57:44 UTC 2002 Johnny Willemsen - - * etc/tao_*.doxygen: - Disabled the doxygen warnings. The warnings about not documented - members are still on. The warnings are not disabled in the ace - libraries because we could fix them there, but we can't fix them - in TAO because of the environment macro's that cause the method - definition arguments to be different than the implementation - arguments. - -Sat Oct 19 16:47:12 UTC 2002 Johnny Willemsen - - * ace/ace_wchar.h: - Added ACE_TEXT_WaitNamedPipe to the list of Windows functions we use - and for which there is an ascii and unicode version. - - * ace/SPIPE_Connector.cpp: - Used ACE_TEXT_WaitNamedPipe instead of ::WaitNamedPipe. This fixes - the problems in the BCB Unicode build. - -Sat Oct 19 10:09:38 2002 Balachandran Natarajan - - * examples/C++NPv2/Makefile: Reverted the change "Fri Oct 18 - 21:01:25 UTC 2002 Craig Rodrigues " since - this opens up some problems. Craig will look into it later and - provide a clean fix. Till then.. - -Sat Oct 19 09:25:52 2002 Douglas C. Schmidt - - * examples/Reactor/Misc/test_timer_queue.cpp, - * tests/Timer_Queue_Test.cpp: Fixed warnings with G++. - Thanks to Bala for reporting this. - -Fri Oct 18 22:07:31 2002 Steve Huston - - * ace/config-aix-4.x.h: Only define ACE_HAS_ALLOCA for IBM - compilers. They do it via "builtin" trickery and g++ doesn't - know that trick. - - * include/makeinclude/platform_aix4_g++.GNU: Set with_ld to aix - to avoid trying to do an soname - AIX's ld doesn't do that. - - * include/makeinclude/platform_g++_common.GNU: If with_ld is aix, - don't try to add to soname option to the linker. - -Fri Oct 18 20:13:29 2002 Steve Huston - - * include/makeinclude/platform_hpux_gcc.GNU: Added an optional - build parameter, with_ld, whose default value is hpux. This - says which ld is used with g++. - - * include/makeinclude/platform_g++_common.GNU: When setting the - SOFLAGS for setting SONAME, if with_ld is hpux, use +h, not -h. - -h means "hide symbol" in HP-UX ld. - -Fri Oct 18 17:12:03 2002 Balachandran Natarajan - - * examples/C++NPv2/display_logfile.cpp: - * examples/C++NPv2/Client_Logging_Daemon.cpp: - * examples/C++NPv2/TP_Logging_Server.h: - * examples/C++NPv2/TP_Logging_Server.cpp: Fixed compile errors in - single threaded builds. All they needed was the usage of the - right macros like ACE_SYNCH instead of ACE_MT_SYNCH and - ACE_SYNCH_MUTEX instead of ACE_Thread_Mutex. - -Fri Oct 18 16:25:09 2002 Yuanfang Zhang - - * tests/RB_Tree_Test.h: - * tests/RB_Tree_Test.cpp: - - add a new method to test forward and reverse partial tree traversal. - -Fri Oct 18 21:01:25 UTC 2002 Craig Rodrigues - - * examples/C++NPv1/Makefile: Fix comment. - * examples/C++NPv1/Makefile: Replace with recursive Makefile which - does not use for loops. - -Fri Oct 18 15:44:19 2002 Priyanka Gontla - - * THANKS: - Added Christian Barheine to the hall - of fame. - -Fri Oct 18 19:37:20 GMT 2002 Craig Rodrigues - - * ace/config-macosx.h: Define ACE_HAS_NONSTATIC_OBJECT_MANAGER - for gperf. - -Fri Oct 18 14:52:37 2002 Steve Huston - - * examples/C++NPv2/Reactor_Logging_Server.cpp: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/C++NPv2/display_logfile.cpp: Added necessary explicit - template instantiations. - -Fri Oct 18 13:21:05 2002 Douglas C. Schmidt - - * tests/Timer_Queue_Test.cpp, - * examples/Reactor/Misc/test_timer_queue.cpp: - Fixed these tests so that it passes dynamically allocated memory - rather that values via the "act" parameter to - ACE_Timer_Queue::schedule(). This ensures the test will work - properly on strange OS platforms, such as Win64 where pointers - and longs/ints are different sizes. Thanks to Cristian - Ungureanu for motivating this. - -Fri Oct 18 17:20:02 UTC 2002 Don Hinton - - * ace/SOCK_Dgram_Mcast.{h,cpp}: - - Factored out common code to an open_i() method that open() - can call at this level and in inherited classes. - - * ace/QoS/SOCK_Dgram_Mcast_QoS.{h.cpp}: - - Modified ctor to take same default param as base class and - invoke the base class ctor. - - Removed duplicate code in open() and have it call base::open_i() - after opening the socket with QoS. Changed 1st parameter from - ACE_Addr to ACE_INET_Addr to match base classes. - - Removed duplicate code from subscribe by having it call base - class methods. - -Fri Oct 18 11:51:44 2002 Nanbor Wang - - * bin/PerlACE/Run_Test.pm: Created a new variable - $PerlACE::svcconf_ext which defines the canonical - svc.conf file extention used by various run_test scripts. By - default, this is defined to ".conf". It can be overwritten - using the environment variable ACE_RUNTEST_SVCCONF_EXT. For - example, you can define ACE_RUNTEST_SVCCONF_EXT to ".conf.xml" - if you have built your ACE with XML-based service configurator. - -Fri Oct 18 11:55:33 2002 Steve Huston - - * ace/POSIX_CB_Proactor.cpp: Removed unneeded argument to - application_specific_code(). Thanks to Tommy Persson - for contributing this fix. - - Fixes Bugzilla #1325. - - * THANKS: Added Tommy Persson to the Hall of Fame. - -Fri Oct 18 11:39:29 2002 Steve Huston - - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp: - Put the sigterm_handler function in an unnamed namespace - to avoid issues with g++ not liking 'static' and 'extern "C"' - together. - -Fri Oct 18 03:55:51 UTC 2002 Don Hinton - Bill Fulton - - * ace/SOCK_Dgram_Mcast.{h,i,cpp}: - - Enhanced support for join()'ing multiple multicast groups. Ctor - now offers finer control over a bind()'ing to an address or - interface. Appropriate default behavior has been specified, - but note that due to issues on Linux, portable code should not - join() more than one multicast group per instance. - - An open() method has been added/exposed. If not explicitely - called, it will be implicitely called by the first join(), and - will bind() the address if the OPT_BINDADDR_YES options was - specified in the ctor. - - Error handling has also been enhanced. For instance, if - OPT_BINDADDR_YES has been specified (the default on Linux), - additional join()'s will fail since the socket gets bound on - the first call to open() or join(). Previously, subsequent - calls to join() would silently fail, i.e., the call succeeded - but only datagrams sent to the first, bound address where - actually delivered. - - If ACE_SOCK_DGRAM_MCAST_DUMPABLE is defined, a list of all - subscribed groups is maintained and can be dump()'ed, although - access to this list is not public. - - Added new join()/leave() methods that remove unused, deprecated - protocol_family and protocol arguments. These values can be - determined on the fly. The old subscribe()/unsubscribe() - methods have been deprecated and are now implemented in terms - of join()/leave() respectively. - - The unsubscribe(void) method has also been deprecated. It was - designed to allow the caller to unsubscribe/leave() all - groups at once, but since a list was never kept (and still - isn't unless ACE_SOCK_DGRAM_MCAST_DUMPABLE is defined) only - the last group join()'ed was ever left. A better way would - be to either keep track of you own groups and call leave() - for each, or let the dtor close() the socket which automatically - unsubscribes from all groups. - - Some IPv6 support has been added either directly or by removing - the need for the caller to handle it (see join()/leave() above), - although the internal calls to setsockopt() are still hard wired - for IPv4. - -Fri Oct 18 06:51:07 2002 Douglas C. Schmidt - - * ace/String_Base.{i,cpp}: Fixed the formatting in these files... - -Thu Oct 17 20:02:39 2002 Steve Huston - - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp: - Add extern "C" to the signal handler function declaration to conform - strictly to its definition. - When explicitly instantiating auto_ptr<>, fully specify the - Thread_Args type else modern compilers (Forte 7) can't see it. - -Thu Oct 17 17:32:39 2002 Krishnakumar B - - * ACEXML/examples/svcconf/Svcconf_Handler.cpp: - * ACEXML/examples/svcconf/Svcconf_Handler.h: - * ACEXML/examples/svcconf/main.cpp: - - Fixed compilation errors under Windows. - -Thu Oct 17 19:18:02 UTC 2002 Craig Rodrigues - - * ace/config-macosx.h: - - Remove define of __MACOSX__, and use constant __APPLE__ - instead defined by Apple's gcc. - - Removed definitions: - ACE_HAS_MACOSX_DYLIB, ACE_LACKS_SEMBUF_T - - Added definitions: - ACE_HAS_SEMUN, ACE_HAS_SIGINFO_T, ACE_LACKS_SIGINFO_H, - ACE_HAS_UCONTEXT_T, ACE_HAS_GETIFADDRS, - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES - - Defined ACE_HAS_POSITION_INDEPENDENT_POINTERS to 0 for temporary - Apple gcc bug workaround. - - * ace/Log_Msg.cpp (ACE_Log_Msg::log): Add check for __APPLE__ to catch - right prototype for sys_errlist. - - * ace/OS.h: Remove unnecessary __MACOSX__ check. - - * include/makeinclude/platform_macosx.GNU: Minor cleanups. - -Thu Oct 17 13:47:39 2002 Steve Huston - - * ace/OS.h: Added typedef for ACE_recursive_mutex_state for - !defined (ACE_HAS_THREADS) section. - -Thu Oct 17 16:28:05 UTC 2002 Don Hinton - - * THANKS: Added Jon Franklin - to the hall of fame. - -Thu Oct 17 10:26:59 2002 Balachandran Natarajan - - * examples/C++NPv2/display_logfile.cpp (ACE_MT_SYNCH>): Fixed a - uninitialized member usage warning. - -Thu Oct 17 00:26:13 2002 Nanbor Wang - - * ace/Malloc_T.i (release): Instead of releasing the memory_pool_ - explicitly, changed to use remove () to make sure all resources - are removed properly. - -Wed Oct 16 20:23:09 2002 Krishnakumar B - - * ACEXML/common/FileCharStream.cpp (getchar_i): - * ACEXML/common/FileCharStream.h: - - Borland defines getchar() as a macro. Rename it as getchar_i to - resolve the clash and fix compilation errors in the build. - - -Wed Oct 16 18:47:44 2002 Stephen Torri - - * examples/C++NPv1/Makefile: - - Replaced Makefile with non-for-loop version provided by - Craig Rodrigues. - -Wed Oct 16 16:52:52 2002 Nanbor Wang - - * ace/MEM_SAP.cpp (close_shm_malloc): Fixed a memory leak that I - added last time when I fixed a race condition in removing mmap - file. - -Wed Oct 16 15:35:22 2002 Steve Huston - - * tests/SPIPE_Test.cpp: Fixed compile error. - -Wed Oct 16 14:02:27 2002 Yuanfang Zhang - - * ace/RB_Tree.cpp: - * ace/RB_Tree.h: - - forward and reverse partial tree traversal. - Changed the find_i method by adding a parameter "find_Exact". - -Wed Oct 16 12:18:03 2002 Stephen Torri - - * examples/C++v1/Makefile: - * examples/C++NPv1/Makefile.Iterative_Logging_Server: - * examples/C++NPv1/Makefile.Logging_Client: - * examples/C++NPv1/Makefile.Reactive_Logging_Server: - * examples/C++NPv1/Makefile.Reactive_Logging_Server_Ex: - * examples/C++NPv1/Makefile.RT_Thread_Per_Connection_Logging_Server: - * examples/C++NPv1/Makefile.Thread_Per_Connection_Logging_Server: - * examples/C++NPv1/Makefile.wProcess_Per_Connection_Logging_Server: - - Renamed from *.mak to Makefile.* to avoid looking like an - exported MSVC project NMAKE file. (Following Steve Huston's - change to examples/C++v2). - - Fixed Make error that make realclean was not in Makefile. - - * tests/Recursive_Condition_Test.cpp: - - Changed function call of signal() to broadcast() to awaken - multiple threads waiting on a shared condition variable. - -Oct 16 11:44:27 2002 Nanbor Wang - - * ace/Thread_Manager.cpp (check_state): Changed to return 0 if - the thread id is not managed by the Thread_Manager. - - * ace/Thread_Manager.h: Updated documentation for testcancel(), - testsuspend(), and testresume (). They all return false now if - the you try to test the status of a tid that is not managed by - the Thread_Manager. - - Thanks to Giovanni Zito for reporting it. - -Wed Oct 16 12:41:29 2002 Steve Huston - - * examples/Makefile: Add C++NPv1 and C++NPv2 to the DIRS list. - - * examples/C++NPv2/Makefile: Only build the SSL-using examples - (AC_CLD, AIO_CLD, TPCLS) is ssl=1 is set. - - * examples/C++NPv2/Makefile.AC_CLD: - * examples/C++NPv2/Makefile.AIO_CLD: - * examples/C++NPv2/Makefile.TPCLS: - Set up the SSL build params correctly and warn if ssl=1 not used. - -Wed Oct 16 12:08:21 2002 Steve Huston - - * examples/C++NPv2/AC_CLD.mak: - * examples/C++NPv2/AIO_CLD.mak - * examples/C++NPv2/CLD.mak: - * examples/C++NPv2/Configurable_Logging_Server.mak: - * examples/C++NPv2/display_logfile.mak: - * examples/C++NPv2/Reactor_Logging_Server.mak: - * examples/C++NPv2/Select_Reactor_Logging_Server.mak: - * examples/C++NPv2/SLDex.mak: - * examples/C++NPv2/SLD.mak: - * examples/C++NPv2/SR_Configurable_Logging_Server.mak: - * examples/C++NPv2/TPCLS.mak: - * examples/C++NPv2/TPLS.mak: - * examples/C++NPv2/TP_Reactor_Logging_Server.mak: - Renamed from *.mak to Makefile.* to avoid looking like an - exported MSVC project NMAKE file. - - * examples/C++NPv2/Makefile: Changed to process new Makefile names. - -Wed Oct 16 11:02:41 2002 Douglas C. Schmidt - - * ace/High_Res_Timer.cpp (get_cpuinfo): Removed the recalibration of - the scale factor every time the application is launched. Thanks - to Bo Balder for reporting this. - -Wed Oct 16 10:55:11 2002 Balachandran Natarajan - - * ace/config-linux-common.h: Added support for ACE_CC_NAME, - ACE_CC_MAJOR_VERSION and ACE_CC_MINOR_VERSION for linux. Thanks - to Jaroslaw Nozderko for - suggesting this. - -Wed Oct 16 10:55:44 2002 Balachandran Natarajan - - * ace/config-win32-msvc.h (ACE_HAS_ALLOCA): Enabled alloca support - for MSVC. Thanks to Pat McNertney for - providing the patch. - -Tue Oct 15 18:49:25 2002 Stephen Torri - - * tests/Recursive_Condition_Test.cpp: - - Added two tests. - Test 2: repeat of test 1 but with a 2 second delay - after main thread signals the waiting thread. (Works) - Test 3: repeat of test 1 but with 4 threads waiting - on the condition variable. (Broken - no threads - awaken). - -Tue Oct 15 17:27:34 2002 Krishnakumar B - - * ACEXML/docs/bugs.txt: - * ACEXML/docs/TODO.txt: - - Updated to reflect the current status. - -Tue Oct 15 17:23:43 2002 Krishnakumar B - - * tests/Service_Config_Test.UTF-16.conf.xml: New file added which - is used in Service_Config_Test when ACE_HAS_XML_SVC_CONF and - ACE_USES_WCHAR is enabled. - -Tue Oct 15 17:17:44 2002 Krishnakumar B - - * ACEXML/common/Encoding.cpp: - * ACEXML/common/Encoding.h: - - New files which handle the automatic detection of encoding in - XML files. - - * ACEXML/apps/svcconf/Makefile: - * ACEXML/common/CharStream.h: - * ACEXML/common/Exception.cpp: - * ACEXML/common/FileCharStream.cpp: - * ACEXML/common/FileCharStream.h: - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/HttpCharStream.h: - * ACEXML/common/InputSource.cpp: - * ACEXML/common/Makefile: - * ACEXML/common/Mem_Map_Stream.cpp: - * ACEXML/common/Mem_Map_Stream.h: - * ACEXML/common/StrCharStream.cpp: - * ACEXML/common/StrCharStream.h: - * ACEXML/common/XML_Common.dsp: - * ACEXML/examples/SAXPrint/Makefile: - * ACEXML/parser/parser/Makefile: - * ACEXML/parser/parser/Parser.cpp: - - Handle the automatic detection of encoding in XML files. - -Tue Oct 15 17:15:41 2002 Steve Huston - - Fixes for Bugzilla #1319: - - * ace/OS.i (ctime_r): For the 2-param ctime_r platforms, restrict - buflen to at least 26, just as 3-param platforms do. If less than - 26, return 0 and errno = ERANGE. - - * ace/OS.cpp (ctime_r): The WinCE implementation of ctime_r already - had the 26-char minimum check, but didn't set errno to ERANGE. - Now it does. - - * tests/OS_Test.cpp (ctime_r_test): Make sure that ctime_r with length - less than 26 fails and doesn't scribble on the buffer. - -Tue Oct 15 11:43:27 2002 Balachandran Natarajan - - * ace/SPIPE_Connector.cpp (connect): Convert the first argument in - the ::WaitNamedPipe () call to char * always using the macro - defined. This shold fix compilation errors in WCHAR builds. - -Tue Oct 15 16:19:33 UTC 2002 Craig Rodrigues - - [Bug 1090] - * ace/config-freebsd-pthread.h: Add ACE_HAS_GETIFADDRS. This fixes - Bugzilla bug 1090. - -Tue Oct 15 10:47:20 2002 Balachandran Natarajan - - * ace/SPIPE_Connector.cpp: Fixed a unused variable warning. - -Tue Oct 15 06:56:18 2002 Patrick J. McNerthney - - * tests/SPIPE_Test.cpp: Added support for testing the new Windows - bytestream mode. - -Mon Oct 14 20:47:21 2002 Douglas C. Schmidt - - * ace/SPIPE_Acceptor.cpp (open): Changed "mode" to "pipe_mode", - which is the name of the parameter. Thanks to Don Hinton for - reporting this. - -Mon Oct 14 19:20:35 2002 Frank Hunleth - - * ACE-INSTALL.html: Added installation notes for the OpenBSD port. - - * ace/config-openbsd.h: - * ace/config-openbsd-pthread.h: - * include/makeinclude/platform_openbsd.GNU: - * include/makeinclude/platform_openbsd_pthread.GNU: Configuration - files for OpenBSD. - - * ace/ACE.cpp: Added OpenBSD-specific error code to ACE::out_of_handles - - * ace/OS.h: Added #define for OpenBSD-specific path to siginfo.h and - ACE_LACKS_CLEARERR guards around clearerr() for OpenBSD. - - * ace/OS.i: Added support for getifaddrs() with ACE_HAS_GETIFADDRS - and fix for segfault when calling dlsym with a null handle. Added - guards on clearerr using ACE_LACKS_CLEARERR. (All only affect - OpenBSD.) - - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Proactor.h: Added SystemType family for OpenBSD. - - * ace/README: Added new ACE #defines to support OpenBSD. These include: - ACE_HAS_GETIFADDRS - for support of the getifaddrs() system call - ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE - add check to dlsym call - to protect against NULL. OpenBSD 3.1 needs this. - ACE_LACKS_CLEARERR - #define to remove clearerr definition due - to bogus syntax error on OpenBSD. - - * ace/Sock_Connect.cpp: Added code to get_ip_interfaces to use - getifaddrs() if it is supported. OpenBSD is the only platform to - use this currently. Under OpenBSD, the code to parse the return - values from the corresponding ioctl calls gets confused when IPv6 - interfaces are present. - - * tests/Malloc_Test.cpp: Added OpenBSD to the list of platforms that - can't handle the remap of fault part of the test. - - * tests/Reactor_Dispatch_Order_Test.cpp: Added code for OpenBSD to - clear the write mask after handle_output is called, since OpenBSD - calls handle_output more than once before the data is received - over the pipe. - -Mon Oct 14 18:21:40 2002 Patrick J. McNerthney - - * ace/OS.h: Added FILE_FLAG_WRITE_THROUGH defines for - non-supporting operating systems and added various PIPE_* - defines for non-supporting operating systems. - - * ace/SPIPE_Connector.{h,cpp}: Added support to enable the - selection of whether bytestream or message mode is used on - Windows. Also added support for both blocking and timeout - connections on Windows, only non-blocking connections where - support before. - - * ace/SPIPE_Acceptor.{h.cpp}: Added support to enable the - selection of whether bytestream or message mode is used on - Windows. - -Mon Oct 14 20:19:51 2002 Steve Huston - - * ChangeLog: Removed a large chunk of duplicated dates from Oct 11 - back to July. - - * ace/OS.{h i}: Removed the owning_thread_ member from - ACE_recursive_mutex_state on Windows. This isn't needed since the - OS mutex restores the owner properly - it was in to do a sanity - check ACE_ASSERT, but can't do that from ACE_OS. - - * ace/WFMO_Reactor.h: Expanded and clarified the class comments - to resolve Bugzilla #772. - -Mon Oct 14 17:23:43 2002 Balachandran Natarajan - - * ace/CDR_Base.cpp (consolidate): Reverted the optimization - performed in "Tue Mar 12 17:43:32 2002 Balachandran Natarajan - ". This optimizations created problems for - CORBA::Any implementation which assumes that the data is totally - contained within the Any. Using the optimization created problems - for Any's that are copied between different threads. Thanks to - Jian Chen for reporting this problem. - -Mon Oct 14 10:12:31 2002 Steve Huston - - Fix for Bugzilla # 1316: - - * ace/Synch.h: - * ace/OS.h: Moved the ACE_recursive_mutex_state from Synch.h - to OS.h. The recursive mutex methods need to handle this stuff - internally to properly synchronize releasing and reacquiring - the mutex around condition variable waits. - - * ace/OS.i: Added ACE_OS::recursive_mutex_cond_unlock() and - ACE_OS::recursive_mutex_cond_relock() methods to support - recursive mutex handling around waiting on a condition variable. - - * ace/Synch.cpp (ACE_Condition): - Removed the guards from the broadcast() and signal() methods. - Removed the ACE_recursive_mutex_state class methods - this - functionality is now in the ACE_OS space; see above. - Reimplemented the wait() method to make use of the new ACE_OS - methods (above), enabling proper reclaiming of the recursive - mutex after cond_wait, and avoiding deadlock. - -Mon Oct 14 00:12:48 2002 Krishnakumar B - - * ACEXML/docs/bugs.txt: Updated to match the current status of - ACEXML parser. - -Sun Oct 13 19:38:35 2002 Krishnakumar B - - * ace/Exception_Macros.h: - - Consolidated the checking of exceptions preprocessor hacking - into this file. - - * ACEXML/common/XML_Macros.h: - - Include the above file and get rid of redundant and broken - checking for exceptions. - - * ace/CORBA_macros.h: - - Moved over the stuff from Exception_Macros.h to where it was - originally. This should fix all the build breakage. Thanks to - Bala for pointing out the errors in the build. - -Sun Oct 13 18:50:53 2002 Douglas C. Schmidt - - * ace/SPIPE_Stream.h: Enhanced the documentation of ACE_SPIPE_Stream. - Thanks to Pat McNerthney for motivating - this. - -Sun Oct 13 15:57:04 2002 Balachandran Natarajan - - * ace/Asynch_IO.cpp: - * ace/Asynch_IO.h: Protected ACE_Asynch_Read_File::readv () and - ACE_Asynch_Write_File::writev () from being called when - ACE_HAS_WINNT4 == 0. - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Asynch_IO.h: Protected - ACE_WIN32_Asynch_Read_File::readv () and - ACE_WIN32_Asynch_Write_File::writev () from being called when - ACE_HAS_WINNT4 == 0. - - Thanks to Eric Frias for reporting the - problem and Alex Libman for suggesting the fix. - - * THANKS: Added Eric Frias to the hall of - fame. - -Sun Oct 13 15:54:59 2002 Krishnakumar B - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: Fixed a couple of - warnings related to the exception argument handling. - -Sun Oct 13 00:55:27 2002 Krishnakumar B - - * ACEXML/common/XML_Common.dsp: - - Added XML_Macros.h to the project file. - - * ACEXML/examples/SAXPrint/svc.conf.xml: - - Reverted a mistaken change used for testing. - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ACEXML/common/SAXExceptions.cpp: - * ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp: - - Added ACE_TEXT around strings so that WCHAR build is happy. - -Sat Oct 12 23:01:29 2002 Krishnakumar B - - * ACEXML/apps/svcconf/Svcconf.h (ACEXML_Svcconf_Parser): Removed - the unused member env_. - -Sat Oct 12 22:50:02 2002 Krishnakumar B - - * ACEXML/common/XML_Macros.h: - - New file which contains the macros needed to enable support for - Exceptions in ACEXML. - - * ACEXML/apps/svcconf/Makefile: - * ACEXML/common/Makefile: - * ACEXML/examples/SAXPrint/Makefile: - * ACEXML/parser/parser/Makefile: - * ACEXML/tests/Makefile: - - Regenerate dependencies. - - * ACEXML/common/Env.cpp: - * ACEXML/common/Env.h: - * ACEXML/common/Env.i: - * ACEXML/common/Exception.cpp: - * ACEXML/common/Exception.h: - * ACEXML/common/Exception.i: - - Enable support for Native Exceptions. - - * ACEXML/apps/svcconf/Svcconf.cpp: - * ACEXML/apps/svcconf/Svcconf.h: - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ACEXML/apps/svcconf/Svcconf_Handler.h: - * ACEXML/common/Attributes_Def_Builder.h: - * ACEXML/common/ContentHandler.h: - * ACEXML/common/DTDHandler.h: - * ACEXML/common/DTD_Manager.h: - * ACEXML/common/DefaultHandler.cpp: - * ACEXML/common/DefaultHandler.h: - * ACEXML/common/Element_Def_Builder.h: - * ACEXML/common/EntityResolver.h: - * ACEXML/common/ErrorHandler.h: - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/SAXExceptions.cpp: - * ACEXML/common/SAXExceptions.h: - * ACEXML/common/SAXExceptions.i: - * ACEXML/common/Validator.h: - * ACEXML/common/XMLFilterImpl.cpp: - * ACEXML/common/XMLFilterImpl.h: - * ACEXML/common/XMLReader.h: - * ACEXML/examples/SAXPrint/Print_Handler.cpp: - * ACEXML/examples/SAXPrint/Print_Handler.h: - * ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp: - * ACEXML/examples/SAXPrint/SAXPrint_Handler.h: - * ACEXML/examples/SAXPrint/main.cpp: - * ACEXML/examples/SAXPrint/svc.conf.xml: - * ACEXML/examples/svcconf/Svcconf_Handler.cpp: - * ACEXML/examples/svcconf/Svcconf_Handler.h: - * ACEXML/examples/svcconf/main.cpp: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.h: - * ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp: - * ACEXML/parser/debug_validator/Debug_DTD_Manager.h: - * ACEXML/parser/debug_validator/Debug_Element_Builder.cpp: - * ACEXML/parser/debug_validator/Debug_Element_Builder.h: - - Switch over the files to support Native Exceptions. - - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/parser/parser/Parser.h: - - Use the obstack unwind to unwind the stack and reuse memory. - Currently not done throughout the parser. That will come later. - - * ace/Makefile.ace: - - Added Codecs to ACE_COMPONENTS when building FOR_TAO. Thanks to - Don Hinton for suggesting this. - - * include/makeinclude/rules.local.GNU: - - Clean up the old symlinks under $ACE_ROOT/ace when building a - new version of the libraries. - - * tests/Makefile: - - Cleanup the Codecs_Test when $ACE_ROOT/ace has been realcleaned - previously. - -Fri Oct 11 12:44:58 UTC 2002 Craig Rodrigues - - * RTJava/*: Removed. Angelo Corsaro - keeps RTJperf related files in another CVS repository. - - * ace/config-freebsd-pthread.h: Improved check of - _POSIX_REALTIME_SIGNALS preprocessor constant. - -Thu Oct 10 16:02:20 2002 Ossama Othman - - * ACE version 5.2.5 released. - -Thu Oct 10 13:56:35 2002 Ossama Othman - - * bin/make_release (check_workspace): - - Ignore platform_macros.GNU and config.h files. They are - needed when cutting the beta/release. This isn't a problem - since the ACE/TAO kits are created from a "cvs export"ed - workspace that doesn't include those files. - -Thu Oct 10 15:11:07 2002 Balachandran Natarajan - - * bin/make_release: A pattern matching issue. The cvs server now - gives a message starting with "cvs server:.." instead of "cvs - checkout:..". This created problems for Ossama when he was - trying to cut the beta. - -Wed Oct 9 23:43:51 2002 Steve Huston - - * ace/WIN32_Asynch_IO.cpp (ACE_Asynch_Read_Stream::readv, - ACE_Asynch_Write_Stream::writev, ACE_Asynch_Read_Dgram::recv, - ACE_Asynch_Write_Dgram::send): Don't double-increment iovcnt - while checking for the need for multiple iov per message block. - Fixes bug introduced in: - Fri Oct 4 20:22:41 2002 Steve Huston - -Wed Oct 9 23:08:19 2002 Steve Huston - - * include/makeinclude/rules.lib.GNU: For the funky AIX shr.o/lib*.a - machination, declare shr.o as .INTERMEDIATE to avoid rebuilding it - all the time for nothing. Thanks to Craig L. Ching for motivating - this. - -Wed Oct 09 12:19:40 2002 Nanbor Wang - - * bin/PerlACE/Process_Win32.pm: Added hack to purify a process. - This will allow us to purify all the examples, tests much - easier. It is, however, tightly coupled to Purify 6.0. The - script automaticaly switch to purifying the process if the - ACE_RUN_PURIFY_CMD environment variable is defined. See the - comments in this file for more details. - -Tue Oct 8 21:06:23 2002 Steve Huston - - * ace/config-sunos5.6.h: Undef ACE_HAS_TEMPLATE_TYPEDEFS for the - Forte 7 compiler (C++ 5.4). It should work, but Malloc_T doesn't - compile correctly with it enabled. Thanks to Serge Kolgan - for this fix. - - * ace/config-sunos5.9.h: New config.h file for Solaris 9. Right now, - it just includes config-sunos5.8.h, but Solaris 9 has some new things - to play with as time goes on. - -Tue Oct 8 09:22:41 2002 Steve Huston - - * ace/SOCK_Dgram_Bcast.cpp (send): Use next_ to find next - ACE_Bcast_Node in if_list_ rather than incrementing pointer. - Thanks to for this fix. - -Mon Oct 7 17:29:14 2002 Ossama Othman - - * tests/Proactor_Scatter_Gather_Test.cpp (initiate_read_file): - - Cast one of the operands in a subtraction operation to a size_t - to address a problem exhibited by Borland C++ where the ACE_MIN - template expects two parameters of the same type, but was - getting two parameter of different types. This problem occurred - on platforms where "unsigned int" and "unsigned long" are - different types. - -Mon Oct 07 15:21:44 2002 Nanbor Wang - - * ACEXML/apps/svcconf/XML_Svc_Conf_Parser.dsp: - * ACEXML/common/XML_Common.dsp: - * ACEXML/parser/debug_validator/Debug_Validator.dsp: - * ACEXML/parser/parser/Parser.dsp: - * ACEXML/tests/HttpCharStream_Test.dsp: - * ACEXML/tests/NamespaceSupport_Test.dsp: - * ACEXML/tests/Transcoder_Test.dsp: - * apps/JAWS2/server.dsp: - * examples/Export/test.dsp: - * examples/IPC_SAP/FILE_SAP/client.dsp: - * examples/Logger/client/client.dsp: - * examples/Logger/simple-server/server_loggerd.dsp: - * examples/QOS/Simple/receiver.dsp: - * examples/QOS/Simple/sender.dsp: - * examples/Reactor/Multicast/client.dsp: - * examples/Reactor/Multicast/server.dsp: - * examples/Reactor/Proactor/test_udp_proactor.dsp: - * examples/Synch/proc_sema.dsp: - * tests/DLL_Test_Impl.dsp: - * tests/Framework_Component_DLL.dsp: Disabled the generation - of precompiled headers. They were taking up too much disk space - on the nightly build machines. Thanks to Ossama for noticing - this. - -Sun Oct 6 09:03:28 2002 Ossama Othman - - * ace/UPIPE_Stream.cpp (send): - - Silenced a signed/unsigned conversion warning using a - static_cast<> until a better solution presents itself. - -Sat Oct 5 17:04:38 2002 Steve Huston - - * ace/Memory_Pool.cpp (ACE_Pagefile_Memory_Pool::acquire): Remove - casts on comparisons, allowing size_t values to compare directly. - - * apps/JAWS/server/IO.cpp (JAWS_Synch_IO::transmit_file): Remove - cast from send_n() return value to avoid signed/unsigned compare. - -Sat Oct 5 12:30:49 2002 Steve Huston - - * ace/Service_Manager.cpp (list_services): Remove extra right paren. - - * tests/Proactor_Timer_Test.cpp: Fixed signed/unsigned mismatch. - -Fri Oct 04 22:24:23 2002 Krishnakumar B - - * ACEXML/common/URL_Addr.cpp (string_to_addr): Added a new wrapper - which matches the signature in ACE_INET_Addr, and delegates the - work to the ACEXML_Char function to work around Borland BCB - warning about hidden virtual function. - -Fri Oct 4 21:32:51 2002 Steve Huston - - * ace/Service_Manager.cpp (list_services): Correct compiler - warning about sign/unsigned comparison. Don't bother for checking - transfer count != requested, since send_n always reports - an error (0 or -1) if there was a fail before the whole 'n' sent. - -Fri Oct 4 20:22:41 2002 Steve Huston - - * ace/ace_dll64.mak: Removed the /wd4267 to re-enable the - conversion size_t to int warning. - Added Atomic_Op.obj to the files to compile directly. - - * ace/ACE.cpp (recv, send): Extract int, not size_t, from implicit - char */int pairs. - (send_n, recv_n with ACE_Message_Blocks): Message block length - is a size_t but iov_len is u_long, so make as many iovs as needed - to fit the entire requested length. - - * ace/Asynch_Acceptor.cpp: Added casts to fix size_t->DWORD warnings. - - * ace/Asynch_IO.cpp (transmit_buffers): Cast lengths to DWORD for - Win64. - - * ace/Configuration.{h cpp} (set_binary_value, get_binary_value): - Change length arg from u_int to size_t. - - * ace/Configuration_Import_Export.cpp: Align use of u_int, size_t. - - * ace/Containers_T.cpp (ACE_Fixed_Set::insert): Use ssize_t, not int, - to track free slot since max size is a size_t. - - * ace/FIFO_Recv_Msg.i (recv): - * ace/FIFO_Send_Msg.i (send): Squeeze size_t max_len down to an int - because this gets run through the ACE_Str_Buf variant of recv/send. - If this restriction is too much, the code will need to be - refactored. - - * ace/FILE_Addr.cpp (set): Cast size_t back to int for base_set(). - - * ace/FILE_IO.cpp (recv): Count iov tuples as an int to match what's - expected at the ACE_OS::readv level. - - * ace/Filecache.h (ACE_File_Object): Change size_ from size_t to off_t. - It's a better match for what it's used for (checking against - stat.st_size, which is an off_t also). - - * ace/Functor_T.i (ACE_Pointer_Hash): Add #pragmas for Win64 to - shut up the compiler warnings about casting a pointer to u_long. - - * ace/INET_Addr.{h i} (ip_addr_size): Return an int, not size_t. This - value is just passed on to other methods (like host db functions) - that are expecting an int. Also, being the size of a IP addressing - structure, all the values are well within range of an int. - - * ace/Lib_Find.cpp (ldfind, get_temp_dir): Cast path length value to - DWORD for calls to SearchPath and GetTempPath on Windows. - - * ace/Local_Name_Space.{h cpp} (ACE_NS_String::strstr): Cast return - value from size_t to int. (hash): Change return type from size_t - to u_long to match what's expected from ACE_Hash<>, which this is - an adapter for. - - * ace/Log_Msg_NT_Event_Log.cpp (open): Cast msg_file length to - DWORD for use in Windows API. Use size_t for reg key string length - since it need not be passed to a Windows API. - - * ace/Log_Record.cpp (round_up): Do all the rounding math in size_t - terms, since all factors are size_t, but cast it back to ACE_UINT32 - since the ACE_Log_Record length_ field is ACE_UINT32 and should - stay that way due to the need to send it over the network as a - known-length field. - (print): Cast verbose_msg string length to int so it can be compared - to fprintf return value. - - * ace/MEM_Acceptor.cpp (accept): Cast string length to ACE_UINT16. - - * ace/MEM_SAP.h: - * ace/MEM_IO.{h cpp} (ACE_Reactive_MEM_IO, ACE_MT_MEM_IO): Changed - return type of send_buf and recv_buf from int to ssize_t. This - is consistent with other ACE sock-type send methods, and matches - the range of sizes allowed to request sending of and the return - type expected by ACE_MEM_IO::send() and recv(). - - * ace/Mem_Map.i (advise): Get a size_t length as expected by - ACE_OS::madvise(). - - * ace/Mem_Map.cpp (map_it): Use off_t instead of size_t to calculate - null_byte_positition when extending the file. This is the type - that ACE_OS::pwrite() expects. - - * ace/Memory_Pool.h (ACE_Pagefile_Memory_Pool::Shared_Control_Block): - Changed mapped_size_ from int to size_t to match the sizes it can - take (max_size_)and what's expected in the Win32/64 API calls. - Changed free_offset_ from int to ptrdiff_t to represent the full - range of mapped address range. Changed free_size_ from int to - size_t to match max_size_ and the range of mappable sizes. - Changed 'append' arg to map() from int to size_t, also to represent - full range of mappable size. - - * ace/Memory_Pool.i (round_up): Cast nbytes to off_t for call to - ACE::round_to_page_size(). - - * ace/Memory_Pool.cpp: Adjust usage of size_t/off_t, usually with - casts where needed. - (map): For Win64, allow full 64-bit range of file mapping size. - - * ace/Message_Queue.{h i cpp} (ACE_Message_Queue_NT): Changed - max_threads arg (ctor and open()) and max_cthrs_/cur_thrs_ from - size_t to DWORD, as expected by the underlying API (this class - is not portable, or compilable outside of ACE_WIN32). - - * ace/Msg_WFMO_Reactor.{h cpp} (poll_remaining_handles()): Changed - argument from size_t to DWORD - matches similar changes to - WFMO_Reactor, below. - - * ace/Name_Request_Reply.cpp (ctor): Cast length to ACE_UINT32. - - * ace/Naming_Context.cpp (info): Cast info string length to int. - - * ace/OS.{h i cpp}: (sema_post): Changed count from size_t to u_int, - to match both the value range for initializing (sema_init) and - the underlying OS calls on all platforms. - (getipnodebyaddr): For IPv4 case, cast len to int. - (recvfrom): size_t->int casting for Windows. - (read, write, pread, pwrite): Reduce byte count to DWORD range - for Windows. - (getcwd): Windows offers an int len for getcwd(), as opposed to - size_t everywhere else... so special-case the Windows need to - cast the length down. - (thr_create): Cast stack_size to u_int for beginthreadex(). - Other miscellaneous int/size_t casts to get Win64 to build clean. - (iovec): Changed iov_len field from size_t to u_long to match - WSABUF, as comment says to. - - * ace/OS_String.cpp (strtok_r_emulation): Change string lengths from - int to size_t, matching that returned from strlen(). - - * ace/Process.{h cpp} (setenv_i): Change len arg from int to size_t. - Matches string lengths in general, and the expectations of both - callers and callees with this information. - Changed environment_buf_index_ and environment_buf_len_ from int - to size_t as well, matching available range. - - * ace/Process_Manager.cpp: size_t to DWORD casting for current_count_. - - * ace/Registry.cpp (make_name): Use ssize_t instead of int for string - positions - matches interface for ACE_TString, which this method - accepts and uses. - - * ace/Remote_Name_Space.cpp (bind, rebind, resolve, list_names, - list_values, list_types, list_name_entries, list_value_entries, - list_type_entries): Cast length values to ACE_UINT32 as - ACE_Name_Request expects. - - * ace/Select_Reactor_Base.cpp (ACE_Select_Reactor_Handler_Repository): - In open(), cast size to int for call to ACE::set_handle_limit(). - - * ace/Service_Config.cpp (ctor): Cast size value to int for passing to - ACE_Service_Repository::instance(). The ACE_Service_Repository - size should probably be changed to size_t for consistency. - - * ace/Service_Manager.cpp (info): Cast return string length to int. - - * ace/Service_Types.cpp (info): Cast return string length to int. - - * ace/Shared_Memory_MM.i (get_segment_size): - * ace/Shared_Memory_SV.i (get_segment_size): Cast shared_memory_ size - to int. Legit since the open() call's size is an int; otherwise - this should be changed to return a size_t. - - * ace/SOCK_Connector.cpp (shared_connect_start): Align use of - int/size_t. - - * ace/SOCK_Dgram.{h cpp} (recv, send): - * ace/SOCK_Dgram_Bcast.{h cpp} (recv, send): - * ace/SOCK_Sgram_Mcast.{h i} (send, recv): Change iovcnt from - size_t to int to match the args used by other iovcnt-accepting - methods in ACE. - - * ace/SOCK_Dgram_Bcast.i (send): Align use of int/size_t. - - * ace/SOCK_IO.cpp (recv (size_t, ...), send(size_t, ...)): The - comments say the pairs are char*, int, but the code extracted - ssize_t values instead of int. Changed to extract ints as the - comment says. The values are put in iovecs which accept - unsigned long, not ssize_t. - - * ace/SPIPE_Addr.cpp (set): Align use of int/size_t. - - * ace/SPIPE_Stream.cpp (send, recv): Align use of int/size_t. - - * ace/SString.i (ACE_NS_WString): Add missing arg for ACE_WString - ctor initialization. - (ACE_SString::rfind): Cast string len to int for searching... note - this limits the string to 'int' range, though the other size - arguments/parameters are size_t. There are crocodiles lurking - here... hopefully this class is on its way out. - - * ace/SV_Shared_Memory.{h i} (get_segment_size, round_up): Changed - return type from int to size_t, matching it's argument type. - Also changed class's size_ member from int to size_t, matching - the arg from which it's set. - - * ace/Synch.{h i} (ACE_Semaphore::release): Change release count from - size_t to u_int - also see corresponding change to OS.h, above. - - * ace/Thread.{h cpp} (spawn_n): Change return value from int to size_t, - matching the range available via the 'n' argument. - - * ace/Thread_Manager.{h i cpp}: - (count_threads): Change return value from int to size_t. Matches - the requestable number of threads in spawn_n, as well as - underlying container size return. - (find_task): Change slot argument from int to size_t... matches - range of available slots. The default changed from -1 to 0, but - should make no difference since first check is for 0 >= . - (thread_all_list, task_all_list, task_list, thread_list, - hthread_list, thread_grp_list, hthread_grp_list): Changed - return value from int to ssize_t, to match argument. - - * ace/Timer_Hash_T.{h cpp}: This timer queue generates timer IDs - by casting a pointer to a dynamically-allocated structure to - a long. This, of course, is invalid on Win64. On Win64, the ID - is obtained by masking off the lower 32 bits of the pointer, - and saving the upper 32 bits. This adds an assumption that all - the Hash_Tokens allocated will have the same upper 32 bits in - the pointer value. Note that the original pointer value is used - as the ACT value in the timer scheduled within this class. The - timer ID must only be reconverted to cancel a timer by ID, or - to explicitly reschedule it. Expiration and cancel-by-handler - are all handled by reconverting the ACT to the dynamically-allocated - memory area (Hash_Token). - Also changed hash starter from time.usec() to time.sec(). usec() - isn't usually anything of value. - - * ace/Timer_Wheel_T.cpp: Added #pragma to disable compile warnings. - We know of the issue and deliberately used the fields this way. - - * ace/UPIPE_Stream.{h cpp} (send, recv): Changed return value from - int to ssize_t, consistent with other IPC streams in ACE. - - * ace/WFMO_Reactor.{h cpp} (ACE_WFMO_Reactor_Handler_Repository): - Changed max_handlep1_ and max_handlep1 () from size_t to DWORD. - Matches what they're used for (input to WaitForMultipleObjects). - (ACE_WFMO_Reactor): Changed wait_for_multiple_events() to return - DWORD, not int - matches what WaitForMultipleObjects returns. - Changed wait_status and slot args to dispatch(), safe_dispatch(), - dispatch_handles (), dispatch_handler (), simple_dispatch_handler (), - complex_dispatch_handler (), and poll_remaining_handles () to also - be DWORD, not int, as they're working directly (or close to it) - with the same WFMO return value. - - * ace/WIN32_Asynch_IO.cpp (ACE_WIN32_Asynch_Read_Stream::readv, - ACE_WIN32_Write_Stream::writev, ACE_WIN32_Asynch_Read_Dgram::recv, - ACE_WIN32_Asynch_Write_Dgram::send): - Make multiple iovecs if needed to transfer all data requested. - (ACE_WIN32_Asynch_Read_Stream::shared_read, - ACE_WIN32_Asynch_Write_Stream::shared_write, - ACE_WIN32_Asynch_Read_File::readv, - ACE_WIN32_Asynch_Write_File::writev, - ACE_WIN32_Asynch_Accept::accept, - ACE_WIN32_Asynch_Transmit_File::transmit_file): Limit requested - bytes to MAXDWORD. Return -1, ERANGE if over. - - * ace/WIN32_Proactor.{h cpp}: Changed number_of_threads_ member from - size_t to DWORD, matching the API calls it's passed to. - (post_completion): Cast transfer count from size_t back to DWORD - for posting. The cast is ok since the original requested transfer - counts (in WIN32_Asynch_IO) were limited to DWORD range. - - * tests/Config_Test.cpp: - * tests/Proactor_Scatter_Gather_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Proactor_Timer_Test.cpp: - * tests/Reactor_Timer_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/TP_Reactor_Test.cpp: size_t/int fixes. - -Fri Oct 4 18:39:19 2002 Steve Huston - - * tests/Recursive_Condition_Test.cpp: Added a deactivate/wait - on the timer queue to make sure the queue shuts down. This - reveals a bug in the recursive condition... it's stuck. - Also added a much simpler wait/signal test that shows the issue - without the additional stuff to trudge through while looking for - the problem. Thanks to Philippe Haussy - for reporting this and sending a nice, concise test case. - - * THANKS: Added Philippe Haussy to the Hall of Fame. - -Thu Oct 3 17:29:36 2002 Douglas C. Schmidt - - * ace/OS_Dirent.cpp (readdir_emulation): Don't do a FindNextFile() - right after FindFirstFile() to avoid overwriting the existing - data! Thanks to Dmitry Botcharnikov for - reporting this. - -Wed Oct 2 20:44:19 2002 Steve Huston - - * tests/Proactor_Scatter_Gather_Test.cpp: Added some more diagnostic - info and removed ACE_ASSERT on file not compared correctly - just - note the error and return. When about to writev a chain of blocks, - update the odd/even chains before writing in case the write fails; - fixes a crash on NT4... test still fails, but doesn't crash. - -Wed Oct 2 10:50:49 2002 Ossama Othman - - * ace/Basic_Types.h: - * ace/Basic_Types.cpp: - - Do not rely on the u_int and u_long typedefs. They are not - always defined in system headers. Addresses a compile-time - issue when _XOPEN_SOURCE is explicitly set to 600 on Glibc - platforms, such as Linux. - - * ace/OS.h: - - Explicitly define the u_{char,short,int,long} typedefs on Glibc - platforms when _BSD_SOURCE is not defined. Addresses a - compile-time issue when _BSD_SOURCE is not defined. - - * ace/config-linux.h: - - If ACE_HAS_PTHREADS_UNIX98_EXT is not defined, do not define - ACE_LACKS_RWLOCK_T. Addresses a compile-time issue when - _XOPEN_SOURCE is not set to a value >= 600. - - * ace/config-linux-common.h: - - Reverted change that explicitly defined _XOPEN_SOURCE to 600. - Explicitly defining _XOPEN_SOURCE to 600 causes many - compile-time errors and warnings to occur. - - Moved the check for (_XOPEN_SOURCE >= 600) after the - include. That header may define _XOPEN_SOURCE when - other macros, such as _GNU_SOURCE, are defined. - -Wed Oct 2 01:08:51 2002 Krishnakumar B - - * ace/SString.cpp (ACE_NS_WString): Fix the silly off-by-one error - causing heap corruption and core dumps in $ACE_ROOT/Naming_Test. - Thanks to Vladislav for reporting the - problem. - -Tue Oct 1 20:46:35 2002 Christopher Kohlhoff - - * ace/Atomic_Op.cpp: - Added explicit instantiations for ACE_Atomic_Op - and ACE_Atomic_Op_Ex. Programs using ACE should - no longer explicitly instantiate these classes. This change eliminates - the complexity of having to test for the ACE_HAS_BUILTIN_ATOMIC_OP - define when doing explicit instantiations. - - * tests/Atomic_Op_Test.cpp: - * tests/Notify_Performance_Test.cpp: - Removed ACE_Atomic_Op explicit instantiations that are now made in the - ACE library itself. - -Tue Oct 1 19:49:36 2002 Krishnakumar B - - * ace/Exception_Macros.h: - - Fixed some documentation for using the Exception macros. - - * ace/OS.i: - * ace/config-aix-4.x.h: - * ace/config-hpux-11.00.h: - * ace/config-linux-common.h: - * ace/config-linux.h: - - Enable support for using native rwlocks on Linux. - -Tue Oct 1 05:06:18 2002 Balachandran Natarajan - - * ace/WIN32_Asynch_IO.cpp: Minor cosmetic changes. - -Mon Sep 30 12:21:32 2002 Ossama Othman - - From Christophe Juniet - * ace/Sock_Connect.cpp (get_bcast_addr, get_ip_interfaces) - (count_interfaces): - - The ifr_addr.sa_len field was not taken into account when - incrementing the ifreq pointer on FreeBSD. Addresses network - interface enumeration problems in FreeBSD builds. - -Mon Sep 30 09:33:42 2002 Christopher Kohlhoff - - * bin/MakeProjectCreator/templates/bor.mpd: - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - * include/makeinclude/build_lib.bor: - * include/makeinclude/clean.bor: - * include/makeinclude/outputdir.bor: - Add support for the 'install', 'dllout' and 'libpaths' - MakeProjectCreator settings in generated Borland makefiles. - -Mon Sep 30 13:25:12 2002 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - Now it is possible to create shared libraries, but no executables - yet with Kylix3. - -Mon Sep 30 11:33:12 2002 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - Extended Kylix3 GNU file. - -Mon Sep 30 11:13:33 2002 Johnny Willemsen - - * ace/config-borland-common.h: - * ace/config-win32-common.h: - Moved the dll export stuff for the Borland compiler from the win32 - file to the borland file because the Kylix compiler also supports - the dll export stuff for shared objects. - -Mon Sep 30 10:19:33 UTC 2002 Johnny Willemsen - - * include/makeinclude/rules.bin.GNU: - Added special part for Kylix. The Kylix linker expects that the - object files and the name of the executable are separated using - a comma. - -Sun Sep 29 08:19:09 2002 Nanbor Wang - - * ACEXML/examples/SAXPrint/Makefile: Removed inclusion of - rules.lib.GNU to allow mingw compilation to proceed. Thanks to - Vince Mounts for reporting this. - - * ace/SString.h: Moved the ACE_INLINE before ACE_Export in - declaration of operator+ to resolved a mingw warning. Thanks to - Vince Mounts for reporting this. - -Fri Sep 27 12:49:33 2002 Johnny Willemsen - - * include/makeinclude/rules.lib.GNU: - Added special part for Kylix - -Thu Sep 26 21:52:05 2002 Balachandran Natarajan - - * THANKS: Added Erich Hochmuth" to - the hall of fame. - -Thu Sep 26 13:48:26 2002 Balachandran Natarajan - - * ace/TP_Reactor.cpp (remove_handler): Make a check for the return - value from the remove_handler_i () call before calling - handle_close (). Thanks to Eric Malenfant - for suggesting this. - - Eric mentions that doesnt show up the BUG 1020 problem. But - local testing here doesnt tell so. I still see some core dumps - with a test, albeit slowly! The patch cannot do any harm and - hence this is checked in. - -Thu Sep 26 07:16:56 2002 Douglas C. Schmidt - - * ace/Local_Name_Space.h (ACE_NS_String): Removed the comment - about ACE_NS_String not having a destructor since this seems to - have been overtaken by events. Thanks to Vladislav Zverev - for reporting this inconsistency. - -Thu Sep 26 09:18:55 UTC 2002 Johnny Willemsen - - * ace/Logging_Strategy.h: - Improved doxygen documentation. - -Thu Sep 26 05:42:33 UTC 2002 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Since mingw can now handle exceptions across dll boundries - removed that restriction. Thanks for Vince Mounts - for reporting this. - -Wed Sep 25 17:58:43 UTC 2002 Johnny Willemsen - - * ace/Basic_Stats.h: - * ace/Connector.h: - * ace/INET_Addr.h: - * ace/OS.h: - * ace/OS.i: - * ace/Service_Config.h: - * ace/Stats.h: - * ace/Timer_Queue_T.cpp: - * ace/TLI_Connector.cpp: - * ace/XTI_ATM_Mcast.i: - * ace/RMCast/RMCast_Reliable_Factory.h: - Small fixes in method argument names, types, comments to fix doxygen - warnings and improve the generated documentation. - -Wed Sep 25 08:44:13 2002 Ossama Othman - - * tests/Notify_Performance_Test.cpp: - - Do not explicitly instantiate an ACE_Atomic_Op template if ACE_HAS_BUILTIN_ATOMIC_OP is defined. - Defining it causes template specialization with the same - parameters to be declared. Fixes a compile-time problem in - explicit template instantiation builds. - -Wed Sep 25 14:49:12 UTC 2002 Johnny Willemsen - - * bin/fuzz.pl: - Extended the types of files that are tested in the doxygen - @file with the files_idl. Some of the idl files are parsed to - generate doxygen documentation and when then a @file tag - exists the filename must be correct. - -Tue Sep 24 20:17:50 UTC 2002 Don Hinton - - * tests/Process_Manager_Test.cpp: Removed the ACE_HAS_THREADS - requirement and the unneeded call to - ACE_Reactor::instance ()->owner () so that it would run cleanly - on single threaded builds. Thanks to Steve Huston for this - suggestion. - - * tests/run_test.lst: Added !STATIC to Framework_Component_Test since - it must load a shared library as part of the test. - -Tue Sep 24 16:07:21 2002 Steve Huston - - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - For Windows builds without ACE_HAS_STANDARD_CPP_LIBRARY, use - gets() and a char[] instead of the standard string and getline - functions. We don't want to be going this way for ACE in general, - but this fixes the legacy-mode builds. - -Tue Sep 24 06:30:31 UTC 2002 Johnny Willemsen - - * ace/ACE.h: - * ace/Acceptor.h: - * ace/Activation_Queue.h: - * ace/Asynch_Acceptor.h: - * ace/Asynch_Connector.h: - * ace/Arg_Shifter.h: - * ace/Get_Opt.h: - * ace/Local_Tokens.h: - * ace/Method_Request.h: - * ace/Thread_Manager.h: - * ace/WIN32_Asynch_IO.h: - * ace/INET_Addr.h: - Corrected doxygen tags. - - * ace/CDR_Stream.cpp (write_string): - * ace/Map_T.i (find, unbind): - * ace/Timer_Hash_T.cpp: - Made arguments in method definition and implementation the - same. - - * ace/Future.h: - Improved doxygen documentation. - - * ace/POSIX_CB_Proactor.i: - Added same ifdef as in the header file around the code in this - file, so that doxygen doesn't parse it. - -Mon Sep 23 13:43:11 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a bug with the per-project workspaces. - -Mon Sep 23 13:00:13 2002 Douglas C. Schmidt - - * ace/Log_Msg_NT_Event_Log.{h,cpp}: Made the #ifdefs consistent - in both the *.h and *.cpp files. Thanks to Johnny Willemsen for - reporting this. - -Mon Sep 23 13:14:28 2002 Steve Huston - - * ace/Task.h (wait()): - * ace/Thread_Manager.h (wait_task()): Improved documentation, also - clarifying that the waited-for threads have been joined upon return. - -Mon Sep 23 12:05:38 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - For GNU, NMake and Borland projects, create a workspace per - project file. - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/GHSWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Remove trailing whitespace. - -Sun Sep 22 08:49:41 2002 Douglas C. Schmidt - - * ace/Svc_Handler.cpp (flush_i): Don't flush the queued messages - if the connection fails. Thanks to Andrew Finnell - for this fix. - -Sat Sep 21 23:05:56 2002 Balachandran Natarajan - - * bin/subst_env.pl: Improved conversion to different coding - styles. Thanks to Oliver Kellog for suggesting this. - -Fri Sep 20 13:52:23 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/NMakeProjectCreator.pm: - - Fixed a problem with implicit idl dependencies. - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added the ability to override or modify idlflags on a per file - group basis. - -Thu Sep 19 22:13:13 2002 Krishnakumar B - - * ACEXML/common/HttpCharStream.cpp: Added license for the FSM in - HttpCharStream.cpp. It is a shortened BSD license which is - compatible with ACE/TAO licensing. - -Wed Sep 18 12:26:22 2002 Douglas C. Schmidt - - * examples/Misc/test_trace.cpp: The call to activate() was - being invoked with the parameters in the wrong order. Thanks to - Jeff W for reporting this. - -Tue Sep 17 17:26:40 2002 Ossama Othman - - * ace/Basic_Types.cpp: - - Cosmetic changes to clarify some preprocessor blocks. - - * ace/CDR_Base.h: - - Corrected placement of '#' character in preprocessor - directives. It belongs in the first column, not arbitrary - ones. - -Tue Sep 17 01:35:54 UTC 2002 Don Hinton - - * ace/OS.h: Remove redundant MAXPATHLEN definition when - building VxWorks. Thanks to Rob Andzik - for pointing this out. - -Mon Sep 16 17:36:33 UTC 2002 Johnny Willemsen - - * ace/Hash_Cache_Map_Manager_T.cpp: - Use typedefs from header file. - - * ace/Process.i (setreugid): - Made method implementation same as definition - -Mon Sep 16 15:26:56 UTC 2002 Johnny Willemsen - - * ace/config-doxygen.h: - Added define ACE_HAS_TEMPLATE_TYPEDEFS to generate - ACE_Event_Handler_T documentation. - -Mon Sep 16 07:35:12 UTC 2002 Johnny Willemsen - - * ace/config-doxygen.h: - Added define ACE_HAS_EVENT_POLL to generate Dev_Poll reactor - documentation - - * ace/Acceptor.h: - * ace/Containers_T.{h,cpp}: - * ace/Dev_Poll_Reactor.h: - * ace/Sample_History.h: - * ace/Service_Config.h: - Improved doxygen documentation. - -Sat Sep 14 10:34:34 2002 Douglas C. Schmidt - - * ace/config-freebsd-pthread.h: Added - #undef ACE_LACKS_UCONTEXT_H if we're compiling for FreeBSD - version > 4. Thanks to Christophe Juniet - for reporting this. - -Fri Sep 13 08:37:09 2002 Ossama Othman - - * ace/Time_Value.h: - * ace/Time_Value.inl: - - Removed copy constructor. The default compiler-generated copy - constructor will do fine since ACE_Time_Value is a POD class. - This may also avoid potential confusion due to a missing - explicit assignment operator. The compiler-generated assignment - operator will suffice in this case, too. - - From Gonzalo Diethelm - * bin/.cvsignore: - * tests/.cvsignore: - * tests/log/.cvsignore: - - Files to silence annoying CVS messages regarding generated files - it doesn't know about. - -Fri Sep 13 08:57:03 2002 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added the ability to modify template and project variable - assignments from the command line. Also added rules to process - idl files and place the output in the directory relative to the - specified idl file. - - Modified to not add duplicates to file lists. - -Thu Sep 12 17:18:43 2002 Douglas C. Schmidt - - * ace/Synch.{h,cpp}: Only define the recursive condition support if - we're running on Win32. Hopefully, this will be generalized for - VxWorks at some point. Thanks to Rob Andzik - for reporting this. - -Thu Sep 12 19:29:41 2002 Steve Huston - - * ace/Atomic_Op_T.i (dump): Don't try to return a value from a - 'void' method. - -Thu Sep 12 17:38:10 2002 Nanbor Wang - - * ace/Malloc_T.h: - * ace/Malloc_T.i (release): Added an extra argument (with default - value) to release so that we could decrease the refcount and - release the backing store if needed atomically (while holding the - lock.) This was causing a race condition when removing mmap - files used by MEM_Stream's. - - * ace/Memory_Pool.h: - * ace/Memory_Pool.i: - * ace/Memory_Pool.cpp: Changed the release method to take an extra - argument so that we can control whether we want to perform - cleanup on backing store or not. - - * ace/MEM_SAP.cpp (close_shm_malloc): Changed to use the extended - release method to remove the shared_memory. - - * ace/MEM_IO.cpp: When sending/receiving data reactively, make - sure we don't even try if the socket is not valid. - -Thu Sep 12 08:39:46 2002 Douglas C. Schmidt - - * ace/Synch.h (class ACE_recursive_mutex_state): Changed "HANDLE" to - "ACE_HANDLE" to avoid problems with VxWorks. Thanks to Rob - Andzik and Don Hinton - for reporting this. - -Thu Sep 12 17:36:36 UTC 2002 Craig Rodrigues - - * include/makeinclude/wrapper_macros.GNU: Use awk instead of - perl to determine the ACE major, minor, and beta versions. - -Thu Sep 12 12:02:31 2002 Steve Huston - - * tests/TSS_Test.cpp: Pass iteration count to worker() as a pointer - to int, not an int cast to a pointer and back. - -Wed Sep 11 08:44:28 2002 Douglas C. Schmidt - - * Our thoughts and prayers go out to the victims of 9/11/01 on the - anniversary of this terrible tragedy. - -Wed Sep 11 13:03:48 2002 Carlos O'Ryan - - * ace/Select_Reactor_Base.cpp: - Check the suspend mask before completely forgetting about a - handle, otherwise things do not work correctly with TP_Reactors - and multiply-registered handlers. This fixes: - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1306 - -Tue Sep 10 17:46:51 2002 Steve Huston - - * ace/Malloc_T.{h i cpp} (ACE_Malloc_T): Changed the lock_ member from - an ACE_LOCK to an ACE_LOCK *. Also added another constructor that - accepts an ACE_LOCK pointer instead of a ACE_TCHAR *lock_name. - This allows someone to form an ACE_LOCK externally and supply - it to the ACE_Malloc_T object. This is useful if special - permissions need to be set on the lock, such as the mode_t for - ACE_Process_Mutex. - -Tue Sep 10 14:06:02 2002 Krishnakumar B - - * ace/Obstack_T.cpp: - * ace/Obstack_T.h: - - Obstack is no longer restricted to fixed-size chunks. Chunk size - is increased by a power of two if we run out of memory in a - chunk. Added implementation of unwind operations. Stack can be - unwound by giving the address of an object on the stack. Fixed a - couple of bugs in the existing implementation when used with - WCHAR. We were incrementing the pointers by sizeof (CHAR) as - well as multiplying by sizeof (CHAR) to get the number of bytes - to be copied. This improvement doesn't deal with the alignment - issues as it requires a change in Obchunk which is postponed - till after ACE 5.3 is released. - - * tests/Obstack_Test.cpp: - - New, improved test which exercises all the code paths in the - implementation unlike the previous test. - -Tue Sep 10 12:32:33 2002 Carlos O'Ryan - - * ace/Connector.cpp: - Be more informative in error messages, at least report in what - library, class and function was the error detected. This fixes: - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1304 - -Tue Sep 10 12:28:41 2002 Carlos O'Ryan - - * ace/Connector.cpp: - Be more paranoid about using AST's returned from cleanup_AST() - and always check the return value of that function. This fixes: - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1303 - -Mon Sep 9 16:44:00 2002 Balachandran Natarajan - - * THANKS: Surprise, surprise, Gautam Thaker'ss name was not there - in the THANKS file. So added it. - -Mon Sep 9 16:57:41 2002 Steve Huston - - * ace/POSIX_Asynch_IO.cpp (cancel): Don't sanity-check the - proactor type - just call cancel_aio and let the proactor impl - figure it out. - - * examples/Reactor/Proactor/test_aiocb.cpp: Fixes to not crash. - -Mon Sep 09 11:37:13 2002 Nanbor Wang - - * ace/OS.cpp (cond_timedwait): Changed to pass absolute time when - using emulated semaphore on WinCE. Thanks to Herbert Wang - for reporting this. - - * ace/Thread_Manager.cpp (join): This function was not cropping - the thread return status when a thread had already exited when - we called and its Thread_Descriptor had been moved to - terminated_thr_list_. Thanks to Roger Weeks - for reporting the problem. - -Mon Sep 9 00:12:04 UTC 2002 Craig Rodrigues - - * ace/Makefile.dirs: - * examples/Makefile: - * tests/Makefile: - Remove references to obsolete ACE_HAS_GNUG_PRE_2_8 make - variable. - -Sat Sep 7 23:22:20 2002 Balachandran Natarajan - - * bin/make_release: The tar ball that is put out during the - release, is copied now to the the previous_versions directory - with the appopriate version information. This should work right - since this was tested against a local repo. - - Thanks to Preston A. Elder for motivating - this change. - -Sat Sep 7 18:03:21 2002 Steve Huston - - * ace/Proactor.cpp: Removed some ACE_Proactor:: prefixes on member - variable access, replacing with this-> to clarify what's happening. - - * ace/SUN_Proactor.cpp (handle_events): No need to cast a pointer to - long to check for 0. - Re-enabled some "should never happen" ACE_DEBUG lines until we - find out what's going wrong with this stuff. - -Thu Sep 5 12:13:51 2002 Steve Huston - - * ACEXML/common/URL_Addr.inl: Removed ACE_RCSID - it's in URL_Addr.cpp. - -Wed Sep 4 16:31:29 2002 Douglas C. Schmidt - - * Kelly Clarkson wins "American Idol." Go Kelly!! - -Wed Sep 4 17:50:27 2002 Steve Huston - - * tests/run_test.pl: Change run time limit from 300 to 400 seconds. - Some tests are timing out, and when run by hand, they run just over - 5 minutes, so give them a little more time. - -Wed Sep 4 17:31:24 2002 Steve Huston - - * tests/Cached_Conn_Test.cpp: ACE_DEBUG %@ for pointers, not %d. - -Wed Sep 4 20:59:40 UTC 2002 Craig Rodrigues - - * include/makeinclude/platform_irix5.2.GNU: - * include/makeinclude/platform_m88k.GNU: - * include/makeinclude/platform_netbsd.GNU: - * include/makeinclude/platform_qnx_neutrino.GNU: - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - * include/makeinclude/platform_sco-nothread.GNU: - Instead of setting -fno-implicit-templates, - use $(TEMPLATES_FLAG). Include platform_g++.GNU to get the - correct value of $(TEMPLATES_FLAG). - -Wed Sep 4 16:31:29 2002 Steve Huston - - * ace/Timer_Wheel_T.cpp: Formatting tweaks for ACE coding style. - -Wed Sep 4 20:08:54 UTC 2002 Don Hinton - - * ace/Framework_Component.cpp (close): - - Delete each component explicitely instead of calling - close_singleton () to avoid a memory leak. The dtor calls - close_singleton () anyway. Thanks Vladimir Chovanec - for reporting the leak and - suggesting the fix. - -Tue Sep 03 22:59:27 2002 Krishnakumar B - - * ACEXML/common/XML_Common.dsp: - - Added URL_Addr.inl to common. - -Tue Sep 03 22:40:22 2002 Krishnakumar B - - * ACEXML/common/HttpCharStream.cpp: - - Handle WCHAR properly when getting data from URLs. - - * ACEXML/common/URL_Addr.cpp: - * ACEXML/common/URL_Addr.h: - * ACEXML/common/URL_Addr.inl: - - Fixes for proper parsing of URLs when URLs are WCHARs. - - * ACEXML/examples/SAXPrint/main.cpp: - - Use int in GetOpt instead of char or ACEXML_Char. - -Tue Sep 3 17:12:59 2002 Ossama Othman - - * ace/OS.cpp (num_processors_online): - - Fixed ACE_TRACE macro. - -Tue Sep 3 16:38:47 2002 Ossama Othman - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - - Atomic_Op.cpp is no longer a template source file. Moved it to - the "Source Files" folder. - - * ace/Synch.cpp (ACE_Mutex): - - Fixed "unused 'mode' argument" warning. - -Tue Sep 3 15:54:33 2002 Christopher Kohlhoff - - * ace/OS.h: - * ace/OS.cpp: - - Added new functions ACE_OS::num_processors() and - ACE_OS::num_processors_online() for determining the number of CPUs - available on a system. - - * ace/Atomic_Op.cpp: - * ace/Atomic_Op.h: - * ace/Atomic_Op.i: - * ace/Atomic_Op_T.cpp: - * ace/Atomic_Op_T.h: - * ace/Atomic_Op_T.i: - * ace/Object_Manager.cpp: - * ace/Makefile.bor: - * ace/Makefile.ace: - * ace/ace.mpc: - * tests/Atomic_Op_Test.cpp: - - Added a new fast, lightweight ACE_Atomic_Op template specialization - for x86 platforms that uses the architecture's atomic integer - primitives. It currently supports Win32 using MSVC6 or BCB, and g++ - for (in theory) all x86 operating systems. It selects the - appropriate implementation for single- or multi-CPU systems at - runtime, based on the return value of the ACE_OS::num_processors - function added above. - - Note that Atomic_Op.cpp is now a real .cpp file and not a template - file, and so project files need to be updated accordingly. The - template definitions have been moved to the new Atomic_Op_T.* files. - - Note also that the ACE_Atomic_Op::mutex() operation has been - deprecated (and is not supported for the new specialization). If - you need this functionality, consider using the ACE_Atomic_Op_Ex - template instead. - -Tue Sep 3 15:40:39 2002 Ossama Othman - - * tests/XtReactor_Test.cpp (sock_callback): - - Removed this unused static function. - - * tests/TkReactor_Test.cpp (sock_callback): - - Likewise. - - (ACE_TMAIN): - - Fixed "deprecated conversion from string constant to char *" - warning. - -Tue Sep 3 15:16:03 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Fixed a typo! - -Mon Sep 2 16:48:29 2002 Steve Huston - - * tests/OS_Test.cpp (ctime_r_test): Corrected ACE_Log_Msg to use - %P, not %p, to list process ID. - -Mon Sep 2 13:17:26 2002 Steve Huston - - * ace/Memory_Pool.{h cpp}: - (ACE_MMAP_Memory_Pool_Options): Added optional file_mode arg - to set the protection mode on the mapped file, if it is - created; defaults to ACE_DEFAULT_FILE_PERMS. - (ACE_MMAP_Memory_Pool): Added file_mode_ member that can be set - by the ACE_MMAP_Memory_Pool_Options. Defaults to - ACE_DEFAULT_FILE_PERMS. It's used for call to ACE_Mem_Map::open() - and ACE_Mem_Map::map(). - - * ace/Process_Mutex.{h cpp}: ACE_Process_Mutex ctor takes an optional - mode_t arg to set the backing store mode (for ACE_Mutex use) or the - mode for the System V semaphore, when it's used. - - * ace/Synch.{h cpp} (ACE_Mutex): Constructor takes an optional mode - to set backing store protection for Pthreads process mutex case, - where memory must be allocated to hold the mutex. - - These are laying the groundwork for fixing Bugzilla #1219. - -Mon Sep 2 14:07:12 2002 Krishnakumar B - - * ace/Exception_Macros.h: - - New file which holds the exception macros previously present in - CORBA_macros.h. This file also makes the macros a bit generic so - that they can be used in other modules than TAO. - - * ace/CORBA_macros.h: - - Include only the definitions needed for TAO/CORBA. This file can - be placed under $TAO_ROOT now. Leaving it for compatibility - reasons. - - * ace/OS.i: - - Changed the definition of ctime_buf_size to const so that gcc - doesn't complain about using variable-sized array which is - non-ISO C++. - -Mon Sep 2 10:00:40 2002 Balachandran Natarajan - - * ace/Timer_List_T.cpp (get_first_i): Fixes fuzz errors. - -Sun Sep 01 08:18:37 UTC 2002 Johnny Willemsen - - * ace/Task.cpp (svc_run): - The latest version of the Borland compiler doesn't like the - static cast, so only do the static cast when the compiler - version is smaller than 0x570 - - * ace/Handle_Set.cpp: - When using Borland on Linux, we don't have fds_bits, but we have - __fds_bits. - -Sun Sep 01 07:57:12 UTC 2002 Johnny Willemsen - - * ace/config-win32-borland.h: - * ace/config-borland-common.h: - Improved Borland config files for Kylix support. - -Sun Sep 01 07:25:12 UTC 2002 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - Added first version of platform .GNU file for the Borland Kylix - compiler. Thanks to Newton Aird for - providing this first version. - - * THANKS: Added Newton Aird - -Sat Aug 31 14:57:53 2002 Balachandran Natarajan - - * THANKS: Added Cemal Yilmaz to the hall of - fame. - -Sat Aug 31 13:55:52 2002 Balachandran Natarajan - - * ace/OS.i (ctime_r): This fixes a problem on Linux for the call - to ::ctime_r where the pointer returned (result) is the same as - the pointer (buf) passed in, causing the buffer to get clobbed - if strsncpy is used subsequently to move the result back to the - caller's buffer. - - * tests/OS_Test.cpp: Added a test for ACE_OS::ctime_r (). - - Thanks to Michael Searles for providing - this patch. - -Sat Aug 31 17:45:12 UTC 2002 Johnny Willemsen - - * ace/config-borland-common.h: - Created a new config file for the Borland compiler. This will be - used on the Win32 platform and the Kylix3 compiler on Linux - - * ace/config-linux-common.h: - When the Borland compiler is detected, include the - config-borland-common.h file - - * ace/config-win32-borland.h: - Moved most of the contents to the config-borland-common.h file, - only the lines that are Win32 specific stay here. - -Sat Aug 31 10:32:38 2002 Douglas C. Schmidt - - * ace/Future.cpp (set): Removed a stray reference to "iterator" - and replaced the for loop with a while loop. Thanks to Craig - Rodrigues for reporting this. - -Sat Aug 31 01:20:09 UTC 2002 Craig Rodrigues - Gary Duzan - - * include/makeinclude/rules.nested.GNU: Rewritten by Gary Duzan. - If a list of directories is specified with DIRS= for a recursive - make, make will halt immediately and propagate a non-zero - return code to the shell if an error is encountered in a - subdirectory. The present behavior does not propagate any - errors to make if there is an error in a subdirectory. If make -k - is specified, make will keep on going even if it encounters an - error in a subdirectory, but it will also propagate a non-zero - return code to make when the make finishes. The current behavior - is to keep on going if an error is encountered in a subdirectory, - but NOT propagate a non-zero return code upon termination of make. - - * ace/Makefile.dirs: (Added) Specifies the DIRS= list of directories - to invoke recursive makes on. - - * ace/Makefile.ace: (Added). This builds libACE, like the old Makefile - did. - - * ace/Makefile: Invoke Makefile.ace first, then Makefile,dirs. It - was necessary to split apart the DIRS= rule from the part of the - Makefile which builds libACE in order to have parallel makes (-j 2) - work on recursive makes. - -Fri Aug 30 17:34:00 2002 Justin Michel - - * ace/Timer_List_T.cpp: - * ace/Timer_List_T.h: - * ace/Timer_Wheel_T.cpp: - * tests/Timer_Queue_Test.cpp: - - Reimplemented timer list to be compatible with Itanium. It no longer - uses a Node* as the timer_id, so the cancel operation is now much - more expensive. On the plus side I was able to make a few optimizations - that improve the speed of the schedule operations. - I also made a small optimization to the timer wheel, and updated - the test slightly. - -Fri Aug 30 15:53:18 2002 Steve Huston - - * tests/SSL/Makefile: Move the addition of SSL options/flags up to - before the hackery of the compile command for AIX. - -Fri Aug 30 05:48:12 UTC 2002 Johnny Willemsen - - * ace/OS.i (tempnam): - Changed defines because special things only happen on Win32 - -Thu Aug 29 22:01:27 2002 Steve Huston - - * include/makeinclude/platform_hpux_gcc.GNU: Make the build options - settable by the command line (and/or platform_macros.GNU), and - fix the threads and soname options, as well we remove the - -fstrict-prototype option from the compile options - it was needed - for an older g++ (nothing prior to g++ 3 works right on HP-UX - anyway) and is not valid for g++ 3.2 and later. Thanks to - Ville Lehtiniemi for reporting these - issues and sending fixes. - -Thu Aug 29 15:18:31 2002 Steve Huston - - * ace/Get_Opt.{h i cpp} (long_option): Only print error messages for - long message addition problems if opterr is set. Also added - ACE_LIB_TEXT to naked strings for ACE_ERROR. - - Added opt_opt() method to return the most recently matched - short option character. Thanks to Rich (Mr. POSIX) Seibel - for the idea and POSIX spec info for this new method. - - * ace/Object_Manager.cpp (init): When finishing up initialization of - the object manager, call ACE_Trace::start_tracing() to reenable - trace in cases where a user does init/fini/init. - - * tests/Get_Opt_Test.cpp: Added usage of ACE_Get_Opt::opt_opt(). - -Thu Aug 29 15:03:23 2002 Ossama Othman - - * ace/README: - - Documented ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS macro. - - * ace/config-win32-msvc-6.h - (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS): - - MSVC++ 6 does not correctly handle exceptions thrown from - functions/methods that do not list them in the exception - specification. In particular, the unexpected exception handler - is not invoked. - -Thu Aug 29 06:12:56 2002 Douglas C. Schmidt - - * ace/Future.cpp (set): Fixed the loop code so it's possible for - the observer object to be deleted or detached in its update() - operation. Thanks to Tomer Amiaz for this - fix. - -Thu Aug 29 09:40:20 2002 Nanbor Wang - - * ACEXML/common/Transcode.h: - * ACEXML/parser/parser/Parser.h: Fixed incorrect usage of Doxygen - tag. Thanks to Johnny for pointing this out. - -Thu Aug 29 12:20:17 UTC 2002 Johnny Willemsen - - * ace/config-win32-borland.h: - Removed the 1 after 2 defines, so that they are like the defines - in other files. - -Thu Aug 29 05:53:12 UTC 2002 Johnny Willemsen - - * examples/Reactor/Proactor/post_completions.cpp: - Fixed compile error. - - * ace/OS_Dirent.h: - * ace/OS_Errno.cpp: - * ace/Time_Value.h: - * ace/Time_Value.inl: - Made method signature the same in definition and implementation. - - * ace/TkReactor.cpp: - * ace/TkReactor.h: - Made method argument names the same as in the base so that doxygen - can generate the documentation. - -Wed Aug 28 23:30:31 2002 Steve Huston - - * include/makeinclude/wrapper_macros.GNU: Remove addition of SSL - compile/link options so that not all parts of ACE, needing SSL or - not, get these options. - - * ace/SSL/Makefile: - * tests/SSL/Makefile: Added the SSL compile/link options from - wrapper_macros.GNU to these files, where they're needed. - - * ace/POSIX_Proactor.cpp (post_wakeup_completions): Use int - to count completions, not ssize_t - match the passed-in arg type. - Post the completion directly via the proactor, not via the - wakeup completion; the dynamic_cast in ACE_POSIX_Asynch_IO::post_ - completion loses the subclass of ACE_POSIX_AIOCB_Proactor and - when using any other subtype of proactor, the notification is - queued incorrectly. - - (POSIX_SIG_Proactor::notify_completion()) - always queue the signal. - Not doing so leaves a window where MT proactors can lose a signal. - - * tests/Proactor_Test.cpp: Use ACE_Proactor::close_singleton() to - delete proactor instance. Just to be sure we try it. - - * ace/SSL/SSL_Asynch_Stream.{h cpp}: u_long->size_t changes. - -Wed Aug 28 22:42:41 2002 Steve Huston - - * examples/Service_Configurator/Misc/main.cpp: - * netsvcs/clients/Naming/Client/main.cpp: - * tests/ARGV_Test.cpp: - * tests/Get_Opt_Test.cpp: Change size_t to int as a side-affect of: - Tue Aug 27 13:28:17 2002 Steve Huston - * ace/ARGV.{h i cpp}: Changed argc() value from size_t to int. It - needs to get passed to many places that expect int (argc, argv). - - * tests/Semaphore_Test.cpp: - * tests/TP_Reactor_Test.{cpp h}: - * tests/Upgradable_RW_Test.cpp: Further int/size_t corrections. - -Wed Aug 28 19:56:16 2002 Douglas C. Schmidt - - * docs/ACE-subsets.html: Updated the document to point to the - soreduce tool and to remove the discussion of PACE. Thanks to - Chumsu Kim for motivating this. - -Wed Aug 28 14:24:36 2002 Steve Huston - - * ace/Log_Msg.h: Fixed Doxygenation of ACE_Log_Msg. Thanks to - Philip Miller for reporting this. - -Wed Aug 28 11:21:04 2002 Chad Elliott - - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - - Enabled RTTI for all VC based template input files. - -Wed Aug 28 06:18:35 2002 Douglas C. Schmidt - - * ace: Removed the config-sunos5.8-sunc++-5.4.h file since these - changes should go in the config-sunos5.8.h file rather than - a special file. Thanks to Steve Huston for noticing this. - - * include/makeincludes: Removed the platform_sunos5_sunc++5.4.GNU - file since it's no different from the platform_sunos5_sunc++.GNU - file. Thanks to Steve Huston for noticing this. - -Wed Aug 28 06:12:12 UTC 2002 Johnny Willemsen - - * etc/tao.doxygen: - Removed Services.h of the list of not to parse files - - * etc/tao_rtportableserver.doxygen: - Added TAO_NAMESPACE to list of to expanded macros - - * tests/Timer_Queue_Test.cpp: - Fixed unicode build error - - * ace/Timer_Wheel_T.cpp: - Fixed doxygen tags. - -Tue Aug 27 19:09:17 2002 Steve Huston - - * ace/Get_Opt.h: Documentation improvements. - -Tue Aug 27 17:00:20 2002 Douglas C. Schmidt - - * ace/Signal.cpp: Fixed the ACE_Sig_Action constructors so that - it doesn't break out of the loop just because a signal handler - failed. Thanks to Marcel Loose for reporting - this. - -Tue Aug 27 19:03:05 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added $TAO_ROOT/tests/ORB_shutdown test - to the daily builds. - -Tue Aug 27 18:52:59 2002 Balachandran Natarajan - - * ace/Select_Reactor_T.cpp (wait_for_multiple_events): Normally, - select() will reset the bits in dispatch_set so that only those - filed descriptors that are ready will have bits set. However, - when an error occurs, the bit set remains as it was when the - select call was first made. Thus, we now have a dispatch_set - that has every file descriptor that was originally waited for, - which is not correct. We must clear all the bit sets because we - have no idea if any of the file descriptors is ready. - - Thanks to Jody Hagins and Carlos O'Ryan - for reporting this problem and proving the - patches. - -Tue Aug 27 15:56:10 2002 Ossama Othman - - * ace/config-sunos5.8-sunc++-5.4.h: - * include/makeinclude/platform_sunos5_sunc++5.4.GNU: - - Solaris 8 + SunC++ SPRO 5.4 platform configuration files. - Thanks to Serge Kolgan for - contributing these files. - -Tue Aug 27 17:25:39 2002 Steve Huston - - * ace/WIN32_Proactor.{h cpp}: More u_long->size_t corrections. - -Tue Aug 27 16:50:41 2002 Steve Huston - - * tests/Proactor_Test.cpp: Fixed mismatched printf formats for - size_t arguments. - -Tue Aug 27 16:32:18 2002 Steve Huston - - * ace/Proactor_Impl.h: Fixed some u_long->size_t changes missed - on POSIX platforms. - -Tue Aug 27 14:44:00 2002 Justin Michel - - * ace/Timer_Wheel_T.cpp: - - Fixed problem with incorrect name in ACE_TRACE macro. - -Tue Aug 27 13:28:17 2002 Steve Huston - - * ace/config-win32-common.h: Added #define ACE_MALLOC_ALIGN 8 for - Win64. - - * ace/Malloc_T.cpp (ACE_Cached_Allocator): When dividing up the - allocated space, maintain the platform's alignment requirements. - - * ace/ace_dll64.mak: Removed references to Hash_Map_Manager_rt.*. - - * ace/Stream_Modules.cpp (info): Cast string length back to int. - - * ace/ARGV.{h i cpp}: Changed argc() value from size_t to int. It - needs to get passed to many places that expect int (argc, argv). - - * ace/OS.{h cpp} (ACE_OS::string_to_argv): argc changed from size_t& - to int& to match the change above. - - * ace/FILE_IO.{h i cpp}: - * ace/SPIPE_Stream.{h i}: Follow-up to ACE_SOCK_Stream change in: - Mon Jul 22 16:39:21 2002 Steve Huston - (sendv_n, recvv_n, sendv, send, recv) - change iov count from - size_t to int. - - * ace/Functor_T.i (ACE_Pointer_Hash::operator()): Use reinterpret_cast - to go from pointer to u_long. - - * ace/config-win32-msvc-7.h: Define ACE_AUTO_PTR_LACKS_RESET for - Win64 SDK compiler. - - * ace/Strategies_T.{h i cpp} (ACE_Thread_Strategy): Changed n_threads - parameter (and n_threads_ member) from size_t to int - matches - what's expected by ACE_Task::activate(), which is where this - value is passed. - - * ace/Asynch_Acceptor.{h cpp}: - * ace/Asynch_IO.{h cpp}: - * ace/Asynch_IO_Impl.h: - * ace/POSIX_Asynch_IO.{h cpp}: - * ace/POSIX_Proactor.{h cpp}: - * ace/WIN32_Asynch_IO.{h cpp}: - * ace/WIN32_Proactor.{h cpp}: All byte-count arguments and members - in all classes changed from u_long to size_t. Some already were... - - * ace/SOCK_Dgram.i (send): address length is an int, not size_t. - - * tests/Cache_Map_Manager_Test.h (Hash_Key::operator()): Cast the - size_t argument to u_long for return. - - * tests/Cache_Map_Manager_Test.cpp: Cast arg for ACE_OS::srand to - u_int (matches ACE_OS signature), not size_t. - - * tests/CDR_Array_Test.cpp (zero): Change len arg to size_t, and - also the values passed to it. Also, correct length args to - ACE_InputCDR and ACE_OutputCDR - they're size_t, not int. - - * tests/Handle_Set_Test.cpp: Disable the conversion warnings - initializing the array of ACE_HANDLE values on Win64. They're fine. - - * tests/Mem_Map_Test.cpp (reverse_file): Changed size arg from int - to size_t. - - * tests/Buffer_Stream_Test.cpp: - * tests/CDR_Test.cpp: - * tests/Message_Block_Test.cpp: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Priority_Buffer_Test.cpp: - * tests/Proactor_Scatter_Gather_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/Thread_Pool_Test.cpp: - * tests/TP_Reactor_Test.{h cpp}: - * tests/Upgradable_RW_Test.cpp: Align size_t/int usage. - - * tests/Message_Queue_Notifications_Test.cpp (Watermark_Test::producer) - Change hwm from size_t to ssize_t so it can go less than zero and - break the 'for' loop properly. - - * tests/MT_SOCK_Test.cpp: - * tests/SOCK_Test.cpp: Use an int to pass to select(), always 0 - for Win64. - - * tests/SOCK_Send_Recv_Test.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - * tests/TSS_TEst.cpp: Add missing type cast. - -Tue Aug 27 11:08:54 2002 Douglas C. Schmidt - - * ace/Pair_T.{h,i}: Added support for operator== to the ACE_Pair - can be used in maps, etc. Thanks to Gonzalo Diethelm - for this addition. - -Tue Aug 27 06:45:58 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a problem where .i and .h files would be added even if they - didn't exist. - -Tue Aug 27 10:09:12 UTC 2002 Johnny Willemsen - - * etc/tao_dynamicany.doxygen: - * etc/tao_dynamicinterface.doxygen: - * etc/tao_iormanip.doxygen: - * etc/tao_iortable.doxygen: - * etc/tao_portableserver.doxygen: - * etc/tao_rtcorba.doxygen : - Added TAO_NAMESPACE to the list of defines to expand. - -Mon Aug 26 17:33:54 2002 Ossama Othman - - * bin/msvc_auto_compile.pl (Build_Core): - - Build the Messaging, PortableGroup and CosLoadBalancing - libraries in a specific order. CosLoadBalancing depends on the - first two. Fixes automated Win32 static builds. - -Mon Aug 26 17:14:20 2002 Ossama Othman - - * tests/TkReactor_Test.cpp: - - Fixed a number of warnings. - -Mon Aug 26 18:21:34 UTC 2002 Justin Michel - - * ace/Timer_Wheel_T.cpp: - * ace/Timer_Wheel_T.h: - * tests/Timer_Queue_Test.cpp: - - New and improved timer wheel implementation. - -Mon Aug 26 09:51:12 UTC 2002 Johnny Willemsen - - * ace/FlReactor.{h,cpp}: - * ace/TkReactor.{h,cpp}: - * ace/QtReactor.{h,cpp}: - Made the names of the arguments of the schedule_timer() method the - same as in the base class. That way doxygen generates the same - documentation for this overruled method as in the base. - - * ace/TLI_Connector.i: - * ace/XTI_ATM_MCast.i: - Made argument names the same as in the header file. - -Mon Aug 26 08:29:12 UTC 2002 Johnny Willemsen - - * ace/Connector.cpp: - Replaced all short defines with the original ones. Doxygen can't - generate the documentation because of the short defines. - -Sun Aug 25 14:15:12 UTC 2002 Johnny Willemsen - - * ace/config-win32-borland.h: - Certain defines should only be defined without a value. - -Sun Aug 25 12:45:12 UTC 2002 Johnny Willemsen - - * etc/tao.doxygen: - Added TAO_NAMESPACE to the list of macro's that must be expanded - when generating doxygen documentation. - -Sat Aug 24 22:47:22 2002 Christopher Kohlhoff - - * include/makeinclude/ace_flags.bor: - * include/makeinclude/clean.bor: - * include/makeinclude/compiler.bor: - - Updated to support MakeProjectCreator. - - * bin/MakeProjectCreator/config/core.mpb: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - - Fixed support for Borland makefile generation. - - New "core" config for projects that would typically be installed - on production system, i.e. pretty much everything except examples - and tests. - - New "include_dir" project attribute used to specify a directory - path where header files for the project should be installed. - - * ace/ace.mpc: - * ace/QoS/qos.mpc: - * ace/RMCast/rmcast.mpc: - * ace/SSL/ssl.mpc: - - Added "core" as a base project and added "include_dir" value. - - * apps/gperf/src/gperf.mpc: - - Added "core" as a base project. - -Sat Aug 24 16:41:36 2002 Krishnakumar B - - * ACEXML/common/FileCharStream.cpp (get): - - Remove :: in front of the macro feof. VC is hopelessly confused. - - * ace/Argv_Type_Converter.h: - - Added #include "ace/OS_Memory.h" to get ACE_NEW. I needed to - touch this to test my changes. - -Sat Aug 24 12:01:54 2002 Douglas C. Schmidt - - * ace/OS.h: #undef the atop macro so that it won't break the new - ACE_OS::atop() method on FreeBSD. Thanks to Russell Carter - and Christophe Juniet - for this report. - - * ace/config-lynxos.h: Added some #defines for LynxOS 4.0. We'll - leave these comments out for now until we figure out how to add - them without breaking earlier versions of LynxOS. Thanks to - Umberto Mascia for reporting this. - - * docs/tutorials/015/Protocol_Stream.h (class Protocol_Stream): - Changed a comment to say "server-side applications" rather than - "client-side applications." Thanks to Mark Xu - for reporting this. - -Fri Aug 23 18:20:31 2002 Steve Huston - - * ace/config-all.h: - * ace/OS_Memory.h: Moved the ACE_NEW macros from config-all.h to - OS_Memory.h - - * ace/Log_Msg.h: Removed #include "ace/Basic_Types.h" (not needed) - and replaced "ace/OS_Errno.h" with "ace/OS.h" since thread defs - are necessary. - - * ace/Basic_Types.h: Don't make thread definitions here - they belong - in ace/OS.h. - - * ace/Cache_Map_Manager_T.h: Added #include "ace/Default_Constants.h" - to get ACE_DEFAULT_MAP_SIZE when instantiating templates on AIX - with Visual Age C++. - - * ace/Caching_Utility_T.cpp: #include "ace/Min_Max.h" and - "ace/OS_Memory.h" so Visual Age C++ can see ACE_MAX and ACE_NEW - when instantiating templates. - - * ace/Arg_Shifter.cpp: Added #include "ace/OS_Memory.h" to get ACE_NEW. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: Added - #include "ace/Malloc_Base.h" to pick up ACE_Allocator. - - * tests/Cached_Allocator_Test.cpp: Changed default speed tests loops - from 100,000,000 to 10,000,000. run_test.pl times it out on - non-nuclear processors ;-) - -Fri Aug 23 16:59:51 2002 Nanbor Wang - - * bin/svcconf-convert.pl: Fixed regex to handle empty option - strings in static/dynamic entries correctly. - -Fri Aug 23 16:25:47 2002 Krishnakumar B - - * ace/OS.i: - * ace/OS.h: - - Removed the wrappers for functions that are known to be - overloaded by macros. #undef will break user code for these - functions. This includes feof(), ferror() and ungetc(). The - other functions seem to only have a function implementation. - - * ACEXML/common/FileCharStream.cpp: - - Removed the use of ACE_OS wrappers for the above functions. - -Fri Aug 23 08:40:38 2002 Douglas C. Schmidt - - * ace/config-qnx-rtp.h: Added some new #defines so ACE will - compile on QNX 6.2. Thanks to Leen Van Kampen - for reporting this. - - * ace/Task.cpp (svc_run): Added a #ifdef for _MSC_VER <= 1200 - since there are complaints about reinterpret_cast from int to - unsigned long. Thanks to Espen Harlinn - for this fix. - -Fri Aug 23 13:04:34 2002 Nanbor Wang - - * ace/Service_Config.cpp: Some minor cosmetic changes. - -Fri Aug 23 07:16:13 2002 Chad Elliott - - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - - Fixed a problem where the pch header files is not in the list of - header files. - -Fri Aug 23 06:07:38 2002 Krishnakumar B - - * ace/OS.h (ACE_OS): - - ungetc() is a macro under Borland. Undefine it to make Borland - compiler happy. - -Thu Aug 22 21:27:56 2002 Nanbor Wang - - * ace/OS_String.cpp (strtok_r_emulation): Applied the patch Frank - Kuhlman submitted in [Bug 1272] which - resolved an overrun error. - -Thu Aug 22 21:20:01 2002 Krishnakumar B - - * include/makeinclude/rules.local.GNU (realclean.local): - - Remove older cruft when doing a realclean. Note this is a - sledgehammer (libfoo.so*). Don't blame me if you shoot yourself - in the feet, which technically shouldn't happen as long as you - have the sources to the libraries that you built. Thanks to - Ossama for pointing out that cruft was left behind. - -Thu Aug 22 19:14:44 2002 Ossama Othman - - * ace/OS.i (fgetwc, ungetwc): - - These functions are supposed to return WEOF on error, not -1 as - their ACE_OS wrappers were doing. Corrects a warning about - initialization of a negative value to "wint_t", which is an - unsigned integer on some platforms (e.g. GNU libc). - -Thu Aug 15 10:43:51 2002 Steve Huston - - * ace/Message_Queue_T.cpp (enqueue_tail): Moved notify() call outside - lock scope, as Sun May 5 19:14:34 2002 Douglas C. Schmidt - suggested. - -Wed Aug 14 18:14:57 2002 Steve Huston - - * ace/OS.cpp (ACE_TSS_Cleanup::remove()): Always mark the key no - longer in use, instead of simply decrementing the reference count. - Shouldn't call remove() until there are no more references to - the key. - (ACE_TSS_Cleanup::detach()): Decrement the reference count when - detaching. Previously, the count could never get to 0 and the - remove() method would never be called until object manager shutdown. - This resolves a problem where a service using - ACE_Unmanaged_TSS_Singleton would do its cleanup(), but there would - still be a reference to the key... if the destructor (in an unloaded - service DLL) was called at process shutdown, it would crash. - Thanks to Craig L. Ching for pointing this - problem area out. - -Fri Aug 9 16:11:39 2002 Steve Huston - - * ace/Message_Block.cpp: - (ACE_Data_Block::ACE_Data_Block): If the data allocation fails, - reset the cur_size_ and max_size_ to 0 to reflect the fact that - there is no legitimate memory allocated. - (ACE_Message_Block::init_i): If the data block size() that results - from allocating a new ACE_Data_Block is not what was requested, - return -1 to indicate the failure. - - * ace/Malloc_T.i (ACE_Cached_Allocator::free): Don't attempt to - return a 0 pointer to the free_list_. Thanks to Laxmikant - Bopalkar for this fix. - - * THANKS: Added Laxmikant Bopalkar to the Hall of Fame. - -Thu Aug 22 17:34:18 2002 Steve Huston - - * ace/FIFO_Recv_Msg.{h i}: Fixed recv() in the non- - ACE_HAS_STREAM_PIPES case to throw away the part of a - message longer than the max number of bytes requested by - the caller. Filled out the doxygen comments in the header - to explain the behavior, and the differences when (not) - using ACE_HAS_STREAM_PIPES. - -Wed Aug 21 17:48:29 2002 Steve Huston - - * examples/C++NPv2/TP_Logging_Server.cpp (TP_Logging_Task): - * examples/C++NPv2/display_logfile.cpp (svc): - Must use reinterpret_cast, not static_cast, to cast between - unrelated types (char *, class *). - - * examples/C++NPv2/Makefile: Added AIO_CLD to top-level build. - -Thu Aug 22 18:10:46 UTC 2002 Craig Rodrigues - - * bin/nightlybuilds/builds.lst: Move RedHat_Static build - to new scoreboard. - -Thu Aug 22 01:32:46 2002 Krishnakumar B - - * ACEXML/common/StreamFactory.cpp: - - Use ACE_TEXT for literals. Add destructor to avoid linker - problems. - - * ACEXML/parser/parser/Parser.cpp: - - Use ACEXML_Char instead of char* to fix compilation with WCHAR. - - * ACEXML/common/XML_Common.dsp: - - Add files StreamFactory.{h,cpp} to the project files. - -Thu Aug 22 01:16:16 2002 Krishnakumar B - - * ace/OS.h: - - Fixed compilation error under Windows by undefining the macros. - -Wed Aug 21 22:22:42 2002 Ossama Othman - - * bin/msvc_auto_compile.pl (Build_Core): - - Removed "LoadBalancing_Static.dsp" from the list of static - library projects to build. That MSVC++ project was for the old - load balancer, and no longer exists. - -Thu Aug 22 03:50:02 UTC 2002 Craig Rodrigues - - * bin/performance_stats.sh: - * bin/footprint_stats.sh: Calculate value of DATE - inside these scripts instead of passing it in as the - third parameter. This will make it easier to make - an autobuild script around this. - -Wed Aug 21 20:40:20 2002 Krishnakumar B - - * ace/OS.h: - * ace/OS.i: - - Added wrappers for fgetc, fgetwc, ferror, clearerr, feof, - ungetc, ungetwc. All these are guaranteed to not be macros. - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ACEXML/apps/svcconf/Svcconf_Handler.h: - - Fixed compilation errors. - - * ACEXML/common/FileCharStream.cpp: - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/XMLFilterImpl.cpp: - * ACEXML/examples/SAXPrint/Print_Handler.cpp: - * ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp: - * ACEXML/examples/SAXPrint/main.cpp: - * ACEXML/examples/svcconf/Svcconf_Handler.cpp: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp: - * ACEXML/parser/debug_validator/Debug_DTD_Manager.cpp: - * ACEXML/parser/debug_validator/Debug_Element_Builder.cpp: - * ACEXML/parser/debug_validator/Element_Tree.cpp: - * ACEXML/parser/parser/Parser.cpp: - - Use ACE_TEXT instead of ACE_LIB_TEXT. It results in reducing - vertical space and the wchar.txt document also encourages it. - -Wed Aug 21 17:02:44 2002 Nanbor Wang - - * ace/OS_String.cpp: Changed to enabled wchar version of - strtok_r_emulation when both ACE_HAS_WCHAR and ACE_LACKS_WCSTOK - are both defined (instead of ACE_HAS_REENTRANT_FUNCTIONS.) - Thanks to Brian Appel for reporting this. - -Wed Aug 21 12:41:51 2002 Chad Elliott - - * bin/MakeProjectCreator/config/notifytest.mpb: - * tests/SSL/tests.mpc: - - Fixed a few problems with some of the mpc files. - - * nightly.mwc: - - Added an initial nightly build workspace file. - -Wed Aug 21 11:57:37 2002 Nanbor Wang - - * bin/msvc_auto_compile.pl: Added ACEXML/apps to the list of - compiled ACE directories. - -Wed Aug 21 11:15:11 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/templates/nmake.mpd: - - Fixed a problem dealing with Windows, NMake and idl files. - -Wed Aug 21 11:04:09 2002 Nanbor Wang - - * ace/Object_Manager.cpp (init): Changed to return failure (-1) if - ACE_Object_Manager fail to acquire the TSS ACE_Log_Msg instance - for whatever reason. Thanks to Jeremy Altavilla - for suggesting the fix. - -Wed Aug 21 07:43:12 2002 Johnny Willemsen - - * ace/ATM_Addr.{h,i}: - Made the signature definition and implementation of set_selector() - and get_selector() the same. - - * ace/CDR_Stream.cpp: - Made the read_string() signature the same as in the definition - - * ace/config-doxygen.h: - Added ACE_HAS_XTI_ATM to the list of defines that must be set - when generating the doxygen documentation - - * ace/config-win32-mingw.h: - Added extern "C" around the win32api methods ace uses but which - are not defined in the mingw win32api. - - * ace/Lib_Find.cpp: - Made signature of ldfind method the same as in the definition - - * ace/Log_Record.cpp: - Made signature of print method the same as in the definition - - * ace/Multiplexor.i: - Added #ifdef 0/#endif around the contents of this file, because the - header and cpp file also do this. Doxygen parses now this .i file - and gives a lot of warnings about this file because it cannot find - the definition of the methods in this file. - - * ace/Configuration.h: - * ace/Containers_T.cpp: - * ace/Lib_Find.h: - * ace/OS.h: - * ace/RMCast/RMCast_Reliable_Factory.h: - * ace/RMCast/RMCast_UDP_Proxy.h: - Small improvements for doxygen documentation. - - * include/makeinclude/ace_flags.bor: - Added cflags and lib for TAO PSDL library - - * include/makeinclude/platform_mingw32.GNU: - MingW doesn't support the adding of the version number after - the .dll, so set SONAME and SOVERSION to empty. - - * examples/Connection/non_blocking/test_lsock_acceptor.cpp: - * examples/Connection/non_blocking/test_lsock_connector.cpp: - Added include of Log_Msg to fix compile errors with MingW - -Tue Aug 20 14:19:55 2002 Jaiganesh@doc - - * ACE version 5.2.4 released. - -Fri Aug 16 10:25:07 2002 Ossama Othman - - * include/makeinclude/ace_flags.bor: - - Corrected CosLoadBalancing library related variables. They - were still setup for use with the old load balancer prototype. - -Fri Aug 16 11:15:49 2002 Douglas C. Schmidt - - * examples/Reactor/Proactor/test_aiosig_ace.cpp: Added - #include "ace/Log_Msg.h" so things will compile. Thanks to - Victor Poznyak for reporting this and - Alexander Libman for suggesting the fix. - -Thu Aug 15 15:22:49 2002 Nanbor Wang - - * tests/tests.dsw: Re-added Thread_Manager_Test.dsp into this - workspace. It got accidentally removed when someone merged a - branch into the main trunk. Thanks to Ronald Berger - for noticing this. - -Mon Aug 12 10:17:55 2002 Douglas C. Schmidt - - * ace/Thread_Manager.h (ACE_Thread_Manager): Fixed a type where - "manipulated" was spelled "maniputated". Thanks to - Eric Newton for reporting this. - - * PROBLEM-REPORT-FORM: Fixed a typo where "ASCII text" was spelled - "ASCII test". Thanks to Eric Newton for - reporting this. - -Fri Aug 9 12:13:21 2002 Jaiganesh Balasubramanian - - * bin/nightlybuilds/builds.1st: - Moved the Debian_Core builds to the new scoreboard. - Thanks to CRaig Rodrigues for the fix. - -Fri Aug 9 09:24:08 2002 Douglas C. Schmidt - - * ace/Time_Value.{inl,cpp}: Make sure to normalize the set() methods... - Thanks to Francois for reporting this. This - fixes BugID 1275. - -Thu Aug 8 23:11:30 2002 Balachandran Natarajan - - * include/makeinclude/rules.nested.GNU: Reverted this change "Thu - Aug 8 18:28:34 UTC 2002 Craig Rodrigues " - since it would break our daily builds. - -Thu Aug 8 18:28:34 UTC 2002 Craig Rodrigues - - * include/makeinclude/rules.nested.GNU: If we fail during a recursive - make, exit with error code 1. This makes it easier to detect errors - in automated builds. Thanks to Gary Duzan for showing - inspiring the fix. - -Wed Aug 7 12:39:31 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Speed up execution by changing the include path order. - - * bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm: - - Don't generate a for loop if there is only one project. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug with the global assignments overwriting project - assignments. - -Sun Aug 4 16:47:29 2002 Balachandran Natarajan - - * tests/Framework_Component_DLL.cpp: Added a missing template - instantiation. It was caught only in SunCC53 builds. - -Sun Aug 4 16:01:28 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Do not the Stack_Recursion tests in - single threaded builds. - -Sat Aug 03 17:57:33 2002 Balachandran Natarajan - - * ace/ace_dll.dsp: Removed the Hash_Map_Manager_rt.cpp from the - project file. - -Sat Aug 03 15:42:49 2002 Balachandran Natarajan - - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.dsp: Made sure that it - builds only in MFC debug builds. - -Sat Aug 3 14:56:23 2002 Krishnakumar B - - * ACEXML/common/HttpCharStream.cpp: - - Fixed a conversion error from char to wchar_t. Thanks to Johnny - for pointing this out. - - * ACEXML/parser/parser/Parser.cpp: - - Fixed an unreachable statement warning. Thanks to Bala for - pointing this out. - -Sat Aug 3 19:53:12 UTC 2002 Johnny Willemsen - - * ACEXML/common/XML_Codecs.h: - * ACEXML/parser/parser/Parser.h: - * ace/Registry.h: - * ace/String_Base.h: - * ace/QoS/QoS_Session_Factory.h: - Fixed doxygen commands. - -Sat Aug 3 12:36:55 2002 Balachandran Natarajan - - * ace/Hash_Map_Manager_rt.h: - * ace/Hash_Map_Manager_rt.cpp: - * ace/Hash_Map_Manager_rt.i: Removed these files from the main - trunk. They shouldnt have been there in the first place. - -Fri Aug 2 22:00:26 UTC 2002 Craig Rodrigues - - * examples/Log_Msg/Log_Msg_MFC/*: Added example to show how - to send ACE_DEBUG output to the Microsoft Visual Studio debugger console. - Thanks to Don Hinton and - Chris Hafey for help with this. - -Fri Aug 2 13:10:05 2002 Krishnakumar B - - * ACEXML/examples/SAXPrint/main.cpp (ACE_TMAIN): - * ACEXML/common/InputSource.cpp: - - Reverted the previous check-in with respect to the delete - statement. Memory is getting leaked somewhere down in ACE. - -Fri Aug 2 12:31:34 2002 Krishnakumar B - - * ACEXML/common/ContentHandler.h: - * ACEXML/parser/parser/Entity_Manager.cpp: - * ACEXML/common/NamespaceSupport.cpp: - - Fixed minor typos in the comments. - - * ACEXML/common/InputSource.cpp: - - Removed an erroneous delete statement. Not sure if this is a - implementation bug or a thinko. - - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/Mem_Map_Stream.cpp: - * ACEXML/common/Mem_Map_Stream.h: - - Use char* when sending data on the network. Technically it - should be byte. - - * ACEXML/examples/SAXPrint/Print_Handler.cpp: - * ACEXML/examples/SAXPrint/main.cpp: - - Fixed a bug with getopt() when WCHAR is enabled. Since EOF is - -1, never use a WCHAR in the while loop. - - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/parser/parser/Parser.h: - - Improved Namespace support. Modularized functions in the parser. - - * ACEXML/docs/TODO.txt: - * ACEXML/docs/bugs.txt: - * ACEXML/docs/guidelines.txt: - * ACEXML/docs/parser_features.txt: - - Updated to reflect the current status. People were reading these - old docs and assuming a lot of the features aren't implemented. - -Fri Aug 2 16:06:12 UTC 2002 Johnny Willemsen - - * ace/config-doxygen.h: - Added ACE_HAS_ATM define to also generate the doxygen documentation - of the ACE ATM classes. This is one of the last parts of ACE that - are missing in the doxygen documentation. - -Fri Aug 2 07:54:24 2002 Balachandran Natarajan - - * ace/Malloc.cpp: Rearranged member initialization list in the - constructor of ACE_Malloc_Stats, to fix warnings with explicit - template builds. - -Thu Aug 01 13:40:59 2002 Balachandran Natarajan - - * tests/Malloc_Test.cpp: Changed the usage of ASYS_TEXT to - ACE_TEXT. Should fix most of the compile errors with g++. - -Thu Aug 1 12:14:21 2002 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added $(ACELIB) to the list of ACE_SHLIBS. - -Thu Aug 1 11:13:20 2002 Balachandran Natarajan - - * ace/Malloc_Allocator.h: - * ace/Malloc_Allocator.cpp: Removed the declaration and definition - of ACE_Malloc_Stats since they are not needed in this - translation unit. - - * ace/Malloc.h: - * ace/Malloc.cpp: Retained the definition if ACE_Malloc_Stats here - (yes, there were two declarations) and added the definition and - template instantiation for ACE_Atomic_Op used by - ACE_Alloc_Stats. This should fix the erros showing up on the - scoreboard explicit template builds which has - ACE_HAS_MALLOC_STATS turned on. - -Thu Aug 1 09:08:36 2002 Douglas C. Schmidt - - * ace/Message_Block.h: Made the non-static duplicate() and release() - methods virtual so they can be overridden by subclasses. Thanks - to Brian Raven for this suggestion. - -Thu Aug 01 15:24:32 UTC 2002 Johnny Willemsen - - * ace/OS_Thread_Adapter.h: - Fixed incorrected doxygen @file command. - -Thu Aug 01 14:52:44 UTC 2002 Johnny Willemsen - - * bin/fuzz.pl: - Improved the check for the @file doxygen command. Incomplete file - names where not detected as error. - -Thu Aug 1 07:03:05 2002 Chad Elliott - - * bin/MakeProjectCreator/README: - - Added a bit of background on the tool before plunging into the - details. - -Thu Aug 01 07:59:12 UTC 2002 Johnny Willemsen - - * ace/Asynch_Acceptor.h: - * ace/XtReactor.cpp: - * ace/XtReactor.h: - Corrected argument names to fix doxygen warnings. - -Thu Aug 01 07:34:12 UTC 2002 Johnny Willemsen - - * ace/config-win32-mingw.h: - Made the definition of the missing parts of the Win32api of MingW - dependent on the version of the w32api instead of our own defines. - This way we automically define the missing things when needed. Thanks - to Craig for suggesting this. - -Wed Jul 31 23:39:27 UTC 2002 Craig Rodrigues - - * etc/*.doxygen: Change DOT_PATH from /usr/local/bin/ to - empty, forcing doxygen to look for the dot program in PATH. - This eliminates warnings in the Doxygen nightly build. - -Wed Jul 31 12:23:47 2002 Steve Huston - - * ace/Malloc.cpp: - * ace/Malloc_T.cpp: - * tests/Malloc_Test.cpp: Changed logging of pointers to %@ - - * tests/Mem_Map_Test.cpp: Fixed loop bound error. - -Wed Jul 31 11:34:58 2002 Nanbor Wang - - * docs/index.html: Added a link to ACEXML document. - -Wed Jul 31 10:47:54 2002 Chad Elliott - - * include/makeinclude/rules.local.GNU: - - Added a gnu macro (DEPEND_CMD_ARGS) to the g++dep line to allow - pasing arguments (such as -R) to g++dep when running "make depend" - -Wed Jul 31 08:41:12 UTC 2002 Johnny Willemsen - - * ace/config-win32-mingw.h: - For the compilation of Win32_Asynch_IO we now need to have - FILE_SEGMENT_ELEMENT from winnt.h and ReadFileScatter and - WriteFileScatter from winbase.h. - These are not in the header files of the MingW w32api 1.4/1.5 - release. That's why we do these union/defines also in this header - file. By adding the defines ACE_MINGW_LACKS_READWRITE_FILESCATTER - and ACE_MINGW_LACKS_FILE_SEGMENT_ELEMENT to your config.h file - these defines/union are done by ACE for MingW32 so that everything - will compile. - -Wed Jul 31 08:11:12 UTC 2002 Johnny Willemsen - - * etc/Task.cpp: - Also the MinGW32 GCC3.1 compiler has problems with the - reinterpret_cast in the svc_run method. Use the static_cast instead. - -Wed Jul 31 07:40:12 UTC 2002 Johnny Willemsen - - * etc/*.doxygen: - Enabled warnings to get them in the doxygen scoreboard. - - * ace/Configuration.cpp: - Fixed method argument names to fix doxygen warnings. - -Tue Jul 30 15:45:23 2002 Douglas C. Schmidt - - * ace/SOCK_Dgram.h: Fixed the comment for send(), which had a - cut and paste error. Thanks to Jeff Wilson - for reporting this. - -Tue Jul 30 14:09:35 2002 Chad Elliott - - * tests/tests.mpc: - - Update the mpc file to include the libraries. - -Tue Jul 30 09:07:29 2002 Ossama Othman - - * ace/Parse_Node.h: - * ace/Parse_Node.cpp: - - Unexported all classes in this file. They are only meant for - internal use by ACE's Service Configurator. Updated Doxygen - comments accordingly. - - (apply, symbol, open_dll): - - These methods now accept a "yyerrno" reference argument to allow - for modification of the error count in a reentrant manner. - - * ace/Svc_Conf.h: - - Removed "ace_yyerrno" and "ace_yylineno" global variables. - Local ones are now used. - - Altered signature of ace_yyerror() function to accept two - additional parameters, yyerrno and yylineno. Addresses a race - condition. - - * ace/Svc_Conf.y: - - Removed all remnants of the global "yyerrno" and "yylineno" - variables. Only the reentrant versions are used now. - - Pass the "yyerrno" variable as a parameter to all functions that - read or modify the parse error count. Addresses several race - conditions. - - Fixed call to ACE_Location_Node::handle(). This method no - longer exists. The correct call is ACE_Location_Node::dll(). - For some reason, Svc_Conf_y.cpp (a generated file!!!) was - "fixed" but the parser grammar file was never fixed. - - * ace/Svc_Conf.l: - - Removed all remnants of the global "yylineno" variable. Only - the reentrant version is used now. - - * ace/Service_Config.cpp (process_directives_i): - - Removed initialization of "ace_yyerrno" and "ace_yylineno" - global variables. They no longer exist. Poof! - - Reverted my previous change. The above changes obviate the need - to take into account the global parse error count. - - * ace/Makefile: - - Tweaked Svc_Conf_y.cpp and Svc_Conf_l.cpp generation rules so - that yyerrno and yylineno are not prepended with an "ace_". - That is no longer needed. - - * etc/Svc_Conf_y.cpp.diff: - - Regenerated this patch against parsers generated by the latest - GNU Bison (1.35). - - * etc/Svc_Conf_l.cpp.diff: - - Regenerated this patch to pull in new changes to Svc_Conf_l.cpp. - -Tue Jul 30 10:06:04 2002 Douglas C. Schmidt - - * ace/Thread_Manager.cpp: Moved a stray colon until *after* - the #if !defined(ACE_USE_ONE_SHOT_AT_THREAD_EXIT) check. Thanks - to Alan Tanga for reporting this. - - * ace/POSIX_Proactor.cpp (delete_result_aiocb_list): Moved - the definition of size_t ai out of the for loops to avoid - problems on older C++ compilers. Thanks to George Varsamis - for reporting this. - -Tue Jul 30 08:14:34 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - - Added an error check for invalid inheritance syntax. - - * bin/MakeProjectCreator/modules/Driver.pm: - - Changed the progress indicator to allow for cleaner output - when an error occurs. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Remove duplicate libs, libpaths and includes when addition or - subtraction is involved. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Cleaned up the template to make generated Makefiles a little more - consistent. - -Tue Jul 30 06:50:26 2002 Douglas C. Schmidt - - * ace/Dynamic_Service.cpp: Moved ACE_Dynamic_Service::instance() - from the .i file into the .cpp file and added a #include of - "ace/Service_Object.h" to the .cpp file so the complete type of - ACE_Service_Object would be available to the HP/UX C++ compiler. - Thanks to Torsten Kuepper for - reporting this. - -Tue Jul 30 07:51:12 UTC 2002 Johnny Willemsen - - * etc/ace.doxygen: - Enabled warnings and undocument warnings to get these warnings - into the doxygen scoreboard. When this works I will enable the - warnings in all other .doxygen files later. - -Mon Jul 29 14:47:46 2002 Ossama Othman - - * ace/Service_Config.cpp (process_directives_i): - - In addition to the thread-safe yyerrno variable, check the - global ace_yyerrno variable when determining if errors have - occurred when processing Service Configurator directives. - Thanks to Doug for tracking down the problem and suggesting a - fix and to Denginere for reporting this. - -Mon Jul 29 17:30:27 2002 Steve Huston - - * ace/Get_Opt.h (ctor): Changed documented name of the skip_argv0 - argument to skip_args to better reflect that it's not just - argv[0] that can be skipped. - -Mon Jul 29 07:45:12 2002 Johnny Willemsen - - * ace/OS.cpp (uname): Only check for PROCESSOR_ARCHITECTURE_IA64 - when this is defined. The MingW w32api doesn't define this constant. - -Sun Jul 28 17:17:50 2002 Douglas C. Schmidt - - * docs/ACE-subsets.html: Updated the breakdown of files to - each subset component so it's consistent with the - $ACE_ROOT/Makefile. Thanks to Ruslan Zasukhin - for reporting this. - -Sun Jul 28 10:31:12 2002 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Use -mcpu=$(TCPU) instead of -m$(TCPU), because MingW GCC 3.1 - now gives warnings that -m is deprecated. Thanks to Craig Rodrigues - for confirming that -m was already deprecated in GCC 2.95.3 - -Sat Jul 27 17:35:06 2002 Krishnakumar B - - * include/makeinclude/platform_g++_common.GNU (SOFLAGS): - - Allow building of shared libraries with gcc and Solaris ld. - There wasn't any reason that it wouldn't work. - - * Changelog: Remove >>>>> left out by merge conflicts. People - should be more careful about checking for conflicts. - -Sat Jul 27 16:20:19 2002 Douglas C. Schmidt - - * examples/Service_Configurator/Misc/main.cpp (ACE_TMAIN): Changed - the code to be more resilient against errors that occur during - parsing of the svc.conf file. Thanks to Denginere - for motivating this change. - -Sat Jul 27 15:50:12 2002 Johnny Willemsen - - * ACEXML/examples/svcconf/main.cpp: - Made this file compiling with BCB and Unicode - - * ACEXML/examples/svcconf/Svcconf_Handler.h: - Made includes like the other examples so that we can build it with - BCB - - * ACEXML/examples/svcconf/Svcconf_Handler.cpp: - Fixed unused argument warnings - - * ACEXML/examples/svcconf/Makefile.bor: - Added this BCB makefile - - * ACEXML/examples/Makefile.bor - Added svcconf directory - -Fri Jul 26 21:00:32 2002 Balachandran Natarajan - - * ace/TP_Reactor.cpp: Fixed a unused variable warning in g++ - builds. - -Fri Jul 26 20:08:41 2002 Steve Huston - - * include/makeinclude/platform_aix4_g++.GNU: Corrected option for - using threads from -mthreads to -pthread. This may not work with - pre-gcc 3 compilers, but those compilers are busted on AIX anyway. - Added support for buildbits=32 and buildbits=64. Moved in the new - AIX library-building setup from platform_aix_ibm.GNU. - -Fri Jul 26 15:52:12 2002 Balachandran Natarajan - - * ace/TP_Reactor.cpp: Fixed a problem with handle_event - (ACE_Time_Value &). It should be calling the TP_Reactor's - handle_event () instead of Select_Reactor's. This should fix - [BUGID 1257]. - -Fri Jul 26 10:11:41 2002 Chad Elliott - - * bin/MakeProjectCreator/config/messaging.mpb: - * bin/MakeProjectCreator/config/messaging_only.mpb: - - Set up a new base project that just contains information about - the Messaging library. - - * bin/MakeProjectCreator/modules/GNUProjectCreator.pm: - * bin/MakeProjectCreator/templates/gnu.mpd: - - Allow the file lists to contain names of files that correspond - to relative directories. - -Fri Jul 26 06:40:12 2002 Douglas C. Schmidt - - * ace/OS_String.inl: Added casts of the input parameter to - (unsigned char) for the ace_isprint() and ace_isspace() methods - on ACE_OS_String to prevent problems with MSVC++ 7.0. Thanks to - Colin Weaver for suggesting this - fix. - -Fri Jul 26 10:37:12 2002 Johnny Willemsen - - * etc/tao_pss.doxygen: - Added doxygen config file to generate the new TAO PSS. - - * bin/generate_doxygen_pl: - Added tao_pss.doxygen to the list of files to generate. - - * htlm/index.html: - Added link for the new PPS doxygen documentation. - -Thu Jul 25 22:58:24 2002 Balachandran Natarajan - - * ace/Synch.cpp: Removed explicit instantiation of - ACE_Condition since a template - specialization exists. This was causing a compile error when - explicit template instantiations were used with - g++-2.95.3. - -Thu Jul 25 11:32:41 2002 Chad Elliott - - * bin/MakeProjectCreator/README: - - Added a little more detail about what the depends keyword refers - to. - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Driver.pm: - - Changed the code to show the default type in the usage message. - - * bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm: - - Change the workspace to use a for loop when building on UNIX. - - * tests/RMCast/tests.mpc: - * tests/SSL/tests.mpc: - - Fixed the case on the dependencies lines. - -Wed Jul 24 13:38:40 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added a progress indicator (for those big workspaces). - -Wed Jul 24 13:10:19 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Add README and readme to the default documentation - files. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/GUID.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - - Change the GUID generation code to be deterministic (but still - unique) to allow for multiple solution files to contain the same - project files without having to regenerate the solutions. - -Wed Jul 24 13:42:37 2002 Steve Huston - - * ace/OS.cpp (uname): Added case for PROCESSOR_ARCHITECTURE_IA64 - when decoding processor type. - -Wed Jul 24 10:58:22 2002 Steve Huston - - * ace/Acceptor.cpp (ACE_Acceptor::handle_input): When calling select(), - use a int value instead of casting a ACE_HANDLE to an int. - - * tests/Cached_Accept_Conn_Test.cpp: Use %@ instead of %d when - logging pointers. - - * tests/MT_Reactor_Upcall_Test.cpp: Added ACE_TEXT to char strings - where needed. Changed the send to send fixed header, then the - variable-size string. Sending all at once doesn't work if the - string doesn't immediately follow the size_ member in memory, - which happened on Win64. - -Wed Jul 24 10:07:24 2002 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/USAGE: - - Update the documentation to reflect the current state. - -Wed Jul 24 08:13:48 2002 Christopher Kohlhoff - - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - * include/makeinclude/build_lib.bor: - * include/makeinclude/make_flags.bor: - Improve debugging support with Borland C++Builder by invoking the - compiler with a full path to each source file. This can be disabled - by setting a NO_FULL_PATH environment variable to 1 or by passing - -DNO_FULL_PATH when running make, which may be necessary when doing - a debug build on Win9x. - -Wed Jul 24 07:45:43 2002 Chad Elliott - - * THANKS: Added Tim Bradley to the hall of fame. - -Tue Jul 23 21:46:54 2002 Nanbor Wang - - * ace/Process_Mutex.h: - * ace/Process_Mutex.cpp: Disallowed anonymous Process_Mutex by - invoking this->unique_name() to create a temporary name if - there's no mutex name passed to the constructor. Thanks John - Michael Zorko for reporting this problem on - Mac OSX and submitting the patch. - -Tue Jul 23 13:08:27 2002 Steve Huston - - * ace/Log_Msg.{h cpp} (log_hexdump): - * ace/ACE.{h cpp} (format_hexdump): Change size arguments from int - to size_t. Change format_hexdump()'s return from int to size_t. - -Tue Jul 23 09:48:15 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Always add the default include paths. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Make sure that idl generated source files go at the front of the - file list in auto-generates source lists. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Only add LIB and SHLIB assignments if we are generating a Makefile - for libraries. - -Mon Jul 22 22:30:53 2002 Nanbor Wang - - * ACEXML/common/XML_Common.dsp: Added the macro definition - ACEXML_HAS_DLL=1 to the release configuration to resolve a - nightly biuld problem. - -Mon Jul 22 18:28:48 2002 Steve Huston - - * ace/Configuration.h: Doxygen fixes. - -Mon Jul 22 16:57:19 2002 Chris Cleeland - - * bin/g++dep: Added a -R option that allows you to specify a - variable which should be used to generate relative paths if it's - defined. - -Mon Jul 22 17:45:48 2002 Steve Huston - - * ace/Get_Opt.h: Doxygen fixes. - -Mon Jul 22 16:39:21 2002 Steve Huston - - * ace/Acceptor.cpp (info): - * ace/Connector.cpp (info): Cast return val to int. - - * ace/Message_Queue.h (message_count): - * ace/Message_Queue_T.{h cpp i} (message_count): Change return value - from size_t to int. Changed cur_count_ member (and accessors that - return it) from size_t to int. This is a compromise to unify the - length of arguments without changing the return types of all - methods that return a message count (all the enqueue/dequeue methods, - as well as a few others). - Changed a number of @arg to @param for doxygen. - - * ace/SOCK_IO.{h i} (recvv, sendv): - * ace/SOCK_Stream.{h i}(recvv_n, sendv_n): Changed iovcnt arg from - size_t to int. int, though sort of odd as a choice, is the - UNIX98 standard and more commonly implemented. Removes an arg - size mismatch between the SOCK_IO and ACE layers, restricting the - iovcnt range at the SOCK_IO layers to match the layer below. - Changed the recv and send iov-enabled, deprecated methods to cast - their size_t iovcnt args to int... these deprecated methods should - be removed after 5.3 is out. - - * tests/Conn_Test.cpp: Replaced %d with %@ when logging pointers. - Added missing string arg for a ACE_ERROR %p directive. Use a - int select_width instead of casting ACE_HANDLE for Win64. - -Mon Jul 22 15:13:38 2002 Carlos O'Ryan - - * ace/Atomic_Op.h: - * ace/Atomic_Op.i: - Fixed bug 1253, add missing copy constructor. - -Mon Jul 22 13:25:29 2002 Stephen Torri - - * ace/streams.h: Fixed _MSC_VER compiler warning messages stating - concern about using MSC_VER without assurance that the macro - was defined. - -Mon Jul 22 12:20:21 2002 Krishnakumar B - - * THANKS: Added Sean Ogle to the hall of fame. - -Mon Jul 22 09:19:34 2002 Balachandran Natarajan - - * THANKS: Aded Kew Whitney and Colin Weaver to the hall of fame. - -Sat Jul 20 08:53:05 2002 Douglas C. Schmidt - - * ace/SOCK_Dgram.cpp (set_nic): Moved the #endif for - ACE_WIN32 *ahead* of the set_options() call. Thanks to Joe - Hayes for reporting this. - -Fri Jul 19 14:42:37 2002 Steve Huston - - * ace/WFMO_Reactor.cpp (make_changes_in_suspension_infos, - make_changes_in_current_infos): - Fixed bug resulting from: Wed Jul 17 11:34:28 2002 Steve Huston - -Thu Jul 18 15:48:29 2002 Steve Huston - - * ace/Future.h: Doxygenation improvements. - -Thu Jul 18 08:39:08 2002 Chad Elliott - - * bin/MakeProjectCreator/README: - - Update the documentation to reflect the additions to the grammar. - - * bin/MakeProjectCreator/config/avstreamsexe.mpb: - * bin/MakeProjectCreator/config/corba_messaging.mpb: - * bin/MakeProjectCreator/config/minimum_corba.mpb: - * bin/MakeProjectCreator/config/namingexe.mpb: - * bin/MakeProjectCreator/config/notify.mpb: - * bin/MakeProjectCreator/config/orbsvcsexe.mpb: - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - * bin/MakeProjectCreator/config/rt_client.mpb: - * bin/MakeProjectCreator/config/rt_server.mpb: - * bin/MakeProjectCreator/config/rteventexe.mpb: - - Add the GNU specific info for generating conditional target - Makefiles. - - * bin/MakeProjectCreator/modules/GNUProjectCreator.pm: - - Added code to generate the conditional sections of the GNU - Makefiles. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Fix some minor problems with generated project files. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added template info for conditional targets. - - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Removed the tie class idl targets. - - * bin/ace_components: - - Added a new append option that will be used by the generated GNU - Makefiles. - -Thu Jul 18 06:17:19 2002 Douglas C. Schmidt - - * Doug turns 40 today. Fortunately, 40 Octal is only 32 Decimal ;-). - -Wed Jul 17 15:18:31 2002 Steve Huston - - * ace/Configuration.h: Doxygen improvements. - - * ace/Configuration.cpp: All error cases where a return - (-2, -3, -4, -5) occurred now return -1 with errno set. - - * ace/OS.{i cpp}: Follow-up to Wed Jul 17 11:34:28 2002 Steve Huston - Only make ACE_WIN64 use intptr_t - must have a new SDK to get - intptr_t, and not all have it.... so use it only for ACE_WIN64 - since the compiler comes in the newer SDK... Win32 does - fine with long, which is what an intrptr_t is on Win32. - - Also fixed the PACE-busted conditional compiles around siginfo_t - to match the declaration in OS.h. Win32 needs this stuff. - -Wed Jul 17 14:25:39 2002 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: Added -qfuncsect to the - compile options. Allows for smaller executables/libraries, and - gets rid of most of the multiple definition warnings for templates. - Unfortunately, there are still a few stragglers so the aix_shr - post-processing script is still required. - - * ace/Sock_Connect.cpp: Added a hack to get Visual Age C++ on AIX - build running clean. Have to include a template instantiation we - don't need to get the compiler to pull the proper header files - at template compilation time. - -Wed Jul 17 11:34:28 2002 Steve Huston - - * ace/OS.{i cpp}: Windows, in calls to _open_osfhandle(), cast - handle to long for C++Builder. Only MSVC has the intptr_t type. - - * ace/WFMO_Reactor.cpp (make_changes_in_current_infos, - make_changes_in_suspension_infos): Run the index from 0 to - last_valid_slot rather than valid slot down to 0 to allow - correct use of size_t index. - - * ace/WIN32_Proactor.cpp (register_handle, post_completion): Use - a reinterpret_cast, not static_cast to cast void* to ULONG for - non-Win64. - -Wed Jul 17 03:50:56 UTC 2002 Don Hinton - - * ace/ACE.cpp: - * ace/OS.{h,i,cpp}: - * ace/OS_Dirent.inl: - * ace/OS_Memory.h - * ace/OS_String.inl: - * ace/Thread_Manager.cpp: - * ace/WFMO_Reactor.cpp: - * ace/config-all.h: - * ace/config-win32-borland.h: - * ace/config-win32-msvc-5.h: - * ace/config-win32-msvc-6.h: - * include/makeinclude/wrapper_macros.GNU: - - Removed PACE. - -Tue Jul 16 14:19:37 2002 Steve Huston - - * ace/DLL_Manager.cpp: - * ace/Parse_Node.cpp: (also see Fri Jul 12 12:37:42 2002 Steve Huston) - Always use the ptrdiff_t trick to cast a void* to a func ptr. - Nanbor was right ;-) Thanks to Carlos O'Ryan - for clarifying this issue, including C++ chapter and verse. - (It's in ISO C++ section 5.2.10 for those interested). - - * tests/DLL_Test.cpp: Use ptrdiff_t as a mediary to cast a void * - to a func ptr, not a long. - -Mon Jul 15 21:23:47 2002 Balachandran Natarajan - - * ace/Message_Block.i (base): Fixed a warning in TRU 64 builds. - -Mon Jul 15 18:56:47 2002 Douglas C. Schmidt - - * ace/String_Base.cpp (substring): Changed "nil" to "nill" to - avoid conflicts with a Mac OS X macro. Thanks to Ruslan - Zasukhin for reporting this. - -Mon Jul 15 15:18:33 2002 Steve Huston - - * ace/Configuration.{h cpp}: Changed ACE_Configuration_Value_IntId - data_ member to be a union with both pointer and u_int members. - Also, the length_ member is now size_t, not u_int. - - * ace/Memory_Pool.cpp (ACE_Pagefile_Memory_Pool::map): Use - INVALID_HANDLE_VALUE instead of a literal 0xFFFFFFFF for call to - CreateFileMapping. - - * ace/OS.{h i}: New method, void *atop(const char *s) converts a - string to void *. - - * ace/OS.i (fdopen): Don't cast arg to _open_osfhandle - Microsoft - changed the type to something sensible. - (isatty): open a C run-time handle for the ACE_HANDLE. - - * ace/OS.cpp (fopen): Don't cast arg to _open_osfhandle - Microsoft - changed the type to something sensible. - (unique_name): Use sprintf %p for pointer rather than casting - to an int. - - * ace/Naming_Context.cpp (ACE_Name_Options::parse_args): Use - ACE_OS::atop instead of ACE_OS::atoi for converting an argument - to a pointer. - - * ace/SOCK_Dgram.cpp (recv, send): - * ace/SOCK_IO.cpp (recvv): Use an int select_width - to pass width to select() so it can be ignored on ACE_WIN64. - - * ace/SV_Semaphore_Simple.cpp (name_2_key): Disable the type cast - conversion warning casting ACE::crc32() to key_t... it's fine. - - * ace/WIN32_Proactor.cpp (register_handle, post_completion): The - I/O completion port's completionKey argument is a ULONG in - "older" compiler/SDK versions, but was changed to a - ULONG_PTR (new type in newer SDK/compiler) for 64-bit - transition. The new type is used conditionally based on whether or - not we're building a 64-bit version. - -Mon Jul 15 09:26:17 2002 Douglas C. Schmidt - - * ace/SString.cpp (substring): Changed "nil" to "nill" to - avoid conflicts with a Mac OS X macro. Thanks to Ruslan - Zasukhin for reporting this. - -Mon Jul 15 10:14:44 2002 Carlos O'Ryan - - * bin/MakeProjectCreator/README: - Fixed typo - -Sun Jul 14 20:14:16 2002 Douglas C. Schmidt - - * FAQ: Fixed the use of "*.ps.gz" files. Thanks to - Carol Hunsicker for pointing this - out. - -Sun Jul 14 01:55:03 2002 Balachandran Natarajan - - * ace/Message_Block.i (reset_allocators): Reset the allocators in - the chain if the message block is chained. - -Sun Jul 14 01:43:32 2002 Balachandran Natarajan - - * ace/Message_Block.h: - * ace/Message_Block.i: Added two methods viz. reset_allocators () - and access_allocators () to ACE_Message_Block. - -Sat Jul 13 17:29:35 2002 Balachandran Natarajan - - * bin/fuzz.pl: Removed the word "warning" from a print statement, - since our scoreboard scripts seems to catch that as a warning. - -Sat Jul 13 13:31:54 2002 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added the Stack_Recursion test to the - daily builds. - -Fri Jul 12 20:28:52 2002 Krishnakumar B - - * ACEXML/common/URL_Addr.cpp (string_to_addr): - - Fixed confusion in handling normal and wchar strings. It should - compile now without problems. - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ACEXML/apps/svcconf/Svcconf_Handler.i: - - Fixed memory leaks, some typos and used the locator to print - out error messages. - -Fri Jul 12 17:55:08 2002 Carlos O'Ryan - - * ace/String_Base.i: - Fixed rfind() to check for pos == npos also, that solved the - regression test failures. - -Fri Jul 12 16:03:22 2002 Steve Huston - - * ace/Basic_Types.h: Itanium is little-endian, like x86. Although - the Itanium architecture allows big-endian operation, Windows - doesn't use it. - - * tests/test_config.h (randomize): Fixed some int/size_t mix-ups. - -Fri Jul 12 13:02:51 2002 Steve Huston - - * ace/String_Base.{h i} (rfind): Changed pos argument from size_t to - ssize_t to make proper use of npos and avoid compile error for - g++ 2.95.2. - -Fri Jul 12 12:37:42 2002 Steve Huston - - * ace/DLL_Manager.cpp: - * ace/Parse_Node.cpp: g++ complains that ISO C++ won't allow cast - from void * to func ptr... so cast void * to ptrdiff_t, then to - func ptr. - -Fri Jul 12 12:26:27 2002 Steve Huston - - * ace/Timer_Heap_T.cpp (ctor): Alloc timer_ids_ as ssize_t[], - not long[]. - - * examples/C++NPv2/TPCLS.dsp: Added SSL libraries to link input. - - * examples/C++NPv2/TPLS.dsp: Added Logging_Handler.{h cpp} to project. - -Fri Jul 12 12:15:49 2002 Steve Huston - - * ace/Timer_Heap_T.cpp (grow_heap): Fix compile warning. - -Thu Jul 11 21:09:36 2002 Nanbor Wang - - * Makefile.bor: Added a new BUILD target called "nightlybuild" to - simplify nightlybuild script. - -Thu Jul 11 20:42:52 2002 Nanbor Wang - - * ace/OS.i (creat): The Win32 implementation of this function was - broken. Thanks to Marvin Greenberg - for submitting the fix. - -Thu Jul 11 18:37:35 2002 Krishnakumar B - - * ACEXML/common/URL_Addr.cpp (string_to_addr): - * ACEXML/common/URL_Addr.h: - - Change the argument to match the base class INET_Addr so that - warnings under Borland BCB is eliminated. - - * ACEXML/common/HttpCharStream.cpp: - - Use ACE_TEXT_ALWAYS_CHAR to convert an Unicode URL to char* - before converting it to an address. Thanks to Nanbor for - pointing this out. - - * ACEXML/common/Makefile: - * ACEXML/common/StreamFactory.h: - * ACEXML/common/StreamFactory.cpp: - - New class to create appropriate streams based on the URI. This - is needed for handling the parameter entities. - - * ACEXML/examples/SAXPrint/main.cpp: - - Move common error message to a new usage function. - -Thu Jul 11 16:28:24 2002 Steve Huston - - * tests/Proactor_Scatter_Gather_Test.cpp: Changed Writer to derive - from ACE_Handler, not ACE_Service_Handler. It's not the target of - an asynch connection factory, and declares an open() method that - hides the one in ACE_Service_Handler. - -Thu Jul 11 16:15:49 2002 Steve Huston - - * examples/C++NPv2/SR_Configurable_Logging_Server.dsp: - * examples/TPCLS.dsp: - * examples/TPLS.dsp: - * examples/C++NPv2/examples.dsw: Added SR_Configurable_Logging_Server, - TPCLS, and TPLS projects. - - * examples/C++NPv2/TPC_Logging_Server.h: Use ACE traits macros to - allow build on Win32. - * examples/C++NPv2/TPC_Logging_Server.cpp: Fix build problems on - Win32. - - * examples/TP_Logging_Server.h (init): Added #include "ace/Auto_Ptr.h" - and corrected use of ACE_NEW_NORETURN; use ACE_Auto_Ptr::get() to get - the argv pointer. - -Thu Jul 11 15:03:47 2002 Steve Huston - - * ace/ace_dll64.mak: TEMPORARILY added /wd4267 to disable the - conversion size_t to int warning. - - * ace/Activation_Queue.{h i} (method_count): Change return type - from int to size_t. - - * ace/Arg_Shifter.cpp (cur_arg_strncasecmp): Change flag_length var - to size_t to match string function signatures. If returning a - 'remaining' length, cast back to int. - - * ace/ARGV.cpp (ctor): Build string length using size_t, not int. - - * ace/CDR_Base.cpp (ACE_CDR::consolidate): Use ptrdiff_t, not the - nonstandard ptr_arith_t. - - * ace/CDR_Stream.cpp (grow_and_adjust): Use ptrdiff_t, notptr_arith_t. - (write_string): Cast ACE_SString:length result to ACE_CDR::ULong. - A number of other size_t<->ACE_CDR::ULong casts. - - * ace/CDR_Stream.i (write_string, operator<<): Use a ACE_CDR::ULong - len, can't directly use the return from strlen(), a size_t. - - * ace/Codecs.cpp: size_t conversions. - - * ace/DEV_Addr.i (set): Cast strlen result to int for base_set. - - * ace/DEV_IO.{i cpp} (send, recv): Cast iovec count from size_t to - int for call to ACE_OS level. - - * ace/Hash_Map_Manager_T.{h, i, cpp} (shared_find): Change loc argument - from u_long to size_t. Better match for its use. - - * ace/OS.h (ACE_align_binary, ACE_ptr_align_binary): Change from - using ptr_arith_t to the standard ptrdiff_t. - - * ace/DLL_Manager.cpp: - * ace/Parse_Node.cpp: Avoid casting a void * to a long then back to a - function pointer. Cast using proper calling signature. - - * ace/Reactor_Impl.h (ACE_Reactor_Notify::notify): - * ace/Select_Reactor_Base.{h cpp} (ACE_Select_Reactor_Notify::notify): - Change return type from ssize_t to int to match advertised return - type from ACE_Reactor. - - * ace/Select_Reactor_T.cpp (check_handles): Use an int select_width - to pass width to select() so it can be ignored on ACE_WIN64. - - * ace/String_Base_Const.{h cpp}: Changed npos from int to ssize_t. - - * ace/String_Base.{h i}: (operator[]) changed slot arg from int - to size_t. (strstr(), find(), rfind()) changed return type from - int to ssize_t; change pos arg from int to size_t. - - * ace/Timer_Heap_T.{h cpp}: Change 'slot' arg from int to size_t. - Also changed timer_ids_ to use ssize_t rather than long to - avoid length mismatches between the max size and the timer - queue (a size_t) and the arrays. - - * ace/WFMO_Reactor.h (ACE_WFMO_Reactor_Notify): Change return type - from ssize_to to int to match corresponding change in - ACE_Reactor_Notify, above. The implementation already was returning - int. - - * ace/WFMO_Reactor.cpp (make_changes_in_current_infos, - make_changes_in_suspension_infos): Align use of size_t. - (wait_for_multiple_events)...........Should maybe make the - sizes in this class DWORD????? - - * ace/WIN32_Proactor.cpp (close, handle_events): completion_key - needs to be a different on Win64 than on Win32. - -Thu Jul 11 08:34:22 2002 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Driver.pm: - - Added new options and documentation dealing with generation of - relative paths in projects. - -Wed Jul 10 11:46:02 2002 Mayur Deshpande - - * bin/auto_run_tests.lst: - - Added tests/AMH_Exception and examples/AMH/Sink_Server as tests - for AMH - -Wed Jul 10 13:31:49 2002 Steve Huston - - * examples/C++NPv2/CLD.dsp: - * examples/C++NPv2/examples.dsw: Added CLD project. - - * examples/Client_Logging_Daemon.cpp: Disable the info, suspend, and - resume methods - these are left as an exercise for the reader. - -Wed Jul 10 11:24:39 2002 Steve Huston - - * examples/C++NPv2/AIO_CLD.dsp: - * examples/C++NPv2/examples.dsw: Added AIO_CLD project. - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: Fix Win32 compile - problems. - -Wed Jul 10 07:22:24 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - If the project creator needs the slashes converted, then - do so when generating relative paths. - -Tue Jul 9 23:24:44 2002 Krishnakumar B - - * include/makeinclude/rules.local.GNU: - - Print out more explanative messages. - - * include/makeinclude/platform_osf1_4.x_cxx.GNU: - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Turn on symbol versioning for these platforms with the - proprietary compilers that ships with these systems viz, Sun CC - and cxx. - - -Tue Jul 9 16:24:46 2002 Douglas C. Schmidt - - * ace/Containers_T.cpp: Fixed inconsistent initializer order for - ACE_Fixed_Stack and ACE_Bounded_Stack. Thanks to Michael - Searles for reporting this. - -Tue Jul 9 11:10:38 2002 Steve Huston - - * apps/Gateway/Peer/Peer.{h cpp}: Renamed Peer_Acceptor::open() - to Peer_Acceptor::start() to avoid clashes with virtual - ACE_Acceptor::open. - -Tue Jul 9 09:01:14 2002 Chad Elliott - - * bin/MakeProjectCreator/config/taolib_with_idl.mpb: - - Change the default tao_idl option from -Gs to -Sc. - -Tue Jul 9 08:07:20 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - When using Cygwin Perl, we need to convert the cwd to a windows - path to match up with environment variables that are usable - outside of Cygwin. - -Tue Jul 9 07:46:57 2002 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Fix up the relative value matching code to work correctly - on Windows. - -Tue Jul 9 07:31:48 2002 Chad Elliott - - * ace/ace.mpc: - * ace/QoS/qos.mpc: - * ace/RMCast/rmcast.mpc: - * ace/SSL/ssl.mpc: - * apps/gperf/src/gperf.mpc: - * tests/tests.mpc: - * tests/RMCast/tests.mpc: - * tests/SSL/tests.mpc: - - Input files for the Make Project Creator for just the basic - libraries, exe's and tests. - -Tue Jul 9 07:24:06 2002 Chad Elliott - - * bin/mpc.pl: - * bin/mwc.pl: - - The starting point for creating workspaces and projects. - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/USAGE: - - A bit of lite documentation on the Make Project Creator. - - * bin/MakeProjectCreator/config/aceexe.mpb: - * bin/MakeProjectCreator/config/acelib.mpb: - * bin/MakeProjectCreator/config/aceversion.mpb: - * bin/MakeProjectCreator/config/avstreamsexe.mpb: - * bin/MakeProjectCreator/config/client.mpb: - * bin/MakeProjectCreator/config/global.mpb: - * bin/MakeProjectCreator/config/messaging.mpb: - * bin/MakeProjectCreator/config/namingexe.mpb: - * bin/MakeProjectCreator/config/notify.mpb: - * bin/MakeProjectCreator/config/notifytest.mpb: - * bin/MakeProjectCreator/config/orbsvcsexe.mpb: - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - * bin/MakeProjectCreator/config/rt_client.mpb: - * bin/MakeProjectCreator/config/rt_server.mpb: - * bin/MakeProjectCreator/config/rteventexe.mpb: - * bin/MakeProjectCreator/config/server.mpb: - * bin/MakeProjectCreator/config/strategies.mpb: - * bin/MakeProjectCreator/config/taoexe.mpb: - * bin/MakeProjectCreator/config/taolib.mpb: - * bin/MakeProjectCreator/config/taolib_with_idl.mpb: - * bin/MakeProjectCreator/config/taoversion.mpb: - - Base projects for most of ACE and TAO. - - - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GUID.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateInputReader.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - The main modules of the Make Project Creator which provide most of - the functionalty. - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/EM3ProjectCreator.pm: - * bin/MakeProjectCreator/modules/EM3WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GHSProjectCreator.pm: - * bin/MakeProjectCreator/modules/GHSWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GNUProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VA4ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VA4WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - - Subclassed workspace and project creators. - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/bordll.mpt: - * bin/MakeProjectCreator/templates/borexe.mpt: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/ghs.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/gnudll.mpt: - * bin/MakeProjectCreator/templates/gnuexe.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/va4iccdll.mpt: - * bin/MakeProjectCreator/templates/va4iccdllexe.mpt: - * bin/MakeProjectCreator/templates/va4icclib.mpt: - * bin/MakeProjectCreator/templates/va4icclibexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Template and template input files for all of the different project - creators. - -Tue Jul 9 07:21:29 2002 Chad Elliott - - * ace/Map_T.h: - * ace/Map.cpp: - * ace/Pair_T.h: - * ace/Pair.cpp: - - Remove the use of Map.h and Pair.h. - - * ace/gethrtime.cpp: - - Only compile the contents of this file if using GHS and are - building for the x86. - -Mon Jul 8 17:26:51 2002 Steve Huston - - * ace/Task.cpp (svc_run): Borland complains about reinterpret_cast from - int to unsigned long, so change the cast to ACE_THR_FUNC_RETURN to - a static_cast for that compiler. Thanks to Johnny Willemsen - for this fix. - -Fri Jul 5 10:30:44 2002 Douglas C. Schmidt - - * ace/Array_Base.cpp: Swapped the order of includes so that - Array_Base.h comes after Malloc_Base.h. Thanks to Al Pariante - for reporting this. - -Thu Jul 4 11:27:05 2002 Douglas C. Schmidt - - * Happy 226th Birthday USA! - -Sat Jul 06 19:32:40 2002 Balachandran Natarajan - - * ace/Time_Value.h (ACE_Time_Value): Fix for [BUGID 1240]. Some of - the operators were missing explicit declarations in the header - file (they were anyway defined in the inlined files) which - created problems in builds where inlining was diabled. Please - see - - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1240 for - more details. Thanks to Marina Spivak for - reporting this. - -Fri Jul 5 18:44:39 2002 Steve Huston - - * ace/ACE.cpp: Corrected undeclared 'select_width' errors and - signed/unsigned mismatch warnings. - -Fri Jul 5 16:14:51 2002 Steve Huston - - * ace/OS.{h i} (send, sendto, recv, recvfrom): Change 'len' argument - from int to size_t. - Removed conditional typedef of ssize_t; it's done in Basic_Types.h. - - * ace/ACE.h (recv): Filled in documentation for varargs variant. - * ace/ACE.cpp (send, recv): Properly convert size_t 'count' arg to int - iovec count for call to ACE_OS::sendv/recvv(). - (handle_timed_accept, handle_timed_complete, handle_ready): Use - an int select_width for ACE_OS::select() calls to get the types - correct. This arg is ignored on Windows anyway. - - * ace/Basic_Types.h: If ACE_HAS_SSIZE_T not defined, and Win64, - typedef SSIZE_T ssize_t; else use the existing int typedef. - -Wed Jul 3 11:09:31 2002 Steve Huston - - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: - Change thread function to return ACE_THR_FUNC_RETURN, not void *. - -Tue Jul 02 21:43:53 2002 Nanbor Wang - - * ACEXML/common/XMLFilterImpl.h: One more pre/post mismatch. - -Tue Jul 2 16:58:55 2002 Krishnakumar B - - * ACEXML/common/XML_Types.h: - - Removed unnecessary includes and fixed a typo. - -Tue Jul 02 16:35:19 2002 Nanbor Wang - - * ACEXML/common/Attributes.h: - * ACEXML/common/Locator.h: Fixed mismatched pre/post inclusions. - - * ACEXML/parser/parser/Parser.cpp: Fixed compilation errors. - -Tue Jul 2 11:53:29 2002 Steve Huston - - * ace/config-all.h: Changed definition of ACE_THR_FUNC to incorporate - the platform's thread function return type (DWORD on Windows, - void * on most others). Uses a new typedef ACE_THR_FUNC_RETURN - to specify the platform's thread function return type. - - * ace/OS.{h i cpp} (thr_exit, thr_join): The status arg is now - a ACE_THR_FUNC_RETURN *. - Also moved remaining thread function definition type things to - config-all.h with the rest of them. - - * ace/Base_Thread_Adapter.{h cpp} (invoke(), ace_thread_adapter()): - * ace/OS_Thread_Adapter.{h cpp} - * ace/Thread_Adapter.{h cpp} (invoke(), invoke_i()): - Return type changed from void * to ACE_THR_FUNC_RETURN. - - * ace/Event_Handler.{cpp h} (read_adapter): Change return value from - void* to ACE_THR_FUNC_RETURN. - - * ace/Thread_Hook.{h cpp}: ACE_Thread_Hook::start () returns - ACE_THR_FUNC_RETURN, not void *. - - * ace/Thread.{h i} (exit, join): 'status' arg is now - ACE_THR_FUNC_RETURN *, not void *. - - * ace/Thread_Control.{h inl cpp} (status, exit): - * ace/Thread_Manager.{h cpp} (exit, join): Thread exit status - type changed from void * to ACE_THR_FUNC_RETURN. - - * ace/Task.{h cpp} (ACE_Task_Base): Return type from svc_run now - ACE_THR_FUNC_RETURN. - - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.{cpp, h}: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Client_Logging_Daemon.cpp: - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server.cpp: - * examples/Reactor/WFMO_Reactor/Abandoned.cpp: - * performance-tests/TCP/tcp_test.cpp: - * tests/ACE_Init_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Service_Config_DLL.cpp: - * tests/Task_Test.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - Change thread function to return ACE_THR_FUNC_RETURN, not void *. - - * examples/C++NPv2/TP_Logging_Server.cpp (handle_input, svc): - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp (open): - * examples/C++NPv2/display_logfile.cpp (svc): Change - ACE_reinterpret_cast to ACE_static_cast. Thanks to Doug Schmidt - for finding this. - - * examples/C++NPv2/TP_Logging_Server.h: - * examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp: Corrected use - of ACE_NEW_RETURN. - -Mon Jul 1 23:16:47 2002 Jeff Parsons - - * */Makefile: - - Updated dependencies. - -Mon Jul 1 21:59:44 2002 Krishnakumar B - - * ACEXML/common/Attributes.h: - * ACEXML/common/AttributesImpl.h: - * ACEXML/common/Attributes_Def_Builder.h: - * ACEXML/common/CharStream.h: - * ACEXML/common/ContentHandler.h: - * ACEXML/common/DTDHandler.h: - * ACEXML/common/DTD_Manager.h: - * ACEXML/common/DefaultHandler.h: - * ACEXML/common/Element_Def_Builder.h: - * ACEXML/common/EntityResolver.h: - * ACEXML/common/Env.h: - * ACEXML/common/ErrorHandler.h: - * ACEXML/common/Exception.h: - * ACEXML/common/FileCharStream.h: - * ACEXML/common/HttpCharStream.h: - * ACEXML/common/InputSource.h: - * ACEXML/common/Locator.h: - * ACEXML/common/LocatorImpl.h: - * ACEXML/common/Mem_Map_Stream.h: - * ACEXML/common/NamespaceSupport.h: - * ACEXML/common/SAXExceptions.h: - * ACEXML/common/StrCharStream.h: - * ACEXML/common/Transcode.h: - * ACEXML/common/URL_Addr.h: - * ACEXML/common/Validator.h: - * ACEXML/common/XMLFilter.h: - * ACEXML/common/XMLFilterImpl.h: - * ACEXML/common/XMLReader.h: - * ACEXML/common/XML_Codecs.h: - * ACEXML/common/XML_Types.h: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.h: - * ACEXML/parser/debug_validator/Debug_DTD_Manager.h: - * ACEXML/parser/debug_validator/Debug_Element_Builder.h: - * ACEXML/parser/debug_validator/Element_Tree.h: - * ACEXML/parser/parser/Entity_Manager.h: - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/parser/parser/Parser.h: - - ACE_LACKS_PRAGMA_ONCE fixes. - -Mon Jul 1 06:21:00 2002 Douglas C. Schmidt - - * ace/Sock_Connect.cpp (count_interfaces): Added a MacOSX-specific - value for OSIOCGIFCONF. Thanks to John Zorko - for this fix. diff --git a/ACE/ChangeLogs/ChangeLog-03a b/ACE/ChangeLogs/ChangeLog-03a deleted file mode 100644 index 930128362db..00000000000 --- a/ACE/ChangeLogs/ChangeLog-03a +++ /dev/null @@ -1,1339 +0,0 @@ -Thu Feb 20 19:18:17 2003 Balachandran Natarajan - - * ChangeLogs/ChangeLog-02b: - * ChangeLogs/ChangeLog-03a: New files having all the old ChangeLog - entries till 5.3.1. - * ChangeLog: Shortened the changelog for ease of use. - -Thu Feb 20 10:35:15 2003 Ossama Othman - - * ace/Strategies_T.h: - * ace/Strategies_T.cpp: - - Reverted part of changes that introduced extensive use of - traits since they were forcing the introduction of the - ACE_TYPENAME macro in more places than is desirable at this - point in time. They may be reintroduced in the future. - -Thu Feb 20 09:24:00 2003 Ossama Othman - - * ace/Service_Config.h: - - Forward declare ACE_Service_Object. Necessitated by inter-header - dependency reductions. - -Thu Feb 20 09:23:51 2003 Ossama Othman - - * ace/Acceptor.h: - * ace/Connector.h: - - No need to include "ace/Service_Config.h" and - "ace/Svc_Handler.h". - - Include "ace/Synch_Options.h". Necessitated by inter-header - dependency reductions. - - * ace/Acceptor.cpp: - * ace/Connector.cpp: - - Include "ace/Svc_Handler.h". Necessitated by inter-header - dependency reductions. - - * ace/Atomic_Op.h: - - Fixed doxygen documentation. - - * ace/Atomic_Op.i (operator++, operator--): - - Implement these post{in,de}crement operators in terms of their - corresponding pre{in,de}crement operators to ensure consistent - semantics. - - * ace/Atomic_Op_T.h (mutex_, own_mutex_): - - Improved const-correctness by making these mutex members - mutable. This allows us to avoid casting away the constness. - - * ace/Atomic_Op_T.i (operator==, operator>=, operator>): - (operator<=, operator<, value, operator=): - - Do not cast away the constness of the mutex. That hack is no - longer necessary since the mutex is now mutable. - - * ace/Basic_Types.h: - - Improved doxygen documentation. - - Moved endianness determination macros prior to ACE_U_LongLong - class. - - (operator=): - - Added ACE_ULongLong assignment operator declarations that accept - 32 bit signed and unsigned integers. - - (operator++, operator--): - - Added missing ACE_ULongLong post{in,de}crement operator - declarations. - - (data_): - - Make declaration order of lower and upper 32 bit members (lo_ - and hi_) of this structure dependant on the endianness of the - platform. This mimics what is done for the ACE_LongLong type - in the ACE_CDR classes. - - * ace/Basic_Types.i (operator=): - - Added ACE_ULongLong assignment operator implementation that - accept 32 bit signed and unsigned integers. - - (operator++, operator--): - - Added missing ACE_ULongLong post{in,de}crement operator - implementations. - - * ace/CDR_Base.cpp (mb_align): - - Uninlined this method in order to reduce inter-header - dependencies. - - (operator<, operator<=, operator>, operator>=, operator==): - (operator!=): - - Added these missing operator for the ACE_LongLong type. - - (Float, operator=, operator!=): - - Fixed potential unused argument warnings for the Cray/UNICOS - case. - - * ace/CDR_Base.h: - - Include "ace/OS.h" instead of "ace/Message_Block.h", and forward - declare ACE_Message_Block in order to reduce inter-header - dependencies. - - Changed all uses of typedefs like "u_char" and "u_long" to their - non-typedef counterparts, e.g. "unsigned char" and "unsigned - long". Makes it possible to avoid including headers that - contain those typedefs. - - (operator=): - - Added ACE_LongLong constructors assignment operators that accept - 32-bit integers. - - (operator==, operator!=, operator<=, operator<, operator>=): - (operator>): - - Added these missing ACE_LongLong relation operators. - - * ace/CDR_Base.inl (operator=): - - Added ACE_LongLong constructors assignment operators that accept - 32-bit integers. - - (operator==, operator!=, operator<=, operator<, operator>=): - (operator>): - - Added these missing ACE_LongLong relation operators. - - * ace/CDR_Stream.h: - - Moved definition of the ACE_CDR_BYTE_ORDER macros from OS.h to - this header. Helps with header dependency reduction. - - * ace/Capabilities.h: - - Use ACE_Hash_Map_Manager_Ex instead of ACE_Hash_Map_Manager. - Doing so saves us three template instantiations. - - * ace/Capabilities.i: - - Cosmetic changes. - - * ace/Capabilities.cpp: - - No need to include "ace/Map_Manager.h". - - Added missing ACE_RCSID macro. - - Improved conformance to ACE coding conventions. - - Removed explicit template instantiations for the - ACE_Hash_Map_Manager template. That template is no longer - used. - - (reset_caps): - - Use ACE_Hash_Map_Manager_Ex template traits instead of the - actual template type. Makes for cleaner code. - - * ace/Configuration.cpp: - * ace/Configuration.h: - * ace/Strategies_T.cpp: - * ace/Token_Collection.cpp: - * ace/Token_Collection.h: - * ace/Token_Invariants.cpp: - * ace/Token_Invariants.h: - * ace/Token_Manager.cpp: - * ace/Token_Manager.h: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Asynch_IO.h: - - Take advantage of template traits to improve clarity of code. - - * ace/Copy_Disabled.h: - - Corrected comment. - - * ace/Default_Constants.h: - - Moved ACE_DEFAULT_CDR_BUFSIZE, ACE_DEFAULT_CDR_EXP_GROWTH_MAX, - ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK, - ACE_DEFAULT_CDR_MEMCPY_TRADEOFF macros from OS.h to this - header. Helps with inter-header dependency reduction. - - * ace/Dynamic_Service_Base.cpp: - * ace/Parse_Node.cpp: - * ace/Service_Manager.cpp: - * ace/Service_Repository.cpp: - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: - - Include "ace/Service_Types.h". Necessitated by inter-header - dependency reduction. - - * ace/Filecache.h: - * ace/Filecache.cpp: - * ace/Hash_Map_With_Allocator_T.h: - * ace/Hash_Map_With_Allocator_T.cpp: - * ace/Local_Name_Space_T.h: - * ace/Local_Name_Space.cpp: - - Use ACE_Hash_Map_Manager_Ex instead of ACE_Hash_Map_Manager. - Doing so saves us three template instantiations. - - * ace/Future_Set.h: - * ace/Map_T.h: - - Include "ace/Hash_Map_Manager_T.h" instead of - "ace/Hash_Map_Manager.h". The former is all that is needed, and - the latter already includes the former. - - * ace/Hash_Map_Manager_T.i (operator++, operator--): - * ace/Map_Manager.i: - * ace/RB_Tree.i: - - Implement the post-{in,de}crement operators in terms of their - pre-{in,de}crement operator counterparts to ensure consistency. - - * ace/Local_Name_Space_T.cpp: - - No need to include "ace/Auto_Ptr.h" - - Use template traits to improve code clarity. - - * ace/OS.h: - - Moved ACE_CDR_BYTE_ORDER macro definition to CDR_Stream.h. - Helps with inter-header dependencies. - - Moved ACE_DEFAULT_CDR_BUFSIZE, ACE_DEFAULT_CDR_EXP_GROWTH_MAX, - ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK, - ACE_DEFAULT_CDR_MEMCPY_TRADEOFF to Default_Constants.h. Helps - with inter-header dependency reduction. - - * ace/POSIX_Asynch_IO.cpp: - - Added missing ACE_RCSID macro. - - (bytes_transferred): - Use map template traits to improve code clarity. - - * ace/POSIX_Asynch_IO.h: - - Redefined old map typedefs in terms of the map traits. - - * ace/Parse_Node.h: - * ace/Service_Repository.h: - - No need to include "ace/Service_Types.h". A forward declaration - for ACE_Service_Types is enough. - - * ace/Service_Config.h: - - No need to include "ace/Service_Types.h" and "ace/Signal.h". - Forward declaring ACE_Service_Types and ACE_Sig_Adapter is - enough. - - * ace/Strategies_T.h: - - No need to include "ace/Service_Config.h" and - "ace/Synch_Options.h". - - * ace/Synch_Options.h: - - Changed all uses of typedefs like "u_char" and "u_long" to their - non-typedef counterparts, e.g. "unsigned char" and "unsigned - long". Makes it possible to avoid including OS.h. A big win in - compile time reduction. - - Include "ace/Time_Value.h". Necessitated by inter-header - dependency reduction. - - * ace/Synch_Options.cpp: - - Changed all uses of typedefs like "u_char" and "u_long" to their - non-typedef counterparts, e.g. "unsigned char" and "unsigned - long". Makes it possible to avoid including OS.h. A big win in - compile time reduction. - - Include "ace/Trace.h". Necessitated by inter-header - dependency reduction. - - * ace/Template_Instantiations.cpp: - - Removed all ACE_Hash_Map_Manager related template - instantiations. The ones for ACE_Hash_Map_Manager_Ex are all - that are needed. - - * ace/SSL/SSL_SOCK_Acceptor.h (ACE_SSL_SOCK_Acceptor): - - Inherit privately from ACE_SSL_SOCK, instead of publically. - ACE_SSL_SOCK_Acceptor is IMPLEMENTED-IN-TERMS-OF ACE_SSL_SOCK. - It does not satisfy the IS-A relationship. - - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - - Use ACE_Countdown_Time to take into account the time between - each call to select() instead of using the same timeout value in - each loop iteration. - - * ace/SSL/SSL_SOCK_Stream.cpp (get_remote_addr): - - Retrieve the remote addr from the parent ACE_SSL_SOCK class, not - ACE_SOCK. Addresses potential inconsistencies in the future. - - * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream): - - Removed friend declarations for the - ACE_SSL_SOCK_{Acceptor,Connector} classes. They are - unnecessary. - -Wed Feb 19 12:50:58 2003 Heather Drury - - * ACE version 5.3.1 released. - -Mon Feb 17 15:21:18 2003 Balachandran Natarajan - - * bin/auto_run_tests.lst: The Server_Protocol and the ORB_init - test in RTCORBA will not run in ST builds since the operations - ACE_OS::thr_getprio () are not supported. - -Fri Feb 14 09:53:43 2003 Rich Seibel - - * ace/config-osf1-4.0.h: Tru64 lacks the clearerr - function when built without threads (thread=0). - Thanks to Abhay Kulkarni - for reporting the problem. - -Thu Feb 13 17:50:07 2003 Krishnakumar B - - * include/makeinclude/rules.lib.GNU: Build static libraries - using xargs with the list of all the object files instead of - using them directly on the command line. This works around - brokenness of systems that have a small limit on the length of - the command-line arguments. Thanks to Abhay Kulkarni - for reporting the problem. - -Thu Feb 13 12:43:27 2003 Pradeep Gore - - * bin/auto_run_tests.lst: - Added TAO/examples/RTCORBA/Activity/run_test.pl to this list. - -Thu Feb 13 07:36:40 2003 Balachandran Natarajan - - * THANKS: Added Dmitri Belogaj to the hall of fame. - -Wed Feb 12 12:40:21 2003 Balachandran Natarajan - - * bin/auto_run_tests.lst: Prevented a few RTCORBA tests to be run - in our daily builds since changing priorities requires root - access. - -Wed Feb 12 12:06:05 2003 Balachandran Natarajan - - * ace/Strategies.h: Added this file for backward - compatibility. Backward compatibility was broken with the - following checkin - - "Tue Nov 20 12:48:39 2001 Balachandran Natarajan - ". Thanks to Dmitri Belogaj - for reporting this problem. - -Wed Feb 12 10:18:21 2003 Nanbor Wang - - * bin/MakeProjectCreator/templates/vc7.mpd: Checked in Chad's - missing ssl_libs fix. - -Wed Feb 12 08:59:12 UTC 2003 Johnny Willemsen - - * ace/UPIPE_Addr.h: - Removed ACE_UPIPE_Addr class which isn't used, typedef ACE_UPIPE_Addr - still is there. - -Tue Feb 11 22:19:39 2003 Krishnakumar B - - * examples/DLL/Makefile.Today (SHLIB): - * examples/DLL/Makefile.Newsweek (SHLIB): - - Removed extra space at the end which caused compilation to - break. Thanks to Bill Cassanova for - reporting the problem. - -Wed Feb 12 00:00:12 UTC 2003 Craig Rodrigues - - * ace/OS.h: - * ace/OS.i (thr_setprio): Add a new default thr_policy parameter which - allows us to explicitly set the policy in pthread_setschedparam(). - Introduced to eliminate a bug discovered in RT-CORBA implementation. - -Tue Feb 11 14:01:21 2003 Nanbor Wang - - * vc7_nightly.mwc: Added a temporary file specifying core nightly - build targets. Notice this file includes both ACE and TAO. - - * ace/ace.mpc: Added XML_Svc_Conf.cpp. - - * ace/SSL/ssl.mpc: Fixed dllflags setting. - -Mon Feb 10 18:08:12 2003 Balachandran Natarajan - - * THANKS: Added Otis Nyandoro to the hall of fame. - -Mon Feb 10 18:02:41 2003 Steve Huston - - * ace/OS.h: Don't special-case SEH support on ACE_HAS_WINCE. First, - CE can do SEH; second, the switching of this on/off can and should - be done in the config file. - - * ace/config-win32-common.h: Enable ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS - for WinCE. - - Thanks to Emmanuel Thevenot Beaufort - for this fix. - - * ace/Handle_Set.{h i}: Remove the ACE_Handle_Set destructor for - ACE_HAS_WINCE. The need for this predates the supported vc 3 and 4 - compilers, and having it in there triggers an SEH warning. - - * ace/SPIPE_Stream.i: Follow-up to: - Mon Feb 10 09:22:04 2003 Phil Mesnier - Added the need for ACE_HAS_WINSOCK2 to enable this code. The calls - and structures used aren't available in Winsock1. - - * ace/config-wince.h: Disable Winsock2 for CE versions less than 4.0. - -Mon Feb 10 12:14:35 2003 Jeffrey Graham - - * bin/ace-install: - - Fixed problem where all TAO executables were not installed. - - Fixed installed file permission problem. Files that should have - global access didn't have it. - - Fixed problem where the script did not easily flatten the - install directory, requires the ACE_ARCH subdirectory trees be - built. - - Fixed problem where all binaries were not filtered out. - -Mon Feb 10 19:42:12 UTC 2003 Johnny Willemsen - - * ace/ATM_Acceptor.h: - Converted old style documentation to doxygen style - - * ace/Arg_Shifter.h: - Added private declaration of copy constructor and assignment - operator. Instances of these class can not be copied using the - default ones. Also fixes a MSVC6 level 4 warning. - - * ace/Configuration.cpp: - Removed not needed MingW ifdef, the normal code also compiles with - MingW - - * ace/config-win32.h: - Removed cygwin from this file. For cygwin the config-cygwin32.h - must be included directly in config.h - - * ace/Notification_Strategy.h: - * ace/Notification_Strategy.inl: - Made mask() method const - - * include/makeinclude/ace_flags.bor: - If TAO_ROOT isn't defined, define it as $(ACE_ROOT)/TAO - - * bin/MakeProjectCreator/templates/bor.mpd: - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - Thanks for Christopher Kohlhoff for providing - a fix for the singleton template with Borland. The problem is that - with a singleton template the code is implicitly generated into - every object file that references it. The linker then strips out - all but a single copy of the code. When linking an exe that refers - to a singleton template in a dll, the linker would choose one - of the template code instances in the exe's .obj files, and - completely ignore the instance that was exported by the dll. - - The key to the solution is that it appears that the borland linker - chooses the first instance of the template symbols that it sees. The - linker will let you list the .lib files in the place normally used - for object files. By listing the library files before any of the - object files, it resolves the template code against the dll exports. - - * examples/Service_Configurator/Misc/Makefile: - * examples/Service_Configurator/Misc/Makefile.Timer: - * examples/Service_Configurator/Misc/Makefile.main: - Splitted the original GNU makefile in multiple files, one for the - shared library and one for the exe and one to trigger the other - two. This fixes the compile errors with this example with Cygwin - and MingW. Thanks for Vince Mounts for making - these makefiles. - -Mon Feb 10 09:22:04 2003 Phil Mesnier - - * ace/SPIPE_Stream.i: Added a special case for win32 platforms to - ACE_SPIPE_Stream::send_handle() and recv_handle() to allow handle - passing. The extension is necessary since the receiving side must - open the duplicate handle before the sending side closes it. - -Fri Feb 7 17:22:39 2003 Steve Huston - - * ace/OS.cpp (ACE_OS::thr_create): Moved the pthread_setstack() call - (and the check for whether it's available) from inside the - Pthreads draft 4/6 section to the Pthreads standard section - and corrected the condition it's used (defined - ACE_HAS_PTHREAD_SETSTACK, not !defined ACE_HAS_PTHREAD_SETSTACK). - - Also see: - Thu Jan 16 19:06:19 2003 Stephen Torri - -Fri Feb 7 16:55:58 2003 Heather Drury - - * ace/config-aix-4.x.h: Reverted change to aix config file: - - Fri Feb 7 15:27:40 2003 Heather Drury - -Fri Feb 7 15:37:19 2003 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: Define DCCFLAGS with the - debugging options for xlC_r; Change DCFLAGS to just -g (for the C - compiler). Thanks to Trevor Fields for - reporting this problem. - -Fri Feb 7 15:27:40 2003 Heather Drury - - * ace/config-aix-4.x.h: Restored the defining of - ACE_TEMPLATES_REQUIRE_SOURCE for AIX VisualAge 5, - which is needed for building TAO. Thanks to Trevor - Fields for this fix. - -Fri Feb 7 13:04:51 2003 Steve Huston - - * ace/ace_wchar.h: Added a new macro, ACE_TEXT_ALWAYS_WCHAR(STRING). - It's the inverse of ACE_TEXT_ALWAYS_CHAR - whatever STRING is, - the macro produces a wide-char string. Thanks to - Emmanuel Thevenot Beaufort - for this macro. - -Thu Feb 6 19:30:18 2003 Steve Huston - - * tests/SString_Test.cpp: Added a test for wide-string compares of - equal-length strings that differ in the last character. - - * ace/String_Base.i (compare): When memcmp()-ing to compare, take - the size of CHAR into account when calculating byte length. Thanks - to Emmanuel Thevenot Beaufort - for this fix. - -Thu Feb 6 16:06:29 2003 Rich Seibel - - * ace/config-tru64.h: Added a guard around the - ACE_HAS_SNPRINTF as versions earlier than 5.0 do not seem - have this function. - -Thu Feb 6 15:03:04 2003 Krishnakumar B - - * include/makeinclude/rules.local.GNU: Make the removal of IDL - generated files in realclean target dependent upon the - definition of IDL_FILES. MingW make crashes on empty "rm -f " - commands. - -Thu Feb 6 15:19:28 2003 Heather Drury - - * ace/Refcounted_Auto_Ptr.h: - * ace/Refcounted_Auto_Ptr.i: Made the other get() method const. See - previous ChangeLog entry. - -Thu Feb 6 07:13:06 2003 Douglas C. Schmidt - - * ace/Refcounted_Auto_Ptr.{h,i} (get): Made the get() method const. - Thanks to Jenny Kowald for suggesting this. - -Wed Feb 5 20:48:47 2003 Krishnakumar B - - * include/makeinclude/rules.local.GNU: Added rules to generate - object files from C++ file extensions .cxx, .C and .cc, in - addition to .cpp. - -Wed Feb 5 20:15:18 2003 Krishnakumar B - - * include/makeinclude/rules.lib.GNU: Removed the conditional - setting of VSHOBJS and VSHOBJS1 based on PRELIB. There is too - much bogosity here. This should fix HP-UX and AIX breakage. - -Sat Feb 1 08:43:53 2003 Douglas C. Schmidt - - * ace/Stream_Modules.cpp (put): Return 0 rather than -1 to be consistent - wrt the put() semantics elsewhere in ACE. Thanks to Jody Hagins - for help with this. - - * tests/FIFO_Test.cpp (server): Only compile this on platforms - that aren't Win32 since FIFO's don't work there. Thanks to Carl - Halvorson for reporting this. - -Wed Feb 5 09:45:12 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_mingw32.GNU: - Removed desciption to MINGW_BASE. - -Tue Feb 4 13:13:08 2003 Krishnakumar B - - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.bin.GNU: - - Generalized the creation of objects from source files by - removing the dependency that the source files be named *.cpp. - Also removed a lot of junk. - - * include/makeinclude/wrapper_macros.GNU: Removed some more - accumulated cruft. - - * include/makeinclude/rules.nested.GNU: Fix recursive make so - that users can name the makefiles in sub-directories as - something other than Makefile by introducing a new variable - SUBDIR_MAKEFILE. - - * ace/Makefile: Fix the Makefile to use the above extension when - recursing into directories. - - * include/makeinclude/rules.local.GNU: Add a new local target - clean_idl_stubs.local which cleans all the IDL generated files. - This target is linked to realclean so the IDL generated files - will only be cleaned with realclean. - - Thanks to James Mansion for - reporting the bugs and suggesting some fixes. - -Tue Feb 4 11:21:13 MST 2003 Rob Andzik - - * ACE_wrappers/include/makeinclude/platform_vxworks5.x_g++.GNU - - Added three new variables - GCC_VERSION (defaults to gcc-2.96) - VXWORKS_VERSION_FLAG (defaults to -DACE_VXWORKS=0x542) - VXWORKS_STDINC_FLAG (defaults to ) - - - Modified all sets of GCCLIB_DIR to use GCC_VERSION - - Modified all references to ACE_VXWORKS to use VXWORKS_VERSION_FLAG - - replaced -nostdinc with VXWORKS_STDINC_FLAG - - * ACE_wrappers/ace/config-vxworks5.x.h - - Added define ACE_LACKS_CLEARERR (wrapped in ACE_VXWORKS check) - - * ACE_wrappers/ace/OS.i - - Added ACE_UNUSED_ARG where warnings occurred. - -Mon Feb 3 16:33:02 2003 Heather Drury - - * ace/config-freebsd.h: msgsnd() with const parameter was recently - added to FreeBSD-CURRENT. Thanks to Craig Rodrigues' for this change. - -Sat Feb 1 09:34:45 2003 Ossama Othman - - * bin/auto_run_tests.lst: - - Disable TAO's IORInterceptor test for the GIOP 1.0 build - configuration. The test requires IOR tagged components that are - not supported in GIOP 1.0. Fixes a false positive in our - scoreboard. - -Sat Feb 1 07:50 2003 Douglas C. Schmidt - - * Our deepest sympathies to the families and friends of the crew of - the US Space Shuttle Columbia, which was lost over Texas this - morning. - - "We shall never forget them nor the last time we saw them, as - they prepared for their mission and waved good-bye and slipped - the surly bonds of Earth to touch the face of God." - - - President Reagan (addressing NASA employees following the - tragic loss of the Challenger 7 crew on STS-51L.) - - Ad astra per aspera. - -Sat Feb 1 09:00:00 2003 Steve Huston - - * Space Shuttle Columbia breaks up at 200,000ft altitude at - 12,500mph. 7 astronauts killed; the US and Israel mourn their loss. - -Fri Jan 31 12:55:26 2003 Frank Hunleth - - * tests/Reactor_Exceptions_Test.cpp (worker): Added #if defined - (ACE_HAS_THREADS) guard around worker () function to remove a - compiler warning on single threaded configurations that have - exceptions enabled. - -Thu Jan 30 21:57:58 2003 Frank Hunleth - - * examples/Threads/thread_specific.cpp (worker): Added __OpenBSD__ - to the list of OS/compilers that can check printf arguments. - This removes a compilation warning. - -Thu Jan 30 21:50:27 2003 Frank Hunleth - - * ace/config-openbsd.h: Added ACE_LACKS_SETSCHED, since it turns - out that sched_setscheduler hasn't been implemented on OpenBSD. - - * bin/auto_run_tests.lst: Disabled the MT_Cubit test for OpenBSD, - since it fails completely when sched_params returns an error. - -Thu Jan 30 10:34:02 2003 Ossama Othman - - From Olivier Brunet - * ace/SSL/SSL_Context.cpp (report_error): - - Corrected format specifier for wide string case. - -Wed Jan 29 12:31:51 2003 Frank Hunleth - - * ace/config-openbsd.h: - * ace/config-openbsd-pthreads.h: Merged config files together and - removed config-openbsd-pthreads.h like what was done for - FreeBSD. - - * include/makeinclude/platform_openbsd.GNU: - * include/makeinclude/platform_openbsd_pthreads.GNU: Merged files - together and removed platform_openbsd_pthreads.GNU like - FreeBSD. Also removed gratuitous link of -lstdc++. g++ already - does that for us. Thanks to Craig Rodrigues' changelog entry. - -Wed Jan 29 11:47:29 2003 Steve Huston - - * ACEXML/tests/ContentHandler_Test.cpp: Fixed compile errors by - adding/correcting use of the ACEXML exception macros. - -Wed Jan 29 08:30:12 UTC 2003 Johnny Willemsen - - * ace/Vector_T.cpp: - Fixed bug in resize() method, of the original vector, the last - item was lost during resize(). Thanks to Denis Parnaland - for reporting this. - - * tests/Vector_Test.cpp: - Extended this test to test the resize() method of ACE_Vector. - - * THANKS: Added Denis Parnaland. - -Tue Jan 28 18:46:41 2003 Steve Huston - - * ACEXML/parser/parser/Parser.cpp (parse_element): When converting - an escape sequence, add its length, don't lose the length of - already-parsed content. Thanks to Emmanuel Thevenot Beaufort - for this fix. - - * ACEXML/tests/ContentHandler_Test.{cpp dsp}: New test that - illustrates the problem above and validates the fix. - - * ACEXML/tests/Tests.dsw: - * ACEXML/Makefile: - * ACEXML/Makefile.bor: Added ContentHandler_Test. - - * THANKS: Added Emmanuel Thevenot Beaufort to the Hall of Fame. - -Tue Jan 28 15:47:29 2003 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: For distrib builds, - changed the +h option to not specify the whole path; put the path - in the path search option (+b). - -Mon Jan 27 14:28:16 2003 Heather Drury - - * include/makeinclude/wrapper_macros.GNU: Remove unnecessary use - of GNU make basename command. Supplied by Ganesh Pai . - -Sun Jan 26 16:42:23 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - When AIO support is found, set the right define but also add the - library liblrt to the lists to link with. Only when building with - threading support link with the pthread library. - -Sun Jan 26 16:42:23 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - Don't set any BUILD_DLL defines in this file, the BUILD_DLL defines - are set in the specific makefiles. - -Sat Jan 25 20:31:56 2003 Frank Hunleth - - * ace/config-openbsd.h: - * ace/config-openbsd-pthread.h: Added ACE_HAS_SNPRINTF since - OpenBSD has snprintf() and to fix buffer overflow tested for by - tests/Log_Msg_Test. - -Sat Jan 25 18:15:48 2003 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added a new test to the daily builds. - -Sat Jan 25 13:39:23 UTC 2003 Johnny Willemsen - - * ACE-INSTALL.html: - * include/makeinclude/platform_mingw32.GNU: - * include/makeinclude/platform_gnuwin32_common.GNU: - Removed the usage of MINGW_BASE. This is not needed for using MingW. - Thankx to Viktor Ransmayr for - confirming that this is not needed. - -Fri Jan 24 07:54:12 UTC 2003 Johnny Willemsen - - * ace/OS.h: - VxWorks 5.4 lacks some ANSI prototypes. These are defined by - VxWorks 5.5 so we only define these ANSI prototypes when defined - ACE_VXWORKS and this is equal or smaller 0x540. Else we just - include apra/inet.h. - -Thu Jan 23 17:57:05 2003 Heather Drury - - * ace/README: Deleted non-ascii characters around ACE_HAS_PTHREAD_SETSTACK. - -Thu Jan 23 17:44:38 UTC 2003 Craig Rodrigues - - * include/makeinclude/platform_freebsd.GNU: Remove gratuitous link - of -lstdc++. g++ already does that for us. - -Wed Jan 22 21:08:48 2003 Steve Huston - - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp (Quit_Handler): - Sync with code in the book. - -Wed Jan 22 18:12:41 2003 Steve Huston - - * examples/C++NPv2/Service_Reporter.cpp: - * examples/C++NPv2/Configurable_Logging_Server.cpp: Change the - name of the static service descriptor from Reporter to - Reporter_Descriptor. This is more descriptive and matches - the book. - -Wed Jan 22 18:08:27 UTC 2003 Craig Rodrigues - - * ace/config-freebsd.h: Add ACE_HAS_SNPRINTF. Fixes Log_Msg_Test. - -Wed Jan 22 18:03:35 UTC 2003 Craig Rodrigues - - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/platform_linux_icc.GNU: - * include/makeinclude/platform_linux_kcc.GNU: - Remove defines of _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS. - These POSIX constants are not meant to be defined by - the user. The user must include and *check* - the value of these constants. On Linux glibc systems, - after including , the header - will be eventually be included...these constants are - defined by the glibc implementation in that header. - -Wed Jan 22 10:55:39 2003 Steve Huston - - * ace/config-tru64.h: Added ACE_HAS_SNPRINTF. Thanks to Vladimir - Chovanec for this fix. - -Wed Jan 22 01:24:51 2003 Douglas C. Schmidt - - * ace/Message_Queue_T.h: Corrected the documentation for - ACE_Message_Block_Ex so it says ACE_MESSAGE_TYPE rather than - ACE_Message_Block. - -Tue Jan 21 21:44:04 2003 Nanbor Wang - - * ACEXML/examples/SAXPrint/broken.xml: Added a new broken XML file - to make sure we handle this case properly. - - * ACEXML/parser/parser/Parser.i (get): Added a check for - successful operation from the input CharStream to avoid - out of the infinite loop when reading broken XML files. Thanks - to Volodymyr Orlenko for reporting this - and submitting the patch. - -Mon Jan 20 20:32:55 2003 Douglas C. Schmidt - - * ace/Log_Msg.cpp (log): Added a '}' at line 1531 to fix a - nasty compiler bug on Digital UNIX. Thanks to Igor Pisarenko - and - Pit Linnartz for reporting this. - -Tue Jan 21 19:29:04 2003 Heather Drury - - * bin/auto_run_tests.lst: Disabled orbsvcs/Test/EC_MT_MCast on - static builds. - -Tue Jan 21 08:43:24 2003 Balachandran Natarajan - - * bin/generate_doxygen.pl: Fixed a cut and paste error. - -Mon Jan 20 16:22:43 2003 Heather Drury - - * ace/NT_Service.cpp: Modified return statement as the - wait_for_service_state function is declared as void and it was - returning an int. - -Mon Jan 20 15:48:35 2003 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added a TAO test to the daily builds. - -Mon Jan 20 13:58:25 2003 Rich Seibel - - * ace/config-macosx.h: Added ACE_HAS_SNPRINTF as well as - ACE_LACKS_PERFECT_MULTICAST_FILTERING to make the ACE - Mac OSX 10.2.x build pass the Log_Msg_Test and the - Multicast_Test. Thanks to John Michael Zorko - for providing this patch. - -Mon Jan 20 18:59:12 UTC 2003 Johnny Willemsen - - * examples/C++NPv2/Makefile.CLD: - * examples/C++NPv2/Makefile.SLD: - * examples/C++NPv2/Makefile.SLDex: - * examples/C++NPv2/Makefile.TPCLS: - * examples/C++NPv2/Makefile.TPLS: - * ace/RMCast/Makefile: - Set the correct x_BUILD_DLL defines. These are needed for the - Cygwin/MingW and Kylix compiler. Thanks to Vince Mounts - for providing the patches. - -Mon Jan 20 11:58:00 2003 Balachandran Natarajan - - * bin/generate_doxygen.pl: Fixed the spaces in the file names - of generated man pages. Thanks to Olver Kellogg for providing - this patch. - -Sun Jan 19 11:40:10 2003 Douglas C. Schmidt - - * ace/NT_Service.{h,cpp}: Enhanced the wait_For_service_state() so - that it actually uses the wait_time parameter. Thanks to Theo - Landman for contributing this. - - * ace/Process_Manager.cpp (spawn): Cleanup dynamically allocated - memory if the spawn() fails. Thanks to Kobi Cohen-Arazi - for this fix. - -Sun Jan 19 15:03:13 UTC 2003 Johnny Willemsen - - * websvcs/lib/Makefile: - Set the correct x_BUILD_DLL defines. These are needed for the - Cygwin/MingW and Kylix compiler. - -Sat Jan 18 17:49:20 2003 Steve Huston - - * Makefile: Removed PACE references. - -Sat Jan 18 17:11:21 2003 Balachandran Natarajan - - * bin/make_release: Use doxygen 1.2.18 as opposed to doxygen - 1.2.13.1. - -Fri Jan 17 09:00:17 2003 Douglas C. Schmidt - - * ACE-INSTALL.html (make): Removed all claims that we support - SunC++ 4.2. Thanks to Kirat Singh for - reporting this. - -Sat Jan 18 09:07:12 UTC 2003 Johnny Willemsen - - * tests/Makefile.DLL_Test: - * tests/Makefile.Framework_Component_DLL: - * tests/Makefile.Service_Config_DLL: - * examples/Service_Configurator/IPC-tests/server/Makefile: - Set the correct x_BUILD_DLL defines. These are needed for the - Cygwin/MingW and Kylix compiler. - -Fri Jan 17 12:34:51 2003 Steve Huston - - * ACE-INSTALL.html: Updated platform and compiler information. - -Thu Jan 16 19:06:19 2003 Stephen Torri - - * ace/OS.cpp: - * ace/config-linux-common.h: - * ace/config-freebsd.h: - * ace/README: - - Added a new macro called ACE_HAS_PTHREAD_SETSTACK for systems - that use the newer glibc (2.3+). Eliminates linker warning about - not using the pthread function called pthread_setstack. - -Thu Jan 16 16:25:45 2003 Balachandran Natarajan - - * bin/auto_run_tests.lst: Added a TAO/orbsvcs/tests/EC_MT_Mcast - test to the daily builds. - -Thu Jan 16 12:27:24 2003 Balachandran Natarajan - - * COPYING: Extended the validity of the copyright notice from 2002 - to 2003. Should have been done yesterday, anyway, better late - than never. - -Wed Jan 15 18:02:01 2003 Bala - - * ACE version 5.3 released. - -Wed Jan 15 10:48:11 2003 Balachandran Natarajan - - * bin/make_release: Did the following enhancements - - - If it is a minor release do not append the beta version. Looks - like somone broke this and the script started writing out - things as x.3.0, whcih is bad BTW. - - - We now POSIX.1 tar, instead of old tar format with the -H - option in cpio. This helps to tar files deep in the hierarchy - tree to be properly zipped. We were loosing this in many - betas. - - - Fixes for the generated filenames copied into the - previous_versions directory. - - - Fix to get the right Version.h file in TAO. - - -Tue Jan 14 18:51:49 2003 Steve Huston - - * ace/Auto_Ptr.h: Added pragma to disable warning 4284 for Microsoft - compilers. The warned-of behavior is exactly what is intended. - - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - Added a "WCE emulator" configuration section. This allows builds - for the WinCE emulator, necessary for working with the WinCE.NET - Standard SDK emulator. - -Tue Jan 14 14:56:12 2003 Steve Huston - - * ace/config-win32-common.h: For WinCE, don't include wce.h unless - building with MFC. wce.h is an MFC file. - - * ace/config-WinCE.h: Add pragmas to link _with_ corelibc.lib and - _without_ oldnames.lib. These weren't needed with WinCE 3/PocketPC - (but they don't hurt) and are needed for WinCE .NET. The ATL headers - do these pragmas, but we don't want to add a dependency on ATL. - -Tue Jan 14 11:07:06 2003 Balachandran Natarajan - - * bin/generate_export_file.pl: Added a patch from - Gonzalo Diethelm which generates - an empty CVS Id string. - -Mon Jan 13 12:53:12 UTC 2003 Johnny Willemsen - - * ace/config-win32-common.h: - The MingW compiler can handle the export/import macros. - - * ace/config-cygwin32.h: - Corrected the guards around this header file. - -Sat Jan 11 09:37:24 2003 Douglas C. Schmidt - - * ace/OS_String.cpp (wcslen_emulation): Fixed a nasty formatting - glitch that made the code hard to read. Thanks to Ruslan - Zasukhin for reporting this. - -Fri Jan 3 21:46:00 2003 John Michael Zorko - - * netsvcs/clients/Naming/Client/Makefile: Added $(ACELIB) to - ACE_SHLIBS to fix multple -lACE problem. This wasn't an - issue on Mac OS X 10.2, but could be on other platforms. - - * examples/ASX/CCM_App/Makefile: same as above - * netsvcs/clients/Naming/Dump_Restore/Makefile: same as above - -Wed Jan 8 19:27:49 2003 Steve Huston - - * ace/Message_Block.h: Doxygenized comments for release() and copy(). - - * ace/UPIPE_Stream.{h cpp}: Removed the remaining_ member; use the - ACE_Message_BLock::length() member function to find the amount - of remaining data. - -Wed Jan 8 12:17:10 2003 Balachandran Natarajan - - * bin/ace-install: Fixed the improper usage of "or" in the "find " - command used to find the inlined files with extensions .i and - .inl. Thanks to Oliver Kellog for providing the patch. - -Tue Jan 7 13:08:12 UTC 2003 Johnny Willemsen - - * ACEXML/common/Makefile: - Set ACEXML_BUILD_DLL when building the shared lib. - -Mon Jan 6 18:31:09 2003 Balachandran Natarajan - - * bin/generate_topinfo_charts.sh: Removed the range for the - Y-AXIS, for the graphs to auto-adjust while plotting. - -Mon Jan 6 16:56:04 2003 Balachandran Natarajan - - * bin/topinfo_iorsize_stats.sh: Scripts for capturing the size of - the server and client when shipping large IOR's - - * bin/topinfo_stats.sh: Renamed to topinfo_simple_stats.sh. This - is a better to show that we capture the sizes of a simple server - and client. - - * bin/topinfo_simple_stats.sh: New file. We need to do some code - sharing between these two scripts. Just postponing that for the - timebeing. - -Mon Jan 6 11:23:12 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Removed setting ACE_OS_HAS_DLL to 1, this should be done more - specific in the makefiles - -Sat Jan 4 18:46:19 2003 Steve Huston - - * ace/config-aix5.1.h: Add a #define ACE_AIX_VERS 501 if ACE_AIX_VERS - isn't already defined. Helps to build with Visual Age C++ incremental - mode. Support for incremental mode is going away after ACE 5.3, but - this crutch can be used for now. - - * ace/Makefile.ace: Remove SOCK_Dgram_Mcast_T from TEMPLATE_FILES. See - Tue Jun 25 23:22:09 UTC 2002 Craig Rodrigues - - * ace/ace.icc: Corrected the list of source files to build ACE with. - In addition to updating the source list, if building with Visual - Age C++ 5, add the TEMPLATE_FILES to the sources that get compiled. - Visual Age C++ 5 incremental needs to see them all. - - * examples/C++NPv1/Makefile: Add .NOTPARALLEL since some of the - sub-makes share object files and they can get confused. - - * tests/makeicc.pl: Add additional template-getting stuff for - Visual Age C++ 5. - - * tests/ARGV_Test.icc: - * tests/Aio_Platform_Test.icc: - * tests/Arg_Shifter_Test.icc: - * tests/Atomic_Op_Test.icc: - * tests/Auto_IncDec_Test.icc: - * tests/Barrier_Test.icc: - * tests/Basic_Types_Test.icc: - * tests/Bound_Ptr_Test.icc: - * tests/Buffer_Stream_Test.icc: - * tests/CDR_Array_Test.icc: - * tests/CDR_File_Test.icc: - * tests/CDR_Test.icc: - * tests/Cache_Map_Manager_Test.icc: - * tests/Cached_Accept_Conn_Test.icc: - * tests/Cached_Allocator_Test.icc: - * tests/Cached_Conn_Test.icc: - * tests/Capabilities_Test.icc: - * tests/Codecs_Test.icc: - * tests/Collection_Test.icc: - * tests/Config_Test.icc: - * tests/Conn_Test.icc: - * tests/DLL_Test.icc: - * tests/DLL_Test_Impl.icc: - * tests/DLList_Test.icc: - * tests/Date_Time_Test.icc: - * tests/Dev_Poll_Reactor_Test.icc: - * tests/Dirent_Test.icc: - * tests/Dynamic_Priority_Test.icc: - * tests/Enum_Interfaces_Test.icc: - * tests/Env_Value_Test.icc: - * tests/FIFO_Test.icc: - * tests/FlReactor_Test.icc: - * tests/Framework_Component_DLL.icc: - * tests/Framework_Component_Test.icc: - * tests/Future_Set_Test.icc: - * tests/Future_Test.icc: - * tests/Get_Opt_Test.icc: - * tests/Handle_Set_Test.icc: - * tests/Hash_Map_Bucket_Iterator_Test.icc: - * tests/Hash_Map_Manager_Test.icc: - * tests/High_Res_Timer_Test.icc: - * tests/INET_Addr_Test.icc: - * tests/IOStream_Test.icc: - * tests/Lazy_Map_Manager_Test.icc: - * tests/Log_Msg_Test.icc: - * tests/Logging_Strategy_Test.icc: - * tests/MEM_Stream_Test.icc: - * tests/MM_Shared_Memory_Test.icc: - * tests/MT_Reactor_Timer_Test.icc: - * tests/MT_Reactor_Upcall_Test.icc: - * tests/MT_SOCK_Test.icc: - * tests/Malloc_Test.icc: - * tests/Map_Manager_Test.icc: - * tests/Map_Test.icc: - * tests/Max_Default_Port_Test.icc: - * tests/Mem_Map_Test.icc: - * tests/Message_Block_Test.icc: - * tests/Message_Queue_Notifications_Test.icc: - * tests/Message_Queue_Test.icc: - * tests/Message_Queue_Test_Ex.icc: - * tests/Multicast_Test.icc: - * tests/Naming_Test.icc: - * tests/New_Fail_Test.icc: - * tests/Notify_Performance_Test.icc: - * tests/OS_Test.icc: - * tests/Object_Manager_Test.icc: - * tests/Obstack_Test.icc: - * tests/OrdMultiSet_Test.icc: - * tests/Pipe_Test.icc: - * tests/Priority_Buffer_Test.icc: - * tests/Priority_Reactor_Test.icc: - * tests/Priority_Task_Test.icc: - * tests/Proactor_Scatter_Gather_Test.icc: - * tests/Proactor_Test.icc: - * tests/Proactor_Timer_Test.icc: - * tests/Process_Manager_Test.icc: - * tests/Process_Mutex_Test.icc: - * tests/Process_Strategy_Test.icc: - * tests/RB_Tree_Test.icc: - * tests/Reactor_Dispatch_Order_Test.icc: - * tests/Reactor_Exceptions_Test.icc: - * tests/Reactor_Notify_Test.icc: - * tests/Reactor_Performance_Test.icc: - * tests/Reactor_Timer_Test.icc: - * tests/Reactors_Test.icc: - * tests/Reader_Writer_Test.icc: - * tests/Recursive_Condition_Test.icc: - * tests/Recursive_Mutex_Test.icc: - * tests/Refcounted_Auto_Ptr_Test.icc: - * tests/Reverse_Lock_Test.icc: - * tests/SOCK_Connector_Test.icc: - * tests/SOCK_Send_Recv_Test.icc: - * tests/SOCK_Test.icc: - * tests/SPIPE_Test.icc: - * tests/SString_Test.icc: - * tests/SV_Shared_Memory_Test.icc: - * tests/Semaphore_Test.icc: - * tests/Service_Config_DLL.icc: - * tests/Service_Config_Test.icc: - * tests/Signal_Test.icc: - * tests/Sigset_Ops_Test.icc: - * tests/Simple_Message_Block_Test.icc: - * tests/Svc_Handler_Test.icc: - * tests/TP_Reactor_Test.icc: - * tests/TSS_Test.icc: - * tests/Task_Test.icc: - * tests/Thread_Manager_Test.icc: - * tests/Thread_Mutex_Test.icc: - * tests/Thread_Pool_Reactor_Resume_Test.icc: - * tests/Thread_Pool_Reactor_Test.icc: - * tests/Thread_Pool_Test.icc: - * tests/Time_Service_Test.icc: - * tests/Time_Value_Test.icc: - * tests/Timeprobe_Test.icc: - * tests/Timer_Queue_Test.icc: - * tests/TkReactor_Test.icc: - * tests/Token_Strategy_Test.icc: - * tests/Tokens_Test.icc: - * tests/UPIPE_SAP_Test.icc: - * tests/Upgradable_RW_Test.icc: - * tests/Vector_Test.icc: - * tests/XtReactor_Test.icc: Mostly updated to build with Visual Age - C++ 5 in incremental mode. Most of the tests that use templates - don't build. They require explicitly including the needed template - source files names in the .icc file. I don't have time to add them - all now - if anyone uses this compiler, please contact me. No wonder - IBM ditched this piece of junk. - -Fri Jan 3 17:58:21 2003 Steve Huston - - * ace/SSL/SSL_Context.cpp: - * netsvcs/lib/Name_Handler.cpp: - * netsvcs/lib/Server_Logging_Handler.cpp: Add __hpux to condition - where template members are explicitly instantiated. Also see: - Tue Dec 3 20:47:39 2002 Steve Huston - -Fri Jan 3 17:45:29 2003 Steve Huston - - * include/makeinclude/platform_hpux_gcc.GNU: Use HP's /usr/bin/ar - instead of GNU ar (which may be picked up first in PATH). GNU ar - crashes - missing libfl.sl. - - * performance-tests/Misc/test_singleton.cpp: Add __hpux to conditions - for explicitly instantiating ACE_Singleton::singleton_. - -Fri Jan 3 07:49:09 2003 Chad Elliott - - * bin/aix_shr: - - Changed the name of the AIX template instantiation macro and - commented on why it's needed. - -Thu Jan 2 17:44:29 2003 Balachandran Natarajan - - * ace/config-cygwin32-common.h: Set the custom export - macro's. These will be used when building dynamically with the - cygwin compiler. - - * bin/MakeProjectCreator/templates/gnu.mpd: Generate dllflags and - libflags into the GNU makefiles. These are important for the - Cygwin/MingW and Kylix compiler. - -Thu Jan 2 16:11:38 2003 Balachandran Natarajan - - * ace/config-freebsd.h: Fix use of macros for FreeBSD 4.6: - ACE_LACKS_RWLOCK_T, ACE_LACKS_READDIR_R, ACE_LACKS_SETSCHED, - ACE_LACKS_PTHREAD_THR_SIGSETMASK. Do not define SCHED_RR, - SCHED_IO, SCHED_FIFO, SCHED_OTHER for FreeBSD >= 4.0, since they - are defined in sched.h. Thanks to Craig Rodrigues for providng - the patch. - -Thu Jan 2 13:33:01 2003 Chad Elliott - - * ace/Refcounted_Auto_Ptr.i: - - Added #include of ace/Log_Msg.h for ACE_ASSERT. - - * bin/aix_shr: - - Added -DTAO_INSTANTIATING_TEMPLATES to the link command line. - -Thu Jan 2 12:38:55 2003 Johnny Willemsen - - * ace/Makefile.ace: Set the dllflags in Makefile. This makes it - possible to do __declspec (dllexport) for the symbols in the - dll. This is needed for the Cygwin/MingW and Kylix compiler. - - Thid change takes care of the static and dynamic library cases. - -Thu Jan 2 08:57:26 2003 Johnny Willemsen - - * include/makeinclude/platform_cygwin32.GNU: Add - --enable-auto-import to the linker flags. This will result in - the linker doing auto-import without giving warnings about - it. - -Wed Jan 1 14:26:09 2003 Balachandran Natarajan - - * bin/topinfo_stats.sh: Forgot that we run this scripts in cron - environment. Set the path and other details that would help to - ease things. - diff --git a/ACE/ChangeLogs/ChangeLog-03b b/ACE/ChangeLogs/ChangeLog-03b deleted file mode 100644 index 311de7bdba4..00000000000 --- a/ACE/ChangeLogs/ChangeLog-03b +++ /dev/null @@ -1,6184 +0,0 @@ -Mon Jun 16 11:13:22 2003 Chris Cleeland - - * ACE version 5.3.3 released. - -Fri Jun 13 13:13:02 2003 Balachandran Natarajan - - * bin/make_release: Remeved the generation of a README file in - TAO/orbsvcs. - -Fri Jun 13 06:02:32 2003 Balachandran Natarajan - - * ace/Template_Instantiations.cpp: Removed the explicit template - instantiations introduced by this change "Thu Jun 12 15:20:37 - 2003 Balachandran Natarajan ". This - botches up SunOS53 build. - - * ace/Containers_Instantiations.cpp: A new file where we have - moved the instantiations. - - Thanks t Chris Cleeland for alerting us on this. - -Thu Jun 12 15:20:37 2003 Balachandran Natarajan - - * ace/Template_Instantiations.cpp: This file now contains some - useful template definitions that would be used by ACE+TAO and - its applications. We have started by doing - ACE_Unbounded_Queue. In future we will add other basic - types on a case by case basis. - - * ace/Stats.cpp: Removed the template instantiations of - ACE_Unbounded_Queue since it has now been moved to another - file. - - * ace/Makefile.ace: Compile the file Template_Instantiations.cpp - in normal builds. - - * ace/INET_Addr.cpp: In get_port_number_from_name () set the port - number to 0 for VxWorks. - - Thanks to Rob Andzik for providing these - patches to get ACE+TAO compiling on VxWorks 5.5. - -Wed Jun 11 16:27:41 2003 Steve Huston - - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: Fixed compile error - arising from: Wed Jun 11 07:28:57 2003 Balachandran Natarajan - -Wed Jun 11 07:28:57 2003 Balachandran Natarajan - - * ace/config-lynxos.h: - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: Applied - patches from Olli Savia to get the C++NPv examples - compiling on pre-LynxOS 3.0.1 with gcc 2.7-97r1. - -Tue Jun 10 12:50:16 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Only read in a base project if it hasn't been read for the current - project. - -Tue Jun 10 11:35:29 2003 Chad Elliott - - * bin/create_ace_build: - - Fixed a bug in the message printed about the config.h and - platform_macros.GNU. - -Tue Jun 10 11:09:12 2003 Chad Elliott - - * bin/PerlACE/Process.pm: - - Added a delay_factor() function that could be used to dynamically - determine the delay factor for the test scripts. Some - coordination is required to ensure that the delay factor and the - times used in run_test.pl scripts work together. - - * bin/PerlACE/Run_Test.pm: - - Added code to support running tests using the cygwin perl. - - * bin/create_ace_build: - - Added windows support by using hard links (only with MSWin32 - version of perl). - -Mon Jun 9 18:59:51 2003 Balachandran Natarajan - - * THANKS: Added Gan Deng to the hall of fame. - -Mon Jun 9 13:16:38 2003 Balachandran Natarajan - - * bin/performance_stats.sh: The sequence<> latency tests will also - be monitored on a daily basis. - -Mon Jun 9 08:27:12 UTC 2003 Johnny Willemsen - - * ace/Makefile.ace: - Added NT_Service. Thanks to Wolfgang Schroeder - for reporting this. - -Sun Jun 8 22:36:32 2003 Balachandran Natarajan - - * THANKS: Added Andrew Voumard to the hall of fame. - -Sun Jun 8 17:55:18 UTC 2003 Don Hinton - - * bin/g++_metrics.sh: - Fixed a typo that caused the script to fail. - -Sun Jun 8 10:52:23 2003 Nanbor Wang - - * bin/PerlACE/Process.pm: - * bin/PerlACE/Process_Win32.pm: - * bin/PerlACE/Process_Unix.pm: Moved the Normalize_Executable_Name - method to platform specific implementation files. The original - implementation in Process.pm was Win32 specific. - -Sat Jun 7 11:12:16 2003 Douglas C. Schmidt - - * performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.h: Added a - #include for "ace/Atomic_Op.h" to solve a compilation problem. - Thanks to Nick Kukuczka for reporting - this. - -Fri Jun 6 09:31:21 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug introduced by yesterdays optimization. - Added code to detect cyclic inheritance. - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Added more optimizations. - -Fri Jun 6 06:37:33 UTC 2003 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Set ACE_SHLIB instead of ACELIB and set it before the include of - wrapper_macros.GNU - - * ACEXML/apps/svcconf/Makefile.ACEXML_XML_Svc_Conf_Parser: - * ACEXML/common/Makefile.ACEXML: - * ACEXML/examples/SAXPrint/Makefile.SAXPrint: - * ACEXML/parser/parser/Makefile.ACEXML_Parser: - * ACEXML/tests/Makefile.ContentHandler_Test: - * ACEXML/tests/Makefile.HttpCharStream_Test: - * ACEXML/tests/Makefile.NamespaceSupport_Test: - * ACEXML/tests/Makefile.Transcoder_Test: - Regenerated these makefiles based on the change above. This fixes the - Kylix/Cygwin/MinGW link errors. - - * ACEXML/common/Attributes_Def_Builder.cpp - * ACEXML/common/Element_Def_Builder.cpp - Added explicit template instantiations in case the ACE autoptr - is used. This fixes unresolved externals with VxWorks 5.5 - -Fri Jun 6 06:12:33 UTC 2003 Johnny Willemsen - - * etc/tao_rtevent.doxygen: - When generating the RTEvent documentation, alse parse the - ECG_*.{h,i,cpp} files. - -Thu Jun 5 14:03:54 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Modified the code to increase performance. These changes decrease - generation time for the ACE_wrappers tree by up to 20%. - -Thu Jun 5 11:07:04 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a bug where mwc.pl could go into an infinite loop depending - on the project dependencies and project ordering. - -Thu Jun 5 09:05:21 2003 Chad Elliott - - * bin/MakeProjectCreator/config/global.features: - - Fixed a bad comment. - -Thu Jun 5 08:20:23 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added a 'macros' keyword that allows users to pass generic macros - to the compiler. - -Thu Jun 5 07:05:42 2003 Chad Elliott - - * bin/clean_sems.sh: - - Update this script to work with IRIX, Tru64 and HP-UX and possibly - others. - -Thu Jun 5 03:45:46 UTC 2003 Don Hinton - - * include/makeinclude/wrapper_macros.GNU: - Set shared_libs_only or static_libs_only if appropriate, - even if only shared_libs and static_libs were passed, since - many Makefiles use these variables to determine what gets built. - - * netsvcs/clients/Naming/Client/Makefile: - Fixed problem that prevented static libraries from being built - by adding a LIB variable and moving these declarations to before - including wrapper_macros.GNU. Thanks to Olli Savia - for reporting the problem. - -Wed Jun 4 19:42:33 UTC 2003 Don Hinton - - * bin/g++_metrics.sh: - Use /usr/bin/time to get better metrics and output the time in - one step. Also include %x, the return value from g++ so that - users can tell whether not to use the time, since it will always - be output even for failures. - - * bin/generate_compile_stats.sh: - Added ability to gather footprint metrics for static_libs_only - builds. Also, cleaned up the code a bit and added lots of comments. - -Wed Jun 4 13:47:45 2003 Balachandran Natarajan - - * THANKS: Added Jason Cohen to the hall of fame. - -Wed Jun 4 12:43:41 2003 Balachandran Natarajan - - * ace/CDR_Stream.cpp: Removed a duplicate semicolon. Thanks to Rob - Andzik for catching this. - -Wed Jun 4 10:30:35 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - If generating projects on windows, check for case insensitive - relative paths. - -Wed Jun 04 14:11:19 UTC 2003 Johnny Willemsen - - * ace/OS_Dirent.cpp: - Changes definitions of INVALID_FILE_ATTRIBUTES and - INVALID_SET_FILE_POINTER from (-1) to ((DWORD)(-1)) to fix BCB5 - warnings. - -Wed Jun 04 07:06:12 UTC 2003 Johnny Willemsen - - * ace/DLL_Manager.cpp: - Added explicit template instantiations in case the ACE autoptr - is used. This fixes unresolved externals with VxWorks 5.5 - - * ace/Handle_Set.h: - * ace/Local_Name_Space.h: - * ace/Local_Tokens.h: - * ace/Name_Proxy.h: - * ace/Name_Request_Reply.h: - * ace/Naming_Context.h: - * ace/Object_Manager.h: - * ace/SOCK_Dgram_Mcast.h: - * ace/Thread.h: - * ace/WFMO_Reactor.h: - Doxygen improvements - - * ace/Message_Block.cpp: - * ace/Message_Block.i: - Changed u_long to unsigned long to match header file. This fixes - doxygen warnings - - * ace/String_Base.h: - * ace/String_Base.i: - Changed constructor argument alloc to the_allocator in doxygen - tags and in implementation. - - * ace/config-doxygen.h: - Added TAO_HAS_SCIOP to generate SCIP documentation, added - ACE_HAS_USING_KEYWORD to improve ACE documentation - -Tue Jun 03 07:51:20 2003 Simon McQueen - - * ACE version 5.3.2 released. - -Mon Jun 2 11:38:13 2003 Balachandran Natarajan - - * bin/bootstrap (Usage): Commented out paths on Sun boxes for - aclocal. - -Mon Jun 2 11:24:10 2003 Balachandran Natarajan - - * bin/generate_rel_manpages: Added some debugging - statements. Looks like this script has a quite a bit of code - duplicated from make_release scripts. We will fix this for the - next beta. - -Mon Jun 2 00:10:14 2003 Balachandran Natarajan - - * bin/make_release:Fixed some apparent bugs. Left some debugging - statements for future refernces. - - * Makefile: Removed acconfig.h since it is not required. Thanks to - Ossama for proving the information. - -Sun Jun 01 20:02:52 2003 Balachandran Natarajan - - * bin/make_release: Fixed a typo and added comments. - -Sun Jun 1 19:05:41 2003 Balachandran Natarajan - - * bin/make_release: The following changes were made to the release - scripts. - - - CIAO distribution has been integrated - - Generation of doxygen documentation has been moved out. - - Added checks to see whether the user of the script has got - write permissions in the output directory - - Removed the option to create releases with no zipped - libraries. - - Introduced the need for another environment variable MAILID to - provide the mail id of the person cutting the beta. - -Sun Jun 01 18:02:24 2003 Balachandran Natarajan - - * bin/generate_rel_manpages: A new script for man page - generation. This is being moved out of the release scripts for a - number of reasons. A couple of them are - - - They take a long time and beta/release process has to wait for - completion of documentation generation. - - - Any problems during documentation generation like machine - reboot or machine hang or whatever you can think off adversely - affects the beta process. The build-czar has to cleanup - numerous files and start the process all over again. - - This will help to decouple the beta cutting process and the - documentation generation process. - - * Makefile: A new target that can be used to kick of the - documentation generation. - -Fri May 30 17:15:57 2003 Nanbor Wang - - * ace/NT_Service.cpp (insert): Fixed a compilation eror. - -Fri May 30 15:54:41 2003 Balachandran Natarajan - - * bin/MakeProjectCreator/config/ciaoversion.mpb: New file having - the version information. - -Fri May 30 15:29:48 2003 Balachandran Natarajan - - * Makefile (APPLY_NEW_TAG): New tags for CIAO. - -Fri May 30 14:46:00 2003 Douglas C. Schmidt - - * examples/Threads/auto_event.cpp (writer): Replaced "wait" with "signal" - in a comment (this was a copy and past error!). Thanks to Kobi for - reporting this. - - * ace/Containers_T.h (class ACE_Ordered_MultiSet): - * ace/String_Base.h (ACE_String_Base): - * ace/Array_Base.h: Changed all uses of "ACE_Allocator *allocator" to - "ACE_Allocator *the_allocator" to prevent problems when ACE is - used with some versions of STL. Thanks to Kobi Arazi - for reporting this. - - * ace/NT_Service.cpp: Fixed some problems so that the - ACE_NT_Service::insert() methods will self-register correctly if - the service executable is located on a path with spaces. Thanks - to Theo Landman for reporting this. - -Fri May 30 13:52:49 2003 Balachandran Natarajan - - * Makefile: Added a new target 'releaseciao' to include CIAO in - our distribution. Since CIAO needs seperate versioning this new - target is needed. Further the 'releaseall' will now call - releaseall on the Makefile in the TAO directory. - -Thu May 29 22:18:00 2003 Krishnakumar B - - * bin/MakeProjectCreator/config/zziplib.mpt (zzip): - - New template for compiling ACEXML with and without ZZIPLIB. - An environment variable ZZIP_ROOT needs to be set to point to - the place where the ZZIPLIB sources are installed. Specifically, - $ZZIP_ROOT/include should contain the header files, and - $ZZIP_ROOT/lib should contain the libraries. Then MPC should be - run as follows - - $(ACE_ROOT)/bin/mwc.pl -value_template zzip=1 - - in $(ACE_ROOT)/ACEXML to generate your favourite build tools. - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/bordll.mpt: - * bin/MakeProjectCreator/templates/borexe.mpt: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/gnudll.mpt: - * bin/MakeProjectCreator/templates/gnuexe.mpt: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/va4iccdll.mpt: - * bin/MakeProjectCreator/templates/va4iccdllexe.mpt: - * bin/MakeProjectCreator/templates/va4icclib.mpt: - * bin/MakeProjectCreator/templates/va4icclibexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Changes to existing files to support ZZIPLIB. - -Fri May 30 01:43:12 UTC 2003 Don Hinton - - * include/makeinclude/wrapper_macros.GNU: - Added ifdef's to allow users to pass versioned_so=0 to - make in order to turn off library versioning. This is - useful for those who use our makefiles to build their - own projects, but don't want to version their libraries - with the ACE version number. Thanks to Jeff Kelley - for reporting the problem and - helping to nail down the fix. - - * THANKS: - Added Jeff Kelley to the hall of fame. - -Fri May 30 00:24:05 UTC 2003 Don Hinton - - * tests/Makefile.am: - Reverse link order of -lTest_Output and -lACE so that -lACE - appears after -lTest_Output. This will clear up link problems - on platforms like HPUX where the order matters. - - * tests/Makefile.tests: - Changed LIB to LDLIB, which solves the same problem. Thanks to - Steve Huston for reporting the problem. - -Thu May 29 11:08:44 2003 Simon McQueen - - * tests/RMCast/RMCast_Fragment_Test.dsp: - * tests/RMCast/RMCast_Membership_Test.dsp: - * tests/RMCast/RMCast_Reassembly_Test.dsp: - * tests/RMCast/RMCast_Reordering_Test.dsp: - * tests/RMCast/RMCast_Retransmission_Test.dsp: - * tests/RMCast/RMCast_UDP_Best_Effort_Test.dsp: - - Fixed incorrect library path. - -Wed May 28 15:18:47 2003 Simon McQueen - - * tests/Proactor_Test.dsp: - - Added release configuration. - - * tests/Test_Output.dsp: - - Removed post build step from release and static configurations. - No longer needed. - -Wed May 28 11:07:12 UTC 2003 Johnny Willemsen - - * THANKS: Added Branko Mijic to the hall of fame. - -Mon May 26 21:14:54 2003 Nanbor Wang - - * bin/PerlACE/Process.pm: Added a new "static" function - "Normalize_Executable_Name" so that we can figure out the - correct location of a "release" build executables. - -Mon May 26 18:23:41 2003 Steve Huston - - * ace/MEM_Acceptor.cpp (accept): Replace a C-style cast with - ACE_reinterpret_cast to silence a warning from HP aC++. - - * ace/config-hpux-11.00.h: Removed define for - ACE_HAS_TIUSER_H_BROKEN_EXTERN_C - it's not broken anymore in - 11.00 relatively recent updates. - - * ace/OS.h: Changed some u_int and u_long to unsigned int and - unsigned long, respectively to compile correctly even if - system includes are done out of order. - - * ace/OS_TLI.h: Fixed comment on #else of #if !defined (ACE_HAS_TLI). - - * include/makeinclude/platform_hpux_aCC.GNU: Add -D_HPUX_SOURCE to - CCFLAGS. ACE uses things that are set up by using this macro, but - if system includes are done before ace/config.h, it isn't picked - up in time. Fixes compile errors in performance-tests/SCTP which - were triggered by including system headers before ACE headers. - Although the general rule is to not do that, it's overly - restrictive in practice and we should try to remove that - restriction when it comes up. - (g++ sets this macro by default) - -Mon May 26 12:03:33 2003 Steve Huston - - * tests/tests.mpc: Added ACE_Init_Test. The WinXP-IA64 test was - picking up an old one since it was never regenerated. - -Mon May 26 10:43:21 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - Cleanup of setting and usage of TEMPLATES_FLAG. Also do this after - the include of the g++_common file because it is set in that - file. - -Sun May 25 14:53:33 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32.h: - Cygwin has fcntl but this is not implemented, but has dll support. - - * ace/OS.i: - Removed not needed cygwin specific include. - -Sun May 25 09:27:43 2003 Douglas C. Schmidt - - * ace/Malloc_T.i (free): Added a check for a NULL ptr to prevent - system crashes. Thanks to Leonid Kvetnyi for - reporting this. - -Sun May 25 10:06:12 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32.h: - Cygwin has si_addr and select.h - -Sun May 25 06:04:47 UTC 2003 Don Hinton - - * ace/OS_Dirent.cpp: - * ace/ace_wchar.h: - Added defines for ACE_TEXT_File_Attributes for both - ACE_USES_WCHAR and !ACE_USES_WCHAR and changed the call in - OS_Dirent.cpp to use the new macro. - -Sat May 24 17:21:40 UTC 2003 Don Hinton - - * examples/Service_Configurator/Misc/Makefile: - Only compile if shared_libs is defined. Although the Service - Configurator will work with static only libraries, this example - will not. - - * examples/Timer_Queue/Makefile.TQTD: - * netsvcs/clients/Naming/Dump_Restore/Makefile.Dump_Restore: - Added LIB and VLIB so that static_libs and static_libs_only will - build and clean the lib*.a libraries. - -Sat May 24 15:19:01 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32.h: - Removed several ACE_LACKS defines, cygwin supports a lot more - than we think. - -Sat May 24 14:37:00 UTC 2003 Don Hinton - - * ace/OS_Dirent.cpp: - Added definitions of INVALID_FILE_ATTRIBUTES and - INVALID_SET_FILE_POINTER if missing on ACE_WIN32. These - were added after VC6 shipped and are provided in subsequent - headers, including the SDK's. They are defined here for those - us who don't have the new headers. - -Sat May 24 14:10:33 UTC 2003 Johnny Willemsen - - * ace/Log_Msg.cpp: - Removed cygwin specific code, isn't needed anymore - - * ace/config-cygwin32.h: - Cygwin supports mmap and msync. - -Fri May 23 22:20:14 2003 Balachandran Natarajan - - * Kokyu/Kokyu.cpp: Fixed fuzz errors. - -Fri May 23 09:13:38 2003 Douglas C. Schmidt - - * ace/OS_Dirent.cpp (opendir_emulation): Added a check to see - if the file is infact a directory. Thanks to Udo Berninger - for reporting this fix. - -Fri May 23 10:46:50 2003 Ossama Othman - - From Carsten Madsen - * ace/TTY_IO.h (Serial_Params): - - Added new "readmincharacters" member that denotes the minimum - number of characters for a non-canonical read. - - * ace/TTY_IO.cpp (control): - - Take into account the new Serial_Params::readmincharacters value - so that serial line timeout configuration is no longer as - limited as it was prior to this change. [Bug 1388] - -Fri May 23 12:20:54 2003 Balachandran Natarajan - - * THANKS: Added Vincent Korkos to the hall of fame. - -Fri May 23 11:43:10 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: Added the OBV tests to our daily - builds. This is going to be one of the *most* important features - for CIAO and it is really sad that it is not being tested at - all! Ran into this when I was running some smoke tests and found - a surprise. No prizes for getting it right! One of the tests - failed :(! - -Fri May 23 10:38:13 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - If idlgendir is used, generate extra information in order to clean - up the generated files. Thanks to Andrey Nechypurenko - for reporting this. - -Fri May 23 14:46:33 UTC 2003 Johnny Willemsen - - * ace/OS.i (ioctl): - Cygwin has ioctl, so removed Cygwin specific that just returned - a notsup. - -Fri May 23 09:38:55 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyGenerator.pm: - - Use case insensitve exclusion and remove double slashes and back - slashes. - -Fri May 23 09:18:32 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/nmake.mpd: - - Modify the depend target to call perl and pass it the depgen.pl - script instead of directly executing depgen.pl. - -Fri May 23 08:10:23 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/DependencyWriter.pm: - * bin/DependencyGenerator/DependencyWriterFactory.pm: - * bin/DependencyGenerator/GNUDependencyWriter.pm: - * bin/DependencyGenerator/GNUObjectGenerator.pm: - * bin/DependencyGenerator/NMakeDependencyWriter.pm: - * bin/DependencyGenerator/NMakeObjectGenerator.pm: - * bin/DependencyGenerator/ObjectGenerator.pm: - * bin/DependencyGenerator/ObjectGeneratorFactory.pm: - * bin/DependencyGenerator/Preprocessor.pm: - * bin/depgen.pl: - - Added my generic dependency generator that will work with both GNU - Makefiles and NMakefiles. - -Fri May 23 11:41:01 UTC 2003 Johnny Willemsen - - * ace/Sock_Connect.cpp: - Corrected debug statements that where wrong or incomplete. - -Fri May 23 11:26:32 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32.h: - Improved because cygwin doesn't support pthreads completely by - setting some ACE_LACKS defines. - -Fri May 23 10:01:01 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32.h: - Set the correct defines when building with threading enabled. - -Fri May 23 08:08:12 UTC 2003 Johnny Willemsen - - * ace/OS.i (sigwait): - Cygwin has sigwait but it is not implemented, so for cygwin - make sigwait a notsup. - -Fri May 23 03:04:01 UTC 2003 Don Hinton - - * ace/Configuration.h: - Fixed many instances of "t_name" that had either never been set - or had been changed back to "name". This is needed to support - default or unnamed values in the Registry or ini files. This - fixes several errors on Windows, especially in WCHAR builds. - -Fri May 23 02:44:23 UTC 2003 Don Hinton - - * ace/config-win32-common.h: - Added ACE_HAS_VSWPRINTF define. This should clear up some - the tests/Malloc_Test failures for WCHAR builds. - -Thu May 22 10:53:43 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Make sure to apply the relative definitions to the flag override - values. - -Thu May 22 10:30:31 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - - If an mwc file contained a relative path to an mpc file or - directory, these workspace creators would generate invalid - workspaces. This situation is accounted for now. - -Thu May 22 15:29:02 UTC 2003 Don Hinton - - * ace/TP_Reactor.cpp: - Fixed typo on Windows. - -Thu May 22 15:02:04 UTC 2003 Don Hinton - - * tests/Signal_Test.cpp: - Added include of ace/ACE.h to fix compile problem on AIX. - -Thu May 22 13:16:11 UTC 2003 Don Hinton - - * tests/Makefile.tests: - Readded Multihomed_INET_Addr_Test that was mistakenly left out - when the makefiles were reorganized. - - * tests/Proactor_Timer_Test.dsp: - * tests/Service_Config_Tests.dsp: - * tests/Test_Output.dsp: - Fixed library path problems in Win32 Release builds. Thanks to - Simon McQueen for reporting this. - -Thu May 22 12:52:59 UTC 2003 Johnny Willemsen - - * ace/config-win32-mingw.h: - Added define ACE_LACKS_NATIVE_STRPTIME - -Thu May 22 07:35:23 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/USAGE: - - Updated the documentation on the new feature files and the - -feature_file option. - - * bin/MakeProjectCreator/config/global.features: - - This is the global feature file. It contains the default feature - settings that should be acceptable for most situations. See - comments in this file for more information. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/FeatureParser.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Support has been added for the new feature files. - -Thu May 22 07:28:29 2003 Balachandran Natarajan - - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp: Reverted changes from this "Thu May 22 - 00:16:11 UTC 2003 Don Hinton ". The - right fix for compilers that emit warnings when trying to - override only a few methods from a set of overloaded methods in - the derived class, is to completely declare all the other - overloaded methods. In the definition of the methods that we - dont plan to override we should simply call the base class - implementation. - -Thu May 22 11:29:54 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32.h: - * ace/config-cygwin32-common.h: - Moved the contents of the cygwin32-common file to the cygwin32 - file. It doesn't make sense to have two files for cygwin. - -Thu May 22 07:51:12 UTC 2003 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Added defines ACE_HAS_STRPTIME and ACE_LACKS_NATIVE_STRPTIME - - * ace/config-win32-mingw.h: - Added define ACE_HAS_STRPTIME - - * ace/Token_Collection.h: - * ace/Token_Invariants.h: - * ace/Token_Manager.h: - Doxygen documentation fixes. - -Wed May 21 19:55:54 2003 Nanbor Wang - - Thanks to Tongzhe Cui for motivating the - following changes. - - * ace/MEM_Acceptor.h: - * ace/MEM_Acceptor.i (init_buffer_size): Added this new helper - function to set the initial buffer size of the newly created - ACE_MEM_Stream the acceptor creates subsequently. - - * ace/MEM_Connector.h: - * ace/MEM_Connector.i: - * ace/MEM_Acceptor.h: - * ace/MEM_Acceptor.i: Marked the malloc_options accessor function - as deprecated. - - * tests/MEM_Stream_Test.cpp (test_concurrent): Changed to use the - new init_buffer_size method to set the buffer size. - -Thu May 22 00:16:11 UTC 2003 Don Hinton - - * ace/os_include/math.h: - Fixed a FUZZ error by disabling it in this file. - - * ace/TP_Reactor.h: - Added using ACE_Select_Reactor::register_handler; so the virtual - methods that weren't reimplemented wouldn't be hidden. - - * tests/DLList_Test.cpp: - Added missing STRLIST_REVERSE_ITERATOR typedef and fixed a few - function calls that were missing an argument. - -Wed May 21 16:05:29 2003 Steve Huston - - * ace/Containers_T.i (ACE_DLList_Reverse_Iterator::next (T *&ptr)): - If the next() pointer is 0, don't dereference it. Thanks very much - to Ken Kane for this fix. - - * tests/DLList_Test.cpp: Added a run_reverse_iterate() test function - to hit the error case above. - - * THANKS: Added Ken Kane to the Hall of Fame. - -Wed May 21 21:46:19 UTC 2003 Don Hinton - - * tests/Main.cpp: - Include ace/ACE.h if ACE_HAS_WINCE is defined since it calls - ACE::init(). - - * tests/tests.mpc: - Added missing Main.cpp for Thread_Pool_Reactor_Test. - - * tests/RMCast/tests/mpc: - * tests/SSL/tests.mpc: - Added "libpaths += .." so they can find Test_Output.lib. - -Wed May 21 21:25:20 UTC 2003 Don Hinton - - * tests/Test_Output.cpp: - Add include of ace/Object_Manager.h and - ace/Framework_Component.h instead of ace/Singleton.h. This - fixes compile problems on AIX as well as reducing the number of - includes. - -Wed May 21 14:32:13 UTC 2003 Don Hinton - - * tests/Test_Output.dsp: - Removed post build step that cleaned up old versions of - Test_Output*.dll. - -Wed May 21 09:25:16 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Push escape_regex_special() back into Parser. - - * bin/MakeProjectCreator/modules/Driver.pm: - - Print out a relative path for files that are being processed. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - If generating a workspace per project, don't modify the workspace - name. - -Wed May 21 14:12:16 UTC 2003 Johnny Willemsen - - * ace/OS.h: - * ace/config-cygwin32-common.h: - * ace/README: - Removed define ACE_HAS_CYGWIN32_SOCKET_H because it is not used and - needed anymore. - -Wed May 21 02:49:10 UTC 2003 Don Hinton - - * tests/Makefile.am: - Added missing Main.cpp to several targets. Thanks to - Terletsky Oleg for reporting this - and supplying the patch. - -Tue May 20 18:56:03 UTC 2003 Don Hinton - - * tests/tests.mpc: - * tests/RMCast/tests.mpc: - * tests/SSL/tests.mpc: - Changed name of "Test Output" project to "Test_Output" and made - it a dependency of all the other test projects. Thanks to - Nanbor Wang for this suggestion. - -Tue May 20 12:53:59 2003 Balachandran Natarajan - - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp: Do not allow users to register signal - handlers with the TP_Reactor. The TP_Reactor does not support - signals properly and allowing this is simply confusing. We - now return a value of -1 if users try registering a signal handler - with the reactor. Thanks to Carsten Prescher - for pointing this out. - -Tue May 20 10:54:10 2003 Douglas C. Schmidt - - * tests/Proactor_Test.cpp (open): Changed IPPROTO_TCP to - ACE_IPPROTO_TCP. Thanks to David Ohlemacher - for motivating this. - -Tue May 20 01:50:35 UTC 2003 Don Hinton - - * tests/Test_Output.dsp: - Added a post compile step that deletes any Test_Output*dll's in - current directory. This will be removed once the autobuilds have - have a chance to run and clean up the old files. - - * tests/Test_Output.cpp: - Fixed a typo, and changed the close_singleton() method to delete - the instance_ directly and set it = 0; - -Tue May 20 01:50:35 UTC 2003 Don Hinton - - * ace/config-aix-4.x.h: - * ace/config-cygwin32-common.h: - * ace/config-freebsd.h: - * ace/config-irix5.2.h: - * ace/config-irix5.3-g++.h: - * ace/config-irix5.3-sgic++.h: - * ace/config-irix6.x-common.h: - * ace/config-linux-common.h: - * ace/config-lynxos.h: - * ace/config-m88k.h: - * ace/config-macosx.h: - * ace/config-netbsd.h: - * ace/config-openbsd.h: - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp.h: - * ace/config-sunos4-g++.h: - * ace/config-sunos4-lucid3.2.h: - * ace/config-sunos5.4-g++.h: - * ace/config-sunos5.4-sunc++-4.x.h: - * ace/config-sunos5.5.h: - * ace/config-tandem.h: - * ace/config-unixware-7.1.0.h: - * ace/config-win32-msvc.h: - Commented out ACE_HAS_ALLOCA. Even though these - compiler/platform combinations do have alloca(), it can be - dangerous. Users can uncomment it or define it in their own - config.h file if they want to use it. Please see ChangeLog - entry "Mon May 19 11:03:31 2003 Ossama Othman - " below for how to use it with autoconf. - -Tue May 20 01:10:42 UTC 2003 Don Hinton - - * ace/DLL_Manager.cpp (get_handle): - Always return handle on success. As coded, it only returned the - handle if the refcount was > 0 when become_owner was passed. - - Added additional debug statements when ACE::debug() is enabled. - - * tests/Makefile.Test_Output: - Correctly define TEST_OUTPUT_BUILD_DLL when building shared - library. - - * tests/test_config.h: - * tests/Test_Output.cpp: - Reverted Test_Output to a singleton, although not based on - ACE_Singleton. This keeps us from having to include - Singleton.h, which in turn includes OS.h. Thanks to Johnny - Willemsen for helping track this down and - suggesting the fix. - -Mon May 19 11:03:31 2003 Ossama Othman - - * configure.ac: - - Only detect alloca() support if explicitly enabled by the user. - - * bin/make_release: - - Reenabled bootstrapping of ACE+Autoconf support when creating - ACE beta/release kits. - - * m4/ace.m4 (ACE_CONFIGURATION_OPTIONS): - - Added "--enable-alloca" configure script option. alloca() - support will be disabled by default. - -Mon May 19 16:08:47 UTC 2003 Don Hinton - - * tests/CDR_Test.cpp: - * tests/MT_Reactor_Upcall_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/Reactor_Dispatch_Order_Test.cpp: - * tests/Time_Service_Test.cpp: - Added include of ace/ACE.h to fix compile problem on AIX. ACE.h - was being picked up in ace/String_Base.cpp that's only included - when ACE_TEMPLATES_REQUIRE_SOURCE is defined, which AIX doesn't. - - * tests/RB_Tree_Test.cpp: - Added include of ace/Synch.h to fix compile problem on AIX - similar to the above. - -Mon May 19 15:14:22 UTC 2003 Don Hinton - - * tests/Test_Output.dsp: - Changed output location for dll so that other projects can find it. - - * tests/DLL_Test_Impl.dsp: - * tests/Framework_Component_DLL.dsp: - * tests/Service_Config_DLL.dsp: - Removed dependency on Test_Output.dll which isn't needed and causes - build failures in the autobuilds since they don't honor the dependencies - in tests.dsw. - -Mon May 19 11:13:12 UTC 2003 Johnny Willemsen - - * tests/SSL/Makefile.bor: - * tests/RMCast/Makefile.bor: - Changed location of Test_Output lib - - * tests/Test_Output.bor: - Changed location to core_bindir, else we can't find the lib from - other makefiles. - - * tests/Makefile.bor: - Trigger makefile for Tests.bor and Test_Output.bor, this makes - it possible to make sure that Test_Output is build first - - * tests/Tests.bor: - Contents of the original Makefile.bor. This because it is not - possible to make sure that Test_Output is build first. - -Mon May 19 04:30:45 UTC 2003 Don Hinton - - * tests/*.icc: - Added Main.cpp to all executable projects. - - * tests/libTest_Output.icc: - * tests/tests.icp: - Added new file, libTest_Output.icc, and added it to tests.icp. - - * tests/vacpp_setup.icc: - Added Test_Output to platformLinkLibs. - -Mon May 19 03:12:23 UTC 2003 Don Hinton - - * tests/Makefile.am: - Added new Test_Output.la and Main.cpp to all *SOURCE variables. - -Sun May 18 20:00:58 UTC 2003 Don Hinton - - * tests/ACE_Init_Test.cpp: - Added include of ACE.h. - - * tests/test_config.h: - Added Test_Output_Export to randomize() declaration. - - * tests/tests.dws: - * tests/Test_Output.dsp: - Added new project file, Test_Output.dsp, and added it to tests.dsw. - - * tests/*.dsp: - Added Test_Output[*].lib and Main.cpp source to all projects (except dlls). - - * tests/RMCast/*.dsp: - Added Test_Output[d].lib to all project files. - -Sun May 18 19:18:45 UTC 2003 Don Hinton - - Merged up tests changes. - - Sun May 18 18:21:00 UTC 2003 Don Hinton - - * tests/tests.mpc: - Added Test_Output library and Main.cpp to all objects. - - * tests/RMCAST/Makefile.bor: - * tests/RMCAST/tests.mpc: - * tests/SSL/Makefile: - * tests/SSL/Makefile.bor: - * tests/SSL/tests.mpc: - Added Test_Output library to all objects. - - Sun May 18 17:32:29 UTC 2003 Don Hinton - - * tests/Makefile.bor: - * tests/Test_Output.bor: - Added new Borland Makefile, tests/Test_Output.bor and modified - Makefile.bor to call it and link Test_Output.lib for all objects - and add Main.obj to OBJFILES. - - * tests/test_config.h: - * tests/Test_Output_Export.h: - Added tests/Test_Output_Export.h and added Test_Output_Export to - Test_Output class declaration. - - Sun May 18 00:04:17 UTC 2003 Don Hinton - - Merged dre_030425 up to the main and rebranched to dre_test_01. - - Sat May 17 19:31:43 UTC 2003 Don Hinton - - * ace/Codecs.h: - * ace/Unbounded_Set.inl: - * ace/Unbounded_Set_Ex.inl: - Added include of ace/Global_Macros.h: - - * tests/Makefile: - * tests/Makefile.libs: - * tests/Makefile.tests: - * tests/Makefile.dirs: - Added new files, Makefile.libs, Makefile.tests, and - Makefile.dirs, and moved the contents of Makefile to these - files. This allows us to create a new libTest_Output that all - the tests depend on. - - * tests/test_config.h: - * tests/Test_Output.cpp: - Moved the Test_Output class impementation into it's own cpp so - it can be built into libTest_Output. This helps speed up - compilation by reducing dependencies and allowing the class to - be compiled a single time instead of once for each test. - - * tests/*.cpp: - * tests/Main.cpp: - Moved ACE_TMAIN to a new file, Main.cpp, and changed all main - and ACE_TMAIN instances to run_main. This helps obviate the - need to include OS.h, needed by ACE_TMAIN, in every test, thus - speeding up compilation and reducing dependencies. - - * tests/ACE_Test.cpp: - Only include ace/ACE.h when ACE_WIN32 is defined. - - * tests/Aio_Platform_Test.cpp: - Remove include of ace/Log_Msg.h. - - * tests/Basic_Types_Test.cpp: - Replace include of ace/OS.h with ace/config-all.h. - - * tests/Bound_Ptr_Test.cpp: - Remove includes of ace/ACE.h, ace/Synch.h, ace/Message_Queue.h, - and ace/Method_Request.h. - - * tests/CDR_Array_Test.cpp: - * tests/Codecs_Test.cpp: - * tests/Mem_Map_Test.cpp: - * tests/MM_Shared_Memory_Test.cpp: - * tests/MT_Reactor_Timer_Test.cpp: - * tests/Object_Manager_Test.cpp: - * tests/Token_Strategy_Test.cpp: - Add include of ACE.h. - - * tests/Env_Value_Test.cpp: - Don't pass envp[]. - - * tests/Get_Opt_Test.cpp: - Removed include of OS.h: - - * tests/Reverse_Lock_Test.cpp: - Added include of ace/Synch.h. - - * tests/Timeprobe_Test.cpp: - Added include of ace/Singleton.h. - - * tests/RMCast/Makefile: - Added -lTest_Output to LDLIBS. - - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Membership_Test.cpp: - Added include of ace/ACE.h. - -Fri May 16 11:15:53 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added a new keyword for custom definitions. If the file type - generated by the command doesn't belong to source, inline, header, - resource or documentation, then use generic_outputext. - -Thu May 15 09:32:01 2003 Douglas C. Schmidt - - * ace/Configuration_Import_Export.cpp (import_config): Fixed a memory - leak where the "data" buffer wasn't being deleted. Thanks to - Roland Meub for reporting this. - -Thu May 15 10:41:32 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - - Add a -r to the realclean target for custom generated files. The - generated files could be directories. - -Thu May 15 12:21:28 UTC 2003 Don Hinton - - * ace/SOCK_SEQPACK_Association.cpp: - Added missing explicit template instantiation for - ACE_Auto_Array_Ptr/ACE_Auto_Basic_Array_Ptr, needed - at least for SUNWspro_6.2. - -Thu May 15 07:08:39 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a couple of bugs with the custom build types. Generated - files were being selected due to a back regular expression match. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Only write out a new workspace if it is different than the - existing one or if one doesn't exist. - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Only output custom rules if the input file has corresponding - output files. - -Wed May 14 20:02:56 UTC 2003 Don Hinton - - * ace/config-all.h: - * ace/README: - Rolled back Wed May 14 14:52:40 UTC 2003 Don Hinton - . - -Wed May 14 14:09:56 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug with custom types when processing multiple mpc files - that use a custom type. The type definitions were not being - removed after processing. - -Wed May 14 13:52:37 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Always use gendir if it's defined not just if the output_option is - specified. The command may output to gendir without an - output_option. - -Wed May 14 11:11:31 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/nmake.mpd: - - Force the idl_stubs target to be processed before anything else. - In case an idl file is listed but not explicitly listed in the - source files, we still need to process the idl first. - -Wed May 14 14:52:40 UTC 2003 Don Hinton - - * ace/config-all.h: - * ace/README: - Added new macro, ACE_USES_ALLOCA. If it is not defined in the - user's config.h, then turn off ACE_HAS_ALLOCA by default. - -Tue May 13 09:39:13 2003 Douglas C. Schmidt - - * ace/OS.i (last_error): Fixed this method so that it assigns errno - to the error value. This fixes an inconsistency reported by - Damien Dufour . - -Tue May 13 16:59:00 2003 Simon McQueen - - * include/makeinclude/ace_flags.bor: - - Made TAO_PORTABLESERVER_CFLAGS and TAO_PORTABLESERVER_LIB into - the aggregation of themselves and TAO_VALUETYPE/TAO_IORINTERCEPTOR/ - TAO_ORT - CFLAGS and LIB respectively. Should fix link errors on - the static build. - -Tue May 13 09:04:18 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added support for dynamic workspace and project names based on the - default project name. Asterisks in the project or workspace name - are replaced by the default name. See the README for more - details. - -Tue May 13 07:47:09 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - If a value is an empty string or an array of empty strings, then - we will assume the value is undefined for <%if()%> statements. - -Mon May 12 19:27:54 2003 Nanbor Wang - - * ace/Thread_Manager.cpp (wait): Fixed an occasional assertion - failure during shutdown of our servers which seems be caused by - a double deletion of an item in the ACE_Thread_Manager - terminated_thr_list_ in ACE_Thread_Manager::wait (). - - The statement "item = this->terminated_thr_list_.delete_head ()" - is not protected by the mutex and can be access by - more than one thread modifying the terminated_thr_list_. - Extending the mutex protection scope fixed this problem. - Thanks to Bruce McIntosh for - suggesting the fix. [Bug 1505] - -Mon May 12 13:32:56 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Check for existence of output file before checking for the size. - -Mon May 12 13:23:27 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Convert dashes in project names to underscores. VC6 can't handle - project names with dashes. - -Mon May 12 16:35:16 2003 Simon McQueen - - * include/makeinclude/build_example.bor: - - Added missing libraries to fix static build link errors. - -Mon May 12 08:56:27 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added a check to avoid comparing the output files if they are - different sizes. - -Mon May 12 07:39:29 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added code to compare the output project with the existing - project. If they are the same then do not overwrite the project - file. This is very helpful when your workspace is loaded in vc6 - or vc7. - -Fri May 9 16:55:17 2003 Balachandran Natarajan - - * THANKS: Added Thomas Wiegert to the hal of fame. - -Fri May 09 12:57:09 2003 Nanbor Wang - - * bin/MakeProjectCreator/config/ciao_client.mpb: - * bin/MakeProjectCreator/config/ciao_component.mpb: Added more - directories into libpaths to reflect recent TAO subsetting - efforts. - -Fri May 9 12:49:42 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug with project names with special characters not being - matched witht the proper resource file. - -Fri May 9 10:17:11 2003 Ossama Othman - - * bin/fuzz.pl (check_for_ptr_arith_t): - - New check for ptr_arith_t usage in source files. Steve Huston - points out that we should be using the portable/standard - ptrdiff_t type instead. - -Fri May 9 12:12:51 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where file names would have extra slashes in them. - -Fri May 9 11:58:57 2003 Balachandran Natarajan - - * THANKS: Added Ira Burton to the hall of fame. - -Fri May 09 11:04:44 2003 Nanbor Wang - - * ace/Thread_Manager.h: - * ace/Thread_Manager.cpp: Applied a patch that expose the - Thread_Manager internal freelists, and the thread startup sync - mutex in Thread_Descriptor. These changes allow users to derive - their own Thread_Manager and spawn threads using a third party - library, such as that of Sybase's Open Server. Thanks to Caleb - Epstein for submitting the patch. - -Fri May 9 08:45:12 2003 Chad Elliott - - * examples/Reactor/WFMO_Reactor/Handle_Close.cpp: - - Fixed a build warning from Borland. - -Fri May 9 08:01:59 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - - Added documentation on the Custom File Definitions. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed bad error handling. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Added support for custom build definitions. See the - "Custom File Definitions" section of the README for more - information. - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Utilize the custom types in the supported template files. - -Thu May 8 18:50:24 2003 Steve Huston - - * tests/run_test.lst: Moved Cached_Accept_Conn_Test down the list - to put some time between it and Cached_Conn_Test. They both suck up - all available sockets and one after the other is a guaranteed fail - on Windows XP due to socket starvation. - -Thu May 8 16:57:18 2003 Steve Huston - - * ace/Date_Time.i (update): WinCE doesn't do localtime(), so extract - the FILETIME value from ACE_Time_Value and convert it to system time. - Fixes Bugzilla #1502. - - * ace/OS.cpp (uname): Added proper sensing of Windows CE at runtime - as well as the ARM processor type. - - * tests/Enum_Interfaces_Test.cpp: Convert the interface address - strings to ACE_TCHAR for logging. Makes them legible on wide-char - builds. Fixes Bugzilla #1501. - -Thu May 08 15:03:17 2003 Simon McQueen - - * bin/msvc_auto_compile.pl: - - Added IORInterceptor, ObjRefTemplate, and Valuetype into the -LIB - -CORE list. I think the absence was causing the failures to build - the Naming Service in the static builds. - -Thu May 8 06:44:19 2003 Balachandran Natarajan - - * bin/topinfo_iorsize_stats.sh (FILES): Fixed a typo in the - script! - -Wed May 7 17:51:51 2003 Jeff Parsons - - * bin/MakeProjectCreator/config/iorinterceptor.mpb: - * bin/MakeProjectCreator/config/objreftemplate.mpb: - * bin/MakeProjectCreator/config/valuetype.mpb: - - New base project files correponding to the new libraries - subsetted out of TAO. - -Wed May 7 18:32:45 2003 Steve Huston - - * tests/FIFO_Test.cpp: Fix the version of main() that was actually - causing the problem (see: Tue May 6 18:06:39 2003 Steve Huston) - -Wed May 7 17:02:44 2003 Balachandran Natarajan - - * bin/MakeProjectCreator/config/ciao_component.mpb: Added the - required libraries to build the server. This was necessitated by - the recent subsetting in TAO. - -Wed May 7 17:25:49 2003 Steve Huston - - * ace/Service_Config.h: Added description of the -s option to - ACE_Service_Config::open(). Also clarified -f, -k, -n, -y and -S. - -Wed May 7 14:00:31 2003 Steve Huston - - * ace/Basic_Types.h: In ACE_LONGLONG_TO_PTR macro, replace use - of ptr_arith_t with ptrdiff_t. Thanks to Ossama for noticing this. - -Wed May 7 12:03:28 2003 Balachandran Natarajan - - * bin/topinfo_iorsize_stats.sh (FILES): Removed the memory - tracking on the client side since its of no use. Added code to - collect the actual size of the server growth once data is - marshalled. - - * bin/generate_topinfo_stats.sh: Used the 4th argument to plot - information on the y axis. - -Wed May 7 08:22:12 UTC 2003 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Just define libflags, no need to define them to 1 - -Tue May 6 18:06:39 2003 Steve Huston - - * ace/Basic_Types.h: Add typedef of ptrdiff_t for WinCE 3. Follow-up: - Tue May 6 13:39:27 2003 Steve Huston - - * tests/FIFO_Test.cpp: Changed main() to ACE_TMAIN() to fix WinCE - (wide char) build error. - - * bin/PerlACE/Process_Win32.pm: Corrected comments about what the - PocketPC script is doing. - -Tue May 6 13:39:27 2003 Steve Huston - - * ace/Functor.i (ACE_Hash::operator()): - * ace/OS_Memory.h (ACE_align_binary): Replace ptr_arith_t with - the standard type ptrdiff_t. - - * ace/Basic_Types.h: Removed all the conditionals for trying to figure - out how to define ptr_arith_t. Replaced it with a typedef - ptrdiff_t ptr_arith_t. This is a temporary placeholder until all - ptr_arith_t usage can be expunged from TAO. Required adding - #include to pick up the ptrdiff_t type. - -Tue May 6 11:50:18 2003 Chad Elliott - - * ace/Synch.cpp (get_nesting_level): - - On Windows XP 64-bit, the RecursionCount of the CRITICAL_SECTION - object is zero based. With Win32, it is 1 based. So, we use - LockCount + 1 on Win64. - -Tue May 6 09:19:07 2003 Chad Elliott - - * tests/MT_Reactor_Timer_Test.cpp: - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/Reactor_Timer_Test.cpp: - * tests/Service_Config_Test.cpp: - * tests/Thread_Manager_Test.cpp: - - Remove build warnings on Windows XP 64-bit. - -Tue May 6 09:03:32 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Reverted my change from Tue May 6 06:54:43 2003. - -Tue May 6 06:54:43 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Simplified the generated Makefile by using the .DEFAULT rule. - -Mon May 5 19:06:49 2003 Steve Huston - - * bin/MakeProjectCreator/templates/nmake.mpd: When generating the - REALCLEAN rule, use a separate erase command for the various - exe-related files, else multiple files end up being generated in - a single pair of quotes, making the list appear as a single - filespec and nothing gets deleted. - -Mon May 5 13:34:46 2003 Chad Elliott - - * ace/RMCast/RMCast_Fragment.cpp: - * ace/RMCast/RMCast_IO_UDP.cpp: - * ace/RMCast/RMCast_Partial_Message.cpp: - * ace/RMCast/RMCast_Reassembly.cpp: - * examples/Reactor/WFMO_Reactor/APC.cpp: - * examples/Reactor/WFMO_Reactor/Handle_Close.cpp: - * examples/Reactor/WFMO_Reactor/Multithreading.cpp: - * examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp: - * examples/Reactor/WFMO_Reactor/Removals.cpp: - * examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc: - * tests/Basic_Types_Test.cpp: - - Fixed build errors and warnings for Windows XP 64-bit. - - * tests/tests.mpc: - - Added the FIFO test. - -Mon May 5 17:07:23 UTC 2003 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Just define dllflags, no need to define them to 1 - -Sun May 4 23:59:41 2003 Balachandran Natarajan - - * ACE-INSTALL.html: Updated MAC OS part of the file as per the Jon - Zorko's request. - -Sun May 4 16:45:46 UTC 2003 Don Hinton - - * THANKS: Added Scott Gammil to the hall of fame. - -Sat May 03 16:19:39 2003 Balachandran Natarajan - - * THANKS: Added Andras Lang to the hall of fame. - -Sat May 3 18:18:07 UTC 2003 Johnny Willemsen - - * bin/fuzz.pl: - When checking for $Id strings, when found jump out of the - while loop. This improved the speed of the check by factor - two on my system. - -Fri May 2 20:07:19 2003 Jeff Parsons - - * include/makeinclude/ace_flags.bor: - - Added some flag and lib definitions that will be used by - BCB with the new TAO libraries that will appear in a - forthcoming CVS branch merge. - -Fri May 2 08:45:09 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Only create a project if source files or idl files are found or - listed. - -Thu May 1 12:55:13 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - - Use the get_validated_ordering() method. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added a method to get the validated ordering instead of modifying - the projects dependencies. That way the project caching still - functions properly in the case of overlapping projects within - multiple workspaces. - -Thu May 1 10:32:26 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - - Fixed the process return value for when the default input is used. - It was hard coded to always return 1 and did not take into account - that a default workspace could have mpc files that do not evaluate - properly. - -Thu May 1 07:09:07 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/StringProcessor.pm: - - Correct a problem with creating arrays from strings with only - spaces. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Check to see that an option was used before trying to access the - option type. - -Wed Apr 30 20:15:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp - * performance-tests/SCTP/SOCK_STREAM_clt.cpp - * performance-tests/SCTP/SOCK_STREAM_srv.cpp - * performance-tests/SCTP/Options_Manager.cpp - - Corrected IPPROTO_SCTP #define to only occur on platforms - that don't have it defined already. - - * performance-tests/SCTP/Makefile - * performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp - * tests/Makefile - * tests/SOCK_SEQPACK_Association_Test.cpp - * tests/SOCK_SEQPACK_Association_Test.dsp - * tests/tests.dsw - - Moved SOCK_SEQPACK_Association_Test from tests/ to - performance-tests/SCTP/. It does not match the philosophy - of the tests in the tests directory. - -Wed Apr 30 13:43:14 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - - Rename the workspace extension from .mak to .nmake to avoid - possibly overwritting a generated project. - -Wed Apr 30 10:42:04 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - - Added the full path of the input file to the error output in the - parse_file() method. - -Wed Apr 30 16:08:13 2003 Simon McQueen - - * ace/ace_lib.dsp: - - Added Multihomed_INET_Addr.*, SOCK_SEQPACK_Association.*, and - SOCK_SEQPACK_Connector.* into project to fix errors on the static - builds. - -Wed Apr 30 09:38:19 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - If no type is specified for the exclude keyword, then exclude the - listing for all project types. - -Wed Apr 30 08:37:29 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Parser.pm: - - Search the current directory for include files first instead of - last. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Convert project name spaces to underscores. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a bug in generated workspace naming. Also, added build - ordering verification. To enable invalid ordering warnings set - the MPC_VERBOSE_ORDERING environment variable. - -Wed Apr 30 07:40:51 2003 Chad Elliott - - * apps/gperf/src/Hash_Table.cpp: - * apps/gperf/src/Key_List.cpp: - - Remove build warnings on Windows XP 64-bit. - -Tue Apr 29 18:40:28 2003 Steve Huston - - Picked up the following from Riverace's 5.3 tree: - - Sat Apr 19 19:12:39 2003 Steve Huston - - * ace/config-WinCE.h: Define ACE_DEFAULT_BASE_ADDR to 0 always; - WinCE can't do fixed address memory mapped file. Also added - ACE_HAS_TSS_EMULATION; WinCE is very restrictive with TLS keys. - - * ace/config-win32-common.h: Only set ACE_DEFAULT_BASE_ADDR if it - hasn't been set prior. Allows the CE definition to hold, and also - allows a user to set a particular value. - - * ace/Configuration.cpp: When native Win32 calls are used and return - an error, set errno to the error status value so the logging %p - stuff works correctly. - - * ace/Log_Msg.cpp (log): For %p, don't try strerror() for WinCE. It - doesn't have this concept, so run everything through FormatMessage. - - * tests/Config_Test.cpp: Be sure that no keys are left open before - attempting to delete the referred-to sections later. Deleting - while a key is still open to the being-deleted section fails on CE. - - * tests/Logging_Strategy_Test.cpp: When setting the ouptut log file - name, use the platform log file extension (it's different for WinCE). - - * tests/Malloc_Test.cpp: If on WinCE, must use base 0, NEVER_FIXED - ACE_MMAP_Memory_Pool_Options. WinCE cannot do fixed addresses. - - * tests/MT_Reactor_Upcall_Test.cpp: - * tests/Reactor_Dispatch_Order_Test.cpp: Don't attempt the WFMO_Reactor - part if on WinCE. CE doesn't have the necessary Winsock2 support. - - Fri Mar 21 22:45:39 2003 Steve Huston - - * ace/config-WinCE.h: Added ACE_LACKS_AUTO_PTR; also see - Wed Feb 19 17:43:15 2003 Steve Huston - -Tue Apr 29 18:30:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * ace/ace.mpc - - Added SOCK_SEQPACK_{Association,Acceptor,Connector} and - Multihomed_INET_Addr to "Sockets" section of mpc. - -Tue Apr 29 18:15:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp - - Added check for IPPROTO_SCTP for platforms that natively - know about SCTP. - - * tests/SOCK_SEQPACK_Association_Test.cpp - - Changed 'char' usage to 'ACE_TCHAR' - - * tests/icc.bat - - Added Multihomed_INET_Addr_Test. - Suggestion: README needs to be updated to reflect - current set of files where new tests must be added to. - -Tue Apr 29 12:58:51 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/EM3WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VA4WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Keep track of workspace files written and modify duplicate - workspace names to avoid overwritting them. - -Tue Apr 29 12:17:03 2003 Venkita Subramonian - - * ace/Message_Queue_T.cpp: - Fixed a bug in Dynamic_Message_Queue::enqueue method. The - current number of bytes was getting decremented when a message - was enqueued. Thanks to Michael Kircher - (Michael.Kircher@siemens.com) for reporting this bug. - -Tue Apr 29 11:21:40 2003 Chad Elliott - - * ACEXML/common/AttributesImpl.cpp: - * ACEXML/common/FileCharStream.cpp: - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/Mem_Map_Stream.cpp: - * ACEXML/common/NamespaceSupport.cpp: - * ACEXML/common/StrCharStream.cpp: - * ACEXML/common/Transcode.i: - * ACEXML/common/Transcode.cpp: - * ACEXML/parser/parser/Parser.cpp: - * ace/Containers_T.cpp: - * ace/FIFO_Send_Msg.cpp: - * ace/Functor.i: - * ace/Time_Value.inl: - - Remove build warnings on Windows XP 64-bit. - - * ace/config-win32-common.h: - - Added a definition for ACE_SIZEOF_VOID_P in the ACE_WIN64 section - stating that the size of a pointer is 8 bytes. - -Tue Apr 29 11:02:27 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - - Change the workspace name from 'Makefile' to the the workspace - name plus .mak. - -Tue Apr 29 09:24:07 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Use the project name as the default library name instead of the - directory name. - -Tue Apr 29 08:47:16 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - If a project is not specified to be either a library or exe and it - can't be determined that the type is exe, we default to a library. - -Tue Apr 29 06:25:37 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - - Remove the windows only part about dllflags and libflags. - -Tue Apr 29 05:49:12 UTC 2003 Johnny Willemsen - - * ace/Makefile.bor: - Fixed typo. - -Mon Apr 28 21:20:48 2003 Douglas C. Schmidt - - * ace/POSIX_Proactor.cpp (handle_events_i): There was an incorrect - conversion from milliseconds to nanoseconds, which is now fixed. - Thanks to Ray Limpus for reporting this. - -Tue Apr 29 00:30:37 UTC 2003 Don Hinton - - * bin/generate_compile_stats.sh: - My changes below worked so well, that ls can no longer - handle all the objects, use find instead. - -Mon Apr 28 11:00:13 2003 Ossama Othman - - * configure.ac: - - Reverted change that placed configure script set optimization - flags before $CXXFLAGS. GNU Autoconf likes to add "-g -O2" to - $CXXFLAGS by default for GNU C/C++ compilers. That - unfortunately overrides the configure script optimization flags, - hence the need to revert the change. - -Mon Apr 28 10:54:02 2003 Ossama Othman - - * configure.ac: - - Updated copyright notice to include UCI and Vanderbilt DOC - groups. This is consistent with the notice in the COPYING - file. - - Do not AC_DEFINE the _POSIX_PTHREAD_SEMANTICS feature test - macros. It should be defined on the command line instead of in - the generated configuration header. Addresses potential - compile-time problems in applications that include system - headers before ACE headers. - - Optimization flags set by the `configure' script are now placed - before the user defined C++ flags (i.e. $CXXFLAGS). This allows - users to override flags set by the `configure' script. Thanks - to Braden McDaniel for pointing - out that user flags could be potentially overridden. - - Added support for UnixWare 7.1 from Oleg Terletsky - . - - * Makefile.am (AUTOMAKE_OPTIONS): - - Set the minimum Automake version in this file to allow older - Automake versions, i.e. those that do not understand options set - in the AM_INIT_AUTOMAKE autoconf macro, to detect the - requirement. - - Set the Automake strictness to "foreign" so that the `NEWS' file - will no longer be required. We currently don't use a `NEWS' - file. - - Thanks to Braden McDaniel for - suggesting these changes. - - * ace/OS.h (howmany): - - In addition to LynxOS, define this macro for UnixWare 7.1. - Thanks to Oleg Terletsky for providing - the fix. - - * bin/bootstrap: - - No longer a need to create a dummy `NEWS' file. - - * m4/compiler.m4: - * m4/config_h.m4: - * m4/platform.m4: - - Added support for UnixWare 7.1 from Oleg Terletsky - . - - Do not AC_DEFINE feature test macros (e.g. _HPUX_SOURCE) in the - generated config header. Instead define them on the command - line. Addresses potential compile-time problems in applications - that include system headers before ACE headers. - -Mon Apr 28 13:45:03 2003 Irfan Pyarali - - * tests/Hash_Map_Bucket_Iterator_Test.cpp (ACE_TMAIN): - - Added debugging statements. - - * ace/Hash_Map_Manager_T.h (class ACE_Hash_Map_Bucket_Iterator): - - Added to documentation about why there is no creation method on - the Hash Map for the ACE_Hash_Map_Bucket_Iterator. - - * ace/README: Added description for ACE_LACKS_MEMBER_TEMPLATES. - -Mon Apr 28 17:35:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * ace/Makefile.bor - - Added SOCK_SEQPACK_{Acceptor,Assocication,Connector}.obj and - Multihomed_INET_Addr.obj - -Mon Apr 28 15:15:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * tests/Makefile.am - * tests/Makefile.bor - * tests/Multihomed_INET_Addr_Test.icc - * tests/tests.icp - * tests/tests.mpc - - We finally followed the README instructions for added a new - test. Hopefully test errors for a missing Multihomed_INET_Addr_Test - on many platforms will go away. - -Mon Apr 28 15:06:27 UTC 2003 Don Hinton - - * bin/g++_metrics.sh: - Comment metrics output so it won't confuse the tao_idl - compiler, that uses CXX as the preprocessor by default. - - * bin/generate_compile_stats.sh: - Add a new "targets" parameter that allows users to generate - a targets file created with the --dry-run option. This way - even if something fails to compile, you still get a list of - all targets and their dependencies. - -Mon Apr 28 08:44:43 2003 Venkita Subramonian - - * Kokyu/Kokyu_DLL.dsp: - * Kokyu/Kokyu_Static.dsp: - Updated projects to include DSRT work. - - * Kokyu/DSRT_Schedulers.cpp: - * Kokyu/DSRT_Scheduler_Impl.cpp: Fixed some compiler errors on - MSVC++. Thanks to Simon McQueen for pointing this out. - -Mon Apr 28 07:54:04 2003 Nanbor Wang - - * ace/MEM_Stream.h (ACE_MEM_Stream): Also mentioned that the - message size limit can be tweaked from MEM_Connector. Thanks to - Tongzhe Cui for the suggestion. - -Mon Apr 28 09:21:12 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32-common.h: - Added ACE_HAS_STRPTIME because cygwin supports it. - - * ace/config-doxygen.h: - Added ACE_HAS_STRPTIME to generate documentation. - -Sun Apr 27 14:39:00 2003 Nanbor Wang - - * ace/MEM_IO.h: - * ace/MEM_Stream.h: Added more documentation on the message size - limit a MEM_Stream can handle and how to adjust the limit. - Thanks to Tongzhe Cui for motivating the - change. - -Sun Apr 27 18:38:12 UTC 2003 Johnny Willemsen - - * examples/Timer_Queue/TQTDDLL.dsp: - Set correct DLL name in the Release configuration - -Sat Apr 26 21:20:37 2003 Nanbor Wang - - * ace/MEM_Acceptor.cpp (accept): Fixed how the accept acquite the - connecting (remote) port number. Thanks to Steve Huston for - calling this to my attention. - -Sat Apr 26 12:00:36 2003 Venkita Subramonian - - * Kokyu/DSRT_Scheduler.cpp: - Corrected calculation for priority range. - - * Kokyu/tests/DSRT_MIF/MIF.cpp: - Modifications to set the priority of thread based on the value - returned from the scheduler. - -Sat Apr 26 08:25:57 2003 Balachandran Natarajan - - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: Fixed compile - errors. - -Sat Apr 26 10:42:56 UTC 2003 Johnny Willemsen - - * tests/Reactor_Exceptions_Test.cpp: - Changed Borland specific defines to Borland and Win32, to fix - Kylix compile error. - -Sat Apr 26 08:50:33 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.bin.GNU: - Updated Kylix rules so that we don't pass the same options multiple - times to the linker. - -Sat Apr 26 08:47:12 UTC 2003 Johnny Willemsen - - * bin/msvc_auto_compile.pl: - Reverted complete change. Too much is now build in first pass. - -Fri Apr 25 20:55:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * ace/SOCK_Connector.h - * ace/SOCK_SEQPACK_Connector.h - - Added comments to recently added 'protocol' - parameter for Doxygen. - - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp - * performance-tests/SCTP/SOCK_STREAM_clt.cpp - - Removed extraneous math.h and stdio.h references, which - was causing a header conflict on AIX/64. - -Fri Apr 25 15:15:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * ace/ace_dll.dsp: - - Multihomed_INET_Addr and SOCK_SEQPACK_* - {Acceptor,Association,Connector} classes added to dsp - - * performance-tests/Makefile: - - SCTP directory added to recursive Makefile list - -Fri Apr 25 10:37:49 2003 Steve Huston - - * bin/PerlACE/Process_Win32.pm: Change the CE test control to use the - value of the ACE_WINCE_TEST_CONTROLLER environment variable as the - program name to start the controller with. It still assumes that - the only CE controller is PocketController Enterprise. Also - allows the ACE_PCE_DEVICE environment variable to contain the - PocketController device connect options. The value should start with - -l and end with a semi-colon. The generated command script no longer - includes a "reset /s" command, so the sleep(10) is removed and the - PocketController command includes the -d;-e options to disconnect - and exit Pocket Controller after the script finishes. This requires - Pocket Controller Enterprise v4. - Also changed the PocketController default sleep time from 60 to 70 - seconds - Atomic_Op_Test was running about 62 and timing out. - -Fri Apr 25 08:12:33 UTC 2003 Johnny Willemsen - - * bin/msvc_auto_compile.pl: - Reverted change of yesterday to not build DLL projects twice. - This caused several new problems in the build. - -Fri Apr 25 06:18:12 UTC 2003 Johnny Willemsen - - * ace/config-win32-borland.h: - * ace/config-borland-common.h: - Cleanup of duplicate stuff. Moved ACE_CC_PREPROCESSOR to - win32 file. - -Thu Apr 24 23:20:16 2003 Venkita Subramonian - - * Kokyu/DSRT_Dispatcher_Impl.cpp: - * Kokyu/DSRT_Dispatcher_Impl.h: - * Kokyu/DSRT_Dispatcher_Impl.i: - * Kokyu/DSRT_Schedulers.cpp: - * Kokyu/DSRT_Schedulers.h: - * Kokyu/Kokyu.cpp: - * Kokyu/Kokyu.h: - * Kokyu/tests/DSRT_MIF/MIF.cpp: - * Kokyu/tests/DSRT_MIF/svc.conf: - * Kokyu/tests/DSRT_MIF/svc.conf.xml: - - Made the importance value continuous instead of discrete to make - it more compatible with DSRT MIF scheduler. Made the MIF - scheduler accept max and min importance thru the svc.conf file. - -Thu Apr 24 20:17:44 2003 Venkita Subramonian - - * Kokyu/DSRT_Dispatcher_Impl.cpp: - * Kokyu/DSRT_Dispatcher_Impl.h: - * Kokyu/DSRT_Dispatcher_Impl.i: - * Kokyu/DSRT_Schedulers.cpp: - * Kokyu/DSRT_Schedulers.h: - * Kokyu/Kokyu.cpp: - * Kokyu/tests/DSRT_MIF/svc.conf: - * Kokyu/tests/DSRT_MIF/svc.conf.xml: - - Restructuring the Kokyu DSRT scheduler stuff. The scheduler is - now a service object so that different scheduler implementations - can be selected at run time thru the svc.conf file. - -Thu Apr 24 10:17:28 2003 Steve Totten - - * bin/MakeProjectCreator/config/smart_proxies.mpb: - - Added a smart_proxies base project to make it easy to - build with TAO smart proxies support. - -Thu Apr 24 13:55:00 UTC 2003 Gautam Thaker - - * README.SCTP - Edited for content. This file provides SCTP network level - information. - * README.OpenSS7 - Added. This file provides OpenSS7 implementation - specific information. - * README.SCIOP - Added. This file provides TAO SCIOP level related - README information. Ideally it might be put some place - under TAO/ but it is kept here with other SCTP related - README files. - -Thu Apr 24 08:14:42 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Parser.pm: - - Fix a bug with cd() caused by relative paths in directories. - -Thu Apr 24 11:06:43 UTC 2003 Johnny Willemsen - - * bin/msvc_auto_compile.pl: - When the configuration name of the dsp file containers Library, DLL - or LIB it is build first. Previous spaces are DLL and LIB where - required. Also, previously, those projects where compiled twice, - now only once. - -Thu Apr 24 08:50:23 UTC 2003 Johnny Willemsen - - * examples/Service_Configurator/Misc/Timer_Service.h: - Use ACE_STATIC_SVC_DECLARE_EXPORT instead of ACE_STATIC_SVC_DECLARE - to export Timer_Service_1 from the DLL. This solves Kylix link - problems. - -Thu Apr 24 07:44:12 UTC 2003 Johnny Willemsen - - * examples/Timer_Queue/TQTD.dsp: - * examples/Timer_Queue/TQTDDLL.dsp: - Removed TQTD.dsp and added TQTDDLL.dsp. Show in the name we build a - dll. Also add Library to the name of the configuration so that the - autobuild scripts builds this project first. - - * examples/Timer_Queue/Timer_Queue.dsw: - Updated because of name change. - -Wed Apr 23 18:19:07 2003 Ossama Othman - - * ace/iosfwd.h: - - Fixed another configuration where forward declarations would not - exist (i.e. ACE_HAS_STANDARD_CPP_LIBRARY && - ACE_USES_OLD_IOSTREAMS). - -Wed Apr 23 16:57:45 2003 Balachandran Natarajan - - * ace/Multihomed_INET_Addr.cpp: Added explicit template - instantiations. This should fix big chunk of the problems in our - daily builds. - -Wed Apr 23 21:22:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * tests/Makefile: - * tests/Multihomed_INET_Addr_Test.dsp: - * tests/SOCK_SEQPACK_Association_Test.dsp: - * tests/tests.dsw: - - Added Multihomed_INET_Addr dsp and to dsw. - Added SOCK_SEQPACK dsp and to dsw but not to test list. - -Wed Apr 23 15:31:23 2003 Nanbor Wang - - * ace/MEM_Acceptor.cpp: Removed the use of len_ptr variable in - accept method as it is not needed it at all for MEM_Acceptor and - the accept were trying to dereference the the null pointer when - resolving the remote address. Thanks to Subhabrata Biswas - for reporting the problem. - -Wed Apr 23 16:10:07 2003 Irfan Pyarali - - * ace/config-win32-msvc-6.h: - - VC 6 does not have support for member templates. Therefore, - added #define ACE_LACKS_MEMBER_TEMPLATES to the config file. - -Wed Apr 23 13:54:27 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Parser.pm: - - Include '.' in the search path when looking for base projects and - templates. - -Wed Apr 23 12:54:09 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Updated the template to allow cppflags and linkflags. - - * bin/MakeProjectCreator/templates/makedll.mpt: - - Added linkflags for the CC configuration. - -Wed Apr 23 12:32:29 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - * bin/MakeProjectCreator/templates/makeexe.mpt: - - Increased the usability of the make type by adding different - configurations for different compilers. - -Wed Apr 23 09:40:26 2003 Venkita Subramonian - - * Kokyu/DSRT_Schedulers.cpp: - * Kokyu/DSRT_Schedulers.h: - - Added two new files while restructuring DSRT Scheduler classes. - - * Kokyu/DSRT_Dispatcher_Impl.cpp: - * Kokyu/DSRT_Dispatcher_Impl.h: - * Kokyu/Kokyu.cpp: - * Kokyu/Kokyu.h: - * Kokyu/tests/DSRT_MIF/Makefile: - * Kokyu/Makefile: - - Restructured the DSRT related scheduler classes. - -Wed Apr 23 06:30:04 UTC 2003 Johnny Willemsen - - * ACE-INSTALL.html: - Corrected location build scoreboard, added Cygwin to the list of - user community supported compilers and updated MinGW formattng - -Tue Apr 22 19:37:14 2003 Venkita Subramonian - - * ChangeLog: - - Removed some entries in this Changelog, which should have been - added to the TAO ChangeLog. Thanks to Steve Huston for pointing - this out. - -Tue Apr 22 18:29:18 2003 Steve Huston - - * ace/ace.mpc: Moved ARGV.cpp and Argv_Type_Converter.cpp from the - Utils section to the OS section. This is a follow-up to: - Fri Mar 28 16:04:28 2003 Steve Huston - -Tue Apr 22 17:25:09 2003 Jeff Parsons - - * ace/config-win32-msvc-6.h: - - Added pragma disable for warning about long names (caused - by template parameters). - -Tue Apr 22 21:45:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * tests/Makefile: - * tests/run_test.lst: - * tests/run_tests.bat: - - Reconnected Multihomed_INET_Addr_Test to Makefile and scripts. - -Tue Apr 22 21:20:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * performance-tests/SCTP/README: - * performance-tests/SCTP/README.SCTP_in_ACE: - * performance-tests/SCTP/run_spectrum.pl: - * performance-tests/SCTP/SOCK_SEQPACK_wrapper_facade.jpg: - - Added jpg with class diagram. - Augmented READMEs with additional clarifications. - - * performance-tests/SCTP/SCTP.dsw: - - Removed SCTP.dsw for time being -- will be adding dsw and dsp - files as Windows conformability can be properly verified. - -Tue Apr 22 13:49:42 2003 Chad Elliott - - * ace/config-sunos5.7.h: - - only exists from SunOS 5.7 on. So I added a new - macro, ACE_HAS_SYS_LOADAVG_H, which is defined in this file. - -Tue Apr 22 13:20:11 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Require multiple exclusion types to be comma separated. - -Tue Apr 22 12:28:03 2003 Venkita Subramonian - - * Kokyu/Kokyu.cpp: - * Kokyu/Default_Dispatcher_Impl.cpp - - Fixed errors in MSVC++ builds. When ACE_HAS_STANDARD_CPP_LIBRARY - is defined auto_ptr maps to the std::auto_ptr and std::auto_ptr - in MSVC++ 6.0 does not have a reset method. Thanks to Simon - McQueen for pointing this out. - -Tue Apr 22 12:47:48 2003 Steve Huston - - * ace/Get_Opt.cpp (ctor): Add ACE_LIB_TEXT to naked string literal. - -Tue Apr 22 09:16:29 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Changed the behavior when project names contain slashes or back - slashes. This is now an error due to the fact that GHS build - files are put in subdirectories. - - Also, the ability to exclude files and directories based on - project type was added to the WorkspaceCreator. - -Tue Apr 22 07:10:14 2003 Chad Elliott - - * bin/ChangeLogEditor/ChangeLogEdit.pm: - * bin/ChangeLogEditor/ChangeLogEntry.pm: - * bin/ChangeLogEditor/FileLocator.pm: - * bin/cle.pl: - - Allow the user to specify directories to be considered for the - ChangeLog entry. - -Tue Apr 22 12:43:17 2003 Simon McQueen - - * tests/Proactor_Scatter_Gather_Test.cpp: - Fixed build error on win32. - -Tue Apr 22 07:30:01 UTC 2003 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Added ACE_LACKS_TEMPNAM - - * ace/OS.i (tempnam): - Removed VxWorks specific part but just expect that VxWorks - also sets ACE_LACKS_TEMPNAM just like all other OS's do. - -Tue Apr 22 06:41:13 UTC 2003 Johnny Willemsen - - * ace/SStringfwd.h: - Do the forward declaration of ACE_String_Base with CHAR instead - of T. With Borland C++ the template parameter of the forward - declaration must be exactly the same as with the real template - parameter in the template definition. This fixes the strange Kylix - errors. - -Tue Apr 22 06:14:12 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32-common.h: - Removed ACE_LACKS_TEMPNAM, cygwin supports tempnam. Thanks to - Kobi Cohen-Arazi for reporting this. - -Mon Apr 21 15:45:25 2003 Ossama Othman - - * ace/SOCK_SEQPACK_Acceptor.h: - - No need to include "ace/Time_Value.h". Forward declare - ACE_Time_Value instead. - -Mon Apr 21 15:27:21 2003 Ossama Othman - - * ace/Makefile.am (libACE_Sockets_la_SOURCES, HEADER_FILES): - (INLINE_FILES): - - Added new SCTP related files to these variables. - -Mon Apr 21 15:23:44 2003 Ossama Othman - - * ace/SSL/Makefile.in: - - Removed this generated file. It shouldn't exist in the CVS - repository. - -Mon Apr 21 21:20:00 UTC 2003 Gautam Thaker - - Please direct all immediate build issues to jcohen@atl.lmco.com - if problems occur as a result of this check in. Thank you. - - * ace/OS.h: - - Added #defines for SOCK_SEQPACK related objects. - - * ace/SOCK_Connector.cpp: - * ace/SOCK_Connector.h: - - Added extra parameter to constructor and connector (with a - default value) to enable selection of protocol. - - * ace/Makefile.ace: - - Added Multihomed_INET_Addr and SOCK_SEQPACK_* to ACE lib. - - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - - emulholl@atl.lmco.com comments: - I added a line to the Wait() method in the Process::Unix and - Process::Win32 Perl classes in order to enforce what appeared - to be an implied (although undocumented) invariant for the - class: that the "running" variable should have the value 0 - whenever the process is not running. - - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/wrapper_macros.GNU: - - Added build option 'sctp' to enable SCTP support in ACE. - Currently, the only SCTP implementation supported is from - OpenSS7 on the Linux platform. Specify 'sctp=openss7' to enable. - -Mon Apr 21 12:16:20 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - - Removed the /Ob2 compiler options. This has been known to cause - problems. /O2 provides /Ob1 which is sufficient. - -Mon Apr 21 15:53:35 UTC 2003 Don Hinton - - * ace/os_includes/*.h: Fixed Fuzz errors. - -Mon Apr 21 09:14:09 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - If pch files are listed in header_files or source_files, then - remove them from the listing. It is important that they are not - duplicated. - -Mon Apr 21 04:51:09 UTC 2003 Don Hinton - - * bin/generate_compile_stats.sh: - - More changes to html generation, added system info, tables - to the detail section, last compile times, and %change. - - * ace/SStringfwd.h: - * ace/SString.h: - - Moved typedef for ACE_TString to SStringfwd.h to go with - ACE_CString and ACE_WString. - - * ace/Get_Opt.{h,cpp,i}: - - Include ace/SStringfwd.h instead of ace/SString.h in header, - changed members variables to pointers, and uninlined optstring() - to reduce inter header dependencies. - - * tests/Multicast_Test.cpp: - - Added #include "ace/SString.h". - -Sun Apr 20 11:22:12 UTC 2003 Johnny Willemsen - - * examples/Timer_Queue/Timer_Queue.dsw: - Added missing dependencies between the projects. - -Sat Apr 19 02:53:17 UTC 2003 Don Hinton - - * bin/generate_compile_stats.sh: - - Fixed a problem with sorting, modified html and graph output - to make it a little easier to read. - -Fri Apr 18 13:35:51 2003 Chad Elliott - - * ace/OS.i: - * ace/OS.cpp: - - Added an implementation of ACE_OS::thr_join() for VxWorks. - -Fri Apr 18 12:24:02 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Allow directories to be passed in as mpc and mwc files would be. - -Fri Apr 18 12:02:31 2003 Steve Huston - - * ACEXML/common/URL_Addr.inl: - * examples/Mem_Map/IO-tests/test_io.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * performance-tests/Misc/preempt.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp: - Add #include "ace/INET_Addr.h" and/or "ace/ACE.h" to pick up needed - method declarations. - -Fri Apr 18 06:54:35 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/nmake.mpd: - - Fine tune the clean target to avoid deleting things that do not - belong to the project. - -Fri Apr 18 11:02:12 UTC 2003 Johnny Willemsen - - * examples/Timer_Queue/TQTD.dsp: - * examples/Timer_Queue/Async_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Thread_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Timer_Queue.dsw: - Added new TQTD project to build a dll that is used by the other - project files. This matches the same structure as the GNU makefile - does. - -Thu Apr 17 16:48:23 2003 Ossama Othman - - * acconfig.h: - - Removed this old autoheader template. It is no longer used. - -Thu Apr 17 19:33:29 2003 Steve Huston - - * ace/Get_Opt.cpp: Added #include "ace/ACE.h" to pick up ACE::gcd(). - - * ace/Logging_Strategy.cpp: Added #include "ace/ACE.h" and - "ace/Lib_Find.h" to pick up needed method declarations. - - * ace/Process.i: - * ace/Process_Manager.cpp:Added #include "ace/ACE.h" to pick up - ACE::terminate_process (). - - * ace/FILE_Addr.cpp: Added #include "ace/Lib_Find.h" to pick up - ACE_Lib_Find::get_temp_dir (). - -Thu Apr 17 16:37:05 2003 Ossama Othman - - * m4/acinclude.m4 (ACE_CHECK_FUNC): - - Improved warning message to explicitly state which function - failed detection. - -Thu Apr 17 16:15:24 2003 Ossama Othman - - * Merged "autotools" branch. ChangeLog entries from that branch - follow. - - Wed Mar 26 08:00:11 2003 Ossama Othman - - * configure.ac: - - Added check for the fgetwc() function. - - * m4/config_h.m4 (ACE_LACKS_FGETWC): - - Added autoheader template for this macro. - - Tue Mar 25 08:33:55 2003 Ossama Othman - - * configure.ac: - - Call the AC_PROG_EGREP macro to make sure the $EGREP shell - variable is set. - - Tue Mar 25 08:22:03 2003 Ossama Othman - - * m4/ace.m4: - * m4/compiler.m4: - * m4/platform.m4: - - Applied Steve's change below to the remaining 'test -n/-z - "$GXX"' instances. Addresses some problems in non-GNU compiler - builds. - - Replaced all instances "egrep" with the `configure' script - defined "$EGREP". This improves the `configure' script's - portability. - - Fri Mar 21 23:17:26 2003 Steve Huston - - * configure.ac: Changed to to - work when GXX is set to no, not nul. - - Wed Mar 19 11:29:25 2003 Ossama Othman - - * configure.ac (ACE_HAS_POSIX_GETPWNAM_R): - - Only define this macro if the user hasn't disabled reentrant - function support. - - Wed Mar 19 11:10:50 2003 Ossama Othman - - * configure.ac: - - If reentrant functions are enabled by the user and detected by - the `configure' script, make sure "_REENTRANT" is added to the - preprocessor flags. [Bug 411] - - Added test for ACE_HAS_POSIX_GETPWNAM_R macro. Fixes problems - on Linux when threading is disabled. [Bug 914] - - The restartable system calls test was re-enabled in earlier - commits. [Bug 275] - - * m4/compiler.m4 (OCXXFLAGS): - - Added missing HP-UX aCC compiler optimization flag. - - * m4/config_h.m4 (ACE_HAS_POSIX_GETPWNAM_R): - - Added autoheader template for this macro. - - Fri Mar 14 11:38:56 2003 Ossama Othman - - * tests/Dirent_Test.cpp (TEST_ENTRY): - - Changed name of file from "Dirent_Test.cpp" to "Makefile". The - latter is the only one guaranteed to exist in autoconf based - VPATH builds. Dirent_Test was failing since "Dirent_Test.cpp" - did not exist in the current working directory so pick one that - will always exist. - - Fri Mar 14 10:49:48 2003 Ossama Othman - - * configure.ac (bsearch, mktemp, qsort, rand_r): - - Temporarily select C as the test language when detecting these - functions to work around a bug in some versions of Autoconf when - C++ is selected as the test language. This fixes problems where - the following macros were incorrectly defined: - - ACE_LACKS_BSEARCH - ACE_LACKS_MKTEMP - ACE_LACKS_QSORT - ACE_HAS_REENTRANT_FUNCTIONS - - The correct definition of the ACE_HAS_REENTRANT_FUNCTIONS macro - should also correct problems exhibited by the ACE one-button - tests on multi-CPU hosts. - - (ACE_LACKS_STRUCT_DIR): - - Added test that determines if this macro should be defined. - - * m4/config_h.m4 (ACE_HAS_SCANDIR, ACE_LACKS_STRUCT_DIR): - - Added templates for these preprocessor macros. - - Thu Mar 13 15:49:21 2003 Ossama Othman - - * bin/bootstrap: - - Fixed an error about a missing `ace/config.h.in' configuration - header template file when running `automake'. `Automake' should - be invoked after `autoheader' to make sure the configuration - header template files exist beforehand. Thanks to Steve Huston - for reporting the error, and providing a - means to reproduce it. - - Wed Mar 12 13:48:31 2003 Steve Huston - - * bin/bootstrap: Changed PAGER to be set using ${name:-value} instead - of test -z; HP-UX /bin/sh complained if the PAGER env var wasn't set. - - Wed Feb 19 17:02:42 2003 Ossama Othman - - * configure.ac (AC_CONFIG_FILES): - - Added RMCast, QoS and SSL Makefiles to the list of files to be - generated. - - * Makefile.am (ACLOCAL_AMFLAGS): - - Define this variable. It contains options to be passed to - `aclocal' whenever the generated Makefile invokes `aclocal'. - Addresses failed automatic attempts at regenerating the - `configure' script. - - (CONFIGURE_DEPENDENCIES): - - Define this variable to include all of the ACE-specific M4 files - in the `m4' directory. Those files will be included in the list - of dependencies for the `configure' script. Addresses failed - automatic attempts at regenerating the `configure' script. - - * ace/Makefile.am (DIST_SUBDIRS): - - Added RMCast, QoS and SSL subdirectories to the list of - directories to include in the ACE distribution. - - (SUBDIRS): - - Conditionally build the RMCast, QoS and SSL subdirectories. The - user may explicitly enable or disable them using the - "--with-rmcast", "--with-qos" and "--with-ssl" configure script - options, respectively. - - (libACE_la_SOURCES): - - Added $(libACE_Codecs_la_SOURCES) to the list of ACE library - sources. Fixes "unresolved symol" link-time errors when - building the `Codecs_Test' one-button test. - - * ace/RMCast/Makefile.am: - * ace/QoS/Makefile.am: - * ace/SSL/Makefile.am: - - Added these Automake input files for the ACE_RMCast, ACE_QoS and - ACE_SSL libraries, respectively. - - * m4/ace.m4 (ACE_CONFIGURATION_OPTIONS): - - Added "--with-rmcast", "--with-qos" and "--with-ssl" - configuration options that allow the user to explicitly enable - or disable the ACE_RMCast, ACE_QoS and ACE_SSL libraries, - respectively. The ACE_RMCast is enabled by default, while the - ACE_QoS and ACE_SSL libraries are not. - - * tests/Makefile.am: - - Build CDR_Array_Test, Codecs_Test and Tokens_Test. - - Fri Feb 14 10:02:30 2003 Ossama Othman - - * Makefile.am (all-local): - - Create a link to the $(top_srcdir)/bin directory if one doesn't - exist. It is needed for the automated regression tests we run. - - (distclean-local): - - Added this Automake recognized target. It will clean up the - `bin' link and accompanying stamp file if they exist. - - * tests/Makefile.am (all-local): - - Create a stamp file to mark whether or not the scripts and data - files are actually links to those in $(top_srcdir)/tests. - - (bin): - - Moved the rules in this target to all-local target in - $(top_srcdir)/Makefile.am. The link to the `bin' directory - should be made in the top-level directory, not the `tests' - directory. This should address problems in running the - automated regression tests. - - Removed this target. It is longer needed. - - (distclean-local): - - Only delete the scripts and data files if the stamp file created - by the all-local target exists. Prevents those in the source - directory from being erased once builds in the source directory - are re-enabled. - - Tue Feb 11 14:27:08 2003 Ossama Othman - - * tests/Makefile.am (all-local): - - Added rules to generate links to the scripts and data files in - the top-level `tests' source directory. The Scoreboard requires - that `run_test.pl' exists in the current working directory, and - some tests require that their corresponding data files exist in - that directory, too. Thanks to Steve for pointing this out. - - Mon Feb 10 14:42:59 2003 Ossama Othman - - * configure.ac: - - Generate tests/Makefile. - - Updated and re-enabled XtReactor support. - - * Makefile.am: - - Added ACE one-button test directory to the sub-directory list. - - * tests/Makefile.am: - - Updated one-button test list. It was missing some new tests. - - Wed Feb 5 13:50:09 2003 Ossama Othman - - * configure.ac: - - Added check for snprintf(). - - Added check for mutex timeouts (e.g. pthread_mutex_timedlock()). - - Updated STL map and queue conflict tests to take into account - the "std" namespace, if necessary. - - Updated "new() throws bad_alloc" test to take into account the - "std" namespace, if necessary. - - * m4/config_h.m4 (ACE_HAS_SNPRINTF, ACE_HAS_MUTEX_TIMEOUTS): - - Added autoheader templates for these macros. - - Wed Feb 5 11:54:22 2003 Ossama Othman - - * Makefile.am: - - Neglected to commit this file in the previous commit. Added - `apps' directory to the list of subdirectories. - - Sat Feb 1 14:21:38 2003 Ossama Othman - - * configure.ac: - - Added gperf related Makefiles to the list of files to generate. - - * apps/Makefile.am: - * apps/gperf/Makefile.am: - * apps/gperf/src/Makefile.am: - - Updated for use with Automake 1.7.x or better. - - * m4/ace.m4 (ACE_CONFIGURATION_OPTIONS): - - Enabled ACE gperf support. - - Sat Feb 1 13:22:59 2003 Ossama Othman - - * bin/bootstrap: - - Removed workspace/release bootstrapping code. Newer versions of - automake obviate the need to make a distinction due to improved - dependency tracking support. - - Sat Feb 1 13:14:08 2003 Ossama Othman - - * ace/Makefile.am (TEMPLATE_FILES): - - Added missing "Templates_Instantiations.cpp" file to this list. - Fixes builds from a source tree created by "make dist". - - Sat Feb 1 12:44:52 2003 Ossama Othman - - * Makefile.am (EXTRA_DIST): - - Removed "BIBLIOGRAPHY" from this list since that file no longer - exists. "make dist" now works once again. - - Sat Feb 1 12:40:11 2003 Ossama Othman - - * ace/Makefile.am (libACE_Utils_la_SOURCES): - - Removed duplicate "Filecache.cpp" entry. Fixes "multiple - definition of symbol" errors at link-time. - - Sat Feb 1 12:24:11 2003 Ossama Othman - - * configure.ac: - - Do not define the _POSIX_THREADS and - _POSIX_THREAD_SAFE_FUNCTIONS preprocessor macros. They are - feature test macros defined by the platform, and are not meant - to be defined by anything other than the platform itself. - - * m4/config_h.m4 (ACE_PREP_CONFIG_HEADER): - - Fixed autoheader templates for the ACE_UINT64_TYPEDEF and - _POSIX_PTHREAD_SEMANTICS macros so that they include a "#undef - ..." in the template. Without the "#undef" the value of the - macro will not be substituted by `configure' script. That led - to build failures. Those failures have been corrected by this - fix. - - Removed autoheader templates for the _POSIX_THREADS and - _POSIX_THREAD_SAFE_FUNCTIONS preprocessor macros. They are - feature test macros defined by the platform, and are not meant - to be defined by anything other than the platform itself. - - Added descriptions for many preprocessor macros potentially - defined/substituted by the `configure' script. - - Sat Feb 1 10:20:45 2003 Ossama Othman - - * Makefile.am: - - Updated list of files and directories to be distributed. - Removed files that no longer from the list. - - * ace/Makefile.am: - - Updated header, inline, source and template file lists to - include new files. - - Wed Jan 29 13:54:21 2003 Ossama Othman - - * configure.ac: - - Fixed autoconf warnings about AC_DEFINE being called in second - argument of AC_CACHE_VAL. The second argument should only set - the value of cache ID variable. No other side effects should - occur. - - Tue Jan 28 14:57:50 2003 Ossama Othman - - * bin/bootstrap: - - Corrected invocation order `libtoolize' and `autoconf'. - `libtoolize' should be run prior to `autoconf'. Fixes an error - concerning a missing `libtool' script. - - Fri Jan 17 20:21:41 2003 Steve Huston - - * ace/Makefile.am: Fix syntax errors for libACE_Sockets_la_SOURCES. - - Tue Jan 7 22:59:05 2003 Ossama Othman - - * configure.ac: - - Enable Libtool and Automake support. - - * bin/bootstrap: - - Call `libtoolize' to add libtool support files to the ACE - distribution. - - * m4/config_h.m4: - - Added ACE_LACKS_ACE_CODECS macro template (for the sake of - completeness). - - * m4/subsets.m4: - - Added support for "--enable-lib-codecs" configure script - option. - - Wed Jan 1 10:28:27 2003 Ossama Othman - - * configure.ac: - - Ported old `configure.in' file to the latest Autoconf - `configure.ac' syntax. - - Initialize Automake with the new AM_INIT_AUTOMAKE macro format. - - * bin/bootstrap: - - Updated `autoheader' invocation to latest command line format. - - Commented out documentation generation shell script code. At - this early stage in the new autotool effort, we need not deal - with documentation generation. - - Commented out ACE workspace/release configuration shell script - code. It may be re-enabled in the future when it is clearer how - releases will be performed. - - * m4/ace.m4: - * m4/acinclude.m4: - * m4/compiler.m4: - * m4/features.m4: - * m4/platform.m4: - * m4/subsets.m4: - * m4/threads.m4: - - Updated all macros to the latest Autoconf 2.57 syntax. - - * acconfig.h: - * m4/config_h.m4: - - Replaced old `config.h' header template (acconfig.h) with the - latest "AH_TEMPLATE" form of the configuration header template. - -Thu Apr 17 17:07:36 2003 Irfan Pyarali - - * tests/Process_Mutex_Test.cpp: Reverted my change: - - Thu Apr 17 16:04:54 2003 Irfan Pyarali - - David Levine informed me that he had placed that sleep() - purposely: - - Thu Jul 22 11:54:58 1999 David L. Levine - - and said that: - - "I think the problem has to do with calling ::waitpid () before - a fork'ed child has actually been created. It's not enough for - fork () to have returned to the parent. This really shouldn't - be a problem, but it sure looked like it was on that platform." - - I have still closed bug 91 since this is a exceptional case. - -Thu Apr 17 16:04:54 2003 Irfan Pyarali - - * tests/Process_Mutex_Test.cpp: Removed call to sleep(). It was - really not required. This closes bug 91. - -Thu Apr 17 19:26:24 UTC 2003 Don Hinton - - * ace/os_include/aio.h: - * ace/os_include/assert.h: - * ace/os_include/complex.h: - * ace/os_include/cpio.h: - * ace/os_include/ctype.h: - * ace/os_include/dirent.h: - * ace/os_include/dlfcn.h: - * ace/os_include/errno.h: - * ace/os_include/fcntl.h: - * ace/os_include/fenv.h: - * ace/os_include/float.h: - * ace/os_include/fmtmsg.h: - * ace/os_include/fnmatch.h: - * ace/os_include/ftw.h: - * ace/os_include/glob.h: - * ace/os_include/grp.h: - * ace/os_include/iconv.h: - * ace/os_include/inttypes.h: - * ace/os_include/iso646.h: - * ace/os_include/langinfo.h: - * ace/os_include/libgen.h: - * ace/os_include/limits.h: - * ace/os_include/local.h: - * ace/os_include/math.h: - * ace/os_include/monetary.h: - * ace/os_include/mqueue.h: - * ace/os_include/ndbm.h: - * ace/os_include/netdb.h: - * ace/os_include/nl_types.h: - * ace/os_include/poll.h: - * ace/os_include/pthread.h: - * ace/os_include/pwd.h: - * ace/os_include/regex.h: - * ace/os_include/sched.h: - * ace/os_include/search.h: - * ace/os_include/semaphore.h: - * ace/os_include/setjmp.h: - * ace/os_include/signal.h: - * ace/os_include/spawn.h: - * ace/os_include/stdarg.h: - * ace/os_include/stdbool.h: - * ace/os_include/stddef.h: - * ace/os_include/stdint.h: - * ace/os_include/stdio.h: - * ace/os_include/stdlib.h: - * ace/os_include/string.h: - * ace/os_include/strings.h: - * ace/os_include/stropts.h: - * ace/os_include/syslog.h: - * ace/os_include/tar.h: - * ace/os_include/termios.h: - * ace/os_include/tgmath.h: - * ace/os_include/time.h: - * ace/os_include/trace.h: - * ace/os_include/ucontext.h: - * ace/os_include/ulimit.h: - * ace/os_include/unistd.h: - * ace/os_include/utime.h: - * ace/os_include/utmpx.h: - * ace/os_include/wchar.h: - * ace/os_include/wctype.h: - * ace/os_include/wordexp.h: - * ace/os_include/arpa/inet.h: - * ace/os_include/net/if.h: - * ace/os_include/netinet/in.h: - * ace/os_include/netinet/tcp.h: - * ace/os_include/sys/ipc.h: - * ace/os_include/sys/mman.h: - * ace/os_include/sys/msg.h: - * ace/os_include/sys/resource.h: - * ace/os_include/sys/select.h: - * ace/os_include/sys/sem.h: - * ace/os_include/sys/shm.h: - * ace/os_include/sys/socket.h: - * ace/os_include/sys/stat.h: - * ace/os_include/sys/statvfs.h: - * ace/os_include/sys/time.h: - * ace/os_include/sys/timeb.h: - * ace/os_include/sys/times.h: - * ace/os_include/sys/types.h: - * ace/os_include/sys/uio.h: - * ace/os_include/sys/un.h: - * ace/os_include/sys/utsname.h: - * ace/os_include/sys/wait.h: - - Added new set of headers as part of the Subsetting effort. - These headers will be slowly introduced throughout ACE and - TAO. - -Thu Apr 17 10:52:17 2003 Ossama Othman - - * ace/iosfwd.h: - - Added forward declarations of the iostream classes for the - ACE_HAS_STANDARD_CPP_LIBRARY, - !ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB, ACE_USES_OLD_IOSTREAMS - and !ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION case. This case - previously resulted in a basically empty header. - -Thu Apr 17 11:45:51 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Fixed a usage of undefined reference. - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/VC71ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/mpc.pl: - * bin/mwc.pl: - - Visual Studio .NET 7.1 is not 100% compatible with 7.0. So in - order to avoid requiring the user to generate projects for 7.0 and - then converting them, a new type has been added that generates - projects that are directly compatible with 7.1. - -Thu Apr 17 15:32:42 UTC 2003 Don Hinton - - * ace/Configuration.h: Made NULL_String public instead of protected - member variable. - -Thu Apr 17 08:23:19 2003 Ossama Othman - - * ace/Local_Name_Space.h (ACE_NS_String): - * ace/Local_Name_Space.cpp (ACE_NS_String): - * ace/Local_Name_Space_T.cpp (shared_rebind_i): - * ace/Name_Request_Reply.h: - * ace/Name_Request_Reply.cpp: - * ace/Remote_Name_Space.cpp: - * netsvcs/lib/Name_Handler.cpp: - - The underlying string is now an ACE_WCHAR_T instead of an - ACE_USHORT16. Not all platforms represent wide characters with - 16 bit unsigned integers. Adjusted all members, return types - and parameters accordingly. This change was prompted by the - consistency fixes made to ace/Basic_Types.h as detailed in the - "Wed Apr 16 13:35:34 2003 Ossama Othman " - ChangeLog entry. - - Use rep() instead of ushort_rep() when copying an - ACE_NS_WString. The latter only works for platforms with 16 bit - wide characters. - - * ace/Name_Request_Reply.h: - - No need to include "ace/Time_Value.h" and "ace/SString.h". The - latter isn't need at all, and a forward declaration for - ACE_Time_Value is sufficient. - - * ace/Name_Request_Reply.cpp: - - Include "ace/Time_Value.h" to pull in ACE_Time_Value class - declaration. - -Thu Apr 17 13:26:23 2003 Simon McQueen - - * bin/MakeProjectCreator/configmessaging_only.mpb: - * bin/MakeProjectCreator/rt_client.mpb: - * bin/MakeProjectCreator/rt_server.mpb: - - Supplied missing libpaths. - - * performance-tests/SCTP/SOCK_SEQPACK_clt.dsp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.dsp: - * performance-tests/SCTP/SOCK_STREAM_clt.dsp: - * performance-tests/SCTP/SOCK_STREAM_srv.dsp: - * tests/Multihomed_INET_Addr_Test.dsp: - * tests/SOCK_SEQPACK_Association_Test.dsp: - - Removed these dsp's pending the resubmission of the SCTP support - to prevent continual build errors. - -Thu Apr 17 12:07:44 UTC 2003 Don Hinton - - * ace/Configuration.cpp (temp_name): - - Access a static member variable with the class name outside - the class, not the this pointer. Changed return value to const. - -Thu Apr 17 07:05:50 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Escape the project name before using it within a regular - expression. - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - - Default the stack setting and allow the user to override it on the - command line: - - mpc.pl -type em3 -value_template stack=/stack:0x10000,0x1000 - - Thanks to Steve Huston for bringing about this change. - -Thu Apr 17 03:54:10 UTC 2003 Don Hinton - - * bin/g++_metric.sh: - - Propagate return code and only output compile metrics - on successful compilation. - - * bin/generate_compile_stats.sh: - - Improved html pages presentation. Automatically scale - graphs for better readibility, and sort detail section. - -Wed Apr 16 13:35:34 2003 Ossama Othman - - * ace/Basic_Types.h (ACE_WINT_T, ACE_WCHAR_T): - * ace/CDR_Base.h (WChar): - * ace/OS.h (WChar): - - Cleaned up redundant and inconsistent wide character related - typedefs. The ACE_OS::WChar and ACE_CDR::WChar types are now - based on the ACE_WCHAR_T type defined in ace/Basic_Types.h - rather than using a set of preprocessor conditionals to set - them. In particular, the preprocessor conditionals are now - localized in ace/Basic_Types.h. This reduces maintenance burden - since a single location need be modified instead of multiple. - -Wed Apr 16 19:27:29 UTC 2003 Don Hinton - - * ace/Get_Opt.{h,cpp}: - - Added default value for optstring in ctor so that apps can - more easily only use the long option format without also - having to provide a blank optstring. - - Added new method, last_option(), which returns the last option - processed. This allows applications to see the actual command - line text of the last option that was found (or not found in - the case of an error). This is especially useful in cases where - the option was invalid and the caller wants to print out the - invalid value. Resolves bug [1338]. - - Enhanced dump() output. - - * tests/Get_Opt_Test.cpp: - - Modified test to utilize new method, last_option(). - - * ace/Configuration.{h,cpp}: - - Added the ability to have a default, or unnamed, key. This - is done with the help of a new validate_value_name() method - which deals with the differences between Windows and everything - else. Resolves bug [1374]. - - * ace/Configuration_Import_Export.cpp (import_config): - - Changed to allow unnamed keys. - - * tests/Config_Test.cpp: - - Added test for unnanmed keys. - - * ace/Global_Macros.h: - - Modified ACE_BEGIN_DUMP macro to include a newline charater - at the end so that dump() output is easier to parse. - -Wed Apr 16 12:15:04 2003 Irfan Pyarali - - * ace/OS: - - - thr_setprio(): Streamlined code to only call - pthread_getschedparam() when is -1. - - - thr_getprio(): Added a new function so that the user can - retrieve scheduling policy information in addition to the - priority of a thread. This makes the thr_getprio() function - consistent with the changes to thr_setprio(). - - * ace/Thread: Made changes to the thr_setprio() and thr_getprio() - functions to make them similar to the ACE_OS functions. - -Wed Apr 16 11:34:49 2003 Balachandran Natarajan - - * bin/auto_run_tests.pl: Fixed a typo. - -Wed Apr 16 08:41:27 2003 Ossama Othman - - * ace/SString.h: - - Include "ace/OS.h" to pull in functions in the "ACE_OS" scope. - -Wed Apr 16 09:07:26 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - - Fixed a usage of undefined reference. - - * bin/MakeProjectCreator/templates/nmake.mpd: - - Make sure that idl gets processed before building the precompiled - header module. - -Wed Apr 16 00:10:37 2003 Ossama Othman - - * ace/CDR_Base.h: - - Isolated ACE_CDR::WChar typedef from the ACE_OS::WChar typedef. - Reduces coupling between CDR_Base.h and OS.h. - - No need to include ace/OS.h. - - Cosmetic improvements. - - * ace/CDR_Base.cpp: - - Include ace/OS.h. Necessitated by above change. - - * ace/CDR_Stream.h: - - Include ace/SStringfwd.h instead of ace/SString.h. Forward - declarations are enough. - - * ace/CDR_Stream.i: - - Use the ACE_OS_String scope instead of ACE_OS when calling - string functions. Allows removal of dependency on OS.h header. - - * ace/Global_Macros.h: - - Moved "ACE_THROW_SPEC" preprocessor macros from OS.h to this - header. Helps remove OS.h dependencies for some headers. - - * ace/INET_Addr.cpp (get_host_addr): - - Fixed VxWorks unused argument warnings. - - * ace/Message_Block.h: - - Changed all "u_long" typedefs to "unsigned long". Allows - removal of OS.h include. - - Include Default_Constants.h, Global_Macros.h, Time_Value.h and - . - - * ace/Message_Block_T.h: - - Corrected file documentation. - - * ace/OS.h: - - Moved "ACE_THROW_SPEC" and pointer alignment related macros to - smaller appropriate headers. - - * ace/OS_Memory.h: - - Moved pointer alignment related macros from OS.h to this - header. Helps reduce dependence on OS.h in some headers. - - * ace/SStringfwd.h: - - New file containing template forward declaration based - ACE_{C,W}String typedefs. Headers requiring these typedefs for - forward declarations now need only include this header instead - of SString.h. - - * ace/SString.h: - - Moved ACE_{C,W}String typedefs out of this header. See above - change. - - * ace/String_Base.h: - - Replaced ACE.h include with Global_Macros.h, OS_String.h and - OS_Memory.h. - - * ace/String_Base.i (hash): - * ace/String_Base.cpp (hash): - - Uninlined ACE_String_Base<>::hash method. Allows removal of - ACE.h include in String_Base.h. - - * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_read): - - Use of ACE_Message_Block::wr_ptr() when writing data from an - ACE_Message_Block, not rd_ptr(). - - * ace/SSL/SSL_SOCK_Stream.cpp (send, recv): - - Corrected problem in the vararg versions of these methods where - "holes" in data read/written occurred in partial reads/writes. - - * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): - - Improved "const" correctness. - -Wed Apr 16 06:55:53 UTC UTC 2003 Johnny Willemsen - - * netsvcs/clients/Naming/Dump_Restore/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile.main: - * netsvcs/clients/Naming/Dump_Restore/Makefile.Dump_Restore: - Split makefile into multiple ones, one for the shared library, one - for the main. This fixes linker errors with Kylix3 - -Tue Apr 15 16:06:24 2003 Douglas C. Schmidt - - * ace/Log_Msg_NT_Event_Log.cpp (close): Make sure to check for - this->evlog_handle_ != 0 before calling DeregisterEventSource(). - Thanks to Paxton Mason for reporting this. - - * ace/Timer_Wheel_T.cpp: Removed the use of a namespace since - this breaks certain compilers that don't support namespaces - (e.g., GCC 2.7-97 on LynxOS and SunC++ with the compat4=1 - options). Thanks to Olli Savia and - Craig Watcham for reporting this problem. - - * ace/OS.h: Make sure that things don't go awry on platforms - where clearerr is defined as a macro. Thanks to Olli Savia - for reporting this problem on LynxOS. - -Tue Apr 15 17:53:29 UTC 2003 Johnny Willemsen - - * ACEXML/parser/parser/Makefile: - When building shared library set the ACEXML_PARSER_BUILD_DLL - define. This fixes linker errors in the Kylix build. - -Tue Apr 15 17:33:01 UTC 2003 Johnny Willemsen - - * acconfig.h: - * ace/Addr.{h,cpp}: - * ace/README: - Removed ACE_HAS_BROKEN_SAP_ANY. With the removal of this define - from the MinGW config file it is not used anymore in ACE so we - remove this one. - -Tue Apr 15 09:47:22 2003 Venkita Subramonian - - * Kokyu/Kokyu.cpp: - * Kokyu/DSRT_Dispatcher_Impl.cpp: - * Kokyu/tests/DSRT_MIF/MIF.cpp: - * Kokyu/tests/DSRT_MIF/svc.conf: - * Kokyu/tests/DSRT_MIF/svc.conf.xml: - - Service config related changes to Kokyu DSRT framework. - -Tue Apr 15 11:24:59 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - Use bcpp as TAO_IDL preprocessor. - -Tue Apr 15 08:18:12 UTC 2003 Johnny Willemsen - - * ace/config-borland-common.h: - * ace/config-win32-borland.h: - Moved ACE_HAS_ITOA from config-borland-common to config-win32- - borland. It is only needed on Windows and not on Linux where - Kylix runs. - -Tue Apr 15 07:30:33 UTC 2003 Johnny Willemsen - - * examples/Timer_Queue/Makefile: - * examples/Timer_Queue/Makefile.main: - * examples/Timer_Queue/Makefile.TQTD: - Splitted makefile in 2 files, one to build the shared library, - one to build the main. - - * examples/Timer_Queue/Async_Timer_Queue_Test.h: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.h: - * examples/Timer_Queue/Thread_Timer_Queue_Test.h: - Use ACE_Svc_Export to export the driver classes from the shared - library. This fixes the Kylix link errors. - -Tue Apr 15 06:12:12 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - Corrected libraries to link with. - -Mon Apr 14 22:37:34 2003 Venkita Subramonian - - * Kokyu/Kokyu.cpp: - * Kokyu/DSRT_Dispatcher_Impl.cpp: - * Kokyu/DSRT_Dispatcher_Impl.h: - - Made the dispatcher a service object so that the scheduler type - can be passed as a parameter in svc.conf. - -Mon Apr 14 15:19:38 2003 Venkita Subramonian - - * Kokyu/tests/DSRT_MIF: - * Kokyu/tests/DSRT_MIF/MIF.cpp: - * Kokyu/tests/DSRT_MIF/Makefile: - - New test added for testing MIF schedule using Kokyu. - -Mon Apr 14 18:35:23 UTC 2003 Don Hinton - - * bin/generate_compile_stats.sh: - - Improved the html presentation by: - - - dividing ACE and TAO into two seperate pages. - - stripping off version numbers from libraries. - - stripping off the path from dependent objects (was - redundant and made it hard to read). - - sorting dependent object lists. - - stripping off the TAO/ part of the path for TAO object - since this was also redundant. - - always listing dependent objects even if there was only - one. - - Thanks to Bala for his suggestions. - -Mon Apr 14 18:28:13 UTC 2003 Johnny Willemsen - - * include/makeinclude/rules.lib.GNU: - Only pass LDFLAGS once to the linker of Kylix - - * include/makeinclude/platform_linux_borland.GNU: - Pass BORLDFLAGS to the SOFLAGS and removed setting of SOLINK.cc. - With -L the location of shared objects to link with can be set, - but this -L should be only specified once, and the paths should - then be divided by :. - -Mon Apr 14 12:56:07 2003 Venkita Subramonian - - * Kokyu/DSRT_Dispatcher_Impl.h: - * Kokyu/DSRT_Dispatcher_Impl.cpp: - * Kokyu/DSRT_Dispatcher_Impl.i: - - Added new files for Dynamic scheduling support. - -Mon Apr 14 17:28:56 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32-common.h: - Removed commented out define ACE_HAS_BROKEN_SAP_ANY - - * ace/config-win32-mingw.h: - Don't define ACE_HAS_BROKEN_SAP_ANY. It gives compile errors in the - Gateway app. - -Mon Apr 14 17:09:03 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.x_diab.GNU: - * include/makeinclude/platform_vxworks5.x_g++.GNU: - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - Changed the default of rtti to 1 because it is now needed to build - TAO. In the config.h file it can be overruled to 0 again for the - persons that want rtti disabled, but then they can't build TAO. - -Mon Apr 14 08:43:31 2003 Chad Elliott - - * apps/mkcsregdb/mkcsregdb.mpc: - - Added an mpc file for this project. - -Mon Apr 14 07:05:06 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a usage of undefined reference. - - * bin/mpc.pl: - * bin/mwc.pl: - - Added a -w to the command line to get the warnings. - -Mon Apr 14 10:55:48 2003 Simon McQueen - - * bin/msvc_auto_compile.pl: Amended the -TAO target so that - TAO/orbsvcs/test/Notify/lib is the first library built. Fixes - build error in TAO_RT_NotifyTests.dsp which depends on it. - -Mon Apr 14 10:14:54 2003 Simon McQueen - - * bin/MakeProjectCreator/config/namingexe.mpb: - * bin/MakeProjectCreator/config/server.mpb: - Added missing libpath entries. - -Sun Apr 13 23:00:43 UTC 2003 Don Hinton - - * bin/generate_compile_stats.sh: - - Modified script to pull date directly from build log, - only harvest build time for individual objects, dynamically - rollup objects into composite objects--libs or executables-- - based on link steps in build log, and dynamically generate - html pages for composite objects. - -Fri Apr 11 18:05:00 2003 Roy Pollock - - * ace/config-integritySCA.h - * tests/ACE.bsp - * tests/INTEGRITY.ld - - Add configuration and build files for INTEGRITY 4.0.9+SCA - - * ace/Default_Constants.h - * ace/Log_Msg.h - * ace/Mem_Map.cpp - * ace/OS.cpp - * ace/OS.h - * ace/SOCK_Dgram_Mcast.i - - Add defined(INTEGRITY) cases - - * ace/OS.i - - Cast the ACE_NOTSUP_RETURN of umask to mode_t - Add defined(INTEGRITY) cases - - * ace/POSIX_Asynch_IO.h - - Add two header includes under defined(INTEGRITY). I'm not sure - why these aren't needed on other platforms. - - * ace/SString.cpp - * ace/RMCast/RMCast_Reassembly.cpp - * ace/RMCast/RMCast_Retransmission.cpp - * tests/Token_Strategy_Test.cpp - - Fix #pragma instatiate cases to have correct syntax and match - the explicit template instantiation case. - -Fri Apr 11 13:37:34 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Insert the starting directory into the include path by default. - -Fri Apr 11 13:09:36 2003 Chad Elliott - - * bin/MakeProjectCreator/config/acedefaults.mpb: - - Avoid duplicate default lib values by assigning instead of adding. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - If there's only one resource file, take it even if it doesn't - match the project name. - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Make fornotlast, forlast, fornotfirst and forfirst abide by if - statements. - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - - Fixed a bug with idlgendir. The idl generated files were not - going where they were supposed to if idlgendir didn't equal ".". - -Fri Apr 11 16:18:08 2003 Simon McQueen - - * ace/Makefile.ace: - * ace/OS.h: - * ace/SOCK_Connector.cpp: - * ace/SOCK_Connector.h: - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/ace_dll.dsp: - * ace/RMCast/Makefile: - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/wrapper_macros.GNU: - * performance-tests/Makefile: - * tests/Makefile: - * tests/run_test.lst: - * tests/run_tests.bat: - * tests/RMCast/Makefile: - - Reverted changes to above files to pre ChangeLogTag: - Thu Apr 10 15:35:00 2003 Gautam Thaker - -Fri Apr 11 06:37:08 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - For assignments within components, we need to get the outer scope - value before adding or subtracting. - -Fri Apr 11 11:23:22 2003 Simon McQueen - - * ace/ace_dll.dsp: Replaced missing files to fix build error in - TAO. - -Fri Apr 11 05:56:12 UTC 2003 Johnny Willemsen - - * apps/drwho/Makefile: - Fixed error in cygwin specific part. - -Fri Apr 11 02:35:07 UTC 2003 Don Hinton - - * bin/g++_metric.sh: - * bin/generate_compile_stats.sh: - - Added new files for gathering and processing compile- - time statistics. - -Thu Apr 10 14:14:17 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Allow assignments that are specific to a particular project type. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Fixed a bug in the template where 'libs' is not used but - 'lit_libs' is. The 'lit_libs' wouldn't show up. - -Thu Apr 10 15:35:00 2003 Gautam Thaker - - * ace/Makefile.ace ace/OS.h ace/SOCK_Connector.cpp: - * ace/SOCK_Connector.h ace/SOCK_SEQPACK_Acceptor.h: - * ace/ace_dll.dsp ace/RMCast/Makefile: - * performance-tests/Makefile tests/Makefile: - * tests/run_test.lst tests/run_tests.bat: - * tests/RMCast/Makefile bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/wrapper_macros.GNU: - - Above files modified. - - * ace/Multihomed_INET_Addr.cpp ace/Multihomed_INET_Addr.h: - * ace/Multihomed_INET_Addr.i ace/SOCK_SEQPACK_Acceptor.cpp: - * ace/SOCK_SEQPACK_Acceptor.i ace/SOCK_SEQPACK_Association.cpp: - * ace/SOCK_SEQPACK_Association.h: - * ace/SOCK_SEQPACK_Association.i: - * ace/SOCK_SEQPACK_Connector.cpp ace/SOCK_SEQPACK_Connector.h: - * ace/SOCK_SEQPACK_Connector.i performance-tests/SCTP/Makefile: - * performance-tests/SCTP/Options_Manager.cpp: - * performance-tests/SCTP/Options_Manager.h: - * performance-tests/SCTP/README: - * performance-tests/SCTP/README.SCTP: - * performance-tests/SCTP/README.SCTP_PERF_TEST: - * performance-tests/SCTP/README.SCTP_in_ACE: - * performance-tests/SCTP/SCTP.dsw: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_clt.dsp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.dsp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.dsp: - * performance-tests/SCTP/SOCK_STREAM_srv.cpp: - * performance-tests/SCTP/SOCK_STREAM_srv.dsp: - * performance-tests/SCTP/THANKS: - * performance-tests/SCTP/hist.cpp: - * performance-tests/SCTP/hist.h: - * performance-tests/SCTP/run_spectrum.config: - * performance-tests/SCTP/run_spectrum.pl: - * performance-tests/SCTP/sample-spectrum.png: - * tests/Multihomed_INET_Addr_Test.cpp: - * tests/Multihomed_INET_Addr_Test.dsp: - * tests/SOCK_SEQPACK_Association_Test.cpp: - * tests/SOCK_SEQPACK_Association_Test.dsp: - - Above files added. - - Jason Cohen : - First SCTP checkin for ACE. The major contrib of this - checkin include the SOCK_SEQPACK classes, Multihomed_INET_Addr, - SCTP performance tests, and READMEs. - -Thu Apr 10 09:41:13 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Forgot to change the usage of GNUProjectCreator to - GNUACEProjectCreator. - -Thu Apr 10 06:52:41 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - * bin/mpc.pl: - * bin/mwc.pl: - - Renamed GNU to GNUACE to indicate that the projects will only work - within ACE. - - * bin/MakeProjectCreator/modules/GNUProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm: - - Removed these files in the rename. - -Thu Apr 10 13:02:42 CEST 2003 Oliver Kellogg - - * tests/tests.{dsw,icp}: Added Unbounded_Set_Test_Ex. - - * tests/Unbounded_Set_Test_Ex.{dsp,icc}: New. - - Please bear with me, these changes were made "blindly", i.e. - I don't have access to those build environments. - -Thu Apr 10 09:51:59 2003 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Improved Kylix specific rules. For Kylix we strip the -l in from - ACE_SHLIBS and prefix it with lib and postfix with .so. - -Thu Apr 10 08:12:22 2003 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - Improved this file for Kylix support. - -Thu Apr 10 07:47:12 2003 Johnny Willemsen - - * examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp: - Fixed compile error with GNU. - -Wed Apr 9 14:10:42 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/make.mpd: - - Added an install target and fixed a bug with nested makefiles. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Fixed a bug with 'requires' and 'avoids' when building libraries. - -Wed Apr 9 13:39:20 2003 Stuart Jones - - * ace/DLL_Manager.cpp: - - Added check for NULL pointer in close method. The instance - method for the ACE_Framework_Repository class can return - NULL if the Object Manager is starting up, or shutting down - and the singleton hadn't been created. This was causing a - SEGV in a later pthread_mutex_lock (DOC Bug# 1479) - -Wed Apr 9 17:11:12 UTC 2003 Johnny Willemsen and me. Improves VxWorks 5.5, MingW, Cygwin - and Kylix support. - - * ACE-INSTALL.html: - Updated for VxWorks 5.5 and documented how to use BCB with SSL. - - * Makefile.bor: - Removed build variable nightlybuild because we don't need it - anymore. - - * ace/Based_Pointer_Repository.cpp: - * ace/Dynamic.cpp: - For VxWorks also explicit instantiate static template member. This - fixes unresolved externals when using implicit templates. - - * ace/Event_Handler_T.i (get_handle ): - In case of an error, return ACE_INVALID_HANDLE and not -1 because - -1 causes problems with MingW and is not portable. - - * ace/Log_Msg_NT_Event_Log.cpp: - * ace/Log_Msg_NT_Event_Log.h: - * ace/README: - * ace/config-doxygen.h: - * ace/config-win32-common.h: - For the WinNT event log backend added a new define called - ACE_HAS_LOG_MSG_NT_EVENT_LOG. This is set in the doxygen file to - generate documentation for it. This makes it possible to generate - the documentation and to better specify to use the WinNT event log - backend or not. - - * ace/Date_Time.{h,i}: - Added a constructor to initialize an ACE_Date_Time with an - ACE_Time_Value. - - * ace/Module.h: - Improved doxygen documentation. - - * ace/config-win32-mingw.h: - Require win32api version 2.0 or later and removed Win32 API - definitions because older versions of win32api lacked these. - - * apps/drwho/Makefile: - Don't build drwho with MingW and Cygwin. - - * examples/Reactor/Misc/test_event_handler_t.cpp (signal_handler): - Signum should be an int instead of an ACE_HANDLE. - - * examples/Reactor/Ntalker/ntalker.cpp: - Changed argument interface to a_interface because interface is a - macro with MinGW. - - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp: - * examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp: - Modified code so that when SystemV IPC isn't supported this is - printed, else the code is build normally. Fixes Cygwin and MinGW - compile problems. - - * include/makeinclude/platform_cygwin32.GNU: - * include/makeinclude/platform_mingw32.GNU: - Disable auto import warnings. There is a bug in the MinGW/Cygwin - compiler and until that is fixed the warnings are wrong so we - disable. See these files for the link to the MinGW bugentry. - - * include/makeinclude/platform_g++_common.GNU: - Make sure that unrecognized compiler options are not set with - VxWorks 5.5. Fixes bugzilla entry [1452]. Thanks to Thomas Lockhart - for reporting this and sending the - fix. - - * include/makeinclude/platform_linux_borland.GNU: - Improved this file so that we better support the Kylix3 compiler. We - don't support it 100% but we can now build the ACE tests without - problems. Several also run but also several still have problems. - - * include/makeinclude/platform_sunos5_ghs.GNU: - * include/makeinclude/platform_sunos5_kcc.GNU: - Use explicit without double quotes to match other files. - - * include/makeinclude/platform_vxworks5.x_diab.GNU: - Set VSHDIR to $(VDIR) to make it possible to override it. - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - Set VSHDIR to $(VDIR) to make it possible to override it. Moved - include of platform_g++_common.GNU after the place where CXX is set - to resolve compiler problems. Also use explicit with double quotes - to match the other files, the result is that explicit template - instantiation is again the default to use. - - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/wrapper_macros.GNU: - Improved and extended Kylix specific rules. For Kylix we strip the - -l in from of each shared library passed to the linker and prefix - with lib and postfix with .so. - - * tests/Time_Value_Test.cpp: - Test assignment operator of ACE_Time_Value. - -Wed Apr 9 15:51:32 UTC 2003 Don Hinton - - * ace/Malloc_Allocator.{i,cpp}: - - Uninlined ACE_New_Allocator::{malloc, calloc, free} () to - avoid the multiple heap problem on systems like Windows. - Thanks to Gonzalo Diethelm - for reporting the problem. This fixes bug [1464]. - -Wed Apr 09 17:04:01 2003 Simon McQueen - - * apps/mkcsregdb/mkcsregdb.dsp: Added missing library in release - configuration. - -Wed Apr 9 08:22:56 2003 Chad Elliott - - * bin/MakeProjectCreator/config/default.rel: - * bin/MakeProjectCreator/config/taoexe.mpb: - * bin/MakeProjectCreator/config/taolib.mpb: - * bin/MakeProjectCreator/config/vcfullmacros.mpt: - * bin/MakeProjectCreator/config/vcpartialmacros.mpt: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/GNUProjectCreator.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateInputReader.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Removed as much hard coded ACE and TAO related text and put it in - configuration files. - -Tue Apr 8 15:03:51 2003 Steve Huston - - * tests/tests.mpc: Added Unbounded_Set_Test_Ex. - -Tue Apr 8 13:29:05 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Take into account the possibility of using 'defaultlibs' or - 'lit_libs' without using 'libs'. - -Tue Apr 8 13:12:25 2003 Balachandran Natarajan - - * ace/Min_Max.h: #included config-all.h. This is needed for the - header file to be used succesfully. This fixes [BUG 1485 and - thanks to Paul Marquis for reporting this - problem. - -Tue Apr 08 17:01:02 2003 Simon McQueen - - * apps/mkcsregdb/mkcsregdb.dsp: Changed 'Use run time library' - setting to fix error in Release configuration. - -Tue Apr 8 06:50:38 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/vc7.mpd: - - Removed the ProgramDataBaseFileName section. It seems to cause - build problems. - -Mon Apr 7 16:58:55 2003 Balachandran Natarajan - - * ace/Select_Reactor_Base.cpp (unbind): Fixed a subtle problem - during complete shutdown of the event handler. - - Problem: During the unbind () call we call handle_close () after - which we nullify the event handlers without much checks. This - dangerous if the application during the callback, - ie. handle_close () call registers a new handler with the - reactor. It is quite possible that the map is changed during - registration. - - Solution: We check whether the event handler's pointer in the - map and the one that was cached before calling handle_close () - are the same. - - Thanks to Kobi Cohen-Arazi" for reporting the - problem. - -Mon Apr 7 17:04:20 2003 Steve Huston - - * tests/Unbounded_Set_Test_Ex.cpp: Moved the definition of MyNode - to its own file, Unbounded_Set_Test_Ex.h to allow the - ever-cooperative AIX Visual Age C++ compiler to find the definition - when instantiating templates. Also changed the name of the - recorded log file to match the test name so the autobuild - log analysis can find it. - - * tests/run_test.lst: Added Unbounded_Set_Test_Ex. - -Mon Apr 7 12:27:25 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - If HASH and SCALAR values are mixed in a template foreach, then - remove the SCALAR values. - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Try to make these templates less TAO focused. - - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Began adding support for MFC projects. - -Sat Apr 5 11:23:11 2003 John Michael Zorko - - * include/makeinclude/platform_macosx.GNU (CXX): Mac OSX currently - uses 64 bits for long doubles, and Apple's gcc3.1 compiler - outputs a warning if long doubles are used (since they might - change to 96 or 128 bits in the future). In the meantime, the - following patch (also attached) turns off the warning. - -Fri Apr 4 10:49:29 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/StringProcessor.pm: - - Treat single quotes as special characters when creating arrays. - They now work similarly to double quotes. - -Fri Apr 4 09:22:25 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Allow mwc files to have scoped assignments that will only apply to - the mpc files within that scope. - -Thu Apr 03 17:20:32 2003 Pradeep Gore - - * bin/MakeProjectCreator/config/notifytest.mpb: - Changed target to TAO_NotifyTests. - * bin/tao_other_tests.lst: - Added TAO/orbsvcs/tests/Notify/Lanes/run_test.pl and - TAO/orbsvcs/tests/Notify/ThreadPool/run_test.pl - or RT_Notification. - -Thu Apr 3 11:24:35 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: Added a new test for the daily builds. - -Thu Apr 3 08:20:12 2003 Johnny Willemsen - - * Kokyu/Default_Dispatcher_Impl.h: Fixed doxygen fuzz error - -Wed Apr 2 12:44:58 2003 Chad Elliott - - * include/makeinclude/platform_hpux_aCC.GNU: - * include/makeinclude/rules.lib.GNU: - - Added an AREXTRA macro that allows the user to add arbitrary text - at the end of the ar command. HP-UX aCC defines AR in a way that - causes build errors. AREXTRA is used to fix this build problem - and doesn't affect any other platform. - -Wed Apr 2 10:17:59 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - - Factored the dynamic and static accessors into this class from - WorkspaceCreator.pm. - - * bin/MakeProjectCreator/modules/Options.pm: - - Added a utility function which can be used to determine if an - option has been used. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Use the factored dynamic and static accessors. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added the functionality to track which projects have been - generated. If multiple workspaces with overlapping projects are - processed within the same process, it is able to skip the - re-generation of the overlapping projects. Also added the ability - to use "mwb" files as base project files. - -Wed Apr 2 08:49:51 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Allow libraries to be built only if "requires" and "avoids" are - met. - -Wed Apr 2 11:51:52 CEST 2003 Oliver Kellogg - - * tests/Unbounded_Set_Test.cpp, tests/Unbounded_Set_Test_Ex.cpp: - - Zap extraneous trailing semicolons on #pragma instantiates. - -Wed Apr 2 11:44:41 CEST 2003 Oliver Kellogg - - * tests/Unbounded_Set_Test.cpp, tests/Unbounded_Set_Test_Ex.cpp: - - Add explicit template instantiations. - -Tue Apr 1 17:02:37 2003 Steve Huston - - * tests/Process_Strategy_Test.cpp: Nul-terminate received command - string to ACE_TEXT_CHAR_TO_TCHAR can deal with it; this is needed - to properly log the string in wide-char builds. - -Tue Apr 1 15:52:41 2003 Steve Huston - - * tests/Multicast_Test.cpp: If the platform doesn't support IP - multicast, log an info message, not an error. - -Tue Apr 1 10:06:57 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Fixed a bug with multiple types and an mpc file specified with - a directory. The original file name was not being preserved. - -Tue Apr 1 16:02:30 CEST 2003 Oliver Kellogg - - * ace/Makefile.{am,bor}: Added Unbounded_Set_Ex. - -Tue Apr 1 13:42:37 CEST 2003 Oliver Kellogg - - * tests/Unbounded_Set_Test_Ex.cpp: New. - - This is a replica of Unbounded_Set_Test.cpp but uses the new - ACE_Unbounded_Set_Ex class instead of ACE_Unbounded_Set. - This is for side-by-side comparisons between the two tests. - - * tests/Makefile: Added Unbounded_Set_Test_Ex, updated dependencies. - - * tests/Makefile.{am,bor}: Added Unbounded_Set_Test_Ex. - -Tue Apr 1 12:48:33 CEST 2003 Oliver Kellogg - - * ace/Node.{h,cpp}: - - Added back the deleted_ member. - This sets the stage for the new Ace_Unbounded_Set_Ex class. - - * ace/Unbounded_Set_Ex.{h,inl,cpp}: New. - - This class is a variation on ACE_Unbounded_Set that fixes - Bugzilla bug 1460. - - * ace/Makefile.ace: Add Unbounded_Set_Ex. - -Mon Mar 31 14:04:22 2003 Phil Mesnier - - * ace/CDR_Stream.cpp: - * ace/CDR_Stream.h (ACE_OutputCDR): Provide an accessor method, - ACE_OutputCDR::wchar_maxbytes() for getting the stream size for - wide characters when no translator is involved. - - There was a problem reading wstrings when the maxbytes is less - than the size of a wchar_t. When the maxbytes value was 1, I was - using a static cast from a char to a wchar, which caused sign - propogation. Changing to assignment from an octet solved that. - - * ace/Codeset_Registry_db.cpp: Added entries for common 2 byte and - 4 byte wchar codesets, UTF-16 and UCS-4. - - * ace/Codeset_Registry.cpp: - * ace/Codeset_Registry.h: - * ace/Codeset_Registry.inl: Retyped validation methods to return - int rather than CORBA::Boolean as a result code. - -Mon Mar 31 14:03:35 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added an 'implicit' assignment to the workspace that will cause - the workspace creator to generate projects in directories where - there are no mpc files. If no valid project can be made, then - that directory is ignored. - -Mon Mar 31 12:32:32 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: Added the new collocation tests to the - daily builds. - -Mon Mar 31 08:44:16 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug in the project creator dealing with precompiled header - files. If the pch_header or pch_source is set to "" then we need - to be sure that pch information is not put in the generated - project file. - -Mon Mar 31 08:19:16 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Fixed a bug in the Microsoft related template files where the - installed executable would not be put in the install directory. - It was previously placed in a subdirectory of the install - directory. - -Mon Mar 31 15:51:54 CEST 2003 Oliver Kellogg - - * tests/Unbounded_Set_Test.cpp: - - Verify that a set may be emptied while an iterator on the set is - in-scope but inactive. - - Changed the "Selective deletion of elements" step not to summon - bug 1460. - -Mon Mar 31 14:13:31 2003 Simon McQueen - - * apps/mkcsregdb/mkcsregdb.dsp: Added release configuration custom build step. - -Sun Mar 30 21:46:54 2003 Balachandran Natarajan - - * bin/topinfo_iorsize_stats.sh: Added data collection points for - optimized cases. - -Sun Mar 30 09:12:16 2003 Douglas C. Schmidt - - * ace/Connector.cpp (handle_timeout): Restructured the code so that - if the call to sh->handle_close() deletes the handlers, which in - turn deletes the connector, the decr_ast_refcount() call won't - cause a crash. Thanks to Tomer Amiaz for - reporting this bug and supplying a fix. - -Sat Mar 29 16:34:56 2003 Balachandran Natarajan - - * THANKS: Added Bertin Colpron to the hall of fame. - -Fri Mar 28 16:04:28 2003 Steve Huston - - * ace/OS.{h,i,cpp} (string_to_argv): Use ACE_LIB_TEXT around characters - to make them compare correctly when ACE_USES_WCHAR. Fixes this - method for use with CE. Obviates the need for ACE_CE_ARGV, which - is now gone. Users of ACE_CE_ARGV should use ACE_ARGV, which does - the same thing as ACE_CE_ARGV. - Also added /**/ to #include to prevent warnings from - Visual C++. - - * ace/config-win32-common.h: Corrected the Winsock 2, WinCE checks to - check for UNDER_CE >= 400, not == 4. - - * ace/Makefile.ace: - * docs/ACE-subsets.html: Moved ARGV and Argv_Type_Converter from UTILS - to OS; getting command lines correct is needed for basic OS function. - - * bin/PerlACE/Process_Win32.pm: Move the pocketcontroller-required - sleep from after each test to before it. This accounts for the - need to sleep after copying the initial DLLs and test files down - before beginning the test runs. The copying does a reset, requiring - some delay before attempting the first test. - -Fri Mar 28 10:18:48 2003 Steve Huston - - * bin/PerlACE/Process_Win32.pm: For WinCE, when generating the - Pocket Controller script, put a 60-second sleep between running the - test and grabbing the log file. The script doesn't wait for the - program to exit before continuing. Will take this up with SOTI, - makers of Pocket Controller. - - * ace/Configuration.cpp (ACE_Configuration_Win32Registry::remove_section): - In the non-recursive case, try to delete the key; previously only - tried to delete the key if recursive. - - * tests/Config_Test.cpp: When reporting failed file import, list why - (%p), not the failed return status (-1). Also fixed many ACE_DEBUG - and ACE_ERROR strings by enclosing in ACE_TEXT. - - * tests/Conn_Test.cpp: When displaying a hostname, properly adjust - to the charset width in use. - - * tests/run_test.lst: Added !WinCE to Env_Value_Test. CE doesn't - do environment variables. - -Thu Mar 27 14:20:32 2003 Balachandran Natarajan - - * THANKS: Added Jia Wan to the hall of fame. - -Wed Mar 26 16:45:29 2003 Balachandran Natarajan - - * THANKS: Added Sebastien Lalonde to the hall of fame. - -Wed Mar 26 16:48:31 2003 Steve Huston - - * ace/config-WinCE.h: Let ACE_HAS_WINSOCK2 be conditional on the CE - version; there was a #define ACE_HAS_WINSOCK2 at the end of the - file that shouldn't have been there. - - * ace/config-win32-common.h: For WinCE and ACE_HAS_WINSOCK2, need - to define the errno codes without WSA prefixes. Also, WinCE (at - least at CE 4.0) doesn't have Winsock 2 extensions, so don't pull - in mswsock.h, and set up to link ws2.lib, not ws2_32.lib. - - * ace/Reactor.cpp: Don't use ACE_HAS_WINCE to block out - ACE_WFMO_Reactor; use the more direct tests (Winsock versions) if - needed. - - * ace/SPIPE_Stream.i (send_handle): Don't attempt this on WinCE even - though CE4 has ACE_HAS_WINSOCK2. It doesn't have WSADuplicateSocket. - -Wed Mar 26 16:15:39 2003 Simon McQueen - - * ace/Unbounded_Set.h: - * ace/Unbounded_Set.cpp: - * ace/Unbounded_Set.inl: - * ace/Node.h: - * ace/Node.cpp: - * tests/Makefile: - * tests/Makefile.am: - * tests/Makefile.bor: - - Reverted changes to the above to position before changelog entry: - Mon Mar 24 13:16:29 CET 2003 Oliver Kellog - -Wed Mar 26 16:48:54 CET 2003 Oliver Kellogg - - * tests/Unbounded_Set_Test.cpp: - - Corrected signature of main program and inserted an - ACE_START_TEST/ACE_END_TEST. Thanks to Johnny Willemsen for - suggesting this. - -Wed Mar 26 11:33:15 CET 2003 Oliver Kellogg - - * ace/Unbounded_Set.cpp (ACE_Unbounded_Set::delete_nodes): - - Temporarily commented out the ACE_ASSERT(number_of_iterators_ == - 0) until the iterator usage problem is repaired in TAO. - -Tue Mar 25 21:08:04 2003 Phil Mesnier - - * ace/CDR_Stream.cpp: - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - - Added the value wchar_maxbytes_ to the ACE_OutputCDR which is - used to control the size of the wchar on the wire when no - translator is being used. This is because it is valid to use a - wchar codeset for which the maximum size is smaller than the - size of a wchar_t. - - * ace/OS.h: - - When defining the ACE-specific type WChar, added the existance - of the ACE_HAS_XPG4_MULTIBYTE_CHAR as a condition to allow WChar - to be an alias of wchar_t, rather than of ACE_UINT16. - - * ace/OS.i: - * ace/config-linux-common.h: - - As part of the wchar changes, it was discovered that older linux - platforms lack fgetwc() and ungetwc(), although all other wide - char related functions are supported. Added ACE_LACKS_FGETWC to - guard against this condition. - - * ace/ace_wchar.h: - - Rework the ifdef sieve to ensure that platforms such as solaris - that really do support wchar get initialized properly. - -Tue Mar 25 09:01:00 2003 Ossama Othman - - * ace/Default_Constants.h (ACE_CONNECTOR_HANDLER_MAP_SIZE): - - Changed type of this constant from "size_t" to "unsigned int". - This header does not include system headers that define "size_t" - type. Fixes a syntax error on some platforms. - -Tue Mar 25 17:09:22 CET 2003 Oliver Kellogg - - From Rudolf Weber - * ace/Unbounded_Set.cpp: - Correction to the handling of the deleted_ flag in the iterators. - - * tests/Unbounded_Set_Test.cpp: - Extended towards making it a general test of the ACE_Unbounded_Set. - Added test for the ACE_Unbounded_Set_Const_Iterator. - -Tue Mar 25 10:44:23 CET 2003 Oliver Kellogg - - * ace/Unbounded_Set.{h,cpp}: Removed the `const' at the - ACE_Unbounded_Set::iterator_leave() method declaration. - -Mon Mar 24 22:05:56 2003 Balachandran Natarajan - - * ace/Default_Constants.h: Added a const value for the connector's - map size. - * ace/Connector.cpp: Used the constant value to configure the - internal map. Too large a map doesnt help with run-time - footprint. - -Mon Mar 24 18:06:49 2003 Balachandran Natarajan - - * bin/auto_run_tests.pl: Modified the script to do the following - - - Added an option to run only TAO tests in $TAO_ROOT/tests. - - Instead of reading just one file for all the tests and - examples in our daily builds, we will now use 3 files. One of - the files is for ACE tests, one for tests in TAO and the last - one is for all the other tests and examples in TAO. - - This provides various flexibilities for a poor developer like - yours truly, to just build and run all the tests in TAO/tests - after making changes to the ORB Core. It helps automating some - development work. We could also take this to our daily - builds. We will see more of this over a period of time. - - The changes should be backward compatible and shouldnt break any - of the existing builds. - - * bin/ace_tests.lst: - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: New configuration files for ACE+TAO - tests. We will use only this to add new tests to ACE+TAO. - - * bin/auto_run_tests.lst: Removed this file from the repo. - -Mon Mar 24 10:23:08 2003 Ossama Othman - - * ace/SSL/SSL_Context.h: - - No longer any need to include "ace/Singleton.h" due to the below - change. - - From David Kinder - * ace/SSL/SSL_Context.inl (instance): - * ace/SSL/SSL_Context.cpp (instance): - - Uninlined this method. Fixes a problem found in Win32 "release" - builds where an application could end up with multiple - ACE_SSL_Context singleton instances. [Bug 1475] - -Mon Mar 24 18:03:34 CET 2003 Oliver Kellogg - - * ace/Unbounded_Set.{h,cpp}: - - Added method const_iterator_leave() in class ACE_Unbounded_Set. - The destructor of the ACE_Unbounded_Set_Const_Iterator calls - it. Deleted elements are not cleaned up in that case, but they - probably don't need to, given that we are dealing with a "const" - set. - - Thanks to Jeff Parsons for noticing the problem. - -Mon Mar 24 06:54:55 2003 Douglas C. Schmidt - - * ace/config-linux-common.h: Change the ACE_DEFAULT_BASE_ADDR for - the IA-64 from 0x8 to 0x0 so the Linux kernel can choose the - right value. Thanks to Sergei Pimenov - for reporting this. - -Mon Mar 24 13:16:29 CET 2003 Oliver Kellogg - - * ace/Node.{h,cpp}: - * ace/Unbounded_Set.{h,inl,cpp}: - - Fix for Bugzilla bug 1460 supplied by Rudolf Weber - , adds a `deleted' flag to ACE_Node, and - adds corresponding management methods to ACE_Unbounded_Set. - - * tests/Unbounded_Set_Test.{cpp,icc}: New. - - * tests/Makefile, tests/Makefile.{am,bor}: - Add Unbounded_Set_Test.cpp, a regression test for bug 1460. - -Sat Mar 22 11:58:12 2003 Douglas C. Schmidt - - * ace/Configuration.cpp: When remove_section() was called the - buckets created for the value and section hash map were not - deleted. Added two new lines after - if (index_->unbind (SectionExtId, allocator_)) - return -1; - - as follows: - - value_hash_map->close(); - section_entry->int_id_.section_hash_map_->close(allocator_); - - Thanks to Sandip Patel for reporting - this. - - * ace/Message_Queue_T.cpp: Moved the notify() hook calls within - the protection of the guard lock critical section to prevent - race conditions on cleanup. Thanks to Ron Muck - for this suggestion. - -Fri Mar 21 13:07:09 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added a -base option to allow a user to specify multiple base - projects to be applied toward all generated project files. - -Fri Mar 21 10:42:41 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Factored assignment processing from ProjectCreator into Creator. - Factored convert_slashes() from ProjectCreator into Parser. - - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Options.pm: - - Factored option processing from Driver into a new module, Options. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added support for workspace specific assignments. Currently the - only valid assignment is 'cmdline' which allows mwc to apply - command line options to a specific set of mpc files. - -Fri Mar 21 09:48:33 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Driver.pm: - - Added the -static_only option back in to allow generation of - static projects only. - -Thu Mar 20 19:50:36 2003 Steve Huston - - * ace/OS.i (ACE_OS::recursive_mutex_cond_unlock): If on WinCE, don't - do the check for RecursionCount; WinCE's structure doesn't have that - member. Also see: - Sat Mar 15 10:55:01 2003 Douglas C. Schmidt - -Thu Mar 20 17:51:39 2003 Steve Huston - - * bin/MakeProjectCreator/templates/em3vcp.mpd: Only output a linker - /entry option if building a DLL. Let binary programs pick up the - correct entrypoint from the subsystem type. It defaults to windowsce, - requiring WinMainCRTStartup. - -Thu Mar 20 14:11:01 2003 Ossama Othman - - * ace/Codecs.cpp (encode, decode): - - Fixed "comparison is always false due to limited range of data - type" warning by removing those comparisons and accompanying - code. - -Thu Mar 20 14:00:53 2003 Ossama Othman - - * ace/Memory_Pool.cpp (find_seg): - - Fixed overflow in pointer arithmetic on platforms where - sizeof(void*) is greater than sizeof(off_t). This also fixes a - "cast from pointer to integer of different size" warning. - -Thu Mar 20 12:56:26 2003 Ossama Othman - - * tests/Recursive_Condition_Bug_Test.cpp: - - Fixed unused variable warning in single-threaded builds. - -Thu Mar 20 12:35:09 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added a new keyword lit_libs that is identical to libs except that - with windows build tools, a library modified (s,d,sd) is not - added to the library name. - -Thu Mar 20 11:23:46 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Changed the default behavior for naming workspaces and projects. - They now use the name of the mwc and mpc file respectively. - -Thu Mar 20 07:23:48 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Driver.pm: - - Removed -dynamic_only and -static_only options and made "dynamic - only" the default. I added a -static option that will allow the - user to generate static projects in addition to dynamic projects. - -Thu Mar 20 07:09:54 2003 Douglas C. Schmidt - - * ace/Process_Manager.cpp: The wrong remove_handler() method was - being used in the ACE_Process_Manager::close() method. Changed - this to use the remove_handler() that removes the SIGCHLD - handler. Thanks to Carsten Prescher - for this fix. - -Wed Mar 19 18:27:08 2003 Venkita Subramonian - - * Kokyu: - * Kokyu/Default_Dispatcher_Impl.cpp: - * Kokyu/Default_Dispatcher_Impl.h: - * Kokyu/Default_Dispatcher_Impl.i: - * Kokyu/Dispatcher_Impl.cpp: - * Kokyu/Dispatcher_Impl.h: - * Kokyu/Dispatcher_Impl.i: - * Kokyu/Dispatcher_Task.cpp: - * Kokyu/Dispatcher_Task.h: - * Kokyu/Dispatcher_Task.i: - * Kokyu/Kokyu.cpp: - * Kokyu/Kokyu.dsw: - * Kokyu/Kokyu.h: - * Kokyu/Kokyu.i: - * Kokyu/Kokyu.cpp: - * Kokyu/Kokyu.dsw: - * Kokyu/Kokyu.mpc: - * Kokyu/Kokyu_DLL.dsp: - * Kokyu/Kokyu_Static.dsp: - * Kokyu/Makefile: - * Kokyu/kokyu_export.h: - * Kokyu/tests: - * Kokyu/tests/EDF: - * Kokyu/tests/EDF/EDF.dsp: - * Kokyu/tests/EDF/EDF.dsw: - * Kokyu/tests/EDF/Makefile: - * Kokyu/tests/EDF/test.cpp: - * Kokyu/tests/FIFO: - * Kokyu/tests/FIFO/FIFO.dsp: - * Kokyu/tests/FIFO/FIFO.dsw: - * Kokyu/tests/FIFO/Makefile: - * Kokyu/tests/FIFO/test.cpp: - - First Kokyu release. - -Wed Mar 19 12:08:31 2003 Chad Elliott - - * include/makeinclude/platform_irix6.x_sgic++.GNU: - - Suppress warning numbers 1253,3439,1234 and 3506. - -Wed Mar 19 07:27:59 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/nmake.mpd: - - Added depend, idl_stubs and realclean targets. - -Tue Mar 18 07:24:26 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - If files are listed in "Template_Files" and "Source_Files" is - omitted, then "Source_Files" could have duplicated values from - "Template_Files". A new method has been added to correct this - situation. - -Mon Mar 17 17:38:05 2003 Balachandran Natarajan - - * include/makeinclude/platform_linux_icc.GNU: The GNU file can now - work with 64 bit intel compiler in Itanium. Thanks to Lubomir - Bulej and Petr Tuma - for providing the patches. - -Mon Mar 17 19:20:54 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_cygwin32.GNU: - Set threads to 0 when it is not defined yet. From the Cygwin daily - build we found that threading is just partly enabled with Cygwin. - First tries to enable it completely resulted in a lot of new errors, - so for the time being disable threads by default and then start - working on getting everything working with threading enabled. - Also removed setting of optimized and the --enable-auto-import - because they are not needed. - -Mon Mar 17 09:58:48 2003 Chad Elliott - - * ace/ace.mpc: - - Updated the project to include the correct template, inline and - header files. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Changed the defaults for precompiled headers. If multiple pch - headers are found, then take the one closest to the project name. - -Sun Mar 16 10:12:12 2003 Johnny Willemsen - - * ace/OS.i (recursive_mutex_cond_unlock): Fixed typo - -Sat Mar 15 13:50:18 2003 Steve Huston - - * tests/tests.mpc: Added Recursive_Condition_Bug_Test. - -Sat Mar 15 12:20:45 2003 Nanbor Wang - - * tests/tests.dsw: - * tests/Recursive_Condition_Bug_Test.dsp: Added a new project file. - -Sat Mar 15 10:55:01 2003 Douglas C. Schmidt - - * tests/Makefile: - * tests/Makefile.bor: - * tests/run_test.lst: Added Recursive_Condition_Bug_Test.cpp to - these files. - - * tests: Added a new Recursive_Condition_Bug_Test.cpp to check - that the fix from Leonid Kvetnyi is correct and doesn't cause - other problems. - - * tests/Recursive_Condition_Test.cpp (ACE_TMAIN): Minor reformatting. - - * ace/OS.i (recursive_mutex_cond_unlock): Added another check for - m->RecursionCount > 1 to fix problems where the test program hangs. - Thanks to Leonid Kvetnyi for this fix. - - * ace/Event_Handler_T.h: Changed - - typedef int (T::*SIG_HANDLER) (ACE_HANDLE, siginfo_t*, ucontext_t*); - - to this - - typedef int (T::*SIG_HANDLER) (int, siginfo_t*, ucontext_t*); - - so that we're consistent across platforms where ACE_HANDLE is a - HANDLE, not an int! Thanks to Johnny Willemsen - for reporting this. - -Fri Mar 14 22:26:56 2003 Nanbor Wang - - * bin/MakeProjectCreator/config/ciao_client.mpb: - * bin/MakeProjectCreator/config/ciao_component.mpb: - * bin/MakeProjectCreator/config/ciao_server.mpb: - * bin/MakeProjectCreator/modules/Driver.pm: Merged in CIAO - specific rules and default environment settings. These changes - help me take advantage of Chad's and other's work without - complicating my workspace. Most of other CIAO stuff are rather - localized. - - These changes have no effect on others whatsoever. - -Fri Mar 14 11:49:27 2003 Steve Huston - - * tests/Cached_Allocator_Test.cpp: Fix access out-of-bounds error. - Thanks to Alexander Libman for this fix. - -Thu Mar 13 16:11:48 2003 Ossama Othman - - * ace/Log_Msg.cpp (log_hexdump): - * tests/Proactor_Test.cpp: - - Use the ACE_SIZE_T_FORMAT_SPECIFIER macro to specify the correct - size_t format specifier. Fixes a warning exhibited on 32-bit - and 64-bit g++ builds. - -Thu Mar 13 17:35:48 2003 Steve Huston - - * examples/C++NPv1/Logging_Handler.cpp (recv_log_record): - * examples/C++NPv2/Logging_Handler.cpp (recv_log_record): Use - ACE_CDR::grow(), not ACE_Message_Block::size(), to resize the - CDR-receiving block. This maintains alignment across the resize. - Thanks to Don Hinton for this fix. - -Thu Mar 13 07:40:05 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Committing Justin Michel's modifications to - the intermediate directory to allow multiple projects within a - single directory that use the same source files. This also has - the side of organizing the generated object files into separate - project directories underneath the main intermediate directory. - -Wed Mar 12 13:31:08 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - - Fixed output directories for executables and pdb locations as - below. - -Wed Mar 12 12:19:23 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Fixed output directories for executables. Executables of - different configurations now go into different directories. - Also, we need to always generate pdb information for executables. - -Wed Mar 12 08:59:18 2003 Ossama Othman - - * ace/Log_Msg.cpp (log_hexdump): - * tests/Proactor_Test.cpp: - - Another round of format specifier corrections. "%lu" instead of - "%u". Addresses warnings in 64 bit platform builds. - -Wed Mar 12 10:42:40 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - - Fixed a problem with projects that had a slash or back slash in - the name. - - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Make sure pdb files get generated for the right types and in the - right locations. - -Wed Mar 12 09:54:51 2003 Chad Elliott - - Committing Paul Calabrese's MPC related - changes. - - * ACEXML/common/ACEXML_Export.h: - * ACEXML/common/common.mpc: - * ACEXML/parser/parser/parser.mpc: - * bin/MakeProjectCreator/config/acexml.mpb: - - Fix problems with ACEXML mpc files on windows. - -Wed Mar 12 08:36:12 2003 Douglas C. Schmidt - - * ace/FILE.cpp: Make the ACE_FILE::close() method check for a - valid handle. Thanks to Paul Marquis for - reporting this. - -Wed Mar 12 08:25:17 2003 Chad Elliott - - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/aceexe.mpb: - * bin/MakeProjectCreator/config/acelib.mpb: - * bin/MakeProjectCreator/config/global.mpb: - - Changed the global values to be generic and moved the defaults for - ACE into the acedefaults base project. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where header and inline files would be added to a - project even if they were specified to be empty. - -Wed Mar 12 07:03:54 2003 Chad Elliott - - * netsvcs/servers/Makefile.bor: - - Applying Trevor Fields modification. Change - $(OBJDIRS) to $(OBJDIR). - -Tue Mar 11 14:12:46 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added a -recurse option and fixed a problem with changing - to non-existent directories. - -Mon Mar 10 18:10:31 2003 Steve Huston - - * ace/ARGV.h: Clarified the behavior of ACE_ARGV's behavior with - respect to environment variable substitution; it only substitutes - when the token is itself an environment variable reference and not - if there's an environment variable reference contained within the - token. e.g. $HOME will subtitute, $HOME/file will not. - -Mon Mar 10 14:03:11 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Factor out code to detect duplicate project names to allow the - WorkspaceCreator to use that same code to detect duplicate - workspace names. - -Mon Mar 10 13:30:30 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - If an mpc file contains projects with duplicate names, MPC will - issue a warning to that effect. - -Mon Mar 10 08:25:30 2003 Ossama Othman - - * ace/Log_Msg.cpp (log_hexdump): - * tests/Proactor_Test.cpp: - - Corrected format specifier for size_t (unsigned integer) - variable, i.e. "%u" instead of "%d". Fixes mismatched format - specifier warnings. - -Mon Mar 10 07:36:59 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Fixed a bug where multiple uses of a $() variable would not be - handled correctly with the -relative option. Thanks to Nanbor - Wang for reporting this. - -Mon Mar 10 13:47:08 CET 2003 Oliver Kellogg - - * include/makeinclude/platform_g++_common.GNU: - Cannot use CXX to determine compiler version because CXX might be - set to "insure" and insure does not pass the -dumpversion option - to the compiler. - -Sun Mar 9 10:17:16 2003 Edan Ayal - - * tests/Future_Set_Test.cpp: - * tests/Future_Test.cpp: - - Printing order should be 'a,b,c,d,e' instead of 'a,b,c,e,d'. - - First sleep() replaced with - ACE_Thread_Manager::instance()->wait(). - - Final sleep() is redundant, as the spawned threads are already - dead. - - Prime_Scheduler::close() is called twice - once by the user - (asking to close the task) and once by the framework, when the - thread exists. This causes the task_count counter to be - negative. - - Renamed the method to 'shutdown'. Change method declaration and - definition (remove 'virtual' and all the arguments). Change the - call in Method_Request_end::call to shutdown() instead of - close() - - In the future set test, place different name commands in the - name set, just to show that it can be done. - -Sat Mar 8 12:54:18 2003 Steve Huston - - * ace/Get_Opt.h: Clarified the role of the long_only argument for - the ACE_Get_Opt constructor. - -Fri Mar 7 09:58:06 2003 Phil Mesnier - - * apps/mkcsregdb/Makefile: Fixed the install location so the - make succeeds. - -Fri Mar 7 08:51:56 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/StringProcessor.pm: - - Reverted my change from "Fri Mar 7 06:35:09 2003 Chad Elliott" - to Parser.pm and factored out code from that module and Driver - into a new module, StringProcessor.pm. Driver and Parser now - inherit from StringProcessor. - -Fri Mar 7 07:19:46 2003 Chad Elliott - - * ACEXML/apps/svcconf/svcconf.mpc: - * ACEXML/common/common.mpc: - * ACEXML/examples/SAXPrint/SAXPrint.mpc: - * ACEXML/parser/parser/parser.mpc: - * ACEXML/tests/tests.mpc: - - Added mpc files for ACEXML related projects. - - * bin/MakeProjectCreator/config/acexml.mpb: - - Added an acexml base project to provide easy addition of ACEXML - libraries to a project. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed the code to find the main() in a .cpp. - -Fri Mar 7 06:35:09 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Parser.pm: - - Fixed a bug introduced with the - "Thu Mar 6 08:06:35 2003 Chad Elliott" modification of - Driver.pm. I made $cwd part of the class instead of a static - local. The value wasn't being updated properly since Driver.pm - now "uses" Parser. Thanks to Steve Huston for bringing this to my - attention. - -Thu Mar 6 18:14:21 2003 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Rather than do the - template closure as part of the AR command, set up PRELIB to do - template closure; this allows static libs to build clean with the - xargs method introduced to rules.lib.GNU. A side-affect of this - is that the separate template closure step is also used for - shared libraries, and thus, +inst_none needed to be added to - SOFLAGS. - Also set AR to /usr/ccs/bin/ar to be sure to pick up the native - HP-supplied ar command. - - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: Don't - reinterpret_cast on non-Windows. Not needed and aC++ complains. - Also see: - Wed Feb 19 10:41:20 2003 Steve Huston - -Thu Mar 6 14:49:37 2003 Steve Huston - - * apps/mkcsregdb/mkcsregdb.cpp: const_cast pointers that need to be - delete[]-ed sp MSVC 6 doesn't complain. static_cast result of - strtol() to ACE_CDR::UShort when needed. - -Thu Mar 6 11:41:46 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added a -notoplevel option to allow processing to occur with no - top level file created. - -Thu Mar 6 10:56:09 2003 Phil Mesnier - - * ace/Makefile.am: Adding codeset files to yet another makefile - variant. - -Thu Mar 6 09:58:41 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - - Added support for nmake on Win64. To generate nmake files use the - following command line: - - mwc.pl -type nmake -value_template platforms=Win64 - -Thu Mar 6 08:06:35 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Added an environment variable that allows users to set default - command line parameters. The MPC_COMMANDLINE environment variable - is added to the command line parameters. It will not override any - arguments passed in. - -Wed Mar 5 21:45:39 2003 Steve Huston - - * ace/INET_Addr.cpp (get_port_number_from_name): Correct arg name - for ACE_UNUSED_ARG. Suspected cut/paste error. - - * tests/ACE_Test.cpp: const_cast the pointers returned from - ACE::execname() so they can be deleted on MSVC6. - -Wed Mar 5 07:05:11 2003 Phil Mesnier - - * ace/ace-dll.icc: - * ace/ace-lib.icc: - * ace/ace.icc: - * ace/ace_dll64.mak: - * ace/ace_lib64.mak: - Added codeset registry files to more makefiles. - -Wed Mar 5 06:32:40 2003 Phil Mesnier - - * ace/Makefile.bor: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - - Added codeset registry files and fixed spelling error in - Makefile.bor. - -Wed Mar 5 06:10:48 2003 Phil Mesnier - - * ace/Makefile.bor: - - Added codeset registry files to makefile. - -Tue Mar 04 19:58:29 2003 Nanbor Wang - - * ACEXML/common/FileCharStream.cpp (determine_encoding): Commented - out the annoying debug information. Users should get the - encoding information from this->getEncoding(), instead of - relying on the debug info. - - * ACEXML/common/LocatorImpl.cpp (reset): Remember to reset string - pointers to 0 after deleteing them. Otherwise, a parser may - crash if it is used to parse a second file. - -Tue Mar 4 17:39:31 2003 Steve Huston - - * docs/CE-status.txt: Updated to reflect the ACE 5.3 status of CE. - - * ace/ACE.cpp (execname): Try to locate ".exe" suffix without - case sensitivity. Thanks to Kelly F. Hickel - for reporting this. Also, when appending a suffix, append it to - the name, not after the name's nul terminator. - - * ace/ACE.h: Clarified that the pointer returned, if allocated, is - allocated using new[] and should be freed with delete[]. - - * tests/ACE_Test.cpp: - * tests/ACE_Test.dsp: New test for ACE methods. At this time, it tests - the ACE::execname() method fixed above. - - * tests/Makefile: - * tests/Makefile.bor: - * tests/tests.dsw: - * tests/tests.mpc: - * tests/run_test.lst: Added ACE_Test. - -Tue Mar 4 13:54:52 2003 Phil Mesnier - - * ace/Codeset_Registry.cpp: - * ace/Codeset_Registry.h: - * ace/Codeset_Registry.inl: - - New files added to support the codeset framework. The Codeset - Registry is either a wrapper for dce code and character set - registry functions, if the system supports them, or these - fucntions are emulated. Only the functions necessary to support - TAO's Codeset translation framework are emulated. - - * ace/Codeset_Registry_db.cpp: - - The codeset "database." A minimal list (2 entries) is shipped, see - apps/mkcsregdb to build a new list of supported codesets as needed. - - * ace/CDR_Stream.h: - - Changed the interface on the ACE_[W]Char_Codeset_Translator class for - the read_[w]char_array to take a non-const array as the out parameter. - - * ace/Makefile.ace: - * ace/ace.mpc: - - Added the new codeset files to the makefile. - - * apps/mkcsregdb: - - A new application used to generate custom list of codeset identites. - The description of how to run is in a comment at the top of - ace/Codeset_Registry_db.cpp. - -Tue Jan 24 17:50:32 2003 Gonzalo Diethelm - - * ace/INET_Addr.cpp: - Method string_to_addr() now uses ACE_OS_String::strtol() instead - of the ugly hack using ACE_OS::strspn() and ACE_OS::atoi(). The - two set() methods that receive a const char port_name[] now try - first to parse that port_name as a simple number (like "901"), - and if that fails they try to resolve the port name as a - service. In order to implement this, I added a static helper - function called get_port_number_from_name() (sorry for the awful - name). - -Tue Mar 4 12:53:06 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - If no exe target or lib target is supplied, then search the source - files for a main() and set the exename. - -Tue Mar 4 09:31:01 2003 Jeff Parsons - - * ace/Configuration.cpp: - - For temporary ACE_TStrings used internally, switched to the - non-allocating constructor. Also made cosmetic changes and - changed some ACE_TString assignments to use the nocopy - assignment method added below. - - * ace/String_Base.h: - * ace/String_Base.i: - - Added a nocopy assignment method. - - * ace/ace_dll.dsp: - - Added Unbounded_Queue.h to the project. - -Mon Mar 3 11:39:20 2003 Ossama Othman - - * ace/Strategies_T.h: - - Forward declare ACE_Service_Repository. Fixes a problem exposed - by IBM Visual Age C++ 5 builds about unexpected text. - -Fri Feb 28 17:43:02 2003 Douglas C. Schmidt - - * ace/Service_Manager.h (ACE_Service_Manager): Changed private to - protected. Thanks to Terry Mihm for - suggesting this. - -Fri Feb 28 13:04:56 2003 Ossama Othman - - Changes necessitated by inter-header dependency reductions. - - * examples/Connection/non_blocking/CPP-acceptor.h: - - Include "ace/Svc_Handler.h" to pull in ACE_Svc_Handler template - declaration. - - * examples/Connection/non_blocking/test_lsock_acceptor.cpp: - * examples/Connection/non_blocking/test_tli_acceptor.cpp: - - Include "ace/Service_Config.h" to pull in ACE_Service_Config - class declaration. - -Fri Feb 28 14:12:03 2003 Chad Elliott - - * bin/ChangeLogEditor/ChangeLogEdit.pm: - * bin/ChangeLogEditor/ChangeLogEntry.pm: - * bin/ChangeLogEditor/EmailTranslator.pm: - * bin/ChangeLogEditor/FileLocator.pm: - * bin/cle.pl: - - Added a ChangeLog editor script. It uses CVS to determine which - files have been modified, added or removed and generates a blank - ChangeLog entry in the existing ChangeLog. - -Fri Feb 28 13:18:17 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - - Fixed a problem with project dependencies. If the project - dependency is not a project within the generated solution, then - omit it. - -Fri Feb 28 07:49:00 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - - Pulled the common code out of Creator and replaced it with a - template method to collect the lines with possible line - continuation. - -Fri Feb 28 12:33:01 UTC 2003 Johnny Willemsen - - * ace/SString.cpp: - Also do the explicit template instantiations - ACE_String_Base::NULL_String_ and - ACE_String_Base::NULL_String_ when using VxWorks. - -Thu Feb 27 10:56:01 2003 Ossama Othman - - * tests/Proactor_Scatter_Gather_Test.cpp (initiate_read_file): - - Explicitly cast return value of ceil() to "size_t". Fixes a - "loss of data" warning. Loss of data isn't an issue in this - case. - -Thu Feb 27 10:53:38 2003 Ossama Othman - - * ace/Atomic_Op.cpp (single_cpu_exchange, multi_cpu_exchange): - - Fixed unused argument warnings. - -Thu Feb 27 10:46:01 2003 Ossama Othman - - Changes necessitated by inter-header dependency reductions. - - * apps/Gateway/Peer/Peer.h: - * examples/ASX/Event_Server/Event_Server/Peer_Router.h: - * examples/Connection/non_blocking/CPP-connector.h: - * netsvcs/lib/Name_Handler.h: - * netsvcs/lib/Server_Logging_Handler_T.h: - * netsvcs/lib/TS_Clerk_Handler.h: - * netsvcs/lib/TS_Server_Handler.h: - - Include "ace/Svc_Handler.h" to pull in ACE_Svc_Handler template - declaration. - - * examples/Connection/non_blocking/test_sock_acceptor.cpp: - * examples/Connection/non_blocking/test_spipe_acceptor.cpp: - - Include "ace/Service_Config.h" to pull in ACE_Service_Config - class declaration. - -Thu Feb 27 11:24:14 2003 Chad Elliott - - * apps/gperf/src/gperf.mpc: - - Change the gperf project name to contain exe to allow the - VC6ProjectCreator to create the correct dependencies. - -Thu Feb 27 10:41:33 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - - Add a warning if duplicate projects are detected in a generated - workspace. - -Thu Feb 27 10:31:44 2003 Balachandran Natarajan - - * include/makeinclude/platform_linux_icc.GNU: The GNU file can now - work with 64 bit intel compiler in Itanium. Thanks to Lubomir - Bulej and Petr Tuma - for providing the patches. - - * THANKS: Added Lubomir Bulej to the hall of fame. - -Thu Feb 27 10:22:05 2003 Balachandran Natarajan - - * ace/Synch.h: - * ace/Synch.i: Added ACE_Null_Condition::wait (ACE_Null_Mutex &m, - const ACE_Time_Value * = 0) which seems to be missing. - -Wed Feb 26 18:42:33 2003 Christopher Kohlhoff - - * ace/Makefile.bor: - - Removed ACE_LD_DECORATOR_STR definition from CFLAGS, as this - macro is now defined by the common included makefiles. - - * ace/Synch.h: - - Added missing constructor overload and disown member function - to the ACE_Guard template specialization. - - * ace/Atomic_Op.cpp: - * ace/Atomic_Op.h: - * ace/Atomic_Op.i: - * tests/Atomic_Op_Test.cpp: - - Use InterlockedExchange (or the XCHG instruction) to provide - strong memory-ordering when assigning to an atomic integer. - - * bin/MakeProjectCreator/Creator.pm: - - Added support for line continuation using backslash in .mpc files. - -Wed Feb 26 11:55:20 2003 Chad Elliott - - * ace/ace.mpc: - - Added POSIX_CB_Proactor.cpp to the Demux files. - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Modification to allow users to name the foreach variable. - -Wed Feb 26 07:39:58 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Changed the defaulting behavior if neither exename, sharedname or - staticname are defined in an mpc file. - -Tue Feb 25 22:26:30 2003 Krishnakumar B - - * ace/Malloc.h: - * ace/Malloc.cpp: - * ace/Malloc.h: - * ace/Malloc_T.cpp: - * ace/PI_Malloc.cpp: - * ace/PI_Malloc.h: - - Teach ACE_Control_Block and friends to do alignment on 64-bit - platforms. The previous code was buggy and caused a lot of bus - errors on platforms with greater than 4-byte alignment. We no - longer multiply and divide by sizeof (long) and do the alignment - based on sizeof (union ACE_max_align_info). This change also - makes the default alignment to be at 8-byte boundary (which is - ofcourse overridable) and errs in favour of safe code by default - vs optimization for code size. This should get rid of bug - reports on SGI IRIX, Solaris 64-bit etc related to - ACE_*_Allocator and friends. - - Also fixed a couple of rounding errors which result in core - dumps, in ACE_Cached_Allocator and ACE_Dynamic_Cached_Allocator - where we happily traverse memory irrespective of alignment of - the chunk_size. - - Thanks to Dave Mercer for reporting the - problem. - - One of the items from the long list of pending items post-5.3.1. - - * ace/OS_Memory.h: - - Removed the definition of ACE_MALLOC_ALIGN from this file. - ACE_MALLOC_ALIGN is an internal definition of Malloc.h and - should have no business in OS_Memory.h. - - * include/makeinclude/rules.lib.GNU: - - Use echo on VLOBJS instead of find with *.o. This fixes build - problems on lame platforms like MacOS X where ar doesn't - generate an index and need to use ranlib. Probably the right - thing to do even otherwise since there might be more objects in - .{sh,}obj than needed for a library. - -Tue Feb 25 10:00:54 2003 Ossama Othman - - * ace/CDR_Base.h (LongLong): - * ace/CDR_Base.inl: - * ace/CDR_Base.cpp: - - Removed newly added 32-bit assignment and comparison operators. - Comparison is non-trivial in this signed case, and assignment - operators are a potential source of confusion when implicit - conversions are performed. This change basically reverts - ACE_CDR::LongLong to its previous implementation, and also - addresses some build problems on platforms with non-native 64 - bit signed integers (e.g. VxWorks). - -Tue Feb 25 08:09:13 2003 Ossama Othman - - * ace/Atomic_Op_T.h (mutex_): - - Removed "mutable" keyword from this reference member. IBM's - Visual Age C++ considers mutable reference members invalid. - - * ace/Atomic_Op_T.i: - - Go back to casting away the const-ness of the above mutex - reference member in const methods. - -Tue Feb 25 09:57:07 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Clean up the generated targets with the GNU Makefiles. - -Tue Feb 25 09:24:06 2003 Douglas C. Schmidt - - * ace/OS.cpp: Added an emulation for localtime_r() for WinCE. Thanks to - Martin Brown for reporting this. - -Tue Feb 25 08:40:12 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Always generate a realclean target, but only add idl generated - files if we had idl_files to work with. - -Tue Feb 25 07:56:59 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - - Updated the documentation to reflect the removal of the 3 - character restriction on type names. - - * bin/MakeProjectCreator/config/avstreamsexe.mpb: - - Inherit from namingexe instead of reproducing the same - information. - - * bin/MakeProjectCreator/config/rteventexe.mpb: - - Inherit from server instead of reproducing the same information. - - * bin/MakeProjectCreator/modules/Driver.pm: - - Removed the restriction of a 3 character type. - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/modules/GHSProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUProjectCreator.pm: - * bin/MakeProjectCreator/modules/NMakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - - Refactor code into the base class. - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GHSWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Made modifications to these modules to allow an mwc file to have - multiple workspaces defined within it. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Cosmetic change. - - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/MakeProjectCreator.pm: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/mpc.pl: - * bin/mwc.pl: - - Added a new project type for generic Makefiles. These are not - suitable for use within ACE or TAO, but may be useful to someone. - -Mon Feb 24 15:37:06 2003 Douglas C. Schmidt - - * ace/TTY_IO.h (ACE_TTY_IO): Added the dtrdisable member to - Serial_Params. This finishes a fix suggested by Ray Limpus - . Thanks to Jeff Parsons for noticing - this. - -Mon Feb 24 08:53:52 2003 Ossama Othman - - * ace/Basic_Types.i (operator++, operator--): - - Fixed incorrect dereferencing of non-pointer return variable. - -Sun Feb 23 12:16:34 2003 Douglas C. Schmidt - - * ace/WIN32_Asynch_IO.cpp (cancel): Added support for cancel() on - MinGW. Thanks to Vince for this fix. - - * examples/Mem_Map/Makefile: Moved the definition of DIRS to - later in the Makefile so we can exclude it from the MinGW - build. Thanks to Vince for reporting this, as well. - - * ace/WIN32_Proactor.cpp (close): Make sure to check whether - GetQueuedQueuedCompletion() returns false. Thanks to Vince - Mounts for reporting this. - -Sat Feb 22 08:16:36 2003 Ossama Othman - - * ace/Basic_Types.h (operator++, operator--): - - Fixed return type mismatch between declaration and definition in - Basic_Types.i. - -Fri Feb 21 22:21:49 2003 Steve Huston - - * ace/OS.i: Removed the #if !defined (ACE_HAS_WINCE) around the - ACE_OS::vsprintf() method. It's available on CE. Thanks to - Emmanuel Thevenot Beaufort - for this fix. - - Also enabled ACE_OS::fgets(), fflush(), thr_getspecific() similarly. - -Fri Feb 21 12:52:00 2003 Ossama Othman - - * ace/Global_Macros.h: - * ace/OS.h: - - Moved ACE_CORBA_{1,2,3} and ACE_NESTED_CLASS macro out of OS.h - and into Global_Macros.h. Helps avoid inclusion of OS.h in some - cases. - -Fri Feb 21 10:05:23 2003 Ossama Othman - - * ace/Local_Name_Space_T.cpp: - - Include "ace/Auto_Ptr.h" once again to pull in the - ACE_Auto_Basic_Array_Ptr class declaration. Fixes compile-time - problems on AIX about unknown template types. - -Fri Feb 21 13:32:43 2003 Edward Scott - - * docs/bugzilla-build-setup.html: - - Removed obsolete documentation file. Thanks to Johnny Willemsen - for reporting the problem. - -Fri Feb 21 06:18:19 2003 Ossama Othman - - * tests/Framework_Component_DLL.cpp: - - Include "ace/Service_Object.h" to pull in ACE_Service_Object - class declaration. Necessitated by inter-header dependency - reductions. - -Thu Feb 20 18:54:03 2003 Ossama Othman - - * apps/Gateway/Gateway/gatewayd.cpp: - - Include "ace/Service_Object.h" to pull in ACE_Service_Object_Ptr - class declaration. Necessitated by inter-header dependency - reductions. - -Thu Feb 20 18:49:37 2003 Ossama Othman - - * examples/Service_Configurator/Misc/Timer_Service.h: - - Include "ace/Service_Object.h" to pull in ACE_Service_Object - class declaration. Necessitated by inter-header dependency - reductions. - -Thu Feb 20 18:45:29 2003 Ossama Othman - - * examples/C++NPv2/Service_Reporter.cpp: - - Include "ace/Service_Types.h" to pull in ACE_Service_Type_Impl - class declaration. Necessitated by inter-header dependency - reductions. - -Thu Feb 20 18:31:10 2003 Ossama Othman - - * ace/Strategies_T.cpp: - - Fixed "lose of const in cast" errors. - -Thu Feb 20 18:20:19 2003 Ossama Othman - - * ace/SSL/SSL_SOCK_Acceptor.h (ACE_SSL_SOCK_Acceptor): - - Reverted the change that made this class inherit privately from - ACE_SSL_SOCK instead of publically. While this isn't strictly - the correct thing to do, IMO, it does correct some compile-time - problems. - - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - - Fixed compile-time error related to violation of a const - qualifier on a pointer to the timeout value. - -Thu Feb 20 19:18:17 2003 Balachandran Natarajan - - * ChangeLogs/ChangeLog-02b: - * ChangeLogs/ChangeLog-03a: New files having all the old ChangeLog - entries till 5.3.1. - * ChangeLog: Shortened the changelog for ease of use. - -Thu Feb 20 10:35:15 2003 Ossama Othman - - * ace/Strategies_T.h: - * ace/Strategies_T.cpp: - - Reverted part of changes that introduced extensive use of - traits since they were forcing the introduction of the - ACE_TYPENAME macro in more places than is desirable at this - point in time. They may be reintroduced in the future. - -Thu Feb 20 09:24:00 2003 Ossama Othman - - * ace/Service_Config.h: - - Forward declare ACE_Service_Object. Necessitated by inter-header - dependency reductions. - -Thu Feb 20 09:23:51 2003 Ossama Othman - - * ace/Acceptor.h: - * ace/Connector.h: - - No need to include "ace/Service_Config.h" and - "ace/Svc_Handler.h". - - Include "ace/Synch_Options.h". Necessitated by inter-header - dependency reductions. - - * ace/Acceptor.cpp: - * ace/Connector.cpp: - - Include "ace/Svc_Handler.h". Necessitated by inter-header - dependency reductions. - - * ace/Atomic_Op.h: - - Fixed doxygen documentation. - - * ace/Atomic_Op.i (operator++, operator--): - - Implement these post{in,de}crement operators in terms of their - corresponding pre{in,de}crement operators to ensure consistent - semantics. - - * ace/Atomic_Op_T.h (mutex_, own_mutex_): - - Improved const-correctness by making these mutex members - mutable. This allows us to avoid casting away the constness. - - * ace/Atomic_Op_T.i (operator==, operator>=, operator>): - (operator<=, operator<, value, operator=): - - Do not cast away the constness of the mutex. That hack is no - longer necessary since the mutex is now mutable. - - * ace/Basic_Types.h: - - Improved doxygen documentation. - - Moved endianness determination macros prior to ACE_U_LongLong - class. - - (operator=): - - Added ACE_ULongLong assignment operator declarations that accept - 32 bit signed and unsigned integers. - - (operator++, operator--): - - Added missing ACE_ULongLong post{in,de}crement operator - declarations. - - (data_): - - Make declaration order of lower and upper 32 bit members (lo_ - and hi_) of this structure dependant on the endianness of the - platform. This mimics what is done for the ACE_LongLong type - in the ACE_CDR classes. - - * ace/Basic_Types.i (operator=): - - Added ACE_ULongLong assignment operator implementation that - accept 32 bit signed and unsigned integers. - - (operator++, operator--): - - Added missing ACE_ULongLong post{in,de}crement operator - implementations. - - * ace/CDR_Base.cpp (mb_align): - - Uninlined this method in order to reduce inter-header - dependencies. - - (operator<, operator<=, operator>, operator>=, operator==): - (operator!=): - - Added these missing operator for the ACE_LongLong type. - - (Float, operator=, operator!=): - - Fixed potential unused argument warnings for the Cray/UNICOS - case. - - * ace/CDR_Base.h: - - Include "ace/OS.h" instead of "ace/Message_Block.h", and forward - declare ACE_Message_Block in order to reduce inter-header - dependencies. - - Changed all uses of typedefs like "u_char" and "u_long" to their - non-typedef counterparts, e.g. "unsigned char" and "unsigned - long". Makes it possible to avoid including headers that - contain those typedefs. - - (operator=): - - Added ACE_LongLong constructors assignment operators that accept - 32-bit integers. - - (operator==, operator!=, operator<=, operator<, operator>=): - (operator>): - - Added these missing ACE_LongLong relation operators. - - * ace/CDR_Base.inl (operator=): - - Added ACE_LongLong constructors assignment operators that accept - 32-bit integers. - - (operator==, operator!=, operator<=, operator<, operator>=): - (operator>): - - Added these missing ACE_LongLong relation operators. - - * ace/CDR_Stream.h: - - Moved definition of the ACE_CDR_BYTE_ORDER macros from OS.h to - this header. Helps with header dependency reduction. - - * ace/Capabilities.h: - - Use ACE_Hash_Map_Manager_Ex instead of ACE_Hash_Map_Manager. - Doing so saves us three template instantiations. - - * ace/Capabilities.i: - - Cosmetic changes. - - * ace/Capabilities.cpp: - - No need to include "ace/Map_Manager.h". - - Added missing ACE_RCSID macro. - - Improved conformance to ACE coding conventions. - - Removed explicit template instantiations for the - ACE_Hash_Map_Manager template. That template is no longer - used. - - (reset_caps): - - Use ACE_Hash_Map_Manager_Ex template traits instead of the - actual template type. Makes for cleaner code. - - * ace/Configuration.cpp: - * ace/Configuration.h: - * ace/Strategies_T.cpp: - * ace/Token_Collection.cpp: - * ace/Token_Collection.h: - * ace/Token_Invariants.cpp: - * ace/Token_Invariants.h: - * ace/Token_Manager.cpp: - * ace/Token_Manager.h: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Asynch_IO.h: - - Take advantage of template traits to improve clarity of code. - - * ace/Copy_Disabled.h: - - Corrected comment. - - * ace/Default_Constants.h: - - Moved ACE_DEFAULT_CDR_BUFSIZE, ACE_DEFAULT_CDR_EXP_GROWTH_MAX, - ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK, - ACE_DEFAULT_CDR_MEMCPY_TRADEOFF macros from OS.h to this - header. Helps with inter-header dependency reduction. - - * ace/Dynamic_Service_Base.cpp: - * ace/Parse_Node.cpp: - * ace/Service_Manager.cpp: - * ace/Service_Repository.cpp: - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: - - Include "ace/Service_Types.h". Necessitated by inter-header - dependency reduction. - - * ace/Filecache.h: - * ace/Filecache.cpp: - * ace/Hash_Map_With_Allocator_T.h: - * ace/Hash_Map_With_Allocator_T.cpp: - * ace/Local_Name_Space_T.h: - * ace/Local_Name_Space.cpp: - - Use ACE_Hash_Map_Manager_Ex instead of ACE_Hash_Map_Manager. - Doing so saves us three template instantiations. - - * ace/Future_Set.h: - * ace/Map_T.h: - - Include "ace/Hash_Map_Manager_T.h" instead of - "ace/Hash_Map_Manager.h". The former is all that is needed, and - the latter already includes the former. - - * ace/Hash_Map_Manager_T.i (operator++, operator--): - * ace/Map_Manager.i: - * ace/RB_Tree.i: - - Implement the post-{in,de}crement operators in terms of their - pre-{in,de}crement operator counterparts to ensure consistency. - - * ace/Local_Name_Space_T.cpp: - - No need to include "ace/Auto_Ptr.h" - - Use template traits to improve code clarity. - - * ace/OS.h: - - Moved ACE_CDR_BYTE_ORDER macro definition to CDR_Stream.h. - Helps with inter-header dependencies. - - Moved ACE_DEFAULT_CDR_BUFSIZE, ACE_DEFAULT_CDR_EXP_GROWTH_MAX, - ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK, - ACE_DEFAULT_CDR_MEMCPY_TRADEOFF to Default_Constants.h. Helps - with inter-header dependency reduction. - - * ace/POSIX_Asynch_IO.cpp: - - Added missing ACE_RCSID macro. - - (bytes_transferred): - Use map template traits to improve code clarity. - - * ace/POSIX_Asynch_IO.h: - - Redefined old map typedefs in terms of the map traits. - - * ace/Parse_Node.h: - * ace/Service_Repository.h: - - No need to include "ace/Service_Types.h". A forward declaration - for ACE_Service_Types is enough. - - * ace/Service_Config.h: - - No need to include "ace/Service_Types.h" and "ace/Signal.h". - Forward declaring ACE_Service_Types and ACE_Sig_Adapter is - enough. - - * ace/Strategies_T.h: - - No need to include "ace/Service_Config.h" and - "ace/Synch_Options.h". - - * ace/Synch_Options.h: - - Changed all uses of typedefs like "u_char" and "u_long" to their - non-typedef counterparts, e.g. "unsigned char" and "unsigned - long". Makes it possible to avoid including OS.h. A big win in - compile time reduction. - - Include "ace/Time_Value.h". Necessitated by inter-header - dependency reduction. - - * ace/Synch_Options.cpp: - - Changed all uses of typedefs like "u_char" and "u_long" to their - non-typedef counterparts, e.g. "unsigned char" and "unsigned - long". Makes it possible to avoid including OS.h. A big win in - compile time reduction. - - Include "ace/Trace.h". Necessitated by inter-header - dependency reduction. - - * ace/Template_Instantiations.cpp: - - Removed all ACE_Hash_Map_Manager related template - instantiations. The ones for ACE_Hash_Map_Manager_Ex are all - that are needed. - - * ace/SSL/SSL_SOCK_Acceptor.h (ACE_SSL_SOCK_Acceptor): - - Inherit privately from ACE_SSL_SOCK, instead of publically. - ACE_SSL_SOCK_Acceptor is IMPLEMENTED-IN-TERMS-OF ACE_SSL_SOCK. - It does not satisfy the IS-A relationship. - - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - - Use ACE_Countdown_Time to take into account the time between - each call to select() instead of using the same timeout value in - each loop iteration. [Bug 1110] - - * ace/SSL/SSL_SOCK_Stream.cpp (get_remote_addr): - - Retrieve the remote addr from the parent ACE_SSL_SOCK class, not - ACE_SOCK. Addresses potential inconsistencies in the future. - - * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream): - - Removed friend declarations for the - ACE_SSL_SOCK_{Acceptor,Connector} classes. They are - unnecessary. - -Wed Feb 19 10:41:20 2003 Steve Huston - - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - In run_worker(), use ACE_reinterpret_cast, not ACE_static_cast, - to convert an int to an ACE_HANDLE. Thanks to Vince Mounts - for reporting this. - -Tue Feb 11 17:14:56 2003 Douglas C. Schmidt - - * ace/TTY_IO.cpp: Fixed several problems with DTR enabling. Thanks to - Ray Limpus for reporting this. - -Thu Feb 6 16:36:18 2003 Douglas C. Schmidt - - * ace/Bound_Ptr.{h,i}: Made the get() method const. Thanks to - Chris Kohlhoff for reporting this. diff --git a/ACE/ChangeLogs/ChangeLog-03c b/ACE/ChangeLogs/ChangeLog-03c deleted file mode 100644 index bbd6f2714d6..00000000000 --- a/ACE/ChangeLogs/ChangeLog-03c +++ /dev/null @@ -1,14852 +0,0 @@ -Wed Jan 14 18:45:46 2004 Balachandran - - * ACE version 5.4 released. - -Wed Jan 14 17:17:41 2004 Balachandran Natarajan - - * Makefile: - - Fixed the path to some of autoconf files. Hopefully this should - be the last bug. - -Wed Jan 14 16:28:28 2004 Balachandran Natarajan - - * bin/make_release: - - Fixed a bug with the way we were collecting the list of files - for making the ACE distribution. - -Wed Jan 14 16:13:33 2004 Balachandran Natarajan - - * Makefile: - - Added RELEASE_FILES to the AUTOCONF_RELEASE_FILES. - -Wed Jan 14 14:26:54 2004 Balachandran Natarajan - - * bin/make_release: - - Made changes to the way beta kits are created. We added some - solution files and WinCE files for ACE but not for TAO+CIAO - (with a reason). But when the final kits were created, the - ACE+TAO bundles and ACE+TAO+CIAO bundles had all the ACE - specific stuff which confused the user. Moreover, the autoconf - support was also bootstrapped which confused users to no end - since autoconf works only with ACE. The bootstrapping should have - been done to the ACE distribution and not to other - distributions. - - * Makefile: - - Added an extra target for AUTOCONF_RELEASE_FILES. This will have - all the release files in ACE + the files that needs to go in - with autoconf. - - I have to test this stuff and will do so shortly. - -Wed Jan 14 09:47:56 2004 Balachandran Natarajan - - * */*_Static.ds[p,w]: - - All the Win32 static projects and workspaces have been - removed. Please use MPC to generate them. - -Wed Jan 14 07:32:32 2004 Balachandran Natarajan - - * ACE-INSTALL.html: - - Thanks to Johnny Willemsen for spotting a typo in the file. - -Tue Jan 13 22:42:16 2004 Ossama Othman - - * Makefile (RELEASE_FILES): - - Added `aclocal.m4' and `Makefile.in' to the list of files to be - included in releases/kits. This should be the last of them. - -Tue Jan 13 21:39:30 2004 Balachandran Natarajan - - * Makefile (CONTROLLED_FILES): - - Removed aux and configure from the CONTROLLED_FILES section and - moved it to the RELEASE_FILES section. - -Tue Jan 13 16:33:12 2004 Ossama Othman - - * Makefile (CONTROLLED_FILES): - - Added `aux' directory to the list of controlled files. It is a - directory generated at autotool bootstrap-time via the - bin/bootstrap script, and must be available in order for ACE's - autoconf support to work. - - Added `configure' to the list of controlled files. Users can't - run the `configure' script if it isn't shipped with the - distribution. - - * bin/bootstrap: - - Invoke `autoreconf' without the "--symlink" option. Auxiliary - files should be copied into the distribution, not symbolic - pointing to them. - - * bin/make_release: - - Prepend "/usr/local/bin" to the GNU tool path. That directory - on our release host now contains some specific versions of GNU - autotools. - -Tue Jan 13 16:42:37 2004 Steve Huston - - * ACE-INSTALL.html: Correct the autoconf section to direct the user - to create a subdirectory under ACE_wrappers. Thanks to Ossama for - pointing this out. - Also changed the traditional make section to advise user to - create config.h and platform_macros.GNU files and include the - platform file rather than link or copy the platform file. - -Tue Jan 13 16:19:29 2004 Balachandran Natarajan - - * netsvcs/clients/Naming/Client/Client.mpc: - - Fixed a dependancy issue. - -Tue Jan 13 11:28:21 2004 Ossama Othman - - * Makefile (CONTROLLED_FILES): - - Added `configure.ac' file to the list of controlled files. - - * configure.ac: - - Corrected problem where std::auto_ptr<>::reset() method was not - detected properly in the !ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB - case. - - * bin/make_release: - - Bootstrap autotool support prior to creating the kits via the - new bootstrap_autotools() subroutine described below. - - Appended Emacs "Local Variables" block containing Perl mode to - end of this file to force Perl mode instead Fundamental mode to - be used by default when editing with Emacs. - - (create_kit): - - Moved autotool bootstrapping call to new bootstrap_autotools() - subroutine. - - (bootstrap_autotools): - - New subroutine that bootstraps autotool support into the ACE - distribution. - -Tue Jan 13 18:06:23 UTC 2004 Don Hinton - - * include/makeinclude/rules.local.GNU: - Only assign LIB_INSTALL to INSTALL if INSTALL has not yet been - defined. This will allow users to continue turning off - installation of libraries by setting INSTALL= prior to including - rules.local.GNU. Thanks to Craig Rodrigues - for pointing this out. Normally, the INS* variables can be used - for this purpose, since they work for each target type. - -Mon Jan 12 23:26:28 UTC 2004 Don Hinton - - * include/makeinclude/wrapper_macros.GNU: - Added new commandline flag, static_link. It defaults to 0, but - can be set =1 to force static linking, e.g., uses "-static" when - linking with GNU ld. It's turned off by default since using it - causes the footprint to go up by almost 1 MB, due to linking all - the system and compiler .a files. This way the user can decide - if that what they really want. Thanks to Bala for helping to - formulate this policy, which matches what users expect, while - adding the capability to do real static linking if you want to. - - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.local.GNU: - Moved the assignment of the STATIC_LINK_FLAG from rules.bin to - rules.local so that it will get picked up even if rules.bin is - not included (MPC and some Makefiles with multiple targets don't - include rules.bin). Only add the STATIC_LINK_FLAG to LDFLAGS - if static_libs_only=1. - - * include/makeinclude/platform_sunos5_g++.GNU: - Removed default assignment of STATIC_LINK_FLAG to empty, since - it's now controlled with the new static_link flag above. It - still won't work on Solaris, but at least users wanting to use - it will get an error instead of us silently not adding "-static". - -Mon Jan 12 17:52:17 2004 Steve Huston - - * ACE-INSTALL.html: Add a section for using GNU autoconf. - - * examples/APG/ThreadPools/Futures.cpp: Don't delete all work - requests; only the Exit requests - the others are allocated on - the stack. Thanks to Andy Harvey for this fix. - -Mon Jan 12 14:24:39 2004 Steve Huston - - * tests/Makefile.am: Remove $(libdir) from libTest_Output.la listed - in dependencies - having it there caused it to not match the - plain libTest_Output.la target in the Makefile, and thus not - get built before many of the tests. Added libTest_Output.la to - the DLL_Test and Service_Config_Test dependencies. - -Mon Jan 12 15:54:13 UTC 2004 Johnny Willemsen - - * apps/JAWS/server/jaws.dsp: - Fixed incorrect macro name. - -Mon Jan 12 08:06:07 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Print out a warning if a verbatim clause is processed (depending - on the project type) and the marker is not found in the - corresponding project template. - -Mon Jan 12 01:38:44 2004 Balachandran Natarajan - - * apps/soreduce/Library.cpp: - - Fixed a compile erros with VC 6 which cannot scope variables - within for loops. - -Mon Jan 12 01:35:44 2004 Balachandran Natarajan - - * bin/msvc_auto_compile.pl: - - Fixed the path ane the name of a couple of dsp files in the CORE - builds. This should fix two problems with static builds. - -Sat Jan 10 22:39:59 2004 Balachandran Natarajan - - * bin/create_ace_build.pl: - - The following patch modifies the file so that it can handle - multiple path elements in the argument given to - create_ace_build.pl. Thanks to John Poplett - for providing the patches. - -Sat Jan 10 19:35:20 2004 Balachandran Natarajan - - * bin/msvc_auto_compile.pl: - - Added missing dsp files for compilation to the static lib - builds. The failure of te static builds is due to something - else, which wil be fixed shortly in the autobuilds. - -Sat Jan 10 17:36:45 2004 Balachandran Natarajan - - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp: - - Fixed warnings with Forte 8. - -Sat Jan 10 17:11:03 2004 Jeff Parsons - - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added generation for custom build step dependency on the - IDL or CIDL compiler executable. This enables the build to - detect errors output by the (C)IDL compiler, and also will - trigger the custom build step if the (C)IDL compiler has - been updated. - -Sat Jan 10 16:14:39 2004 Steve Huston - - * ace/OS_NS_sys_socket.inl (closesocket): On HP-UX, use - shutdown() before, and in addition to, close() to close a socket. - The previous "fix" left the socket opened after shutdown(). - - * tests/Bug_1576_Regression_Test.cpp: Use ACE_DLL_SUFFIX to form the - name of the bogus dll name instead of literal ".so". Prevents a - run-time warning from platforms that use a different suffix, such - as HP-UX. - - * tests/Makefile.am: Removed -module from the libTestOutput line - so it actually links the library for use by other tests. Added - TSS_Static_Test_SOURCES to have it build as well. - -Sat Jan 10 11:18:24 2004 Steve Huston - - * ace/config-lite.h: - * ace/Sock_Connect.cpp: Added /**/ to #include to keep MSVC from - complaining it can't find a file. - - * ace/Array_Base.cpp: The _MSC_VER check need not be done for CE - compiler - it doesn't need the extra #include and doesn't have . - -Fri Jan 9 16:55:39 2004 Steve Huston - - * examples/APG/Timers/Alarm.cpp: - * examples/APG/ThreadManagement/Coop_Cancel.cpp: - * examples/APG/ThreadManagement/Signals.cpp: - * examples/APG/ThreadManagement/Signals2.cpp: - * examples/APG/Sockets/Server.cpp: - * examples/APG/Reactor/Timers.cpp: Added ACE_NOTREACHED to - unreachable statements to kill compile warnings. - -Fri Jan 9 16:27:33 2004 Steve Huston - - * examples/APG/Streams/Answerer.cpp: Removed unnecessary template - instantiations. - - * examples/APG/ThreadPools/Futures.cpp: - * examples/APG/ThreadPools/ThreadPool.cpp: Fixed memory leak. Thanks - to Andy Harvey for reporting these. - -Fri Jan 9 15:24:30 2004 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU: - - Support for STLPort in ACE Makefile system. Thanks to - John Poplett for the patches. - -Fri Jan 9 20:13:21 UTC 2004 Don Hinton - - * include/makeinclude/platform_g++_common.GNU: - * include/makeinclude/rules.bin.GNU: - Set the default (blank) value of STATIC_LINK_FLAG in - rules.bin.GNU and only set it in platform_g++_common.GNU if it - hasn't been set. - - * include/makeinclude/platform_sunos5_g++.GNU: - Set STATIC_LINK_FLAG blank to prevent platform_g++_common.GNU - from setting it to "-static", since this flag doesn't work on Sun. - -Fri Jan 9 11:15:16 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Added a .PHONY target to stop GNU Make from trying to build - targets that happen to coincide with cpp files. - -Fri Jan 9 14:46:54 UTC 2004 Johnny Willemsen - - * tests/Test_Output_Export.h: - Added check for ACE_AS_STATIC_LIBS for setting the export flags for - proper building of static libraries. - -Fri Jan 9 13:12:07 UTC 2004 Johnny Willemsen - - * bin/msvc_auto_compile.pl: - Corrected the check for Use_MPC. - -Fri Jan 9 12:23:11 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/global.features: - Set dummy_label to 0. This dummy_label is used by the TAO OBV - tests which don't compile because of some bugs. The idea was - good, but when dummy_label is not in this file it is set by - default to 1. When the OBV tests work again, just remove the - requires from the corresponding MPC files. - -Fri Jan 9 12:14:05 UTC 2004 Johnny Willemsen - - * bin/msvc_auto_compile.pl: - Build FTORB_Utils before PortableGroup - -Fri Jan 9 10:15:43 UTC 2004 Johnny Willemsen - - * bin/msvc_auto_compile.pl: - When using MPC with Static builds we don't have dependencies - between the libraries in the generated dsw's. The build order - is then handled in this file, but when using MPC we use generate - different filenames than previously. Added the option -MPC, when - this is passed on the commandline we use the MPC filenames. - -Fri Jan 9 08:07:13 UTC 2004 Johnny Willemsen - - * apps/JAWS/server/jaws.dsp: - This project doesn't use a separate dll for the jaws stuff, so set - ACE_HAS_SVC_DLL to 0. - -Thu Jan 8 18:28:35 2004 Balachandran Natarajan - - * examples/APG/Streams/CommandStream.h: - - Fixed a warning with g+++ builds that were caused by wrong - initialization order of members. - -Thu Jan 8 18:15:21 2004 Steve Huston - - * examples/APG/Timers/Alarm.cpp: - * examples/APG/Timers/Task.cpp: - * examples/APG/Timers/Upcall.cpp: Add missing template instantiations. - -Thu Jan 8 15:15:49 2004 Steve Huston - - * examples/APG/Streams/Answerer.cpp (RecordingStream::open): Change - the signature to match the inherited ACE_Stream::open() method to - allow easy configuration without forcing a EndTask module. - - * examples/APG/Streams/CommandStream.{h cpp}: Move the ACE_SOCK_Stream* - argument from open() to the constructor, and make default ctor - private to force passage of the ACE_SOCK_Stream*. Change open() to - properly inherit from ACE_Stream, avoiding the "hides inherited - open()" diagnostics, and making this class easier to use in - different use cases. - - * examples/APG/Streams/RecordingDevice_Text.cpp: Changed usage of - CommandStream class to match new API, above. - - * examples/APG/Streams/Command.h: - * examples/APG/Streams/CommandTask.cpp: - * examples/APG/Streams/CommandTasks.cpp: - * examples/APG/Streams/RecordingDevice_Text.cpp: Prepended RESULT_ - to the enumerators SUCCESS, PASS, FAIL; prepended CMD_ to the - enumerators UNKNOWN, ANSWER_CALL, RETRIEVE_CALLER_ID, PLAY_MESSAGE, - RECORD_MESSAGE. These were done to avoid clashes with commonly - defined macros. Thanks to Johnny Willemsen for reporting this. - -Thu Jan 8 20:15:09 UTC 2004 Johnny Willemsen - - * examples/Reactor/Misc/test_demuxing.cpp: - Made this example compiling with BCB. - -Thu Jan 8 14:05:42 2004 Balachandran Natarajan - - * performance-tests/Misc/Makefile: - - Fixed a bild error in our daily builds. Thanks to Don for - helping with this. The change just involved removing - shared_libs=0 from the Makefile. - -Thu Jan 8 18:35:11 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Just set the four xx_DIRS we overrule always to . independent of the - configuration that the we always output to the same directory - -Thu Jan 8 12:20:23 2004 Jeff Parsons - - * bin/MakeProjectCreator/config/ciao_servant.mpb: - - Changed the default command line from '--lem-file-suffix E.idl' - (since this is now the default suffix) to one that includes - the four include paths required by the inclusion of - Components.idl, which is needed by every .cidl file. - -Thu Jan 8 12:03:22 2004 Steve Huston - - * examples/APG/Timers/TimerDispatcher.cpp: - * examples/APG/Timers/PTimerDispatcher.cpp: Added missing template - instantiations. - -Thu Jan 8 17:05:56 UTC 2004 Johnny Willemsen - - * apps/JAWS/server/HTTP_Server.{h,cpp}: - * apps/JAWS/server/server.mpc: - Made this app compiling with CBX and MPC. Set the correct defines - and use the correct export macros. - -Thu Jan 8 17:02:11 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Corrected setting of STATIC_DIR - -Thu Jan 8 11:23:41 2004 Steve Huston - - * examples/APG/Naming/Name_Binding.h: - * examples/APG/Naming/Temperature_Grapher.cpp: - * examples/APG/Naming/Temperature_Monitor.cpp: - * examples/APG/Naming/Temperature_Monitor2.cpp: Add missing - "ace/OS_NS_*" includes. - - * examples/APG/Naming/Graphable_Element.h: Added 'const' to the when() - and operator<() methods, as well as to operator<()'s parameters, - to match less<> and make CBuilderX happy. Thanks to Johnny Willemsen - for reporting this. - - * examples/APG/Naming/Makefile: Moved the "RM tempinc" up before the - sub-make to avoid inadvertant smashing of tempinc. - - * examples/APG/Proactor/HA_Proactive_Status.cpp (validate_connection): - Removed the parameter names in the ACE_WIN32 case to avoid "unused - parameter" warnings. - -Thu Jan 8 11:05:25 2004 Balachandran Natarajan - - * ace/OS_NS_sys_msg.inl: - - Used a const cast instead of a static cast. - -Thu Jan 8 16:38:56 UTC 2004 Johnny Willemsen - - * apps/JAWS3/jaws3/Export.h: - Set the JAWS_HAS_DLL define correctly when not set. This fixes - the linker errors in the CBX MPC build. - -Thu Jan 8 16:16:11 UTC 2004 Johnny Willemsen - - * ace/Date_Time.i: - Changed the order of the methods to fix Tru64 warnings. - -Thu Jan 8 11:07:31 2004 Steve Huston - - * ace/SSL/SSL_Context.cpp: Added #include "ace/ACE.h" for ACE::debug() - and "ace/OS_NS_string.h" for ACE_OS::strlen(). - -Thu Jan 8 15:45:50 GMT 2004 Paul Morrison - - * ace/OS_NS_sys_shm.inl: - * ace/OS_NS_sys_msg.inl: - * ace/OS_NS_stdlib.cpp: - * ace/Mem_Map.i: - - Added #includes to fix LynxOS compilation errors. - -Thu Jan 8 07:47:58 2004 Chad Elliott - - * ace/QoS/qos.mpc: - * ace/RMCast/rmcast.mpc: - * ace/SSL/ssl.mpc: - * ace/TMCast/TMCast.mpc: - * ace/ace.mpc: - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - - Removed the include_dir setting. This is determined automatically - in the Borland template. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Removed support for the include_dir keyword. It's usage is - superseded by the use of <%relwd%> in the Borland template. - -Wed Jan 7 23:06:57 UTC 2004 Don Hinton - - * include/makeinclude/all_in_one.GNU: - * include/makeinclude/platform_g++_common.GNU: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.local.GNU: - * include/makeinclude/rules.nested.GNU: - * include/makeinclude/wrapper_macros.GNU: - Use xxx ?= instead of ifndef xxx, for setting default values - since it is more concise and makes the files much smaller. - - * include/makeinclude/all_in_one.GNU: - Always add the *_UNCHECKED to the regular targets if no - components are missing, since Makefiles can have both checked - and unchecked targets. - - * include/makeinclude/platform_g++_common.GNU: - * include/makeinclude/rules.bin.GNU: - Moved the check for which ld version is used out of and above - the shared library section so that we could use the GNU_LD flag - to add "-static" to a new variable, STATIC_LINK_FLAG when using - the GNU version of ld. Then add STATIC_LINK_FLAG to LDFLAGS if - static_libs_only=1. - - * include/makeinclude/rules.lib.GNU: - Added CLEANUP_VLIB and use it to set CLEANUP_INSTALL since it - includes the VAR extention if one was set. Also, make VLIBS - dependent on IDL_SRC. - -Wed Jan 7 17:34:26 2004 Steve Huston - - * examples/APG/Proactor/HA_Proactive_Status.cpp: Added #include - "ace/Log_Msg.h" to find LM_DEBUG, et al. - - * examples/APG/Processes/Process_Manager_Spawn.cpp: - * examples/APG/Processes/Process_Mutex.cpp: - * examples/APG/Processes/Spawn.cpp: - * examples/APG/Reactor/HAStatus.cpp: - * examples/APG/Reactor/HAStatus-AC.cpp: - * examples/APG/Shared_Memory/Hash_Map.cpp: - * examples/APG/Shared_Memory/Malloc.cpp: - * examples/APG/Shared_Memory/PI_Malloc.cpp: - * examples/APG/Shared_Memory/Pool_Growth.cpp: - * examples/APG/Timers/Alarm.cpp: - * examples/APG/Timers/Task.cpp: - * examples/APG/Timers/Upcall.cpp: Added missing includes - for "ace/OS_NS_*.h". - - * examples/APG/Reactor/Client.h: - * examples/APG/Reactor/ClientService.h" Add #include - "ace/Synch_Traits.h", "ace/Null_Condition.h", and "ace/Null_Mutex.h" - for Visual Age C++ to see when compiling templates. - - * ACEXML/Makefile: - * examples/APG/Svc_Config/Makefile: - * examples/APG/Timers/Makefile: Move the rm tempinc up to before - the sub-make runs to avoid whacking it while a subsequent sub-make - is running. - - * examples/APG/Svc_Config/Makefile.dynamic: Add LIBS += $(ACELIB) - - * tests/Makefile: Add .NOTPARALLEL for Visual Age C++ to avoid - squashing tempinc randomly, resulting in missing templates. - - * tests/Makefile.tests: Moved the DIRS_PARALLEL setting down to after - wrapper_macros.GNU is included and only set it for non-Visual Age C++ - builds. The tempinc directory getting mashed in parallel builds - makes mysterious build errors happen on AIX, Visual Age C++. - -Wed Jan 7 16:33:14 2004 Balachandran Natarajan - - * ace/config-tandem-nsk-mips-v2.h: - - Added the config files provided by Gary Maxey - for Tandem NSK. - -Wed Jan 7 15:55:41 2004 Steve Huston - - * ace/OS_NS_netdb.inl (getipnodebyaddr, getipnodebyname, ): Make - ACE_WIN32 go through the IPv4-only case. Since Windows IPv6 - implementation (at this time) doesn't offer - getipnodebyname() we make the code to pass through IPV4 portion - even if ACE_HAS_IPV6 is enabled. - - * ace/OS_NS_arpa_inet.inl (inet_ntop, inet_pton): Make these run - through the IPv4-only section on Win32 as well. These may be doable - on Windows using the getnameinfo() function, but it's not clear. - Needs some research and checking (and improvement of the docs for) - what the args for ACE_OS::inet_ntop() and inet_pton() are. - -Wed Jan 7 13:09:27 2004 Balachandran Natarajan - - * ace/OS_NS_Thread.inl: - * ace/OS_NS_Thread.h: - - The following checkin "Mon Jan 5 11:02:55 2004 Douglas - C. Schmidt " actually broke - ACE_Auto_Event. The idea behind the said checkin was to do a - check whether a proper event occured during event_wait (), - insted of a spurious wakeup call. This was achieved by checking - the value of . This works great for manual - events. For auto events, we don't set the variable value if we - have waiting threads. This makes the threads calling - Auto_Event.wait () to wait for ever. - - We now have another special boolean variable added to - ACE_event_t class which keeps track whether an auto event was - signalled during the signal () call. Thanks to Dr. Schmidt for - giving this idea. We need to revisit this later after x.4 and - use inheritance and polymorphism to encapsulate these behvioral - differences. Doing now could break backward compatibility. - -Wed Jan 7 13:03:06 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added an informational message when a project will be skipped when - a required feature is disabled or an avoided feature is enabled. - -Wed Jan 7 18:37:13 UTC 2004 Johnny Willemsen - - * ace/Makefile.bor: - Added special rule to install the os_include directory and its - subdirectories. Thanks to Chris Kohlhoff for coming up with the - solution and to Cyrille Chépélov for reporting - this. This fixes [BUGID 1669]. - -Wed Jan 7 12:13:12 2004 Chad Elliott - - * bin/MakeProjectCreator/config/orbsvcs_output.mpb: - * bin/MakeProjectCreator/config/orbsvcsexe.mpb: - * bin/MakeProjectCreator/config/tao_output.mpb: - * bin/MakeProjectCreator/config/taodefaults.mpb: - * bin/MakeProjectCreator/config/taoexe.mpb: - * bin/MakeProjectCreator/config/taolib.mpb: - - Factored staticflags, includes and libpaths common to TAO based - projects into a taodefaults base project and modified other base - projects in accordance. - - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - * bin/MakeProjectCreator/config/taolib_with_idl.mpb: - - Factored common idlflags and after settings into a taoidldefaults - base project and modified other base projects in accordance. - -Wed Jan 7 17:50:13 UTC 2004 Johnny Willemsen - - * apps/gperf/tests/c++-res.exp: - * apps/gperf/tests/c++.gperf: - * apps/gperf/tests/cpp-res.exp: - * apps/gperf/tests/cpp.gperf: - Removed the c++ files and added them with cpp again. The BCB makefile - environment can't handle files with a + in the name. Because we are - using MPC this test is now also build with Borland. - - * apps/gperf/tests/Makefile: - * apps/gperf/tests/Makefile.am: - * apps/gperf/tests/tests.mpc: - Updated these files to reflect the change above. - -Wed Jan 7 10:34:29 2004 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added an option that causes MPC to apply the name modifier - (specified by the -name_modifier option) to project names in - addition to workspace and project file names. - -Wed Jan 7 14:04:11 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Corrected the check whether we need to generate LIBFILES or not. - -Wed Jan 7 13:10:01 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Generate the -j option again, thanks for Chris Kohlhoff for pointing - out the need for it. If there are no staticflags or dynamicflags, just - generate nothing instead of an empty line. Don't generate the - INCLUDES anymore because we generate an explicit install target. - Fixed the install target to handle existing directories and generate - it at the end of the file. - -Wed Jan 7 13:03:49 UTC 2004 Johnny Willemsen - - * ace/Unbounded_Set_Ex.h: - Added #include of ace/os_include/os_stddef.h to get size_t. This - fixed compile errors in the Cygwin build - -Wed Jan 7 12:57:13 UTC 2004 Johnny Willemsen - - * performance-tests/UDP/UDP.mpc: - When usign gnuace generate LDLIBS += $(MATHLIB) at the place of - the local marker. This test uses sqrt and some Unix versions - then need to link their mathlib. - -Wed Jan 7 06:24:54 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - - Fixed a bug where $() variables used within Source_Files would - cause an incorrect VPATH to be created in the generated Makefile. - Also, removed an unused code block. - - * bin/MakeProjectCreator/modules/StringProcessor.pm: - - Reimplemented the create_array() method to fix a bug with escaped - double and single quotes and to improve performance. - - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Version.pm: - - Moved the MPC version number out of Driver.pm and into a new - Version module. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - - Performance related changes. - -Tue Jan 6 17:50:31 2004 Steve Huston - - * ace/TLI.cpp (get_option, set_option): For the XPG5 case, use - a auto_ptr to hold the allocated buff pointer, even though - it's a void*, to compile correctly. Need to cast this to make - it work. - - * include/makeinclude/platform_aix_g++.GNU: Change -ltli_r to -lxti - to use XTI instead of TLI. Also see: - Mon Dec 29 17:09:29 2003 Steve Huston - Removed the versioned_so=0 default - with versioned_so=0, the rule - for making VLIB gets overridden by the one for VSHLIB: shr.o. Not - sure how to remedy this, but by making a versioned_so, it's at - least building it normally. - - * include/makeinclude/platform_g++_common.GNU: Made with_ld=aix not - try to set any versioned_so linker options. The default doesn't work, - and as long as we're linking to archives that contain shr.o, this - is probably fine. If we ever get rtl mode working, this probably - needs to be revisited. - -Tue Jan 6 14:00:12 2004 Steve Huston - - * examples/APG/Logging/Trace.h: - * examples/APG/Logging/Wrap_Macros.cpp: - * examples/APG/Logging/Trace_Return.cpp: The funky __VA_ARGS__ trick - works only on g++ 2.96 and later. - - * examples/APG/Makefile: Re-enabled the Logging directory - with the - fixes above, this should work everywhere now. - - * examples/Misc/test_read_buffer.cpp: Added #include - "ace/OS_NS_unistd.h" to get ACE_OS::write(). - - * examples/performance-tests/SCTP/Options_Manager.cpp: Added #include - "ace/OS_NS_stdlib.h" to get ACE_OS::atoi(). - -Tue Jan 6 13:34:29 2004 Steve Huston - - * examples/APG/ThreadSafety/Atomic_Op.cpp: - * examples/APG/ThreadSafety/RW_Lock.cpp: - * examples/APG/ThreadSafety/TSS.cpp: Added missing template - instantiations. Corrected #pragma instantiate directives. - -Mon Jan 5 17:51:36 2004 Steve Huston - - * ace/Condition_T.cpp: Added #include "ace/OS_NS_Threads.h" to get - ACE_cond_t, and a forward ref for ACE_Time_Value, both so Visual - Age C++ can see these when instantiating templates. - - * ace/Condition_T.cpp: Added #include "ace/Log_Msg.h" to pick up - ACE_ERROR, LM_ERROR, etc. - - * ace/Timer_Queue_Adapters.cpp: Added #include "ace/OS_NS_sys_time.h" - to see ACE_OS::gettimeofday(). - - * ace/Svc_Handler.cpp: - * examples/Timer_Queue/Async_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: Add #include - "ace/OS_NS_sys_time.h" so Visual Age C++ can see - ACE_OS::gettimeofday(). - - * examples/APG/Active_Objects/AO.cpp: - * examples/APG/Active_Objects/AO2.cpp: - * performance-tests/Misc/childbirth_time.cpp: Added #include - "ace/OS_NS_unistd.h" to see ACE_OS::sleep(). - - * examples/APG/Containers/DLList.cpp: - * examples/APG/Containers/Stacks.cpp: - * examples/APG/Containers/Queues.cpp: - * examples/APG/Containers/Array.cpp: - * examples/APG/Containers/Sets.cpp: Added #include "ace/OS_Memory.h" - to see ACE_NEW[_RETURN]. - - * examples/APG/Streams/Answerer.cpp: - * examples/APG/ThreadPools/Futures.cpp: - * examples/APG/ThreadPools/LF_ThreadPool.cpp: - * examples/APG/ThreadPools/ThreadPool.cpp: - * examples/APG/ThreadPools/TP_Reactor.cpp: - * examples/APG/ThreadSafety/Semaphore.cpp: - * examples/Threads/future1.cpp: - * examples/Threads/future2.cpp: Added #include - "ace/OS_NS_string.h" to get ACE_OS::strlen(), et al. - - * examples/Timer_Queue/Driver.cpp: Added missing #includes to make - Visual C++ happy. - - * examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp: - * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp: - Add #include "ace/OS_NS_string.h" so Visual Age C++ can see - ACE_OS::strdup(). - - * examples/Connection/non_blocking/CPP-acceptor.cpp: Add #include - "ace/OS_NS_unistd.h" to get ACE_OS::write(). - - * examples/Connection/non_blocking/CPP-connector.cpp: Add #include - "ace/OS_NS_stdio.h" so Visual Age C++ can see ACE_OS::rewind(); add - #include "ace/OS_NS_unistd.h" to get ACE_OS::read(). - - * examples/Misc/test_read_buffer.cpp: Add #include "ace/OS_NS_fcntl.h" - so Visual Age C++ can see ACE_OS::open(). - - * examples/Shared_Malloc/test_malloc.cpp: Add #include - "ace/OS_NS_stdio.h" to see ACE_OS::sprintf() and "ace/OS_NS_string.h" - to see ACE_OS::memset(). - - * examples/Shared_Malloc/Options.cpp: Add #include "ace/OS_NS_stdlib.h" - so Visual Age C++ can see ACE_OS::atoi() and exit(). - - * examples/Shared_Malloc/test_multiple_mallocs.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - * performance-tests/TCP/tcp_test.cpp: Add #include - "ace/OS_NS_string.h" to pick up a bunch of ACE_OS string members. - - * examples/Threads/auto_event.cpp: - * examples/Threads/barrier2.cpp: - * examples/Threads/manual_event.cpp: - * examples/Threads/process_manager.cpp: - * examples/Threads/task_three.cpp: - * examples/Threads/task_four.cpp: - * examples/Threads/thread_manager.cpp: - * examples/Threads/thread_pool.cpp: Added #include - "ace/OS_NS_unistd.h" to get sleep(), write(). - - * examples/Threads/reader_writer.cpp: Added #include "ace/Guard_T.h" - and "ace/RW_Mutex.h" so Visual Age C++ can see these classes. - - * examples/Threads/recursive_mutex.cpp: Added #include "ace/Guard_T.h" - and "ace/Recursive_Thread_Mutex.h" so Visual Age C++ can see these - classes. - - * examples/Threads/thread_specific.{h cpp}: Added #include - "ace/Guard_T.h", "ace/OS_NS_stdio.h", "ace/OS_NS_string.h", and - "ace/OS_NS_unistd.h" to satisfy Visual Age C++. - - * performance-tests/Misc/context_switch_time.cpp: Added #include - "ace/OS_NS_stdio.h" to get ACE_OS::perror(). - - * performance-tests/Misc/test_singleton.cpp: Added #include - "ace/Guard_T.h" to get ACE_Guard stuff. - - * performance-tests/Misc/test_naming.cpp: Added #include "ace/ACE.h" - to get ACE::basename(). - - * performance-tests/SCTP/Options_Manager.h" Added #include - "ace/streams.h" to portably get ostream. - - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Svc_Handler_Test.cpp: Added #include "ace/Synch_Traits.h", - "ace/Null_Condition.h", and "ace/Null_Mutex.h" so Visual Age C++ - can see the stuff needed for ACE_NULL_SYNCH. - - * tests/Thread_Pool_Test.cpp: Add #include "ace/OS_NS_string.h" so - Visual Age C++ can see ACE_OS::strlen(). - - * tests/Naming_Test.cpp: Add #include "ace/ACE.h" so Visual Age C++ - can see ACE::basename(). - -Mon Jan 5 16:34:18 2004 Steve Huston - - Incorporated these fixes from Riverace's ACE 5.3: - Thu Dec 18 11:07:22 2003 Steve Huston - - * ace/ace_wchar.inl: When converting narrow<->wide on Windows, use - the current ANSI code page for narrow chars, not CP_OEMCP. This - allows 8-bit narrow characters to be converted correctly. - - Wed Dec 10 14:22:16 2003 Steve Huston - - * tests/OS_Test.cpp: Added a test for wide/narrow character string - conversions. - -Mon Jan 5 14:09:34 2004 Douglas C. Schmidt - - * ace/Log_Msg.cpp (log): - * ace/OS_NS_Thread.cpp (to_string): Tandem NSK uses a struct for - pthread_t. Need changes to existing preprocessor #ifs in - Log_Msg.cpp and OS_NS_Thread.cpp to handle this so they now - read - - # elif defined (ACE_MVS) || defined (ACE_TANDEM_T1248_PTHREADS) - - Thanks to Gary Maxey for this fix, which fixes bugid 1704. - - * ace/Handle_Set.cpp: The order of bits in the elements of the - fd_set structure for the Tandem NSK platform is left-to-right rather - than right-to-left like most other platforms except pSoS. Therefore - added - - # if defined (ACE_PSOS) || defined (ACE_TANDEM_NSK_BIT_ORDER) - - to handle this situation. Thanks to Gary Maxey - for reporting this and providing the fix. This fixes bugid 1703. - -Mon Jan 5 12:43:01 2004 Balachandran Natarajan - - * ace/Name_Proxy.cpp: - * ace/Time_Request_Reply.cpp: - - #included "ace/os_include/arpa/os_inet.h" to fix [BUG - 1701]. Thanks to Garey Maxey for reporting - the problem. - -Mon Jan 5 12:30:56 2004 Don Hinton - - * include/makeinclude/rules.lib.GNU: - - Fixed a bug report that caused the generated cpp files to be - added to the archive. Thanks to Werner Buchart - for reporting the problem. - -Mon Jan 5 10:47:51 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/cbx.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Removed the .\ that preceded file names to allow users to put - absolute paths in MPC files (which isn't recommended for - portability reasons). - -Mon Jan 5 11:02:55 2004 Douglas C. Schmidt - - * ace/OS_NS_Thread.inl: Fixed ACE_OS::event_timedwait() and - ACE_OS::event_wait() so that they use a while loop around the - ACE_OS::cond_[timed]wait() calls to avoid problems with spurious - wakeups, etc. Thanks to John Bossom - for motivating this fix. - -Sun Jan 4 20:40:41 2004 Balachandran Natarajan - - * */Makefile*: - - Release is fast approaching. Updates to the Makefile - dependencies. - -Sun Jan 4 15:12:14 2004 Balachandran Natarajan - - * apps/JAWS3/jaws3/Asynch_IO.cpp: - * apps/JAWS3/jaws3/Concurrency.cpp: - * apps/JAWS3/jaws3/Config_File.cpp: - * apps/JAWS3/jaws3/Datagram.cpp: - * apps/JAWS3/jaws3/Event_Completer.cpp: - * apps/JAWS3/jaws3/Event_Dispatcher.cpp: - * apps/JAWS3/jaws3/FILE.cpp: - * apps/JAWS3/jaws3/IO.cpp: - * apps/JAWS3/jaws3/Makefile: - * apps/JAWS3/jaws3/Options.cpp: - * apps/JAWS3/jaws3/Protocol_Handler.cpp: - * apps/JAWS3/jaws3/Reactive_IO.cpp: - * apps/JAWS3/jaws3/Signal_Task.cpp: - * apps/JAWS3/jaws3/Symbol_Table.cpp: - * apps/JAWS3/jaws3/Synch_IO.cpp: - * apps/JAWS3/jaws3/THYBRID_Concurrency.cpp: - * apps/JAWS3/jaws3/TPOOL_Concurrency.cpp: - * apps/JAWS3/jaws3/TPR_Concurrency.cpp: - * apps/JAWS3/jaws3/Task_Timer.cpp: - * apps/JAWS3/jaws3/Templates.cpp: - * apps/JAWS3/jaws3/Timer.cpp: - * apps/JAWS3/jaws3/Timer_Helpers.cpp: - - Fixed warnings in g++ due to redefinitions. - -Sun Jan 4 09:56:04 2004 Balachandran Natarajan - - * examples/APG/Makefile: - - Removed the Logging example from the builds. The macro - definitions seem to pain a few compilers. - -Sun Jan 4 11:59:46 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - There is no need to pass the libpaths with the -j commandline option - to the linker, the -L flags is only needed. The -j flag specifies - where the object files are located, the -L flag the location of the - lib files. - -Sun Jan 4 10:30:06 UTC 2004 Johnny Willemsen - - * examples/APG/Makefile: - Fixed directory name - -Sun Jan 4 10:18:32 UTC 2004 Johnny Willemsen - - * apps/JAWS3/jaws3/jaws3.mpc: - Set correct dynamicflags. Instead of using ../ as includes, use .. - Borland has problems with ../ and in other places we also use .. - -Sun Jan 4 08:59:43 UTC 2004 Johnny Willemsen - - * examples/APG/ThreadPools/Futures.cpp: - * examples/APG/ThreadPools/ThreadPool.cpp: - Changed return type of thread_id functions from int to ACE_thread_t - - * examples/APG/Signals/SigInfo.cpp: - Cygwin doesn't have unix signals, so added #ifdef for the main to - output an debug message that this example is not supported on this - platform when no unix signals are available. - - * examples/APG/Proactor/HA_Proactive_Status.{h,cpp}: - With Cygwin we don't have aio, so added here also a main that - outputs not supported when this is not available. - -Sun Jan 4 08:28:13 UTC 2004 Johnny Willemsen - - * examples/APG/Reactor/Timer_Cancel.cpp: - Fixed unused variable warning - -Sun Jan 4 08:19:12 UTC 2004 Johnny Willemsen - - * examples/APG/Containers/containers.mpc: - Prefixed the project name Map Manager with the '*' operator to - avoid project name conflicts. Added Id tag - -Sat Jan 3 23:45:38 2004 Balachandran Natarajan - - * examples/APG/Makefile: - - Some tests/examples do need threads and synchronization. Instead - of doing tricks and confusing the reader, let us be good on them - and prevent compilation in single threaded builds. - -Sat Jan 3 23:12:58 2004 Balachandran Natarajan - - * examples/Makefile: - - Added APG directory back in. - -Sat Jan 3 23:10:35 2004 Balachandran Natarajan - - * examples/APG/Proactor/HA_Proactive_Status.cpp: - * examples/APG/Processes/Spawn.cpp: - * examples/APG/Shared_Memory/Hash_Map.cpp: - * examples/APG/Signals/SigInfo.cpp: - * examples/APG/ThreadManagement/State.cpp: - * examples/APG/Threads/Activate.cpp: - * examples/APG/Timers/Alarm.cpp: - * examples/APG/Timers/CB.cpp: - * examples/APG/Timers/PCB.cpp: - * examples/APG/Timers/Task.cpp: - - Fixed more unused variable warnings and #included files that - were needed to compile on SuSE. - -Sat Jan 3 19:31:59 2004 Balachandran Natarajan - - * examples/APG/Reactor/Timer_State_Data.cpp: - * examples/APG/Streams/Answerer.cpp: - * examples/APG/Streams/Util.h: - * examples/APG/ThreadManagement/Priorities.cpp: - * examples/APG/ThreadSafety/Mutex.cpp: - - Fixed more unused variable warnings. - -Sat Jan 3 17:26:39 2004 Steve Huston - - * examples/APG/Naming/Temperature_Monitor2.cpp: - * examples/APG/Shared_Memory/Mem_Map.cpp: - * examples/APG/Streams/RecordingDevice_Text.cpp: - * examples/APG/Timers/Task.cpp: - * examples/APG/Timers/Timers.cpp: Fixed unused/uninitialized warnings. - - * examples/APG/Timers/Upcall.{h cpp}: Changed to match new - timer queue upcall handler API for ACE 5.4. - - * examples/APG/ThreadSafety/Barrier.cpp: Get a random sleep time - using ACE_OS::rand() instead of the thread ID. Thread ID is not - an integral type on some platforms. - -Sat Jan 3 14:08:13 2004 Balachandran Natarajan - - * bin/tao_other_tests.lst: - - Added the ior_corbaloc test to be run in the daily builds. - -Sat Jan 3 11:02:32 2004 Balachandran Natarajan - - * examples/Makefile: - - Removed ASG for the timebeing from the daily builds. I want to - seperate the chaff from wheat and the noise form this is making - things hard. Will let Steve know about this. - -Sat Jan 3 16:14:13 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Removed the usage of IDL_DIR. There where problems when generating - Borland makefiles for projects where the idl file is in a different - directory than the project file. In that case the IDL_DIR should - not be . but the directory where the idl files are. Because this is - a hard thing to do, just removed IDL_DIR and take the path of the - IDL file that is in the MPC file. This way Borland works just like the - other environments and this way we can also handle IDL files in - other directories. - -Sat Jan 3 13:11:13 UTC 2004 Johnny Willemsen - - Added needed includes to compile the APG examples using the Borland - compiler. - - * examples/APG/Config/ARGV_Example.cpp: - * examples/APG/Config/Get_Opt.cpp: - * examples/APG/Config/Get_Opt_Long.cpp: - Added #include "ace/OS_NS_string.h" to get ACE_OS::strcmp and - ACE_OS::strncmp. - - * examples/APG/Naming/Naming_Context.h: - * examples/APG/Processes/Spawn.cpp: - * examples/APG/Shared_Memory/Malloc.cpp - Added #include "ace/OS_NS_stdio.h" to get ACE_OS::sprintf. - - * examples/APG/Signals/SigAction.cpp: - * examples/APG/Signals/SigGuard.cpp: - * examples/APG/Signals/SigHandler.cpp: - * examples/APG/Signals/SigHandlers.cpp: - * examples/APG/ThreadManagement/Coop_Cancel.cpp: - * examples/APG/ThreadManagement/Signals.cpp: - * examples/APG/ThreadManagement/Signals2.cpp: - * examples/APG/Threads/Activate.cpp: - Added #include "ace/OS_NS_unistd.h" to get ACE_OS::sleep and - ACE_OS::getpid. - - * examples/APG/Sockets/Basic_Robust.cpp: - * examples/APG/Sockets/Server.cpp: - Added #include "ace/OS_NS_errno.h" to get ACE_OS::lasterrror. - -Fri Jan 2 18:07:31 2004 Steve Huston - - * examples/APG/Active_Objects/AO.cpp: - * examples/APG/Active_Objects/AO2.cpp: - * examples/APG/Containers/Stacks.cpp: - * examples/APG/Containers/Queues.cpp: - * examples/APG/Containers/Array.cpp: - * examples/APG/Containers/Sets.cpp: - * examples/APG/Containers/Hash_Map_Hash.cpp: - * examples/APG/Containers/Allocator.cpp: - * examples/APG/Proactor/HA_Proactive_Status.cpp: - * examples/APG/Reactor/Client.cpp: - * examples/APG/Shared_Memory/Hash_Map.cpp: - * examples/APG/Shared_Memory/Pool_Growth.cpp: - * examples/APG/Threads/Condition_Variables.cpp: - * examples/APG/Threads/Message_Queue.cpp: - * examples/APG/ThreadManagement/Start_Hook.cpp: - * examples/APG/ThreadPools/Futures.cpp: - * examples/APG/ThreadPools/LF_ThreadPool.cpp: - * examples/APG/ThreadPools/ThreadPool.cpp: Added missing template - instantiations. Corrected #pragma instantiate directives. - - * examples/APG/Config/ARGV_Example.cpp: - * examples/APG/Reactor/HAStatus.cpp: - * examples/APG/Reactor/HAStatus-AC.cpp: Added #include - "ace/os_include/os_netdb.h" to get MAXHOSTNAMELEN. - - * examples/APG/Naming/Graphable_Element.h: Corrected include for - list<> to be , not "list". - - * examples/APG/Naming/Graphable_Element.cpp: Removed this file. It - only had template instantiations in it, for list<> and friends. - We're not even going to try this with explicit instantiation. - - * examples/APG/Shared_Memory/Record.h: Changed #include "ace/OS.h" - to "ace/OS_NS_string.h". - - * examples/APG/Signals/SigAction.cpp: Account for platforms that - require the signal handler to be extern "C". - - * examples/APG/Makefile: Only build the Naming directory if using - implicit template instantiation. See above for rationale. - -Fri Jan 2 13:00:20 2004 Chad Elliott - - * examples/APG/Sockets/sockets.mpc: - - Prefixed the project name with the '*' operator to avoid project - name conflicts. - -Fri Jan 2 08:56:04 2004 Chad Elliott - - * examples/APG/Config/config.mpc: - * examples/APG/Containers/containers.mpc: - * examples/APG/Reactor/reactor.mpc: - * examples/APG/Shared_Memory/shared_memory.mpc: - * examples/APG/Svc_Config/svc_config.mpc: - - Changed instances of dllflags to dynamicflags and added the '*' - operator to some of the project names to remove duplicates. - -Fri Jan 02 08:08:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Also overrule PASCALDIR and UNICODEDIR - -Thu Jan 01 20:25:22 2004 Balachandran Natarajan - - * tests/TSS_Static_Test.dsp: - - A new project file for TSS_Static_Test. - - * tests/tests.dsw: - - Added the new dsp file into the project. - -Thu Jan 1 17:56:31 2004 Steve Huston - - * ace/OS_NS_sys_socket.inl (closesocket): On HP-UX, use - shutdown() rather than close() to close a socket. shutdown() - will abort an in-progress operation in another thread, while - close() won't. This fixes the hang in the - MT_Reference_Counted_Event_Handler_Test and will make the Proactor - stuff more easy to work with as well. - - * ace/Time_Value.h: Don't include (or ) directly; - use ace/os_include/sys/os_time.h to get what's needed. This - prevents HP-UX from pulling in before and - picking up the wrong declaration for select(). Fixes gcc builds. - - * ace/Name_Space.h: Replace forward declarations of ACE_Unbounded_Set - with #include "ace/Unbounded_Set.h". Needed to generate template - specializations. - - * examples/APG/Logging/Callback-2.h: - * examples/APG/Logging/LogManager.h: - * examples/APG/Naming/Thermometer.h: - * examples/APG/Naming/Temperature_Monitor.cpp: - * examples/APG/Naming/Temperature_Monitor2.cpp: - * examples/APG/Proactor/HA_Proactive_Status.h: - * examples/APG/Processes/Process_Manager_Death.cpp: - * examples/APG/Reactor/HAStatus.cpp: - * examples/APG/Reactor/Reschedule.cpp: - * examples/APG/Reactor/Schedule_Timers.cpp: - * examples/APG/Reactor/Timer_Cancel.cpp: - * examples/APG/Reactor/Timer_State_Data.cpp: - * examples/APG/Shared_Memory/Malloc.cpp: - * examples/APG/Shared_Memory/PI_Malloc.cpp: - * examples/APG/Signals/SigInfo.cpp: - * examples/APG/Streams/RecordingDevice.h: - * examples/APG/ThreadManagement/Coop_Cancel.cpp: - * examples/APG/ThreadPools/Futures.cpp: - * examples/APG/ThreadPools/Task_ThreadPool.cpp: - * examples/APG/ThreadPools/ThreadPool.cpp: - * examples/APG/ThreadSafety/Barrier.cpp: - Added #includes for "ace/OS_NS_*.h" as needed to convert from - 5.3 OS.h usage to refactored OS_NS_*.h headers. Added missing - header includes that worked by accident in ACE 5.3. - - * examples/APG/Timers/Upcall.h: Added registration () method that - is now required for a timer queue upcall functor class. This is - also new at ACE 5.4. - -Thu Jan 1 16:23:17 2004 Steve Huston - - * bin/make_release: Add VC6 to files that generate_makefiles() makes. - -Thu Jan 1 15:20:30 2004 Steve Huston - - * examples/Makefile: - * examples/APG: Added all examples from "The ACE Programmer's Guide". - -Thu Jan 1 20:28:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/outputdir.bor: - Object files are always placed in subdirectories dependent on the - configuration - -Thu Jan 1 17:59:32 UTC 2004 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Removed not needed doxygen close group tag - -Thu Jan 1 17:23:44 UTC 2004 Don Hinton - - * include/makeinclude/rules.local.GNU: - Added CLEANUP_BIN to the list of objects cleaned up during a - clean, since they aren't always added to SRC. They get cleaned - when you do a realclean since it removes the .obj directory, but - this allows you to use clean correctly too. - - * include/makeinclude/wrapper_macros.GNU: - Make sure that all appropriate variables are added to the - cleanup targets, e.g., we used to test for LIB, then LIB2, then - LIB_UNCHECKED in that order, but quit testing once we found - one. Now, we test them all and add them. This fixes a bug with - realclean discovered because MPC defines LIB in terms of - LIB_UNCHECKED, then sets LIB= if sufficient components weren't - built, but only after we already set CLEANUP_LIB=$LIB. Which - meant we ended up not cleaning anything. Thanks to Bala for - noticing the problem and motivating the fix. - -Thu Jan 1 16:00:11 UTC 2004 Johnny Willemsen - - * ASNMP/asnmp/asn1.cpp: - Removed not needed ;. This is the last fix for bugzilla [BUGID 1677] - -Thu Jan 1 09:51:05 2004 Balachandran Natarajan - - * bin/tao_orb_tests.lst: - - Added smart proxies test to the daily builds. - -Thu Jan 1 00:35:21 2004 Balachandran Natarajan - - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp: - - Fixed a warning in Solaris 8 builds. - -Thu Jan 1 00:00:00 2004 Douglas C. Schmidt - - * Happy New Year! Let's hope that 2004 is a safe and prosperous - year for everyone. - -Wed Dec 31 21:57:08 2003 Kobi Cohen-Arazi - - * ace/Base_Thread_Adapter.h: - * ace/Base_Thread_Adapter.inl: - * ace/Base_Thread_Adapter.cpp: - - Added #include "os_include/sys/os_time.h" and - data member itimerval itimer_ wrapped with ACE_USES_GPROF. - - This data member will hold the thread profiling timer. - Added Accessor function to itimer_ data member. - (ACE_Base_Thread_Adapter) Constructor calls getitimer. - (ace_thread_adapter) Calls setitimer. - Both are wrapped with ACE_USES_GPROF - - * ace/README: - Added Useful information about ACE_USES_GPROF macro. - That macro enable profiling with gprof in a multithreaded - application. - -Wed Dec 31 13:13:11 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Optimized the implementation of the -exclude option to correctly - avoid searching for files located in excluded directories. - -Wed Dec 31 07:13:25 2003 Chad Elliott - - * ace/TMCast/MTQueue.hpp: - - Added #include for ace/os_include/sys/os_types.h to get the - definition of size_t and changed references to std::size_t to - size_t. - - * ace/config-win32-msvc.h: - - Added a #pragma waring to disable warning #4800 which is a - conversion of integer to boolean warning. - -Wed Dec 31 06:46:36 2003 Chad Elliott - - * apps/JAWS3/jaws3.mwc: - - Removed this file. It is not necessary for two reasons. 1) The - jaws3 project will be part of the "apps" workspace. 2) If a - workspace with just jaws3 is desired, one could run mwc.pl in the - apps/JAWS3 directory to obtain the same results as the removed - mwc file. - -Wed Dec 31 12:30:11 UTC 2003 Johnny Willemsen - - * examples/Export/dll.h: - Removed not needed ; to fix Tru64 warning - -Tue Dec 30 18:14:39 2003 Steve Huston - - * ace/OS_TLI.inl (t_alloc): For XPG5, the t_alloc() return type - changed from char* to void*, so using ACE_OSCALL_RETURN doesn't - work. Use ACE_OSCALL to control the type and return more closely. - - * ace/Timer_List_T.cpp: Add #include "ace/Guard_T.h to get ACE_Guard. - - * apps/Gateway/Gateway/Gateway.cpp: Added #include "ace/OS_NS_stdio.h" - so Visual Age C++ can see ACE_OS::sprintf(). - - * apps/Gateway/Gateway/gatewayd.cpp: Add #include "ace/OS_NS_unistd.h" - so Visual Age C++ can see ACE_OS::access(). - - * apps/Gateway/Peer/Options.cpp: Added #include "ace/OS_NS_stdlib.h" - so Visual Age C++ can see ACE_OS::exit(), getenv(), and atoi(). - Added #include "ace/OS_Memory.h" to get ACE_NEW_RETURN. - - * apps/Gateway/Peer/Peer.cpp: Added #include "ace/OS_NS_stdio.h" - so Visual Age C++ can see ACE_OS::sprintf() and rewind(). Added - "ace/OS_NS_string.h" to get ACE_OS::strdup(). - - * apps/Gateway/Peer/Peer.h: Added #include "ace/Null_Condition.h" - and "ace/Null_Mutex.h" to see the classes invoked via NULL_SYNCH - used in the ACE_Svc_Handler template invocation. - - * apps/drwho/Options.cpp: Added #include "ace/OS_NS_stdlib.h" - so Visual Age C++ can see ACE_OS::exit(), and atoi(). - - * apps/drwho/File_Manager.cpp: Added #include "ace/OS_NS_stdio.h" - so Visual Age C++ can see ACE_OS::tempnam(). - - * apps/gperf/src/Options.cpp: Added #include "ace/OS_NS_stdlib.h" - so Visual Age C++ can see ACE_OS::atoi(). - - * examples/ASX/CCM_App/SC_Server.cpp: Add #include "ace/OS_NS_unistd.h" - so Visual Age C++ can see ACE_OS::read(). - - * examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp: - * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp: - Add #include "ace/OS_NS_stdio.h" so Visual Age C++ can see - ACE_OS::sprintf(). - - * examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp: - Add #include "ace/OS_NS_string.h" so Visual Age C++ can see - ACE_OS::strdup(). - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - Add #include "ace/OS_NS_string.h" so Visual Age C++ can see - ACE_OS::strcmp(). - - * examples/ASX/Message_Queue/buffer_stream.cpp: Added - #include "ace/OS_NS_string.h" to find ACE_OS::strncpy(), - #include "ace/OS_NS_unistd.h" to find ACE_OS::read() and write(), and - #include "ace/OS_NS_stdio.h" to find ACE_OS::sprintf(). - - * examples/ASX/Message_Queue/priority_buffer.cpp: Added - #include "ace/OS_NS_stdio.h" to get ACE_OS::puts(). - - * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: - * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: - Add #include "ace/OS_NS_stdio.h" so Visual Age C++ can see - ACE_OS::sprintf() and "ace/OS_NS_string.h" to see ACE_OS::strdup(). - - * examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp: - Add #include "ace/OS_NS_string.h" so Visual Age C++ can see - ACE_OS::strdup(). - - * examples/C++NPv2/Service_Reporter.cpp: Add #include - "ace/OS_NS_string.h" so Visual Age C++ can find ACE_OS::strcat() - and strlen(). - - * examples/C++NPv2/Client_Logging_Daemon.cpp: Add #include - "ace/OS_NS_sys_time.h" to find ACE_OS::gettimeofday(). - - * examples/C++NPv2/TP_Logging_Server.cpp: Added #include - "ace/OS_Memory.h" to see ACE_NEW_RETURN and "ace/Guard_T.h" to - get the ACE_GUARD stuff. - - * examples/C++NPv2/TP_Logging_Server.h: Added #include - "ace/Synch.h" to see whatever ACE_SYNCH needs. - - * examples/C++NPv2/SR_Configurable_Logging_Server.cpp: Added #include - "ace/OS_Memory.h" to see ACE_NEW_RETURN. - - * examples/C++NPv2/display_logfile.cpp: Add #include - "ace/OS_NS_string.h" to see ACE_OS::strlen() and strnlen(). - - * examples/Connection/misc/test_upipe.h: Added - #include "ace/OS_NS_unistd.h" to find ACE_OS::read(). - - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp: Add #include - "ace/OS_NS_stdio.h" to find ACE_OS::perror(). - - * examples/IPC_SAP/TLI_SAP/db-server.cpp: Add #include - "ace/OS_NS_stdio.h" to find ACE_OS::sprintf(). - - * examples/IPC_SAP/UPIPE_SAP/ex1.cpp: Add #include "ace/OS_NS_string.h" - to find ACE_OS::strcpy(). - - * examples/Logger/Acceptor-server/server_loggerd.cpp: Added #include - "ace/Null_Mutex.h" and "ace/Test_and_Set.h" to get needed class defs. - - * examples/Map_Manager/test_hash_map_manager.cpp: Added #include - "ace/Synch.h" to get whatever ACE_SYNCH is. - - * examples/Naming/test_open.cpp: - * examples/Naming/test_writers.cpp: Added #include "ace/OS_NS_unistd.h" - to get ACE_OS::getpid(). - - * examples/Reactor/Dgram/CODgram.cpp: Added #include - "ace/OS_NS_string.h" to get ACE_OS::strcpy(). - - * examples/Reactor/Dgram/Dgram.cpp: Added #include "ace/OS_NS_string.h" - to get ACE_OS::strcpy() and "ace/OS_NS_unistd.h" to get sleep(). - - * examples/Reactor/Misc/notification.cpp: Added #include - "ace/OS_NS_unistd.h" to get ACE_OS::read() and sleep(). - - * examples/Reactor/Misc/test_reactors.cpp: Add #include - "ace/Recursive_Thread_Mutex.h" to get ACE_Recursive_Thread_Mutex def. - - * examples/Reactor/Misc/test_signals_2.cpp: Add #include "ace/Signal.h" - to see ACE_Sig_Handlers. - - * examples/Reactor/Misc/test_timer_queue.cpp: Add #include - "ace/OS_NS_sys_time.h" to get ACE_OS::gettimeofday(). - - * examples/Reactor/Multicast/client.cpp: Add #include "ace/OS_Memory.h" - to get ACE_NEW_RETURN and "ace/OS_NS_stdlib.h" to get ACE_OS::atoi(). - - * examples/Reactor/Ntalker/ntalker.cpp: Add #include - "ace/OS_NS_unistd.h" to get ACE_OS::read(). - - * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp: - Add #include "ace/OS_NS_stdlib.h" to get ACE_OS::atoi() and exit(). - - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i: - Add #include "ace/OS_NS_string.h" to get ACE_OS::strdup() and - strncpy(). - - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Broadcast.i: - Add #include "ace/OS_NS_string.h" to get ACE_OS::strdup() and - strncpy(); "ace/OS_NS_unistd.h" to get ACE_OS::read()/write(). - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - Add #include "ace/OS_NS_stdio.h" to get ACE_OS::puts() and sprintf(), - "ace/OS_NS_string.h" and "ace/OS_NS_unistd.h". - - * examples/Service_Configurator/IPC-tests/server/server_test.cpp: Added - #include "ace/OS_NS_unistd.h" to get ACE_OS::getpid(). - - * include/makeinclude/platform_aix_ibm.GNU: Changed -ltli_r to -lxti; - Matches change to ACE_HAS_XTI in: - Mon Dec 29 17:09:29 2003 Steve Huston - -Tue Dec 30 15:21:16 2003 Balachandran Natarajan - - * ace/INET_Addr.cpp (set_interface): - - Check for multicast link local in addition to unicast link local - before calling a if_nametoindex (). Thanks to Andre Kostur - for providing the patch. - -Tue Dec 30 13:02:09 2003 Chad Elliott - - * ace/ace.mpc: - - Added the os_include, os_include/arpa, os_include/net, - os_include/netinet and os_include/sys directories to the - Header_Files section. - - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Added code to get allow templates to get the current working - directory and the directory relative to the current working - directory with the relative definitions. - - * bin/MakeProjectCreator/templates/bor.mpd: - - Updated the Borland template to put the executables and libraries - in locations consistent with all other MPC generated projects. - - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_example.bor: - * include/makeinclude/build_exe.bor: - * include/makeinclude/build_lib.bor: - * include/makeinclude/install.bor: - * include/makeinclude/outputdir.bor: - - Modified these to work with the new Borland template. The - defaults have not been changed and the changes that were made - should be backward compatible with the existing Borland - makefiles. - -Tue Dec 30 15:16:02 UTC 2003 Don Hinton - - * *.mpb: - * bin/MakeProjectCreator/templates/*.mpt: - Added $ID tag to quash fuzz errors. - -Tue Dec 30 08:38:59 2003 Chad Elliott - - * ace/ace.mpc: - - Removed Refcounted_Auto_Ptr.cpp from the Template_Files. - Apparently there was never a Refcounted_Auto_Ptr.cpp. - -Mon Dec 29 17:09:29 2003 Steve Huston - - * ace/TLI.cpp: Add #include "ace/OS_TLI.h" to see the ACE_OS::t_* - methods and LOCALNAME/REMOTENAME. In get_option() and set_option(), - decide on use of auto_ptr vs. ACE_Auto_Array_Ptr based on the XPG - level currently being used. XPG5 changed the buf member from - char* to void*. - - * ace/config-aix-4.x.h: Removed ACE_HAS_TIUSER_H and ACE_HAS_TLI; - added ACE_HAS_XTI. Go with the more advanced capabilities. - - * include/makeinclude/platform_aix_ibm.GNU: Set the default value - for 'inline' based on 'debug' - if debug is on, inline off, and - vice-versa. - - * include/makeinclude/wrapper_macros.GNU: Corrected the "inline ?=" - line to set the default to 1 (instead of blank). This enables - inlining unless platform_macros.GNU sets it explicitly. - -Mon Dec 29 14:48:30 2003 Balachandran Natarajan - - * bin/tao_other_tests.lst: - - Do not run reference counted servant test in the minimum corba - builds. - -Mon Dec 29 12:48:22 2003 Balachandran Natarajan - - * bin/tao_other_tests.lst: - - Reduced iterations for a few tests. - -Mon Dec 29 18:28:54 UTC 2003 Don Hinton - - * etc/ace.doxygen: - Also remove the final '/' from STRIP_FROM_PATH, i.e., - STRIP_FROM_PATH=$(ACE_ROOT)/, so that the file list will look - like this, ace/, instead of /ace/. - -Mon Dec 29 11:20:50 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: - - Added Bug_1670_Regression to the daily builds. - -Mon Dec 29 10:57:23 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: - - Added Bug_1568_Regression to the daily builds. - -Mon Dec 29 08:48:40 2003 Chad Elliott - - Committing changes originally made by Trevor Fields - on TAO 1.3a. - - * bin/MakeProjectCreator/config/dsnotifylogadmin.mpb: - - Changed the inheritance to correspond with what the - DsNotifyLogAdmin library uses. - - * bin/MakeProjectCreator/config/openssl.mpb: - - Added $(SSL_ROOT)/out32 to the libpaths to pick up static - OpenSSL libraries on Windows. - - * bin/MakeProjectCreator/config/portablegroup.mpb: - - Added inheritance of minimum_corba. - -Sun Dec 28 22:36:22 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: - - Added Bug_1693_Test to the daily builds. - -Sun Dec 28 15:46:43 UTC 2003 Johnny Willemsen - - * etc/*.doxygen: - Removed CGI_NAME, CGI_URL, DOC_URL, DOC_ABSPATH, BIN_ABSPATH and - EXT_DOC_PATHS from the doxygen config files. These options are no - longer available because doxygen now uses PHP for search pages - instead of CGI. The search page is disabled at this moment. - -Sun Dec 28 15:09:34 UTC 2003 Don Hinton - - * etc/ace.doxygen: - Changed CASE_SENSE_NAMES=NO in order to fix problems on systems - without case sensitive file systems; doxygen adds enough of the - path to make each filename unique. Enabled SHORT_NAMES to make - sure names don't grow too long. - - Set FULL_PATH_NAMES=YES and STRIP_FROM_PATH=$(ACE_ROOT) to avoid - duplicate filenames on the file list page. If this works out, we - may change some of the others also. - -Sun Dec 28 11:38:43 UTC 2003 Johnny Willemsen - - * ace/Message_Queue.h: - Use doxygen style of comments for deprecated enum members so that - they appear on the doxygen deprecated page. - -Sun Dec 28 10:44:13 UTC 2003 Johnny Willemsen - - * ace/OS_NS_stdio.cpp: - On Tru64 getchar() is a macro which expands to fgetc. fgetc exists - in the global and in the ACE_OS namespace, so on Tru64 use - ::getchar() which then expands to ::fgetc(). This looks to work on - the Tru64 box I am testing on. - -Sat Dec 27 12:55:45 UTC 2003 Johnny Willemsen - - * ace/SOCK_Dgram_Mcast.h: - Added @deprecated to the deprecated methods in this file so that - they appear on the doxygen deprecated page. - -Sat Dec 27 10:32:11 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - Re-added setting of GCCLIB_DIR for SIMNT which I removed by accident. - Thanks to Thomas Lockhart for - pointing this out. - -Sat Dec 27 10:22:13 UTC 2003 Johnny Willemsen - - * bin/fuzz.pl: - Also check for Id tag in .GNU files. - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - * include/makeinclude/platform_linux_borland.GNU: - * include/makeinclude/platform_integrity_ghs.GNU: - Added missing Id tag - -Fri Dec 26 17:29:29 2003 Steve Huston - - * m4/ace.m4: Uncommented the AM_CONDITIONAL for BUILD_SSL so - explicit sets of --with-ssl work. - -Fri Dec 26 16:53:18 2003 Steve Huston - - * m4/ace.m4: Don't restrict --enable-rtti to Solaris. AIX Visual Age - C++ needs to be able to turn this on also. Also changed the default - to yes, believing I saw a need for RTTI in TAO recently. - - * m4/compiler.m4: For AIX Visual Age C++, if rtti is desired, add - -qrtti to CXXFLAGS. - - * ace/OS_NS_Thread.inl: Added #include "ace/OS_NS_sys_mman.h" to see - ACE_OS::shm_unlink() and ACE_OS::shm_open(), needed when - ACE_LACKS_NAMED_POSIX_SEM is defined. - - * ace/Timer_Hash_T.cpp: - * ace/TImer_Wheel_T.cpp: Added #include "ace/OS_NS_sys_time.h" so - Visual Age C++ can see ACE_OS::gettimeofday(), and "ace/Guard_T.h" - so Visual Age C++ can see ACE_Guard classes. - - * tests/test_config.h: - * tests/Signal_Test.cpp: - * tests/Thread_Pool_Test.cpp: Added #include "ace/OS_NS_stdio.h" so - Visual Age C++ sees ACE_OS::sprintf(). - - * tests/Message_Block_Test.cpp: Added #include "ace/OS_NS_string.h" - so Visual Age C++ sees ACE_OS::strcmp() and "ace/OS_NS_stdio.h" - so Visual Age C++ sees ACE_OS::sprintf(). - - * tests/Message_Queue_Test.cpp: - * tests/Upgradable_RW_Test.cpp: Added #include "ace/OS_NS_sys_time.h" - so Visual Age C++ can see ACE_OS::gettimeofday() and - "ace/OS_NS_stdio.h" so it can see ACE_OS::sprintf(). - - * tests/Message_Queue_Test_Ex.cpp: - * tests/Recursive_Condition_Bug_Test.cpp: - * tests/Thread_Manager_Test.cpp: Added #include - "ace/OS_NS_sys_time.h" so Visual Age C++ can see - ACE_OS::gettimeofday(). - - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Reactor_Dispatch_Order_Test.cpp: - * tests/SString_Test.cpp: - * tests/Svc_Handler_Test.cpp: Added #include "ace/OS_NS_string.h" so - Visual Age C++ sees ACE_OS::strlen(). - - * tests/Multicast_Test.cpp: Added #include "ace/Min_Max.h" so - Visual Age C++ can see ACE_MIN and ACE_MAX. Added #include - "ace/OS_NS_sys_time.h" so Visual Age C++ can see - ACE_OS::gettimeofday() and "ace/OS_NS_stdio.h" so it can see - ACE_OS::sprintf(). - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/Reactor_Registration_Test.cpp: - * tests/Reference_Counted_Event_Handler_Test.cpp: Added #include - "ace/Reactor.h" so Visual Age C++ sees ACE_Reactor. - - * tests/MT_Reference_Counted_Notify_Test.cpp: - * tests/Timer_Cancellation_Test.cpp: Added #include - "ace/Reactor.h" so Visual Age C++ sees ACE_Reactor and - "ace/OS_NS_unistd.h" so Visual Age C++ sees ACE_OS::sleep(). - - * tests/Naming_Test.cpp: - * tests/Priority_Task_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: Added #include - "ace/OS_NS_string.h" so Visual Age C++ can see ACE_OS::strcmp(). - - * tests/Process_Manager_Test.cpp: - * tests/Reactor_Notify_Test.cpp: Added #include "ace/OS_NS_unistd.h" - so Visual Age C++ can see ACE_OS::sleep(). - - * tests/Process_Strategy_Test.cpp: Added #include "ace/OS_NS_string.h" - so Visual Age C++ can see ACE_OS::strcpy(), strcat(), strlen(). - - * tests/Reader_Writer_Test.cpp: Added #include "ace/Guard_T.h" and - "ace/RW_Thread_Mutex.h" so Visual Age C++ can see ACE_Guard and - ACE_RW_Thread_Mutex classes. - - * tests/Recursive_Condition_Test.cpp: Added #include - "ace/OS_NS_sys_time.h" so Visual Age C++ sees ACE_OS::gettimeofday() - and "ace/OS_NS_unistd.h" so Visual Age C++ sees ACE_OS::sleep(). - - * tests/Service_Config_Test.cpp: Added #include "ace/OS_NS_stdio.h" so - Visual Age C++ can see ACE_OS::fprintf(). - - * tests/Time_Service_Test.cpp: Added #include "ace/OS_NS_string.h" - so Visual Age C++ sees ACE_OS::strcat(). - - * tests/TP_Reactor_Test.cpp: Added #include "ace/OS_NS_stdio.h" so - Visual Age C++ sees ACE_OS::sprintf() and "ace/OS_NS_string.h" so - Visual Age C++ sees ACE_OS::strlen(). - - * tests/TSS_Test.cpp: - * tests/TSS_Test_Errno.h: - * tests/Thread_Mutex_Test.cpp: Added #include "ace/Guard_T.h" so Visual - Age C++ can see ACE_Guard stuff and "ace/Thread_Mutex.h" to see the - ACE_Thread_Mutex class. - -Fri Dec 26 12:30:55 2003 Balachandran Natarajan - - * bin/MakeProjectCreator/config/taoexe.mpb: - * bin/MakeProjectCreator/config/taolib_with_idl.mpb: - - We are forcing -Sc to the users. Though this is generally good, - but it breaks some of the tests in TAO that uses the TIE - classes. Just removing -Sc so that we have the minimal number - of options out here. - -Fri Dec 26 18:22:07 UTC 2003 Don Hinton - - * include/makeinclude/all_in_one.GNU: - Test CLEANUP_BIN, etc., instead of BIN to determine whether or - not to include rules.bin.GNU, etc. These file define the - CLEANUP_INSTALL variables needed to properly do a realclean. - This is needed because Makefiles might use BIN2 or BIN_UNCHECKED - instead of BIN, but still need to be cleaned up. - - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.local.GNU: - Added '*' to end of lib name so that *all* versions of a lib are - cleaned up, not just the current one. - - * include/makeinclude/rules.local.GNU: - No need to test to see if a variable is defined in order to - define it, just use ?= which only sets a variable if not yet - defined. - -Thu Dec 25 18:03:28 2003 Balachandran Natarajan - - * bin/MakeProjectCreator/config/ftorbutils.mpb: - - Removed the dependency on CosNaming. - -Thu Dec 25 00:00:00 2003 Douglas C. Schmidt - - * Merry Christmas!!! - -Wed Dec 24 17:10:45 UTC 2003 Don Hinton - - * bin/fuzz.pl: - Modified the regular expression for matching Makefiles to better - filter out unwanted files. - - * examples/C++NPv1/Makefile.Iterative_Logging_Server: - * examples/C++NPv1/Makefile.Logging_Client: - * examples/C++NPv1/Makefile.Process_Per_Connection_Logging_Server: - * examples/C++NPv1/Makefile.RT_Thread_Per_Connection_Logging_Server: - * examples/C++NPv1/Makefile.Reactive_Logging_Server: - * examples/C++NPv1/Makefile.Reactive_Logging_Server_Ex: - * examples/C++NPv1/Makefile.Thread_Per_Connection_Logging_Server: - * examples/C++NPv2/Makefile.AC_CLD: - * examples/C++NPv2/Makefile.AIO_CLD: - * examples/C++NPv2/Makefile.CLD: - * examples/C++NPv2/Makefile.Configurable_Logging_Server: - * examples/C++NPv2/Makefile.Reactor_Logging_Server: - * examples/C++NPv2/Makefile.SLD: - * examples/C++NPv2/Makefile.SLDex: - * examples/C++NPv2/Makefile.SR_Configurable_Logging_Server: - * examples/C++NPv2/Makefile.Select_Reactor_Logging_Server: - * examples/C++NPv2/Makefile.TPCLS: - * examples/C++NPv2/Makefile.TPLS: - * examples/C++NPv2/Makefile.TP_Reactor_Logging_Server: - * examples/C++NPv2/Makefile.display_logfile: - * examples/DLL/Makefile.Newsweek: - * examples/DLL/Makefile.Today: - * examples/Service_Configurator/Misc/Makefile.Timer: - * examples/Service_Configurator/Misc/Makefile.main: - * examples/Timer_Queue/Makefile.TQTD: - * examples/Timer_Queue/Makefile.main: - * include/makeinclude/Makefile.rtems: - * performance-tests/Synch-Benchmarks/Makefile.driver: - * performance-tests/Synch-Benchmarks/Makefile.synch_tests: - Fixed Fuzz errors. - -Wed Dec 24 12:51:23 UTC 2003 Johnny Willemsen - - * apps/Gateway/Gateway/Config_Files.cpp: - * apps/Gateway/Gateway/File_Parser.cpp: - * apps/Gateway/Gateway/File_Parser.h: - * apps/Gateway/Gateway/Gateway.cpp: - Added RT_ to the members of the Return_Type enum. Tru64 has a - define SUCCESS and this clashed with the enum member SUCCESS. - -Wed Dec 24 12:35:41 UTC 2003 Johnny Willemsen - - * ace/config-osf1-4.0.h: - Removed ACE_HAS_TLI and ACE_HAS_TLI_PROTOTYPES. Added ACE_HAS_XTI. - This fixes compile errors on Tru64. - - * include/makeinclude/platform_osf1_4.x_cxx.GNU: - * include/makeinclude/platform_osf1_4.x_g++.GNU: - * include/makeinclude/platform_osf1_4.x_kcc.GNU: - * include/makeinclude/platform_osf1_4.x_rcc.GNU: - Link with xti library instead of tli - -Wed Dec 24 09:54:43 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - Add discussion of conventions to be used to identify shipped - versions of VxWorks. Allow implicit templates using the - templates variable. Default continues to be "explicit". - Clean up some references to obsolete and unsupported versions - of VxWorks compilers. Use explicit paths to compilers and - utilities, and remove manipulation of PATH. - Set the default version of VxWorks to 5.5.1, as shipped with - Tornado 2.2 on PPC604. - Removed -traditional from compiler flags, it causes problems - with VxWorks 5.5. - - * ace/config-g++-common.h: - Move VxWorks-specific features to config-vxworks5.x.h. - - * ace/config-vxworks5.x.h: - Isolate Tornado-2.1 features to a check for ACE_VXWORKS == 0x542. - This is consistent with the conventions suggested by J. Willemsen - though VxWorks 5.4.2 also shipped with Tornado 2.0.2. See further - discussion in platform_vxworks5.x_g++.GNU. - Disable ACE_LACKS_AUTO_PTR except for ACE_VXWORKS == 0x542 since - it is available on Tornado 2.2.x for PPC604 at least. Comments - indicate that this was a problem on a Hitachi processor for - Tornado 2.1. - - Thanks to Thomas Lockhart for - providing these patches. - -Tue Dec 23 17:55:19 2003 Steve Huston - - * tests/Makefile.am: Added ACE_Test_SOURCES so automake doesn't - set this up needing ACE_Test.c. - -Tue Dec 23 16:52:56 2003 Chris Cleeland - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Reordered printing of make rules so that the standard targets - (all, install, debug, etc.) are emitted into the makefile BEFORE - the targets for each project. This insures that 'all' remains - the first target in the makefile, and is thus the default target - when make is invoked without a target. - - This should resolve the problem where builds failed due to what - looked like the IDL compiler not being completely built. - -Tue Dec 23 21:18:22 UTC 2003 Don Hinton - - * netsvcs/lib/Makefile.bor: - * netsvcs/servers/Makefile.bor: - Added $Id to fix fuzz errors. - -Tue Dec 23 20:35:40 UTC 2003 Don Hinton - - * ace/config-freebsd.h: - Added ACE_HAS_PTHREAD_SETSTACK if __FreeBSD_version >= 501000. - - * ace/os_include/os_pthread.h: - Added guard around define of ACE_HAS_PTHREAD_SETSTACK. Thanks - to Craig Rodrigues for these patches. - -Tue Dec 23 20:19:51 UTC 2003 Don Hinton - - * *.{mpc,mwc}: - Added $Id to MPC files to fix fuzz errors. - -Tue Dec 23 12:31:16 UTC 2003 Johnny Willemsen - - * Kokyu/Dispatcher_Impl.h: - Added export macro, so that the destructor is exported. This fixes - the link errors in the CBuilderX MPC build. - -Mon Dec 22 17:46:12 2003 Steve Huston - - * configure.ac: Don't bother getting a ACE_HAS_TLI_PROTOTYPES - setting if ACE_HAS_XTI. It's not needed. Fix the check for - ACE_HAS_CONFLICTING_XTI_MACROS to only include xti.h, not tliuser.h, - since that's where the errors are. The XTI and TLI parts are now - separate; if the platform has XTI, none of the TLI checks are done. - Made the check for sigaction()'s second argument set (or not) - new config setting, ACE_HAS_SIGACTION_CONSTP2. See below. - - * m4/config_h.m4: Removed entries for ACE_LACKS_POSIX_PROTOTYPES and - ACE_LACKS_SOME_POSIX_PROTOTYPES. Renamed ACE_HAS_BROKEN_XTI_MACROS - to ACE_HAS_CONFLICTING_XTI_MACROS. Added entries for - ACE_HAS_SIGACTION_CONSTP2. See rationale in ace/README entry, below. - - * ace/README: Clarified the meanings of ACE_HAS_TLI, ACE_HAS_XTI, - and ACE_HAS_SVR4_TLI. Changed entry for ACE_HAS_BROKEN_XTI_MACROS to - ACE_HAS_CONFLICTING_XTI_MACROS and explained it more (both names were - used previously). Removed entries for ACE_LACKS_POSIX_PROTOTYPES - and ACE_LACKS_SOME_POSIX_PROTOTYPES. These ended up a catch-all for - platforms that had odd, or non-conforming (these days anyway) APIs - for some SysV, signal, or stdio functions. Any reference to - ACE_LACKS_POSIX_PROTOYPES is now gone. If it causes any problems - (very doubtful since the only configs that used it were - SunOS 4) it can be added back in a more explanatory fashion. - Uses of ACE_LACKS_SOME_POSIX_PROTOTYPES are replaced by - more specific settings that autoconf is detecting now anyway. - These are: - ACE_HAS_SIGACTION_CONSTP2: sigaction() 2nd parameter is - const sigaction*, as opposed to non-const. - - * ace/config-hpux-11.00.h: Removed #define ACE_HAS_BROKEN_XTI_MACROS. - This is not sued any longer (see README above). - - * ace/config-linux-common.h: - * ace/config-integritySCA.h: - * ace/config-lynxos.h: - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: Removed entry for - ACE_LACKS_SOME_POSIX_PROTOTYPES. Applies only for glibc earlier than - 2.2. If this breaks something, send details to me. - - * ace/config-rtems.h: Removed ACE_LACKS_POSIX_PROTOTYPES and - ACE_LACKS_SOME_POSIX_PROTOTYPES; added ACE_HAS_SIGACTION_CONSTP2. - - * ace/config-sco-5.0.0.h: - * ace/config-sco-5.0.0-mit-pthread.h: - * ace/config-tandem.h: Removed entry for ACE_LACKS_POSIX_PROTOTYPES - (was commented out anyway). - - * ace/config-sunos4-sun3.x.h: - * ace/config-sunos4-sun4.1.4.h: - * ace/config-sunos4-sun4.x.h: Removed entry for - ACE_LACKS_POSIX_PROTOTYPES. If this breaks a build, please email - shuston@riverace.com with compile errors and PRF. - - * ace/OS_NS_dlfcn.inl: Removed #include "ace/OS.h"; replaced with - #include "ace/OS_NS_fcntl.h" and "ace/OS_NS_unistd.h". - (dlsym): Removed the #if defined (ACE_LACKS_POSIX_PROTOTYPES) - this - is not needed. - - * ace/OS_NS_signal.inl (sigaction): const_cast the new sigaction arg - if ACE_HAS_SIGACTION_CONSTP2 is not defined. This takes the place - of either ACE_LACKS_SOME_POSIX_PROTOTYPES or - ACE_LACKS_POSIX_PROTOTYPES. - - * ace/OS_TLI.h: Rearranged the places and situations that TLI or XTI - headers are included. These were confused over the years as platforms - were ported to, and the TLI API evolved to XTI. The way this now - works mirrors the way modern platforms work. XTI is the newer and - current API. If XTI is available, ACE_HAS_XTI should be set. If - XTI is not available, but the older TLI is, ACE_HAS_TLI should be - set. ACE_HAS_XTI takes precedence if they're both set. If only TLI - is available, the correct header (tiuser.h) is included if - ACE_HAS_TIUSER_H is set. tiuser.h is a compatibility carryover for - platforms with XTI. If the platform has TLI, not XTI, and no - tiuser.h, this file doesn't include any system headers - this may - be wrong, but I don't have any platforms available to try. - Also, ACE_HAS_SVR4_TLI applies to platforms with TLI (not XTI) and - additional, pre-XTI functionality such as t_getname(). This is - true for older SunOS, but I don't think any modern platforms - should set this. XTI includes all the things that distinguish - ACE_HAS_SVR4_TLI from TLI, so if ACE_HAS_XTI is set, ACE_HAS_SVR4_TLI - is ignored. To summarize, the order of precedence is, XTI, then - TLI, optionally modified by ACE_HAS_SVR4_TLI. - - * ace/OS_TLI.inl (t_getname): Add code for calling t_getprotaddr() - if ACE_HAS_XTI. It would be good to add ACE_OS::t_getprotaddr() - since most platforms support XTI these days. But this will do - for now. - - * ace/TLI.cpp (get_local_addr): Forward this through to - ACE_OS::t_getname(), which can now handle both ACE_HAS_XTI and - ACE_HAS_SVR4_TLI. - (set_option, get_option): Added the XTI code for these. - - * ace/TLI_Connector.cpp (complete): - * ace/TLI_Stream.cpp (get_remote_addr): Regardless of which flavor of - XTI/TLI is set, call ACE_OS::t_getname() to get the address info. - It now can do both XTI and TLI. - - * ace/os_include/os_errno.h: Removed the #defines for LOCALNAME and - REMOTENAME. These are now in ace/OS_TLI.h where they come from. - - * ace/config-lite.h: Add a check after including config.h for - ACE_HAS_XTI. XTI is what TLI evolved to, and wherever ACE - wants to provide a TLI function or not, it checks for ACE_HAS_TLI. - Since ACE_HAS_XTI can be set without ACE_HAS_TLI, we set ACE_HAS_TLI - to get the basic functionality-providing checks taken care of. - -Mon Dec 22 17:01:39 2003 Steve Huston - - * tests/Makefile.am: Removed comment on -module option for - libTestOutput. Added ACE_Test and TSS_Static_Test. - -Mon Dec 22 14:08:41 2003 Chad Elliott - - * ACE-INSTALL.html: - - Updated building sections with MPC related information. - -Mon Dec 22 19:25:59 UTC 2003 Don Hinton - - * tests/Bound_Ptr_Test.h: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/NonBlocking_Conn_Test.h: - * tests/Process_Strategy_Test.cpp: - * tests/Svc_Handler_Test.cpp: - Fixed fuzz errors by removing unneeded #include of Synch.h. - -Mon Dec 22 10:31:41 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - - Added information about disallowing duplicate projects within a - single workspace regardless of the project type. It is no longer - specific to the VC6 type. - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Changed the workspace output to allow a user to make a specific - target within the workspace. If the user specified target - requires other projects, then those projects are built also. For - example, a user could execute "make CosNaming" using the Makefile - generated from the TAOACE.mwc file and the CosNaming library - would be built including everything else that was required to - build that library. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Changed the output section of the code to only compare the - existing output file to the newly created output file only if - required by the individual project or workspace type. Currently - only VC6, EM3 (through inheritance), VC7 and VC71 (through - inheritance) use this. - -Sun Dec 21 08:40:46 2003 Balachandran Natarajan - - * performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp: - - Fixed an annoying warning about redefinition. - -Sun Dec 21 13:55:12 UTC 2003 Johnny Willemsen - - * tests/Test_Output.dsp: - Cleared the output directory for the static configurations, all - test project expect the lib to be in the same directory. - -Sun Dec 21 10:16:43 UTC 2003 Johnny Willemsen - - * *.bor: - Added missing Id tag to all Borland makefiles which didn't have it - yet. - -Sun Dec 21 10:02:11 UTC 2003 Johnny Willemsen - - * ace/Timeprobe.h: - Added missing includes when ACE_COMPILE_TIMEPROBES is set to 1. - Thanks to Konstantinos Margaritis for reporting - this. - -Sun Dec 21 09:45:13 UTC 2003 Johnny Willemsen - - * Kokyu/Makefile.bor: - * Kokyu/Makefile.Kokyu.bor: - Added Id tag to fix fuzz errors - -Sat Dec 20 17:51:49 UTC 2003 Johnny Willemsen - - * ACEXML/parser/parser/ParserContext.inl: - Removed not needed ; to fix a Tru64 warning - -Sat Dec 20 14:21:13 UTC 2003 Johnny Willemsen - - * ACEXML/*.bor: - Added missing Id tag to fix fuzz errors - -Sat Dec 20 13:22:12 UTC 2003 Johnny Willemsen - - * bin/fuzz.pl: - Changed filters to the types of files a little so that a Makefile.bor is - handled as a Borland makefile. - -Fri Dec 19 22:56:26 2003 Balachandran Natarajan - - * ace/RMCast/RMCast.h: - * ace/RMCast/RMCast_IO_UDP.cpp: - * ace/RMCast/RMCast_UDP_Proxy.cpp: - - Enums are evil, more so with broken compilers that cannot scope - enums within a class. LynxOS defines a bunch of #defines with - MT_* which starts colliding with the MT_* declaration in the - above files. Renamed the enums to be RMCAST_MT_*. Thanks to - Thomas Lockhart for providing - patches to fix this. - -Fri Dec 19 22:34:42 2003 Balachandran Natarajan - - * ace/INET_Addr.i: - - Fix for [BUGID 1688]. Please see - - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1688 - - for more details. Thanks to Gary Maxey for - the patch. - -Fri Dec 19 11:57:20 2003 Steve Huston - - * tests/Sigset_Ops_Test.cpp: Add an optional can_miss parameter to - the siglistset() function; defaults to 0 (current behavior). Pass - it as 1 when the full (sigfillset) set is being tested because - there's no guarantee that all signals from 1-ACE_NSIG are legit - and set in the sigset. This is true on Red Hat Linux w/ NPTL - (Redhat 9 and Enterprise Linux 3, for example). Thanks to - Roger Beathard (rbeathar@cisco.com) for reporting this issue. - - * tests/Makefile.tests: Added TSS_Static_Test. - -Fri Dec 19 08:43:44 2003 Douglas C. Schmidt - - * ace/Malloc_T.cpp: Reformatted some of the code to conform to - ACE guidelines. In particular, stuff like this: - - if ((this->lock_ = ACE_Malloc_Lock_Adapter_T ()(pool_name)) == 0) - return; - - should be written like this: - - this->lock_ = ACE_Malloc_Lock_Adapter_T ()(pool_name); - if (this->lock_ == 0) - return; - - since the latter is less error prone and more readable! - -Fri Dec 19 13:31:59 UTC 2003 Johnny Willemsen - - * ACEXML/parser/parser/Parser.i (isChar): - Made the argument non const, just as the method declaration - in the header file. This fixes a compile error on Tru64. - -Fri Dec 19 13:29:13 UTC 2003 Johnny Willemsen - - * examples/C++NPv2/C++NPv2.mpc: - Use the new wfmo base project. - -Fri Dec 19 13:27:54 UTC 2003 Johnny Willemsen - - * performance-tests/SCTP/Options_Manager.cpp: - Removed not needed ; after extern C to fix a Tru64 warning - -Fri Dec 19 07:19:37 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/modules/CbxProjectCreator.pm: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/EM3ProjectCreator.pm: - * bin/MakeProjectCreator/modules/GHSProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/modules/MakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/NMakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/VA4ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added a workspace/project name modifier (-name_modifier) which can - be used to modify workspace and project names using a pattern - replacement. The parameter passed to -name_modifier will have any - instances of the asterisk character replaced with the actual - workspace or project name. - - Also, deprecated the -static_only option and modified -static to - generate only static projects (since dynamic and static couldn't - co-exist with the vc6 and vc7 types). - - And, finally, replaced $generator with $creator which is more - consistent with object names. - -Fri Dec 19 11:45:13 UTC 2003 Johnny Willemsen - - * ace/config-osf1-3.2.h: - * ace/config-osf1-4.0.h: - Replaced ACE_HAS_64BIT_LONGS with ACE_SIZEOF_LONG 8 to fix compile - errors on Tru64. - - * bin/MakeProjectCreator/config/wfmo.mpb: - Added new config file. Projects that need wfmo, should be based on - this. - - * include/makeinclude/wrapper_macros.GNU: - When wfmo is not set, we set it to 0. So by default all platforms that - use the GNU makefiles lack wfmo support. - - * include/makeinclude/platform_mingw32.GNU: - MinGW has wfmo, so set wfmo to 1. - - * examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc: - Based now on the wfmo instead of a GNU specific hack. This simplifies - this MPC file but also with MinGW we will now build these examples. - -Fri Dec 19 10:46:13 UTC 2003 Johnny Willemsen - - * ace/Codeset_Registry.cpp: - Removed not needed ; after ACE_RCSID to fix Tru64 warning. - - * ace/OS.h: - * ace/OS_TLI.h: - * ace/UUID.{h,cpp,inl}: - * ace/OS_NS_arpa_inet.h: - Removed not needed ; after namespace close } to fix Tru64 warning. - - * ace/config-cxx-common.h: - Added ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION. I hope all - version of the Compaq CC compiler will support this, V6.5 needs this - - * ace/config-tru64.h: - Tru64 5.1 doesn't have stdint.h so added ACE_LACKS_STDINT_H. I don't - know of previous versions, so made this dependent on the version of - Tru64. - - * ace/config-osf1-4.0.h: - Moved check for ACE_MT_SAFE for ACE_LACKS_CLEARERR a little bit down, - so that ACE_MT_SAFE is always defined to fix compile error on Tru64. - - * tests/Reference_Counted_Event_Handler_Test.cpp: - Make sure we don't have local variables with the same name but - different type to fix Tru64 warning. - -Fri Dec 19 03:29:33 UTC 2003 Don Hinton - - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: - * tests/SV_Shared_Memory_Test.cpp: - More explicit template instantiations of - ACE_Malloc_Lock_Adapter_T. - -Fri Dec 19 01:27:00 UTC 2003 Irfan Pyarali - - * examples/Reactor/WFMO_Reactor/Abandoned.cpp (handle_timeout): - - Must remove handler from the Reactor before the handler dies. - Otherwise, a call back from the Reactor will result in a seg - fault. - -Fri Dec 19 01:26:00 UTC 2003 Don Hinton - - * ace/Process_Mutex.cpp: - * ace/RW_Process_Mutex.cpp: - * ace/Thread_Mutex.cpp: - Added #include ace/Malloc_T.h. - -Fri Dec 19 00:46:23 UTC 2003 Don Hinton - - * ace/Null_Mutex.h: - Added template specialization of ACE_Malloc_Lock_Adapter_T. - - * ace/Process_Mutex.cpp: - * ace/RW_Process_Mutex.cpp: - * ace/Thread_Mutex.cpp: - Added explicit template instantiations for - ACE_Malloc_Lock_Adapter. - -Thu Dec 18 22:43:09 UTC 2003 Don Hinton - - * ace/Malloc_T.{h,cpp}: - Added a new functor template class, ACE_Malloc_Lock_Adapter_T, used - by ACE_Malloc_T as a factory for the ACE_LOCK template parameter, - and allows the use of locking strategy classes that don't have a - satisfactory ctor taking a single required ACE_TCHAR* parameter, - which is the default. Thanks to John Glynn for - motivating this. - - * ace/Process_Semaphore.{h,cpp}: - * ace/Thread_Semaphore.{h,cpp}: - Added template specializations of ACE_Malloc_Lock_Adapter_T for - ACE_Process_Semaphore and ACE_Thread_Semaphore since they don't - have a satisfactory ctor taking an ACT_TCHAR*. Thanks to John - Glynn for motivating this. - -Thu Dec 18 11:55:29 2003 Chad Elliott - - * ace/Null_Barrier.h: - * ace/Null_Condition.h: - * ace/Null_Mutex.h: - * ace/Null_Semaphore.h: - - All methods in both of these files are inline and therefor do not - need ACE_Export. - - * ace/ace.mpc: - - Updated the Inline_Files and Header_Files sections. - - * examples/TMCast/Member/member.cpp: - - Added #include of OS_NS_string.h to get ACE_OS::strlen and added a - return value for main. - -Thu Dec 18 09:53:31 2003 Balachandran - - * ACE version 5.3.6 released. - -Thu Dec 18 08:45:06 2003 Balachandran Natarajan - - * bin/make_release: - - Generate vc71 for the ace alone. We used to generate vc7 project - files. But now we generate vc71. Theoretically we shouldn't need - to generate this. But this is not the time to argue with Steve H - ;)! Will do after the beta goes out! - -Wed Dec 17 12:54:18 2003 Balachandran Natarajan - - * ace/TMCast/Group.cpp: - * ace/TMCast/LinkListener.hpp: - - More fixes for VC 71. Thanks to Chad Elliott for helping - me checking the results. - -Wed Dec 17 09:52:18 2003 Balachandran Natarajan - - * ace/TMCast/LinkListener.hpp: - - Fixed errors in VC71 builds. - -Wed Dec 17 15:21:36 UTC 2003 Don Hinton - - * performance_tests/Misc/Makefile: - Remove static_libs_only=0 and add static_libs=1 and - shared_libs=0 to insure that only static libs are built. We - need to set these values individually instead of setting - static_libs_only, since users may override it in - platform_macros.GNU. Thanks to John Zorko for - tracking this down and supplying the patch. This fixed the - MacOSX compile errors on the scoreboard. - -Wed Dec 17 11:25:43 UTC 2003 Johnny Willemsen - - * ace/TMCast/Group.cpp: - Fixed compile errors in the SunOS Forte8 build caused by the - lack of the scope of the exceptions. - -Wed Dec 17 11:16:12 UTC 2003 Johnny Willemsen - - * ace/TMCast/TMCast.mpc: - TMCast uses native exceptions, so added requires += exceptions - to this mpc file. This fixes compile errors in no exception - builds. - - * bin/MakeProjectCreator/config/tmcast.mpb: - Because TMCast uses native exceptions, this is also required for - everything that uses TMCast. - -Tue Dec 16 11:48:11 2003 Chad Elliott - - * ace/config-aix-4.x.h: - * ace/config-aix5.1.h: - - Updated the AIX config files to reflect the existence of - netinet/tcp.h on AIX 5.1. - -Tue Dec 16 09:31:18 2003 Douglas C. Schmidt - - * ace/Thread_Semaphore.{h,cpp}: - * ace/Process_Semaphore.{h,cpp}: Reverted the change - Sun Dec 14 15:26:46 2003 Douglas C. Schmidt - since this has too many side-effects - that'll break user code. The "Right Thing"[TM] here is simply - to update the ACE_Malloc<> documentation to explain not to use - the ACE_Process_Semaphore or ACE_Thread_Semaphore, but instead - to use the ACE_Process_Mutex or ACE_Thread_Mutex. Thanks to - Don Hinton and Bala for motivating this change. - -Tue Dec 16 08:29:05 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Fixed the install targets when installing to the current - directory. - -Tue Dec 16 07:13:53 2003 Chad Elliott - - * ace/TMCast/TMCast.mpc: - * ace/ace.mwc: - * bin/MakeProjectCreator/config/tmcast.mpb: - - Added a project and base project for TMCast. - - * examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp: - * examples/TMCast/Member/member.cpp: - - Added #include's to get things to build on Linux. - - * examples/TMCast/Member/Member.mpc: - - Added an mpc to override the default project to add the tmcast - base project. - -Mon Dec 15 20:34:31 2003 Balachandran Natarajan - - * tests/MM_Shared_Memory_Test.cpp: - * tests/Reactor_Notify_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/TP_Reactor_Test.cpp: - - More fixes like "Mon Dec 15 11:09:45 2003 Douglas C. Schmidt - ". Thanks to Don for motivating this. - -Mon Dec 15 18:51:15 UTC 2003 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Added setting of CLEANUP_INSTALL, this has the result that an exe - that is installed into a different directory is also removed when - doing a clean. Thanks to Don and Chad for validating this. - -Mon Dec 15 11:09:45 2003 Douglas C. Schmidt - - * tests/Proactor_Test.cpp (ACE_MT_SYNCH>): - * ace/POSIX_CB_Proactor.cpp (ACE_POSIX_CB_Proactor): Added a - cast to (unsigned int) so things will work properly for the - ACE_Thread_Semaphore. Thanks to Bala and Don Hinton for - reporting these problems. - -Mon Dec 15 10:11:31 2003 Chad Elliott - - * tests/NonBlocking_Conn_Test.h: - * tests/NonBlocking_Conn_Test.cpp: - - Moved the template class Svc_Handler into a header file so that - Visual Age C++ could implicitly instantiate the template. - - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Reactor_Registration_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Recursive_Mutex_Test.cpp: - * tests/Reference_Counted_Event_Handler_Test.cpp: - * tests/Svc_Handler_Test.cpp: - * tests/TP_Reactor_Test.h: - - Added various #include's to get the tests to build on AIX with - Visual Age C++ 5.0. - -Mon Dec 15 10:06:17 2003 Steve Huston - - * ace/OS_NS_stdio.cpp (gets): Reverted this change: - Thu Dec 11 18:13:29 2003 Steve Huston - It broke the Borland build and wasn't a very good fix for the - AIX situation either. Since Riverace is dropping AIX 4.3 support - at ACE 5.4, I'm not going to push this issue. It appears to be a - compiler issue with Visual Age C++ version 5. - -Mon Dec 15 07:29:27 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Removed a redundant rule to create the $(TEMPINCDIR) directory. - - * include/makeinclude/rules.local.GNU: - - Added -p to the mkdir command in the rules to make the - $(CLEANUP_DIRS). - -Mon Dec 15 11:35:12 UTC 2003 Johnny Willemsen - - * ace/Naming_Context.cpp: - When ACE_HAS_TRACE is defined include ace/OS_NS_strings.h to get - ACE_OS::strcasecmp. This fixes a compile error when ACE_NTRACE has - been defined to 0 - -Sun Dec 14 15:26:46 2003 Douglas C. Schmidt - - * ace/Thread_Semaphore.{h,cpp}: Added support for an ACE_Thread_Semaphore - that takes a first param that's an ACE_TCHAR * so that things - will work properly if ACE_Thread_Semaphore is used with - ACE_Malloc<>. Thanks to John Glynn for - motivating this. - - * ace/Process_Semaphore.{h,cpp}: Added support for an ACE_Process_Semaphore - that takes a first param that's an ACE_TCHAR * so that things - will work properly if ACE_Process_Semaphore is used with - ACE_Malloc<>. Thanks to John Glynn for - motivating this. - -Sun Dec 13 20:00:00 2003 Douglas C. Schmidt - - * Saddam Hussein captured in a "spider hole" in Iraq. Sic Semper - Tyrannis. - -Sat Dec 13 23:29:05 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - - Many of the tests were being run in the single threaded - configuration, though they shouldn't have been. - -Fri Dec 12 19:31:00 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: - - Some tests were run twice. They have been removed. - -Fri Dec 12 08:53:50 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyWriter.pm: - * bin/DependencyGenerator/GNUObjectGenerator.pm: - * bin/DependencyGenerator/ObjectGenerator.pm: - * bin/DependencyGenerator/Preprocessor.pm: - * bin/depgen.pl: - - More optimizations to decrease dependency generation times. - - * bin/DependencyGenerator/DependencyGenerator.pm: - - Fixed a bug where when replacing paths (using the -A option), it - wouldn't replace as much of the path as it could depending on the - replacement values. Now they are sorted by length so that the - longest values are checked first. - -Fri Dec 12 08:37:45 2003 Chad Elliott - - * bin/create_ace_build.pl: - - When creating a build on Windows and we run into a problem with - linking to a target that has a path that is "too long", we resort - to the short file name and everyone's happy. - -Thu Dec 11 18:25:39 2003 Steve Huston - - * ace/Future.cpp: Added #include "ace/Guard_T.h" and - "ace/Recursive_Thread_Mutex.h" if ACE_HAS_THREADS is defined. - There are ACE_Guards that use it and AIX Visual Age C++ needs - to see these headers to work right. - - * ace/Future_Set.h: Added #include "ace/Null_Mutex.h" since this - file references it in an ACE_Hash_Map_Manager declaration. Even if - it may have been available during compile, Visual Age C++ needs to - see the header during link time as well, and it only remembers to - look at headers that were explicitly included. - -Thu Dec 11 18:13:29 2003 Steve Huston - - * ace/OS_NS_netdb.inl: Changed use of naked ::memset() calls to - ACE_OS::memset(). Fixes compile errors on AIX 4.3. - - * ace/OS_NS_stdio.cpp (gets): Added "ACE_STD_NAMESPACE::" prefix to - getchar() call; fixes compile error on AIX 4.3. - -Wed Dec 10 18:20:12 UTC 2003 Johnny Willemsen - - * ace/Message_Queue.h: - Mark deprecated enums with @deprecated so that they appear on the - doxygen deprecated page - - * ace/Thread.h: - Moved comment above method instead of between augments. - -Wed Dec 10 13:16:03 2003 Ossama Othman - - * ace/UUID.cpp (to_string): - - Fixed incorrect delete() operator call. Use vector delete[]() - instead of scalar delete() since array was allocated with - new[](). - -Wed Dec 10 15:09:13 UTC 2003 Johnny Willemsen - - * examples/TMCast/Member/member.cpp: - Added missing includes - -Wed Dec 10 13:39:53 UTC 2003 Johnny Willemsen - - * ace/Log_Msg.cpp: - In case of ACE_Log_Msg::SYSLOG is set, log messages to the backend - and in case of closing down redirect logging to stderr - -Wed Dec 10 07:18:44 2003 Chad Elliott - - * bin/depgen.pl: - - Fixed a bug introduced by my change on Tue Dec 9 13:00:30 2003. - -Wed Dec 10 13:17:13 UTC 2003 Johnny Willemsen - - * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp: - Added #include of ace/OS_NS_poll.h to get poll() stuff. - -Wed Dec 10 07:09:10 2003 Chad Elliott - - * bin/MakeProjectCreator/config/dseventlogadmin.mpb: - - The dseventlogadmin base project should also inherit from event. - -Wed Dec 10 12:56:47 UTC 2003 Johnny Willemsen - - * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp: - Added #include of OS_NS_sys_select.h to get ACE_OS::select - -Wed Dec 10 12:50:13 UTC 2003 Johnny Willemsen - - * examples/IPC_SAP/SSL_SAP/SSL-client.h: - Fixed casing of include - -Wed Dec 10 10:20:48 UTC 2003 Johnny Willemsen - - * ace/NT_Service.cpp (wait_for_service_state): - Initialize last_state and last_check_point with 0 to fix MinGW - compiler warnings. - -Wed Dec 10 9:31:13 UTC 2003 Johnny Willemsen - - * ace/Task_Ex_T.h: - Removed the ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT directive. - It is meaningless to define it with ACE_MESSAGE_TYPE. Thanks to - Kobi Cohen-Arazi for reporting this. - -Wed Dec 10 9:18:12 UTC 2003 Johnny Willemsen - - * performance-tests/TTCP/ACE-C++/TTCP_ACE_C++.mpc: - Removed this file from the repo. This performance-tests contains - so many non-portable code that it is impossible to build it on - all the platforms we have. - -Wed Dec 10 8:39:12 UTC 2003 Johnny Willemsen - - * tests/Tests.bor: - Added TSS_Static_Test - -Tue Dec 9 13:00:30 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/DependencyWriter.pm: - * bin/DependencyGenerator/DependencyWriterFactory.pm: - * bin/DependencyGenerator/GNUDependencyWriter.pm: - * bin/DependencyGenerator/GNUObjectGenerator.pm: - * bin/DependencyGenerator/NMakeDependencyWriter.pm: - * bin/DependencyGenerator/NMakeObjectGenerator.pm: - * bin/DependencyGenerator/ObjectGenerator.pm: - * bin/DependencyGenerator/ObjectGeneratorFactory.pm: - * bin/DependencyGenerator/Preprocessor.pm: - * bin/depgen.pl: - - Performance optimizations that decrease dependency generation - times by up to 10%. - -Tue Dec 9 17:49:12 UTC 2003 Johnny Willemsen - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - Added #include of ace/OS_NS_strings.h to get ACE_OS::strcasecmp - -Tue Dec 9 16:33:43 UTC 2003 Don Hinton - - * include/makeinclude/platform_aix_ibm.GNU: - Removed ACELIB from LIBS since both LIBS and ACELIB is added to - VLDLIBS in wrapper_macros.GNU. Otherwise -lACE appears twice in - the link command. - -Tue Dec 9 15:51:13 UTC 2003 Johnny Willemsen - - * ace/Log_Msg.cpp: - When ACE_Log_Msg::LOGGER or ACE_Log_Msg::SYSLOG is passed as - flags, make sure the correct bit is set in flags_. This fixes - the problem reported by A. Kleibeuker - that CORBA::ORB_init() - fails after ACE_Log_Msg::SYSLOG is passed to the - ACE_Log_Msg->open() call. - -Tue Dec 9 09:28:49 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - - Removed some unnecessary module usage. - - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/GNUDependencyWriter.pm: - * bin/DependencyGenerator/NMakeDependencyWriter.pm: - - Avoid copying the array of object files for a speed increase. - - * bin/DependencyGenerator/Preprocessor.pm: - - Fixed a bug where #if's inside of c comments would be counted. - Fixed a bug where the Preprocessor would not return an array - reference if the last file to be processed did not exist. - -Tue Dec 9 09:23:06 2003 Chad Elliott - - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.cpp: - - Worked around a bug in the VxWorks OS loader that caused complex - objects to be constructed multiple times. Instead of having a - static ACE_TSS_Keys object within the ACE_TSS_Emulation class, we - have a static pointer that is allocated upon the first call of - ACE_TSS_Emulation::next_key(). - - * ace/OS_NS_dlfcn.inl: - * ace/OS_NS_string.cpp: - * ace/OS_NS_sys_utsname.cpp: - * ace/Pipe.cpp: - * ace/SV_Message_Queue.h: - * ace/SV_Semaphore_Simple.h: - * ace/SV_Shared_Memory.h: - * ace/config-lite.h: - * ace/config-vxworks5.x.h: - - Added #includes necessary for building on VxWorks. - - * ace/os_include/os_signal.h: - - Changed NSIG to ACE_NSIG. - - * ace/os_include/os_unistd.h: - - Added #include for gethostname(). - - * tests/TSS_Static_Test.cpp: - * tests/run_test.lst: - * tests/tests.mpc: - - Added a test to ensure that TSS used during static construction - functions properly. This test only performs a test if TSS - emulation is used. - -Tue Dec 9 15:09:55 UTC 2003 Don Hinton - - Thanks to Bruce Jones for the - following patches for IRIX. - - * ace/config-irix6.5.x-sgic++.h: - Removed ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION and - added ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION. - - * ace/config-irix6.x-common.h: - Added ACE_LACKS_PERFECT_MULTICAST_FILTERING. - - * ace/config-irix6.x-sgic++-nothreads.h: - Added ACE_LACKS_STDINT_H. - - * include/makeinclude/platform_irix6.x_sgic++.GNU: - Set templates = implicit in not yet defined and only add - -no_prelink to CCFLAGS if templates != implicit. - -Mon Dec 8 19:44:04 UTC 2003 Don Hinton - - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.local.GNU: - * include/makeinclude/rules.nested.GNU: - * include/makeinclude/wrapper_macros.GNU: - Make sure that all variables are defined prior to first use to - get rid of warnings. - - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/wrapper_macros.GNU: - Moved the initial assignment of SOVERSION and SONAME from - wrapper_macros.GNU to rules.lib.GNU so that users can set them - in a Makefile or in another file, e.g., rules.tao.GNU. - Since it must be set prior to it's use in rules.lib.GNU--it's - used in a target name that isn't a pattern, so it's evaluated - when the file is read--it can't be set later. If versioned_so=1 - and the user has not set a value, either in the Makefile or by - including a file like rules.tao.GNU that defines it, the default - ACE version number will be used. Note that rules.tao.GNU now - behaves like rules.lib.GNU and only sets SOVERSION and SONAME - if versioned_so=1 and they have not yet been set. Thanks to - Milan Cvetkovic for motivating this - change. - -Mon Dec 8 07:38:52 2003 Douglas C. Schmidt - - * ace/Logging_Strategy.cpp (fini): Check whether there's a reactor - configured before trying to access it! Thanks to Yoav Borer - for reporting this. - -Mon Dec 8 16:14:01 UTC 2003 Johnny Willemsen - - * bin/fuzz.pl: - Added a noncvs file check. I found yesterday some ncb and opt files - in the TAO part of the repo, and they shouldn't be in the repo. This - are msvc6 generated files. So added a noncvs file check which checks - whether these files exists, and if they exist, give an error. If - people know of more extensions that shouldn't get into the repo, - feel free to add them. - -Mon Dec 8 16:06:12 UTC 2003 Johnny Willemsen - - Added the ability to better determine whether apps/drwho must be build. - By setting rwho=0 into the default.features file that MPC uses no - makefiles are generated. For GNU make, just put rwho=0 into your - own platform_macros.GNU file or in the specific platform file. - - * apps/drwho/drwho.mpc: - Added requires rwho and removed the usage of nobuild. - - * apps/drwho/nobuild.mpb: - Removed this file from the repo, it is not needed anymore - - * include/makeinclude/wrapper_macros.GNU: - When rwho is not set, set it to 1. This way, we can set in the specific - .GNU files rwho=0 when that environment doesn't support rwho. - - * include/makeinclude/platform_chorus.GNU: - * include/makeinclude/platform_chorus4.x_g++.GNU: - * include/makeinclude/platform_chorus_ghs.GNU: - * include/makeinclude/platform_cygwin32.GNU: - * include/makeinclude/platform_mingw32.GNU: - * include/makeinclude/platform_vxworks5.x_diab.GNU: - * include/makeinclude/platform_vxworks5.x_g++.GNU: - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - Added rwho=0 because these environments don't have rwho. - -Mon Dec 8 09:14:39 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Remove trailing slashes and duplicate slashes from relative paths. - -Sun Dec 7 20:23:34 2003 Balachandran Natarajan - - * bin/auto_run_tests.pl: - - Fixed a problem with this checkin "Fri Nov 21 07:24:07 UTC 2003 - Don Hinton ". The config_list - declaration should be within the loop, else the list will be - permanent. This lead to our ACE tests being run thrice, TAO ORB - tests twice and other tests once. That change was bogus. All - that was required was to remove ":" in the optlist. Finding - this out only took 3 hours after getting mislead to search - through all the perl scripts for autobuild :(! - -Sat Dec 6 19:36:19 2003 Steve Huston - - * ace/os_include/sys/os_stat.h: Added #include "ace/Time_Value.h" - in the ACE_HAS_WINCE section because the WinCE version of struct - stat uses ACE_Time_Value for time fields. - - * ace/config-WinCE.h: Added ACE_LACKS_FCNTL_H. eVC doesn't supply this, - at least thru version 4.1. - - * ace/iosfwd.h: Disable most of this file if ACE_LACKS_IOSTREAM_TOTALLY - is set. - - * ace/QtReactor.h: - * ace/os_include/os_errno.h: Added /**/ to #include statements to - keep eVC from complaining about files not being there. - -Sat Dec 6 19:27:26 2003 Steve Huston - - * tests/aix_hack_for_main.cpp: New file that is here to be - compiled first, along with Main.cpp, before any real test. - This simply gets Main.o ready for all the other tests. - This gets things back to where each test need only compile - one source file, and the AIX C++ hack to delete the tempinc - directory works again. - - * tests/Makefile.tests: Add aix_hack_for_main to the front of the - BIN set of tests. It must be first in order for this hack to work. - -Sat Dec 6 09:28:17 2003 Balachandran Natarajan - - * bin/tao_other_tests.lst: - - A bunch of tests depend on dynamic libraries being - available. They have been prevented from running in the static - builds. I am sending a separate mail to the authors to fix - this. - -Sat Dec 6 12:55:13 UTC 2003 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/APC.dsp: - * examples/Reactor/WFMO_Reactor/APCTest.dsp: - * examples/Reactor/WFMO_Reactor/WFMO_Reactor.dsw: - The APC.dsp file was a normal test file, but it should be a - binary file, to prevent all kinds of problems by adding and - removing a file with the same name, just removed APC.dsp and - added APCTest.dsp as binary. Also updated the corresponding dsw - file. This should fix an error in the msvc6 debug build when - cygwin cvs is used. - -Fri Dec 5 21:48:43 2003 Balachandran Natarajan - - * ace/CORBA_macros.h: - Fixed a typo in the documentation. Thanks to Thomas Lockhart for - pointing it out. - -Fri Dec 5 10:20:23 UTC 2003 Johnny Willemsen - - * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp: - Removed not used local variable - -Fri Dec 5 07:28:13 UTC 2003 Johnny Willemsen - - * tests/Vector_Test.cpp: - Added explicit template instantiation for the ACE_Vector_Iterator - -Thu Dec 4 17:13:29 2003 Steve Huston - - * configure.ac: Removed extraneous set of [] for AS_IF test - ace_has_tli_funcs = yes. Allows complete testing for all TLI/XTI- - related features. Fixes some HP-UX problems. - Wrapped ACE_HAS_BROKEN_T_ERROR check in - ACE_CONVERT_WARNINGS_TO_ERRORS to work right on HP-UX. - - * m4/compiler.m4: Added a conditional set around CFLAGS on HP-UX, - trying to silence a sh diagnostic at configure time. Didn't work... - Added +p to WERROR for HP aC++. Allows "future error" warnings - to be noted as errors. Now can properly detect non-const 5th - arg to select(). - - * m4/tls.m4: Moved AM_CONDITIONAL(BUILD_SSL) outside of the test - $ac_cv_openssl_libs. This makes sure BUILD_SSL gets set properly - whether or not with-ssl is set. - - * ace/OS_NS_Thread.cpp (rwlock_init): Added - !defined (ACE_HAS_PTHREADS_UNIX98_EXT) to the cases where the .cpp - version of rwlock_init() is defined (as opposed to the version in - OS_NS_Thread.inl). This matches an earlier change to OS_NS_Thread.h: - Thu Nov 20 17:30:18 2003 Steve Huston - -Thu Dec 4 13:56:50 2003 Jeff Parsons - - * ace/Basic_Types.cpp: - - Added #includes needed to compile if ACE_LACKS_LONGLONG_T is - defined. - -Thu Dec 4 13:46:36 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/Preprocessor.pm: - - Added optimizations that cut the dependency generation time by - over 40%. - -Thu Dec 4 18:34:13 UTC 2003 Johnny Willemsen - - * tests/Bug_1576_Regression_Test.cpp: - This tests whether loading a non-existent .so will really fail. - Don't log dll.error() because this is the error that we could - not load the .so and this will then result in an error on the - scoreboard. Just log an error in case we are able to load the - non-existent .so - -Thu Dec 4 16:51:13 UTC 2003 Johnny Willemsen - - * ace/config-vxworks5.x.h: - VxWorks 5.5 (0x550) has clearerr, so changed the defines that - set ACE_LACKS_CLEARERR to == 0x542 instead of >= 0x542. Thanks - to Thomas Lockhart for reporting - this. - -Thu Dec 4 16:31:12 UTC 2003 Johnny Willemsen - - * tests/Vector_Test.cpp: - When using BCB6 or earlier the second template argument of the - ACE_Vector template must be passed explicit. Just expecting - that the default one is used doesn't work with Borland. - -Thu Dec 4 14:30:44 2003 Kobi Cohen-Arazi - - * ace/Task_Ex_T.i (reply, put_next): - These 2 functions related to ACE_Stream Framework, - doesn't work with new ACE_Task_Ex (yet) - -Wed Dec 3 23:37:59 2003 Kobi Cohen-Arazi - - * ace/Task_Ex_T.h: - Add remark about the idea of merging ACE_Task and ACE_Task_Ex. - Add remark about sibling always returning 0 - - * ace/Task_Ex_T.cpp (ACE_Task_Ex::sibling): - ACE_Task_Ex::sibling cannot call mod_->sibling(this) because it - is not typed as ACE_Task<>. Return 0 always when calling sibling. - TODO: That can be fixed if ACE_Task and ACE_Task_Ex can be merged so - ACE_Task_Ex can have the Module ability - aka the Stream model. - See ACE_Task_Ex.h for more info on that. - -Wed Dec 3 12:14:51 2003 Steve Huston - - Pulled in these changes from the 5.3 stream: - - Tue Dec 2 14:43:28 2003 Steve Huston - - * ace/Vector_T.{h cpp i}: Added operator== and operator!= methods - that take the correct vector length into account. The inherited - ACE_Array methods run the whole array max length. - - Thu Sep 04 12:20:39 2003 Steve Huston - - * ace/Vector_T.{h, i, cpp}: Added new ACE_Vector_Iterator class - to correctly detect end of the vector content. Use this new class as - ACE_Vector<>::Iterator. ACE_Vector previously used ACE_Array_Iterator - as the iterator, but it doesn't notice the end of the legit vector - area. - - * tests/Vector_Test.cpp: Added a test of the ACE_Vector::Iterator - range to be sure it gets all legit vector elements, and no more. - Thanks to Yann Steff for this test addition - and for diagnosing the failure cause. - -Wed Dec 3 15:58:12 UTC 2003 Johnny Willemsen - - * performance-tests/Misc/basic_perf.bor: - * performance-tests/Misc/childbirth_time.bor: - * performance-tests/Misc/context_switch_time.bor: - * performance-tests/Misc/preempt.bor: - * performance-tests/Misc/test_mutex.bor: - * performance-tests/Misc/test_naming.bor: - * performance-tests/Misc/test_singleton.bor: - * netsvcs/build.bor: - * include/makeinclude/build_example.bor: - * include/makeinclude/build_exe.bor: - * examples/Timer_Queue/Async_Timer_Queue_Test.bor: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.bor: - * examples/Timer_Queue/Thread_Timer_Queue_Test.bor: - * examples/Smart_Pointers/gadget_test.bor: - * examples/Smart_Pointers/widget_test.bor: - * examples/Reactor/Multicast/client.bor: - * examples/Reactor/Multicast/server.bor: - * examples/Export/export_dll.bor: - * examples/Export/test.bor: - * apps/build.bor: - Added missing Id tag - -Wed Dec 3 09:48:55 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Fixed a bug in the generated GNU Makefile where idl files that had - scoped idlflag assignments would be processed every time - regardless of whether the generated files were up-to-date or not. - -Wed Dec 3 11:06:12 UTC 2003 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Changed definition thr_setprio to fix link errors in MSVC6 release - build. - -Wed Dec 3 11:39:45 2003 Kobi Cohen-Arazi - - * tests/Task_Ex_Test.cpp: - Added explicit instantiations to ACE_Task_Ex and ACE_Message_Queue_Ex - -Tue Dec 2 16:33:14 2003 Steve Huston - - * ace/OS_NS_Thread.h: Add #include "ace/Object_Manager_Base.h" to get - the ACE_OS_Object_Manager definition referenced by the ACE_OS_GUARD - macros. - - * ace/OS_NS_Thread.inl: (ACE_OS_Thread_Mutex_Guard, - ACE_OS_Recursive_Thread_Mutex_Guard): Changed use of - ACE_Object_Manager::starting_up to ACE_OS_Object_Manager to match - the class preallocated locks are obtained in the ACE_OS_GUARD - macros, above. Fixes compile errors on Linux and others. - -Tue Dec 2 14:43:17 2003 Steve Huston - - * ace/OS_NS_Thread.{h inl} (ACE_OS_Thread_Mutex_Guard, - ACE_OS_Recursive_Thread_Mutex_Guard): Changed the constructors to - check ACE_Object_Manager::starting_up () before grabbing the - monitor lock. If done before ACE_Object_Manager has been - initialized, the lock reference is invalid and often results - in a crash in the guard object. - The motivating case for this fix is a static ACE_Date_Time - object which resulted in an ACE_OS_GUARD crashing in - ACE_OS::localtime_r(). Thanks to Craig L. Ching - for this report. - - * tests/Date_Time_Test.cpp: Test a static ACE_Date_Time object. - -Tue Dec 2 16:19:33 UTC 2003 Johnny Willemsen - - * tests/Bound_Ptr_Test.h: - Moved Printer definition outside the ACE_HAS_THREADS check to - fix compile problems in single threaded builds. - -Tue Dec 2 12:15:18 UTC 2003 Johnny Willemsen - - * examples/C++NPv2/Server_Shutdown.cpp: - Added include of ace/OS_NS_string.h to get ACE_OS::strcmp - -Tue Dec 2 12:07:13 UTC 2003 Johnny Willemsen - - * apps/JAWS2/JAWS/Cache_Manager_T.cpp: - Removed all std::, this causes problems in our MSVC6 builds - -Mon Dec 1 22:04:37 2003 Kobi Cohen-Arazi - - * tests/Task_Ex_Test.cpp: - Move User_Defined_Msg class to Task_Ex_Test.h. - - * tests/Task_Ex_Test.dsp: - Add Task_Ex_Test.h to dsp. - - * tests/Task_Ex_Test.h: - Added to fix problems with AIX IBM and Template instantiations. - -Mon Dec 1 13:03:50 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - - Fixed a bug in the subtraction operator on strings. Values in - doubled quoted strings weren't being subtracted properly. - -Mon Dec 01 16:01:33 UTC 2003 Johnny Willemsen - - * bin/MakeProjectCreator/modules/Creator.pm (add_file_written): - There was a warning given when something was written with exactly the - same name, added an extra warning when things are just different by - casing. This is no problem on a Unix box, but on a Windows box it - will result in the fact that the second file overwrites the first. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - Do the duplicate check case insensitive by making everything lower - case. Thanks to Chris Cleeland for helping - me fixing this. The reason is that VC6 handles project names - case insensitive. - -Sun Nov 30 10:40:13 UTC 2003 Johnny Willemsen - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - When duplicates our not allowed and duplicates are found, then output - an error instead of a warning - -Sun Nov 30 10:22:29 2003 Kobi Cohen-Arazi - - * tests/tests.dsw: - * tests/Task_Ex_Test.icc: - * tests/Task_Ex_Test.dsp: - * tests/Makefile.am: - Added Task_Ex_Test to Makefile.am and tests.dsw - Added Task_Ex_Test.icc, Task_Ex_Test.dsp - -Sat Nov 29 15:25:36 UTC 2003 Don Hinton - - * ace/config-lite.h: (new file) - * ace/config-all.h: - Added new file, config-lite.h, and moved most of the code, - except for the includes, from config-all.h to the new file, - and included it in config-all.h. Since some of the files - included by config-all.h in turn include config-all.h, we - ended up with a circular include problem on some platforms. The - new file eliminates the problem by separating the includes from - the definitions. - - * ace/ACE_export.h: - * ace/os_include/os_stdarg.h: - * ace/os_include/os_stddef.h: - * ace/os_include/os_stdio.h: - Include config-lite.h instead of config-all.h to avoid - circular include problem. Most, if not all, of the files in - ace/os_include need only config-lite.h, but these are the only - files that currently have the circular include problem. Future - subsetting can address the rest after the release. - -Fri Nov 28 17:08:34 2003 Venkita Subramonian - - * Kokyu/README: Added this file with some basic information on - Kokyu and pointing to the Kokyu html documents under Kokyu/docs. - -Fri Nov 28 17:17:29 2003 Steve Huston - - * ace/Caching_Strategies_T.i: Added #include "ace/OS_Memory.h" so - ACE_NEW can be found properly when inlined methods are used without - the .cpp file, such as when instantiating templates in AIX Visual - Age C++. - - * ace/Cache_Map_Manager_T.cpp: Added #include "ace/Log_Msg.h" to - find ACE_ERROR, et al. - - * ace/Env_Value_T.h: Added #include "ace/Global_Macros.h" to - get ACE_UNIMPLEMENTED_FUNC and "ace/OS_NS_stdlib.h" to get - strtol, strtoul. - - * ace/Reverse_Lock_T.inl: Added #include "ace/OS_NS_errno.h" so - errno can be found properly when inlined methods are used without - the .cpp file, such as when instantiating templates in AIX Visual - Age C++. - - * tests/Bound_Ptr_Test.{h, cpp}: Added #include "ace/Null_Mutex.h" - to find ACE_Null_Mutex. Moved the Printer and Scheduler class - definitions from Bound_Ptr_Test.cpp to a new file, Bound_Ptr_Test.h - so AIX Visual Age C++ can find it when instantiating templates. - - * tests/Buffer_Stream_Test.cpp: - * tests/Cached_Accept_Conn_Test.cpp: - * tests/Cached_Allocator_Test.cpp: - * tests/Cached_Conn_Test.cpp: - * tests/CDR_Test.cpp: - * tests/Config_Test.cpp: - * tests/Env_Value_Test.cpp: - * tests/Logging_Strategy_Test.cpp: - * tests/MT_Reactor_Upcall_Test.cpp: Added #include - "ace/OS_NS_string.h" to get string functions. - - * tests/Cache_Map_Manager_Test.cpp: Added #include "ace/OS_NS_stdlib.h" - to get atoi() and srand(), and "ace/OS_Memory.h" for ACE_NEW. - - * tests/Capabilities_Test.cpp: Added #include "ace/OS_NS_fcntl.h" to - get open() and "ace/OS_NS_unistd.h" to get write(). - - * tests/Conn_Test.cpp: Added #include "ace/OS_NS_sys_select.h" to get - select() and the proper mutex header, Thread_Mutex.h, Null_Mutex.h, - or Process_Mutex.h. - - * tests/Conn_Test.h: Added #include "ace/Null_Condition.h" so the - template parent has it available when instantiating templates. - - * tests/Env_Value_Test.cpp: - * tests/Get_Opt_Test.cpp: - * tests/Handle_Set_Test.cpp: - * tests/Hash_Map_Bucket_Iterator_Test.cpp: Added #include - "ace/OS_NS_stdlib.h" to get itoa(). - - * tests/Future_Set_Test.cpp: - * tests/Logging_Strategy_Test.cpp: Added #include "ace/OS_NS_stdio.h" - and "ace/OS_NS_unistd.h" to get missing symbols on AIX. - - * tests/Future_Test.cpp: Added #include "ace/OS_NS_sys_time.h" to get - gettimeofday() and "ace/OS_NS_string.h" to get strlen(). - - * tests/MEM_Stream_Test.cpp: Added #include "ace/OS_NS_stdio.h" to get - sprintf(). - -Fri Nov 28 11:21:05 2003 Ossama Othman - - The following are fixes for problems exposed by running - `autoreconf' with the "--warnings=all" command line option. - - * configure.ac: - - Precompute the absolute path of the ACE "tests" build - directory. - - * Makefile.am (CONFIGURE_DEPENDENCIES): - - Updated configure script dependency list to reflect latest set - of M4 filenames. - - * ace/Makefile.am: - * ace/QoS/Makefile.am: - * ace/RMCast/Makefile.am: - * ace/SSL/Makefile.am: - * apps/gperf/src/Makefile.am: - * tests/SSL/Makefile.am: - - "INCLUDES" -> "AM_CPPFLAGS". The former is obsolete. - - * tests/Makefile.am (libdir): - - Do not set this variable to the absolute path of the current - working directory via the "$(shell pwd)" GNU Make extension. - Instead pre-compute it inside the `configure' script, and then - substitute the actual value inside the generated Makefile. - "$(shell pwd)" is not portable to non-GNU Make implementations. - - * m4/ace.m4: - - Ran `autoupdate' on this file to update obsolete Autoconf - macros. In particular, "AC_HELP_STRING" is now - "AS_HELP_STRING". - -Fri Nov 28 15:37:36 UTC 2003 Johnny Willemsen - - * tests/Makefile.tests: - Added Task_Ex_Test - -Fri Nov 28 15:34:53 UTC 2003 Johnny Willemsen - - * ace/config-WinCE.h: - Added missing # before include. - -Fri Nov 28 15:11:13 UTC 2003 Johnny Willemsen - - * include/makeinclude/ace_flags.bor: - * include/makeinclude/build_core_exe.bor: - * include/makeinclude/build_core_library.bor: - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_lib.bor: - * include/makeinclude/build_library.bor: - * include/makeinclude/clean.bor: - * include/makeinclude/compiler.bor: - * include/makeinclude/decorator.bor: - * include/makeinclude/install.bor: - * include/makeinclude/make_flags.bor: - * include/makeinclude/outputdir.bor: - * include/makeinclude/recurse.bor - Added missing id tag - -Fri Nov 28 14:59:03 UTC 2003 Johnny Willemsen - - * ACE-INSTALL.html: - Updated Cygwin documentation, use GCC 3.2.3 and select DOS - as default text file type. - -Fri Nov 28 08:56:50 2003 Douglas C. Schmidt - - * ace/Configuration_Import_Export.cpp (import_config): Rearranged - the code a bit to avoid declaring the "end" variable multiple - times in the loop. Thanks to Moran Levi for suggesting this. - -Fri Nov 28 14:31:12 UTC 2003 Johnny Willemsen - - * bin/fuzz.pl: - Fixed error in my previous change. - -Fri Nov 28 14:03:53 UTC 2003 Johnny Willemsen - - * ace/OS_NS_Thread.inl: - Moved ACE_OS::mutex_init() above ACE_OS::event_init() to fix - internal compiler error with Cygwin. - -Fri Nov 28 13:43:12 UTC 2003 Johnny Willemsen - - * bin/fuzz.pl: - Also check for Id string in the .bor files. - -Thu Nov 27 10:40:32 2003 Douglas C. Schmidt - - * ace/Configuration_Import_Export.cpp (import_config): The - problem: when importing a configuration from file - the import - process assumes maximum line length of 4096 bytes (which means - actually about 1360 bytes because each byte is represented as - three bytes in the output file). The solution is to use a - dynamic buffer to load a line from the file. If the load did not - reach the end of the line - resize the buffer and continue until - the end of the line is reached. Thanks to Moran Levi - for the fixes. - -Thu Nov 27 16:51:31 2003 Balachandran Natarajan - - * tests/ARGV_Test.cpp: - - Fixed compile errors on Win32. - -Thu Nov 27 10:51:00 UTC 2003 Don Hinton - - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.lib.GNU: - Added new variable, LIB_INSTALL that contains the libraries that - should be installed and added it as a dependency of BIN so that - the libs will get installed prior to building the BIN that depends - on it. - -Wed Nov 26 18:36:04 2003 Balachandran Natarajan - - * tests/ARGV_Test.cpp: - - Fixed compile errors, mostly related to missing includes. - -Wed Nov 26 17:09:32 2003 Balachandran Natarajan - - * ace/Log_Msg.cpp (log): Fixed a compile error with VC6. - -Wed Nov 26 12:10:22 2003 Douglas C. Schmidt - - * ace/OS_NS_signal.h: Put the typedef for ACE_SIGNAL_C_FUNC inside - of an extern "C" block to quiet warnings on Solaris. Thanks to - Kevin Heifner for this suggestion! - - * ace/POSIX_Proactor.cpp: Made the sig_handler() function static - so that it won't "leak" out of ACE! - - * tests/Log_Msg_Test.cpp (test_format_specs): - * ace/Log_Msg.cpp (log): ACE_Log_Msg::log has a number of problems - when ACE is built with ACE_USES_WCHAR - 1) %m needs to convert strerror to wide string - 2) %I should not use memset to set spaces in wide string - 3) recent modifications to remove dependencies on ACE_TRACE - prevent %I from indenting - Thanks to Duane Binder for these fixes. Fixes [BUGID 1660] - -Wed Nov 26 12:15:22 2003 Balachandran Natarajan - - * bin/tao_other_tests.lst: - - Blocked a number of tests from running in if messaging is disabled. - -Wed Nov 26 17:41:13 UTC 2003 Johnny Willemsen - - * include/makeinclude/ace_flags.bor: - Changed TAO FT flags and libs - -Wed Nov 26 10:11:20 2003 Douglas C. Schmidt - - * tests/ARGV_Test.cpp: Added new functions to test the fixes by - Duane Binder below. - - * ace/Argv_Type_Converter.cpp (cleanup): Ensure we don't try to - delete memory that wasn't allocated dynamically. Thanks to - Duane Binder for reporting this and - providing a fix. This fixes bugid 1658. - - * ace/Log_Msg_NT_Event_Log.cpp (open): - ACE_Log_Msg_NT_Event_Log::open() has a problem with passing the - program name to ACE_TEXT_RegSetValueEx. It is passing - msg_file_length. msg_file_length is defined as - ACE_OS::strlen(msg_file). Unfortunately, this is 1/2 the - required buffer length since this argument is defined in bytes, - not in characters. End result - the event log message file entry - is truncated resulting in the log message file not found. - Thanks to Duane Binder for reporting - this and providing a fix. This fixes bugid 1659. - - * ace/POSIX_Proactor.cpp: Changed sig_handler() to be extern "C". - Thanks to Chris Cleeland for suggesting this fix. - - * ace/Process.{h,cpp}: Fixed the ACE_Process_Options::command_line_argv() - method so that it doesn't modify the command_line_buf_ parameter - directly since this messes things up when process_name() is - used. Thanks to Dror Tirosh for reporting - this. - -Wed Nov 26 16:09:55 UTC 2003 Don Hinton - - * tests/IO_Stream_Test.cpp: - Added #include OS_NS_sys_wait.h: - -Wed Nov 26 15:58:07 UTC 2003 Don Hinton - - * ace/config-WinCE.h: - Added #define ACE_LACKS_SIGNAL_H and ACE_LACKS_SYS_STAT_H. - -Wed Nov 26 14:52:43 UTC 2003 Johnny Willemsen - - * examples/IPC_SAP/SSL_SAP/SSL-server.cpp: - Corrected wrong include - -Tue Nov 25 16:24:18 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: - - Added the Servant_To_Reference_Test for the daily builds. - -Tue Nov 25 23:41:21 2003 Kobi Cohen-Arazi - - * apps/JAWS3/jaws3/Concurrency.cpp: - - Remove the unnecessary ACE_TEMPLATE_METHOD_SPECIALIZATION - - * apps/JAWS3/jaws3/Config_File.cpp: - - Added #include "ace/Unbounded_Queue.h" - - * apps/JAWS3/jaws3/Datagram.cpp: - - Remove unnecessary default values in cpp impl file. - - * apps/JAWS3/jaws3/Event_Dispatcher.cpp: - Use ACE_THR_FUNC_RETURN instead of void* - - * apps/JAWS3/jaws3/IO.h: - - Added #include "ace/Singleton.h" and #include - "ace/Synch_Traits.h" - - * apps/JAWS3/jaws3/Reactive_IO.cpp: - - Added #include "ace/ACE.h" - - * apps/JAWS3/jaws3/Signal_Task.cpp: - - Added #define JAWS_BUILD_DLL. Use ACE_THR_FUNC_RETURN instead of - void*. Add if !defined (ACE_WIN32) for WIN32 because of SIGHUP - - * apps/JAWS3/jaws3/Signal_Task.h: - - Added #include "jaws3/Export.h" and add JAWS_Export to - JAWS_Signal_Task - - * apps/JAWS3/jaws3/THYBRID_Concurrency.h: - * apps/JAWS3/jaws3/TPR_Concurrency.h: - - Added #include "ace/Atomic_Op.h" - -Tue Nov 25 23:35:27 2003 Kobi Cohen-Arazi - - * apps/JAWS3/jaws3.mwc: - * apps/JAWS3/jaws3/jaws3.mpc: - - Added To the repository - -Tue Nov 25 15:01:28 2003 Balachandran Natarajan - - * bin/MakeProjectCreator/config/global.features: - - Added sctp and xt_reactor to the list of features. - -Tue Nov 25 12:34:15 2003 Balachandran Natarajan - - * ace/DLL.h: Made the constructors explicit. - - * ace/Service_Config.cpp: - - Fix for one of the problems that showed up in TAO. For some - reason we were passing in a "0" to the constructor - ACE_Service_Type that was expecting a const ACE_DLL &. None of - the compilers complained about this, since they created - temporary. This created all sorts of problems once this "Sun Nov - 23 11:00:02 2003 Douglas C. Schmidt - " went through since it added a new - constructor. - - We have now fixed it by creating a temporary and forcing the - compiler to use the right constructor of ACE_Service_Type. This - shouldn't be harmful, since we were expecting just this. - -Tue Nov 25 11:14:09 2003 Chad Elliott - - * ace/config-lynxos.h: - * include/makeinclude/platform_lynxos.GNU: - - Made modifications to support LynxOS 4.0.0 and shared libraries. - -Tue Nov 25 14:13:24 UTC 2003 Don Hinton - - * include/makeinclude/all_in_one.GNU: - Include rules.bin.GNU after rules.lib.GNU so that dependencies - can be correctly set. Use definition of DIRS to decide whether - to include rules.nested.GNU or rules.nonested.GNU. - rules.nested.GNU is needed to recurse directories if DIRS is - defined. - -Tue Nov 25 10:08:12 2003 Kobi Cohen-Arazi - - * apps/JAWS3/jaws3/io.h: - * apps/JAWS3/jaws3/io.cpp: - * apps/JAWS3/jaws3/file.h: - * apps/JAWS3/jaws3/file.cpp: - Removed. - - -Tue Nov 25 09:23:35 2003 Kobi Cohen-Arazi - - * apps/JAWS3/small/SS_Templates.cpp: - * apps/JAWS3/jaws3/io.h: - * apps/JAWS3/jaws3/io.cpp: - * apps/JAWS3/jaws3/file.h: - * apps/JAWS3/jaws3/file.cpp: - * apps/JAWS3/jaws3/Timer_Helpers.h: - * apps/JAWS3/jaws3/Timer_Helpers.cpp: - * apps/JAWS3/jaws3/Templates.cpp: - * apps/JAWS3/jaws3/Reactive_IO_Helpers.h: - * apps/JAWS3/jaws3/Options.h: - * apps/JAWS3/jaws3/Options.cpp: - * apps/JAWS3/jaws3/Asynch_IO_Helpers.h: - * apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.h: - * apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.cpp: - * apps/JAWS3/http/HTTP_States.h: - * apps/JAWS3/contrib/john_at_lyris_dot_com/readme: - * apps/JAWS3/contrib/jmills_at_tga_dot_com/readme: - * apps/JAWS3/bench/rqfiles.cpp: - * apps/JAWS3/bench/mkfiles.cpp: - * apps/JAWS3/docs/web/images/jaws3_components.gif: - * apps/JAWS3/docs/web/images/jaws3_components.fig: - * apps/JAWS3/docs/web/images/jaws3_banner.png: - * apps/JAWS3/docs/web/images/jaws3_banner.gif: - - Added to the repository - -Tue Nov 25 05:25:58 UTC 2003 Don Hinton - - * include/makeinclude/all_in_one.GNU: - Include rules.nonested.GNU instead of rules.nested.GNU to enable - parallel builds. Thanks to Bala for noticing that the builds - didn't always build in parallel as expected. - -Mon Nov 24 18:30:12 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_sunos5_sunc++.GNU: - When using CC 5.5 (SunForte8) then use implicit templates - -Mon Nov 24 17:29:30 UTC 2003 Don Hinton - - * include/makeinclude/rules.local.GNU: - Added a $(TAO_IDL_DEP) target that emits an error if the - $(TAO_IDL_DEP) doesn't exist. Thanks to Carlos for - motivating this and suggesting the use of /bin/false to force - make to see the error. - -Mon Nov 24 16:59:53 UTC 2003 Johnny Willemsen - - * ace/OS_NS_stdio.inl: - Moved ACE_OS::flock_unlock() to an earlier place in this file - to fix an internal compiler with MinGW. - -Mon Nov 24 07:03:15 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - - Removed the /Zi option (enable debugging information) from the - release targets. - -Mon Nov 24 05:26:14 UTC 2003 Don Hinton - - * include/makeinclude/rules.local.GNU: - Only cleanup shared libraries when shared_libs is defined and - static libraries when static_libs is defined. Also, test for - whether or not the CLEANUP targets in this case are empty, not - b - just for existence, since they always exist by this time. - -Mon Nov 24 02:38:58 UTC 2003 Don Hinton - - * include/makeinclude/all_in_one.GNU: - * include/makeinclude/wrapper_macros.GNU: - * include/makeinclude/rules.local.GNU: - Removed the multiple assignments to BUILD from - wrapper_macros.GNU and all_in_one.GNU and replaced them with a - single assignment to VBUILD in rules.local.GNU. VBUILD always - includes the following targets: IDL_SRC, VLIBS, VBIN, then - filters out any of these already in BUILD and includes them too. - IDL_SRC and the V* targets get defined in the appropriate - rules.*.GNU file or Makefile or are defined in rules.local.GNU - prior to use. If VBIN has not yet been defined when - rules.local.GNU is loaded, but BIN has been (because BIN or - BIN_UNCHECKED was defined in the Makefile but rules.bin.GNU - wasn't included), VBIN is defined in terms of BIN, and is set to - depend on VLIBS. VLIBS is defined in rules.lib.GNU and - discussed below. - - * include/makeinclude/rules.lib.GNU: - Assign VLIB and/or VSHLIB and VSHLIBA to VLIBS if either - static_libs and/or shared_libs is defined, respectively. Added - a rule that they depend on IDL_SRC if it's defined, which will - insure that they are built first. Issue warning if this file - was included but no *LIB or *LIB_UNCHECKED variables were defined. - - * include/makeinclude/rules.bin.GNU: - Modified the BIN target to command to use the specific objects - from the dependency list instead of $^ which takes all the - dependencies, even those added elsewhere--make is evil in this - respect. Since objects could be listed multiple times, sort is - used to remove duplicates. Added dependency rules making VBIN - dependent on VLIBS and IDL_SRC. Issue warning if this file is - included and BIN or BIN_UNCHECKED wasn't defined. - - * include/makeinclude/rules.local.GNU: - In addition to the BUILD changes noted above, added - makefile.local target the prints out the name of the Makefile in - use. This really helpful in big directories with lots of - Makefiles. Set the SUFFIXES to nothing so that implicit rule - matching based on suffixes is turn off--we only want our - explicit rules to fire. Removed the IDL_SRC dependency rule - added below since it was redundant and already handled in - rules.tao.GNU. - - * include/makeinclude/wrapper_macros.GNU: - Removed VBIN assignment since it belongs in rules.bin.GNU and/or - rules.local.GNU and is no longer needed here since the BUILD - variable assignments were removed as noted above. Added - comments on how to use the various variables. - - * include/makeinclude/all_in_one.GNU: - * include/makeinclude/platform_g++_common.GNU: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.local.GNU: - * include/makeinclude/wrapper_macros.GNU: - Use ifdef/ifndef to test to see if variables exist before - testing their values. - - * apps/Gateway/Gateway/Makefile: - Added -lGateway to LDLIBS and removed the VBIN target dependency - lists. - - * apps/Gateway/Peer/Makefile: - Added -lPeer to LDLIBS and removed the VBIN target dependency - lists. - - * tests/Makefile.DLL_Test: - * tests/Makefile.Framework_Component_DLL: - * tests/Makefile.Service_Config_DLL: - * tests/Makefile.Test_Output: - Removed the erroneous BUILD variable assignments that were - incorrect and no longer work correctly. - -Sun Nov 23 11:00:02 2003 Douglas C. Schmidt - - * ace/Service_Object.cpp (ACE_Service_Type): Added an ACE_const_cast<> - to resolve a bug. Thanks to Bala for reporting this. - -Sun Nov 23 14:17:33 UTC 2003 Johnny Willemsen - - * tests/Tests.bor: - Added Task_Ex_Test - -Sun Nov 23 10:06:43 UTC 2003 Johnny Willemsen - - * ACE-INSTALL.html: - Added a new section how to build ACE with Cygwin - -Sat Nov 22 15:39:05 2003 Balachandran Natarajan - - * ace/Service_Object.h: - - Made dll_> mutable. This should get rid of the errors in - the scoreboard. - -Sat Nov 22 22:10:14 2003 Kobi Cohen-Arazi - - * tests/Task_Ex_Test.cpp: - * tests/run_test.lst: - * tests/tests.mpc: - Added test for ACE_Task_Ex - -Sat Nov 22 22:03:34 2003 Kobi Cohen-Arazi - - * ace/ace.mpc: - - Added Task_Ex_T file - -Sat Nov 22 22:00:15 2003 Kobi Cohen-Arazi - - * ace/Task_Ex_T.h: - * ace/Task_Ex_T.i: - * ace/Task_Ex_T.cpp: - - Added support for ACE_Task with Use define Message template - parameter. - -Sat Nov 22 21:07:09 2003 Kobi Cohen-Arazi - - * ace/OS_NS_Thread.h : - - Added "&& !defined (ACE_DEFAULT_THREAD_KEYS)". Problems occurs - on win2k/XP when OS support up to 1024 slots, but MS-sdk - defines TLS_MINIMUM_AVAILABLE as 64. Now, Win2k/XP Users can - raise that number, define-ing ACE_DEFAULT_THREAD_KEYS as 1024 - e.g.. - -Sat Nov 22 11:18:38 2003 Balachandran Natarajan - - * ace/Service_Object.{h,cpp}: - - Reverting this change "Fri Nov 21 12:13:42 2003 Balachandran - Natarajan " since Dr. Schmidt wants to - fix this the right way. - -Fri Nov 21 12:13:42 2003 Balachandran Natarajan - - * ace/Service_Object.{h,cpp}: - - Reverted this change since it broke the builds. - "Thu Nov 20 18:11:32 2003 Douglas C. Schmidt - ". We will get a better patch soon - from the user. - -Thu Nov 20 18:11:32 2003 Douglas C. Schmidt - - * ace/Service_Object.{h,cpp}: Added a new constructor for - ACE_Service_Type that is passed an ACE_SHLIB_HANDLE handle. - This fixes a bug with ACE_DLL_Strategy::make_svc_handler(). - Thanks to Thomas Girard for reporting - this. - -Fri Nov 21 13:26:22 UTC 2003 Don Hinton - - * *Makefile*: - Updated dependencies for all Makefiles normally built. - - * include/makeinclude/macros.GNU: - * include/makeinclude/rules.common.GNU: - Added cleanup_idl_stubs. It was already there as a .local - target, now it can be called directly. This allows you to - cleanup the idl stub code for a particular project without - having to run realclean which will cleanup all everything in the - directory. - -Fri Nov 21 07:24:07 UTC 2003 Don Hinton - - * bin/auto_run_tests.pl: - Moved the declaration of $config_list to before the if(!getopt - line, since it's used there if the if is satisfied. Removed the - ":" after a in the getopt argument list, since -a does not take - a mandatory argument (which is what ":" means). This has - prevented any tests from running in the ACE only autobuilds. - since September. - -Fri Nov 21 02:57:35 UTC 2003 Don Hinton - - This is a major reorganization of the make system, and was - motivated by intermittent build errors in the autobuilds as well - as the pending move to MPC. Sorry if it's a little long, it's in - a quasi Irfan-Bala style... - - Specific changes are noted below, but here's a basic overview: - - clean: Cleans up only the objects actually created by the - current project. If multiple makefiles exist in the same - directory, they no longer need to be completely rebuilt because - another makefile issued a clean. This will help in large - directories like $(ACE_ROOT)tests or - $(TAO_ROOT)/orbsvcs/orbsvcs. These objects are cleaned up even - if a particular feature is not enabled, e.g., rmcast, ssl, - Other, etc., and is not dependent on bin/ace_components or the - files it maintains. So, for normal development, prefer clean - over realclean. - - realclean: Cleans up everything, including the removal of the - .obj or .shobj directories, and any IDL files, e.g., *C.h, etc. - Like clean:, it also cleans up objects whether or not the - feature is currently enabled, thus obviating reverseclean: - entirely. Also removed the multiple $(RM) lines. Each clean - target now only invokes $(RM) a single time, and they aren't - invoked at all in Makefiles that don't actually build anything. - This reduced the time to run realclean on TAO by about 10%. - - BUILD: It now includes $(IDL_SRC) as the first dependency, so - that idl_stubs is always invoked first if needed. It also - includes, in order, $(VLIB), $(VSHLIB), and $(VSHLIBA), - depending on the values of static_libs and shared_libs. - Finally, it includes $(VBIN) so that it's the last thing built. - This ordering will always work even in parallel builds, -jn - with n > 1, since dependencies are processed in order. Had - these target just satisfied other rules, but were not explicitly - ordered, make would have tried to build them at the same time. - This should fix most of the parallel build autobuild errors. - - depend: Now depends on idl_studs, so you no longer have to run - both in order. depend will invoke idl_stubs if needed. It also - uses $(VDIR) instead of a hard coded .obj/ value, and removes - the config-*h files even if it's run in the $(ACE_ROOT)/ace - directory, but leaves config-all.h and a new variable file, - $(ACE_PLATFORM_CONFIG), which can be set in the appropriate - platform_*.GNU file to correspond to the matching config-*.h - file. For instance, it is set to config-linux.h in - platform_macros.GNU so that changes to config-linux.h will - insure recompilation on Linux. It defaults to config.h if not - set in platform_*.GNU. $(PSRC) is now set to $(addsuffix .cpp, - $(CLEANUP_BIN)), where $(CLEANUP_BIN) is either $(BIN) or - $(BIN_UNCHECKED) or $(BIN2), $(BIN_UNCHECKED) is heavily used in - TAO and MPC, and $(BIN2) is heavily used in ACE, so both are - maintained. This insures that it will be added to the - dependencies even if the developer forgets to add it to the - Makefile. In fact, it's here so it doesn't have to be added to - the Makefile. - - install/deinstall: These are somewhat problematic, since they - *must* be installed to actually run anything, but now they - install exactly what you build, $(LIB) or $(SHLIB), and - deinstall the same even if the feature isn't enabled, as in - clean above. Also, the versioning code was modified a bit to - make it easier to understand and make deinstall work correctly. - - $(IDL_SRC): This target was added here, because adding it to - $(TAO)/rules_tao.GNU wouldn't work correctly due to backward - compatibility issues. Anyway, it depends on $(IDL_FILES) and - will force idl_stubs to be run if any of the idl files change. - Unfortunately, we can't yet generate dependencies for idl files, - but perhaps that won't be hard to add in the future. - - component_check.GNU: Including this file is similar to calling a - function with named parameters, it's been altered to let you - include it as many times as you want. It will probably evolve - over time, but currently, you add of list of all components that - you want to tests to an input variable, REQUIRED_COMPONENTS, - include the file, then test to see if the return variable, - MISSING_COMPONENTS, contains any of the components specified in - REQUIRED_COMPONENTS, if it does, these components are missing, - i.e., not specified in either platform_macros.GNU, the - commandline, or contained in any of the ace_components files. - For example, if you want to test for ssl and Other, you'd do - something like this: - - REQUIRED_COMPONENTS = ssl Other - include $(ACE_ROOT)/include/makeinclude/component_check.GNU - ifneq ($(MISSING_COMPONENTS),) - all: - @echo Missing $(MISSING_COMPONENTS) - endif - - This should greatly simplify Makefiles in general and MPC - templates in particular. - - * include/makeinclude/all_in_one.GNU: - * include/makeinclude/component_check.GNU: - Moved the code that set the BIN, LIB, and SHLIB variable from - component_check.GNU to all_in_one.GNU, and removed the include - guards from component_check.GNU so it could be included multiple - times like a function call. Also, set the BUILD to the correct - values depending on which variables are set (BUILD is also set - correctly in wrapper_macros.GNU, but this implementation should - be more correct if all_in_one.GNU is used instead of including - the other files individually). - - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/wrapper_macros.GNU: - * include/makeinclude/rules.local.GNU: - * bin/g++dep: - Added ACE_PLATFORM_CONFIG = config-linux.h, so that - config-linux.h will always be included in dependencies on - Linux. Added default value of config.h to wrapper_macros.GNU, - and pass it to g++dep where it is used to replace the matching - file dependency with $(ACE_PLATFORM_CONFIG) so we can pick up - the correct dependency automatically on each platform. - - * include/makeinclude/wrapper_macros.GNU: - * include/makeinclude/platform_sunos5_kcc.GNU: - * include/makeinclude/platform_sunos5_sunc++.GNU: - Moved the assignment of the CLEANUP_* variables to the top of - wrapper_macros.GNU, and changed the test in the two platform_* - files from BIN to CLEANUP_BIN, so they can be correctly tested - even if BIN_UNCHECKED of BIN2 was defined in the Makefile - instead of BIN. - - * include/makeinclude/rules.bin.GNU: - Assign CLEANUP_BIN to PSRC so that it gets passed to depend and - dependencies are generated even if the component isn't enabled - or not explicitly included in VOBJS which is derived from SRC. - - * include/makeinclude/rules.lib.GNU: - Modified the versioning variables and created CLEANUP_INSTALL so - that libraries can be installed and uninstalled correctly even - if components are currently enabled. Cosmetic fixes to the - ifdef code to make it more readable, added comments. - - * include/makeinclude/rules.local.GNU: - More cosmetic changes to make it more readable. Added - CLEANUP_OBJDIRS to make it easier to keep track of what - directories need to be removed during clean and realclean. - Condensed the clean and install/deinstall target code to use - fewer rm calls and only call them if there's something to do. - Also, only cleanup the library or bin that was created, - including a specific version number if available. These use the - special CLEANUP_* variables so they aren't dependent on whether - or not a feature or component is enabled. - - * include/makeinclude/wrapper_macros.GNU: - Added $(IDL_SRC) to all the BUILD variables (there are lots of - them), so that they are always generated first if defined. - Commented out the assignment of $(VSHDIR) to $(VDIR) is building - shared_libs_only and not on VXWORKS. This doesn't seem right, - especially if we are building bins and libs in the same directory. - -Thu Nov 20 17:30:18 2003 Steve Huston - - * ace/os_include/sys/os_socket.h: HP-UX supplies the socklen_t type - unless some feature set less than _XOPEN_SOURCE_EXTENDED is - specifically requested. However, it only actually uses the - socklen_t type in supplied socket functions if - _XOPEN_SOURCE_EXTENDED is specifically requested. So, for example, - the compile options ACE usually uses (includes -mt) cause - _HPUX_SOURCE to be set, which sets _INCLUDE_XOPEN_SOURCE_EXTENDED - (causing socklen_t to be defined) but _not_ _XOPEN_SOURCE_EXTENDED - (causing socket functions to use int, not socklen_t). - - * ace/OS_NS_Thread.h (ACE_rwlock_t): Uncomment the two lines that - set "typedef pthread_rwlock_t ACE_rwlock_t" for - ACE_HAS_PTHREADS_UNIX98_EXT. - - * ace/OS_NS_Thread.inl (rw_trywrlock_upgrade): Add "defined - (ACE_HAS_PTHREADS_UNIX98_EXT)" to the platforms that return - ENOTSUP for this. Avoids tripping over the code that emulates it - without having the emulated lock type set up. - - * ace/OS_NS_sys_stat.h: Change #include "ace/os_include/sys/os_types.h" - to "ace/os_include/sys/os_stat.h" to get the proper struct stat - definition for the platform. Fixes compile error on HP-UX. - -Thu Nov 20 09:35:01 2003 Dale Wilson - - * bin/MakeProjectCreator/config/fault_tolerance.mpb: - New--to support fault tolerance mpc files. - - * bin/MakeProjectCreator/config/orbsvcsexe.mpb: - * bin/MakeProjectCreator/config/taoexe.mpb: - Add IDL includes to match CPP includes. - -Thu Nov 20 07:51:59 2003 Douglas C. Schmidt - - * ace/OS_NS_sys_uio.cpp: "Short-circuit the readv_emulation() and - writev_emulation() for the case where there's just a single - element in the iovec. Thanks to Edan Ayal - for contributing this. - -Wed Nov 19 11:55:43 2003 Douglas C. Schmidt - - * ace/Mem_Map.i (map): Reverted the change from - - Mon Nov 17 17:09:37 2003 Douglas C. Schmidt - - since this isn't the right fix. Thanks to Kitty for noting this. - -Wed Nov 19 10:09:12 2003 Chad Elliott - - * bin/DependencyGenerator/GNUDependencyWriter.pm: - * bin/DependencyGenerator/Preprocessor.pm: - - Modifications that decrease the time to generate dependencies by - 7 percent. - - * bin/depgen.pl: - - Added the -n option to the usage and updated the version number. - -Wed Nov 19 09:53:06 2003 Balachandran Natarajan - - * ace/config-win32-msvc-7.h: - - MSVC 7 supports templates class specialization. - -Tue Nov 18 22:31:00 2003 Balachandran Natarajan - - * bin/MakeProjectCreator/config/naming.mpb: - - Naming service now depends on messaging. - -Tue Nov 18 22:12:53 2003 Balachandran Natarajan - - * ace/Log_Msg.cpp: - * ace/Log_Msg.h: - - Fixed warnings in the daily builds. Further, made some cosmetic - changes. - -Tue Nov 18 21:25:23 2003 Tao Lu - - * html/index.html: - Configured the index.html to display CIAO doxygen information. - -Tue Nov 18 15:58:00 2003 Ossama Othman - - * configure.ac (AC_PROC_CC, AC_PROG_CPP, AC_PROG_CC_C_O): - - No need to check for a C compiler and preprocessor. ACE is only - compiled with a C++ compiler. - - (AC_LIBTOOL_TAGS): - - Added call to this Libtool autoconf macro to only enable C++ - library support. C and FORTRAN support are unnecessary. Note - that this forces a requirement on Libtool 1.5 or better. - - (ACE_CHECK_TLS): - - Only run the OpenSSL detection tests if SSL support is enabled - by the user. - - * m4/ace.m4: - - Enable TLS/SSL support by default. - - * m4/aio.m4: - * m4/features.m4: - - Renamed `features.m4' file to `aio.m4' to better reflect the - contents of this file, namely asynchronous IO checks. - - * m4/config_h.m4 (AH_BOTTOM): - - Prevent Emacs from inadvertently applying the "Local Variables" - block to be placed in the generated "config.h" header to this - Autoconf/M4 file by splitting the words "Local" and "Variables" - into two separate concatenated M4 quoted blocks. - - * m4/tls.m4: - - New Autoconf OpenSSL detection tests. - - * ace/Makefile.am (clean-local): - - Updated list of additional files/directories unknown to the - standard "clean" target to be cleaned. - - * ace/SSL/Makefile.am: - - (AM_CPPFLAGS): - - Add preprocessor flags necessary to build applications with - OpenSSL support. Detected at "configure-time". - - (libACE_SSL_la_LIBADD): - - Link the OpenSSL libraries detected at "configure-time." - - * tests/Makefile.am (SUBDIRS): - - Build the SSL test subdirectory. - - (noinst_SCRIPTS): - - Removed non-existent files from this list. Fixes some build - problems. - - (libTest_Output_la_LDFLAGS): - - Removed "-module" libtool flag from libTest_Output.* linker - flags. This library is meant to be linked at build time, not - loaded dynamically. - - (*_SOURCES, LDADD): - - No need to add `Main.cpp' to all test source lists. Simply - adding `Main.o' to $(LDADD) is much cleaner and provides the - same effect. - - (Reference_Counted_Event_Handler_Test_SOURCES): - - Fixed source file list. This test is now built correctly. - - (EXTRA_DIST): - - Added `Main.cpp' to the list of files to be explicitly - distributed with the ACE distribution when building a - distribution with the Autoconf support. - - (all-local): - - "$(top_srcdir/tests" -> "$(srcdir)". The latter is cleaner and - provides the same effect/result. - - (clean-local): - - Updated list of additional files/directories unknown to the - standard "clean" target to be cleaned. - - (distclean-local): - - Removed `bin' directory from the list of directories to be - erased. It hasn't been generated for quite some time. - - * tests/SSL/Makefile.am: - - New Automake Makefile template for the ACE_SSL library test. - -Tue Nov 18 16:37:21 2003 Douglas C. Schmidt - - * examples/IPC_SAP/DEV_SAP/reader/reader.cpp (main): Changed - recv_n() to recv() so that the underlying Windows Read() - function is called properly (recv_n() doesn't call this). - Thanks to Mike Gingell for - reporting this. - -Tue Nov 18 16:22:45 2003 Tao Lu - - * etc/ciao.doxygen: - * etc/ciao_assembly_deployer.doxygen : - * etc/ciao_componentserver.doxygen : - * etc/ciao_daemon.doxygen : - * etc/ciao_serveractivator.doxygen : - * etc/ciao_xml_helpers.doxygen : - * bin/generate_doxygen.pl : - * html/index.html : - Added some more doxygen files. - -Tue Nov 18 16:14:29 2003 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Add preprocessor defs - for threads ability to CPPFLAGS, not CCFLAGS. Thanks to Ossama - Othman for this suggestion. - -Tue Nov 18 16:03:10 UTC 2003 Don Hinton - - Thanks to Olli Savia for the following patches: - - * ace/OS_NS_sys_mman.inl: - Added #include OS_NS_sys_stat.h if __Lynx__ is defined. - - * ace/RMCast/RMCast.h: - Added #include /**/ before #undef'ing MT_DATA if - __Lynx__ is defined, since it's MT_DATA is defined in this file. - - * tests/Max_Default_Port_Test.cpp: - Changed NULL to 0 to fix compile problem on LynxOS. - -Tue Nov 18 15:01:49 2003 Simon McQueen - - * ace/Log_Msg.h: - * ace/Log_Msg.cpp: - - Time / time and date stamps can now be placed on log entries by - defining the environment property ACE_LOG_TIMESTAMP to be one of - 'TIME' / 'DATE'. This fixes bug #1635. - -Tue Nov 18 08:11:52 2003 Dale Wilson - - * bin/MakeProjectCreator/config/ftorbutils.mpb: - - Ftorbutils depends on CosNaming. - -Tue Nov 18 05:12:17 UTC 2003 Don Hinton - - * include/makeinclude/all_in_one.GNU: - Added ability to include an arbitrary Makefile passed as - ADDITIONAL_INCLUDE, and added BUILD rule dependency of idl_stubs - if IDL_SRC is defined. Added TAO_ROOT is not already defined. - -Mon Nov 17 20:34:27 2003 Tao Lu - - * etc/ciao.doxygen: - * bin/generate_doxygen.pl: - - Added doxygen configuration file for ciao. - -Mon Nov 17 20:12:53 2003 Tao Lu - - * etc/tao_ifr.doxygen: - Added doxygen configuration file for IFR_Service. - -Mon Nov 17 20:00:14 2003 Balachandran Natarajan - - * ace/Default_Constants.h: - - Added a new #define ACE_IPV6_LOCALHOST. The - ACE_DEFAULT_SERVER_HOST would point to ACE_IPV6_LOCALHOST if - IPV6 is enabled and ACE_LOCALHOSt of IPV4 is used. - - Thanks to Bryan Bruesker for providing the patches. - -Mon Nov 17 18:55:49 2003 Balachandran Natarajan - - * ace/Asynch_Connector.cpp: - - Use ACE_reinterpret_cast instead of a C style casts. - - * ace/INET_Addr.cpp: - - Fixed a problem with the ACE_INET_Addr::set () method, where the - type and size of this object were not being set. This could - cause a problem when the type of sa is different than the type - of this ACE_INET_Addr. Even though the inet_addr_ member will - be set correctly, the type and size will be, making the state - of the ACE_INET_Addr inconsistent. - - * ace/Multihomed_INET_Addr.cpp: - * ace/Multihomed_INET_Addr.h: - * ace/Multihomed_INET_Addr.i: - - Added a get_addresses method () that takes a sockaddr_in6* as - argument, so that if the ACE_Multihomed_INET_Addr is storing - only IPv6 addresses, they can all be put into an array of - sockaddr_in6 by this method. Further, changed the variable name - within the class to be secondaries_, ie. with an underscore. - - * ace/SOCK_Dgram_Mcast.cpp: - - Added a memset to make_multicast_ifaddr6 to ensure that the - ipv6_mreq is zero'ed out before using it. - - - Thanks to Bryan Bruesker for providing the patches. - -Tue Nov 18 00:35:51 UTC 2003 Don Hinton - - * include/makeinclude/component_check.GNU: - * include/makeinclude/wrapper_macros.GNU: - Added new variable, ACE_MAKE_OPTIONS, to wrapper_macros.GNU that - collects all the flags passed to make, e.g., ssl, sctp, rmcast, - etc.... Use this variable in component_check.GNU so that we - only have to add new flags one place. - -Tue Nov 18 00:04:30 UTC 2003 Don Hinton - - * include/makeinclude/all_in_one.GNU: - Fixed variable tests and changed the order variables are added - to BUILD, i.e., put the libraries first, then the bins. This - insures the libs are built first if a Makefile builds both libs - and executables. - - * netsvcs/clients/Naming/Client/Makefile: - Removed the special BIN target with a dependency on SHLIB, since - this is now handled automagically by the above rule. - -Mon Nov 17 17:09:37 2003 Douglas C. Schmidt - - * ace/Mem_Map.i (map): Disable the use of MAP_FIXED on Linux - since it seems to cause problems. Thanks to Lothar Werzinger - for this fix. - -Mon Nov 17 21:50:29 UTC 2003 Don Hinton - - * include/makeinclude/rules.local.GNU: - * include/makeinclude/wrapper_macros.GNU: - Renamed the CLEAN_* variables to CLEANUP_*, and moved them from - rules.local.GNU to wrapper_macros.GNU. - - * include/makeinclude/all_in_one.GNU: - * include/makeinclude/component_check.GNU: - Added new files that simplify the makefile systems. - all_in_one.GNU replaces and conditionally includes all the other - standard makeinclude files. It also includes the new - component_check.GNU file that handles all the conditional - compilation rules. All you need to do is add a list of required - components needed for the particular project, e.g., rmcast, - shared_libs, Other, etc..., to REQUIRED_COMPONENTS and then - include all_in_one.GNU. These files will simplify MPC a great - deal. - - * netsvcs/Makefile: - * netsvcs/clients/Makefile: - * netsvcs/clients/Logger/Makefile: - * netsvcs/clients/Naming/Makefile: - * netsvcs/clients/Naming/Client/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile.Dump_Restore: - * netsvcs/clients/Naming/Dump_Restore/Makefile.main: - * netsvcs/clients/Tokens/Makefile: - * netsvcs/clients/Tokens/collection/Makefile: - * netsvcs/clients/Tokens/deadlock/Makefile: - * netsvcs/clients/Tokens/invariant/Makefile: - * netsvcs/clients/Tokens/manual/Makefile: - * netsvcs/clients/Tokens/mutex/Makefile: - * netsvcs/clients/Tokens/rw_lock/Makefile: - * netsvcs/lib/Makefile: - * netsvcs/servers/Makefile: - Modified these Makefiles to use the new all_in_one.GNU file - above and updated dependencies. This is mainly a test and - example for future MPC implementations. - -Mon Nov 17 16:37:49 2003 Steve Huston - - * include/makeinclude/rules.lib.GNU: Moved the AIX shr.o-building stuff - out of the main path of the VSHLIB rule. Avoids bulding the shr.o - file with the SOVERSION suffix. Now the shr.o file is made without - decoration, inserted into the .a file, then deleted. The .a file - is correctly decorated and installed. - -Sun Nov 16 23:49:02 2003 Balachandran Natarajan - - * ace/INET_Addr.h: - - Fixed a typo in the interface documentation. - - * ace/SOCK_Dgram.cpp: - - In shared_open () used INADDR_ANY when calling bind_port () - instead of 0. - - * ace/Asynch_Acceptor.cpp: - - Modifies the call to bind_port in open () so that if the address - passed in is the any address, the protocol is passed to - bind_port so that when IPv6 is enabled, it will bind to the IPv6 - any address instead of the IPv4 one - - * ace/Sock_Connect.cpp: - - Modified bind_port () so that if the protocol specified is - PF_INET6 and the IP address is not INADDR_ANY, then the address - will be set to an IPv4-mapped IPv6 address before doing the - bind. - - Thanks to Brian Buesker for the - patches. - -Sun Nov 16 23:08:16 2003 Balachandran Natarajan - - * bin/footprint_stats.sh: - - Removed Smart_Proxies from the daily build since it made no - sense to have that. Added new libraries like the Valuetype that - we would like to track to the daily stats pages. - -Sun Nov 16 18:33:27 UTC 2003 Don Hinton - - * ace/Reactor.cpp: - Added #include Recursive_Thread_Mutex.h. - -Fri Nov 14 15:17:30 2003 Chris Cleeland - - * ace/INET_Addr.cpp (get_host_addr): Fixed these two methods so - that they work properly on vxworks. They used to work in 1.2a, - but those changes got lost during an IPv6 refactoring after the - release of DOC 1.2.1. This should close [RT 3183]. - - * tests/INET_Addr_Test.cpp: Added a test for the augmented - version of get_host_addr. - -Fri Nov 14 15:55:30 UTC 2003 Don Hinton - - * ace/os_include/sys/os_select.h: - Rolled back change from Thu Nov 13 23:22:21 UTC 2003 Don Hinton - which was incorrect. The - ACE_HAS_SELECT_H refers to . - -Fri Nov 14 10:50:33 UTC 2003 Johnny Willemsen - - * ace/OS_NS_sys_wait.inl: - Moved the wait method below the waitpid method. After searching for - hours for the internal compiler error MinGW has the solution was - to easy to think of. Because wait calls waitpid it must be below - waitpid in the inline file. This fixes the internal compiler - error in the MinGW build and restores the order of wait and waitpid - to the state before the ACE_OS split up. - -Fri Nov 14 00:42:22 UTC 2003 Don Hinton - - * tests/DLL_Test.cpp: - * tests/DLL_Test_Impl.cpp: - Test for !ACE_LACKS_RTTI to #ifdef away dynamic_cast test. Add - ACE_UNUSED_ARG around dll if ACE_LACKS_RTTI is defined to quash - unused arg warning. - -Thu Nov 13 23:22:21 UTC 2003 Don Hinton - - * ace/os_include/sys/os_select.h: - Added missing #include of select.h when ACE_HAS_SELECT_H is - defined. - - * tests/DLL_Test.cpp: - * tests/DLL_Test_Impl.cpp: - #ifdef away the dynamic_cast test if ACE_LACKS_RTTI is defined. - -Thu Nov 13 16:22:19 2003 Steve Huston - - * configure.ac: Make the check for sys/select.h set - ACE_LACKS_SYS_SELECT_H is _not_ found. Added a check of select.h - that sets ACE_HAS_SELECT_H. Changed further code tests that used - ACE_HAS_SELECT_H to include to use - ACE_LACKS_SYS_SELECT_H instead. - - * m4/config_h.m4: Added AH_TEMPLATE for ACE_LACKS_SYS_SELECT_H. - -Thu Nov 13 19:56:53 UTC 2003 Don Hinton - - * ASNMP/tests/Octet_Test.cpp: - Added #include OS_NS_string.h. - - Thanks to Olli Savia for the following fixes need to - compile ACE on LynxOS. - - * ace/Base_Thread_Adapter.cpp: - Added #include OS_NS_Thread.h if ACE_HAS_TSS_EMULATION is defined. - - * ace/OS_NS_stdlib.cpp: - Added #include OS_NS_stdio.h and OS_NS_sys_stat.h if - ACE_LAKCS_MKTEMP is defined. - - * ace/OS_NS_strings.cpp: - Added #include OS_NS_ctype.h if ACE_LACKS_STRCASECMP is defined. - - * ace/config-lynxos.h: - Added ACE_LACKS_WCHAR_H, ACE_LACKS_REGEX_H, and - ACE_LACKS_TCP_NODELAY. - -Thu Nov 13 12:54:35 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - When defining OBJS, always use $(notdir $(FILES)). - -Thu Nov 13 18:39:15 UTC 2003 Don Hinton - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: - * examples/C++NPv2/TPC_Logging_Server.cpp: - Added #include os_netdb.h to get MAXHOSTNAMELEN. - - * examples/IPC_SAP/SSL_SAP/SSL-client.h: - Fixed typo, missing "ace" in #include path. - - * examples/IPC_SAP/SSL_SAP/SSL-server.cpp: - Added #include OS_NS_select.h. - - * examples/OS/Process/process.cpp: - Added #include OS_NS_stdio.h. - - * examples/QOS/Diffserv/diffserv_test.cpp: - Added #include OS_NS_string.h. - -Thu Nov 13 12:13:28 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/Preprocessor.pm: - - Changed the behavior of the -n option to only exclude inline files - that are not included by the cpp file being processed. - -Thu Nov 13 17:37:04 UTC 2003 Don Hinton - - * ace/DEV_Addr.{cpp,i}: - Moved #include os_socket.h from .cpp to .i since it is needed - there, removed #include SString.h from .i and added - OS_NS_string.h and Global_Macros.h, then moved the #include's in - .cpp to below the #include of .i so that the inlined and - non-inlined builds would behave the same. - - * ace/SString.i: - Added #include ACE.h if not already included, e.g., when - ACE_TEMPLATES_REQUIRE_SOURCE isn't defined. - -Thu Nov 13 17:39:19 UTC 2003 Craig Rodrigues - - * ace/config-freebsd.h: - Remove #define ACE_SIZEOF_LONG_DOUBLE, since this value - is hardcoded for 32-bit platforms. Dan Eischen - reported that this caused the - Basic_Types_Test to fail on 64-bit FreeBSD platforms. - The correct value for this constant is defined later - on in Basic_Types.h by including . - -Thu Nov 13 11:27:23 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/depgen.pl: - - Added an option (-n) to produce dependencies with no inline files. - -Thu Nov 13 17:14:29 UTC 2003 Don Hinton - - * ace/config-WinCE.h: - Added #define ACE_LACKS_ERRNO_H and ACE_LACKS_TIME_H. - - * ace/config-all.h: - * ace/os_include/os_stddef.h: - Fixed typo's in rarely accessed #ifdef'd sections. - -Thu Nov 13 16:18:30 UTC 2003 Don Hinton - - * ace/Sock_Connect.cpp: - Added #include Guard_T.h and Recursive_Thread_Mutex.h when - ACE_HAS_IPV6 is defined. - -Thu Nov 13 16:10:54 UTC 2003 Don Hinton - - * apps/Gateway/Gateway/File_Parser.cpp: - Added #include OS_NS_stdlib.h to fix compile errors on HP. - - * examples/Connection/non_blocking/CPP-acceptor.h: - * examples/Connection/non_blocking/CPP-connector.h: - Added #include Signal.h to fix compile errors on HP. - -Thu Nov 13 16:11:07 UTC 2003 Don Hinton - - * ace/OS_TLI.h: - Fixed a typo by changing the test to determine whether or not to - include os_tcp.h and #undef TCP_NODELY and TCP_MAXSEG to avoid a - conflict with sys/xti.h from ACE_HAS_BROKEN_XTI_MACROS to - ACE_HAS_CONFLICTING_XTI_MACROS. This should fix compile - problems in HP. - - * ace/os_include/netinet/os_tcp.h: - Removed the ACE_HAS_CONFLICTING_XTI_MACROS test that #undef'd - TCP_NODELAY and TCP_MAXSEG. This only needs to be done prior to - including sys/xti.h. - -Thu Nov 13 04:26:17 UTC 2003 Don Hinton - - * include/makeinclude/rules.lib.GNU; - Added # -*- Makefile -*- at the top of the file so emacs will - highlight the syntax. - - * include/makeinclude/rules.local.GNU: - Added explicit shared library with version extension to the - deinstall.local target so that it will get cleaned up even if it - is only defined as SHLIB_UNCHECKED. - -Thu Nov 13 03:32:14 UTC 2003 Don Hinton - - * bin/MakeProjectCreator/templates/gnu.mpd: - Rolled back the part of Wed Nov 12 12:43:14 2003 Chad Elliott - that added a line to realclean to remove - the *_UNCHECKED files. This is unnecessary and doesn't work - with specialized targets, see Wed Nov 12 07:40:27 UTC 2003 Don - Hinton for details. - -Wed Nov 12 16:55:00 2003 Justin Michel - - * ace/NT_Service.h: - * ace/QoS/qos.mpc: - * bin/MakeProjectCreator/config/amh.mpb: - * bin/MakeProjectCreator/config/ami.mpb: - * bin/MakeProjectCreator/config/avstreams.mpb: - * bin/MakeProjectCreator/config/dseventlogadmin.mpb: - * bin/MakeProjectCreator/config/dsnotifylogadmin.mpb: - * bin/MakeProjectCreator/config/global.features: - * bin/MakeProjectCreator/config/mfc.mpb: - * bin/MakeProjectCreator/config/namingexe.mpb: - * bin/MakeProjectCreator/config/notification.mpb: - * bin/MakeProjectCreator/config/notifytest.mpb: - * bin/MakeProjectCreator/config/psdl.mpb: - * bin/MakeProjectCreator/config/qos.mpb: - * bin/MakeProjectCreator/config/rpc.mpb: - * bin/MakeProjectCreator/config/rt_client.mpb: - * bin/MakeProjectCreator/config/rt_server.mpb: - * bin/MakeProjectCreator/config/rteventexe.mpb: - * bin/MakeProjectCreator/config/rteventlogadmin.mpb: - * bin/MakeProjectCreator/config/smart_proxies.mpb: - * bin/MakeProjectCreator/config/ssliop.mpb: - * bin/MakeProjectCreator/config/taoclient.mpb: - * bin/MakeProjectCreator/config/wxwindows.mpb: - * examples/ConfigViewer/ConfigViewer.mpc: - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.mpc: - * examples/NT_Service/NT_Service.mpc: - * examples/QOS/Change_Receiver_FlowSpec/QOS_Change_Receiver_FlowSpec.mpc: - * examples/QOS/Change_Sender_TSpec/QOS_Change_Sender_FlowSpec.mpc: - * examples/QOS/Diffserv/QOS_Diffserv.mpc: - * examples/QOS/Simple/QOS_Simple.mpc: - * examples/RMCast/Send_File/RMCast_Send_File.mpc: - * examples/Timer_Queue/Timer_Queue.mpc: - * performance-tests/Misc/Misc.mpc: - * performance-tests/RPC/RPC.mpc: - * performance-tests/Server_Concurrency/Leader_Follower/Server_Concurrency_Leader_Follower.mpc: - * performance-tests/Server_Concurrency/Queue_Based_Workers/Server_Concurrency_Queue_Based_Workers.mpc: - * performance-tests/Synch-Benchmarks/Synch_Benchmarks.mpc: - * performance-tests/Synch-Benchmarks/Base_Test/Synch_Benchmarks_Base_Test.mpc: - * performance-tests/Synch-Benchmarks/Perf_Test/Synch_Benchmarks_Perf_Test.mpc: - * performance-tests/Synch-Benchmarks/Synch_Lib/Synch_Benchmarks_Synch_Lib.mpc: - * performance-tests/TCP/TCP.mpc: - * performance-tests/TTCP/ACE-C++/TTCP_ACE_C++.mpc: - * performance-tests/UDP/UDP.mpc: - - Imported many misc MPC file fixes from the OCI repository. - Imported new mpc and mpb files from the OCI repository. - Added missing #include to ace/NT_Service.h that was used by - macros defined in this file. - -Wed Nov 12 12:43:14 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added LIB_UNCHECKED and SHLIB_UNCHECKED. Added a line to the - realclean rule that removes BIN_UNCHECKED, LIB_UNCHECKED and - SHLIB_UNCHECKED. - -Wed Nov 12 11:21:55 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where relative definitions wouldn't be properly - processed on Windows depending on where mwc.pl was run. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a bug in a warning message. The wrong project name was - being displayed. - -Wed Nov 12 16:44:24 UTC 2003 Don Hinton " - - * ace/OS_NS_sys_time.inl: - Fixed typo. - -Wed Nov 12 15:42:31 UTC 2003 Don Hinton - - * ace/config-macosx.h: - Added #define ACE_LACKS_SEARCH_H. - - * ace/config-vxworks5.x.h: - Added #define ACE_LACKS_WCHAR_H and ACE_LACKS_PWD_H. - - * ace/OS_NS_unistd.inl: - Added #include OS_NS_stdio.h if ACE_LACKS_ACCESS is defined. - Added #include os_unistd.h if VXWORKS or ACE_HAS_WINCE is - define. - - * ace/OS_NS_sys_time.inl: - Added #include OS_NS_time.h if VXWORKS, CHORUS, or ACE_PSOS is - defined. - -Wed Nov 12 09:30:13 UTC 2003 Johnny Willemsen - - * ace/OS_NS_dirent.h: - Added ACE_Export to opendir_emulation - -Wed Nov 12 09:26:48 UTC 2003 Don Hinton - - * include/makeinclude/rules.local.GNU: - Use CLEAN_LIB and CLEAN_SHLIB for the deinstall.local target as - well. - -Wed Nov 12 08:44:54 UTC 2003 Don Hinton - - * performance-tests/SCTP/Makefile: - Moved the BIN variable up to top of file (above - rules.common.GNU), and removed rules.bin.GNU, since the targets - are explicitly defined. Otherwise nothing gets cleanup during - realclean. - -Wed Nov 12 07:40:27 UTC 2003 Don Hinton - - * include/makeinclude/rules.local.GNU: - Added CLEAN_BIN, CLEAN_LIB, CLEAN_SHLIB, and CLEAN_SHLIBA - variables that are assigned the values of BIN or BIN_UNCHECKED, - etc values. Changed the realclean target to use the CLEAN_* - variables instead of the BIN/BIN2, etc., variables. This will - insure that realclean removes these files even if the - ace_components files have already been removed. The *2 variety - were add by David Levine, Mon Apr 12 14:24:28 1999 David - L. Levine , but newer projects, especially - in TAO, have begun using the *_UNCHECKED naming scheme. Since - these files where often dependent on the ace_components files, - they never got cleaned up. This should also obviates the need - for the reverseclean target. - - * netsvcs/Makefile: - Removed ace_components test from around the DIRS variable. You - should always descend into the directories and give them the - opportunity to clean themselves up. - - * netsvcs/clients/Naming/Client/Makefile: - Added use of *_UNCHECKED variables so that these files will get - cleanup during a realclean. - - * tests/Makefile.tests: - Added Service_Config_Test and Framework_Component_Test to the - BIN2 variable if not being built so that they will always get - deleted during a realclean. - -Tue Nov 11 18:48:27 2003 Balachandran Natarajan - - * tests/Map_Manager_Test.cpp: - - Renamed the variable ENTRY to MAP_ENTRY since it was clashing - with system headers. - -Tue Nov 11 18:02:56 2003 Balachandran Natarajan - - * ace/TSS_T.cpp (ts_object): - - Added the change "Mon Nov 10 22:30:14 2003 Kobi Cohen-Arazi - " back into the repo. The actual problem lay - elsewhere. Please see below. - - - The double checked locking optimization in ts_init () was the - culprit. After grabbing the lock, if the check for null pointer - fails, meaning it was already allocated, just return 0 instead - of a -1. This should fix most of the runtime problems that we - saw in the builds today. - -Tue Nov 11 17:25:10 2003 Balachandran Natarajan - - * ace/TSS_T.cpp: - - Reverting the change "Mon Nov 10 22:30:14 2003 Kobi Cohen-Arazi - ". The change is so benign that the problem is - elsewhere. This change just triggered something else. Reverting - this since our daily builds can run properly. - -Tue Nov 11 12:20:14 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a bug in the implicitly generated dependencies where actual - inter-project dependencies would be abandoned in favor of - implicitly generated dependencies. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Make sure that PWD is set before it is used. - -Tue Nov 11 17:09:46 UTC 2003 Don Hinton - - * bin/fuzz.pl: - Added new check, check_for_makefile_variable, to verify that - MAKEFILE variable is correct and that Makefile's not named just - "Makefile" without an extension, have a MAKEFILE variable. Added - check for spaces around "=" to dependency file check. Added - makefiles to the ID check. - -Tue Nov 11 15:45:23 UTC 2003 Johnny Willemsen - - * ace/OS_NS_stdlib.inl: - Added #include of ace/os_include/os_search.h to get bsearch and other - search functions - - * ace/WFMO_Reactor.i: - Added #include of ace/Thread.h - -Tue Nov 11 15:13:36 UTC 2003 Don Hinton - - * examples/ASX/CCM_App/Makefile: - Added depend and realclean targets to force them to call - Makefile.CCM_App. Updated dependencies. - - * examples/ASX/CCM_App/Makefile.CCM_App: - Added MAKEFILE variable, and updated dependencies. - -Mon Nov 10 17:02:37 2003 Jeff Parsons - - * ace/CDR_Stream.i: - - Added cast to ACE_CDR::Boolean of return values where necessary in - extraction methods, similarly to what is already in insertion - methods. Thanks to Ted Mules for the - resulting warnings on MSVC at warning level 4. This closes - [BUGID:1632]. - -Mon Nov 10 16:43:19 2003 Steve Huston - - * ace/Acceptor.cpp: Add #include "ace/OS_NS_stdio.h" to get sprintf() - and "ace/OS_NS_string.h" to get strdup(). - - * ace/Svc_Conf_l.cpp: Add #include "ace/OS_NS_string.h" for strrchr(). - - * ace/Synch_Traits.h: Add #include "ace/config-all.h" to find the - template and threads config settings. - - * ace/RMCast/RMCast_UDP_Proxy.cpp: - * ace/RMCast/RMCast_IO_UDP.i: Added #include "ace/OS_Memory.h" to - get ACE_NEW_RETURN. - - * netsvcs/lib/Log_Message_Receiver.h: Add #include of either - "ace/Thread_Mutex.h" or "ace/Null_Mutex.h" for the ACE_Guard - template arg (ACE_SYNCH_MUTEX_T). - - * netsvcs/lib/TS_Clerk_Handler.h: Add #include - "ace/os_include/os_dirent.h" to get MAXNAMLEN. - - * netsvcs/lib/TS_Clerk_Handler.cpp: Add #include - "ace/OS_NS_string.h" to get strcat() and "ace/OS_NS_stdio.h" to - get sprintf(). - - * netsvcs/lib/Client_Logging_Handler.cpp: Add #include - "ace/OS_NS_stdio.h" to get ACE_OS::sprintf(). - - * netsvcs/lib/Name_Handler.cpp: Add #include "ace/OS_NS_string.h" to - get ACE_OS::strlen(). - - * netsvcs/clients/Naming/Client/Client_Test.cpp: Add #include - "ace/OS_NS_stdio.h" for ACE_OS::fgets(), "ace/OS_NS_unistd.h" - for ACE_OS::getpid(), "ace/OS_NS_string.h" for strtok(), and - "ace/os_include/os_ctype.h" for isupper()/tolower(). - - * netsvcs/client/Naming/Dump_Restore/Dump_Restore.cpp: Add #include - "ace/OS_NS_string.h", "ace/OS_NS_stdio.h", and "ace/OS_NS_unistd.h" - to get missing ACE_OS functions. - - * tests/Service_Config_DLL.cpp: Add #include "ace/OS_NS_string.h" and - "ace/OS_NS_stdio.h" to get missing ACE_OS functions. - -Mon Nov 10 22:30:14 2003 Kobi Cohen-Arazi - - * ace/TSS_T.cpp: - Fix ts_get and ts_object functions to check ts_init() return value, - and return 0 when ts_init failed. - -Mon Nov 10 20:15:46 UTC 2003 Don Hinton - - * ace/SV_Message_Queue.i: - Added struct to msqid_ds* cast to try to get around compile - error on MacOSX. - - * ace/Semaphore.cpp: - Added #include ACE.h. - - * ace/config-macosx.h: - Added ACE_LACKS_POLL_H. - -Mon Nov 10 16:37:43 UTC 2003 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/Removals.cpp: - Added #include ace/Event.h to get ACE_Event - -Mon Nov 10 04:37:46 UTC 2003 Don Hinton - - * bin/fuzz.pl: - Added mpb and mpt to the MPC files to check for Id. - - * ACEXML/apps/svcconf/svcconf.mpc: - * ACEXML/common/common.mpc: - * ACEXML/examples/SAXPrint/SAXPrint.mpc: - * ACEXML/parser/parser/parser.mpc: - * ACEXML/tests/tests.mpc: - * Kokyu/Kokyu.mpc: - * Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc: - * Kokyu/tests/EDF/EDF.mpc: - * Kokyu/tests/FIFO/FIFO.mpc: - * ace/ace.mwc: - * ace/QoS/qos.mpc: - * ace/RMCast/rmcast.mpc: - * ace/SSL/ssl.mpc: - * tests/tests.mpc: - * tests/tests.mwc: - * tests/RMCast/acetest.mpb: - * tests/RMCast/tests.mpc: - * tests/SSL/acetest.mpb: - * tests/SSL/tests.mpc: - Fixed FUZZ errors. - -Mon Nov 10 03:56:03 UTC 2003 Don Hinton - - * examples/NT_Service/main.cpp: - * examples/Registry/test_registry_iterator.cpp: - * examples/Registry/test_registry_update.cpp: - Fixed FUZZ errors. - - * examples/NT_Service/main.cpp: - Added #include OS_NS_errno.h. - - * ace/NT_Service.h: - * ace/WFMO_Reactor.h: - Removed #include Synch.h. - - * ace/WFMO_Reactor.cpp: - Added #include Null_Condition.h. - - * ace/WFMO_Reactor.h: - Added #include Auto_Event.h, Manual_Event.h, - Condition_Thread_Mutexc.h, and Lock_Adapter_T.h. - -Mon Nov 10 02:44:59 UTC 2003 Don Hinton - - * ace/IOStream.h: - Readded streams.h needed on Windows. Fixed Fuzz error. - -Mon Nov 10 02:44:59 UTC 2003 Don Hinton - - * ACE.mwc: - * vc7_nightly.mwc: - * ACEXML/ACEXML.mwc: - * ACEXML/apps/apps.mwc: - * ACEXML/examples/examples.mwc: - * ACEXML/parser/parser.mwc: - * ASNMP/examples/examples.mwc: - * Kokyu/tests/tests.mwc: - * apps/Gateway/Gateway.mwc: - * apps/JAWS/JAWS.mwc: - * apps/JAWS/clients/clients.mwc: - * apps/JAWS2/JAWS2.mwc: - * apps/gperf/gperf.mwc: - * examples/ASX/ASX.mwc: - * examples/Connection/Connection.mwc: - * examples/IOStream/IOStream.mwc: - * examples/IPC_SAP/IPC_SAP.mwc: - * examples/Logger/Logger.mwc: - * examples/Mem_Map/Mem_Map.mwc: - * examples/OS/OS.mwc: - * examples/RMCast/RMCast.mwc: - * examples/Reactor/Reactor.mwc: - * examples/Service_Configurator/Service_Configurator.mwc: - * examples/System_V_IPC/System_V_IPC.mwc: - * netsvcs/netsvcs.mwc: - * netsvcs/clients/clients.mwc: - * netsvcs/clients/Naming/Naming.mwc: - * websvcs/websvcs.mwc: - Removed these files from the repo. Most, if not all, of these - files were added to force MPC to create a makefile. MPC has - since been fixed to allow this via the -hierarchy flag. - -Mon Nov 10 01:58:00 UTC 2003 Don Hinton - - * 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/test_config.h: - * ace/Basic_Types.cpp: - * ace/Log_Msg.cpp: - * ace/Log_Record.cpp: - * ace/Logging_Strategy.cpp: - * ace/OS.cpp: - * ace/SString.cpp: - * ace/Token.cpp: - * ace/iosfwd.h: - * apps/JAWS2/JAWS/Cache_Manager_T.cpp: - * apps/mkcsregdb/mkcsregdb.cpp: - * apps/soreduce/Library.h: - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv1/Logging_Handler.cpp: - * examples/C++NPv2/Logging_Handler.cpp: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/Log_Msg/test_log_msg.cpp: - * examples/Log_Msg/test_ostream.cpp: - * examples/Logger/Acceptor-server/server_loggerd.cpp: - * examples/Reactor/Misc/test_time_value.cpp: - * examples/Reactor/Proactor/test_proactor2.cpp: - * examples/Reactor/Proactor/test_proactor3.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp: - * examples/Threads/task_three.cpp: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - * performance-tests/SCTP/Options_Manager.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp,: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_srv.cpp: - * tests/CDR_File_Test.cpp: - * tests/Log_Msg_Test.cpp: - * tests/Test_Output.cpp: - Fixed FUZZ errors. - - * ace/IOStream.h: - * apps/JAWS/clients/Caching/test_URL.cpp: - * apps/JAWS2/HTTP_10_Parse.cpp - * apps/soreduce/Library.cpp: - * examples/Reactor/Ntalker/ntalker.cpp: - * examples/Reactor/Proactor/test_cancel.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - * tests/Max_Default_Port_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/TP_Reactor_Test.cpp: - Removed #include streams.h. - - * ace/RMCast/RMCast_Fragment.h: - * ace/RMCast/RMCast_IO_UDP.h: - * ace/RMCast/RMCast_Retransmission.h: - * tests/Lazy_Map_Manager_Test.cpp: - Removed #include Synch.h. - - * ace/Object_Manager.h: - * ace/Svc_Conf_l.cpp: - Removed temporary fix in Object_Manager.h, removed #include of - Object_Manager.h from Svc_Conf_l.cpp, and added #include - Recursive_Thread_Mutex.h, OS_NS_stdio.h, and OS_NS_ctype.h. - - * apps/JAWS/clients/Blobby/Makefile: - * apps/JAWS/clients/Caching/Makefile: - * apps/JAWS/server/Makefile: - * apps/soreduce/Makefile: - Updated dependencies. - - * bin/fuzz.pl: - Fixed typo, should be mwc, not mpw as one of MPC type files. - -Sun Nov 9 20:53:07 UTC 2003 Don Hinton - - * docs/tutorials/002/server.cpp: - * docs/tutorials/005/server.cpp: - * docs/tutorials/006/server.cpp: - * docs/tutorials/007/server.cpp: - * docs/tutorials/022/server.cpp: - Added #include Signal.h. - - * docs/tutorials/003/client.cpp: - Added #include OS_NS_string.h and OS_NS_stdio.h. - - * docs/tutorials/004/client.cpp: - * docs/tutorials/019/shmem.cpp: - * docs/tutorials/020/mmap.cpp: - Added #include OS_NS_stdio.h. - - * docs/tutorials/008/broadcast_client.cpp: - * docs/tutorials/008/directed_client.cpp: - * docs/tutorials/008/server.cpp: - * docs/tutorials/009/server.cpp: - * docs/tutorials/015/Protocol_Stream.cpp: - * docs/tutorials/015/Xmit.cpp: - * docs/tutorials/015/ZlibCompressor.cpp: - * docs/tutorials/015/client.cpp: - Added #include OS_NS_string, and ACE_OS to some memcpy methods, - etc... - - * docs/tutorials/007/thread_pool.h: - Added #include Mutex.h. - - * docs/tutorials/009/broadcast_client.cpp: - * docs/tutorials/009/directed_client.cpp: - Added #include OS_NS_string.h and Time_Value.h. - - * docs/tutorials/010/message_queue.cpp: - * docs/tutorials/010/task.cpp: - * docs/tutorials/011/task.cpp: - * docs/tutorials/016/condition.cpp: - * docs/tutorials/019/server.cpp: - * docs/tutorials/019/server2.cpp: - * docs/tutorials/019/shmem.cpp: - * docs/tutorials/020/mmap.cpp: - * docs/tutorials/020/server.cpp: - * docs/tutorials/020/server2.cpp: - Added #include OS_NS_unistd.h. - - * docs/tutorials/010/task.h: - * docs/tutorials/011/task.h: - * docs/tutorials/012/task.h: - * docs/tutorials/013/task.cpp: - * docs/tutorials/017/Barrier_i.cpp: - Added #include Barrier.h. - - * docs/tutorials/011/message_queue.cpp: - * docs/tutorials/012/message_queue.cpp: - * docs/tutorials/012/task.cpp - Added #include OS_NS_unistd.h and OS_NS_string.h. Added - ACE_OS:: to several strlen methods, etc... - - * docs/tutorials/013/block.h: - Removed #include Synch.h and added #include Lock_Adapter_T.h and - Mutex.h. - - * docs/tutorials/013/mld.h: - * docs/tutorials/017/Barrier_i.h: - Removed #include of Synch.h and added Mutex.h. - - * docs/tutorials/013/task.h: - * docs/tutorials/017/Barrier_i.h: - Added forward declaration of ACE_Barrier. - - * docs/tutorials/013/work.h: - Removed #include Synch.h. - - * docs/tutorials/015/Makefile.client: - * docs/tutorials/015/Makefile.server: - Removed CompressionSocket from FILES and added -lz to LDLIBS. - - * docs/tutorials/016/Condition_i.h: - Removed #include Synch.h and added Thread_Mutex.h, - Condition_Thread_Mutex.h, and Guard_T.h. - - * docs/tutorials/018/Test_T.h: - Added Barrier.h and Mutex.h. - - * docs/tutorials/019/client.cpp: - * docs/tutorials/020/client.cpp: - Added #include os_ctype.h. - - * docs/tutorials/022/Makefile: - Added -I../005 to CPPFLAGS since this tutorial needs to find - client_handler from tutorial 005. - -Sun Nov 9 16:32:28 UTC 2003 Don Hinton - - * bin/fuzz.pl: - Added line feed for dependency check output to make it easier to - read. - -Sun Nov 9 13:27:12 UTC 2003 Johnny Willemsen - - * ace/config-win32-borland.h: - Added ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION - -Sun Nov 9 13:14:12 UTC 2003 Johnny Willemsen - - * ace/Makefile.bor: - Added OS_main - -Sun Nov 9 00:01:22 2003 Balachandran Natarajan - - * bin/fuzz.pl: - - Fixed a typo. "streams" was spelt as "steams". - -Sun Nov 9 04:37:29 UTC 2003 Don Hinton - - * bin/fuzz.pl: - - Removed STDERR from print statements for new checks. They - didn't work well and got the messages out of order. Thanks to - Bala for motivating this. - -Sat Nov 8 22:11:23 2003 Balachandran Natarajan - - * tests/TkReactor_Test.cpp: - - Fixed a compile error by removing cerr. - -Sun Nov 9 04:08:16 UTC 2003 Don Hinton - - * bin/fuzz.pl: - Added extra line feed to the file checks to make them more - readable. Fixed synch check to only pick up Synch.h and - Synch_T.h. - - * */Makefile*: - Updated dependencies. - - * ACEXML/apps/svcconf/Makefile.ACEXML_XML_Svc_Conf_Parser: - * ACEXML/common/Makefile.ACEXML: - * ACEXML/examples/SAXPrint/Makefile.SAXPrint: - * ACEXML/parser/parser/Makefile.ACEXML_Parser: - * ACEXML/tests/Makefile.ContentHandler_Test: - * ACEXML/tests/Makefile.HttpCharStream_Test: - * ACEXML/tests/Makefile.NamespaceSupport_Test: - * ACEXML/tests/Makefile.Transcoder_Test: - Removed DEPENDENCY_FILE variable and updated dependencies. - - * tests/Makefile.libs: - Added depend target to get the other makefiles to update depends. - - * tests/Makefile.Service_Config_DLL: - * tests/Makefile.DLL_Test: - * tests/Makefile.Framework_Component_DLL: - * tests/Makefile.Test_Output: - Added MAKEFILE variable so depend would update dependencies, - then updated them. - - * ace/Synch.cpp: - * ace/Synch.h: - * ace/Synch_T.cpp: - * ace/Synch_T.h: - Added FUZZ: disable check_for_synch_include. - - * apps/JAWS2/HTTP_10_Request.cpp: - Added #include OS_NS_pwd.h. - - * apps/JAWS2/JAWS/Headers.cpp: - * apps/JAWS2/JAWS/Parse_Headers.cpp: - * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp: - * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp: - Added #include OS_NS_string.h. - - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.h: - Added #include Barrier.h. - - * examples/Reactor/Proactor/test_aiocb_ace.cpp: - Added #include os_aio.h and OS_NS_string.h. - - * examples/Reactor/Proactor/test_aiosig_ace.cpp: - Added #include os_aio.h, OS_SN_signal.h, OS_NS_unistd.h, - OS_NS_fcntl.h, Asynch_IO.h. - - * ACEXML/common/Mem_Map_Stream.h: - * Kokyu/Dispatcher_Task.cpp: - * Kokyu/tests/DSRT_MIF/MIF.cpp: - * ace/FlReactor.cpp: - * ace/Malloc_Allocator.h: - * ace/PI_Malloc.cpp: - * ace/Sock_Connect.cpp: - * ace/TkReactor.cpp: - * ace/XtReactor.cpp: - * ace/CLASSIX/CLASSIX_CO_Acceptor.cpp: - * ace/CLASSIX/CLASSIX_Port_Core.cpp: - * ace/SSL/SSL_Context.cpp: - * ace/SSL/SSL_SOCK_Connector.cpp: - * apps/Gateway/Gateway/Options.h: - * apps/JAWS/clients/Caching/ID_Generator.h: - * apps/JAWS/server/JAWS_Concurrency.h: - * apps/JAWS/server/JAWS_Pipeline.h: - * apps/JAWS2/JAWS/Cache_Manager_T.h: - * apps/JAWS2/JAWS/Concurrency.h: - * apps/JAWS2/JAWS/Pipeline.h: - * apps/JAWS2/JAWS/Reaper.h: - * apps/JAWS3/jaws3/Concurrency.cpp: - * apps/JAWS3/jaws3/Concurrency_T.cpp: - * apps/JAWS3/jaws3/FILE.cpp: - * apps/JAWS3/jaws3-todo/Reactive_Socket.cpp: - * examples/ASX/CCM_App/SC_Server.cpp: - * examples/ASX/Event_Server/Event_Server/Event_Analyzer.h: - * examples/ASX/Event_Server/Event_Server/Options.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.h: - * examples/ASX/Message_Queue/buffer_stream.cpp: - * examples/ASX/UPIPE_Event_Server/Event_Analyzer.h: - * examples/ASX/UPIPE_Event_Server/Options.cpp: - * examples/Bounded_Packet_Relay/BPR_Drivers.h: - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: - * examples/C++NPv2/TP_Logging_Server.h: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - * examples/Connection/misc/Connection_Handler.h: - * examples/Connection/misc/test_upipe.h: - * examples/IOStream/server/iostream_server.h: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp: - * examples/Logger/Acceptor-server/server_loggerd.h: - * examples/NT_Service/ntsvc.h: - * examples/QOS/Simple/Fill_ACE_QoS.h: - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Misc/test_reactors.cpp: - * examples/Reactor/Proactor/post_completions.cpp: - * examples/Reactor/Proactor/test_end_event_loop.cpp: - * examples/Reactor/Proactor/test_multiple_loops.cpp: - * examples/Reactor/Proactor/test_timeout.cpp: - * examples/Reactor/WFMO_Reactor/Removals.cpp: - * examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp: - * examples/Reactor/WFMO_Reactor/Talker.cpp: - * examples/Shared_Malloc/test_multiple_mallocs.cpp: - * examples/Shared_Malloc/test_position_independent_malloc.cpp: - * examples/Synch/proc_sema.cpp: - * examples/Threads/TSS_Obj.h: - * examples/Threads/TSS_Task.h: - * examples/Threads/recursive_mutex.cpp: - * examples/Threads/task_two.cpp: - * examples/Threads/tss1.cpp: - * examples/Web_Crawler/Mem_Map_Stream.h: - * examples/Web_Crawler/URL_Visitor.h: - * netsvcs/lib/Client_Logging_Handler.h: - * netsvcs/lib/Log_Message_Receiver.cpp: - * netsvcs/lib/Server_Logging_Handler.cpp: - * netsvcs/lib/Server_Logging_Handler_T.h: - * performance-tests/Misc/test_guard.cpp: - * performance-tests/Misc/test_singleton.h: - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h: - * performance-tests/Synch-Benchmarks/synch_driver.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/base_test.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/mutex_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/adaptive_mutex_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/adaptive_recursive_lock_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/adaptive_sema_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/condb_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/conds_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/context_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/memory_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/mutex_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/recursive_lock_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/rwrd_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/rwwr_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/sema_test.cpp: - * performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.h: - * tests/Buffer_Stream_Test.cpp: - * tests/Cache_Map_Manager_Test.cpp: - * tests/Cached_Accept_Conn_Test.h: - * tests/Cached_Conn_Test.h: - * tests/Framework_Component_DLL.h: - * tests/Future_Set_Test.cpp: - * tests/Future_Test.cpp: - * tests/Lazy_Map_Manager_Test.cpp: - * tests/MT_Reactor_Timer_Test.h: - * tests/Map_Manager_Test.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/Reactor_Performance_Test.h: - * tests/Reactors_Test.cpp: - * tests/Reader_Writer_Test.cpp: - * tests/Recursive_Condition_Test.cpp: - * tests/Recursive_Mutex_Test.cpp: - * tests/Refcounted_Auto_Ptr_Test.cpp: - * tests/Svc_Handler_Test.cpp: - * tests/TP_Reactor_Test.h: - * tests/Test_Output.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.h: - * tests/Thread_Pool_Reactor_Test.h: - * tests/CLASSIX/CLASSIX_Con_Acc_Test.h: - * tests/CLASSIX/CLASSIX_Notify_Test.cpp: - * tests/SSL/Thread_Pool_Reactor_SSL_Test.h: - Removed #include Synch*.h and added need synch includes (most. - almost all, files required no additional includes). - -Sun Nov 9 00:25:57 UTC 2003 Craig Rodrigues - - * ace/QoS/QoS_Session_Impl.cpp: Add include of OS_NS_arpa_inet.h - to unbreak build. - -Sat Nov 8 20:54:53 UTC 2003 Don Hinton - - * bin/fuzz.pl: - Added the following new fuzz checks: - - check_for_dependency_file: Checks to see if the Makefile uses - the DEPENDENCY_FILE variable. If it does, check to see if the - dependency file is in cvs. If not, flag it as an error, since - the realclean target needs the dependencies to properly - function. - - check_for_streams_include: Checks to see if ace/streams.h has - been included since this is an expensive and often unneeded file. - - check_for_OS_h_include: Checks to see if ace/OS.h has been - included. This files is maintained for backward - compatibility but should not be included within ACE+TAO since - it is expensive and often unneeded--include the OS_NS*.h files - instead. - - check_for_synch_include: Checks to see if ace/Synch.h or - ace/Synch_T.h have been included. These files are maintained - for backward compatibility but should not be included within - ACE+TAO since they are expensive and often unneeded--include - the specific synch file instead, e.g., ace/Null_Mutex.h. - - Added the *.mpc and *.mwc files to the check_for_id_string - test. - -Sat Nov 8 04:52:30 UTC 2003 Don Hinton - - * apps/soreduce/Library.h: - Added #include streams.h - -Sat Nov 8 04:11:17 UTC 2003 Don Hinton - - * ace/OS_main.h - * ace/OS_main.cpp: - Fixed last checkin on Windows and WINCE. This involved adding a - pure virtual method and implementing it in a derived class in - the macro and having it call the users entry point on Windows. - Otherwise the ACE dll complained about unresolved externals when - linking. - -Fri Nov 7 23:29:02 UTC 2003 Don Hinton - - * ace/OS_main.h - * ace/OS_main.cpp: - Added class to get around problems on Windows. This is a - first cut. If it works out, I'll clean it up. - -2003-11-07 Emre Turkay - - * ace/config-win32-msvc.h: - Added QT_DLL definition. - -Fri Nov 7 21:09:01 UTC 2003 Don Hinton - - * ace/Makefile.ace: - * ace/ace.mpc: - * ace/OS.cpp: - * ace/OS_main.h - * ace/OS_main.cpp: - Added new file, OS_main.cpp, and restructured the "main" macros - to call real functions the now live in OS_main.cpp. Added - OS_main.cpp to the makefiles and OS.cpp. - -Fri Nov 7 15:21:49 2003 Steve Huston - - * ace/Connector.cpp: Added #include "ace/os_include/os_fcntl.h" to - get ACE_NONBLOCK, "ace/OS_NS_stdio.h" to get ACE_OS::sprintf(), and - "ace/OS_NS_string.h" to get ACE_OS::strdup(). - - * ace/Service_Config.h: - * ACEXML/common/URL_Addr.h: Added #include "ace/Default_Constants.h" to - see ACE_DEFAULT_SERVICE_REPOSITORY_SIZE. - - * ace/Codeset_Registry.cpp: - * ace/Local_Name_Space.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Module.i: - * ace/Name_Space.cpp: - * ace/Naming_Context.cpp: - * ace/Obstack_T.cpp: - * ace/Parse_Node.cpp: - * ace/Remote_Name_Space.cpp: - * ace/Service_Config.i: - * ace/Service_Manager.cpp: - * ace/Service_Types.cpp: - * ace/Stream.cpp: - * ace/Svc_Conf_y.cpp: - * ace/UUID.cpp: - * ace/RMCast/RMCast_Partial_Message.cpp: - * ACEXML/common/AttributesImpl.i: - * ACEXML/common/Encoding.cpp: - * ACEXML/common/Exception.cpp: - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/NamespaceSupport.cpp: - * ACEXML/common/SAXExceptions.cpp: - * ACEXML/common/StrCharStream.cpp: - * ACEXML/common/StreamFactory.cpp: - * ACEXML/common/Transcode.cpp: - * ACEXML/common/URL_Addr.{inl cpp}: - * ACEXML/common/XML_Codecs.cpp: - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/tests/ContentHandler_Test.cpp: - * ACEXML/tests/Transcorder_Test.cpp: Add #include "ace/OS_NS_string.h" - to see ACE_OS::strcmp() and friends. - - * ace/RMCast/RMCast_Reordering.cpp: Added #include "ace/Guard_T.h" to - see ACE_Guard. - - * ACEXML/tests/HttpCharStream_Test.cpp: - Added #include "ace/OS_NS_stdio.h" to get ACE_OS::printf(). - -Fri Nov 7 11:21:57 2003 Balachandran Natarajan - - * ace/CDR_Stream.cpp: - - Fixed a typo in the comments. - - * ace/Message_Block.cpp: - - Removed unnecessary lines. - -Fri Nov 7 17:11:15 UTC 2003 Don Hinton - - * ace/Dev_Poll_Reactor.cpp: - Added #include of os_poll.h and OS_NS_sys_mman.h. - - * ace/OS_NS_string.inl: - Added #include of os_string.h. - - * ace/OS_NS_wchar.{h,inl}: - Added #ifdef ACE_HAS_WCHAR around fgetwc() declaration as well - as some cosmetic changes, #ifdef indentation. - -Fri Nov 7 11:28:39 2003 Steve Huston - - * tests/Vector_Test.cpp: Added tests of the equality and inequality - operators. - -Fri Nov 7 06:50:49 UTC 2003 Don Hinton - - * Kokyu/Makefile.Kokyu: - * ace/Makefile.ace: - * ace/RMCast/Makefile: - * apps/Gateway/Gateway/Makefile: - * apps/Gateway/Peer/Makefile: - * apps/drwho/Makefile: - * apps/gperf/src/Makefile: - * apps/gperf/tests/Makefile: - * examples/ASX/CCM_App/Makefile: - * examples/ASX/Event_Server/Event_Server/Makefile: - * examples/ASX/Event_Server/Transceiver/Makefile: - * examples/ASX/Message_Queue/Makefile: - * examples/ASX/UPIPE_Event_Server/Makefile: - * examples/C++NPv1/Makefile: - * examples/Connection/misc/Makefile: - * examples/Connection/non_blocking/Makefile: - * examples/IOStream/client/Makefile: - * examples/IOStream/server/Makefile: - * examples/IPC_SAP/DEV_SAP/reader/Makefile: - * examples/IPC_SAP/DEV_SAP/writer/Makefile: - * examples/IPC_SAP/FIFO_SAP/Makefile: - * examples/IPC_SAP/FILE_SAP/Makefile: - * examples/IPC_SAP/SOCK_SAP/Makefile: - * examples/IPC_SAP/SPIPE_SAP/Makefile: - * examples/IPC_SAP/TLI_SAP/Makefile: - * examples/IPC_SAP/UPIPE_SAP/Makefile: - * examples/Log_Msg/Makefile: - * examples/Logger/Acceptor-server/Makefile: - * examples/Logger/client/Makefile: - * examples/Logger/simple-server/Makefile: - * examples/Map_Manager/Makefile: - * examples/Mem_Map/IO-tests/Makefile: - * examples/Mem_Map/file-reverse/Makefile: - * examples/Misc/Makefile: - * examples/Naming/Makefile: - * examples/RMCast/Send_File/Makefile: - * examples/Reactor/Dgram/Makefile: - * examples/Reactor/FIFO/Makefile: - * examples/Reactor/Misc/Makefile: - * examples/Reactor/Multicast/Makefile: - * examples/Reactor/Ntalker/Makefile: - * examples/Service_Configurator/IPC-tests/client/Makefile: - * examples/Service_Configurator/IPC-tests/server/Makefile: - * examples/Shared_Malloc/Makefile: - * examples/Shared_Memory/Makefile: - * examples/Synch/Makefile: - * examples/System_V_IPC/SV_Message_Queues/Makefile: - * examples/System_V_IPC/SV_Semaphores/Makefile: - * examples/System_V_IPC/SV_Shared_Memory/Makefile: - * examples/Threads/Makefile: - * examples/Timer_Queue/Makefile: - * netsvcs/clients/Logger/Makefile: - * netsvcs/clients/Naming/Client/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile: - * netsvcs/clients/Tokens/collection/Makefile: - * netsvcs/clients/Tokens/deadlock/Makefile: - * netsvcs/clients/Tokens/invariant/Makefile: - * netsvcs/clients/Tokens/mutex/Makefile: - * netsvcs/clients/Tokens/rw_lock/Makefile: - * netsvcs/lib/Makefile: - * netsvcs/servers/Makefile: - * performance-tests/Misc/Makefile: - * performance-tests/SCTP/Makefile: - * performance-tests/Server_Concurrency/Leader_Follower/Makefile: - * performance-tests/Server_Concurrency/Queue_Based_Workers/Makefile: - * performance-tests/TCP/Makefile: - * performance-tests/UDP/Makefile: - * tests/Makefile.tests: - * tests/RMCast/Makefile: - * websvcs/lib/Makefile: - * websvcs/tests/Makefile: - Updated dependencies. - -Fri Nov 7 02:08:17 UTC 2003 Don Hinton - - * ace/SOCK_Dgram.i: - Use ACE_reinterpret_cast instead of a raw "C" style cast. Gets - rid of a warning on HPUX. - -Fri Nov 7 00:51:59 UTC 2003 Don Hinton - - * ace/INET_Addr.cpp: - Added #ifdef around IPV6 specific code to remove errors on - platforms where AV_INET6 is not defined. Changed and instance - of ACE_OS_String to ACE_OS. - - * ace/Sock_Connect.cpp: - Added #ifdef around IPV6 specific code to remove errors on - platforms where AV_INET6 is not defined. - - * ace/os_include/sys/os_resource.h: - Added #includes of sys/syscall.h and sys/systemino.h if - ACE_HAS_SYSCALL_H and ACE_HAS_SYSINFO are defined respectively. - This should clear up errors on HPUX. - - * examples/IOStream/server/iostream_server.cpp: - Added #include of Signal.h. - -Thu Nov 6 17:04:22 2003 Balachandran Natarajan - - * ace/INET_Addr.cpp (set_address): - - Applied patches from Bryan Buesker which basically just changes - the semantics of ACE_INET_Addr::set_address when map is set to - 1. Previously, if map was non-zero, len was 4, and the type was - already set to AF_INET for the ACE_INET_Addr, then the address - would not be set to an IPv4-mapped IPv6 address. It is probably - more desirable for the map argument to force the address to be - an IPv4 mapped IPv6 address in this case (regardless of the - current type of the address). - -Thu Nov 6 17:57:10 UTC 2003 Don Hinton - - * ace/OS_Log_Msg_Attributes.h: - * ace/Basic_Types.h: - Moved #include config-all.h outside header guard to avoid circular - include problem due to including OS_main.h in config-all.h on - Windows. - - * ace/Base_Thread_Adapter.h: - * ace/Cleanup.h: - * ace/Global_Macros.h: - * ace/OS_Dirent.h: - * ace/OS_Errno.h: - * ace/OS_Log_Msg_Attributes.h: - * ace/OS_Memory.h: - * ace/OS_NS_Thread.h: - * ace/OS_QoS.h: - * ace/OS_String.h: - * ace/OS_Thread_Adapter.h: - * ace/Object_Manager_Base.h: - * ace/Thread_Hook.h: - * ace/Time_Value.h: - * ace/os_include/os_pthread.h: - Changed the rest of the #include OS_Export.h to ACE_export.h and - ACE_OS_Export to ACE_Export. - -Thu Nov 6 17:53:35 UTC 2003 Don Hinton - - * ace/INET_Addr.{h,i} (set_addr): - Removed the default parameter for map and added back the - original set_addr method that matches the one in ACE_Addr, and - have it call the new method with the default value under the - covers. This silences warnings about hidden methods. - -Thu Nov 6 16:40:35 UTC 2003 Don Hinton - - * ACEXML/common/FileCharStream.h: - * ACEXML/common/HttpCharStream.h: - * apps/soreduce/Library.h: - Removed #include of streams.h. - - * ace/ACE_export.h: - Moved the #include of config-all.h up and outside the - ACE_EXPORT_H include guard to avoid circular include problems on - Windows caused by including OS_main.h in config-all.h to pick up - the main macros. OS_main.h includes Object_Manager.h. - -Thu Nov 6 10:12:50 2003 Balachandran Natarajan - - * ace/INET_Addr.cpp: - - Added patch from Bryan Bruesker to use ACE_OS::if_nametoindex () - instead of plain if_nametoindex (). - -Thu Nov 6 09:50:34 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - - Added information about generating GNUACE projects that will only - build static libraries. - -Thu Nov 6 12:46:12 UTC 2003 Johnny Willemsen - - * ace/RMCast/RMCast.rc: - Added resource file for the RMCast library. Thanks to - Andrew L. Shwaika for supplying this. - -Thu Nov 6 10:20:23 UTC 2003 Johnny Willemsen - - * apps/JAWS/server/HTTP_Server.cpp: - Added include of Signal.h. - -Thu Nov 6 07:57:43 UTC 2003 Johnny Willemsen - - * ace/Static_Object_Lock.h: - Corrected pre.h to post.h - -Thu Nov 6 07:37:13 UTC 2003 Johnny Willemsen - - * ASNMP/asnmp/smival.h: - * ASNMP/agent/agent_impl.cpp: - Added os_include/os_stddef.h to get size_t - -Thu Nov 6 07:31:12 UTC 2003 Johnny Willemsen - - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/Connection/blocking/SPIPE-connector.h: - Added include of Signal.h. - -Thu Nov 6 04:53:54 UTC 2003 Don Hinton - - * ace/OS_NS_dlfcn.inl: - Removed ACE_OS from strerror call in an HP #ifdef that I had - erroneously added during subsetting--it was obviously like that - for a reason... - - * ace/OS_TLI.h: - Add #include of os_tcp.h before #include of sys/xti.h if - ACE_HAS_BROKEN_XTI_MACROS is defined. This error arose due to - the different order of includes after subsetting. - - * ace/SString.h: - Changed #include streams.h to iosfwd.h. Due to the change in - the order of includes, we are now getting errors on SuSE due to - ceil and floor already being declared. This is not a final fix, - but is necessary to keep the stats builds running. - -Wed Nov 5 19:02:51 2003 Balachandran Natarajan - - * ace/CDR_Stream.cpp (clone_from): - - Fixed an alignment problem under the following conditions - - - The incoming CDR buffer has a message of size exactly 1024 - bytes. - - - The data block within the message block in the destination CDR - is not aligned on an 8 byte boundary. - - This lead to improper copying. The problem was that the call - clone () on the source data block returned exactly 1024 bytes - and in addition could potentially (which is the destination) - could be aligned on a 4 byte boundary. This made the destination - buffer to get aligned on a 8 byte boundary and lose 4 bytes of - space which lead to improper copying of the source - buffer. Thanks to Jian Chen for reporting - the problem. - - The above problem now been fixed by doing an additional size - increment on the cloned datablock. We have also added a small - optimization. We don't always clone the data block. We do it only - if the size of the source buffer is larger than the size of the - destination buffer. This should lead to a small increase in - performance since we are avoiding an allocation along the - critical path. - - I haven't received a response yet from Jian on whether this - patch solves his problem. But I am positive that this would - help. - -Wed Nov 5 18:52:01 2003 Balachandran Natarajan - - * ace/OS_NS_sys_socket.h: - - #include'd os_include/net/os_if.h to get the definitions of - if_nametoindex () if_indextoname () etc. - -Wed Nov 5 23:45:09 UTC 2003 Don Hinton - - * ace/OS_NS_sys_socket.inl: - Fixed FUZZ error. - -Wed Nov 5 18:16:40 2003 Steve Huston - - * ace/ARGV.i: Added #include "ace/Global_Macros.h" to find ACE_TRACE. - - * ace/Global_Macros.h: Added #include "ace/OS_Errno.h" near the - ACE_ALLOCATOR* and ACE_NEW* macros to see errno and ENOMEM. - - * ace/ACE.cpp: Added #include "ace/OS_NS_string.h" to find - ACE_OS::strlen(). - - * ace/Capabilities.cpp: Added #include "ace/os_includes/os_ctype.h" - to get isdigit(), "ace/OS_Memory.h" to get ACE_NEW_RETURN, and - "ace/OS_NS_string.h" to get ACE_OS::strcmp(). - - * ace/Configuration.cpp: - * ace/Configuration_Import_Export.cpp: - * ace/DLL_Manager.cpp: - * ace/Filecache.cpp: - * ace/Get_Opt.cpp: - * ace/Process.{cpp i} - * ace/SString.cpp: - * ace/UPIPE_Stream.cpp: Added #include "ace/OS_NS_string.h" to pick - up ACE_OS string functions. - - * ace/Based_Pointer_Repository.cpp: - * ace/Filecache.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Malloc_T.h: - * ace/Object_Manager.cpp: - * ace/Process_Manager.cpp: - * ace/Reactor.cpp: - * ace/Select_Reactor_T.cpp: - * ace/Signal.cpp: - * ace/Singleton.cpp: - * ace/Svc_Conf_l.cpp: - * ace/Thread_Exit.cpp: - * ace/Thread_Manager.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_Queue_T.cpp: - * ace/UUID.cpp: Added #include "ace/Guard_T.h" to find ACE_Guard. - - * ace/DEV_Addr.cpp: - * ace/FILE_Addr.cpp: - * ace/SPIPE_Addr.cpp: Added #include "ace/OS_NS_string.h" to get - ACE_OS functions and "ace/os_include/sys/os_socket.h" to get - AF_DEV, etc. defs. - - * ace/Log_Msg.cpp: Added #include "ace/OS_NS_stdio.h" to pick up - ACE_OS::snprintf() and "ace/Guard_T.h" to find ACE_Guard. - * ace/SString.h: Added #include "ace/streams.h" if - !ACE_LACKS_IOSTREAM_TOTALLY to pick up the correct ostream type. - - * ace/Process_Manager.h: Add #include "ace/Time_Value.h" to get the - ACE_Time_Value class and member defs needed. - - * ace/Sock_Connect.cpp: Added #include "ace/OS_NS_string.h", - "ace/OS_NS_unistd.h" and "ace/OS_NS_stdlib.h" and "ace/OS_Memory.h" - to get missing functions. - - * ace/Thread_Adapter.cpp: Added #include "ace/Object_Manager_Base.h" to - get ACE_OS_Object_Manager class. - - * ace/Time_Request_Reply.cpp: Added #include - "ace/os_include/netinet/os_in.h" to get htonl(), ntohl(). - - * ace/TP_Reactor.cpp: Added #include "ace/OS_NS_sys_time.h" to get - ACE_OS::gettimeofday() and "ace/Log_Msg.h" to get logging macros. - - * ace/TP_Reactor.h: Added #include "ace/Timer_Queue.h" so IBM Visual - Age C++ can see the whole ACE_Timer_Queue type for template reasons. - - * ace/Timer_Queue.h: Add #include of either - ace/Recursive_Thread_Mutex.h or ace/Null_Mutex.h based on - ACE_HAS_THREADS. IBM Visual Age C++ needs to see the complete - type. - - * ace/Parse_Node.cpp: Added #include "ace/ACE.h" to see ACE::debug(). - - * netsvcs/lib/TS_Clerk_Handler.h: Added #include "ace/Null_Mutex.h". - -Wed Nov 5 23:26:11 UTC 2003 Don Hinton - - * ace/config-all.h: - Added #include of OS_main.h to pick up the main macros that - handle instantiating ACE_Object_Manager when - ACE_HAS_NONSTATIC_OBJECT_MANAGER is defined. Thanks to Justin - Michel for identifying the problem and - suggesting the solution. - -Wed Nov 5 21:47:35 UTC 2003 Don Hinton - - * ace/OS_NS_Thread.h: - Changed export declaration for rwlock_init() to - ACE_NAMESPACE_INLINE_FUNCTION to fix link errors on Windows. - - * ace/OS_NS_time.h: - Changed export declaration for gmtime_r() to - ACE_NAMESPACE_INLINE_FUNCTION to fix link errors on Windows. - -Wed Nov 5 21:22:45 UTC 2003 Don Hinton - - * ace/OS_NS_stdio.h: - Changed export declaration for - default_win32_security_attributes(), - fopen_mode_to_open_mode_converter(), and fputs() to - ACE_NAMESPACE_INLINE_FUNCTION to fix link errors on Windows. - - * ace/OS_NS_stropts.h: - Changed export declaration for getmsg(), getpmsg(), and - fattach() to ACE_NAMESPACE_INLINE_FUNCTION to fix link errors on - Windows. - -Wed Nov 5 15:09:00 2003 Justin Michel - - * apps/gperf/src/gperf.cpp: - - Added missing #include "ace/OS_main.h" - -Wed Nov 5 19:03:20 UTC 2003 Don Hinton - - * ace/ACE.cpp: - Added #include of OS_NS_poll.h if ACE_HAS_POLL and - ACE_HAS_LIMITED_SELECT are defined. Thanks to Andrew G. Harvey - for reporting this. - - * ace/TLI.cpp: - Added #include of OS_NS_sys_socket.h to pickup opthdr. Thanks - again to Andrew G. Harvey for reporting this. - - * ace/INET_Addr.cpp: - Added ACE_UNUSED_ARG wrapper around the map variable when - ACE_HAS_IPV6 isn't defined to get rid of warning. - - * ace/Log_Msg.cpp: - Changed #ifdef to include Object_Manager_Base.h if ACE_MT_SAFE - != 0 (instead of == 0) instead of Object_Manger.h. - - * ace/Object_Manager.h: - * ace/Static_Object_Lock.h: - Added new file, Static_Object_Lock.h, and moved - ACE_Static_Object_Lock.h there to help reduce need to include - Object_Manger.h. - - * ace/Reactor.cpp: - Made #includes of Reactor implementations conditional on usage. - Removed #include of Reactor_Impl.h and Handle_Set.h - (Handle_Set.h isn't needed and Reactor_Impl.h doesn't need to be - read again). Include Static_Object_Lock.h instead of - Object_Manager.h. - - * OS.i: - * ace/os_include/os_pwd.h: - * ace/os_include/os_stdlib.h: - * ace/os_include/os_time.h: - Moved remaining functions prototypes for AIX and Digital Unix to - the appropriate places. - -Wed Nov 5 11:58:04 2003 Douglas C. Schmidt - - * ace/SOCK_Dgram_Mcast.cpp, - * ace/Asynch_Connector.cpp, - * ace/INET_Addr.cpp, - * ace/OS.h, - * ace/OS.i, - * ace/Sock_Connect.n, - * ace/Sock_Connect.i, - * ace/SOCK_Dgram.i, - * ace/SOCK_Dgram.cpp, - * ace/SOCK_Dgram_Mcast.h, - * ace/SOCK_Dgram_Mcast.cpp, - * ace/SOCK_SEQPACK_Acceptor.cpp, - * ace/OS_NS_sys_socket.{h,inl}: - Finished adding IPv6 support to ACE. The main addition is - support for UDP multicast over IPv6 for Linux. Thanks to Brian - Buesker for contributing this. - -Wed Nov 5 15:28:30 UTC 2003 Don Hinton - - * tests/Multihomed_INET_Addr_Test.cpp: - Added ACE_OS to a couple more memcmp's I missed last time. - -Wed Nov 5 14:53:19 UTC 2003 Don Hinton - - * ace/Multihomed_INET_Addr.{h,cpp}: - Removed some "/**/" comments from normal #include statements so - these includes can be picked up by doxygen. This is a doxygen - "feature" that excludes includes from documentation that have an - unknown character. - - * ace/Synch.cpp: - * ace/Thread_Mutex.cpp: - * ace/RW_Thread_Mutex.cpp: - Moved the explicit template instantiations from Synch.cpp to - these files since Synch.cpp is not always compiled. - - * tests/Multihomed_INET_Addr_Test.cpp: - Added ACE_OS to a memcmp call to fix a compile error. - -Wed Nov 5 14:08:59 UTC 2003 Johnny Willemsen - - * ace/config-win32-mingw.h: - Added defines ACE_LACKS_TERMIOS_H and ACE_LACKS_NETINET_TCP_H - -Wed Nov 5 13:18:33 UTC 2003 Johnny Willemsen - - * ace/config-cygwin32.h: - Removed ACE_LACKS_SYS_MSG_H - - * ace/config-win32-mingw.h: - Added ACE_LACKS_SYS_SHM_H - - * ace/Flag_Manip.cpp: - Added os_include/os_termios.h for Cygwin build - - * ace/IO_Cntl_Msg.h: - Added os_include/os_stddef.h to get size_t - - * ace/OS_NS_stdio.h: - Added os_include/os_unistd.h for Cygwin build - - * ace/Proactor.h: - Added os_include/os_stddef.h and os_include/os_signal.h for - Cygwin - - * ace/os_include/os_signal.h: - * ace/OS_NS_signal.h - Moved ACE_SIGNAL_C_FUNC from os_signal.h to OS_NS_Signal.h because - with Cygwin siginfo_t is defined in OS_NS_Signal.h - -Wed Nov 5 10:04:12 UTC 2003 Johnny Willemsen - - * ace/README: - * ace/config-all.h: - * ace/config-win32-borland.h: - Changed my solution for the explicit std:: namespace I made this - morning. Making ACE_STD_NAMESPACE dependent of - ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB breaks other compilers, so - introduced the new define ACE_USES_EXPLICIT_STD_NAMESPACE which - defines how ACE_STD_NAMESPACE is expanded. Set this define in the - Borland config file only. - -Wed Nov 5 09:40:19 UTC 2003 Johnny Willemsen - - * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: - * examples/NT_Service/main.cpp: - * examples/Reactor/Proactor/simple_test_proactor.cpp: - * examples/Reactor/Proactor/test_proactor2.cpp: - * examples/Reactor/Proactor/test_timeout_st.cpp: - * examples/Reactor/WFMO_Reactor/Console_Input.cpp: - * examples/Reactor/WFMO_Reactor/Handle_Close.cpp: - * examples/Reactor/WFMO_Reactor/Network_Events.cpp: - * examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp: - Added #include of OS_main.h to get ACE_TMAIN macro - - * examples/Threads/wfmo.cpp: - Added #include of OS_main.h to get ACE_TMAIN macro and - OS_NS_unistd.h to get ACE_OS::sleep. - -Wed Nov 5 07:53:19 UTC 2003 Johnny Willemsen - - * ace/Dev_Poll_Reactor.cpp: - * ace/Name_Space.h: - Fixed fuzz errors - -Wed Nov 5 07:46:12 UTC 2003 Johnny Willemsen - - * ARGV.h: - Define a private copy constructor and assignment operator. The - compiler generated versions will not work correctly so prevent - copying of an instance. - - * config-win32.h: - Moved the check for __BORLANDC__ above the check for _MSC_VER. The - preview Borland compilers defines both, but we must include in that - case the Borland config file. - - * Connector.{h,cpp}: - Moved include of Handle_Set.h from cpp to h file. We really need - it in the header file. - - * config-all.h: - Because ACE_OS is now a namespace we encountered a problem with the - Borland compilers. In ACE_OS::fclose() we did call ::fclose() but - the Borland compiler now gives an ambiguity between ACE_OS::fclose() - and std::fclose(). To fix this we added ACE_STD_NAMESPACE which - is set to std when ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB is defined - to 1. In other cases we let ACE_STD_NAMESPACE be nothing. In - ACE_OS::fclose() we program now ACE_STD_NAMESPACE::fclose() so that - when using Borland this expands to std::fclose(), in other cases to - ::fclose(). - - * OS_NS_stdio.inl: - * OS_NS_time.cpp: - * OS_NS_time.inl: - * OS_NS_wchar.inl: - Use ACE_STD_NAMESPACE for the method which appear in ACE_OS and std - -Wed Nov 5 05:33:44 UTC 2003 Don Hinton - - * ACEXML/common/FileCharStream.cpp: - Added #include OS_NS_wchar.h when ACE_USES_WCHAR is defined. - - * examples/Reactor/WFMO_Reactor/Console_Input.cpp: - * examples/Reactor/WFMO_Reactor/Directory_Changes.cpp: - * examples/Reactor/WFMO_Reactor/Multithreading.cpp: - * examples/Reactor/WFMO_Reactor/Registration.cpp: - Added #included needed on Windows due to recent subsetting. - -Tue Nov 04 19:37:31 2003 Nanbor Wang - - * COPYING: Modified to include CIAO in the Copyright disclaimer. - Thanks to Roland Schimmack for motivating the change. - -Wed Nov 5 01:23:08 UTC 2003 Don Hinton - - * apps/Gateway/Gateway/Event_Channel.cpp: - * apps/Gateway/Gateway/Gateway.cpp: - * apps/Gateway/Peer/Peer.cpp: - * netsvcs/lib/Name_Handler.cpp: - * netsvcs/lib/Server_Logging_Handler_T.cpp: - * netsvcs/lib/TS_Server_Handler.cpp: - * tests/Multicast_Test.cpp: - * tests/Process_Manager_Test.cpp: - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - * examples/Connection/misc/Connection_Handler.cpp: - * examples/Connection/non_blocking/CPP-acceptor.cpp: - * examples/Connection/non_blocking/CPP-connector.cpp: - * examples/Logger/simple-server/server_loggerd.cpp: - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Reactor/Misc/test_signals_1.cpp: - * examples/Service_Configurator/IPC-tests/server/server_test.cpp: - * examples/Threads/task_three.cpp: - * examples/Threads/thread_manager.cpp: - * examples/Threads/thread_specific.cpp: - Added #include of Signal.h. - - * examples/Reactor/Misc/pingpong.cpp: - Added #include of Null_Mutex.h. - - * examples/C++NPv2/Logging_Event_Handler_Ex.cpp: - Added #include of ace/Timer_Queue.h. - -Wed Nov 5 00:56:43 UTC 2003 Don Hinton - - * Process_Manager.cpp: - Added #include of OS_NS_sys_time.h: - - * ace/Reactor_Impl.h: - Added #include of Time_Value.h. - -Wed Nov 5 00:28:47 UTC 2003 Don Hinton - - * ace/OS_Dirent.h: - * ace/OS_Memory.h: - * ace/OS_String.h: - * ace/OS_TLI.h: - * ace/config-all.h: - Moved the #defines of ACE_OS_String, ACE_OS_Memory, - ACE_OS_Dirent, and ACE_OS_TLI to config-all.h. This makes it - easier for older code that may still use these old class names - to continue to compile even though the header refactoring has - eliminated the old empty headers. - -Tue Nov 4 16:03:06 2003 Ossama Othman - - * ace/Makefile.am (HEADER_FILES): - - Added new Timer_Queuefwd.h header to this list. - -Tue Nov 4 15:35:30 2003 Ossama Othman - - * tests/Conn_Test.cpp: - - Include "ace/Signal.h". Necessitated by inter-header dependency - reductions. - -Tue Nov 4 14:36:59 2003 Ossama Othman - - * ace/Array_Base.cpp: - - Check if _MSC_VER macro is defined prior to checking if - it is defined to a specific value. Addresses warnings in some - g++ configurations. - - * ace/Asynch_Pseudo_Task.h: - - Nuked trailing whitespace. - - * ace/CDR_Base.cpp (swap_4_array): - - Fixed problem where byte swapping code for arrays containing 4 - byte elements on platforms with 8 byte alignment was not - enabled. - - * ace/Connector.cpp: - - Include "ace/Handle_Set.h". Necessitated by inter-header - dependency reductions. - - * ace/Dev_Poll_Reactor.cpp: - - Include "ace/Signal.h". Necessitated by inter-header dependency - reductions. - - * ace/Name_Space.h: - - Forward declare the ACE_Unbounded_Set and - ACE_Unbounded_Set_Iterator template classes instead of including - "ace/Unbounded_Set.h". - - No need to include "ace/Name_Proxy.h". - - * ace/Naming_Context.h: - - No need to include "ace/SString.h", "ace/Containers.h" and - "ace/Name_Proxy.h". - - * ace/OS_NS_string.h: - - No need to forward declare ACE_Time_Value. - - * ace/Process_Manager.h: - - No need to include "ace/Reactor.h". A forward declaration for - ACE_Reactor is enough. - - * ace/Process_Manager.cpp: - - Include "ace/Reactor.h" to pull in ACE_Reactor class - declaration. - - * ace/Reactor.h: - - Include new "ace/Timer_Queuefwd.h" header instead of - "ace/Timer_Queue.h". Forward declarations are enough. - - No need to include "ace/Signal.h". Forward declarations for - ACE_Sig_{Action,Handler,Set} are enough. - - No need to include "ace/Handle_Set.h". Forward declaring - ACE_Handle_Set is enough. - - * ace/Reactor.i: - - No need to include "ace/Handle_Set.h". The forward declaration - in "ace/Reactor.h" is enough. - - * ace/Reactor_Impl.h: - - Include new "ace/Timer_Queuefwd.h" header instead of - "ace/Timer_Queue.h". Forward declarations are enough. - - No need to include "ace/Signal.h". Forward declarations for - ACE_Sig_{Action,Handler,Set} are enough. - - * ace/Reactor_Timer_Interface.h: - - Include "ace/Time_Value.h" to pull in ACE_Time_Value class - declaration. - - * ace/SString.h (ACE_NS_WString): - - Corrected documentation. - - * ace/SString.i: - - No need to include "ace/Malloc_Base.h". - - * ace/SString.cpp: - - Cosmetic reorganization of code. - - * ace/Select_Reactor_Base.h: - - No need to include "ace/Signal.h". - - Include new "ace/Timer_Queuefwd.h" header instead of - "ace/Timer_Queue.h". Forward declarations are enough. - - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.cpp: - - Include "ace/Signal.h" to pull in ACE signal classes. - - * ace/TP_Reactor.h: - - No need to include "ace/Log_Msg.h". - - * ace/TP_Reactor.cpp: - - No need to include "ace/Reactor.h". - - Include "ace/Timer_Queue.h" and "ace/Signal.h" to pull in - ACE_Timer_Queue and ACE signal classes. - - * ace/Timer_Queue.h: - - Moved ACE_Timer_Queue typedef to new Timer_Queuefwd.h file. - - Include "ace/Timer_Queuefwd.h" to pull in ACE_Timer_Queue - typedef. - - * ace/Timer_Queue_T.cpp: - - No need to include "ace/Signal.h". - - * ace/Timer_Queuefwd.h: - - New file containing forward declarations and typedefs for the - ACE_Timer_Queue class and friends. - -Tue Nov 4 17:58:29 2003 Steve Huston - - * ace/UUID.cpp: Added explicit instantiation of - ACE_Singleton::singleton_ to work around g++ issue on HP-UX and AIX. - -Tue Nov 4 20:40:26 UTC 2003 Don Hinton - - * tests/test_config.h: - Removed #include of streams.h. - - * tests/CDR_File_Test.cpp: - Added #include of streams.h. This is the only test that needs - it. - -Tue Nov 4 14:22:00 2003 Justin Michel - - * ace/config-freebsd.h - Added ACE_LACKS_WCSNICMP, ACE_LACKS_WCSICMP, ACE_LACKS_WCSDUP, - ACE_LACKS_ITOW, ACE_HAS_3_PARAM_WCSTOK, and ACE_LACKS_TOWLOWER, - needed when ACE_HAS_WCHAR is defined. - -Tue Nov 4 09:50:47 2003 Ossama Othman - - * tests/Makefile.am - (MT_Reference_Counted_Event_Handler_Test_SOURCES): - (MT_Reference_Counted_Notify_Test_SOURCES): - (NonBlocking_Conn_Test_SOURCES): - (Reactor_Registration_Test_SOURCES): - (Reference_Counted_Event_Handler_Test_SOURCES): - (Timer_Cancellation_Test_SOURCES): - (Timer_Queue_Reference_Counting_Test_SOURCES): - (WFMO_Reactor_Test_SOURCES): - - Added these missing test source declarations. - -Tue Nov 4 09:15:13 2003 Ossama Othman - - * ace/OS_NS_stdlib.inl: - * ace/OS_NS_sys_time.inl: - * ace/OS_NS_sys_uio.inl: - * ace/OS_NS_sys_utsname.inl: - - Include "ace/os_include/os_errno.h". The ACE_OSCALL macros used - in these files use the global errno variable. - - * ace/os_include/os_pthread.h: - - Don't define ACE_HAS_MUTEX_TIMEOUTS if it has been previously - defined. Fixes a warning for configurations that explicitly - define ACE_HAS_MUTEX_TIMEOUTS. - - Do not directly check the GNU libc-specific "__USE_XOPEN2K" - XPG6 feature test macro. The correct/portable way to check for - XPG6 features is to check if _XOPEN_SOURCE >= 600. - - * ace/os_include/sys/os_time.h: - - No need to include "ace/os_include/sys/os_select.h". - - * ace/os_include/sys/os_types.h: - - Check if ACE_SIZEOF_LONG macro is defined prior to checking if - it is defined to a specific value. Addresses warnings in some - g++ configurations. - -Tue Nov 4 16:48:54 UTC 2003 Don Hinton - - * ace/Barrier.cpp: - * ace/Condition_Recursive_Thread_Mutex.cpp: - Include Log_Msg.h when ACE_HAS_DUMP is defined. - - * ace/OS_NS_stdio.inl: - * ace/OS_NS_string.cpp: - * ace/OS_NS_strings.inl: - * ace/OS_NS_unistd.inl: - * ace/OS_NS_wchar.cpp: - * ace/OS_NS_wchar.h: - Added #includes needed when ACE_HAS_WCHAR is defined. - - * ace/SSL/SSL_SOCK.cpp: - * ace/SSL/SSL_SOCK_Stream.cpp: - Added #includes needed when ssl=1. - -Tue Nov 4 14:29:38 UTC 2003 Don Hinton - - * ace/CDR_Streams.i: - Added #include OS_NS_string.h and OS_Memory.h. - -Tue Nov 4 06:20:18 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - - Remove an unnecessary intermediate variable. - - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - * bin/MakeProjectCreator/templates/vc7lib.mpt: - * bin/MakeProjectCreator/templates/vc7libexe.mpt: - - Split static projects from dynamic projects ala VC6. When one VC7 - static library project depends on another, they are linked - together as the second one is built. This causes the contents of - each library to grow tremendously. Splitting the projects allows - us to omit the project dependencies for static libraries. - -Tue Nov 4 01:03:56 2003 Ossama Othman - - * configure.ac (AC_PREREQ): - - Fixed typo in copyright statement. - - Bumped autoconf prerequisite to version 2.57g. Function tests - in versions prior to that did not function properly on HP-UX. - - (AC_CONFIG_AUX_DIR): - - Call this Autoconf macro with an "aux" argument. This causes - all autotool related scripts to be placed in to the `aux' - directory. Addresses a problem with some versions of libtoolize - where an empty auxiliary directory name is assumed instead of - the well defined defaults. This change also happens to remove - some of the clutter in the top-level directory. - - (AC_CONFIG_MACRO_DIR): - - Call this Autoconf macro with a "m4" argument to inform - autotools that recognize this macro where the ACE Autconf/M4 - macros are located. - - * bin/bootstrap: - - Replaced manual calls to aclocal, autoheader, autoconf, automake - and libtoolize with a single call to `autoreconf'. The latter - is a bit smarter about bootstrapping autoconfiscated - workspaces, and also allows us to simplify this bootstrap - script. - - * m4/ace.m4: - - Started converting all Bourne shell "if" blocks to Autoconf - "AS_IF" blocks. The latter provides improved portability. - - * m4/acinclude.m4: - * m4/compiler.m4: - * m4/features.m4: - * m4/subsets.m4: - - Nuked trailing whitespace. - - * m4/config_h.m4 (AH_TOP): - - Removed "-*- C++ -*-" Emacs mode comment. It had no effect - since it wasn't in the first few lines of the generated - `config.h' file. - - (AH_BOTTOM): - - Define Emacs mode at the bottom of the generated `config.h' file - using the canonical Emacs "Local Variables" block. The - generated `config.h' file is now correctly interpreted as a C++ - header when opened in Emacs. - - - * m4/threads.m4: - - Started converting all Bourne shell "if" blocks to Autoconf - "AS_IF" blocks. The latter provides improved portability. - - Refactored common POSIX threads detection code to an autoconf - macro. - - Replaced brittle POSIX thread code that checked for backward - compatibility macros. Use a run/link-time test instead. This - allows us to avoid determining what the real pthread_create() - function is called. This should fix a Pthread detection problem - that occurred on HP-UX. - - * ace/Makefile.am: - - Updated source lists with latest set of source filenames. - - * apps/gperf/mdate-sh: - * apps/gperf/texinfo.tex: - - Removed these files. They are automatically added when - bootstrapping an "autoconfiscated" workspace. - -Wed Nov 4 08:34:12 UTC 2003 Johnny Willemsen - - * ace/OS_NS_netdb.cpp: (getmacaddress) - Always do an reinterpret_cast because the static_cast also doesn't - work when ansi casts is enabled. Thanks to Edan Ayal - for reporting this. - -Wed Nov 4 08:18:37 UTC 2003 Don Hinton - - * ace/OS_NS_signal.h: - Removed include of OS_export and changed ACE_OS_Export to - ACE_Export to fix compile errors. - -Wed Nov 4 06:15:13 UTC 2003 Johnny Willemsen - - The following list of changes fixes build errors in the Borland builds - - * ace/Object_Manager_Base.cpp: - Added #include of OS_NS_stdio.h - - * ace/OS_NS_dirent.inl: - Added #include of OS_Memory.h - - * ace/OS_NS_fcntl.cpp: - Added #include of OS_NS_stdio.h, OS_NS_Thread.h, OS_NS_macros.h and - Object_Manager_Base.h - - * ace/OS_NS_fcntl.inl: - Added #include of OS_NS_errno.h - - * ace/OS_NS_signal.h: - Added #include of os_include/os_signal.h, ACE_export.h and OS_export.h - - * ace/OS_NS_stdio.inl: - Added #include OS_NS_macros.h - - * ace/OS_NS_stropts.inl: - Added #include of OS_NS_macros.h and OS_QoS.h - - * ace/OS_NS_sys_mman.inl: - Added #include of OS_NS_stdio.h, OS_NS_macros.h and OS_NS_errno.h - - * ace/OS_NS_sys_resource.inl: - Added #include of OS_NS_macros.h - - * ace/OS_NS_sys_select.inl: - Added #include of os_include/os_errno.h - - * ace/OS_NS_sys_socket.inl: - Added #include of OS_NS_stdio.h, OS_QoS.h and Global_Macros.h - - * ace/OS_NS_sys_stat.inl: - Added OS_NS_errno.h - - * ace/OS_NS_sys_uio.cpp: - Added #include OS_Memory.h, OS_NS_string.h and OS_NS_unistd.h - - * ace/OS_NS_sys_utsname.cpp - Added #include OS_NS_string.h, OS_NS_stdio.h and OS_NS_unistd.h - - * ace/OS_NS_sys_wait.inl: - Added #include of OS_NS_errno.h and Global_Macros.h - - * ace/OS_NS_Thread.cpp: - Added #include of Object_Manager_Base.h - - * ace/OS_NS_Thread.inl: - Added #include of OS_NS_stdio.h and OS_NS_errno.h - - * ace/OS_NS_unistd.inl: - Added #include of OS_NS_macros., OS_NS_fcntl.h and Default_Constants.h - -Tue Nov 4 04:55:40 UTC 2003 Don Hinton - - * ace/CDR_Stream.h: - Removed #include of OS_Memory.h and OS_String.h. - - * ace/Object_Manager.h: - Added #includes needed due to subsetting. - - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - * tests/CDR_Test.cpp: - Added #includes needed due to subsetting. - - * ace/ace.mpc: - Removed commented out Synch.cpp--comments aren't supported. - - * ace/Makefile.ace: - Removed Synch and added new files, e.g., Mutex, etc... - -Mon Nov 3 22:11:24 2003 Balachandran Natarajan - - * ace/config-sunos5.5.h: Added a note about SunCC 5.0. - -Mon Nov 3 20:35:12 2003 Balachandran Natarajan - - * ace/config-sunos5.5.h: - - Added ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION, since - CC 5.3 seems to be doing the right thing for class member - specializations. We will soon check things out on other - compilers. - -Mon Nov 3 19:38:45 2003 Balachandran Natarajan - - * ace/config-all.h: - - Added a new #define, ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION - which defines template <> for definitions of member functions - of a class that is specialized. - - * ace/config-g++-common.h: - - Added ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION, since - g++ is doing the right thing for class member specializations. - -Mon Nov 3 17:02:42 UTC 2003 Don Hinton - - * ace/config-openbsd.h: - * ace/config-macosx.h: - Added ACE_LACKS_WCHAR_H. - - * ace/OS_NS_dlfcn.inl: - Added #includes needed when ACE_USES_ASM_SYMBOL_IN_DLSYM is - defined. - - * ace/OS_NS_sys_msg.inl: - * ace/OS_NS_sys_shm.inl: - Added #include of OS_NS_errno.h: - -Mon Nov 3 16:43:27 UTC 2003 Don Hinton - - * ace/OS_NS_dlfcn.inl: - Added missing #includes needed on HPUX due to recent - subsetting. - - * ace/OS_NS_time.inl: - Changed #ifdef around ACE_OS::timezone implementation to be just - __GNUG__ since it seems to be needed on all OS's that use g++. - - * ace/OS_NS_string.h: - Changed ACE_OS_Export to ACE_Export. - - * ace/OS_NS_unistd.cpp: - Added #include of sys/pstat.h needed on HPUX. - - * ace/os_include/os_termios.h: - Added #include of sys/modem.h on HPUX to pickup the MDTR - definition. - -Mon Nov 3 10:19:43 UTC 2003 Johnny Willemsen - - * ace/Makefile.bor: - Updated this file with all recent changes - -Mon Nov 3 08:24:12 UTC 2003 Johnny Willemsen - - * ace/config-win32-borland.h: - Added #define ACE_LACKS_TERMIOS_H - -Mon Nov 3 06:41:16 UTC 2003 Don Hinton - - * ace/OS_NS_stdio.h: - Added missing ACE_Export to printf() declaration. - -Mon Nov 3 06:09:08 UTC 2003 Don Hinton - - * tests/MM_Shared_Memory_Test.cpp: - * tests/OS_Test.cpp: - * tests/Proactor_Scatter_Gather_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/SPIPE_Test.cpp: - Added #includes needed on Windows due to recent - subsetting. - -Mon Nov 3 05:02:24 UTC 2003 Don Hinton - - * ace/OS_NS_netdb.cpp: - Added missing #ifdef ACE_MT_SAFE around - ACE_OS::netdb_{acquire|release} method implementations. This - fixes single threaded build errors on platforms that define - ACE_LACKS_NETDB_REENTRANT_FUNCTIONS. - -Mon Nov 3 04:43:43 UTC 2003 Don Hinton - - * Makefile: - * bin/reverseclean: - Pass the $(MAKE) variable to the reverseclean script and use it - instead of "make". This fixes problems in autobuilds that - assign something other than "make" to the make_program - variable. - -Mon Nov 3 04:12:12 UTC 2003 Craig Rodrigues - - * include/makeinclude/platform_freebsd.GNU: - Overhaul the OS version tests so that they actually work. - The "-pthread" gcc flag was recently deprecated in FreeBSD's gcc, so - use the correct pthread flags for gcc, based on the OS version. - Inspired by similar tests in /usr/ports/Mk/bsd.port.mk - -Mon Nov 3 03:04:48 UTC 2003 Don Hinton - - * ace/Barrier.h: - * ace/Managed_Object.h: - * ace/Object_Manager.h: - * tests/Priority_Reactor_Test.cpp: - Added #include needed when not inlining due to recent - subsetting. - - * ace/OS_NS_Thread.inl: - Added #ifdef ACE_MT_SAFE around ACE_OS_Thread_Mutex_Guard - implementation. - - * ace/Object_Manager_Base.h: - Removed ACE_OS friend statements and redundant method - declarations (which were problematic on Windows). - - * ace/Token.cpp: - Moved #include of Token.i outside of ACE_HAS_THREADS #ifdef - since ACE_Noop_Token is there and required in single threaded - builds. - -Sun Nov 2 15:58:23 UTC 2003 Don Hinton - - * ace/ace.mpc: - Added a comment about footprint and compile times, and moved the - commented out files up--MPC doesn't like comments in file - lists. Thanks to Johnny Willemsen - for reporting this. - - * ace/OS_NS_netdb.inl: - Fixed a couple of instances of ::memcpy that didn't include - ACE_OS. - - * ace/OS_NS_netdb.cpp: - Added #include Object_Manager_Base.h. - - * ace/OS_NS_unistd.cpp: - Added #include Object_Manager_Base.h and OS_NS_Thread.h. - - * ace/OS_NS_time.inl: - Added #include OS_NS_sys_time.h. - -Sun Nov 2 12:55:21 UTC 2003 Johnny Willemsen - - * ace/Shared_Memory.h: - Added #include of os_include/os_stddef.h to get size_t definition. - -Sun Nov 2 10:01:13 UTC 2003 Johnny Willemsen - - * ace/OS_main.h: - Fixed fuzz error and added #include of post.h - - * ace/OS_NS_macros.h: - Added #include of post.h - - * ace/Timer_Queue_T.h: - Added #include of Time_Value.h - - * ace/config-win32-borland.h: - Added several defines because of lacking system header files. - -Sun Nov 2 00:23:25 UTC 2003 Don Hinton - - * ace/OS_NS_netdb.cpp: - Added #include of OS_NS_Thread.h needed when - ACE_LACKS_NETDB_REENTRANT_FUNCTIONS is defined. - - * ace/OS_NS_poll.inl: - Added #include of OS_NS_errno.h. - - * ace/OS_NS_unistd.cpp: - Added #include of Guard_T.h. - - * ace/Object_Manager_Base.cpp: - Fixed typo. - - * ace/os_include/os_signal.h: - Fixed typo. Thanks to Johnny Willemsen - for reporting this. - -Sat Nov 1 23:45:49 UTC 2003 Don Hinton - - * ace/ACE_export.h: - Added ACE_NAMESPACE_INLINE_FUNCTION and ACE_NAMESPACE_STORAGE_CLASS - macros to help control exporting of symbols from namespaces on - Windows. - - * ace/OS_NS_Thread.h: - * ace/OS_NS_arpa_inet.{h,inl}: - * ace/OS_NS_ctype.h: - * ace/OS_NS_dirent.h: - * ace/OS_NS_dlfcn.h: - * ace/OS_NS_errno.h: - * ace/OS_NS_fcntl.h: - * ace/OS_NS_math.h: - * ace/OS_NS_netdb.h: - * ace/OS_NS_poll.h: - * ace/OS_NS_pwd.h: - * ace/OS_NS_regex.h: - * ace/OS_NS_signal.h: - * ace/OS_NS_stdio.h: - * ace/OS_NS_stdlib.h: - * ace/OS_NS_string.h: - * ace/OS_NS_strings.h: - * ace/OS_NS_stropts.h: - * ace/OS_NS_sys_mman.h: - * ace/OS_NS_sys_msg.h: - * ace/OS_NS_sys_resource.h: - * ace/OS_NS_sys_select.h: - * ace/OS_NS_sys_shm.h: - * ace/OS_NS_sys_socket.h: - * ace/OS_NS_sys_stat.h: - * ace/OS_NS_sys_time.h: - * ace/OS_NS_sys_uio.h: - * ace/OS_NS_sys_utsname.h: - * ace/OS_NS_sys_wait.h: - * ace/OS_NS_time.h: - * ace/OS_NS_unistd.h: - * ace/OS_NS_wchar.h: - * ace/OS_TLI.h: - Added extern ACE_Export to non-inlined method prototypes and - ACE_NAMESPACE_INLINE_FUNCTION to inlined ones. - -Sat Nov 1 18:18:12 UTC 2003 Johnny Willemsen - - * ace/config-win32-mingw.h: - Added defines to specify that MinGW lacks certain header files. - Because of the rework this was now found. - -Sat Nov 1 17:16:45 UTC 2003 Don Hinton - - * ace/ace.mpc: - Reordered new files to make them easer to verify. - - * ace/Makefile.ace: - Added new files and removed OS, OS_String, OS_Memory, and - OS_Dirent. - - * Kokyu/Makefile.Kokyu: - * ace/Makefile.ace: - * ace/ace.mpc: - * ace/RMCast/Makefile: - * apps/Gateway/Gateway/Makefile: - * apps/Gateway/Peer/Makefile: - * apps/drwho/Makefile: - * apps/gperf/src/Makefile: - * apps/gperf/tests/Makefile: - * examples/ASX/CCM_App/Makefile: - * examples/ASX/Event_Server/Event_Server/Makefile: - * examples/ASX/Event_Server/Transceiver/Makefile: - * examples/ASX/Message_Queue/Makefile: - * examples/ASX/UPIPE_Event_Server/Makefile: - * examples/C++NPv1/Makefile: - * examples/Connection/misc/Makefile: - * examples/Connection/non_blocking/Makefile: - * examples/IOStream/client/Makefile: - * examples/IOStream/server/Makefile: - * examples/IPC_SAP/DEV_SAP/reader/Makefile: - * examples/IPC_SAP/DEV_SAP/writer/Makefile: - * examples/IPC_SAP/FIFO_SAP/Makefile: - * examples/IPC_SAP/FILE_SAP/Makefile: - * examples/IPC_SAP/SOCK_SAP/Makefile: - * examples/IPC_SAP/SPIPE_SAP/Makefile: - * examples/IPC_SAP/TLI_SAP/Makefile: - * examples/IPC_SAP/UPIPE_SAP/Makefile: - * examples/Log_Msg/Makefile: - * examples/Logger/Acceptor-server/Makefile: - * examples/Logger/client/Makefile: - * examples/Logger/simple-server/Makefile: - * examples/Map_Manager/Makefile: - * examples/Mem_Map/IO-tests/Makefile: - * examples/Mem_Map/file-reverse/Makefile: - * examples/Misc/Makefile: - * examples/Naming/Makefile: - * examples/RMCast/Send_File/Makefile: - * examples/Reactor/Dgram/Makefile: - * examples/Reactor/FIFO/Makefile: - * examples/Reactor/Misc/Makefile: - * examples/Reactor/Multicast/Makefile: - * examples/Reactor/Ntalker/Makefile: - * examples/Service_Configurator/IPC-tests/client/Makefile: - * examples/Service_Configurator/IPC-tests/server/Makefile: - * examples/Shared_Malloc/Makefile: - * examples/Shared_Memory/Makefile: - * examples/Synch/Makefile: - * examples/System_V_IPC/SV_Message_Queues/Makefile: - * examples/System_V_IPC/SV_Semaphores/Makefile: - * examples/System_V_IPC/SV_Shared_Memory/Makefile: - * examples/Threads/Makefile: - * examples/Timer_Queue/Makefile: - * netsvcs/clients/Logger/Makefile: - * netsvcs/clients/Naming/Client/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile: - * netsvcs/clients/Tokens/collection/Makefile: - * netsvcs/clients/Tokens/deadlock/Makefile: - * netsvcs/clients/Tokens/invariant/Makefile: - * netsvcs/clients/Tokens/mutex/Makefile: - * netsvcs/clients/Tokens/rw_lock/Makefile: - * netsvcs/lib/Makefile: - * netsvcs/servers/Makefile: - * performance-tests/Misc/Makefile: - * performance-tests/SCTP/Makefile: - * performance-tests/Server_Concurrency/Leader_Follower/Makefile: - * performance-tests/Server_Concurrency/Queue_Based_Workers/Makefile: - * performance-tests/TCP/Makefile: - * performance-tests/UDP/Makefile: - * tests/Makefile.tests: - * tests/RMCast/Makefile: - * websvcs/lib/Makefile: - * websvcs/tests/Makefile - Updated dependencies. - -Sat Nov 1 16:27:58 UTC 2003 Don Hinton - - * ace/os_include/os_signal.h: - Added prototype for pthread_sigmask() for those platforms that - don't include it in signal.h, ie. Free BSD. - -Sat Nov 1 05:40:21 UTC 2003 Don Hinton - - * ace/Cleanup.{h,inl,cpp}: - * ace/OS_main.h: - * ace/OS_NS_arpa_inet.{h,inl,cpp}: - * ace/OS_NS_ctype.{h,inl,cpp}: - * ace/OS_NS_dirent.{h,inl,cpp}: - * ace/OS_NS_dlfcn.{h,inl,cpp}: - * ace/OS_NS_errno.{h,inl,cpp}: - * ace/OS_NS_fcntl.{h,inl,cpp}: - * ace/OS_NS_macros.h: - * ace/OS_NS_math.{h,inl,cpp}: - * ace/OS_NS_netdb.{h,inl,cpp}: - * ace/OS_NS_poll.{h,inl,cpp}: - * ace/OS_NS_pwd.{h,inl,cpp}: - * ace/OS_NS_regex.{h,inl,cpp}: - * ace/OS_NS_signal.{h,inl,cpp}: - * ace/OS_NS_stdio.{h,inl,cpp}: - * ace/OS_NS_stdlib.{h,inl,cpp}: - * ace/OS_NS_string.{h,inl,cpp}: - * ace/OS_NS_strings.{h,inl,cpp}: - * ace/OS_NS_stropts.{h,inl,cpp}: - * ace/OS_NS_sys_mman.{h,inl,cpp}: - * ace/OS_NS_sys_msg.{h,inl,cpp}: - * ace/OS_NS_sys_resource.{h,inl,cpp}: - * ace/OS_NS_sys_select.{h,inl,cpp}: - * ace/OS_NS_sys_shm.{h,inl,cpp}: - * ace/OS_NS_sys_socket.{h,inl,cpp}: - * ace/OS_NS_sys_stat.{h,inl,cpp}: - * ace/OS_NS_sys_time.{h,inl,cpp}: - * ace/OS_NS_sys_uio.{h,inl,cpp}: - * ace/OS_NS_sys_utsname.{h,inl,cpp}: - * ace/OS_NS_sys_wait.{h,inl,cpp}: - * ace/OS_NS_Thread.{h,inl,cpp}: - * ace/OS_NS_time.{h,inl,cpp}: - * ace/OS_NS_unistd.{h,inl,cpp}: - * ace/OS_NS_wchar.{h,inl,cpp}: - * ace/Object_Manager_Base.{h,inl,cpp}: - Added new files. - - * ace/OS.{h,i,cpp}: - * ace/OS_Dirent.{h,i,cpp}: - * ace/OS_String.{h,i,cpp}: - * ace/OS_Memory.{h,inl,cpp}: - * ace/OS_TLI.{h,inl}: - Converted ACE_OS* classes to ACE_OS namespace and moved all the - code to the new files above based on the Single Unix Spec. - - * ace/ace.mpc: - Added new files and removed OS.cpp, OS_String.cpp, - OS_Dirent.cpp, and OS_Memory.cpp. Also removed Synch.cpp and - added the individual concurrency files that had already been - added to the repo a while back.. - - * ace/OS.h: - * ace/Synch.h: - Added DO_NOT_INCLUDE #ifdef to make it easy to remove the entire - contents of these files for testing purposes. - - * ace/OS_main.h: - Moved the ACE_TMAIN macros here. - - * ace/Object_Manager_Base.{h,inl,cpp}: - Moved the ACE_Object_Manager_Base, ACE_OS_Object_Manager, and - ACE_OS_Object_Manager_Manager classes here. - - * ace/config-all.h: - Moved ACE_OS_TRACE macro here. - - * ace/config-vxworks5.x.h: - Added ACE_LACKS_ARPA_INET_H. - - * ace/config-win32-msvc.h: - Added ACE_LACKS_SEMAPHORE_H, ACE_LACKS_STRINGS_H, - ACE_LACKS_PWD_H, ACE_LACKS_POLL_H, ACE_LACKS_SYS_SHM_H, - ACE_LACKS_SYS_MSG_H, ACE_LACKS_NETINET_TCP_H, - ACE_LACKS_TERMIOS_H, and ACE_LACKS_REGEX_H. - - * ace/Time_Value.{h,cpp}: - Moved ACE_Countdown_Time here. - - * ace/TTY_IO.h: - Moved ACE_VMIN and ACE_VTIME macros here. - - * ace/SOCK.h: - Moved ACE_SHUTDOWN* macros here. - - * ace/Mutex.h: - Moved ACE_DEFAULT_MUTEX macros here. - - * ace/Log_Msg.cpp: - Moved sys_siglist define here. - - * ace/Handle_Set.cpp: - Moved ACE_MSB_MASK macro here. - - * ace/Global_Macros.h: - Moved PIPE_TYPE_*, NEW_MALLOC*, ACE_SEH*, template typedef - macros here. - - * ace/Default_Constants.h: - ACE_MAX_USERID out, ACE_DEV_NULL and ACE_SYSCALL_FAILED in. - - * ace/Cleanup.{h,inl,cpp}: - Added new file and moved ACE_Cleanup* and ACE_OS_Exit_Info - classes here. - - * ace/Basic_Types.h: - Moved ACE_HTONL and ACE_NTOHL macros here. - - * ace/os_include/os_dirent.h: - Moved ACE_DIR typedef here: - - * ace/os_include/os_dlfcn.h: - Moved _dl* function prototypes here. - - * ace/os_include/os_fcntl.h: - Moved O_NONBLOCK and F_GETFL defines here. - - * ace/os_include/os_limits.h: - Moved ACE_RTSIG_MAX define here. - - * ace/os_include/os_pthread.h: - Moved the sun priocntl includes here. - - * ace/os_include/os_regex.h: - Moved the regexpr.h include here. - - * ace/os_include/os_signal.h: - Moved the rest of the signal defines and includes here. - - * ace/os_include/os_stdio.h: - Moved the ACE_MAX_USERID define here. - - * ace/os_include/os_stdlib.h: - Moved the mktemp() prototype here. - - * ace/os_include/os_string.h: - * ace/OS_NS_stdio.inl: - Moved additional string related includes and strerror define - to os_string.h. Moved ACE_SPRINTF_ADAPTER to OS_NS_stdio.inl. - - * ace/os_include/os_strings.h: - Removed ACE_HAS_STRINGS hack. - - * ace/os_include/os_stropts.h: - Moved _XOPEN_EXTENDED_SOURCE, SIOCGIFBRDADDR, and SIOCGIFADDR - defines, strbuf type, and isastream() prototype here. - - * ace/os_include/os_time.h: - Moved timespec typedef and time related std using declaration - here. - - * ace/os_include/os_ucontext.h: - Moved ucontext_t typedef here. - - * ace/os_include/os_unistd.h: - Moved the id related prototypes, *_OK macros, and the - read_timedwait() and write_timedwait() prototypes here. - - * ace/os_include/arpa/os_inet.h: - Moved the inet_*() prototypes here. - - * ace/os_include/netinet/os_in.h: - Moved the multicast types and IP_* defines here. - - * ace/os_include/netinet/os_tcp.h: - Moved the TCP_NODELAY and TCP_MAXSEG defines here. - - * ace/os_include/sys/os_mman.h: - Moved the MAP_* defines here. - - * ace/os_include/sys/os_resource.h: - Moved the usage and limit defines and prototypes here. - - * ace/os_include/sys/os_select.h: - Moved NFDBITS and select() prototype here. - - * ace/os_include/sys/os_sem.h: - Moved the GETVAL, SETVAL, GETALL, SETALL, and SEM_UNDO defines - here. - - * ace/os_include/sys/os_socket.h: - Moved the socket related *_timedwait() prototypes and - ACE_SOCKET_LEN typedef here. - - * ace/os_include/sys/os_stat.h: - Added /**/ for system include. - - * ace/os_include/sys/os_time.h: - Moved gettimeofday() prototype here. - - * ace/os_include/sys/os_times.h: - Fixed typo. - - * ace/os_include/sys/os_types.h: - Moved ACE_timer_t typedef and types related std using - declarations here. - - * ace/os_include/sys/os_uio.h: - Moved readv_timedwait() writev_timedwait() prototypes here. - - * ace/os_include/sys/os_wait.h: - Moved wait macros, WIFEXITED, etc.., here. - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ACEXML/common/FileCharStream.cpp: - * ACEXML/common/NamespaceSupport.{h,cpp}: - * ACEXML/common/StrCharStream.cpp: - * ACEXML/common/URL_Addr.cpp: - * ACEXML/common/XML_Types.h: - * ACEXML/examples/SAXPrint/main.cpp: - * ACEXML/parser/parser/Entity_Manager.h: - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/tests/ContentHandler_Test.cpp: - * ACEXML/tests/HttpCharStream_Test.cpp: - * ACEXML/tests/NamespaceSupport_Test.cpp: - * ACEXML/tests/Transcoder_Test.cpp: - * ASNMP/asnmp/address.{h,cpp}: - * ASNMP/asnmp/asn1.{h,cpp}: - * ASNMP/asnmp/ctr64.cpp: - * ASNMP/asnmp/integer.cpp: - * ASNMP/asnmp/octet.cpp: - * ASNMP/asnmp/oid.{h,cpp}: - * ASNMP/asnmp/pdu.cpp: - * ASNMP/asnmp/smi.h: - * ASNMP/asnmp/snmp.cpp: - * ASNMP/asnmp/timetick.cpp: - * ASNMP/asnmp/transaction.cpp: - * ASNMP/asnmp/vb.{h,cpp}: - * ASNMP/asnmp/wpdu.{h,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/Dispatcher_Task.cpp: - * Kokyu/tests/DSRT_MIF/MIF.cpp: - * Kokyu/tests/EDF/test.cpp: - * Kokyu/tests/FIFO/test.cpp: - * ace/ACE.{i,cpp}: - * ace/ARGV.cpp: - * ace/Acceptor.cpp: - * ace/Active_Map_Manager.{h,i}: - * ace/Addr.cpp: - * ace/Arg_Shifter.cpp: - * ace/Argv_Type_Converter.cpp: - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_IO_Impl.cpp: - * ace/Asynch_Pseudo_Task.cpp: - * ace/Atomic_Op.cpp: - * ace/Auto_Event.cpp: - * ace/Barrier.cpp: - * ace/Base_Thread_Adapter.cpp: - * ace/Basic_Types.cpp: - * ace/CDR_Base.cpp: - * ace/CDR_Stream.i: - * ace/CE_Screen_Output.h: - * ace/Capabilities.cpp: - * ace/Codecs.cpp: - * ace/Condition_Thread_Mutex.cpp: - * ace/Configuration.cpp: - * ace/Configuration_Import_Export.cpp: - * ace/DEV.cpp: - * ace/DEV_IO.{i,h}: - * ace/DLL.cpp: - * ace/DLL_Manager.cpp: - * ace/Date_Time.i: - * ace/Dirent.{i,h}: - * ace/Dirent_Selector.{h,cpp}: - * ace/Env_Value_T.h: - * ace/Event.{h,cpp}: - * ace/FIFO.{h,cpp}: - * ace/FIFO_Recv.i: - * ace/FIFO_Recv_Msg.{i,cpp}: - * ace/FIFO_Send.i: - * ace/FIFO_Send_Msg.cpp: - * ace/FILE.cpp: - * ace/FILE_IO.{i,cpp}: - * ace/File_Lock.h: - * ace/Filecache.{h,cpp}: - * ace/Flag_Manip.{h,i,cpp}: - * ace/Framework_Component.cpp: - * ace/Functor.i: - * ace/Future.h: - * ace/Guard_T.{h,inl}: - * ace/Handle_Gobbler.h: - * ace/Handle_Ops.cpp: - * ace/Handle_Set.cpp: - * ace/High_Res_Timer.{h,i,cpp}: - * ace/INET_Addr.{i,cpp}: - * ace/IOStream.{h,cpp}: - * ace/IOStream_T.h: - * ace/IO_Cntl_Msg.h: - * ace/IO_SAP.cpp: - * ace/IO_SAP.i: - * ace/IPC_SAP.{i,cpp}: - * ace/LOCK_SOCK_Acceptor.cpp: - * ace/Lib_Find.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Lock_Adapter_T.cpp: - * ace/Log_Msg.cpp: - * ace/Log_Msg_NT_Event_Log.cpp: - * ace/Log_Msg_UNIX_Syslog.cpp: - * ace/Log_Record.cpp: - * ace/Log_Record.i: - * ace/Logging_Strategy.cpp: - * ace/MEM_Acceptor.cpp: - * ace/MEM_Addr.{i,cpp}: - * ace/MEM_IO.i: - * ace/Malloc.{h,cpp}: - * ace/Malloc_Allocator.i: - * ace/Malloc_T.{h,cpp}: - * ace/Manual_Event.cpp: - * ace/Mem_Map.{h,i,cpp}: - * ace/Memory_Pool.cpp: - * ace/Message_Block.cpp: - * ace/Message_Queue_T.cpp: - * ace/Metrics_Cache.{h,cpp}: - * ace/Metrics_Cache_T.h: - * ace/Module.h: - * ace/Mutex.{h,inl,cpp}: - * ace/NT_Service.cpp: - * ace/Name_Request_Reply.cpp: - * ace/Naming_Context.{h,cpp}: - * ace/OS_QoS.{h,cpp}: - * ace/OS_Thread_Adapter.cpp: - * ace/Object_Manager.h: - * ace/PI_Malloc.cpp: - * ace/POSIX_Asynch_IO.{h,cpp}: - * ace/POSIX_Proactor.cpp: - * ace/Pipe.{h,i}: - * ace/Proactor.h: - * ace/Proactor_Impl.h: - * ace/Process.{i,cpp}: - * ace/Process_Manager.cpp: - * ace/Profile_Timer.{h,i,cpp}: - * ace/RW_Mutex.{h,cpp}: - * ace/RW_Process_Mutex.h: - * ace/Reactor_Timer_Interface.h: - * ace/Read_Buffer.cpp: - * ace/Recursive_Thread_Mutex.{h,cpp}: - * ace/Refcounted_Auto_Ptr.h: - * ace/Registry.{h,cpp}: - * ace/Registry_Name_Space.h: - * ace/Remote_Name_Space.cpp: - * ace/SOCK.{h,i}: - * ace/SOCK_Acceptor.cpp: - * ace/SOCK_Dgram.{h,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/SPIPE.cpp: - * ace/SPIPE_Acceptor.cpp: - * ace/SPIPE_Addr.cpp: - * ace/SPIPE_Addr.h: - * ace/SPIPE_Connector.cpp: - * ace/SPIPE_Stream.i: - * ace/SString.{h,cpp}: - * ace/SV_Message.{h,i}: - * ace/SV_Message_Queue.{h,i}: - * ace/SV_Semaphore_Simple.{h,i}: - * ace/SV_Shared_Memory.{h,i}: - * ace/Sample_History.cpp: - * ace/Sched_Params.{h,cpp}: - * ace/Select_Reactor_T.cpp: - * ace/Semaphore.{h,inl,cpp}: - * ace/Service_Config.cpp: - * ace/Service_Manager.cpp: - * ace/Service_Repository.cpp: - * ace/Service_Types.cpp: - * ace/Shared_Memory.h: - * ace/Shared_Memory_SV.i: - * ace/Signal.{h,i}: - * ace/Singleton.h: - * ace/Sock_Connect.cpp: - * ace/Stats.{h,cpp}: - * ace/Stream_Modules.cpp: - * ace/String_Base.{h,i,cpp}: - * ace/System_Time.{h,cpp}: - * ace/TLI.{h,cpp}: - * ace/TLI_Acceptor.{h,cpp}: - * ace/TLI_Connector.cpp: - * ace/TLI_Stream.h: - * ace/TSS_T.cpp: - * ace/TTY_IO.{h.cpp}: - * ace/Task_T.i: - * ace/Thread.{h,i}: - * ace/Thread_Adapter.cpp: - * ace/Thread_Control.h: - * ace/Thread_Hook.cpp: - * ace/Thread_Manager.h: - * ace/Thread_Mutex.{h,cpp}: - * ace/Time_Value.inl: - * ace/Timeprobe.{h,cpp}: - * ace/Timeprobe_T.{h,cpp}: - * ace/Timer_Heap_T.cpp: - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_T.cpp: - * ace/Token.{h,i}: - * ace/Trace.cpp: - * ace/UNIX_Addr.i: - * ace/UUID.{h,cpp}: - * ace/Unbounded_Set.h: - * ace/WFMO_Reactor.cpp: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Asynch_IO.h: - * ace/WIN32_Proactor.{h,cpp}: - * ace/gethrtime.cpp: - * ace/RMCast/RMCast.h: - * ace/RMCast/RMCast_Copy_On_Write.{h,i}}: - * ace/RMCast/RMCast_IO_UDP.{h,cpp}: - * ace/RMCast/RMCast_Membership.{h,cpp}: - * ace/RMCast/RMCast_Reassembly.h: - * ace/RMCast/RMCast_Reordering.h: - * ace/RMCast/RMCast_Sequencer.{h,cpp}: - * ace/RMCast/RMCast_UDP_Proxy.cpp: - * apps/Gateway/Gateway/Connection_Handler_Connector.cpp: - * apps/Gateway/Gateway/Event.h: - * apps/Gateway/Gateway/Event_Channel.cpp: - * apps/Gateway/Gateway/Event_Forwarding_Discriminator.h: - * apps/Gateway/Gateway/File_Parser.{h,cpp}: - * apps/Gateway/Gateway/Gateway.h: - * apps/Gateway/Gateway/Options.{h,cpp}: - * apps/Gateway/Peer/Options.cpp: - * apps/JAWS/clients/Blobby/Blob.{h,cpp}: - * apps/JAWS/clients/Blobby/Blob_Handler.{h,cpp}: - * apps/JAWS/clients/Blobby/blobby.cpp: - * apps/JAWS/clients/Caching/URL_Properties.cpp: - * apps/JAWS/server/HTTP_Config.cpp: - * apps/JAWS/server/HTTP_Handler.cpp: - * apps/JAWS/server/HTTP_Helpers.cpp: - * apps/JAWS/server/HTTP_Helpers.h: - * apps/JAWS/server/HTTP_Request.cpp: - * apps/JAWS/server/HTTP_Request.h: - * apps/JAWS/server/HTTP_Response.cpp: - * apps/JAWS/server/HTTP_Server.h: - * apps/JAWS/server/IO.cpp: - * apps/JAWS/server/Parse_Headers.{h,cpp}: - * apps/JAWS/server/main.cpp: - * apps/JAWS/stress_testing/global.h: - * apps/JAWS2/HTTP_10_Write.cpp: - * apps/JAWS2/HTTPU/http_export.h: - * apps/JAWS2/HTTPU/parse_http_request.h: - * apps/JAWS2/HTTPU/parse_http_response.cpp: - * apps/JAWS2/HTTPU/parse_http_response.h: - * apps/JAWS2/HTTPU/parse_url.cpp: - * apps/JAWS2/JAWS/Cache_Hash_T.h: - * apps/JAWS2/JAWS/Cache_Manager.cpp: - * apps/JAWS2/JAWS/Cache_Manager.h: - * apps/JAWS2/JAWS/Cache_Object.{h,cpp}: - * apps/JAWS2/JAWS/Export.h: - * apps/JAWS2/JAWS/FILE.{h,cpp}: - * apps/JAWS2/JAWS/Filecache.{h,cpp}: - * apps/JAWS2/JAWS/Headers.cpp: - * apps/drwho/BS_Client.cpp: - * apps/drwho/BS_Server.cpp: - * apps/drwho/Binary_Search.cpp: - * apps/drwho/CM_Client.{h,cpp}: - * apps/drwho/CM_Server.cpp: - * apps/drwho/Comm_Manager.h: - * apps/drwho/File_Manager.cpp: - * apps/drwho/HT_Client.cpp: - * apps/drwho/HT_Server.cpp: - * apps/drwho/Hash_Table.cpp: - * apps/drwho/Multicast_Manager.{h,cpp}: - * apps/drwho/Options.h: - * apps/drwho/PMC_All.cpp: - * apps/drwho/PMC_Flo.cpp: - * apps/drwho/PMC_Ruser.cpp: - * apps/drwho/PMC_Usr.cpp: - * apps/drwho/PMS_All.cpp: - * apps/drwho/PMS_Flo.cpp: - * apps/drwho/PMS_Ruser.cpp: - * apps/drwho/PMS_Usr.cpp: - * apps/drwho/PM_Client.cpp: - * apps/drwho/PM_Server.cpp: - * apps/drwho/Protocol_Manager.{h,cpp}: - * apps/drwho/Rwho_DB_Manager.cpp: - * apps/drwho/SL_Server.cpp: - * apps/drwho/SM_Client.cpp: - * apps/drwho/SM_Server.cpp: - * apps/drwho/client.cpp: - * apps/drwho/global.h: - * apps/drwho/server.cpp: - * apps/gperf/src/Bool_Array.cpp: - * apps/gperf/src/Gen_Perf.cpp: - * apps/gperf/src/Hash_Table.cpp: - * apps/gperf/src/Hash_Table.h: - * apps/gperf/src/Iterator.cpp: - * apps/gperf/src/Key_List.cpp: - * apps/gperf/src/List_Node.cpp: - * apps/gperf/src/Options.cpp: - * apps/gperf/src/Options.h: - * apps/gperf/src/Vectors.h: - * apps/gperf/src/gperf.cpp: - * apps/gperf/tests/test.cpp: - * apps/mkcsregdb/mkcsregdb.cpp: - * apps/soreduce/Library.cpp: - * apps/soreduce/Obj_Module.cpp: - * apps/soreduce/SO_Group.cpp: - * examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp: - * examples/ASX/Event_Server/Event_Server/Options.{h,cpp}: - * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp: - * examples/ASX/Message_Queue/bounded_buffer.cpp: - * examples/ASX/Message_Queue/buffer_stream.cpp: - * examples/ASX/UPIPE_Event_Server/Options.{h,cpp}: - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv1/Logging_Handler.cpp: - * examples/C++NPv1/Logging_Server.cpp: - * examples/C++NPv1/Reactive_Logging_Server_Ex.h: - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: - * examples/C++NPv2/Client_Logging_Daemon.cpp: - * examples/C++NPv2/Configurable_Logging_Server.cpp: - * examples/C++NPv2/Logging_Event_Handler.cpp: - * examples/C++NPv2/Logging_Handler.cpp: - * examples/C++NPv2/Reactor_Logging_Server_Adapter.cpp: - * examples/C++NPv2/SR_Configurable_Logging_Server.cpp: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/Service_Reporter.cpp: - * examples/C++NPv2/TPC_Logging_Server.cpp: - * examples/C++NPv2/TP_Logging_Server.cpp: - * examples/C++NPv2/TP_Logging_Server.h: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - * examples/C++NPv2/display_logfile.cpp: - * examples/DLL/Newsweek.{h,cpp}: - * examples/DLL/Today.{h,cpp}: - * examples/IPC_SAP/ATM_SAP/CPP-client.cpp: - * examples/IPC_SAP/ATM_SAP/CPP-server.cpp: - * examples/IPC_SAP/DEV_SAP/reader/reader.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp: - * examples/IPC_SAP/FILE_SAP/client.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.h: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp: - * examples/IPC_SAP/SPIPE_SAP/client.cpp: - * examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp: - * examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp: - * examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp: - * examples/IPC_SAP/SPIPE_SAP/producer_read.cpp: - * examples/IPC_SAP/SPIPE_SAP/server.cpp: - * examples/IPC_SAP/SPIPE_SAP/shared.h: - * examples/IPC_SAP/SSL_SAP/SSL-client-simple.h: - * examples/IPC_SAP/SSL_SAP/SSL-client.h: - * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-server.cpp: - * examples/IPC_SAP/TLI_SAP/db-client.cpp: - * examples/IPC_SAP/TLI_SAP/ftp-client.cpp: - * 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/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp: - * examples/Logger/Acceptor-server/server_loggerd.h: - * examples/Logger/client/logging_app.cpp: - * examples/Logger/simple-server/Logging_Handler.h: - * examples/Map_Manager/test_hash_map_manager.cpp: - * examples/Mem_Map/IO-tests/IO_Test.cpp: - * examples/Mem_Map/IO-tests/test_io.cpp: - * examples/Mem_Map/file-reverse/file-reverse.cpp: - * examples/Misc/test_XtReactor1.cpp,: - * examples/Misc/test_XtReactor2.cpp: - * examples/Misc/test_dump.{h,cpp}: - * examples/Misc/test_get_opt.cpp: - * examples/Misc/test_profile_timer.cpp: - * examples/Misc/test_read_buffer.cpp: - * examples/Misc/test_set.cpp: - * examples/Misc/test_sstring.cpp: - * examples/Misc/test_trace.cpp: - * examples/NT_Service/ntsvc.cpp: - * examples/Naming/test_multiple_contexts.cpp: - * examples/Naming/test_non_existent.cpp: - * examples/Naming/test_open.cpp: - * examples/Naming/test_writers.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/QoS_Util.cpp: - * 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/QoS_Util.cpp: - * 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/QoS_Util.cpp: - * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp: - * examples/QOS/Simple/receiver.cpp: - * examples/QOS/Simple/sender.cpp: - * examples/RMCast/Send_File/Receiver.cpp: - * examples/RMCast/Send_File/Sender.cpp: - * examples/Reactor/Dgram/CODgram.cpp: - * examples/Reactor/Dgram/Dgram.cpp: - * examples/Reactor/Misc/pingpong.cpp: - * examples/Reactor/Misc/test_early_timeouts.cpp: - * examples/Reactor/Misc/test_time_value.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Reactor/Multicast/client.cpp: - * examples/Reactor/Multicast/server.cpp: - * examples/Reactor/Ntalker/ntalker.cpp: - * examples/Reactor/Proactor/post_completions.cpp: - * examples/Reactor/Proactor/test_aiocb_ace.cpp: - * examples/Reactor/Proactor/test_cancel.cpp: - * examples/Reactor/Proactor/test_end_event_loop.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/Proactor/test_timeout.cpp: - * examples/Reactor/Proactor/test_udp_proactor.cpp: - * examples/Reactor/WFMO_Reactor/APC.cpp: - * examples/Reactor/WFMO_Reactor/Abandoned.cpp: - * examples/Reactor/WFMO_Reactor/Directory_Changes.cpp: - * examples/Reactor/WFMO_Reactor/Exceptions.cpp: - * examples/Reactor/WFMO_Reactor/Multithreading.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/Registry/test_registry_iterator.cpp: - * examples/Registry/test_registry_update.cpp: - * examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i: - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i: - * examples/Service_Configurator/Misc/main.cpp: - * examples/Shared_Malloc/Options.cpp: - * examples/Shared_Malloc/Options.h: - * examples/Shared_Malloc/test_malloc.cpp: - * examples/Shared_Memory/test_MM.cpp: - * examples/Shared_Memory/test_SV.cpp: - * examples/Smart_Pointers/Widget_Part_Impl.cpp: - * examples/Smart_Pointers/gadget_test.cpp: - * examples/Smart_Pointers/widget_test.cpp: - * examples/Synch/proc_sema.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp: - * examples/System_V_IPC/SV_Message_Queues/test.h: - * examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp: - * examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.h: - * examples/Threads/auto_event.cpp: - * examples/Threads/barrier1.cpp: - * examples/Threads/barrier2.cpp: - * examples/Threads/cancel.cpp: - * examples/Threads/future1.cpp: - * examples/Threads/future2.cpp: - * examples/Threads/manual_event.cpp: - * examples/Threads/process_manager.cpp: - * examples/Threads/process_mutex.cpp: - * examples/Threads/process_semaphore.cpp: - * examples/Threads/reader_writer.cpp: - * examples/Threads/recursive_mutex.cpp: - * examples/Threads/task_five.cpp: - * examples/Threads/task_four.cpp: - * examples/Threads/task_one.cpp: - * examples/Threads/task_three.cpp: - * examples/Threads/task_two.cpp: - * examples/Threads/thread_manager.cpp: - * examples/Threads/thread_pool.cpp: - * examples/Threads/thread_specific.cpp: - * examples/Threads/token.cpp: - * examples/Threads/tss1.cpp: - * examples/Threads/tss2.cpp:: - * examples/Timer_Queue/main_async.cpp: - * examples/Timer_Queue/main_reactor.cpp: - * examples/Timer_Queue/main_thread.cpp: - * examples/Web_Crawler/Options.cpp: - * examples/Web_Crawler/Options.h: - * examples/Web_Crawler/URL_Addr.cpp: - * examples/Web_Crawler/URL_Status.h: - * netsvcs/clients/Logger/direct_logging.cpp: - * netsvcs/clients/Logger/indirect_logging.cpp: - * netsvcs/clients/Naming/Client/Client_Test.cpp: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - * netsvcs/clients/Tokens/collection/collection.cpp: - * netsvcs/clients/Tokens/collection/rw_locks.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: - * netsvcs/lib/Base_Optimizer.h: - * netsvcs/lib/Log_Message_Receiver.h: - * netsvcs/lib/Server_Logging_Handler.h: - * netsvcs/lib/Server_Logging_Handler_T.cpp: - * netsvcs/lib/TS_Clerk_Handler.cpp: - * netsvcs/lib/TS_Server_Handler.cpp: - * 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_mutex.cpp: - * performance-tests/Misc/test_naming.cpp: - * performance-tests/Misc/test_singleton.cpp: - * performance-tests/SCTP/Options_Manager.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_srv.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.h: - * performance-tests/Synch-Benchmarks/Synch_Lib/export_mac.h: - * performance-tests/TCP/tcp_test.cpp: - * performance-tests/UDP/udp_test.cpp: - * tests/Aio_Platform_Test.cpp: - * tests/Auto_IncDec_Test.cpp: - * tests/Barrier_Test.cpp: - * tests/Basic_Types_Test.cpp: - * tests/Buffer_Stream_Test.cpp: - * tests/CE_fostream.h: - * tests/Cache_Map_Manager_Test.cpp: - * tests/Config_Test.cpp: - * tests/Conn_Test.cpp: - * tests/DLL_Test.cpp: - * tests/DLL_Test_Impl.cpp: - * tests/DLL_Test_Impl.h: - * tests/Dirent_Test.cpp: - * tests/Enum_Interfaces_Test.cpp: - * tests/Env_Value_Test.cpp: - * tests/FIFO_Test.cpp: - * tests/Framework_Component_DLL.cpp: - * tests/Hash_Map_Bucket_Iterator_Test.cpp: - * tests/Hash_Map_Manager_Test.cpp: - * tests/High_Res_Timer_Test.cpp: - * tests/INET_Addr_Test.cpp: - * tests/Logging_Strategy_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/MEM_Stream_Test.h: - * tests/MM_Shared_Memory_Test.cpp: - * tests/MT_Reactor_Upcall_Test.cpp: - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Main.cpp: - * tests/Map_Test.{h,cpp}: - * tests/Max_Default_Port_Test.cpp: - * tests/Mem_Map_Test.cpp: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Message_Queue_Test.cpp: - * tests/Message_Queue_Test_Ex.{h,cpp}: - * tests/Multicast_Test.cpp: - * tests/Multihomed_INET_Addr_Test.cpp: - * tests/Naming_Test.cpp: - * tests/New_Fail_Test.cpp: - * tests/OS_Test.cpp: - * tests/Obstack_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Priority_Task_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/RB_Tree_Test.cpp: - * tests/Reactor_Notify_Test.cpp: - * tests/Reader_Writer_Test.cpp: - * tests/Reverse_Lock_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Test.cpp: - * tests/SPIPE_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/Signal_Test.cpp: - * tests/Sigset_Ops_Test.cpp: - * tests/Simple_Message_Block_Test.cpp: - * tests/TP_Reactor_Test.{h,cpp}: - * tests/TSS_Test.cpp: - * tests/Test_Output.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/Time_Service_Test.cpp: - * tests/Timeprobe_Test.cpp: - * tests/Timer_Queue_Reference_Counting_Test.cpp: - * tests/Timer_Queue_Test.cpp: - * tests/Upgradable_RW_Test.h: - * tests/RMCast/Main.cpp: - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Membership_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/RMCast/RMCast_Reordering_Test.cpp: - * tests/RMCast/RMCast_Retransmission_Test.cpp: - * tests/SSL/Main.cpp: - * websvcs/lib/URL_Addr.cpp: - * websvcs/lib/URL_Addr.i - Removed OS.h and refactored #includes due to above subsetting; - changed occurrences of ACE_OS_String and ACE_OS_Dirent to - ACE_OS; changes u_long, etc., to unsigned long to reduce - dependencies; reordered includes in *.cpp's to come after the - inline file include, reducing the difference between inlined and - non-inlined builds. - - * ace/CLASSIX/CLASSIX_OS.h: - * ace/CLASSIX/CLASSIX_Port_Core.h: - Removed #include OS.h from these files, but didn't add new - headers since it isn't regularly compiled. - - * ACEXML/parser/parser/ParserContext.cpp: - Added template instantiation for ACE_Swap. - -Fri Oct 31 14:29:07 2003 Edward R. Mulholland - - * performance-tests/SCTP/run_spectrum.pl: - - Eliminated spurious error messages. - -Fri Oct 31 14:09:37 2003 Edward R. Mulholland - - * ace/Multihomed_INET_Addr.cpp: - * ace/Multihomed_INET_Addr.h: - - The port numbers of the secondary addresses are now kept in sync - with the port number of the primary address. - - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/SOCK_SEQPACK_Association.h: - * ace/SOCK_SEQPACK_Connector.h: - * ace/OS.h: - - The PEER_ADDR typedefs have been changed from ACE_INET_Addr to - ACE_Multihomed_INET_Addr. The "broken templates" section of - OS.h has been changed accordingly. - - * ace/SOCK_SEQPACK_Acceptor.cpp: - - Hostname restrictions are now preserved during wildcard bind - operations. - -Fri Oct 31 07:50:48 2003 Balachandran Natarajan - - * bin/MakeProjectCreator/config/dynamicinterface.mpb: - * bin/MakeProjectCreator/config/iorinterceptor.mpb: - * bin/MakeProjectCreator/config/messaging.mpb: - * bin/MakeProjectCreator/config/objreftemplate.mpb: - * bin/MakeProjectCreator/config/valuetype.mpb: - - The dependencies were not right. For long the weak links between - libraries allowed us to get away without proper - dependencies. With the refactoring the dependencies got explicit - and we need the dependencies set right. - -Fri Oct 31 07:38:40 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Allow a user to set the sharedname to empty to force only static - builds. Also, fixed the output directory target such that it will - be executed before the library is generated. - - * bin/MakeProjectCreator/templates/automake.mpd: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/ghs.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - - Allow these templates to work properly if the sharedname is set to - empty. - - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - - Partially fixed a bug with static libraries. The wrong - configuration type and library tool was being used. A correct - implementation of the vc7 type would involve splitting the static - build targets from the dynamic into separate projects. - -Thu Oct 30 16:14:06 2003 Balachandran Natarajan - - * ace/Thread_Manager.cpp (spawn_i): - - Fixed ACE_Thread_Manager problem on VxWorks where thread id - could be corrupted by taking address of a temporary - variable. Thank to Dennis Noll, and Brian Mendel for tracking - this down. - -Thu Oct 30 11:57:36 2003 Balachandran Natarajan - - * bin/tao_orb_tests.lst: Added a couple of Portable_Interceptor - tests to the daily builds. - -Thu Oct 30 09:33:15 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Allow the GENFLAGS value to be overridden by MPC when the makefiles - are being generated. - -Thu Oct 30 14:24:12 UTC 2003 Johnny Willemsen - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.mpc: - Corrected dynamicflags - -Thu Oct 30 07:48:29 2003 Chad Elliott - - * bin/MakeProjectCreator/config/ciao_servant.mpb: - - Removed the double quotes around E.idl, since this caused problems - with the VC71 projects and wasn't necessary anyway. - -Thu Oct 30 06:35:57 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - - Fixed a reference of libflag that should have been staticflag. - -Wed Oct 29 14:06:45 2003 Venkita Subramonian - - * Kokyu/Kokyu_defs.{h,i}: Added default constructor for - ConfigInfo, which puts in default values. - -Wed Oct 29 12:02:41 2003 Steve Huston - - * bin/MakeProjectCreator/templates/automake.mpd: Change the - minimum required automake version to 1.7 and added some - further header comments. - -Wed Oct 29 07:03:12 2003 UTC Johnny Willemsen - - * include/makeinclude/rules.local.GNU: - Added a rule so that files with extension .rc are compiled with - COMPILE.rc which is then the RC. By setting then RC to the - resource compiler in the specific GNU file resource files are - compiled. - - * include/makeinclude/wrapper_macros.GNU: - Added COMPILE.rc rule that uses the new RC to make it easy to set the - resource compiler needed. - - * include/makeinclude/platform_gnuwin32_common.GNU: - Set RC to windres. Cygwin and MinGW have a resource compiler and then - put version info into the DLL. - - * bin/MakeProjectCreator/templates/gnu.mpd: - Generate the resource files into the makefile and when RC is set add - those files to FILES so that the resource files are compiled. - - Thanks to Andrew L. Shwaika for pointing us at the - possibility to use a resource compiler with MinGW. - -Tue Oct 28 17:07:19 2003 Steve Huston - - * Makefile.am: Added definition of ACLOCAL so autoconf stuff gets - rebuilt correctly when needed. - -Tue Oct 28 16:33:41 2003 Steve Huston - - * m4/ace.m4: Added new option, --enable-stdcpplib, defaults to yes. - This enables (disables) use of the standard C++ library on platforms - where it makes a difference, like HP-UX aC++. - - * m4/compiler.m4: For HP aC++, add -Ae (c89 mode) to CFLAGS. - When using --enable-stdcpplib=yes with aC++, add -AA to CXXFLAGS. - -Tue Oct 28 07:52:12 UTC 2003 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Added GNU variable pipes. When this is not set, it defaults to 0. - When it is 1, it results in adding -pipe to the CFLAGS. - - * include/makeinclude/platform_gnuwin32_common.GNU: - Only set pipes to 1, the new code in wrapper_macros.GNU will add - the needed compiler flag - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - When running the Tornado compiler on Win32 we can use pipes, so - when pipes is not set, set it to 1. Also don't add the compiler - flag anymore, this is done in wrapper_macros.GNU - -Mon Oct 27 16:00:19 2003 Steve Huston - - * ACEXML/common/ZipCharStream.cpp: Silence HP aC++ warnings about - an empty translation unit. - -Mon Oct 27 15:51:39 2003 Steve Huston - - * configure.ac: - * m4/acinclude.m4: Remove \ from \-quoted double- and back-quote - characters to obey warnings from autoheader 2.57g. autoheader's - processing of these warnings was erroneous, causing it to fail. - -Mon Oct 27 19:48:13 UTC 2003 Johnny Willemsen - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - For reverseclean don't use the reverse_clean perl script but do - a realclean in reverse order. This fixes the problem we have in the - Sun Forte build where the list of arguments to the perl script is - to long. - -Mon Oct 27 11:17:03 2003 Gautam Thaker - - * SOCK_SEQPACK_clt.cpp: - Fixed a previously made change that was using sizes for tests as - n**2 rather than 2**n! - SOCK_STREAM_clt.cpp: - Fixed a previously made change that was using sizes for tests as - n**2 rather than 2**n! - -Sat Oct 25 10:51:23 UTC 2003 Johnny Willemsen - - * ace/config-win32-common.h: Fixed compile problem in this file - -Fri Oct 17 18:40:55 2003 Douglas C. Schmidt - - * ace/Log_Msg.cpp: Modify the ACE_Log_Msg::dec() method to avoid - "going negative." Thanks to Matthieu Vansteene - for reporting this. - -Thu Oct 23 17:14:47 2003 Douglas C. Schmidt - - * ace/config-win32-common.h: Fixed a problem whereby ACE_IOV_MAX - should have been 16 for Win 95/98/me. Thanks to Enrico Detoma - for reporting this. - -Fri Oct 24 11:27:52 2003 Venkita Subramonian - - * ACE version 5.3.5 released. - -Fri Oct 24 10:48:41 2003 Venkita Subramonian - - * ACE-INSTALL.html: Changed documentation to reflect the fact that - $ACE_ROOT/lib also has to added LD_LIBRARY_PATH since some of - the libraries are generated in this directory. - -Fri Oct 24 10:46:56 2003 Balachandran Natarajan - - * Makefile: Added lib to the release files. - -Wed Oct 22 11:14:33 UTC 2003 Johnny Willemsen - - * ASNMP/tests/Counter64_Test.cpp: - Added define ULLONG on Win32 to fix compile error with MinGW. - -Tue Oct 21 11:00:51 2003 Balachandran Natarajan - - * ace/Select_Reactor_Base.cpp (notify): Release memory from the - Event_Handler_var after adding messages to the notify queue - without adding any messages to the pipe. Thanks to the daily - builds for catching this. - -Mon Oct 20 13:31:36 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/nmake.mpd: - - Remove the dependency on the pch generated file from the object - target. It is unnecessary and causes problems with the /YX - option. - -Mon Oct 20 16:38:12 UTC 2003 Don Hinton - - * bin/create_ace_build.pl: - Don't exclude *.exp when linking since these are the expected - result files for apps/gperf/tests. - - * tests/New_Fail_Test: - Added #ifdef around unused code to remove warnings> - - * ace/Auto_Event.cpp: - * ace/Event.cpp: - * ace/Lock.cpp: - * ace/Manual_Event.cpp: - * ace/Mutex.cpp: - * ace/RW_Mutex.cpp: - * ace/RW_Thread_Mutex.cpp: - * ace/Thread_Semaphore.cpp: - Added #include of the associated headers that were missing. - This will be needed once these files are compiled separately via - MPC. Thanks to Barry Benowitz for - motivating this. - -Sun Oct 19 21:25:59 2003 Venkita Subramonian - - * performance-tests/SCTP/hist.cpp: Fixed fuzz errors. Include - "ace/os_include/os_math.h" instead of math.h. - -Sun Oct 19 21:16:44 2003 Venkita Subramonian - - * apps/JAWS3/http/HTTP_Service_Handler.h: - * apps/JAWS3/http/HTTP_Service_Handler.cpp: - * apps/JAWS3/small/SS_Service_Handler.cpp: - * apps/JAWS3/small/SS_Service_Handler.h: Fixed Fuzz errors. - -Sun Oct 19 20:36:50 2003 Venkita Subramonian - - * Kokyu/docs/Kokyu.html: - * Kokyu/docs/kokyu1.jpg: - * Kokyu/docs/kokyu2.jpg: - * Kokyu/docs/KokyuEC.jpg: - * Kokyu/Kokyu.html: - * Kokyu/kokyu1.jpg: - * Kokyu/kokyu2.jpg: - * Kokyu/KokyuEC.jpg: Moved these files to Kokyu/docs. Thanks to - Bala for pointing this out. - -Fri Oct 17 16:21:39 2003 Steve Huston - - * include/makeinclude/wrapper_macros.GNU: Only set SONAME if - platform_macros.GNU didn't. - - * include/makeinclude/platform_g++_common.GNU: Conditionalize - addition of SONAME to SOFLAGS based on versioned_so, not on - SONAME's content. However, even with versioned_so, don't try to - add SOFLAGS stuff if with_ld is openbsd - it doesn't support it. - - * include/makeinclude/platform_aix_g++.GNU: - * include/makeinclude/platform_hpux_aCC.GNU: - * include/makeinclude/platform_hpux_gcc.GNU: - * include/makeinclude/platform_macosx.GNU: - * include/makeinclude/platform_vxworks5.x_g++.GNU: Set versioned_so - to 0 by default to avoid shared lib version tagging rather - than set SONAME to blank. - - * include/makeinclude/platform_openbsd.GNU: Set with_ld to openbsd - to tell platform_g++_common.GNU not to add the ldname options - even if versioned_so is enabled. - - * include/makeinclude/platform_sunos5_sunc++.GNU: Add shared lib - option to SOFLAGS if versioned_so is 1. Set versioned_so to 1 - by default. - -Fri Oct 17 06:48:15 UTC 2003 Johnny Willemsen - - * ace/OS.h: - When using the new CBX preview compiler define ACE_NSIG as _NSIG - -Thu Oct 16 21:18:06 2003 Venkita Subramonian - - * bin/MakeProjectCreator/config/kokyu_dsrt_schedulers.mpb: - Added rtscheduling as a base project. This should take care of - link problems in cygwin build. - -Thu Oct 16 18:08:01 UTC 2003 Johnny Willemsen - - * ace/Basic_Types.h: - Reverted my change below, when I committed it, I realized it - is not the correct place - - * ace/config-win32-borland.h: - Added ACE_LACKS_PTRDIFF_T and ACE_PTRDIFF_T_TYPE to get the - ptrdiff_t out of the std namespace. - -Thu Oct 16 17:56:13 UTC 2003 Johnny Willemsen - - * ace/Basic_Types.h: - When using the new Borland compiler from CBuilderX get - ptrdiff_t out of the std namespace. This fixes hundreds - of compile errors in our CBX Preview build. - -Thu Oct 16 15:36:22 2003 Steve Huston - - * bin/PerlACE/Process_Win32.pm: For testing using Pocket Controller, - use "start/wait" instead of running the command and sleeping. Gets - the tests run quicker and more reliably. Requires Pocket Controller - Enterprise V4.01 or higher. - -Thu Oct 16 09:03:11 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - - Fixed another problem with * in the after keyword. Multiple - listings with * would only pick up the first one. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - If install is set to . for exe's then don't do anything. - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - - Added support for setting ar flags and setting cpp flags on the - make command line. - -Thu Oct 16 09:02:24 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyGenerator.pm: - - Escape regular expression special characters from strings - before they are used as regular expressions. - -Thu Oct 16 08:37:54 2003 Chad Elliott - - * apps/gperf/tests/tests.mpc: - - Fixed a bug with dependencies and parallelism between building the - test and running the test. - -Wed Oct 15 13:40:02 2003 Huang-Ming Huang - - * bin/MakeProjectCreator/config/ftrtevent.mpb - * bin/MakeProjectCreator/config/ftrteventclient.mpb - Added for fault tolerant event service. - -Wed Oct 15 18:28:02 UTC 2003 Don Hinton - - * ace/os_include/net/os_if.h: - Added #undef of IOR on HP-UX. IOR is used in TAO. Thanks to - Torsten Kopper for this patch. - -Wed Oct 15 12:10:39 2003 Douglas C. Schmidt - - * ACE-INSTALL.html: Updated the documentation to make it - clear that setenv is a TCSH/CSHism. Thanks to David McKen - for reporting this. - -Wed Oct 15 13:22:32 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_linux_borland.GNU: - Also set versioned_so to 0 in this file. - -Wed Oct 15 13:16:12 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_mingw32.GNU: - * include/makeinclude/platform_cygwin32.GNU: - Instead of setting SONAME and SOVERSION to empty, set - versioned_so to 0 to indicate that versioned dll's should - be used because cygwin and mingw have problem with this. - This makes Cygwin/MinGW working again. - -Wed Oct 15 08:45:20 EDT 2003 Kevin Bryank - - * bin/MakeProjectCreator/config/rtcosscheduling.mpb: - Adding base project for using the RTC 1.0 Scheduling Service - -Wed Oct 15 10:40:12 UTC 2003 Johnny Willemsen - - * ace/Select_Reactor_Base.cpp: - Fixed unused argument warning when ACE_HAS_REACTOR_NOTIFICATION_QUEUE - is defined - -Tue Oct 14 21:54:07 2003 Nanbor Wang - - * Makefile (CIAO_CORE_DIRS): Added Kokyu to the list of base - library for CIAO. Although CIAO doesn't depend on Kokyu, it is - needed to allow the compilation in orbsvcs/orbsvcs/ to run to - completion. - -Tue Oct 14 23:21:00 UTC 2003 Don Hinton - - * ace/OS.h: - Removed following method declarations that were not implemented - or used: times(), cond_timedwait_i(), alarm_i(), ualarm_i(), - sleep_i(), nanosleep_i(), select_i(), poll_i(), sema_wait_i(), - sigtimedwait_i(), gettimeofday_i(). - - * ace/Process.h: - Fixed typo and added #include of Global_Macros.h. - -Tue Oct 14 17:13:46 2003 Douglas C. Schmidt - - * ace/Process.h: Put the ACE_Process copy constructor and - assignment operator in the private part of the class to disallow - copying. Thanks to Adam Fanello for - reporting this. - - * ace/OS.cpp: Added patches to support PHARLAP. Thanks - to Ira Burton for supplying these. - -Tue Oct 14 13:54:19 2003 Steve Huston - Picked up from ACE 5.3: - Wed Jun 11 17:18:39 2003 Steve Huston - - * include/makeinclude/wrapper_macros.GNU: Make SOVERSION - user-settable if versioned_so is enabled. Thanks to Craig L. - Ching for this idea. - Also moved the versioned_so and SOVERSION setup to after - platform_macros.GNU is included so that users can set this stuff - up in their platform_macros.GNU file. The ACE_MAJOR_VERSION, - etc. variables are still set up before platform_macros.GNU, though, - in case platform_macros.GNU wants to use them. - -Tue Oct 14 10:45:32 2003 Nanbor Wang - - * Makefile: Added a new CIAO_Core target for building all CIAO - core libraries and tools, including everything they need. - Thanks to Gautam for suggesting this. - -Tue Oct 14 03:43:47 2003 Venkita Subramonian - - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp: Added this-> - qualification to instance variables in base class to fix - compile warnings in HPUX build. - - * Kokyu/Default_Dispatcher_Impl.cpp: - * Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp: - * Kokyu/Dispatcher_Task.cpp: - * Kokyu/Dispatcher_Task.h: - * Kokyu/Kokyu.h: - * Kokyu/Kokyu_defs.i: Removed/added comments - -Tue Oct 14 05:50:43 UTC 2003 Johnny Willemsen - - * tests/Reactor_Notification_Queue_Test.cpp: - Fixed compile error in MSVC6 WChar build - -Mon Oct 13 17:52:31 2003 Balachandran Natarajan - - * tests/Reactor_Notification_Queue_Test.cpp: Fixed a warning in - g++ builds. - -Tue Oct 14 05:27:03 2003 Balachandran Natarajan - - * tests/Reactor_Notification_Queue_Test.dsp: Added this time for - real. - -Mon Oct 13 15:25:41 2003 Venkita Subramonian - - * bin/MakeProjectCreator/config/kokyu_dsrt_schedulers.mpb: - Added include path to the Kokyu_dsrt_schedulers directory. - -Mon Oct 13 08:51:29 2003 Balachandran Natarajan - - * ace/ace_wchar.inl: Reverted the change to BUG 1605 that was - applied. The MSDN documentation doesn't suggest a 1 instead of a - -1. Reopening BUG 1605. - -Mon Oct 13 12:39:33 UTC 2003 Johnny Willemsen - - * tests/Makefile.tests: - Fixed typo in Reactor_Notification_Queue_Test - -Mon Oct 13 08:36:43 UTC 2003 Johnny Willemsen - - * Kokyu/Kokyu_dsrt.h: - * Kokyu/DSRT_CV_Dispatcher_Impl_T.h: - Fixed fuzz pre/post error. - - * tests/Reactor_Notification_Queue_Test.cpp: - Fixed fuzz file mismatch error. - -Mon Oct 13 06:34:12 UTC 2003 Johnny Willemsen - - * bin/mpc.pl: - * bin/MakeProjectCreator/templates/cbxexe.mpt: - * bin/MakeProjectCreator/templates/cbxdll.mpt: - * bin/MakeProjectCreator/templates/cbx.mpd: - * bin/MakeProjectCreator/modules/CbxProjectCreator.pm: - Added first version of cbx generator. This generated project files - for the new C++BuilderX development environment. This just sets some - of the options and adds all files to the project. - -Sun Oct 12 21:07:04 2003 Balachandran Natarajan - - * tests/Makefile.tests: - * tests/Tests.bor: - * tests/run_test.lst: - * tests/tests.mpc: Regular exercise for building and running the - test on all the platforms. - -Sun Oct 12 19:03:31 2003 Venkita Subramonian - - * Kokyu/Dispatcher_Task.cpp: Changed the Null lock in the - allocator to Mutex lock. - -Sun Oct 12 17:20:40 2003 Balachandran Natarajan - - * ace/Select_Reactor_Base.cpp: Fix for [BUG 1268]. Please refer to - bugzilla database at - - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1268 - - for more details on the source of the problem and the solution - for the same. Thanks to Carlos O'Ryan for providing patches. - - * tests/Reactor_Notification_Queue_Test.cpp: - * tests/Reactor_Notification_Queue_Test.dsp: - * tests/tests.dsw: New test that stresses the feature of sending - notify messages to the reactor. Thanks to Carlos O'Ryan for - providing the test. - -Sun Oct 12 14:08:38 2003 Venkita Subramonian - - * bin/MakeProjectCreator/config/kokyu_dsrt_schedulers.mpb: - * bin/MakeProjectCreator/config/kokyu_dsrt_scheduler_client.mpb: - * bin/MakeProjectCreator/config/kokyu_dsrt_scheduler_server.mpb: - Added MPC base project files for Kokyu DSRT schedulers. - -Sun Oct 12 11:48:02 2003 Venkita Subramonian - - * Kokyu/Kokyu.html: - * Kokyu/kokyu1.jpg: - * Kokyu/kokyu2.jpg: - * Kokyu/KokyuEC.jpg: Added some initial documentation on Kokyu. - -Sun Oct 12 17:34:12 UTC 2003 Johnny Willemsen - - * ACE-INSTALL.html: - Removed mentioning of tests/run_tests.bat, it has been removed - some time ago and the perl script run_tests.pl is the only one - to use. Updated documentation for Borland support. CBuilderX is - now supported, but not the new preview compiler that is shipped - with CBuilderX. - -Sun Oct 12 08:42:32 2003 Venkita Subramonian - - * Kokyu/tests/DSRT_MIF/MIF.cpp: - * Kokyu/tests/DSRT_MIF/Makefile: - * Kokyu/tests/FIFO/test.cpp: - * Kokyu/tests/FIFO/README: - * Kokyu/tests/EDF/README: - * Kokyu/tests/EDF/test.cpp: Added more output info - statements. Added README for the examples. - -Sat Oct 11 23:48:21 2003 Ossama Othman - - * bin/tao_other_tests.lst: - - Enabled TAO load balancer infrastructure controlled membership - and CPU load monitor tests. - -Sat Oct 11 21:51:52 2003 Venkita Subramonian - - * Kokyu/Kokyu_defs.{h,i,cpp}: - * Kokyu/Default_Dispatcher_Impl.cpp: Fixed some minor bugs related - to setting the dispatcher with the correct sched policy. - - * Kokyu/tests/FIFO/test.cpp: Added some output print statements to - print error messages on dispatcher failure. - -Sat Oct 11 17:39:09 2003 Venkita Subramonian - - * Kokyu/Dispatcher_Task.i: - * Kokyu/Dispatcher_Task.h: - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp: - * Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp: - - Add this-> qualification when referencing instance variables in - base class to get rid of compiler warnings in HPUX build. - - * ace/ace_wchar.inl: Fix for BUG 1605. Thanks to Dmitry - Botcharnikov and Stephan Bettermann - for reporting the problem and suggesting - a solution. Please see - - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1605 - - for a description of the problem. - -Sat Oct 11 11:01:05 2003 Venkita Subramonian - - * Kokyu/Koku_defs.h: - Added export qualification for some classes to get rid of link - errors in MSVC builds. - -Fri Oct 10 22:56:35 2003 Venkita Subramonian - - * Kokyu/Kokyu_defs.{h,i,cpp}: - * Kokyu/Dispatcher_Task.{i,h,cpp}: - * Kokyu/Dispatcher_Impl.h: - * Kokyu/Default_Dispatcher_Impl.cpp: - - Added allocator, sched scope, sched policy, reordering queue - attributes to the Dispatcher_Attributes class. This will make - the dispatcher more configurable. - - * Kokyu/tests/FIFO/test.cpp: - * Kokyu/tests/EDF/test.cpp: - - Added command line options to specify the sched policy. - -Fri Oct 10 19:52:26 UTC 2003 Don Hinton - - * ace/OS.{h,i}: - On some platforms clearerr is a macro. Because of this, - the name ACE_OS::clearerr will cause errors. So in order - to use the macro as it is defined but also keep the name - ACE_OS::clearerr, clearerr macro is used in inline function, - and then undefined. This patch fixes the "fixes" committed by - Wed Sep 24 08:57:36 2003 Balachandran Natarajan - and Tue Apr 15 16:06:24 2003 Douglas - C. Schmidt . Thanks to Olli Savia - for submitting the patch and Bala for motivation me - to apply it... - -Fri Oct 10 10:05:14 UTC 2003 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Instead of obj use $(OBJEXT) and instead of lib use $(LIBEXT) to - handle the new extensions for the CBX Preview compiler. - -Fri Oct 10 08:14:33 UTC 2003 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Added some support for the new CBuilderX preview compiler. This has - a different name and different options to be used. When defining CBX - as environment variable this new compiler is used, else we just use - the normal compiler. - -Thu Oct 09 12:43:51 2003 Irfan Pyarali - - * bin/MakeProjectCreator/config/rtscheduling.mpb (after): The - after directive should have the name of the project and not the - name of the directory. This should solve the problem of - RTScheduling tests making before the RTScheduler library has - been built. - -Wed Oct 08 21:43:30 2003 Huang-Ming Huang - - * bin/MakeProjectCreator/config/ftorb.mpb - * bin/MakeProjectCreator/config/ftclientorb.mpb - * bin/MakeProjectCreator/config/ftserverorb.mpb - * bin/MakeProjectCreator/config/ftorbutils.mpb - - Modified or Added for the separation of FT framework. - -Wed Oct 8 14:17:33 UTC 2003 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - When using Kylix use a different $(BIN) rule. This will fix a lot - of the errors we have in the Kylix build. - -Wed Oct 8 13:56:43 UTC 2003 Johnny Willemsen - - * apps/soreduce/Library.cpp: - * apps/soreduce/Obj_Module.cpp: - * apps/soreduce/SO_Group.cpp: - Fixed compile errors that appeared in the MinGW build. Used - the ACE_OS version of methods instead of the native ones. - -Wed Oct 8 07:12:33 UTC 2003 Johnny Willemsen - - * ASNMP/asnmp/address.cpp: - Fixed compile problem in MinGW build - -Tue Oct 7 21:10:22 2003 Venkita Subramonian - - * Kokyu/DSRT_CV_Dispatcher_Impl_T.{h,cpp}: - * Kokyu/DSRT_Dispatcher_Impl_T.{h,cpp}: - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.{h,cpp}: - * Kokyu/DSRT_Dispatch_Item_T.h: - * Kokyu/DSRT_Sched_Queue_T.{h,cpp}: - * Kokyu/Kokyu_dsrt.cpp: - Added condition variable based implementation of DSRTCORBA - scheduler mechanisms. - - * Kokyu/tests/DSRT_MIF/MIF.cpp: - * Kokyu/tests/DSRT_MIF/Makefile: - Added explicit template instantiations. - -Tue Oct 7 14:54:47 2003 Balachandran Natarajan - - * ace/Reactor.h: Renamed a variable name, signals to sigset. The - former was creating problems when Reactor is used with - Qt. Thanks to Hans Utz for - reporting the problem. - - * Makefile: Added Kokyu to the list of controlled files. Thanks to - Don Hinton for the patch and Werner Buchert for reporting the - problem. - -Tue Oct 07 14:01:11 UTC 2003 Johnny Willemsen - - * examples/Mem_Map/IO-tests/test_io.cpp: - Fixed warning in MinGW build. - -Tue Oct 07 07:54:33 UTC 2003 Johnny Willemsen - - * ace/config-win32-cygwin.h: - Removed ACE_LACKS_SENDMSG and ACE_LACKS_RECVMSG because Cygwin - supports these. - -Tue Oct 07 06:07:12 UTC 2003 Johnny Willemsen - - * ace/config-win32-mingw.h: - Define ACE_HAS_SSIZE_T when building with MinGW version 3 or later - - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/Connection/blocking/SPIPE-acceptor.h: - * Connection/blocking/test_spipe_acceptor.cpp: - This example uses AsynchIO, check for this when compiling and when - this is not available then just build a main saying this isn't - available. This fixes build problems in the Cygwin build. - - * bin/MakeProjectCreator/templates/bor.mpd: - Generate NAME, else nothing happens when building with Borland. - -Fri Oct 03 22:41:20 2003 Chris Cleeland - - * ACE version 5.3.4 released. - -Fri Oct 3 09:37:59 2003 Chad Elliott - - * apps/gperf/tests/gperf_test.mpb: - - Added 'gperf' to the after setting to make sure that gperf gets - built before the tests. - -Thu Oct 2 13:49:22 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - - Also remove underscores that are followed by spaces. The value - could be a space separated list and removing the trailing - underscore isn't enough. - -Thu Oct 2 13:02:44 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - - When generating project names from '*' remove trailing - underscores. - -Thu Oct 2 07:33:07 2003 Venkita Subramonian - - * Kokyu/Default_Dispatcher_Impl.{cpp,i}: - * Kokyu/Dispatcher_Task.{cpp,h,i}: - Fixed to use allocators instead of new. - - * Kokyu/Kokyu_defs.{cpp,i,h}: - * Kokyu/Kokyu_dsrt.h: - Moved some structure definitions around. - - * Kokyu/tests/EDF/test.cpp: - * Kokyu/tests/FIFO/test.cpp: - Added shutdown of the dispatcher at the end. - -Wed Oct 1 10:59:35 2003 Chad Elliott - - * apps/gperf/src/gperf.mpc: - - Inherit from the crosscompile base project. - - * bin/MakeProjectCreator/config/crosscompile.mpb: - - Added a project to disable building (with the gnuace type) for - things that shouldn't be built when crosscompiling. - -Wed Oct 1 09:19:28 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/vc7.mpd: - - When optimize is not set, then turn off some linker optimizations. - - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - When building release targets set optimize equal to 3 (full - optimization). - -Wed Oct 1 07:20:31 2003 Chad Elliott - - * bin/depgen.pl: - - Escape special characters of strings that are going to be used as - regular expressions. - -Wed Oct 1 06:55:03 2003 Chad Elliott - - * apps/drwho/drwho.mpc: - * apps/drwho/nobuild.mpb: - - Added verbatim (in nobuild.mpb) to stop the drwho application from - building on VxWorks, Chorus, minbw32 and cygwin32. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added a new marker to support the above change. - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - - Fixed support for HP-UX. - - * bin/depgen.pl: - - Added support to ignore aCC style options (with a plus sign). - -Tue Sep 30 14:06:53 2003 Chad Elliott - - * apps/gperf/tests/gperf_test.mpb: - * apps/gperf/tests/tests.mpc: - - Added an mpc file for all of the gperf tests. - - * bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/modules/MakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/NMakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added code to handle double dollar signs ($$) in mpc assignment - values. In make based projects, leave $$ as it is, but in others - convert $$ into $. - -Tue Sep 30 10:44:42 2003 Balachandran Natarajan - - * ace/Bug_1576_Regression_Test.cpp: Fixed fuzz errors. - -Tue Sep 30 10:43:34 2003 Balachandran Natarajan - - * ace/UUID.cpp (ACE_Utils): - - Fixed fuzz errors. - -Tue Sep 30 10:40:37 2003 Balachandran Natarajan - - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.h: - * Kokyu/DSRT_Dispatch_Item_T.h: - * Kokyu/DSRT_Dispatch_Item_T.i: - * Kokyu/DSRT_Dispatcher_Impl_T.h: - * Kokyu/DSRT_Sched_Queue_T.h: - * Kokyu/Default_Dispatcher_Impl.h: - * Kokyu/Dispatcher_Impl.h: - * Kokyu/Dispatcher_Task.h: - * Kokyu/Kokyu.h: - * Kokyu/Kokyu_defs.h: - * Kokyu/Kokyu_dsrt.h: - - Fixed fuzz errors. - -Tue Sep 30 10:10:17 2003 Chad Elliott - - * bin/ChangeLogEditor/ChangeLogEntry.pm: - - Escape special characters in file names used as regular - expressions. - -Thu Sep 25 12:39:26 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/nmake.mpd: - - Fixed a bug in the nmake template with dependency generation. - -Thu Sep 25 12:05:22 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Added the ability to use || in the <%if()%>. - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added support for an empty target within the project, but process - targets (such as idl files) that may generate source code. - - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - - Commented out shift for $self since it isn't used. - - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - - Removed arbitrary restriction upon duplicate project names. - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - - Support versions of make other than GNU and added support for - Tru64, LynxOS, MacOS, Unixware and QNX. - -Thu Sep 25 09:24:23 2003 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/Preprocessor.pm: - * bin/depgen.pl: - - Modified the dependency generator to be smarter about processing - include files. - - * include/makeinclude/rules.local.GNU: - - By default use g++dep for dependency generation, but allow an - alternate by setting the DEPGEN make macro. - -Thu Sep 25 09:28:47 2003 Douglas C. Schmidt - - * performance-tests/Misc/childbirth_time.cpp (prof_ace_os_thread): Replaced - NULL with 0 to ensure the code compiles on LynxOS. Thanks to - Olli Savia for reporting this. - - * ace/Pipe.cpp (open): Swapped the order of the SO_RCVBUF and - SO_SNDBUF socket option calls so that the reader sets the RCVBUF - and the writer sets the SNDBUF. Thanks to Tomer Amiaz - for reporting this. - -Wed Sep 24 15:29:25 2003 Douglas C. Schmidt - - * ace/QtReactor.cpp: Fixed a silly mistake caused by a - comment being too close to a '*' character! Thanks to Serge - Kolgan for reporting this. - -Wed Sep 24 12:36:21 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Add implicit project dependencies when generating a per project - workspace. - -Wed Sep 24 11:00:22 2003 Jeff Parsons - - * ace/ace_dll.dsp: - - Added missing files to the project. - -Wed Sep 24 08:57:36 2003 Balachandran Natarajan - - * bin/auto_run_tests.pl: Fixed incorrect usage message. This fixes - [BUG 1588]. Thanks to Carlos O'Ryan for the patches. - - * ace/OS.h: Fixed definition of macro clearerr to it's original - value. Thanks to Olli Savia for providing the - patches to get it compiling on LynxOS. - -Mon Sep 22 23:10:51 2003 Ossama Othman - - * tests/Bug_1576_Regression_Test.dsp: - * tests/tests.dsw: - - Added missing MSVC++ 6 project file for Bug_1576_Regression_Test - test. Fixes failures in Windows builds due to missing project - file. - -Mon Sep 22 11:36:26 2003 Chad Elliott - - * ace/SString.cpp: - - Added __Lynx__ to the special check for instantiating - ACE_String_Base::NULL_String_. - -Mon Sep 22 11:04:03 2003 Chad Elliott - - * bin/MakeProjectCreator/config/portablegroup.mpb: - - Use comps and tagchecks instead of requires for 'PortableGroup'. - -Mon Sep 22 10:16:06 2003 Chad Elliott - - * include/makeinclude/platform_lynxos.GNU: - - Only set optimize to 1 if it hasn't been set previously. - -Fri Sep 19 07:01:48 2003 Jeff Parsons - - * ace/ace_dll.dsp: - - Added missing files to the project. - -Thu Sep 18 13:49:56 2003 Gautam H. Thaker - - * performance-tests/SCTP/README: - - Added a table providing additional clarifications about - different implementations of SCTP under Linux and its - implications with respect to ACE Wrapper facades supported. - -Thu Sep 18 10:55:58 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Removed the S.cpp from the specialized idl file rules to avoid yet - another parallel build problem. - -Thu Sep 18 08:34:14 2003 Chad Elliott - - * ace/config-all.h: - - Corrected a misspelling of ace in a #include. - -Tue Sep 16 13:19:42 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Set the TEMPINCDIR to a subdirectory under the original TEMPINCDIR - value. This will happen only if TEMPINCDIR is defined (for AIX). - - * include/makeinclude/platform_aix4_cset++.GNU: - * include/makeinclude/platform_aix_ibm.GNU: - - Set the template include directory via the -qtempinc= - option instead of using the default (tempinc). - - * include/makeinclude/rules.lib.GNU: - - Use $(TEMPINCDIR) instead of tempinc. - -Tue Sep 16 11:49:19 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/FeatureParser.pm: - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateInputReader.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Perform some optimizations on the code to decrease generation - time. - -Tue Sep 16 11:55:18 2003 Gautam H. Thaker - - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - - fix compiler warning due to unintialized pointer - - * performance-tests/SCTP/README.LKSCTP - - update README to indicate new LKSCTP API support. - - * ace/SOCK_SEQPACK_Acceptor.cpp - * ace/SOCK_SEQPACK_Acceptor.h - * ace/SOCK_SEQPACK_Association.cpp - * ace/SOCK_SEQPACK_Association.h - * ace/SOCK_SEQPACK_Connector.cpp - * ace/SOCK_SEQPACK_Connector.h - - Changes to support changed LKSCTP API support from 2.6.test.4 - kernel an onward. - -Tue Sep 16 10:28:02 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Escape the file name that's used as a regular expression. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Add implicit project dependencies when using the -hierarchy - option. - -Mon Sep 15 13:22:40 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added some optimizations to the circular dependency tree - generation code. - -Mon Sep 15 06:42:28 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added a check in the dependency sorter for an undefined dependency - value (this only happened with the vc7 and vc71 types). - -Fri Sep 12 13:31:50 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Updated the code to detect and drop circular dependencies. The - original code was wrong and would drop dependencies that didn't - need to be. - -Fri Sep 12 11:51:17 2003 Jeff Parsons - - * Kokyu/Kokyu.dsp: - - Fixed setting for release configuration. - -Fri Sep 12 11:38:57 2003 Jeff Parsons - - * tests/Test_Output.dsp: - * tests/UUIDTest.dsp: - - Fixed settings for the release configuration. - -Fri Sep 12 11:36:17 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Modified the AIX compiler support to be a rule, instead of - modifying $(COMPILE.cc), that will be run before building the all - target. - -Fri Sep 12 10:56:02 2003 Jeff Parsons - - * tests/DLL_Test_Impl.dsp: - * tests/DLL_Test.dsp: - - Turned on RTTI for all configurations. - -Thu Sep 11 12:37:05 2003 Douglas C. Schmidt - - * Second anniversary of the September 11th terrorist attacks on - the USA. Let us pray that clear heads will prevail in the - prevention of future conflicts. - -Thu Sep 11 06:39:23 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a bug with the automatic project dependencies that was - related to directories and the location that mwc.pl was run. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added support for poor AIX compilers that don't deal with - templates correctly. This was basically a cut and paste into the - template from the original ACE_wrappers/tests/Makefile. - -Wed Sep 10 13:26:14 MST 2003 Trevor Fields - - * bin/performance_stats.sh: - - Changed the path to mogrify. It uses /usr/bin/X11/bin path if it is - not present in the /usr/local/bin - -Wed Sep 10 11:48:31 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Allow files with spaces to be processed correctly. - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - - Added support for files with spaces (vc7 already supported them). - - * bin/MakeProjectCreator/templates/nmake.mpd: - - Fixed a warning about the /Ob option. - -Wed Sep 10 10:21:16 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a logic error when filtering out circular dependencies. - -Wed Sep 10 10:07:43 2003 Chad Elliott - - * bin/MakeProjectCreator/config/avstreams.mpb: - * bin/MakeProjectCreator/config/concurrency.mpb: - * bin/MakeProjectCreator/config/event.mpb: - * bin/MakeProjectCreator/config/ftorb.mpb: - * bin/MakeProjectCreator/config/ifrservice.mpb: - * bin/MakeProjectCreator/config/lifecycle.mpb: - * bin/MakeProjectCreator/config/loadbalancing.mpb: - * bin/MakeProjectCreator/config/naming.mpb: - * bin/MakeProjectCreator/config/notification.mpb: - * bin/MakeProjectCreator/config/property.mpb: - * bin/MakeProjectCreator/config/rtcorbaevent.mpb: - * bin/MakeProjectCreator/config/rtevent.mpb: - * bin/MakeProjectCreator/config/rtoldevent.mpb: - * bin/MakeProjectCreator/config/rtsched.mpb: - * bin/MakeProjectCreator/config/rtschedevent.mpb: - * bin/MakeProjectCreator/config/security.mpb: - * bin/MakeProjectCreator/config/time.mpb: - * bin/MakeProjectCreator/config/trading.mpb: - - Change requires to tagchecks. Using requires here was not - correct. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Use tagchecks even if comps is used. - -Wed Sep 10 08:04:25 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added automatic parallel dependencies. If more than one project - in the same directory contains shared source files, then the - projects will become dependent upon each other. This will help - avoid files (both generated source and object) being overwritten - by multiple instances of make. This only has an effect on the - GNUACE workspaces. - -Tue Sep 9 15:04:51 MST 2003 Trevor Fields - - * examples/Web_Crawler/Mem_Map_Stream.h: - - Changed '#define once' back to '#pragma once' - -Tue Sep 9 08:56:42 2003 Jeff Parsons - - * ace/ace_dll.dsp: - - Added CORBA_macros.h to the project. - -Mon Sep 8 07:04:06 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added support to the 'after' keyword to use the '*' mechanism as - can be used in the project() definition. - -Fri Sep 5 13:39:07 2003 Chad Elliott - - * bin/MakeProjectCreator/config/client.mpb: - * bin/MakeProjectCreator/config/server.mpb: - - I realized that many more mpc projects use client and server. - They should be converted to use taoserver and taoclient, but until - that happens I will put these back. - -Fri Sep 5 08:20:15 2003 Chad Elliott - - * bin/MakeProjectCreator/config/avstreams.mpb: - * bin/MakeProjectCreator/config/concurrency.mpb: - * bin/MakeProjectCreator/config/event.mpb: - * bin/MakeProjectCreator/config/ftorb.mpb: - * bin/MakeProjectCreator/config/ifrservice.mpb: - * bin/MakeProjectCreator/config/lifecycle.mpb: - * bin/MakeProjectCreator/config/loadbalancing.mpb: - * bin/MakeProjectCreator/config/naming.mpb: - * bin/MakeProjectCreator/config/notification.mpb: - * bin/MakeProjectCreator/config/portablegroup.mpb: - * bin/MakeProjectCreator/config/property.mpb: - * bin/MakeProjectCreator/config/qt-min.mpb: - * bin/MakeProjectCreator/config/rmcast.mpb: - * bin/MakeProjectCreator/config/rtcorbaevent.mpb: - * bin/MakeProjectCreator/config/rtevent.mpb: - * bin/MakeProjectCreator/config/rtoldevent.mpb: - * bin/MakeProjectCreator/config/rtsched.mpb: - * bin/MakeProjectCreator/config/rtschedevent.mpb: - * bin/MakeProjectCreator/config/security.mpb: - * bin/MakeProjectCreator/config/time.mpb: - * bin/MakeProjectCreator/config/trading.mpb: - - Updated these base projects with the correct comps and requires - values. - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Make all keywords case insensitive (as it should have been). - - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - - Fixed a bug with custom build types and the use of $^. - - * bin/MakeProjectCreator/config/client.mpb: - * bin/MakeProjectCreator/config/messaging_only.mpb: - * bin/MakeProjectCreator/config/server.mpb: - - Removed these files. They have outlived their usefulness. - -Fri Sep 5 06:56:37 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Fixed a bug with generated idl targets (for those that have - special options or output directories). - -Thu Sep 4 16:00:18 2003 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.h: Updated the documentation for - current_size() and total_size() to be more accurate. Thanks to - Gerard Grant for motivating this. - -Thu Sep 4 14:21:33 2003 Gautam H. Thaker - - * performance-tests/SCTP/README.SCTP: - * performance-tests/SCTP/README.LKSCTP: - * performance-tests/SCTP/README.OpenSS7: - - Slight update to README files. Made more clear how SCTP - capable kernel and ACE/TAO are built. Due to recent - changes in LKSCTP API additional changes will be committed - in near future as new Linux kernel with the changes is released. - -Thu Sep 4 09:56:28 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Modified the GNUACEWorkspaceCreator to generate a workspace that - will work with the -j option of GNU Make. Each project in the - workspace has an individual target with dependencies on the - necessary targets which allows GNU Make to determine which - projects can be built in parallel. - -Thu Sep 4 09:30:26 2003 Balachandran Natarajan - - * ace/Log_Msg.h: Reverted this change "Wed Sep 3 17:42:00 2003 - Justin Michel ". This caused builds to - break so easily. - -Wed Sep 3 17:42:00 2003 Justin Michel - - * ace/Log_Msg.h: - - An empty ACE_ASSERT now uses ACE_UNUSED_ARG. This prevents - warnings by compilers that aren't smart enough to recognize that - the code *is* used, but only by the preprocessor. - -Wed Sep 3 17:01:02 2003 Balachandran Natarajan - - * ace/UUID.cpp (ACE_Utils): - * examples/Web_Crawler/Mem_Map_Stream.h: - * examples/Web_Crawler/URL_Visitor.h : Fixed warnings in g++ - builds. - -Wed Sep 3 11:53:53 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - - Added a dependency to all source files upon any generated files - (be it idl or custom build). - -Wed Sep 3 09:44:01 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Move the location of the idl_stubs dependency above the include of - rules.lib.GNU. - -Tue Sep 2 18:00:00 2003 Justin Michel - - * ace/UUID.cpp: - * ace/UUID.h: - * ace/UUID.i: - - Removed implementations of copy constructors and assignment - operators, and made them private. These were not correct, and - would cause an infinite loop if ever called. I also had to - comment out several other broken operators that were using the - copy constructors or assignment operators. In general, someone - should take a close look at these classes, and either fix all the - many problems, or remove apparently unnecessary features entirely. - - * test/tests.mpc: - - Added support for the UUID test. This test really doesn't test - very much right now, as it still passed even though I had removed - most of the functionality from the uuid classes. - -Tue Sep 2 17:25:24 UTC 2003 Trevor Fields - - * 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 - - Applied Johnny Willemsen's changes. These are fixes for the - #if !defined (ACE_LACKS_PRAGMA_ONCE) lines - -Tue Sep 2 07:02:19 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - - Updated the documentation on the defaulting behavior of MPC. - -Sat Aug 30 12:10:00 2003 Justin Michel - - * bin/create_ace_build.pl: - - Changed to continue linking even when some source files can't - be found. It appears that the perl link() function doesn't work - correctly on Windows Server 2003. A little investigating shows that - several other file functions have problems with long path names on - that os unless you use the Unicode versions. I verified this with a - simple c++ program, that tried to use _fullpath() and CreateHardLink(). - Currently the only problems are in the Notify service performance tests, - because these have extremely long path names. - -Fri Aug 29 15:18:36 UTC 2003 Don Hinton - - * apps/JAWS/clients/Blobby/blobby.mpc: - * apps/soreduce/soreduce.mpc: - Added exename to both of these to force an exe to be created - instead of a library. - - * tests/RMCast/acetest.mpb - Modified the path for Main.cpp so that it picks up the one in - the current directory. Some build were having problems with - this and didn't create the .obj directory which cause - compilation to fail. - -Fri Aug 29 13:41:40 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Modified the template to avoid including wrapper_macros.GNU more - than once. Instead of setting SHLIB_UNCHECKED and then checking - for the feature and setting SHLIB if it's enabled, I set SHLIB, - check for the feature and then reset SHLIB if the feature isn't - enabled. - -Fri Aug 29 13:21:01 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - - Elaborated on a key point of custom definitions. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Empty the ACELIB variable after including wrapper_macros.GNU. - This is a feature of wrapper_macros.GNU that MPC doesn't need. - -Fri Aug 29 08:27:58 2003 Venkita Subramonian - - * Kokyu/Dispatcher_Task.cpp: - * Kokyu/Kokyu_defs.cpp: - * Kokyu/tests/DSRT_MIF/MIF.cpp: Added explicit template - instantiations to fix compile errors in - Solaris_9_Forte7_ACE_(MPC) build. Thanks to Don Hinton for - pointing this out. - -Thu Aug 28 22:29:03 2003 Ossama Othman - - From Don Hinton - * tests/Bug_1576_Regression_Test.cpp: - - Updated to work in wchar builds. - -Thu Aug 28 07:57:33 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Added ERROR: to the output when an unknown option is passed on the - command line. - -Thu Aug 28 07:10:54 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Added the reverseclean target as best as it could be supported by - MPC. - -Thu Aug 28 06:33:12 UTC 2003 Johnny Willemsen - - * ASNMP/tests/Address_Test.cpp: - Fixed compile error - -Thu Aug 28 04:24:24 UTC 2003 Don Hinton - - * ACEXML/apps/svcconf/.depend.Makefile.ACEXML_XML_Svc_Conf_Parser: - * ACEXML/common/.depend.Makefile.ACEXML: - * ACEXML/examples/SAXPrint/.depend.Makefile.SAXPrint: - * ACEXML/parser/parser/.depend.Makefile.ACEXML_Parser: - * ACEXML/tests/.depend.Makefile.ContentHandler_Test: - * ACEXML/tests/.depend.Makefile.HttpCharStream_Test: - * ACEXML/tests/.depend.Makefile.NamespaceSupport_Test: - * ACEXML/tests/.depend.Makefile.Transcoder_Test: - Removed these files since they should be generated dynamically - by the new MPC Makefiles (that will also be generated - dynamically). - -Wed Aug 27 20:34:19 2003 Venkita Subramonian - - * Kokyu/Kokyu_defs.h: Added export qualification to - Dispatcher_Attributes class to fix link error in - Win2K_VC71_NET_DLL build. - -Wed Aug 27 17:52:44 2003 George Edwards - - * bin/tao_orb_tests.lst: - - Added the following new tests to daily builds: - TAO/tests/OBV/Collocated/Forward/ - TAO/tests/Portable_Interceptors/Bug_1559/ - TAO/tests/Portable_Interceptors/Collocated/Dynamic/ - TAO/tests/Portable_Interceptors/Collocated/Service_Context_Manipulation/ - -Wed Aug 27 15:18:49 2003 Ossama Othman - - * include/makeinclude/wrapper_macros.GNU (CCFLAGS): - - Do not add "-Wno-uninitialized" to GNU C++ compiler flags. It - is no longer needed to avoid (apparently) bogus warnings. - Keeping it around hides potentially real problems. - -Wed Aug 27 14:23:00 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Reverted the -recurse change from Mon Aug 18 12:28:09 2003. Added - a -exclude option that allows users to exclude directories - independently from the -recurse option. - -Wed Aug 27 13:25:20 2003 Venkita Subramonian - - * Kokyu/Kokyu_defs.h: Added inline qualification to operator != to - fix warnings in SunOS_SunCC53 build. - -Wed Aug 27 17:06:12 UTC 2003 Johnny Willemsen - - * examples/Reactor/Proactor/test_cancel.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/Proactor/test_udp_proactor.cpp: - Added a main that is used when these examples are build on a - platform on which these examples don't work. This fixes the link - errors in the Cygwin build. - -Wed Aug 27 10:32:03 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - - Added documentation for the new -hierarchy option. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added a -hierarchy option which forces MPC to generate a workspace - at each directory level between the current directory and the - directory in which the mpc file is located. - -Tue Aug 26 18:57:07 UTC 2003 Don Hinton - - * ASNMP/asnmp/ASNMP_Export.h: - Added new export file to define ASNMP_Export needed on Windows. - - * ASNMP/asnmp/ASNMP_Export.h: - * ASNMP/asnmp/address.h: - * ASNMP/asnmp/asn1.h: - * ASNMP/asnmp/counter.h: - * ASNMP/asnmp/ctr64.h: - * ASNMP/asnmp/enttraps.h: - * ASNMP/asnmp/gauge.h: - * ASNMP/asnmp/integer.h: - * ASNMP/asnmp/octet.h: - * ASNMP/asnmp/oid.h: - * ASNMP/asnmp/pdu.h: - * ASNMP/asnmp/sagent.h: - * ASNMP/asnmp/smival.h: - * ASNMP/asnmp/snmp.h: - * ASNMP/asnmp/target.h: - * ASNMP/asnmp/timetick.h: - * ASNMP/asnmp/transaction.h: - * ASNMP/asnmp/transaction_result.h: - * ASNMP/asnmp/vb.h: - * ASNMP/asnmp/wpdu.h: - Changed ACE_Export to ASNMP_Export in order to correctly create - dll's on Windows. Thanks to Johnny Willemsen - for pointing this out. - - * tests/DLL_Test_Impl.h: - Added #include OS_Memory.h. - -Tue Aug 26 16:32:12 UTC 2003 Johnny Willemsen - - * ace/RW_Mutex.h: - Fixed incorrect doxygen file tag - -Tue Aug 26 11:22:41 UTC 2003 Justin Michel - - * bin/MakeProjectCreator/templates/vc7.mpd: - - Projects should default to optimization=0. This prevented the - tao_idl project from compiling. - -Tue Aug 26 11:10:45 2003 Jeff Parsons - - * ace/CDR_Stream.i: - - Changed the logic of the checks for return value in - insertion and extraction of bounded (w)strings. If the - bound_ member value of the helper construct was 0, the - operator could incorrectly return 0 after a successful - read or write. Thanks to Tufan Oruk and - Johnny Willemsen for independently - reporting problems that are consequences of this bug. - -Tue Aug 26 09:55:19 2003 Venkita Subramonian - - * Kokyu/Kokyu_defs.{cpp,h,i}: Added operator != for ConfigInfo to - satisfy RH71_Explicit_Templates build. - -Tue Aug 26 09:21:44 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - When checking for the -k option, remove --unix from the MAKEFLAGS - value. This helps things work with Cygwin. Thanks to Johnny - Willemsen for reporting this. - -Tue Aug 26 08:37:21 2003 Venkita Subramonian - - * Kokyu/DSRT_Sched_Queue_T.h: Changed the prototype of - Guid_Hash::operator method with full qualification for the - Guid_t type. This is to fix compile errors in - SunOS_8_Forte8_Debug build. - - * Kokyu/Kokyu.h: - * Kokyu/Kokyu_defs.h: - * Kokyu/Kokyu_dsrt.h: - * Kokyu/DSRT_Dispatch_Item_T.h: - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.h: - * Kokyu/Kokyu_defs.i: - Replaced non_copyable with ACE_Copy_Disabled. - -Tue Aug 26 08:24:09 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - - Set PWD on the make command line when the project makefile isn't - in the current directory. - -Mon Aug 25 22:03:43 UTC 2003 Don Hinton - - * ASNMP/asnmp/address.cpp: - * ASNMP/asnmp/address.h: - * ASNMP/asnmp/ctr64.cpp: - * ASNMP/asnmp/ctr64.h: - * ASNMP/asnmp/integer.cpp: - * ASNMP/asnmp/integer.h: - * ASNMP/asnmp/target.cpp: - * ASNMP/asnmp/target.h: - * ASNMP/asnmp/timetick.cpp: - * ASNMP/asnmp/timetick.h: - Fixed additional const compilation errors. - - * ASNMP/tests/tests.mpc: - Added new mpc file. - - * ASNMP/tests/Address_Test.cpp: - * ASNMP/tests/Target_Test.cpp: - Removed unused variables to quash warnings. - - * ASNMP/tests/test_config.h: - Added #include streams.h and removed old style headers; changed - use of open() flags to correct type. - -Mon Aug 25 11:51:44 2003 Ossama Othman - - * COPYING: - * THANKS: - - Updated Doug's e-mail address. - -Mon Aug 25 11:13:28 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Added the ability to enable and disable optimization for the - nmake, em3, vc6 and vc71 types. By default the release targets - have optimization on and using -value_template optimize= - allows a user to turn off optimization compiler flags. - -Mon Aug 25 08:00:20 UTC 2003 Kobi Cohen-Arazi - - * apps/JAWS3: - Added to ACE_wrapper repository - -Mon Aug 25 05:44:33 UTC 2003 Johnny Willemsen - - * tests/Tests.bor: - Added Bug_1576_Regression_Test - -Sun Aug 24 20:21:02 UTC 2003 Don Hinton - - * ASNMP/asnmp/octet.cpp: - * ASNMP/asnmp/ctr64.cpp: - Explicitly initialized base class in copy constructors to - quash warning. - -Sun Aug 24 19:04:23 UTC 2003 Don Hinton - - * ASNMP/agent/agent_impl.cpp: - Removed unused args to quash a warning. - - * ASNMP/agent/snmp_agent.cpp: - * ASNMP/asnmp/octet.cpp: - * ASNMP/asnmp/octet.h: - * ASNMP/asnmp/oid.cpp: - * ASNMP/asnmp/oid.h: - * ASNMP/asnmp/pdu.cpp: - * ASNMP/asnmp/pdu.h: - * ASNMP/asnmp/smival.h: - * ASNMP/asnmp/snmp.cpp: - * ASNMP/asnmp/snmp.h: - * ASNMP/asnmp/snmperrs.h: - * ASNMP/asnmp/vb.cpp: - * ASNMP/asnmp/vb.h: - * 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: - Fixed const warnings. - - * ASNMP/asnmp/address.cpp: - * ASNMP/asnmp/counter.cpp: - * ASNMP/asnmp/gauge.cpp: - * ASNMP/asnmp/integer.cpp: - * ASNMP/asnmp/timetick.cpp: - Explicitly initialized base class in copy constructors to - quash warning. - - * ASNMP/asnmp/transaction.cpp: - * ASNMP/asnmp/wpdu.cpp: - Cast void* to char* in delete [] statement to quash warning. - -Sun Aug 24 09:45:13 2003 Balachandran Natarajan - - * samewise: Removed contents of this directory since the new - MakefileProjectCreator (MPC) supresedes this. - -Sun Aug 24 14:09:33 UTC 2003 Johnny Willemsen - - * bin/fuzz.pl: - Extended fuzz script to check for id which should be Id. - Found some by accident and now extending fuzz script to find - all and make sure in the future this kind of problem is found. - -Sat Aug 23 12:55:04 2003 Ossama Othman - - * ace/DLL.cpp (ACE_DLL, open_i): - * ace/DLL_Manager.cpp (ACE_DLL_Manager, ~ACE_DLL_Manager, open): - (close, symbol, get_handle, open_dll, unload_dll): - - Only print error messages if the ACE debugging flag is set, - i.e if ACE::debug() returns a non-zero value. Thanks to Carlos - for pointing out that the ACE_DLL class was printing out error - messages without the user/application ever requesting them. - -Sat Aug 23 12:38:08 2003 Ossama Othman - - * ace/Dev_Poll_Reactor.cpp: - - Added "const" qualifier to some constant variables. - - From Carlos O'Ryan - * ace/DLL.cpp (symbol): - * ace/config-linux.h: - - Fixed problem where seg fault could occur if symbol() method is - called after a failed call to open(). Thanks to Jody Hagins - for finding this bug. [Bug 1576] - - * tests/Bug_1576_Regression_Test.cpp: - * tests/Makefile.tests (BIN): - * tests/run_test.lst: - * tests/tests.mpc: - - New test that verifies whether or not bug 1576 regressions - occur. - -Sat Aug 23 19:26:41 UTC 2003 Don Hinton - - * ASNMP/agent/agent.mpc: - * ASNMP/asnmp/asnmp.mpc: - * ASNMP/examples/examples.mwc: - * ASNMP/examples/get/get.mpc: - * ASNMP/examples/next/next.mpc: - * ASNMP/examples/set/set.mpc: - * ASNMP/examples/trap/trap.mpc: - * ASNMP/examples/walk/walk.mpc: - Added missing mwc and mpc files. - - * ASNMP/asnmp.mwc: - Modified workspace so it would pickup the correct subdirectories - automatically. - - * ACE.mwc: - Added ASNMP subdirectory. - - * ASNMP/agent/main.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: - Fixed compile errors by adding missing #includes needed due to - recent subsetting, e.g., streams.h and ACE.h. - -Fri Aug 22 20:10:41 UTC 2003 Justin Michel - - * ace/SSL/ssl.mpc - * apps/gperf/src/gperf.mpc - * bin/MakeProjectCreator/config/acedefaults.mpb - * bin/MakeProjectCreator/config/openssl.mpb - * bin/MakeProjectCreator/config/ssl.mpb - * bin/MakeProjectCreator/modules/ProjectCreator.pm - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm - * bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm - * bin/MakeProjectCreator/templates/bor.mpd - * bin/MakeProjectCreator/templates/vc7.mpd - - SSL now works in a more normal MPC feature fashion similar to all - the other feature-based libraries. I removed the hard-coded ssl - logic from some of the mpd files that still had it. A side-effect - of the new way, is that you must now define an SSL_ROOT - environment variable that the openssl.mpb feature will now use to - locate the openssl libraries. - - There were some problems with the existing vc7.mpd template. I've - improved the template, and also added support for lots of new - settings in the corresponding .mpt files. (Although I haven't used - them yet.) I'll probably use this to enable some of the new - features in vc71 that help track down problems that typically only - show up in release mode. - - The creation of workspaces for vc71 did not correctly set - dependencies between projects. - - I added an allow_duplicates() method to the WorkspaceCreator. A - warning will always be generated if a workspace contains duplicate - project names, and now the vc6/7/71 creators will abort creation - of these invalid workspaces. I suggest that any future - WorkspaceCreator subclasses that generate IDE projects, override - allow_duplicates() to return 0. - - Renamed the gperf_exe to gperf. This was named as a special hack - for vc6 that is now unnecessary. We had already renamed other - similar projects, but missed this one. - -Fri Aug 22 15:28:34 UTC 2003 Don Hinton - - * ACE.mwc: - Added CVS Id keyword. - - * apps/JAWS/server/server.mpc: - * netsvcs/clients/Naming/Client/Client.mpc: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.mpc: - * netsvcs/servers/servers.mpc: - Modified project names to keep MSVC happy--it can't deal with - duplicate names. - -Wed Aug 20 06:59:52 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Warn about duplicate project names for all project types. It will - have to be this way as long as MPC supports VC6. - -Tue Aug 19 10:07:47 2003 Douglas C. Schmidt - - * doc/tutorials/015: Added support for compression. Thanks - to Andrew Marlow for contributing - this. - -Mon Aug 18 21:26:51 UTC 2003 Don Hinton - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/gnu.mpd: - Add comments to the top of the created Makefiles saying they - were generated by MPC and should not be modified directly. - - * ACE.mwc: - * ACEXML/apps/apps.mwc: - * ACEXML/examples/examples.mwc: - * ACEXML/parser/parser.mwc: - * Kokyu/tests/tests.mwc: - * apps/Gateway/Gateway.mwc: - * apps/JAWS/JAWS.mwc: - * apps/JAWS/clients/clients.mwc: - * apps/JAWS2/JAWS2.mwc: - * apps/gperf/gperf.mwc: - * examples/ASX/ASX.mwc: - * examples/Connection/Connection.mwc: - * examples/IOStream/IOStream.mwc: - * examples/IPC_SAP/IPC_SAP.mwc: - * examples/Logger/Logger.mwc: - * examples/Mem_Map/Mem_Map.mwc: - * examples/OS/OS.mwc: - * examples/RMCast/RMCast.mwc: - * examples/Reactor/Reactor.mwc: - * examples/Service_Configurator/Service_Configurator.mwc: - * examples/System_V_IPC/System_V_IPC.mwc: - * netsvcs/netsvcs.mwc: - * netsvcs/clients/clients.mwc: - * netsvcs/clients/Logger/Logger.mpc: - * netsvcs/clients/Naming/Naming.mwc: - * netsvcs/clients/Naming/Client/Client.mpc: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.mpc: - * netsvcs/lib/lib.mpc: - * netsvcs/servers/servers.mpc: - * websvcs/websvcs.mwc: - * websvcs/lib/lib.mpc: - * websvcs/tests/tests.mpc: - Added missing mwc and mpc files. Most of the mwc files were - needed so that running mwc.pl -recurse would create Makefiles in - directories that contained only subdirectories and no mpc files. - -Mon Aug 18 12:28:09 2003 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added the ability to exclude directories when using the -recurse - option. See USAGE or mwc.pl -h for details. - -Mon Aug 18 15:22:02 2003 Simon McQueen - - * bin/tao_other_tests.lst: - - Changed the TAO/orbsvcs/tests/ImplRepo test from SANDBOX to - !MINIMUM to broaden platform coverage of the IMR testing. - -Sun Aug 17 16:35:01 2003 Ossama Othman - - * ace/RB_Tree.i (dump_i): - * ace/RB_Tree.cpp (dump_i): - - Uninlined this method to avoid adding an inter-header dependency - on "ace/Log_Msg.h". Also fixes some explicit template - instantiation builds. - - * tests/Collection_Test.cpp: - - Removed duplicate template instantiation. - -Sun Aug 17 16:06:20 2003 Ossama Othman - - * ace/Shared_Object.h: - - Include "ace/os_includes/sys/os_types.h" to pull in size_t - typedef instead of "ace/OS.h". The latter is overkill. - - * ace/Shared_Object.cpp: - - Include "ace/Global_Macros.h" to pull in ACE_TRACE macro - definition. - -Sun Aug 17 15:31:29 2003 Ossama Othman - - * ace/OS.h (ACE_CLEANUP_FUNC): - * ace/config-all.h - - Moved this typedef to config-all.h. Allows sources to use this - typedef without including the compile-time expensive OS.h. - -Fri Aug 15 14:02:22 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - - Added support to the 'make' type for AIX and IRIX. - -Fri Aug 15 10:38:57 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Fixed a missing check for naming the foreach variable when dealing - with grouped files. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Moved the setting of LDLIBS or ACE_SHLIBS before including - wrapper_macros.GNU. This should allow for the kylix kludge to - work. - -Fri Aug 15 15:29:16 UTC 2003 Don Hinton - - * apps/JAWS2/JAWS/Parse_Headers.cpp: - Modified the ACCESSOR macro to only concatenate the x, or member - variable, token. This resolves a problem with the gcc 3.3 - preprocessor. Thanks to Tim Hawes for - reporting the problem and Carlos O'Ryan for supplying the fix. - - * THANKS: - Added Tim Hawes to the hall of fame. - -Fri Aug 15 09:07:09 2003 Douglas C. Schmidt - - * ace/OS.{h,i}: Changed "advice" to "map_advice" to avoid a - keyword naming conflict with AspectC++. Thanks to Gary Duzan - for reporting this. - -Fri Aug 15 01:49:00 UTC 2003 Don Hinton - - * Kokyu/Makefile.Kokyu: - Moved the assignment to ACE_SHLIBS to a point prior to including - wrapper_macros.GNU, because the code the modifies the link - library names to work with Kylix is located in - wrapper_macros.GNU, and must come after the assignment. - -Fri Aug 15 00:37:22 UTC 2003 Don Hinton - - * tests/tests.mpc: - Added missing Recursive_Condition_Bug_Test and - Unbounded_Set_Test_Ex projects. - -Thu Aug 14 18:31:14 UTC 2003 Don Hinton - - * ace/Message_Queue.h: - Added #include Null_Mutex.h and Null_Condition.h to the VxWorks - specific branch needed due to recent subsetting. - - * ace/config-irix5.3-sgic++.h: - Added #define ACE_LACKS_STDINT_H. Thanks to Bruce Jones - for reporting the problem. - - * THANKS: - Added Bruce Jones to hall of fame. - -Thu Aug 14 10:56:57 2003 Ossama Othman - - * ace/OS.h: - * ace/SSL/SSL_SOCK_Connector.h: - - Nuked trailing whitespace. - - * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): - - Fixed bug where the "counted down" timeout value was not used in - the ACE::select() call. This fixes a problem where connection - timeouts lasted longer than they should have. The corrected - behavior now matches the documented behavior. - -Thu Aug 14 04:02:41 UTC 2003 Don Hinton - - * Kokyu/Makefile.Kokyu: - Added ACELIB to ACE_SHLIBS to resolve link problems on MacOSX. - Thanks to John Michael Zorko for reporting - this. - -Wed Aug 13 19:48:17 2003 Venkita Subramonian - - * Kokyu/tests/FIFO/test.cpp: - * Kokyu/tests/EDF/test.cpp: - * Kokyu/Kokyu_defs.h: - * Kokyu/Kokyu_defs.cpp: - * Kokyu/Kokyu.h: - * Kokyu/Kokyu.cpp: - * Kokyu/Dispatcher_Task.cpp: - * Kokyu/Dispatcher_Impl.i: - * Kokyu/Dispatcher_Impl.h: - * Kokyu/Default_Dispatcher_Impl.h: - * Kokyu/Default_Dispatcher_Impl.cpp: - - Separated activation of the dispatcher and setting up of - dispatching lanes. Added an activate () method to the dispatcher - and associated classes. - -Wed Aug 13 23:43:24 UTC 2003 Don Hinton - - * ace/Bound_Ptr.i: - Added #include Log_Msg.h when ACE_NEW_THROWS_EXCEPTIONS is - defined to pickup ACE_ASSERT. - - * apps/JAWS/server/HTTP_Server.cpp: - Added a JAWS_ prefix the enums to get around conflict on Windows - where ASYNCH is defined as a macro. - - * apps/soreduce/Obj_Module.cpp: - Added #include Log_Msg.h to pickup ACE_ASSERT. - - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp: - Added #ifdef around ACE_Trace::start/stop_tracing() based on - ACE_HAS_TRACE. - -Wed Aug 13 20:27:46 UTC 2003 Don Hinton - - * tests/tests.mpc: - Added Multihomed_INET_Addr_Test. - -Wed Aug 13 18:35:08 UTC 2003 Don Hinton - - * Kokyu/tests/DSRT_MIF/MIF.cpp: - Changed ACE_Thread_Mutex to ACE_SYNCH_MUTEX to quash an error on - single threaded builds. - -Wed Aug 13 17:38:09 UTC 2003 Don Hinton - - * apps/Gateway/Gateway/gateway.mpc: - * apps/JAWS/clients/Blobby/blobby.mpc: - * apps/JAWS/clients/Caching/caching.mpc: - * apps/JAWS/server/server.mpc: - * apps/drwho/drwho.mpc: - * apps/soreduce/soreduce.mpc: - Added missing MPC project files. - -Wed Aug 13 15:47:13 UTC 2003 Don Hinton - - * apps/drwho/File_Manager.h: - Added #include Null_Mutex.h needed when - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION is defined due to recent - subsetting. - -Mon Aug 11 19:19:24 2003 Douglas C. Schmidt - - * ace/Global_Macros.h: Updated the documentation to point to - the C++NPv2 and POSA2 books. Thanks to Valery Salamakha - for motivating this change! - -Mon Aug 11 08:39:06 2003 Venkita Subramonian - - * Kokyu/Koyu_dsrt.h: Removed Kokyu_Export qualification for - template class MUF_Comparator. This was giving compile errors in - Win2K_VC71_NET_DLL build. - -Mon Aug 11 06:35:12 UTC 2003 Johnny Willemsen - - * Kokyu/Makefile: - Removed windows specific part in this makefile. This gave - problems with MinGW and the MSys shell and isn't needed. - -Mon Aug 11 01:46:23 UTC 2003 Don Hinton - - * include/makeinclude/platform_g++_common.GNU: - Modified the test for "GNU ld" to grep for the count instead of - relying on the return value which doesn't appear to work - correctly on all versions, specifically MacOSX and older - versions of OpenBSD (two platforms to which I lack access). - Thanks to John Michael Zorko for help - debugging this. - -Sun Aug 10 14:04:17 2003 Venkita Subramonian - - * Kokyu/tests/DSRT_MIF/Makefile: Updated dependencies. - -Sun Aug 10 13:32:42 2003 Venkita Subramonian - - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.{h,cpp}: Moved the method - definition of MoreEligible::operator() to the header file to get - rid of MSV compiler errors. I suspect that the nested class - MoreEligible could be causing the problem. - - * Kokyu/DSRT_Sched_Queue_T.{h,cpp}: Moved the method - definition of Guid_Hash::operator() to the header file to get - rid of MSV compiler errors. I suspect that the nested class - could be causing the problem. - - * Kokyu/Kokyu_dsrt.{h,cpp}: Corrected a typo and included - Kokyu_dsrt.i instead of Kokyu.i. Removed Kokyu_Export - qualification for template classes. - - * Kokyu/Kokyu_defs.h: Added export qualification for noncopyable - class. - -Sun Aug 10 09:52:17 2003 Venkita Subramonian - - * Kokyu/tests/DSRT_MIF/MIF.dsp: - * Kokyu/tests/DSRT_MIF/MIF.dsw: - * Kokyu/tests/EDF/Makefile: - * Kokyu/tests/FIFO/Makefile: - Added the above files which were missing. - -Sun Aug 10 08:58:18 2003 Venkita Subramonian - - * Kokyu/tests/DSRT_MIF/MIF.cpp: Included Synch.h to get rid of - compile errors. - -Sun Aug 10 08:16:36 2003 Balachandran Natarajan - - * ace/DEV.h: Fixed a typo in the definition of - ACE_DEV_STREAM. Thanks to Edan Ayal for - pointing this out. - -Sun Aug 10 06:17:43 UTC 2003 Don Hinton - - * examples/Export/dll.cpp: - Fixed a typo in last checkin, i.e., added a space. - -Sat Aug 9 20:55:47 UTC 2003 Don Hinton - - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/Export/dll.cpp: - Added missing explicit template instantiations. - - * examples/examples/OS/Process/imore.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/OS/Process/process.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - Added const to char* declarations to quash warnings. - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: - Added #include Condition_T.h and Thread_Mutex.h needed for - explicit template instantiation. - - * examples/Timer_Queue/Timer_Queue.mpc: - Added "after" directive so library gets compiled first. - - * tests/Collection_Test.cpp: - Fixed a typo in an explicit template instantiation directive. - -Sat Aug 9 13:56:37 2003 Venkita Subramonian - - * Kokyu/Dispatcher_Task.h: Deleted extra qualification for method - prototype declarations to get rid of compiler warnings in - Debian_Full_Reactors build. - - * Kokyu/Makefile: Updated dependencies. - -Sat Aug 9 18:23:32 UTC 2003 Don Hinton - - * ace/ace.mpc: - Added Container_Instantiations.cpp to resolve problems on - Solaris when templates=explicit. - -Sat Aug 9 12:49:11 UTC 2003 Johnny Willemsen - - * etc/tao_rtevent.doxygen: - Added TAO/orbsvcs/orbsvcs/Event_Service_Constants.h to the list - of files that must be parsed for the RTEvent doxygen documentation - -Sat Aug 9 06:17:49 UTC 2003 Don Hinton - - * ace/Process_Mutex.cpp: - Readded explicit template instantiation of - ACE_GUARD and #includes needed to compile it. - -Sat Aug 9 05:16:32 UTC 2003 Don Hinton - - * include/makeinclude/platform_g++_common.GNU: - Modified the ld version test so that it wouldn't printout error - information to the build log on failure. - -Sat Aug 9 04:21:24 UTC 2003 Don Hinton - - * ace/config-freebsd.h: - Added a test for ACE_MT_SAFE to support single threaded builds. - - * include/makeinclude/platform_aix_g++.GNU: - * include/makeinclude/platform_gnuwin32_common.GNU: - * include/makeinclude/platform_irix6.x_sgic++.GNU: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/platform_linux_borland.GNU: - * include/makeinclude/platform_linux_icc.GNU: - * include/makeinclude/platform_osf1_4.x_cxx.GNU: - * include/makeinclude/platform_sunos5_g++.GNU: - * include/makeinclude/platform_sunos5_ghs.GNU: - * include/makeinclude/wrapper_macros.GNU: - Add ACE_MT_SAFE=0 to CPPFLAG in wrapper_macros.GNU instead of - each individual platform_*.GNU file. - - * include/makeinclude/platform_g++_common.GNU: - * include/makeinclude/platform_vxworks5.x_g++.GNU: - Set SONAME equal to nothing in the individual platform_*.GNU - files to turn off library naming instead of using with_ld. - with_ld, however it is still used with hpux to modify the - options. - - * include/makeinclude/platform_aix_g++.GNU: - * include/makeinclude/platform_freebsd.GNU: - * include/makeinclude/platform_g++_common.GNU: - * include/makeinclude/platform_gnuwin32_common.GNU: - * include/makeinclude/platform_hpux_gcc.GNU: - * include/makeinclude/platform_irix5.2.GNU: - * include/makeinclude/platform_irix5.3_g++.GNU: - * include/makeinclude/platform_irix6.x_g++.GNU: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/platform_lynxos.GNU: - * include/makeinclude/platform_m88k.GNU: - * include/makeinclude/platform_macosx.GNU: - * include/makeinclude/platform_netbsd.GNU: - * include/makeinclude/platform_openbsd.GNU: - * include/makeinclude/platform_osf1_4.x_g++.GNU: - * include/makeinclude/platform_psosim_g++.GNU: - * include/makeinclude/platform_qnx_neutrino.GNU: - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - * include/makeinclude/platform_sco-nothread.GNU: - * include/makeinclude/platform_sco5.0.0-mit-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-nothread.GNU: - * include/makeinclude/platform_sunos4_g++.GNU: - * include/makeinclude/platform_sunos5_g++.GNU: - * include/makeinclude/platform_unixware_g++.GNU: - * include/makeinclude/platform_vxworks5.x_g++.GNU: - Move the inclusion of platform_g++_common.GNU in the - platform_*.GNU files to after DLD (and SONAME) have been set so - that platform_g++_common.GNU can use the value to to help - determine whether or not to add -Wl,-E to LDFLAGS. Also added - additional checking to make sure that we only test GNU ld. - -Fri Aug 8 23:23:30 2003 Venkita Subramonian - - * Kokyu/Dispatcher_Task.{h,cpp,i}: - Renamed init() method so that it does not hide the base class - init method. - - * Kokyu/Default_Dispatcher_Impl.cpp: - Commented out some debug statements. - -Sat Aug 9 01:03:52 UTC 2003 Don Hinton - - * ace/Based_Pointer_Repository.cpp: - * ace/Malloc_Instantiations.cpp: - * ace/Timer_Hash.cpp: - * ace/Timer_Heap.cpp: - * ace/Timer_List.cpp: - * ace/Timer_Queue.cpp: - * ace/Timer_Wheel.cpp: - Added #include of various Synch headers needed on Solaris when - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION is defined. - -Fri Aug 8 13:26:25 2003 Venkita Subramonian - - * Kokyu/Dispatcher_Task.{h,cpp}: Changed typo TAO_SYNCH_MUTEX to - ACE_SYNCH_MUTEX to get rid of compile errors in explicit - template instantiation builds. - -Fri Aug 8 11:03:57 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Remove the 'perl' call before depgen.pl. - - * bin/MakeProjectCreator/templates/nmake.mpd: - - Put back ACE_ROOT reference in the templates for the depgen.pl - script. It is necessary since nmake doesn't support the windows - associates like the command prompt does. - -Fri Aug 8 10:42:16 2003 Venkita Subramonian - - * Makefile: Added Kokyu to CORE_DIRS list since - TAO/orbsvcs/orbsvcs is in core build and - TAO/orbsvcs/orbsvcs/Event/*Kokyu* depends on Kokyu framework. - -Fri Aug 8 13:22:12 UTC 2003 Johnny Willemsen - - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp: - Added include of OS.h to get ACE_TMAIN. This fixes the link errors we see - with these examples. - -Fri Aug 8 07:10:06 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - - Moved the shflags out of the configurations and into the - platforms. The link flag is particular to the linker of the - platform. - -Fri Aug 8 06:56:52 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Fixed a problem with my change from Thu Aug 7 12:43:05 2003. The - INSTARGET needed to be set before it was used in the all: - dependencies. - -Thu Aug 7 21:47:25 2003 Venkita Subramonian - - * Kokyu/Kokyu.h: Included Dispatcher_Impl.h header file instead of - forward declaring Dispatcher_Impl. This was causing compile - errors/warnings in some builds. - - * Kokyu/Makefile: Updated dependencies. - -Thu Aug 07 16:36:29 2003 Nanbor Wang - - * bin/MakeProjectCreator/config/qt-min.mpb: Added a minimal Qt - base project for those projects which require to use Qt library - but not ACE_QtReactor. - - * bin/MakeProjectCreator/config/qt-min_moc.mpb: Same twist for - qt_moc.mpb. Things can probably be condensed more, later. - -Thu Aug 7 13:29:22 2003 Venkita Subramonian - - * Makefile: Added Kokyu directory to DIRS and CLONE variables, so - that it is included as part of the autobuilds and release tar - ball. Thanks to Craig Rodrigues for pointing - this out. - -Thu Aug 7 12:43:05 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Fixed a problem with the generic make template where a static - library wouldn't get installed. - -Thu Aug 7 13:08:28 UTC 2003 Don Hinton - - * ace/Unbounded_Set_Ex.cpp: - Added #include of os_errno.h to pick up ENOMEM on older versions - of gcc and needed due to recent subsetting. - -Thu Aug 7 07:35:56 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Corrected a bug in the dependency sorting logic by removing the - use of splice and manually moving the array entries. - -Thu Aug 7 06:18:57 2003 Chad Elliott - - * include/makeinclude/rules.local.GNU: - - Added a dash in front of the include for the dependency file to - suppress warnings about missing files. - -Thu Aug 7 00:12:50 UTC 2003 Don Hinton - - * ace/Handle_Set.i: - Added several #includes required by the FD_ZERO macro on various - platforms, including os_string.h, os_strings.h, and bstring.h, - required by recent subsetting. - - * ace/Process_Mutex.cpp: - Removed explicit template instantiation of - ACE_GUARD that doesn't appear to be needed - within ACE and highlighted by recent subsetting. - - * ace/TSS_T.cpp: - Added conditional #include TSS_Adapter.h when ACE_HAS_THR_C_DEST is - defined and required by recent subsetting. - - * ace/Timer_Queue_T.cpp: - Added #include Null_Mutex.h required by recent subsetting. - -Wed Aug 6 14:50:00 UTC 2003 Gautam Thaker - - Please send all comments/questions about this commit to - Jason Cohen, jcohen@atl.lmco.com - - LKSCTP Support added for Linux 2.5/2.6 kernels with LKSCTP patch. - - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/SOCK_SEQPACK_Connector.h: - Changed default protocol from 0 to 132 (IPPROTO_SCTP). - This forces all current usage of SOCK_SEQPACK_* to use - SCTP. This was done because LKSCTP support was added to - the SOCK_SEQPACK code, but overrides with SOCK_STREAM. - Currently, OpenSS7 and LKSCTP have different views on this. - - * ace/SOCK_SEQPACK_Acceptor.cpp: - * ace/SOCK_SEQPACK_Association.cpp: - * ace/SOCK_SEQPACK_Connector.cpp: - Added #ifdef ACE_HAS_LKSCTP sections to SOCK_SEQPACK_* files - to support socket interface differences between LKSCTP and OpenSS7. - - * ace/os_include/sys/os_socket.h: - * include/makeinclude/platform_linux.GNU: - To enable LKSCTP support on a patched Linux 2.5/2.6 kernel, - you must supply 'sctp=lksctp' to your make command line. - - * performance-tests/SCTP/Options_Manager.cpp - Now allows automatic server selection of port. - - * performance-tests/SCTP/README - * performance-tests/SCTP/README.LKSCTP: - * performance-tests/SCTP/README.SCTP: - * performance-tests/SCTP/README.SCTP_in_ACE: - Made additions for LKSCTP to the documentation. - -Wed Aug 6 14:13:25 UTC 2003 Don Hinton - - * ace/Null_Condition.h (vait): - Removed unused variable in method declaration to quash a warning. - -Wed Aug 6 03:29:03 UTC 2003 Don Hinton - - Additional includes required by recent subsetting. - - * Kokyu/Dispatcher_Task.h: Lock_Adapter_T.h. - * apps/JAWS2/HTTPU/http_headers.h: Null_Mutex.h. - * apps/JAWS2/HTTPU/http_status.h: Synch_Traits.h. - * apps/JAWS2/JAWS/Cache_Manager_T.cpp: streams.h. - * apps/JAWS2/JAWS/IO.h: Synch_Traits.h. - * apps/JAWS2/JAWS/IO_Handler.h: RW_Thread_Mutex.h - * apps/JAWS2/JAWS/JAWS.h: Trace.h. - * apps/JAWS2/JAWS/Parse_Headers.h: Synch_Traits.h. - * apps/soreduce/Library.h: streams.h. - - * apps/JAWS2/JAWS/Server.cpp: - Added #ifdef around ACE_Trace calls to turn on/off tracing. - -Wed Aug 6 02:27:32 UTC 2003 Don Hinton - - * include/makeinclude/platform_g++_common.GNU: - Modified the test for whether or not GNU ld supports the -E - option needed to enable dynamic_casting of objects passed to - shared libraries. Thanks to Chris Cleeland - for suggesting we dynamically obtain which - ld to use by passing the -print-prog-name to gcc, and - Krishnakumar B for the patch. - - * ace/Null_Mutex.h: - * ace/Null_Semaphore.h: - Removed unused variable name to silence warnings. - -Tue Aug 5 17:25:35 UTC 2003 Don Hinton - - * ace/Dev_Poll_Reactor.{cpp,h}: - Added #includes of Reverse_Lock_T.h, Recursive_Thread_Mutex.h, - Null_Mutex.h, and Lock_Adapter_T.h needed due to recent subsetting. - - * ace/Dump_T.cpp: - Added #include of Global_Macros.h. - - * ace/Global_Macros.h: - Added #include of the appropriate new header to get the - definition of placement new(). Thanks to Olli Savia - for this suggestion. - - * ace/Log_Msg.cpp: - Removed the explicite template instantiation of ACE_Reverse_Lock - that wasn't used and appeared to be dead code. Thanks to Olli - Savia for pointing out the problem. - - * ace/Timer_Queue_Adapters.{h,cpp}: - Moved #include of Condition_Recursive_Thread_Mutex.h from the - cpp to the header since it's used as a member variable. - - * examples/Reactor/WFMO_Reactor/APC.cpp: - * examples/Reactor/WFMO_Reactor/Abandoned.cpp: - * examples/Reactor/WFMO_Reactor/Registration.cpp: - * examples/Reactor/WFMO_Reactor/Registry_Changes.cpp: - Added #include of Auto_Event.h needed due to recent subsetting - changes. - - * tests/Proactor_Test.cpp: - Added #include of Thread_Semaphore needed due to recent - subsetting changes. - -Tue Aug 5 15:16:54 UTC 2003 Don Hinton - - * ace/os_include/os_errno.h: - * ace/os_include/os_limit.h: - Moved define for PIPE_BUF from os_errno.h, where it have been - moved by mistake (see Mon Aug 4 13:08:29 UTC 2003 Don Hinton - ) to os_limit.h. - - * ace/os_include/os_errno.h: - * ace/os_include/sys/os_wait.h: - Moved define for WNOHANG from os_errno.h, where it have been - moved by mistake (see Mon Aug 4 13:08:29 UTC 2003 Don Hinton - ) to sys/os_wait.h. - -Tue Aug 5 01:17:55 UTC 2003 Don Hinton - - * ace/TSS_T.cpp: - Rolled back part of the fix from Mon Aug 4 21:02:12 UTC 2003 - Don Hinton . Some of the cpp still - needs to be ifdef'd out for single threaded builds. - - * ace/Timer_Queue_Adapters.cpp: - Added #include Condition_Recursive_Thread_Mutex.h needed on some - Windows builds. - -Mon Aug 4 21:02:12 UTC 2003 Don Hinton - - * ace/TSS_T.{h,cpp}: - Removed ACE_HAS_THREADS #ifdef around ACE_TSS* classes that - shouldn't have been there, and was erroneously added when the - code was moved. Although ACE_TSS probably should be ifdef'd and - the ACE_TSS_TYPE macros used, that wasn't the purpose of the - move, so it was set back to the way it was. - - * ace/Free_List.h: - Added #include os_stddef.h to pick up size_t. Thanks to John - Michael Zorko for submitting this patch. - -Mon Aug 4 17:03:55 UTC 2003 Don Hinton - - * ace/Bound_Ptr.i: - Added #include of Guard_T.h. - - * apps/mkcsregdb/mkcsregdb.cpp: - Added #include of Log_Msg.h. - - * examples/Export/dll.h: - Added #include of Null_Mutex.h. - - * examples/Reactor/Proactor/post_completions.cpp: - Added #include of Thread_Mutex.h and changed ACE_Thread_Mutex to - ACE_SYNCH_MUTEX. - - * examples/Smart_Pointers/Gadget_Part.h. - Added #include Synch_Traits.h and Thread_Mutex.h. - -Mon Aug 4 13:56:31 UTC 2003 Don Hinton - - * ace/Synch_T.h: - Added #include Synch.h to insure backward compatibility on - non-threaded builds. - - * ace/Strategies_T.cpp: - Added #include ACE.h needed when not inlining. - -Mon Aug 4 13:08:29 UTC 2003 Don Hinton - - * ace/OS.h: - * ace/os_include/os_errno.h: - Moved some additional error code definitions to os_errno.h. - This will fix compile errors on FreeBSD. - - * ace/config-win32-common.h: - Added ACE_LACKS_ARPA_INET_H. This will fix compile problems on - Windows. - -Mon Aug 4 09:31:12 UTC 2003 Johnny Willemsen - - * ace/os_include/os_dlfcn.h: - Added VxWorks includes for shared library functions. - - * ace/OS.i: - Implemented access, dlerror and dlopen for VxWorks. There is no - reference counting on dlopen, when calling it multiple times on - the same shared lib it will load the same lib multiple times, - this because VxWorks has no reference counting. Use these with - care because of the strange VxWorks implementation. Thanks to - Marc Walrave for creating this. - -Mon Aug 4 23:47:33 2003 Ossama Othman - - * ace/Array_Base.cpp: - - For MSVC++ 6, include standard C++ header to pull in - placement new() operator prototype. Addresses template - instantiation errors. - -Mon Aug 4 22:41:24 2003 Ossama Othman - - * ace/DLL_Manager.cpp: - - Include "ace/Guard_T.h" to pull in ACE_Guard template - declaration. - - * ace/MEM_Addr.cpp: - - Include "ace/OS.h" to pull in ACE_OS::strtoul() static function - prototype. - - * ace/Process_Semaphore.h: - - Include "ace/Semaphore.h" to pull in the ACE_Semaphore class - declaration for the (ACE_WIN32 || ACE_HAS_POSIX_SEM || ACE_PSOS) - case. - - * ace/Service_Object.cpp: - - Include "ace/ACE.h" to pull in ACE::strnew() function prototype. - - * ace/Service_Repository.cpp: - - Include "ace/ACE.h" to pull in ACE::debug() function prototype. - - * ace/Token.h: - - Fixed compile-time problems in MSVC++ builds. Some headers must - still be included for the ACE_TOKEN_USES_SEMAPHORE case. - - * ace/WIN32_Asynch_IO.h: - - Include "ace/Null_Mutex.h" to pull in ACE_Null_Mutex class - declaration. - - * ace/WIN32_Proactor.h: - - Include "ace/Auto_Event.h" to pull in ACE_Auto_Event class - declaration. - -Mon Aug 4 04:28:59 UTC 2003 Don Hinton - - * ace/Condition_Recursive_Thread_Mutex.cpp: - * ace/Condition_Thread_Mutex.cpp: - * ace/TSS_T.{cpp,h}: - * ace/Thread_Mutex.h: - * ace/Token.{h,i}: - Added or adjusted placement of #ifdef ACE_HAS_THREADS in order - to fix compile errors on single threaded builds. - - * ace/DLL_Manager.h: - Added #include ace/os_include/os_dlfcn.h needed for single - threaded builds. - -Mon Aug 4 03:26:30 UTC 2003 Don Hinton - - * ace/Auto_Event.{h,cpp,inl}: - * ace/Barrier.{h,cpp,inl}: - * ace/Condition_Recursive_Thread_Mutex.{h,cpp,inl}: - * ace/Condition_T.{h,cpp,inl}: - * ace/Condition_Thread_Mutex.{h,cpp,inl}: - * ace/Event.{h,cpp,inl}: - * ace/Guard_T.{h,cpp,inl}: - * ace/Lock.{h,cpp,inl}: - * ace/Lock_Adapter_T.{h,cpp,inl}: - * ace/Manual_Event.{h,cpp,inl}: - * ace/Mutex.{h,cpp,inl}: - * ace/Null_Barrier.h: - * ace/Null_Condition.h: - * ace/Null_Mutex.h: - * ace/Null_Semaphore.h: - * ace/RW_Mutex.{h,cpp,inl}: - * ace/RW_Thread_Mutex.{h,cpp,inl}: - * ace/Recursive_Thread_Mutex.{h,cpp,inl}: - * ace/Reverse_Lock_T.{h,cpp,inl}: - * ace/Semaphore.{h,cpp,inl}: - * ace/Synch_Traits.h: - * ace/TSS_Adapter.{h,cpp,inl}: - * ace/TSS_T.{h,cpp,inl}: - * ace/Thread_Mutex.{h,cpp,inl}: - * ace/Thread_Semaphore.{h,cpp,inl}: - * ace/Synch.{h,cpp,i}: - * ace/Synch_T.{h,cpp,i}: - Moved all the code out of Synch* and into new files, roughly one - per class as part of the footprint and compile time reduction - effort. - - * ace/TSS_T.h: - * ace/OS.h: - Moved the ACE_TSS_TYPE macros from OS.h to TSS_T.h: - - * ace/Token.{h,i}: - * ace/Synch.{h,i}: - Moved the ACE_Noop_Token class from Synch.* to Token.*. - - * ace/ARGV.cpp: - * ace/Activation_Queue.h: - * ace/Active_Map_Manager_T.h: - * ace/Asynch_Pseudo_Task.h: - * ace/Atomic_Op.h: - * ace/Atomic_Op_T.{h,i}: - * ace/Based_Pointer_Repository.{cpp,h}: - * ace/Bound_Ptr.i: - * ace/Cached_Connect_Strategy_T.{cpp,h}: - * ace/Capabilities.h: - * ace/Configuration.h: - * ace/Containers_T.cpp: - * ace/DLL_Manager.{cpp,h}: - * ace/Dump.{cpp,h}: - * ace/Dynamic.cpp: - * ace/Event_Handler.h: - * ace/Filecache.h: - * ace/Framework_Component.{h,cpp,inl}: - * ace/Free_List.{h,i}: - * ace/Future.h: - * ace/Handle_Set.cpp: - * ace/Hash_Cache_Map_Manager_T.{h,i}: - * ace/Hash_Map_With_Allocator_T.h: - * ace/High_Res_Timer.cpp: - * ace/Lib_Find.cpp: - * ace/Local_Name_Space.h: - * ace/Local_Name_Space_T.h: - * ace/Log_Msg.{cpp,h}: - * ace/Log_Record.{h,i}: - * ace/MEM_SAP.i: - * ace/Malloc.cpp: - * ace/Malloc_Allocator.cpp: - * ace/Malloc_T.h: - * ace/Map_Manager.{h,i}: - * ace/Memory_Pool.cpp: - * ace/Message_Block.cpp: - * ace/Message_Queue.h: - * ace/Message_Queue_T.h: - * ace/Metrics_Cache.h: - * ace/Name_Request_Reply.cpp: - * ace/Object_Manager.{cpp,h}: - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_CB_Proactor.h: - * ace/Proactor.cpp: - * ace/Process_Manager.{cpp,h}: - * ace/Process_Mutex.{cpp,h}: - * ace/Process_Semaphore.h: - * ace/RB_Tree.{cpp,i}: - * ace/SOCK_Acceptor.cpp: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_SEQPACK_Acceptor.cpp: - * ace/SPIPE_Acceptor.h: - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.{cpp,h}: - * ace/Service_Repository.{h,i}: - * ace/Service_Types.{h,i}: - * ace/Signal.{cpp,h}: - * ace/Singleton.{cpp,h}: - * ace/Strategies_T.{cpp,h}: - * ace/System_Time.h: - * ace/Task_T.{cpp,h}: - * ace/Test_and_Set.cpp: - * ace/Thread_Exit.cpp: - * ace/Thread_Manager.{cpp,h}: - * ace/Timeprobe.h: - * ace/Timer_Queue.h: - * ace/Timer_Queue_T.cpp: - * ace/Token.{cpp,h,i}: - * ace/Token_Invariants.h: - * ace/Token_Manager.h: - * ace/UPIPE_Acceptor.h: - * ace/UPIPE_Connector.h: - * ace/UPIPE_Stream.h: - * ace/UUID.h: - * ace/Unbounded_Queue.cpp: - * apps/drwho/BS_Client.cpp: - * examples/ASX/Event_Server/Event_Server/Consumer_Router.h: - * examples/ASX/Event_Server/Event_Server/Peer_Router.h: - * examples/ASX/UPIPE_Event_Server/Peer_Router.h: - * examples/C++NPv2/Logging_Event_Handler_Ex.h: - * examples/Logger/simple-server/Reactor_Singleton.h: - * examples/Misc/test_get_opt.cpp: - * examples/Misc/test_set.cpp: - * examples/Misc/test_trace.cpp: - * examples/Reactor/Misc/test_timer_queue.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - * examples/Threads/TSS_Data.h: - * examples/Threads/barrier2.cpp: - * examples/Threads/task_one.cpp: - * examples/Timer_Queue/Thread_Timer_Queue_Test.h : - * performance-tests/SCTP/Options_Manager.cpp - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - * tests/Aio_Platform_Test.cpp: - * tests/Basic_Types_Test.cpp: - * tests/Cached_Allocator_Test.cpp: - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/Message_Block_Test.cpp: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Reactor_Timer_Test.cpp: - * tests/Recursive_Condition_Bug_Test.cpp: - * tests/Task_Test.cpp: - * tests/Thread_Manager_Test.cpp: - * tests/Thread_Pool_Test.cpp: - * tests/Timeprobe_Test.cpp: - * tests/Timer_Queue_Reference_Counting_Test.cpp: - * tests/Timer_Queue_Test.cpp: - * tests/Token_Strategy_Test.cpp: - Refactored the includes due to Synch changes above. - - * etc/ace.doxygen: - Added "__ACE_INLINE__" and ACE_TEMPLATES_REQUIRE_SOURCE to - PREDEFINES so that the all the includes would show up in the - doxygen file reference pages. - - * ace/Log_Msg.{h,cpp}: - Removed the static log_msg_tss_key_ variable from ACE_Log_Msg - and added a free function in Log_Msg.cpp with a static local - variable to hold the same value. The obviates the need to - include OS.h in Log_Msg.h. - -Sun Aug 3 20:55:24 2003 Balachandran Natarajan - - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: #included ACE.h to - get rid of compile errors in the full reactor build. - -Sat Aug 2 17:50:30 2003 Jeff Parsons - - * ace/WIN32_Asynch_IO.h: - - Added #include of ace/Handle_Set.h. - -Fri Aug 1 17:23:32 2003 Balachandran Natarajan - - * ace/Cache_Map_Manager_T.cpp: - * ace/Functor.i: - * ace/Hash_Map_Manager_T.cpp: - * ace/Map_Manager.cpp: - * ace/POSIX_Asynch_IO.h: - * ace/RB_Tree.i: - * ace/String_Base.cpp: Changed all the includes of OS.h and - Malloc.h to OS_String.h and Malloc_Base.h, since that is - sufficient. Thanks to Carlos O'Ryan for providing the - patches. This helps to improve the compilation time of ACE and - its applications that use the above features. - -Fri Aug 1 14:55:00 2003 Dan Troesser - - * bin/create_ace_build.pl: - - Added -a (absolute) option to correspond with original - create_ace_build script. - -Fri Aug 1 14:52:17 2003 Justin Michel - - * bin/MakeProjectCreator/config/acedefaults.mpb: - - Removed the legacy libpaths. They make the log output too long, and - seem to cause a problem with some nightly builds for some - unknown reason. We'll just have to be careful not to check in - mpc-generated files without editing for reverse compatibility. - -Fri Aug 1 12:37:59 UTC 2003 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Added setting of ACE_HAS_CHARPTR_DL - -Fri Aug 1 07:21:39 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Added a 'forcount' which provides a one based index of the foreach - iterations. - -Fri Aug 1 06:37:39 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where pch files were being picked up even if they did - not end with a valid extension. - -Thu Jul 31 14:22:17 2003 Justin Michel - - * bin/create_ace_build.pl: - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/loadbalancing.mpb: - * bin/MakeProjectCreator/config/property.mpb: - * bin/MakeProjectCreator/config/rtoldevent.mpb: - - Added .disable to the list of files that won't be linked - by create_ace_build.pl. - Added legacy libpaths so that generated Makefiles will be - reverse compatible with existing ones, as a temporary - workaround until everything is MPC generated. - Fixed some typos in base mpb files. - -Thu Jul 31 13:12:17 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - The KEEP_GOING flag is automatically set now. It is keyed off of - the -k option to make. If -k is passed to make, then KEEP_GOING - will be set to 1, otherwise it will be set to 0. - -Thu Jul 31 11:36:35 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Added the ability for the main Makefile to stop after the first - error. By default, it moves on to the next makefile when an error - is encountered. Now, set the make macro KEEP_GOING to zero to - have it stop after the first error is encountered. - -Thu Jul 31 16:14:30 UTC 2003 Don Hinton - - * examples/C++NPv2/C++NPv2.mpc: - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.mpc: - * examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc: - * examples/Registry/Registry.mpc: - Added a verbatim tag that ifdef's out the entire Makefile on - non-Windows systems. This code can probably be factored out - into a platform specific template that Windows only project - inherit. Also, this will probably prevent these project from - being built with Cygwin and MinGW, since the only test for the - MAKE variable, not a Windows specific variable. - -Thu Jul 31 07:42:57 2003 Douglas C. Schmidt - - * apps/soreduce/Obj_Module.cpp (add_source): - * apps/soreduce/SO_Group.cpp (add_executable): Fixed bugs where - application code was being called within ACE_ASSERT macros, - which were disappearing when ACE_NDEBUG was enabled! Thanks to - Roland Meub for reporting this fix. - -Thu Jul 31 01:29:16 UTC 2003 Don Hinton - - * examples/Export/Export.mpc: - Added sharedname to library project and libs to executable so - they would link correctly. - - * examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc: - * examples/Smart_Pointers/Smart_Pointers.mpc: - Fixed minor typo's in exename and sourcefile name. - -Thu Jul 31 00:49:18 UTC 2003 Don Hinton - - These are changes needed in order to use MPC. - - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.{h,cpp}: - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.{h,cpp}: - * examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp: - * examples/Reactor/WFMO_Reactor/APC.cpp: - * examples/Reactor/WFMO_Reactor/Abandoned.cpp: - * examples/Reactor/WFMO_Reactor/Directory_Changes.cpp: - * examples/Reactor/WFMO_Reactor/Exceptions.cpp: - * examples/Reactor/WFMO_Reactor/Multithreading.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/Window_Messages.cpp: - * examples/Registry/test_registry_iterator.cpp: - * examples/Registry/test_registry_update.cpp: - * examples/Service_Configurator/Misc/Timer_Service.cpp: - Modified include order and added ifdef's around WIN32 specific - code so these projects will compile on non-Windows platforms, - since MPC doesn't currently allow you to easily exclude projects - based on platform. - - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - Removed an unused parameter and added parentheses to fix compile - warnings and errors. - - * examples/Reactor/Proactor/test_multiple_loops.cpp: - Fixed a capitalization typo in an include, and added an else - branch to define a main() function. - - * examples/RMCast/Send_File/RMCast_Send_File.mpc: - * tests/RMCast/acetest.mpb: - Added a "requires += rmcast" so that these projects would only - be compiled if libRMCast had been compiled, i.e., rmcast=1. - -Wed Jul 30 19:21:27 UTC 2003 Don Hinton - - * ace/Global_Macros.h: - * ace/Log_Msg.cpp: - * ace/Naming_Context.cpp: - * ace/Object_Manager.cpp: - * ace/README: - * examples/ASX/Event_Server/Event_Server/Options.cpp: - * examples/ASX/UPIPE_Event_Server/Options.cpp: - * examples/Shared_Malloc/Options.cpp: - Added ACE_HAS_TRACE macro that gets defined if ACE_NTRACE=0 and - is used to ifdef away calls to ACE_Trace when not tracing. This - removes the need to link in Trace.o for static applications not - tracing. - - * ace/Asynch_Acceptor.cpp: - * ace/Auto_Ptr.h: - * ace/Auto_Ptr.i: - * ace/Based_Pointer_T.h: - * ace/Based_Pointer_T.i: - * ace/OS.h: - * ace/SV_Semaphore_Complex.i: - * ace/SV_Semaphore_Simple.i: - * ace/Synch_Options.cpp: - * ace/Trace.h: - * tests/Proactor_Timer_Test.cpp: - * tests/Reactor_Timer_Test.cpp: - Adjusted includes to reflect the above change by mainly removing - Trace.h, though in some cases by including Global_Macros.h or - Trace.h for the two tests. - - * bin/generate_export_file.pl: - Made the generated code match what's in Global_Macros.h: - - * ace/Select_Reactor.h: - When ACE_MT_SAFE=0, ifdef away the unused template specialization - of ACE_Guard>. - -Wed Jul 30 17:00:03 2003 Yamuna Krishnamurthy - - * ace/UUID.cpp: - - Removed erroneous casting of timeLow. Thanks to Johnny Willemsen - for pointing this out. - -Wed Jul 30 02:18:17 UTC 2003 Don Hinton - - * configure.ac: - * m4/config_h.m4: - Added macros to check for existence of stdint.h and inttypes.h - and define the appropriate ACE_LACKS_* macro is they are - missing. - - * ace/os_include/os_pthread.h: - Added check for UNIXWARE_7_1 before defining default values for - several THR_* macros. Terletsky Oleg - for supplying these patches. - -Tue Jul 29 09:59:35 2003 Chad Elliott - - * ace/UUID.cpp: - - Changed the #includes to use the ace directory. - - * ace/ace.mpc: - - Added Metrics_Cache.cpp and UUID.cpp. - -Tue Jul 29 09:39:58 2003 Chad Elliott - - * bin/MakeProjectCreator/config/vcpartialmacros.mpt: - - Modified to add to pch_defines instead of assigning. - - * bin/MakeProjectCreator/templates/bordll.mpt: - * bin/MakeProjectCreator/templates/borexe.mpt: - * bin/MakeProjectCreator/templates/common.mpt: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/gnudll.mpt: - * bin/MakeProjectCreator/templates/gnuexe.mpt: - * bin/MakeProjectCreator/templates/makedll.mpt: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/va4iccdll.mpt: - * bin/MakeProjectCreator/templates/va4iccdllexe.mpt: - * bin/MakeProjectCreator/templates/va4icclib.mpt: - * bin/MakeProjectCreator/templates/va4icclibexe.mpt: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Added the common.mpt for a place to put common template input - settings and added an include of common to each template input - file. - -Tue Jul 29 09:01:44 2003 Chad Elliott - - * Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc: - * Kokyu/tests/EDF/EDF.mpc: - * Kokyu/tests/FIFO/FIFO.mpc: - - Added mpc files for the tests. - - * bin/MakeProjectCreator/config/kokyu.mpb: - - Added an include of $(ACE_ROOT)/Kokyu. - -Tue Jul 29 07:59:51 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - - Remove ACE_ROOT reference in the templates for the depgen.pl - script. - -Tue Jul 29 07:46:58 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Change the way the 'implicit' keyword works. It now takes both - boolean values and character strings that represent base projects - for implicitly generated projects. See the README for more - details. - - * examples/examples.mwc: - - Utilize the new 'implicit' functionality. - -Mon Jul 28 22:00:00 2003 Balachandran Natarajan - - * bin/footprint_stats.sh: Added new libraries that were not - covered. - -Mon Jul 28 15:06:32 2003 Jeff Parsons - - * ace/WFMO_Reactor.i: - - Fixed typo in preprocessor directive. - -Mon Jul 28 19:23:22 UTC 2003 Don Hinton - - * ace/WFMO_Reactor.cpp: - Added ACE_UNUSED_ARG to dump to silence a warning when - ACE_HAS_DUMP is not defined. - -Mon Jul 28 18:29:38 UTC 2003 Don Hinton - - * ace/RB_Tree.cpp: - Added ACE_UNUSED_ARG to dump_i and dump_node_i to silence a - warning when ACE_HAS_DUMP is not defined. - -Mon Jul 28 13:01:49 2003 Balachandran Natarajan - - * ace/UUID.h: - * ace/UUID.cpp: The implementations are now placed in a namespace - ACE_Utils. Since we can now use namespaces, adding them to a - namespace made more sense. - - * ace/UUID.i: File UUID.i is now renamed to be UUID.inl - - * ace/UUID.inl: New file. - - * tests/UUIDTest.cpp: Changes to confirm to the above changes. - -Mon Jul 28 12:49:23 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Added the ability to uppercase and lowercase strings within the - templates. - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/AutomakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/automake.mpd: - * bin/mpc.pl: - * bin/mwc.pl: - - Added initial support for Automake. This is by no means complete - or even correct, but it's a starting point. Perhaps someone who - knows something about Automake could make the automake template - better (correct). - -Mon Jul 28 09:36:15 2003 Gan Deng - - * bin/tao_orb_tests.lst - Put the Bug_1551_Regression test into the daily builds. - -Sun Jul 27 20:19:48 UTC 2003 Don Hinton - - * ace/ARGV.cpp: - * ace/ATM_Acceptor.cpp: - * ace/ATM_Acceptor.i: - * ace/ATM_Addr.cpp: - * ace/ATM_Addr.i: - * ace/ATM_Connector.cpp: - * ace/ATM_Connector.i: - * ace/ATM_Params.cpp: - * ace/ATM_Params.i: - * ace/ATM_QoS.cpp: - * ace/ATM_QoS.i: - * ace/ATM_Stream.cpp: - * ace/ATM_Stream.i: - * ace/Acceptor.cpp: - * ace/Activation_Queue.cpp: - * ace/Active_Map_Manager_T.i: - * ace/Addr.cpp: - * ace/Array_Base.inl: - * ace/Atomic_Op.cpp: - * ace/Atomic_Op_T.cpp: - * ace/Atomic_Op_T.i: - * ace/Auto_IncDec_T.cpp: - * ace/Auto_Ptr.cpp: - * ace/Auto_Ptr.i: - * ace/Based_Pointer_T.cpp: - * ace/Cache_Map_Manager_T.cpp: - * ace/Cache_Map_Manager_T.i: - * ace/Caching_Strategies_T.i: - * ace/Connector.cpp: - * ace/Containers_T.cpp: - * ace/Containers_T.i: - * ace/DEV.cpp: - * ace/DEV_Addr.cpp: - * ace/DEV_Connector.cpp: - * ace/DEV_IO.cpp: - * ace/Dev_Poll_Reactor.cpp: - * ace/Dump_T.cpp: - * ace/Dynamic_Service_Base.cpp: - * ace/Event_Handler_T.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/Future.cpp: - * ace/Get_Opt.cpp: - * ace/Handle_Set.cpp: - * ace/Hash_Map_Manager_T.cpp: - * ace/Hash_Map_Manager_T.i: - * ace/High_Res_Timer.cpp: - * ace/INET_Addr.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/Local_Name_Space_T.cpp: - * ace/Local_Tokens.cpp: - * ace/Log_Msg.cpp: - * ace/Log_Record.cpp: - * ace/MEM_Acceptor.cpp: - * ace/MEM_Addr.cpp: - * ace/MEM_Connector.cpp: - * ace/MEM_IO.cpp: - * ace/MEM_SAP.cpp: - * ace/MEM_Stream.cpp: - * ace/Malloc.cpp: - * ace/Malloc_Allocator.cpp: - * ace/Malloc_Allocator.i: - * ace/Malloc_T.cpp: - * ace/Map_Manager.cpp: - * ace/Map_T.i: - * ace/Mem_Map.cpp: - * ace/Memory_Pool.cpp: - * ace/Message_Block.cpp: - * ace/Message_Queue.cpp: - * ace/Message_Queue_T.cpp: - * ace/Module.cpp: - * ace/Name_Proxy.cpp: - * ace/Name_Request_Reply.cpp: - * ace/Naming_Context.cpp: - * ace/OS.cpp: - * ace/Obchunk.cpp: - * ace/Obstack_T.cpp: - * ace/PI_Malloc.cpp: - * ace/Parse_Node.cpp: - * ace/Pipe.cpp: - * ace/Priority_Reactor.cpp: - * ace/Process_Manager.cpp: - * ace/Process_Mutex.cpp: - * ace/Process_Semaphore.cpp: - * ace/Profile_Timer.cpp: - * ace/RB_Tree.cpp: - * ace/RB_Tree.i: - * ace/RW_Process_Mutex.cpp: - * ace/Reactor.cpp: - * ace/Read_Buffer.cpp: - * ace/Registry_Name_Space.cpp: - * ace/Remote_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/SString.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/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.cpp: - * ace/Service_Config.cpp: - * ace/Service_Manager.cpp: - * ace/Service_Object.cpp: - * ace/Service_Repository.cpp: - * ace/Service_Types.cpp: - * ace/Shared_Memory_MM.cpp: - * ace/Shared_Memory_SV.cpp: - * ace/Signal.cpp: - * ace/Singleton.cpp: - * ace/Stats.i: - * ace/Strategies_T.cpp: - * ace/Stream.cpp: - * ace/Stream_Modules.cpp: - * ace/String_Base.i: - * ace/Svc_Handler.cpp: - * ace/Synch.cpp: - * ace/Synch.i: - * ace/Synch_Options.cpp: - * ace/Synch_T.cpp: - * ace/TLI.cpp: - * ace/TLI_Acceptor.cpp: - * ace/TLI_Connector.cpp: - * ace/TLI_Stream.cpp: - * ace/Task_T.cpp: - * ace/Thread_Control.cpp: - * ace/Thread_Manager.cpp: - * ace/Time_Request_Reply.cpp: - * ace/Time_Value.cpp: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Queue_T.cpp: - * ace/Timer_Wheel_T.cpp: - * ace/Token.cpp: - * ace/Token_Collection.cpp: - * ace/Token_Invariants.cpp: - * ace/Token_Manager.cpp: - * ace/Token_Request_Reply.cpp: - * ace/Trace.cpp: - * ace/Typed_SV_Message.cpp: - * ace/Typed_SV_Message_Queue.cpp: - * ace/UNIX_Addr.cpp: - * ace/UPIPE_Acceptor.cpp: - * ace/UPIPE_Connector.cpp: - * ace/UPIPE_Stream.cpp: - * ace/Unbounded_Queue.cpp: - * ace/Unbounded_Set.cpp: - * ace/Unbounded_Set_Ex.cpp: - * ace/Vector_T.cpp: - * ace/WFMO_Reactor.cpp: - * ace/WFMO_Reactor.i: - * ace/XTI_ATM_Mcast.cpp: - * ace/README: - Added new macro, ACE_HAS_DUMP, and used it to #ifdef out the - bodies of the dump() methods is it isn't defined. This will - help reduce footprint for deployed applications that don't use - dump(). Currently, it is not defined by default. - -Sun Jul 27 12:51:14 2003 Venkita Subramonian - - * Kokyu/DSRT_Dispatcher_Impl.{cpp,h,i}: - Deleted these files. - - * Kokyu/Kokyu.dsp: - * Kokyu/Kokyu_Static.dsp: - Updated due to the above deletion. - -Sun Jul 27 12:13:31 2003 Venkita Subramonian - - * Kokyu/DSRT_Schedulers.{cpp,h): - Removed this file. - - * Kokyu/Kokyu_DLL.dsp: - Replaced with Kokyu.dsp. - - * Kokyu/Kokyu.mwc: - Deleted this until I am able to get the mwc based generation - working. - - * Kokyu/Kokyu.mpc: - Changed "dllflags" keyword to "dynamicflags". This was causing - build errors in Win2K_VC71_NET_DLL Remedy build. Thanks to - Johnny Willemsen for pointing this out. - - * Kokyu/Makefile.Kokyu: - Updated dependencies. - - * Kokyu/Kokyu.dsp: - * Kokyu/Kokyu_Static.dsp: - * Kokyu/Kokyu.dsw: - Updated project and workspace files with newly added DSRT files. - -Sat Jul 26 22:08:48 UTC 2003 Don Hinton - - * ace/OS.h (getmacaddress): - Removed unused local variable. Resolves compile warnings on - Sun. - -Sat Jul 26 13:25:12 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - When linking with mingw, also link netapi32 because this is now - needed because of the ACE_OS::getmacaddress() addition - -Fri Jul 25 22:01:14 2003 Venkita Subramonian - * Kokyu/Kokyu.dsp: - * Kokyu/Kokyu_DLL.dsp: - * Kokyu/Kokyu_Static.dsp: - - No .cpp extension was generated in MPC created .dsp - file. Corrected this manually. - -Fri Jul 25 17:41:08 2003 Venkita Subramonian - - * Kokyu/Kokyu_DLL.dsp: - * Kokyu/DSRT_Schedulers.cpp: - * Kokyu/DSRT_Scheduler.h: - - Removed these files from CVS. Kokyu_DLL.dsp is renamed to - Kokyu.dsp after conversion to MPC. - - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.{cpp,h}: - * Kokyu/DSRT_Dispatch_Item_T.{cpp,h,i}: - * Kokyu/DSRT_Dispatcher_Impl_T.{cpp,h,i}: - * Kokyu/DSRT_Sched_Queue_T.{cpp,h}: - * Kokyu/Kokyu_dsrt.{cpp,h,i} - - Added new files to implement dynamic scheduling schedulers. - - * Kokyu/Kokyu.dsp: - * Kokyu/Kokyu.mwc: - * Kokyu/Kokyu.mpc: - * Kokyu/Makefile.Kokyu: - * Kokyu/Makefile.Kokyu.bor: - * Kokyu/Makefile.bor: - * Kokyu/Kokyu.dsw: - * Kokyu/Kokyu_Static.dsp: - * Kokyu/Makefile: - - Created MPC file for Kokyu and generated project files from MPC. - - * Kokyu/Kokyu_defs.{cpp,h,i} - * Kokyu/Default_Dispatcher_Impl.{cpp,h,i} - * Kokyu/Dispatcher_Impl.{h,cpp,i} - * Kokyu/Dispatcher_Task.{h,cpp,i} - * Kokyu/Kokyu.{cpp,h,i} - * Kokyu/kokyu_export.h - - Reorganized files and updated comments and doxygen documentation. - - * Kokyu/tests/DSRT_MIF/MIF.cpp - - Modified example to reflect new Kokyu dispatcher class. - -Thu Jul 24 14:23:44 2003 Douglas C. Schmidt - - * ace/Future.{h,cpp}: Removed the operator new/delete/& so - that ACE_Future can be stored in STL containers (e.g., - sets/maps/etc.). Thanks to Felix Wyss , - Patrick Bennett , and Johnny Tucker - for helping with this. - -Fri Jul 25 17:32:58 UTC 2003 Don Hinton - - * ace/os_include/os_dlfcn.h: - Define ACE_DEFAULT_SHLIB_MODE to be RTLD_LAZY|RTLD_GLOBAL - when ACE_HAS_SVR4_DYNAMIC_LINKING, not just for Linux. - Thanks to Krishnakumar B for suggesting - this. - - * include/makeinclude/platform_macosx.GNU: Add with_ld=macosx. - * include/makeinclude/plafform_g++_common.GNU: - Don't add "-Wl,-E" to LDFLAGS when with_ld=macosx. Thanks to - John Michael Zorko pointing out the problem - and supplying a patch. Also, thanks to Craig Rodrigues - for suggesting we set the default for - with_ld=gnu and only add "-Wl,-E", which id gnu linker - specific, if we're using the gnu version of ld. - -Fri Jul 25 11:37:09 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Added the ability to access grouped source files through the - template. The grouped_source_files, grouped_header_files, etc. - can be used if the files are grouped in the mpc file (as they - currently are in ace.mpc). - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/templates/gnu.mpd: - - Utilize the new template ability and remove the 'gnu_source_files' - and 'build' references and code. - -Fri Jul 25 09:17:39 2003 Balachandran Natarajan - - * bin/performance_stats.sh: - * bin/generate_performance_chart.sh: Redefined the range for - plotting different graphs. - -Fri Jul 25 08:53:12 2003 Balachandran Natarajan - - * bin/performance_stats.sh: Changed the path to mogrify. On - flamenco.dre it is installed in /usr/local instead of - /usr/bin/X11. This would break the stats pages at UCI. The pages - at UCI haven't been updated in a long while. Hence shouldn't be a - big deal. - - With this change the thumbnails should be fine at dre pages. - -Fri Jul 25 11:10:21 UTC 2003 Johnny Willemsen - - * ace/config-win32-common.h: - Only do a pragma comment with MSVC - - * ace/Makefile.bor: - Added UUID - * ace/UUID.h: - Fixed compile error with Borland - - * ace/UUID.cpp: - Improved log line. - - * tests/UUIDTest.cpp: - Fix compile problem in unicode build and ACE_START_TEST to - get logfile. - - * tests/Tests.bor: - Added UUIDTest - -Fri Jul 25 09:34:11 UTC 2003 Johnny Willemsen - - * ace/config-win32-common.h: - Also include nb30.h with MinGW and Borland, but don't do a - pragma comment with MinGW - - * ace/OS.cpp (getmacaddress): - Fixed incorrect trace, with Borland and MinGW use a reinterpret - cast instead of a static cast. - -Thu Jul 24 17:32:51 2003 Pradeep Gore - - * bin/tao_other_tests.lst: - - Added: - $TAO_ROOT/orbsvcs/examples/Notify/Lanes/run_test.pl: !ST !MINIMUM - $TAO_ROOT/orbsvcs/examples/Notify/ThreadPool/run_test.pl: !ST !MINIMUM - -Thu Jul 24 16:23:53 2003 Balachandran Natarajan - - * bin/generate_performance_chart.sh: Changed the scale to which - the graph is plotted. - -Thu Jul 24 14:00:29 2003 Balachandran Natarajan - - * ace/DEV_IO.h (recv_n): - * ace/DEV_IO.i: The semantics of recv_n () is now changed to have - a timeout and a byte transferred variable. The interface now has - the semantics associated with ACE_OS::recv_n () and ACE::recv_n - () calls. Thanks to Tom Phan . - -Thu Jul 24 15:01:59 UTC 2003 Don Hinton - - * include/makeinclude/platform_g++_common.GNU: - Added check for !static_libs_only before setting LDFLAGS += - -Wl,-E, since the static_libs and shared_libs variables aren't - reset until later in wrapper_macros.GNU, e.g., users can either - set shared_libs=0 or static_libs_only=1 to turn off shared_libs. - -Thu Jul 24 13:56:54 UTC 2003 Don Hinton - - * include/makeinclude/platform_g++_common.GNU: - * include/makeinclude/platform_linux.GNU: - Rolled back the part of Wed Jul 23 23:47:52 UTC 2003 Don Hinton - that changed LDFLAGS in - platform_linux.GNU, and instead added the same code to - platform_g++_common.GNU for shared libs only. This should - fix the spike in footprint that showed up this morning due to - yesterday's change. - -Thu Jul 24 01:19:59 UTC 2003 Don Hinton - - * tests/DLL_Test.dsp: - * tests/DLL_Test_Impl.dsp: - Enabled RTTI so we can test dynamic_cast'ing in a dll. - -Wed Jul 23 23:47:52 UTC 2003 Don Hinton - - * ace/os_include/os_dlfcn.h: - Changed ACE_DEFAULT_SHLIB_MODE to be RTLD_LAZY|RTLD_GLOBAL on Linux - in order to enable dynamic_cast'ing in shared libraries loaded by - ACE_DLL. - - * include/makeinclude/platform_linux.GNU: - Added -Wl,-E to LDFLAGS to add all symbols to the dynamic symbol - table in order to enable dynamic_cast'ing in shared libraries - loaded by ACE_DLL. Thanks to Milan Cvetkovic - for reporting this and providing the fix. - - * tests/DLL_Test.cpp: - * tests/DLL_Test.h: - * tests/DLL_Test_Impl.cpp: - Added a dynamic_cast test to the existing DLL_Test. - - * THANKS: - Added Milan Cvetkovic to the hall of fame. - -Wed Jul 23 12:43:48 2003 Ossama Othman - - * ace/UUID.cpp: - - Added missing ACE_RCSID macro. - - (UUID_node): - - Use UUID_node::NODE_ID_SIZE instead of the hardcoded constant - "6". Improves code maintainability. - - (ACE_UUID): - - Corrected format specifier mismatch warnings in sscanf() call - exhibited by G++ 3.2.2. Hexadecimal format specifiers ("%x") - expect the corresponding argument to be an unsigned int, not a - signed int. - -Wed Jul 23 19:35:27 UTC 2003 Don Hinton - - * THANKS: - Added Serkan Unsal to hall of fame. - -Wed Jul 23 18:03:21 UTC 2003 Don Hinton - - * ace/config-cygwin32.h: - Include os_math.h here so it always gets included before - ACE.h, since math.h defines log2 as macro that conflicts with - the method ACE::log2(). - - * ace/ace/String_Base.cpp: - Remove #include "ace/streams.h" and let the cpp's that actually - use it include it themselves. This helps reduce both footprint - and compile-times. Thanks to Bala Natarajan - for motivating this change. - -Wed Jul 23 17:34:56 UTC 2003 Johnny Willemsen - - * ace/Configuration_Import_Export.h: - Document for ACE_Registry_ImpExp that the value after dword is read - in hexidecimal format. Thanks to Todd Cooper for - reporting this. - -Tue Jul 22 22:46:18 2003 Balachandran Natarajan - - * ace/OS.h: Fixed a typo in the documentation of read_n (). - -Tue Jul 22 23:24:53 UTC 2003 Don Hinton - - * ace/OS.cpp (ACE_Thread_ID::to_string): - Fixed WCHAR build errors by making all types char instead of - ACE_TCHAR and removing ACE_LIB_TEXT macros. - -Tue Jul 22 19:20:16 2003 Yamuna Krishnamurthy - - * ace/ace_dll.dsp: - - Included the UUID generator files into the project to compile on - windows. - - * tests/tests.dsw: - * tests/UUIDTest.dsp: - - Updated tests.dsw to include the corresponding UUIDTest.dsp - project for the unit test UUIDTest which tests the ACE UUID - generator. - -Tue Jul 22 16:43:01 UTC 2003 Johnny Willemsen - - * ace/OS.i: - Changed new rand_r() implementation a little bit - -Tue Jul 22 15:12:02 UTC 2003 Don Hinton - - * ace/iosfwd.h: - Added #include "ace/streams.h" if __APPLE_CC__ is defined. This - fixes problems with gperf hanging on MAC OSX. Thanks to John - Michael Zorko for reporting the problem and - supplying the patch. - -Tue Jul 22 14:59:59 UTC 2003 Don Hinton - - * include/makeinclude/platform_linux.GNU: - Rolled back Wed Jun 18 17:28:25 2003 Balachandran Natarajan - and added _GNU_SOURCE instead. If - _GNU_SOURCE is defined, these defaults plus a few others - including _XOPEN_SOURCE, get set by default--and defaults can - and do change over time. This should also cleanup warnings on - Debian builds. - -Tue Jul 22 10:29:39 2003 Steve Huston - - * ace/OS.cpp: Fixed compile error; #elif should be #else. - * ace/UUID.cpp: Added #include "ace/Log_Msg.h" to pick up the necessary - things for doing logging (ACE_DEBUG, etc.). - -Tue Jul 22 06:01:03 UTC 2003 Johnny Willemsen - - * Select_Reactor_T.cpp: - * Timer_Heap_T.cpp: - * Timer_List_T.cpp: - * Timer_Wheel_T.cpp: - Fixed incorrect ACE_TRACE statements to fix fuzz errors. - -Tue Jul 22 05:44:12 UTC 2003 Johnny Willemsen - - * ace/OS.i: - Added an implementation for rand_r() on Win32. Thanks to - Kees van Marle for noticing the lack of this - implementation. - -Tue Jul 22 00:19:39 UTC 2003 Don Hinton - - * examples/C++NPv2/Logging_Handler.cpp: - Added #include "ace/streams.h" to resolve compile error. - -Mon Jul 21 22:57:54 UTC 2003 Don Hinton - - * bin/fuzz.pl: - Added check for "/**/" comment in pre.h/post.h includes. Thanks - to Johnny Willemsen for motivating this. - - * ace/Basic_Types.h: - * ace/Strategies.h: - * ace/UUID.h: - * docs/tutorials/022/Acceptor_Service.h: - * Kokyu/*.h: - Added comment that adding "/**/" between the #include and the - filenames in order to improve doxygen documentation. - -Mon Jul 21 22:52:46 2003 Yamuna Krishnamurthy - - * ace/OS.h: - * ace/OS.cpp: - - Moved #include from OS.h to OS.cpp. This - should resolve the compile errors on solaris. - -Mon Jul 21 08:59:14 2003 Irfan Pyarali - - * ace/UUID.cpp (get_systemtime): - - Temporary fix to get the compiles rolling again. - -Mon Jul 21 01:56:44 2003 Yamuna Krishnamurthy - - * ace/OS.h: - * ace/OS.cpp: - - Added method getmacaddress () to get the mac address of the host - for generating UUIDs - - Added to_string() method to ACE_Thread_ID class to create a - string representation of ACE_Thread_ID. - - * ace/config-win32-common.h: - - Included file nb30.h and library netapi32.lib required for - obtaining MACaddress on windows. - - * ace/UUID.h: - * ace/UUID.cpp: - * ace/UUID.i: - - Files added to generate UUID (Universally Unique ID) based on - expired IETF draft titled "UUIDs and GUIDs". Modifications were - made to the UUID generation as defined by the specification to - add thread and process ids. This was done by adding a new - variant 0xc0 not defined by the specification. By default only - the time variant version of the UUID as defined by the spec is - generated. - - * tests/Makefile.tests: - * tests/UUIDTest.cpp: - - Simple test added to verify ACE UUID generation. - -Sun Jul 20 14:14:46 2003 Douglas C. Schmidt - - * ace/NT_Service.i (ACE_NT_Service): Set dwWaitHint to 0 in the - constructor. Thanks to Emiliano Berenbaum - for reporting this. - -Fri Jul 18 18:59:46 2003 Douglas C. Schmidt - - * ACE-INSTALL.html: Clarified that ACE+TAO no longer build with - MSVC++ 5.x or earlier. Thanks to Amol Tambe - for reporting this. - -Sat Jul 19 18:38:50 UTC 2003 Don Hinton - - * docs/ACE-guidelines.html: - Added comment that adding "/**/" between the #include and the - file name prevents Doxygen from including the file in the file - reference tree graphs, and should be used with pre.h and - post.h--which makes the large ones much easier to understand. - - * ace/*.h: - * ace/CLASSIX/*.h: - * ace/QoS/*.h: - * ace/RMCast/*.h: - * ace/SSL/*.h: - * ace/os_include/*.h: - * ace/os_include/arpa/*.h: - * ace/os_include/net/*.h: - * ace/os_include/netinet/*.h: - * ace/os_include/sys/*.h: - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: - * tests/Service_Config_DLL.h: - Added "/**/" between the #include and filename for pre.h and - post.h so Doxygen won't include them in the file reference tree - graphs. - -Fri Jul 18 17:58:12 UTC 2003 Johnny Willemsen - - * ace/Asynch_IO.h: - * ace/Local_Tokens.h: - * ace/Service_Types.h: - Fixed doxygen warnings. - -Fri Jul 18 10:36:51 2003 Krishnakumar B - - * THANKS: Added Dieter Knüppel to the - contributors list. - -Thu Jul 17 15:02:56 UTC 2003 Don Hinton - - * examples/C++NPv1/Logging_Handler.cpp: - Added #include "ace/streams.h". - -Thu Jul 17 12:49:39 UTC 2003 Don Hinton - - * examples/NT_Service/main.cpp: - Added #include "ace/streams.h". - -Thu Jul 17 06:21:30 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - - Changed the name of borland projects to just be the project name - .bor. - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Changed the default workspace names for nmake and borland to - Makefile. Additionally, I added an option (-make_coexistence) - to allow the gnuace, nmake and borland types to coexist. This - option causes the default workspace names for nmake and borland to - work as they previously had. The nmake workspace would be - workspace name .nmake and the borland workspace would be named - Makefile.bor. - -Wed Jul 16 15:29:37 2003 Justin Michel - - * bin/create_ace_build.pl: - - Fixed to link include/makeinclude/*.bor files. - A few more link exclusions were added. - -Wed Jul 16 15:27:37 2003 Irfan Pyarali - - * ace/Dev_Poll_Reactor.h (find_handler): - - Pure virtual specifier for find_handler() was a cut and paste - error. - -Wed Jul 16 08:38:49 2003 Chad Elliott - - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/openssl.mpb: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/gnudll.mpt: - * bin/MakeProjectCreator/templates/gnuexe.mpt: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Switched ssl over to use the feature based style instead of the - template style. Now, the ssl related libraries will only be added - to the generated projects if the ssl feature is enabled. - -Wed Jul 16 08:00:10 2003 Chad Elliott - - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/global.features: - * bin/MakeProjectCreator/config/zzip.mpb: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/bordll.mpt: - * bin/MakeProjectCreator/templates/borexe.mpt: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/gnudll.mpt: - * bin/MakeProjectCreator/templates/gnuexe.mpt: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/va4iccdll.mpt: - * bin/MakeProjectCreator/templates/va4iccdllexe.mpt: - * bin/MakeProjectCreator/templates/va4icclib.mpt: - * bin/MakeProjectCreator/templates/va4icclibexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - - Switched the zzip configuration information over to use the - feature based style instead of doing it within the templates. - Now, to enable zzip use the -feature_file option to specify a file - that has 'zzip=1' and 'zlib=1'. For more information on the - -feature_file option see the README. - (or use bin/MakeProjectCreator/config/default.features) - - * bin/MakeProjectCreator/config/zziplib.mpt: - - Removed this file. - -Wed Jul 16 12:15:34 UTC 2003 Don Hinton - - * ace/IOStream_T.cpp: - * ace/config-borland-common.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - * ace/config-vxworks5.x.h: - * ace/config-win32-ghs.h: - * ace/iosfwd.h: - Removed all references to ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - It was used to include ace/iosfwd.h instead of ace/streams.h, - but files should only include one they need instead of always - including ace/streams.h, which includes if available - and unnecessarily increases compile times. Thanks to Carlos O'Ryan - motivating this. - - * ace/OS.h: - * ace/Basic_Types.h: - Removed the #ifdefs for ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION and - always include ace/iosfwd.h. - - * ace/OS_Log_Msg_Attributes.h: - Replaced include of ace/streams.h with ace/iosfwd.h in order - to improve compile times - - * performance-tests/SCTP/Options_Manager.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_srv.cpp: - Added include of ace/streams.h, needed due to the above change. - -Tue Jul 16 11:43:12 UTC 2003 Johnny Willemsen - - * tests/tests.mpc: - Some tests where based on aceexe, changes this to acetest. This - fixes problems with vc71. - -Tue Jul 15 06:22:55 2003 Chad Elliott - - * bin/MakeProjectCreator/config/global.features: - * bin/MakeProjectCreator/config/zlib.mpb: - - Added the zlib feature (disabled by default). This will allow - users to enable the zlib feature and pull in include paths, lib - paths and library which will be dependent upon the ZLIB_ROOT - environment variable. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a bug where false warnings would be displayed if - MPC_VERBOSE_ORDERING was set. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added a rule to create the libout directory. - Fixed a bug in the gnu template that only affected TAO libraries - that had 'requires' or 'avoids'. - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - - Fixed a problem with cppflags and dependencies. - - * bin/depgen.pl: - - Ignore unknown options instead of causing an error. - - * bin/ChangeLogEditor/FileLocator.pm: - - Fixed a bug where the correct CVSROOT value wasn't being used. - -Mon Jul 14 18:33:12 UTC 2003 Johnny Willemsen - - * ace/os_include/os_errno.h: - When building for VxWorks also include errnoLib.h - - * ace/OS.cpp (inet_aton): - Fixed VxWorks specific implementation. Thanks to Eric Held - for reporting this, this fixes bugzilla - entry [1484] - - * THANKS: - Added Eric Held - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - Removed windows specific use of cmd. This is not needed and - causes problems when using MinGW with the MSYS shell on windows. - - * include/makeinclude/platform_cygwin32.GNU: - Threading compiles with cygwin again, so no need anymore to set - threads to 0 when not defined. - - * ChangeLog: - Fixed fuzz errors about backslashed in file path - - * tests/Logging_Strategy_Test.cpp: - Removed not needed newline. - - * tests/MEM_Stream_Test.cpp: - Fixed typo in comment - - * tests/run_test.lst: - The FIFO_Test doesn't run with Cygwin. - -Mon Jul 14 11:16:25 2003 Craig Rodrigues - - * ace/POSIX_Proactor.cpp: FreeBSD defines the sysconf value - for _SC_AIO_LISTIO_MAX to 16, and the sysconf value for - _SC_AIO_MAX to be 1024. The lower value must be assigned to - aiocb_list_max_size_ otherwise aio_suspend() will fail. There - was already already some logic in here to support HPUX that also - works for FreeBSD, so use that. - -Sat Jul 12 17:55:14 2003 Irfan Pyarali - - * tests/Conn_Test.cpp: - - Added explicit template instantiation for ACE_Connector_Base. - -Fri Jul 11 16:30:02 2003 Irfan Pyarali - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp (run_main): - - The string in ACE_START_TEST was incorrect. - -Fri Jul 11 01:08:41 2003 Irfan Pyarali - - * ACEXML/common/Mem_Map_Stream.cpp: - * apps/Gateway/Gateway/Connection_Handler_Connector.cpp: - * apps/Gateway/Peer/Peer.cpp: - * apps/JAWS/clients/Blobby/Blob.cpp: - * apps/JAWS/clients/Caching/http_handler.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/Connection/misc/test_upipe.cpp: - * examples/Connection/non_blocking/test_lsock_connector.cpp: - * examples/Connection/non_blocking/test_sock_connector.cpp: - * examples/Connection/non_blocking/test_spipe_connector.cpp: - * examples/Connection/non_blocking/test_tli_connector.cpp: - * examples/Web_Crawler/URL_Visitor.cpp: - * netsvcs/lib/TS_Clerk_Handler.cpp: - * tests/Cached_Accept_Conn_Test.cpp: - * tests/Cached_Conn_Test.cpp: - * tests/Dev_Poll_Reactor_Test.cpp: - * tests/NonBlocking_Conn_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Reactor_Performance_Test.cpp: - * tests/TP_Reactor_Test.cpp: - * tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp: - - Added explicit template instantiation for ACE_Connector_Base. - -Fri Jul 11 00:38:16 2003 Irfan Pyarali - - * ace/Dev_Poll_Reactor.h (ACE_Dev_Poll_Reactor): - - Added find_handler() method. - -Thu Jul 10 19:51:52 2003 Irfan Pyarali - - * tests/Conn_Test.cpp: - - Fixed incorrect template instantiation for - ACE_NonBlocking_Connect_Handler. - -Thu Jul 10 15:11:55 2003 Irfan Pyarali - - * tests/MT_Reference_Counted_Event_Handler_Test.dsp - * tests/MT_Reference_Counted_Notify_Test.dsp - * tests/NonBlocking_Conn_Test.dsp - * tests/Reactor_Registration_Test.dsp - * tests/Reference_Counted_Event_Handler_Test.dsp - * tests/Timer_Cancellation_Test.dsp - * tests/Timer_Queue_Reference_Counting_Test.dsp - * tests/WFMO_Reactor_Test.dsp - - Updated project files to add Main.cpp. - -Wed Jul 09 22:48:48 2003 Irfan Pyarali - - * tests/Thread_Pool_Reactor_Resume_Test: - - Removed the lame reference counting scheme in this test and - replaced it with the new and proper reference counting. - -Wed Jul 09 21:37:52 2003 Irfan Pyarali - - * tests/MT_Reactor_Timer_Test.cpp (handle_close): - - Removed unused arg warning. - -Wed Jul 09 21:22:24 2003 Irfan Pyarali - - * ace/Timer_Heap_T.cpp (insert): - - The decision to grow the heap was made on this formula: - - if (this->cur_size_ + 2 >= this->max_size_) - - though the correct decision should have been: - - if (this->cur_size_ + this->cur_limbo_ + 2 >= this->max_size_) - - Without this, tests/Timer_Queue_Test was failing with - cur_size_ = 15, cur_limbo_ = 20 and max_size_ = 35, but insert() - did not regrow the heap and eventually schedule() failed. - -Wed Jul 09 13:17:57 2003 Irfan Pyarali - - * ace/Select_Reactor_Base.cpp (purge_pending_notifications): - - Fixed build problem when ACE_HAS_REACTOR_NOTIFICATION_QUEUE, - there was a typo in the name of a local variable. Thanks to - Carlos for pointing this out. - -Tue Jul 08 17:28:58 2003 Irfan Pyarali - - * tests/MT_Reactor_Timer_Test.cpp (handle_close): - - Not sure why handle_close() was trying to remove the handler - from the Reactor. handle_close() is called as a result of being - removed from the Reactor. No need to remove again. - -Tue Jul 08 15:02:48 2003 Irfan Pyarali - - * examples/Reactor/Misc/pingpong.cpp: - - Included "ace/Test_and_Set.h" explicitly. - -Tue Jul 08 14:49:38 2003 Irfan Pyarali - - * ace/Timer_List_T: - * ace/Timer_Wheel_T: - - Fixed unused arg warning in cancel_i(). - -Mon Jul 7 23:17:21 2003 Nanbor Wang - - * ace/Thread_Manager.cpp (spawn_i): Change to always return the - thread "handle" if users ask for it. For some reason, we did - not return this value on some platforms, although it's always - been available. Thanks to Robin Farine - for reporting this. [Bug 1546] - -Mon Jul 07 18:00:38 2003 Irfan Pyarali - - * The following changes are related to improving memory management - of Event Handlers when they interact with Reactors (and Timer - Queues). When a handler is registered with the Reactor, the - Reactor increments the reference count on the handler. The - Reactor also increments this reference count when making upcalls - on the handler. The reference count is decremented when an - upcall completes or when the handler is removed from the - Reactor. - - This mechanism is similar to what happens between POAs and - Servants and it allows for the safe deletion of handlers. This - mechanism is particularly need for multi-threaded applications - that can have multiple threads executing upcalls on a handler - that needs to be shutdown in a safe manner. The following - illustrates an example of how this mechanism works: - - - When a handler is created, it reference count is one. - - - After the handler is registered with the Reactor, it reference - count becomes two. - - - At this point, the handler creator can let go of the handler - reference, bringing down the reference count to one. - - - For each thread executing upcalls on the handler, the Reactor - increments the reference count by one. So if three threads were - simultaneously making upcalls on a handler, the reference count - would be four. - - - Assuming an external event (and thread) decides to close the - handler. It simply removes the handler from the Reactor. This - decreases the reference count to three. - - - As each thread completes their upcall, the reference reduces. - - - Once the final thread exits the upcall, the reference reaches - zero, and the handler is finally deleted. - - This mechanism ensures that the handler is not deleted until the - final upcall thread exits the handler. - - Reference counting on handlers is optional and is disabled by - default. To enable reference counting on a handler, reset its - reference counting policy to "ENABLED". - - To facilitate reference counting of handlers, an - ACE_Event_Handler_var class was added. This class is akin to - the PortableServer::ServantBase_var class. - - Similar reference counting related changes were made to the - Timer Queues so that handlers can be used in a thread safe - manner with the queues. - - The Connector implementation was completely revised to utilize - the new memory management mechanisms and remove existing - concurrency bugs. - - Several new examples/tests were added: - - - tests/Reference_Counted_Event_Handler_Test - - tests/MT_Reference_Counted_Event_Handler_Test - - tests/MT_Reference_Counted_Notify_Test - - tests/Timer_Queue_Reference_Counting_Test - - tests/NonBlocking_Conn_Test - - tests/Reactor_Registration_Test - - tests/WFMO_Reactor_Test - - tests/Timer_Cancellation_Test - - Details follow below: - - Fri May 09 20:13:37 2003 Irfan Pyarali - - * ace/Event_Handler: - - Added reference counting capabilities to the event handler. The - reference counting will be used for event handler memory - management by Reactors that will call add_reference() and - remove_reference() during registrations, removals, and upcalls. - This mechanism is similar to the protocol between servants and - POAs. - - Reference counting is configurable and can be controlled by the - Reference_Counting_Policy which is disabled by default. - - Added a ACE_Event_Handler_var auto pointer like class for - Event Handlers. This class calls - ACE_Event_Handler::remove_reference() in its destructor. - - Added reactor_timer_interface() method that returns the - Reactor's timer related interface. - - * ace/Reactor_Timer_Interface.h: - - Added a new class ACE_Reactor_Timer_Interface that contains - timer related (pure virtual) methods of the Reactor. This - allows us to make timer related calls on the Reactor from the - Timer Queue without having to include Reactor.h. - - * ace/Reactor: - - Vastly improved documentation, specially with respect to how the - reference counting works. - - Made the Reactor class inherit from ACE_Reactor_Timer_Interface - so that timer related calls can be made on the Reactor from the - Timer Queue without having to include Reactor.h. - - * ace/Reactor: - * ace/Reactor_Impl: - * ace/Select_Reactor_T: - * ace/WFMO_Reactor: - - Added a new find_handler() method that returns the event handler - associated with a . - - * ace/Select_Reactor_Base.cpp: - - - bind(): Make sure that the user is not registering a different - handler for an existing handle in the - Reactor_Handler_Repository. Also, if it is a new entry, call - add_reference() if reference counting is needed. - - - unbind(): Call remove_reference() if the removal is complete - and reference counting is needed. Also, Bala's change: - - Mon Apr 7 16:58:55 2003 Balachandran Natarajan - - is no longer necessary since handle_close() is now only called - once the Reactor state has been completely updated. - - - mask_ops(): If the handle is not suspended, then set the ops - on the , otherwise set the . - - - handler_i(): Add to reference count of event handler before - returning to the user if reference counting is needed. - - - ACE_Select_Reactor_Notify::dispatch_notify(): - - ACE_Select_Reactor_Notify::purge_pending_notifications(): - - ACE_Select_Reactor_Notify::notify(): - - Added reference counting for notifies. - - * ace/Select_Reactor_T: - - notify_handle(): Added reference counting to upcalls. - - * ace/TP_Reactor: - - - remove_handler(): All remove_handler() specializations can be - removed since there no longer is the requirement of calling - handle_close() from outside the Reactor lock. - - - handle_timer_events(): Call preinvoke() and postinvoke() on - the timer queue so that timer upcalls can be reference counted. - - - handle_socket_events(): Added reference counting to upcalls. - - - mask_ops(): Specialization no longer necessary since the base - class now does the right thing. - - * ace/WFMO_Reactor: - - - handler(): Original handler() method was not locked. - - - bind_i(): Call add_reference() if reference counting is - needed. - - - make_changes_in_current_infos(): - - make_changes_in_suspension_infos(): - - make_changes_in_to_be_added_infos(): - - The iteration loop was incorrect. When an entry was replaced - from the one at the end, the newly shifted entry was skipped and - not evaluated. make_changes_in_to_be_added_infos() did not need - this change since entries are not moved around in the - set. - - Also, call remove_reference() if reference counting if needed. - - - complex_dispatch_handler(): Added reference counting to - upcalls. - - - ACE_WFMO_Reactor_Notify::purge_pending_notifications(): - - ACE_WFMO_Reactor_Notify::notify(): - - ACE_WFMO_Reactor_Notify::handle_signal(): - - Added reference counting for notifies. - - * ace/Timer_Queue_T: - - - Not sure why we were including Test_and_Set.h when we only - needed to include Event_Handler.h. - - - dispatch_info() and dispatch_info_i(): Made these virtual so - that they can be specialized. - - - ACE_Timer_Node_Dispatch_Info_T: Added so - that we can determine if we need to call remove_reference() if - it is not a recurring timer and if reference counting is - required. This value is passed to the timeout() method of the - upcall functor. - - - timeout(): When handle_timeout() returns -1, invoke - cancel_timer() on the reactor if the event handler has a valid - reactor, otherwise invoke cancel() on the timer queue. It is - necessary to get the same locking as was used when registering - the timer, which was potentially done holding the reactor lock - while the timer queue could have been configured with a null - lock. - - - schedule(): No longer a pure virtual method. It now grabs - the lock, call schedule_i(), and finally calls registration() on - the upcall functor. - - - registration(): This method is called when a timer is - registered. - - - preinvoke(): Invokes add_reference() on the event handler if - reference counting is required before making the upcall. - - - upcall(): Changed the signature to pass - ACE_Timer_Node_Dispatch_Info_T instead of the individual - parameters. - - - postinvoke(): Invokes remove_reference() on the event handler - if reference counting is required after making the upcall. - - - cancel_type() and cancel_timer(): Split cancellation() into - two methods. cancel_timer() is called when a timer is - canceled. cancel_type() is called when a handler is - canceled. Also added parameter to these method. - cancel_timer() will be used for reference counting and - cancel_type() will be used for calling handle_close(). - - - expire(): Call preinvoke() before calling upcall() and - postinvoke() after calling upcall(). - - - deletion(): Now calls cancel_type() and cancel_timer() for - each timer remaining in the queue. - - * ace/Timer_List_T: - * ace/Timer_Wheel_T: - * ace/Timer_Heap_T: - * ace/Timer_Hash_T: - - - schedule_i(): This method replaces the old schedule() method. - Locking is not necessary anymore. - - - cancel(): This method will call cancel_timer() once for each - timer canceled and cancel_type() once for each handler - canceled. - - - cancel_i(): The check will be performed in the - upcall functor. - - * ace/Timer_Heap_T: - - - ~ACE_Timer_Heap_T(): Don't use for the for loop - since it reduces after free_node() is called. - - - cancel(): Not sure why this is the only cancel() where the - upcall is made outside the lock. - - * ace/Timer_Wheel_T: - - - expire(): Made this method similar to Timer_Queue_T::expire() - by (a) invoking preinvoke() before calling upcall() and invoking - postinvoke() after calling upcall() and (b) making sure that we - skip past time values that have already "expired" when - rescheduling. - - * ace/Timer_Hash_T: - - - ACE_Timer_Hash_Upcall: Updated this upcall functor to match - the new APIs. - - - ACE_Timer_Hash_Upcall::registration(): - - ACE_Timer_Hash_Upcall::cancel_type(): - - ACE_Timer_Hash_Upcall::cancel_timer(): - - Nothing to be done in these methods since - registration/cancellation will be handled by the upcall functor - of the timer hash. - - - ACE_Timer_Hash_Upcall::preinvoke(): - - ACE_Timer_Hash_Upcall::postinvoke(): - - ACE_Timer_Hash_Upcall::preinvoke(): - - Assert that these methods never get invoked since we don't - invoke expire() on the buckets. - - - ACE_Timer_Hash_Upcall::deletion(): Call up to the upcall - functor of the timer hash since the timer hash does not invoke - deletion() on its upcall functor directly. This is because - entries are actually registered with the buckets, and this - method will be invoked when the buckets are cleaned up. - - - Hash_Token: Added TYPE information to the token. This - required templatizing Hash_Token since TYPE is a template - parameter. - - - reschedule(): Cancel the old timer before registering the new - one. Otherwise, the old timer will always remain in the - buckets. Also, make sure that the new bucket position is noted. - - - dispatch_info_i(): This method needs to be specialized to give - the original act and not the modified act. - - - free_node(): Needs to cancel the timer in addition to freeing - the node. - - - expire(): Only call cancel() for timers that don't need to be - rescheduled. reschedule() takes care of removing the old timer - for timers that need to be rescheduled. Also, made this method - similar to Timer_Queue_T::expire() by invoking preinvoke() - before calling upcall() and invoking postinvoke() after calling - upcall(). - - * ace/Proactor: - - Updated ACE_Proactor_Handle_Timeout_Upcall upcall functor to - match the new APIs. - - * ace/Connector: - - Completely reworked the Connector to utilize the reference - counting provided by the Reactor. This new design fixes bugs - 1405 and 1408. - - - There used to be a hash map that mapped handles to service - handlers. There is no need for this map since the Reactor - already keeps this mapping. We now keep a simple handle set to - remember the non-blocking connects in progress. This will help - when the Connector is closing down and we need to cancel the - non-blocking connections in progress. - - - The Connector no longer needs to inherit from - ACE_Service_Object since it does not register with the Reactor. - We now use ACE_NonBlocking_Connect_Handler for handling - non-blocking connects. The resume(), suspend(), and init() - no-ops, and fini() and info() were removed. - - - The is no longer needed since we use the Reactor lock - to do all our synchronization. This will solve bug 1408. - - - We no longer need the flag. - - - Need to add a field since the Connector is no - longer an event handler. - - - Reference counting of ASTs is no longer needed since event - handlers are reference counted. - - Thanks to Andrew Voumard for helping - with this. - - * tests/Reference_Counted_Event_Handler_Test: - - This test is used to check reference counting of the Event - Handler when it interacts with the Reactor. - - * tests/MT_Reference_Counted_Event_Handler_Test: - - This test tries to represents what happens in the TAO ORB wrt to - event handlers, reactors, timer queues, threads, and connection - caches, minus the other complexities. The following three - Reactors are tested: Select, TP, and WFMO. - - 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. - - * tests/MT_Reference_Counted_Notify_Test: - - This test is used to check reference counting of the event - handlers when it interacts with the reactor notification - mechanism. - - * tests/Timer_Queue_Reference_Counting_Test: - - New test is used to check reference counting of the Event - Handler when it interacts with Timer Queues. - - * tests/NonBlocking_Conn_Test: - - 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 - - * tests/Reactor_Registration_Test: - - This is a test of registering handlers with the Reactor. - - * tests/WFMO_Reactor_Test: - - New test of the WFMO_Reactor. It makes sure that removals and - suspensions work correctly. - - * tests/Timer_Cancellation_Test: - - A test to ensure the timer cancellation works correctly. - - * tests/Makefile: - * tests/Makefile.am: - * tests/Makefile.bor: - * tests/run_test.lst: - * tests/tests.icp: - * tests/tests.mpc: - * tests/tests.dsw: - - Added new tests: - - - MT_Reference_Counted_Event_Handler_Test - - MT_Reference_Counted_Notify_Test - - NonBlocking_Conn_Test - - Reactor_Registration_Test - - Reference_Counted_Event_Handler_Test - - Timer_Cancellation_Test - - Timer_Queue_Reference_Counting_Test - - WFMO_Reactor_Test - - * tests/Conn_Test.cpp: - - Updated template instantiations. - - * tests/icc.bat: - * tests/run_tests.bat: - * tests/run_tests.psosim: - - Removed this file since it has become obsolete. - - Wed May 14 17:56:13 2003 Irfan Pyarali - - * ace/OS.i: - - - event_timedwait(): For relative times, the parameter - was being modified. Instead use a stack variable such that the - parameter is not modified. - - * ace/Timer_Hash_T: - - - expire(): Remove nodes from the buckets instead of simply - getting them and canceling them later. Also, if timers were - expired, find the new earliest time. - - - reschedule(): No need to cancel the timer node since it is now - removed from the bucket in expire(). - - - free_node(): No need for this function since nodes are removed - from the bucket in expire(). - - - cancel(): No need to pass to bucket's cancel() since the - act comes from the Hash Token. Also, only perform upcall and - related cleanup on successful bucket cancel. - - - Added asserts in the code since there is not enough error - checking (and recovery) going on. - - * ace/Reactor: - * ace/Reactor_Impl: - * ace/Select_Reactor_T: - * ace/WFMO_Reactor: - - Renamed handler() to find_handler() since ACE_HANDLE is an "int" - on UNIX platforms and that causes ambiguity between - handler(ACE_HANDLE) and handler(int). - - * ace/Select_Reactor_Base.cpp (unbind): - - unbind() and bind(): Minor fixes for UNIX specific code. - - * ace/SOCK_SEQPACK_Association.cpp: - - Added template instantiation for ACE_Auto_Array_Ptr. - - * ace/Connector.cpp: - - cancel() and close(): Changed calls from Reactor::handler() to - Reactor::find_handler(). - - * tests/MT_Reference_Counted_Notify_Test.cpp: - * tests/NonBlocking_Conn_Test.cpp: - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/Reference_Counted_Event_Handler_Test.cpp: - * tests/Timer_Queue_Reference_Counting_Test.cpp: - - Added template instantiations. - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - - - main(): Added code to ignore SIGPIPE. - - - test(): Converted this into template class so that multiple - instances of reactor implementation can be created. - - - Added additional asserts. - - Thu May 15 18:12:10 2003 Irfan Pyarali - - * ace/WFMO_Reactor (find_handler): - - Fixed minor oversights. - - * ace/Timer_Hash_T.cpp: - * ace/Connector.cpp: - - Fixed unused arg warnings. - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - - - Added a Pipe class. It is a replica 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. - - - Removed some test cases that don't work on Linux. - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/MT_Reference_Counted_Notify_Test.cpp: - * tests/Reference_Counted_Event_Handler_Test.cpp: - * tests/Reactor_Registration_Test.cpp: - * tests/Timer_Cancellation_Test.cpp: - * tests/Timer_Queue_Reference_Counting_Test.cpp: - - - Fixed member ordering in constructors. - - Fixed unused arg warnings. - - Thu May 15 19:46:49 2003 Irfan Pyarali - - * ACEXML/common/Mem_Map_Stream.cpp: - * apps/Gateway/Gateway/Connection_Handler_Connector.cpp: - * apps/Gateway/Peer/Peer.cpp: - * apps/JAWS/clients/Blobby/Blob.cpp: - * apps/JAWS/clients/Caching/http_handler.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/Connection/misc/test_upipe.cpp: - * examples/Connection/non_blocking/test_lsock_connector.cpp: - * examples/Connection/non_blocking/test_sock_connector.cpp: - * examples/Connection/non_blocking/test_spipe_connector.cpp: - * examples/Connection/non_blocking/test_tli_connector.cpp: - * examples/Web_Crawler/URL_Visitor.cpp: - * netsvcs/lib/TS_Clerk_Handler.cpp: - * tests/Cached_Accept_Conn_Test.cpp: - * tests/Cached_Conn_Test.cpp: - * tests/Dev_Poll_Reactor_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Reactor_Performance_Test.cpp: - * tests/TP_Reactor_Test.cpp: - * tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp: - - Fixed Connector related template instantiations. - - Fri May 16 16:34:35 2003 Irfan Pyarali - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/Timer_Queue_Reference_Counting_Test.cpp (cancellation_test): - - Fixed static array initialization warnings. - - Tue May 20 18:33:07 2003 Irfan Pyarali - - * ace/Connector: - - Reverted the Connector to inherit from ACE_Service_Object again. - Even though the Connector no longer registers with the Reactor, - it still needs to inherit from ACE_Service_Object so that it can - be used through the Service Configurator primarily for dynamic - linking. The resume(), suspend(), and init() no-ops, and fini() - and info() were restated. - - Mon Jun 30 16:31:33 2003 Irfan Pyarali - - * ace/SSL/ACE_SSL_LIB.dsp: - - Fixed the project names - they should be: - - # Name "ACE_SSL_LIB - Win32 Static Release" - # Name "ACE_SSL_LIB - Win32 Static Debug" - - instead of: - - # Name "ACE_SSL_LIB - Win32 Release" - # Name "ACE_SSL_LIB - Win32 Debug" - - Wed Jul 02 15:31:33 2003 Irfan Pyarali - - * examples/Connection/non_blocking/CPP-connector.cpp: - - handle_close() on the Connector was being specialized to know - when the connection was not successful. This is not the correct - approach in the first place since one should look for close() on - the service handler. In addition, handle_close() is no longer - used by ACE_Connector. Therefore, I changed this to use close() - on the service handler. - - * apps/JAWS/clients/Caching/http_handler.h: - - Included "ace/Svc_Handler.h" explicitly. - - * examples/Logger/Acceptor-server/server_loggerd.cpp: - - Included "ace/Test_and_Set.h" explicitly since - ace/Timer_Queue_T.h is no longer including it. - - Thu Jun 26 17:36:13 2003 Irfan Pyarali - - * bin/msvc_auto_compile.pl: - - Added -tests_TAO and -examples_TAO options to make all projects - in TAO tests and TAO examples. - - Thu May 22 14:13:37 2003 Irfan Pyarali - - * Merged Reactor_RefCount branch with the main truck since all ACE - level changes are now complete. New branch is - Reactor_RefCount_1. - - Tue May 27 19:59:25 2003 Irfan Pyarali - - * Merged Reactor_RefCount_1 branch with the main truck to avail - new changes by Bala to the TAO connection handlers. New branch - is Reactor_RefCount_2. - -Mon Jul 7 12:38:01 2003 Douglas C. Schmidt - - * ace/Message_Queue_T.cpp: Updated the implementation of all the - dequeue_*() methods so that the "next_" and "prev_" pointer of - the dequeue'd message block are set to 0. Failure to do this - can cause weird behavior when a dequeue'd message block is - passed to ACE::write_n().... Thanks to Wenlong Tang - for reporting this. - -Mon Jul 7 11:14:02 2003 Jeff Parsons - - * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp (visit_enum): - - Fixed a cut and paste error that was causing the code generation - for the any operators in the stub source file to be skipped. Thanks - to for reporting the bug. - - * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: - - Fixed cut and paste error in the explicit template instantiation. - -Mon Jul 7 12:31:40 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/make.mpd: - - Added a 'depend' target and fixed the default library installation - target. - -Sun Jul 6 09:55:16 2003 Balachandran Natarajan - - * ace/Task.cpp: Fixed compile errors with MSVC 7.1 when - ACE_HAS_ANSI_CAST and RTTI is turned on. Thanks to Marek Brudka - for providing the patch. - - * THANKS: Added Marek to the hall of fame. - -Sat Jul 5 06:57:33 UTC 2003 Johnny Willemsen - - * THANKS: Updated e-mail address of Serge Kolgan - -Fri Jul 4 17:05:39 2003 Yamuna Krishnamurthy - - * include/makeinclude/ace_flags.bor: - - Added the TAO_RTSCHEDULER_CFLAGS flag to build RTSCheduler - library using Borland compiler. - -Fri Jul 4 07:29:12 UTC 2003 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Added support for the -pipe command line option of the g++ compiler - on Win32. This uses pipes instead of intermediate files and speeds up - the compilation. This is enabled by default but can be disabled by - adding pipes=0 to your platform_macros.GNU file. Thanks to - Serge Kolgan for this suggestion. - -Thu Jul 3 22:05:58 UTC 2003 Don Hinton - - * ace/config-linux-common.h: - * ace/os_include/os_pthread.h: - Moved the ACE_HAS_PTHREAD_SETSTACK definition to os_pthread.h - along with all the other pthread related definitions. This - should help eliminate warnings about using a the deprecated - function pthread_attr_setstackaddr. - -Thu Jul 03 17:00:47 2003 Nanbor Wang - - * bin/MakeProjectCreator/config/ciao_client.mpb: Added "security" - as one of the depending library for all CIAO clients. - -Thu Jul 3 13:15:17 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added 'libpath' to the custom define keywords to allow a user to - specify an additional library search path for the custom command. - -Thu Jul 3 11:49:23 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Removed tao_idl specific defaults from these template files. - -Wed Jul 2 23:58:11 UTC 2003 Craig Rodrigues - - * ace/config-freebsd.h: - FreeBSD 5.1 implements (ACE_LACKS_STDINT_H) and - reentrant password functions (ACE_LACKS_PWD_REENTRANT_FUNCTIONS). - rand_r has been implemented for quite some time now - (ACE_LACKS_RAND_REENTRANT_FUNCTIONS). - -Wed Jul 2 23:34:18 UTC 2003 Don Hinton - - * tests/RMCast/RMCast_Fragment_Test.dsp: - * tests/RMCast/RMCast_Membership_Test.dsp: - * tests/RMCast/RMCast_Reassembly_Test.dsp: - * tests/RMCast/RMCast_Reordering_Test.dsp: - * tests/RMCast/RMCast_Retransmission_Test.dsp: - * tests/RMCast/RMCast_UDP_Best_Effort_Test.dsp: - Added Main.cpp to the projects. - -Wed Jul 2 23:10:25 UTC 2003 Don Hinton - - * tests/RMCast/Makefile: - * tests/RMCast/Makefile.bor: - * tests/RMCast/Main.cpp: - * tests/SSL/Makefile: - * tests/SSL/Makefile.bor: - * tests/SSL/Main.cpp: - Added Main.cpp and wired it up in the Makefiles. This is - needed to work with Justin's changes below in preparation to - using MPC for all builds. - -Wed Jul 2 22:48:18 UTC 2003 Don Hinton - - * ace/config-all.h/ - Rolled back Wed Jul 2 22:17:15 UTC 2003 Don Hinton - temporarily, since it is defined - inconsistently and compilation will fail if ACE_HAS_ANSI_CASTS is - just defined and not defined as a number. - -Wed Jul 2 22:17:15 UTC 2003 Don Hinton - - * ace/config-all.h/ - Added test for ACE_HAS_ANSI_CASTS != 0, not just its existence - since this is the way it is used. - -Wed Jul 02 14:57:00 2003 Justin Michel - - * examples/Registry/Registry.mpc - * tests/RMCast/acetest.mpb - * tests/SSL/acetest.mpb - * bin/create_ace_build.pl - * bin/MakeProjectCreator/config/rtnotify.mpb - * bin/MakeProjectCreator/config/valuetype.mpb - * examples/IPC_SAP/SOCK_SAP/sock_sap.mpc - * examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.mpc - * examples/Mem_Map/IO-tests/IO_Test.cpp - * examples/Mem_Map/IO-tests/test_io.cpp - * examples/OS/Process/OS_Process.mpc - * examples/QOS/Change_Receiver_FlowSpec/QOS_Change_Receiver_FlowSpec.mpc - * examples/QOS/Change_Sender_TSpec/QOS_Change_Sender_FlowSpec.mpc - * examples/QOS/Diffserv/QOS_Diffserv.mpc - * examples/QOS/Simple/QOS_Simple.mpc - * examples/RMCast/Send_File/RMCast_Send_File.mpc - * examples/Reactor/Misc/Reactor_Misc.mpc - * examples/Reactor/Multicast/Reactor_Multicast.mpc - * examples/Service_Configurator/IPC-tests/client/Service_Configurator_IPC_Client.mpc - * examples/Service_Configurator/IPC-tests/server/Service_Configurator_IPC_Server.mpc - * examples/Service_Configurator/Misc/Service_Configurator_Misc.mpc - * examples/Shared_Malloc/Shared_Malloc.mpc - * examples/Shared_Memory/Shared_Memory.mpc - * examples/Smart_Pointers/Smart_Pointers.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/Timer_Queue/Timer_Queue.mpc - * tests/acetest.mpb - * tests/tests.mpc - * tests/RMCast/RMCast_Fragment_Test.cpp - * tests/RMCast/RMCast_Membership_Test.cpp - * tests/RMCast/RMCast_Reassembly_Test.cpp - * tests/RMCast/RMCast_Reordering_Test.cpp - * tests/RMCast/RMCast_Retransmission_Test.cpp - * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp - * tests/RMCast/tests.mpc - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp - * tests/SSL/tests.mpc - - Added some missing project files. - Updated all ACE tests to use the common test library. - Updated ACE test mpc files to use a common base project. - Fixed mpc files for broken examples. - Added base projects rtnotify and valuetype. - -Wed Jul 2 13:16:14 UTC 2003 Don Hinton - - * ace/config-doxygen.h: - Added define of __ACE_INLINE__ so that inlining will be turned - on in order to help identify unwanted inter-header dependencies. - -Tue Jul 1 20:47:35 UTC 2003 Don Hinton - - * ace/os_include/os_limits.h: - Added include of os_stdio.h. This picks up FILENAME_MAX on - Windows and fixes an alignment problem with ACE_PI_Control_Block - due to differing definitions for MAXNAMELEN. Thanks to - Serge Kolgan for help figuring this out. - - -Tue Jul 1 19:39:16 UTC 2003 Don Hinton - - * ace/config-vxworks5.x.h: - Added ACE_LACKS_SYS_UN_H and ACE_LACKS_PTHREAD_H. - - * ace/os_include/sys/os_mman.h: - Added !defined (ACE_WIN32) to the initial #if for the PROT_* - define section so Windows can make it to the #ifelse section. - -Sun Jun 29 01:31:52 UTC 2003 Don Hinton - - * ace/UNIX_Addr.h: - Added include of ace/os_include/sys/os_un.h to fix compile - problems on VxWorks. - -Sat Jun 28 15:26:11 2003 Douglas C. Schmidt - - * ace/OS_Dirent.inl (readdir_r): Added defined (__FreeBSD__) - here. Thanks to Karim Fodil-Lemelin for - submitting a patch. - -Fri Jun 27 12:52:12 UTC 2003 Johnny Willemsen - - * ace/Process.h: - Added forward declaration of ACE_Time_Value to fix compile - erros in Jaws server app. - -Thu Jun 26 21:34:43 2003 Chris Cleeland - - * ace/QtReactor.cpp: Removed precompiled header include residue - from OCI version. - -Thu Jun 26 17:35:00 2003 Justin Michel - - * Kokyu/Kokyu.mpc: - * bin/create_ace_build.pl: - * bin/MakeProjectCreator/config/kokyu.mpb: - * bin/MakeProjectCreator/config/rtkokyuevent.mpb: - - Fixes for mpc generated builds. - create_ace_build won't link .opt files. - -Thu Jun 26 16:31:51 2003 Chris Cleeland - - * ace/QtReactor.h: - * ace/QtReactor.cpp: - - The QtReactor works by semi-unifying the Qt Event loop with the - Reactor event loop. Most of the time, the Qt Event loop is the - dominant loop, but occasionally, when wait_for_multiple_events - gets called, the reactor loop becomes the dominant loop. - - Previous QtReactor implementations only overloaded - register_handler, caused them to never notice when an - application changed the mask on a previously-registered handler, - e.g., via ACE_Reactor::schedule_wakeup. Thus, the Qt event loop - never knew about the new interest or lack thereof, and didn't - call it back. - - This newer version overloads ACE_Reactor::bit_ops, and tweaks - the registrations with the Qt event loop according to bit_ops' - arguments' mask operations. This *should* allow us to catch - every twiddling of masks, although there is no comprehensive - regression test for this for any kind of reactor. - - From inspection, it appears as if the XtReactor might need - similar changes. - -Thu Jun 26 02:22:42 UTC 2003 Don Hinton - - * etc/ace.doxygen: - Added ace/pre.h and ace/post.h to the exclude list. This will - clean up the file dependency graphs a bit and make the more - complex ones a bit easier to read. - -Thu Jun 26 01:47:03 UTC 2003 Don Hinton - - * ace/config-freebsd.h: - Added #define ACE_LACKS_STDINT_H. - -Wed Jun 25 17:00:00 2003 Justin Michel - - * Kokyu/Kokyu.mpc: - * bin/MakeProjectCreator/config/ciao_client.mpb: - * bin/MakeProjectCreator/config/ciao_component.mpb: - * bin/MakeProjectCreator/config/idl_compiler.mpt: - * bin/MakeProjectCreator/config/idl_compiler_win32.mpt: - * bin/MakeProjectCreator/config/iorinterceptor.mpb: - * bin/MakeProjectCreator/config/messaging_only.mpb: - * bin/MakeProjectCreator/config/objreftemplate.mpb: - * bin/MakeProjectCreator/config/portableserver.mpb: - * bin/MakeProjectCreator/config/tao_output.mpb: - * bin/MakeProjectCreator/config/valuetype.mpb: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Fixes for various mpc generation problems. - -Wed Jun 25 13:14:00 2003 Justin Michel - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Forgot to rename the dllflag keyword. - -Wed Jun 25 12:45:44 2003 Balachandran Natarajan - - * bin/topinfo_iorsize_stats.sh (s_id): - * bin/topinfo_simple_stats.sh: We used 'top' to determine the - runtime memory used by the process. A better way to get this - done is to use /proc/processid/status. The scripts have been - changed to use the proc info instead of 'top'. - -Wed Jun 25 11:00:00 2003 Justin Michel - - * nightly.mwc: - * ACEXML/ACEXML.mwc: - * ACEXML/common/common.mpc: - * ACEXML/parser/parser/parser.mpc: - * ASNMP/asnmp.mwc: - * Kokyu/Kokyu.mpc: - * ace/ace.mpc: - * ace/ace.mwc: - * ace/QoS/qos.mpc: - * ace/RMCast/rmcast.mpc: - * ace/SSL/ssl.mpc: - * apps/apps.mwc: - * apps/gperf/src/gperf.mpc: - * apps/mkcsregdb/mkcsregdb.mpc: - * bin/create_ace_build.pl: - * bin/MakeProjectCreator/README - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/aceexe.mpb: - * bin/MakeProjectCreator/config/acelib.mpb: - * bin/MakeProjectCreator/config/acexml.mpb: - * bin/MakeProjectCreator/config/avstreams.mpb: - * bin/MakeProjectCreator/config/avstreamsexe.mpb: - * bin/MakeProjectCreator/config/bidir_giop.mpb: - * bin/MakeProjectCreator/config/ciao_client.mpb: - * bin/MakeProjectCreator/config/ciao_component.mpb: - * bin/MakeProjectCreator/config/ciao_servant.mpb: - * bin/MakeProjectCreator/config/ciao_server.mpb: - * bin/MakeProjectCreator/config/client.mpb: - * bin/MakeProjectCreator/config/concurrency.mpb: - * bin/MakeProjectCreator/config/dslogadmin.mpb: - * bin/MakeProjectCreator/config/dynamicany.mpb: - * bin/MakeProjectCreator/config/dynamicinterface.mpb: - * bin/MakeProjectCreator/config/etcl.mpb: - * bin/MakeProjectCreator/config/event.mpb: - * bin/MakeProjectCreator/config/ftorb.mpb: - * bin/MakeProjectCreator/config/global.features - * bin/MakeProjectCreator/config/global.mpb: - * bin/MakeProjectCreator/config/ifr_client.mpb: - * bin/MakeProjectCreator/config/ifrservice.mpb: - * bin/MakeProjectCreator/config/iorinterceptor.mpb: - * bin/MakeProjectCreator/config/iormanip.mpb: - * bin/MakeProjectCreator/config/iortable.mpb: - * bin/MakeProjectCreator/config/lifecycle.mpb: - * bin/MakeProjectCreator/config/loadbalancing.mpb: - * bin/MakeProjectCreator/config/messaging.mpb: - * bin/MakeProjectCreator/config/messaging_only.mpb: - * bin/MakeProjectCreator/config/naming.mpb: - * bin/MakeProjectCreator/config/namingexe.mpb: - * bin/MakeProjectCreator/config/notification.mpb: - * bin/MakeProjectCreator/config/notify.mpb: - * bin/MakeProjectCreator/config/notifytest.mpb: - * bin/MakeProjectCreator/config/objreftemplate.mpb: - * bin/MakeProjectCreator/config/orbsvcs_output.mpb: - * bin/MakeProjectCreator/config/orbsvcsexe.mpb: - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - * bin/MakeProjectCreator/config/portablegroup.mpb: - * bin/MakeProjectCreator/config/portableserver.mpb: - * bin/MakeProjectCreator/config/property.mpb: - * bin/MakeProjectCreator/config/qos.mpb: - * bin/MakeProjectCreator/config/qt_moc.mpb: - * bin/MakeProjectCreator/config/rmcast.mpb: - * bin/MakeProjectCreator/config/rt_client.mpb: - * bin/MakeProjectCreator/config/rt_server.mpb: - * bin/MakeProjectCreator/config/rtcorba.mpb: - * bin/MakeProjectCreator/config/rtcorbacommon.mpb: - * bin/MakeProjectCreator/config/rtcorbaevent.mpb: - * bin/MakeProjectCreator/config/rtevent.mpb: - * bin/MakeProjectCreator/config/rteventexe.mpb: - * bin/MakeProjectCreator/config/rtoldevent.mpb: - * bin/MakeProjectCreator/config/rtportableserver.mpb: - * bin/MakeProjectCreator/config/rtsched.mpb: - * bin/MakeProjectCreator/config/rtschedevent.mpb: - * bin/MakeProjectCreator/config/security.mpb: - * bin/MakeProjectCreator/config/server.mpb: - * bin/MakeProjectCreator/config/smart_proxies.mpb: - * bin/MakeProjectCreator/config/ssl.mpb: - * bin/MakeProjectCreator/config/strategies.mpb: - * bin/MakeProjectCreator/config/svc_utils.mpb: - * bin/MakeProjectCreator/config/tao_output.mpb: - * bin/MakeProjectCreator/config/taoclient.mpb: - * bin/MakeProjectCreator/config/taoexe.mpb: - * bin/MakeProjectCreator/config/taolib.mpb: - * bin/MakeProjectCreator/config/taolib_with_idl.mpb: - * bin/MakeProjectCreator/config/taoserver.mpb: - * bin/MakeProjectCreator/config/taoversion.mpb: - * bin/MakeProjectCreator/config/time.mpb: - * bin/MakeProjectCreator/config/trading.mpb: - * bin/MakeProjectCreator/config/typecodefactory.mpb: - * bin/MakeProjectCreator/config/valuetype.mpb: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/VA4ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/bordll.mpt: - * bin/MakeProjectCreator/templates/borexe.mpt: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/gnudll.mpt: - * bin/MakeProjectCreator/templates/gnuexe.mpt: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - * bin/MakeProjectCreator/templates/makeexe.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/va4iccdll.mpt: - * bin/MakeProjectCreator/templates/va4iccdllexe.mpt: - * bin/MakeProjectCreator/templates/va4icclib.mpt: - * bin/MakeProjectCreator/templates/va4icclibexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - * examples/example_base.mpb: - * examples/examples.mwc: - * examples/ASX/CCM_App/ASX_CCM_App.mpc: - * examples/ASX/Message_Queue/ASX_Message_Queue.mpc: - * examples/C++NPv1/C++NPv1.mpc: - * examples/C++NPv2/C++NPv2.mpc: - * examples/ConfigViewer/ConfigViewer.mpc: - * examples/Connection/blocking/Connection_Blocking.mpc: - * examples/Connection/misc/Connection_Misc.mpc: - * examples/Connection/non_blocking/Connection_Non_Blocking.mpc: - * examples/DLL/DLL.mpc: - * examples/Export/Export.mpc: - * examples/IOStream/client/IOStream_Client.mpc: - * examples/IOStream/server/IOStream_Server.mpc: - * examples/IPC_SAP/ATM_SAP/atm_sap.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/SPIPE_SAP/SPIPE_SAP.mpc: - * examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc: - * examples/IPC_SAP/TLI_SAP/TLI_SAP.mpc: - * examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc: - * examples/Log_Msg/Log_Msg.mpc: - * examples/Logger/Acceptor-server/Logger_Acceptor_Server.mpc: - * examples/Logger/client/Logger_client.mpc: - * examples/Logger/simple-server/Logger_Simple_Server.mpc: - * examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc: - * examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc: - * examples/Misc/Misc.mpc: - * examples/Naming/Naming.mpc: - * examples/OS/Process/OS_Process.mpc: - * examples/QOS/Change_Receiver_FlowSpec/QOS_Change_Receiver_FlowSpec.mpc: - * examples/QOS/Change_Sender_TSpec/QOS_Change_Sender_FlowSpec.mpc: - * examples/QOS/Diffserv/QOS_Diffserv.mpc: - * examples/QOS/Simple/QOS_Simple.mpc: - * examples/RMCast/Send_File/RMCast_Send_File.mpc: - * examples/Reactor/Dgram/Reactor_Dgram.mpc: - * examples/Reactor/FIFO/Reactor_FIFO.mpc: - * examples/Reactor/Misc/Reactor_Misc.mpc: - * examples/Reactor/Multicast/Reactor_Multicast.mpc: - * examples/Reactor/Ntalker/Reactor_Ntalker.mpc: - * examples/Reactor/Proactor/Proactor.mpc: - * examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc: - * examples/Service_Configurator/IPC-tests/client/Service_Configurator_IPC_Client.mpc: - * examples/Service_Configurator/IPC-tests/server/Service_Configurator_IPC_Server.mpc: - * examples/Service_Configurator/Misc/Service_Configurator_Misc.mpc: - * examples/Shared_Malloc/Shared_Malloc.mpc: - * examples/Shared_Memory/Shared_Memory.mpc: - * examples/Smart_Pointers/Smart_Pointers.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/Timer_Queue/Timer_Queue.mpc: - * examples/Web_Crawler/Web_Crawler.mpc: - * performance-tests/perf.mwc: - * tests/acetest.mpb: - * tests/tests.mpc: - * tests/tests.mwc: - * tests/RMCast/tests.mpc: - * tests/SSL/tests.mpc: - - Updated MPC with the latest features and changes from OCI's repo. Created - new mpb base projects to make mpc files as simple as possible, and updated - existing mpb base projects. Added and updated mpc files to use the latest - features and make use of base projects. - Added the create_ace_build.pl script that is more MPC friendly and works - on Windows. - Removed unused nightly.mwc. - Note : The new MPC base projects will now output all library files to - consistent locations across platforms. This is controlled by the three - files acelib.mpb, tao_output.mpb, and orbsvcs_output.mpb using the - libout keyword. Currently all of these are set to output to $ACE_ROOT/lib. - All libraries will be placed in this directory, including .dll files on - Windows. This means that Windows users will have to add %ACE_ROOT%\lib to - their %PATH%. This is analogous to %LD_LIBRARY_PATH% on Unix. - -Wed Jun 25 10:20:15 2003 Balachandran Natarajan - - * THANKS: Added missing doc_group folks at Vanderbilt. - -Wed Jun 25 13:36:51 UTC 2003 Don Hinton - - * ace/Service_Object.h: - Rolled back change from Sun Jun 22 03:27:10 UTC 2003 Don Hinton - which made ACE_DLL member variable a - reference as part of subsetting, which caused - Service_Config_Test to fail. - -Wed Jun 25 03:47:36 UTC 2003 Don Hinton - - * ace/config-linux.h: - * ace/os_include/os_pthread.h: - Removed include of pthread.h from config-linux.h and moved the - pthread_mutex_timedlock() declaration to os_pthread.h. - - * tests/Makefile.tests: - Added special build rule when on hpux that changes the link - order, i.e., main.o comes before x_Test.o. Hopefully this - will clear up linker errors on Hp with the gcc compiler that - started appearing after the tests directory was reorganized. - -Tue Jun 24 18:38:33 2003 Pradeep Gore - - * bin/tao_other_tests.lst: - Added Notify Basic test for RT_Notification. - Moved the Notify Lanes and Threadpool test with the other - Notify tests. - -Tue Jun 24 15:47:16 2003 Nanbor Wang - - * bin/MakeProjectCreator/config/ciao_client.mpb: Added - $(CIAO_ROOT)/ciao to idlflags. - - Added $(TAO_ROOT)/orbsvcs/orbsvcs to libpaths and linking - Security to even a simple stub DLL because of the way - components.idl is being set up. (Hint: we really don't need - them.) - - * bin/MakeProjectCreator/config/ciao_component.mpb: Reorganized - the template since I moved some of the libraries to ciao_client - to fix the components.idl definition problem. - - * bin/MakeProjectCreator/config/ciao_servant.mpb: Added this new - template to isolate customize CIDL rules for servant DLLs. It - turned out they also requires the stuff defined in the - Deployment module (thus, the CIAO_Server library.) - - * bin/MakeProjectCreator/templates/gnu.mpd: Added code to define - CIAO_ROOT in Makefiles if it's not defined already. - - Thanks to Chad Elliott for helping me setting up the custom - rules for CIDL compiler and answering my tons of questions. - -Tue June 24 16:26:06 2003 Yamuna Krishnamurthy - - * ace/QoS/QoS_Session.h: - * ace/QoS/QoS_Session_Impl.h: - * ace/QoS/QoS_Session_Impl.cpp: - * ace/QoS/QoS_Session_Impl.i: Added methods to set the source host - and port that is used to populate the TSpec for the - sending_qos. - -Tue Jun 24 13:10:25 2003 Douglas C. Schmidt - - * ace/Cached_Connect_Strategy_T.cpp (cached_connect): Added - a check for "|| errno == EADDRINUSE" to fix problems on Windows. - Thanks to Valery Salamakha for - reporting this. - -Tue Jun 24 12:07:06 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Convert custom defined values to relative paths if possible. If - it isn't possible, continue to use environment variables. - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Push the relative() method into the ProjectCreator, where it - should have been in the first place. - -Tue Jun 24 15:38:49 UTC 2003 Don Hinton - - * ace/Filecache.cpp: - Added include of ACE.h. - - * ace/Global_Macros.h: - Added include of ace/Trace.h when tracing is turned on. - - * ace/Typed_SV_Message.i: - Added include of ace/Global_Macros.h to pick up ACE_TRACE. - -Tue Jun 24 15:15:03 UTC 2003 Don Hinton - - * ace/os_include/sys/os_socket.h: - Removed ACE_HAS_CYGWIN32_SOCKET_H ifdef that included - cygwin32/socket.h, which is no longer needed. Thanks to "Johnny - Willemsen" for reporting this. - -Tue Jun 24 14:40:43 UTC 2003 Don Hinton - - * ace/String_Base.i: - Added include of Min_Max.h. Thanks to Olli Savia - for reporting this and supplying the fix. - - * ace/config-lynxos.h: - * ace/os_include/net/os_if.h: - Added new macro ACE_NEEDS_IPC_1C_H used to include ipc_1c.h - before net/if.h for LynxOS 3.1.0 and later. Thanks to Olli - Savia for reporting this and supplying the fix. - - * ace/os_include/os_signal.h: - * ace/os_include/os_ucontext.h: - Moved include of os_ucontext.h to bottom of os_signal.h and - included os_signal.h in os_ucontext.h. Thanks to John Michael - Zorko for reporting this. - -Tue Jun 24 03:50:21 UTC 2003 Don Hinton - - * ace/Based_Pointer_Repository.h: - Added include of os_stddef.h to pick up size_t. - -Tue Jun 24 02:00:02 UTC 2003 Don Hinton - - * etc/ace/doxygen: - Added the subdirectories under os_include so they'll get - included in the documentation. - -Tue Jun 24 01:25:38 UTC 2003 Don Hinton - - * ace/OS.h: - Removed a set of defines, e.g., LPSECURITY_ATTRIBUTES, and - ACE_OVERLAPPED struct in the ACE_PSOS that were missed before. - - * ace/OS.h: - * ace/os_include/os_stdint.h: - * ace/os_include/sys/os_types.h: - * ace/Process.h: - Moved typedefs for pid_t and ACE_exitcode and definition for - ACE_INVALID_PID to os_types.h and included it in Process.h. - - * ace/os_include/sys/os_uio.h: - * ace/os_include/os_limits.h: - Moved ACE_IOV_MAX and IOV_MAX defines from os_uio.h to - os_limits.h and included os_limits.h in os_uio,h. - -Mon Jun 23 12:46:05 2003 Rich Seibel - - * bin/tao_other_tests.lst: - Broke out the Naming Service flat-file persistence tests and - added a new Redundant Naming Service test. Both these tests - are disabled on mininum CORBA. - -Sun Jun 22 11:23:52 2003 Douglas C. Schmidt - - * THANKS: Added our 1,700th contributor to ACE+TAO. It's amazing - how many people have contributed to these open-source projects - since 1992! - -Mon Jun 23 11:51:13 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added another MPC environment variable to allow a user to get an - informational message about which projects were skipped due to the - current set of features. - -Sun Jun 22 13:58:08 UTC 2003 Don Hinton - - * ace/Lib_Find.h: - Added include of os_stdio.h to pick up FILE, needed by BCB and - possibly other builds. - - * ace/Malloc_Allocator.i: - Removed redundant define of ACE_ASSERT> - -Sun Jun 22 04:54:45 UTC 2003 Don Hinton - - * ace/Handle_Set.[i,cpp]: - Moved include of Log_Msg.h from the cpp to the i file. - - * ace/INET_Addr.i: - * ace/Malloc_Allocator.i: - Added include of OS.h. - -Sun Jun 22 04:32:15 UTC 2003 Don Hinton - - * ace/Global_Macros.h: - Place LPSECURITY_ATTRIBUTES within !defined (ACE_WIN32) guards. - - * ace/Asynch_IO.h: - * ace/Malloc_Base.h: - Added include of ace/os_include/sys/os_types.h. - - * ace/OS.h: - * ace/os_include/sys/os_mman.h: - Moved MS_SYNC definition from OS.h to here. - - * ace/Basic_Types.h: - * ace/os_include/sys/os_types.h: - Moved ssize_t typedef here from Basic_Types.h. - - * ace/config-win32-common.h: - Add ACE_LACKS_PTHREAD_H. - - * ace/Malloc_Allocator.i: - Fixed typo. - -Sun Jun 22 03:27:10 UTC 2003 Don Hinton - - * ace/ACE.h: - * ace/ARGV.h: - * ace/Array_Base.cpp: - * ace/Array_Base.h: - * ace/Asynch_Connector.h: - * ace/Asynch_IO.cpp: - * ace/Asynch_IO.h: - * ace/Asynch_Pseudo_Task.h: - * ace/Based_Pointer_Repository.h: - * ace/DEV.cpp: - * ace/DEV_Addr.h: - * ace/DEV_Connector.cpp: - * ace/DEV_IO.h: - * ace/DEV_IO.i: - * ace/DLL.h: - * ace/DLL_Manager.cpp: - * ace/DLL_Manager.h: - * ace/Date_Time.h: - * ace/Date_Time.i: - * ace/Event_Handler.h: - * ace/Event_Handler_T.i: - * ace/FIFO.h: - * ace/FIFO_Recv.h: - * ace/FIFO_Recv.i: - * ace/FIFO_Recv_Msg.h: - * ace/FIFO_Send.h: - * ace/FIFO_Send.i: - * ace/FIFO_Send_Msg.h: - * ace/FILE.cpp: - * ace/FILE_Addr.h: - * ace/FILE_IO.h: - * ace/FILE_IO.i: - * ace/Flag_Manip.h: - * ace/Flag_Manip.i: - * ace/Free_List.h: - * ace/Functor.h: - * ace/Functor.i: - * ace/Get_Opt.cpp: - * ace/Handle_Ops.cpp: - * ace/Handle_Ops.h: - * ace/Handle_Set.h: - * ace/Lib_Find.h: - * ace/Malloc_Allocator.h: - * ace/Malloc_Allocator.i: - * ace/Malloc_Base.h: - * ace/Message_Block_T.cpp: - * ace/OS.h: - * ace/Parse_Node.cpp: - * ace/Process.h: - * ace/Read_Buffer.h: - * ace/Service_Object.h: - * ace/Sock_Connect.h: - * ace/Thread_Control.h: - * ace/Thread_Exit.h: - * ace/Typed_SV_Message.h: - * ace/Unbounded_Queue.h: - Removed include of OS.h and/or ACE.h from headers and adjusted - includes in headers and other files by including appropriate - headers in order to reduce dependencies as part of the - subsetting effort. - - * ace/OS.h: - * ace/Asynch_IO.cpp: - * ace/Asynch_IO.h: - Changed u_long to unsigned long to help remove dependencies. - Moved the typedef for TRANSMIT_FILE_BUFFERS here from OS.h. - - * ace/Functor.h: - * ace/Functor.i: - Changed u_long to unsigned long to help remove dependencies. - - * ace/OS.h: - * ace/Global_Macros.h: - Moved definitions for many macros including - LPSECURITY_ATTRIBUTES and GENERIC_READ, etc... here from OS.h. - Moved the ACE_ALLOCATOR_* macros here from OS.h. - - * ace/Makefile.ace: - Added Date_Time so it will get build if - ACE_LACKS_INLINE_FUNCTIONS is defined. - - * ace/os_include/os_pthread.h: - Added include of ace/OS_Export.h if ACE_HAS_POSIX_SEM to pick up - ACE_Export. - - * ace/OS.h: - * ace/os_include/os_signal.h: - Moved ACE_SIGRTMIN, etc., defines here from OS.h. - - * ace/OS.h: - * ace/os_include/os_stdio.h: - Moved ACE_OVERLAPPED typedef here from OS.h. - - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp: - * websvcs/lib/URL_Addr.i: - Added include of OS.h. - - * tests/CDR_File_Test.cpp: - Added include of ACE.h. - -Sat Jun 21 13:47:28 UTC 2003 Don Hinton - - * ace/OS.h: - Fixed typo. - -Sat Jun 21 12:05:42 UTC 2003 Johnny WIllemsen - - * ace/config-win32-mingw.h: - Added some more lacks defines that are needed - -Fri Jun 20 17:57:10 2003 Gan Deng - - * bin/performance_stats.sh - - Added the latency tests for sequences of various data types. - -Fri Jun 20 13:32:21 2003 Ossama Othman - - * include/makeinclude/platform_linux.GNU (PLATFORM_SSL_CPPFLAGS): - - Some Linux OpenSSL installations compile in Kerberos support. - Add the Kerberos include path to preprocessor include path. - Fixes build problems on Red Hat 9 installations. Note that this - is an interim fix. - -Fri Jun 20 10:07:39 2003 Chad Elliott - - * bin/MakeProjectCreator/config/qt_moc.mpb: - - Switch this to be a project instead of a feature. It doesn't hurt - to inherit from it if you don't use the MOC_Files component. - - * bin/MakeProjectCreator/modules/Parser.pm: - - Added + and - to the escape_regex_special() method. - -Fri Jun 20 09:52:44 2003 Chad Elliott - - * ace/ace.mpc: - - Added inheritance from qt_moc and qt_reactor. These will only be - processed if the 'qt' feature is enabled. - - * ace/qt_reactor.mpb: - - Added QtReactor_moc.cpp to the list of files. - - * bin/MakeProjectCreator/config/acedefaults.mpb: - - Added inheritance from the qt base project. - - * bin/MakeProjectCreator/config/qt.mpb: - - Contains the basic feature definition for qt libs and apps. - - * bin/MakeProjectCreator/config/qt_moc.mpb: - - Contains the custom definition for MOC files. - - * bin/MakeProjectCreator/modules/ArrayHandle.pm: - - Removed this file. It isn't necessary anymore. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Changed the way feature files are read. This new way is better - and less hacky. - - * bin/pch_cmd.pl: - - Don't modify the file if no precompiled header is found. - -Fri Jun 20 14:28:12 UTC 2003 Johnny WIllemsen - - * ace/config-win32-mingw.h: - Updated this file because of the os splitting. - -Fri Jun 20 09:08:05 2003 Chad Elliott - - * bin/pch_cmd.pl: - - Fixed the usage to display the correct options. - -Fri Jun 20 08:54:29 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added code to process type specific assignments that may be - defined within a feature. - -Fri Jun 20 08:10:11 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - - Added documentation about the new feature project type. - - * bin/MakeProjectCreator/config/global.features: - - Defaulted the qt feature to disabled. - - * bin/MakeProjectCreator/modules/ArrayHandle.pm: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - The majority of the code for handling feature project went in - here. One main thing that was changed is that instead of using - the <$fh> paradigm to read files, the following is used - $_ = $fh->getline(). This is compatible with the new ArrayHandle - module that I added. - - * bin/MakeProjectCreator/modules/Options.pm: - - Added a missing space in the completion command. - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Changed the code to match some new methods added in Creator and - ProjectCreator. - -Thu Jun 19 13:03:49 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Fixed a bug where the BUILD target wouldn't be updated when the - project had component requirements. - -Thu Jun 19 12:14:31 2003 Gan Deng - - * bin/tao_other_tests.lst - - Added the latency tests for sequences of various data types. - -Thu Jun 19 11:36:14 2003 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Updated the GNUACE template to issue information as to why a - particular project wasn't built based on the comps, requires and - avoids values. - -Thu Jun 19 12:18:22 UTC 2003 Don Hinton - - * ace/OS.h: - * ace/config-vxworks5.x.h: - * ace/os_include/os_dirent.h: - Fixed typos in the VXWORKS ifdef'd sections. - - * ace/OS.h: - * ace/os_include/os_stdio.h: - Moved include of remLib.h to os_stdio.h, and uncommented - sysLib.h since it is needed for sysClkRateGet(). Thanks to Rod - Andzik for help tracking this down. - - * ace/os_include/os_netdb.h: - Removed the VXWORKS tests for hostent and servent. - - * ace/config-aix-4x.h: - Added ACE_LACKS_STDINT_H. - - * ace/config-hpux-11.00.h: - Added ACE_LACKS_STDINT_H and ACE_LACKS_SYS_SELECT_H. - -Thu Jun 19 07:50:04 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug with multiple 'specific' scopes in a single project. - -Thu Jun 19 07:13:16 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - - Documented the existing 'specific' keyword. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added the ability to specify multiple project types with the - 'specific' scope. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Removed ACESHLIB from the lit_libs assignment. - - * bin/MakeProjectCreator/templates/makedll.mpt: - - Added the ssl_libs definition. - -Thu Jun 19 12:04:28 UTC 2003 Don Hinton - - * ace/Default_Constants.h: - Added guards around ACE_LD_LIBRARY_PATH and - ACE_LD_SEARCH_PATH_SEPARATOR_STR. Thanks to John Michael - Zorko for reporting the problem. - -Thu Jun 19 07:01:57 2003 Balachandran Natarajan - - * ace/config-lynxos.h: Since LynxOS lacks sys/select.h and - dlfcn.h header files, config file needs ACE_LACKS_DLFCN_H - and ACE_LACKS_SYS_SELECT_H to be defined. Thanks to Olli Savia - for the patch. - -Thu Jun 19 06:35:26 2003 John Michael Zorko - - * ace/config-macosx.h: Patches to get ACE building on OSX10.2 - again. - -Thu Jun 19 00:27:38 2003 Stephen Torri - - * ace/Timeprobe.h: - * ace/Timeprobe.cpp: - * ace/Timeprobe_T.cpp: - * ace/Timeprobe_T.h: - - Advanced new timeprobe. New features are a - ring buffer for elements kept in data structure. - This eliminates the ACE_ASSERT when an element - is attempted to be inserted into a full data - structure. Old data is overwritten until the - cache is read and cleared. - - Timeprobes now include a second argument to - allow for an ACE_ALLOCATOR. This allocator allows - for the data structure that will contain the - ACE_Timeprobes to be done in the constructor. A - new function called 'increase_size' allows for - the data structure to increase the number of - measurements it can take. It does so by creating a - new structure with the new size and copying the - elements from the old structure. - - * ace/Makefile.ace: - * ace/Metrics_Cache.cpp: - * ace/Metrics_Cache.h: - * ace/Metrics_Cache.i: - * ace/Metrics_Cache_T.cpp: - * ace/Metrics_Cache_T.h: - * ace/Metrics_Cache_T.i: - - Added new Metrics Cache. - - * ACE/ace/OS.h: - - Added two new macros called ACE_NEW_MALLOC_ARRAY_RETURN - and ACE_NEW_MALLOC_ARRAY. ACE_NEW_MALLOC_ARRAY_RETURN - returns an array of class pointers with their space - preallocated and each entry initialized. If there is - an error the value contained in RET_VAL is returned. - ACE_NEW_MALLOC_ARRAY is the same but there is no - return of a value if there is an error. - -Wed Jun 18 21:27:44 2003 Nanbor Wang - - * docs/exceptions.html: Added documentation for the - ACE_ENV_BKWD_COMPAT macro. - -Wed Jun 18 17:28:25 2003 Balachandran Natarajan - - * include/makeinclude/platform_linux.GNU (CXX): Added some default - options specified in the /usr/sys/features.h. - - Thanks to Keith Snively and J. Russell - Noseworthy for - providing these patches. - -Wed Jun 18 17:20:28 2003 Balachandran Natarajan - - * ace/Log_Record.cpp: - * ace/Log_Record.h (print): Changed the 3rd argument to be of type - ACE_OSTREAM_TYPE instead of ostream. - - * ace/ace/config-sunos5.5.h: Added ACE_HAS_TEMPLATE_TYPEDEFS and - removed ACE_TEMPLATES_REQUIRES_SOURCE. - - Thanks to Keith Snively and J. Russell - Noseworthy for - providing these patches. - -Wed Jun 18 15:59:18 UTC 2003 Don Hinton - - * ace/OS.h: - Added includes of os_fcntl.h, os_netdb.h, os_semaphore.h, - os_signal.h, os_stdio.h, os_stdlib.h, os_stropts.h, os_unistd.h, - arpa/os_inet.h, sys/select.h, and sys/os_socket.h to the VxWorks - section. All the includes in OS.h will be reorganized once the - builds stabilize. - -Wed Jun 18 10:54:18 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Allow scoped assignments to be applied to directories as well as - listed mpc files. - -Wed Jun 18 15:19:17 UTC 2003 Don Hinton - - * ace/OS.h: - * ace/os_include/os_fcntl.h: - * ace/os_include/os_netdb.h: - * ace/os_include/os_semaphore.h: - * ace/os_include/os_signal.h: - * ace/os_include/os_stdio.h: - * ace/os_include/os_stdlib.h: - * ace/os_include/os_stropts.h: - * ace/os_include/os_unistd.h: - * ace/os_include/arpa/os_inet.h: - * ace/os_include/sys/select.h: - * ace/os_include/sys/os_socket.h: - Moved the following VxWorks includes from OS.h as noted: - semLib.h to os_semaphore.h; ioLib.h to os_fcntl.h, os_stdio.h, - os_stropts.h, os_unistd.h; hostLib.h to os_netdb.h; sigLib.h to - os_signal.h; envLib.h to os_stdlib.h; inetLib.h to - arpa/os_inet.h; selectLib.h to sys/select.h; sockLib.h to - sys/socket.h. - - * ace/OS.h: - Commented out remLib.h and sysLib.h since they don't appear to - be used by ACE at all. - - * ace/OS.h: - * ace/os_include/sys/os_un.h: - Moved sockaddr_un declaration to sys/os_un.h. - - * ace/OS.h: - * ace/os_include/os_signal.h: - Moved NSIG definition to os_signal.h. - - * ace/config-vxworks5.x.h: - Added following ACE_LACKS_* defines: STDINT_H, INTTYPS_H, - UNISTD_H, SYS_SELECT_H, SYS_TIME_H, SYS_RESOURCE_H, DLFCN_H, - SYS_UIO_H, SYS_IPC_H, SYS_SEM_H, STROPTS_H, and SYS_MSG_H. - -Wed Jun 18 14:00:00 UTC 2003 Don Hinton - - * ace/config-openbsd.h: - Added ACE_LACKS_STDINT_H and ACE_LACKS_STROPTS_H. - -Wed Jun 18 13:47:01 UTC 2003 Johnny Willemsen - - * etc/ace.doxygen: - Also parse the new os_include subdirectory for doxygen docu - -Wed Jun 18 08:11:35 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/NMakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - - For custom defined values, convert $(...) to the corresponding - environment variable accessor, if it is required. Custom builds - done in the MS based IDE's are placed in a batch file and then - executed. For this particular case, $(...) doesn't work so we - convert the values on assignment. - -Wed Jun 18 07:38:26 2003 Chad Elliott - - * bin/pch_cmd.pl: - - This script can be used to edit c++ file generated by a given - command to add a #include of a precompile header. - -Wed Jun 18 07:35:22 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where scoped assignment additions for custom types - would override the values given in the Define_Custom section. - -Wed Jun 18 07:16:33 UTC 2003 Johnny Willemsen - - * ace/config-win32-borland.h: - Added ACE_LACKS_DIRENT_H, ACE_LACKS_SYS_IOCTL_H, ACE_LACKS_STROPTS_H - and ACE_HAS_DIRENT - -Wed Jun 18 06:21:12 UTC 2003 Johnny Willemsen - - * ace/config-win32-borland.h: - Added ACE_LACKS_STDINT_H - -Wed Jun 18 03:22:15 UTC 2003 Don Hinton - - * ace/config-borland-common.h: - * ace/config-win32-borland.h: - Moved ACE_LACKS that were added to config-borland-common.h in - Tue Jun 17 18:34:39 UTC 2003 Don Hinton - to config-win32-borland.h. Moved - ACE_LACKS_STRRECVFD from config-borland-common.h to config-win32-borland.h. - -Tue Jun 17 21:50:13 2003 Douglas C. Schmidt - - * ace/Synch.{h,i,cpp}: Changed the ACE_Recursive_Thread_Mutex's - "recursive_mutex_" data member to "lock_" so that it would work - with the ACE_Guard properly. Thanks to Arturo Montes - for this fix. - -Wed Jun 18 02:14:16 UTC 2003 Don Hinton - - * ace/config-cywin32.h: - Added following ACE_LACKS_* defines: STDINT_H, INTTYPES_H, - SYS_IPC_H, SYS_SEM_H, SYS_MSG_H, and STROPTS_H. Thanks to Jeff - Parsons for pointing this out. - -Tue Jun 17 15:25:20 2003 Nanbor Wang - - * ace/Sock_Connect.cpp (get_windows_version): - * ace/WIN32_Asynch_IO.cpp (readv,writev): Fixed compilation errors - when ACE_HAS_WINSOCK2=0. Thanks to Raymond Hoofman - for submitting the patches. - -Tue Jun 17 18:34:39 UTC 2003 Don Hinton - - * ace/OS.h: - Removed includes for os_dirent.h and os_errno.h since they are - pulled in by OS_Dirent.h and OS_Errno.h. - - * ace/OS_Dirent.h: - * ace/os_include/os_dirent.h: - Moved all the typedefs to os_dirent.h and changed OS_Dirent.h - include it. - - * ace/OS_Errno.h: - * ace/os_include/os_errno.h: - Moved all the typedefs, declarations, and defines to os_errno.h - and included it in OS_Errno.h. - - * ace/OS_Log_Msg_Attributes.h: - Include os_stdio.h instead of and . - - * ace/OS_Memory.[h,inl,cpp]: - Rearranged includes, and included os_* headers. - - * ace/OS_String.[h,inl]: - * ace/config-all.h: - Include os_* headers. - - * ace/config-psos-diab-mips.h: - Added ACE_LACKS_STDLIB_H and ACE_LACKS_STRING_H. - - * ace/os_include/os_strings.h: - Define ACE_LACKS_STRINGS_H if !ACE_HAS_STRINGS. - - * ace/config-borland-common.h: - Added following ACE_LACKS_* defines INTTYPES_H,UCONTEXT_H, - SYS_SELECT_H, SYS_TIME_H, SYS_RESOURCE_H, SYS_WAIT_H, DLFCN_H, - SYS_MMAN_H, SYS_UIO_H, SYS_SOCKET_H, NETINET_IN_H, NETDB_H, - NET_IF_H, SYS_IPC_H, and SYS_SEM_H. - -Tue Jun 17 13:44:09 2003 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added a new custom definition keyword 'pch_option' to allow the - custom build command to possibly generate code that is compatible - with precompiled headers. - -Tue Jun 17 14:42:25 2003 Gautam H. Thaker - - * performance-tests/SCTP/Options_Manager.cpp: - - Change was necessary for build on RH 9.0 to work properly. - Change consisted of moving the definition of IPPROTO_SCTP - to after all the other includes. - -Tue Jun 17 13:26:58 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - When matching possible output files for custom builds, check for - forward slashes and back slashes. - -Tue Jun 17 17:28:12 UTC 2003 Johnny Willemsen - - * ace/SSL/Makefile: - Set ACE_SSL_BUILD_DLL when building a shared lib - -Tue Jun 17 11:47:52 2003 Douglas C. Schmidt - - * ace/Future.{h,cpp}: Changed all uses of ACE_Thread_Mutex to - ACE_Recursive_Thread_Mutex and also changed the - ACE_Condition_Thread_Mutex to - ACE_Condition_Recursive_Thread_Mutex. This should fix bugs with - deadlock. Thanks to Thomas Groth for - providing these patches. - - * ace/DLL_Manager.cpp (symbol): Added missing newlines in - debug/error messages. Thanks to Rick Ohnemus - for reporting this. - -Tue Jun 17 15:49:32 UTC 2003 Don Hinton - - * ace/os_include/aio.h: - * ace/os_include/assert.h: - * ace/os_include/complex.h: - * ace/os_include/cpio.h: - * ace/os_include/ctype.h: - * ace/os_include/dirent.hd: - * ace/os_include/lfcn.h: - * ace/os_include/errno.h: - * ace/os_include/fcntl.h: - * ace/os_include/fenv.h: - * ace/os_include/float.h: - * ace/os_include/fmtmsg.h: - * ace/os_include/fnmatch.h: - * ace/os_include/ftw.h: - * ace/os_include/glob.h: - * ace/os_include/grp.h: - * ace/os_include/iconv.h: - * ace/os_include/inttypes.h: - * ace/os_include/iso646.h: - * ace/os_include/langinfo.h: - * ace/os_include/libgen.h: - * ace/os_include/limits.h: - * ace/os_include/local.h: - * ace/os_include/math.h: - * ace/os_include/monetary.h: - * ace/os_include/mqueue.h: - * ace/os_include/ndbm.h: - * ace/os_include/netdb.h: - * ace/os_include/nl_types.h: - * ace/os_include/poll.h: - * ace/os_include/pthread.h: - * ace/os_include/pwd.h: - * ace/os_include/regex.h: - * ace/os_include/sched.h: - * ace/os_include/search.h: - * ace/os_include/semaphore.h: - * ace/os_include/setjmp.h: - * ace/os_include/signal.h: - * ace/os_include/spawn.h: - * ace/os_include/stdarg.h: - * ace/os_include/stdbool.h: - * ace/os_include/stddef.h: - * ace/os_include/stdint.h: - * ace/os_include/stdio.h: - * ace/os_include/stdlib.h: - * ace/os_include/string.h: - * ace/os_include/strings.h: - * ace/os_include/stropts.h: - * ace/os_include/syslog.h: - * ace/os_include/tar.h: - * ace/os_include/termios.h: - * ace/os_include/tgmath.h: - * ace/os_include/time.h: - * ace/os_include/trace.h: - * ace/os_include/ucontext.h: - * ace/os_include/ulimit.h: - * ace/os_include/unistd.h: - * ace/os_include/utime.h: - * ace/os_include/utmpx.h: - * ace/os_include/wchar.h: - * ace/os_include/wctype.h: - * ace/os_include/wordexp.h: - * ace/os_include/arpa/inet.h: - * ace/os_include/net/if.h: - * ace/os_include/netinet/in.h: - * ace/os_include/netinet/tcp.h: - * ace/os_include/sys/ipc.h: - * ace/os_include/sys/mman.h: - * ace/os_include/sys/msg.h: - * ace/os_include/sys/resource.h: - * ace/os_include/sys/select.h: - * ace/os_include/sys/sem.h: - * ace/os_include/sys/shm.h: - * ace/os_include/sys/socket.h: - * ace/os_include/sys/stat.h: - * ace/os_include/sys/statvfs.h: - * ace/os_include/sys/timeb.h: - * ace/os_include/sys/time.h: - * ace/os_include/sys/times.h: - * ace/os_include/sys/types.h: - * ace/os_include/sys/uio.h: - * ace/os_include/sys/un.h: - * ace/os_include/sys/utsname.h: - * ace/os_include/sys/wait.h: - Removed these file--they were replaced by the ones below with - the "os_" prefix. - -Tue Jun 17 15:21:36 UTC 2003 Don Hinton - - Merged in the following subsetting changes. - - * ace/*: - * ace/os_include/*: - Added "os_" prefix to all the new include file names, and - modified the includes to match the new names. - - Sat May 17 13:41:38 UTC 2003 Don Hinton - - * ace/config-freebsd.h: - Added ACE_LACKS_STROPTS_H. - - Fri May 16 18:26:11 UTC 2003 Don Hinton - - * ace/os_include/aio.h: - * ace/os_include/iconv.h: - * ace/os_include/pthread.h: - * ace/os_include/signal.h: - * ace/os_include/stddef.h: - * ace/os_include/stdint.h: - * ace/os_include/ucontext.h: - * ace/os_include/sys/stat.h: - Nuked trailing whitespace. - - Fri May 16 18:03:09 UTC 2003 Don Hinton - - * ace/config-all.h: - Cosmetic changes. - - * ace/os_include/*.h: - Added extern "C" begin and end brackets to all files, even those - with not additions, and places all additions inside the extern - "C" {}'s. Rearranged some of the #ifdef's and moved includes to - the top of the files so that only those headers that need to be - are couched in extern "C". - - Thu May 15 17:01:28 UTC 2003 Don Hinton - - * ace/OS.h: - Adding #include of ace/os_include/sys/sem.h and - ace/os_include/errno.h/ - - * ace/config-win32-msvc.h: - Added ACE_LACKS_DIRENT_H, ACE_LACKS_DLFCN_H, - ACE_LACKS_NETDB_H, and ACE_LACKS_NET_IF_H defines. - - * ace/os_include/dlfcn.h: - * ace/os_include/sys/mman.h: - Rearranged ACE_WIN32 #ifdef's. - - * ace/os_include/limits.h: - Fixed a typo. - - Thu May 15 00:12:34 UTC 2003 Don Hinton - - * ace/os_include/limits.h: - * ace/os_include/dirent.h: - * ace/os_include/netdb.h: - Moved MAXNAMLEN define from limits.h to dirent.h, and - MAXHOSTNAMELEN from limits.h to netdb.h to clear up - warnings on Solaris. - - Wed May 14 17:40:28 UTC 2003 Don Hinton - - * ace/OS.h: - Moved more code, as listed below. - - * ace/Default_Constants.h: - Moved ACE_DIRECTORY_SEPERATOR_*, ACE_PLATFORM_*, - ACE_LD_SEARCH_PATH_*, ACE_DLL_*, ACE_DEFAULT_SVC_CONF, - ACE_DEFAULT_[LOCAL|GLOBAL]NAME_*, ACE_DEFAULT_NAMESPACE_*, - ACE_DEFAULT_THREAD_PRIORITY, and ACE_MAX_DEFAULT_PORT - defines here. - - * ace/Global_Macros.h: - Moved the Service Configurator macros here. - - * ace/Handle_Set.h: - * ace/os_include/sys/select.h: - Moved the fd_mask typedef from ace/Handle_Set.h to - ace/os_include/sys/select.h. - - * ace/config-all.h: - Moved ACE_OSTREAM, ACE_DEFAULT_LOG_STREAM, ACE_SYNCH_*, - ACE_WSOCK_VERSION, _REENTRANT, ACE_USING, ACE_TYPENAME_*, - and ACE_TEMPLATE_SPECIALIZATION defines here. - - * ace/config-psosim-g++: - Moved the size_t define here. - - * ace/config-win32-msvc.h: - Moved the pragma warning disable's and ACE_HAS_STRICT here. - - * ace/os_include/*h: - Changed the @file and include guards to include an OS/os - prefix. The file names will be changed when we merge to - the main trunk. - - * ace/os_include/dlfcn.h: - Moved extern "C" {} wrapper around the include of dlfcn.h when - ACE_HAS_DLFCN_H_BROKEN_EXTERN_C defined, ACE_SHLIB_*, - ACE_DEFAULT_SHLIB_MODE, and RTLD_* defines here. - - * ace/os_include/errno.h: - Moved the ACE_PSOS and ACE_WIN32 E* defines here. - - * ace/os_include/fcntl.h: - Moved the ACE_WIN32 O_* and ACE_NONBLOCK defines here. - - * ace/os_include/limits.h: - Added POSIX NAME_MAX and HOST_NAME_MAX. Moved MAXNAMLEN, - MAXNAMELEN, and MAXHOSTNAMELEN here. - - * ace/os_include/netdb.h: - Move queue define when ACE_HAS_STL_QUEUE_CONFLICT is defined here. - Added extern "C" {} around netdb.h include. Moved hostent, - servent structs and ACE_[HOSTENT|SERVENT|PROTOENT]_DATA* - defines here. - - * ace/os_include/pthread.h: - Added extern "C" {} wrapper around pthread.h include. - - * ace/os_include/signal.h: - Moved siginfo_t typedef here. Added extern "C" {} wrapper - around signal.h include and moved sigset_t typedef here. Moved - ACE_SignalHandler and ACE_SignalHandlerV function typedefs - and sigaction struct definition here. - - * ace/os_include/stdint.h: - Moved ACE_PSOS typedefs here. - - * ace/os_include/stdlib.h: - Moved alloca.h include here. - - * ace/os_include/string.h: - Changed extern to extern "C" to the strdup() declaration. - - * ace/os_include/unistd.h: - Changed extern to extern"C" to the getopt() declaration. - - * ace/os_include/arpa/inet.h: - Added extern "C" {} around arpa/inet.h include. - - * ace/os_include/net/if.h: - Move map define when ACE_HAS_STL_MAP_CONFLICT is defined here. - Added extern "C" {} around net/if.h include. Moved - IFF_LOOPBACK define here. Moved struct ifafilt declare when - ACE_HAS_BROKEN_IF_HEADER is defined. - - * ace/os_include/netinet/in.h: - Move queue define when ACE_HAS_STL_QUEUE_CONFLICT is defined here. - Added extern "C" {} around netinet/in.h include. Moved - IPPORT_RESERVED, IPPORT_USERRESERVED, INADDR_LOOPBACK, - INADDR_NONE, INET_ADDRSTRLEN, and INET6_ADDRSTRLEN defines here. - - * ace/os_include/netinet/tcp.h: - Moved TCP_NODELAY define here. - - * ace/os_include/sys/ipc.h: - Moved ACE_INVALID_SEM_KEY and the IPC_* defines here. - - * ace/os_include/sys/mman.h: - Moved extern "C" {} around sys/mman.h when ACE_HAS_BROKEN_MMAP_H - is defined. Moved the PROT* and MAP_* defines here. - - * ace/os_include/sys/sem.h: - Moved union semun definition here. - - * ace/os_include/sys/socket.h: - Moved cygwin32/socket.h include here. Moved __cplusplus - undef/def around sys/socket.h include when - ACE_HAS_AIX_BROKEN_SOCKET_HEADER is defined. Moved AF_*, PF_*, - ACE_ADDRESS_FAMILY_INET and ACE_PROTOCOL_FAMILY_INET defines - here. - - * ace/os_include/sys/stat.h: - Added undef ACE_LACKS_SYS_STAT_H if ACE_PSOS is defined (should - go in the ACE_PSOS headers, eventually). Changed umask(), - mkfifo(), and mkdir() declarations from extern to extern "C". - - * ace/os_include/sys/uio.h: - Moved iovec definition for ACE_WIN32 here. Moved - ACE_[READ|WRITE]_TYPE typedefs here. - - Sun May 11 14:42:23 UTC 2003 Don Hinton - - * ace/OS.h: - Moved more code, as listed below. - - * ace/Basic_Types.h: - Changed #includes to use new headers. Moved MAXPATHLEN - to ace/os_include/limits.h. - - * ace/Malloc.h: - * ace/Default_Constants.h: - Moved ACE_DEFAULT_BASE_ADDR here. - - * ace/os_include/limits.h: - Added conditional include of . Moved howmany - macro and MAXPATHLEN here. Added POSIX PATH_MAX. - - * ace/os_include/time.h: - Moved timespec_t typedef for ACE_PSOS here. - - Sat May 10 21:39:05 UTC 2003 Don Hinton - - * ace/OS.h: - Removed commented and moved more code, as listed below. - - * ace/Handle_Set.h: - Moved ACE_FD_SETSIZE and ACE_DEFAULT_SELECT_REACTOR_SIZE - defines here. - - * ace/Malloc.h: - Moved ACE_DEFAULT_BASE_ADDR define here. Fixed #ifdef - indentation. - - * ace/Timer_Queue_T.cpp: - Moved ACE_TIMER_SKEW define here. - - * ace/os_include/pthread.h: - Moved a large section of pthread defines and typedefs here. - - * ace/os_include/stdio.h: - Moved ACE_PSOS_SNARFS_HEADER_INFO decl's for fdopen(), tempnam(), - and fileno() here. - - * ace/os_include/stdlib.h: - Moved ACE_PSOS_SNARFS_HEADER_INFO decl for putenv() here. - - * ace/os_include/string.h: - Moved ACE_PSOS_SNARFS_HEADER_INFO decl for strdup() here. - - * ace/os_include/unistd.h: - Moved ACE_PSOS_SNARFS_HEADER_INFO decl's for getopt() and - isatty() here. - - * ace/os_include/sys/stat.h: - Moved ACE_PSOS_SNARFS_HEADER_INFO decl's for umask(), mkfifo(), - and mkdir() here. - - * apps/gperf/src/Vectors.h: - Moved ACE_ASCII_SIZE, ACE_EBCDIC_SIZE, and - ACE_STANDARD_CHARACTER_SET_SIZE defines here. - - Sat May 10 18:59;32 UTC 2003 Don Hinton - - * ace/config-cygwin32.h: - Added ACE_LACKS_SYS_IPC_H ACE_LACKS_SYS_MSG_H. - - Sat May 10 16:18:24 UTC 2003 Don Hinton - - * ace/OS.h: - Commented and moved more code, as listed below. - - * ace/SV_Semaphore_Simple.h: - Moved ACE_DEFAULT_SEM_KEY define here. - - * ace/os_include/fcntl.h: - Moved O_NDELAY, ACE_NONBLOCK, and O_* defines for __BORLANDC__ - here. - - * ace/os_include/signal.h: - Moved SIG* and ACE_SIG* defines here. - - * ace/os_include/stddef.h: - Moved size_t for ACE_PSOS_DIAB_MIPS here. - - * ace/os_include/stdio.h: - Moved ACE_MAX_USERID, BUFSIZ, ACE_STRBUF_SIZE, and ACE_STD* - defines here. - - * ace/os_include/string.h: - Moved str[n]imp() for __BORLANDC__ and ACE_SPRINTF_ADAPTER - defines here. - - * ace/os_include/unistd.h: - Moved _SC_AIO_MAX, chdir(), access(), getcwd(), and isatty() - defines for __BORLANDC__ here. - - * ace/os_include/sys/mman.h: - Moved PROT_RDWR define here. - - * ace/os_include/sys/socket.h: - Moved CMSG_DATA define here. - - * ace/os_include/sys/stat.h: - Moved stat(), umask(), and fstat() defines for __BORLANDC__ here. - - * ace/os_include/sys/timeb.h: - Moved ftime() and timeb defines for __BORLANDC__ here. - - * ace/os_include/sys/types.h: - Moved longlong_t, key_t, and pid_t here. - - Sat May 10 19:19:09 UTC 2003 Don Hinton - - * ace/OS.h: - Commented and moved more code, as listed below. - - * ace/os_include/sys/types.h: - Added ACE_LACKS_SYS_MMAN_H define. - - * ace/os_include/sys/types.h: - Moved nlink_t, uid_t, gid_t, and caddr_t typedefs for - ACE_WIN32 here. - - Fri May 9 22:45:24 UTC 2003 Don Hinton - - * ace/OS.h: - Commented and moved more code, as listed below. - - * ace/os_include/signal.h: - Moved ACE_HAS_SIG_MACROS and ACE_HAS_SIG_ATOMIC_T ifdefs, - sigemptyset undefs, and SCO SIGIO def and include of - sys/regset.h here. - - * ace/os_include/stdlib.h: - Move rand_r() declaration here. - - * ace/os_include/string.h: - Moved strtok_r() declaration here. - - * ace/os_include/time.h: - Moved strptime() declaration here. - - * ace/os_include/unistd.h: - Moved ualarm(), pread/pwrite(), getpgid(), and lseek64/llseek() - declarations here. - - * ace/os_include/sys/mman.h: - Moved MAP_* and PROT_* defines for ACE_WIN32 here. - - * ace/os_include/sys/msg.h: - Moved struct msqid_sh declaration for ACE_WIN32 here. - - * ace/os_include/sys/resource.h: - Moved struct rusage declaration for ACE_WIN32 here. - - * ace/os_include/sys/select.h: - Moved NFDBITS define for ACE_WIN32 here. - - * ace/os_include/sys/shm.h: - Moved struct shmaddr declaration for ACE_WIN32 here. - - * ace/os_include/sys/socket.h: - Moved struct msghdr and related declarations here. - - * ace/os_include/sys/uio.h: - Moved [ACE_]IOV_MAX defines here. - - Fri May 9 16:10:50 UTC 2003 Don Hinton - - * ace/OS.h: - Commented and moved more code, as listed below. - - * ace/config-sunos5.5.h: - Added ACE_LACKS_STDINT_H. - - * ace/os_include/stropts.h: - Moved includes of [sys/]timod.h, sys/filio.h, and sys/sockio.h - here. - - * ace/os_include/sys/msg.h: - Moved ACE_HAS_BROKEN_MSG_H and ACE_LACKS_SYSV_MSQ_PROTOS - #ifdef's here. - - Fri May 9 01:20:49 UTC 2003 Don Hinton - - * ace/config-cygwin32.h: - Added ACE_LACKS_SYS_SEM_H macro. - - Fri May 9 00:20:32 UTC 2003 Don Hinton - - * ace/config-win32-msvc.h: - Added following ACE_LACKS macros: INTTYPES_H, STROPTS_H, - SYS_IOCTL_H, SYS_IPC_H, and SYS_SEM_H. - - * ace/SV_Semaphore_Complex.cpp: - * ace/SV_Semaphore_Simple.cpp: - Added #include "ace/os_include/sys/sem.h". - - * ace/SPIPE_Stream.h: - Added #include "ace/os_include/stropts.h". - - Thu May 8 23:24:43 UTC 2003 Don Hinton - - * ace/OS.h: - Commented out a ton of code and moved it into the following - files as noted. The commented out code will be removed once the - other platforms have been tested and we are ready to commit to - the main trunk. - - * ace/Thread.h: - Moved struct cancel_state here. - - * ace/os_include/pthread.h: - Moved pthead_self() declaration here. - - * ace/os_include/semaphore.h: - Moved struct ACE_sema_t and SEM_FAILED here. - - * ace/os_include/stdint.h: - Moved BSD style types, e.g., u_char, here. - - * ace/os_include/stropts.h: - Moved struct strrecvfd declaration here. - - * ace/os_include/time.h: - Moved ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R define and - undef of ctime when ACE_HAS_BROKEN_CTIME here. - - * ace/os_include/sys/msg.h: - Moved struct msgbuf declaration here. - - * ace/os_include/sys/resource.h: - Moved rlimit typedef here. - - * ace/os_include/sys/sem.h: - Moved struct sembuf declaration here. - - * ace/os_include/sys/stat.h: - Moved ACE_LACKS_MODE_MASK, e.g., S_IRWXG, definitions - and struct stat here. - - * ace/os_include/sys/types.h: - Moved clockid_t and dev_t typedefs and conditional include - of here. - - * ace/os_include/sys/uio.h: - Moved struct iovec and related typedefs here. - - Thu May 7 02:04:00 UTC 2003 Don Hinton - - * ace/OS.h: - Replaced Windows specific includes for ws2tcpip.h, direct.h, - process.h, and io.h with the appropriate new headers listed - below. - - * ace/config-cygwin32.h: - Added following ACE_LACKS macros: STDINT_H, INTTYPES_H, - STROPTS_H, and UCONTEXT_H. - - * ace/config-win32-msvc.h: - Added several ACE_LACKS macros: UCONTEXT_H, STDINT_H, - SYS_SELECT_H, TIME_H, SYS_RESOURCE_H, SYS_WAIT_H, - SYS_UIO_H, SYS_SOCKET_H, and NETINET_IN_H. - - * ace/os_include/unistd.h: - Added include for and on Windows, - but not WINCE. - - * ace/os_include/sys/stat.h: - Added include for on Windows, but not WINCE. - - * ace/os_include/netinet/in.h: - Added include for when ACE_HAS_WINSOCK2 is - defined and != 0. - - Wed May 7 00:02:10 UTC 2003 Don Hinton - - * ace/OS.{i,h}: - * ace/os_include/signal.h: - * ace/os_include/stropts.h: - Modified most of the #includes of systems headers to use the - ace/os_include/*.h headers, and started moving some of the - #ifdef'd code to the new headers. - - * ace/config-linux-common.h: - Removed #define ACE_LACKS_STRRECVFD and added #define - ACE_HAS_STRBUF_T. - -Tue Jun 17 06:36:39 2003 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - - Removed a hack in the VC6 projects which originally appended EXE, - DLL and LIB to the end of the project names. This caused problems - with exe dependencies and wasn't necessary in the first place. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Changed value from undef to '' to avoid using an undefined - reference in case a referenced environment variable doesn't - exist. - -Tue Jun 17 06:42:33 UTC 2003 Johnny Willemsen - - * ace/OS.h: - Only define ACE_DLL_SUFFIX and ACE_DLL_PREFIX when they are not - defined yet. This makes it easy to overrule them in the config - files like below. - - * ace/config-cygwin32.h: - Set ACE_DLL_SUFFIX to .dll for Cygwin. - - * ace/config-win32-mingw.h: - Set ACE_DLL_PREFIX to lib for MinGW. - -Tue Jun 17 05:37:12 UTC 2003 Johnny Willemsen - - * ACE-INSTALL.html: - Added remedy info - - * ace/DLL.cpp: - Removed duplicate space in debug line - - * ace/DLL_Manager.cpp: - Corrected incorrect classname in debug line and when having problems - loading a DLL, report also the name of the dll. - - * ace/Filecache.cpp: - Corrected incorrect comment - - * ace/config-win32-borland.h: - Added define ACE_NEEDS_DL_UNDERSCORE - - * ace/Lib_Find.cpp: - Removed special borland check because for borland we set now - ACE_NEEDS_DL_UNDERSCORE - -Mon Jun 16 22:24:25 2003 Balachandran Natarajan - - * ace/Priority_Reactor.h: Fixed typos in the operator= and copy - constructor. Thanks to Douglas A Stuart - for reporting the problem. - - * THANKS: Added Doug A Stuart to the hall of fame. diff --git a/ACE/ChangeLogs/ChangeLog-04a b/ACE/ChangeLogs/ChangeLog-04a deleted file mode 100644 index 0c4668dfbb2..00000000000 --- a/ACE/ChangeLogs/ChangeLog-04a +++ /dev/null @@ -1,10491 +0,0 @@ -Sat Jul 31 10:22:05 2004 Balachandran Natarajan - - * bin/make_release: - - WashU cvs is running a very old version of CVS which doesn't - support many of the old commands that we used to use. Retiring - those commands and set the working ones. - -Sat Jul 31 07:08:15 2004 Ossama Othman - - * bin/make_release: - - Improved "wrong OS" error message so that it prints what it - believes to be the OS type. - -Sat Jul 31 06:35:24 2004 Ossama Othman - - * NEWS: - - Added missing items for ACE 5.4.2. Thanks to Olli Savia for - pointing out what was missing. - -Sat Jul 31 05:47:31 2004 Balachandran Natarajan - - * Release: - * bin/make_release: - - Changed the pattern for looking at borland makefiles. - -Sat Jul 31 03:15:39 2004 Balachandran Natarajan - - * Release: Include ACE.mwc which is very important. - -Sat Jul 31 02:45:52 2004 Balachandran Natarajan - - * bin/make_release: - - Cosmetic changes to make the generated project and GNUmakefiles - look uniform. - -Fri Jul 30 17:28:44 2004 Ossama Othman - - * NEWS: Added ACE 5.4.2 noteworthy items. - -Fri Jul 30 23:29:17 2004 Balachandran Natarajan - - * bin/make_release: - - The chgrp on deuce.doc freaked out again. This check-in fixes - this problem using a hack. Cutting a beta on deuce.doc should - probably be avoided in future. We should be okay for this beta. - -Fri Jul 30 19:18:08 2004 Balachandran Natarajan - - * bin/make_release: - - Added generation of Borland makefiles along with the - release. Thanks to Johnny for reminding me on this. - -Thu Jul 29 18:19:17 2004 Ossama Othman - - * ace/config-irix6.x-common.h: - * ace/config-irix6.x-g++.h: - * ace/config-irix6.x-kcc.h: - * ace/config-irix6.x-sgic++-nothreads.h: - * ace/config-irix6.x-sgic++.h: - - IRIX configuration updates that address compile- and run-time - errors. Thanks to Kitty and Brian Waltersdorf - for supplying - the necessary changes and patch. - -Wed Jul 28 00:09:08 2004 Ossama Othman - - * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp (handle_events): - - Fixed "comparison of signed and unsigned values" warning - exhibited by CBuilderX. - -Tue Jul 27 07:11:50 2004 J.T. Conklin - - * Reverted change: - Tue Jun 8 16:27:39 2004 Steve Huston - - MPC generated Makefile.am's are not quite ready for the upcoming - beta. - -Tue Jul 27 06:18:12 UTC 2004 Johnny Willemsen - - * ace/Time_Value.h: - Reverted my change of yesterday, the Cygwin people made an error and - have corrected it already, the workaround is not needed for Cygwin - anymore. According to the Cygwin mailing list we could also have - fixed this by adding -Wl,--enable-runtime-pseudo-reloc as linker - options, maybe this works also for MinGW, we should test this - -Mon Jul 26 12:09:19 2004 Steve Huston - - * ace/Proactor.cpp: Add #include "ace/Auto_Ptr.h" to find auto_ptr<> - correctly on Visual Age C++. - -Mon Jul 26 10:34:12 UTC 2004 Johnny Willemsen - - * ace/Time_Value.h: - The latest version of the Cygwin binutils gives linker errors - on the exported static members. The workaround we used for - MinGW is now also needed for Cygwin. - -Sun Jul 25 17:04:16 2004 Ossama Othman - - * tests/Dev_Poll_Reactor_Test.cpp (server_worker): - - Removed extern "C" declaration for this function. Sun C++ 5.5 - whines about it. - -Sun Jul 25 23:18:53 2004 Balachandran Natarajan - - * Release: - * bin/make_release: - - Tag and bundle ACE_MPC along with the release. This seems to - work. Final stages of testing are on. - -Sun Jul 25 22:16:27 2004 Balachandran Natarajan - - * bin/make_release: - - Fixed some simple mistakes which prevented the release form - happening. - -Sun Jul 25 22:13:48 2004 Balachandran Natarajan - - * Release: - - Makefile with release information. - -Fri Jul 23 16:08:21 2004 Douglas C. Schmidt - - * ace/SOCK_Acceptor.cpp (accept): Added a check whether addr == 0 - before calling a method on it. Thanks to Heiko Nardmann - for reporting this. - -Fri Jul 23 10:19:00 2004 Ossama Othman - - * ace/Proactor.cpp (timeout): - - Release the asynch_timer instance from the auto_ptr<> after the - completion has been posted and prior to exiting this method - successfully. Once the completion is posted, the proactor - becomes responsible for managing the asynch_timer memory. - Addresses memory access violations revealed by a - Proactor_Timer_Test failure. Thanks to Johnny for pointing out - the failure. - -Fri Jul 23 11:38:26 2004 Balachandran Natarajan - - * bin/make_release: - - Changes to the make_release. This has not been tested - yet. Checking in to test it in a different repository. - -Fri Jul 23 13:32:12 UTC 2004 Johnny Willemsen - - * tests/SOCK_Connector_Test.cpp: - Fixed incorrect Id tag, the $ around was missing, therefore it - wasn't updated by cvs anymore. - -Thu Jul 22 14:11:24 2004 Ossama Othman - - * examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp (log): - - Fixed Unicode build errors caused by use of raw "char" string - instead of an "ACE_TCHAR" string. - -Thu Jul 22 16:47:31 2004 Steve Huston - - * examples/APG/Reactor/HAStatus.cpp: - * examples/APG/Reactor/HAStatus-AC.cpp: (from pg 151, 174) In - ClientService::handle_input(), the data was not copied to the - ACE_Message_Block, nor was the write pointer updated. Changed the - allocation to only specify the needed size, and then call - ACE_Message_Block::copy() to copy the needed data in. Thanks to - Jaroslaw Nozderko for - reporting this problem. - -Thu Jul 22 16:12:19 2004 Steve Huston - - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.cpp: Removed the call - to CWinAPp::Enable3dControls(). It's deprecated from MFC 5.0 on. - - * examples/NT_Service/ntsvc.cpp: Moved the schedule_timer() call from - the Service constructor to the svc() method. It's not needed for - simply installing and removing the service. Also, when the service - is to shut down, cancel the timer. Fixes a hanging handler crash - on shutdown. Thanks to Johann Kandlbauer for - reporting this problem. - - * THANKS: Added Johann Kandlbauer to the Hall of Fame. - -Wed Jul 21 06:39:12 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added libs that must be build first in the msvc static builds - -Mon Jul 19 21:11:18 2004 Ossama Othman - - * tests/Dev_Poll_Reactor_Test.cpp: - - Added missing "ace/OS_NS_netdb.h" include directive. Addresses - compile-time errors on our Solaris 8 build. - -Mon Jul 19 17:40:15 2004 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (bind_i): - - Adam Rymarczuk noted that crashes occurred while adding handles - to the Reactor when the pending additions exceeded what the - to_be_added set could hold. Even though logically speaking - there was space available because there were several deletions - pending, we are out of room in the to_be_added set because the - Reactor event loop hasn't run in a while (the to_be_added and - to_be_deleted sets are not processed until some thread runs the - event loop). - - The solution to fix the out-of-bounds write is to add the check: - - this->handles_to_be_added_ < this->max_size_ - - to the bind_i() method. - - Thanks to Adam Rymarczuk for - reporting this problem. This closes bug 1878. - -Mon Jul 19 09:25:58 2004 Ossama Othman - - * ace/Proactor.cpp (timeout): - - Fixed leaked ACE_Asynch_Result_Impl instance. Thanks to - Fukasawa Mitsuo for reporting the - problem. [Bug 1879] - -Mon Jul 19 06:38:00 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Instead of hard coding the makefile name, we use a new method on - the WorkspaceCreator to get the current output name. Also, when - recursing into directories, pass the current makefile name as a - parameter to make to ensure that we are sticking with the correct - line of generated makefiles. - - * bin/MakeProjectCreator/config/kokyu_dsrt_scheduler_server.mpb: - * bin/MakeProjectCreator/config/kokyu_dsrt_schedulers.mpb: - - Removed the project name from these base projects. - - * bin/MakeProjectCreator/config/client.mpb: - - Removed this file. It is no longer referenced. - -Sun Jul 18 11:33:58 2004 Douglas C. Schmidt - - * Birthday number 42!! - -Sun Jul 18 09:08:42 2004 Ossama Othman - - * bin/tao_orb_tests.lst: - - Added new PolicyFactory test to the test run list. - -Sun Jul 18 00:26:19 2004 Marek Brudka - - * ace/QtReactor.h - * ace/QtReactor.cpp - - Changed QtReactor constructors to follow the way plain - ACE_Select_Reactor is constructed. - - * tests/QtReactor.cpp - * tests/QtReactor.h - Reduced number of socket handlers for QNX NTO as Qt@NTO is - compiled with small FD_SETSIZE. - - * ace/config-qnx-rtp-62x.h - Decreased FD_SETSIZE to 1000 to better follow QNX NTO limits. - -Sat Jul 17 14:50:12 UTC 2004 Johnny Willemsen - - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.{h,cpp,i}: - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.{h,cpp,i}: - Fixed compile errors in wchar build - -Sat Jul 17 14:35:12 UTC 2004 Johnny Willemsen - - * examples/Shared_Malloc/test_position_independent_malloc.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - * examples/Shared_Malloc/test_malloc.cpp: - * examples/Shared_Malloc/test_multiple_mallocs.cpp: - Fixed compile errors in wchar build - -Sat Jul 17 12:32:12 UTC 2004 Johnny Willemsen - - * tests/NonBlocking_Conn_Test.cpp: - Replaced www.affa-az.com with www.dre.vanderbilt.edu, the first - seems to be unavailable and this results in the failing of this - test in our daily builds - -Sat Jul 17 01:34:44 2004 Marek Brudka - - * ace/README (ACE_HAS_QT): - Create section on ACE_HAS_QT and ACE_QTREACTOR_CLEAR_PENDING_EVENTS. - - * ace/QtReactor.cpp: - * ace/QtReactor.h: - Introduced ACE_QTREACTOR_CLEAR_PENDING_EVENTS switch to disable - calling ACE_Event_Handler::handle_* for handles without activity, - espacially for ACE_Acceptor::handle_input. see ace/README. - - * test/QtReactor_Test.cpp: - * test/QtReactor_Test.cpp: - Fixed bug related with bad interpretation of - ACE_Acceptor::make_svc_handler. Modified some ACE_DEBUG. - -Fri Jul 16 16:37:31 2004 Douglas C. Schmidt - - * ChangeLog: "Do not look at lazer pointer with remaining eye". - - Thanks to Russ Noseworthy - for this deep thought - ;-) - -Fri Jul 16 07:27:56 2004 J.T. Conklin - - * tests/Makefile.am: - Build UUIDTest. - - * ace/Makefile.am: - Added support for building UUID subset. - -Thu Jul 15 18:57:55 2004 Marek Brudka - - * tests/QtReactor_Test.cpp: Fixed acceptor bug for Windows Qt. - Added few debug messages. - -Thu Jul 15 07:01:15 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - Removed ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION and added - ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION checks. - - These feature-test macros are used to set ACE_TEMPLATE_METHOD_- - SPECIALIZATION and ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION as - appropriate to accommodate the template specialization syntax - required by different compilers. The former is obsolete and - has (mostly) been removed, the latter is used by TAO. - -Wed Jul 14 10:10:24 2004 Ossama Othman - - * ace/Dev_Poll_Reactor.h: - - Removed extraneous character that was inadvertently committed. - -Tue Jul 13 22:51:53 2004 Ossama Othman - - * examples/Shared_Malloc/Options.h (slave_name): - - Corrected return value of this method. "const ACE_TCHAR *", not - "const char *". - - * examples/Shared_Malloc/Options.cpp: - - Fixed mismatched wide string concatenation. - -Tue Jul 13 06:21:23 2004 Ossama Othman - - * examples/APG/Processes/Spawn.cpp (doWork): - - Fixed mismatched format specifier warning. - -Mon Jul 12 20:08:17 2004 Ossama Othman - - * ace/Dev_Poll_Reactor.h: - - 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. Issue a preprocessor error in those cases. - -Mon Jul 12 19:51:21 2004 Ossama Othman - - * examples/APG/Reactor/Client.cpp (ACE_TMAIN): - * examples/APG/Streams/Answerer.cpp (get_outgoing_message): - * examples/APG/Streams/Command.h: - * examples/APG/Streams/CommandStream.cpp (open): - * examples/APG/Streams/CommandTask.cpp (svc): - * examples/APG/Streams/CommandTasks.cpp: - * examples/APG/Streams/MessageInfo.h: - * examples/APG/Streams/RecordingDevice_Text.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i: - * examples/Service_Configurator/Misc/main.cpp (ACE_TMAIN): - * examples/Shared_Malloc/Options.h: - * examples/Shared_Malloc/Options.cpp: - * examples/Shared_Malloc/test_persistence.cpp (main): - * examples/Shared_Memory/test_MM.cpp (main): - * examples/Web_Crawler/HTTP_URL.cpp (send_request): - * examples/Web_Crawler/URL_Addr.cpp (set): - * examples/Web_Crawler/URL_Visitor.cpp (execute): - - Addressed compile-time problems in "wchar" builds (generally - incorrect conversion from wchar * to char * and/or vice versa). - -Mon Jul 12 18:29:12 2004 Johnny Willemsen - - * ace/Dev_Poll_Reactor.h: - When ACE_HAS_REACTOR_NOTIFICATION_QUEUE is defined include - ace/Unbounded_Queue. This should fix the errors in the SunCC 5.5 - build - -Mon Jul 12 20:32:25 2004 Balachandran Natarajan - - * ace/Service_Config.cpp: - - Fixed a bug with this change "Tue Jul 6 11:59:53 2004 - Balachandran Natarajan " which - prevented any of the entries in svc.conf files from being read. - -Sun Jul 11 20:26:17 2004 Johnny Willemsen - - * ACE-INSTALL.html - Added MinGW and Cygwin to the list of environments Remedy supports - -Mon Jul 12 01:31:53 2004 Marek Brudka - - * tests/QtReactor_Test.cpp: - * tests/QtReactor_Test.h: - * tests/tests.mpc: - New automatic test for testing QtReactor. This test may also - serve as an example of Qt and ACE integration. - - * ace/QtReactor.cpp: - * ace/QtReactor.h: - Many bugfixes in QtReactor. QtReactor is operational now, though - it should be rewritten to make it more efficient and improve the - clarity of sources. Moreover, valgrind reports small memory leak - in QtReactor_Test, though it's not clear now if the leak results - from QtReactor or test code. - -Sun Jul 11 16:48:12 2004 Johnny Willemsen - - * ace/SOCK_Acceptor.cpp: - Fixed compile error in commit of Douglas below - -Sun Jul 11 10:52:06 2004 Douglas C. Schmidt - - * ace/SOCK_Acceptor.cpp (shared_open): ACE_SOCK_Acceptor::shared_open() - was binding its passive-mode socket to INADDR_ANY whenever a - wildcard is specified for the port. Fixed this so that it uses - whatever the actual address is (which could very well still be - INADDR_ANY). Thanks to Kobi Cohen-Arazi - and Ed Mulholland for this solution. - -Sun Jul 11 06:33:12 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added some projects that we must buld first in a static build before - doing a full build - -Sat Jul 10 10:18:30 2004 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.h: - * ace/SSL/SSL_Asynch_Stream.h: - - Clarified "context" parameter copying semantics. - -Thu Jul 10 09:38:44 2004 Frank Hunleth - - * ace/config-openbsd.h: - - Added ACE_HAS_UCONTEXT_T for OpenBSD 3.5 and later. Thanks to - J.T. Conklin for sending the patch over - right after I upgraded to 3.5. - -Sat Jul 10 09:37:34 2004 Balachandran Natarajan - - * ACE-INSTALL.html: - - Added information on MPC for users who build from anon cvs - repository. - -Fri Jul 9 23:45:25 2004 Ossama Othman - - * ace/RB_Tree.h (ACE_RB_Tree_Base::allocator): - * ace/RB_Tree.inl: - - This non-template class method is now inlined in the RB_Tree.h - header rather than in RB_Tree.inl since that file may be - included multiple times when inlining is disabled and on - platforms where ACE_TEMPLATES_REQUIRE_SOURCE is defined. In - those platform/configuration combinations, multiple definitions - of this method occured. Placing the definition inline in the - header avoids such errors. - -Fri Jul 9 21:23:13 2004 Douglas C. Schmidt - - * ace/RB_Tree.{h,inl,cpp}: Fixed a number of bugs pertaining to - ACE_RB_Tree's failure to use its allocators correctly. Thanks - to Lothar Werzinger for these fixes. - - * ace/Global_Macros.h: Added macros for ACE_SOCK_DGRAM, - ACE_SOCK_DGRAM_MCAST, and ACE_SOCK_DGRAM_BCAST so they will work - on compilers like MIPSPro v.7.41 that don't support template - typedefs. Thanks to Brian Waltersdorf - for reporting this and - suggesting a fix. - -Thu Jul 8 16:00:29 2004 Steve Huston - - * ace/Timer_Queue_Adapters.h: If ACE_HAS_DEFERRED_TIMER_COMMANDS is - set, #include "ace/Unbounded_Queue.h" and forward declare - ACE_Command_Base, as these are needed later. - - * examples/Bounded_Packet_Relay/Bounded_Packet_Relay.mpc: - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h: Moved - the #define ACE_HAS_DEFERRED_TIMER_COMMANDS macro setting from the - .h file to the .mpc file. Helps poor Visual Age C++ deal with it - correctly when instantiating templates. - - * examples/Bounded_Packet_Relay/BPR_Drivers_T.cpp: Added #include - "ace/OS_NS_string.h" to pick up ACE_OS::memset(). - -Thu Jul 8 11:32:31 2004 Steve Huston - - * ace: Renamed config-aix-5.1.h to config-aix-5.x.h since it covers - both AIX 5.1 and 5.2. - -Thu Jul 8 08:56:53 2004 Balachandran Natarajan - - * ACE.mwc: - - A workspace file ACE alone. - -Thu Jul 8 01:09:32 2004 Douglas C. Schmidt - - * ace: Renamed config-aix5.1.h to config-aix-5.1.h to be consistent - with the other AIX config*.h files. - -Wed Jul 7 21:26:00 2004 Ossama Othman - - * ace/Dev_Poll_Reactor.h: - * ace/Dev_Poll_Reactor.cpp: - - Integrated updates from Jaroslaw Nozderko - that replace old Linux - /dev/epoll based implementation to latest sys_epoll API. - - Added missing header inclusions. - - * tests/Dev_Poll_Reactor_Test.cpp: - - Added missing "ace/OS_NS_unistd.h" include. - -Wed Jul 7 06:31:30 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Reverted my generic target change from Thu Jul 1 14:00:09 2004. - It caused make to invoke every workspace target twice. - -Wed Jul 7 00:03:34 2004 Douglas C. Schmidt - - * ace/OS_NS_errno.inl: Clarified why ACE_OS::last_error() - has a preference for errno. Thanks to Lance Paine - for motivating this. - -Tue Jul 6 16:13:31 2004 Rich Seibel - - * bin/tao_other_tests.lst: - Added the new test for nsadd change. - - * THANKS: added Dave Knox to file. - -Tue Jul 6 15:02:30 2004 Steve Huston - - * tests/run_test.lst: Added Dev_Poll_Reactor_Test. - -Tue Jul 6 11:59:53 2004 Balachandran Natarajan - - * ace/Service_Config.cpp: Reverted the following change. - - - Tue Mar 16 2004 ACE version 5.4 P4 - * ace/Service_Config.cpp: Insert component into repository before - calling init as in the init the component may access the - service repository. - - Dr. Schmidt opines that this change is wrong for the following - reasons: - - (1) If the init () call returns a -1, the component should not - be in the repository in the first place. - - (2) If the component is in the repository, there is a - possibility that another application thread could access the - component in the repository before the component is - initialized. - - - Unless we address the above concerns to satisfaction, this - change cannot be added to the repository. - -Tue Jul 6 12:03:19 2004 Steve Huston - - * netsvcs/lib/Token_Handler.cpp (parse_args): The inherited - ACE_Strategy_Acceptor::service_port_ member was removed prior - to ACE 5.3. Use a local variable instead. Thanks to Johnny - Willemsen for reporting this. - -Mon Jul 5 11:45:34 2004 Ossama Othman - - * ace/UUID.cpp (ACE_Utils): - - Corrected syntax error in ACE_Thread_ID instance. - -Mon Jul 5 10:40:59 2004 Douglas C. Schmidt - - * ace/UUID.cpp (ACE_Utils): Replaced the ACE_Thread_ID constructor - with the new one that calls the ACE_OS::thr_self() methods. - - * ace/OS_NS_Thread.{h,cpp}: Added a new constructor to - ACE_Thread_ID that calls the ACE_OS::thr_self() methods to - initialize an object, rather than having to do this externally - to the constructor. - -Mon Jul 5 14:46:12 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Removed ACE_LACKS_SYS_MSG_H and added ACE_HAS_TIMEZONE_GETTIMEOFDAY - to fix compile errors with Cygwin - -Sun Jul 4 20:30:56 2004 Douglas C. Schmidt - - * ace/OS_NS_Thread.cpp: There was some weirdness in the - to_string() method, which should have been using the local data - members for the thread id and thread handle, but instead was - calling the OS functions directly... Thanks to Michael Hollins - for reporting this. - -Sat Jul 3 06:46:06 2004 J.T. Conklin - - * ace/config-openbsd.h: - #define ACE_HAS_UCONTEXT_T. Addresses a compile-time error. - -Fri Jul 2 17:54:22 2004 Steve Huston - - * examples/APG/ThreadPools/Task_ThreadPool.cpp: Break out of - Manager::svc() when getq() fails. Thanks to J.T. Conklin - for reporting this. - -Fri Jul 2 10:42:00 2004 Douglas C. Schmidt - - * ace/Based_Pointer_T.inl (operator->): Replaced the use of - a C-style cast with a reinterpret cast. Thanks to - Rick Ohnemus for this fix, which - closes bugid 1866. - - * ACE-INSTALL.html (HREF): Fixed a typo. Thanks to - Rick Ohnemus for this fix, which - closes bugid 1867. - -Thu Jul 1 17:03:40 2004 Jaiganesh B - - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - - Updated to include files from the DAnCE directory. - -Thu Jul 1 16:59:03 2004 Jaiganesh B - - * bin/MakeProjectCreator/config/ciao_deployment_stub: - - Updated to include files from the DAnCE directory. - -Thu Jul 1 16:24:47 2004 Jaiganesh B - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - - Updated the mpb files to point to the - new DAnCE directory. - -Thu Jul 1 14:42:36 2004 Tao Lu - - * etc/ciao_assembly_deployer.doxygen: - * etc/ciao_componentserver.doxygen: - * etc/ciao_daemon.doxygen: - - Fixed some reference error. Thanks to Johnny Willemsen - for reporting these bugs. - -Thu Jul 1 14:00:09 2004 Chad Elliott - - * bin/MakeProjectCreator/config/default.rel: - - Reworded some comments. - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - - Removed an unused variable. - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Added a generic target that just passes the target on to the - children makefiles. This is the last target in the generated - workspace to avoid problems with explicitly listed targets such as - all, clean, realclean, etc. - - Also removed the deprecated "reverseclean" target. - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added support for the new MPC 'postcommand' keyword for custom - definitions. See $MPC_ROOT/README for more details. - - * include/makeinclude/wrapper_macros.GNU: - - Changed the default INSLIB location from $(ACE_ROOT)/ace to - $(ACE_ROOT)/lib. - -Thu Jul 1 13:34:51 2004 Steve Huston - - * ace/Basic_Types.h: Change the ACE_UINT64_FORMAT_SPECIFIER and - ACE_INT64_FORMAT_SPECIFIER to depend on the value of - ACE_SIZEOF_LONG. If long is an 8-byte type, then the 'l' - format modifier is correct instead of 'll'. Fixes compile - warnings from g++ in 64-bite mode. Thanks to Andre Kostur - for this fix. - -Thu Jul 1 07:54:11 2004 Douglas C. Schmidt - - * ace/OS_NS_Thread.inl: Changed the thr_min_stack() wrapper method - so it just calls the underlying OS function without using - ACE_ADAPT_RETVAL. Thanks to Mattias Nilsson - for reporting this bug and - providing a fix. - -Thu Jul 1 09:42:12 UTC 2004 Johnny Willemsen - - * html/index.html: - Fixed html tag so that ciao documentation is not on a lower level - -Thu Jul 1 09:10:12 UTC 2004 Johnny Willemsen - - * tests/run_test.pl: - When Valgrind is set, don't add valgrind exe, this is done - in PerlACE already - -Wed Jun 30 10:56:21 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_component_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_server_dnc.mpb: - - Use the DnC version of the libraries for linking and related - tasks instead of the regular core libraries. - - * bin/MakeProjectCreator/config/global.features: - - removed 'dnc = 0' nonsense. - -Wed Jun 30 08:12:12 UTC 2004 Johnny Willemsen - - * ace/SString.cpp: - To make things easier to maintenance use the new - ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION macro to check - whether we need to explicit instantiate static template members. - This macro is set for the GNU compiler for AIX, HPUX and VxWorks. - -Wed Jun 30 06:12:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_hpux_aCC.GNU: - Removed usage of inst_close, inst_auto and inst_none. These control - how templates are used, but this setup caused a crash in the HP - assigner. I have check this on the aCC mailing list and it seems that - these options are obsolete and shouldn't be used, the compiler is - already capable at handling templates for a long time. I have - done a test run with the HP aCC compiler without these options - and then the crash in the assigner is gone and we don't got any - other errors, so removed these options - -Tue Jun 29 19:30:31 2004 Ossama Othman - - * ace/Dev_Poll_Reactor.h (mask_ops, mask_ops_i): - - Added return value documentation for these methods. - - * ace/Dev_Poll_Reactor.cpp (remove_handler_i): - - Corrected problem where error condition may be incorrectly - detected in some cases. Thanks to Jaroslaw Nozderko - for pointing out the - problem. - -Tue Jun 29 08:36:12 UTC 2004 Johnny Willemsen - - * etc/tao_ifr.doxygen: - Fixed errors in the listing of the tagfiles - - * etc/ciao.doxygen: - * etc/ciao_assembly_deployer.doxygen: - * etc/ciao_componentserver.doxygen: - * etc/ciao_daemon.doxygen: - * etc/ciao_serveractivator.doxygen: - * etc/ciao_xml_helpers.doxygen: - Corrected the location where the documentation of the tagged - files can be found - -Tue Jun 29 06:55:12 UTC 2004 Johnny Willemsen - - * examples/APG/Sockets/Basic_Robust.cpp: - * examples/APG/Sockets/Iovec.cpp: - Compile fixes for unicode builds - -Mon Jun 28 23:42:18 2004 Ossama Othman - - * ace/config-lynxos.h (ACE_HAS_NONCONST_MSGSND): - - LynxOS 4's msgsnd() function accepts a non-const "void *" buffer - argument. Addresses a compile-time error. - -Tue Jun 29 06:08:12 UTC 2004 Johnny Willemsen - - * examples/APG/Naming/Nodelocal.cpp: - * examples/APG/Naming/Temperature_Grapher_Options.h: - * examples/APG/Naming/Temperature_Monitor_Options.h: - Fixed compile errors in unicode build. - -Mon Jun 28 16:39:25 2004 J.T. Conklin - - * ace/OS.h: - Removed preprocessor conditional with identical contents - for both cases. - -Mon Jun 28 16:34:29 2004 Steve Huston - - * configure.ac: If wcstok() is detected, added a check for whether it - has 2 or 3 parameters; set ACE_HAS_3_PARAM_WCSTOK if it's 3. - - * m4/subsets.m4: Added the Filecache, Metrics, and UUID components - to the selectable subsets of ACE. - - * m4/config_h.m4: Added a template for ACE_LACKS_ACE_UUID and - ACE_HAS_3_PARAM_WCSTOK. - - Note that I also removed the subset-building support from the MPC - template for automake files. So, these subset-selecting options are - still here as a placeholder for now, but will likely be removed in - the future. If subset building is required, then more effort will - need to be put into the automake support in MPC. - -Mon Jun 28 17:27:12 UTC 2004 Johnny Willemsen - - * ace/SOCK_Acceptor.h: - * ace/Sock_Connect.h: - * ace/SUN_Proactor.h: - * ace/Token.h: - * ace/Token_Collection.h: - * ace/Token_Manager.h: - Doxygen improvements - -Mon Jun 28 16:42:12 UTC 2004 Johnny Willemsen - - * etc/ciao.doxygen: - * etc/ciao_assembly_deployer.doxygen: - * etc/ciao_componentserver.doxygen: - * etc/ciao_daemon.doxygen: - * etc/ciao_serveractivator.doxygen: - * etc/ciao_xml_helpers.doxygen: - Fixed errors in the listing of the tagfiles - -Mon Jun 28 16:31:12 UTC 2004 Johnny Willemsen - - * os-patches/linux-patches.html: - * os-patches/lynxos-patches.html: - Removed these files, they are really old and outdated - -Mon Jun 28 15:55:12 UTC 2004 Johnny Willemsen - - * examples/APG/Processes/Spawn.cpp: - Fixed compile error in unicode build - -Mon Jun 28 15:46:12 UTC 2004 Johnny Willemsen - - * examples/APG/Config/HA_Status.cpp: - Fixed compile error in unicode build - -Mon Jun 28 14:08:12 UTC 2004 Johnny Willemsen - - * examples/OS/Process/imore.cpp: - Fixed compile errors in unicode build - -Mon Jun 28 12:15:12 UTC 2004 Johnny Willemsen - - * ace/Svc_Handler.h: - * ace/Synch_Options.h: - * ace/WIN32_Proactor.h: - Doxygen improvements - -Mon Jun 28 08:31:12 UTC 2004 Johnny Willemsen - - * TODO: - Zapped this file from the repo, it is really outdated. - -Mon Jun 28 08:06:12 UTC 2004 Johnny Willemsen - - * ASNMP/tests/Integer_Test.cpp: - Fixed warnings in MinGW build - -Mon Jun 28 08:01:12 UTC 2004 Johnny Willemsen - - * bin/PerlACE/Process_Unix.pm: - Removed ACE_RUN_VALGRIND_OPT for valgrind. The easiest way - to do this is to set the environment variable VALGRIND_OPTS and - then valgrind will use these settings. This way the user can - control all the options of valgrind, which options there are, - see the valgrind documentation - -Mon Jun 28 06:58:12 UTC 2004 Johnny Willemsen - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp}: - Changed COMMAND to MYCOMMAND to fix compile errors wit HPUX 11i and - GCC, COMMAND seems to be a define there. - - * bin/footprint_stats.sh: - Fixed path of ValueType library - -Sun Jun 27 21:42:47 2004 Ossama Othman - - * examples/Misc/test_XtReactor1.cpp: - * examples/Misc/test_XtReactor2.cpp: - - Fixed compile-time errors due to missing headers. - - Fixed compile-time warning about deprecated conversion from a - string constant to char *. - - * tests/TkReactor_Test.cpp: - - Fixed compile-time errors due to missing headers. - -Sun Jun 27 10:22:03 2004 Douglas C. Schmidt - - * ace/Logging_Strategy.h: Clarified the use of the ACE_Reactor. - Thanks to Randy Secrest for motivating this. - -Sat Jun 26 11:44:05 2004 Ossama Othman - - * tests/XtReactor_Test.cpp: - - Added missing #include "ace/OS_NS_unistd.h". It is needed for - the ACE_OS::sleep() declaration. - -Fri Jun 25 17:40:29 2004 Steve Huston - - * tests/Max_Default_Port_Test.cpp (client): Specify AF_INET when - giving both a port and hostname string. The listener was set up - at IPv4, so make sure this one is as well. Fixes this test's failures - when running on an IPv6-enabled system. - -Fri Jun 25 18:40:12 UTC 2004 Johnny Willemsen - - * tests/run_test.pl: - Removed all options for valgrind. The easiest way to do this is - to set the environment variable VALGRIND_OPTS and then valgrind - will use these settings. This way the user can control all the - options of valgrind, which options there are, see the valgrind - documentation - -Fri Jun 25 11:47:31 UTC 2004 Johnny Willemsen - - * ace/Configuration.h: - * ace/Local_Name_Space_T.h: - * ace/Obstack_T.h: - * ace/POSIX_Asynch_IO.h: - * ace/SOCK_IO.h: - Added @deprecated to the deprecated methods and typedefs so that - doxygen puts them on a deprecated page and marks them also visible - deprecated in the documentation itself - -Fri Jun 25 08:28:12 UTC 2004 Johnny Willemsen - - * ace/Env_Value_T.h: - Doxygen fixes - -Fri Jun 25 08:03:12 UTC 2004 Johnny Willemsen - - * ace/Based_Pointer_Repository.cpp: - * ace/Timeprobe_T.h: - Doxygen fixes - -Fri Jun 25 07:56:12 UTC 2004 Johnny Willemsen - - * ace/Timeprobe.cpp: - Fixed explicit template instantiations - -Thu Jun 24 08:55:49 2004 Ossama Othman - - * ace/config-lite.h (ACE_WIN32CALL_RETURN): - - Reverted usage of static_cast<> back to C style cast. Some - compilers on Windows fail to compile some ACE code when using - the former. - -Thu Jun 24 07:03:27 2004 J.T. Conklin - - * ace/OS_NS_dlfcn.inl: - * ace/OS_NS_signal.inl: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_sys_shm.inl: - * ace/OS_NS_sys_socket.inl: - * ace/OS_NS_unistd.inl: - * ace/config-openvms.h: - * ace/config-tandem-nsk-mips-v2.h: - Removed conditional code enabled by ACE_LACKS_POSIX_PROTOTYPES - and ACE_LACKS_SOME_POSIX_PROTOTYPES, as those macros have been - obsolete for some time. - -Thu Jun 24 06:59:29 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - Added checks for ACE_LACKS_WCSCAT, ACE_LACKS_WCSCHR, - ACE_LACKS_WCSCMP, ACE_LACKS_WCSCPY, ACE_LACKS_WCSCSPN, - ACE_LACKS_WCSDUP, ACE_LACKS_WCSICMP, ACE_LACKS_WCSLEN, - ACE_LACKS_WCSNCAT, ACE_LACKS_WCSNCMP, ACE_LACKS_WCSNCPY - ACE_LACKS_WCSNICMP, ACE_LACKS_WCSPBRK, ACE_LACKS_WCSRCHR, - ACE_LACKS_WCSSPN, ACE_LACKS_WCSSTR, ACE_LACKS_WCSTOD, - ACE_LACKS_WCSTOK, ACE_LACKS_WCSTOL, and ACE_LACKS_WCSTOUL. - -Wed Jun 23 17:31:29 2004 Steve Huston - - * ace/config-lite.h: For ACE_OSCALL[_RETURN] macros, changed the - static_cast back to a C-style cast. Not enough type information - was known in all cases. Particularly, on HP-UX, the return value - from shl_load() is a pointer to a struct, and the struct internals - aren't known. This caused aC++ to refuse to do the static_cast. - Also see: - Mon Jun 21 13:37:57 2004 Ossama Othman - -Wed Jun 23 11:25:23 2004 J.T. Conklin - - * configure.ac: - Changed to not check for SysV IPC functions unless the - cooresponding header files are present. OS X does not support - SysV IPC, but it's C library contains stubs for all the system - calls (probably left over from the BSD libc). - - * ace/README: - * ace/config-openvms.h: - * ace/os_include/sys/os_shm.h: - Removed ACE_LACKS_SHMID_DS_T. Replaced conditional definition - with an opaque declaration. - - * ace/README: - * ace/config-openvms.h: - * ace/config-win32-common: - * ace/os_include/sys/os_msg.h: - Removed ACE_LACKS_MSQID_DS_T. Replaced conditional definition - with an opaque declaration. - - * configure.ac: - * ace/README: - * ace/config-mvs.h: - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-tandem.h: - * ace/config-win32-common.h: - * ace/os_include/sys/os_msg.h: - * m4/config_h.m4: - Removed ACE_LACKS_MSGBUF_T. Previous changed removed last - instance where msgbuf was used. - - * ace/OS_NS_sys_msg.inl: - Fixed case where C-style cast was being used to cast away const - when it didn't need to. - - * ace/OS_NS_sys_msg.inl: - Removed conditional code enabled by ACE_LACKS_POSIX_PROTOTYPES - and ACE_LACKS_SOME_POSIX_PROTOTYPES, as those macros have been - obsolete for some time. - -Wed Jun 23 11:24:39 2004 Ossama Othman - - * ace/OS_NS_macros.h: - - Missed one static_cast<> reversion in the Win32 case. See the - "Tue Jun 22 12:33:49 2004 Ossama Othman - " ChangeLog entry for details. - -Wed Jun 23 12:18:39 2004 Steve Huston - - * ace/String_Base.{h inl}: Added new method, fast_clear(), which - sets the string length to 0. Doesn't release string-allocated - memory, but if the memory was externally supplied, it is no - longer referenced from the string object. Thanks to - Sergei Kuchin for contributing this - method. - - * tests/SString_Test.cpp: Added smoke test for fast_clear(). - - * THANKS: Added Sergei Kuchin to the Hall of Fame. - -Wed Jun 23 14:51:12 UTC 2004 Johnny Willemsen - - * bin/footprint_stats.sh: - Added strategies library and corrected locations of valuetype - and rtscheduler library - -Wed Jun 23 06:52:12 UTC 2004 Johnny Willemsen - - * ace/config-lite.h: - * ace/README: - Changed ACE_HAS_MEMORY_PROFILER to ACE_INITIALIZE_MEMORY_BEFORE_USE. - The last says better what we do. This define is then set when - running with valgrind or purify. Thanks to Chris Cleeland for - the suggestion - -Tue Jun 22 16:54:35 2004 J.T. Conklin - - * configure.ac: - Changed ACE_HAS_LIMITED_RUSAGE_T and ACE_HAS_BROKEN_SETRLIMIT - checks to include before . - Changed ACE_HAS_BROKEN_WRITEV check to use !ACE_LACKS_UNISTD_H - instead of ACE_HAS_UNISTD_H (which is never set). - -Tue Jun 22 13:54:36 2004 J.T. Conklin - - * ace/config-macosx-panther.h: - * ace/config-macosx.h: - Changed to define only ACE_HAS_TIMEZONE_GETTIMEOFDAY. - ACE_HAS_VOIDPTR_GETTIMEOFDAY had also been defined. - -Tue Jun 22 12:33:49 2004 Ossama Othman - - * ace/OS_NS_macros.h (ACE_SOCKCALL_RETURN): - - Reverted my change that turned the C style cast into a - static_cast<> in the Win32 case. ACE uses Win32 HANDLES (a - void * type), and MSVC++ 6 won't accept a static_cast<> from a - pointer type to an integral type. - -Tue Jun 22 07:27:27 2004 J.T. Conklin - - * configure.ac: - * ace/OS_NS_sys_time.inl: - * ace/README: - * ace/config-cygwin32.h: - * ace/config-hpux-10.x.h: - * ace/config-hpux-11.00.h: - * ace/config-hpux11.h: - * ace/config-linux-common.h: - * ace/config-macosx-panther.h: - * ace/config-macosx.h: - * ace/config-rtems.h: - * ace/config-sco-4.2-nothread.h: - * ace/config-sco-5.0.0-mit-pthread.h: - * ace/config-sunos4-lucid3.2.h: - * ace/config-sunos4-sun3.x.h: - * ace/config-sunos4-sun4.1.4.h: - * ace/config-sunos4-sun4.x.h: - * ace/config-tandem.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - * ace/os_include/sys/os_time.h: - * m4/config_h.m4: - Renamed ACE_HAS_SUNOS4_GETTIMEOFDAY to ACE_HAS_VOIDPTR_GETTIMEOFDAY. - Changed canned SunOS 4 configs to use ACE_HAS_TIMEZONE_GETTIMEOFDAY, - as SunOS wasn't changed to use a void * until SunOS 5/Solaris 2. - -Tue Jun 22 13:57:12 UTC 2004 Johnny Willemsen - - * ace/config-lite.h: - * ace/README: - I am testing with valgrind. This also detects unitialized memory - like purify and in TAO we use ACE_HAS_PURIFY to explicitly - initialize memory to prevent errors from Purify. To prevent that - we check for different tools inside the TAO code, introduced - ACE_HAS_MEMORY_PROFILER which will be used within TAO, this is then - set when ACE_HAS_PURIFY or ACE_HAS_VALGRIND is set. If we need some - more special things for the tools, we can easily set a new define - based on ACE_HAS_PURIFY and ACE_HAS_VALGRIND. - - * ace/Asynch_Acceptor.h: - Doxygen update - -Tue Jun 22 12:49:31 UTC 2004 Johnny Willemsen - - * bin/performance_stats.sh: - Also run the AMH_Single_Threaded performance test - - * html/Stats/detailed_performance.shtml: - Added the AMH_Single_Threaded performance test. Now we can monitor - the performance of AMH also. This is in preparation of some changes - that add the ability to use allocators for the AMH Response Handlers - which should have a positive effect on the performance. With - AMH on the scoreboard we can monitor it directly. - -Tue Jun 22 08:05:31 UTC 2004 Johnny Willemsen - - * bin/PerlACE/Process_Unix.pl: - When using valgrind things go slower, so added code to set the - delay factor, so that timeouts get longer. We start with 5, maybe - that is enough. Also corrected the setting of the timeout for - purify - -Tue Jun 22 07:07:31 UTC 2004 Johnny Willemsen - - * bin/PerlACE/Process_Unix.pl: - Added the option to use valgrind as memory test tool. This can - be enabled by setting the environment variable ACE_RUN_VALGRIND_CMD - to the valgrind version you want to start. If this is set, then - valgrind is used with the default options "-q --leak-check=yes - --trace-children=yes". This can be overruled by setting the - environment variable ACE_RUN_VALGRIND_OPT, if that is set - we use those options, if the default options are not complete, - feel free to add new ones. - -Mon Jun 21 23:19:38 2004 Ossama Othman - - * bin/MakeProjectCreator/config/ftorbutils.mpb: - - This base project requires minimum CORBA support to be disabled. - Projects that depend on these base projects must be aware of - this. Added an "avoids += minimum_corba" entry. - -Mon Jun 21 22:31:45 2004 J.T. Conklin - - * ace/config-freebsd.h: - * ace/config-netbsd.h: - * ace/config-openbsd.h: - Changed to define ACE_HAS_TIMEZONE_GETTIMEOFDAY instead of - ACE_HAS_SUNOS4_GETTIMEOFDAY. - -Mon Jun 21 13:49:22 2004 Ossama Othman - - * ace/OS_NS_macros.h: - - Use a static_cast<> instead of a C style cast. ANSI C++ casts - are the preferred method of casting in ACE. - -Mon Jun 21 13:37:57 2004 Ossama Othman - - * ace/config-lite.h: - - Removed versions of ACE_OSCALL and ACE_OSCALL_RETURN macros that - restarted the given operation when ACE_HAS_SIGNAL_SAFE_OS_CALLS - was defined. That capability was never enabled by any of our - supported platforms. In fact, some parts of ACE would not - function properly when that ability was enabled. Furthermore, - they assumed that ability to restart system calls was determined - statically. That assumption does not hold for modern platforms, - where that ability is determined dynamically at run-time. - Thanks to J.T. Conklin for pointing out the problems with - defining ACE_HAS_SIGNAL_SAFE_OS_CALLS. - - These changes also fix a problem with self-assignment of the - variable used to store the return value of an operation wrapped - within an ACE_ADAPT_RETVAL macro (e.g. ACE_OSCALL_RETURN - (ACE_ADAPT_RETVAL (..., ace_result_),...). Thanks to Andrew - G. Harvey for poiniting out the - self-assignment. - - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_Thread.inl: - * ace/OS_NS_signal.inl: - * ace/OS_NS_unistd.inl: - - Updated ACE_OSCALL_RETURN(ACE_ADAPT_RETVAL()) macro calls to use - a locally declared result variable instead of the one that - existed in the ACE_OSCALL_RETURN macro. The latter no longer - exists. - - * ace/README: - - Removed documentation for ACE_HAS_SIGNAL_SAFE_OS_CALLS macro. - It is no longer used. - -Mon Jun 21 13:13:09 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - Removed ACE_HAS_SIGNAL_SAFE_OS_CALLS test. The macro has - been deprecated. - -Mon Jun 21 13:21:38 2004 Steve Huston - - * ace/String_Base.cpp (resize): Don't free() the existing buffer if - release_ is 0. Caller controls the memory area and freeing it may - be a very bad thing to do. The larger allocated area causes the - release_ flag to be set to 1. Thanks to Kelly Hickel - for reporting this. - -Mon Jun 21 12:45:20 2004 Steve Huston - - * ace/SSL/SSL_SOCK_Connector.cpp: Added #include "ace/OS_NS_errno.h" - so Visual Age C++ can see ACE_OS::set_errno_to_last_error(). - -Mon Jun 21 09:17:56 2004 Douglas C. Schmidt - - * ace/OS_NS_Thread.cpp (thr_create): Only try to close down the - tmp_handle if it's not NULL. Thanks to chdommreis@t-online.de - for reporting this and providing a fix. This fixes bugid 1859. - -Mon Jun 21 11:56:31 UTC 2004 Johnny Willemsen - - * tests/run_test.pl: - Enabled leak check and tracing of child processes for Valgrind. - -Mon Jun 21 10:19:31 UTC 2004 Johnny Willemsen - - * tests/run_test.pl: - Added new config Valgrind to be able to run the tests under - Valgrind. - -Sun Jun 20 22:09:58 2004 Ossama Othman - - * m4/ace.m4 (ACE_CONFIGURATION_OPTIONS): - * tests/Makefile.am: - - Added support for conditionally building IPv6 tests. - - * tests/Dirent_Test.cpp (TEST_ENTRY): - - Changed filename detected in test to one that always exists in - configure-based VPATH builds (run_test.lst). Addresses a - problem where the test would fail since the file in question - only existed in the source directory. Thanks to J.T. Conklin - for reporting this problem. - -Sun Jun 20 23:35:05 UTC 2004 Don Hinton - - * doc/ACE-subsetting.html: - Updated to reflect the current subsetting work we've been doing - over the last year or so. This is a first cut, and will be - revised before the release. - -Sun Jun 20 13:03:19 2004 Ossama Othman - - * bin/MakeProjectCreator/config/loadbalancing.mpb: - - TAO's load balancing service requries AMI support, not just the - messaging library. Added missing "requires += ami". - -Sun Jun 20 12:33:11 2004 Ossama Othman - - * bin/MakeProjectCreator/config/ftrteventchannel.mpb: - - The FTRT_EventChannel requires CORBA messaging support. Added - missing "requires += corba_messaging" to this base project. - -Sun Jun 20 12:17:08 2004 Ossama Othman - - * bin/MakeProjectCreator/config/event.mpb: - * bin/MakeProjectCreator/config/ftrtevent.mpb: - - These base projects require minimum CORBA support to be - disabled. Projects that depend on these base projects must be - aware of this. Added an "avoids += minimum_corba" entry. - -Sun Jun 20 18:27:12 UTC 2004 Johnny Willemsen - - * examples/APG/ThreadManagement/Priorities.cpp: - Replaced include of ace/OS.h with ace/OS_unistd.h and fixed typo - in macro - -Sun Jun 20 17:59:12 UTC 2004 Johnny Willemsen - - * ace/TLI_Acceptor.cpp: - Fixed compile warning in Tru64 build - -Sun Jun 20 09:39:58 2004 J.T. Conklin - - * ace/OS_NS_time.h: - Changed to call gettimeofday() for timezone information on - OpenBSD systems again, it turns out it does not export the - global timezone variable. - -Sun Jun 20 14:39:12 UTC 2004 Johnny Willemsen - - * ace/FILE.{h,cpp}: - Removed deprecated position() set method, use seek() - Removed deprecated position() get method, use tell() - - * ace/Timer_Queue_Adapters.{h,inl}: - Removed the deprecated timer_queue() method that returns a - reference - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp: - Don't use the deprecated timer_queue() that returns a - reference - - * examples/APG/Signals/SigInfo.cpp: - Use ACE_OS::strerror instead of strerror directly. - - * examples/IPC_SAP/FILE_SAP/client.cpp: - Don't use the ACE_FILE deprecated methods - -Sun Jun 20 00:25:17 2004 J.T. Conklin - - * ace/OS_NS_time.inl: - Instructions in powerpc inline assembly code introduced in: - Fri Jun 18 12:42:52 2004 J.T. Conklin - need to be separated by newlines, not semicolons, which may be - interpreted as comment characters. - -Sat Jun 19 07:11:48 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - * ace/README: - * ace/config-chorus.h: - * ace/config-cygwin32.h: - * ace/config-integritySCA.h: - * ace/config-macosx-panther.h: - * ace/config-macosx.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-rtems.h: - * ace/config-tandem.h: - * ace/config-vxworks5.x.h: - Changed ACE_LACKS_SYSV_MSG_H to ACE_LACKS_SYS_MSG_H. Both - were used in various places throughout ACE. - -Sat Jun 19 11:23:28 2004 Balachandran Natarajan - - * docs/minimumTAO.html: - - This document doesn't belong in ACE. Moving it to TAO/docs. - -Sat Jun 19 13:38:12 UTC 2004 Johnny Willemsen - - * examples/APG/Signals/SigInfo.cpp: - Use ACE_DEBUG to output a message that fork is needed, and - don't include ace/streams.h, it is not needed - -Sat Jun 19 13:29:12 UTC 2004 Johnny Willemsen - - * ace/High_Res_Timer.h: - Improved doxygen tags - -Sat Jun 19 12:48:12 UTC 2004 Johnny Willemsen - - * ace/OS_String.h: - Removed commented out code - -Sat Jun 19 12:26:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - Fixed small issues - -Sat Jun 19 07:39:12 UTC 2004 Johnny Willemsen - - * ace/QoS/SOCK_Dgram_Mcast_QoS.{h,cpp,i}: - Changed checks for ACE_LACKS_INLINE_FUNCTIONS with __ACE_INLINE__ in - the h/cpp files. In the .i files changed ASYS_INLINE with ACE_INLINE. - -Sat Jun 19 07:31:12 UTC 2004 Johnny Willemsen - - * ace/SSL/SSL_SOCK_Acceptor.cpp: - Added missing include for non inlined builds - -Sat Jun 19 07:24:12 UTC 2004 Johnny Willemsen - - * ace/SSL/SSL_SOCK.{h,cpp,i}: - * ace/SSL/SSL_SOCK_Acceptor.{h,cpp,i}: - * ace/SSL/SSL_SOCK_Connector.{h,cpp,i}: - * ace/SSL/SSL_SOCK_Stream.{h,cpp,i}: - Changed checks for ACE_LACKS_INLINE_FUNCTIONS with __ACE_INLINE__ in - the h/cpp files. In the .i files changed ASYS_INLINE with ACE_INLINE. - -Fri Jun 18 18:36:39 2004 Steve Huston - - * docs/index.html: Changed title of the ACE-tutorial.pdf/ps link to - say it's a tutorial, not the ACE programmer's guide, so as not to - confuse this with "The ACE Programmer's Guide" (APG). Thanks to - Johnny Willemsen for pointing out this confusion. - - * docs/ACE-tutorials.html: Removed. All of the pertinent information - is on the index.html page. - -Fri Jun 18 12:42:52 2004 J.T. Conklin - - * ace/OS_NS_time.cpp: - * ace/OS_NS_time.inl: - * ace/OS_NS_time.h: - Changed GNU C version of readPPCTimeBase() so it can be - inlined in ACE_OS::gethrtime() and compiled on Mac OS X - where "r" register prefixes are required in inline asm. - -Fri Jun 18 12:04:35 2004 J.T. Conklin - - * ACE_INSTALL.html: - Added description of --enable-ipv6 and --enable-ipv4-ipv6 - flags. - - * m4/ace.m4: - Added --enable-ipv6 flag which sets ACE_HAS_IPV6. - Added --enable-ipv4-ipv6 flag which sets - ACE_USES_IPV4_IPV6_MIGRATION. - - * m4/config_h.m4: - Added ACE_USES_IPV4_IPV6_MIGRATION template. - -Fri Jun 18 10:23:49 2004 Ossama Othman - - * ACE-INSTALL.html: - - Updated some more URLs, and improved formatting of some text. - -Fri Jun 18 11:49:23 2004 Balachandran Natarajan - - * docs/ACE-inheritance.pdf: - * docs/ACE-inheritance.ps.gz: - - These are simply out dated files. Doxygen produces better - things. Users should refer to doxygen and not this. - -Fri Jun 18 11:47:22 2004 Balachandran Natarajan - - * docs/ACE-SSL.html: - * docs/ACE-bug-process.html: - * docs/ACE-development-process.html: - * docs/ACE-guidelines.html: - * docs/ACE-porting.html: - * docs/msvc_notes.txt: - * docs/usage-bugzilla.html: - - Updated all these documents with new links. Tried removing - outdated information as much as possible. - -Fri Jun 18 10:12:47 2004 Balachandran Natarajan - - * ACE-INSTALL.html: - - Updated ACE-INSTALL with information about a bunch of things - related to MPC. Haven't updated anything about using MPC other - than pointing out the documentation. Need to see what else - should be added. - - * docs/msvc_notes.txt: - - Updated this file about the location of libraries. - - * include/makeinclude/wrapper_macros.GNU: - - Added documentation for the option stlport=1 which can be used - in platform_macros.GNU. - -Fri Jun 18 11:08:12 UTC 2004 Johnny Willemsen - - * ace/config-lite.h: - Removed setting ASYS_INLINE, we don't use it anymore, instead we - use ACE_INLINE - -Fri Jun 18 10:31:12 UTC 2004 Johnny Willemsen - - * ace/config-openvms.h: - Removed all commented out defines - - * ace/IOStream_T.cpp: - Added include of ace/OS_Memory.h - -Thu Jun 17 21:54:37 2004 J.T. Conklin - - * ace/configure.ac: - Changed ACE_LACKS_UNIX_DOMAIN_SOCKETS check to #include - before ; it is required by many - systems. - -Thu Jun 17 22:10:18 2004 Douglas C. Schmidt - - * ace/Timer_Wheel_T.cpp: - - Fixed recalc_earliest() to remember the spoke with the earliest - time not from the current wheel iteration. If the entire wheel - is searched and no earliest time from the current iteration is - found, then the remembered spoke is the earliest_spoke_. Thanks - to Ken Descoteaux for this fix. This fixes - bugid 1853. - -Thu Jun 17 12:48:09 2004 J.T. Conklin - - * ace/configure.ac: - Added small part of change: - Wed Jun 16 16:00:52 2004 J.T. Conklin - that was not committed at the time. - - * ace/OS_NS_time.h: - Changed to avoid use of gettimeofday() for timezone info - on *BSD systems. Changed to always call tzset() for all - systems that get timezone info from global variable. - This fixes bugzilla bug 1845. - -Thu Jun 17 09:19:45 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - Added checks for pthread_suspend(), pthread_suspend_np(), - pthread_continue(), pthread_continue_np(), and pthread_ - resume_np() which set ACE_HAS_PTHREAD_SUSPEND, etc... - - * ace/OS_NS_Thread.inl: - Changed to call pthread_suspend_np(), pthead_continue_np(), or - pthread_resume_np() as appropriate, depending on the values of - the above macros. - This fixes bugzilla bug 1839. - -Thu Jun 17 11:52:39 2004 Steve Huston - - * ace/SSL/SSL_SOCK_Stream.cpp: - * examples/C++NPv2/AC_CLient_Logging_Daemon.cpp: - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp: - * tests/CDR_Array_Test.cpp: - * tests/CDR_File_Test.cpp: - * tests/CDR_Test.cpp: - * tests/Config_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: - Added needed includes to fix AIX Visual Age C++ compile problems. - -Thu Jun 17 09:43:49 2004 Douglas C. Schmidt - - * docs/ACE-porting.html: Updated this file so that it mentions - CIAO and also provides additional information on porting - logistics for people who want to contribute a port back to the - DOC group. Thanks to Thomas Rohner - for motivating this. - -Thu Jun 17 09:20:12 UTC 2004 Johnny Willemsen - - * examples/Bounded_Packet_Relay/BPR_Drivers_T.cpp: - Added missing include to fix compile error in HPUX build - -Wed Jun 16 16:00:52 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - Added check for getifaddrs() which sets ACE_HAS_GETIFADDRS if it - does not exist. - - * configure.ac: - * m4/config_h.m4: - * ace/OS_NS_Thread.inl: - * ace/README: - Added new config knob ACE_LACKS_RWLOCKATTR_PSHARED for those - systems which support thread but not processes scope rwlocks. - This fixes bugzilla bug 1841. - - * configure.ac: - * m4/config_h.m4: - * ace/README: - Removed check for pthread_suspend() and pthread_continue() in - ACE_HAS_PTHREADS_UNIX98_EXT test as these interfaces were not - part of the Version 2 of the Single Unix Specification - (aka UNIX98). - This fixes bugzilla bug 1840. - -Wed Jun 16 16:51:52 2004 Steve Huston - - * ace/SSL/SSL_Context.h: Changed include of os_include/os_pthread.h to - OS_NS_Thread.h so ACE_mutex_t is picked up correctly on all - platforms. - - * ace/SSL/SSL_SOCK_Acceptor.cpp: - * ace/SSL/SSL_SOCK_Connector.cpp: - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp: - * tests/SOCK_Test_IPv6.cpp: - * tests/SOCK_Send_Recv_Test_IPV6.cpp: - * tests/Proactor_Test_IPV6.cpp: Added missing #include directives - to fix compiler errors. - -Wed Jun 16 15:02:39 2004 Steve Huston - - * ace/Asynch_Acceptor.cpp: - * ace/Get_Opt.cpp: - * ace/MEM_Acceptor.cpp: - * ace/SOCK_SEQPACK_Acceptor.cpp: - * ace/SOCK_SEQPACK_Association.cpp: - * ace/SOCK_SEQPACK_Connector.cpp: - * ACEXML/common/SAXExceptions.cpp: - * ACEXML/common/URL_Addr.cpp: - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * examples/C++NPv2/display_logfile.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp: - * examples/IPC_SAP/TLI_SAP/ftp-client.cpp: - * examples/Logger/Acceptor-server/server_loggerd.cpp: - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp: - * examples/Synch/proc_sema.cpp: - * netsvcs/lib/Client_Logging_Handler.cpp: - * performance-tests/Misc/basic_perf.cpp: - * performance-tests/TCP/tcp_test.cpp: - * performance-tests/UDP/udp_test.cpp: Added missing #include - directives to fix compile errors on AIX Visual Age C++. - - * ace/Flag_Manip.h: Added #include "ace/os_include/os_fcntl.h" to - make the values for ACE_Flag_Manip available to callers. - - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Asynch_IO.cpp: Added #include "ace/Flag_Manip.h" and - changed ACE::set_flags() to ACE_Flag_Manip::set_flags(). - - * Kokyu/DSRT_Dispatcher_Impl_T.h: Added #includes to pick up needed - declarations for ACE_SYNCH_RECURSIVE_MUTEX. - -Wed Jun 16 12:48:21 2004 Steve Huston - - * ace/OS_NS_unistd.inl (access): Fixed the ACE_HAS_WINCE part of this - to check the opened handle for 0, not ACE_INVALID_HANDLE, since it's - a FILE *, not a handle. With this fix, the WinCE part and the VxWorks - part are the same, so they were combined. - - * tests/OS_Test.cpp: Added access_test() to test ACE_OS::access() - features. - -Wed Jun 16 06:58:33 2004 J.T. Conklin - - * ace/Makefile.am: - Fixed typo. - -Wed Jun 16 12:23:12 UTC 2004 Johnny Willemsen - - * docs/ACE-bug-process.html: - * docs/ACE-development-process.html: - Corrected links for commercial support and always use the generic - page with all commercial support companies - - * docs/ACE-porting.html: - Updated that ACE_OS is now a namespace, not a class - -Wed Jun 16 12:05:12 UTC 2004 Johnny Willemsen - - * docs/ACE-porting.html: - Updated, we now require C++ namespace and ANSI casts. - -Wed Jun 16 10:38:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_ctype.{h,inl}: - Added ace_isalnum, ace_isalpha, ace_iscntrl, ace_isdigit, - ace_isgraph, ace_islower, ace_ispunct, ace_isupper, ace_isxdigit, - and to_upper. This fixes bugzilla [1762]. - - * ace/config-freebsd.h: - * ace/config-linux-common.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-vxworks5.x.h: - Added define ACE_LACKS_TOWUPPER, these files already set - ACE_LACKS_TOWLOWER so I assume that they are the ones - that also lack towlower. - - * ace/Get_Opt.cpp: - Use ACE_OS::isalnum instead of isalnum directly to fix compile - errors in Tru64 build. - -Wed Jun 16 10:00:12 UTC 2004 Johnny Willemsen - - * bin/Service_Config.perl: - Zapped this file, it converts very old ACE code in a little bit - newer code and we don't need to do this anymore - -Wed Jun 16 09:59:12 UTC 2004 Johnny Willemsen - - * bin/rename-ace.pl: - Zapped this file, we don't use it and there is no need to keep it - -Wed Jun 16 09:57:12 UTC 2004 Johnny Willemsen - - * bin/make_pretty.pl: - Zapped this file from the repo, we have now autobuild for this - -Wed Jun 16 09:54:12 UTC 2004 Johnny Willemsen - - * bin/generate_compile_stats.sh: - Let the default yrange be 5 seconds, 10 seconds is too much for ACE, - the graphs are hard to read. - -Wed Jun 16 08:00:12 UTC 2004 Johnny Willemsen - - * ace/*.{h,cpp,i,inl}: - * ace/Makefile.ac: - * ace/ace.mpc: - Replaced all .i files with its .inl version. Cvs can't handle - rename, so the .i file is removed and the same contents is - added as .inl, so if you need history, it can be that you - have to look at the .i file for the complete history. Updated - the .h and .cpp files for the needed includes. - -Tue Jun 15 23:31:51 2004 J.T. Conklin - - * configure.ac: - Changed ACE_HAS_UCONTEXT_T test to include and - (if it exists). - This fixes bugzilla bug 1844. - - * configure.ac: - Set ACE_SIG_MACROS if any of sigemptyset, sigdelset, sigaddset, - sigdelset, or sigismember are macros. - This fixes bugzilla bug 1836. - -Wed Jun 16 06:13:12 UTC 2004 Johnny Willemsen - - * ace/TLI.h: - * ace/TLI_Acceptor.cpp: - * ace/TLI_Connector.cpp: - * ace/TLI_Stream.cpp: - Added missing includes - -Tue Jun 15 22:11:09 2004 Ossama Othman - - * examples/IOStream/client/iostream_client.cpp: - - Added missing "ace/OS_NS_stdlib.h" and "ace/OS_NS_unistd.h" - includes. - -Tue Jun 15 20:27:06 2004 J.T. Conklin - - * ace/os_include/sys/os_select.h: - Added #include of os_unistd.h to bring in select() declaration - on 4.4BSD derived systems. - This fixes bugzilla bug 1842. - - * configure.ac: - * ace/config_h.m4: - Added check for gethostent which sets ACE_LACKS_GETHOSTENT if - it does not exist. - This fixes bugzilla bug 1838. - - * configure.ac: - * ace/config_h.m4: - Changed check for to set ACE_LACKS_STROPTS_H if it - doesn't exist. - This fixes bugzilla bug 1837. - - * ace/Log_Msg.cpp: - Avoid declaring sys_nerr on those targets which provide one in - their system headers to avoid conflicts due to differing const - qualification, etc. - This fixes bugzilla bug 1843. - -Tue Jun 15 12:18:12 UTC 2004 Johnny Willemsen - - * ace/Local_Name_Space_T.cpp: - Added missing include - -Tue Jun 15 08:09:12 UTC 2004 Johnny Willemsen - - * examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp: - Added missing include - -Mon Jun 14 16:46:35 2004 Carlos O'Ryan - - * include/makeinclude/rules.local.GNU: - * bin/DependencyGenerator/GNUObjectGenerator.pm: - * bin/DependencyGenerator/GNUDependencyWriter.pm: - Generated dependencies that do not depend on the particular - values of VDIR, VSHDIR, OBJEXT and SOEXT at the time of the - dependency generation. Using the values is silly, as they can - easily be expanded when the dependencies are used. This new - style makes dependencies "portable." - - * bin/DependencyGenerator/Preprocessor.pm: - Only consider lines that match '^\s*#', preprocessor directives - follow that pattern. The old code could have added #includes - inside comments (except that most comments were stripped.) - Reduce the depth of those nested ifs() a little bit. - -Mon Jun 14 20:16:12 UTC 2004 Johnny Willemsen - - * ace/TLI_Acceptor.h: - Added missing ; - -Mon Jun 14 19:26:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - Updated supported platforms and Borland instructions - -Mon Jun 14 13:58:02 2004 Douglas C. Schmidt - - * docs/ACE-guidelines.html: Updated the guidelines to - recommend the use of ".inl" suffices for inline files, rather - than ".i". Thanks to Patrick Bennett - for motivating this change. - -Mon Jun 14 18:37:12 UTC 2004 Johnny Willemsen - - * performance-tests/Misc/preempt.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - * performance-tests/TCP/tcp_test.cpp: - * performance-tests/UDP/udp_test.cpp: - Added missing include for non-inlined builds. - -Mon Jun 14 18:28:12 UTC 2004 Johnny Willemsen - - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Reactive_Logging_Server.h: - * examples/C++NPv1/Reactive_Logging_Server_Ex.h: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: - * examples/Mem_Map/IO-tests/test_io.cpp: - * examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i: - * examples/Shared_Malloc/test_malloc.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: - * examples/Threads/future1.cpp: - * examples/Threads/future2.cpp: - * netsvcs/lib/Client_Logging_Handler.cpp: - * netsvcs/lib/clients/Logger/direct_logging.cpp: - Added missing include for non-inlined builds. - -Mon Jun 14 17:45:12 UTC 2004 Johnny Willemsen - - * examples/APG/ThreadPool/TP_Reactor.cpp: - Added missing include for non-inlined builds. - -Mon Jun 14 16:49:12 UTC 2004 Johnny Willemsen - - * ACEXML/common/Mem_Map_Stream.cpp: - * apps/Gateway/Gateway/Conrete_Connection_Handlers.cpp: - * apps/Gateway/Gateway/Gateway.cpp: - * apps/JAWS/client/Blobby/blobby.cpp: - * apps/drwho/HT_Client.cpp: - * apps/drwho/HT_Server.cpp: - * apps/drwho/PMC_All.cpp: - * apps/drwho/PMC_Flo.cpp: - * apps/drwho/PMC_Ruser.cpp: - * apps/drwho/PMC_Usr.cpp: - * apps/drwho/PMS_All.cpp: - * apps/drwho/PMS_Flo.cpp: - * apps/drwho/PMS_Ruser.cpp: - * apps/drwho/PMS_Usr.cpp: - * apps/drwho/PM_Client.cpp: - * apps/drwho/server.cpp: - Added missing include for non-inlined builds. - -Mon Jun 14 15:11:12 UTC 2004 Johnny Willemsen - - * examples/APG/Shared_Memory_Pool_Growth.cpp: - Added missing include for non-inlined builds. - -Mon Jun 14 15:08:12 UTC 2004 Johnny Willemsen - - * tests/FIFO_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/MT_Reactor_Upcall_Test.cpp: - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/SOCK_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: - * tests/Signal_Test.cpp: - * tests/TP_Reactor_Test.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - Added missing include for non-inlined builds. - -Mon Jun 14 14:43:12 UTC 2004 Johnny Willemsen - - * ace/Handle_Gobbler.i: - * tests/Conn_Test.cpp: - Added missing include - -Mon Jun 14 14:36:12 UTC 2004 Johnny Willemsen - - * ace/TTY_IO.cpp: - Added missing include - -Mon Jun 14 09:22:53 2004 Patrick Bennett - - * ace/Dirent_Selector.cpp: - ACE_Dirent_Selector destructor now calls internal close() method. - Previously, the memory allocated by ACE_Dirent_Selector would be - leaked upon clean destruction or exception unwind unless close() - was explicitly called. - -Mon Jun 14 14:08:12 UTC 2004 Johnny Willemsen - - * ace/POSIX_Proactor.cpp: - Added missing include - -Mon Jun 14 13:59:12 UTC 2004 Johnny Willemsen - - * ace/ACE.cpp: - * ace/ACE.h: - * ace/ACE.i: - * ace/Asynch_Acceptor.cpp: - * ace/Condition_Recursive_Thread_Mutex.cpp: - * ace/Condition_Recursive_Thread_Mutex.h: - * ace/Configuration.cpp: - * ace/DEV.cpp: - * ace/DEV.h: - * ace/DEV.i: - * ace/DEV_Connector.cpp: - * ace/DEV_Connector.h: - * ace/DEV_Connector.i: - * ace/DEV_IO.cpp: - * ace/DEV_IO.h: - * ace/DEV_IO.i: - * ace/Date_Time.cpp: - * ace/Date_Time.h: - * ace/Date_Time.i: - * ace/Dirent_Selector.inl: - * ace/Event_Handler.i: - * ace/FIFO.cpp: - * ace/FIFO_Recv.cpp: - * ace/FIFO_Recv.h: - * ace/FIFO_Recv.i: - * ace/FIFO_Recv_Msg.cpp: - * ace/FIFO_Recv_Msg.h: - * ace/FIFO_Recv_Msg.i: - * ace/FIFO_Send.cpp: - * ace/FIFO_Send.h: - * ace/FIFO_Send.i: - * ace/FIFO_Send_Msg.cpp: - * ace/FIFO_Send_Msg.h: - * ace/FIFO_Send_Msg.i: - * ace/FILE.cpp: - * ace/FILE.h: - * ace/FILE.i: - * ace/FILE_Connector.cpp: - * ace/FILE_Connector.h: - * ace/FILE_Connector.i: - * ace/FILE_IO.cpp: - * ace/FILE_IO.h: - * ace/FILE_IO.i: - * ace/Filecache.cpp: - * ace/FlReactor.h: - * ace/Flag_Manip.cpp: - * ace/Flag_Manip.h: - * ace/Flag_Manip.i: - * ace/Framework_Component_T.cpp: - * ace/Framework_Component_T.h: - * ace/Handle_Ops.cpp: - * ace/Handle_Ops.h: - * ace/IO_SAP.cpp: - * ace/IO_SAP.h: - * ace/IO_SAP.i: - * ace/IPC_SAP.cpp: - * ace/IPC_SAP.h: - * ace/IPC_SAP.i: - * ace/Init_ACE.cpp: - * ace/Init_ACE.h: - * ace/LSOCK.cpp: - * ace/LSOCK.h: - * ace/LSOCK.i: - * ace/LSOCK_Acceptor.cpp: - * ace/LSOCK_CODgram.cpp: - * ace/LSOCK_CODgram.h: - * ace/LSOCK_CODgram.i: - * ace/LSOCK_Connector.cpp: - * ace/LSOCK_Connector.h: - * ace/LSOCK_Connector.i: - * ace/LSOCK_Dgram.cpp: - * ace/LSOCK_Dgram.h: - * ace/LSOCK_Dgram.i: - * ace/LSOCK_Stream.cpp: - * ace/LSOCK_Stream.h: - * ace/LSOCK_Stream.i: - * ace/Lib_Find.h: - * ace/Log_Msg.cpp: - * ace/Log_Msg_NT_Event_Log.cpp: - * ace/Log_Msg_UNIX_Syslog.cpp: - * ace/Log_Record.cpp: - * ace/Log_Record.h: - * ace/Log_Record.i: - * ace/Logging_Strategy.cpp: - * ace/MEM_Acceptor.cpp: - * ace/MEM_Acceptor.h: - * ace/MEM_Acceptor.i: - * ace/MEM_Connector.cpp: - * ace/MEM_Connector.h: - * ace/MEM_Connector.i: - * ace/MEM_IO.cpp: - * ace/MEM_IO.h: - * ace/MEM_IO.i: - * ace/MEM_SAP.cpp: - * ace/MEM_SAP.h: - * ace/MEM_SAP.i: - * ace/MEM_Stream.cpp: - * ace/MEM_Stream.h: - * ace/MEM_Stream.i: - * ace/Memory_Pool.cpp: - * ace/Metrics_Cache.cpp: - * ace/Metrics_Cache.h: - * ace/Multihomed_INET_Addr.i: - * ace/Naming_Context.cpp: - * ace/OS_Dirent.cpp: - * ace/OS_Dirent.h: - * ace/OS_Log_Msg_Attributes.inl: - * ace/OS_Thread_Adapter.cpp: - * ace/OS_Thread_Adapter.h: - * ace/Obchunk.i: - * ace/Object_Manager_Base.cpp: - * ace/Object_Manager_Base.h: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Asynch_IO.h: - * ace/Parse_Node.i: - * ace/Pipe.cpp: - * ace/Pipe.h: - * ace/Pipe.i: - * ace/Process.cpp: - * ace/Process_Manager.cpp: - * ace/Process_Mutex.h: - * ace/Process_Semaphore.cpp: - * ace/RW_Process_Mutex.cpp: - * ace/Reactor_Notification_Strategy.inl: - * ace/Reactor_Timer_Interface.h: - * ace/Registry.cpp: - * ace/SOCK.h: - * ace/SOCK_Acceptor.cpp: - * ace/SOCK_Acceptor.h: - * ace/SOCK_Acceptor.i: - * ace/SOCK_CODgram.cpp: - * ace/SOCK_Connector.cpp: - * ace/SOCK_Connector.h: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/SOCK_Dgram_Bcast.h: - * ace/SOCK_Dgram_Bcast.i: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast.i: - * ace/SOCK_IO.cpp: - * ace/SOCK_IO.i: - * ace/SOCK_SEQPACK_Acceptor.cpp: - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/SOCK_SEQPACK_Acceptor.i: - * ace/SOCK_SEQPACK_Association.cpp: - * ace/SOCK_SEQPACK_Association.h: - * ace/SOCK_SEQPACK_Association.i: - * ace/SOCK_SEQPACK_Connector.cpp: - * ace/SOCK_SEQPACK_Connector.h: - * ace/SOCK_SEQPACK_Connector.i: - * ace/SOCK_Stream.cpp: - * ace/SOCK_Stream.h: - * ace/SOCK_Stream.i: - * ace/SPIPE.cpp: - * ace/SPIPE.h: - * ace/SPIPE.i: - * ace/SPIPE_Connector.cpp: - * ace/SPIPE_Connector.h: - * ace/SPIPE_Connector.i: - * ace/SPIPE_Stream.cpp: - * ace/SPIPE_Stream.h: - * ace/SPIPE_Stream.i: - * ace/SV_Message_Queue.cpp: - * ace/SV_Message_Queue.h: - * ace/SV_Message_Queue.i: - * ace/SV_Semaphore_Complex.cpp: - * ace/SV_Semaphore_Complex.h: - * ace/SV_Semaphore_Complex.i: - * ace/SV_Semaphore_Simple.cpp: - * ace/SV_Semaphore_Simple.h: - * ace/SV_Semaphore_Simple.i: - * ace/Service_Config.h: - * ace/Service_Manager.i: - * ace/Shared_Object.i: - * ace/Strategies_T.cpp: - * ace/Strategies_T.h: - * ace/Strategies_T.i: - * ace/Svc_Conf_l.cpp: - * ace/Synch.cpp: - * ace/Synch.h: - * ace/Synch_Options.i: - * ace/Synch_T.cpp: - * ace/Synch_T.h: - * ace/System_Time.cpp: - * ace/Test_and_Set.h: - * ace/Thread_Adapter.i:nl - * ace/Timeprobe.i: - * ace/Token_Request_Reply.h: - * ace/UPIPE_Acceptor.cpp: - * ace/UPIPE_Acceptor.h: - * ace/UPIPE_Acceptor.i: - * ace/UPIPE_Connector.cpp: - * ace/UPIPE_Connector.h: - * ace/UPIPE_Connector.i: - * ace/UPIPE_Stream.i: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Proactor.cpp: - Changed checks for ACE_LACKS_INLINE_FUNCTIONS with __ACE_INLINE__ in - the h/cpp files. In the .i files changed ASYS_INLINE with ACE_INLINE. - We now just use one method of including inline files. As a side effect - we now have to add some extra includes for non inlined builds because - they don't get the includes of the .i files anymore for free. - - * ace/config-openvms.h: - Removed not needed lines - - * ace/SSL/SSL_Context.cpp: - * ace/Based_Pointer_Repository.cpp: - * ace/Dynamic.cpp: - * ace/UUID.cpp: - To make things easier to maintenance use the new - ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION macro to check - whether we need to explicit instantiate static template members. - This macro is set for the GNU compiler for AIX, HPUX and VxWorks. - - * ace/Dev_Poll_Reactor.cpp: - * ace/Dev_Poll_Reactor.h: - * ace/Reactor.h: - * ace/Reactor.i: - * ace/Reactor_Impl.h: - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.cpp: - * ace/Select_Reactor_T.h: - * ace/WFMO_Reactor.cpp: - * ace/WFMO_Reactor.h: - Removed deprecated set_timer_queue method - - * ace/ATM_Acceptor.h: - * ace/Stream.h: - * ace/TLI_Acceptor.h: - No need to include ace/Time_Value.h, just forward declare - ACE_Time_Value. - - * ace/Condition_Recursive_Thread_Mutex.inl: - * ace/Dynamic_Service_Base.i: - * ace/FlReactor.i: - * ace/Framework_Component_T.inl: - * ace/Handle_Ops.i: - * ace/Init_ACE.i: - * ace/OS_Thread_Adapter.inl: - * ace/Metrics_Cache.i: - * ace/Lib_Find.i: - * ace/OS_Dirent.inl: - * ace/Object_Manager_Base.inl: - * ace/POSIX_Asynch_IO.i: - * ace/Synch_T.i: - * ace/Synch.i: - * ace/Test_and_Set.i: - Removed these files, they are empty. If we need to have an inline file - we will add it when needed. - - * ace/Makefile.am: - Removed the files I zapped from the repo - -Mon Jun 14 08:28:24 2004 Douglas C. Schmidt - - * docs/ACE-development-process.html: The link to - - http://ace.cs.wustl.edu/bugs/index.cgi - - should point to - - http://deuce.doc.wustl.edu/bugzilla/index.cgi - - Thanks to Patrick Bennett for - reporting this. - -Mon Jun 14 11:45:12 UTC 2004 Johnny Willemsen - - * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp - Use ACE_Reactor::timer_queue instead of the deprecated set_timer_queue - - * tests/Config_Test.cpp: - * tests/Log_Msg_Test.cpp: - * tests/Mem_Map_Test.cpp: - * tests/MM_Shared_Memory_Test.cpp: - * tests/MT_Reactor_Timer_Test.cpp: - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Naming_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Proactor_Scatter_Gather_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Test.cpp SPIPE_Test.cpp: - * tests/Time_Service_Test.cpp: - * tests/Time_Value_Test.cpp: - * tests/Tokens_Test.cpp: - * tests/UPIPE_SAP_Test.cpp: - * websvcs/lib/URL_Addr.cpp: - * examples/Reactor/WFMO_Reactor/Talker.cpp: - * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i: - * examples/Web_Crawler/URL_Addr.cpp: - * ASNMP/tests/test_config.h: - Added needed includes. I am working on changing checks for - ACE_LACKS_INLINE_FUNCTIONS by checks for __ACE_INLINE_ in ACE, - so that we can enabled/disable inlining completely in ACE. As a - result of this I reduced some header file dependencies and now - some tests need more includes. More of these changes will follow. - - * tests/Framework_Component_DLL.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Timeprobe_Test.cpp: - * netsvcs/lib/Name_Handler.cpp: - * netsvcs/lib/Server_Logging_Handler.cpp: - * performance-tests/Misc/test_singleton.cpp: - To make things easier to maintenance use the new - ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION macro to check - whether we need to explicit instantiate static template members. - This macro is set for the GNU compiler for AIX, HPUX and VxWorks. - -Sun Jun 13 15:44:23 2004 Douglas C. Schmidt - - * tests/Message_Queue_Test.cpp: Enhanced this test so that it - checks to see whether dequeue_prio() works properly. - -Sun Jun 13 18:12:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/tmcast.mpb: - For TMCast we require threads and we shouldn't set the - dynamicflags. That is only required when we build a library - and not when we use it. - -Sun Jun 13 17:05:12 UTC 2004 Johnny Willemsen - - * apps/JAWS/clients/Blobby/blobby.cpp: - * apps/JAWS/server/IO.cpp: - * apps/gperf/src/Hash_Table.cpp: - Added needed includes - -Sun Jun 13 17:01:12 UTC 2004 Johnny Willemsen - - * examples/APG/Logging/Callback-2.h: - * examples/APG/Sockets/Basic_Robust.cpp: - * examples/APG/Sockets/Server.cpp: - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv2/Client_Logging_Daemon.cpp: - * examples/C++NPv2/Logging_Handler.cpp: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - * examples/IPC_SAP/DEV_SAP/writer/writer.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.h: - * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp: - * examples/Logger/client/logging_app.cpp: - * examples/Logger/simple-server/Logging_Handler.cpp: - * examples/OS/Process/imore.cpp: - * examples/QOS/Diffserv/diffserv_test.cpp: - * examples/RMCast/Send_File/Receiver.cpp: - * examples/RMCast/Send_File/Sender.cpp: - * examples/Reactor/Dgram/CODgram.cpp: - * examples/Reactor/FIFO/client.cpp: - * examples/Reactor/FIFO/server.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Reactor/Proactor/test_cancel.cpp: - * examples/Reactor/Proactor/test_multiple_loops.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/WFMO_Reactor/Registry_Changes.cpp: - Added needed includes. I am working on changing checks for - ACE_LACKS_INLINE_FUNCTIONS by checks for __ACE_INLINE_ in ACE, - so that we can enabled/disable inlining completely in ACE. As a - result of this I reduced some header file dependencies and now - some tests need more includes. More of these changes will follow. - - * examples/APG/Logging/Use_LogManager.cpp: - * examples/APG/Timers/PTimerDispatcher.cpp: - * examples/APG/Timers/TimerDispatcher.cpp: - * examples/C++NPv2/TP_Logging_Server.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - * examples/Logger/simple-server/server_loggerd.cpp: - * examples/Logger/Acceptor-server/server_loggerd.cpp: - * examples/Threads/auto_event.cpp: - * examples/Threads/tss2.cpp: - To make things easier to maintenance use the new - ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION macro to check - whether we need to explicit instantiate static template members. - This macro is set for the GNU compiler for AIX, HPUX and VxWorks. - - * examples/APG/Shared_Memory/Hash_Map.cpp: - * examples/APG/Shared_Memory/Malloc.cpp: - * examples/APG/Shared_Memory/PI_Malloc.cpp: - * examples/APG/Shared_Memory/Pool_Growth.cpp: - Fixes for wchar builds - -Sun Jun 13 16:53:12 UTC 2004 Johnny Willemsen - - * bin/generate_footprint_chart.sh: - Removed fixed yrange of 3000. Especially for the smaller libraries - the generated graphs are hard to read. Just let gnuplot determine - the needed yrange - -Sun Jun 13 15:19:12 UTC 2004 Johnny Willemsen - - * examples/Log_Msg/Log_Msg_MFC/StdAfx.h: - Fixed errors in mfc builds. - -Sun Jun 13 11:45:12 UTC 2004 Johnny Willemsen - - * tests/Config_Test.cpp: - * tests/Log_Msg_Test.cpp: - * tests/Mem_Map_Test.cpp: - * tests/MM_Shared_Memory_Test.cpp: - * tests/MT_Reactor_Timer_Test.cpp: - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Naming_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Proactor_Scatter_Gather_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Test.cpp SPIPE_Test.cpp: - * tests/Time_Service_Test.cpp: - * tests/Time_Value_Test.cpp: - * tests/Tokens_Test.cpp: - * tests/UPIPE_SAP_Test.cpp: - Added needed includes. I am working on changing checks for - ACE_LACKS_INLINE_FUNCTIONS by checks for __ACE_INLINE_ in ACE, - so that we can enabled/disable inlining completely in ACE. As a - result of this I reduced some header file dependencies and now - some tests need more includes. More of these changes will follow. - - * tests/Framework_Component_DLL.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Timeprobe_Test.cpp: - To make things easier to maintenance use the new - ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION macro to check - whether we need to explicit instantiate static template members. - This macro is set for the GNU compiler for AIX, HPUX and VxWorks. - -Sun Jun 13 10:19:12 UTC 2004 Johnny Willemsen - - * ace/config-aix-4.x.h: - * ace/config-hpux-10.x-g++.h: - * ace/config-hpux-11.00.h: - * ace/config-vxworks5.x.h: - * ace/README: - Added new macro ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION. - With the GCC compiler on HPUX, AIX and VxWorks we need to explictly - instantiate static template members to assure that we have the static - only once. This new macro is a side effect of bug 1823. We check - for GNU and one of the mentioned OS's in the cpp files but this - is hard to maintain and once in a while we find that in a certain - file we lack a check for a certain OS. This new macro will be used - as replacement so that we can control whether to instantiate the - static template members from the config files. The changes to the - cpp files will follow soon. - -Sat Jun 12 17:16:53 2004 Douglas C. Schmidt - - * ace/Message_Queue_T.cpp (dequeue_prio_i): Change the use of - < to <= so that we'll find the earliest message in a group of - messages with the same priority to preserve FIFO order. Thanks - to Olivier Brunet for reporting this problem. - - * ace/Message_Queue_T.h (class ACE_Message_Queue): Updated the - documentation to be accurate about preserving FIFO order within - a priority level. - - * ace/Message_Queue_T.cpp (enqueue_i): Fixed an incorrect comment - - the tail is where the lowest priority message is and the head - is where the higest priority message is! - -Fri Jun 11 17:16:01 2004 Ossama Othman - - * docs/README.tutorials: - - New README file pointing users to C++NPv{1,2} and APG examples. - -Fri Jun 11 14:11:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_stdio.inl: - Fixed unused parameter warning - -Fri Jun 11 13:27:12 UTC 2004 Johnny Willemsen - - * tests/run_test.lst: - Moved the Recursive_Condition_Bug_Test to the end of the list, it - crashes hard with Cygwin and prevents to other tests from running. - This way we now get a better overview of our current Cygwin support. - -Thu Jun 10 21:40:03 2004 Ossama Othman - - * docs/tutorials: - - Removed obsolete ACE tutorials. They are not maintained, and - have been superseded by the C++NPv{1,2} and APG examples in - their corresponding `ACE_wrappers/examples' directories. - -Thu Jun 10 18:41:29 2004 Steve Huston - - * apps/JAWS3/jaws3/Asynch_IO.cpp: - * apps/JAWS3/jaws3/IO.h: - * apps/JAWS3/jaws3/Config_File.cpp: - * apps/JAWS3/jaws3/Datagram.h: - * apps/JAWS3/jaws3/Export.h: - * apps/JAWS3/jaws3/Options.cpp: - * apps/JAWS3/jaws3/Protocol_Handler.h: - * apps/JAWS3/jaws3/Symbol_Table.h - * apps/JAWS3/jaws3/Synch_IO.cpp: - * apps/JAWS3/jaws3/THYBRID_Concurrency.cpp: - * apps/JAWS3/jaws3/TPOOL_Concurrency.cpp: - * apps/JAWS3/jaws3/TPR_Concurrency.cpp: - * apps/JAWS3/jaws3/Task_Timer.h: - * apps/JAWS3/jaws3/Templates.cpp: - * apps/JAWS3/jaws3/Timer.h: - * apps/JAWS3/jaws3/Timer_Helpers.h: - * examples/APG/Misc_IPC/UDP_Broadcast.cpp: - * examples/APG/Misc_IPC/UDP_Multicast.cpp: - * examples/APG/Misc_IPC/UDP_Unicast.cpp: - * examples/APG/Shared_Memory/Mem_Map.cpp: - * examples/APG/Svc_Config/HA_Configurable_Server_Dynamic.cpp: - * examples/APG/Svc_Config/HA_Configurable_Server_Static.cpp: - * examples/APG/Svc_Config/HA_Status_Dynamic.cpp: - * examples/APG/Svc_Config/HA_Status_Static.cpp: - * examples/APG/ThreadManagement/Async_Cancel.cpp: - Don't include "ace/OS.h" - it screws up HP aC++ and somehow starts - complaining about mismatched t_bind things in OS_TLI.inl. Weird. - -Thu Jun 10 19:41:02 2004 Olli Savia - - * ACE-INSTALL.html: - - Updated LynxOS resource advice. - -Thu Jun 10 10:07:22 2004 Steve Huston - - * ace/Makefile.am: Added Functor_String.{h inl cpp}. Thanks to - J.T. Conklin for reporting this. - -Wed Jun 9 09:36:03 2004 Ossama Othman - - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.cpp: - - Use prefix {in,dec}rement operators where applicable instead of - postfix operators. The former are more efficient. - -Wed Jun 09 09:27:21 2004 Ossama Othman - - * ace/WFMO_Reactor.cpp: - - Use prefix {in,dec}rement operators where applicable instead of - postfix operators. The former are more efficient. - - Fixed "pointless comparison of unsigned integer with zero" - MSVC++ 7.1 warning. - - * ace/Process_Manager.cpp (wait): - - Fixed incorrect preprocessor conditional. Addresses "pointless - comparison of unsigned integer with zero" warning from MSVC++ - 7.1. - -Wed Jun 9 12:04:29 2004 Steve Huston - - * ace/OS_NS_sys_socket.inl (closesocket): Changed the constant passed - to ACE_OS::shutdown() from SD_SEND to ACE_SHUTDOWN_WRITE to make - it portable for Winsock1 and Winsock2 environments. Thanks to - Weida Ma for reporting this problem. - -Wed Jun 9 10:47:39 2004 Steve Huston - - * ace/Dirent_Selector.cpp (close): Regarding this: - Thu Jun 3 18:49:59 2004 Douglas C. Schmidt - Only platforms with ACE_LACKS_STRUCT_DIR dynamically allocate the - d_name string. All others include it in the dirent struct itself. - Please see Bugzilla 1833 - this problem should be remedied in - ACE_OS::scandir_emulation itself, and this patch removed. - -Tue Jun 8 17:01:32 2004 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Removed the AREXTRA - definition. It caused all the files to be listed twice on the - ar command line; once from xargs and once from the command given - to xargs. Thanks to Ofira Shaer for - reporting this problem. - - * THANKS: Added Ofira Shaer. - -Tue Jun 8 16:27:39 2004 Steve Huston - - * configure.ac: Removed the individual AC_CONFIG_FILE entries for the - automake-generated Makefiles. Replaced with an m4_include of a - MPC-generated list of all Makefiles it generated during the most - recent MPC run. The file created by MPC is configure.ac.Makefiles. - If this works well, we can generate the Makefile.am files as needed - and remove the hand-maintained ones from the repo. - -Tue Jun 8 09:20:18 2004 Steve Huston - - * ace/IOStream_T.i: Add missing #includes to satisfy ACE_OS references. - -Sun Jun 6 09:48:17 2004 Douglas C. Schmidt - - * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): If there are - no broadcastable interfaces found, mk_broadcast() now returns -1 - and sets errno to ENXIO ("no such device or address"). Thanks to - Dave Craig for suggesting this fix. - - * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Only complain about - broadcast not being enabled for an interface if host_name is non - NULL. Thanks to Dave Craig for this fix, - which resolves bugid 1831. - -Sat Jun 5 09:06:09 2004 Douglas C. Schmidt - - * ace/RMCast/RMCast_IO_UDP.i: Added a fix so that the transmitter - no longer hangs waiting for the acknowledgement unicast response - messages. The recipients were transmitting acknowledgements, - but the transmitter was listening to the socket that was bound - to a specific multicast address. Thanks to Dave Craig - for this fix. - -Thu Jun 3 23:21:13 2004 Ossama Othman - - * ace/Dirent_Selector.cpp (close): - - Fixed compile-time error where "d_name" member was accessed with - the dot "." operator instead of the pointer "->" operator. - -Thu Jun 3 18:49:59 2004 Douglas C. Schmidt - - * ace/Dirent_Selector.cpp (close): Need to call - - ACE_OS::free (this->namelist_[n_].d_name); - - in close() since ACE_OS::scandir() allocates a dirent structure - array that includes a dynamically allocated ACE_TCHAR *. Thanks - to Benjamin Bronk for reporting this - and providing the fix. This fixes bugid 1833. - -Thu Jun 3 17:36:39 2004 Tao Lu - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - Added the -Sc to the idlflag to turn the tie class generation - off by default. - -Thu Jun 3 23:33:23 2004 Marek Brudka - - * include/makeinclude/platform_qnx_rtp_gcc.GNU (inline): - Removed optimization flags when debug is on due to g++ internal - compiler error. - -Thu Jun 3 12:32:52 2004 Jeff Parsons - - * ace/RW_Process_Mutex.h: - - Added #include of OS_NS_fcntl.h to pull in - ACE_DEFAULT_OPEN_PERMS. - -Thu Jun 3 10:52:18 2004 Arvind S. Krishna - - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - - Added idlfalgs+= to enable idl compiler to generate stubs and - skels for projects that inherit from the aforementioned mpc - files. - -Wed Jun 2 21:07:31 2004 Tao Lu - - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - - I have to change these file again to prepare to delete - $CIAO_ROOT/DnC/Core directory and move every thing there to - $CIAO_ROOT/DnC/ciao directory so the CIDL generated code will - find the right include file. - -Wed Jun 2 20:42:49 2004 Tao Lu - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_component_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_server_dnc.mpb: - - Added these files to avoid conflit between the old and the new - CIAO implementation. - -Thu Jun 03 00:30:00 Marek Brudka - - * ace/RW_Process_Mutex.h (ACE_RW_Process_Mutex): - * ace/RW_Process_Mutex.cpp (ACE_RW_Process_Mutex): - Appended file mode to mutex constructor to solve the - difficulties reported by Bae-Sik Chon . - -Wed Jun 2 07:30:56 2004 Chad Elliott - - * ace/OS_NS_Thread.cpp: - - Added the class name for the ACE_TSS_DESTRUCTOR cast. - -Wed Jun 2 00:03:20 2004 Ossama Othman - - * ace/Log_Msg.cpp - * ace/Timer_Hash_T.cpp: - - Converted all ACE cast macro calls to their ANSI C++ cast - counterparts. - - Use prefix {in,dec}rement operators where applicable instead of - postfix operators. The former are more efficient. - - * ace/SSL/SSL_Asynch_BIO.cpp: - * ace/SSL/SSL_SOCK_Stream.cpp: - * ace/SSL/SSL_SOCK_Stream.i: - - Converted all ACE cast macro calls to their ANSI C++ cast - counterparts. - -Tue Jun 1 18:31:44 2004 Steve Huston - - * ace/Lib_Find.cpp: Added /**/ to naked platform-specific #includes - to keep eVC from complaining it can't find the files. - -Tue Jun 1 16:37:30 2004 Douglas C. Schmidt - - * ace/SOCK_Dgram_Bcast.cpp (send): Set the port number of the - broadcast address before sending the iovec. Thanks to Dave - Wolfe for this patch, which fixes - bugid 1830. - - * ace/OS_NS_Thread.cpp: Added a cast for (ACE_TSS_DESTRUCTOR) - so the code will compile properly on Solaris when - ACE_HAS_TSS_EMULATION is enabled. Thanks to Kevin Christian - for reporting this. - -Tue Jun 1 16:56:39 2004 Steve Huston - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: Changed use of - SHUT_RDWR arg for ACE_OS::shutdown() to ACE_SHUTDOWN_BOTH, which is - set up correctly across all platforms. Fixes compile error on - Windows. - - * ace/SOCK.h: - * ace/OS_NS_sys_socket.h: Moved the setup of ACE_SHUTDOWN_READ, - ACE_SHUTDOWN_WRITE, and ACE_SHUTDOWN_BOTH from SOCK.h to - OS_NS_sys_socket.h. There's no need to include SOCK.h to use - the lower-level ACE_OS::shutdown() directly. - -Sat May 29 16:12:28 2004 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - - Added X11 related libs needed to build XtReactor. - -Fri May 28 18:35:41 2004 Steve Huston - - * tests/FIFO_Test.cpp (server): The select() trick to wait for the - writer to open the FIFO doesn't seem to work on AIX. It seems to - select() the fifo handle as a normal file handle, always readable. - So on AIX, sleep 1 second before proceeding. - -Fri May 28 15:54:26 2004 Steve Huston - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: In - Close_Socket_Thread::svc(), do a ACE_OS::shutdown() before closing - the socket. This is enough to pop another thread off a blocked - read/write on platforms that block the close() until an in-progress - operation completes, such as AIX and Linux. With this, remove the - #if linux checks that disabled some types of test. - It could be argued that the shutdown() should be done as part of - ACE_OS::closesocket() (it already does this for HP-UX), but I - hesitate to rock the boat here... - -Thu May 27 19:02:18 2004 Steve Huston - - * ace/Timer_Hash_T.cpp (schedule_i): For Win64, reinterpret_cast from - ptrdiff_t to long is incorrect; static_cast is more appropriate. - -Thu May 27 20:00:29 2004 Olli Savia - - * ace/README: - - Added ACE_LACKS_REALPATH and ACE_LACKS_SWAB. - -Thu May 27 12:10:29 2004 Steve Huston - - * examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc: - Changed exe's "after" clause to reflect renamed library project name. - Also see: - Thu May 7 02:00:00 2004 Marek Brudka - -Thu May 27 18:22:22 2004 Olli Savia - - * ace/config-lynxos.h: - - Added ACE_HAS_GETPAGESIZE and ACE_HAS_MEMCHR macros. - -Thu May 27 17:55:38 2004 Olli Savia - - * ACE-INSTALL.html: - - Updated LynxOS resource advises. These were unnesessary large. - This fixes bugzilla bug 1154. - -Wed May 26 23:51:53 2004 Ossama Othman - - * ace/OS_NS_string.cpp: - - Converted all ACE cast macro calls to their ANSI C++ cast - counterparts. - - * ace/OS_NS_sys_socket.inl: - - Use prefix {in,dec}rement operators where applicable instead of - postfix operators. The former are more efficient. - -Wed May 26 23:44:04 2004 Ossama Othman - - * tests/Reactor_Registration_Test.cpp (Event_Handler): - (handle_input): - - Fixed "comparison between signed and unsigned integer" - warnings. - -Wed May 26 10:36:39 2004 Tao Lu - - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - Added these two mpb files to ease the mpc file writing for - CIAO DnC run time. - -Wed May 26 10:40:36 2004 Boris Kolpackov - - * ace/TMCast/README: Added description of architecture that - I prepared for Carlos some time ago but never actually - committed it. - -Tue May 25 22:08:42 UTC 2004 Don Hinton - - * bin/MakeProjectCreator/templates/gnu.mpd: - Also turn off LIBCHECK when passing -k, keep-going. - -Tue May 25 21:32:17 UTC 2004 Don Hinton - - * bin/MakeProjectCreator/templates/gnu.mpd: - Turn off LIBCHECK when doing dry-runs. - - * include/makeinclude/rules.local.GNU: - Print out MAKEFLAGS during builds. - -Mon May 24 12:16:29 2004 Steve Huston - - * configure.ac: Corrected comments in the pthread_rwlock-related - checks. They had cut/paste errors and said signinfo_t. Thanks to - J.T. Conklin for this fix. - -Fri May 21 16:44:29 2004 Steve Huston - - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.mpc: Removed the pch - specs from this and replaced with a normal exe-producing set of - specs and files. There were no pch directives in the files, and this - drove MSVC nuts at compile time, complaining of a missing #endif - where there clearly was none. - - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.{cpp h}: Moved #include - "ace/Log_Msg.h" from .h to .cpp, as nothing in the .h file needs it. - -Fri May 21 15:28:31 2004 Steve Huston - - * ace/Makefile.am: Removed OS_Export.h and Sock_Connect.i as they're - no longer valid files. Please also see: - Tue May 18 11:28:22 UTC 2004 Johnny Willemsen - Fri May 7 09:11:21 UTC 2004 Johnny Willemsen - -Thu May 20 21:19:44 2004 Phil Mesnier - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: Add a method to get the byte ordering flag so - that serialization of UTF-16 data will be able to do the right - thing WRT byte ordering. This is necessary since UTF-16 byte - ordering (as required by CORBA) is independent of the CDR Stream - byte order. - - * ace/Codeset_Registry.h: - * ace/Codeset_Symbols.h: Codeset_Symbols is a collection of - #defines for all the standard codeset id values. - -Thu May 20 18:23:49 2004 Steve Huston - - * tests/SOCK_Dgram_Bcast_Test.cpp: When sending a datagram, only send - the formatted text string, noth the whole buffer. Some OSes (i.e. - AIX) don't allow a broadcast of that large a buffer. Also, fixed - the style, indentation, and narrow/wide text capability. - -Thu May 20 10:21:39 2004 Steve Huston - - * examples/APG/Reactor/Client.cpp: In handle_input(), use "%.*C", - not "%*C" to limit output to string length. In handle_timeout (), - referring to a buffer in ACE_Message_Block's ctor doesn't copy the - data; it simply refers to it. This would produce garbage output. - Thanks to Dale Hawkins for these fixes. - - * examples/APG/Containers/Queues.cpp (runStackUnboundedQueue): The - DataElement arrays inserted into the queue should be defined outside - their 'for' loops to avoid repeated, unnecessary constructor and - destruction. Thanks to Bill Hopkins for - this suggestion. - - * THANKS: Added Dale Hawkins and Bill Hopkins. - -Wed May 19 12:46:33 2004 Steve Huston - - * ace/SSL/SSL_SOCK.i: Added missing #include "ace/OS_NS_sys_socket.h" - -Wed May 19 12:14:21 2004 Steve Huston - - * tests/Reactor_Registration_Test.cpp: Fixed string types to work - for both narrow and wide chars; fixed size types to work for - 64-bit platforms. - -Wed May 19 08:57:24 2004 Douglas C. Schmidt - - * ace/OS_NS_Thread.inl: Fixed the ACE_OS::thr_self() call so that - it doesn't use the ACE_OSCALL_RETURN macro, which compares the - return value of pthread_self() with -1 to see if the function - encountered an error. However, pthread_t may be an opaque value - (a pointer, a struct, etc.) that may not be able to be compared - with a literal without an error. Furthermore, the pthreads and - X/Open XPG standards do not define any error conditions for - pthread_self(), so checking the return value with -1 is - meaningless. Thanks to J.T. Conklin - for reporting this problem and providing a fix. - -Wed May 19 07:20:35 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Conditionally use the .NOTPARALLEL rule based on the existence and - time stamp of generated files in addition to the time stamp on the - generation tool (if applicable). In situations where the - generated files are up-to-date, using -j will actually be - beneficial instead of ignored. - - * include/makeinclude/rules.local.GNU: - - Switch to using depgen.pl instead of g++dep. It is accurate and - tremendously faster than g++dep. The dependency generation tool - can be controlled by setting the DEPGEN make macro. - -Tue May 18 16:55:39 2004 Steve Huston - - * ace/OS_NS_dirent.cpp (ACE_SCANDIR_COMPARATOR): - * ace/OS_NS_stdlib.h (ACE_COMPARE_FUNC): For Windows with Microsoft - Visual C++ compiler, explicitly specify __cdecl calling convention - so it remains correct even if built with a different default - calling convention. Thanks to Ivan Murphy - for this fix. - -Tue May 18 11:26:39 2004 Steve Huston - - * tests/tests.mpc: Replaced the "exename" lines for ACE_Test, - ACE_Init_Test, and FIFO_Test. Somehow they got lost... - -Tue May 18 11:07:22 2004 Steve Huston - - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp: - Removed arguments from ACE_OS::tempnam() call, forcing it to use - the defaults and select the char* variant. - -Tue May 18 14:28:22 UTC 2004 Johnny Willemsen - - * ace/LSOCK.cpp: - Added missing include ace/OS_NS_sys_socket.h - -Tue May 18 09:22:35 2004 Chad Elliott - - * bin/mpc.pl: - * bin/mwc.pl: - - Provide the getBasePath() method which returns the full path to - the MPC location. This will be used by MPC's Version module in - the future. - -Tue May 18 11:32:22 UTC 2004 Johnny Willemsen - - * ace/Condition_Thread_Mutex.h: - Documentation fix - -Tue May 18 11:28:22 UTC 2004 Johnny Willemsen - - * ace/SOCK.{h,cpp,i}: - * ace/SOCK_Acceptor.{h,cpp,i}: - * ace/SOCK_CODgram.{h,cpp,i}: - * ace/Sock_Connect.{h,cpp}: - * ace/SOCK_Connector.{h,cpp,i}: - * ace/SOCK_Dgram.{h,cpp,i}: - * ace/SOCK_Dgram_Bcast.{cpp,h,i} - * ace/SOCK_Dgram_Mcast.i: - * ace/SOCK_IO.{h,cpp,ï): - Instead of using ACE_LACKS_INLINE_FUNCTIONS use __ACE_INLINE__ to - check whether to enabling inlining or not. The last is the way - we now use and the first is not really working. In fact, all files - with ACE_LACKS_INLINE_FUNCTIONS use always inlining even when - __ACE_INLINE__ is not defined. With the latest GCC versions on - Windows we get hundreds of warnings that we are missing declspec - import and inline, when building DLL's we disable inlining but - this doesn't work for all files. See bugzilla 1581 for some - more info. More files will be updated later. - - * ace/Sock_Connect.i: - Removed this file, was not containing any code - - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - Added needed include of changes above - -Tue May 18 08:25:22 UTC 2004 Johnny Willemsen - - * bin/msvc_mpc_auto_compile.pl: - When building ACE also build the examples, some of them are used - in the test run. - -Tue May 18 08:14:22 UTC 2004 Johnny Willemsen - - * ace/Barrier.{h,cpp}: - Made method signature in implementation same as declaration and fixed - doxygen documentation - -Tue May 18 08:00:22 UTC 2004 Johnny Willemsen - - * Kokyu/tests/DSRT_MIF/MIF.cpp: - Fix for unicode builds - -Tue May 18 06:20:22 UTC 2004 Johnny Willemsen - - * ace/Time_Value.cpp: - Fixed compile error - -Mon May 17 21:19:27 2004 Ossama Othman - - * ace/CDR_Stream.h: - - Spelling correction. - - * ace/Time_Value.cpp (normalize, operator *=): - - Optimized some code. - - ACE coding style updates. - - * tests/Time_Value_Test.cpp (run_main): - - Updated code to conform to ACE coding conventions. - -Mon May 17 17:35:24 2004 Steve Huston - - * ace/Timer_Queue_T.cpp (schedule): Don't narrow the scheduled timer ID - from long to int; this smashes the ID on 64-bit systems where the - timer ID is larger than 32 bits holds; for example, in ACE_Timer_Hash - where it's a pointer. - -Mon May 17 22:38:48 2004 Marek Brudka - - * ace/Time_Value.cpp (operator *): - * ace/Time_Value.h (operator *): - * ace/Time_Value.inl (operator *): - operator *(double) moved from *inl into *cpp. The multiplication - algorithm change to extend the range of results to - . Doxygen docs for operator * - extended. - * tests/Time_Value_Test.cpp: - Added several tests for the result of multiplication by - double. - -Mon May 17 16:48:41 2004 Steve Huston - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: Add #include - "AIO_CLD_export.h" to the non-AIO section so it will at least - build and load on non-AIO systems. - -Mon May 17 15:46:39 2004 Steve Huston - - * apps/JAWS3/jaws3/Templates.cpp: Added missing ACE_Atomic_Op_Ex - instantiation. Thanks to Johnny Willemsen for this fix. - -Mon May 17 13:29:11 2004 Steve Huston - - * examples/Web_Crawler/URL.h: Changed return type of send_request() - to ssize_t, matching change to HTTP_URL.h from: - Thu May 13 14:40:12 2004 Steve Huston - -Mon May 17 19:19:00 2004 Marek Brudka - - * tests/SOCK_Dgram_Bcast_Test.cpp (run_auto_test): - - Removed warning on declared, but not used function. Added - OS_NS_unistd.h include to make sure ACE_OD::sleep is declared. - -Mon May 17 13:22:18 2004 Steve Huston - - * ace/OS_NS_stdio.h (tempnam): Had to remove the default 'dir' value - on the wchar variant because it conflicts with the char version - when defaults are taken into account. - - * ace/OS_NS_stdio.inl (tempnam): For the wchar_t variant, have to - copy the narrow-char name to a wide-char string and free() the - original. - (fopen (wchar_t *...)): ACE_TEXT_ALWAYS_CHAR doesn't convert a - string if ACE_USES_WCHAR setting already matches ACE_TCHAR. Thus, to - force a convert of wchar_t to char, use ACE_Wide_To_Ascii directly. - -Mon May 17 11:58:33 2004 Steve Huston - - * ace/WIN32_Asynch_IO.cpp (writev): If the passed-in chain of - ACE_Message_Blocks contains a 0-length block, it would cause - a iovec to be uninitialized and still passed to WSASend(). This is - fixed. Thanks to Ken Kane for reporting this. - -Mon May 17 17:00:00 2004 Marek Brudka - - * ace/Time_Value.inl: - Fixed a bug in operator *=( double ) which caused overflow for - results greater than 2 seconds. Thanks to Mirek Pabich - for this patch. - -Mon May 17 08:45:18 2004 Carlos O'Ryan - - * bin/g++dep: - Document all the crazy sed commands that are used in this - script. Also, simplified the data flow by using a single sed - invocation (and a single sed script) to apply all the - transformations. Reduce the number of temporary files, and - ensure that the sed script file is removed if an error or - interrupt occurs. - -Mon May 17 12:40:22 UTC 2004 Johnny Willemsen - - * ace/POSIX_CB_Proactor.cpp (handle_events_i): - * ace/Semaphore.cpp (constructor): - * ace/Thread_Semaphore.cpp (constructor): - Made method signature the same as in the header file, this fixes - doxygen warnings. - - * ace/Thread_Semaphore.h: - Doxygen documentation fixes. - -Mon May 17 12:32:22 UTC 2004 Johnny Willemsen - - * ace/Hash_Cache_Map_Manager_T.{cpp,i}: - Replaced T_1 with ACE_T1 and T_2 with ACE_T2 to be able to - generate better doxygen documentation - - * etc/ace.doxygen: - Added ACE_T1 and ACE_T2 to the EXPAND_AS_DEFINED list. These macros - are used in some template classes to make the code more readable but - doxygen gets problems when we don't expand these macros. - -Sun May 16 17:40:11 UTC 2004 Johnny Willemsen - - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp: - Fixed internal compiler error in MinGW build. - -Sun May 16 15:39:11 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_HAS_VOIDPTR_MMAP and removed ACE_HAS_SIG_MACROS - -Sun May 16 13:11:11 UTC 2004 Johnny Willemsen - - * tests/run_test.lst: - Move the Process_Strategy_Test to the end of this file. It fails - with Cygwin and hangs and prevents the other tests of running. So - when it is last we will see the results of more tests on Cygwin. - -Sun May 16 12:59:11 UTC 2004 Johnny Willemsen - - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - Print an info message in the TerminateWaitKill so that we can see in - the build log files that a process is tried to terminate. - -Sun May 16 12:47:11 UTC 2004 Johnny Willemsen - - * tests/SOCK_Dgram_Bcast_Test.cpp: - Fixed compile error because of incorrect include - -Sun May 16 12:38:11 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_LACKS_PTHREAD_KILL. Cygwin 1.5.9 gives a stackdump - when pthread_kill is used, so disable this feature until we - get a cygwin with this bug fixed. - -Sun May 16 12:14:12 UTC 2004 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Disabled the crash_on_write tests on Win32 because it doesn't work - and there are no plans to fix this soon. See bugzilla 959. - -Sun May 16 11:31:12 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_HAS_SYSV_IPC and removed defines that where needed for - older Cygwin versions. We are still working on getting things working - and even with the newest version we still don't have 100% working - tests, so we don't bother maintaining stuff for older versions that - are really broken - -Sat May 15 19:48:00 2004 Marek Brudka - - * ace/Sock_Connect.cpp (get_bcast_addr): - The loop over interfaces was buggy the same way as previously in - mk_broadcast. Fixed. It seems sa_len is serious portability - problem. Shall ACE_HAS_SA_LEN macro be defined and respected? - - * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): - FreeBSD also has sockaddr.sa_len, hence the loop over interfaces - shall work correctly. - -Sat May 15 19:48:00 2004 Marek Brudka - - * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): - ACE_ERROR message modified to print the name of problematic interface. - -Sat May 15 19:17:00 2004 Marek Brudka - - * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): - Quick fix to previous bugfix. It seems that not every system (eg. Linux) - provides sockaddr.sa_len. Previous fix (see below) restricted now to AIX, - QNX and CHORUS, where sa_len is avalaible. - -Sat May 15 17:25:17 2004 Marek Brudka - - * ace/SOCK_Dgram_Bcast.h: - * ace/SOCK_Dgram_Bcast.cpp: - Fixed bug in mk_broadcast related with incorrect length of struct ifreq. - Thanks to Mirek Pabich for this patch. - * tests/SOCK_Dgram_Bcast_Test.cpp: - tests/tests.mpc: - test/run_test.lst: - New automatic test for checking against bugs similiar to those reported by - Mirek Pabich. The usability of the test is restricted, as some errors in - broadcast handling can be detected only in LAN transmission. - * tests/tests.mpc: - MT_Reference_Counted_Event_Handler_Test project name truncated to - MT_Ref_Counted_Event_Handler_Test. - -Fri May 14 22:13:13 2004 Ossama Othman - - * bin/MakeProjectCreator/config/event.mpb: - - Reordered subprojects to force TAO_Messaging library to be - listed in static link commands after TAO_DynamicInterface - library. The latter depends on the former. Addresses static - build link-time errors. Thanks to Chad for providing a patch. - -Fri May 14 14:22:49 2004 Steve Huston - - * ace/Service_Repository.{h cpp} (insert): If there's no space left in - in the service repository, set errno to ENOSPC before returning -1. - (remove): Added an optional argument that can receive the - service record pointer for the removed service. If the pointer is - returned to the caller, it is not deleted. If the pointer is not - returned to the caller (the default) it is deleted (this is the - historic behavior). This is needed to properly support removing - a service record quickly after inserting it during service - initialization. See "Tue Mar 16 2004 - ACE version 5.4 P4", below. - -Thu May 13 14:40:12 2004 Steve Huston - - * ace/Functor.{h i}: The ACE_Hash, ACE_Equal_To, and ACE_Less_Than - "char"-type specializations were being done as ACE_TCHAR, and if - ACE_USES_WCHAR defined, also as ACE_ANTI_TCHAR. These are now changed - to always do 'char' and, if ACE_HAS_WCHAR, also wchar_t. Thus, - they're both compiled whenever possible and not only when - ACE_USES_WCHAR is set up. - - * ace/OS_NS_stdio.{h, inl}: Added wchar_t variants of tempnam () - and rename (). - - * ace/OS_NS_sys_stat.{h, inl}: Added a wchar_t variant of stat (). - - * ace/OS_NS_unistd.{h, inl}: Added a wchar_t variant of unlink (). - - * examples/Web_Crawler/Command_Processor.cpp (execute): Make sure - the URL path string is narrow. (insert): Use ACE_TEXT around - string literals. - - * examples/Web_Crawler/HTTP_URL.{h cpp} (send_request): Change return - type from int to ssize_t, matching the normal types used in ACE. - Use size_t, not int, for string size. - - * examples/Web_Crawler/Mem_Map_Stream.cpp (recv): Cast the length - to off_t to match what seek() expects. - - * examples/Web_Crawler/main.cpp: - * examples/Web_Crawler/Web_Crawler.{h, cpp}: - * examples/Web_Crawler/Options.{h, cpp}: Changed main() to ACE_TMAIN() - and all the command line options processing to ACE_TCHAR. - - * examples/Web_Crawler/URL_Addr.cpp: Add ACE_TEXT to string literals. - - Changes merged in from Siemens Medical Systems: - Tue May 11 2004 ACE version 5.4 P15 - * tests/Proactor_Scatter_Gather_Test.cpp: Close down the proactor - before finishing otherwise the object manager will hang. - - Mon Apr 26 2004 ACE version 5.4 P13 - * ace/Registry_Name_Space.cpp: Removed 64-bit warnings. - - Fri Apr 16 2004 ACE version 5.4 P12 - * ace/Based_Pointer_T.h: Made target_ and base_offset_ type - ptrdiff_t instead of long to avoid problems with 64bit. - - Tue Mar 16 2004 ACE version 5.4 P8 - * ace/DLL_Manager.cpp: - * ace/NT_Service.cpp: - Use ACE_LIB_TEXT instead of ACE_TEXT. - - Tue Mar 16 2004 ACE version 5.4 P7 - * ace/OS_NS_sys_stat.{h,inl}: Added a wchar version of mkdir(). - - Tue Mar 16 2004 ACE version 5.4 P6 - * ace/OS_NS_fcntl.cpp (open): - * ace/OS_NS_stdio.{h inl}: - * ace/OS_NS_sys_mman.inl (mmap): - * ace/OS_NS_Thread.inl (mutex_init, event_init, sema_init): - Added a thread safe method - ACE_OS::default_win32_security_attributes_r(). - - Tue Mar 16 2004 ACE version 5.4 P4 - * ace/Service_Config.cpp: Insert component into repository before - calling init as in the init the component may access the service - repository. - - Tue Mar 16 2004 ACE version 5.4 P3 - * ace/Functor.i,h: Added the classes ACE_Hash and - ACE_Hash which had gone missing between 5.0.7 and - 5.3.1/5.4. - - Wed Feb 25 2004 Ivan Murphy ACE 5.4 P2 - * ace/OS_NS_stdio.{h,cpp,inl}: Added wchar version of fopen(). - - Wed Feb 25 2004 Ivan Murphy ACE 5.4 P1 - * ace/OS_NS_stdlib.{h,inl}: Added wchar_t version of putenv(). - -Fri May 14 10:00:22 2004 Ossama Othman - - * configure.ac: - * ace/README (ACE_HAS_EXPLICIT_KEYWORD, ACE_HAS_MUTABLE_KEYWORD): - * ace/CDR_Base.h: - * ace/config-borland-common.h: - * ace/config-g++-common.h: - * ace/config-icc-common.h: - * ace/config-lite.h (ACE_EXPLICIT, ACE_MUTABLE): - * ace/config-openvms.h: - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-win32-ghs.h: - * ace/config-win32-msvc-6.h: - * ace/config-win32-msvc-7.h: - * ace/config-win32-visualage.h: - * m4/config_h.m4: - - ACE now requires C++ "explicit" and "mutable" keyword support. - Document these macros as deprecated, and removed all related - references. - - * ace/Auto_Ptr.h: - * ace/Bound_Ptr.h: - * ace/CDR_Stream.h: - * ace/Configuration.h: - * ace/DEV_Addr.h: - * ace/Date_Time.h: - * ace/Dirent.h: - * ace/FILE_Addr.h: - * ace/INET_Addr.h: - * ace/Local_Tokens.h: - * ace/MEM_Addr.h: - * ace/Parse_Node.h: - * ace/SOCK_Dgram_Mcast.h: - * ace/SString.h: - - Replaced all uses of "ACE_EXPLICIT" and "ACE_MUTABLE" with - "explicit" and "mutable", respectively. These ACE macros are - deprecated. - -Thu May 13 21:59:25 2004 Ossama Othman - - * ace/CDR_Base.h (ACE_CDR::Boolean): - - Potential ambiguities can occur if some classes, for example, - contain implicit conversion operators whose return values can - themselves be implicitly converted to a bool even though bool - was not the intended type. If multiple CDR stream insertion - operators (for example) exist, including one that accepts the - ACE_OutputCDR::from_boolean type, the compiler may be unable to - choose the appropriate insertion operator. As of yet, this - problem does not appear to occur if the ACE_CDR::Boolean type is - an "unsigned char" instead of "bool". If the C++ "explicit" - keyword is unavailable to us, resort to making ACE_CDR::Boolean - an unsigned char, which also happens to be a valid - implementation. Fixes TAO builds on platforms that do not - support the C++ "explicit" keyword. - - * ace/Synch_Traits.h: - - Corrected doxygen documentation. - -Thu May 13 21:07:45 2004 Ossama Othman - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: - Fixed compile-time errors for !ACE_WIN32 && !ACE_HAS_AIO_CALLS - case. - -Fri May 14 07:05:43 2004 Olli Savia - - * ace/config-lynxos.h: - - Added ACE_LACKS_MUTEXATTR_PSHARED for LynxOS 3.0.x. - -Fri May 14 06:56:20 2004 Olli Savia - - * ace/OS_NS_stdlib.h: - * ace/OS_NS_stdlib.inl: - * ace/OS_NS_stdlib.cpp: - * ace/config-lynxos.h: - - Added ACE_OS::realpath() implementation. - -Thu May 13 20:23:12 2004 Ossama Othman - - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.h: - - Added missing "ace/svc_export.h" include. Fixes compile-time - errors in multithread-enabled builds. - -Thu May 13 18:37:52 2004 Steve Huston - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: Added missing - #include "ace/Service_Object.h" for the non-AIO case. - -Thu May 13 21:39:00 2004 Marek Brudka - - * bin/MakeProjectCreator/templates/gnu.mpd: Changed dependency file - name to make file names shorter. Thanks to Chad Elliott - for this patch. - -Thu May 13 21:39:00 2004-05-13 Marek Brudka - - * docs/ACE-guidelines.html: Added guideline about long file - names. - -Thu May 13 18:57:12 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_LD_SEARCH_PATH defined as PATH. Because Cygwin runs on - Windows we must use PATH and not LD_LIBRARY_PATH which is the - default in ACE. - -Thu May 13 15:59:31 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_HAS_SNPRINTF. Cygwin supports this. - -Thu May 13 15:28:32 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_LACKS_MUTEXATTR_PSHARED, Cygwin export this function but - it doesn't work at this moment. - -Thu May 13 07:24:21 UTC 2004 Johnny Willemsen - - * ace/Cache_Map_Manager_T.{h,cpp,i}: - * ace/Cached_Connect_Strategy_T.cpp: - * ace/Hash_Cache_Map_Manager_T.h: - * tests/Cached_Accept_Conn_Test.{h,cpp}: - * tests/Cached_Conn_Test.cpp: - * ace/README: - * examples/Web_Crawler/URL_Visitor.cpp: - Removed ACE_HAS_BROKEN_EXTENDED_TEMPLATES. This was for a bug in pre - GCC 2.8 compilers which we don't support anymore. - - * ace/config-openvms.h: - Cleanup - -Wed May 12 21:26:37 2004 Ossama Othman - - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - - Use the "ACE_SYNCH" trait instead of "ACE_MT_SYNCH". Fixes - single-threaded build compile-time errors. - - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.h: - * performance-tests/Synch-Benchmarks/Base_Test/base_test.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/mutex_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.h: - - #ifdef out the code if ACE_HAS_THREADS is not defined. This - code is only meant to be used when multithreading support in ACE - is enabled. Fixes single-threaded build compile-time errors. - -Wed May 12 20:13:41 2004 Ossama Othman - - * ace/Local_Tokens.cpp: - * ace/Log_Msg_IPC.cpp: - * ace/Log_Msg_NT_Event_Log.cpp: - * ace/Log_Msg_UNIX_Syslog.cpp: - * ace/Log_Record.cpp: - * ace/MEM_Acceptor.cpp: - * ace/MEM_IO.cpp: - * ace/Memory_Pool.cpp: - * ace/Message_Block.cpp: - * ace/Message_Block_T.cpp: - * ace/Message_Queue.cpp: - - Replaced deprecated ACE cast macro usage with ANSI C++ cast - counterparts. - - * ace/Profile_Timer.h (ACE_Profile_Timer::ACE_Elapsed_Time): - - Corrected Doxygen documentation for this class. - - * ace/Profile_Timer.cpp (elapsed_time): - - Corrected comments in this method. - - * ace/RW_Mutex.h: - - Nuked trailing whitespace. - -Wed May 12 16:48:41 2004 Steve Huston - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: If built on - a platform that doesn't offer AIO, display an error message on - service load, and fail. - -Wed May 12 11:34:22 2004 Steve Huston - - * ace/config-freebsd.h: Reverted this change: - Tue May 11 12:33:49 2004 Steve Huston - because I mistakenly wiped out AIOCB_Proactor support, not - CB_Proactor support. Thanks to Matthew Corey for correcting - me on this. - - * ace/POSIX_CB_Proactor.{h cpp}: Also related to: - Tue May 11 12:33:49 2004 Steve Huston - Removed the __FreeBSD_version_ check and all FreeBSD-specific - code from ACE_POSIX_CB_Proactor. This class is no longer compiled - on FreeBSD per Matthew Corey's advice. - - * ace/Proactor.cpp (ctor): Added __FreeBSD__ to the condition under - which ACE_POSIX_CB_Proactor is not used as the default - implementation. Thanks to Bill Cassanova for reporting this. - -Wed May 12 13:29:43 UTC 2004 Johnny Willemsen - - * ace/OS_NS_sys_socket.inl(sendv): - When WSASend returns SOCKET_ERROR we already set errno, but - we have to return -1 in that case. The number of bytes send - in case of failure with WinSock2 is always 0, and this is - used differently by the callers. This fixes bugzilla bug 1816. - -Wed May 12 08:09:49 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - - Sort the directories when forming the cppdir value. We need to - ensure that '.' comes first. Borland make attempts to generate - source files in each CPPDIR directory until it is successful - which explains multiple invocations of tao_idl. - -Wed May 12 07:32:13 UTC 2004 Johnny Willemsen - - * ace/config-openvms.h: - Cleanup - - * examples/Web_Crawler/URL_Visitor.h: - Removed commented out code - -Wed May 12 07:03:13 UTC 2004 Johnny Willemsen - - * ace/README: - Removed description of ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS. - This was for a bug in GCC 2.7.3 which we don't support anymore and - none of the config files set this define at this moment. - - * ace/Thread_Manager.h: - Removed usage of ACE_INLINE_FOR_GNUC and improved doxygen - documentation - - * ace/Memory_Pool.h: - Improved doxygen documentation - - * ace/Mem_IO.h: - Removed usage of ACE_INLINE_FOR_GNUC - - * ace/config-lite.h: - Removed checking of ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS and - setting of ACE_INLINE_FOR_GNUC. This was for GCC 2.7.3 and we don't - support this anymore and the broken template define is not set in any - config file. - -Wed May 12 06:37:13 UTC 2004 Johnny Willemsen - - * ace/OS_NS_sys_socket.inl: - After the ::WSASend call we must check the return value and in case - of an error we must call ACE_OS::set_errno_to_wsa_last_error to set - errno. After the other ::WSA calls we must call also this method - instead of ACE_OS::set_errno_to_last_error. This fixes bugzilla - bug 1815. - -Tue May 11 17:39:22 2004 Steve Huston - - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.rc: Converted back to - neutral text format. - -Tue May 11 14:21:39 2004 Steve Huston - - * examples/APG/Streams/streams.mpc: Added 'threads' to the requires - spec. - -Tue May 11 12:33:49 2004 Steve Huston - - * ace/config-freebsd.h: If FreeBSD 5, change the Proactor default - implementation to not be ACE_POSIX_AIOCB_Proactor. Apparantly, - FreeBSD 5 removed the SIGEV_THREAD notification method. - - * ace/POSIX_CB_Proactor.{h cpp}: Added __FreeBSD_version > 500000 as - a condition that prevents this class from being compiled. - - Thanks to Bill Cassanova for reporting this issue and to - Matthew Corey for digging through the FreeBSD headers to find - out what's going on. - - * THANKS: Added Bill Cassanova and Matthew Corey to the Hall of Fame. - -Tue May 11 08:58:33 2004 Chad Elliott - - * ace/ace.mpc: - - Removed non-existent headers from the Header_Files section. - -Tue May 11 09:30:21 UTC 2004 Johnny Willemsen - - * ace/Registry.h: - Converted partly to doxygen style - -Tue May 11 09:22:13 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/winregistry.mpb: - Added new feature winregistry, this is set by default. This is to - determine if the environment has the windows registry. - - * include/makeinclude/wrapper_macros.GNU: - By default with GNU make winregistry is set to 0 when not set. - - * include/makeinclude/platform_mingw32.GNU: - MinGW has windows registry, so set winregistry to 1 - - * examples/Registry/Registry.mpc: - Removed gnuace verbatim parts and replaced by added winregistry - as base project. Because of this the registry tests are now build - with MinGW. - -Mon May 10 19:17:21 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added define ACE_LACKS_THREAD_PROCESS_SCOPING, Cygwin lacks - this and with this define set the Bound_Ptr test works. - -Mon May 10 14:42:29 2004 Steve Huston - - * examples/APG/Active_Objects/AO.cpp: - * examples/APG/Active_Objects/AO2.cpp: - * examples/APG/ThreadManagement/Coop_Cancel.cpp: - * examples/APG/ThreadManagement/Priorities.cpp: - * examples/APG/ThreadManagement/Pool.cpp: - * examples/APG/ThreadManagement/Signals.cpp: - * examples/APG/ThreadManagement/Signals2.cpp: - * examples/APG/ThreadPools/LF_ThreadPool.cpp: - * examples/APG/ThreadPools/Futures.cpp: - * examples/APG/ThreadPools/Task_ThreadPool.cpp: - * examples/APG/ThreadPools/ThreadPool.cpp: - * examples/APG/ThreadPools/TP_Reactor.cpp: - * examples/APG/ThreadSafety/Barrier.cpp: - * examples/APG/ThreadSafety/Mutex.cpp: - * examples/APG/ThreadSafety/RW_Lock.cpp: - * examples/APG/ThreadSafety/Semaphore.cpp: - * examples/APG/ThreadSafety/TSS.cpp: - * examples/APG/Threads/Condition_Variables.cpp: - * examples/APG/Threads/Mutexes.cpp: - * examples/APG/Threads/Message_Queue.cpp: - Fixed to compile without ACE_HAS_THREADS enabled. - -Mon May 10 18:40:43 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added define of ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS. Cygwin - has this and first tests show that now some threading tests - run without problems. Let wait for a new fresh daily build to - tackle the next failing test. - -Mon May 10 12:15:45 2004 Simon McQueen - - * ace/CDR_Stream.cpp (read_wchar): - - Replaced use of read_octet_array with read_array to take - account of the endianness of the stream when demarshalling - a wchar. This closes bug 1807. - -Mon May 10 10:24:23 UTC 2004 Johnny Willemsen - - * ace/Time_Value.inl: - Fixed incorrect trace - -Mon May 10 06:22:21 UTC 2004 Johnny Willemsen - - * bin/fuzz.pl: - The files with extension icc shouldn't be in the repo - also, so extended the noncvs files with this extension - -Sun May 9 13:12:37 2004 Tao Lu - - * bin/MakeProjectCreator/config/global.features: - Added dnc to the default features to avoid unintentional - building of $CIAO_ROOT/DnC directory. - -Sun May 9 16:07:00 2004 Marek Brudka - - * bin/fuzz.pl: - Script checks now if file names are not too long. Names - exceeding 50 characters are classified as an error (QNX limit), - MPC files longer than 30 characters lead to warnings as MPC can - add some characters eg. .depend.GNUmakefile. - -Sun May 9 13:20:22 UTC 2004 Johnny Willemsen - - * bin/fuzz.pl: - Files with extension dsp and dsw and the GNUmakefile* files - shouldn't be in the repo, so added these to the noncvs file - check - -Sun May 9 12:59:11 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Updated name of project file we must build first when doing a static - msvc build. This has to be done because of the changes of - Marek Brudka to get smaller filenames - -Sat May 8 16:25:31 2004 Balachandran Natarajan - - * ace/Time_Value.h: - * ace/Time_Value.inl: - - Added an operator=. Without this, the - ACE_HAS_TIMED_MESSAGE_BLOCK has no chance of working. - -Sat May 8 00:10:23 2004 Ossama Othman - - * apps/JAWS3/jaws3/Concurrency.h: - - Use the "ACE_SYNCH" trait instead of "ACE_MT_SYNCH". Doing so - allows the JAWS3 library to build in a single threaded - environment. Fixes single-threaded build compile-time errors. - - * ace/Synch_Traits.h: - - Corrected doxygen documentation. - -Fri May 7 15:59:30 2004 Ossama Othman - - * Kokyu/tests/DSRT_MIF/MIF.cpp (svc): - - Fixed "variable set but never used" Compaq C++ warning. - - * ace/TMCast/Protocol.cpp: - - Fixed "declared but never referenced" Compaq C++ warning. - -Fri May 7 14:45:16 2004 Ossama Othman - - * GNUmakefile: - - Removed this GNUmakefile. It must now be generated by MPC. The - kit creation code in this file will be moved to the - bin/make_release script. - -Fri May 7 17:26:33 2004 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: Changed the rtti default - to 1 and changed the associated -qrtti option from dynamiccast to - all since some parts of ACE use type IDs. - - * ASNMP/asnmp/sagent.h: Added implied keyword "private" to sagent's - derivation. Quiets a warning from Visual Age C++. - - * apps/JAWS3/jaws3/Event_Dispatcher.cpp: Added #include - "ace/Log_Msg.h" to pick up logging macros. Removed #include - "ace/OS.h". - - * examples/Reactor/Proactor/test_cancel.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/Proactor/test_udp_proactor.cpp: - * performance-tests/Synch-Benchmarks/synch_driver.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/adaptive_mutex_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/adaptive_recursive_lock_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/adaptive_sema_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/pipe_proc_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/pipe_thr_test.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/base_test.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/mutex_test.cpp: - Added #include for OS_NS_*.h methods and/or "ace/Log_Msg.h" to - pick up logging macros. - - * performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp: Added - #include "ace/Guard_T.h" to see ACE_GUARD macros and classes. - - * performance-tests/Synch-Benchmarks/Perf_Test/memory_test.cpp: Added - #include "ace/OS_NS_string.h" to see ACE_OS stuff. - - * performance-tests/Synch-Benchmarks/Perf_Test/recursive_lock_test.cpp: - Added #include "ace/Recursive_Thread_Mutex.h" to find that class. - - * performance-tests/Synch-Benchmarks/Perf_Test/rwrd_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/rwwr_test.cpp: Added - #include "ace/RW_Mutex.h" to find that class. - -Fri May 7 14:25:07 2004 Ossama Othman - - * ace/Log_Msg.cpp: - - Don't bother checking if errno is less than sys_nerr on glibc - platforms. strerror() can handle values greater than sys_nerr - gracefully. Fixes "`sys_nerr' is deprecated; use `strerror' or - `strerror_r' instead" link-time warnings. - - Replaced deprecated ACE cast macro usage with ANSI C++ cast - counterparts. - -Fri May 7 09:38:06 2004 Ossama Othman - - * ace/Mutex.h: - - Fixed doxygen documentation. - - Removed "ace/Log_Msg.h" include. It isn't needed in this - header. - - * ace/Mutex.cpp: - - Include "ace/Log_Msg.h" to pull in ACE_ERROR macros. - -Fri May 7 08:08:05 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Reverted my change from Thu May 6 12:16:16 2004. It can cause - problems when all the generated files are present, but are - out-of-date. - -Fri May 7 12:15:33 UTC 2004 Johnny Willemsen - - * ace/config*.h: - Removed setting of ACE_NTRACE to 1 when it is not set, this is - already done in config-all.h, so there is no need to do it - in each config file seperately. - -Fri May 7 09:48:32 UTC 2004 Johnny Willemsen - - * include/makeinclude/build_example.bor: - Removed this file, with the MPC transition we don't use it anymore - -Fri May 7 09:11:21 UTC 2004 Johnny Willemsen - - * ace/OS_Export.h: - Removed this file, with the rework in ACE_OS the ACE_OS_Export has - been deprecated and not used. This file is only used in the ACE - library itself and not by users, so it is safe to remove this. - This fixes bugid 1700. - - * ace/ace.mpc: - * ace/config-win32-ghs.h: - Removed usage of ACE_OS_BUILD_DLL and ACE_OS_HAS_DLL - -Thu May 6 22:15:14 2004 Ossama Othman - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - * include/makeinclude/wrapper_macros.GNU: - - ".inl" is now the default TAO_IDL generated stub/skeleton inline - file extension instead of ".i". The latter is generally used - for preprocessed C sources. Updated these files accordingly. - -Thu May 7 02:00:00 2004 Marek Brudka - - * examples/Service_Configurator/IPC-tests/: - * Service_Configurator_IPC_Client.mpc move to Svc_Cfg_IPC_Client.mpc - * _test postix appended to resulting executables to ensure conformance with - examples/Service_Configurator/IPC-tests/README - * examples/Service_Configurator/IPC-tests/README: modified to reflect saome name - changes - * examples/Service_Configurator/IPC-tests/server/svc.conf repaired as for some time - shared library is called IPC_Tests_Server, but not just Server - * examples/C++NPv2/C++NPv2.moc: project names with *Logging* changed to *Log* - * performance-tests/Server_Concurrency/Queue_Based_Workers/Server_Concurrency_Queue_Based_Workers.mpc: - moved to Svr_Conc_Queue_Based_Workers.mpc - * performance-tests/Server_Concurrency/Leader_Follower/Server_Concurrency_Leader_Follower.mpc: - moved to Svr_Conc_Leader_Follower.mpc - -Thu May 6 12:16:16 2004 Chad Elliott - - * ACEXML/common/common.mpc: - - Since Source_Files is now specified, we need to also specify the - Header_Files that do not correspond to any cpp files. - - * bin/MakeProjectCreator/config/notification.mpb: - - The TAO_CosNotification library needs the TAO_Svc_Utils library. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Only use the .NOTPARALLEL: rule if all of the generated files have - not been generated. This can speed up parallel builds on a - rebuild and on projects that share generated source files. - -Thu May 6 12:43:29 2004 Steve Huston - - * examples/Bounded_Packet_Relay/BPR_Drivers.cpp: - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp: - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: - * examples/C++NPv2/TPC_Logging_Server.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp: - Added missing #includes so Visual Age C++ can see ACE_OS methods. - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Moved the declarations - of AC_Input_Handler and AC_Output_Handler to a new file, - AC_Client_Logging_Daemon.h, so Visual Age C++ can see them when - instantiating templates. - - * examples/C++NPv2/AIO_Client_Logging_Daaemon.cpp: Moved the - declarations of AIO_Input_handler, AIO_Output_Handler, and - AIO_CLD_Connector to a new file, AIO_Client_Logging_Daemon.h, - so Visual Age C++ can see them when instantiating templates. - - * examples/Reactor/Proactor/test_cancel.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: Moved the declaration - of the Receiver class to a new file, test_cancel.h and - test_proactor.h respectively, so Visual Age C++ can see it when - instantiating templates. - -Thu May 6 11:04:22 2004 Steve Huston - - * examples/DLL/Today.{h cpp}: - * examples/DLL/Newsweek.{h cpp}: Added a nothrow-variant operator - new if ACE_HAS_NEW_NOTHROW is defined. The ACE_NEW_* macros use - nothrow when available. - -Wed May 5 23:35:33 2004 Ossama Othman - - * ace/Get_Opt.cpp (~ACE_Get_Opt_Long_Option): - - MSVC++ 6 can't deal with delete[]ing a const ACE_TCHAR *. - Reintroduced a const_cast<> that addresses this issue by - reverting a portion of the change in the "Wed May 5 14:14:53 - 2004 Ossama Othman " set of - changes. - -Wed May 5 23:27:36 2004 Ossama Othman - - * ace/OS_NS_sys_stat.inl (fstat): - - Corrected static_cast<> typo in Win32 case. Fixes Win32 - compile-time errors. - -Wed May 5 22:30:44 2004 Ossama Othman - - * Kokyu/tests/DSRT_MIF/MIF.cpp: - * apps/JAWS3/jaws3/Concurrency.h: - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp: - * examples/Smart_Pointers/widget_test.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/mutex_test.cpp: - - Include appropriate headers to fix undefined type compile-time - errors. - - * examples/Reactor/Proactor/test_timeout.cpp: - - Changed ACE_Atomic_Op<> lock template parameter from - ACE_Thread_Mutex to ACE_SYNCH_MUTEX. Allows this file to build - in single threaded builds. - -Wed May 5 16:34:13 2004 Ossama Othman - - * ace/CDR_Base.h (ACE_CDR): - - Improved doxygen documentation of basic CDR/IDL types. - - (ACE_CDR::Boolean): - - Versions of GNU G++ less than version 3.0 defined a pre-C99 bool - type that was an enumeration. In some cases the enumeration - could be promoted to an int, causing a potential problem where a - 4 byte integer (for example) could be selected when attempting - to send a boolean over a CDR stream. - -Wed May 5 18:10:32 2004 Steve Huston - - * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp: Change #include - to "ace/OS_NS_stdio.h" since ACE_OS::fprintf() is used. - -Wed May 5 14:14:53 2004 Ossama Othman - - * ace/Future.h (ACE_Future_Rep): - * ace/Map_Manager.h (ACE_Map_Manager): - * ace/Refcounted_Auto_Ptr.h: - - Declare lock members as "mutable" to avoid using a - const_cast<> hack in const methods that modify the lock - member through an ACE_GUARD. - - * ace/Future.cpp (get): - * ace/Map_Manager.i (current_size, total_size): - * ace/Refcounted_Auto_Ptr.i: - - Removed const_cast<> around lock member. It is no longer - needed since the lock member is now declared "mutable". - - * ace/CDR_Stream.h: - - Minor Doxygen documentation update. - - * ace/ACE.cpp: - * ace/ARGV.cpp: - * ace/ARGV.i: - * ace/ATM_Acceptor.cpp: - * ace/ATM_Connector.cpp: - * ace/ATM_Stream.cpp: - * ace/Acceptor.cpp: - * ace/Activation_Queue.cpp: - * ace/Arg_Shifter.cpp: - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_Connector.cpp: - * ace/Asynch_IO.cpp: - * ace/Atomic_Op.cpp: - * ace/Atomic_Op.i: - * ace/Base_Thread_Adapter.cpp: - * ace/Based_Pointer_T.i: - * ace/Basic_Stats.cpp: - * ace/Basic_Types.h: - * ace/Basic_Types.i: - * ace/CDR_Base.cpp: - * ace/CDR_Base.inl: - * ace/CDR_Stream.cpp: - * ace/CDR_Stream.i: - * ace/Caching_Utility_T.cpp: - * ace/Cleanup.cpp: - * ace/Codecs.cpp: - * ace/Codeset_IBM1047.cpp: - * ace/Condition_T.inl: - * ace/Configuration.cpp: - * ace/Connector.cpp: - * ace/Containers_T.cpp: - * ace/DEV_Addr.i: - * ace/DEV_IO.cpp: - * ace/DEV_IO.i: - * ace/DLL.cpp: - * ace/DLL_Manager.cpp: - * ace/Dev_Poll_Reactor.cpp: - * ace/Dynamic_Service.cpp: - * ace/Env_Value_T.h: - * ace/FIFO_Recv_Msg.i: - * ace/FIFO_Send_Msg.cpp: - * ace/FIFO_Send_Msg.i: - * ace/FILE_Addr.cpp: - * ace/FILE_Connector.cpp: - * ace/FILE_IO.cpp: - * ace/FlReactor.cpp: - * ace/Framework_Component.cpp: - * ace/Functor_T.i: - * ace/Future_Set.cpp: - * ace/Get_Opt.cpp: - * ace/Global_Macros.h: - * ace/Hash_Map_Manager_T.cpp: - * ace/Hash_Map_Manager_T.i: - * ace/High_Res_Timer.cpp: - * ace/INET_Addr.cpp: - * ace/INET_Addr.i: - * ace/Lib_Find.cpp: - * ace/Local_Name_Space.cpp: - * ace/Log_Record.i: - * ace/MEM_Addr.cpp: - * ace/MEM_Connector.cpp: - * ace/MEM_IO.i: - * ace/MEM_SAP.i: - * ace/Malloc_T.cpp: - * ace/Malloc_T.i: - * ace/Mem_Map.cpp: - * ace/Mem_Map.i: - * ace/Memory_Pool.i: - * ace/Message_Queue.i: - * ace/Multihomed_INET_Addr.cpp: - * ace/Mutex.inl: - * ace/Name_Proxy.cpp: - * ace/Name_Request_Reply.cpp: - * ace/OS_NS_Thread.inl: - * ace/OS_NS_arpa_inet.inl: - * ace/OS_NS_dirent.inl: - * ace/OS_NS_dlfcn.inl: - * ace/OS_NS_math.inl: - * ace/OS_NS_netdb.inl: - * ace/OS_NS_signal.inl: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_stdlib.inl: - * ace/OS_NS_string.inl: - * ace/OS_NS_stropts.inl: - * ace/OS_NS_sys_msg.inl: - * ace/OS_NS_sys_shm.inl: - * ace/OS_NS_sys_socket.inl: - * ace/OS_NS_sys_stat.inl: - * ace/OS_NS_time.inl: - * ace/OS_NS_unistd.inl: - * ace/OS_TLI.inl: - * ace/Object_Manager.i: - * ace/Obstack_T.i: - * ace/Process.cpp: - * ace/Process_Manager.cpp: - * ace/Profile_Timer.cpp: - * ace/RB_Tree.i: - * ace/Recursive_Thread_Mutex.inl: - * ace/Registry.cpp: - * ace/SOCK.cpp: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram.i: - * ace/SOCK_IO.cpp: - * ace/SOCK_IO.i: - * ace/SPIPE_Addr.cpp: - * ace/SPIPE_Stream.cpp: - * ace/SString.i: - * ace/SUN_Proactor.cpp: - * ace/SV_Semaphore_Simple.cpp: - * ace/SV_Semaphore_Simple.h: - * ace/Select_Reactor_Base.cpp: - * ace/Service_Config.cpp: - * ace/Service_Manager.cpp: - * ace/Service_Object.cpp: - * ace/Service_Types.cpp: - * ace/Service_Types.i: - * ace/Shared_Memory_MM.i: - * ace/Shared_Memory_SV.i: - * ace/Signal.i: - * ace/Stats.cpp: - * ace/Strategies_T.cpp: - * ace/String_Base.cpp: - * ace/String_Base.i: - * ace/Svc_Conf.h: - * ace/Task.cpp: - * ace/Thread_Adapter.cpp: - * ace/Thread_Manager.i: - * ace/Time_Value.inl: - * ace/Typed_SV_Message_Queue.i: - * ace/ace_wchar.inl: - - Converted all uses of ACE cast macros to their corresponding - ANSI C++ equivalent. The ACE cast macros are deprecated. - - * ace/OS_NS_fcntl.h: - - Nuked trailing whitespace. - -Wed May 5 16:16:33 2004 Steve Huston - - * ace/WIN32_Proactor.cpp (post_completion): reinterpret_cast the void* - to ULONG_PTR on Win64. - -Wed May 5 14:52:21 2004 Steve Huston - - * apps/soreduce/Library.cpp: - * apps/soreduce/Obj_Module.cpp: - * apps/soreduce/Sig_List.cpp: - * apps/soreduce/SO_Group.cpp: - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/OS/Process/process.cpp: - * examples/Reactor/Proactor/test_end_event_loop.cpp: - * examples/Reactor/Proactor/post_completions.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/Proactor/test_timeout.cpp: - * examples/Reactor/Proactor/test_udp_proactor.cpp: - * examples/Service_Configurator/Misc/Timer_Service.cpp: - * examples/Threads/cancel.cpp: - * examples/Web_Crawler/Command_Processor.cpp: - * examples/Web_Crawler/HTTP_URL.cpp: - * examples/Web_Crawler/Options.{h cpp}: - * examples/Web_Crawler/URL_Visitor.cpp: Added #includes for various - "ace/OS_NS_*.h" files to let Visual Age C++ see missing methods. - - * apps/soreduce/Obj_Module.h: Added forward declaration for - ACE_Message_Block. - - * examples/Misc/test_XtReactor1.cpp: - * examples/Misc/test_XtReactor2.cpp: - * examples/OS/Process/imore.cpp: - * performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp: - Added #include "ace/Log_Msg.h". - -Wed May 5 09:18:00 2004 Justin Michel - - * ace/OS_NS_unistd.inl: - - Attempt to use ::gethostname() on Win32, before falling back to - GetComputerName(), to implement ACE_OS::hostname(). The latter - returns the NetBios name, which may not be the same as the DNS - name. - -Wed May 5 09:13:46 2004 Carlos O'Ryan - - * ace/ace.mpc: - * ace/Auto_Functor.h: - * ace/Auto_Functor.inl: - * ace/Auto_Functor.cpp: - Moved from TAO/tao, this class provides auto_ptr<>-like - functionality, what to do on destruction is controlled by a - functor. So, you could write auto_ptr<> and - ACE_Auto_Array_Ptr<> in terms of it, and many other similar - classes. - -Tue May 4 18:32:49 2004 Steve Huston - - * apps/mkcsregdb/mkcsregdb.cpp: Added #includes to pick up missing - ACE_OS methods on AIX. - -Tue May 4 18:16:33 2004 Steve Huston - - * ace/OS_NS_stdio.cpp (checkUnicodeFormat): ACE_OS::fread() returns - size_t, not int. - - * ace/WIN32_Proactor.cpp (register_handle): reinterpret_cast the void* - to ULONG_PTR on Win64. - - * apps/soreduce/Obj_Module.{h cpp} (add_source): - * apps/soreduce/Library.{h cpp} (ctor, load_modules, set_path): - Changed path arugment and usage from ACE_TCHAR* to char*. It's - used only with narrow chars throughout the rest of the sources. - -Tue May 4 09:51:24 2004 Balachandran Natarajan - - * bin/make_release: - - Fix for [BUG 1798]. Thanks to Johnny for reporting this bug. - -Mon May 3 18:12:30 2004 Steve Huston - - * ace/TMCast/MTQueue.hpp: Remove 'mutable' from the mutex_ member. - Visual Age C++ says you can only 'mutable' a non-reference member. - - * ace/TMCast/TransactionController.hpp: Added #include - "ace/OS_NS_string.h" so Visual Age C++ can find ACE_OS::memcpy(). - Added #include to enable typeid operator. - - * Kokyu/tests/DSRT_MIF/MIF.cpp: Added #include "ace/ACE.h" so Visual - Age C++ can see ACE::is_prime(). - - * Kokyu/tests/EDF/test.cpp: Added #include "ace/OS_NS_sys_time.h" so - Visual Age C++ can see ACE_OS::gettimeofday(). - - * ASNMP/asnmp/octet.cpp (to_string_hex): Instead of using separate - #if/#endif blocks for fmt, one for WIN32, and one for __unix, use - #if WIN32, #else. __unix wasn't defined for Visual Age C++ 6. - - * apps/JAWS/clients/Blobby/Blob.cpp: - * apps/JAWS/clients/Blobby/Blob_Handler.cpp: Added #include - "ace/OS_NS_string.h" so Visual Age C++ can see ACE_OS:: string - methods. - -Mon May 3 13:13:00 2004 Chad Elliott - - * bin/MakeProjectCreator/config/mfc.mpb: - - Removed this file. - - * bin/MakeProjectCreator/config/ace_mfc.mpb: - - The majority of the mfc has been moved out into the MPC config - directory. The ace_mfc base project now inherits from mfc and - adds ACE_HAS_MFC=1 to the macros. - - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.mpc: - - Inherit from ace_mfc instead of mfc. - - * bin/cle.pl: - - Enhanced the domain name detection on Windows. - -Mon May 3 09:58:25 2004 Ossama Othman - - * include/makeinclude/rules.local.GNU: - * include/makeinclude/rules.nested.GNU: - - Changed references to "Makefile" to "GNUmakefile". - -Mon May 3 00:00:00 2004 Ossama Othman - - * Makefile*: - - Removed all Makefiles. GNUmakefiles must now be generated by - MPC. - -Sun May 2 13:53:12 UTC 2004 Johnny Willemsen - - * ace/Task.cpp (svc_run): - Also MSVC8 needs to use the static cast instead of reinterpet - case. - -Sat May 1 22:23:35 2004 Ossama Othman - - * Makefile: - * bin/Makefile: - * GNUmakefile: - * bin/GNUmakefile: - - Renamed "Makefile"s to "GNUmakefile"s to make it obvious to - users that GNU Make is required to parse the files. - - * bin/ace-install: - * bin/ace_components: - * bin/count_lines: - * bin/create_ace_build.pl: - * bin/fuzz.pl: - * bin/g++dep: - * bin/make_release: - * bin/perltest2cpp.pl: - * bin/update-ace+tao.sh: - - Updated to references to "Makefile" to use the new name - "GNUmakefile". - -Sat May 01 17:12:21 UTC 2004 Johnny Willemsen - - * apps/Gateway/Gateway/Options.{h,cpp}: - Fixed compile problems in unicode build - -Sat May 01 13:52:32 UTC 2004 Johnny Willemsen - - * ace/SSL/SSL_Asynch_Stream.h: - Doxygen improvement - -Sat May 01 13:17:54 UTC 2004 Johnny Willemsen - - * ace/TMCast/MTQueue.hpp: - Fixed unused parameter warnings - -Sat May 01 12:58:43 UTC 2004 Johnny Willemsen - - * examples/APG/Logging/LogManager.h: - * examples/APG/Logging/Use_Multiple_Sinks.cpp: - * examples/APG/Logging/Use_Ostream.cpp: - Changed checking for _MSC_VER, first check if this define is - set. This fixes warnings in the GCC 3.4 build. - -Sat May 01 11:51:34 UTC 2004 Johnny Willemsen - - * docs/minimumTAO.html: - Updated link for footprint stats. - -Sat May 01 11:20:32 UTC 2004 Johnny Willemsen - - * Kokyu/tests/FIFO/test.cpp: - Fixed compile problems in unicode builds - -Sat May 01 09:44:21 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - Updated Remedy supported platforms, updated Borland build info - and added a non supported platforms section where we list the - platforms that have been supported in the past, but are now - not anymore. - -Fri Apr 30 18:11:35 2004 Ossama Othman - - * PACE: - - Removed PACE from the ACE CVS module. It is no longer - maintained. - - * configure.ac: - - Do not define ACE_HAS_ANSI_CASTS if the compiler supports ANSI - C++ casts. ACE now requires that support. If the compiler does - not support ANSI C++ casts, issue an error message accordingly. - - * m4/config_h.m4 (ACE_PREP_CONFIG_HEADER): - - Removed template for ACE_HAS_ANSI_CASTS macro. It is no longer - used. [Bug 1758] - - * ace/README: - - Removed description for ACE_HAS_ANSI_CASTS macro. It is no - longer used since compilers that do not support ANSI C++ casts - are no longer supported. [Bug 1758] - - * ace/config-lite.h: - - Removed ACE cast macros that wrap C style casts, i.e those used - when ACE_HAS_ANSI_CASTS is not defined. ACE now requires - compilers that support ANSI C++ casts (e.g. static_cast<>, - etc). [Bug 1758] - - Documented ACE cast macros as deprecated. - - * ace/config-win32-msvc.h: - - Do not support the MSVC++ 5 configuration header. MSVC++ 5 is - no longer supported. - - * ace/config-win32-msvc-5.h: - - Removed this configuration header. MSVC++ 5 has not been - supported for quite some time. - - * ace/config-borland-common.h: - * ace/config-chorus.h: - * ace/config-cray.h: - * ace/config-cxx-common.h: - * ace/config-g++-common.h: - * ace/config-hpux-10.x-hpc++.h: - * ace/config-hpux-11.00.h: - * ace/config-icc-common.h: - * ace/config-integritySCA.h: - * ace/config-macosx-panther.h: - * ace/config-macosx.h: - * ace/config-openvms.h: - * ace/config-osf1-4.0.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-sunos5.5.h: - * ace/config-sunos5.6.h: - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-unixware-7.1.0.udk.h: - * ace/config-win32-ghs.h: - * ace/config-win32-msvc-6.h: - * ace/config-win32-msvc-7.h: - * ace/config-win32-visualage.h: - - Removed all references to the deprecated ACE_HAS_ANSI_CASTS - macro. [Bug 1758] - -Fri Apr 30 14:20:41 2004 Steve Huston - - * include/makeinclude/platform_aix_g++.GNU: For AIX 5.x, changed the - SOFLAGS link option -Wl,-bexpall to -Wl,-bexpfull. This allows the - gcc 3.x type information to be exported to the library and useable - by applications. Thanks very much to Randy Hammon - for this fix! - Also, if rtti=0, add -DACE_LACKS_RTTI to CFLAGS in addition to adding - -fno-rtti. Also changed the rtti default from 0 to 1. - - * THANKS: Added Randy Hammon to the Hall of Fame. - -Fri Apr 30 10:19:28 2004 Steve Huston - - * ace/OS_NS_sys_socket.inl (read): Fix typo, missing _. - -Thu Apr 29 14:17:46 2004 Ossama Othman - - * ace/config-doxygen.h (OPENSSL_VERSION_NUMBER): - - Define this macro to be greater than a certain value so that the - ACE_SSL asynchronous IO class documentation can be generated by - Doxygen. [Bug 1748] - -Thu Apr 29 13:48:30 2004 Ossama Othman - - * ace/OS_NS_sys_socket.inl (sendv): - - Corrected problem for the Winsock 1 case where the amount of - previously sent data would not be reported if an error occurred - when attempting to send data in a subsequent loop iteration. - - (accept, recv, send): - * ace/OS_NS_unistd.inl (read): - - Do not set errno to EWOULDBLOCK when errno is set to EAGAIN and - EGAIN equals EWOULDBLOCK. This saves us two (equality check and - assignment) TSS accesses for the _REENTRANT case on platforms - where EGAIN and EWOULDBLOCK are the same (e.g. Linux). - Performance improvements should be evident those platforms. - - * ace/OS_NS_sys_uio.cpp (writev_emulation): - - Replaced the old implementation with a new faster one based on - the one in ace/SSL/SSL_SOCK_Stream.cpp that incurs no - allocations nor copies. The new implementation can also handle - partial writes. Performance improvements should be visible on - platforms that do not support writev() (i.e. define - ACE_LACKS_WRITEV), such as MS Windows. - -Thu Apr 29 14:35:49 2004 Steve Huston - - * ace/SOCK_SEQPACK_Connector.cpp (shared_connect_start): Corrected - sizeof() usage; error introduced at: - Thu Apr 29 11:25:49 2004 Steve Huston - -Thu Apr 29 11:37:12 2004 Steve Huston - - * ace/SSL/SSL_Context.cpp: Add #include "ace/Guard_T.h" so AIX Visual - Age C++ can see ACE_Guard. - - * tests/Refcounted_Auto_Ptr_Test.cpp: Add #include "ace/Null_Mutex.h" - so AIX Visual Age C++ can see ACE_Null_Mutex when instantiating - templates. - -Thu Apr 29 11:25:49 2004 Steve Huston - - These are all to quiet the 64-bit compiler on Win64. - - * ace/CDR_Stream.i (write_wstring): cast size_t return from - ACE_OS::strlen() to ACE_CDR::ULong to correct types. - - * ace/OS_NS_stropts.inl (putmsg): ACE_OS::write() returns ssize_t; - cast it back to int for return to caller. - - * ace/OS_NS_sys_uio.{h, inl, .cpp}: writev() returns ssize_t. Thus, - the writev_emulation() method also must return ssize_t. Also - corrected the ACE_OSCALL_RETURN 'type' argument from int to ssize_t. - - * ace/Process.cpp (spawn): When forming the +H command line options, - use %I64d, not %d, on Win64. - - * ace/SOCK_SEQPACK_Acceptor.cpp (shared_open): Cast the 'namelen' - argument to ACE_OS::bind() to int to match the signature. - - * ace/SOCK_SEQPACK_Association.{h i} (recvv_n, sendv_n): The iovec - count was changed from size_t to int to be consistent with the - other analogous methods in ACE. - - * ace/SOCK_SEQPACK_Association.cpp (get_local_addrs, get_remote_addrs): - Correct usage of int/size_t types. - - * ace/SOCK_SEQPACK_Connector.cpp (shared_connect_start): Use 'int', - not 'size_t' as address length argument to ACE_OS::bind(). - - * ace/UUID.cpp (to_string): Change UUID_STRING_LENGTH from int to - size_t to match string handling length types. - -Thu Apr 29 06:13:21 UTC 2004 Johnny Willemsen - - * examples/APG/ThreadSafety/Tokens_Deadlock.cpp: - Include ace/OS_NS_unistd.h to get ACE_OS sleep - -Wed Apr 28 22:06:08 2004 Ossama Othman - - * ace/Basic_Stats.cpp: - * ace/Parse_Node.cpp: - * ace/Sample_History.cpp: - * ace/Stats.cpp: - - Fixed unused parameter and variable warnings in the ACE_NLOGGING - case. - - * netsvcs/lib/Token_Handler.cpp: - - Include "ace/Signal.h" to pull in ACE_Sig_Action class - declaration. - -Wed Apr 28 14:25:21 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Removed $(EXEEXT) for BIN_UNCHECKED. This has strange problems - in our MinGW build. We are looking at this again for OpenVMS. - -Wed Apr 28 13:00:22 UTC 2004 Johnny Willemsen - - * ace/Mutex.{cpp,inl}: - - Improved the dump() method. - - Release all resources in the remove() - - Changed the constructor not to allocate unnecessary resource - (thread mutex) in case process shared mutex is requested - *and* supported - Change from Martin Corino - -Wed Apr 28 12:53:32 UTC 2004 Johnny Willemsen - - * ace/Lib_Find.cpp: - * ace/Memory_Pool.cpp: - Added missing quotes to the ACE_RCSID macro. - -Wed Apr 28 12:19:32 UTC 2004 Johnny Willemsen - - First checkin of the OpenVMS port of ACE. This port is done by - Martin Corino . This is not finished yet, we have - to do more testing but a lot of the ACE tests work without problems. - Documentation and readmes will be updated in the near future with - an explanation how to use ACE on OpenVMS. - - * ace/Mem_Map.cpp (open): - Added special VMS sharing attributes for memory map file ::open() - - * ace/Memory_Pool.cpp (commit_backing_store_name): - ::fsync() called to make sure change is commited to disk. - - * ace/Lib_Find.cpp (ldfind, ldname): - Added OpenVMS way of finding shared libraries - - * ace/ACE.i (recv_i): - OpenVMS cannot ::read() on socket, must use ::recv() - - * ace/OS_NS_sys_stat.inl (fstat): - Called ::fsync() before calling ::fstat() to make sure all changes - have been commited to disk - - * ace/OS_NS_sys_mman.inl: - In ACE_OS::mmap() added ::fsync() before ::mmap() to make sure all - is committed to disk. - In ACE_OS::shm_open() added special OpenVMS sharing attributes for - memory map file ::open() - - * ace/config-openvms.h: - New config file for OpenVMS 7.3-2. - - * include/makeinclude/platform_openvms.GNU: - New file for OpenVMS 7.3-2 - - * bin/MakeProjectCreator/templates/gnu.mpd: - Use $(EXEEXT) for BIN_UNCHECKED. - -Wed Apr 28 09:34:11 UTC 2004 Johnny Willemsen - - * include/makeinclude/rules.local.GNU: - Added special way of pwd retrieval for mingw because the normal - way gives problems under mingw. Thanks to Martin Corino - for creating this patch. - -Wed Apr 28 06:19:32 UTC 2004 Johnny Willemsen - - * ace/OS_NS_stdio.cpp (DllMain): - Replaced check for ACE_OS_HAS_DLL with ACE_HAS_DLL. ACE_OS_HAS_DLL - is deprecated and will be removed in the near future. Thanks to - Felix Wyss for reporting this. - -Wed Apr 28 06:13:13 UTC 2004 Johnny Willemsen - - * tests/Pipe_Test.cpp: - * tests/Process_Mutex_Test.cpp: - Fixed compile problems in unicode builds - -Tue Apr 27 18:15:40 2004 Steve Huston - - * ace/OS_NS_Thread.inl (rw_trywrlock_upgrade): If on a platform - with ACE_HAS_PTHREADS_UNIX98_EXT, try the call. It'll probably fail, - but the error is more accurate than ENOTSUP. - - * tests/Reader_Writer_Test.cpp: Realign the diagnostics on write lock - upgrade failure to match the #if/#else logic in - ACE_OS::rw_trywrlock_upgrade(). Add some %p to the output to help - more in failure conditions. - -Tue Apr 27 08:31:21 UTC 2004 Johnny Willemsen - - * examples/APG/ThreadPools/TP_Reactor.cpp: - * examples/APG/Threads/Message_Queue.cpp: - Don't use ACE_Reactor deprecreated methods. - -Tue Apr 27 08:18:23 UTC 2004 Johnny Willemsen - - * tests/MT_Reactor_Timer_Test.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/Service_Config_Test.cpp: - * tests/TP_Reactor_Test.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - Don't use ACE_Get_Opt and ACE_Reactor deprecreated methods. - -Mon Apr 26 17:21:39 2004 Steve Huston - - * configure.ac: Change the tests for sem_init() and sem_destroy() to - use AC_SEARCH_LIBS instead of AC_CHECK_FUNC. The entrypoints are in - librt, so weren't being located. This allows ACE_HAS_POSIX_SEM to - be detected correctly. - -Mon Apr 26 17:31:11 UTC 2004 Johnny Willemsen - - * ace/Acceptor.cpp: - Use ACE_Reactor::instance()->end_reactor_event_loop () to end the - event loop instead of the deprecated ACE::Reactor::end_event_loop() - -Mon Apr 26 02:09:01 2004 Ossama Othman - - * ace/CDR_Base.h (ACE_CDR::Boolean): - - This type is now a true C++ "bool". On a related note, the - OMG IDL-to-C++ mapping allows this type to be "bool" for ANSI - compliant compilers. All compilers currently supported by ACE - support the C++ "bool" type, so we're in luck. - - * ace/CDR_Stream.h: - - Made all single argument "{from,to}_*" constructors explicit (if - supported by the compiler), as required by the OMG IDL-to-C++ - mapping. Addresses potential implicit conversion issues. - - Fixed some broken Doxygen documentation. - - (good_bit_, do_byte_swap_, current_is_writable_): - - Converted these flags and their corresponding accessors from - "int" to "bool", and changed the declaration order to optimize - size of ACE_{Output,Input}CDR classes by avoiding unnecessary - static alignment padding. Both classes are now 8 - bytes smaller, at least on platforms with 4 byte alignment. - - * ace/CDR_Stream.i: - - Updated good_bit_, do_byte_swap_ and current_is_writable_ - assignments to use C++ "bool" values. - - * ace/CDR_Stream.cpp: - - Updated base member initializer lists to match new member - declaration order. - - Updated good_bit_, do_byte_swap_ and current_is_writable_ - assignments to use C++ "bool" values. - - Use "const" where applicable. - - Use prefix increment operator instead of postfix increment - operator where applicable. The former is more efficient. - -Mon Apr 26 15:05:12 UTC 2004 Johnny Willemsen - - * ace/Message_Queue.cpp: - In ACE_Message_Queue_NT::open() use ACTIVATED instead of - WAS_ACTIVE because the last is deprecated. - -Mon Apr 26 10:04:43 2004 Chad Elliott - - * bin/MakeProjectCreator/config/mfc.mpb: - - Within 'specific' sections, set the subsystem and use_mfc template - variables to correct values for use with MFC. - -Mon Apr 26 09:59:32 UTC 2004 Johnny Willemsen - - * ace/Memory_Pool.h: - Doxygen improvements - -Mon Apr 26 07:44:21 UTC 2004 Johnny Willemsen - - * os-patches/vxworks-5.1.txt: - Removed this file from the repo. It is not correct anymore - and we don't support VxWorks 5.1 anymore. - -Mon Apr 26 07:18:23 UTC 2004 Johnny Willemsen - - * tests/test_config.h: - Removed the non win32 version of ACE_APPEND_LOG. Bug 1792 - reported that child logs didn't work on non win32 platforms. - A tests on our linux system demonstrated that when we removed - the non win32 version of ACE_APPEND_LOG things works again - on Linux. This non win32 version did close the file stream - and this seems not logical. Thanks to Martin Corino - for reporting this. - -Sun Apr 25 23:17:26 2004 Ossama Othman - - * examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp: - - Include "ace/Null_Mutex.h" to pull in ACE_Null_Mutex class - declaration. - - * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp: - - Include "ace/Log_Msg.h" and "ace/OS_NS_stdio.h" to pull - ACE_ERROR related macros and ACE_OS::perror() prototype, - respectively. - - * examples/IPC_SAP/SSL_SAP/Makefile: - - Added missing ACE SSL preprocessor and linker flags. - -Sun Apr 25 09:22:50 2004 Chad Elliott - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - - Make use of new MPC features to correctly represent the output - files generated with various tao_idl options. - -Sun Apr 25 09:57:54 UTC 2004 Johnny Willemsen - - * tests/Tokens_Test.cpp: - Added include of ace/Barrier.h to fix compile error - -Sun Apr 25 09:52:13 UTC 2004 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO/tests/Collocation/run_test.pl - -Fri Apr 23 22:35:23 2004 Ossama Othman - - * ace/Process_Manager.cpp (wait): - * ace/WFMO_Reactor.cpp (dispatch_handles): - - Fixed "pointless comparison of unsigned integer with zero" - MSVC++ 7.1 warning. - -Fri Apr 23 22:26:19 2004 Ossama Othman - - * examples/Web_Crawler/Iterators.cpp (next): - - Explicitly cast offset value from size_t to off_t to address - "change of sign in integer conversion" warning exhibited by - MSVC++ 7.1. - -Fri Apr 23 22:13:35 2004 Ossama Othman - - * ace/Token_Collection.h: - * ace/Token_Invariants.h: - - Include "ace/Null_Mutex.h" to pull ACE_Null_Mutex class - declaration. - -Fri Apr 23 20:25:05 2004 Ossama Othman - - * Kokyu/Kokyu_defs.h: - * Kokyu/Kokyu_defs.i: - - Changed return types for equality operators to "bool", as is the - norm for modern C++. - -Fri Apr 23 12:50:34 2004 Ossama Othman - - * tests/Config_Test.cpp (iniCompare): - - Changed type of equality flag variable from an "int" to a - "bool". Addresses a "'&=' : unsafe mix of type 'int' and type - 'bool' in operation" warning exhibited by MSVC++ 6. - -Fri Apr 23 11:23:04 2004 Ossama Othman - - * ace/Local_Tokens.cpp: - * ace/Local_Tokens.h: - * ace/Timeprobe.h: - - Do not include "ace/Synch{_T}.h". Include less expensive ones - instead. Fixes a "fuzz" error. - - * ace/Token_Manager.h: - - Moved "ace/Map_Manager.h" inclusion within the - ACE_HAS_TOKENS_LIBRARY block. There is no need to include it if - that macro isn't defined. - -Fri Apr 23 11:14:51 2004 Ossama Othman - - * examples/Smart_Pointers/Widget_Impl.h: - - Include "ace/Synch_Traits.h" and "ace/Thread_Mutex.h". - Necessitated by header inclusion reductions in - "ace/Refcounted_Auto_Ptr.*". - -Fri Apr 23 15:01:23 UTC 2004 Johnny Willemsen - - * tests/Thread_Manager_Test.cpp: - When ACE_LACKS_PTHREAD_KILL has been defined, don't fail on a - non supported kill. Thanks to Martin Corino - for extending this. - -Fri Apr 23 14:49:21 UTC 2004 Johnny Willemsen - - * tests/run_test.pl: - Changed the way we integrate with Codeguard. Removed the -g - commandline option and use "-Config Codeguard" to enable - inspection of codeguard logs. This is much easier to maintain - and this way the bin/auto_run_tests.pl doesn't need to be - modified. - -Fri Apr 23 10:30:31 2004 Steve Huston - - * tests/Recursive_Condition_Test.cpp: Missed a variable change. - -Fri Apr 23 07:35:41 2004 Steve Huston - - * ace/OS_NS_Thread.inl (mutex_init): Forgot some changes of type to - lock_scope for Windows. - -Fri Apr 23 11:24:21 UTC 2004 Johnny Willemsen - - * tests/run_test.pl: - Extended the checking of children logs. Some tests spawn child - processes and these processes log then to a different log - startin with the executable name, but then with a postfix. These - child logs are already inspected, but only for error and warning - not for the starting/ending lines. We now check whether starting - and ending is in the log file and also the number of starting - and ending lines must match. - -Fri Apr 23 06:18:43 UTC 2004 Johnny Willemsen - - * tests/Pipe_Test.cpp: - * tests/Process_Manager_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/Signal_Test.cpp: - * tests/Time_Service_Test.cpp: - These tests did check for ACE_LACKS_FORK but didn't use fork - at all, but ACE_Process::spawn() to spawn new processes. - This function has much more implementations, so removed the - check for fork. In case a platform doesn't support this test, - this should be solved in the run_tests.lst file. - -Fri Apr 23 06:15:13 UTC 2004 Johnny Willemsen - - * ace/OS_NS_Thread.inl: - Fixed incorrect check in ACE_OS::condattr_init() - -Thu Apr 22 22:22:59 2004 Ossama Othman - - * bin/clone.cpp: - * tests/Dirent_Test.cpp: - - Replaced "ace/OS.h" include with lighterweight "ace/OS_NS_*.h" - includes. Fixes "fuzz" errors. - -Thu Apr 22 20:54:26 2004 Ossama Othman - - * ace/SSL/SSL_Asynch_Stream.h: - * ace/SSL/SSL_Context.cpp: - * ace/SSL/SSL_Context.h: - * ace/SSL/SSL_SOCK_Stream.i: - - Updated included headers as necessary due to removal of - "ace/Synch.h" #include. - -Thu Apr 22 20:01:12 2004 Ossama Othman - - * ace/ATM_Addr.cpp: - * ace/ATM_Addr.h: - * ace/ATM_Addr.i: - * ace/Active_Map_Manager.h: - * ace/Active_Map_Manager.i: - * ace/Addr.h: - * ace/Addr.i: - * ace/Atomic_Op.h: - * ace/Atomic_Op.i: - * ace/Atomic_Op_T.h: - * ace/Atomic_Op_T.i: - * ace/Based_Pointer_T.h: - * ace/Based_Pointer_T.i: - * ace/Basic_Types.h: - * ace/Basic_Types.i: - * ace/Bound_Ptr.h: - * ace/Bound_Ptr.i: - * ace/CDR_Base.cpp: - * ace/CDR_Base.h: - * ace/Cache_Map_Manager_T.h: - * ace/Cache_Map_Manager_T.i: - * ace/Cleanup.cpp: - * ace/Cleanup.h: - * ace/Configuration.cpp: - * ace/Configuration.h: - * ace/Containers_T.cpp: - * ace/Containers_T.h: - * ace/Containers_T.i: - * ace/DEV_Addr.h: - * ace/DEV_Addr.i: - * ace/FILE_Addr.h: - * ace/FILE_Addr.i: - * ace/Functor_T.h: - * ace/Functor_T.i: - * ace/Future.cpp: - * ace/Future.h: - * ace/Get_Opt.h: - * ace/Get_Opt.i: - * ace/Hash_Map_Manager_T.h: - * ace/Hash_Map_Manager_T.i: - * ace/INET_Addr.cpp: - * ace/INET_Addr.h: - * ace/INET_Addr.i: - * ace/IOStream.h: - * ace/Local_Name_Space.cpp: - * ace/Local_Name_Space.h: - * ace/Local_Tokens.h: - * ace/Local_Tokens.i: - * ace/MEM_Addr.h: - * ace/MEM_Addr.i: - * ace/Map_Manager.h: - * ace/Map_Manager.i: - * ace/Map_T.h: - * ace/Map_T.i: - * ace/Name_Space.cpp: - * ace/Name_Space.h: - * ace/OS_Errno.h: - * ace/OS_Errno.inl: - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_Thread.h: - * ace/Pair_T.h: - * ace/Pair_T.i: - * ace/RB_Tree.h: - * ace/RB_Tree.i: - * ace/Refcounted_Auto_Ptr.h: - * ace/Refcounted_Auto_Ptr.i: - * ace/Registry.cpp: - * ace/Registry.h: - * ace/SPIPE_Addr.h: - * ace/SPIPE_Addr.i: - * ace/SString.h: - * ace/SString.i: - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_Base.i: - * ace/Service_Config.h: - * ace/Service_Config.i: - * ace/Strategies_T.h: - * ace/Strategies_T.i: - * ace/String_Base.cpp: - * ace/String_Base.h: - * ace/String_Base.i: - * ace/Thread_Manager.h: - * ace/Thread_Manager.i: - * ace/Time_Value.h: - * ace/Time_Value.inl: - * ace/Timeprobe.h: - * ace/Timeprobe.i: - * ace/UNIX_Addr.h: - * ace/UNIX_Addr.i: - * ace/Unbounded_Set.cpp: - * ace/Unbounded_Set.h: - * ace/Unbounded_Set_Ex.cpp: - * ace/Unbounded_Set_Ex.h: - * ace/Vector_T.cpp: - * ace/Vector_T.h: - * ace/Vector_T.i: - * ace/CLASSIX/CLASSIX_Group.h: - * ace/CLASSIX/CLASSIX_Group.i: - * ace/CLASSIX/CLASSIX_Port.h: - * ace/CLASSIX/CLASSIX_Port.i: - * apps/Gateway/Gateway/Event.h: - * apps/JAWS/clients/Caching/Local_Locator.h: - * apps/JAWS/clients/Caching/Local_Locator.i: - * apps/JAWS/clients/Caching/URL_Properties.h: - * apps/JAWS/clients/Caching/URL_Properties.i: - * docs/tutorials/016/Condition_i.cpp: - * docs/tutorials/016/Condition_i.h: - * docs/tutorials/016/condition.cpp: - * examples/Web_Crawler/URL_Addr.cpp: - * examples/Web_Crawler/URL_Addr.h: - * tests/CDR_File_Test.cpp: - * tests/Collection_Test.cpp: - * tests/Collection_Test.h: - * tests/IOStream_Test.cpp: - * ACEXML/common/AttributesImpl.h: - * ACEXML/common/AttributesImpl.i: - * ACEXML/common/URL_Addr.h: - * ACEXML/common/URL_Addr.inl: - * ACEXML/parser/parser/ParserContext.h: - * ACEXML/parser/parser/ParserContext.inl: - - Changed all return types for equality, relational and logical - operators to "bool", as is the norm for modern C++. - -Thu Apr 22 17:06:04 2004 Ossama Othman - - * ace/OS_NS_Thread.inl (mutex_init): - - Explicitly cast the unused returned values of an - ACE_ADAPT_RETVAL macro call to "void" to address a "right-hand - operand of comma has no effect" warning exhibited by GNU g++ 3.4 - (pre-release). - -Thu Apr 22 17:06:39 2004 Steve Huston - - * tests/Recursive_Condition_Test.cpp: Fixed broken log string. Also, - when checking nesting level, ignore it if get_nesting_level() returns - -1, ENOTSUP. This will be the case for native Pthreads recursive - mutexes. - -Thu Apr 22 16:51:29 2004 Steve Huston - - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.inl: - Reverted this change: - Wed Mar 31 14:43:48 UTC 2004 Don Hinton - which confused the lock scope (process vs. thread) with lock type - (recursive, non-recursive, etc.). Panagiotis sent a revised patch - to separately specify the lock type as an optional argument, - lock_type, to ACE_OS::mutex_init(). This allows Pthreads recursive - mutexes where they are available. - I also renamed the 'type' argument to lock_scope to differentiate - this further and avoid confusion in the future. - On ACE_OS::thread_mutex_init(), the meaning of the old 'type' - argument is changed. It previously combined the scope and type. - Now it is just the type (e.g. recursive), as the scope is inherent - in the method used. - For clarification on ACE_HAS_RECURSIVE_MUTEXES, it means that the - platform is capable of them, not that they always are, as one would - expect. However, before Pthreads had recursion added, it was - never optional. Now it is. - - * ace/config-linux.h: Only set ACE_HAS_RECURSIVE_MUTEXES if - ACE_HAS_PTHREADS_UNIX98_EXT is set. - - * ace/config-aix4.x.h: - * ace/config-hpux-11.00.h: Added ACE_HAS_RECURSIVE_MUTEXES. This is - predicated on ACE_HAS_PTHREADS_UNIX98_EXT, which is already set. - Some other configs have ACE_HAS_PTHREADS_UNIX98_EXT also, but I - don't have access to them for testing, so didn't add it to those. - - * ace/Thread_Mutex.cpp (ctor): Pass 0 for lock_type to - ACE_OS::thread_mutex_init(), not USYNC_THREAD. - -Thu Apr 22 11:53:00 2004 Ossama Othman - - * bin/fuzz.pl (check_for_non_bool_operators): - - Improved regular expressions to catch additional cases. - -Thu Apr 22 12:00:00 2004 Marek Brudka - - * ace/TMCast/Link_Listener.hpp: removed ACE_Addr bug which led to - sigsegv in TMCast applications. - -Thu Apr 22 12:13:52 2004 Chad Elliott - - * ACEXML/common/codecs.mpb: - * ACEXML/common/common.mpc: - - Support disabling the ace_codecs feature. This project takes - advantage of the ! (not) feature of MPC. - -Thu Apr 22 14:00:05 UTC 2004 Johnny Willemsen - - * bin/ace_tests.lst: - The wfmo reactor tests shouldn't be run using Cywin. The wfmo - run_test.pl test for windows but Cygwin runs on windows but - doesn't have the wfmo reactor. - -Thu Apr 22 07:58:20 2004 Chad Elliott - - * bin/prj_install.pl: - Removed this file. It now lives in the MPC directory. - -Thu Apr 22 00:22:03 2004 Ossama Othman - - * bin/fuzz.pl (check_for_non_bool_operators): - - New test that determines if equality, relational and logical - operators return a type other than "bool". A "bool" return type - for such operators is the norm for modern C++ compilers. - -Thu Apr 22 07:12:22 UTC 2004 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO/tests/Bug_1495_Regression.pl to the list of test - that must be run. - -Thu Apr 22 06:02:12 UTC 2004 Johnny Willemsen - - * ace/QoS/qos.mpc: - With Visual C++ 8 also define ACE_HAS_WINSOCK2_GQOS. Visual C++ - 8 is at this moment Microsoft Visual Studio .NET 2005 March - 2004 Preview. - -Wed Apr 21 13:36:41 2004 Steve Huston - - * ace/os_include/os_time.h: Reverted this change: - Thu Apr 15 17:56:29 2004 Steve Huston - and directly include instead. Although the Apr 15 - change fixed the g++ build on HP-UX, it revived a compile error - for the aC++ build wherein the ACE_OS::sigaction() method would - not compile, apparantly due to some confusion over partially-defined - struct sigaction in some inlined situations. I have no idea why, - but at this point, both the aC++ and g++ builds are quiet. - -Tue Apr 20 12:47:32 UTC 2004 Johnny Willemsen - - * ace/os_include/sys/os_shm.h: - Removed empty shmaddr when ACE_WIN32 is set, it is not used in - ACE. Added empty struct shmid_ds when ACE_LACKS_SHMID_DS_T is - defined. - - * ace/README: - Added ACE_LACKS_SHMID_DS_T - -Tue Apr 20 06:17:43 2004 Balachandran Natarajan - - * THANKS: - - To avoid spam for our dear users we have changed the @ symbol - and the dot symbol to be in character format. - -Mon Apr 19 14:10:21 UTC 2004 Johnny Willemsen - - * ace/OS_NS_Thread.inl: - Moved the implementation of ACE_OS::thr_equal() before the first - placed where it is used in this file. This fixes a warning in the - Tru64 build. - -Mon Apr 19 14:02:31 UTC 2004 Johnny Willemsen - - * ace/os_include/sys/os_msg.h: - Instead of defining an empty struct msqid_ds when - ACE_WIN32 is set, use the new ACE_LACKS_MSQID_DS_T define. - - * ace/README: - Added ACE_LACKS_MSQID_DS_T description - - * ace/config-win32-common.h: - Win32 doesn't have the struct msqid_ds, so added ACE_LACKS_MSQID_DS_T - -Fri Apr 16 12:34:29 2004 Steve Huston - - * ace/ace.icp: - * tests/tests.icp: Removed these left-over Visual Age C++ projects. - - * ace/ace_dll64.mak: - * ace/ace_lib64.mak: - * apps/JAWS/clients/WebSTONE/src/client/webclient.mak: - * apps/JAWS/clients/WebSTONE/src/gendata/genrand.mak: - * apps/JAWS/clients/WebSTONE/src/master/webmaster.mak: - * examples/C++NPv1/Process_Per_Connection_Logging_Server.mak: - Removed these MSVC make files. These are all now generatable via MPC. - -Fri Apr 16 09:35:12 UTC 2004 Johnny Willemsen - - * ace/Default_Constants.h: - Added ACE_MAX_UDP_PACKET_SIZE - - * ace/RMCast/RMCast_IO_UDP.cpp: - Use ACE_MAX_UDP_PACKET_SIZE instead of a hardcoded constant. Makes - it possible to overrule the value from the config.h file. - -Fri Apr 16 06:38:11 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Fixed error in the libcheck that was put in accidently when merging - from our test system to the latest cvs version. - -Thu Apr 15 23:28:24 2004 Ossama Othman - - * include/makeinclude/platform_sunos5_sunc++.GNU (CCFLAGS): - (CPPFLAGS): - - Moved preprocessor flags in compiler flags variable $(CCFLAGS) - to preprocessor flags variable $(CPPFLAGS). Addresses potential - dependency generation problems. - -Thu Apr 15 17:56:29 2004 Steve Huston - - * ace/os_include/os_time.h: Include ace/os_include/sys/os_time.h - before . This insures that the X/Open form of select(), - using fdset* as opposed to int*, gets selected, at least on HP-UX. - -Thu Apr 15 14:38:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/rules.local.GNU: - Reverted the $(PWD) changed, it caused unexpected problems. We are - working on a better solution. - -Thu Apr 15 12:33:27 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Changed the way we do a lib check. Instead of using the shell we use - normal make rules. Another advantage is that we now give all libraries - we are missing instead of the first one. Thanks to - Martin Corino for changing this. - -Thu Apr 15 12:29:21 UTC 2004 Johnny Willemsen - - * bin/check_build_logs: - * bin/show_log_dir.pl: - * bin/vc_filter.pl: - Removed these files, they are old and not needed anymore. Looks - some more files in bin can be removed, we should have a good look - at what we really need - -Thu Apr 15 07:20:35 2004 Chad Elliott - - * ACE-INSTALL.html: - * bin/MakeProjectCreator/README: - - Added information on how to obtain MPC and the location of - documentation. - -Thu Apr 15 10:52:21 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_mingw32.GNU: - Set PRELIB to empty for MinGW and set a specific PWD. - -Thu Apr 15 10:16:32 UTC 2004 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - Reimplemented the ACE_OS::setsid(). Introduced ACE_LACKS_SETSID so - that from the config file we can say if the platform supports setsid() - or not. VxWorks and PSOS don't have the concept of processes so - there we return just 0, just like to other methods related to this one. - This way when we get another port to a platform which doesn't have - setsid() we just have to add this define to the config file. - - * ace/config-chorus.h: - * ace/config-integritySCA: - * ace/config-win32-common.h: - Added define of ACE_LACKS_SETSID because these platforms lack this - - * ace/README: - Documented ACE_LACKS_SETSID - -Thu Apr 15 09:51:32 UTC 2004 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Introduced PWD. This is used to get the current working - directory. When it is not set, it is $(shell pwd). On Windows - without cygwin we don't have pwd, so we need to get another - way of doing this, this makes it possible to overrule this. - - * include/makeinclude/rules.local.GNU: - Use $(PWD) to get the working directory - - * include/makeinclude/platform_g++_common.GNU: - Added mingw specific rules for determining if the GNU ld has -E - -Thu Apr 15 08:54:33 UTC 2004 Johnny Willemsen - - * ace/OS_NS_sys_stat.inl: - Changed order of inline methods to fix warnings in Tru64 build. - -Thu Apr 15 08:37:32 UTC 2004 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - Changed location of ACE_OS::getpagesize(). The method must be - above the first place where it is used. This fixes a warning - in the Tru64 build. - -Thu Apr 15 07:14:21 UTC 2004 Johnny Willemsen - - * examples/APG/ThreadSafety/Tokens.cpp: - Added include of ace/OS_NS_time.h to get ACE_OS::nanosleep - -Thu Apr 15 07:04:13 UTC 2004 Johnny Willemsen - - * bin/msvc_auto_compile.pl: - Removed this file. The msvc_mpc_auto_compile.pl script must - be used. - -Wed Apr 14 22:18:58 2004 Ossama Othman - - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp (svc): - - Wrapped ACE_Guard instantiation within an ACE_GUARD_RETURN - macro. Addresses an unused variable warning. - -Wed Apr 14 20:29:52 2004 Ossama Othman - - * ace/OS_NS_Thread.cpp (thr_create): - - Explicitly cast the unused returned values of two - ACE_ADAPT_RETVAL macro calls to "void" to address a "right-hand - operand of comma has no effect" warning exhibited by GNU g++ 3.4 - (pre-release). - -Wed Apr 14 19:27:29 2004 Ossama Othman - - * ace/os_include/os_unistd.h (_POSIX_TIMER_MAX): - (ACE_DEFAULT_TIMERS): - - Moved definitions of these macros to other more appropriate - files described below. - - * ace/os_include/os_limits.h (_POSIX_TIMER_MAX): - - Moved conditional definition of this macro to this file to avoid - potential definition before the one in . Fixes macro - redefinition warnings. - - * ace/Default_Constants.h (ACE_DEFAULT_TIMERS): - - Moved conditional definition of this macro to this file. It - didn't make much sense to define it in the os_unistd.h - portability header. - -Wed Apr 14 17:28:21 2004 Ossama Othman - - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - - Corrected "fuzz" error regarding missing RCS ID. - -Wed Apr 14 23:03:20 2004 Marek Brudka - - * ace/DLL_Manager.cpp: - - Additional validation in DLL_Handle::symbol. - - * ace/Mem_Map.cpp: - - QNX NTO cannot mmap regular files, but can map shared - memory. Mem_Map was modified for QNX NTO the same it was done - for CHORUS, namely ::open and ::unlink was replaced by - resp. ::shm_open and ::shm_unlink in QNX NTO section. This is - only a partial bugfix, as one it prevents mapping ordinary - files. - - * tests/Mem_Map_Test.cpp: - - ::open in QNX NTO sections was replaced by Mem_Map::open to - ensure ::shm_open is invoked. - -Wed Apr 14 17:17:22 2004 Steve Huston - - * ace/config-hpux-11.00.h: Fixed missing end-of-comment mark that - no-oped much of this file. Thanks to the compiler for all the - help finding this one.... NOT! - -Wed Apr 14 14:09:19 2004 Ossama Othman - - * ace/os_include/os_unistd.h (ACE_DEFAULT_TIMERS, _SC_TIMER_MAX): - - #define ACE_DEFAULT_TIMERS to _POSIX_TIMER_MAX, not - _SC_TIMER_MAX. The latter is a parameter meant to be passed to - the sysconf() C library function. It does not represent the - maximum number of concurrent timers per process. The fact that - its value is close to the value for _POSIX_TIMER_MAX is a - coincidence (e.g. _SC_TIMER_MAX on Linux/glibc is 35 and - _POSIX_TIMER_MAX is 32). This addresses potential problems - where the default number of timers is more than the platform - allows. - - In addition to addressing the above issue, this change also - fixes a warning regarding an undefined "_SC_TIMER_MAX" macro on - Linux/glibc. On that platform "_SC_TIMER_MAX" is actually - defined in an enumeration. - - (_SC_AIO_MAX): - - Removed this macro definition. It served no useful purpose. - -Wed Apr 14 16:18:10 2004 Irfan Pyarali - - * ace/Cached_Connect_Strategy_T.cpp: - - In ACE_Cached_Connect_Strategy_Ex::connect_svc_handler_i(), the - reference counter of the entry in the hashtable - (ACE_Refcounted_Hash_Recyclable) was being incremented in all - cases. It should only incremented if the hint passed to - connect_svc_handler_i() is not used. - - Thanks to Torsten Kuepper for - reporting this bug. This closes bug 1781. - -Wed Apr 14 16:14:59 2004 Steve Huston - - * ace/Basic_Types.h: Add _M_AMD64 (Opteron) as a known little-endian - architecture. Thanks to Ivan Murphy for - this fix. - -Wed Apr 14 21:07:35 2004 Marek Brudka - - * ACE-INSTALL.html: updated documentation in QNX section. - * include/makeinclude/platform_qnx_rtp_gcc.GNU: several changes - related to compilation under QNX RTP v.6.2.0. - * ace/Mutex.inl: Fixed bugs for pthread::process_mutex placed in - shared memory - * ace/Process_Mutex.h: Explained in doxygen documentation the - difference between SYSV semaphores and pthreads based process - mutexes. - * ace/RW_Process_Mutex.h: Added \todo section in doxygen doc. - * ace/Dev_Addr.h: - * ace/Dev_Addr.i: - * ace/File_Addr.h: - * ace/Module.h: - * ace/Module.i: - * ace/SPIPE_Addr.h: MAXNAMLEN replaced by MAXPATHLEN to prevent - filename truncation - * ace/Time_Value.cpp: Removed warning for QNX RTP related with - unsigned tv_sec - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-qnx-rtp.h: - * ace/config-qnx-neutrino.h: New configuration macros for QNX RTP. - * ace/OS.h: Removed unnecessary semicolon in QNX (4.x) section. - * tests/Process_Mutex_Test.cpp: Ensured correct order of - pthreads-based Process_Mutex destruction. - -Wed Apr 14 12:34:56 2004 Ossama Othman - - * tests/Makefile.libs: - - Reverted a change (Makefile.libs,v 4.3 2004/04/13 23:15:45 - mbrudka) that incorrectly replaced a dependency on test_config.h - with test_$(ACE_PLATFORM_CONFIG). Thanks to Johnny Willemsen - for pointing me in the right direction. - -Wed Apr 14 11:26:20 2004 Steve Huston - - * include/makeinclude/platform_aix_g++.GNU: If rtti=0, add - -fno-rtti to CFLAGS. Previously, the rtti setting had no affect. - -Wed Apr 14 10:04:43 2004 Chad Elliott - - * bin/MakeProjectCreator/config/ifrservice.mpb: - - Added minimum_corba to the inheritance list. The IFRService - library won't build with minimum poa enabled. - -Wed Apr 14 06:54:32 UTC 2004 Johnny Willemsen - - * tests/Tokens_Test.cpp: - * netsvcs/lib/Token_Handler.h: - Fixed compile errors when ACE_HAS_TOKENS_LIBRARY is defined - -Tue Apr 13 12:51:12 UTC 2004 Johnny Willemsen - - * ace/Local_Tokens.h: - Added missing includes that are needed when ACE_HAS_TOKENS_LIBRARY - is defined. - -Tue Apr 13 08:44:22 2004 Steve Huston - - * ace/Select_Reactor_T.cpp (check_handles): Fixed typo. - -Wed Apr 7 12:27:19 2004 Steve Huston - - * ASNMP/asnmp/target.cpp (operator==): Removed the lhs==rhs check at - the top. This is a nice-to-have optimization, but MSVC7.1 reports - all control paths are recursive. - - * ASNMP/tests/Integer_Test.cpp: Changed 'si' from short to unsigned - short. It's initialized with 32768, which doesn't fit in 16 bits, - and the comments on its use inside the test itself say it's - unsigned short. There are not other comments to explain what this - is trying to do, so I may have this wrong... Anyone with more info - on this, please feel free to contact me. - - * examples/Log_Msg/Log_Msg_MFC/MFC_Log.h: Formatting adjustment. - - * examples/TMCast/Member/member.cpp: static_cast ACE_UINT64 to - unsigned long to avert a VC7.1 compiler warning about truncation. - -Tue Apr 13 00:47:43 2004 Ossama Othman - - * ace/Global_Macros.h (ACE_NEW_MALLOC_RETURN, ACE_NEW_MALLOC): - (ACE_NEW_MALLOC_NORETURN, ACE_NEW_MALLOC_ARRAY_RETURN): - (ACE_NEW_MALLOC_ARRAY): - - Explicitly cast the return value of the placement new operator - call to "void" to address a "statement has no effect" warning - exhibited by GNU g++ 3.4 (pre-release). - - * ace/Arg_Shifter.cpp: - * ace/OS_NS_strings.h: - * ace/Unbounded_Set.h: - - Nuked trailing whitespace. - - * ace/README: - - Updated autoconf support comments. - -Mon Apr 12 17:43:51 2004 Steve Huston - - * ace/config-linux-common.h: In the newer-glibc section, add a - #define ACE_POSIX_SIG_PROACTOR. This is a (possibly incomplete) - attempt to make Linux use the sig proactor for newer linuxes such - as Red Hat Linux 9 and Enterprise Linux 3, where it is possible to - send a signal across threads in a process. I'm not terribly worried - if the check is imperfect, since there's no chance for asynch I/O to - work any other way, and not at all on Linux versions that can't do - the cross-thread signals. - -Mon Apr 12 16:40:33 2004 Steve Huston - - * ace/config-hpux-11.00.h: Force the Proactor implementation to - ACE_POSIX_AIOCB_Proactor if the user didn't select one. The CB - approach is not supported at HP-UX 11.00. - - Also this from the 5.4 support stream: - Fri Mar 26 16:24:39 2004 Steve Huston - - * ace/config-hpux-11.00.h: Added ACE_HAS_SIGACTION_CONSTP2. - -Mon Apr 12 13:55:46 2004 Chad Elliott - - * apps/JAWS/clients/Caching/caching.mpc: - * apps/JAWS/server/server.mpc: - - Made these projects require ace_filecache. - - * bin/MakeProjectCreator/config/ftclientorb.mpb: - - Made this base project require ace_uuid. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Cleaned up and simplified the template somewhat. - -Mon Apr 12 12:54:37 2004 Chad Elliott - - * ace/config-win32-common.h: - - Only define ACE_HAS_WINSOCK2_GQOS if ACE_HAS_QOS is defined. - - * bin/MakeProjectCreator/config/qos.mpb: - - If the qos feature is enabled, add ACE_HAS_QOS to the macros. - -Mon Apr 12 13:51:42 UTC 2004 Johnny Willemsen - - * ace/ace.mpc: - Removed default part from the Template_Files, it is not needed. - -Mon Apr 12 13:39:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-common.h: - * ace/config-win32-msvc-5.h: - * ace/config-win32-msvc-6.h: - Moved define ACE_HAS_LLSEEK from msvc5/6 file to the win32 common - file. This fixes bugid 1780. Thanks to Pierre Bisaillon - for reporting this. - -Thu Apr 1 15:40:55 2004 Douglas C. Schmidt - - * ace/Strategies_T.cpp (activate_svc_handler): Make sure to - store/restore errno when calling svc_handler->destroy (). - Thanks to Ewald Dieterich for reporting - this. This fixes bugid 1776. - -Sun Apr 11 18:33:35 2004 Balachandran Natarajan - - * */*.icc: - - Axed them from the repo. Thanks to Johnny for reminding me to do - this. - -Sun Apr 11 18:22:39 2004 Balachandran Natarajan - - * apps/JAWS2/HTTPU/HTTPU.DSP: - * java/gjt/GJT.DSP: - * java/src/JACE.DSP: - - Axed them from the repo. - -Sun Apr 11 18:19:55 2004 Balachandran Natarajan - - * apps/JAWS2/HTTPU/HTTPU.DSW: - * java/gjt/GJT.DSW: - * java/src/JACE.DSW: - - Removed these. - -Sat Apr 10 23:39:54 2004 Balachandran Natarajan - - * */*.ds[p,w]: - - Removed. - -Fri Apr 9 16:07:33 2004 Steve Huston - - * ace/Select_Reactor_T.cpp (check_handles): The previous method of - locating handles to check -- iterating the handler repository for - ACE_Event_Handler pointers and calling get_handle() -- didn't work - if the handler didn't do get_handle() as we expected. Changed this - to build a union of the read/write/exception wait_set masks and - iterate through that. If a bad handle is found, call - remove_handler_i() based on the handle, not the event handler - pointer. - -Thu Apr 8 20:12:30 2004 Balachandran Natarajan - - * */*.bor: - - Removed all the borland makefiles files from the - repository. Files in include/makeinclude have not been removed. - -Thu Apr 8 11:57:29 2004 Steve Huston - - * ace/POSIX_Asynch_IO.cpp (handle_output): Be sure to unregister this - handler from the asynch task before posting the completion. The - completion handler may do anything, including delete the handler, - before this method has a chance to remove it from the asynch task. - Matches an earlier fix for Windows: - Thu Mar 11 17:00:14 2004 Steve Huston - -Thu Apr 8 08:03:13 2004 Chad Elliott - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - - Modified this base project to set tao_idl and tao_idlflags as - template overrides. The custom command was then set to $(TAO_IDL) - and the idlflags was set to $(TAO_IDLFLAGS). In all project - creators (except GNUACE), these values will be replaced by the - template override values. - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - - Override the expand_variables_from_template_values method to turn - off variable expansion. This allows us to set TAO_IDL and - TAO_IDLFLAGS as variables within the generated project and gives - more flexibility to the user. - - * bin/MakeProjectCreator/config/vcfullmacros.mpt: - * bin/MakeProjectCreator/config/vcpartialmacros.mpt: - - Set the ACE_HAS_MFC macro to 1 instead of just defining it. - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - - Updated these to properly support the 'pch_postrule' custom - defined keyword. - - * bin/mpc.pl: - * bin/mwc.pl: - - Updated these to give a somewhat more useful message when the MPC - core is not found in the usual place. Setting the MPC_ROOT - environment variable can help these scripts determine the location - of the MPC core. - -Mon Apr 5 13:27:27 2004 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/mpc.pl: - * bin/mwc.pl: - - Updated these to point to the new MPC repository. - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/config/bison.mpb: - * bin/MakeProjectCreator/config/flex.mpb: - * bin/MakeProjectCreator/config/lex.mpb: - * bin/MakeProjectCreator/config/openssl.mpb: - * bin/MakeProjectCreator/config/qt.mpb: - * bin/MakeProjectCreator/config/qt_moc.mpb: - * bin/MakeProjectCreator/config/rpc.mpb: - * bin/MakeProjectCreator/config/zlib.mpb: - * bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/AutomakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/BMakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/BMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/CbxProjectCreator.pm: - * bin/MakeProjectCreator/modules/CbxWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/EM3ProjectCreator.pm: - * bin/MakeProjectCreator/modules/EM3WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/FeatureParser.pm: - * bin/MakeProjectCreator/modules/GHSProjectCreator.pm: - * bin/MakeProjectCreator/modules/GHSWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GUID.pm: - * bin/MakeProjectCreator/modules/HTMLProjectCreator.pm: - * bin/MakeProjectCreator/modules/HTMLWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/MPC.pm: - * bin/MakeProjectCreator/modules/MWC.pm: - * bin/MakeProjectCreator/modules/MakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/OutputMessage.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/SLEProjectCreator.pm: - * bin/MakeProjectCreator/modules/SLEWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/StringProcessor.pm: - * bin/MakeProjectCreator/modules/TemplateInputReader.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/VA4ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VA4WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC71ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/Version.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - * bin/MakeProjectCreator/templates/automake.mpd: - * bin/MakeProjectCreator/templates/bmake.mpd: - * bin/MakeProjectCreator/templates/bmakecommon.mpt: - * bin/MakeProjectCreator/templates/bmakedll.mpt: - * bin/MakeProjectCreator/templates/bmakedllexe.mpt: - * bin/MakeProjectCreator/templates/bmakelib.mpt: - * bin/MakeProjectCreator/templates/bmakelibexe.mpt: - * bin/MakeProjectCreator/templates/cbx.mpd: - * bin/MakeProjectCreator/templates/cbxdll.mpt: - * bin/MakeProjectCreator/templates/cbxexe.mpt: - * bin/MakeProjectCreator/templates/common.mpt: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/ghs.mpd: - * bin/MakeProjectCreator/templates/html.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - * bin/MakeProjectCreator/templates/makeexe.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/sle.mpd: - * bin/MakeProjectCreator/templates/sledll.mpt: - * bin/MakeProjectCreator/templates/sleexe.mpt: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/va4iccdll.mpt: - * bin/MakeProjectCreator/templates/va4iccdllexe.mpt: - * bin/MakeProjectCreator/templates/va4icclib.mpt: - * bin/MakeProjectCreator/templates/va4icclibexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - * bin/MakeProjectCreator/templates/vc7lib.mpt: - * bin/MakeProjectCreator/templates/vc7libexe.mpt: - - Removed these files. - -Fri Apr 02 13:36:08 2004 Balachandran - - * ACE version 5.4.1 released. - -Fri Apr 2 13:05:56 2004 Balachandran Natarajan - - * NEWS: - - Updated with the latest developments just prior to BFO. - -Thu Apr 1 22:54:51 2004 Balachandran Natarajan - - * bin/make_release: - - Fixes from testing. - -Thu Apr 1 18:03:10 2004 Balachandran Natarajan - - * bin/make_release: - - We now generate static project files for VC6, solution and - vcproj files for VC7 (for the whole of - ACE+TAO+CIAO). Additionally we also generate em3 files for the - whole of ACE. This is for the ACE distribution only. - -Thu Apr 1 10:21:31 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/SLEWorkspaceCreator.pm: - - Fixed a case error for the SlickEdit workspace creator. - -Thu Apr 1 08:34:55 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where relative directory replacement wouldn't take - place if the value contained the current directory plus additional - subdirectories. Also, if the relative directory were the same as - the current directory the replacement would be invalid and - wouldn't point to the correct directory. - -Wed Mar 31 23:20:52 2004 Balachandran Natarajan - - * apps/JAWS3/bench/mkfiles.cpp: - * apps/JAWS3/bench/rqfiles.cpp: - * examples/APG/Naming/Makefile.nodelocal: - - -Wed Mar 31 18:08:48 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/config/bison.mpb: - * bin/MakeProjectCreator/config/flex.mpb: - * bin/MakeProjectCreator/config/lex.mpb: - * examples/APG/Naming/Makefile.netlocal: - * examples/APG/Naming/Makefile.netlocal_reader: - * examples/APG/Naming/Makefile.nodelocal: - * examples/APG/Naming/Makefile.nodelocal_shared: - * examples/APG/Naming/Makefile.nodelocal_shared_reader: - * examples/APG/Svc_Config/Makefile.dynamic: - * examples/APG/Svc_Config/Makefile.static: - * examples/APG/Timers/Makefile.singles: - * examples/APG/Timers/Makefile.timers: - * examples/APG/Timers/Makefile.upcall: - - More fuzz warnings. - -Wed Mar 31 18:11:18 UTC 2004 Johnny Willemsen - - * ace/Functor_String.h: - Fixed compile problem in wchar builds - -Wed Mar 31 11:46:48 2004 Balachandran Natarajan - - * bin/fuzz.pl: - - Removed checks for certain things like OS.h inclusions and such - since we may not have time to fix them before the BFO. Once we - clean the rest of the stuff for BFO, will add this back. - -Wed Mar 31 17:31:54 UTC 2004 Don Hinton - - * include/makeinclude/platform_g++_common.GNU: - Modified grep test for linker output so it will run correctly on - Solaris. Thanks to Andrew G. Harvey for - discovering the problem and providing work arounds. Also, thanks - to Kitty for for recommending which - one to use. - -Wed Mar 31 14:43:48 UTC 2004 Don Hinton - - * ace/OS_NS_Thread.inl: - * ace/config-linux.h: - Enable the usage of native recursive mutexes for the - implementation of ACE recursive mutexes. According to the - README, ACE_HAS_RECURSIVE_MUTEXES should be defined for - platforms where all mutexes are recursive. This seems a - little bit counter intuitive, as it implies that recursive - mutexes are supported by the platform. But in reality, it means - that all mutexes are recursive. - - Added ACE_HAS_NONRECURSIVE_MUTEXES, which, together with - ACE_HAS_RECURSIVE_MUTEXES means the platform supports both - recursive and non-recursive mutexes. This maintains the default - behavior on non-GNU/Linux platforms. Thanks to Panagiotis Issaris - for this patch. - - * ace/README: - Added documentation for ACE_HAS_NONRECURSIVE_MUTEXES. - - * THANKS: - Added Panagiotis Issaris to the hall of fame. - -Wed Mar 31 14:22:32 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_cygwin32.GNU: - * include/makeinclude/platform_mingw32.GNU: - Instead of that people when they need to have a different TCPU - need to edit these files, made it so that we only default to - TCPU=pentiumpro when it is not set yet. In the platform_macros.GNU - people can now overrule this default. - -Wed Mar 31 09:06:13 UTC 2004 Johnny Willemsen - - Reverted our change of - Sun Mar 14 12:10:11 UTC 2004 Johnny Willemsen - - * ace/Time_Value.{h,cpp}: - * ace/Select_Reactor_T.{cpp ,i}: - * ace/Timer_Queue_Adapters.{h,cpp}: - * ace/Timer_Queue_T.{h,i,cpp}: - * ace/Timer_Wheel_T.cpp: - * ace/Timer_Hash_T.cpp: - * ace/Timer_List_T.cpp: - Removed accessor for zero and max_time which where added in the commit - above. We found that with some more complex TAO tests the linker was - still having problems using the zero and max_time static members. - - As a different solution only for MinGW we define two static variables - in the header file that use zero and max_time. With these two statics - the linker can resolve these two members and we know don't get any - linker problem anymore with MinGW. In case you had problems in your - MinGW app, this patch also fixes the problems in your application - without the need to change your app code. - - Thanks to Martin Corino for figuring - out the problem and making the patches. - -Tue Mar 30 17:53:32 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/templates/sle.mpd: - * bin/MakeProjectCreator/templates/sledll.mpt: - * bin/MakeProjectCreator/templates/sleexe.mpt: - * bin/MakeProjectCreator/modules/SLEProjectCreator.pm: - * bin/MakeProjectCreator/modules/SLEWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/MWC.pm: - * bin/MakeProjectCreator/modules/MPC.pm: - Added a new MPC template for Visual SlickEdit 8.1. This template is - not 100% ready yet, but hereby the first version so that workspaces - and projects are generated for simple project types. - -Mon Mar 29 20:52:22 2004 Balachandran Natarajan - - * ace/Functor_String.h: - - Fixed a typo. - -Mon Mar 29 12:24:54 2004 Douglas C. Schmidt - - * examples/Threads/manual_event.cpp (worker): - * tests/Upgradable_RW_Test.cpp (run_main): - * tests/Conn_Test.cpp (client): Changed the name "barrier" - to "thread_barrier" to fix a problem with macro conflicts on - certain OS platforms. Thanks to Levente Torok - for reporting this. - -Mon Mar 29 17:02:33 UTC 2004 Johnny Willemsen - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h: - Include Functor_T.h instead of Functor.h because of Bala changes of - yesterday. This fixes the compile problems in the daily builds with - this example - -Mon Mar 29 08:03:08 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Modified the rules to ensure that generated files are made before - attempting to build cpp files. These rules will only be in effect - when they are needed (ie. generated files are anything but source - files). - -Mon Mar 29 09:11:13 UTC 2004 Johnny Willemsen - - * ace/ATM_Acceptor.h: - * ace/ATM_Connector.h: - * ace/ATM_QoS.h: - * ace/ATM_Stream.h: - * ace/Atomic_Op_T.h: - * ace/Dump_T.cpp: - * ace/Flag_Manip.cpp: - * ace/Method_Request.h: - * ace/Metrics_Cache_T.h: - * ace/Refcounted_Auto_Ptr.i: - * ace/SOCK.i: - Added missing ace/ before some includes. Thanks to Roland Meub - for reporting this. - - * ace/DEV.h: - * ace/DEV_IO.h: - * ace/SOCK.h: - * ace/TTY_IO.h: - Fixed some doxygen warnings. - -Mon Mar 29 00:20:57 2004 Balachandran Natarajan - - * ace/Makefile.bor: - - Added Functor_String.h to the faily builds on Borland. - -Sun Mar 28 23:44:51 2004 Balachandran Natarajan - - * ace/Functor.h: - * ace/Functor_String.cpp: - * ace/Functor_String.h: - - Removed inclusions of Functor_T.h. This is simply a brain dead - way of doing things. - - * ace/Functor_T.h: - - Include Functor.h and Functor_String.h so that we get the - specializations first. - - * ace/Hash_Map_Manager_T.h: - * ace/RB_Tree.h: - - Include Functor_T.h. They don't have any purpose in life to - include the specializations. - -Sun Mar 28 13:39:56 2004 Balachandran Natarajan - - * ace/Capabilities.h: - - #included Functor_String.h to force compilers to use the - specialization. - - * ace/ace_dll.dsp: - - Added the new functor specializations into the project files. - -Sun Mar 28 19:07:44 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/notifytest.mpb: - Updated name of NotifyTests library name, it should have TAO_ to - match my update of today in the NotifyTests lib MPC file. This way - this library has exactly the same name as in none mpc builds. - -Sun Mar 28 12:16:41 2004 Balachandran Natarajan - - * ACEXML/common/NamespaceSupport.i: - - Removed functors that were there in this file. - - * ACEXML/common/XML_Types.h: - - Forcibly include Functor_String.h to get the functors for - ACE_CString and ACE_WString. - -Sun Mar 28 12:14:05 2004 Balachandran Natarajan - - * ace/Functor_String.cpp: - * ace/Functor_String.h: - * ace/Functor_String.inl: - - Functors for ACE_CString and ACE_WString. They have been placed - in seperate files to avoid coupling the rest of ACE (which uses - Functor.h) with strings that could lead to increased - footprints. - - * ace/Makefile.ace: - * ace/ace.mpc: - - New files for building. - -Sun Mar 28 15:31:22 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added some dsps to build first in a static build - -Sun Mar 28 14:57:13 UTC 2004 Johnny Willemsen - - * bin/nightlybuilds/*: - Removed all these files from the repo, these are already replaced a - long time by the autobuild project. - -Sat Mar 27 15:29:09 2004 Douglas C. Schmidt - - * tests/Multicast_Test_IPV6.cpp (leave): Replaced - - size_t size = 0; - - with - - size_t size = this->address_vec_.size (); - - Thanks to Johnny Willemsen for reporting this! - -Fri Mar 26 14:15:44 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/config/idl_compiler.mpt: - * bin/MakeProjectCreator/config/idl_compiler_win32.mpt: - * bin/MakeProjectCreator/config/notify.mpb: - * bin/MakeProjectCreator/config/qt-min.mpb: - * bin/MakeProjectCreator/config/qt-min_moc.mpb: - - While playing around with ARMS repository, I accidentally added - these files back into the repo. Removing them once again. - -Thu Mar 25 11:58:46 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bmake.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - - Fixed a bug in these templates where if a project had custom build - rules, but no source files, the custom build rules would not be - executed. - -Thu Mar 25 09:10:44 2004 Balachandran Natarajan - - * ace/OS_NS_Thread.h: - - Thanks to Martin Corino for supplying patches - that fixes build problems on non-pthread platforms. - -Wed Mar 24 22:36:01 2004 Balachandran Natarajan - - * ace/POSIX_Proactor.cpp: - - Fixed warning in g++ builds. - - * ace/Task.h (activate): - * ace/Thread_Manager.cpp: - * ace/Thread_Manager.h (spawn and spawn_n): - - Changed the default flags in the above methods. They now include - THR_INHERIT_SCHED. This makes the defaults consistent with C++ - NPV1 and C++ NPV2. If a priority other than - ACE_DEFAULT_THREAD_PRIORITY is passed into the - argument, the THR_INHERIT_SCHED flag is dropped silently. This - takes care of the problems reported by Abhijit Sachdev, which - was basically a bug that prevented the priorities being - inherited in thread-per-connection strategy. - - Thanks to Steve Huston for motivating the right fix that would - not affect user code at all. - -Wed Mar 24 16:41:29 2004 Steve Huston - - * ACE-INSTALL.html: Remove remaining reference to the "soft link" - method of specifying a platform-specific config.h and - platform_macros.GNU file. All instructions regarding these now - use the preferred method - creating a local file and including - the platform-specific one into it. Also cleaned up some old info. - - * PROBLEM-REPORT-FORM: Direct the user to not include an entire - platform-specific config.h or platform_macros.GNU file. This is - an effort to make submitted forms more concise and easy to read. - -Wed Mar 24 07:25:19 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where settings were not being properly reset when - processing a 'specific' section for one project and then - processing other projects. - -Tue Mar 23 22:13:01 2004 Ossama Othman - - * bin/tao_orb_tests.lst: - - Added new PortableInterceptors ORB::shutdown() regression test - to the nightly build test runs. - -Tue Mar 23 20:18:20 2004 Douglas C. Schmidt - - * apps/gperf/README: Fixed the README file so it points to - the right version of the GPERF paper. Thanks to Eric Whorter - for reporting this. - -Tue Mar 23 20:12:51 2004 Gautam Thaker - - * performance-tests/SCTP/Options_Manager.cpp (Options_Manager): - Fixed two instances of array[strlen] = '\0'; to - Fixed two instances of array[strlen - 1] = '\0'; - Thanks to andreas.koehler@sysde.eads.net for reporting this - error. - -Tue Mar 23 18:31:40 2004 Steve Huston - - * tests/SSL/Makefile: - * tests/SSL/aix_hack_for_main.cpp: Added aix_hack_for_main.cpp to get - something without templates to build first. This all helps Visual - Age C++ on AIX deal with reality. Also see: - Sat Dec 6 19:27:26 2003 Steve Huston - -Tue Mar 23 07:22:33 2004 Chad Elliott - - * examples/Export/Export.mpc: - - Simplified this mpc file. - - * examples/Export/dll.h: - * examples/Export/dll.cpp: - - Fixed a problem with building on Windows with static libraries. - Added an extern to the test_variable to stop duplicate symbols - when building static libraries. The extern does not have any - adverse effects when building dynamic libraries. - -Mon Mar 22 14:23:44 2004 Steve Huston - - * ace/config-sunos5.7.h: Leave Solaris using the AIOCB proactor at - all versions. None of them work very well, so just leave this one - in place, as it imposes no signal restrictions on the application. - The concurrent access of (via aio_suspend(), aiowiat(), etc.) and - use of for I/O, aiocbs is really wreaking havoc with the proactor - implementations, I'm afraid. I believe this is really going to need - some serious work. - -Mon Mar 22 13:30:53 2004 Chad Elliott - - * bin/MakeProjectCreator/config/rpc.mpb: - - Added the -C option to ensure that the generated code can be used - by c++ compilers. Also, changed the output source files and - header files to fix a problem with make targets. - - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - - Added a generated target to allow users to invoke a rule to - produce just the generated files. - - * bin/MakeProjectCreator/templates/bmake.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - - Fixed a bug in these templates where generated files (other than - idl stubs) would not be created before attempting to build object - files. - -Mon Mar 22 14:10:12 2004 Steve Huston - - * ace/POSIX_Proactor.cpp: Fix "unused argument" warning. The code - that really uses the signal_number argument _may_ need to be - re-enabled again, so the name is left in the signature. - -Mon Mar 22 13:45:19 2004 Steve Huston - - * examples/APG/Timers/CB.cpp (handle_timeout): The reset_interval() - call needs to happen whether ACE_NDEBUG or not; putting it in an - ACE_ASSERT no-ops it out if ACE_NDEBUG. - -Mon Mar 22 10:57:20 2004 Steve Huston - - * ace/SSL/SSL_Asynch_Stream.cpp: - * ace/SSL/SSL_Asynch_BIO.cpp: Added #include "ace/OS_NS_string.h" to - pick up missing symbols on AIX. - -Sat Mar 20 22:25:07 2004 Douglas C. Schmidt - - * tests/Multicast_Test.cpp (leave): Replaced - - size_t size = 0; - - with - - size_t size = this->address_vec_.size (); - - Thanks to Valery Salamakha - for reporting this! - -Sat Mar 20 17:01:55 2004 Balachandran Natarajan - - * ace/Timer_Queue_Adapters.h: - * ace/Timer_Queue_Adapters.i: - - Changes from the effect of the following change "Thu Mar 18 - 22:47:05 2004 Balachandran Natarajan " - -Sat Mar 20 18:45:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - When gendir is set, a \ must be added, not a /. This fixes - problems in the Borland builds that where caused by the fact - that the realclean didn't work and we did compile old generated - files. - -Sat Mar 20 11:15:19 2004 Olli Savia - - * ace/Containers_T.cpp: - * ace/Containers_T.i: - Removed unnesessary LynxOS checks. LynxOS's updated compiler can - handle these files correctly. - -Fri Mar 19 08:33:01 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Fixed a bug where a command dependency would be placed upon - generated files. The full path to the command is not always - supplied during custom definition and thus dependencies couldn't - be satisfied because the command doesn't necessarily exist in the - current directory. - - The solution was to add a new custom definition keyword that - allows the user to determine whether the command dependency should - be generated or not. The default is to not generate a command - dependency. - - * bin/MakeProjectCreator/README: - - Documented the new 'dependant' keyword for custom definitions. - - * bin/MakeProjectCreator/config/ciao_servant.mpb: - * bin/MakeProjectCreator/config/psdl.mpb: - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - - Set 'dependent' to 1 to ensure that the command dependency is - generated for these custom definitions. - -Thu Mar 18 22:47:05 2004 Balachandran Natarajan - - * ace/Task.cpp: - * ace/Task.h: - * ace/Thread_Manager.cpp: - * ace/Thread_Manager.h: - - The following change has been reverted "Fri Mar 5 23:09:14 2004 - Balachandran Natarajan " . A better - fix would be available soon. These fixes actually borke backward - compatibility in a bad way. - -Thu Mar 18 13:50:21 2004 Steve Huston - - * ace/Asynch_IO.{h cpp}: The change in - Thu Mar 11 14:35:41 2004 Steve Huston - didn't go far enough... the problem exists in all derivatives of - ACE_Asynch_Operation_Impl. Only ACE_Asynch_Operation deleted the - implementation_ pointer in its constructor. However, since each - derivative of ACE_Asynch_Operation was declaring its own - implementation_ (in addition to the one in ACE_Asynch_Operation), - no implementation was ever, in fact, being deleted. Hence: - 1. The ACE_Asynch_Operation::implementation_ member is removed, - along with the void implementation(ACE_Asynch_Operation_Impl*) - method that set it. - 2. The ACE_Asynch_Operation_Impl* implementation() method is now - pure virtual in ACE_Asynch_Operation and must be implemented - in each operation class. - 3. Each operation class needs to maintain its own appropriately - typed implementation pointer, and delete it when necessary. - 4. The implementation(ACE_*_Impl*) methods are all removed, as - none are necessary, and none are used any longer. - The operation classes already were creating their own implementation - objects, so that is the same now. However, they all now delete the - implementation at destructor time. - -Thu Mar 18 08:59:40 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Removed an extraneous dash in the install target. - -Wed Mar 17 21:00:36 2004 Balachandran Natarajan - - * ace/Global_Macros.h: - * ace/config-aix-4.x.h: - * ace/config-g++-common.h: - * ace/config-win32-visualage.h: - - Added a new #define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS - and enabled this feature only on the above platforms. With g++, - it is supported with g++ 3.4. This #define is used by - ACE_DES_FREE_TEMPLATE3 declarations in Global_Macros.h. Thanks - to Oliver Kellog for providing the patches. - - * ace/Task.h (activate): - * ace/Thread_Manager.h (spawn): - * ace/Timer_Queue_Adapters.h (activate): - - The last argument is now set to true as - default. This will get the behavior that C++ NPV1 and NPV2 - prescribes. Thanks to Dr. Schmidt and Abhijit Sachdev for - motivating this. - -Wed Mar 17 17:55:49 2004 Steve Huston - - * ace/Proactor.cpp (ctor): Change the default proactor implementation - to favor CB, then SIG, then AIOCB. The CB proactor works best on - many platforms, avoiding multithread issues with aio_suspend() on - most platforms other than HP-UX, and avoiding signal/thread mixes - on as many platforms as possible because it raises so many problems. - - * ace/POSIX_CB_Proactor.{h cpp}: Remove __sun as a condition that - prevents compilation of ACE_POSIX_CB_Proactor. Sun can do this - proactor type just fine. Added an 'extern "C"' variant of the - aio completion function for platforms (such as Solaris 8) that - have ACE_HAS_SIG_C_FUNC. - - * ace/config-sunos5.7.h: For Solaris 7 and later, use the default - proactor, ACE_POSIX_CB_Proactor. - - * ace/config-linux-common.h: Remove ACE_POSIX_AIOCB_PROACTOR setting. - The AIOCB proactor doesn't work with multiple threads since the - aio_suspend() call isn't multi-thread safe and ACE doesn't protect - the aiocb list. The SIG proactor doesn't work before the 2.6 kernel - because signals can't be queued across threads. CB works everywhere. - Note though, that even at the 2.6 kernel, read/write to sockets (and - some other things, I believe) get converted to blocking regardless of - what the application does. Thus, the only way to use aio on Linux - at this time is by ping-ponging, like the half-duplex mode in - Proactor_Test. Not terribly useful... - - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: Only allow the CB-type proactor for - !__Lynx__. Lynx is the only remaining AIO-enabled platform for - which this proactor type is not valid. - -Wed Mar 17 13:54:41 2004 Balachandran Natarajan - - * ace/Logging_Strategy.cpp: - - Reverting this change since it breaks MSVC builds! Looks like - VC6 is an old compiler wrt to ANSI C++ standards. Working things - for g++ 3.4 needs to wait. "Tue Mar 16 10:48:48 2004 - Balachandran Natarajan ". - -Wed Mar 17 14:20:31 2004 Steve Huston - - * ace/config-aix5.1.h: The AIO enable/disable check added at - Mon Mar 15 15:42:33 2004 Steve Huston - confuses the Visual Age C++ preprocessor. Rearrange it to use - a temporary macro, _ACE_DISABLE_AIO_CALLS_ if we need to turn off - ACE_HAS_AIO_CALLS after including config-aix-4.x.h. - - * examples/APG/Proactor/HA_Proactive_Status.cpp: Add #include - "ace/Message_Block.h" so Visual Age C++ can see ACE_Message_Block. - -Wed Mar 17 18:34:14 UTC 2004 Johnny Willemsen - - * tests/run_test.pl: - Changed -c to -g, -c is used by other scripts for the config - -Wed Mar 17 18:20:11 UTC 2004 Johnny Willemsen - - * tests/run_test.pl: - Added -c commandline option. With this option you can say that the - script has to look for a codeguard log. This log is placed in the - same directory as the executable, with the same name but with a cgl - extension. We use this for a new codeguard enabled BCB6 build. - -Tue Mar 16 16:56:36 2004 Balachandran Natarajan - - * asnmp/tests/Gauge_test.cpp: - * asnmp/tests/Counter_test.cpp: - - #ifdef'ed portions of the code which has no chances of compiling - on Win32, since native support for the used basic types are - missing. Changing the types to something else makes the test - useless. Commenting it out for Win32 shouldn't hurt anyone. - -Tue Mar 16 16:34:38 2004 Balachandran Natarajan - - * asnmp/tests/Varbind_Test.cpp: - * asnmp/tests/Counter64_Test.cpp: - - #ifdef'ed portions of the code which has no chances of compiling - on Win32, since native support for the used basic types are - missing. Changing the types to something else makes the test - useless. Commenting it out for Win32 shouldn't hurt anyone. - -Tue Mar 16 10:48:48 2004 Balachandran Natarajan - - * ace/Logging_Strategy.cpp: - - Use std::streamoff () to get the offset instead of casting. - - * ace/Malloc_T.i: - * ace/Strategies_T.cpp: - - #included OS_NS_string.h. - - Thanks to Oliver Kellog for providing the patches. - -Tue Mar 16 09:40:36 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - When adjusting template values, based on the -value_template - option, we must deal with them as arrays to maintain spaces within - individual values. - -Tue Mar 16 07:55:10 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Fixed a bug where workspaces that contain projects that depend - upon projects outside the local directory would have invalid - dependencies. - - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - Rewrote the 'if' handling code to be complete and support multiple - or's, and's and not's. - -Tue Mar 16 06:22:40 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Reverting my change from Mon Mar 15 08:31:05 2004. It has - undesirable effects in some situations. - -Mon Mar 15 18:26:39 2004 Steve Huston - - * examples/APG/Proactor/HA_Proactive_Status.h: Add #include - "ace/Asynch_IO.h" so AIX Visual Age C++ can find things at - template instantiate time. - -Mon Mar 15 15:42:33 2004 Steve Huston - - * ace/config-aix5.1.h: Set this up for use with AIX 5.2 as well. - AIX 5.2 has POSIX AIO, but it's not run-time enabled by default. - So, allow the user to turn it on, but leave it off by default. - - * ace/Asynch_Connector.cpp: Added #include "ace/OS_NS_sys_socket.h" and - "ace/OS_Memory.h" to pick up needed definitions on AIX when Visual - Age C++ is instantiating templates. - - * ace/POSIX_CB_Proactor.{h cpp}: Enabled use of the CB proactor on - non-sgi, non-FreeBSD systems. AIX likes this proactor implementation. - Also, fixed a mistaken timer setting where the number of desired - milliseconds timeout was instead specified as number of seconds. - - * tests/Proactor_Test.{cpp, h}: - * tests/Proactor_Test_IPV6.cpp: Moved the definitions of Sender - and Receiver to a new file, Proactor_Test.h. This allows AIX Visual - Age C++ to see the class definitions when instantiating templates. - Removed the #ifdef __sgi around use of the CB proactor, as that - is available and, indeed, works best, for AIX. - -Mon Mar 15 13:42:13 2004 Balachandran Natarajan - - * ace/CDR_Stream.cpp: - - Fixed a typo. Thanks to Andreas Koehler for pointing this out. - -Mon Mar 15 17:21:13 UTC 2004 Johnny Willemsen - - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - Fixed unused argument warning in MinGW builds. Thanks to - Martin Corino for fixing this. - - * examples/APG/Logging/Trace.h: - In case ACE_NTRACE is set to 1 then TRACE_RETURN should - return the given value instead of doing nothing. Thanks - to Martin Corino for finding this. - -Mon Mar 15 10:01:43 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/BMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/CbxWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/EM3WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/HTMLWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VA4WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - - Added information at the top of the generated workspace for these - types. The information includes the CVS $Id keyword, the command - line options for MPC and a warning about directly editing the - file. - -Mon Mar 15 08:31:05 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/Driver.pm: - - Warn the user if the version of perl they are using is less than - perl 5.6. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug with custom file types where header and inline files - would not be considered as generated targets if matching generated - source files were not explicitly listed. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Add the $(PATH) to VPATH when using custom commands in case the - custom command does not have a path in the exe name, which will - allow GNU Make to find the command and process the rule. - -Sun Mar 14 15:44:41 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/APC.cpp: - * examples/Reactor/WFMO_Reactor/Timeouts.cpp: - Cancel scheduled timers before quitting. This fixes the access - violations we see in the MinGW build when running these examples. - Caused by the fact that the event handler is on the stack and so - already destroyed when the singleton reactor is getting destroyed. - Thanks to Martin Corino with helping solving - these crashes. - -Sun Mar 14 14:21:13 UTC 2004 Johnny Willemsen - - * ace/Time_Value.cpp: - Fixed typo which resulted in compile errors. - -Sun Mar 14 12:52:31 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/Registration.cpp: - Fixed warnings in MinGW build - -Sun Mar 14 12:48:43 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/Network_Events.cpp: - Fixed warnings in MinGW build - -Sun Mar 14 12:44:12 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/Abandoned.cpp: - Fixed warnings in MinGW build - -Sun Mar 14 12:41:52 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/Handle_Close.cpp: - Fixed warnings in MinGW build - -Sun Mar 14 12:28:32 UTC 2004 Johnny Willemsen - - * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp: - Fixed warnings in the MinGW build. Thanks to Martin Corino - for supplying the patches. - -Sun Mar 14 12:18:16 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/Window_Messages.cpp: - Fixed warning in MinGW build. - -Sun Mar 14 12:16:53 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/Talker.cpp: - Changed member initialization order to fix MinGW warning. - -Sun Mar 14 12:12:31 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/Exceptions.cpp: - * examples/Reactor/WFMO_Reactor/Removals.cpp: - Fixed warnings in MinGW build. - -Sun Mar 14 12:10:11 UTC 2004 Johnny Willemsen - - * ace/Time_Value.{h,cpp}: - MingW has a problem importing static class data members (even with - --enable-auto-import) in case these members are referenced inside - heavily nested template class methods. It is somehow related to - optimization since with higher optim. levels more linking errors - are detected as with lower optim. levels. Since this is something - which is not going to be solved soon in the MingW environment and - the number of affected members are relatively few and the possible - fixes relatively simple (create accessor methods) we added accessor - methods for the zero and max_time static members of ACE_Time_Value. - - * ace/Select_Reactor_T.{cpp ,i}: - * ace/Timer_Queue_Adapters.{h,cpp}: - * ace/Timer_Queue_T.{h,i,cpp}: - * ace/Timer_Wheel_T.cpp: - * ace/Timer_Hash_T.cpp: - * ace/Timer_List_T.cpp: - Use the accessor methods to get zero and max_time instead of the - static public members. - - This fixes the link errors in the MinGW build. Thanks to - Martin Corino for figuring out the problem and - making the patches. - -Sun Mar 14 10:01:32 UTC 2004 Johnny Willemsen - - * ace/Lib_Find.cpp (ld_find): - When the dll is not found on win32, try again using ACE_DLL_PREFIX - prefixed. With MinGW all dll's have lib prefixed and when the prefix - wasn't attached by the user things failed. This fixes the DLL test - problems in the MinGW build. Thanks to Martin Corino - for figuring this out and making the patch. - - * ace/config-win32-mingw.h: - Removed setting of ACE_DLL_PREFIX, this is already done in - Default_Constants.h - -Sat Mar 13 18:25:11 UTC 2004 Johnny Willemsen - - * examples/OS/Process/process.cpp: - Fixed warnings in MinGW build. Thanks to Martin Corino - for creating the patch. - -Sat Mar 13 18:06:57 2004 Olli Savia - - * include/makeinclude/platform_g++_common.GNU: - * ace/config-lynxos.h: - Enabled implicit template instantiation for LynxOS 3.x. - -Sat Mar 13 09:43:11 UTC 2004 Johnny Willemsen - - * tests/Dirent_Test.cpp: - The first step of this test is to test the selector. To test this the - test uses Makefile as file to test for, but with the MPC builds we - remove the file Makefile and generate the file GNUMakefile, so at the - moment this tests runs there is no Makefile file and the test fails. - Changed the test so that it uses Dirent_Test.cpp as filename, this - is always there. Thanks to Martin Corino for - figuring out the problem. - -Fri Mar 12 16:29:29 2004 Balachandran Natarajan - - * tests/SString_Test.cpp: - - Fixed warnings in g++ builds. - -Fri Mar 12 12:51:45 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a bug where circular dependencies could be added by the - implicit dependency generation code due to path mismatches. - -Fri Mar 12 13:33:32 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp: - * examples/Reactor/WFMO_Reactor/Timeouts.cpp: - Added some ACE_UNUSED_ARGs to silence MinGW warnings - -Fri Mar 12 13:20:14 UTC 2004 Johnny Willemsen - - * examples/APG/Active_Objects/active_objects.mpc: - * examples/APG/Active_Objects/active_objects.mwc: - * examples/APG/Config/config.mpc: - * examples/APG/Config/config.mwc: - * examples/APG/Containers/containers.mwc: - * examples/APG/Logging/logging.mpc: - * examples/APG/Logging/logging.mwc: - * examples/APG/Misc_IPC/misc_ipc.mpc: - * examples/APG/Misc_IPC/misc_ipc.mwc: - * examples/APG/Naming/naming.mpc: - * examples/APG/Naming/naming.mwc: - * examples/APG/Proactor/proactor.mpc: - * examples/APG/Proactor/proactor.mwc: - * examples/APG/Processes/processes.mpc: - * examples/APG/Processes/processes.mwc: - * examples/APG/Reactor/reactor.mpc: - * examples/APG/Reactor/reactor.mwc: - * examples/APG/Shared_Memory/shared_memory.mpc: - * examples/APG/Shared_Memory/shared_memory.mwc: - * examples/APG/Signals/signals.mpc: - * examples/APG/Signals/signals.mwc: - * examples/APG/Sockets/sockets.mpc: - * examples/APG/Sockets/sockets.mwc: - * examples/APG/Streams/streams.mpc: - * examples/APG/Streams/streams.mwc: - * examples/APG/Svc_Config/svc_config.mpc: - * examples/APG/Svc_Config/svc_config.mwc: - * examples/APG/ThreadManagement/threadmgmt.mpc: - * examples/APG/ThreadManagement/threadmgmt.mwc: - * examples/APG/ThreadPools/threadpools.mpc: - * examples/APG/ThreadPools/threadpools.mwc: - * examples/APG/ThreadSafety/threadsafety.mpc: - * examples/APG/ThreadSafety/threadsafety.mwc: - * examples/APG/Threads/threads.mpc: - * examples/APG/Threads/threads.mwc: - * examples/APG/Timers/timers.mpc: - * examples/APG/Timers/timers.mwc: - Added missing Id tag - -Fri Mar 12 06:18:32 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added a missing space that broke things when idl files are - involved. - -Fri Mar 12 12:12:43 UTC 2004 Johnny Willemsen - - * Framework_Component_Test.cpp: - * Max_Default_Port_Test.cpp: - * Reactor_Exceptions_Test.cpp: - The test_config.h file must be included as first file else we don't - get log files in our SuSE 9 ACE build which has set ACE_NLOGGING. - -Fri Mar 12 11:03:11 UTC 2004 Johnny Willemsen - - * tests/Auto_IncDec_Test.cpp: - * tests/CDR_File_Test.cpp: - * tests/Capabilities_Test.cpp: - * tests/Get_Opt_Test.cpp: - * tests/Log_Msg_Test.cpp: - * tests/Logging_Strategy_Test.cpp: - * tests/Max_Default_Port_Test_IPV6.cpp: - * tests/Token_Strategy_Test.cpp: - * tests/Obstack_Test.cpp: - The test_config.h file must be included as first file else we don't - get log files in our SuSE 9 ACE build which has set ACE_NLOGGING. - -Thu Mar 11 17:00:14 2004 Steve Huston - - * ace/WIN32_Asynch_IO.cpp (handle_output): Be sure to unregister this - handler from the asynch task before posting the completion. The - completion handler may do anything, including delete the handler, - before this method has a chance to remove it from the asynch task. - -Thu Mar 11 14:35:41 2004 Steve Huston - - * ace/Asynch_IO.cpp (~ACE_Asynch_Connect): Delete the implementation_ - giving it a chance to unregister from the reactor and clean up - anything else needed, as well a plug a memory leak. - -Thu Mar 11 13:59:00 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bmake.mpd: - - Changed the custom rules to be more compact. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Made custom output files dependent upon the command that generates - them. Additionally, fixed a bug where generated source files - would always be regenerated if idl files existed in the project. - -Thu Mar 11 12:18:59 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Added a .PHONY target for each of the individual targets to avoid - a possible problem if a file or directory exists with the same - name as the target. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Remove duplicated mpc files when aggregating workspaces. If an - mpc file is added before a workspace is aggregated, the - duplication can be detected. If it happens the other way around, - it can not and will be an error. - - * tests/tests.mpc: - - The UUIDTest requires ace_uuid. - -Thu Mar 11 11:49:28 2004 Balachandran Natarajan - - * ace/SString.cpp (substring): - - If the value of the length argument is greater than the size of - the string, we made a mistake by setting the wrong length in the - newly create SString object. Thanks to Michael Kircher - for reporting this. - - * tests/SString_Test.cpp (run_main): - - Added a test for the above problem. - -Thu Mar 11 11:16:13 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Generate workspaces that use directory recursion when the - workspace contains targets within multiple directories. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Maintain directory groups when sorting dependencies. - -Thu Mar 11 08:47:55 2004 Douglas C. Schmidt - - * ace/WIN32_Proactor.cpp (post_completion): - ACE_WIN32_Proactor::post_completion executes these two - operations in wrong order: - - 1. If Proactor event is valid, signal it - 2. Post a completion - - If, for example, a Reactor is connected to the proactor through - the event, it may receive the event notification BEFORE the - completion has been posted, which is wrong. To fix the problem, - those two operations must be swapped: FIRST post a completion, - THEN signal the event. Thanks to Enrico Detoma - and Ishay Green - for reporting this. This closes bugid 1763. - -Thu Mar 11 16:36:09 2004 Kobi Cohen-Arazi - - * tests/Semaphore_Test.cpp (worker): - - Fix a problem in counting the timeouts. if acquire == -1 then - increment timeouts and check diff time against ACE_ALLOWED_SLACK - -Thu Mar 11 07:10:15 2004 Balachandran Natarajan - - * ace/String_Base.cpp (resize): - - Set release_ = 1, else we will start leaking memory. Thanks to - Andrew G. Harvey for reporting the problem. - -Thu Mar 11 06:42:19 2004 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/Options.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/Version.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added a new option, -genins, that will generate install files - after processing each project that can be used with - prj_install.pl. - - * bin/prj_install.pl: - - This script reads .ins files generated by MPC and installs - portions of a project into an alternate location. - -Wed Mar 10 18:34:12 2004 Tao Lu - - * bin/fuzz.pl: - Changed the requried runlevel for check_for_include test. - Also added support for the user to specify any single test - to run by using the [-t test_name] argument option. - -Wed Mar 10 18:54:01 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/configs/ciao_servant.mpb: - - Added cidlflags as a keyword. Thanks to Ed Mulholland for - motivating this. - -Wed Mar 10 12:33:04 2004 Tao Lu - - * bin/fuzz.pl: - Added support for checking of - "#include <(ace)|(tao)|(ciao)\/.*>" to avoid conflict - with Doxygen. - Thanks Don Hinton for the idea. - -Wed Mar 10 11:39:41 2004 Steve Huston - - * ace/INET_Addr.cpp (set (const sockaddr_in *addr, int len)): Check - the specified length to be sure we don't overrun the structure the - address is copied to. There's a bit of evidence from a customer - suggesting that (Windows) GetAcceptExSockaddrs() may return an - address length of the length passed to AcceptEx, and not the - length of a sockaddr_in structure. This guards against that. - -Wed Mar 10 11:29:13 UTC 2004 Johnny Willemsen - - * ace/Task.cpp: - Fixed unused parameter warning in single threaded builds - -Wed Mar 10 10:16:43 UTC 2004 Johnny Willemsen - - * bin/msvc_mpc_auto_compile.pl: - Corrected end message - -Wed Mar 10 10:07:54 UTC 2004 Johnny Willemsen - - * bin/msvc_mpc_auto_compile.pl: - Improved verbose output - -Tue Mar 9 17:00:11 UTC 2004 Johnny Willemsen - - * netsvcs/clients/Logger/direct_logging.cpp: - * netsvcs/clients/Logger/indirect_logging.cpp: - Fixed compile problems in wchar builds - -Tue Mar 9 18:03:42 2004 Olli Savia - - * ace/config-lynxos.h - Removed ACE_LACKS_INET_ATON. - - * ace/os_include/arpa/os_inet.h - Added missing prototype inet_aton for LynxOS. - -Tue Mar 9 09:22:19 2004 Balachandran Natarajan - - * ace/POSIX_Proactor.cpp: - - Fixed a unused variable warning. - -Tue Mar 9 14:31:11 UTC 2004 Johnny Willemsen - - * examples/Reactor/WFMO_Reactor/run_test.pl: - Improved this test script so that it outputs an error when the - executable cannot be found, instead of just trying to spawn a non - existent executable. - -Tue Mar 9 08:01:20 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where generated files were not added to the list of - output files for a custom command. - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added the ability to combine multiple workspaces into one by - listing them within a workspace declaration. - -Tue Mar 9 09:07:43 UTC 2004 Johnny Willemsen - - * ace/POSIX_Proactor.cpp: - Added ACE_UNUSED_ARG to silence unused parameter warning - -Tue Mar 9 09:03:04 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added an other dsp to build first - -Tue Mar 9 08:25:15 2004 Olli Savia - - * ace/config-lynxos.h - Readded ALIGNBYTES and ALIGN macros. LSOCK.cpp uses these - which I missed due to macro expansion. - -Mon Mar 8 18:03:41 2004 Steve Huston - - * ace/Timer_Queue_Adapters.i (activate): Remove erroneous - ACE_UNUSED_ARG lines. Someone removed the arg names from the - signature, making ACE_UNUSED_ARG unnecessary. - -Mon Mar 8 17:03:18 2004 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/AutomakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Changed the default behavior for all "make" based workspace - creators such that the -hierarchy option is the default. It is no - longer necessary to pass the -hierarchy option when generating - workspaces and projects of type make, bmake, borland, gnuace or - nmake. - -Mon Mar 8 11:38:43 2004 Douglas C. Schmidt - - * ace/Time_Value.inl (set): Make sure to roundup the - double value properly. Thanks to James Hu for suggesting the - fix and for Mikael Lundqvist - for reporting it. - -Mon Mar 8 15:52:33 2004 Steve Huston - - * ace/POSIX_Asynch_IO.{h cpp}: Added ACE_POSIX_Asynch_Read_Dgram and - ACE_POSIX_Asynch_Write_Dgram functionality. These were previously - left as "not supported". The functions don't offer the - immediate-success feature available on Windows, and the Dgram - socket must be "connected" as there's no address-specification - feature available in the asynch IO facility on POSIX. - - * ace/POSIX_Proactor.cpp: Comment out the signal setup; this should - not be necessary and, indeed, is erroneous, at least on Linux. - It's commented out instead of removed in case further testing on - other platforms determines that it is needed sometimes. - -Mon Mar 8 13:48:06 2004 Balachandran Natarajan - - * NEWS: - - Added a NEWS file which tracks user visible changes between - every beta. Thanks to Olli Savia and Gary Duzan for motivating - this. - -Mon Mar 8 13:18:13 2004 Balachandran Natarajan - - * ace/Timer_Queue_Adapters.h: - * ace/Timer_Queue_Adapters.i: - - Fixed warnings for the SunCC compiler. - -Mon Mar 8 20:32:35 2004 Olli Savia - - * ACE-INSTALL.html - Updated LynxOS section. - -Mon Mar 8 20:21:15 2004 Olli Savia - - * ace/config-lynxos.h - Added correct handling of ACE_NEEDS_IPC_1C_H for different - LynxOS versions. - - ACE_HAS_TERM_IOCTLS is now enabled for all LynxOS versions. - - Moved missing prototype declaration of pthread_sigmask to - os_signal.h. - - Removed unneeded ALIGNBYTES and ALIGN macros. - - * ace/os_include/os_signal.h - Added missing prototype declaration of pthread_sigmask. - -Mon Mar 8 18:34:09 2004 Kobi Cohen-Arazi - - * ace/Process_Semaphore.cpp: - * ace/Process_Mutex.inl: - Added SEM_UNDO when using SysV Semaphore Complex methods. - That fixes bug 1153 thanks to Frank Kuhlmann - -Mon Mar 8 16:33:12 UTC 2004 Johnny Willemsen - - * ASNMP/tests/tests.mpc: - * ASNMP/asnmp/asnmp.mpc: - * ASNMP/examples/get/get.mpc: - * ASNMP/examples/next/next.mpc: - * ASNMP/examples/set/set.mpc: - * ASNMP/examples/trap/trap.mpc: - * ASNMP/examples/walk/walk.mpc: - Added missing file extensions. This prevented resulted in project - files that did nothing. - -Mon Mar 8 16:14:13 UTC 2004 Johnny Willemsen - - * ace/Thread_Manager.cpp: - Rewrote the retrieval of the thread priority so that we don't - have to do a static_cast. The BCB compiler doesn't allow this - cast. - -Mon Mar 8 13:57:12 UTC 2004 Johnny Willemsen - - * tests/TkReactor_Test.cpp: - Fixed compile errors. Thanks to Robert Schiele - for reporting this. - -Sun Mar 7 18:35:15 2004 Olli Savia - - * ace/config-lynxos.h - Removed unneeded ACE_LACKS_MKTEMP macro. - - * ace/os_include/os_stdlib.h - Added missing mktemp() prototype for LynxOS 3.x.x - -Sun Mar 7 17:29:33 2004 Olli Savia - - * ace/config-lynxos.h - Removed some unneeded ACE_LACKS_* macros. - - * ace/os_include/os_stdlib.h - * ace/os_include/os_strings.h - Added missing prototypes for LynxOS 3.x.x - -Sat Mar 06 12:48:39 2004 Balachandran Natarajan - - * ace/Thread_Manager.cpp: - - Fixed a compilation error on Win32. - -Fri Mar 5 23:09:14 2004 Balachandran Natarajan - - * ace/OS_NS_sys_socket.inl (closesocket): - - Win32 distinguishes between shutting down a socket connection - and closing a socket. Therefore call shutdown on the socket - before closing down the socket. Thanks to Kitty for digging up - the MSDN documentation and the patch. - - * ace/Task.cpp (activate): - * ace/Task.h (activate): - - Added an extra argument, inherit_priority which tells the thread - manager to inherit the priority of the calling thread or use the - priority passed in. - - * ace/Thread_Manager.cpp: - * ace/Thread_Manager.h (spawn, spawn_n, spawn_i): - - Added an extra argument, inherit_priority which tells the thread - manager to inherit the priority of the calling thread or use the - value of the priority passed in. This argument is set to false - by default, which would retain the classical behaviour. - - Thanks to Abhijit Sachdev for reporting the - bug. Thanks to Dr. Schmidt and Kitty for motivating me to add - the fix in ACE. - - I am not still certain whether the above fix is okay. Folks who - call ACE_Thread::spawn* and ACE_OS::thr_create () will not get - this feature. Still wondering whether we should propogate this - feature down to ACE_Thread or ACE_OS level. Willing to hear any - advise or motivation on this. - - * ace/Thread.cpp: - - Cosmetic formatting fixes. - - * ace/os_include/os_langinfo.h: - * ace/os_include/os_spawn.h: - - Fixed typos in the included file names. Thanks to Robert - Schiele for reporting the problem. - -Fri Mar 5 18:12:24 2004 Steve Huston - - * ace/Asynch_Acceptor.cpp (open): If any of the steps in the open fail, - close the socket and reset listen_handle_ to ACE_INVALID_HANDLE - before returning. Also added ACE_LIB_TEXT around the naked literal - strings for ACE_ERROR. - -Fri Mar 5 22:56:45 UTC 2004 Don Hinton - - * bin/MakeProjectCreator/templates/gnu.mpd: - Converted it back to unix file by running dos2unix. Added -*- - Makefile -*- to top of file. - -Fri Mar 5 16:56:25 2004 Yamuna Krishnamurthy - - * bin/tao_other_tests.lst: - - Replaced the string 'RTP/UDP' with 'RTP_UDP' where specified as - a command line argument to the AVStreams tests run_test.pl. This - was to ensure that the '/' in the string does not confuse the - script parser. This should fix the run time errors in the - builds. - -Fri Mar 5 12:14:56 2004 Chad Elliott - - * bin/MakeProjectCreator/config/mfc.mpb: - - Set the ACE_HAS_MFC to 1 instead of just defining it. - - * bin/MakeProjectCreator/config/notifytest.mpb: - * bin/MakeProjectCreator/config/rtnotify.mpb: - - Switched these projects to use notification instead of notify. - The notify base project only inherited from notification and - provided nothing else. - - * bin/MakeProjectCreator/config/notify.mpb: - - Removed this file. - -Fri Mar 5 10:56:35 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - More code optimizations. A significant time reduction has - occurred with the use of -hierarchy. - -Fri Mar 5 09:47:55 2004 Olli Savia - - * ACE-INSTALL.html - Updated LynxOS section and fixed some HTML errors. - - * include/makeinclude/platform_lynxos.GNU - Compile flag -Wall is now used on all versions of LynxOS. - -Fri Mar 5 01:41:54 UTC 2004 Don Hinton - - * ace/Node.h: - Added forward declaration for ACE_Unbounded_Queue_Const_Iterator. - - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.local.GNU: - Moved the IDL_SRC dependencies from rules.local.GNU to the bin - and lib files to get around a problem with hand crafted makefile - rules including all dependencies in the link line. - -Thu Mar 4 17:45:29 2004 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: For AIX 5.2, add a compile - flag, -U__C99_RESTRICT, to work around a compiler problem that is - tickled by aio.h. This can be removed when IBM supplies a compiler - fix for Visual Age C++, which they intend to do in May 2004. - - * ace/POSIX_Asynch_IO.cpp: Add #include "ace/ACE.h" to see - ACE::set_flags(), and "ace/OS_NS_sys_stat.h" to see - ACE_OS::filesize() on AIX. - -Thu Mar 4 07:39:52 2004 Douglas C. Schmidt - - * ace/Node.h: Added ACE_Unbounded_Queue_Const_Iterator as a - friend to ACE_Node. Thanks to Matthew Harris - for reporting this. This closes BUGID - 1759. - -Thu Mar 4 16:14:04 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed an infinite loop introduced by the previous change. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Added progress indication when writing out workspaces. - -Thu Mar 4 13:19:06 2004 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/Preprocessor.pm: - * bin/depgen.pl: - - Added an option to exclude dependency information from user - specified files. - - * include/makeinclude/rules.local.GNU: - - Added the option to exclude dependencies found from config.h to - avoid pulling in files such as config-linux.h, config-sunos5.6.h, - etc. - - * bin/g++dep: - - Added an option to be compatible with depgen.pl. - -Thu Mar 4 11:17:27 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/BMakeProjectCreator.pm: - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - - Removed extraneous calls to sort. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateInputReader.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - - More code optimizations for an additional 8% performance increase. - -Thu Mar 4 07:59:15 2004 Chad Elliott - - * ace/config-lynxos.h: - * include/makeinclude/platform_lynxos.GNU: - - Enable alloca for LynxOS and remove the -ansi option from CCFLAGS - (which allows users to use alloca). Thanks to Olli Savia - for providing this patch. - -Thu Mar 4 06:39:11 2004 Olli Savia - - * tests/Max_Default_Port_Test_IPV6.cpp - Fixed compile error on LynxOS. - -Thu Mar 4 04:28:53 UTC 2004 Don Hinton - - * include/makeinclude/rules.local.GNU: - Added a dependency rule that all objects depend on IDL_SRC, if - it is defined. This makes more sense that having the resulting - lib or exe dependent since it's the objects that use them, or - more precisely, the cpp's include the headers, etc... Thanks to - Bala for motivating this. - -Thu Mar 4 01:30:45 UTC 2004 Don Hinton - - * include/makeinclude/wrapper_macros.GNU: - Rolled back change: Tue Mar 2 23:57:29 UTC 2004 Don Hinton - . Apparently, some compilers need - things like -I, etc..., when dealing with templates at link - time. After the BFO release, we may try to determine who needs - what, but since it isn't critical path, I've rolled it back. - Thanks to Steve Huston from pointing this out. - -Wed Mar 3 13:06:59 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Put in some more optimizations that make MPC about 9% faster. - Also, fixed a problem with generating implicit project - dependencies too many times when the -hierarchy option is used. - -Wed Mar 3 16:58:16 UTC 2004 Don Hinton - - * include/makeinclude/rules.nested.GNU: - Don't use the "-C" option when invoking make recursively, use - the "cd subdir && make ..." variant instead. This fixes a - compatibility problem Clearmake. Thanks to "Pai, Ganesh" - for this suggestion. - -Wed Mar 3 13:43:17 UTC 2004 Don Hinton - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - Use a variable $TARGET_SEP instead of '-' to seperate the - project name from the target. Thanks to Chad Elliott - for reporting the problem. - -Wed Mar 3 07:42:54 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/StringProcessor.pm: - - Rewrote my optimization from Tue Mar 2 12:28:09 2004 such that - escaped double quotes are preserved. - -Wed Mar 3 07:08:11 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - When dealing with template's, we need to take into account the - possibility of windows absoulte paths (eg. c:\foo\gnu.mpd). - -Tue Mar 2 20:03:43 2004 Ossama Othman - - * ace/OS_NS_unistd.h (rmdir): - * ace/OS_NS_unistd.inl (rmdir): - - Added ACE_OS::rmdir() implementation submitted by Andrew - T. Finnell . [Bug 1409] - -Wed Mar 3 03:23:35 UTC 2004 Don Hinton - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - Add a reverseclean target that only has a realclean dependency, - so that callers expecting a reverseclean target will get still - work. Since reverseclean is not implemented in normal - makefiles, just in top level ones, this target must be handled - explicitly. A lot of autobuilds still call reverseclean. - -Tue Mar 2 18:59:53 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/StringProcessor.pm: - - Reverted my change from Tue Mar 2 12:28:09 2004 which broke in - certain usages. - -Tue Mar 2 18:36:08 2004 Chad Elliott - - * ace/TMCast/TMCast.mpc: - - Fixed the requires by removing the comma. - -Tue Mar 2 23:57:29 UTC 2004 Don Hinton - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - Added a check for "ciao" that mimics the behavior of - already in place for tao. This will enable us to know - if it's a ciao project so we can include a ciao specific - rules file. - - * bin/MakeProjectCreator/modules/Parser.pm: - Output the name of the file that can't be opened - instead of just saying unable to read. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - Don't always tack on a file extension. This was particularly - vexing when trying to pass a different template file. - This way, you can let your shell complete the file name - that you find without having to hit the delete key 5 times. - - Allow calls to pass the absolute path--just easier for - scripts to handle. - - * include/makeinclude/wrapper_macros.GNU: - Removed $(CCFLAGS) $(CPPFLAGS) from the link step. Thanks - to Boris Kolpackov for pointing - this out. - - * include/makeinclude/rules.local.GNU: - Make sure assignments to CLEANUP_OBJS is always additive. - - * include/makeinclude/platform_chorus.GNU: - * include/makeinclude/platform_chorus4.x_g++.GNU: - * include/makeinclude/platform_freebsd.GNU: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/platform_lynxos.GNU: - * include/makeinclude/platform_macosx.GNU: - * include/makeinclude/platform_macosx_panther.GNU: - * include/makeinclude/platform_openbsd.GNU: - * include/makeinclude/platform_psosim_g++.GNU: - * include/makeinclude/platform_qnx_neutrino.GNU: - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - * include/makeinclude/platform_sunos5_g++.GNU: - * include/makeinclude/platform_unixware_g++.GNU: - Don't always include -pipe in CFLAGS, let users - control it with the pipes option. - -Tue Mar 2 18:46:11 2004 Steve Huston - - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: Added #include - "ace/OS_NS_string.h" to get missing ACE_OS methods on AIX. - - * tests/RMCast/RMCast_Retransmission_Test.cpp: Added #include - "ace/ACE.h" to get missing methods on AIX. - -Tue Mar 2 23:40:42 UTC 2004 Don Hinton - - * bin/create_ace_build.pl: - Don't remove files with the .exp extension from the list - of files used to create a workspace since they are used - by the gperf tests and will break autobuilds that use - this script. - -Tue Mar 2 23:26:28 UTC 2004 Don Hinton - - * bin/g++dep: - Added the -MG option so that missing dependency files won't - cause g++ to stop processing. Thanks for Steve Huston for - pointing this out. - - Modified the sed script that modifies the output to correctly - blow away only the platform specific config file. This was - needed since we now have config-all.h and config-lite.h. Thanks - to Bala for pointing out the problem. - - * ace/Makefile.ace: - * ace/RMCast/Makefile: - Updated dependencies. - -Tue Mar 2 23:12:17 UTC 2004 Don Hinton - - * tests/Dirent_Test.cpp: - Fixed the CVS Id tag. - -Tue Mar 2 22:58:40 UTC 2004 Don Hinton - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - Rewrote the output generation to be more human readable - by using standard makefile techniques. Also, discovered - a bug in the dependencies (that was also present prior - to this change) since it's now easier to grok the - generated makefile. I'll fix it once I've checked in - all the other MPC changes in my queue. - -Tue Mar 2 12:28:09 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bmake.mpd: - * bin/MakeProjectCreator/templates/bmakedllexe.mpt: - * bin/MakeProjectCreator/templates/bmakelibexe.mpt: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - * bin/MakeProjectCreator/templates/vc7libexe.mpt: - - Allow the user to generate projects with executable names with a - modifier for different configurations similar to the library - modifier for debug/release. To enable this add '-value_template - use_modifier=1' to your MPC command line. - -Tue Mar 2 12:33:51 2004 Steve Huston - - * m4/compiler.m4: Added HPUX_VERS to HP-UX compiler options, and - -D_HPUX_SOURCE to aC++ options. This mirrors what the traditional - platform options do. - -Tue Mar 2 11:16:03 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/BMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - - Avoid looping and using substr to count instances of '/', use tr - instead. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/FeatureParser.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/StringProcessor.pm: - * bin/MakeProjectCreator/modules/TemplateInputReader.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - - Performed various optimizations to gain roughly a 10% increase in - performance. - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Rewrote the workspace generation code to be similar to the other - make based creators and reduced the size of the generated - workspace. - - * bin/MakeProjectCreator/modules/Version.pm: - - Incremented the version number. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed two bugs in the workspace creator: - - 1) Using implicit as a scoped assignment caused project files to - be added multiple times which is an error. - 2) When a project name with characters that could be special - characters in regular expressions are not used within a - workspace, but are referenced by other projects, the code - would bomb out. - -Mon Mar 1 18:03:22 2004 Steve Huston - - * tests/Multicast_Test_IPV6.cpp: Added #include "ace/Min_Max.h" to - see ACE_MIN, ACE_MAX. - -Mon Mar 1 22:50:51 UTC 2004 Craig Rodrigues - - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - Fix this test so that it actually reports - multiple interfaces properly. - -Mon Mar 01 14:54:14 2004 Irfan Pyarali - - * tests\MT_Reference_Counted_Notify_Test.cpp (Simple_Event_Handler): - * tests\Timer_Queue_Reference_Counting_Test.cpp (Simple_Event_Handler): - - Removed asserts in add_reference() and remove_reference() for - event handlers not participating in reference counting. - -Sun Feb 29 14:45:11 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - When building a static build, add always the staticflags flags - to the CPPFLAGS. Previously we did this only when building the - libraries, but then the executables get link errors. This fixes - compile problems when using Cygwin or MinGW in a static build. - -Sun Feb 29 14:04:41 UTC 2004 Johnny Willemsen - - * tests/Framework_Component_DLL_Export.h: - Added check for ACE_AS_STATIC_LIBS for setting the export flags for - proper building of static libraries. - -Sun Feb 29 13:59:13 UTC 2004 Johnny Willemsen - - * performance-tests/Synch-Benchmarks/Synch_Lib/export_mac.h: - Added check for ACE_AS_STATIC_LIBS for setting the export flags for - proper building of static libraries. - -Sun Feb 29 09:53:15 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added an other dsp to build first - -Sat Feb 28 15:56:11 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added more dsps that must be build first - -Fri Feb 27 12:33:10 2004 Irfan Pyarali - - * ace/Event_Handler.cpp (add_reference and remove_reference): - - Previously, add_reference() and remove_reference() were called - on a event handler only if the reference counting policy was - enabled. Unfortunately, this meant that at every place where - add_reference() and remove_reference() were called, a check had - to be made to see if the reference counting policy was enabled. - It also meant that Event_Handler_var class could not be used - with event handlers that do not enable the reference counting - policy since the Event_Handler_var class was calling - add_reference() and remove_reference() without checking the - reference counting policy. - - So I modified the add_reference() and remove_reference() methods - so that they check perform the necessary check for the reference - counting policy. This way the Event_Handler_var can be used - without concern for whether the event handler has the reference - counting policy enabled. Similarly, add_reference() and - remove_reference() can also be called without concern for - whether the event handler has the reference counting policy - enabled. Only in some places in the ACE library, - remove_reference() cannot be called on the event handler because - it might have been closed. Therefore, an explicit check for the - reference counting policy still needs to be performed. - - Reference counting in the following files was made simple - because of above change: - - - ace/Select_Reactor_Base.cpp - - ace/Select_Reactor_T.cpp - - ace/Timer_Queue_T.cpp - - ace/WFMO_Reactor.cpp - - The tests/Reference_Counted_Event_Handler_Test.cpp test was - extended to check this change. - - Thanks to Dom Monteiro and Liat - (vliat1@hotmail.com) for pointing out this problem. - -Fri Feb 27 11:20:30 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Change the way lines are read so line continuation (ending a line - in \) would work uniformly within mpb, mpc and mwc files. - -Fri Feb 27 08:51:20 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where 'specific' assignments were always added to - existing values. It did not allow for straight assignments or - subtractions. Now, specific assignments (additions and - subtractions) are processed as they are read instead of at the end - of the project. - -Fri Feb 27 11:34:11 UTC 2004 Johnny Willemsen - - * include/makeinclude/compiler.bor: - When doing a release build with BCB5 also don't use -O2. Thanks - to Andreas Wagner for reporting this. This - fixes bug [1754]. - -Fri Feb 27 09:02:07 UTC 2004 Johnny Willemsen - - * ace/OS_NS_unistd.h: - Fixed definition fsync to fix linker errors in the msvc6 - static builds. - -Thu Feb 26 18:08:19 2004 Steve Huston - - * examples/APG/Reactor/Client.cpp: Add missing #include - "ace/OS_NS_string.h" to get ACE_OS::strlen(). - -Thu Feb 26 18:02:41 2004 Steve Huston - - * m4/tls.m4: Add handling for ACE_TLS_LDFLAGS so user can specify - linker options (e.g. -L) necessary to find SSL libs. - -Thu Feb 26 12:26:28 2004 Ossama Othman - - * tests/Makefile.am (Bug_1576_Regression_Test): - - Added this test to the list of tests. It was missing. Thanks - to Kevin Stacy for reporting the problem. - - * tests/DLL_Test.cpp (dynamic_cast_test): - - Corrected spelling in error message. - - * THANKS: - - Added Kevin Stacy to the hall of fame. - -Thu Feb 26 10:54:42 2004 Balachandran Natarajan - - * Makefile: - - Removed the CIAO_Core target, since it was brain dead in the - first place. Thanks to Ed Mulholland for motivating this. - -Thu Feb 26 11:15:39 2004 Steve Huston - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: In declaration of - ACE_Output_Handler, add "using ACE_Service_Handler::open;" before - declaring the override of it. Helps to disambiguate which open() - we mean, ACE_Task::open(), or ACE_Service_Handler::open(). Sun - Forte 8 complained about this ambiguity. Thanks to Johnny Willemsen - for reporting this and working on a fix. - -Wed Feb 25 13:11:47 2004 Douglas C. Schmidt - - * ace/OS_NS_unistd.inl: Added support for ACE_OS::fsync(). - Thanks to Michel Drapeau for - reporting this. - -Wed Feb 25 16:37:11 2004 Steve Huston - - * tests/Proactor_Test_IPV6.cpp: Fixed problem introduced in change - earlier today. - -Wed Feb 25 11:39:38 2004 Chad Elliott - - * ace/codecs.mpb: - - Removed unnecessary macros. I missed this one in the previous - commit. - -Wed Feb 25 11:28:11 2004 Chad Elliott - - * ace/OS_NS_unistd.inl: - - If ACE_HAS_CLOCK_GETTIME is defined, use nanosleep() in - ACE_OS::sleep (const ACE_Time_Value &tv) as is used in - the other version, ACE_OS::sleep (u_int seconds). - - * ace/other.mpb: - * ace/uuid.mpb: - - Removed unnecessary macros. - -Wed Feb 25 12:09:31 2004 Steve Huston - - * tests/Proactor_Test_IPV6.cpp: Fixed problems with mismatched - char/wchar_t usage. - -Wed Feb 25 10:43:32 2004 Chad Elliott - - * ace/config-lynxos.h: - - Fixed the portion of the header that determines whether we are - building on LynxOS 4.0.x or not. Thanks to Olli Savia - for reporting this problem and testing my changes on - LynxOS 3.1.0. - -Tue Feb 24 17:31:22 2004 Steve Huston - - * examples/APG/Reactor/Client.cpp: Fixed manipulation and iterations_ - count and way that memory is copied into a new ACE_Message_Block. - Thanks to Karen L. Regner for reporting - these problems. - - * THANKS: Added Karen Regner to the Hall of Fame. - -Tue Feb 24 17:22:45 2004 Steve Huston - - * ace/Message_Block.h: Fixed up some of the documentation; clarified - that the data buffer given to a constructor is not copied anywhere, - but referenced. - -Tue Feb 24 18:57:11 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added another dsp that must be build first - -Tue Feb 24 18:13:19 UTC 2004 Johnny Willemsen - - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test{h,cpp}: - Fixed compile problems in wchar builds - -Tue Feb 24 17:58:43 UTC 2004 Johnny Willemsen - - * ace/Hash_Map_Manager_T.{h,i}: - Added protected accessor methods cur_size and table. People which - create a derived class can use these accessors. Thanks to Ganesh Pai - for the idea. - -Tue Feb 24 17:34:11 UTC 2004 Johnny Willemsen - - * performance-tests/Synch-Benchmarks/Perf_Test/Adaptive_Lock_Performance_Test_Base.h: - * performance-tests/Synch-Benchmarks/Perf_Test/adaptive_mutex_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/adaptive_recursive_lock_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/adaptive_sema_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.{h,cpp}: - * performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.{h,cpp}: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.{h,cpp,i}: - * performance-tests/Synch-Benchmarks/Perf_Test/pipe_proc_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/pipe_thr_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/sysvsema_test.cpp: - Fixed compile problems in wchar builds - -Tue Feb 24 07:49:17 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - - Added a fill_value() template value called mpc_files which returns - an array of mpb files and the mpc file that is currently being - processed. - - * bin/MakeProjectCreator/modules/HTMLProjectCreator.pm: - - Fixed a divide by zero error that would arise when there is no - inheritance at all. - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/templates/bmake.mpd: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/html.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added a new keyword called pure_libs which is similar to lit_libs - however no file extension is added to the name. So, it is - expected that the user will provide the complete library name when - using pure_libs. - -Mon Feb 23 16:57:19 2004 Steve Huston - - * ace/OS_NS_unistd.inl (write): On Windows with overlapped mode in - an error condition, need to use ACE_FAIL_RETURN, not naked return, - to properly set errno to GetLastError. - -Mon Feb 23 17:33:04 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added some more project files that must be build first - -Mon Feb 23 16:08:43 UTC 2004 Johnny Willemsen - - * ace/ACE_export.h: - When using Cygwin and MinGW GCC version 3.3.1 or later we get dozens - of warnings about methods that are defined locally after being - referenced with dllimport. So, when using Cygwin or MinGW, when - building with inlining enabled, make sure the methods in the ACE_OS - namespace are marked as inline and not with dllimport. This fixes - the warnings in the ACE_OS namespace but not the warnings in all - other places. Thanks to Wu Yongwei for sending - a fix for this. - -Mon Feb 23 07:03:11 2004 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/templates/html.mpd: - * bin/MakeProjectCreator/modules/HTMLProjectCreator.pm: - * bin/MakeProjectCreator/modules/HTMLWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/MPC.pm: - * bin/MakeProjectCreator/modules/MWC.pm: - - Added Justin Michel's HTML workspace and project creator and put - in many enhancements including an inheritance hierarchy display - and information from the MPC templates (when used with the -ti - option). - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Provide the full file names to the base projects and let the - individual project creators deal with that. - - * bin/MakeProjectCreator/modules/VA4ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - - Removed the unused separate_static_project() method. - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - - Renamed some temple variables. - -Sat Feb 21 14:24:20 2004 Balachandran Natarajan - - * include/makeinclude/platform_macosx_panther.GNU: - - Added -mpcpu=G3 and -mtune=G4 to OCFLAGS. Mac OS X 10.3 requires - a PowerPC G3 chip and hence this isn't adding any restrictions - to ACE/TAO that the target platform doesn't already have for - itself. Thanks to Thomas Costa for the - patches. - -Sat Feb 21 19:56:13 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added some more project files that must be build first when doing - at full static build. - -Sat Feb 21 19:49:11 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Build FaultTolerance.dsp after FTORB_Utils and PortableGroup - -Sat Feb 21 15:14:43 UTC 2004 Johnny Willemsen - - * Kokyu/tests/EDF/test.cpp: - Fixed compile problem in wchar build. - -Sat Feb 21 15:08:12 UTC 2004 Johnny Willemsen - - * performance-tests/Synch-Benchmarks/synch_driver.cpp: - Fixed compile problem in wchar build. - -Sat Feb 21 08:33:55 2004 Balachandran Natarajan - - * ace/DEV_IO.i (recv_n): - - Using ACE::recv_n () created problems on Win32 serial port - code. Now we call recv_n () on all platform on all platforms but - Win32. On Win32 we call read_n () which works. Thanks to Philip - Miller for reporting the problem. - -Sat Feb 21 08:30:53 2004 Balachandran Natarajan - - * ace/CDR_Base.h: - * ace/CDR_Base.cpp: - Reverted this change "Fri Feb 20 17:14:46 2004 Irfan Pyarali - " as I work about a way to handle - this. - -Fri Feb 20 18:21:39 2004 Steve Huston - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - AC_Input_Handler::close() should accept a u_long, not u_int, to - properly override ACE_Svc_Handler::close(). - AC_CLD_Connector::connect_svc_handler() first arg is a - ACE_Svc_Handler*&, not ACE_Svc_Handler*, to properly override - ACE_Connector::connect_svc_handler(). - Thanks to Johnny Willemsen for pointing these out. - -Fri Feb 20 17:14:46 2004 Irfan Pyarali - - * ace/CDR_Base.{h,cpp} (NonNative LongLong and LongDouble): - - Added assignment operators for these two types. - - * ace/CDR_Stream.cpp (read_16): - - The function for reading a longdouble was adjusting and aligning - the buffer to longlong size rather than to longdouble size. - -Fri Feb 20 17:12:14 2004 Yamuna Krishnamurthy - - * bin/tao_other_tests.lst: - - Modified script to run Pluggable and Simple_Two_Stage tests with - SCTP_SEQ transport protocol only when the SCTP config flag is - set. - -Fri Feb 20 21:18:13 UTC 2004 Johnny Willemsen - - * Static_Performance.dsw: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore_static.dsp: - * examples/Service_Configurator/IPC-tests/server/Server_static.dsp: - * examples/ASX/CCM_App/CCM_App_static.dsp: - Removed these static msvc6 project files. Use MPC to generate these - if you need them. These are outdated and should have gone before 1.4 - was released. - -Fri Feb 20 18:47:26 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added FaultTolerance.dsp, RTCosScheduling and FtRtEvent.dsp to this - file, so that they are build first with all other needed libs in the - static builds. - -Fri Feb 20 16:40:13 UTC 2004 Johnny Willemsen - - * apps/mkcsregdb/mkcsregdb.cpp: - Fixed warning in BCB builds about comparing signed and unsigned - values - -Fri Feb 20 07:51:04 2004 Balachandran Natarajan - - * etc/ace.doxygen: - - Reverted the change "Sun Dec 28 15:09:34 UTC 2003 Don Hinton - " since it broke stuff in - ACE-categories.html. Don seems to have a better fix. Till - then. This reversal will create problems for folks who untar - doxygen documentation on platforms where the path length could - be an issue. - -Thu Feb 19 15:22:49 2004 Steve Huston - - * ace/Template_Instantiations.cpp: Add a block to keep HP aC++ from - issuing a warning about an empty translation unit. - - * ace/Global_Macros.h: Added #include "ace/config-lite.h" because - this file checks on config options. - - * ace/config-all.h: No need to include "ace/Global_Macros.h" from here. - - * ace/MEM_Addr.cpp (same_host): To account for IPv4/IPv6 differences, - use ACE_INET_Addr::operator==. Because that method takes the port - number into account when comparing, and we don't care about the - port number, copy the two addresses to new ACE_INET_Addr objects - and set their port numbers to 0, then compare. - - * tests/Multicast_Test_IPV6.cpp: - * tests/Proactor_Test_IPV6.cpp: Corrected name of log file so - the test script can find it. - -Thu Feb 19 08:06:09 2004 Douglas C. Schmidt - - * ace/OS_NS_sys_stat.inl (lstat): Removed the ACE_WIN32 - branch since Windows doesn't support _lstat(). Thanks to - Johnny Willemsen for this. - - * ace/config-win32-common.h: Added ACE_LACKS_LSTAT. Thanks to - Johnny Willemsen for this. - -Thu Feb 19 11:40:11 UTC 2004 Johnny Willemsen - - * tests/Dirent_Test.cpp: - Fixed typo - -Wed Feb 18 13:51:28 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/FeatureParser.pm: - * bin/MakeProjectCreator/modules/OutputMessage.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - - Make all of the error and diagnostic messages go through the - OutputMessage module. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Made inheritance hierarchy information available to the project - creator subclasses. - - * bin/MakeProjectCreator/modules/Version.pm: - - Increment the version number. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Fixed a problem with the implicit inter-project dependency - generation code. It now looks at indirect project dependency to - avoid adding inter-project dependencies when they are not needed. - This fixes [BUGID 1653]. - -Wed Feb 18 11:36:44 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bmake.mpd: - - Added a missing <%endif%>. - -Wed Feb 18 10:41:07 2004 Balachandran Natarajan - - * ace/OS_NS_sys_stat.inl: Removed an extra endif. Thanks to Don - Hinton for sending the patch. - -Wed Feb 18 07:04:55 2004 Douglas C. Schmidt - - * ace/OS_NS_sys_stat.{h,inl}: Changed the first parameter of - lstat() to be ACE_TCHAR rather than just char and revised the - #defines so things should work better on Windows. Thanks to - Johnny Willemsen for reporting this. - - * tests/Dirent_Test.cpp (dirent_count): Rearranged some - code so the test would work. Thanks to Zvika Ashani - for reporting this and testing it. - - * ace/os_include/sys/os_stat.h: Changed S_IFLNK to 0200000. - Thanks to Zvika Ashani for reporting - this and testing it. - -Tue Feb 17 19:55:56 UTC 2004 Craig Rodrigues - - * ace/SOCK_SEQPACK_Connector.cpp: - Add #include to get ACE_OS::memcpy(). - -Tue Feb 17 10:29:34 2004 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC6ProjectCreator.pm: - * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: - - Added an environment variable, - MPC_DEPENDENCY_COMBINED_STATIC_LIBRARY, to control the creation of - inter-project dependencies of static libraries for the em3, vc6, - vc7 and vc71 project types. If the environment variable is set, - MPC will generate inter-project dependencies for static libraries. - Whereas, normally it would not. - - * bin/MakeProjectCreator/modules/VA4ProjectCreator.pm: - - Removed a redundant version of the translate_value() method. - -Mon Feb 16 08:06:23 2004 Douglas C. Schmidt - - * ace/os_include/sys/os_stat.h: Changed the value of S_IFLNK so - that it's different than S_IFREG. Thanks to Zvika Ashani - for reporting this. - -Mon Feb 16 13:40:34 2004 Chad Elliott - - * bin/MakeProjectCreator/config/openssl.mpb: - * bin/MakeProjectCreator/config/qos.mpb: - * bin/MakeProjectCreator/config/qt.mpb: - * bin/MakeProjectCreator/config/zlib.mpb: - - Added bmake to the specific sections for these base projects. - -Sun Feb 15 16:34:58 2004 Balachandran Natarajan - - * ace/os_include/sys/os_stat.h: - - Fixed a typo that was causing compile errors on Win32. - -Sun Feb 15 09:40:46 2004 Douglas C. Schmidt - - * ace/os_include/sys/os_stat.h: Added a #define for - S_IFLNK for Windows platforms, which lack this #define. Thanks - to Zvika Ashani for reporting this. - -Sun Feb 15 10:00:58 2004 Balachandran Natarajan - - * tests/Dirent_Test.cpp: - - Fixed unused function warnings. - -Sat Feb 14 11:41:27 2004 Douglas C. Schmidt - - * ace/OS_NS_sys_stat.inl: Implement lstat() so that it'll - use stat() on platforms that don't support lstat(). - - * tests/Dirent_Test.cpp: Updated this test so it will - illustrate how to recurse through a hierarchical directory - structure. Thanks to Zvika Ashani for - helping to motivate this example and for providing the initial - implementation. - -Sat Feb 14 09:22:25 2004 Balachandran Natarajan - - * ace/TMCast/Makefile: - * ace/TMCast/TMCast.mpc: - - Needs threads=1 to compile. - -Sat Feb 14 08:48:10 2004 Balachandran Natarajan - - * ace/TMCast/Group.cpp: - - Fixed compile errors in daily builds. - -Fri Feb 13 12:21:06 2004 Douglas C. Schmidt - - * ace/Process_Manager.cpp (wait): If the - ACE_Event_Handler::handle_exit() methods kills a managed - process, the process_table_ array is modified before - this->remove_proc (idx) is called. In this case the value of idx - is wrong, so we replace remove_proc(idx) with remove(pid). - Thanks to Carsten Prescher for - reporting this. This fixes bugid 1743. - -Fri Feb 13 09:47:25 2004 Balachandran Natarajan - - * ace/CDR_Stream.cpp (clone_from): - - The check that is done before we go for an allocation needs to - include the CDR alignment. - - * ace/TMCast/Group.cpp: - - Use standard macros like ACE_SYNCH_MUTEX that can compile in - single-threaded and multi-threaded builds. Thanks to Duane - Binder for providing the patches. - -Fri Feb 13 10:50:31 2004 Steve Huston - - * examples/APG/Timers/Task.cpp: In main(), interval should be - initialized with 100000 usecs, not 1000, to be .1 sec as the - comment indicates. Thanks to Norm Whitehead - for reporting this. - - * THANKS: Added Norm Whitehead to the Hall of Fame. - -Thu Feb 12 10:40:40 2004 Balachandran Natarajan - - * docs/ACE-categories.html: - - Fixed the url location. But the file names will not work since - we have broken the name generation in doxygen. We will fix that - next. - -Thu Feb 12 09:34:37 2004 Chad Elliott - - * bin/depgen.pl: - - Added the ACE_PLATFORM_CONFIG environment variable to the - replacement list. I'm not sure why this is desirable, but g++dep - does it so now depgen.pl does it. - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/GNUDependencyWriter.pm: - * bin/DependencyGenerator/GNUObjectGenerator.pm: - * bin/DependencyGenerator/NMakeObjectGenerator.pm: - * bin/DependencyGenerator/ObjectGenerator.pm: - * bin/DependencyGenerator/Preprocessor.pm: - - Made many optimizations to compensate for the additional - replacement variable. - - * bin/MakeProjectCreator/config/fault_tolerance.mpb: - - The fault_tolerance base project needs the ftorb base project. - -Wed Feb 11 16:25:11 2004 Steve Huston - - * ace/INET_Addr.cpp (get_host_addr): On Windows for IPv6, don't try - to call ACE_OS::inet_ntop() - it's not supported. The rough - equivalent is getnameinfo(). Rather than add this at the ACE_OS - layer after BFO (getnameinfo() may have been replaced by newer - APIs in other OSes) add the getnameinfo() call in here. - This fixes the crash in INET_Addr_Test on Windows w/ IPv6. - -Wed Feb 11 13:14:39 2004 Steve Huston - - * tests/INET_Addr_Test_IPV6.cpp: Cast INADDR_ANY to ACE_UINT32 to - disambiguate it from a 0 char*. Fixes compile error on Windows. - -Wed Feb 11 15:39:29 GMT 2004 Paul Morrison - - * examples/APG/Signals/SigAction.cpp - - Added a reinterpret_cast to fix a build error with LynxOS. - -Wed Feb 11 15:31:06 GMT 2004 Paul Morrison - - * TAO/orbsvcs/Logging_Service/Basic_Logging_Service/Makefile - * TAO/orbsvcs/Logging_Service/Event_Logging_Service/Makefile - * TAO/orbsvcs/Logging_Service/Notify_Logging_Service/Makefile - * TAO/orbsvcs/examples/Log/RTEvent/Makefile - - Added -lTAO_Svc_Utils to LDLIBS line to remove link errors with - LynxOS build. - -Wed Feb 11 07:36:16 2004 Chad Elliott - - * bin/MakeProjectCreator/config/default.rel: - * bin/MakeProjectCreator/modules/Driver.pm: - - Added the ability to use wildcards in the default.rel file. For - example, *_ROOT is now used to pick up all environment variables - that end in _ROOT. - -Tue Feb 10 13:32:51 2004 Steve Huston - - * examples/APG/Proactor/HA_Proactive_Status.cpp: Add ACE_TEXT - around string literal and make the "need async I/O" message - more explicit. - -Tue Feb 10 11:27:59 2004 Chad Elliott - - * bin/MakeProjectCreator/config/bison.mpb: - * bin/MakeProjectCreator/config/flex.mpb: - * bin/MakeProjectCreator/config/lex.mpb: - - Added base projects with custom definitions for bison, flex and - lex. Currently, yacc can't be supported since the output file - can't be explicitly specified. - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added the line number to an informational message. - - * bin/MakeProjectCreator/templates/make.mpd: - - Fixed this template to allow source files to exist within - sub-directories, but have the object files go in the build - directory. - -Tue Feb 10 15:51:50 UTC 2004 Craig Rodrigues - - * include/makeinclude/platform_linux.GNU: - Even if the user overrides PLATFORM_SCTP_CPPFLAGS in - platform_macros.GNU, either ACE_HAS_OPENSS7_SCTP or - ACE_HAS_LKSCTP *must* be added to PLATFORM_SCTP_CPPFLAGS, otherwise - wrong code will get compiled. Also, for sctp=lksctp, do - not hardcode PLATFORM_SCTP_LIBS to /usr/local/lib/libsctp.a. -` Instead set PLATFORM_SCTP_LDFLAGS to -L/usr/local/lib - and set PLATFORM_SCTP_LIBS to -lsctp. - -Tue Feb 10 08:45:10 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Fixed a bug in the template where no binary targets would be built - if there are no libraries linked in. - -Tue Feb 10 07:29:55 2004 Balachandran Natarajan - - * ace/OS_NS_wchar.h: - - #included ace/os_include/os_errno.h. Needed for builds where - ACE_HAS_SIGNAL_SAFE_OS_CALLS is defined. Thanks to Kobi - Cohen-Arazi for the patch. - -Mon Feb 9 18:21:41 2004 Steve Huston - - * examples/APG/Naming/Name_Binding.h: The Name_Binding destructor - should use ACE_OS::free(), not delete[], to release type_. It - was allocated using ACE_OS::strdup(). - -Mon Feb 9 16:10:07 2004 Douglas C. Schmidt - - * ace/Memory_Pool.cpp: ACE_Shared_Memory_Pool::commit_backing_store_name() - and ACE_Shared_Memory_Pool::handle_signal() ACE_ERROR_RETURN - macros were returning the wrong value (0 instead of -1). Thanks - to Kobi Cohen-Arazi for reporting - this problem. - -Mon Feb 9 13:58:30 2004 Chad Elliott - - * bin/DependencyGenerator/GNUObjectGenerator.pm: - - Fixed a bug where cpp files in subdirectories would have the wrong - target name generated in the dependencies. - - * bin/DependencyGenerator/Preprocessor.pm: - - Removed an unnecessary directory in the include search path. - -Mon Feb 9 10:31:40 2004 Chad Elliott - - * bin/DependencyGenerator/Preprocessor.pm: - - If the file for which dependencies are being generated contains a - directory name, then we need to look for include files in that - directory. - -Mon Feb 9 07:00:05 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bmake.mpd: - - Added the custom generated files to the realclean target. - -Sun Feb 8 15:36:30 2004 Douglas C. Schmidt - - * THANKS: Just added the 1,800th contributor to the THANKS file!! - -Sun Feb 8 15:34:11 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Also generate a realclean target for the IDL files so that IDL - generated files are removed when running a realclean. - -Sun Feb 8 14:25:43 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/cbx.mpd: - Added first version support of using the Cygwin compiler within - the CBuilderX Development Environment - -Sun Feb 8 14:02:53 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/cbx.mpd: - Added MinGW support for in the CBuilderX IDE - -Sun Feb 8 13:06:13 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/cbx.mpd: - Improved the CBuilderX template. Don't compile template files and - disabled some warnings. - -Sat Feb 7 19:33:56 2004 Douglas C. Schmidt - - * examples/RMCast/Send_File/Sender.cpp (ACE_TMAIN): - Fixed a typo in the comments. Thanks to Olli Savia - for the patch. - -Fri Feb 6 15:49:37 2004 Jeff Parsons - - * bin/MakeProjectCreator/config/ciao_client.mpb: - * bin/MakeProjectCreator/config/ciao_servant.mpb: - - Added TAO_ROOT/tao and CIAO_ROOT/ciao to the include - paths (C++ and (C)IDL). These additions allow users - to include or without - being concerned about the specific directory they - reside in. - -Fri Feb 6 14:53:27 2004 Tao Lu - - * bin/MakeProjectCreator/config/global.features: - - Added a new feature cidl into the global features. - This feature is turned off by default, so no makefiles - or project files will be gnerated for CCF and CIDLC. - -Fri Feb 6 14:13:25 2004 Douglas C. Schmidt - - * ace/Time_Value.inl (msec): Changed the return type of - ACE_Time_Value::msec() from long to unsigned long to prevent - problems with wrap-arounds that yield negative numbers. Thanks - to Matthew Gillen for this fix. - -Fri Feb 6 11:50:36 2004 Balachandran Natarajan - - * ace/INET_Addr.cpp: - - Fixes a problem that this change "Thu Jan 15 08:02:23 2004 - Douglas C. Schmidt " opened up and which - Craig Rodrigues reported. This problem has been lying around for - almost an year now. In the static method - get_port_number_from_name (), if we get a portnumber 0 - (perfectly valid to send a 0) we missed to check for port - 0. This has now been fixed. Thanks to Craig for reporting this. - -Fri Feb 6 09:48:01 2004 Balachandran Natarajan - - * include/makeinclude/platform_sunos5_sunc++.GNU (CPPFLAGS): - * include/makeinclude/platform_sunos5_g++.GNU (CPPFLAGS): - - Reverted the change "Fri Feb 6 09:31:30 2004 Balachandran - Natarajan " since it creates more - problems. - - * ace/config-sunos5.5.h: - - Added ACE_LACKS_SWAB. This is a lie. There are signatures - mismatch and adding compile time options that get the right - signatures messes things up a lot. Someone needs to take a look - at it fix the compile time options properly. - -Fri Feb 6 09:35:13 2004 Chad Elliott - - * bin/MakeProjectCreator/config/rteventlogadmin.mpb: - - Changed to inherit from dslogadmin and rtoldevent instead of - dseventlogadmin. - -Fri Feb 6 09:31:30 2004 Balachandran Natarajan - - * include/makeinclude/platform_sunos5_sunc++.GNU (CPPFLAGS): - * include/makeinclude/platform_sunos5_g++.GNU (CPPFLAGS): - - Added -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 to - CPPFLAGS. This should fix the compile errors in Solaris builds. - -Fri Feb 6 09:04:50 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Added support for dynamicflags, staticflags and rc files. - - * bin/MakeProjectCreator/templates/makedll.mpt: - - Added the _REENTRANT macro to the extracppflags for many of the - platforms. - -Fri Feb 6 06:35:32 2004 Chad Elliott - - * bin/MakeProjectCreator/USAGE: - - Updated the usage to reflect the new Cbx workspace type. - - * bin/MakeProjectCreator/modules/CbxWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/MWC.pm: - - Added the workspace counterpart to the CbxProjectCreator. Thanks - to Johnny Willemsen for providing me an example workspace. - -Fri Feb 6 11:48:13 UTC 2004 Johnny Willemsen - - * include/makeinclude/rules.local.GNU: - Fixed typo in this file which caused build problems when .rc are - used (Cygwin and MinGW do this). - -Thu Feb 5 13:38:15 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bmake.mpd: - - Added rules for all of the MPC supported C++ file extensions. - -Thu Feb 5 11:25:50 2004 Boris Kolpackov - - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.local.GNU: - - Modified build rules to allow projects with sources in sub- - directoris. Thanks to Don Hinton - for his help. - -Thu Feb 5 08:48:27 2004 Douglas C. Schmidt - - * ace/Thread_Manager.{h,cpp}: added a new methods called - testterminate() which checks to see whether a thread has - terminated or not. Thanks to Avi Ouziel - for this suggestion. - -Thu Feb 5 07:55:10 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - - Fixed a bug where Borland projects generated on UNIX would not - reflect the correct cppdir value. - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - - Sort the projects names so projects are easier to find in large - lists. - - * bin/MakeProjectCreator/modules/Driver.pm: - - Fixed a bug in the usage output. - - * bin/MakeProjectCreator/modules/Version.pm: - - Updated the MPC version number. - - * bin/MakeProjectCreator/USAGE: - - Updated the usage to reflect the new alternative Borland Make - project type. - - * bin/MakeProjectCreator/modules/MPC.pm: - * bin/MakeProjectCreator/modules/MWC.pm: - * bin/MakeProjectCreator/modules/BMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/BMakeProjectCreator.pm: - * bin/MakeProjectCreator/templates/bmake.mpd: - * bin/MakeProjectCreator/templates/bmakecommon.mpt: - * bin/MakeProjectCreator/templates/bmakedll.mpt: - * bin/MakeProjectCreator/templates/bmakedllexe.mpt: - * bin/MakeProjectCreator/templates/bmakelib.mpt: - * bin/MakeProjectCreator/templates/bmakelibexe.mpt: - - Added a new alternative Borland Make project type called bmake. - It does not rely on any of the .bor files in - ACE_wrappers/include/makeinclude. - -Wed Feb 4 21:55:38 UTC 2004 Don Hinton - - * ace/config-lynxos.h: - * ace/os_include/os_stdlib.h: - * ace/os_include/os_unistd.h: - Moved the prototypes for getopt() and putenv() out of - config-lynxos.h and into the appropriate os_include header. - Added prototype of swab() to os_unistd.h. Thanks to Olli Savia - for the patch. - -Wed Feb 4 14:21:46 2004 Jeff Parsons - - * bin/MakeProjectCreator/config/ciao_client.mpb: - * bin/MakeProjectCreator/config/ciao_servant.mpb: - * bin/MakeProjectCreator/config/orbsvcsexe.mpb: - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - * bin/MakeProjectCreator/config/taodefaults.mpb: - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - * bin/MakeProjectCreator/config/valuetype.mpb: - - Removed all path includes except TAO_ROOT and CIAO_ROOT, - for IDL, CIDL and C++ compilers. - -Wed Feb 4 18:15:16 UTC 2004 Craig Rodrigues - - * include/makeinclude/platform_linux.GNU: Allow - user to override SCTP flags in platform_macros.GNU - before including platform_linux.GNU. - -Wed Feb 4 17:41:25 UTC 2004 Craig Rodrigues - - * include/makeinclude/platform_freebsd.GNU: - Change thread flags to reflect new changes in FreeBSD. - KSE-based -lpthread is now the default library in - FreeBSD-CURRENT. - -Tue Feb 3 16:21:49 2004 Steve Huston - - * m4/compiler.m4: If --disable-rtti is specified on AIX, add - -DACE_LACKS_RTTI to CXXFLAGS. - - * netsvcs/clients/Naming/Client/Makefile.am: - * netsvcs/clients/Naming/Dump_Restore/Makefile.am: Removed the - extraneous path prefix for the required same-directory libraries in - main_LDADD to allow the Makefile to see the library and build it - first at make time. - -Tue Feb 3 14:35:53 2004 Balachandran Natarajan - - * ace/config-win32-msvc-6.h: - * ace/config-win32-common.h: - - Moved the definition of ACE_HAS_NONCONST_SWAB from VC6 to - win32-common.h. Thanks to Andrew G. Harvey - for the suggestion. - -Tue Feb 3 11:36:41 2004 Steve Huston - - * examples/APG/Reactor/Client.cpp: - * examples/APG/ThreadSafety/TSS.cpp: Add template instantiations needed - to correct LynxOS build. Thanks to Olli Savia for - these fixes. - -Tue Feb 3 07:37:20 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Added a missing foreach for the configurations. It's necessary in - order to access the platforms. - -Mon Feb 2 13:53:08 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/OutputMessage.pm: - - Added an interface for printing informational, warning and error - messages. This allows messages to be manipulated prior to being - printed. Informational messages are off by default and can be - enabled by setting the MPC_INFORMATION environment variable. The - informational and warning messages can be turned off by setting the - MPC_SILENT environment variable. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/Driver.pm: - * bin/MakeProjectCreator/modules/FeatureParser.pm: - * bin/MakeProjectCreator/modules/Parser.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/StringProcessor.pm: - * bin/MakeProjectCreator/modules/TemplateInputReader.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Use the OutputMessage interface instead of print for messages. - -Mon Feb 2 13:48:23 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bor.mpd: - - Move the location of the custom build rules to ensure that they - are added to the all target before the object files. This ensures - that the custom build rules are processed before source files are - compiled. - -Mon Feb 02 10:00:29 2004 Balachandran Natarajan - - * ace/config-win32-msvc-6.h: - - Looks like VC6 has a non-const swab. - - * ace/OS_NS_unistd.inl: - - Fixed the non-const part of the swab () to compile with vc6. - -Mon Feb 2 08:18:41 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/CbxProjectCreator.pm: - - Removed an unused implementation of the fill_value() method. - -Mon Feb 2 07:41:25 2004 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/va4icc.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Removed the ssl and defaultlibs keyword. These were unncessary - and should have been removed long ago. - -Mon Feb 2 07:16:42 2004 Balachandran Natarajan - - * ace/OS_NS_unistd.h: - * ace/OS_NS_unistd.inl: - - Changed the parameters to void * instead of char * since most of - the platforms take a void *. - -Mon Feb 2 06:56:32 2004 Balachandran Natarajan - - * ace/Makefile.ace: - - Building applications which use ACE library fail because - LynxOS's linker is unable to find dlopen() which is used in - DLL_Manager.o and implemented in OS_NS_dlfcn.o. - - To fix this, OS_NS_dlfcn.o must be placed after DLL_Manager.o - when creating libACE.a with ar. Thanks to Olli Savia for the - patch. - -Sun Feb 1 19:09:54 UTC 2004 Johnny Willemsen - - * ace/config-borland-common.h: - * ace/config-win32-borland.h: - Kylix doesn't have swab, CBuilder has a non-const swab, CBuilderX - has the normal swab - -Sun Feb 1 17:06:13 UTC 2004 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - * ace/README: - Some platforms have a swab function where the first argument is - non const, added ACE_HAS_NONCONST_SWAB which then must be set. - - * ace/config-win32-borland.h: - Added ACE_HAS_NONCONST_SWAB - -Sun Feb 1 15:15:44 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_linux.GNU: - Added missing libraries that are needed when linking with fltk - support. - -Sun Feb 1 12:36:13 UTC 2004 Johnny Willemsen - - * include/makeinclude/build_lib.bor: - Added support for using the CBX ar with the -M commandline option - to pass it a script. This fixes the too long commandline. - -Sat Jan 31 11:01:33 2004 Balachandran Natarajan - - * ace/OS_NS_unistd.h: - * ace/OS_NS_unistd.inl: - - Thanks to Olli Savia, we now have a ACE_OS::swab (). This calls - the platform specific swab () function. There is a emulation - which could be used on platforms that don't support ::swab - (). The emulation can be used by defining ACE_LACKS_SWAB. - - I haven't added ACE_LACKS_SWAB in any config file. We will do it - as and when things showup in our daily builds. - -Sat Jan 31 08:52:13 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/smart_proxies.mpb: - Removed requires smart_proxies, there is no need for this and - only prevents the smart_proxies tests from compiling - -Fri Jan 30 19:33:49 UTC 2004 Craig Rodrigues - - * include/makeinclude/platform_linux.GNU: Allow user to override - OCFLAGS in platform_macros.GNU file. - -Fri Jan 30 10:30:26 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bor.mpd: - - Force the custom build targets to be processed before compiling - any of the cpp files. - -Fri Jan 30 09:02:30 2004 Douglas C. Schmidt - - * ace/Proactor.cpp (proactor_run_event_loop): Make sure to - return if the handle_events() call return 0, which indicates - a timeout. Thanks to Daniel Buchs for - this fix. - -Fri Jan 30 07:41:20 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/MPC.pm: - * bin/MakeProjectCreator/modules/MWC.pm: - * bin/mpc.pl: - * bin/mwc.pl: - - Pulled the creator lists out of the perl scripts and moved them - into the new MPC and MWC modules. This will allow the extension - of MPC by providing a way to hook new workspace and project types - into MPC without adding anything to the MPC repository. - -Thu Jan 29 14:10:51 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - - Clean up some double quoted strings. - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - - Changed the workspace output to allow a user to make a specific - target within the workspace. If the user specified target - requires other projects, then those projects are built also. For - example, a user could execute "nmake CosNaming" using the Makefile - generated from the TAOACE.mwc file and the CosNaming library - would be built including everything else that was required to - build that library. - -Thu Jan 29 14:04:50 2004 Balachandran Natarajan - - * ace/Asynch_Connector.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Local_Tokens.cpp: - * ace/MEM_Acceptor.cpp: - * ace/MEM_Connector.cpp: - * ace/Multihomed_INET_Addr.cpp: - * ace/Process_Manager.cpp: - * ace/Remote_Tokens.cpp: - * ace/Service_Config.cpp: - * ace/Service_Manager.cpp: - * ace/Sock_Connect.cpp: - * ace/Timeprobe_T.cpp: - * ace/Token.cpp: - * ace/Token_Invariants.cpp: - * ace/CLASSIX/CLASSIX_Select_Reactor.cpp: - - Thanks to Duane Binder for providing - patches to fix some of the messages printed out using - ACE_Log_Msg. - -Thu Jan 29 14:03:42 2004 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/config/amh.mpb: - * bin/MakeProjectCreator/config/ciao_client.mpb: - * bin/MakeProjectCreator/config/smart_proxies.mpb: - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - * bin/MakeProjectCreator/config/valuetype.mpb: - * bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - * bin/MakeProjectCreator/modules/TemplateParser.pm: - * bin/MakeProjectCreator/templates/automake.mpd: - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/bordll.mpt: - * bin/MakeProjectCreator/templates/borexe.mpt: - * bin/MakeProjectCreator/templates/cbx.mpd: - * bin/MakeProjectCreator/templates/cbxdll.mpt: - * bin/MakeProjectCreator/templates/cbxexe.mpt: - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/em3vcpdll.mpt: - * bin/MakeProjectCreator/templates/em3vcpdllexe.mpt: - * bin/MakeProjectCreator/templates/em3vcplib.mpt: - * bin/MakeProjectCreator/templates/em3vcplibexe.mpt: - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/gnudll.mpt: - * bin/MakeProjectCreator/templates/gnuexe.mpt: - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - * bin/MakeProjectCreator/templates/nmake.mpd: - * bin/MakeProjectCreator/templates/nmakedll.mpt: - * bin/MakeProjectCreator/templates/nmakeexe.mpt: - * bin/MakeProjectCreator/templates/va4iccdll.mpt: - * bin/MakeProjectCreator/templates/va4iccdllexe.mpt: - * bin/MakeProjectCreator/templates/va4icclib.mpt: - * bin/MakeProjectCreator/templates/va4icclibexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc6dspdll.mpt: - * bin/MakeProjectCreator/templates/vc6dspdllexe.mpt: - * bin/MakeProjectCreator/templates/vc6dsplib.mpt: - * bin/MakeProjectCreator/templates/vc6dsplibexe.mpt: - * bin/MakeProjectCreator/templates/vc7.mpd: - * bin/MakeProjectCreator/templates/vc7dll.mpt: - * bin/MakeProjectCreator/templates/vc7exe.mpt: - * bin/MakeProjectCreator/templates/vc7lib.mpt: - * bin/MakeProjectCreator/templates/vc7libexe.mpt: - - Removed IDL_Files as a built-in build type and replaced it as a - custom build type. The syntax of IDL_Files has only changed in - that idlgendir is no longer a usable keyword. gendir should be - used in its place. Additionally, the custom build rules can not - be executed in parallel when using the GNUACE project type. This - does not stop multiple unrelated projects from being built in - parallel. In order to get the IDL custom build type, your project - must inherit, either directly or indirectly, from taoidldefaults. - The amh, ciao_client, taoexe and taolib_with_idl base projects all - inherit from taoidldefaults. Others get it indirectly. - - * bin/MakeProjectCreator/config/idl_compiler.mpt: - * bin/MakeProjectCreator/config/idl_compiler_win32.mpt: - - Removed these files. - -Thu Jan 29 13:32:17 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Remove the WARNING: from the informational message that a - workspace wasn't created because no projects were created. - -Thu Jan 29 10:10:26 2004 Boris Kolpackov - - * THANKS: - - Added Hans-Peter Bock . - -Wed Jan 28 13:21:00 2004 Chad Elliott - - * ace/ace.mpc: - - Only inherit from qt_reactor instead of qt_moc and qt_reactor. - - * ace/qt_reactor.mpb: - - Inherit from ace_qt and qt_moc. - - * bin/MakeProjectCreator/config/ace_qt.mpb: - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/qt.mpb: - - Inherit from the ace_qt base project as part of the reorganization - of qt and qt_moc. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Allow features to inherit from other base projects just as - projects do. - - * bin/MakeProjectCreator/config/qt-min.mpb: - * bin/MakeProjectCreator/config/qt-min_moc.mpb: - - Removed these files. - -Wed Jan 28 10:26:17 2004 Boris Kolpackov - - * ace/TMCast/README: - - Fixed a few typos. - -Wed Jan 28 09:17:36 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Added custom build output inference that takes gendir settings - into account. If a custom build file is listed, gendir is set and - the generated source isn't listed in the Source_Files list, then - the correct generated source files will be listed with the correct - path determined by gendir. - -Wed Jan 28 08:54:29 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Changed the output name from Makefile to GNUmakefile in accordance - with [BUGID 1726]. GNU Make will look for GNUmakefile before it - looks for Makefile. - -Wed Jan 28 08:20:59 2004 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/config/ciao_servant.mpb: - - Prefixed cidl with a dot in the inputexts assignment. - -Wed Jan 28 06:46:55 UTC 2004 Johnny Willemsen - - * ace/ACE.h: - * ace/config-cygwin32.h: - Moved os_math.h include from config-cygwin32.h to ACE.h. When - ACE_NTRACE is set we got include problems. Cygwin defines log2 - as macro and we have ACE::log2. The include of os_math.h is only - done for Cygwin. Thanks to Yi Zuo - for reporting this. - -Tue Jan 27 20:49:12 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added ETCL.dsp to the list of projects to build first in a static build. - -Mon Jan 26 17:12:38 2004 Steve Huston - - * ace/OS_NS_sys_stat.inl (filesize): Declare sb using ACE_stat instead - of struct stat to pick up whatever gets set up for that platform. - Fixes compile error on HP-UX aCC. - -Mon Jan 26 15:18:06 2004 Gautam Thaker - - * bin/count_lines (initfiletypes): - - Added .py for python and .php for php scripts. - -Mon Jan 26 15:47:55 2004 Steve Huston - - * examples/APG/Timers/PCB.cpp: Don't put needed things inside - ACE_ASSERT - they disappear when built with ACE_NDEBUG. - -Mon Jan 26 13:01:42 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - - Added support for cygwin32 and mingw32. - -Mon Jan 26 18:10:13 UTC 2004 Johnny Willemsen - - * include/makeinclude/build_lib.bor: - * include/makeinclude/compiler.bor: - Added support for the CBuilderX Preview ar. - -Mon Jan 26 16:14:32 UTC 2004 Johnny Willemsen - - * include/makeinclude/clean.bor: - Changed this file a little, special independent clean fules for cbx - and other versions and dependent on the version used the right clean - rule is used. - -Mon Jan 26 16:02:13 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - * include/makeinclude/build_lib.bor: - * include/makeinclude/clean.bor: - The CBuilderX Preview compiler uses the .o extension for object - files, all other Borland versions use .obj. Some time ago I - introduced $(OBJ_EXT) to handle this, but this was not complete - yet. Change the makefile instructure to handle $(OBJ_EXT) instead - of obj and changed the MPC Borland template to generate $(OBJ_EXT) - instead of obj. This way everything works as normally, but when - you use the new CBuilderX Preview environment you must regenerate - your makefiles using MPC. - -Mon Jan 26 09:35:51 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - When calling the prelink script, the object files should be in - double quotes. - -Mon Jan 26 07:19:13 2004 Chad Elliott - - * bin/MakeProjectCreator/config/ftrteventchannel.mpb: - * bin/MakeProjectCreator/config/utils.mpb: - - Added base projects for the TAO_FTRT_EventChannel and TAO_Utils - libraries. - -Sun Jan 25 18:05:31 2004 Steve Huston - - * examples/APG/Streams/RecordingDevice_Text.cpp: Fixed formatting - to fit in its spots in the book. - -Sun Jan 25 20:46:03 UTC 2004 Don Hinton - - * ace/Global_Macros.h: - * ace/config-lite.h: - * ace/config-all.h: - Moved the ACE_TRACE defines from Global_Macros.h to config-all. - and ACE_OS_TRACE from config-lite.h to config-all.h, and added - ACE_OS_NTRACE to config-all.h with the same symantics. Thanks - to Johnny Willemsen for motivating this - change. - - * examples/ASX/Event_Server/Event_Server/Options.cpp: - * examples/ASX/UPIPE_Event_Server/Options.cpp: - Added #include OS_NS_strings.h if ACE_HAS_TRACE is defined. - -Sun Jan 25 15:55:13 UTC 2004 Johnny Willemsen - - * ace/OS_NS_stdio.h: - Removed check for ACE_MT_SAFE for the win32 specific methods. - -Sun Jan 25 09:11:40 2004 Balachandran Natarajan - - * bin/msvc_mpc_auto_compile.pl: - - Some cosmetic fixes to get ACEXEML and Kokyu compiled well - before other things. The dsw's in TAO hierarchy do not have the - dsp's of ACE hierarchy included but for TAOACE.dsw. - -Sun Jan 25 08:59:40 2004 Balachandran Natarajan - - * Kokyu/Kokyu.mwc: - * ACEXML/ACEXML.mwc: - - Added new workspace files. The above pieces should be compilable - without going into TAO and using TAOACE.mwc. - -Sun Jan 25 12:26:19 UTC 2004 Johnny Willemsen - - * tests/Auto_IncDec_Test.cpp: - Extended debug info with the total number of threads. This then shows - that with Cygwin threads that exit are not removed from the - thread manager - -Sun Jan 25 11:34:31 UTC 2004 Johnny Willemsen - - * tests/Tests.bor: - Added SOCK_Test_IPv6 - -Sun Jan 25 11:26:43 UTC 2004 Johnny Willemsen - - * ace/config-borland-common.h: - CBuilderX Preview doesn't support multithreaded builds, so removed - fix for _endthreadex - -Sun Jan 25 10:49:13 UTC 2004 Johnny Willemsen - - * bin/msvc_static_compile.pl: - Cleaned up some old stuff - -Sat Jan 24 16:11:43 UTC 2004 Johnny Willemsen - - * ace/OS_NS_stdlib.inl: - With CBuilderX Preview putenv, wcstod, wcstol and wcstoul are in the - std namespace, so added ACE_STD_NAMESPACE which expands to std with - Borland, to nothing with other compilers. - - * ace/OS_NS_stdio.inl: - The vswprintf for Dinkum STL is different. CBuilderX Preview has - std::tempnam, so added checking for borland version. - - * ace/OS_NS_stdio.cpp: - vswprintf and vsnprintf are different with CBuilderX Preview - - * ace/config-win32-borland.h: - CBuilderX Preview has no itoa - -Sat Jan 24 15:29:11 UTC 2004 Johnny Willemsen - - * ace/config-win32-borland.h: - CBuilderX Preview doesn't have wcsdup - -Fri Jan 23 14:04:31 2004 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Changed the defaulting rules for implicitly adding source files - when IDL_Files (or any other custom type) is specified. - Previously, generated source files would only be added to the - Source_Files section only if IDL_Files was not specified and no - generated source files were already listed in Source_Files. Now, - the generated source files will be added whether or not IDL_Files - is specified and no generated source files were already listed in - Source_Files. - -Fri Jan 23 19:09:43 UTC 2004 Johnny Willemsen - - * ace/OS_NS_string.cpp: - With CBuilderX Preview strdup is in the std namespace, so - added ACE_STD_NAMESPACE which expands to std with Borland, - to nothing with other compilers. - -Fri Jan 23 10:04:00 2004 Gary Maxey - - Fix for BUGID 1722, for Tandem NSK platform. - * ace/OS_NS_stdlib.inl: - - Need to use spt_system() instead of system(). - - * ace/OS_NS_sys_wait.inl: - - Need to use spt_waitpid() instead of waitpid() - -Fri Jan 23 09:49:00 2004 Gary Maxey - - * ace/OS_NS_Thread.inl: - - Fix for BUGID 1708 - - Added #elif in ACE_OS::sigwait to use alternate sigwait() when - compiling for Tandem NSK platform. - -Fri Jan 23 09:34:00 2004 Gary Maxey - - * ace/OS_NS_unistd.inl: - - Fix for BUGID 1709 - - Added #ifdef to use alternate select() when compiling for Tandem - NSK platform. - -Fri Jan 23 10:30:12 2004 Chad Elliott - - * bin/create_ace_build.pl: - - Exclude .exp files and ensure that we can stat() the real file - before checking the modification time in - backup_and_copy_changed(). - -Fri Jan 23 09:41:11 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/vc7.mpd: - - Reverted my change from Tue Jan 20 14:11:48 2004. While the - generated vcproj loads properly, the project does not link - properly. - -Fri Jan 23 15:04:11 UTC 2004 Johnny Willemsen - - * ace/config-win32-borland.h: - Fixed ACE_WCSDUP_EQUIVALENT for CBuilderX Preview - -Fri Jan 23 07:20:02 2004 Chad Elliott - - * bin/MakeProjectCreator/config/global.features: - - Changed wxwindows to wxWindows to match the changes put in by - Scott Harris. - -Fri Jan 23 13:06:56 UTC 2004 Johnny Willemsen - - * ace/config-tru64.h: - Define ACE_LACKS_STDINT_H when DIGITAL_UNIX is greater than - 0x40E instead of 0x510. Thanks to Daniel Miranda - for reporting this. - -Fri Jan 23 11:05:13 UTC 2004 Johnny Willemsen - - * ace/config-win32-borland.h: - Added ACE_HAS_3_PARAM_WCSTOK for the new CBuilderX Preview - compiler - -Fri Jan 23 10:47:54 UTC 2004 Johnny Willemsen - - * ace/config-win32-borland.h: - Another set of changes for CBuilderX. strcasecmp and strncasecmp - should come from the std namespace - -Fri Jan 23 10:04:11 UTC 2004 Johnny Willemsen - - * ace/config-win32-borland.h: - ACE_STRCASECMP_EQUIVALENT and ACE_STRNCASECMP_EQUIVALENT are not - needed anymore for the CBuilderX Preview compiler - -Fri Jan 23 09:42:15 UTC 2004 Johnny Willemsen - - * ace/OS_NS_time.inl: - Dinkum STL doesn't have tzset. Fixes another compile problem with - the new Borland CBuilderX Preview compiler - -Fri Jan 23 09:36:11 UTC 2004 Johnny Willemsen - - * ace/Object_Manager.cpp: - CBuilderX Preview defines _MSC_VER and __BORLANDC__ so only use - _CrtSetReportMode when _MSC_VER is defined and not __BORLANDC__. - Borland isn't making thing easier to maintain. - -Fri Jan 23 09:30:45 UTC 2004 Johnny Willemsen - - * ace/config-borland-common.h: - CBuilderX Preview has _endthreadex in the std namespace - -Fri Jan 23 09:23:11 UTC 2004 Johnny Willemsen - - * ace/config-win32-borland.h: - CBuilderX seems to lack win32 structural exceptions - -Fri Jan 23 08:41:53 UTC 2004 Johnny Willemsen - - * ace/os_include/os_time.h: - Dinkum STL doesn't have timezone or _timezone so only try to use - timezone when we don't have Dinkum STL. - -Fri Jan 23 07:38:13 UTC 2004 Johnny Willemsen - - * ace/README: - * ace/OS_NS_time.h: - Added ace_timezone implementation for use with Dinkum STL, which - lacks _timezone. For this added ACE_HAS_DINKUM_STL which can be - set when using the Dinkum STL version. - - * ace/config-win32-borland.h: - The new CBuilderX preview compiler uses Dinkum STL, so se then - ACE_HAS_DINKUM_STL - -Thu Jan 22 19:57:59 2004 Ossama Othman - - * ace/Makefile.am (install-data-local): - - Fixed problem that occurred when performing a "make install". - The "os_include" source and installation directories were not - properly referenced. - -Thu Jan 22 18:11:00 2004 Gary Maxey - - * ace/os_include/os_pthread.h - - Fix for BUGID 1707 - - Added #ifdef so correct pthreads include file is used when - compiling for Tandem NSK platform. - -Thu Jan 22 17:48:56 2004 Gary Maxey - - * ace/config-tandem-nsk-mips-v2.h - - Added missing #endif to end of file - -Thu Jan 22 19:08:56 2004 Balachandran Natarajan - - * ace/OS_NS_sys_stat.inl (mkdir): - - ACE_OS::mkdir for OS PSOS wrote one character behind allocated - memory. Fixed it by adding an extra byte for allocation. Thanks - to Dieter Knueppel for reporting the - problem and suggesting a fix. - -Thu Jan 22 19:00:50 2004 Balachandran Natarajan - - * ace/os_include/os_signal.h: - - This patch fixes redeclaration of pthread_sigmask - function which showe up RH 9 systems with glibc - 2.3. pthread_sigmask declaration is now protected by a guard - which will be defined in the platform configuration file. Thanks - to Olli Savia for providing the patch. - - * ace/config-linux-common.h: - - A fix similar to this fix "Wed Jan 21 13:38:11 UTC 2004 Johnny - Willemsen ", but added - ACE_HAS_PTHREAD_SIGMASK_PROTO within the block for glib 2.3. - -Thu Jan 22 19:02:31 2004 Steve Huston - - * examples/APG/ThreadPools/Task_ThreadPool.cpp: Use 0, not NULL, to - initialize a pointer. - -Thu Jan 22 18:08:31 2004 Steve Huston - - * examples/APG/ThreadPools/ThreadPool.cpp: Don't ACE_ASSERT action - that needs to be performed regardless of the ACE_NDEBUG setting. - -Thu Jan 22 13:25:49 2004 Chad Elliott - - * ace/config-sunos5.5.h: - * ace/config-sunos5.7.h: - - Define ACE_LACKS_GETLOADAVG in config-sunos5.5.h since SunOS 5.5 - and 5.6 do not have getloadavg(). Undefine it in - config-sunos5.7.h, since it has it. - -Wed Jan 22 10:33:47 2004 Scott Harris - - * bin/MakeProjectCreator/config/wxwindows.mpb - * include/makeinclude/platform_linux.GNU - * include/makeinclude/platform_linux_borland.GNU - * include/makeinclude/platform_linux_icc.GNU: - Fixed wxwindows base project in support - of $TAO_ROOT/util/wxNamingViewer. - wxwindows project now require wxWindows defined - (in plaform_macros.GNU) as was since 12/1/00 - instead of wxwindows. I choose historical precidence - over making the macro and project name both - being all lower case. - - Note: The wxNamingViewer Makefile was overriding the - PLATFORM_WX_* macros defined in platform_*.GNU so I updated the - macros in platform_*.GNU to be like the overrides in the Makefile. - These macros are based on the wxWindows configuration. - The wxNamingViewer makefile contains the only use of these - macros. - - Only tested on RedHat 9 with wx_gtk 2.4.2. - - Note - the platform_*.GNU files definition of PLATFORM_WX_* - only support wxWindows over GTK+. - TBD - support wxWindows MSVC and Borland in wxwindows.mpc. - - -Thu Jan 22 12:19:42 2004 Chad Elliott - - * ace/ace.mpc: - * ace/codecs.mpb: - * ace/filecache.mpb: - * ace/other.mpb: - * ace/svcconf.mpb: - * ace/token.mpb: - * ace/uuid.mpb: - - Split some of the components into features that are enabled by - default. The use of comps and compname are no longer supported. - - * bin/MakeProjectCreator/README: - - Removed descriptions of comps and compname. They have been - replaced by features specific to the gnuace type. - - * bin/MakeProjectCreator/config/avstreams.mpb: - * bin/MakeProjectCreator/config/concurrency.mpb: - * bin/MakeProjectCreator/config/event.mpb: - * bin/MakeProjectCreator/config/ftclientorb.mpb: - * bin/MakeProjectCreator/config/ftorbutils.mpb: - * bin/MakeProjectCreator/config/ftrtevent.mpb: - * bin/MakeProjectCreator/config/ftrteventclient.mpb: - * bin/MakeProjectCreator/config/ftserverorb.mpb: - * bin/MakeProjectCreator/config/ifrservice.mpb: - * bin/MakeProjectCreator/config/lifecycle.mpb: - * bin/MakeProjectCreator/config/loadbalancing.mpb: - * bin/MakeProjectCreator/config/naming.mpb: - * bin/MakeProjectCreator/config/notification.mpb: - * bin/MakeProjectCreator/config/orbsvcsexe.mpb: - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - * bin/MakeProjectCreator/config/portablegroup.mpb: - * bin/MakeProjectCreator/config/property.mpb: - * bin/MakeProjectCreator/config/rtcorbaevent.mpb: - * bin/MakeProjectCreator/config/rtcosscheduling.mpb: - * bin/MakeProjectCreator/config/rtevent.mpb: - * bin/MakeProjectCreator/config/rtoldevent.mpb: - * bin/MakeProjectCreator/config/rtsched.mpb: - * bin/MakeProjectCreator/config/rtschedevent.mpb: - * bin/MakeProjectCreator/config/security.mpb: - * bin/MakeProjectCreator/config/ssliop.mpb: - * bin/MakeProjectCreator/config/time.mpb: - * bin/MakeProjectCreator/config/trading.mpb: - - Removed the use of comps and compname. - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Removed code specific to comps and compname. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Removed comps and compname related code and replaced it with a - more generic mechanism. - - * include/makeinclude/wrapper_macros.GNU: - - Set some ace related features to 1 by default. - - * tests/tests.mpc: - - Use feature requirement instead of comps. - -Thu Jan 22 17:23:01 UTC 2004 Johnny Willemsen - - * examples/APG/Config/HASTATUS_export.h: - Added check for ACE_AS_STATIC_LIBS for setting the export flags for - proper building of static libraries. - -Thu Jan 22 17:16:13 UTC 2004 Johnny Willemsen - - * apps/JAWS/server/server.mpc: - Added missing cpp extension to main - -Thu Jan 22 09:47:04 2004 Chad Elliott - - * tests/RMCast/acetest.mpb: - - Reverted some previous changes that were required due to bugs in - MPC that have since been fixed. - -Thu Jan 22 06:47:48 2004 Balachandran Natarajan - - * ace/Strategies_T.cpp: - - Fix for BUGID 1719. Please see - - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1719 - - for details. - -Wed Jan 21 22:31:37 2004 Ossama Othman - - * tests/SSL/Makefile.am (EXTRA_DIST): - - Force test PEM files to be included in distribution. Another - problem revealed by "make distcheck". - -Wed Jan 21 22:06:34 2004 Ossama Othman - - * configure.ac (AC_CONFIG_FILES): - - Added missing `netsvcs' Makefiles to the files generated by the - configure script. - - * Makefile.am (SUBDIRS): - - Added "netsvcs" directory to the list of subdirectories to - recurse. - - * netsvcs/Makefile.am: - - Reverted a series of changes that somehow left this file in an - inconsistent state in our CVS repository, and unparsable by - Automake. In particular, it incorrectly contained - Borland-specific Makefile code. - - Updated to our latest Makefile.am conventions. - - * netsvcs/clients/Makefile.am: - * netsvcs/clients/Logger/Makefile.am: - * netsvcs/clients/Naming/Client/Makefile.am: - * netsvcs/clients/Naming/Dump_Restore/Makefile.am: - * netsvcs/clients/Tokens/Makefile.am: - * netsvcs/clients/Tokens/collection/Makefile.am: - * netsvcs/clients/Tokens/deadlock/Makefile.am: - * netsvcs/clients/Tokens/invariant/Makefile.am: - * netsvcs/clients/Tokens/manual/Makefile.am: - * netsvcs/clients/Tokens/mutex/Makefile.am: - * netsvcs/clients/Tokens/rw_lock/Makefile.am: - * netsvcs/lib/Makefile.am: - * netsvcs/servers/Makefile.am: - - Updated to our latest Makefile.am conventions. - - * tests/Makefile.am: - - Added more missing header files to appropriate source file - lists. Missing files were made evident when running a "make - distcheck". - -Wed Jan 21 20:12:38 2004 Ossama Othman - - * configure.ac (ACE_CONFIG_COMMANDS): - - Include ACE version in configuration completion message to - improve clarity. - -Wed Jan 21 20:17:34 2004 Douglas C. Schmidt - - * ace/Message_Queue.i: Fixed ACE_Message_Queue_NT::is_empty() - so that it returns the right result. Thanks to Ariel Peltz - for contributing this fix. - -Wed Jan 21 13:28:41 2004 Ossama Othman - - * configure.ac: - - Do not rely on "ace/OS.cpp" when performing test that determines - if the generated configuration is usable. "ace/OS.cpp" has been - superseded by and split off into several other files. Addresses - bogus ACE usability configure script errors when running a "make - distcheck". - - * ace/Makefile.am: - - Added missing "-version-number" libtool flag for all subset - libraries. Fixes problem where the library version for all - these libraries was "0.0.0". Thanks to Robert Schiele - for discovering the problem and for - providing a fix. - - (libACE_Utils_la_SOURCES): - - Added Template_Instantiations.cpp file to this source list. - Fixes a "missing file" problem revealed by a "distcheck". - - (HEADER_FILES, INLINE_FILES, TEMPLATE_FILES): - - Updated these source file lists. Addresses "missing file" - problems exhibited when performing a "make distcheck". - - * m4/acinclude.m4 (ACE_USE_TEMP_FILE): - - Fixed problem that prevented the "distcheck" target from passing - due to an attempt to write a file into a read-only directory. - - * tests/Makefile.am (Multihomed_INET_Addr_Test_SOURCES): - - Removed "Multihomed_INET_Addr_Test.h" from this source file - list. That file doesn't exist. Detected when performing a - "make distcheck". - - (libService_Config_DLL_la_SOURCES, libTest_Output_la_SOURCES): - - Added missing Service_Config_DLL_Export.h and - Test_Output_Export.h file to these test's source lists, - respectively. Addresses problem revealed by a "distcheck". - - (lib_LTLIBRARIES) - - Added missing Framework_Component_DLL library to the list of - libraries to build. - -Wed Jan 21 13:37:20 2004 Balachandran Natarajan - - * bin/msvc_mpc_auto_compile.pl: - - Added gperf to the list of workspaces that needs compilation - upfront as part of core. - -Wed Jan 21 13:38:11 UTC 2004 Johnny Willemsen - - * ace/config-linux-common.h: - - glibc version 2.3 defines the method isastream, so from this - glibc version don't do this anymore in the ACE library by - setting then the define ACE_HAS_ISASTREAM_PROTO. On RH9 defining - the isastream method within ACE caused errors because there this - method has an exception specification. This only appeared when - other libraries are used which include stropts.h themselves. - Also on SuSE 9 with glibc v2.3 I see that isastream has an - exception specification. This fixed [BUGID 1613]. Thanks to - Jeffrey Graham and Akim Boyko - for reporting this. - -Wed Jan 21 12:58:13 UTC 2004 Johnny Willemsen - - * ace/config-win32-common.h: - Removed the setting of MWMO_ALERTABLE when using MinGW. This is - set already by MinGW a long time. - - * ace/config-win32-common.h: - * ace/config-win32-mingw.h: - * ace/OS_NS_dirent.cpp: - * ace/OS_NS_dirent.inl: - * ace/README: - MinGW delivers a dirent.h which has opendir, closedir, readdir, - etc. Because in the OS_NS_dirent files always on win32 is assumed - that we haven't these methods, introduces ACE_LACKS_OPENDIR, - ACE_LACKS_CLOSEDIR and ACE_LACKS_READDIR. These defines are set - in config-win32-common and undef'd in config-win32-mingw.h. - So, on MinGW we use the normal opendir/closedir/readdir, the other - environmens in win32 use the corresponding emulation methods. This - fixes [BUGID 1718]. Thanks to Matthew Grosso - for reporting this and supplying the patches. - -Tue Jan 20 19:58:03 2004 Ossama Othman - - * configure.ac: - - Replaced all uses of the "changequote" M4 built-in with proper - quoting. Use of "changequote" is very discouraged by autoconf - developers since it is often a source of M4 programming - problems. - - (ACE_VERSION, AC_INIT): - - Statically determine the version of ACE using M4 built-ins at - autoconf-time, instead of dynamically setting the ACE version in - a shell variable at configure-time. This allows the package - version to be set in the autoconf AC_INIT call since AC_INIT - expects a static value. - - Replaced "TEST-VERSION" version value passed to AC_INIT call - with new ACE_VERSION macro. This allows the correct package - version, e.g. "5.4" instead of "TEST-VERSION", to be propagated - to a number of places within the configure script itself, and - Makefile.in templates generated by Automake. For example, - "configure --help" and "configure --version" now display the - correct version of ACE. - - (ACE_CURRENT, ACE_AGE, ACE_REVISION): - - Removed all kludges that worked around libtool's versioning - scheme. Libtool 1.5 or better now provides a means to set a - package defined library version. Thanks to Robert Schiele - pointing out the new libtool - feature. - - * bin/bootstrap: - - Cleaned up obsolete comments and commented code. - - Force auxiliary files to be copied to prevent older versions - from being used with newer versions autotools that expect newer - versions of the auxiliary files. - - Clarified some progress messages so that it is obvious that - bootstrapping corresponds to ACE autotool support. - - * m4/ace.m4: - * m4/acinclude.m4: - * m4/compiler.m4: - * m4/platform.m4: - - Replaced all uses of the "changequote" M4 built-in with proper - quoting. Use of "changequote" is very discouraged by autoconf - developers since it is often a source of M4 programming - problems. - - * ace/Makefile.am (libACE_la_LDFLAGS): - - Use new libtool 1.5 "-version-number" option instead of - "-version-info" to override libtool's versioning scheme with - ACE's versioning scheme. Thanks to Robert Schiele - pointing out the new libtool - feature. - - * ace/RMCast/Makefile.am (libACE_RMCast_la_LDFLAGS): - * ace/SSL/Makefile.am (libACE_SSL_la_LDFLAGS): - - Set ACE_RMCast and ACE_SSL library versions to ACE library - version, instead of not setting at all (defaulting to 0.0.0). - This is consistent with our stock/classical ACE build - Makefiles. - -Tue Jan 20 16:57:54 2004 Balachandran Natarajan - - * ace/Active_Map_Manager.i: - * ace/CDR_Stream.i: - - Fixed warnings in VC71 builds. Thanks to Grutzmacher - Lukas for reporting the problem and - providing patches. - -Tue Jan 20 15:37:18 2004 Balachandran Natarajan - - * bin/msvc_mpc_auto_compile.pl: - - Fixed some typos in the comments. - -Mon Jan 19 18:49:50 2004 Balachandran Natarajan - - * bin/msvc_mpc_auto_compile.pl: - - This is a new auto_compile script for MSVC with MPC. This just - build DLL's for both debug and release versions. The old file - msvc_auto_compile.pl is age old and suffers from severe brain - hemorrage which is hard to rectify with simple band aids and - stuff. The old file simply needs to go. This new script will be - used completely for DLL builds after testing in our daily - builds. - -Tue Jan 20 14:11:48 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - * bin/MakeProjectCreator/templates/vc7.mpd: - - Added support for file grouping in these templates. If source - files are grouped in the mpc file, they will show up grouped in - the graphical interfaces for these project types. - -Tue Jan 20 12:20:35 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - - Fixed a bug where the all target wouldn't be generated if the - platform is capable of shared libraries but the user only wants - static libraries. - - * bin/MakeProjectCreator/templates/makedll.mpt: - - Rearranged some of the VxWorks related settings. - -Tue Jan 20 18:02:19 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Made some small corrections. - -Tue Jan 20 17:05:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/compiler.bor: - When using BCB6 and release builds we get errors about __strcmp__ is - undefined. This is caused by the optimizer of BCB6 which generates - code for common functions like strcpy() within the calling function's - scope. The compiler flag is -Oi and this is set when the complete -O2 - optimization options is passed. So, with BCB6 in release builds, - we don't set -O2, but set all specific optimization flags but just not - -Oi. This is the only way I could fix this. - -Tue Jan 20 16:00:11 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added support for the Cygwin 1.5.6-1 version - -Mon Jan 19 13:31:46 2004 Steve Huston - - * Makefile: In AUTOCONF_RELEASE_FILES, changed aux to aux_config to - match: Fri Jan 16 12:29:48 2004 Ossama Othman. - -Mon Jan 19 17:27:13 UTC 2004 Johnny Willemsen - - * bin/make_release: - Dfm files shouldn't get LF->CRLF conversions. Thanks to - Martin Kaul for reporting this. - -Mon Jan 19 10:46:51 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GUID.pm: - - Mask the 4 byte portions of the GUID with 0xffffffff to avoid - problems with 64-bit versions of Cygwin Perl. Thanks to Cristian - Ferretti for reporting this and - providing a fix. - -Mon Jan 19 10:22:05 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/make.mpd: - * bin/MakeProjectCreator/templates/makedll.mpt: - - Added support for VxWorks 5.5 PPC and PENTIUM. - -Mon Jan 19 15:59:11 UTC 2004 Johnny Willemsen - - * tests/Tests.bor: - Added missing FIFO_Test. Thanks to Peter Bekiesch - for reporting this. - -Mon Jan 19 08:07:02 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - - Fixed a bug where files added to the Template_Files section were - not removed from the Source_Files section due to differences in - slashes to backslashes. - -Mon Jan 19 07:24:16 2004 Chad Elliott - - * examples/Misc/test_XtReactor1.cpp: - * examples/Misc/test_XtReactor2.cpp: - - Removed #define for String (added back in '96). The workaround is - apparently no longer needed. Also fixed some build errors and - warnings. - -Mon Jan 19 10:00:12 UTC 2004 Johnny Willemsen - - * bin/msvc_auto_compile.pl: - Fixed typo in file path - -Sun Jan 18 15:32:59 2004 Balachandran Natarajan - - * ACE-INSTALL.html: - - Added patches from Viktor Ransmayr - for a documentation patch, which describes how to build ACE - using only the MinGW and MSYS package. - -Sun Jan 18 10:27:11 2004 Balachandran Natarajan - - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp: - - Used ACE_UINT64_DBLCAST_ADAPTER instead of direct casting to a - double to be more portable. - -Sun Jan 18 10:13:16 2004 Balachandran Natarajan - - * Logging/LogManager.h: - * Logging/Use_Multiple_Sinks.cpp: - * Logging/Use_Ostream.cpp: - * Naming/Name_Binding.h: - - #included fstream conditionally on VC6. This should fix the - remaining compile errors on VC6 with MPC builds. - -Sun Jan 18 09:48:03 2004 Balachandran Natarajan - - * examples/TMCast/member.cpp: - - Fixed a compilation errors with VC6 which stemmed due to the - fact that a unsigned long long was used. We use ACE_UINT64 - instead. - -Sun Jan 18 09:40:04 2004 Balachandran Natarajan - - * tests/SOCK_Send_Recv_Test_IPV6.cpp: - * tests/SOCK_Test_IPv6.cpp: - - More warnings from unused functions. - -Sun Jan 18 09:55:32 UTC 2004 Johnny Willemsen - - * bin/msvc_auto_compile.pl: - Added tests/Test_Output.dsp to the list of libs to be build first - when building statically. Removed the code for the non-MPC static - build, the projects for this are removed before the 1.4 release. - - * bin/msvc_static_order.lst: - Added tests/Test_Output.dsp to the list of libs to be build first. - -Sun Jan 18 08:52:11 UTC 2004 Johnny Willemsen - - * ASNMP/asnmp/ctr64.h: - Added include of ace/Basic_Types.h to get ACE_UINT64 definition. - -Sun Jan 18 08:45:13 UTC 2004 Johnny Willemsen - - * tests/Tests.bor: - Fixed this makefile - -Sun Jan 18 00:00:07 2004 Balachandran Natarajan - - * tests/Max_Default_Port_Test_IPV6.cpp: - * tests/SOCK_Send_Recv_Test_IPV6.cpp: - * tests/SOCK_Test_IPv6.cpp: - - Fixed unused function warnings in the daily builds. - -Sat Jan 17 23:52:38 2004 Balachandran Natarajan - - * tests/SOCK_Dgram_Test.cpp: - - Fixed a compile error in Full_Reactor builds. - -Sat Jan 17 19:38:11 UTC 2004 Johnny Willemsen - - * tests/INET_Addr_Test_IPV6.cpp: - * tests/Proactor_Test_IPV6.cpp: - * tests/SOCK_Send_Recv_Test_IPV6.cpp: - - Fixed incorrect doxygen file tag. - -Sat Jan 17 19:35:43 UTC 2004 Johnny Willemsen - - * examples/C++NPv2/AC_CLD_export.h: - * examples/C++NPv2/AIO_CLD_export.h: - * examples/C++NPv2/CLD_export.h: - * examples/C++NPv2/SLD_export.h: - * examples/C++NPv2/SLDEX_export.h: - * examples/C++NPv2/TPCLS_export.h: - * examples/C++NPv2/TPLS_export.h: - Added check for ACE_AS_STATIC_LIBS for setting the export flags for - proper building of static libraries. - -Sat Jan 17 19:19:33 UTC 2004 Johnny Willemsen - - * ASNMP/asnmp/ASNMP_Export.h: - Added check for ACE_AS_STATIC_LIBS for setting the export flags for - proper building of static libraries. - - * ASNMP/asnmp/ctr64.cpp: - * ASNMP/asnmp/ctr64.h: - Changed unsigned long long to ACE_UINT64 - - * ASNMP/asnmp/address.h: - * ASNMP/asnmp/octet.h: - * ASNMP/asnmp/oid.h: - * ASNMP/asnmp/pdu.h: - * ASNMP/asnmp/vb.h: - Added missing ASNMP_Export macro. - - This fixes several build problems on Win32. Thanks to - Michelangelo Nottoli for reporting this - and supplying the ideas how to fix this. - -Sat Jan 17 18:43:12 UTC 2004 Johnny Willemsen - - * bin/msvc_static_compile.pl: - * bin/msvc_static_order.lst: - When using static projects we cannot use the dependencies between - different libraries. Therefor we have to explicitly define the - build order. The existing msvc_auto_compile.pl script was getting - to complex, so added a new msvc_static_compile.pl script that will - be used for building statically. In the msvc_static_order.lst the - order of building can be specified. - -Sat Jan 17 09:46:38 2004 Balachandran Natarajan - - * ace/TMCast/Group.cpp: - - Fixed compile errors with VC++ 6. - -Sat Jan 17 15:29:01 UTC 2004 Johnny Willemsen - - * ASNMP/asnmp/asn1.cpp: - Removed not needed ; - -Sat Jan 17 15:05:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/ec_typed_events.mpb: - * bin/MakeProjectCreator/config/ec_use_typed_events.mpb: - * bin/MakeProjectCreator/config/event.mpb: - The fix for the ec_typed_events feature. Thanks to Chad Elliot for - explaining that MPC inheritance is based on file name. So CosEvent.mpc - inherits from ec_typed_events in the orbsvcs directory, projects using - event inherit from event which inherits from ec_use_typed_events - which then sets the needed compiler flags and adds the needed - libraries to the linker. - -Sat Jan 17 00:56:54 2004 Balachandran Natarajan - - * tests/Proactor_Test_IPV6.cpp - * tests/SOCK_Send_Recv_Test_IPV6.cpp: - * tests/SOCK_Test_IPv6.cpp: - - Fixed compilation errors in builds that don't have IPV6 enabled. - -Sat Jan 17 00:45:40 2004 Balachandran Natarajan - - * tests/Multihomed_INET_Addr_Test_IPV6.dsp: - * tests/INET_Addr_Test_IPV6.dsp: - * tests/Max_Default_Port_Test_IPV6.dsp: - * tests/Multicast_Test_IPV6.dsp: - * tests/Proactor_Test_IPV6.dsp: - * tests/SOCK_Send_Recv_Test_IPV6.dsp: - * tests/SOCK_Test_IPv6.dsp: - - New dsp files for the tests - - * tests/tests.dsw: - - Workspace file with the mods. - -Sat Jan 17 00:12:21 2004 Balachandran Natarajan - - * tests/run_test.lst: - * tests/tests.mpc: - - Added missing tests. - -Fri Jan 16 23:57:08 2004 Balachandran Natarajan - - * tests/INET_Addr_Test_IPV6.cpp: - * tests/Max_Default_Port_Test_IPV6.cpp: - * tests/Multicast_Test_IPV6.cpp: - * tests/Multihomed_INET_Addr_Test_IPV6.cpp: - * tests/Proactor_Test_IPV6.cpp: - * tests/SOCK_Send_Recv_Test_IPV6.cpp: - - Fixed a typo in the name of the files that are printed out for - logging and error checking. - -Fri Jan 16 23:25:03 2004 Balachandran Natarajan - - * tests/Tests.bor: - - New test to the borland makefiles. - -Fri Jan 16 23:21:10 2004 Balachandran Natarajan - - * tests/run_test.lst: - - Added the new tests to the daily build. - -Fri Jan 16 23:19:17 2004 Balachandran Natarajan - - * tests/tests.mpc: - - Added the new tests to the MPC. - -Fri Jan 16 23:01:11 2004 Balachandran Natarajan - - * tests/Multihomed_INET_Addr_Test_IPV6.cpp: - * tests/Proactor_Test_IPV6.cpp: - * tests/SOCK_Send_Recv_Test_IPV6.cpp: - * tests/SOCK_Test_IPv6.cpp: - - More IPV6 tests from Brian Bruesker. - - * tests/Makefile.tests: - - Added these new tests. - -Fri Jan 16 21:38:59 2004 Balachandran Natarajan - - * tests/INET_Addr_Test_IPV6.cpp: - * tests/Max_Default_Port_Test_IPV6.cpp: - * tests/Multicast_Test_IPV6.cpp: - * tests/Multihomed_INET_Addr_Test_IPV6.cpp: - - New test for IPV6. These tests were donated by Brian Bruesker. - - * tests/SOCK_Dgram_Test.cpp: - - Cosmetic fix. - - * tests/Makefile.tests: - - Added the new tests. - -Fri Jan 16 18:44:04 2004 Balachandran Natarajan - - * tests/INET_Addr_Test.cpp: - * tests/Max_Default_Port_Test.cpp: - * tests/Multicast_Test.cpp: - * tests/Multihomed_INET_Addr_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Test.cpp: - - Reverted changes from "Fri Jan 16 17:25:50 2004 Balachandran - Natarajan " since the IPV6 needs to be - placed seperately. - -Fri Jan 16 17:25:50 2004 Balachandran Natarajan - - * tests/INET_Addr_Test.cpp: - * tests/Max_Default_Port_Test.cpp: - * tests/Multicast_Test.cpp: - * tests/Multihomed_INET_Addr_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Test.cpp: - - Thanks to Brian Bruesker , we now have - tests for IPV6 features in the above tests - - * tests/SOCK_Dgram_Test.cpp: - - A simple test based on SOCK_Test for Datagrams. Thanks once - again to Brian Bruesker. - - * tests/Makefile.tests: - - Added the new test. - -Fri Jan 16 15:04:17 2004 Douglas C. Schmidt - - * ace/SOCK_Dgram_Bcast.cpp (close): Set the this->if_list_ - field to 0 to let applications close and re-open the socket. - Without it, a second close will delete already delete'd memory. - Thanks to Shannon Barber for - this fix. - -Fri Jan 16 12:29:48 2004 Ossama Othman - - * configure.ac (AC_CONFIG_AUX_DIR): - - Changed auxiliary directory filename from "aux" to - "aux_config". The former is not an allowed/valid name on - Windows. Thanks to Greg Mulyar for pointing - out the problem. - -Fri Jan 16 14:19:14 2004 Balachandran Natarajan - - * tests/tests.mpc: - - Fixed the project names in MPC to be similar to the ones used in - default distribution. Thanks to Boris Kaminer - for motivating this fix. - -Fri Jan 16 16:09:31 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/event.mpb: - Removed ec_typed_events as base. This resulted in problems in - building other orbsvcs which then use the ec_typed_events.mpb - which is located in $(TAO_ROOT)/orbsvcs/orbsvcs. This restores - the situation to the previous situation and in meantime we can - figure out a better solution. - -Fri Jan 16 15:01:11 UTC 2004 Johnny Willemsen - - * tests/Logging_Strategy_Test.cpp: - For checking if we are building statically use ACE_AS_STATIC_LIBS and - not ACE_HAS_STATIC_LIBS. With this fix this tests runs again in the - BCB6 static build. - -Fri Jan 16 11:27:01 UTC 2004 Johnny Willemsen - - * tests/Service_Config_DLL_Export.h: - Added check for ACE_AS_STATIC_LIBS for setting the export flags for - proper building of static libraries. - -Fri Jan 16 11:25:32 UTC 2004 Johnny Willemsen - - * examples/APG/Svc_Config/HASTATUS_export.h - Added check for ACE_AS_STATIC_LIBS for setting the export flags for - proper building of static libraries. - -Fri Jan 16 09:57:45 UTC 2004 Johnny Willemsen - - * tests/DLL_Test.bor: - * tests/DLL_Test.cpp: - Changed this test so that it works in MPC and non-MPC builds. - We use always the decorator string for the dll name. - -Fri Jan 16 08:56:13 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/ec_typed_events.mpb: - Added this file. When the feature ec_typed_events is available, - we must link with the IFRClient and DynamicInterface library. - - * bin/MakeProjectCreator/config/event.mpb: - Add ec_typed_events as parent project. When ec_typed_events is - available projects using event should link with the extra needed - libraries. This fixes the link errors in the BCB6 Static build. - -Thu Jan 15 20:54:38 2004 Ossama Othman - - * configure.ac: - - Require GNU Autoconf 2.58 or better, not 2.57g or better. - Version 2.57g was a testing release not a stable release. - - Use more comprehensive (custom) test for detecting shm_open() - support instead of AC_CHECK_FUNC. In particular, use - AC_LINK_IFELSE so that we can detect missing function prototype - errors. Addresses a problem on Solaris builds where shm_open() - support was incorrectly detected as available despite the fact - POSIX.1b support was not enabled. - - Removed ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION test. This macro is - no longer used. - - * ace/os_include/sys/os_resource.h: - - Include in the ACE_HAS_PROC_FS case. It is - necessary to pull in the "prusage_t" typedef. That typedef is - used later in this header. Addresses an ACE+autoconf build - problem on Solaris. - - * m4/ace.m4: - - Corrected quoting problem that caused "--enable-fast" help - string to be echoed incorrectly. - - * m4/acinclude.m4: - - Corrected typo in warning message. - - * m4/compiler.m4: - - Updated Sun C++ 5.0 configuration settings to match those in the - latest platform_sunos5_sunc++.GNU file. - - * m4/config_h.m4 (AH_BOTTOM): - - Added empty line to text appended to generated `config.h' file - to correct a "non-empty ending line" warning exhibited by Sun - C++ 5.0. - - (ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION): - - Removed template for this preprocessor macro. It is no longer - used. - -Thu Jan 15 20:33:09 2004 Balachandran Natarajan - - * docs/ACE-development-process.html (HREF): - - Added a small writeup about the features of BFO. - -Thu Jan 15 19:47:13 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/avstreams.mpb: - Avstreams uses the feature qos, so when qos=1 is set in the - default.features file we use the ACE_QoS library. Projects - using avstreams should also use this feature, so that they also - link with ACE_QoS when qos=1. This fixes link errors in the - BCB6 Static Build. - -Thu Jan 15 18:50:42 UTC 2004 Johnny Willemsen - - * tests/ACE_Init_Test.cpp: - Fixed compile problem in BCB6 Unicode build - -Thu Jan 15 18:42:11 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/portablegroup.mpb: - PortableGroup uses iormanip, so also projects using portablegroup - need this. This fixes the compile problems in the BCB6 Static - build. - -Thu Jan 15 18:33:16 UTC 2004 Johnny Willemsen - - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - Use ACE_OS::strcpy instead of strcpy to fix compile problem in - BCB6 Static build. - -Thu Jan 15 11:12:45 2004 Chad Elliott - - * bin/MakeProjectCreator/config/ciao_servant.mpb: - * bin/MakeProjectCreator/config/qt-min_moc.mpb: - * bin/MakeProjectCreator/config/qt_moc.mpb: - - Removed the command options from the command setting and put them - into the commandflags settings. - - * bin/MakeProjectCreator/templates/cbx.mpd: - - Added the initial support for custom build types. - - * bin/MakeProjectCreator/templates/em3vcp.mpd: - - Fixed a bug in this template where the !ENDIF for custom build - types would be missing. - - * bin/MakeProjectCreator/templates/vc6dsp.mpd: - - Added user dependencies for custom build types. - - * bin/MakeProjectCreator/templates/vc7.mpd: - - Fixed the user dependencies for custom build types such that it is - not hard coded to be the CIAO IDL compiler for all custom build - types. - -Thu Jan 15 16:47:11 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/rtcorbacommon.mpb: - The rtcorbacommon library needs portableserver and doesn't build - when minimum_corba is set - -Thu Jan 15 08:02:23 2004 Douglas C. Schmidt - - * ace/INET_Addr.cpp (get_port_number_from_name): Changed - initial value of port_number from 0 to -1. Thanks to - Stephen Moon for this fix. - -Thu Jan 15 16:06:54 UTC 2004 Johnny Willemsen - - * examples/Export/test_export.h: - * ace/TMCast/Export.hpp: - Added check for ACE_AS_STATIC_LIBS for setting the export flags for - proper building of static libraries. - -Thu Jan 15 16:03:11 UTC 2004 Johnny Willemsen - - * examples/Bounded_Packet_Relay/Bounded_Packet_Relay.mpc: - * examples/Synch/Synch.mpc: - Added new mpc files for these examples - -Thu Jan 15 08:14:08 2004 Chad Elliott - - * bin/MakeProjectCreator/README: - - Added documentation for keyword mapping which will allow users to - map custom defined keywords into the project level scope. - Removed support for the idlpreprocessor keyword. - - * bin/MakeProjectCreator/config/core.mpb: - - Changed core = 1 into a verbatim clause that enbles the removal of - the core keyword. - - * bin/MakeProjectCreator/config/vcpartialmacros.mpt: - - Removed the ACE specific precompiled headers macro. - - * bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm: - - Propagated change from GNUACEProjectCreator on Wed Jan 7 06:24:54 - 2004. - - * bin/MakeProjectCreator/modules/Creator.pm: - * bin/MakeProjectCreator/modules/ProjectCreator.pm: - Added support for keyword mapping which will allow users to map - custom defined keywords into the project level scope. - - * bin/MakeProjectCreator/modules/MakeWorkspaceCreator.pm: - - Changed the workspace output to allow a user to make a specific - target within the workspace. If the user specified target - requires other projects, then those projects are built also. - - * bin/MakeProjectCreator/modules/Version.pm: - - Updated the version number of MPC. - - * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: - - Warn about circular dependencies between projects. - - * bin/MakeProjectCreator/templates/bor.mpd: - - Added verbatim markers, removed the use of the core keyword in - favor of the verbatim used to get the same effect. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Fixed a bug in this template where TAO_ORBSVCS was not being - handled properly. - Removed the use of the idlpreprocessor keyword in favor of the - verbatim used to get the same effect. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/ACE/ChangeLogs/ChangeLog-04b b/ACE/ChangeLogs/ChangeLog-04b deleted file mode 100644 index fe54044d243..00000000000 --- a/ACE/ChangeLogs/ChangeLog-04b +++ /dev/null @@ -1,8063 +0,0 @@ -Thu Dec 30 12:54:28 2004 Chris Cleeland - - * NEWS: Updated to include latest release news. - -Thu Dec 30 11:44:51 2004 Steve Huston - - * NEWS: Noted that the autoconf stuff gave up on complete automation - via MPC-generation of the Makefile.am files. Autoconf should work - mostly for 5.4.3 and completely before 5.5. - -Wed Dec 29 18:53:12 2004 Steve Huston - - * tests/run_test.pl: If running a WinCE test, the log file has a - .txt suffix, not .log. If it's .log, there's no (easy) way to look - at the file on the device itself, so they're named .txt. - -Tue Dec 28 19:45:58 2004 Balachandran Natarajan - - * bin/make_release: - - Added .png to the list of files that needs to be omitted from - LF->CRLF conversions. Thanks to Johnny for pointing this out. - -Sat Dec 25 20:58:12 2004 Balachandran Natarajan - - * bin/make_release: - - Generated textual version of TAO-INSTALL.html and - CIAO-INSTALL.html within the distribution. - -Wed Dec 22 12:47:19 2004 Steve Huston - - * ACE-INSTALL.html: Revised the platforms and support section to - reflect the need for actively maintained platforms to be represented - on the build scoreboard. Old, unmaintained platforms are subject to - deprecation and removal. - -Wed Dec 22 11:35:07 2004 Ossama Othman - - * configure.ac: - * m4/ace.m4: - * m4/compiler.m4: - * m4/platform.m4: - - Reverted change described in "Sun Dec 19 14:23:53 2004 ..." that - changed "$host" to "$target". The latter is only used by tool - chains (compilers, linkers, etc) and is not needed in ACE's - case. To enable cross-compilation support, users should set the - host platform via the "--host" configure script option, as - described in the "./configure --help" output. - -Wed Dec 22 11:17:57 2004 Chad Elliott - - * bin/show_unused_macros.pl: - - This script will find macros in specified config files that - are not referenced in other config files, but are referenced - in the rest of the ace source files. The macros that it shows - are candidates for removal from ace. - -Wed Dec 22 08:00:33 2004 Chad Elliott - - * bin/MakeProjectCreator/config/ftclientorb.mpb: - * bin/MakeProjectCreator/config/ftserverorb.mpb: - - These both require interceptors to function properly. - - * bin/tao_other_tests.lst: - - Added !STATIC to the following: - - TAO/performance-tests/Protocols/run_test.pl - TAO/orbsvcs/tests/Notify/Basic/run_test.pl notify.rt.conf - - Added !MINIMUM to the following: - - TAO/orbsvcs/tests/Bug_1393_Regression/run_test.pl - TAO/orbsvcs/tests/Bug_1395_Regression/run_test.pl - TAO/orbsvcs/tests/Bug_1436_Regression/run_test.pl - TAO/orbsvcs/tests/Bug_1437_Regression/run_test.pl - - Added !DISABLE_INTERCEPTORS to the following: - - TAO/orbsvcs/tests/FaultTolerance/GroupRef_Manipulation/run_test.pl - TAO/orbsvcs/tests/FaultTolerance/IOGR/run_test.pl - TAO/orbsvcs/tests/FaultTolerance/IOGRManipulation/run_test.pl - - Added !NO_MESSAGING to the following: - - TAO/orbsvcs/tests/Log/Basic_Log_Test/run_test.pl - TAO/orbsvcs/tests/BiDir_CORBALOC/run_test.pl - TAO/orbsvcs/tests/Bug_1395_Regression/run_test.pl - TAO/orbsvcs/tests/Bug_1437_Regression/run_test.pl - - * tests/Multicast_Test.cpp: - - If the wait() for the consumer thread fails, we need to forcably - shutdown that thread so that it does not reference deleted memory. - -Tue Dec 21 12:17:50 2004 Chad Elliott - - * bin/PerlACE/Process_Win32.pm: - - Take into account the fact that installed binaries do not conform - to the -ExeSubDir option. - -Tue Dec 21 04:52:25 2004 Balachandran Natarajan - - * Release: - * bin/make_release: - - Udated them to add the correct versions of files. - -Mon Dec 20 17:38:12 UTC 2004 Johnny Willemsen - - * tests/run_test.lst: - Added missing : between tests and LynxOS - -Mon Dec 20 08:33:28 2004 J.T. Conklin - - * configure.ac: - - Added test for ACE_LACKS_UMASK. - -Mon Dec 20 08:10:31 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Replaced autoheader templates for type and size in config_h.m4 - with a third argument to AC_DEFINE in configure.ac. - -Mon Dec 20 09:40:22 2004 Chad Elliott - - * bin/tao_other_tests.lst: - - Re-removed TAO/orbsvcs/tests/Notify/Lanes/run_test.pl and - TAO/orbsvcs/tests/Notify/ThreadPool/run_test.pl. These tests - require more scheduling priorities than most of the nightly build - systems have access to as a regular user. - -Mon Dec 20 16:47:08 2004 Olli Savia - - * ace/Mem_Map.h: - * ace/Mem_Map.inl: - * ace/Mem_Map.cpp: - * ace/OS_NS_sys_mman.inl: - Replaced ACE_HAS_LYNX_BROKEN_MMAP with ACE_HAS_LYNXOS_BROKEN_MMAP - to be more consistent in macro naming. - - * ace/Time_Value.h: - Removed unnecessary LynxOS specific includes. - - * ace/config-lynxos.h: - Added #define ACE_HAS_LYNXOS_BROKEN_MMAP. - - * tests/Cached_Conn_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Reader_Writer_Test.cpp: - * tests/TSS_Test.cpp: - * tests/Thread_Mutex_Test.cpp: - Removed unnecessary LynxOS specific code. - - * tests/run_test.lst: - Enabled/disabled some test for LynxOS. - -Mon Dec 20 14:19:12 UTC 2004 Johnny Willemsen - - * ace/config-WinCE.h: - Added ACE_LACKS_TEMPNAM - - * ace/OS_NS_stdlib.inl: - Simplified tempnam implementation and replaced several C-style - casts with their C++ version. Removed obsolete gets that was - commented out. - - * ace/OS_NS_stdlib.h: - Changed some comments to doxygen style - -Mon Dec 20 13:36:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_arpa_inet.cpp: - Replace C-style cast with C++ const_cast - - * ace/config-vxworks5.x.h: - Updated supported versions - - * ace/config-openvms.h: - Removed old comments - -Mon Dec 20 13:26:12 UTC 2004 Johnny Willemsen - - * ace/os_include/os_semaphore.h: - Removed not needed include of semLib.h with VxWorks. The file - semaphore.h does this already. - -Mon Dec 20 13:12:12 UTC 2004 Johnny Willemsen - - * ace/CDR_Stream.{cpp,inl}: - Removed the read_float and write_float from the cpp file and removed - the guards around it in the inl file. When VXWORKS was set, but not - ghs we didn't get any of the methods. This seems a very old - workaround so zap it, we don't need it anymore and caused problems - -Mon Dec 20 12:54:12 UTC 2004 Johnny Willemsen - - * ace/INET_Addr.cpp {get_port_number_from_name): - Only check for ACE_LACKS_GETSERVBYNAME, VxWorks and Chorus have - this define also set - -Mon Dec 20 11:44:12 UTC 2004 Johnny Willemsen - - * ace/config-vxworks5.x.h: - * ace/README: - * ace/OS_NS_dirent.inl: - Added ACE_HAS_NONCONST_OPENDIR - -Mon Dec 20 11:35:12 UTC 2004 Johnny Willemsen - - * ace/config-vxworks5.x.h: - * ace/README: - * ace/OS_NS_unistd.inl: - Added ACE_HAS_NONCONST_UNLINK - -Mon Dec 20 11:29:12 UTC 2004 Johnny Willemsen - - * ace/config-vxworks5.x.h: - * ace/README: - * ace/OS_NS_unistd.inl: - Added ACE_HAS_NONCONST_RMDIR - - * ace/OS_NS_unistd.inl: - Merged the two ACE_OS::getopt methods to one, no need to have a special - win32 not supported version - -Mon Dec 20 11:18:12 UTC 2004 Johnny Willemsen - - * ace/config-vxworks5.x.h: - * ace/README: - * ace/OS_NS_unistd.inl: - Added ACE_HAS_NONCONST_CHDIR - -Mon Dec 20 11:01:12 UTC 2004 Johnny Willemsen - - * ace/config-integritySCA.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psos-psosim-g++.h: - * ace/config-WinCE.h: - Added ACE_LACKS_UMASK - - * ace/config-vxworks5.x.h: - Adde ACE_LACKS_UMASK, ACE_HAS_NONCONST_STAT and ACE_MKDIR_LACKS_MODE - - * ace/config-win32-common.h: - Added ACE_MKDIR_LACKS_MODE - - * ace/OS_NS_sys_stat.inl: - Merged all umask implementation to one version and introduced - an ACE_LACKS_UMASK to check if umask is supported or not. - Use the new ACE_HAS_NONCONST_STAT instead of checking for VxWorks - explicitly - Use ACE_MKDIR_LACKS_MODE to determine whether a mode must be passed - with the mkdir invocation or not. - - * ace/README: - Documented new defines - -Mon Dec 20 10:37:12 UTC 2004 Johnny Willemsen - - * ace/Time_Value.h: - Removed not needed VxWorks specific include - - * ace/config-tandem.h: - Removed a lot of commented out defines, makes it much easier - to search for deprecated defines - - * ace/config-g++-common.h: - Removed check for VxWorks >= 540, older versions are not supported - anymore, so no need to do this check - -Sun Dec 19 14:23:53 2004 J.T. Conklin - - * configure.ac: - * m4/ace.m4: - * m4/compiler.m4: - * m4/platform.m4: - - Replace use of $host with $target. Needed if we're ever to - support cross compilation. - -Sun Dec 19 17:52:12 UTC 2004 Johnny Willemsen - - * examples/QOS/Change_Sender_TSpec/receiver.cpp: - * examples/QOS/Change_Sender_TSpec/sender.cpp: - * examples/QOS/Change_Sender_TSpec/QoS_Util.{h,cpp}: - Fixed compile error in unicode build - - * examples/QOS/Change_Sender_TSpec/QOS_Change_Sender_FlowSpec.mpc: - * examples/QOS/Change_Sender_TSpec/QOS_Change_Sender_TSpec.mpc: - Renamed to match directory name - -Sun Dec 19 15:46:12 UTC 2004 Johnny Willemsen - - * ace/os_include/os_time.h: - Fixed incorrect comment after endif - -Sun Dec 19 16:35:34 2004 Olli Savia - - * ace/README: - Updated ACE_HAS_PREDEFINED_THREAD_CANCELLED_MACRO description. - - * ace/config-lynxos.h: - Added ACE_HAS_PREDEFINED_THREAD_CANCELLED_MACRO and removed - ACE_POLL_IS_BROKEN. - -Sun Dec 19 10:45:12 UTC 2004 Johnny Willemsen - - * examples/QOS/Change_Receiver_FlowSpec/sender.cpp: - * examples/QOS/Diffserv/diffserv_test.cpp: - * examples/QOS/Diffserv/server.cpp: - Fixed compile error in unicode build - -Sun Dec 19 01:32:05 2004 Emre Turkay - - * ace/config-win32-msvc.h: - - Added a if not defined guard to the QT_DLL definition. - -Sat Dec 18 10:03:41 2004 Olli Savia - - * ace/README: - Added ACE_HAS_PREDEFINED_THREAD_CANCELLED_MACRO. - - * tests/Malloc_Test.cpp: - There is no reason not to compile this test on LynxOS. It doesn't - work but there are now better chances that it will be fixed some - day. - -Fri Dec 17 13:53:12 UTC 2004 Johnny Willemsen - - * ace/OS.inl: - Corrected comment after #endif - -Fri Dec 17 13:41:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_unistd.cpp: - Converted ACE casts to C++ casts, removed the checks for win32 and - vxworks for execlp, execle and execl, these methods are not - implemented for any environment, so no need to have a special - notsup for windows and vxworks - -Fri Dec 17 13:19:12 UTC 2004 Johnny Willemsen - - * ace/IOStream_T.cpp: - Removed code to define a variable to prevent munch problems. Not - needed anymore with the latest VxWorks version and the static - metioned is also gone already. - -Fri Dec 17 12:47:12 UTC 2004 Johnny Willemsen - - * ace/IO_SAP.cpp: - Just always build the code, the ACE_OS layer handles the not - supported issues on Win32 and VxWorks. - -Fri Dec 17 12:21:12 UTC 2004 Johnny Willemsen - - * ace/OS.h: - Also on VxWorks include os_un.h - -Fri Dec 17 11:31:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_sys_socket.inl: - HPUX and VxWorks seem to have a send that accepts a const char*, so - removed them from the list that uses a char* - -Thu Dec 16 16:53:12 UTC 2004 Johnny Willemsen - - * ace/Timeprobe_T.cpp: - Removed checking of ACE_HAS_BROKEN_DES_ARRAY_FREE. This define is - not set for any compiler, so removed it. - - * tests/Timeprobe_Test.cpp: - Added missing include to get this test compiling - -Thu Dec 16 16:13:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - Some minor documentation updates for VxWorks. - -Thu Dec 16 10:06:10 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Check for multiple places for the test executable. Some Linux - installations don't have /bin/test, but do have /usr/bin/test. - This will allow more parallel building to occur. - -Thu Dec 16 16:00:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Converted some documentation to doxygen style - -Thu Dec 16 09:34:02 2004 Chad Elliott - - * ace/OS_NS_sys_socket.inl (getsockname): - - Fixed a bug introduced Mon Dec 13 10:34:24 2004 where the sockaddr - would be zero'ed out instead of just the sin_zero of the - sockaddr_in. - -Thu Dec 16 15:22:12 UTC 2004 Johnny Willemsen - - * tests/Thread_Manager_Test.cpp: - Replaced ACE cast macro with the C++ variant - -Thu Dec 16 15:07:12 UTC 2004 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Removed defines for VxWorks <= 0x540, these are not usable anymore - - * tests/log/Makefile.am: - Removed this file, checked it with J.T. Conklin, we don't need this - file anymore - -Thu Dec 16 14:38:12 UTC 2004 Johnny Willemsen - - * ace/os_include/arpa/os_inet.h: - Removed prototypes for VxWorks <= 0x540, these VxWorks versions - are not usable anymore because of the lack of namespace support. - -Thu Dec 16 16:12:07 2004 Olli Savia - - * ace/Mem_Map.h: - * ace/Mem_Map.inl: - * ace/Mem_Map.cpp: - * ace/OS_NS_sys_mman.inl: - Replaced __Lynx__ macro with ACE_HAS_LYNX_BROKEN_MMAP macro. - This makes code maintenace easier across different - LynxOS versions. - -Thu Dec 16 14:14:12 UTC 2004 Johnny Willemsen - - * ace/Flag_Manip.cpp: - Instead of checking for ACE_WIN32 or VXWORKS or ACE_LACKS_FCNTL, - only check for ACE_LACKS_FCNTL, win32 and VxWorks have this define - already set - -Thu Dec 16 14:07:12 UTC 2004 Johnny Willemsen - - * ace/config-lite.h: - Removed commected out typedef in VxWorks part - -Thu Dec 16 13:49:12 UTC 2004 Johnny Willemsen - - * examples/QOS/Simple/QoS_Util.{h,cpp}: - * examples/QOS/Simple/sender.cpp: - * examples/QOS/Simple/receiver.cpp: - Fixed compile problems in unicode builds - -Thu Dec 16 13:03:12 UTC 2004 Johnny Willemsen - - * examples/Reactor/FIFO/client.cpp: - Fixed link errors in unicode builds - -Thu Dec 16 13:00:12 UTC 2004 Johnny Willemsen - - * examples/Reactor/Misc/test_timer_queue.cpp: - * examples/Reactor/Misc/test_signals_2.cpp: - * examples/Reactor/Misc/test_signals_1.cpp: - * examples/Reactor/Misc/test_reactors.cpp: - * examples/Reactor/Misc/test_event_handler_t.cpp: - * examples/Reactor/Misc/test_early_timeouts.cpp: - Fixed link errors in unicode builds - - * examples/Reactor/Misc/Reactor_Misc.mpc: - Added missing test_event_handler_t - -Thu Dec 16 10:18:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Only set FL and GL flags when they are not set - - * include/makeinclude/wrapper_macros.GNU: - Removed setting of PACE root, we don't use this anymore - - Thanks to Pete McCann for reporting these - problems. - -Wed Dec 15 17:05:22 2004 Steve Huston - - * tests/Test_Output.cpp: When resetting msg_ostream to cerr, specify - 0 for delete_ostream. ACE_Log_Msg is not allowed to delete cerr. - Fixes the crash in Logging_Strategy_Test. - -Wed Dec 15 16:01:12 UTC 2004 Johnny Willemsen - - * examples/APG/Active_Objects/active_objects.mwc: - * examples/APG/Config/config.mwc: - * examples/APG/Containers/containers.mwc: - * examples/APG/Logging/logging.mwc: - * examples/APG/Misc_IPC/misc_ipc.mwc: - * examples/APG/Naming/naming.mwc: - * examples/APG/Proactor/proactor.mwc: - * examples/APG/Processes/processes.mwc: - * examples/APG/Reactor/reactor.mwc: - * examples/APG/Shared_Memory/shared_memory.mwc: - * examples/APG/Signals/signals.mwc: - * examples/APG/Sockets/sockets.mwc: - * examples/APG/Streams/streams.mwc: - * examples/APG/Svc_Config/svc_config.mwc: - * examples/APG/ThreadManagement/threadmgmt.mwc: - * examples/APG/ThreadPools/threadpools.mwc: - * examples/APG/Threads/threads.mwc: - * examples/APG/ThreadSafety/threadsafety.mwc: - * examples/APG/Timers/timers.mwc: - Removed these files, they are not needed anymore because all project - files are now generated and they interfere in our release proces, - they cause workspaces which only differ in casing then the - ones generated from higher levels. - -Wed Dec 15 13:37:12 UTC 2004 Johnny Willemsen - - * bin/make_release: - Also exclude ASNMP/asnmp.mwc during the dynamic release. - -Wed Dec 15 10:04:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Set GL flags to the correct values - -Tue Dec 14 19:53:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_cygwin32.GNU: - * include/makeinclude/platform_gnuwin32_common.GNU: - Moved fltk flags to gnuwin32 file - -Tue Dec 14 19:40:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_cygwin32.GNU: - Added flags for fltk usage with cygwin - -Tue Dec 14 18:23:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Fixed typo in the ACE_MAKE_OPTIONS added for fl_reactor - -Tue Dec 14 12:25:12 UTC 2004 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Fixed unwanted inclusion of VxWorks system libraries in link - command. - -Tue Dec 14 09:44:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_sys_socket.inl: - Added missing include when ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO - is defined to 1 - -Mon Dec 13 19:30:12 UTC 2004 Johnny Willemsen - - * tests/Semaphore_Test.cpp (worker): - Changed the way we compare if the acquire failed. Use a intermediate - long as in the test_timeout function to handle the case when - the acquire returns a little bit earlier than we expected. This - fixes the incorrect test failure with Interix and MinGW. Thanks for - Steven Frare for sorting this out - and supplying a patch - -Mon Dec 13 10:34:24 2004 Ossama Othman - - From Roland Mueb : - * ace/OS_NS_sys_socket.inl (getpeername, getsockname): - - If (the new) ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO preprocessor - symbol is defined, initialize the sockaddr_in::sin_zero field to - zero after the call to get{peer,sock}name() when the address - family is AF_INET. Some platforms, like older versions of the - Linux kernel, do not initialize the sin_zero field since that - field is generally only used for padding/alignment purposes. On - those platforms memcmp()-based comparisons of the sockaddr_in - structure, such as the one in the ACE_INET_Addr equality - operator, may fail due to random bytes in the sin_zero field - even though that field is unused. This fix prevents equality - comparison of two different sockaddr_in instances that refer to - the same socket from failing. - - * ace/OS_NS_macros.h (ACE_SOCKCALL): - - Added non-returning counterpart to the ACE_SOCKCALL_RETURN - macro. Used by the above fix. - - * ace/config-linux-common.h: - - Define ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO if Linux kernel - version is less than 2.5.47. Kernels prior to that version did - not initialize the sockaddr_in::sin_zero field. - -Mon Dec 13 10:07:52 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Changed to provide ACE_INT64 typedef. - -Mon Dec 13 10:16:40 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/templates/gnudll.mpt: - * bin/MakeProjectCreator/templates/gnuexe.mpt: - - Modifications to add a 'targetoutdir' template variable which - determines the output location of object files, exes and - libraries. By default, this template variable is not set and does - not affect anything. - -Mon Dec 13 16:11:23 2004 Balachandran Natarajan - - * bin/make_release: - - Exclude ASNMP/asnmp.mwc during the release. - -Mon Dec 13 06:33:42 2004 J.T. Conklin - - * ace/config-netbsd.h: - - Provide ACE_INT64 typedef. - -Mon Dec 13 12:50:12 UTC 2004 Johnny Willemsen - - * ace/Log_Msg.cpp: - Added q as usable format specifier to print out a int64 value. Not - usable when no native int64 is available. - -Mon Dec 13 12:26:12 UTC 2004 Johnny Willemsen - - * ace/Basic_Types.h: - * ace/config-win32-common.h: - Added ACE_INT64 typedef. Note that there is no emulated ACE_INT64, - it is just defined for platforms having such a type natively. In the - future we could deliver an emulation, but with this typedef at least - people trying to work on multiple platforms with native int64 can use - this typedef to get portable code - -Mon Dec 13 04:34:18 2004 Balachandran Natarajan - - * Release: - Removed some old files from the release - - * bin/make_Release: - - Bootstrapped autoconf with TAO instead of just ACE. - -Mon Dec 13 04:25:24 2004 Balachandran Natarajan - - * Release: - - Added protocols directory. Thanks to JT for letting me know - this. - -Mon Dec 13 00:14:01 2004 Olli Savia - - * protocols/ace/HTBP/HTBP_Filter.cpp: - Removed unnecessary include. - - * tests/Reactor_Dispatch_Order_Test.cpp: - LynxOS 3.x needs the same special handling as OpenBSD to - pass this test. - -Sat Dec 11 17:38:12 UTC 2004 Johnny Willemsen - - * ace/Atomic_Op_T.h: - Fixed incorrect method declarations and not needed ACE_INLINE - -Sat Dec 11 17:26:09 2004 Balachandran Natarajan - - * bin/tao_other_tests.lst: - - Added a new test to the daily builds. - -Sat Dec 11 10:39:38 2004 Douglas C. Schmidt - - * ace/{Atomic_Op.h,Atomic_Op_T.h,Atomic_Op_T.inl,Atomic_Op_T.inl} - (operator=): Updated the ACE_Atomic_Op so that it allows - "chained assignments." Thanks to Michael Altmann for these fixes. - -Sat Dec 11 09:53:12 UTC 2004 Johnny Willemsen - - * ace/Task.cpp: - Minor borland fix - -Fri Dec 10 18:40:29 2004 Steve Huston - - * tests/Reactor_Exceptions_Test.cpp: Force the ACE_SOCK_Dgram to all - its work with IPv4. Allows this test to run clean on IPv6 systems - as well as IPv4. - -Fri Dec 10 23:06:24 UTC 2004 Don Hinton - - * Kokyu/tests/DSRT_MIF/MIF.cpp: - Changed barrier to bar because barrier() is a macro. - -Fri Dec 10 12:13:12 UTC 2004 Johnny Willemsen - - * ace/Logging_Strategy.cpp: - Changed the setting of the ostream on the log_msg. Only at the - moment the logging strategy has created a new ostream, then we - pass 1, to indicate that the log_msg must delete the ostream. - This fixes the crash of this test on all windows platforms. - -Fri Dec 10 11:15:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Removed usage of taoconfig.mk, we have zapped this in the idea - that it was not used. All the things this file set are already - handled by MPC - -Fri Dec 10 09:52:12 UTC 2004 Johnny Willemsen - - * ace/Strategies_T.{h,cpp,inl}: - Made ACE_DLL_Strategy usable in unicode builds. Thanks to - Thomas Girard - for reporting this. This fixed bugzilla [2005] - -Fri Dec 10 08:55:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - Added description about Interix (Windows Services for Unix). - Thanks to Steven Frare for adding - this. - -Thu Dec 9 14:04:12 2004 Steve Huston - - * ACE-INSTALL.html: Clarified that there is no leading '#' character - for the 'include' statement in platform_macros.GNU. Thanks to - Dave Dalapati for this suggestion. - - * THANKS: Added Dave Dalapati to the Hall of Fame. - -Tue Dec 7 18:24:06 2004 Jeff Parsons - - * bin/tao_other_tests.lst: - - Added all 5 tests in TAO/orbsvcs/tests/InterfaceRepo to the list. - All these tests are disabled for minimum CORBA builds. - -Tue Dec 7 18:48:39 2004 Steve Huston - - * bin/Makefile.am: Comment out the TESTS for now. The auto_run_tests.pl - depends on having the tests built in the same tree as the sources. - - * tests/Makefile.am: Change TESTS to a list of all the test programs - and TEST_ENVIRONMENT to an invocation of "run_test.pl -t" to enable - it to run each test separately. - -Tue Dec 7 18:38:19 2004 Steve Huston - - * m4/aio.m4: In the check for POSIX Realtime signals, do the - #include first, enclosed in extern "C", else HP-UX - gets a bad definition for an internal function call (___sysconf()). - -Tue Dec 7 17:48:21 2004 Steve Huston - - * examples/APG/ThreadManagement/Priorities.cpp: Fixed message block - handling logic errors. Can't just queue the same block to - multiple tasks, especially those in different threads. Now it - clones the block for each putq(), and queues a MB_BREAK block - when it's done so the service threads know to stop. Thanks to - Steven Patrick for reporting this problem. - - Fixes Bugzilla #2002 - (http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2002) - -Tue Dec 7 13:10:08 2004 Douglas C. Schmidt - - * ace/Logging_Strategy.cpp (init): Make sure that the dynamically - allocated ostream is deleted on shutdown. Thanks to Zvika - Ashani for reporting this. - -Tue Dec 7 08:19:12 UTC 2004 Johnny Willemsen - - * bin/GNUmakefile.clone: - Removed this file because clone.cpp has been zapped - -Mon Dec 6 18:16:39 2004 Steve Huston - - * m4/config_h.m4: Added AH_TEMPLATE for ACE_HAS_POSIX_REALTIME_SIGNALS. - - * m4/aio.m4: Split the realtime-signals check out of the AIO - functionality check. If the basic AIO calls are available and - functional, then check if the signal-based AIO test works. If so, - set ACE_HAS_POSIX_REALTIME_SIGNALS. - - * tests/Makefile.am: Include the run_test.pl script in TESTS and - note it as a dist_check_SCRIPTS, not noinst_SCRIPTS. This lets - "make check" run it. - - * tests/run_test.pl: Add $top_srcdir to the path for locating - Perl auxiliary modules. For automake builds, this is needed since - the script isn't linked into the build tree. - -Mon Dec 6 16:34:29 2004 Steve Huston - - * ACE-INSTALL.html: Removed mention and instructions for the 'clone' - program. Favor use of bin/create_ace_build.pl since it is more - reliable, simpler, doesn't rely on Makefile content that's not - there, and doesn't need to be built first. - - * bin/clone.1: - * bin/clone.cpp: Removed; this program has been superseded by the - bin/create_ace_build.pl script. See ACE-INSTALL.html for details. - - Thanks to Neil Cohen for bringing this up. - -Mon Dec 6 10:46:02 2004 Chad Elliott - - * examples/APG/Threads/Guards.cpp: - - Put #if guards around the body to avoid build problems when - threads are disabled. - -Mon Dec 6 06:53:43 2004 Chad Elliott - - * apps/soreduce/SO_Group.cpp: - - Increase the number of libraries that soreduce can handle. - -Mon Dec 06 11:34:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-mingw.h: - Added ACE_LACKS_SIGSET_DEFINITIONS - -Mon Dec 06 10:49:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-mingw.h: - Undef ACE_LACKS_SIGSET, MinGW has sigset but this define is set - from config-win32-common.h - -Mon Dec 06 10:06:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-interix.h: - Fixed fuzz errors - -Mon Dec 06 09:29:12 UTC 2004 Johnny Willemsen - - * ace/os_include/os_signal.h: - Added patch for Interix and removed not needed MinGW check - - * ace/Sock_Connect.cpp: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/SOCK_Dgram_Mcast.cpp: - Applied patches for the Interix port. Thanks to - Steven Frare for the patches. - -Mon Dec 06 09:06:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-interix.h: - * include/makeinclude/platform_win32_interix.GNU: - New files for Interix (Microsoft Services for Unix). Thanks to - Steven Frare for these new files - -Sun Dec 05 16:44:00 2004 Balachandran Natarajan - - * ace/Select_Reactor_T.cpp (dispatch_notification_handlers): - - Decrement the number_of_active_handles after a successful - dispatch. This seems to cause Reactor_Notify_Test to fail on - Win32. The reason why this does not show up in *nix is left as - an exercise to the reader! Thanks to Steve Huston for alerting - us about this issue. - -Sat Dec 4 20:39:20 2004 Douglas C. Schmidt - - * THANKS: Added the 1,900th contributor to the THANKS file!! - -Sun Dec 5 14:49:57 2004 Balachandran Natarajan - - * tests/TP_Reactor_Test.cpp: - - The test creates some listeners in the one button test, if that - exceeds SOMAXCONN the test fails. We now reset the number of - senders in the test to SOMAXCONN if they exceed - SOMAXCONN. Thanks to Frare Steven for - the patch. - -Fri Dec 3 07:37:38 2004 J.T. Conklin - - * MakeProjectCreator/config/dsnotifylogadmin_serv.mpb: - - Changed to inherit from notification_serv. - -Fri Dec 3 12:54:12 UTC 2004 Martin Corino - - * ace/config-vxworks5.x.h: - Added _GLIBCPP_USE_LONG_LONG for GCC 3.3+ since it is not defined - by the compiler itself. This solves problems with long long support - in standard C++ includes. - -Fri Dec 3 11:50:12 UTC 2004 Johnny Willemsen - - * ace/Timeprobe_T.cpp: - Fixed casing in include - -Thu Dec 2 13:38:33 2004 Chad Elliott - - * apps/soreduce/Library.h: - * apps/soreduce/Library.cpp: - * apps/soreduce/README: - - Modified soreduce to output mpc files instead of makefiles. - -Thu Dec 2 11:09:07 2004 J.T. Conklin - - * apps/gperf/tests/Makefile.am: - - Revert my previous change. Fixed orignal problem by putting the - stamp file in the same directory as the output file. Thanks to - Chad Elliott for letting me know that the gperf options for the - two invocations of gperf on idl.gperf were different. - -Thu Dec 2 16:42:12 UTC 2004 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Added explicit 'signed-char' flags for ppc and arm builds. - -Thu Dec 2 11:08:29 2004 Steve Huston - - * examples/APG/Threads/Guards.cpp: Fixed "unused parameter" warning. - -Thu Dec 2 15:06:12 UTC 2004 Martin Corino - - * ace/Timeprobe_T.cpp: - Fixed another compile problem (missing include for ACE_OS::memcpy). - -Thu Dec 2 14:26:12 UTC 2004 Martin Corino - - * ace/Timeprobe_T.cpp: - Fixed error in ACE_Timeprobe_Ex<>::print_absolute_times() where ACE_hrtime_t - was incorrectly assumed to be a structure/class (it's an integer type). - -Thu Dec 2 09:45:12 UTC 2004 Johnny Willemsen - - * bin/PerlACE/ConfigList.pm: - Remove trailing white spaces from entry after the split. Interix - perl had problems with this. Thanks to Steven Frare - for reporting this and J.T. Conklin for - simplifying the patch. - -Thu Dec 2 09:11:12 UTC 2004 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Recommitting because file seemed screwed up when checking out on - Windows. - -Thu Dec 2 08:32:12 UTC 2004 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Changed template handling to allow implicit template instantiation - with VxWorks GNU toolchain. - -Wed Dec 1 15:01:39 2004 Steve Huston - - * examples/APG/Threads/Guards.cpp: - * examples/APG/Threads/Message_Blocks.cpp: Enabled the code here that - was previously blocked out. Fixed narrow/wide-char spec for a - string to ACE_Log_Msg. Thanks to Johnny Willemsen for pointing - out that none of this code was actually getting compiled. - -Wed Dec 1 08:49:12 UTC 2004 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Fixed linking issues concerning ACE/TAO libraries. - -Tue Nov 30 16:38:08 2004 J.T. Conklin - - * apps/gperf/tests/Makefile.am: - - Changed to only generate idl.cpp from idl.gperf once. The - attempt to generate it twice, the a second time in a different - directory failed because the "stamp" file was the same. - -Tue Nov 30 17:32:29 2004 Steve Huston - - * m4/ace.m4: Added two new options, --enable-pthreads and - --enable-uithreads. These en/dis-able the use of Pthreads and - UI Threads (aka Solaris threads), respectively. Some platforms - (namely AIX) offer a hokey UI Threads that barely functions but - can't be used for any real work. Efforts to detect this and - automatically disable it have been unfruitful, so this option was - added. Pthreads defaults to yes, UI threads defaults to, except on - Solaris where it defaults to yes. - - * m4/threads.m4: Only do Pthreads/UIthreads checks if the corresponding - implementation is enabled by the command line (or default) using - the above new options. - -Tue Nov 30 07:32:18 2004 Chad Elliott - - * apps/gperf/tests/iout2_gen/.empty: - * bin/MakeProjectCreator/templates/gnu.mpd: - - Reverted my previous change as it caused more problems than it - solved. Instead, after much research I've found that VPATH - doesn't work when source files are generated into a directory - other than '.', so I made a directory (iout2_gen) to hold the - generated source (idl.cpp) from the iinset2 gperf test. - -Tue Nov 30 09:51:12 UTC 2004 Martin Corino - - * ace/ACE.inl: - Implemented temporary fix for problems with VxWorks GNU toolchains. - -Mon Nov 29 17:56:39 2004 Steve Huston - - * tests/Test_Output.cpp: Re this change: - Fri Nov 19 18:19:19 2004 Steve Huston - the reinterpret_cast<> breaks some stuff on LynxOS. So only do - reinterpret_cast on ACE_LACKS_IOSTREAM_TOTALLY, else use - dynamic_cast. This should fix LynXOS. Thanks to - Olli Savia for bringing this to my attention. - -Mon Nov 29 14:10:12 2004 Chad Elliott - - * ace/ace.mpc: - - Added a verbatim clause with MPC-ized versions of the original - Svc_Conf_y.cpp and Svc_Conf_l.cpp targets from Makefile.ace. - -Mon Nov 29 13:12:14 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Modified the OBJS setting to allow cpp files that are generated - into a subdirectory below where the mpc file exists. gperf tests - happen to do this now. - -Mon Nov 29 16:07:12 UTC 2004 Martin Corino - - * examples/Web_Crawler/Iterators.cpp: - Minor change to get rid of warning in GCC 2.96 build. - -Mon Nov 29 16:03:12 UTC 2004 Martin Corino - - * ACEXML/common/HttpCharStream.cpp: - Minor change to get rid of warning in GCC 2.96 build. - -Mon Nov 29 15:43:12 UTC 2004 Martin Corino - - * performance-tests/SCTP/Options_Manager.h: - * performance-tests/SCTP/Options_Manager.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_srv.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - Fixed problems with use of iostreams for - ACE_LACKS_IOSTREAM_TOTALLY builds (VxWorks DIAB). - -Mon Nov 29 07:04:58 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Moved the setting of SOVERSION below the include for - wrapper_macros.GNU and enclose it in a if check for versioned_so - to be 1. This allows users to build without versioned shared - libraries. - - Also, fixed a problem with the realclean target. The executable - extension was not added when the installed target was added to the - CLEANUP_INSTALL macro. - - Thanks to Johnny Willemsen for reporting both of these problems. - -Sun Nov 28 22:10:48 2004 J.T. Conklin - - * bin/am_edit: - - Removed old file. MPC-generated Makefile.am's make this script - obsolete. - -Mon Nov 29 07:36:03 2004 Olli Savia - - * apps/JAWS/server/HTTP_Helpers.cpp: - Added "const" qualifiers to silence compile time warnings. - -Sun Nov 28 17:53:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/notify_serv.mpb: - Added etcl and dynamicany as base projects to fix link errors in the - BCB6 Static build - -Sun Nov 28 16:16:12 UTC 2004 Martin Corino - - * ace/config-vxworks5.x.h: - Added ACE_HAS_USING_KEYWORD for DIAB compiler. - -Sun Nov 28 12:26:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_servant.mpb: - Made it possible to overrule the commands for the cidlc compiler, just as - with TAO_IDL. Needed for cross builds like VxWorks - -Sat Nov 27 14:51:12 UTC 2004 Martin Corino - - * bin/MakeProjectCreator/templates/gnu.mpd: - Changed use of 'mkdir -p' to '$(MKDIR)' command for more compatibility. - -Fri Nov 26 19:38:58 2004 J.T. Conklin - - * configure.ac: - * Makefile.am: - - Use AC_SUBST instead of AM_CONDITIONAL for directories that may - be omitted in a distribution. - -Fri Nov 26 17:54:32 2004 J.T. Conklin - - * bin/tao_other_tests.lst: - - Added orbsvcs/test/Log/Basic_Log_Test test to the list. - -Fri Nov 26 18:24:39 2004 Steve Huston - - * ace/OS_NS_Thread.inl (thr_getprio): WinCE doesn't support - GetPriorityClass, so this method will do ENOTSUP on WinCE. - - Also fixed the Friday ChangeLog entries that said it was Nov 25. - -Fri Nov 26 17:46:29 2004 Steve Huston - - * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp: Corrected - wide-char issues. - - * examples/Threads/task_three.cpp: ACE_OSTREAM_TYPE is not always a - class that offers close(). So just delete the object when it's - not needed any longer. Also, remove the reference from ACE_Log_Msg. - -Fri Nov 26 19:12:12 UTC 2004 Martin Corino - - * examples/Threads/task_three.cpp: - Fixed another compile problem. - -Fri Nov 26 16:16:12 UTC 2004 Martin Corino - - * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp: - Fixed compile problems. - -Fri Nov 26 12:00:12 UTC 2004 Martin Corino - - * ace/config-vxworks5.x.h: - Added ACE_HAS_STANDARD_CPP_LIBRARY for DIAB builds. - -Fri Nov 26 11:04:12 UTC 2004 Martin Corino - - * examples/Threads/task_three.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp: - * examples/Logger/Acceptor-server/server_loggerd.cpp: - * examples/Log_Msg/test_log_msg.cpp: - Fixed problems with iostreams for ACE_LACKS_IOSTREAM_TOTALLY builds - (VxWorks DIAB). - -Fri Nov 26 10:26:12 UTC 2004 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run bug_1535_regression when minimum_corba is enabled. - -Fri Nov 26 10:17:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - Removed some old info about os-patches, these are gone already for - some time, also corrected the location of the main define, it is now - in OS_main.h. As last, changed the references to several files from - the site of Doug to the local directory. This because of two reasons, - first there are development teams without internet access (yes, they - still exist in the world), and the site of Doug always gives the - latest version, but when using a certain ACE version I want to have - the documentation of MPC belonging to that version, not with the - current version, which can be something completely different in - a few years. - -Fri Nov 26 08:57:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - Minor updates about Borland and VxWorks versions that are supported - -Thu Nov 25 15:45:38 2004 J.T. Conklin - - * bin/tao_other_tests.lst: - - Added orbsvcs/test/Bug_XXXX_Regression tests to the list. - -Thu Nov 25 18:24:12 UTC 2004 Johnny Willemsen - - * websvcs/tests/Test_URL_Addr.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_Association_Test.cpp: - Use ACE_TMAIN instead of main to fix link errors in the unicode - builds. - -Thu Nov 25 09:25:29 2004 J.T. Conklin - - * bin/tao_other_tests.lst: - - Added FaultTolerance tests to list. - -Thu Nov 25 14:38:12 UTC 2004 Johnny Willemsen - - * examples/APG/Threads/Guards.cpp: - * examples/APG/Threads/Message_Blocks.cpp: - Use ACE_TMAIN instead of main to fix link errors in the unicode - builds. - -Wed Nov 24 17:23:22 2004 Irfan Pyarali - - * ace\Timer_Wheel_T.cpp (expire): - - ACE_Timer_Wheel_T<>::expire() made the upcall before - rescheduling a recurring timer. The problem with this is that - if the upcall code tries to cancel the recurring timer, the - cancel will fail since the timer has not been rescheduled. The - fix is to move the rescheduling code before the upcall code. - Thanks to Domingos Monteiro for reporting - and providing a fix for this bug. - -Wed Nov 24 16:02:21 2004 Steve Huston - - * ace/Asynch_Connector.{h cpp}: Removed the locally-defined - "static ACE_INET_Addr local_default" used for the default - local address on connects. In the lower levels of ACE, the local - address is compared to ACE_Addr::sap_any, and this one didn't - match with IPv6 defined. The default arg is now ACE_Addr::sap_any, - like the other default local addresses, such as ACE_Connector. - - * ace/WIN32_Asynch_IO.cpp: If a ACE_OS::bind() fails, print a message - with the real reason in it, not just "ACE_OS::bind failed". - - * tests/Proactor_Test.cpp: Added a check to see that the test - actually does some data transfer, else it isn't really doing - anything. - -Wed Nov 24 14:40:29 2004 Steve Huston - - * tests/NonBlocking_Conn_Test.cpp (test): Don't leave bogus - ACE_INET_Addr entries in addresses[] if a name lookup fails. - Doing so causes screwups later when each entry is assumed to - have a legit address to form into a string. - -Wed Nov 24 13:32:32 2004 Chad Elliott - - * bin/msvc_static_order.lst: - - Added the remaining CosNotification libraries, Security library - and the ImplRepo_Service projects to ensure that things are built - in the correct order. - -Wed Nov 24 12:24:57 2004 Chad Elliott - - * bin/MakeProjectCreator/config/notification_serv.mpb: - - Added the svc_utils base project. The CosNotification_Serv - library needs it and this should fix static link errors for - Notify_Service. - -Wed Nov 24 09:44:43 2004 Chad Elliott - - * include/makeinclude/platform_hpux_aCC.GNU: - - After conversation with Johnny, I am reverting my previous change. - -Wed Nov 24 09:05:45 2004 Chad Elliott - - * include/makeinclude/platform_hpux_aCC.GNU: - - Suppress warning 1039 about binary incompatibility with 3.33 to - 3.50. - -Wed Nov 24 08:18:51 2004 Chad Elliott - - * apps/gperf/tests/Makefile.am: - * apps/gperf/tests/tests.mpc: - - Generate the gperf generated code into an alternate directory for - the iinset2 project. Since iinset and iinset2 share the same - input file, the correct gperf commandflags weren't being used for - the second project to be processed. - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - - When gendir is used, attempt to automatically make the specified - directory. - -Wed Nov 24 12:00:12 UTC 2004 Johnny Willemsen - - * performance-tests/SCTP/hist.cpp: - * performance-tests/SCTP/Options_Manager.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_srv.cpp: - Replaced NULL with 0 - -Tue Nov 23 20:41:57 2004 Balachandran Natarajan - - * ace/OS_NS_Thread.inl: - - Reverted this change "Tue Nov 23 20:26:51 2004 Balachandran - Natarajan " since this has no scope of - working. I guess the policy stuff itself is a bad thing for - Win32. Let me find out from the original contributor. - -Tue Nov 23 20:26:51 2004 Balachandran Natarajan - - * ace/OS_NS_Thread.inl: - - The previous checkin used ::GetCurrentProcess () to access the - policy which is not right, but the "id" passed in should be - used to maintain the semantics of thr_getprio (). - -Tue Nov 23 14:06:41 2004 Dale Wilson - - * ace/OS_NS_Thread.inl: - Three problems in ACE_OS::thr_getprio on Windows: - 1) GetThreadPriority doesn't fail so the check for errors is - unnecessary. - 2) On the other hand GetPriorityClass may fail. - The check for errors from GetPriortyClass was incorrect. - 3) GetPriorityClass takes a process handle not a thread handle - so it was always failing. - - -Tue Nov 23 10:35:41 2004 Chad Elliott - - * ASNMP/asnmp/address.cpp: - - VxWorks doesn't have h_errno. - -Tue Nov 23 15:33:12 UTC 2004 Martin Corino - - * ace/Auto_Ptr.h: - Added missing auto_ptr(auto_ptr &) constructor. - -Tue Nov 23 15:20:12 UTC 2004 Martin Corino - - * ace/config-vxworks5.x.h: - Fixed auto_ptr config for GNU-G builds. - -Tue Nov 23 07:56:11 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Added support for dynamically determining the includedir. - -Tue Nov 23 07:39:23 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Modified to support the MPC 'version' keyword. If version is set, - then we will set the SOVERSION macro. - -Tue Nov 23 07:30:12 UTC 2004 Johnny Willemsen - - * ace/DLL.cpp: - Fixed compile problems in unicode builds - -Tue Nov 23 00:37:14 2004 Olli Savia - - * examples/APG/ThreadPools/Futures.cpp: - Removed unnecesary type cast in CompletionCallBack::update(). - Replaced NULL with 0 in Manager::shut_down(). - - * examples/Export/dll.cpp: - Added explicit static template member instantiation. - -Mon Nov 22 13:45:05 2004 Chad Elliott - - * bin/GNUmakefile.clone: - - Renamed GNUmakefile to GNUmakefile.clone to avoid being - overwritten when bin.mpc is processed. - - * ACE-INSTALL.html: - - Changed documentation on building clone.cpp to take the above into - account. - -Mon Nov 22 19:33:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - When building with gcc for cygwin the binutils package - must also be installed. - -Mon Nov 22 12:08:27 2004 Ciju John - - * bin/MakeProjectCreator/config/notify.mpb: - Fixed fuzz.pl caught inconsistencies. - -Mon Nov 22 11:58:25 2004 Chad Elliott - - * bin/fuzz.pl: - - Account for multiple whitespace when checking for non-bool return - values on equality/in-equality operators. - -Mon Nov 22 07:44:23 2004 Venkita Subramonian - - * Kokyu/Kokyu_dsrt.{cpp,h}: - - Changed the return type of - DSRT_Dispatcher_Factory::create_dispatcher method from - auto_ptr to DSRT_Dispatcher*. This was causing - build errors with VxWorks5.5.1_PPC85XX_GCC3.3. Thanks to Johnny - Willemsen (jwillemsen@remedy.nl) for pointing this out. - - * Kokyu/Kokyu.h: - - Changed some documentation. - -Sun Nov 21 10:34:42 2004 Douglas C. Schmidt - - * ace/Message_Queue_T.h: Changed the access control specifier - of ACE_Message_Queue_Ex::queue_ from private to protected to - enabled subclasses to access it. Thanks to Nuno Silva - for this suggestion. This change fixes - bugid 1984. - -Sat Nov 20 18:12:55 UTC 2004 Balachandran Natarajan - - * ace/OS_NS_Thread.inl: - - Fixes for thr_getprio () on Win32. Thanks to Abhi for motivating this fix. - -Sat Nov 20 07:40:48 2004 Carlos O'Ryan - - * ace/DLL.cpp: - Doug needs to write 500 times on the board "I will not commit - before compiling." Missing a value in a return statement from a - function returning int. - -Fri Nov 19 14:42:00 2004 Krishnakumar B - - * ACEXML/common/NamespaceSupport.cpp: - * ACEXML/parser/parser/Parser.cpp: - - Fixes to namespace support in ACEXML. Thanks to Weida Ma - for the patches. - - * ACEXML/examples/SAXPrint/broken.xml: - - broken.xml should be broken. Added some errors to make this - file invalid. - - * ACEXML/examples/SAXPrint/main.cpp: - - Repeat the parsing twice to make sure that we catch any leaks or - memory corruption due to code paths that are not always - exercised. - -Fri Nov 19 18:19:19 2004 Steve Huston - - * ace/os_include/os_errno.h: Add EPERM for Win32 that doesn't have - it. For example, WinCE. - - * tests/Test_Output.cpp (ACE_Test_Output::output_file()): Use - reinterpret_cast, not dynamic_cast, to convert the OFSTREAM - pointer. dynamic_cast isn't valid where OFSTREAM is a void*, - like on WinCE. - - * tests/HTBP/Reactor_Tests/server.cpp: - * tests/HTBP/ping/server.cpp: Use ACE_TMAIN, not main() to pick up - proper signature on WinCE. Also corrected narrow/wide-char issues. - -Fri Nov 19 16:03:31 2004 Douglas C. Schmidt - - * ace/DLL.cpp: Cleaned up the code a bit since it was messy - and improved the documentation to clarify the role of - "close_handle_on_destruction". Also fixed a bug in - ACE_DLL::close() since it wasn't guarding against multiple - calls, i.e., one explicit and one implicit via the - destructor. Thanks to Russell Mora - for motivating these fixes. - -Mon Oct 18 13:02:11 2004 Dale Wilson - - * bin/MakeProjectCreator/config/notify.mpb: - missing file from merge. - -Wed Oct 13 15:44:58 2004 Dale Wilson - - * bin/MakeProjectCreator/config/notify_serv.mpb: - missing file from merge. - -Fri Nov 19 13:13:00 2004 Gary Maxey - - * ace/README - - Documented new ACE Portability Macros - -Fri Nov 19 10:17:00 2004 Gary Maxey - - * ace/ACE.inl: - - Use ::recv() instead of ::read() on Tandem NSK platform - because it is faster. - - * ace/OS_NS_sys_socket.inl - - In ACE_OS::sendv, when ACE_HAS_SOCK_BUF_SIZE_MAX, avoid writing - more than system allows. - - * ace/config-tandem-nsk-mips-v2.h - * ace/config-tandem-nsk-mips-v3.h - - Updated ACE_HAS_SOCK_BUF_SIZE_MAX define - -Fri Nov 19 09:55:35 2004 Venkita Subramonian - - * Kokyu/Kokyu.{h,cpp}: - - Changed the return type of Dispatcher_Factory::create_dispatcher - method from auto_ptr to Dispatcher*. This was - causing build errors in some beta compilers and warnings in - MSVC6, Tru64 and OpenVMS compilers. It looks like these - compilers are broken in terms of auto_ptr implementation, - specifically returning auto_ptr types from - functions/methods. Thanks to Johnny Willemsen - (jwillemsen@remedy.nl) for pointing this out. - - -Fri Nov 19 07:33:33 2004 Chad Elliott - - * examples/APG/Logging/Trace.h: - * examples/APG/Logging/Trace_Return.cpp: - * examples/APG/Logging/Wrap_Macros.cpp: - - Fixed more VxWorks related build errors. Apparently, the g++ 2.96 - that comes with VxWorks can't handle ... in a macro parameter list - (however g++ 2.96 on linux can). - -Fri Nov 19 06:55:32 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bor.mpd: - - If there is no exe or lib target, don't include one of the *.bor - from include/makeinclude and create a dummy 'all' target. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added $(EXEEXT) to the end of the TAO_IDL_DEP assignment to - support windows builds. - -Fri Nov 19 09:48:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Only generate CPPDIR and CDIR when cppdir is defined, this fixes - build problems when a project is tried to build without source - code - -Fri Nov 19 09:35:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-common.h: - Added define ACE_LACKS_PWD_FUNCTIONS, Win32 doesn't have this also, - and by setting this define we don't need to explicitly check for - win32 anymore when we use this macro. - - * ace/OS_NS_pwd.inl: - Simplified some checks, just check for ACE_LACKS_PWD_FUNCTIONS - and not also for ACE_WIN32 - - * examples/APG/Processes/Spawn.cpp: - Just check for ACE_LACKS_PWD_FUNCTIONS - -Thu Nov 17 15:55:00 2004 Gary Maxey - - * bin/PerlACE/Process_Unix.pm - - Add logic for "nonstop_kernel" platform quirks - - * bin/PerlACE/Run_Test.pm - - Define "wait_interval_for_process_creation" variable - to allow for per-platform customization. - -Thu Nov 18 19:22:12 UTC 2004 Johnny Willemsen - - * examples/APG/Processes/Spawn.cpp: - Don't call setUserId when ACE_WIN32 and ACE_LACKS_PWD_FUNCTIONS are - not set, then this method is just not there. - -Thu Nov 18 11:52:19 2004 Chad Elliott - - * bin/MakeProjectCreator/config/ciao_servant.mpb: - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - * bin/MakeProjectCreator/config/psdl.mpb: - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - - Changed these base projects to use 'dependent' in the new manner - where it represents the command upon which the generated files are - dependent. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Changed to use TAO_IDL_DEP as the dependency for the idl generated - files. - - * bin/MakeProjectCreator/config/trading_serv.mpb: - * bin/MakeProjectCreator/config/trading_skel.mpb: - - Renamed these mpc files to mpb files. The mpc extension works, - it's just a matter of consistency. - -Thu Nov 18 16:31:12 UTC 2004 Johnny Willemsen - - * protocols/protocols.mwc: - Added missing Id tag - -Thu Nov 18 09:35:01 2004 Chad Elliott - - * examples/APG/Processes/Spawn.cpp: - * examples/APG/ThreadManagement/Priorities.cpp: - - Fixed build problems with VxWorks specific code. - -Thu Nov 18 14:42:12 UTC 2004 Martin Corino - - * ace/OS_NS_Thread.inl: - Fixed unused arg warning. - -Thu Nov 18 14:38:12 UTC 2004 Martin Corino - - * ace/Semaphore.cpp: - Change to improve support for platforms missing shmopen(). - -Thu Nov 18 14:35:12 UTC 2004 Martin Corino - - * ace/config-cygwin32.h: - Changed some defines to improve Cygwin build. - -Thu Nov 18 07:38:34 2004 Chad Elliott - - * ace/Service_Config.cpp: - - Distinguish between the existence of and the file permissions - for the default service configurator file (svc.conf). Thanks to - Dipa Suri and Adam Howell - for reporting this. - -Thu Nov 18 07:10:26 2004 Chad Elliott - - * examples/Logger/Acceptor-server/Logger_Acceptor_Server.mpc: - * examples/Logger/client/Logger_client.mpc: - * examples/Logger/simple-server/Logger_Simple_Server.mpc: - - Added exename settings to these. They use ACE_MAIN, but that's no - longer recognized by MPC as an exe entry point. - - * performance-tests/Synch-Benchmarks/Base_Test/Synch_Benchmarks_Base_Test.mpc: - * performance-tests/Synch-Benchmarks/Perf_Test/Synch_Benchmarks_Perf_Test.mpc: - - Changed these library projects to inherit from acelib instead of - aceexe. - - * protocols/protocols.mwc: - - Added a default workspace so that msvc_mpc_auto_compile.pl can - find the HTBP (and future libraries). - -Thu Nov 18 06:48:28 2004 Chad Elliott - - * bin/envinfo.cpp: - - Added #include "ace/OS_NS_sys_utsname.h" to get ACE_utsname. - -Thu Nov 18 12:36:12 UTC 2004 Johnny Willemsen - - * examples/Threads/task_three.cpp: - Changed ACE cast macros with the c++ versions - -Wed Nov 17 18:37:12 UTC 2004 Martin Corino - - * tests/test_config.h: - Added include of OS_NS_fcntl.h needed for VxWorks build. - -Wed Nov 17 08:53:11 2004 J.T. Conklin - - * ace/Makefile.am: - - Updated. - - * ace/ace.mpc: - - Added Memory_Pool.h to Header_Files. - - * Makefile.am: - * configure.ac: - - Changed to configure/build ACEXML only if --with-acexml (the - default) was specified. - -Tue Nov 16 07:09:12 UTC 2004 Johnny Willemsen - - * ace/RB_Tree.cpp: - In ACE_RB_Tree_Iterator_Base constructor initialise entry local - variable with 0, so that when find_i doesn't find anything we don't - set the node_ to an unitialised value. Thanks to Andreas Koehler - for reporting this. - -Sun Nov 14 10:12:00 2004 J.T. Conklin - - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - * Kokyu/Makefile.am: - * ace/Makefile.am: - * ace/QoS/Makefile.am: - * ace/RMCast/Makefile.am: - * ace/SSL/Makefile.am: - * ace/TMCast/Makefile.am: - * protocols/ace/HTBP/Makefile.am: - - Restored LDFLAGS definition. - -Sun Nov 14 05:03:47 2004 Balachandran Natarajan - - * bin/tao_orb_tests.lst: - - Added a new test for the daily regression. - -Sat Nov 13 14:34:33 2004 J.T. Conklin - - * configure.ac: - - Split Kokyu directories out of monolithic AC_CONFIG_FILES list, - into a separate, smaller, AC_CONFIG_FILES that is used only if - the Kokyu subdirectory exists. This pattern can be used for - other subdirectories (ACEXML, ASNMP, etc.) to provide flexibilty - for packaging and compile-time configuration. - -Sat Nov 13 10:40:13 2004 J.T. Conklin - - * configure.ac: - - Removed line with m4_include([configure.ac.Makefiles]), - autoreconf barfs with it present, even though it was - "commented out" with dnl... - - * apps/gperf/tests/Makefile.am: - - Tweak to work around MPC brokenness. - -Fri Nov 12 20:54:14 2004 J.T. Conklin - - * Makefile.am: - - Restore conditionalized SUBDIR definition for Kokyu and TAO. - Restore bin_SCRIPT and man_MANS definitions so the ace-config - script and manpage is installed. - - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - * ace/Makefile.am: - * ace/QoS/Makefile.am: - * ace/RMCast/Makefile.am: - * ace/SSL/Makefile.am: - * ace/TMCast/Makefile.am: - * protocols/ace/HTBP/Makefile.am: - - Restore includedir definitions so headers are installed in the - correct place. - -Fri Nov 12 16:35:00 2004 Gary Maxey - - * ace/config-tandem-nsk-mips-v2.h - - Updated for compatibility with latest repository changes - - * ace/config-tandem-nsk-mips-v3.h - - Added for new compiler version - -Fri Nov 12 18:30:19 2004 Steve Huston - - * tests/Makefile.am: Moved HTBP down under '.' to make sure - libTest_Output is built first. - -Fri Nov 12 17:23:41 2004 Steve Huston - - * bin/bin.mpc: - * bin/PerlACE/perlace.mpc: These are meant to propagate the - testing scripts over to the build area for automake builds. - - * bin/auto_run_tests.pl: When no test-set options are supplied, add - in the TAO test lists only if there is an $ACE_ROOT/TAO directory. - Facilitates being able to use this script without options from - the automake-generated "make check" command. - - * configure.ac: Updated with the list of Makefiles below. - - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/apps/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/examples/SAXPrint/Makefile.am: - * ACEXML/examples/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - * ACEXML/parser/Makefile.am: - * ACEXML/tests/Makefile.am: - * ACEXML/Makefile.am: - * ASNMP/agent/Makefile.am: - * ASNMP/asnmp/Makefile.am: - * ASNMP/examples/get/Makefile.am: - * ASNMP/examples/next/Makefile.am: - * ASNMP/examples/set/Makefile.am: - * ASNMP/examples/trap/Makefile.am: - * ASNMP/examples/walk/Makefile.am: - * ASNMP/examples/Makefile.am: - * ASNMP/tests/Makefile.am: - * ASNMP/Makefile.am: - * ace/Makefile.am: - * ace/QoS/Makefile.am: - * ace/RMCast/Makefile.am: - * ace/SSL/Makefile.am: - * ace/TMCast/Makefile.am: - * apps/JAWS/Makefile.am: - * apps/JAWS/clients/Blobby/Makefile.am: - * apps/JAWS/clients/Makefile.am: - * apps/JAWS/clients/Caching/Makefile.am: - * apps/JAWS/server/Makefile.am: - * apps/Makefile.am: - * apps/Gateway/Gateway/Makefile.am: - * apps/Gateway/Makefile.am: - * apps/Gateway/Peer/Makefile.am: - * apps/JAWS3/jaws3/Makefile.am: - * apps/JAWS3/Makefile.am: - * apps/drwho/Makefile.am: - * apps/gperf/src/Makefile.am: - * apps/gperf/Makefile.am: - * apps/gperf/tests/Makefile.am: - * apps/mkcsregdb/Makefile.am: - * apps/soreduce/Makefile.am: - * bin/Makefile.am: - * bin/PerlACE/Makefile.am: - * examples/APG/Active_Objects/Makefile.am: - * examples/APG/Config/Makefile.am: - * examples/APG/Containers/Makefile.am: - * examples/APG/Logging/Makefile.am: - * examples/APG/Misc_IPC/Makefile.am: - * examples/APG/Naming/Makefile.am: - * examples/APG/Proactor/Makefile.am: - * examples/APG/Processes/Makefile.am: - * examples/APG/Reactor/Makefile.am: - * examples/APG/Shared_Memory/Makefile.am: - * examples/APG/Signals/Makefile.am: - * examples/APG/Sockets/Makefile.am: - * examples/APG/Streams/Makefile.am: - * examples/APG/Svc_Config/Makefile.am: - * examples/APG/ThreadManagement/Makefile.am: - * examples/APG/ThreadPools/Makefile.am: - * examples/APG/ThreadSafety/Makefile.am: - * examples/APG/Threads/Makefile.am: - * examples/APG/Timers/Makefile.am: - * examples/APG/Makefile.am: - * examples/ASX/CCM_App/Makefile.am: - * examples/ASX/Makefile.am: - * examples/ASX/Message_Queue/Makefile.am: - * examples/Bounded_Packet_Relay/Makefile.am: - * examples/C++NPv1/Makefile.am: - * examples/C++NPv2/Makefile.am: - * examples/Makefile.am: - * examples/Connection/blocking/Makefile.am: - * examples/Connection/Makefile.am: - * examples/Connection/misc/Makefile.am: - * examples/Connection/non_blocking/Makefile.am: - * examples/DLL/Makefile.am: - * examples/Export/Makefile.am: - * examples/IOStream/client/Makefile.am: - * examples/IOStream/Makefile.am: - * examples/IOStream/server/Makefile.am: - * examples/IPC_SAP/ATM_SAP/Makefile.am: - * examples/IPC_SAP/Makefile.am: - * examples/IPC_SAP/DEV_SAP/reader/Makefile.am: - * examples/IPC_SAP/DEV_SAP/Makefile.am: - * examples/IPC_SAP/DEV_SAP/writer/Makefile.am: - * examples/IPC_SAP/FIFO_SAP/Makefile.am: - * examples/IPC_SAP/FILE_SAP/Makefile.am: - * examples/IPC_SAP/SOCK_SAP/Makefile.am: - * examples/IPC_SAP/SPIPE_SAP/Makefile.am: - * examples/IPC_SAP/SSL_SAP/Makefile.am: - * examples/IPC_SAP/TLI_SAP/Makefile.am: - * examples/IPC_SAP/UPIPE_SAP/Makefile.am: - * examples/Log_Msg/Makefile.am: - * examples/Logger/Acceptor-server/Makefile.am: - * examples/Logger/client/Makefile.am: - * examples/Logger/simple-server/Makefile.am: - * examples/Logger/Makefile.am: - * examples/Mem_Map/IO-tests/Makefile.am: - * examples/Mem_Map/Makefile.am: - * examples/Mem_Map/file-reverse/Makefile.am: - * examples/Misc/Makefile.am: - * examples/NT_Service/Makefile.am: - * examples/Naming/Makefile.am: - * examples/OS/Process/Makefile.am: - * examples/OS/Makefile.am: - * examples/QOS/Diffserv/Makefile.am: - * examples/QOS/Makefile.am: - * examples/QOS/Change_Receiver_FlowSpec/Makefile.am: - * examples/QOS/Change_Sender_TSpec/Makefile.am: - * examples/QOS/Simple/Makefile.am: - * examples/RMCast/Send_File/Makefile.am: - * examples/RMCast/Makefile.am: - * examples/Reactor/Dgram/Makefile.am: - * examples/Reactor/Makefile.am: - * examples/Reactor/FIFO/Makefile.am: - * examples/Reactor/Misc/Makefile.am: - * examples/Reactor/Multicast/Makefile.am: - * examples/Reactor/Ntalker/Makefile.am: - * examples/Reactor/Proactor/Makefile.am: - * examples/Reactor/WFMO_Reactor/Makefile.am: - * examples/Registry/Makefile.am: - * examples/Service_Configurator/IPC-tests/client/Makefile.am: - * examples/Service_Configurator/IPC-tests/Makefile.am: - * examples/Service_Configurator/IPC-tests/server/Makefile.am: - * examples/Service_Configurator/Makefile.am: - * examples/Service_Configurator/Misc/Makefile.am: - * examples/Shared_Malloc/Makefile.am: - * examples/Shared_Memory/Makefile.am: - * examples/Smart_Pointers/Makefile.am: - * examples/Synch/Makefile.am: - * examples/System_V_IPC/SV_Semaphores/Makefile.am: - * examples/System_V_IPC/SV_Message_Queues/Makefile.am: - * examples/System_V_IPC/Makefile.am: - * examples/TMCast/Member/Makefile.am: - * examples/TMCast/Makefile.am: - * examples/Threads/Makefile.am: - * examples/Timer_Queue/Makefile.am: - * examples/Web_Crawler/Makefile.am: - * netsvcs/clients/Logger/Makefile.am: - * netsvcs/clients/Makefile.am: - * netsvcs/clients/Naming/Client/Makefile.am: - * netsvcs/clients/Naming/Makefile.am: - * netsvcs/clients/Naming/Dump_Restore/Makefile.am: - * netsvcs/Makefile.am: - * netsvcs/lib/Makefile.am: - * netsvcs/servers/Makefile.am: - * performance-tests/Misc/Makefile.am: - * performance-tests/SCTP/Makefile.am: - * performance-tests/Server_Concurrency/Leader_Follower/Makefile.am: - * performance-tests/Server_Concurrency/Queue_Based_Workers/Makefile.am: - * performance-tests/Server_Concurrency/Makefile.am: - * performance-tests/Synch-Benchmarks/Base_Test/Makefile.am: - * performance-tests/Synch-Benchmarks/Makefile.am: - * performance-tests/Synch-Benchmarks/Perf_Test/Makefile.am: - * performance-tests/Synch-Benchmarks/Synch_Lib/Makefile.am: - * performance-tests/TCP/Makefile.am: - * performance-tests/UDP/Makefile.am: - * performance-tests/Makefile.am: - * tests/Makefile.am: - * tests/SSL/Makefile.am: - * tests/RMCast/Makefile.am: - * tests/HTBP/Reactor_Tests/Makefile.am: - * tests/HTBP/Send_Large_Msg/Makefile.am: - * tests/HTBP/Send_Recv_Tests/Makefile.am: - * tests/HTBP/ping/Makefile.am: - * tests/HTBP/Makefile.am: - * websvcs/lib/Makefile.am: - * websvcs/Makefile.am: - * websvcs/tests/Makefile.am: - * Makefile.am: - * protocols/ace/HTBP/Makefile.am: - * protocols/ace/Makefile.am: - * protocols/Makefile.am: - Either updated or new automake files. These were all generated with - MPC and checked in. A number will require further tweaks to be - useable for installing an autoconfigure'd ACE. At some point, we - may work on the MPC extensions needed to completely automate the - Makefile.am file generation, but at this point, those changes are - only useful for automake build targets. - -Sat Nov 13 23:49:57 2004 Kobi Cohen-Arazi - - * tests/Test_Output.cpp (ACE_Test_Output::close): - Added delete of the stream and setting msg_ostream to 0. That way - when re-initing the stream, it will be recreated. - -Fri Nov 12 09:10:28 2004 Chad Elliott - - * ace/config-integritySCA.h: - * include/makeinclude/platform_integrity_ghs.GNU: - - Merged in changes from TAO 1.3a. - -Fri Nov 12 09:48:22 2004 Steve Huston - - * ace/ACE.cpp (terminate_process): Return 0 for success (not 1) and - -1 for failure (not 0). Thanks to Russell Mora for this fix. - -Fri Nov 12 06:33:02 2004 Chad Elliott - - * ace/OS_NS_Thread.cpp: - - Removed a duplicated #elif clause. - -Fri Nov 11 12:29:12 UTC 2004 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - * bin/MakeProjectCreator/templates/gnu.mpd: - * ace/config-vxworks5.x.h: - More changes to accommodate VxWorks 5.5.1 builds. - -Thu Nov 11 19:05:45 2004 Krishnakumar B - - * bin/MakeProjectCreator/config/ciao_component_dnc.mpb (project): - Added a dependency from ciao_component_dnc to - ciao_deployment_stub to resolve errors in building examples - based on DAnCE framework. - -Thu Nov 11 15:56:00 2004 Gary Maxey - - * ace/OS_NS_time.h - Add typedef for ACE_hrtime_t for Tandem platform. - Add conversion defines needed by High_Res_Timer.cpp. - - * ace/High_Res_Timer.cpp - Use macro definition for time difference calculation in - ACE_High_Res_Timer::calibrate. - - * ace/OS_NS_sys_select.inl - - Use spt_select instead of select for Tandem pthreads. - - * ace/os_include/os_pthread.h - * ace/OS_NS_Thread.cpp - * ace/Sched_Params.cpp - - Add clause to existing ifdef for Tandem pthreads process - priority definitions. - - * ace/CDR_Base.h - - Use LongLong typedef specialized for Tandem platform. - - * ace/Basic_Types.cpp - - For Tandem platform, altered initialization of flags - variable in "operator<<" method. - - * ace/ACE_Export.h - - Added variation for "#define ACE_NAMESPACE_STORAGE_CLASS" - for Tandem platform compiler. - -Thu Nov 11 17:27:24 2004 Kobi Cohen-Arazi - - * ace/Logging_Strategy.cpp: - Fixed handle_timeout conditional test to check the max_size - against the size of the file and not the value of a pointer. Fix - init to handle re-init correctly. When wipeout_logfile_ is true, - than close the file and reopen it truncated, when wipeout_logfile_ - is false, don't reopen the file unless its not open already. - -Thu Nov 11 08:34:12 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added HTPB library so that this lib is build first in a static - msvc build - -Wed Nov 10 12:42:45 2004 Chad Elliott - - * ace/OS_Errno.h: - * ace/OS_Errno.cpp: - - Do not inline this code if building with debug enabled using gcc - on Solaris. If it is inlined, it can cause deadlocks during - static initialization. - - * bin/MakeProjectCreator/config/rtscheduling.mpb: - - The TAO_RTScheduler library links in the TAO_PortableServer - library, so this base project needs the portableserver base - project. - - * tests/Priority_Task_Test.cpp: - - Print out an informational message if we are unable to change - priority due to user privileges instead of an error. - - - Applying the following changes from Trevor Fields - (fields_t@ociweb.com): - - Mon Oct 25 12:12:14 MST 2004 Trevor Fields - - * ace/Service_Repository.h: - * ace/Service_Repository.i: - * ace/Service_Repository.cpp: - - Changed the lock from an ACE_Thread_Mutex to an - ACE_Recursive_Thread_Mutex. This was done to stop the - deadlock from occuring on Solaris with gcc (>3) non-optimized - builds. - The problem is that the dynamic library loading is being done - according to the link line, every time a variable is looked up. - This results in loading a new library while holding the Service - Repository lock resulting in a single threaded deadlock. - The problem manifests itself in executables that deadlock before - reaching main(). The ImR_Activator is one of the programs that - currently is broken by this problem. - - Wed Sep 1 13:23:44 MST 2004 Trevor Fields - - * ace/Service_Repository.cpp: - Changed the insert method to delete a replaced service - after releasing the lock. This was done to prevent - deadlocks that were occuring on solaris with gcc > 3.2.1 - in the debug mode. - -Wed Nov 10 16:42:12 UTC 2004 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - New platform configuration for VxWorks >= 5.5.1. - This new file (should) work(s) for both the GNU and DIAB toolchains on - any host for any target:-) - -Wed Nov 10 16:38:12 UTC 2004 Martin Corino - - * ace/config-vxworks5.x.h: - Added template specialization macros for DIAB builds. - -Wed Nov 10 16:35:12 UTC 2004 Martin Corino - - * bin/MakeProjectCreator/templates/gnu.mpd: - * include/makeinclude/rules.local.GNU: - * include/makeinclude/wrapper_macros.GNU: - Introduced use of ACE_MKDIR and MKDIR variables to better support - VxWorks 5.5.1 builds. - -Wed Nov 10 07:10:12 2004 Chad Elliott - - * ASNMP/asnmp/enttraps.h: - * ASNMP/asnmp/smival.h: - - Get rid of warnings from both aCC and Borland. - -Wed Nov 10 13:04:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-mingw.h: - Added format specifiers for INT64 and UINT64. - -Tue Nov 9 11:53:39 PST 2004 Dave Craig - - * ace/Multihomed_INET_Addr.cpp: - * ace/Multihomed_INET_Addr.h: - * tests/SOCK_SEQPACK_SCTP_Test.cpp: - Add WCHAR support to ACE_Multihomed_INET_Addr, so - SOCK_SEQPACK_SCTP_Test will not fail to build when passing a wchar_t - argument on platforms that define ACE_USES_WCHAR. - - Add Qualcomm disclaimer to SOCK_SEQPACK_SCTP_Test. - - Note, there's still one more check-in to make SOCK_SEQPACK_SCTP_Test - a shell of a executable on platforms that do not define ACE_HAS_SCTP. - -Tue Nov 9 09:39:09 2004 Chad Elliott - - * bin/tao_other_tests.lst: - - The ImR/Combined_Service example will not run on single threaded - builds. - -Tue Nov 9 09:07:26 2004 Olli Savia - - * examples/Web_Crawler/Command_Processor.cpp: - Added explicit static template member instantiations. - -Mon Nov 8 13:30:47 2004 Chad Elliott - - * tests/OS_Test.cpp: - - Converted the binary string data in string_convert_test() to hex - escape sequences to get it to compile on gcc 3.4.1. - -Mon Nov 8 12:05:03 2004 Chad Elliott - - * include/makeinclude/rules.lib.GNU: - - Removed the unnecessary semi-colon from the end of the ar command - line and collapsed the special rule for vxworks_ntbuild as it was - no longer needed. - -Mon Nov 8 11:34:34 2004 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - - Slight performance modifications. - - * bin/generate_export_file.pl: - - Print debug messages to STDERR to allow clean redirection with the - use of the -d option. - -Mon Nov 8 07:53:46 2004 Chad Elliott - - * bin/msvc_mpc_auto_compile.pl: - - Added the protocols directory to the ace core directories. - -Fri Nov 5 13:44:57 2004 Chad Elliott - - * bin/MakeProjectCreator/config/acedefaults.mpb: - - Added ACE_NO_INLINE=1 to debug_macros only for the bmake project - type. - -Fri Nov 5 18:11:41 2004 Balachandran Natarajan - - * ace/OS_NS_Thread.cpp (thr_create): - - Fixed memory leak that were caused due to allocated - not being deleted whenever there is an error. Got - around this problem by using an auto_ptr, and releasing the - pointer when thr_create () is successful. Thanks to Gary Maxey - for reporting the problem. - - * ace/Base_Thread_Adapter.h (ACE_Base_Thread_Adapter): - - Moved the destructor to be public and the constructor to be - private. Making the destructor seems to have more downsides like - the one above (which basically prevented us from using - auto_ptr's). - -Fri Nov 5 16:14:12 UTC 2004 Martin Corino - - * ace/OS_NS_stdlib.cpp: - Fixed unnecessary inclusion of 'limits' for VxWorks because - it caused problems with GCC 2.9.6 toolchain. - -Fri Nov 5 07:52:51 2004 J.T. Conklin - - * ace/ACE.cpp: - - Changed gcd() from recursive to iterative implementation. - A good optimizing compiler should be able to convert the - tail call to a jump; but some compilers aren't good, and - sometimes ACE is compiled without optimization. - -Fri Nov 5 15:36:12 UTC 2004 Martin Corino - - * bin/MakeProjectCreator/templates/gnu.mpd: - * include/makeinclude/rules.bin.GNU: - Changes to support VxWorks 5.5.1 linking (both DIAB and GNU - toolchains). With VxWorks 5.5.1 linking is done based on - rules/targets defined in the makefile configuration provided - with the VxWorks toolset which is embedded in the ACE/TAO - structure through the platform_macros. - -Fri Nov 5 15:30:12 UTC 2004 Martin Corino - - * ace/config-vxworks5.x.h: - Updates for VxWorks 5.5.1 support. - -Fri Nov 5 07:27:16 2004 J.T. Conklin - - * configure.ac: - * Makefile.am: - - Changed to configure/build new protocols subdirectory - heirarchy. - - * ace/Makefile.am: - - Changed to not decend into HTBP subdirectory. - - * protocols/Makefile.am: - * protocols/ace/Makefile.am: - * protocols/ace/HTBP/Makefile.am: - - Added new files. Automake support for new HTBP location. - -Fri Nov 5 07:33:33 2004 Chad Elliott - - * bin/MakeProjectCreator/config/htbp.mpb: - - Added an include path for $(ACE_ROOT)/protocols. This will allow - everything that uses HTBP to compile. - -Fri Nov 5 10:30:12 UTC 2004 Martin Corino - - * ace/OS_NS_stdlib.cpp: - Fixed ACE_OS::mkstemp_emulation() for VxWorks because of 'max' - macro clash with 'std::numeric_limits::max ()'. - -Fri Nov 5 07:28:12 UTC 2004 Johnny Willemsen - - * tests/Test_Output.cpp: - Replaced ACE cast macro with C++ version - -Thu Nov 4 22:08:40 2004 Phil Mesnier - - * ace/HTBP/: - Moved to new protocols/ace/HTBP. - - * protocols/: - This is a new subdirectory added in anticipation of new - libraries that use ACE to create new methods of transporting - data between peers. This directory exists as a peer to ace - signifying that entites under this directory are not wrappers in - and of themselves, but do not necessarily have dependencies on - any higher level code. - - * protocols/ace/HTBP: - This directory contains the implementation of the Hypertext - Tunneling Bidirectional Protocol, that was previously under the - ace directory. The additional ace directory was added to avoid - having to modify any code that depends on HTBP, currently its - tests and the TAO pluggable protocol, HTIOP. Keeping the - relative path the same meant that the only external change - required as a side effect of this move was to add a single line - to htbp.mpb so that code including HTBP headers get - -I $ACE_ROOT/protocols added to the compile line. No other - changes are required. - - * ace/ace.mwc: - Removed ace/HTBP from the workspace definition. - - * bin/MakeProjectCreator/config/htbp.mpb: - Added "includes += $(ACE_ROOT)/protocols" to the base project. - -Thu Nov 4 18:47:22 2004 Steve Huston - - * ace/config-WinCE.h: Added ACE_LACKS_WCTYPE_H for CE 3 and lower. - - * ace/OS_NS_sys_stat.inl: For CE, removed data truncation warnings. - -Thu Nov 4 17:06:08 CST 2004 Scott Harris - - * test/Test_Output.cpp: - - Fix a bug introduced by a memory leak fix in Logging_Strategy.cpp, - Mon Oct 18 21:13:02 2004 Douglas C. Schmidt - , that broke the test/Logging_Strategy_Test on some platforms. - The problem is that Test_Output gives its file stream away - to ACE_LOG_MSG and then ACE_Logging_Strategry::init destroys the - stream but ACE_END_TEST still tries to close and destory it. - The solution was to only have Test_Output close/destroy the - stream if it has not already be changed in ACE_LOG_MSG. - - * test/Log_Msg_Test.cpp: - - The above change made it so ACE_Test_Output::output_file () - returns the ACE_MSG_LOG stream so it would not return - a possibly destroyed stream. Log_Msg_Test had - to be changed to save off the message stream when it - switched to a different file stream and then back - to the original. - -Thu Nov 4 14:00:50 2004 J.T. Conklin - - * ace/QoS/Makefile.am: - - Added includedir definition so that headers are installed - in $prefix/include/ace/QoS. - - * configure.ac: - * ace/Makefile.am: - - Changed to configure/build HTBP protocol library. - - * ace/HTBP/Makefile.am: - - Added new file, automake support for HTBP protocol. - -Thu Nov 4 06:28:34 2004 Chad Elliott - - * examples/IPC_SAP/SSL_SAP/SSL-client.cpp: - - Added another cast that I missed on my Wed Nov 3 07:13:19 2004 - check-in. - -Wed Nov 3 10:02:25 2004 Chad Elliott - - * bin/tao_orb_tests.lst: - - TAO/tests/IDL_Test/run_test.pl also can not be run with CORBA - Messaging disabled. - - * bin/tao_other_tests.lst: - - TAO/performance-tests/Protocols/run_test.pl can not be run in a - minimum corba build. - - Both TAO/examples/ior_corbaloc/run_test.pl and - TAO/utils/nslist/run_test.pl now require CORBA Messaging - because the Naming_Service requires it due to the addition of the - relative roundtrip timeout ability in the TAO_Naming_Server class. - -Wed Nov 3 09:40:21 2004 Chad Elliott - - * bin/tao_orb_tests.lst: - - TAO/tests/Bug_1568_Regression/run_test.pl and - TAO/tests/Bug_1670_Regression/run_test.pl can not be run with - CORBA Messaging disabled. - -Wed Nov 3 08:49:15 2004 Chad Elliott - - * bin/tao_other_tests.lst: - - Removed TAO/orbsvcs/tests/Notify/Lanes/run_test.pl and - TAO/orbsvcs/tests/Notify/ThreadPool/run_test.pl. These tests - require more scheduling priorities than most of the nightly build - systems have access to as a regular user. - -Wed Nov 3 06:24:31 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/ftrteventchannel.mpb: - * bin/MakeProjectCreator/config/messaging.mpb: - - Changed to inherit from corba_messaging instead of appending - corba_messaging to requires. - -Wed Nov 3 07:24:06 2004 Chad Elliott - - * tests/HTBP/htbptest.mpb: - - Added missing Id tag. - -Wed Nov 3 07:13:19 2004 Chad Elliott - - * ACEXML/parser/parser/Parser.i: - - Removed unused variable 'ch'. - - * ACEXML/parser/parser/Parser.cpp: - - Added ACE_NOTREACHED around return to avoid warnings from Tru64 - compiler. - - * ASNMP/asnmp/address.cpp: - * ASNMP/asnmp/octet.cpp: - * ASNMP/asnmp/oid.h: - * ASNMP/asnmp/oid.cpp: - * ASNMP/asnmp/smival.h: - * ASNMP/asnmp/transaction.cpp: - - Getting rid of build warnings from various compilers (cxx, aCC, - etc.) - - * examples/IPC_SAP/SSL_SAP/SSL-client.cpp: - - Because of my Tue Nov 2 13:51:15 2004 change, cast -1 to size_t - in a couple of places. - -Tue Nov 2 18:37:22 2004 Steve Huston - - * tests/SOCK_SEQPACK_SCTP_Test.cpp: Reverted: - Tue Nov 2 10:15:01 2004 Chad Elliott - and changed the Server() and Client() return types from void* - to ACE_THR_FUNC_RETURN to fix compile errors. Also changed a - char to unsigned char to avoid a truncation warning. - -Tue Nov 2 14:09:57 2004 Chad Elliott - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * tests/Dev_Poll_Reactor_Test.cpp: - - Handle the alternate version of - ACE_Connector<>::connect_svc_handler and in the process remove a - SunCC warning. - -Tue Nov 2 13:51:15 2004 Chad Elliott - - * ASNMP/asnmp/asn1.cpp: - - Cast literal integer to u_long to match the type of the variable. - - * ace/config-linux-common.h: - - Check for __x86_64__ similarly to __ia64 to get rid of some build - warnings. - - * examples/IPC_SAP/SSL_SAP/SSL-client.cpp: - - Use size_t instead of int to match the size of void*. - -Tue Nov 2 10:15:01 2004 Chad Elliott - - * tests/SOCK_SEQPACK_SCTP_Test.cpp: - - Cast the first parameter to ACE_Thread_Manager::spawn to - ACE_THR_FUNC (as is done in other tests) to avoid compilation - problems on Windows. - -Mon Nov 1 07:27:11 2004 Douglas C. Schmidt - - * ace/INET_Addr.cpp: Fixed the implementation of - - ACE_INET_Addr (const char port_name[], - ACE_UINT32 ip_addr, - const char protocol[] = "tcp"); - - ACE_INET_Addr (const wchar_t port_name[], - ACE_UINT32 ip_addr, - const wchar_t protocol[] = "tcp"); - - so that they convert the ip_addr into network byte order before - calling set(). Thanks to Xue Yong Zhi for - reporting this bug and providing the fix. - -Tue Nov 2 06:56:21 2004 Chad Elliott - - * performance-tests/SCTP/SCTP.mpc: - - Added verbatim sections to the client projects to adds $(MATHLIB) - to LDLIBS for gnuace projects. The math library is needed for - some UNIX platforms and is set in the corresponding platform_*.GNU - files. - -Tue Nov 2 07:59:12 UTC 2004 Johnny Willemsen - - * performance-tests/SCTP/Options_Manager.cpp: - Removed extern C around the include of an ACE header file, this - fixes the compile problems in the Borland builds - -Mon Nov 1 10:21:00 2004 Gary Maxey - - * ace/TP_Reactor.cpp: performace enhancement in handle_timer_events - See Bugzilla #1971 for details. - - * ace/TP_Reactor.cpp: performace enhancement in handle_timer_events - See Bugzilla #1971 for details. - -Mon Nov 1 08:37:47 2004 Phil Mesnier - - * tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc: - * tests/HTBP/Send_Large_Msg/Send_Recv_Test.mpc: - * tests/HTBP/Reactor_Tests/Reactor_Tests.mpc: - * tests/HTBP/ping/ping.mpc: - - Removed dependency on htbptest.mpb, as this breaks the automated - mpc script. - -Mon Nov 1 07:34:03 2004 Phil Mesnier - - * tests/HTBP/htbptest.mpb: - * tests/HTBP/Reactor_Tests/Reactor_Tests.mpc: - * tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc: - * tests/HTBP/Send_Large_Msg/Test_Output.cpp: - * tests/HTBP/Send_Recv_Tests/SendRecv_Test.mpc: - * tests/HTBP/Send_Recv_Tests/Test_Output.cpp: - * tests/HTBP/ping/ping.mpc: - - Removed duplicate Test_Output.cpp source and added a new base - project that includes libTest_Output.so. - -Mon Nov 1 07:16:12 UTC 2004 Johnny Willemsen - - * tests/FlReactor_Test.cpp: - Set the reactor of the event handler to make this test working. - Thanks to Ertugrul Sorar for supplying - the patch - -Fri Oct 29 22:48:34 2004 Phil Mesnier - - * ace/HTBP/HTBP_ID_Requestor.cpp: - Fixed Single thread build error due to mutex type mismatch. - -Fri Oct 29 12:15:23 2004 Steve Huston - - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: Add missing #include - "ace/OS_Memory.h" to find ACE_NEW_RETURN. - -Fri Oct 29 12:09:28 2004 Steve Huston - - * examples/Shared_Memory/test_MM.cpp: Don't try ACE_OS::mkstemp() - if ACE_LACKS_MKSTEMP is defined. - -Fri Oct 29 09:30:37 2004 Chad Elliott - - * ace/HTBP/HTBP_Channel.cpp: - - Remove build warning from g++. - -Thu Oct 28 13:12:18 2004 Chad Elliott - - * tests/SOCK_SEQPACK_SCTP_Test.cpp: - - If IPPROTO_SCTP is not defined, let the protocol default. - -Thu Oct 28 11:16:26 2004 Phil Mesnier - - * ace/HTBP/HTBP_Environment.cpp: - * ace/HTBP/HTBP_ID_Requestor.cpp: - Fixed overlooked literal wide string and a missing include file. - -Thu Oct 28 11:48:29 2004 Steve Huston - - * examples/Reactor/Misc/pingpong.cpp: Added missing includes - "ace/Barrier.h" and "ace/Thread.h" for ACE_WIN32. Also added - some missing ACE_TEXT() around string literals. - -Thu Oct 28 07:03:28 2004 Chad Elliott - - * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: - * examples/Reactor/Misc/pingpong.cpp: - - Added #include "ace/OS_NS_unistd.h" for ACE_OS::read, - ACE_OS::unlink, ACE_OS::getpid and ACE_OS::fork. - - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - - Added #include "ace/OS_Memory.h" for ACE_NEW_RETURN. - -Thu Oct 28 11:50:12 UTC 2004 Johnny Willemsen - - * bin/dsp2dsp.pl: - Removed this file, dsp's are now generated with MPC - -Thu Oct 28 06:21:40 2004 Chad Elliott - - * ace/HTBP/HTBP_Session.cpp: - - Removed another extra semi-colon. - -Thu Oct 28 00:27:57 2004 Olli Savia - - * apps/JAWS/server/HTTP_Request.cpp: - Replaced NULL with 0. - -Wed Oct 27 16:22:49 2004 Steve Huston - - * ace/UNIX_Addr.{h i}: Added wchar_t variants of the char-accepting - constructor and set() methods. Changed addr_to_string() to accept - ACE_TCHAR, not char, for the buffer. This unifies it with the other - address classes, restoring the ability to interchange it in - the Acceptor/Connector framework. - * ace/UNIX_Addr.cpp (set): Use strsncpy(), not memcpy(), to copy - the rendezvous string in, assuring a null-terminated string. - - * examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc: - * examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc: - Added exename and Source_Files spec since there's no main(). - - * examples/Reactor/Misc/Reactor_Misc.mpc: Added pingpong program. - - * examples/IPC_SAP/SOCK_SAP/sock_sap.mpc: Corrected names in - CPP_unserver project and added CPP_unclient project. - - * examples/Connection/blocking/SPIPE-acceptor.{h cpp}: - * examples/Connection/blocking/SPIPE-connector.{h cpp}: - * examples/Connection/blocking/test_spipe_acceptor.cpp: - * examples/Connection/blocking/test_spipe_connector.cpp: - * examples/Connection/misc/test_upipe.cpp: - * examples/Connection/misc/Connection_Handler.cpp: - * examples/Connection/non_blocking/CPP-acceptor.{h cpp}: - * examples/Connection/non_blocking/CPP-connector.{h cpp}: - * examples/Connection/non_blocking/test_lsock_acceptor.cpp: - * examples/Connection/non_blocking/test_lsock_connector.cpp: - * examples/Connection/non_blocking/test_sock_acceptor.cpp: - * examples/Connection/non_blocking/test_sock_connector.cpp: - * examples/Connection/non_blocking/test_spipe_acceptor.cpp: - * examples/Connection/non_blocking/test_spipe_connector.cpp: - * examples/IPC_SAP/DEV_SAP/reader/reader.cpp: - * examples/IPC_SAP/DEV_SAP/writer/writer.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client-simple.{h cpp}: - * examples/IPC_SAP/SSL_SAP/SSL-client.{h cpp}: - * examples/IPC_SAP/SSL_SAP/SSL-sever-fancy.{h cpp}: - * examples/Logger/Acceptor-server/server_loggerd.{h cpp}: - * examples/Logger/client/logging_app.cpp: - * examples/Logger/simple-server/Logging_Handler.cpp: - * examples/Logger/simple-server/server_loggerd.cpp: - * examples/Mem_Map/IO-tests/IO_Test.cpp: - * examples/Mem_Map/IO-tests/test_io.cpp: - * examples/OS/Process/process.cpp - * examples/Reactor/FIFO/server.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Misc/pingpong.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.{h i cpp}: - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.{h i cpp}: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.{h i cpp}: - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.{h i cpp}: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.{h i cpp}: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.{h i cpp}: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.{h i cpp}: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.{h i cpp}: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.{h i cpp}: - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.{h cpp}: - * examples/Service_Configurator/IPC-tests/server/server_test.cpp: - * examples/Shared_Memory/test_MM.cpp: - * examples/Shared_Memory/Options.{h cpp}: - * examples/Shared_Memory/test_malloc.cpp: - * performance-tests/SCTP/Options_Manager.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_srv.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - Wide-char fixes. - - * performance-tests/SCTP/SCTP.mpc: New - describes the projects in - this directory. These will build ok without SCTP enabled, so they - don't need to be "required" to have sctp. - -Wed Oct 27 14:33:42 2004 Phil Mesnier - - * ace/HTBP/HTBP_Addr.cpp: - * ace/HTBP/HTBP_Filter_Factory.cpp: - * ace/HTBP/HTBP_ID_Requestor.cpp: - * ace/HTBP/HTBP_Outside_Squid_Filter.h: - Addressing errors raised by AIX 64 compiler. - -Wed Oct 27 12:11:11 2004 Phil Mesnier - - * ace/HTBP/HTBP_Addr.cpp: - * ace/HTBP/HTBP_Environment.cpp: - * ace/HTBP/HTBP_Environment.h: - * ace/HTBP/HTBP_Filter.cpp: - * ace/HTBP/HTBP_Filter.h: - * ace/HTBP/HTBP_ID_Requestor.cpp: - * ace/HTBP/HTBP_ID_Requestor.h: - * ace/HTBP/HTBP_Inside_Squid_Filter.cpp: - * ace/HTBP/HTBP_Session.cpp: - * tests/HTBP/Reactor_Tests/client.cpp: - * tests/HTBP/Send_Large_Msg/client.cpp: - * tests/HTBP/Send_Large_Msg/run_test.pl: - * tests/HTBP/Send_Large_Msg/server.cpp: - * tests/HTBP/Send_Recv_Tests/SendRecv_Test.cpp: - * tests/HTBP/ping/client.cpp: - Numerous fixes to make support for wchar builds correct. - -Wed Oct 27 10:33:15 2004 Chad Elliott - - * ace/HTBP/HTBP.mpc: - - Modified the dynamicflags to match the macro used in - HTBP_Export.h. - -Wed Oct 27 09:28:05 2004 Chad Elliott - - * bin/msvc_static_order.lst: - - Added the HTIOP library to the static order list. - -Wed Oct 27 09:16:16 2004 Chad Elliott - - * tests/HTBP/Reactor_Tests/Reactor_Tests.mpc: - * tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc: - * tests/HTBP/Send_Recv_Tests/SendRecv_Test.mpc: - * tests/HTBP/ping/ping.mpc: - - Ensure that these projects get built in the right order by - inheriting from the htbp base project. - -Wed Oct 27 13:05:12 UTC 2004 Martin Corino - - * include/makeinclude/rules.local.GNU: - * include/makeinclude/rules.lib.GNU: - - Added changes to support VxWorks DIAB build on Windows. - -Wed Oct 27 07:54:11 2004 Chad Elliott - - * ace/HTBP/HTBP_Addr.h: - * ace/HTBP/HTBP_Channel.h: - * ace/HTBP/HTBP_Environment.h: - * ace/HTBP/HTBP_Filter.h: - * ace/HTBP/HTBP_Filter_Factory.h: - * ace/HTBP/HTBP_ID_Requestor.h: - * ace/HTBP/HTBP_Inside_Squid_Filter.h: - * ace/HTBP/HTBP_Notifier.h: - * ace/HTBP/HTBP_Outside_Squid_Filter.h: - * ace/HTBP/HTBP_Session.h: - * ace/HTBP/HTBP_Stream.h: - - Semi-colons are not required on the closing brace of a namespace - and cause errors on a few compilers. - -Wed Oct 27 07:46:42 2004 Chad Elliott - - * ace/HTBP/HTBP_Addr.h: - * ace/HTBP/HTBP_Channel.cpp: - * ace/HTBP/HTBP_Environment.h: - * ace/HTBP/HTBP_Stream.cpp: - - Use "" instead of <> in #include. - - * ace/HTBP/HTBP_ID_Requestor.cpp: - * ace/HTBP/HTBP_Session.h: - * ace/HTBP/HTBP_Session.cpp: - - Use ACE_SYNCH and ACE_SYNCH_MUTEX instead of ACE_MT_SYNCH and - ACE_Thread_Mutex for threads=0 builds. - - * ace/OS_NS_Thread.inl: - - ACE_OS::thr_getspecific() was missing an #else clause for the - ACE_HAS_THREADS macro. - -Wed Oct 27 08:05:12 UTC 2004 Martin Corino - - * include/makeinclude/rules.local.GNU: - - Fixed 'mkdir' handling for 'normal' cygwin32 and mingw32 builds - since 'make' here uses 'sh.exe' as shell instead of 'cmd.exe' as - the make for VxWorks does. - -Tue Oct 26 13:55:20 2004 Chad Elliott - - * ACEXML/common/StreamFactory.cpp: - * ACEXML/common/ZipCharStream.h: - * ACEXML/common/ZipCharStream.cpp: - * ACEXML/examples/SAXPrint/main.cpp: - - Switch to using the zzip base project found in MPC which means - switch from macro ACEXML_HAS_ZZIPLIB to USE_ZZIP. - - * bin/MakeProjectCreator/config/zzip.mpb: - - Removed this file. It is a duplicate of the one contained in - MPC/config except for the trigger macro. - -Fri Oct 26 11:18:21 PDT 2004 Dave Craig - - * ace/SOCK_SEQPACK_Association.h: - * ace/SOCK_SEQPACK_Association.cpp: - Add SOCK_SEQPACK_Association::abort() to ungracefully remove an - association. See RFC 2960 for more details. - - * tests/SOCK_SEQPACK_Test.cpp: - * tests/tests.mpc: - * tests/tests.lst: - Add simple test to exercise SOCK_SEQPACK_* functionality through - loopback and verify that abort() is doing what it is supposed to - be doing. It took a while to exercise all of the different #define's, - but the results should come out fine w/+w/o ACE_HAS_IPV6, w/+w/o - ACE_HAS_SCTP, and w/+w/o ACE_LACKS_FORK. TAO with LKSCTP did not - compile, so it was not regressed. - -Tue Oct 26 13:05:28 2004 Chad Elliott - - * ace/HTBP/HTBP.mpc: - * ace/HTBP/HTBP_Addr.h: - * ace/HTBP/HTBP_Channel.h: - * ace/HTBP/HTBP_Channel.cpp: - * ace/HTBP/HTBP_Environment.h: - * ace/HTBP/HTBP_Filter.h: - * ace/HTBP/HTBP_Filter_Factory.h: - * ace/HTBP/HTBP_ID_Requestor.h: - * ace/HTBP/HTBP_Inside_Squid_Filter.h: - * ace/HTBP/HTBP_Notifier.h: - * ace/HTBP/HTBP_Notifier.cpp: - * ace/HTBP/HTBP_Outside_Squid_Filter.h: - * ace/HTBP/HTBP_Session.h: - * ace/HTBP/HTBP_Session.inl: - * ace/HTBP/HTBP_Stream.h: - * ace/HTBP/HTBP_Stream.cpp: - * bin/MakeProjectCreator/config/htbp.mpb: - * bin/MakeProjectCreator/config/htiop.mpb: - * tests/HTBP/Reactor_Tests/Reactor_Tests.mpc: - * tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc: - * tests/HTBP/Send_Recv_Tests/SendRecv_Test.mpc: - * tests/HTBP/ping/ping.mpc: - - Fixed many fuzz errors. - -Tue Oct 26 09:39:18 2004 Chad Elliott - - * ace/HTBP/HTBP_Inside_Squid_Filter.cpp: - - Set toklen to zero to avoid using it in an uninitialized state. - -Tue Oct 26 12:28:12 UTC 2004 Martin Corino - - * include/makeinclude/rules.local.GNU: - - Fixed sections for 'ifeq ("$(OS)", "Windows_NT")' since these - now get hit again as the OS variable works again (see previous). - Needed this for VxWorks cross-builds on NT. - -Tue Oct 26 12:22:12 UTC 2004 Martin Corino - - * ace/ace.mpc: - - Changed 'OS' filegroup to 'ACE_OS' since otherwise with GNU - makefiles the OS environment variable gets overruled (and this - is/was supposed to be used in rules.local.GNU). - -Tue Oct 26 10:56:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_linux_pgi.GNU - Improved pgi support - -Mon Oct 25 23:30:49 2004 Phil Mesnier - - * NEWS: - Added a comment regarding HTBP. - -Mon Oct 25 23:20:53 2004 Phil Mesnier - - * ace/HTBP/README: - Added some text that had been in TAO/orbsvcs/orbsvcs/HTIOP but - is better located here. - - * bin/MakeProjectCreator/config/htbp.mpb: - * bin/MakeProjectCreator/config/htiop.mpb: - Base projects used to add libACE_HTBP.so or libTAO_HTIOP.so to - projects. - -Mon Oct 25 21:27:03 2004 Phil Mesnier - - * ace/ace.mwc: - Added HTBP as a new project. - - * ace/HTBP: - This is a new streaming protocol, HTTP Tunneling Bidirectional - Protocol. Motivation for this protocol comes from Essex-Radez - (www.radez.com). A description of the protocol details may be - found in ace/HTBP/README. - - * tests/HTBP: - This is a collection of tests specific to HTBP. - -Mon Oct 25 20:13:07 2004 Phil Mesnier - - * ace/Global_Macros.h: - Added a new service configuration macro for defining a factory - function for classes scoped within namespaces. The new macro is - ACE_FACTORY_NAMESPACE_DEFINE. The associated comment block - provides usage details. - -Mon Oct 25 09:05:02 2004 Steve Totten - - * ACEXML/common/Transcode.h: - Renamed STATUS to ACEXML_STATUS to avoid name clash on - platforms that define a macro STATUS (e.g., Tru64 cxx 6.1). - -Sun Oct 24 08:39:12 UTC 2004 Johnny Willemsen - - * tests/run_test.lst: - Removed OTHER and ALL from some tests, I don't see why these tests - just shouldn't run on a few platforms. - -Sat Oct 23 11:27:47 2004 Douglas C. Schmidt - - * ace/WIN32_Asynch_IO.cpp (shared_write): Changed the return values - for ACE_Asynch_Write_Stream::write() and - ACE_Asynch_Read_Stream::read() so that they return 0 rather than - 1. This makes the code more portable between Windows and POSIX. - Thanks to Jaroslaw Nozderko - for reporting this. - - * ace/POSIX_Proactor.cpp (ACE_AIOCB_Notify_Pipe_Manager): - Added a call to - - ACE_Flag_Manip::set_flags (this->pipe_.read_handle (), ACE_NONBLOCK); - - so that the ACE_POSIX_AIOCB_Proactor doesn't hang on SuSe Linux - 9.1. Thanks to Vukajlo for reporting - this fix. - -Fri Oct 22 17:55:32 2004 Steve Huston - - * configure.ac: Added check for ACE_LACKS_WCTYPE_H. - -Fri Oct 22 17:00:27 2004 Steve Huston - - * ace/os_include/sys/os_stat.h: Add more values for the 'mode' flags - for WinCE and use the macros defined for them in the Windows API. - - * ace/OS_NS_sys_stat.inl (stat): Set the st_mode value for WinCE. - - * tests/Dirent_Test.cpp: Don't attempt ACE_OS::chdir() for - ACE_LACKS_CHDIR; the method isn't declared on those platforms. - - * tests/Time_Value_Test.cpp: Removed stray #include . - -Fri Oct 22 11:10:55 2004 Chad Elliott - - * bin/DependencyGenerator/GNUObjectGenerator.pm: - - Fixed an object file path mismatch between the MPC generated - makefiles and the dependencies generated by depgen.pl. - - * bin/MakeProjectCreator/config/xerces.mpb: - - Moved this file into MPC. It is not ACE specific, so let others - benefit from it. - -Fri Oct 22 09:47:05 2004 Chad Elliott - - * ace/RMCast/RMCast_Copy_On_Write.h: - * ace/RMCast/RMCast_Membership.h: - * ace/RMCast/RMCast_Reordering.h: - - Removed doxygen errors. - -Fri Oct 22 12:06:19 UTC 2004 Johnny Willemsen - - * ace/config-linux-common.h: - * include/makeinclude/platform_linux_pgi.GNU: - Improved pgi support - -Fri Oct 22 11:47:26 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/config/xerces.mpb: - - Use libs instead of lit_libs since xerces also does the - decoration in their VC* binaries. - -Fri Oct 22 11:32:19 UTC 2004 Johnny Willemsen - - * ace/OS_NS_ctype.inl: - When ACE_HAS_WCHAR is defined, include os_include/os_wctype.h to get - towlower and towupper - - * ace/config-linux-common.h: - Improved pgi support - -Fri Oct 22 08:34:19 UTC 2004 Johnny Willemsen - - * bin/make_release: - Added fl_reactor=1 and xt_reactor=1 to the default.features file - that is used to generate the GNU makefiles, this will only generate - the corresponding makefiles, but to build with fl_reactor/xt_reactor - you have to set it to 1 in the platform_macros.GNU file - -Thu Oct 21 18:23:19 2004 Steve Huston - - * ace/config-win32-msvc-7.h: ACE_HAS_TEMPLATE_TYPEDEFS doesn't apply - to the Win64 SDK compiler (version 1300), even though it does for - as MSVC 7.1 latest on Win32 (version 1310). - - * ace/CDR_Base.h: Only use ACE::If_Then_Else on MSVC for VC 7.1; the - Win64 SDK compiler can't hack it. - - * ASNMP/tests/test_config.h (randomize): Added some static_cast to - convert size_t to int. Fixes compile warnings on Win64. - -Thu Oct 21 18:25:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_linux_pgi.GNU: - * ace/config-linux-common.h: - * ace/config-lite.h: - Changes to support the Portland Group PGI High-Performance - Compiler on Linux. This is just a first checkin, a new build - has been setup and the port to this compiler will be done the - next months, in case you want to know more, look at www.pgroup.com - for the compiler details - -Thu Oct 21 12:32:52 2004 Chad Elliott - - * ACEXML/common/AttributesImpl.h: - - Fixed doxygen errors dealing with the use of @var in a single line - comment. - -Thu Oct 21 09:12:32 2004 Chad Elliott - - * bin/tao_other_tests.lst: - - No Notification Service test can be run when mimimum_corba is - enabled. - -Thu Oct 21 08:43:57 2004 Chad Elliott - - * ace/OS_NS_Thread.cpp: - - Corrected the mismatched ACE_TRACE macros. - -Wed Oct 20 14:53:19 2004 Steve Huston - - * ace/OS_main.h: For WinCE, don't intersperse a call to an ace_os_... - function. Just set up a ACE_Main object and call its run() method. - Fixed the run() method on WinCE to take the command line args - that WinMain gets on CE. - -Wed Oct 20 10:42:22 2004 Chad Elliott - - * bin/MakeProjectCreator/config/ftserverorb.mpb: - - The ftserverorb base project needs to inherit from portablegroup - to get the required settings (since TAO_FT_ServerORB depends on - TAO_PortableGroup and TAO_Messaging). - -Tue Oct 19 20:42:06 2004 Dale Wilson - - * ace/OS_NS_Thread.inl: - Missed this file in my previous check in. - -Tue Oct 19 17:04:19 2004 Steve Huston - - * tests/Multicast_Test.cpp: Explicitly specify PF_INET when creating - the multicast socket. All of the addresses used in the test are - IPv4, so force the socket to be IPv4 as well. Fixes run-time errors - when IPv6 is enabled. The TCP stuff can pick up the correct address - family from the specified address, but for datagrams, there's no - real hint to pick up from. - -Tue Oct 19 15:29:19 2004 Steve Huston - - * ace/Message_Block.cpp (ACE_Data_Block::clone()): When copying data - from the original block to the cloned, only copy cur_size_ bytes. - Preserves the "has been written" boundary in the new block and avoids - a possible "uninitialized read" diagnostic from Purify, et al. - Thanks to Kelly F. Hickel for reporting this. - -Tue Oct 19 17:58:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-dmc.h: - Improved Digital Mars C++ support - -Tue Oct 19 06:47:04 2004 Chad Elliott - - * bin/tao_other_tests.lst: - - Reverted my previous change and removed - TAO/orbsvcs/examples/Notify/Lanes/run_test.pl and - TAO/orbsvcs/examples/Notify/ThreadPool/run_test.pl from the list. - These are the ones that require root privileges. - -Tue Oct 19 06:17:24 2004 Chad Elliott - - * bin/tao_other_tests.lst: - - Removed TAO/orbsvcs/tests/Notify/Lanes/run_test.pl from the list. - It requires root privileges and shouldn't be run in a nightly - build. - -Mon Oct 18 19:21:25 2004 J.T. Conklin - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Fixed typo setting ACE_ROOT environment variable in the TAO_IDL - definition. - -Mon Oct 18 21:13:02 2004 Douglas C. Schmidt - - * ace/Logging_Strategy.cpp: Fixed the init() method so that it doesn't - leak memory if it's called more than once. Thanks to Kobi - for this fix. - - * ace/Pagefile_Memory_Pool.cpp: Fixed two bugs with the - ACE_Pagefile_Memory_Pool constructor: - - 1. In the constructor is called with options=0, then the - internal meber local_cb_ is never initialised. Thus there is - no way of using it with ACE_Malloc. - - 2. When used for ACE_Malloc in the following way - - : ACE_Malloc - Malloc1 ("NAME_TEST" ) - - as a mutex is created with the name given, the internal call - to CreateFileMapping (CreateFileMappingEx) fails because a - system object of the same name already exists (the mutex). - Thanks to Domingos Monteiro - for reporting these problems and providing the fixes. - -Mon Oct 18 17:45:29 2004 Steve Huston - - * examples/APG/Naming/Graph.cpp: - * examples/APG/Naming/Temperature_Grapher.cpp: Don't attempt to - compile the few parts of this that use std::list (the - Graphable_Element_List typedef) without implicit template - instantiation. It's too much trouble to try to follow the - various platforms' incantations. - -Mon Oct 18 17:18:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-dmc.h: - Improved Digital Mars C++ support - -Mon Oct 18 12:15:14 2004 Steve Huston - - * examples/C++NPv2/display_logfile.cpp: Wide-char fixes. - -Mon Oct 18 18:34:55 2004 Olli Savia - - * ace/os_include/os_signal.h: - Removed unneeded LynxOS specific pthread_sigmask - protoype declaration. - -Fri Oct 15 18:50:19 2004 Steve Huston - - * ace/OS_NS_Thread.cpp: In places where the old ace_result_ part of - the previous incantation of ACE_OSCALL_RETURN was used, create a - local 'result' variable and use that. ace_result_ is only used in - the Win32 version of ACE_OSCALL_RETURN. - -Fri Oct 15 17:46:29 2004 Steve Huston - - * configure.ac: Added checks for the swab() variants that have: - (const char*, char*, ssize_t) [SVID3 - ACE_HAS_CONST_CHAR_SWAB] - and (char*, char*, ssize_t) [Windows, et al - ACE_HAS_NONCONST_SWAB]. - Also altered the ACE_HAS_TYPENAME test to work on Forte C++ 7. - - * m4/config_h.m4: Added ACE_HAS_CONST_CHAR_SWAB and - ACE_HAS_NONCONST_SWAB. - - * ace/OS_NS_unistd.inl (swab): Added code for ACE_HAS_CONST_CHAR_SWAB - variant for swab() found on Solaris. - - * ace/config-sunos5.5.h: Replace ACE_LACKS_SWAB with - ACE_HAS_CONST_CHAR_SWAB. This was determined by running the autoconf - tests. If it doesn't work uniformly, will need some feature-test - tweaks. - -Fri Oct 15 17:33:18 2004 Steve Huston - - * ace/ACE.h: - * ace/OS_NS_signal.h: Include config-lite.h instead of config-all.h. - It drags in too much and some trips up the aC++ compiler. Not sure - why... it's a tangled web. - - * ace/Message_Block.h: Add #include "ace/config-lite.h" since it needs - to know config settings. - -Fri Oct 15 16:44:29 2004 Steve Huston - - * ace/OS_NS_stdlib.cpp (mkstemp_emulation): Related to: - Fri Oct 8 23:13:13 2004 Ossama Othman - Only figure out a configurable limit on non-WinCE platforms. WinCE - lacks too much to get fancy, so just use 127. - - * ace/Ping_Socket.cpp: Added Win32 /**/ trickery to keep MSVC from - complaining about missing header files. - - * ace/OS_main.{h cpp}: Use ACE_HAS_WINCE, not ACE_WINCE, as the - config macro to decide on Windows CE stuff. - Also, the WinCE version of ACE_Main_Base::run() takes the WinCE - command line args, not argc/argv. The argc/argv conversion from - the text command line is now in the .cpp file, removing the need - for including ARGV.h in OS_main.h, the source of many header file - loops. - -Fri Oct 15 13:28:02 2004 Dale Wilson - - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.cpp: - * ace/os_include/os_pthread.h: - This corrects a conflict between recent TSS changes and - TSS Emulation. The problem was a result of failing to distinguish - between native and emulated TSS keys. - - TSS_Emulation uses a single native TSS key to emulate a compile- - time-configurable number of emulated keys. Function overloading - based on various integer types was used to distinguish native key - management from emulated key management. The integral types involved - varied from platform to platform. So, for example, - thr_keyfree(unsigned int) frees a native key while thr_keyfree(unsigned long) - frees an emulated key (on some platforms). - - The failure happened when the emulated key with the same value as the - real key on which the emulation was based was freed. Due to the above- - mentioned confusion the real key was being freed-- breaking the emulation. - - The solution was to rename several internal routines so that thr_keyfree_native - frees a real key while thr_keyfree frees an emulated key. The native methods - are used only internally in the OS_NS_Thread.cpp file so the change is localized. - - In the process I eliminated a lot of duplicated (copy-paste-tweaked) code. - Thus with this change allocating a native key uses the same code whether or not - TSS Emulation is enabled. - - I also cleared up another area of confusion in the ACE_TSS_Cleanup - object. Methods were documented and in some cases renamed to - make it clear whether the method was managing the lifetime of a TSS object or a - TSS key. - - ACE_TSS_Cleanup is internal to OS_NS_Thread.cpp so the change will not have any - impact on other parts of the system. - - Finally I added a number of ACE_ASSERTS in places where the comments said - "This will never happen." but it was happening and being ignored. - - -Fri Oct 15 13:34:17 2004 Chad Elliott - - * bin/tao_other_tests.lst: - - The TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl script - should only be run if exceptions are enabled. - -Fri Oct 15 10:09:34 2004 Dale Wilson - - * tests/TSS_Test.cpp: - * tests/TSS_Test_Errno.h: - - Olli's report that TSS_Test was failing when TSS_Emulation prompted - me to take a closer look at TSS_Test. I found a number of problems, - none of which was related to the TSS Emulation issue. That will be - addressed separately. - - The most serious problem was attempting to log a message from within - a TSS cleanup function. Since the log message buffer is itself a TSS - object this only works of the TSS objects happen to be deleted in the - "right" order. There was even a comment that said: - // Anyways, for whatever reason, the ACE_DEBUG causes a - // core dump on LynxOS 2.5.0. - - I was amused by: void *ptr; operator delete (ptr);. It works, but it's a bad - example to set for people who might read this code as an example of how to - clean up "real" TSS objects. Sometimes calling the destructor is important. - - If the comments can be trusted, the code was deleting TSS objects twice when - ACE_HAS_PTHREADS_DRAFT4 was defined. - - Finally I added a test of TSS object lifetime management. Previously - it did a lot of calls without really checking to see if they worked. - It now counts the number of TSS objects created and the number deleted to - insure that every object created is actually deleted. For now a failure - of this check generates a warning rather than an error because I want - to see how this turns out on various platforms without adding a new - test failure right before upcoming beta release. - -Fri Oct 15 01:28:58 2004 J.T. Conklin - - * netsvcs/lib/Makefile.am: - - Changed to install netsvcs library. - -Fri Oct 15 06:52:12 UTC 2004 Johnny Willemsen - - * tests/Vector_Test.cpp: - * ace/Task.cpp: - Changed Borland C++ version checks - -Thu Oct 14 21:03:00 2004 J.T. Conklin - - * ace/CDR_Base.cpp: - * ace/CDR_Base.inl: - - Added AMD64 optimized versions of ACE_CDR::swap_{2, 4, 8}, and - ACE_CDR::swap_{2, 4}_array. - -Thu Oct 14 08:07:36 2004 Chad Elliott - - * ace/Profile_Timer.inl: - - If ACE_HAS_PRUSAGE_T is defined, we need to include - ace/OS_NS_stropts.h to get ACE_OS::ioctl. - - * ace/Profile_Timer.cpp: - - If ACE_HAS_PRUSAGE_T is defined, we need to include - ace/OS_NS_stdio.h to get ACE_OS::sprintf. - -Thu Oct 14 12:27:23 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.x_diab.GNU - Some small changes for the Windriver Diab compiler - -Thu Oct 14 12:23:23 UTC 2004 Johnny Willemsen - - * ace/config-lite.h: - * ace/config-vxworks5.x.h: - * ace/Task.cpp: - Some small changes for the Windriver Diab compiler - -Wed Oct 13 21:55:13 2004 Ossama Othman - - * include/makeinclude/wrapper_macros.GNU (acexml): - - Enable ACEXML support by default. Addresses build issues - introduced by the "--with-acexml" configure script changes - described below. Thanks to Bala for pointing this out and for - suggesting a fix. - -Tue Oct 12 22:37:16 2004 Ossama Othman - - * m4/ace.m4: - - Changed "--with-uses-wchar" configure script option to - "--enable-uses-char". The latter is the correct convention for - features. "--with-*" is by convention only used for requesting - use of other software packages in the package being configured. - -Wed Oct 13 06:53:55 2004 Olli Savia - - * tests/DLL_Test_Impl.cpp: - * tests/Message_Block_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - * tests/SOCK_SEQPACK_SCTP_Test.cpp: - * tests/Timer_Queue_Test.cpp: - * tests/TkReactor_Test.cpp: - * tests/XtReactor_Test.cpp: - Replaced NULL with 0. - -Tue Oct 12 17:33:51 2004 Steve Huston - - * ace/Local_Memory_Pool.{h cpp}: - * ace/MMAP_Memory_Pool.cpp: - * ace/Sbrk_Memory_Pool.cpp: - * ace/Shared_Memory_Pool.cpp: Add missing includes to fix AIX builds. - -Tue Oct 12 17:58:12 UTC 2004 Martin Corino - - * ace/Sbrk_Memory_Pool.h: - * ace/Shared_Memory_Pool.h: - - Added ace/os_include/sys/os_mman.h. - -Tue Oct 12 06:44:12 UTC 2004 Johnny Willemsen - - * ace/Local_Memory_Pool.h: - * ace/MMAP_Memory_Pool.h: - * ace/Pagefile_Memory_Pool.h: - * ace/Sbrk_Memory_Pool.h: - * ace/Shared_Memory_Pool.h: - Fixed incorrect doxygen file tag - -Mon Oct 11 19:43:22 2004 Irfan Pyarali - - * ace/Local_Memory_Pool.cpp (acquire): - - Added ace/OS_Memory.h. - - * ace/MMAP_Memory_Pool.cpp: - - Added ace/OS_NS_string.h and ace/OS_NS_sys_stat.h. - - * ace/Pagefile_Memory_Pool.h: - - Added ace/os_include/sys/os_mman.h. - -Mon Oct 11 09:52:40 2004 Marek Brudka - - * ace/config-qnx-rtp-62x.h: - Set ACE_LACKS_CUSERID. - -Mon Oct 11 10:14:36 2004 J.T. Conklin - - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: - * tests/SV_Shared_Memory_Test.cpp: - - Changed to #include ace/SV_Sempahore_Complex.h, which had been - implicitly included via Memory_Pool.h, even though it was not - needed by the interface or implementation. - - * ace/Makefile.am: - * ace/ace.mpc: - - Updated. - - * ace/Local_Memory_Pool.cpp: - * ace/Local_Memory_Pool.h: - * ace/MMAP_Memory_Pool.cpp: - * ace/MMAP_Memory_Pool.h: - * ace/Pagefile_Memory_Pool.cpp: - * ace/Pagefile_Memory_Pool.h: - * ace/Pagefile_Memory_Pool.inl: - * ace/Sbrk_Memory_Pool.cpp: - * ace/Sbrk_Memory_Pool.h: - * ace/Shared_Memory_Pool.cpp: - * ace/Shared_Memory_Pool.h: - - New files. - - * ace/Memory_Pool.cpp: - * ace/Memory_Pool.inl: - * ace/Memory_Pool.h: - - Split apart Memory_Pool.{cpp,h,inl} into a separate set of files - for each class and "outlining" inlined virtual functions. Since - the implementations are related by interface, not inheritance; - locating them all in the same file typically results in static - footprint bloat. - - Removed Memory_Pool.{cpp,inl}. - -Mon Oct 10 12:48:03 2004 Martin Corino - - * ace/config-hpux-11.00.h: - - Added XPG4 multibyte (wchar) support for __GLIBC__ >= 2. - -Mon Oct 10 9:43:03 2004 Martin Corino - - * ace/config-tru64.h: - - Added XPG4 multibyte support for DIGITAL_UNIX >= 5. - -Sat Oct 9 23:08:04 2004 Ossama Othman - - * bin/MakeProjectCreator/config/acexml.mpb: - - Added a "requires += acexml" MPC project flag. Allows - generation of Automake conditionals in MPC generated Makefile.am - files. - - * bin/MakeProjectCreator/config/global.features: - - Enable support ACEXML by default. This was previously the - implicit default. It must be now be explicit in order to - correctly support features like the new "--with-acexml" - configure script option described below. - - * m4/ace.m4: - - Added new "--with-acexml" configure script option. It allows a - user to enable (the default) or disable support for ACEXML. - -Sat Oct 9 13:55:26 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_server_dnc.mpb: - - Fixed library ordering issues. This should fix a few link errors - in CIAO static builds. - -Fri Oct 8 23:13:13 2004 Ossama Othman - - * ace/OS_NS_stdlib.cpp (mkstemp_emulation): - - We only care about UTF-8 / ASCII characters in generated - filenames. A UTF-16 or UTF-32 character could potentially cause - a very large space to be searched in the do/while() loop that - generated alphanumeric characters, greatly slowing down this - mkstemp() implementation. It is more practical to limit the - search space to UTF-8 / ASCII characters (i.e. 127 characters). - -Fri Oct 8 18:40:19 2004 Steve Huston - - * ace/SSL/ssl.mpc: Removed the automake-specific part. The MPC-supplied - openssl.mpb file now includes the automake libs/includes that were - here. - - * examples/NT_Service/NT_Service.mpc: Inherit from the winregistry - project. Makes this require winregistry. Although not strictly - correct, it's close enough. Probably would be more correct to - rename winregistry to windows, but I won't rock the boat today. - - * m4/ace.m4: Don't emit ACE_NTRACE unless the user specifically - says --enable-trace. ace/config-all.h knows how to default - tracing correctly. Also, for --enable-tracing, set ACE_NTRACE - to 0; for disable tracing, set ACE_NTRACE to 1. - -Fri Oct 8 06:27:12 UTC 2004 Johnny Willemsen - - * ace/Malloc_Allocator.cpp: - Added include of ace/OS_NS_string.h for ACE_OS::memset, fixes - compile errors in several builds - -Thu Oct 7 17:32:18 2004 J.T. Conklin - - * ace/Malloc_Allocator.cpp: - * ace/Malloc_Allocator.inl: - - Moved all virtual methods from *.inl to *.cpp. - -Thu Oct 7 16:45:21 2004 Steve Huston - - * bin/MakeProjectCreator/config/global.features: Added uses_wchar = 0 - as a default. Says not to use ACE_USES_WCHAR. No affect on - ACE_HAS_WCHAR (a platform's ability to handle wide-char). This - setting is primarily to avoid those areas of ACE's examples that - aren't coded to work correctly with both narrow and wide chars. - - * apps/drwho/drwho.mpc: - * apps/gperf/src/gperf.mpc: - * apps/gperf/tests/gperf_test.mpb: - * apps/soreduce/soreduce.mpc: - * examples/C++NPv1/C++NPv1.mpc: - * examples/C++NPv2/C++NPv2.mpc: - Added "avoids += uses_wchar" to projects that don't builds cleanly - with ACE_USES_WCHAR. For drwho/gperf/soreduce, they weren't designed - for wide-char use and the changes to make them so are widespread. - For C++NPv1/2, there's code that would need to change, but is used - in the book prior to where narrow/wide char handling is introduced. - To keep the code in sync with the books, just don't try to build - this on wide-char builds. - - * m4/ace.m4: Added new configure option, --with-uses-wchar. If yes, - then ACE_USES_WCHAR is set. Defaults to no. - - * m4/config_h.m4: Added AH_TEMPLATE for ACE_USES_WCHAR. - -Thu Oct 7 11:42:40 2004 Chad Elliott - - * bin/tao_orb_tests.lst: - - Added the new Typedef_String_Array test to the list. - -Thu Oct 7 11:21:37 2004 john_c - - * ace/SPIPE.cpp - * ace/SPIPE.h - * ace/SPIPE_Acceptor.cpp - When closing stream pipes, only one end was being closed. - This led to file descriptors being leaked each time an - SPIPE_Acceptor is opened. Now both the file - descriptors are being closed in close method. - -Thu Oct 7 11:56:12 UTC 2004 Johnny Willemsen - - Reverted my change below, broke the LynxOS build - - Tue Sep 28 11:28:12 UTC 2004 Johnny Willemsen - - * ace/config-g++-common.h: - Removed setting of ACE_SIZEOF_LONG_DOUBLE, this is done in - Basic_Types.h - -Thu Oct 7 07:13:12 UTC 2004 Johnny Willemsen - - * ace/config-all.h: - When ACE_HAS_VERBOSE_NOTSUP is defined we print a message - with fprintf to let the user know he used a not supported - function. Use ACE_OS::fprintf for doing this, to solve compile - problems with VxWorks. - -Wed Oct 6 13:58:06 2004 J.T. Conklin - - * ace/Process.cpp: - * ace/Process.inl: - - Moved virtual method ACE_Managed_Process::unmanage() from - *.inl to *.cpp. - -Wed Oct 6 13:41:22 2004 J.T. Conklin - - * ace/Functor.cpp: - * ace/Functor.inl: - - Moved virtual dtor ACE_Command_Base::~ACE_Command_Base from - *.inl to *.cpp. - -Wed Oct 6 16:34:29 2004 Steve Huston - - * ace/OS_NS_wchar.cpp: For ACE_HAS_WCHAR, #include "ace/OS_NS_string.h" - since it's needed in some of the emulation methods. - -Wed Oct 6 14:50:53 2004 Chris Cleeland - - * tests/Message_Queue_Test.cpp (iterator_test): Changed initial - HWM specification for the QUEUE size to match the size of - 'buffer'. It seems very strange to try to send each element of - 'buffer' into the queue, but to set QUEUE's HWM potentially - lower than sizeof(buffer). This makes the test run to - completion on platforms like RH8 where it had been failing for a - good long while. - -Wed Oct 6 11:20:53 2004 J.T. Conklin - - * ace/Message_Queue.cpp: - * ace/Message_Queue.inl: - - Move virtual dtor ACE_Message_Queue_Base::~ACE_Message_Queue_Base - and virtual method ACE_Message_Queue_Base::state() from *.inl to - *.cpp. - - * ace/Signal.cpp: - * ace/Signal.inl: - - Move virtual dtor ACE_Sig_Adapter::~ACE_Sig_Adapter() from *.inl - to *.cpp. - -Wed Oct 6 12:25:29 2004 Steve Huston - - * examples/APG/Logging/Change_Mask.cpp: - * examples/APG/Logging/Howto_Syslog.cpp: - * examples/APG/Logging/Simple1.cpp: - * examples/APG/Logging/Simple2.cpp: - * examples/APG/Logging/Trace_Return.cpp: - * examples/APG/Logging/Use_Callback.cpp: - * examples/APG/Logging/Use_Callback2.cpp: - * examples/APG/Logging/Use_Logger.cpp: - * examples/APG/Logging/Use_Logging_Server.cpp: - * examples/APG/Logging/Use_Logging_Strategy.cpp: - * examples/APG/Logging/Use_LogManager.cpp: - * examples/APG/Logging/Use_Multiple_Sinks.cpp: - * examples/APG/Logging/Use_Ostream.cpp: - * examples/APG/Logging/Use_Stderr.cpp: - * examples/APG/Logging/Use_Syslog.cpp: - * examples/APG/Logging/Wrap_Macros.cpp: - * examples/APG/Logging/Wrap_Macros_Alt.cpp: - * examples/APG/Processes/Spawn.cpp: - * examples/APG/Reactor/Client.cpp: - * examples/APG/Shared_Memory/Hash_Map.cpp: - * examples/APG/Shared_Memory/Pool_Growth.cpp: - * examples/APG/Streams/RecordingDevice_Text.cpp: - ACE_TRACE string gets ACE_LIB_TEXT applied - don't wrap it in - ACE_TEXT. - - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - * examples/ASX/UPIPE_Event_Server/Options.{cpp i h}: - * examples/ASX/UPIPE_Event_Server/Consumer_Router.{cpp h}: - * examples/ASX/UPIPE_Event_Server/Peer_Router.{cpp h}: - * examples/ASX/UPIPE_Event_Server/Event_Analyzer.{cpp h}: - * examples/ASX/UPIPE_Event_Server/Supplier_Router.{cpp h}: - * examples/C++NPv2/Service_Reporter.cpp: - Corrected narrow/wide-char issues. - -Wed Oct 6 15:10:12 UTC 2004 Johnny Willemsen - - * tests/Test_Output.cpp: - Added missing includes for VxWorks - -Wed Oct 6 15:00:12 UTC 2004 Johnny Willemsen - - * tests/Dynamic_Priority_Test.cpp: - When building with VxWorks include OS_NS_string.h - -Wed Oct 6 09:59:28 2004 Steve Huston - - * ace/Connector.cpp (connect_i): On connect fail, use - ACE_OS::last_error(), not errno, to check the cause. Thanks to - Todd Marshall for reporting this. - - * THANKS: Added Todd Marshall to the Hall of Fame. - -Tue Oct 5 13:12:56 2004 Dale Wilson - - * ace/Dev_Poll_Reactor.cpp: - * ace/Select_Reactor_T.cpp: - * ace/Signal.cpp: - Allow for bad status return from ACE_Sig_Set:is_member (int signo) - See Bugzilla #1954 for details. - -Tue Oct 5 11:16:53 2004 Dale Wilson - - * ace/OS_NS_stdlib.cpp: - Build error on VC7.1: initializing float w/ double may lose data - There was already a cast there to suppress the warning. I included - entire expression in the cast. - -Tue Oct 5 08:54:20 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - - Allow the addition to 'postcommand' within the scope of a custom - section. This is part of the MPC change from Tue Oct 5 08:53:10 - 2004. - -Mon Oct 4 13:34:08 2004 Ossama Othman - - * ace/OS_NS_stdlib.cpp: - - Added missing "ace/OS_NS_ctype.h" include. - - (mkstemp_emulation): - - ACE_OS::rand_r() accepts a reference to a non-const - ACE_RANDR_TYPE, not a pointer to a const one. Removed - "address-of" "&" from ACE_OS::rand_r() seed argument, and - removed the "const" qualifier from "seed" variable declaration. - -Mon Oct 4 14:22:03 2004 Martin Corino - - * ace/OS_NS_stdlib.cpp: - Fixed incorrect include ('OS_fcntl.h' -> OS_NS_fcntl.h'). - -Sun Oct 3 18:45:03 2004 Olli Savia - - * ace/OS_NS_stdlib.cpp: (realpath) - Removed extra "}". - -Fri Oct 1 23:41:11 2004 Ossama Othman - - * ace/OS_NS_ctype.h: - * ace/OS_NS_ctype.inl: - - Removed "const" qualifier from all pass-by-value function - parameters. There is no point in making such parameters - "const". - -Fri Oct 1 23:30:06 2004 Ossama Othman - - * ace/OS_NS_stdlib.h (mkstemp, mkstemp_emulation): - * ace/OS_NS_stdlib.inl (mkstemp): - * ace/OS_NS_stdlib.cpp (mkstemp_emulation): - - Added new mkstemp(3) implementation for the case where - ACE_LACKS_MKSTEMP is defined. It attempts to retain all of the - security features that vendor supplied mkstemp() implementation - provide, such as preventing symbolic link attacks. A race - condition, however, may exist when attempting to use this - implementation to create a temporary file on a network - filesystem. - - ACE_OS::mkstemp() is now available when ACE_LACKS_MKSTEMP is - defined. - - From Ganesh Pai - * ace/Hash_Map_Manager_T.h: - * ace/Map_Manager.h: - * ace/RB_Tree.h: - - Added new "lock_type" type trait. Allows one to more easily - determine the type of the underlying map/table lock. - -Fri Oct 1 11:54:17 MST 2004 Trevor Fields - - * bin/MakeProjectCreator/config/messaging.mpb: - Added requires += corba_messaging - -Fri Oct 1 11:35:59 2004 J.T. Conklin - - * Makefile.am: - * configure.ac: - - Changed to configure/build Kokyu if directory is present. - - * Kokyu/Makefile.am: - * Kokyu/tests/Makefile.am: - * Kokyu/tests/DSRT_MIF/Makefile.am: - * Kokyu/tests/EDF/Makefile.am: - * Kokyu/tests/FIFO/Makefile.am: - - New files. - -Thu Sep 30 22:20:10 2004 Ossama Othman - - * m4/tls.m4 (ACE_CHECK_TLS): - - Fixed problem where leading forward slash was not included in - the Kerberos include directory pathname. Thanks to Steve Huston - for reporting the problem. - -Thu Sep 30 19:30:23 2004 J.T. Conklin - - * ace/Makefile.am: - * ace/ace.mpc: - - Added Guard_T.* and IO_Cntl_Msg.h to header, inline, and - template files. - -Thu Sep 30 18:24:51 2004 J.T. Conklin - - * ace/Makefile.am: - - Update. - - * ace/ace.mpc: - - Remove headers that no longer exist / have been renamed. - -Thu Sep 30 18:06:41 2004 J.T. Conklin - - * ace/ace.mpc: - - Sorted header, inline, and template file sections to make it - easier to figure out if something is missing. - -Thu Sep 30 18:00:33 2004 J.T. Conklin - - * ace/ace.mpc: - - Added many missing header, inline, and template files. These - were based on what used to be installed with the old automake - builds and were lost now that ace/Makefile.am is generated by - MPC. - -Thu Sep 30 17:32:25 2004 J.T. Conklin - - * ACEXML/parser/parser/Makefile.am: - - Fix typo in includedir definition. - -Thu Sep 30 14:02:26 2004 Steve Huston - - * configure.ac: Added the same kernel version-checking code to the - ACE_HAS_EVENT_POLL check that Dev_Poll_Reactor.h uses to be sure - that if enabled, it will compile. - -Thu Sep 30 07:19:02 2004 J.T. Conklin - - * configure.ac: - - Removed aceConf.sh.in from AC_CONFIG_FILES. - - * aceConf.sh.in: - - Removed file. - -Thu Sep 30 01:26:41 2004 Ossama Othman - - * configure.ac: - - Added check for Linux event poll interface. - - * m4/config_h.m4: - - Added autoheader templates for the ACE_HAS_{EVENT,DEV}_POLL - preprocessor symbols. - - * m4/tls.m4 (ACE_CHECK_TLS): - - Fixed test for Kerberos include flags so that it wouldn't assume - that Kerberos include flags are needed for all cases. - - Fixed problem where the Kerberos include flags would not be set - correctly if running the `configure' script with cached results. - - Define and substitute new make variable - "ACE_KERBEROS_INCLUDES" that contains a directory rather than a - preprocessor command line option. The existing - "ACE_TLS_CPPFLAGS" preprocessor command line option variable is - not compatible with MPC. - - * ace/SSL/Makefile.am (libACE_SSL_la_CPPFLAGS): - - Added "-I$(ACE_KERBEROS_INCLUDES)" to the preprocessor flag - list. - - (libACE_SSL_la_LIBADD): - - Added "-lssl -lcrypto" to the library link list. - - * ace/SSL/ssl.mpc: - - Define new automake project-specific section that defines the - OpenSSL libraries to link, and added the - $(ACE_KERBEROS_INCLUDES) include directory variable to the - generated include path. - -Wed Sep 29 18:13:31 2004 Steve Huston - - * tests/tests.mpc: Added 'script' as a base project for Test_Output - and set Script_Files to run_test.pl and run_test.lst. This is to - pull the testing files to the build area for tests. - -Wed Sep 29 17:50:27 2004 Steve Huston - - * ace/OS_Memory.h: If ACE_HAS_NEW_NOTHROW is defined, then make sure - that ACE_NEW_THROWS_EXCEPTIONS is defined as well. The configure - script checks for ACE_HAS_NEW_NOTHROW and I believe that all - "up to date" compiler run-times throw an exception on a new() - failure. - -Wed Sep 29 17:30:25 2004 Irfan Pyarali - - * ace/Basic_Stats.{h,inl,cpp}: - - - Removed calculation of variation squared or deviation in the - output from dump_results(). I don't think either was been - calculated since the formula of (sum squared / samples_count) - - (avg squared) isn't a meaningful statistical value. - - - Also simplified division in dump_results() and removed - unnecessary conversions. - - - is no longer needed. - - - Made some minor simplifications to the code. - - - Made the fields of ACE_Basic_Stats public. - - - and were not being assigned in accumulate(). - - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - - Fixed a for loop. It should be 1 to n inclusive. - - * ace/DLL_Manager.cpp: - - Added additional debug statements. - - * bin/tao_other_tests.lst: - - TAO/performance-tests/Protocols/run_test.pl was added. - -Wed Sep 29 17:11:39 2004 Steve Huston - - * ace/TMCast/LinkListener.hpp: Added #include "Protocol.hpp" to - be able to see the Protocol namespace and "ace/OS_NS_string.h" - to see ACE_OS::memcpy(). - -Wed Sep 29 13:01:00 2004 J.T. Conklin - - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - - Update so that libraries and headers are installed. - -Wed Sep 29 12:29:44 2004 Steve Huston - - * ace/TMCast/MTQueue.cpp: (new file) - * ace/TMCast/Group.cpp: Added/fixed explicit template instantiations - to get build working on Solaris, Forte 7. - -Wed Sep 29 12:20:19 2004 Steve Huston - - * examples/Smart_Pointers/widget_test.cpp: Include "ace/Null_Mutex.h" - to get the ACE_Null_Mutex specializations for ACE_Guards. Fixes - build error on Sun Forte C++. - -Wed Sep 29 09:41:02 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Rewrote this module so that the code is generic and completely - data driven. - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - When setting the MAKEFILE variable get the non-workspace decorated - name. This will allow GNUmakefile's generated from multiple - workspaces within the same directory to work. - -Wed Sep 29 14:05:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - Removed setting of ACE_HAS_BROKEN_NESTED_TEMPLATES. This is used - in CIAO and it seems not be needed anymore with vc7 and newer - -Wed Sep 29 09:54:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_win32_dmc.GNU: - Added rwho=0, dmc doesn't have the needed header files - -Wed Sep 29 09:51:12 UTC 2004 Johnny Willemsen - - * ace/os_include/netinet/os_tcp.h: - * ace/README: - * ace/config-tandem.h: - * ace/config-mvs.h: - Removed ACE_LACKS_TCP_H, ACE_LACKS_NETINET_TCP_H is already there - and better - - * ace/config-win32-dmc.h: - Added ACE_LACKS_NETINET_TCP_H - -Wed Sep 29 09:44:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-dmc.h: - Added ACE_LACKS_SYS_MSG_H - -Wed Sep 29 07:46:12 UTC 2004 Johnny Willemsen - - * ace/config-tandem-nsk-mips-v2.h: - Fixed pre/post include - -Wed Sep 29 07:06:12 UTC 2004 Johnny Willemsen - - * bin/fuzz.pl: - Fixed pre/post check, the matching of the /**/ was not - correct. Added a check for _MSC_VER >= 1200. This is at - level 6, when we have updated more code, we can lower the - level. - -Tue Sep 28 21:05:37 2004 J.T. Conklin - - * Makefile.am: - - Changed to add TAO to subdirs if BUILD_TAO is defined. - -Tue Sep 28 15:38:57 2004 J.T. Conklin - - * ACEXML/apps/svcconf/svcconf.mpc: - * ACEXML/common/common.mpc: - * ACEXML/parser/parser/parser.mpc: - - Changed to inherit from core.mpb, so that libraries will - be installed. - -Tue Sep 28 15:22:01 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/acedefaults.mpb: - - Changed to add $(ACE_BUILDDIR) to include path for automake - builds. - -Tue Sep 28 15:16:54 2004 J.T. Conklin - - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - * ace/Makefile.am: - * ace/RMCast/Makefile.am: - * ace/SSL/Makefile.am: - * ace/TMCast/Makefile.am: - - Added includedir definitions so headers are installed in - the expected place. - - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - * ace/Makefile.am: - * ace/RMCast/Makefile.am: - * ace/SSL/Makefile.am: - * ace/TMCast/Makefile.am: - * netsvcs/clients/Naming/Client/Makefile.am: - * netsvcs/clients/Naming/Dump_Restore/Makefile.am: - * netsvcs/lib/Makefile.am: - - Added _LDFLAGS definitions to set shared library version - numbers. - -Tue Sep 28 14:31:10 2004 J.T. Conklin - - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/examples/SAXPrint/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - * ACEXML/tests/Makefile.am: - * Makefile.am: - * ace/RMCast/Makefile.am: - * ace/SSL/Makefile.am: - * apps/gperf/Makefile.am: - * apps/gperf/src/Makefile.am: - * apps/gperf/tests/Makefile.am: - * configure.ac: - * netsvcs/servers/Makefile.am: - * tests/Makefile.am: - * tests/SSL/Makefile.am: - - Update so things successfully build when srcdir != builddir. - -Tue Sep 28 12:48:37 2004 Chad Elliott - - * include/makeinclude/wrapper_macros.GNU: - - My change from Mon Sep 27 14:10:15 2004 was causing problems with - cygwin builds. A better solution is to not set INSBIN at all and - allow it to be set in the generated makefile or by the user on the - make command line. - -Tue Sep 28 15:25:12 UTC 2004 Johnny Willemsen - - * ace/os_include/os_fcntl.h: - For the DMC compiler define _O_TEMPORARY, seems to lack this - -Tue Sep 28 14:38:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-dmc.h: - When ACE_LACKS_STRUCT_DIR is defined, undef it, it must not be - set with the DMC compiler - -Tue Sep 28 14:14:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_win32_dmc.GNU: - Added -ND to the CFLAGS to indicate that we want to build with - thread and dll support. - -Tue Sep 28 09:13:57 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - - Borland Make has a maximum line length of roughly 32767. The - 'all' target could exceed that length given a large amount of - projects within a single workspace. In that case, we have to - create an 'all' target that specifically lists the target commands - and thereby creating a larger workspace makefile, but working - around the Borland Make limitation. - -Tue Sep 28 11:28:12 UTC 2004 Johnny Willemsen - - * ace/config-g++-common.h: - Removed setting of ACE_SIZEOF_LONG_DOUBLE, this is done in - Basic_Types.h - -Mon Sep 27 18:53:33 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/script.mpb: - * bin/MakeProjectCreator/config/man.mpb: - - New files to support scripts and manpages. Inherit from these - files, add the list of scripts or manapages to Script_Files or - Man_Files, and MPC templates with script/manpage support will - do the right thing. - -Mon Sep 27 21:16:24 2004 Carlos O'Ryan - - * bin/fuzz.pl: - Do not complain about @file directives without a filename. - Doxygen assumes the current file as the filename, so it cannot - possibly be inconsistent. - -Mon Sep 27 17:44:08 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - - Changed to add $(TAO_BUILDDIR)/orbsvcs to include path for - automake builds. - -Mon Sep 27 17:04:29 2004 Steve Huston - - * Makefile.am: - * ace/Makefile.am: - * ace/QoS/Makefile.am: - * ace/RMCast/Makefile.am: - * ace/SSL/Makefile.am: - * ace/TMCast/Makefile.am: - * ACEXML/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/parser/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - * ACEXML/examples/Makefile.am: - * ACEXML/examples/SAXPrint/Makefile.am: - * ACEXML/apps/Makefile.am: - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/tests/Makefile.am: - * apps/Makefile.am: - * apps/gperf/Makefile.am: - * apps/gperf/src/Makefile.am: - * apps/gperf/tests/Makefile.am: - * netsvcs/Makefile.am: - * netsvcs/lib/Makefile.am: - * netsvcs/clients/Makefile.am: - * netsvcs/clients/Logger/Makefile.am: - * netsvcs/clients/Naming/Makefile.am: - * netsvcs/clients/Naming/Client/Makefile.am: - * netsvcs/clients/Naming/Dump_Restore/Makefile.am: - * tests/Makefile.am: - * tests/SSL/Makefile.am: - * tests/RMCast/Makefile.am: - MPC-generated automake files, tweaked to work correctly. The rest of - the automake files will be checked in in the coming days. This set - replaces older ones that pre-dated the MPC-usage effort and were - largely out of date as they were. - -Mon Sep 27 14:10:15 2004 Chad Elliott - - * include/makeinclude/wrapper_macros.GNU: - - Set INSBIN to $(PWD) by default. To allow installation of apps - (even if 'install' is not used in the mpc file), the gnu template - always sets INSTALL to $(VBIN:%=$(INSBIN)/%) for exe's. Without - this change every exe built gets installed up in $(ACE_ROOT)/bin - which is not what we want. - -Mon Sep 27 13:46:21 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Modified the template to override the value of INSBIN if it is set - to '.'. This is similar to what is done for INSLIB and is an - iteration with rules.local.GNU. When installing, it checks for - $PWD but does not account for the fact that '.' is the same as - $PWD. - -Mon Sep 27 15:34:35 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - - Added CIAO_DnC_Client to the list of libraries being linked in. - -Mon Sep 27 09:25:37 2004 Jeff Parsons - - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp: - - Put back the recently-removed ACE_UINT64_DBLCAST_ADAPTER, - so now it and static_cast are both applied to the - computation of elapsed_time_per_invocation, which will hopefully - satisfy both MSVC 6 and MSVC 7.1. - -Mon Sep 27 12:54:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/xerces.mpb: - New base project which can be used when xerces is used - -Sun Sep 26 18:58:12 UTC 2004 Johnny Willemsen - - * ace/os_include/os_limits.h: - Removed setting of MAXSYMLINKS when not set, this is not the way - to fix compile problems in OS_NS_stdlib.cpp, set ACE_LACKS_SYMLINKS - instead if symbolic links are not supported - - * ace/config-openvms.h: - Added ACE_LACKS_SYMLINKS, removed MAXSYMLINKS - - * ace/config-vxworks.h: - Added ACE_LACKS_SYMLINKS, ACE_LACKS_REALPATH and - ACE_HAS_NONCONST_READV - -Sun Sep 26 21:06:53 2004 Olli Savia - - * ace/OS_NS_stdlib.h: - (mktemp, mkstemp) Changed protototype (parameter name) to match - implementation. - - * ace/OS_NS_stdlib.cpp: (realpath) - Added check for new macro ACE_LACKS_SYMLINKS to leave out symbolic - links related code. This fixes compile errors on platforms which - do not support symbolic links. Fixes bug 1900. - - * ace/README: - Added ACE_LACKS_SYMLINKS. - -Sun Sep 26 14:13:12 UTC 2004 Johnny Willemsen - - * ace/ICMP_Socket.cpp: - * ace/Ping_Socket.cpp: - Fixed incorrect ACE_TRACE usage - -Sun Sep 26 14:10:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/imr_activator.mpb: - * bin/MakeProjectCreator/config/imr_locator.mpb: - Added missing Id tag - -Sun Sep 26 10:10:12 UTC 2004 Johnny Willemsen - - * ace/ICMP_Socket.h: - * ace/Ping_Socket.h: - Added missing /**/ before include of pre/post.h to fix fuzz - errors - -Sun Sep 26 10:07:12 UTC 2004 Johnny Willemsen - - * ace/ACE_crc32.cpp: - * ace/ACE_crc_ccitt.cpp: - Removed trailing ; after namespace closure, fixes Tru64 build - warning - -Fri Sep 24 22:35:25 2004 Ossama Othman - - From Robert S. Iakobashvili and - Gonzalo A. Diethelm : - - * ace/ICMP_Socket.cpp: - * ace/ICMP_Socket.h: - * ace/ICMP_Socket.inl: - * ace/Ping_Socket.cpp: - * ace/Ping_Socket.h: - * ace/Ping_Socket.inl: - * tests/Network_Adapters_Test.cpp: - * tests/Network_Adapters_Test.h: - - New ICMP and "ping" support, and accompanying test. - - * ace/Makefile.am (libACE_Sockets_la_SOURCES): - * ace/ace.mpc: - * tests/Makefile.am: - * tests/tests.mpc: - - Added new ICMP and "ping" source files to the appropriate - source lists. - -Fri Sep 24 13:16:44 MST 2004 Trevor Fields - - * bin/tao_other_tests.lst: - Added new ImplRepo tests. - -Fri Sep 24 11:07:03 2004 J.T. Conklin - - * ace/ACE.h: - * ace/ACE_crc32.cpp: - * ace/ACE_crc_ccitt.cpp: - - Changed the buffer and iovec versions of ACE::crc32() and - ACE_crc_ccitt() family of functions to take an additional - initial/partial crc argument. This allows CRCs to be computed - over multiple buffers/iovecs by passing the result as input to - the next call. The default value allows callers to omit the - argument on the first call. - -Fri Sep 24 12:39:31 2004 Carlos O'Ryan - - * build/Linux/include/makeinclude/platform_linux.GNU: - Provide reasonable defaults for Boost.Test - - * bin/MakeProjectCreator/config/boost_unit_test.mpb: - Different sites may have different configurations for boost, - made the options needed to compile with it configurable via the - platform_macros.GNU file. - -Fri Sep 24 10:21:38 2004 Jeff Parsons - - * performance-tests/Server_Concurrrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp: - - Replaced ACE_UINT64_DBLCAST_ADAPTER, which doesn't satisfy - the stricter MSVC 7.1, with static_cast. - -Fri Sep 24 10:55:34 2004 Steve Huston - - * ace/config-linux-common.h: If __USE_POSIX199309 is defined from - set ACE_HAS_CLOCK_GETTIME. This is most often the case. - -Fri Sep 24 10:40:11 2004 Steve Huston - - * apps/JAWS/clients/Blobby/blobby.cpp: - * apps/JAWS/clients/Blobby/Blob.{h cpp}: - * apps/JAWS/clients/Blobby/Blob_Handler.cpp: - * apps/JAWS/clients/Blobby/Options.{h cpp}: - * apps/JAWS/clients/Caching/http_client.cpp: - * apps/JAWS/clients/Caching/http_handler.cpp: - * apps/JAWS/server/HTTP_Server.{h cpp}: - * apps/JAWS/server/HTTP_Response.cpp: - Wide-char fixes. - -Fri Sep 24 10:34:26 2004 Steve Huston - - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/acelib.mpb: For automake projects, - change ACE_ROOT to either top_srcdir or top_builddir depending - on whether it's looking for source (such as includes) or libraries. - - * performance-tests/Synch-Benchmarks/Synch_Lib/Synch_Benchmarks_Synch_Lib.mpc: - Changed base project from aceexe to acelib. This builds a library. - -Fri Sep 24 07:04:29 2004 J.T. Conklin - - * ace/Makefile.am: - * ace/ace.mpc: - - Add new files. - - * ace/ACE.h: - * ace/ACE_crc_ccitt.cpp: - - Added ACE::crc_ccitt() family of functions in new file - ACE_crc_ccitt.cpp. - - * ace/ACE_crc32.cpp: - - Changed table and shift expression so the special case with - additional masking for systems where ACE_UINT32 is more than 32 - bits wide (such as the Cray) is not needed. See "A Painless - Guide to CRC Error Detection Algorithms" by Ross Williams for - details. - - * ace/ACE.cpp: - * ace/ACE_crc32.cpp: - - Split out ACE::crc32() family of functions out of ACE.cpp into - new file ACE_crc32.cpp. - -Fri Sep 24 08:36:12 UTC 2004 Johnny Willemsen - - * ace/config-lite.h: - The ACE_UNUSED_ARG macro didn't work with the DMC compiler, so - added a new version of this macro that silences the not used - warning with DMC. - -Fri Sep 24 08:29:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_sys_socket.inl (sendto): - Removed usage of ACE_CONST_CAST - -Thu Sep 23 19:27:22 2004 J.T. Conklin - - * ace/ACE.cpp: - * ace/ACE.h: - - Changed iovec version of ACE::crc32 to take a const iovec. - -Thu Sep 23 19:59:12 UTC 2004 Johnny Willemsen - - * ace/Service_Manager.h: - * ace/Service_Object.h: - * ace/Signal.h: - * ace/Service_Types.h: - * ace/Stream_Modules.h: - * ace/Thread.inl: - Documentation fixes - - * ace/OS_NS_stdio.inl: - Added some checks for __DMC__ for the Digital Mars compiler - - * ace/OS_NS_stdio.cpp: - Added some checks for __DMC__ for the Digital Mars compiler and - use ::_close instead of _close, the former works with all compilers - and DMC, with DMC the _close is a macro. - -Thu Sep 23 19:53:12 UTC 2004 Johnny Willemsen - - * ace/streams.h: - Removed explicit check of _MSC_VER >= 1200, just check for _MSC_VER, - version 1200 is msvc6, the oldest msvc compiler we support, this - compiler and newer have pragma warning push/pop - -Thu Sep 23 12:07:02 2004 J.T. Conklin - - * ace/ACE.cpp: - * ace/ACE.h: - - Changed buffer version of ACE::crc32 to take a void * argument - (to avoid requiring callers to cast non-char data structures), - and a size_t length. - -Thu Sep 23 13:24:54 2004 Chad Elliott - - * ACEXML/tests/tests.mpc: - * examples/DLL/DLL.mpc: - * examples/Export/Export.mpc: - * examples/NT_Service/NT_Service.mpc: - * examples/Reactor/Ntalker/Reactor_Ntalker.mpc: - * examples/Web_Crawler/Web_Crawler.mpc: - * performance-tests/Misc/Misc.mpc: - * performance-tests/Server_Concurrency/Leader_Follower/Svr_Conc_Leader_Follower.mpc: - * performance-tests/Server_Concurrency/Queue_Based_Workers/Svr_Conc_Queue_Based_Workers.mpc: - * performance-tests/Synch-Benchmarks/Synch_Benchmarks.mpc: - * performance-tests/TCP/TCP.mpc: - * performance-tests/UDP/UDP.mpc: - - Added an 'exename' setting for the projects in these mpc files. - The cpp files contain some form of ACE_MAIN which used to be - recognized by MPC as an entry point. It is now necessary to set - exename since MPC will no longer recognize ACE_MAIN as a "main" - function. - -Thu Sep 23 15:13:12 UTC 2004 Johnny Willemsen - - * ace/Service_Config.h: - Doxygen improvement - -Thu Sep 23 07:42:33 2004 J.T. Conklin - - * ace/ACE.cpp: - - Changed buffer and iovec versions of ACE:crc32() to hoist - computing the end position out of the loop. - -Thu Sep 23 14:34:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-dmc.h: - New config file for the Digital Mars C++ compiler (see - www.digitalmars.com). Not fully working, but a first version. - - * include/makeinclude/platform_win32_dmc.GNU: - New GNU file for the DMC compiler, also first version - - * ace/config-win32.h: - Added check for __DMC__ - - More small changes for the DMC compiler will follow - -Wed Sep 22 14:40:15 2004 J.T. Conklin - - * ace/ACE.cpp: - - Changed ACE::crc32() family of functions to NOT fold in the - length of the string/buffer/iovec into the CRC. - - * ace/ACE.cpp: - * ace/ACE.h: - - Changed return type of ACE::crc32() family of functions from - u_long to ACE_UINT32. - -Wed Sep 22 13:46:01 2004 Balachandran Natarajan - - * bin/msvc_cidlc.pl: - - CIDLC cannot be compiled in release mode. Enable only debug - mode. - -Wed Sep 22 10:35:18 2004 J.T. Conklin - - * ace/ACE.cpp: - - Added const qualifier to ACE_OS::crc_table_. - -Wed Sep 22 17:37:12 UTC 2004 Johnny Willemsen - - * ace/Dynamic_Service_Base.h: - Doxygen fix - -Wed Sep 22 07:04:46 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Fixed a bug that I introduced in my Tue Sep 21 06:38:17 2004 - change. INSBIN can't be set to '.'. It causes many problematic - interactions with rules.local.GNU and rules.nested.GNU. - -Tue Sep 21 20:13:40 2004 J.T. Conklin - - * configure.ac: - - Added checks for getipnodebyaddr() and getipnodebyname() which - set ACE_LACKS_GETIPNODEBYADDR and ACE_LACKS_GETIPNODEBYNAME. - - * ace/OS_NS_netdb.inl: - - Changed __GLIBC__'s in conditionals to ACE_LACKS_GETIPNODEBYADDR - or ACE_LACKS_GETIPNODEBYNAME. - - * ace/config-linux-common.h: - * ace/config-netbsd.h: - - Added #define for ACE_LACKS_GETIPNODEBYADDR and - ACE_LACKS_GETIPNODEBYNAME. - -Tue Sep 21 17:50:27 2004 Steve Huston - - * examples/APG/Naming/naming.mpc: Correct the exename for Nodelocal. - It was conflicting with that of Netlocal, which, when generated, - confused Visual Age C++ templates and automake. - -Tue Sep 21 12:16:39 2004 Steve Huston - - * ACEXML/parser/parser/Parser.cpp: parse_encoding_decl(), don't - crash if the input source doesn't declare an encoding. - reset(), if current_ is already 0 (the case if no parsing ever - really got started) don't dereference it. - -Tue Sep 21 18:00:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_unistd.inl (readlink): - Only when ACE_LACKS_READLINK this is not supported, the checks for - win32 or wince are removed. - - * ace/config-WinCE.h: - * ace/config-win32-common.h: - Define ACE_LACKS_READLINK - -Tue Sep 21 15:29:12 UTC 2004 Johnny Willemsen - - * tests/QtReactor_Test.cpp: - Fixed incorrect ACE_TRACE usage, thanks to Vincent Newsum - for reporting this, this fixes - BUG 1940. - -Tue Sep 21 06:38:17 2004 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - This is a fix for [Bug 1915]. I moved the block of code that - set up INSBIN and INSLIB before the include of wrapper_macros.GNU - to ensure that the values for 'install', 'dllout' and 'libout' are - used instead of the defaults found in wrapper_macros.GNU. I - didn't use the patch supplied for this bug because it didn't take - into accout the possibility of overriding the INSBIN and INSLIB - values on the make command line. Thanks to Thomas Girard - for reporting this and supplying a - patch. - -Tue Sep 21 09:56:12 UTC 2004 Johnny Willemsen - - * ace/QtReactor.cpp: - Fixed incorrect ACE_TRACE usage, thanks to Vincent Newsum - for reporting this, this fixes - BUG 1939. We should setup a daily build with Qt soon. - -Mon Sep 20 18:07:03 2004 Balachandran Natarajan - - * tests/run_test.pl: - - Reverted the change "Sun Sep 19 20:36:43 2004 Balachandran - Natarajan " since it was giving - troubles on every platform. - -Mon Sep 20 06:54:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/global.features: - Set ssl to 0 again, added wince=0, seems this has been removed by - accident - -Sun Sep 19 20:36:43 2004 Balachandran Natarajan - - * tests/run_test.pl: - - Fix for BUG 1924. Please see - - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1924 - - for details. Thanks to Paul for the - patch. - -Sun Sep 19 14:51:32 2004 Carlos O'Ryan - - * bin/tao_orb_tests.lst: - Add yet another test to the list. - -Sun Sep 19 13:49:31 2004 Carlos O'Ryan - - * bin/MakeProjectCreator/config/global.features: - Add new "boost" feature. It should be enabled if you - are planning to use the boost::unit_test_framework classes. - Naturally you will also have to install boost (www.boost.org) - I am writing unit tests for some classes, and I am too stubborn - to use a sub-standard unit tests frameworks like cxxtest, but - too smart to roll my own. - - * bin/MakeProjectCreator/config/boost_unit_test.mpb: - New base project for unit tests based on the - boost::unit_test_framework. Try it, it is good for you. - -Sun Sep 19 08:03:57 2004 Balachandran Natarajan - - * bin/msvc_cidlc.pl: - - A new perl script to compile and build the CIDL compiler. - -Fri Sep 17 13:19:05 2004 Chad Elliott - - * tests/Dirent_Test.cpp: - * tests/Message_Queue_Test_Ex.cpp: - - Corrected minor build problems for VxWorks. - -Fri Sep 17 11:53:10 2004 Chad Elliott - - * ace/ACE.cpp: - - Return the system variable, maxFiles, in ACE::max_handles() - instead of the FD_SETSIZE which does not reflect the actual limit. - - * ace/Capabilities.cpp: - - Template instantiations for the ACE_Hash and - ACE_Equal_To were conflicting with template - specialization of the same on VxWorks. I'm not sure if they are - required for any compiler, but I wanted to be safe and exclude - them in a #if !defined (VXWORKS). - - * ace/Proactor.cpp: - - Moved the template instantiations for - auto_ptr and - auto_ptr into the right #if clause. - - * ace/config-vxworks5.x.h: - - The current GNU compiler for VxWorks (2.96) is the only old - compiler that could possible build ACE and it supports template - specialization, lacks auto_ptr and has various other platform - differences. - - * ace/os_include/os_limits.h: - - Define MAXSYMLINKS if it isn't defined by the system headers. - I chose 20 which is what I found in other system header files. - - * ace/os_include/sys/os_stat.h: - - Define S_ISLNK if it isn't defined by the system headers. - -Fri Sep 17 12:09:27 2004 Steve Huston - - * examples/ASX/CCM_App/CCM_App.cpp: - * examples/ASX/CCM_App/SC_Server.cpp: - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * examples/ASX/Event_Server/Event_Server/Options.{h cpp}: - * examples/ASX/Event_Server/Event_Server/Supplier_Router.{h cpp}: - * examples/ASX/Event_Server/Event_Server/Event_Analyzer.{h cpp}: - * examples/ASX/Event_Server/Event_Server/Consumer_Router.{h cpp}: - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.{h cpp}: - * examples/ASX/Message_Queue/buffer_stream.cpp: - Char width fixes to build clean with wide-char. - -Fri Sep 17 08:42:50 2004 Steve Totten - - * bin/PerlACE/Process_Win32.pm (Executable): - Fixed an error in which Executable() returns a UNIX-style - path instead of a Windows-style path if the IGNOREEXESUBDIR - member is set. Now, test scripts can use - PerlACE::Process::IgnoreExeSubDir() to make sure an - executable is found in the path specified without the - addition of the setting of -ExeSubDir. This change was - required for Windows Release and Static builds after the - installation directory for various common utilities was - changed to %ACE_ROOT%\bin. - -Fri Sep 17 09:30:12 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added several defines, result of autoconf testing with Cygwin - -Thu Sep 16 20:40:06 2004 Ossama Othman - - * bin/tao_other_tests.lst: - - Removed SecurityLevel1 test from this list of tests to run. The - SecurityLevel1 IDL module is longer supported by TAO. - -Fri Sep 17 00:25:17 2004 Olli Savia - - * ace/IOStream_T.h: - * ace/Object_Manager.cpp: - Changed NULL to 0 to silence compile time warning. - -Thu Sep 16 14:14:31 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/event_serv.mpb: - - Changed to inherit from svc_utils. - -Thu Sep 16 12:36:29 2004 Steve Huston - - * ace/POSIX_Proactor.{h cpp}: Change the SystemType enumerator value - names to begin with ACE_. This avoids conflicts with other facilities - that use an OS_ prefix. - -Thu Sep 16 09:22:08 2004 Dale Wilson - - * ace/OS_NS_Thread.cpp: - In ACE_TSS_Cleanup::exit, defer deleting TSS objects - until it is no longer necessary to access the ACE_TSS_Cleanup - itself. One of the objects to be deleted is a Thread_Exit - which may eventually cause (or at least allow) the deletion - of the ACE_TSS_Cleanup. - The original code worked like this but I changed it when - I added additional cleanup operations to the exit method. - -Thu Sep 16 08:14:14 2004 Chad Elliott - - * ace/Memory_Pool.cpp: - * ace/config-hpux-11.00.h: - - Removed a bug workaround for aCC A.03.04. It is no longer a - problem to specify other mmap base addresses when running - 64-bit HP-UX applications. - -Thu Sep 16 07:47:09 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Added a CUSTOM_TARGETS macro that will allow users to access - custom targets that can be generated with the use of the - 'verbatim' clause in mpc files. - -:09 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Added a CUSTOM_TARGETS macro that will allow users to access - custom targets that can be generated with the use of the - 'verbatim' clause in mpc files. - -Thu Sep 16 10:07:00 UTC 2004 Martin Corino - - * apps/Gateway/Peer/peer.mpc: - * apps/Gateway/Peer/svc.conf: - * apps/Gateway/Gateway/gateway.mpc: - * apps/Gateway/Gateway/svc.conf: - - Changed MPC configuration to generate the correct makefiles/project - files for building a separate daemon executable and service object - shared library. - Changed service configurator files to use correct PATH specification. - -Thu Sep 16 08:28:12 UTC 2004 Johnny Willemsen - - * ace/os_include/os_limits.h: - Added special include for VxWorks, it defines _POSIX_TIMER_MAX - in time.h - -Thu Sep 16 08:20:12 UTC 2004 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_HAS_POSIX_SEM and ACE_LACKS_NAMED_POSIX_SEM - - * ace/OS_NS_sys_mman.{h,inl}: - Moved include ace/os_include/sys/os_mman.h from inl to header - file, so that we get all the needed constants when building - with Cygwin and inlining disabled - -Thu Sep 16 07:55:12 UTC 2004 Johnny Willemsen - - * m4/config_h.m4: - Removed ACE_HAS_CYGWIN32_SOCKET_H - -Thu Sep 16 07:33:12 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added the new orbsvcs libs - -Wed Sep 15 15:32:59 2004 J.T. Conklin - - * configure.ac: - - Added checks for fgetws and fputws. - - * ace/OS_NS_stdio.h: - * ace/OS_NS_stdio.inl: - - Added feature test macros ACE_LACKS_FGETWS and ACE_LACKS_FPUTWS - and disable wide character versions of fgets and fputs if they - are not present. Thanks to Johnny Willemsen for reporting this - bug. - -Wed Sep 15 15:17:39 2004 J.T. Conklin - - * ace/OS_NS_string.h: - - Changed preprocessor conditional for the declaration of the wide - character version of strtok_r_emulation() to use ACE_WCHAR and - ACE_LACKS_WCSTOK instead of ACE_HAS_REENTRANT_FUNCTIONS. Thanks - to Johnny Willemsen for reporting this bug. - -Wed Sep 15 11:41:53 2004 Douglas C. Schmidt - - * ace/ACE.cpp (set_handle_limit): Removed the - - ACE_NOTREACHED (return 0); - - and replaced it with - - return 0; - - Thanks to Martin Corino for reporting this. - -Wed Sep 15 10:46:07 2004 Dale Wilson - - * ace/Log_Msg.cpp: - - Explicitly initialize a static int to zero to make it clear that - the initial value is important. - -Wed Sep 15 12:51:12 UTC 2004 Johnny Willemsen - - * configure.ac: - Removed check for ACE_HAS_CYGWIN32_SOCKET_H, this is not needed - anymore - -Tue Sep 14 22:44:39 2004 Balachandran Natarajan - - * ace/Inet_Addr.cpp: - - Fix for the problem reported by Charlie Duke, which is that - ACE_INET_Addr::string_to_addr cannot accept an address string - produced by ACE_INET_Addr::addr_to_string method. The output of - addr_to_string method is of the form "[ipv4]:port" while the - string_to_addr accepts "ipv4:port" i.e. cannot handle "[]". - - The fix for this is not to include "[]" in - string_to_addr. Thanks to Charlie Duke . - - * THANKS: Updated Charlie's email address. - -Tue Sep 14 15:02:05 2004 Dale Wilson - - * NEWS: - Updated: TSS leak has been conquered. - -Tue Sep 14 11:07:25 2004 Steve Huston - - * ace/Malloc_T.{h inl}: Added ACE_Cached_Allocator<>::pool_depth() - and ACE_Dynamic_Cached_Allocator<>::pool_depth(). Each returns the - number of items in the cache available for allocating. Thank you to - Jeff Jones for this addition. - - * tests/Cached_Allocator_Test.cpp: Added tests of the new pool_depth() - method. - - * THANKS: Added Jeff Jones to the Hall of Fame. - -Tue Sep 14 11:58:12 UTC 2004 Johnny Willemsen - - * ace/Dynamic_Service.h: - Doxygen improvement - -Tue Sep 14 10:21:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Added support for the Intel 8.1 C++ Compiler - -Tue Sep 14 07:01:12 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added TAO/orbsvcs/orbsvcs/CosNaming_Skel to the list of projects - to build first. - -Mon Sep 13 19:09:23 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Changed to use ACE_CHECK_HAS_FUNC([scandir]) and get rid of - explicit definition, autoconf template macro, etc. - -Mon Sep 13 20:33:25 2004 Douglas C. Schmidt - - * ace/Select_Reactor_Base.cpp: Changed the - ACE_Select_Reactor_Handler_Repository::open() method so that it - uses the generalized ACE::set_handle_limit() method to not lower - the handles, which caused problems for applications that want to - use small reactor sizes but not limit the number of handles in - the process. Thanks to Eider Oliveira for suggesting this. - - * ace/ACE.cpp, - ace/ACE.h: Generalized ACE::set_handle_limit() so - it can be told not to lower the handle limit. - -Mon Sep 13 18:15:44 2004 J.T. Conklin - - * ACE_wrappers/m4/platform.m4: - - Added new ACE_FUNC_IOCTL_ARGTYPES macro, used to set - ACE_IOCTL_TYPE_ARG2. - - * ACE_wrappers/ace/config-netbsd.h: - - Added ACE_IOCTL_TYPE_ARG2 definition. - - * ACE_wrappers/ace/OS_NS_stropts.h: - * ACE_wrappers/ace/OS_NS_stropts.inl: - - Added feature test macro ACE_IOCTL_TYPE_ARG2 (which defaults to - int) so that ACE_OS::ioctl uses the same type as ::ioctl. This - help avoid sign extension problems on 64 bit platforms that use - unsigned long. - -Mon Sep 13 15:52:04 2004 Dale Wilson - - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.cpp: - * ace/TSS_T.cpp: - Bugzilla Bug 1542 TSS Leak revisited. - The goal is for each thread's TSS object to be - deleted at thread exit time, and for the TSS - key itself to be released when: - the last thread stops using it, or - the ACE_TSS (if any) is deleted - which ever comes *last*. - -Mon Sep 13 14:56:53 2004 Balachandran Natarajan - - * ace/RB_Tree.h (class ACE_RB_Tree): - * ace/RB_Tree.cpp: - - Added a special constructor useful for providing a valid vtable - and allocator if the tree is reconstructed from shared - memory. Thanks to Lothar Werzinger for the patches. - -Mon Sep 13 12:49:22 2004 Steve Huston - - * ace/config-aix-4.x.h: Alter the value of ACE_SIZEOF_WCHAR based - on whether or not __64BIT__ is set (4 if yes, 2 if no). See - /usr/include/sys/types.h for verification. - - * apps/Gateway/Gateway/Connection_Handler.cpp: Add missing #include - "ace/OS_NS_string.h". - -Mon Sep 13 12:39:11 2004 Steve Huston - - * ace/DLL_Manager.cpp: Added explicit template instantiations for - Wed Sep 8 17:13:41 2004 Steve Huston - -Mon Sep 13 06:50:46 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/dslogadmin_serv.mpb: - - Changed to inherit from svc_utils. - -Mon Sep 13 12:02:12 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added TAO/orbsvcs/orbsvcs/CosNotification_Skel - -Mon Sep 13 10:42:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - When using the 8.0 compiler, disable certain warnings about padding - -Mon Sep 13 09:57:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - The intel compiler on Itanium is called icc, not ecc anymore - -Mon Sep 13 09:46:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_Thread.inl: - Fixed compile error in VxWorks specific code - -Mon Sep 13 09:44:12 UTC 2004 Johnny Willemsen - - * ace/config-icc-common.h: - Added ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION - -Mon Sep 13 09:31:12 UTC 2004 Johnny Willemsen - - * configure.ac: - Added ACE_CHECK_LACKS_HEADERS for wchar.h. - -Mon Sep 13 09:06:12 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added TAO/orbsvcs/orbsvcs/CosNaming_Serv to the list of projects - to build first. - -Sun Sep 12 17:20:39 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/rteventlogadmin.mpb - - Update *.mpb files to reflect new libraries. - - * bin/MakeProjectCreator/config/dseventlogadmin.mpb - * bin/MakeProjectCreator/config/dseventlogadmin_serv.mpb - * bin/MakeProjectCreator/config/dseventlogadmin_skel.mpb - * bin/MakeProjectCreator/config/dslogadmin.mpb - * bin/MakeProjectCreator/config/dslogadmin_serv.mpb - * bin/MakeProjectCreator/config/dslogadmin_skel.mpb - * bin/MakeProjectCreator/config/dsnotifylogadmin.mpb - * bin/MakeProjectCreator/config/dsnotifylogadmin_serv.mpb - * bin/MakeProjectCreator/config/dsnotifylogadmin_skel.mpb - - Split Logging, Event Logging, and Notify Logging Services into - client stub, servant skeleton, and service implementation - libraries. - - * bin/MakeProjectCreator/config/ec_use_typed_events_serv.mpb: - * bin/MakeProjectCreator/config/event_serv.mpb - * bin/MakeProjectCreator/config/event_skel.mpb - - Updated dependencies. - - * bin/MakeProjectCreator/config/ec_use_typed_events_skel.mpb: - - Removed file, events skeleton w/typed events does not require - any additional dependencies. They have been moved to _serv. - -Sun Sep 12 17:20:12 UTC 2004 Johnny Willemsen - - * ace/Log_Msg.cpp (log): - In then handling of %Z replaced an ACE_NEW_RETURN with a - ACE_NEW_NORETURN, so that when allocation fails, we just do - a break instead of return. Seems this code was written before - the existence of ACE_NEW_NORETURN. This also fixes the crashing - of the Intel 8.0 C++ Compiler on Itanium on this file, no idea - why this caused a crash, that is one for Intel to sort out. - -Sat Sep 11 11:41:12 UTC 2004 Johnny Willemsen - - * apps/Gateway/Peer/Peer.cpp: - * apps/Gateway/Peer/peerd.cpp: - Added missing includes to fix compile problems in Cygwin build - -Fri Sep 10 22:54:55 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/config/ciao_server.mpb: - * bin/MakeProjectCreator/config/ciao_server_dnc.mpb: - - Added utils to the list of projects that are inherited. - -Sat Sep 11 00:49:39 2004 Olli Savia - - * ace/IOStream.h: - Changed NULL to 0 to silence compile time warning. - -Fri Sep 10 15:39:22 2004 Steve Huston - - * ace/High_Res_Timer.{h inl cpp}: Added a new static method that - calculates the difference between two ACE_hrtime_t quantities. - Takes into account that the time counter may have wrapped around - between the start and end. Changed all time difference calculations - to use the new elapsed_hrtime() method. - -Fri Sep 10 13:53:00 UTC 2004 Martin Corino - - * ace/Time_Value.h: - * ace/Time_Value.inl: - - Moved '#include "ace/Basic_Types.h"' from Time_Value.cpp to - Time_Value.h because it's needed there since ACE_UINT64 is - introduced (see below). - -Thu Sep 09 18:29:17 2004 Ossama Othman - - * ace/Time_Value.h (msec): - * ace/Time_Value.inl (msec): - - Even though MSVC++ 6 supports 64 bit integers, it does not - support the "long long" syntax. Instead it supports its own - "__int64" built-in type. Use "ACE_UINT64" instead of "unsigned - long long". Fixes syntax errors exhibited by MSVC++ 6. - -Thu Sep 9 16:40:27 2004 Steve Huston - - * apps/Gateway/Gateway/Connection_Handler.cpp: - * apps/Gateway/Gateway/Connection_Handler_Connector.cpp: - * apps/Gateway/Gateway/File_Parser.{h cpp}: - * apps/Gateway/Gateway/Gateway.cpp: - * apps/Gateway/Gateway/gatewayd.cpp: - * apps/Gateway/Peer/Options.{h cpp}: - * apps/Gateway/Peer/Peer.{h cpp}: Narrow/wide char fixes. - - * apps/Gateway/Gateway/Options.h: Removed const char *connector_host() - method because it's not ever defined or referenced. - - * apps/Gateway/Peer/peer.mpc: New project definition. - -Thu Sep 9 16:17:38 2004 Olli Savia - - * apps/JAWS3/jaws3/Templates.cpp: - Added explicit static template member instantiations. - -Thu Sep 9 05:58:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_unistd.cpp: - Implemented num_processors and num_processors_online for Cygwin - -Wed Sep 8 21:50:13 2004 Balachandran Natarajan - - * ace/Time_Value.h: - * ace/Time_Value.inl: - - The change added in this checkin - - Wed Sep 8 10:17:46 2004 Douglas C. Schmidt - should not be available on platforms that lacks long long. - -Wed Sep 8 17:13:41 2004 Steve Huston - - * ace/DLL_Manager.{h cpp}: Added new private method, - ACE_DLL_Handle::get_dll_names(). - This builds the list of names to try to dlopen() based on the - specified dll_name and the platform's prefix/suffix/decorator - configuration. It doesn't try to load anything and doesn't do any - search path games like ACE::ldfind(). All of the rules for locating - files based on environments and security policy are administered by - the OS. This just feeds names to try, allowing for example, svc.conf - to continue simply specifying base names like "ACE". This restores - basic OS functionality, such as the ability to load a DLL from the - same directory as the loading executable, as well as closing - potential security loopholes opened by ACE's scanning the search - path and passing absolute paths to dlopen(). - ACE_DLL_Handle::open() now calls get_dll_names() for a list of names - to try unless ACE_MUST_HELP_DLOPEN_SEARCH_PATH is defined, in which - case it does the old ACE::ldfind() call and dlopen()s the - absolute path as it did before this change. - - This also allows DLLs to load on wide-char non-Windows builds without - messing with the sprintf() format specs in Lib_Find.cpp. - -Wed Sep 8 10:17:46 2004 Douglas C. Schmidt - - * ace/Time_Value.{h,inl} Added a new msec() method that uses - unsigned long long to compute the value to prevent overflow. - Thanks to Boris Kaminer for reporting this. - -Wed Sep 8 08:15:00 UTC 2004 Simon Massey - - * tests/FIFO_Test.cpp - Fixed one of the failing tests under HPUX requires delay like AIX - -Wed Sep 8 08:15:00 UTC 2004 Simon Massey - - * tests/IOStream_Test.cpp - Sorry, I got the wrong header file yesterday; isspace() is defined in - ace/os_include/os_ctype.h NOT #include ace/OS_NS_ctype.h - -Tue Sep 7 16:39:28 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/dseventlogadmin.mpb - * bin/MakeProjectCreator/config/dsnotifylogadmin.mpb - * bin/MakeProjectCreator/config/lifecycle.mpb - * bin/MakeProjectCreator/config/notifytest.mpb - * bin/MakeProjectCreator/config/rtnotify.mpb - * bin/MakeProjectCreator/config/time.mpb - - Update *.mpb files to reflect new libraries. In many cases this - required adding inheriting from additional base projects, as - libraries were being linked in because of naming -- which was - once the service implementation (and thus pulled in lots of - other libraries) and is now just the Naming client stubs. - - * bin/MakeProjectCreator/config/ec_use_typed_events.mpb - * bin/MakeProjectCreator/config/ec_use_typed_events_skel.mpb - * bin/MakeProjectCreator/config/event.mpb - * bin/MakeProjectCreator/config/event_serv.mpb - * bin/MakeProjectCreator/config/event_skel.mpb - * bin/MakeProjectCreator/config/naming.mpb - * bin/MakeProjectCreator/config/naming_serv.mpb - * bin/MakeProjectCreator/config/naming_skel.mpb - * bin/MakeProjectCreator/config/notification.mpb - * bin/MakeProjectCreator/config/notification_serv.mpb - * bin/MakeProjectCreator/config/notification_skel.mpb - * bin/MakeProjectCreator/config/trading.mpb - * bin/MakeProjectCreator/config/trading_serv.mpc - * bin/MakeProjectCreator/config/trading_skel.mpc - - Split Event, Naming, Notification, and Trading Services into - client stub, servant skeleton, and service implementation - libraries. - -Tue Sep 7 15:45:00 UTC 2004 Simon Massey - - * examples/IOStream/server/iostream_server.cpp - getpid() from ace/OS_NS_unistd.h actually used in both halves of - #ifdef #else #endif guard so the conditional arround the #include - is actually wrong and so has been removed. - - * tests/IOStream_Test.cpp - isspace() used without #include ace/OS_NS_ctype.h, added this to - the guarded section where it is used. - -Tue Sep 7 07:08:26 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - - As part of the -expand_env option, I moved some functionality out - of the ProjectCreator.pm and into this module which was only used - by this project creator. - -Tue Sep 7 06:41:27 2004 Chad Elliott - - * include/makeinclude/rules.local.GNU: - - Removed the if check for static_libs_only. The STATIC_LINK_FLAG - option will be added to the LDFLAGS if static_link is set to 1. - -Mon Sep 6 10:04:12 UTC 2004 Johnny Willemsen - - * ace/Sock_Connect.cpp: - When using VxWorks also include OS_NS_stdio.h - -Mon Sep 6 07:12:12 UTC 2004 Johnny Willemsen - - * ace/OS.h: - Removed include of sys/modem.h for HPUX, this is already done in - os_include/os_termios.h - -Fri Sep 3 15:53:19 2004 Steve Huston - - * ace/config-sunos5.8.h: Added ACE_HAS_TIMEZONE. This may be - pertinent to previous Solaris versions, but I don't have any - to test on. - -Fri Sep 3 12:34:41 2004 J.T. Conklin - - * ace/OS_NS_sys_mman.inl: - - Removed redundant conditional used to disable madvise for WIN32 - systems. Instead use ACE_LACKS_MADVISE feature test macro. - - * ace/config-win32-common.h: - - Added ACE_LACKS_MADVISE definition. - -Fri Sep 3 15:10:22 2004 Steve Huston - - * ace/config-aix-5.x.h: Add ACE_HAS_TIMEZONE. - - * ace/OS_NS_time.h: Include "ace/OS_NS_errno.h" - ACE_NOTSUP_RETURN - sets errno. - -Fri Sep 3 21:36:51 2004 Olli Savia - - * apps/drwho/File_Manager.cpp: - Use ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION - to check if explicit template instantiation is needed. - Thanks to Johnny Willemsen for informing me about this - macro. - -Fri Sep 3 20:02:20 2004 Olli Savia - - * ace/OS_NS_unistd.inl: - There is no need to check missing prototype since this has - already been taken care by os_unistd.h. - - * ace/os_include/arpa/os_inet.h: - * ace/os_include/os_stdlib.h: - * ace/os_include/os_strings.h: - * ace/os_include/os_unistd.h: - To make things easier to maintain use new ACE_LACKS_xxx_PROTOTYPE - macros to check whether we need to declare missing function - prototype. - - * ace/README: - Added new ACE_LACKS_xxx_PROTOTYPE macros - - * ace/config-lynxos.h: - Modified to follow changes above. - -Fri Sep 3 19:35:48 2004 Olli Savia - - * ace/Log_Msg.h: - Removed broken macro redefinition code to prevent people - thinking that it actually works. Cleaned up #undef's. - -Fri Sep 3 19:30:18 2004 Olli Savia - - * ace/Global_Macros.h: - LynxOS no longer needs special macro handling. - -Fri Sep 3 19:13:24 2004 Olli Savia - - * apps/drwho/File_Manager.cpp: - LynxOS 3.x needs explicit template instantiation. - -Fri Sep 3 10:44:27 2004 Steve Huston - - * ace/Process_Manager.cpp (append_proc): If the process_table_ needs - to be enlarged, make sure it's to a size greater than 0. If the - original size is 0, change it to DEFAULT_SIZE, else double it (as - was always done). - (resize): Changed to not shrink the process_table_ array. Primarily - to guard against changing it to 0, but also guards against having to - decide what to do with entries that won't fit in the new array. - -Fri Sep 3 07:43:12 UTC 2004 Johnny Willemsen - - * examples/DLL/test_dll.cpp: - * examples/Export/test.cpp: - Fixed for unicode builds - -Thu Sep 2 16:39:29 2004 J.T. Conklin - - * ace/config-linux-common.h: - * ace/config-netbsd.h: - - Changed to define ACE_HAS_TIMEZONE. - - * ace/OS_NS_time.h: - - Changed ace_timezone() to use ACE_HAS_TIMEZONE feature test - macro instead of OS-specific macros to determine whether to - use global timezone variable or the gettimeofday() function - to obtain the current timezone. - - * configure.ac: - - Changed to call ACE_VAR_TIMEZONE. - - * m4/platform.m4: - - Added new macro, ACE_VAR_TIMEZONE. Sets new feature test macro - ACE_HAS_TIMEZONE if platform supports global timezone variable. - -Thu Sep 2 16:43:29 2004 Steve Huston - - * m4/ace.m4: Added AM_CONDITIONAL for BUILD_EXCEPTIONS, BUILD_THREADS, - BUILD_ACE_CODECS, BUILD_ACE_FILECACHE, BUILD_ACE_OTHER, - BUILD_ACE_TOKEN, BUILD_ACE_UUID, BUILD_RWHO, BUILD_WFMO, and - BUILD_WINREGISTRY so the MPC 'requires' feature can properly weed - things out without configure- and build-time errors. - -Thu Sep 2 12:51:00 UTC 2004 Martin Corino - - * tests/Process_Manager_Test.cpp: - - Changed commandline buildup of childprocesses to start with './' - for non-WIN32 platforms as with other tests. - By default test did not run on OpenVMS without this. - -Thu Sep 2 12:51:00 UTC 2004 Martin Corino - - * ace/config-openvms.h: - - Added ACE_LACKS_UNIX_SIGNALS since OpenVMS cannot use signals - in combination with PTHREAD. - - * ace/Process.cpp: - * ace/Process_Manager.cpp: - - Implemented alternatives in timed wait() functions for systems - with ACE_LACKS_UNIX_SIGNALS and !WIN32. - -Thu Sep 2 07:24:20 2004 Chad Elliott - - * bin/MakeProjectCreator/config/core.mpb: - * bin/MakeProjectCreator/templates/bor.mpd: - - Switch the borland template over to use the INSTALL_THIS_TARGET - template value instead of a 'verbatim' section to do the same - thing. - -Thu Sep 2 09:12:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - With gcc 3.4.1 -mcpu is deprecated, but -mtune must be used - -Thu Sep 2 07:24:12 UTC 2004 Johnny Willemsen - - * apps/FaCE/FaCE.mpc: - * apps/FaCE/FaCENOACE.mpc: - Added missing Id tag - -Wed Sep 1 17:16:29 2004 Steve Huston - - * ace/Reverse_Lock_T.inl: - * ace/Typed_SV_Message.inl: Added #include "ace/config-all.h" to get - missing macros (ACE_NOTSUP_RETURN, ACE_TRACE). - - * apps/JAWS/clients/Caching/http_client.cpp: - * apps/JAWS/clients/Caching/http_handler.cpp: - * apps/JAWS/server/HTTP_Response.cpp: - * apps/JAWS/server/HTTP_Server.{h cpp}: - * apps/JAWS/server/IO.cpp: - * apps/JAWS3/jaws3/Task_Timer.cpp: Add missing includes. - -Wed Sep 1 12:32:31 2004 Ossama Othman - - * ace/OS_NS_Thread.inl (mutex_init): - - Explicitly cast the unused returned value of an - ACE_ADAPT_RETVAL macro call to "void" to address a "right-hand - operand of comma has no effect" warning exhibited by GNU g++ - 3.4.x. Thanks to Bogdan Jeram and - Paul Lew for reporting the warning. - -Wed Sep 1 11:35:44 2004 J.T. Conklin - - * m4/config_h.m4: - - Removed ACE_UINT64_FORMAT_SPECIFIER autoheader template. It - is now defined within ACE_CHECK_FORMAT_SPECIFIERS. - - * m4/platforms.m4: - - Added new macro ACE_CHECK_FORMAT_SPECIFIERS, which is used to - define preprocessor macros that overide the defaults provided - for size_t, ssize_t, ACE_INT64, and ACE_UINT64 *printf format - specifiers. I don't think autoconf feature tests are possible, - especially if we ever hope to support cross compilation, but at - least this pulls everything into one place. - -Wed Sep 1 12:52:40 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Split out the ACE specific portion of AutomakeWorkspaceCreator.pm - into a new helper module. The helper module is dynamically loaded - in by the AutomakeWorkspaceCreator. - -Wed Sep 1 10:01:57 2004 J.T. Conklin - - * ace/SOCK_Dgram_Bcast.cpp: - - Added !defined(__NetBSD__) to conditional so sockaddr.sa_len - version of the code will be used. Fixes SOCK_Bcast_Dgram_Test - failures. - - * ace/Sock_Connect.cpp: - - Added !defined(__NetBSD__) to conditional so sockaddr.sa_len - version of the code will be used. - -Wed Sep 1 12:40:28 2004 Steve Huston - - * ace/config-aix-4.x.h: Changed the ACE_HAS_3_PARAM_WCSTOK test to - include _XOPEN_SOURCE >= 500, not == 500. Fixes compile error - on AIX 5.2. - -Wed Sep 1 12:45:12 UTC 2004 Johnny Willemsen - - * ace/Dump_T.cpp: - Added include of config-all.h to get ACE_TRACE - -Wed Sep 1 07:43:46 2004 Douglas C. Schmidt - - * tests/Message_Queue_Notifications_Test.cpp (producer): Fixed - this test so it works with the changes to - ACE_Message_Queue::is_full_i() below. Thanks to Rick Robinson - for this fix, as well. - - * ace/Message_Queue_T.inl: Changed the implementation of - is_full_i() so the comparision operator is >= rather than >, - which makes it possible to use a 0 high water mark to disable - the enqueue side of the queue. Thanks to Rick Robinson - for reporting this. - - * ace/POSIX_Proactor.h: Updated the documentation to use - the right names for ACE_POSIX_SIG_Proactor and - ACE_POSIX_AIOCB_Proactor. Thanks to John D. Robertson - for motivating this fix. - -Wed Sep 1 07:00:39 2004 Chad Elliott - - * bin/MakeProjectCreator/config/global.features: - - Disable the wince feature setting. - - * apps/FaCE/FaCE.mpc: - * apps/FaCE/FaCENOACE.mpc: - - Adding mpc files to replace the vcp files. These projects will - only build on wince so they require the wince feature which is - disabled by default. - - * apps/FaCE/FaCE.vcp: - * apps/FaCE/FaCE.vcw: - * apps/FaCE/FaCENOACE.vcp: - * apps/FaCE/FaCENOACE.vcw: - - Removed these files. - -Wed Sep 1 06:48:34 2004 Chad Elliott - - * examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc: - - With the current version of MPC, we must specify the exename for - this project. MPC no longer automatically determines that - ACE_TMAIN is the entry point. - -Wed Sep 1 10:12:12 UTC 2004 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Added several new defines, these are gathered by comparing an - autoconf generated config.h and the original file. It seems HPUX - has much more stuff than we currently use. Everything is tested - on HPUX 11i v2, maybe it breaks older versions, I don't think so - but if it will, our daily builds will trigger this and we have - to make the defines than dependent on the HPUX version. Added are: - ACE_HAS_NEW_NO_H, ACE_HAS_AUTOMATIC_INIT_FINI, - ACE_HAS_LONG_MAP_FAILED, ACE_HAS_MEMCHR, - ACE_HAS_POSITION_INDEPENDENT_POINTERS, ACE_HAS_POSIX_GETPWNAM_R, - ACE_HAS_P_READ_WRITE, ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS, - ACE_LACKS_PRI_T, ACE_HAS_SIG_C_FUNC, ACE_HAS_SIGSUSPEND, - ACE_HAS_SOCKLEN_T, ACE_HAS_SYS_ERRLIST, ACE_HAS_VOIDPTR_MMAP, - ACE_HAS_VOIDPTR_SOCKOPT, ACE_HAS_GETRUSAGE_PROTOTYPE, ACE_HAS_TIMOD_H, - ACE_HAS_SYS_XTI_H, ACE_HAS_PTHREAD_RESUME_NP. If you don't agree to - one of these defines, let us know, then we also have some work on - the autoconf support, because autoconf gave info all these can be - setup. - -Wed Sep 1 07:02:12 UTC 2004 Johnny Willemsen - - * ace/Synch_Options.cpp: - * ace/Shared_Object.cpp: - * ace/Read_Buffer.cpp: - * ace/SV_Message.inl: - Added include of config-all.h to get ACE_TRACE - -Tue Aug 31 12:18:01 2004 J.T. Conklin - - * ace/config-netbsd.h: - - Moved ACE_HAS_PENTIUM into "defined(__i386__)" conditional. - -Tue Aug 31 14:38:19 2004 Steve Huston - - * ace/OS_NS_errno.h: - * ace/os_include/os_errno.h: Include config-lite.h instead of - config-all.h to minimize re-includes. - - * ace/OS_NS_errno.inl: Include config-all.h to pick up ACE_TRACE. - -Tue Aug 31 08:36:12 UTC 2004 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Added ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION for the HP aCC - compiler - -Tue Aug 31 08:16:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_time.cpp: - When ACE_LACKS_NATIVE_STRPTIME is defined, include - os_include/os_ctype.h to get isdigit - -Tue Aug 31 00:21:48 2004 J.T. Conklin - - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - - Removed vestigial ACE_HAS_LAZY_V definition. - -Tue Aug 31 00:17:45 2004 J.T. Conklin - - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - - Removed vestigial ACE_HAS_IOMANIP_NO_H definition. - -Mon Aug 30 23:57:58 2004 J.T. Conklin - - * ace/config-netbsd.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - - Removed vestigial ACE_HAS_SYS_IOCTL_H definition. ACE now uses - ACE_LACKS_SYS_IOCTL_H. - - * ace/config-integritySCA.h: - - Removed vestigial ACE_LACKS_SYS_FILE_H definition. - - * ace/config-integritySCA.h: - * ace/config-psos-diab-mips.h: - * ace/config-qnx-neutrino.h: - * ace/config-rtp-62x.h: - * ace/config-rtp-pre62x.h: - - Removed vestigial ACE_LACKS_RPC_H definition. - -Mon Aug 30 23:47:41 2004 J.T. Conklin - - * configure.ac: - - Added check for ACE_LACKS_TOWLOWER and ACE_LACKS_TOWUPPER. - -Mon Aug 30 23:39:33 2004 J.T. Conklin - - * configure.ac: - - Changed check for libc.h and osfcn.h to not export a feature - test macro definition, as the results are only needed within - the configure script itself. - -Mon Aug 30 23:28:03 2004 J.T. Conklin - - * ace/config-macos.h: - * ace/config-macos-panther.h: - - Removed vestigial ACE_HAS_PTHREAD_CANCEL and ACE_HAS_PTHREAD_KILL - definitions. - -Mon Aug 30 23:18:51 2004 J.T. Conklin - - * ace/config-linux-common.h: - * ace/config-openbsd.h: - - Removed vestigial ACE_HAS_MKSTEMP definition. ACE now uses - ACE_LACKS_MKSTEMP. - -Mon Aug 30 22:39:24 2004 J.T. Conklin - - * tests/TSS_Test.cpp: - - Changed the number of iterations from 100 to 25 so the test will - run on systems with pthreads with the minimum required number of - thread keys (128). This should still be sufficient to check the - TSS wrappers without exceeding the minimum requirements. - -Mon Aug 30 18:31:28 2004 J.T. Conklin - - * ace/config-netbsd.h: - - Add ACE_SSIZE_T_FORMAT_SPECIFIER and ACE_SIZE_T_FORMAT_SPECIFIER - definitions for NetBSD/amd64. - - * netsvcs/clients/Logger/Makefile.am: - * netsvcs/clients/Naming/Client/Makefile.am: - * netsvcs/clients/Naming/Dump_Restore/Makefile.am: - * netsvcs/servers/Makefile.am: - - Fix the _LDADD definitions that MPC doesn't get right yet. - - * configure.ac: - - Added checks for: ACE_LACKS_STRCHR, ACE_LACKS_STRCSPN, - ACE_LACKS_STRERROR, ACE_LACKS_STRPBRK, ACE_LACKS_STRSPN, - ACE_LACKS_STRTOD, ACE_LACKS_STRTOL, ACE_LACKS_STRTOUL, - and ACE_LACKS_SWAB. - - Added check for ACE_HAS_STRNLEN. - - Added checks for: ACE_LACKS_ARPA_INET_H, ACE_LACKS_DIRENT_H, - ACE_LACKS_DLFCN_H, ACE_LACKS_ERRNO_H ACE_LACKS_FCNTL_H, - ACE_LACKS_NET_IF_H, ACE_LACKS_NETDB_H, ACE_LACKS_NETINET_IN_H, - ACE_LACKS_SEARCH_H, ACE_LACKS_SEMAPHORE_H, ACE_LACKS_SIGNAL_H, - ACE_LACKS_STDLIB_H, ACE_LACKS_STRING_H, ACE_LACKS_STRINGS_H, - ACE_LACKS_SYS_IOCTL_H, ACE_LACKS_SYS_IPC_H, ACE_LACKS_SYS_MMAN_H, - ACE_LACKS_SYS_RESOURCE_H, ACE_LACKS_SYS_SEM_H, ACE_LACKS_SYS_SHM_H, - ACE_LACKS_SYS_SOCKET_H, ACE_LACKS_SYS_STAT_H, ACE_LACKS_SYS_TIME_H, - ACE_LACKS_SYS_UN_H, ACE_LACKS_SYS_WAIT_H, ACE_LACKS_TERMIOS_H, and - ACE_LACKS_TIME_H. - - Removed checks for ACE_HAS_SYS_IOCTL_H. - -Mon Aug 30 17:38:22 2004 Steve Huston - - Changes that get PocketPC/WinCE back into a state where they build. - - * ace/config-WinCE.h: Add ACE_LACKS_ASSERT_H, ACE_LACKS_SEARCH_H, - and ACE_LACKS_WCHAR_H for WinCE 3. - Add ACE_LACKS_SWAB for all versions. - - * ace/config-win32-msvc.h: Set (or clear) ACE_LACKS_RTTI based on - whether or not the compiler switch to enable rtti is used. - - * ace/OS_Errno.{h inl}: - * ace/OS_NS_errno.{h inl}: Moved ACE_CE_Errno from OS_Errno to - OS_NS_errno. This seems like a more sensible place for an errno - replacement, and avoids having to add includes for OS_Errno.h to - a bunch of other files. - - * ace/OS_NS_stdio.inl (rename): In the char* variant, always convert - the names to wide-char for WinCE. - - * ace/OS_NS_stdlib.{h cpp inl}: Don't attempt ACE_OS::realpath() for - ACE_HAS_WINCE. It has no native support and there's no - ACE_OS::getcwd() to fake it with. - - * ace/OS_NS_stropts.{h cpp}: The 9-arg version of ACE_OS::ioctl is - ok for WinCE, but the ACE_QoS one is disabled. Changed both files - to implement this. They were mismatched for CE. - - * ace/OS_NS_sys_select.inl: Replace #include ace/os_include/os_errno.h - with ace/OS_NS_errno.h to pick up errno correctly across all - platforms. - - * ace/OS_NS_sys_socket.cpp: Moved #endif closing #ifndef ACE_HAS_WINCE - to encompass join_leaf() to match what's done in the class decl. - - * ace/OS_NS_sys_stat.inl (mkdir, stat): Added #include - "ace/OS_NS_macros.h" to get ACE_ADAPT_RETVAL. - For the char* mkdir() and stat(), CE needs to convert - the strings to wide-char. - - * ace/OS_NS_time.h: Moved the day_of_week and month_name const - strings into the ACE_OS namespace, as OS_NS_time.cpp desires. - - * ace/OS_NS_time.cpp: Removed the MT-only compile block around the - day_of_week and month_name arrays. As suspected by Don Hinton, - this is an incorrect condition. - Also added #include "ace/OS_NS_stdio.h" for ACE_HAS_WINCE, as the - ctime_r emulation needs it. - - * ace/OS_NS_unistd.inl (unlink): Convert path to wide-char for WinCE. - (rmdir): RemoveDirectory() takes only 1 arg. - wide-char getcwd() is a NOTSUP for WinCE, as is the char* version. - - * ace/Proactor.cpp: Add #include "ace/config-lite.h" since the - user config is needed to decide whether to compile this file. - Also remove 'tv' param name from the stubbed-out version of - run_event_loop(ACE_Time_Value&). - -Mon Aug 30 16:24:51 2004 Steve Huston - - * NEWS: Noted that the wide-char stuff is done and autoconf is in - progress. - -Mon Aug 30 11:54:01 2004 Ossama Othman - - * bin/MakeProjectCreator/config/security.mpb: - - Added missing "interceptors" and "corba_messaging" base - projects. - - * bin/MakeProjectCreator/config/ssliop.mpb: - - Added missing "interceptors" base project. - -Mon Aug 30 13:02:22 2004 Steve Huston - - * ace/Basic_Types.h: Don't use sizeof() when defining ACE_SIZEOF_WCHAR. - Other code (e.g. ACEXML) in ACE uses ACE_SIZEOF_WCHAR in - preprocessor tests, so it needs to be a preprocessor constant. - If the config file doesn't set it, and on an XPG4 system, set - the size to 4. If it's wrong, Basic_Types_Test will catch it. - - * tests/Basic_Types_Test.cpp: Remove the comment that says the check - for ACE_SIZEOF_WCHAR is pointless. It's now important. - -Mon Aug 30 10:05:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/amh.mpb: - * bin/MakeProjectCreator/config/ami.mpb: - Both use idlflags, so add taoidldefaults as base project - -Mon Aug 30 06:39:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/amh.mpb: - AMH is dependent on messaging and doesn't require ami - -Sun Aug 29 16:53:00 UTC 2004 Martin Corino - - * ace/config-linux-common.h: - - Added '__GLIBC_MINOR__ < 2' test for setting ACE_POLL_IS_BROKEN - on Alpha platform. - -Fri Aug 27 11:40:37 2004 J.T. Conklin - - * bin/MakeProjectCreator/ftrtevent.mpb: - * bin/MakeProjectCreator/portablegroup.mpb: - - Changed to inherit from messaging.mpb. - - * bin/MakeProjectCreator/rtsched.mpb: - - Changed to inherit from svc_utils.mpb. - -Fri Aug 27 13:38:25 2004 Steve Huston - - * netsvcs/clients/Naming/Client/Client_Test.cpp: - * netsvcs/clients/Naming/Client/main.cpp: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.{h cpp}: - * netsvcs/clients/Naming/Dump_Restore/main.cpp: - * netsvcs/servers/main.cpp: - * websvcs/lib/URL_Addr.cpp: Fix wide-char errors. - -Fri Aug 27 12:01:37 2004 Steve Huston - - * netsvcs/lib/Client_Logging_Handler.cpp: - * netsvcs/lib/Log_Message_Receiver.{h cpp}: - * netsvcs/lib/Name_Handler.{h cpp}: - * netsvcs/lib/Server_Logging_Handler_T.{h cpp}: - * netsvcs/lib/TS_Server_Handler.{h cpp}: - * netsvcs/lib/TS_Clerk_Handler.{h cpp}: Correct Service Configurator - framework entrypoints (init(), etc.) to match ACE_TCHAR* instead of - char*. Also corrected char-width problems and naked text literals. - - * ACEXML/parser/parser/Parser.cpp: Fixed uninitialized variable. - -Fri Aug 27 08:18:21 2004 Balachandran Natarajan - - * bin/footprint_stats.sh: - - Fixed the path to the libraries. Thanks to Johnny for spotting - the error in the scoreboard. - -Fri Aug 27 10:20:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/security.mpb: - Security library uses valuetype, so added valuetype as base - project. - -Fri Aug 27 09:48:12 UTC 2004 Johnny Willemsen - - * examples/QOS/Change_Receiver_FlowSpec/QoS_Util.{h,cpp}: - * examples/QOS/Change_Receiver_FlowSpec/receiver.cpp: - Fixed unicode build errors - -Fri Aug 27 09:36:12 UTC 2004 Johnny Willemsen - - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.{h,cpp,i}: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.{h,cpp,i}: - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.{h,cpp}: - Fixed unicode build errors - -Fri Aug 27 09:06:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/loadbalancing.mpb: - Loadbalancing uses iorinterceptor, so added that as base - -Fri Aug 27 08:06:12 UTC 2004 Johnny Willemsen - - Integrated ORTrefactor_2 branch into main. Previously the PortableServer - library was dependent on IORInterceptor, ObjRefTemplate and Valuetype, - this dependency has been removed. PortableServer doesn't use these libs - anymore, but IORInterceptor, ObjRefTemplate and Valuetype are now - dependent on PortableServer. This will reduce the size of corba servers - which don't use IORInterceptor, ObjRefTemplate and Valuetype. - - This are the needed MPC changes. Without MPC this would have been a - hard job to change all makefiles by hand. - - Fri Aug 20 13:18:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/portableserver.mpb: - * tao/PortableServer.mpc: - PortableServer is not dependent on ValueType anymore, so removed it - as base project - - Fri Aug 20 11:47:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/iorinterceptor.mpb: - When using iorinterceptor use portableserver and objreftemplate - - * bin/MakeProjectCreator/config/objreftemplate.mpb: - When using objreftemplate, you must use portableserver - - * bin/MakeProjectCreator/config/portableserver.mpb: - When using portableserver there is no need to use objreftemplate and - iorinterceptor - -Fri Aug 27 07:40:00 UTC 2004 Martin Corino - - * ace/ace_wchar.h: - - Fixed for broken OpenVMS build because of missing - and includes. - -Thu Aug 26 19:55:03 2004 J.T. Conklin - - * ace/Makefile.am: - - Fixed thinko in last change. CVS and .svn directories *and* - their contents must be pruned in install-local-data target. - -Thu Aug 26 19:37:10 2004 J.T. Conklin - - * ace/Makefile.am: - - Changed dist-hook and install-local-data targets to skip .svn as - well as CVS directories to support subversion. - -Thu Aug 26 19:22:31 2004 J.T. Conklin - - * ace/Makefile.am: - - Added If_Then_Else.h to HEADER_FILES. - -Thu Aug 26 11:53:26 2004 Steve Huston - - * ace/Time_Value.h: Added extern "C++" around the ACE_Time_Value class - declaration for WinCE. This is a total hack that I hate, but I have - not been able to find any other way around it. The same code - worked before the great ACE_OS reorg, but I don't know what tickled - it to start misbehaving. Without the hack, eVC complains that - the operators are C functions and so can't return a class. - - * ace/Dev_Poll_Reactor.{cpp h}: Inserted /**/ in #include directives - to silence MSVC warnings that the files are missing dependencies. - -Thu Aug 26 11:39:29 2004 Steve Huston - - * ACEXML/common/XML_Types.h: Add #include "ace/Basic_Types.h" to - pick up ACE_SIZEOF_WCHAR. - -Thu Aug 26 12:22:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_unistd.cpp: - Tru64 also provides sysconf functionality to retrieve number - of cpu's. Implemented ACE_OS::num_processors() and - ACE_OS::num_processors_online() for Tru64 (Digital Unix) - - * tests/OS_Test.cpp: - Corrected copy/paste error - -Thu Aug 26 11:54:12 UTC 2004 Johnny Willemsen - - * tests/OS_Test.cpp: - Added test for ACE_OS::num_processors() and - ACE_OS::num_processors_online() - -Thu Aug 26 09:23:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - I know we are working on footprint, but stating that an entire - build of ACE/TAO could use more than 2MB of diskspace is an - understatement ;-). Updated this to could use more than 4GB of - diskspace, which is something we have seen on the 64 bit systems. - Also updated the peak memory usage from 256Mb to 512Mb, the - Notification Service is a very memory consuming services when - being build. - -Thu Aug 26 09:16:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - Updated instructions to build SSL with Borland C++, no OpenSSL - patch is necessary anymore and now MPC must be used. Updated HPUX - supported platforms. - -Thu Aug 26 07:58:00 UTC 2004 Martin Corino - - * ace/config-linux-common.h: - - Included check on defined(__alpha) for correctly setting 64 bit - format specifiers. - - * examples/Threads/cancel.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.cpp: - - Fixed 64 bit conversion warnings. - -Thu Aug 26 06:47:12 UTC 2004 Johnny Willemsen - - * ace/Auto_Ptr.h: - Readded disappeared include of post.h - -Wed Aug 25 23:31:02 2004 Chris Cleeland - - * include/makeinclude/platform_linux.GNU: - - Fixed an error caused by a misplaced newline in Rich's previous - commit. - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Brought over the following changes from OCITAO 1.3a. - Added -ladm to LIBS. This is needed for SunOS 5.6 for - resolving symbols for regular expression processing (e.g., - compile, step), and does not appear to cause a problem on - later version of SunOS. - - Change directory that is argument to ld's '-R' to use the new - $ACE_ROOT/lib directory rather than $ACE_ROOT/ace. - -Wed Aug 25 21:10:37 2004 J.T. Conklin - - * configure.ac: - - Fixed tipo introduced by: - Mon Aug 23 23:23:18 2004 Ossama Othman - -Wed Aug 25 17:33:47 2004 J.T. Conklin - - * ace/config-netbsd.h: - - Removed ACE_NTRACE definition. It slipped in again. - -Wed Aug 25 16:00:11 2004 Chris Cleeland - - * ace/Auto_Ptr.h: - * ace/Auto_Ptr.inl: - - Added new ACE_Auto_Ptr which can be used more portably than - auto_ptr even with the ACE auto_ptr workarounds. Specifically, - this obviates the need for the ACE_AUTO_PTR_RESET macro, and - will have better performance than the pre-standard auto_ptr that - comes with VC6. - -Wed Aug 25 14:58:51 2004 Rich Seibel - - * include/makeincludes/platform_linux.GNU: - Generalized the way the rt library is searched. The - previous code did not find it on RedHat AS 3.0 for opteron. - -Wed Aug 25 14:49:11 2004 Rich Seibel - - * ace/Basic_Types.h: - added __x86_64 to long double to satisy opteron. - -Wed Aug 25 11:15:33 2004 Ossama Othman - - * ACE-INSTALL.html: - - Updated ACE_SSL library build notes to refer to MPC, i.e. the - proper way to add ACE_SSL support to GNUmakefiles and MSVC++ - workspace/project files. Thanks to Johnny for pointing out that - the documentation was out of date. - - Wrap the "Last modified" line within an Emacs "hhtms" block to - allow Emacs to automatically update the date and time this file - was last modified. - -Wed Aug 25 11:46:49 2004 Steve Huston - - * ace/os_include/sys/os_pstat.h: If ACE_HAS_SYS_PSTAT_H, include - and (not ) as directed by - HP-UX man page. HP-UX 11 is the only config that sets this. - -Wed Aug 25 08:46:02 2004 Chad Elliott - - * include/makeinclude/wrapper_macros.GNU: - - Fixed the ace_filecache misspelling. - -Wed Aug 25 08:38:29 2004 Steve Huston - - * ace/OS_NS_unistd.inl (rmdir): Removed the ACE_USES_WCHAR case from - the char* version of this method. - -Wed Aug 25 09:36:12 UTC 2004 Johnny Willemsen - - * ACE-INSTALL.html: - Minor updates to Cygwin notes - -Wed Aug 25 09:04:12 UTC 2004 Johnny Willemsen - - * ace/os_include/sys/os_pstat.h: - Corrected incorrect doxygen file tag - -Wed Aug 25 08:47:00 UTC 2004 Martin Corino - - * ace/config-lite.h: - - Introduced new macro ACE_HAS_PROCESS_SPAWN to be able to do - better checks for availability of subprocessing than is - possible with ACE_LACKS_FORK. See [Bug 1793]. - - * tests/MEM_Stream_Test.cpp: - * tests/Malloc_Test.cpp - * tests/SOCK_Dgram_Bcast_Test.cpp - - Changed to use new ACE_HAS_PROCESS_SPAWN macro to test for - subprocessing capabilities. See [Bug 1793]. - -Wed Aug 25 01:19:03 2004 J.T. Conklin - - * configure.ac: - - Add checks for ACE_HAS_SYS_PSTAT_H and ACE_HAS_SYS_LOADAVG_H. - -Wed Aug 25 08:17:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_hpux_aCC.GNU: - The warnings disabled in this file are for major version 03 of aCC - only (PA-RISC), for version 05 (Itanium), disable 1016 and 1031, - these are binary incompatible warnings. - -Wed Aug 25 07:12:12 UTC 2004 Johnny Willemsen - - * ace/os_include/sys/os_loadavg.h: - * ace/os_include/sys/os_pstat.h: - New files to include sys/loadavg.h and sys/pstat.h when - ACE_HAS_SYS_LOADAVG_H and ACE_HAS_SYS_PSTAT_H is set - - * ace/config-hpux-11.00.h: - HPUX has sys/pstat.h, so added define ACE_HAS_SYS_PSTAT_H - - * ace/README: - Documented ACE_HAS_SYS_LOADAVG_H and ACE_HAS_SYS_PSTAT_H - - * ace/OS.h: - Removed including of sys/pstat.h, it is really not needed here - - * ace/OS_NS_unistd.cpp: - Instead of including sys/pstat.h include os_include/sys/os_pstat.h - -Wed Aug 25 07:04:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_hpux_aCC.GNU: - Changed CXXVERS to CXXMINORVERS and added CXXMAJORVERS, - we just compare minor version at this moment, but we really - should also check major vers soon, major version 3 is aCC - on PARISC, version 5 is on Itanium. Changed the way we - detect itanium to a portable way that works with all - HPUX versions. - -Tue Aug 24 19:59:18 2004 J.T. Conklin - - * ace/config-netbsd.h: - - Fixed typo in last change, add back typedef for ACE_UINT64. - -Tue Aug 24 19:32:07 2004 J.T. Conklin - - * ace/config-netbsd.h: - - Removed extraneous cruft left over from autoheader generated - file. Added conditional support for NetBSD/AMD64. - -Tue Aug 24 15:03:22 2004 Steve Huston - - * ace/OS_NS_Thread.inl (thread_mutex_init): Fixed wchar_t version to - pass a 0 sa value. Corrects the passing of the lock_type value - through to ACE_OS::mutex_init(), restoring behavior of recursive - mutexes. - -Tue Aug 24 14:07:22 2004 Steve Huston - - Changes to improve the functionality of wide-char operation on - non-Windows platforms: - - * ace/ace_wchar.h: If ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, but not - ACE_HAS_WCHAR, set ACE_HAS_WCHAR. - - * ace/ACE.cpp (timestamp): Use ACE_TCHAR for temp char arrays, - not char. If ACE_USES_WCHAR on non-Windows, use %ls for printf - strings, not %s. - - * ace/ARGV.cpp (constructor): Replaced most of the body with a call - to ACE_OS::argv_to_string(). - - * ace/Basic_Types.h: - * ace/Cleanup.h: - * ace/Object_Manager_Base.h: - * ace/OS_NS_string.h: - * ace/os_include/os_float.h: - * ace/os_include/os_inttypes.h: - * ace/os_include/os_limits.h: - * ace/os_include/os_signal.h: - * ace/os_include/os_stdint.h: - * ace/os_include/os_stdlib.h: - * ace/os_include/os_time.h: - * ace/os_include/os_ucontext.h: - * ace/os_include/os_unistd.h: - * ace/os_include/sys/os_ipc.h: - * ace/os_include/sys/os_mman.h: - * ace/os_include/sys/os_msg.h: - * ace/os_include/sys/os_resource.h: - * ace/os_include/sys/os_select.h: - * ace/os_include/sys/os_sem.h: - * ace/os_include/sys/os_shm.h: - * ace/os_include/sys/os_socket.h: - * ace/os_include/sys/os_stat.h: - * ace/os_include/sys/os_statvfs.h: - * ace/os_include/sys/os_timeb.h: - * ace/os_include/sys/os_time.h: - * ace/os_include/sys/os_times.h: - * ace/os_include/sys/os_types.h: - * ace/os_include/sys/os_uio.h: - * ace/os_include/sys/os_un.h: - * ace/os_include/sys/os_utsname.h: - * ace/os_include/sys/os_wait.h: #include "config-lite.h" rather than - "config-all.h". Only need the user config.h and "lite" things. - Including config-all.h introduces a circular include - dependency from OS_main.h. - - * ace/Default_Constants.h: Add ACE_LIB_TEXT() to ACE_DEFAULT_SVC_CONF - strings. - - * ace/Env_Value_T.i (fetch_value): For non-Win32, force the env var - name to narrow-char then convert the result back to ACE_TCHAR. - - * ace/FILE_Connector.cpp (connect): When generating a temp name, - convert it to ACE_TCHAR for ACE_FILE_Addr. - - * ace/Get_Opt.cpp (constructor): When checking for POSIXLY_CORRECT, - must always use char *, not ACE_TCHAR*, on non-Win32. - - * ace/High_Res_Timer.cpp: Added ACE_LIB_TEXT to naked string literals. - Use 'char' when it must be narrow char; ACE_TCHAR when it has to - change based on ACE_USES_WCHAR. - - * ace/Lib_Find.cpp (ldfind, get_temp_dir): Environment variables on - non-Windows are always narrow char, so account for that. - - * ace/Log_Msg_UNIX_Syslog.cpp: Operate internally with all narrow - chars because the underlying OS APIs are only narrow char. - - * ace/Log_Msg.cpp (log): For 'D', 'M', 'm', 'N', and 'p', use the - proper 's' format code for the platform/char width. Similar to - Log_Record.cpp below. - - * ace/Log_Msg.h (ACE_ASSERT): Convert __FILE__ name to proper char - width when necessary. - - * ace/Log_Record.cpp: When formatting log strings, have to change - printf formats if using wide chars on non-Windows. Wide-char - strings are printed with %ls, whereas Windows uses %s for - wide-char strings if the format is wide-char. - - * ace/Memory_Pool.cpp (ctor): Change backing_store_name to narrow - char when needed to pass it to sscanf(). - - * ace/Object_Manager_Base.cpp (print_error_message): Add - ACE_TEXT_ALWAYS_CHAR to the message arg to convert on wide-char - builds. - - * ace/OS_main.h: For ACE_MAIN on non-Windows ACE_USES_WCHAR platforms, - convert the argv to wchar_t, and pass the wide-char strings to the - ACE_TCHAR[]-expecting real main program. - - * ace/OS_NS_dirent.inl (opendir): Moved the const_cast-needing - VxWorks part to its own #elif section. Added ACE_TEXT_ALWAYS_CHAR - to the other invocation of ::opendir(). - - * ace/OS_NS_dlfcn.inl (dlerror, dlopen, dlsym): Corrected use of - narrow/wide-char. - - * ace/OS_NS_stdio.inl (cuserid, fdopen, freopen): Don't use - ACE_TCHAR when a char is always needed. - (fgets, fputs, perror, puts): Changed to have both narrow- and - wide-char variants. - (checkUnicodeFormat): Use a platform-neutral 2-byte type to - read 2 bytes. Need a non-Windows 'whence' arg for fseek(). - (vsprintf (wchar_t)): Added the non-Windows, XPG5 code for this to - use the XPG5 vswprintf() when equippped. - - * ace/OS_NS_stdlib.{h inl cpp}: - (ACE_OS::mktemp() and mkstemp()): Changed to have both narrow- - and wide-char variants for the !ACE_LACKS_MKTEMP case. - Offering both for the ACE_LACKS_MKTEMP case is a low-return - use of time since the wide-char variant will probably never be used. - (strenvdup): Handle ACE_USES_WCHAR on non-Windows by converting - back and forth to narrow-char. - (system): On non-Windows, convert command line string to narrow-char. - (getcwd): Changed to have both narrow- and wide-char variants. - - * ace/OS_NS_sys_stat.inl (creat, mkfifo): For non-Windows, convert - name to narrow-char when needed. - (lstat): Change from a single ACE_TCHAR-based interface to both - char* and wchar_t*. - - * ace/OS_NS_time.inl (ctime, ctime_r): Corrected narrow/wide char - usage. - - * ace/OS_NS_unistd.inl (truncate): For non-Windows, convert the path - to narrow-char when needed. - (realpath): Changed to have both narrow- and wide-char variants. - - * ace/OS_NS_unistd.{h inl cpp}: - (rmdir): Changed to have both narrow- and wide-char variants. - (argv_to_string): Handle narrow and wide-char environment variables. - (fork_exec): Convert path and argv to narrow-char when needed. - - * ace/Process.cpp (spawn): Convert argv, procname, env vars to narrow - char for non-Windows wide-char builds. - - * ace/Process.i (setreugid): Convert user name to narrow char for - getpwnam(). - - * ace/Process_Mutex.cpp (ctor): Don't convert name to ACE_TCHAR for - ACE_SV_Semaphore case - it requires char*. - - * ace/Process_Semaphore.cpp (ctor): Convert name to narrow char - for ACE_SV_Semaphore_Complex case. - - * ace/Sock_Connect.cpp (get_bcast_addr): - * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Host name needs to be - converted to narrow-char for wide-char builds. - - * ace/SOCK_Dgram_Mcast.cpp (make_multicast_ifaddr): Interface name - needs to be converted to narrow-char for wide-char builds. - - * ace/SV_Semaphore_Simple.{h,i,cpp}: Added wide-char versions of - the named constructor and open() methods. They forward to the - narrow-char versions. - - * tests/Dirent_Test.cpp: Account for dirent's d_name is an ACE_TCHAR - when ACE_LACKS_STRUCT_DIR and a char* otherwise. - - * tests/FIFO_Test.cpp: Change ACE_ALPHABET to char[]. - - * tests/Proactor_Test.cpp: Change complete_message from ACE_TCHAR - to char. This is easier to handle; as ACE_TCHAR, we'd need to - correct all the message block pointer adjustments to take the - charset width into account. - - * tests/Log_Msg_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Message_Queue_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Process_Manager_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Signal_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - * tests/SOCK_Dgram_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: Char width correction. - - * tests/Service_Config_Test.cpp: - * tests/Service_Config_Test.WCHAR_T.conf: - * tests/Service_Config_Test.WCHAR_T.conf.xml: Added WCHAR_T-coded - versions of the test input file and changed the test to use - them on non-Windows ACE_USES_WCHAR builds. - - * tests/Test_Output.cpp (set_output): Handle env var and filepath - building correctly even on wide-char non-Windows builds. - - * ACEXML/common/XML_Types.h: typedef ACEXML_Char as ACE_TCHAR, else - it doesn't match any char interfaces when wchar_t is not 2 bytes. - - * ACEXML/parser/parser/Parser.cpp (parse_char_reference): Add the - case where wide-char is 4 bytes. - - Also brought in this fix: - Mon Mar 8 15:52:33 2004 Steve Huston - - * ace/POSIX_Proactor.cpp: Comment out the signal setup; this should - not be necessary and, indeed, is erroneous, at least on Linux. - It's commented out instead of removed in case further testing on - other platforms determines that it is needed sometimes. - -Tue Aug 24 10:22:18 2004 Steve Huston - - * ace/config-linux-common.h: Added ACE_HAS_SCANDIR and a new - macro, ACE_SCANDIR_CMP_USES_VOIDPTR, saying that scandir() - cmp() function takes void pointers, not dirent pointers. - - * ace/OS_NS_dirent.inl (scandir): When calling native scandir() - with ACE_SCANDIR_CMP_USES_VOIDPTR, cast comparator appropriately. - Also, for native scandir(), ACE_TEXT_ALWAYS_CHAR the dirname. - - * ace/OS_NS_dlfcn.inl: - * tests/Test_Output.cpp: Added #include "ace/OS_NS_string.h" to get - ACE_OS string methods. Fixes compile error on inline=0 build. - -Tue Aug 24 11:16:00 2004 Jules White - - * ACE-INSTALL.html: Added a section on using ACE within Eclipse - -Tue Aug 24 10:10:22 2004 Steve Huston - - * ace/config-all.h: Moved #include "ace/OS_main.h" down to the bottom - of the file, lest it invoke a circular dependency. - - * ace/OS_NS_stdlib.inl: Added #include "ace/config-all.h" to get - ACE_TRACE. - -Mon Aug 23 23:23:18 2004 Ossama Othman - - * Makefile.am (AUTOMAKE_OPTIONS): - - Removed required Automake version from `Makefile.am'. - `configure.ac' already defines it. - - * configure.ac: - - Updated required version of Automake to 1.9. - - Added test for partial template specialization. Issue a warning - if it isn't support by the compiler since ACE will require it in - the near future. - - * ace/ACE.h: - - Corrected ACE namespace documentation to describe the ACE - namespace itself rather than summarizing the contents of this - header (i.e. the value added global ACE functions). - - * ace/If_Then_Else.h: - - Doxygen documentation corrections and improvements. - -Mon Aug 23 22:19:16 2004 Ossama Othman - - * tests/CDR_Test.cpp (run_main): - - Added run-time assertions that verify proper CDR type sizes - (e.g. sizeof (ACE_CDR::Boolean) == 1). - -Mon Aug 23 19:18:58 2004 J.T. Conklin - - * m4/config_h.m4: - - Removed autoheader template for ACE_LACKS_PARAM_H. - -Mon Aug 23 18:33:40 2004 J.T. Conklin - - * configure.ac: - - Added check for ACE_HAS_ITOA. - Added check for ACE_LACKS_ITOW. - -Mon Aug 23 18:22:25 2004 J.T. Conklin - - * ace/config-dgux-4.11-epc.h - * ace/config-dgux-4.x-ghs.h - * ace/config-freebsd.h - * ace/config-lynxos.h - * ace/config-m88k.h - * ace/config-macosx-panther.h - * ace/config-macosx.h - * ace/config-openbsd.h - * ace/config-sunos4-g++.h - * ace/config-sunos4-lucid3.2.h - * ace/config-sunos4-sun3.x.h - * ace/config-sunos4-sun4.1.4.h - * ace/config-sunos4-sun4.x.h - * ace/config-sunos5.4-centerline-2.x.h - * ace/config-sunos5.4-g++.h - * ace/config-sunos5.4-sunc++-4.x.h - * ace/config-sunos5.5.h - * ace/config-tandem.h - * ace/config-unixware-2.01-g++.h - * ace/config-unixware-2.1.2-g++.h - * ace/config-unixware-7.1.0.h - * ace/config-unixware-7.1.0.udk.h - * ace/os_include/os_stropts.h - - Changed name of feature test macro ACE_HAS_SOCKIO_H to - ACE_HAS_SYS_SOCKIO_H. - -Mon Aug 23 17:41:40 2004 J.T. Conklin - - * m4/config_h.m4: - * m4/platform.m4: - - Removed support for unused ACE_NETBSD feature test macro. - -Mon Aug 23 17:37:16 2004 J.T. Conklin - - * m4/platform.m4: - - Add check for ACE_LACKS_PERFECT_MULTICAST_FILTERING. - -Mon Aug 23 16:33:59 2004 J.T. Conklin - - * ace/config-netbsd.h: - - Remove PACKAGE, PACKAGE_*, and VERSION definitions. The latter - conflicts with some of the test/example programs. I'll get rid - of the others just to be safe. - - Comment out ACE_NTRACE, as the constant definition conflicts - with Misc_test_trace. We probably need an option to control - whether tracing and debugging features are enabled when ACE/ - TAO is compiled that is separate from the one used after it - has been built. - -Mon Aug 23 16:06:39 2004 J.T. Conklin - - * configure.ac: - - Added checks for ACE_HAS_VWFPRINTF and ACE_HAS_VWSPRINTF. - -Tue Aug 24 00:34:30 2004 Marek Brudka - - * ace/QtReactor.cpp: - Removed unecessary #include . Thanks to - Gan Deng for a patch. - - -Mon Aug 23 17:53:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_hpux_aCC.GNU: - Added support for itanium on HPUX 11iv2 (11.23). Different options - have to be passed when on itanium, so when version 11.23 is detected, - set itanium to 1 and dependent on that set different compiler options. - -Mon Aug 23 16:58:18 UTC 2004 Don Hinton - - * include/makeinclude/rules.local.GNU: - Added CCFLAGS to the list of arguments passed to the dependency - generator. Thanks to Matthew Townsend - for reporting the problem. - - * THANKS: - Added Matthew Townsend to the hall of fame. - -Mon Aug 23 08:34:12 UTC 2004 Johnny Willemsen - - * ace/config-hpux11.h: - Removed this file from the repo, use config-hpux-11.00.h instead, - the contents of this file refers to config-hpux11-xx.h files - which are not there, making this file unusable. - -Sun Aug 22 21:49:14 2004 J.T. Conklin - - * ace/config-netbsd.h: - - Update with autoconf generated results. While not perfect, the - old version would be difficult to update by hand. - -Mon Aug 23 01:04:34 2004 Balachandran Natarajan - - * ace/Select_Reactor_T.cpp: - - Made some slight changes to the BUG 1890 patch after receiving - some clarifications from Kobi. - -Sun Aug 22 11:11:00 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/amh.mpb: - When using amh, you must have valuetype support, so add valuetype - as base project of amh - -Sun Aug 22 09:53:00 UTC 2004 Martin Corino - - * tests/MEM_Stream_Test.cpp: - - Changed to remove compile warning resulting from bad use - of ACE_UNUSED_ARG(). - -Fri Aug 20 15:29:29 MST 2004 Trevor Fields - - * bin/auto_run_tests.pl: - * tests/run_test.pl: - Changed the run test scripts to time the execution - and print test finished messages. This for the - generation of statistics. - -Fri Aug 20 15:10:08 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/core.mpb: - - Changed to define INSTALL_THIS_TARGET for automake builds. - - * bin/MakeProjectCreator/config/taodefaults.mpb: - - Changed to add $(TAO_BUILDDIR) to includes for automake builds. - - * bin/MakeProjectCreator/config/acedefaults.mpb: - - Changed to add $(ACE_BUILDDIR) to includes for automake builds. - -Fri Aug 20 12:17:39 2004 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Added check for ACE_SIZEOF_WCHAR. - -Fri Aug 20 16:13:29 2004 Dale Wilson - - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.cpp: - * ace/TSS_T.cpp: - Revert. It triggers (or causes) an intermittent problem - in the Timer_Cancellation_Test - -Fri Aug 20 10:22:34 2004 Dale Wilson - - * TAO/tests/MT_Client/client.cpp: - Revert this. It wasn't supposed to be included in my previous - check in. (Thu Aug 19 12:42:19 2004) - -Fri Aug 20 15:20:31 2004 Balachandran Natarajan - - Fixes for Bug 1890. Please see - - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1890 - - for details of this bug. What follows are the individual changes. - - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_Base.h: - - Added a new method clear_dispatch_mask (), which as the name - indicates clears the masks in the dispatch_set. The dispatch set - is a new addition, which keeps track of the handles that can be - used for dispatching. - - * ace/Select_Reactor_Base.inl: - * ace/Select_Reactor_T.cpp: - * ace/Select_Reactor_T.h: Modified dispatch_io_set () so that it - doesn't break the loop when state_changes occur. This is the - crux of the 1890 bug report. If unbinding occurs as part of an - upcall, the bit_ops () calls clear_dispatch_mask (), which - prevents dispatching to already removed (and potentially - rebounded) handles. - - Additional cosmetic changes. - - * ace/Priority_Reactor.cpp: - * ace/Priority_Reactor.h: - * ace/TP_Reactor.cpp: - * ace/TP_Reactor.h: - * ace/TP_Reactor.inl: - - Replicate changes to the above reactors. - - * ace/Signal.h: - * ace/Signal.inl: - - Added a default argument to the ACE_Signal class, which is used - by the ACE_Select_Reactor. - - Thanks to Kobi for the patches. - -Fri Aug 20 14:26:00 UTC 2004 Martin Corino - - * tests/Process_Mutex_Test.cpp: - - Changed to use a separate logfile per child (based on PID like - in MEM_Stream_Test) because of concurrency problems in using a - single non-synchronized child logfile (at least under windows). - -Fri Aug 20 14:10:00 UTC 2004 Martin Corino - - * tests/MEM_Stream_Test.cpp: - - Changed to use child processes instead of threads for testing. - See also [Bug 1793]. - -Fri Aug 20 07:47:00 UTC 2004 Martin Corino - - * bin/bin/MakeProjectCreator/templates/gnu.mpd: - - Added $(EXEEXT) to BIN build target. - Removed from $(EXEEXT) from install and cleanup target - because these are derived from build target. - This improves link behaviour (disables unnecessary links - because dependency checks on build targets did not function) - on platforms using GNU make and having a executable extension - (like MingW; .exe). - Fixes [Bug 1876]. - - * apps/gperf/tests/tests.mpc: - - Added $(EXEEXT) to verbatim 'runtests' targets because - otherwise dependencies on build targets do not function - anymore. - -Thu Aug 19 16:45:05 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/security.mpb: - - Changed to inherit from orbsvcslib. - -Thu Aug 19 12:42:19 2004 Dale Wilson - - * TAO/tests/MT_Client/client.cpp: - - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.cpp: - * ace/TSS_T.cpp: - Repeat part of the checkin from Fri Aug 13 15:26:40 2004 - This corrects the incorrect thread-in-use count problem - that leads to premature TSS key deletion, but does not fix - the TSS leak because fixing that reveals other problems - that I don't have a solution for, yet. - -Thu Aug 19 08:26:11 2004 J.T. Conklin - - * apps/drwho/Rwho_DB_Manager.h: - - Changed to #include before , - as the latter needs the former on some systems. - -Thu Aug 19 08:07:53 2004 J.T. Conklin - - * examples/APG/Signals/SigAction.cpp: - - Changed to use a (conditional) extern "C" linkage block around - my_sighandler, because the plain extern "C" directive resulted - in a declaration with multiple storage classes. - -Thu Aug 19 08:44:12 UTC 2004 Johnny Willemsen - - * PROBLEM-REPORT-FORM: - Ask for the default.features file used by MPC. - -Wed Aug 18 21:02:34 2004 Dale Wilson - - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.cpp: - * ace/Object_Manager.cpp: - * ace/TSS_T.cpp: - Revert TSS leak fix (temporarily, I hope) - until I can find and eliminate the hang. - -Wed Aug 18 15:07:00 UTC 2004 Martin Corino - - * bin/msvc_static_compile.pl: - bin/msvc_mpc_auto_compile.pl: - - Fixed wrong comment characters. - -Wed Aug 18 13:35:00 UTC 2004 Martin Corino - - * bin/msvc_static_compile.pl: - - Added support for building VC8 projects. - -Wed Aug 18 13:29:00 UTC 2004 Martin Corino - - * bin/msvc_mpc_auto_compile.pl: - - Added support for building VC8 projects. - -Wed Aug 18 08:50:00 UTC 2004 Simon Massey - - * ace/Asynch_Connector.h: - * ace/Asynch_Connector.cpp: - - Thanks to Douglas for his assistance. This change introduces a - class-static "local_default" for use as the default parameter - for the second attribute of - ACE_Asynch_Connector<>::connect(). This "simplifies" the nested - templated class for the Solaris Lynxos GCC295 cross compiler - which was faulting due to the complexity of this - definition. This change does not appreachiably modify the - signature of the member function, just stops clients from having - to create their own local default parameter. - -Wed Aug 18 01:05:37 2004 J.T. Conklin - - * include/makeinclude/platform_netbsd.GNU: - - Update to support current NetBSD platforms. - -Tue Aug 17 21:03:08 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/interceptors.mpb: - - New file, with base project requiring interceptors. Project - files should inherit from this instead of providing explicit - requires statements to eliminate duplicate entries in list. - -Tue Aug 17 17:42:16 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/rtcosscheduler.mpb: - - Changed to inherit from orbsvcslib. - -Tue Aug 17 09:50:46 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/config/ciao_servant.mpb: - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - - Added the path to $TAO_ROOT/orbsvcs to the CIDL compiler. - -Tue Aug 17 14:30:00 UTC 2004 Simon Massey - * tests/Proactor_Test.cpp - Revertion of change to this file (for the sake of being complete). - -Tue Aug 17 13:00:00 UTC 2004 Simon Massey - * ace/Asynch_Connector.h - Revertion of change to this file as it breaks the windows build and - changed the public interface of the template class. - -Tue Aug 17 10:03:00 UTC 2004 Martin Corino - - * ace/ACE.cpp: - - Added ACE_UNUSED_ARG() to is_sock_error() for non-WIN32 - builds. - -Tue Aug 17 09:43:00 UTC 2004 Martin Corino - - * bin/msvc_static_order.lst: - - Removed DOS style linefeeds. - -Tue Aug 17 08:49:00 UTC 2004 Martin Corino - - * ace/OS_NS_String.cpp: - - Removed some hidden characters causing compile problems. - -Tue Aug 17 08:00:00 UTC 2004 Simon Massey - * ace/Asynch_Connector.h - * tests/Proactor_Test.cpp - Due to a long standing fatal cross development compiler bug in the - Solaris -> Lynxos cross development environment. - (LynxOS gcc 2.95.3 cross compiler) - -Tue Aug 17 08:00:00 UTC 2004 Martin Corino - - * ace/ACE.h: - ace/ACE.cpp: - - Added ACE::is_sock_error() to be able to test if errorcode is - WinSock error *before* converting to error string. - - * ace/OS_NS_String.cpp: - - Fixed WCHAR bug in ACE_OS::strerror(). - Introduced use of ACE::is_sock_error(). - -Mon Aug 16 22:53:53 2004 Ossama Othman - - * ace/SSL/SSL_SOCK_Stream.cpp (~ACE_SSL_SOCK_Stream): - - Removed useless invalidation of "ssl_" pointer member by - assignment of zero. Once the destructor is called, the object - no longer exists so invalidation is unnecessary. - -Mon Aug 16 16:54:18 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/ftorbutils.mpb - * bin/MakeProjectCreator/config/smart_proxies.mpb - * bin/MakeProjectCreator/config/svc_utils.mpb - - Changed to inherit from orbsvcslib instead of taolib_with_idl. - - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - - Added $(TAO_ROOT)/orbsvcs to includes. - Added -I$(TAO_ROOT)/orbsvcs to idlflags. - -Mon Aug 16 15:58:21 2004 Steve Huston - - * ace/Signal.cpp: Added template instantiations for - ACE_Fixed_Set_Iterator_Base. Related to: - Mon Aug 2 08:55:17 2004 Douglas C. Schmidt - -Mon Aug 16 15:30:29 2004 Steve Huston - - * ace/Task.cpp (svc_run): Added "defined (ACE_WIN32)" to the - "defined (__IBMCPP__)" test for how to cast a thread result. - __IBMCPP__ is defined for both Windows (where the alternate cast - is needed) and AIX (where it is prohibited). - This is related to this change: - Fri Aug 6 08:34:12 UTC 2004 Johnny Willemsen - -Mon Aug 16 11:54:50 2004 Ossama Othman - - * ace/ACE.h (debug): - - Corrected the export qualifier for these functions. They are no - longer inlined. - -Mon Aug 16 11:16:02 2004 Ossama Othman - - * ace/ACE.h: - - Moved remaining ACE namespace variables out of header and into - the '.cpp' file. They should not be accessed/modified - directly. - - * ace/ACE.inl (hex_chars_, nibble2hex): - - No need to declare/define the hex_chars_ constant variable in - the ACE namespace. Define it as a static constant in the - nibble2hex() function instead, the only place it is used. - - * ace/ACE.cpp (debug): - - Unlined these functions. They generally aren't performance - critical, and doing so allows us to remove the ACE::debug_ - internal variable to the '.cpp' file. - -Mon Aug 16 11:16:02 2004 Ossama Othman - - * ace/ACE.h: - * ace/ACE.cpp: - - Added remaining missing DLL export qualifiers. Fixes - "unresolved external symbol" errors in MS Windows builds. - - Moved variables in ACE namespace that are internal to ACE into - the '.cpp' file. They should be not be accessed or modified - directly. - -Mon Aug 16 10:58:09 2004 Ossama Othman - - * ace/ACE.h (recv): - - Fixed DLL export qualifier. Addresses "unresolved external - symbol" link-time errors in MS Windows builds. - -Mon Aug 16 12:14:37 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_server_dnc.mpb: - - Changed the names of the Deployment libraries. Arranged the - dependencies in such a manner so that it is easier to use it in - the application. - -Mon Aug 16 09:27:12 UTC 2004 Martin Corino - - * bin/msvc_mpc_auto_compile.pl: - - Added MSVC 7.1 compatibility through '-vc7' option. - - * bin/msvc_static_compile.pl: - - Added MSVC 7.1 compatibility through '-vc7' option. Added - support for MPC '-name_modifier' option. - - * bin/msvc_static_compile.lst: - - Removed projectfile extensions to be able to generate these - dynamically from 'msvc_static_compile.pl'. - -Sat Aug 14 19:38:20 2004 Ossama Othman - - * ace/CDR_Base.h: - - Do not include "ace/If_Then_Else.h" when using MSVC++ 6. It - can't handle the partial template specializations in that file. - -Sat Aug 14 19:34:02 2004 Ossama Othman - - * ace/Sock_Connect.cpp (ipv6_enabled_): - - Fixed syntax error. - -Sat Aug 14 13:07:50 2004 Ossama Othman - - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp (subscribe_ifs): - - The "ACE_Sock_Connect" interim pseudo namespace no longer - exists. Use the true "ACE" C++ namespace instead. Fixes a - compile-time error. - -Sat Aug 14 14:48:01 2004 Balachandran Natarajan - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Add /usr/lib as a path for library check. If the location of the - library is not specified by the application, the compiler, - linker and loader knows where to look in for *nix based - systems. So should our library checker.Without this applications - MPC file starts pointing to /usr/lib to locate libraries like - PCAP and XERCES, which can be installed with system - libraries. It is bad to see installation specific thingies - making its way up the order. - -Sat Aug 14 09:28:19 2004 Ossama Othman - - * ace/CDR_Base.h (ACE_CDR::Boolean): - - MSVC++ 6 can't handle partial template specializations so fall - back on an unsigned char typedef if _MSC_VER < 1300 (i.e. MSVC++ - version is less than 7). This is an interim solution to get the - MSVC++ 6 builds going again. - - * ace/IfThenElse.h: - * ace/If_Then_Else.h: - - Renamed the former to the latter, including the class template - defined within, to match ACE naming conventions. Thanks to Doug - for pointing this out. - -Sat Aug 14 01:43:16 2004 Ossama Othman - - * ace/CDR_Base.h (ACE_CDR): - - Parenthesize boolean condition that is the first argument to the - ACE::IfThenElse<> template to avoid any potential confusion. - -Sat Aug 14 00:33:59 2004 Ossama Othman - - * ace/IfThenElse.h (IfThenElse): - - Place sample code within a Doxygen code block. Addresses some - documentation formatting problems. - -Fri Aug 13 23:26:56 2004 Ossama Othman - - * ace/IfThenElse.h: - - New template that allows one to choose between two types at - compile-time based on a boolean value. This is basically the - IfThenElse template described in the book "C++ Templates" by - Vandevoorde and Josuttis. - - * ace/CDR_Base.h (ACE_CDR::Boolean): - - Detect at compile-time whether the C++ "bool" type can be used - as the underlying ACE_CDR::Boolean type using the new - ACE::IfThenElse template. - - * ace/ACE.h: - * ace/Flag_Manip.cpp: - * ace/Flag_Manip.h: - * ace/Flag_Manip.inl: - * ace/Handle_Ops.cpp: - * ace/Handle_Ops.h: - * ace/Init_ACE.cpp: - * ace/Init_ACE.h: - * ace/Lib_Find.cpp: - * ace/Lib_Find.h: - * ace/Sock_Connect.cpp: - * ace/Sock_Connect.h: - - Functions that were in the pseudo "ACE" namespace are now in a - true "ACE" C++ namespace. - - * ace/ACE.inl (log2): - - Use the prefix increment operator when incrementing the loop - index. It is generally more efficient than the postfix - increment operator. - - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_Connector.cpp: - * ace/DEV_Connector.cpp: - * ace/DLL_Manager.cpp: - * ace/FILE_Addr.cpp: - * ace/FILE_Connector.cpp: - * ace/INET_Addr.inl: - * ace/IO_SAP.cpp: - * ace/IPC_SAP.cpp: - * ace/Logging_Strategy.cpp: - * ace/MEM_Acceptor.cpp: - * ace/Memory_Pool.cpp: - * ace/Naming_Context.cpp: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Proactor.cpp: - * ace/SOCK_Acceptor.cpp: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_SEQPACK_Acceptor.cpp: - * ace/SPIPE_Connector.cpp: - * ace/System_Time.cpp: - * ace/UPIPE_Connector.cpp: - * tests/Enum_Interfaces_Test.cpp: - * tests/FIFO_Test.cpp: - * tests/INET_Addr_Test.cpp: - * tests/INET_Addr_Test_IPV6.cpp: - - Updated all calls to functions that were in the pseudo "ACE" - namespace through a former ACE class base class - (e.g. ACE_Sock_Connect, ACE_Flag_Manip, etc) to use the correct - "ACE" namespace. Use of the base class names should never have - been used since it was known long ago that the "ACE" pseudo - namespace would be changed to true C++ namespace. - - * ace/Basic_Types.h: - * ace/OS_NS_fcntl.inl: - * ace/OS_NS_stdio.h: - * ace/OS_NS_stdlib.h: - - Nuked trailing whitespace. - -Sat Aug 14 03:44:02 2004 Balachandran Natarajan - - * ace/TSS_T.cpp: - - Fixed compilation errors in the SingleThreaded builds. - -Sat Aug 14 03:37:44 2004 Balachandran Natarajan - - * ace/OS_NS_Thread.cpp: - - Fixed a unused variable warning in the daily builds. - -Sat Aug 14 01:58:32 2004 Balachandran Natarajan - - * Release: - - Added the NEWS file to the release. Thanks to Ramiro Morales - for reporting the problem. - -Fri Aug 13 16:17:32 2004 Douglas C. Schmidt - - * ace/Module.h (class ACE_Module): - * ace/Task.h (ACE_Task_Base): - Updated the documentation so it's more clear. Thanks to Andrew - Athan for motivating this. - - * ace/Stream.h: Updated the documentation for push() and pop() to - clarify how it affects open() and close() hooks on the tasks. - Thanks to Andrew Athan for - motivating this. - -Fri Aug 13 15:26:40 2004 Dale Wilson - - * ace/TSS_T.cpp: - Pass the TSS key to ACE_OS::thr_key_detach. This - eliminates the table lookup formerly required to - identify the key being detached. - - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.cpp: - --Accept and use the TSS key from TST_T.cpp - --Typedef the function pointer used to delete TSS - objects. This improves readability. - --Change the name of the ACE_TSS_Info member from - tss_obj_ to tss_info_. This avoids confusion - due to conflicting use of the name "tss_obj" - --Check to see if a thread has actually used - a TSS key before decrementing the "number of - threads using this key" counter. This eliminates - a messy situation in which the key is deleted - while threads are still using it. - --Fix bugzilla 1542: Leaks in ACE_TSS - Note that the patch suggested - in the bugzilla report did not completely address - the problem, so this fix takes a different approach. - Significant features of this change: - > The ACE_TSS_Cleanup::detach method now frees the - thread's specified TSS entry. Formerly it leaked it. - > The exit method defers to the detach method to - free the entry. This ensures entries are handled - consistently -- no matter how they are freed up. - > The ACE_TSS_Cleanup::in_use_ entry receives special - handling to avoid using it while deleting it. Formerly - it was leaked, so it didn't matter. - -- Note this does NOT address bugzilla 1797. I'll - look at that one next. - - * ace/Object_Manager.cpp: - Eliminating TSS leaks revealed another problem. The - main thread was not waiting for other threads to exit - before dismantling the ACE infrastructure in - Object_Manager::fini. There's a hack in Thread_Manager - that disables the wait method when the Object_Manager - is shutting down. - Unfortunatly this causes a messy race condition in which - one thread is deleting objects while other threads are - using them. - The "solution" here is to call Thread_Manager::wait() - with a short (1 second) timeout. If the threads have - already exited -- no problem, and no delay. If they - haven't, they get a chance to exit cleanly. - -Fri Aug 13 18:43:01 2004 Balachandran Natarajan - - * ace/CDR_Base.h (ACE_CDR): - - Reverted the usage of C++ bool as a typedef of - ACE_CDR::Boolean. We will now use unsigned char on all - platforms. MacOSX (Panther) atleast makes the size of bool to be - 4 bytes which creates problems for TAO. Thanks to Rich Shapiro - for reporting the problem. - -Fri Aug 13 18:44:12 UTC 2004 Johnny Willemsen - - * ace/IOStream_T.h: - When ACE_LACKS_IOSTREAM_FX is defined, also include ace/os_include/ - os_ctype.h - -Fri Aug 13 12:03:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Also install pidl files - -Fri Aug 13 07:15:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Pass the def file with -Wl, to the compiler, it is a linker option - and with the Cygwin GCC 3.3.3 it seems the compiler thinks the def - file is a modula2 file. By marking it as linker option it works - without problems again - - * etc/*.doxygen: - Set INTERNAL_DOCS to YES, that way we generate documentation for - stuff marked with @internal, but doxygen will make sure the - documentation says it is for internal use only - -Thu Aug 12 21:17:05 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/taolib.mpb: - Inherit from pidl.mpb: - - * bin/MakeProjectCreator/config/pidl.mpb: - New file, custom file type definition for *.pidl files. - -Thu Aug 12 16:12:18 2004 Balachandran Natarajan - - * bin/fuzz.pl: - - Priority of synch.h inclusion is reduced. - -Thu Aug 12 13:23:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/config/acedefaults.mpb: - Use LIBMODIFIER with bmake, not LIB_MODIFIER - -Thu Aug 12 07:54:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_hpux_gcc.GNU: - Removed support for buildbits=64 again, the way I tried it doesn't - work - -Wed Aug 11 22:20:49 2004 Balachandran Natarajan - - * bin/fuzz.pl: - - Priority of OS.h and Synch.h inclusions have been reduced. - -Wed Aug 11 11:55:46 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/event.mpb - * bin/MakeProjectCreator/config/ftorbutils.mpb - * bin/MakeProjectCreator/config/ftrtevent.mpb - * bin/MakeProjectCreator/config/rtcorbacommon.mpb - Changed to inherit from minimum_corba instead of providing avoids - statements to eliminate duplicate entries in list. - -Wed Aug 11 08:48:48 2004 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Call $self->mpc_dirname() instead of dirname() to be consistent - with the modules in MPC. - - * bin/mpc.pl: - * bin/mwc.pl: - - Put back the getBasePath() function and cleaned up the VMS - support. - -Wed Aug 11 10:32:12 UTC 2004 Johnny Willemsen - - * bin/tao_other_tests.lst: - Don't run the PluggableUDP examples when NO_DIOP is defined, - makes it possible to exclude these examples in builds that don't - have DIOP - -Wed Aug 11 08:32:12 UTC 2004 Martin Corino - - * ace/Process.cpp: - Added OpenVMS version of ACE_Process::spawn(). - - * include/makeinclude/platform-openvms.GNU: - Removed mathlibrary from required libs. - Added dummy code to circumvent 'touch' problem with OpenVMS make port. - -Wed Aug 11 08:00:12 UTC 2004 Johnny Willemsen - - * bin/tao_other_tests.lst: - Don't run TAO/orbsvcs/tests/Notify/performance-tests/Filter when - MINIMUM is set, this test isn't build with minimum corba - -Tue Aug 10 10:57:00 2004 J.T. Conklin - - * configure.ac: - Enable check for ACE_HAS_WCHAR. We'll never shake out any - wide character configuration bugs that may remain if it's - disabled. - -Tue Aug 10 11:08:31 2004 Steve Huston - - * ace/config-linux-common.h: Removed ACE_LACKS_TOWLOWER and - ACE_LACKS_TOWUPPER. These functions are present but, I suspect, - marked "lacks" because of type conflicts, which J.T. Conklin fixed: - Mon Aug 9 23:13:48 2004 J.T. Conklin - -Tue Aug 10 06:52:47 2004 J.T. Conklin - - * configure.ac: - Removed AC_LANG_PUSH([C])/.../AC_LANG_POP([C]) which forced the - use of C for selected AC_CHECK_FUNC calls. The current version - of autoconf always uses C. - -Tue Aug 10 14:00:00 UTC 2004 Simon Massey - - I shouldn't have been rushed into these guarded #includes. The - following two files now need these guarded #includes to be moved - after the rest. - - * ace/FILE_IO.h - * ace/FIFO_Send_Msg.h - Moved guarded #include "ace/OS_NS_stropts.h" to end of other - #includes - -Tue Aug 10 11:20:00 UTC 2004 Simon Massey - - * examples/IOStream/server/iostream_server.cpp - Added missing #include "ace/OS_NS_unistd.h" inside the guard of - #if defined (ACE_HAS_STRING_CLASS) - - * tests/IOStream_Test.cpp - Added missing #include "ace/OS_NS_unistd.h" inside the guard of - #if !defined (ACE_LACKS_ACE_IOSTREAM) - -Tue Aug 10 12:01:12 UTC 2004 Johnny Willemsen - - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - When DISABLE_BIDIR is set, don't run the BiDIR tests, this can be - used for builds that build without BiDIR GIOP - -Tue Aug 10 11:20:00 UTC 2004 Simon Massey - - Thanks to Johnny Willemsen for the information - leading to these guard conditions. - - * ace/Sock_Connect.cpp - Added guard checks around #include "ace/OS_NS_fcntl.h" - - * ace/DEV_IO.h - * ace/FILE_IO.h - * ace/FIFO_Send_Msg.h - Added guard checks around #include "ace/OS_NS_stropts.h" - - * ace/Pipe.cpp - * ace/SPIPE_Acceptor.cpp - Added guard checks around #include "ace/OS_NS_unistd.h" - -Mon Aug 9 23:13:48 2004 J.T. Conklin - - * ace/config-freebsd.h: - Remove #define of ACE_LACKS_TOWLOWER and ACE_LACKS_TOWUPPER. - FreeBSD has these functions, but they were disabled because - of the problem below. - - * ace/OS_NS_ctype.h: - * ace/OS_NS_ctype.inl: - * ace/OS_NS_strings.cpp: - * ace/OS_NS_wchar.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp: - * tests/Config_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: - Renamed ACE_OS::to_upper(int) and ACE_OS::to_upper(wint_t) to - ACE_OS::ace_toupper() and ACE_OS::ace_towupper() because they - are ambiguous on systems where wint_t is in fact an int. The - same was done for ACE_OS::to_lower(), etc. - -Mon Aug 9 18:12:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_stdlib.cpp (realpath): - Applied ACE code formatting to make it readable - -Mon Aug 9 15:20:00 UTC 2004 Simon Massey - - * ace/Sock_Connect.cpp - Added missing #include "ace/OS_NS_fcntl.h" - - * ace/DEV_IO.h - * ace/FILE_IO.h - * ace/FIFO_Send_Msg.h - Added missing #include "ace/OS_NS_stropts.h" - - * ace/Pipe.cpp - * ace/SPIPE_Acceptor.cpp - Added missing #include "ace/OS_NS_unistd.h" - -Mon Aug 9 15:05:12 UTC 2004 Johnny Willemsen - - * include/makeinclude/platform_hpux_gcc.GNU: - When buildbits is set to 64, add -m64 to the CPPFLAGS - -Mon Aug 9 09:25:12 2004 Huang-Ming Huang - - * tests/Dynamic_Priority_Test.cpp: - Fixed buffer overrun problem when ACE_HAS_TIMED_MESSAGE_BLOCKS - macro is defined. - -Mon Aug 9 09:56:12 UTC 2004 Johnny Willemsen - - * examples/APG/Processes/Spawn.cpp: - Changed the check of the result of spawn, use ACE_INVALID_PID - instead of -1. - -Mon Aug 9 08:55:12 UTC 2004 Johnny Willemsen - - * ace/OS_NS_unistd.inl (chdir): - Fixed Visual Age on Win32 implementation - - Thanks to Boris Kaminer for reporting - this. - -Sun Aug 8 22:43:37 2004 J.T. Conklin - - * ace/config-integritySCA.h: - * m4/config_h.m4: - Removed vestigial mentions of ACE_HAS_ONE_DEFINITION_RULE. - -Sun Aug 8 17:38:05 2004 J.T. Conklin - - * ace/README: - * ace/config-g++-common.h: - Removed vestigial mentions of ACE_HAS_GNUG_PRE_2_8. - - * m4/compiler.m4: - * m4/config_h.m4: - Removed check for ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS - and ACE_HAS_GNUG_PRE_2_8, as those feature test macros have been - removed from ACE for some time. - - * m4/config_h.m4: - * m4/threads.m4: - Replaced AH_TEMPLATE for ACE_HAS_STHREADS and ACE_HAS_PTHREADS - with third argument to AC_DEFINE. - -Sun Aug 8 07:12:32 2004 J.T. Conklin - - * configure.ac: - Start converting checks for for prototypes to use AC_CHECK_DECL - instead of AC_EGREP_CPP or AC_EGREP_HEADER. - - * ace/OS_NS_sys_resource.inl: - Changed so conditionals aren't used inside macro call. - - * m4/subsets.m4: - Changed AC_HELP_STRING to AS_HELP_STRING. - - * ace/config-sco-4.2-nothread.h: - * ace/config-sco-5.0.0-mit-pthread.h: - * ace/config-sco-5.0.0.h: - * ace/config-tandem.h: - Removed (commented-out) definition of ACE_HAS_SYSCALL_GETRUSAGE. - - * ace/config-hpux11.h: - * ace/config-hpux-11.00.h: - Removed ACE_HAS_SYSCALL_GETRUSAGE. getrusage() was added in - HPUX 10.10. - - * configure.ac: - Fixed check for setregid() and setreuid() prototypes to look for - them in , not . - - * m4/config_h.m4: - Replace some AH_TEMPLATE definitions. ACE_CHECK_HAS_HEADERS and - ACE_CHECK_LACKS_HEADERS provide autoheader templates themselves. - - * configure.ac: - Replace some calls to AC_CHECK_HEADERS with ACE_CHECK_HAS_HEADERS - or ACE_CHECK_LACKS_HEADERS. - - * m4/ace_headers.m4: - New file, with ACE_CHECK_HAS_HEADERS and ACE_CHECK_LACKS_HEADERS - autoconf macros. These macros are similar to AC_CHECK_HEADERS, - but define either ACE_HAS_ or ACE_LACKS_. - - * ace/OS_NS_unistd.inl: - * config-rtems.h: - Changed name of feature test macro ACE_HAS_GETOPT_PROTO to - ACE_HAS_GETOPT_PROTOTYPE. - - * ace/config-linux-common.h: - * ace/config-unixware-7.1.0: - * ace/config-unixware-7.1.0.udk.h: - * ace/os_include/sys/os_resource.h: - Changed name of feature test macro ACE_HAS_GETRUSAGE_PROTO to - ACE_HAS_GETRUSAGE_PROTOTYPE. - - * ace/Basic_Types.h: - * ace/config-chorus.h: - * ace/config-integritySCA.h: - * ace/config-mvs.h: - * ace/config-openvms.h: - * ace/config-psos-diab.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - * ace/config-tandem.h: - * ace/config-vxworks5.x.h: - * ace/config-win32-common.h: - * ace/os_include/os_limits.h: - Changed name of feature test macro ACE_LACKS_PARAM_H to - ACE_LACKS_SYS_PARAM_H. - - * ace/OS.inl: - * ace/config-dgux-4.11-epc.h: - * ace/config-freebsd.h: - * ace/config-hpux-10.x.h: - * ace/config-hpux-11.00.h: - * ace/config-hpux11.h: - * ace/config-irix5.2.h: - * ace/config-irix5.3-g++.h: - * ace/config-irix5.3-sgic++.h: - * ace/config-irix6.x-common.h: - * ace/config-linux-common.h: - * ace/config-m88k.h: - * ace/config-macosx-panther.h: - * ace/config-macosx.h: - * ace/config-netbsd.h: - * ace/config-openbsd.h: - * ace/config-osf1-3.2.h: - * ace/config-osf1-4.0.h: - * ace/config-sco-4.2-nothread.h: - * ace/config-sco-5.0.0-mit-pthread.h: - * ace/config-sco-5.0.0.h: - * ace/config-sunos4-g++.h: - * ace/config-sunos4-lucid3.2.h: - * ace/config-sunos4-sun3.x.h: - * ace/config-sunos4-sun4.1.4.h: - * ace/config-sunos4-sun4.x.h: - * ace/config-sunos5.4-centerline-2.x.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.h: - * ace/config-unixware-2.01-g++.h: - * ace/config-unixware-2.1.2-g++.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - * ace/os_include/sys/os_resource.h: - Changed name of feature test macro ACE_HAS_SYSCALL_H to - ACE_HAS_SYS_SYSCALL_H. - -Sat Aug 7 10:43:51 2004 Jeff Parsons - - * ace/OS_NS_string.cpp: - * ace/OS_NS_string.h: - * ace/OS_NS_string.inl: - - Uninlined the ACE_OS::strerror() method, so the #include of ACE.h - necessitated by the changes in - - Fri Aug 6 07:58:54 2004 Douglas C. Schmidt - - can be moved to the .cpp file. - -Fri Aug 6 20:22:02 2004 J.T. Conklin - - * configure.ac: - Added check for mkstemp() which sets ACE_LACKS_MKSTEMP if - it is not available. - -Fri Aug 6 19:13:12 UTC 2004 Martin Corino - - * ace/config-openvms.h: - Added ACE_HAS_VOIDPTR_GETTIMEOFDAY. - -Fri Aug 6 08:17:23 2004 J.T. Conklin - - * m4/ace.m4: - Split new ACE_WITH_RMCAST, ACE_WITH_QOS, and ACE_WITH_SSL macros - out of ACE_CONFIGURATION_OPTIONS so they can be used with other - packages. - - * ace/OS_NS_sys_uio.cpp: - * ace/OS_NS_sys_uio.h: - * ace/OS_NS_sys_uio.inl: - Changed ACE_OS::readv_emulation() and ACE_OS::writev_emulation() - to use const iovec * instead of type of system iovec parameter. - Changed ACE_OS::readv() to cast const qualification of iovec - parameter away if ACE_HAS_NONCONST_READV. - Changed ACE_OS::writev() to cast const qualifiaction of iovec - parameter away if ACE_HAS_NONCONST_WRITEV. - * ace/os_include/os_uio.h: - Removed ACE_READV_TYPE type definition. - Removed ACE_WRITEV_TYPE type definition. - Changed readv_timedwait and writev_timedwait definitions to - use const iovec *'s for iovec parameter. - - * ace/OS_sys_socket.inl: - Cast const qualifiaction away if ACE_HAS_NONCONST_SENDMSG. - * ace/os_include/sys/os_socket.h: - Removed ACE_SENDMSG_TYPE type definition. - - * ace/OS_sys_resource.h: - * ace/OS_sys_resource.inl: - Changed ACE_OS::setrlimit() to use const struct rlimit* - instead of type of system rlimit parameter. Cast const - qualification away if ACE_HAS_NONCONST_SETRLIMIT. - * ace/os_include/sys/os_resource.h: - Removed ACE_SETRLIMIT_TYPE type definition. - - * ace/config-chorus.h: - * ace/config-linux-common.h: - * ace/config-lynxos.h: - * ace/config-m88k.h: - * ace/config-osf1-3.2.h: - * ace/config-osf1-4.0.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h - * ace/config-rtems.h: - * ace/config-sunos5.4-centerline-2.x.h: - * ace/config-sunos5.4-g++.h: - * ace/config-sunos5.4-sunc++-4.x.h: - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-tandem.h: - * ace/config-vxworks5.x.h: - * configure.ac: - * m4/config_h.m4: - Rename ACE_HAS_BROKEN_SETRLIMIT, ACE_HAS_BROKEN_SENDMSG, - ACE_HAS_BROKEN_READV, and ACE_HAS_BROKEN_WRITEV to - ACE_HAS_NONCONST_SETRLIMIT, ACE_HAS_NONCONST_SENDMSG, - ACE_HAS_NONCONST_READV, and ACE_HAS_NONCONST_WRITEV to - be more descriptive of what's really broken. - - * bin/MakeProjectCreator/config/ec_used_typed_events.mpb: - Changed to inherit from dynamicinterface and ifr_client instead - of providing libs and after statements so that dependency chain - is complete. - -Fri Aug 6 10:26:20 2004 Jeff Parsons - - * ace/OS_NS_string.h: - - Added include of ACE.h needed for WIN32 version of change in - - Fri Aug 6 07:58:54 2004 Douglas C. Schmidt - - * ace/OS_NS_string.inl: - - Fixed typo and mismatched return type for WIN32. - -Fri Aug 6 14:15:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-common.h: - Don't define export macro's also for Visual Age. - - * ace/config-win32-visualage.h: - Added special Visual Age export macros - - Thanks to Boris Kaminer for reporting - this. - -Fri Aug 6 14:14:12 UTC 2004 Martin Corino - - * ace/OS_NS_sys_socket.h: - Removed include for 'ace/os_include/netinet/os_tcp.h'. - * ace/Pipe.cpp: - Added include for 'ace/os_include/netinet/os_tcp.h' to provide - TCP macros/constants (f.i. TCP_NODELAY) for OS like OpenVMS. - -Fri Aug 6 07:58:54 2004 Douglas C. Schmidt - - * ace/Message_Block.cpp (crunch): If rd_ptr_ was greater than - wr_ptr_ memory was overwritten, so added a check for this case - and return -1 in this case. Also, simplified the initial if - statement. Thanks to Boris Kaminer for reporting this. - - * ace/OS_NS_string.inl: Updated ACE_OS::strerror() so it checks - for socket errors explicitly. Thanks to Boris Kaminer - for reporting this. - -Fri Aug 6 10:18:12 UTC 2004 Martin Corino - - * ace/config-openvms.h: - Added ACE_LACKS_REALPATH. - Added '#define MAXSYMLINKS 0'. - Removed uppercase macros for pthread symbols. - -Fri Aug 6 10:08:12 UTC 2004 Martin Corino - - * ace/OS_NS_sys_socket.h: - Added include for 'ace/os_include/netinet/os_tcp.h' to provide - TCP macros/constants (f.i. TCP_NODELAY) for OS like OpenVMS. - -Fri Aug 6 09:50:12 UTC 2004 Johnny Willemsen - - * bin/make_release: - For generating the project files for borland, vc6 & vc71 set - qos=1 in the default.features file, these environments support - qos. - -Fri Aug 6 09:41:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - Just always use Makefile.bor as workspace name, this is the way - our Borland users expect things to work. - -Fri Aug 6 09:15:00 UTC 2004 Simon Massey - - * apps/JAWS3/jaws3/Reactive_IO_Helpers.h - private -> public ~JAWS_IO_Reactive_Handler (void) due to - aCC: HP ANSI C++ B3910B A.03.39 compiler bug not allowing - friend derived classes access. - -Fri Aug 6 08:34:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - Added ACE_HAS_TEMPLATE_TYPEDEFS - - * ace/config-win32-visualage.h: - Added huge list of new defines - - * ace/Event_Handler_T.h: - Instead of -1 use ACE_INVALID_HANDLE to make it portable - - * ace/Malloc.cpp: - Corrected assert - - * ace/OS_NS_sys_stat.h: - For IBMCPP also define ACE_stat as stat - - * ace/OS_NS_sys_stat.inl (stat): - For Visual Age use special _stat call - - * ace/Task.cpp (svc_run): - For Visual Age also do a static cast - - Thanks to Boris Kaminer for reporting - this. - -Fri Aug 6 08:03:12 UTC 2004 Johnny Willemsen - - * ace/config-win32-msvc-8.h: - Added this file for msvc8, is a copy of msvc7 but this will change as - things are tested for msvc8. - - * ace/config-win32-msvc.h: - If msvc_ver >= 1400 then we are including the msvc-8 file. - -Thu Aug 5 23:50:38 2004 J.T. Conklin - - * bin/MakeProjectCreator/config/ec_use_typed_events.mpb: - Changed to inherit from dynamicinterface and ifr_client instead - of providing libs and after statements so that dependency chain - is complete. - -Thu Aug 5 13:17:26 2004 Douglas C. Schmidt - - * ace/ACE.cpp (sock_error): Changed the WSAEWOULDBLOCK message - back to "resource temporarily unavailable" to be consistent with - the UNIX error string. Thanks to Boris Kaminer - for reporting this. - - * examples/NT_Service/ntsvc.{h,cpp}: Added a destructor to - Service that cancels the timer. Thanks to Scott Harris - for this fix. - - * ace/ACE.cpp (sock_error): Added support for WSAEISCONN. - Thanks to Boris Kaminer for reporting - this. - -Thu Aug 5 07:45:53 2004 J.T. Conklin - - * m4/config_h.m4: - Replace some AH_TEMPLATE definitions. ACE_CHECK_HAS_FUNCS and - ACE_CHECK_LACKS_FUNCS provide autoheader templates themselves. - - * configure.ac: - Replace some calls to AC_CHECK_FUNCS with ACE_CHECK_HAS_FUNCS or - ACE_CHECK_LACKS_FUNCS. - - * m4/ace_functions.m4: - New file, with ACE_CHECK_HAS_FUNCS and ACE_CHECK_LACKS_FUNCS - autoconf macros. These macros are similar to AC_CHECK_FUNCS, - but define either ACE_HAS_ or ACE_LACKS_. - -Thu Aug 5 09:21:12 UTC 2004 Johnny Willemsen - - The following changes are from Martin Corino - - * bin/mwc.pl: - * bin/mpc.pl: - * bin/depgen.pl: - * bin/cle.pl: - Added various changes to support autobuild MPC generation on - OpenVMS. - -Wed Aug 4 18:09:47 2004 J.T. Conklin - - * m4/ace.m4: - * configure.ac: - Support --with/without-tao flag to provide find grain - control over TAO configuration. - -Wed Aug 4 16:19:40 2004 Ossama Othman - - * ace/Global_Macros.h (ACE_CORBA_1, ACE_CORBA_2, ACE_CORBA_3): - - Marked these macros as deprecated, and removed the version of - these macros that defined the obsolete "CORBA_foo" broken - namespace workaround classes. - -Wed Aug 4 14:46:07 2004 J.T. Conklin - - * Makefile.am: - * configure.ac: - Configure TAO if TAO subdirectory is present. - -Wed Aug 4 16:33:14 2004 Balachandran Natarajan - - * ace/Select_Reactor_T.cpp: - - Fix for Bug 1893. Please see - - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1893 - - for details. Thanks to Alan L Batongbacal - for the patch. - -Wed Aug 4 08:31:43 2004 Douglas C. Schmidt - - * ace/config-linux-common.h: If the version of glibc - is less than 2.1 add the ACE_HAS_NONCONST_MSGSND macro. Thanks - to Anand and Johnny Willemsen for this - fix. - -Tue Aug 3 15:25:43 2004 Ossama Othman - - From Jaroslaw Nozderko . - * ace/Dev_Poll_Reactor.cpp (register_handler_i): - - Allow same handler to be registered with a different event, - which is consistent with the other reactor implementations. - -Tue Aug 3 13:04:24 2004 J.T. Conklin - - * ace/Svc_Handler.h: - * ace/Svc_Handler.cpp: - Add throw() exception specifier to no-throw version of class - local operator new. In addition to squelching warnings from - gcc, this tells the compiler to check the return value before - constructing the object. - -Tue Aug 3 08:55:37 2004 J.T. Conklin - - * ace/Condition_Recursive_Thread_Mutex.cpp: - * ace/Functor.inl: - * ace/config-borland-common.h: - * ace/config-g++-common.h: - * ace/config-hpux-11.00.h: - * ace/config-lite.h: - * ace/config-lynxos.h: - * ace/config-sunos5.5.h: - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-win32-ghs.h: - Remove vestigial traces of ACE_TEMPLATE_METHOD_SPECIALIZATION. - -Tue Aug 3 14:42:12 UTC 2004 Johnny Willemsen - - * ace/Containers_T.cpp: - Fixed incorrect trace macro - -Tue Aug 3 08:22:10 2004 Douglas C. Schmidt - - * ace/config-aix-5.x.h: - ace/OS_NS_dirent.inl (readdir_r): Added support for AIX and G++. - Thanks to Raz Ben-Yehuda . - -Tue Aug 3 11:56:12 UTC 2004 Johnny Willemsen - - * bin/msvc_static_order.lst: - Updated location of TAO vc6 static project files - -Tue Aug 3 06:19:06 2004 Chad Elliott - - * bin/MakeProjectCreator/config/acedefaults.mpb: - - Added macros in a specific section for the bmake project type. - -Tue Aug 3 07:07:12 UTC 2004 Johnny Willemsen - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - * bin/MakeProjectCreator/templates/bor.mpd: - Updated Borland templates to handle resource files in - subdirectories, this is needed for the moving of the mpc - files in TAO. Thanks to J.T. Conklin for making these - patches. - -Mon Aug 2 15:33:27 2004 Steve Huston - - * ace/Containers_T.cpp (ACE_Fixed_Set_Iterator::remove()): Had to - qualify 'iterated_items_' with 'this->' to make it visible in this - class now that iterated_items_ is in an inherited class. This per - HP-UX aC++, citing [temp.dep], 14.6.2(3) in the C++ Standard. - -Mon Aug 2 15:20:37 2004 Steve Huston - - * apps/JAWS3/jaws3/Event_Result.h: Added #include - "ace/os_include/os_stddef.h" to pick up size_t for platforms where - it's not defined by the compiler, such as Cygwin. Thanks to - Johnny Willemsen for reporting this. - -Mon Aug 2 08:55:17 2004 Douglas C. Schmidt - - * ace/Containers_T.h: The class ACE_Fixed_Set had some bugs in - it's interface declaration and also some in it's implementation: - 1) typedef the wrong class for is constant iterator and - 2) its method size() misbehave in certain circumstances where - elements were randomly deleted from a set object. - Moreover, the iterators of ACE_Fixed_Set has a lot of code in - common so the can be refactored to have a common abstract - ancestor with all the shared code. Therefore, refactored the - three classes and fixed the bug on the size() method. Thanks - to J. Abelardo Gutierrez for these fixes. - -Mon Aug 2 09:06:39 2004 Steve Huston - - * ace/os_include/os_signal.h: Removed the #include os_time.h - it's - not needed for anything in this header, and for some reason, it - introduces a type oddity on HP-UX - aC++ gets the idea there's a - tentative struct sigaction and doesn't match the real one, causing - compile errors in ACE_OS::sigaction(). - - * ace/OS_TLI.h: Removed stray '#'. - - * ace/Signal.{h inl}: Removed the hack typedef ACE_SIGACTION that - was allegedly put in for an HP-UX C++ bug. It's not needed and is - causing further problems. #include "ace/os_include/os_signal.h" - to get the needed signal-related types. - - * apps/JAWS3/jaws3/Event_Result.h: Changed #include "ace/OS.h" to - "ace/OS_NS_errno.h". Removing the "big hammer" OS.h stuff. This - fixes a compile error in OS_TLI.inl on HP-UX w/ aC++. Why? I - have no idea... there's something odd still about orders of - includes and/or preprocessor defs or something. This odd compile - error creeps up every once in a while and is always related to - fudging something somewhere (see fix above for signal...) but - this one doesn't have an apparant cause. - - * include/makeinclude/platform_hpux_aCC.GNU: Removed AREXTRA. It - was breaking static lib builds. - -Sun Aug 1 08:15:23 2004 J.T. Conklin - - * configure.ac: - Moved subdirectory configuration above call to AC_OUTPUT. - - * ace/OS_Memory.h: - Provide ACE_nothrow and ACE_nothrow_t definitions for platforms - where definitions are not handled by special cases. - - * configure.ac: - * m4/config_h.m4: - Added check for ACE_HAS_NEW_NOTHROW. - -Sun Aug 1 15:04:12 UTC 2004 Johnny Willemsen - - * ace/QoS/qos.mpc: - Also with bmake set macros += ACE_HAS_WINSOCK2_GQOS - - * ace/Select_Reactor_Base.h: - * ace/Object_Manager_Base.cpp: - * ace/Object_Manager.cpp: - * ace/Global_Macros.h: - * ace/Dev_Poll_Reactor.h: - Doxygen improvements/fixes - - * ace/config-openvms.h: - Removed commented out lines - - * ace/CDR_Stream.h: - Changed to signature for the to_string methods from char to - ACE_CDR::char so that they match the implementation - -Sun Aug 1 09:07:16 2004 Balachandran Natarajan - - * ChangeLogs/ChangeLog-04a: - - Moved contents from this file to a new file. - -Sat Jul 31 17:01:27 2004 Balachandran Natarajan - - * bin/generate_rel_manpages: - - This is now executed at tao.dre for generating doxygen - documentation. The files are then scp'ed to the main website. - -Sat Jul 31 11:13:20 2004 Ossama Othman - - * ACE version 5.4.2 released. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/ACE/ChangeLogs/ChangeLog-05a b/ACE/ChangeLogs/ChangeLog-05a deleted file mode 100644 index c6a64f51119..00000000000 --- a/ACE/ChangeLogs/ChangeLog-05a +++ /dev/null @@ -1,5879 +0,0 @@ -Fri May 13 06:08:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_time.inl: - Made fix for Intel C++ compiler under Windows - -Thu May 12 10:20:55 2005 Douglas C. Schmidt - - * Updated the COPYING file to clarify some ambiguity about - proprietary usage of ACE. - -Tue May 10 08:34:16 2005 Douglas C. Schmidt - - * ace/Token.h (ACE_Token): Improved the documentation to emphasize - that the semantics aren't truly readers/writer. Thanks to - Altaf Aali for motivating this. - - * ace/OS_NS_Thread.cpp (thr_create): Fixed a bug that wasn't - allowing the stack size to be size if the stack address wasn't - also being set. Thanks to Andreas Schuler - for reporting this. - -Fri May 6 13:50:12 UTC 2005 Martin Corino - - * ace/OS_NS_time.inl: - Fixed ACE_OS::gethrtime() for Intel Compiler on PENTIUM plaform. - -Fri May 6 11:29:12 UTC 2005 Johnny Willemsen - - * tests/Timer_Cancellation_Test.cpp: - Added missing ACE_TEXT macro usage - -Fri May 6 10:52:12 UTC 2005 Johnny Willemsen - - * tests/Recursive_Condition_Bug_Test.cpp: - When creating the ACE_Message_Block using an allocator, pass the - allocator to the ACE_Message_Block so that the MB will use that - allocator to free itself. Fixes a mismatch free/delete error - with valgrind - -Fri May 6 10:39:12 UTC 2005 Johnny Willemsen - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - Fixed invalid read in the valgrind build. - -Thu May 5 11:33:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Don't run the Notify Reconnecting test in a static build. Thanks - to Justin Michel for confirming this - -Thu May 5 11:27:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - When building shared libraries add -Wl,-E to the linker options - to be able to do a dynamic_cast in a shared library of a class - that is defined in the application. This fixes the ACE DLL_Test - failure with the Intel C++ Compiler. - -Tue May 3 14:27:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_aix_g++.GNU: - Simplified this file - - * include/makeinclude/platform_aix_ibm.GNU: - Simplified this file and set gcc as preprocessor for TAO_IDL. The - Visual Age preprocessor is not usable for building applications - with idl files that include other idl files which only contain - includes. This is reported to IBM and we now force gcc as - preprocessor to prevent all kind of strange errors when building - the TAO examples/tests - -Sun May 1 09:59:12 UTC 2005 Johnny Willemsen - - * examples/Reactor/Misc/pingpong.cpp: - Fixed compile error - -Sun May 1 01:06:34 2005 Ossama Othman - - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_Base.inl: - - Moved all virtual functions out of line. Inlining them prevents - run-time type identification from functioning properly when - using g++ 4.x's "-fvisibility-inlines-hidden" command line - option/feature. Addresses failed dynamic_cast<>s of an - ACE_Reactor_Impl base class to an ACE_Select_Reactor subclass. - - * ace/Select_Reactor_Base.h (~ACE_Reactor_Notify): - - Explicitly declare this destructor as virtual. It was already - implicitly virtual due to the virtual destructor in the - ACE_Event_Handler base class. This explicit declaration is - simply a reminder that it is virtual, and shouldn't be inlined - since doing so can potentially cause failed dynamic_cast<>s when - using g++ 4.x's hidden visibility of inlined functions feature. - -Sat Apr 30 15:24:13 2005 Douglas C. Schmidt - - * examples/Reactor/Misc/pingpong.cpp (run_svc): Allocate the - Ping_Pong callback dynamically to avoid crashses when things - close down. Thanks to Johnny Willemsen for narrowing down the - problem and to Alex Ott for reporting it. - -Fri Apr 29 23:45:59 2005 Ossama Othman - - * examples/Bounded_Packet_Relay/BPR_Drivers.cpp: - * examples/Bounded_Packet_Relay/BPR_Drivers.h: - * examples/Mem_Map/IO-tests/IO_Test.cpp: - * examples/Mem_Map/IO-tests/IO_Test.h: - * examples/Reactor/Misc/test_event_handler_t.cpp: - * examples/Threads/future2.cpp: - * examples/Timer_Queue/Driver.cpp: - * examples/Timer_Queue/Driver.h: - - Added virtual destructor to silence g++ 4.0 warnings. - - * examples/Threads/future2.cpp (test_timeout): - - Fixed "variable may be used initialized" warning. - -Fri Apr 29 09:25:28 2005 Douglas C. Schmidt - - * ace/Thread_Exit.cpp (cleanup): Set ACE_Thread_Manager::thr_exit_ - to 0 to prevent a later crash in - ACE_Thread_Manager::set_thr_exit(). Thanks to D. J. Stachniak - for submitting a fix and Slava Gorelik - for reporting the problem. - -Fri Apr 29 12:42:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Added some info about Visual Age versions that cause problems - -Fri Apr 29 08:55:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - On IA64 add -mp to the compiler flags to disable the optimizer - because of problems in the TAO IDL_Test - -Thu Apr 28 23:06:59 2005 Ossama Othman - - * ace/config-linux-common.h: - - Do not perform feature tests using implementation-specific - preprocessor symbols. Use the standard ones instead - (e.g. _POSIX_C_SOURCE, _ISO_C99SOURCE, _BSD_SOURCE, - _XOPEN_SOURCE, etc). - -Thu Apr 28 22:53:16 2005 Ossama Othman - - * ace/config-linux-common.h (ACE_LACKS_MKSTEMP_PROTOTYPE): - - Do not define this preprocessor symbol if _XOPEN_SOURCE_EXTENDED - is already defined. Addresses mkstemp() unmatched prototype - related errors exhibited by g++ 4.0 on some Linux platforms. - -Wed Apr 27 14:29:03 2005 J.T. Conklin - - * ace/Log_Msg.cpp (ACE_Log_Msg::log_hexdump): - - Check log priority before allocating message buffer and - formatting message, an unnecessary expense if the message isn't - going to be output. Thanks to for - reporting this problem. - -Wed Apr 27 20:25:12 UTC 2005 Johnny Willemsen - - * examples/Reactor/Misc/pingpong.cpp: - When no commandline argument has been passed, exit normally with - an ACE_ERROR_RETURN instead of an abort. Thanks to Alex Ott - for reporting this. - -Wed Apr 27 18:30:12 UTC 2005 Johnny Willemsen - - * ace/Message_Block.h: - Removed include of stdlib.h, it shouldn't be here - - * ace/Process_Semaphore.h: - * ace/Reactor.h: - * ace/SOCK_Stream.h: - * ace/Task.h: - * ace/Token_Request_Reply.h: - * ace/UPIPE_Stream.h: - Doxygen improvements - -Wed Apr 27 15:31:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/ace_tk.mpb: - Fixed wrong LDFLAGS. Thanks to Peter Grotrian - for reporting this. This - fixes bugzilla [2096] - -Wed Apr 27 15:27:12 UTC 2005 Johnny Willemsen - - * ace/Barrier.h: - * ace/DLL.cpp: - Added missing includes when threads=0. Thanks to Peter Grotrian - for reporting this. This - fixes bugzilla [2097] - -Wed Apr 27 15:11:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - When ACE_HAS_CLOCK_GETTIME is defined include ace/os_include/ - os_time.h to get nanosleep. Fixes compile errors with gcc on ia64 - -Tue Apr 26 10:59:02 2005 J.T. Conklin - - * netsvcs/lib/Makefile.am: - - Add *_LDFLAGS definition to set shared library version number. - -Sun Apr 24 14:02:51 2005 Emre Turkay - - * bin/ciao_tests.lst: - - CIAO regression test won't run on minimum_corba. Added the - configuration requirement in the file. - -Sun Apr 24 10:53:40 2005 Nanbor Wang - - * ace/MEM_Stream.h: - * ace/MEM_Acceptor.cpp: Changed code to ensure the internal buffer - size of MEM_Stream will be at least 4096 bytes by default. The - minimum internal buffer size determines the largest message - allowable per send operation. This size used to depend on the - default minimum size of ACE_Malloc size, which currently no - longer allocates a minimum of 4K memory. One can change the - default MEM_Stream buffer size by redefining the - ACE_MEM_STREAM_MIN_BUFFER (in bytes) in the config.h file. - - Thanks to Voronkov Konstantin for - motivating this change. - -Sun Apr 24 09:49:12 UTC 2005 Johnny Willemsen - - * ace/config-aix-5.x.h: - Removed GNUC check for ACE_HAS_POSIX_GETPWNAM_R. - -Sat Apr 23 20:09:12 UTC 2005 Johnny Willemsen - - * ace/CDR_Size.cpp: - * ace/CDR_Stream.cpp: - Do the include of SString.h before the include of the inline file - to fix compile problems with AIX - -Sat Apr 23 20:05:12 UTC 2005 Johnny Willemsen - - * ace/TP_Reactor.cpp: - Added include of OS_NS_sys_time.h to get ACE_OS::gettimeofday() - -Sat Apr 23 13:12:27 2005 Douglas C. Schmidt - - * ace/Task.inl (grp_id): - * ace/Managed_Object.h (class ACE_Managed_Object): - * ace/Thread.inl (setprio): - * ace/OS_NS_Thread.inl: - Changed all uses of "id" to something else to avoid conflicts - with Mac OS X, where "id" is a keyword. Thanks to Ron Wilson - for reporting this problem. - -Sat Apr 23 08:20:11 2005 Ossama Othman - - * examples/Log_Msg/test_log_msg.cpp (ACE_TMAIN): - * tests/Log_Msg_Test.cpp (test_log_msg_features): - - Fixed "possible loss of data" VC++ 7.1 warnings. - -Fri Apr 22 18:02:37 2005 Douglas C. Schmidt - - * ace/Log_Msg.cpp (open): Fixed a problem with LOGGER and logger_key - and the backend_->open() call. Thanks to Jerry D. De Master - for reporting this. - -Fri Apr 22 22:45:35 2005 Ossama Othman - - * apps/JAWS3/jaws3/Event_Completer.h (~JAWS_Event_Completer): - * apps/JAWS3/jaws3/Event_Completer.cpp (~JAWS_Event_Completer): - * examples/APG/ThreadPools/Futures.cpp (~IManager): - * examples/APG/ThreadPools/ThreadPool.cpp (~IManager): - * examples/APG/Timers/PCB.h (~PCB): - * examples/APG/Timers/PCB.cpp (~PCB): - * performance-tests/Misc/test_mutex.cpp (~Mutex_Base): - - Added virtual destructor to silence g++ 4.0 warnings. - - * examples/APG/Containers/DataElement.h: - * examples/APG/Containers/Stacks.cpp: - * examples/APG/ThreadPools/Futures.cpp: - * examples/APG/ThreadSafety/TSS.cpp (get_attribute): - * performance-tests/Server_Concurrency/Latency_Stats.h - (Throughput_Stats): - * tests/Cache_Map_Manager_Test.cpp (find_test_hash_cache): - * tests/Future_Test.cpp (run_main): - * tests/Map_Manager_Test.cpp: - - Fixed "variable may be used initialized" g++ 4.0 warnings. - - * examples/APG/Naming/Temperature_Monitor2.cpp (record_history): - * examples/Log_Msg/test_log_msg.cpp (ACE_TMAIN): - * tests/Log_Msg_Test.cpp (test_log_msg_features): - - Fixed "operation may undefined" g++ 4.0 warnings. - - * tests/Message_Block_Test.cpp: - - Fixed "non-local variable ' alloc_struct [2]' - uses anonymous type" g++ 4.0 warning. - -Fru Apr 22 18:13:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Added AIX to the list of Remedy IT supported platforms - -Fri Apr 22 12:14:41 2005 Balachandran Natarajan - - * ace/Connector.cpp: - * ace/Connector.h: - - Added a new version of NBCH::close () which can be used by - ACE_Connector::cancel () . The close () was essential for the - cancel () to provide proper pre and post conditions, without - which applications have no clue on the status of things. - -Thu Apr 21 23:57:33 2005 Ossama Othman - - * include/makeinclude/platform_g++_common.GNU: - - Only add g++ 4.x visibility flags when shared libraries are - enabled. - -Thu Apr 21 18:37:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Set optimize default to 0 when not set. The optimizer of the Intel - Compiler can cause several problems, so disable it by default - -Thu Apr 21 18:30:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Simplified this file - -Thu Apr 21 18:16:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_sunos5_g++.GNU: - Simplified this file and use exceptions by default, just as with - suncc - -Wed Apr 20 16:06:22 2005 Steve Huston - - * tests/run_test.pl: If -t is specified (run specified test[s]) then - don't load run_test.lst. This allows autoconfig builds to use this - script to run the "make check"-ordered tests using this script - to do log checks and timeouts. - -Wed Apr 20 20:01:12 UTC 2005 Johnny Willemsen - - * tests/ACE_Test.cpp: - Now fixed the compile warning for real - -Wed Apr 20 12:51:17 2005 Ossama Othman - - * ace/Cleanup_Strategies_T.cpp: - * ace/Cleanup_Strategies_T.h: - * apps/Gateway/Gateway/File_Parser.h: - * apps/Gateway/Gateway/File_Parser.cpp: - * examples/Web_Crawler/URL_Visitor.cpp: - * examples/Web_Crawler/URL_Visitor.h: - * examples/Web_Crawler/URL_Visitor_Factory.cpp: - * examples/Web_Crawler/URL_Visitor_Factory.h: - - Added virtual destructors to address g++ 4.0 warnings. - -Wed Apr 20 07:15:12 UTC 2005 Johnny Willemsen - - * tests/ACE_Test.cpp: - Fixed compile warning - -Tue Apr 19 18:46:29 2005 Steve Huston - - * tests/Makefile.am: Correct the variable name used to inject a test - executor - TESTS_ENVIRONMENT, not TEST_ENVIRONMENT. - -Tue Apr 19 16:41:47 2005 Steve Huston - - * ace/Basic_Types.h: Don't attempt to typedef ACE_UINT64 based on - specific available types if ACE_LACKS_LONGLONG_T or - ACE_LACKS_UNSIGNEDLONGLONG_T is defined - in either of these 'lacks' - is set, ACE_U_LongLong is declared and typedef'd to ACE_UINT64. - - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: Added missing template instantiations. - -Tue Apr 19 19:17:12 UTC 2005 Johnny Willemsen - - * ace/ACE.inl: - Fixed log2 method. It returned incorrectly log2(x) + 1. - - * ace/Log_Record.cpp: - Removed from priority_names_ array now log2 gives back the - correct result - - * tests/ACE_Test.cpp: - Added a regression test for ACE::log2. - - This fixes bugzilla bug 2078. Thanks to Brian O'Connor - for reporting this problem. - -Tue Apr 19 18:34:12 UTC 2005 Johnny Willemsen - - * ace/config-pharlap.h: - Define IP_TOS to 8 when ACE_HAS_PHARLAP_RT is defined. Thanks to - David Hauck for this fix - -Tue Apr 19 16:22:12 UTC 2005 Johnny Willemsen - - * ace/Time_Value.h: - Fixed compile problem with Embedded Visual C++ 4.0 using a release - build. Thanks to Mitscher Dubreus - for reporting this problem and to Bruce Elliot - for delivering the fix. - -Tue Apr 19 08:32:12 UTC 2005 Johnny Willemsen - - * examples/APG/ThreadPools/ThreadPool.cpp: - * examples/C++NPv1/Reactive_Logging_Server_Ex.h: - Initialise pointer with 0 - -Tue Apr 19 08:31:12 UTC 2005 Johnny Willemsen - - * examples/APG/ThreadSafety/Mutex.cpp: - Added virtual destructor to LogMessage to silince pre gcc 4.0 - -Tue Apr 19 06:54:12 UTC 2005 Johnny Willemsen - - * examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc: - * examples/ASX/Event_Server/Event_Server/Event.mpc: - * examples/ASX/Event_Server/Transceiver/Transceiver.mpc: - Fixed these mpc files, they should build an executable, not a - shared library - -Mon Apr 18 17:56:36 2005 J.T. Conklin - - * configure.ac: - - Add check for check_settime and set ACE_HAS_CLOCK_SETTIME if - it exists. - -Mon Apr 18 19:16:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-borland.h: - Added a check that when threading is enabled we have to link - with multithreaded libraries. - -Mon Apr 18 11:43:05 2005 Emre Turkay - - * bin/auto_run_tests.pl: - - Fixed a typo preventing autobilds to run CIAO test. - -Mon Apr 18 11:38:29 2005 Steve Huston - - * examples/Reactor/WFMO_Reactor/Window_Messages.cpp: Remove poorly - ordered auto_ptr for ACE_Msg_WFMO_Reactor instance. Let the - ACE_Reactor object delete the implementation to assure correct order. - -Mon Apr 18 14:12:12 UTC 2005 Johnny Willemsen - - * examples/APG/Active_Objects/AO.cpp: - * examples/APG/Active_Objects/AO2.cpp: - Initialise local variables with 0 - -Mon Apr 18 12:54:12 UTC 2005 Johnny Willemsen - - * tests/RB_Tree_Test.cpp: - Initialise pointer with 0 - -Mon Apr 18 12:42:12 UTC 2005 Johnny Willemsen - - * examples/Threads/future1.cpp: - Initialise pointer with 0 - -Mon Apr 18 11:26:12 UTC 2005 Johnny Willemsen - - * netsvcs/lib/Server_Logging_Handler_T.cpp: - * tests/Cache_Map_Manager_Test.cpp: - * tests/Logging_Strategy_Test.cpp: - Removed pragma once to fix gcc pre 4.0 warning - - * tests/Future_Set_Test.cpp: - * tests/OrdMultiSet_Test.cpp: - Initialise pointer with 0 - - * tests/SOCK_Test_IPv6.cpp: - Moved ACE_ALPHABET into ACE_HAS_IPV6 block - -Mon Apr 18 10:05:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-common.h: - * ace/config-win32-msvc.h: - Moved the _MT check from the win32-common file to win32-msvc, this - check is for msvc, not for Borland and g++. Thanks to - Stefan Morrow for motivating this - change. - - * include/makeinclude/compiler.bor: - No need to define _MT - -Mon Apr 18 09:46:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new Deactivate_Object test - -Mon Apr 18 07:22:12 UTC 2005 Johnny Willemsen - - * ace/Parse_Node.{h,cpp,inl}: - Removed inl file, it is empty - - * ace/ace.mpc: - Added Parse_Node.cpp, it was not listed - - * ace/Makefile.am: - Removed Parse_Node.inl - -Sun Apr 17 20:02:01 2005 Olli Savia - - * ace/README: - * ace/config-unixware-2.01-g++.h: - * ace/config-unixware-2.1.2-g++.h: - Removed references to ACE_HAS_THREAD_T. It is no longer - used in ACE/TAO code. - -Sun Apr 17 19:49:05 2005 Olli Savia - - * ace/config-netbsd.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - Removed ACE_HAS_SYS_IOCTL_H definition. It is no longer - used in ACE/TAO code. - -Sun Apr 17 19:33:55 2005 Olli Savia - - * ace/config-win32-interix.h: - Removed ACE_HAS_ANSI_CASTS definition. It is no longer - used in ACE/TAO code. - -Sun Apr 17 10:44:43 2005 Douglas C. Schmidt - - * ace/ACE.cpp (sock_error): Added a bunch more WSA* socket error - values. Thanks to Arto Jalkanen for - contributing this. - -Sun Apr 17 07:51:55 2005 Ossama Othman - - * ace/config-lite.h (ACE_EXPORT_SINGLETON_DECLARATION): - (ACE_EXPORT_SINGLETON_DECLARE): - - Added suitable defaults when ACE_HAS_CUSTOM_EXPORT_MACROS is - defined and these aren't. - -Sun Apr 17 17:34:38 2005 Olli Savia - - * ace/config-win32-interix.h: - * m4/config_h.m4: - Removed references to ACE_HAS_SYSCALL_H. It is no longer - used in ACE/TAO code. - -Sat Apr 16 20:47:11 2005 Emre Turkay - - * bin/ciao_tests.lst: - - The required constraints Exceptions and !STATIC are added to the - CIAO test. - -Sat Apr 16 20:37:07 2005 Emre Turkay - - * bin/auto_run_tests.pl: - * bin/ciao_tests.lst: - - Added auto_build tests for CIAO. - -Sat Apr 16 16:33:53 2005 Ossama Othman - - * ace/Parse_Node.inl: - * ace/Parse_Node.cpp: - - Moved inlined virtual destructors out of line. Addresses - unresolved symbol errors when using g++ 4.0 with a default - symbol visibility set to "hidden". - -Sat Apr 16 09:18:42 2005 Ossama Othman - - * ace/Reactor.inl: - * ace/Reactor.cpp: - - Moved inlined virtual methods out of line. Addresses unresolved - symbol errors when using g++ 4.0's "-fvisibility-inlines-hidden" - command line option. The methods can be inlined again once/if - we make the methods non-virtual. Since the ACE_Reactor now - implements the Bridge design pattern, they no longer need to be - virtual. However, they will remain virtual for a while due to - potential user legacy app / backward compatibility issues. - -Fri Apr 15 11:36:45 2005 Ossama Othman - - * ace/Timeprobe.h: - - Drop the semi-colon after the ACE_SINGLETON_DECLARE. The - convention is not to add a trailing semi-colon. Addresses a g++ - 4.0 CVS snapshot error about an extra semi-colon. - - * ace/config-g++-common.h (ACE_EXPORT_SINGLETON_DECLARE): - - Added a trailing semi-colon in the definition of this macro for - g++ 4.x or better. This is the same convention we use for - Windows. - -Fri Apr 15 12:14:12 UTC 2005 Martin Corino - - * bin/PerlACE/ProcessVX_Win32.pm: - Simplification and improvements. - -Fri Apr 15 11:59:12 UTC 2005 Martin Corino - - * bin/tao_orb_tests.lst: - Excluded some tests explicitly for VxWorks builds. - -Fri Apr 15 09:33:12 UTC 2005 Martin Corino - - * ACE_INSTALL.html: - Some updates concerning VxWorks support. - -Thu Apr 14 23:35:57 2005 Ossama Othman - - * ace/Timeprobe.h: - - Include "ace/Null_Mutex.h" to pull in complete ACE_Null_Mutex - type. Fixes "incomplete type" errors. - - * ace/config-g++-common.h (ACE_EXPORT_SINGLETON_DECLARATION): - (ACE_EXPORT_SINGLETON_DECLARE): - - Define these macros to a suitable C++ expression. Addresses - syntax errors. - -Fri Apr 15 07:57:38 2005 Olli Savia - - * ace/Ping_Socket.cpp: - Replaced NULL with 0. - -Fri Apr 15 07:39:20 2005 Olli Savia - - * ace/OS.inl: - Fixed typo in comment. - - * ace/config-integritySCA.h: - Removed ACE_HAS_SYSENT_H definition. It is no longer - used in ACE/TAO code. - -Fri Apr 15 07:27:38 2005 Olli Savia - - * ace/README: - Removed ACE_HAS_BROKEN_ENUMS. It is no longer used in ACE/TAO code. - - * ace/config-fsu-pthread.h: - * ace/config-mit-pthread.h: - * ace/config-sco-5.0.0-mit-pthread.h: - Removed ACE_HAS_PTHREAD_ATTR_INIT, ACE_HAS_PTHREAD_ATTR_DESTROY and - ACE_HAS_PTHREAD_YIELD_VOID_PTR definitions. These are no longer - used in ACE/TAO code. - -Fri Apr 15 07:19:20 2005 Olli Savia - - * ace/Handle_Set.cpp: - * ace/README: - * m4/config_h.m4: - Removed references to ACE_HAS_BROKEN_BITSHIFT. It is no longer - needed. - -Thu Apr 14 17:12:44 2005 Steve Huston - - * configure.ac: Corrected the variable used to tell whether or not - to check for ACE_HAS_XPG4_MULTIBYTE_CHAR. Fixes configure on Solaris. - - * ace/Service_Config.h: #include "ace/SString.h" instead of - "ace/SStringfwd.h" to make sure everything needed for explicit - template instantiation is present. - -Thu Apr 14 15:25:31 2005 Steve Huston - - * NEWS: Added a note that the reactor change: - Wed Apr 13 14:34:12 UTC 2005 Martin Corino - may cause some trouble in programs that dynamically allocate - a reactor implementation then destroy it before the ACE_Reactor - referring to it. This is always bad, but now will cause a crash. - - * examples/Reactor/WFMO_Reactor/run_test.pl: Removed the "require - Process" line - it tried to refer to the one in $ACE_ROOT/bin, which - was removed: - Mon Apr 4 11:20:08 2005 J.T. Conklin - - * tests/Priority_Reactor_Test.cpp (run_main): - * tests/Reactor_Notify_Test.cpp (run_test): Use the ACE_Reactor's - delete_implementation setting to delete any created reactor - implementation instead of using separate auto_ptr objects for the - ACE_Reactor and its implementation. Prevents destruction - order issues if the implementation is destroyed first. - -Thu Apr 14 09:21:14 2005 Chad Elliott - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - - Added support for the -SS, -Sci and -Ssi options. - -Thu Apr 14 10:27:12 UTC 2005 Johnny Willemsen - - * ace/config-cygwin32.h: - Removed setting of ACE_HAS_CLOCK_SETTIME. Cygwin seems to define - clock_settime but we get an unresolved symbol when linking. - -Thu Apr 14 00:03:12 2005 Olli Savia - - * ace/config-rtems.h: - Removed ACE_HAS_PROCESS_ENUM definition. It is no longer - used in ACE/TAO code. - -Wed Apr 13 23:58:15 2005 Olli Savia - - * ace/config-irix6.x-common.h: - Removed ACE_HAS_SETOWN definition. It is no longer - used in ACE/TAO code. - -Wed Apr 13 23:42:41 2005 Olli Savia - - * ace/config-win32-interix.h: - Removed ACE_HAS_MKSTEMP definition. It is no longer - used in ACE/TAO code. - -Wed Apr 13 13:42:21 2005 J.T. Conklin - - * ace/Proactor_Impl.cpp: - - Only compile if system supports asynchronous I/O. - -Wed Apr 13 19:07:41 2005 Olli Savia - - * ace/OS_NS_time.inl: - Handle broken prototype of clock_settime() by adding - const_cast if ACE_HAS_NONCONST_CLOCK_SETTIME is defined. - - * ace/OS_NS_unistd.inl: - Fixed wrong comment and removed commented out code. - - * ace/README: - Documented new macros ACE_HAS_NONCONST_CLOCK_SETTIME - and ACE_LACKS_SCANDIR_PROTOTYPE. - - * ace/TSS_T.h: - Fixed wrong comment. - - * ace/config-lynxos.h: - Added new defines ACE_HAS_NONCONST_CLOCK_SETTIME, - ACE_HAS_SCANDIR, ACE_LACKS_SCANDIR_PROTOTYPE and - ACE_SCANDIR_CMP_USES_VOIDPTR. - - * ace/os_include/os_dirent.h: - Declare scandir() prototype if ACE_LACKS_SCANDIR_PROTOTYPE - is defined. - -Wed Apr 13 14:34:12 UTC 2005 Martin Corino - - * ace/Reactor.cpp: - Added call to close() to reactor implementation in destructor to - prevent problems with destruction of implementation instance when - created on the stack. - -Wed Apr 13 07:32:19 2005 J.T. Conklin - - * ace/Thread_Hook.h: - * ace/Thread_Hook.cpp: - - Move ACE_Thread_Hook destructor out of line so it's not compiled - and included in each translation unit that includes Thread_Hook.h. - -Wed Apr 13 07:27:21 2005 J.T. Conklin - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - - Move ACE_Char_Codeset_Translator destructor out of line so it is - not compiled and included in each translation unit that includes - CDR_Stream.h. - -Wed Apr 13 07:20:54 2005 J.T. Conklin - - * ace/Makefile.am: - * ace/ace.mpc: - - Add Proactor_Impl.cpp to list of source files. - - * ace/Proactor_Impl.h: - * ace/Proactor_Impl.cpp: - - Move ACE_Proactor_Impl destructor out of line into new file - Proactor_Impl.cpp so it's not compiled and included in each - translation unit that includes Proactor_Impl.h. - -Tue Apr 12 19:30:40 2005 J.T. Conklin - - * ace/Makefile.am: - * ace/ace.mpc: - - Add Reactor_Impl.cpp to list of source files. - - * ace/Reactor_Impl.h: - * ace/Reactor_Impl.cpp: - - Move ACE_Reactor_Impl destructor out of line into new file - Reactor_Impl.cpp so it's not compiled and included in each - translation unit that includes Reactor_Impl.h. - -Tue Apr 12 16:44:19 2005 Boris Kolpackov - - * protocols/ace/RMCast/Protocol.h: - - Got rid of the "might be used uninitialized" warnings. - -Tue Apr 12 09:17:34 2005 Arvind S. Krishna - - * tests/Memcpy_Test.cpp: - Fixed VC6 build errors relating to include file for - ACE_OS::memcpy. - -Tue Apr 12 13:11:12 UTC 2005 Martin Corino - - * bin/PerlACE/ProcessVX.pm: - Enhanced functionality for controlling kernel reboot. - -Tue Apr 12 07:53:39 2005 Arvind S. Krishna - - * tests/Memcpy_Test.cpp: - Fixed problems with VC6 build. - -Tue Apr 12 07:26:12 UTC 2005 Martin Corino - - * bin/PerlACE/ProcessVX.pm: - Fixed problem for non-Win based builds. - -Tue Apr 12 08:06:34 2005 Olli Savia - - * ace/config-lynxos.h: - Fixed wrong comment. - - * include/makeinclude/platform_lynxos.GNU: - VERSION now defaults to 4.0.0 - -Tue Apr 12 07:48:05 2005 Olli Savia - - * ace/config-linux-common.h: - * ace/config-osf1-4.0.h: - * configure.ac: - * m4/config_h.m4: - - Removed references to ACE_POLL_IS_BROKEN. It is no longer - used in ACE/TAO code. - -Mon Apr 11 21:55:57 2005 Arvind S. Krishna - - * tests/Memcpy_Test.cpp: - - Scoped gettimeofday invocation as ACE_OS::gettimeofday as it was - causing errors in the ACE build - -Mon Apr 11 12:17:01 2005 Ossama Othman - - * ace/config-lite.h: - - Make sure DSO/DLL symbol related export macros other than - ACE_Proper_Export_Flag are defined if not previously defined in - the ACE_HAS_CUSTOM_EXPORT_MACROS case. Simplifies configuration - for compilers that only need ACE_Proper_Export_Flag. - - * m4/compiler.m4 (ACE_SET_COMPILER_FLAGS): - * m4/config_h.m4 (ACE_PREP_CONFIG_HEADER): - - Enable g++ visibility attribute support when using g++ 4.0 or - better. - -Mon Apr 11 11:50:46 2005 J.T. Conklin - - * ace/README: - * ace/config-hpux-10.x.h: - * ace/config-hpux-11.00.h: - * ace/config-openvms.h: - * ace/config-osf1-3.2.h: - - Fix typo: POSIX 1.b -> POSIX.1b. - -Mon Apr 11 11:39:11 2005 J.T. Conklin - - * ace/OS_NS_time.h: - * ace/OS_NS_time.inl: - - Add ACE_OS::clock_settime(). - - * ace/config-chorus.h: - * ace/config-cygwin32.h: - * ace/config-hpux-10.x.h: - * ace/config-hpux-11.00.h: - * ace/config-integritySCA.h: - * ace/config-linux-common.h: - * ace/config-lynxos.h: - * ace/config-netbsd.h: - * ace/config-openvms.h: - * ace/config-osf1-3.2.h: - * ace/config-osf1-4.0.h: - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-rtems.h: - * ace/config-sunos5.5.h: - * ace/config-vxworks5.x.h: - - Define ACE_HAS_CLOCK_SETTIME in every canned config-* header - that defines ACE_HAS_CLOCK_GETTIME. - - * ace/README: - - Document new feature test macro ACE_HAS_CLOCK_SETTIME. - -Mon Apr 11 10:27:12 2005 Ossama Othman - - * include/makeinclude/platform_g++_common.GNU: - - Fixed ambiguities when determining whether g++ 4.0 or better is - being used. - - * include/makeinclude/platform_linux.GNU (CXX): - - Do not set CXX variable to "g++" if it has been previously set. - Addresses problem where g++ version was not retrieved from the - g++ compiler set by the user. - -Mon Apr 11 15:56:55 2005 Boris Kolpackov - - * protocols/ace/RMCast/Protocol.h: - - Moved things around a bit in hope it will help BCB6. - -Mon Apr 11 12:58:12 UTC 2005 Martin Corino - - * bin/PerlACE/Run_Test.pm: - * bin/PerlACE/Process_Win32.pm: - Changes to improve/add support for VxWorks tests. - - * bin/PerlACE/ProcessVX.pm: - * bin/PerlACE/ProcessVX_Win32.pm: - New Process class with support for running VxWorks tests on - remote targets. - - * tests/run_test.pl: - Changed to utilize the new ProcessVX class. - -Mon Apr 11 11:38:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread.cpp: - Added new "C" function 'vx_execae' for VxWorks builds. - Used to run VxWorks tasks (tests) in a more controlled, - synchronous way. - -Mon Apr 11 11:27:12 UTC 2005 Martin Corino - - * ace/config-g++-common.h: - Defined ACE_LACKS_MEMBER_TEMPLATES for GCC < 3.0 as a solution - for recent template compile errors from TypeCode refactoring. - -Mon Apr 11 11:25:12 UTC 2005 Johnny Willemsen - - * ace/Refcounted_Auto_Ptr.h: - Removed explicit for the constructor which I added recently. I causes - problems for user apps that use the implicit conversion. This class - has more problems which need to be resolved. - -Mon Apr 11 09:27:12 UTC 2005 Johnny Willemsen - - * ace/os_include/netinet/os_in.h: - Define IP_MULTICAST_LOOP when it is not defined yet. Fixes problems - with Pharlab. - -Mon Apr 11 09:20:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_netdb.cpp (getmacaddress): - Added Pharlab support - -Mon Apr 11 00:00:42 2005 Boris Kolpackov - - * ace/CDR_Size.cpp: - - Removed unnecessary return statement. - -Sun Apr 10 15:36:58 2005 Arvind S. Krishna - - * tests/Memcpy_Test.cpp: - - Fixed wrong include file to fix compilation errors on Windows - box. - -Sun Apr 10 15:05:35 2005 Arvind S. Krishna - - * tests/tests.mpc: - * tests/Memcpy_Test.cpp: - - Changed the name of the test to ensure that it is same as the - log file created. - -Sun Apr 10 13:25:26 2005 Boris Kolpackov - - * ace/CDR_Size.h: - * ace/CDR_Size.cpp: - * ace/CDR_Size.inl: - - Added new ACE_SizeCDR. It is a CDR stream similar to - ACE_OutputCDR but instead of serializing anything - ACE_SizeCDR calculates the size of the resulting - representation. - - * ace/ace.mpc: - * ace/Makefile.am: - - Added new files. - - * tests/CDR_Test.cpp: - - Added test for ACE_SizeCDR. - - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Protocol.h: - - Ported to use ACE_SizeCDR. - -Sun Apr 10 03:02:21 2005 Ossama Othman - - * ace/config-g++-common.h: - - Do not define "ACE_LACKS_PRAGMA_ONCE" for g++ 4.x. G++ 4.x - supports the "#pragma once" preprocessor directive. - - Define the DLL export macros to the appropriate g++ 4.x - visibility attribute. - - * include/makeinclude/platform_g++_common.GNU (CCFLAGS): - - Added "-fvisibility=hidden -fvisibility-inlines-hidden" to the - compiler flags when using g++ 4.x. Doing so, in conjunction, - with the export macro changes described above, allows ACE-based - shared libraries to take full advantage of G++ 4.0's visibility - attribute support, resulting in substantially improved shared - libraries (or DSOs in alternative speak). Some shared - library-specific improvements include substantially reduced - library footprint, improved application start-up times, and - improved performance. - -Sun Apr 10 02:17:31 2005 Ossama Othman - - * ace/SSL/SSL_Asynch_Stream.h: - - Removed export macros from forward declarations. They aren't - necessary, and cause the forthcoming g++ 4.0 to issue an error - when enabling visibility attribute support. - -Sun Apr 10 02:10:06 2005 Ossama Othman - - * ace/Copy_Disabled.cpp: - - Removed "#pragma once" preprocessor directive from this - implementation source file. "#pragma once" is only meant for - use in sources that are included by others. - -Sat Apr 9 21:05:23 2005 Phil Mesnier - - * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp: - - Changed the construction of a request header to use - get_host_addr() rather than get_host_name() to deal with remote - peers that do not have resolvable hostnames. - -Sat Apr 9 17:00:37 2005 Arvind S. Krishna - - * tests/Memcpy_Test.cpp: - - Added a test to test the speed of memcpy () for data sizes less - than 16 bytes. This test checks to see if loop unrolling is - faster than memcpy for these data sizes. - - * tests/run_test.lst: - * tests/tests.mpc: - - Updated the run list file to run this test and created a - corresponding entry to build this test. - -Sat Apr 9 10:04:37 2005 Ossama Othman - - * ace/Thread_Hook.h (~ACE_Thread_Hook): - - Fixed "undefined reference" link-time error. - -Fri Apr 8 23:24:33 2005 Ossama Othman - - * ace/RB_Tree.cpp (remove_i): - - Fixed "control reaches end of non-void function" warning. - -Fri Apr 8 22:42:55 2005 Ossama Othman - - * ace/Capabilities.cpp (getval, resetcaps): - * ace/Thread_Manager.cpp (ACE_EXECUTE_OP): - - Initialize variables. Addresses "variables may be used - unitialized" g++ 4.0 (CVS snapshot) warnings. - - * ace/Connector.h (~ACE_Connector_Base): - * ace/Reactor_Timer_Interface.h (~ACE_Reactor_Timer_Interface): - * ace/Thread_Hook.h (~ACE_Thread_Hook): - - Added virtual destructors. Fixes "contains virtual functions - but non-virtual destructor" g++ 4.0 (CVS snapshot) warnings. - -Fri Apr 8 22:28:56 2005 Ossama Othman - - * include/makeinclude/platform_g++_common.GNU (templates): - - Set templates variable to "automatic" if using g++ 4.x. Thanks - to John Michael Zorko for pointing out the problem. - -Fri Apr 8 16:39:00 2005 Gary Maxey - - * ace/Stats.cpp - - In dump_throughput() handle cast to double when - ACE_LACKS_UNSIGNEDLONGLONG_T. - - * tests/High_Res_Timer_Test.cpp - - Use ACE_HRTIME_CONVERSION instead of ACE_U64_TO_U32 for - platform independence. - - -Fri Apr 8 12:15:00 2005 Gary Maxey - - * ace/Basic_Types.h - - If ACE_LACKS_UNSIGNEDLONGLONG_T do not typedef ACE_UINT64 as - unsigned long long. - - Add define for ACE_UINT64_DBLCAST_ADAPTER when - ACE_LACKS_UNSIGNEDLONGLONG_T. - -Fri Apr 8 14:31:12 UTC 2005 Johnny Willemsen - - * apps/JAWS3/jaws3/Concurrency.h: - Use template<> - -Fri Apr 8 12:29:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_sys_socket.cpp: - * ace/README: - When ACE_DONT_INIT_WINSOCK is set we don't initialize the winsock - library - - * ace/config-pharlab.h: - Added ACE_LACKS_IP_ADD_MEMBERSHIP. - - Thanks to David Hauck for supplying - these changes - -Fri Apr 8 12:08:12 UTC 2005 Johnny Willemsen - - * bin/msvc_static_order.lst: - Moved portablegroup library before FTORB_Utils - -Fri Apr 8 07:59:12 UTC 2005 Johnny Willemsen - - * bin/fuzz.pl: - The TAO_IDL compiler now has the option to suppress generation - the inline files, so we now don't allow any empty inline files - in the repo, also not generated ones - -Wed Apr 6 23:13:08 2005 Ossama Othman - - * ace/Value_Ptr.h: - - Disable converting copy/assignment operations for compilers that - do not support member templates, i.e. if - ACE_LACKS_MEMBER_TEMPLATES is defined. - -Wed Apr 6 14:49:39 2005 J.T. Conklin - - * ace/Makefile.am: - * ace/ace.mpc: - - Add Value_Ptr.h to list of header files. - -Wed Apr 6 13:41:13 2005 Ossama Othman - - * ace/CDR_Base.h: - - Corrected comment. - - * ace/Value_Ptr.h: - - Value_Ptr implementation based on code in Herb Sutter's book - "More Exceptional C++". It is a smart pointer implementation - designed for use as a class member. - -Wed Apr 6 19:25:12 UTC 2005 Johnny Willemsen - - * ace/Sock_Connect.cpp: - * ace/OS_NS_dlfcn.inl: - Added fix for Pharlab. Thanks to David Hauck - for supplying them - -Wed Apr 6 19:36:31 2005 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - Set static_libs_only=1 on LynxOS 3.x which does not support - shared libraries. - -Tue Apr 5 13:41:27 2005 J.T. Conklin - - * configure.ac: - - Removed ACE_SUBST for ACE_LIBDIR, ACE_LIBS, ACE_INCLUDEDIR, - TAO_LIBDIR, TAO_LIBS, and TAO_INCLUDEDIR since we're using - pkg-config now. - -Tue Apr 5 13:30:21 2005 J.T. Conklin - - * ace/Pipe.cpp: - - Removed defined(ACE_WIN32) from preprocessor conditional which - selects whether socketpair() is used, as config-win32-common.h - already defines the ACE_LACKS_SOCKETPAIR feature test macro. - -Mon Apr 4 11:20:08 2005 J.T. Conklin - - * bin/Process.pm: - * bin/Process_Unix.pm: - * bin/Process_Win32.pm: - - Removed. Stale versions of files now in bin/PerlACE. - -Mon Apr 4 19:41:44 2005 Olli Savia - - * ace/config-lynxos.h: - Added #define ACE_HAS_ICMP_SUPPORT 1. - - * tests/Reactor_Dispatch_Order_Test.cpp: - Workaround needs to be applied to LynxOS 4.x as well. - -Thu Mar 31 07:48:12 UTC 2005 Johnny Willemsen - - * ace/Refcounted_Auto_Ptr.h: - Added explicit keyword to single argument constructor now RMCast is - updated - -Thu Mar 31 09:58:48 2005 Boris Kolpackov - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Retransmit.cpp: - - Updated to work with explicit ctor in ACE_Refcounted_Auto_Ptr. - -Tue Mar 29 18:44:12 UTC 2005 Johnny Willemsen - - * ace/Refcounted_Auto_Ptr.h: - Removed the explicit again, it seems to give a problem in RMCast, will - check this later - -Tue Mar 29 15:12:12 UTC 2005 Johnny Willemsen - - * ace/SOCK_Dgram.{h,cpp}: - Changed the ACE_SOCK_Dgram::set_nic() to have a return value - so that the caller can check whether things succeeded or not - -Tue Mar 29 15:05:12 UTC 2005 Johnny Willemsen - - * ace/Refcounted_Auto_Ptr.h: - Added explicit keyword to single argument constructor - -Tue Mar 29 07:58:40 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Support the new postbuild keyword. - -Tue Mar 29 06:21:34 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Support the modification to the MPC xerces base project that set - the xerceslib template variable to allow for the many different - library names it could have. - -Mon Mar 28 17:32:30 2005 J.T. Conklin - - * ace/Process.h: - - Fix typo in comment. - -Fri Mar 25 16:41:56 2005 J.T. Conklin - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Change regular expression match $(KEY) instead of of adding - "$(" and ")" to the key itself. - -Fri Mar 25 09:27:40 2005 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Removed ACE_{,U}INT64_TYPEDEF macros. These resulted in - preprocessor conditionals used to set ACE_{,U}INT64. Now that - Basic_Types.h has been refactored, config headers can override - it by defining ACE_{,U}INT{8,16,32,64}_TYPE. We will use that - generalized infrastructure instead. - -Fri Mar 25 07:49:08 2005 J.T. Conklin - - * ace/Basic_Types.h: - - Fix typo -- missing trailing semicolon when defining - ACE_{,U}INT64 from ACE_{U,}INT64_TYPE. - -Fri Mar 25 07:10:35 2005 J.T. Conklin - - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - - Removed ACE_UINT64_TYPEDEF definition. Let Basic_Types.h - do its thing. - -Fri Mar 25 07:02:59 2005 J.T. Conklin - - * ace/config-win32-common.h: - - Define ACE_INT64_TYPE and ACE_UINT64_TYPE macros instead of - actual typedef definitions. - -Thu Mar 24 23:42:34 2005 J.T. Conklin - - * ace/Basic_Types.h: - - Fix typo in ACE_SIZEOF_LONG_LONG definition for systems with - ACE_LACKS_LONG_LONG set. - - Set ACE_SIZEOF_LONG_LONG to 8 if we can't figure out what to set - it to from ULLONG_MAX or ULONGLONG_MAX, which may not be present - or may need special contortions to be defined. - -Thu Mar 24 12:27:05 2005 J.T. Conklin - - * ace/README: - - Describe ACE_{,U}INT{8,16,32,64}_FORMAT_SPECIFIER macros. - - Describe ACE_{,U}INT{8,16,32,64}_TYPE macros. - - * ace/Basic_Types.h: - - Decouple the conditionals used to set the ACE_SIZEOF_{SHORT,INT, - LONG,LONG_LONG} macros from those used to define the - ACE_{,U}INT{8,16,32,64} types. - - Removed cases for specific CPUs and OSs, but provide a mechanism - where values can be set in platform specific config-*.h headers. - -Thu Mar 24 11:26:58 2005 J.T. Conklin - - * ace/README: - - Describe ACE_HAS_{,U}INT{8,16,32,64}_T macros. - - * configure.ac: - - Added check for {,u}int{8,16,32,64}_t types and set - ACE_HAS_{,U}INT32_T if found. - -Thu Mar 24 13:23:00 2005 Rich Seibel - - Moving updates for Mac made by Paul and Chad to get it to work. - - * include/makeinclude/platform_macosx.GNU: - - Explicitly default the threads variable to threads=1. This - was preventing ACE_TMCast from building. - Change the optimization option to -O2. -O3 was causing some - link problems in the IDL compiler. - - * bin/MakeProjectCreator/config/ftorbutils.mpb: - - Add a dependency on the PortableGroup library. This is - part of cleaning up the linkage between PortableGroup and - some of the FT* libraries. - -Thu Mar 24 14:12:19 2005 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Rather than hand-set all - needed macros and library references for multithreading, use the - compiler's -mt option if not on a .2x compiler version. -mt was - added at 03.30, so 03.2x doesn't have it - maintain the hand-set - values for that. This leaves out .1x versions which probably - aren't used any longer anyway. - -Thu Mar 24 13:17:12 UTC 2005 Johnny Willemsen - - * examples/APG/Containers/Hash_Map_Hash.h: - * examples/APG/Containers/Map_Manager_Specialization.cpp: - * examples/APG/Containers/RB_Tree_Functors.h: - Use template<> instead of ACE_TEMPLATE_SPECIALIZATION - -Wed Mar 23 16:51:00 2005 Gary Maxey - - * ace/README - - Describe new macro ACE_LACKS_UNSIGNEDLONGLONG_T - - * ace/Basic_Types.h - - Slightly alter declaration of ACE_U_LongLong to handle the "has - long long but no unsigned long long" case. - - Make use of ACE_LACKS_UNSIGNEDLONGLONG_T in a few places to - define other macros. - - * ace/Basic_Types.cpp - Make use of ACE_LACKS_UNSIGNEDLONGLONG_T in existing #if - - * ace/Basic_Types.inl - - Alternate implementation for ACE_U_LongLong class. - - * ace/Time_Value.inl - - Add static_cast needed when using alternate implementation of - ACE_U_LongLong (when ACE_LACKS_UNSIGNEDLONGLONG_T is defined). - - * ace/Log_Msg.cpp - Make use of ACE_LACKS_UNSIGNEDLONGLONG_T in existing #if - - * ace/config-tandem-nsk-mips-v3.h - - Define ACE_LACKS_UNSIGNEDLONGLONG_T - - -Wed Mar 23 10:11:02 2005 J.T. Conklin - - * ace/Time_Value.h: - - Remove HPUX_10 conditional timespec_t typedef. The typedef is - also defined if ACE_LACKS_TIMESPEC_T, which is set in the HPUX - config-*.h files. - -Wed Mar 23 06:28:00 2005 Chad Elliott - - * bin/tao_other_tests.lst: - - Do not run this test if corba_messaging is disabled. - -Tue Mar 22 18:25:27 2005 J.T. Conklin - - * ace/Time_Value.inl: - - Implement operator+ and operator- in terms of operator+= and - operator-=. This represents current C++ best practices, and - eliminates a second call to normalize the results. - -Tue Mar 22 11:15:12 UTC 2005 Johnny Willemsen - - * ace/config*.h: - Removed defining ACE_HAS_STD_TEMPLATE_SPECIALIZATION and - ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION. We use now - the normal C++ way of doing this and we don't need the defines - above. - -Mon Mar 21 18:19:24 2005 J.T. Conklin - - * ace/Shared_Memory_Pool.cpp: - - Add "defined(SEGV_MAPPER) || defined(SEGV_MEMERR)" to the - preprocessor conditional that enables the test whether the fault - address falls within the allocated memory blocks --- FreeBSD 5.X - has a siginfo_t struct with a si_addr field, but doesn't provide - SEGV_MAPERR. - - With this change, the automake build now supports FreeBSD 5.X. - -Mon Mar 21 12:54:12 UTC 2005 Johnny Willemsen - - * ace/config-lite.h: - Always define ACE_TEMPLATE_SPECIALIZATION as template<> - and ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION as nothing. - All compilers we support do support this syntax and we - are updating our code to juse template<> instead of the - macro. When ACE_LACKS_DEPRECATED_MACROS is defined these - defines are not set making it easy to detect places where - deprecated macros are used. - - * ace/Atomic_Op.h: - * ace/Condition_Recursive_Thread_Mutex.h: - * ace/Functor.h: - * ace/Functor_String.h: - * ace/Null_Mutex.h: - * ace/Process_Semaphore.h: - * ace/Select_Reactor.h: - * ace/Thread_Semaphore.h: - Use template<> instead of ACE_TEMPLATE_SPECIALIZATION - -Fri Mar 18 22:40:30 2005 J.T. Conklin - - * m4/config_h.m4: - - Remove unused ACE_LACKS_SYSTIMES_H autoheader template. - - Remove ACE_HAS_SIG_ATOMIC_T autoheader template. The - description is provided by the AC_DEFINE in the check. - - * m4/platform.m4: - - Add ACE_SIZE_T_FORMAT_SPECIFIER and ACE_SSIZE_T_FORMAT_SPECIFIER - definitions for Linux in ACE_CHECK_FORMAT_SPECIFIERS. Processor - specific values taken from config-linux-common.h. - - Remove ACE_UINT64_FORMAT_SPECIFIER definition for Linux from - ACE_SET_PLATFORM_MACROS. - -Fri Mar 18 22:36:28 2005 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Use ACE_CHECK_LACKS_FUNCS instead of AC_CHECK_FUNC/AC_DEFINE for - inet_aton(). - -Fri Mar 18 14:13:59 2005 J.T. Conklin - - * Kokyu/Makefile.am: - * ace/Makefile.am: - * ace/QoS/Makefile.am: - * ace/SSL/Makefile.am: - * protocols/ace/HTBP/Makefile.am: - * protocols/ace/RMCast/Makefile.am: - * protocols/ace/TMCast/Makefile.am: - - Regenerate. - - * Kokyu/Kokyu.mpc: - - Inherit from core. - Add pkgconfig_files section. - -Fri Mar 18 13:15:10 2005 Chad Elliott - - * ace/Thread_Manager.cpp: - - Fixed a deadlock condition where two threads calling wait() will - block forever waiting for each other. - -Fri Mar 18 10:25:13 2005 J.T. Conklin - - * ace/ace.mpc: - - Add pkgconfig_files section. - -Fri Mar 18 09:56:55 2005 J.T. Conklin - - * ace/QoS/qos.mpc: - * ace/SSL/ssl.mpc: - * protocols/ace/HTBP/HTBP.mpc: - - Add pkgconfig_files section. - -Fri Mar 18 08:28:51 2005 Chad Elliott - - * ace/Svc_Conf_y.cpp: - * ace/ace.mpc: - - There was a slight snafu in one of my sed expressions that caused - problems on unicode builds. - -Fri Mar 18 06:52:59 2005 Chad Elliott - - * ace/Svc_Conf.h: - * ace/Svc_Conf.l: - * ace/Svc_Conf.y: - * ace/Svc_Conf_Tokens.h: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - * ace/ace.mpc: - - Updated the rules to regenerate Svc_Conf_l.cpp and Svc_Conf_f.cpp. - They are based on the original rules prior to the MPC switchover, - but have been enhanced to minimize the diff's (completely removing - the need for patching Svc_Conf_y.cpp). - - * etc/Svc_Conf_l.cpp.diff: - - Updated the diff to the latest version of Svc_Conf_l.cpp. - - * etc/Svc_Conf_y.cpp.diff: - - Removed this file. - -Fri Mar 18 09:49:32 2005 Boris Kolpackov - - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Retransmit.cpp: - * protocols/ace/RMCast/Acknowledge.cpp: Added missing headers. - -Thu Mar 17 23:13:34 2005 Ossama Othman - - * ace/config-lite.h: - - Mark ACE template specialization related macros as deprecated - through documentation and by placing them within an "#if - !defined (ACE_LACKS_DEPRECATED_MACROS)" block. Developers - should use the standard C++ template specialization syntax - instead. - -Thu Mar 17 11:02:15 2005 J.T. Conklin - - * configure.ac: - - Add no-define to AC_INIT_AUTOMAKE so that PLATFORM and VERSION - are not defined in config.h. - -Thu Mar 17 19:45:10 2005 Boris Kolpackov - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Acknowledge.h: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Link.h: - * protocols/ace/RMCast/Retransmit.cpp: - * protocols/ace/RMCast/Retransmit.h: Implemented manual thread - stopping instead of SUS thread cancellation. - - * protocols/ace/RMCast/Bits.h: - * protocols/ace/RMCast/Socket.cpp: Some cleanups. - - -Thu Mar 17 07:34:30 2005 J.T. Conklin - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Match "$(TAO_IDL)" instead of "TAO_IDL", to avoid emitting - TAO_IDL/TAO_IDLFLAGS variable definitions for the TAO_IDL - Makefile.am itself. - -Wed Mar 16 10:29:28 2005 Chad Elliott - - * bin/tao_other_tests.lst: - - Enabled the EC_Mcast test. The RTEvent library and test itself - have been fixed. - -Wed Mar 16 09:54:12 UTC 2005 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Fixed (really) cleanup target for VxWorks builds. - -Tue Mar 15 19:08:01 2005 J.T. Conklin - - * configure.ac: - * m4/ace.m4: - * m4/tls.m4: - - Changed the ACE_ENABLE_SSL macro to depend on ACE_CHECK_TLS - instead of requiring the latter be called in configure.ac. - Fixes a bug where ACE and TAO's configure scripts selected - different SSL options. - -Tue Mar 15 13:14:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Removed Two_Objects tests, it is already in the orb core test - list, no need to run it twice - -Mon Mar 14 16:32:08 2005 Boris Kolpackov - - * protocols/ace/RMCast/Socket.h: - * protocols/ace/RMCast/Socket.cpp: Added support for querying - incoming message size. - - * examples/RMCast/Send_Msg/Receiver.cpp: Added a check that - discards messages of a wrong size before reading them. - -Mon Mar 14 16:13:13 (IST) 2005 Balachandran Natarajan - - * bin/tao_orb_tests.lst: - - Added the Hang_Shutdown test to the daily builds. - -Mon Mar 14 10:07:12 UTC 2005 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Fixed cleanup target for VxWorks builds. - -Sat Mar 12 13:30:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Removed SANDBOX for the ImplRepo NameService test, I see no reason - why we just can't run it. Only in a minimum build we can't run it - -Fri Mar 11 18:21:49 2005 Steve Huston - - * configure.ac: When checking for std namespace, decide which - iostream file to include based on ACE_USES_OLD_IOSTREAMS. On - systems that offer both iostream and iostream.h, including - iostream.h will hide the std stuff even though it's available. - -Fri Mar 11 18:15:18 2005 Steve Huston - - * m4/compiler.m4: Remove the hard-coded addition of -library=iostream. - This uses old iostreams. Not sure why this was here, since the - regular GNU build doesn't turn it on. - - * ace/OS_Memory.h: For Sun CC, add settings needed for proper - definition of ACE_nothrow. Thanks to Mark Wilson - for reporting this. - - * THANKS: Added Mark Wilson to the Hall of Fame. - -Fri Mar 11 18:05:29 2005 Steve Huston - - * ace/OS_NS_arpa_inet.cpp (inet_aton): Windows Server 2003 changed - the behavior of inet_addr() when given a zero-length name. Change - zero-length names to " " (1 space) to restore the old behavior and - match other platforms' behavior. - -Fri Mar 11 18:56:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - Add -$(MAKEFLAGS) to the makerules - -Fri Mar 11 11:58:12 UTC 2005 Johnny Willemsen - - * examples/APG/Logging/Use_Multiple_Sinks.cpp: - * examples/APG/Logging/Use_Ostream.cpp: - * examples/APG/Logging/LogManager.h: - Changed _MSC_VER checks - -Fri Mar 11 10:56:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-msvc.h: - Added fuzz disable for check_for_msc_ver - - * bin/fuzz.pl: - Lowered the level for the _MSC_VER check to level 3. This is for - checking if we don't check _MSC_VER >= 1200. This is the checking - for msvc 6 or newer and that is the minimum we support. A lof of - files are updated yesterday, this fuzz check is to detect the last - and to detect newer commits that have this check - -Fri Mar 11 10:43:12 UTC 2005 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Added additional cleanup target for VxWorks builds. - -Thu Mar 10 17:28:38 2005 Steve Huston - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: - * examples/C++NPv2/TPC_Logging_Server.cpp: Only dynamic_cast a - ACE_HANDLE to int when not on ACE_WIN32. Else there's a risk of - compile errors, such as from HP aC++ that a dynamic_cast from - int to int is illegal. - -Wed Mar 9 21:59:24 2005 Douglas C. Schmidt - - * ace/Time_Value.inl (ACE_Time_Value): Moved the definition of - ACE_Time_Value::set (const struct timeval &) to before it is - used by the ACE_Time_Value constructor. This avoids many - warnings with GCC 3.4.1. Thanks to Peter Heitman - for reporting this and suggesting the fix. - -Wed Mar 9 11:09:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Removed duplicate entry of Server_Leaks test - -Wed Mar 9 10:16:12 UTC 2005 Johnny Willemsen - - * ace/config-hpux-11.00.h: - With the latest versions of the HP aCC compiler, when the compiler - option -AA is passed, then _INCLUDE__STDC_A1_SOURCE is defined and - then we get a three parameter wcstok. We define at that moment - ACE_HAS_3_PARAM_WCSTOK. - -Wed Mar 9 09:31:12 UTC 2005 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added RMCast and TMCast libraries so that they are build first, - fixes problems in the msvc6 static build - -Tue Mar 8 17:01:34 2005 Steve Huston - - * configure.ac: Correct the variable checked for whether or not to - do the SSL/TLS check from ace_user_with_ssl to ace_user_enable_ssl. - Matches the change from --with-ssl to --enable-ssl. See also: - Sat Jan 29 00:39:37 2005 J.T. Conklin - -Tue Mar 8 15:26:29 2005 Steve Huston - - * ace/Asynch_Acceptor.cpp (handle_accept): Don't restart an accept - as a result of a canceled accept. - - * ace/Asynch_IO_Impl.h (ACE_Asynch_Operation_Impl): - * ace/Proactor_Impl.h (ACE_Proactor_Impl): - * ace/WIN32_Asynch_IO.{h cpp}: - * ace/WIN32_Proactor.{h cpp}: - * ace/POSIX_Asynch_IO.{h cpp}: - * ace/POSIX_Proactor.{h cpp}: Added 'const' to all methods that accept - a ACE_Handler::Proxy_Ptr. Makes sure that the proper management of - reference count on the handler proxy is done. - -Tue Mar 8 11:06:12 UTC 2005 Johnny Willemsen - - * bin/make_release: - In the default.features file used to generate the GNU makefiles - removed tk_reactor=1 and xt_reactor=1, these are not used anymore - and added tk=1, xt=1, fl=1 and qt=1 - -Tue Mar 8 07:02:14 2005 Olli Savia - - * ace/config-lynxos.h: - Rearranged (sorted) defines. - -Mon Mar 7 21:27:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Added new VxWorks and OpenVMS versions - -Mon Mar 7 14:14:12 UTC 2005 Johnny Willemsen - - * ace/config-doxygen.h: - Added ACE_USE_RCSID defined as 0, don't expand the ACE_RCSID - macro when generating the documentation - -Mon Mar 7 06:57:12 UTC 2005 Johnny Willemsen - - * ace/Process_Manager.cpp: - Added the include of Countdown_Time.h - -Sun Mar 6 20:21:54 2005 J.T. Conklin - - * ace/Makefile.am: - - Regenerate. - -Sun Mar 6 17:17:57 2005 Ossama Othman - - From Matthew Harris - * m4/ace.m4: - - Fixed "$withval" mismatch in AC_ARG_ENABLE blocks. Use - "$enableval" instead. Addresses problems where attempts to - enable/disable support for the ACE ACEXML, QoS and SSL libraries - via the `configure script' would fail. [Bug 2053] - -Sun Mar 6 20:04:12 UTC 2005 Johnny Willemsen - - * ace/Process_Manager.cpp: - Added include of OS_NS_sys_time.h to get ACE_OS::gettimeofday - - * ace/Process_Manager.h: - Include Time_Value.h instead of Countdown_Time.h - -Sun Mar 6 19:06:12 UTC 2005 Johnny Willemsen - - * ace/Countdown_Time.{h,cpp}: - Removed not needed includes, removed workaround for WinCE, it is just - needed for ACE_Time_Value that is in Time_Value.h and removed empty - comment lines - -Sun Mar 6 19:01:12 UTC 2005 Johnny Willemsen - - * ace/SSL/SSL_SOCK_Acceptor.cpp: - Added the include of Countdown_Time.h - -Sun Mar 6 18:59:12 UTC 2005 Johnny Willemsen - - * ace/Time_Value.h: - Readded removed include of os_time.h to fix compile errors with - Borland - -Sun Mar 6 15:01:00 2005 Marek Brudka - - * include/makeinclude/wrapper_macros.GNU (Message): - * bin/MakeProjectCreator/config/global.features (Module): - * ACE-INSTALL.html (Module): - Simplied Makefile generation for GUI support in ACE and TAO. - -Sun Mar 6 01:58:04 2005 Tao Lu - - * Kokyu/tests/DSRT_MIF/MIF.cpp - Added the include of Countdown_Time.h - -Sun Mar 6 00:52:13 2005 Tao Lu - - * ace/Process.cpp - * ace/Process_Manager.h - * ace/Process_Manager.cpp - * ace/Reactor_Impl.h - * ace/TP_Reactor.cpp - * ace/Proactor_Impl.h - * ace/POSIX_CB_Proactor.cpp - * ace/SSL/SSL_SOCK_Connector.cpp - * ace/SSL/SSL_SOCK_Stream.cpp - Removed unnecessary includes and added include - at proper places. - - * ace/ace.mpc - Added Countdown_Time.cpp. - -Sat Mar 5 23:57:53 2005 Tao Lu - - * ace/Time_Value.h - * ace/Time_Value.cpp - * ace/Time_Value.inl - * ace/Countdown_Time.h - * ace/Countdown_Time.cpp - moved the ACE_Countdown_Time to seperate files to avoid - the wrong Windows release build behavior for client - application when the right header is not included. - - There are ways of avoiding many changes but to make things - look nice .... so will work on the whole ACE/TAO repo next. - -Sat Mar 5 08:48:02 2005 Douglas C. Schmidt - - * tests/QtReactor_Test.cpp: Reformatted this file so it conforms to - the ACE programming style guide. - - * netsvcs/lib/TS_Clerk_Handler.cpp (parse_args): Fixed a typo - where ACE_TESXT should be ACE_TEXT. Thanks to - Sean Parker for reporting this. - -Fri Mar 4 10:32:17 2005 Douglas C. Schmidt - - * ace/Naming_Context.cpp: Changed ACE_OS::strcat() to - ACE_OS::strcpy() to fix a bug. Thanks to David Hauck - for reporting this bug and providing a - fix. - -Fri Mar 4 15:18:50 2005 Boris Kolpackov - - * examples/RMCast/Send_Msg/Receiver.cpp: - * examples/RMCast/Send_Msg/Sender.cpp: Replaced usage of - std::vector and std::cerr with ACE_Vector and ACE_ERROR/ACE_DEBUG - respectively. This should fix warnings in VC6 build. - -Fri Mar 4 12:11:12 UTC 2005 Johnny Willemsen - - * ace/Process_Manager.cpp: - Initialise pointer with 0 - -Thu Mar 3 12:17:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Only use mkdir to create a directory when it not exists yet - -Wed Mar 2 21:44:22 2005 Boris Kolpackov - - * protocols/ace/RMCast/Socket.cpp: - * protocols/ace/RMCast/Socket.h: Moved implementation to - Socket_Impl. Made Socket delegate all functionality to - Socket_Impl. This way I can use all kinds of obfuscated - names in Socket_Impl (in order to fight compiler warnings) - without affecting end user. - - * protocols/ace/RMCast/Stack.h: Removed export macro from - all types declared there. - - * examples/RMCast/Send_Msg/Receiver.cpp: - * examples/RMCast/Send_Msg/Sender.cpp: Updated to use - ACE_INET_Addr instead of ACE_RMCast::Address (which was - just a typedef of ACE_INET_Addr). - -Wed Mar 2 09:58:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Updated the build instructors for the tests with Borland, the - protocols directory must also be build before the tests. Thanks - to Aapo M�inen - for reporting this. - -Tue Mar 1 12:39:11 2005 Douglas C. Schmidt - - * apps/JAWS3/jaws3/Protocol_Handler.h: Added - JAWS_Export to class JAWS_Protocol_Handler. Thanks to Shaun - Cooley for reporting this. - -Tue Mar 1 10:33:15 2005 Boris Kolpackov - - * protocols/ace/RMCast/Acknowledge.h: Made Acknowledge::Descr - public to get broken Sun C++ 5.4 out of its misery. - -Tue Mar 1 07:40:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_hpux_aCC.GNU: - Also HP aCC 3.60 has a bug when having private constructors and - creating an instance from the friend class - -Mon Feb 28 17:10:41 2005 Steve Huston - - * ace/Asynch_Pseudo_Task.{h cpp}: Removed all the flg_active_ and - finish locking stuff. Use the thr_count() value to tell if the - thread is running, and don't try to interlock cleanup activities - with other classes. It's messy and doesn't work right. There are - too many race conditions between closing handles and closing down - this object. - Corrected ACE_LIB_TEXT use instead of - ACE_TEXT, and added missing commas between some strings. - - * ace/POSIX_Asynch_IO.{h cpp}: - * ace/WIN32_Asynch_IO.{h cpp}: Don't try to interlock against the - Asynch_Pseudo_Task. If it's going, it's going. Only hold the lock - around access to the connection/handle map since that's accessed - from the asynch pseudo task thread as well as the caller's. - -Mon Feb 28 09:59:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_hpux_aCC.GNU: - HP aCC 3.57 has a bug that causes a compile error when we have - a class with a private constructor and we try to create it from - a friend class. We disable array optimization for this compiler - version to be able to build ACE and TAO. - - * ace/OS_NS_stdio.cpp (snprintf): - Added two static cast to silence warnings with Borland and MinGW - -Mon Feb 28 11:10:58 2005 Boris Kolpackov - - * protocols/ace/RMCast/Acknowledge.h: Made Acknowledge::Queue - a friend of Acknowledge. Hopefully this will help Sun C++ 5.4. - -Sun Feb 27 08:51:23 2005 Douglas C. Schmidt - - * ace/OS_NS_stdio.cpp (snprintf): Enhanced this function so - it terminates the string with a null char if it is *exactly* the - same length as the buffer. Thanks to Bruce MacDonald for reporting this and providing a - fix. This fixes bugid 2058. - -Fri Feb 25 18:46:33 2005 Steve Huston - - * ace/Asynch_Pseudo_Task.cpp: Forgot some cleanups for places - returning -2. Fixed. Also reduced the clutter of diagnostic - messages and added useful output (such as %p) to those remaining. - - * ace/POSIX_Asynch_IO.cpp: Additional handle cleanups and checks - for ACE_POSIX_Asynch_Accept::close (). - -Fri Feb 25 17:29:12 2005 Steve Huston - - * ace/config-hpux-11.00.h: Always set ACE_HAS_SVR4_DYNAMIC_LINKING. - This is now available always. - - * include/makeinclude/platform_hpux_gcc.GNU: Add -Wl,-E to - SOFLAGS for linking shared libraries. Per info in - Bugzilla #2057, this is needed to have dynamic_cast work across - shared libraries. It still doesn't work, and not sure why... - - * tests/DLL_Test.cpp: Use the correct ACE_DEBUG specifier for - pointers (%@, not %x). - - * tests/DLL_Test_Impl.cpp: Added an ACE_DEBUG in dynamic_cast_test() - to see what's being tested, not only the results. - -Fri Feb 25 13:49:27 2005 Steve Huston - - * ace/POSIX_Asynch_IO.{h cpp}: Added 'const' to all the handler_proxy - references on Result-type constructors. - Removed the ACE_LIB_TEXT around strings to ACE_TRACE. - ACE_TRACE adds the ACE_LIB_TEXT. - (Asynch_Accept::handle_close()): This can be called if the - listen handle gets closed in addition to when the pseudo task - is being destroyed. Mark the handle invalid. - - * ace/WIN32_Asynch_IO.{h cpp}: Added 'const' to all the handler_proxy - references on Result-type constructors. - (accept): Corrected function name in message. - (ACE_WIN32_Asynch_Accept_Result::complete): If the accept failed, - be sure to close the accept handle created in accept(). - - * ace/Asynch_Pseudo_Task.cpp: Removed return value -2 to signify - task shutting down, and return -1/errno = ESHUTDOWN instead. - Secret values like -2 make maintenance harder. - Also removed some of the ACE_ERROR() statements in favor of - setting a reasonable errno value. Lets callers know what's going - on in the code, not just show it in diagnostic output. - -Fri Feb 25 07:08:35 2005 Chad Elliott - - * ace/SOCK_Dgram_Bcast.cpp: - - Added !defined(__APPLE__) to conditional so sockaddr.sa_len - version of the code will be used. Fixes SOCK_Bcast_Dgram_Test - failures. - - * bin/MakeProjectCreator/config/event_serv.mpb: - - The CosEvent_Serv library requires the CosNaming library. - - * bin/auto_run_tests.pl: - - Put a space between my and $ to avoid problems with older version - of perl. - - * bin/tao_other_tests.lst: - - Don't run the XML_Persistence or Reconnecting Notify tests from - static builds. - - * include/makeinclude/platform_hpux_aCC.GNU: - - Removed an extra closing parenthesis from the line that determined - the HP-UX model. - -Fri Feb 25 12:55:37 2005 Boris Kolpackov - - * protocols/ace/RMCast/Link.h: - * protocols/ace/RMCast/Link.cpp: Overrode recv() from - Out_Element. This should clear warnings on BCB and HP C++. - -Fri Feb 25 10:15:12 UTC 2005 Johnny Willemsen - - * ace/config-lite.h: - Added ifndef ACE_LACKS_DEPRECATED_MACROS around the ACE_x_cast - macros so that we can easily prevent the ACE_x_cast macros to be - defined so that we can check whether they are used in ACE/TAO - -Thu Feb 24 21:05:42 2005 Boris Kolpackov - - * protocols/ace/RMCast/Socket.h: - * protocols/ace/RMCast/Socket.cpp: Removed class-scope - using-declaration for VxWorks can't handle it. - -Thu Feb 24 12:37:19 2005 Steve Huston - - * ace/Asynch_Acceptor.cpp (accept): Use ==, not =, to check a value. - This is why constants work better on the left-hand side... - - * ace/POSIX_Asynch_IO.{h cpp} (ACE_POSIX_Asynch_Result): - * ace/WIN32_Asynch_IO.{h cpp} (ACE_WIN32_Asynch_Result): Changed - the handler_proxy_ from a Proxy_Ptr& to a Proxy_Ptr. This causes - the reference count to be incremented properly, avoiding premature - deletion of the ACE_Handler. Fixes weird errors and crashes with - Proactor_Test. - -Wed Feb 23 13:53:39 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/taodefaults.mpb: - - Add automake specific am_version variable. - -Wed Feb 23 19:56:01 2005 Boris Kolpackov - - * protocols/ace/RMCast/Stack.h: Added export macros. - -Wed Feb 23 19:48:59 2005 Boris Kolpackov - - * protocols/ace/RMCast/Bits.h: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Socket.cpp: - * protocols/ace/RMCast/Socket.h: Replaced auto_ptr with - ACE_Auto_Ptr. - -Tue Feb 22 18:03:41 2005 Steve Huston - - * ace/Ping_Socket.cpp: Rather than try to use struct ip, which can - change subtly between platforms, use the well-known layout of the - IP header to pick off the length field. This avoids a maze of - #if blocks to use the platform struct properly at the cost of - using low-level details. - -Tue Feb 22 21:30:04 2005 Boris Kolpackov - - * protocols/ace/RMCast/Link.cpp: Replaced assignment of auto_ptr's - with a call to reset() in search for a way around VxWorks' broken - implementation. - -Tue Feb 22 21:20:22 2005 Boris Kolpackov - - * protocols/ace/RMCast/Stack.cpp: - * protocols/ace/RMCast/Stack.h: Moved implementation of functions - from .h to .cpp. This should get rid of warnings in VC7.1 build. - -Mon Feb 21 18:18:29 2005 Steve Huston - - * configure.ac: Added a check for the need to add _NO_BITFIELDS to - compile macros. This is needed to prevent compile errors on - Visual Age C++ on AIX. Without it, the check for need to alter - TCP header file includes gets the wrong answer, then the build - tries the wrong thing. This gets around having to know the - TCP header issue apriori like we do with the hand config.h. - - Changed the ACE_HAS_DEV_POLL test from a check for the /dev/poll - file to a run-test to be able to open it. The file is there on - HP-UX, but not useable til some patches are installed. - - Fixed a missing set of quotes on $ace_user_with_ssl. - - * ace/Asynch_Acceptor.cpp (ACE_Asynch_Accept::handle_accept): Don't - try to restart an accept if the listen socket is closed. Together - with closing the socket in the destructor, prevents errors at - destructor time from trying to restart an accept. - - * ace/Dev_Poll_Reactor.cpp: Include if not on - Linux, not only if on Solaris. Allows this to work on other - /dev/poll-enabled platforms. - -Mon Feb 21 12:43:41 2005 Steve Huston - - * ace/Asynch_IO.{h cpp} (ACE_Asynch_Accept): Added an optional - addr_family parameter to ACE_Asych_Accept. Defaults to AF_INET - (IPv4) to maintain current functionality. - Doxygen-ized the comments for accept(). - - * ace/Asynch_IO_Impl.h (ACE_Asynch_Accept_Impl): Pass the new - addr_family arugment along to the implementation classes. - - * ace/POSIX_Asynch_IO.{h cpp}: - * ace/WIN32_Asynch_IO.{h cpp} (ACE_WIN32_Asynch_Accept::accept): Use - the new addr_family parameter to open a new accept handle if needed. - It is up to the caller to make sure that addr_family matches the - family used when the listen socket was opened. - Also use the address family to scale the required size - of the address area in the specified message block. - - * Asynch_Acceptor.{h cpp}: Added a new addr_family_ member to remember - the in-use address family from open(). Use this value to calculate - the space needed for addresses, as well as passing it to - ACE_Asynch_Accept::accept() to open the correct type of handle - when needed. - Marked the address_size() method deprecated. It assumes use of - IPv4 addresses and since it's static, it can't use the addr_family_ - knowledge. Replaced all internal uses of this with the proper - adjustment based on the address family in use. - Close the listen_handle_ when this object is destroyed. - -Mon Feb 21 09:32:21 2005 Steve Huston - - * ace/Ping_Socket.h: Removed extraneous ',' to fix compiler warning. - - * m4/config_h.m4: Added AH_TEMPLATE for ACE_LACKS_INET_ATON - * configure.ac: Added check for ACE_LACKS_INET_ATON. - -Mon Feb 21 15:42:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added missing semi colon after the Identity test - -Mon Feb 21 07:31:12 UTC 2005 Johnny Willemsen - - * examples/RMCast/Send_Msg/Send_Msg.mpc: - Both examples require exceptions - -Sun Feb 20 19:15:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/rmcast.mpb: - Removed exceptions as base projects - -Sat Feb 19 10:32:29 2005 Boris Kolpackov - - * examples/RMCast/Send_Msg/Receiver.cpp: Added explicit - return statements from ACE_TMAIN. - -Sat Feb 19 00:54:22 2005 Balachandran Natarajan - - * ace/Select_Reactor_T.inl (deactivate): - - Fixed a potential race when trying to update deactivated_ flag. - -Fri Feb 18 20:05:53 2005 Douglas C. Schmidt - - * ace/Signal.{h,inl}: Make the destructor of ACE_Sig_Handler virtual - to silence warnings. Thanks to Lothar for - reporting this. - -Fri Feb 18 19:54:33 2005 Martin Corino - - * tests/Max_Default_Port_Test.cpp: - - Fixed a bug because I forgot an #if/#endif bracket:-( - -Fri Feb 18 18:48:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't try to run bug_1551_regression on Irix - -Fri Feb 18 09:46:25 2005 Dale Wilson - - * NEWS: - Documented TSS changes. - - * ace/OS_NS_Thread.h: - Added a comment that the "inst" argument to ACE_OS::thr_key_detach - and thr_keycreate is deprecated and will be ignored. - -Fri Feb 18 09:34:06 2005 Dale Wilson - - * ace/OS_NS_Thread.cpp: - Remove another ACE_UNUSED_ARG for the defunct inst argument. - This one showed up in single-threaded builds. - -Fri Feb 18 13:48:33 2005 Martin Corino - - * tests/Max_Default_Port_Test.cpp: - - Tweaked the test for VxWorks so it can also succeed on - that platform with non-optimized kernels. - -Fri Feb 18 07:21:33 2005 Boris Kolpackov - - * protocols/ace/RMCast/Socket.cpp: Qualified call to - base's send(). Hopefully it will make VC6 happy. - -Thu Feb 17 18:23:33 2005 Steve Huston - - * m4/ace.m4: Corrected error message on --enable-wfmo. - Added default (yes) for --enable-rtti. - -Thu Feb 17 14:26:28 2005 Boris Kolpackov - - * examples/RMCast/Send_Msg/Sender.cpp: - * examples/RMCast/Send_Msg/Receiver.cpp: Changed to use - ACE_TMAIN and ACE_TCHAR instead of main and char. - - -Thu Feb 17 14:15:42 2005 Boris Kolpackov - - * protocols/ace/RMCast/Protocol.h: Removed accidental use - of C++ exceptions plus changes to make VC6 happy. - - * protocols/ace/RMCast/RMCast.mpc: Removed `exceptions' - from the list of prerequisites. - - * examples/RMCast/Send_Msg/Receiver.cpp: Got rid of - repetitive `i' uses in for-loops. VC6 can't handle that. - -Thu Feb 17 09:48:03 2005 J.T. Conklin - - * protocols/ace/RMCast/RMCast.mpc: - * protocols/ace/TMCast/TMCast.mpc: - - Added Pkgconfig_Files sections. - -Thu Feb 17 08:32:08 2005 Dale Wilson - - * ace/OS_NS_Thread.cpp: - Fix compile errors when TSS Emulation is enabled. - de-templatize the Thread_Safe_Instance object to avoid fighting - template instantiation issues now. - -Wed Feb 16 17:10:14 2005 Ossama Othman - - * ace/OS_NS_Thread.cpp (thr_key_detach, thr_keycreate): - - Removed "ACE_UNUSED_ARG" macro calls for non-existent "inst" - parameter. - -Wed Feb 16 17:04:50 2005 Ossama Othman - - * bin/MakeProjectCreator/config/rmcast.mpb: - * protocols/ace/RMCast/RMCast.mpc: - - The RMCast protocol implementation currently requires thread - support. Updated these MPC files accordingly. - - * protocols/ace/RMCast/Protocol.h (NAK): - - Since "NAK" is now a class instead of struct, public inheritance - must be explicitly specified. Fixes compile-time errors related - to inaccessible members in the "Profile" base class. - -Wed Feb 16 18:31:28 2005 Steve Huston - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Socket.cpp: - Fixed some constructs to make MSVC6 happy. Primarily, MSVC6 won't - allow type& var (ref). Must be type& var = ref. - - * protocols/ace/RMCast/Protocol.h: Changed struct NAK to class NAK to - make MSVC6 happy. - - MSVC6 is still not completely happy, but someone with more insight as - to the intentions here will need to take a look. - -Wed Feb 16 16:18:45 2005 Dale Wilson - - * ace/OS_NS_Thread.cpp: - Rework the ACE_TSS_Cleanup to: - - Remove special handling for ACE_TSS. (No automatic key free) - - If the application replaces a TSS object, the application assumes - responsibility for deleting the old object (as specifed by POSIX) - Note that the TSS_Test program depends on this behavior. - - If an application frees a TSS key while it is still in use by other - threads, the TSS objects are leaked. Formerly I had added an ASSERT - to catch this case, but POSIX says it's legal (but I still think it's - wrongheaded!) - - Interpret a request to attach a zero pointer to a TSS key for a thread - as a detach from the key. The TSS_Test program does this then frees - the key (which is how I found out about the previous point). - - Rework the ACE_TSS_Cleanup instance support to make it safe to delete - the ACE_TSS_Cleanup object even in not all threads have terminated. - Lingering threads may leak, but they shouldn't crash. Note that on - windows it is commmon practice to leave threads running -- expecting them - to be terminated by end-of-process (shudder.), and TAO has a habit of not - waiting for a thread blocked at a select() to terminate. - - Make it safe to call ACE_OS::cleanup_tss more than once for the same - thread. This makes the change to OS_NS_stdio (below) safe. - - * ace/OS_NS_Thread.h: - Remove tss_inst from the ACE_TSS_Info structure. - It was used by ACE_TSS special handling. - - * ace/TSS_T.cpp: - Explicitly call ACE_OS::thr_keyfree from the destructor of an ACE_TSS - rather than relying on special handling from ACE_TSS_Cleanup. - - * ace/OS_NS_stdio.cpp: - Add a call to ACE_OS::cleanup_tss to the DllMain function on THREAD_DETACH. - This will cleanup TSS for non-ACE threads that call ACE functions (like logging) - on WIN32 systems. - - This change addresses Bugzilla 1542 and 2044 (although not the way the author of the - bugzilla report suggested.) - - -Wed Feb 16 20:41:12 UTC 2005 Johnny Willemsen - - * bin/generate_rel_manpages: - We are now using doxygen 1.4.1 - -Wed Feb 16 11:17:27 2005 Steve Huston - - * ace/OS_NS_stdlib.cpp: Don't #include if the max() method - won't be used; same reasoning as: - Tue Feb 15 18:19:25 2005 Steve Huston - -Wed Feb 16 18:15:07 2005 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - Fixed setting of ACE_LYNXOS_MAJOR and ACE_LYNXOS_MINOR. - -Wed Feb 16 11:04:29 2005 Steve Huston - - * ace/SSL/SSL_Asynch_Stream.cpp: Corrections to use ACE_Handler::Proxy - instead of naked ACE_Handler pointers/references. - -Wed Feb 16 10:19:19 2005 Steve Huston - - * ace/Asynch_IO.h: Remove the extraneous ACE_Handler:: qualification - of Proxy_Ptr used inside ACE_Handler. This confused MSVC 6. - -Wed Feb 16 10:13:41 2005 Steve Huston - - * examples/Reactor/Proactor/post_completions.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: Adjust the overridden - result class and internal proactor calls to pass handler's proxy - pointer, not the handler itself. - -Wed Feb 16 07:02:15 2005 Chad Elliott - - * ace/OS_NS_stdlib.inl: - * ace/config-sunos5.7.h: - * ace/config-sunos5.8.h: - - On SunOS 5.7, some wchar_t related methods are always in the std - namespace when building with SunCC 5.3. - - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - - Added a ACE_TEST_WINDOW environment variable which can be used to - start each process in a separate window by setting it to - something like 'rxvt -e' and ACE_TEST_VERBOSE which causes the - command line of each process to be printed out as it is started. - - * examples/C++NPv2/C++NPv2.mpc: - - Added additional project ordering for the gnuace type to avoid - build problems with parallel builds. - - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp: - - Simple modifications to allow this to build with EVC 4. - - * include/makeinclude/platform_g++_common.GNU: - - Changed a grep command to something compatible with Solaris as - well as Linux. - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Set the default template instantiation mode to automatic for every - version except SunCC 4.2. - -Wed Feb 16 12:56:12 UTC 2005 Johnny Willemsen - - * etc/ace_rmcast.doxygen: - Fixed typo in INPUT - -Tue Feb 15 18:10:56 2005 J.T. Conklin - - * m4/ace.m4: - - Removed ACE_ENABLE_RMCAST macro. Building RMCast library is now - unconditional. - -Tue Feb 15 18:45:26 2005 Steve Huston - - * ace/POSIX_Asynch_IO.{h cpp}: - * ace/POSIX_Proactor.cpp: Fixed compile errors resulting from - Proxy_Ptr changes, below. - -Tue Feb 15 18:19:25 2005 Steve Huston - - * ace/Asynch_IO.{h cpp}: - * ace/Asynch_IO_Impl.h: - * ace/POSIX_Asynch_IO.{h cpp}: - * ace/POSIX_Proactor.{h cpp}: - * ace/Proactor.{h cpp}: - * ace/Proactor_Impl.h: - * ace/WIN32_Asynch_IO.{h cpp}: - * ace/WIN32_Proactor.{h cpp}: All methods that accepted an ACE_Handler - below the user-accessed methods were changed to accept an - ACE_Handler::Proxy_Ptr instead. The ACE_Handler class has a new - Proxy_Ptr typedef which is an ACE_Refcounted_Auto_Ptr for - a Proxy class. When an ACE_Handler is created, it allocates a - Proxy to refer to itself. The Proxy carries a pointer to the - ACE_Handler it proxies for in lower levels of the framework. - When the ACE_Handler is destroyed, it clears the ACE_Handler - pointer in the proxy. - Any part of the framework that dispatches completions gets the - ACE_Handler pointer from the proxy and only dispatches if the - pointer is not 0. This allows ACE_Handlers to be deleted while - operations may be outstanding, a previously vexing issue since one - can never be sure how many operations are outstanding at any given - time. The Proxy remains valid until all references to it are - released. - - * ace/config-win32-common.h: Removed NOMINMAX define. The min/max - stuff is needed for MFC and CString classes and, since we require - ACE includes to come before system includes, adding NOMINMAX in all - cases makes life very hard for these users. - - * ace/OS_NS_stdlib.cpp (mkstemp_emulation): Don't try the - std::numeric_limits::max() call if 'max' is a macro. Use the - older hard-coded 127 instead. - -Tue Feb 15 14:33:18 2005 J.T. Conklin - - * examples/RMCast/Send_Msg/Makefile.am: - * examples/TMCast/Member/Makefile.am: - - Regenerated. - - * examples/RMCast/Send_Msg/Receiver.cpp: - * examples/RMCast/Send_Msg/Sender.cpp: - * examples/TMCast/Member/member.cpp: - - Changed to so headers are - #included the same regardless of whether they're in the - source tree or installed. - - * examples/TMCast/Member/Member.mpc: - - Add exename definition so executable is actually built. - -Tue Feb 15 16:15:28 2005 Steve Huston - - * examples/RMCast/Receiver.cpp: - * examples/RMCast/Sender.cpp: - * examples/TMCast/Member/member.cpp: Corrected location of includes - after they moved. - -Tue Feb 15 13:34:42 2005 J.T. Conklin - - * Makefile.am: - - Move examples until after protocols in SUBDIRS. - -Tue Feb 15 13:32:15 2005 J.T. Conklin - - * configure.ac: - - Configure moved RMCast and TMCast libraries. - - * bin/MakeProjectCreator/config/rmcast.mpb: - - Removed "requires += rmcast". The RMCast library is now built - unconditionally. - - * bin/MakeProjectCreator/config/rmcast.mpb: - * bin/MakeProjectCreator/config/tmcast.mpb: - - Append $(ACE_ROOT)/protocols to includes. - -Tue Feb 15 21:27:25 2005 Olli Savia - - * ace/config-lynxos.h: - * include/makeinclude/platform_lynxos.GNU: - Updated. Utilize new ACE_LYNXOS_* macros, removed some ancient - settings etc. - - * examples/APG/ThreadPools/LF_ThreadPool.cpp: - * examples/APG/ThreadPools/ThreadPool.cpp: - Replaced NULL with 0. - - * tests/Reactor_Dispatch_Order_Test.cpp: - Utilize new ACE_LYNXOS_* macros to differentiate LynxOS - versions. - -Tue Feb 15 10:23:39 2005 Douglas C. Schmidt - - * examples/Service_Configurator/Misc/Timer_Service.cpp (handle_close): - Make sure to cancel the timer when we're done. Thanks to Scott - Z for reporting this. - -Tue Feb 15 11:11:12 UTC 2005 Johnny Willemsen - - * ace/ACE.h: - * ace/OS_NS_string.h: - Doxygen improvements - -Tue Feb 15 11:07:12 UTC 2005 Johnny Willemsen - - * etc/ace_rmcast.doxygen: - Updated because of move of RMCast library - -Mon Feb 14 20:19:35 2005 Ossama Othman - - * protocols/ace/RMCast/Socket.h (Socket): - - Export this class in the shared library case. Addresses - link-time errors in MS Windows builds. - -Mon Feb 14 18:45:28 2005 Steve Huston - - * protocols/ace/RMCast/Acknowledge.{h cpp}: - * protocols/ace/RMCast/Link.h: - * protocols/ace/RMCast/Protocol.{h cpp}: - * protocols/ace/RMCast/Retransmit.{h cpp}: - * protocols/ace/RMCast/Simulator.{h cpp}: - * protocols/ace/RMCast/Socket.{h cpp}: - * protocols/ace/RMCast/Stack.{h cpp}: - Get RMCast's includes by #include "file.h", not - #include . - -Mon Feb 14 18:24:19 2005 Steve Huston - - * ace/OS_TLI.inl: Added "namespace ACE_OS" around all the methods, - instead of prepending ACE_OS to the names. This continues some - similar changes, such as to OS_NS_signal.inl. - - * apps/JAWS3/jaws3/Asynch_IO.h: - * apps/JAWS3/jaws3/Asynch_IO_Helpers.h: - * apps/JAWS3/jaws3/Concurrency_T.h: - * apps/JAWS3/jaws3/Event_Dispatcher.h: - * apps/JAWS3/jaws3/Options.h: - * apps/JAWS3/jaws3/Reactive_IO.h: - * apps/JAWS3/jaws3/Reactive_IO_Helpers.h: - * apps/JAWS3/jaws3/Signal_Task.h: - * apps/JAWS3/jaws3/Synch_IO.h: - Removed #include "ace/OS.h", replacing with other #includes - as needed. If OS.h is included, some other OS_*.h files can get - pulled in and sometimes ends up tentatively defining structs in - ACE_OS's namespace. This can end up tripping HP-UX aCC. Not sure - why it's only aCC and not other compilers as well, but there it is. - Finally resolves some nagging compile errors on HP-UX. - - * apps/JAWS3/jaws3/Concurrency.cpp: - * apps/JAWS3/jaws3/IO.cpp: Add missing OS_NS_* defines - necessitated by no longer including OS.h. - -Mon Feb 14 17:36:43 2005 Steve Huston - - * ace/ace.mwc: Removed RMCast and TMCast, since they're now under - protocols/ace. - - * ace/Makefile.am: - * protocols/ace/Makefile.am: Moved RMCast and TMCast entries from - the former to the latter. - -Mon Feb 14 17:03:11 2005 Steve Huston - - * ace/RMCast/Acknowledge.cpp: - * ace/RMCast/Acknowledge.h: - * ace/RMCast/Agent.tar.bz2: - * ace/RMCast/Bits.h: - * ace/RMCast/Link.cpp: - * ace/RMCast/Link.h: - * ace/RMCast/Protocol.cpp: - * ace/RMCast/Protocol.h: - * ace/RMCast/RMCast.mpc: - * ace/RMCast/Retransmit.cpp: - * ace/RMCast/Retransmit.h: - * ace/RMCast/Simulator.cpp: - * ace/RMCast/Simulator.h: - * ace/RMCast/Socket.cpp: - * ace/RMCast/Socket.h: - * ace/RMCast/Stack.cpp: - * ace/RMCast/Stack.h: - Moved from ace/RMCast to protocols/ace/RMCast. - - * ace/TMCast/ACE_TMCast.pc.in: - * ace/TMCast/Export.hpp: - * ace/TMCast/FaultDetector.hpp: - * ace/TMCast/Group.cpp: - * ace/TMCast/Group.hpp: - * ace/TMCast/GroupFwd.hpp: - * ace/TMCast/LinkListener.hpp: - * ace/TMCast/MTQueue.cpp: - * ace/TMCast/MTQueue.hpp: - * ace/TMCast/Makefile.am: - * ace/TMCast/Messaging.hpp: - * ace/TMCast/Protocol.cpp: - * ace/TMCast/Protocol.hpp: - * ace/TMCast/README: - * ace/TMCast/TMCast.mpc: - * ace/TMCast/TransactionController.hpp: - Moved from ace/TMCast to protocols/ace/TMCast. - -Mon Feb 14 21:34:12 UTC 2005 Johnny Willemsen - - * ace/Global_Macros.h: - Added !ACE_LACKS_DEPRECATED_MACROS around ACE_CLASS_IS_NAMESPACE, - ACE_CORBA_1, ACE_CORBA_2, and ACE_CORBA_3. We have a build where - ACE_LACKS_DEPRECATED_MACROS is defined and we can so easily make - sure these deprecated macros are not used anymore in the ACE/TAO - code, our users can just use these macros until x.5.1 has been - released, then these macros are on the list to be removed. - -Mon Feb 14 23:08:52 2005 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - Added missing Id tag that somehow disappeared in - previous checkin. - -Mon Feb 14 12:17:06 2005 Ossama Othman - - * ace/RMCast/Link.cpp: - - Include "ace/OS_NS_sys_socket.h" to pull in ACE_OS::connect() - prototype. - - * ace/RMCast/Protocol.h: - - Include "ace/OS_NS_string.h" to pull in ACE_OS::memcpy() - prototype. - -Mon Feb 14 11:59:27 2005 Ossama Othman - - * ace/RMCast/Protocol.h (id): - * ace/RMCast/Protocol.cpp (id): - - Moved static constant initialization out of class declaration. - MSVC++ 6 cannot handle in-class static constant initialization. - Thanks to Chad Elliot for pointing the problem. - - * ace/RMCast/Link.cpp (recv): - - Changed the "switch" expression to an "if/else" expression since - the actual values of the cases are no longer available to the - compiler when compiling this file. - -Mon Feb 14 20:37:56 2005 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - - Removed LynxOS 2.5 leftovers. - Added definition of two new preprocessor macros - ACE_LYNXOS_MAJOR and ACE_LYNXOS_MINOR. These macros make - easier to maintain code that depend on LynxOS version. - -Mon Feb 14 10:51:12 UTC 2005 Johnny Willemsen - - * Kokyu/DSRT_Dispatch_Item_T.h: - * ACEXML/common/InputSource.h: - Replaced ACE_EXPLICIT with explicit - -Mon Feb 14 01:22:19 2005 Ossama Othman - - * examples/RMCast/Send_Msg/Receiver.cpp: - - Use "ACE_OS::memcmp()" instead of "std::memcmp()". MSVC++ 6 - doesn't place memcmp() in the "std" C++ namespace. - -Mon Feb 14 00:56:18 2005 Ossama Othman - - * ace/RMCast/Acknowledge.cpp: - - No need to include "ace/OS.h". Include "ace/OS_NS_unistd.h" - instead. - - * ace/RMCast/Protocol.h: - - Corrected friend declaration to use "struct" instead of "class" - since the friend type in question is actually struct. - -Mon Feb 14 00:41:11 2005 Ossama Othman - - * ace/RMCast/Bits.h: - - Added support for single-threaded configurations. - - * ace/RMCast/Link.cpp: - - Explicitly cast INADDR_ANY argument in ACE_INET_Addr constructor - call to ACE_UINT32. Addresses constructor ambiguity issues - exhibited by some compilers. - - * ace/RMCast/Protocol.h: - * ace/RMCast/Simulator.h: - * ace/RMCast/Socket.h: - - Added missing #include directives now made necessary by header - reductions in "Bits.h". - -Sun Feb 13 13:32:12 UTC 2005 Johnny Willemsen - - * ace/Timer_Queue_Adapters.h: - Doxygen improvements - -Sun Feb 13 13:18:12 UTC 2005 Johnny Willemsen - - * ace/config-lite.h: - When the new define ACE_LACKS_DEPRECATED_MACROS is set, the - deprecated macros ACE_MUTABLE, ACE_EXPLICIT and - ACE_CONST_WHEN_MUTABLE are not defined making it easy to see - if we use these deprecated macros anywhere. These macros are - defined normally so for our users nothing changes - - * ace/README: - Documented ACE_LACKS_DEPRECATED_MACROS - -Sun Feb 13 07:03:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Disabled the notify filter performance test under Irix, it hangs - forever - - * ace/Asynch_IO.h: - Updated some method signatures so that they are exactly the same - as used in the implementation to resolve Doxygen warnings - - * ace/config-doxygen.h: - Added define of ACE_HAS_ICMP_SUPPORT to 1 so that icmp classes are - also parsed by doxygen - -Sat Feb 12 09:00:51 2005 J.T. Conklin - - * m4/ace.m4: - - Rename ACE_WITH_{GL,FL,QT,TK} autoconf macros to ACE_PATH_{GL, - FL,QT,TK} to be consistant with standard naming conventions. - -Sat Feb 12 01:00:25 2005 Ossama Othman - - * ace/RMCast/Protocol.h (Header): - - Fixed "value computed is not used" warning exhibited by g++ 4.0 - CVS snapshot. - - * ace/RMCast/RMCast.mpc: - * bin/MakeProjectCreator/config/rmcast.mpb: - - Require native C++ exception support. The new reliable - multicast implementation currently requires it. - -Sat Feb 12 00:09:18 2005 Ossama Othman - - * ace/RMCast/Protocol.h: - - Work around Borland C++ Builder 6 (or earlier) inability to deal - with default template parameters. Thanks to Johnny for - suggesting a work-around. - -Fri Feb 11 21:39:04 2005 J.T. Conklin - - * configure.ac: - - Updated for new RMCast implementation. - - * tests/Makefile.am: - - Removed RMCast from SUBDIRS. - - * ace/RMCast/Makefile.am: - * examples/RMCast/Makefile.am: - * examples/RMCast/Send_Msg/Makefile.am: - - New files. - -Fri Feb 11 17:59:50 2005 J.T. Conklin - - * ace/Makefile.am: - - Fix typo in pkgconfigdatadir definition. - -Fri Feb 11 18:11:29 2005 Steve Huston - - * ace/Dev_Poll_Reactor.{h inl cpp}: - Comment out the check for epoll's proper Linux kernel version - based on linux/version.h. It's not always accurate. For example, - on Fedora Core 2 it says 2.4.20, yet the actual kernel is 2.6.5 - and epoll_ctl works fine (apparantly). - - Removed the original reference counting scheme based on the - handler repository and implemented the ACE_Event_Handler-based - scheme used by the other reactors. Kept the - ACE_Dev_Poll_Handler_Guard class, though, as it is very nice. - Just changed some contents and added a release() method to make it - easier to work with the notify case since the refcount is incremented - when the handler is queued for notify and decremented after the - later upcall is done. - - (wakeup_all_threads): Removed the #if 0 block around the notify() - call. This works fine (and is necessary) for epoll-capable systems. - - (handle_events_i, dispatch): Moved the signal-dispatched detection - to handle_events_i() from dispatch() and allowed a dispatched signal - to count as a dispatched event instead of always causing a - -1/EINTR return. - - (dispatch_io_events): Increment io_handlers_dispatched before - doing the upcall. Previously, it wouldn't get incremented if the - handler returned -1. - - * ace/Reactor.cpp: Added the ability to specify ACE_Dev_Poll_Reactor - as the default reactor implementation by specifying - ACE_USE_DEV_POLL_REACTOR_FOR_REACTOR_IMPL in the config file. - - * tests/Dev_Poll_Reactor_Test.cpp: Ignore SIGPIPE, else if the - receiving side closes its handle first, the sending side will crash - on SIGPIPE. Make the Client shut down its reactor if handle_output() - fails. Else, the timer will never fire again and the test will hang. - - * tests/MT_Reactor_Upcall_Test.cpp: - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/MT_Reference_Counted_Notify_Test.cpp: Added test for - ACE_Dev_Poll_Reactor using -d (defaults to 1) but only runs it - if ACE_HAS_EVENT_POLL is set. - For MT_Reference_Counted_Notify_Test, added checks to see that - the reference count actually gets incremented for the upcall. - -Fri Feb 11 13:55:47 2005 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Define ACE_HAS_ICMP_SUPPORT if host supports raw sockets. - This fixes bugzilla id [2039]. - -Fri Feb 11 21:33:37 UTC 2005 Johnny Willemsen - - * bin/make_release: - Don't perform crlf conversions on a .bz2 file during the release - -Fri Feb 11 08:43:04 2005 Ossama Othman - - * ace/RMCast/Makefile.am: - * ace/RMCast/RMCast.cpp: - * ace/RMCast/RMCast.h: - * ace/RMCast/RMCast.rc: - * ace/RMCast/RMCast_Ack_Worker.cpp: - * ace/RMCast/RMCast_Ack_Worker.h: - * ace/RMCast/RMCast_Ack_Worker.i: - * ace/RMCast/RMCast_Copy_On_Write.cpp: - * ace/RMCast/RMCast_Copy_On_Write.h: - * ace/RMCast/RMCast_Copy_On_Write.i: - * ace/RMCast/RMCast_Export.h: - * ace/RMCast/RMCast_Fork.cpp: - * ace/RMCast/RMCast_Fork.h: - * ace/RMCast/RMCast_Fork.i: - * ace/RMCast/RMCast_Fragment.cpp: - * ace/RMCast/RMCast_Fragment.h: - * ace/RMCast/RMCast_Fragment.i: - * ace/RMCast/RMCast_IO_UDP.cpp: - * ace/RMCast/RMCast_IO_UDP.h: - * ace/RMCast/RMCast_IO_UDP.i: - * ace/RMCast/RMCast_Membership.cpp: - * ace/RMCast/RMCast_Membership.h: - * ace/RMCast/RMCast_Membership.i: - * ace/RMCast/RMCast_Module.cpp: - * ace/RMCast/RMCast_Module.h: - * ace/RMCast/RMCast_Module.i: - * ace/RMCast/RMCast_Module_Factory.cpp: - * ace/RMCast/RMCast_Module_Factory.h: - * ace/RMCast/RMCast_Partial_Message.cpp: - * ace/RMCast/RMCast_Partial_Message.h: - * ace/RMCast/RMCast_Partial_Message.i: - * ace/RMCast/RMCast_Proxy.cpp: - * ace/RMCast/RMCast_Proxy.h: - * ace/RMCast/RMCast_Proxy.i: - * ace/RMCast/RMCast_Reassembly.cpp: - * ace/RMCast/RMCast_Reassembly.h: - * ace/RMCast/RMCast_Receiver_Module.cpp: - * ace/RMCast/RMCast_Receiver_Module.h: - * ace/RMCast/RMCast_Receiver_Module.i: - * ace/RMCast/RMCast_Reliable_Factory.cpp: - * ace/RMCast/RMCast_Reliable_Factory.h: - * ace/RMCast/RMCast_Reliable_Factory.i: - * ace/RMCast/RMCast_Reordering.cpp: - * ace/RMCast/RMCast_Reordering.h: - * ace/RMCast/RMCast_Reordering.i: - * ace/RMCast/RMCast_Resend_Handler.cpp: - * ace/RMCast/RMCast_Resend_Handler.h: - * ace/RMCast/RMCast_Resend_Handler.i: - * ace/RMCast/RMCast_Resend_Worker.cpp: - * ace/RMCast/RMCast_Resend_Worker.h: - * ace/RMCast/RMCast_Resend_Worker.i: - * ace/RMCast/RMCast_Retransmission.cpp: - * ace/RMCast/RMCast_Retransmission.h: - * ace/RMCast/RMCast_Retransmission.i: - * ace/RMCast/RMCast_Sequencer.cpp: - * ace/RMCast/RMCast_Sequencer.h: - * ace/RMCast/RMCast_Sequencer.i: - * ace/RMCast/RMCast_Singleton_Factory.cpp: - * ace/RMCast/RMCast_Singleton_Factory.h: - * ace/RMCast/RMCast_Singleton_Factory.i: - * ace/RMCast/RMCast_UDP_Event_Handler.cpp: - * ace/RMCast/RMCast_UDP_Event_Handler.h: - * ace/RMCast/RMCast_UDP_Event_Handler.i: - * ace/RMCast/RMCast_UDP_Proxy.cpp: - * ace/RMCast/RMCast_UDP_Proxy.h: - * ace/RMCast/RMCast_UDP_Proxy.i: - * ace/RMCast/RMCast_UDP_Reliable_Receiver.cpp: - * ace/RMCast/RMCast_UDP_Reliable_Receiver.h: - * ace/RMCast/RMCast_UDP_Reliable_Receiver.i: - * ace/RMCast/RMCast_UDP_Reliable_Sender.cpp: - * ace/RMCast/RMCast_UDP_Reliable_Sender.h: - * ace/RMCast/RMCast_UDP_Reliable_Sender.i: - * ace/RMCast/RMCast_Worker.cpp: - * ace/RMCast/RMCast_Worker.h: - * examples/RMCast/Makefile.am: - * examples/RMCast/Send_File/Makefile.am: - * examples/RMCast/Send_File/RMCast_Send_File.mpc: - * examples/RMCast/Send_File/Receiver.cpp: - * examples/RMCast/Send_File/Sender.cpp: - * tests/RMCast/Main.cpp: - * tests/RMCast/Makefile.am: - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Membership_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/RMCast/RMCast_Reordering_Test.cpp: - * tests/RMCast/RMCast_Retransmission_Test.cpp: - * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: - * tests/RMCast/acetest.mpb: - * tests/RMCast/tests.mpc: - - Removed old ACE reliable multicast implementation. It is not - maintained, and is now superseded by Boris's implementation - described below. - - From Boris Kolpkacov - * ace/RMCast/Acknowledge.cpp: - * ace/RMCast/Acknowledge.h: - * ace/RMCast/Agent.tar.bz2: - * ace/RMCast/Bits.h: - * ace/RMCast/Link.cpp: - * ace/RMCast/Link.h: - * ace/RMCast/Protocol.cpp: - * ace/RMCast/Protocol.h: - * ace/RMCast/RMCast.mpc: - * ace/RMCast/Retransmit.cpp: - * ace/RMCast/Retransmit.h: - * ace/RMCast/Simulator.cpp: - * ace/RMCast/Simulator.h: - * ace/RMCast/Socket.cpp: - * ace/RMCast/Socket.h: - * ace/RMCast/Stack.cpp: - * ace/RMCast/Stack.h: - * examples/RMCast/Send_Msg/Protocol.h: - * examples/RMCast/Send_Msg/README: - * examples/RMCast/Send_Msg/Receiver.cpp: - * examples/RMCast/Send_Msg/Send_Msg.mpc: - * examples/RMCast/Send_Msg/Sender.cpp: - - New reliable source-ordered multicast protocol implementation - for message-oriented multi-sender group communication built on - top of IPv4 multicast. - -Fri Feb 11 16:01:37 2005 Martin Corino - - * tests/Thread_Pool_Reactor_Test.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: - - Scaled down the tests on VxWorks as for CHORUS to make them - runnable with default target kernel network parameters. - -Fri Feb 11 07:32:06 2005 Chad Elliott - - * ace/OS_NS_sys_time.h: - * ace/OS_NS_sys_time.inl: - * ace/OS_NS_time.h: - * ace/Time_Value.h: - * ace/Time_Value.inl: - - Enhanced support for Release mode builds for EVC 4. - -Fri Feb 11 08:54:12 UTC 2005 Johnny Willemsen - - * bin/generate_doxygen.pl: - Group all ciao projects together and get then the version from - the version file in the CIAO directory. This way with a release - the ciao documentation gets the correct version number - -Fri Feb 11 08:52:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/outputdir.bor: - Don't use separate output directories for the output, this is - not used anymore after the switch to MPC. - - * bin/MakeProjectCreator/templates/bor.mpd: - No need to set STATIC_DIR, DEBUG_DIR and UNICODE_DIR anymore - - * include/makeinclude/recurse.bor: - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - Removed usage of MAKE_FLAGS, was not set at all - -Fri Feb 11 08:47:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added !IRIX to the Bug_1361_Regression tests, it hangs forever on - Irix - -Thu Feb 10 07:04:33 2005 Johnny Willemsen - - * ACE version 5.4.4 released. - -Thu Feb 10 02:51:19 2005 Balachandran Natarajan - - * Release: Added *.vcw files to the tar distribution. - -Thu Feb 10 08:35:12 UTC 2005 Johnny Willemsen - - * bin/make_release: - Don't do crlf conversion on .vsd files, that are Microsoft Visio - files which must be shipped unmodified - -Wed Feb 9 14:37:12 UTC 2005 Johnny Willemsen - - * bin/make_release: - Added the removal of the temporary file we create in the - old_versions_dir to check if we can write to that directory - -Tue Feb 8 20:58:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Improved VxWorks description, committed on behalf of Martin Corino - -Tue Feb 8 05:46:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Disable the CodeSet test in the static builds - -Mon Feb 7 21:36:37 2005 Martin Corino - - * tests/run_test.pl: - - Some improvements for autobuild testruns on VxWorks. - -Mon Feb 7 15:19:40 2005 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added CodeSet test to the list. This should run on all platforms - except those using GIOP 1.0 explicitly. - -Mon Feb 7 14:56:12 UTC 2005 Johnny Willemsen - - * bin/make_release: - Added a test to check if the previous_version directory is - writeable for the user running this script - -Mon Feb 7 05:32:32 2005 J.T. Conklin - - * configure.ac: - - Configure ACEXML makefiles if ACEXML directory exists. - -Mon Feb 7 13:18:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - After disabling a few test according to the logs already simple tests - do hang our system. This can't be true, so for the time being I - disabled all performance tests under windows and enabled the other - tests again. - -Mon Feb 7 12:24:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Don't run the pluggable udp tests on win32 - -Mon Feb 7 11:49:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Also don't run the AMI Latency test on Win32 - -Mon Feb 7 11:36:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Also don't run the Quoter example on Win32 - -Mon Feb 7 11:16:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Also don't run the Loadbalancing example on Win32 - -Mon Feb 7 10:34:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Don't run the AMI Sequence_Latency performance-test under Windows, - it causes the system to crash. We will sort out this problem later but - we first need to get the other tests running on Windows to keep an - eye on the test results. - -Sun Feb 6 20:53:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Added SuSE Linux to the list of platforms supported by - Remedy IT - -Sun Feb 6 10:33:12 UTC 2005 Johnny Willemsen - - * ace/Service_Object.cpp: - * ace/LSOCK_Stream.cpp: - * ace/Event_Handler.cpp: - Replaced c-style casts with C++ casts - -Sat Feb 5 20:12:37 2005 Martin Corino - - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.inl: - - Fixed some flaws in TSS_Emulation tests for TSS key validity introduced - some 3 years ago when key reuse was enabled for TSS_Emulation. - -Sat Feb 5 15:17:37 2005 Martin Corino - - * tests/run_test.pl: - - Some improvements for autobuild testing with VxWorks. - - * tests/Reactor_Notify_Test.cpp: - * tests/Task_Ex_Test.cpp: - - Scaled down testparameters for VxWorks because otherwise the tests take too - long and are killed before having a chance to finish. - -Sat Feb 5 11:38:37 2005 Martin Corino - - * tests/run_test.pl: - - Added functionality to run and analyze ACE tests for VxWorks from the - autobuild process (depending on target features). - - * tests/Multicast_Test.cpp: - - Fixed sloppy resource management (sockets) leading to problems on VxWorks. - - * tests/TP_Reactor_Test.cpp: - - Fixed compiletime test around pthread_sigmask() call so it now compiles - correctly for (non-WIN32) platforms having threads but no pthread_sigmask() - (f.i. VxWorks). - -Sat Feb 4 11:32:37 2005 Martin Corino - - * ace/OS_NS_time.inl: - - Made ACE_OS::gethrtime() for VxWorks always (also on PENTIUM) go through - clock_gettime() because the RDTSC somehow does not work correctly (all - HiResTime related tests fail) and clock_gettime() does. - -Fri Feb 4 14:23:12 UTC 2005 Johnny Willemsen - - * ace/Hashable.inl: - Replaced c-style cast with C++ const_cast - -Thu Feb 3 09:25:38 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Ensure that TAO_ROOT is set if it is a tao or a ciao project. - -Thu Feb 3 12:43:37 UTC 2005 Johnny Willemsen - - * include/makeinclude/rules.local.GNU: - Added build rule for .rc files in a static build. Thanks to - Arto Jalkanen for reporting this. - -Thu Feb 3 10:36:37 UTC 2005 Johnny Willemsen - - * ace/config-win32-common.h: - Added ACE_LACKS_UNIX_SYSLOG - - * ace/Log_Msg_UNIX_Syslog.{h,cpp}: - Only check for the ACE_LACKS_UNIX_SYSLOG define, not for ACE_WIN32. - Makes it a little easier to maintain and then this class is also - added to the doxygen documentation - -Thu Feb 3 10:28:37 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Removed some empty lines and use the ?= operator to set TAO_ROOT - and CIAO_ROOT if they are not set yet, saves us a few lines in each - generated GNU makefile - -Thu Feb 3 08:43:37 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Only generate CIAO_ROOT when we are generating a project for CIAO - -Thu Feb 3 08:43:37 2005 Martin Corino - - * test/Proactor_Test_IPV6.cpp: - - Fixed incorrect logfile name in cases where this test is unsupported - leading to falsely reported testfailures. - -Wed Feb 2 15:25:39 2005 Steve Huston - - * ace/OS_NS_stdio.inl (vsprintf): Clarified the reason why ULONG_MAX - doesn't always work with vswprintf(). glibc (at least newer versions - such as 2.3) check the bounds of the buffer/size combination before - attempting the operation. - -Wed Feb 02 08:57:23 2005 Balachandran Natarajan - - * bin/make_release: - - Added some comments and removed some old comments. - -Wed Feb 2 08:46:51 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added an include of $(CIAO_ROOT)/rules.ciao.GNU if 'ciao' is set. - -Tue Feb 01 16:12:43 2005 Balachandran Natarajan - - * bin/make_release: - - A typo that created problems during tar ball creation. Removed - updates to the *version.mpb's too. - -Tue Feb 1 19:44:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Reverted part of the change Fri Jan 28 20:46:12 UTC 2005. - Set shared_libs to empty and static_libs to 1, because of the - change our static builds are broken, we will figure this out - when we have setup some shared builds. - -Tue Feb 1 14:33:37 2005 Martin Corino - - * test/OS_Test.cpp: - - Excluded rename test for VxWorks since this is only supported for a restricted - set of filesystem drivers. - -Tue Feb 1 14:30:37 2005 Martin Corino - - * ace/OS_NS_time.inl: - - Moved buflen check in ctime_r() to more global scope. This way - we always get required behaviour even if OS *with* buflen arg - behaves badly (i.e. VxWorks). - -Tue Feb 1 13:47:12 UTC 2005 Johnny Willemsen - - * ace/ace.mpc: - * ace/ace_flreactor.mpc: - * ace/ace_qtreactor.mpc: - * ace/ace_tkreactor.mpc: - * ace/ace_xtreactor.mpc: - * bin/MakeProjectCreator/config/aceexe.mpb: - * bin/MakeProjectCreator/config/acelib.mpb: - * bin/MakeProjectCreator/config/ciao_client.mpb: - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - * bin/MakeProjectCreator/config/taoexe.mpb: - * bin/MakeProjectCreator/config/taolib.mpb: - Removed version as base project. This will be removed because it - results in the fact that each generated GNU makefile will get the - version number generated. We want that the GNU make rules get the - version number from Version.h - - * bin/MakeProjectCreator/config/aceversion.mpb: - * bin/MakeProjectCreator/config/ciaoversion.mpb: - * bin/MakeProjectCreator/config/taoversion.mpb: - Removed these files. - -Tue Feb 1 12:42:37 2005 Martin Corino - - * tests/Dirent_Test.cpp: - - Fixed directory recursion test for VxWorks where chdir() only - accepts full paths. - -Tue Feb 1 11:19:12 UTC 2005 Johnny Willemsen - - * bin/ace_tests.lst: - Added !VxWorks for the WFMO_Reactor tests. The perl script for those - tests detects windows or not, but with VxWorks we are using Windows - as host, but do a cross environment test. This prevents us from - running these tests on a VxWorks target. - -Mon Jan 31 20:48:04 2005 Ossama Othman - - * tests/Proactor_Test.cpp (TestData): - * tests/Proactor_Test_IPV6.cpp (TestData): - - Name the nested/local structure declared in this class to - workaround MSVC++ complaints about required compiler generated - default constructors for unnamed classes. - -Mon Jan 31 13:37:48 2005 Douglas C. Schmidt - - * ace/Acceptor.cpp (handle_close): Fixed the code so that it - closes down properly. Thanks to Kobi Cohen-Arazi - for this fix. - -Mon Jan 31 11:14:12 UTC 2005 Johnny Willemsen - - * ace/Service_Config.h: - Doxygen improvements - -Mon Jan 31 10:35:12 UTC 2005 Johnny Willemsen - - * netsvcs/clients/Naming/Client/Client_Test.cpp: - Fixed compile warning in wchar build - -Mon Jan 31 10:32:12 UTC 2005 Johnny Willemsen - - * ASNMP/agent/agent.mpc: - Added avoids += uses_wchar, the code can't be build with wchar - enabled - -Mon Jan 31 09:16:12 UTC 2005 Johnny Willemsen - - * ace/ARGV.h: - * ace/Configuration.h: - Doxygen improvements - -Mon Jan 31 08:29:12 UTC 2005 Johnny Willemsen - - * examples/APG/Logging/Trace_Return.cpp: - * apps/JAWS/clients/Caching/http_client.cpp: - Fixed unicode errors - - * apps/mkcsregdb/mkcsregdb.mpc: - * ASNMP/examples/walk/walk.mpc: - * ASNMP/examples/trap/trap.mpc: - * ASNMP/examples/set/set.mpc: - * ASNMP/examples/next/next.mpc: - * ASNMP/examples/get/get.mpc: - Added avoids += uses_wchar, the code can't be build with wchar - enabled - -Mon Jan 31 08:18:12 UTC 2005 Johnny Willemsen - - * examples/APG/Reactor/Timers.cpp: - Fixed unicode link errors - -Mon Jan 31 07:16:12 UTC 2005 Johnny Willemsen - - * ace/ace_wchar.h: - Added ACE_TEXT_OutputDebugString - - * examples/Log_Msg/Log_Msg_MFC/MFC_Log.cpp: - Use ACE_TEXT_OutputDebugString instead of ::OutputDebugString - to fix compile errors in wchar builds - -Sun Jan 30 08:46:56 2005 Ossama Othman - - * ace/Filecache.cpp: - - Added missing "template<>" to explicit class member - specializations, as required by the C++ standard. - -Sun Jan 30 13:45:12 UTC 2005 Johnny Willemsen - - * examples/IOStream/client/iostream_client.cpp: - Fixed unicode compile warning - -Sun Jan 30 13:37:12 UTC 2005 Johnny Willemsen - - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - Use ACE_OS::strncpy instead of strncpy directly to fix compile - error in Cygwin build - -Sun Jan 30 13:33:12 UTC 2005 Johnny Willemsen - - * examples/ASX/CCM_App/CCM_App.cpp: - Fixed warning in unicode build - - * ace/Service_Object.h: - Doxygen fixes - -Sun Jan 30 13:28:12 UTC 2005 Johnny Willemsen - - * examples/APG/Logging/Wrap_Macros.cpp: - Fixed compile problem in unicode build - -Sun Jan 30 13:25:12 UTC 2005 Johnny Willemsen - - * examples/APG/Reactor/Timers.cpp: - Fixed compile problem in unicode build - -Sun Jan 30 13:22:12 UTC 2005 Johnny Willemsen - - * examples/TMCast/Member/member.cpp: - Fixed compile problem in unicode build - -Sun Jan 30 13:04:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - * include/makeinclude/*.bor: - * bin/MakeProjectCreator/templates/bor.mpd: - Removed support for PASCAL, this was used for BCB4 which is already - not supported already for a long time - -Sat Jan 29 23:55:03 2005 Ossama Othman - - * examples/Misc/test_read_buffer.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i: - * examples/Web_Crawler/URL.h: - - Added missing header include directives that are necessary due - to inter-header dependency reductions in ACE. - -Sat Jan 29 23:44:37 2005 Ossama Othman - - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - - Added missing "ace/OS_NS_unistd.h" include directives. Fixes - compile-time errors related to missing function prototypes. - -Sat Jan 29 11:12:58 2005 J.T. Conklin - - * examples/OS/Process/process.cpp: - - Fixed compile errors due to (now) missing includes because of include - reductions done to Service_Config.h and Svc_Handler.h. - -Sat Jan 29 16:12:37 2005 Martin Corino - - * apps/Gateway/Gateway/gatewayd.cpp: - * examples/APG/Svc_Config/HA_Status_Static.h: - * examples/ASX/CCM_App/SC_Server.cpp: - * examples/Connection/blocking/SPIPE-acceptor.h: - * examples/Connection/blocking/SPIPE-connector.h: - * examples/Connection/misc/test_upipe.h: - * examples/Reactor/FIFO/server.cpp: - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Reactor/Misc/test_signals_1.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h: - * examples/Service_Configurator/IPC-tests/server/server_test.cpp: - * examples/Service_Configurator/Misc/Timer_Service.h: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test.cpp: - * tests/Logging_Strategy_Test.cpp: - * tests/Service_Config_Test.cpp: - - Fixed compile errors due to (now) missing includes because of include - reductions done to Service_Config.h and Svc_Handler.h. - -Sat Jan 29 00:39:37 2005 J.T. Conklin - - * m4/ace.m4: - - Change --with-{acexml,qos,rmcast,ssl} to --enable-{acexml,qos, - rmcast,ssl} to be consistant with standard autoconf conventions. - This also paves the way for a *new* --with-ssl flag to point to - the openssl install directory. - -Fri Jan 28 20:30:02 2005 Ossama Othman - - * ace/Configuration.h: - - Include "ace/SStringfwd.h" instead of "ace/SString.h". Forward - declarations of ACE's string types are enough. Reduces - interheader dependencies and also reduces ACE's footprint - slightly. - - * ace/Configuration.cpp: - * ace/Local_Name_Space.cpp - * ace/Remote_Name_Space.cpp: - * ace/Service_Config.cpp: - - Include "ace/SString.h" since to pull in complete ACE string - class declarations, since the corresponding header only has - forward declarations of those string classes. - - * ace/Filecache.cpp: - * ace/Filecache.h: - - Removed alternatives to C++ template specializations in these - files. All platforms supported by ACE support standard C++ - explicit/full specialization of classes and their members. - - * ace/Local_Name_Space.h: - * ace/Remote_Name_Space.h: - - Forward declare ACE_NS_WString instead of including - "ace/SString.h". The former is all that is needed. - - * ace/Name_Proxy.h: - - Include "ace/Event_Handler.h" to pull in complete - ACE_Event_Handler class declaration. Necessitated by include - directive reductions in ace/Service_Config.h. - - * ace/Process.h: - * ace/Time_Request_Reply.h: - * ace/Token_Collection.h: - - Removed "ace/SString.h" include directive. It isn't needed. - - * ace/Service_Config.h: - - Include "ace/SStringfwd.h" instead of "ace/SString.h". Forward - declarations of ACE's string types are enough. Reduces - interheader dependencies and also reduces ACE's footprint - slightly. - - Forward declare ACE_XML_Svc_Conf class instead of include - "ace/XML_Svc_Conf.h". The former is all that is needed. - - Removed "ace/Reactor.h" and "ace/Svc_Conf_Tokens.h" include - directives. They haven't been needed for quite some time. - - * ace/Svc_Handler.h: - - No need to include "ace/Service_Config.h". "ace/Reactor.h" is - enough. - - * netsvcs/clients/Naming/Client/Client_Test.cpp: - * netsvcs/clients/Naming/Client/main.cpp: - * protocols/ace/HTBP/HTBP_Channel.cpp: - - Include "ace/Reactor.h" to pull in complete ACE_Reactor class - declaration. - -Fri Jan 28 16:02:28 2005 Steve Huston - - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: Fixed compile diagnostics. - -Fri Jan 28 20:46:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Applied some changes from Thomas Lockhart - : - - set versioned_so to 0, VxWorks doesn't support this - - set shared_libs to 0, by default we build staticly, but this - can be overridden by our users. For dynamic builds Thomas - supplied more fixes but we have to test some more before adding - those. - - added some more notes - - removed remark of Tornado 1.0, it is not usable anymore - -Fri Jan 28 14:00:12 UTC 2005 Johnny Willemsen - - * html/README: - Corrected download link doxygen documentation - -Fri Jan 28 13:52:12 UTC 2005 Johnny Willemsen - - * examples/README: - Removed description of CORBA directory, it doesn't exists anymore - -Fri Jan 28 13:44:12 UTC 2005 Johnny Willemsen - - * tests/Multicast_Test_IPV6.cpp: - Updated debug message that this test needs multicast and thread - support. When this is not available return 0 not 1 just as the - other tests do. This way single threaded builds don't flag this - test as failed. - -Fri Jan 28 09:03:12 UTC 2005 Johnny Willemsen - - * tests/Network_Adapters_Test.{h,cpp}: - Fixed compile warnings when building this test with the Borland - compiler. Thanks to Robert Iakobashvili - for supplying the patches - -Fri Jan 28 08:38:12 UTC 2005 Johnny Willemsen - - * ace/Global_Macros.h - Changed ACE_SERVER_ADDRESS to don't cause problems in unicode - builds - -Fri Jan 28 08:15:12 UTC 2005 Johnny Willemsen - - * examples/C++NPv2/C++NPv2.mpc: - Don't build the configurable_logging_server when uses_wchar is defined. - This example just can't build with wchar - -Fri Jan 28 07:32:12 UTC 2005 Johnny Willemsen - - * examples/ASX/Event_Server/Event_Server/Event.mpc: - * examples/ASX/Event_Server/Transceiver/Transceiver.mpc: - * examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc: - New MPC files. Thanks to Thomas Lockhart - for contributing - these. - -Fri Jan 28 05:32:12 UTC 2005 Johnny Willemsen - - * ace/Name_Request_Reply.h: - Removed private copy constructor and assignment operator, in the - netsvcs library this gave problems. - -Thu Jan 27 18:28:19 2005 Steve Huston - - * tests/Proactor_Test.{h cpp}: - * tests/Proactor_Test_IPV6.cpp: Rearranged the pieces of this test to - allow the Acceptor and Connector objects to be destroyed during the - test and still have all the stats kept accurately. This is to enable - testing of some Proactor improvements that are coming. - - * tests/Proactor_Scatter_Gather_Test.cpp: - * tests/TP_Reactor_Test.cpp: Be careful to use the same address family - when forming the listen and connect addresses. This allows things to - work regardless of IPv4/IPv6 use. - -Thu Jan 27 18:59:12 UTC 2005 Johnny Willemsen - - * ace/Hash_Map_Manager_T.inl: - Replaced c-style cast with C++ casts - -Thu Jan 27 18:48:12 UTC 2005 Johnny Willemsen - - * ace/ARGV.cpp: - * ace/Condition_Recursive_Thread_Mutex.cpp: - * ace/Condition_Thread_Mutex.cpp: - * ace/Dump.cpp: - * ace/Event.cpp: - * ace/Filecache.cpp: - * ace/Message_Block.cpp: - * ace/OS_NS_sys_socket.cpp: - * ace/Service_Object.cpp: - * ace/Service_Types.cpp: - Replaced c-style cast with C++ casts - - * ace/Name_Proxy.cpp: - * ace/Naming_Context.cpp: - Added missing members to initialisation list - - * ace/Name_Proxy.h: - * ace/Name_Request_Reply.h: - Added private assignment operator and copy constructor - to prevent copying. - -Wed Jan 26 12:57:12 UTC 2005 Johnny Willemsen - - * ace/ICMP_Socket.{h,cpp}: - * ace/Ping_Socket.{h,cpp}: - * tests/Network_Adapters_Test.cpp: - Added missing includes. Thanks to Peter Falsh - for reporting this. - - * tests/run_test.lst: - Added Network_Adapters_Test - -Tue Jan 25 21:05:12 UTC 2005 Martin Corino - - * tests/Reactor_Registration_Test.cpp: - - Revoked earlier change because it's erroneous:-( - -Tue Jan 25 19:41:12 UTC 2005 Martin Corino - - * examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp: - - Fixed typo in include statement. Thanks to JT Conklin. - -Tue Jan 25 15:47:12 UTC 2005 Johnny Willemsen - - * docs/ACE-bug-process.html: - Fixed links - -Tue Jan 25 15:24:12 UTC 2005 Johnny Willemsen - - * docs/ACE-categories.html: - Updated this document - -Tue Jan 25 15:05:12 UTC 2005 Johnny Willemsen - - * ace/OS.h: - Removed include of os_include/sys/os_fcntl.h, this file doesn't - exists - -Tue Jan 25 14:41:12 UTC 2005 Martin Corino - - * examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp: - - Added a necessary includefile which make things compile better - when ACE_HAS_STREAM_PIPES is defined. - -Tue Jan 25 14:15:12 UTC 2005 Martin Corino - - * tests/Reference_Counted_Event_Handler_Test.cpp: - * tests/Reactor_Registration_Test.cpp: - - Tidied up resource management (i.e. close pipes in eventhandler - destructors) since VxWorks does not automatically release those - when a dynamically loaded app module is finished. - - * tests/Reactor_Dispatch_Order_Test.cpp: - - Tidied up resource management and fixed handling superfluous output - event (like OpenBSD and Lynx). - -Mon Jan 24 23:10:33 2005 Ossama Othman - - * ace/Process_Manager.cpp (terminate): - * ace/Signal.cpp (remove_handler, register_handler): - * ace/Thread_Manager.cpp (spawn_i): - - Fixed "control reaches end of non-void function" warnings - exhibited by the latest GNU G++ 4.0 CVS snapshot. - -Mon Jan 24 17:00:39 2005 J.T. Conklin - - * ace/Makefile.am: - - Fix thinko in pkgsrc *.pc file generation. - -Mon Jan 24 18:24:12 UTC 2005 Martin Corino - - * examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp: - * examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp: - * examples/IPC_SAP/SPIPE_SAP/producer_read.cpp: - * examples/IPC_SAP/SPIPE_SAP/server.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i: - - Added a number necessary includefiles which make things compile better - when ACE_HAS_STREAM_PIPES is defined. - -Mon Jan 24 07:49:21 2005 Douglas C. Schmidt - - * ace/OS_NS_sys_socket.inl (setsockopt): Fixed a mistake in the - comment, where it should say "Windows always set - SO_REUSEADDR=1." Thanks to YiQing Xiong - for reporting this. - -Mon Jan 24 11:23:12 UTC 2005 Martin Corino - - * tests/CDR_Test.cpp: - - Fixed incorrect initializer for char array. - -Sun Jan 23 21:34:00 2005 J.T. Conklin - - * ace/Makefile.am: - * examples/Misc/Makefile.am: - * tests/Makefile.am: - - Regenerate. - - * m4/ace.m4: - - Added extra quoting to AC_REQUIRE arguments. - Set BUILD_ACE_{FL,TK,QT,XT}REACTOR automake conditionals. - -Sun Jan 23 19:17:25 2005 J.T. Conklin - - * m4/ace.m4: - - Create new ACE_WITH_{GL,FL,QT,TK} autoconf macros which will be - used for finding OpenGL, FL/TK, Qt and Tk libraries and setting - compiler and linker flags. - -Sun Jan 23 15:45:46 2005 J.T. Conklin - - * m4/ace.m4: - - Split --enable-{fl,qt,tk,xt}-reactor processing into separate - autoconf macros. - -Sun Jan 23 15:07:08 2005 Balachandran Natarajan - - * bin/make_release: - - Omit .cvsignore files. - -Sun Jan 23 18:14:12 UTC 2005 Johnny Willemsen - - * examples/Reactor/Proactor/test_multiple_loops.cpp: - * examples/Shared_Memory/test_SV.cpp: - * examples/Smart_Pointers/gadget_test.cpp: - * examples/Smart_Pointers/widget_test.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp: - -Sun Jan 23 15:47:12 UTC 2005 Johnny Willemsen - - * examples/OS/Process/process.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: - Fixed unicode build error - -Sun Jan 23 13:56:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - - Default rtti to 1 instead of 0, we now use dynamic_cast in the - ACE library itself, TAO requires RTTI, so changed the default - - * include/makeinclude/platform_vxworks5.5.x.GNU: - - Simplified this file by using ?= - -Sun Jan 23 13:18:12 UTC 2005 Johnny Willemsen - - * ace/Capabilities.cpp: - Removed instantiations of ACE_Hash and ACE_Equal_To of - ACE_TString. These where already giving problems on VxWorks, - now also on Irix, so removed them. Thanks to Doug McCorkle - for reporting this - -Sun Jan 23 12:39:20 2005 Marek Brudka - - * bin/MakeProjectCreator/config/tao_xtresource.mpb: - * bin/MakeProjectCreator/config/tao_tkresource.mpb: - * bin/MakeProjectCreator/config/tao_qtresource.mpb: - * bin/MakeProjectCreator/config/tao_flresource.mpb: - * bin/MakeProjectCreator/config/ace_xtreactor.mpb: - * bin/MakeProjectCreator/config/ace_xt.mpb: - * bin/MakeProjectCreator/config/ace_x11.mpb: - * bin/MakeProjectCreator/config/ace_tkreactor.mpb: - * bin/MakeProjectCreator/config/ace_tk.mpb: - * bin/MakeProjectCreator/config/ace_motif.mpb: - * bin/MakeProjectCreator/config/ace_gl.mpb: - * bin/MakeProjectCreator/config/ace_flreactor.mpb: - * bin/MakeProjectCreator/config/ace_fl.mpb: - * bin/MakeProjectCreator/config/ace_athena.mpb: - * ace/ace_xtreactor.mpc: - * ace/ace_tkreactor.mpc: - * ace/ace_qtreactor.mpc: - * ace/ace_flreactor.mpc: - * ace/ace.mpc: - - Added missing Id strings. - -Sun Jan 23 02:22:13 2005 J.T. Conklin - - * ace/ACE_FlReactor.pc.in: - * ace/ACE_QtReactor.pc.in: - * ace/ACE_TkReactor.pc.in: - * ace/ACE_XtReactor.pc.in: - - New files, pkg-config *.pc templates. - - * ace/ace_flreactor.mpc: - * ace/ace_qtreactor.mpc: - * ace/ace_tkreactor.mpc: - * ace/ace_xtreactor.mpc: - - Removed Demux subsection from Source_Files. - - Added empty Inline_Files, Template_Files, and Resource_Files - sections. - - Added Pkgconfig_Files sections. - -Sun Jan 23 00:25:48 2005 J.T. Conklin - - * m4/ace.m4: - - Initial --enable-tk-reactor and --enable-qt-reactor support. - Set BUILD_{FL,TK,QT,XT} automake conditionals. - -Sun Jan 23 01:54:59 2005 Marek Brudka - - * */.cvsignore: - To make cvs silent. - - * tests/tests.mpc: - * tests/XtReactor_Test.cpp: - * tests/XtMotifReactor_Test.cpp: - * tests/XtAthenaReactor_Test.cpp: - * tests/TkReactor_Test.cpp: - * tests/QtReactor_Test.h: - * tests/QtReactor_Test.cpp: - * tests/FlReactor_Test.cpp: - * include/makeinclude/wrapper_macros.GNU: - * include/makeinclude/platform_sunos5_g++.GNU: - * include/makeinclude/platform_lynxos.GNU: - * include/makeinclude/platform_linux_pgi.GNU: - * include/makeinclude/platform_linux_icc.GNU: - * include/makeinclude/platform_linux_borland.GNU: - * include/makeinclude/platform_linux.GNU: - * examples/Misc/test_XtReactor2.cpp: - * examples/Misc/test_XtReactor1.cpp: - * examples/Misc/Misc.mpc: - * bin/MakeProjectCreator/config/tao_xtresource.mpb: - * bin/MakeProjectCreator/config/tao_tkresource.mpb: - * bin/MakeProjectCreator/config/tao_qtresource.mpb: - * bin/MakeProjectCreator/config/tao_flresource.mpb: - * bin/MakeProjectCreator/config/strategies.mpb: - * bin/MakeProjectCreator/config/global.features: - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/ace_xtreactor.mpb: - * bin/MakeProjectCreator/config/ace_xt.mpb: - * bin/MakeProjectCreator/config/ace_x11.mpb: - * bin/MakeProjectCreator/config/ace_tkreactor.mpb: - * bin/MakeProjectCreator/config/ace_tk.mpb: - * bin/MakeProjectCreator/config/ace_qtreactor.mpb: - * bin/MakeProjectCreator/config/ace_qt.mpb: - * bin/MakeProjectCreator/config/ace_motif.mpb: - * bin/MakeProjectCreator/config/ace_gtk.mpb: - * bin/MakeProjectCreator/config/ace_gl.mpb: - * bin/MakeProjectCreator/config/ace_flreactor.mpb: - * bin/MakeProjectCreator/config/ace_fl.mpb: - * bin/MakeProjectCreator/config/ace_athena.mpb: - * ace/config-win32-msvc.h: - * ace/config-doxygen.h: - * ace/ace_xtreactor.mpc: - * ace/ace_tkreactor.mpc: - * ace/ace_qtreactor.mpc: - * ace/ace_flreactor.mpc: - * ace/ace.mwc: - * ace/ace.mpc: - * ace/XtReactor.h: - * ace/XtReactor.cpp: - * ace/TkReactor.h: - * ace/TkReactor.cpp: - * ace/README: - * ace/QtReactor.h: - * ace/QtReactor.cpp: - * ace/FlReactor.h: - * ace/FlReactor.cpp: - * ace/ACE_XtReactor_export.h: - * ace/ACE_TkReactor_export.h: - * ace/ACE_QtReactor_export.h: - * ace/ACE_FlReactor_export.h: - * ACE-INSTALL.html: - Changes related with separation of GUI reactors. - The additional information is avalaible below. - - Wed Jan 19 22:55:50 2005 Marek Brudka - - * bin/MakeProjectCreator/config/tao_xtresource.mpb: - * bin/MakeProjectCreator/config/tao_xtreactor.mpb: - * bin/MakeProjectCreator/config/tao_tkresource.mpb: - * bin/MakeProjectCreator/config/tao_tkreactor.mpb: - * bin/MakeProjectCreator/config/tao_qtresource.mpb: - * bin/MakeProjectCreator/config/tao_qtreactor.mpb: - * bin/MakeProjectCreator/config/tao_flresource.mpb: - * bin/MakeProjectCreator/config/tao_flreactor.mpb: - - Adapted to new naming. - - Sun Jan 9 01:13:42 2005 Marek Brudka - - * ace/TkReactor.h (Module): - * ace/TkReactor.cpp (Module): - * ace/FlReactor.h (Module): - * ace/FlReactor.cpp (Module): - - Removed factory methods for loading reactor from shared - library. - - * bin/MakeProjectCreator/config/global.features (Module): - - Disabled by defult tao_flreactor and tao_tkreactor features. - - Mon Jan 3 22:48:32 2005 Marek Brudka - - * ace/ace_xtreactor.mpc (Module): - * ace/ace_tkreactor.mpc (Module): - * ace/ace_qtreactor.mpc (Module): - * ace/ace_flreactor.mpc (Module): - - Removed ace_*reactor required features. - - Tue Dec 14 00:09:48 2004 Marek Brudka - - * bin/MakeProjectCreator/config/ace_x11.mpb (Module): - * bin/MakeProjectCreator/config/ace_gl.mpb (Module): - * bin/MakeProjectCreator/config/ace_fl.mpb (Module): - * ACE-INSTALL.html (Module): - - Modified base projects to enable FlReactor compilation for - Windows. - - Mon Dec 13 01:39:12 2004 Marek Brudka - - * bin/MakeProjectCreator/config/ace_xt.mpb (Module): - * bin/MakeProjectCreator/config/ace_gl.mpb (Module): - * bin/MakeProjectCreator/config/ace_fl.mpb (Module): - - Removed nice feature inheritance and reentered a workaround - related with "verbatim" section bug in MPC. - - Mon Dec 13 00:36:44 2004 Marek Brudka - - * bin/MakeProjectCreator/config/strategies.mpb (Module): - - Removed explicite dependencies of TAO_Strategies on - TAO_TkReactor. - - * bin/MakeProjectCreator/config/tao_tkreactor.mpb (Module): - - Creating base project for using TAO_TkReactor library. - - * bin/MakeProjectCreator/config/strategies.mpb (Module): - - Removed dependency on tao_tkreactor. - - * tests/TkReactor_Test.cpp (Module): - * bin/MakeProjectCreator/config/ace_tk.mpb (Module): - * ace/config-doxygen.h (Module): - - Removed ACE_HAS_TK macros. - - * ace/TkReactor.h (Module): - * ace/TkReactor.cpp (Module): - - Removed ACE_HAS_TK macros. Created factory method TkReactor in - dll. - - Sun Dec 12 22:53:48 2004 Marek Brudka - - * tests/FlReactor_Test.cpp (Module): - - Removed ACE_HAS_FL macros. - - * bin/MakeProjectCreator/config/strategies.mpb (Module): - - Removed explicite dependence of TAO_Strategies on - TAO_FlReactor. - - * bin/MakeProjectCreator/config/tao_flreactor.mpb (Module): - - Creating base project for using TAO_FlReactor library. - - * bin/MakeProjectCreator/config/ace_fl.mpb (Module): - - Removed ACE_HAS_FL macros. - - * ace/config-doxygen.h (Module): - - Removed ACE_HAS_FL macros. - * ace/FlReactor.h (Module): - * ace/FlReactor.cpp (Module): - - Removed ACE_HAS_FL macros. Created factory method for - instantinating FlReactor from dll. - - Sun Dec 12 02:14:51 2004 Marek Brudka - - * .cvsignore: - - Made cvs more silent on executables. - - * tests/tests.mpc (Module): - - Introduced new dependencies on ace_flreactor and ace_tkreactor - for specific reactors tests. - - * include/makeinclude/platform_sunos5_sunc++.GNU (Module): - - Replaced ace_with_x11 by x11 feature. - - * include/makeinclude/wrapper_macros.GNU (Module): - - Modified documentation about features. Removed rules for an - unknown gtk_reactor. Modified statements related with new naming - schema and feature definitions. - - * bin/MakeProjectCreator/config/global.features (Module): - - Grouped and commented features related with GUI reactors. - - * bin/MakeProjectCreator/config/strategies.mpb (Module): - - Created temporary dependence on tao_tk(fl)reactors. To be - removed when TAO is separated from Tk and Fl Reactors. - - * bin/MakeProjectCreator/config/tao_flreactor.mpb (Module): - * bin/MakeProjectCreator/config/tao_tkreactor.mpb (Module): - - Created dummy projects to tao_*reactors. Will be handy when TAO - is separated from Tk and Fl Reactors. - - * bin/MakeProjectCreator/config/tao_xtreactor.mpb (Module): - * bin/MakeProjectCreator/config/tao_qtreactor.mpb (Module): - * bin/MakeProjectCreator/config/ace_xtreactor.mpb (Module): - * bin/MakeProjectCreator/config/ace_tkreactor.mpb (Module): - * bin/MakeProjectCreator/config/ace_qtreactor.mpb (Module): - * bin/MakeProjectCreator/config/ace_flreactor.mpb (Module): - - Unified derivation and naming schema. - - * bin/MakeProjectCreator/config/ace_fltk.mpb (Module): - - Replaced this file by ace_fl.mpb - - * bin/MakeProjectCreator/config/ace_xt.mpb (Module): - * bin/MakeProjectCreator/config/ace_x11.mpb (Module): - * bin/MakeProjectCreator/config/ace_tk.mpb (Module): - * bin/MakeProjectCreator/config/ace_qt.mpb (Module): - * bin/MakeProjectCreator/config/ace_motif.mpb (Module): - * bin/MakeProjectCreator/config/ace_fl.mpb (Module): - * bin/MakeProjectCreator/config/ace_gl.mpb (Module): - * bin/MakeProjectCreator/config/ace_athena.mpb (Module): - - Replaced ace_with_* features by * features to unify naming - schema. Removed unnecessary definitions - (includes,flags,libraries). Introduced unified derivation - schema. - - * ace/ace_xtreactor.mpc (Module): - * ace/ace_tkreactor.mpc (Module): - * ace/ace_qtreactor.mpc (Module): - * ace/ace_flreactor.mpc (Module): - - Added header files. Created new dependencies. - - * ace/TkReactor.h (Module): - * ace/FlReactor.h (Module): - - Used new export macros. - - * ace/ACE_TkReactor_export.h (Module): - * ace/ACE_FlReactor_export.h (Module): - - Created export macros for these GUI reactors. Will be handy in - future. - - * ACE-INSTALL.html (Module): - - Rewrote documentation related with GUI reactors. - - Fri Dec 10 23:53:41 2004 Marek Brudka - - * bin/MakeProjectCreator/config/global.features (Module): - - Removed xt_reactor feature. - - * ACE-INSTALL.html (Module): - - Modified documentation related to QtReactor and XtReactor. - - Fri Dec 10 22:57:22 2004 Marek Brudka - - * tests/QtReactor_Test.cpp (Message): - - Removed unnecesary log about lack of Qt support. - - Fri Dec 10 22:39:12 2004 Marek Brudka - - * bin/MakeProjectCreator/config/global.features (Message): - - Disabled by default ace_With_xt and ace_with_x11. - - * include/makeinclude/wrapper_macros.GNU (Module): - - Replace qt_rector variables by qt, as MPC currently uses qt - feature. - - Fri Dec 10 01:04:52 2004 Marek Brudka - - * examples/Misc/.cvsignore (Module): - - Created few ignores to make cvs silent. - - Fri Dec 10 00:45:56 2004 Marek Brudka - - * tests/.cvsignore (Module): - - Created few ignores to make cvs silent. - - * ace/ace_xtreactor.mpc (Module): - - * ace/config-tandem.h (Module): - * ace/config-doxygen.h (Module): - * ace/XtReactor.cpp (Module): - - Removed ACE_HAS_XT macros. - - * ace/XtReactor.h (Module): - - Removed ACE_HAS_XT macros and applied export macros for - ACE_XtReactor. - - * ace/README (Module): - - Removed notice on ACE_HAS_XT. - - * ace/ACE_XtReactor_export.h (Module): - - Create export macros for XtReactor. Please, do not ask if anyone - needs these macros under Windows. Probably no, but they are - present here to remain consistent with the rest of ACE. - - * tests/tests.mpc (Module): - - Created two project XtReactor_Tests for Athena widgets and - Motif. Removed XtReactor_Test. - - * tests/XtReactor_Test.cpp (Module): - * tests/XtMotifReactor_Test.cpp (Module): - * tests/XtAthenaReactor_Test.cpp (Module): - - XtReactor_Test was splitted into separate test for Athena - widgets and Motif, hence they depend on distinct - libraries. Removed ACE_HAS_XT and ACE_LACKS_MOTIF macros, as - they are not needed now. - - * examples/Misc/test_XtReactor2.cpp (Module): - * examples/Misc/test_XtReactor1.cpp (Module): - - Removed ACE_HAS_XT macros. - - * examples/Misc/Misc.mpc (Module): - - Added dependencies on ace_xtreactor and ace_motif. - - * bin/MakeProjectCreator/config/tao_xtreactor.mpb (Module): - * bin/MakeProjectCreator/config/ace_xtreactor.mpb (Module): - - Created base projects for applications using ACE/TAO_XtReactor - libraries. - - * bin/MakeProjectCreator/config/global.features (Module): - - By default ace_with_x11, ace_withxt, ace_with_motif, - ace_with_athena features are not avalaible. - - * bin/MakeProjectCreator/config/ace_xt.mpb (Module): - * bin/MakeProjectCreator/config/ace_x11.mpb (Module): - - Transformed features into projects with explicit requirements. - - * bin/MakeProjectCreator/config/ace_motif.mpb (Module): - - Created base project for motif/lestif library. - - * bin/MakeProjectCreator/config/ace_athena.mpb (Module): - - Created base project for athena widgets library. - - * ACE-INSTALL.html (Module): - - Modified section on QtReactor and added section on XtReactor. - - Tue Dec 7 20:48:36 2004 Marek Brudka - - * ace/ace_qtreactor.mpc (Module): - * ace/QtReactor_export.h (Module): - * ace/QtReactor.h (Module): - * ace/ACE_QtReactor_export.h (Module): - - Change QtReactor_export.h into ACE_QtReactor_export.h to avoid - possible, though not very probably name conflict and remain - consistent with TAO_QtReact_export. - - Tue Dec 7 00:23:54 2004 Marek Brudka - - * ace/ace_qtreactor.mpc (Module): - * ace/QtReactor_export.h (Module): - * ace/QtReactor.h (Module): - - Created and applied export macros for ACE_QtReactor library. - - Sun Dec 5 23:18:29 2004 Marek Brudka - - * include/makeinclude/wrapper_macros.GNU (Module): - * include/makeinclude/platform_linux_pgi.GNU (Module): - * include/makeinclude/platform_linux_icc.GNU (Module): - * include/makeinclude/platform_linux.GNU (Module): - - Removed unnecessary ACE_HAS_QT and make options regarding - qt. All those things are now set up by MPC. - - * tests/tests.mpc (Module): - - Removed explicit dependency on qt. It is ensured now by qt base - project. - - * tests/QtReactor_Test.h (Module): - * tests/QtReactor_Test.cpp (Module): - - Removed ACE_HAS_QT section as MPC manages now configuration. - - * bin/MakeProjectCreator/config/tao_qtreactor.mpb (Module): - - Removed tao_qtreactor as it seems to be redundant with qt=1. I'm - not sure if this. - - * bin/MakeProjectCreator/config/ace_qt.mpb (Module): - - Removed ace_qtreactor as it seems to be redundant with qt=1. I'm - not sure if this. - - * ace/config-win32-msvc.h (Module): - - Removed sections related with ACE_HAS_QT and QT_DLL - definition. It is manged now by MPC. - - * ace/config-doxygen.h (Module): - - Removed ACE_HAS_QT as it is ACE_QtReactor compiles now alway if - qt option is set. - - * ace/README (Module): - - Removed paragraph on ACE_HAS_QT. - - * ace/QtReactor.h (Module): - * ace/QtReactor.cpp (Module): - - Removed code compiled conditionally on ACE_HAS_QT - predicate. Compilation is now managed by MPC. - - Sat Dec 4 17:03:38 2004 Marek Brudka - - * tests/RMCast/.cvsignore (Module): - * ace/.cvsignore (Module): - * tests/.cvsignore (Module): - - Added linux executables to prevent cvs warnings. - - Sat Dec 4 16:02:30 2004 Marek Brudka - - * ace/qt_reactor.mpb (Module): - - This base project is no necessary now. - - Sat Dec 4 15:51:01 2004 Marek Brudka - - * bin/MakeProjectCreator/config/ace_qtreactor.mpb (Module): - * ace/ace_qtreactor.mpc (Module): - - Removed depracated qt_moc project. - - Sat Dec 4 15:49:03 2004 Marek Brudka - - * ACE-INSTALL.html (Module): - - Added paragraph on building ACE_QtLibrary. - - Sat Dec 4 14:28:54 2004 Marek Brudka - - * bin/MakeProjectCreator/config/global.features (Module): - - Added comment about -features option. - - Fri Dec 3 23:10:39 2004 Marek Brudka - - * bin/MakeProjectCreator/config/tao_qtreactor.mpb (Added): - * bin/MakeProjectCreator/config/ace_xt.mpb (Added): - * bin/MakeProjectCreator/config/ace_x11.mpb (Added): - * bin/MakeProjectCreator/config/ace_tk.mpb (Added): - * bin/MakeProjectCreator/config/ace_qtreactor.mpb (Added): - * bin/MakeProjectCreator/config/ace_gtk.mpb (Added): - * bin/MakeProjectCreator/config/ace_gl.mpb (Added): - * bin/MakeProjectCreator/config/ace_fltk.mpb (Added): - * ace/ace_xtreactor.mpc (Added): - * ace/ace_tkreactor.mpc (Added): - * ace/ace_qtreactor.mpc (Added): - * ace/ace_flreactor.mpc (Added): - - * tests/tests.mpc (Modified): - * include/makeinclude/wrapper_macros.GNU (Modified): - * include/makeinclude/platform_sunos5_sunc++.GNU (Modified): - * include/makeinclude/platform_sunos5_g++.GNU (Modified): - * include/makeinclude/platform_lynxos.GNU (Modified): - * include/makeinclude/platform_linux_pgi.GNU (Modified): - * include/makeinclude/platform_linux_icc.GNU (Modified): - * include/makeinclude/platform_linux_borland.GNU (Modified): - * include/makeinclude/platform_linux.GNU (Modified): - * bin/MakeProjectCreator/config/acedefaults.mpb (Modified): - * bin/MakeProjectCreator/config/ace_qt.mpb (Modified): - * ace/ace.mwc (Modified): - * ace/ace.mpc (Modified): - - Initial changes related with the separation of reactors into - distinct libraries. Many thanks to Raphael Bossek - for this patch. - -Sat Jan 22 21:18:58 2005 Kobi Cohen-Arazi - - * ace/Logging_Strategy.cpp (handle_timeout): Fixed when defined - ACE_LACKS_IOSTREAM_TOTALLY. Use ftell instead of fseek in order - to get the current file length. Thanks to Kim ByeongSu for pointing it out. - -Sat Jan 22 21:13:11 2005 Kobi Cohen-Arazi - - * tests/Test_Output.cpp(close): Fixed when - ACE_LACKS_IOSTREAM_TOTALLY - fflush and fclose should be called - only when output_file_ is valid, and it points to the same - current ACE_LOG_MSG->msg_ostream (). - -Fri Jan 21 19:07:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Added Solaris 10 - -Fri Jan 21 18:39:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_client.mpb: - Removed duplicate includes - -Fri Jan 21 16:03:12 UTC 2005 Johnny Willemsen - - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp: - Fixed compile error in Solaris 10 build - -Fri Jan 21 11:38:12 UTC 2005 Johnny Willemsen - - * etc/ace.doxygen: - Also parse config-lite.h and config-all.h to generate the - ACE documentation - -Thu Jan 20 22:48:24 2005 Ossama Othman - - * docs/ACE-guidelines.html: - - Removed obsolete ACE cast macro usage recommendations. They are - deprecated. Thanks to Olli Savia for - pointing out this document needed updating. - - Updated and removed out-of-date guidelines. - -Thu Jan 20 19:07:35 2005 Ossama Othman - - * bin/ACE-casts-convert: - - Enhanced to support conversion of ACE_*_cast_[1-5]_{ptr,ref} - macro calls to their standard C++ counterparts. - - * ace/Map_T.inl: - - Converting remaining deprecated ACE cast macro calls using the - enhanced ACE-casts-convert script described above. - -Thu Jan 20 18:18:00 2005 Ossama Othman - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ACEXML/common/AttributesImpl.cpp: - * ACEXML/common/FileCharStream.cpp: - * ACEXML/common/HttpCharStream.cpp: - * ACEXML/common/Mem_Map_Stream.cpp: - * ACEXML/common/NamespaceSupport.cpp: - * ACEXML/common/SAXExceptions.cpp: - * ACEXML/common/StrCharStream.cpp: - * ACEXML/common/Transcode.cpp: - * ACEXML/parser/debug_validator/Debug_Attributes_Builder.cpp: - * ACEXML/parser/parser/Entity_Manager.i: - * ACEXML/parser/parser/Parser.cpp: - * ACEXML/tests/ContentHandler_Test.cpp: - * ACEXML/tests/Transcoder_Test.cpp: - * Kokyu/Dispatch_Deferrer.cpp: - * Kokyu/Dispatcher_Task.cpp: - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - * ace/RMCast/RMCast_Fragment.cpp: - * ace/RMCast/RMCast_IO_UDP.cpp: - * ace/RMCast/RMCast_Partial_Message.cpp: - * ace/RMCast/RMCast_Reassembly.cpp: - * apps/JAWS/server/IO.cpp: - * apps/JAWS/server/JAWS_Pipeline_Handler.cpp: - * apps/JAWS2/HTTP_10_Parse.cpp: - * apps/JAWS2/HTTP_10_Write.cpp: - * apps/JAWS2/JAWS/Assoc_Array.cpp: - * apps/JAWS2/JAWS/Concurrency.cpp: - * apps/JAWS2/JAWS/IO.cpp: - * apps/JAWS2/JAWS/Pipeline_Tasks.cpp: - * apps/JAWS3/http/HTTP_States.h: - * apps/JAWS3/jaws3/Asynch_IO.cpp: - * apps/drwho/CM_Client.cpp: - * apps/drwho/CM_Server.cpp: - * apps/drwho/server.cpp: - * apps/gperf/src/Hash_Table.cpp: - * apps/gperf/src/Key_List.cpp: - * apps/gperf/src/List_Node.cpp: - * apps/mkcsregdb/mkcsregdb.cpp: - * examples/APG/Config/HA_Status.cpp: - * examples/APG/Logging/Callback-2.h: - * examples/APG/Misc_IPC/UDP_Broadcast.cpp: - * examples/APG/Misc_IPC/UDP_Unicast.cpp: - * examples/APG/Naming/Name_Binding.h: - * examples/APG/Proactor/HA_Proactive_Status.cpp: - * examples/APG/Reactor/Client.cpp: - * examples/APG/Reactor/HAStatus-AC.cpp: - * examples/APG/Reactor/HAStatus.cpp: - * examples/APG/Reactor/Timer_State_Data.cpp: - * examples/APG/Shared_Memory/Hash_Map.cpp: - * examples/APG/Shared_Memory/Malloc.cpp: - * examples/APG/Shared_Memory/PI_Malloc.cpp: - * examples/APG/Sockets/Iovec.cpp: - * examples/APG/Svc_Config/HA_Status_Dynamic.cpp: - * examples/APG/Svc_Config/HA_Status_Static.cpp: - * examples/APG/ThreadPools/TP_Reactor.cpp: - * examples/APG/Timers/Alarm.cpp: - * examples/APG/Timers/CB.cpp: - * examples/APG/Timers/PCB.cpp: - * examples/APG/Timers/Task.cpp: - * examples/Bounded_Packet_Relay/BPR_Drivers.cpp: - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp: - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/C++NPv2/Client_Logging_Daemon.cpp: - * examples/C++NPv2/Logging_Event_Handler.h: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/Service_Reporter.cpp: - * examples/C++NPv2/TPC_Logging_Server.cpp: - * examples/C++NPv2/TP_Logging_Server.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - * examples/C++NPv2/display_logfile.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp: - * examples/IPC_SAP/FILE_SAP/client.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Reactor/Proactor/test_aiosig_ace.cpp: - * examples/Reactor/WFMO_Reactor/APC.cpp: - * examples/Reactor/WFMO_Reactor/Handle_Close.cpp: - * examples/Reactor/WFMO_Reactor/Multithreading.cpp: - * examples/Reactor/WFMO_Reactor/Removals.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i: - * examples/Shared_Malloc/test_malloc.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - * examples/Shared_Malloc/test_position_independent_malloc.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp: - * examples/TMCast/Member/member.cpp: - * examples/Threads/thread_manager.cpp: - * examples/Threads/thread_specific.cpp: - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: - * examples/Web_Crawler/Command_Processor.cpp: - * examples/Web_Crawler/Iterators.cpp: - * examples/Web_Crawler/Mem_Map_Stream.cpp: - * examples/Web_Crawler/URL_Addr.cpp: - * examples/Web_Crawler/URL_Visitor.cpp: - * netsvcs/lib/Name_Handler.cpp: - * protocols/ace/HTBP/HTBP_Channel.cpp: - * protocols/ace/HTBP/HTBP_Session.cpp: - * performance-tests/Misc/basic_perf.cpp: - * performance-tests/Misc/childbirth_time.cpp: - * performance-tests/Misc/context_switch_time.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_srv.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp: - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp: - * tests/ACE_Init_Test.cpp: - * tests/ACE_Test.cpp: - * tests/CDR_Array_Test.cpp: - * tests/Cache_Map_Manager_Test.cpp: - * tests/Cache_Map_Manager_Test.h: - * tests/Conn_Test.cpp: - * tests/DLL_Test.cpp: - * tests/DLList_Test.cpp: - * tests/Dynamic_Priority_Test.cpp: - * tests/FlReactor_Test.cpp: - * tests/Handle_Set_Test.cpp: - * tests/IOStream_Test.cpp: - * tests/MT_Reactor_Upcall_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/Map_Manager_Test.cpp: - * tests/Max_Default_Port_Test.cpp: - * tests/Max_Default_Port_Test_IPV6.cpp: - * tests/Message_Queue_Test.cpp: - * tests/Message_Queue_Test_Ex.cpp: - * tests/Multicast_Test.cpp: - * tests/Multicast_Test_IPV6.cpp: - * tests/OS_Test.cpp: - * tests/Object_Manager_Test.cpp: - * tests/Priority_Buffer_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Proactor_Scatter_Gather_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: - * tests/Proactor_Timer_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Reactor_Performance_Test.cpp: - * tests/Reactor_Timer_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Recursive_Condition_Bug_Test.cpp: - * tests/Recursive_Condition_Test.cpp: - * tests/Recursive_Mutex_Test.cpp: - * tests/SOCK_SEQPACK_SCTP_Test.cpp: - * tests/SOCK_Send_Recv_Test.cpp: - * tests/SOCK_Send_Recv_Test_IPV6.cpp: - * tests/SString_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/Service_Config_DLL.cpp: - * tests/Service_Config_Test.cpp: - * tests/TSS_Test.cpp: - * tests/Task_Ex_Test.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - * tests/Thread_Pool_Test.cpp: - * tests/Time_Value_Test.cpp: - * tests/HTBP/Reactor_Tests/test_config.h: - * tests/HTBP/Send_Recv_Tests/SendRecv_Test.cpp: - * tests/RMCast/RMCast_Fragment_Test.cpp: - * tests/RMCast/RMCast_Membership_Test.cpp: - * tests/RMCast/RMCast_Reassembly_Test.cpp: - * tests/RMCast/RMCast_Reordering_Test.cpp: - * tests/RMCast/RMCast_Retransmission_Test.cpp: - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: - * websvcs/lib/URL_Addr.cpp: - - Converted remainder of - ACE_{static,dynamic,reinterpret,const}_cast macros calls to - their standard C++ counterparts using new bin/ACE-casts-convert - script. - -Thu Jan 20 18:53:12 UTC 2005 Johnny Willemsen - - * ace/MEM_Acceptor.h: - Doxygen improvement - -Thu Jan 20 18:26:12 UTC 2005 Johnny Willemsen - - * ace/MEM_Addr.h: - Doxygen improvement - -Thu Jan 20 15:46:12 UTC 2005 Johnny Willemsen - - * ace/Connector.cpp: - Replaced C-style cast with C++ const_cast - -Thu Jan 20 07:00:15 2005 Chad Elliott - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Honor the -into option by prefixing each open with the - correct output directory determined by the new method on the - Creator. - -Thu Jan 20 01:16:21 2005 Ossama Othman - - * bin/ACE-casts-convert: - - New convenience script that converts all ACE cast macro calls - (e.g. ACE_static_cast (foo, bar)) to their standard C++ - counterparts (e.g. static_cast (bar)). It is meant as an - aid to help app developers that use the ACE cast macros upgrade - their apps to the standard C++ cast syntax since the ACE cast - macros were deprecated back in ACE 5.4.2. - -Wed Jan 19 23:06:14 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/acelib.mpb: - - Changed to inherit from pkgconfig.mpb. - - * bin/MakeProjectCreator/config/pkgconfig.mpb: - - New file, custom file definition for pkgconfig *.pc.in file. - -Wed Jan 19 15:20:19 2005 Steve Huston - - * ace/Dev_Poll_Reactor.inl: Add #include "ace/Log_Msg.h" to pick up - ACE_ASSERT. Fixes compile error on Solaris 9. - -Wed Jan 19 11:23:41 2005 Chad Elliott - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - - Use the new get_use_env() method which is part of the MPC change - from Wed Jan 19 11:20:42 2005. - -Wed Jan 19 08:28:11 2005 Chad Elliott - - * bin/tao_orb_tests.lst: - - Added TAO/tests/GIOP_Fragments/PMB_With_Fragments/run_test.pl to - the list of tests. - -Tue Jan 18 09:32:47 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/bor.mpd: - * bin/MakeProjectCreator/templates/gnu.mpd: - - Allow the addition to 'command' and 'dependent' within the scope - of a custom section. This is part of the MPC change from - Tue Jan 18 09:29:09 2005. - -Tue Jan 18 08:17:10 2005 Douglas C. Schmidt - - * ace/Log_Msg.cpp (open): Fixed the logic to pass prog_name - rather than logger_key, which fixes a bug with syslog. Thanks - to Robert Iakobashvili for this fix. - -Mon Jan 17 23:08:20 2005 J.T. Conklin - - * configure.ac: - - Clarify that we're checking whether the second argument to - gettimeofday() is a _struct_ timezone *. - - * m4/platform.m4: - - Fixed ACE_VAR_TIMEZONE macro to avoid false positive on systems - with the timezone() function. - -Sun Jan 16 23:26:58 2005 J.T. Conklin - - * m4/config_h.m4: - - Removed autoheader template for ACE_HAS_SIGINFO_T. - - * configure.ac: - - Simplified check for ACE_HAS_SIGINFO_T. - Added check for ACE_LACKS_SI_ADDR. - Added check for ACE_HAS_PTHREAD_NP_H. - -Sun Jan 16 22:14:25 2005 J.T. Conklin - - * ace/os_include/os_pthread.h: - - #include if ACE_HAS_PTHREAD_NP_H is defined. - - * ace/README: - - Document new feature test macro ACE_HAS_PTHREAD_NP_H. - -Sun Jan 16 18:52:12 UTC 2005 Johnny Willemsen - - * ace/CDR_Stream.{h,cpp}: - Don't implement the destructor of ACE_WChar_Codeset_Translator - in the header file, but in the cpp file. Fixes link errors - with TAO and Cygwin. Thanks to Mike McGahan - for reporting this. - This fixes bugzilla id [2020]. - -Sat Jan 15 22:22:12 UTC 2005 Johnny Willemsen - - * tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc: - Also build the client after the Test_Output library - -Thu Jan 13 23:32:03 2005 Ossama Othman - - * ace/Capabilities.cpp: - * ace/Configuration.cpp: - * ace/Connector.cpp: - * ace/Containers_T.cpp: - * ace/Dev_Poll_Reactor.cpp: - * ace/Dynamic_Service.cpp: - * ace/FILE.cpp: - * ace/LSOCK_Acceptor.cpp: - * ace/LSOCK_Stream.cpp: - * ace/Log_Msg.cpp: - * ace/Message_Queue.cpp: - * ace/Message_Queue_T.cpp: - * ace/Naming_Context.cpp: - * ace/OS_NS_fcntl.cpp: - * ace/OS_NS_netdb.cpp: - * ace/OS_NS_stdio.cpp: - * ace/OS_NS_stropts.cpp: - * ace/OS_NS_sys_uio.cpp: - * ace/OS_NS_sys_utsname.cpp: - * ace/OS_NS_time.cpp: - * ace/OS_NS_unistd.inl: - * ace/OS_NS_wchar.cpp: - * ace/OS_Thread_Adapter.cpp: - * ace/Obstack_T.cpp: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_CB_Proactor.cpp: - * ace/POSIX_Proactor.cpp: - * ace/Parse_Node.cpp: - * ace/Remote_Name_Space.cpp: - * ace/SOCK_Acceptor.cpp: - * ace/SOCK_Connector.cpp: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_SEQPACK_Acceptor.cpp: - * ace/SOCK_SEQPACK_Association.cpp: - * ace/SOCK_SEQPACK_Connector.cpp: - * ace/Select_Reactor_Base.cpp: - * ace/Service_Config.cpp: - * ace/Service_Repository.cpp: - * ace/Sock_Connect.cpp: - * ace/Stream_Modules.cpp: - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: - * ace/TLI.cpp: - * ace/TLI_Acceptor.cpp: - * ace/TLI_Connector.cpp: - * ace/TSS_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_Wheel_T.cpp: - * ace/Token_Collection.cpp: - * ace/UPIPE_Stream.cpp: - * ace/UUID.cpp: - * ace/Unbounded_Queue.cpp: - * ace/Unbounded_Set.cpp: - * ace/WFMO_Reactor.cpp: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Proactor.cpp: - - Converted all ACE_*_cast macro calls to their standard C++ - counterparts. The ACE_*_cast macros were deprecated in ACE - 5.4.2. - -Thu Jan 13 11:29:35 2005 Boris Kolpackov - - * ace/TMCast/Group.cpp: - * ace/TMCast/LinkListener.hpp: Use ACE_hthread_t instead of - ACE_thread_t to join threads. - -Wed Jan 12 22:52:12 2005 Ossama Othman - - * ace/OS_NS_stdio.h (gets): - * ace/OS_NS_stdio.cpp (gets): - - Removed this implementation. While this ACE implementation of - gets() did not contain the security holes that all standard - gets() implementations have, keeping it around only serves to - foster confusion since (1) some may incorrectly assume that this - ACE-specific gets() implementation has the same holes as - standard ones, and (2) invoking it with a default size argument - so that it looks like a standard gets() call results in behavior - that is different from the standard. Use fgets() instead. - - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - - Replaced all gets() calls with their fgets() counterparts. - gets() is evil (read insecure), and should not be used. - -Wed Jan 12 14:02:03 2005 Boris Kolpackov - - * ace/TMCast/Group.cpp: - * ace/TMCast/LinkListener.hpp: Called different version of - ACE_OS::thr_join which happens to be supported on Win32. Thanks - to Huang Rui for reporting the - problem and helping in narrowing it down. - -Tue Jan 11 23:16:35 2005 Ossama Othman - - * configure.ac: - - Added test for existence of `/dev/poll' device file. If that - file exists and is readable define the "ACE_HAS_DEV_POLL" - preprocessor symbol. - - * m4/config_h.m4: - - Minor preprocessor symbol documentation fixes. - -Tue Jan 11 22:32:47 2005 Ossama Othman - - * ace/Dev_Poll_Reactor.cpp (remove_handler_i): - - Release the lock during the "close" upcall. Fixes a deadlock - that occurred when cancelling a timer during removal of an event - handler from the reactor. Thanks to Gao Xianchao for reporting the problem and confirming that - this change fixes the problem. - -Wed Jan 12 00:12:03 2005 Balachandran Natarajan - - * ace/OS_NS_signal.inl: - - Fixed a compile error with the following checkin "Tue Jan 11 - 18:14:22 2005 Steve Huston ". Not sure - whether this is going to break aCC. The existing code broke - atleast g++ 3.3.4. Need to sync with Steve on this. - -Tue Jan 11 18:14:22 2005 Steve Huston - - * ace/OS_NS_signal.inl: Added "namespace ACE_OS" to this as some other - .inl files have done. This helped get HP aC++ around its confusion - of ACE_OS::sigaction() vs. sigaction(). Added "::" to the sigaction - type specifiers in the signature to resolve the confusion between - the sigaction type and ACE_OS::sigaction. - -Mon Jan 10 12:41:23 2005 Steve Huston - - * tests/Test_Output.cpp (close): If the output_file_ pointer is - already 0, don't flush/close/delete it. Logging_Strategy_Test - does a close before the end of the program, and this will - cause ACE_END_TEST to close it again and crash, at least on - some plaforms. - -Mon Jan 10 10:29:38 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Ensure that all generated files are created before attempting to - create the precompiled header binary. - - * bin/depgen.pl: - - Use canonpath on all paths provide by the user to ensure that - things get substituted properly in the generated dependency file. - -Mon Jan 10 16:10:12 UTC 2005 Johnny Willemsen - - * examples/Mem_Map/IO-tests/test_io.cpp: - Fixed compile errors - -Mon Jan 10 12:29:12 UTC 2005 Johnny Willemsen - - * apps/gperf/tests/test.cpp: - Fixed unicode link errors - -Mon Jan 10 10:28:12 UTC 2005 Johnny Willemsen - - * examples/Mem_Map/IO-tests/test_io.cpp: - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp: - * examples/IPC_SAP/TLI_SAP/ftp-client.cpp: - * examples/IPC_SAP/TLI_SAP/db-server.cpp: - * examples/IPC_SAP/TLI_SAP/db-client.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-server.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp: - * examples/Connection/non_blocking/test_lsock_acceptor.cpp: - * examples/Bounded_Packet_Relay/bpr_thread.cpp: - * examples/ASX/Message_Queue/bounded_buffer.cpp: - * examples/ASX/Message_Queue/priority_buffer.cpp: - * examples/ASX/CCM_App/SC_Client.cpp: - Fixed unicode link errors - -Mon Jan 10 08:41:12 UTC 2005 Johnny Willemsen - - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - Fixed compile error - -Sun Jan 9 19:49:19 2005 J.T. Conklin - - * ACE-INSTALL.html: - - Updated to note that autoconf/automake build is available - in ACE only and ACE+TAO releases. - -Sun Jan 9 18:29:13 2005 J.T. Conklin - - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - * Kokyu/Makefile.am: - * protocols/ace/HTBP/Makefile.am: - - Generate pkg-config *.pc files from templates. - - * ACEXML/apps/svcconf/ACEXML_XML_Svc_Conf_Parser.pc.in: - * ACEXML/common/ACEXML.pc.in: - * ACEXML/parser/parser/ACEXML_Parser.pc.in: - * Kokyu/Kokyu.pc.in: - * protocols/ace/HTBP/ACE_HTBP.pc.in: - - New files, pkg-config *.pc templates. - -Sun Jan 9 17:53:12 UTC 2005 Johnny Willemsen - - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: - * examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: - Fixed unicode compile errors - -Sun Jan 9 17:49:12 UTC 2005 Johnny Willemsen - - * netsvcs/lib/Server_Logging_Handler_T.{h,cpp}: - Fixed unicode compile errors - -Sun Jan 9 12:47:12 UTC 2005 Johnny Willemsen - - * examples/IOStream/client/iostream_client.cpp: - * examples/IOStream/server/iostream_server.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp: - * examples/OS/process/process.cpp: - Fixed unicode link errors - -Sun Jan 9 12:37:12 UTC 2005 Johnny Willemsen - - * examples/Connection/non_blocking/test_lsock_connector.cpp: - * examples/Connection/non_blocking/test_spipe_acceptor.cpp: - * examples/Connection/non_blocking/test_spipe_connector.cpp: - * examples/Connection/non_blocking/test_tli_acceptor.cpp: - * examples/Connection/non_blocking/test_tli_connector.cpp: - Fixed unicode link errors - -Sun Jan 9 11:18:12 UTC 2005 Johnny Willemsen - - * tests/Unbounded_Set_Test.cpp: - Removed test for bug 1460, it is just not safe to remove the element - the iterator points to, always move the iterator first forward - and then remove the element. - -Sat Jan 8 14:50:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/server.mpb: - Removed this file, name is just too generic, use taoserver for - TAO servers that have taoexe and portableserver as base project - and server as exename - -Fri Jan 7 21:04:44 2005 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU: - - Added the required path settings for SSL. - -Fri Jan 7 18:23:19 2005 Steve Huston - - * configure.ac: Corrected the check for ACE_HAS_CONFLICTING_XTI_MACROS. - We're checking for a conflict of macros from other places. The - requirement for this macro originally came from HP-UX, and shows - as a "Future error" (aka a warning) from aC++. Simply having - the macros show up when the "wrong" header is included first isn't - a problem - it's the compiler complaining that they conflict. - -Fri Jan 7 19:36:12 UTC 2005 Johnny Willemsen - - * tests/tests.mpc: - Found that Unbounded_Set_Test was not listed, added this - - * tests/run_test.lst: - Removed Unbounded_Set_Test_Ex, but added Unbounded_Set_Test - -Fri Jan 7 15:04:12 UTC 2005 Johnny Willemsen - - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i: - Added include of OS_NS_unistd.h to fix compile errors in Solaris 10 - build. - -Fri Jan 7 08:39:40 2005 Chad Elliott - - * tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc: - * tests/HTBP/Send_Recv_Tests/SendRecv_Test.mpc: - - Added after += Test_Output to make sure that these projects aren't - built before the Test_Output library. - -Fri Jan 7 13:19:12 UTC 2005 Johnny Willemsen - - * ace/Unbounded_Set_Ex.{h,cpp,inl}: - * ace/ace.mpc: - * ace/Makefile.am: - Removed the ACE_Unbounded_Set_Ex. It gives the false idea - that the iterators can be used thread safe. If you used this, - use ACE_Unbounded_Set and handle thread safety in your own - code - - * ace/Node.{h,cpp}: - Removed deleted_, this was there for ACE_Unbounded_Set_Ex, which - is now removed. - - * tests/Unbounded_Set_Test_Ex.{h,cpp}: - * tests/Makefile.am: - * tests/tests.mpc: - Removed the ACE_Unbounded_Set_Ex test - -Fri Jan 7 11:38:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_math.inl: - Replaced ACE_OS:: before each method with namespace ACE_OS {}, - hopefully this fixes the compile warnings in the SuSE 8 fuzz builds. - Thanks to Steve Huston for this idea. - - * ace/config-vxworks5.x.h: - Removed ACE_HAS_NONCONST_RMDIR, rmdir has a const char* on VxWorks - - * ace/OS_NS_unistd.inl (rmdir): - Removed part with ACE_HAS_NONCONST_RMDIR, there are no config files - anymore that define this - - * ace/README: - Removed ACE_HAS_NONCONST_RMDIR - -Thu Jan 6 18:29:22 2005 Steve Huston - - * configure.ac: Added check for - ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS ( ~CLASS() ), - and made it the primary check since most compilers like this one. - If this one fails, then test for - ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR ( ~CLASS() ). Some - compilers don't like this one (such as IBM Visual Age C++) but - do like the first one. - - * m4/config_h.m4: Added ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS. - -Thu Jan 6 08:54:12 UTC 2005 Johnny Willemsen - - * examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp: - * examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp: - Added includes to fix compile errors in Solaris 10 build - -Wed Jan 5 14:06:03 2005 Chad Elliott - - * ace/config-aix-4.x.h: - * include/makeinclude/platform_aix_ibm.GNU: - - Visual Age 6 does not require #pragma implementation for template - cpp files and so for backward compatibility, set the - ACE_TEMPLATES_REQUIRE_PRAGMA macro if using Visual Age 5 or - earlier and ACE_TEMPLATES_REQUIRE_SOURCE for 6 and later. - -Wed Jan 5 13:03:23 2005 Jeff Parsons - - * ace/qt_reactor.mpb: - - Modified this file similarly to those in - - Wed Jan 5 09:25:49 2005 Jeff Parsons - - so that MPC regeneration will work correctly when qt=1. - -Wed Jan 5 17:46:12 UTC 2005 Johnny Willemsen - - * ace/Dev_Poll_Reactor.cpp: - Added include of ace/OS_NS_stropts.h to get ACE_OS::ioctl - -Wed Jan 5 09:25:49 2005 Jeff Parsons - - * ace/ace.mpc: - * ace/codecs.mpb: - * ace/filecache.mpb: - * ace/other.mpb: - * ace/svcconf.mpb: - * ace/token.mpb: - * ace/uuid.mpb: - - Removed the extra nested braces related to ACE_COMPONENTS - that create "subdirectories" in VC project files. In makefiles, - these "components" can be separately compiled but not linked, - so the feature is not used on any platform. In VC projects, - the extra level of folders makes source and header files - much harder to locate in the GUI environment. - -Wed Jan 5 14:34:12 UTC 2005 Johnny Willemsen - - * ace/Dev_Poll_Reactor.cpp: - Always include OS_NS_fcntl.h and OS_NS_unistd.h - -Wed Jan 5 14:28:12 UTC 2005 Johnny Willemsen - - * ace/RMCast/RMCast.{h,cpp,i}: - * ace/RMCast/RMCast_Worker.{h,cpp,i}: - * ace/RMCast/RMCast_Module_Factory.{h,cpp,i}: - * ace/RMCast/RMCast_Reassembly.{h,cpp,i}: - Removed i file, update h/cpp - - * ace/RMCast/*.cpp: - Updated module name to RMCast in ACE_RCSID tag - - * ace/RMCast/Makefile.am: - Updated - -Wed Jan 5 13:21:12 UTC 2005 Johnny Willemsen - - * bin/fuzz.pl: - Added zip files to the noncvs files that shouldn't be in the repo. - Added a new check that tests for inline files just containing empty - lines and c-style comments. These files shouldn't be in the repo - and need to get removed. There is an exclusion for TAO_IDL generated - files, we don't have an option yet to suppress the generation of - empty inline files so, we allow them for the time being. Thanks to - Don Hinton, Carlos O'Ryan and Martin Corino for their answers - on my questions. - -Wed Jan 5 09:44:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_dirent.inl (readdir_r): - For readdir_r we also have multiple versions on Solaris. Changed - the detection which version to use. Tested on Solaris 8, hopefully - fixes also the problems on Solaris 10 - -Wed Jan 5 09:30:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.inl (sigwait): - On Solaris it seems we have two versions of sigwait, one with one - argument, another with two arguments. Added a check to detect which - one to use and implemented both variants. I tested this on Solaris 8 - and there it works, is should fix the compile problems in the - Solaris 10 x86 isis build - -Wed Jan 5 09:10:12 UTC 2005 Johnny Willemsen - - * ace/Dev_Poll_Reactor.cpp: - Fixed includes for Solaris x86 isis build - -Tue Jan 4 17:38:23 2005 J.T. Conklin - - * Makefile.am: - * Release: - * configure.ac: - - Updated for removal of ace-config.in and ace-config.1.in. - - * ace-config.in: - * ace-config.1.in: - - Removed. - -Tue Jan 4 18:19:11 2005 Steve Huston - - * ace/ACE_export.h: Adjusted ACE_NAMESPACE_INLINE_FUNCTION to include - the extern storage class when inlining for non-Windows. This resolves - some warnings on Solaris/Forte7, and is (hopefully!) the nit - behind the mysterious intermittent compile failures on HP-UX aCC. - -Tue Jan 4 17:37:29 2005 Steve Huston - - * ace/ACE.h: Corrected t_rcv(), t_rcv_n_i() to be extern ACE_Export, - not ACE_NAMESPACE_INLINE_FUNCTION - the bodies are defined in the - .cpp file, and not inline. - -Tue Jan 4 17:22:14 2005 Steve Huston - - * ace/Signal.h: - * ace/TLI.h: - * ace/TLI_Stream.h: Include "ace/config-lite.h" before testing any ACE - config macros. - -Tue Jan 4 09:56:46 2005 J.T. Conklin - - * ace/TMCast/TMCast.mpc: - * bin/MakeProjectCreator/config/tmcast.mpb: - - Changed to inherit from exceptions.mpb and threads.mpb - - * bin/MakeProjectCreator/exceptions.mpb: - * bin/MakeProjectCreator/threads.mpb: - - New files, MPC base projects that require exceptions and threads - respecitively. Projects can inherit from these instead of using - an explicit requires +=, which can result in duplicate entries. - -Tue Jan 4 13:40:12 UTC 2005 Johnny Willemsen - - * etc/create-jace-release: - Removed this file - -Tue Jan 4 13:33:12 UTC 2005 Johnny Willemsen - - * ace/CLASSIX/*: - * tests/CLASSIX/*: - Removed all these files, they are old and not maintained for - a long time - - * psosim/*: - * java/*: - Removed the contents of these directories. These files where not - shipped as part of the release and are not used anymore. - - This fixes bugzilla bug [2015]. - -Tue Jan 4 08:07:12 UTC 2005 Johnny Willemsen - - * tests/Multicast_Test.cpp: - * tests/Multicast_Test_IPV6.cpp: - Fixed unused argument warnings - -Tue Jan 4 04:25:44 2005 Balachandran Natarajan - - * ace/OS_NS_sys_stat.inl: - * ace/OS_NS_sys_utsname.inl: - - Fixes for SUN Studio 9 builds on x86 platform. New builds will - be setup soon to track this on a day-today basis. - -Mon Jan 3 16:53:59 2005 J.T. Conklin - - * examples/TMCast/Member/Makefile.am: - - Update for ACE prefix being added to TMCast library name. - -Mon Jan 3 17:42:39 2005 Steve Huston - - * apps/JAWS/server/server.mpc: - * apps/JAWS3jaws3/jaws3.mpc: Added "avoids += uses_wchar" because - there are some sources in here that won't work with wide-char. - Furthermore, it's not immediately clear what the needs of the code - are with respect to char width. These could probably be fixed, - but may require (or be greatly helped by) some improvement to - ACE_Process_Options::setenv() to accept narrow-char args and/or - adjust string formatting to account for wide-char input. - - * examples/Connection/non_blocking/CPP-acceptor.cpp: The - ACE_DEFAULT_SERVER_PORT_STR is already defined in terms of - ACE_TEXT, so it shouldn't be wrapped in ACE_TEXT. - -Mon Jan 3 14:38:01 2005 J.T. Conklin - - * netsvcs/lib/Makefile.am: - - Install header files. - -Mon Jan 3 14:34:57 2005 J.T. Conklin - - * ace/Makefile.am: - * ace/QoS/Makefile.am: - * ace/RMCast/Makefile.am: - * ace/SSL/Makefile.am: - * ace/TMCast/Makefile.am: - - Generate pkg-config *.pc files from templates. - - * ace/ACE.pc.in: - * ace/QoS/ACE_QoS.pc.in: - * ace/RMCast/ACE_RMCast.pc.in: - * ace/SSL/ACE_SSL.pc.in: - * ace/TMCast/ACE_TMCast.pc.in: - - New files, pkg-config *.pc templates. - -Mon Jan 3 19:16:12 UTC 2005 Johnny Willemsen - - * ace/Dev_Poll_Reactor.{h,cpp}: - Changed the return type of the notify method to int to match the - declaration in the base class. Also added argument names to the - header file to help doxygen generate the documentation. Thanks to - Alexander Libman for - reporting this. - - * ace/Reactor_Impl.h: - Added argument names to the notify method so that doxygen can - generate better documentation - -Mon Jan 3 13:05:46 2005 Chad Elliott - - * bin/MakeProjectCreator/config/core.mpb: - - Added a setting for the template variable 'install_headers' which - is currently only used by the automake project type. - Coincidentally, I changed the case of INSTALL_THIS_TARGET to - lowercase. I personally prefer lowercase and since MPC is case - insensitive with respect to variable names, it causes no harm to - the borland project type which also uses that template variable. - -Mon Jan 3 10:56:59 2005 J.T. Conklin - - * ace/TMCast/Makefile.am: - * ace/TMCast/TMCast.mpc: - * bin/MakeProjectCreator/config/tmcast.mpb: - - Add ACE prefix to TMCast library name. - -Mon Jan 3 14:35:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Previously explicit was the default for templates, changed this - so that we use explicit for version 4.2 and 5.3 and otherwise - we default to implicit. Explicit templates are not usable anymore - for TAO, maybe these older compilers work for ACE, but we don't - know. - -Mon Jan 3 08:02:33 2005 Douglas C. Schmidt - - * examples/TMCast/Member: - * TMCast/*: Changed the use of TMCast to ACE_TMCast. Thanks to - J.T. Conklin for pointing out the inconsistency. - -Mon Jan 3 09:55:12 UTC 2005 Johnny Willemsen - - * tests/Thread_Manager_Test.cpp: - * tests/Conn_Test.cpp: - Fixed compile errors with VxWorks and ACE_HAS_PTHREADS - -Mon Jan 3 09:48:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Added include of vxCpu.h to get the CPU defines from VxWorks - so that we can determine if we use pentium or not - -Sun Jan 2 13:20:12 UTC 2005 Johnny Willemsen - - * tests/Thread_Manager_Test.cpp: - Fixed compile errors with VxWorks and ACE_HAS_PTHREADS - - * examples/Misc/test_trace.cpp: - Replaced variable with name _ by trace, this fixes compile warning - with VxWorks. - -Sun Jan 2 13:16:12 UTC 2005 Johnny Willemsen - - * tests/Conn_Test.cpp: - Fixed compile errors with VxWorks and ACE_HAS_PTHREADS - -Sun Jan 2 12:52:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks5.x.h: - When ACE_HAS_PTHREADS is defined, include the VxWorks file - types/vxTypesOld.h, the header file sys/stat.h uses types from - this file and is not according to the spec. A TSR has been - filed to WindRiver to get this corrected, until the time being - this is the easiest fix because on more places we got problems - and we only now have one fix that is easily to remove - -Sun Jan 2 12:18:12 UTC 2005 Johnny Willemsen - - * ace/Thread_Manager.cpp: - VxWorks deliver also a pthread implementation. This can be used by - defined ACE_HAS_PTHREADS, but when this is set, we don't need to use - some special VxWorks code. - -Sun Jan 2 11:27:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_stdlib.cpp: - Fixed compile problem when ACE_LACKS_MKTEMP is defined - -Sun Jan 2 10:40:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_client.mpb: - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - Added ciaoversion as base project so that the version number - assigned to SOVERSION in the GNU makefiles is set to the CIAO - version and not to the TAO version - -Sun Jan 2 10:06:12 UTC 2005 Johnny Willemsen - - * tests/CDR_Array_Test.cpp: - * tests/CDR_File_Test.cpp: - * tests/Logging_Strategy_Test.cpp - Fixed deprecated conversion warnings - -Sun Jan 2 09:53:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Added, ACE_HAS_NONCONST_GETBY - -Sat Jan 1 22:53:41 2005 Balachandran Natarajan - - * bin/generate_rel_manpages: - - Fixed the doxygen revision number - - * bin/make_release: - - Fixed a typo. - -Sat Jan 1 18:46:12 UTC 2005 Johnny Willemsen - - Reverted the change below, the define doesn't seem to be the - correct one, it breaks on some platforms, have to investigate - this again - - * ace/OS_NS_stdlib.cpp: - Just include os_limits.h instead of limits directly - - * ace/os_include/os_limits.h: - Dependent on ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB include - limits or limits.h, just as we do for new - -Sat Jan 1 15:12:12 UTC 2005 Johnny Willemsen - - * ace/Service_Config.{h,cpp}: - Fixed compile problems in unicode builds - -Sat Jan 1 13:54:12 UTC 2005 Johnny Willemsen - - * ace/Service_Config.cpp: - Added include of OS_NS_unistd.h to get ACE_OS::getpid() - -Sat Jan 1 13:45:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Added needed flags for wxWindows - -Sat Jan 1 13:37:12 UTC 2005 Johnny Willemsen - - * docs/ACE-guidelines.html: - Updated that ACE_OS is a namespace, not a class - -Sat Jan 1 13:26:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Updated VxWorks instructions and some other small improvements - - * ace/Activation_Queue.h: - * ace/Active_Map_Manager.h: - * ace/Arg_Shifter.h: - * ace/Lib_Find.h: - * ace/Local_Memory_Pool.h: - * ace/Pipe.h: - * ace/Timer_List_T.h: - * ace/Timer_Hash_T.h: - Doxygen improvements - - * ace/Async_Acceptor.cpp: - * ace/WIN32_Asynch_IO.cpp: - Just check for msvc, not for _MSC_VER > 1020, that version is really - ancient and we always have a bigger version number - - * ace/config-all.h: - When ACE_HAS_VERBOSE_NOTSUP is defined, we use ACE_OS::fprintf, so - always include OS_NS_stdio.h, it doesn't work to include cstdio. This - fixes compile problems with VxWorks when ACE_HAS_VERBOSE_NOTSUP is - defined. Also there is no need to include vxWorks.h for VxWorks. - - * ace/Configuration.cpp (create_index): - Improved error message to make clear something went wrong - - * ace/Dirent.cpp: - * ace/OS_Memory.cpp: - * ace/OS_TLI.cpp: - Removed construction to silence the HP aCC compiler, empty cpp - files are used a lot in the ACE_OS files and there it is not needed, - so zap it here. - - * ace/MMAP_Memory_Pool.h: - Define private copy constructor and assignment operator for - ACE_MMAP_Memory_Pool_Options. This class contains pointers - it is not allowed to copy them, so prevent that. - - * ace/Naming_Context.cpp: - Replaced ACE cast macro with the C++ version. Just don't use argv[0] - without checking argc in the parse_args method. Under VxWorks it can - happen that argc and argv are 0, so reading argv[0] returns random - memory. When argc = 0, then we just don't have a program name - - * ace/OS_Errno.h: - Prevent copying of ACE_Errno_Guard - - * ace/UUID.cpp: - Added missing \n in several ACE_DEBUG statements - - * ace/OS_Log_Msg_Attributes.h: - Prevent copying of ACE_OS_Log_Msg_Attributes - - * ace/config-lite.h: - VxWorks deliver also a pthread implementation. This can be used by - defined ACE_HAS_PTHREADS, but when this is set, we don't need some - special VxWorks types, so changed some checks for VXWORKS to - VXWORKS && !defined ACE_HAS_PTHREADS - - * ace/OS_NS_stropts.inl: - * ace/OS_NS_arpa_inet.inl: - * ace/Service_Object.cpp: - * ace/String_Base.cpp: - * ace/OS_NS_stdlib.inl: - Replaced c-style cast with C++ cast - - * ace/OS_NS_stdio.cpp: - * ace/OS_NS_time.cpp: - * ace/Pipe.cpp: - * tests/Max_Default_Port_Test.cpp: - * tests/Time_Value_Test.cpp: - Replaced ACE cast macros with C++ casts - - * ace/Default_Constants.h: - Added ACE_LIB_TEXT to ACE_DEFAULT_SERVER_PORT_STR to fix compile - errors in Unicode builds - - * ace/OS_Memory.h: - Removed not needed check for borland - - * ace/OS_NS_sys_wait.inl: - Added ACE_LACKS_WAIT and ACE_LACKS_WAITPID, these defines are set - in the needed config files to determine if the OS has wait and - waitpid - - * ace/config-chorus.h: - Added ACE_LACKS_WAIT - - * ace/config-win32-common.h: - Added ACE_LACKS_WAIT, ACE_LACKS_SOCKETPAIR and ACE_LACKS_DUP2 - - * ace/OS_NS_signal.h: - Removed commented out typedefs - - * ace/OS_NS_sys_socket.inl: - Replaced C style cast with C++ const_cast and in socketpair - just only check for ACE_LACKS_SOCKETPAIR, this define is now - also set for win32 - - * ace/OS_NS_unistd.inl (dup2): - Check for ACE_LACKS_DUP2 instead for specific OS defines - - * ace/Time_Value.h: - Prevent copying of ACE_Countdown_Time - - * ace/config-g++-common.h: - Cleaned up this file, removed code for pre 2.8 versions of gcc, these - are already dropped with the x.4 release. Makes maintenance a lot - easier. - - * ace/config-vxworks5.x.h: - Added several defines, detect pentium or not on the CPU define that - is set. Make several defines dependent on ACE_HAS_PTHREADS, when this - is set, we want to use the pthread library of VxWorks. - - * ace/config-psosim-g++.h: - * ace/config-psos-tm.h: - * ace/config-psos-diab.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab-mips.h: - Added ACE_LACKS_WAIT, ACE_LACKS_WAITPID and ACE_LACKS_DUP2 - - * ace/config-integritySCA.h: - Added ACE_LACKS_WAIT, ACE_LACKS_WAITPID - - * ace/OS_NS_time.inl: - VxWorks defines asctime_r and ctime_r but with a 3rd size_t*, - this is not according to the spec, so a new define - ACE_HAS_SIZET_PTR_ASCTIME_R_AND_CTIME_R is added on which we - can determine to use this variant of asctime_r and ctime_r. - A support request to WindRiver has been make to get these - methods spec compliant in newer versions of VxWorks. - - * ace/Object_Manager_Base.{h,cpp}: - Replaced ACE cast macros with C++ casts, use unsigned int instaead - of u_int because u_int is not defined with VxWorks when using - the pthread support - - * ace/README: - Documented the new defines - - * ace/OS_NS_string.{h,cpp,inl}: - * ace/config-doxygen.h: - * configure.ac: - Removed ACE_LACKS_STRCHR and ACE_LACKS_STRCSPN and the related - code, these defines aren't set in any config file so the emulation - is not needed anymore - - * ace/Log_Msg.cpp: - When a buffer overflow has occured, just don't log anything anymore, - when for example a backend is used, the pointer to that backend - can also be corrupted. So, just only log when there is no overflow. - - * ace/SOCK_Dgram_Bcast.cpp: - Replaced ACE cast with C++ cast, also handle VxWorks specially and - when setsockopt fails, use ACE_ERROR_RETURN to return -1 and log an - error message so that the log explains what goes wrong. - - * ace/os_include/os_time.h: - VxWorks doesn't have 2 arg ctime_r and asctime_r - - * ace/os_include/os_signal.h: - Don't include sigLib.h with VxWorks when ACE_HAS_PTHREADS is defined - - * ace/Malloc_T.h: - Moved ACE_Malloc_Lock_Adapter_T to the end of this file to prevent - compile problems with VxWorks. - - * ace/OS_NS_sys_shm.cpp: - Removed some code that was already marked as not used. - - * ace/OS_NS_Thread.{h,cpp,inl}: - Removed old code that was guarded using ifdef 0. Don't use - ACE_OS_TRACE in thr_getspecific_native because this method is - used in the trace functionality and are tracing again in this - macro, so we get a stack overflow. Changed several checks for - VxWorks to include ACE_HAS_PTHREADS. Made several methods - smaller by combining includes and reducing duplicated code. - Replaced ACE casts with C++ casts. - - * ace/OS_NS_stdlib.cpp: - Just include os_limits.h instead of limits directly - - * ace/os_include/os_limits.h: - Dependent on ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB include - limits or limits.h, just as we do for new - - * ace/Unbounded_Set.{h,cpp}: - Doxygen update and return a Unbounded_Set& from the operator= - to allow chaining. - - * examples/Misc/test_trace.cpp: - Replaced variable with name _ by trace, this fixes compile warning - with VxWorks. - - * tests/UPIPE_SAP_Test.cpp: - * tests/Conn_Test.cpp: - Removed explicit template instantiations for Borland C++, we don't use - that. - - * tests/Cache_Map_Manager_Test.cpp: - * tests/Cached_Accept_Conn_Test.cpp: - * tests/Cached_Conn_Test.cpp: - * tests/CDR_Array_Test.cpp: - * tests/CDR_File_Test.cpp: - * tests/CDR_Test.cpp: - * tests/Hash_Map_Bucket_Iterator_Test.cpp: - * tests/Logging_Strategy_Test.cpp: - * tests/MEM_Stream_Test.cpp: - * tests/Multicast_Test.cpp: - * tests/Multicast_Test_IPV6.cpp: - * tests/SOCK_Dgram_Bcast_Test.cpp: - Replaced argv[0] with fixed program name, because argc could be zero - with VxWorks and then we get a crash when using argv[0]. - - * tests/Config_Test.cpp: - Logged an error if tests.reg can't be opened. - - * tests/FIFO_Test.cpp: - Only run this test when ACE_LACKS_MKFIFO is not defined, other - platforms then win32 also can lack this. Replaced ACE casts with - C++ casts. - - * tests/Log_Msg_Test.cpp: - Don't try to overflow the log buffer with VxWorks, this will result - in a crash and then the rest of this test is not done. - - * tests/MT_Reactor_Timer_Test.cpp: - Rewrote this test a little to use ACE_ERROR instead of ACE_ASSERT, - under VxWorks the log files are only written at the moment the - tests ends normally and with the ACE_ASSERT we just didn't get - a log file, with the ACE_ERROR we get one and can look better why - it fails under VxWorks. - - * tests/Signal_Test.cpp: - Replace ACE casts with C++ casts and changed the return types of the - thread functions to fix compile errors with VxWorks. - - * tests/run_test.lst: - Enabled some more tests for VxWorks. - - * tests/run_test.pl: - Added .out to the program names generated in the VxWorks script - -Sat Jan 1 00:00:00 2005 Douglas C. Schmidt - - * Happy New Year!!! - -Fri Dec 31 15:23:58 2004 J.T. Conklin - - * ace/Service_Config.cpp: - * ace/Service_Config.h: - - Added support for -p command line argument, which specifies - a filename to write the process id. - -Thu Dec 30 13:21:37 2004 Chris Cleeland - - * ACE version 5.4.3 released. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/ACE/ChangeLogs/ChangeLog-05b b/ACE/ChangeLogs/ChangeLog-05b deleted file mode 100644 index 15f3ed61bea..00000000000 --- a/ACE/ChangeLogs/ChangeLog-05b +++ /dev/null @@ -1,2815 +0,0 @@ -Fri Aug 5 13:19:33 2005 Simon McQueen - - * Release: - - Remove tagging of man/* files. - -Thu Aug 4 16:10:24 BST 2005 Donald Sharp - - * tests/Array_Map_Test.cpp: - Some compilers, like SunCC5.5 on Solaris, do not delete their - temporaries in expression scope. Placing the expressions in an - inner block ensures that the reference count is as expected - -Wed Aug 03 09:35:12 UTC 2005 Martin Corino - - * tests/Process_Manual_Event_Test.cpp: - Added additional tests for lacking PSHARED support. - -Sat Jul 30 10:38:12 UTC 2005 Johnny Willemsen - - * bin/tao_other_tests.lst: - Added missing semi colon for CosEvent basic test - -Fri Jul 29 14:25:12 2005 Steve Huston - - * ace/config-aix-5.x.h: Disable ACE_HAS_POSIX_SEM if the Posix - flags indicate its presence but _XOPEN_SOURCE is not >= 500. - - * tests/run_test.pl: When looking for sub-log files, match the program - name only at the start. Prevents finding, for example, - Process_Manual_Event_Test-child.log when looking for - Manual_Event_Test-*.log. - -Fri Jul 29 14:26:37 2005 Simon McQueen - - * bin/tao_other_tests.lst: - - Scheduled TAO/orbsvcs/tests/CosEvent/Basic/run_test.pl to be - run on all not minimum or single threaded builds. - -Fri Jul 29 09:28:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/Filecache.cpp: - * apps/JAWS2/JAWS/IO.cpp: - * apps/JAWS2/JAWS/IO_Handler.cpp: - Fixed compile errors when building with Borland C++. I have created - an MPC file but find it too risky to add that just before the - release, will do that when the release is out. - - * ace/Global_Macros.h: - When ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS is defined, define - a special version of ACE_DES_FREE_TEMPLATE3 and - ACE_DES_FREE_TEMPLATE4 just as we do for ACE_DES_FREE_TEMPLATE and - ACE_DES_FREE_TEMPLATE2. - - Thanks to Olivier Gu�in - for reporting this. - -Fri Jul 29 07:18:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_cray.GNU: - * include/makeinclude/platform_freebsd.GNU: - * include/makeinclude/platform_hpux.GNU: - * include/makeinclude/platform_hpux_gcc.GNU: - * include/makeinclude/platform_irix5.3_g++.GNU: - * include/makeinclude/platform_irix6.x_g++.GNU: - * include/makeinclude/platform_irix6.x_kcc.GNU: - * include/makeinclude/platform_linux_borland.GNU: - * include/makeinclude/platform_m88k.GNU: - * include/makeinclude/platform_mvs.GNU: - * include/makeinclude/platform_netbsd.GNU: - * include/makeinclude/platform_openbsd.GNU: - * include/makeinclude/platform_osf1_3.2_cxx.GNU: - * include/makeinclude/platform_osf1_4.x_kcc.GNU: - * include/makeinclude/platform_sco5.0.0-CC-fsu-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-mit-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-nothread.GNU: - * include/makeinclude/platform_tandem.GNU: - * include/makeinclude/platform_vxworks5.5.x.GNU: - * include/makeinclude/platform_win32_interix.GNU: - Updated location for libraries from $ACE_ROOT/ace to - $ACE_ROOT/lib. Thanks to Ian Zagorskih - for reporting this. - This fixes bugzilla 2202 - -Thu Jul 28 13:59:11 2005 Simon McQueen - - * bin/tao_other_tests.lst: - - Added !MINIMUM to Bug_1630_Regression test. It needs the IFR. - -Thu Jul 28 01:46:40 2005 Ossama Othman - - * ace/Cache_Map_Manager_T.cpp: - * ace/Cache_Map_Manager_T.inl: - * ace/MEM_SAP.cpp: - * ace/MEM_SAP.inl: - * ace/Map_T.cpp: - * ace/Map_T.inl: - * ace/Signal.cpp: - * ace/Signal.inl: - - Moved virtual destructors in exported classes out of line. - Addresses RTTI problems when the using g++ 4.0 hidden visibility - for inline functions feature. - -Thu Jul 28 00:28:46 2005 Ossama Othman - - * ace/Array_Map.cpp: - * ace/Array_Map.h: - * ace/Array_Map.inl: - - Added third equality functor template parameter. Defaults to - std::equal_to<> if unspecified. Necessary for cases where - operator==() is not suitable or available for a given key type. - - (erase): - - Explicitly destroy the tail element by assigning a default - constructed value_type instance to it. Prevents duplicate - instances of erase()d elements from existing. Some applications - may assume that erased elements no longer exist. This - essentially disables the lazy destruction behavior of - ACE_Array_Map. Note that this change also applies to the case - of a map of size 1. - - * ace/Refcountable.cpp: - * ace/Refcountable.inl: - - Moved ~ACE_Refcountable() virtual destructor out of line. - Addresses RTTI issues when g++ 4.0 hidden visibility of inlined - functions is enabled. - - * ace/config-lite.h: - - Disable use of ACE_RCSIDs by default. Most users never need to - determine the RCS ID of a given object file in an ACE-based - binary so optimize for the common case. Also reduces - footprint. - - * tests/Array_Map_Test.cpp: - - Added reference count test to verify that the number of - references/copies of a given data element drop by the same - amount as was increased during insertion. - -Wed Jul 27 16:33:46 2005 Gary Maxey - - * ace/config-tandem-nsk-mips-v3.h: - - Add #define for ACE_ANY_OPS_USE_NAMESPACE - -Mon Jul 25 19:25:12 UTC 2005 Johnny Willemsen - - * tests/Naming_Test.cpp: - Initialise pointer with 0 - -Mon Jul 25 15:31:12 UTC 2005 Johnny Willemsen - - * ace/Timer_Hash_T.cpp: - Initialise some pointers with 0 - - * ace/Refcountable.h: - Removed some empty doxygen tags - - * ace/Naming_Context.cpp: - Removed not needed ACE_UNUSED_ARG - -Sat Jul 23 16:36:36 2005 Jaiganesh B - - * bin/ciao_tests.lst: - - enabled running CIAO NodeApplicationTest again. - -Fri Jul 22 16:31:29 2005 Steve Huston - - * ace/Basic_Types.h: The change from: - Fri Jul 8 15:42:18 2005 Steve Huston - turned a previous warning into an error on newer g++ versions. - Instead, moved the __hi_lo struct definition out of the - anonymous union and renamed it to not be a compiler-private name - (with 2 leading underscores). This should resolve all the - issues. Thanks to Simon Massey for figuring this out. - -Fri Jul 22 11:13:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_server_dnc.mpb: - Add naming as base project, CIAO_DnC_Server has this - also - -Fri Jul 22 09:30:00 UTC 2005 Simon Massey - - * tests/run_test.lst: - Don't run Process_Manual_Event_Test on HPUX - -Thu Jul 21 10:41:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run Bug_2174_Regression in a minimum corba build - -Thu Jul 21 09:15:12 UTC 2005 Johnny Willemsen - - * ace/Atomic_Op_T.h: - Use deprecate tag for deprecated methods - -Thu Jul 21 09:24:58 2005 Simon McQueen - - * bin/ciao_tests.lst: - - Descheduled the 3 TAO/CIAO/DAnCE/tests/NodeApplicationTest - tests. They fail and there have been no responses to - requests that they be fixed. - -Wed Jul 20 06:45:00 2005 J.T. Conklin - - * bin/msvc_static_order.lst: - - Added Ds{Event,Notify}LogAdmin_{IDL,Skel,Serv} --- just to - be safe. - -Wed Jul 20 09:31:12 UTC 2005 Johnny Willemsen - - * protocols/ace/RMCast/Makefile.am: - Added new files - -Wed Jul 20 08:38:12 UTC 2005 Johnny Willemsen - - * bin/auto_run_tests.pl: - Check for result != 0 instead of result > 0. It seems that when - a run_test.pl has been added from a windows box that it sometimes - doesn't get execute permission and then the script can't be - executed on Unix systems. The return value is then -1 and this - wasn't detected by the scripts - -Wed Jul 20 07:55:12 UTC 2005 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added DsLogAdmin_IDL - -Tue Jul 19 14:24:47 2005 Gary Maxey - - * bin/PerlACE/Process_Unix.pm: - - Append command line arguments based on ACE_RUNTEST_ARGS - environment variable. - - * ace/config-tandem-nsk-mips-v3.h: - - Adjust platform specific macros - -Tue Jul 19 19:09:12 UTC 2005 Johnny Willemsen - - * ace/Log_Record.cpp: - Reverted part of the change below. Not all platforms have snprintf, - just use sprintf, all platforms have that. Fixes problems with - VxWorks - Thu Jul 14 12:23:12 UTC 2005 Johnny Willemsen - -Tue Jul 19 14:08:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new Register_Initial_References test. This will fail in - all builds, it seems we have some bugs to fix - -Tue Jul 19 12:37:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new recursive ORBInitializer test - -Tue Jul 19 11:49:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Enable Bug_2088, rewrote this test to test the current functionality - which matches the draft 3.1 spec. The Corba 3.0.3 seems to be not - usable. - -Tue Jul 19 10:28:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_fcntl.cpp: - * ace/OS_NS_sys_mman.inl: - When returning an ACE_HANDLE return ACE_INVALID_HANDLE instead - of -1 as error - -Mon Jul 18 18:21:20 2005 Steve Huston - - * NEWS: Added ACE_OS::closesocket() and Solaris 10 notes. - -Mon Jul 18 12:11:39 2005 J.T. Conklin - - * bin/msvc_static_order.lst: - - Add CosNaming_IDL, CosTrading_IDL, and CosNotification_IDL - projects to list. - -Mon Jul 18 11:42:09 2005 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Revived the old style where each GNUmakefile has individual - targets that contain the necessary dependencies. To utilize this - you must set the MPC_GNUACE_NAMED_TARGETS environment variable. - -Mon Jul 18 09:08:01 2005 Gary Maxey - - * bin/tao_orb_tests.lst: - - Added OBV/ValueBox the list of tests. This is a new test - to exercise boxed value types. - -Mon Jul 18 15:51:04 2005 Simon McQueen - - * ace/OS_NS_Thread.cpp: - - Removed unreachable statements identified by HP non stop - MIPS build warnings. - -Mon Jul 18 09:21:14 2005 Phil Mesnier - - * NEWS: - - Took out TAO-specific comments. - -Mon Jul 18 13:44:12 UTC 2005 Johnny Willemsen - - * ace/Mem_Map.cpp: - - Reverted the change below, it causes problems on AIX and Solaris. It - seems that on AIX we now use ACE_OS::open for shared memory, with the - change below we use ACE_OS::shm_open but this fails for strange - reasons and I have no idea what the problem is at this moment. So - revert this until Martin is back from his vacation - - Tue Jul 05 21:40:12 UTC 2005 Martin Corino - Changed to consistently use ACE_OS::shm_open/ACE_OS::shm_unlink. - -Mon Jul 18 13:31:12 UTC 2005 Johnny Willemsen - - * html/index.html: - Update link for DAnCE - -Mon Jul 18 15:02:58 2005 Boris Kolpackov - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Fragment.cpp: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Reassemble.cpp: - - Fixed a bunch of warnings. - -Mon Jul 18 08:00:35 2005 Phil Mesnier - - * NEWS: - - Added comments regarding TAG_ALTERNATE_IIOP_ADDRESS and - refactored codeset negotiation support. - -Mon Jul 18 10:25:12 UTC 2005 Johnny Willemsen - - * ace/MMAP_Memory_Pool.cpp (init_acquire): - Added class name to the error messages and print the method - name. - - * ace/SString.cpp: - Initialise pointers with 0 - -Mon Jul 18 11:33:23 2005 Boris Kolpackov - - * NEWS: - - Updated with the latest achievements in RMCast. - -Mon Jul 18 08:18:12 UTC 2005 Johnny Willemsen - - * bin/make_release: - Removed exclude of asnmp.mwc, this file has been zapped - -Fri Jul 15 16:35:37 2005 Phil Mesnier - - * bin/MakeProjectCreator/config/global.features: - * bin/MakeProjectCreator/config/negotiate_codesets.mpb: - * bin/MakeProjectCreator/config/taoclient.mpb: - * bin/MakeProjectCreator/config/taoserver.mpb: - - Added a new feature, negotiate_codesets. Disabled by default, - but when enabled in default.features or on the mpc/mwc command - line adds TAO_Codeset to the project's libs list. Dynamically - linked applications do not need to do anything, the libary will - be dynamically loaded if needed by the ORB. Static applications - must enable this feature. Merely enabling is not sufficient, to - actually make use of the codeset code, they must also include - tao/Codeset/Codeset.h somewhere in their application. Enabling - the mpc feature without including the header will not cause any - code to be statically linked. Enabling the feature with dynamic - applications will add a dependency on the TAO_Codeset library - regardless of the use of the code. - -Fri Jul 15 08:04:12 UTC 2005 Johnny Willemsen - - * bin/make_release: - Also exclude ASNMP/asnmp.mwc when generating the em3 project files. - Thanks to Sam Mesh for reporting - this. This fixes bugzilla bug 2190. - -Thu Jul 14 12:47:12 UTC 2005 Johnny Willemsen - - * ace/Log_Record.cpp: - Fixed compile error in previous committed caused when merging - changes from one system to another - -Thu Jul 14 12:23:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_stdio.cpp (sprintf wchar): - ULONG_MAX was passed, this caused vswprintf to return always -1 - because ULONG_MAX is of course really large on a 64bit system. - Pass 4096 instead, just as done with the other vswprintf in - OS_NS_stdio.inl. - - * ace/Log_Record.cpp: - Use snprintf because we know the sizes of the buffer, this way - we don't call the method above that caused problems on 64bit - systems. This fixes bugzilla 2176. - -Thu Jul 14 09:31:55 2005 Boris Kolpackov - - * protocols/ace/RMCast/Flow.cpp: - - Fixed fuzz error over math.h inclusion. - -Wed Jul 13 22:12:12 UTC 2005 Gan Deng - - * etc/ciao_DAnCE.doxygen - - Added "RECURSIVE=YES" so source files could be found correctly - Also added excluded path option for CIAO examples and tests. - -Wed Jul 13 17:10:45 2005 Phil Mesnier - - * bin/MakeProjectCreator/config/codeset.mpb: - - A new base project for use when creating codeset translators or - any other code that must depend on the new library, TAO_Codeset. - -Wed Jul 13 12:42:57 2005 Chad Elliott - - * bin/tao_other_tests.lst: - - Due to the way that the ORB is coded such that it does not require - the IFR_Client library at link time, the InterfaceRepo/Application - test can not run on static builds (even though the client has the - IFR_Client library linked in). - -Wed Jul 13 12:28:12 UTC 2005 Johnny Willemsen - - * tests/Process_Semaphore_Test.cpp: - Fixed compile error in previous change - -Wed Jul 13 07:56:12 UTC 2005 Johnny Willemsen - - * tests/Process_Semaphore_Test.cpp: - Only test timeouts when ACE_HAS_POSIX_SEM_TIMEOUT is defined - -Wed Jul 13 07:26:12 UTC 2005 Johnny Willemsen - - * ace/config-sunos5.5.h: - Added include of config-posix.h, let this file try to sort out - which posix parts Sun delivers - - * ace/config-sunos5.6.h: - Sun 5.6 incorrectly reports that it has shm_open - -Wed Jul 13 07:23:12 UTC 2005 Johnny Willemsen - - * ace/Process_Semaphore.cpp: - Removed commented out explicit template instantiations - - * ace/Containers_T.h: - Small doxygen fix - -Tue Jul 12 22:59:12 UTC 2005 Gan Deng - - * html/index.html: - - Fixed a typo which was introduced in this HTML file for - my earlier checkin. - -Tue Jul 12 16:17:38 2005 Douglas C. Schmidt t - - * Updated all the COPYING files to reflect the revised DOC - software open-source license. Thanks to Angela Ziegenhorn - for these modifications. - -Tue Jul 12 18:00:12 UTC 2005 Johnny Willemsen - - * ace/Thread_Manager.cpp (remove_thr_all): - Don't just delete each Thread_Descriptor, but call remove_thr - for each Thread_Descriptor, this method will add the descriptor - to the freelist and handle all other cleanup actions. Fixes - some invalid reads we found in some RTCorba tests - -Tue Jul 12 17:15:00 2005 Boris Kolpackov - - * protocols/ace/RMCast/Flow.cpp: - * protocols/ace/RMCast/Protocol.h: - - Added missing includes. - -Tue Jul 12 14:46:53 2005 Boris Kolpackov - - * protocols/ace/RMCast/Parameters.h: - - Forgot to add this file for Mon Jul 11 20:08:51 2005. - -Mon Jul 11 12:51:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-msvc-8.h: - Only define ACE_HAS_SIG_ATOMIC_T when not building for WinCE. - Thanks to Mitscher Dubreus for reporting - this. - -Mon Jul 11 12:18:12 UTC 2005 Johnny Willemsen - - * ace/Thread_Manager.inl: - Initialise pointer with 0 - -Mon Jul 11 20:08:51 2005 Boris Kolpackov - - * protocols/ace/RMCast/Flow.cpp: - * protocols/ace/RMCast/Flow.h: - - Implemented flow control stack element. - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Acknowledge.h: - * protocols/ace/RMCast/Fragment.cpp: - * protocols/ace/RMCast/Fragment.h: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Link.h: - * protocols/ace/RMCast/Protocol.h: - * protocols/ace/RMCast/Reassemble.cpp: - * protocols/ace/RMCast/Reassemble.h: - * protocols/ace/RMCast/Retransmit.cpp: - * protocols/ace/RMCast/Retransmit.h: - * protocols/ace/RMCast/Socket.cpp: - * protocols/ace/RMCast/Socket.h: - - Made protocol parameters configurable on a per-instance - basis. - - * protocols/examples/RMCast/Send_Msg/Protocol.h: - * protocols/examples/RMCast/Send_Msg/Receiver.cpp: - - Made receiver print throughput information. - -Mon Jul 11 08:41:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Doxygen improvements - -Mon Jul 11 08:10:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2174_Regression to the list of tests. It will fail - until the fix for this bug is in the archive - -Sun Jul 10 23:24:12 UTC 2005 Gan Deng - - * etc/DAnCE.doxygen: - - Added doxygen configuration file for DAnCE. - -Sat Jul 9 06:24:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Doxygen improvements - -Sat Jul 9 06:18:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.inl (thr_cancel): - Fixed VxWorks implementation. Thanks to Abhijit Sachdev for motivating this fix. - -Fri Jul 8 15:42:18 2005 Steve Huston - - * ace/Array_Map.h: Extended the range of Sun C++ compilers not - providing a fully standards-compliant STL to include C++ 5.7 - (Studio 10). To include a compliant STL would break backward - binary compatibility with C++ 5.0 - 5.6, so Sun won't (yet) - do it. They do, however, include Stlport 4 with C++ 5.7. You can - enable this by building ACE with stlport=1. - - * ace/Basic_Types.h (ACE_ULongLong): Added a name to the anonymous - struct declared in the anonymous union. Silences a warning from - Sun Studio 10. - Added __amd64 to the "little endian" machine indicators. Corrects - this check for Solaris 10 x86. - - * ace/config-sunos5.10.h: Noted that Studio 10 (C++ 5.7) works - as well. - - * include/makeinclude/platform_sunos5_sunc++.GNU: If -fast is required, - be sure it goes to the left of any -xarch options on the command - line, else it'll override -xarch. Also, added support for building - with stlport=1 on Studio 10 (C++ 5.7). - - * tests/CDR_Array_Test.cpp: When saying "Data OK", print type - name (%s), not truncated pointer (%d). - -Fri Jul 8 12:37:15 2005 Douglas C. Schmidt - - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp (subscribe): Added checks - to guard against cases where the qos_session is NULL. Thanks to - Dom Monteiro and Yamuna for - isolating the problem. - -Fri Jul 8 09:52:02 2005 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - - Utilize the MakeProjectBase to minimize the code in this module. - -Fri Jul 8 11:19:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.inl (thr_cancel): - Added implementation for VxWorks. - -Fri Jul 8 08:22:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_string.cpp: - Added include of OS_NS_stdio.h when ACE_LACKS_STRERROR is not - defined - -Thu Jul 7 18:11:29 2005 Steve Huston - - * configure.ac: - * ace/README: - * ace/config-WinCE.h: - * ace/config-mvs.h: - * ace/config-openvms.h: - * ace/config-psos-diab.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - * ace/config-rtems.h: - * ace/config-sunos5.7.h: - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-tandem-nsk-mips-v3.h: - * ace/config-vxworks5.x.h: - * ace/config-win32-interix.h: - * ace/config-win32-visualage.h: - * ace/OS_NS_string.{h cpp}: - * m4/config_h.m4: Removed all references to sys_nerr and - ACE_LACKS_SYS_NERR. These are old, hacky ways to check things - that can be done better (see below). - - * ace/OS_NS_string.{h cpp} (strerror): Check for an invalid errnum - value by checking the return value of strerror(); supply a - "Unknown error %d" message if it's bad, and set errno to EINVAL. - - * ace/Log_Msg.cpp (log): Use ACE_OS::strerror() and its new return - value to check for the need to try another way to format 'p' and - 'm' messages. Windows is now the only special case. - - * ace/Select_Reactor_Base.cpp: Include "Timer_Queue.h" instead of - "Timer_Heap.h" to get the appropriate definitions and inclusion of - other needed headers; in this case, Recursive_Thread_Mutex.h. Fixes - compile errors on Solaris 10. - - * include/makeinclude/platform_sunos5_sunc++.GNU: Changed -xarch= from - v9 to generic64 when using "buildbits=64" on Sun Studio 10 - (C++ 5.7). This works for both Sparc and x86 architectures. - -Thu Jul 7 17:24:21 2005 Simon McQueen - - * bin/tao_orb_tests.lst: - - Scheduled regression test for bugzilla #2183. - -Thu Jul 7 09:27:56 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Modified the template code to avoid generating lines that end in - spaces. - -Thu Jul 7 09:11:23 2005 Douglas C. Schmidt - - * ace/Message_Block.cpp: Changed the order of the #includes - to work around a problem when ACE is used with STLport. Thanks - to Alvin Lee for reporting this. This fixes another part of - bugid 2185. - -Tue Jul 5 22:05:19 2005 Douglas C. Schmidt - - * ace/DLL.cpp: Fixed a problem with ACE_DLL::close() where - the dll_name_ might not be deleted if dll_handle_ was 0. Thanks - to Alvin Lee for reporting this. This - fixes the first part of bugid 2185. - -Tue Jul 5 18:13:29 2005 Steve Huston - - * ACE-INSTALL.html: Removed Windows CE from the platforms Riverace - supports and added links to some Riverace pages. - -Tue Jul 05 21:40:12 UTC 2005 Martin Corino - - * ace/Mem_Map.cpp: - Changed to consistently use ACE_OS::shm_open/ACE_OS::shm_unlink. - -Tue Jul 05 21:15:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread{.h .inl .cpp}: - Fixes for compile problems in MACOS_X_Panther build. - - Outlined ACE_OS::cond_init() to gain some footprint reduction. - -Tue Jul 5 18:17:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_netdb.cpp (getmacaddress): Some layout fixes and - also fixed a handle leak in the Sun part. Thanks to - for reportint this. This fixes - bugid 1875 - -Tue Jul 5 08:30:07 2005 Douglas C. Schmidt - - * ace/OS_NS_netdb.cpp (getmacaddress): Call close() to avoid - a handle leak. Thanks to W.M. van den Boogaard for reporting this fix. This fixes - bugid 2182. - -Mon Jul 04 21:08:12 UTC 2005 Martin Corino - - * ace/INET_Addr.h: - * ace/INET_Addr.cpp: - Added support for specifying interface ids for IPv6 Link Local - addresses either as part of the address ('%') - separately through ACE_INET_Address::set_interface(). - Straightened out differences between Windows and Linux. - ACE_INET_Address::get_host_addr() now returns '%' formatted address when appropriate both on Windows - (natively) and Linux (ACE). Thanks to Srikanth Gopal - for reporting this problem. - -Mon Jul 4 04:21:53 2005 Ossama Othman - - * ace/Array_Map.h (ACE_Array_Map): - - Work around non-standard compliant Sun C++ - std::reverse_iterator<> template arguments. Define a typedef - specific to Sun C++ 5.5 or earlier. - -Sun Jul 3 14:59:25 2005 J.T. Conklin - - * examples/APG/Config/Makefile.am: - - Regenerate. - -Sun Jul 03 18:40:12 UTC 2005 Martin Corino - - * include/makeinclude/rules.lib.GNU: - Addition for VxWorks shared lib build. - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Some cleanup and changes for shared lib builds. - -Fri Jul 01 14:40:25 2005 Gary Maxey - - * ace/config-tandem-nsk-mips-v3.h: - * ace/config-tandem-nsk-mips-v2.h: - Defined platform specific format specifiers for 64 bit integers - -Fri Jul 1 12:52:12 UTC 2005 Johnny Willemsen - - * ace/config-doxygen.h: - Added ACE_HAS_IPV6 - -Fri Jul 1 11:25:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/interceptors.mpb - Don't use pi as base lib. - - * bin/MakeProjectCreator/config/iorinterceptor.mpb - * bin/MakeProjectCreator/config/loadbalancing.mpb - * bin/MakeProjectCreator/config/rtscheduling.mpb: - * bin/MakeProjectCreator/config/fault_tolerance.mpb - * bin/MakeProjectCreator/config/ftclientorb.mpb - Added pi and pi_server as base projects when needed - -Fri Jul 1 10:05:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Added support for StackReserveSize and StackCommitSize - template variables. - -Wed Jun 29 13:58:17 2005 Justin Michel - - * ace/OS_NS_Thread.cpp: - - Somehow my previous checkin had many other differences besides the - simple change that I made. I've remerged the corresponding code - from the previous version, but I have no idea how the change - happened. - -Wed Jun 29 18:36:12 UTC 2005 Johnny Willemsen - - * ace/Default_Constants.h: - Removed ACE_CONNECTOR_HANDLER_MAP_SIZE, it is not used at all - anywhere in the repo. Found this when solving a problem with - OpenVMS - -Wed Jun 29 12:33:18 2005 Steve Huston - - * examples/APG/Config/config.mpc: - * examples/APG/Config/Makefile.am: - * examples/APG/Config/HA_Status.cpp: Simplify greatly to build - HA_Status as a simple executable, not a DLL. Thanks to Gavin Yu - for noticing this problem. - - * examples/APG/Config/HA_Status.h: Removed. - - * THANKS: Added Gavin Yu to the Hall of Fame. - - * ace/Timer_Heap_T.cpp (dtor): When cleaning out the timer nodes, - free_node() before doing the deletion() upcall. Prevents a user's - handle_close() from doing a cancel_timer() and ripping the current - timer node out from under us and causing free_node() to assert(). - -Wed Jun 29 10:43:11 2005 Justin Michel - - * ace/OS_NS_Thread.cpp: - - Port the ACE_DISABLE_WIN32_INCREASE_PRIORITY feature from earlier - OCI versions of ACE, so that a user can disable the setting of a - thread to the realtime priority class. This prevents hard lockups - of Windows machines when running as an administrator, and allows - many tests to function when not running as an admin. - -Tue Jun 28 20:58:11 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/core.mpb: - - inherit from new install base project for backwards compatibility. - - * bin/MakeProjectCreator/config/conv_lib.mpb: - * bin/MakeProjectCreator/config/install.mpb: - * bin/MakeProjectCreator/config/install_bin.mpb: - * bin/MakeProjectCreator/config/install_headers.mpb: - * bin/MakeProjectCreator/config/install_lib.mpb: - - New new base projects to offer more flexibility on what parts of - a project are installed. install_bin, install_lib, and install_ - headers install binaries, libraries, and header files. install - installs everything. conv_lib is for "convenience libraries", a - set of objects that is packaged as a library for the developer's - convenience. For most builds it builds a shared library that is - installed without the cooresponding headers; but the automake - build uses automake's native convenience library support --- a - static library is built and linked into the executable(s). - -Tue Jun 28 08:41:03 2005 Ming Xiong - - * bin/MakeProjectCreator/config/global.features - - Added a new feature ziparchive which is needed by - CIAO/DAnCE/ComponentPackager - -Mon Jun 27 09:38:12 UTC 2005 Martin Corino - - * ace/README: - Added documentation for ACE_USES_FIFO_SEM, ACE_HAS_LINUX_NPTL - and ACE_HAS_POSIX_SEM_TIMEOUT. - -Mon Jun 27 22:22:00 2005 Ossama Othman - - * ace/Array_Map.h (ACE_Array_Map): - - Added missing "const_pointer" typedef/trait. - - * tests/Array_Map_Test.cpp (index_operator_test): - - Work around compiler / STL implementations that cannot handle - implicit conversions from iterator to const_iterator (e.g. due - to missing template constructor) by accessing the iterators - through a reference to const a Map. We don't strictly need a - const Map for this test but having one allows us to exercise - const iterators. - -Mon Jun 27 21:54:12 UTC 2005 Martin Corino - - * ace/config-linux-common.h: - Made inclusion of config-posix.h user selectable by defining - ACE_HAS_LINUX_NPTL rather than including it by default since - there are too many problems with that with the differences - in the various Linux distros. - Only with a Linux distro having the latest NPTL implemented - (SuSE 9.3) have I been able to effectively use POSIX macros. - -Mon Jun 27 20:00:12 UTC 2005 Johnny Willemsen - - * ace/Codecs.cpp: - * ace/Configuration.cpp: - * ace/DLL_Manager.cpp: - * ace/Multihomed_INET_Addr.cpp: - * ace/OS_NS_stdlib.cpp: - * ace/Service_Config.cpp: - Within the ACE lib ACE_LIB_TEXT must be used instead of ACE_TEXT - -Mon Jun 27 12:26:15 2005 Douglas C. Schmidt - - * ace/Malloc_T.h: Updated the ACE_Malloc_T documentation to - mention the limitations with find()/bind(). Thanks to Hanson Lu - for reporting this. - -Mon Jun 27 10:24:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/rtcosscheduling.mpb: - Added requires dummy_label. The RTCosScheduling library uses - a non compliant way to register its interceptors. This is - causing problems with the PI refactory so disable the building - of this lib until that has been fixed. See also bugzilla 2163. - -Mon Jun 27 08:21:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread.cpp: - Change to protect against race condition in sema based Event - implementation. - - * ace/OS_NS_Thread.inl: - Change in errno (EINTR) handling with FIFO based sema timedwait. - -Mon Jun 27 06:59:12 UTC 2005 Johnny Willemsen - - * ace/Message_Queue_T.{h,cpp}: - Initialise pointers with 0 and removed work around for Sun CC 5.1, - we don't support that compiler already for years - -Mon Jun 27 01:03:12 2005 Stoyan Paunov - - * bin/MakeProjectCreator/config/global.features: - * MPC/config/global.features: - * MPC/config/ZIP_Wrapper.mpb: - - Added a new feature to MPC regarding the ZIP_Wrappers used by - the Repository Manager. I added this feature to make sure the RM - would not be compiled unless the proper ZIP libraries are in place. - Please check the README in CIAO/DAnCE/new_RepositoryManager - - -Sun Jun 26 22:29:12 UTC 2005 Martin Corino - - * ace/config-posix.h: - Made test for POSIX_SEM TIMEOUTS more specific. - - * ace/config-linux-common.h: - Added check to fix detection of POSIX_SEM TIMEOUTS for Linux - >= 2.6 because of crippled POSIX macros (moved here from - config-posix.h). - Made implementation of FIFO based Semaphores for Linux < 2.6 - user selectable instead of default (default now back to - situation before I added FIFO based Semaphores). - - * ace/OS_NS_Thread{.h .cpp .inl}: - Added support for Process shared Events when Process shared - pthread mutexes are not supported but FIFO Sems are configured. - Fixed several issues concerning correct errno handling in - case of timeouts. - - * tests/run_test.lst: - Added missing Manual_Event_Test. - - * tests/Process_Manual_Event_Test.cpp: - * tests/Process_Semaphore_Test.cpp: - Improved protection against non-supporting builds. - - * tests/Dirent_Test.cpp: - Made this test a little less braindead so it does not recognize - FIFOs and PIPEs as directories anymore and tries chdir() on - them which is quite annoying. - -Sat Jun 25 01:42:22 2005 Ossama Othman - - * ace/Array_Map.h: - - MSVC++ 6's reverse_iterator adapter implementation is not - standard's compliant. Adjusted reverse_iterator template - parameters accordingly for this one case (i.e. _MSC_VER <= - 1200). - - * ace/Array_Map.cpp (insert): - - MSVC++ 6 doesn't like the "typename" qualification in the first - template argument to the std::pair<> return type. Removed it in - for the _MSC_VER <= 1200 case. - - * tests/Array_Map_Test.cpp: - - MSVC++ 6 doesn't pick up the const rbegin/rend() methods without - making the map object const, despite the fact the return value - is assigned to a const_reverse_iterator. Work around the - problem by casting the non-const map instance to a reference to - a const map when _MSC_VER <= 1200. - -Fri Jun 24 22:49:16 2005 J.T. Conklin - - * protocols/ace/RMCast/Makefile.am: - - Regenerated. - -Fri Jun 23 19:58:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread.inl: - Added include for non-inline builds. - -Fri Jun 23 19:38:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread.h: - Removed extra semi-colon. - -Fri Jun 23 19:36:12 UTC 2005 Martin Corino - - * tests/Process_Manual_Event_Test.cpp: - * tests/Process_Semaphore_Test.cpp: - Added protection for singlethread builds. - -Fri Jun 24 11:42:43 2005 Ossama Othman - - * ACE-INSTALL.html: - - Added notes about testing and developing autotool support, and - how to bootstrap that support into a workspace. - -Fri Jun 24 11:36:26 2005 Ossama Othman - - * ace/Array_Map.cpp: - * ace/Array_Map.inl: - - Added missing "typename" keyword before template parameter - dependent types. Addresses VC++ 7.1/8 and Sun CC++ compile-time - warnings and errors. - -Fri Jun 24 11:02:06 2005 Chad Elliott - - * bin/PerlACE/Process_Win32.pm: - - Fixed this module to work with the ACE_TEST_WINDOW environment - variable that I added some time back. - -Fri Jun 23 13:36:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread.cpp: - Fixed unused 'result' variable in ACE_OS::event_init(). - -Fri Jun 23 13:00:12 UTC 2005 Martin Corino - - * tests/Process_Manual_Event_Test.cpp: - * tests/Process_Semaphore_Test.cpp: - Fixes for compile errors on Linux 64bit. - -Fri Jun 23 10:20:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread.inl: - Made sure ETIME is always returned on timeouts of - ACE_OS::sema_timedwait and not ETIMEDOUT. - - * tests/Semaphore_Test.cpp: - Extended platform coverage of timeout tests. - - * tests/Auto_Event_Test.cpp: - * tests/Manual_Event_Test.cpp: - * tests/Process_Manual_Event_Test.cpp: - * tests/Process_Semaphore_Test.cpp: - * tests/run_test.lst: - * tests/tests.mpc: - Added new tests. - -Fri Jun 23 09:17:12 UTC 2005 Martin Corino - - * tests/INET_Addr_Test_IPV6.cpp: - * tests/Multihomed_INET_Addr_Test_IPV6.cpp: - * tests/SOCK_Send_Recv_Test_IPV6.cpp: - * tests/SOCK_Test_IPV6.cpp: - Fixed WCHAR compile problems. - -Fri Jun 23 08:49:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread{.h .cpp .inl}: - Extended ACE_OS::event_xxx implementation to support platforms - having either PThread support with Process Shared condition - variables or POSIX semaphores with named (process shared) - semaphore support or using the new FIFO based semaphores. - Fixed manual_reset implementation of condition based events - (event_pulse() did not work). - -Fri Jun 23 08:49:12 UTC 2005 Martin Corino - - * ace/config-aix-4.x.h: - Fixed problems by incorrectly reported ACE_HAS_POSIX_SEM_TIMEOUT - by config-posix.h. - -Fri Jun 24 07:20:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Removed extra semi-colon. - -Thu Jun 23 22:24:12 UTC 2005 Martin Corino - - * ace/config-linux-common.h: - Fixed typo (ACE_HAS_SHMOPEN should be ACE_HAS_SHM_OPEN). - -Thu Jun 23 17:14:39 2005 Steve Huston - - * ace/Dev_Poll_Reactor.cpp (schedule_timer, reset_timer_interval): - * ace/Select_Reactor_T.cpp (schedule_timer, reset_timer_interval): - * ace/WFMO_Reactor.inl (cancel_timer, schedule_timer, reset_timer_interval): - If timer_queue_ is 0, don't attempt to call through it. Instead, - return -1 with errno ESHUTDOWN for scheduling; return 0 for cancel. - -Thu Jun 23 12:10:16 2005 Ossama Othman - - * ace/Array_Map.h: - * ace/Array_Map.inl: - * ace/Array_Map.cpp: - - Map implementation that focuses on small footprint and fast - iteration. Search times are, however, linear (O(n)) meaning - that this map isn't suitable for large data sets that will be - searched in performance critical areas of code. Iteration over - large data sets, however, is faster than linked list-based maps, - for example, since spatial locality is maximized through the use - of contiguous arrays as the underlying storage. - - * ace/Makefile.am: - * ace/ace.mpc: - - Added new Array_Map.* source files. - - * tests/Array_Map_Test.cpp: - - Regression test for ACE_Array_Map. - - * tests/Makefile.am: - * tests/run_test.lst: - * tests/tests.mpc: - - Added new Array_Map_Test regression test. - -Thu Jun 23 07:49:43 2005 J.T. Conklin - - * ace/Logging_Strategy.cpp (init): - - Changed to not delete output stream when wipeout_logfile_ is - set, as that may result in a double delete when ownership of - the new stream is transferred to this->log_msg_. - - Changed to not delete existing output stream if a new one is - not been created. - - Thanks to Mark Callaghan and Ossama Othman for assistance. - -Thu Jun 23 12:34:12 UTC 2005 Martin Corino - - * ace/config-posix.h: - Fixed problems for single threading builds. - -Thu Jun 23 10:59:12 UTC 2005 Johnny Willemsen - - * man/Makefile.am: - * man/man3/Makefile.am: - Removed these files because are also not part of the release - -Wed Jun 22 20:29:39 2005 Ossama Othman - - * ace/OS_NS_Thread.h: - - Removed extra semi-colon. Fixes g++ 4.0 builds. - -Wed Jun 22 19:11:23 2005 Ossama Othman - - * THANKS: - - Added Mark Callaghan to the Hall of Fame. - - * ace/Log_Msg.cpp (msg_ostream): - - Close, do not delete, the file stream in the - ACE_LACKS_IOSTREAM_TOTALLY case, as is done in the - ~ACE_Log_Msg() destructor. Addresses memory management issues. - Thanks to J.T. Conklin and Mark Callaghan for pointing out the - problem and suggesting the fix. - - Do not reset the ostream_ and delete_ostream_ attributes if - the pointer to ostream_ is equal to the ostream argument passed - to this method. Prevents premature destruction of the ostream. - Thanks to Mark Callaghan for suggesting this fix. - -Wed Jun 22 19:55:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread{.h .inl}: - Oops, fixed some more wchar problems. - -Wed Jun 22 19:16:12 UTC 2005 Martin Corino - - * ace/OS_NS_sys_mman.inl: - * ace/OS_NS_Thread{.h .inl .cpp}: - * ace/INET_Addr.cpp: - * ace/SOCK_Dgram_Mcast.cpp: - Fixed wchar problems in arguments and variables. - - * ace/config-linux-common.h: - Undef ACE_HAS_SHMOPEN after having included config-posix.h as - there are some things to check out here before really using - ::shm_open()! - -Wed Jun 22 09:25:12 2005 Gary Maxey - - * ace/config-lite.h: - Added __TANDEM platform to ACE_UNUSED_ARG macro - -Wed Jun 22 12:24:12 UTC 2005 Martin Corino - - * ace/config-posix.h: - Added test to set new macro ACE_HAS_POSIX_SEM_TIMEOUT when supported. - - * ace/config-linux-common.h: - Added include for config-posix.h to test for more supported POSIX - functionality. - Added special test for Linux kernels < 2.6 because these falsely - report certain POSIX support while not having that in reality - (f.i. ACE_HAS_POSIX_SEM with ACE_HAS_POSIX_SEM_TIMEOUT). - - * ace/config-lite.h: - Added test to undef (new) macro ACE_USES_FIFO_SEM (see below) when - other macro settings invalidate this one. - - * ace/os_include/os_pthread.h: - Extended test to prevent definition of ACE_sema_t when ACE_USES_FIFO_SEM - is defined. - - * ace/OS_NS_Thread{.h .inl .cpp}: - Added new implementation of ACE_OS::sema_XXX methods based on FIFOs - (derived from W. Richard Stevens, UNIX Network Programming V2) - active when !ACE_HAS_POSIX_SEM && ACE_USES_FIFO_SEM. - Offshoot of customer request for process shareable solution for Linux - 2.4.xx kernels. - - Outlined most ACE_OS::mutex_XXX and ACE_OS::event_XXX methods resulting - in a) ~7 Kb footprint reduction (Linux 2.6) and b) lessened dependency - complexities allowing later introduction of another Event platform - emulation. - - -Wed Jun 22 08:51:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/build_core_exe.bor: - * include/makeinclude/build_core_library.bor: - Removed these files, not used anymore - -Wed Jun 22 08:39:12 UTC 2005 Johnny Willemsen - - * tests/SOCK_Test_IPv6.cpp: - Fixed compile errors on Linux when ACE_HAS_IPV6 has been defined - -Wed Jun 22 07:53:12 UTC 2005 Johnny Willemsen - - * ace/SOCK_Dgram_Mcast.cpp: - Fixed compile errors on Linux when ACE_HAS_IPV6 has been defined - - * include/makeinclude/compiler.bor: - No need anymore to include ace_flags.bor - - * include/makeinclude/ace_flags.bor: - Removed this file, not needed anymore - -Tue Jun 21 18:06:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Removed -a8 and -b from the compiler flags, this are the defaults - for the compiler, so no need to explicitly specify them. Thanks to - Chad about informing me that -b is the default. - -Tue Jun 21 07:30:58 2005 Chad Elliott - - * bin/MakeProjectCreator/config/global.mpb: - - Set libpaths to '.' since libout is set to '.' as well. - -Mon Jun 20 20:07:45 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Support for the bug fix where the 'postcommand' wouldn't be - applied if there was more than one output file per input file. - -Mon Jun 20 16:45:39 2005 Steve Huston - - * ace/Asynch_IO.cpp: Added explicit template instantiations for - ACE_Refcounted_Auto_Ptr. - -Mon Jun 20 11:36:21 2005 Steve Huston - - * ace/OS_NS_sys_socket.inl (closesocket): Removed the - ACE_OS::shutdown() call in an HP-UX block. Calling shutdown breaks - an often-used idiom in UNIX programming of forking a new process - to handle a connection and closing the handle in the parent. Doing - a shutdown() before close() initiates a TCP close even though there - are multiple handles to the same socket. Thanks to Doug Schmidt - and Howard Finer for the exchange that led to this change. This - reverts a change made earlier: - Thu Jan 1 17:56:31 2004 Steve Huston - -Mon Jun 20 09:46:24 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Fixed a long standing bug where the libpath set in a Define_Custom - was not utilized. - -Mon Jun 20 15:35:42 2005 Boris Kolpackov - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Fragment.cpp: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Protocol.h: - * protocols/ace/RMCast/Reassemble.cpp: - - Made code VC6-compatible. - -Mon Jun 20 11:38:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/bidir_giop.mpb: - Added pi as base project, this was implicitly in the past because - portableserver was based on pi. - -Mon Jun 20 10:46:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/portableserver.mpb: - The portableserver library is not dependent on pi anymore. - The new pi_server library is dependent. - - * bin/MakeProjectCreator/config/ftrtevent.mpb: - * bin/MakeProjectCreator/config/ftrteventchannel.mpb: - * bin/MakeProjectCreator/config/ifrservice.mpb: - These projects use functionality of pi_server, so added that - as base project - - * bin/MakeProjectCreator/config/rtportableserver.mpb: - * bin/MakeProjectCreator/config/messaging.mpb: - Added pi as base project, this was implicitly in the past because - portableserver was based on pi. - -Fri Jun 17 17:37:53 2005 Emre Turkay - - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - - Added header_outputext to clean up the generated header files on - request. - -Fri Jun 17 17:22:13 2005 Boris Kolpackov - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Acknowledge.h: - * protocols/ace/RMCast/Fragment.cpp: - * protocols/ace/RMCast/Fragment.h: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Protocol.cpp: - * protocols/ace/RMCast/Protocol.h: - * protocols/ace/RMCast/Reassemble.cpp: - * protocols/ace/RMCast/Reassemble.h: - * protocols/ace/RMCast/Retransmit.cpp: - * protocols/ace/RMCast/Retransmit.h: - * protocols/ace/RMCast/Simulator.h: - * protocols/ace/RMCast/Socket.cpp: - * protocols/ace/RMCast/Socket.h: - - Implemented message fragmentation. - - * protocols/examples/RMCast/Send_Msg/Protocol.h: - * protocols/tests/RMCast/Protocol.h: - * protocols/tests/RMCast/Sender.cpp: - - Changed to send messages that would require fragmentation. - -Fri Jun 17 09:14:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/pi_server.mpb: - New base project for pi_server. Will contain all needed portable - interceptor functionality specific for the server side - -Fri Jun 17 08:40:12 UTC 2005 Johnny Willemsen - - * ace/Object_Manager.cpp: - Removed comment about very old gcc version - - * ace/Service_Config.h: - Added new ACE_DYNAMIC_SERVICE_DIRECTIVE macro that makes it possible - to load a service using a process_directive call that works with the - normal service configurator and the xml based one. Thanks to - Lothar Werzinger for providing this - new macro. We will use it then in TAO to load the services on - demand. - -Thu Jun 16 07:38:57 2005 Douglas C. Schmidt - - * ace/SOCK_Stream.cpp (close): Removed the call to this->close_writer() - since that functionality was done by ACE_SOCK::close(), which - delegates to ACE_OS::closesocket(), which handles this - automatically. - - * ace/Process.cpp (running): Only try to "kill" a process if - the PID is valid. Thanks to Howard Finer for contributing this. - - * ace/Pipe.h (ACE_Pipe): Updated the documentation for this class - to clarify why it uses sockets on Windows. Thanks to Dave - Varnell for prompting this. - - * ace/INET_Addr.cpp (set): Changed the test of - - if (port_number < 0) - - to - - if (port_number == -1) - - to fix problems reported by Vemund Handeland - - -Wed Jun 15 12:36:04 MST 2005 Trevor Fields - - * bin/PerlACE/Run_Test.pm: - - Adding method to add a library path dynamically for the run test - scripts. - -Wed Jun 15 17:50:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - reverse the libs, this solves a lot of problems in our static builds. - -Wed Jun 15 07:46:16 2005 Chad Elliott - - * include/makeinclude/rules.bin.GNU: - - Resurrected rules.bin.GNU as it may be required by old - hand-written makefiles. - -Wed Jun 15 07:36:14 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/bor.mpd: - - Removed the use of uniq for libpaths. This was a work-around for - a bug in MPC which has been fixed. - -Wed Jun 15 11:30:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Removed reverse, with this no static initializers where called - -Wed Jun 15 09:48:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Use uniq for libpaths so that we don't generate things twice - -Wed Jun 15 09:06:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Reversed the order in which the libs are generated. This make sure - we first get the static created for ACE, then for TAO, etc. Fixes - the problems in the CBX static build - -Tue Jun 14 17:52:39 2005 Steve Huston - - * ace/Thread_Manager.h: Improved documentation for the task_list() - and task_all_list() methods. - -Tue Jun 14 14:19:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Updated Borland build instructions - -Tue Jun 14 12:35:12 UTC 2005 Johnny Willemsen - - * ace/Reactor_Timer_Interface.{h,cpp}: - Moved destructor to a new cpp file to fix Cygwin warnings - - * ace/ace.mpc: - * ace/Makefile.am: - Added Reactor_Timer_Interface.cpp - -Tue Jun 14 12:30:12 UTC 2005 Johnny Willemsen - - * ace/IO_Cntl_Msg.{h,cpp,inl}: - Moved methods implemented in the header file to a new inl file. - Fixes warnings in the Cygwin build - - * ace/ace.mpc: - * ace/Makefile.am: - Added IO_Cntl_Msg.cpp - -Tue Jun 14 11:05:12 UTC 2005 Johnny Willemsen - - * bin/auto_run_tests.pl: - Fixed typo in comment - -Tue Jun 14 08:48:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/interceptors.mpb: - * bin/MakeProjectCreator/config/portableserver.mpb: - * bin/MakeProjectCreator/config/rtcorba.mpb: - * bin/MakeProjectCreator/config/utils.mpb: - Added pi as base project - -Mon Jun 13 13:50:53 2005 Emre Turkay - - * bin/ciao_tests.lst: - - Added the node application tests to the autobuilds. - -Mon Jun 13 18:06:12 UTC 2005 Johnny Willemsen - - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - Fixed compile errors - -Mon Jun 13 13:57:12 UTC 2005 Johnny Willemsen - - * bin/make_release: - Don't do LF->CRLF conversion for xls files, that are Microsoft - Excel files. The RTCorba tests have such a file. - -Mon Jun 13 13:48:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/pi.mpb: - New base project for the new PI library we will add soon to the - archive. This PortableInterceptor libray will contain the - ORBInitializer Registry, Policy Factory Registry and ORBInitInfo - in the first version - -Mon Jun 13 12:52:12 UTC 2005 Johnny Willemsen - - * performance-tests/SCTP/hist.{h,cpp}: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - Moved the hist struct with associated methods to the ACE_SCTP - namespace. This should fix the last compile errors in Irix. - Thanks to Doug McCorkle for providing - the patches - -Mon Jun 13 10:41:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/kokyu_dsrt_scheduler_server.mpb: - * bin/MakeProjectCreator/config/kokyu_dsrt_scheduler.mpb: - Moved the codecfactory from the server to the normal project, - also the clients need it - -Sun Jun 12 14:53:33 2005 J.T. Conklin - - * ace/Logging_Strategy.cpp (parse_args): - - Update comment to make it clear value is being converted from - number of KB to number of bytes. - -Sun Jun 12 12:48:12 UTC 2005 Martin Corino - - * include/makeinclude/platform_g++_common.GNU: - Fixed problem with GXX version detection when default Make - shell is CMD.EXE and problems with different version reports - with non-standard GCC implementations (like VxWorks:-). - - * include/makeinclude/wrapper_macros.GNU: - Fixed problem with ACE version detection when default Make - shell is CMD.EXE. - - * include/makeinclude/rules.local.GNU: - Fixed problem with creation of .depend files when default Make - shell is CMD.EXE. - - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/platform_vxworks5.5.x.GNU: - Changed to implement support for creation of shared libs for - VxWorks targets. - -Sat Jun 11 11:31:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/kokyu_dsrt_scheduler_server.mpb: - Added codecfactory as base - -Fri Jun 10 18:33:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/rtcosscheduling.mpb: - Added missing base projexts. Thanks for JT for reporting this - -Fri Jun 10 16:03:12 UTC 2005 Martin Corino - - * tests/DLL_Test.cpp: - Updated to use new 'ACE_HAS_DYNAMIC_LINKING' macro. - -Fri Jun 10 16:00:12 UTC 2005 Martin Corino - - * ace/config-lite.h: - Introduced new macro 'ACE_HAS_DYNAMIC_LINKING' to enable more - generalized testing for platforms supporting dynamic linking - than 'ACE_HAS_SVR4_DYNAMIC_LINKING' supports (which excludes - WIN32, VxWorks and HPUX which *do* support dynamic linking). - -Fri Jun 10 15:53:12 UTC 2005 Martin Corino - - * ace/OS_main.h: - * ace/OS_main.cpp: - Changed implementation of 'ace_main' entrypoints for VxWorks to - support shared library builds without resulting in 'undefined symbol' - messages for 'ace_main_i'. - -Fri Jun 10 15:47:12 UTC 2005 Martin Corino - - * ace/OS_NS_dlfcn.inl: - Fixed VxWorks implementation of dlopen(). - -Fri Jun 10 07:55:32 2005 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added new test for Alternate IIOP addresses. - -Fri Jun 10 13:16:53 2005 Simon McQueen - - * ace/Reactor.cpp (register_handler): - - Backed out Thu Jun 9 11:12:39 2005 Steve Huston. - It was causing test failures on Linux. - -Fri Jun 10 06:43:25 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Interpret flag_overrides of the custom_types->dependent setting - as an array instead of a string. This makes things consistent - with non-overridden values of dependent. - - * bin/create_ace_build: - * bin/create_ace_build.pl: - - Inform users about using $MPC_ROOT/clone_build_tree.pl instead of - these scripts. - - * bin/depgen.pl: - - Simplified/collapsed duplicated code from the VMS additions. - -Thu Jun 9 18:38:12 UTC 2005 Johnny Willemsen - - * ace/Event.h: - Doxygen improvements - - * bin/MakeProjectCreator/config/codecfactory.mpb: - New base project for the new codecfactory for TAO - -Thu Jun 9 18:32:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added tao/tests/POA/Reference_Counting - -Thu Jun 9 11:47:31 2005 Steve Huston - - * tests/Pipe_Test.cpp: Fixed wide-char text issues. - -Thu Jun 9 11:12:39 2005 Steve Huston - - * ace/Reactor.cpp (register_handler): When registering for one or more - signals, set the event handler's reactor() pointer to the registered - reactor. Makes this behavior consistent with all other registration - types. - -Thu Jun 9 16:18:32 2005 Boris Kolpackov - - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Socket.cpp: - * protocols/ace/RMCast/Socket.h: - - Implemented timed recv() and size(). - -Thu Jun 9 13:16:53 2005 Simon McQueen - - * bin/tao_other_tests.lst: - - Added Bug_2137_Regression test. - -Thu Jun 9 09:31:28 2005 Simon McQueen - - * NEWS: - - Updated with late release note submissions. - -Wed Jun 08 08:43:59 2005 Simon McQueen - - * ACE version 5.4.6 released. - -Wed Jun 8 11:21:50 2005 Simon McQueen - - * NEWS: - - Updated with release note entries. - -Fri Jun 3 13:42:18 2005 Steve Huston - - * ace/String_Base.h: Removed ACE_INLINE from the operator+ functions. - The functions are defined in String_Base.cpp. Fixes compile errors - on Solaris autoconf build. - - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: Added missing - #include for ace/Null_Mutex.h and ace/Null_Condition.h since this - example uses ACE_Task. - - * Kokyu/DSRT_Sched_Queue_T.h: Added missing #include "ace/Null_Mutex.h" - -Thu Jun 2 13:58:29 2005 Steve Huston - - * ace/Local_Tokens.cpp (~ACE_TSS_TPQ_Entry): Replaced missing '}' from: - Mon May 30 18:10:56 2005 Ossama Othman - -Wed Jun 1 18:33:29 2005 Steve Huston - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: Reordered some - #include directives so files needed by ace/Connector.h are in before - ace/Connector.h. Fixes optimized autoconf build on AIX. - -Wed Jun 1 12:19:27 2005 Steve Huston - - * ace/OS_NS_signal.inl: Reverted: - Tue May 31 18:51:31 2005 Steve Huston - It broke builds on Linux and BSD, at least, with compile errors like: - `::' does not have a class or union named `sigaction' - I think this is probably an issue of including files in the wrong - order and it only trips up HP-UX, but I'm not sure. - -Wed Jun 1 07:10:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Removed bug 2088 test for the time being, the fix isn't the correct one - and now the test has wrong expectations - -Tue May 31 18:51:31 2005 Steve Huston - - * ace/OS_NS_signal.inl (sigaction): Added "::" qualifier to references - to "struct sigaction" to distinguish it from sigaction in the - ACE_OS namespace. This was tripping up HP aC++ in certain use cases. - -Tue May 31 18:46:29 2005 Steve Huston - - * ace/INET_Addr.cpp (set_address): When needing to plug in an - IPv4-mapped IPv6 address, avoid any possibility of compiler struct - member non-contiguous alignment. Use the ip6 address type and - plug the values in where they go. Thanks to Robert Iakobashvili - for this idea. - -Tue May 31 21:45:10 2005 Boris Kolpackov - - * NEWS: - - Updated RMCast-related information. - -Tue May 31 11:49:23 2005 Ossama Othman - - * ace/Free_List.inl: - * ace/Message_Queue_T.inl: - * ace/POSIX_CB_Proactor.inl: - * ace/SUN_Proactor.inl: - - Removed these empty inline files. - - * ace/Free_List.cpp: - * ace/Free_List.h: - * ace/Message_Queue_T.cpp: - * ace/Message_Queue_T.h: - * ace/POSIX_CB_Proactor.cpp: - * ace/POSIX_CB_Proactor.h: - * ace/SUN_Proactor.cpp: - * ace/SUN_Proactor.h: - - Removed include directives for removed inline files. - - * ace/Timer_Queue_Adapters.cpp (activate): - - Moved method definition out of ACE_HAS_DEFERRED_TIMER_COMMANDS - block. Fixes "unresolved symbol" link-time errors. - - * ace/Makefile.am (nobase_include_HEADERS): - - Removed newly removed inline file. - -Tue May 31 10:39:10 2005 Justin Michel - - * ace/String_Base.inl: - * ace/String_Base.cpp: - - Move operator+=() methods from .inl to .cpp in an effort to - reduce footprint. - -Mon May 30 18:10:56 2005 Ossama Othman - - * ace/Addr.cpp: - * ace/Addr.inl: - * ace/Event_Handler_T.cpp: - * ace/Event_Handler_T.inl: - * ace/Free_List.cpp: - * ace/Free_List.inl: - * ace/Hashable.cpp: - * ace/Hashable.inl: - * ace/IOStream_T.cpp: - * ace/IOStream_T.inl: - * ace/Local_Tokens.cpp: - * ace/Local_Tokens.inl: - * ace/Lock_Adapter_T.cpp: - * ace/Lock_Adapter_T.inl: - * ace/Malloc_T.cpp: - * ace/Malloc_T.inl: - * ace/Map_T.cpp: - * ace/Map_T.inl: - * ace/Message_Block.cpp: - * ace/Message_Block.inl: - * ace/Message_Queue.cpp: - * ace/Message_Queue.inl: - * ace/Message_Queue_T.cpp: - * ace/Message_Queue_T.inl: - * ace/POSIX_CB_Proactor.cpp: - * ace/POSIX_CB_Proactor.inl: - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Proactor.inl: - * ace/Refcounted_Auto_Ptr.h: - * ace/Refcounted_Auto_Ptr.inl: - * ace/Refcounted_Auto_Ptr.cpp: - * ace/Remote_Tokens.cpp: - * ace/Remote_Tokens.inl: - * ace/Reverse_Lock_T.cpp: - * ace/Reverse_Lock_T.inl: - * ace/SUN_Proactor.cpp: - * ace/SUN_Proactor.inl: - * ace/Shared_Memory_MM.cpp: - * ace/Shared_Memory_MM.inl: - * ace/Shared_Memory_SV.cpp: - * ace/Shared_Memory_SV.inl: - * ace/Strategies_T.cpp: - * ace/Strategies_T.inl: - * ace/Task.cpp: - * ace/Task.inl: - * ace/Thread_Manager.cpp: - * ace/Thread_Manager.inl: - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_Adapters.inl: - * ace/Timer_Queue_T.inl: - - Moved inlined virtual methods out of line. Addresses - RTTI-related problems when using g++ 4.0's - "-fvisibility-inlines-hidden" command line option. - - * ace/String_Base.cpp: - - Removed "ACE_INLINE" macros. They should not be used in this - out-of-line source file. - - * ace/Makefile.am: - * ace/ace.mpc: - - Added Refcounted_Auto_Ptr.cpp to the list of template files. - -Mon May 30 13:39:12 UTC 2005 Johnny Willemsen - - * ace/Task.cpp: - The Borland preview compiler is the only Borland compiler capable - of handling the reinterpret cast - -Mon May 30 13:14:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO/tests/Portable_Interceptors/Bug_2088/run_test.pl - -Mon May 30 09:34:12 UTC 2005 Martin Corino - - * include/makeinclude/platform_vxworks5.x_diab.GNU: - * include/makeinclude/platform_vxworks5.x_g++.GNU: - - Removed these files since these platform configurations are - not supported anymore with the current ACE/TAO releases. - The currently supported platform configuration is the - 'platform_vxworks5.5.x.GNU'. - -Mon May 30 09:19:12 UTC 2005 Johnny Willemsen - - * ace/Array_Base.cpp: - Initialise pointer with 0 - -Mon May 30 08:02:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_aix_ibm.GNU: - Don't use -qstaticinline in a 64bit build with Visual Age 6. When - this option is specified TAO crashes strangely. Seems a problem - in the Visual Age compiler in 64bit mode. - -Sun May 29 17:49:00 2005 J.T. Conklin - - * m4/compiler.m4: - - Disable the use of gcc's symbol visibility on MacOSX, since it - requires features of the ELF object file format not present in - Mach-O. Longer term we need a feature check that explicitly - tests for proper operation of symbol visibility instead of a - list of systems where it's disabled. - -Fri May 27 15:32:15 2005 Justin Michel - - * ace/ACE.h: - * ace/ACE.cpp: - - Added a new ACE::wild_match() function which is used to support the - TAO -ORBPreferredInterfaces option. wild_match was contributed by - Kevin Heifner . - - * ace/SOCK_SEQPACK_Association.h: - * ace/SOCK_SEQPACK_Connector.h: - * apps/drwho/Protocol_Manager.cpp: - * examples/APG/Reactor/Timers.cpp: - * tests/Network_Adapters_Test.cpp: - - These files #included config.h which isn't safe, because it - won't necessarilly pick up the correct symbols. For example, I - caught this by trying to build ACE on Windows with - __ACE_INLINE__ = 0. The files that #included config.h directly - saw that it was defined as 0, but changing them to #include - config-all.h instead, correctly saw that the symbol was - undefined. - -Fri May 27 10:26:34 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Interpret custom_types->dependent as an array instead of a string. - This is completely backward compatible since a string is just a - one element array in the template language. - -Fri May 27 12:22:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_aix_ibm.GNU: - When building for 64bit, make sure we enable the 64bit warnings - -Fri May 27 08:49:12 UTC 2005 Martin Corino - - * ace/OS_NS_Thread.inl: - - Fixed possible NULL-pointer assignment for VxWorks implementation - of ACE_OS::thr_sigsetmask(). - -Fri May 27 00:40:19 2005 Ossama Othman - - * bin/tao_orb_tests.lst: - - Added new recursive type Any insertion/extraction test to the - test suite. - -Thu May 26 17:07:34 2005 Justin Michel - - * ace/String_Base.inl: - * ace/String_Base.cpp: - - Move all non-trivial functions out of the .inl file. Hopefully this - will cause a net improvement to the footprint. - -Thu May 26 16:13:34 2005 Justin Michel - - * ace/config-win32-msvc-6.h: - - The standard library that comes with vc6 is pre-standard c++, - but it's close enough for many things. Enabling its use should - be more portable. This was done long ago for the OCI versions of - TAO (Since 1.2a), and was apparently overlooked until now. - -Thu May 26 15:22:10 2005 Emre Turkay - - * Release: - - Added the contrib directory into the Release script. - -Thu May 26 18:21:12 UTC 2005 Johnny Willemsen - - * ace/Thread_Manager.{h,cpp}: - Added thr_state method to ACE_Thread_Manager so that we are able - to retrieve the state of a certain thread. - -Thu May 26 07:39:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_cygwin32.GNU: - * include/makeinclude/platform_freebsd.GNU: - * include/makeinclude/platform_gnuwin32_common.GNU: - * include/makeinclude/platform_osf1_3.2_cxx.GNU: - * include/makeinclude/platform_osf1_4.x_cxx.GNU: - * include/makeinclude/platform_osf1_4.x_g++.GNU: - * include/makeinclude/platform_qnx_neutrino.GNU: - * include/makeinclude/platform_rtems.x_g++.GNU: - Simplified these files by using the ?= operator - -Wed May 25 15:51:03 2005 Steve Totten - - * ace/OS_NS_stdio.inl: - * ace/OS_NS_stdio.cpp: - * ace/OS_TLI.inl: - * ace/config-aix-4.x.h: - * ace/config-posix.h: - These files were using improper syntax to compare the value of - _XOPEN_SOURCE against a constant that caused compilation errors on - HP-UX 11.23 with HP aC++/ANSI C B3910B A.06.00. For example: - #if defined (_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) - was changed to: - #if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500) - - Thanks to Paul Koch for reporting - this problem and providing the solution. - -Wed May 25 20:08:12 UTC 2005 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added new RTEvent_Skel and RTEvent_Serv libraries and removed - RTOldEvent - -Tue May 24 20:09:28 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/time.mpb: - - Inherit from svc_utils.mpb. - -Tue May 24 20:46:28 2005 Olli Savia - - * ace/config-irix6.x-common.h: - * ace/config-linux-common.h: - Changed incorrect define ACE_USES_NEW_TERMIOS to - ACE_USES_NEW_TERMIOS_STRUCT. - -Tue May 24 09:31:42 2005 Chad Elliott - - * bin/MakeProjectCreator/config/acedefaults.mpb: - - Use $(ILIBMODIFIER) instead of $(LIBMODIFIER). - - * tests/Pipe_Test.cpp: - * tests/Process_Mutex_Test.cpp: - - Added missing ACE_TEXT () around option strings. This was causing - a very strange file to show up after the Process_Mutex_Test was - run in the Borland unicode build and the Pipe_Test didn't run at - all. - -Tue May 24 00:17:09 2005 Emre Turkay - - * bin/MakeProjectCreator/config/cidlc.mpb: - - Created a base project for cidlc & ccf project files. - -Tue May 24 07:58:09 2005 Olli Savia - - * ace/SSL/SSL_SOCK_Stream.h: - Added include "ace/os_include/os_stdio.h" to fix compile - problem on LynxOS. Thanks to Christine Ballard - for reporting the problem. - -Mon May 23 23:11:14 2005 Emre Turkay - - * contrib/utility/*: - - Added the utility library. - -Mon May 23 16:38:13 2005 Steve Huston - - * examples/Reactor/Proactor/post_completions.cpp: Made use of the - ACE_POSIX_SIG_Proactor-based test dependent on - ACE_HAS_POSIX_REALTIME_SIGNALS, not ACE_POSIX_SIG_PROACTOR. - ACE_POSIX_SIG_PROACTOR indicates a preference for that proactor - implementation when one is not specified; it's not a capability - indicator. The presence of the ACE_POSIX_SIG_Proactor implementation - is based on the ACE_HAS_POSIX_REALTIME_SIGNALS setting, so that's - what's used to decide whether to explicitly use - ACE_POSIX_SIG_Proactor. This fixes a build error on Mac OS X Tiger - with autoconfigure, as well as any other platform with AIO - support that doesn't declare a Proactor implementation preference. - Thanks to J.T. Conklin for raising this issue and working on testing - fixes. - -Mon May 23 14:52:19 2005 Justin Michel - - * ACEXML/tests/util/util.mpc: - - Add missing $ Id tag. - -Mon May 23 13:02:25 2005 Justin Michel - - * ace/String_Base.h: - * ace/String_Base.inl: - * ace/String_Base.cpp: - - Fixed some documentation bugs, and added some new features to - this class. New efficient overloads for string concatenation. - Fixed clear(1) to work as documented. Used a more optimal - string growth when concatenating strings. Performance - optimizations for string concatenation. - - * tests/SString_Test.cpp: - - Test the new string concatenation overloads. - - * bin/tao_other_tests.lst: - - Enabled new ImR tests, and grouped all ImR tests together. - -Mon May 23 12:26:19 2005 Steve Huston - - * ace/Thread.h: Doxygen-ized the join() comments. - -Mon May 23 13:18:12 UTC 2005 Johnny Willemsen - - * ace/Lib_Find.cpp: - Reverted change below, causes compile errors with some compilers - -Mon May 23 12:50:12 UTC 2005 Johnny Willemsen - - * ace/Lib_Find.cpp: - Small const fix - -Mon May 23 10:56:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/ftrtevent.mpb: - * bin/MakeProjectCreator/config/rtcorbaevent.mpb: - Use rtevent_serv as base project. These projects use some rtevent - implementation stuff so just the client side stubs are not enough. - - * bin/MakeProjectCreator/config/rteventexe.mpb: - Use rtevent_skel as base project - -Mon May 23 10:24:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/rtevent_serv.mpb: - * bin/MakeProjectCreator/config/rtevent_skel.mpb: - New files, the RTEvent service is being split in 3 libs so - we need some new base projects - -Mon May 23 05:47:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/rtoldevent.mpb: - Removed this file - - * bin/MakeProjectCreator/config/rteventlogadmin.mpb: - Removed rtoldevent as base project - -Sun May 22 12:01:46 2005 Olli Savia - - * ace/High_Res_Timer.cpp: - - Fixed a typo in comment. - -Fri May 20 21:11:07 2005 Ossama Othman - - * ace/DLL.cpp (~ACE_DLL): - - Explicitly delete() this->dll_name_. It is normally delete()d - in ACE_DLL::close(). However, that may not occur if full - ACE_DLL initialization is interruepted due to errors - (e.g. attempting to open a DSO/DLL that does not exist). Fixes - a memory leak. - - * ace/Log_Msg.cpp (msg_ostream): - - Delete the previously allocated ostream prior to setting the new - one, if necessary. Fixes a memory leak. - - * ace/Logging_Strategy.h (ACE_Logging_Strategy): - - Converted integer fields that are really booleans to be of type - "bool", and reordered fields to avoid excessive alignment - padding. Reduces size of this class by 8 bytes on most - platforms. - - * ace/Logging_Strategy.cpp: - - Initialize fields in base member initializer list to prevent - accidental use of uninitialized fields. - - Use C++ "true" and "false" instead of "1" and "0", respectively, - when setting boolean field values. - - * ace/SString.h (ACE_Auto_String_Free): - - Corrected documentation suggesting use of - ACE_Auto_Array_Ptr. The correct template argument is - "char", not "char *". - - * tests/CDR_Test.cpp: - * tests/Multicast_Test.cpp: - - Fixed memory leaks. - - * tests/Logging_Strategy_Test.cpp: - - Updated to be consistent with boolean field changes in - ACE_Logging_Strategy class. - - * tests/TP_Reactor_Test.cpp (delete_reactor): - - Reordered finalization code to prevent memory leak. - -Fri May 20 19:05:22 2005 Douglas C. Schmidt - - * ace/Thread.h (ACE_Thread): Updated the documentation of - ACE_Thread::join(). Thanks to Alan Balasuar - for motivating this fix. - -Sat May 21 18:30:12 UTC 2005 Johnny Willemsen - - * tests/HTBP/Reactor_Tests/server.cpp: - Fixed value computed is not used warning in GCC IA64 build - -Fri May 20 15:28:00 2005 Gary Maxey - - * ace/config-lite.h - - Added TANDEM platform for ACE_NOTREACHED macro. - -Thu May 19 19:10:30 2005 Douglas C. Schmidt - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp - (handle_output): - - Removed - - ACE_ASSERT (errno == EWOULDBLOCK); - - since errno may have been changed by this point. Thanks to Ro - Madhavan for reporting this. - -Thu May 19 18:50:23 2005 Steve Huston - - * ace/ICMP_Socket.{h cpp inl}: - * ace/Ping_Socket.{h cpp inl}: - * tests/Network_Adapters_Test.{cpp, h}: Moved ICMP_Socket and - Ping_Socket out of the ACE namespace and changed names to - ACE_ICMP_Socket and ACE_Ping_Socket, respectively. Also fixed up - some text strings with ACE_TEXT. - ACE_ICMP_Socket now does not check for root euid - allow the OS to - do whatever checks it requires/implements. - Improved implementation of ACE_Ping_Socket. - Thanks to Robert Iakobashvili for these improvements and changes. - -Thu May 19 15:59:38 2005 Steve Huston - - * ace/SOCK.h: Clarified doc on close() - it sets the object's - handle to ACE_INVALID_HANDLE. - -Thu May 19 08:58:48 2005 Ossama Othman - - * ace/INET_Addr.cpp: - * ace/INET_Addr.inl: - - Moved remaining virtual methods out of line. See "Wed May 18 - 16:19:32 2005 Ossama Othman " for - details. - -Thu May 19 15:21:00 UTC 2005 Jeff Parsons - - * bin/MakeProjectCreator/config/taoidl3toidl2defaults.mpb: - - Added line - - after += TAO_IDL3_TO_IDL2_EXE - - to the config file to make sure that the executable is built - before being used in a test, example or application. Thanks to - Chad Elliott for suggesting the change. - -Thu May 19 14:05:12 UTC 2005 Johnny Willemsen - - * netsvcs/clients/Logger/indirect_logging.cpp: - * netsvcs/lib/Client_Logging_Handler.cpp: - When we can't open the logger print out an error and exit with -1. - -Thu May 19 00:38:46 2005 Ossama Othman - - * config-g++-common.h: - * config-lite.h: - - Removed ACE_EXPORT_SINGLETON_{DECLARATION,DECLARE} macro - definitions. They do not provide the expected behavior in g++ - 4.0 configurations, as they do in VC++ configurations. - -Wed May 18 16:19:32 2005 Ossama Othman - - * ace/ATM_Addr.cpp: - * ace/ATM_Addr.inl: - * ace/DEV_Addr.cpp: - * ace/DEV_Addr.inl: - * ace/FILE_Addr.cpp: - * ace/FILE_Addr.inl: - * ace/INET_Addr.cpp: - * ace/INET_Addr.inl: - * ace/MEM_Addr.cpp: - * ace/MEM_Addr.inl: - * ace/SPIPE_Addr.cpp: - * ace/SPIPE_Addr.inl: - * ace/Service_Types.cpp: - * ace/Service_Types.inl: - * ace/UNIX_Addr.cpp: - * ace/UNIX_Addr.inl: - - Moved virtual method implementation out-of-line. Since the - classes to which they belong are exported, inlining them will - cause problems when attempting to perform a dynamic_cast<> in - binaries built with g++ 4.0's -fvisibility-inlines-hidden - command line option. - - * ace/Strategies_T.cpp (dump): - - Removed ACE_INLINE from this out of line method. - -Wed May 18 15:44:12 UTC 2005 Martin Corino - - * ace/Semaphore.cpp: - - Removed check for missing shm_open() since this causes problems - for platforms supporting POSIX_SEM (and thus not using - shm_open/open). Thanks to Raoul Gough for reporting this. - - * ace/config-openvms.h: - Added ACE_LACKS_UNNAMED_SEMAPHORE to compensate for above - change. - -Wed May 18 14:37:12 UTC 2005 Johnny Willemsen - - * examples/ASX/Message_Queue/buffer_stream.cpp: - Initialise all pointers with 0 - -Wed May 18 09:25:35 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/platform_gnuwin32_common.GNU: - - Fixed a problem that I introduced in a previous change. Resource - files were not being handled properly and the - platform_gnuwin32_common.GNU file was referencing $(VSHOBJS1) - which I removed. - - * include/makeinclude/all_in_one.GNU: - * include/makeinclude/wrapper_macros.GNU: - * include/makeinclude/rules.bin.GNU: - - Removed the file rules.bin.GNU and all references to it. - -Tue May 17 20:58:46 UTC 2005 Jeff Parsons - - * bin/MakeProjectCreator/config/taoidl3toidl2defaults.mpb: - - New file, a base project for the tao_idl3_to_idl2 executable, - so it can be executed automatically in a test or example. - -Tue May 17 18:31:12 UTC 2005 Johnny Willemsen - - * examples/ASX/Message_Queue/ASX_Message_Queue.mpc: - Don't build the buffer_stream exe when wchar is enabled, this - example expects just char. - -Tue May 17 09:32:01 2005 Ossama Othman - - * tests/Collection_Test.cpp: - - Avoid casting between a pointer to a function and a pointer to - an object. ISO C++ forbids such casts. Fixes a g++ 4.0 - warning. - -Tue May 17 07:50:07 2005 Justin Michel - - * ace/Cache_Map_Manager_T.cpp: - * ace/Cached_Connect_Strategy_T.cpp: - * ace/Caching_Strategies_T.cpp: - * 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/QoS/QoS_Manager.h: - - Fix incorrect use of #pragma once. - - * ace/Functor.h: - * ace/Functor.inl: - * ace/Global_Macros.h: - * ace/ace_wchar.h: - * ace/config-win32-msvc.h: - - Add a new ACE_LACKS_NATIVE_WCHAR_T macro, which can be used to - check whether a platform supports overloading on wchar_t without - conflict. The existing ACE_WSTRING_HAS_USHORT_SUPPORT was - incorrectly being used for two purposes. This setting should let - us enable native wchar_t support on VC7+. - - * ace/OS_NS_time.inl: - - Add a static_cast because time_t is 64bit on some platforms - where long is 32 bit. - - * ace/OS_NS_unistd.inl: - - Mask out the X_OK(6) bit for the amode parameter of the access() - function because this bit is illegal on Win32 and will assert. - - * ace/config-win32-msvc-7.h: - - Clarify comment on ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT. - - * ace/config-win32-msvc-8.h: - - Disable deprecation warning 4996, because the - _CRT_SECURE_NO_DEPRECATE macro doesn't appear to work - correctly. - - * ace/streams.h: - - Add missing "using std::ios_base". - -Mon May 16 21:39:30 2005 Ossama Othman - - * ace/Ping_Socket.h (Ping_Socket): - - Corrected class name in Doxygen documentation. - -Mon May 16 19:18:14 2005 J.T. Conklin - - * configure.ac: - * examples/Makefile.am: - * protocols/Makefile.am: - * protocols/examples/Makefile.am: - - Adapt autoconf build to adjust to relocation of RMCast examples. - -Mon May 16 15:58:29 2005 Steve Huston - - * ACE-INSTALL.html: Corrected the names of the Sun compilers supported. - Thanks to Nick Todd for - bringing this error to our attention. - - * THANKS: Added Nick Todd to the Hall of Fame. - -Mon May 16 12:33:29 2005 Ossama Othman - - * THANKS: - - Added Mario Di Giacomo to the Hall of Fame. - - * ace/Service_Templates.cpp: - - Include "ace/SString.h" to pull in ACE_TString declaration. - Thanks to Mario Di Giacomo for - reporting the problem. - - * tests/Cache_Map_Manager_Test.cpp (find_test_cache): - - Fixed "variable may be used uninitialized" warning. - -Mon May 16 19:13:12 UTC 2005 Johnny Willemsen - - * ace/Malloc.h: - Doxygen improvement - -Mon May 16 10:57:57 2005 J.T. Conklin - - * ace/Makefile.am: - - Reset DEFAULT_INCLUDES to address ambiguity between system's - signal.h and semaphore.h headers and ACE's Signal.h and - Semaphore.h headers on case insensitive file systems. - - This may be the best setting for all ACE/TAO Makefile.am's, - but this is the only one that requires it. - -Mon May 16 10:56:31 2005 J.T. Conklin - - * configure.ac: - - Add ACE_LD_SEARCH_PATH and ACE_DLL_SUFFIX settings for - darwin/MacOSX. - - Add ACE_HAS_NANOSLEEP feature test check. - -Mon May 16 10:49:10 2005 J.T. Conklin - - * ace/POSIX_CB_Proactor.h: - - Add defined(__APPLE__) to conditional wrapping sigval_t type - definition. - -Mon May 16 10:45:18 2005 J.T. Conklin - - * m4/ace.m4 (ACE_CONFIGURATION_OPTIONS): - - Changed *win* patterns to *win32* to avoid matching darwin, - the MacOSX kernel. - -Mon May 16 15:13:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_mingw32.GNU: - * include/makeinclude/platform_sco5.0.0-nothread.GNU: - * include/makeinclude/platform_sunos4_g++.GNU: - * include/makeinclude/platform_sunos5_sunc++.GNU: - * include/makeinclude/platform_unixware_g++.GNU: - * include/makeinclude/platform_unixware_udk.GNU: - * include/makeinclude/platform_win32_dmc.GNU: - * include/makeinclude/platform_win32_interix.GNU: - Simplified these files by using the ?= operator. This sets a value - only when it is not set yet. - -Mon May 16 09:24:29 2005 Chad Elliott - - * bin/tao_orb_tests.lst: - - Enabled the Exposed_Policies test on Linux. - - * bin/tao_other_tests.lst: - - Added a !NO_IFR configuration to each IFR related test. - The IFR_Service will not run on MacOS X unless TAO is built - statically due to gcc's in ability to deal with template - instantiated singletons correctly. - - Added a NO_LOADAVG configuration to avoid running the load average - based test on platforms that do not have support for obtaining the - load average from the system. - - Added a configuration for NO_MCAST for machines that do not have - multicast capabilities or the multicast implementation is broken. - - Added !STATIC to two LoadManager tests to support static builds on - Windows. - -Mon May 16 14:19:12 UTC 2005 Johnny Willemsen - - * ace/Active_Map_Manager.h: - * ace/Base_Thread_Adapter.h: - * ace/Process.h: - * ace/QtReactor.h: - Doxygen improvement - - * ace/QtReactor.cpp: - Fixed compile problems with msvc6 - - * examples/ASX/Message_Queue/buffer_stream.cpp: - Use ACE_SIZE_T_FORMAT_SPECIFIER to print out an size_t variable - with ACE_OS::sprintf - - * include/makeinclude/platform_hpux_aCC.GNU: - * include/makeinclude/platform_hpux_gcc.GNU: - * include/makeinclude/platform_irix6.x_g++.GNU: - * include/makeinclude/platform_irix6.x_sgic++.GNU: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/platform_linux_borland.GNU: - * include/makeinclude/platform_linux_cxx.GNU: - * include/makeinclude/platform_macosx.GNU: - Simplified these files by using the ?= operator. This sets a value - only when it is not set yet. Also set some variables using ?= so - that our users can easily define their own values. - - * include/makeinclude/platform_linux_icc.GNU: - Disable warning 1572 (floating point warning), correct name of Qt - library and only set several variables when they are not set yet - -Mon May 16 09:01:07 2005 Chad Elliott - - * tests/Conn_Test.cpp: - - Force this test to use threads (instead of fork) on MacOS X. - - * tests/FIFO_Test.cpp: - - Sleep 1 second (as is done on AIX and HP-UX) before attempting to - receive from the fifo. - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - - Set global_event_loop_thread_variable before activating the thread - that may use it. - - * tests/Naming_Test.cpp: - - Allow the user to determine the location of the context file by - the TMPDIR, TEMP and TMP environment variables. - - * tests/Pipe_Test.cpp: - * tests/Process_Mutex_Test.cpp: - - Use the value from argv[0] instead of hardcoding the exe name. - The hardcoded name does not work on Windows Release builds. - - * tests/Process_Strategy_Test.cpp: - - Use threads by default on HP-UX instead of fork. - Added a timeout for the recv() call in - Counting_Service::handle_input() for HP-UX only. - - * tests/run_test.lst: - - Added a configuration for NO_MCAST for machines that do not have - multicast capabilities or the multicast implementation is broken. - - * tests/SSL/aix_hack_for_main.cpp: - * tests/aix_hack_for_main.cpp: - - Removed these files. They are no longer needed due to MPC. - -Mon May 16 08:52:11 2005 Chad Elliott - - * bin/MakeProjectCreator/config/crosscompile.mpb: - - Added lib_warning, require_warning and avoid_warning to the list - of targets in the CROSS-COMPILE portion. - - * bin/MakeProjectCreator/config/rtcorbaevent.mpb: - - The RTCORBAEvent library requires the CosNaming library. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Support the MPC feature that will allow users to specify arbitrary - input file dependencies. - - Changed the OBJS setting to use $(notdir) only if the source file - contains ../ and added explicit rules for source files that are - located in subdirectories. - - * include/makeinclude/platform_macosx_panther.GNU: - - Explicitly default the threads variable to threads=1. This - was preventing ACE_TMCast from building. - Change the optimization option to -O2. -O3 was causing some - link problems in the IDL compiler. - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Allow users to override the inline and exceptions settings. - - * include/makeinclude/platform_vxworks5.5.x.GNU: - * include/makeinclude/rules.local.GNU: - - Provide better support for building for VxWorks on a Windows host - without Cygwin. - - * include/makeinclude/rules.lib.GNU: - - Changed the SHOBJS setting to be consistent with the OBJS setting. - Also, removed VLOBJS and SHOBJS1 which were redundant and set - exactly as SHOBJS was. - - * include/makeinclude/wrapper_macros.GNU: - - Set ec_typed_events to 1 by default. This matches the default for - MPC features. - - * bin/pch_cmd.pl: - - Removed this file. It is no longer necessary. - -Mon May 16 08:44:14 2005 Chad Elliott - - * ace/ACE.cpp: - * ace/config-irix6.x-sgic++.h: - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp-common.h: - * ace/config-sunos5.5.h: - - Put ACE_LIB_TEXT around all ACE_CC_NAME definitions to support - wide character builds on Solaris, QNX and IRIX. - - * ace/ACE_export.h: - - Added support for SunCC 5.6. - - * ace/Multihomed_INET_Addr.h: - * ace/Multihomed_INET_Addr.cpp: - - Added an explicit constructor that takes a const char* for - symmetry with the ACE_INET_Addr class. - - * ace/Naming_Context.cpp: - - Removed a bug workaround for aCC A.03.04. It is no longer a - problem to specify other mmap base addresses when running - 64-bit HP-UX applications. - - * ace/OS_NS_Thread.inl: - * ace/config-macosx-panther.h: - * ace/Sched_Params.cpp: - - MacOS X has pthread_getschedparam but has the ACE_LACKS_SETSCHED - macro defined. I have added a new macro, - ACE_HAS_PTHREAD_SCHEDPARAM, that can be defined to use - pthread_getschedparam and pthread_setschedparam even when - ACE_LACKS_SETSCHED is defined. - - - * ace/OS_NS_Thread.cpp: - - Fixed an issue that arose within the static builds on Windows. - The ACE_Thread_Mutex static data member of the - TSS_Cleanup_Instance class was being used (in the - TSS_Cleanup_Instance constructor) before it was statically - initialized. I have switched it (and the condition variable - associated with it) to a pointer that is allocated the first - time into the TSS_Cleanup_Instance constructor. - - * ace/Process_Manager.cpp: - - Committing a change from Justin Michel . - The close() method failed to unregister the reactor on Windows. - - * ace/ace.mpc: - - Removed an unnecessary 'install' setting. - - * ace/config-sunos5.10.h: - - SunOS 5.10 has scandir (ACE_HAS_SCANDIR). - - * ace/os_include/sys/os_socket.h: - - When using LKSCTP, include before - to avoid macro problems. - -Sun May 15 11:57:56 2005 Douglas C. Schmidt - - * ace/INET_Addr.cpp (set): Changed the test from - - if (port_number < 0) - - to - - if (port_number == -1) - - to work around problems when (port_number & 0x80 != 0). Thanks - to Vemund Handeland for reporting - this. - -Mon May 16 11:35:00 2005 Boris Kolpackov - - * protocols/tests/tests.mwc: - * protocols/tests/RMCast/Protocol.h: - * protocols/tests/RMCast/RMCast.mpc: - * protocols/tests/RMCast/Receiver.cpp: - * protocols/tests/RMCast/Sender.cpp: - * protocols/tests/RMCast/run_test.pl: - - Added regression test with loss and reordering simulator - for RMCast. - -Mon May 16 11:26:14 2005 Boris Kolpackov - - * examples/RMCast/Makefile.am: - * examples/RMCast/Send_Msg/Makefile.am: - * examples/RMCast/Send_Msg/Protocol.h: - * examples/RMCast/Send_Msg/README: - * examples/RMCast/Send_Msg/Receiver.cpp: - * examples/RMCast/Send_Msg/Send_Msg.mpc: - * examples/RMCast/Send_Msg/Sender.cpp: - - Removed as part of the moving all RMCast-related - code to protocols/. - -Mon May 16 11:22:09 2005 Boris Kolpackov - - * protocols/examples/example_base.mpb: - * protocols/examples/examples.mwc: - * protocols/examples/RMCast/Makefile.am: - * protocols/examples/RMCast/Send_Msg/Makefile.am: - * protocols/examples/RMCast/Send_Msg/Protocol.h: - * protocols/examples/RMCast/Send_Msg/README: - * protocols/examples/RMCast/Send_Msg/Receiver.cpp: - * protocols/examples/RMCast/Send_Msg/Send_Msg.mpc: - * protocols/examples/RMCast/Send_Msg/Sender.cpp: - - Copyied from examples/RMCast as part of the moving - all RMCast-related code to protocols/. - - -Mon May 16 11:05:26 2005 Boris Kolpackov - - * examples/RMCast/Send_Msg/Receiver.cpp: - * examples/RMCast/Send_Msg/Sender.cpp: - - Showcase new features (see below). - -Mon May 16 10:58:43 2005 Boris Kolpackov - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Link.h: - * protocols/ace/RMCast/Protocol.cpp: - * protocols/ace/RMCast/Protocol.h: - * protocols/ace/RMCast/Retransmit.cpp: - * protocols/ace/RMCast/Socket.cpp: - * protocols/ace/RMCast/Socket.h: - - Implemented message aging and unavailability reporting, - reactor-compatible interface, and message size query - interface. - - * protocols/ace/RMCast/README: - - Protocol documentation. - -Sat May 14 06:05:55 2005 Johnny Willemsen - - * ACE version 5.4.5 released. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/ACE/ChangeLogs/ChangeLog-05c b/ACE/ChangeLogs/ChangeLog-05c deleted file mode 100644 index 3dfeb0ad918..00000000000 --- a/ACE/ChangeLogs/ChangeLog-05c +++ /dev/null @@ -1,6715 +0,0 @@ -Fri Dec 30 16:39:46 2005 J.T. Conklin - - * ace/OS_NS_string.cpp: - * ace/OS_NS_string.h: - * ace/OS_NS_string.inl: - - Make ACE_OS::strdup(const char *) and ACE_OS::strdup(const - wchar_t *) inline. Provide ACE_OS::strdup_emulation(const - char *) and ACE_OS::strdup_emulation(const wchar_t *) for - systems that don't have a native (or type-safe equivalent) - strdup() and wcsdup() functions. - - * configure.ac: - - Replace scattered feature tests with calls to new - ACE_FUNC_STRCASECMP, ACE_FUNC_STRNCASECMP, ACE_FUNC_STRDUP, - ACE_FUNC_WCSCASECMP, ACE_FUNC_WCSNCASECMP, ACE_FUNC_WCSDUP - autoconf macros. - - * m4/ace_func.m4: - - New file. - - Feature tests for related features (e.g does function exist, - does it have a prototype, does it have const/non-const args, - etc.) are scattered all over configure.ac. This file is for - ACE_FUNC_FOO macros (similar to autoconf's own AC_FUNC_FOO), - which bring all these feature tests together in once place. - This clean-up makes the configure.ac easier to maintain at - the same time. - - Provide ACE_FUNC_STRCASECMP, ACE_FUNC_STRNCASECMP, - ACE_FUNC_STRDUP, ACE_FUNC_WCSCASECMP, ACE_FUNC_WCSNCASECMP, - ACE_FUNC_WCSDUP macros to start things off. - -Fri Dec 30 17:52:41 2005 Steve Huston - - * ace/Dev_Poll_Reactor.cpp (work_pending_i): Upon return from - epoll_wait(), don't blindly set start_pevents_ to events_. If - epoll_wait() returns -1, this erroneously sets start_pevents_ to - a value that may not make sense. - -Fri Dec 30 12:17:17 2005 J.T. Conklin - - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - Fixed compile error due to expected implicit conversion - -Fri Dec 30 15:11:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.1.GNU: - Added rtp and pthread flags, when rtp is set to 1 we are building - for real time process model, when pthread is set to 1 we are - building with the pthread support - -Fri Dec 30 15:02:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - Added workaround for incorrect swab include for vxworks 6.1 - -Fri Dec 30 15:00:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks6.1.h: - * ace/config-vxworks6.2.h: - Updated after first testing with the RTP model - -Fri Dec 30 14:50:12 UTC 2005 Johnny Willemsen - - * examples/C++NPv2/Client_Logging_Daemon.cpp: - Fixed compile error due to expected implicit conversion - -Fri Dec 30 14:41:12 UTC 2005 Johnny Willemsen - - * ace/Time_Value.{h,inl}: - Added assignment operator for a time_t - -Fri Dec 30 12:40:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_sys_time.inl: - Instead of return -1 return ACE_Time_Value(-1) - -Fri Dec 30 12:34:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2345_Regression - -Fri Dec 30 11:41:12 UTC 2005 Johnny Willemsen - - * examples/Reactor/Misc/pingpong.cpp: - * examples/Reactor/Misc/pingpong.cpp: - Updated because the constructors of ACE_Time_Value are now explicit - -Fri Dec 30 11:11:12 UTC 2005 Johnny Willemsen - - * apps/Gateway/Gateway/Connection_Handler.{h,cpp}: - * apps/Gateway/Gateway/Event_Channel.cpp: - * apps/Gateway/Gateway/Gateway.cpp: - * apps/Gateway/Gateway/Options.{h,cpp}: - * netsvcs/lib/TS_Clerk_Handler.{h,cpp}: - * examples/APG/Timers/Timers.cpp: - * examples/APG/Timers/Upcall.cpp: - Updated timeouts to be a long and updated some code because - the constructors of ACE_Time_Value are now explicit - -Fri Dec 30 10:47:12 UTC 2005 Johnny Willemsen - - * ace/Time_Value.{h,inl}: - Added += and -= for a time_t - - * examples/APG/ThreadManagement/Priorities.cpp: - * examples/APG/ThreadManagement/Signals2.cpp: - * examples/APG/ThreadManagement/Signals.cpp: - * examples/APG/ThreadManagement/Coop_Cancel.cpp: - Initialise pointers with 0 - -Fri Dec 30 10:47:12 UTC 2005 Johnny Willemsen - - * ace/Time_Value.h: - Made all single argument constructors explicit to prevent implicit - conversions. - -Fri Dec 30 10:44:12 UTC 2005 Johnny Willemsen - - * ace/Profile_Timer.cpp (elapsed_rusage): - Use ACE_Time_Value to calculate the time difference. The type - of time could be FILETIME on Windows and it is not safe to just - use the - operator on that. This did compile because the - ACE_Time_Value seems to be used because of implicit conversions - -Fri Dec 30 10:05:12 UTC 2005 Johnny Willemsen - - * tests/Reference_Counted_Event_Handler_Test.cpp: - Explicit create ACE_Time_Value's when scheduling timers - -Fri Dec 30 09:58:12 UTC 2005 Johnny Willemsen - - * ace/Proactor.cpp: - When setting a ACE_Time_Value to zero use ACE_Time_Value::zero - instead of 0 - -Thu Dec 29 11:55:39 2005 Steve Huston - - * ace/DLL.h: Further Doxygen-ized and expanded the documentation. - - * ace/config-macros.h: Add __HP_aCC to the compilers that need to have - unreachable statements suppressed to avoid a compile diagnostic. - - * ace/config-hpux-11.00.h: Add ACE_LACKS_PERFECT_MULTICAST_FILTERING - for HP-UX 11iv2 (11.23). - -Thu Dec 29 11:04:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - * include/makeinclude/platform_vxworks6.1.GNU: - Changed the way we set TAO_IDL - -Thu Dec 29 09:13:12 UTC 2005 Johnny Willemsen - - * ace/os_include/os_sched.h: - Another update to the way we detect if we have to define cpu_set_t, - older linux versions do have glibc2.3 but not this type. - -Wed Dec 28 11:47:17 2005 J.T. Conklin - - * m4/acinclude.m4: - - Remove some long commented-out macros that reimplemented core - autoconf functionality. - -Wed Dec 28 19:51:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks6.2.h: - Another update for the changes in 6.2 - -Wed Dec 28 19:25:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks6.2.h: - Removed some lacks macros which 6.2 should deliver according - to the documentation - -Wed Dec 28 11:21:55 2005 J.T. Conklin - - * configure.ac: - - Add ACE_LACKS_SCHED_H feature test. Use it in other tests - that #include . - -Wed Dec 28 11:08:18 2005 J.T. Conklin - - * m4/config_h.m4: - - Remove ACE_HAS_3_PARAM_WCSTOK autoconf header template. - - * configure.ac: - - Added description to AC_DEFINE for ACE_HAS_3_PARAM_WCSTOK. - -Wed Dec 28 19:00:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Rearranged some code to make the autoconf checks for set/get - affinity easier - -Wed Dec 28 10:56:42 2005 J.T. Conklin - - * configure.ac: - - Change ACE_HAS_CPU_SET_T feature test to look in . - - Add ACE_HAS_2_PARAM_SCHED_{GET,SET}AFFINITY feature tests. - -Wed Dec 28 16:08:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Introduced ACE_HAS_2_PARAM_SCHED_SETAFFINITY and - ACE_HAS_2_PARAM_SCHED_GETAFFINITY. Some glibc versions ship with - a two param version. - - * ace/config-linux-common.h: - Removed the setting for setaffinity/getaffinity based on - glibc version. Found that even with glibc 2.3 some systems had a - two param version, some 3. - -Wed Dec 28 12:22:12 UTC 2005 Johnny Willemsen - - * ace/os_include/os_sched.h: - Improved cpu_set_t typedef - -Wed Dec 28 11:32:12 UTC 2005 Johnny Willemsen - - * ace/Message_Block.h: - Doxygen improvements - -Wed Dec 28 10:24:12 UTC 2005 Johnny Willemsen - - * ace/config-linux-common.h: - Glicc 2.3 and newer also have sched_getaffinity and - sched_setaffinity. - -Wed Dec 28 10:11:12 UTC 2005 Johnny Willemsen - - * ace/config-linux-common.h: - Glibc 2.3 seems to have cpu_set_t - -Wed Dec 28 09:52:12 UTC 2005 Johnny Willemsen - - * ace/os_include/os_unistd.h: - Made some workarounds dependent on BCB version - - * ace/os_include/os_sched.h: - If ACE_HAS_CPU_SET_T is not defined then typedef cpu_set_t. - If your platforms has the type cpu_set_t, then set this define - in the config file - - * ace/OS_NS_Thread.{h,cpp}: - Added thr_set_affinity and thr_get_affinity to bind a thread - to a certain CPU. This is part of the extensions proposed in - bugzilla 2342. Thanks to Robert Iakobashvili - for these extensions. - - This will probably break some builds, where we have to add - ACE_HAS_CPU_SET_T to the config file. - - * ace/README: - Documented ACE_HAS_CPU_SET_T - -Tue Dec 27 19:21:19 2005 J.T. Conklin - - * m4/ace.m4: - - Add ACE_ENABLE_CDR_SWAP_ON_READ, ACE_ENABLE_CDR_SWAP_ON_WRITE, - ACE_ENABLE_CDR_ALIGNMENT, ACE_ENABLE_STRDUP_EMULATION, and - ACE_ENABLE_WCSDUP_EMULATION to support --enable options of - the same name. Allows users to configure these aspects of - ACE without editing the generated config.h header. - - * configure.ac: - - Fix typo in ACE_LACKS_MADVISE_PROTOTYPE feature test. - -Tue Dec 27 15:14:05 2005 J.T. Conklin - - * THANKS: Added Vladimir Panov to the Hall of Fame. - -Tue Dec 27 14:49:20 2005 J.T. Conklin - - * m4/config_h.m4: - - Remove ACE_HAS_STRDUP_EMULATION autoconf header template. - - * configure.ac: - - Changed strdup feature test to set ACE_LACKS_STRDUP instead - of ACE_HAS_STRDUP_EMULATION. - - Added (missing) ACE_LACKS_STRCHR feature test. - - * ace/README: - - Update ACE_HAS_STRDUP_EMULATION description. Added - ACE_HAS_WCSDUP_EMULATION, ACE_LACKS_STRCHR, ACE_LACKS_WCSCHR, - ACE_LACKS_STRDUP, and ACE_LACKS_WCSDUP descriptions. - - * ace/OS_Memory.h: - - Updated comment explaining that users may want to set - ACE_HAS_STRDUP_EMULATION if they need to control what memory - allocator is used to include ACE_HAS_WCSDUP_EMULATION. - - * ace/OS_NS_string.cpp: - - The ACE_HAS_STRDUP_EMULATION feature test macro was being used - for two purposes. One is for systems which don't have a native - strdup(). The other is for when the user needs to control/ - override what memory allocator is used. - - I've separated these options by adding a new ACE_LACKS_STRDUP - feature test macro. ACE's emulated strdup() implementation is - used if either ACE_LACK_STRDUP or ACE_HAS_STRDUP_EMULATION is - set. - - Added ACE_HAS_WCSDUP_EMULATION, similar to the above, for - symmetry with the wide character version. - -Tue Dec 27 14:17:56 2005 J.T. Conklin - - * m4/config_h.m4: - - Remove ACE_HAS_SET_T_ERRNO autoconf header template. - - * configure.ac: - - Change ACE_HAS_SET_T_ERRNO feature test to use "standard" - ACE_CHECK_HAS_FUNC() macro. - -Tue Dec 27 13:36:22 2005 J.T. Conklin - - * ace/os_include/sys/os_mman.h: - - Provide madvise prototype if ACE_LACKS_MADVISE_PROTOTYPE. - - * configure.ac: - - Added ACE_LACKS_MADVISE_PROTOTYPE feature test. - - This should fix bugzilla bug 2274. Thanks to Steve Williams - < steve at telxio dot com > for reporting this and providing - an initial patch. - -Tue Dec 27 13:29:27 2005 J.T. Conklin - - * apps/gperf/Makefile.am: - - Regenerated. - - * apps/gperf/gperf.mpc: - - New file. Adds rule for building/installing gperf.1 manpage. - Partially addresses bugzilla bug 2280. - -Tue Dec 27 12:45:37 2005 J.T. Conklin - - * configure.ac: - - Fix typo in last change. - -Tue Dec 27 12:41:00 2005 J.T. Conklin - - * configure.ac: - - Add ACE_HAS_CPU_SET_T, ACE_HAS_PTHREAD_GETAFINITY_NP, - ACE_HAS_PTHREAD_SETAFFINITY_NP, ACE_HAS_SCHED_GETAFFINITY, - and ACE_HAS_SCHED_SETAFFINITY feature tests for a patch - Johnny is preparing. - -Tue Dec 27 11:11:15 2005 J.T. Conklin - - * m4/config_h.m4: - - Remove ACE_LACKS_SYSTEM_H autoconf header template. - - * configure.ac: - - Remove ACE_LACKS_SYSTIME_H feature test, and the use of - ACE_LACKS_SYSTIME_H in other feature test macros. C.f. - - Tue Dec 27 14:50:12 UTC 2005 Johnny Willemsen - -Tue Dec 27 11:06:00 2005 J.T. Conklin - - * configure.ac: - - Add ACE_LACKS_ALARM feature test. - -Tue Dec 27 15:26:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks6.1.h: - * ace/config-vxworks6.2.h: - Removed ACE_LACKS_DUP2 - -Tue Dec 27 14:50:12 UTC 2005 Johnny Willemsen - - * ace/config-cygwin32.h: - * ace/config-dgux-4.11-epc.h: - * ace/config-dgux-4.x-ghs.h: - * ace/config-freebsd.h: - * ace/config-irix5.3-g++.h: - * ace/config-irix5.3-sgic++.h: - * ace/config-irix6.x-common.h: - * ace/config-linux-common.h: - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - * ace/config-mvs.h: - * ace/config-openbsd.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-sco-5.0.0-mit-pthread.h: - * ace/config-sco-5.0.0.h: - * ace/config-sunos4-g++.h: - * ace/config-sunos4-sun4.1.4.h: - * ace/config-sunos4-sun4.x.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-2.1.2-g++.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-win32-interix.h: - * ace/README: - Removed ACE_LACKS_SYSTIME_H, it is not used anymore in ACE - -Tue Dec 27 14:31:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks6.1.h: - * ace/config-vxworks6.2.h: - Added initial version of VxWorks 6.2 config file. This is updated - based on the documentation, no testing has been done - -Tue Dec 27 13:27:12 UTC 2005 Johnny Willemsen - - * ace/os_include/sys/os_select.h: - Only include selectLib for VxWorks when VxWorks doesn't deliver - sys/select.h - - * ace/OS_NS_unistd.inl: - Introduced ACE_LACKS_ALARM to make it easier to determine which - platform has alarm and which not - - * ace/config-chorus.h: - * ace/config-psos-diab.h: - * ace/config-win32-common.h: - Added ACE_LACKS_ALARM - - * ace/config-vxworks6.1.h: - Added some documentation about defines which we could drop for - VxWorks 6.2 according to the documentation - -Tue Dec 27 11:37:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks6.1.h: - VxWorks 6.1 has two models, kernel and real time process (rtp). - Based on the model some API's are not available. - -Tue Dec 27 09:42:12 UTC 2005 Johnny Willemsen - - * ace/Time_Value.{h,inl}: - Changed the first argument of the constructor accepting two - longs to time_t to fix 64bit conversion warnings - -Sun Dec 25 09:04:50 2005 Douglas C. Schmidt - - * Merry Christmas, 2005!!!! - -Fri Dec 23 13:16:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-common.h: - Added ACE_LACKS_SCHED_H, windows doesn't have sched.h - -Fri Dec 23 13:04:12 UTC 2005 Johnny Willemsen - - * ace/INET_Addr.inl: - Fixed warning about unreachable code when ipv6 is enabled - -Fri Dec 23 11:09:12 UTC 2005 Johnny Willemsen - - * ace/Sock_Connect.cpp: - Added missing defined - -Fri Dec 23 08:02:12 UTC 2005 Johnny Willemsen - - * tests/Buffer_Stream_Test.cpp: - Fixed ambiguity errors with vc6 - -Fri Dec 23 07:55:12 UTC 2005 Johnny Willemsen - - * ace/Time_Value.{h,inl}: - Removed the set with time_t and changed the set with two longs to - pass seconds as time_t. This should work on all platforms fine. - Thanks to JT for the ideas. - - * ace/System_Time.cpp: - Use the set with two arguments - -Thu Dec 22 18:33:29 2005 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: Change Visual Age 6 to use - -qtemplateregistry also. It's faster and doesn't require the same - strict source organization of templates that -qtempinc does. - Also stop using the aixshr hack to strip warnings out of the - linker output - it's not needed with -qtemplateregistry. - Try removing -qstaticinline - this was an attempt to stop some of - the duplicate symbol warnings that -qtempinc triggered; hopefully, - removing this will let the linker/compiler unify singleton instances. - -Thu Dec 22 14:35:12 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/rtcorbacommon.mpb: - - Add $(srcdir) relative include path. - -Thu Dec 22 14:06:07 2005 Chad Elliott - - * bin/tao_orb_tests.lst: - - Added Portable_Interceptors/Processing_Mode_Policy/Collocated and - Portable_Interceptors/Processing_Mode_Policy/Remote to the list. - -Thu Dec 22 19:09:12 UTC 2005 Johnny Willemsen - - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Misc/test_signals_1.cpp: - Fixed ambiguity warnings - - * ace/Time_Value.{h,cpp,inl}: - Don't pass time_t as reference to set, just by value, moved the - method to the inline file and set tv_usec to 0, thanks to JT - for this suggestions. - -Thu Dec 22 10:43:23 2005 Chad Elliott - - * bin/cle.pl: - * bin/ChangeLogEditor/CVSFileLocator.pm: - * bin/ChangeLogEditor/ChangeLogEntry.pm: - * bin/ChangeLogEditor/FileLocator.pm: - * bin/ChangeLogEditor/FileLocatorFactory.pm: - * bin/ChangeLogEditor/SVNFileLocator.pm: - - Added support for Subversion. It will automatically switch to - svn if it detects that it is being run in a directory - controlled by Subversion. - - * bin/DependencyGenerator/GNUObjectGenerator.pm: - * bin/DependencyGenerator/MakeObjectGenerator.pm: - - Switch to actual arrays inside the process() method and return the - reference. It is faster to push onto an array than an array - reference. - - * bin/MakeProjectCreator/config/cidlc.mpb: - - Added nmake to the specific section for compile_flags. - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Added .PHONY when creating named targets to avoid problems with - target executables that have the same name as the project. - - * bin/depgen.pl: - - Added a -i option to not print an error if no source files are - provided. - - * include/makeinclude/rules.local.GNU: - - Modified to pass the -i option to depgen.pl and to pass the -n - option to depgen.pl if inline=1. - -Thu Dec 22 12:37:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Use taskName to get the task name under VxWorks instead of directly - using the TCB struct - - * ace/Sock_Connect.cpp: - Use for VxWorks also the unix way of retrieving the interfaces, the - VxWorks specific way doesn't work with VxWorks 6.1 anymore - -Thu Dec 22 12:30:12 UTC 2005 Johnny Willemsen - - * ace/Time_Value.{h,cpp}: - Added set that accepts time_t, time_t is a 64bit type under - Windows64. - - * ace/System_Time.cpp: - Use the new Time_Value::set method that accepts time_t - -Thu Dec 22 12:22:12 UTC 2005 Johnny Willemsen - - * ace/WIN32_Proactor.cpp: - Added workarounds for vc6 which doesn't have ULONG_PTR - -Wed Dec 21 06:40:29 2005 Steve Huston - - * ace/Asynch_Acceptor.cpp (set_handle): Added return 0 to success case. - Also see: - Fri Dec 16 12:38:27 2005 Douglas C. Schmidt - -Thu Dec 22 06:12:39 2005 Steve Huston - - * ace/SSL/SSL_SOCK_Stream.cpp: Add missing #include "ace/OS_Memory.h" - to see ACE_NEW_RETURN. Also changed the type used with - ioctl (, FIONREAD, ) from u_long to ACE_UINT32 for portability. - - * apps/JAWS2/JAWS/Headers.cpp: Add missing - #include "ace/OS_NS_stdlib.h" to see ACE_OS::free(). - - * apps/JAWS2/JAWS/IO.cpp: Add missing #include "ace/OS_NS_string.h" - to see ACE_OS::memcpy(). Add missing #include "ace/Min_Max.h" to see - ACE_MIN. - - * apps/JAWS2/JAWS/Server.cpp: Add missing #include "ace/OS_NS_string.h" - to see ACE_OS::strcpy(). - - * apps/JAWS2/JAWS/Parse_Headers.cpp: Add missing - #include "ace/Log_Msg.h". - - * examples/APG/Containers/Map_Manager.cpp: - * examples/APG/Containers/Map_Manager_Specialization.cpp: Add missing - #include "ace/Log_Msg.h". - - * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp: Add missing - #include "ace/OS_NS_stdlib.h" for ACE_OS::malloc()/free(). - -Wed Dec 21 12:44:19 2005 J.T. Conklin - - * THANKS: Add Jonathan Sprinkle to the Hall of Fame. - - * configure.ac: - - Define ACE_LACKS_NAMED_POSIX_SEM if platform lacks any of - sem_open(), sem_close(), or sem_unlink() are undefined. This - should help automake builds on Cygwin, which does not provide - sem_unlink(). Thanks to Jonathan Sprinkle who provided the - failing config.log. - -Wed Dec 21 12:32:10 2005 J.T. Conklin - - * ace/Time_Value.inl: - - Use g++'s __builtin_constant_p() predicate to avoid calling - ::normalize() if both arguments to ACE_Time_Value::set(long, - long) are already "normalized". This avoids an unnecessary - method call when initializing ACE_Time_Value constants. - -Wed Dec 21 11:40:53 2005 J.T. Conklin - - * ace/OS_NS_Thread.cpp (ACE_OS::thr_create): - - If ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP and THR_SUSPENDED - is set, use pthread_attr_setcreatesuspend_np() and set thread - creation attributes so thread is started in "suspended" state. - - * configure.ac: - - Add feature test for ACE_HAS_PTHREAD_ATTR_SETCREATESUSPSEND_NP. - - * ace/README: - - Document ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP. - -Wed Dec 21 19:17:12 UTC 2005 Johnny Willemsen - - * netsvcs/clients/Naming/Client/Client_Test.cpp: - Replaced assert with ACE_ERROR - -Wed Dec 21 19:14:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/vc8nmake.mpb: - With vc8 and nmake we have to pass different compiler flags then - with vc6 and vc71. To make it easier to use, you can regenerate - the nmake files for vc8 using: -type nmake -base vc8nmake -recurse - This way you get the needed flags for vc8 - -Wed Dec 21 18:45:12 UTC 2005 Johnny Willemsen - - * ace/WFMO_Reactor.cpp: - * protocols/ace/HTBP/HTBP_Session.cpp: - Initialise pointer with 0 - - * include/makeinclude/platform_vxworks6.1.GNU: - * include/makeinclude/platform_vxworks5.5.x.GNU: - Use EXEEXT instead of .exe when setting TAO_IDL - -Wed Dec 21 18:42:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added bug_2328_regression - -Tue Dec 20 17:24:39 2005 Steve Huston - - * ace/config-aix-4.x.h: Define ACE_TEMPLATES_REQUIRE_SOURCE if - compiling with an IBM compiler and __TEMPINC__ is not defined. - This covers -qnotempinc and -qtemplateregistry cases (for XL C++ 7). - Define ACE_TEMPLATES_REQUIRE_PRAGMA if compiling with an IBM - compiler and -qtempinc was specified on the command line. This - unifies proper handling and covers both ACE+TAO builds and users' - inclusion of ACE+TAO in user projects regardless of which template - model chosen. - - * ace/Local_Name_Space.cpp: Add #include "ace/ACE.h" to see - ACE::hash_pjw(). - - * ace/Malloc_T.h: Add #include "ace/Malloc_Base.h" to see - ACE_Allocator. - - * ace/POSIX_CB_Proactor.cpp: Add #include "ace/OS_NS_sys_time.h" to see - ACE_OS::gettimeofday(). - - * ace/Sock_Connect.cpp: Removed hack at this compiler version. - - * ace/SString.inl: Add #include "ace/OS_NS_stdlib.h" to see - ACE_OS::free(). - - * ace/SString.cpp: Add #include "ace/OS_Memory.h" to see - ACE_NEW_RETURN. Change #include "ace/Malloc.h" to "ace/Malloc_T.h" - to pick up needed symbols. - - * include/makeinclude/platform_aix_ibm.GNU: Added compiler-specific - section for XL C++ 7. Also removed the explicit setting of - ACE_TEMPLATES_REQUIRE_[PRAGMA|SOURCE]. The proper one to use is - determined by whether or not -qtempinc is specified to the compiler. - Since this is knowable at compile time and what a user does may - not match what the ACE/TAO build does, proper selection of the - correct setting is moved to config-aix-4.x.h. - - * include/makeinclude/rules.local.GNU: Add templateregistry.* to the - file cleanup list. XL C/C++ 7 builds use -qtemplateregistry and - specify a name templateregistry.$(MAKEFILE). - -Tue Dec 20 20:24:39 2005 Douglas C. Schmidt - - * ace/UUID.cpp (ACE_Utils): Move the lock to the top of the - UUID_Generator::get_timestamp() method to avoid subtle race - conditions. Thanks to Howard Finer for - this fix. - -Fri Dec 16 12:38:27 2005 Douglas C. Schmidt - - * ace/Asynch_Acceptor.{h,cpp}: Added an int return value to - set_handle() so that errors can be propagated back to callers. - Thanks to Eyal Car for this fix. - This closes bugid 2261. - -Wed Dec 21 16:19:12 UTC 2005 Johnny Willemsen - - * ace/CDR_Base.cpp: - * ace/CDR_Stream.cpp: - Fixed 64bit conversion warnings from int to long - - * ace/config-vxworks6.1.h: - VxWorks 6.1 defines MAP as CPU type, if it is defined, - undef it so that we can use MAP as typedef throughout ACE/TAO - - * ace/Configuration_Import_Export.cpp: - Fixed 64bit conversion warning from u_int to u_long - - * ace/Malloc_T.cpp: - Added some checks for valid pointers before calling memset. - Thanks to Oh Yoon Sik for reporting - this. - - * ace/OS_NS_sys_stat.inl (mkdir): - Replaced c-style cast with C++ cast - - * ace/Basic_Types.h: - Removed ptr_arith_t, it is not used anymore - - * ace/OS_NS_time.cpp: - Fixed the month calculation for WinCE. - Thanks to Oh Yoon Sik for reporting - this. - - * ace/WIN32_Proactor.cpp: - The code for ACE_WIN64 should also be used for ACE_WIN32 so - zapped the ACE_WIN32 specific case - - * include/makeinclude/platform_linux_icc.GNU: - When optimizations are disabled pass -O2 to the compiler. Always - disable the floating point optimizations to get correct floats - in the IDL compiler. - - * examples/Reactor/Misc/test_demuxing.cpp: - Instead of an ACE_ASSERT, use ACE_ERROR_RETURN - - * tests/Basic_Types_Test.cpp: - Use ptr_diff_t instead of ptr_arith_t - - * tests/Buffer_Stream_Test.cpp: - Initialise pointers with 0 - - * etc/tao.doxygen: - Expand all emulated exception macros, that will improve our - documentation. I will recheck doxygen later and if things look - correct I will apply the same change to the other configuration - files. - - * bin/MakeProjectCreator/modules/BorlandProjectCreator.pm: - Updated because of changes to MPC. - -Tue Dec 20 08:02:03 2005 Simon McQueen - - * ACE version 5.4.8 released. - -Mon Dec 20 09:58:00 UTC 2005 Simon Massey - - * bin/make_release: - Removed the $0 from the "Generated by " comment inserted into - the Version.h files. - -Mon Dec 19 16:50:00 UTC 2005 Simon Massey - - * bin/make_release: - Removed the extra end of line inserted into the - Id: ChangeLog,v 4.9518 2005/12/20 10:03:35 bugzilla Exp - comment from all of the Version.h generators. (Around the same - line as before.) - -Mon Dec 19 14:40:00 UTC 2005 Simon Massey - - * bin/make_release: - Removed the #include "ace/Versioned_Namespace.h" generator - from line 643 (it wasn't adding the correct end of line - and concensous was that it was actually in error anyway). - -Thu Dec 15 08:08:31 2005 Steve Huston - - * ace/Asynch_IO.h: Clarified arguments and return value for - ACE_Asynch_Read_Stream::open. - -Thu Dec 15 08:06:29 2005 Steve Huston - - * ace/Service_Templates.cpp: Only #include headers if we need to - instantiate templates; i.e., if using either form of explicit - template instantiation. This avoids the sigaction issue with - HP aC++ A.03.56. - -Tue Dec 13 12:13:26 2005 Douglas C. Schmidt - - * COPYING: Updated this file to mention compliance issues wrt the - new "The Energy Policy Act of 2005". Thanks to Malcolm Spence - for providing this. - -Tue Dec 13 18:38:12 UTC 2005 Johnny Willemsen - - * etc/tao_cosnotification.doxygen: - Also parse the subdirectories below Notify and also add inline - files, the generated doxygen docu was not complete - -Tue Dec 13 00:54:04 2005 Ossama Othman - - * bin/MakeProjectCreator/config/tao_versioning_idl_defaults.mpb: - - New MPC base project containing necessary versioned namespace - related TAO_IDL flags for PIDL and IDL files in core TAO - libraries and TAO orbsvcs libraries. - -Mon Dec 12 15:31:50 2005 Ossama Othman - - * ace/ace_for_tao.mpc: - - Added "nmake" to the list of Windows-based build types that - should be considered when adding Windows-specific sources to the - ace_for_tao subset. - -Mon Dec 12 15:23:29 2005 Ossama Othman - - * tests/tests.mpc (UPIPE_SAP_Test): - - Disable this test in the ace_for_tao configuration. It depends - on features not found in the ace_for_tao subset. - -Mon Dec 12 14:15:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Only when we build without VCL support add _NO_VCL to the compiler - flags - -Mon Dec 12 13:01:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/vcl.mpb: - Added verbatim VCL=1 to this base project. This way the correct - startup objects are linked with the application when vcl is - used - -Sun Dec 11 18:03:05 2005 Ossama Othman - - * ace/UPIPE_Stream.h (MT_Stream): - - Moved this typedef out of the global namespace to the - ACE_UPIPE_Stream class. It is only used within this class. - Doing so also addresses global namespace pollution issues. - - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - - Reinstated local MT_Stream typedefs. The global namespace - pollution fix described above allows this. Fixes compile-time - error in single threaded builds. - -Thu Dec 8 07:20:25 2005 Ossama Othman - - * ace/Dynamic.h: - * ace/OS_main.cpp: - * ace/OS_main.h: - * ace/TSS_Adapter.h: - * ace/QoS/QoS_Decorator.cpp: - * ace/QoS/QoS_Decorator.h: - * ace/QoS/QoS_Manager.cpp: - * ace/QoS/QoS_Manager.h: - * ace/QoS/QoS_Session.h: - * ace/QoS/QoS_Session_Factory.cpp: - * ace/QoS/QoS_Session_Factory.h: - * ace/QoS/QoS_Session_Impl.cpp: - * ace/QoS/QoS_Session_Impl.h: - * ace/QoS/QoS_Session_Impl.i: - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - * ace/QoS/SOCK_Dgram_Mcast_QoS.h: - * ace/QoS/SOCK_Dgram_Mcast_QoS.i: - - Fixed versioned namespace support. The versioning macros calls - were missing. - -Thu Dec 8 08:28:12 UTC 2005 Johnny Willemsen - - * examples/APG/ThreadSafety/threadsafety.mpc: - Fixed error in this mpc project which caused build errors with - borland - -Wed Dec 7 05:50:01 2005 Ossama Othman - - * apps/JAWS/clients/Caching/caching.mpc: - * apps/JAWS2/JAWS/jaws2.mpc: - * bin/MakeProjectCreator/config/winregistry.mpb: - * examples/APG/Containers/containers.mpc: - * examples/APG/Svc_Config/svc_config.mpc: - * examples/APG/ThreadSafety/threadsafety.mpc: - * examples/C++NPv2/C++NPv2.mpc: - * examples/QOS/Diffserv/QOS_Diffserv.mpc: - * examples/Reactor/Proactor/Proactor.mpc: - * examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc: - * tests/tests.mpc: - - Disable some projects in these MPC files when "ace_for_tao" is - enabled. - -Tue Dec 6 21:34:03 2005 Ossama Othman - - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - - Removed duplicate "MT_Stream" typedef that made the same typedef - in `ace/UPIPE_Stream.h' ambiguous. Fixes a versioned namespace - build error. - -Tue Dec 6 18:40:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/acedefaults.mpb: - For vc8 set ExceptionHandling to 2. This enabled the structured - exception handling. Normally vc8 doesn't catch structured exceptions - but we except so for some tests and else the disabling of the - win32 error windows doesn't work. This fixes bugzilla [BUG:2290] - See also http://www.codecomments.com/archive292-2005-8-578262.html - for backgroup. Thanks to Steve Huston and Chad Elliott for - proposing to handle this in this mpb file instead of in the vc8 - base mpc template - -Tue Dec 6 01:55:12 2005 Ossama Othman - - * ace/config-macros.h: - - Removed "#pragma once" directive. The necessary preprocessor - symbol definitions necessary to disable this directive - are generally C++ preprocessor/compiler-specific. This - prevents proper configuration of this #pragma in the - presence of a C compiler. - -Mon Dec 5 14:46:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_stdio.inl: - With Borland also just use tempnam instead of _tempname - -Mon Dec 5 08:44:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-borland.h: - * ace/config-win32-dmc.h: - * ace/OS_NS_stdio.inl: - Introduced new macros ACE_HAS_NONCONST_TEMPNAM and - ACE_HAS_NONCONST_FDOPEN. Borland C++ Builder 6 and previous had - non compliant non const methods but this is now corrected in - BDS2006, so instead of hacking also a version check in the - OS_NS_stdio.inl just check for a define and set this in the borland - config file. Also DMC seems to have one incorrect signature - so also set it there. - -Sun Dec 4 06:49:59 2005 Ossama Othman - - * ace/SSL/SSL_Context.cpp: - - Use an ACE_Thread_Mutex instead of ACE_Mutex. The former is - faster and lighter weight. - -Sat Dec 3 17:56:04 2005 Ossama Othman - - * ace/SSL/SSL_Asynch_BIO.cpp: - * ace/SSL/SSL_Asynch_Stream.h: - - Replaced ACE_SSL_bio_{read,write} functors with a single - structure containing static read() and write() methods. - Functors are overkill in this case. - - Documented why a structure is used instead of a free - function. - - * ace/SSL/SSL_Context.h: - - Removed obsolete comment. - -Sat Dec 3 11:51:36 2005 Ossama Othman - - * ace/Base_Thread_Adapter.h: - - Removed unnecessary "ace/Global_Macros.h" include directive in - versioned namespace case. - - * ace/SSL/SSL_Asynch_BIO.cpp: - - Fixed versioned namespace support for free functions in this - file. - - (BIO_s_Asynch): - - Removed this unnecessary function. It simply returned the - address of a global object. Just take the address directly in - the calling code. - - (BIO_new_ACE_Asynch, ACE_SSL_make_BIO): - - Renamed BIO factory function to "ACE_SSL_make_BIO", which is - more consistent with ACE naming conventions. Removed extern "C" - declaration, as well, since there's no need for it to be so. - - (ACE_SSL_bio_read, ACE_SSL_bio_write): - - New functors that that make the necessary calls on the - ACE_SSL_Asynch_Stream object. - - (ACE_Asynch_BIO_read, ACE_Asynch_BIO_write): - - Use new ACE_SSL_bio_{read,write} functors instead of making - direct calls on the ACE_SSL_Asynch_Stream object. - - * ace/SSL/SSL_Asynch_BIO.h: - - Moved extern "C" BIO callback function prototypes to - SSL_Asynch_BIO.cpp. There's no need for them to be visibile to - the user. - - Renamed BIO factory function to "ACE_SSL_make_BIO", which is - more consistent with ACE naming conventions. Removed extern "C" - declaration, as well, since there's no need for it to be so. - - * ace/SSL/SSL_Asynch_Stream.cpp (open): - - Updated name of BIO factory function. - - * ace/SSL/SSL_Asynch_Stream.h: - - Removed unnecessary free function prototypes. - - (ACE_SSL_Asynch_Stream): - - Replaced friend function declarations with friend structure - (used as functors) declarations. Works around scope qualifier - problems in Sun compilers when used on free functions. - -Fri Dec 2 10:27:47 2005 J.T. Conklin - - * bin/msvc_static_order.lst: - - Add RTEventLogAdmin project. - -Fri Dec 2 13:14:12 UTC 2005 Johnny Willemsen - - * ace/Task.inl: - Replaced c-style casts with C++ const_cast - -Fri Dec 2 11:39:12 UTC 2005 Johnny Willemsen - - * ace/os_include/sys/os_stat.h: - * ace/os_include/sys/os_timeb.h: - Made some workarounds for Borland specific on the BCB version. - That way we can remove them easier in the future when we - deprecated certain releases - -Fri Dec 2 01:25:52 2005 Ossama Othman - - * ace/Versioned_Namespace.h: - - Update preprocessor check to use new config-macros.h specific - include guard preprocessor symbol. - - * ace/config-macros.h: - * ace/config-lite.h: - - Moved all macros, preprocessor symbols and some non-C++-specific - typedefs to the new `config-macros.h' header. Allows - configuration macros/values to be used in C sources. - - * ace/config-all.h: - - Removed redundant "ace/ace_wchar.h" include directive. It's - already included by `config-lite.h'. - - * ace/config-aix-4.x.h: - * ace/config-chorus.h: - * ace/config-cygwin32.h: - * ace/config-linux-common.h: - * ace/config-osf1-4.0.h: - * ace/config-rtems.h: - * ace/config-sunos5.5.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.1.h: - - Relaxed unsupported compiler preprocessor error for non-C++ - compilers. Simplifies use of configuration macros/values in - presence of C compiler. - - * ace/Makefile.am: - * ace/ace.mpc: - - Added new config-macros.h header to the appropriate header - lists. - -Fri Dec 2 00:43:12 2005 Ossama Othman - - * ace/Module.h: - * apps/JAWS/server/HTTP_Request.h: - * apps/JAWS/server/IO.h: - * apps/JAWS2/JAWS/Cache_Object.h: - * apps/JAWS2/JAWS/IO.h: - * apps/JAWS2/JAWS/IO_Acceptor.h: - * apps/JAWS2/JAWS/IO_Handler.h: - * apps/soreduce/Obj_Module.h: - * examples/APG/Containers/Hash_Map_Hash.h: - * examples/APG/Containers/RB_Tree_Functors.h: - * examples/APG/ThreadPools/Request_Handler.h: - * examples/ASX/Event_Server/Event_Server/Options.h: - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * examples/C++NPv1/Iterative_Logging_Server.h: - * examples/C++NPv1/Logging_Handler.h: - * examples/C++NPv1/Logging_Server.h: - * examples/C++NPv2/Logging_Handler.h: - * examples/Shared_Malloc/Malloc.h: - - More versioned namespace build fixes. - -Thu Dec 1 08:07:23 2005 Douglas C. Schmidt - - * ace/Service_Config.cpp (open_i): - * ace/Service_Config.h (ACE_Service_Config): Don't try to - register a signal handler if the signal number is < 0! Thanks - to Brian Raven for this fix. - -Wed Nov 30 13:37:59 2005 William Otte - - * bin/MakeProjectCreator/config/cidlc.mpb - - Updated to make thie base project consistent with the semantics - of the boost base projects from MPC. - -Tue Nov 29 11:20:12 UTC 2005 Ossama Othman - - * ace/Parse_Node.cpp (make_func_name): - - Do not use a stack instantiated variable length array. Use a - dynamically allocated array instead. Saves us a copy, and - fixes g++ build errors when using its "-pedantic" command line - option. - - Fixed string length calculation. Addresses Service - Configurator failures when versioned namespace support is - enabled. - -Wed Nov 30 00:33:21 2005 Ossama Othman - - * ACEXML/parser/parser/parser.mpc: - * bin/MakeProjectCreator/config/avstreams.mpb: - * bin/MakeProjectCreator/config/rmcast.mpb: - * netsvcs/clients/Logger/Logger.mpc: - * netsvcs/servers/servers.mpc: - - Disable these projects when "ace_for_tao" is enabled. - -Wed Nov 30 08:58:35 2005 William Otte - - * html/index.html - - Removed obsolete CIAO components, cleaned up the HTML a bit. - -Tue Nov 29 11:20:12 UTC 2005 Johnny Willemsen - - * ace/Timer_Queue_T.cpp: - Use prefix increment operator instead of postfix - -Tue Nov 29 07:41:12 UTC 2005 Johnny Willemsen - - * ace/Malloc.{h,cpp}: - Removed copy constructor and name assign methods from ACE_Name_Node, - these where implemented with an assert saying not implemented. This - is not a good thing to do and also fixes some warnings in our - Intel 9.1 beta build. If someone used these methods they would get - an assert in runtime, now they get a compile error meaning we - have to implement them - -Mon Nov 28 07:26:31 2005 Ossama Othman - - * protocols/ace/HTBP/HTBP.mpc: - - Added missing "avoids += ace_for_tao". - -Mon Nov 28 06:50:04 2005 Ossama Othman - - * tests/ACE_Init_Test.cpp (run_main): - - Removed unnecessary versioned namespace related "using" - keyword. - -Sun Nov 27 22:37:44 2005 Bala Natarajan - - * ace/Array_Map.h: - - Included the Sun CC 5.8, as an additional CC compiler that - requires complete specification for a trait declaration. - - Just for information. Sun CC 5.8 comes with Studio 11, which is - free (as in FREE BEER!!). - -Sun Nov 27 04:05:52 2005 Ossama Othman - - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - * bin/MakeProjectCreator/config/aceexe.mpb: - * bin/MakeProjectCreator/config/acelib.mpb: - * bin/MakeProjectCreator/config/versioned_namespace.mpb: - - Added versioned namespace MPC support. Disabled by default. - Add "versioned_namespace=1" to default.features to enable. - - * Kokyu/Kokyu_defs.h: - * ace/Asynch_Connector.h: - * ace/Cleanup.cpp: - * ace/Cleanup.h: - * ace/If_Then_Else.h: - * ace/OS.h: - * ace/Object_Manager.cpp: - * ace/Object_Manager.inl: - * ace/Value_Ptr.h: - * ace/SSL/SSL_Asynch_Stream.h: - * ace/SSL/SSL_SOCK_Acceptor.cpp: - * protocols/ace/HTBP/HTBP_Addr.cpp: - * protocols/ace/HTBP/HTBP_Addr.h: - * protocols/ace/HTBP/HTBP_Channel.cpp: - * protocols/ace/HTBP/HTBP_Channel.h: - * protocols/ace/HTBP/HTBP_Channel.inl: - * protocols/ace/HTBP/HTBP_Environment.cpp: - * protocols/ace/HTBP/HTBP_Environment.h: - * protocols/ace/HTBP/HTBP_Filter.cpp: - * protocols/ace/HTBP/HTBP_Filter.h: - * protocols/ace/HTBP/HTBP_Filter.inl: - * protocols/ace/HTBP/HTBP_Filter_Factory.cpp: - * protocols/ace/HTBP/HTBP_Filter_Factory.h: - * protocols/ace/HTBP/HTBP_ID_Requestor.cpp: - * protocols/ace/HTBP/HTBP_ID_Requestor.h: - * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp: - * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.h: - * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.inl: - * protocols/ace/HTBP/HTBP_Notifier.cpp: - * protocols/ace/HTBP/HTBP_Notifier.h: - * protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp: - * protocols/ace/HTBP/HTBP_Outside_Squid_Filter.h: - * protocols/ace/HTBP/HTBP_Outside_Squid_Filter.inl: - * protocols/ace/HTBP/HTBP_Session.cpp: - * protocols/ace/HTBP/HTBP_Session.h: - * protocols/ace/HTBP/HTBP_Session.inl: - * protocols/ace/HTBP/HTBP_Stream.cpp: - * protocols/ace/HTBP/HTBP_Stream.h: - * tests/ACE_Init_Test.cpp: - * tests/Process_Strategy_Test.h: - - Corrected build errors in versioned namespace builds. - - * bin/MakeProjectCreator/config/acexml.mpb: - - Disable ACEXML libraries when "ace_for_tao" is enabled. - -Fri Nov 25 19:04:10 2005 Ossama Othman - - * NEWS: - - Updated with latest versioned namespace information. - - * ace/ACE_Codecs_export.h: - * ace/ACE_Memory_export.h: - * ace/ACE_Reactor_export.h: - * ace/ACE_Sockets_export.h: - * ace/ACE_Threads_export.h: - * ace/ace.mwc: - * ace/ace_codecs_for_tao.mpc: - * ace/ace_configuration_for_tao.mpc: - * ace/ace_memory_for_tao.mpc: - * ace/ace_reactor_for_tao.mpc: - * ace/ace_sockets_for_tao.mpc: - * ace/ace_threads_for_tao.mpc: - * ace/ace_timer_for_tao.mpc: - * bin/MakeProjectCreator/config/acecodecslib_for_tao.mpb: - * bin/MakeProjectCreator/config/acememorylib_for_tao.mpb: - * bin/MakeProjectCreator/config/acereactorlib_for_tao.mpb: - * bin/MakeProjectCreator/config/acesocketslib_for_tao.mpb: - * bin/MakeProjectCreator/config/acethreadslib_for_tao.mpb: - * bin/MakeProjectCreator/config/acetimerlib_for_tao.mpb: - - Removed smaller ace_for_tao subsets. Only a single ace_for_tao - subset library was originally intended. - - * ace/Activation_Queue.h: - * ace/Barrier.h: - * ace/Based_Pointer_Repository.h: - * ace/Codecs.h: - * ace/Dev_Poll_Reactor.h: - * ace/File_Lock.h: - * ace/LSOCK.h: - * ace/LSOCK_Acceptor.h: - * ace/LSOCK_CODgram.h: - * ace/LSOCK_Connector.h: - * ace/LSOCK_Dgram.h: - * ace/LSOCK_Stream.h: - * ace/MEM_Acceptor.h: - * ace/MEM_Addr.h: - * ace/MEM_Connector.h: - * ace/MEM_IO.h: - * ace/MEM_SAP.h: - * ace/MEM_Stream.h: - * ace/MMAP_Memory_Pool.h: - * ace/Mem_Map.h: - * ace/Method_Request.h: - * ace/Msg_WFMO_Reactor.h: - * ace/Multihomed_INET_Addr.h: - * ace/PI_Malloc.h: - * ace/Pagefile_Memory_Pool.h: - * ace/Priority_Reactor.h: - * ace/Process.h: - * ace/Process_Manager.h: - * ace/Process_Semaphore.h: - * ace/RW_Process_Mutex.h: - * ace/SOCK_CODgram.h: - * ace/SOCK_Dgram_Bcast.h: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/SOCK_SEQPACK_Association.h: - * ace/SOCK_SEQPACK_Connector.h: - * ace/SV_Shared_Memory.h: - * ace/Sbrk_Memory_Pool.h: - * ace/Shared_Memory.h: - * ace/Shared_Memory_MM.h: - * ace/Shared_Memory_Pool.h: - * ace/Shared_Memory_SV.h: - * ace/Thread_Semaphore.h: - * ace/UNIX_Addr.h: - - Removed ace_for_tao subset-specific export macro calls and - include directives. They are no longer needed. - - * ace/ace_for_tao.mpc: - - Added a number of source files required to build the - Notification Service and its tests. - - * Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc: - * ace/QoS/qos.mpc: - * apps/soreduce/soreduce.mpc: - * bin/MakeProjectCreator/config/ftclientorb.mpb: - * bin/MakeProjectCreator/config/htbp.mpb: - * bin/MakeProjectCreator/config/ifrservice.mpb: - * bin/MakeProjectCreator/config/naming_serv.mpb: - * bin/MakeProjectCreator/config/portablegroup.mpb: - * bin/MakeProjectCreator/config/rtevent_serv.mpb: - * bin/MakeProjectCreator/config/ssl.mpb: - * bin/MakeProjectCreator/config/strategies.mpb: - * bin/MakeProjectCreator/config/tmcast.mpb: - * examples/APG/Active_Objects/active_objects.mpc: - * examples/APG/Config/config.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/UPIPE_SAP/UPIPE_SAP.mpc: - * examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc: - * examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc: - * examples/Misc/Misc.mpc: - * examples/Naming/Naming.mpc: - * examples/OS/Process/OS_Process.mpc: - * examples/Reactor/Dgram/Reactor_Dgram.mpc: - * examples/Reactor/FIFO/Reactor_FIFO.mpc: - * examples/Reactor/Proactor/Proactor.mpc: - * examples/Service_Configurator/IPC-tests/client/Svc_Cfg_IPC_Client.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: - * performance-tests/SCTP/SCTP.mpc: - * tests/tests.mpc: - - Added "avoids += ace_for_tao" to projects that require features - of ACE not found in the ace_for_tao subset. Addresses link-time - errors. - -Fri Nov 25 12:45:20 2005 Steve Huston - - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: Corrected ACE_Atomic_Op instantiations - for size_t. - -Fri Nov 25 10:00:21 2005 Steve Huston - - * ace/POSIX_Proactor.cpp (ACE_POSIX_Asynch_Timer): Don't explicitly - call ACE_Asynch_Result_Impl() - it's pointless and isn't listed - as an ancestor of this class. - (create_asynch_timer): Use a ACE_POSIX_Asynch_Timer * to match - the created object type. - - * ace/POSIX_Asynch_IO.cpp: Remove explicit calls to base-class - constructors from all constructors. It's not needed and seems to - cause problems on 64-bit code, at least on AIX. - - * include/makeinclude/platform_aix_ibm.GNU: AIX now uses the XPG4 tail - command syntax, requiring "-n 1" to read the last line; refuses "-1". - Thanks to Mike Knight for - alerting us to this. - - * THANKS: Added Mike Knight to the Hall of Fame. - -Thu Nov 24 20:00:37 2005 Simon McQueen - - * bin/tao_other_tests.lst: - - Scheduled bug #2316 regression. - -Thu Nov 24 14:56:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - For Intel C++ 9.1 also disable warning 1684 - -Thu Nov 24 01:38:57 2005 Ossama Othman - - * bin/fuzz.pl: - - Added a test that flags common versioned namespace related - errors/misuses. - - * bin/MakeProjectCreator/config/global.features: - - Disable versioned namespace support by default. - - * ace/Atomic_Op.h: - * ace/Auto_Ptr.h: - * ace/Barrier.h: - * ace/Base_Thread_Adapter.h: - * ace/CDR_Stream.h: - * ace/Cleanup_Strategies_T.cpp: - * ace/Dev_Poll_Reactor.h: - * ace/Functor_String.h: - * ace/High_Res_Timer.cpp: - * ace/LSOCK_Connector.inl: - * ace/Local_Name_Space_T.h: - * ace/Log_Msg.h: - * ace/Malloc.h: - * ace/Malloc_Allocator.h: - * ace/Message_Queue.h: - * ace/OS_Memory.h: - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_Thread.h: - * ace/OS_NS_errno.h: - * ace/OS_NS_math.inl: - * ace/OS_NS_netdb.cpp: - * ace/OS_NS_netdb.h: - * ace/OS_NS_sys_msg.h: - * ace/OS_NS_time.h: - * ace/OS_main.cpp: - * ace/Object_Manager.h: - * ace/Parse_Node.cpp: - * ace/Ping_Socket.cpp: - * ace/Proactor.cpp: - * ace/Proactor.h: - * ace/Profile_Timer.cpp: - * ace/Profile_Timer.inl: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast.inl: - * ace/SPIPE_Stream.h: - * ace/Select_Reactor_T.cpp: - * ace/Service_Config.h: - * ace/Service_Templates.cpp: - * ace/Sock_Connect.cpp: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - * ace/Thread_Manager.cpp: - * ace/Time_Value.h: - * ace/Timeprobe.h: - * ace/Timer_Hash_T.h: - * ace/Timer_List.cpp: - * ace/Timer_Queue.cpp: - * ace/config-lite.h: - * ace/SSL/SSL_Asynch_BIO.cpp: - * ace/SSL/SSL_Context.cpp: - - Corrected build errors in versioned namespace builds. - -Wed Nov 23 19:54:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Set xerces to 1 by default if it is not set - -Wed Nov 23 11:00:46 2005 Douglas C. Schmidt - - * docs/ACE-guidelines.html: Updated the guidelines to explain how - TAO binary options should be specified, i.e. as the integral - values 0 or 1. - -Wed Nov 23 09:54:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - When optimize=0, disable floating point optimizations. This way we - don't get floating point overflows in the TAO IDL test. If someone - enables optimize then we just let the compiler optimize things and - we could get overflows. - -Tue Nov 22 17:42:13 2005 Kobi Cohen-Arazi - - * ace/Select_Reactor_T.cpp (dispatch): - Fixed a bug which derived from bug #1890. active_handle_count - must be updated when state is changed. Every time some handler - remove add or suspend itself of another handle, state is - changed, and that should be reflected in the - active_handle_count. Thanks for Vadim Iosevich . - -Tue Nov 22 18:27:30 2005 Steve Huston - - * m4/tls.m4: Correct botched assignment to ace_TLS_CPPFLAGS when - additional Kerberos directory is needed. - -Tue Nov 22 03:33:14 2005 Bala Natarajan - - * ace/ace_configuration_for_tao.mpc: - - Some groups require ACE_Configuration. This MPC should probably - help those groups with a smaller library to use instead of - pulling in the whole ACE library. - -Tue Nov 22 01:43:52 2005 Ossama Othman - - * bin/MakeProjectCreator/config/portablegroup.mpb: - - Rather than disable this project in the ACE_FOR_TAO - configuration, inherit from acesocketslib_for_tao to allow it to - be used. - -Tue Nov 22 09:40:00 UTC 2005 Simon Massey - - * NEWS: - - Added Stoyan Paunov and Arvind S. Krishna entries. - -Mon Nov 21 23:56:06 2005 Ossama Othman - - * ace/ace_for_tao.mpc: - * ace/ace_threads_for_tao.mpc: - - Moved ACE_crc32.cpp to ace_threads_for_tao subset within - Windows compiler conditional. It is only needed by the - SV_Semaphore_Simple listed within that conditional block. - - * ace/ace_timer_for_tao.mpc: - * bin/MakeProjectCreator/config/acetimerlib_for_tao.mpb: - - New ACE_FOR_TAO timer library subset. - - * ace/Obchunk.cpp: - * ace/Obchunk.h: - * ace/Obchunk.inl: - * ace/Object_Manager.cpp: - * ace/Object_Manager.h: - * ace/Object_Manager.inl: - * ace/Object_Manager_Base.cpp: - * ace/Object_Manager_Base.h: - * ace/Obstack.cpp: - * ace/Obstack.h: - * ace/Obstack_T.cpp: - * ace/Obstack_T.h: - * ace/Obstack_T.inl: - - Added missing versioned namespace support. - - * ace/SSL/SSL_Context.h: - - Removed ACE_SSL_locking_callback prototype since it is not part - of the public interface, and since a prototype (and definition) - already exists in the SSL_Context.cpp implementation file. - - Removed static class members and placed them in anonymous - namespace in the implementation file. - - * ace/SSL_Context.cpp: - - Static class members are now in an anonymous namespace. There's - no need to expose them in the corresponding header. - - Mangle global SSL callback functions with the appropriate - versioned namespace name, if enabled. - - Improved exception safety of lock memory management and - lock acquisition/release by taking advantage of an - ACE_Auto_Basic_Array_Ptr and ACE_Mutex, respectively. - - * Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc: - * apps/drwho/drwho.mpc: - * apps/soreduce/soreduce.mpc: - * examples/APG/Active_Objects/active_objects.mpc: - * examples/APG/Misc_IPC/misc_ipc.mpc: - * examples/APG/Shared_Memory/shared_memory.mpc: - * examples/APG/ThreadPools/threadpools.mpc: - * examples/APG/ThreadSafety/threadsafety.mpc: - * examples/ASX/Event_Server/Event_Server/Event.mpc: - - Inherit from the appropriate ACE_FOR_TAO subset MPC base - project. Addresses unresolved symbol errors. - -Tue Nov 22 09:33:30 (IST) 2005 Bala Natarajan - - * bin/MakeProjectCreator/config/portablegroup.mpb: - - Do not build in ACE_FOR_TAO configuration. - -Tue Nov 22 09:27:30 (IST) 2005 Bala Natarajan - - * ace/OS_NS_sys_utsname.cpp: - * ace/OS_NS_sys_utsname.h: - * ace/OS_NS_sys_utsname.inl: - - Uninlined uname (). Compiling it on Solaris 9 with Studio9, - and inline enabled is a pain. DOC's scoreboard uses inline=0 - on corona, and hence doesn't show the error. Uninlining solves - the problem. - - * ace/ace_for_tao.mpc: - - Added a few files to be built in ACE_FOR_TAO config. This fixes - many errors in gperf and orbsvcs on Solaris. - -Mon Nov 21 19:16:30 2005 Steve Huston - - * m4/tls.m4: Make sure we don't lose the user's specified OpenSSL - location when searching for Kerberos files. - -Mon Nov 21 13:26:53 2005 Arvind S. Krishna - - * NEWS: - - Updated NEWS file to reflect additions to the latest beta. - -Mon Nov 21 11:00:02 2005 William Otte - - * bin/MakeProjectCreator/config/cidlc.mpb - - Added a verbatim section for gnuace targets to pull in the - boost_filesystem and boost_regex libraries. - -Mon Nov 21 08:16:29 2005 Steve Huston - - * ace/SSL/SSL_Context.h: Removed "::" from friend declaration to - fix compile errors on Solaris, Forte 6 Update 2. (Sun C++ 5.4). - -Fri Nov 18 23:07:09 UTC 2005 Jeff Parsons - - * include/makeinclude/wrapper_macros.GNU: - - Applied a syntax submitted by Martin Corino - to the setting of $LEX and $YACC. The existing syntax set - these variables only if they were not already set, but - unfortunately, GNU make sets them by default. For DOC - Group purposes, they need to be set to 'flex' and - 'bison' respectively. - -Fri Nov 18 17:22:19 2005 Steve Huston - - * protocols/ace/RMCast/Template_Instantiations.cpp: Completed - template instantiations. - - * protocols/ace/RMCast/Makefile.am: - * protocols/ace/TMCast/Template_Instantiations.cpp: Explicit - instantiations needed for TMCast. - - * tests/Based_Pointer_Test.cpp: Added explicit instantiation for - ACE_Malloc_T. - - * tests/DLList_Test.cpp: #include "ace/Malloc_T.h" rather than - "ace/Malloc.h" to pick up ACE_Allocator<> before the explicit - instantiation needs it. - -Fri Nov 18 14:16:45 2005 Douglas C. Schmidt - - * ace/WIN32_Asynch_IO.cpp (shared_read): Added a new case for - ERROR_MORE_DATA, which isn't actually an error after all. - Thanks to Yongming Wang for contributing - this. - -Fri Nov 18 10:39:01 2005 William Otte - - * bin/MakeProjectCreator/config/cidlc.mpb - - Added rest of change intended for: - Thu Nov 17 18:08:45 UTC 2005 Jeff Parsons - -Thu Nov 17 18:08:45 UTC 2005 Jeff Parsons - - * bin/MakeProjectCreator/config/cidlc.mpb: - - Fix submitted by Will Otte intended - to be part of - - Tue Nov 15 12:44:37 2005 William Otte - -Thu Nov 16 13:16:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/compiler.bor: - When VCL is defined, set different startup obj and also define - PACKAGES - - * include/makeinclude/build_exe.bor: - Added PACKAGES to the compiler flags - -Thu Nov 16 12:36:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Added extra linker paths - - * bin/MakeProjectCreator/config/vcl.mpb: - New base project, usable for building VCL application with Borland - C++ Builder - - * bin/MakeProjectCreator/config/global.features: - Disable vcl by default - -Wed Nov 16 15:48:29 2005 Steve Huston - - * ace/Hash_Map_Manager_T.h: For Sun CC 5.4 and earlier with explicit - template instantiation, can't prevent seeing operator= or - ACE_Hash_Map_Manager explicit templates won't compile. Ick. - - * apps/JAWS3/jaws3/Templates.cpp: Adjusted ACE_Reactor_Token_T type - usage. Follow-up change to match those in: - Fri Aug 26 18:01:31 2005 Steve Huston - - * protocols/ace/RMCast/Template_Instantiations.cpp: Added more needed - instantiations. - -Wed Nov 16 14:12:08 USMST 2005 Yan Dai - - * bin/tao_orb_tests.lst: - - Disabled CSD tests on VxWorks builds. - -Tue Nov 15 23:41:39 2005 Ossama Othman - - * ace/Service_Config.cpp (ACE_FACTORY_DEFINE): - - Moved this macro call outside of the versioned namespace. It - should be in the global namespace. - - * ace/Svc_Conf.h: - * ace/Svc_Conf.l: - * ace/Svc_Conf.y: - * ace/Svc_Conf_Lexer_Guard.cpp: - * ace/Svc_Conf_Lexer_Guard.h: - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - - Added missing versioned namespace macros. - -Tue Nov 15 15:41:19 2005 Steve Huston - - * NEWS: Added WinCE, VC8, ACE_Dev_Poll_Reactor, and ACE_RB_Tree notes. - - * bin/make_release: Generate VC8 files for both Win32 and WinCE. - Since VC8 uses the same suffixes as VC71, the Win32 files have - _vc8 appended, and WinCE files have _WinCE appended. WinCE files - are generated with feature uses_wchar=1, vc8 uses defaults. - - * docs/CE-status.txt: Added some info on CE support under VC8. - -Tue Nov 15 12:44:37 2005 William Otte - - * bin/MakeProjectCreator/config/cidlc.mpb - - Added a directive to remove runtime dependancy on VC71 - runtime libraries on Windows. Thanks to Kitty for suggesting - the fix. - -Tue Nov 15 11:31:41 2005 Steve Huston - - * ace/Atomic_Op.{h inl} (ACE_Atomic_Op (TYPE c)): Changed the signature - to be const TYPE& for long and unsigned long. This aligns it with the - ACE_Atomic_Op template's (const TYPE&) constructor signature and - resolves undefined references to it in the explicit template builds. - - * ace/Event_Handler.cpp: Added explicit instantiation of - ACE_Atomic_Op when ACE_HAS_BUILTIN_ATOMIC_OP - is not defined. This covers the event handler reference counting - use of ACE_Atomic_Op. - - * ace/Malloc_Instantiations.cpp: Corrected header file inclusions. - - * protocols/ace/RMCast/Makefile.am: - * protocols/ace/RMCast/Template_Instantiations.cpp: New file to - hold all explicit template instantiations needed for RMCast. - This is a temporary file, only for the ACE 5.5 release. Then it - can be expunged with the test of the explicit template - instantiation support. - -Tue Nov 15 09:31:29 2005 Steve Huston - - * ace/Dev_Poll_Reactor.{h cpp}: Add an optional decr_refcnt parameter - to ACE_Dev_Poll_Rector_Repository::unbind () to control whether or - not the unbound event handler's refcount is to be decremented. - When registering a handler, remember to increment its refcount if - needed; conversely, decrement it when all events are removed. - Be sure to initialize epoll_event structs. - - * tests/Dev_Poll_Reactor_Test.cpp (handle_input): Fix buffer overrun. - -Tue Nov 15 13:57:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_stdio.{cpp.inl}: - Fixed compile errors in BCB Unicode build - -Tue Nov 15 07:28:35 2005 Douglas C. Schmidt - - * ace/Service_Config.cpp (initialize): Added a check to avoid - overwriting a service that's already installed without having it - explicitly removed first. Thanks to Domingos Monteiro for this fix. - -Mon Nov 14 08:25:12 UTC 2005 Johnny Willemsen - - * ace/WIN32_Asynch_IO.cpp: - * ace/Asynch_Acceptor.cpp: - Removed check for >= BCB3 - - * ace/OS_NS_sys_stat.inl: - BCB has the normal umask - - * ace/OS_NS_stdio.inl: - Replaced c-style cast with C++ cast - - * ace/os_include/os_string.h: - Some BCB specific defines are not needed with BCB6 or newer - -Mon Nov 14 07:57:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/boost_unit_test.mpb: - Removed this file, not used anymore - - * bin/MakeProjectCreator/config/cidlc.mpb: - Use base projects for boost_filesystem, boost_regex and - exceptions, will resolve the link errors in the icc - linux build - -Fri Nov 11 16:04:44 2005 J.T. Conklin - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Emit "idl_stubs" target for IDL projects defining MPC's - custom_only variable. Fixes problems with some of the - scoreboard statistics builds. - -Fri Nov 11 11:06:31 2005 Ossama Othman - - * ACEXML/common/common.mpc: - * ace/ACE_Codecs_export.h: - * ace/Codecs.h: - * ace/ace.mwc: - * ace/ace_codecs_for_tao.mpc: - * apps/JAWS/server/server.mpc: - * apps/JAWS3/jaws3/jaws3.mpc: - * examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc: - * examples/Threads/Threads.mpc: - * examples/Web_Crawler/Web_Crawler.mpc: - * netsvcs/clients/Naming/Client/Client.mpc: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.mpc: - * netsvcs/lib/lib.mpc: - * performance-tests/Misc/Misc.mpc: - * performance-tests/SCTP/SCTP.mpc: - * performance-tests/Server_Concurrency/Leader_Follower/Svr_Conc_Leader_Follower.mpc: - * performance-tests/Server_Concurrency/Queue_Based_Workers/Svr_Conc_Queue_Based_Workers.mpc: - * performance-tests/Synch-Benchmarks/Base_Test/Synch_Benchmarks_Base_Test.mpc: - * performance-tests/Synch-Benchmarks/Perf_Test/Synch_Benchmarks_Perf_Test.mpc: - * performance-tests/TCP/TCP.mpc: - * performance-tests/UDP/UDP.mpc: - * tests/tests.mpc: - - Addressed some "ace_for_tao" link-time failures. - -Fri Nov 11 09:21:53 2005 Ossama Othman - - * include/makeinclude/wrapper_macros.GNU: - - Added missing "ace_for_tao" support. Addresses "ace_for_tao" - build errors in GNU Make based builds. - -Fri Nov 11 12:15:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_sunos5_g++.GNU: - Removed very old note - -Thu Nov 10 09:05:58 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added a template variable, libname_prefix, that can be set to - prefix all library names (sharedname, staticname and libs). Note - that lit_libs and pure_libs are not affected. - -Thu Nov 10 07:39:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks6.1.h: - Added ACE_HAS_SNPRINTF - -Wed Nov 9 19:44:36 2005 Ossama Othman - - * bin/MakeProjectCreator/config/acecodecslib_for_tao.mpb: - * ace/ace_codecs_for_tao.mpc: - * ace/QoS/qos.mpc: - * ACEXML/common/common.mpc: - - Fixed "ace_for_tao" subset related unresolved symbol errors. - -Wed Nov 9 17:05:59 2005 William Otte - - * ace/config-macosx-tiger.h - - Corrected wchar support for Tiger. - - * include/makeinclude/platform_macosx_tiger_gcc3.3.GNU - * include/makeinclude/platform_macosx_tiger_gcc4.GNU - - Removed the versioned platform_macros because there were no - significant changes needed to support GCC3.3 on OS X. - - * include/makeinclude/platform_macosx_tiger.GNU - - Merged platform_macros file. Set CC and CXX to the desired - compiler if you wish to use the non-default compiler. - -Tue Nov 8 15:27:25 2005 William Otte - - * ace/config-macosx-tiger.h - - Fixed size of long double for Mac OS X Tiger with GCC 3.3. - -Mon Nov 7 16:27:12 2005 William Otte - - * bin/MakeProjectCreator/config/csd_framework.mpb - * bin/MakeProjectCreator/config/notifytest.mpb - * bin/MakeProjectCreator/config/rteventlogadmin.mpb - - Fixes for linking errors on OS X. - -Mon Nov 7 15:24:30 2005 William Otte - - * include/makeinclude/platform_macosx_tiger_gcc3.3.GNU - - Added a macros file for Tiger with GCC 3.3. - -Mon Nov 7 14:45:05 UTC 2005 Jeff Parsons - - * ace/Stats.h: - - Made private section of class ACE_Stats protected, for - convenient subclassing. - -Mon Nov 7 09:21:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Added -L$(BCB)\lib\psdk always to the linker flags - -Sun Nov 6 21:19:44 2005 Bala Natarajan - - * ace/ace_sockets_for_tao.mpc: - - Fixed another bug with the MPC file. - - * protocols/ace/HTBP/HTBP.mpc: - - Reverted the avoids declaration. - -Sun Nov 6 21:02:17 2005 Bala Natarajan - - * ace/ace_for_tao.mpc: - * ace/ace_threads_for_tao.mpc: - * protocols/ace/HTBP/HTBP.mpc: - * protocols/ace/RMCast/RMCast.mpc: - * protocols/ace/TMCast/TMCast.mpc: - * protocols/examples/RMCast/Send_Msg/Send_Msg.mpc: - * protocols/tests/RMCast/RMCast.mpc: - - Fixed subtle errors with ace_for_tao builds. - -Sat Nov 5 13:28:12 UTC 2005 Johnny Willemsen - - * examples/APG/Shared_Memory/Hash_Map.cpp: - Replaced MAP with HASH_MAP to fix compile problems with VxWorks 6.1 - -Sat Nov 5 13:01:12 UTC 2005 Johnny Willemsen - - * ace/Cache_Map_Manager_T.{h,cpp,inl}: - Replaced MAP_TYPE with CMAP_TYPE, MAP_TYPE is also used on some - platforms already - - * include/makeinclude/compiler.bor: - Fixed typo - -Fri Nov 4 09:18:17 2005 Ossama Othman - - * ace/Dev_Poll_Reactor.h (Token_Guard): - - Fixed incorrect unimplemented constructor related error that was - introduced when removing ACE_UNIMPLEMENTED_FUNC macro usage. - -Fri Nov 4 14:04:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Make sure that we always add $(BCB)\lib to the linker flags - -Fri Nov 4 12:28:12 UTC 2005 Johnny Willemsen - - * tests/Lazy_Map_Manager_Test.cpp: - Changed MAP to LAZY_MAP - - * tests/Map_Test.cpp: - Changed MAP to TEST_MAP - -Fri Nov 4 12:04:12 UTC 2005 Johnny Willemsen - - * ace/Cache_Map_Manager_T.{h,cpp,inl}: - Changed MAP to MAP_TYPE to resolve conflicts with VxWorks 6.1 - MAP define - -Fri Nov 4 11:16:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - For VxWorks 6.1 also include os_string.h to get swab - -Fri Nov 4 10:52:12 UTC 2005 Johnny Willemsen - - * ace/Capabilities.{h,cpp}: - Changed MAP to CAPABILITIES_MAP. VxWorks 6.1 defines the cpu - type MAP which results in a compile error - - * ace/os_include/sys/os_un.h: - Only define the struct sockaddr_un with VxWorks versions older - then 6.1 - -Fri Nov 4 10:33:12 UTC 2005 Johnny Willemsen - - * ace/config-vxworks6.1.h: - * include/makeinclude/platform_vxworks6.1.GNU: - New files for VxWorks 6.1. This is just a first draft version, a lot - of porting work has to be done - - * ace/OS_NS_stdlib.cpp: - Fixed variable not used warning with VxWorks 6.1 - -Fri Nov 4 10:09:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Only define VX_FP_TASK when it is not defined yet - -Fri Nov 4 08:50:12 UTC 2005 Johnny Willemsen - - * ace/Global_Macros.h: - Removed check for BCB3, that is ancient - -Thu Nov 3 12:34:30 2005 Douglas C. Schmidt - - * ace/Service_Config.h (ACE_DYNAMIC_SERVICE_DIRECTIVE): Added a - missing '\' at near the end of a macro. Thanks to Lothar - Werzinger for this fix. - -Thu Nov 3 09:16:23 2005 Ossama Othman - - * ace/Activation_Queue.h: - * ace/Atomic_Op.h: - * ace/Condition_Recursive_Thread_Mutex.h: - * ace/DLL.h: - * ace/DLL_Manager.h: - * ace/Dev_Poll_Reactor.h: - * ace/Framework_Component.h: - * ace/Get_Opt.h: - * ace/Mem_Map.h: - * ace/Message_Queue.cpp: - * ace/Message_Queue.h: - * ace/Method_Request.h: - * ace/Null_Mutex.h: - * ace/PI_Malloc.h: - * ace/Process.h: - * ace/Read_Buffer.h: - * ace/Select_Reactor.h: - * ace/Stats.h: - * ace/TP_Reactor.h: - - Removed unnecessary uses of ACE_UNIMPLEMENTED_FUNC macro. It is - only meant to be used for private unimplemented member functions - in class templates. - - * ace/Versioned_Namespace.h: - - Clarified preprocessor error message. - -Wed Nov 2 09:19:04 2005 Ossama Othman - - * ace/ACE.h (strdelete): - - Declare wchar version of ACE::strdelete() with - ACE_NAMESPACE_INLINE_FUNCTION macro since it is now inlined. - Addresses duplicate definition errors in wchar-enabled builds. - -Wed Nov 2 08:51:29 2005 Bala Natarajan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.inl: - - Removed ACE_OutputCDR_Auto_Reset. Firstly - ACE_Utils::Auto_Functor should be used and secondly such classes - don't serve any purpose beyond Output_CDR. - -Tue Nov 1 22:19:03 2005 Ossama Othman - - * ace/Makefile.am (nobase_include_HEADERS): - - Added missing "Versioned_Namespace.h" header. - - * ace/Versioned_Namespace.h: - - Clarified preprocessor error message. - -Tue Nov 1 14:28:51 2005 William Otte - - * ace/config-macosx-tiger.h - - Some changes to fix compile errors in JAWS. Thanks to Johnny for - suggesting a fix. - -Tue Nov 1 15:29:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Updated supported platforms - -Tue Nov 1 12:32:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - Moved Bug_2074_Regression to orbsvcs - -Mon Oct 31 13:38:07 MST 2005 Yan Dai - - * bin/msvc_static_order.lst: - - Moved the TAO/tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib - before TAO/tests/Collocation/Collocation_Test_Stub. This should - resolve the TP_Foo_* libs compilation errors on static build. - -Mon Oct 31 09:54:18 2005 J.T. Conklin - - * ace/Makefile.am: - Removed Synch_Options.inl and TSS_Adapter.inl. - -Mon Oct 31 07:55:57 2005 Ossama Othman - - * ace/Registry.cpp (STRING_SEPARATOR): - * ace/Registry.h (STRING_SEPARATOR): - - Reintroduced this string as a static class member. It is also - used outside of the ACE_Registry class in - ACE_Registry_Name_Space. Fixes an unresolved symbol error in - Borland builds. - -Mon Oct 31 14:15:12 UTC 2005 Johnny Willemsen - - * ace/Makefile.am: - Removed Service_Manager.inl - -Mon Oct 31 13:03:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2084_Regression - -Mon Oct 31 12:37:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO/tests/Bug_2074_Regression/run_test.pl to the list - -Mon Oct 31 10:42:12 UTC 2005 Johnny Willemsen - - * ace/pre.h: - Reverted change below, makes it much easier to use ACE from - application projects - Fri Oct 28 10:19:12 UTC 2005 Johnny Willemsen - -Mon Oct 31 09:40:12 UTC 2005 Johnny Willemsen - - * ace/gethrtime.cpp: - * ace/Base_Thread_Adapter.cpp: - Fixed fuzz errors - -Mon Oct 31 08:15:12 UTC 2005 Johnny Willemsen - - * bin/msvc_static_order.lst: - Moved CSD test lib down, let us see the impact on the vc build - -Mon Oct 31 06:55:12 UTC 2005 Johnny Willemsen - - * ace/UPIPE_Connector.cpp: - Added missing include for Linux builds - -Sun Oct 30 08:11:12 UTC 2005 Johnny Willemsen - - * ace/Task.h: - Fixed gcc4 compile error - -Fri Oct 28 16:07:45 2005 Ossama Othman - - * ace/SSL/SSL_Context.cpp (ACE_SSL_locking_callback): - (ACE_SSL_thread_id): - - Removed duplicate definitions. - -Fri Oct 28 16:42:12 2005 Don Busch - - * bin/MakeProjectCreator/config/messaging_optional.mpb - - Add "after += Messaging" to ensure that CosNaming_Serv and - CosEvent_Serv always build after Messaging - -Fri Oct 28 14:28:13 2005 Ossama Othman - - * ace/Map_Manager.h: - - Include "ace/Default_Constants.h" to pull in - ACE_DEFAULT_MAP_SIZE definition. - -Fri Oct 28 10:42:32 2005 Ossama Othman - - * ace/Copy_Disabled.cpp - * ace/Copy_Disabled.h: - * ace/Makefile.am (libACE_la_SOURCES): - * ace/ace.mpc: - - Reinstituted Copy_Disabled.cpp. Addresses unresolved symbol - link-time errors. - -Fri Oct 28 09:23:11 2005 Ossama Othman - - * ace/Reverse_Lock_T.h (ACE_Acquire_Method): - - Fixed typo. - -Fri Oct 28 14:05:12 UTC 2005 Johnny Willemsen - - * ace/Select_Reactor_Base.cpp: - Fixed possible unitialized warning - -Fri Oct 28 10:19:12 UTC 2005 Johnny Willemsen - - * ace/pre.h: - Removed several arguments for the option push, these are passed - from the commandline already - -Fri Oct 28 07:56:12 UTC 2005 Johnny Willemsen - - * ace/config-linux-common.h: - Added ACE_HAS_UALARM - -Fri Oct 28 00:01:06 2005 Ossama Othman - - * ace/ACE.cpp: - * ace/ACE.h: - * ace/ACE.inl: - * ace/ACE_crc32.cpp: - * ace/ACE_crc_ccitt.cpp: - * ace/ARGV.cpp: - * ace/ARGV.h: - * ace/ARGV.inl: - * ace/ATM_Acceptor.cpp: - * ace/ATM_Acceptor.h: - * ace/ATM_Acceptor.inl: - * ace/ATM_Addr.cpp: - * ace/ATM_Addr.h: - * ace/ATM_Addr.inl: - * ace/ATM_Connector.cpp: - * ace/ATM_Connector.h: - * ace/ATM_Connector.inl: - * ace/ATM_Params.cpp: - * ace/ATM_Params.h: - * ace/ATM_Params.inl: - * ace/ATM_QoS.cpp: - * ace/ATM_QoS.h: - * ace/ATM_QoS.inl: - * ace/ATM_Stream.cpp: - * ace/ATM_Stream.h: - * ace/ATM_Stream.inl: - * ace/Acceptor.cpp: - * ace/Acceptor.h: - * ace/Activation_Queue.cpp: - * ace/Activation_Queue.h: - * ace/Activation_Queue.inl: - * ace/Active_Map_Manager.cpp: - * ace/Active_Map_Manager.h: - * ace/Active_Map_Manager.inl: - * ace/Active_Map_Manager_T.cpp: - * ace/Active_Map_Manager_T.h: - * ace/Active_Map_Manager_T.inl: - * ace/Addr.cpp: - * ace/Addr.h: - * ace/Addr.inl: - * ace/Arg_Shifter.cpp: - * ace/Arg_Shifter.h: - * ace/Argv_Type_Converter.cpp: - * ace/Argv_Type_Converter.h: - * ace/Argv_Type_Converter.inl: - * ace/Array_Base.cpp: - * ace/Array_Base.h: - * ace/Array_Base.inl: - * ace/Array_Map.cpp: - * ace/Array_Map.h: - * ace/Array_Map.inl: - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_Acceptor.h: - * ace/Asynch_Connector.cpp: - * ace/Asynch_IO.cpp: - * ace/Asynch_IO.h: - * ace/Asynch_IO_Impl.cpp: - * ace/Asynch_IO_Impl.h: - * ace/Asynch_IO_Impl.inl: - * ace/Asynch_Pseudo_Task.cpp: - * ace/Asynch_Pseudo_Task.h: - * ace/Atomic_Op.cpp: - * ace/Atomic_Op.h: - * ace/Atomic_Op.inl: - * ace/Atomic_Op_T.cpp: - * ace/Atomic_Op_T.h: - * ace/Atomic_Op_T.inl: - * ace/Auto_Event.cpp: - * ace/Auto_Event.h: - * ace/Auto_Event.inl: - * ace/Auto_Functor.cpp: - * ace/Auto_Functor.h: - * ace/Auto_Functor.inl: - * ace/Auto_IncDec_T.cpp: - * ace/Auto_IncDec_T.h: - * ace/Auto_IncDec_T.inl: - * ace/Auto_Ptr.cpp: - * ace/Auto_Ptr.h: - * ace/Auto_Ptr.inl: - * ace/Barrier.cpp: - * ace/Barrier.h: - * ace/Barrier.inl: - * ace/Base_Thread_Adapter.cpp: - * ace/Base_Thread_Adapter.h: - * ace/Base_Thread_Adapter.inl: - * ace/Based_Pointer_Repository.cpp: - * ace/Based_Pointer_Repository.h: - * ace/Based_Pointer_T.cpp: - * ace/Based_Pointer_T.h: - * ace/Based_Pointer_T.inl: - * ace/Basic_Stats.cpp: - * ace/Basic_Stats.h: - * ace/Basic_Stats.inl: - * ace/Basic_Types.cpp: - * ace/Basic_Types.h: - * ace/Basic_Types.inl: - * ace/Bound_Ptr.h: - * ace/Bound_Ptr.inl: - * ace/CDR_Base.cpp: - * ace/CDR_Base.h: - * ace/CDR_Base.inl: - * ace/CDR_Size.cpp: - * ace/CDR_Size.h: - * ace/CDR_Size.inl: - * ace/CDR_Stream.cpp: - * ace/CE_Screen_Output.cpp: - * ace/CE_Screen_Output.h: - * ace/Cache_Map_Manager_T.cpp: - * ace/Cache_Map_Manager_T.h: - * ace/Cache_Map_Manager_T.inl: - * ace/Cached_Connect_Strategy_T.cpp: - * ace/Cached_Connect_Strategy_T.h: - * ace/Caching_Strategies_T.cpp: - * ace/Caching_Strategies_T.h: - * ace/Caching_Strategies_T.inl: - * ace/Caching_Utility_T.cpp: - * ace/Caching_Utility_T.h: - * ace/Capabilities.cpp: - * ace/Capabilities.h: - * ace/Capabilities.inl: - * ace/Cleanup.cpp: - * ace/Cleanup.h: - * ace/Cleanup.inl: - * ace/Cleanup_Strategies_T.cpp: - * ace/Codecs.cpp: - * ace/Codecs.h: - * ace/Codeset_IBM1047.cpp: - * ace/Codeset_IBM1047.h: - * ace/Codeset_Registry.inl: - * ace/Condition_Recursive_Thread_Mutex.cpp: - * ace/Condition_Recursive_Thread_Mutex.h: - * ace/Condition_T.cpp: - * ace/Condition_T.h: - * ace/Condition_T.inl: - * ace/Condition_Thread_Mutex.cpp: - * ace/Condition_Thread_Mutex.h: - * ace/Condition_Thread_Mutex.inl: - * ace/Configuration.cpp: - * ace/Configuration.h: - * ace/Configuration_Import_Export.cpp: - * ace/Configuration_Import_Export.h: - * ace/Connection_Recycling_Strategy.cpp: - * ace/Connection_Recycling_Strategy.h: - * ace/Connector.cpp: - * ace/Connector.h: - * ace/Container_Instantiations.cpp: - * ace/Containers.cpp: - * ace/Containers.h: - * ace/Containers.inl: - * ace/Containers_T.cpp: - * ace/Containers_T.h: - * ace/Containers_T.inl: - * ace/Copy_Disabled.h: - * ace/Countdown_Time.cpp: - * ace/Countdown_Time.h: - * ace/DEV.cpp: - * ace/DEV.h: - * ace/DEV.inl: - * ace/DEV_Addr.cpp: - * ace/DEV_Addr.h: - * ace/DEV_Addr.inl: - * ace/DEV_Connector.cpp: - * ace/DEV_Connector.h: - * ace/DEV_Connector.inl: - * ace/DEV_IO.cpp: - * ace/DEV_IO.h: - * ace/DEV_IO.inl: - * ace/DLL.cpp: - * ace/DLL.h: - * ace/DLL_Manager.cpp: - * ace/DLL_Manager.h: - * ace/Date_Time.h: - * ace/Date_Time.inl: - * ace/Dev_Poll_Reactor.cpp: - * ace/Dev_Poll_Reactor.h: - * ace/Dev_Poll_Reactor.inl: - * ace/Dirent.h: - * ace/Dirent.inl: - * ace/Dirent_Selector.cpp: - * ace/Dirent_Selector.h: - * ace/Dirent_Selector.inl: - * ace/Dump.cpp: - * ace/Dump.h: - * ace/Dump_T.cpp: - * ace/Dump_T.h: - * ace/Dynamic.cpp: - * ace/Dynamic.h: - * ace/Dynamic.inl: - * ace/Dynamic_Service.cpp: - * ace/Dynamic_Service.h: - * ace/Dynamic_Service.inl: - * ace/Dynamic_Service_Base.cpp: - * ace/Dynamic_Service_Base.h: - * ace/Env_Value_T.cpp: - * ace/Env_Value_T.h: - * ace/Env_Value_T.inl: - * ace/Event.cpp: - * ace/Event.h: - * ace/Event.inl: - * ace/Event_Handler.cpp: - * ace/Event_Handler.h: - * ace/Event_Handler.inl: - * ace/Event_Handler_T.cpp: - * ace/Event_Handler_T.h: - * ace/Event_Handler_T.inl: - * ace/FIFO.cpp: - * ace/FIFO.h: - * ace/FIFO.inl: - * ace/FIFO_Recv.cpp: - * ace/FIFO_Recv.h: - * ace/FIFO_Recv.inl: - * ace/FIFO_Recv_Msg.cpp: - * ace/FIFO_Recv_Msg.h: - * ace/FIFO_Recv_Msg.inl: - * ace/FIFO_Send.cpp: - * ace/FIFO_Send.h: - * ace/FIFO_Send.inl: - * ace/FIFO_Send_Msg.cpp: - * ace/FIFO_Send_Msg.h: - * ace/FIFO_Send_Msg.inl: - * ace/FILE.cpp: - * ace/FILE.h: - * ace/FILE.inl: - * ace/FILE_Addr.cpp: - * ace/FILE_Addr.h: - * ace/FILE_Addr.inl: - * ace/FILE_Connector.cpp: - * ace/FILE_Connector.h: - * ace/FILE_Connector.inl: - * ace/FILE_IO.cpp: - * ace/FILE_IO.h: - * ace/FILE_IO.inl: - * ace/File_Lock.cpp: - * ace/File_Lock.h: - * ace/File_Lock.inl: - * ace/Filecache.cpp: - * ace/Filecache.h: - * ace/FlReactor.cpp: - * ace/FlReactor.h: - * ace/Flag_Manip.cpp: - * ace/Flag_Manip.h: - * ace/Flag_Manip.inl: - * ace/Framework_Component.cpp: - * ace/Framework_Component.h: - * ace/Framework_Component.inl: - * ace/Framework_Component_T.cpp: - * ace/Framework_Component_T.h: - * ace/Free_List.cpp: - * ace/Free_List.h: - * ace/Functor.cpp: - * ace/Functor.h: - * ace/Functor.inl: - * ace/Functor_String.h: - * ace/Functor_String.inl: - * ace/Functor_T.cpp: - * ace/Functor_T.h: - * ace/Functor_T.inl: - * ace/Future.cpp: - * ace/Future.h: - * ace/Future_Set.cpp: - * ace/Future_Set.h: - * ace/Get_Opt.cpp: - * ace/Get_Opt.h: - * ace/Get_Opt.inl: - * ace/Global_Macros.h: - * ace/Guard_T.cpp: - * ace/Guard_T.h: - * ace/Guard_T.inl: - * ace/Handle_Gobbler.h: - * ace/Handle_Gobbler.inl: - * ace/Handle_Ops.cpp: - * ace/Handle_Ops.h: - * ace/Handle_Set.cpp: - * ace/Handle_Set.h: - * ace/Handle_Set.inl: - * ace/Hash_Cache_Map_Manager_T.cpp: - * ace/Hash_Cache_Map_Manager_T.h: - * ace/Hash_Cache_Map_Manager_T.inl: - * ace/Hash_Map_Manager.cpp: - * ace/Hash_Map_Manager.h: - * ace/Hash_Map_Manager_T.cpp: - * ace/Hash_Map_Manager_T.h: - * ace/Hash_Map_Manager_T.inl: - * ace/Hash_Map_With_Allocator_T.cpp: - * ace/Hash_Map_With_Allocator_T.h: - * ace/Hash_Map_With_Allocator_T.inl: - * ace/Hashable.cpp: - * ace/Hashable.h: - * ace/Hashable.inl: - * ace/High_Res_Timer.cpp: - * ace/High_Res_Timer.h: - * ace/High_Res_Timer.inl: - * ace/ICMP_Socket.cpp: - * ace/ICMP_Socket.h: - * ace/ICMP_Socket.inl: - * ace/INET_Addr.cpp: - * ace/INET_Addr.h: - * ace/INET_Addr.inl: - * ace/IOStream.cpp: - * ace/IOStream.h: - * ace/IOStream_T.cpp: - * ace/IOStream_T.h: - * ace/IOStream_T.inl: - * ace/IO_Cntl_Msg.cpp: - * ace/IO_Cntl_Msg.h: - * ace/IO_Cntl_Msg.inl: - * ace/IO_SAP.cpp: - * ace/IO_SAP.h: - * ace/IO_SAP.inl: - * ace/IPC_SAP.cpp: - * ace/IPC_SAP.h: - * ace/IPC_SAP.inl: - * ace/If_Then_Else.h: - * ace/Init_ACE.cpp: - * ace/Init_ACE.h: - * ace/Intrusive_List.cpp: - * ace/Intrusive_List.h: - * ace/Intrusive_List.inl: - * ace/Intrusive_List_Node.cpp: - * ace/Intrusive_List_Node.h: - * ace/Intrusive_List_Node.inl: - * ace/LOCK_SOCK_Acceptor.cpp: - * ace/LOCK_SOCK_Acceptor.h: - * ace/LSOCK.cpp: - * ace/LSOCK.h: - * ace/LSOCK.inl: - * ace/LSOCK_Acceptor.cpp: - * ace/LSOCK_Acceptor.h: - * ace/LSOCK_CODgram.cpp: - * ace/LSOCK_CODgram.h: - * ace/LSOCK_CODgram.inl: - * ace/LSOCK_Connector.cpp: - * ace/LSOCK_Connector.h: - * ace/LSOCK_Connector.inl: - * ace/LSOCK_Dgram.cpp: - * ace/LSOCK_Dgram.h: - * ace/LSOCK_Dgram.inl: - * ace/LSOCK_Stream.cpp: - * ace/LSOCK_Stream.h: - * ace/LSOCK_Stream.inl: - * ace/Lib_Find.cpp: - * ace/Lib_Find.h: - * ace/Local_Memory_Pool.cpp: - * ace/Local_Memory_Pool.h: - * ace/Local_Name_Space.cpp: - * ace/Local_Name_Space.h: - * ace/Local_Name_Space_T.cpp: - * ace/Local_Name_Space_T.h: - * ace/Local_Tokens.cpp: - * ace/Local_Tokens.h: - * ace/Local_Tokens.inl: - * ace/Lock.cpp: - * ace/Lock.h: - * ace/Lock.inl: - * ace/Lock_Adapter_T.cpp: - * ace/Lock_Adapter_T.h: - * ace/Lock_Adapter_T.inl: - * ace/Log_Msg.cpp: - * ace/Log_Msg.h: - * ace/Log_Msg_Backend.cpp: - * ace/Log_Msg_Backend.h: - * ace/Log_Msg_Callback.cpp: - * ace/Log_Msg_Callback.h: - * ace/Log_Msg_IPC.cpp: - * ace/Log_Msg_IPC.h: - * ace/Log_Msg_NT_Event_Log.cpp: - * ace/Log_Msg_NT_Event_Log.h: - * ace/Log_Msg_UNIX_Syslog.cpp: - * ace/Log_Msg_UNIX_Syslog.h: - * ace/Log_Priority.h: - * ace/Log_Record.cpp: - * ace/Log_Record.h: - * ace/Log_Record.inl: - * ace/Logging_Strategy.cpp: - * ace/Logging_Strategy.h: - * ace/MEM_Acceptor.cpp: - * ace/MEM_Acceptor.h: - * ace/MEM_Acceptor.inl: - * ace/MEM_Addr.cpp: - * ace/MEM_Addr.h: - * ace/MEM_Addr.inl: - * ace/MEM_Connector.cpp: - * ace/MEM_Connector.h: - * ace/MEM_Connector.inl: - * ace/MEM_IO.cpp: - * ace/MEM_IO.h: - * ace/MEM_IO.inl: - * ace/MEM_SAP.cpp: - * ace/MEM_SAP.h: - * ace/MEM_SAP.inl: - * ace/MEM_Stream.cpp: - * ace/MEM_Stream.h: - * ace/MEM_Stream.inl: - * ace/MMAP_Memory_Pool.cpp: - * ace/MMAP_Memory_Pool.h: - * ace/Makefile.am: - * ace/Malloc.cpp: - * ace/Malloc.h: - * ace/Malloc.inl: - * ace/Malloc_Allocator.cpp: - * ace/Malloc_Allocator.inl: - * ace/Malloc_Base.h: - * ace/Malloc_Instantiations.cpp: - * ace/Malloc_T.cpp: - * ace/Malloc_T.h: - * ace/Malloc_T.inl: - * ace/Managed_Object.cpp: - * ace/Managed_Object.h: - * ace/Managed_Object.inl: - * ace/Manual_Event.cpp: - * ace/Manual_Event.h: - * ace/Manual_Event.inl: - * ace/Map.cpp: - * ace/Map.h: - * ace/Map_Manager.cpp: - * ace/Map_Manager.h: - * ace/Map_Manager.inl: - * ace/Map_T.cpp: - * ace/Map_T.h: - * ace/Map_T.inl: - * ace/Mem_Map.cpp: - * ace/Mem_Map.h: - * ace/Mem_Map.inl: - * ace/Message_Block.cpp: - * ace/Message_Block.h: - * ace/Message_Block.inl: - * ace/Message_Block_T.cpp: - * ace/Message_Block_T.h: - * ace/Message_Block_T.inl: - * ace/Message_Queue.cpp: - * ace/Message_Queue.h: - * ace/Message_Queue.inl: - * ace/Message_Queue_T.cpp: - * ace/Message_Queue_T.h: - * ace/Method_Object.h: - * ace/Method_Request.cpp: - * ace/Method_Request.h: - * ace/Metrics_Cache_T.cpp: - * ace/Metrics_Cache_T.h: - * ace/Metrics_Cache_T.inl: - * ace/Min_Max.h: - * ace/Module.cpp: - * ace/Module.h: - * ace/Module.inl: - * ace/Msg_WFMO_Reactor.cpp: - * ace/Msg_WFMO_Reactor.h: - * ace/Msg_WFMO_Reactor.inl: - * ace/Multihomed_INET_Addr.cpp: - * ace/Multihomed_INET_Addr.h: - * ace/Multihomed_INET_Addr.inl: - * ace/Multiplexor.h: - * ace/Multiplexor.inl: - * ace/Mutex.cpp: - * ace/Mutex.h: - * ace/Mutex.inl: - * ace/NT_Service.cpp: - * ace/NT_Service.h: - * ace/NT_Service.inl: - * ace/Name_Proxy.cpp: - * ace/Name_Proxy.h: - * ace/Name_Request_Reply.cpp: - * ace/Name_Request_Reply.h: - * ace/Name_Space.cpp: - * ace/Name_Space.h: - * ace/Naming_Context.cpp: - * ace/Naming_Context.h: - * ace/Node.cpp: - * ace/Node.h: - * ace/Notification_Strategy.cpp: - * ace/Notification_Strategy.h: - * ace/Notification_Strategy.inl: - * ace/Null_Barrier.h: - * ace/Null_Condition.h: - * ace/Null_Mutex.h: - * ace/Null_Semaphore.h: - * ace/OS.h: - * ace/OS_Errno.cpp: - * ace/OS_Errno.h: - * ace/OS_Errno.inl: - * ace/OS_Log_Msg_Attributes.h: - * ace/OS_Log_Msg_Attributes.inl: - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.inl: - * ace/OS_NS_arpa_inet.cpp: - * ace/OS_NS_arpa_inet.h: - * ace/OS_NS_arpa_inet.inl: - * ace/OS_NS_ctype.h: - * ace/OS_NS_ctype.inl: - * ace/OS_NS_dirent.cpp: - * ace/OS_NS_dirent.h: - * ace/OS_NS_dirent.inl: - * ace/OS_NS_dlfcn.cpp: - * ace/OS_NS_dlfcn.h: - * ace/OS_NS_dlfcn.inl: - * ace/OS_NS_errno.h: - * ace/OS_NS_errno.inl: - * ace/OS_NS_fcntl.cpp: - * ace/OS_NS_fcntl.h: - * ace/OS_NS_fcntl.inl: - * ace/OS_NS_math.cpp: - * ace/OS_NS_math.h: - * ace/OS_NS_math.inl: - * ace/OS_NS_netdb.cpp: - * ace/OS_NS_netdb.h: - * ace/OS_NS_netdb.inl: - * ace/OS_NS_poll.cpp: - * ace/OS_NS_poll.h: - * ace/OS_NS_poll.inl: - * ace/OS_NS_pwd.cpp: - * ace/OS_NS_pwd.h: - * ace/OS_NS_pwd.inl: - * ace/OS_NS_regex.cpp: - * ace/OS_NS_regex.h: - * ace/OS_NS_regex.inl: - * ace/OS_NS_signal.cpp: - * ace/OS_NS_signal.h: - * ace/OS_NS_signal.inl: - * ace/OS_NS_stdio.cpp: - * ace/OS_NS_stdio.h: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_stdlib.cpp: - * ace/OS_NS_stdlib.h: - * ace/OS_NS_stdlib.inl: - * ace/OS_NS_string.cpp: - * ace/OS_NS_string.h: - * ace/OS_NS_string.inl: - * ace/OS_NS_strings.cpp: - * ace/OS_NS_strings.h: - * ace/OS_NS_strings.inl: - * ace/OS_NS_stropts.cpp: - * ace/OS_NS_stropts.h: - * ace/OS_NS_stropts.inl: - * ace/OS_NS_sys_mman.cpp: - * ace/OS_NS_sys_mman.h: - * ace/OS_NS_sys_mman.inl: - * ace/OS_NS_sys_msg.cpp: - * ace/OS_NS_sys_msg.inl: - * ace/OS_NS_sys_resource.cpp: - * ace/OS_NS_sys_resource.h: - * ace/OS_NS_sys_resource.inl: - * ace/OS_NS_sys_select.cpp: - * ace/OS_NS_sys_select.h: - * ace/OS_NS_sys_select.inl: - * ace/OS_NS_sys_shm.cpp: - * ace/OS_NS_sys_shm.h: - * ace/OS_NS_sys_shm.inl: - * ace/OS_NS_sys_socket.cpp: - * ace/OS_NS_sys_socket.h: - * ace/OS_NS_sys_socket.inl: - * ace/OS_NS_sys_stat.cpp: - * ace/OS_NS_sys_stat.h: - * ace/OS_NS_sys_stat.inl: - * ace/OS_NS_sys_time.cpp: - * ace/OS_NS_sys_time.h: - * ace/OS_NS_sys_time.inl: - * ace/OS_NS_sys_uio.cpp: - * ace/OS_NS_sys_uio.h: - * ace/OS_NS_sys_uio.inl: - * ace/OS_NS_sys_utsname.cpp: - * ace/OS_NS_sys_utsname.h: - * ace/OS_NS_sys_utsname.inl: - * ace/OS_NS_sys_wait.cpp: - * ace/OS_NS_sys_wait.h: - * ace/OS_NS_sys_wait.inl: - * ace/OS_NS_time.cpp: - * ace/OS_NS_time.h: - * ace/OS_NS_time.inl: - * ace/OS_NS_unistd.cpp: - * ace/OS_NS_unistd.h: - * ace/OS_NS_unistd.inl: - * ace/OS_NS_wchar.cpp: - * ace/OS_NS_wchar.h: - * ace/OS_NS_wchar.inl: - * ace/OS_QoS.cpp: - * ace/OS_QoS.h: - * ace/OS_TLI.h: - * ace/OS_TLI.inl: - * ace/OS_Thread_Adapter.cpp: - * ace/OS_Thread_Adapter.h: - * ace/OS_main.cpp: - * ace/OS_main.h: - * ace/PI_Malloc.cpp: - * ace/PI_Malloc.h: - * ace/PI_Malloc.inl: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_CB_Proactor.cpp: - * ace/POSIX_CB_Proactor.h: - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Proactor.h: - * ace/POSIX_Proactor.inl: - * ace/Pagefile_Memory_Pool.cpp: - * ace/Pagefile_Memory_Pool.h: - * ace/Pagefile_Memory_Pool.inl: - * ace/Pair.cpp: - * ace/Pair.h: - * ace/Pair_T.cpp: - * ace/Pair_T.h: - * ace/Pair_T.inl: - * ace/Parse_Node.cpp: - * ace/Parse_Node.h: - * ace/Ping_Socket.cpp: - * ace/Ping_Socket.h: - * ace/Ping_Socket.inl: - * ace/Pipe.cpp: - * ace/Pipe.h: - * ace/Pipe.inl: - * ace/Priority_Reactor.cpp: - * ace/Priority_Reactor.h: - * ace/Proactor.cpp: - * ace/Proactor.h: - * ace/Proactor.inl: - * ace/Proactor_Impl.cpp: - * ace/Proactor_Impl.h: - * ace/Process.cpp: - * ace/Process.h: - * ace/Process.inl: - * ace/Process_Manager.cpp: - * ace/Process_Manager.h: - * ace/Process_Manager.inl: - * ace/Process_Mutex.cpp: - * ace/Process_Mutex.h: - * ace/Process_Mutex.inl: - * ace/Process_Semaphore.cpp: - * ace/Process_Semaphore.h: - * ace/Process_Semaphore.inl: - * ace/Profile_Timer.cpp: - * ace/Profile_Timer.h: - * ace/Profile_Timer.inl: - * ace/QtReactor.cpp: - * ace/QtReactor.h: - * ace/RB_Tree.cpp: - * ace/RB_Tree.h: - * ace/RB_Tree.inl: - * ace/RW_Mutex.cpp: - * ace/RW_Mutex.h: - * ace/RW_Mutex.inl: - * ace/RW_Process_Mutex.cpp: - * ace/RW_Process_Mutex.h: - * ace/RW_Process_Mutex.inl: - * ace/RW_Thread_Mutex.cpp: - * ace/RW_Thread_Mutex.h: - * ace/RW_Thread_Mutex.inl: - * ace/Reactor.cpp: - * ace/Reactor.h: - * ace/Reactor.inl: - * ace/Reactor_Impl.cpp: - * ace/Reactor_Impl.h: - * ace/Reactor_Notification_Strategy.cpp: - * ace/Reactor_Notification_Strategy.h: - * ace/Reactor_Notification_Strategy.inl: - * ace/Reactor_Timer_Interface.cpp: - * ace/Reactor_Timer_Interface.h: - * ace/Reactor_Token_T.cpp: - * ace/Reactor_Token_T.h: - * ace/Read_Buffer.cpp: - * ace/Read_Buffer.h: - * ace/Read_Buffer.inl: - * ace/Recursive_Thread_Mutex.cpp: - * ace/Recursive_Thread_Mutex.h: - * ace/Recursive_Thread_Mutex.inl: - * ace/Recyclable.cpp: - * ace/Recyclable.h: - * ace/Recyclable.inl: - * ace/Refcountable.cpp: - * ace/Refcountable.h: - * ace/Refcountable.inl: - * ace/Refcounted_Auto_Ptr.cpp: - * ace/Refcounted_Auto_Ptr.h: - * ace/Refcounted_Auto_Ptr.inl: - * ace/Registry.cpp: - * ace/Registry.h: - * ace/Registry_Name_Space.cpp: - * ace/Registry_Name_Space.h: - * ace/Remote_Name_Space.cpp: - * ace/Remote_Name_Space.h: - * ace/Remote_Tokens.cpp: - * ace/Remote_Tokens.h: - * ace/Remote_Tokens.inl: - * ace/Reverse_Lock_T.cpp: - * ace/Reverse_Lock_T.h: - * ace/Reverse_Lock_T.inl: - * ace/SOCK.cpp: - * ace/SOCK.h: - * ace/SOCK.inl: - * ace/SOCK_Acceptor.cpp: - * ace/SOCK_Acceptor.h: - * ace/SOCK_Acceptor.inl: - * ace/SOCK_CODgram.cpp: - * ace/SOCK_CODgram.h: - * ace/SOCK_CODgram.inl: - * ace/SOCK_Connector.cpp: - * ace/SOCK_Connector.h: - * ace/SOCK_Connector.inl: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram.h: - * ace/SOCK_Dgram.inl: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/SOCK_Dgram_Bcast.h: - * ace/SOCK_Dgram_Bcast.inl: - * ace/SOCK_IO.cpp: - * ace/SOCK_IO.h: - * ace/SOCK_IO.inl: - * ace/SOCK_SEQPACK_Acceptor.cpp: - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/SOCK_SEQPACK_Acceptor.inl: - * ace/SOCK_SEQPACK_Association.cpp: - * ace/SOCK_SEQPACK_Association.h: - * ace/SOCK_SEQPACK_Association.inl: - * ace/SOCK_SEQPACK_Connector.cpp: - * ace/SOCK_SEQPACK_Connector.h: - * ace/SOCK_SEQPACK_Connector.inl: - * ace/SOCK_Stream.cpp: - * ace/SOCK_Stream.h: - * ace/SOCK_Stream.inl: - * ace/SPIPE.cpp: - * ace/SPIPE.h: - * ace/SPIPE.inl: - * ace/SPIPE_Acceptor.cpp: - * ace/SPIPE_Acceptor.h: - * ace/SPIPE_Addr.cpp: - * ace/SPIPE_Addr.h: - * ace/SPIPE_Addr.inl: - * ace/SPIPE_Connector.cpp: - * ace/SPIPE_Connector.h: - * ace/SPIPE_Connector.inl: - * ace/SPIPE_Stream.cpp: - * ace/SPIPE_Stream.inl: - * ace/SString.cpp: - * ace/SString.h: - * ace/SString.inl: - * ace/SStringfwd.h: - * ace/SUN_Proactor.cpp: - * ace/SUN_Proactor.h: - * ace/SV_Message.cpp: - * ace/SV_Message.h: - * ace/SV_Message.inl: - * ace/SV_Message_Queue.cpp: - * ace/SV_Message_Queue.h: - * ace/SV_Message_Queue.inl: - * ace/SV_Semaphore_Complex.cpp: - * ace/SV_Semaphore_Complex.h: - * ace/SV_Semaphore_Complex.inl: - * ace/SV_Semaphore_Simple.cpp: - * ace/SV_Semaphore_Simple.h: - * ace/SV_Semaphore_Simple.inl: - * ace/SV_Shared_Memory.cpp: - * ace/SV_Shared_Memory.h: - * ace/SV_Shared_Memory.inl: - * ace/Sample_History.cpp: - * ace/Sample_History.h: - * ace/Sample_History.inl: - * ace/Sbrk_Memory_Pool.cpp: - * ace/Sbrk_Memory_Pool.h: - * ace/Sched_Params.cpp: - * ace/Sched_Params.h: - * ace/Sched_Params.inl: - * ace/Select_Reactor.cpp: - * ace/Select_Reactor.h: - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_Base.inl: - * ace/Select_Reactor_T.cpp: - * ace/Select_Reactor_T.h: - * ace/Select_Reactor_T.inl: - * ace/Semaphore.cpp: - * ace/Semaphore.h: - * ace/Semaphore.inl: - * ace/Service_Config.cpp: - * ace/Service_Config.h: - * ace/Service_Config.inl: - * ace/Service_Manager.cpp: - * ace/Service_Manager.h: - * ace/Service_Manager.inl: - * ace/Service_Object.cpp: - * ace/Service_Object.h: - * ace/Service_Object.inl: - * ace/Service_Repository.cpp: - * ace/Service_Repository.h: - * ace/Service_Repository.inl: - * ace/Service_Templates.cpp: - * ace/Service_Types.cpp: - * ace/Service_Types.h: - * ace/Service_Types.inl: - * ace/Shared_Memory.cpp: - * ace/Shared_Memory.h: - * ace/Shared_Memory_MM.cpp: - * ace/Shared_Memory_MM.h: - * ace/Shared_Memory_MM.inl: - * ace/Shared_Memory_Pool.cpp: - * ace/Shared_Memory_Pool.h: - * ace/Shared_Memory_SV.cpp: - * ace/Shared_Memory_SV.h: - * ace/Shared_Memory_SV.inl: - * ace/Shared_Object.cpp: - * ace/Shared_Object.h: - * ace/Shared_Object.inl: - * ace/Signal.cpp: - * ace/Signal.h: - * ace/Signal.inl: - * ace/Singleton.cpp: - * ace/Singleton.h: - * ace/Singleton.inl: - * ace/Sock_Connect.cpp: - * ace/Sock_Connect.h: - * ace/Static_Object_Lock.h: - * ace/Stats.cpp: - * ace/Stats.h: - * ace/Stats.inl: - * ace/Strategies_T.cpp: - * ace/Strategies_T.h: - * ace/Strategies_T.inl: - * ace/Stream.cpp: - * ace/Stream.h: - * ace/Stream.inl: - * ace/Stream_Modules.cpp: - * ace/Stream_Modules.h: - * ace/String_Base.cpp: - * ace/String_Base.h: - * ace/String_Base.inl: - * ace/String_Base_Const.cpp: - * ace/String_Base_Const.h: - * ace/Svc_Conf.h: - * ace/Svc_Conf_Lexer_Guard.cpp: - * ace/Svc_Conf_Lexer_Guard.h: - * ace/Svc_Handler.cpp: - * ace/Svc_Handler.h: - * ace/Swap.cpp: - * ace/Swap.h: - * ace/Swap.inl: - * ace/Synch.cpp: - * ace/Synch_Options.cpp: - * ace/Synch_Options.h: - * ace/Synch_Options.inl: - * ace/Synch_T.cpp: - * ace/Synch_T.h: - * ace/Synch_Traits.h: - * ace/System_Time.cpp: - * ace/System_Time.h: - * ace/TLI.cpp: - * ace/TLI.h: - * ace/TLI.inl: - * ace/TLI_Acceptor.cpp: - * ace/TLI_Acceptor.h: - * ace/TLI_Connector.cpp: - * ace/TLI_Connector.h: - * ace/TLI_Connector.inl: - * ace/TLI_Stream.cpp: - * ace/TLI_Stream.h: - * ace/TLI_Stream.inl: - * ace/TP_Reactor.cpp: - * ace/TP_Reactor.h: - * ace/TP_Reactor.inl: - * ace/TSS_Adapter.cpp: - * ace/TSS_Adapter.h: - * ace/TSS_Adapter.inl: - * ace/TSS_T.cpp: - * ace/TSS_T.h: - * ace/TSS_T.inl: - * ace/TTY_IO.cpp: - * ace/TTY_IO.h: - * ace/Task.cpp: - * ace/Task.h: - * ace/Task.inl: - * ace/Task_Ex_T.cpp: - * ace/Task_Ex_T.h: - * ace/Task_Ex_T.inl: - * ace/Task_T.cpp: - * ace/Task_T.h: - * ace/Task_T.inl: - * ace/Template_Instantiations.cpp: - * ace/Test_and_Set.cpp: - * ace/Test_and_Set.h: - * ace/Thread.cpp: - * ace/Thread.h: - * ace/Thread.inl: - * ace/Thread_Adapter.cpp: - * ace/Thread_Adapter.h: - * ace/Thread_Adapter.inl: - * ace/Thread_Control.cpp: - * ace/Thread_Control.h: - * ace/Thread_Control.inl: - * ace/Thread_Exit.cpp: - * ace/Thread_Exit.h: - * ace/Thread_Hook.cpp: - * ace/Thread_Hook.h: - * ace/Thread_Manager.cpp: - * ace/Thread_Manager.h: - * ace/Thread_Manager.inl: - * ace/Thread_Mutex.cpp: - * ace/Thread_Mutex.h: - * ace/Thread_Mutex.inl: - * ace/Thread_Semaphore.cpp: - * ace/Thread_Semaphore.h: - * ace/Thread_Semaphore.inl: - * ace/Time_Request_Reply.cpp: - * ace/Time_Request_Reply.h: - * ace/Time_Value.cpp: - * ace/Time_Value.h: - * ace/Time_Value.inl: - * ace/Timeprobe.cpp: - * ace/Timeprobe.h: - * ace/Timeprobe.inl: - * ace/Timeprobe_T.cpp: - * ace/Timeprobe_T.h: - * ace/Timer_Hash.cpp: - * ace/Timer_Hash.h: - * ace/Timer_Heap.cpp: - * ace/Timer_Heap.h: - * ace/Timer_Heap_T.cpp: - * ace/Timer_Heap_T.h: - * ace/Timer_List.cpp: - * ace/Timer_List.h: - * ace/Timer_Queue.cpp: - * ace/Timer_Queue.h: - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_Adapters.h: - * ace/Timer_Queue_Adapters.inl: - * ace/Timer_Queue_T.cpp: - * ace/Timer_Queue_T.h: - * ace/Timer_Queue_T.inl: - * ace/Timer_Queuefwd.h: - * ace/Timer_Wheel.cpp: - * ace/Timer_Wheel.h: - * ace/Timer_Wheel_T.cpp: - * ace/Timer_Wheel_T.h: - * ace/TkReactor.cpp: - * ace/TkReactor.h: - * ace/Token.cpp: - * ace/Token.h: - * ace/Token.inl: - * ace/Token_Collection.cpp: - * ace/Token_Collection.h: - * ace/Token_Collection.inl: - * ace/Token_Invariants.cpp: - * ace/Token_Invariants.h: - * ace/Token_Manager.cpp: - * ace/Token_Manager.h: - * ace/Token_Manager.inl: - * ace/Token_Request_Reply.cpp: - * ace/Token_Request_Reply.h: - * ace/Token_Request_Reply.inl: - * ace/Trace.cpp: - * ace/Trace.h: - * ace/Typed_SV_Message.cpp: - * ace/Typed_SV_Message.h: - * ace/Typed_SV_Message.inl: - * ace/Typed_SV_Message_Queue.cpp: - * ace/Typed_SV_Message_Queue.h: - * ace/Typed_SV_Message_Queue.inl: - * ace/UNIX_Addr.cpp: - * ace/UNIX_Addr.h: - * ace/UNIX_Addr.inl: - * ace/UPIPE_Acceptor.cpp: - * ace/UPIPE_Acceptor.h: - * ace/UPIPE_Acceptor.inl: - * ace/UPIPE_Addr.h: - * ace/UPIPE_Connector.cpp: - * ace/UPIPE_Connector.h: - * ace/UPIPE_Connector.inl: - * ace/UPIPE_Stream.cpp: - * ace/UPIPE_Stream.h: - * ace/UPIPE_Stream.inl: - * ace/UUID.cpp: - * ace/UUID.h: - * ace/UUID.inl: - * ace/Unbounded_Queue.cpp: - * ace/Unbounded_Queue.h: - * ace/Unbounded_Queue.inl: - * ace/Unbounded_Set.cpp: - * ace/Unbounded_Set.h: - * ace/Unbounded_Set.inl: - * ace/Value_Ptr.h: - * ace/Vector_T.cpp: - * ace/Vector_T.h: - * ace/Vector_T.inl: - * ace/WFMO_Reactor.cpp: - * ace/WFMO_Reactor.h: - * ace/WFMO_Reactor.inl: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Asynch_IO.h: - * ace/WIN32_Proactor.cpp: - * ace/WIN32_Proactor.h: - * ace/XML_Svc_Conf.cpp: - * ace/XML_Svc_Conf.h: - * ace/XTI_ATM_Mcast.cpp: - * ace/XTI_ATM_Mcast.h: - * ace/XTI_ATM_Mcast.inl: - * ace/XtReactor.cpp: - * ace/XtReactor.h: - * ace/ace.mpc: - * ace/ace_wchar.h: - * ace/ace_wchar.inl: - * ace/config-lite.h: - * ace/gethrtime.cpp: - * ace/SSL/SSL_Asynch_Stream.cpp: - * ace/SSL/SSL_Asynch_Stream.h: - * ace/SSL/SSL_Context.cpp: - * ace/SSL/SSL_Context.h: - * ace/SSL/SSL_Context.inl: - * ace/SSL/SSL_SOCK.cpp: - * ace/SSL/SSL_SOCK.h: - * ace/SSL/SSL_SOCK.i: - * ace/SSL/SSL_SOCK_Acceptor.cpp: - * ace/SSL/SSL_SOCK_Acceptor.h: - * ace/SSL/SSL_SOCK_Acceptor.i: - * ace/SSL/SSL_SOCK_Connector.cpp: - * ace/SSL/SSL_SOCK_Connector.h: - * ace/SSL/SSL_SOCK_Connector.i: - * ace/SSL/SSL_SOCK_Stream.cpp: - * ace/SSL/SSL_SOCK_Stream.h: - * ace/SSL/SSL_SOCK_Stream.i: - - Added versioned namespace support. - - Removed some empty and/or unnecessary `.cpp' and `.inl' files. - - Hid some static class member constants declared in headers in - the corresponding implementation `.cpp' file. - -Thu Oct 27 11:29:12 UTC 2005 Johnny Willemsen - - * tests/Process_Strategy_Test.cpp: - * tests/Reactor_Dispatch_Order_Test.cpp: - 64bit fixes - -Thu Oct 27 11:25:12 UTC 2005 Johnny Willemsen - - * examples/Threads/barrier2.cpp: - 64bit fixes - -Thu Oct 27 11:58:07 2005 Simon McQueen - - * bin/tao_other_tests.lst: - - Three new FT regression tests. - -Thu Oct 27 09:35:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO Bug_2201_Regression test - -Wed Oct 26 17:22:12 2005 Don Busch - - * bin/MakeProjectCreator/config/event_serv.mpb - * bin/MakeProjectCreator/config/messaging.mpb - * bin/MakeProjectCreator/config/messaging_optional.mpb - * bin/MakeProjectCreator/config/naming_serv.mpb - - This is a footprint reduction fix, eliminating a library dependency. - TAO 1.4 introduced a new dependency on the Messaging, Valuetype, - PI, and CodecFactory libraries for the CosNaming_Serv and - CosEvent_Serv libraries. Turning off CORBA Messaging did not remove - this dependency. Thus, any application that uses CosNaming_Serv or - CosEvent_Serv, but not CORBA Messaging, depends on those libraries - anyway. This change eliminates the CosNaming_Serv and CosEvent_Serv - dependencies on Messaging (and thus PI, CodecFactory, and Valuetype) - when CORBA Messaging and Interceptors are turned off. It reduces - the footprint in that case by about 600K. - There is a TAO ChangeLog entry with the same timestamp that - descibes the TAO changes. - -Wed Oct 26 12:26:01 2005 Ossama Othman - - * ace/Codeset_Registry.cpp (locale_to_registry_i): - (registry_to_locale_i): - - Corrected reversed destination and source arguments in memcpy() - call. - - Improved const correctness. Revealed the above memcpy() - problem. - - * ace/Codeset_Registry.h: - * ace/Codeset_Registry_db.cpp: - - Made registry entry array "const" to prevent the above memcpy() - problem from being potentially reintroduced in the future. Also - provides the compiler with additional optimization opportunities - (e.g. placing the array in read-only memory). - - * apps/mkcsregdb/mkcsregdb.cpp (init_output, fini_output): - - Updated output to generate an array of const registry entries in - accordance with the changes made to ace/Codeset_Registry.h. - -Wed Oct 26 15:45:12 UTC 2005 Johnny Willemsen - - * bin/msvc_cidlc.pl: - Print an error if no configurations have been build, at that moment - we just didn't build something which we have to handle as error - -Wed Oct 26 12:58:17 2005 Simon McQueen - - * ace/OS_NS_stdio.inl: - - Added a ACE_WIN32 implementation for ACE_OS::vsnprintf for - wide chars using ::_vsnwprintf, in the style of the existing - ACE_OS::vsnprintf for normal chars. - - This (hopefully) fixes bug #2208. - -Tue Oct 25 22:18:03 2005 Ossama Othman - - * ace/CDR_Stream.h (OutputCDR_Auto_Reset): - * ace/CDR_Stream.inl (OutputCDR_Auto_Reset): - - Prepend "ACE_" to this class (described in ChangeLog entry "Fri - Aug 26 11:43:01 2005 Justin Michel ") to - address potential global namespace pollution issues, and to be - consistent with ACE naming conventions. - - Adding missing ACE_Export. Addresses unresolved symbol errors - in Windows and g++ 4 builds when inlining is disabled and - TAO_RESET_OUTPUT_CDR_AFTER_SEND is defined to 1. - - Use "this" pointer to reference class members, as dictated by - ACE coding conventions/guidelines. - -Tue Oct 25 09:05:47 MST 2005 Yan Dai - - * bin/msvc_static_order.lst: - - Rolled back - "Mon Oct 24 12:58:45 MST 2005 Yan Dai " change, - the entry should be project file name. - -Tue Oct 25 08:57:12 UTC 2005 Johnny Willemsen - - * ace/config-qnx-rtp-62x.h: - Added ACE_HAS_3_PARAM_WCSTOK - -Tue Oct 25 08:46:12 UTC 2005 Johnny Willemsen - - * tests/Pipe_Test.cpp: - Fixed invalid assert - -Mon Oct 24 12:58:45 MST 2005 Yan Dai - - * bin/msvc_static_order.lst: - - Corrected the entry TAO/tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test. - The library name should be used instead of project name. - -Mon Oct 24 10:21:39 2005 Ossama Othman - - * docs/ACE-guidelines.html: - - Added shared library guidelines. - -Mon Oct 24 14:52:12 UTC 2005 Johnny Willemsen - - - * ace/OS_NS_Thread.inl: - Fixed typo in VxWorks part - - * ace/config-vxworks5.x.h: - Added some extra ACE_LACKS_x for VxWorks - -Mon Oct 24 07:19:29 2005 Douglas C. Schmidt - - * ace/Dev_Poll_Reactor.cpp: Fixed a couple of bugs that - were causing core dumps. Thanks to Oh Yoon Sik - for these fixes. - -Sun Oct 23 13:05:33 2005 Douglas C. Schmidt - - * tests/Pipe_Test.cpp (run_main): Updated this test to be a bit - cleaner. - - * tests/Dirent_Test.cpp: Fixed a typo in the comments - this test - exericses the ACE_Dirent class, not the ACE_OS_Dirent class. - -Fri Oct 21 07:46:47 2005 Douglas C. Schmidt - - * ace/Dev_Poll_Reactor.cpp (open): Set notification pipe into - non-blocking mode to prevent deadlock. Thanks to Oh Yoon Sik - for this fix. - -Mon Oct 24 10:55:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Corrected the way we pass the include paths to windres - -Mon Oct 24 08:41:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Pass RCFLAGS to the resource compiler - -Mon Oct 24 08:37:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_unistd.{h,inl}: - 64bit fixes - -Mon Oct 24 08:32:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Generate includes for the resource compiler, this fixes compile - problems of the resource file when it contains includes that - expect an include path being set - -Mon Oct 24 06:58:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/ace_qt.mpb: - Update to enable to define specific versions of the - QT library(-ies) needed to be linked for Windows based - builds as with *nix based builds. - -Sun Oct 23 22:27:45 2005 Ossama Othman - - * ace/Global_Macros.h: - * ace/Versioned_Namespace.h: - - Disable versioned namespace support for MSVC++ 6. It's - preprocessor can't handle the required macro expansions. - -Sun Oct 23 21:48:15 2005 Ossama Othman - - * ace/README: - - Added documentation that describes how to override the default - versioned namespace name when ACE_HAS_VERSIONED_NAMESPACE is - defined. - - * ace/Version.h: - - Removed "ace/Versioned_Namespace.h" include directive. It - caused some resource compilers on Windows some grief. - - * ace/Versioned_Namespace.h: - - Updated required header filename in preprocessor error message. - This header should now be included through "ace/config-lite.h". - - * ace/config-lite.h: - - Include "ace/Version.h" and "ace/Versioned_Namespace.h" to pull - in versioned namespace support (disabled by default). - - * ace/post.h: - * ace/pre.h: - - Removed versioned namespace support. Versioned namespace - declarations must now be added directly to the appropriate ACE - library headers. Addresses premature closure of versioned - namespace. - -Sun Oct 23 06:47:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - Generate new RC_FLAGS with the includes that need to be passed to - the resource compiler - - * include/makeinclude/build_dll.bor: - * include/makeinclude/build_exe.bor: - Use the new RC_FLAGS - -Sat Oct 22 11:23:12 UTC 2005 Johnny Willemsen - - * ace/Codeset_Registry.h: - Doxygen improvements - -Fri Oct 21 14:28:54 MST 2005 Yan Dai - - * bin/MakeProjectCreator/config/csd_pt_test_exe.mpb: - - Added dependency on pi base project since the PI.h is included - in the test application for the static initialization. - -Fri Oct 21 10:54:44 MST 2005 Yan Dai - - * bin/msvc_static_order.lst: - - Added TAO/tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib. - -Fri Oct 21 11:44:33 2005 Arvind S. Krishna - - * ace/CDR_Stream.h - - Fixed a typo in the optimization description of - ACE_LACKS_CDR_ALIGNMENT flag. - -Fri Oct 21 07:09:57 2005 J.T. Conklin - - * bin/msvc_static_order.lst: - - Add CosEvent_IDL project before CosEvent, CosEvent_Skel, and - CosEvent_Serv. - -Fri Oct 21 12:54:12 UTC 2005 Johnny Willemsen - - * ace/Proactor.h: - Added virtual destructor to the dummy ACE_Proactor that is - enabled when the ACE_Proactor can't be used - -Fri Oct 21 12:48:12 UTC 2005 Johnny Willemsen - - * ace/Log_Msg.cpp: - Fixed compile problem in Linux builds - -Fri Oct 21 12:39:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_unistd.{h,inl} (sbrk): - Use ptrdiff_t as argument type to fix 64bit conversions - -Fri Oct 21 12:32:12 UTC 2005 Johnny Willemsen - - * ace/Message_Queue_T.{h,cpp}: - Changed cur_count to size_t and use prefix operators instead - of postfix - -Fri Oct 21 11:03:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/compiler.bor: - BCBVER must be explicitly defined by the end user and must - be set to a supported value, else just don't build. - -Fri Oct 21 10:24:12 UTC 2005 Johnny Willemsen - - * ace/Log_Msg.cpp (log) - Check for passing of NULL pointers to %C and %w - formatting strings and replace them with "(null)" to avoid - crashes. Thanks to Scooter for - reporting this. Fixes bugzilla bug 2276 - -Thu Oct 20 22:20:26 2005 Douglas C. Schmidt - - * ace/Dev_Poll_Reactor.cpp (open): Disabling the notify pipe was - failing, but now it works. Thanks to Oh Yoon Sik for this fix. - -Thu Oct 20 14:36:12 UTC 2005 Johnny Willemsen - - * ace/CDR_Base.cpp: - Removed character before #include - -Thu Oct 20 08:53:47 2005 Arvind S. Krishna - - * ace/CDR_Base.cpp: - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - * ace/CDR_Stream.inl: - * ace/Message_Block.cpp: - - CORBA specification mandates alignment of basic types to their - natural boundaries. However, in certain situations (1) where - such alignment is not needed by the platform and/or (2) - homogeneous systems exists on the client and server sides, this - alignment can be ignored to improve (de)marshaling - efficiency. This commit adds the ACE_LACKS_CDR_ALIGNMENT flag to - the CDR streams that enables applications to ignore alignment - during (de)marshaling. This macro should be used when ACE_CDR is - both the (de)marshaler. Additionally, use this option only when - byte orders of the two machines are the same. This restriction - is temporary and will be removed in a subsequent commit. - -Thu Oct 29 11:09:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_unistd.{h,inl}: - Changed the return value and arguments of ualarm from u_int - to u_long to fix 64bit problems - -Wed Oct 19 18:57:53 2005 Douglas C. Schmidt - - * ace/OS_NS_stdio.inl (flock_init): Only allocate the - memory for the name if the call to ACE_OS::open() succeeds. - This fixes a subtle memory leak. Thanks to Sandeep Deshpande - for this fix! - -Wed Oct 19 09:56:31 2005 Ossama Othman - - * include/makeinclude/platform_macosx_tiger_gcc4.GNU: - - 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++. Thanks to - Will, Kitty and J.T. for testing and tracking the problem. - -Wed Oct 19 09:26:34 2005 Ossama Othman - - * ace/ACE.h (strdelete): - - Declare this function with the ACE_NAMESPACE_INLINE_FUNCTION. - Addresses case where this method is inlined, and should not be - marked "extern". - -Wed Oct 19 09:23:13 2005 Ossama Othman - - * ace/pre.h: - - Moved include directive for "ace/Version.h" before existing - pragmas in this file. Addresses Borland preprocessor warnings - regarding duplicate "pushed" options. Thanks to Johnny for - suggesting this fix. - -Wed Oct 19 08:51:12 UTC 2005 Johnny Willemsen - - * tests/CDR_File_Test.cpp: - Fixed compile error - -Wed Oct 19 07:43:12 UTC 2005 Johnny Willemsen - - * ace/Reactor_Token_T.h: - Removed code for including the .inl file, it is not there, just - a waste of bytes ;-) - -Wed Oct 19 00:23:02 2005 Ossama Othman - - * ace/Global_Macros.h (ACE_FACTORY_DEFINE): - (ACE_FACTORY_NAMESPACE_DEFINE): - - Don't bother qualifying the SERVICE_CLASS name with - ACE_VERSIONED_NAMESPACE_NAME scope. That scoped is already - pulled in by a "using" clause. Addresses compile-time errors - caused by calling the ACE_FACTORY_{NAMESPACE_}DEFINE macro - within a namespace and passing the locally scoped name of the - SERVICE_CLASS rather than the fully qualified one. - -Tue Oct 18 23:23:14 2005 Ossama Othman - - The following changes comprise the core implementation of - "versioned namespace" support in ACE. When enabled, all ACE - library code will be wrapped within a namespace, such as - "ACE_5_4_7", to prevent symbol conflicts with other versions of - ACE shared libraries in third party libraries. This feature is - disabled by default to preserve backward compatibility. - - * ace/Global_Macros.h: - - Updated ACE Service Configurator macros to take into account - versioned namespace when enabled. - - * ace/Parse_Node.cpp (ACE_Function_Node, make_func_name): - * ace/Parse_Node.h: - - Check if factory function is using the ACE naming convention. - If so, it is likely that the ACE factory function macros - (e.g. ACE_FACTORY_DECLARE) were used to declare and define it, - so mangle the function name to include the ACE versioned - namespace name as is done in the ACE macros. Otherwise, leave - the function name as is. - - * ace/README: - - Added description for new ACE_HAS_VERSIONED_NAMESPACE - preprocessor symbol. - - * ace/Version.h: - - Include "ace/Versioned_Namespace.h" to pull in versioned - namespace macros. - - * ace/Versioned_Namespace.h: - - New header containing core versioned namespace macros. - - * ace/ace.mpc (Header_Files): - - Added "Versioned_Namespace.h" to list of headers. - - * ace/pre.h: - - Include "ace/Version.h" to pull in versioned namespace support. - - * ace/post.h: - - End versioned namespace block, if enabled. - - * bin/make_release (update_version_files): - - Generate include directive for "ace/Versioned_Namespace.h" when - creating "ace/Version.h". - -Tue Oct 18 23:08:34 2005 Ossama Othman - - * ace/ACE.cpp (strdelete): - * ace/ACE.inl (strdelete): - - Inlined this function. It simply calles operator delete[] on a - pointer to char or wchar_t. Reduces footprint if it is never - called, and optimizes the call at run-time slightly if it is - called. - -Tue Oct 18 20:51:19 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/csd_framework.mpb: - - Remove "core" from list of base projects. Just because - we use the CSD framework, doesn't necessarily mean that - the project should be installed. It needs to explictly - inherit from core (or install, install-bin, install-lib, - or install-headers) for that. - -Tue Oct 18 18:06:43 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/kokyu_dsrt_schedulers.mpb: - - Add $(TAO_BUILDDIR)/examples/Kokyu_dsrt_schedulers to - includes for automake builds. - -Tue Oct 18 17:24:26 MST 2005 Yan Dai - - Merged in the CSD (Custom Servant Dispatching) feature from OCI. - - * bin/tao_orb_tests.lst: - - Added CSD tests. - - * bin/MakeProjectCreator/config/csd_framework.mpb: - * bin/MakeProjectCreator/config/csd_threadpool.mpb: - * bin/MakeProjectCreator/config/csd_tp_test_lib.mpb: - * bin/MakeProjectCreator/config/csd_tp_test_exe_c.mpb: - * bin/MakeProjectCreator/config/csd_tp_test_exe_b.mpb: - * bin/MakeProjectCreator/config/csd_tp_test_exe_a.mpb: - * bin/MakeProjectCreator/config/csd_tp_foo_c_lib.mpb: - * bin/MakeProjectCreator/config/csd_tp_foo_b_lib.mpb: - * bin/MakeProjectCreator/config/csd_tp_foo_a_lib.mpb: - * bin/MakeProjectCreator/config/csd_pt_testservant_lib.mpb: - * bin/MakeProjectCreator/config/csd_pt_testinf_lib.mpb: - * bin/MakeProjectCreator/config/csd_pt_test_exe.mpb: - - Added base projects for the CSD strategies and tests. - -Tue Oct 18 22:24:11 2005 Olli Savia - - * ace/TTY_IO.h: - Changed type of readmincharacters from int to unsigned int. - Fixes compile time warning. - -Tue Oct 18 09:53:29 2005 Ossama Othman - - From Mickael P. Golovin - * ace/Argv_Type_Converter.cpp: - - Fixed strdup()/operator delete() mismatches. Strings allocated - by strdup() should be deallocated using free(). - - This was also reported by Gerolf Reinwardt . - -Mon Oct 17 22:05:37 2005 Olli Savia - - * ace/TTY_IO.cpp: - Removed :: qualifiers from terminal interface - function calls. This should fix compile problems - on Cygwin. - -Mon Oct 17 13:38:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/notifytest.mpb: - Added notication_serv as base project, needed for collocated - tests - -Mon Oct 17 10:04:12 UTC 2005 Johnny Willemsen - - * ace/FILE_IO.inl: - Removed some not needed c-style casts - - * tests/CDR_File_Test.cpp: - Explicitly initialise memory with 0 when we are using a - profiler. - -Mon Oct 17 09:21:12 UTC 2005 Johnny Willemsen - - * ace/Time_Value.{h,inl}: - * ace/UUID.cpp: - Fixed 64bit conversion problems. Added a to_usec method - to ACE_Time_Value that returns the total of sec and usec - as ACE_UINT64 and use that in UUID.cpp. - Thanks to James Megquier . - This fixes bugzilla 2263 - -Sun Oct 16 13:01:12 2005 J.T. Conklin - - * protocols/ace/RMCast/Acknowledge.cpp: - - Fix typo in last change. - -Sun Oct 16 12:05:45 2005 J.T. Conklin - - * ace/config-netbsd.h: - - Define ACE_HAS_TERMIOS. - -Sun Oct 16 11:59:05 2005 J.T. Conklin - - * configure.ac: - - Updated tty feature checks to define ACE_HAS_TERMIO and/or - ACE_HAS_TERMIOS. - -Sun Oct 16 19:39:10 2005 Olli Savia - - * ace/TTY_IO.h: - Fixed Doxygen tags. - -Sun Oct 16 09:27:25 2005 Douglas C. Schmidt - - * protocols/ace/RMCast/Acknowledge.{h,cpp} - * protocols/ace/RMCast/Parameters.h: - Added some fixes so that the default size of the hash map won't - be so huge. Thanks to Felix Li for - these fixes. - -Sun Oct 16 17:17:50 2005 Olli Savia - - * ace/OS.h: - * ace/config-cray.h: - * ace/config-cygwin32.h: - * ace/config-dgux-4.11-epc.h: - * ace/config-dgux-4.x-ghs.h: - * ace/config-freebsd.h: - * ace/config-hpux-11.00.h: - * ace/config-irix6.x-common.h: - * ace/config-linux-common.h: - * ace/config-lynxos.h: - * ace/config-m88k.h: - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - * ace/config-openbsd.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-mit-pthread.h: - * ace/config-sco-5.0.0.h: - * ace/config-sunos5.4-centerline-2.x.h: - * ace/config-sunos5.4-g++.h: - * ace/config-sunos5.4-sunc++-4.x.h: - * ace/config-sunos5.5.h: - * ace/config-tandem.h: - * ace/config-unixware-2.01-g++.h: - * ace/config-unixware-2.1.2-g++.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - * ace/config-win32-interix.h: - Replaced old TTY_IO related macros with the new - ACE_HAS_TERMIOS macro. - - * ace/TTY_IO.cpp: - Added include "ace/config-lite.h" to pull feature macro - definitions. - -Sun Oct 16 16:14:48 2005 Olli Savia - - * ace/README: - * ace/TTY_IO.cpp: - Introduce new macros ACE_HAS_TERMIO and ACE_HAS_TERMIOS to - select between old ioctl based interface and POSIX terminal - interface. The old macros ACE_HAS_TERM_IOCTLS and - ACE_HAS_NEW_TERMIOS_STRUCT are not used anymore. Thanks - to J.T. Conklin for motivating this change. - -Sun Oct 16 12:08:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run Big_AMI test in minimum builds - -Sat Oct 15 00:57:19 2005 Steve Totten - - * bin/tao_other_tests.lst: - - Added TAO/orbsvcs/examples/CosEC/TypedSimple/run_test.pl to - the nightly tests. - -Fri Oct 14 22:30:40 2005 Krishnakumar B - - * ace/config-macosx-tiger.h (ACE_HAS_NEW_TERMIOS_STRUCT): Defined - the macro ACE_HAS_NEW_TERMIOS_STRUCT to fix compilation errors - on Mac OS X Tiger. - -Fri Oct 14 14:56:16 2005 Chris Cleeland - - * ace/ACE.cpp: - * ace/SOCK_Connector.cpp: - - Reverted the change from Fri Sep 2 15:08:27 2005 Justin Michel - due to suspicions that it might be inadvertently responsible for - observed additional jitter in TAO performance tests. The - motivation for the original change and a patch to restore the - original change is documented in Bugzilla #2246. - -Fri Oct 14 11:49:29 2005 J.T. Conklin - - * ACEXML/apps/svcconf/Makefile.am: - - Tweak to use pkgconfigdir and @libdir@/pkgconfig instead of - pkgconfdatadir and ${prefix}/lib/pkgconfig to be consistent with - all our other Makefile.am's. This will hold until we regenerate - all the ACE Makefile.am's from MPC. [Bug 2266] - -Fri Oct 14 14:19:12 UTC 2005 Johnny Willemsen - - Reverted the change below, causes compile problems - - Fri Oct 14 10:52:12 UTC 2005 Johnny Willemsen - * ace/SSL/SSL_Asynch_BIO.{h,cpp}: - Fixed 64bit conversion warnings - -Fri Oct 14 12:01:12 UTC 2005 Johnny Willemsen - - * apps/soreduce/Library.cpp: - Fixed 64bit problem - -Fri Oct 14 11:44:12 UTC 2005 Johnny Willemsen - - * ace/SOCK_IO.{h,inl}: - 64bit fix - -Fri Oct 14 10:52:12 UTC 2005 Johnny Willemsen - - * ace/SSL/SSL_Asynch_BIO.{h,cpp}: - Fixed 64bit conversion warnings - - * ace/OS_NS_unistd.{h,inl}: - Let getpagesize return a long - -Fri Oct 14 08:05:12 UTC 2005 Johnny Willemsen - - * protocols/ace/HTBP/HTBP_Session.cpp: - Fixed signed/unsigned warning - -Thu Oct 13 17:39:31 2005 Steve Huston - - * ace/TTY_IO.cpp: Changed ACE_TTY_IO_{ODD EVEN MARK SPACE} to - char* from ACE_TCHAR* since the strings they're compared to (from - Serial_Params) are char* always. - - * ace/config-win32-common.h: Removed the check for UNDER_CE >= 0x400 - && UNDER_CE < 0x500 when deciding whether or not to define E... - symbols. Windows Mobile 5 requires them as well. - -Thu Oct 13 13:58:44 2005 Ossama Othman - - * ace/config-g++-common.h (ACE_IMPORT_SINGLETON_DECLARE): - (ACE_IMPORT_SINGLETON_DECLARATION): - - Suppress "-pedantic" error caused by use of g++ "extern - template" extension by preceding the expression with - "__extension__". - -Thu Oct 13 15:38:29 2005 Steve Huston - - * ace/RB_Tree.{cpp h}: Follow-up to: - Fri Jul 9 21:23:13 2004 Douglas C. Schmidt - - Don't include a tree pointer in each RB_Tree_Node just to be able to - get back to the tree to retrieve the allocator. Leave the allocator - pointer in ACE_RB_Tree_Base, and add a ACE_RB_Tree::remove_children_i - method that uses the allocator to release memory. Thank you to - Sergei Kuchin for this improvement. - -Thu Oct 13 20:42:00 2005 Olli Savia - - * ace/TTY_IO.cpp: - Enable noncanonical input processing on POSIX systems. - -Thu Oct 13 19:18:44 2005 Olli Savia - - * ace/TTY_IO.cpp: - Oops. Use tcsetattr() instead of tcgetattr() to set terminal - parameters. - -Thu Oct 13 18:49:15 2005 Olli Savia - - * ace/TTY_IO.cpp: - TTY_IO class now uses POSIX terminal interface if it is - available. Should fix compile problems on various - platforms. - -Thu Oct 13 15:02:12 UTC 2005 Johnny Willemsen - - * examples/Threads/task_four.cpp: - * examples/Reactor/Proactor/post_completions.cpp: - Fixed warning in MinGW build - -Thu Oct 13 17:51:04 2005 Olli Savia - - * ace/TTY_IO.cpp: - Fixed wchar issues. - -Thu Oct 13 14:36:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run the Hang_Shutdown test in a single threaded build - -Thu Oct 13 14:07:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_arpa_inet.cpp: - * ace/Pipe.cpp: - 64bit fixes - -Thu Oct 13 13:54:12 UTC 2005 Johnny Willemsen - - * examples/Threads/tss2.cpp: - Fixed warning in MinGW build - -Thu Oct 13 13:31:12 UTC 2005 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added tests/DLL_Test_Parent - -Thu Oct 13 13:30:12 UTC 2005 Johnny Willemsen - - * ace/Configuration.{h,cpp}: - * ace/FILE_IO.cpp: - 64bit fixes - -Thu Oct 13 13:21:12 UTC 2005 Johnny Willemsen - - * ace/Message_Queue.{h,cpp,inl}: - * ace/Message_Queue_T.{h,cpp}: - Changed message_count to be a size_t to fix 64bit conversion warnings - in code that uses this. - -Thu Oct 13 13:05:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.{h,inl}: - Changed return type of priority_control from int to long to fix - 64bit issues. - - * ace/Mem_Map.{h,inl}: - * ace/OS_NS_sys_shm.{h,inl}: - Fixed 64bit conversion warnings - -Thu Oct 13 11:46:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_stdlib.{h,cpp,inl}: - Let readline return ssize_t instead of int to fix 64bit - conversion issues - -Thu Oct 13 07:49:37 2005 Olli Savia - - * ace/TTY_IO.cpp: - Include OS_NS_string.h to fix compile error on various platforms. - -Wed Oct 12 23:55:23 2005 Olli Savia - - * ace/TTY_IO.cpp: - Rearranged includes to fix compile error on LynxOS. - -Wed Oct 12 23:08:43 2005 Olli Savia - - * ace/CDR_Stream.inl: - * ace/CDR_Stream.cpp: - * ace/SString.cpp: - Fixed might be unitialized warning in FC4 build. - -Wed Oct 12 22:50:39 2005 Olli Savia - - * ace/TTY_IO.cpp: - * ace/config-freebsd.h: - * ace/config-irix6.x-common.h: - * ace/config-linux-common.h: - * ace/config-openbsd.h: - * ace/config-win32-interix.h: - Changed ACE_USES_NEW_TERMIOS_STRUCT to ACE_HAS_NEW_TERMIOS_STRUCT - to better follow ACE naming conventions. - -Wed Oct 12 22:32:33 2005 Olli Savia - - * ace/TTY_IO.h: - * ace/TTY_IO.cpp: - TTY_IO class overhaul. See NEWS for more information. - - * NEWS: - Added TTY_IO changes. - -Wed Oct 12 12:02:46 2005 Ossama Othman - - * tests/Based_Pointer_Test.cpp: - * tests/dll_test_parent_lib.mpb: - * tests/tests.mpc: - - Fixed project dependencies for tests with an accompanying shared - library. - -Wed Oct 12 12:39:12 UTC 2005 Johnny Willemsen - - * examples/APG/Sockets/Basic.cpp: - * examples/APG/Streams/Util.h: - * examples/APG/Streams/CommandTasks.cpp: - * examples/APG/Threads/Message_Queue.cpp: - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Misc/test_timer_queue.cpp: - * examples/Reactor/Multicast/server.cpp: - Fixed 64bit conversion warnings - -Wed Oct 12 09:26:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/ipv6.mpb: - Also for cbx we need to add an extra lib - -Wed Oct 12 08:35:12 UTC 2005 Johnny Willemsen - - * bin/fuzz.pl: - Also raised the level for the rir check - -Wed Oct 12 08:10:12 UTC 2005 Johnny Willemsen - - * bin/fuzz.pl: - Raised the level for the environment macro check to >= 6. This way - the check is there but we don't run it by default in our daily - fuzz build - -Wed Oct 12 08:08:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Changed the default for exceptions to 1 - -Tue Oct 11 17:53:12 UTC 2005 Johnny Willemsen - - * ace/CDR_Stream.cpp (skip_wchar): - When having a 1.1 stream, we must use - ACE_OutputCDR::wchar_maxbytes_ instead of sizeof (ACE_CDR::WChar) - to determine whether we have to read 2 or 4 bytes for a - ACE_CDR::WChar. This fixes the failing of the TAO Codec test - under fe linux - -Tue Oct 11 08:28:12 UTC 2005 Martin Corino - - * ace/INET_Addr{.h .inl}: - Added additional "is_xx' method for IPv6 address testing. - -Tue Oct 11 01:17:10 2005 Ossama Othman - - From James Megquier - * tests/DLL_Test.cpp (basic_test): - * tests/tests.mpc: - - Rename DLL_Test library to avoid MPC name conflict with DLL_Test - executable. [Bug 2258] - - * ace/config-g++-common.h: - - Sadly, G++ 4.x silently ignores visibility attributes on - template instantiations, which breaks singletons. As a - workaround, we use the GCC visibility pragmas. And to make them - fit in a macro, we use C99's _Pragma() (see - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17470). [Bug 2260] - - * ace/Based_Pointer_Repository.h: - * ace/Obstack.h: - * ace/Timeprobe.h: - * examples/Export/dll.h: - - Declare exported (i.e. default visibility) singleton templates - prior to typedefs that reference them. Prevents g++ 4.0 from - silently making their visibility hidden. [Bug 2260] - - * include/makeinclude/platform_g++_common.GNU: - - Added "no_hidden_visibility" make flag/variable. Setting to "1" - in a platform_macros.GNU file will disable g++ 4.0 visibility - attribute support. [Bug 2259] - -Tue Oct 11 06:53:12 UTC 2005 Johnny Willemsen - - * ace/Guard_T.cpp: - When ACE_HAS_DUMP is defined include Log_Msg.h to get ACE_DEBUG. - Thanks to James Megquier for reporting - this. This fixes bugzilla bug 2257 - - * ACE-INSTALL.html: - Updated Remedy IT support platforms and added - Borland C++ Builder 2006 as new support platform. This is now - publicly announced by Borland. - -Mon Oct 10 15:45:17 2005 William Otte - - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb: - - Updated to reflect changes in config handles. - -Mon Oct 10 19:12:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_dirent.cpp: - Fixed 64bit conversion - -Mon Oct 10 13:08:12 UTC 2005 Johnny Willemsen - - * tests/Reactor_Timer_Test.cpp: - Timers are of type long, so update this test to use long for timer - ids, not int. - -Mon Oct 10 10:51:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new Big_AMI test - -Sun Oct 9 21:34:08 2005 Olli Savia - - * ace/config-lynxos.h: - Do not define ACE_LACKS_SETREGID ACE_LACKS_SETREUID - on LynxOS 4.x - -Fri Oct 7 17:52:38 2005 J.T. Conklin - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Fix typo in recently added TAO_IDL_DEP definition. - -Fri Oct 7 17:35:42 2005 J.T. Conklin - - * examples/Service_Configurator/IPC-tests/server/Makefile.am: - * tests/Makefile.am: - - Regenerate to account for recent changes. - -Fri Oct 7 13:31:10 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - - Changed to add -Sa and -St flags to idlflags variable instead of - tao_idlflags. This ensures they will be emitted (unless they're - suppressed by anytypecode.mpb) in the automake build, where the - value of TAO_IDLFLAGS is set in AutomakeWorkspaceHelper.pm. - - This would have cought recent problems I introduced in TAO when - splitting out IDL compilation into separate projects. - -Fri Oct 7 09:32:06 2005 J.T. Conklin - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Define TAO_IDL_DEP if TAO_IDL is found in the any per-project - Makefile.am as they are aggregated into the final Makefile.am. - -Fri Oct 7 12:36:12 UTC 2005 Johnny Willemsen - - * tests/Upgradable_RW_Test.cpp: - Fixed might be unitialized warning in MinGW build - -Fri Oct 7 08:15:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-borland.h: - Removed ACE_LACKS_MODE_MASKS, it is in config-win32-common.h. - -Fri Oct 7 07:39:12 UTC 2005 Johnny Willemsen - - * protocols/ace/HTBP/HTBP_Stream.{h,cpp,inl}: - * protocols/ace/HTBP/HTBP_Notifier.{h,cpp,inl}: - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.{h,cpp,i}: - * apps/JAWS/clients/Caching/URL_Locator.{h,cpp,i}: - Removed empty inline files - - * protocols/ace/HTBP/Makefile.am: - * examples/Service_Configurator/IPC-tests/server/Makefile.am: - * apps/JAWS/clients/Caching/Makefile.am: - Removed inline files we zapped above - -Thu Oct 6 15:42:29 2005 Ossama Othman - - * tests/DLL_Test.cpp: - * tests/DLL_Test.h: - * tests/DLL_Test_Impl.cpp: - * tests/DLL_Test_Parent.cpp: - * tests/DLL_Test_Parent.h: - * tests/DLL_Test_Parent_Export.h: - * tests/dll_test_parent_lib.mpb: - - Moved "Parent" base class to a separate DSO/DLL to break a - cyclic dependency, in turn allowing its virtual methods to be - moved out of line. Addresses dynamic_cast<> failures in g++ 4.0 - builds. Thanks to Carlos for suggesting this change. [Bug 2143] - - Moved "Child" subclass virtual methods out of line to address - RTTI related problems when using g++ 4.0's - -fvisibility-inlines-hidden command line option. [Bug 2143] - - * tests/tests.mpc: - - Added new DLL_Test_Parent_Lib project. - - Updated DLL_Test project dependencies to reflect new DLL test - library layout. - - Corrected MPC "dynamicflags" variable for "Based Pointer Test - Lib" and "DLL Test Lib" projects. "ACE_SVC_BUILD_DLL" not - "ACE_BUILD_SVC_DLL". - -Thu Oct 6 17:56:19 2005 Steve Huston - - Added support for Windows Mobile 5 and Pocket PC 2003 using - Visual Studio 2005 (Beta 2). Reorganized some of the config-win32-* - files to ensure OS things are in config-win32-common.h and compiler - things are in the various compiler files. - - * ace/config-win32-common.h: Now #includes config-WinCE.h. It's - possible that config-WinCE.h may get chopped down further and/or - subsumed into config-win32-common.h as config-WinCE.h gets refined. - - Added ACE_LACKS_MODE_MASKS. It's needed on all variants of - Windows and all compilers. - - Turn on both ACE_USES_WCHAR and UNICODE if either is set. Removed - this setting from config-WinCE.h. - - * ace/config-win32-borland.h: - * ace/config-win32-dmc.h: - * ace/config-win32-ghs.h: - * ace/config-win32-mingw.h: - * ace/config-win32-msvc-6.h: - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - * ace/config-win32-visualage.h: Removed ACE_LACKS_MODE_MASKS. - Removed ACE_ENDTHREADEX (moved to config-win32-msvc.h). - - * ace/config-win32-msvc.h: Added ACE_ENDTHREADEX with proper - setting depending on Windows PC vs. Mobile. - - * ace/config-win32.h: Doesn't include config-WinCE.h any longer. - - * ace/config-WinCE.h: Moved the errno value definitions to - config-win32-msvc-6.h. They're only needed for the eVC 3 and 4 - compilers, which report themselves using the same versions as - MSVC 6. - - * ace/Object_Manager.cpp (init): Only act on config.h's - ACE_DISABLE_WIN32_ERROR_WINDOWS setting if on Windows, but not CE. - - * ace/OS_NS_time.h: Only define struct tm for WinCE if compiling - on something less than Visual Studio 2005. - - * ace/OS_NS_unistd.inl (rmdir, unlink): - * ace/OS_NS_sys_stat.inl (mkdir, stat): For wchar_t version on WinCE, - specify the ...W() form of the system call rather than assume - the call maps to the W form. WinCE can do either A or W now. - - * ace/OS_NS_time.(cpp h) (day_of_week_name[], month_name[]): - * ace/OS_NS_sys_socket.cpp (socket_init, socket_fini): - Changed char array from wchar_t to ACE_TCHAR. WinCE can do either - narrow or wide and this allows it to adjust. Everything was - initialized using ACE_LIB_TEXT already. - - * ace/OS_NS_stdio.inl (fdopen, rename, freopen): For WinCE, need to - convert the ACE_TCHAR string to wchar always. There's no char* - version of fdopen, et al that I can see. - - * ace/Service_Config.(h inl): Only define the alternate - intialize/resume/suspend/remove methods for WinCE if ACE_USES_WCHAR - is set. Else there's already a char* version. - - * ace/TSS_T.cpp (ctor): Use ACE_LIB_TEXT around strings for the - MessageBox() call on CE. This resolves properly depending on the - build. CE doesn't always use unicode any more. - - * tests/Logging_Strategy_Test.cpp (get_statistics): Use time_t - instead of int to return the modified time. Makes it portable to - 64 bits. - -Thu Oct 6 10:09:12 UTC 2005 Johnny Willemsen - - * bin/fuzz.pl: - Extended empty inline files to also ignore lines starting - with /* as real contents. Will propobly reveal another few files - we should zap - -Thu Oct 6 08:24:12 UTC 2005 Johnny Willemsen - - * netsvcs/lib/Base_Optimizer.h: - * netsvcs/lib/Client_Logging_Handler.h: - * netsvcs/lib/Log_Message_Receiver.h: - * netsvcs/lib/Name_Handler.h: - * netsvcs/lib/Server_Logging_Handler.h: - * netsvcs/lib/Server_Logging_Handler_T.h: - * netsvcs/lib/Token_Handler.h: - * netsvcs/lib/TS_Clerk_Handler.h: - * netsvcs/lib/TS_Server_Handler.h: - Converted documentation to doxygen style - -Thu Oct 6 08:19:12 UTC 2005 Johnny Willemsen - - * tests/Message_Queue_Test.cpp: - * tests/Message_Queue_Test_Ex.cpp: - Fixed might be unitialized warning in MinGW build - -Thu Oct 6 08:12:12 UTC 2005 Johnny Willemsen - - * netsvcs/ACE-netsvcs.html: - Fixed small typo - -Wed Oct 5 22:07:19 2005 J.T. Conklin - - * configure.ac: - - Add check for ACE_HAS_PTHREAD_GETCONCURRENCY and - ACE_HAS_PTHREAD_SETCONCURRENCY. - - * ace/OS_NS_Thread.inl: - - Changed ACE_OS::getconcurrency () to use ::pthread_getconcurrency() - if ACE_HAS_PTHREAD_GETCONCURRENCY is set. - - Changed ACE_OS::setconcurrency () to use ::pthread_setconcurrency() - if ACE_HAS_PTHREAD_SETCONCURRENCY is set. - - * ace/README: - - Define ACE_HAS_PTHREAD_GETCONCURRENCY and - ACE_HAS_PTHREAD_SETCONCURRENCY feature test macros. - -Wed Oct 5 13:18:26 2005 Ossama Othman - - * examples/Shared_Malloc/Malloc.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: - * tests/SV_Shared_Memory_Test.cpp: - - More include directive additions/fixes. - -Wed Oct 5 13:00:12 UTC 2005 Johnny Willemsen - - * ace/CDR_Base.h: - Doxygen fixes and removed some checks for very old msvc and borland - versions - -Wed Oct 5 12:48:12 UTC 2005 Johnny Willemsen - - * ace/svcconf.mpb: - Replaced some spaces with a tab, should fix our Cygwin build - -Wed Oct 5 10:38:12 UTC 2005 Johnny Willemsen - - * examples/APG/Processes/Spawn.cpp: - Fixed 64bit conversion warnings - -Wed Oct 5 11:11:21 2005 Simon McQueen - - * bin/MakeProjectCreator/config/core_anytypecode.mpb: - - Add new base MPC base project that links with the TAO_AnyTypeCode - library but does not inherit from taoidldefaults or set any IDL - compiler flags. To be used as an alternative to anytypecode.mpb - for all projects under $ACE_ROOT/TAO/tao. - -Wed Oct 5 02:11:28 2005 Ossama Othman - - * ace/ace_os.mpc: - - Removed this file. It was inadvertently committed. - -Wed Oct 5 01:57:37 2005 Ossama Othman - - * apps/JAWS2/JAWS/Cache_Manager.cpp: - * examples/APG/Active_Objects/AO.cpp: - * examples/APG/Active_Objects/AO2.cpp: - * examples/APG/Shared_Memory/Hash_Map.cpp: - * tests/Bound_Ptr_Test.cpp: - - Include appropriate headers to address incomplete type - definition related compile-time errors. Necessitated by header - dependency reductions in ACE. - -Wed Oct 5 08:18:12 UTC 2005 Johnny Willemsen - - * ace/SSL/SSL_Asynch_Stream.cpp: - Fixed bug 1770 and 1805. Yoav Borer - Thanks to for reporting - these. - -Wed Oct 5 00:41:18 2005 Ossama Othman - - * ace/Activation_Queue.cpp: - * ace/Activation_Queue.h: - - Moved "ace/Method_Request.h" include directive to implementation - file. A forward request in the header will suffice. - - * ace/SOCK_CODgram.h: - - Support export macros specific to ACE subset libraries. - - * ace/ace.mwc: - - Added missing "ace_for_tao" subset MPC files. - - * ace/ace_memory_for_tao.mpc: - * ace/ace_reactor_for_tao.mpc: - * ace/ace_sockets_for_tao.mpc: - * ace/ace_threads_for_tao.mpc: - - New TAO-specific ACE subset MPC files that were not committed - in initial "ace_for_tao" commit. - -Tue Oct 4 14:21:26 2005 Ossama Othman - - * netsvcs/lib/TS_Clerk_Handler.h: - - More include directive fixes/additions now necessary due to - header dependency reductions in ACE. - -Tue Oct 4 11:12:31 2005 Ossama Othman - - * apps/JAWS2/JAWS/Cache_Object.h: - * apps/JAWS2/JAWS/Cache_Object.cpp: - - Include appropriate headers to address incomplete type - definition related compile-time errors. Necessitated by header - dependency reductions in ACE. - - Declare lock members that are meant to be mutable in all cases - as "mutable", and remove casts that worked around the - unnecessary "constness" of those members. - -Tue Oct 4 10:39:24 2005 Ossama Othman - - * ace/Service_Config.cpp: - - Include "ace/Signal.h" when ACE_LACKS_UNIX_SIGNALS is - undefined. Addresses build errors in non-Windows builds. - Necessitated by header dependency reductions in ACE. - -Tue Oct 4 10:00:00 UTC 2005 Simon Massey - - * ace/Obstack_T.h: - - Fix warning about nested comments. - -Mon Oct 3 13:30:58 2005 Ossama Othman - - * examples/APG/Containers/Hash_Map.cpp: - * examples/APG/Shared_Memory/Malloc.cpp: - * examples/APG/Shared_Memory/PI_Malloc.cpp: - * examples/APG/Shared_Memory/Pool_Growth.cpp: - * examples/Shared_Malloc/Malloc.cpp: - * examples/Shared_Malloc/Malloc.h: - * examples/Shared_Malloc/test_malloc.cpp: - * examples/Shared_Malloc/test_multiple_mallocs.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - * examples/Shared_Malloc/test_position_independent_malloc.cpp : - - Include appropriate headers to address incomplete type - definition related compile-time errors. Necessitated by header - dependency reductions in ACE. - -Mon Oct 3 18:40:12 UTC 2005 Johnny Willemsen - - * ace/SSL/SSL_Context.cpp: - Use prefix increment/decrement instead of postfix - -Mon Oct 3 10:48:23 2005 Ossama Othman - - * ace/ACE_Memory_export.h: - * ace/ACE_Reactor_export.h: - * ace/ACE_Sockets_export.h: - * ace/ACE_Threads_export.h: - - New export headers for a number of ACE subset libraries. - - * ace/Activation_Queue.cpp: - * ace/Configuration.h: - * ace/Malloc.cpp: - * ace/Obstack_T.h: - * ace/Obstack_T.cpp: - * ace/Svc_Conf_l.cpp: - * ace/Timer_Hash_T.cpp: - * tests/Based_Pointer_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/Message_Block_Test.cpp: - - Include appropriate headers to address incomplete type - definition related compile-time errors. Necessitated by header - dependency reductions in ACE. - - * ace/Activation_Queue.h: - * ace/Barrier.h: - * ace/Based_Pointer_Repository.h: - * ace/Dev_Poll_Reactor.h: - * ace/File_Lock.h: - * ace/LSOCK.h: - * ace/LSOCK_Acceptor.h: - * ace/LSOCK_CODgram.h: - * ace/LSOCK_Connector.h: - * ace/LSOCK_Dgram.h: - * ace/LSOCK_Stream.h: - * ace/MEM_Acceptor.h: - * ace/MEM_Addr.h: - * ace/MEM_Connector.h: - * ace/MEM_IO.h: - * ace/MEM_SAP.h: - * ace/MEM_Stream.h: - * ace/MMAP_Memory_Pool.h: - * ace/Mem_Map.h: - * ace/Method_Request.h: - * ace/Msg_WFMO_Reactor.h: - * ace/Multihomed_INET_Addr.h: - * ace/PI_Malloc.h: - * ace/Pagefile_Memory_Pool.h: - * ace/Priority_Reactor.h: - * ace/Process.h: - * ace/Process_Manager.h: - * ace/Process_Semaphore.h: - * ace/RW_Process_Mutex.h: - * ace/SOCK_Dgram_Bcast.h: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/SOCK_SEQPACK_Association.h: - * ace/SOCK_SEQPACK_Connector.h: - * ace/SV_Shared_Memory.h: - * ace/Sbrk_Memory_Pool.h: - * ace/Shared_Memory.h: - * ace/Shared_Memory_MM.h: - * ace/Shared_Memory_Pool.h: - * ace/Shared_Memory_SV.h: - * ace/Thread_Semaphore.h: - * ace/UNIX_Addr.h: - - Support export macros specific to ACE subset libraries. - - * ace/Array_Map.h: - - Comment cleanup. - - * ace/High_Res_Timer.h: - - Removed trailing whitespace. - - * ace/Malloc.h: - - Removed extraneous headers unnecessary for the types declared in - this header. - - * ace/OS_NS_Thread.inl (ACE_Thread_ID): - - Prefer initialization of thread_id_ member in base member - initializer list rather than constructor body. - - * ace/ace.mpc: - * ace/ace.mwc: - * ace/ace_for_tao.mpc: - * ace/ace_os.mpc: - - Add support ACE subsets (predominantly TAO-specific). - - * ace/svcconf.mpb: - - Moved Svc_Conf parser and lexer generation Make rules to this - MPC base project. Allows subset projects to inherit these - rules. - - * bin/MakeProjectCreator/config/ace_for_tao.mpb: - * bin/MakeProjectCreator/config/acememorylib_for_tao.mpb: - * bin/MakeProjectCreator/config/acenosubsets.mpb: - * bin/MakeProjectCreator/config/acereactorlib_for_tao.mpb: - * bin/MakeProjectCreator/config/acesocketslib_for_tao.mpb: - * bin/MakeProjectCreator/config/acethreadslib_for_tao.mpb: - - New TAO-specific ACE subset MPC support. Enabled when - "ace_for_tao" is set to "1" in an MPC features file. - - * bin/MakeProjectCreator/config/aceexe.mpb: - * bin/MakeProjectCreator/config/acelib.mpb: - - Support "ace_for_tao" subset. - - * bin/MakeProjectCreator/config/global.features: - - Disabled "ace_for_tao" feature by default. - - * bin/MakeProjectCreator/config/taolib.mpb: - - Inherit "ace_for_tao" feature project. Causes TAO-based - projects to use the "ace_for_tao" subset libraries when that - feature is enabled. - -Mon Oct 3 12:50:00 2005 Simon Massey - - * ace/Asynch_IO.h: - - Remove some more Doxygen warnings from the scoreboard. - -Mon Oct 3 13:54:12 UTC 2005 Johnny Willemsen - - * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: - Fixed might be unitialized warning in Cygwin build - -Mon Oct 3 12:50:00 2005 Simon Massey - - * ace/ACE.h: - * ace/Acceptor.h: - * ace/Stats.h: - * ace/Containers_T.h: - - Remove some Doxygen warnings from the scoreboard. - -Mon Oct 3 11:27:13 2005 Simon McQueen - - * bin/tao_other_tests.lst: - - Scheduled TAO/orbsvcs/tests/Bug_2248_Regression. - -Mon Oct 3 09:54:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Changed the default of exceptions to be 1 - -Mon Oct 3 06:22:12 UTC 2005 Johnny Willemsen - - * ace/Log_Msg.{h,cpp}: - Changed type of msg_off_ from int to long to fix 64bit - conversion warnings - -Sun Oct 2 19:18:01 2005 Olli Savia - - * ace/config-lynxos.h: - Added contents from config-lynxos4.0.0.h to this file. - config-lynxos4.0.0.h is no longer needed. - - * ace/config-lynxos4.0.0.h: - Removed this file. - -Sat Oct 1 11:49:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_stdio.cpp: - Fixed _open_osfhandle call - -Fri Sep 30 14:00:36 2005 Chris Cleeland - - * bin/fuzz.pl: - - Added a new test, check_for_refcountservantbase, that will - report occurrences of PortableServer::RefCountServantBase in - code. This is good because the default is now changed in TAO to - reflect the change in the CORBA spec. - - Changed all error and warning messages to be consistently - printed with the keyword "Error: " or "Warning: " followed by - the filename and line number where the problem occurred, then - followed by a text description of the problem. This makes the - messages' format consistent with that output by grep and - compilers so that one can use tools like emacs' 'compile' mode - to step through the fuzz errors and easily fix things. - -Fri Sep 30 10:34:24 2005 J.T. Conklin - - * configure.ac: - - Add feature checks for ACE_LACKS_INTMAX_T, ACE_LACKS_INTPTR_T, - ACE_LACKS_UINTMAX_T, and ACE_LACKS_UINTPTR_T. - - * ace/README: - - Define ACE_LACKS_INTMAX_T, ACE_LACKS_UINTMAX_T, and - ACE_LACKS_UINTPTR_T feature test macros. - -Fri Sep 30 13:34:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - Corrected the directory changing code to take 2 or more deep - relative paths into account. Merged this fix from the MPC - templates bmake. Thanks to Chad Elliott for fixing these. - -Fri Sep 30 08:40:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-borland.h: - * ace/config-win32-msvc-6.h: - * ace/OS_NS_stdio.cpp: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_unistd.inl: - * ace/README: - Added new ACE_LACKS_INTPTR_T and use this. This type is used to call - _open_osfhandle on windows. It seems not to be available with BCB6 - and earlier and msvc6. Thanks to Simon McQueen for notifying me that - msvc6 also lacks this. - -Fri Sep 30 07:14:12 UTC 2005 Johnny Willemsen - - * ace/SOCK_IO.cpp: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/SOCK_Dgram.cpp: - * ace/OS_NS_unistd.inl: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_stdio.cpp: - * ace/MEM_IO.cpp: - * ace/ACE.cpp: - Fixed 64bit conversion warnings when building on win32 with 64bit - warnings enabled - -Thu Sep 29 16:07:02 2005 Arvind S. Krishna - - * bin/FOCUS: - Directory where FOCUS related work will be added. - - * bin/FOCUS/ChangeLog: - * bin/FOCUS/FOCUS.pl: - * bin/FOCUS/NEWS: - * bin/FOCUS/PROBLEM-REPORT-FORM: - * bin/FOCUS/Parser: - * bin/FOCUS/README: - * bin/FOCUS/VERSION: - * bin/FOCUS/docs: - * bin/FOCUS/specializations: - - FOCUS related files and directories. Please read the Changelog - in FOCUS for more details on each component. - - * bin/FOCUS/specializations/Context-Specific-Optimizations: - * bin/FOCUS/specializations/Flushing_Strategy: - * bin/FOCUS/specializations/Messaging_Strategy: - * bin/FOCUS/specializations/Protocol_Family: - * bin/FOCUS/specializations/README: - * bin/FOCUS/specializations/Reactor_Family: - * bin/FOCUS/specializations/Wait_Strategy: - - Specializations for the different components in ACE+TAO. Each - directory contains the specialization files for specializing the - appropriate component/strategy. - - * bin/FOCUS/Parser/FOCUSParser.pm: - - Parser/weaver that reads the specialization description and - performs the transformations. - - * bin/FOCUS/docs/FOCUS.html: - - Start at the documentation effort. - - The Changelogs within the FOCUS directory will capture the - different changes henceforth. - -Thu Sep 29 13:28:29 2005 Chris Cleeland - - * bin/fuzz.pl (check_for_refcountservantbase): - - Added a new fuzz check to catch derivations to - PortableServer::RefCountServantBase. Obviously, this check only - applied to TAO, and the test itself isn't very discriminating as - it simply looks for the presence of - "PortableServer::RefCountServantBase" in a file and doesn't - attempt to detect derivation. There are also no means to turn - off the check in comments. But it's better than nothing. - -Thu Sep 29 15:18:24 2005 Simon McQueen - - * bin/tao_other_tests.lst: - - Scheduled TAO/orbsvcs/tests/Bug_2247_Regression. - -Thu Sep 29 12:18:12 UTC 2005 Johnny Willemsen - - * bin/footprint_stats.sh: - Fixed codeset library name - -Thu Sep 29 09:03:00 UTC 2005 Simon Massey - - * apps/JAWS2/JAWS/IO_Acceptor.cpp: - Fixed unused parameters - -Thu Sep 29 09:02:12 UTC 2005 Johnny Willemsen - - * html/Stats/footer.html: - * html/Stats/configuration.shtml: - * html/Stats/navigation.html: - * html/Stats/index.shtml: - * html/Stats/detailed_footprint.shtml: - I have taken the files currently on the webserver and updated - cvs with these versions. This way we can update these files - in cvs and update the webserver automatically. I will reconfigure - the stats build to copy all the files in this directory to - the webserver when the build is ready - - * html/Stats/footprint.shtml: - * html/Stats/img.html: - * html/Stats/simple_footprint.shtml: - * html/Stats/performance.shtml: - * html/Stats/compilation.shtml: - New files - - * bin/footprint_stats.sh: - Also generate the footprint of the new core TAO libs we added - the last months - -Thu Sep 29 08:01:12 UTC 2005 Johnny Willemsen - - * html/index.html: - Fixed typo - -Thu Sep 29 07:59:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_fcntl.cpp: - Use C++ cast instead of c-style cast - - * ace/FILE_Connector.cpp: - Small layout fix - -Wed Sep 28 11:38:07 2005 Chad Elliott - - Committing the following change on behalf of Wallace Zhang - . - - * bin/tao_orb_tests.lst: - - Enabled a new Smart Proxy test,i.e., - $TAO_ROOT/tests/Smart_Proxies/dtor/run_test.pl - -Wed Sep 28 07:46:57 2005 J.T. Conklin - - * ace/Atomic_Op.cpp: - * ace/Atomic_Op.h: - * ace/Atomic_Op.inl: - * ace/Object_Manager.cpp: - - Revert change: - Fri Sep 16 19:54:20 2005 J.T. Conklin - - As the new ACE_Atomic_Op - template specialization was not found responsible for the - TAO performance regressions. - -Wed Sep 28 11:54:12 UTC 2005 Johnny Willemsen - - * ACE-INSTALL.html: - Small updates to Borland documentation - -Wed Sep 28 07:08:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/compiler.bor: - At the moment BCBVER is not set, we default to BCB6. - -Tue Sep 27 13:40:45 2005 William Otte - - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb - * bin/MakeProjectCreator/config/ciao_xml_utils.mpb - - Added files that should have been part of the previous commit. - -Tue Sep 27 13:12:28 2005 William Otte - - * bin/MakeProjectCreator/config/ciao_client.mpb - - Removed another obsolete ciao base project. - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb - * bin/MakeProjectCreator/config/ciao_component_dnc.mpb - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb - * bin/MakeProjectCreator/config/ciao_server_dnc.mpb - - Revamped the CIAO base project structure to fix deficiencies - exposed by the especially strict linker on MacOS. - -Tue Sep 27 10:29:49 2005 William Otte - - * bin/MakeProjectCreator/config/ciao_component.mpb - * bin/MakeProjectCreator/config/ciao_servant.mpb - * bin/MakeProjectCreator/config/ciao_server.mpb - - Removed obsolete CIAO base projects. - -Tue Sep 27 13:02:12 UTC 2005 Johnny Willemsen - - * etc/ciao_DAnCE.doxygen: - Removed zapped XML_Helpers directory - -Tue Sep 27 10:39:12 UTC 2005 Johnny Willemsen - - * bin/fuzz.pl: - Also detect ACE_THROW in an ACE_TRY block - -Mon Sep 26 10:36:12 UTC 2005 Johnny Willemsen - - * bin/fuzz.pl: - Extended fuzz check to detect ACE_THROW_RETURN in an ACE_TRY block, - in that case ACE_TRY_THROW should be used. - -Mon Sep 26 10:02:12 UTC 2005 Johnny Willemsen - - * etc/ciao_xml_helpers.doxygen: - * etc/ciao_config_handlers.doxygen: - Renamed ciao_xml_helpers to ciao_config_handlers. Corrected also - paths, fixes errors in the doxygen build - - * bin/generate_doxygen.pl: - Updated change above - -Sat Sep 24 12:56:20 2005 Bala Natarajan - - * ace/Acceptor.cpp: - * ace/Strategies_T.cpp (accept_svc_handler): - - Errno of failed accept() call is potentially not preserved due - to unguarded call of svc_handler->close(). Thus when - accept_svc_handler() returns -1 the errno value may be due to a - subsequent failure in the svc_handler->close() method rather - than the original accept() failure, making handling of the - accept() failures difficult. Thanks to Russell Mora - for the patch. - -Fri Sep 23 10:07:25 2005 William Otte - - * ace/config-macosx-tiger.h - * include/makeinclude/platform_macosx_tiger_gcc4.GNU - - Updates for Tiger compatibility. Thanks to Michael van der - Westhuizen (r1mikey at gmail dot com) for help with tracking - down some troublesome issues in the platform_macros. - -Thu Sep 22 12:40:20 2005 J.T. Conklin - - * m4/ace.m4: - - Set BUILD_TAO_FLRESOURCE, BUILD_TAO_QTRESOURCE, - BUILD_TAO_TKRESOURCE, and BUILD_TAO_XTRESOURCE automake - conditionals if --enable-fl-reactor, --enable-qt-reactor, - --enable-tk-reactor, or --enable-xt-reactor are specified - at configure time. - -Thu Sep 22 08:40:00 UTC 2005 Simon Massey - - * tests/run_test.lst: - Stop based_pointer_test running on VxWorks and Static builds. - -Thu Sep 22 08:08:12 UTC 2005 Johnny Willemsen - - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.h: - 64bit fix - - * bin/fuzz.pl: - Extended fuzz check to detect several corba calls without an - ACE_CHECK in between - - * ace/SOCK_Dgram.cpp: - Small layout fixes - - * ace/Service_Config.h: - Added missing ACE_LIB_TEXT to some macros - -Tue Sep 20 10:37:24 2005 Douglas C. Schmidt - - * ace/Pipe.inl: Added #include of "ace/ACE.h" to get the - right class definition for the ACE:: methods. Thanks to Simon - Massey for reporting this. - -Tue Sep 20 15:20:12 UTC 2005 Martin Corino - - * bin/tao_orb_tests.lst: - Added new TAO/tests/CallbackTest/*.pl tests. - -Tue Sep 20 10:10:00 UTC 2005 Simon Massey - - * tests/Based_Pointer_Test.cpp: - Attempt to fix bug 2232 (Implimented the diffs found there). - -Tue Sep 20 08:43:12 UTC 2005 Martin Corino - - * bin/tao_other_tests.lst: - Added new IPV6 specific tests. - -Tue Sep 20 08:29:12 UTC 2005 Martin Corino - - * bin/tao_orb_tests.lst: - Added new TAO/tests/BiDirectional/run_test_ipv6.pl - IPV6 test. - -Mon Sep 19 11:43:59 2005 Douglas C. Schmidt - - * docs/ACE-guidelines.html: Added a guideline that disallows the use of - assert() macros et al. in core ACE, TAO, and CIAO - library/framework code. Thanks to Dave Giovannini and Carlos O'Ryan for motivating this. - - * protocols/ace/RMCast/Socket.cpp: Replaced the use of ACE_OS::write() - and ACE_OS::read() with the new ACE_Pipe::send() and - ACE_Pipe::recv() methods thanks to Felix's enhancements. - - * ace/Pipe.{h,inl,cpp}: Added a full complement of send*() and recv*() - methods so that the code is portable across different operating - systems without requiring user-level #ifdefs. Thanks to Felix - Li for submitting these enhancements. - -Mon Sep 19 12:35:39 2005 Justin Michel - - * tests/MT_SOCK_Test.cpp: - - Fix use of ACE_static_cast from my Fri Sep 2 checkin. - -Mon Sep 19 10:51:26 2005 William Otte - - * bin/generate_doxygen.pl - - Removed obsolete CIAO projects from Doxygen generation. - - * etc/ciao_xml_helpers.doxygen - - Updated path to new config_handlers. - - * etc/ciao_assembly_deployer.doxygen - * etc/ciao_componentserver.doxygen - * etc/ciao_daemon.doxygen - * etc/ciao_serveractivator.doxygen - - Removed obsolete ciao doxygen files. - -Sun Sep 18 17:28:12 UTC 2005 Martin Corino - - * ace/INET_Addr.cpp: - Fixed bug in ACE_INET_Addr::string_to_addr(). - -Sun Sep 18 17:26:12 UTC 2005 Martin Corino - - * ace/Log_Msg.cpp: - Fixed compile error in latest addition to code. - -Sun Sep 18 10:08:05 2005 Douglas C. Schmidt - - * ace/Log_Msg.cpp (log): Check for passing of NULL pointers to %s - formatting strings and replace them with "(null") to avoid - crashes. Thanks to Steven Xie for - reporting this and to J.T. for suggesting the fix. - - * protocols/ace/RMCast/Acknowledge.cpp (ACE_RMCast): - made the default ACE_Hash_Map_Manager size be 10 rather than - 1024. Thanks to Felix Li for reporting - this. - -Fri Sep 16 19:54:20 2005 J.T. Conklin - - * ace/Atomic_Op.cpp: - * ace/Atomic_Op.h: - * ace/Atomic_Op.inl: - * ace/Object_Manager.cpp: - - #if 0 ACE_Atomic_Op - specialization to see if it's responsible for recent - TAO performance degradation. - -Fri Sep 16 10:57:12 UTC 2005 Martin Corino - - * bin/tao_orb_tests.lst: - - Added new TAO/tests/IPV6 test to runlist (only when config - IPV6 defined). - -Thu Sep 15 12:35:27 2005 J.T. Conklin - - * THANKS: - - Added Jin Zhi Ye. - - * ace/os_include/os_stdio.h: - - #undef fgetc and fputc if they are defined, as macro expansion - conflicts with our use of the same names in the ACE_OS wrapper - functions. Reported by Jin Zhi Ye . - -Thu Sep 15 18:55:12 UTC 2005 Martin Corino - - * ace/Atomic_Op.inl: - - Small fix to get rid of annoying warning on Windows concerning - unary '-'. - -Wed Sep 14 13:36:34 2005 J.T. Conklin - - * configure.ac: - - Changed ACE_HAS_MEMCPY_LOOP_UNROLL feature test code such that - smemcpy() correctly returns it's first argument. - - Added third argument to ACE_HAS_MEMCPY_LOOP_UNROLL's AC_DEFINE - to provide the description for config.h. - -Tue Sep 13 14:38:12 UTC 2005 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - - Changed munching step for VxWorks SIMPC builds to generate asm - output to circumvent compiler output problem in certain files. - - * include/makeinclude/rules.lib.GNU: - - Small change to make output of prelink step visible for static - libraries build for VxWorks with -frepo. - -Tue Sep 13 09:30:03 2005 Arvind S. Krishna - - * ace/OS_NS_string.{h,cpp,inl}: - Updated the loop unrolled memcpy version name to fast_memcpy - rather than smemcpy. - -Tue Sep 13 09:18:54 2005 Arvind S. Krishna - - * configure.ac: - - Fixed the autoconf test that checks for memcpy loop unrolling - optimization, by (1) removing the testit function and replacing - it with a function pointer, (2) by properly setting the right - ACE macro when the test succeeds and (3) enabling the flag only - when the test produces a result > 10% for all sizes between - 1..16. - -Tue Sep 13 14:10:12 UTC 2005 Martin Corino - - * tests/Cached_Accept_Conn_Test.cpp: - * tests/Cached_Conn_Test.cpp: - * tests/Message_Block_Test.cpp: - - Fixed problems with explicit template instantiations and - VxWorks builds. - -Tue Sep 13 11:52:12 UTC 2005 Martin Corino - - * apps/JAWS2/JAWS/Cache_Manager_T.cpp: - * examples/APG/Logging/LogManager.h: - * examples/APG/Logging/Use_Multiple_Sinks.cpp: - * examples/APG/Logging/Use_Ostream.cpp: - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/Export/test.cpp: - - Fixed for environments defining ACE_USES_OLD_IOSTREAMS - (which unfortunately is the case for Windows x64 at the - moment due to shortcomings in the Platform SDK). - -Tue Sep 13 10:30:00 UTC 2005 Simon Massey - - * bin/tao_orb_tests.lst: - Added Bug_2234_Regression test. - -Tue Sep 13 10:11:12 UTC 2005 Martin Corino - - * bin/tao_orb_tests.lst: - Excluded a few tests based on 'IPV6' configuration because - they use features which are not IPv6 compatible (yet) like - SHMIOP. - -Fri Sep 9 18:57:31 2005 Steve Huston - - * ace/Sock_Connect.cpp (bind_port): Replace variable s_addr with - addr_p. s_addr is a macro on some systems (in this case, Solaris 8) - and caused problems. - -Fri Sep 9 11:05:27 2005 Phil Mesnier - - * ace/config-lynxos4.0.0.h: - Added new config file to accomodate new version of LynxOS. - -Thu Sep 8 16:33:38 2005 J.T. Conklin - - * m4/tls.m4: - - Added support for --with-openssl, --with-openssl-include, and - --with-openssl-libdir options so users can select or override - the location of the OpenSSL libraries. - -Thu Sep 8 18:43:12 2005 Steve Huston - - * tests/Based_Pointer_Test.cpp (mmap_remap_test): Don't keep increasing - the allocation until the base pointer changes without checking for - an allocation failure. This caused all memory to be absorbed on AIX - without remapping the base, then the log file was so big that - the log processor for the scoreboard ran out of memory processing it. - -Thu Sep 8 06:47:11 2005 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - - Allow files with .. in the path to count in the VPATH setting. - -Wed Sep 7 14:44:58 2005 J.T. Conklin - - * ace/SSL/Makefile.am: - * examples/C++NPv2/Makefile.am: - * examples/IPC_SAP/SSL_SAP/Makefile.am: - - Regenerated. - - * bin/MakeProjectCreator/config/ace_openssl.mpb: - - Use 'compile_flags' instead of 'includes' to set compile flags - to @ACE_TLS_CPPFLAGS@. Thanks to Chad Elliot for this hint. - - Uncomment automake "specific" block. - -Tue Sep 6 22:02:16 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/ace_openssl.mpb: - - Subtract /usr/kerberos/includes from includes for automake - builds. - - Changed ${ACE_TLS_FOO} to @ACE_TLS_FOO@ so variables will be - substituted by the values obtained by the configure script. - -Tue Sep 6 21:56:43 2005 J.T. Conklin - - * m4/tls.m4: - - Changed to substitute ACE_TLS_CPPFLAGS and ACE_TLS_LDFLAGS like - was done with ACE_TLS_LIBS. - -Tue Sep 6 19:43:47 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/automake.features: - - New features file for automake build. - -Tue Sep 6 17:37:15 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/ssl.mpb: - * ace/SSL/ssl.mpc: - - Changed to inherit from ace_openssl.mpb instead of openssl.mpb. - - * bin/MakeProjectCreator/config/ace_openssl.mpb: - - New file, similar to other ace_*.mpb files, so we can - override values inherited from MPC's openssl.mpb. - -Tue Sep 6 12:20:22 2005 J.T. Conklin - - * ace/Object_Manager.cpp: - - Changed to invoke ACE_Atomic_Op::init_functions () to initialize function pointers. - - * ace/Atomic_Op.cpp: - * ace/Atomic_Op.h: - * ace/Atomic_Op.inl: - - Added ACE_Atomic_Op template - specialization using the existing atomic operations for longs - with judicious use of casts. The implementation isn't ideal, - since two sets of function pointers need to be set. This can - be revisited when we add specializations for int and unsigned - int. - -Tue Sep 6 10:32:23 2005 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Change the position of the use of custom 'output_option' setting. - Ensure that the input file is the last thing on the command line. - -Tue Sep 6 12:51:19 UTC 2005 Don Sharp - - * apps/JAWS2/JAWS/IO.h - Small fix to counter LynxOS' defining ERROR_MESSAGE - -Tue Sep 6 08:46:12 UTC 2005 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Small fix for '-frepo' builds with shared libs. - -Mon Sep 5 14:56:53 2005 Boris Kolpackov - - * protocols/ace/RMCast/Socket.cpp: - - Reverted this change: "Replaced calls to read/write with - recv_n/send_n to make things work with BCB on Windows". - It breaks VC6. - -Sun Sep 4 22:27:19 2005 Boris Kolpackov - - * protocols/ace/RMCast/Link.cpp: - - Aligned receiving buffer manually. This is necessary because - some of the broken compilers (like BCB) do not adhere to the - standard when it some to the alignment of the buffers returned - by operator new. Thanks to Vladislav Zverev for reporting this. - - * protocols/ace/RMCast/Socket.cpp: - * protocols/ace/RMCast/Socket.h: - - Added the from argument to the recv() function. Made the Reactor - interface code executed only when it is actually used. Replaced - calls to read/write with recv_n/send_n to make things work with - BCB on Windows. Thanks to Vladislav Zverev for suggestions. - -Fri Sep 2 08:29:38 2005 Arvind S. Krishna - - * ace/OS_NS_string.h: - * ace/OS_NS_string.cpp: - * ace/OS_NS_string.inl: - - Updated the ACE_OS::memcpy optimization to factor out the loop - unrolled code into a separate function. This should enable - memcpy function itself to be inlined. Thanks to JT jtc at - acorntoolworks dot com. - -Fri Sep 2 10:44:12 UTC 2005 Martin Corino - - * ace/SOCK_Dgram{.h .cpp}: - * ace/SOCK_Dgram_Mcast{.h .cpp}: - Added IPv6 multicast support for Win32 (>= XP Pro/Server 2003). - - * tests/Multicast_Test_IPV6.cpp: - Changed to do IPv6 multicast for non-linux systems as well. - - * bin/MakeProjectCreator/config/ipv6.mpb: - Added new feature config for IPv6 support. - Adds additional link library Iphlpapi.lib for windows projects - (MPC types vc6, vc7, vc71, vc8, nmake, borland and bmake) - and sets macro ACE_HAS_IPV6. - - * bin/MakeProjectCreator/config/global.features: - * bin/MakeProjectCreator/config/acedefaults.mpb: - Introduced 'ipv6' feature. - -Fri Sep 2 15:08:27 2005 Justin Michel - - * ace/ACE.cpp: - - The code that waited for connections to complete had problems - with some Windows machines. The code now doesn't trust the write - bit in select() to indicate an accepted connection. - - * ace/SOCK_Connector.cpp: - - There was a workaround for ACE_WIN32 that would wait 35ms and - retry after the first connection failure. It wouldn't retry the - connect(), but would just retry select(). This workaround - appears to be unnecessary for current Windows machines, so I - changed the #ifdef ACE_WIN32 to #ifdef ACE_HAS_NON_BLOCKING_BUG. - - * ace/config-win32-common.h: - - ACE would always default to a ACE_DEFAULT_BACKLOG of 5. Changed - to default to SOMAXCONN on Win32. This special value is used by - Winsock listen() to indicate that the machine should - automatically pick a suitable default. - - * tests/MT_SOCK_Test.cpp: - - This test is really to verify that the listen() backlog feature - works correctly. Updated the code to make this testable and - consistent. The code now sleeps in the server thread to give the - 30 client threads time to attempt to connect. Only 5-9 clients - should succeed, because the Acceptor is created with a listen() - backlog=5. - -Thu Sep 1 17:28:25 2005 J.T. Conklin - - * ace/Atomic_Op.cpp: - * ace/Atomic_Op.h: - - Added ACE_Atomic_Op template - specialization for AMD64 when compiled with GCC. - -Thu Sep 1 17:38:10 2005 William Otte - - * bin/ciao_tests.lst - - Corrected the path to the hello test. - -Thu Sep 1 18:00:31 2005 Steve Huston - - * tests/Based_Pointer_Test.cpp: Corrected to build on MSVC 6, - lacking template typedefs. Thanks to Johnny Willemsen for - this fix. - -Thu Sep 1 15:05:55 2005 William Otte - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb - - Updates to support the CIAO reorganization. - -Thu Sep 1 19:14:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - For MPC projects that are custom_only and only have IDL - build rules the install target didn't work anymore. If the project - is not an dll or exe, we generate an include of install.bor - and set the install types to includes. This way the install - target works for the generate borland makefiles - -Thu Sep 1 11:55:39 2005 J.T. Conklin - - * ace/OS_NS_unistd.cpp (num_processors, num_processors_online): - - Provide implementation for *BSD and MacOSX. - -Thu Sep 01 10:42:17 2005 Gary Maxey - - * ace/config-tandem-nsk-mips-v3.h: - Defined ACE_SIZEOF_WCHAR - -Thu Sep 1 15:20:12 UTC 2005 Johnny Willemsen - - * ace/SV_Message_Queue.h: - Fixed copy/paste error - -Thu Sep 1 14:22:12 UTC 2005 Johnny Willemsen - - * ace/POSIX_Proactor.cpp: - * ace/SV_Message_Queue.{h,inl}: - Fixed 64bit warnings - - * ace/UPIPE_Connector.cpp: - Fixed formatting - -Thu Sep 1 14:11:12 UTC 2005 Johnny Willemsen - - * ace/Timer_Heap_T.cpp: - Fixed 64bit conversion error - -Thu Sep 1 10:10:12 UTC 2005 Johnny Willemsen - - * ace/ACE.cpp: - * ace/LSOCK.{h,cpp}: - Fixed 64bit conversion problems - -Thu Sep 1 10:03:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Suppress warning 1684 with Intel 9. This is: - Conversion from pointer to same-sized integral type - (potential portability problem) - -Thu Sep 1 09:27:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_sys_socket.{h,inl}: - Updated return value of send/recv methods from int to ssize_t to - fix problems on 64bit systems. On 32bit systems int is size of - ssize_t so no backward compatibility issues. This is part of - bug 2203 - - * ace/OS_NS_unistd.inl: - Replaced c-style cast with C++ cast - -Thu Sep 1 08:20:12 UTC 2005 Martin Corino - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Added missing library searchpath for '-frepo' builds. - -Thu Sep 1 07:42:12 UTC 2005 Johnny Willemsen - - * ace/Service_Config.h: - Added ACE_REMOVE_SERVICE_DIRECTIVE that works with plain svc.conf - and the xml version. Thanks to - Lothar Werzinger for creating this new - macro - -Wed Aug 31 14:25:12 UTC 2005 Johnny Willemsen - - * ace/DLL_Manager.cpp: - Initialize pointer to zero - -Wed Aug 31 14:11:12 UTC 2005 Johnny Willemsen - - * ace/MEM_Stream.{h,inl}: - * ace/OS_NS_sys_msg.{h,inl}: - 64bit fixes - - * ace/Framework_Component.cpp: - Initialize pointer to zero - -Wed Aug 31 08:48:19 2005 Arvind S. Krishna - - * configure.ac: - Added a test to see if memcpy unrolling improves performance as - opposted to a vanilla memcpy. This optimization is thanks to - Mike Martinez martinez_m at oci dot com. - - * OS_NS_string.inl: - Updated ACE_OS::memcpy to use the corresponding loop unrolling - based on a flag set by configure. - -Wed Aug 31 10:33:12 UTC 2005 Johnny Willemsen - - * ace/Get_Opt.cpp: - Fixed 64bit conversion warning - -Wed Aug 31 10:29:12 UTC 2005 Johnny Willemsen - - * ace/LSOCK.{h,cpp} (recv_handle): - Changed the type of the len argument from int to ssize_t to - fix 64bit conversion problems - -Wed Aug 31 10:26:12 UTC 2005 Johnny Willemsen - - * ace/Log_Msg_UNIX_Syslog.{h,cpp}: - * ace/Log_Record.{h,inl}: - Fixed 64bit conversion problems - -Wed Aug 31 10:16:12 UTC 2005 Johnny Willemsen - - * ace/Timer_Heap_T.{h,cpp}: - Fixed 64bit conversion problems - -Wed Aug 31 07:39:12 UTC 2005 Martin Corino - - * ace/Sock_Connect.cpp: - Fixed WChar problem. - -Wed Aug 31 06:10:12 UTC 2005 Johnny Willemsen - - * tests/Based_Pointer_Test_Lib.cpp: - Fixed GCC 4 error - -Tue Aug 30 14:50:18 2005 Ossama Othman - - * ace/OS_NS_Thread.inl (ACE_Thread_ID): - - Moved small functions out-of-line. Reduces footprint and - improves performance slightly. - - From Patrick Bennett - * ace/OS_NS_Thread.cpp (operator==): - * ace/Thread_Manager.inl (operator=-): - - Corrected thread id/handle equality logic. It was previously - inverted. - -Tue Aug 30 18:50:12 UTC 2005 Johnny Willemsen - - * tests/Based_Pointer_Test.cpp: - Corrected remap test, some platforms grow the mmap area - downwards. This fixes bugzilla bug 2226. Thanks to - James Megquier for reporting this and - Steve Williams for validating this. - -Tue Aug 30 18:31:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Use -fPIC instead -KPIC - -Tue Aug 30 18:20:12 UTC 2005 Johnny Willemsen - - * tests/Based_Pointer_Test.cpp: - Some more wchar fixes - -Tue Aug 30 18:16:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_Thread.{h,cpp}: - Made the methods id, handle and to_string of the ACE_Thread_Id - class const. Thanks to Felix Wyss - for reporting this. - -Tue Aug 30 18:11:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Use icpc as C++ compiler. - -Tue Aug 30 14:49:12 UTC 2005 Martin Corino - - * ace/README: - Added description for new ACE_HAS_IPV6_V6ONLY macro. - -Tue Aug 30 13:49:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_win32_icc.GNU: - First version of Intel C++ compiler on Windows using GNU make - - * ace/config-win32-msvc-7.h: - Only define ACE_HAS_EXCEPTIONS when it is not defined yet - -Tue Aug 30 12:38:12 UTC 2005 Johnny Willemsen - - * ace/Array_Map.h: - The 64bit version of the Intel C++ compiler can only work together - with the latest Platform SDK (June 2005). This SDK ships with an - old version of the system header files, this is not the same as - shipped with Visual C++ 2003. This SDK has the old STL implementation - as shipped with VC6, so we need the workaround for the VC6 compiler - also with the latest SDK. It seems newer system header files define - _CPPLIB_VER, when this is not defined we have old header file, so - made another check, when _MSC_VER is defined, but not _CPPLIB_VER - we assume older header files and use the vc6 way of reverse - iterator usage. Hopefully Microsoft ships a platform SDK soon which - has updated header files - -Tue Aug 30 12:22:17 2005 Simon McQueen - - * apps/JAWS2/JAWS/IO.cpp: - * apps/JAWS2/JAWS/IO.h: - - Removed mispelled message type 'CONFORMATION'. - -Tue Aug 30 10:32:12 UTC 2005 Johnny Willemsen - - * ace/Process_Manager.cpp: - * ace/WFMO_Reactor.cpp: - Fixed incorrect checks for MSC_VER, it should be _MSC_VER - -Tue Aug 30 10:02:12 UTC 2005 Johnny Willemsen - - * tests/Based_Pointer_Test.cpp: - Fixed compile error - -Tue Aug 30 09:00:12 UTC 2005 Martin Corino - - * ace/Default_Constants.h: - Added some new default macros for IPv6. - - * ace/INET_Addr{.cpp .h .inl}: - Added more (IPv6 specific) functionality (is_xxx methods). - Changed get_host_addr() to return IPv6 formatted string for - IPv4 mapped IPv6 addresses (argumentation inside:). - Changed string_to_addr() to recognize and handle extended - IPv6 textual address format, i.e. '[' ']'. - - * ace/Sock_Connect.cpp: - Added support for retrieval of IPv6 local interfaces to - ACE::get_ip_interfaces(). - Supported for Windows XP (and newer) and Linux (possibly other - *nixes as well). - -Tue Aug 30 06:02:12 UTC 2005 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - When inlining is disabled, add -fno-inline to the compiler flags. - This should fix the assembler errors the Intel 9 compiler on - linux gives - -Mon Aug 29 17:26:49 2005 Steve Huston - - * ace/Reactor_Token_T.h: Set the default queueing policy to - ACE_Token::FIFO, instead of ACE_TOKEN_TYPE::FIFO to work around - MSVC 6's inability to deal with the definition inside a - template class argument. This hack can be removed after - ACE 5.5 is released. - -Mon Aug 29 19:33:12 UTC 2005 Johnny Willemsen - - * tests/Based_Pointer_Test.cpp: - Wchar fixes - -Mon Aug 29 14:29:12 UTC 2005 Johnny Willemsen - - * tests/Based_Pointer_Test.cpp: - Fixed GCC compile error - -Mon Aug 29 14:01:12 UTC 2005 Johnny Willemsen - - * ace/Object_Manager.cpp: - Also for Intel C++ call the _CrtSetReportMode - -Mon Aug 29 10:56:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/nmake.features: - New features file for the nmake project type - -Mon Aug 29 09:31:12 UTC 2005 Johnny Willemsen - - * ace/MMAP_Memory_Pool.cpp: - Fixed bugzilla bug 2218, when an ACE_MMAP_Memory_Pool memory - segment base address is moved due to a remapping operation, - the ACE_Based_Pointer_Repository is updated with the new - base address, but the old mapping was not removed. - - Thanks to Steve Williams for reporting - this and supplying the fix and regression test below. - -Mon Aug 29 09:20:12 UTC 2005 Johnny Willemsen - - * ace/MMAP_Memory_Pool.cpp: - Fixed bugzilla bug 2216, when an ACE_MMAP_Memory_Pool is created - using an existing backing store, the ACE_Based_Pointer_repository - was not updated with the mapped segment information. - - Thanks to Steve Williams for reporting - this and supplying the fix and regression test below. - -Mon Aug 29 09:14:12 UTC 2005 Johnny Willemsen - - * ace/Based_Pointer_Repository.h: - Export the based pointer repository from the dll as singleton. - Fixes bugzilla bug 1919. - - * tests/Based_Pointer_Test.cpp: - * tests/Based_Pointer_Test_Lib.cpp: - New test for bugzilla bug 1919. Thanks to Steve Williams - for creating this test - - * tests/run_test.lst: - Added Based_Pointer_Test - - * tests/tests.mpc: - Added Based_Pointer_Test - -Sun Aug 28 14:25:07 2005 Arvind S. Krishna - - * ace/Reactor.h: - * ace/Reactor.cpp: - * ace/Reactor.inl: - * ace/Select_Reactor.h: - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_T.cpp: - * ace/Select_Reactor_T.h: - * ace/TP_Reactor.cpp: - - The reactor framework in ACE allows plug and play of different - reactors such as Select, TP, Devpoll etc. The TAO middleware - implementation and applications that run atop TAO typically use - one particular implementation of the Reactor. For example, a - single-threaded application might use select_* reactors. The - Reactor framework uses the bridge pattern to transparently - invoke operations on the right reactors. When the concrete - Reactor is known, it should be possible to specialize the - framework to use the concrete reactor directly rather than use - the bridge. - - As a part of the Feature Oriented Customizer (FOCUS) tool being - developed in my research, we are trying to specialize frameworks - when the concrete implementation type is known a priori. FOCUS - provides an XML based transformation engine, where the - specialization transformations are captured in XML file and a - weaver specializes the code. - - To help in this transformation process, this commit adds markers - within the source code. These markers are added as special - comments. For example, //@@ - REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK represents a hook - where forward declarations and include files are added by the - weaver. As these markers are comments therefore should not - affect normal applications in *any* manner. Additionally, - applications that use multiple reactor implementations not be - affected/do not need any change. Currently, these - specializations are targeted for TAO middleware, where - applications know the target reactor a priori and want to - leverage the specialization to improve performance. - -Sun Aug 28 14:13:25 2005 Arvind S. Krishna - - * ace/Object_Manager.cpp: - * ace/Naming_Context.cpp: - * ace/Log_Msg.cpp: - - When ACE_HAS_TRACE flag is defined, the aforementioned files did - not include the Trace.h include. This commit fixes the - resulting compilation problems. - -Fri Aug 26 18:01:31 2005 Steve Huston - - * ace/Select_Reactor.cpp: - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_T.(h cpp): - * ace/Reactor_Token_T.(h cpp): Moved the definition/implementation of - ACE_Select_Reactor_Token_T and its associated token-type selection - macros to new file Reactor_Token_T.(h cpp); retargeted - ACE_Select_Reactor_Token_T to call the ACE_Reactor_Impl interface - rather than ACE_Select_Reactor. Renamed the class - ACE_Reactor_Token_T to reflect this refactoring. This allows the - token to be used in reactor implementations that are not derived - from ACE_Select_Reactor. - - * ace/ace.mpc: - * ace/Makefile.am: Added the new files Reactor_Token_T.cpp and .h. - - * ace/Dev_Poll_Reactor.(h cpp): Replace the use of ACE_SYNCH_MUTEX with - ACE_Reactor_Token_T for the reactor's internal-protecting lock. - Allows threads wishing to twiddle with the registrations or run the - event loop to properly notify and synchronize with another thread - that's already running the event loop. - Also Clarified documentation on the queue-type members of - ACE_Dev_Poll_Reactor_Notify. - - * ace/POSIX_Proactor.cpp (ACE_POSIX_SIG_Proactor::handle_events_i): - Retry the wait on EINTR. Previous comments said this automatically - happened because ACE_OSCALL_RETURN did it; it no longer does that, - so explicit EINTR check code was added here. - - * apps/JAWS3/jaws3/Event_Dispatcher.h: Correct for the new reactor - token type defined, above. - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: Added ACE_TEXT - where needed for ACE_DEBUG statements. - - * tests/Multicast_Test.cpp: After stopping the reactor loop on test - timeout, wait for the task's thread(s) to exit or there's a race - between thread exit and deleting the task's memory. - -Fri Aug 26 10:52:38 2005 Gary Maxey - - * ace/Array_Map.inl: - - In operator[], broke complex statement into two statements. - Compiler got confused by the original statement and generated - incorrect code. - -Fri Aug 26 11:43:01 2005 Justin Michel - - * ace/CDR_Stream.h: - * ace/CDR_Stream.inl: - * ace/CDR_Stream.cpp: - - Add a new simple class using RAII to call reset on an output CDR - when it goes out of scope. This is used to implement a new TAO - option that will reset() output CDRs after sending each request. - - Add an optional ACE_Lock* to one of the input CDR - constructors. This is used by one of the TAO Any_Impl derived - classes to provide thread safety for its internal CDR. - -Fri Aug 26 11:02:21 2005 Chad Elliott - - * bin/fuzz.pl: - - Enhanced the check_for_ace_check function to detect the use of - ACE_CHECK/ACE_CHECK_RETURN from within an ACE_TRY block. - -Fri Aug 26 09:40:08 2005 Justin Michel - - * ace/OS_NS_Thread.cpp: - - Add missing ACE_ADAPT_RETVAL functions for calls to ::pthread* - routines. This allows the caller to check the errno to find out - what went wrong. - -Fri Aug 26 09:06:32 2005 Chad Elliott - - * bin/fuzz.pl: - - Fixed the detection of missing ACE_CHECK/ACE_TRY_CHECK. It was - missing most ACE_ENV_ARG_PARAMETER's due to a fouled up regular - expression. - -Fri Aug 26 13:29:12 UTC 2005 Johnny Willemsen - - * ace/Reactor.cpp (schedule_timer): - Fixed implicit conversion from long to int to long, found - by 64bit warnings - - * ace/POSIX_Asynch_IO.cpp: - Fixed 64bit bit conversion warning - -Thu Aug 25 18:53:31 2005 Steve Huston - - * tests/Array_Map_Test.cpp: Don't attempt to build this test if - using explicit template instantiation. It's hopeless trying STL - code with explicit templates, especially portably. - - * tests/Time_Value_Test.cpp: Fixed typo. - -Thu Aug 25 11:40:36 2005 Chris Cleeland - - * ace/Task.cpp (activate): Corrected misuse of the argument - 'grp_id' rather than the data member 'grp_id_'. This prevented - activate() from being able to join existing group. Thanks to - Kevin Heifner for catching this. - -Thu Aug 25 12:32:18 2005 Steve Huston - - * tests/Process_Manual_Event_Test.cpp: Removed #if0 block put in - for testing and fixed compile error. - -Wed Aug 24 19:09:31 2005 Steve Huston - - * configure.ac: Copied in updated copyright paragraph from COPYING. - - * ace/OS_NS_Thread.cpp: Formatting fixes. - - * tests/Process_Manual_Event_Test.cpp: ACE_ERROR formatting - corrections (%p needs a string); code format fixes. - -Wed Aug 24 17:15:28 2005 Steve Huston - - * ace/Stream_Modules.h: Added some info about ACE_Stream_Head so - I don't have to keep looking it up ;-) - -Wed Aug 24 12:39:04 2005 Chad Elliott - - * bin/fuzz.pl: - - Fixed this script to work with the ACE_ENV_ARG_PARAMTER and - ACE_ENV_SINGLE_ARG_PARAMETER macros. This will begin to check all - of the missing ACE_CHECK/ACE_TRY_CHECK's again. - -Wed Aug 24 08:51:12 UTC 2005 Johnny Willemsen - - * ace/Select_Reactor_Base.cpp: - Fixed possible unitialized used warning - -Tue Aug 23 22:56:33 2005 Ossama Othman - - * ace/Dev_Poll_Reactor.cpp (close): - - Removed unnecessary zeroing of underlying epoll data structure - array. - - Deallocate epoll event data structure array and /dev/poll event - handler file descriptor array after closing the epoll and - /dev/poll file descriptor, respectively, to ensure consistent - finalization of resources, to prevent potential destruction of - event resources while waiting for events in another thread. - It's not clear whether such a scenario will occur since a lock - is currently held but better to be consistent. - -Tue Aug 23 22:35:00 2005 Ossama Othman - - * tests/Array_Map_Test.cpp (reference_count_test): - - Added some assertions to further verify correct ACE_Array_Map - operation. - - * tests/Dev_Poll_Reactor_Test.cpp (handle_input): - - Fixed loop variable increment. A for-scope variable was - shadowing the "bytes_read" value, preventing the loop variable - from being updated correctly. - -Tue Aug 23 22:24:16 2005 Ossama Othman - - * ace/Atomic_Op_T.cpp: - * ace/Atomic_Op_T.inl: - - Moved inlined constructor to the ".inl" inline source file. - -Tue Aug 23 22:17:29 2005 Ossama Othman - - * apps/JAWS2/JAWS/JAWS.h: - - Fixed '"JAWS_NTRACE" is not defined' g++ 4.0 preprocessor symbol - warning. - -Tue Aug 23 19:59:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/IO_Handler.{h,cpp}: - Tried to fix gcc4 errors - -Tue Aug 23 18:57:12 UTC 2005 Johnny Willemsen - - * ace/Configuration.cpp: - Explicitly initialize local variables - - * ace/OS_NS_sys_socket.inl: - Removed not needed c-style casts that caused 64bit warnings - -Mon Aug 22 09:36:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/bmake.features - * bin/MakeProjectCreator/config/borland.features - * bin/MakeProjectCreator/config/em3.features - * bin/MakeProjectCreator/config/gnuace.features - * bin/MakeProjectCreator/config/vc6.features - * bin/MakeProjectCreator/config/vc71.features - * bin/MakeProjectCreator/config/vc8.features - New features file for each project type we ship in the release. - This files are read by MPC for the correct type when generating - makefiles. - - * bin/make_release: - No need to generate multiple default.features file in the - release proces, this is now handled in the features file - per project type - -Mon Aug 22 08:46:12 UTC 2005 Johnny Willemsen - - * ace/config-unixware-7.1.0.udk.h: - Removed commented out define - -Mon Aug 22 08:30:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-msvc-8.h: - Disable warning 4290 again - -Mon Aug 22 08:29:12 UTC 2005 Johnny Willemsen - - * ace/Configuration.{h,cpp}: - Moved operator != out of header file to cpp file - -Mon Aug 22 11:09:07 2005 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - Improved shared library support for LynxOS 4.0 - -Sun Aug 21 13:19:12 UTC 2005 Johnny Willemsen - - * ace/Select_Reactor_T.cpp (check_handles): - Pass select_handles as 0 on Win32, this was now just done for - Win64, but it is not needed on Win32 and also causes conversion - warnings when 64bit checks are enabled on win32. - -Sun Aug 21 11:13:12 UTC 2005 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added the new core libs - -Fri Aug 19 14:15:12 UTC 2005 Martin Corino - - * ace/Sock_Connect.cpp: - Reverted IPv6 related to accomodate some TAO builds which have - ACE_HAS_IPV6 but do not have my TAO IPv6 changes yet. - Will commit all at a later moment. - -Fri Aug 19 13:39:12 UTC 2005 Johnny Willemsen - - * ace/Name_Request_Reply.cpp: - Fixed conversion warning - -Fri Aug 19 13:26:12 UTC 2005 Johnny Willemsen - - * ace/DLL_Manager.cpp - * ace/Log_Msg.cpp - * ace/MEM_Acceptor.cpp - * ace/MEM_IO.inl - * ace/Select_Reactor_Base.cpp - * ace/SV_Semaphore_Complex.cpp - * ace/UUID.cpp - * ace/WIN32_Asynch_IO.cpp - Fixed conversion warnings given by Visual C++ 2003 at warning - level 4. Used the correct types for intermediate variables, no - casts are needed. - -Fri Aug 19 12:28:12 UTC 2005 Johnny Willemsen - - * ace/CORBA_macros.h: - For HP aCC use the special ACE_THROW_RETURN to fix the warnings - that the compiler gives - -Fri Aug 19 09:54:12 UTC 2005 Johnny Willemsen - - * etc/tao_pi.doxygen: - * etc/tao_pi_server.doxygen: - * etc/tao_anytypecode.doxygen: - New config files - - * etc/tao_portableserver.doxygen: - Cleanup - - * html/index.html: - Added new libs - - * bin/generate_doxygen.pl: - Also generate documentation for the new projects - -Fri Aug 19 09:04:12 UTC 2005 Martin Corino - - * ace/Sock_Connect.cpp: - Added include of OS_NS_stdio.h since some builds otherwise miss out - on things like ACE_OS::fopen() and such (now for real). - - * ace/SOCK_Connector.cpp: - Reverted change which was meant for Sock_Connect.cpp:-( - -Fri Aug 19 08:40:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-msvc-7.h: - Disable 4290 again, a scoreboard build showed that we need to - disable it, but didn't had that problem on my local systme - -Fri Aug 19 08:33:12 UTC 2005 Martin Corino - - * ace/Sock_Connect.cpp: - Added include of OS_NS_stdio.h since some builds otherwise miss out - on things like ACE_OS::fopen() and such. - -Fri Aug 19 07:56:12 UTC 2005 Johnny Willemsen - - Merged changes from the AnyRefactor branch as below - - Wed Aug 17 07:01:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/anytypecode.mpb: - * bin/MakeProjectCreator/config/taoclient.mpb: - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - By default we now suppress Any and Typecode generation with -Sa - and -St but when the AnyTypeCode library is used, then these - options are removed from the idl flags. This way simple apps - don't get this lib by default - - Tue Aug 16 19:00:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - Removed disabling of warning 4290 - - * ace/CORBA_macros.h: - Removed special ACE_THROW_RETURN for win32 and HP aCC, this - is not needed and only gives a lot of warnings at level 4 - with msvc - - Thu Aug 11 10:48:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/orbsvcsexe.mpb: - Added AnyTypeCode - - Wed Aug 10 11:40:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - Added AnyTypeCode as base project. - - Wed Aug 10 09:34:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/valuetype.mpb: - Added AnyTypeCode as base project - - Wed Aug 10 08:14:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoclient.mpb: - Just for short, added anytypecode to the client. This should really be - dependent on the idl compiler flags - - Fri Jul 29 18:30:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/codecfactory.mpb - * bin/MakeProjectCreator/config/dynamicany.mpb - * bin/MakeProjectCreator/config/ifr_client.mpb - * bin/MakeProjectCreator/config/iormanip.mpb - * bin/MakeProjectCreator/config/strategies.mpb - Added AnyTypeCode as base project - - Thu Jul 28 12:33:12 UTC 2005 Johnny Willemsen - - * bin/MakeProjectCreator/config/anytypecode.mpb: - New base project - -Thu Aug 18 09:34:12 UTC 2005 Martin Corino - - * ace/Sock_Connect.cpp: - Added support for retrieval of IPv6 local interfaces to - ACE::get_ip_interfaces(). - Supported for Windows XP (and newer) and Linux (possibly other - *nixes as well). - -Wed Aug 17 18:39:12 UTC 2005 Johnny Willemsen - - * ace/Message_Block.{h,cpp,inl}: - In case a locking strategy is used, also make sure we use the - lock when accessing the reference count of the ACE_Data_Block. - Thanks to Viktor Chernenko - for reporting this - and supplying some patches to start with. This should fix - according to Viktor some crashes in the notificaion service - under high load. - -Wed Aug 17 15:30:12 UTC 2005 Johnny Willemsen - - * ace/Condition_Recursive_Thread_Mutex.{h,cpp}: - Moved ACE_Condition_Recursive_Thread_Mutex constructor - implementation from header to cpp file - -Wed Aug 17 15:25:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/Waiter.cpp: - Call find_by_index instead of find - -Tue Aug 16 19:13:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/Assoc_Array.{h,cpp}: - * apps/JAWS2/JAWS/Concurrency.cpp: - Changed find(int) to find_by_index (int), to resolve - ambiguity warnings of the HP aCC compiler - -Tue Aug 16 11:16:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/Pipeline_Handler_T.cpp: - Replaced c-style cast with reinterpret cast - -Tue Aug 16 11:11:12 UTC 2005 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Added ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR - -Tue Aug 16 06:46:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/Assoc_Array.cpp: - Removed pragma once - -Mon Aug 15 21:55:00 2005 Douglas C. Schmidt - - * apps/JAWS2/JAWS/IO_Handler.cpp: #include "JAWS/Filecach.h" - to get the definition of JAWS_Cached_FILE. Thanks to - Simon Massey and Steve Huston for reporting this. - -Mon Aug 15 11:03:42 2005 J.T. Conklin - - * bin/MakeProjectCreator/config/dslogadmin_serv.mpb: - - Changed to inherit from utils. - -Mon Aug 15 09:12:12 UTC 2005 Johnny Willemsen - - * ace/DLL_Manager.cpp: - We first try to find the file using the decorator so that when a - filename with and without decorator is used, we get the file with - the same decorator as the ACE dll has and then as last resort - the one without. For example with msvc, the debug build has a "d" - decorator, but the release build has none and we really want to get - the debug version of the library in a debug application instead - of the release one. - - Thanks to Vitaly Belekhov for - reporting this and supply the patches. This fixed bugzilla - 2210 - -Sun Aug 14 11:27:54 2005 Douglas C. Schmidt - - * apps/JAWS2/JAWS/IO_Handler.cpp (handle_transmit_file): Fixed - a bug where - - delete (ACE_Filecache_Handle *) result.act (); - - should have been - - delete (JAWS_Cached_FILE *) result.act (); - - Thanks to Anand Rathi for reporting - this. - -Fri Aug 12 12:00:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/Parse_Headers.{h,cpp}: - Changed STATUS_CODE enum to fix compile errors with VxWorks - -Thu Aug 11 16:04:30 2005 Chris Cleeland - - * ace/OS_NS_stdio.inl (ACE_HAS_WCHAR vsnprintf): This is an - actively edited file today! Fixed the name of the last - argument in the call so that it actually matches the name - of the argument in the arg list. - -Thu Aug 11 14:13:22 2005 Chad Elliott - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - ACE will not compile with SunCC 5.6 or 5.7 if native exceptions - are disabled unless STLPort is used. - -Thu Aug 11 12:29:39 2005 Steve Huston - - * ace/Time_Value.inl (msec): When moving tv_sec to ACE_UINT64, - static cast it to the desired ACE_UINT64, not ACE_UINT32. - - * ace/ace_wchar.inl (convert): - * ace/OS_NS_unistd.inl (read): - * ace/OS_NS_stdio.inl (fread, fwrite): - * ace/OS_NS_sys_socket.inl (sendto): Use proper types portable to - 64 bits. - - * ace/Functor.inl (ACE_Hash): If unsigned long is - not 4 bytes, don't try to cast 64 bits down to 4 bytes. - - * ace/OS_NS_stdio.inl (ACE_HAS_WCHAR vsnprintf): This is the same - situation as ACE_OS::vsprintf - the X/Open/XPG folks got it right - and added the maxlen argument when defining wide-char *printf - functions, so just use vswprintf() - there's no such thing as - vswnprintf(). - -Thu Aug 11 06:44:44 2005 Chad Elliott - - * bin/depgen.pl: - * bin/DependencyGenerator/DependencyWriterFactory.pm: - * bin/DependencyGenerator/MakeDependencyWriter.pm: - * bin/DependencyGenerator/MakeObjectGenerator.pm: - * bin/DependencyGenerator/ObjectGeneratorFactory.pm: - - Added a generic make dependency generator. - - * bin/MakeProjectCreator/config/smart_proxies.mpb: - - Switched orbsvcslib with taolib_with_idl since Smart Proxies have - nothing to do with orbsvcs. - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Added support for CIAO and a hook for correctly modifying the - library path to account for differences with the automake layout - of ACE and TAO. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - If static_libs_only is set to 1, build up a list of libraries upon - which the BIN target will be dependent. This will cause binaries - to re-link in the event that a static library is updated. - -Thu Aug 11 09:44:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_stdio.inl: - Made the wchar vsnprintf a notsup, linux doesn't support this and - I don't have time to fix this. - -Thu Aug 11 07:54:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/Concurrency.cpp: - Fixed single threaded build - -Thu Aug 11 07:44:12 UTC 2005 Johnny Willemsen - - * ace/OS_NS_stdio.inl: - Added wchar vsnprintf version, was declared but not implemented - -Wed Aug 10 15:43:37 2005 Gary Maxey - - * tests/run_test.lst: - Excluded tests inappropriate for HP-NSK platform - -Wed Aug 10 11:27:01 2005 Ossama Othman - - * ace/OS_NS_stdio.inl (vsnprintf): - - Fixed "no return statement in function returning non-void" - warning. - - Removed uses of deprecated ACE_OSCALL macro. - -Wed Aug 10 10:03:40 2005 Gary Maxey - - * ace/OS_NS_stdio.inl: - * ace/Process.cpp - - Regarding change: - Fri Jul 22 13:29:32 2005 Douglas C. Schmidt - use vsnprintf only if the platform supports it. - -Wed Aug 10 07:37:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/IO.cpp: - * apps/JAWS2/JAWS/IO_Acceptor.cpp: - * apps/JAWS2/JAWS/IO_Handler.h: - Fixed compile errors in Cygwin build - -Wed Aug 10 07:27:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/Reaper.h: - Fixed compile error in single threaded builds - -Tue Aug 9 16:57:09 2005 Phil Mesnier - - * bin/MakeProjectCreator/config/taolib.mpb: - Added the codeset project to the "after" list to ensure the - codeset library is built for any project that also depends on - TAO. This is necessary because there are some executables that - depend on libTAO and may therefore depend on libTAO_Codeset, but - do not include taoexe in the MPC base project list. For example - some of the CIAO executables have no need for the build elements - brought in by taoidldefaults base project. - -Tue Aug 9 11:11:50 2005 Phil Mesnier - - * bin/MakeProjectCreator/config/negotiate_codesets.mpb: - Removed unused compiler macro. - - * bin/MakeProjectCreator/config/orbsvcsexe.mpb: - * bin/MakeProjectCreator/config/rt_client.mpb: - * bin/MakeProjectCreator/config/rt_server.mpb: - Added dependency on negotiate_codesets feature so that the - TAO_Codeset library will be added in the correct order, - if desired. - - * bin/MakeProjectCreator/config/taoexe.mpb: - Added Codeset project to the After list to ensure that the - Codeset library is available for dynamic linking for those - applications that require it. - -Tue Aug 9 10:48:39 2005 Douglas C. Schmidt - - * ace/OS_NS_stdio.cpp (snprintf): Added a wchar_t version of - snprintf(). Thanks to Simon Massey for reporting this. - -Tue Aug 9 13:22:12 UTC 2005 Johnny Willemsen - - * bin/make_release: - Added sxd to files that should not get crlf conversion - -Tue Aug 9 13:18:43 UTC 2005 Jeff Parsons - - * ace/Global_Macros.h: - - Added missing '#' before a 'define'. - -Tue Aug 9 11:48:12 UTC 2005 Johnny Willemsen - - * ace/config-win32-msvc-6.h: - Added ACE_HAS_NO_THROW_SPEC - - * ace/Global_Macros.h: - Simplified ACE_THROW_SPEC specificiation. This way with vc71 and vc8 - we get exception specifications. - -Tue Aug 9 10:59:12 UTC 2005 Johnny Willemsen - - * ace/Svc_Conf_l.cpp: - Forced a commit of this file, will probably solve the regeneration - errors - - * apps/JAWS2/JAWS/Waiter.h: - Added missing include - -Mon Aug 8 12:54:51 2005 Steve Huston - - * ace/Log_Msg.cpp (open): Reverted these changes: - Fri Apr 22 18:02:37 2005 Douglas C. Schmidt - - * ace/Log_Msg.cpp (open): Fixed a problem with LOGGER and logger_key - and the backend_->open() call. Thanks to Jerry D. De Master - for reporting this. - - Tue Jan 18 08:17:10 2005 Douglas C. Schmidt - - * ace/Log_Msg.cpp (open): Fixed the logic to pass prog_name - rather than logger_key, which fixes a bug with syslog. Thanks - to Robert Iakobashvili for this fix. - - They broke a fix from: - Sat Dec 1 19:39:22 2001 Steve Huston - - * ace/Log_Msg.h: Improved the documentation for open() to note the - role of the logger_key argument when LOGGER and SYSLOG are set in - flags. - To get the progr_name used as the syslog/event log source ID, pass - a 0 logger_key. - - * ace/SOCK_Dgram_Mcast.h: Clarified that instead of using set_option, - use ACE_SOCK::set_option(). - - * ace/DEV_Addr.{h inl cpp}: Fix non-0-terminated name possibility - when setting a new name. Thanks to James Damour - for this fix. - Also introduced a private enum to define the length of the name - buffer and use the new value to limit string copy sizes. - - * THANKS: Added James Damour to the Hall of Fame. - -Mon Aug 8 10:44:16 2005 William Otte - - * ace/OS_NS_stdio.inl - * ace/Process.cpp - - Fixed a compilation problem from: - - Fri Jul 22 13:29:32 2005 Douglas C. Schmidt - -Mon Aug 8 09:57:15 2005 William Otte - - * ace/config-macosx-tiger.h - * include/makeinclude/platform_macosx_tiger_gcc4.GNU - - Adding preliminary support for OS X 10.4 - -Mon Aug 8 13:58:12 UTC 2005 Johnny Willemsen - - * apps/JAWS2/JAWS/IO.cpp: - * apps/JAWS2/JAWS/Concurrency.{h,cpp}: - Fixed compile problems in single threaded build - -Sat Aug 6 17:25:04 2005 Douglas C. Schmidt - - * ace/Svc_Conf.l: Removed the ' and " characters to avoid - problems with Lex. Thanks to Rohini Madhavan and Brian Buesker - for helping with this. - -Wed Aug 3 12:35:23 2005 Douglas C. Schmidt - - * ace/Asynch_Acceptor.{h,cpp}: - * ace/Asynch_Connector.{h,cpp}: Fixed the code so it doesn't try - to build on Windows CE. Thanks to Alan Anderson - for reporting this. - - * ace/DEV_Addr.cpp (set): NULL-terminate the devname_ string. - Thanks to James Damour for reporting - this problem. - -Tue Aug 2 14:01:39 2005 Douglas C. Schmidt - - * THANKS: Added Abdel Rigumye , - who is the 2000th contributor to ACE+TAO+CIAO!!!! - -Fri Jul 22 13:29:32 2005 Douglas C. Schmidt - - * ace/Process.cpp (command_line): Changed the use of - ACE_OS::vsprintf() to use the new ACE_OS::vsnprintf(). Thanks - to Xue for this suggestion, as well. - - * ace/OS_NS_stdio.{h,inl}: Added support for ACE_OS::vsnprintf(). - Thanks to Xue Yong Zhi for this - suggestion. - -Mon Aug 8 08:58:12 UTC 2005 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added two new collocation tests - - * apps/JAWS2/JAWS/jaws2.mpc: - New MPC file - -Fri Aug 05 07:37:20 2005 Simon Massey - - * ACE version 5.4.7 released. - - diff --git a/ACE/ChangeLogs/ChangeLog-06a b/ACE/ChangeLogs/ChangeLog-06a deleted file mode 100644 index f5ab9e868ab..00000000000 --- a/ACE/ChangeLogs/ChangeLog-06a +++ /dev/null @@ -1,4912 +0,0 @@ -Tue Apr 18 08:54:49 UTC 2006 Johnny Willemsen - - * tests/SSL/SSL_Asynch_Stream_Test.cpp: - Fixed main signature to resolve link errors in the Cygwin build. - -Tue Apr 18 07:58:49 UTC 2006 Johnny Willemsen - - * tests/SSL/SSL_Asynch_Stream_Test.cpp: - Fixed warning in solaris build - -Tue Apr 18 07:55:49 UTC 2006 Johnny Willemsen - - * tests/SSL/SSL_Asynch_Stream_Test.cpp: - Fixed compile error in Cygwin build - -Tue Apr 18 07:24:49 UTC 2006 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added ImR_Client lib - -Mon Apr 17 18:15:49 UTC 2006 Steve Huston - - * tests/SSL/SSL_Asynch_Stream_Test.cpp: Fixed compile error correctly. - -Mon Apr 17 14:47:23 UTC 2006 William R. Otte - - * ace/config-macosx-tiger.h - - Added ACE_HAS_AIO_CALLS. - -Mon Apr 17 10:06:23 UTC 2006 Steve Huston - - * tests/SSL/SSL_Asynch_Stream_Test.cpp: Restrict building this test - to platforms with both threads and AIO support. Fixes Cygwin - build problem. - -Sat Apr 15 10:57:12 UTC 2006 Johnny Willemsen - - * tests/SSL/SSL_Asynch_Stream_Test.cpp: - Fixed compile error - -Fri Apr 14 15:53:21 UTC 2006 Steve Huston - - * NEWS: Updated to reflect the changes and fixes below. - - * ace/Task.{h inl cpp}: Change ACE_Task::lock_ from ACE_Thread_Mutex - to ACE_Recursive_Thread_Mutex, and hold lock_ across call to - ACE_Task::close() in ACE_Task_Base::cleanup(). This guards against - multiple threads in close() seeing a 0 thr_count() and acting on it. - Thanks to Howard Finer for this fix. - Fixes Bugzilla #2339. - - * ace/SOCK_Stream.h: Explain more about how the *_n methods work and - how to use the timeout and bytes_transferred arguments. - - * examples/Threads/task_three.cpp: Change name of the file static - ACE_Thread_Mutex from lock_ to Lock to avoid clashing with the - ACE_Task-inherited member lock_. - - * ace/SSL/SSL_Asynch_Stream.{h cpp}: Changes that allow - ACE_SSL_Asynch_Stream objects to be instantiated; required adding - an implementation of the pure virtual implementation() method - inherited from ACE_Asynch_Operation. - Also moved the declaration of the ACE_SSL_Asynch_Read_Stream_Result, - ACE_SSL_Asynch_Write_Stream_Result, and ACE_SSL_Asynch_Result classes - from the .cpp file to the .h file so applications can see them. - Also corrected and enhanced a lot of the documentation. - - * tests/SSL/tests.mpc: - * tests/SSL/Makefile.am: - * tests/SSL/SSL_Asynch_Stream_Test.cpp: Added a new test that at least - tests building an application to use ACE_SSL_Asynch_Stream. - -Fri Apr 14 14:57:12 UTC 2006 Chad Elliott - - * bin/msvc_static_compile.pl: - - Added a work-around for devenv using the solution file to build - additional projects even when the .vcproj is specified. This only - happens when using the -CORE option to this script. First, all - .sln files are temporarily renamed and then named back when the - build is done or a SIGINT or SIGTERM is detected. - -Wed Apr 12 14:48:38 UTC 2006 William R. Otte - - * bin/MakeProjectCreator/config/ciao_component_dnc.mpb - - Fixes for linking errors in OS X. - -Tue Apr 11 20:06:12 2006 Douglas C. Schmidt - - * ace/OS_NS_stdio.inl (rewind): Replaced SetFilePointer() with - fseek() on WinCE since it works better. Thanks to Andrey - Nechypurenko for reporting this. - -Wed Apr 12 08:14:00 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb: - Added ciao_rtevent_dnc as base project to fix link errors in the - VxWorks static builds - -Tue Apr 11 14:10:00 UTC 2006 Steve Huston - - * ASNMP/asnmp/transaction.cpp (handle_input): Return 0 on successful - socket read, not the number of bytes. Thanks to Jason Zhang for this - fix. - - * THANKS: Added Jason Zhang to the Hall of Fame. - -Tue Apr 11 13:12:36 UTC 2006 Simon McQueen - - * ace/Lib_Find.h: - - aCC 3.31 seems to want an extra newline at the end of this file. - - * ace/config-macros.h: - - ACE_NOTREACHED is reached for aCC up to 3.31 at least. - - * include/makeinclude/platform_hpux_aCC.GNU: - - Define ACE_LACKS_MEMBER_TEMPLATES for aCC 3.31 because it does. - -Tue Apr 11 12:41:00 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb: - Added event config handles and add all projects to the after - to get the correct build order - -Mon Apr 10 18:37:17 UTC 2006 Wallace Zhang - - * ace/ace_for_tao.mpc: - - Added Capabilities.cpp into the lib. - Required by TAO/orbsvcs/examples/ImR/Advanced to - use the getline function. The ace_for_tao lib is - increased by 0.1M. - -Mon Apr 10 18:04:00 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run bug 2134 regression in a minimum build - -Mon Apr 10 14:34:00 2006 Johnny Willemsen - - * tests/Object_Manager_Test.cpp: - Fixed compile problem in single threaded no inline build - -Mon Apr 10 12:28:00 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_server_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - Added ciao_events_dnc - -Mon Apr 10 12:06:00 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_domainapplicationmanager_dnc.mpb: - New base project - -Mon Apr 10 11:52:00 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_component_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_container_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - Changed base projects - -Mon Apr 10 10:27:03 UTC 2006 Don Sharp - - * tests/Unload_libACE.cpp: - Set up a guard for WIN32 && ACE_USES_WCHAR. - -Mon Apr 10 09:36:00 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_rtevent_dnc.mpb: - New base project - -Mon Apr 10 09:13:00 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_events_base_dnc.mpb: - New base project - -Mon Apr 10 06:23:00 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_container_dnc.mpb: - New file, matches library name - - * bin/MakeProjectCreator/config/ciao_xml_utils.mpb: - Use exceptions as base project - - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - Use ciao_events_dnc as base project - - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb: - Add ciao_container_dnc and ciao_client_dnc to make things easier to - maintain. Also use the CIAO_Dnc_Events library instead of the - two seperate libs - - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - Removed CIAO_DnC_Events as seperate lib - -Sun Apr 9 12:00:00 2006 Douglas C. Schmidt - - * docs/ACE-bug-process.html: Updated this page to more accurately - reflect how the DOC group handles enhancement requests. Thanks - to David White for - motivating this. - -Sat Apr 8 18:32:29 2006 Douglas C. Schmidt - - * ace/Shared_Memory_MM.h (ACE_Shared_Memory_MM): - * ace/Shared_Memory_SV.h (ACE_Shared_Memory_SV): - Added comments that underscore that these classes should not be - used and instead ACE_Malloc or ACE_Mem_Map should be used. - Thanks to Qingbo Cai for motivating these - comments. - -Fri Apr 7 19:56:03 UTC 2006 Gan Deng - - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb - - Modified to make CIAO_DnC_Events_Base and CIAO_RT_Event - libraries explicitly specified in "libs +=" to resolve - linking errors in BC compilers. - -Fri Apr 7 13:13:06 UTC 2006 Don Sharp - - * tests/tests.mpc: - Add staticflags += ACE_AS_STATIC_LIBS for Library Unload - -Fri Apr 7 07:36:12 UTC 2006 Johnny Willemsen - - * ace/Token.{h,inl}: - Fixed compile problem in single threaded no online build. Thanks - to Ossama Othman for reporting this - -Thu Apr 6 21:11:24 UTC 2006 Steve Huston - - * ace/SSL/SSL_Context.cpp (private_key, context, dh_params): If setting - up the new file fails, reset the corresponding - ACE_SSL_Data_File member to allow retries to proceed. - - * NEWS: Added user-visible items for 5.5.1. - -Thu Apr 6 19:15:12 UTC 2006 Johnny Willemsen - - * ace/Thread.cpp: - Fixed compile problem in single threaded no online build. Thanks - to Ossama Othman for reporting this - -Thu Apr 6 15:58:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Thu Apr 6 10:07:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - * tests/tests.mpc: - * tests/Bug_2497_Regression_Test.cpp: - Added regression for bug 2497, we have to see what the best fix - is. Thanks to Sergey Zubarev for - providing reporting this. - -Thu Apr 6 06:05:12 UTC 2006 Johnny Willemsen - - * ace/config-macosx-tiger.h: - Don't define ACE_SIZEOF_LONG_DOUBLE when it is already set. Can - happen when we build for OS X on Intel. Thanks to Ignacio Alvarez - for reporting this. This fixes bugzilla - 2496. - -Wed Apr 5 23:02:50 UTC 2006 Adam Mitz - - * bin/tao_orb_tests.lst: - - Added TAO/tests/Bug_2494_Regression. - -Wed Apr 5 22:03:52 UTC 2006 Gan Deng - - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb - - Modify the project dependency so its built after - CIAO_DnC_Container project. This should fix the - errors on SuSE_FP_Stats build. - -Wed Apr 5 19:32:19 UTC 2006 Gan Deng - - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb - - Added library dependency to CIAO_Events_DnC, so static - build could resolve symbols in this library. - -Mon Apr 5 14:59:37 UTC 2006 Ossama Othman - - * ace/SSL/SSL_Context.cpp: - * ace/SSL/SSL_Context.h: - - Addressed access to locks that have already been destroyed by - reintroducing some of the original static variable semantics. - Some, but not all, of the exception-safety fixes that introduced - the order of destruction problem were retained. - - (random_seed, egd_file, seed_file): - - Declared these methods "static" since they do not manipulate - internal ACE_SSL_Context members. - -Wed Apr 5 14:58:12 UTC 2006 Don Sharp - - * tests/Unload_libACE.cpp: - Set up a guard for ACE_AS_STATIC_LIBS. - - * tests/tests.mpc: - Add an empty Resource_Files section to the Library Unload project. - -Wed Apr 5 14:25:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Wed Apr 5 13:10:00 UTC 2006 Johnny Willemsen - - * ace/CDR_Stream.cpp: - Initialise local pointer with 0 - -Wed Apr 5 11:55:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Tue Apr 4 18:51:41 UTC 2006 Steve Huston - - * ace/SOCK_Acceptor.cpp (shared_open): If ACE_OS::listen() fails, - guard errno before closing the socket to prevent loss of the error - value, at least on Windows. Thank you to Aleksandar Vukajlovic - for this fix. - - * THANKS: Added Aleksandar Vukajlovic to the Hall of Fame. - -Tue Apr 4 15:44:03 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Reverting my change from Mon Apr 3 12:12:27 UTC 2006 and changing - the default from directory based building/dependencies to named - targets (which is the way that all other make based MPC project - types work). This is being done by request (RT #8510). - -Tue Apr 4 15:28:00 UTC 2006 Don Sharp - - * tests/Unload_libACE.cpp: - Cope when log file cannot be opened. - -Tue Apr 4 15:06:00 UTC 2006 Don Sharp - - * tests/Unload_libACE.cpp: - Add guards for __MINGW32__ and __CYGWIN32__. - Don't error if libACE isn't found. - -Tue Apr 4 14:10:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Mon Apr 3 23:04:51 UTC 2006 Steve Huston - - * include/makeinclude/platform_aix_ibm.GNU: Removed the explicit - setting of ACE_TEMPLATES_REQUIRE_SOURCE in CCFLAGS introduced at - Wed Feb 22 16:26:43 GMT 2006 Rich Seibel . - ACE_TEMPLATES_REQUIRE_SOURCE is set (or not) from config-aix-4.x.h - depending on what template instantiation options were specified on - the command line. - -Mon Apr 3 13:45:29 UTC 2006 Ossama Othman - - * ace/Basic_Types.inl: - - Fixed versioned namespace related errors for configurations that - define ACE_LACKS_LONGLONG_T and/or ACE_LACKS_UNSIGNEDLONGLONG_T. - -Mon Apr 3 13:45:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Mon Apr 3 12:12:27 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/README: - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Added support for a new workspace based setting that only makes - sense to the 'gnuace' project type called 'named_targets'. If - 'named_targets' is set, the workspace (GNUmakefile) will be - generated such that each target can be built via it's project name - and directory location does not affect dependencies. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Support the new source component scoped keyword 'buildflags'. - -Mon Apr 3 10:25:00 UTC 2006 Simon Massey - - * bin/tao_orb_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Mon Apr 3 09:38:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Remove PRISM_ONLY tests (again arg!) - -Sat Apr 1 19:08:28 2006 Douglas C. Schmidt - - * ace/OS_NS_math.inl: Improved the computations for floor() and ceil(). - Thanks to Abdullah Sowayan for this - patch. - -Sat Apr 1 17:14:59 UTC 2006 J.T. Conklin - - * configure.ac: - * m4/compiler.m4: - - Removed special cases for *freebsd*. Thanks to Thomas Girard - who sent patches for - Debian GNU/kFreeBSD systems (FreeBSD kernel / GNU libc). The - changes added *k*bsd-gnu patterns to override the special cases - matched by *freebsd*. However, further investigation has proved - that they were not needed for FreeBSD either. - -Fri Mar 31 23:51:48 UTC 2006 J.T. Conklin - - * configure.ac: - - Changed to #include in the - feature test, avoiding the autoconf "present but cannot - be compiled" warning. - -Fri Mar 31 15:00:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Fri Mar 31 13:59:04 UTC 2006 Don Sharp - - * tests/Unload_libACE.cpp: - Add guard for ACE_VXWORKS and declare local main(). - - * tests/tests.mpc: - Remove Main.cpp reference from the Library Unload project. - -Fri Mar 31 11:41:54 UTC 2006 Steve Huston - - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.inl: - * ace/Recursive_Thread_Mutex.cpp: Reverted changes from - Thu Mar 30 18:51:13 UTC 2006 Steve Huston - because they broke builds on many platforms. - -Fri Mar 31 10:56:12 UTC 2006 Johnny Willemsen - - * ace/Timer_List_T.cpp: - Use prefix increment instead of postfix - - * ace/Timer_Hash_T.cpp: - Initialise pointer with 0 - - * ace/Reactor_Token_T.h: - Converted some documentation to doxygen style - - * ace/Log_Record.cpp: - Initialise some pointers with 0, made some local variables const. - - * ace/IOStream_T.h: - Fixed some doxygen warnings - -Fri Mar 31 08:33:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Added CPU_FLAG as possible flag, this can be -3/-4/-5/-6 to optimize - things for a certain CPU, see the Borland help for more info what - these flags do. When this is set, this is passed to the compiler - - * ACE-INSTALL.html: - Document CPU_FLAG for Borland - - * ace/config-win32-borland.h: - The Borland compiler can't handle assembly in inline methods or - template methods. We do have inline assembly when building for - pentium, so when we inlining enabled and do build for pentium - we set ACE_LACKS_INLINE_ASSEMBLY to disable the inline assembly. - Thanks to Steve Orner for reporting - this. - -Thu Mar 30 21:03:27 UTC 2006 Jeff Parsons - - * ace/Event_Handler.cpp (read_adapter): - - Fixed typo introduced in - - Thu Mar 30 10:24:50 2006 Douglas C. Schmidt - -Thu Mar 30 10:24:50 2006 Douglas C. Schmidt - - * ace/Event_Handler.cpp (read_adapter): It was possible for - handle_close() to "delete this" so we need to cache the reactor - pointer and use it here. Thanks to Yuan for this fix. - -Thu Mar 30 18:51:13 UTC 2006 Steve Huston - - * tests/Unload_libACE.cpp: Fixed broken fprintf() call. - - * ace/OS_NS_Thread.h (ACE_thread_mutex_t): - * ace/OS_NS_Thread.inl: For Windows, replace CRITICAL_SECTION with a - struct including a CRITICAL_SECTION as well as a recursion count. - This allows us to properly do recursion in combination with a - condition variable across all Windows editions and versions. - - * ace/Recursive_Thread_Mutex.cpp (get_nesting_level): This is now - possible for platforms with ACE_HAS_RECURSIVE_THREAD_MUTEX. - - Thanks to Adrian Tulloch for - these improvements. - - * THANKS: Added Adrian Tulloch to the Hall of Fame. - -Thu Mar 30 17:04:48 UTC 2006 Gan Deng - - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb - - Modified to support CIAO pub/sub service integration. - - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb - - Added this mpb file for pub/sub service integration - in CIAO. - -Thu Mar 30 15:45:00 UTC 2006 Simon Massey - - * tests/Unload_libACE.cpp: - Corrected missing file handle. - -Thu Mar 30 13:14:12 UTC 2006 Johnny Willemsen - - * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: - * apps/JAWS3/jaws3/Config_File.cpp: - Fixed value might be unitialized warnings - -Thu Mar 30 12:32:12 UTC 2006 Johnny Willemsen - - * ace/Configuration.cpp: - * ace/Shared_Memory_MM.cpp: - * ace/ARGV.cpp: - * examples/APG/Containers/Stacks.cpp: - * examples/APG/Containers/RB_Tree_Functors.cpp: - * examples/APG/Containers/Queues.cpp: - * ace/RB_Tree.inl: - * tests/Hash_Map_Manager_Test.cpp: - Fixed value might be unitialized warnings - -Thu Mar 30 11:27:00 UTC 2006 Simon McQueen - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Define variable ACE_CC_PREPROCESSOR to be 'cc' if the SunCC version - is 5.4. This fixes bug #2478. - - See also: Thu Mar 30 11:26:45 UTC 2006 Simon McQueen - in TAO/ChangeLog. - -Thu Mar 30 11:16:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added BiDirectional_DelayedUpcall - -Thu Mar 30 11:04:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Run BiDirectional_NestedUpcall also on VxWorks - -Thu Mar 30 00:46:52 UTC 2006 J.T. Conklin - - * m4/compiler.m4: - - Change the default of --enable-symbol-visibility option from yes - to no. - -Wed Mar 29 22:33:36 UTC 2006 J.T. Conklin - - * configure.ac: - - Changed to #include in the - feature test, avoiding the autoconf "present but cannot - be compiled" warning. - -Wed Mar 29 19:26:37 UTC 2006 Olli Savia - - * ace/TTY_IO.cpp: - Do not try to control DTR under LynxOS. It sets serial port - to non-functional state. - -Wed Mar 29 14:14:06 UTC 2006 J.T. Conklin - - * ACE-INSTALL.html: - * m4/ace.m4: - - Changed --with-gperf to --enable-gperf to be consistant with the - intent of --with-* / --enable-* flags. Thanks to Vincent Joseph - for running into this. - -Wed Mar 29 13:25:12 UTC 2006 Don Sharp - - * ace/Log_Msg.cpp: - * include/makeinclude/platform_lynxos.GNU - - Add code to ensure cleanup in ACE_Log_Msg::close (void). - For some systems, e.g. LynxOS, we need to ensure that - any registered thread destructor action for this thread - is disabled. This is a revision of an earlier attempt to - achieve the same thing. The ACE tests pass with this edition. - - * tests/Unload_libACE.cpp - - This source does not use ACE functionality directly. - It tests that the ACE shared library can be safely loaded, - (and unloaded), by a non-ACE program exercising the - cleanup code above. - - * tests/run_test.lst - * tests/tests.mpc - - Build and run the new test - -Wed Mar 29 07:04:12 UTC 2006 Johnny Willemsen - - * ace/Log_Msg.cpp: - Initialise pointers with 0, small const changes - -Wed Mar 29 06:44:12 UTC 2006 Johnny Willemsen - - * etc/*.doxygen: - Also expand ACE_ENV_ARG_DECL_NOT_USED and - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - -Tue Mar 28 21:30:01 UTC 2006 jiang,shanshan - - * ace/Log_Msg.{h,cpp} - * ace/Log_Record.{cpp,h,inl}: - Updated these files to solve the stack overflow problem in ACE_Log_Msg - and ACE_Log_Record. Moves buffers that can be large in stack in malloced - memory. - Thanks to qwerty for motivating and - suggesting the fix to this problem. - -Tue Mar 28 18:34:26 UTC 2006 Wallace Zhang - - * bin/tao_other_tests.lst: - Added a missing semicolon. - -Tue Mar 28 14:51:19 UTC 2006 J.T. Conklin - - * m4/compiler.m4: - - Added support for --disable-symbol-visibility flag so users - can explicitly disable symbol visibility in the cases where - it does not work (or does not work properly) but the feature - test selects it anyway. - -Tue Mar 28 09:04:55 2006 Douglas C. Schmidt - - * ace/OS_NS_sys_resource.inl (setrlimit): Fixed a bug where - "resource" appeared twice in the call to setrlimit(). Thanks to - Vincent Joseph for reporting this. - -Tue Mar 28 14:10:00 UTC 2006 Simon Massey - - * bin/tao_orb_tests.lst: - more !DISABLE_ToFix_LynxOS_* marks to tests - -Mon Mar 27 19:06:52 UTC 2006 Wallace Zhang - - * bin/tao_other_tests.lst: - - Added test - TAO/orbsvcs/tests/Security/MT_SSLIOP/run_test_harsh.pl to - test fix for bug in Bug 1647. - -Mon Mar 27 16:39:41 UTC 2006 Steve Huston - - * tests/tests.mpc: Added a "verbatim" to get the automake-needed - setup for running the scoreboard test script for the tests. - -Mon Mar 27 14:16:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Mon Mar 27 07:46:33 2006 Douglas C. Schmidt - - * ace/Acceptor.h: Updated the documentation to clarify that an - acceptor can only listen on one port at a time. Thanks to - Mockey Chen for motivating - this. - -Mon Mar 27 11:08:00 UTC 2006 Simon Massey - - * bin/tao_orb_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Mon Mar 27 09:18:07 UTC 2006 Simon McQueen - - * ace/Configuration.h: - - Remove 'explicit' keyword from a two arg constructor. This is - upsetting aCC 331. - -Mon Mar 27 03:57:38 UTC 2006 J.T. Conklin - - * m4/compiler.m4: - - Check whether "gcc" supports symbol visibility options by - invoking the compiler with those options. This addresses - configure failures due to icc's incomplete gcc emulation. - Should fix bugzilla issues 2338 and 2384. - -Sun Mar 26 21:40:10 2006 Douglas C. Schmidt - - * ace/TSS_T.cpp: Added patches to silence the type-punning warning - from G++ 4.x. Thanks to Ken Sedgwick for contributing this - stuff! - -Sun Mar 26 17:29:08 UTC 2006 J.T. Conklin - - * m4/compiler.m4: - - Add ACE_CHECK_CFLAGS and ACE_CHECK_CXXFLAGS autoconf macros - to verify if c/c++ compiler supports the specified command- - line options. - -Fri Mar 24 12:05:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Thu Mar 23 16:20:00 UTC 2006 Simon Massey - - * bin/tao_orb_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Thu Mar 23 16:00:49 UTC 2006 Chad Elliott - - * ace/Svc_Conf_Lexer.cpp: - - Fixed two bugs. - - 1) Line numbers were not calculated correctly as in most cases the - new line characters were thrown away but not counted. - 2) Strings were not allowed to contain nested quotes. However, - the original lexer allowed this. Thanks to JR Andreassen - for reporting this. - -Thu Mar 23 14:37:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/vcl.mpb: - Also set specific options for the bds template - -Thu Mar 23 14:37:12 UTC 2006 Johnny Willemsen - - * ace/os_include/os_limits.h: - Updated documentation why we have a VxWorks specific - workaround - -Thu Mar 23 14:22:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - - * bin/PerlACE/Run_Test.pm: - Add lynxos platform default timing configuration - -Thu Mar 23 12:14:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/templates/bor.mpd: - If linkflags are available, generate them into the project - file - - * bin/MakeProjectCreator/config/vcl.mpb: - Added -aa to the link flags to indicate that we link a - windows application. This prevents a dosbox from appearing - when we start a vcl windows app. - -Thu Mar 23 03:41:18 UTC 2006 Ciju John - - * ace/Time_Value.inl (set): - - timespec_t doesn't have a 'sec' member. Changed it to 'tv_sec'. - -Wed Mar 22 18:42:36 UTC 2006 Ossama Othman - - From Russell Mora - * ace/Time_Value.inl: - - With MSVC8 the type of time_t is by default 64-bit unless - _USE_32BIT_TIME_T is defined - changed #ifdef to recognise this - and also changed other set() methods to use the version that - knows how to handle the 64-bit type. - -Wed Mar 22 17:55:48 UTC 2006 Gan Deng - - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb - * bin/MakeProjectCreator/config/ciao_deployment_dnc.mpb - - Reverted my earlier change - "Tue Mar 21 21:58:17 UTC 2006 Gan Deng - ". - - I will put earlier changes back in later when all the - libraries in CIAO to support pub/sub services have - been checked in. - -Wed Mar 22 16:19:12 UTC 2006 Johnny Willemsen - - * ace/config-osf1-4.0.h: - Added ACE_HAS_NONCONST_SENDMSG - -Wed Mar 22 15:32:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_osf1_4.x_g++.GNU: - Removed -fno-strict-prototypes from the CCFLAGS, thanks to - Karl Schmitt for reporting this. - -Tue Mar 21 21:58:17 UTC 2006 Gan Deng - - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb - * bin/MakeProjectCreator/config/ciao_deployment_dnc.mpb - - Added a base MPC project to support pub/sub integration - in CIAO. - -Tue Mar 21 19:06:12 UTC 2006 Chad Elliott - - Committing on behalf of Adam Mitz . - - * bin/PerlACE/Process_Win32.pm: - - In some cases .EXE was not being added to the end of the - executable name. This change fixes that problem and also changes - Spawn() to return -1 on failure instead of exiting. - -Tue Mar 21 15:30:00 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Tue Mar 21 14:29:29 UTC 2006 J.T. Conklin - - * configure.ac: - - If system lacks the cpu_set_t type, skip the feature tests for - sched_getaffinity() and sched_setaffinity(). The interface of - these system calls have changed three times, and ACE currently - only supports the latter two varients. The supported varients - both have arguments of type cpu_set_t. - - On a system with the first varient, the feature tests detects - the existance of sched_getaffinity() and sched_setaffinity(), - it also detects that it's the not most current varient. This - results in feature test macros being defined for the second - varient, which causes a build failure in OS_NS_Thread.cpp. - - By avoiding the feature tests, we avoid defining any processor - affinity related feature test macros, and ACE will be compiled - as if the system does not support any form of processor - affinity. - - See bugzilla issue 2466 for details. - -Tue Mar 21 11:03:12 UTC 2006 Johnny Willemsen - - * performance-tests/Misc/childbirth_time.cpp: - * examples/OS/Process/imore.cpp: - Fixed unicode build errors - -Tue Mar 21 06:49:12 UTC 2006 Johnny Willemsen - - * bin/tao_other_tests.lst: - Removed all PrismTech tests - -Mon Mar 20 22:53:09 UTC 2006 Steve Huston - - * tests/Makefile.am: Restored hand-inserted settings to allow running - the ACE tests during "make check". This needs to be added to the - mpc file, but we're discussing how to do this. - -Mon Mar 20 08:58:26 UTC 2006 Simon Massey - - * bin/tao_other_tests.lst: - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Mon Mar 20 08:58:26 2006 Douglas C. Schmidt - - * ACE-INSTALL.html: Removed all references to egcs, which - is hopelessly out of date.. - -Mon Mar 20 14:54:23 UTC 2006 Olli Savia - - * ace/Task_Ex_T.h: - Added a workaround for buggy LynxOS 3.x compiler. - -Mon Mar 20 10:15:12 UTC 2006 Johnny Willemsen - - * ace/TP_Reactor.cpp (post_process_socket_event): - Before acquiring the token, first check if we really have to do some - post processing, if not, then we just don't acquire the token. This - fixes the performance drop in the TAO thread pool performance test. - Thanks to Kobi Cohen-Arazi - for noticing this drop in the performance stats. - - * ace/TP_Reactor.h: - Small documentation improvement - -Sun Mar 19 21:30:39 2006 Douglas C. Schmidt - - * ACE-INSTALL.html (href): Rearranged the order of things - so that it explains how to build and install ACE before going - into all sorts of details about various platforms and compilers. - Thanks to Axter for motivating this. - -Sat Mar 18 15:20:45 2006 Douglas C. Schmidt - - * ace/Timer_Queue_Adapters.cpp (activate): Set active_ to 1 - in case we were deactivated. Thanks to Yauheni Akhotnikau - for reporting this. - -Fri Mar 17 16:35:36 UTC 2006 Ossama Othman - - * docs/Symbol_Versioning.html: - - New document that describes how to use ACE's versioned namespace - support. [Bug 2458] - -Fri Mar 17 15:50:00 UTC 2006 Simon Massey - - * tests/run_test.lst - Add more !DISABLE_ToFix_LynxOS_* marks to failing tests - -Fri Mar 17 13:38:18 UTC 2006 Jeff Parsons - - * bin/MakeProjectCreator/config/ciaocidldefaults.mpb: - - New file, containing cidl-related stuff removed from - ciao_servant_dnc.mpb, which now inherits from the new - base project. These changes allow CIAO applications - to set up the build either in the existing way, where - the servant build executes the CIDL compiler, then the - IDL compiler on the resulting *E.idl file, then the - C++ compiler on all the results, or to have separate - builds for CIDL files (which executes first), then - IDL files, then generated and hand-written C++ files. - - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - - Changes described in the item above. - -Fri Mar 17 13:37:12 UTC 2006 Johnny Willemsen - - * ace/TP_Reactor.cpp: - Fixed variable not used warning - -Fri Mar 17 08:56:12 UTC 2006 Johnny Willemsen - - * ace/TP_Reactor.{h,cpp,inl}: - Fixed bugzilla #2395. This was about a race condition in the - TP_Reactor, when the handle_x method returns -1 the handler - is removed and after that we try to resume. Normally this resume - is a noop because for the handle there is no event handler anymore. - But to resume the handle we need to reacquire the lock on the - reactor, in the time between the remove and the reacquire we could - have received a new connection for which the handle is used which - we already freed and then we can resume this handle but then for - a new eventhandler. The fix is to do the remove and resume as atomic - operation. Thanks to Bala Natarajan and Steve Huston for reviewing - the patches and Kees van Marle for debugging and analyzing this - problem. - -Thu Mar 16 21:54:29 UTC 2006 Steve Huston - - * ace/Timer_Heap_T.cpp (grow_heap): Reset timer_ids_min_free_ after - growing the heap. Fixes Bugzilla #2447 where timer IDs may be - improperly duplicated under certain conditions. - - * tests/Timer_Queue_Test.cpp: Added a new function, - test_unique_timer_heap_ids(), as supplied in Bugzilla #2447 to - verify the fix. - - Thank you very much to Dan Pozdol and - Paxton Mason for identifying the bug, - its conditions and causes, supplying the test program and supplying - the fix! - - * THANKS: Added Dan Pozdol to the Hall of Fame. - -Thu Mar 16 16:30:00 UTC 2006 simon massey - - * tests/run_test.lst - Add !DISABLE_ToFix_LynxOS_* marks to failing ACE tests - -Thu Mar 16 15:53:55 UTC 2006 jiang,shanshan - - * ace/UUID.cpp - * protocols/ace/RMCast/Simulator.cpp - Updated these files to solve some potential static-cast errors. - -Thu Mar 16 13:47:56 UTC 2006 Chad Elliott - - * ace/config-vxworks6.2.h: - - In kernel mode, VxWorks 6.2 lacks suseconds_t. - -Thu Mar 16 12:27:12 UTC 2006 Johnny Willemsen - - * etc/ciao_DAnCE.doxygen: - Fixed incorrect links to the location of the documentation of the - other ACE/TAO libraries - -Thu Mar 16 12:20:12 UTC 2006 Johnny Willemsen - - * html/index.html: - Added CIAO Config Handlers - -Thu Mar 16 12:14:12 UTC 2006 Johnny Willemsen - - * etc/*.doxygen: - Set GENERATE_HTMLHELP to YES. This generates a few extra files - which our users can use to convert the generated htlm documentation - easily to a windows help file - -Thu Mar 16 12:05:12 UTC 2006 Johnny Willemsen - - * etc/*.doxygen: - Set DOT_MULTI_TARGETS to TRUE, this will speedup the doxygen - generation. - -Wed Mar 15 16:38:08 UTC 2006 Olli Savia - - * ace/OS_NS_Thread.inl: - Only LynxOS 3.0.x has buggy pthread_cond_timedwait. - - * ace/Reverse_Lock_T.h: - Added a workaround for buggy LynxOS 3.x compiler. - -Wed Mar 15 15:27:51 UTC 2006 jiang,shanshan - - * ace/Capabilities.cpp - * ace/Codecs.cpp - Updated these files to solve the Capabilities_Test & Codecs_Test - tests errors. - -Wed Mar 15 12:18:12 UTC 2006 Johnny Willemsen - - * etc/*.doxygen: - Set SEARCHENGINE to YES for all doxygen config files, enables - the possibility to do searches in the doxygen generated - documentation - -Wed Mar 15 11:34:12 UTC 2006 Johnny Willemsen - - * ace/Handle_Set.{cpp,inl}: - Use prefix increment/decrement instead of postfix - -Tue Mar 14 11:22:35 2006 Douglas C. Schmidt - - * ace/String_Base.inl (empty), - * ace/String_Base.h (ACE_String_Base): Added - an empty() method to be more like STL strings. Thanks to - Patrick Rabau for contributing this. - -Tue Mar 14 23:33:27 UTC 2006 Steve Huston - - * ace/OS_NS_Thread.inl (recursive_mutex_cond_unlock): Fix this for - WinCE. CE doesn't have a RecursionCount, and LockCount is not an - indicator of recursion on WinCE; 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. - Thanks to Spencer Vanroekel for the investigations leading to this solution. - - * THANKS: Added Spencer Vanroekel to the Hall of Fame. - -Tue Mar 14 20:58:12 UTC 2006 jiang,shanshan - - * ace/WIN32_Asynch_IO.cpp - * ace/ACE.cpp - * ace/Capabilities.cpp - * ace/Codecs.cpp - * ace/FIFO.cpp - * ace/FIFO.h - * ace/FIFO_Recv.cpp - * ace/FIFO_Recv.h - * ace/FIFO_Recv_Msg.cpp - * ace/FIFO_Recv_Msg.h - * ace/FIFO_Send.cpp - * ace/FIFO_Send.h - * ace/FIFO_Send_Msg.cpp - * ace/FIFO_Send_Msg.h - * ace/Get_Opt.cpp - * ace/INET_Addr.cpp - * ace/MEM_Acceptor.cpp - * ace/MEM_IO.cpp - * ace/RB_Tree.cpp - * ace/Reactor.cpp - * ace/SOCK_Dgram_Mcast.cpp - * ace/SV_Semaphore_Complex.cpp - * ace/SV_Semaphore_Complex.h - * ace/SV_Semaphore_Complex.inl - * ace/SV_Semaphore_Simple.cpp - * ace/SV_Semaphore_Simple.h - * ace/SV_Semaphore_Simple.inl - * ace/TTY_IO.cpp - * ace/UUID.cpp - * ACEXML/common/FileCharStream.cpp - * ACEXML/common/HttpCharStream.cpp - * ACEXML/common/Transcode.cpp - * ACEXML/common/XML_Macros.h - * ACEXML/parser/parser/Parser.cpp - * ACEXML/parser/parser/Parser.i - * apps/gperf/src/Gen_Perf.cpp - * apps/gperf/src/Key_List.cpp - * apps/gperf/src/List_Node.cpp - * apps/gperf/src/Options.cpp - * protocols/ace/HTBP/HTBP_ID_Requestor.cpp - Updated these files to solve the warnings when setting up "VC level - 4 warnings" on Windows. These warnings include "unreachable code", - "assignment within 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 - for motivating the fix to these "VC level 4 warnings". - -Tue Mar 14 15:55:08 UTC 2006 Olli Savia - - * ace/Task_T.h: - Added a workaround for buggy LynxOS 3.x compiler. - - * include/makeinclude/platform_lynxos.GNU: - Made debug=0 as default for LynxOS 3.x - -Tue Mar 14 15:50:09 UTC 2006 Olli Savia - - * ace/OS_NS_Thread.cpp: - Removed the :: prefix from pthread calls that are macros - on LynxOS. - -Tue Mar 14 09:51:12 UTC 2006 Johnny Willemsen - - * bin/generate_rel_manpages: - Updated doxygen version - -Mon Mar 13 22:01:23 UTC 2006 Olli Savia - - * tests/run_test.lst: - Do not run Multicast_Test and Process_Strategy_Test on LynxOS. - -Mon Mar 13 21:47:22 UTC 2006 Olli Savia - - * ace/OS_NS_Thread.inl: - Removed the :: prefix from pthread calls that are macros - on LynxOS. - - * ace/config-lynxos.h: - Do not define _POSIX_THREADS_CALLS under LynxOS 4.0. - - Thanks to Abdullah Sowayan - for reporting the problem and providing the initial patch. - -Mon Mar 13 22:21:25 UTC 2006 Nilabja R - - * ace/Process.h: - Changed the documentation of ACE_Process::spawn function.It - returns 1 if avoid_zombies option is set. does not return the - pid. - -Mon Mar 13 19:35:12 UTC 2006 Johnny Willemsen - - * ace/TP_Reactor.cpp: - Fixed typo in comment - - * ace/OS_NS_sys_select.inl: - Initialize pointer with 0 - - * ace/ACE.cpp: - Use prefix decrement/increment instead of postfix. Replaced - several c-style casts with C++ casts - -Mon Mar 13 17:20:47 UTC 2006 Wallace Zhang - - * ace/os_include/sys/os_time.h: - - Fixed a fuzz build error. - -Mon Mar 13 15:15:12 UTC 2006 Johnny Willemsen - - * ace/Token.cpp: - Use prefix decrement/increment instead of postfix - -Mon Mar 13 14:59:12 UTC 2006 Johnny Willemsen - - * ace/Select_Reactor_Base.cpp: - Initialise several pointers to 0 - -Mon Mar 13 14:02:12 UTC 2006 Johnny Willemsen - - * ace/Handle_Set.h: - Doxygen improvements - - * ace/Handle_Set.inl: - Use prefix increment instead of postfix - -Mon Mar 13 07:51:10 2006 Douglas C. Schmidt - - * Reverted this change - - Sun Mar 12 09:10:01 2006 Douglas C. Schmidt - - Since it was causing runtime failures. Thanks to Johnny for - reporting this. - -Mon Mar 13 13:26:12 UTC 2006 Johnny Willemsen - - * ace/TP_Reactor.cpp (handle_socket_events): - When suspend_i returns -1 return directly - -Mon Mar 13 12:11:52 UTC 2006 Don Sharp - - * ace/OS_NS_Thread.inl - Yank error reported by Abdullah, fixed. - -Sun Mar 12 19:21:12 UTC 2006 Johnny Willemsen - - * ace/Event_Handler.h: - Documentation improvement - - * ace/UTF32_Encoding_Converter.cpp: - Initialise pointer with 0 - - * ace/Select_Reactor_T.cpp (dump): - Also dump the contents of the suspend set - - * ace/Select_Reactor_Base.cpp (dump): - Improved output - -Sun Mar 12 09:10:01 2006 Douglas C. Schmidt - - * ace/TSS_T.cpp: Changed all calls of the form - - if (ACE_Thread::getspecific (this->key_, (void **) &tss_adapter) == -1) - - to - - void *temp = tss_adapter; // Need this temp to keep G++ from complaining. - if (ACE_Thread::getspecific (this->key_, &temp) == -1) - - to silence GCC warnings. Thanks to Lothar for this, as well. - -Sat Mar 11 09:09:35 2006 Douglas C. Schmidt - - * ace/CDR_Stream.inl: Changed all calls of the form - - ACE_OutputCDR::write_float (ACE_CDR::Float x) - { - return this->write_4 (reinterpret_cast (&x)); - } - - to - - ACE_OutputCDR::write_float (ACE_CDR::Float x) - { - void * tmp = &x; - return this->write_4 (reinterpret_cast (tmp)); - } - - to silence GCC warnings. Thanks to Lothar Werzinger for - suggesting this fix. - -Sun Mar 12 11:00:08 UTC 2006 Simon McQueen - - * bin/PerlACE/Process_Win32.pm: - - Don't postfix ".EXE" onto executables if they already have it and - IgnoreExeSubDir is set. Will make this: - - $PERL_SCRIPT = new PerlACE::Process($^X); - $PERL_SCRIPT->Arguments("some_perl_script.pl"); - $PERL_SCRIPT->IgnoreExeSubDir(1); - - ... start working again. - -Sat Mar 11 12:54:12 UTC 2006 Johnny Willemsen - - * ace/Timer_Wheel_T.h: - Don't split the unimplemented macros over multiple lines, fixes - compile problems with the Sun compilers. Thanks to Sven-Uwe - Sieler-Hornke - - for reporting this - -Fri Mar 10 16:01:58 UTC 2006 Chad Elliott - - Committing the following on behalf of Adam Mitz - . - - * bin/tao_orb_tests.lst: - - Added TAO/tests/CollocationLockup. - -Fri Mar 10 14:35:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Don't run Multicast_Test_IPV6 in ACE_FOR_TAO builds - -Fri Mar 10 08:58:52 UTC 2006 J.T. Conklin - - * m4/pkg.m4: - - Add pkg.m4 from pkg-config 0.20 distribution, so configure - script can be regenerated on systems without it installed. - -Thu Mar 9 09:18:58 2006 Douglas C. Schmidt - - * COPYING: Updated the date to include 2006. - Thanks to Alan Kierstead for - motivating the fix to this oversight. - -Thu Mar 9 15:28:53 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/config/concurrency.mpb: - * bin/MakeProjectCreator/config/concurrency_serv.mpb: - * bin/MakeProjectCreator/config/dseventlogadmin.mpb: - * bin/MakeProjectCreator/config/dslogadmin.mpb: - * bin/MakeProjectCreator/config/etcl.mpb: - * bin/MakeProjectCreator/config/event.mpb: - * bin/MakeProjectCreator/config/event_serv.mpb: - * bin/MakeProjectCreator/config/ftrteventchannel.mpb: - * bin/MakeProjectCreator/config/htiop.mpb: - * bin/MakeProjectCreator/config/naming.mpb: - * bin/MakeProjectCreator/config/naming_serv.mpb: - * bin/MakeProjectCreator/config/notification.mpb: - * bin/MakeProjectCreator/config/notification_serv.mpb: - * bin/MakeProjectCreator/config/property.mpb: - * bin/MakeProjectCreator/config/property_serv.mpb: - * bin/MakeProjectCreator/config/rtevent_serv.mpb: - * bin/MakeProjectCreator/config/rteventlogadmin.mpb: - * bin/MakeProjectCreator/config/rtkokyuevent.mpb: - * bin/MakeProjectCreator/config/rtnotify.mpb: - * bin/MakeProjectCreator/config/trading.mpb: - * bin/MakeProjectCreator/config/trading_serv.mpb: - - Updated these base projects to fix the TAO_ORBSVCS GNU Make - macro. In many cases, I just moved the 'tagchecks' setting out of - the _serv.mpb into the base for both _serv.mpb and _skel.mpb - files. In others, I had to add the missing 'tagchecks' setting. - -Thu Mar 9 08:58:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - Removed include path that is not there anymore - -Wed Mar 8 20:58:39 UTC 2006 J.T. Conklin - - * ACE-INSTALL.html: - - Improve documentation for autoconf/automake build. - -Wed Mar 8 15:06:56 UTC 2006 Simon McQueen - - * bin/tao_orb_tests.lst: - - Scheduled regression test for bug #2429. See ticket for status. - -Wed Mar 8 10:17:12 UTC 2006 Johnny Willemsen - - * examples/Reactor/TP_Reactor/run_test.pl: - Both clients should start in parallel, not after each other - -Wed Mar 8 04:53:09 UTC 2006 J.T. Conklin - - * m4/ace.m4: - - Change ACE_PATH_FL to pass --enable-gl to fltk-config. - -Wed Mar 8 03:32:08 UTC 2006 J.T. Conklin - - * m4/ace.m4: - - Changed ACE_ENABLE_XT_REACTOR to AC_REQUIRE() ACE_PATH_XT - instead of AC_PATH_XTRA. - - Changed ACE_PATH_FL to AC_REQUIRE() ACE_PATH_X11. - - Add ACE_PATH_XT autoconf macro that sets ACE_XT_CPPFLAGS, - ACE_XT_LDFLAGS, and ACE_XT_LIBS. - - Add ACE_PATH_X11 autoconf macro that sets ACE_X11_CPPFLAGS, - ACE_X11_LDFLAGS, and ACE_X11_LIBS. - -Tue Mar 7 18:57:12 UTC 2006 Johnny Willemsen - - * examples/DLL/Newsweek.cpp: - Fixed compile error - -Tue Mar 7 18:48:31 UTC 2006 Steve Huston - - * ace/Event_Handler.cpp (read_adapter): Never pass the handler's - handle value to handle_input(). The handle_input() call is being - made on behalf of stdin, not any other handle. It also mimics - the behavior of the non-Windows case, where ACE_STDIN is registered - with the reactor, regardless of the handler's handle value. - Thanks to Aaron Scamehorn - for noticing this problem. - - * THANKS: Added Aaron Scamehorn to the Hall of Fame. - -Tue Mar 7 13:57:12 UTC 2006 Johnny Willemsen - - * ace/Reactor.h: - Doxygen improvements - -Tue Mar 7 09:39:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run Bug_2417_Regression in ST builds - -Tue Mar 7 08:45:26 UTC 2006 J.T. Conklin - - * ace/Makefile.am: - * tests/Makefile.am: - - Regenerate. - - * bin/MakeProjectCreator/config/automake.features: - - Set athena and motif to 1 - - * bin/MakeProjectCreator/config/ace_fl.mpb: - - For autoconf build: - - Change @ACE_FLTK_CPPFLAGS@ and @ACE_FLTK_LIBS@ to - $(ACE_FLTK_CPPFLAGS) and $(ACE_FLTK_LIBS) - - Add $(ACE_FLTK_LDFLAGS) to linkflags. - - Subtract '$(ACE_X11_CPPFLAGS)' from compile_flags. - Subtract '$(ACE_X11_LDFLAGS)' from libpaths. - Subtract '$(ACE_X11_LIBS)' from macros. - - * bin/MakeProjectCreator/config/ace_qt.mpb: - - For autoconf build: - - Change @ACE_QT_CPPFLAGS@ and @ACE_QT_LIBS@ to - $(ACE_QT_CPPFLAGS) and $(ACE_QT_LIBS) - - Add $(ACE_QT_LDFLAGS) to linkflags. - - * bin/MakeProjectCreator/config/ace_tk.mpb: - - For autoconf build: - - Change @ACE_TK_CPPFLAGS@ and @ACE_TK_LIBS@ to - $(ACE_TK_CPPFLAGS) and $(ACE_TK_LIBS) - - Add $(ACE_TK_LDFLAGS) to linkflags. - - * bin/MakeProjectCreator/config/ace_xt.mpb: - - For autoconf build: - Add $(ACE_XT_CPPFLAGS) to compile_flags. - Add $(ACE_XT_LDFLAGS) to linkflags. - Add $(ACE_XT_LIBS) to pure_libs. - - * bin/MakeProjectCreator/config/ace_11.mpb: - - For autoconf build: - Add $(ACE_X11_CPPFLAGS) to compile_flags. - Add $(ACE_X11_LDFLAGS) to linkflags. - Add $(ACE_X11_LIBS) to pure_libs. - -Tue Mar 7 08:01:12 UTC 2006 Johnny Willemsen - - * examples/DLL/Newsweek.cpp: - * examples/DLL/Today.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - Fixed compile errors - -Tue Mar 7 07:19:06 UTC 2006 J.T. Conklin - - * ace/Makefile.am: - * tests/Makefile.am: - - Regenerated. - -Tue Mar 7 07:16:40 UTC 2006 J.T. Conklin - - * ace/ace.m4: - - Add Truncate.h to Header_Files section. - -Tue Mar 7 07:12:39 UTC 2006 J.T. Conklin - - * bin/MakeProjectCreator/config/ace_qt.mpb: - - For autoconf build: - Subtract '$(QTDIR)/include' from includes. - Subtract '$(QTDIR)/lib' from libpaths. - Subtract 'QT_THREAD_SUPPORT' from macros. - -Tue Mar 7 05:50:31 UTC 2006 J.T. Conklin - - * configure.ac: - - Regenerate. - - * bin/MakeProjectCreator/config/ace_fl.mpb: - - For autoconf build: - Add @ACE_FLTK_CPPFLAGS@ to compile_flags. - Add @ACE_FLTK_LIBS@ to pure_libs. - - * bin/MakeProjectCreator/config/ace_qt.mpb: - - For autoconf build: - Subtract 'qt-mt$(QT_VERSION)' from lit_libs. - Add @ACE_QT_CPPFLAGS@ to compile_flags. - Add @ACE_QT_LIBS@ to pure_libs. - - * m4/ace.m4: - - Implement ACE_PATH_FL. - Implement ACE_PATH_QT. - Implement ACE_ENABLE_FL_REACTOR. - Implement ACE_ENABLE_QT_REACTOR. - - Thanks to Thomas Girard - for these fixes. - -Mon Mar 6 18:25:41 UTC 2006 Chad Elliott - - * ace/OS_NS_Thread.inl: - * ace/os_include/os_semaphore.h: - - Added an implementation for timed semaphore wait provided by - Gottwald Port Technology. It is very similar to the emulated - semphore in the event that ACE_HAS_POSIX_SEM is not defined. - Previously, this was not supported at all when ACE_HAS_POSIX_SEM - was defined. - - * ace/os_include/sys/os_time.h: - - Added sys to the file name to avoid Doxygen warnings. - - * bin/MakeProjectCreator/config/ace_qt.mpb: - - This change coincides with a change in MPC where the qt library - setting was changed. - - * bin/tao_other_tests.lst: - - I added !DISABLE_INTERCEPTORS to all the Security tests as - both the TAO_Security library and TAO_SSLIOP library require - interceptors. - - * include/makeinclude/rules.local.GNU: - - Removed an extra dollar sign, that GNU Make apparently didn't - care about but shouldn't have been there anyway. - - * bin/MakeProjectCreator/config/global.mpb: - - Removed this file. It is redundant to the global.mpb found in - MPC. - -Mon Mar 06 15:44:12 2006 Johnny Willemsen - - * examples/DLL/Newsweek.{h,cpp}: - * examples/DLL/Today.{h,cpp}: - * examples/Shared_Malloc/test_persistence.cpp: - Added operator delete, fixes warnings with icc 9.1 - - * ace/CDR_Stream.cpp: - * tests/Thread_Pool_Test.cpp: - Initialise pointer with 0 - - * ace/Pipe.inl: - Replaced c-style casts with C++ casts - - * ace/Svc_Handler.h: - Made the closing_ member an int, it is used that way, not as - char. - -Mon Mar 06 15:13:12 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2417_Regression - -Sun Mar 05 11:10:32 2006 Wallace Zhang - - * ACE version 5.5 released. - -Sun Mar 5 15:35:54 UTC 2006 Wallace Zhang - - * bin/make_release: - - Corrected a warning when generating WinCE projects. - -Sat Mar 4 14:09:44 UTC 2006 Wallace Zhang - - * ace/ATM_Acceptor.h: - - Added a missing semicolon. Thanks to Felix Li for reporting this. - -Thu Mar 2 02:01:12 UTC 2006 Wallace Zhang - - * NEWS: - - Updated this file with more inputs. - -Thu Mar 2 00:51:18 UTC 2006 Steve Huston - - * NEWS: Added Win64 and WinCE notes. - -Wed Mar 1 23:47:13 UTC 2006 Steve Huston - - * bin/make_release: Added "wince=1" to the MPC -features option for - the WinCE file generation; helps prevents WinCE-hostile projects - from being generated. - - * ace/config-win32-msvc-8.h: VC8 still lacks sigatomic_t for WinCE 5. - - * ace/config-WinCE.h: Removed some compiler-specific settings that - were moved to compiler-specific configs previously but not updated - for CE. Updated things that are now available. - - * tests/CDR_File_Test.cpp: - * tests/CE_fostream.{h cpp}: CE iostream hack not needed for CE when - iostreams are available (VC 8, included). - - * examples/Reactor/TP_Reactor/client.cpp: - * examples/Reactor/TP_Reactor/server.cpp: - * examples/Reactor/TP_Reactor/AcceptHandler.cpp: - * examples/Reactor/TP_Reactor/ReadHandler.cpp: - * netsvcs/servers/main.cpp: - * tests/Array_Map_Test.cpp: Use ACE_TEXT around all pieces of - concatenated string; VC8 WinCE misses the line ending. - Removed ACE_TEXT around ACE_TRACE's argument; ACE_TRACE adds it. - - * netsvcs/lib/Token_Handler.{h cpp} (init, parse_args): Changed argv - from char*[] to ACE_TCHAR*[]. Also fixed some missing ACE_TEXTs. - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Protocol.h: - * protocols/ace/RMCast/Retransmit.cpp: - * protocols/ace/RMCast/Socket.cpp: - * protocols/ace/TMCast/LinkListener.hpp: - * protocols/ace/TMCast/TransactionController.hpp: - * protocols/ace/TMCast/Group.cpp: ACEified naked system calls abort() - and perror(). - - * examples/APG/ThreadSafety/Tokens_Deadlock.cpp: - * examples/APG/Processes/Spawn.cpp: - * examples/APG/Processes/Process_Mutex.cpp: Add missing ACE_TEXT around - string args. - - * examples/NT_Service/NT_Service.mpc: Add avoids += wince - CE doesn't - do services. - - * examples/Web_Crawler/main.cpp: Don't try SIGFPE protection if - on WinCE. - - * examples/Web_Crawler/URL_Status.h: Changed STATUS_NOT_FOUND to - STATUS_ITEM_NOT_FOUND and STATUS_NOT_IMPLEMENTED to - STATUS_OP_NOT_IMPLEMENTED. CE apparantly has macros with these - names that messes this up. - - * examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc: Added wince to the - "avoids" clause for APC, Registry_Changes, Talker and - Window_Messages; WinCE doesn't the necessary features. - - * examples/Reactor/WFMO_Reactor/Window_Messages.cpp: Add missing - #include "ace/Auto_Event.h" - - * tests/MT_SOCK_Test.cpp: Remove the #if ACE_WIN64 from the check - for first send causes reset. This happens with 32-bit as well, - at least on Win XP-64 SP2. It's unrelated to the functionality under - test, and if there's an actual sending side botch that causes the - socket to be closed prematurely, it should show up as another error - in the server side. - -Wed Mar 1 16:12:50 UTC 2006 Steve Huston - - * tests/run_test.lst: Added !BAD_AIO to the Proactor_Test and - Proactor_Test_IPV6. This makes it possible to avoid this test on - platforms that simply aren't capable of performing decent AIO. - -Wed Mar 1 10:22:12 UTC 2006 Johnny Willemsen - - * ace/MT_SOCK_Test.cpp: - Fixed compile problem - -Wed Mar 1 09:48:12 UTC 2006 Johnny Willemsen - - * ace/Env_Value_T.h: - First to all template specializations before the generic one and - use template<> for the specializations, this fixes the compile - errors with GCC 4.1 - -Wed Mar 1 07:36:12 UTC 2006 Johnny Willemsen - - * examples/Reactor/TP_Reactor/AcceptHandler.cpp: - * examples/Reactor/TP_Reactor/server.cpp: - Fixed warnings in vc6 builds - -Wed Mar 1 00:16:26 UTC 2006 Steve Huston - - * ace/Recursive_Thread_Mutex.cpp (get_nesting_level): On Win64 with - AMD64/EM64T, use the CRITICAL_SECTION's RecursionCount member, not - LockCount, as was changed in this entry: - Tue May 6 11:50:18 2003 Chad Elliott - It remains to be seen under what conditions LockCount is used (it - may be for Itanium, for example) but for now, use of RecursionCount - is conditional to AMD64. - - * tests/Reactor_Dispatch_Order_Test.cpp: Print some useful order info - rather than ACE_ASSERT everywhere. Also fixed some ACE_TEXT stuff. - -Tue Feb 28 23:28:57 UTC 2006 J.T. Conklin - - * ace/Makefile.am: - - Add DEFAULT_INCLUDES definition that got lost during regeneration. - Fixes autoconf builds on case-insensitive filesystems. - -Tue Feb 28 19:46:16 UTC 2006 Steve Huston - - * tests/MT_SOCK_Test.cpp: Add a special-case check for Win64. It - appears that Win64 listen/accept side has some changed behavior - but I haven't found any Windows docs to state this; just observed - behavior. It appears that WinXP-64 will appear to accept connections - at the TCP level past the listen backlog but if data arrives before - the actual application-level accept() occurs, the connection is - reset. I can see where this would be sensible for a web server or - something like that, but it causes a problem for this use case where - the test client side connects and starts sending. - Note I also tried modifying the checks in the connect path (in - ACE.cpp, handle_timed_complete()), but the connection really does - appear to be accepted clean; a peek recv will complete without - the reset being noticed, hence my speculation that Microsoft - "enhanced" the behavior at the server side. - Also, fixed a lot of bad indentation and some missing ACE_TEXTs. - -Tue Feb 28 11:12:12 UTC 2006 Johnny Willemsen - - * ace/Connector.cpp: - Initialise several pointers explicitly with 0 - -Tue Feb 28 00:21:53 UTC 2006 Steve Huston - - * ace/config-WinCE.h: Don't set ACE_LACKS_IOSTREAM_TOTALLY for - MSVC 8 and up. - - * ace/CDR_Stream.cpp (grow_and_adjust): - * ace/CDR_Base.cpp (consolidate): Avoid losing data when - comparing ptrdiff_t values. - - * ace/Event_Handler.{h cpp}: Allow - ACE_Event_Handler:register_stdin_handler to build on WinCE. - - * ace/FILE_IO.cpp (send, recv): Truncate the number of iovec tuples - down to range of an int. - - * ace/OS_NS_stropts.{h cpp}: - * ace/OS_NS_sys_socket.{h cpp}: Allow QoS-enabled operations on WinCE - 5.0 and up. - - * ace/OS_NS_unistd.inl: 64-bit adjustments. - - * ace/Time_Value.{cpp inl}: - * tests/Time_Value_Test.cpp: Add ACE_WIN64 to the platforms that use - LONG_MAX/LONG_MIN rather than std::numeric_limits for the - time bounds. On Win64, time_t is 64 bits, yet the timeval members - used internally to ACE_Time_Value are still long. This makes time - values outside the LONG_MAX, LONG_MIN range very broken and many - tests start failing in odd ways. Thanks to J.T. Conklin for this fix. - - * ace/Token_Request_Reply.{cpp inl}: 32/64 bit adjustments. - - * netsvcs/lib/Token_Handler.{h cpp} (ACE_TS_Mutex, ACE_TS_WLock, - ACE_TS_RLock): Changed the name argument from char* to ACE_TCHAR* - to build clean on wchar systems. The classes that use this and that - this uses already were ACE_TCHAR. - -Mon Feb 27 22:36:20 UTC 2006 Steve Huston - - * tests/SSL/Makefile.am: Hand-corrected the addition of - ACE_TLS_CPPFLAGS, ACE_TLS_LDFLAGS, ACE_TLS_LIBS needed to pick up - user's specification of where the SSL libraries are. - -Mon Feb 27 08:17:49 2006 Douglas C. Schmidt - - * ace/Dev_Poll_Reactor.cpp (acquire_quietly): Moved the error message - so that it only is printed if it's a real error, not just a - timeout. Thanks to Oh Yoon Sik for - reporting this. - -Sun Feb 26 19:21:12 UTC 2006 Johnny Willemsen - - * ace/SOCK_IO.{cpp,inl}: - Fixed compile errors, it is ACE_Utils::Truncate, not ACE_Truncate - -Sun Feb 26 13:05:12 UTC 2006 Johnny Willemsen - - * tests/Reactor_Timer_Test.cpp: - Replaced asserts with ace_error to fix warnings in release builds - -Sat Feb 25 22:57:32 UTC 2006 Steve Huston - - * tests/Process_Manual_Event_Test.cpp: On Windows, use a complete - path name to spawn the child process with, else it doesn't work when - the test is in a subdir of ACE_wrappers/tests, as it is with - Win XP64 and WinCE. - - * ace/SOCK_IO.h: Clarify that on recvv() and sendv(), the number of - iovecs handled will be limited to the maximum value of an int. - * ace/SOCK_IO.inl (sendv, recvv): ACE_Truncate the 'n' number of - iovecs passed down to the ACE level. - * ace/SOCK_IO.cpp (send, recv): Reduce the size_t n iovec count to an - int range after dividing by 2 to fit it into the ACE_OS level. - -Sat Feb 25 12:45:12 UTC 2006 Johnny Willemsen - - * bin/tao_other_tests.lst: - Removed Security Policies tests, it has been removed from the repo - -Fri Feb 24 23:43:04 UTC 2006 J.T. Conklin - - * tests/Time_Value_Test.cpp: - - use std::numeric_limits::max() - and std::numeric_limits::min() (or LONG_MAX and LONG_MIN - for those platforms that lack std::numeric_limits) instead of - ACE_INT32_MAX and ACE_INT32_MIN for time bounds. - -Fri Feb 24 21:16:48 UTC 2006 xiong,ming - - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb - - Add a verbatim to disable hidden_visibility for project - dependent on Config_Handlers - -Fri Feb 24 19:08:12 UTC 2006 Johnny Willemsen - - * bin/auto_run_tests.pl: - If we can't chdir to the directory then don't die, but just continue - with the next test - -Fri Feb 24 17:29:47 UTC 2006 Steve Huston - - * ace/Truncate.h: Include all needed code inline here and mark the - function and specialization inline. - * ace/Truncate.{inl cpp}: Removed. All code for ACE_Truncate is inlined - and included in the Truncate.h file. - - * ace/ace.mpc: - * ace/Makefile.am: Removed Truncate.cpp and Truncate.inl. - -Fri Feb 24 16:31:36 UTC 2006 Steve Huston - - * ace/Connector.{h cpp}: Changed the non_blocking_handles_ member - used to remember handles currently in-progress with a non-blocking - connect from ACE_Handle_Set to ACE_Unbounded_Set. This enables - ACE_Connector to be used with handle values outside the range - that select() can deal with (FD_SETSIZE) and is needed to run - large numbers of handles as is now possible with the - ACE_Dev_Poll_Reactor. - Removed the deprecated internal-only - SVC_HANDLER* ACE_NonBlocking_Connect_Handler::close (void) - method. There was already a replacement close() with more - sensible arguments that performed close operations in the correct - order, avoiding accesses to event handlers that were deleted. - Don't ACE_ASSERT when seeing a ACE_Connector::close() error; log - an error and keep going. - - * ace/Container_Instantiations.cpp: Added instantiations for - ACE_Unbounded_Set, used in ACE_Connector. - - * ace/Dev_Poll_Reactor.cpp (find_handler): Increment the found - handler's reference count, as the other reactor implementations do. - - * ace/Dev_Poll_Reactor.h: Fix typos. - -Fri Feb 24 15:38:20 UTC 2006 J.T. Conklin - - * m4/ace.m4: - - Fix typo in last change: - Thu Feb 23 23:00:45 UTC 2006 J.T. Conklin - -Fri Feb 24 15:26:07 UTC 2006 Don Sharp - - * ace/config-lynxos.h - * ace/Log_Msg.cpp: - - Back out code dealing with system's that have a - BROKEN_THREAD_KEYFREE after Olli Savia pointed - out that it breaks Task_Ex_Test. - -Fri Feb 24 15:03:12 UTC 2006 Johnny Willemsen - - * ace/Message_Block.h: - Doxygen improvements - -Fri Feb 24 14:34:12 UTC 2006 Johnny Willemsen - - * ace/Process_Manager.cpp: - Initialize pointer with 0 - - * ace/Process_Manager.h: - Tag the reap() method as deprecated - -Fri Feb 24 14:10:06 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - - Modified the 'vpath' code so that it does not require knowlege of - how MPC internally stores filename lists. It does not change any - functionality. - -Fri Feb 24 13:55:12 UTC 2006 Johnny Willemsen - - * examples/Reactor/TP_Reactor/client.cpp: - * examples/Reactor/TP_Reactor/server.cpp: - Made these compiling with wchar enabled - -Fri Feb 24 11:51:12 UTC 2006 Johnny Willemsen - - * ace/ACE_export.h: - Also for borland changed ACE_INLINE_TEMPLATE_FUNCTION to - ACE_Export - -Fri Feb 24 11:24:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Fixed casing of Bug_2289_Regression - -Fri Feb 24 00:19:22 UTC 2006 Steve Huston - - * ace/ACE_export.h: Changed ACE_INLINE_TEMPLATE_FUNCTION to use - ACE_Export instead of "extern" for Visual C++. Fixes missing - ACE_Truncate symbols outside of the ACE library on Windows. - -Thu Feb 23 23:22:18 UTC 2006 Steve Huston - - * examples/APG/Logging/Callback.h: - * examples/APG/Logging/Callback-2.h: - * examples/APG/Logging/Callback-3.h: Add conditional areas for - platforms lacking IOStream support. - -Thu Feb 23 23:00:45 UTC 2006 J.T. Conklin - - * m4/ace.m4: - - Use "eval" when setting ACE_TCL_LIB to expand any variables in - ${TCL_LIB_SPEC}. Thanks to Thomas Girard . - -Thu Feb 23 19:53:51 UTC 2006 J.T. Conklin - - * tests/DLL_Test_Impl.cpp: - - Changed so nothrow operator delete has same exception - specification in declaration and definition. - -Thu Feb 23 17:01:15 UTC 2006 Simon McQueen - - * bin/tao_orb_tests.lst: - - Scheduled test for bug #2186. This will fail until fixed. - -Thu Feb 23 15:56:24 UTC 2006 J.T. Conklin - - * ace/Svc_Handler.cpp: - - Fix typo (identifier-name) introduced in: - Thu Feb 23 09:02:12 UTC 2006 Johnny Willemsen - -Thu Feb 23 14:44:54 UTC 2006 Don Sharp - - * ace/Log_Msg.cpp: - - Add code to ensure cleanup in ACE_Log_Msg::close (void). - For some systems, e.g. LynxOS, we need to ensure that - any registered thread destructor action for this thread - is disabled. - -Thu Feb 23 14:54:52 UTC 2006 J.T. Conklin - - * m4/ace.m4: - - Tweak how ACE_TCL_CPPFLAGS, ACE_TCL_LIBS, ACE_TK_CPPFLAGS, - and ACE_TK_LIBS are defined. - - * tests/Makefile.am: - - Fix regeneration bug. - -Thu Feb 23 10:05:22 UTC 2006 Simon McQueen - - * bin/tao_orb_tests.lst: - - Scheduled regression tests for bugs #2289 and #2134. - -Thu Feb 23 09:16:12 UTC 2006 Johnny Willemsen - - * examples/Reactor/TP_Reactor/*: - Example program demonstrating the TP_Reactor. This is also a - test program for bugzilla bug 2395. For reproducing start - the perl script but also do other activity on the system, - then it can happen that the same event handler is invoked - from multiple threads. Thanks to Martin Kolleck and Tino - Riethmueller for creating this example program. - -Thu Feb 23 08:35:09 UTC 2006 Don Sharp - - * ace/config-lynxos-pthread.h: - Remove this file. Change handling for LynxOS' use of macros - - * include/makeinclude/platform_lynxos.GNU: - * ace/config-lynxos.h: - Revert changes for building dynamic libraries - - * ace/os_include/os_pthread.h: - Remove inclusion of ace/config-lynxos-pthread.h - - * ace/OS_NS_Thread.inl: - If it's a macro we can't say "::pthread_cancel" - -Thu Feb 23 09:02:12 UTC 2006 Johnny Willemsen - - * tests/DLL_Test_Impl.{h,cpp}: - Added nothrow operator delete - - * ace/TP_Reactor.h: - * ace/Signal.h: - Documentation improvement - - * ace/Time_Value.cpp (operator*): - Use correct type for usec - - * ace/Svc_Handler.cpp: - Use casts in operator delete - -Thu Feb 23 08:08:26 UTC 2006 J.T. Conklin - - * ace/Makefile.am: - * tests/Makefile.am: - - Regenerate for TK Reactor changes. - -Thu Feb 23 06:47:26 UTC 2006 J.T. Conklin - - * bin/MakeProjectCreator/config/ace_tk.mpb: - - Add automake specific section for TCL and TK CPPFLAGS and LIBS. - - * m4/ace.m4: - - Change ace_enable_{fl,qt,tk,xt}_reactor to - ace_user_enable_{fl,qt,tk,xt}_reactor for consistency. - - Implement ACE_PATH_TCL. - - Implement ACE_PATH_TK. - - Implement ACE_ENABLE_TK_REACTOR. - - Thanks to Thomas Girard - for these fixes. - -Wed Feb 22 20:56:17 UTC 2006 Steve Huston - - * ace/ACE_export.h: Added another macro, ACE_INLINE_TEMPLATE_FUNCTION, - to take care of the compiler differences when an inlineable - function template can be out-lined. Some compilers (e.g. Microsoft) - like an extern storage class to prevent multiple instances; others - (practically all others) refuse the extern storage class and - resolve the multiples at link time. - - * ace/Truncate.{h inl}: Change ACE_NAMESPACE_INLINE_FUNCTION use to - ACE_INLINE_TEMPLATE_FUNCTION. - -Wed Feb 22 22:18:56 UTC 2006 Olli Savia - - * tests/run_test.lst: - Run some more tests on LynxOS. - -Wed Feb 22 21:30:35 UTC 2006 Olli Savia - - * ace/Truncate.inl: - Added include "ace/os_include/os_limits.h" to pull INT_MAX. - - * ace/config-lynxos.h: - Define ACE_LACKS_NUMERIC_LIMITS when compiling with GCC 2.x. - Define ACE_HAS_POSIX_SEM on LynxOS 4.0. - -Wed Feb 22 19:16:32 UTC 2006 Steve Huston - - * ace/ACE_export.h: Add __HP_aCC 06.05 and up to the list of compilers - that don't like "extern inline". - -Wed Feb 22 16:50:16 UTC 2006 Steve Huston - - * ace/String_Base.{h cpp}: Add operator= to set string from a - CHAR*. Optimizes performance in this case by removing the need - for a temporary object. Thanks to Kelly Hickel for this improvement. - - * tests/SString_Test.cpp: Added test for new operator=. - -Wed Feb 22 17:26:01 UTC 2006 Olli Savia - - * ace/TTY_IO.h: - Changed type of dtrdisable from int to bool. - - * examples/IPC_SAP/DEV_SAP/reader/reader.cpp: - * examples/IPC_SAP/DEV_SAP/writer/writer.cpp: - Changed to reflect recent changes in TTY_IO.h. - -Wed Feb 22 16:31:28 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/config/vcl.mpb: - - Added the 'bmake' type in order to support VCL. - - * bin/mpc.pl: - * bin/mwc.pl: - - Simplified these scripts by using FindBin. Also, made a - modification to preserve @ARGV so that when it is used by the - workspace creators, it contains the original arguments provided by - the user. - -Wed Feb 22 16:26:43 GMT 2006 Rich Seibel - - * include/makeinclude/platform_aix_ibm.GNU: - * THANKS - Added templates=manual to set manually instantiated - templates (without setting ACE_HAS_EXPLICIT_TEMPLATE_ - INSTANTIATION) and determining that -qeh=v6 is needed - to get the more general exception behavior. - - Thanks to Marc Brown and Andrew Keane for suggesting - these changes. - -Wed Feb 22 15:48:15 UTC 2006 Steve Huston - - * ace/Timer_Heap_T.cpp: Fixed mismatch signed/unsigned compare warning. - -Wed Feb 22 08:33:03 UTC 2006 Don Sharp - - * include/makeinclude/platform_lynxos.GNU - * ace/config-lynxos.h - change settings for building dynamic libraries - - * ace/config-lynxos-pthread.h - new file for handling LynxOS' use of macros - - * ace/Log_Msg.cpp - * ace/os_include/os_pthread.h - Handle broken thread key free on LynxOS - -Tue Feb 21 23:49:20 UTC 2006 Steve Huston - - * ace/Truncate.{h inl cpp}: New function template, ACE_Utils::Truncate, - for truncating types to int. Compares the value to the maximum int - value and, if passed value is greater, returns the max int; else - returns the original value cast to int. Useful for the many places - that return int but maintain larger types (such as size_t) - internally. There's a specialization for size_t since it's used so - much. - - * ace/ace.mpc: Add Truncate.cpp - - * ace/Makefile.am: Added Truncate.{h inl cpp} - - * ace/Message_Queue_T.cpp: - * ace/Message_Queue.cpp: Use ACE_Utils::Truncate() to return size/count - related values that may overflow the range of an int. Prevents odd - conditions that may appear as failures when dealing with very large - numbers of items in a queue. And, resolves compile warnings. - - * ace/Timer_Heap_T.cpp: In constructor, add checks to see if max_size_ - is outside the range of a long and reduce it if so. This ensures we - can cast size_t values to a long as a timer ID (pop_freelist). - NOTE!!! In grow_heap(), the size is doubled and there's no check for - failures in range or in allocation. This a problem that should be - looked at. - - * ace/Service_Manager.cpp (reconfigure_services): - * ace/WIN32_Asynch_IO.cpp: - * ace/UPIPE_Connector.cpp (connect): Fix compiler warnings. - -Tue Feb 21 23:08:38 UTC 2006 Steve Huston - - * ace/OS_NS_time.cpp: Add missing close brace for blank namespace - in ACE_HAS_WINCE case. - -Tue Feb 21 20:20:12 UTC 2006 Johnny Willemsen - - * protocols/ace/TMCast/MTQueue.hpp: - Initialise pointer to 0 to fix gcc4.1 warning - -Tue Feb 21 19:26:12 UTC 2006 Johnny Willemsen - - * bin/tao_other_tests.lst: - Fixed typo in this file - - * bin/generate_compile_stats.sh: - Improved this script, print date/time after the Detail in html, also - when we can't find the footprint size of an object file, just list it - with ? as size, that way we can at least see all objects and don't - miss any. - - * include/makeinclude/wrapper_macros.GNU: - Default use_dep_libs to 1 - - * bin/MakeProjectCreator/templates/gnu.mpd: - Only when use_dep_libs is set to 1 (which is the default) set DEPLIBS. - In the footprint builds we set use_dep_libs to 0 because it causes - problems when interpreting the map files generated by the linker. - -Tue Feb 21 19:14:12 UTC 2006 Johnny Willemsen - - * tests/Process_Manual_Event_Test.cpp: - Fixed this test - -Fri Feb 17 08:15:57 2006 Douglas C. Schmidt - - * ace/Asynch_Acceptor.h: Used ACE_DEFAULT_ASYNCH_BACKLOG instead - of ACE_DEFAULT_BACKLOG since the latter is set to a huge value - on Windows. Thanks to Alex Libman and Daniel <__daniel___ at icg - do tu-graz dot ac dot at> for their help. - - * ace/Default_Constants.h: Added a new macro called - ACE_DEFAULT_ASYNCH_BACKLOG that defaults to 5. - -Mon Feb 20 15:03:01 2006 Wallace Zhang - - * ACE version 5.4.10 released. - -Sun Feb 19 13:38:32 UTC 2006 Johnny Willemsen - - * bin/make_release: - Fixed bug in excluding of mwc files - -Fri Feb 17 19:16:32 UTC 2006 Wallace Zhang - - * NEWS: - - Updated this file with more inputs. - -Thu Feb 16 13:38:39 2006 Wallace Zhang - - * bin/generate_rel_manpages: - - Updated the script with latest info at naboo.dre. - -Thu Feb 16 13:38:00 UTC Simon Massey - - * bin/tao_orb_tests.lst: - Added regression test for Bugzilla 2403 - -Thu Feb 16 09:23:12 2006 Johnny Willemsen - - * bin/make_release: - Changed the exclude of mwc files, use TAO_* and CIAO_* - -Thu Feb 16 08:33:12 2006 Johnny Willemsen - - * bin/performance_stats.sh: - Added AMI to the combined performance figure - -Wed Feb 15 20:06:42 2006 Douglas C. Schmidt - - * ace/Timer_Heap_T.cpp: Fixed cancel() so that it doesn't miss any - nodes due to reheapifying during a remove. Thanks to Oh Yoon - Sik for this fix. - -Wed Feb 15 20:04:13 UTC 2006 J.T. Conklin - - * configure.ac: - - #include in ACE_HAS_POSIX_TIME feature test (if - supported by platform). Thanks to Vladimir Panov for reporting this bug. - -Wed Feb 15 19:58:36 UTC 2006 Chad Elliott - - * bin/fuzz.pl: - - Modified the check_for_long_file_names function to correctly deal - with the length of the MPC project names instead of the length of - the .mpc file itself. The length of the .mpc file name does not - necessarily indicate the length of the generated project name. - -Wed Feb 15 18:16:02 UTC 2006 J.T. Conklin - - * ace/Time_Value.cpp: - - Adding/subtracting 0.999999 from max and min is required to really - represent a saturated time value. - -Wed Feb 15 12:32:37 UTC 2006 Chad Elliott - - * ace/Svc_Conf_Lexer.cpp: - - Changed two instances of memcpy() to memmove(). The areas being - copied could possibly overlap. - -Wed Feb 16 11:40:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new AdvSlotExt PI test - -Wed Feb 16 07:54:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Disabled visibility by default, seems to cause some issues in the - builds at this moment - -Tue Feb 14 22:56:39 UTC 2006 J.T. Conklin - - * include/makeinclude/rules.local.GNU: - - Added *.core to list of files to clean. - -Tue Feb 14 22:04:46 UTC 2006 William R. Otte - - * bin/MakeProjectCreator/config/security.mpb - * bin/MakeProjectCreator/config/ssliop.mpb - - Fixes for linking errors/warnings in OS X. - -Tue Feb 14 21:43:01 UTC 2006 J.T. Conklin - - * configure.ac: - - #include before in - ACE_LACKS_MADVISE_PROTOTYPE feature test. Thanks to Vladimir - Panov for reporting and providing a - patch for this bug. - -Tue Feb 14 18:36:16 UTC 2006 J.T. Conklin - - * ace/Time_Value.cpp: - - Changed operator *= to use std::numeric_limits::max() - and std::numeric_limits::min() (or LONG_MAX and LONG_MIN - for those platforms that lack std::numeric_limits) instead of - ACE_INT32_MAX and ACE_INT32_MIN when saturating the results. - - This uses the correct limits for whatever underlying type time_t - is when std::numeric_limits is available, and uses the limits - for the traditional type, long, when it is not. - - Removed call to normalize(), as set() already normalizes results. - -Tue Feb 14 14:47:00 UTC 2006 Chad Elliott - - * bin/fuzz.pl: - - When checking for maximum length of mpc files, ensure that only - .mpc files are checked. - -Tue Feb 14 08:34:12 UTC 2006 Johnny Willemsen - - * ace/config-lynxos.h: - Added ACE_HAS_CHARPTR_SHMDT - -Tue Feb 14 08:24:12 UTC 2006 Johnny Willemsen - - * ace/Svc_Handler.{h cpp}: Add ACE_LACKS_PLACEMENT_OPERATOR_DELETE - around the operator delete with nothrow. This fixes the compile - errors with Borland C++ - -Mon Feb 13 17:50:49 UTC 2006 Steve Huston - - * ace/Svc_Handler.{h cpp}: Add placement operator delete to match - the nothrow variant placement operator new. This ensures proper - cleanup if the constructor throws an exception. - - * ace/config-hpux-11.00.h: Only set ACE_LACKS_PLACEMENT_OPERATOR_DELETE - for aC++ versions earlier than A.03.55.02. Fixes Bugzilla #2394. - -Mon Feb 13 18:23:27 UTC 2006 J.T. Conklin - - * configure.ac: - - Fix typos in ACE_HAS_CHARPTR_SHMAT and ACE_HAS_CHARPTR_SHMDT - feature tests. - -Mon Feb 13 09:33:20 UTC 2006 Ossama Othman - - * ace/config-sunos5.5.h (ACE_IMPORT_SINGLETON_DECLARATION): - (ACE_IMPORT_SINGLETON_DECLARE): - - Comment out these macro definitions. The "extern template" - extension available in MSVC++ and g++ doesn't work for Sun - Studio C++ compilers. An alternative may need to be found. - -Mon Feb 13 14:51:10 UTC 2006 Chad Elliott - - * ace/Svc_Conf_Lexer.cpp: - - Catch the possible situation where we were unable to allocate a - converter and mark it as a conversion failure. - - * include/makeinclude/platform_vxworks5.5.x.GNU: - - If we are compiling for a PPC, we need to add the -mlongcall - option for many TAO tests (and some user applications). - -Mon Feb 13 11:49:12 UTC 2006 Johnny Willemsen - - * netsvcs/servers/svc.conf: - * netsvcs/servers/svc.conf.xml: - Use port 20006 for the Name_Server, is the same port as we - default to in ACE. Fixes a problem that the Name_Server and - Logging Server both use the same port as default - -Mon Feb 13 11:40:12 UTC 2006 Johnny Willemsen - - * ace/Service_Manager.h: - * ace/Service_Repository.h: - Doxygen improvements - -Mon Feb 13 10:08:12 UTC 2006 Johnny Willemsen - - * ace/Obstack_T.h: - Doxygen improvement - -Mon Feb 13 10:01:12 UTC 2006 Johnny Willemsen - - * tests/Proactor_Test.cpp: - Don't test certain functionality when ACE_HAS_WINNT4 is 0 - - * tests/Future_Test.cpp: - * tests/Future_Set_Test.cpp: - Moved real code out of ACE_ASSERT, fixes crashing of these - tests in release builds - -Mon Feb 13 08:57:12 UTC 2006 Johnny Willemsen - - * ace/config-borland-common.h: - Readded ACE_SIZEOF_LONG_DOUBLE 10 again - -Mon Feb 13 08:41:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_shm.inl (shmat): - Added const_cast to get rid of compile errors with LynxOS - -Mon Feb 13 08:28:12 UTC 2006 Johnny Willemsen - - * ace/config-macosx-panther.h: - Removed ACE_LACKS_USECONDS_T - -Mon Feb 13 08:22:12 UTC 2006 Johnny Willemsen - - * ace/config-aix-4.x.h: - * ace/config-hpux-11.00.h: - Added ACE_LACKS_SYS_SYSCTL_H - -Mon Feb 13 08:17:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.cpp (num_processors_online): - Made the HPUX specific implementation the last option to use - -Mon Feb 13 08:12:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Added ACE_LACKS_NUMERIC_LIMITS - -Mon Feb 13 08:09:12 UTC 2006 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_LACKS_SYS_SYSCTL_H - -Mon Feb 13 05:12:51 UTC 2006 J.T. Conklin - - * ace/config-netbsd.h: - * configure.ac: - - Revert: - Sun Feb 12 19:07:39 UTC 2006 J.T. Conklin - - Caused build failures because NetBSD doesn't support - pthread_attr_{get,set}schedpolicy(). It's not clear what - ACE_HAS_PTHREAD_SCHEDPARAM actually means. - -Sun Feb 12 19:48:19 UTC 2006 J.T. Conklin - - * m4/config_h.m4: - - Remove AH_TEMPLATE for ACE_HAS_SIN_LEN. - -Sun Feb 12 19:43:42 UTC 2006 J.T. Conklin - - * m4/config_h.m4: - * configure.ac: - - Removed AH_TEMPLATEs for ACE_HAS_PTHREADS_DRAFT4, - ACE_HAS_PTHREADS_DRAFT6, ACE_HAS_PTHREADS_DRAFT7, and - ACE_HAS_PTHREADS_STD from m4/config_h.m4; and add the - descriptions as the third arguments in the AC_DEFINEs - in configure.ac. - -Sun Feb 12 19:07:39 UTC 2006 J.T. Conklin - - * ace/config-netbsd.h: - - Define ACE_HAS_PTHREAD_SCHEDPARAM. - - * configure.ac: - - Define ACE_HAS_PTHREAD_SCHEDPARAM if platform supports - pthread_getschedparam() and pthread_setschedparam(). - -Sun Feb 12 19:01:47 UTC 2006 J.T. Conklin - - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - * ace/config-mit-pthread.h: - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - - Remove ACE_HAS_PTHREAD_SIGMASK definition. This feature test - macro was deprecated and replaced with ACE_LACKS_PTHREAD_SIGMASK - some ~5 years ago. - -Sun Feb 12 13:31:12 UTC 2006 Johnny Willemsen - - * ace/config-linux-common.h: - Check for icc as the first compiler, when icc is used in gcc - compatibility mode we else incorrectly use gcc. - -Sun Feb 12 13:20:12 UTC 2006 Johnny Willemsen - - * ace/config-sunos5.5.h: - Added ACE_LACKS_SYS_SYSCTL_H - -Sun Feb 12 13:18:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_shm.inl (shmdt): - Added a const cast when ACE_HAS_CHARPTR_SHMDT is defined - -Sun Feb 12 13:08:12 UTC 2006 Johnny Willemsen - - * ace/config-sunos5.5.h: - Fixed typo in this file - -Sun Feb 12 13:01:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Added ACE_LACKS_SYS_SYSCTL_H - -Sun Feb 12 08:01:12 UTC 2006 Johnny Willemsen - - * ace/config-cygwin32.h: - Removed ACE_LACKS_USECONDS_T, Cygwin does deliver useconds_t - -Sat Feb 11 19:54:12 UTC 2006 Johnny Willemsen - - * ace/config-lynxos.h: - Added ACE_LACKS_SUSECONDS_T and ACE_LACKS_USECONDS_T - - * ace/config-hpux-11.00.h: - Added ACE_LACKS_SUSECONDS_T - -Sat Feb 11 19:48:12 UTC 2006 Johnny Willemsen - - * ace/Time_Value.cpp: - Also undef min when defined and do it before including limits, - should fix our MingW build - -Sat Feb 11 19:09:12 UTC 2006 Johnny Willemsen - - * ace/config-cygwin32.h - * ace/config-vxworks5.x.h: - * ace/config-macosx-panther.h: - Added ACE_LACKS_SUSECONDS_T and ACE_LACKS_USECONDS_T - -Sat Feb 11 10:37:04 2006 Douglas C. Schmidt - - * ace/ace_wchar.inl (convert): Fixed a bug where the character - conversion was getting improperly sign converted. Thanks to - Olivier Brunet for this fix. - -Fri Feb 10 22:49:07 UTC 2006 Ossama Othman - * ace/config-sunos5.5.h: - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Added Sun Studio 8 or better symbol visibility/scope support. - Provides improved shared libraries by reducing footprint - (e.g. 17% reduction for ACE), reducing symbol clashes with - third party libraries and increasing run-time performance. - [Bug 2378] - -Fri Feb 10 21:26:42 UTC 2006 J.T. Conklin - - * configure.ac: - - Added ACE_HAS_CHARPTR_SHMAT and ACE_HAS_CHARPTR_SHMDT - feature tests. Fixes bug 2388. - -Fri Feb 10 19:24:10 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/config/trading_serv.mpb: - - Added iortable as a base project as the TAO_CosTrading_Serv - library now utilizes the TAO_IORTable library. - -Fri Feb 10 16:00:00 UTC 2006 Simon Massey - - * bin/tao_orb_tests.lst: - Removed "Request_Interceptor_Flow" Portable Interceptors test - when configuration HAS_EXTENDED_FT_INTERCEPTORS as it will - fail. - -Fri Feb 10 15:32:12 UTC 2006 Johnny Willemsen - - * tests/Dirent_Test.cpp: - Made this test compiling with Borland C++ with wchar enabled - -Fri Feb 10 14:25:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Disable visibility by default, seems the Intel C++ compiler - has some issues which we reported to Intel - -Fri Feb 10 14:23:06 UTC 2006 Chad Elliott - - * bin/PerlACE/Run_Test.pm: - - Fixed the add_path() method to work on both Windows and UNIX. - - * bin/depgen.pl: - - If the -i option is passed, create a dependency file even if there - are no source files. This will allow NMake files to proceed - without warning. - - * bin/generate_export_file.pl: - - Changed to always emit the static library code unless the -n is - used. There is no reason not to support static libraries by - default. - -Fri Feb 10 14:20:54 UTC 2006 xiong,ming - - * bin/ciao_tests.lst - - Reverse a previous change to ciao_tests due to concerns - for autobuild logging.A smaller test will be added instead. - -Fri Feb 10 13:22:34 UTC 2006 xiong,ming - - * bin/ciao_tests.lst - - Added Bug_2130_Regression test - -Fri Feb 10 13:07:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.inl (write): - Use another const cast when ACE_HAS_CHARPTR_SOCKOPT is defined - -Fri Feb 10 12:51:12 UTC 2006 Johnny Willemsen - - * bin/make_release: - Use *.mwc to exclude any mwc files instead of listing them - explicitly, prevents the problems which we had with x.4.9 when - we had some new mwc files which caused an overwrite of - GNUmakefiles. - -Fri Feb 10 12:42:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Removed OCFLAGS += -axK, this flag is really dependent on the CPU - that is targeted, it is just not a good idea to do this in general - when optimization is enabled - -Fri Feb 10 12:00:12 UTC 2006 Johnny Willemsen - - * ace/Message_Queue.cpp: - * ace/WIN32_Proactor.cpp: - Applied workarounds for broken vc6 header files - -Fri Feb 10 11:03:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Set exceptions default to 1 - - * include/makeinclude/platform_linux_icc.GNU: - Set optimize to 1 again now Intel has fixed a bug in their IA64 - compiler, also added support for visibility - -Fri Feb 10 10:53:12 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Updated link to tenermerx code - - * ace/Asynch_IO.h: - Fixed problem when ACE_HAS_WINNT4 has been set to 0. Thanks to - Karl Schmitt for reporting this. - - * ace/ACE.cpp: - * ace/Select_Reactor_T.cpp: - Fixed incorrect comment after endif - - * ace/Auto_Event.h: - * ace/Based_Pointer_Repository.h: - * ace/Based_Pointer_T.h: - * ace/Default_Constants.h: - * ace/Dev_Poll_Reactor.h: - * ace/Event_Handler.h: - * ace/File_Lock.h: - * ace/Framework_Component.h: - * ace/Free_List.h: - * ace/Future.h: - * ace/Future_Set.h: - * ace/Guard_T.h: - * ace/Handle_Gobbler.h: - * ace/Handle_Set.h: - * ace/Hash_Map_Manager_T.h: - * ace/Hash_Map_With_Allocator_T.h: - * ace/Local_Tokens.h: - * ace/Map_Manager.h: - * ace/MEM_IO.h: - * ace/MEM_SAP.h: - * ace/MEM_Stream.h: - * ace/Message_Block.h: - * ace/Message_Queue.h: - * ace/Msg_WFMO_Reactor.h: - * ace/Node.h: - * ace/Null_Mutex.h: - * ace/Null_Semaphore.h: - * ace/Object_Manager.h: - * ace/Process_Manager.h: - * ace/Reactor.h: - * ace/Reactor_Notification_Strategy.h: - * ace/Proactor.h: - * ace/Recursive_Thread_Mutex.h: - * ace/Service_Object.h: - * ace/WFMO_Reactor.h: - * ace/Reactor_Impl.h: - * ace/Proactor_Impl.h: - * ace/Signal.h: - * ace/Svc_Handler.h: - * ace/SOCK_SEQPACK_Association.h: - * ace/Test_and_Set.h: - * ace/Thread_Mutex.h: - * ace/Timer_Heap_T.h: - * ace/TP_Reactor.h: - * ace/Timer_Queue_Adapters.h: - * ace/Timer_Hash_T.h: - * ace/Timer_Queue_T.h: - * ace/Unbounded_Set.h: - * ace/Select_Reactor_T.h: - * ace/Service_Config.h: - Doxygen improvements - - * ace/Auto_IncDec_T.h: - Removed incorrect comment - - * ace/config-aix-4.x.h: - * ace/config-borland-common.h: - * ace/config-cray.h: - * ace/config-cxx-common.h: - * ace/config-doxygen.h: - * ace/config-g++-common.h: - * ace/config-hpux-10.x-hpc++.h: - * ace/config-hpux-11.00.h: - * ace/config-icc-common.h: - * ace/config-integritySCA.h: - * ace/config-irix6.x-sgic++.h: - * ace/config-kcc-common.h: - * ace/config-lynxos.h: - * ace/config-netbsd.h: - * ace/config-openvms.h: - * ace/config-osf1-4.0.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-unixware-7.1.0.udk.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-win32-dmc.h: - * ace/config-win32-ghs.h: - * ace/config-win32-msvc-6.h: - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - * ace/config-win32-visualage.h: - * ace/README: - Removed ACE_HAS_USING_KEYWORD, all our compilers have it so need - for a seperate define anymore - - * ace/config-borland-common.h: - Removed ACE_LACKS_INLINE_ASSEMBLY, ACE_NEW_THROWS_EXCEPTIONS, and - ACE_SIZEOF_LONG_DOUBLE and added ACE_HAS_NEW_NOTHROW - - * ace/config-doxygen.h: - Fixed define of __ACE_INLINE__ - - * ace/config-icc-common.h: - Added custom export macros, the ICC compiler does support the - visibility attribute - - * ace/config-lynxos.h: - Added ACE_HAS_CHARPTR_SHMAT - - * ace/config-macros.h: - Always expand ACE_USING to using - - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - Added ACE_LACKS_ENV - - * ace/config-sunos5.5.h: - Added ACE_HAS_CHARPTR_SHMDT - - * ace/config-win32-borland.h: - Removed ACE_LACKS_STDINT_H, ACE_LACKS_DIRENT_H, undef the - following defines, borland has them, ACE_LACKS_STRUCT_DIR, - ACE_LACKS_CLOSEDIR, ACE_LACKS_OPENDIR, ACE_LACKS_READDIR, - ACE_LACKS_REWINDDIR, added ACE_HAS_WOPENDIR, ACE_HAS_WCLOSEDIR, - ACE_HAS_WREADDIR, ACE_HAS_WREWINDDIR - - * ace/config-WinCE.h: - Added ACE_LACKS_PIPE - - * ace/Dirent.{h,inl}: - * ace/Dirent_Selector.{h,cpp,inl}: - * ace/os_include/os_dirent.h: - * ace/OS_NS_dirent.{h,cpp,inl}: - Borland delivers wopendir, wclosedir for wchar_t directory names - but also wdirent instead of dirent. Added a ACE_DIRENT macro that - normally expands to dirent but with Borland it can expand to - wdirent when build with ACE_USES_WCHAR - - * ace/DLL_Manager.h: - No need to export ACE_DLL_Handle, internal class - - * ace/Framework_Component.h: - Declare private copy constructor/assignment operator, - should allow making a copy - - * ace/INET_Addr.cpp: - Changed some tests for VxWorks, only a specific implementation - should be used when ACE_LACKS_GETHOSTBYNAME and - ACE_LACKS_GETHOSTBYADDR are set, with newer VxWorks version we - don't have these defines set, so we don't need to use a different - code path for VxWorks - - * ace/Local_Name_Space.cpp: - * ace/Name_Space.cpp: - * ace/Parse_Node.cpp: - Initialize all members, fixes GCC warnings - - * ace/MEM_SAP.h: - Don't export ACE_MEM_SAP_Node, it is an internal class - - * ace/Message_Queue.cpp: - * ace/WIN32_Proactor.cpp: - Removed win32 bit specific code, the 64bit case is the one also to - use for 32bit. - - * ace/Time_Value.h: - * ace/os_include/os_time.h: - Moved timespec to os_time, it belongs there. Fixes bugzilla - bug [2380]. - - * ace/Node.h: - Declare private assignment operator - - * ace/OS_NS_stdlib.inl (getenv): - Removed psos specific part, solved by adding a define to the - psos confi files - - * ace/OS_NS_sys_utsname.cpp: - Merged the two uname implementations to one method to make - the maintenance easier - - * ace/OS_NS_Thread.inl: - Replaced VXWORKS with ACE_VXWORKS - - * ace/Select_Reactor_Base.h: - Added forward declaration of ACE_Sig_Handler, this class is - used in the interfaces as pointer - - * ace/OS_NS_sys_shm.{h,inl}: - Changed the void* argument of shmdt and shmat to a const void*, - introduced ACE_HAS_CHARPTR_SHMAT and ACE_HAS_CHARPTR_SHMDT for - the platforms that have a char* version of these methods. - - * ace/TP_Reactor.{h,cpp}: - Don't export ACE_EH_Dispatch_Info and ACE_TP_Token_Guard, it are - internal classes. Renamed grab_token to acquire_read_token as the - todo mentioned, addded private copy constructor and assignment - operator for ACE_TP_Token_Guard, no copying should be allowed - - * ace/Unbounded_Queue.cpp: - * ace/Unbounded_Set.cpp: - Use prefix increment/decrement - - * ace/OS_NS_unistd.inl: - Merged the two pipe methods to one and replaced some c-style casts - with C++ casts. - - * ace/OS_NS_unistd.cpp: - Refactored num_processors, use sysconf when _SC_NPROCESSORS_CONF is - defined, when ACE_HAS_SYSCTL has been set we use sysctl - Refactored num_processors_online, use sysconf when - _SC_NPROCESSORS_ONLN is defined, when ACE_HAS_SYSCTL has been - set we use sysctl. - - * ace/Time_Value.{h,cpp,inl}: - Use suseconds_t as type for usec - - * ace/Select_Reactor_T.inl: - Added include of Signal.h to fix compile error in the solaris - autoconf build - - * bin/tao_other_tests.lst: - Also run EC_MT_MCast in a static configuration - - * bin/tao_orb_tests.lst: - Added AMH_Oneway and Bug_2319_Regression - - * bin/perltest2cpp.pl: - Removed this file - -Thu Feb 9 20:07:59 UTC 2006 J.T. Conklin - - * ace/Time_Value.cpp: - - Some platforms pollute the namespace with a max() macro, which - makes it impossible to invoke std::numeric_limits::max(). - #undef max after all the headers have been #included. - -Thu Feb 9 18:51:16 UTC 2006 J.T. Conklin - - * configure.ac: - - #include in the ACE_HAS_2_PARAM_SCHED_GETAFFINITY - and ACE_HAS_2_PARAM_SCHED_SETAFFININTY feature tests. Thanks to - Doug McCorkle for reporting this bug. - -Thu Feb 9 20:05:00 UTC 2006 Iliyan Jeliazkov - - * bin/tao_other_tests.lst: - - Added the new secure policies test. - -Thu Feb 9 17:40:17 UTC 2006 J.T. Conklin - - * ace/OS_NS_string.cpp (ACE_OS::strerror): - - Don't use strlen() to see if length is zero, check if the - first char is null (O(1) vs. O(N)). - -Thu Feb 9 16:59:40 UTC 2006 J.T. Conklin - - * test/MEM_Stream_Test.cpp: - - Align test_reactive() and test_concurrent() so the same - error/warnings are emitted. - - * Flag_Manip.cpp: - * IPC_SAP.cpp - * MEM_IO.cpp: - * SOCK_Dgram.cpp: - * SSL/SSL_SOCK_Stream.cpp: - - Change type of FIONBIO and FIONREAD ioctl from u_long, - ACE_INT32, etc. to int for portability. - - * ace/Time_Value.cpp: - - Use std::numeric_limits::max () instead of LONG_MAX - as ctor's first argument when initializing ACE_Time_Value:: - max_time if !ACE_LACKS_NUMERIC_LIMITS, as time_t may not be - a long. Fixes Timer_Queue_Reference_Counting_Test on NetBSD/amd64. - - * configure.ac: - - Added ACE_LACKS_NUMERIC_LIMITS feature test. - - * ace/README: - - Document new ACE_LACKS_NUMERIC_LIMITS feature test macro, which - should be defined to 1 if platform lacks std::numeric_limits<>. - - * ace/Cached_Connect_Strategy_T.cpp (cached_connect): - - Handle ETIMEDOUT as we do for EWOULDBLOCK. Fixes - Cached_Conn_Test on NetBSD systems. - - * ace/config-freebsd.h: - * ace/config-netbsd.h: - * ace/config-openbsd.h: - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - - Define ACE_HAS_SOCKADDR_IN6_SIN6_LEN. - This may be needed for other canned configs. - - * ace/config-aix-4.x.h: - * ace/config-cray.h: - * ace/config-freebsd.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-qnx-neutrino.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - * ace/config-win32-interix.h: - - Change ACE_HAS_SIN_LEN to ACE_HAS_SOCKADDR_IN_SIN_LEN. - - * ace/README: - - Document new feature test macros ACE_HAS_SOCKADDR_IN_SIN_LEN and - ACE_HAS_SOCKADDR_IN6_SIN6. - - Removed description of ACE_HAS_SIN_LEN. This macro was defined, - but not used anywhere in ACE, TAO, or CIAO. It's being removed - rather than used because the new macros follow our feature test - naming conventions. - - * ace/INET_Addr.cpp: - * ace/INET_Addr.inl: - - Set the sockaddr_in.sin_len and sockaddr_in6.sin6_len members if - new ACE_HAS_SOCKADDR_IN_SIN_LEN or ACE_HAS_SOCKADDR_IN6_SIN6_LEN - feature test macros are defined. - -Tue Feb 7 23:28:29 UTC 2006 Steve Huston - - * ace/SPIPE_Acceptor.cpp (close): On Windows, wait for completion - (cancellation) of an outstanding ConnectNamedPipe operation. If - left outstanding and the ACE_SPIPE_Acceptor object is deleted, the - OS will write into deleted memory. Thanks to Nathan Bamford - for reporting this. - - * THANKS: Added Nathan Bamford to the Hall of Fame. - -Wed Feb 08 15:46:51 2006 Wallace Zhang - - * ACE version 5.4.9 released. - -Mon Feb 6 18:39:20 UTC 2006 Wallace Zhang - - * NEWS: - - Updated with info from Doug Schmidt. - -Mon Feb 6 15:49:57 UTC 2006 Wallace Zhang - - * NEWS: - - Updated with info from Steve Huston. - -Mon Feb 6 14:44:12 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Improved documentation for the BCBVER environment setting which - is required for building with the Borland C++ compilers - -Fri Feb 3 23:48:32 UTC 2006 Steve Huston - - * ace/Barrier.h: Noted shutdown() was added for 5.4.9. - - * ace/Message_Queue_T.{h cpp}: Changed enqueue_head(), enqueue_tail() - to recognize that the ACE_Message_Block passed may have other - block(s) connected to it via the next() pointers. This allows a - caller to pre-connect a series of ACE_Message_Blocks and coalesce - the enqueueing of the series into a single method call. - Thanks to Guy Peleg for suggesting - this enhancement. - Also revamped the Doxygenization of ACE_Message_Queue's - documentation. - - * tests/Message_Queue_Test.cpp: Added chained_block_test() to test - the new functionality above. - -Fri Feb 3 14:47:53 UTC 2006 Ossama Othman - - * ace/Cleanup_Strategies_T.h: - - Added missing versioned namespace declarations. - - * ace/Guard_T.h: - - Fixed versioned namespace related errors in single-threaded - builds with that feature enabled. - - * ace/WFMO_Reactor.h: - - Forward declare the ACE_WFMO_Reactor_Test class outside of the - versioned namespace. This test class is actually declared in - the global namespace of a standalone test. - -Fri Feb 3 07:53:16 2006 Douglas C. Schmidt - - * ace/OS_NS_sys_socket.inl (setsockopt): Make sure to - map WSAEOPNOTSUPP to the ENOTSUP errno value so the code is - portable across versions of sockets! Thanks to David Hauck - for this fix. - - * ace/OS_NS_sys_socket.inl (setsockopt): Only check for - WSAEOPNOTSUPP on platforms that actually support this macro! - Thanks to Wallace Zhang for reporting this. - -Thu Feb 2 23:59:37 UTC 2006 William Otte - - * html/index.html - - Removed the XML_helpers link, as that documentation is no - longer generated. - -Thu Feb 2 23:41:39 UTC 2006 William Otte - - * bin/MakeProjectCreator/config/acedefaults.mpb - - Added zlib to the feature inherits to resolve linking errors - on Windows. - -Thu Feb 2 13:35:18 Pacific Standard Time 2006 Ossama Othman - - * ace/OS_NS_Thread.h: - - Fixed versioned namespace related errors in single-threaded - builds with that feature enabled. - -Thu Feb 2 17:49:42 UTC 2006 J.T. Conklin - - * ace/OS_NS_string.h: - - Add ACE_Export decoration to ACE_OS::fast_memcpy() declaration. - -Thu Feb 2 15:47:35 UTC 2006 Chad Elliott - - * examples/Map_Manager/Map_Manager.mpc: - - Added an mpc file to create the right kind of project. The - symptoms of bad or missing mpc files are stray library symbolic - links. - -Thu Feb 2 14:48:03 UTC 2006 J.T. Conklin - - * Makefile.am: - - Build examples and tests subdirectories after building - protocols. I think all of the HTBP, RMCast and TMCast examples - and tests should be moved underneath protocols eventually , but - it's too close to the release to do it safely. - -Thu Feb 2 11:19:12 UTC 2006 Johnny Willemsen - - * tests/Naming_Test.cpp: - Moved some real test code out of ACE_ASSERT calls - -Thu Feb 2 06:15:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Fixed another error in this file - -Wed Feb 1 20:33:12 UTC 2006 Johnny Willemsen - - * ace/Event_Handler.h: - Doxygen improvement - -Wed Feb 1 20:16:12 UTC 2006 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added CosConcurrency_IDL - -Wed Feb 1 18:00:06 UTC 2006 William Otte - - * ace/ace_for_tao.mpc - - Added Dirent_Selector.cpp to fix the Dirent test. - -Wed Feb 1 08:17:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_shm.inl: - Reverted another part of my changes - -Wed Feb 1 07:52:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Fixed !ACE_FOR_TAO additions - -Tue Jan 31 22:08:57 UTC 2006 Steve Huston - - * ace/Barrier.{h cpp}: Added a new shutdown () method which aborts all - waiting on the barrier. Thanks to John Lilley for contributing this method. - Also note that the wait() method can now return -1 with errno - ESHUTDOWN if the barrier is shut down while waiting for it. - - * tests/Barrier_Test.cpp: Added a test for barrier shutdown. - - * THANKS: Added John Lilley to the Hall of Fame. - -Tue Jan 31 21:34:34 UTC 2006 William Otte - - * bin/ciao_tests.lst - - Added the hello test *without* naming service so we get results - even on platforms with a broken/nonextant Naming Service. - -Tue Jan 31 16:51:27 UTC 2006 William Otte - - * bin/ciao_tests.lst - * bin/tao_other_tests.lst - * tests/run_test.lst - - Added a bunch of !ACE_FOR_TAO qualifiers to tests that are not - built/runnable when the ACE_FOR_TAO feature is used. - - * tests/run_test.lst - - Removed the avoid of ace_for_tao from the Dirent test, as Dirent.cpp - is now built as part of ace_for_tao. - -Tue Jan 31 09:44:10 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_shm.{h,inl}: - Reverted my change below, removed the const, it causes problems with - solaris, have to add a special case for solaris, but will do that - after x.4.9 is out - - Fri Jan 27 12:36:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_shm.{h,inl}: - Changed for the shmdt and shmat methods the void* argument to - const void*, this is the way posix defines these methods. - -Mon Jan 30 17:53:10 UTC 2006 William Otte - - * bin/ciao_tests.lst - - Added a !NOXERCES qualifier so it is possible to run only tests - that do not require xerces. - -Sat Jan 28 18:40:30 2006 Douglas C. Schmidt - - * ace/Array_Base.h (class ACE_Array_Base): Changed private to - protected to enable access to certain members in derived - classes. Thanks to luxi78@gmail.com for suggesting this. - -Fri Jan 27 23:29:44 UTC 2006 James H. Hill - - * docs/ace_guidelines.vsmacros: - - Re-added the Visual Studio macros as a binary file. - -Fri Jan 27 23:21:49 UTC 2006 James H. Hill - - - * docs/ace_guidelines.vsmacros: - - Removed this file since it's a binary file. - -Fri Jan 27 18:47:34 UTC 2006 William Otte - - * ace/ace_for_tao.mpc - - Added Dirent.cpp to resolve linking errors in TAO_IDL on Windows. - -Fri Jan 27 14:53:03 UTC 2006 Chad Elliott - - * bin/PerlACE/Run_Test.pm: - - Added a method to get a random port number within the range of - 10002 - 32767. - -Fri Jan 27 14:10:12 UTC 2006 Johnny Willemsen - - * tests/Reactor_Performance_Test.cpp: - Initialise some pointers with 0 - -Fri Jan 27 13:56:12 UTC 2006 Johnny Willemsen - - * ace/DLL_Manager.h: - Doxygen improvements - -Fri Jan 27 13:43:50 UTC 2006 J.T. Conklin - - * bin/msvc_static_order.lst: - - More tweaks for split of CosConcurrency library --- build tests - after building the library. - -Fri Jan 27 13:42:03 UTC 2006 J.T. Conklin - - * configure.ac: - - Fix typo in last change. - -Fri Jan 27 12:36:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_shm.{h,inl}: - Changed for the shmdt and shmat methods the void* argument to - const void*, this is the way posix defines these methods. - -Fri Jan 27 11:31:12 UTC 2006 Johnny Willemsen - - * ace/Select_Reactor_T.cpp: - Forgot this file to commit, only include the .inl file when - inlining is disabled - -Fri Jan 27 11:06:12 UTC 2006 Johnny Willemsen - - * ace/Connector.h: - Improved doxygen - -Fri Jan 27 10:43:12 UTC 2006 Johnny Willemsen - - * ace/Swap.h: - Added a deprecated tag to this file, std::swap can be used without - problems on all platforms, we do it in TAO without problems - -Fri Jan 27 10:36:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_wait.h: - Improved doxygen - -Fri Jan 27 10:11:12 UTC 2006 Johnny Willemsen - - * tests/Thread_Manager_Test.cpp: - Updated this test for VxWorks with pthread support - -Fri Jan 27 09:45:12 UTC 2006 Johnny Willemsen - - * html/Stats/performance.shtml: - Changed picture to 800*600 - - * bin/performance_stats.sh: - Copy the contents of html/Stats to the destination directory, this - way any change in this directory is automatically published on - the webserver. The old contents of the webserver has been checked - to make sure we don't loose any data. - -Fri Jan 27 09:14:12 UTC 2006 Johnny Willemsen - - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor.h: - * ace/config-sunos5.5.h: - * ace/config-osf1-4.0.h: - Doxygen improvements - - * ace/Select_Reactor_T.{h,inl}: - Doxygen improvements and enabled inlining in the inline file again, - this was disabled and I could find that someone disable this 7 years - ago because of a bug in the Sun compiler at that moment. The current - supported versions don't have a problem with this, so enabled - inlining again in this core part of ACE. - -Fri Jan 27 03:09:01 UTC 2006 J.T. Conklin - - * configure.ac: - - If examples and/or tests have been disabled, don't bother - generating subdirectory hierarchies or Makefiles for them. - -Fri Jan 27 02:43:53 UTC 2006 J.T. Conklin - - * Makefile.am: - * m4/ace.m4: - - Remove support for --{enable,disable}-ace-perftests. The - performance tests are now enabled/disabled with the plain - --{enable,disable}-ace-tests option. We decided this as - flags for each type of example and test gets a unwieldly - once we factor in TAO (and sometime in the future CIAO). - -Thu Jan 26 18:53:10 2006 Douglas C. Schmidt - - * Makefile.am (SUBDIRS): - * m4/ace.m4: Added support to enable/disable building the ACE tests, - performance tests, and examples. Thanks to Thomas E Lackey - for contributing this. - -Thu Jan 26 20:25:39 UTC 2006 Steve Huston - - * examples/APG/Streams/BasicTask.h: - * examples/APG/Streams/EndTask.h: Fixed ACE_Message_Block memory leaks. - -Thu Jan 26 17:59:16 UTC 2006 Gan Deng - - * bin/MakeProjectCreator/config/dance_extension_stub.mpb - - Added a new MPC base project for DAnCE. - -Thu Jan 26 15:38:38 UTC 2006 Steve Huston - - * protocols/ace/RMCast/Template_Instantiations.cpp: Replace the - separate long and long long instantiations with u64 instantiations. - This is what the code says, and avoids issues with 64-bit - explicit instantiations builds. - -Thu Jan 26 15:20:12 UTC 2006 Johnny Willemsen - - * ace/Singleton.h: - Doxygen improvements - -Thu Jan 26 15:05:04 UTC 2006 Steve Huston - - * protocols/ace/RMCast/Template_Instantiations.cpp: Add missing - template instantiations. - -Thu Jan 26 14:02:12 UTC 2006 Johnny Willemsen - - * tests/Message_Block_Test.cpp: - * tests/Process_Manual_Event_Test.cpp: - * tests/Process_Mutex_Test.cpp: - Moved real code out of ACE_ASSERT macro's, this functionality - wasn't executed in release mode builds. Found this because of - warnings in the Intel release build that a variable was used - before it was assigned a value. - -Thu Jan 26 13:21:12 UTC 2006 Johnny Willemsen - - * bin/performance_stats.sh: - Increased size of pictures to 800x600 and also put linux and - gcc version into a file which is used by the other html files - - * bin/generate_performance_chart.sh: - * bin/generate_topinfo_charts.sh: - Generate pictures of 800x600 - -Thu Jan 26 13:16:12 UTC 2006 Johnny Willemsen - - * html/Stats/configuration.shtml: - Get linux and gcc version from the file instead of hardcoding - it in this file - - * html/Stats/simple_footprint.shtml: - Removed the smart proxies lib, it is always 0 size, added PI - and PI_Server - -Thu Jan 26 13:06:12 UTC 2006 Johnny Willemsen - - * bin/generate_compile_stats.sh: - Extended this script to generate a seperate page for the CIAO - footprint stats. Also made the generated png images the size - of 800x600 and get the gcc version from gcc itself instead of - generating it hardcoded - -Thu Jan 26 13:03:12 UTC 2006 Johnny Willemsen - - * bin/generate_footprint_chart.sh: - Generate the png images of size 800x600, little bit bigger, makes - it more easier to read - -Thu Jan 26 11:32:12 UTC 2006 Johnny Willemsen - - * ace/Registry.h: - * ace/Token_Request_Reply.h: - * ace/Semaphore.h: - * ace/Hash_Map_Manager_T.h: - * ace/Sched_Params.h: - Doxygen improvements - -Thu Jan 26 10:47:12 UTC 2006 Johnny Willemsen - - * html/Stats/detailed_footprint.shtml: - Updated header page to also mention that we gather CIAO stats - -Wed Jan 25 20:16:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_Thread.h: - * ace/config-linux-common.h: - * ace/config-macros.h: - * ace/RB_Tree.h: - Doxygen improvements - - * ace/config-freebsd.h: - * ace/config-macosx.h: - * ace/config-netbsd.h: - * ace/config-openbsd.h: - * ace/config-vxworks6.2.h: - Added ACE_HAS_SYSCTL, will be used in some new code that will - be added after x.4.9 - -Wed Jan 25 19:57:12 UTC 2006 Johnny Willemsen - - * ace/config-win32-common.h: - Added ACE_LACKS_SUSECONDS_T and ACE_LACKS_USECONDS_T - - * ace/WIN32_Asynch_IO.h: - * ace/TSS_T.h: - * ace/Timer_Queue_T.h: - * ace/String_Base.h: - * ace/iosfwd.h: - * ace/High_Res_Timer.h: - * ace/Configuration.h: - * ace/Log_Msg.h: - * ace/Message_Queue.h: - * ace/Process.h: - * ace/SOCK_Dgram_Mcast.h: - * ace/Managed_Object.h: - * ace/Map_Manager.h: - * ace/Containers_T.h: - * ace/SString.h: - * ace/IOStream.h: - Doxygen improvements - -Wed Jan 25 19:35:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm: - Don't use the directory group sorting with borland - -Wed Jan 25 19:22:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_types.h: - If ACE_LACKS_SUSECONDS_T is defined then define suseconds_t as - long. If ACE_LACKS_USECONDS_T is defined then define useconds_t - as unsigned long. - -Wed Jan 25 15:05:27 UTC 2006 J.T. Conklin - - * configure.ac: - - Added feature test for ACE_LACKS_SUSECONDS_T and - ACE_LACKS_USECONDS_T. - -Wed Jan 25 15:00:05 UTC 2006 J.T. Conklin - - * configure.ac: - - Added feature tests for ACE_LACKS_SYS_SYSCTL_H and - ACE_HAS_SYSCTL. - -Wed Jan 25 14:38:10 UTC 2006 Olli Savia - - * ace/SSL/SSL_Asynch_BIO.h: - * include/makeinclude/platform_lynxos.GNU: - Fixed compile error on LynxOS when ssl=1. - -Wed Jan 25 13:06:12 UTC 2006 Johnny Willemsen - - * ace/Array.h: - * ace/Asynch_IO.h: - * ace/Asynch_IO_Impl.h: - * ace/Atomic_Op_T.h: - * ace/Basic_Types.h: - * ace/Caching_Utility_T.h: - * ace/CDR_Size.h: - * ace/CDR_Stream.h: - * ace/Cleanup_Strategies_T.h: - Improved documentation by using @note doxygen tag - -Wed Jan 25 12:48:12 UTC 2006 Johnny Willemsen - - * ace/TP_Reactor.{h,cpp}: - Improved doxygen - -Wed Jan 25 12:34:12 UTC 2006 Johnny Willemsen - - * ace/Select_Reactor_Base.h: - Improved doxygen - -Wed Jan 25 12:13:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/vcl.mpb: - Add compile_flags that are needed to build vcl apps - - * bin/MakeProjectCreator/templates/bor.mpd: - If compile_flags is set, then add them to the CFLAGS - -Wed Jan 25 11:36:12 UTC 2006 Johnny Willemsen - - * html/Stats/footprint.shtml: - Added link for CIAO footprint we are going to gather - -Wed Jan 25 10:43:12 UTC 2006 Johnny Willemsen - - * ace/config-win32-common.h: - Added ACE_LACKS_SYS_SYSCTL_H - -Wed Jan 25 10:38:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_sysctl.h: - New os_include system header include file, will be used after x.4.9 - is out because using it now can break to much builds - -Tue Jan 24 18:07:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.2.h: - Readded ACE_LACKS_MKTEMP again, the function is declared but can't - be resolved during linking, reported this to WindRiver - -Tue Jan 24 16:56:51 UTC 2006 Steve Huston - - * ace/OS_NS_signal.inl: Removed explicit ACE_OS from sigaction - function - left over from trying to work around HP issues yesterday. - -Tue Jan 24 16:28:11 UTC 2006 J.T. Conklin - - * configure.ac: - - Added feature tests for ACE_LACKS_KILL and ACE_LACKS_SIGACTION. - -Tue Jan 24 16:08:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_dlfcn.inl: - The symFindByName is only working with VxWorks in kernel mode - -Tue Jan 24 14:44:35 UTC 2006 Steve Huston - - * ace/Activation_Queue.h: Corrected @retval for enqueue(). Returns - >0 (number of requests now queued) on success, not 0. Thanks to - Guy Peleg for this correction. - -Tue Jan 24 14:00:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_stdlib.cpp: - Only with VxWorks 5.5.1 don't use limits, newer versions to have this - -Tue Jan 24 13:43:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.2.h: - Removed ACE_LACKS_MKTEMP, VxWorks 6.2 delivers this function - -Tue Jan 24 13:39:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.2.h: - Removed ACE_LACKS_MMAP and ACE_LACKS_MPROTECT, VxWorks 6.2 delivers - these functions - -Tue Jan 24 13:08:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_resource.inl: - Use the ACE_UNUSED_ARG macro for arguments that are not used - -Tue Jan 24 12:54:35 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Choosed a non-group sorting method if the MPC_GNUACE_NAMED_TARGETS - environment variable is set. - -Tue Jan 24 12:32:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_netdb.{h,cpp,inl}: - * ace/config-vxworks5.x.h: - Simplified the vxworks specific code, VxWorks 6.2 does deliver several - of the API's we don't had with VxWorks 5.5.1. - - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - Added ACE_LACKS_GETHOSTBYNAME - -Tue Jan 24 12:12:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_netdb.h: - * ace/OS_NS_netdb.inl: - Use ACE_VXWORKS instead of VXWORKS and introduced - ACE_LACKS_GETHOSTBYADDR, ACE_LACKS_GETPROTOBYNUMBER and - ACE_LACKS_GETPROTOBYNAME to make maintenance easier - - * ace/config-chorus.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-WinCE.h: - Added the new defines to the correct files - -Tue Jan 24 11:48:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_arpa_inet.cpp (inet_aton): - Use ACE_VXWORKS instead of VXWORKS and made it dependent on the - VxWorks version number - -Tue Jan 24 10:33:12 UTC 2006 Johnny Willemsen - - * OS_NS_signal.inl: - Introduced ACE_LACKS_SIGACTION and ACE_LACKS_KILL to make things - easier to maintain - - * ace/config-chorus.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - * ace/config-win32-common.h: - * ace/config-WinCE.h: - Added ACE_LACKS_SIGACTION, ACE_LACKS_KILL - -Mon Jan 23 22:08:56 UTC 2006 Steve Huston - - * ace/OS_NS_signal.{h inl}: - * ace/OS_TLI.h: The method-name-same-as-struct-name hack for HP aC++ - needs to go up through version 03.65. This compiler version is used - on HP-UX 11iv2 on PA-RISC, so the hack can't be expunged when - removing HP-UX 11.00 support. The hack does not appear to be needed - for aC++ on HP-UX on Integrity (aC++ v06.xx). Also see - Mon Jan 23 16:35:40 UTC 2006 Steve Huston - -Mon Jan 23 20:19:25 UTC 2006 William Otte - - * bin/ciao_tests.lst - - Removed the "Exceptions" qualifier from the CIAO tests, as we - no longer support emulated exceptions, and we want these - tests to run everywhere. - -Mon Jan 23 18:07:00 UTC 2006 Steve Huston - - * apps/Gateway/Gateway/Event_Channel.cpp: Put the ACE_INET_Addr - setup on separate lines to help aC++ optimizer get it right. - -Mon Jan 23 16:35:40 UTC 2006 Steve Huston - - * ace/OS_TLI.{h inl}: HP aC++ 03.56 (last aC++ for HP-UX 11.00) gets - confused with struct t_optmgmt being defined as extern "C" by the OS - and referenced in namespace ACE_OS by ACE. To help this compiler - deal, typedef ACE_TOPTMGMT appropriately, with extern "C" for - aC++ less than 03.60 and normally for all other compilers. This - should take care of the odd t_optmgmt errors. - - When we remove support for HP-UX 11.00, this hack should be removed - as well. - - * apps/JAWS3/jaws3/Reactive_IO.cpp: Replace #include "ace/OS.h" with - #include "ace/OS_NS_unistd.h". Leaving OS.h gets HP aCC into a state - where it gets confused about methods and types with the same name, - in this case t_optmgmt. - -Mon Jan 23 15:51:12 UTC 2006 Johnny Willemsen - - * ace/ATM_Acceptor.h: - * ace/OS_NS_stdio.h: - Doxygen improvements - -Mon Jan 23 15:43:56 UTC 2006 J.T. Conklin - - * bin/msvc_static_order.lst: - - Update for split of CosConcurrency, CosProperty, and - RTEventLogAdmin libraries. - -Mon Jan 23 08:02:08 2006 Douglas C. Schmidt - - * ace/Pipe.cpp: Added static_cast (0) rather than - (u_short) 0 to the ACE_INET_Addr local_any in ACE_Pipe::open(). - -Sat Jan 21 08:19:34 UTC 2006 James H. Hill - - * docs/ACE-guidelines.html: - * docs/ace_guidelines.vsmacros: - - Added Visual Studio .NET macros project that helps with formatting - according to ACE guidelines. Also noted the macros project in the - documentation file. - -Fri Jan 20 22:51:09 UTC 2006 Stoyan Paunov - - * apps/JAWS/server/IO.h: - * apps/JAWS/server/IO.cpp: - - Fixed unused paramerer warnings. - - * apps/JAWS2/JAWS/IO.h: - * apps/JAWS2/JAWS/IO.cpp: - - tried to fix the 'cast to pointer from interger of different size' - warning. It had to do with the fact that x86_64 void* are 8 bytes and - the cast was from an int which 4 bytes. When James Hu wrote that - code there were no 64 bit archs so the error is showing up now. - -Fri Jan 20 15:05:12 UTC 2006 Johnny Willemsen - - * ace/WIN32_Proactor.h: - No need to export ACE_WIN32_Asynch_Timer - -Fri Jan 20 14:55:12 UTC 2006 Johnny Willemsen - - * etc/*.doxygen: - Updated EXPAND_AS_DEFINED so that we generate documentation with - exceptions in the interfaces - -Fri Jan 20 13:56:12 UTC 2006 Johnny Willemsen - - * ace/config-macros.h: - Replace VXWORKS with ACE_VXWORKS and guarded the following - macros with ACE_LACKS_DEPRECATED_MACROS so that usage of these - deprecated macros within ACE/TAO is prevented: ACE_USING, - ACE_SYNCH_1, and ACE_SYNCH_2 - -Fri Jan 20 11:29:54 UTC 2006 Boris Kolpackov - - * protocols/ace/RMCast/Protocol.h: - - Fixed a race condition. - - * protocols/ace/TMCast/FaultDetector.hpp: - - Added a flag to prevent a single group member from terminating - until data is received from other members. - -Fri Jan 20 11:24:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new PI AdvSlot test - -Wed Jan 18 19:40:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new PI Slot test - -Wed Jan 18 19:15:12 UTC 2006 Johnny Willemsen - - * ace/WFMO_Reactor.cpp: - Replace c-style cast with reinterpret_cast - - * ACE-INSTALL.html: - Small cygwin update - - * ace/Mem_Map.h: - Doxygen improvements - - * ace/Mem_Map.cpp: - ACE_OS::filesize returns off_t - -Wed Jan 18 18:22:13 UTC 2006 J.T. Conklin - - * apps/Gateway/Gateway/Event_Channel.cpp: - - Updated because constructors of ACE_INET_Addr are now explicit. - -Wed Jan 18 06:55:12 UTC 2006 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_HAS_4_4BSD_SENDMSG_RECVMSG - -Tue Jan 17 20:37:05 UTC 2006 J.T. Conklin - - * bin/MakeProjectCreator/config/rteventlogadmin.mpb: - * bin/MakeProjectCreator/config/rteventlogadmin_serv.mpb: - * bin/MakeProjectCreator/config/rteventlogadmin_skel.mpb: - - Split RTEventLogAdmin Service into three libraries: - RTEventLogAdmin, RTEventLogAdmin_Skel, and RTEventLogAdmin_Serv - for client stubs, servant skeletons, and service implementation - respectively. - -Tue Jan 17 20:28:12 UTC 2006 Johnny Willemsen - - * ace/Module.h: - Doxygen improvement - -Tue Jan 17 19:56:12 UTC 2006 Johnny Willemsen - - * ace/config-cygwin32.h: - Added ACE_HAS_P_READ_WRITE and removed ACE_LACKS_READDIR_R, this - is for Cywin 1.5.19 - -Tue Jan 17 18:50:12 UTC 2006 Johnny Willemsen - - * ace/INET_Addr.{h,cpp}: - Improved doxygen, changed VXWORKS to ACE_VXWORKS and make one - of the constructors that has two arguments, one has to be passed - the other has a default value explicit - -Tue Jan 17 17:38:46 UTC 2006 Steve Huston - - * examples/C++NPv2/display_logfile.cpp: In the Logrec_Module - constructor, don't use base-class initialization to pass &task_ - to ACE_Module. Doing so passes &task_ before task_ has been - constructed. Thus, when ACE_Module sets the task's module - pointer, it gets overwritten when task_ is constructed after - return from ACE_Module's constructor. Calling task_'s module() - method in this case will yield a 0 pointer, which is not correct. - To remedy this, call ACE_Module::open() directly from within - the Logrec_Module constructor. - Also see Stroustrup pg 307. - Thanks to David Hawkins for pointing this out. - -Tue Jan 17 16:27:47 UTC 2006 Olli Savia - - * ace/OS_NS_dlfcn.inl: - Fixed compile error on LynxOS 3.x. - -Tue Jan 17 15:37:29 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/config/taodefaults.mpb: - - If the corba_messaging feature is disabled, then add the - TAO_HAS_CORBA_MESSAGING=0 macro to ensure that TAO is built - properly. - -Tue Jan 17 14:03:14 UTC 2006 Steve Huston - - * ace/Module.h: Change ~ACE_Module to be virtual so that derived - classes can be cleaned up properly. Thanks to David Hawkins - for this fix. - - * THANKS: Added David Hawkins to the Hall of Fame. - -Tue Jan 17 01:12:35 2006 Douglas C. Schmidt - - * ace/Pipe.cpp (open): Added a cast to u_short for the first - parameter to ACE_INET_Addr to avoid complaints on certain - compilers. Thanks to Wallace Zhang for reporting this. - -Mon Jan 16 06:59:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_dlfcn.inl: - Fixed compile errors with VxWorks 5.5 - -Mon Jan 16 15:17:22 2006 Douglas C. Schmidt - - * ace/Pipe.cpp (open): Changed - - ACE_INET_Addr local_any ("localhost:0"); - - to - - ACE_INET_Addr local_any (0, ACE_LOCALHOST); - - so that it will work more portably. Thanks to Steve Huston for - suggesting this fix. - -Mon Jan 16 20:43:26 UTC 2006 Olli Savia - - * ace/README: - Removed ACE_HAS_PREDEFINED_THREAD_CANCELLED_MACRO, it is - no longer used. - - * ace/config-lynxos.h: - Minor updates for LynxOS 4.0. - - * tests/run_test.lst: - Run a few more tests on LynxOS. - -Mon Jan 16 20:08:12 UTC 2006 Johnny Willemsen - - * ace/Log_Record.h: - Doxygen improvement - -Mon Jan 16 19:52:12 UTC 2006 Johnny Willemsen - - * ace/os_include/os_errno.h: - Replaced VXWORKS with ACE_VXWORKS - -Mon Jan 16 19:44:12 UTC 2006 Johnny Willemsen - - * ace/SOCK_IO.cpp: - When using FIONREAD the 3rd argument should be of type int. This - fixes bugzilla bug 2360. Thanks to Michael Klein - for reporting this. - - * ace/SV_Semaphore_Complex.h: - Instead of ACE_USING just use "using" - - * ace/Sched_Params.cpp: - * ace/ACE.cpp: - * ace/INET_Addr.cpp: - * ace/OS_NS_netdb.cpp: - Replaced VXWORKS with ACE_VXWORKS - - * ace/Read_Buffer.h: - * ace/Reactor.h: - Doxygen improvement - - * ace/Flag_Manip.inl: - Removed remark about VxWorks, not valid anymore with - newer versions - - * ace/OS_NS_dlfcn.inl: - Removed ACE_HAS_CHARPTR_DL, is not defined in any config file - - * ace/config-all.h: - Removed old vxworks specific part - -Mon Jan 16 17:23:42 UTC 2006 Olli Savia - - * ace/config-lynxos.h: - Added ACE_HAS_POSIX_REALTIME_SIGNALS. - -Mon Jan 16 17:20:50 UTC 2006 Olli Savia - - * ace/config-lynxos.h: - Do not use mmap() emulation on LynxOS 4.0. - -Mon Jan 16 17:00:26 UTC 2006 Stoyan Paunov - - * apps/JAWS/server/HTTP_Handler.h: - * apps/JAWS/server/HTTP_Handler.cpp: - * apps/JAWS/server/HTTP_Server.h: - * apps/JAWS/server/HTTP_Server.cpp: - * apps/JAWS/server/IO.h: - * apps/JAWS/server/IO.cpp: - * apps/JAWS/server/README: - * apps/JAWS/server/svc.conf: - - Checking the some changes to JAWS. This is the code that adds the ability - to start the server without file caching. This functionality is necessary - for the proper coordination of file creations and deletions between JAWS - and the RepositoryManager in CIAO. The changes are explained in the README. - I have added a line in the svc.conf file which shows how to enable this new - functionality. - -Mon Jan 16 16:53:38 UTC 2006 Olli Savia - - * ace/config-lynxos.h: - Removed ACE_HAS_PREDEFINED_THREAD_CANCELLED_MACRO, it is - no longer used. - -Mon Jan 16 14:35:10 UTC 2006 Olli Savia - - * ace/config-lynxos.h: - * include/makeinclude/platform_lynxos.GNU: - Improved shared library support for LynxOS 4.0. - -Mon Jan 16 05:54:44 2006 Douglas C. Schmidt - - * ace/Timer_Queue_Adapters.cpp (svc): Added a fix so that - this code will work for both regular timers and high-resolution - timers. Thanks to Eric Tiangang and Robert - Iakobashvili for this fix. This - fixes bugid 2348. - - * include/makeinclude/platform_linux.GNU (LD): - Pass -O3 to GNU-linker to reduce footprint due to ld - optimizations. Thanks to Robert Iakobashvili for this enhancement. - -Sun Jan 15 19:20:12 UTC 2006 Johnny Willemsen - - * ace/SOCK_IO.{cpp,inl}: - Removed several casts which where not needed and only cause - problems with 64bit builds - -Sun Jan 15 18:57:12 UTC 2006 Johnny Willemsen - - * ace/Service_Config.h: - Fixed ACE_DYNAMIC_SERVICE_DIRECTIVE macro when unicode is - enabled. Thanks to Jan Ohlenburg . - -Sun Jan 15 06:06:38 UTC 2006 J.T. Conklin - - * bin/MakeProjectCreator/config/avstreams.mpb: - - Update to inherit from property_serv. as this project uses a - collocated property service --- property.mpb now only brings - in the client stubs. - - * bin/MakeProjectCreator/config/concurrency.mpb: - * bin/MakeProjectCreator/config/concurrency_serv.mpb: - * bin/MakeProjectCreator/config/concurrency_skel.mpb: - - Split CosConcurrency Service into three libraries: - CosConcurrency, CosConcurrency_Skel, and CosConcurrency_Serv for - client stubs, servant skeletons, and service implementation - respectively. - - * bin/MakeProjectCreator/config/property.mpb: - * bin/MakeProjectCreator/config/property_serv.mpb: - * bin/MakeProjectCreator/config/property_skel.mpb: - - Split CosProperty Service into three libraries: - CosProperty, CosProperty_Skel, and CosProperty_Serv for client - stubs, servant skeletons, and service implementation - respectively. - -Sat Jan 14 12:59:39 2006 Douglas C. Schmidt - - * ace/Pipe.cpp (open): Added a workaround so that "localhost:0" - is used rather than sap_any to avoid triggering firewall rules - on Windows. Thanks to Paul Felix for this fix. - - * ace/ACE.h (ACE): Updated the documentation for ACE::fork() to - indicate that -1 or 1 are returned if avoid_zombies != 0. This - is a bug that needs to be fixed at some point. Thanks to Tobias - Herzke for reporting this. - -Fri Jan 13 19:06:33 UTC 2006 J.T. Conklin - - * configure.ac: - - Reorder some function feature tests so they're closer to - alphabetical order. This makes it easier to maintain. - -Fri Jan 13 17:56:53 UTC 2006 J.T. Conklin - - * configure.ac: - - Added ACE_LACKS_SYSTEM feature test. - -Fri Jan 13 09:38:21 2006 Douglas C. Schmidt - - * docs/ACE-bug-process.html (HREF): Updated this document to - explain the process for submitting a patch. Thanks to Rick - Taylor for motivating this. - -Fri Jan 13 12:22:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_Thread.cpp (~TSS_Cleanup_Instance): - Set the members to zero after a delete because it are static - ones. - -Fri Jan 13 11:47:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_stdlib.inl: - Changed ACE_OS::system to use ACE_LACKS_SYSTEM - - * ace/config-chorus.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - * ace/config-WinCE.h: - Added ACE_LACKS_SYSTEM - -Fri Jan 13 08:34:18 UTC 2006 J.T. Conklin - - * test/test_config.h: - - Changed so the very first thing we do is #undef ACE_NDEBUG. - - * test/OS_Test.cpp: - - Changed to make "test_config.h" the first header to be - #included, as it #undef's ACE_NDEBUG. This ensures ACE_ASSERT() - will be defined so it validates its expression even for debug=0 - builds. Without this, all the checks in this file are compiled - out. Fortunately unreferenced symbol warnings made us aware of - this problem. - -Fri Jan 13 07:53:12 UTC 2006 Johnny Willemsen - - * ace/config-lynxos.h: - Added ACE_LACKS_SETEGID - -Fri Jan 13 04:49:41 UTC 2006 J.T. Conklin - - * configure.ac: - - Changed to use AC_SEARCH_LIBS for the -lsocket and -lnsl - libraries before calling ACE_CONFIGURATION_OPTIONS. Third party - libraries may those libraries, and if they haven't been added to - $LIBS, the feature tests will fail. - -Thu Jan 12 20:30:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_time.inl: - * ace/README: - Added ACE_HAS_CLOCK_GETTIME_MONOTONIC, this is the patch from - bugzilla bug 2358. Not closing that one yet, have to see how - to autoconf this and where this new macro should be set. Thanks - to Robert Iakobashvili for these - patches - -Thu Jan 12 19:50:12 UTC 2006 Johnny Willemsen - - * ace/Assert.h: - Export the __ace_assert function to resolve link errors on - Windows - -Thu Jan 12 16:44:40 UTC 2006 Steve Huston - - * ace/Functor.{h inl}: Using ACE_LACKS_LONGLONG_T wasn't good enough - for deciding when to do an ACE_Hash<[unsigned] long long>. MSVC6 - can't hack it. So, do the specialization for the 64-bit types if - ACE_SIZEOF_LONG < 8, avoiding a duplication of ACE_Hash. - Also, since the way "unsigned long long" is declared varies across - compilers, use ACE_[U]INT64 rather than the native C++ type. - - * ace/INET_Addr.cpp (string_to_addr): u_short always compares >= 0, - so rely on the indicated end of successful scan from ACE_OS::strtol() - to say whether it scanned all digits or stopped short of the end of - the string. - -Thu Jan 12 12:59:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - For rtp mode, set PIC correctly - -Thu Jan 12 12:01:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - When building for rtp also set DLD - -Thu Jan 12 11:51:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - For rtp model we don't need to make sure the shared object - directory is the same as static - -Thu Jan 12 11:45:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - Fixed some comments after endif - - * ace/config-lynxos.h: - Added ACE_LACKS_SETUID and ACE_LACKS_SETEUID - -Thu Jan 12 10:34:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - Improved building executables for rtp - -Thu Jan 12 10:10:12 UTC 2006 Johnny Willemsen - - Removed all support for VxWorks 6.1, this version wa just an - intermediate step from 5.5 to 6.2. The port never completed and - we are aimin at 6.2 at this moment, so to not give false - impressions removed all the support for 6.1. - - * include/makeinclude/platform_vxworks6.1.GNU: - * ace/config-vxworks6.1.h: - Removed these files - - * ace/Sock_Connect.cpp: - * ace/OS_NS_unistd.inl: - * ace/os_include/os_time.h: - * ace/os_include/os_stdio.h: - * ace/os_include/sys/os_wait.h: - Removed references to VxWorks 6.1 - -Thu Jan 12 09:51:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Added ACE_LACKS_GETPGID - -Thu Jan 12 01:08:32 UTC 2006 J.T. Conklin - - * ace/ACE.pc.in: - - Added @LIBS@ to Libs. - - * ace/SSL/ACE_SSL.pc.in: - - Added @ACE_TLS_LDFLAGS@ and @ACE_TLS_LIBS@ to Libs. - - Added @ACE_TLS_CPPFLAGS@ to Cflags. - -Wed Jan 11 22:17:39 UTC 2006 Steve Huston - - * protocols/ace/RMCast/Template_Instantiations.cpp: Added missing - explicit instantiations. - -Wed Jan 11 21:19:21 UTC 2006 Steve Huston - - * ace/Functor.{h inl}: Remove the ACE_* type specializations and - add specializations for ACE_Hash for [unsigned] short, - [unsigned] int, [unsigned] long, [unsigned] long long. This - should resolve the compile errors on some platforms resulting - from the changes in: - Tue Jan 10 23:04:06 UTC 2006 Steve Huston - and still allow everything to work regardless of what integral types - are used. - -Wed Jan 11 11:43:42 2006 Ossama Othman - - From Richard Ward - * ace/Auto_Ptr.h (ACE_AUTO_PTR_RESET): - - Assign "NEWPTR" macro argument to a temporary "TYPE" pointer, - and use that pointer in place of "NEWPTR" to force "NEWPTR" to - be expanded only once. Prevents a memory leak from occuring - when "NEWPTR" is an expression such as "new foo". - - Delete the object released from the auto_ptr<>. Previously it - was ignored, resulting in a memory leak. Fixes a memory leak. - - * THANKS: - - Added Richard to the Hall of Fame. - -Wed Jan 11 18:58:15 UTC 2006 J.T. Conklin - - * ace/Assert.cpp: - * ace/Assert.h: - - Added const qualifier to __ace_assert() "expression" parameter. - -Wed Jan 11 17:36:44 UTC 2006 J.T. Conklin - - * ace/Assert.h: - - Use ACE_VERSIONED_NAMESPACE_NAME prefix for __ace_assert() - invocation. - -Wed Jan 11 14:24:20 UTC 2006 J.T. Conklin - - * Makefile.am: - - Updated. - - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - - Added Assert.cpp to Source_Files section. - - * ace/Global_Macros.h: - - Changed to #include "ace/Assert.h", as the ACE_FACTORY_DEFINE - macro uses ACE_ASSERT. - - * ace/Log_Msg.h: - - Changed to #include "ace/Assert.h" for backwards compatibilty - with earlier ACE releases. - - * ace/Assert.cpp: - * ace/Assert.h: - - Factor ACE_ASSERT() macro out of Log_Msg.h into new files - Assert.h, with a helper-function in Assert.cpp. This reduces - the footprint of an ACE_ASSERT() invocation to a single call. - -Wed Jan 11 13:14:52 UTC 2006 Chad Elliott - - * include/makeinclude/rules.local.GNU: - - Corrected a problem in determining if depgen.pl is the dependency - generator. The logic can now handle the instance where the script - is preceded by /usr/bin/perl (or something similar). - -Wed Jan 11 06:47:04 2006 Douglas C. Schmidt - - * ace/OS_NS_Thread.cpp (~TSS_Cleanup_Instance): Delete the mutex and condition - variable to prevent memory leaks. Thanks to Domingos Monteiro - for this fix. - -Tue Jan 10 23:04:06 UTC 2006 Steve Huston - - * ace/Functor.{h inl}: Added specialization for ACE_Hash - to help the explicit instantiation build get along. - -Tue Jan 10 22:30:21 UTC 2006 Steve Huston - - * ace/INET_Addr.cpp (string_to_addr): Correctly identify a specified - port number of "0". Thanks to Guy Peleg for this fix. - - * THANKS: Added Guy Peleg to the Hall of Fame. - -Tue Jan 10 20:05:54 UTC 2006 Chad Elliott - - * include/makeinclude/rules.local.GNU: - - Ensure that the correct object files get cleaned up when doing a - make clean. Logic was duplicated in this file (but did not - correspond to the correct logic found in the gnu.mpd or - rules.lib.GNU). - -Tue Jan 10 17:45:10 UTC 2006 Scott Harris - - * bin/tao_other_tests.lst: - - Added TAO/orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/run_test.pl. - -Tue Jan 10 17:09:26 UTC 2006 J.T. Conklin - - * configure.ac: - - Add feature tests for ACE_LACKS_CHDIR, ACE_LACKS_DUP2, - ACE_LACKS_GETPID, ACE_LACKS_ISATTY, ACE_LACKS_SETPGID, and - ACE_LACKS_UNLINK. Re-arrange some things so the tests are - closer to alphabetical order -- this makes the file easier - to maintain. - -Tue Jan 10 16:35:35 UTC 2006 Chad Elliott - - * bin/ChangeLogEditor/ChangeLogEdit.pm: - * bin/cle.pl: - - Removed references to the name "CVS". At this layer, the revision - control system is unknown. - -Tue Jan 10 13:36:55 UTC 2006 Chad Elliott - - * ace/Svc_Conf_Lexer.cpp: - - Modified GNU specific code to compile with the -pedantic option. - -Tue Jan 10 13:21:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - Compilation for rtp mode is now the default - -Tue Jan 10 13:14:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.1.h: - * ace/config-vxworks6.2.h: - Only define ACE_MAIN in kernel mode - -Tue Jan 10 11:36:43 UTC 2006 J.T. Conklin - - * configure.ac: - - Added feature tests for ACE_LACKS_DUP, ACE_LACKS_GETEGID, - ACE_LACKS_GETEUID, ACE_LACKS_GETGID, ACE_LACKS_GETUID, - ACE_LACKS_PIPE, ACE_LACKS_SETEGID, ACE_LACKS_SETEUID, - ACE_LACKS_SETSID, ACE_LACKS_SETGID, and ACE_LACKS_SETUID. - -Tue Jan 10 10:10:12 UTC 2006 Johnny Willemsen - - * ace/config-hpux-10.x.h: - * ace/config-hpux-11.00.h: - Added ACE_LACKS_SETEGUID and ACE_LACKS_SETEUID - -Tue Jan 10 10:02:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - Simplified a lot of methods in this file by adding new ACE_LACKS - macros. For VxWorks and psos we now also return -1 with notsup - for the uid methods, these methods just don't work on these - platforms because they are not there and we don't have multiple - users. This will make this file much easier to maintain - - * ace/config-chorus.h: - * ace/config-integritySCA.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-psosim-g++.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.1.h: - * ace/config-vxworks6.2.h: - * ace/config-win32-common.h: - Added the new ACE_LACKS macros from OS_NS_unistd.inl - -Tue Jan 10 07:21:19 UTC 2006 J.T. Conklin - - * examples/C++NPv2/Makefile.am: - * examples/C++NPv2/README: - * examples/C++NPv2/Reactor_Logging_Server.cpp: - * examples/C++NPv2/Reactor_Logging_Server_Adapter.h: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/TP_Logging_Server.h: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - - Update for change below. - - * examples/C++NPv2/Reactor_Logging_Server.h: - * examples/C++NPv2/Reactor_Logging_Server_T.h: - - Renamed Reactor_Logging_Server.h to Reactor_Logging_Server_T.h. - When ACE_TEMPLATES_REQUIRES_SOURCE is not defined (as is so in - the automake build), the Sun Studio 11 C++ compiler associates - Reactor_Logging_Server.h with Reactor_Logging_Server.cpp instead - of Reactor_Logging_Server_T.cpp when instantiating templates. - This results in interesting (and difficult to track down) errors. - -Mon Jan 9 20:20:14 UTC 2006 J.T. Conklin - - * m4/ace.m4: - - Explicitly automake conditional BUILD_ACE_FOR_TAO to false - (at least for now). - - * ace/Makefile.am: - - Small tweaks to fix errors introduced by MPC generation. - -Mon Jan 9 20:19:12 UTC 2006 Johnny Willemsen - - * tests/makeicc.pl: - Removed this file, it is ancient - -Mon Jan 9 19:08:12 UTC 2006 Johnny Willemsen - - * ace/ace_wchar.h: - VxWorks rtp has int_t - - * ace/config-vxworks6.2.h: - Rtp has wchar.h and wctype.h - - * ace/OS_NS_String.{h,inl,cpp}: - Updated the wchar_t methods that has a int_t argument to use wchar_t - instead. That matches the opengroup definition and resolved the - compile errors with VxWorks. Also replaced some c-style and static - casts with const_casts. - - * ace/config-vxworks6.2.h: - VxWorks 6.2 in rtp mode has a lot of wchar_t functionality, use it! - -Mon Jan 9 18:32:55 UTC 2006 J.T. Conklin - - * ace/Makefile.am: - - Regenerated for Service Configurator parser changes: - Mon Jan 9 15:18:49 UTC 2006 Chad Elliott - - * ace/ace.mpc: - - Added Hash_Map_Manager.h to Header_Files section. - -Mon Jan 9 18:03:50 UTC 2006 J.T. Conklin - - * configure.ac: - - Added ACE_LACKS_GETOPT and ACE_LACKS_SYSCONF feature tests. - -Mon Jan 9 15:18:49 UTC 2006 Chad Elliott - - * ace/Encoding_Converter.h: - * ace/Encoding_Converter.cpp: - * ace/Encoding_Converter_Factory.h: - * ace/Encoding_Converter_Factory.cpp: - * ace/Svc_Conf.h: - * ace/Svc_Conf_Lexer.h: - * ace/Svc_Conf_Lexer.cpp: - * ace/UTF16_Encoding_Converter.h: - * ace/UTF16_Encoding_Converter.inl: - * ace/UTF16_Encoding_Converter.cpp: - * ace/UTF32_Encoding_Converter.h: - * ace/UTF32_Encoding_Converter.cpp: - * ace/UTF8_Encoding_Converter.h: - * ace/UTF8_Encoding_Converter.cpp: - * ace/svcconf.mpb: - - Added Unicode support to the Service Configurator by hand-coding - the lexer portion to properly take into account non-US UTF8, - UTF16 and UTF32 encodings. Some of the UFT16 and UTF32 conversion - code came directly from Unicode, Inc. - - This is a drop-in replacement for the flex generated lexer and - heap allocates the encoding converters. However, this version - performs less heap allocations and has a smaller footprint than - the flex generated lexer. - - * tests/Service_Config_Test.UTF-16.conf: - * tests/Service_Config_Test.WCHAR_T.conf: - - Added byte order marks to ensure that they are interpreted - properly on all machines. - - * ace/Svc_Conf.l: - * ace/Svc_Conf_Lexer_Guard.h: - * ace/Svc_Conf_Lexer_Guard.cpp: - * ace/Svc_Conf_l.cpp: - - * etc/Svc_Conf_l.cpp.diff: - - Removed these files. - -Mon Jan 9 14:38:12 UTC UTC 2006 Johnny Willemsen - - * ace/OS_NS_unisth.{h,cpp}: - Integrated patches of bugzilla bug 2357, thanks to Volker Lukas - for delivering this. This adds setuid(uid_t), - setgid(gid_t), getuid() and getgid(). - Also introduced ACE_LACKS_SYSCONF and ACE_LACKS_GETOPT to make - the VxWorks 6.2 port cleaner - - * ace/config-integritySCA.h: - * ace/config-psos-diab-mips.h: - * ace/config-psos-diab-ppc.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.1.h: - * ace/config-vxworks6.2.h: - * ace/config-win32-common.h: - Added ACE_LACKS_SYSCONF and ACE_LACKS_GETOPT to the appropriate - config files - -Mon Jan 9 14:14:12 UTC UTC 2006 Johnny Willemsen - - * ace/OS_main.cpp.{h,cpp}: - The VxWorks specific way of handling main shouldn't be used - when building for the rtp model, then the normal main should - be used - -Mon Jan 9 13:44:12 UTC UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO/tests/Bug_2349_Regression/run_test.pl - -Mon Jan 9 11:27:12 UTC UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.2.h: - * ace/OS_NS_stdlib.inl: - Added ACE_LACKS_PUTENV. VxWorks 6.2 seems to have this method - declared, but when linking in rtp model we get an unresolved - external. So, just disable it for the moment, send a test - case for this to WindRiver - -Mon Jan 9 10:47:12 UTC UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - Improved build rules for the rtp model - -Mon Jan 9 09:36:29 UTC 2006 J.T. Conklin - - * configure.ac: - - Fix typo in ACE_LACKS_NAMED_POSIX_SEM feature test. - -Mon Jan 9 09:30:12 UTC UTC 2006 Johnny Willemsen - - * ace/PI_Malloc.h: - Doxygen improvements - -Mon Jan 9 09:16:12 UTC UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_stat.{h,inl}: - Changed the return type of filesize to off_t, that is the type to - be used for filesizes - -Mon Jan 9 07:59:12 UTC UTC 2006 Johnny Willemsen - - * ace/os_include/os_limits.h: - VxWorks 6.2 defines PIPE_BUF as -1, this is not correct, undef it - when it is defined as -1. - -Sun Jan 8 19:34:12 UTC UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.2.h: - Updated some more to reflect the OS correctly. - - * ace/Sock_Connect.cpp: - Updated for vxworks 6.2 - - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_CB_Proactor.h: - * ace/POSIX_Proactor.{h,cpp}: - Added ACE_OPCODE_ for the OpCode enums READ and WRITE, READ is also - a define under VxWorks making this problematic to enable - - * include/makeinclude/platform_vxworks6.2.GNU: - Improved rtp building rules - -Sat Jan 7 13:34:12 UTC UTC 2006 Johnny Willemsen - - * ace/Time_Value.{h,inl}: - For the sec accessor methods use time_t as type, that is also the - type used to store the number of seconds. - -Sat Jan 7 13:29:12 UTC UTC 2006 Johnny Willemsen - - * ace/config-win32-msvc-8.h: - Added ACE_HAS_NEW_NOTHROW. Msvc8 throws std::bad_alloc by default, - for the ACE_NEW macros we disable this, we just get a zero back on - out of memory. This fixes bugzilla bug 2333 - -Sat Jan 7 13:17:12 UTC UTC 2006 Johnny Willemsen - - * ace/config-win32-mingw.h: - Added ACE_HAS_NONCONST_WCSDUP - -Fri Jan 6 21:20:58 UTC 2006 J.T. Conklin - - * ace/Process_Manager.cpp: - * ace/Process_Manager.h: - - There can be a race condition if a process exits between the - time it is spawned and the time its handler is registered. - Changed the spawn() methods to take an optional handler so - it can be registered atomically. - -Thu Jan 5 15:37:32 UTC 2006 J.T. Conklin - - * configure.ac: - - Add ACE_LACKS_UNAME feature test. - -Thu Jan 5 11:48:12 UTC 2006 Johnny Willemsen - - * ace/README: - * ace/config-chorus.h: - * ace/config-integritySCA.h: - * ace/config-psosim-g++.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.1.h: - * ace/config-vxworks6.2.h: - * ace/config-win32-common.h: - * ace/OS_NS_sys_utsname.{h,cpp}: - Introduced ACE_LACKS_UNAME and refactored ACE_OS::uname a - little bit. VxWorks 6.2 does deliver uname in the new rtp model, - this file explicitly checked for some OS defines, adding there - the new rtp check was making it real complex, so added this new - define and set it in the appropriate config files. Also handle - some new processor architecture defines windows now has. - - * ace/OS_NS_sys_utsname.inl: - Removed this file, was empty - - * ace/Makefile.am: - Updated because of removed file - -Thu Jan 5 09:52:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - Improved rtp model support - -Wed Jan 4 21:25:11 UTC 2006 J.T. Conklin - - * ChangeLog: - - Changed "add-log-time-format" to a really ugly lambda expression - that formats changelog timestamps in UTC and works with both GNU - Emacs and XEmacs. - -Wed Jan 4 19:50:27 UTC 2006 Chad Elliott - - * bin/ChangeLogEditor/ChangeLogEntry.pm: - - Modified this to use UTC instead of local time. - -Wed Jan 4 18:44:12 UTC 2006 Johnny Willemsen - - * netsvcs/lib/Client_Logging_Handler.cpp: - Fixed 64bit conversion warning - -Wed Jan 4 11:04:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Generate LIBNAME and PRJ_TYPE, needed for VxWorks rtp support - -Wed Jan 4 10:49:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.2.h: - In rtp mode we can't access the WIND_TCB struct anymore, meaning - that the TSS emulation can't work anymore. - - * ace/OS_NS_Thread.{h,cpp,inl}: - Only call the native tss methods when they are available - -Wed Jan 4 09:39:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_time.h: - Added workaround for VxWorks 6.2 that defines timeval in time.h - - * ace/High_Res_Timer.cpp: - * ace/OS_NS_time.inl: - * ace/README: - * ace/Time_Value.inl: - Removed checks for !ACE_HAS_BROKEN_TIMESPEC_MEMBERS, this define - is not set in any config file, so zapped it - -Wed Jan 4 08:30:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.2.h: - Improved support for the diab compiler - - * ace/TTY_IO.cpp: - Only define the const char arrays when they are going to be - used. Fixes unused variable warnings with vxworks - - * ace/OS_NS_dlfcn.inl: - * ace/OS_NS_stropts.inl: - * ace/OS_NS_sys_socket.inl: - * ace/OS_NS_Thread.h: - * 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_stropts.h: - * ace/os_include/sys/os_socket.h: - * ace/os_include/sys/os_un.h: - Made VxWorks specific includes dependent on the VxWorks version. - VxWorks is getting more and more posix compliance which means we - don't have to include special VxWorks header files. Also use - ACE_VXWORKS to check for this - -Tue Jan 3 21:31:29 2006 J.T. Conklin - - * ChangeLog: - - Add "indent-tabs-mode: nil" to Local Variables at end of file. - Untabify. - Delete-trailing-whitespace. - -Tue Jan 3 14:26:12 UTC 2006 Johnny Willemsen - - * ace/ACE.cpp: - Don't use maxFiles with VxWorks 6.2 - -Tue Jan 3 13:03:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Renamed MAX_ARGS to ACE_MAX_ARGS because VxWorks 6.2 has also a - define MAX_ARGS - - * ace/config-vxworks6.2.h: - Updated based on first testing - - * ace/os_include/sys/os_select.h: - * ace/os_include/os_netdb.h: - * ace/os_include/os_signal.h: - * ace/os_include/os_unistd.h: - * ace/os_include/os_unistd.h: - * ace/OS_NS_unistd.inl: - Minor updated for vxworks 6.1 - -Mon Jan 2 10:56:57 2006 J.T. Conklin - - * ace/OS_NS_string.cpp: - - Fix conditionals around ACE_OS::strdup_emulation(const wchar*). - Remove code that was moved to ACE_OS::strdup(const wchar*). - -Mon Jan 2 18:58:12 UTC 2006 Johnny Willemsen - - * protocols/ace/RMCast/Protocol.h: - Initialise pointer with 0 - -Mon Jan 2 13:45:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Only use the spa methods in non rtp model - - * ace/os_include/sys/os_wait.h: - VxWorks 6.1 defines wait and waitpid in wait.h - -Mon Jan 2 12:32:12 UTC 2006 Johnny Willemsen - - * ace/os_include/os_stdio.h: - Added workaround for vxworks6.1 and rtp for cuserid - - * ace/os_include/os_time.h: - VxWorks 6.1 defines in kernel mode timeval in sys/times.h - - * ace/OS_NS_string.cpp: - Fixed compile error with Borland - - * ace/os_include/os_signal.h: - Don't include sigLib.h when building for rtp model - - * ace/OS_NS_Thread.{h,inl}: - Don't include special VxWorks header files when building for rtp - - * ace/Sock_Connect.cpp: - Made workaround for VxWorks dependent on version umber - -Mon Jan 2 12:04:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - * include/makeinclude/platform_vxworks6.1.GNU: - * bin/MakeProjectCreator/templates/gnu.mpd: - Made it possible to build for rtp and kernel mode - - * ace/config-vxworks6.1.h: - * ace/config-vxworks6.2.h: - Improved mapping - - * ace/Sock_Connect.cpp: - Reverted removal of VxWorks specific code, this is needed - for VxWorks 5.5, for 6 we have to develop a new section - - * ace/os_include/os_stdlib.h: - Only include envLib.h when not building for rtp - - * ace/os_include/os_dlfcn.h: - Only include specific VxWorks files when not building for rtp - -Sun Jan 1 00:00:00 2006 Douglas C. Schmidt - - * Happy New Year!!! - diff --git a/ACE/ChangeLogs/ChangeLog-06b b/ACE/ChangeLogs/ChangeLog-06b deleted file mode 100644 index 2212ce3f6f0..00000000000 --- a/ACE/ChangeLogs/ChangeLog-06b +++ /dev/null @@ -1,8927 +0,0 @@ -Fri Nov 17 07:06:10 UTC 2006 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added another RTScheduling example library project - -Fri Nov 17 06:47:10 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - Updated this file because tao_idl doesn't generate a S_T.inl - file anymore - -Thu Nov 16 20:38:10 UTC 2006 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added new RTScheduling example library projects to fix compile - errors in the msvc static builds - -Wed Nov 15 23:23:10 UTC 2006 J.T. Conklin - - * protocols/Makefile.am: - - Add lost support for --disable-ace-tests and --disable-ace-examples - -Wed Nov 15 21:55:01 UTC 2006 J.T. Conklin - - * ace/Makefile.am: - - Add OS.inl to nobase_include_HEADERS. - -Wed Nov 15 19:08:39 UTC 2006 J.T. Conklin - - * ace/config-lite.h: - - Changed to not include on Solaris systems - when using the stlport4 C++ library. - -Wed Nov 15 15:33:10 UTC 2006 J.T. Conklin - - * apps/JAWS/clients/Caching/caching.mpc: - - Add exename definition so that an executable, rather than - a shared library, is built. - -Wed Nov 15 10:35:00 UTC 2006 Simon Massey - - * NEWS: - - Added entry for Iliyan Jeliazkov. - -Wed Nov 15 01:56:28 UTC 2006 J.T. Conklin - - * protocols/ace/HTBP/Makefile.am: - * protocols/ace/RMCast/Makefile.am: - * protocols/ace/TMCast/Makefile.am: - - Change includedir to omit the "protocols" subdirectory. - - The header files for these libraries are intended to be - installed in ${prefix}/include/ace/{HTBP,RMCast,TMCast} - not ${prefix}/include/protocols/ace/{HTBP,RMCast,TMCast}. - -Wed Nov 15 01:11:02 UTC 2006 J.T. Conklin - - * ace/Makefile.am: - - Add Numeric_Limits.h to nobase_include_HEADERS. - -Tue Nov 14 18:42:18 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.inl: - * ace/Service_Gestalt.cpp: - - After a gestalt gets close()-ed it is still a valid instance - however, because it is disassociated from its service repository - the situation becomes another special case the gestalt - implementation must account for. This change is in addition to - the bug fix introduced with the change from "Thu Nov 9 20:07:42 - UTC 2006". - -Tue Nov 14 14:30:12 UTC 2006 Johnny Willemsen - - * ace/Select_Reactor_T.cpp: - Removed some not used macros that did cause problems when running - FOCUS - -Tue Nov 14 11:23:12 UTC 2006 Johnny Willemsen - - * ace/Timer_Queue_T.cpp: - Added hook for FOCUS, const improvement - -Tue Nov 14 07:56:12 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Updated rtems information - -Mon Nov 13 00:17:19 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp: - - Calling close() on a gestalt must not obliterate any static - service registrations. Those may still be needed if the gestalts - gets re-opened again, before its destructor runs. This change - fixes a problem (introduced with "Thu Nov 9 20:07:42 UTC 2006") - which broke this invariant. - -Sat Nov 11 18:37:12 UTC 2006 Chris Cleeland - - * ace/Service_Gestalt.cpp (find_processed_static_svc): - - Added a check at the beginning of this function that drops out - if processed_static_svcs_ or the arg is a zero pointer. This - gets ride of core dumps in scoreboard builds running tests like - some of the TAO EC tests (basically anything which has a static - service defined and expects to find it), but there is still the - more fundamental problem as to why the static services aren't - there in the first place. - -Fri Nov 10 22:30:12 UTC 2006 Martin Corino - - * include/makeinclude/platform_vxworks6.3.GNU: - - Fixes for VxWorks 6.3 PPC builds. - -Fri Nov 10 21:26:41 UTC 2006 Chris Cleeland - - * ace/OS_NS_Thread.h (THR_HAS_WTHREADS): - - Added THR_EXPLICIT_SCHED definition to ACE_HAS_WTHREADS clause - so that application-level code doesn't have to have #ifdefs to - figure out whether it's okay to use THR_EXPLICIT_SCHED. - - This change is part of a change to TAO from - Thu Nov 9 15:42:32 UTC 2006 Chris Cleeland - -Fri Nov 10 15:02:26 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.cpp (close): - - Removing a forgotten debug statetement. - -Fri Nov 10 13:42:12 UTC 2006 Martin Corino - - * bin/vx_repo_link.pl: - - New perl 'program' to handle link phase for VxWorks 5.5.x - builds using -frepo option. - - * include/makeinclude/platform_vxworks5.5.x.GNU: - * include/makeinclude/rules.lib.GNU: - - Changes to enable building ACE/TAO apps for VxWorks 5.5.x SIMNT - targets using -frepo option. - -Fri Nov 10 12:53:32 UTC 2006 William R. Otte - - * bin/make_release: - * docs/bczar/bczar.html: - - Minor update to bczar documentation to correct install paths, - minor bugfix to release script to correct PRF generation. - -Fri Nov 10 12:22:12 UTC 2006 Johnny Willemsen - - * ace/INET_Addr.cpp: - Fixed argument not used warnings in rtems no network build - -Fri Nov 10 10:06:12 UTC 2006 Johnny Willemsen - - * ace/Reactor_Impl.h: - * ace/Dev_Poll_Reactor.{h,cpp}: - * ace/Select_Reactor_T.{h,cpp}: - * ace/WFMO_Reactor.{h,inl}: - Changed initialized to return a bool, that is the type we store - as member. - -Fri Nov 10 10:03:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.cpp: - Const changes and use prefix operators instead of postfix - - * ace/Process.cpp: - Use prefix increment instead of postfix - - * ace/Reactor.cpp (timer_queue): - No need to use an intermediate variable - -Fri Nov 10 05:47:15 UTC 2006 William R. Otte - - * docs/bczar/bczar.html - - Updates to release script documentation. - -Thu Nov 9 20:07:42 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.cpp: - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.cpp: - - A follow up to my change from "Wed Nov 8 22:12:46". Adding the - close_svcs() call in ACE_Service_Config::close() ensured that - the repository and its contents gets properly finalized, but it - did not account for the potential subsequent re-opening of the - Service Config. This causes failures in open/close/open - scenarios, like Framework_Component_Test. - -Thu Nov 9 19:59:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_aix4_cset++.GNU: - * include/makeinclude/platform_integrity_ghs.GNU: - * include/makeinclude/platform_irix6.x_sgic++.GNU: - * include/makeinclude/platform_linux_pgi.GNU: - * include/makeinclude/platform_macosx_panther.GNU: - * include/makeinclude/platform_macosx_tiger.GNU: - * include/makeinclude/platform_netbsd.GNU: - * include/makeinclude/platform_openbsd.GNU: - * include/makeinclude/platform_osf1_4.x_rcc.GNU: - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - Simplified these files using the ?= operator - -Thu Nov 09 16:10:10 UTC 2006 Martin Corino - - * ace/Service_Config.cpp: - - Reverted my earlier change of Nov 6 and additionally removed - the ACE_Reactor::instance() call from the ACE_Service_Config - CTOR since it seems to be unnecessary here. - -Thu Nov 9 15:22:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Default threads to 1 if not set, thanks to Chad for helping out - with finding out why I had a problem in the rtems build - -Thu Nov 9 12:46:54 UTC 2006 J.T. Conklin - - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/taodefaults.mpb: - - Add automake specific section to subtract out $(ACE_ROOT)/lib - from libpaths, as libraries are not copied to, or linked from, - there in automake builds. This removes unnecessary -L's from - being added to *_LDFLAGS, sometimes eliminating the need for - that automake variable altogether. - -Thu Nov 9 10:48:52 UTC 2006 Olli Savia - - * examples/IPC_SAP/DEV_SAP/reader/reader.cpp: - * examples/IPC_SAP/DEV_SAP/writer/writer.cpp: - Changed used baudrate to 19200. Extended reader example to handle - timeout. - -Thu Nov 9 10:50:12 UTC 2006 Johnny Willemsen - - * ace/Timer_Heap_T.{h,cpp}: - Changed the preallocated constructor from int to bool. - -Thu Nov 9 09:25:48 UTC 2006 Olli Savia - - * ace/TTY_IO.cpp: - Removed LynxOS 3.x specific workaround. - -Wed Nov 8 22:22:27 UTC 2006 Steve Huston - - * bin/make_release: Re-applied this: - Sat Oct 28 20:10:42 UTC 2006 Steve Huston - -Wed Nov 8 22:12:46 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.cpp: - * ace/Service_Gestalt.cpp: - - This resolves a problem with shutting down the Service - Configurator via the static ACE_Service_Config::close () method, - where the registered services' fini() methods were not being - called. For full details, see bugzilla# 2701. Thanks to Aaron - Scamehorn for discovering - it an providing a test case. - -Wed Nov 8 19:21:17 UTC 2006 William R. Otte - - * bin/make_release: - - Updates to the release script to work with Subversion. - -Mon Nov 6 16:07:43 UTC 2006 Douglas C. Schmidt - - * ace/SOCK_IO.h (ACE_SOCK_IO): Clarified the behavior of - non-blocking I/O. Thanks to Robert Neumann for motivating this change. - -Tue Nov 08 15:40:10 UTC 2006 Martin Corino - - * ace/INET_Addr.inl: - - Enhanced operator <() to support IPv6 addresses as well. - Thanks to Andre Kostur (akostur at incognito dot com) for - submitting a patch for this. - -Wed Nov 8 14:24:02 UTC 2006 J.T. Conklin - - * configure.ac: - - Change ACE_LACKS_NET_IF_H feature test to #include - (if present). - -Wed Nov 8 13:45:07 UTC 2006 Chad Elliott - - * examples/C++NPv2/C++NPv2.mpc: - - The AC_CLD project requires threads in order to build and run - correctly. - -Tue Nov 07 15:49:10 UTC 2006 Martin Corino - - * ace/OS_NS_netdb.inl: - - Changes to accomodate VxWorks 6.x versions of gethostbyname and - gethostbyaddr. These are threadsafe as the x_r versions are but - require deallocating the returned hostent structure. - -Tue Nov 7 15:44:12 UTC 2006 Johnny Willemsen - - * ace/Sock_Connect.cpp: - With VxWorks 6.3 in rtp mode with IPv6 enabled declare the - in6addr_ constants explicitly, these are exported by the - VxWorks 6.3 rtp header files but not implemented - -Tue Nov 07 13:31:10 UTC 2006 Martin Corino - - * include/makeinclude/platform_vxworks6.3.GNU: - - Fixed build settings for PPC32 builds with softfloat. - -Tue Nov 7 10:38:25 UTC 2006 Simon McQueen - - * tests/Naming_Test.cpp: - - Moved an ::open out of an ACE_ASSERT. It wasn't getting performed on - some builds. - -Tue Nov 7 09:56:12 UTC 2006 Johnny Willemsen - - * performance-tests/Misc/basic_func.{h,cpp}: - Renamed B to BB to resolve compile problems on rtems where we - have also a typedef B - -Tue Nov 7 07:52:12 UTC 2006 Johnny Willemsen - - * ace/ACE.h: - Also rtems defines log2, use the same workaround as with cygwin - - * include/makeinclude/platform_rtems.x_g++.GNU: - Removed -ansi - -Tue Nov 7 01:47:46 UTC 2006 Phil Mesnier - - * ace/Sock_Connect.cpp (count_interfaces): - Another scoreboard fix. - -Mon Nov 6 20:52:12 UTC 2006 Johnny Willemsen - - * apps/Gateway/Gateway/Config_Files.{h,cpp}: - * apps/Gateway/Gateway/File_Parser.{h,cpp}: - * apps/Gateway/Gateway/Gateway.cpp: - Renamed class FP to FPRT. This resolves the compile errors on - rtems where a struct FP does exist - -Mon Nov 6 16:52:14 UTC 2006 Phil Mesnier - - * ace/Sock_Connect.cpp: - My fix for Solaris x86 broke HPUX. The trouble is that the - method ACE::count_interfaces() is only used by the "generic" - implementation of get_ip_interfaces(). Probably a better - solution is to remove count_interfaces() and move its - functionality into the get_ip_interfaces() implementation, but - that is a bigger change than I care to make at the moment. I - think it should be possible to do so in a way that also reduces - the footprint and improves performance by eliminating the - effectively duplicated code in count_interfaces(). - -Mon Nov 06 14:14:10 UTC 2006 Martin Corino - - * ace/config-vxworks6.3.h: - - Fixed incorrect definition of IOV_MAX. - -Mon Nov 6 13:08:12 UTC 2006 Johnny Willemsen - - * ace/config-sunos5.5.h: - Added ACE_HAS_GETRUSAGE, thanks to Michael Klein - for reporting that SunOS has - this method, fixes bugzilla 2694. - -Mon Nov 6 12:59:12 UTC 2006 Johnny Willemsen - - * examples/Service_Configurator/Misc/main.cpp: - * examples/Service_Configurator/Misc/Service_Configurator_Misc.mpc: - * examples/Service_Configurator/Misc/svc.conf1 - Fixed shared library name, make working for embedded platforms. - Thanks to Abdul Sowayan - for reporting this, fixes bugzilla bug 2698 - -Mon Nov 06 11:17:10 UTC 2006 Martin Corino - - * ace/Service_Config.cpp: - - Implemented a fix for runtime problems in case - ACE_HAS_NONSTATIC_OBJECT_MANAGER is defined (seen on VxWorks 6.3 RTP). - -Sun Nov 5 14:14:51 UTC 2006 Phil Mesnier - - * ace/Sock_Connect.cpp: - Fix for Solaris x86. - -Sat Nov 4 12:46:12 UTC 2006 Johnny Willemsen - - * ace/config-sunos4*.h: - Removed these files, these are ancient and not supported anymore - -Fri Nov 3 18:12:36 UTC 2006 Douglas C. Schmidt - - * tests/Unload_libACE.cpp (main): Reverted the ACE_OS::exit() from - this since it's not supposed to be an ACE test. Thanks to Simon - Massey for reporting this. - -Fri Nov 03 15:52:10 UTC 2006 Martin Corino - - * bin/PerlACE/ProcessVX_Unix.pm: - - Bugfix in cmdline composition. - -Fri Nov 3 15:15:43 UTC 2006 Phil Mesnier - - * ace/Sock_Connect.cpp: - Scoreboard cleanup. - -Fri Nov 03 10:54:10 UTC 2006 Martin Corino - - * ace/OS_NS_sys_time.inl: - - Fixed conversion warning on OpenVMS. - -Fri Nov 3 00:39:04 UTC 2006 Phil Mesnier - - * ace/Sock_Connect.cpp: - One more optimization, this one to combine the methods for - evaluating the IPv6 or IPv4 enabled status. - -Fri Nov 3 00:32:27 UTC 2006 Phil Mesnier - - * ace/Select_Reactor_Base.inl: - * ace/Select_Reactor_Base.cpp: - Additional optimization for finding and unbinding event - handlers. The solution moves the test for handles in range into - the top-level find and unbind methods to allow the fix for bug - 2653 to continue to work in unbind while avoiding a double check - for handles in range during a find. - -Thu Nov 2 20:33:55 UTC 2006 Douglas C. Schmidt - - * tests/SOCK_Test_IPv6.cpp (spawn): - * tests/Pipe_Test.cpp (run_main): - * tests/SPIPE_Test.cpp (client): - * tests/TkReactor_Test.cpp (run_main): - * tests/MT_SOCK_Test.cpp (spawn): - * tests/Process_Strategy_Test.cpp (run_main): - * tests/Unload_libACE.cpp (main): - * tests/SOCK_Test.cpp (spawn): - * tests/Priority_Reactor_Test.cpp (run_main): - * tests/SOCK_Dgram_Test.cpp (spawn): - * tests/SOCK_SEQPACK_SCTP_Test.cpp (spawn_test): - * examples/Map_Manager/test_hash_map_manager.cpp (ACE_TMAIN): - * apps/mkcsregdb/mkcsregdb.cpp (fail): Replaced exit() with - ACE_OS::exit(). - -Wed Nov 01 20:04:00 US Central Time 2006 Douglas C. Schmidt - - * Bronson Royce Schmidt checked in at 7 pounds, 15 ounces and - 21.25 inches long. - -Thu Nov 2 16:10:10 UTC 2006 Phil Mesnier - - * ace/Sock_Connect.cpp: - Cleaned up debugging code left in my previous premature commit. - -Thu Nov 2 15:42:29 UTC 2006 Phil Mesnier - - * ace/Sock_Connect.cpp: - * ace/Sock_Connect.h: - Added support for IPv6 detection on HPUX, AIX, Solaris, WinCE, - and VxWorks 5.5.x. - -Wed Nov 01 09:05:10 UTC 2006 Martin Corino - - * ace/OS_NS_stdlib.inl: - - Fixed conversion warnings in atop() on OpenVMS. - -Wed Nov 01 08:35:10 UTC 2006 Martin Corino - - * ace/OS_NS_sys_stat.h: - - Fixed Borland compile failure over def of ACE_Stat. - -Tue Oct 31 23:08:32 UTC 2006 Steve Huston - - * ace/Dev_Poll_Reactor.h: Note that the Linux epoll code implementation - is supported, but the /dev/poll implementation is still - experimental. - -Tue Oct 31 10:31:10 UTC 2006 Ossama Othman - - * ace/OS_NS_sys_stat.h (ACE_WSTAT_FUNC_NAME): - - Corrected wstat() function name for Borland. - -Mon Oct 30 19:57:20 UTC 2006 Jeff Parsons - - * bin/ciao_tests.lst: - - Added run_test.pl in CIAO/tests/IDL3/Events/Any to the list of - CIAO tests to be run automatically. - -Mon Oct 30 17:34:35 UTC 2006 Ossama Othman - - * ace/config-win32-common.h: - - Use 64-bit file offsets by default in the WIN64 case, similar to - what 64-bit UNIX systems do. - -Mon Oct 30 17:23:15 UTC 2006 Steve Huston - - * include/makeinclude/wrapper_macros.GNU: Added 2 new build options, - dmalloc and mtrace. When specified at build time (e.g. make mtrace=1) - the PLATFORM_DMALLOC_CPPFLAGS and/or PLATFORM_MTRACE_CPPFLAGS values - are added to CPPFLAGS. For dmalloc, the PLATFORM_DMALLOC_LDFLAGS and - PLATFORM_DMALLOC_LIBS are added to LDFLAGS and LIBS, respectively. - Also added the ability to specify additional purify and quantify - command-line options by setting PLATFORM_PURIFY_OPTIONS and - PLATFORM_QUANTIFY_OPTIONS, respectively. Thank you to Howard - Finer for supplying these additions. - -Mon Oct 30 16:56:28 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - The implementation for the 'targetoutdir' template variable was - incorrect. Libraries and executables were not symbolically linked - to the output location correctly. Also, 'targetoutdir' was not - taken into account for the 'libpaths' setting. - -Mon Oct 30 15:30:47 UTC 2006 Simon McQueen - - * bin/tao_orb_tests.lst: - - Scheduled regression test for bug #2669. - -Mon Oct 30 14:31:42 UTC 2006 Phil Mesnier - - * ace/Select_Reactor_Base.inl: - Reverting the functional part of my previous commit until I - learn the correct way to manage the upper bound test portably. - - * bin/tao_orb_tests.lst: - Make the Bug 2654 test be ignored for minimum CORBA builds. - -Mon Oct 30 12:18:03 UTC 2006 Phil Mesnier - - * ace/Select_Reactor_Base.inl (unbind): - Added an additional validity check and a comment to ward off - future optimizations. - -Mon Oct 30 09:24:42 UTC 2006 Ossama Othman - - * ace/OS_NS_sys_stat.h (ACE_stat): - * ace/OS_NS_sys_stat.inl (stat, wstat): - - Only use Windows 64-bit stat structures and functions when - _FILE_OFFSET_BITS=64 is defined. Addresses 64-bit conversion - warnings. - -Sun Oct 30 05:31:01 UTC 2006 Ossama Othman - - * ace/Auto_Ptr.h (ACE_auto_ptr_reset): - - Adjusted function template arguments to handle case where the - auto_ptr element type and pointer type passed to this function - are not the same. Addresses argument deduction failures. - - * ace/FILE.h (ACE_FILE): - - 64-bit file offset fixes. s/off_t/ACE_OFF_T. - - * ace/Truncate.h (Truncator): - - Added explicit specializations for int and long for Borland. - Relying on ACE_{U}INT32 specializations is not sufficient. - - * tests/CDR_File_Test.cpp (run_test): - - A 64-bit file offset is not always enabled. Corrected offset - type. s/ACE_LOFF_T/ACE_OFF_T. - -Sun Oct 29 17:10:39 UTC 2006 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added Bug 2654 regression test to suite. - -Sat Oct 28 20:50:56 UTC 2006 Steve Huston - - * examples/Threads/thread_specific.cpp: Need to reinterpret_cast a - pointer back to an intptr_t. - -Sat Oct 28 20:10:42 UTC 2006 Steve Huston - - * bin/make_release: Added Smartphone configurations to the WinCE - project files generated at release time. - -Sat Oct 28 13:50:01 UTC 2006 Phil Mesnier - - * ace/Select_Reactor_Base.cpp: - - Fix to address Win32-specific problems in bug 2653 fix. - -Sat Oct 28 01:48:27 UTC 2006 Steve Huston - - * include/makeinclude/wrapper_macros.GNU: Add -L$(INSLIB) to LDFLAGS - if it was not there already. Allows link to work when built libraries - are moved to locations other than the default $(ACE_ROOT)/lib - location. - -Fri Oct 28 03:23:18 UTC 2006 Ossama Othman - - * apps/JAWS2/JAWS/FILE.cpp: - * apps/JAWS2/JAWS/FILE.h: - * apps/JAWS2/JAWS/IO.cpp: - * apps/JAWS3/jaws3/FILE.cpp: - * apps/JAWS3/jaws3/FILE.h: - * examples/Threads/thread_manager.cpp: - * examples/Threads/cancel.cpp: - * examples/Threads/thread_specific.cpp: - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/Benchmark_Performance.cpp - Addressed 64-bit conversion warnings. - -Fri Oct 28 02:49:11 UTC 2006 Ossama Othman - - * examples/APG/Shared_Memory/Mem_Map.cpp: - * examples/Mem_Map/file-reverse/file-reverse.cpp: - * examples/Web_Crawler/Mem_Map_Stream.cpp: - - Addressed 64-bit conversion warnings. - -Fri Oct 27 21:41:25 UTC 2006 Phil Mesnier - - * THANKS: - * ace/Select_Reactor_Base.inl: - * ace/Select_Reactor_Base.cpp: - * ace/TP_Reactor.inl: - * ace/TP_Reactor.cpp: - * tests/run_test.lst: - - The fix for bug 2653. Thanks to Scott Mitchell and Chris Reed for the - considerable effort they put in helping to isolate this problem. - -Fri Oct 27 21:28:36 UTC 2006 Phil Mesnier - - * tests/Bug_2653_Regression_Test.cpp: - * tests/tests.mpc: - - Added a new regression test. Without the accompaning fix, the - test coredump. If you comment out the call to test_for_crash, - the test will spin madly for 5 seconds, then abort. With the - pending fix to the TP reactor, the test has no errors. - -Fri Oct 27 19:48:23 UTC 2006 Ossama Othman - - * ace/Filecache.cpp (ACE_Filecache_Object): - - Cast -1 to size_t. Ugly (and works), but currently necessary. - Addresses "passing negative value" warnings. - -Fri Oct 27 19:28:16 UTC 2006 Ossama Othman - - * ace/OS_NS_stdio.inl (flock_adjust_params): - * ace/OS_NS_sys_stat.inl (filesize): - - Fixed comparison of signed/unsigned warnings. - -Fri Oct 27 09:25:12 UTC 2006 Johnny Willemsen - - * ace/Configuration_Import_Export.cpp: - Explicitly initialise pointer to 0 to silence warning in - gcc cygwi build - -Fri Oct 27 01:58:09 UTC 2006 Ossama Othman - - From Russell Mora - * ace/ACE.cpp: - * ace/ACE.h: - * ace/FILE.cpp: - * ace/File_Lock.h: - * ace/File_Lock.inl: - * ace/Filecache.cpp: - * ace/Filecache.h: - * ace/Local_Memory_Pool.cpp: - * ace/MEM_Acceptor.h: - * ace/MEM_Acceptor.inl: - * ace/MEM_IO.cpp: - * ace/MEM_IO.inl: - * ace/MEM_IO.h: - * ace/MMAP_Memory_Pool.cpp: - * ace/MMAP_Memory_Pool.h: - * ace/Mem_Map.cpp: - * ace/Mem_Map.h: - * ace/Mem_Map.inl: - * ace/OS_NS_macros.h: - * ace/OS_NS_stdio.cpp: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_stdio.h: - * ace/OS_NS_sys_mman.h: - * ace/OS_NS_sys_mman.inl: - * ace/OS_NS_sys_stat.h: - * ace/OS_NS_sys_stat.inl: - * ace/OS_NS_unistd.cpp: - * ace/OS_NS_unistd.inl: - * ace/OS_NS_unistd.h: - * ace/Pagefile_Memory_Pool.inl: - * ace/Shared_Memory_MM.cpp: - * ace/Shared_Memory_MM.h: - * ace/Shared_Memory_MM.inl: - * ace/Shared_Memory_Pool.cpp: - * ace/Shared_Memory_Pool.h: - * ace/os_include/sys/os_types.h: - * ace/os_include/sys/os_stat.h: - * ace/os_include/os_unistd.h: - * examples/Web_Crawler/Iterators.cpp: - * examples/Web_Crawler/Mem_Map_Stream.cpp: - * examples/Web_Crawler/Mem_Map_Stream.h: - * examples/IPC_SAP/FILE_SAP/client.cpp: - - Added support for 64-bit file offsets on 32-bit platforms that - support the _FILE_OFFSET_BITS preprocessor symbol, as well as - Windows. Enable by defining the _FILE_OFFSET_BITS=64 - preprocessor symbol. ACE provides the necessary support on - Windows when it is defined with the assistance of a new - ACE_OFF_T typedef. - -Thu Oct 26 24:44:55 UTC 2006 Ossama Othman - - * ace/Truncate.h (Truncator): - - Removed ACE_Export macros in the Borland case. They shouldn't - be necessary. - -Thu Oct 26 14:05:12 UTC 2006 Johnny Willemsen - - * bin/tao_other_tests.lst: - Added orbsvcs/tests/Event/UDP test which tests the rtec - udp federation - -Thu Oct 26 11:19:45 UTC 2006 Olli Savia - - * ace/config-lynxos.h: - Added include "ace/config-posix.h" and removed defines - that are already defined by config-posix.h. - -Thu Oct 26 10:29:49 UTC 2006 Olli Savia - - * ace/config-posix.h: - Removed duplicate check of _POSIX_MESSAGE_PASSING. - -Thu Oct 26 07:48:12 UTC 2006 Johnny Willemsen - - * ace/Truncate.h: - - Added partial specialization for when types are the same, fixes - compile problems in the ACE lib with Borland - -Thu Oct 26 07:01:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Added ACE_LACKS_INTPTR_T, VxWorks 5.5.x seems not to deliver this - type - -Thu Oct 26 00:31:56 UTC 2006 Ossama Othman - - * ace/Auto_Ptr.h: - - Added missing "element_type" typedef. - - (ACE_auto_ptr_reset): - - Introduced this new function template to simplify the - ACE_AUTO_PTR_RESET macro implementation, to support - ACE's other auto_ptr-like class templates - (e.g. ACE_Auto_Array_Ptr<>), and to make auto_ptr - reset() operations convenient and easy for those needing the - ACE_AUTO_PTR_RESET functionality to. Users now need only - perform a call like: - - ACE_auto_ptr_reset (my_auto_ptr_instance, new foo); - - Note that ACE_AUTO_PTR_RESET support for ACE's other - auto_ptr-like classes isn't strictly necessary since they all - support the reset() method. - - Addresses build failures on platforms that define - ACE_LACKS_AUTO_PTR_RESET and in code that expects to use - ACE_AUTO_PTR_RESET on ACE_Auto_{Basic_}_Array<> instances. - -Wed Oct 25 22:42:03 UTC 2006 Ossama Othman - - * tests/Integer_Truncate_Test.cpp: - - Remove "const" qualifiers from types used in - ACE_Utils::Truncate<>() function template parameters that are - deduced using argument dependent lookup. Borland appears to get - confused, and can't find the non-const template parameter - Truncate<>() specializations. - -Wed Oct 25 20:17:13 UTC 2006 Ossama Othman - - * ace/Hash_Map_Manager_T.inl (ACE_Hash_Map_Iterator_Base_Ex): - - Removed commented ACE_TRACE macro entirely. Fuzz parses - commented out code, and still incorrectly reports an ACE_TRACE - mismatch. - - * ace/Truncate.h: - - Yet another attempt at placating Borland C++. Removed the - partial specialization for truncating values of the same type. - Typedefed the underlying Truncator structure template to further - simplify the function call. - -Wed Oct 25 18:31:47 UTC 2006 Ossama Othman - - * examples/C++NPv1/Reactive_Logging_Server.h: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - - Include "ace/Basic_Types.h" to pull in intptr_t typedef. - -Wed Oct 25 15:05:42 UTC 2006 Steve Huston - - * ace/OS_NS_stdlib.inl (atop): s/intptr/intptr_t/ in ACE_WIN64 case. - -Wed Oct 25 09:47:12 UTC 2006 Johnny Willemsen - - * ace/SOCK_Dgram.cpp: - Fixed compile error in non win32 part - -Wed Oct 25 09:24:12 UTC 2006 Johnny Willemsen - - * ace/ace_for_tao.mpc: - Added Rtems_init.c, for rtems without network support we - also use the ace_for_tao base project - -Wed Oct 25 08:38:12 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - * ace/OS_NS_netdb.inl: - Added ACE_LACKS_GETHOSTBYADDR_R - -Wed Oct 25 08:11:12 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - * ace/OS_NS_sys_socket.inl: - Added ACE_LACKS_GETSOCKOPT, ACE_LACKS_RECV, ACE_LACKS_SEND, - and ACE_LACKS_SENDTO - -Wed Oct 25 08:04:12 UTC 2006 Johnny Willemsen - - * tests/Priority_Buffer_Test.cpp: - Fixed compile problem with gcc 2.96 - -Wed Oct 25 07:58:12 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - * ace/OS_NS_sys_socket.inl: - Added ACE_LACKS_ACCEPT, ACE_LACKS_CONNECT, ACE_LACKS_GETPEERNAME, - ACE_LACKS_GETSOCKNAME - -Wed Oct 25 06:30:12 UTC 2006 Johnny Willemsen - - * ace/TTY_IO.cpp: - Fixed compile error on Vxworks - -Tue Oct 24 23:53:08 UTC 2006 Steve Huston - - * ace/config-aix-4.x.h: Changed ACE_HAS_PTHREAD_CONTINUE to - ACE_HAS_PTHREAD_CONTINUE_NP and ACE_HAS_PTHREAD_SUSPEND to - ACE_HAS_PTHREAD_SUSPEND_NP. The non-_NP varieties return ENOTSUP; - the _NP varieties are the only documented APIs through AIX 5.3. - Thanks to Guy Peleg for raising this issue. - - * tests/Thread_Manager_Test.cpp: Altered the suspend/resume tests to - only allow ENOTSUP as a legit result if the config.h file does not - include ACE_HAS_... settings that indicate it should work. - -Tue Oct 24 23:59:10 UTC 2006 Ossama othman - - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.inl - (init): - * examples/Shared_Malloc/test_position_independent_malloc.cpp - (parse_args): - - Use intptr_t instead of int when casting to void*. Addresses - "sizes do not match" warnings in 64-bit Intel compiler builds. - -Tue Oct 24 23:49:25 UTC 2006 Ossama Othman - - * ace/Hash_Map_Manager_T.inl (ACE_Hash_Map_Iterator_Base_Ex): - - Commented out use of ACE_TRACE macro. The regular expression in - the bin/fuzz.pl script used to detect ACE_TRACE mismatch - incorrectly identifies a mismatch the ACE_TRACE question. Once - the fuzz script is fixed, the ACE_TRACE can be uncommented. - -Tue Oct 24 22:20:38 UTC 2006 Ossama Othman - - * ace/Truncate.h: - - Rename truncate to trunc. Yet another attempt at fixing Borland - compiler brain damage. - -Tue Oct 24 22:01:41 UTC 2006 Ossama Othman - - * ace/OS_NS_stdlib.inl (atop): - - Use intptr_t type to fix 64-bit conversion to void* warnings. - - * ace/Select_Reactor_Base.h (max_handlep1): - * ace/Select_Reactor_Base.inl (max_handlep1): - - Changed return type to be ACE_HANDLE on UNIX platforms instead - of size_t. Addresses "loss of significant bits" warnings in - 64-bit Intel compiler builds. - - * ace/Select_Reactor_Base.cpp (dump): - - Corrected format specifiers for Windows configuration. - - * ace/Select_Reactor_T.cpp (work_pending): - (wait_for_multiple_events): - - Removed unnecessary casts and corrected type of "width" variable - that is passed to select(). - - * tests/Map_Manager_Test.cpp (test_cache_map_manager): - - Fixed "might be used uninitialized" warning. - -Tue Oct 24 17:46:40 UTC 2006 Ossama Othman - - * ace/Truncate.h (Truncator): - - Export the Borland-specific specializations from the DLL. This - should address the "undefined symbol" link-time problem. - - * bin/MakeProjectCreator/config/acexml.mpb: - - Re-disabled ACEXML when ace_for_tao is enabled. ACEXML needs - the ACE_Configuration and memory map classes that are not found - in the ace_for_tao subset. - -Tue Oct 24 14:44:09 UTC 2006 Olli Savia - - * ace/TTY_IO.cpp: - - Changed the default constructor to always initialise member - variables regardless of ACE_HAS_TERMIOS or ACE_HAS_TERMIO setting. - -Tue Oct 24 14:16:12 UTC 2006 Johnny Willemsen - - * ace/ACE.cpp: - Use some bools instead of int - - * ace/INET_Addr.cpp (set_port_number): - Added check for ACE_LACKS_HTONS - - * ace/INET_Addr.inl (get_port_number): - Added check for ACE_LACKS_NTOHS - -Tue Oct 24 13:54:12 UTC 2006 Johnny Willemsen - - * ace/os_include/netinet/os_in.h: - * ace/config-rtems.h: - Added ACE_LACKS_IP_MREQ - - * ace/INET_Addr.cpp (get_port_number_from_name): - Added ACE_LACKS_HTONS check - -Tue Oct 24 13:27:12 UTC 2006 Johnny Willemsen - - * ace/Reactor.h: - Added an include of Time_Value.h, this is included implicitly - but this implicit include is not there when using FOCUS with - tp-reactor specialization - -Tue Oct 24 13:09:12 UTC 2006 Johnny Willemsen - - * ace/Sock_Connect.cpp: - * ace/config-rtems.h: - Added ACE_LACKS_GET_BCAST_ADDR - -Tue Oct 24 13:00:12 UTC 2006 Johnny Willemsen - - * ace/os_include/os_socket.h: - * ace/config-rtems.h: - Added ACE_LACKS_SOCKADDR - -Tue Oct 24 12:54:12 UTC 2006 Johnny Willemsen - - * ace/os_include/os_netdb.h: - * ace/config-rtems.h: - Added ACE_LACKS_HOSTENT - -Tue Oct 24 12:09:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_arpa_inet.inl: - * ace/config-rtems.h: - Added ACE_LACKS_INET_ADDR and ACE_LACKS_INET_NTOA - -Tue Oct 24 12:00:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - Define MSG_OOB when it is not defined - -Tue Oct 24 11:17:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_socket.inl: - * ace/config-rtems.h: - Added ACE_LACKS_SOCKET, ACE_LACKS_SHUTDOWN and ACE_LACKS_SETSOCKOPT - -Tue Oct 24 11:08:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_select.inl: - * ace/config-rtems.h: - Added ACE_LACKS_SELECT - -Tue Oct 24 10:58:12 UTC 2006 Johnny Willemsen - - * ace/os_include/netinet/os_in.h: - * ace/config-rtems.h: - Added ACE_LACKS_IN_ADDR and ACE_LACKS_SOCKADDR_IN - -Tue Oct 24 06:31:05 UTC 2006 Ossama Othman - - * ace/Numeric_Limits.h (ACE_Numeric_Limits): - - Added missing "char" specialization for the - ACE_LACKS_NUMERIC_LIMITS case. The "signed char" and - "unsigned char" specializations are not always suitable. - -Tue Oct 24 04:04:26 UTC 2006 Ossama Othman - - * ace/Hash_Map_Manager_T.h (lock_): - - Placed "mutable" keyword to beginning of declaration. It is a - storage class specifier, not a CV qualifier, and belongs at the - beginning. Addresses g++ warnings. - - * ace/Sock_Connect.cpp (get_fqdn): - - Addressed "might be used uninitialized warnings. - -Mon Oct 23 02:28:42 UTC 2006 Ossama Othman - - * ace/Array_Base.cpp: - * ace/Array_Base.h: - * ace/Array_Base.inl: - - Added STL-style traits, iterators and swap() method. - - (operator=): - - Improved exception-safety. - - * ace/Array_Map.h: - * ace/config-lite.h: - - Moved reverse_iterator declarations to a new - ACE_DECLARE_STL_REVERSE_ITERATORS so that other ACE containers - may use them in a way that minimizes platform-specific - declaration duplication. - - * ace/CDR_Stream.cpp (read_boolean_array): - - Addressed a Coverity CHECKED_RETURN error. There's no need to - check the return value of read_boolean() in this case. - Explicitly cast the return value to "void". - - Addressed Coverity DEADCODE error. No need to check for zero - "cont" pointer since the ACE_NEW_RETURN() call that initializes - it will return immediately. "cont" cannot be zero if the latter - call succeeds. - - * ace/CDR_Stream.inl (operator>>): - - Explicitly check return value of input stream read operations. - Addressed a Coverity CHECKED_RETURN errors. - - * ace/Configuration.cpp (new_section): - - Fixed Coverity USE_AFTER_FREE error. Memory was being accessed - after it was freed. - - * ace/Configuration_Import_Export.cpp: - - Addressed Coverity RESOURCE_LEAK errors. - - * ace/Default_Constants.h (ACE_DEFAULT_CLOSE_ALL_HANDLES): - - This symbol represents a boolean value. s/1/true. - - * ace/Dev_Poll_Reactor.cpp (bind): - * ace/WFMO_Reactor.cpp (bind_i): - - Disallow binding of a nil event handler pointer to the - repository. It is deferenced later on this method. - - * ace/Hash_Map_Manager_T.h: - * ace/Hash_Map_Manager_T.inl: - - Added STL-style traits and iterator accessors. - - (find): - - New method that returns an iterator as an "out" parameter. An - iterator return value could not be used due a conflict with an - existing find() method. - - (unbind): - - New method that unbinds the value pointed to by the given - iterator. - - (ACE_Hash_Map_Iterator_Base_Ex, ACE_Hash_Map_Iterator_Ex): - - New constructors that position the iterator at the given - ACE_Hash_Map_Entry. - - * ace/Lib_Find.cpp (ldfind): - - Place parentheses around ternary operator "?:" conditional to - address an operator precedence problem. In this case, an - expression such as "a + b ? 0 : 1" was used, which is equivalent - to "(a + b) ? 0 : 1" instead of the desired "a + (b ? 0 : 1)". - - Changed local variable name from "got_suffix" to "has_suffix" to - clarify how the variable is being used. - - * ace/OS_NS_Thread.inl (rw_unlock): - - Fixed potential deadlock in case where reference count is one. - Addresses a Coverity DEADLOCK error. - - * ace/OS_NS_dirent.cpp (scandir_emulation): - - Fixed potential dereferencing of zero pointer reported by the - Coverity FORWARD_NULL checker. - - * ace/OS_NS_fcntl.cpp (open): - - Return if SetFilePointer() call fails. Addresses Coverity - CHECKED_RETURN error. - - Added support for large files SetFilePointer() calls. Thanks to - Russell Mora for this fix. - - * ace/OS_NS_stdio.cpp (fopen): - - Fixed potential crash if null mode string is passed to this - method. - - * ace/OS_NS_stdio.inl (fdopen): - * ace/OS_NS_unistd.inl (isatty): - - No need to check for ACE_LACKS_INTPTR_T. Just use intptr_t in - all cases. ACE now supplies this typedef if the platform - doesn't. - - * ace/OS_TLI.h (t_bind): - * ace/OS_TLI.inl (t_bind): - - Work around HP aCC 3.63 namespace scoping problem using typedef - hack in use for other structures. - - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_Base.inl: - - Changed underlying event handler container from a simple array - to an ACE_Hash_Map_Manager<> on Windows, and to an - ACE_Array_Base<> on UNIX-like platforms. - - Use of an ACE_Hash_Map_Manager<> on Windows allows for faster - event handler searches. - - Use of an ACE_Array_Base<> on UNIX-like platforms allows us to - leverage advantages using a container (improved - exception-safety, container interface, etc), while still - retaining the direct file descriptor to event handler mapping at - essentially no cost to footprint relative to the previous - implementation. - - (bind): - - Disallow binding of a nil event handler pointer to the - repository. It is deferenced later on this method. Addresses a - potential crash. - - * ace/Service_Config.cpp (current): - - Simplified these methods. - - Removed global lock that was held when accessing TSS. Only - initialization of global implementation needs to synchronized - with that lock. - - Removed redundant accesses to TSS. - - * ace/Service_Config.h: - - Removed stray semi-colon. - - (impl_): - - This method no longer needs to return the pointer by reference. - - * ace/Service_Repository.cpp: - - Changed loop index type so that it matches repository size type - (an unsigned integer), and updated loop decrement to take into - account the index type is now unsigned. - - * ace/Sock_Connect.h (ipv4_enabled): - * ace/Sock_Connect.cpp (ipv4_enabled): - - New run-time check for existence IPv4 stack. Some hosts only - contain IPv6 stacks. - - From Sriram Chandramouli - (get_fqdn): - - New method that retrieves fully qualified domain. getaddrinfo() - doesn't always provide the desired results. - - * ace/Svc_Conf.y (ace_get_module): - * ace/Svc_Conf_y.cpp (ace_get_module): - - Simplified explicit casts. - - Prevent dereferencing of potentially null pointer. - - * ace/System_Time.cpp: - * ace/System_Time.h: - - No need to include "ace/Malloc_T.h", "ace/MMAP_Memory_Pool.h" - and "ace/Null_Mutex.h". Forward declarations are sufficient. - - Use time_t type instead of ACE_UINT32 when returning times, such - as those returned from ACE_OS::time(). Addresses lack of - precision issues. - - * ace/Thread_Manager.cpp (wait): - - Addressed a Coverity CHECKED_RETURN error. There's no need to - check the return value of ACE_Thread::join() in this case. - Explicitly cast the return value to "void". - - * ace/Time_Value.h (ACE_ONE_SECOND_IN_USECONDS): - - Made this constant type-safe. It is now of type suseconds_t, - instead of a preprocessor symbol definition. - - * ace/UUID.cpp (lock): - - Addressed USE_AFTER_FREE Coverity error. Do not return a - pointer to the previous lock. It may have been destroyed. - - * ace/UUID.h (lock): - - Changed return type from "ACE_SYNCH_MUTEX*" to "void". The - interface/implementation does not provide a means to safely - return the previous lock instance. - - * ace/ace_wchar.inl (convert): - - Corrected calculation of wide string length. - - * bin/MakeProjectCreator/config/acexml.mpb: - - No longer any need to explicitly disable ACEXML in the - ace_for_tao configuration. - - * include/makeinclude/platform_irix6.x_sgic++.GNU: - - SGI 7.3.x compiler doesn't have the 3506 error code. Do not - attempt to supress it. - -Mon Oct 23 22:24:01 UTC 2006 Ossama Othman - - * ace/Unbounded_Queue.cpp (set): - - Explicitly initialize dummy value. Addresses "use of - uninitialized variable" g++ 4.1 warning when the variable is a - POD type. - - * ace/ace_for_tao.mpc: - - Removed unnecessary semaphore related files. - - Added missing ace/Truncate.h header. - -Mon Oct 23 21:44:32 UTC 2006 Ossama Othman - - * ace/Truncate.h (Truncator): - - Borland doesn't appear to be able to grok the use of the - function call operator in the ACE_Utils::Truncate<> function - template. Replaced the Truncator<>::operator() function call - operator with a static Truncator<>::truncate() method instead. - -Mon Oct 23 13:29:15 UTC 2006 Olli Savia - - * ACE-INSTALL.html: - * ace/Mem_Map.h: - * ace/Mem_Map.inl: - * ace/Mem_Map.cpp: - * ace/OS_NS_Thread.inl: - * ace/OS_NS_sys_mman.inl: - * ace/Reverse_Lock_T.h: - * ace/Task_Ex_T.h: - * ace/Task_T.h: - * ace/config-lynxos.h: - * include/makeinclude/platform_lynxos.GNU: - - Removed LynxOS 3.x support. - -Mon Oct 23 12:59:35 UTC 2006 Chad Elliott - - * bin/generate_compile_stats.sh: - - Corrected a bug with my previous change. If config.h or - platform_macros.GNU were not present, the html would be incorrect. - I also added default.features to the list of configuration files - that are displayed. - -Mon Oct 23 06:34:24 UTC 2006 Douglas C. Schmidt - - * ace/os_include/os_pthread.h: Changed - - # if !defined (ACE_LACKS_RWLOCK_T) - - to - - # if !defined (ACE_LACKS_RWLOCK_T) && !defined (ACE_HAS_PTHREADS_UNIX98_EXT) - - to stop a compile error on Solaris after SunOS 5.8. Thanks to - Boris Kaminer for reporting - this fix. - -Sun Oct 23 00:29:55 UTC 2006 Ossama Othman - - * ace/Truncate.h: - - In the Borland-specific workaround, explicitly cast return value - of ACE_Numeric_Limits::max() of the smaller unsigned type to the - unsigned larger type to which it is being compared. Addresses - non-intuitive "comparison of signed and unsigned types" warning - issued by Borland compiler. Borland promotes unsigned char to - int, instead of unsigned int, when comparing to unsigned int. - This implicit type promotion behavior complies with the C++ - standard, but is a bit awkward nonetheless (IMHO :)). Thanks to - Johnny for pointing out Borland's explanation of the - non-intuitive warning. - -Sun Oct 22 08:11:25 UTC 2006 Ossama Othman - - * ace/Token_Request_Reply.inl (token_name): - - Simplified use of ACE_Utils::Truncate<> function template. Only - the "TO" type must be explicitly specified. The "FROM" type is - deduced automatically by the compiler. Note that explicitly - specifying both template parameters is perfectly valid, too. - - * ace/Truncate.h (Truncator): - - Added char/int specializations for Borland to allow the - Integer_Truncate_Test to compile. All of the Borland-specific - Truncator specializations are meant to be a temporary workaround - until Borland C++ is capable of supporting the generalized - implementation. - -Sat Oct 21 14:49:21 UTC 2006 Steve Huston - - * ace/TSS_T.{h cpp}: Added "volatile" keyword to once_ member - since it can be changed by other threads. Removed the lock - acquiring from the ts_object() methods - after once_ is checked, - there are no further needs for locks. When needed, the key_ is - set up by ts_init() which does acquire a lock. This avoids a lock - acquire/release cycle on all calls when initialization of the - ACE_TSS object is not required, speeding up performance. Thanks to - Guy Peleg for reporting this and - to Russell Mora for assisting in - analyzing the situation and recommending the particular fixes. - - * ace/Logging_Strategy.h: Minor doxygen improvements. - - * ace/Sock_Connect.cpp: When checking for IPv6 interfaces on Windows, - there's two conditionally compiled blocks of code. One block was - built if ACE_HAS_IPV6 SIO_ADDRESS_LIST_QUERY are both defined; the - other was built if ACE_HAS_IPV6 is defined. Added the check for - SIO_ADDRESS_LIST_QUERY to the second case as well since it makes - no sense to run it if the first isn't built. Thanks to Andre - Kostur for this fix. Also see: - Mon Oct 16 14:24:25 UTC 2006 Steve Huston - - * ace/Task_T.h (reply): Clarified what happens on a reply(). Thanks - to Doug Schmidt for explaining the rationale for this. - - * ace/Token_Request_Reply.inl (token_name): VC7.1 had trouble grokking - the ACE_Utils::Truncate arguments in this case, so add the types - to a more complete specification of what template is desired. - -Sat Oct 21 15:19:46 UTC 2006 Steve Huston - - * configure.ac: Removed the check for LINUX_VERSION that disabled - the check for epoll on Linux. Just let the check run - the macros - used checked the kernel/C version used to build the kernel instead - of the running kernel itself (I think...). In any event, the - use of the macros to disable the check prevented the check from - running on systems (such as RHEL 4) that do have epoll. Thank you - to Brian Campbell for researching - this area. - -Sat Oct 21 10:48:12 UTC 2006 Martin Corino - - * bin/PerlACE/RunTest.pm: - * bin/PerlACE/ProcessVX.pm: - * bin/PerlACE/ProcessVX_Unix.pm: - - Changes to accomodate running autotests for VxWorks RTPs on - Linux hosts. - -Sat Oct 21 04:34:33 UTC 2006 Ossama Othman - - * ace/OS_NS_stdlib.cpp: - - Always include "ace/Numeric_Limits.h" in the ACE_LACKS_MKSTEMP - case. There is no need to conditionally include it when "max" - is undefined. Addresses VxWorks build errors. - - * ace/Truncate.h: - - Only use workaround for Borland compiler versions less than or - equal to 0x582. Thanks to Johnny for the suggestion. - - * tests/Integer_Truncate_Test.cpp (sizeof_from_lt_sizeof_to): - - Explicitly cast types in inequality comparison to silence - comparison of signed and unsigned warnings. It's not clear why - the warning is occuring since both types are unsigned. - - Removed remaining set of redundant parentheses that were - missed in a previous commit. - -Fri Oct 20 12:55:12 UTC 2006 Johnny Willemsen - - * ace/Service_Manger.{h,cpp}: - Changed debug_ member to a real bool - -Fri Oct 20 12:40:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_socket.inl (bind): - * ace/config-rtems.h: - Added ACE_LACKS_BIND - - * ace/Basic_Types.h: - Fixed compile problems with BCB6 - -Fri Oct 20 12:05:12 UTC 2006 Johnny Willemsen - - * ace/Log_Record.inl: - Added check for ACE_LACKS_NTOHL and ACE_LACKS_HTONL - - * ace/config-rtems.h: - Added ACE_LACKS_NTOHL and ACE_LACKS_HTONL when no networking - is available - -Fri Oct 20 09:56:12 UTC 2006 Johnny Willemsen - - * ace/INET_Addr.h: - Small change to improve doxygen documentation - - * ace/OS_NS_sys_socket.inl (listen): - Added ACE_LACKS_LISTEN - - * ace/config-rtems.h: - Added ACE_LACKS_LISTEN - -Fri Oct 20 09:36:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_nodeapplicationmanager.mpb: - * bin/MakeProjectCreator/config/ciao_nodemanager_stub.mpb: - * bin/MakeProjectCreator/config/ciao_targetmanager_stub.mpb: - New base projects - - * bin/MakeProjectCreator/config/ciao_static_dnc_app.mpb: - Use the new base projects above - - Thanks to Abdul Sowayan - for delivering these files - -Fri Oct 20 09:00:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - Defined AF_UNSPEC and PF_UNSPEC when these are not defined by the - OS header files. - -Fri Oct 20 08:55:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_uio.h: - When INADDR_ANY is not defined, then define it, we need it in several - of the ACE header files - -Fri Oct 20 08:44:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_uio.h: - We define iovec when ACE_WIN32 was defined, changed this to a new - define, ACE_LACKS_IOVEC to make it easier to use with other platforms - - * ace/config-win32-common.h: - Added ACE_LACKS_IOVEC - - * ace/config-rtems.h: - When no networking has been configured, also define ACE_LACKS_IOVEC - -Thu Oct 19 22:28:59 UTC 2006 Shanshan Jiang - - * contrib/minizip/iowin32.c - * contrib/minizip/iowin32.h - Removed these files. - -Thu Oct 19 23:20:26 UTC 2006 Ossama Othman - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/C++NPv1/Reactive_Logging_Server.h: - - Fixed integer/void* conversion related warnings by using - the "intptr_t" type instead of "int" or "long". - -Thu Oct 19 22:58:02 UTC 2006 Ossama Othman - - * ace/Truncate.h: - - Borland compilers currently cannot handle the template - meta-programming in this header. Work around the limitation by - explicitly specializing the ACE_Utils::Truncator<> structure - template for a select few 32- and 64-bit integers. More will be - added as needed. - -Thu Oct 19 17:25:16 UTC 2006 Ossama Othman - - * tests/Integer_Truncate_Test.cpp: - - Removed redundant parentheses. - -Thu Oct 19 15:25:12 UTC 2006 Johnny Willemsen - - * bin/generate_rel_manpages: - Updated doxygen version - - * bin/MakeProjectCreator/templates/gnu.mpb: - Removed kylix support - -Thu Oct 19 13:19:12 UTC 2006 Johnny Willemsen - - * ace/OS_main.h: - Added main for rtems - -Thu Oct 19 11:48:12 UTC 2006 Johnny Willemsen - - * ace/Rtems_init.c: - Fixed empty translation unit warnings - -Thu Oct 19 08:27:12 UTC 2006 Martin Corino - - * include/makeinclude/platform_openvms.GNU: - Small change to create hardlinks for produced executables. - -Wed Oct 18 16:19:38 UTC 2006 Shanshan Jiang - - * contrib/minizip/minizip.suo - * contrib/minizip/miniziplibrarycode.suo - Removed these files. - -Wed Oct 18 13:52:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_rtems.x_g++.GNU: - Major cleanup of old stuff and always define ACE_HAS_RTEMS - - * etc/rtems_init.c: - * ace/rtems_init.c: - Another move, for rtems we require some functions to always - be available, this defines our network settings and much more. - Because we always build static, we moved this to the ACE lib, - on rtems we define ACE_HAS_RTEMS and then compile the contents - of this file. This way the functions in this file are available - in any executable we link - - * ace/OS.h: - * ace/os_include/os_signal.h: - * ace/os_include/sys/os_types.h: - * ace/OS_NS_stdio.h: - * ace/OS_NS_time.inl: - Replaced __rtems__ with ACE_HAS_RTEMS - - * ace/ace.mpc: - Added rtems_init.c - -Wed Oct 18 13:01:12 UTC 2006 Johnny Willemsen - - * include/makeincludes/rules.bin.GNU: - * include/makeincludes/rules.lib.GNU: - * include/makeincludes/wrapper_macros.GNU: - * include/makeincludes/platform_linux_borland.GNU: - Removed kylix support - -Wed Oct 18 10:05:12 UTC 2006 Johnny Willemsen - - * apps/Gateway/Gateway/File_Parser.cpp: - Removed egcs workaround - -Wed Oct 18 08:07:12 UTC 2006 Johnny Willemsen - - * tests/rtems_init.c: - * etc/rtems_init.c: - Moved from tests to etc - -Tue Oct 18 06:27:12 UTC 2006 Johnny Willemsen - - * examples/Reactor/Misc/test_signals_1.cpp: - * performance-tests/Misc/context_switch_time.cpp: - Renamed the global count variables to another name. These triggered - a bug in the VxWorks 5.5.2 compiler which we reported to windriver. - By renaming these we will get an error free compilation. - -Tue Oct 18 06:02:28 UTC 2006 Ossama Othman - - * ace/Basic_Types.h (intptr_t, uintptr_t): - - Provided suitable typedefs for these standard types when - ACE_LACKS_INTPTR_T is defined. - - * ace/Event_Handler.cpp (~ACE_Event_Handler_var): - - Only use an ACE_Errno_Guard if the underlying ACE_Event_Handler - pointer is non-zero. Saves a TSS access in the zero - ACE_Event_Handler pointer case. - - (operator=): - - Made strongly exception safe. - - * ace/FILE_IO.cpp (send, recv): - * ace/Message_Queue.cpp (enqueue, dequeue): - * ace/Message_Queue_T.cpp: - * ace/OS_NS_unistd.inl (hostname): - - Explicitly supply the "int" "TO" type to the - ACE_Utils::Truncate<> function template. It must now be - explicitly specified since ACE_Utils::Truncate<> now supports - truncation to all integer types, not just "int". - - * ace/Global_Macros.h (ACE_STATIC_CONSTANT): - - New macro for in-class static integral constant initialization - that works around compilers that don't like such initialization. - In-class integral constants in this case are meant to be - compile-time constants so that they may be used as template - arguments, for example. BOOST provides a similar macro. - - * ace/OS_NS_stdlib.inl (atop): - * ace/OS_NS_stdio.cpp (fopen): - - Removed ACE_LACKS_INTPTR_T check. It is no longer needed. - - * ace/Truncate.h: - - Generalized the ACE_Utils::Truncate<> function template - implementation for all integer types. - - * tests/run_test.lst: - * tests/tests.mpc: - - Added new "Integer_Truncate_Test" test that verifies the - ACE_Utils::Truncate<> function template works for all type - size/sign scenarios. - -Tue Oct 17 21:28:11 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp (parse_args_i): - - Checking for no arguments was missed inadvertently in the - original change-set from "Tue Oct 17 16:27:27 UTC 2006 ..." - -Tue Oct 17 21:09:36 UTC 2006 Shanshan Jiang - - * contrib/minizip/ChangeLogUnzip - * contrib/minizip/crypt.h - * contrib/minizip/ioapi.c - * contrib/minizip/ioapi.h - * contrib/minizip/iowin32.c - * contrib/minizip/iowin32.h - * contrib/minizip/miniunz.c - * contrib/minizip/minizip.c - * contrib/minizip/minizip.mpc - * contrib/minizip/minizip_export.h - * contrib/minizip/mztools.c - * contrib/minizip/mztools.h - * contrib/minizip/unzip.c - * contrib/minizip/unzip.h - * contrib/minizip/zip.c - * contrib/minizip/zip.h - Added the minizip project. Thanks to Krishnakumar Balasubramanian - for providing this. - -Tue Oct 17 17:17:36 UTC 2006 Douglas C. Schmidt - - * ace/OS_NS_unistd.inl (truncate): SetFilePointerEx() returns a - BOOL not a DWORD (unlike SetFilePointer()..). Thanks to Boris - Kaminer for reporting this. - -Tue Oct 17 16:27:27 UTC 2006 Iliyan Jeliazkov - - * ace/DLL_Manager.cpp: - * ace/Parse_Node.cpp: - - Updated logging messages. - - * ace/Service_Gestalt.cpp: - - Updated logging messages to exclude the "e-word" causing false - positives in the Service_Config_Test. Updated comments. - -Tue Oct 17 12:35:12 UTC 2006 Johnny Willemsen - - * apps/soreduce/Library.cpp: - taoversion is not a valid base project. Thanks to Manuel Traut - for reporting this. - -Tue Oct 17 12:09:12 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Updated supported platforms by Remedy IT. New are VxWorks 5.5.2, - OpenVMS 8.3, RTEMS and LynxOS. - -Tue Oct 17 12:05:12 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - Cleanup - - * include/makeinclude/plaform_rtems.x_g++.GNU: - Improved for rtems 4.6.6 - -Tue Oct 17 07:03:12 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - * ace/OS_NS_unistd.inl: - Added support for ACE_LACKS_FDOPEN - -Mon Oct 16 21:29:57 UTC 2006 Phil Mesnier - - * THANKS: Updated Chris Reed's entry in the list. - -Mon Oct 16 20:04:59 UTC 2006 Iliyan Jeliazkov - - This change fixes bug#2612. See the description for the gory - details. In a nutshell, the problem is caused by the fact that - static services, loaded from a DLL, as part of a dynamic service - initialization can not be safely finalized when the dynamic - service's DLL gets unloaded. This was historically handled by - simply not unloading DLLs, and by finalizing all services at - process exit. With the introduction of the local configurations - feature, this changed. - - The finalization order was supposed to be guaranteed by the - ordering of the services in the repository. It really was a - kludge, because when dynamically loading and removing services - the order can change. Then whenever the process tries to clean - up, the dynamic service's DLL can be unloaded (because it gets - finalized first), and the static services' destructor code would - become inaccessible. The situation results in a SEGV at exit(). - - * ace/DLL.h: - * ace/DLL.cpp: - - Made assignment operator return a non-const reference to make it - well-formed. See C++ Standard, section "[special]". - - * ace/DLL_Manager.cpp: - * ace/Dynamic_Service_Base.cpp (instance): - * ace/Parse_Node.cpp: - - Fixed formatting and logging - - * ace/Service_Config.cpp (parse_args_i): - - Fixing a bug related to parsing the command line options that - take arguments. Thanks to Aaron Scamehorn for reporting it. - - * ace/Service_Gestalt.cpp: - - Added ACE_Service_Dynamic_Guard (formerly - ACE_Service_Type_Forward_Declaration_Guard) which helps to - resolve an issue with hybrid services, i.e. dynamic services, - accompanied by static services in the same DLL. Only automatic - instances of SDG are supposed to exist. Those are created during - (dynamic) service initialization and serve to: - - (a) Ensure the service we are loading is ordered last in the - repository, following any other services it may cause to - register, as part of its own registration. This is a common case - when loading dynamic services from DLLs - there are often static - initializers, which register static services. - - (b) The SDG instance destructor detects if the dynamic service - initialized successfully and "fixes-up" all the newly registered - static services, so that each holds a reference to the DLL, from - which they have originated. - - Updated comments and formatting. - - * ace/Service_Object.h (dll): - * ace/Service_Object.inl (dll): - - Added void dll (const ACE_DLL&) to make it possible to - "relocate" services registered through static initializers found - in DLL's code segment(s). - - * ace/Service_Object.cpp (fini): - - Modified ACE_Service_Type::fini() to ensure the DLL associated - with the service is properly closed. This in conjunction with - the gestalt changes above, makes it possible to safely and - completely unload a service. - - * ace/Service_Repository.h: - * ace/Service_Repository.cpp (remove_i,relocate_i,relocate): - - Added relocate(), which allows association of a (static) service - objects with a DLL. Per changes to ACE_Service_Gestalt, - above. Added a counterpart private relocate_i(), which does not - obtain locks. - - * tests/Service_Config_Test.cpp: - - Added a test that combines more than one argument-taking command - line option to guard against regression for the bug fixed in - ACE_Service_Config::parse_args_i (see above). - -Mon Oct 16 19:20:12 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - Updated with more changes needed for rtems - - * ace/os_include/os_signal.h: - Added specific defines for rtems - - * ace/OS_NS_time.cpp (difftime): - Removed not used variable and get gmtime/gmtime_r from the - global scope - - * ace/OS_NS_string.{h,cpp,inl}: - Added ACE_LACKS_STRTOK_R to make the rtems port easier - -Mon Oct 16 14:24:25 UTC 2006 Steve Huston - - * ace/OS_NS_netdb.{cpp inl} (gethostbyname[_r], gethostbyaddr[_r]): - Check the specified string (name or addr) for unspecified or of - 0 length and return 0 if so - bypasses a system call and a possible - memory leak. Thanks to Howard Finer - for these fixes. - - * ace/Sock_Connect.cpp (get_ip_interfaces): Don't report an error if - we can't find IPv6 addresses. It may be on a system with ACE_HAS_IPV6 - support compiled but IPv6 not configured/enabled. Thanks to Andre - Kostur for reporting this. - - * ace/WFMO_Reactor.cpp (ok_to_wait): In the ACE_HAS_WINCE block, - change fwaitAll arg from TRUE to FALSE - it must be FALSE on - WinCE (thru WinMobile 5) per MSDN. Thanks to Drew Reynaud - for this fix. - - * THANKS: Added Drew Reynaud to the Hall of Fame. - -Mon Oct 16 14:21:48 UTC 2006 Chad Elliott - - * bin/generate_compile_stats.sh: - - I accidentally deleted a letter in my previous commit. - -Mon Oct 16 14:02:12 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - Added first set of missing defines - - * ace/os_include/sys/os_select.h: - * ace/os_include/sys/os_uio.h: - Removed rtems specific part, not needed anymore - - * ace/os_include/sys/os_types.h: - Added rtems check - - * include/makeinclude/plaform_rtems.x_g++.GNU: - Updated - -Mon Oct 16 13:47:25 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Use the create_command_line_string() method instead of printing - the command line directly. This opens the door for disabling this - functionality. - -Mon Oct 16 12:18:14 UTC 2006 Chad Elliott - - * ace/OS_NS_Thread.inl: - * ace/os_include/os_semaphore.h: - - The feature that I put in for Gottwald Port on Mon Mar 6 18:25:41 - UTC 2006 causes a performance overhead for semaphores where - ACE_HAS_POSIX_SEM is defined (SunOS, HP-UX, MacOS X, etc.). For - those that are not interested in timed semaphores, this feature - provides nothing and is detemental to performance. Now, this - feature is disabled by default and must be manually enabled by - defining the ACE_HAS_POSIX_SEM_TIMEOUT_EMULATION macro. - -Mon Oct 16 12:06:10 UTC 2006 Chad Elliott - - * bin/generate_compile_stats.sh: - - Added some changes to make this script usable for software other - than ACE+TAO+CIAO. - - - Enhanced the usage message. - - Fixed minor HTML errors. - - Added options to set the base root directory and software title. - -Mon Oct 16 11:53:12 UTC 2006 Johnny Willemsen - - * examples/IOStream/client/IOStream_Client.mpc: - * examples/IOStream/server/IOStream_Server.mpc: - Added exename so that we create an exe, not a dll - - * examples/IOStream/client/.cvsignore: - * examples/IOStream/server/.cvsignore: - Removed duplicate lines - - * examples/IOStream/server/iostream_server.cpp: - Added needed include for building with VxWorks 5.5.2 - -Mon Oct 16 08:33:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/templates/ciao_static_dnc_app.mpb: - New base project for static dnc. - Thanks to Abdul Sowayan - for creating this file - -Sun Oct 15 23:22:52 UTC 2006 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added Bug_2683_Regression to the test suite. - -Fri Oct 13 18:26:19 UTC 2006 Andy Stafford - - * include/makeinclude/wrapper_macros.GNU: - - Added 'lksctp' as recognized option to sctp documentation. - -Fri Oct 13 18:13:00 UTC 2006 Chad Elliott - - * bin/cle.pl (getDefaultDomain): - - Fixed a bug where extra text would be part of the domain name when - the /etc/hosts file contains an alias after the fully qualified - host name. - -Fri Oct 13 12:32:35 UTC 2006 Chad Elliott - - * bin/PerlACE/Process_Unix.pm: - - Added support for remote testing on UNIX only. Currently, ssh or - rsh is used to run an executable on the remote machine. The - remote test capability is only enabled if the RemoteInformation - method is called on the PerlACE::Process object. For more - details, see the RemoteInformation method in this module. - -Fri Oct 13 10:25:12 UTC 2006 Johnny Willemsen - - * apps/soreduce/Library.cpp: - aceversion is not a valid base project. Thanks to Manuel Traut - for reporting this. - -Thu Oct 12 16:44:34 UTC 2006 Douglas C. Schmidt - - * ace/Log_Record.cpp (operator<<): Zapped the nonconst_record and - const_cast since this is no longer needed as per the following - change: - - Sun Aug 12 00:34:42 2001 Steve Huston - * ace/Log_Record.h: - * ace/Log_Record.i (msg_data()): Changed ACE_TCHAR *msg_data() - to: const ACE_TCHAR *msg_data (void) const. Makes it safer, - and conforms to all current usage inside ACE. Also makes - C++ Network Programming examples simpler :-) - - Thanks to Abdul Sowayan - for reporting this. - -Thu Oct 12 15:45:24 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - If a custom definition has an 'output_option' set, the order of - listing the input file changes such that it is listed before the - output_option setting in the build rule. - - * bin/auto_run_tests.pl: - - Added a new option, -l, which can be used to specify an arbitrary - list of tests. - -Thu Oct 12 12:20:12 2006 Johnny Willemsen - - * ace/Svc_Conf.h: - Fixed incorrect placed ACE_BEGIN_VERSIONED_NAMESPACE_DECL macro. - Thanks to Alexander Libman - for reporting this - -Wed Oct 11 15:24:04 UTC 2006 Steve Huston - - * ace/Log_Record.{h inl cpp}: Removed the set_msg_data_ptr() - method - it opens the possibility of putting a buffer in place - that can't be freed properly. All of the memory allocating and - deleting should be done internally to this class. The removed - method was only used internally. - Added a private msg_data_size_ member that keeps the allocated size - of msg_data_ in ACE_TCHARs (not bytes) to tell if the buffer needs - to be resized. Comparing to the string length is incorrect - it - causes buffer reallocating whenever a short logged message is - followed by a longer one, even if both are much shorter than the - allocated length of msg_data_. When a ctor allocates a msg_data_ - area, set the first spot to '\0' to a call to msg_data_len() won't - get random answers or a crash. - (msg_data (const ACE_TCHAR *)): Changed this method to return int, - not void. It also will now reallocate the msg_data_ buffer if needed - to hold the specified string. operator<< now uses msg_data() to set - the string instead of the now removed set_msg_data_ptr() method, - keeping all msg_data_ allocation and release in the same class. - (operator<<): Fix memory leak when setting a new msg_data_ - buffer. Thanks to Arturo Montes for letting us know about the leak. - - * docs/ACE-guidelines.html: Clarify the format of ChangeLog entries. - Remove the recommendation to always test on egcs; things should be - tested on at least Windows and Linux, but egcs is outdated. - -Tue Oct 10 18:46:12 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Document how to get a current copy from subversion - -Tue Oct 10 14:16:12 2006 Johnny Willemsen - - * ace/CDR_Stream.cpp: - Fixed incorrect comment - -Tue Oct 10 12:54:00 UTC 2006 Simon Massey - - * ace/config-win32-msvc.h: - Changed the MFC build run-time dll decorators to match - the current build system settings. - -Tue Oct 10 06:08:12 2006 Johnny Willemsen - - * bin/fuzz.pl: - Changed check for empty inline files to also check for empty - source files - - * bin/MakeProjectCreator/config/avoids_corba_e_compact.mpb: - * bin/MakeProjectCreator/config/avoids_corba_e_micro.mpb: - New avoids projects - - * etc/ace.doxygen: - Expand some more macros, should improve documentatation - - * html/README: - Updated download location to ISIS - -Tue Oct 10 06:03:12 2006 Johnny Willemsen - - * docs/ACE-bug-process.html: - Updated to mention svn - - * docs/Download.html: - Commented out the source packages that are not complete at this moment - -Mon Oct 09 09:07:12 2006 Johnny Willemsen - - * bin/generate_rel_manpages: - Fixed an error in this script and updated the location to which the - generated packages should be copied to - -Mon Oct 09 09:03:12 2006 Johnny Willemsen - - * docs/Download.html: - Updated with the new download locations - - * docs/bczar/bczar.html: - Updated documentation generation instructions - -Thu Oct 05 00:35:37 2006 William R. Otte wotte@dre.vanderbilt.edu - - * ACE version 5.5.3 released. - -Tue Oct 3 16:45:35 UTC 2006 Shanshan Jiang - - * NEWS - Updated the NEWS to add the changes for ACE_Hash_MultiMap_Manager - class and executionmanager_stub and plan_generator base projects. - -Tue Oct 3 15:02:14 UTC 2006 Steve Huston - - * NEWS: Described the ACE_Refcounted_Auto_Ptr effects of - Thu Jul 6 20:45:15 UTC 2006 Steve Huston - -Mon Oct 2 12:21:12 UTC 2006 Johnny Willemsen - - * ace/Log_Msg.cpp: - Const/bool improvements - -Mon Oct 2 11:26:12 UTC 2006 Johnny Willemsen - - * ace/Log_Msg.{h,cpp}: - Changed is_set_ conditional values member to bool - -Sat Sep 30 14:00:33 UTC 2006 Steve Huston - - * tests/Cached_Allocator_Test.cpp: - * tests/Codecs_Test.cpp: - * tests/Enum_Interfaces_Test.cpp: - * tests/Get_Opt_Test.cpp (run_test): - * tests/Naming_Test.cpp: - * tests/Reactor_Notification_Queue_Test.cpp: - * tests/Reference_Counted_Event_Handler_Test.cpp: - * tests/Timer_Queue_Reference_Counting_Test.cpp: - Correct logging format for wide-char build. - -Fri Sep 29 18:54:29 UTC 2006 Steve Huston - - * ace/OS_NS_signal.inl (sigaction): In the !ACE_HAS_SIGACTION_CONSTP2 - case, use ACE_SIGACTION instead of "struct sigaction" to pick up - the funky HP hack. Also see: - Mon Jan 23 22:08:56 UTC 2006 Steve Huston - -Fri Sep 29 10:00:04 UTC 2006 Johnny Willemsen - - * examples/Web_Crawler/Web_Crawler.mpc: - Added avoids+=uses_wchar for borland and bmake, the Borland - compiler gives a warning which can't be easily suppressed and - by not building this project we do get a few new green builds - -Thu Sep 28 19:37:13 UTC 2006 Iliyan Jeliazkov - - * bin/diff-builds.pl: - Fixed the finding of the nearest earlier build for a given date. - -Thu Sep 28 16:53:14 UTC 2006 Shanshan Jiang - - * bin\MakeProjectCreator\config\ciao_executionmanager_stub.mpb - * bin\MakeProjectCreator\config\ciao_plan_generator.mpb - Added the base projects for executionmanager_stub and plan_generator. - -Thu Sep 28 14:46:43 UTC 2006 Iliyan Jeliazkov - - * bin/diff-builds.pl: - - Updated to fix temporary files creation. Now all those are put - in the temporary files directory. Fixed the ability to compare - just two dates. - -Thu Sep 28 13:35:04 UTC 2006 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Removed ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION that - was set for gcc, with this define set the ACE library doesn't - build. - - * ace/CDR_Stream.cpp: - Initialise pointer with 0 - - * ace/TP_Reactor.{h,inl}: - Changed owner from int to bool. - -Wed Sep 27 21:18:04 UTC 2006 Steve Huston - - * ace/Synch_Options.h: Corrected the table of possible Use_Reactor, - Timeout combinations - it was reversed. - - * ace/WFMO_Reactor.{h cpp}: Change the delete_signal_handler_, - delete_timer_queue_, delete_handler_rep_, delete_notify_handler_, - and open_for_business_ members from int to bool to more - accurately reflect their nature as yes/no indicators. - Also, initialize notify_handler_ to 0 in constructors to avoid - a UMR warning from Purify. - -Wed Sep 27 06:28:12 UTC 2006 Johnny Willemsen - - * bin/msvc_static_compile.pl: - Added protocols directory - -Tue Sep 26 09:49:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/dynamicany.mpb: - Derive from valuetype, needed to get AbstractBase::_nil() in a no - inline build. - -Mon Sep 25 16:29:42 UTC 2006 Douglas C. Schmidt - - * ace/ACE.cpp (send_n_i): Conditionally removed the check for - errno == ENOBUFS because Winsock send, or WSASend will try to - enqueue all buffer at once (to the kernel) and if not it will - return ENOBUFS, in which case the socket is always ready for - writing but actually winsock can never perform such write and we - have endless loop. Thanks to Aleksandar Vukajlovic for reporting this and suggesting a fix. - -Mon Sep 25 11:39:35 UTC 2006 Boris Kolpackov - - * ace/Bound_Ptr.inl: - * ace/Bound_Ptr.h: - - Applied workarounds that should fix compile errors on BCB6. - Thanks to Martin Corino for providing - the patch. - - * protocols/ace/TMCast/Messaging.hpp: - * protocols/ace/TMCast/TransactionController.hpp: - - Updated to use ACE_Strong_Bound_Ptr. - -Fri Sep 22 12:42:37 UTC 2006 Douglas C. Schmidt - - * docs/index.html: Added a link to the http://www.acejoy.com ACE - developers website in China. Thanks to Winston Zhang for creating this website. - -Tue Sep 19 12:27:47 UTC 2006 Douglas C. Schmidt - - * tests/Unload_libACE.cpp: Fixed the formatting of this file so it - conformed to ACE guidelines. - -Tue Sep 19 02:54:20 UTC 2006 Douglas C. Schmidt - - * ace/FILE_Connector.h: Changed the documentation to reflect the fact - that mkstemp() is used, not mktemp(). - -Thu Sep 21 16:51:34 UTC 2006 Ciju John - - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp: - The TP_Reactor signal handling implementation is - incomplete. In the current implementation under certain - circumstances (event loop breaks out if interrupted. This is - controlled via ACE_Select_Reactor_T::restart()), a properly - handled OS signal can break the reactor event loop in - an unpredictable manner. This is due to the fact that we cannot - predict which thread will receive the OS signal. Untill the - TP_Reactor signal handling is fixed, I am commenting it out. - -Thu Sep 21 15:13:19 UTC 2006 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added new bug 2188 regression test. - -Mon Sep 18 10:56:29 UTC 2006 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU: Add buildbits=64 - branch for Sun Studio 11 (Sun C++ 5.8). Thanks to Aleksandar - Vukajlovic for this. - - * THANKS: Added Aleksandar Vukajlovic to the Hall of Fame. - -Thu Sep 14 23:01:16 UTC 2006 Steve Huston - - * ace/Bound_Ptr.inl: Tweak syntax to try and work around apparant - issues with BCB6. - -Thu Sep 14 21:48:39 UTC 2006 Steve Huston - - * ace/OS_NS_Thread.inl (thr_getspecific): Removed the ACE_Errno_Guard - around ::TlsGetValue() in the ACE_HAS_WTHREADS case. The comments - near the code said (paraphrasing) "...it was to protect against - ACE_Log_Msg::instance() overwriting the error value before it had a - chance to be logged; although ACE_ERROR et al already store the - error value before calling ACE_Log_Msg::instance(), there may be a - chance that other uses of ACE_Log_Msg don't protect this way." - I have a report that having the errno guard in place is taking - over 10% CPU during a customer system's run-time. This is way too - much to have in a hot path, especially for a mis-placed guard. - It seems a little random to be picking on ACE_OS::thr_getspecific() - when there are many more OS calls in the ACE_Log_Msg::instance() - call path. - If there are really cases outside of ACE_ERROR... et al, then the - guard should be worked into ACE_Log_Msg::instance() method. However, - rather than try that now, let's see if there are any real issues, - since OS-level calls should be setting errno when errors are - noticed, propagating from GetLastError() via - ACE_OS::set_errno_to_last_error () as needed. - Thanks to Kelly Hickel for raising - this point. - -Wed Sep 13 18:25:37 UTC 2006 Boris Kolpackov - - * ace/Bound_Ptr.h: - * protocols/ace/RMCast/Reassemble.cpp: - - Re-applied my changes (Wed Sep 6) on build czar's (Steve - Huston) request. - -Tue Sep 12 18:07:57 UTC 2006 William R. Otte - - * docs/svn/svn-prefs.reg - * docs/svn/config - - Added pdf,eps,ps as binary file types. - -Tue Sep 12 13:56:22 UTC 2006 Douglas C. Schmidt - - * apps/JAWS3/small/SS_Service_Handler.h: Added #include - "ace/svc_export.h". Thanks to Andy Wang for reporting this. - -Tue Sep 12 13:56:09 UTC 2006 Douglas C. Schmidt - - * apps/JAWS3/small/SS_State_DONE.h: - * apps/JAWS3/small/SS_State_READ.h: Added #include - "ace/Synch_Traits.h". Thanks to Andy Wang for reporting this. - -Thu Sep 7 19:43:02 UTC 2006 Douglas C. Schmidt - - * ace/FILE_Connector.h (ACE_FILE_Connector): Updated the - documentation to remove mention of the return values. Thanks to - Hieu Ngyuen for - reporting this. - -Mon Sep 11 13:03:17 UTC 2006 Boris Kolpackov - - * ace/Bound_Ptr.h: - * protocols/ace/RMCast/Reassemble.cpp: - - Reverted my previous changes (Wed Sep 6) since BCB2006 - is unable to handle the required C++ constructs. - -Sun Sep 10 09:23:04 UTC 2006 William R. Otte - - * include/makeinclude/platform_g++_common.GNU - - Committing a fix provided by Ossama Othman (Ossama_Othman at symantec dot com) - to fix a problem with symbol visibility when building static libraries. - -Fri Sep 8 21:11:20 UTC 2006 Steve Huston - - * ace/CDR_Stream.cpp (ACE_OutputCDR::replace()): Fixed compile error - from apparant cut/paste error in ACE_ENABLE_SWAP_ON_WRITE path. - Thanks to JR Andreassen for reporting this. - - * ace/Bound_Ptr.h: Changed new constructor/assignment to use - dynamic_cast in order to be able to transport pointers through - that can go both up and down a class hierarchy. - (See Wed Sep 6 07:40:03 UTC 2006 Boris Kolpackov - ). - - * protocols/ace/RMCast/Protocol.h (clone(), clone_()): Replaced use of - naked pointers returned from clone_() with ACE_Strong_Bound_Ptr and - used new ACE_Strong_Bound_Ptr ctor to facilitate carrying a more- - refined type through a Profile_ptr and back. Closes up a window - for exception unsafeness noticed by Boris Kolpackov. Also see - Tue Aug 22 22:52:41 UTC 2006 Steve Huston - -Fri Sep 8 18:25:17 UTC 2006 Steve Huston - - * ace/Synch_Options.{h cpp}: Improved the documentation for this - class, particularly the table that explains the behavior for the - valid combinations of reactor-usage and timeout. Thank you to - Andriy Gapon for motivating this. - - Also changed the return type of operator[] from int to bool; its - meaning was always 1/0 but was overlooked in the sweep for this - type of thing last year. - - * NEWS: Added the ACE_Synch_Options::operator[] return type change. - - * THANKS: Added Andriy Gapon to the Hall of Fame. - -Wed Sep 6 07:40:03 UTC 2006 Boris Kolpackov - - * ace/Bound_Ptr.h: - - Added new constructor and assignment operator templates that - support the naked pointer-like implicit conversion. - - * protocols/ace/RMCast/Reassemble.cpp: - - Use the new constructor to get rid of reinterpret_cast. - -Tue Sep 5 21:28:02 UTC 2006 Nishanth Shankaran - - * bin/MakeProjectCreator/config/ciao_race_component.mpb: - * bin/MakeProjectCreator/config/ciao_race_default.mpb: - * bin/MakeProjectCreator/config/ciao_race_monitor.mpb: Added new - RACE specific base projects. - -Fri Sep 1 19:58:06 UTC 2006 Ciju John - - * bin/tao_orb_tests.lst: - Turn on nightly regression test for bug 1476. - -Fri Sep 1 13:49:12 UTC 2006 Martin Corino - - * bin/PerlACE/Run_Test.pm: - Increased process creation timeout for tests on openVMS. - -Thu Aug 31 01:45:06 UTC 2006 Sumant Tambe - - Added .xml files to it. - * docs/svn/config: - * docs/svn/svn-prefs.reg: - -Wed Aug 30 17:45:30 UTC 2006 Iliyan Jeliazkov - - This change fixes bug#2648 - - * ace/Service_Object.cpp: - - Fixed formatting. - - * ace/Service_Repository.cpp: - - Updated logging. - - * ace/Service_Types.h: - * ace/Service_Types.cpp: - - Added ACE_Service_Object_Type::initialized_ member variable to - hold the result of calling init() on the ACE_Service_Object. The - value is later consulted in ACE_Service_Object_Type::fini() to - determine if ACE_Service_Object::fini() should be - called. C++NPv2 (page 120) says that fini() must be called if - and only if, init() succeeded, i.e. returned 0. - -Wed Aug 30 17:18:52 UTC 2006 Shanshan Jiang - - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb - Modified this file to fixed the "reference to `ACE_Singleton::instance()'"warnings - with FC5_Static build. - -Wed Aug 30 13:34:50 UTC 2006 William R. Otte - - * bin/make_release - - Updates to the make_release script to make it subversion compatible. - major updates to be aware of: - . Assumes the working copy it uses is flattened - . Must have DOC_ROOT set - . Script should be started from DOC_ROOT. - . Produces traditional (nested) releases - . Now produces a set of source-only kits in addition to - the traditional kits. - - IMPORTANT: The release makefiles have not been updated, and are - most likely broken. - - Producing a release is a two step process: - make_release -u # Update version numbers - make_release -k ace+tao+ciao # Create all kits. - -Wed Aug 30 12:19:12 UTC 2006 Johnny Willemsen - - * ace/CDR_Stream.{h,cpp}: - Use true/false consistently for the good_bit - -Wed Aug 30 05:57:12 UTC 2006 Johnny Willemsen - - * tests/Service_Config_Test.cpp: - Fixed argument not used warnings - -Tue Aug 29 21:17:26 UTC 2006 Steve Huston - - * tests/Service_Config_DLL.{h cpp}: - * tests/Service_Config_Test.cpp: Added a test for ACE_Service_Config's - behavior when a dynamic service's init() hook returns -1 (failure). - This was precipitated by Bugzilla #2648. - -Tue Aug 29 18:07:39 UTC 2006 Ossama Othman - - * examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc: - * tests/SSL/tests.mpc: - - Disable MPC projects in these files that depend on features not - found in the "ACE for TAO" subset", i.e. ACE_Profile_Timer and - asynch I/O. - -Tue Aug 29 13:19:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added bug 2560 regression. It runs fine on windows but seem to - crash on linux exhibiting a bug that isn't fixed yet. - -Tue Aug 29 13:17:12 UTC 2006 Johnny Willemsen - - * bin/PerlACE/ProcessVX.pm: - Commented out the ProcessVX_Unix require, it resulted in - errors on test systems when they don't have Net::Telnet () - available. - -Tue Aug 29 11:16:12 UTC 2006 Johnny Willemsen - - * bin/PerlACE/Run_Test.pm: - * bin/PerlACE/ProcessVX_Unix.pm: - * tests/run_test.pl: - Changes for running tests on linux with vxworks 6.3 rtp model target - -Tue Aug 29 08:20:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Don't run UUIDTest in ACE_FOR_TAO configuration - - * bin/ace-tests.lst: - Don't run wfmo reactor tests in ACE_FOR_TAO configuration - -Tue Aug 29 00:24:48 UTC 2006 Adam Mitz - - * docs/run_test.txt: - Fixed Perl bug in example (needed "" instead of '' to get $ variable - expansion) and added explanatory text on using $PerlACE::ACE_ROOT - and $PerlACE::TAO_ROOT. - -Tue Aug 29 00:26:56 UTC 2006 Ossama Othman - - * ace/SSL/ssl.mpc - * ace/SSL/ssl_for_tao.mpc - * bin/MakeProjectCreator/config/ssl_full.mpb: - * bin/MakeProjectCreator/config/ssl.mpb: - * bin/MakeProjectCreator/config/ssl_for_tao.mpb: - - Added support for new ACE_SSL subset "ACE_SSL_FOR_TAO" for - "ace_for_tao" configuration. The ACE_SSL_FOR_TAO subset merely - lacks asychronous I/O support. - -Tue Aug 29 00:04:29 UTC 2006 Ossama Othman - - * ace/ACE_export.h: - - SGI C++ 7.3 compiler does not support standard C++ "extern - inline" declarations. - - * ace/Log_Msg.cpp (log): - - Corrected scalar/vector operator delete() mismatch. The wide - string buffer was allocated as an array. Destroy it - accordingly. - - * ace/MMAP_Memory_Pool.cpp (ACE_MMAP_Memory_Pool): - - Prevent potential dereferencing of null pointer. - - * ace/Svc_Conf_Param.h: - - Corrected author information. - -Mon Aug 28 23:59:50 UTC 2006 Ossama Othman - - From Amnon Berger - * ace/SSL/SSL_Context.h (ACE_SSL_Context): - * ace/SSL/SSL_Context.cpp (certificate): - - Added support for reading an X.509 certificate from memory - instead of a file. - -Mon Aug 28 19:33:50 UTC 2006 Sumant Tambe - - A quick perl script to create a change-log-entry date and time. - * bin/cltime.pl: - - Added *.cidl *.pcd *.cdd - * docs/svn/config: - * docs/svn/svn-prefs.reg: - -Mon Aug 28 14:14:39 UTC 2006 Iliyan Jeliazkov - - * bin/tao_other_tests.lst: - Added TAO/orbsvcs/tests/Security/Big_Request/run_test.pl to the - list of SSL-based tests. Thanks to Johnny Willemsen - for pointig out that it was missing. - -Mon Aug 28 13:45:12 UTC 2006 Johnny Willemsen - - * ace/Svc_Conf_Lexer.cpp: - Fixed variable not used warning when ACE_USES_WCHAR is not - defined - - * ace/Min_Max.h: - Removed ACE_LACKS_MIN_MAX_TEMPLATES and the code that was - there when this define was set, this define wasn't enabled - in any configuration file. - -Mon Aug 28 11:53:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taodefaults.mpb: - Added exceptions as base project, TAO requires native C++ exceptions. - -Mon Aug 28 11:45:12 UTC 2006 Johnny Willemsen - - * protocols/tests/RMCast/RMCast.mpc: - Removed avoids usage, that is already in the base projects - -Mon Aug 28 11:13:12 UTC 2006 Johnny Willemsen - - * etc/*.doxygen: - Set ignore prefix in several files to improve generated - documentation - -Mon Aug 28 11:08:12 UTC 2006 Johnny Willemsen - - * etc/acexml.doxygen: - Ignore ACEXML_ as prefix - -Mon Aug 28 10:34:12 UTC 2006 Johnny Willemsen - - * docs/run_test.txt: - Updated to explain how the script works on VxWorks and extended - the exampl in such a way that if there is not an executable - it returns directly - -Mon Aug 28 10:07:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Added UUIDTest, was just not listed in this file - - * bin/PerlACE/ProcessVX_Unix.pm: - New initial file for running tests for VxWorks from an unix host - - * bin/PerlACE/ProcessVX.pm: - On unix use the new file above - -Mon Aug 28 09:05:20 UTC 2006 Boris Kolpackov - - * bin/ace_tests.lst: - - Copied test exclusion list from the Multicast_Test entry. - - * protocols/tests/RMCast/Protocol.h: - * protocols/tests/RMCast/run_test.pl: - - Adjusted the timeout value and message size. - -Sun Aug 27 11:11:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added twoway DII collocation test - -Sun Aug 27 00:03:07 UTC 2006 Douglas C. Schmidt - - * ace/Filecache.cpp (ACE_Filecache_Object): Added a call to - - this->lock_.release (); - - to release the lock and so the same file can be fetched again. - Thanks to Liu Qian for reporting - this. - -Sat Aug 26 17:40:12 UTC 2006 Johnny Willemsen - - * docs/ACE-porting.html: - ACE_VXWORKS is the define for VxWorks, exceptions are required - for TAO. - -Sat Aug 26 17:36:12 UTC 2006 Johnny Willemsen - - * docs/ACE-guidelines.html: - Updated some parts to mention svn instead of cvs - -Sat Aug 26 03:11:01 UTC 2006 Krishnakumar B - - * docs/svn/svn-prefs.reg: - * docs/svn/config: - - Updates to add even more file types. - -Sat Aug 26 02:32:18 UTC 2006 Krishnakumar B - - * docs/svn/svn-prefs.reg: - * docs/svn/config: - - Updated these files to add more entries to the list of globally - ignored extensions, and also to the list of file types which - should have automatic properties set. Also synced up the config and - svn-prefs.reg file. - -Fri Aug 25 22:01:38 UTC 2006 Steve Huston - - * ace/Sock_Connect.cpp (get_ip_interfaces, count_interfaces): - Corrected to extract IPv6 information correctly from ioctl()- - returned structures. - - * tests/Enum_Interfaces_Test.cpp: On error condition ACE_HAS_IPV6 but - no ipv6 interfaces, do the log as LM_ERROR so the scoreboard picks - it up. - -Fri Aug 24 12:55:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.3.h: - * ace/Process.cpp: - * ace/Task.cpp: - Fixes for building on vxworks 6.3 with diab 5.4 compiler - -Fri Aug 24 11:17:12 UTC 2006 Johnny Willemsen - - * ace/CDR_Size.cpp: - Added include of OS_Memory.h to get ACE_align_binary - -Thu Aug 24 21:40:24 UTC 2006 Steve Huston - - * tests/Process_Manual_Event_Test.cpp (acquire_release): Fixed a race - condition whereby while a parent and child were ping-ponging, it - was possible for one process to signal event1, wait on event2, then - signal event1 again before the other process could respond to - event1 being signaled and reset it. Thus, event1 was being reset - after the other process signaled it, ensuring a never-ending - wait at the end of the iterations. I changed the code to quickly - reset the event before printing the debug message, thereby closing - the window of opportunity a lot. But probably not completely - removing it... we'll have to see. - -Thu Aug 24 16:40:54 UTC 2006 Steve Huston - - * ace/config-aix-4.x.h: Only need to set - ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION for g++ - prior to g++ 4.1 (have only heard report of this for g++ 4.1; - it may need adjustment for 4.0). Thanks to Nzer Zaidenberg - for reporting the original - problem and testing this fix. - - * THANKS: Added Nzer Zaidenberg to the Hall of Fame. - -Thu Aug 24 16:33:22 UTC 2006 James H. Hill - - * docs/svn/config: - * docs/svn/svn-prefs.reg: - - Added auto-props for *.tex and *.cls files. - -Thu Aug 24 13:48:12 UTC 2006 Johnny Willemsen - - * ace/config-openvms.h - Removed ACE_HAS_SOCK_BUF_SIZE_MAX, not needed anymore with the - latest OpenVMS versions - -Thu Aug 24 08:11:12 UTC 2006 Johnny Willemsen - - * ace/DLL.h - * ace/Service_Repository.h - * ace/Service_Object.cpp - * ace/Parse_Node.cpp - * ace/Service_Object.inl - * ace/Parse_Node.h - * ace/Service_Repository.cpp - * ace/Service_Object.h - * ace/Service_Gestalt.h - * ace/Service_Gestalt.cpp - * ace/DLL_Manager.cpp - * ace/DLL.cpp - Reverted change from below on request of Iliyan because it broke - a set of tests that spawn a thread in init. - Tue Aug 22 21:43:34 UTC 2006 Iliyan Jeliazkov - -Wed Aug 23 08:32:12 UTC 2006 Johnny Willemsen - - * ace/Sock_Connect.{h,cpp}: - Reverted the change below, VxWorks/OpenVMS/AIX all have problems - after this change - - Tue Aug 22 15:19:46 UTC 2006 Phil Mesnier - * ace/Sock_Connect.h: - * ace/Sock_Connect.cpp: - -Tue Aug 22 22:52:41 UTC 2006 Steve Huston - - * protocols/ace/RMCast/Protocol.h: Replaced use of - ACE_Refcounted_Auto_Ptr with ACE_Strong_Bound_Ptr. Code formerly used - ACE_Refcounted_Auto_Ptr::release() with the assumption it had the - same semantics as auto_ptr::release() - stealing the pointer away. - This used to work by accident. The fixed ACE_Refcounted_Auto_Ptr's - release() method decrements the reference count which may cause the - object to be deleted, which is what happened all the time in the - RMCast protocol's clone() methods. Because all the clone() methods - relied on being able to take a more-derived pointer and use it as - a Profile*, changing the refcounted pointer type necessitated - changing the protected clone_() methods to return a naked pointer - rather than a refcounted one. This is acceptable because the naked - pointer is not exposed to class users; the public methods insert - the naked pointer into a ACE_Strong_Bound_Ptr before giving access - to it externally. - - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Reassemble.cpp: With properly functioning - refcounted pointers (see above) these needed a few changes to - make proper use of the pointers while maintaining correct reference - counts. - -Tue Aug 22 21:43:34 UTC 2006 Iliyan Jeliazkov - - This change fixes bug#2612. - - * ace/DLL.h: - * ace/DLL.cpp: - - Made assignment return 'T&' instead of 'const T&'. Adjusted code - formatting and logging messages. - - * ace/DLL_Manager.cpp: - - Fixed formatting. - - * ace/Parse_Node.h: - * ace/Parse_Node.cpp: - - Added accessor for the underlying ACE_DLL and adjusted logging. - - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.cpp: - - Introduced ACE_Service_Type_DLL_Guard class. As dynamic service - objects are loaded, static service objects that come with the - same DLL code, may also be registered. The static services - however, have no information about the context in which their - registration takes place and their relation with the DLL is - lost. A situation can easily arise where the dynamic service - object is finalized and its DLL - unmapped, but some of the - DLL's static services may still be around. Their finalization - would not be possible, if the DLL counting that code is gone. - - The guard, when instantiated (on the stack) swaps out the - current Gestalt and its service repository, and replaces them - with a "sandbox" Gestalt, which has lifetime sufficient for just - the current service initialization. Note that this mechanism is - effective even in the case where a service initialization causes - re-entry into the Gestalt to load and initialize another service - as part of the initialization. - - If no action is taken (in case of an error, for instance) the - guard destructor will simply finalize all newly initialized - service(s) from the sandbox. On the other hand, if - initialization is successful the service object descriptors are - "relocated" to the original Gestalt. - - During the relocation, all static services are "fixed-up" to - hold a reference to the DLL they belong to. Effectively, a - static service, initialized via loading of a particular DLL, - becomes a dynamic service. Thus the order of service - finalization does not matter anymore because the DLL will be - help in memory until the last service object it provides is - finalized. - - * ace/Service_Object.h: - * ace/Service_Object.inl: - * ace/Service_Object.cpp: - - Added a relocate method to modify the ACE_DLL each SO has. - - * ace/Service_Repository.h: - * ace/Service_Repository.cpp: - - Befrended ACE_Service_Type_DLL_Guard. Adjusted logging. - - * tests/Service_Config_Test.cpp: - - Simplified test case. - -Tue Aug 22 18:37:48 UTC 2006 Phil Mesnier - - * bin/MakeProjectCreator/config/ipv6.mpb: - - Building with IPv6 for WinCE requires an additional library for - rtti that is not required for the windows builds. - - * bin/ciao_tests.lst: - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - Added ACE_FOR_TAO exclusions as necessary - -Tue Aug 22 15:19:46 UTC 2006 Phil Mesnier - - * ace/Sock_Connect.h: - * ace/Sock_Connect.cpp: - - Refactored interface discovery code. The methods used to find - IPv6 interface addresses is highly platform specific. So much so - that the single method was too confusing to maintain. With this - patch, the code has been refactored to put each - platform-specific variation in its own method, then only compile - the method needed by any given platform. I'm not sure this will - yield much of a footprint reduction, as all the existing code is - still present, it is just easier to keep track of what is going on. - - Also, when IPv6 is enabled, it might be on a platform that is - using IPv6 exclusively, ie, with no IPv4 enabled. At least one - third-party user of ACE requested a specific test for IPv4 - enablement status, thus I have added a new method for that test. - - * ace/config-linux.h: - Linux supplies the getipaddrs system call. - - * tests/Enum_Interfaces_Test.cpp: - Extended the test so that if ACE is built with ACE_HAS_IPV6 - defined, the test will expect at least one IPv6 endpoint or it - will fail. - -Tue Aug 22 11:41:12 UTC 2006 Johnny Willemsen - - * ace/UUID.{h,cpp}: - Implemented copy constructor - - * tests/UUIDTest.cpp: - Test copy constructor - -Tue Aug 22 09:36:12 UTC 2006 Johnny Willemsen - - * ace/UUID.{h,inl}: - Made the accessors const and reimplemented operator == and - operator !=. - - * tests/UUIDTest.cpp: - Test the operator != and ==. - -Mon Aug 21 20:46:43 UTC 2006 Steve Huston - - * configure.ac: Modified the check for the net/if.h header file - to do a #include if it exists. Allows the compile - of net/if.h to succeed, fixing a configure warning for a file that - exists but won't compile. Thanks to Don Meek for reporting this problem. - - * THANKS: Added Don Meek to the Hall of Fame. - -Mon Aug 21 20:43:59 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.inl: - - Added the missing implementation of the static process_file () - method. Thanks to Lothar Werzinger for - pointing that out. - -Mon Aug 21 20:06:38 Pacific Daylight Time 2006 Ossama Othman - - From Russell Mora : - * ace/Thread_Exit.cpp (instance): - - Fixed race condition in generated code by stopping optimizer - from re-ordering static variable initializations by declaring - static "instance_" variable as "volatile". This problem was - observed on a quad-CPU Solaris 8 box. - -Mon Aug 21 18:31:12 UTC 2006 Johnny Willemsen - - * etc/*.doxygen: - In all files except ace.doxygen added SHORT_NAMES=YES to let - doxygen generate shorter filenames, this should fix the problems - we had during the release with cpio not capable of handling - long filenames - -Mon Aug 21 17:46:55 UTC 2006 Ossama Othman - - * ace/Numeric_Limits.h (ACE_Numeric_Limits): - - The Microsoft Platform SDK does not provide - std::numeric_limits<> specializations for 64 bit integers so we - need to explicitly provide ACE_Numeric_Limits<> specializations - to compensate for this deficiency. [Bug 2639] - - Unfortunately there is no way to tell if the platform SDK is - being used so we specialize for the ACE_WIN64 + MSVC++ 7.1 case, - which is the configuration that exhibits this problem. It also - happens to be a fairly isolated configuration since 64-bit - support in MSVC++ 7.1 was not very good to begin with. - -Mon Aug 21 15:35:26 UTC 2006 Douglas C. Schmidt - - * ace/Timeprobe_T.cpp (print_times): More fixed for timestamp - inversion due to recording time from different threads. This - prints a warning message the first time it detects a timestamp - inversion. It also fixes various minor problems in the - timeprobe reports whenever the total number of timeprobes - exceeds 8192. Thanks to Patrick Rabau for contributing this. - - * ace/INET_Addr.h: Updated the documentation of the non-reentrant - versions of get_host_addr() and get_host_name() to clarify how - they can be used correctly (or better yet not used at all..). - Thanks to Ephy Levy for motivating - this. - - * ace/Logging_Strategy.cpp: Added a destructor to delete - this->filename_, which is allocated in the constructor. Thanks - to Amnon AB for reporting this. - - * ace/Acceptor.h: Made the suspend()/resume() methods of - ACE_Strategy_Acceptor public rather than protected. Thanks to - Amnon AB for reporting this. - - * docs/Symbol_Versioning.html (HREF): Added a link to the Riverace - webpage that describes symbol versioning in ACE. Thanks to - Steve Huston for contributing this. - - * ace/Timeprobe_T.cpp (print_times): Revised the code so that if - there is a timestamp inversion due to recording time from - different threads, the time difference will be displayed as a - negative value instead of a gigantic positive value. Also - compute the time difference correctly when the timeprobe array - wraps around. Thanks to Patrick Rabau - for this fix. - - * ace/Containers_T.cpp, - * ace/Log_Msg.cpp, - * ace/CDR_Size.cpp, - * ace/CDR_Size.inl, - * ace/CDR_Stream.cpp: Fixed a bunch of problems with type punning. - Thanks to Thomas Girard for - reporting this. - - * ace/TSS_T.cpp (tryacquire): There was a missing '&' in - - ACE_Thread::getspecific (this->key_, temp); - - Thanks to Thomas Girard for - reporting this. - -Mon Aug 21 10:45:12 UTC 2006 Johnny Willemsen - - * ace/UUID.{h,cpp,inl}: - Extended UUID to make it possible to assign a string to a UUID - to set it a new value. - - * tests/UUIDTest.cpp: - Extended this test to test the new functionality above. - -Mon Aug 21 10:26:12 UTC 2006 Johnny Willemsen - - * ace/UUID.{h,cpp,inl}: - Changed node_release_ to a real bool and use ACE_ERROR instead - of ACE_DEBUG for a real error message - - * ace/OS_NS_unistd.cpp: - Const improvement - -Sat Aug 19 22:03:03 UTC 2006 Yan Dai - - * bin/tao_orb_tests.lst - - Excluded the DII collocation oneway test from running in the minimum - CORBA build. - -Fri Aug 18 20:38:35 UTC 2006 Steve Huston - - * examples/APG/Logging/Trace.h: Further changed use of __VA_ARGS__ - to remove the comma and the fixed FMT arg from the macros. This - may still trigger the same ISO C99 warning, but it doesn't fail. - -Fri Aug 18 17:22:08 UTC 2006 Steve Huston - - * ace/OS_NS_unistd.cpp (pwrite): Corrected the large-file-offset - logic to build correctly for Windows. Also moved the explicit - SetFilePointerEx() before WriteFile() to the non-ACE_HAS_WINNT4 - section - for ACE_HAS_WINNT4 the supplied OVERLAPPED structure - carries the file offset to write at. - -Fri Aug 18 17:08:35 UTC 2006 Yan Dai - - * bin/tao_orb_tests.lst - - Added DII collocation oneway test. This is the regression test - for bugzilla #2545. - -Fri Aug 18 15:49:01 UTC 2006 Steve Huston - - * examples/APG/Logging/Trace.h: Changed the varargs form used in the - macros from ##__VA_ARGS__ to ,__VA_ARGS__ in an effort to conform - to C99 and clear some compile warnings from gcc4. This effectively - prohibits leaving the varargs out completely from the macro - invocation but that use-case isn't exercised anyway. - - * bin/ace_tests.lst: Add protocols/tests/RMCast/run_test.pl to run - RMCast tests, except ACE_FOR_TAO builds. - -Fri Aug 18 12:03:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run Bug_2510_Regression in a ST build, it uses threading - - * bin/MakeProjectCreator/templates/bor.mpd: - Don't print a message with the dummy realclean - -Thu Aug 17 14:20:00 UTC 2006 Simon Massey - - * apps/drwho/Binary_Search.cpp: - * apps/drwho/CM_Client.cpp: - * apps/drwho/CM_Server.cpp: - * apps/drwho/Hash_Table.cpp: - * apps/drwho/Options.cpp: - * apps/drwho/Options.h: - * apps/drwho/PMC_All.cpp: - * apps/drwho/PMC_Flo.cpp: - * apps/drwho/PMC_Ruser.cpp: - * apps/drwho/PMC_Usr.cpp: - * apps/drwho/PMS_All.cpp: - * apps/drwho/PMS_Flo.cpp: - * apps/drwho/PMS_Ruser.cpp: - * apps/drwho/PMS_Usr.cpp: - * apps/drwho/Protocol_Manger.cpp: - * apps/drwho/Protocol_Record.cpp: - * apps/drwho/Rwho_DB_Manager.cpp: - * apps/drwho/Search_Struct.cpp: - * apps/drwho/Single_Lookup.cpp: - * apps/Gateway/Gateway/Gateway.cpp: - * apps/Gateway/Gateway/Options.cpp: - * apps/Gateway/Gateway/Options.h: - - Renamed the enum ID "DEBUG" to "DEBUGGING", was causing problems - with MFC builds. - -Thu Aug 17 12:15:12 UTC 2006 Johnny Willemsen - - * tests/SString_Test.cpp: - Added a check whether npos is zero, if it is print an error, - with Intel C++ 9.0 with the Microsoft platform SDK this seems - to be zero - -Thu Aug 17 08:30:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_rtevent_dnc.mpb: - Removed -Sc form the taoidlflags, it is deprecated already sometime - ago - -Wed Aug 16 22:19:47 UTC 2006 Steve Huston - - * ace/Acceptor.h: Doxygen improvements. - -Wed Aug 16 17:42:02 UTC 2006 Ossama Othman - - * ace/Numeric_Limits.h: - - Explicitly #undef min and max before including in the - Mingw case to address global namespace pollution induced - conflicts. The previous attempt to address this problem where - the Windows-specific NOMINMAX preprocessor symbol was defined in - this header didn't work since the min and max macros were - already defined beforehand. In order for NOMINMAX to work as - expected, it would be have to be defined before any Windows - headers are included, or more preferrably on the - preprocessor/compiler command line. Unfortunately, that would - probably break some applications. - -Wed Aug 16 14:51:58 UTC 2006 William R. Otte - - * docs/svn/svn-prefs.reg - * docs/svn/config - - Updated to correct keywords values, and add use-commit-times - as a default option. - -Wed Aug 16 10:19:41 UTC 2006 Johnny Willemsen - - * ace/Obstack_T.{cpp,inl}: - Moved grow_fast and freeze methods from inl to cpp file, - should fix the link problems with the RHAS IPv6 build - -Wed Aug 16 09:50:41 UTC 2006 Johnny Willemsen - - * examples/Misc/Misc.mpc: - * examples/Misc/test_timestamp.cpp: - Simple small test for ACE::timestamp() - -Wed Aug 16 08:37:41 UTC 2006 Johnny Willemsen - - * include/makeinclude/build_lib.bor: - * include/makeinclude/clean.bor: - * include/makeinclude/compiler.bor: - Removed support for the CBuilderX preview compiler, it has never - become more then preview and we don't test with it anymore - - * include/makeinclude/recurse.bor: - Removed from the repo, seems not to be used anymore - -Tue Aug 15 17:47:11 UTC 2006 Ossama Othman - - * ace/Numeric_Limits.h: - - Windows defines min/max macros that interfere with the - numeric_limits::min/max() traits. Prevent those macros from - being defined by defining the Windows-specific NOMINMAX symbol - before any Windows headers are included. This is currently - only done for Mingw builds since the problem is not exhibited by - other Windows builds (e.g. MSVC++, Borland, etc). - -Tue Aug 15 16:17:56 UTC 2006 Shanshan Jiang - - * ace/Hash_MultiMap_Manager_T.h - Made some minor changes to the documentation to use @a to refer to - argument names. - -Tue Aug 15 15:00:00 UTC 2006 Adam Mitz - - * ace/Event_Handler.cpp: - - Updated Event_Handler_var to use an ACE_Errno_Guard to - prevent overwriting the errno. - - * bin/tao_orb_tests.lst - - Added new test: TAO/tests/Oneway_Timeouts/run_test.pl - -Tue Aug 15 14:22:53 UTC 2006 Shanshan Jiang - - * ace/Hash_MultiMap_Manager_T.h - Address the "unsupported xml/html tag" warnings in doxygen build. - -Tue Aug 15 08:36:00 UTC 2006 Simon Massey - - * bin/MakeProjectCreator/config/acedefaults.mpb - - Backout all of the recent MFC changes. - - * bin/MakeProjectCreator/config/ace_opt_mfc.mpb: - - DELETED. - -Mon Aug 14 23:34:11 UTC 2006 William R. Otte - - * ace/TP_Reactor.cpp - * ace/TP_Reactor.h - - Removed all register_handler member functions from these files. - This essentially enables the ability to register signal handlers in - the TP Reactor by implicitly delegating to the select reactor base - class. - - Other register_handler methods (not relating to signal handling) - were explicit delegations to the select reactor base class, present - only to silence virtual function hiding warnings created by - disabling the signal related methods. - -Mon Aug 14 16:14:56 UTC 2006 Shanshan Jiang - - * test/Hash_Multi_Map_Manager_Test.cpp - Address the "no matching function for call" errors. - - * ace/Hash_MultiMap_Manager_T.h - Address the "unsupported xml/html tag" warnings in doxygen build. - -Mon Aug 14 16:00:00 UTC 2006 Simon Massey - - * bin/MakeProjectCreator/config/ace_mfc.mpb: - * bin/MakeProjectCreator/config/ace_opt_mfc.mpb: - - Backout the "Specific" guards. - -Mon Aug 14 15:20:00 UTC 2006 Simon Massey - - * bin/MakeProjectCreator/config/ace_mfc.mpb: - * bin/MakeProjectCreator/config/ace_opt_mfc.mpb: - - Specific the macro and don't inherit from mfc for opt. - -Mon Aug 14 15:43:12 UTC 2006 Steve Huston - - * tests/Makefile.am: Added Hash_Multi_Map_Manager_Test. - -Mon Aug 14 13:33:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/clean.bor: - Use .inl as file extension to clean instead of .i - - * bin/MakeProjectCreator/templates/bor.mpd: - Added empty realclean target - -Mon Aug 14 12:52:19 UTC 2006 Chad Elliott - - * ACE-INSTALL.html: - - I added "-type gnuace" to the options where the default project - type was assumed. Eventually, MPC will not have a default project - type. - - * include/makeinclude/macros.GNU: - * include/makeinclude/rules.common.GNU: - * include/makeinclude/rules.local.GNU: - - Added a new target to remove only the binaries (executables and - shared libraries). - -Mon Aug 14 11:15:12 UTC 2006 Johnny Willemsen - - * ace/*.h: - Added /**/ to the include of config-all.h and ACE_export.h, this - way doxygen doesn't add these files to the include graphs which - make them much easier to read - -Sun Aug 13 23:30:02 UTC 2006 Yan Dai - - * bin/tao_other_tests.lst: - - Excluded TAO POAManagerFactory and EndpointPolicy tests from - running in a minimum CORBA configuration. - -Sun Aug 13 22:21:55 UTC 2006 Shanshan Jiang - - * test/Hash_Multi_Map_Manager_Test.cpp - Address the "Implicit conversion of string literal to char * is - deprecated" warnings. - -Sun Aug 13 15:25:17 UTC 2006 Boris Kolpackov - - * bin/MakeProjectCreator/config/ciaocidldefaults.mpb: - - Removed '--' from the cidlc command line. - -Sun Aug 13 000:02:00 UTC 2006 Shanshan Jiang - - * ace/Hash_MultiMap_Manager_T.inl - * ace/Hash_MultiMap_Manager_T.cpp - * ace/Hash_MultiMap_Manager_T.h - Change the name of these files into Hash_Multi_Map_Manager.*. - Add some comments to explain in brief the purpose of using - ACE_Hash_Multi_Map_Manager class and how to use it. - Remove the backward compatibility of ACE_Hash_Multi_Map_Manager class - and its associated iterator classes. - Remove "_Ex" on the names of ACE_Hash_Multi_Map_Manager class and its - associated iterator classes. - - * ace/Hash_MultiMap_Manager.h - Remove this file since it simply includes the - Hash_MultiMap_Manager_T.h file. - - * test/Hash_MultiMap_Manager_Test.cpp - Change the name of this file into Hash_Multi_Map_Manager_Test.cpp. - Address the "convert const char* to ACE_TCHAR*" errors. - - * ace/ace.mpc - Change the name of Hash_MultiMap_Manager project into - Hash_Multi_Map_Manager. - - * test/run_test.lst - * test/tests.mpc - Change the name of Hash_MultiMap_Manager_Test project into - Hash_Multi_Map_Manager_Test. - -Fri Aug 11 16:46:56 UTC 2006 Shanshan Jiang - - * ace/Hash_MultiMap_Manager.h - * ace/Hash_MultiMap_Manager_T.cpp - * ace/Hash_MultiMap_Manager_T.h - * ace/Hash_MultiMap_Manager_T.inl - Add these files which implement Hash_MultiMap_Manager. - - * test/Hash_MultiMap_Manager_Test.cpp - Add this test file for Hash_MultiMap_Manager. - - * ace/ace.mpc - Modify this file to include Hash_MultiMap_Manager. - - * test/run_test.lst - * test/tests.mpc - Modify these files to include Hash_MultiMap_Manager_Test. - -Fri Aug 11 16:37:34 UTC 2006 Steve Huston - - * tests/CDR_File_Test.cpp: Corrected a signed/unsigned compare. - -Fri Aug 11 13:59:12 UTC 2006 Johnny Willemsen - - * ace/CDR_Size.cpp: - Add include of OS_Memory.h to get ACE_align_binary - - * ace/Sig_Handler.cpp: - Add include of Guard_T.h to get the guards - - * ace/config-vxworks6.3.h: - Add some code for the diab compiler but this is not complete - support, just some testing results. - -Fri Aug 11 07:17:12 UTC 2006 Johnny Willemsen - - * docs/svn/config: - * docs/svn/svn-prefs.reg: - Added settings for .idl and .pidl - -Thu Aug 10 13:14:12 UTC 2006 Johnny Willemsen - - * bin/tao_other_tests.lst: - Disabled the performance tests on OpenVMS for the moment, they - result in too much error logs - -Thu Aug 10 10:33:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - Updated for -GX - -Thu Aug 10 09:38:13 UTC 2006 Simon McQueen - - * bin/tao_other_tests.lst: - - Exclude Bug_2615_Regression from running on 'ACE for TAO' builds. - -Thu Aug 10 01:52:34 UTC 2006 Steve Huston - - * ace/config-aix-4.x.h: Added ACE_HAS_TEMPLATE_TYPEDEFS for Visual - Age C++ 6 and higher. - -Wed Aug 9 14:15:18 UTC 2006 Ciju John - - * bin/MakeProjectCreator/config/csd_threadpool.mpb: - - Added a dependency upon threads.mpb as this project shouldn't be - built if thread support is not going to be built into TAO. - -Wed Aug 9 13:45:00 UTC 2006 Simon Massey - - * bin/MakeProjectCreator/config/acedefaults.mpb - - Typo, Remove the + character that came with the patch file. - -Wed Aug 9 12:17:00 UTC 2006 Simon Massey - - * bin/MakeProjectCreator/config/ace_opt_mfc.mpb - * bin/MakeProjectCreator/config/acedefaults.mpb - - Chad's new fix for MPC building MFC projects. - -Tue Aug 8 14:00:06 UTC 2006 Carlos O'Ryan - - * Merged in all the changes from the fix_bug_2540 branch, that is, - from revision 73857 to revision 73859. - - Thu Aug 3 21:49:27 UTC 2006 Carlos O'Ryan - - * ace/TP_Reactor.cpp: - * ace/Select_Reactor_T.cpp: - Avoid the problems described in bug 2540 by detecting the - infinite loop and recomputing the number of active handlers. - Thanks to Jody Hagins for correcting my original "fix." - -Tue Aug 8 14:05:00 UTC 2006 Simon Massey - - * bin/MakeProjectCreator/config/ace_mfc.mpb - * bin/MakeProjectCreator/config/acedefaults.mpb - - Reverted Chad's fix for MPC building MFC projects. - It seems that this causes non MFC builds to build as MFC - breaking the scoreboard. - -Tue Aug 8 09:30:12 UTC 2006 Johnny Willemsen - - * ACE.mwc: - Removed several directories which aren't existing anymore - -Tue Aug 8 09:28:12 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Removed some parts of the VxWorks building instructions because - it was really wrong what was said - -Tue Aug 8 09:15:00 UTC 2006 Simon Massey - - * ace/OS_Memory.h - * ace/config-win32-msvc.h - * bin/MakeProjectCreator/config/ace_mfc.mpb - * bin/MakeProjectCreator/config/acedefaults.mpb - - Chad's fix for MPC building MFC projects. Correction for - Thu Apr 27 21:04:08 UTC 2006 Steve Huston - throw CMemoryException on out-of-memory condition. These - exceptions must be caught by pointer and thrown via calling - AfxThrowMemoryException (). - -Tue Aug 8 08:06:12 UTC 2006 Johnny Willemsen - - * ace/Select_Reactor_Base.cpp: - * ace/Select_Reactor_T.cpp: - Const improvements, use bool when possible - -Tue Aug 8 07:46:12 UTC 2006 Johnny Willemsen - - * bin/generate_rel_manpages: - * bin/make_release: - Did a little bit of cleanup removing old things - -Tue Aug 8 07:11:12 UTC 2006 Johnny Willemsen - - * ace/Select_Reactor_T.cpp (dump): - Removed usage of not needed operator++ on the handle set - -Mon Aug 7 08:02:12 UTC 2006 Johnny Willemsen - - * ace/Handle_Set.{h,cpp}: - Removed operator++, it is deprecated and nothing more then a noop - -Fri Aug 4 07:57:12 UTC 2006 Johnny Willemsen - - * ace/Asynch_IO.h: - * ace/Event_Handler.h: - * ace/Framework_Component_T.h: - * ace/Hash_Map_Manager_T.h: - * ace/IO_SAP.h: - * ace/Local_Tokens.h: - * ace/LSOCK_Connector.h: - * ace/Map_Manager.h: - * ace/Map_T.h: - * ace/WFM_Reactor.h: - Doxygen improvements - -Thu Aug 3 10:39:12 UTC 2006 Johnny Willemsen - - * ace/Connector.h: - Improved documentation - -Wed Aug 2 22:54:24 UTC 2006 Phil Mesnier - - * THANKS: Added Eric Danielou to the hall of fame. - -Wed Aug 2 21:27:59 UTC 2006 Adam Mitz - - * bin/PerlACE/Run_Test.pm: - - Added two new packaged-scoped variables, $PerlACE::ACE_ROOT and - $PerlACE::TAO_ROOT. $PerlACE::TAO_ROOT is set to the TAO_ROOT - environment variable, if one exists. If not it is set to - $ACE_ROOT/TAO. $PerlACE::ACE_ROOT is the same as the ACE_ROOT - envrionment variable so it's just there for convenience and for - symmetry. - -Wed Aug 2 20:19:04 UTC 2006 Adam Mitz - - * bin/tao_other_tests.lst: - Added new test (TAO/orbsvcs/tests/ImplRepo/Bug_2604_Regression). - -Wed Aug 2 18:16:12 UTC 2006 Johnny Willemsen - - * ace/Connector.cpp: - Const improvements - - * ace/Caching_Utility_T.h: - * ace/config-lite.h: - * ace/Event_Handler.h: - * ace/Framework_Component.h: - * ace/Lock.h: - * ace/Lock_Adapter_T.h: - * ace/Null_Mutex.h: - * ace/Object_Manager.h: - * ace/Object_Manager_Base.h: - * ace/Proactor.cpp: - * ace/Process_Manager.h: - * ace/Semaphore.h: - * ace/Thread_Exit.h: - Doxygen improvements - -Wed Aug 2 15:50:48 UTC 2006 Simon McQueen - - * bin/tao_other_tests.lst: - - Schedule bugzilla #2615 regression test. - -Wed Aug 2 14:55:45 UTC 2006 Chad Elliott - - * ACE-INSTALL.html: - - Updated the location of the MPC documentation. It was moved from - the MPC root directory to a docs directory. - - * bin/ChangeLogEditor/CVSFileLocator.pm: - * bin/ChangeLogEditor/ChangeLogEdit.pm: - * bin/ChangeLogEditor/ChangeLogEntry.pm: - * bin/ChangeLogEditor/FileLocator.pm: - * bin/ChangeLogEditor/SVNFileLocator.pm: - * bin/cle.pl: - - Added better support for subversion and it now reports errors from - cvs/svn. - - * bin/MakeProjectCreator/README: - - Updated to provide information on anonymously checking out MPC - using Subversion. - - * bin/make_release: - - I added "-type gnuace" to the options where the default project - type was assumed. Eventually, MPC will not have a default project - type. - -Wed Aug 2 13:47:12 UTC 2006 Johnny Willemsen - - * docs/ACE-development-process.html: - Document the fact that people should test on at least two - platforms and should be available for some days after they - commit a change. - -Wed Aug 2 11:16:12 UTC 2006 Johnny Willemsen - - * docs/Download.html: - Also put the download page from deuce.doc under svn control - so that we can update it for the svn conversion - -Wed Aug 2 11:07:12 UTC 2006 Johnny Willemsen - - * docs/bczar/bczar.html: - * docs/bczar/privileges.html: - Added documents that where on deuce.doc, the documentation - for the bczar how to create a release should really be handled - with care, so put them under svn control - -Tue Aug 1 20:23:50 UTC 2006 Adam Mitz - - * ace/config-macosx-tiger.h: - Added preliminary support for Mac OS X 10.4 on Intel CPU's. - -Tue Aug 1 20:00:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.3.h: - Enabled some features in ACE because vxworks 6.3 delivers more system - api's - -Mon Jul 31 19:23:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_stropts.inl (ioctl): - Check for ACE_HAS_IOCTL_INT_3_PARAM to make it easier to handle - the different VxWorks versions - - * config-vxworks5.x.h: - * config-vxworks6.2.h: - * config-vxworks6.3.h: - Added ACE_HAS_IOCTL_INT_3_PARAM - -Mon Jul 31 18:48:12 UTC 2006 Johnny Willemsen - - * Containers_T.{h,cpp}: - * Hash_Map_Manager_T.{h,cpp}: - * Map_Manager.{h,inl}: - * Node.{h,cpp}: - Removed check for !ACE_HAS_BROKEN_NOOP_DTORS, this define is - not in any config file - - * config-unixware-7.1.0.udk.h: - Removed commented out define - - * Token_Collection.{h,cpp}: - * Token_Manager.{h,inl}: - Changed debug flag to be a bool - - * SOCK_Dgram_Bcast.h - * TP_Reactor.h - * Signal.h - * Thread.h - * Thread_Adapter.h - Documentation updates - -Mon Jul 31 14:57:08 UTC 2006 Steve Huston - - * apps/Makefile.am: Removed hard-coded inclusion of gperf in the - SUBDIRS list; it's an optional piece; see also - Tue Jun 20 20:19:37 UTC 2006 Steve Huston - Thanks to Robert Schwebel for this fix. - -Mon Jul 31 14:36:12 UTC 2006 Johnny Willemsen - - * etc/*.doxygen: - Cleanup of these files - -Sat Jul 29 11:26:12 UTC 2006 Johnny Willemsen - - * ace/config-icc-common.h: - Added fix for Intel C++ 9.1 - -Fri Jul 28 15:32:27 UTC 2006 William R. Otte - - * ace/SSL/Makefile.am - * ace/QoS/Makefile.am - * performance-tests/Synch-Benchmarks/Base_Test/Makefile.am - * performance-tests/Synch-Benchmarks/Perf_Test/Makefile.am - * Kokyu/Makefile.am - * apps/JAWS/clients/Caching/Makefile.am - * ACEXML/apps/svcconf/Makefile.am - * ACEXML/common/Makefile.am - * ACEXML/parser/parser/Makefile.am - * ACEXML/examples/SAXPrint/Makefile.am - * websvcs/lib/Makefile.am - * examples/ASX/Event_Server/Event_Server/Makefile.am - * examples/ASX/UPIPE_Event_Server/Makefile.am - * examples/Service_Configurator/IPC-tests/server/Makefile.am - - Updated to comply with the .i->.inl changes from: - Thu Jul 27 20:30:26 UTC 2006 William R. Otte - -Fri Jul 28 12:17:12 UTC 2006 Johnny Willemsen - - * Kokyu/DSRT_Dispatch_Item_T.inl: - * ACEXML/parser/parser/Parser.inl: - Fixed file tag - -Thu Jul 27 20:30:26 UTC 2006 William R. Otte - - * ace/SSL/SSL_SOCK_Connector.h - * ace/SSL/SSL_SOCK_Acceptor.inl - * ace/SSL/SSL_SOCK_Acceptor.cpp - * ace/SSL/SSL_SOCK_Connector.i - * ace/SSL/SSL_SOCK_Stream.h - * ace/SSL/SSL_SOCK_Stream.i - * ace/SSL/SSL_SOCK_Acceptor.h - * ace/SSL/SSL_SOCK_Acceptor.i - * ace/SSL/SSL_SOCK.cpp - * ace/SSL/SSL_SOCK.inl - * ace/SSL/SSL_SOCK.h - * ace/SSL/SSL_SOCK.i - * ace/SSL/SSL_SOCK_Connector.cpp - * ace/SSL/SSL_SOCK_Connector.inl - * ace/SSL/SSL_SOCK_Stream.cpp - * ace/SSL/SSL_SOCK_Stream.inl - * ace/QoS/SOCK_Dgram_Mcast_QoS.inl - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp - * ace/QoS/QoS_Session_Impl.cpp - * ace/QoS/QoS_Session_Impl.inl - * ace/QoS/SOCK_Dgram_Mcast_QoS.h - * ace/QoS/SOCK_Dgram_Mcast_QoS.i - * ace/QoS/QoS_Session_Impl.h - * ace/QoS/QoS_Session_Impl.i - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.inl - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.h - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.i - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.inl - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.h - * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.i - * Kokyu/Kokyu_dsrt.cpp - * Kokyu/Kokyu_dsrt.inl - * Kokyu/Kokyu.cpp - * Kokyu/Kokyu.inl - * Kokyu/Kokyu_defs.h - * Kokyu/Kokyu_defs.i - * Kokyu/Dispatcher_Impl.h - * Kokyu/Dispatcher_Impl.i - * Kokyu/Default_Dispatcher_Impl.h - * Kokyu/Default_Dispatcher_Impl.i - * Kokyu/Dispatch_Deferrer.h - * Kokyu/Dispatch_Deferrer.i - * Kokyu/DSRT_Dispatcher_Impl_T.h - * Kokyu/DSRT_Dispatcher_Impl_T.i - * Kokyu/DSRT_Dispatch_Item_T.h - * Kokyu/DSRT_Dispatch_Item_T.i - * Kokyu/Kokyu_dsrt.h - * Kokyu/Kokyu_defs.cpp - * Kokyu/Kokyu_defs.inl - * Kokyu/Kokyu_dsrt.i - * Kokyu/Kokyu.h - * Kokyu/Dispatcher_Impl.cpp - * Kokyu/Dispatcher_Impl.inl - * Kokyu/Kokyu.i - * Kokyu/Default_Dispatcher_Impl.cpp - * Kokyu/Default_Dispatcher_Impl.inl - * Kokyu/Dispatch_Deferrer.cpp - * Kokyu/Dispatch_Deferrer.inl - * Kokyu/DSRT_Dispatcher_Impl_T.cpp - * Kokyu/DSRT_Dispatcher_Impl_T.inl - * Kokyu/DSRT_Dispatch_Item_T.cpp - * Kokyu/DSRT_Dispatch_Item_T.inl - * apps/JAWS/clients/Caching/Local_Locator.inl - * apps/JAWS/clients/Caching/Local_Locator.cpp - * apps/JAWS/clients/Caching/URL_Properties.inl - * apps/JAWS/clients/Caching/URL_Properties.cpp - * apps/JAWS/clients/Caching/Local_Locator.h - * apps/JAWS/clients/Caching/Local_Locator.i - * apps/JAWS/clients/Caching/URL_Properties.h - * apps/JAWS/clients/Caching/URL_Properties.i - * apps/JAWS/clients/Caching/Locator_Request_Reply.cpp - * apps/JAWS/clients/Caching/Locator_Request_Reply.inl - * apps/JAWS/clients/Caching/Locator_Request_Reply.h - * apps/JAWS/clients/Caching/Locator_Request_Reply.i - * apps/JAWS2/HTTPU/http_response.h - * apps/JAWS2/HTTPU/http_response.i - * apps/JAWS2/HTTPU/http_base.inl - * apps/JAWS2/HTTPU/http_base.cpp - * apps/JAWS2/HTTPU/http_headers.h - * apps/JAWS2/HTTPU/http_headers.i - * apps/JAWS2/HTTPU/http_status.inl - * apps/JAWS2/HTTPU/http_status.cpp - * apps/JAWS2/HTTPU/parse_http_request.h - * apps/JAWS2/HTTPU/http_request.inl - * apps/JAWS2/HTTPU/parse_http_request.i - * apps/JAWS2/HTTPU/http_request.cpp - * apps/JAWS2/HTTPU/parse_http_response.h - * apps/JAWS2/HTTPU/http_response.cpp - * apps/JAWS2/HTTPU/parse_http_response.i - * apps/JAWS2/HTTPU/http_response.inl - * apps/JAWS2/HTTPU/http_headers.inl - * apps/JAWS2/HTTPU/http_headers.cpp - * apps/JAWS2/HTTPU/http_base.h - * apps/JAWS2/HTTPU/http_base.i - * apps/JAWS2/HTTPU/parse_http_request.inl - * apps/JAWS2/HTTPU/parse_http_request.cpp - * apps/JAWS2/HTTPU/http_status.h - * apps/JAWS2/HTTPU/parse_http_response.cpp - * apps/JAWS2/HTTPU/parse_http_response.inl - * apps/JAWS2/HTTPU/http_status.i - * apps/JAWS2/HTTPU/http_request.h - * apps/JAWS2/HTTPU/http_request.i - * ACEXML/apps/svcconf/Svcconf_Handler.cpp - * ACEXML/apps/svcconf/Svcconf_Handler.inl - * ACEXML/apps/svcconf/Svcconf_Handler.h - * ACEXML/apps/svcconf/Svcconf_Handler.i - * ACEXML/common/AttributesImpl.cpp - * ACEXML/common/LocatorImpl.cpp - * ACEXML/common/Env.cpp - * ACEXML/common/Exception.cpp - * ACEXML/common/SAXExceptions.h - * ACEXML/common/SAXExceptions.i - * ACEXML/common/AttributesImpl.h - * ACEXML/common/AttributesImpl.i - * ACEXML/common/XMLFilterImpl.cpp - * ACEXML/common/Env.h - * ACEXML/common/SAXExceptions.cpp - * ACEXML/common/Env.i - * ACEXML/common/Exception.h - * ACEXML/common/Exception.i - * ACEXML/common/AttributesImpl.inl - * ACEXML/common/LocatorImpl.inl - * ACEXML/common/Env.inl - * ACEXML/common/XMLFilterImpl.h - * ACEXML/common/XMLFilterImpl.i - * ACEXML/common/Exception.inl - * ACEXML/common/XMLFilterImpl.inl - * ACEXML/common/LocatorImpl.h - * ACEXML/common/LocatorImpl.i - * ACEXML/common/SAXExceptions.inl - * ACEXML/parser/debug_validator/Element_Tree.i - * ACEXML/parser/debug_validator/Element_Tree.cpp - * ACEXML/parser/debug_validator/Element_Tree.inl - * ACEXML/parser/debug_validator/Element_Tree.h - * ACEXML/parser/parser/Parser.h - * ACEXML/parser/parser/Parser.i - * ACEXML/parser/parser/Entity_Manager.cpp - * ACEXML/parser/parser/Entity_Manager.inl - * ACEXML/parser/parser/Entity_Manager.h - * ACEXML/parser/parser/Entity_Manager.i - * ACEXML/parser/parser/Parser.cpp - * ACEXML/parser/parser/Parser.inl - * ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp - * ACEXML/examples/SAXPrint/SAXPrint_Handler.inl - * ACEXML/examples/SAXPrint/SAXPrint_Handler.h - * ACEXML/examples/SAXPrint/SAXPrint_Handler.i - * websvcs/lib/URL_Addr.h - * websvcs/lib/URL_Addr.i - * websvcs/lib/URL_Addr.cpp - * websvcs/lib/URL_Addr.inl - * examples/ASX/Event_Server/Event_Server/Options.h - * examples/ASX/Event_Server/Event_Server/Options.i - * examples/ASX/Event_Server/Event_Server/Options.inl - * examples/ASX/UPIPE_Event_Server/Options.h - * examples/ASX/UPIPE_Event_Server/Options.i - * examples/ASX/UPIPE_Event_Server/Options.inl - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.inl - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.inl - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.inl - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.inl - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.inl - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.inl - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.inl - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.inl - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.inl - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.inl - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i - - Moved the .i file to .inl (with history), changed the includes in the - .cpp and .h files to match, removed the .i file. - -Thu Jul 27 18:43:12 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Some more updates to refer to the subversion archive - -Thu Jul 27 13:57:31 UTC 2006 William R. Otte - - * docs/svn/config - - Fixed syntax errors. thanks to Adam Mitz for reporting them. - -Thu Jul 27 10:14:12 UTC 2006 Johnny Willemsen - - Committing some small changes I had pending to see how svn behaves now - with updates and status info on the build systems. - - * ace/Recursive_Thread_Mutex.{h,cpp}: - Changed removed_ to a bool - - * ace/Thread_Mutex.{h,cpp,inl}: - Changed removed_ to a bool and removed ACE_USES_OBSOLETE_GUARD_CLASSES - support. - -Thu Jul 27 07:37:12 UTC 2006 Johnny Willemsen - - * etc/tao.doxygen: - * etc/tao_portableserver.doxygen: - Set ignore prefix - - * Kokyu/Dispatcher_Task.i - * Kokyu/Dispatcher_Task.inl - Renamed .i to .inl so that we can have a look how subversion stores - this in the history - - * Kokyu/Dispatcher_Task.cpp - * Kokyu/Dispatcher_Task.h - * Kokyu/Makefile.am - Updated for the change above. - -Wed Jul 26 07:25:12 UTC 2006 Johnny Willemsen - - * bin/sets-manager.py: - Fixed typo - -Wed Jul 26 07:25:12 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - * html/Stats/index.shtml: - * docs/ACE-bug-process.html: - Updated documentation to point to the new svn repository - -Tue Jul 25 21:51:07 UTC 2006 William R. Otte - - * bin/PythonACE/fuzz/max_project_len.py - * bin/PythonACE/fuzz/inline.py - - Fixed errors in these checks. - -Tue Jul 25 20:52:51 UTC 2006 William R. Otte - - * bin/PythonACE/fuzz/cpp_inline.py - - Fixed this check, it was incorrectly matching ACE_INLINES inside - defines and comments. - -Tue Jul 25 20:16:26 UTC 2006 William R. Otte - - * docs/svn/svn-prefs.reg - * docs/svn/config - - Updated to add global-ignores to mimic .cvsignore functionality. - -Tue Jul 25 19:40:54 UTC 2006 William R. Otte - - * bin/PythonACE/__init__.py - - This enables PythonACE to be loaded as a module. - - * bin/PythonACE/fuzz/check_includes.py - * bin/PythonACE/fuzz/no_conflict_markers.py - - Fixed these checks, they were incorrectly flagging errors. - - * bin/fuzz.py - - Command line fuzz client that uses the PythonACE fuzz module. - - * bin/sets-manager.py - - Corrected this file to point at DOC/Middleware instead of ACE/Middleware. - -Mon Jul 24 23:58:33 UTC 2006 William R. Otte - - * docs/svn/svn-prefs.reg - * docs/svn/config - - Updated these files to add svn:keywords to most text types. - -Mon Jul 24 23:53:53 UTC 2006 William R. Otte - - * bin/create_ace_build.pl - - Fix provided by Steve Huston to prevent this script from building - links from .svn directories. - -Mon Jul 24 19:17:37 UTC 2006 William R. Otte - - * bin/fuzz.pl - - Disabled the ID string check until the script can be fixed to ignore - .svn directories. - -Mon Jul 24 15:45:34 UTC 2006 William R. Otte - - * Subversion conversion completed at revision 73730 - -Sun Jul 23 15:44:43 UTC 2006 William R. Otte - - * Repository frozen for repository conversion - -Sun Jul 23 11:17:31 UTC 2006 Johnny Willemsen - - * bin/make_release: - Don't exclude the other mwc files for vc71/vc8, this will create then - some more workspace files which just contain a subset of the projects - -Sun Jul 23 09:25:12 UTC 2006 Olli Savia - - * NEWS: - Added a note about TTY_IO API change. - -Sat Jul 22 19:12:10 UTC 2006 William R. Otte - - * docs/svn/config - * docs/svn/svn-prefs.reg - - These are client side configuration files for Subversion. Currently, - the automate setting svn:eol-style and svn:executable properties on - newly added files. - -Sat Jul 22 18:28:33 UTC 2006 William R. Otte - - * bin/sets-manager.py - - First cut of a branching script for subverion. Pass --help - to get documentation. - -Fri Jul 21 13:28:31 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - Updated because of -oS addition to tao_idl - -Fri Jul 21 13:17:31 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.cpp: - Const improvements and initialise pointer with 0 - -Thu Jul 20 21:44:31 UTC 2006 Iliyan Jeliazkov - - * tests/Service_Config_Test.cpp: - - In testLimits (), surrounded string literals with ACE_TEXT to - fix a build error on wchar builds. - -Thu Jul 20 16:42:04 UTC 2006 Ossama Othman - - * ace/Basic_Types.h: - - Removed ACE_NTOHLL function. It was experimental, untested and - not ready for the ACE sources just yet. - - Removed "ace/os_include/netinet/os_in.h" include directive. Now - that ACE_NTOHLL has been removed it is no longer necessary. - - * ace/Numeric_Limits.h: - - Commented out "{unsigned} long long" specializations in the - ACE_LACKS_NUMERIC_LIMITS case. They're currently not used, and - we need - -Thu Jul 20 15:19:30 UTC 2006 Douglas C. Schmidt - - * ace/Basic_Types.h: Added - - # include "ace/os_include/netinet/os_in.h" // Get ntohl() - - and added the inline keyword to ACE_NTOHLL() to fix the problems - introduced with - - Wed Jul 19 22:46:51 UTC 2006 Ossama Othman - -Thu Jul 20 15:01:32 UTC 2006 Douglas C. Schmidt - - * ace/Configuration.cpp: Made - ACE_Configuration_ExtId::operator==() and - ACE_Configuration_ExtId::operator!=() case insensitive. Thanks - to Domingos Monteiro for this - contribution. - -Thu Jul 20 09:57:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/tao_no_iiop.mpb: - New feature to disable iiop in TAO - - * bin/MakeProjectCreator/config/global.features: - Set tao_no_iiop to 0 by default - -Thu Jul 20 09:11:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Doxygen improvements - -Thu Jul 20 08:55:12 UTC 2006 Johnny Willemsen - - * ace/Mutex.{h,cpp,inl}: - Made the removed_ member a bool instead of an int - -Thu Jul 20 08:37:17 UTC 2006 Olli Savia - - * ace/TTY_IO.cpp: - Fixed compile error on VxWorks. Thanks to Johnny for pointing - out the problem. - -Wed Jul 19 23:39:05 UTC 2006 William R. Otte - - * bin/PythonACE/fuzz/__init__.py - * bin/PythonACE/fuzz/_generic_handler.py - * bin/PythonACE/fuzz/_mailer.py - * bin/PythonACE/fuzz/_singleton.py - * bin/PythonACE/fuzz/_warning_handler.py - * bin/PythonACE/fuzz/streams_include.py - - Changes necessary to support mailing (non-fatal) Fuzz errors to - the user that attempts a commit. streams_include is an example - of a fuzz check that sends warnings instead of stopping commits. - -Wed Jul 19 22:46:51 UTC 2006 Ossama Othman - - * ace/Basic_Types.h (ACE_INT64, ACE_UINT64): - - Silence g++ "-pedantic" warnings regarding use of "long long" - type by preceding the typedef with the g++ __extension__ - keyword. - -Wed Jul 19 21:15:51 UTC 2006 Iliyan Jeliazkov - - * NEWS: - - Updated the file with a note announcing the interface change - from "Wed Jul 19 20:11:52 UTC 2006". - -Wed Jul 19 20:11:52 UTC 2006 Iliyan Jeliazkov - - * ace/ACE.h: - * ace/ACE.cpp: - - Changing ACE::debug () to use boolean instead of char. - - * ace/Acceptor.cpp: - * ace/DLL_Manager.cpp: - * ace/Dynamic_Service_Dependency.cpp: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/Service_Gestalt.cpp: - * ace/Service_Object.cpp: - * ace/Service_Repository.cpp: - * ace/Service_Types.cpp: - - Updating places where ACE::debug() return value is interpreted - as a integral type. - - * tests/Service_Config_Test.cpp: - - Fixing the test to correctly account for XML-based service - configurations. - -Wed Jul 19 15:53:09 UTC 2006 William R. Otte - - * bin/PythonACE/fuzz/__init__.py - * bin/PythonACE/fuzz/_fuzz.py - * bin/PythonACE/fuzz/_generic_handler.py - * bin/PythonACE/fuzz/_path.py - * bin/PythonACE/fuzz/_types.py - * bin/PythonACE/fuzz/check_includes.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/verify_changelog.py - - This is a python module designed to eventually replace the - bin/fuzz.pl script. Each .py file in the fuzz directory that - does not have a _ at the beginning of its filename contains a - single check. New fuzz checks can be added to the system simply - by creating a new file in the fuzz directory. Care should be - taken to select a filename that does not conflict with an - existing python module. - - ptr_arith_t.py and inline.py are good examples that use the - generic handler to implement their checks, max_project_len is a - good example of a check that does not use the generic handler. - -Wed Jul 19 15:07:29 UTC 2006 Iliyan Jeliazkov - - * ace/DLL_Manager.cpp: - - Fixing a build problem on HP and Windows, as a consequence of my - earlier change: "Tue Jul 18 19:17:54 UTC 2006". Moral: use - ACE_TEXT around literal expressions only. - -Wed Jul 19 13:55:39 UTC 2006 Olli Savia - - * examples/IPC_SAP/DEV_SAP/reader/reader.cpp: - * examples/IPC_SAP/DEV_SAP/writer/writer.cpp: - Updated to reflect changes below. - -Wed Jul 19 13:39:13 UTC 2006 Olli Savia - - * ace/TTY_IO.h: - Changed type of rtsenb from 'int' to 'unsigned char'. - Updated documentation to note that 'parityenb' member is - now deprecated. - - * ace/TTY_IO.cpp: - Changed constructor of Serial_Params class to assign sensible - values to class members. - -Wed Jul 19 10:47:31 UTC 2006 Steve Huston - - * tests/Proactor_Timer_Test.cpp: Corrected compile warning re static. - -Wed Jul 19 08:00:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_config_handlers_base.mpb: - Use exceptions as base project - -Wed Jul 19 7:14:10 UTC 2006 Ossama Othman - - * ace/String_Base.h (size_type): - - Explicitly bring the ACE_String_Base_Const::size_type typedef - into the ACE_String_Base<> scope through a "using" declaration. - IBM Visual Age 6 and Sun Studio 10 have difficulty resolving the - name otherwise. - - * ace/SString.cpp: - - Replaced std::numeric_limits<>::max() call that was - inadvertently introduced with its ACE_Numeric_Limits<> - counterpart. The former is not available on VxWorks. - -Tue Jul 18 22:52:38 UTC 2006 Steve Huston - - * tests/Message_Queue_Test_Ex.cpp: Rearranged the pieces left out of - single-threaded builds; should correct single-threaded builds. - -Tue Jul 18 20:50:49 UTC 2006 Douglas C. Schmidt - - * Happy Birthday to me!! - -Tue Jul 18 19:17:54 UTC 2006 Iliyan Jeliazkov - - This change is in response to bug#2602, which was reported by - Lothar Werzinger . It fixes a - problem with trying to use XML as the service configuration file - format. The change also includes additional comments and - in-line documentation on the new ability to use local service - repositories. - - * ace/DLL_Manager.cpp: - - Updated the debugging output of DLL_Handle::open() to be able to - see _why_ a DLL open failed. For example, the errno message is - 'not found' in a case where one tries to open library A, which - in turn depends on library B, but B is missing. This change - allows one to see the underlying cause for the error - (via DLL_Handle::error(), if ACE_DEBUG=2, or greater is - present). - - * ace/Parse_Node.h: - * ace/Parse_Node.cpp: - - Moving the ACE_Service_Type_Factory here, from - Service_Config.{h,cpp} This class is only needed when - ACE_USES_CLASSIC_SVC_CONF is 1, i.e. when ACE is using the - non-XML configuration file format. Therefore, moving it to - Parse_Node.{h,cpp} causes it to compile only if needed. - - * ace/Service_Config.h: - - Removed the static get_xml_svc_conf() method, as it already has - the required implementation in the base class. - - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.cpp: - - Moved the ACE_Service_Type_Factory class to Parse_Node.{h,cpp}. - Updated the documentation with a more clear description of the - class responsibilities. Corrected minor omissions. - -Tue Jul 18 18:12:17 UTC 2006 Douglas C. Schmidt - - * ACE-INSTALL.html: Updated the description of how to build - ACE+TAO using MPC. Thanks to Steve Totten for helping with - this. - -Tue Jul 18 19:04:42 UTC 2006 Ossama Othman - - * ace/Numeric_Limits.h: - - Corrected short integer limit constants, i.e. "s/SHORT/SHRT/g". - - Try other known "long long" integer constants if - "{U}LLONG_{MIN,MAX}" are not available. Issue a preprocessor - error if all known cases have been exhausted. - -Tue Jul 18 16:55:31 UTC 2006 Ossama Othman - - * ace/Makefile.am (libACE_la_SOURCES, nobase_include_HEADERS): - - Added new Sig_{Adapter,Handler}.* source and header files. - -Mon Jul 17 23:18:52 UTC 2006 Douglas C. Schmidt - - * ace/README: Documented the ACE_TIMEPROBE_ASSERTS_FIXED_SIZE macro. - -Mon Jul 17 23:16:55 UTC 2006 Douglas C. Schmidt - - * ace/Timeprobe_T.cpp (timeprobe): Added a check to guard against - segfaults by wrapping the index around when it reaches the end - of the buffer. Thanks to Patrick Rabau for this fix. - -Tue Jul 18 13:21:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2595_Regression - -Tue Jul 18 12:48:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - Fixed the rules to decide whether a .inl file should be added - or not. Thanks to Chad Elliot for noticing this incorrect - rule. - -Tue Jul 18 09:59:12 UTC 2006 Johnny Willemsen - - * bin/PerlACE/ProcessVX_Win32.pm: - Increased delay factor from 2 to 3, downloading executables - seems to take longer now - -Tue Jul 18 09:54:12 UTC 2006 Johnny Willemsen - - * bin/PerlACE/Process_Unix.pm: - Removed chorus support - -Mon Jul 17 22:52:19 UTC 2006 Steve Huston - - * ace/Proactor.cpp (schedule_timer): Record the ACE_Proactor instance - that the timer is scheduled on in the ACE_Handler; makes this - behavior analogous to that in ACE_Reactor::schedule_timer(). - - * tests/Proactor_Timer_Test.cpp: Add a test for repeating timers and - canceling a repeating timer when it's likely that an expiration for - the timer is already queued when it's canceled. - -Mon Jul 17 16:06:57 UTC 2006 Steve Huston - - * tests/Unload_libACE.cpp: Alter the libACE suffix for HP-UX on - PA-RISC only. Also see: - Fri Jul 14 19:44:03 UTC 2006 john_c - -Mon Jul 17 22:11:42 UTC 2006 Chad Elliott - - * examples/Threads/process_semaphore.cpp: - - Added #include of ace/OS_NS_stdlib.h to get ACE_OS::atoi(). - -Mon Jul 19 11:21:56 UTC 2006 Ossama Othman - - * ace/String_Base.cpp: - * ace/String_Base.inl: - - Explicitly qualify size_type parameters with "typename" to force - some compilers (Sun Studio 10) to recognize it as a type. - -Mon Jul 17 17:49:41 UTC 2006 Ossama Othman - - * include/makeinclude/platform_hpux_aCC.GNU (SOFLAGS): - - Corrected shared library path for Itanium builds. - - * protocols/ace/HTBP/HTBP_ID_Requestor.cpp (get_HTID): - - Use new ACE_CString::size_type type to hold string - position/index value, instead of "int". Addresses "comparison - between signed and unsigned" warnings. - -Mon Jul 17 16:04:07 UTC 2006 Chad Elliott - - * NEWS: - - Added information about the use of atomic operations on SPARC - Solaris. - -Mon Jul 17 15:09:21 UTC 2006 Steve Huston - - * ace/Refcounted_Auto_Ptr.{h inl} (null): Changed the return type - of the null() method from int to bool in order to more accurately - reflect the true/false nature of the returned value. - - * NEWS: Noted the above change. - -Mon Jul 17 15:05:05 UTC 2006 Steve Huston - - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: Added - include "ace/Log_Msg.h" in the "non-supported platform" case. - Fixes compile error on Windows. - -Mon Jul 17 13:03:09 UTC 2006 Chad Elliott - - * ace/ace_for_tao.mpc: - - Sig_Handler.cpp and Sig_Adapter.cpp are needed to link gperf. - -Mon Jul 17 12:49:34 UTC 2006 Chad Elliott - - * netsvcs/servers/main.cpp: - - Added a missing #include for ace/Sig_Adapter.h. - -Mon Jul 17 11:57:26 UTC 2006 Chad Elliott - - * ace/qt_reactor.mpb: - - Removed this file. It was no longer referenced by ace and it's - functionality was replaced by ace_qtreactor.mpc. - -Mon Jul 17 10:41:14 UTC 2006 Steve Huston - - * tests/Message_Queue_Test_Ex.cpp: Removed the VxWorks-specific - section from MQ_Ex_N_Tester::receiver() - it was apparantly - pulled in from another test example and didn't need to be here. - Should resolve compile errors on VxWorks. - -Mon Jul 18 09:32:12 UTC 2006 Johnny Willemsen - - * ace/config-vxworks6.3.h: - * include/makeinclude/platform_vxworks6.3.GNU: - New files for VxWorks 6.3 - - * ace/os_include/sys/os_types.h: - * ace/os_include/os_stdio.h: - * ace/OS_NS_unistd.inl: - * ace/OS_NS_arpa_inet.cpp: - Updated for VxWorks 6.3 - -Sun Jul 17 06:49:21 UTC 2006 Ossama Othman - - * apps/soreduce/Library.cpp (set_path): - * apps/soreduce/Obj_Module.cpp (add_source): - * examples/Misc/test_sstring.cpp: - * examples/Web_Crawler/Command_Processor.cpp: - * examples/Web_Crawler/URL_Visitor.cpp: - - Use new ACE_CString::size_type type to hold string - position/index value, instead of "int". Addresses "comparison - between signed and unsigned" warnings. - - * examples/APG/Signals/SigAction.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp: - - Include "ace/OS_NS_stdlib.h" to pull in ACE_OS::exit() - prototype. - - * examples/APG/Signals/SigGuard.cpp: - * examples/APG/Signals/SigHandler.cpp: - * examples/APG/Signals/SigHandlers.cpp: - * examples/APG/ThreadManagement/Signals.cpp: - * examples/APG/ThreadManagement/Signals2.cpp: - * examples/ASX/CCM_App/SC_Server.cpp: - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - * examples/Connection/blocking/SPIPE-connector.h: - * examples/Connection/misc/Connection_Handler.cpp: - * examples/Connection/non_blocking/CPP-acceptor.h: - * examples/Connection/non_blocking/CPP-connector.h: - * examples/Service_Configurator/IPC-tests/server/server_test.cpp: - * netsvcs/lib/TS_Clerk_Handler.cpp: - - Include "ace/Sig_Handler.h" or "ace/Sig_Adapter.h" to pull in - ACE_Sig_Handler or ACE_Sig_Adapter class declaration, - respectively. Necessitated by "ace/Signal.h" refactoring. - -Sun Jul 16 23:14:53 UTC 2006 Ciju John - - * ace/String_Base_Const.cpp: - - Took out an extra sem-colon. It seems to make the - FC4_Versioned_Namespace build grumpy. - -Sat Jul 15 16:14:05 UTC 2006 Ciju John - - * NEWS: - - Added entry on HPUX library extension changes. - -Fri Jul 14 22:10:02 UTC 2006 Ossama Othman - - * ace/Sig_Handler.cpp: - - Removed explicit template instantiations. They snuck back in - when Signal.* was refactored. Thanks to Johnny for pointing - this out. - -Fri Jul 14 21:32:02 UTC 2006 Ossama Othman - - * ace/Numeric_Limits.h: - - "ace/ACE_Export.h" -> "ace/ACE_export.h". Darn Windows case - insensitivity. - - Removed unnecessary "ACE_Export" from ACE_Numeric_Limits primary - template. - - * ace/Registry.cpp (make_name): - - Use ACE_TString::size_type, not ssize_t, to hold string position - values. Addresses signed/unsigned comparison warnings. - - * ace/Shared_Memory_Pool.h: - - Include new "ace/Sig_Handler.h" header to pull in - ACE_Sig_Handler class declaration. - - * ace/String_Base.h: - - Added tips to documentation related to potentially user visible - changes. - -Fri Jul 14 21:10:11 UTC 2006 Ossama Othman - - * ace/Atomic_Op.h (ACE_Atomic_Op): - * ace/Atomic_Op.inl (ACE_Atomic_Op): - - Reverted change that made the constructor parameters for the - "long" type specialization be passed in by reference to const - instead of by value. Explicit template instantiation is no - longer performed by ACE so there is no need for the - specialization constructor parameters to match the primary - template constructor parameters. - - * ace/CDR_Base.cpp: - * ace/CDR_Stream.h: - * ace/CDR_Stream.inl: - - Const-correctness improvements. - - * ace/CDR_Base.h: - - Minor const related cosmetic changes. - - * ace/CDR_Base.inl (first_size, next_size): - - Quickly multiply by two using a bit shift. This is guaranteed - to work since the variable is an unsigned integer. - - * ace/CORBA_macros.h: - - Removed unnecessary instantiation of emulated exception - environment variable from native exception case. Reduces - footprint in code that uses the ACE emulated exception macros in - a native C++ exception configuration, and provides a slight - performance increase due to resulting tighter binaries. - - * ace/DLL_Manager.cpp (get_dll_names): - - ACE_TString::rfind() now return an ACE_TString::size_type type. - Use ACE_TString::size_type, not ssize_t, to hold the return - value of ACE_TString::rfind(). - - * ace/Dev_Poll_Reactor.cpp: - - Include new "ace/Sig_Handler.h" header to pull in - ACE_Sig_Handler class declaration. - - Added support for HP-UX devpoll headers. - - * ace/Event_Handler.cpp: - - No need to include "ace/Message_Block.h". - - * ace/MMAP_Memory_Pool.h: - * ace/Select_Reactor_T.cpp: - * ace/TP_Reactor.cpp: - * ace/WFMO_Reactor.inl: - - Include new "ace/Sig_Handler.h" header to pull in - ACE_Sig_Handler class declaration. - - * ace/Malloc_Base.h (ACE_Allocator): - - Defined a new "size_type" typedef (currently a "size_t") to - simplify potential allocator size type changes in the future. - It's introduction was motivated by the ACE string class size - type fixes described below. Analogous to the STL - std::allocator<>::size_type typedef. - - * ace/Numeric_Limits.h: - - Traits containing basic integer limits. Useful for - template-based code on platforms that lack - std::numeric_limits<>. These traits are not meant to be a - replacement for std::numeric_limits<>. Rather they are a crutch - until all ACE-supported platforms support - std::numeric_limits<>. [Bug 2451] - - * ace/OS_NS_dirent.inl: - - "__USE_POSIX" -> "_POSIX_SOURCE". The former is a C library - implementation-specific feature test macro/symbol. - - * ace/OS_NS_stdio.cpp: - * ace/OS_NS_stdio.h: - * ace/OS_NS_stdio.inl (get_win32_versioninfo): - - Fixed/added missing wide character support. - - * ace/OS_NS_stdlib.cpp (mkstemp_emulation): - - Clean up preprocessor conditional blocks by taking advantage of - new ACE_Numeric_Limits<> trait templates. - - * ace/OS_NS_stdlib.inl (atop): - - Address VC++ 64-bit warnings by taking advantage of standard - intptr_t type, if available. - - * ace/OS_NS_sys_socket.inl (closesocket): - - Do not shutdown the write end here. Doing so will break - applications that duplicate a handle on fork(), for example, and - expect to continue writing in the fork()ed process. - - * ace/OS_NS_sys_utsname.cpp (uname): - - Fixed garbage in wide string output. - - * ace/Object_Manager.cpp: - - No need to include "ace/Containers.h". - - Include newly refactored "ace/Sig_Adapter.h" instead of old - "ace/Signal.h". Removes dependency on the ACE_Reactor. Allows - service configurator-disabled subset containing - ACE_Object_Manager support to be built, e,g, MPC ace_svcconf=0 - configuration. - - * ace/Object_Manager_Base.cpp (init): - * ace/Process.cpp (pass_handle): - - Fixed Windows version info handling in wide string - configurations. - - * ace/Process_Manager.h (wait): - - Clarified that the timeout value is a relative time, not - absolute, in the documentation. - - * ace/SOCK_Acceptor.cpp (shared_open): - - Removed assertion that assumes all protocol families are - internet related. This method is invoked by some non-internet - protocol subclasses, such as ACE_LSOCK_Acceptor. - - * ace/SOCK_Stream.cpp (close): - - Reinstituted explicit close_writer() method call for the - ACE_WIN32 case since ACE_OS::close() no longer causes the writer - to be shutdown on Windows (nor should it!). - - * ace/Service_Config.cpp: - - Replaced old "ace/Signal.h" include directive with - "ace/Sig_Adapter.h". ACE_Sig_Handler support is unnecessary. - - Removed redundant "ace/Service_Config.h" include directive. - - * ace/Sig_Adapter.cpp: - * ace/Sig_Adapter.h: - * ace/Sig_Handler.cpp: - * ace/Sig_Handler.h: - * ace/Sig_Handler.inl: - * ace/Signal.cpp: - * ace/Signal.h: - * ace/Signal.inl: - - Refactored ACE_Sig_Adapter and ACE_Sig_Handler classes from - "ace/Signal.*" into their own dedicated source files. Allows - ACE_Sig_{Guard,Set} to be used without introducing a dependency - on the ACE_Reactor framework. - - * ace/String_Base_Const.cpp (npos): - * ace/String_Base_Const.h (npos): - - Introduced a new "size_type" typedef. This is consistent with - the standard C++ string class typdef/trait. - - The "no position" constant is now an unsigned integer of the - same "size" type used by the underlying ACE string allocator. - It is defined to be the maximum value the unsigned type can - handle (e.g. ACE_Numeric_Limits::max()). This works - since a string length will always be less than or equal to - "max() - 1" since the final character in the string is the null - terminator. [Bug 2598] - - * ace/String_Base.cpp: - * ace/String_Base.h: - * ace/String_Base.inl: - * ace/SString.cpp: - * ace/SString.h: - * ace/SString.inl: - - All size parameter and return value types are now consistent - with the size type of the underlying allocator - (i.e. ACE_Allocator::size_type). Addresses inability of ACE - string classes to provide valid search index for string lengths - greater than the maximum value of ssize_t, a signed type. In - particular, the find(), rfind() and strstr() methods now return - an unsigned integer (size_t) instead of a signed one - (ssize_t). Affected classes include: - - ACE_CString - ACE_WString - ACE_TString - ACE_NS_WString - - Unless you have been explicitly using -1 instead of npos when - comparing the return value of find(), rfind() and strstr(), - and/or assigning the return value to ssize_t you should not see - any difference. A new size_type typedef has been added to the ACE - string class to aid developers. - - The ACE_String_Base<>::strstr() documentation as well as a - default rfind() argument erroneously referred to -1 instead of - npos. Those instances have been corrected. - - To summarize, a "no position" condition is denoted using the npos - constant, not -1. It can be referred directly by scoping it with - the appropriate string class (e.g. ACE_CString::npos, - ACE_WString::npos, etc). [Bug 2598] - - * ace/Task_T.h: - - Include "ace/IO_Cntl_Msg.h" to pull in ACE_IO_Cntl_Msg class - declaration. - - * ace/Time_Value.cpp (max_time): - - Cleaned up preprocessor conditional blocks by taking advantage - of ACE_Numeric_Limits trait templates. - - * ace/Timer_Queue_Adapters.cpp: - - Include "ace/Signal.h" to pull in ACE_Sig_Guard class - declaration. - - * ace/Timer_Queue_Adapters.h: - - Forward declare ACE_Sig_Set class. No need for the full blown - declaration. - - * ace/Token.cpp: - - Minor cosmetic change. - - * ace/ace_wchar.h (ACE_GetVersionEx): - - New wide string support for Windows "GetVersionEx{A,W}()" - functions. - - * ace/ace_wchar.inl: - - Improved const-correctness. - - * ace/config-aix-4.x.h: - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - - Fixed single-threaded configuration so that all multi-thread - support is disabled. - - * ace/ace.mpc: - - Added missing DLL_Manager.cpp source file, and newly refactored - Sig_{Adapter,Handler}.cpp source files. - - * ace/ace_for_tao.mpc: - - Explicitly require the ace_svcconf MPC feature. - - Added missing ACE_LACKS_ACE_TOKEN macro. The ace_for_tao subset - does not support ACE's token collections. - - * ace/svcconf.mpb: - - Do not define ACE_HAS_ACE_SVCCONF. There is no such macro in - the ACE sources. - - Explicitly remove ACE_LACKS_ACE_SVCCONF from the macro list. - - Moved "DLL_Manager.cpp" to the core ACE library source file - list. "DLL_Manager.cpp" is not an optional component, and must - always exist in ACE regardless of whether or not ACE's service - configurator support is enabled. - - * ace/token.mpb: - - Do not define ACE_HAS_ACE_TOKEN. There is no such macro in - the ACE sources. - - Explicitly remove ACE_LACKS_ACE_TOKEN from the macro list. - - * bin/MakeProjectCreator/config/ace_for_tao.mpb: - - Added missing ACE_LACKS_ACE_TOKEN macro. The ace_for_tao subset - does not support ACE's token collections. - - * tests/SString_Test.cpp: - - Corrected checks for "no position" return values to compare - against "npos" constant, not "-1". - -Fri Jul 14 20:57:12 UTC 2006 Johnny Willemsen - - * ace/INET_Addr.cpp: - Initialise some pointers explicitly with 0 - -Fri Jul 14 20:41:23 UTC 2006 john_c - - * bin/tao_orb_tests.lst: - - Add new test TAO/tests/Optimized_Connection to nightly builds. - -Fri Jul 14 20:39:41 UTC 2006 Steve Huston - - * ace/config-vxworks6.2.h: Reverted this change: - Fri Jul 14 10:34:43 UTC 2006 Steve Huston - It appears to not work, and I can't test anything else here. - -Fri Jul 14 18:53:32 UTC 2006 William R. Otte - - * bin/MakeProjectCreator/config/global.features - * bin/MakeProjectCreator/config/stl.mpb - - Added an stl feature/base project for projects that use portions - of the STL that may not be universally supported. - -Fri Jul 14 19:44:03 UTC 2006 john_c - - * ace/config-hpux-11.00.h: - * include/makeinclude/platform_hpux_aCC.GNU: - - Changing the shared library extension for hpux ia64 to ".so". On - HP-UX 11i Version 1.5 the naming scheme is lib*.sl for PA and - lib*.so on IPF. - -Fri Jul 14 19:29:59 UTC 2006 Steve Huston - - * ace/OS_NS_stdio.cpp (DllMain): Add extern "C" to the DllMain - signature - enables it to be located and called at startup. - Thanks to Hubert Talbot - for this fix. - -Fri Jul 14 19:13:06 UTC 2006 john_c - - * ace/Timer_Queue_Adapters.cpp: - - Include file was missing. Fixes compile error when - ACE_HAS_DEFERRED_TIMER_COMMANDS is defined. - -Fri Jul 14 19:05:15 UTC 2006 Ciju John - - * bin/tao_other_tests.lst: - - Adding the TAO/orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated - test to nightly builds. - -Fri Jul 14 16:25:00 UTC 2006 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added exclusions for Bug_2593_Regression test. - -Fri Jul 14 15:50:34 UTC 2006 Adam Mitz - - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/Process_Win32.pm: - - Added an optional parameter to Process->Kill(). If the parameter is - true then the return value from the process is ignored. - -Fri Jul 14 15:45:04 UTC 2006 Steve Huston - - * tests/Message_Queue_Test_Ex.{h cpp}: Corrected for !ACE_HAS_THREADS. - -Fri Jul 14 15:39:53 UTC 2006 Adam Mitz - - * bin/tao_other_tests.lst: - Added new test (TAO/orbsvcs/tests/CosEvent/Timeout/run_test.pl). - -Fri Jul 14 10:34:43 UTC 2006 Steve Huston - - * ace/config-vxworks6.2.h: Added ACE_LACKS_USECONDS_T to fix a - compile error. It's in the non-__RTP__ section since that's where - ACE_LACKS_SUSECONDS_T was, but I'm not sure this is correct. - -Fri Jul 14 07:26:46 UTC 2006 Olli Savia - - * ace/Thread_Mutex.h: - * ace/ace_wchar.h: - * tests/SOCK_Dgram_Bcast_Test.cpp: - Fixed typos in comments. - - * m4/config_h.m4: - Removed references to ACE_HAS_TERM_IOCTLS. It's no longer - used in ACE/TAO/CIAO code. - -Fri Jul 14 02:11:21 UTC 2006 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added new test for Bug 2593 to nightly suite. - -Thu Jul 13 20:40:10 UTC 2006 Olli Savia - - * ace/config-integritySCA.h: - Removed references to ACE_HAS_ATTR_SETSCHED. It's no longer - used in ACE/TAO/CIAO code. - - * ace/config-rtems.h: - Removed references to ACE_HAS_SIGNAL_SAFE_OS_CALLS. It's no longer - used in ACE/TAO/CIAO code. - - * ace/config-sco-5.0.0-mit-pthread.h: - Removed references to ACE_HAS_T_OPMGMT. It's no longer - used in ACE/TAO/CIAO code. - -Thu Jul 13 10:35:39 UTC 2006 Olli Savia - - * ace/Base_Thread_Adapter.cpp: - * ace/Cleanup.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_string.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_sendfile.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_wait.cpp: - * ace/OS_NS_time.cpp: - * ace/OS_NS_unistd.cpp: - * ace/OS_NS_wchar.cpp: - * ace/OS_TLI.cpp: - * ace/Thread_Adapter.cpp: - * ace/Thread_Control.cpp: - * apps/JAWS2/HTTPU/parse_http_request.cpp: - * apps/JAWS2/HTTPU/parse_http_response.cpp: - - Fixed typo in comment. - -Thu Jul 13 09:51:33 UTC 2006 Olli Savia - - * configure.ac: - Removed references to ACE_HAS_EXCEPTION_H. It's no longer - used in ACE/TAO/CIAO code. - -Thu Jul 13 09:48:10 UTC 2006 Olli Savia - - * ace/os_include/os_string.h: - * ace/os_include/os_stropts.h: - Fixed typo in comment. - -Thu Jul 13 09:32:54 UTC 2006 Olli Savia - - * ace/config-vxworks6.2.h: - * configure.ac: - * m4/config_h.m4: - Removed references to ACE_HAS_USING_KEYWORD. It's no longer - used in ACE/TAO/CIAO code. - -Thu Jul 6 20:45:15 UTC 2006 Steve Huston - - * ace/Refcounted_Auto_Ptr.{h inl}: Repaired the ACE_Refcounted_Auto_Ptr - reset() and release() methods per Bugzilla #1925. They will both now - detach from the underlying ACE_Refcounted_Auto_Ptr_Rep object; - reset() will create a new one for the new pointer specified as its - argument. Generally modified the class to not make changes to the - underlying ACE_Refcounted_Auto_Ptr_Rep (such as with reset()). This - safely allows the get() method to avoid using the lock for reading - the pointer value since there's no way to change the underlying - rep's pointer. - Also cleaned up the Doxygen stuff for these classes. - - This work resulted in removal of the following methods in - ACE_Refcounted_Auto_Ptr_Rep (not ACE_Refcounted_Auto_Ptr): - - null () - - assign () - - release () - - reset () - - This significantly improves ACE_Refcounted_Auto_Ptr. This is not - a recommendation to [not] use it over ACE_Strong_Bound_Ptr. Just - responding to user reports. It may still be possibly/adviseable to - work further on this class, though I have no specific ideas or - reports at this time. - - * tests/Refcounted_Auto_Ptr_Test.{h cpp}: Added tests for release() - and reset() per code supplied in Bugzilla #1925. Removed code in - ACE_ASSERT since it doesn't run in Release builds; replaced with - explicit checks and ACE_ERROR. - -Wed Jul 12 20:32:49 UTC 2006 Steve Huston - - * tests/Message_Queue_Test_Ex.{h cpp}: Fixed compile errors on Linux. - -Wed Jul 12 19:15:58 UTC 2006 Steve Huston - - * ace/Message_Queue_T.{h cpp}: Added a new class, - ACE_Message_Queue_Ex_N, that - is similar to ACE_Message_Queue_Ex in that the object queued is a - template parameter. However, ACE_Message_Queue_Ex_N allows the - enqueueing and dequeueing of multiple chained objects at once. This - wasn't added to ACE_Message_Queue_Ex because the chained object - functionality requires the ACE_MESSAGE_TYPE class to have a - ACE_MESSAGE_TYPE *next (void) const method, analogous to - ACE_Message_Block::next(), to follow the chain and this would - probably break existing applications using ACE_Message_Queue_Ex. - - * tests/Message_Queue_Test_Ex.{h cpp}: Added test capability for - ACE_Message_Queue_Ex_N. - - * NEWS: Added description of the new class. - - Thanks to Guy Peleg for - contributing this new class and its tests. - -Wed Jul 12 16:37:40 UTC 2006 Steve Huston - - * etc/ace.doxygen: - * etc/ace_qos.doxygen: - * etc/ace_ssl.doxygen: Use the IGNORE_PREFIX directive to have Doxygen - ignore the ACE_, ACE_QoS_, ACE_SSL_ prefixes when alphabetizing - the class index. Thanks to Stefan Naewe - for this idea. - - * THANKS: Added Stefan Naewe to the Hall of Fame. - -Wed Jul 12 14:30:16 UTC 2006 Steve Huston - - * ace/config-lynxos.h: - * ace/config-netbsd.h: Changed ACE_SCANDIR_CMP_USES_VOIDPTR to - ACE_SCANDIR_CMP_USES_CONST_VOIDPTR - makes it match the decl in - ace/os_include/os_dirent.h and should resolve a compile error. - -Wed Jul 12 13:55:09 UTC 2006 Steve Huston - - * ace/Message_Queue.inl: Move the #include out of the namespace; see - Tue Jul 11 13:38:10 UTC 2006 Steve Huston - -Wed Jul 12 10:15:12 UTC 2006 Martin Corino - - * include/makeinclude/platform_openvms.GNU: - Added fixes for SSL support. - - * ace/config-openvms.h: - Added ACE_HAS_PTHREAD_SCHEDPARAM. - - * ace/Global_Macros.h: - * ace/Lib_Find.cpp: - * ace/Service_Config.cpp: - * ace/Service_Config.h: - * ace/Service_Object.cpp: - * ace/Service_Object.h: - Moved OpenVMS specific dynamic service support class to a - better place. - -Wed Jul 12 07:13:01 UTC 2006 Olli Savia - - * ace/FILE_Connector.cpp: - It is safe to use ACE_OS::mkstemp() on all platforms. - -Wed Jul 12 02:21:12 UTC 2006 Johnny Willemsen - - * bin/msvc_static_order.lst: - Build ObjRefTemplate before IORInterceptor - -Tue Jul 11 23:09:28 UTC 2006 Chad Elliott - - * include/makeinclude/platform_hpux_aCC.GNU: - - The C compiler doesn't support the -mt option. So, add -mt to - CC_THR_DEFS and then later add CC_THR_DEFS to CCFLAGS. CCFLAGS - isn't used when compiling C files. - -Tue Jul 11 22:30:21 UTC 2006 Steve Huston - - * ace/config-win32-common.h: - * ace/config-WinCE.h: Break the tight tie between UNICODE and - ACE_USES_WCHAR I introduced in - Thu Oct 6 17:56:19 2005 Steve Huston - Now ACE_USES_WCHAR is always on for CE; non-CE Windows builds must - explicitly set ACE_USES_WCHAR independent of UNICODE. Thanks to - Russell Morra for explaining - the situation and submitting this fix. - -Tue Jul 11 22:20:14 UTC 2006 Steve Huston - - * bin/generate_doxygen.pl: Add the ability to put the generated - HTML output in a specified location using the new -html_output - command line option. It alters the path specified for the - HTML_OUTPUT and GENERATE_TAGFILE Doxygen options. - -Tue Jul 11 22:09:56 UTC 2006 Steve Huston - - * include/makeinclude/platform_linux.GNU: Added support for the - "buildbits=64" and "buildbits=32" make settings to target - 32- and 64-bit build targets, respectively. Thanks to Boris - Kaminer for this addition. - -Tue Jul 11 22:22:04 UTC 2006 Steve Huston - - * configure.ac: Change the minimum automake version to 1.9.6; this is - required to generate Makefiles that work properly on AIX. - - * m4/compiler.m4: For AIX, replace ACE_AIX_MAJOR_VERS and - ACE_AIX_MINOR_VERS compile macros with ACE_AIX_VERS as the - hand-edited platform_aix_ibm.GNU has and the code expects. - Also removed the AIX 3 and 4 code since AIX 3 and 4 are no longer - supported. Also, turned on -qtemplateregistry for xlC-type - compilers (Visual Age C++ 6 and XL C++ 7). - -Tue Jul 11 21:37:51 UTC 2006 Steve Huston - - * ace/OS_NS_stdio.cpp (snprintf, sprintf): In the wchar versions, - adjust the preprocessor checks to pick up the way that Solaris - indicates the presence of XPG5 capability. Allows these functions - to work, which allows ACE_Log_Msg to work also. - - * ace/OS_NS_unistd.{h inl} (ualarm): Changed u_long arguments and - return value to useconds_t to gain portability. - - * ace/OS_NS_dirent.{h inl cpp}: Made the selector and comparator - function pointer arguments to ACE_OS::scandir() and - scandir_emulation() be extern "C" to enforce their use with a - C RTL function. This resolves warnings from Solaris and makes usage - correct across all platforms. The function types are now in - typedefs ACE_SCANDIR_SELECTOR and ACE_SCANDIR_COMPARATOR, - respectively. The typedef was used previously only for Windows/MSVC - where the calling convention change had bit someone - now it's - uniform for all. - Also, folded in the ACE_SCANDIR_CMP_USES_VOIDPTR def here to - set up the proper typing with extern "C" for when it's needed to - cast inside the ACE_OS::scandir() implementation. The interface - offered by ACE_OS::scandir() is always defined in terms of - ACE_SCANDIR_SELECTOR and ACE_SCANDIR_COMPARATOR. - - * ace/Dirent_Selector.{h cpp}: Use the extern "C"-containing typedefs - for selector/comparator functions set up for ACE_OS::scandir() in - ACE_Dirent_Selector as well since they get passed through to ACE_OS. - - * apps/soreduce/Library.cpp: - * tests/Dirent_Test.cpp: Mark selector/comparator functions that'll be - passed to ACE_OS::scandir() as extern "C" to match new param types. - - * ace/config-aix-5.x.h: Added ACE_HAS_SCANDIR since AIX has scandir(), - as well as the needed ACE_SCANDIR_SEL_LACKS_CONST and - ACE_SCANDIR_CMP_USES_VOIDPTR to adjust to it's differences from - the common way scandir() is usually defined. - - * ace/config-hpux-11.00.h: Added ACE_HAS_SCANDIR. - - * ace/config-linux-common.h: Clarify that, despite the man page, - ACE_SCANDIR_CMP_USES_CONST_VOIDPTR is needed, at least on RHEL 3 - and 4. - - * ace/README: Added descriptions for ACE_HAS_SCANDIR and - ACE_SCANDIR_CMP_USES_VOIDPTR as well as the new settings - ACE_SCANDIR_SEL_LACKS_CONST and ACE_SCANDIR_CMP_USES_CONST_VOIDPTR. - - * NEWS: Summarize the above user-visible selector/comparator changes. - -Tue Jul 11 17:39:00 UTC 2006 Olli Savia - - * ace/Basic_Types.h: - * ace/OS.h: - Removed unnecessary includes. - -Tue Jul 11 17:25:06 UTC 2006 Olli Savia - - * include/makeinclude/platform_rtems.x_g++.GNU: - * include/makeinclude/wrapper_macros.GNU: - - Removed references to obsolete ACE_HAS_GNUG_PRE_2_8 make - variable. Removed egcs checks. - -Tue Jul 11 16:55:57 UTC 2006 Olli Savia - - * ace/TTY_IO.cpp: - Enable raw mode correctly on POSIX systems. Accept "none" as - valid parity value. Thanks to hongxing - for the patch. - - * ace/TTY_IO.h: - Updated documentation to reflect changes above. - - * ace/os_include/sys/os_resource.h: - Fixed typo in comment. - -Tue Jul 11 16:38:29 UTC 2006 Olli Savia - - * ace/config-linux-common.h: - * ace/os_include/os_signal.h: - * ace/os_include/os_stropts.h: - - Changed ACE_HAS_ISASTREAM_PROTO to ACE_HAS_ISASTREAM_PROTOTYPE and - ACE_HAS_PTHREAD_SIGMASK_PROTO to ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE - to better follow ACE naming conventions. - -Tue Jul 11 13:38:10 UTC 2006 Steve Huston - - * ace/Message_Queue.inl: Include "ace/Guard_T.h" in the ACE_WIN32 - section to avoid compile errors with Release builds. - - * ace/TSS_T.h: Improved documentation. - - * tests/ACE_Init_TestDlg.cpp: Added comment block at the top to explain - the file's purpose. - - * tests/Task_Test.cpp: Added a smoke test for the new - ACE_Task::last_thread() method. - -Thu Jul 6 12:48:58 UTC 2006 Douglas C. Schmidt - - * ace/OS_NS_sys_socket.inl (sendto): Initialize "bytes_sent" to 0 - to avoid random values. Thanks to Winston Zhang for reporting this. - -Wed Jul 5 20:32:20 UTC 2006 Douglas C. Schmidt - - * ace/WFMO_Reactor.cpp (open): Added some more code to prevent - memory leaks when the ACE_WFMO_Reactor is reopened. Thanks to - Sonicfly Zhou for this fix. - -Tue Jul 11 12:19:23 2006 Johnny Willemsen - - * etc/tao.doxygen: - Added .idl to FILE_PATTERNS - -Tue Jul 11 12:01:12 UTC 2006 Chad Elliott - - * ace/Atomic_Op.cpp: - * ace/Atomic_Op_Sparc.h: - * ace/Atomic_Op_Sparc.c: - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Added a SPARC assembler implementation of functions needed for use - within the ACE_Atomic_Op specializations. The implementation will - only be used if atomic_ops_sparc is set to 1 in - platform_macros.GNU. It also requires that v8plus or higher be - used with SunCC. - - * ace/Makefile.am: - * ace/ace.mpc: - - Added the new Atomic_Op_Sparc.c. - - * ace/CDR_Base.cpp: - - In grow(), call the clone_nocopy() method on the ACE_Data_Block - with the new size. Previously, the clone_nocopy() would be called - and then directly after that, size() would be called on the cloned - data block which would re-allocate to the new size and copy the - previous contents. - - In the same method, we avoid constructing an ACE_Message_Block to - avoid reference count manipulating the data block's reference - count. - - Also, in consolidate(), avoid attempting to copy data if the - destination and source are the same. [RT 8372] - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - - Added a constructor that takes an ACE_Data_Block* which can be - used to avoid an allocation while constructing the - ACE_Message_Block held by the ACE_OutputCDR. [RT 8372] - - * ace/Message_Block.h: - * ace/Message_Block.cpp: - * ace/Message_Block_T.h: - * ace/Message_Block_T.cpp: - - Added a new parameter to the ACE_Data_Block::clone_nocopy() method - that allows the user copy the data block, but increase the size - all in one step. [RT 8372] - - * ace/OS_NS_string.inl: - - Added an unrolled implementation of memset, only active if - ACE_HAS_SLOW_MEMSET is defined, that supports up to 16 bytes - without calling into the memset() C function. - - * ace/config-sunos5.5.h: - - SunCC 5.x supports new(nothrow_t). So, I have enable the use of - it when exceptions are enabled. [RT 8372] - - * ace/OS_NS_Thread.h: - * ace/os_include/os_pthread.h: - - Added macro definitions required to build ACE and TAO on Solaris - without using the pthreads library. - - * include/makeinclude/platform_aix_ibm.GNU: - * include/makeinclude/platform_hpux_aCC.GNU: - * include/makeinclude/platform_irix6.x_sgic++.GNU: - - Added 64-bit options to the CFLAGS macros to deal with the newly - added C file in ACE. [RT 8372] - -Tue Jul 11 01:47:23 2006 Johnny Willemsen - - * tests/Log_Msg_Test.cpp: - initialise pointer with 0 - -Tue Jul 11 01:37:23 2006 Johnny Willemsen - - * ace/OS_NS_unistd.h: - Layout change - -Tue Jul 11 01:09:23 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - If -oA has been used as idlflags, don't add the A files - -Tue Jul 11 00:50:23 2006 Johnny Willemsen - - * bin/generate_compile_stats.sh: - Updated to also handle redhat version information - -Sun Jul 09 05:53:23 2006 Johnny Willemsen - - * ACE version 5.5.2 released. - -Fri Jul 7 08:07:50 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: Small improvements - -Thu Jul 6 19:57:50 UTC 2006 Steve Huston - - * ACE-INSTALL.html: Improvements and corrections motivated by - Abdul Sowayan . - -Wed Jul 5 19:15:37 UTC 2006 Steve Huston - - * ACE-INSTALL.html: Cleaned up further; clarified role of DOC and - support companies and use of PROBLEM-REPORT-FORM. - - * NEWS: Noted removal of Chorus and pSOS. - -Tue Jul 4 04:10:11 UTC 2006 Douglas C. Schmidt - - * tests/Memcpy_Test.cpp: Added a short summary of this test. - Thanks to Arvind Krishna for contributing it. - -Tue Jul 4 01:05:47 UTC 2006 Douglas C. Schmidt - - * tests/Memcpy_Test.cpp (testit): ACE-ified this test. - -Tue Jul 4 01:03:52 UTC 2006 Douglas C. Schmidt - - * tests/CE_fostream.cpp: - * tests/Service_Config_Test.cpp: Improved the description of these - tests. - -Mon Jul 3 14:42:45 UTC 2006 Iliyan Jeliazkov - - * NEWS: Updated the NEWS file with information about using multiple - service repositories. - -Mon Jul 3 03:25:43 UTC 2006 Douglas C. Schmidt - - * examples/APG/Svc_Config/HA_Configurable_Server_Dynamic.cpp - (ACE_TMAIN): Changed the reactor event loop to explicitly pass - in ACE_Reactor::check_reconfiguration(). Thanks to Michael Reed - for reporting this. - -Mon Jul 3 03:15:14 UTC 2006 Douglas C. Schmidt - - * examples/Service_Configurator/IPC-tests/server/server_test.cpp - (ACE_TMAIN): Changed the reactor event loop to explicitly pass - in ACE_Reactor::check_reconfiguration(). - -Fri Jun 30 13:40:12 UTC 2006 Johnny Willemsen - - * bin/msvc_static_order.lst: - Added CSD_Framework and CSD_ThreadPool - -Fri Jun 30 09:33:12 UTC 2006 Johnny Willemsen - - * bin/generate_rel_manpages: - Updated doxygen version we are using for the release - -Fri Jun 30 07:29:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoexe.mpb: - Added corba/e and core_minimum_corba as base projects so that - the executables that can be build with CORBA/e and minimum - corba do have set the correct flags during compilation - -Thu Jun 29 17:30:52 UTC 2006 Steve Huston - - * NEWS: Added a note about the logging changes from - Tue May 16 22:23:55 UTC 2006 William R. Otte - -Thu Jun 29 10:05:12 UTC 2006 Johnny Willemsen - - * tests/Signal_Test.cpp: - Layout changes - -Thu Jun 29 09:13:12 UTC 2006 Johnny Willemsen - - * ace/Containers_T.cpp: - Initialise pointer with 0 - -Thu Jun 29 08:52:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_g++_common.GNU: - * include/makeinclude/platform_osf1_4.x_cxx.GNU: - * include/makeinclude/platform_sunos5_ghs.GNU: - * include/makeinclude/platform_sunos5_sunc++.GNU: - * include/makeinclude/wrapper_macros.GNU: - Removed support for explicit templates, we don't support that - anymore - -Thu Jun 29 08:34:12 UTC 2006 Johnny Willemsen - - * docs/ACE-guidelines.html: - Document that the STL generic algorithms are safe to be used and - made some other small updates - -Wed Jun 28 10:03:12 UTC 2006 Johnny Willemsen - - * ace/ace_for_tao.mpc: - Added missing file because of the sendfile addition to TAO - -Wed Jun 28 09:20:08 UTC 2006 Boris Kolpackov - - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Link.h: - * protocols/ace/RMCast/Socket.cpp: - Added explicit calls to close functions for sockets and pipes. - Thanks to finalpatch for reporting this. - -Wed Jun 28 07:10:12 UTC 2006 Johnny Willemsen - - * docs/ACE-guidelines.html: - Document that template template arguments are not possible to - be used because HP aCC 3.70 doesn't support it. - -Tue Jun 27 13:06:12 UTC 2006 Johnny Willemsen - - * ace/Unbounded_Queue.cpp: - Explicitly initialise pointers with 0 - -Tue Jun 27 08:59:12 UTC 2006 Johnny Willemsen - - * ace/ace_for_tao.mpc: - Added MMAP_Memory_Pool.* because TAO uses these for sendfile - support - -Tue Jun 27 06:56:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - * ace/config-WinCE.h: - WinCE doesn't seem to have SetFilePointerEx, so introduced - ACE_LACKS_SETFILEPOINTEREX which we check in OS_NS_unistd.inl, - if this is set we fallback to SetFilePointer - -Tue Jun 27 06:47:12 UTC 2006 Johnny Willemsen - - * tests/CDR_File_Test.cpp: - Fixed 64bit conversion warning - -Tue Jun 27 06:34:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taolib.mpb: - Added tao_versioning_idl_defaults as base - -Mon Jun 26 13:27:00 UTC 2006 Simon Massey - - * NEWS: - Added PICurrent refactoring note. Moved from NEWS to TAO/NEWS - -Mon Jun 26 08:27:12 UTC 2006 Johnny Willemsen - - * ace/DLL_Manager.h: - Reexport ACE_DLL_Handle, the ACE_DLL_Manager returns a pointer - to this type in its interfaces. Thanks to Patrick Bennett - for reporting this - -Mon Jun 26 08:17:12 UTC 2006 Martin Corino - - * include/makeinclude/platform_openvms.GNU: - Some compileswitch changes. - - * ace/config-openvms.h: - Added multicast filtering setting. - -Sun Jun 25 11:54:12 UTC 2006 Martin Corino - - * include/makeinclude/platform_openvms.GNU: - Some compileswitch changes. - -Sun Jun 25 08:36:12 UTC 2006 Johnny Willemsen - - * bin/msvc_mpc_auto_compile.pl: - Build gperf and TAO_IDL before tao - -Sat Jun 24 14:02:15 UTC 2006 Steve Huston - - * ace/Lib_Find.cpp (open_temp_file): In the ACE_WIN32 section, - 'perm' is not used, so use ACE_UNUSED_ARG on it. - - * tests/Hash_Map_Manager_Test.cpp: Use const ACE_TCHAR with literal - string, not non-const. Resolves compile warning on some compilers. - -Fri Jun 23 21:03:37 UTC 2006 Jeff Parsons - - * ace/Lib_Find.cpp (open_temp_file): - - Added FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE - for the 'perms' argument of the Windows version, which - eliminates a open_temp_file() failure in the IDL compiler - on a file that was previously opened/closed with fopen/fclose. - Thanks to Krishnakumar Balasubramanian - for figuring out the fix. - -Fri Jun 23 16:01:31 UTC 2006 Steve Huston - - * examples/Reactor/Proactor/test_proactor.cpp (open): When calling - ACE_OS::open(), don't supply a very UNIXy-looking 0644 value for - the 'perms' argument. Let it default to something reasonable for - the platform. Using 0644 on Windows passes something Windows doesn't - like, and the test fails. Thanks very much to William Cote - for fixing this. - - * THANKS: Added William Cote to the Hall of Fame. - -Fri Jun 23 13:20:21 UTC 2006 Johnny Willemsen - - Reverted the change below, it triggers pidl recompilation for all pidl files - Fri Jun 23 07:36:21 UTC 2006 Johnny Willemsen - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - Added .pidl to the inputext. This should be the way how things should - run fine again in TAO but it seems somewhere ther is something missing. - -Fri Jun 23 07:36:21 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - Added .pidl to the inputext. This should be the way how things should - run fine again in TAO but it seems somewhere ther is something missing. - -Thu Jun 22 21:05:20 UTC 2006 Krishnakumar B - - * ace/OS_NS_fcntl.h (ACE_DEFAULT_OPEN_PERMS): Set the value of - ACE_DEFAULT_OPEN_PERMS from ACE_DEFAULT_FILE_PERMS instead of - 0. This ensures that users of ACE_OS::open() who don't override - the default argument get a sensible default. - -Thu Jun 22 15:08:01 UTC 2006 Steve Huston - - * ace/SSL/SSL_Context.{h cpp} (load_trusted_ca): Added a third - argument, bool use_env_defaults, which defaults to true. If false, - the ca_file and ca_dir arguments do not get ACE defaults applied - to them if passed as 0. This allows a user to specify a 0 file or - directory to the underlying SSL_CTX_load_verify_locations() function. - If a ca_dir is supplied, attempt to add its CA list to the - X509 names in addition to that of ca_file. - - (seed_file): If the file loads ok, check RAND_status() to see if - there's "enough" entropy. - - * ace/SSL/SSL_Context.inl: - * ace/SSL/SSL_Asynch_Stream.cpp: - * ace/SSL/SSL_SOCK_Stream.cpp: When setting up SSL_CTX, set the verify - mode as well. When creating a new socket object, let it inherit the - verify mode from the SSL context rather than making a call back to - the context to retrieve the verify mode and setting it with a - separate SSL call. - -Thu Jun 22 14:48:12 UTC 2006 Johnny Willemsen - - * bin/msvc_static_order.lst: - Build the portableserver earlier in the list of libs - -Thu Jun 22 05:29:48 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp: - - The initialize_i() method would not remove a service, which - failed to initialize, in case the ACE_NOLOGGING is defined. For - some reason the two blocks of code were switched around. Thanks - to Martin Corino for pointing out the - problem. - -Wed Jun 21 21:29:04 UTC 2006 Steve Huston - - * ace/config-lynxos.h: Added ACE_LACKS_STRPTIME. This should fix a - compile error on LynxOS. - -Wed Jun 21 15:45:32 UTC 2006 Steve Huston - - * tests/Hash_Map_Manager_Test.cpp: Fix incorrect concatenating of - text literals. - -Wed Jun 21 07:10:12 UTC 2006 Johnny Willemsen - - * examples/Misc/test_trace.cpp: - Fixed fuzz error - -Tue Jun 20 23:20:17 UTC 2006 Douglas C. Schmidt - - * tests/Framework_Component_DLL.cpp: Added a description of this test. - -Tue Jun 20 22:34:43 UTC 2006 Steve Huston - - * tests/Service_Config_DLL.cpp: Added a comment block at the top - to describe this file's purpose. - -Tue Jun 20 22:09:54 UTC 2006 Steve Huston - - * ace/OS_NS_time.cpp (strptime): Added a const_cast wherever - a return of something based on the const char *buf was done; related - to: - Tue Jun 20 20:19:37 UTC 2006 Steve Huston - - * NEWS: Noted that the signature of ACE_OS::strptime() changed, also - related to the entry above. - -Tue Jun 20 20:19:37 UTC 2006 Steve Huston - - * configure.ac: - * ace/README: - * ace/OS_NS_time.h: - * ace/OS_NS_time.inl: - * ace/OS_NS_time.cpp: - * m4/config_h.m4: The ACE_OS::strptime() wrapper was previously not - compiled in unless ACE_HAS_STRPTIME was set. If this was set and - ACE_LACKS_NATIVE_STRPTIME was also set, an emulation was supplied. - This has been changed so that: - - ACE_OS::strptime() is always supplied. - - The emulation is used if ACE_LACKS_STRPTIME is set. - - The first arg to ACE_OS::strptime() is now "const char *" - instead of "char *" as the native strptime() is. - - ACE_OS::strptime() is inlineable. - ACE_HAS_STRPTIME is no longer used, and ACE_LACKS_NATIVE_STRPTIME - is changed to ACE_LACKS_STRPTIME. If ACE_LACKS_STRPTIME is set - and the user decides not to include the emulation, then - ACE_REFUSE_STRPTIME_EMULATION should be set, which will cause - ACE_NOTSUP_RETURN to be used instead of the emulation. - - * ace/config-borland-common.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-win32-dmc.h: - * ace/config-win32-ghs.h: - * ace/config-win32-mingw.h: - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - * ace/config-win32-visualage.h: Removed ACE_HAS_STRPTIME; changed - ACE_LACKS_NATIVE_STRPTIME to ACE_LACKS_STRPTIME. - - * ace/config-cygwin32.h: - * ace/config-doxygen.h: - * ace/config-irix6.x-common.h: - * ace/config-linux-common.h: - * ace/config-netbsd.h: - * ace/config-openvms.h: - * ace/config-sunos5.5.h: - * ace/config-tandem-nsk-mips-v3.h: Removed ACE_HAS_STRPTIME. - - * ace/config-rtems.h: Changed ACE_LACKS_NATIVE_STRPTIME to - ACE_LACKS_STRPTIME. - NOTE!! RTEMS users should add #define ACE_REFUSE_STRPTIME_EMULATION - to the local config.h file to avoid bringing in the emulation, - maintaining behavior in previous ACE versions. - - For additional background on why this arrangement was put in place - originally, please see: - Tue Aug 10 14:46:12 1999 David L. Levine - It makes sense, but adds a unique requirement for porting to new - platforms that one must know to explicitly enable an existing wrapper, - even if its natively available. This has tripped up a number of porting - efforts (including mine) and now it's consistent with other wrappers. - - * m4/ace.m4: Add --enable-wince to set up the BUILD_WINCE setting - that's inserted into the Makefile.am files for the wince MPC setting. - - * ace/ace.mpc: Replace config-win32-msvc-6.h with config-win32-msvc-8.h - - * bin/bin/mpc: Removed the verbatim for automake that adds - TESTS=auto_run_tests.pl - it was an early attempt at getting the - test ability to work that never was right. - - * */Makefile.am: Regenerated with MPC. This effectively changes the - version scheme based on the changes in: - Thu May 18 16:37:46 UTC 2006 Steve Huston - - * apps/Makefile.am: Hand-added code to avoid building gperf if - --disable-gperf was specified to configure. Thanks to Robert Schwebel - for this fix. - - * apps/gperf/tests/Makefile.am: This one doesn't get close to being - regenerated with MPC. The "stamp" items require hand-tweaking as - given in previous entries for this file. - - * ace/Makefile.am: Regenerated with MPC and hand-tweaked to add needed - "nobase_include_HEADERS =" line. - - * configure.ac: Added the following new AC_CONFIG_FILES entries: - - * ACEXML/tests/util/Makefile.am: - * apps/JAWS2/Makefile.am: - * apps/JAWS2/JAWS/Makefile.am: - * examples/ASX/Event_Server/Makefile.am: - * examples/ASX/Event_Server/Event_Server/Makefile.am: - * examples/ASX/Event_Server/Transceiver/Makefile.am: - * examples/ASX/UPIPE_Event_Server/Makefile.am: - * examples/Map_Manager/Makefile.am: - * examples/Reactor/TP_Reactor/Makefile.am: - * protocols/tests/Makefile.am: - * protocols/tests/RMCast/Makefile.am: New files, generated with MPC. - - * THANKS: Added Robert Schwebel to the Hall of Fame. - -Tue Jun 20 19:25:20 UTC 2006 Steve Huston - - * ace/Task.{h inl cpp}: Moved the public data members (thr_count_, - thr_mgr_, flags_, grp_id_, lock_) from public to a new protected - section. There was a comment that said these should be private, but - no reason given why they weren't. - Removed the thr_count_dec() method since it is no longer used - anywhere in ACE. Moved its functionality into cleanup() where it - also sets the new last_thread_id_ member (see below). - Added a new member last_thread_id_ which holds the thread ID - (ACE_thread_t) of the last thread to exit svc() processing. Before - any threads exit, the value is 0; it's set to 0 in the constructor - and in activate(). - The new accessor, ACE_thread_t last_thread (void) const, retrieves - the value of last_thread_id_. It's recommended that a thread in - close() check the last_thread_id_ value, rather than the thr_count(), - when deciding if it's safe to destroy the object. Since thr_count - can be seen as 0 in multiple threads concurrently, it's not safe - to rely on for destroying a thread. This fixes Bugzilla #2339. - Thanks to Howard Finer for this idea. - - * NEWS: Added a note about the new ACE_Task::last_thread() method. - -Tue Jun 20 18:55:12 UTC 2006 Martin Corino - - * tests/Based_Pointer_Test.cpp: - * tests/Based_Pointer_Test_Lib.cpp: - * tests/CDR_File_Test.cpp: - * tests/DLL_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/Process_Manager_Test.cpp: - Several fixes to make OpenVMS happy. - -Tue Jun 20 18:04:45 UTC 2006 Douglas C. Schmidt - - * examples/Log_Msg/test_ostream.cpp (ACE_TMAIN): Couldn't used - std::getline() for some odd reason.. Fixed by using - ifstream::getline() instead. Thanks to Johnny for reporting - this. - -Tue Jun 20 14:31:05 UTC 2006 Douglas C. Schmidt - - * examples/Misc/test_trace.cpp (recursive): Simplified the - ACE_TRACE method name to make fuzz happy. - -Tue Jun 20 13:50:12 UTC 2006 Johnny Willemsen - - * tests/Hash_Map_Manager_Test.cpp: - Fixed unicode compile problems - -Tue Jun 20 12:51:19 UTC 2006 James H. Hill - - * bin/ChangeLogEditor/FileLocatorFactory.pm: - - Now supports the standard hack for subversion on Windows when - SVN_ASP_DOT_NET_HACK environment variable is set. Instead - of placing repo info in a .svn file, it is placed in _svn. - -Tue Jun 20 12:31:12 UTC 2006 Martin Corino - - * ace/os_include/os_time.h: - * ace/os_include/sys/os_types.h: - Fixed type definitions for OpenVMS. - - * ace/config-openvms.h: - Updated build configuration for OpenVMS. - - * ace/Lib_Find{.h .cpp}: - * ace/DLL_Manager.cpp: - * ace/Service_Config{.h .cpp}: - * ace/Global_Macros.h: - * ace/Strategies_T.cpp: - * ace/Logging_Strategy.cpp: - Added support for dynamic loading scheme of service configurator - framework under OpenVMS. - - * ace/OS_NS_stdio.h: - Additional include for OpenVMS. - -Tue Jun 20 08:23:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taolib.mpb: - Add corba subset projects as base - - * bin/MakeProjectCreator/config/core_minimum_corba.mpb: - New file for usage within the core libs - - * bin/MakeProjectCreator/config/core_minimum_corba.mpb: - Make minimum corba a feature - -Tue Jun 20 07:42:12 UTC 2006 Johnny Willemsen - - * examples/Log_Msg/test_callback.cpp: - Fixed typo - -Tue Jun 20 07:04:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/global.features: - CORBA subset configurations are disabled by default - -Mon Jun 19 18:03:12 UTC 2006 Martin Corino - - * include/makeinclude/platform_openvms.GNU: - Changed template instantiation model. - - * include/makeinclude/rules.local.GNU: - Change to enable adding custom REALCLEAN_FILES in platform file. - -Mon Jun 19 15:11:12 UTC 2006 Martin Corino - - * bin/auto_run_tests.pl: - Changed to enable spawning Perl testscripts on OpenVMS. - -Mon Jun 19 14:26:12 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Replaced dsp/dsw with sln/vcproj. Thanks to Abdullah Sowayan - for reporting this - -Mon Jun 19 13:14:54 UTC 2006 Douglas C. Schmidt - - * tests/Hash_Map_Manager_Test.cpp (test_two_allocators): Fixed a typo. - Thanks to Abdul for reporting this. - - * tests/Hash_Map_Manager_Test.cpp (test_two_allocators): Added a - test for the two allocator version of ACE_Hash_Map_Manager. - Thanks to Jarek for contributing this. - -Mon Jun 19 02:55:48 UTC 2006 Douglas C. Schmidt - - * examples/Log_Msg/test_ostream.cpp (ACE_TMAIN): Enhanced the test to - show the ofstream output better. - -Mon Jun 19 01:31:46 UTC 2006 Douglas C. Schmidt - - * examples/Log_Msg/test_callback.cpp (ACE_TMAIN): Zapped the - extraneous '\n' from the messages. - -Mon Jun 19 01:06:49 UTC 2006 Douglas C. Schmidt - - * examples/Misc/test_trace.cpp: Enhanced to the the ACE_TRACE macro. - -Sun Jun 18 16:58:20 UTC 2006 Douglas C. Schmidt - - * netsvcs/clients/Logger/indirect_logging.cpp (ACE_TMAIN): Cleaned - up the test to work if none of the daemons are running. - -Sun Jun 18 16:44:14 UTC 2006 Douglas C. Schmidt - - * ace/Signal.{inl,cpp}: Moved the destructors out of the *.inl - file into the *.cpp file since inline destructors aren't really - a good idea. - -Sun Jun 18 16:35:13 UTC 2006 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp (send): Printout the type - of log message as a diagnostic to make it easier to see the - filtering that's going on! - -Fri Jun 16 17:48:18 UTC 2006 Douglas C. Schmidt - - * ace/CDR_Size.cpp (adjust): Added a fix for the case where - ACE_LACKS_CDR_ALIGNMENT is undefined. Thanks to Aleksandar - Vukajlovic for contributing - this. - -Fri Jun 16 13:57:53 UTC 2006 Douglas C. Schmidt - - * ace/Ping_Socket.cpp: Replaced the use of char, short, int, - etc. for struct ip and icmp with the equivalent - ACE_UNIT[8,12,32] types to ensure a fixed size. Thanks to Paul - Daugherty and Robert S. Iakobashvili - for reporting this and contributing - a fix. - -Mon Jun 19 11:37:17 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.{h,cpp,inl}: - Changed the (f)truncate method to use ACE_LOFF_T and use - SetFilePointerEx on windows to fix 64bit warnings - -Mon Jun 19 10:08:17 UTC 2006 Johnny Willemsen - - * bin/diff-builds.pl: - Changed this script not to die when we can't find results for - a certain date, then just take the closest results. - -Mon Jun 19 10:00:17 UTC 2006 Johnny Willemsen - - * ace/Service_Gestalt.cpp: - * ace/Acceptor.cpp: - Const improvement - -Mon Jun 19 09:56:17 UTC 2006 Ossama Othman - - * ace/OS_NS_sys_sendfile.cpp (sendfile_emulation): - - Verify the ACE_OS::mmap() call succeeded prior to continuing. - - Use ACE_OS::send() instead of ACE_OS::write() on Windows. The - latter doesn't provide the same semantics on Windows as on - Unix. Addresses an ACE_OS::sendfile() failure on Windows. - -Tue Jun 13 02:10:12 UTC 2006 Johnny Willemsen - - * tests/run_tests.lst: - Don't run netlink test in ACE_FOR_TAO configuration - -Mon Jun 12 17:00:02 UTC 2006 J.T. Conklin - - * include/makeinclude/wrapper_macros.GNU: - - Set winnt to 0 if not explicitly set by a platform_*.GNU - makefile. - -Mon Jun 12 16:48:19 UTC 2006 Douglas C. Schmidt - - * tests/SV_Shared_Memory_Test.cpp (run_main): Moved a couple of - calls outside of ACE_ASSERT since they don't belong in there. - -Mon Jun 12 14:34:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_stat.h: - Fixed mingw definition of ACE_stat - -Mon Jun 12 10:24:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/vc6.features: - Removed this file, wer don't support vc6 anymore - -Mon Jun 12 01:30:03 UTC 2006 Douglas C. Schmidt - - * ace/Thread_Manager.cpp (wait): Changed the flag parameters to be - bool rathet than int. Thanks to Johnny for this suggestion. - -Sat Jun 10 22:32:03 UTC 2006 Steve Huston - - * ACE-INSTALL.html: Corrected a bunch of platform build things and - hopefully clarified the sections a bit. - - * bin/make_release: Removed the search for, and chmod for, dsp/dsw - files - they're for MSVC6 which is no longer generated. - -Sat Jun 10 10:07:32 UTC 2006 Phil Mesnier - - * ace/Thread_Manager.cpp: - Fix for compiler errors. - -Sat Jun 10 04:31:54 UTC 2006 J.T. Conklin - - * bin/MakeProjectCreator/config/automake.features: - - Define MPC feature variable "wxWindows" to 1. - - * bin/MakeProjectCreator/config/wxwindows.mpb: - - Add automake specific definitions for compile_flags, - linkflags, and pure_libs. - -Fri Jun 9 19:25:19 UTC 2006 Douglas C. Schmidt - - * ace/Thread_Manager.h: Added a new parameter to wait() that - determines whether relative or absolute time is used. Thanks to - Sonicfly Zhou for this idea. - -Fri Jun 9 14:06:52 UTC 2006 Douglas C. Schmidt - - * ace/Hash_Map_With_Allocator_T.{h,inl,cpp}: Enhanced this class - so that it compiles with the new "two allocator" - ACE_Hash_Map_Manager_Ex class. This class needs to be improved - so that it actually leverages the two allocator features, but - that's something for the future. - -Fri Jun 9 13:15:38 UTC 2006 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.h: Clarified the meaning of the - constructor and open() parameters. - -Fri Jun 9 13:07:40 UTC 2006 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.cpp (open): If the user doesn't supply an - entry_alloc pointer then use the table_alloc pointer. - -Fri Jun 9 13:00:22 UTC 2006 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.cpp (open): Zapped the use of ACE_ASSERT - and replaced it with and if statement. We shouldn't be using - ACE_ASSERT in ACE library code.. - -Fri Jun 9 12:53:48 UTC 2006 Douglas C. Schmidt - - * ace/Hash_Map_Manager_T.{h,inl,cpp}: Added support for a separate - allocator for creating the entries in the chain of - ACE_Hash_Map_Entry objects in the buckets. There are now two - allocators, one for the bucket table and the other for the - entries in the buckets. Thanks to Jaroslaw Nozderko for this fix. - -Fri Jun 9 14:04:12 UTC 2006 Johnny Willemsen - - * ace/ace_for_tao.mpc: - Updated because ARGV and Arg_Shifter are template files now - -Fri Jun 9 13:58:12 UTC 2006 Johnny Willemsen - - * ace/FILE_IO.cpp: - Const improvements - - * ace/MMAP_Memory_Pool.cpp: - Added static cast from ACE_LOFF_T to size_t and const improvements - -Fri Jun 9 13:58:12 UTC 2006 Johnny Willemsen - - * ace/FILE_IO.cpp: - Added static cast from ACE_LOFF_T to size_t - -Fri Jun 9 13:42:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_stat.inl: - Use special stat call for vc71 - -Fri Jun 9 13:33:12 UTC 2006 Johnny Willemsen - - * ace/Connection_Recycling_Strategy.h: - Doxygen improvement - -Fri Jun 9 13:12:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.{h,cpp}: - Use ACE_LOFF_T in the pwrite interface - -Fri Jun 9 12:47:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_stat.h: - With vc71 use _stati64 for ACE_stat, not __stat64. The first has - time as 32bit, the second time as 64 bit (__time64_t) which causes - problems because the time interfaces of ACE use time_t which is - 32bit with vc71 but 64bit with vc8. - -Fri Jun 9 10:29:12 UTC 2006 Johnny Willemsen - - * ace/Configuration_Import_Export.cpp: - Initialise pointer with 0 - -Fri Jun 9 10:13:12 UTC 2006 Johnny Willemsen - - * ace/Arg_Shifter.{h,cpp}: - Also refactored ACE_Arg_Shifter to ACE_Arg_Shifter and - made ACE_Arg_Shifter a typedef. The refactoring fo ACE_ARGV resulted - in a drop of the TAO Hello client executable of about 2.5Kb which is - nice for such a small change. - - * ace/ace.mpc: - * ace/Makefile.am: - Updated because Arg_Shifter.cpp is not a template file - -Fri Jun 9 09:54:12 UTC 2006 Johnny Willemsen - - * ace/config-linux-common.h: - Added ACE_HAS_NETLINK, all linux versions do support netlink sockets. - This closes bugzilla bug 2317. Thanks to Robert Iakobashvili - and Razi Ben-Yehuda - for creating the netlink wrappers - -Fri Jun 9 08:16:12 UTC 2006 Johnny Willemsen - - * tests/SOCK_Netlink_Test.cpp: - New test for netlink sockets. Thanks to Robert Iakobashvili - for creating this test. - - * tests/tests.mpc: - * tests/run_test.lst: - Added new netlink test - -Fri Jun 9 07:55:12 UTC 2006 Johnny Willemsen - - * ace/ARGV.{h,cpp,inl}: - - Refactored ACE_ARGV to ACE_ARGV_T which is a template, where - ACE_ARGV is now a typedef of ACE_ARGV_T. Taken the - idea from the wchar work of David Giovannini - - * ace/ace.mpc: - * ace/Makefile.am: - - ARGV.cpp added to the template files, added the new netlink files - - * ace/OS_NS_sys_stat.{h,inl}: - * ace/MMAP_Memory_Pool{h,cpp}: - * ace/Mem_Map.{h,cpp,inl}: - * ace/Filecache.{h,cpp}: - * ace/FILE_IO.cpp: - * ace/FILE.h: - - Use ACE_LOFF_T for the filesize so that we can support files - bigger then 2Gb on windows and other platforms. Also use for - Borland the 64bit stat structure and api's. This fixes bugzilla - bug 1286, thanks to Ruslan Zasukhin for reporting this. Also fixes part of bugzilla - bug 2359, thanks to Olivier Brunet - for reporting this. - -Thu Jun 8 17:13:42 UTC 2006 Douglas C. Schmidt - - * ace/String_Base.h, - ace/Array_Map.h: Removed the @deprecated - comments to make Ossama happy ;-) This fixes bugid 2558. - -Thu Jun 8 12:44:46 UTC 2006 Douglas C. Schmidt - - * ace/OS_NS_Thread.inl (recursive_mutex_lock): Cleaned up the - structure of the code here so that we don't try to release the - nesting lock unless it was acquired successfully. Thanks to - J.T. for reporting this. - -Thu Jun 8 12:37:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/corba_e_compact.mpb: - * bin/MakeProjectCreator/config/corba_e_micro.mpb: - New base projects for CORBA/e micro and compact - -Thu Jun 8 12:28:49 UTC 2006 Chad Elliott - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/GNUDependencyWriter.pm: - * bin/DependencyGenerator/GNUObjectGenerator.pm: - * bin/DependencyGenerator/Preprocessor.pm: - * bin/depgen.pl: - - Committing performance improvements which take off about 7% from - the dependency generation time for the whole ACE_wrappers tree. - -Thu Jun 8 11:57:58 UTC 2006 J.T. Conklin - - * ace/OS_NS_dirent.cpp: - * ace/OS_NS_dirent.h: - - Don't compile the {opendir,readir,closedir,scandir}_emulation() - functions if {opendir,readir,closedir,scandir} are provided by - the OS. - -Thu Jun 8 11:29:12 UTC 2006 Johnny Willemsen - - * ace/Netlink_Addr.h: - * ace/SOCK_SEQPACK_Association.h: - Doxygen fixes - - * ace/OS_NS_Thread.inl: - Const improvement - -Thu Jun 8 11:37:59 UTC 2006 J.T. Conklin - - * ace/config-netbsd.h: - - Define ACE_HAS_SCANDIR and ACE_SCANDIR_CMP_VOIDPTR. - -Wed Jun 7 23:02:53 UTC 2006 Krishnakumar B - - * tests/Recursive_Mutex_Test.cpp: Use ACE_TEST_MUTEX instead of - ACE_Recursive_Thread_Mutex so that we use the right version of - mutex (ACE_Process_Mutex) on Windows. Thanks to Doug for the - suggestion. This should fix the Recursive_Mutex_Test failing on - Windows. - -Wed Jun 7 21:42:36 UTC 2006 William R. Otte - - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb - - Fixed static library ordering problem. - -Wed Jun 7 13:34:12 UTC 2006 Johnny Willemsen - - * ace/config-doxygen.h: - Added ACE_HAS_NETLINK so that we get documentation for the new - netlink classes - -Wed Jun 7 13:31:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Removed chorus - -Wed Jun 7 13:16:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - When ACE_HAS_NETLINK is defined, include more files specific - for this protocol. - -Wed Jun 7 12:56:12 UTC 2006 Johnny Willemsen - - * ace/Netlink_Addr.{h,cpp,inl}: - * ace/SOCK_Netlink.{h,cpp,inl}: - New files for netlink sockets. Thanks to Robert Iakobashvili - and Razi Ben-Yehuda - for creating these new files. - These files will be added to the ACE mpc later this week, with - the files in the repo it is much easier to test them on - multiple linux version. See bugzilla bug 2317 for more info. - -Wed Jun 7 12:28:18 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Changed the message displayed when a project isn't build when a - particular feature is disabled. Many users thought that this - message was an error, I believe, because of the word 'missing'. - -Wed Jun 7 11:46:12 UTC 2006 Johnny Willemsen - - * ace/config-suncc-common.h: - New config file for the SunCC compiler, idea is to refactor - all things related to the Sun C++ compiler to this file. This is - to make it easier to support Sun C++ on Linux - -Wed Jun 7 10:45:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_linux_suncc.GNU: - First version for using the Sun compiler on Linux. The compiler - itself is an alpha version, so no guarantees at this moment - -Wed Jun 7 10:07:12 UTC 2006 Johnny Willemsen - - * ace/Strategies_T.cpp: - Initialise pointer with 0 and const improvement - -Wed Jun 7 09:19:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - When using -SS we do generate an empty S.h file, so add S - to the header_outputext so that we zap this file during a clean - -Wed Jun 7 09:02:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_aix_g++.GNU: - Set X11 and Xt defines, thanks to Peter Grotrian - for reporting this. This fixes - bugzilla 2556 - - * ace/config-sunos5.5.h: - Added fixes to build with threads=0, this fixes bugzilla bug 2555. Thanks - to Peter Grotrian for reporting - this. - - * ace/config-aix-4.x.h: - Added fixes to build with threads=0, this fixes bugzilla bug 2553. Thanks - to Peter Grotrian for reporting - this. - - * include/makeinclude/platform_chorus.GNU: - * include/makeinclude/platform_chorus4.x_g++.GNU: - * include/makeinclude/platform_chorus_ghs.GNU: - * include/makeinclude/platform_psos_diab.GNU: - * include/makeinclude/platform_psos_diab_ppc.GNU: - * include/makeinclude/platform_psos_tm.GNU: - * include/makeinclude/platform_psosim_g++.GNU: - Removed these files, psos and chorus are not supported anymore - -Wed Jun 7 08:27:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Added needed check for VxWorks with task api - - * ace/os_include/sys/os_stat.h: - Removed workarounds for old Borland compiler versions - -Wed Jun 7 03:25:00 UTC 2006 William R. Otte - - * bin/MakeProjectCreator/config/ciao_config_handlers_base.mpb - * bin/MakeProjectCreator/config/ciao_config_handlers_base.mpc - - Corrected the file extension. - -Tue Jun 6 21:11:37 UTC 2006 Douglas C. Schmidt - - * ace/WFMO_Reactor.cpp (open): make sure we delete the - notify_handler_ before reassigning it to prevent resource leaks. - Thanks to Sonicfly Zhou for suggesting - this. - -Tue Jun 6 21:41:02 UTC 2006 Steve Huston - - * ace/Service_Gestalt.{h cpp}: - * ace/Dynamic_Service_Base.cpp: - * ace/Dynamic_Service_Dependency.cpp: - * ace/Service_Config.cpp: - * ace/Service_Object.cpp: - * ace/Svc_Conf_Lexer.cpp: Add missing #include directives. - -Tue Jun 6 18:09:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Reverted a change for VxWorks, broke other platforms, will make - a new change tomorrow. - -Tue Jun 6 17:14:51 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - - Cleaned up the fill_value() method and removed an unused method. - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Use DirectoryManager::mpc_basename() instead of - File::Basename::basename(). - -Tue Jun 6 15:43:32 UTC 2006 William R. Otte - - * bin/MakeProjectCreator/templates/gnu.mpd - - Modified to explicitly state the name of a project being skipped - due to missing features or libraries. - -Tue Jun 6 03:57:08 UTC 2006 J.T. Conklin - - * ace/Hash_Map_Manager_T.cpp: - * ace/Hash_Map_Manager_T.h: - - Added key() and item() methods to ACE_Hash_Map_Entry<>, to be - like ACE_RB_Tree_Node<>. This makes it easier to switch code - to and from Hash_Maps and RB_Trees. Mark direct access to - the ext_id_ and int_id_ fields @deprecated. - - * ace/Hash_Map_Manager_T.cpp: - * ace/Hash_Map_Manager_T.h: - * ace/Hash_Map_Manager_T.inl: - * ace/RB_Tree.h: - * ace/RB_Tree.inl: - - Added operator->() for iterators to be more like STL API. - -Mon Jun 5 20:27:42 UTC 2006 William R. Otte - - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb - * bin/MakeProjectCreator/config/ciao_config_handlers_base.mpc - - Restructured to clean up config handlers MPC files. - -Sun Jun 4 13:38:21 UTC 2006 Douglas C. Schmidt - - * tests/Array_Map_Test.cpp: Fixed all uses of empty() to be - is_empty(). - -Sun Jun 4 13:35:25 UTC 2006 Douglas C. Schmidt - - * ace/Array_Map.{h,inl}, - * ace/Intrusive_List.{h,inl}, - * ace/String_Base.{h,inl}: Changed empty() to is_empty(), which - makes more sense. Kept empty() around for the time being as a - @deprecated method. Thanks to Domingos Monteiro for this suggestion. - -Sun Jun 4 00:51:38 UTC 2006 Douglas C. Schmidt - - * ace/CString.{h,inl,cpp}: Added some performance improvements for ACE_CString: - - . Introduced new operators == and != to compare ACE_CString - and const char *. This results in at least a 10-fold performance - improvement, due to avoiding dynamic memory allocation. - - . Streamlined the existing operator == between two ACE_CString's. - (15% improvement in some cases, due to avoiding some of the - overhead of compare()) - - Also cleaned up some of the doxygen comments, e.g., the - ACE_CString comparison operators must have been returning an - integer at some point (?), but it's not the case anymore. - Thanks to Patrick Rabau for these - patches. - -Fri Jun 2 19:52:19 UTC 2006 Yan Dai - - * bin/tao_orb_tests.lst: - - Removed DII_Collocation_Tests. - -Fri Jun 2 16:29:55 UTC 2006 Douglas C. Schmidt - - * ace/Select_Reactor_T.cpp (open): Added an error message - explicitly noting that the notification pipe open failed, which - should make debugging easier when this occurs, e.g., due to a - disabled network interface. Thanks to David Highley for this suggestion. - -Fri Jun 2 12:20:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoidl3toidl2defaults.mpb: - Updated to make cross compilation possible - -Fri Jun 2 12:12:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - Added TAO_IDL3_TO_IDL2 and TAO_IDL3_TO_IDL2_DEP as first step to - run idl3_to_idl2 in a cross build environment - -Fri Jun 2 11:51:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - Updated for VxWorks 6.2 - -Fri Jun 2 11:33:36 UTC 2006 Douglas C. Schmidt - - * tests/Recursive_Mutex_Test.cpp (test_recursion_depth): The - get_nesting_level() only works on certain OS platforms, so don't - use it as part of the test. - -Fri Jun 2 10:13:12 UTC 2006 Johnny Willemsen - - * ace/Configuration.cpp: - Fixed operator== - - * tests/Config_Test.{h,cpp}: - Added an explicit test for operator==. Thanks to Popeye Cai - for reporting this. This - fixes bugzilla bug 2550 - -Fri Jun 2 10:02:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Improved VxWorks 6.2 support - - * ace/Svc_Handler.cpp: - 64bit change and initialise pointer with 0 - - * ace/Process.cpp: - Added support for VxWorks 6.x in rtp mode - -Fri Jun 2 09:42:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_Thread.inl: - Added necessary code for VxWorks 6.2 - -Thu Jun 1 23:13:58 UTC 2006 Yan Dai - - * bin/tao_orb_tests.lst: - - Added oneway and twoway DII_Collocation_Tests. - -Thu Jun 1 20:53:31 UTC 2006 Jeff Parsons - - * tests/Recursive_Mutex_Test.cpp (run_main): - - Added ACE_UNUSED_ARG macros to eliminate 'unused parameter' - warnings on single threaded builds. - -Thu Jun 1 16:54:56 UTC 2006 Yan Dai - - * bin/tao_orb_tests.lst: - - Added new DII_Collocation_Tests. - -Thu Jun 1 13:59:12 UTC 2006 Johnny Willemsen - - * ace/FILE.cpp: - Const improvement - -Thu Jun 1 12:15:12 UTC 2006 Johnny Willemsen - - * tests/Dirent_Test.cpp: - Updated VxWorks specific checks, removed chorus checks - -Thu Jun 1 11:03:12 UTC 2006 Johnny Willemsen - - * examples/Threads/thread_pool.cpp: - Fixed 64bit conversion warnings - -Thu Jun 1 09:39:12 UTC 2006 Johnny Willemsen - - * bin/diff-builds.pl: - Corrected usage of strftime - -Thu Jun 1 09:19:12 UTC 2006 Johnny Willemsen - - * ace/Default_Constants.h: - Define the platform suffix for vxworks - - * ace/Sock_Connect.cpp: - Added include for VxWorks and removed some unneeded checks - for vxworks >= 0x600 - - * ace/ACE.h: - Doxygen improvement - - * ace/config-vxworks6.2.h: - Updated with more settings to better match vxworks 6.2 - - * ace/Process_Manager.cpp: - Added specific check for vxworks - - * ace/OS_NS_stdlib.inl: - Emulate putenv with setenv when putenv is not available but - setenv is. - -Thu Jun 1 02:26:03 UTC 2006 Phil Mesnier - - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.cpp: - - Reworked the way static svc descriptors are kept so that if DLLs - include static initializers, they won't cause a problem if the - DLL is later unloaded and reloaded. There is currently no - dependency replationship between these "static" services and the - DLL that contains them, so there is still a slight risk that - pointers held after the DLL is unloaded might be referenced. But - the only thing that actually uses these pointers is the service - gestalt itself if it is processing an explicit static directive - and the desired service object had not yet been loaded in that - configuration context. - -Wed May 31 20:49:03 UTC 2006 Jeff Parsons - - * examples/APG/Logging/Trace.h: - - Added '##' to several macro definitions in this file, at the - suggestion of Steve Huston to get - rid of warnings on GCC4 platforms. - -Wed May 31 18:18:37 UTC 2006 Jeff Parsons - - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb: - - Shortened some line lengths, to make the file more readable. - -Wed May 31 16:36:43 UTC 2006 Steve Huston - - * tests/tests.mpc: - * tests/run_test.lst: Don't build or run Unload_libACE on WinCE. The - code is purposely leaving out ACE stuff and the ACE stuff is needed - for WinCE, unless there's lots of conditional code added to duplicate - the workings on ACE_TMAIN on CE. - -Wed May 31 14:33:16 UTC 2006 Jeff Parsons - - * ace/OS_NS_Thread.inl (recursive_mutex_lock): - - Added additional ACE_UNUSED_ARG for the timeout parameter, to - eliminate warnings in single-threaded builds. - -Wed May 31 13:05:05 UTC 2006 Douglas C. Schmidt - - * ace/Argv_Type_Converter.cpp (align_char_with_wchar): ACE-ified this code. - -Wed May 31 14:00:16 UTC 2006 Jeff Parsons - - * tests/Recursive_Mutex_Test.cpp (run_main): - - Moved '#if defined (ACE_HAS_THREADS)' up a few lines to include - a variable defined inside the same guard at the top of the file, - to eliminate an 'undefined' error on single-threaded builds. - -Wed May 31 13:37:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2542_Regression, this should run without problems - -Wed May 31 11:44:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_time.inl: - Fixed unreachable code warning - -Wed May 31 09:23:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Changes for ACE_FOR_TAO configuration - -Wed May 31 08:19:12 UTC 2006 Johnny Willemsen - - * tests/Bound_Ptr_Test.cpp: - Initalise pointers with 0 - -Wed May 31 08:16:12 UTC 2006 Johnny Willemsen - - * tests/Recursive_Mutex_Test.cpp: - Added missing include to get ACE_OS::sleep - -Tue May 30 21:56:52 UTC 2006 Steve Huston - - * ACE-INSTALL.html: Corrected the AIX section; removed descriptions of - old compilers that are no longer supported and suggested the config - and platform_macros files to use. Thanks to Michelle Zheng - for motivating this. - - * THANKS: Added Michelle Zheng to the Hall of Fame. - -Tue May 30 19:17:40 UTC 2006 Phil Mesnier - - * ace/Dynamic_Service.h: - * ace/Dynamic_Service.inl: - * ace/Dynamic_Service.cpp: - * ace/Dynamic_Service_Base.h: - * ace/Dynamic_Service_Base.cpp: - * ace/Dynamic_Service_Dependency.cpp: - - In order to ensure proper separation of contexts, this patch - gives the dynamic service instance lookup the ability to - optionally exclude the global configuration context. - - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.cpp: - - To allow explicitly configured static service objects, those for - which a directive such as 'static XYZ "foo bar"', to be - independently configured in different configuration contexts, - these changes retain any static service descriptor for service - XYZ, then looks for a previous instance of XYZ in the local - context only, otherwise it uses the previously retained static - service descriptor to create a new instance. - - -Tue May 30 18:24:54 UTC 2006 Douglas C. Schmidt - - * ace/DLL.h (ACE_DLL): Updated the documentation of open() to explain the - lookup scheme when a filename is given. Thanks to Phlip - for motivating this. - -Tue May 30 13:06:42 UTC 2006 Douglas C. Schmidt - - * ace/ACE.inl: - * ace/Base_Thread_Adapter.cpp: - * ace/Default_Constants.h: - * ace/Global_Macros.h: - * ace/OS.h: - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_Thread.h: - * ace/OS_NS_netdb.inl: - * ace/OS_NS_signal.inl: - * ace/OS_NS_sys_socket.inl: - * ace/OS_NS_time.inl: - * ace/OS_main.cpp: - * ace/OS_main.h: - * ace/Object_Manager_Base.h: - * ace/Process_Manager.cpp: - * ace/Process_Semaphore.cpp: - * ace/Process_Semaphore.h: - * ace/Process_Semaphore.inl: - * ace/Recursive_Thread_Mutex.cpp: - * ace/SV_Semaphore_Simple.h: - * ace/TLI_Acceptor.cpp: - * ace/Thread_Adapter.cpp: - * ace/Token.h: - * ace/config-macros.h: Removed all vestiges of PSOS. - -Tue May 30 12:22:53 UTC 2006 Chad Elliott - - * bin/mpc.pl: - * bin/mwc.pl: - - Added a load-time check for the minimum perl version (5.6). - -Tue May 30 12:18:12 UTC 2006 Johnny Willemsen - - * ace/Log_Msg.cpp: - * ace/OS_NS_dirent.inl: - * ace/OS_NS_netdb.inl: - * ace/OS_NS_pwd.inl: - * ace/OS_NS_stdlib.inl: - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_Thread.inl: - * ace/OS_NS_time.cpp: - * ace/OS_NS_time.inl: - * ace/Thread_Manager.cpp: - * ace/os_include/os_pthread.h: - * ace/os_include/os_stdlib.h: - Removed support for HPUX 10.20 - - * ace/os_include/net/os_if.h: - * ace/os_include/netinet/os_tcp.h: - Removed psos support - - * ace/os_include/sys/os_types.h: - Removed ACE_LACKS_FLOATING_POINT - -Tue May 30 11:57:12 UTC 2006 Johnny Willemsen - - * ace/config-hpux-10.x-g++.h - * ace/config-hpux-10.x-hpc++.h - * ace/config-hpux-10.x.h - Removed these files, not supported anymore - - * ace/OS_NS_time.inl: - Removed check for ACE_CTIME_R_RETURNS_INT, it was for hpux 10.20 - -Tue May 30 11:57:12 UTC 2006 Johnny Willemsen - - * ace/config-osf1-4.0.h: - Removed, contents merged to tru64 file - - * ace/config-tru64.h: - Added osf1-4.0 file contents, be aware that tru64 support hasn't - been tested for a long time. - -Tue May 30 11:45:12 UTC 2006 Johnny Willemsen - - * tests/Recursive_Mutex_Test.cpp: - Fixed compile error - -Tue May 30 11:11:12 UTC 2006 Johnny Willemsen - - * ace/os_include/os_stdio.h: - Removed psos support - - * ace/IOStream.h: - Removed checks for ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS, that was only - set for chorus which is removed - - * ace/Basic_Types.h: - * ace/Log_Msg.cpp: - * ace/Profile_Timer.{h,cpp}: - Removed checks for ACE_LACKS_FLOATING_POINT. Was only set for chorus - which is now removed. - - * ace/OS_NS_Thread.cpp: - Removed chorus support - - * ace/config-chorus.h: - Removed. - - * ace/INET_Addr.cpp - * ace/Lib_Find.cpp - * ace/Local_Tokens.cpp - * ace/Log_Record.cpp - * ace/Parse_Node.cpp - Removed check for ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS, is only - set for psos which we don't support anymore - - * ace/os_include/os_signal.h: - Removed check for ACE_SIGINFO_IS_SIGINFO_T, only set for psos - - * ace/config-psos-diab-mips.h - * ace/config-psos-diab-ppc.h - * ace/config-psos-diab.h - * ace/config-psos-tm.h - * ace/config-psosim-g++.h - Removed from the repo, psos support has been removed - -Tue May 30 10:48:12 UTC 2006 Johnny Willemsen - - * ace/CDR_Stream.cpp: - Use true/false, when demarshaling a string, check the result of the - demarshaling of the length of the string, if that failed, just return - directly instead of trying to demarshal a random lenght string - - * ace/Task.h: - * ace/System_Time.h: - Doxygen improvement - - * ace/ACE.cpp: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/Sock_Connect.cpp: - * ace/Process.cpp: - * ace/OS_NS_unistd.cpp: - * ace/Mem_Map.cpp: - Removed chorus support - - * ace/config-fsu-pthread.h: - Removed this file, this configuration isn't supported and used for - ages - - * ace/Condition_Thread_Mutex.cpp: - * ace/Recursive_Thread_Mutex.cpp: - Removed fsu pthread support - - * ace/Process_Manager.cpp: - Const improvement - - * ace/OS.inl: - * ace/OS_NS_sys_socket.inl: - * ace/OS_NS_stdlib.cpp: - * ace/OS_NS_stdlib.inl: - * ace/OS_NS_Thread.cpp: - Removed psos support - - * ace/OS_NS_unistd.inl: - * ace/OS_NS_stdio.{h,cpp,inl}: - * ace/Handle_Set.h: - * ace/OS_NS_Thread.{h,inl}: - Removed psos and chorus support - - * ace/Thread_Manager.{h,cpp,inl}: - Made terminated_ a real bool, removed chorus support, check for - ACE_VXWORKS instead of VXWORKS - - * ace/OS_NS_sys_time.inl: - Check for ACE_VXWORKS instead of VXWORKS - - * ace/MMAP_Memory_Pool.{h,cpp}: - Removed chorus support, use bool internally and added an option to - get each time an unique mmap filename - - * ace/config-linux-common.h: - Added ACE_HAS_VOIDPTR_MMAP and removed KCC support - - * ace/ace_wchar.inl - * ace/Default_Constants.h - * ace/INET_Addr.h - * ace/IPC_SAP.cpp - * ace/Message_Queue.cpp - * ace/Message_Queue.h - * ace/Message_Queue.inl - * ace/Message_Queue_T.cpp - * ace/Message_Queue_T.h - * ace/OS.h - * ace/OS_NS_macros.h - * ace/OS_NS_stdio.h - * ace/OS_NS_stdio.inl - * ace/OS_NS_stdlib.inl - * ace/OS_NS_Thread.cpp - * ace/OS_NS_Thread.h - * ace/OS_NS_Thread.inl - * ace/OS_NS_time.inl - * ace/Recursive_Thread_Mutex.cpp - * ace/Sched_Params.cpp - * ace/Select_Reactor_T.cpp - * ace/SOCK_Dgram_Bcast.cpp - * ace/Thread_Manager.h - * ace/Token.h - Check for ACE_VXWORKS instead of VXWORKS - -Mon May 29 22:08:50 UTC 2006 Douglas C. Schmidt - - * ace/OS_NS_Thread.inl (recursive_mutex_lock): *Really* make the compiler - happy now. Thanks Olli! - -Mon May 29 21:12:50 UTC 2006 Douglas C. Schmidt - - * ace/OS_NS_Thread.inl (recursive_mutex_lock): Added a const_cast - for ACE_Time_Value * to make the compiler happy when passing the - timeout parameter to ACE_OS::cond_timed_wait(). Thanks to Olli - Savia for helping here. - -Mon May 29 20:30:44 UTC 2006 Douglas C. Schmidt - - * We recently added the 2100th contributor to ACE+TAO+CIAO!!! The - 2000th contributor was added in August of 2005, this means that - over 100 different people have contributed to the project in the - past 9 months! - -Mon May 29 19:50:54 UTC 2006 Douglas C. Schmidt - - * examples/Service_Configurator/IPC-tests/server/server_test.cpp (ACE_TMAIN): - Changed - - ACE_Reactor::instance ()->run_reactor_event_loop () - - to - - ACE_Reactor::run_event_loop () - - so that reconfiguration happens properly after a SIGHUP or - SIGINT occurs. Thanks to Kevin Hu for motivating this. - -Mon May 29 18:10:50 UTC 2006 Steve Huston - - * tests/Signal_Test.cpp: - * tests/Thread_Manager_Test.cpp: Add missing ACE_TEXT to a string. - -Mon May 29 18:44:05 UTC 2006 Douglas C. Schmidt - - * tests/Recursive_Mutex_Test.cpp: Enhanced this test to exercise - the new timed feature of ACE_Recursive_Thread_Mutex. - -Mon May 29 18:16:31 UTC 2006 Douglas C. Schmidt - - * ace/Recursive_Thread_Mutex.h: Clarified that get_nesting_level() - may return -1 on some platforms when ACE_HAS_RECURSIVE_MUTEXES - is enabled. - -Mon May 29 17:45:02 UTC 2006 Douglas C. Schmidt - - * ace/Recursive_Thread_Mutex.inl: Moved some of the short accessor - methods from the Recursive_Thread_Mutex.cpp file to here. - - * ace/Recursive_Thread_Mutex.h, - ace/Recursive_Thread_Mutex.inl: Added support for time recursive - mutexes, thanks also to Abdullah. - - * ace/OS_NS_Thread.h, - * ace/OS_NS_Thread.inl: Added support for timed recursive mutexes. - Thanks to Abdullah Sowayan for contributing this. - -Mon May 29 17:30:52 UTC 2006 Douglas C. Schmidt - - * ace/OS_NS_Thread.h: Updated the documentation to clarify why - recursive mutexes can't be used for ACE_OS::mutex_lock(). - -Mon May 29 18:27:08 UTC 2006 Jeff Parsons - - * examples/DLL/test_dll.cpp: - - Changed instances of a C-style cast from void* to - pointer-to-function to a two-step reinterpret_cast - using ptrdiff_t as an intermediate. C++ forbids casting - directly between pointer-to-object and pointer-to-function, - and some of the newer compilers are catching it. - -Sat May 27 15:03:07 UTC 2006 Douglas C. Schmidt - - * netsvcs/servers/main.cpp (ACE_TMAIN): Removed the following code: - - if (ACE::debug () == 0) - ACE_LOG_MSG->priority_mask (~LM_DEBUG, ACE_Log_Msg::PROCESS); - - since (1) it makes debugging hard and (2) it's simply wrong - since it's blowing away anything that's set by the - ACE_Logging_Strategy in the svc.conf file. - -Sat May 27 14:37:14 UTC 2006 Douglas C. Schmidt - - * ace/Log_Record.cpp (print): Only print out the log records if the - corresponding type is enabled for logging. - -Sat May 27 14:35:21 UTC 2006 Douglas C. Schmidt - - * netsvcs/servers/main.cpp: Enable the ignore_debug_flag in the - ACE_Service_Config::open() call so that we can override the - default ACE_Log_Priority settings in the svc.conf file. - -Sat May 27 11:36:12 UTC 2006 Johnny Willemsen - - * performance-tests/SCTP/hist.cpp: - Fixed compile error - -Fri May 26 22:02:48 UTC 2006 Steve Huston - - * examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp: - * examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp: - * examples/IPC_SAP/SPIPE_SAP/server.cpp: Wide-char fixes; there's no - wide-char variant for ACE_OS::fdetach(). - - * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: - * examples/IPC_SAP/TLI_SAP/db-client.cpp: - * examples/IPC_SAP/TLI_SAP/ftp-client.cpp: - * examples/Connection/non_blocking/test_tli_acceptor.cpp: - * examples/Connection/non_blocking/test_tli_connector.cpp: - Wide-char/narrow-char fixes. - -Fri May 26 21:47:56 UTC 2006 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp, - * netsvcs/lib/Server_Logging_Handler_T.cpp, - * ace/Log_Msg_IPC.cpp: Removed the special case code for Windows - since it seems like ACE (or Windows) now handles this properly. - -Fri May 26 21:20:35 UTC 2006 Douglas C. Schmidt - - * ace/Log_Record.cpp (operator>>): Add one when allocating the buffer. - -Fri May 26 13:16:48 UTC 2006 Nanbor Wang - - * ace/DLL_Manager.cpp: - - Fixed incorrect usage of ACE::debug check. Thanks to Johnny for - reporting this. - -Fri May 26 15:04:55 UTC 2006 Jeff Parsons - - * ASNMP/tests/Counter_Test.cpp: - * ASNMP/tests/Gauge_Test.cpp: - * performance-tests/SCTP/hist.cpp: - - Added static_cast<>s to eliminate implicit conversion warnings. - -Fri May 26 12:42:12 UTC 2006 Johnny Willemsen - - * tests/Naming_Test.cpp: - Replaced assert with if statement, resolved argument not used - warning in BCB6 release builds - -Fri May 26 10:26:12 UTC 2006 Johnny Willemsen - - * tests/Bug_1890_Regression_Test.cpp: - * tests/Bug_2540_Regression_Test.cpp: - New tests made by Carlos O'Ryan for the given bug numbers. - - * tests/run_test.lst: - * tests/tests.mpc: - Added the new tests above - -Fri May 26 09:53:12 UTC 2006 Johnny Willemsen - - * bin/PerlACE/Run_Test.pm: - Increased wait_interval_for_process_creation from 5 to 10 seconds. - On the slower systems some tests failed because the startup time - is longer then 5 seconds, especially if several configuration files - are read and saved during startup - -Fri May 26 08:21:12 UTC 2006 Johnny Willemsen - - * bin/diff-builds.pl: - Fixed typo in comment - -Thu May 25 04:58:44 UTC 2006 Douglas C. Schmidt - - * tests/Tokens_Test.cpp (run_main): Don't try to spawn the - netsvcs/server/main if it's not built. - -Thu May 25 03:53:47 UTC 2006 J.T. Conklin - - * m4/config_h.m4: - - Removed AH_TEMPLATE for ACE_LACKS_TCP_H. This was replaced - with ACE_LACKS_NETINET_TCP_H long ago. - -Wed May 24 22:19:43 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Repository.{h, inl, cpp}: - - Changed size arguments type to size_t in ctor, open, - current_size, total_size and the corresponding members. - ACE_Service_Repository_Iterator::next_ now starts from 0 instead - of -1 to avoid warnings about signed/unsigned comparisons. - - * ace/Service_Gestalt.cpp: - - Reverted the change "Wed May 24 14:00:43 UTC 2006 Iliyan - Jeliazkov ", since now the - Service_repository::instance() takes size_t argument. - - * performance-tests/Synch-Benchmarks/Base_Test/Synch_Benchmarks_Base_Test.mpc: - * performance-tests/Synch-Benchmarks/Perf_Test/Synch_Benchmarks_Perf_Test.mpc: - - Fixed and error whereby the DLL's generated by this two project - files did not match the name used in the svc configuration - files, causing the test to crash because of missing DLL. - -Wed May 24 13:08:08 UTC 2006 Steve Huston - - * ace/Message_Queue.h: Added #include "ace/Thread_Mutex.h" on platforms - that have ACE_Message_Queue_NT available; that class has a - ACE_Thread_Mutex member so the include is needed to see the class. - Thanks to Guy Peleg for this fix. - -Wed May 24 17:39:47 UTC 2006 Douglas C. Schmidt - - * ace/Remote_Tokens.cpp (request_reply): Added a helpful error - message to make it easy to track down problems with TSS. - -Wed May 24 17:22:31 UTC 2006 J.T. Conklin - - * configure.ac: - - Change feature test to define ACE_LACKS_NATIVE_STRPTIME if - system doesn't support strptime(), as it seems ACE doesn't - follow its feature test macro naming conventions when it comes - to strptime(). - - Changed ACE_LACKS_STRPTIME_PROTOTYPE feature test to use - AC_CHECK_DECL instead of AC_EGREP_HEADER. - -Wed May 24 16:33:59 UTC 2006 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Changed ACE_LACKS_STRPTIME and ACE_LACKS_STRPTIME_PROTOTYPE - feature tests to use the same idiom as similar tests. This - Avoids requiring an AH_TEMPLATE for each feature test macro - in config_h.m4. - -Wed May 24 09:07:53 2006 Douglas C. Schmidt - - * ace/Activation_Queue.cpp, - * ace/Activation_Queue.inl: Fixed the queue() "setter" method - so that it doesn't leak memory. Thanks to David Chu for providing this fix. - -Wed May 24 14:00:43 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp: - - Added a cast from size_t to int in the ctor to match the - interface of ::instance() and to quiet the 64bit compilers, - complaining about loss of precision in the implicit conversion. - -Tue May 23 19:21:55 UTC 2006 J.T. Conklin - - * tests/Signal_Test.cpp: - - Reset SIGHUP handler to SIG_DFL to support cases where SIGHUP - is ignored (running under nohup(1), etc.). - -Tue May 23 10:55:59 2006 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp (handle_input): - * netsvcs/lib/Server_Logging_Handler_T.cpp - (handle_logging_record): Cleaned up the code so that it should - have no memory leaks and will also build cleanly on all the OS - platforms. - - * ace/Log_Msg_IPC.cpp: Fix support for ACE_HAS_STREAM_PIPES. - -Tue May 23 13:05:03 UTC 2006 Phil Mesnier - - * ace/Log_Msg.cpp: - Fixing a memory leak found by valgrind. - - * ace/Timeprobe.cpp: - Added missing include - this wouldn't comple with both noinline - and ACE_COMPILE_TIMEPROPE set. - -Mon May 22 21:13:15 UTC 2006 Iliyan Jeliazkov - - * bin/diff-builds.pl: - - Updated to allow diff between the tests failures today and on a - specified date, for the clean builds (or, all the builds from - the build score). - -Mon May 22 19:06:41 UTC 2006 Steve Huston - - * ace/Log_Record.cpp (operator<<, operator>>): Have to use a different - CDR array method when ACE_USES_WCHAR. - -Mon May 22 09:04:12 UTC 2006 Johnny Willemsen - - * netsvcs/lib/Client_Logging_Handler.cpp: - Fixed compile error on Solaris - -Mon May 22 04:53:29 UTC 2006 J.T. Conklin - - * tests/Signal_Test.cpp: - - The change: - Sat May 20 15:10:55 UTC 2006 J.T. Conklin - - Was not enough to get this test working on all platforms. - - Revert to using ACE_Sig_Guard in worker_child(). Handle the - SIGINT race condition by raising it if and only if the child - was not shut down by the parent. - -Sun May 21 13:46:49 UTC 2006 Iliyan Jeliazkov - - * tests/Service_Config_Test.cpp: - - Fixing Windows test failures, because errno gets overriden - between Service Repository::insert() and testLimits(). Most - likely, it happens in ace_yyparse (), however the existing - mechanism for reporting parser errors does not allow for - reliably propagating the cause of the error. Removing the test - for the cause of the error and simply reporting the error, if it - had occured. - -Sat May 20 15:10:55 UTC 2006 J.T. Conklin - - * tests/Signal_Test.cpp: - - Changed synchronous tests to block signals at the top level. - This had been done with a ACE_Sig_Guard, but that lead to a race - condition between when the guard was release and the delivery of - the SIGINT the client sends to itself. The SIGINT would then be - handled by the default handler, which terminated the process - before the "Ending" message was written to the log. - - #if'd out the ACE_DEBUG, etc. invocations from handle_signal(). - These result in signal-unsafe functions being called when the - handler is called asynchronously. A braver person would have - just removed them entirely. - -Fri May 19 20:08:29 UTC 2006 Steve Huston - - * ace/config-sunos5.6.h: - * ace/os_include/sys/os_mman.h: Moved the declaration of ::madvise() - from config-sunos5.6.h to os_mman.h, to be compiled only when - ACE_LACKS_MADVISE_PROTOTYPE is defined. Set - ACE_LACKS_MADVISE_PROTOTYPE in config-sunos5.6.h where it used to - declare madvise(). This allows autoconf-detected - ACE_LACKS_MADVISE_PROTOTYPE platforms (such as Solaris 9) to - compile correctly. - -Fri May 19 17:53:51 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp: - - Fixed a defect in process_directive () which was replacing the - ENOSPC errno with EINVAL. Added #ifndef ACE_NLOGGING / #endif - around logging statements. - - * ace/Service_Repository.cpp: - - Minor reformating. - - * tests/Service_Config_DLL.cpp: - - Added two independent service objects, to be used in the - testLimits test. See testLimits(). - - * tests/Service_Config_Test.cpp: - - Reworked the testLimits() to avoid printing the word "error", - which confuses the test driver into thinking the test failed. - -Fri May 19 17:51:33 UTC 2006 Phil Mesnier - - * ace/Service_Gestalt.cpp: - - Elminated memory leak found by valgrind. - -Fri May 19 17:09:51 UTC 2006 Jeff Parsons - - * tests/Service_Config_Test.cpp: - - Fixed a warning due to assignment of a string literal to a - non-const variable. - -Thu May 18 17:42:09 UTC 2006 Iliyan Jeliazkov - - * bin/diff-builds.pl: - - Contributing a little tool to find the difference in the failing - tests between two dates, on the same build. Or between two - builds, on a particular date. Thanks to Johnny Willemsen - for mining and hosting the data used by - this script. - -Thu May 18 17:33:57 UTC 2006 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Changed feature test for socklen_t to #include - before . Use cannonical AC_CHECK_TYPE and - AC_DEFINE with a third argument instead of a AH_TEMPLATE for - ACE_HAS_SOCKLEN_T. Fixes configuration on OpenBSD. Thanks to - Vladimir Panov for reporting this bug. - -Thu May 18 16:37:46 UTC 2006 Steve Huston - - * configure.ac: Set a ACE_VERSION_NAME variable with the version - string (canonical major.minor.beta), which may include a fix kit id. - - * bin/MakeProjectCreator/config/acedefaults.mpb: Change am_version from - libtool's -version-info format (current:revision:age) to the ACE - release number format (major.minor.beta) and rename it am_release. - This is intended for use with the libtool's -release option and will - result in library names that correspond to the ACE kit number. - The -version-info option uses interface numbers meant to indicate a - series of public API numbers. However, with ACE, things change - pretty often. Rather than try to come up with a way of managing - interface numbers, just use the release numbering that users know - and are used to. - -Thu May 18 15:15:16 UTC 2006 Iliyan Jeliazkov - - * bin/tao_orb_tests.lst: - - Removed Limits from the list of ORB tests because it is now part - of ACE. - - * tests/Service_Config_Test.cpp: - - Added functionality to test gestalt size limits. - -Thu May 18 15:21:33 UTC 2006 Steve Huston - - * NEWS: - * ace/Task.{h inl cpp}: Reverted the changes from: - Fri Apr 14 15:53:21 UTC 2006 Steve Huston - Tasks that delete themselves from within close() would invalidate - the lock that ACE_Task held across the close() call and perform - undefined and illegal actions on the deleted lock upon return. - Bugzilla #2339 remains unresolved. - -Wed May 17 20:31:11 UTC 2006 Roopa Pundaleeka - - * ace/DLL_Manager.cpp: - * ace/DLL_Manager.h: - The dll handle is added to the to the - handle_vector_ only after the library is opened - successfully. This way, the vector does not have redundant - handles. - - * ace/Object_Manager.cpp: - ACE_DLL_Manager::close_singleton is called explicitly from the - ACE_Object_Manager to make sure ACE_DLL_Manager gets cleaned up, - even if there was an error while opening a lib file. - - Thanks to Timo Kuosmanen for - reporting this. - -Wed May 17 14:07:33 2006 Douglas C. Schmidt - - * netsvcs/lib/Server_Logging_Handler_T.cpp: Improved the code so - that it should compile and run properly on Windows. Thanks to - Phil Mesnier for reporting this. - -Wed May 17 19:07:43 UTC 2006 Steve Huston - - * ace/Dynamic_Service_Dependency.h: Doxygen correction; use @c to - set a word in "typewriter" font, but for known class names, there's - no need to do this. - -Wed May 17 17:56:49 UTC 2006 William R. Otte - - * examples/C++NPv1/Logging_Client.cpp - * examples/C++NPv1/Logging_Handler.cpp - * examples/C++NPv2/Logging_Handler.cpp - - Removed now-redundant CDR insertion/extration operators now - defined in ace/Log_Record.{h,cpp} - -Wed May 17 09:35:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_ipc.h: - * ace/os_include/sys/os_socket.h: - * ace/os_include/sys/os_stat.h: - * ace/os_include/sys/os_types.h: - Removed psos support - - * ace/os_include/sys/os_mman.h: - Removed madvice prototype and ACE_LACKS_MADVISE_PROTOTYPE, it - is not set in any config file - -Wed May 17 02:23:31 UTC 2006 Phil Mesnier - - * ace/Log_Msg_IPC.cpp: - - Fix typo exposed on systems with ACE_HAS_STREAM_PIPES defined. - I'll leave it to Will & Doug to do whatever the TO DO said to do. - -Tue May 16 22:23:55 UTC 2006 William R. Otte - - * ace/Log_Msg_IPC.cpp - * ace/Log_Record.cpp - * ace/Log_Record.h - * ace/Log_Record.inl - * netsvcs/lib/Client_Logging_Handler.cpp - * netsvcs/lib/Server_Logging_Handler_T.cpp - - Fixed some problems that stemmed from changing ACE_Log_Msg - msg_data_ from a fixed-size array to a dynamically-sized array. - Thanks to Keith Muzzioli , - John Black , and Mitsuo - Fukasawa for reporting this - and to Doug Schmidt for helping to fix it! - -Tue May 16 13:20:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_time.inl: - * ace/OS_NS_time.{h,cpp,inl}: - Removed chorus and psos support - - * ace/OS_Thread_Adapter.cpp: - Removed psos support - -Tue May 16 13:09:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_wait.{h,inl}: - Remove chorus support - - * ace/OS_NS_stropts.inl: - * ace/OS_NS_sys_stat.inl: - * ace/OS_NS_string.inl: - Removed psos support - -Tue May 16 13:02:12 UTC 2006 Johnny Willemsen - - * ace/Log_Msg.cpp: - * ace/OS_NS_arpa_inet.{h,cpp,inl}: - * ace/OS_NS_dirent.inl: - Removed psos support - - * ace/INET_Addr.cpp: - * ace/config-macros.h: - Removed chorus support - - * ace/Unbounded_Queue.h: - Removed remark about chorus - - * ace/config-cray.h: - Removed explicit template instantiation define, we don't have that - anymore - - * ace/config-hpux-11.00.h: - * ace/config-sunos5.7.h: - * ace/config-rtems.h: - * ace/config-osf1-4.0.h: - Removed kcc support - -Mon May 15 11:30:14 UTC 2006 Phil Mesnier - - * bin/tao_other_tests.lst: - Added more tests that can't run in ACE_FOR_TAO configations due - to dependency on something that avoids ACE_FOR_TAO. - -Mon May 15 01:15:45 UTC 2006 Phil Mesnier - - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - Added !ACE_FOR_TAO to those tests for which MPC skips generating - executables because it directly or indirectly avoids ACE_FOR_TAO. - Indirect avoidance occurs when a project derives from a base - project that avoids ACE_FOR_TAO. - -Thu May 11 12:37:12 UTC 2006 Johnny Willemsen - - * ace/Message_Block.h: - Doxygen improvements - -Thu May 11 11:15:12 UTC 2006 Johnny Willemsen - - * ace/Dev_Poll_Reactor.cpp: - Removed chorus support - -Thu May 11 07:19:12 UTC 2006 Kees van Marle - - * bin/tao_orb_tests.lst: - Added Bug_1254_Regression - -Wed May 10 14:10:02 UTC 2006 Steve Huston - - * ace/config-win32-msvc-7.h: MSVC 7.1 operator new throws an exception - on an out-of-memory condition, but only when the standard C++ - library is used; the older CRT new() doesn't. - -Tue May 9 11:38:30 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - Add -GT to the idlflags, all orbsvcs then do generate the TIE files, - if people then use them, they get them out of the box. - -Tue May 9 07:36:30 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/taoidldefaults.mpb: - Removed -Sc, added -GT, see bugzilla bug 2525 for more info - -Tue May 9 07:25:30 UTC 2006 Johnny Willemsen - - * ace/Condition_T.{h,cpp,inl}: - * ace/Local_Name_Space_T.cpp: - * ace/Configuration.cpp: - * ace/Sched_Params.cpp: - * ace/Mutex.{h,cpp,inl}: - * ace/Select_Reactor_T.cpp: - * ace/Signal.cpp: - Removed Chorus support - - * ace/CDR_Stream.cpp: - Small layout change - - * ace/Event_Handler.cpp: - Removed psos support - - * ace/Message_Block.h: - Doxygen improvements - - * ace/Message_Block.cpp: - Const improvement - -Sun May 7 21:03:30 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.{h,cpp}: - - Weeding out the remaining issues with single threaded - builds. The implementation now relies on the ACE_TSS_* macros to - abstract from the differences among build styles and platform - support for TSS. - - * ace/Service_Gestalt.{h,cpp}: - - Eliminated commented out code. Minor reformatting in places. - - * ace/TSS_T.{h,inl,cpp}: - - Added some comments to help others avoid a few pitfalls. Made - ts_init() a non-const, which eliminates a few const_cast's. - -Sun May 7 07:02:51 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.h: - * ace/Service_Config.cpp: - - Refactored the TSS usage (again) to fix a nasty - order-of-initialization problem. The gist of which is that, if - the ptr (to a template class instance) is a static member, in - static builds, it will be initialized by the process prologue - code *after* another static initializer has had the chance to - use and assign it a value. The solution was to use a method - scope static instance, which C++ guarantees to be initialized by - the (first) exit from that method. - - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.cpp: - - Refactored the construction to avoid using straight new in - constructor initializer lists. Replaced new with ACE_NEW_* where - appropriate. - -Sat May 6 18:08:13 UTC 2006 J.T. Conklin - - * configure.ac: - - Add feature tests for ACE_LACKS_ASCTIME, ACE_LACKS_ACSTIME_R, - ACE_LACKS_GETCWD, ACE_LACKS_GMTIME, ACE_LACKS_GMTIME_R, - ACE_LACKS_LOCALTIME, and ACE_LACKS_STRFTIME. - -Sat May 6 09:52:06 2006 Douglas C. Schmidt - - * examples/DLL/test_dll.cpp: Renamed the DLLs and removed the "./" - from the pathname. Thanks to Sam and Roopa for reporting this - and tracking it down, respectively. - -Sat May 6 10:23:13 UTC 2006 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU: Add -lrt -laio to - the LIBS. The Proactor framework needs this; I'm not sure why it - never showed up until static builds were run. - -Tue Apr 25 10:22:16 2006 Douglas C. Schmidt - - * ace/OS_NS_string.cpp (strerror): Do a sanity check to make sure - errnum >= 0 and < _sys_nerr and set errno to EINVAL if things - are not sane. Thanks to Aleksandar Vukajlovic for this fix. - -Fri May 5 19:37:12 UTC 2006 Johnny Willemsen - - * ace/Default_Constants.h: - Added a compile time check that ACE_DEFAULT_CDR_BUFSIZE must be - defined to a value bigger then 0, it is 0 we get in a never ending - loop in the CDR code - -Fri May 5 17:01:32 UTC 2006 Steve Huston - - * examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.{cpp i h}: - Wide-char corrections. - -Fri May 5 13:11:12 UTC 2006 Johnny Willemsen - - * ace/FIFO.cpp: - * ace/os_include/os_stddef.h: - Removed psos support - - * ace/config-WinCE.h: - * ace/os_include/os_stddef.h: - Moved setting of ACE_LACKS_STDDEF_H and ACE_LACKS_PTRDIFF_T to the - WinCE file - -Fri May 5 13:08:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_openvms.GNU: - Changed the way templates are handled - -Fri May 5 11:42:12 UTC 2006 Johnny Willemsen - - * ace/Reactor_Token_T.h: - Removed workaround for vc6 - -Fri May 5 08:38:12 UTC 2006 Johnny Willemsen - - * ace/MMAP_Memory_Pool.{h,cpp}: - Made guess_on_fault_ a real bool - -Fri May 5 08:09:12 UTC 2006 Johnny Willemsen - - * ace/os_include/os_dirent.h: - * ace/os_include/os_errno.h: - * ace/os_include/os_netdb.h: - * ace/os_include/os_stdint.h: - * ace/os_include/os_time.h: - * ace/os_include/os_string.h: - * ace/os_include/os_stdlib.h: - Removed psos support - - * ace/os_include/os_dlfcn.h: - * ace/os_include/os_signal.h: - Removed psos and kcc support - - * ace/os_include/os_pthread.h: - Removed chorus support - - * ace/os_include/os_unistd.h: - Removed chorus and psos support - -Fri May 5 07:59:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_utsname.cpp: - * ace/OS.h - Removed psos and chorus support - - * ace/OS_NS_fcntl.cpp: - * ace/Lib_Find.cpp: - * ace/OS_NS_netdb.inl: - Removed psos support - - * ace/Mem_Map.cpp: - Removed chorus support - - * ace/IOStream.h: - Removed checks for KCC compiler - -Fri May 5 07:42:12 UTC 2006 Johnny Willemsen - - * ace/Base_Thread_Adapter.h: - * ace/SPIPE_Connector.cpp: - * ace/SOCK_Dgram.cpp: - * ace/Select_Reactor_T.cpp: - * ace/Handle_Set.cpp: - Removed code for psos, support for this platform will be removed - - * ace/CDR_Base.h: - Removed check for KCC compiler - - * ace/Malloc_Allocator.h: - Doxygen improvement - -Thu May 4 22:11:06 UTC 2006 Steve Huston - - * ace/Message_Block.h: Made ACE_Data_Block::release_i() virtual. - Thanks to Gary Fernandez for this change. - -Thu May 4 21:07:10 UTC 2006 Steve Huston - - * ace/SPIPE_Acceptor.cpp (create_new_instance, close): Have to use - ACE_TEXT_ALWAYS_CHAR to pass pipe name on wide-char w/ - ACE_HAS_STREAM_PIPES. Thanks to Gary Fernandez for this fix and to Yasser - Zabuair for also reporting it. This - fixes bugid 2541. - - * THANKS: Added Gary and Yasser to the Hall of Fame. - -Thu May 4 08:50:12 UTC 2006 Johnny Willemsen - - Reverted the change below, broke the sendfile test and Steve - Huston changed things in such a way that sendfile is only - used on Solaris 9 and newer - - Tue May 2 09:34:54 Pacific Daylight Time 2006 - * ace/OS_NS_sys_sendfile.inl (sendfile): - Removed "::" global scope qualifier from platform sendfile() - call. It caused problem on Solaris 8. Thanks to Simon Massey - and Johnny Willemsen for analyzing the problem and suggesting - this fix. - -Thu May 4 08:36:12 UTC 2006 Johnny Willemsen - - * ace/ace_for_tao.mpc: - Added OS_NS_sys_sendfile - -Thu May 4 00:43:32 UTC 2006 J.T. Conklin - - * ace/Makefile.am: - - Add Dynamic_Service_Dependency.{cpp,h} to appropriate lists. - -Wed May 3 16:02:10 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.h: - * ace/Service_Config.cpp: - - Fixed a problem due to an attempt to access current_ before it - has been initialized (a static ACE_TSS instance). The current_ - is now just a pointer to an ACE_TSS instance, which gets - dynamicaly allocated upon invoking the current() method. The - deallocation of that instance is left up to the Object Manager - with which the dynamic ACE_TSS instance is registered. - - * ace/TSS_T.h: - - Added a ACE_TSS_SET () to complete the set of TSS access - operations, which should work regardless of threading, TSS - emulation and TSS availability. - -Wed May 3 11:52:12 UTC 2006 Johnny Willemsen - - * ace/Mem_Map.inl: - Small const improvements - -Wed May 3 10:39:12 UTC 2006 Johnny Willemsen - - * ace/Mem_Map.{h,cpp,inl}: - Made close_handle_ a bool - -Wed May 3 08:56:12 UTC 2006 Johnny Willemsen - - * ace/config-macros.h: - Removed support for KCC - -Wed May 3 08:14:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_sendfile.h: - Export sendfile_emulation to resolve link problems in the - windows builds - -Wed May 3 03:36:23 UTC 2006 Phil Mesnier - - * ace/Svc_Conf_y.cpp: - - Moved the ACE_BEGIN_VERSIONED_NAMESPACE_DECL macro to include - ace_yyparse. - -Tue May 2 09:34:54 Pacific Daylight Time 2006 - - * ace/OS_NS_sys_sendfile.inl (sendfile): - - Removed "::" global scope qualifier from platform sendfile() - call. It caused problem on Solaris 8. Thanks to Simon Massey - and Johnny Willemsen for analyzing the problem and suggesting - this fix. - -Tue May 2 10:34:12 UTC 2006 Johnny Willemsen - - * ace/config-WinCE.h: - Added ACE_LACKS_GETCWD, ACE_LACKS_ASCTIME, ACE_LACKS_ASCTIME_R, - ACE_LACKS_GMTIME, ACE_LACKS_GMTIME_R, ACE_LACKS_LOCALTIME and - ACE_LACKS_STRFTIME. These macros are new and will be used soon - in the ACE_OS layer. - -Mon May 1 19:49:45 UTC 2006 Steve Huston - - * ace/ARGV.{h i cpp}: Filled out more of the documentation in this - class, specifically mentioning that the class will enforce the - "whitespace separates tokens, except when quoted" rule of command - line parsing that's consistent with ACE_Get_Opt, etc. Also removed - documentation of non-existant restrictions such as after using - add(), can't use buf(). - Removed the State enum since the only value ever used was ITERATIVE, - and changed "int state_" to "bool iterative_" (and removed the - state() accessor). Changed substitute_env_args_ from int to bool. - - * ace/OS_NS_unistd.{h cpp} (argv_to_string, string_to_argv): Changed - the substitute_env_args parameter from "int" to "bool" to better - reflect what it is, a yes/no indicator. - -Mon May 1 06:53:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_sunos5_g++.GNU: - * include/makeinclude/platform_sunos5_sunc++.GNU: - Also for solaris 10 link the sendfile lib - -Sun Apr 30 04:21:37 UTC 2006 Phil Mesnier - - * ace/Svc_Conf_y.cpp: - What I meant to commit last time. - -Sun Apr 30 02:21:16 UTC 2006 Phil Mesnier - - * ace/Svc_Conf_y.cpp: - Eliminating more warnings from the scoreboard. I'm not sure the - best way to add this patch to ace/svcconf.mpb, since it affects - more than just gnuace targets. The easiest would be to store the - diff between this commit and the previous version and run patch, - but I'm not sure how to integrate that solution. - -Sat Apr 29 13:58:28 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp: - More fuzz cleanup. - -Sat Apr 29 13:17:24 UTC 2006 Phil Mesnier - - * ace/ACE.cpp: - Fuzz cleanup. - - * THANKS: - Added credits. - -Fri Apr 28 22:31:52 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp: - - Removed an ';' after ACE_TRACE, which was confusing GCC4 with - "hidden visibility" enabled. - -Fri Apr 28 21:22:53 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.cpp: - * ace/Service_Gestalt.cpp: - - More re-formatting to weed out those pesky tabs. - -Fri Apr 28 20:57:19 UTC 2006 Steve Huston - - * ace/config-sunos5.8.h: - * ace/config-sunos5.9.h: Moved ACE_HAS_SENDFILE from Solaris 8 to - Solaris 9. Solaris 8 supports sendfilev[64] but not sendfile, - at least not without some patches I don't know about. - -Fri Apr 28 20:13:41 UTC 2006 Steve Huston - - * include/makeinclude/platform_sunos5_g++.GNU: - * include/makeinclude/platform_sunos5_sunc++.GNU: - Solaris 9 puts sendfile() is a separate library, so LIBS needs - -lsendfile on Solaris 9. - -Fri Apr 28 18:03:11 UTC 2006 Iliyan Jeliazkov - - * ace/ACE.cpp: - * ace/DLL.cpp: - * ace/DLL_Manager.cpp: - * ace/Dynamic_Service_Base.cpp: - * ace/Dynamic_Service_Dependency.cpp: - * ace/Parse_Node.cpp: - * ace/Service_Config.inl: - * ace/Service_Config.cpp: - * ace/Service_Gestalt.cpp: - * ace/Service_Object.cpp: - * ace/Service_Repository.cpp: - * ace/Service_Types.cpp: - * ace/Shared_Object.cpp: - - Applied formatting style consistent with ACE convention. - -Fri Apr 28 15:48:25 UTC 2006 Steve Huston - - * ace/Service_Config.cpp (open_i): ACE_DEFAULT_SVC_CONF shouldn't - be enclosed in ACE_LIB_TEXT since it's defined in terms of - ACE_LIB_TEXT already. - -Fri Apr 28 15:49:21 UTC 2006 Phil Mesnier - - * ace/Makefile.am: - Added new Service_Gestalt files to the appropriate lists. - -Fri Apr 28 15:42:59 UTC 2006 Phil Mesnier - - * ace/Service_Config.cpp: - Fixed a problem killing some wchar builds. - - * ace/Service_Gestalt.h: - Cleaned up the long-lines of the UNIMPLEMENTED functions. - -Fri Apr 28 15:26:53 UTC 2006 Steve Huston - - * ace/Timer_Queue_Adapters.h: Clarified the use and restrictions with - ACE_Async_Timer_Queue_Adapter. - -Fri Apr 28 15:22:35 UTC 2006 Steve Huston - - * apps/JAWS2/JAWS/Concurrency.cpp: Removed unused variables. - -Fri Apr 28 14:54:04 UTC 2006 Steve Huston - - * ace/config-macros.h: HP aC++ needs to see the statement in - ACE_NOTREACHED up to the version 6 series (Integrity). Also see - Tue Apr 11 13:12:36 UTC 2006 Simon McQueen - -Fri Apr 28 14:31:48 UTC 2006 Steve Huston - - * ace/Service_Gestalt.h: Removed extraneous ';' from - ACE_UNIMPLEMENTED_FUNC usage. - - * m4/ace.m4: Fixed incorrect variable referenced in case during - --enable-uses-wchar. Thanks to Paul Robinson for reporting this. - -Fri Apr 28 14:03:50 UTC 2006 Iliyan Jeliazkov - - * ace/Dynamic_Service.h: - * ace/Parse_Node.h: - - Fixed the usage of ACE_UNIMPLEMENTED_FUNC to remove the trailing - semicolon. It was causing build errors on compilers that define - the macro as empty. - -Fri Apr 28 13:55:01 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.h: - - Fixed the usage of ACE_UNIMPLEMENTED_FUNC to remove the trailing - semicolon. It was causing build errors on compilers that define - the macro as empty. - -Fri Apr 28 13:29:08 UTC 2006 Iliyan Jeliazkov - - * bin/tao_orb_tests.lst: - - Updated the conditions for running the ORB-specific service - repository tests. - -Fri Apr 28 13:23:57 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.h: - - Updated the declaration of current_ to match the definition in - its use of ACE_TSS_TYPE macro, as they are not equivalent for - a single-threaded builds. - -Fri Apr 28 13:21:12 UTC 2006 Johnny Willemsen - - * tests/Process_Mutex_Test.cpp: - When spawn fails log an error and exit instead of using an assert - which causes an abort of the exe - -Fri Apr 28 13:15:12 UTC 2006 Johnny Willemsen - - * tests/Pipe_Test.cpp: - When spawn fails log an error and exit instead of using an assert - which causes an abort of the exe - -Fri Apr 28 12:49:12 UTC 2006 Johnny Willemsen - - * ace/config-openvms.h: - Added __SIGNED_INT_TIME_T so that we get a signed time_t that - matches the POSIX spec that ACE expects. - -Fri Apr 28 12:23:12 UTC 2006 Johnny Willemsen - - * ace/config-openvms.h: - Removed comments, macros are documented in generally, added - ACE_LACKS_PERFECT_MULTICAST_FILTERING - -Fri Apr 28 11:11:12 UTC 2006 Johnny Willemsen - - * bin/PerlACE/Process_VMS.pm: - New file to be able to run the tests automatically on OpenVMS - - * bin/PerlACE/Process.pm: - When running on OpenVMS use Process_VMS - - * ace/config-openvms.h: - Added ACE_HAS_SIGISMEMBER_BUG - - * tests/run_test.pl: - If ACE_ROOT is not set, add ../bin to lib - -Fri Apr 28 09:23:12 UTC 2006 Johnny Willemsen - - * tests/Process_Manager_Test.cpp: - Also create a logfile for each child process started - -Fri Apr 28 08:06:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Added Sendfile_Test - -Fri Apr 28 08:04:12 UTC 2006 Johnny Willemsen - - * tests/Sendfile_Test.cpp: - Added missing include - -Thu Apr 27 21:04:08 UTC 2006 Steve Huston - - * ace/OS_Memory.h: Allow configs to set ACE_bad_alloc to avoid - extending the if-elif chain here further. - - * ace/config-win32-msvc.h: Regardless of MSVC version, MFC changes - operator new to throw CMemoryException on out-of-memory condition. - Version-specific settings still control the setting of - ACE_HAS_NEW_NOTHROW. Thanks to Mohit Kapoor for this fix. - - * ace/Select_Reactor_T.cpp (handle_error): HACK ALERT! Some Linux - kernels will return from select() with an "invalid" errno value, - ERESTARTNOHAND, when compiled with profiling enabled. This works - around the problem. This is a known kernel bug; see Red Hat Bugzilla - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161468 and - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=123648 as well - as Riverace support issue #167 and Riverace's complaint to Red Hat, - support issue #17841808. - - * THANKS: Added Mohit Kapoor to the Hall of Fame. - -Thu Apr 27 20:14:52 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp: - - Fixed a complaint from a ACE_NDEBUG builds about unrefrenced - variable (only used in ACE_ASSERT). - -Thu Apr 27 18:33:18 UTC 2006 Johnny Willemsen - - * tests/Aio_Platform_Test.cpp: - When AIO is not available, just print an info message and exit - - * tests/run_test.lst: - Added Aio_Platform_Test, it was not in this file at all - -Thu Apr 27 18:21:17 UTC 2006 Steve Huston - - * ace/config-aix-5.x.h: Added ACE_HAS_SIGSUSPEND. - -Thu Apr 27 14:57:10 UTC 2006 Iliyan Jeliazkov - - * ace/Svc_Conf.y: - * ace/Svc_Conf_Tokens.h: - * ace/Svc_Conf_y.cpp: - - Fixed fuzz complaint about #include inside a versioned namespace - in Svc_Conf_y.cpp. It was due to a code that Bison generates a - part of the parser, from Svc_Conf.y. Changed the versioned - namespace to encloses the non-generated code only, while the - rest of the parser seems to be designed so that multiple parses - can coexist without name clashes. - -Thu Apr 27 14:29:07 UTC 2006 Iliyan Jeliazkov - - * ace/Dynamic_Service_Dependency.h: - * ace/Dynamic_Service_Dependency.cpp: - - Updated to remove an empty inl file. - - * ace/Dynamic_Service_Dependency.inl: - - Removed this file. - -Thu Apr 27 14:00:18 UTC 2006 Johnny Willemsen - - * ace/Sock_Connect.cpp: - Implemented get_ip_interfaces for OpenVMS - -Thu Apr 27 11:19:18 UTC 2006 Johnny Willemsen - - * ace/Array_Map.h: - * ace/ATM_Addr.h: - * ace/Atomic_Op_T.h: - * ace/Base_Thread_Adapter.h: - * ace/Cached_Connect_Strategy_T.h: - * ace/Capabilities.h: - * ace/Default_Constants.h: - * ace/Hash_Map_Manager_T.h: - * ace/Log_Msg_Callback.h: - * ace/Log_Msg_IPC.h: - * ace/Map_Manager.h: - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Proactor.h: - * ace/RB_Tree.h: - * ace/Strategies_T.h: - * ace/Timer_Heap_T.h: - * ace/Timer_List_T.h: - * ace/Timer_Queue_Adapters.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel_T.h: - Fixed doxygen warnings - -Thu Apr 27 01:49:18 UTC 2006 Ossama Othman - - * ace/OS_NS_sys_sendfile.h (sendfile, sendfile_emulation): - * ace/OS_NS_sys_sendfile.cpp (sendfile_emulation): - - ACE_LOFF_T -> off_t. Expected ACE_LOFF_T behavior is still - under scrutiny. - - * ace/OS_NS_sys_sendfile.inl: - - Added missing include directive. Addresses - infinite recursion at run-time when ACE_HAS_SENDFILE is defined. - - (sendfile): - - ACE_LOFF_T -> off_t, as above. - -Wed Apr 26 22:00:21 UTC 2006 Iliyan Jeliazkov - - * ace/Parse_Node.h: - * ace/Service_Gestalt.h: - - Correcting a build problem, caused by the extraneous semicolons - after ACE_UNIMPLEMENTED_FUNC - -Wed Apr 26 20:21:49 UTC 2006 Iliyan Jeliazkov - - The motivation for these changes was to enable support in ACE - for multiple instances of Service Configuration Repository, or - more appropriately - "Gestalt" (from the German word, meaning - something that's more than the sum of its parts). This is - feature is necessary to enable support for ORB-specific, or more - generally - service-specific sets of services, i.e. to be able - to have dynamically loaded services to use their own private set - of service objects. In the context of the implementation I will - use "gestalt" as a synonym for service configuration context or - service configuration repository. - - In order to accomplish this, the "instance"-related - functionality of the former ACE_Service_Config class has been - moved to another class - ACE_Service_Gestalt. The - ACE_Service_Config retains all static interfaces and those - members, pertaining to the concept of process-wide configuration - state. The service config, as known today has been retained as a - concept, but in its specialized semantics as holding a - process-wide configuration state. The primary concept expressing - an instance of configuration context is the gestalt. The - implementation actually uses a specialization of - ACE_Service_Gestalt in order to implement ACE_Service_Config as - a singleton, special case of configuration context. - - The static methods in ACE_Service_Config provide access to - process-wide gestalt (ubergestalt, anyone?) instance. - - For more details, here is the history of all included changes, - with their motivation and explanation. It is ordered - alphabetically, by the names of the changed files: - - * ace/ACE.cpp: - - Added to the condition evaluating ACE::debug() to include a - check if environmental variable ACE_DEBUG has been set. - - Updated the debug() function to call getenv() only once by using - a method-local static variable to hold the value from the - environment. - - * ace/DLL.h: - * ace/DLL.cpp: - - Implemented an operator=, needed in order to implement the - ACE_Service_Configuration_Guard class. - - * ace/DLL_Manager.cpp: - - Improved the error diagnostics so that a "file not found" would - not mask a "symbol not defined" error when loading a DLL. - - * ace/Dynamic_Service.h: - - "Privatized" copy ctor and operator= for ACE_Dynamic_Service - objects since it is not designed for such operations. - - * ace/Dynamic_Service.inl: - - Added overloaded method instance() for ACE_ANTI_TCHAR. - - * ace/Dynamic_Service.cpp: - - Changes to enable instantiation of a service, based on the - registration in a particular service repository. Adding a method - that takes ACE_Service_Gestalt* additional parameter. - - * ace/Dynamic_Service_Base.h: - * ace/Dynamic_Service_Base.cpp: - - Factored out a find_i() method to be used by the friend - ACE_Dynamic_Service_Dependency class. It implements the specific - lookup policy that extends the search to the global repository - if the named service object can not be found locally. - - Added instance method, allowing the caller to explicitly specify - the gestalt. - - * ace/Dynamic_Service_Dependency.h: - * ace/Dynamic_Service_Dependency.inl: - * ace/Dynamic_Service_Dependency.cpp: - - A newly introduced class, whose instances are designed to be - embedded inside instances of other classes, typically created by - DLL-based factories (service objects). This provides a way to - declare dependency on a specific service, thus avoiding order of - initialization issues with objects whose implementation code - resides in dynamically loaded services. - - It is disastrous to have dynamically loadable services create - and give away ownership of objects and then be unloaded before - all those instances have been deleted. Normally the code for - such objects classes resides within the TEXT segment of the DLL, - which implements the service. If a service gets removed, its DLL - may be unmapped from memory and then any attempt to invoke a - method on the said objects will cause SEGV. - - Such instances must contain a member of - ACE_Dynamic_Service_Dependency initialized with the service they - depend on. @code ACE_Dynamic_Service_Dependency's constructor - and destructor are "magical" - they work by maintaining the - underlying dynamic service's DLL reference count. - - The problem was not present before because the one Service - Repository outlived any other user objects. Now that an - un-loadable service can own its configuration, the sequence of - service finalization has been reversed. - - Updated the implementation of ACE_Dynamic_Service_Dependency - class to ease debugging. ACE_Dynamic_Service_Dependency gets - initialized whenever a dependent service gets loaded, to help us - keep our access to dependent instances after their DLL is gone - (by upping the ref count on the DLL). - - Updated usage of gestalt's instance() to current(). Removed - unnecessary comments. - - * ace/Global_Macros.h: - - Changed the ACE_STATIC_SVC_DEFINE to use the new - ACE_Service_Config::insert () method, which allows to streamline - the Service Configuration interface and promote hiding the - storage used for the static service descriptors. - - * ace/Parse_Node.h: - * ace/Parse_Node.cpp: - - Changes to aid in keeping track of the gestalt, while deep in - the guts of the svc.conf parser. - - Replaced the ACE_Service_Gestalt & in the method signatures with - ACE_Service_Gestalt * to unify the interfaces. - - Updated the static function node's logic to use only - ACE_Service_Gestalt public members and to no longer rely on - knowledge about the internal storage representation of service - repository. - - Removed a static_cast<> in ACE_Static_Function_Node::symbol() - that was causing problems on some platforms. It was not even - necessary as both sides were of the same type. - - * ace/Service_Config.{h,inl,cpp}: - - This separates the responsibilities between the service gestalt, - which represents an _instance_ of configuration information, and - the service config, which represents a special, process-wide, - global configuration repository. Since both these entities - represent the same concept - service configuration state, but - from different aspects, the ACE_Service_Config now inherits - (publicly) from ACE_Service_Gestalt. - - Lots of instance-related code moved to ACE_Service_Gestalt - Replaced the use of char with ACE_ANTI_TCHAR and the appropriate - ACE_TEXT_* macros. - - Moved the parsing of command-line options, pertaining to the - process as a whole, here - in the parse_args_i () (protected, - virtual). - - In order to resolve a problem caused by the inability of a - dependent static service to determine which gestalt they need to - register with, the concept of "current" was separated from the - "global" gestalt. The current gestalt is pointed to by a - pointer, stored in thread-specific storage (TSS) and manipulated - by the ACE_Service_Config_Guard class that implements the - "resource acquisition is initialization" idiom. - - Fixed an error in the separation of responsibilities between the - instance gestalt and the global (ubergestalt), during - initialization. The bug can cause infinite recursion, when - initializing an ORB, housed in a dynamic service. The singleton - gestalt (i.e. ACE_Service_Config) must be initialized through - open_i(), before open_i() can proceed initializing the specific - gestalt instance. The difficulty is in that some use cases - reverse the order of initialization by calling - ACE_Service_Config::open () first and then, at some point call - the instance gestalt open_i(). The solution is to use the - is_initialized_ member together with an explicit call to - ACE_Service_Config::global()->open_i(). To ease debugging of - the process of registering static service, I have changes the - ACE_Service_Config::static_svcs() to return - ACE_Service_Gestalt::instance (), instead. Thus all the - ACE_STATIC_SVC* macros are still working (no need to change - existing code), but now there is a convenient place to debug - - see the newly added ACE_Service_Gestalt::insert () method. The - header file no longer declares ACE_STATIC_SVCS, - ACE_STATIC_SVCS_ITERATOR, ACE_SVC_QUEUE and - ACE_SVC_QUEUE_ITERATOR. Those are now protected typedefs in - ACE_Service_Gestalt, where they are actually used. - - Added new insert () method to use instead of the sequence - static_svc ()->insert () which unnecessary exposes the internal - storage structure of Service Configurator. Made no_static_svcs_ - an instance member, instead of a class (static) member, thus - providing for ability to set it per instance, not globally. - - Added default values for open_i() and declared private copy ctor - and assignment operator for ACE_Service_Config_Guard, since it - is not intended to be copied. - - Similarly, moved the parts of the open_i() functionality that - did not belong in every instance of the gestalt. - ACE_Service_Config is again a process-wide Singleton,registered - with ACE_Object_Manager. - - Eliminated old #if 0-ed code in Service_Config.cpp. - - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.inl: - * ace/Service_Gestalt.cpp: - - Encapsulates the idea of Service Configuration repository, or - configuration context. - - Changed open_i to be able to detect if it is working on the - special, process-wide instance (ubergestalt) or a "plain" - gestalt instance, since there are things that must only be done - once per process - like signal handler, logging key and - daemon-ization of the whole process. - - Added an ignore_static_svcs parameter to - ACE_Service_Gestalt::open_i in order to preserve the prior - behavior of the singleton ACE_Service_Gestalt instance. Even - though its no_static_svcs_ member was being initialized with 1, - some clients (TAO) needs to be able to override it. Since now a - call to open_i on an instance gestalt may precede in time the - call to open_i on the ubergestalt, we need a mechanism to allow - the no_static_svcs_ value to be overridden. - - Added the insert()'s implementation (described above). Added a - singleton() method to return the process-wide gestalt singleton - (or ubergestalt?:). Used in open_i() to account for the fact - that now a Service Gestalt may be called to open () prior to - open () on the singleton instance, which would typically contain - the bulk of the static service object descriptors. - - There was a problem with "hybrid" service objects, i.e. dynamic - SO which contains static SO (dependent services). The dependent - services are typically registered via static ctor or static - initializer at the point of loading of the dynamic SO's DLL. As - such, they end up registering before the dynamic SO. Upon - finalization of the service repository, the dynamic SO is - finalized first, thus unloading its DLL and unmapping the TEXT - segment, where the dependent static services code is. When - next, the static SO is to be finalized its memory is no longer - at valid address. The change ensures the dynamic service is - registered *before* its dependent static services and will - therefore be finalized last. The solution is based upon the - concept of forward declaring a dynamic service, named after the - configuration file being processed. Before processing a file, - we simply check for an existing service with the same name and - "pass" if we find one. - - Fixed the ACE_Service_Config_Guard's detection of the case where - the forward service declaration was not replaced by a proper - declaration as expected. It now properly removes the forward - decl, not the "good" instance. - - Cleared up the TSS management issue, causing executable to crash - on startup. The problem was due to an order-of-instantiation - issue, involving the TSS-based pointer to the current - gestalt. Used ACE_Object_Manager's shutting_down and starting_up - methods to determine if it is safe to use the static ACE_TSS - instance. - - Added const-ness for find(). Removed prototypes for initialize, - resume, suspend and remove that used plain char type and - conditionally compiled in only for WinCE and - ACE_USES_WCHAR. Service_Config still declares and defines these - (using ACE_ANTI_TCHAR). Updated to resolve problems when built - with ACE_USES_WCHAR. - - Declared private copy ctor and assignment operator for - ACE_Service_Gestalt and ACE_Service_Type_Factory, since their - instances are not intended to be copied. Added an - ACE_UNIMPLEMENTED_FUNC macro for the copy-ctor and assignment - operator of ACE_Service_Type_Factory. - - Reorganized to streamline the header file and remove unnecessary - declarations and to add a decl for find_static_svc_descriptor(). - - Changed the open() method's implementation to incorporate the - additional parameter for open_i(). - - Added the new find_static_svc_descriptor() member, which allows - ACE_Static_Function_Node to not need to know how the static - services are registered in the service repository. - - * ace/Service_Object.h: - * ace/Service_Object.inl: - * ace/Service_Object.cpp: - - Exposed the dll_ member through dll () const method because the - reference is needed by the new ACE_Dynamic_Service_Dependency - class. Fixed the dump () method. - - * ace/Service_Repository.h: - * ace/Service_Repository.cpp: - - Added const-ness for the find* () methods. Added debugging. The - remove method changes the order of services registrations in the - repository, which may break the Service Repository's invariant, - imposed by the need to correctly finalize dynamic services with - their own static services. - - For example, consider a case where a static service (S0) is - registered in the repository. Then a DLL-based service (D1) - registers its own static service (S1). So far the order is - "finalization-compatible": S0 < D1 < S1, i.e. services will be - finalized in reverse order and D1's DLL will still be available - when finalizing S1. Now let's remove (S0). Currently, after - this operation the repository end up in this order: S1 < D1, - which is trivially not finalization-compatible. - - Instead of replacing the pointer with the last ptr to a svc in - the array (repository) and then decrementing the current size of - the repo, the solution actually shifts left the rest of the - array. - - * ace/Service_Types.cpp: - * ace/Shared_Object.cpp: - - Removed some and updated existing debug statements. Eliminated - dead partial instantiation code. - - * ace/Svc_Conf.y: - * ace/Svc_Conf.h: - * ace/Svc_Conf_Tokens.h: - * ace/Svc_Conf_y.cpp: - - Changed to allow propagation of the knowledge about which - gestalt is currently being used for service registrations. - - Factored the ACE_Svc_Conf_Param class out in its own translation - unit. - - * ace/Svc_Conf_Param.h: - - Replaced the ACE_Service_Gestalt & in the method signatures with - ACE_Service_Gestalt * - - * ace/svcconf.mpb: - - Updated the svcconf.mpb rule to allow building with Bison 2.0 - and up. The change adds #ifdef/#endif around the generated - header file. A YYSTYPE_IS_DECLARED define is added in order to - make sure the token declarations from the Svc_Conf_Tokens.h are - used instead of those generated in the Svc_Conf_y.cpp file. - - Added the new Dynamic_Service_Dependency.* files. - - * bin/tao_orb_tests.lst: - - Adding the new tests to the automated test suite to run during - the nightly builds. - -Wed Apr 26 17:13:57 UTC 2006 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added test for Parallel_Connect_Strategy. This test will take - about 9 minutes to run to completion. - -Wed Apr 26 14:22:31 UTC 2006 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added tests for new POA features. - - * bin/MakeProjectCreator/config/endpointpolicy.mpb: - Applications wishing to use the TAO EndpointPolicy should add - this base project to their MPC files. This will include - libTAO_EndpointPolicy in their link lines. - -Wed Apr 26 14:10:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_hpux_kcc.GNU: - * include/makeinclude/platform_irix6.x_kcc.GNU: - * include/makeinclude/platform_linux_kcc.GNU: - * include/makeinclude/platform_osf1_4.x_kcc.GNU: - * include/makeinclude/platform_sunos5_kcc.GNU: - * include/makeinclude/platform_tru64_kcc.GNU: - Removed these files which are for the KAI C++ compiler. This - compiler doesn't exist anymore and full support for KAI C++ - has been removed now from ACE/TAO. See bugzilla bug 2007 - -Wed Apr 26 13:03:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO/tests/POA/Bug_2511_Regression - -Wed Apr 26 12:52:12 UTC 2006 Johnny Willemsen - - * ace/Process_Manager.cpp: - Fixed fuzz errors and use const when possible - -Wed Apr 26 12:02:12 UTC 2006 Johnny Willemsen - - * tests/CDR_Test.cpp: - Boolean is now size 1 or bigger, the marshaling code will take - care that a Boolean is marshaled as octet of size 1 - -Wed Apr 26 11:28:28 UTC 2006 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added TAO/tests/OBV/truncatable. - -Wed Apr 26 10:05:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO/tests/OBV - -Wed Apr 26 09:56:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO/tests/Portable_Interceptors/Bug_2510_Regression - -Wed Apr 26 07:21:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Increased template-depth to 50, hopefully this is large enough to - also build CIAO - -Tue Apr 25 16:44:04 UTC 2006 Phil Mesnier - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - Added code to support rewinding the output CDR to some previous - location and updating a value there. This is required to support - marshaling offset values were the target of the offset is not - known until the final offset target is actually reached. - -Tue Apr 25 13:50:12 UTC 2006 Martin Corino - - * tests/Signal_Test.cpp: - Fixed this test for (modern) Linux and Solaris at least. - The crux is blocking signals before calling sigwait() when doing - synchronous signal handling. - -Tue Apr 25 09:35:12 UTC 2006 Johnny Willemsen - - * ace/Base_Thread_Adapter.h: - * ace/Cleanup.h: - Fixed some errors I made - -Tue Apr 25 09:23:12 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Updated supported platforms and use vc8 for the MPC examples - -Tue Apr 25 08:49:12 UTC 2006 Johnny Willemsen - - * ace/CDR_Base.h: - Always use bool for Boolean, see bugzilla 2514 for more info - -Tue Apr 25 06:33:12 UTC 2006 Johnny Willemsen - - * ace/Log_Msg.h: - Put back ACE_TSS_CLEANUP_NAME that got lost by accident with the - vc6 cleanup. Thanks to Olli Savia for reporting this. - -Mon Apr 24 17:39:12 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Added Signal_Test. Thanks to Martin Corino for notificing that - we don't run this test on any platform. - -Mon Apr 24 10:17:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added TAO/tests/Bug_1676_Regression - -Mon Apr 24 09:57:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - Increase template depth to resolve compile errors when building - TAO with the new sequence implementation - -Mon Apr 24 09:17:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_types.h: - Added ACE_LOFF_T for LynxOS. Thanks to Simon Massey for delivering - the patch - -Fri Apr 21 16:28:26 UTC 2006 William R. Otte - - Merge from ARMS Escher repository. - - * ace/OS_NS_Thread.cpp - - Updated sched_params() to not ignore the process id passed in. - Also enhanced the Windows implementation to get a handle to the - process specified before applying the priority class changes. - - * ace/Process_Manager.cpp - * ace/Process_Manager.h - - Added methods set_scheduler and set_scheduler_all - to set scheduling parameters for process(es) managed by this - class. - - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb - - Fixed build ordering problem in CIAO. - -Fri Apr 21 07:41:12 UTC 2006 Johnny Willemsen - - * ace/Caching_Utility_T.cpp: - Removed invalid added const - -Thu Apr 20 19:27:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_types.h: - Added ACE_LOFF_T for the BSD variants, thanks to J.T. Conklin - for delivering the patch - -Thu Apr 20 18:16:12 UTC 2006 Johnny Willemsen - - * ace/config-macros.h: - Removed setting of ACE_ANY_OPS_USE_NAMESPACE again. This causes - problems when building CIAO. Thanks to Jeff Parsons for finding - this. - -Thu Apr 20 11:46:12 UTC 2006 Johnny Willemsen - - * tests/ACE_Init_Test.rc: - Removed another msvc specific part - -Thu Apr 20 11:06:12 UTC 2006 Johnny Willemsen - - * bin/fuzz.pl: - Added a check for deprecated macros, first one to check is - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION - - * tests/*.cpp: - * protocols/*.cpp: - * ACEXML/*.cpp: - * performance-tests/*.cpp - * netsvcs/*.cpp - Removed all explicit template instantiations - - * ace/os_include/sys/os_types.h: - Added ACE_LOFF_T typedef for VxWorks 6.2 and newer - -Thu Apr 20 07:23:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_types.h: - Always define ACE_LOFF_T so that we can use it in the sendfile - wrapper - -Thu Apr 20 07:17:12 UTC 2006 Johnny Willemsen - - * ace/svcconf.mpb: - Removed Service_Templates.cpp - -Wed Apr 19 19:18:12 UTC 2006 Johnny Willemsen - - * ace/*: - Removed explicit template support - -Wed Apr 19 15:09:12 UTC 2006 Johnny Willemsen - - * tests/Bug_2368_Regression_Test.cpp: - Fixed compile error and compile warning - -Wed Apr 19 14:35:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_sys_sendfile.h: - Updated include to get size_t and ACE_LOFF_T to fix compile - errors on Solaris - -Wed Apr 19 13:31:12 UTC 2006 Johnny Willemsen - - * examples/APG/Logging/Use_Multiple_Sinks.cpp: - * examples/APG/Logging/Use_Ostream.cpp: - * examples/APG/Logging/LogManager.h: - Removed vc6 workarounds - -Wed Apr 19 13:13:12 UTC 2006 Johnny Willemsen - - * tests/Bug_2368_Regression_Test.cpp: - * tests/run_test.lst: - * tests/tests.mpc: - Added regression for bug 2368, this will fail because this bug - isn't addressed yet - -Wed Apr 19 13:08:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_sunos5_g++.GNU: - Use -shared instead of -G when building shared libraries. Thanks to - Alan L Batongbacal for reporting this. This - fixes bugzilla bug 1848. - -Wed Apr 19 12:11:12 UTC 2006 Johnny Willemsen - - * tests/ACE_Init_Test.rc: - Removed msvc specific lines - - * tests/tests.mpc: - The ACE_Init_Test should use its resource file. Fixes bugzilla - 2495 - - * ace/Capabilities.{h,cpp}: - Prefix increment instead of postfix - - * ace/Hash_Map_Manager_T.{h,cpp}: - Removed workaround for suncc 4.2 - - * ace/Object_Manager.h: - * ace/Parse_Node.h: - * ace/POSIX_Proactor.h: - * ace/Thread_Mutex.h: - Doxygen improvements - - * ace/Parse_Node.cpp: - Use prefix increment, initialise pointers with 0 and don't print - an error message when we can't a dll, this gives false messages - when using TAO. This fixes bugzilla 2383. Thanks to Ming Xiong - for making a patch. - - * ace/Proactor.h: - Removed all virtual keywords, not needed for this class. Fixes - bugzilla 2178. - - * ace/Thread_Manager.h: - Removed virtual keywords, not needed and safes footprint. Fixes - bugzilla 2179. - - * bin/fuzz.pl: - Added more msvc checks to detect code constructors for vc6 or - vc7.0 - -Wed Apr 19 11:48:12 UTC 2006 Johnny Willemsen - - Merged ACE changes from sendfile branch. Also made a lot of const - improvements throughout ACE. - - Tue Apr 4 10:20:36 2006 Ossama Othman - - * ace/Mem_Map.cpp (open): - - Only copy the filename to the ACE_Mem_Map::filename_ member - if the call to open() succeeds. - - * ace/PI_Malloc.h (ACE_Malloc_Header): - - Added missing private and undefined copy constructor. The - corresponding assignment operator was already there. - - Wed Mar 29 14:51:12 2006 Johnny Willemsen - - * ace/config-sunos5.8.h: - Solaris 8 and newer also support sendfile. It seems HPUX also - supports it but with a different signature and semantics, so just - don't try it there yet. - - Wed Mar 29 13:06:12 2006 Johnny Willemsen - - * ace/MMAP_Memory_Pool.{h,cpp,inl}: - Added new .inl file to implement the new mmap accessors, include - this new file in the header and implementation file - - Wed Mar 29 08:00:12 2006 Ossama Othman - - * ace/OS_NS_sys_sendfile.cpp - * ace/OS_NS_sys_sendfile.h - * ace/OS_NS_sys_sendfile.inl - New sendfile wrapper - - * ace/MMAP_Memory_Pool.h: - Added accessors for mmap - - * ace/ace.mpc - Added OS_NS_sys_sendfile - - * ace/config-linux-common.h - Added ACE_HAS_SENDFILE - -Wed Apr 19 07:48:12 UTC 2006 Johnny Willemsen - - Merged ACE changes from sequpdate3 branch - - * ace/config-osf1-3.2.h: - Removed, very old - - * ace/config-tru64.h: - Removed include of config-osf1-3.2.h - - * ace/OS_Dirent.cpp: - * ace/OS_Memory.{cpp,inl}: - * ace/OS_String.{cpp,inl}: - * ace/Sync.cpp: - Removed these files, where not build for a long time already - - * ace/ace.mpc: - Removed files above - - * ace/OS_Memory.h: - * ace/OS_String.h: - Removed include of inline files - - * ace/config-win32-msvc6.h: - * ace/config-kcc-common.h: - Removed these files, vc6 and kcc are deprecated - - * ace/config-irix6.x-kcc.h: - * ace/config-osf1-4.0.h: - * ace/config-sunos5.5.h: - Removed support for KCC - - * ace/Asynch_IO_Impl.h: - Removed workarounds for KCC - - * ace/config-win32-msvc.h: - Removed support for vc6 and vc7.0 - - * ace/Array_Base.cpp: - * ace/Array_Map.{h,cpp}: - * ace/Base_Thread_Adapter.h: - * ace/Cleanup.h: - * ace/Log_Msg.h: - * ace/Versioned_Namespace.h: - * ace/Get_Opt.cpp: - * ace/WIN32_Proactor.cpp: - * ace/Message_Queue.cpp: - * ace/CDR_Base.h: - Removed work arounds for vc6 - - * ace/README - * ace/config-win32-msvc6.h: - * ace/Global_Macros.h: - Deprecated ACE_HAS_BROKEN_NAMESPACES, we drop msvc6 and I am - removing the workarounds for this compiler one by one as part of the - new sequence implementation. Because we deprecate this also - ACE_NESTED_CLASS is deprecated - - * ace/config-win32-msvc6.h: - * ace/config-win32-msvc7.h: - * ace/config-win32-msvc8.h: - Removed ACE_HAS_BROKEN_IMPLICIT_CONST_CAST, not used in ACE - - * ace/config-win32-msvc6.h: - * ace/config-win32-visualage.h: - * ace/Registry.h - Removed ACE_HAS_BROKEN_NESTED_TEMPLATES, only used for msvc6 and - visual age, both are being dropped - -Wed Apr 19 07:48:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2503_Regression - -Tue Apr 18 20:49:16 2006 Wallace Zhang - - * ACE version 5.5.1 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-07a b/ACE/ChangeLogs/ChangeLog-07a deleted file mode 100644 index b70a051d787..00000000000 --- a/ACE/ChangeLogs/ChangeLog-07a +++ /dev/null @@ -1,3198 +0,0 @@ -Mon Jan 22 23:14:56 2007 William R. Otte - - * ACE version 5.5.5 released. - -Thu Jan 18 16:45:31 UTC 2007 Douglas C. Schmidt - - * ace/README: Added ACE_HAS_EBCDIC. - - * ace/Codeset_IBM1047.{h,cpp}: Changed ACE_MVS to ACE_HAS_EBCDIC - in these files so that EBCDIC support can be enabled for non-MVS - platforms. Thanks to Harry Goldschmitt - for this suggestion. - -Fri Jan 19 12:35:42 UTC 2007 Chad Elliott - - * bin/tao_orb_tests.lst: - - TAO/tests/ORB_Local_Config/Bug_1459/run_test.pl should not run - when built as ACE_FOR_TAO. - -Thu Jan 18 19:22:41 UTC 2007 Chad Elliott - - * NEWS: - - Documented this change. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Provide a __prebuild__ target that performs the prebuild step or - nothing if a prebuild step wasn't supplied. - - * include/makeinclude/rules.common.GNU: - - Added the __prebuild__ target to the front of the all - dependencies. - - This change fixes Bugzilla #2713. - -Wed Jan 17 15:55:06 UTC 2007 Iliyan Jeliazkov - - * bin/tao_orb_tests.lst: - Making sure the Transport::Current tests are not ran when the - functionality is disabled. - -Wed Jan 17 15:10:12 UTC 2007 Johnny willemsen - - * ace/config-g++-common.h: - Make sure that we don't set visibility for singletons - when visibility is turned off completely - -Wed Jan 17 12:20:57 UTC 2007 Chad Elliott - - * bin/PerlACE/Run_Test.pm: - - Added a function to check for the privileges required to set - thread priority on HP-UX. For all other platforms, it is a noop. - -Tue Jan 16 21:00:20 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp: - - Fixing a memory leak of a gestalt instance, caused by an - incorrect re-initialization. - -Mon Jan 15 21:54:47 UTC 2007 Steve Huston - - * ace/SOCK_Stream.h: Corrected Doxygen tags. - -Mon Jan 15 10:15:47 UTC 2007 Johnny Willemsen - - * ace/config-rtems.h: - Improved rtems 4.7 support - -Fri Jan 12 20:09:47 UTC 2007 Johnny Willemsen - - * ace/config-g++-common.h: - Fixed incorrect macro - -Thu Jan 11 21:42:47 UTC 2007 Steve Huston - - * ace/Message_Block.h: Comment typos. - * ace/SOCK_Stream.h: Corrected documentation for what the - _n() variants do with timeouts. - -Thu Jan 11 15:27:27 UTC 2007 Phil Mesnier - - * docs/ACE-guidelines.html: - Fixed formatting. - -Wed Jan 10 20:31:52 UTC 2007 Phil Mesnier - - * docs/ACE-guidelines.html: - Added some text making explicit the use of "#if defined (FOO)" - rather than "#if FOO" so as to avoid trouble with Doxygen. - -Wed Jan 10 16:08:32 UTC 2007 Chad Elliott - - * tests/CDR_Array_Test.cpp: - - Added a work-around for an issue with gcc 4.1.1 (and possibly - later versions) where certain variables are optimized away while - they are still needed. - -Wed Jan 10 15:19:02 UTC 2007 Steve Huston - - * NEWS: Noted that Windows 95, 98, Me, etc. prior to NT4 SP2 are - no longer supported. The code for this is described at - Sat Jan 6 00:06:52 UTC 2007 Steve Huston - - * ACE-INSTALL.html: Corrected Pharlap references. - -Wed Jan 10 14:16:04 UTC 2007 Johnny Willemsen - - * docs/svn/config: - * docs/svn/svn-prefs.reg: - Added .vxe to global ignore list - -Wed Jan 10 11:40:04 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run 1482 with VxWorks RTP - -Wed Jan 10 07:55:04 UTC 2007 Johnny Willemsen - - Reverted my change below. It worked in terms that it compiled on - all platforms but it resulted in a big footprint increase (about 1.5%) - for a full application and that is just too much. - - Tue Jan 9 11:21:30 UTC 2007 Johnny Willemsen - * ace/String_Base.cpp: - * ace/String_Base.h: - Moved the members of String_Base_Const to String_Base and - removed String_Base_Const - - * ace/String_Base_Const.cpp: - * ace/String_Base_Const.h: - Remove String_Base_Const. It was there as workaround for an old - sun compiler which we don't support anymore. Fixes bugzilla bug - 2588. - - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - * ace/Makefile.am: - Removed String_Base_Const.{h,cpp} - -Wed Jan 10 02:01:04 UTC 2007 Chris Cleeland - - * bin/MakeProjectCreator/config: Added "default.features" to - svn:ignore property. - - * tests: Re-generated the svn:ignore property. - -Wed Jan 10 00:22:01 UTC 2007 Steve Huston - - * ace/POSIX_Proactor.cpp: Fixed some spelling and logging issues. - -Tue Jan 9 22:57:24 UTC 2007 Steve Huston - - * tests/SOCK_Send_Recv_Test.cpp: Added a check to make sure nonblocking - recv() works without blocking; this feature is relied on by later - tests, and is also the subject of a customer report. - Also, removed all the ACE_ASSERTS - tests should never do asserts. - It kills the program without any legit idea of what went on, and they - disappear in Release builds. - -Tue Jan 9 15:36:30 UTC 2007 Johnny Willemsen - - * ace/Log_Msg.cpp: - * ace/Thread_Manager.{h,cpp,inl}: - Removed ACE_USE_ONESHOT_AT_THREAD_EXIT checks, that define - is not set in any config file - -Tue Jan 9 14:17:50 UTC 2007 Chad Elliott - - * bin/msvc_static_order.lst: - - Added TAO/tao/TC to the end of the TAO library list. - -Tue Jan 9 12:47:30 UTC 2007 Johnny Willemsen - - * ace/Log_Record.cpp: - Const improvement and initialise pointer with 0 - - * ace/Process_Manager.h: - Doxygen improvements - - * ace/String_Base.cpp: - Added missing typename to get the npos compiling with all compilers - -Tue Jan 9 11:21:30 UTC 2007 Johnny Willemsen - - * ace/String_Base.cpp: - * ace/String_Base.h: - Moved the members of String_Base_Const to String_Base and - removed String_Base_Const - - * ace/String_Base_Const.cpp: - * ace/String_Base_Const.h: - Remove String_Base_Const. It was there as workaround for an old - sun compiler which we don't support anymore. Fixes bugzilla bug - 2588. - - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - * ace/Makefile.am: - Removed String_Base_Const.{h,cpp} - -Tue Jan 9 09:11:44 UTC 2007 Krishnakumar B - - * docs/svn/config (enable-auto-props): - * docs/svn/svn-prefs.reg: - - Added .clo to the list of extensions that we want metadata to be - associated with. Fixed a bunch of unmatched quotes in - svn-prefs.reg, and updated the mime-type of pdf to be - application/pdf as opposed to application/postscript. - -Tue Jan 9 08:12:30 UTC 2007 Johnny Willemsen - - * ace/Log_Msg.cpp: - Initialise pointers with 0 - - * ace/config-hpux-11.00.h: - Fixed defines to work with wchar builds - -Tue Jan 9 03:46:14 UTC 2007 J.T. Conklin - - * configure.ac: - - Add ACE_LACKS_STRNLEN_PROTOTYPE feature test. - -Mon Jan 8 19:55:31 UTC 2007 Chad Elliott - - * ace/SString.cpp: - - When creating a substring, only allocate the ACE_SString in the - return statement to avoid needless memory allocation and possibly - leaking memory. - - * tests/SString_Test.cpp: - - Specialized memory cleanup for the particular usage pattern of - ACE_SString near the end of the test. - -Mon Jan 8 19:48:50 UTC 2007 Steve Huston - - * ace/config-lite.h (ACE_DECLARE_STL_REVERSE_ITERATOR): The - non-standard declaration is only needed on Windows when VC7.1 - and the 64-bit SDK are used. - -Mon Jan 8 18:54:55 UTC 2007 Chad Elliott - - * tests/Bug_1890_Regression_Test.cpp: - * tests/Bug_2540_Regression_Test.cpp: - - Reverted my previous changes where the ACE_Select_Reactor was - explicitly chosen. The bug reports specifically talk about the - select reactor, but they actually apply to others as well. - -Mon Jan 8 18:50:30 UTC 2007 Johnny Willemsen - - * ace/os_include/os_string.h: - Added ACE_LACKS_STRNLEN_PROTOTYPE to define strnlen prototype, - seems to lack with RedHat 6.2 Thanks to Nelson Filipe Ferreira Gonçalves - for delivering the - autoconf log - - * ace/config-linux-common.h: - Glibc 2.1 and lower don't have a strnlen prototype - -Mon Jan 8 18:43:36 UTC 2007 Chad Elliott - - * tests/Bug_2540_Regression_Test.cpp: - - This test had the same problem as Bug_1890_Regression_Test.cpp. - Explicitly use the ACE_Select_Reactor. - -Mon Jan 8 17:58:46 UTC 2007 Chad Elliott - - * tests/Bug_1890_Regression_Test.cpp: - - Bug 1890 is specifically targeted for the Select Reactor. So, - instead of relying on ACE_Reactor::instance() being an - ACE_Select_Reactor, explicitly use the ACE_Select_Reactor impl. - This will fix this test on Windows. - -Mon Jan 8 16:51:55 UTC 2007 Wallace Zhang - - * tests/Bug_2368_Regression_Test.cpp: - - Improved the test output to show the failure caused by the - unresolved bug is expected. - -Mon Jan 8 13:48:17 UTC 2007 Chad Elliott - - * examples/APG/Logging/Trace.h: - - Undefine TRACE before defining it to avoid warnings from vc71. - -Mon Jan 8 12:41:30 UTC 2007 Johnny Willemsen - - * ace/TP_Reactor.cpp: - Also use ACE_DISABLE_NOTIFY_PIPE_DEFAULT in the constructors - -Mon Jan 8 12:00:30 UTC 2007 Johnny Willemsen - - * ace/Select_Reactor_T.cpp: - Const improvement - - * ace/Select_Reactor_T.h : - Also use ACE_DISABLE_NOTIFY_PIPE_DEFAULT in the constructors - -Mon Jan 8 11:23:30 UTC 2007 Johnny Willemsen - - * ace/Select_Reactor_T.h (open): - Also use ACE_DISABLE_NOTIFY_PIPE_DEFAULT as default for disable_notify_pipe - - * ace/Select_Reactor_T.h: - Doxygen improvements - -Mon Jan 8 10:45:30 UTC 2007 Johnny Willemsen - - * ace/Select_Reactor_Base.h: - Doxygen improvements - - * ace/Select_Reactor_Base.h: - Changed the way we set the default for the - ACE_Select_Reactor_Notify::open call, instead of just hardcoding - the default 0, use the ACE_DISABLE_NOTIFY_PIPE_DEFAULT define - which is set by default to 0, but which we can set from a - config file to 1 to disable the notification pipe. - - * ace/config-posix-nonetworking.h: - Set ACE_DISABLE_NOTIFY_PIPE_DEFAULT to 1. The notification pipe - doesn't work when networking is fully disabled. - -Mon Jan 8 00:10:52 UTC 2007 Iliyan Jeliazkov - - * bin/tao_orb_tests.lst: - - Adding "!MINIMUM" for the TransportCurrent tests, since it - precludes the use of the TC functionality. - -Sun Jan 7 19:02:30 UTC 2007 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Don't set ACE_SIZEOF_WCHAR, let Basic_Types just do this. Fixes - the difference between ACE_SIZEOF_WCHAR and sizeof(wchar_t) on - the HP aCC test on the IA64 aCC build which runs on the Sep 2006 - version of HPUX - -Sat Jan 6 04:41:30 UTC 2007 Chris Cleeland - - * include/makeinclude/macros.GNU: - * include/makeinclude/rules.common.GNU: - * include/makeinclude/rules.local.GNU: - - Added new phony target, "svnignore", which takes a good guess at - what files are generated in a directory and adds them to - svn:ignore property on the containing directory. - - * apps/gperf/src: - * apps/gperf/tests: - * bin: - * examples/APG/Active_Objects: - * examples/APG/Config: - * examples/APG/Containers: - * examples/APG/Logging: - * examples/APG/Misc_IPC: - * examples/APG/Naming: - * examples/APG/Proactor: - * examples/APG/Processes: - * examples/APG/Reactor: - * examples/APG/Shared_Memory: - * examples/APG/Signals: - * examples/APG/Sockets: - * examples/APG/Streams: - * examples/APG/Svc_Config: - * examples/APG/ThreadManagement: - * examples/APG/ThreadPools: - * examples/APG/ThreadSafety: - * examples/APG/Threads: - * examples/APG/Timers: - * examples/ASX: - * examples/ASX/CCM_App: - * examples/ASX/Message_Queue: - * examples/Bounded_Packet_Relay: - * examples/C++NPv1: - * examples/C++NPv2: - * examples/Connection/blocking: - * examples/Connection/misc: - * examples/Connection/non_blocking: - * examples/DLL: - * examples/Export: - * examples/IOStream/client: - * examples/IOStream/server: - * examples/IPC_SAP/ATM_SAP: - * examples/IPC_SAP/DEV_SAP/reader: - * examples/IPC_SAP/DEV_SAP/writer: - * examples/IPC_SAP/FIFO_SAP: - * examples/IPC_SAP/FILE_SAP: - * examples/IPC_SAP/SOCK_SAP: - * examples/IPC_SAP/SPIPE_SAP: - * examples/IPC_SAP/TLI_SAP: - * examples/IPC_SAP/UPIPE_SAP: - * examples/Log_Msg: - * examples/Logger/Acceptor-server: - * examples/Logger/client: - * examples/Logger/simple-server: - * examples/Mem_Map/IO-tests: - * examples/Mem_Map/file-reverse: - * examples/Misc: - * examples/Naming: - * examples/OS/Process: - * examples/Reactor/Dgram: - * examples/Reactor/FIFO: - * examples/Reactor/Misc: - * examples/Reactor/Multicast: - * examples/Reactor/Ntalker: - * examples/Reactor/Proactor: - * examples/Service_Configurator/IPC-tests/client: - * examples/Service_Configurator/IPC-tests/server: - * examples/Service_Configurator/Misc: - * examples/Shared_Malloc: - * examples/Shared_Memory: - * examples/Smart_Pointers: - * examples/Synch: - * examples/System_V_IPC/SV_Message_Queues: - * examples/System_V_IPC/SV_Semaphores: - * examples/Threads: - * examples/Timer_Queue: - * examples/Web_Crawler: - * protocols/examples/RMCast/Send_Msg: - * protocols/examples/TMCast/Member: - * protocols/tests/HTBP/Reactor_Tests: - * protocols/tests/HTBP/Send_Large_Msg: - * protocols/tests/HTBP/Send_Recv_Tests: - * protocols/tests/HTBP/ping: - * protocols/tests/RMCast: - * tests: - * tests/log: - - Added subversion svn:ignore properties on all these directories - comparable to the values previously in the vertigial .cvsignore - files, as well as updated them commensurate with the new svnignore - gnuace make target. - - * apps/gperf/src/.cvsignore: - * apps/gperf/tests/.cvsignore: - * examples/APG/Active_Objects/.cvsignore: - * examples/APG/Config/.cvsignore: - * examples/APG/Containers/.cvsignore: - * examples/APG/Logging/.cvsignore: - * examples/APG/Misc_IPC/.cvsignore: - * examples/APG/Naming/.cvsignore: - * examples/APG/Proactor/.cvsignore: - * examples/APG/Processes/.cvsignore: - * examples/APG/Reactor/.cvsignore: - * examples/APG/Shared_Memory/.cvsignore: - * examples/APG/Signals/.cvsignore: - * examples/APG/Sockets/.cvsignore: - * examples/APG/Streams/.cvsignore: - * examples/APG/Svc_Config/.cvsignore: - * examples/APG/ThreadManagement/.cvsignore: - * examples/APG/ThreadPools/.cvsignore: - * examples/APG/ThreadSafety/.cvsignore: - * examples/APG/Threads/.cvsignore: - * examples/APG/Timers/.cvsignore: - * examples/ASX/.cvsignore: - * examples/ASX/CCM_App/.cvsignore: - * examples/ASX/Message_Queue/.cvsignore: - * examples/Bounded_Packet_Relay/.cvsignore: - * examples/C++NPv1/.cvsignore: - * examples/C++NPv2/.cvsignore: - * examples/Connection/blocking/.cvsignore: - * examples/Connection/misc/.cvsignore: - * examples/Connection/non_blocking/.cvsignore: - * examples/DLL/.cvsignore: - * examples/Export/.cvsignore: - * examples/IOStream/client/.cvsignore: - * examples/IOStream/server/.cvsignore: - * examples/IPC_SAP/ATM_SAP/.cvsignore: - * examples/IPC_SAP/DEV_SAP/reader/.cvsignore: - * examples/IPC_SAP/DEV_SAP/writer/.cvsignore: - * examples/IPC_SAP/FIFO_SAP/.cvsignore: - * examples/IPC_SAP/FILE_SAP/.cvsignore: - * examples/IPC_SAP/SOCK_SAP/.cvsignore: - * examples/IPC_SAP/SPIPE_SAP/.cvsignore: - * examples/IPC_SAP/TLI_SAP/.cvsignore: - * examples/IPC_SAP/UPIPE_SAP/.cvsignore: - * examples/Log_Msg/.cvsignore: - * examples/Logger/Acceptor-server/.cvsignore: - * examples/Logger/client/.cvsignore: - * examples/Logger/simple-server/.cvsignore: - * examples/Mem_Map/IO-tests/.cvsignore: - * examples/Mem_Map/file-reverse/.cvsignore: - * examples/Misc/.cvsignore: - * examples/Naming/.cvsignore: - * examples/OS/Process/.cvsignore: - * examples/Reactor/Dgram/.cvsignore: - * examples/Reactor/FIFO/.cvsignore: - * examples/Reactor/Misc/.cvsignore: - * examples/Reactor/Multicast/.cvsignore: - * examples/Reactor/Ntalker/.cvsignore: - * examples/Reactor/Proactor/.cvsignore: - * examples/Service_Configurator/IPC-tests/client/.cvsignore: - * examples/Service_Configurator/IPC-tests/server/.cvsignore: - * examples/Service_Configurator/Misc/.cvsignore: - * examples/Shared_Malloc/.cvsignore: - * examples/Shared_Memory/.cvsignore: - * examples/Smart_Pointers/.cvsignore: - * examples/Synch/.cvsignore: - * examples/System_V_IPC/SV_Message_Queues/.cvsignore: - * examples/System_V_IPC/SV_Semaphores/.cvsignore: - * examples/Threads/.cvsignore: - * examples/Timer_Queue/.cvsignore: - * examples/Web_Crawler/.cvsignore: - * protocols/examples/TMCast/Member/.cvsignore: - * protocols/tests/HTBP/Reactor_Tests/.cvsignore: - * protocols/tests/HTBP/Send_Large_Msg/.cvsignore: - * protocols/tests/HTBP/Send_Recv_Tests/.cvsignore: - * protocols/tests/HTBP/ping/.cvsignore: - * tests/.cvsignore: - * tests/log/.cvsignore: - - Removed these files in favor of svn:ignore properties on the - parent directory. - -Sat Jan 6 00:06:52 UTC 2007 Steve Huston - - * ace/config-WinCE.h: Removed the ACE_HAS_WINNT4 stuff. - - * ace/config-pharlap.h: Removed the ACE_HAS_WINNT4 stuff and added - ACE_LACKS_WIN32_SECURITY_DESCRIPTORS and ACE_LACKS_WIN32_MOVEFILEEX. - Added ACE_HAS_IP_MULTICAST. - Thanks to David Hauck for helping with these changes. - - * ace/config-lite.h: Removed another vestige of MSVC 6 support. - - * ace/Default_Constants.h: - * ace/config-win32-common.h: Moved the Win32 ACE_DEFAULT_FILE_PERMS - settings to config-win32-common.h - Also removed all the pre-NT4 stuff from config-win32-common.h. - - * ace/Asynch_Acceptor.{h cpp}: - * ace/Asynch_IO.{h cpp}: - * ace/Asynch_IO_Impl.{h cpp}: - * ace/Message_Queue.{h cpp inl}: - * ace/Message_Queue_T.{h cpp}: - * ace/Proactor.{h cpp}: - * ace/Proactor_Impl.{h cpp}: - * ace/WIN32_Asynch_IO.{h cpp}: - * ace/WIN32_Proactor.{h cpp}: - ACE_Message_Queue_NT and ACE_Asynch_IO switched from using - ACE_HAS_WINNT4==1 and maybe some other platforms to using the new - ACE_HAS_WIN32_OVERLAPPED_IO setting. It's now incumbent on the - config maintainer to keep config-win32-*.h, config-WinCE.h, - config-pharlap.h, etc. up to date on these features as the - various versions do or don't support them. - - * ace/config-win32-mingw.h: Removed ACE_HAS_WINNT4 section. - - * ace/Configuration.cpp (ACE_Configuration_Win32Registry::remove_section): - Removed the pre-NT4 section that checked for non-empty section. - - * ace/Mem_Map.cpp: Removed all the support for ACE_USE_MAPPING_NAME - since it was used only for pre-NT4 Windows. - - * ace/Msg_WFMO_Reactor.cpp (wait_for_multiple_events): Removed the - pre-NT4 code block that switched to MsgWaitForMultipleObjectsEx. - All Win platforms without ACE_LACKS_MSG_WMFO can do this now. - - * ace/OS_NS_stdio.inl (rename): - * tests/OS_Test.cpp: The ability to rename a file to one that exists - without removing the 'to' file first is now detected by the new - feature macro ACE_LACKS_WIN32_MOVEFILEEX instead of ACE_HAS_WINNT4. - - * ace/OS_NS_unistd.cpp (pread, pwrite): The Windows code that can do - overlapped is now built based on ACE_HAS_WIN32_OVERLAPPED_IO instead - of ACE_HAS_WINNT4. - - * ace/Pagefile_Memory_Pool.cpp: Setting up a security descriptor for - the file mapping is now determined by the lack of - ACE_LACKS_WIN32_SECURITY_DESCRIPTORS, not ACE_HAS_WINNT4. - - * ace/README: Added descriptions for ACE_HAS_WIN32_OVERLAPPED_IO, - ACE_HAS_WIN32_NAMED_PIPES, ACE_LACKS_WIN32_SECURITY_DESCRIPTORS, - ACE_LACKS_WIN32_MOVEFILEEX. - - * ace/Sock_Connect.cpp: Removed all the code that rummaged through - the registry looking for net interfaces on Windows. Getting - interface info now requires WinCE, Pharlap, or Winsock2. This removes - support for Win95, Win98, etc. - - * ace/SPIPE_Acceptor.{cpp h} (ACE_SPIPE_Acceptor): Now useable on - Windows when ACE_HAS_WIN32_NAMED_PIPES is set, not ACE_HAS_WINNT4. - Similar to above with ACE_HAS_WIN32_OVERLAPPED_IO - config - maintainers need to manage this setting. - - * ace/OS_NS_Thread.cpp (sched_params): Fix mis-aligned #if block - for ACE_HAS_PHARLAP_RT. Also, for scope == ACE_SCOPE_PROCESS, return - -1, ENOTSUP for Pharlap; it doesn't have SetPriorityClass(). - - * ACE-INSTALL.html: Removed mention of ACE_HAS_WINNT4 and building - for Win95/98/Me - ACE now requires WinNT 4 or later. - Updated the information for building for Pharlap ETS. - - * tests/CDR_File_Test.cpp: - * tests/Svc_Handler_Test.cpp: Removed the check for NT4 or better when - setting TEST_CAN_UNLINK_IN_ADVANCE. VxWorks is the only case - remaining where this needs to be set. - - * tests/Malloc_Test.cpp: Removed the Win NT4 case checks for setting - ACE_TEST_REMAP_ON_FAULT; Win9x is no longer supported. Also, when - deciding address ranges for testing, decide at run time based on - GetVersionInfo() on Windows, not on preprocessor checks. - - * tests/Message_Queue_Test.cpp: Use ACE_HAS_WIN32_OVERLAPPED_IO to - decide whether or not to test ACE_Message_Queue_NT. - - * tests/Proactor_Scatter_Gather_Test.cpp: Decide whether or not to - run this test based on ACE_HAS_WIN32_OVERLAPPED_IO instead of - ACE_HAS_WINNT4. - - * ace/Proactor_Timer_Test.cpp: Run this test on Windows based on - ACE_HAS_WIN32_OVERLAPPED_IO instead of !ACE_HAS_WINCE. - - * tests/SPIPE_Test.cpp: - * tests/UPIPE_SAP_Test.cpp: Manage which features to test on Windows - based on ACE_HAS_WIN32_NAMED_PIPES instead of ACE_HAS_WINNT4. - - * ace/Dev_Poll_Reactor.cpp: Fixed spelling error in a comment. - -Fri Jan 5 21:46:16 UTC 2007 Wallace Zhang - - * ace/Process.cpp: - - Improved the implementation of ACE_Process_Options::setenv(...) - to address the potential buffer overflow when invoking - sprintf and/or vsprintf. This fixes bug 2660 and 2762. More - discussions have been accumulated in RT 9198. - -Fri Jan 5 19:06:17 UTC 2007 Chad Elliott - - * bin/msvc_static_order.lst: - - Added project names to correct the build order for - TAO/tests/Collocation and TAO/tests/TransportCurrent. - -Fri Jan 5 14:03:12 UTC 2007 Chad Elliott - - * apps/JAWS2/HTTPU/http_headers.h: - - For the sake of compiling on HP-UX, #undef SERVER if it's defined. - -Fri Jan 5 13:34:18 UTC 2007 Johnny Willemsen - - * ace/OS_NS_stdio.cpp: - * ace/config-hpux-11.00.h: - Disable ACE_HAS_VFWPRINTF again for HPUX, takes more time, - something for the future - -Fri Jan 5 13:15:16 UTC 2007 Phil Mesnier - - * ace/INET_Addr.cpp: - - Replaced #if ACE_HAS_IPV6 with #if defined () to avoid confusing - doxygen. - -Fri Jan 5 12:59:18 UTC 2007 Johnny Willemsen - - * tests/Manual_Event_Test.cpp: - Removed n_iterations variable, it is not used at all - -Fri Jan 5 12:44:18 UTC 2007 Johnny Willemsen - - * ace/OS_NS_stdio.cpp: - When ACE_HAS_WCHAR is defined include os_wchar.h to get the - wchar methods which is needed on for example HPUX - - * ace/config-linux-common.h: - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Added ACE_HAS_VFWPRINTF - - * ace/config-win32-common.h: - Removed ACE_HAS_VSWPRINTF, isn't used anymore - -Fri Jan 5 11:09:18 UTC 2007 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Moved ACE_SIZEOF_LONG outside the aCC specific block, this is - also needed with GCC - -Fri Jan 5 10:40:18 UTC 2007 Johnny Willemsen - - * tests/Thread_Creation_Threshold_Test.cpp: - Removed not needed semicolon after namespace closure - -Fri Jan 5 10:30:18 UTC 2007 Johnny Willemsen - - * contrib/minizip/unzip.c: - * contrib/minizip/zip.c: - Fixed unitialized warnings - -Fri Jan 5 10:04:18 UTC 2007 Johnny Willemsen - - * ace/config-g++-common.h: - A change related to my commit of: - Thu Jan 4 08:55:12 UTC 2007 Johnny Willemsen - With FC6 a bug in GCC has been fixed. This is then fixed in - GCC 4.1.1 but only in the RedHat codebase, not in other - GCC 4.x compilers. The HP GCC 4.1.1 compiler hasn't this - fix but also the SuSE 10.2 GCC 4.1.2 compiler has not this - fix. We assume at this moment that GCC 4.2 will have this - fix. If you have FC6 you must add the following define to - your config.h file: - ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1 - -Fri Jan 5 07:05:18 UTC 2007 J.T. Conklin - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Remove "-Ge 1" from initial TAO_IDLFLAGS definition. - -Fri Jan 5 03:34:00 UTC 2007 Phil Mesnier - - * ace/INET_Addr.cpp: - - Refactored the addr_to_string() method to format numeric IPv6 - addresses using [addr]:port to disambiguate addresses such as - [fe80::1:2:3]:12345. This should be benign as string_to_addr() - already parses [ipv6addr]:port formatted strings. - -Fri Jan 5 00:51:22 UTC 2007 Phil Mesnier - - * ace/INET_Addr.h: - * ace/INET_Addr.inl: - - Added a new method, is_multicast(), to assist applications in - determining if the inet address is or is not a multicast address - regardless of it being an IPv4 or IPv6 format. - - * ace/Timer_Queue_Adapters.cpp: - - Fixed a bug in - ACE_Async_Timer_Queue_Adapter::schedule_ualarm() wherein the - time value for the alarm was computed using - ACE_OS::gettimeofday() rather than using the timer queue's - gettimeofday implementation. Thus situations where an alternate - time source were used, the scheduled alarm would be wrong. - -Thu Jan 4 15:51:41 UTC 2007 Chris Cleeland - - * tests/Thread_Creation_Threshold_Test.cpp: Changed name of - anonymous namespace constant from DEBUG to PRINT_DEBUG_MSGS to - avoid potential conflicts with #defines. This should clean up - at least one Windows build, and possibly others as well. - -Thu Jan 4 15:33:08 UTC 2007 J.T. Conklin - - * configure.ac: - - Check instead of for gettimeofday() - prototype. Also use AC_CHECK_DECL instead of AC_EGREP_CPP. - This fixes bugzilla bug 2764. - -Thu Jan 4 13:53:33 UTC 2007 J.T. Conklin - - * ACEXML/tests/Makefile.am: - * ACEXML/tests/util/Makefile.am: - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/examples/SAXPrint/Makefile.am: - - Tweak to use ACE_{ZLIB,ZZIP}_{CPPFLAGS,LDFLAGS,LIBS} - instead of -I${ZLIB_ROOT}/include, etc. The former - are substituted by the configure script. - - * m4/ace.m4: - - Add ACE_PATH_ZLIB and ACE_PATH_ZZIP autoconf macros. - zlib and zzip can now be enabled at configure time - with --with-zlib and --with-zzip. - -Thu Jan 4 12:45:46 UTC 2007 Chad Elliott - - * ace/Basic_Stats.cpp: - * ace/Parse_Node.cpp: - * ace/Sample_History.cpp: - * ace/Service_Repository.cpp: - - Remove build warnings when ACE_NLOGGING is defined. - -Thu Jan 4 08:55:12 UTC 2007 Johnny Willemsen - - * ace/config-g++-common.h: - With gcc 4.{0,1} we couldn't use visibility attributes for singletons - because of a bug in GCC. This has been fixed in GCC 4.1.1 that - gets shipped with FC6. This change enables the visibily - attributes again for GCC 4.1.1 or newer. - - * ace/Obstack.h: - Reverted the change below, it is an incorrect change - Wed Nov 22 09:07:12 2006 Johnny Willemsen - Use ACE_EXPORT_SINGLETON_DECLARATION to resolve link errors - on FC6. Thanks to Ken Sedgwick for - reporting this and testing out the patch. - -Wed Jan 3 22:31:05 UTC 2007 Chris Cleeland - - This entry merges in changes from OCITAO 1.4a which were - originally part of RT 8678. - - * ace/README: - * ace/config-sunos5.9.h: - - Added new compiler macro, ACE_LACKS_THR_CONCURRENCY_FUNCS, to - accomodate the deprecation of thr_concurrency() in Solaris 9 - onwards. The functions still exist, but the call semantics have - changed slightly such that values for which they would - previously succeed now fail despite the fact that they are - effectively no-ops in Solaris >= 9. This would cause - thr_create(THR_NEW_LWP) to fail in a process when invoked for - the 65536th (or greater) time. - - Currently this macro is only defined on Solaris 9+, but, since I - believ this function was only ever present on Solaris anyway, it - could probably be defined in general, and simply #undef'd on - Solaris 8 and prior. - - * ace/OS_NS_Thread.cpp (thr_create): - - Conditionally removed THR_NEW_LWP section when - ACE_LACKS_THR_CONCURRENCY_FUNCS is defined. - - * tests/Thread_Creation_Threshold_Test.cpp: - * tests/run_test.lst: - * tests/tests.mpc: - - Added a new test to check the threshold of thread creation. - This simply verifies that more than 2^15 threads can be created - sequentially (not simultaneously). - -Wed Jan 3 22:10:54 UTC 2007 Chris Cleeland - - * ace/CDR_Stream.inl (adjust): - - Reverted one-line change committed in r76279 and as part of - entry from "Wed Jan 3 05:53:04 UTC 2007 Chris Cleeland - ". After getting some questions from - Johnny and posing them to the originators of the change, the - originators indicated that, over time, the problem may have been - application-related as they could never isolate a test case that - provoked it. - -Wed Jan 3 19:52:05 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Run the compression test when ZLIB is part of the config list - -Wed Jan 3 19:34:47 UTC 2007 Chad Elliott - - * bin/tao_orb_tests.lst: - - TAO/tests/Any/Recursive also does not work when the build is - static. It uses ACE_Dynamic_Service to locate the - TAO_TypeCodeFactory_Adapter which fails. - -Wed Jan 3 18:35:02 UTC 2007 Chad Elliott - - * bin/tao_orb_tests.lst: - - Do not run TAO/tests/Any/Recursive if minimum_corba, - corba_e_compact or corba_e_micro are enabled. Not all portions of - the test build with any one of these enabled. - -Wed Jan 3 15:50:39 UTC 2007 Chad Elliott - - * ACEXML/apps/svcconf/svcconf.mpc: - * ACEXML/common/common.mpc: - * ACEXML/parser/parser/parser.mpc: - * Kokyu/Kokyu.mpc: - * ace/QoS/qos.mpc: - * ace/SSL/ssl.mpc: - * ace/SSL/ssl_for_tao.mpc: - * ace/ace.mpc: - * ace/ace_flreactor.mpc: - * ace/ace_for_tao.mpc: - * ace/ace_qtreactor.mpc: - * ace/ace_tkreactor.mpc: - * ace/ace_xtreactor.mpc: - * apps/gperf/src/gperf.mpc: - * protocols/ace/HTBP/HTBP.mpc: - * protocols/ace/RMCast/RMCast.mpc: - * protocols/ace/TMCast/TMCast.mpc: - - Use the install base project instead of the deprecated core base - project. - -Wed Jan 3 15:25:05 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new PI test - -Wed Jan 3 14:57:49 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/config/ipv6.mpb: - - The cbx project type was replaced by the bds4 project type. - -Wed Jan 03 14:20:00 UTC 2007 Simon Massey - - * ace/CORBA_macros.h: - With MFC, must delete any caught and eaten "out of memory" exceptions. - -Wed Jan 3 13:25:06 UTC 2007 Chad Elliott - - * bin/msvc_static_order.lst: - - Build the TAO/tests/Smart_Proxies/Collocation/SP_Collocation_Idl - project before SP_Collocation_TestStubsLib. - -Wed Jan 3 13:16:16 UTC 2007 Chad Elliott - - * bin/tao_other_tests.lst: - - Added !NO_MCAST to those tests that use multicast. - - * tests/Unload_libACE.cpp: - * tests/tests.mpc: - * tests/unload_libace.mpb: - - Added support for running this test when ace_for_tao is enabled. - -Wed Jan 3 12:33:33 UTC 2007 Chad Elliott - - * include/makeinclude/wrapper_macros.GNU: - - Since the zzip base project now 'requires' zlib, we can default - zlib to 1. This will cause no harm to those that do not have zlib - since zlib is a "feature" project and will not be included in any - project unless it is explicitly enabled. - -Wed Jan 3 09:36:13 UTC 2007 Olli Savia - - * include/makeinclude/wrapper_macros.GNU: - * ace/OS_NS_stdio.inl: - * tests/OS_Test.cpp: - - Added the ability to use trio (http://sourceforge.net/projects/ctrio/) - if platform lacks decent support for vsnprintf. trio support is - enabled by defining trio=1 in plaform_macros.GNU - -Wed Jan 3 07:52:05 UTC 2006 Johnny Willemsen - - Reverted my change below, it breaks the singleton on windows, the EXPORT - should not be there, seems we need a different way to resolve this - problem with FC6. - - Tue Jan 2 14:27:05 UTC 2006 Johnny Willemsen - * ace/Based_Pointer_Repository.h: - Use ACE_EXPORT_SINGLETON_DECLARATION to resolve link errors - on FC6. Thanks to Olli Savia for - reporting this and testing out the patch. - -Wed Jan 3 07:47:05 UTC 2006 Johnny Willemsen - - * ASNMP/tests/test_config.h: - Only define ACE_START_TEST and ACE_END_TEST when they are not - defined yet. Removed some old code at the same time - -Wed Jan 3 06:47:58 UTC 2007 J.T. Conklin - - * configure.ac: - - Added feature test for ACE_LACKS_REALPATH. Fixes bugzilla bug - 2613. - -Wed Jan 3 06:09:39 UTC 2007 J.T. Conklin - - * configure.ac: - - Added feature test for ACE_HAS_SIGVAL_SIGVAL_INT and, for - completeness, ACE_HAS_SIGVAL_SIGVAL_PTR. Fixes bugzilla bug - 2716. - -Wed Jan 3 05:53:04 UTC 2007 Chris Cleeland - - This entry documents the merge of several small bug fixes from - the OCI distribution. - - * ace/QtReactor/QtReactor.cpp: - - Merged in a change from OCITAO 1.4a that fixed a bug in - ACE_QtReactor::QtWaitForMultipleEvents() where - the two select() calls in that function might select on different - handler sets. The problem is the dispatch_set/wait_set can be - changed during the two select() calls. This could happen while - waiting for an event, another event is handled and dispatched - which changes the dispatch_set/wait_set. - - This bug was found on a single thread Qt application [RT 8751]. - - * ace/CDR_Stream.inl (adjust): - - Applied a one-line change from Dan Troesser , originally committed to OCITAO 1.4a. VC8 - detected that memory around a buffer was being modified. - Changed a boundary check from <= check to < that some believed - was causing a write past the end of the buffer. After the - change, there were no compilation problems with VC8 and all the - ACE CDR-related tests passed. - - * bin/tao_orb_tests.lst: - - Add in Bug_2702_Regression test. - - * bin/auto_run_tests.pl: - - Change the search logic for listed tests so that the script - "finds" tests even when the layout isn't using the "traditional" - layout where $TAO_ROOT == $ACE_ROOT/TAO. - - * NEWS: Updated to reflect these changes. - -Wed Jan 3 05:26:07 UTC 2007 J.T. Conklin - - * configure.ac: - - Added feature test for ACE_LACKS_SIGVAL_T. Fixes bugzilla bug - 2761. - -Tue Jan 2 16:02:25 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Use the MakeWorkspaceBase module to reduce the amount of - duplicated code. - -Tue Jan 2 14:27:05 UTC 2006 Johnny Willemsen - - * ace/Based_Pointer_Repository.h: - Use ACE_EXPORT_SINGLETON_DECLARATION to resolve link errors - on FC6. Thanks to Olli Savia for - reporting this and testing out the patch. - -Tue Jan 2 12:38:05 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - Added ACE_LACKS_THREAD_PROCESS_SCOPING, rtems only supports - PTHREAD_SCOPE_PROCESS, setting another value will result in a - notsup error - - * ace/OS_NS_Thread.cpp: - Removed some old FSU thread code - -Tue Jan 2 11:38:05 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - Removed ACE_LACKS_MKFIFO, rtems has this API - - * ace/config-win32-borland.h: - * ace/OS_NS_stdio.inl: - Removed support for the Borland C++ preview compiler that shipped - with CBuilderX - - * ace/os_include/os_signal.h: - Removed Borland C++ preview support and fixed ACE_NSIG define - for rtems - -Tue Jan 2 11:18:05 UTC 2006 Johnny Willemsen - - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - Added ACE_LACKS_SIGVAL_T - -Tue Jan 2 11:15:05 UTC 2006 Johnny Willemsen - - * config-rtems.h: - Removed ACE_LACKS_PUTENV, rtems has this method, fixes the - Env_Value_Test failure - -Tue Jan 2 11:06:05 UTC 2006 Johnny Willemsen - - * ace/ARGV.cpp: - Fixed constructor that combines two argv arrays to handle - an empty array as we can have with embedded platforms like - VxWorks and RTEMS - -Tue Jan 2 10:49:05 UTC 2006 Johnny Willemsen - - * tests/run_test.lst: - Added missing ARGV_Test - -Tue Jan 2 10:23:05 UTC 2006 Johnny Willemsen - - * ace/config-rtems.h: - RTEMS does have aio support but there are several errors in the - rtems header files and it looks also that the behaviour is not - correct, reported this to the rtems maintainers and for the - rtems 4.6 version we disable the AIO support in ACE - -Tue Jan 2 09:44:05 UTC 2006 Johnny Willemsen - - * tests/ARGV_Test.cpp: - Fixed compile errors in unicode build - -Mon Jan 1 21:56:50 UTC 2007 James H. Hill - - * docs/ace_guidelines.vsmacros: - - Fixed bug that was causing the previous find and replace - values to be used when the current document is being saved. - -Mon Jan 1 18:51:05 UTC 2006 Johnny Willemsen - - * ace/os_include/os_errno.h: - Defined ECANCELED when it has not been defined yet, fixes problems - with rtems - -Mon Jan 1 18:39:05 UTC 2006 Johnny Willemsen - - * ace/POSIX_CB_Proactor.h: - Introduced new ACE_LACKS_SIGVAL_T, when this is defined then ACE - does a typedef for sigval_t - - * ace/config-aix-5.x.h: - * ace/config-macosx.h: - * ace/config-rtems.h: - * ace/config-sunos5.4-g++.h: - * ace/config-sunos5.4-sunc++-4.x.h: - * ace/config-sunos5.5.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Added ACE_LACKS_SIGVAL_T - - * ace/POSIX_Asynch_IO.h: - Doxygen improvement - -Sun Dec 31 22:33:14 UTC 2006 J.T. Conklin - - * tests/SV_Shared_Memory_Test.cpp: - - Check and exit if allocator was not successfully initialized - (other processes could be using all the kernel's SysV shared - memory pages). Otherwise the test's child process will be stuck - in a spinloop while filling up the filesystem with log messages. - -Sun Dec 31 18:56:05 UTC 2006 Johnny Willemsen - - * docs/svn/config: - * docs/svn/svn-prefs.reg: - Added some more file extensions - - * bin/generate_doxygen.pl: - * etc/tao_compression.doxygen: - * etc/tao_transportcurrent.doxygen: - * html/index.html: - Added doxygen generations for transport current and compression - -Sun Dec 31 16:11:05 UTC 2006 J.T. Conklin - - * ACEXML/common/Makefile.am: - - Fix stray trailing \ introduced in: - Sat Dec 30 06:20:18 UTC 2006 J.T. Conklin - -Sat Dec 30 06:23:13 UTC 2006 J.T. Conklin - - * */Makefile.am: - - Baseline regeneration to match recent MPC, *.mpc, and *.mpb - changes. - -Sat Dec 30 06:20:18 UTC 2006 J.T. Conklin - - * ACEXML/tests/Makefile.am: - * ACEXML/tests/util/Makefile.am: - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/examples/SAXPrint/Makefile.am: - - Hand-add automake conditionals for BUILD_ZZIP and BUILD_ZLIB. - Unfortunately MPC resolves options, files, etc. set by - "features" at project generation time, but we want them to be - configure time options. - -Sat Dec 30 06:16:53 UTC 2006 J.T. Conklin - - * configure.ac: - - Configure Makefiles for new subdirectory. - - * apps/JAWS2/Makefile.am: - - Regenerate to descend into HTTPU subdirectory. - - * apps/JAWS2/HTTPU/Makefile.am: - - New Makefile.am. - -Sat Dec 30 06:12:59 UTC 2006 J.T. Conklin - - * m4/ace.m4: - - Add placeholder automake conditionals for BUILD_ZLIB and - BUILD_ZZIP. - - * bin/MakeProjectCreator/acexml.mpb: - - Derive from both zlib and zzip. - -Fri Dec 29 16:57:10 UTC 2006 Steve Huston - - * ace/SOCK_Dgram.cpp (recv): Corrected a "can't delete void*" warning - that entered with - Thu Dec 28 22:47:05 UTC 2006 Steve Huston - -Fri Dec 29 08:41:35 UTC 2006 Olli Savia - - * tests/Proactor_Timer_Test.cpp: - Fixed compile error on LynxOS with 2.95.3. - -Fri Dec 29 08:31:21 UTC 2006 Johnny Willemsen - - * ace/os_include/os_signal.h: - Did some cleanup in this file, removed old stuff - -Fri Dec 29 07:33:58 UTC 2006 J.T. Conklin - - * bin/MakeProjectCreator/config/automake.features: - - Set java, zlib, and zzip. We'll use automake conditionals to - defer these options to configure time. - -Thu Dec 28 22:47:05 UTC 2006 Steve Huston - - * ace/SOCK_IO.{h, inl}: Changed the - recvv(iovec[], size_t, const ACE_Time_Value* = 0) and - sendv (const iovec[], size_t, const ACE_Time_Value*=0) methods - to specify the iovec count argument as int instead of size_t - since it gets reduced to int in the underlying OS calls (usually). - Removed the following deprecated methods: - - ssize_t recv (iovec iov[], - size_t n, - const ACE_Time_Value *timeout = 0) const; - - ssize_t recv (iovec *io_vec, - const ACE_Time_Value *timeout = 0) const; - - ssize_t send (const iovec iov[], - size_t n, - const ACE_Time_Value *timeout = 0) const; - - These were previously replaced with more specific ...v() methods. - - * ace/SOCK_Dgram.cpp (recv): Resolved ssize_t to u_long truncation - warning. - - * ace/Service_Repository.{h cpp} (find, find_i): Changed the - ignore_suspended argument from int to bool to reflect it's true/false - nature. - Changed find_i() to return the located name's index in a size_t - argument when located - this allows it to pass indices as big as the - table can hold. The return value -1, -2 is not changed, but >= 0 - is no longer returned; it's == 0 for success, and the caller needs - to get the index from the 'slot' argument. This should cause no - issues since find_i() is private and internal use has been adjusted - to match; callers of find() have no use for an index value for a - table internal to ACE_Service_Repository. - - * ace/Service_Gestalt.cpp (~ACE_Service_Type_Dynamic_Guard): Use of - ACE_Service_Repository::find_i() adjusted per above. - - * ace/Msg_WFMO_Reactor.cpp: Resolve truncation warning for 64-bit. - - * NEWS: Updated with API changes noted above. - -Thu Dec 28 20:56:28 UTC 2006 Iliyan Jeliazkov - - * bin/tao_orb_tests.lst: - - Updated to enable TAO/tests/TransportCurrent/Framework for - static builds. - -Thu Dec 28 19:11:21 UTC 2006 Johnny Willemsen - - Reverted my change below this broke a lot of builds, seems - the settings in MPC are not used for ACE/TAO/CIAO so we need - to have them also in ACE duplicated - - Thu Dec 28 12:57:21 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/global.features: - Removed the settings that are already set in the MPC - global.features file, no need to duplicate that info. - -Thu Dec 28 15:35:11 UTC 2006 J.T. Conklin - - * configure.ac: - - Add ACE_HAS_3_PARAM_READDIR_R feature test. - -Thu Dec 28 14:54:00 UTC 2006 Pavel Zaichenko - - * ace/OS_NS_unistd.cpp, - * ace/ARGV.cpp, - * ace/ARGV.h: Completed the integration of the quote_args feature - throughout the code. - -Thu Dec 28 14:49:50 UTC 2006 Douglas C. Schmidt - - * ace/ARGV.inl (argc): This method now first calls argv() before - returning the argc count. - -Thu Dec 28 12:57:21 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/global.features: - Removed the settings that are already set in the MPC - global.features file, no need to duplicate that info. - -Thu Dec 28 12:37:21 UTC 2006 Johnny Willemsen - - * ace/DLL_Manager.cpp (get_handle): - Simplified this method a little - - * ace/Dynamic_Service_Base.cpp: - Layout change - - * ace/os_include/net/os_if.h: - Include ws2tcpip.h on windows as we do in the other files, this - way we don't get redefinitions on windows - - * ace/Service_Gestalt.cpp (process_directive): - No need to use an intermediate variable - - * tests/ARGV_Test.cpp: - Fixed deprecated conversion warnings - - * tests/Time_Value_Test.cpp: - Added another test - -Thu Dec 28 11:13:21 UTC 2006 Johnny Willemsen - - * ace/config-aix-5.x.h: - Define ACE_HAS_3_PARAM_READDIR_R always independent of the compiler - used. - -Wed Dec 27 21:15:50 UTC 2006 Douglas C. Schmidt - - * ace/ARGV.{h,cpp} Generalized the constructor for ACE_ARGV_T so - that it can optionally be directed to quote args or not, which - is consistent with the ACE_ARGV_T::add() method - described below. - - * ace/OS_NS_unistd.{h,cpp}: ACE_OS::argv_to_string() was updated - to implement the feature described above. - -Wed Dec 27 21:19:57 UTC 2006 Pavel Zaichenko - - * ace/OS_NS_stdlib.cpp: ACE_OS::strenvdup() now correctly expands - environment variables are correctly expanded in strings of form - "$ACE_ROOT/subdir", "/some/dir/$ARCH/subdir" as well as - "$ACE_ROOT". - - * ace/OS_NS_unistd.cpp: ACE_OS::argv_to_string() and - ACE_OS::string_to_argv() now converts arguments list argv[] to - string and vice versa. Double quotes (") are correctly - quoted/unquoted during conversion. - - * ace/ARGV.{h,inl,cpp}: Made the following enhancements: - - ACE_ARGV_T::add(const CHAR_TYPE *next_arg, bool quote_arg = false) - Now takes an additional argument - * @param quote_arg The argument @a next_arg need to be quoted while - * adding to the vector. - which is queued in the queue_ as well as next_arg for farther usage. - - ACE_ARGV_T::add(CHAR_TYPE *argv[]) - Each entry argv[i] of the argument list is interpreted as a single argument - (white spaces are preserved). - - ACE_ARGV_T::create_buf_from_queue() - Creates a command line using arguments (next_arg, quote_arg) queued - with add() method. Quotes double quote symbols (") if needed. - -Wed Dec 27 21:14:34 UTC 2006 Douglas C. Schmidt - - * ace/ARGV.{h,cpp}: Removed the - - int argv_to_string (CHAR_TYPE **argv, CHAR_TYPE *&buf); - - method since it's redundant with what's in ACE_OS::argv_to_string(). - -Wed Dec 27 20:27:29 UTC 2006 Douglas C. Schmidt - - * ace/OS_NS_stdlib.{h,inl,cpp}: There's no need for the - strenvdup() method to be defined as - ACE_NAMESPACE_INLINE_FUNCTION. - -Wed Dec 27 15:12:12 UTC 2006 Douglas C. Schmidt - - * ace/Map_Manager.{h,inl}: Added a default constructor for - ACE_Map_Entry to initialize the data members. Thanks to Dieter - Knueppel for this fix. - -Wed Dec 27 16:14:12 UTC 2006 Johnny Willemsen - - * ace/os_include/netinet/os_in.h: - Define IPPROTO_TCP when not defined yet - - * ace/os_include/netinet/os_tcp.h: - Define TCP_NODELAY when not defined yet - -Wed Dec 27 16:10:12 UTC 2006 Johnny Willemsen - - * ace/os_include/net/os_if.h: - Only define the IFF_x defines when ACE_LACKS_NETWORKING is - defined to resolve redefinition warnings on windows - -Wed Dec 27 14:06:12 UTC 2006 Johnny Willemsen - - * ace/config-posix-nonetworking.h: - Added ACE_LACKS_GETHOSTENT - -Wed Dec 27 12:42:12 UTC 2006 Johnny Willemsen - - * ace/Atomic_Op_T.h: - Doxygen improvements - -Wed Dec 27 11:22:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - Define SO_ERROR when it is not defined yet - -Wed Dec 27 10:34:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - Added ACE_LACKS_LINGER support - - * ace/config-posix-nonetworking.h: - Added ACE_LACKS_LINGER - -Wed Dec 27 10:30:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - Define SOCK_SEQPACKET when it is not defined yet - -Wed Dec 27 10:27:12 UTC 2006 Johnny Willemsen - - * ace/config-posix-nonetworking.h: - Added ACE_LACKS_IFCONF - - * ace/os_include/net/os_if.h: - Added some more types that need to be defined by ACE when - we compile without network support - - * ace/SOCK_Dgram.cpp: - Removed check for ACE_LACKS_IFREQ - - * ace/SOCK_Dgram_Bcast.cpp: - Layout changes - -Wed Dec 27 10:15:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - Define SO_BROADCAST when it is not defined yet - -Wed Dec 27 10:11:12 UTC 2006 Johnny Willemsen - - * ace/os_include/netinet/os_in.h: - Add sockaddr_un when ACE_LACKS_SOCKADDR_UN is defined - - * ace/config-posix-nonetworking.h: - Added ACE_LACKS_SOCKADDR_UN - -Wed Dec 27 10:05:12 UTC 2006 Johnny Willemsen - - * ace/Name_Request_Reply.cpp: - Use ACE_NTOHS so that this file compiles without network support - -Wed Dec 27 09:35:12 UTC 2006 Johnny Willemsen - - * tests/ARGV_Test.cpp: - Fixed deprecated conversion warnings - -Wed Dec 27 09:32:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_dirent.cpp: - Removed workaround for vc6 - - * ace/OS_NS_dirent.inl: - Layout change - -Wed Dec 27 09:27:06 UTC 2006 Olli Savia - - * tests/Log_Msg_Test.cpp: - Updated comment. - -Wed Dec 27 09:24:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_dirent.inl (readdir_r): - Simplified the OS checks in this method, use the new - define ACE_HAS_3_PARAM_READDIR_R. This is then set in the - config files below, maybe it has to be set in more, but the - scoreboard will show that. - - * ace/config-aix-5.x.h: - * ace/config-cygwin32.h: - * ace/config-freebsd.h: - * ace/config-hpux-11.00.h: - * ace/config-linux-common.h: - * ace/config-netbsd.h: - * ace/config-rtems.h: - * ace/config-sunos5.5.h: - * ace/config-vxworks6.4.h: - Added ACE_HAS_3_PARAM_READDIR_R - - * ace/config-linux-common.h: - Added new ACE_LACKS_LINUX_VERSION_H around include of linux/version.h. - This file isn't present with BlueCAT 4 Linux from LynuxWorks. - - * ace/config-posix.h: - Layout changes - - * ACE-INSTALL.html: - Updated supported platforms by Remedy IT - - * ace/INET_Addr.cpp: - Use the ACE_NTOHL macro and remove the check for ACE_LACKS_NTOHL - - * ace/Map_Manager.{h,cpp}: - Changed free_ to a real bool - - * ace/Name_Proxy.cpp: - * ace/Name_Request_Reply.cpp: - * ace/Time_Request_Reply.cpp - Use the ACE_NTOHL macro so that this file compiles without networking - support - -Wed Dec 27 09:10:27 UTC 2006 Olli Savia - - * ace/Process.cpp: - Changed to use ACE_LACKS_VSNPRINTF instead of ACE_HAS_SNPRINTF. - -Tue Dec 26 22:47:57 UTC 2006 Douglas C. Schmidt - - * ace/OS_NS_unistd.cpp: Reverted the changes to ACE_OS::argv_to_string() - from here: - - Sun Dec 24 22:29:24 UTC 2006 Douglas C. Schmidt - - so that Signal_Test.cpp tests don't break. In a nutshell, each - argv[i] argument to ACE_ARGV is not supposed to be quoted. - Thanks to Steve Huston for reporting this. - -Tue Dec 26 22:46:34 UTC 2006 Douglas C. Schmidt - - * tests/ARGV_Test.cpp (run_main): Updated the test to test how the - conversion from char *argv[] to a char * works. - -Mon Dec 25 16:19:42 UTC 2006 Douglas C. Schmidt - - * Merry Christmas everyone!!! - -Sun Dec 24 23:13:37 UTC 2006 Douglas C. Schmidt - - * tests/ARGV_Test.cpp: Updated the test to ensure that Pavel's - patches work properly. - -Sun Dec 24 22:29:24 UTC 2006 Douglas C. Schmidt - - * ace/OS_NS_stdlib.inl, - * ace/OS_NS_unistd.cpp: Modified ACE_OS::strenvdup() and - ACE_OS::argv_to_string() so they split the arguments containing - spaces in accordance with the documentation. Thanks to Pavel - Zaichenko for these patches. - -Fri Dec 22 17:35:53 UTC 2006 J.T. Conklin - - * ace/OS_NS_dirent.inl: - - Add a __NetBSD__ to the preprocessor conditional to select the - three argument version of readdir_r. While this what was done - for FreeBSD, HPUX, etc., it really points out a need for a new - feature test macro. - - * ace/config-netbsd.h: - - Only define thread-related feature test macros if ACE_MT_SAFE is - defined (with a non-zero value). - -Fri Dec 22 13:56:15 UTC 2006 Steve Huston - - * apps/JAWS2/HTTPU/http_heders.cpp: - * apps/JAWS2/HTTPU/http_status.cpp: Specify type and class separately - for each static member instance to allow HP aC++ 03.* (PA-RISC - compiler) to grok it. At least the Itanium compilers could handle - this... there's hope. - -Fri Dec 22 12:52:05 UTC 2006 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - Build shared libs by default. - -Fri Dec 22 09:31:12 UTC 2006 Johnny Willemsen - - * ace/Service_Manager.h: - Improved doxygen documentation, thanks to Stefan Naewe - for delivering the patch - -Thu Dec 21 21:54:51 UTC 2006 Douglas C. Schmidt - - * ace/config-freebsd.h: Added support for SCTP in FreeBSD version - 700028 and greater. Thanks to Craig Rodrigues for reporting this. - -Thu Dec 21 20:19:04 UTC 2006 Johnny Willemsen - - * ace/Sock_Connect.cpp: - Use prefix increment and made get_interfaces working with rtems - -Thu Dec 21 16:12:16 UTC 2006 Iliyan Jeliazkov - - * bin/tao_orb_tests.lst: - - Fixing the condition for running the Transport::Current tests - (note that ST = Single Threaded, not STATIC). - -Thu Dec 21 14:31:04 UTC 2006 Johnny Willemsen - - * ace/Sock_Connect.cpp: - Added support for get_interfaces for rtems - -Thu Dec 21 13:32:08 UTC 2006 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - Moved macro definitions from CFLAGS to CPPFLAGS. - -Thu Dec 21 12:12:04 UTC 2006 Johnny Willemsen - - * include/makeinclude/rules.bin.GNU: - Removed old chorus rules - -Thu Dec 21 10:17:04 UTC 2006 Johnny Willemsen - - * ace/UUID.cpp: - Fixed initialisation warning - -Thu Dec 21 09:45:00 UTC 2006 Simon Massey - - * ace/OS_TLI.inl: - * ace/OS_NS_signal.h: - - Updated some HPUX Acc version bug fixes..... - -Thu Dec 21 08:47:04 UTC 2006 Johnny Willemsen - - * apps/JAWS2/HPPTU/http_headers.{h,inl}: - Fixed const warnings with Intel C++ - -Wed Dec 20 22:06:14 UTC 2006 Olli Savia - - * tests/OS_Test.cpp: - HP-UX has broken vsnprintf function. Changed the test not - to fail on HP-UX. - -Wed Dec 20 16:35:53 UTC 2006 Iliyan Jeliazkov - - These are fixes correcting scoreboard issues pertaining to the - checkin from Tue Dec 19 22:09:34 UTC 2006. - - * bin/tao_orb_tests.lst: - - Added the two Transport::Current tests to the scoreboard. - - * bin/MakeProjectCreator/config/tc.mpb: - - Moved this file to $TAO_ROOT/MPC/config where it belongs. - -Wed Dec 20 12:31:04 UTC 2006 Johnny Willemsen - - * tests/test_config.h: - Only define ACE_START_TEST and ACE_END_TEST when they are not - defined yet. This way we can set our own define in the config.h - file and for example just do logging to stdout instead of a file - which can be problematic when the test target doesn't have a - file system - -Wed Dec 20 04:52:04 UTC 2006 William R. Otte - - * ACE-INSTALL.html: - * docs/Download.html: - - Fleshed out SVN instructions a bit more, corrected link mistake in - Download.html. - - Thanks to Craig Rodrigues for the patch. - -Tue Dec 19 22:09:34 UTC 2006 Iliyan Jeliazkov - - * bin/MakeProjectCreator/config/tc.mpb: - - Added a new project type for projects using the Transport - Current functionality. - -Tue Dec 19 20:05:42 UTC 2006 William R. Otte - - * docs/Download.html: - Added link to SVN documentation. - -Tue Dec 19 14:19:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_rtems.x_g++.GNU: - Set load address - -Tue Dec 19 14:18:12 UTC 2006 Johnny Willemsen - - * ace/Object_Manager_Base.cpp (print_error_message): - Fixed invalid filename - -Tue Dec 19 13:16:38 UTC 2006 Douglas C. Schmidt - - * ace/Log_Msg_NT_Event_Log.cpp (log): Changed the loop iterator to - be size_t rather than long to silence a warning about comparing - signed and unsigned values. Thanks to Johnny for reporting - this. - -Tue Dec 19 09:11:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.inl (readdir_r): - Refactored this method to make it easier to maintain and at the - same moment fixed compile error when building ACE on VxWorks 6.4 - in kernel mode without pthread support - -Mon Dec 18 22:28:48 UTC 2006 Douglas C. Schmidt - - * ace/Log_Msg_NT_Event_Log.cpp (log): Iterate for i < - log_record.msg_data_len() rather than i < log_record.length () - to avoid nasty overrun errors. Thanks to Paxton Mason for reporting this. This fixes bugid 2754. - -Mon Dec 18 22:28:18 UTC 2006 Douglas C. Schmidt - - * ace/Log_Record.h: Clarify the meaning of length() in the - comments. Thanks to Paxton Mason for - motivating this. - -Mon Dec 18 13:48:12 UTC 2006 Johnny Willemsen - - * ACEXML/common/common.mpc: - * bin/MakeProjectCreator/configs/acexml.mpb: - Added zzip as base, this project really uses zzip - - * bin/MakeProjectCreator/configs/acedefaults.mpb: - Removed zzip and zlib as base projects. Any project that uses - zzip or zlib should derive from the correct project, but not - acedefaults. When making them a base from acedefaults any - project links with zzip/zlib even when they don't use it. - - This fixes bugzilla bug 2751. - -Mon Dec 18 10:59:12 UTC 2006 Johnny Willemsen - - * apps/JAWS2/HTTPU/parse_url.h: - Added prefix to the members of the URL_ERROR enum, NONE is a macro - on some platforms like VxWorks - -Mon Dec 18 10:04:19 UTC 2006 Olli Savia - - * tests/OS_Test.cpp: - Do not execute snprintf test if ACE_LACKS_VSNPRINTF is defined. - -Fri Dec 15 23:09:29 UTC 2006 Steve Huston - - * apps/JAWS2/JAWS/Makefile.am: Removed JAWS.h; see - Thu Dec 14 21:08:19 UTC 2006 Steve Huston - -Fri Dec 15 15:03:12 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.3.GNU: - * include/makeinclude/platform_vxworks6.4.GNU: - * ace/config-vxworks6.4.h: - * ace/config-vxworks6.3.h: - * ace/OS_NS_unistd.inl: - * ace/OS_NS_arpa_inet.cpp: - * ace/os_include/os_stdio.h: - * ace/os_include/sys/os_types.h: - Added support for VxWorks 6.4 - -Thu Dec 14 21:08:19 UTC 2006 Steve Huston - - * apps/JAWS2/JAWS/jaws2.mpc: Corrected compiler defines to add - JAWS_BUILD_DLL, not replace previous. - - * apps/JAWS2/JAWS/Export.h: Replaced contents with new content - generated from generate_export_file.pl. Previous content was - generated from GenerateExportH.BAT and was missing lots of - stuff, some of which prevented generation of .lib, .exp files. - - * apps/JAWS2/JAWS/JAWS.h: Removed; it only had JAWS_TRACE defined - which is properly defined in Export.h now. - - * apps/JAWS2/JAWS/Pipeline_Tasks.cpp: - * apps/JAWS2/JAWS/IO_Handler.cpp: - * apps/JAWS2/JAWS/IO.cpp: - * apps/JAWS2/JAWS/Concurrency.cpp: Removed #include "JAWS/JAWS.h" - -Thu Dec 14 12:36:43 UTC 2006 Johnny Willemsen - - * ace/config-qnx-neutrino.h: - Added several missing defines to build with QNX - -Thu Dec 14 11:57:43 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_qnx_neutrino.GNU: - Set all tools using ?= so that we can override the name - from the platform_macros.GNU file - -Thu Dec 14 00:12:49 UTC 2006 Steve Huston - - * ace/OS_NS_Thread.cpp (event_init): Solaris's shm_open() requires a - single '/' on the name argument. I opted to put that logic here - rather than the lower-level ACE_OS::shm_open(), but that point - is debatable. In any case, look for a leading / on the name if - ACE_SHM_OPEN_REQUIRES_ONE_SLASH is defined; if it's not there, - add it. - - * ace/config-sunos5.8.h: Added ACE_SHM_OPEN_REQUIRES_ONE_SLASH. - - * ace/README: Add description of ACE_SHM_OPEN_REQUIRES_ONE_SLASH. - - * configure.ac: Added check for ACE_SHM_OPEN_REQUIRES_ONE_SLASH. - Fixed check for ACE_LACKS_NUMERIC_LIMITS to display the findings - when configuring. - - * m4/config_h.m4: Added ACE_SHM_OPEN_REQUIRES_ONE_SLASH and - ACE_LACKS_NUMERIC_LIMITS. - -Wed Dec 13 15:04:57 UTC 2006 Iliyan Jeliazkov - - * bin/tao_orb_tests.lst: - - Updated the configuration for ORB_Local_Config/Bug_2612 to - require a multithreaded build to reflect the design goals of the - test. - -Tue Dec 12 23:50:43 UTC 2006 J.T. Conklin - - * NEWS: - - Document --enable-ace-reactor-notification-queue. - - * m4/ace.m4: - - Add autoconf support for --enable-ace-reactor-notification-queue. - Configuring with this option sets ACE_HAS_REACTOR_NOTIFICATION_QUEUE - in config.h. - -Wed Dec 13 01:41:19 UTC 2006 Abdullah Sowayan - - * ace/UUID.cpp: - - Fixed a potential memory leak. Dynamic memory was allocated but - not freed under special circumstances. For details, check BUGID - 2746. This closes BUGID 2746. - -Tue Dec 12 22:38:06 UTC 2006 Steve Huston - - * apps/JAWS2/HTTPU/parse_url.h: Made the char* members const to - resolve compile warnings about assignment of char* literals. - -Tue Dec 12 19:54:05 UTC 2006 Steve Huston - - * apps/JAWS2/HTTPU/httpu.mpc: Must build HTTPU after JAWS2. - -Tue Dec 12 19:54:04 UTC 2006 Chad Elliott - - * bin/fuzz.pl: - - Changed the regular expression to recognize #include's of files - with double quotes within a version block. - -Tue Dec 12 19:31:39 UTC 2006 Chad Elliott - - * bin/fuzz.pl: - - Corrected a bug where a non-ACE/TAO/CIAO file included within a - version block was being marked as an error. - -Tue Dec 12 17:01:42 UTC 2006 Jeff Parsons - - * bin/MakeProjectCreator/config/MPC.cfg: - - Added $DDS_ROOT/MPC/config to the includes, since the - .mpb files in DDS have been moved to this location, making - them consistent with the location of similar files in - TAO and CIAO. - -Tue Dec 12 15:08:32 UTC 2006 Chad Elliott - - * bin/tao_other_tests.lst: - - Added the Trading unit test to the list. - -Tue Dec 12 13:47:44 UTC 2006 Steve Huston - - * apps/JAWS2/HTTPU/httpu.mpc: Corrected build flags and added required - link library JAWS2. - -Tue Dec 12 06:05:38 UTC 2006 J.T. Conklin - - * configure.ac: - - Add ACE_HAS_ISASTREAM_PROTOTYPE feature test. - -Tue Dec 12 06:00:09 UTC 2006 J.T. Conklin - - * configure.ac: - - Add ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE feature test. - -Tue Dec 12 05:13:33 UTC 2006 J.T. Conklin - - * configure.ac: - - Add ACE_LACKS_MKTEMP_PROTOTYPE and ACE_LACKS_MKSTEMP_PROTOTYPE - feature tests. - - * ace/README: - - Document ACE_LACKS_MKSTEMP feature test macro. - -Mon Dec 11 20:51:59 UTC 2006 Douglas C. Schmidt - - * apps/JAWS2/HTTPU/httpu.mpc: Added a new MPC file. Thanks to - Sergey for this. - - * apps/JAWS2/HTTPU/http_base.cpp (receive): Made this work with - HTTPU. Thanks to Sergey Kosenko for these patches. - -Mon Dec 11 20:21:14 UTC 2006 Steve Huston - - * ace/CDR_Stream.{h cpp} (ACE_OutputCDR): Added a new method, int - consolidate (void) which consolidates any continuation message - blocks into the start block, ensuring that all data is located - in one block on return. This is useful for situations which - require the entire encoded stream to be available in one buffer, - regardless of length. - - * tests/CDR_Test.cpp: Added a test for consolidate(). - - * NEWS: Added notice for new consolidate() method. - - Thanks to Howard Finer for supplying - the new ACE_OutputCDR::consolidate() method. - -Mon Dec 11 20:03:04 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Changed the template to use the words "make macros" instead of - features. There may have be some confusion with MPC features. - -Mon Dec 11 17:39:46 UTC 2006 James H. Hill - - * docs/ace_guidelines.vsmacros: - - Fixed macros specification so the same file can be used - with both VS.NET 2003 and VS.NET 2005 development - environments. - -Mon Dec 11 15:23:08 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/config/MPC.cfg: - * bin/mpc.pl: - * bin/mwc.pl: - - Removed the code that specifically added the gnuace and borland - project types and rely on the dynamic_types directive in the - MPC.cfg to have the MPC core add them. - -Sat Dec 9 19:13:52 UTC 2006 Olli Savia - - * ace/config-vxworks5.x.h: - Added ACE_LACKS_VSNPRINTF. - -Fri Dec 8 20:20:09 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Config.cpp (parse_args_i): - - Moving the "default:" label outside the block that handles the - "case 's':". Even though it should work correctly on allmost any - compiler, things like this are bad form. Thanks to Aaron - Scamehorn for noticing. - -Fri Dec 8 20:15:40 UTC 2006 J.T. Conklin - - * THANKS: Add Ray Lischner. - -Fri Dec 8 16:39:51 UTC 2006 Steve Huston - - * ace/Null_Mutex.h: Added ACE_Export to the class declarations. - Although they are probably inlined, VS .NET 2005 (VC8) complains - in some cases when a dll-interface class inherits from a - non-dll-interface class. - -Fri Dec 8 15:36:23 UTC 2006 Ciju John - - * tests/run_test.lst: - Bug_2659_Regression_Test cannot run in a single threaded build. - -Fri Dec 8 05:21:38 UTC 2006 J.T. Conklin - - * configure.ac: - - Changed code to extract version number from ace/Version.h to be - more resilient to leading whitespace like was added by a bug in - the release script in the last beta. Thanks to Ray Lischner - for this patch. - Also thanks to Paul Riley for reporting - this problem. - -Thu Dec 7 14:13:43 UTC 2006 Johnny Willemsen - - * ace/DLL_Manager.cpp: - Made error message dependent on ACE::debug. Thanks to David Faure - for reporting this. - -Thu Dec 7 14:09:43 UTC 2006 Johnny Willemsen - - * bin/ciao_tests.lst: - Added RTCMM test - -Thu Dec 7 12:47:43 UTC 2006 Johnny Willemsen - - * ace/Read_Buffer.h: - Doxygen improvements - - * ace/Read_Buffer.cpp: - Initialise pointer with 0 and use prefix increment - -Thu Dec 7 09:47:43 UTC 2006 Johnny Willemsen - - * ACE-INSTALL.html: - Improved rtems documentation - - * MakeProjectCreator/config/avoids_ace_for_tao.mpb: - New base project for avoids ace_for_tao - - * bin/ciao_tests.lst - * bin/tao_orb_tests.lst - * bin/tao_other_tests.lst - Disabled all tests that are disabled in a minimum_corba build also - when using CORBA/e compact and micro - -Thu Dec 7 07:49:24 UTC 2006 Olli Savia - - * ace/OS_NS_stdio.h: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_stdio.cpp: - - Implemented ACE_OS::snprintf() by using ACE_OS::vsnprintf(). - Removed duplicate code and made maintaining easier. - - * ace/README: - * ace/config-cygwin32.h: - * ace/config-freebsd.h: - * ace/config-hpux-11.00.h: - * ace/config-irix6.x-common.h: - * ace/config-linux-common.h: - * ace/config-lynxos.h: - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - * ace/config-netbsd.h: - * ace/config-openbsd.h: - * ace/config-openvms.h: - * ace/config-posix.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-sunos5.7.h: - * ace/config-tru64.h: - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-win32-common.h: - * ace/config-win32-interix.h: - - Removed ACE_HAS_SNPRINTF and added ACE_LACKS_VSNPRINTF - if necessary (I probably missed some platforms, need to recheck - after next scoreboard round). - -Thu Dec 7 00:27:58 UTC 2006 J.T. Conklin - - * m4/config_h.m4: - * configure.ac: - - Remove obsolete ACE_HAS_UNION_WAIT feature test. - -Wed Dec 6 21:06:37 UTC 2006 Ciju John - - * tests/Bug_2659_Regression_Test.cpp: - Compile failure on RTEMS due to non-ANSI signal API on the - platform. Fixed by casting function ptr to proper type. - -Wed Dec 6 14:49:44 UTC 2006 J.T. Conklin - - * m4/config_h.m4: - * configure.ac: - - Remove obsolete ACE_LACKS_CMSG_DATA_MACRO and - ACE_LACKS_CMSG_DATA_MEMBER feature test. - -Wed Dec 6 11:07:43 UTC 2006 Johnny Willemsen - - * ace/config-mit-pthread.h: - * ace/config-sco-5.0.0-mit-pthread.h: - Removed MIT pthread config files, not supported for years - anymore - - * ace/config-mklinux.h: - Removed, this linux version hasn't been maintained for years - - * ace/ACE.cpp: - Removed all mit-pthread specific code - - * configure.ac: - Removed mit-pthread checks - - * ace/WFMO_Reactor.cpp: - Const/bool change - -Wed Dec 6 07:57:43 UTC 2006 Johnny Willemsen - - * bin/ciao_tests.lst: - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - Disabled all tests that are disabled in a minimum_corba build also - when using CORBA/e compact and micro - -Tue Dec 5 23:53:34 UTC 2006 Ciju John - - * tests/Bug_2659_Regression_Test.cpp: - * tests/run_test.lst: - * tests/tests.mpc: - Adding regression test for Bug 2659. - -Tue Dec 5 19:44:43 UTC 2006 Johnny Willemsen - - * ace/config-freebsd.h: - Simplified ACE_HAS_SNPRINTF setting - - * ace/config-irix6.x-common.h: - * ace/config-sco-5.0.0-mit-pthread.h: - * ace/config-tru64.h: - Removed commented out defines, makes it easier to search whether - a macro is defined in any config file or not - - * ace/config-tru64.h: - Use config-posix.h - - * ace/Read_Buffer.{h,cpp}: - Changed close_on_delete to a real bool - - * ace/Service_Config.{h,inl}: - * ace/Service_Gestalt.{h,cpp,inl}: - Use bool for the ignore arguments - - * ace/SOCK_Dgram.inl: - Const change - -Tue Dec 5 15:47:43 UTC 2006 Johnny Willemsen - - * include/makeinclude/makeinclude/platform_osf1_3.2_cxx.GNU: - * include/makeinclude/makeinclude/platform_osf1_4.x_cxx.GNU: - * include/makeinclude/makeinclude/platform_osf1_4.x_g++.GNU: - * include/makeinclude/makeinclude/platform_osf1_4.x_rcc.GNU: - Removed, very old - - * include/makeinclude/makeinclude/platform_tru64_cxx.GNU: - * include/makeinclude/makeinclude/platform_tru64_g++.GNU: - We should be able to build on tru64 but it isn't really maintained, - moved the contents of the osf files into these files - -Tue Dec 5 15:22:43 UTC 2006 Johnny Willemsen - - * include/makeinclude/makeinclude/platform_aix4_cset++.GNU: - * include/makeinclude/makeinclude/platform_aix.GNU: - Moved contents of cset++ method into the aix one, the aix - file just included the first one - - * include/makeinclude/makeinclude/platform_aix4.2.GNU: - Removed, old - - * ace/config-aix-4.x.h: - * ace/config-aix-5.x.h: - Moved contents of 4.x.h file into the 5.x.h file. Removed a lot - of old checks for AIX 4 so that we can maintain things easier. - - * ace/ACE.cpp: - * ace/OS_NS_sys_wait.inl: - Removed ACE_HAS_UNION_WAIT, was only set for aix4 - - * ace/Log_Msg.cpp: - * ace/OS_NS_Thread.cpp: - Removed code for AIX 4.x to handle pthread_t - - * ace/os_include/sys/os_socket.h: - Removed ACE_HAS_AIX_BROKEN_SOCKET_HEADER, was only set for aix 4 - -Tue Dec 5 15:08:43 UTC 2006 Johnny Willemsen - - * ace/config-aix-4.1.x.h: - * ace/config-aix-4.2.x.h: - * ace/config-aix-4.3.x.h: - Removed, these AIX versions aren't supported anymore - -Tue Dec 5 14:33:43 UTC 2006 Johnny Willemsen - - * ace/config-irix6.x-sgic++-nothreads.h: - Removed - -Tue Dec 5 14:30:43 UTC 2006 Johnny Willemsen - - * ace/config-sunos5.4-centerline-2.x.h: - * include/makeinclude/platform_sunos5_centerline.GNU: - Removed centerline support - -Tue Dec 5 14:07:43 UTC 2006 Johnny Willemsen - - * include/makeinclude/platform_sunos4_g++.GNU: - * include/makeinclude/platform_sunos4_lucid.GNU: - * include/makeinclude/platform_sunos4_sunc++3.x.GNU: - * include/makeinclude/platform_sunos4_sunc++4.x.GNU: - Removed, not supported anymore - -Tue Dec 5 13:59:43 UTC 2006 Johnny Willemsen - - * ace/config-sco-5.0.0-fsu-pthread.h: - Deleted, fsu pthread is already removed some time ago. - -Tue Dec 5 13:58:12 UTC 2006 Johnny Willemsen - - * ace/config-sco-4.2-nothread.h: - Deleted, ancient - -Tue Dec 5 13:51:12 UTC 2006 Johnny Willemsen - - * ace/config-dgux-4.11-epc.h: - * ace/config-dgux-4.x-ghs.h: - * include/makeinclude/platform_dgux4_epc.GNU: - * include/makeinclude/platform_dgux4_ghs.GNU: - Deleted - - * ace/OS_NS_Thread.cpp: - Removed dgux support. Fixes bugzilla 2011 - -Tue Dec 5 13:41:12 UTC 2006 Johnny Willemsen - - * ace/config-irix5.2.h: - * ace/config-irix5.3-g++.h: - * ace/config-irix5.3-sgic++.h: - * include/makeinclude/platform_irix5.2.GNU: - * include/makeinclude/platform_irix5.3_g++.GNU: - * include/makeinclude/platform_irix5.3_sgic++.GNU: - Deleted - - * include/makeinclude/platform_irix6.x_common.GNU: - Use operator ?= - - * ace/os_include/os_signal.h: - Removed Irix 5 support, fixes bugzilla 2013. - -Tue Dec 5 13:31:12 UTC 2006 Johnny Willemsen - - * ace/config-m88k.h: - * include/makeinclude/platform_m88k.GNU: - Deleted - - * ace/os_include/os_signal.h: - * ace/os_include/sys/os_resource.h: - * ace/os_include/sys/os_time.h: - Removed support for m88k which isn't maintained for years now. - Fixes bugzilla 2012 - -Tue Dec 5 13:28:10 UTC 2006 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - If the gendir setting for the custom file is '.', then ommit the - gendir setting. This is required for version 3.4.45 of MPC. - -Tue Dec 5 12:20:12 UTC 2006 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - Removed check for ACE_LACKS_CMSG_DATA_MACRO which wasn't - set in any configuration file. This also resulted in the - removal of ACE_LACKS_CMSG_DATA_MEMBER because this define - was never checked - - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-tandem-nsk-mips-v3.h: - Removed ACE_LACKS_CMSG_DATA_MEMBER, it has no impact at all - -Tue Dec 5 11:25:00 UTC 2006 Simon Massey - - * ace/SStringfwd.h: - - Provide for annoying HP aCC 3.xx template bug. - -Tue Dec 5 10:01:12 UTC 2006 Johnny Willemsen - - * ace/config-lynxos.h: - - Improved LynxOS 4.2 support - -Mon Dec 4 23:13:12 UTC 2006 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp (init_i): - - Fixed bug#2735 and eliminated a potential memory leak of the - list of already processed static services. The failure scenario - is based on a case where static initializers register a bunch of - service objects and then later the gestalt::open() is called. At - that point, the abovementioned list is reinitialized and its - contents was lost. See also the other failure scenario - (bug#2701) for which a fix was put in on Nov 9 2006. - -Mon Dec 4 18:00:16 UTC 2006 Iliyan Jeliazkov - - * bin/tao_orb_tests.lst: - - Added a regression test for bug#2612 - -Mon Dec 4 15:42:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config: - Moved TAO base projects to $TAO_ROOT/MPC/config - -Mon Dec 4 13:16:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/MPC.cfg: - Set includes so that TAO and CIAO base projects could be - under TAO_ROOT and CIAO_ROOT - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_component_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_config_handlers.mpb: - * bin/MakeProjectCreator/config/ciao_config_handlers_base.mpb: - * bin/MakeProjectCreator/config/ciao_container_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_stub.mpb: - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_domainapplicationmanager_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_events_base_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_executionmanager_stub.mpb: - * bin/MakeProjectCreator/config/ciao_nodeapplication.mpb: - * bin/MakeProjectCreator/config/ciao_nodeapplicationmanager.mpb: - * bin/MakeProjectCreator/config/ciao_nodemanager_stub.mpb: - * bin/MakeProjectCreator/config/ciao_nodemanager_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_noop_configurator.mpb: - * bin/MakeProjectCreator/config/ciao_plan_generator.mpb: - * bin/MakeProjectCreator/config/ciao_race_component.mpb: - * bin/MakeProjectCreator/config/ciao_race_default.mpb: - * bin/MakeProjectCreator/config/ciao_race_monitor.mpb: - * bin/MakeProjectCreator/config/ciao_rtevent_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_servant_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_server_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_static_dnc_app.mpb: - * bin/MakeProjectCreator/config/ciao_targetmanager_stub.mpb: - * bin/MakeProjectCreator/config/ciao_targetmanager_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_xml_utils.mpb: - * bin/MakeProjectCreator/config/ciaocidldefaults.mpb: - * bin/MakeProjectCreator/config/cidlc.mpb: - * bin/MakeProjectCreator/config/dance_extension_stub.mpb: - Moved to $CIAO_ROOT/MPC/config - -Mon Dec 4 13:13:12 UTC 2006 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run Bug_2709_Regression with ACE_FOR_TAO - -Mon Dec 4 12:49:12 UTC 2006 Johnny Willemsen - - * ace/Basic_Types.h: - Added check for __ia64__, then we assume we have little endian, - this define is set by the HP OpenVMS compiler - -Mon Dec 4 12:26:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_targetmanager_svnt.mpb: - New base project - -Mon Dec 4 11:27:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_nodeapplication.mpb: - New base project for nodeapplication library - - * bin/MakeProjectCreator/config/ciao_nodeapplicationmanager.mpb: - Derive from ciao_nodeapplication - - * bin/MakeProjectCreator/config/ciao_nodemanager_stub.mpb: - * bin/MakeProjectCreator/config/ciao_nodemanager_svnt.mpb: - * bin/MakeProjectCreator/config/ciao_race_default.mpb: - * bin/MakeProjectCreator/config/ciao_race_monitor.mpb: - * bin/MakeProjectCreator/config/ciao_targetmanager_stub.mpb: - Fixed incorrect id tag - - * bin/MakeProjectCreator/config/ciao_noop_configurator.mpb: - New base project - -Mon Dec 4 11:26:12 UTC 2006 Johnny Willemsen - - * bin/fuzz.pl: - Corrected the expression to fill the files_mpc array and - enabled the Id check again - -Fri Dec 1 13:36:12 UTC 2006 Johnny Willemsen - - * Kokyu/docs/Kokyu.html: - Updated download location of ACE/TAO/CIAO - -Wed Nov 29 15:40:12 UTC 2006 Johnny Willemsen - - * ace/OS_NS_unistd.cpp (num_processors*): - Check the return value of sysctl, if it returns -1 then - also return the method with -1 - -Wed Nov 29 12:47:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - Simplified this file - -Wed Nov 29 11:03:12 UTC 2006 Johnny Willemsen - - * ace/Malloc_T.{h,cpp}: - Changed delete_lock_ to a real bool - -Wed Nov 29 07:09:17 UTC 2006 J.T. Conklin - - * Makefile.am: - * configure.ac: - - If ACEXML, ASNMP, or protocols subdirectories are not present, - don't try to configure or build them. Thanks to Stephen Torri - for reporting this. - -Tue Nov 28 21:02:25 UTC 2006 Steve Huston - - * ace/WIN32_Asynch_IO.cpp (ACE_WIN32_Asynch_Connect::post_result): - The 'result' pointer is invalid upon return from post_completion() - regardless of whether or not it succeeds. This fix prevents - dereferencing result on failure of post_completion(), such as at - proactor shutdown. Thank you to Ken Kane for the analysis and fix. - - * THANKS: Updated Ken Kane's email address. - -Tue Nov 28 20:36:12 UTC 2006 Johnny Willemsen - - * bin/auto_run_tests.pl: - Added \n after the message when we can't chdir to a certain - directory to prevent detecting the wrong test because this - message is then on the same line as the next test. - -Tue Nov 28 20:15:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_deployment_svnt.mpb: - Removed include path that didn't exist anymore - -Tue Nov 28 16:04:45 UTC 2006 William R. Otte - - * bin/MakeProjectCreator/config/ciao_config_handlers_base.mpb - * bin/MakeProjectCreator/config/ciao_nodemanager_svnt.mpb - - Fix for linker warnings/errors on OS X. - -Tue Nov 28 14:08:23 UTC 2006 J.T. Conklin - - * bin/msvc_mpc_auto_compile.pl: - - Reorder @ace_core_dirs so that protocols follows tests, as - the HTBP protocol tests depend on the Test_Output library. - -Tue Nov 28 13:30:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/event.mpb: - * bin/MakeProjectCreator/config/event_serv.mpb: - * bin/MakeProjectCreator/config/event_skel.mpb: - * bin/MakeProjectCreator/config/ftorbutils.mpb: - * bin/MakeProjectCreator/config/ftrtevent.mpb: - * bin/MakeProjectCreator/config/ifrservice.mpb: - * bin/MakeProjectCreator/config/imr_locator.mpb: - * bin/MakeProjectCreator/config/portablegroup.mpb: - * bin/MakeProjectCreator/config/rtcorbacommon.mpb: - Added avoids_corba_e_compact as base project, if we have CORBA/e - compact we don't have the needed features available to build these - projects. - -Tue Nov 28 13:25:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/avoids_corba_e_micro.mpb: - * bin/MakeProjectCreator/config/avoids_corba_e_compact.mpb: - Fixed incorrect feature name - - * bin/MakeProjectCreator/config/global.features: - Removed duplicate minimum_corba - -Tue Nov 28 09:53:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ciao_client_dnc.mpb: - * bin/MakeProjectCreator/config/ciao_events_dnc.mpb: - Removed security as base, for the moment we decoupled from - the security service. - -Tue Nov 28 00:28:28 UTC 2006 J.T. Conklin - - * protocols/tests/HTBP/htbptest.mpb: - - Add dependency on Test_Output. - -Mon Nov 27 12:30:28 UTC 2006 Chad Elliott - - * tests/Bug_2653_Regression_Test.cpp: - - When a thread is started, you must wait() on it before exiting the - process to avoid a core dump. - - * tests/run_test.pl: - - Print out the test header before checking for the executable. If - the executable is not there, it will appear as if the previous - test failed. - -Mon Nov 27 08:45:12 UTC 2006 Johnny Willemsen - - * ace/config-sunos5.5.h: - Fixed compile problem on solaris x86 when _FILE_OFFSET_BITS=64 - is set. Thanks to Michael Klein - for reporting this. Fixed bugzilla bug 2693. - -Mon Nov 27 08:09:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/minimum_corba.mpb: - * bin/MakeProjectCreator/config/avoids_minimum_corba.mpb: - Renames minimum_corba to avoids_minimum_corba. Fixes bugzilla - 2589. - - * bin/MakeProjectCreator/config/avoids_corba_e_micro.mpb: - Fixed this file and made corba_e_compact its parent, when - we can't build a project in corba_e_compact then corba_e_micro - is also not an option. - - * bin/MakeProjectCreator/config/event.mpb: - * bin/MakeProjectCreator/config/event_serv.mpb: - * bin/MakeProjectCreator/config/event_skel.mpb: - * bin/MakeProjectCreator/config/ftorbutils.mpb: - * bin/MakeProjectCreator/config/ftrtevent.mpb: - * bin/MakeProjectCreator/config/ifrservice.mpb: - * bin/MakeProjectCreator/config/imr_locator.mpb: - * bin/MakeProjectCreator/config/portablegroup.mpb: - * bin/MakeProjectCreator/config/rtcorbacommon.mpb: - Updated for rename of minimum_corba - -Mon Nov 27 06:05:38 UTC 2006 Olli Savia - - * tests/OS_Test.cpp: - Fixed compile error on VxWorks. Thanks to Johnny Willemsen - for pointing out the problem and suggesting a fix. - -Fri Nov 24 13:27:55 UTC 2006 J.T. Conklin - - * bin/MakeProjectCreator/config/automake.features: - - Set stl and boost. We'll use automake conditionals to defer - these options to configure time. - -Fri Nov 24 13:05:01 UTC 2006 Olli Savia - - * tests/OS_Test.cpp: - Added ACE_OS::snprintf test. - -Fri Nov 24 10:08:12 UTC 2006 Johnny Willemsen - - * ace/Sock_Connect.cpp: - Fixed compile errors when building on linux with no - networking support - -Thu Nov 23 17:06:17 UTC 2006 Simon McQueen - - * ace/OS_Errno.h: - * ace/OS_Errno.cpp: - - Fix compile errors with g++ on Solaris with NDEBUG. - -Thu Nov 23 14:09:17 UTC 2006 Steve Huston - - * include/makeinclude/rules.lib.GNU: Corrected error introduced by - Wed Nov 22 21:53:17 UTC 2006 Steve Huston . - -Thu Nov 23 06:53:12 UTC 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/ace_for_tao.mpb: - Added ACE_LACKS_MSG_WFMO as define, that prevents other projects - to try to use the msg wfmo reactor which is not available in the - ace_for_tao configuration - -Thu Nov 23 03:14:58 UTC 2006 J.T. Conklin - - * tests/Integer_Truncate_Test.cpp: - * apps/JAWS/clients/WebSTONE/src/README: - - Removed svn:executable property. - -Wed Nov 22 23:16:22 UTC 2006 Steve Huston - - * examples/Timer_Queue/Async_Timer_Queue_Test.cpp: Ignore SIGQUIT code - for platforms with ACE_LACKS_UNIX_SIGNALS. Fixes WinCE build error. - -Wed Nov 22 21:58:16 UTC 2006 Steve Huston - - * tests/RB_Tree_Test.cpp: Don't use ACE_ASSERT for code - it doesn't - get executed in Release builds. - - Pulled these in from the 5.5 stream: - - Mon Nov 20 21:26:24 UTC 2006 Steve Huston - - * ace/config-win32-msvc.h: - * ace/OS_Memory.h: - The MFC new/exception code needed the ability to delete a caught - CMemoryException object to prevent memory leaks (see - http://msdn2.microsoft.com/de-de/library/0e5twxsh(VS.80).aspx). - This necessitates that every platform other than Windows/MFC gets - an empty define for ACE_del_bad_alloc, and the ACE_NEW... macros - have ACE_del_bad_alloc expanded in the catch block. - For past history of this issue, see the trail starting at: - Tue Aug 8 09:15:00 UTC 2006 Simon Massey - - Thu Nov 16 16:14:32 UTC 2006 Steve Huston - - * ace/String_Base.{h inl}: Added a capacity() method that returns - the number of allocated CHAR units in the string object. Thanks to - Kelly Hickel for supplying this. - - * NEWS: Updated with recent ACE_String_Base and build additions. - - Mon Nov 13 17:40:58 UTC 2006 Steve Huston - - * ace/String_Base.{h cpp}: Added a fast_resize(size_t) method to - manage the sizing/reallocating of the string, but doesn't do the - memory setting of resize(). Changed resize() to call fast_resize() - then do the memory setting. - Thank you to Kelly Hickel for these - additions. - - -Wed Nov 22 21:53:17 UTC 2006 Steve Huston - - Pulled these in from the 5.5 stream: - - Thu Nov 16 21:56:37 UTC 2006 Steve Huston - - * include/makeinclude/rules.local.GNU: For creating the object file - directories (e.g., VDIR and VSHDIR, and their subdirectories), change - from using the directory as a prerequisite and make that prereq - a PHONY target to embed the command(s) to check and create the - directory if needed. This accomplishes two things: 1) allows the - make to work with clearmake in GNU compatibility mode (clearmake - always saw the PHONY target as remade and remade every file in the - project), and 2) avoids using a PHONY target as a prerequisite, - something the GNU make manual says to avoid. Thank you to Howard - Finer for motivating and assisting - in this effort. - - Tue Nov 14 22:33:03 UTC 2006 Steve Huston - - * include/makeinclude/rules.lib.GNU: Change VLOBJS and VSHOBJS to - use $(patsubst) instead of $(if) to look for entries that have - relative directories in them (../). Avoids $(if) which does not - work in Clearcase's clearmake GNU compatibility mode. - -Wed Nov 22 19:52:23 UTC 2006 J.T. Conklin - - * ace/Select_Reactor_T.inl: - - Add #include of "Log_Msg.h". This is required to bring things - into scope on systems where ACE_TEMPLATES_REQUIRE_SOURCE isn't - defined/needed. - -Wed Nov 22 18:27:39 UTC 2006 J.T. Conklin - - * performance-tests/Synch-Benchmarks/Base_Test/Makefile.am: - - Regenerated. - - * performance-tests/Synch-Benchmarks/Base_Test/Synch_Benchmarks_Base_Test.mpc: - - Add automake specific includes definition to find headers - relative to source directory. - -Wed Nov 22 16:57:55 UTC 2006 J.T. Conklin - - * performance-tests/Synch-Benchmarks/Perf_Test/Makefile.am: - - Regenerated. - - * performance-tests/Synch-Benchmarks/Perf_Test/Synch_Benchmarks_Perf_Test.mpc: - - Add automake specific includes definition to find headers - relative to source directory. - -Wed Nov 22 16:48:58 UTC 2006 J.T. Conklin - - * Makefile.am: - - Hand tweak, HTBP tests depend on Test_Output library. This - requires changing the build order so that the protocols dir - is built after tests. - - * apps/gperf/tests/Makefile.am: - - Hand tweak to find gperf executable on automake builds. Chad - has given me info to make MPC generation work, which I'll add - in the near future. - - * m4/ace.m4: - - Placeholder for a BUILD_WXWINDOWS feature test. For now it - always returns false. - - * configure.ac: - - Configure examples/ConfigViewer/Makefile. - -Wed Nov 22 15:34:12 UTC 2006 J.T. Conklin - - * ace/Version.h: - - Remove extraneous whitespace from ACE_VERSION macro definition. - - * ace/Makefile.am: - - Hand tweak. - - * ace/QoS/Makefile.am: - - Revert to earlier version until MPC generation issues are - resolved. - - * apps/JAWS2/JAWS/Makefile.am: - * apps/JAWS3/jaws3/Makefile.am: - - Regenerated. - - * apps/JAWS2/JAWS/jaws2.mpc: - * apps/JAWS3/jaws3/jaws3.mpc: - - Add automake specific includes definition to find headers - relative to source directory. - -Wed Nov 22 14:24:31 UTC 2006 J.T. Conklin - - * ace/Makefile.am: - - Regenerated. - - * ace/ace_xtreactor.mpc: - * ace/ace_tkreactor.mpc: - * ace/ace_flreactor.mpc: - * ace/ace_qtreactor.mpc: - - Changed to specify full name of pkgconfig template file, - the MPC Custom spec does not automatically match *.pc.in - files. - -Wed Nov 22 14:16:40 UTC 2006 J.T. Conklin - - * examples/ConfigViewer/Makefile.am: - - New file. - -Wed Nov 22 14:10:08 UTC 2006 J.T. Conklin - - * protocols/tests/RMCast/Makefile.am: - * protocols/tests/Makefile.am: - * protocols/tests/HTBP/Reactor_Tests/Makefile.am: - * protocols/tests/HTBP/Send_Large_Msg/Makefile.am: - * protocols/tests/HTBP/Makefile.am: - * protocols/tests/HTBP/Send_Recv_Tests/Makefile.am: - * protocols/tests/HTBP/ping/Makefile.am: - * protocols/ace/RMCast/Makefile.am: - * protocols/ace/Makefile.am: - * protocols/ace/TMCast/Makefile.am: - * protocols/ace/HTBP/Makefile.am: - * protocols/examples/RMCast/Send_Msg/Makefile.am: - * protocols/examples/RMCast/Makefile.am: - * protocols/examples/Makefile.am: - * protocols/examples/TMCast/Member/Makefile.am: - * protocols/examples/TMCast/Makefile.am: - * ace/Makefile.am: - * ace/SSL/Makefile.am: - * ace/QoS/Makefile.am: - * performance-tests/Synch-Benchmarks/Base_Test/Makefile.am: - * performance-tests/Synch-Benchmarks/Makefile.am: - * performance-tests/Synch-Benchmarks/Synch_Lib/Makefile.am: - * performance-tests/Synch-Benchmarks/Perf_Test/Makefile.am: - * performance-tests/Server_Concurrency/Leader_Follower/Makefile.am: - * performance-tests/Server_Concurrency/Makefile.am: - * performance-tests/Server_Concurrency/Queue_Based_Workers/Makefile.am: - * performance-tests/TCP/Makefile.am: - * performance-tests/UDP/Makefile.am: - * performance-tests/SCTP/Makefile.am: - * performance-tests/Makefile.am: - * performance-tests/Misc/Makefile.am: - * Kokyu/tests/FIFO/Makefile.am: - * Kokyu/tests/DSRT_MIF/Makefile.am: - * Kokyu/tests/Makefile.am: - * Kokyu/tests/EDF/Makefile.am: - * Kokyu/Makefile.am: - * tests/SSL/Makefile.am: - * tests/Makefile.am: - * apps/Gateway/Gateway/Makefile.am: - * apps/Gateway/Makefile.am: - * apps/Gateway/Peer/Makefile.am: - * apps/mkcsregdb/Makefile.am: - * apps/drwho/Makefile.am: - * apps/gperf/tests/Makefile.am: - * apps/gperf/src/Makefile.am: - * apps/gperf/Makefile.am: - * apps/JAWS/clients/Blobby/Makefile.am: - * apps/JAWS/clients/Makefile.am: - * apps/JAWS/clients/Caching/Makefile.am: - * apps/JAWS/server/Makefile.am: - * apps/JAWS/Makefile.am: - * apps/JAWS2/JAWS/Makefile.am: - * apps/JAWS2/Makefile.am: - * apps/JAWS3/jaws3/Makefile.am: - * apps/JAWS3/Makefile.am: - * apps/soreduce/Makefile.am: - * bin/Makefile.am: - * ACEXML/tests/Makefile.am: - * ACEXML/tests/util/Makefile.am: - * ACEXML/apps/svcconf/Makefile.am: - * ACEXML/apps/Makefile.am: - * ACEXML/common/Makefile.am: - * ACEXML/Makefile.am: - * ACEXML/parser/Makefile.am: - * ACEXML/parser/parser/Makefile.am: - * ACEXML/examples/SAXPrint/Makefile.am: - * ACEXML/examples/Makefile.am: - * websvcs/tests/Makefile.am: - * websvcs/lib/Makefile.am: - * websvcs/Makefile.am: - * netsvcs/clients/Logger/Makefile.am: - * netsvcs/clients/Tokens/rw_lock/Makefile.am: - * netsvcs/clients/Tokens/mutex/Makefile.am: - * netsvcs/clients/Tokens/deadlock/Makefile.am: - * netsvcs/clients/Tokens/collection/Makefile.am: - * netsvcs/clients/Tokens/invariant/Makefile.am: - * netsvcs/clients/Tokens/manual/Makefile.am: - * netsvcs/clients/Naming/Dump_Restore/Makefile.am: - * netsvcs/clients/Naming/Makefile.am: - * netsvcs/clients/Naming/Client/Makefile.am: - * netsvcs/clients/Makefile.am: - * netsvcs/lib/Makefile.am: - * netsvcs/servers/Makefile.am: - * netsvcs/Makefile.am: - * ASNMP/tests/Makefile.am: - * ASNMP/Makefile.am: - * ASNMP/agent/Makefile.am: - * ASNMP/asnmp/Makefile.am: - * ASNMP/examples/get/Makefile.am: - * ASNMP/examples/trap/Makefile.am: - * ASNMP/examples/Makefile.am: - * ASNMP/examples/set/Makefile.am: - * ASNMP/examples/next/Makefile.am: - * ASNMP/examples/walk/Makefile.am: - * examples/OS/Makefile.am: - * examples/OS/Process/Makefile.am: - * examples/Synch/Makefile.am: - * examples/Timer_Queue/Makefile.am: - * examples/Log_Msg/Makefile.am: - * examples/Misc/Makefile.am: - * examples/ASX/CCM_App/Makefile.am: - * examples/ASX/Event_Server/Transceiver/Makefile.am: - * examples/ASX/Event_Server/Event_Server/Makefile.am: - * examples/ASX/Event_Server/Makefile.am: - * examples/ASX/Message_Queue/Makefile.am: - * examples/ASX/UPIPE_Event_Server/Makefile.am: - * examples/ASX/Makefile.am: - * examples/Web_Crawler/Makefile.am: - * examples/Shared_Malloc/Makefile.am: - * examples/QOS/Change_Sender_TSpec/Makefile.am: - * examples/QOS/Diffserv/Makefile.am: - * examples/QOS/Simple/Makefile.am: - * examples/QOS/Change_Receiver_FlowSpec/Makefile.am: - * examples/Bounded_Packet_Relay/Makefile.am: - * examples/System_V_IPC/SV_Message_Queues/Makefile.am: - * examples/System_V_IPC/Makefile.am: - * examples/System_V_IPC/SV_Semaphores/Makefile.am: - * examples/Map_Manager/Makefile.am: - * examples/APG/Svc_Config/Makefile.am: - * examples/APG/ThreadSafety/Makefile.am: - * examples/APG/ThreadPools/Makefile.am: - * examples/APG/Active_Objects/Makefile.am: - * examples/APG/Logging/Makefile.am: - * examples/APG/Misc_IPC/Makefile.am: - * examples/APG/Proactor/Makefile.am: - * examples/APG/Threads/Makefile.am: - * examples/APG/Shared_Memory/Makefile.am: - * examples/APG/Reactor/Makefile.am: - * examples/APG/Signals/Makefile.am: - * examples/APG/Timers/Makefile.am: - * examples/APG/ThreadManagement/Makefile.am: - * examples/APG/Config/Makefile.am: - * examples/APG/Containers/Makefile.am: - * examples/APG/Processes/Makefile.am: - * examples/APG/Naming/Makefile.am: - * examples/APG/Makefile.am: - * examples/APG/Sockets/Makefile.am: - * examples/APG/Streams/Makefile.am: - * examples/Registry/Makefile.am: - * examples/Smart_Pointers/Makefile.am: - * examples/DLL/Makefile.am: - * examples/IPC_SAP/DEV_SAP/reader/Makefile.am: - * examples/IPC_SAP/DEV_SAP/Makefile.am: - * examples/IPC_SAP/DEV_SAP/writer/Makefile.am: - * examples/IPC_SAP/FILE_SAP/Makefile.am: - * examples/IPC_SAP/SOCK_SAP/Makefile.am: - * examples/IPC_SAP/SPIPE_SAP/Makefile.am: - * examples/IPC_SAP/ATM_SAP/Makefile.am: - * examples/IPC_SAP/SSL_SAP/Makefile.am: - * examples/IPC_SAP/UPIPE_SAP/Makefile.am: - * examples/IPC_SAP/FIFO_SAP/Makefile.am: - * examples/IPC_SAP/Makefile.am: - * examples/IPC_SAP/TLI_SAP/Makefile.am: - * examples/Logger/Acceptor-server/Makefile.am: - * examples/Logger/Makefile.am: - * examples/Logger/simple-server/Makefile.am: - * examples/Logger/client/Makefile.am: - * examples/Export/Makefile.am: - * examples/Service_Configurator/Makefile.am: - * examples/Service_Configurator/IPC-tests/server/Makefile.am: - * examples/Service_Configurator/IPC-tests/Makefile.am: - * examples/Service_Configurator/IPC-tests/client/Makefile.am: - * examples/Service_Configurator/Misc/Makefile.am: - * examples/IOStream/server/Makefile.am: - * examples/IOStream/Makefile.am: - * examples/IOStream/client/Makefile.am: - * examples/Threads/Makefile.am: - * examples/Shared_Memory/Makefile.am: - * examples/Reactor/Ntalker/Makefile.am: - * examples/Reactor/TP_Reactor/Makefile.am: - * examples/Reactor/FIFO/Makefile.am: - * examples/Reactor/Multicast/Makefile.am: - * examples/Reactor/WFMO_Reactor/Makefile.am: - * examples/Reactor/Proactor/Makefile.am: - * examples/Reactor/Makefile.am: - * examples/Reactor/Dgram/Makefile.am: - * examples/Reactor/Misc/Makefile.am: - * examples/Connection/non_blocking/Makefile.am: - * examples/Connection/blocking/Makefile.am: - * examples/Connection/Makefile.am: - * examples/Connection/misc/Makefile.am: - * examples/NT_Service/Makefile.am: - * examples/Naming/Makefile.am: - * examples/Makefile.am: - * examples/Mem_Map/IO-tests/Makefile.am: - * examples/Mem_Map/file-reverse/Makefile.am: - * examples/Mem_Map/Makefile.am: - * examples/C++NPv1/Makefile.am: - * examples/C++NPv2/Makefile.am: - - Regenerated. - -Wed Nov 22 13:45:43 UTC 2006 J.T. Conklin - - * configure.ac: - - Update for HTBP unit test and TMCast example move. - - * protocols/tests/HTBP/Reactor_Tests/Reactor_Tests.mpc: - * protocols/tests/HTBP/Reactor_Tests/client.cpp: - * protocols/tests/HTBP/Reactor_Tests/inside.conf: - * protocols/tests/HTBP/Reactor_Tests/server.cpp: - * protocols/tests/HTBP/Reactor_Tests/Makefile.am: - * protocols/tests/HTBP/Reactor_Tests/test_config.h: - * protocols/tests/HTBP/Reactor_Tests/run_test.pl: - * protocols/tests/HTBP/HTBP_Config.conf: - * protocols/tests/HTBP/Send_Large_Msg/client.cpp: - * protocols/tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc: - * protocols/tests/HTBP/Send_Large_Msg/server.cpp: - * protocols/tests/HTBP/Send_Large_Msg/Makefile.am: - * protocols/tests/HTBP/Send_Large_Msg/run_test.pl: - * protocols/tests/HTBP/Makefile.am: - * protocols/tests/HTBP/Send_Recv_Tests/SendRecv_Test.mpc: - * protocols/tests/HTBP/Send_Recv_Tests/Makefile.am: - * protocols/tests/HTBP/Send_Recv_Tests/SendRecv_Test.cpp: - * protocols/tests/HTBP/htbptest.mpb: - * protocols/tests/HTBP/ping/client.cpp: - * protocols/tests/HTBP/ping/server.cpp: - * protocols/tests/HTBP/ping/Makefile.am: - * protocols/tests/HTBP/ping/ping.mpc: - * protocols/tests/HTBP/ping/run_test.pl: - * protocols/tests/HTBP/README: - - Move HTBP unit tests to protocols/tests/HTBP... - - * tests/HTBP/Reactor_Tests/Reactor_Tests.mpc: - * tests/HTBP/Reactor_Tests/client.cpp: - * tests/HTBP/Reactor_Tests/inside.conf: - * tests/HTBP/Reactor_Tests/server.cpp: - * tests/HTBP/Reactor_Tests/Makefile.am: - * tests/HTBP/Reactor_Tests/test_config.h: - * tests/HTBP/Reactor_Tests/run_test.pl: - * tests/HTBP/HTBP_Config.conf: - * tests/HTBP/Send_Large_Msg/client.cpp: - * tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc: - * tests/HTBP/Send_Large_Msg/server.cpp: - * tests/HTBP/Send_Large_Msg/Makefile.am: - * tests/HTBP/Send_Large_Msg/run_test.pl: - * tests/HTBP/Makefile.am: - * tests/HTBP/Send_Recv_Tests/SendRecv_Test.mpc: - * tests/HTBP/Send_Recv_Tests/Makefile.am: - * tests/HTBP/Send_Recv_Tests/SendRecv_Test.cpp: - * tests/HTBP/htbptest.mpb: - * tests/HTBP/ping/client.cpp: - * tests/HTBP/ping/server.cpp: - * tests/HTBP/ping/Makefile.am: - * tests/HTBP/ping/ping.mpc: - * tests/HTBP/ping/run_test.pl: - * tests/HTBP/README: - - ...from tests/HTBP. - - * protocols/examples/TMCast/Member/Member.mpc: - * protocols/examples/TMCast/Member/member.cpp: - * protocols/examples/TMCast/Member/Makefile.am: - * protocols/examples/TMCast/Member/README: - * protocols/examples/TMCast/Makefile.am: - - Moved TMCast examples to protocols/examples/TMCast... - - * examples/TMCast/Member/Member.mpc: - * examples/TMCast/Member/member.cpp: - * examples/TMCast/Member/Makefile.am: - * examples/TMCast/Member/README: - * examples/TMCast/Makefile.am: - - ...from examples/TMCast. - -Wed Nov 22 13:25:12 2006 Johnny Willemsen - - * ace/ace_for_tao.mpc: - Add uuid as base project. For building COIOP as part of the - TAO strategies library we need uuid. The nicest solution would - be to make the uuid feature dependent on the ace_for_tao - feature and let the user overrule this but that is not - possible yet. If you are using ace_for_tao and don't want - to have uuid pulled in, set uuid explicitly to 0 in your - default.features file. - -Wed Nov 22 10:48:12 2006 Johnny Willemsen - - * ace/Log_Msg.cpp: - Refactored handling of %W. Added a check for a nill pointer - as we have for ascii strings. Fixes bugzilla 2277. - - * tests/Log_Msg_Test.cpp: - Added test for %W with a string as argument and with a - nill pointer. Fixes bugzilla 2715. - -Wed Nov 22 10:38:12 2006 Johnny Willemsen - - * examples/Misc/test_XtReactor1.cpp: - * examples/Misc/test_XtReactor2.cpp: - * tests/FlReactor_Test.cpp: - * tests/XtReactor_Test.cpp: - * tests/TkReactor_Test.cpp: - * tests/QtReactor_Test.cpp: - Updated because of move below. - -Wed Nov 22 10:35:12 2006 Johnny Willemsen - - * ace/QtReactor*.*: - * ace/FlReactor*.*: - * ace/XtReactor*.*: - * ace/TkReactor*.*: - Moved these reactors to their own subdirectories to make - maintenance a lot easier. - -Wed Nov 22 10:45:12 2006 Johnny Willemsen - - * bin/MakeProjectCreator/config/core_anytypecode.mpb: - Removed svn:executable property - - * bin/MakeProjectCreator/config/core_strategies.mpb - New base project for the strategies library when build in - ace_for_tao configuration - - * bin/MakeProjectCreator/config/orbsvcslib.mpb: - Removed -GT so that we also don't generate TIE files for the - orbsvcs anymore. Will speedup builds and simplify other mpc - files - - * bin/MakeProjectCreator/config/strategies.mpb - Derive from core_strategies. Now the strategies library - does get build in an ace_for_tao configuration but - shmiop and uiop are not build at all, other protocols - can be build. This way we can build COIOP in an ace_for_tao - setup - - * bin/make_release: - Removed dsp/dsw reference, corrected naming of the ACE - packages when the version number gets added. - - * include/makeinclude/platform_hpux_aCC.GNU: - Removed HPUX 10.20 support - - * include/makeinclude/platform_lynxos.GNU: - ACE_HAS_BROKEN_THREAD_KEYFREE is now set in the config file - - * include/makeinclude/wrapper_macros.GNU: - Removed ACE_HAS_GNUG_PRE_2_8 checks - -Wed Nov 22 09:07:12 2006 Johnny Willemsen - - * docs/run_test.txt: - Document ACE_RUN_VX_TGT_HOST - - * docs/bczar/bczar.html: - Updated this file - - * ace/config-freebsd.h: - * ace/POSIX_Proactor.cpp: - Added ACE_HAS_SIGVAL_SIGVAL_INT, this fixes bugzilla - bug 2716. Thanks to Craig Rodrigues - for reporting this. - - * ace/ace.mpc: - Added missing OS.inl. This fixes bugzilla bug 2705. - Thanks to Daniel Black - for reporting this. - - * Release: - Removed dsw files - - * ace/config-rtems.h: - * ace/config-posix-nonetworking.h: - Moved the configuration to build without no networking - support to its own file so that we can reuse this for - example on linux - - * ace/config-rtems.h: - Added support for rtems 4.7 - - * ace/config-unixware-7.1.0.udk.h: - Cleanup - - * ace/config-lyxos.h: - Added support for LynxOS 4.2 - - * ace/config-linux.h: - * ace/config-linux-common.h: - Moved ACE_HAS_GETIFADDRS to the common file and added - support for ACE_LACKS_NETWORKING on linux - - * ace/INET_Addr.cpp: - * ace/OS_NS_netdb.cpp - Fixed compile problem when using ACE_LACKS_NETWORKING on - linux - - * ace/Obstack.h: - Use ACE_EXPORT_SINGLETON_DECLARATION to resolve link errors - on FC6. Thanks to Ken Sedgwick for - reporting this and testing out the patch. - - * ace/OS_NS_string.inl: - Initialise pointer with 0 - -Mon Nov 20 08:16:34 2006 Simon McQueen - - * ACE version 5.5.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-07b b/ACE/ChangeLogs/ChangeLog-07b deleted file mode 100644 index 2e96e779dc8..00000000000 --- a/ACE/ChangeLogs/ChangeLog-07b +++ /dev/null @@ -1,7459 +0,0 @@ -Fri Jul 27 06:50:14 CDT 2007 Johnny Willemsen - - * ACE version 5.5.10 released. - -Thu Jul 26 10:52:23 UTC 2007 Johnny Willemsen - - * tests/Dynamic_Test.cpp: - Removed some printf statements that where not needed - -Wed Jul 25 22:13:59 UTC 2007 Steve Huston - - * tests/ACE_Init_Test.cpp: Added missing #include "ace/OS_NS_unistd.h" - to see ACE_OS::sleep(). - -Wed Jul 25 18:43:53 UTC 2007 William R. Otte - - * bin/make_release.py: - - Additional bugfixes for packaging process. - -Wed Jul 25 08:24:23 UTC 2007 Johnny Willemsen - - * ace/CDR_Size.cpp: - If an argument isn't used, just not give it a name and - then remove ACE_UNUSED_ARG - - * ace/CDR_Stream.h: - * ace/CDR_Size.inl: - Layout change - - * ace/OS_NS_time.inl: - Const change - - * bin/tao_other_tests.lst: - Don't run 2709 when ST is defined - -Tue Jul 24 22:45:37 UTC 2007 Steve Huston - - * ace/Bound_Ptr.inl (operator=): Check for assign-to-self first; - the code would work assigning to self (as the comment states) but - why do it? Also resolves some compile warnings on HP aC++. - -Tue Jul 24 20:38:50 UTC 2007 Douglas C. Schmidt - - * COPYING: Updated this file to reflect 2007. - -Tue Jul 24 21:09:27 UTC 2007 Steve Huston - - * tests/Proactor_Test_IPV6.cpp: Default to half duplex operation on - Linux. Identical to recent change to Proactor_Test.cpp; see - Wed Jun 27 13:48:50 UTC 2007 Steve Huston - - * tests/Multicast_Test_IPV6.cpp: Don't log an error if - IPV6_MULTICAST_LOOP is an unsupported sockopt; also fix spelling. - -Tue Jul 24 20:03:24 UTC 2007 Ciju John - - * bin/tao_orb_tests.lst: - Adding regression test for Bug 3000 to autorun list. - -Tue Jul 24 15:15:43 UTC 2007 Vadym Ridosh - - * THANKS: Added Daniel de Angelis Cordeiro to the Hall of Fame. - -Tue Jul 24 06:58:23 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - Moved all POA examples to the orb tests, core builds should also - test the POA in detail. - -Mon Jul 23 20:16:23 UTC 2007 Steve Huston - - * tests/Multicast_Test_IPV6.cpp: Always enable IPV6_MULTICAST_LOOP - since the test relies on seeing the datagrams sent on the local - host and various platforms have different defaults. - ACE_SOCK_Dgram_Mcast documents this indeterminate state, so if - the app cares (as this one does), it should set it specifically. - -Mon Jul 22 09:59:30 UTC 2007 Johnny Willemsen - - * tests/unload_libace.mpb: - Also define _CRT_SECURE_NO_WARNINGS with nmake - -Mon Jul 22 09:58:30 UTC 2007 Johnny Willemsen - - * ace/config-win32-msvc.h: - Intel C++ does mimic MSVC but does have different warning - numbers. Disable some Intel C++ warnings - -Mon Jul 22 08:04:30 UTC 2007 Johnny Willemsen - - * ace/Rtems_init.c: - * ace/Atomic_Op_Sparc.c: - With Intel C++ don't define the static variable, result in a - warning that it is not used - -Mon Jul 22 06:34:30 UTC 2007 Johnny Willemsen - - * ace/CDR_Stream.{h,cpp,inl}: - Changed wchar_maxbytes_ to a size_t to resolve warnings with BCB2007 - and removed the return value of get_version/set_version, they just - always do a return 0 which isn't usefull - - * ace/SPIPE_Stream.inl: - Directly use the local variables - -Sat Jul 21 06:26:30 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Disable check_for_exception_spec for now. This test will be reenabled and - the remaining usage of exception sepcifications will be zapped once the - beta is out. - -Sat Jul 21 00:48:31 UTC 2007 Steve Huston - - * ace/SOCK_Dgram_Mcast.cpp (subscribe_i): Removed duplicate IPv4 - code. - -Fri Jul 20 21:32:48 UTC 2007 Steve Huston - - * ace/MEM_Acceptor.cpp (accept): Use the sockaddr_in whose address was - taken to set ACE_INET_Addr; don't cast back and forth from sockaddr. - - * ace/Sock_Connect.cpp (get_bcast_addr): No need to cast a pointer - simply to pass it to ACE_OS::memcpy(). Avoids a possible unaligned - access warning. - - * ace/SOCK_Dgram.inl (recv): Use sockaddr.sa_family to get the - address type; same field as sockaddr_in.sin_family and avoids - unaligned access warnings from HP aC++. - -Fri Jul 20 18:15:27 UTC 2007 Adam Mitz - - * NEWS: - - Added entries for the ACE_Vector::swap() fix and Microsoft PSDK - 64-bit compiler support. - -Fri Jul 20 14:44:40 UTC 2007 Wallace Zhang - - * contrib/FaCE/FaCE.mpc: - - Since we are not going to maintain this, label it as a - dummy project. - -Fri Jul 20 12:09:58 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - enhanced and enabled check_for_exception_spec. - -Fri Jul 20 11:00:00 UTC 2007 Simon Massey - - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - - Removed 2926 & 2936 tests from LynxOS, seems to be the - memory mapping problem again. - -Fri Jul 20 09:44:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added POA/Forwarding - -Fri Jul 20 08:48:12 UTC 2007 Johnny Willemsen - - * examples/APG/Processes/Spawn.cpp: - * examples/APG/Reactor/Timers.cpp: - Added missing includes - -Fri Jul 20 08:40:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Use ACE_HAS_POSIX_SEM_TIMEOUT instead of ACE_HAS_POSIX_TIMEOUT. - This fixes bugzilla 2947 - - * ace/OS_NS_time.inl (gethrtime): - Reshuffeld the implementation to make some checks less complex - - * ace/Service_Gestalt.h: - Doxygen fixes - -Fri Jul 20 07:36:00 UTC 2007 Simon Massey - - * ace/Thread_Manager.cpp: - - I should stop trying to second guess myself, the derived class - has a protected destructor! - -Fri Jul 20 03:22:02 UTC 2007 Abdullah Sowayan - - * examples/APG/Active_Objects/AO.cpp: - * examples/APG/Active_Objects/AO2.cpp: - * examples/APG/Logging/Trace_Return.cpp: - * examples/APG/Logging/Wrap_Macros.cpp: - * examples/APG/Processes/Spawn.cpp: - * examples/APG/Reactor/HAStatus.cpp: - * examples/APG/Reactor/Timers.cpp: - * examples/APG/Signals/SigInfo.cpp: - * examples/APG/Sockets/Server.cpp: - * examples/APG/Streams/Answerer.cpp: - * examples/APG/ThreadManagement/Async_Cancel.cpp: - * examples/APG/ThreadPools/LF_ThreadPool.cpp: - * examples/APG/ThreadSafety/Semaphore.cpp: - * examples/APG/Threads/Condition_Variables.cpp: - * examples/ASX/CCM_App/CCM_App.cpp: - * examples/ASX/Event_Server/Event_Server/Options.cpp: - * examples/ASX/Message_Queue/buffer_stream.cpp: - * examples/ASX/UPIPE_Event_Server/Options.cpp: - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv1/Logging_Handler.cpp: - * examples/C++NPv1/Logging_Server.cpp: - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * examples/C++NPv2/AC_Client_Logging_Daemon.cpp: - * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp: - * examples/C++NPv2/Client_Logging_Daemon.cpp: - * examples/C++NPv2/Reactor_Logging_Server_T.cpp: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/C++NPv2/display_logfile.cpp: - * examples/ConfigViewer/ValueDlg.cpp: - * examples/Connection/misc/Connection_Handler.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-client.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp: - * examples/Map_Manager/test_hash_map_manager.cpp: - * examples/Mem_Map/IO-tests/IO_Test.cpp: - * examples/OS/Process/process.cpp: - * examples/QOS/Diffserv/diffserv_test.cpp: - * examples/QOS/Diffserv/server.cpp: - * examples/Reactor/Dgram/CODgram.cpp: - * examples/Reactor/Dgram/Dgram.cpp: - * examples/Reactor/Misc/pingpong.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Reactor/Misc/test_early_timeouts.cpp: - * examples/Reactor/Misc/test_event_handler_t.cpp: - * examples/Reactor/Misc/test_reactors.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Reactor/Multicast/client.cpp: - * examples/Reactor/Proactor/post_completions.cpp: - * examples/Reactor/Proactor/simple_test_proactor.cpp: - * examples/Reactor/Proactor/test_aiocb.cpp: - * examples/Reactor/Proactor/test_aiosig.cpp: - * examples/Reactor/Proactor/test_aiosig_ace.cpp: - * examples/Reactor/Proactor/test_end_event_loop.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/Proactor/test_proactor2.cpp: - * examples/Reactor/Proactor/test_proactor3.cpp: - * examples/Reactor/Proactor/test_udp_proactor.cpp: - * examples/Reactor/WFMO_Reactor/Handle_Close.cpp: - * examples/Reactor/WFMO_Reactor/Multithreading.cpp: - * examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp: - * examples/Reactor/WFMO_Reactor/Removals.cpp: - * examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp: - * examples/Reactor/WFMO_Reactor/Talker.cpp: - * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp: - * examples/Shared_Malloc/Options.cpp: - * examples/Synch/proc_sema.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: - * examples/Threads/barrier2.cpp: - * examples/Threads/future1.cpp: - * examples/Threads/future2.cpp: - * examples/Threads/manual_event.cpp: - * examples/Threads/task_five.cpp: - * examples/Threads/task_four.cpp: - * examples/Threads/task_three.cpp: - * examples/Threads/task_two.cpp: - * examples/Threads/thread_pool.cpp: - * examples/Threads/tss1.cpp: - * examples/Threads/wfmo.cpp: - * examples/Web_Crawler/Options.cpp: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - -Thu Jul 19 23:33:05 UTC 2007 Steve Huston - - * ace/Event_Handler.cpp (ctor): Put reference_count_ init back in the - initializer list. Reverts: - Thu Jul 19 17:15:42 UTC 2007 Steve Huston - because a newer compiler (A.06.13) resolves the warning. Thanks - to Johnny for noticing this. - -Thu Jul 19 19:54:22 UTC 2007 Adam Mitz - - * ace/Numeric_Limits.h: - - Use the macro ACE_LACKS_NUMERIC_LIMITS_64_BIT_TYPES to control - whether or not ACE should define its own std::numeric_limits<> - specializations for the 64-bit integral types. - - * ace/OS_NS_stdio.inl: - * ace/OS_NS_stdio.cpp: - - The Platform SDK 64-bit compiler works like vc71 (not vc8) with - respect to the arguments needed for vswprintf(). - - * ace/OS_NS_sys_stat.h: - - Use the macro ACE_MSVC_USES_DOUBLE_UNDERSCORE_STAT64 to control - whether ACE_stat should be __stat64 instead of _stat64 (MSVC only). - - * ace/checked_iterator.h: - - The Platform SDK 64-bit compiler doesn't have checked iterators. - - * ace/config-lite.h: - - Use the macro ACE_HAS_BROKEN_STD_REVERSE_ITERATOR to indicate that - the std::reverse_iterator class template needs a 2nd argument. - - * ace/config-win32-msvc-8.h: - - With the Platform SDK compiler (detected using _MSC_FULL_VER), we - will now define ACE_AUTO_PTR_LACKS_RESET along with the three macros - listed above and other macros needed to get a good build. This only - applies to the x64 (aka AMD64/EMT64) target. - -Thu Jul 19 17:15:42 UTC 2007 Steve Huston - - * ace/Event_Handler.cpp (ctor): Put the init of reference_count_ - in-body to avoid value-copied-to-temporary. - - * ace/Log_Msg.cpp (exists): No need for casting a void* to - ACE_Log_Msg* just to check for 0. - - * ace/OS_NS_Thread.cpp (event_init): Remove unreachable return. - - * ace/Svc_Conf_y.cpp: Suppress warning 2111 "statement is unreachable" - for HP aC++ on Itanium. - - * include/makeinclude/platform_hpux_aCC.GNU: Remove PRELIB. PRELIB - for instantiating templates prior to the real link hasn't been - needed for many years. Hopefully all the ancient compiler users - have upgraded. - -Thu Jul 19 14:00:00 UTC 2007 Simon Massey - - * ace/Thread_Manager.cpp: - - This cast is actually not needed and was incorrect anyway. - -Thu Jul 19 12:40:00 UTC 2007 Simon Massey - - * tests/OS_Test.cpp: - * tests/Map_Test.cpp: - - Change all ACE_ASSERTS to THIS_IS_NOT_AN_ASSERT_IT_IS_A_NON_DEBUG_TEST_AS_WELL - as these tests are relying on the assert doing the actual run-time - test and error reporting. These SHOULD NOT be asserts but always - compiled and valid (otherwise the actual test code themselves is - pointless). MORRAL: DO NOT IGNORE UNUSED VARIABLE WARNINGS ISSUED - BY A COMPILER. - -Thu Jul 19 11:32:05 UTC 2007 Abdullah Sowayan - - * protocols/ace/TMCast/Group.hpp: - * protocols/ace/TMCast/Group.cpp: - - Zap the usage of exception specifications. - -Thu Jul 19 10:29:57 UTC 2007 Vadym Ridosh - - * bin/tao_other_tests.lst: - Disabled TAO/examples/PluggableUDP/tests/Performance in single - threaded builds. - -Thu Jul 19 10:18:57 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Disable visibility with Intel C++ 10.0, we do have some errors - -Thu Jul 19 09:52:57 UTC 2007 Johnny Willemsen - - * ace/config-icc-common.h: - Updated export/import macros to be used with Intel C++ - - * include/makeinclude/platform_linux_icc.GNU: - Enable visibility with Intel C++ 10.0. It results in a few - warnings but seems to work. - - * ace/Atomic_Op.h: - Updated define to check for Intel C++ - - * ace/config-rtems.h: - Removed reference to KCC - -Thu Jul 19 07:32:57 UTC 2007 Johnny Willemsen - - * tests/SOCK_Netlink_Test.cpp: - Added missing include - -Thu Jul 19 03:00:57 UTC 2007 Abdullah Sowayan - - * tests/Auto_Event_Test.cpp: - * tests/Buffer_Stream_Test.cpp: - * tests/Bug_1890_Regression_Test.cpp: - * tests/Bug_2540_Regression_Test.cpp: - * tests/Bug_2609_Regression_Test.cpp: - * tests/Bug_2659_Regression_Test.cpp: - * tests/Bug_2912_Regression_Test.cpp: - * tests/CE_fostream.cpp: - * tests/Conn_Test.cpp: - * tests/Dev_Poll_Reactor_Test.cpp: - * tests/Dynamic_Test.cpp: - * tests/FlReactor_Test.cpp: - * tests/Future_Set_Test.cpp: - * tests/Future_Test.cpp: - * tests/High_Res_Timer_Test.cpp: - * tests/IOStream_Test.cpp: - * tests/Log_Msg_Backend_Test.cpp: - * tests/Logging_Strategy_Test.cpp: - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - * tests/Malloc_Test.cpp: - * tests/Manual_Event_Test.cpp: - * tests/Message_Block_Test.cpp: - * tests/Multicast_Test.cpp: - * tests/Multicast_Test_IPV6.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/OS_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Priority_Task_Test.cpp: - * tests/Proactor_Scatter_Gather_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: - * tests/QtReactor_Test.cpp: - * tests/Reactor_Notify_Test.cpp: - * tests/Reactor_Performance_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Recursive_Condition_Bug_Test.cpp: - * tests/Refcounted_Auto_Ptr_Test.cpp: - * tests/SOCK_Dgram_Bcast_Test.cpp: - * tests/SOCK_Netlink_Test.cpp: - * tests/SOCK_SEQPACK_SCTP_Test.cpp: - * tests/SPIPE_Test.cpp: - * tests/SSL/SSL_Asynch_Stream_Test.cpp: - * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/TP_Reactor_Test.cpp: - * tests/Task_Ex_Test.cpp: - * tests/Task_Test.cpp: - * tests/Thread_Creation_Threshold_Test.cpp: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - * tests/Thread_Pool_Test.cpp: - * tests/TkReactor_Test.cpp: - * tests/Token_Strategy_Test.cpp: - * tests/Unload_libACE.cpp: - * tests/XtAthenaReactor_Test.cpp: - * tests/XtMotifReactor_Test.cpp: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - -Wed Jul 18 20:25:07 UTC 2007 Steve Huston - - * tests/Proactor_Test.{h cpp}: Fixed to log operation and byte counts - correctly on both 32 and 64 bit platforms. - -Wed Jul 18 12:59:27 UTC 2007 Johnny Willemsen - - * ace/Basic_Types.h: - Added special ACE_LONGLONG_TO_PTR for OpenVMS - - * ace/Dynamic_Service_Base.h: - * ace/Service_Config.cpp: - Layout change - -Wed Jul 18 06:45:27 UTC 2007 Douglas C. Schmidt - - * 45 and going strong! - -Wed Jul 18 05:02:49 UTC 2007 Abdullah Sowayan - - * ace/Activation_Queue.cpp: - * ace/Future.cpp: - * apps/JAWS/clients/WebSTONE/src/bench.c: - * apps/JAWS/clients/WebSTONE/src/genrand.c: - * apps/JAWS/clients/WebSTONE/src/getopt.c: - * apps/JAWS/clients/WebSTONE/src/gettimeofday.c: - * apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h: - * apps/JAWS/clients/WebSTONE/src/sysdep.h: - * apps/JAWS/clients/WebSTONE/src/webmaster.c: - * contrib/FaCE/Main.cpp: - * contrib/minizip/unzip.c: - * contrib/minizip/unzip.h: - * contrib/minizip/zip.h: - * examples/Threads/thread_pool.cpp: - * tests/ACE_Init_TestDlg.h: - * tests/Message_Block_Test.cpp: - * tests/Network_Adapters_Test.cpp: - - Fixed Fuzz warnings. Zapped the usage of NULL and replaced every - NULL with 0 instead. - -Tue Jul 17 18:38:53 UTC 2007 Steve Huston - - * examples/Reactor/Multicast/Log_Wrapper.cpp (open): Removed the - ACE_LACKS_UTSNAME_T block as it's no longer needed. See - Mon Jul 16 21:00:46 UTC 2007 Steve Huston - -Tue Jul 17 18:21:25 UTC 2007 Steve Huston - - * ace/Process.h: Expanded the documentation for creation_flags(). - -Tue Jul 17 18:07:01 UTC 2007 Steve Huston - - * ace/os_include/os_intrin.h: Corrected the prototypes for - InterlockedExchange[Add] on VC7.1. Thanks to Juraj Ivancic - for this fix. - -Tue Jul 17 10:20:24 UTC 2007 Johnny Willemsen - - * examples/Reactor/Proactor/test_proactor2.cpp: - * examples/Reactor/Proactor/test_proactor3.cpp: - Fixed some compile warnings/errors - -Tue Jul 17 08:36:24 UTC 2007 Johnny Willemsen - - * ace/POSIX_Proactor.h: - * ace/SUN_Proactor.h: - Doxygen updates - - * ace/Service_Gestalt.cpp: - Layout changes - -Tue Jul 17 04:03:24 UTC 2007 Abdullah Sowayan - - * Kokyu/Dispatch_Deferrer.cpp: - * ace/FoxReactor/FoxReactor.h: - * apps/JAWS/clients/Caching/http_client.cpp: - * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h: - * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h: - * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h: - * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h: - * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h: - * apps/JAWS/clients/WebSTONE/src/parse_file_list.c: - * apps/JAWS/clients/WebSTONE/src/rexec.c: - * apps/JAWS/clients/WebSTONE/src/sysdep.h: - * apps/JAWS/clients/WebSTONE/src/sysdep.c: - * apps/JAWS/clients/WebSTONE/src/webclient.c: - * apps/JAWS/stress_testing/http_tester.cpp: - * apps/JAWS/stress_testing/util.cpp: - * apps/JAWS2/JAWS/Parse_Headers.cpp: - * apps/JAWS3/bench/rqfiles.cpp: - * apps/JAWS3/jaws3/Cached_Allocator_T.cpp: - * contrib/FaCE/CE_Screen_Output.cpp: - * contrib/FaCE/FaCE.cpp: - * contrib/FaCE/FaCE_OS.h: - * contrib/minizip/crypt.h: - * contrib/minizip/ioapi.c: - * contrib/minizip/miniunz.c: - * contrib/minizip/minizip.c: - * contrib/minizip/mztools.c: - * contrib/minizip/unzip.c: - * contrib/minizip/zip.c: - * examples/APG/Shared_Memory/PI_Malloc.cpp: - * examples/IPC_SAP/ATM_SAP/CPP-client.cpp: - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.h: - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp: - * examples/Misc/test_XtReactor1.cpp: - * examples/Misc/test_XtReactor2.cpp: - * examples/Naming/test_multiple_contexts.cpp: - * examples/Naming/test_writers.cpp: - * examples/OS/Process/imore.cpp: - * examples/OS/Process/process.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Reactor/Proactor/test_proactor2.cpp: - * examples/Reactor/WFMO_Reactor/Window_Messages.cpp: - * examples/Threads/task_three.cpp: - * examples/Timer_Queue/Driver.cpp: - * netsvcs/clients/Naming/Dump_Restore/createfile.cpp: - * netsvcs/lib/TS_Clerk_Handler.cpp: - * performance-tests/Synch-Benchmarks/context.c: - * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp: - * performance-tests/TTCP/C/new-ttcp.cpp: - * performance-tests/UDP/udp_test.cpp: - * tests/Bug_2497_Regression_Test.cpp: - * tests/Bug_2912_Regression_Test.cpp: - * tests/Dirent_Test.cpp: - * tests/OS_Test.cpp: - * tests/SOCK_Netlink_Test.cpp: - * tests/Sigset_Ops_Test.cpp: - * tests/Unload_libACE.cpp: - - Fixed Fuzz warnings. Zapped the usage of NULL and replaced every - NULL with 0 instead. - -Tue Jul 17 02:48:10 UTC 2007 Phil Mesnier - - * bin/msvc_static_order.lst: - Fixed misspelled directory name. - -Mon Jul 16 21:00:46 UTC 2007 Steve Huston - - * ace/OS_NS_sys_utsname.{h cpp}: When ACE needs to define a - ACE_utsname struct (for sytems where ACE_LACKS_UTSNAME_T) define - the character strings as char[], not ACE_TCHAR[], to make it - the same across all platforms. Unifies handling for this struct - and fixes Bugzilla #2665. - - * NEWS: Describes the above change in ACE_utsname's types. - - * tests/Enum_Interfaces_Test.cpp: Remove the specialized handling for - ACE_utsname depending on the ACE_LACKS_UTSNAME setting; it's all the - same now. - -Mon Jul 16 20:15:22 UTC 2007 Steve Huston - - * tests/run_test.pl: When checking for Starting/Ending lines in - child sublogs, allow one Process_Manager_Test sublog to miss its - Ending line. One of the child processes gets terminated and on - some platforms (notably HP-UX 11 on PA-RISC) this leaves a short - log file. Since this is the intended purpose of the test, don't - flag it as a failure. - -Mon Jul 16 19:29:56 UTC 2007 Steve Huston - - * ace/POSIX_Proactor.cpp (ACE_AIOCB_Notify_Pipe_Manager): Set pipe's - read handle blocking, else it constantly completes reads of 0 - bytes, EWOULDBLOCK. Correcting this makes HP-UX PA-RISC - Proactor_Timer_Test complete. - -Mon Jul 16 18:57:12 UTC 2007 Johnny Willemsen - - * examples/Reactor/Proactor/Proactor.mpc: - Temporarily removed proactor2 and 3, to cleanup scoreboard - -Mon Jul 16 10:01:12 UTC 2007 Johnny Willemsen - - * examples/Reactor/Proactor/test_aiosig.cpp: - Fixed compile problems, thanks to Craig Rodrigues - for reporting these - - * examples/Reactor/Proactor/Proactor.mpc: - Added proactor2 and proactor3 - - * examples/Reactor/Proactor/test_proactor3.cpp: - Fixed compile warnings - -Sun Jul 15 18:45:03 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Enhaced NULL detection. - Re-enable the check for NULL. - -Sun Jul 15 14:52:12 UTC 2007 Johnny Willemsen - - * ace/Future.cpp: - Reverted the change of yesterday to use prefix decrement, breaks the - future code - -Sun Jul 15 13:08:50 UTC 2007 Abdullah Sowayan - - * ace/Malloc.h: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_stropts.cpp: - * ace/OS_NS_unistd.cpp: - * ace/Object_Manager_Base.cpp: - * ace/QoS/QoS_Session_Impl.cpp: - * ace/Rtems_init.c: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_SEQPACK_Connector.inl: - * ace/SSL/SSL_Asynch_BIO.cpp: - * ace/SSL/SSL_Context.cpp: - * ace/Sock_Connect.cpp: - * ace/os_include/os_stddef.h: - - Fixed Fuzz warnings regarding the usage of NULL. Prefer the usage of 0 instead - of NULL. - -Sun Jul 15 04:21:44 UTC 2007 Phil Mesnier - - * bin/msvc_static_order.lst: - Add a new pre-build project to the list. This resolves msvc - static build errors. - -Sat Jul 14 15:03:39 UTC 2007 Abdullah Sowayan - - * performance-tests/Misc/childbirth_time.cpp: - * performance-tests/Misc/preempt.cpp: - * performance-tests/Misc/test_guard.cpp: - * performance-tests/Misc/test_naming.cpp: - * performance-tests/RPC/client.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_STREAM_clt.cpp: - * performance-tests/SCTP/hist.cpp: - * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp: - * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp: - * performance-tests/TCP/tcp_test.cpp: - * performance-tests/TTCP/C/new-ttcp.cpp: - * performance-tests/UDP/udp_test.cpp: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - -Sat Jul 14 07:47:12 UTC 2007 Johnny Willemsen - - * ace/config-macosx-tiger.h: - Removed commented out defines - - * ace/Future.cpp: - Use prefix decrement - - * ace/Handle_Set.h: - * ace/Timer_Queue_T.h: - Doxygen improvements - - * ace/Handle_Set.inl: - Added ACE_HAS_NONCONST_FD_ISSET. Is for MacOS Leopard - Thanks to Dennis Chernoivanov for reporting - this. This is part of bugzilla 2984 - - * ace/High_Res_Timer.cpp: - Const improvement - - * ace/OS_NS_stropts.cpp: - * ace/OS_NS_Thread.inl - Layout changes - - * ace/Timer_Queue_Adapters.cpp: - Const changes - -Sat Jul 14 02:26:28 UTC 2007 Abdullah Sowayan - - * apps/JAWS/clients/WebSTONE/src/webclient.c: - * apps/JAWS/stress_testing/http_tester.cpp: - * apps/mkcsregdb/mkcsregdb.cpp: - * apps/soreduce/soreduce.cpp: - - Use ACE_TMAIN instead of main. - - * apps/mkcsregdb/mkcsregdb.mpc: - - Update to explicitly have exename in the mpc file. - -Sat Jul 14 01:28:25 UTC 2007 Phil Mesnier - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - Fix for getting the right base directory for Kokyu based TAO - examples and tests. - -Fri Jul 13 23:05:13 UTC 2007 Steve Huston - - * tests/Bug_2912_Regression_Test.cpp: Don't run this test on Linux; - it requires multiple outstanding asynch I/O ops, which Linux - can't hack at this time (at least up thru RHEL 4). - -Fri Jul 13 22:39:43 UTC 2007 Steve Huston - - * tests/run_test.lst: Add !BAD_AIO to Bug_2912_Regression_Test since - it relies on ACE_Proactor which can't work if there's BAD_AIO. - -Fri Jul 13 22:15:05 UTC 2007 Steve Huston - - * ace/WIN32_Proactor.cpp (handle_events): Don't try to dispatch a - completion if there's no OVERLAPPED pointer specified - it's just - a 'ping'. Thanks to Paxton Mason for reporting this. Fixes Bugzilla - #1526. - -Fri Jul 13 17:18:02 UTC 2007 Ossama Othman - - * NEWS: - - Added note about minor API change to ACE::daemonize(). - -Fri Jul 13 16:49:31 UTC 2007 Ossama Othman - - * ace/Svc_Conf.h (ace_yyerror): - * ace/Svc_Conf.y (ace_yyerror): - * ace/Svc_Conf_y.cpp (ace_yyerror): - - Backed out change to message parameter. It is once again a - narrow string. The generated parser doesn't support wide - strings, and passes narrow strings to ace_yyerror(). For the - moment, convert the narrow string message parameter to an - ACE_TCHAR using the ACE_CHAR_TO_TCHAR macro instead. Once the - parser (and lexer) support passing wide strings to - ace_yyerror(), the use of ACE_CHAR_TO_TCHAR can be removed. - -Fri Jul 13 16:41:31 UTC 2007 Ossama Othman - - * ace/Svc_Conf.h (ace_yyerror): - - Updated the prototype signature to match the latest - implementation signature. Thanks to Steve Huston for pointing - out the error. - -Fri Jul 13 08:13:19 UTC 2007 Vadym Ridosh - - * bin/tao_other_tests.lst: - Excluded examples/PluggableUDP/tests/Performance from corba_e_compact - and corba_e_micro builds. - -Fri Jul 13 03:02:58 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Enhanced regular expression for exception specification check. - - Increased level for the following checks: - check_for_lack_ACE_OS - check_for_exception_spec - check_for_NULL - check_for_improper_main_declaration - - There are way too many fuzz warnings now, I will enable those checks - again once I'm done zapping the current warnings. That way fuzz can be - useful again to folks that check code in. - -Thu Jul 13 00:04:25 UTC 2007 Ossama Othman - - * ace/ACE.cpp (daemonize): - * ace/ACE.h (daemonize): - - Changed "close_all_handles" parameter to a bool to better - reflect its purpose. - - * ace/CDR_Stream.cpp (grow_and_adjust): - - Replaced C style casts with C++ casts. - - (skip_wchar, read_wchar): - - Cleaned up local/temporary variables. - - (read_string, read_wstring): - - Fixed leak on exception. - - (skip_wstring): - - No need for a boolean comparison in a conditional. Use the - boolean value directly. - - * ace/Condition_Thread_Mutex.cpp: - * ace/Condition_Thread_Mutex.h: - - Removed const qualifier from ACE_Thread_Mutex parameter in - ACE_Condition_Thread_Mutex constructors. It is misleading since - the ACE_Thread_Mutex must be mutable, and is used in that way. - - * ace/DLL.cpp (operator=): - - Simplified the ACE_DLL assignment operator, and simultaneously - made it strongly exception safe. - - * ace/Service_Gestalt.cpp: - - Whitespace/indentation correction. - - * ace/Svc_Conf.y (yyerror): - * ace/Svc_Conf_y.cpp (ace_yyerror): - - Corrected message string parameter type. s/char/ACE_TCHAR/. - - Improved error message to make it clear the error is coming from - ACE. - -Thu Jul 12 16:29:12 UTC 2007 Johnny Willemsen - - * tests/Bug_2975_Regression.cpp: - * tests/test.mpc: - New regression test for 2975, thanks to Pavel Zaichenko - for making this test - -Thu Jul 12 12:07:27 UTC 2007 Vadym Ridosh - - * bin/tao_other_tests.lst: - * bin/tao_orb_tests.lst: - Added IPv6 tests to current DIOP tests and enabled - examples/PluggableUDP/tests/Performance test for usual and - IPv6 testing. - -Thu Jul 12 01:27:12 UTC 2007 Johnny Willemsen - - * ace/Atomic_Op.cpp: - Updated some comments - - * ace/Atomic_Op.h: - Also enable the intel assembly when using Intel C++ or when - running on EM64T. - -Thu Jul 12 01:15:12 UTC 2007 Johnny Willemsen - - * ace/Atomic_Op.{h,cpp}: - When using Intel assembly, just define ACE_HAS_INTEL_ASSEMBLY in - the header file and check this in the cpp file, much easier to - maintain then all explicit checks in the cpp file - -Wed Jul 11 20:17:07 UTC 2007 Steve Huston - - * ace/config-aix-5.x.h: For IBM compilers Visual Age C++ 6 and up, - use custom template export macros to correctly generate weak - symbols for importable templates. Allows correct reuse of templates - instantiated in a shared library - in this case, fixes failures - in Based_Pointer_Test where singletons from ACE and another shared - library did not resolve to the same pointer. - - * tests/Based_Pointer_Test.cpp: Use %@, not %x, to log pointer values. - -Wed Jul 11 17:02:12 UTC 2007 Johnny Willemsen - - * bin/fuzz.pl: - Increased level for the tab check, something to fix in - the future - -Tue Jul 10 17:06:10 UTC 2007 Steve Huston - - * ace/config-sunos5.10.h: Added correct printf() modifiers for - ACE_SIZE_T_FORMAT_SPECIFIER and ACE_SSIZE_T_FORMAT_SPECIFIER. - -Tue Jul 10 16:07:38 UTC 2007 Steve Huston - - * tests/Basic_Types_Test.cpp: - * tests/Time_Value_Test.cpp: Moved the ACE_U_LongLong checks from - Time_Value_Test, where they were artificially wedged in for Sun, - to Basic_Types_Test. The ACE_U_LongLong stuff was put in place - (Tue Aug 26 11:06:45 1997 David L. Levine ) - during what was apparantly some tumultuous platform times, then - subsequently enabled and disabled in various platforms as needed - to resolve side-affects. If it's still needed on any platforms - that don't have native long long, it'll be run. - -Tue Jul 10 14:30:50 UTC 2007 Phil Mesnier - - * ace/INET_Addr.cpp: - Reverted AIX-specific change. It didn't work. - -Tue Jul 10 13:13:12 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - WindRiver has released a patch for TSR560446, so slightly changed the way - we check whether to define _C99 so that when the patch for the TSR has been - applied we don't define _C99 manually - -Tue Jul 10 06:25:48 UTC 2007 Vladimir Zykov - - * bin/PerlACE/Process_Unix.pm: - Now check_return_value will return 255 instead of 0 at the end - when it reports an error. - -Mon Jul 9 12:25:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_unistd.cpp (fork_exec): Improved free allocation memory - in the case where Windows CreateProcess() fails using - ACE_Auto_Basic_Array_Ptr. Resolves Bugzilla #2983. - - * ace/Service_Config.cpp: - * ace/CDR_Stream.h: - Layout change - - * ace/Object_Manager.cpp: - * ace/Object_Manager_Base.cpp: - * ace/Object_Manager_Base.h: - Changed dynamically_allocated to a real bool - -Sun Jul 8 22:05:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_stdio.inl (cuserid): - Only use L_cuserid when it is defined, fixes a problem on MacOS X 9. - Thanks to Dennis Chernoivanov for reporting - this. This is part of bugzilla 2984 - -Sat Jul 7 17:45:34 UTC 2007 Phil Mesnier - - * NEWS: - - Note about a minor change of behavior for ACE_INET_Addr setting - with a string on IPv6 enabled builds. - - * ace/INET_Addr.cpp: - - More tweaks to setting the address based on a hostname string - with IPv6 support compiled in. This cleans up errors on AIX. - -Fri Jul 6 21:33:47 UTC 2007 Steve Huston - - * apps/FaCE: - * contrib/FaCE: Moved the FaCE utility from apps to contrib. It's a - useful utility for testing ACE+TAO apps on WinCE, but is not an - ACE app. It's also not particularly well-maintained, but is a - useful utility to keep for WinCE developers. - - * NEWS: Noted the above move. - -Fri Jul 6 15:24:48 UTC 2007 Steve Huston - - * ace/OS_NS_unistd.cpp (fork_exec): Free allocated memory in the case - where Windows CreateProcess() fails. Thanks to Martin Kolleck for - this fix. Resolves Bugzilla #2983. - -Fri Jul 6 14:52:00 UTC 2007 Steve Huston - - * ace/OS_NS_Thread.inl: - * ace/os_include/os_semaphore.h: Reversed the default for platforms - that do have POSIX semaphores (ACE_HAS_POSIX_SEM) but do not have - native timed-wait functionality (ACE_HAS_POSIX_SEM_TIMEOUT). They - used to include the timed wait capability only if the - ACE_HAS_POSIX_SEM_TIMEOUT_EMULATION macro was set; now they will - always include the timed wait emulation unless the - ACE_DISABLE_POSIX_SEM_TIMEOUT_EMULATION macro is set. This - automatically extends the capability where it is needed but leaves - a way for it to be disabled for users who really want to save the - memory footprint and don't need timed waits. - - * ace/config-aix-5.x.h: Removed ACE_HAS_POSIX_SEM_TIMEOUT_EMULATION. - -Fri Jul 6 10:10:58 UTC 2007 Jeff Parsons - - * bin/MakeProjectCreator/config/support_ostream.mpb: - - New file, containing a feature, inherited in ace.mpc that is - turned on by modifying gen_ostream = 0 in default.features. - - * ace/ace.mpc: - - Added inheritance of the above new feature. - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - - Guarded the recently added ostream operators for ACE_CDR::from_char, - from_wchar, from_octet and from_boolean with a flag that - is defined when the above new feature is turned on. - -Thu Jul 5 18:56:11 UTC 2007 Steve Huston - - * tests/SOCK_Connector_Test.cpp: Removed the AIX 4.3 condition for - not calling sethostent(1). The condition was coded incorrectly such - that it was used for AIX 5.3; since AIX 4.3 is no longer supported, - the check was removed instead of changed. Thanks to Phil Mesnier for - calling this to my attention. - -Thu Jul 5 16:03:29 UTC 2007 Steve Huston - - * tests/Semaphore_Test.cpp: Removed the platform restrictions for - avoiding the semaphore timed-acquire functionality. There should - be available support for all (or most) platforms, so we need to - shake out which have it natively and which need the emulation. - -Thu Jul 5 07:35:45 UTC 2007 Simon Massey - - * ace/Thread_Manager.cpp: - - Fixed Bugzilla 2972 - Memory leak of ACE_Thread_Adapter on spawn. - -Wed Jul 4 15:45:45 UTC 2007 Vladimir Zykov - - * bin/PerlACE/Process_Unix.pm: - - Fixed a problem that existed on SunOS when arguments of spawned - process contained any of [] and exec in that case was spawning a - new process instead of loading it in place of a process created - by fork. - -Wed Jul 4 06:02:38 UTC 2007 Abdullah Sowayan - - * protocols/ace/HTBP/HTBP_Filter.cpp: - * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp: - * protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp: - * protocols/ace/RMCast/Acknowledge.cpp: - * protocols/ace/RMCast/Flow.cpp: - * protocols/ace/RMCast/Fragment.cpp: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Reassemble.cpp: - * protocols/ace/RMCast/Retransmit.cpp: - * protocols/ace/RMCast/Simulator.cpp: - * protocols/ace/RMCast/Socket.cpp: - * protocols/ace/RMCast/Stack.cpp: - * protocols/ace/TMCast/Group.cpp: - * protocols/examples/RMCast/Send_Msg/Receiver.cpp: - * protocols/examples/RMCast/Send_Msg/Sender.cpp: - * protocols/tests/RMCast/Receiver.cpp: - * protocols/tests/RMCast/Sender.cpp: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - -Tue Jul 3 21:04:59 UTC 2007 Steve Huston - - * ace/config-win32-common.h: Remove the include for CE. - It's not there for building CE using VS .NET 2005. - - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Simulator.cpp: Use ACE_OS::time() rather than - naked time(); fixes build error on WinCE. - - * examples/APG/Sockets/Basic.cpp: - * examples/APG/Sockets/Iovec.cpp: - * examples/Connection/misc/test_upipe.h: Use ACE_OS::write() rather - than naked write() and use ACE_STDOUT rather than fd 1. Fixes - WinCE build errors. - - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: Avoid compile errors where - both SIGINT and SIGQUIT are stubbed to 0 (such as WinCE). - - * examples/OS/Process/OS_Process.mpc: Avoid this for WinCE. The code - uses plenty of naked Windows system calls that make no sense for CE. - - * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFC.mpc: Avoid this for WinCE. - The code sends ACE logging output to the Visual Studio debug - window, something not really possible using this code on CE. - - * examples/IPC_SAP/SOCK_SAP/sock_sap.mpc: Avoid wince for C-inserver. - It uses too much low-level system calls for CE to hack it. - - * tests/Malloc_Test.cpp: Cast the initializer for CHILD_BASE_ADDR - so the VC8 WinCE compiler can hack it. - - * apps/FaCE/CE_Screen_Output.cpp: - * apps/FaCE/FaCE.cpp: Reverted addition of ACE_OS from - Sat Jun 30 05:11:43 UTC 2007 Abdullah Sowayan - This utility doesn't make use of ACE except in very limited - situations. I disabled FUZZ checks for ACE_OS instead. - - * apps/FaCE.cpp: Use ACE_ARGV instead of ACE_CE_ARGV. The latter was - removed long ago when ACE_ARGV was improved to obviate it. See - Fri Mar 28 16:04:28 2003 Steve Huston - -Tue Jul 3 14:29:12 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.5.h: - * ace/Sock_Connect.cpp: - VxWorks 6.5 rtp doesn't have getifaddrs - -Tue Jul 3 13:08:42 UTC 2007 Jeff Parsons - - * ace/CDR_Stream.h: - - Moved ostream operator declarations out of the #else branch - of #if defined (__ACE_INLINE__), where they were mistakenly - put originally. - -Tue Jul 3 11:41:12 UTC 2007 Johnny Willemsen - - * ace/OS_Memory.h: - Use ::std instead of std to prevent problems when users - have XXX::YYY::std as namespace in their own code. This fixes - bugzilla 2976. Thanks to Pavel Zaichenko - for reporting this - -Mon Jul 2 15:59:28 UTC 2007 Adam Mitz - - * ace/Vector_T.h: - * ace/Vector_T.inl: - - Added a swap() member to Vector. Previously Vector inherited swap() - which would produce invalid results since the members declared in - Vector were not swapped. This fixes bugilla bug #2951. - - * tests/Vector_Test.cpp: - - Test for the change above. - -Mon Jul 2 14:36:25 UTC 2007 Adam Mitz - - * bin/generate_doxygen.pl: - - Fixed a logic error that resulted in manpage documentation even when - the option was not specified. - -Mon Jul 2 14:19:03 UTC 2007 Adam Mitz - - * docs/ACE-guidelines.html: - - Fixed incorrect statement about casts between pointers and longs. - -Mon Jul 2 12:03:36 UTC 2007 Jeff Parsons - - * bin/MakeProjectCreator/config/global.features: - - Added line 'gen_ostream = 0' so that the gen_ostream feature - can be inherited into tao.mpc but be turned off by default. - Thanks to Johnny Willemsen for - suggesting this approach to keeping the default footprint - of TAO from rising by default generation of ostream insertion - operators for all ORB-defined IDL types. - -Mon Jul 2 11:39:20 UTC 2007 Chad Elliott - - * ACE.mwc: - - Utilize the new 'associate' feature to decrease the amount of - hand editing required for automake generation. - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Minor change to remove an extra new line. - -Mon Jul 2 09:40:12 UTC 2007 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - Defined SCM_RIGHTS when it is not defined yet - - * ace/Activation_Queue.{h,cpp}: - Changed delete_queue_ to a real bool - - * ace/Sig_Handler.h: - Doxygen improvements - -Mon Jul 2 09:01:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug 2936 regression - -Mon Jul 2 07:33:12 UTC 2007 Johnny Willemsen - - * bin/tao_other_tests.lst: - Added Bug 2926 regression - -Sun Jul 1 17:01:21 UTC 2007 Abdullah Sowayan - - * apps/drwho/PMC_All.cpp: - - Removed #include "ace/OS_NS_stdio.h" - - * apps/drwho/PMS_All.cpp: - - Added #include "ace/OS_NS_stdio.h" - - The include was introduced to the wrong file by mistake in - Sat Jun 30 16:19:57 UTC 2007 Abdullah Sowayan - -Sat Jun 30 16:19:57 UTC 2007 Abdullah Sowayan - - * apps/drwho/PMC_All.cpp: - * apps/drwho/PMC_Flo.cpp: - * apps/drwho/PMS_Flo.cpp: - * apps/drwho/PMS_Ruser.cpp: - * apps/drwho/PM_Server.cpp: - - Fixed compile-time error. Added missing #include "ace/OS_NS_stdio.h". - -Sat Jun 30 05:11:43 UTC 2007 Abdullah Sowayan - - * apps/FaCE/CE_Screen_Output.cpp: - * apps/FaCE/FaCE.cpp: - * apps/JAWS/clients/Caching/http_client.cpp: - * apps/JAWS/server/HTTP_Response.cpp: - * apps/JAWS/server/Parse_Headers.cpp: - * apps/JAWS/stress_testing/benchd.cpp: - * apps/JAWS/stress_testing/connection.cpp: - * apps/JAWS/stress_testing/http_tester.cpp: - * apps/JAWS/stress_testing/stats.cpp: - * apps/JAWS/stress_testing/util.cpp: - * apps/JAWS2/JAWS/Server.cpp: - * apps/JAWS3/bench/average.cpp: - * apps/JAWS3/bench/mkfiles.cpp: - * apps/JAWS3/bench/rqfiles.cpp: - * apps/JAWS3/jaws3-todo/Map_Manager_T.cpp: - * apps/JAWS3/jaws3/Cached_Allocator_T.cpp: - * apps/drwho/CM_Client.cpp: - * apps/drwho/CM_Server.cpp: - * apps/drwho/File_Manager.cpp: - * apps/drwho/Multicast_Manager.cpp: - * apps/drwho/Options.cpp: - * apps/drwho/PMC_Flo.cpp: - * apps/drwho/PMS_All.cpp: - * apps/drwho/PMS_Flo.cpp: - * apps/drwho/PMS_Ruser.cpp: - * apps/drwho/PM_Server.cpp: - * apps/gperf/src/Gen_Perf.cpp: - * apps/gperf/src/Iterator.cpp: - * apps/gperf/src/Key_List.cpp: - * apps/gperf/src/List_Node.cpp: - * apps/gperf/src/Options.h: - * apps/gperf/src/Options.cpp: - * apps/mkcsregdb/mkcsregdb.cpp: - * apps/soreduce/Library.cpp: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - - * apps/gperf/src/Gen_Perf.cpp: - * apps/gperf/src/Iterator.cpp: - * apps/gperf/src/Key_List.cpp: - * apps/gperf/src/List_Node.cpp: - * apps/gperf/src/Options.h: - * apps/gperf/src/Options.cpp: - - Changed code generated by gperf for usage by the IDL compiler to use functions - in ACE_OS instead of raw OS calls. - -Sat Jun 30 04:48:34 UTC 2007 Abdullah Sowayan - - * ASNMP/asnmp/address.cpp: - * ASNMP/asnmp/ctr64.cpp: - * ASNMP/asnmp/integer.cpp: - * ASNMP/asnmp/octet.cpp: - * ASNMP/asnmp/oid.cpp: - * ASNMP/asnmp/pdu.cpp: - * ASNMP/asnmp/target.cpp: - * ASNMP/asnmp/timetick.cpp: - * ASNMP/asnmp/transaction.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: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - -Fri Jun 29 19:40:27 UTC 2007 Steve Huston - - * bin/PerlACE/Process_Unix.pm: Don't hang waiting for a failed spawn - to exit its process. - -Fri Jun 29 19:26:12 UTC 2007 Johnny Willemsen - - * performance-tests/TCP/tcp_test.cpp: - * tests/Message_Queue_Test.cpp: - Updated includes - -Fri Jun 29 18:39:46 UTC 2007 Adam Mitz - - * bin/depgen.pl: - - Load modules from $MPC_ROOT/modules since the NMake dependency - generator now uses some functions from MPC. - -Fri Jun 29 13:38:12 UTC 2007 Johnny Willemsen - - * ace/Stats.{h,cpp,inl}: - * ace/Throughput_Stats.{h,cpp}: - Moved ACE_Throughput_Stats to its own file, fixes bugzilla bug - 2969 - - * ace/ace.mpc: - * ace/Makefile.am: - Added new files - -Fri Jun 29 12:04:12 UTC 2007 Johnny Willemsen - - * ace/Message_Queue.{h,cpp,inl}: - * ace/Message_Queue_Vx.{h,cpp,inl}: - Moved ACE_Message_Queue_Vx to its own file, fixes bugzilla bug - 2970 - - * ace/ace.mpc: - * ace/Makefile.am: - Added new files - -Fri Jun 29 11:16:06 UTC 2007 Jeff Parsons - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - - Reversed the order of declaration and implementation for - overloads of ostream operator for from_octet and from_wchar. - The former calls the latter, and some compilers seem to - require that the latter's full implementation be seen - before it can be called. - -Fri Jun 29 11:03:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_mingw32.GNU: - Set PLATFORM_SSL_LIBS. Thanks to Andy Wang - for reporting this - -Fri Jun 29 10:59:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new Bug_2953_Regression - -Fri Jun 29 09:48:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_arpa_inet.cpp: - Fix for VxWorks 6.5 - -Thu Jun 28 16:12:18 UTC 2007 Phil Mesnier - - * ACEXML/common/URL_Addr.h: - * ACEXML/common/URL_Addr.cpp: - - * examples/Web_Crawler/URL_Addr.h: - * examples/Web_Crawler/URL_Addr.cpp: - - * protocols/ace/HTBP/HTBP_Addr.h: - * protocols/ace/HTBP/HTBP_Addr.cpp: - - Update string_to_addr interface to match previous change to - ACE_INET_Addr in order to silence some compiler warnings - -Thu Jun 28 15:18:35 UTC 2007 Steve Huston - - * bin/sandbox.cpp: Removed. There's an identical copy of this file - in the autobuild repository, autobuild/posixsandbox/sandbox.cpp. - -Thu Jun 28 14:12:12 UTC 2007 Johnny Willemsen - - * examples/ASX/Message_Queue/buffer_stream.cpp: - * examples/C++NPv1/Iterative_Logging_Server.cpp: - * examples/C++NPv1/Logging_Client.cpp: - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Reactive_Logging_Server.cpp: - * examples/C++NPv1/Reactive_Logging_Server_Ex.cpp: - * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp: - * examples/C++NPv2/Reactor_Logging_Server.cpp: - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/C++NPv2/WFMO_Reactor_Logging_Server.cpp: - * examples/Connection/blocking/test_spipe_acceptor.cpp: - * examples/Connection/misc/test_upipe.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-server.cpp: - * examples/IPC_SAP/TLI_SAP/db-server.cpp: - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp: - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Reactor/Misc/test_reactors.cpp: - * examples/Reactor/Misc/test_time_value.cpp: - * examples/Reactor/Proactor/Aio_Platform_Test_C.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/Reactor/Proactor/test_multiple_loops.cpp: - * examples/Reactor/Proactor/test_timeout.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: - * examples/Threads/task_one.cpp: - Changed main to ACE_TMAIN - -Thu Jun 28 14:07:12 UTC 2007 Johnny Willemsen - - * apps/drwho/client.cpp: - * apps/drwho/server.cpp: - * apps/Gateway/Gateway/Config_Files.cpp: - * apps/gperf/src/gperf.cpp: - * apps/JAWS2/main.cpp: - * apps/JAWS3/bench/mkfiles.cpp: - * apps/JAWS3/bench/rqfiles.cpp: - * apps/JAWS/clients/Caching/test_URL.cpp: - * apps/JAWS/server/main.cpp: - * apps/JAWS/stress_testing/benchd.cpp: - Changed main to ACE_TMAIN - -Thu Jun 28 10:08:38 UTC 2007 Jeff Parsons - - * ace/CDR_Stream.h: - - Removed 'extern' qualifier from ostream operator declarations, it's - not needed. - - * ace/CDR_Stream.cpp: - - Added explicit temporary of ACE_OutputCDR::from_wchar in the - ostream operator implementation taking ACE_OutputCDR::from_octet. - Unix compilers were apparently making some kind of promotion - of the implicit temporary before seeing it in the header file. - -Tue Jun 26 13:48:26 UTC 2007 Douglas C. Schmidt - - * apps/JAWS2/HTTPU/http_status.cpp: Added - - #include "ace/Log_Msg.h" - - so the ACE_DEBUG macro would be visible. Thanks to Venkat - Forums for reporting this. - -Thu Jun 28 07:32:12 UTC 2007 Johnny Willemsen - - * ace/Truncate.h: - CB2007 can handle this code according to Codegear support - -Wed Jun 27 20:25:06 UTC 2007 Phil Mesnier - - * ace/INET_Addr.h: - * ace/INET_Addr.inl: - * ace/INET_Addr.cpp: - - Force consistency across platforms using IPv6 and initializing - an ACE_INET_Addr with a string host. Prior to this patch, the - set method would pick the first INET or INET6 address returned - by the system. On most systems, ::getaddrinfo() returns INET6 - before INET ones, ensuring that IPv6 applications got consistent - results. However, a few platforms, such as RH Fedora 6, it - returns INET before INET6 meaning that in some contexts an - application would get one address for a host, and a different - address under other contexts. See Bugzilla entry 2952 for - greater detail. - - Since this form of set() is used internally by string_to_addr - and a string-based ctor, those methods now have an optional - parameter for explicitly specifying the address family to be - used in setting the address. - -Wed Jun 27 19:46:14 UTC 2007 Steve Huston - - * ace/config-aix-5.x.h: For AIX 5.2 and earlier, when removing - ACE_HAS_POSIX_SEM_TIMEOUT, also enable - ACE_HAS_POSIX_SEM_TIMEOUT_EMULATION. - -Wed Jun 27 16:59:06 UTC 2007 Steve Huston - - * ace/config-aix-5.x.h: Don't automatically undef - ACE_HAS_POSIX_SEM_TIMEOUT for AIX 5.3 and up - it works fine. - -Wed Jun 27 15:45:09 UTC 2007 Ciju John - - * docs/bczar/bczar.html: - Add to bczar notes. - -Wed Jun 27 15:07:37 UTC 2007 Steve Huston - - * tests/Makefile.am: Added Dynamic_Test. - -Wed Jun 27 13:54:35 UTC 2007 Steve Huston - - * ace/OS_NS_Thread.inl (sema_wait): Allow a 0 time value to indicate - "poll" semantics on the semaphore in the WinCE case, as it does in - the other Windows cases. Thanks to Shaolong Xiang for this fix. - - * ace/Malloc_T.h: Improved the documentation for ACE_Malloc_T - regarding what pools to use with it and what the requirements are - for a pool that's used with ACE_Malloc_T. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.mpc: Removed the - Netsvcs_Dump_Restore_Lib project, which built only one file into - a DLL to link with the main program from Netsvcs_Dump_Restore. Add - that one file, Dump_Restore.cpp, to the main Netsvcs_Dump_Restore - project. Also renamed the resultant executable dump_restore. - This split was a hold-over from the pre-MPC days when it was hard - to build an exe from more than one file. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h: No need to - declare Dump_Restore exported any longer; it's not built into a DLL. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: This doesn't - need to include "ace/Service_Config.h" any longer. - - * netsvcs/clients/Naming/Client/Client.mpc: Removed the - Netsvcs_Client_Test_Lib project, which built only one file into - a DLL to link with the main program from Netsvcs_Client_Test. Add - that one file, Client_Test.cpp, to the main Netsvcs_Client_Test - project. Also renamed the resultant executable client_test. - This split was a hold-over from the pre-MPC days when it was hard - to build an exe from more than one file. - - * netsvcs/clients/Naming/Client/Client_Test.{h cpp}: - * netsvcs/clients/Naming/Client/main.cpp: - * netsvcs/clients/Naming/Client/svc.conf: - * netsvcs/clients/Naming/Client/svc2.conf: The Client_Test is no longer - dynamically loaded; it's linked in static. Also fixed some remaining - use of the deprecated method ACE_Reactor::run_event_loop(). - - * netsvcs/lib/TS_Clerk_Handler.cpp (ACE_TS_Clerk_Processor::alloc): - Always set the system_time_ pointers, even if the memory need not - be newly allocated. Avoids bad pointer dereferences. Fixes Bugzilla - #784. Thanks to James Marsh for this fix. - - * THANKS: Added James Marsh and Shaolong Xiang to the Hall of Fame. - -Wed Jun 27 13:55:39 UTC 2007 Johnny Willemsen - - * ace/CDR_Stream.h: - Fixed casing of include - -Wed Jun 27 13:48:50 UTC 2007 Steve Huston - - * ace/Dev_Poll_Reactor.cpp: When queueing notifications, correctly - handle the case where the notify is queued - (and ACE_HAS_REACTOR_NOTIFICATION_QUEUE) but the pipe can't be - written. The notify will be delivered, so don't fail the method. - - * tests/Dev_Poll_Reactor_Test.cpp: Add ECONNRESET to the errno values - which mean the peer (server) closed the connection; this is legit - and shouldn't be flagged as an error. - - * tests/Proactor_Test.cpp: If running on Linux, use half-duplex mode. - Linux kernels up to at least 2.6.9 (RHEL 4) silently convert all - socket aio to blocking synchronous, so full duplex test operation - is a crap shoot at best. - -Wed Jun 27 13:39:55 UTC 2007 Steve Huston - - * ace/OS_NS_Thread.inl (thr_sigsetmask): Removed the AIX block; AIX - has the proper features to just use the existing feature tests. - Thanks to Johnny Willemsen for noticing this. - -Wed Jun 27 09:50:00 UTC 2007 Simon Massey - - * bin/tao_other_tests.lst: - - Added TAO/orbsvcs/tests/InterfaceRepo/Bug_2962_Regression/run_test.pl - -Wed Jun 27 08:29:56 UTC 2007 Jeff Parsons - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - - Added ostream insertion operators for the ambiguous ACE_CDR - basic types. They are used in the optional generation of - ostream operators for IDL declaration, which can be useful - for debugging (see Bugzilla 2937). - -Wed Jun 27 08:05:39 UTC 2007 Johnny Willemsen - - * tests/Capabilities_Test.cpp: - Const changes - - * tests/Dynamic_Test.cpp: - New test for ACE_Dynamic, this failed with x.5 but works - perfect on head, just adding it to make sure this keeps working - on all platforms. Belongs to bugzilla 2960. - - * tests/run_test.lst: - * tests/tests.mpc: - Added Dynamic_Test - - * tests/Svc_Handler_Test.cpp: - Intialise some pointers with 0 - -Wed Jun 27 06:14:39 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new tests - -Wed Jun 27 06:09:39 UTC 2007 Johnny Willemsen - - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Added ACE_HAS_SOCKADDR_IN_SIN_LEN - - * ace/config-vxworks6.5.h: - New file for VxWorks 6.5 - - * ace/config-freebsd.h: - Added ACE_LACKS_LOG2 - - * ace/config-borland-common.h: - C++ Builder 2007 delivers operator delete - - * ace/Handle_Set.{h,cpp}: - * ace/README: - * ace/OS_NS_sys_select.inl: - Don't use ACE_FD_SET_TYPE, it is not required anymore - - * ace/Log_Record.cpp (print): - Fixed problem with unicode builds. Thanks to Christoph Hofmann - for reporting this. - - * ace/os_include/os_limits.h: - * ace/os_include/os_stdio.h: - * ace/os_include/sys/os_types.h: - * ace/OS_NS_sys_mman.inl: - * ace/OS_NS_unistd.inl: - VxWorks 6.5 changes - - * ace/os_include/sys/os_select.h: - Removed ACE_FD_SET_TYPE, not needed anymore - - * ace/SOCK_Dgram.cpp: - Intialise some pointers with 0 - - * ace/Svc_Handler.{h,cpp}: - Layout changes and changed dynamic to a real bool - -Wed Jun 27 03:50:39 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Added the following new checks to fuzz: - - check_for_exception_spec: - This checks for the usage of exception specification in method - signitures. This check will not flag no-throw spec i.e. throw() in - methods. This check may disabled at specified section in the code. - - check_for_NULL: - 0 should be used instead of NULL. - - check_for_improper_main_declaration: - int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) should be used instead - of plain main(int argc, char** argv). - - check_for_lack_ACE_OS: - This checks for the usage of raw/naked OS calls. The functions in - ACE_OS should be used instead. This check can be disabled in sections - of code where false-positives are found. - - - Modified the following check in fuzz: - - check_for_tab: - Due to the large amount of tabs found in the source code, this check - will no longer flag every instance of tab found (until the issue is - fixed). For now, it will only flag that fact that a file contains - tabs once. - -Mon Jun 25 11:34:36 CDT 2007 Ciju John - - * ACE version 5.5.9 released. - -Mon Jun 25 16:03:37 UTC 2007 Ciju John - - * NEWS: - Adding NEWS summaries on Ossama's behalf. - -Fri Jun 22 15:56:12 UTC 2007 William R. Otte - - * bin/make_release.py: - - Updates to fix ChangeLog entry creation and superflous packaging - of extra binary files in ACE+TAO and ACE+TAO+CIAO packages. - -Fri Jun 22 14:50:14 UTC 2007 Ciju John - - * ChangeLog: - * PROBLEM-REPORT-FORM: - * VERSION: - * ace/Version.h: - Revert to x.5.8 status. - -Tue Jun 12 20:11:59 UTC 2007 Ciju John - - * NEWS: - Add note regards Fedora 7 GCC 4.1.2 fix for visibility attribute - used for singletons. - -Mon Jun 11 12:40:00 UTC 2007 Simon Massey - - * ace/MMAP_Memory_Pool.cpp: - * tests/run_test.lst: - - Fix problem in Lynxos and re-enable Test. - -Fri Jun 08 08:38:00 UTC 2007 Simon Massey - - * include/makeinclude/platform_hpux_aCC.GNU: - - Problem with Change log of "Fri May 11 07:57:55 UTC 2007" - by Johnny Willemsen for - "Improved aCC version detection check". This seems to be - incorrect as the warning disable of 361 for aCC 3.xx at - line 98 is now being ignored. Suspect spelling mistake of - aC++/ANSI at line 33 - -Sun Jun 3 20:05:36 UTC 2007 Olli Savia - - * ace/Capabilities.cpp: - * apps/Gateway/Gateway/File_Parser.cpp: - * apps/gperf/src/Key_List.cpp: - * examples/Mem_Map/IO-tests/IO_Test.cpp: - Added ACE_OS:: prefix to some plain function calls. - -Fri Jun 1 22:26:39 UTC 2007 Phil Mesnier - - * ace/INET_Addr.h: - * ace/INET_Addr.cpp: - - Added a new helper method, is_ip_equal() that compares only the - IP address of the object and the argument. This should be used - in place of comparing get_ip_address() values particularly when - IPv6 may be used. This new method is weaker than the equality - operator since that also compares port numbers. This new method - was motivated by a need to compare the address of a recieved - dgram to the interface addresses obtained via get_ip_interfaces. - - * bin/tao_other_tests.lst: - Added IPv6 RTEC federation test to list. - -Fri Jun 1 20:51:57 UTC 2007 ciju john - - * include/makeinclude/platform_hpux_aCC.GNU: - Adding on Johnny's behalf: - Disable W3397 with HP aCC 06.13 - -Thu May 31 03:16:53 UTC 2007 Abdullah Sowayan - - * ace/config-macros.h: - - Reverted changes from: - Wed May 30 00:17:35 UTC 2007 Abdullah Sowayan - It introduced around 10 new warnings for ACE/TAO/CIAO under GCC - Compilers. - - ACE_NOTREACHED macro now expands to nothing for Visual Studio - Compilers. This fixes Bugzilla 2948. - -Thu May 31 03:12:50 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Tabs shouldn't be used as per ACE/TAO/CIAO coding guidlines. - Extended fuzz to detect tabs in the source code. - -Wed May 30 00:17:35 UTC 2007 Abdullah Sowayan - - * ace/config-macros.h: - - ACE_NOTREACHED macro now expands to nothing (empty space). We need - to monitor the scoreboard to verify that this doesn't cause problems. - If it doesn't, we will zap ACE_NOTREACHED from the codebase. For - details, check Bigzilla# 2948. - -Tue May 29 10:19:59 UTC 2007 Abdullah Sowayan - - * netsvcs/lib/Client_Logging_Handler.cpp: - - Replaced tabs with spaces. - -Tue May 29 09:20:55 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Instead of ACE_LACKS_LOG2, define _C99, with this define log2 is - available. Reported to WindRiver as TSR560446 - -Tue May 29 08:48:55 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Doxygen changes - - * ace/POSIX_CB_Proactor.cpp: - Store errno in a local variable, and then check this against multiple - values, reduces number of TSS access - -Tue May 29 07:07:55 UTC 2007 Johnny Willemsen - - * ace/FILE.cpp: - Removed first line - - * ace/Log_Msg.cpp: - Declare and initialize a variable in one step - - * ace/Mem_Map.cpp: - Small simplification - - * ace/Semaphore.{h,cpp,inl}: - Made removed_ a real bool - - * ace/Shared_Memory.h: - Changed get_segment_size to return size_t - - * ace/Shared_Memory_MM.{h,cpp,inl}: - * ace/Shared_Memory_SV.{h,cpp,inl}: - Changed get_segment_size and length to size_t - - * ace/SV_Semaphore_Simple.cpp: - Const improvement - - * ace/SV_Shared_Memory.{h,inl}: - Layout changes - -Mon May 28 19:42:14 UTC 2007 Abdullah Sowayan - - * netsvcs/lib/Server_Logging_Handler_T.cpp: - - Replaced tabs with spaces. - - * tests/Upgradable_RW_Test.cpp: - - Addressed the "assignment within conditional expression" warning - on the WinXP_VC71_WarningLevel4 build. - -Mon May 28 19:35:55 UTC 2007 Johnny Willemsen - - * ace/OS_NS_unistd.cpp: - Const and layout change - - * ace/OS_NS_unistd.h: - Layout change - - * ace/ACE.{cpp,inl} (map_errno): - The full switch is only required for windows and moved to an - inline method, on linux it is just a return - -Mon May 28 18:50:55 UTC 2007 Johnny Willemsen - - * tests/Mem_Map_Test.cpp: - Fixed incorrect ACE_ERROR statement - -Mon May 28 18:06:55 UTC 2007 Johnny Willemsen - - * bin/PerlACE/Run_Test.pm: - Added is_vxworks_rtp_test method - - * tests/Mem_Map_Test.cpp: - VxWorks only allows to use mmap with a special shared memory file - -Sun May 27 14:09:54 UTC 2007 Abdullah Sowayan - - * netsvcs/clients/Naming/Client/Client_Test.cpp: - - Addressed the "assignment within conditional expression" warning - on the WinXP_VC71_WarningLevel4 build. - -Fri May 25 19:09:55 UTC 2007 Johnny Willemsen - - * ace/Mem_Map.cpp: - Removed intermediate result variable, has no need anymore - -Fri May 25 18:55:55 UTC 2007 Johnny Willemsen - - * ace/OS_NS_sys_mman.inl (shm_open, shm_unlink): - With VxWorks the filename passed to shm_open and shm_unlink may - only contain a starting /, no other slashes, if multiple slashes - do exist, replace them with _. - -Fri May 25 15:44:13 UTC 2007 Steve Huston - - * ace/config-aix-5.x.h: - * include/makeinclude/platform_aix_ibm.GNU: Changed the AIX shared - library build output from an archived shared object (shr.o in - lib.a) to a dynamic shared library (lib.so). - - * NEWS: Mention the .a->.so change above. - - * ace/OS_NS_Thread.cpp: Formatting fixes to properly line up - bracketed code blocks, making it easier to read. - -Fri May 25 15:39:59 UTC 2007 Steve Huston - - * tests/Bug_2610_Regression_Test.cpp: Rearrange order of #includes so - Visual Age C++ 6 can find what it needs. - -Fri May 25 12:54:55 UTC 2007 Johnny Willemsen - - * ace/Active_Map_Manager.h: - * ace/Priority_Reactor.h: - * ace/Signal.h: - Doxygen changes - -Thu May 24 13:37:55 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - * include/makeinclude/platform_vxworks6.3.GNU: - The override of RM is only needed for windows - -Thu May 24 13:20:55 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Added support for fast and ipo - -Thu May 24 08:16:55 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.5.GNU: - New file upcoming VxWorks 6.5 - -Thu May 24 07:54:55 UTC 2007 Johnny Willemsen - - * ace/Array_Base.h: - * ace/ATM_Addr.h: - * ace/Barrier.h: - * ace/Based_Pointer_Repository.h: - * ace/Configuration.h: - * ace/DLL_Manager.h: - * ace/FILE.h: - * ace/Free_List.h: - * ace/INET_Addr.h: - * ace/IO_SAP.h: - * ace/Local_Memory_Pool.h: - * ace/Log_Record.h: - * ace/Malloc_Base.h: - * ace/Map_Manager.h: - * ace/Mem_Map.h: - * ace/Message_Queue_T.h: - * ace/MMAP_Memory_Pool.h: - * ace/Pagefile_Memory_Pool.h: - * ace/QoS/SOCK_Dgram_Mcast_QoS.h: - * ace/Reactor_Impl.h: - * ace/Registry.h: - * ace/Remote_Tokens.h: - * ace/RW_Process_Mutex.h: - * ace/Sbrk_Memory_Pool.h: - * ace/Service_Gestalt.h: - * ace/Shared_Memory_Pool.h: - * ace/Signal.h: - * ace/SOCK_Dgram.h: - * ace/SPIPE_Connector.h: - * ace/SPIPE_Stream.h: - * ace/Timer_Heap_T.h: - * ace/Timer_Wheel_T.h: - * ace/Unbounded_Set.h: - * ace/WFMO_Reactor.h: - Doxygen improvements - -Thu May 24 05:43:03 UTC 2007 Olli Savia - - * configure.ac: - Added feature test for ACE_LACKS_LOG2. - -Thu May 24 05:13:46 UTC 2007 Abdullah Sowayan - - * ace/Pipe.cpp: - - Wed May 23 22:00:32 UTC 2007 Steve Huston - Due the changelog above, changed the type of index in the for - loop from size_t to int to eliminate compiler warnings about - signed/unsigned comparison. - -Thu May 24 04:58:14 UTC 2007 Abdullah Sowayan - - * ace/Pipe.cpp: - - ACE_Utils::truncate_cast requires including Truncate.h. Added missing - include file. - - Use preincrement instead of postincrement operator. - -Wed May 23 22:00:32 UTC 2007 Steve Huston - - * ace/Pipe.cpp (send, recv): - * ace/SOCK_IO.cpp (send, recv): Use ACE_Utils::truncate_cast properly - to get an int, not a size_t, for the iovec count. Fixes Win64 - compile warnings. - - * ace/Log_Msg_IPC.cpp (log): Truncate the payload length down to an - ACE_CDR::ULong to resolve 64-bit warnings. If we desire logging - payloads larger than 4GB, this will need to be changed. - - * ace/Local_Tokens.inl (ACE_Token_Name::name): Use size_t for a string - length, not int. - - * ace/Filecache.cpp: When doing calculations based on - ACE_Filecache::size_ use its type, ACE_OFF_T, rather than u_long. - Keeps types consistent across platforms. - -Wed May 23 19:42:50 UTC 2007 Gan Deng - - * bin/ciao_tests.lst - - Disabled CIAO tests on single_threaded setting. - -Wed May 23 15:32:55 UTC 2007 Johnny Willemsen - - * ace/Active_Map_Manager_T.h: - * ace/Asynch_IO_Impl.h: - * ace/Bound_Ptr.h: - * ace/Cache_Map_Manager_T.h: - * ace/config-lite.h: - * ace/Dump_T.h: - * ace/File_Lock.h: - * ace/Framework_Component.h: - * ace/Hash_Map_Manager_T.h: - * ace/IOStream_T.h: - * ace/Lock.h: - * ace/Malloc_Allocator.h: - * ace/Map_Manager.h: - * ace/Map_T.h: - * ace/Message_Block.h: - * ace/Message_Queue.h: - * ace/Message_Queue_T.h: - * ace/Name_Request_Reply.h: - * ace/Node.h: - * ace/Null_Condition.h: - * ace/Null_Mutex.h: - * ace/Null_Semaphore.h: - * ace/OS_Errno.h: - * ace/OS_NS_errno.h: - * ace/OS_NS_Thread.h: - * ace/POSIX_Asynch_IO.h: - * ace/Process_Mutex.h: - * ace/Process_Semaphore.h: - * ace/RB_Tree.h: - * ace/Recursive_Thread_Mutex.h: - * ace/Refcounted_Auto_Ptr.h: - * ace/Registry.h: - * ace/Remote_Tokens.h: - * ace/RW_Mutex.h: - * ace/RW_Process_Mutex.h: - * ace/RW_Thread_Mutex.h: - * ace/Semaphore.h: - * ace/Service_Types.h: - * ace/Signal.h: - * ace/SOCK.h: - * ace/SOCK_Acceptor.h: - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/SOCK_SEQPACK_Association.h: - * ace/SString.h: - * ace/Stream.h: - * ace/Task.h: - * ace/Thread.h: - * ace/Thread_Adapter.h: - * ace/Thread_Exit.h: - * ace/Thread_Manager.h: - * ace/Thread_Mutex.h: - * ace/Timer_Hash_T.h: - * ace/Timer_Heap_T.h: - * ace/Timer_Queue_T.h: - * ace/Token_Collection.h: - * ace/Token_Request_Reply.h: - * ace/Unbounded_Set.h: - * ace/WIN32_Asynch_IO.h: - Fixed some doxygen warnings - -Wed May 23 13:19:55 UTC 2007 Johnny Willemsen - - * tests/Process_Manager_Test.cpp: - Added %P to all debug statements so that we can see the process id - in each line - -Wed May 23 13:00:55 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.2: - * ace/config-vxworks6.3: - * ace/config-vxworks6.4: - log2 is only not available in rtp mode with the gnu compiler. - - * ace/config-vxworks6.2: - Removed part for the ghs compiler, that is really not tested and - just a left over of the vxworks 5.5.x support - - * ace/OS_NS_unistd.cpp: - Initialize local variable with 0, layout changes - -Wed May 23 11:31:55 UTC 2007 Johnny Willemsen - - * bin/generate_rel_manpages: - * etc/*.doxygen: - Updated for the upgrade to doxygen 1.5.2-2 - -Wed May 23 09:40:55 UTC 2007 Johnny Willemsen - - * ace/Mem_Map.cpp: - Use shm_open/shm_unlink on VxWorks. This doesn't fix the failing of - the tests using mmap on our targets because they are using a NFS file - system and we have identified several problems with that which have - been reported to WindRiver. - -Wed May 23 07:17:55 UTC 2007 Johnny Willemsen - - * tests/Mem_Map_Test.cpp: - Added filenames to the mmap error messages so that we can see which - mmap failed - -Wed May 23 05:12:04 2007 Ossama Othman - - * ace/OS_NS_math.h (ace_log2_helper): - - Added comments about what the ACE_LACKS_LOG2 case actually - does. - - Store precomputed value of 1/log(2.0) to save an expensive - division and computing log(2.0) in each call. - -Tue May 22 17:41:20 UTC 2007 Olli Savia - - * ace/config-netbsd.h: - Defined ACE_LACKS_LOG2. - -Tue May 22 12:12:55 UTC 2007 Johnny Willemsen - - * tests/Log_Msg_Test.cpp: - Can't unlink on advance with VxWorks 6.4 (at least on NFS) - -Tue May 22 11:10:30 UTC 2007 Olli Savia - - * ace/OS_NS_math.h: - * ace/OS_NS_math.inl: - Added log2() emulation. - - * tests/OS_Test.cpp: - Simplified log2 test. - -Tue May 22 10:03:26 UTC 2007 Olli Savia - - * ace/config-sunos5.10.h: - It seems that Solaris 10 supports log2 so we can undefine - ACE_LACKS_LOG2. - -Tue May 22 09:56:40 UTC 2007 Olli Savia - - * ace/config-sunos5.5.h: - Defined ACE_LACKS_LOG2. - -Tue May 22 06:44:09 UTC 2007 Olli Savia - - * tests/OS_Test.cpp: - Disable log2 test if ACE_LACKS_LOG2 is defined. - -Tue May 22 06:43:55 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.2: - * ace/config-vxworks6.3: - * ace/config-vxworks6.4: - VxWorks also seems to have problems with log2, so disable it for the - moment to get the builds running again - -Tue May 22 06:11:34 UTC 2007 Olli Savia - - * ace/OS_NS_math.h: - * ace/OS_NS_math.inl: - * ace/config-win32-common.h: - Hide ACE_OS::log2 method if platform doesn't support it - natively. This is temporary fix just to keep things going - until we have made decicion what is the best solution here. - -Tue May 22 01:14:31 UTC 2007 Douglas C. Schmidt - - * THANKS: Vikram Karandikar is the 2200th - contributor to ACE+TAO+CIAO!! - -Mon May 21 22:56:26 UTC 2007 Ossama Othman - - * ace/OS_main.h: - - Fixed syntax error on VxWorks. The return value for the - ace_os_main_i() prototype was missing. - -Mon May 21 10:32:02 UTC 2007 Ossama Othman - - * ace/OS_NS_math.h (ace_log2_helper): - - Fixed compile-time errors on Windows introduced by Olli's - improvements described below. VC8 doesn't support log2(). - Generate a quiet NaN value for now. - - * ace/OS_Memory.h (ACE_align_binary, ACE_ptr_align_binary): - - Handle OpenVMS's strange multiple size pointer model. Addresses - build warnings. - -Mon May 21 13:37:55 UTC 2007 Johnny Willemsen - - * docs/Download.html: - Mention also that the full packages do contain the generated files - for GNU autoconf support. Thanks to Vikram Karandikar - for bringing this to our attention. - -Mon May 21 13:04:04 UTC 2007 Olli Savia - - * ace/ACE.h: - * ace/OS_NS_math.h: - * ace/OS_NS_math.inl: - Added support for ACE_OS::log2(double) and improved support for - ACE::log2(u_long). - - * NEWS: - Document changes above. - - * tests/OS_Test.cpp: - Added test for ACE_OS::log2(double). - -Mon May 21 06:07:59 UTC 2007 Olli Savia - - * ace/Sig_Handler.cpp: - - Reverted change: - Fri May 18 10:51:26 UTC 2007 Olli Savia - -Mon May 21 05:57:58 UTC 2007 Olli Savia - - * ace/OS_NS_stdio.h: - * ace/OS_NS_stdio.inl: - Implemented clearerr, fgetc, fputc, getc, putc and ungetc helper - functions a bit smarter way. - -Mon May 21 04:55:55 UTC 2007 Johnny Willemsen - - * ace/SString.h: - Removed ACE_INLINE from operator+ to resolve MingW warnings. - Thanks to Haibin Zhang - for providing this fix - -Sun May 20 20:03:55 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux.GNU: - TAO with GCC 4.0.2 on Linux with -O3 seems to cause runtime issues, - for example the PI ForwardRequest is failing, with -O2 the runtime - problems are gone, so for GCC 4.0.2 we default OCFLAGS to -O2, for - other GCC versions we default to -O3 - -Sun May 20 17:50:55 UTC 2007 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Removed usage of declspec export/import for HP aCC, it only gives - problems and just doesn't work because of several bugs in the - compiler. - - * ace/FILE_Connector.cpp: - Removed first line, no need to specify twice the filename - - * ace/Handle_Ops.cpp: - Layout and const changes - -Sun May 20 17:08:51 UTC 2007 Olli Savia - - * ace/OS_NS_stdio.inl: - Added ACE_STD_NAMESPACE to fgetc and fputc calls. This hopefully - makes BCB6 happy. - -Sun May 20 09:16:26 UTC 2007 Olli Savia - - * ace/OS_NS_stdio.h: - * ace/OS_NS_stdio.inl: - * ace/os_include/os_stdio.h: - Improved support for ACE_OS::fgetc. Added support for ACE_OS::fputc, - ACE_OS::getc, ACE_OS::putc and ACE_OS::ungetc. - - * NEWS: - Document changes above. - - * ace/Read_Buffer.cpp: - Use ACE_OS::getc and ACE_OS::ungetc instead of getc and ungetc. - Thanks to Abdullah Sowayan - for motivating all changes above. This fixes Bugzilla #2919. - -Sat May 19 14:53:44 UTC 2007 Abdullah Sowayan - - * Kokyu/Dispatcher_Task.cpp: - - More fixes to eliminate "staement is uncreachable" warning. - -Fri May 18 22:43:40 UTC 2007 Ossama Othman - - * ace/CDR_Stream.inl (skip_longlong): - - Fixed typo. Call skip_ulonglong(), not skip_ulong(). - -Fri May 18 17:34:57 UTC 2007 Sumant Tambe - - * docs/svn/config: - * docs/svn/svn-prefs.reg: - - Added subversion svn:eol-style and svn:keywords - properties for [Mm]akefiles - -Fri May 18 10:51:26 UTC 2007 Olli Savia - - * ace/Sig_Handler.cpp: - Removed unnecessary LynxOS specific code. - -Fri May 18 06:15:30 UTC 2007 Olli Savia - - * tests/TkReactor_Test.cpp: - Fixed compile error with Tk 8.4. - -Fri May 18 04:38:29 UTC 2007 Abdullah Sowayan - - * ace/OS_Memory.h: - - Thu May 17 22:35:37 UTC 2007 Ossama Othman - For OS_Memory.h causes ~800 compile-time warnings for the - VxWorks6.4_PPC603_Diab_Release. Trying to eliminate the - warnings. Hopefully, this will do the trick. - -Thu May 18 05:20:17 UTC 2007 Ossama Othman - - * ace/OS_main.h (main): - - Removed newly added ACE_MAIN forward declaration for the VxWorks - case. The preprocessed code apparently has a syntax error. To - be revisited as time permits. - -Fri May 18 03:46:15 UTC 2007 Abdullah Sowayan - - * ASNMP/agent/snmp_agent.cpp: - * Kokyu/DSRT_Sched_Queue_T.cpp: - - More fixes to eliminate "staement is uncreachable" warning. - - * ASNMP/agent/snmp_agent.cpp: - - Replaced tabs with spaces. - -Fri May 18 02:12:34 UTC 2007 Abdullah Sowayan - - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/OS/Process/process.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Web_Crawler/Mem_Map_Stream.cpp: - - It makes no sense to have code after a return statement - (such as ACE_ERROR_RETURN). It causes some builds to have - "statement is unreachable" warning. - - * examples/Connection/blocking/SPIPE-acceptor.cpp: - - Replaced tabs with spaces. - -Thu May 17 22:35:37 UTC 2007 Ossama Othman - - * ace/CDR_Stream.inl (skip_char, skip_boolean, skip_short): - (skip_long, skip_float, skip_double): - - Further simplified these methods by implementing them in terms - of their same size skip_octet(), skip_u{short,long,longlong}() - counterparts. - -Thu May 17 22:13:32 UTC 2007 Ossama Othman - - * ace/Acceptor.cpp: - - Silence Coverity error related to lack of a return value check - by explicitly casting the return value to void. We don't care - about the return value in this case. - - * ace/CDR_Stream.inl (write_octet, write_ushort, write_ulong): - (write_ulonglong, write_longdouble): - (read_ushort, read_ulong, read_ulonglong, read_longdouble): - (skip_ushort, skip_ulong, skip_ulonglong, skip_longdouble): - - Removed unnecessary assignment to a void* and reinterpret_cast<> - back to original type. - - (write_char, write_short, write_long): - - Simplified code by dropping assignment to void* and - reinterpret_cast<> to unsigned type counterpart in favor of a - direct static_cast<> to the unsigned type. - - (skip_char, skip_short, skip_long, skip_longlong, skip_float): - (skip_double): - - Replaced temporary variable and assignment to void* with - unsigned integer CDR type of same size since the value read - from the CDR stream is ignored. Simplifies the code. - - * ace/CORBA_macros.h (ACE_NEW_THROW_EX): - - Don't bother setting errno to ENOMEM if allocation fails since - the caller should be handling the exception thrown upon failure, - not checking errno. - - * ace/Configuration.cpp (get_binary_value): - - Improved exception safety. - - * ace/OS_Memory.h (ACE_align_binary, ACE_ptr_align_binary): - - Re-implemented as inlined functions instead of macros. The - new code is much easier to read. - - Corrected pointer-integer type. s/ptrdiff_t/uintptr_t/g. - - * ace/OS_NS_Thread.cpp (TSS_Cleanup_Instance): - - Replaced use of "NULL" constant with zero to comply with ACE - coding guidelines. - - * ace/Select_Reactor_T.cpp: - - Replaced boolean value assignments with true and false instead - of 1 and 0, respectively. - - Removed redundant zero pointer checks prior to operator delete() - calls. - - Various const and boolean correctness improvements. - - (handle_error): - - Assign errno to a temporary to avoid multiple TSS accesses. - - * ace/config-g++-common.h: - - Define ACE_HAS_NEW_NOTHROW for g++ >= 3.3. Older versions of - g++ had buggy operator new(nothrow)() support. - - * ace/config-irix6.x-common.h: - - IRIX lacks the suseconds_t typedef. - - * ace/config-sunos5.8.h (ACE_HAS_X86_STAT_MACROS): - - No need to define this preprocessor symbol for Solaris 8 and - onwards. - - * ace/config-win32-common.h (ACE_HAS_CUSTOM_EXPORT_MACROS): - - Define the value to 1 instead of just defining without a value. - Some preprocessor conditional tests depend on a value being - set. - - From Russell Mora: - * ace/OS_main.h: - - Fixed ACE main macro - on Tru64 this was complaining because: - - int - main (int argc, char *argv[]) - - Was becoming: - - int - namespace v4 - { - ace_os_main_i (int, char *[]) - /* ... */ - - I.e. it didn't like the 'int' appearing before the namespace. I - added a forward declaration of main() to gobble this up - the - code now expands to: - - int - main (int, char *[]); - namespace v4 - { - int ace_os_main_i (int, char *[]) - /* ... */ - -Thu May 17 19:29:30 UTC 2007 Jeff Parsons - - * contrib/minizip/minizip.mpc: - - Added vc8_warnings to the base project list, to avoid the - warning caused by vc8-deprecated use of 'fopen'. - -Thu May 17 16:35:40 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/config/automake.features: - - Setting qos=1 was not correct. It causes issues when generating - TAO related Makefile.am's. - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Fix the following issues: - - 1) Relative paths for ACE related libraries when processing - TAO.mwc - 2) Fixed includedir settings for - $TAO_ROOT/orbsvcs/orbsvcs/Makefile.am - 3) Added custom rules in $TAO_ROOT/Makefile.am - -Thu May 17 14:04:51 UTC 2007 Chad Elliott - - * ACE.mwc: - - Provide an exclude for automake only of build and Kokyu. Also, - only exclude TAO for all project types. The other directories - previously listed do not need to be explicitly excluded. - - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - - Removed references to config-win32-visualage.h. - - * apps/gperf/tests/gperf_test.mpb: - - Mapped the GPERF command setting to 'gperf_cmd' and then set - 'gperf_cmd' to ../src/gperf in a specific section for automake. - - * bin/MakeProjectCreator/config/ace_zzip.mpb: - - Provide a new base project to deal with the strangeness of - automake. It inherits from zzip (which in turn inherits from - zlib). For automake only, it removes everything added by those - base projects and sets flags specific for automake. - - * bin/MakeProjectCreator/config/acexml.mpb: - - Use ace_zzip instead of zzip and zlib. - - * bin/MakeProjectCreator/config/automake.features: - - Set qos to 1 so that the configure script can determine if QoS is - built. - - * netsvcs/servers/servers.mpc: - - To help the automake generator, add ace_for_tao to avoids. - -Wed May 16 06:46:55 UTC 2007 Johnny Willemsen - - * tests/run_test.lst: - Don't run 2912 when ACE_FOR_TAO is enabled - -Wed May 16 18:41:11 UTC 2007 Chad Elliott - - * tests/Unload_libACE.cpp: - - Added support for the Mac library extension. - -Wed May 16 16:14:21 UTC 2007 Steve Huston - - * ace/INET_Addr.cpp (addr_to_string): Adjust sprintf() format string to - use %ls for strings when ACE_USES_WCHAR and not on Windows. Avoids - chopping off all but the first char of the host address. - - * tests/SOCK_Dgram_Test.cpp: When 0-terminating the received data, - use the string-length index, not the byte-count index. The latter - overwrites other things on the stack. - -Wed May 16 07:30:55 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Use -z now as part of the linker flags so that symbols are resolved - at link time. Thanks to JT for sorting this out, this fixes bugzilla - 2710, as side effect it also fixes 2473. - -Tue May 15 18:43:55 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - VxWorks only supports PTHREAD_SCOPE_SYSTEM - -Tue May 15 12:46:18 UTC 2007 Vadym Ridosh - - * bin/tao_other_tests.lst: - Added IPv6 test to Bug_2377_Regression test. - -Tue May 15 11:36:07 UTC 2007 Vadym Ridosh - - * bin/tao_other_tests.lst: - Added the Bug_2925_Regression test. - -Mon May 14 11:11:32 UTC 2007 Olli Savia - - * ace/config-lynxos.h: - - Reverted change: - - Fri May 11 10:20:00 UTC 2007 Simon Massey - - * ace/config-lynxos.h: - ACE_LACKS_PRAGMA_ONCE - - Setting of ACE_LACKS_PRAGMA_ONCE was already fixed by - - Thu May 10 15:20:52 UTC 2007 Steve Huston - - * ace/ace_wchar.h: Add #include "ace/config-macros.h" so the proper - setting of ACE_LACKS_PRAGMA_ONCE is known before it's needed. - -Mon May 14 03:11:13 UTC 2007 Abdullah Sowayan - - * tests/Reactor_Remove_Resume_Test.cpp: - - Added a missing include "ace/Auto_Ptr.h" - ace/Auto_Ptr.h introduces auto_ptr into the global namespace, - don't prefix reference to std:: to auto_ptr, that causes - build failures on some platforms. - -Mon May 14 02:59:28 UTC 2007 Abdullah Sowayan - - * tests/Reactor_Remove_Resume_Test.cpp: - - Fixed another compile-time error. An identifier's name was misspelled, - causing a compile-time error in some builds. - -Sun May 13 11:55:32 UTC 2007 Adam Mitz - - * bin/generate_doxygen.pl: - - Fixed a logic error in the script when $DDS_ROOT is undefined. - -Sun May 13 09:29:55 UTC 2007 Johnny Willemsen - - * tests/run_test.lst: - Don't run Dirent_Test with VxWorks rtp, it hangs the target - -Sat May 12 12:03:44 UTC 2007 Abdullah Sowayan - - * tests/Reactor_Remove_Resume_Test.cpp: - - Fixed a compile-time error. Removed an extra ";" from the end of - function definitions. - -Sat May 12 08:37:01 UTC 2007 Ossama Othman - - * tests/Reactor_Remove_Resume_Test.cpp (handle_close): - - Fixed unused argument warning. - -Fri May 11 21:18:45 UTC 2007 Steve Huston - - * examples/APG/Reactor/HAStatus.cpp (handle_output): Do the 'while' - loop as long as dequeue() returns >= 0, not == 0. Thanks to - Jules d'Entremont for reporting this. - - * THANKS: Added Jules d'Entremont. - - * tests/Makefile.am: Added Reactor_Remove_Resume_Test. - -Fri May 11 21:49:01 UTC 2007 Ossama Othman - - * ace/TP_Reactor.cpp (dispatch_i): - - Return the number of event handlers dispatched (typically 1). - Previously zero was returned regardless of whether or not - socket/IO event handlers were dispatched. - - (post_process_socket_event): - - Only remove or resume the event handler used during the upcall. - A different event handler may have been registered during the - upcall if the handle was closed and then reopened, for example. - Make sure we're removing and/or resuming the event handler - used during the upcall. - - * tests/Reactor_Remove_Resume_Test.cpp: - - New test that verifies reactors only remove and/or resume the - event handler used during the upcall. It is generally only - relevant for thread pool based reactors. - - * tests/run_test.lst: - * tests/tests.mpc: - - Added new Reactor_Remove_Resume_Test. - -Fri May 11 21:09:18 UTC 2007 Steve Huston - - * tests/Bug_2912_Regression_Test.cpp: Mask off the RT signals so the - test doesn't get immediately killed. - -Fri May 11 20:37:07 UTC 2007 Steve Huston - - * docs/ACE-configuration.txt: Removed this file. The information it - contained has migrated to ACE-INSTALL.html. - -Fri May 11 19:16:55 UTC 2007 Johnny Willemsen - - * ace/Global_Macros.h: - Removed commented out code - -Fri May 11 18:35:55 UTC 2007 Johnny Willemsen - - * ace/OS_NS_stdio.inl: - * ace/config-WinCE.h: - Introduced ACE_LACKS_PERROR and set that in the wince file. Also - refactored several methods that check for ACE_LACKS_FILELOCKS to - first check this define, then ACE_WIN32, that way we don't need an - explicit check for WinCE - -Fri May 11 18:19:08 UTC 2007 Ciju John - - * bin/tao_orb_tests.lst: - Disable test run if messaging not built. - - * tests/run_test.lst: - Create a few new flags to more granularily control automated - test runs. - -Fri May 11 17:53:46 UTC 2007 Adam Mitz - - * bin/generate_doxygen.pl: - - This script will now use $TAO_ROOT and $CIAO_ROOT to locate TAO and - CIAO. Also, DDS support has been added, config.h will only be - written if it doesn't exist, and the -dot_path argument is ignored -- - the graphviz binary 'dot' is assumed to be on the PATH. - -Fri May 11 16:12:55 UTC 2007 Johnny Willemsen - - * examples/Reactor/Multicast/Log_Wrapper.cpp: - Use ACE_OS::perror instead of perror directly to resolve compile - errors with WinCE - -Fri May 11 15:25:55 UTC 2007 Johnny Willemsen - - * tests/Bug_2609_Regression.cpp: - * tests/Bug_2610_Regression.cpp: - Renamed TRACE to TEST_TRACE to resolve msvc warnings - -Fri May 11 15:06:55 UTC 2007 Johnny Willemsen - - * tests/run_test.lst: - Added !NO_NETWORK to some tests that we know don't work when ACE - has been build without network support - -Fri May 11 14:45:43 UTC 2007 Steve Huston - - * tests/run_test.lst: Disable Bug_2368_Regression_Test. Per agreement - with Johnny, the Bugzilla entry is now labeled an enhancement and - this test is disabled until the necessary enhancement is made. For - more info, please see: - http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2368 - -Fri May 11 10:20:00 UTC 2007 Simon Massey - - * ace/config-lynxos.h: - ACE_LACKS_PRAGMA_ONCE - -Fri May 11 08:22:55 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.2.h: - Improved VxWorks 6.2 kernel support - -Fri May 11 08:06:55 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.3.GNU: - Small improvements - -Fri May 11 07:57:55 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_hpux_aCC.GNU: - Improved aCC version detection check - -Thu May 10 16:17:55 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_hpux_aCC.GNU: - Disable W3390 with HP aCC 06.13 - - * include/makeinclude/platform_rtems.x_g++.GNU: - When HOST_ROOT is set then set the dependent variables - -Thu May 10 15:20:52 UTC 2007 Steve Huston - - * ace/ace_wchar.h: Add #include "ace/config-macros.h" so the proper - setting of ACE_LACKS_PRAGMA_ONCE is known before it's needed. - -Thu May 10 15:17:55 UTC 2007 Johnny Willemsen - - * examples/Reactor/Dgram/CODgram.cpp: - * examples/Reactor/Dgram/Dgram.cpp: - Fixed compile errors with WinCE - -Wed May 9 18:59:26 UTC 2007 James H. Hill - - * docs/ace_guidelines.vsmacros: - - Improved the macros such that it will convert tabs to 2 spaces - for all files excepts those on the exception list. Currently, - only MPC template files are on this list. - -Wed May 9 18:50:29 UTC 2007 James H. Hill - - * docs/ace_guidelines.vsmacros: - - By default, the ace_guideline macros does not convert tabs to - spaces. Instead, this has to be set under Tools | Options... - -Tue May 8 20:50:34 UTC 2007 Steve Huston - - * ace/Malloc_T.cpp (ACE_Dynamic_Cached_Allocator): - Reverted this change: - Tue May 8 07:51:55 UTC 2007 Johnny Willemsen - It broke Hash_Map_Manager_Test which checks for a failed allocation - when using a too-small pool. - -Tue May 8 20:20:22 UTC 2007 Steve Huston - - * ace/Message_Block.cpp (copy): If there's insufficient space to copy - data into the block, set errno to ENOSPC before returning -1. - Thanks to Duane Beck for this suggestion. - - * THANKS: Added Duane Beck to the Hall of Fame. - - * tests/Message_Block_Test.cpp: Added case to check for block copy of - a too-long data area. - -Tue May 8 07:51:55 UTC 2007 Johnny Willemsen - - * ace/Malloc_T.cpp (ACE_Dynamic_Cached_Allocator): - Fixed use of chunk_size, thanks to Leo Lei - for reporting this - -Mon May 7 22:18:55 UTC 2007 Steve Huston - - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - * ace/config-win32-msvc-9.h: - Added ACE_HAS_INTRINSIC_BYTESWAP for all except WinCE 4. - For config-win32-msvc-9.h, comment the #if block around - ACE_HAS_INTRINSIC_INTERLOCKED; if a build with this compiler and - WinCE shows it needs to be uncommented (as for previous MSVC - versions) it can be changed then. - - * ace/CDR_Base.inl: Replace complicated #if around the byteswap - usage with #if defined (ACE_HAS_INTRINSIC_BYTESWAP). - - This fixes Bugzilla #2922. Thanks to Xu Liang for reporting it. - - * THANKS: Added Xu Liang. - -Mon May 7 11:48:46 UTC 2007 Chad Elliott - - * bin/tao_orb_tests.lst: - - Added the new IORManipulation/filter test. - -Sat May 5 05:34:37 UTC 2007 Johnny Willemsen - - * ace/Svc_Handler.cpp: - Reverted last change again, with 2610 in mind this could maybe - result in leaks with TAO and I have no time to sort that out - so take the most safe solution - - * tests/run_test.lst: - Removed 2609 and 2610 for the moment - -Sat May 5 05:00:37 UTC 2007 Johnny Willemsen - - Reverted the change below, it breaks TAO, maybe TAO has coded against - this issue in acceptor or the test has wrong assumptions, not clear - at this moment, so just revert the change - - Fri May 4 18:46:37 UTC 2007 Johnny Willemsen - * ace/Acceptor.cpp: - -Fri May 4 18:46:37 UTC 2007 Johnny Willemsen - - * tests/run_test.lst: - * tests/Bug_2610_Regression_Test.cpp: - * ace/Acceptor.cpp: - * tests/tests.mpc: - Fixed bug 2610, take into account reference counted handlers. - Thanks to Milan Cvetkovic - for reporting this, providing the patch and the regression test - -Fri May 4 16:29:48 UTC 2007 Adam Mitz - - * tests/run_test.pl: - - Changed log output from "test/" to "tests/" so it's consistent. - -Fri May 4 12:39:37 UTC 2007 Johnny Willemsen - - * tests/Env_Value_Test.cpp: - Reverted accidential commit - -Fri May 4 07:50:37 UTC 2007 Johnny Willemsen - - * ace/Svc_Handler.cpp: - Applied new patch to fix bugzilla 2609. Thanks to Milan Cvetkovic - for this new patch - - * tests/run_test.lst: - * tests/tests.mpc: - Don't build and run Bug_2609_Regression when ACE_FOR_TAO is enabled - -Thu May 3 09:54:37 UTC 2007 Johnny Willemsen - - Reverted the change below, it breaks the gcc builds - - Thu May 3 08:37:37 UTC 2007 Johnny Willemsen - * ace/Svc_Handler.cpp: - -Thu May 3 08:37:37 UTC 2007 Johnny Willemsen - - * tests/run_test.lst: - * tests/Bug_2609_Regression_Test.cpp: - * ace/Svc_Handler.cpp: - * tests/tests.mpc: - Fixed bug 2609, take into account reference counted svc handlers. - Thanks to Milan Cvetkovic - for reporting this, providing the patch and the regression test - - * ace/config-hpux-11.00.h: - dllexport with template specializations doesn't work for HP aCC - 3.x which runs on PARISC. Reported this to HP and for the moment - disable dllexport usage on PARISC totally - - * ace/Dev_Poll_Reactor.cpp: - * ace/Event_Handler.cpp: - * ace/Timer_Queue_T.cpp: - * ace/WFMO_Reactor.cpp: - Use bool when possible - -Wed May 2 18:43:37 UTC 2007 Johnny Willemsen - - * docs/bczar/bczar.html: - Updated to mention the update of release.xml in the autobuild archive - for the integrated build/test scoreboard - -Wed May 2 16:04:21 UTC 2007 Chad Elliott - - * bin/depgen.pl: - - Fixed a bug where the Depgen modules wouldn't be found unless - MPC_ROOT was set. - - * docs/bczar/bczar.html: - - Changed a couple of < > to < >. - -Wed May 2 14:39:59 UTC 2007 Douglas C. Schmidt - - * ace/Dev_Poll_Reactor.cpp: Always remove the notification byte - from the pipe, avoiding an infinite loop. Thanks to Eider - Oliveira for this fix. - -Wed May 2 14:12:37 UTC 2007 Johnny Willemsen - - * examples/APG/Naming/Naming_Context.h: - Fixed memory leak, thanks to Kanghee Yoon - for reporting this. - -Wed May 2 12:49:37 UTC 2007 Johnny Willemsen - - * ace/ACE.cpp: - * ace/ARGV.cpp: - * ace/Basic_Types.cpp: - * ace/CDR_Base.cpp: - * ace/Codecs.cpp: - * ace/Configuration.cpp: - * ace/Configuration_Import_Export.cpp: - * ace/OS_NS_string.cpp: - Use prefix increment instead of postfix - - * ace/ace_wchar.cpp: - * ace/ace_wchar.h: - * ace/ace_wchar.inl: - Added support for integration with iconv, this can be enabled - by defining ACE_HAS_ICONV. This fixes bugzilla 2453, thanks to - Olivier Brunet for reporting this. - - * ace/Makefile.am: - * ace/ace.mpc: - Added new ace_wchar.cpp: - - * ace/config-hpux-11.00.h: - HP aCC 3.55 and newer do support declspec export/import - - * ace/DLL.cpp (operator=): - Check for self assignment - - * ace/Log_Msg_Backend.h: - Doxygen improvement - - * ace/NT_Service.{h,cpp} (insert): - Added DWORD argument to pass in desired access. Fixes bugzilla - 475. Thanks to Craig Perras - for reporting this. - - * ace/OS_NS_Thread.inl: - WaitForSingleObject returns a DWORD, updated type of local variable - - * ace/Select_Reactor_Base.cpp: - Fixed not reachable code warning from the HP compiler - - * ace/Svc_Handler.{h,cpp}: - Changed closing_ to a real bool - -Mon Apr 30 08:59:37 CDT 2007 Chad Elliott - - * ACE version 5.5.8 released. - -Mon Apr 30 12:24:05 UTC 2007 Chad Elliott - - * NEWS: - - Added user visible changes for 5.5.8 based on ChangeLog entries. - -Mon Apr 30 11:36:51 UTC 2007 Chad Elliott - - * tests/Bug_2912_Regression_Test.cpp: - - Fixed a wide character build issue. - -Mon Apr 30 04:03:16 UTC 2007 William R. Otte - - * bin/make_release.py - - Fixed problem causing TAO/CIAO to be included in ACE and/or - ACE+TAO only packages. - -Fri Apr 27 13:37:13 UTC 2007 Dale Wilson - - * ace/Object_Manager.cpp: - Replace ACE_NEW_RETURN with simple C++ new because - placement new is incompatable with ACE_NEW_RETURN macro. - -Fri Apr 27 12:33:31 UTC 2007 Chad Elliott - - * tests/Bug_2912_Regression_Test.cpp: - - Don't compile the bulk of the code if the proactor is not - supported. - -Fri Apr 27 08:17:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - Exclude several tests with CORBA/e micro enabled - -Thu Apr 26 12:19:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Exclude several tests with CORBA/e micro enabled - -Thu Apr 26 13:23:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2909_Regression - -Thu Apr 26 12:19:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Exclude several tests with CORBA/e micro enabled - -Thu Apr 26 10:53:12 UTC 2007 Johnny Willemsen - - * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_read): - Also added ERR_clear_error before doing a SSL_write, belongs to - bugzilla 2912 - -Wed Apr 25 13:11:00 UTC 2007 Simon Massey - - * ace/config-lynxos.h: - Also needs ACE_HAS_SIGTIMEDWAIT. - -Wed Apr 25 11:56:06 UTC 2007 Chad Elliott - - * docs/bczar/bczar.html: - - Modified the step to copy the packages to the previous_versions - directory to be similar to what it previously was (before I - mistakenly changed it) and updated it to include the use of a - script to avoid manually running multiple commands. - -Wed Apr 25 09:44:12 UTC 2007 Johnny Willemsen - - * bin/tao_other_tests.lst: - Added Bug_2908_Regression - -Wed Apr 25 08:45:00 UTC 2007 Simon Massey - - * ace/config-lynxos.h: - LynxOS4.2 does not seem to have thread process scoping. - -Wed Apr 25 08:16:12 UTC 2007 Johnny Willemsen - - * tests/Bug_2912_Regression_Test.cpp: - New regression for bug 2912. Thanks to Paul Daugherty - for reporting this issue and delivering - this regression test - - * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_read): - Added ERR_clear_error before doing a SSL_read - - * tests/run_test.lst: - * tests/tests.mpc: - Added Bug_2912_Regression - -Wed Apr 25 07:09:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2356_Regression - -Wed Apr 25 07:00:12 UTC 2007 Johnny Willemsen - - * ace/Global_Macros.h: - Also with msvc9 expand ACE_THROW_SPEC to throw (...) - - * ace/CDR_Stream.cpp (clone_from): - Also copy the char and wchar translators - - * ace/UUID.cpp: - Layout change - -Tue Apr 24 13:37:42 UTC 2007 Steve Huston - - * tests/SOCK_Dgram_Test.cpp: Add missing #include "ace/OS_NS_string.h" - -Tue Apr 24 11:46:12 UTC 2007 Johnny Willemsen - - * ace/Sock_Connect.cpp (get_ip_interfaces_aix): - Fixed resource leak. Thanks to Werner Buchert - for reporting this - -Tue Apr 24 10:20:58 UTC 2007 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - Fixed run-time linking error with GCC 3.2.2. - -Tue Apr 24 09:10:12 UTC 2007 Johnny Willemsen - - * tests/run_test.lst: - Enabled Dirent test again for VxWorks RTP - - * ace/Addr.cpp: - Initialise members in the constructor directly instead of - calling a seperate method - - * ace/Arg_Shifter.cpp: - Fixed typo in comment - -Mon Apr 23 15:05:31 UTC 2007 Steve Huston - - * tests/SOCK_Dgram_Test.cpp: Added additional tests to verify data - and peer addresses from recv(). Also fixed errors in use of %p. - -Mon Apr 23 13:39:12 UTC 2007 Johnny Willemsen - - * ace/CDR_Base.inl: - Fixed copy/paste bug in swap_4 and swap_8 - -Mon Apr 23 13:09:12 UTC 2007 Johnny Willemsen - - * ace/Task.cpp: - Fixed compile error with msvc9 beta - -Mon Apr 23 12:19:12 UTC 2007 Johnny Willemsen - - * ace/config-win32-msvc.h: - * ace/config-win32-msvc-9.h: - Initial files for msvc9. Microsoft released a public beta called - Orcas - -Fri Apr 20 18:20:12 UTC 2007 Johnny Willemsen - - * ace/config-win32-msvc-7.h: - msvc7 doesn't has intrin.h - -Fri Apr 20 14:31:26 UTC 2007 Adam Mitz - - * bin/MakeProjectCreator/config/htbp.mpb: - - Added a 'requires' for ace_uuid. - - * examples/APG/Naming/naming.mpc: - - Added a 'requires' for ace_other (ACE naming services are within the - ace_other MPC feature) to each project. - - * examples/Naming/Naming.mpc: - - Added a 'requires' for ace_other to each project. - - * performance-tests/Misc/Misc.mpc: - - Added a 'requires' for ace_other to the Misc_test_naming project. - - * bin/tao_orb_tests.lst: - - Only run Bug_2768_Regression when CORBA messaging is enabled. - -Fri Apr 20 12:10:12 UTC 2007 Johnny Willemsen - - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - * ace/config-win32-msvc.h: - Intel C++ 9.0 doesn't have the interlocked functions - -Fri Apr 20 11:44:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_1330_Regression - -Fri Apr 20 11:35:12 UTC 2007 Johnny Willemsen - - * ace/CDR_Base.inl: - Added ACE_HAS_BSWAP_16, ACE_HAS_BSWAP_32, and ACE_HAS_BSWAP_64. - When one of the defines is set, we include os_byteswap.h and - then use bswap_16, bswap_32, and bswap_64. - - * ace/config-linux-common.h: - Added ACE_HAS_BYTESWAP_H, ACE_HAS_BSWAP_16, ACE_HAS_BSWAP_32, and - ACE_HAS_BSWAP_64. This fixes bugzilla bug 2901. - -Fri Apr 20 08:29:12 UTC 2007 Johnny Willemsen - - * bin/PerlACE/ProcessVX_Unix.pm: - Updated to also run automatic regression tests with VxWorks 6.x - in kernel mode. - -Thu Apr 19 18:24:12 UTC 2007 Johnny Willemsen - - * ace/os_include/os_byteswap.h: - New wrapper file for byteswap.h - -Thu Apr 19 16:47:46 UTC 2007 Adam Mitz - - * bin/tao_orb_tests.lst: - - Use the -boost option for TAO/tests/Sequence_Unit_Tests when Config - BOOST is present. - -Thu Apr 19 14:25:39 UTC 2007 Douglas C. Schmidt - - * ace/OS_NS_time.h (ace_timezone): Changed ACE_HAS_WIN32 to - ACE_WIN32 to fix a bug on Windows. Thanks to Jan Kalin for this fix. - -Thu Apr 19 14:10:18 UTC 2007 Steve Huston - - * ace/config-doxygen.h: Turn on ACE_Dev_Poll_Reactor doc generation - using ACE_HAS_DEV_POLL instead of ACE_HAS_EVENT_POLL. The latter - will be automatatically turned off on systems w/o epoll and the - docs get lost. - -Thu Apr 19 13:59:06 UTC 2007 Chad Elliott - - * ace/Obstack_T.cpp: - - Because the ACE_ALLOCATOR macro contains a return, head_ and curr_ - could technically be used without being initialized (however - unlikely). Initialize them to zero in the initializer list. - -Thu Apr 19 13:29:12 UTC 2007 Johnny Willemsen - - * ace/config-win32-msvc.h: - Don't set ACE_HAS_INTRINSIC_INTERLOCKED on WinCE - -Thu Apr 19 11:01:49 UTC 2007 Olli Savia - - * ace/SSL/SSL_SOCK_Stream.cpp: - Added static_cast to silence compiler warning on LynxOS. - - * include/makeinclude/platform_lynxos.GNU: - Added PLATFORM_X11_LIBS to PLATFORM_TK_LIBS to fix - linking error on LynxOS. - -Thu Apr 19 05:30:12 UTC 2007 Johnny Willemsen - - * ace/os_include/os_intrin.h: - Don't declare the _Interlocked methods with Intel C++ 9.0 - -Wed Apr 18 14:11:28 UTC 2007 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - LynxOS's mkdir needs -f option to prevent it returning - error if directory already exists. - -Wed Apr 18 12:11:12 UTC 2007 Johnny Willemsen - - * bin/MakeProjectCreator/config/ace_foxreactor.mpb: - Added new base project - -Wed Apr 18 11:51:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - The DIOP test can run in a static build - -Wed Apr 18 11:01:56 UTC 2007 Martin Corino - - * include/makeinclude/rules.lib.GNU: - Change to enable building static libs on OpenVMS. - -Wed Apr 18 10:52:00 UTC 2007 Ian Roberts - - * bin/tao_orb_tests.lst: - Added Bug_2791_Regression. - -Wed Apr 18 10:42:39 UTC 2007 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - Updated TCL/TK settings. - - * tests/TkReactor_Test.cpp: - Fixed compile error on LynxOS. - -Wed Apr 18 10:17:12 UTC 2007 Johnny Willemsen - - * bin/MakeProjectCreator/config/ace_fox.mpb: - * bin/MakeProjectCreator/config/global.features: - * ace/ace_foxreactor.mpc: - * ace/FoxReactor/*: - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/wrapper_macros.GNU: - Added FoxReactor to integrate with the fox toolkit. Thanks to - Dmitriy Nikitinskiy for providing these - files. This fixes bugzilla 1400 - -Wed Apr 18 09:45:12 UTC 2007 Johnny Willemsen - - * bin/MakeProjectCreator/config/vcl.mpb: - Updated bds to bds4 - -Wed Apr 18 09:30:00 UTC 2007 Simon Massey - - * ace/SSL/SSL_Asynch_Stream.cpp: - * ace/SSL/SSL_Context.cpp: - - Change variable name and comments so that compiler warnings - don't trigger error indication on the scoreboard. - -Wed Apr 18 09:29:12 UTC 2007 Johnny Willemsen - - * ace/QtReactor/QtReactor.{h,cpp}: - Applied changes to work with Qt4. Thanks to Roland Sun - for delivering the patches. - This is part of bugzilla 2870. Also thanks to - Ian Zagorskih for his report - in bugzilla 2413. - -Wed Apr 18 09:06:12 UTC 2007 Johnny Willemsen - - * ace/config-win32-msvc-8.h: - WinCE doesn't have intrin.h - -Tue Apr 17 22:11:11 UTC 2007 Steve Huston - - * netsvcs/lib/Server_Logging_Handler_T.cpp (parse_args): When calling - ACE_LOG_MSG->open(), get the existing logging flags and pass them - to open() in order to preserve any previously set flags, such as - SYSLOG, etc. Thanks to Hubert Talbot for this fix. - -Tue Apr 17 14:36:00 UTC 2007 Chad Elliott - - * bin/tao_orb_tests.lst: - - Neither 2804 nor 2844 will run in a minimum corba or corba e - build. - -Tue Apr 17 14:25:35 UTC 2007 Adam Mitz - - * bin/generate_compile_stats.sh: - - Don't error out if the destination directory doesn't exist yet, the - script will attempt to create it before using it. - -Tue Apr 17 12:11:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2768_Regression - -Tue Apr 17 11:32:12 UTC 2007 Johnny Willemsen - - * ace/config-win32-msvc-8.h: - * ace/config-win32-msvc.h: - Only msvc8 has intrin.h - -Tue Apr 17 10:03:12 UTC 2007 Johnny Willemsen - - * ace/Atomic_Op.inl: - Added missing pragma intrinsic - -Tue Apr 17 09:55:12 UTC 2007 Johnny Willemsen - - * ace/config-icc-common.h: - Make use of the Intel C++ intrinsic interlocked functions on - IA64 Linux. Intel support has promised Intel will deliver these - functions in the near feature also for IA32/EM64T. - -Tue Apr 17 09:41:12 UTC 2007 Johnny Willemsen - - * ace/os_include/os_intrin.h: - Added ACE_HAS_IA64INTRIN_H and ACE_HAS_IA32INTRIN_H for supporting - the Intel C++ intrinsic header files - -Tue Apr 17 09:13:12 UTC 2007 Johnny Willemsen - - * ace/os_include/os_intrin.h: - New wrapper file for intrin.h - - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - * ace/config-win32-msvc.h: - Added ACE_HAS_INTRIN_H, moved some generic defines to the msvc.h - file - - * ace/Atomic_Op.{h,inl}: - Use the intrinsic Interlocked functions to increase the performance - on Windows with the Microsoft compiler. See also - http://msdn2.microsoft.com/en-us/library/f24ya7ct(VS.71).aspx. - This fixes bugzilla bug 2891, thanks to Aleksandar Vukajlovic - for suggesting these changes. - -Tue Apr 17 08:12:12 UTC 2007 Johnny Willemsen - - * docs/run_test.txt: - Corrected variable that is used for VxWorks target - - * docs/ACE-FMM.html: - Fixed html tag - -Tue Apr 17 06:51:12 UTC 2007 Johnny Willemsen - - * tests/CDR_File_Test.cpp: - * tests/Log_Msg_Test.cpp: - VxWorks 6.4 fixes the problem that we can't unlink in advance - on a NFS share - - * tests/Svc_Handler_Test.cpp: - Removed define for unlink in advance, not used - -Mon Apr 16 23:00:16 UTC 2007 Steve Huston - - * ace/Timeprobe.h: Add #include "ace/config-lite.h" to pick up the - config settings needed to do the right thing. - - * tests/Message_Block_Test.cpp: The text queued in the test's blocks - are ACE_TCHAR, so don't try to change them into ACE_TCHAR for - passing to ACE_OS::atoi() - just cast the char* to ACE_TCHAR*. - Also, replaced ACE_ASSERTs with if/ACE_ERROR to allow the stuff to - run on Release builds and not wipe out single-process systems on - errors. - -Mon Apr 16 17:56:42 UTC 2007 Adam Mitz - - * bin/generate_compile_stats.sh: - - Fixed usage statement to match actual argument parsing. - Assume gcc is on the PATH instead of hard-coding /usr/bin/gcc. - -Mon Apr 16 17:18:32 UTC 2007 Adam Mitz - - * docs/svn/config: - * docs/svn/svn-prefs.reg: - - Added README as a text file for the purposes of SVN end-of-line - handling and keyword subsitution. - -Mon Apr 16 15:41:39 UTC 2007 Chad Elliott - - * ace/config-sunos5.7.h: - * ace/config-sunos5.8.h: - - Moved the setting of ACE_HAS_VFWPRINTF and - ACE_SHM_OPEN_REQUIRES_ONE_SLASH to config-sunos5.7.h. They are - valid for this platform as well as SunOS 5.8. - -Mon Apr 16 14:17:12 UTC 2007 Johnny Willemsen - - * tests/run_test.lst: - Disable for the moment Dirent_Test on VxWorks RTP, it causes - a crash of the target. - -Mon Apr 16 13:01:00 UTC 2007 Simon Massey - - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - * ace/README: - - Add the new #define ACE_HAS_HEADER_ALLOCATED_CLASS_STATIC_CONST_INT_STOREAGE - to the known offending platforms (Microsoft VC7 and VC8). - -Mon Apr 16 11:01:12 UTC 2007 Johnny Willemsen - - * tests/Log_Msg_Test.cpp: - Made this test working for VxWorks 6.x kernel mode - - * tests/Handle_Set_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Test_Output.cpp: - Removed support for psos - - * tests/Barrier_Test.cpp: - Fixed typo in comment - -Mon Apr 16 08:41:56 UTC 2007 Martin Corino - - * tests/run_test.lst: - * bin/tao_orb_tests.lst: - - (Temporary) exclusion of some tests which tend to cause too - much trouble (spontaneous system reboots) on OpenVMS IA64 - for the moment. The cause seems to be some vulnerabilities in - the OpenVMS IA64 threading library and that will take time - to be resolved. - -Sun Apr 15 06:04:56 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added bug 2805 regression - -Sun Apr 15 06:04:56 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added bug 2844 regression - -Sat Apr 14 18:57:56 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added bug 2804 regression - -Thu Apr 12 19:14:00 UTC 2007 Chad Elliott - - * bin/tao_other_tests.lst: - - Added the Bug_1385_Regression test. - -Thu Apr 12 19:05:56 UTC 2007 Chad Elliott - - * bin/doxygen-convert-h.pl: - - Fixed a typo in a variable name. Using strict would have caught - this. - -Thu Apr 12 12:18:20 UTC 2007 Chad Elliott - - * bin/auto_run_tests.pl: - - Remove intermediate '.' directories when printing the test name to - allow the scoreboard matrix to read test output correctly. - -Thu Apr 12 12:03:29 UTC 2007 Chad Elliott - - * tests/Test_Output.cpp: - - Fixed the unused variable warning. - -Thu Apr 12 11:50:37 UTC 2007 Johnny Willemsen - - * protocols/ace/TMCast/GroupFwd.hpp: - Don't use export with a forward declaration - -Wed Apr 11 18:16:29 UTC 2007 Chad Elliott - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ACEXML/common/SAXExceptions.cpp: - * ACEXML/common/StrCharStream.cpp: - - Fixed memory leaks. - - * ace/DLL.cpp: - - Delete dll_name_ before assigning to it. - - * ace/Select_Reactor_T.cpp: - * ace/TP_Reactor.cpp: - - Check the timer_queue_ pointer before using it. - - * tests/Service_Config_DLL.cpp: - - Changed from ACE::strnew to ACE_OS::strdup to be consistent with - what allocation method is expected (even though this code - shouldn't be called). - - * tests/Test_Output.cpp: - - Always retain ownership of the output_file_ pointer (instead of - giving it to ACE_Log_Msg). This removes a memory leak (in certain - situations) and simplifies things a bit. - -Wed Apr 11 17:53:07 UTC 2007 Steve Huston - - * ace/Process_Manager.{h cpp} (terminate): The terminate(pid_t) method - no longer removes the process from the process descriptor table; - the pid remains available to call wait() on. This allows the - Process_Manager_Spawn.cpp example from APG page 227 to work as - expected. Thanks to Zhenghao Shi for reporting this issue. - - Also, changed the ACE_Process_Descriptor class to be a struct - (Process_Descriptor) inside ACE_Process_Manager. It's only used - internally to that class. - - Also fixed the Doxygenization of ACE_Process_Manager quite a bit. - - * tests/Process_Manager_Test.cpp: Added a test to verify that - ACE_Process_Manager::terminate() allows the process to wait()ed for. - - * THANKS: Added Zhenghao Shi to the Hall of Fame. - -Wed Apr 11 14:02:37 UTC 2007 Johnny Willemsen - - * ace/CORBA_macros.h: - Added nothrow variant of ACE_NEW_THROW_EX. This fixes bugzilla - bug 2889. With Borland C++ this resulted in a slightly smaller - footprint - -Wed Apr 11 12:33:37 UTC 2007 Chad Elliott - - * ace/OS_NS_sys_stat.inl: - - Added a static_cast to avoid a warning from gcc. - - * ace/SOCK_Dgram.cpp: - - Fixed my RTEMS detection for checking to see if iov_len is less - than zero. - -Wed Apr 11 11:37:42 UTC 2007 Chad Elliott - - * tests/Reactor_Notify_Test.cpp: - * tests/Time_Value_Test.cpp: - - Added static_cast and changed types to time_t to avoid warnings - from gcc. - -Wed Apr 11 10:57:07 UTC 2007 Johnny Willemsen - - * ace/config-g++-common.h: - Improved gcc 4 visibility support, thanks to Max Khon - for delivering the patch. This fixes - bugzilla 2881 - - * ace/Barrier.h: - Doxygen improvements - - * ace/OS_NS_Thread.cpp: - Use prefix increment/decrement - -Tue Apr 10 20:27:07 UTC 2007 Douglas C. Schmidt - - * docs/Download.html: Updated the download page to clarify the - status of autoconf. Thanks to Eric Hughes - for clarifying this. - -Tue Apr 10 17:20:46 UTC 2007 Krishnakumar B - - * ace/CORBA_macros.h: Reverted the change to exclude - ACE_PRINT_EXCEPTION from being affected by - ACE_LACKS_DEPRECATED_MACROS. - -Sat Apr 7 12:17:45 UTC 2007 Phil Mesnier - - * ace/Asynch_IO.cpp: fixed spelling error in include. - -Fri Apr 6 19:48:20 UTC 2007 Steve Huston - - * ace/OS_NS_Thread.inl (recursive_mutex_cond_unlock): Corrected for - Windows Mobile 5, where the CRITICAL_SECTION LockCount member was - changed from 0-base to 1-base. - -Fri Apr 6 14:27:20 UTC 2007 Steve Huston - - * ace/Asynch_IO.h: Improved comments for ACE_Asynch_Read_Stream. - - * ace/Asynch_IO.cpp (read, write, cancel): If an operation is - attempted on an object that hasn't yet been opened, refuse it - with errno EFAULT. Thanks to Paul Daugherty - for reporting this. - -Thu Apr 5 22:24:03 UTC 2007 Krishnakumar B - - * ace/config-win32-msvc-8.h: Removed the redundant define of - ACE_HAS_NEW_NOTHROW. Thanks to Ossama for pointing it out. - - * bin/ciao_tests.lst: Added BasicSP to the list of tests that are - run daily. - -Thu Apr 5 15:48:12 UTC 2007 Chad Elliott - - * bin/tao_other_tests.lst: - - Added the Bug_2561_Regression test. - -Thu Apr 5 11:50:14 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/config/global.features: - - Set the link_codecfactory feature to zero. This feature - determines if the TAO_CodecFactory library is linked in if the TAO - library is linked into an executable or dynamic library. - - * bin/tao_other_tests.lst: - - Disable a couple of performance tests that crash our QNX machine. - - * tests/run_test.lst: - - Disable the Sendfile_Test. QNX doesn't support that interface. - -Thu Apr 5 11:28:55 UTC 2007 Chad Elliott - - * tests/Message_Queue_Test_Ex.cpp: - - Changed to use ACE_Auto_Basic_Ptr instead of auto_ptr. Some - implementations still don't have a reset() method. - -Thu Apr 5 08:00:00 UTC 2007 Martin Corino - - * bin/ace_tests.lst: - - Excluded RMCast tests for VxWorks. - -Wed Apr 4 23:59:18 UTC 2007 Steve Huston - - * tests/Test_Output.cpp (close): Don't delete output_file_ during - close() - it prevents the output from being reset for another - round of logging as is done with Object_Manager_Flipping_Test. - The destructor will delete it (as the constructor allocated it) - when the component framework cleanup runs at process rundown. - -Wed Apr 4 22:01:35 UTC 2007 Krishnakumar B - - * ace/CORBA_macros.h: Restored ACE_PRINT_EXCEPTION by removing - it from being undefined if ACE_LACKS_DEPRECATED_MACROS is - defined. - - * ace/config-win32-msvc-8.h: Define ACE_NEW_THROWS_EXCEPTIONS and - ACE_HAS_NEW_NOTHROW for Visual C++ 8.0. - -Wed Apr 4 19:06:52 UTC 2007 Chad Elliott - - * bin/tao_other_tests.lst: - - Added the Bug_689_Regression test. - -Wed Apr 4 16:32:03 UTC 2007 Steve Huston - - * tests/Bug_1890_Regression_Test.cpp: - * tests/Bug_2540_Regression_Test.cpp: Since these bugs are all about - ACE_Select_Reactor, always run them on ACE_Select_Reactor. The - tests rely on behavior that doesn't hold on ACE_WFMO_Reactor, so - shouldn't be tried on simply the platform's default reactor. - -Wed Apr 4 16:12:57 UTC 2007 Chad Elliott - - * bin/tao_other_tests.lst: - - Added the Bug_1107_Regression test. - -Wed Apr 4 11:57:48 UTC 2007 Chad Elliott - - * ace/Log_Msg.cpp: - - When ACE::fini() is called, all of the exit hooks registered with - the ACE_Object_Manager are called. In single threaded mode, one - of these is the cleanup adapter for the ACE_Log_Msg object - allocated into a static pointer variable in - ACE_Log_Msg::instance(). - - Calling ACE::init() after ACE::fini() would not re-initialize the - ACE_Log_Msg object and thus memory issues would arise as soon as - it is used. - - I moved the static pointer variable to the file level and made a - new cleanup adapter that would reset the static pointer variable - when the ACE_Log_Msg object is deleted. The next use of - ACE_Log_Msg::instance() would then result in the allocation of a - new ACE_Log_Msg object. - - This fixes Bug 2874. - -Wed Apr 4 11:33:57 UTC 2007 Steve Huston - - * tests/Env_Value_Test.cpp: Cast ACE_Env_Value to ACE_TCHAR to print - its value. - -Wed Apr 4 09:49:00 UTC 2007 Simon Massey - - * include/makeinclude/platform_lynxos.GNU: - Minor warning elimination changes for ACE/TAO. - -Tue Apr 3 22:29:41 UTC 2007 Steve Huston - - * ace/Default_Constants.h: Added ACE_DEFAULT_THREAD_STACKSIZE, which - defaults to 0. This can be used to change the default stack size - argument to ACE_OS::thr_create(). Useful when a platform's default - stack size is not appropriate for an ACE application. - - * ace/OS_NS_Thread.{h cpp}: - * ace/Thread.{h cpp}: - * ace/Thread_Manager.{h cpp}: Changed the spawn[_n] stacksize default - from 0 to ACE_DEFAULT_THREAD_STACKSIZE. Allows the above config - setting to propagate through all thread-spawning methods. - - * ace/config-pharlap.h: Default ACE_DEFAULT_THREAD_STACKSIZE to 1MB. - - * ace/README: Added ACE_DEFAULT_THREAD_STACKSIZE. - - * tests/CDR_File_Test.cpp: Added ACE_HAS_PHARLAP to the condition in - which the test file can't be pre-unlinked. - - * tests/Bug_2653_Regression_Test.cpp: - * tests/CDR_File_Test.cpp: - * tests/Env_Value_Test.cpp: - * tests/MT_Reactor_Upcall_Test.cpp: - * tests/Reactor_Dispatch_Order_Test.cpp: - * tests/Reactor_Registration_Test.cpp: - Replace ACE_ASSERTs with ACE_ERROR. - - * tests/Sendfile_Test.cpp: If client send fails, nothing will happen, - so close the stream and quit. - - * tests/run_test.lst: Disabled unrunnable tests for Pharlap. - -Tue Apr 3 18:14:07 UTC 2007 Chad Elliott - - * ace/Service_Gestalt.h: - - Added the missing export for the ACE_Service_Type_Dynamic_Guard - class. - -Tue Apr 3 13:07:49 UTC 2007 Chad Elliott - - * bin/tao_orb_tests.lst: - - Added the Bug_2734_Regression test. - -Mon Apr 2 15:18:29 UTC 2007 Steve Huston - - * ace/Process.cpp: Add missing #include "ace/Auto_Ptr.h". - * ace/Service_Config.cpp: Add missong #include "ace/Log_Msg.h". - Thanks to Olof Granered - for reporting these. - - * THANKS: Added Olof Granered to the Hall of Fame. - -Mon Apr 2 15:11:24 UTC 2007 Chad Elliott - - * ACEXML/apps/svcconf/Svcconf.cpp: - - As part of the fixes for Bug 2735, we must set errno to EINVAL - when a directive fails to parse. - -Mon Apr 2 15:02:26 UTC 2007 Chad Elliott - - * ace/Service_Object.cpp: - - Removed an unnecessary const_cast of the ACE_DLL data member in - one of the constructors. - - * ace/Service_Config.h: - - Added an ACE_STATIC_SERVICE_DIRECTIVE similar to - ACE_DYNAMIC_SERVICE_DIRECTIVE to ease the testing of processing - single directives with the XML service configurator. - - * ACEXML/apps/svcconf/Svcconf_Handler.cpp: - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.inl: - * ace/Service_Gestalt.cpp: - - Fixed Bug 2677 by moving the ACE_Service_Type_Dynamic_Guard out of - the Service_Gestalt.cpp and into the .h. This guard is then used - in ACEXML_Svcconf_Handler::endElement before loading a shared - library which may insert an entity into the - ACE_Service_Repository. Upon unloading the shared library, - objects will be destroyed in the proper order. Thanks to Lothar - Werzinger for reporting this. - - * bin/tao_orb_tests.lst: - - Added Bug_2677_Regression to the list of tests. - -Fri Mar 30 14:51:19 UTC 2007 Chad Elliott - - * bin/svcconf-convert.pl: - - Only print out the output file if -verbose was used. - - * bin/tao_orb_tests.lst: - - Added the Bug_2735_Regression test. - -Fri Mar 30 14:24:48 UTC 2007 Chad Elliott - - * ace/Service_Gestalt.cpp: - - Added the word ERROR: on the three error messages that use - LM_ERROR. Always set the errno to EINVAL if processing a - directive fails. Also, reformatted some of the code. - -Fri Mar 30 12:10:22 UTC 2007 Johnny Willemsen - - * ace/Containers.{h,inl}: - Changed the constructor of ACE_DLList_Node to accept a void* instead - of void *&, no need for passing it by reference. Thanks to - Wim van den Boogaard - for reporting this. - - * ace/Containers_T.cpp: - ACE_DLList::insert_head/insert_tail, removed the workaround - for the dereferencing warnings because the DLList_Node has been - changed. - - * ace/Containers_T.h: - Doxygen improvements - - * ace/Containers_T.cpp: - Use prefix increment/decrement, initialize pointers with 0, - simplified some methods, const improvements - - * ace/INET_Addr.cpp: - Const improvement - -Thu Mar 29 16:15:24 UTC 2007 Steve Huston - - * ace/String_Base.h: Corrected comment. - * ace/String_Base.{cpp inl}: Corrected calls to set() which specified - 'release' as 1/0 instead of true/false. Thanks to Jeff Parsons for - pointing these out. - -Thu Mar 29 15:46:19 UTC 2007 Douglas C. Schmidt - - * examples/Misc/test_trace.cpp: Updated the documentation to - explain various techniques for adding tracing to applications. - Thanks to John McCabe and Steve - Huston for clarifying the rules. - -Thu Mar 29 12:15:22 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2869_Regression - -Thu Mar 29 11:23:22 UTC 2007 Johnny Willemsen - - * ace/config-doxygen.h: - Added ACE_HAS_IP_MULTICAST - -Thu Mar 29 09:11:22 UTC 2007 Johnny Willemsen - - * ace/CDR_Base.inl: - Corrected version check for Intel C++ 9.0 - -Wed Mar 28 15:34:49 UTC 2007 William R. Otte - - * examples/APG/Logging/Trace.h - - Removed usage of variadic macros, they are not really necessary - here. - -Wed Mar 28 10:45:22 UTC 2007 Johnny Willemsen - - * ace/Event.{h,cpp}: - Extende constructor with LPSECURITY_ATTRIBUTES sa argument that - can be used to pass in the security attributes that are then - passes to event_init. Also made the removed_ member a real bool. - Thanks to Michael Graf for proposing - this change - -Wed Mar 28 09:05:22 UTC 2007 Johnny Willemsen - - * ace/CDR_Base.inl: - Intel 9.0 doesn't deliver the intrinsic byte swapping operations. - This has been checked with Intel, they confirm this issue but - also indicate they will not fix this anymore for Intel 9.0, - Intel 9.1 and 10.0 don't have this issue. So, disabled the - intrinsic byte swapping operations when Intel 9.0 is used - -Tue Mar 27 13:58:22 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_933_Regression - -Mon Mar 26 20:46:34 UTC 2007 William R. Otte - - * ASNMP/asnmp/asn1.cpp - * examples/Threads/thread_specific.cpp - - Fixes for string aliasing warnings. - -Mon Mar 26 15:56:19 UTC 2007 William R. Otte - - * tests/Config_Test.cpp - - Workaround for strict aliasing warning from GCC. - -Mon Mar 26 15:42:35 UTC 2007 William R. Otte - - * tests/TSS_Test.cpp - - Workaround for strict aliasing warning from GCC. - -Mon Mar 26 13:12:22 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - * bin/tao_other_tests.lst: - Moved DIOP test from other to orb tests - -Sun Mar 25 23:22:22 UTC 2007 William R. Otte - - * contrib/utility/Utility/ExH/System/DescriptiveException.hpp - * contrib/utility/Utility/ExH/System/DescriptiveException.ipp - * contrib/utility/Utility/ExH/Compound.tpp - * contrib/utility/Utility/ExH/Compound.hpp - * contrib/utility/Utility/ExH/Logic/Exception.hpp - * contrib/utility/Utility/ExH/Logic/DescriptiveException.hpp - * contrib/utility/Utility/ExH/Logic/DescriptiveException.ipp - * contrib/utility/Utility/ReferenceCounting/Interface.hpp - * contrib/utility/Utility/ReferenceCounting/DefaultImpl.hpp - - An attempt to deal with copious warnings eminating from this - in GCC CIDLC builds. - -Fri Mar 23 12:40:32 UTC 2007 Ossama Othman - - * ace/CDR_Base.inl (swap_2, swap_4, swap_8): - - Take advantage of MSVC++ compiler intrinsic byte swapping - functions to improve performance when demarshaling CDR streams - sent by a host with a different byte ordering. - -Fri Mar 23 15:48:42 UTC 2007 Steve Huston - - * ace/Handle_Gobbler.{h inl}: Removed left-over disabled code from - Thu Mar 22 18:33:19 UTC 2007 Steve Huston - -Fri Mar 23 15:36:48 UTC 2007 Steve Huston - - * ace/DLL_Manager.cpp (close): After - Thu Mar 22 18:33:19 UTC 2007 Steve Huston - was closing the wrong handle value; fixed. - -Fri Mar 23 15:19:18 UTC 2007 Johnny Willemsen - - * ace/CDR_Stream.cpp: - Fixed compile error when ACE_LACKS_CDR_ALIGNMENT is defined. - Thanks to Aleksandar Vukajlovic - for reporting this - -Fri Mar 23 13:11:18 UTC 2007 Phil Mesnier - - * bin/tao_other_tests.lst: - Added new SSLIOP tests to the script. - -Fri Mar 23 12:42:02 UTC 2007 Johnny Willemsen - - * ace/Makefile.am: - Removed config-win32-visualage.h - -Fri Mar 23 06:38:17 UTC 2007 William R. Otte - - * tests/Log_Msg_Backend_Test.cpp - - Unused argument warnings. - -Fri Mar 23 02:33:54 UTC 2007 Abdullah Sowayan - - * ace/ACE.cpp: - - Don't use raw "naked" calls, use the ones provided by ACE_OS. - This fixes Bugzilla 2866. - -Thu Mar 22 19:59:17 UTC 2007 William R. Otte - - * bin/MakeProjectCreator/modules/GNUAutobuildProjectCreator.pm - * bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm - - Added logic to make this generator masquerade as the gnuace - type for the purposes of specific/verbatim clauses. - -Thu Mar 22 19:38:02 UTC 2007 Johnny Willemsen - - * ace/Basic_Types.h: - * ace/config-win32-common.h: - * ace/config-win32.h: - * ace/Global_Macros.h: - * ace/OS_NS_errno.inl: - * ace/OS_NS_sys_stat.{h,inl}: - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_unistd.inl: - * ace/Task.cpp: - * ace/Timer_Heap_T.cpp: - Removed support for Visual Age on Windows - - * ace/Condition_Thread_Mutex.{h,cpp,inl}: - Changed removed_ member from int to real bool - - * ace/config-win32-visualage.h: - Removed from the repo - - * ace/OS_NS_errno.inl: - Removed workaround for BCB4 - -Thu Mar 22 19:25:02 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Abstract_Interface test - -Thu Mar 22 18:44:02 UTC 2007 Chad Elliott - - * ace/ACE.inl: - - Updated a comment about ACE::nibble2hex() working with UNICODE. - - * ace/config-qnx-rtp-62x.h: - - QNX has the getifaddrs interface. - -Thu Mar 22 18:33:19 UTC 2007 Steve Huston - - * ace/DLL_Manager.cpp (ACE_DLL_Handle::close()): When a DLL needs to - be closed, copy the handle value to a local variable and reset the - object's handle_, then release the lock_, then do the dlclose() - without holding the lock in case dlclose() causes a train of - closes to end up coming back through ACE_DLL_Handle::close(). - - * ace/Handle_Gobbler.{h inl}: Use ACE_Handle_Set instead of - ACE_Unbounded_Set to hold the gobbled-up handles. Cuts execution - time on AIX (at least my old-ish 5.2 box) from 7 minutes to a few - seconds, allowing tests that use this to complete. - -Thu Mar 22 18:25:01 UTC 2007 Steve Huston - - * ace/Log_Msg.{h cpp}: Corrected comments describing the format for - %D timestamp. Thanks to Stefan Naewe for reporting this. - - * ace/OS_NS_Thread.inl (thread_mutex_init): On Windows, guard against - InitializeCriticalSection throwing an out-of-memory exception. Thanks - to Aleksandar Vukajlovic for this. - - * ace/Log_Msg_Backend.h: Doxygenized and expanded comments. - * ace/Log_Msg_IPC.h: Moved some comments re reset() from - Log_Msg_Backend to here because they discuss resetting the IPC. - - * ace/Message_Queue_T.{h cpp}: Added an optional 'priority' argument - to ACE_Message_Queue_Ex::enqueue_prio. There was previously no way - to specify a priority for queueing; now there is. The priority - defaults to 0 (lowest priority). - Also fixed up the Doxygen stuff for ACE_Message_Queue_Ex. - - * tests/Message_Queue_Test_Ex.{h cpp}: - Added a test for priority queueing. - - * tests/Log_Msg_Backend_Test.cpp: New test to illustrate how to set - up a custom logging backend and test the hooks are called properly. - - * tests/tests.mpc: - * tests/Makefile.am: - * tests/run_test.lst: Added Log_Msg_Backend_Test. - - * tests/Auto_Event_Test.cpp: - * tests/Semaphore_Test.cpp: Replace ACE_ASSERTS with if/ACE_ERROR to - 1) make sure it runs in Release mode, 2) not wipe out embedded - systems on failures, 3) record something useful in the log. Also, - changed error notices to LM_ERROR. When logging msecs (unsigned - long) cast it to int; ACE_Log_Msg doesn't have the 'l' modifier and - without it %d and long is a mismatch. - -Thu Mar 22 16:29:16 UTC 2007 William R. Otte - - * bin/MakeProjectCreator/modules/GNUAutobuildProjectCreator.pm - * bin/MakeProjectCreator/modules/GNUAutobuildWorkspaceCreator.pm - - Added autobuild workspace creator to collate build output - on a per makefile basis. - -Thu Mar 22 14:51:46 UTC 2007 Chad Elliott - - * bin/make_release.py: - - Fixed a bug where the input file for bzip2 and gzip was not - correct and the md5sum output file was missing a period. - - * docs/bczar/bczar.html: - - Updated the documentation and fixed some spelling mistakes. - - * bin/depgen.pl: - - Modified to use the dependency generator core that was moved into - MPC. - - * bin/DependencyGenerator/DependencyEditor.pm: - * bin/DependencyGenerator/DependencyGenerator.pm: - * bin/DependencyGenerator/DependencyWriter.pm: - * bin/DependencyGenerator/DependencyWriterFactory.pm: - * bin/DependencyGenerator/MakeDependencyWriter.pm: - * bin/DependencyGenerator/MakeObjectGenerator.pm: - * bin/DependencyGenerator/NMakeDependencyWriter.pm: - * bin/DependencyGenerator/NMakeObjectGenerator.pm: - * bin/DependencyGenerator/ObjectGenerator.pm: - * bin/DependencyGenerator/ObjectGeneratorFactory.pm: - * bin/DependencyGenerator/Preprocessor.pm: - - Removed these files. - -Wed Mar 21 12:12:26 CDT 2007 Chad Elliott - - * ACE version 5.5.7 released. - -Tue Mar 20 12:42:13 UTC 2007 Chad Elliott - - * bin/diff-builds.pl: - - Sort the builds so that the output is in order and comparable - between multiple runs of the same date. - -Mon Mar 19 19:16:12 UTC 2007 Johnny Willemsen - - * bin/tao_other_tests.lst: - Disabled several tests for CORBA/e micro - -Mon Mar 19 16:37:21 UTC 2007 Douglas C. Schmidt - - * docs/Download.html: Updated the comments about commercial - support so they point to www.dre.vanderbilt.edu/support.html. - Thanks to Hans van't Hag - for motivating this. - -Mon Mar 12 16:19:49 UTC 2007 Douglas C. Schmidt - - * tests/Future_Test.cpp: Updated this example to point to the - right Active Object location. Thanks to Joe French for motivating this. - -Mon Mar 19 07:53:12 UTC 2007 Johnny Willemsen - - * bin/MakeProjectCreator/config/vc8_warnings.mpb: - Made vc8 and nmake more the same so that also with nmake the - crt warnings are suppressed - -Sun Mar 18 02:09:31 UTC 2007 Krishnakumar B - - * ace/OS_NS_stdlib.cpp: Fixed a race condition in - ACE_OS::mkstemp_emulation() where the value from - ACE_OS::gettimeofday() was truncated due to the use of - ACE_Time_Value::msec(void) as opposed to - ACE_Time_Value::msec(ACE_UINT64&) to convert it to milliseconds. - This resulted in seed value passed to ACE_OS::rand_r() returning - the same sequence of numbers when ACE_OS::mkstemp() was called - successively from the same process. As a result, the filenames - returned from ACE_OS::mkstemp() ended up being the same, if the - template passed in was the same between multiple successive - calls to ACE_OS::mkstemp(). - -Thu Mar 15 14:44:21 UTC 2007 Carlos O'Ryan - - * ace/Select_Reactor_Base.cpp: - The close() operation was trying to read from the notification - pipe event if the notification pipe was not open. I did not - notice this could happen, but the reactor constructor has a flag - for it. - -Thu Mar 15 12:06:12 UTC 2007 Johnny Willemsen - - Reverted the change below, the test stats show that after adding - the functions the Atomic_Op test does fail when these optimized - functions are enabled. - - Mon Mar 5 09:21:12 UTC 2007 Johnny Willemsen - * ace/Atomic_Op_Sparc.c: - * ace/Atomic_Op.{h,cpp}: - Added optimized functions for SunCC on x86. Thanks to - Dennis Chernoivanov for reporting this. - If you want to enable these, add atomic_ops_sparc=1 to your - platform_macros.GNU file - -Thu Mar 15 11:20:31 UTC 2007 Chad Elliott - - * tests/Reactor_Notify_Test.cpp: - - Removed the auto_ptr that deleted the Reactor instance. It is - managed by the ACE library and doesn't need to be deleted. - -Wed Mar 14 21:34:03 UTC 2007 William R. Otte - - * bin/ciao_tests.lst - - Added requirement for the RT-CCM test called RT_CAPABLE, used to - indicate systems which are able to successfully run a test - involving RT policies. - -Wed Mar 14 12:32:36 UTC 2007 Chad Elliott - - * bin/tao_orb_tests.lst: - - Silly me, I forgot the script name when I added the - CORBA_e_compact_Implicit_Activation test. - -Wed Mar 14 09:09:12 UTC 2007 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Set ACE_HAS_VSWPRINTF independent of the compiler used - -Wed Mar 14 08:09:12 UTC 2007 Johnny Willemsen - - * ace/config-linux-common.h: - * ace/config-lite.h: - * include/makeinclude/platform_linux_suncc.GNU: - Changes for the Sun Studio 12 Early Access compiler on linux - -Tue Mar 13 22:04:35 UTC 2007 Steve Huston - - * tests/unload_libace.mpb: Squish the VC8 warning about deprecated - fopen(). - -Tue Mar 13 19:36:09 UTC 2007 Steve Huston - - * ace/OS_NS_stdio.cpp (snprintf): Back off use of _vsnwprintf_s() in - the wide-char version as was done in the narrow-char version (see - Mon Mar 12 17:55:18 UTC 2007 Steve Huston ). - Also, in sprintf(), correct the selection of 3 vs 4 arg call for - WinCE. - -Tue Mar 13 18:43:28 UTC 2007 Chad Elliott - - * bin/tao_orb_tests.lst: - - Added a new test that only runs when the CORBA_E_COMPACT - configuration is enabled. - -Tue Mar 13 13:21:49 UTC 2007 Olli Savia - - * include/makeinclude/platform_lynxos.GNU: - Removed unnecessary PLATFORM_SSL_* settings. - -Tue Mar 13 12:13:37 UTC 2007 Steve Huston - - * bin/MakeProjectCreator/config/vc8_warnings.mpb: For the - vc8_avoid_crt_secure_warnings feature, add /wd4996 to the nmake - case since it seems to not pay attention to _CRT_NONSTDC_NO_WARNINGS. - Also, reversed the default for VC8 SCL secure warnings - they're on - by default since Ossama implemented the checked STL iterator stuff. - -Tue Mar 13 09:57:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new DynUnion_Test - -Tue Mar 13 00:24:22 UTC 2007 Ossama Othman - - * bin/MakeProjectCreator/config/vc8nmake.mpb: - - Subtract /EHsc from the compiler flags instead of /EHs. MPC now - uses /EHsc as the correct replacement for /GX. - -Mon Mar 12 23:44:25 UTC 2007 Ossama Othman - - * ace/checked_iterator.h (ACE_make_checked_array_iterator): - - Added documentation for this header. - - Changed length type from ptrdiff_t to size_t. The length refers - to the length of an array, not a pointer difference. - -Mon Mar 12 21:47:51 UTC 2007 Wallace Zhang - - * ace/OS_NS_stdio.inl: - - Fixed compilation errors on WinCE 5.0 builds. - -Mon Mar 12 22:26:08 UTC 2007 Ossama Othman - - * ace/checked_iterator.h (ACE_make_checked_array_iterator): - - New function template that returns a checked iterator if - supported by the platform (currently VC8 or better), and a - pointer otherwise. - - * ace/Array_Map.cpp (ACE_Array_Map, grow, operator==): - - Call new ACE_make_checked_array_iterator<>() iterator factory - function to generate destination iterator. Addresses VC8 - "C4996" warnings when security related warnings are enabled. - - * ace/Makefile.am: - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - - Added new ace/checked_iterator.h header to the appropriate - header lists. - -Mon Mar 12 21:15:46 UTC 2007 Carlos O'Ryan - - * tests/Reactor_Notify_Test.cpp: - The test was verifying the behavior described in bug 2845. I - neglected to fix the test when we fixed the bug. Mostly because - I am stupid, but also because the test only worked as expected - in a limited number of builds. - This change should fix the test problems we are seeing on the - scoreboard, but the only thing I can say for sure is: - + I managed to reproduce the crash on my machine. - + I understand why the test was crashing. - + I believe the test was wrong and not the library. - + I fixed the test and now valgrind is happy with it. - -Mon Mar 12 17:55:18 UTC 2007 Steve Huston - - * ace/OS_NS_stdio.inl (vsnprintf): Back out the attempt to use the - new _vsnprintf_s() - it doesn't report the required string length - when it exceeds maxlen and we need this info. - -Mon Mar 12 17:38:26 UTC 2007 Steve Huston - - * bin/MakeProjectCreator/config/vc8_warnings.mpb: - * bin/MakeProjectCreator/config/vc8nmake.mpb: - Moved the _CRT_NONSTDC_NO_WARNINGS, _CRT_SECURE_NO_DEPRECATE, and - _SCL_SECURE_NO_WARNINGS defs from vc8nmake.mpb to vc8_warnings.mpb - so they're all in one place for easy maintenance and also can be - switched on and off via MPC features. - - This effectively reverts the changes to vc8nmake.mpb since: - Fri Mar 9 21:04:22 UTC 2007 Steve Huston - - * ace/config-win32-msvc-8.h: Deleted the pragma disable for warning - 4355 (this used in base member initializer list). Added it to - bin/MakeProjectCreator/config/vc8_warnings.mpb. This should both - unblock it for regular users and block it for the CIDLC build. - -Mon Mar 12 16:39:25 UTC 2007 Steve Huston - - * ACE-INSTALL.html: Note that LabVIEW RT targets may require - the user to copy Windows DLLs to the target for Debug mode. - -Mon Mar 12 14:15:12 UTC 2007 Johnny Willemsen - - * ace/INET_Addr.cpp: - Removed not needed return - -Mon Mar 12 13:54:12 UTC 2007 Johnny Willemsen - - * bin/tao_other_tests.lst: - Don't run bug 2800 regression tests in a ST configuration - -Mon Mar 12 13:12:12 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Only when building a static rtp we enable aio by default. For - building shared we need an optional library, see the file below - how to enable this - - * include/makeinclude/platform_vxworks6.3.GNU: - If you build rtp with shared library and want to use aio then you - need to build the custom AioPx library first, then add aio=1 - to your platform_macros.GNU file to enable aio in ACE and link - the needed additonal library - -Mon Mar 12 12:35:12 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - VxWorks 6.4 does deliver strings.h in kernel mode and strcasecmp/ - strncasecmp can't be used in rtp mode, but can be used in kernel - mode - -Mon Mar 12 10:51:38 UTC 2007 Steve Huston - - * bin/MakeProjectCreator/config/vc8nmake.mpb: Added /D for - _CRT_SECURE_NO_DEPRECATE and _SCL_SECURE_NO_WARNINGS to silence - those compile warnings; added /wd4290 to silence the warnings - "C++ exception specification ignored except to indicate a function - is not __declspec(nothrow)". Note that the latter warning can also - be remedied by using ACE_THROW_SPEC; this has been done for ACE - but not in TAO. - -Mon Mar 12 01:31:16 UTC 2007 Abdullah Sowayan - - * examples/DLL/test_dll.cpp: - - This example was not working under Windows XP when compiled with - Visual Studio 2003.NET. The culprit was the following line of code: - - dll.open (ACE_TEXT("./") ACE_DLL_PREFIX ACE_TEXT("DLL_Today")); - - We don't need to supply "./" to the open method, since $ACE_ROOT/lib - is in DLL search path environment variable (PATH for Windows and - LD_LIBRARY_PATH for unix-like systems). - -Fri Mar 9 21:04:22 UTC 2007 Steve Huston - - * bin/MakeProjectCreator/config/vc8nmake.mpb: Added /wd4250 - (to disable inheritance via dominance warning) and - /D _CRT_SECURE_NO_DEPRECATE to disable the warnings about - deprecated CRT functions. - -Fri Mar 9 16:49:03 UTC 2007 Steve Huston - - * ace/OS_NS_string.inl (strncat): Disable the TR24731/2005 calls to - strncat_s() and wcsncat_s() for now. The dest length includes the - characters that were already in dest before appending src. To really - use the safer functions, the dest max length is needed from the - caller. So, we'll either need a new method or an added arg to the - current methods. - -Fri Mar 9 16:27:23 UTC 2007 Steve Huston - - * ace/OS_NS_stdio.cpp (snprintf): - * ace/OS_NS_string.inl (strncat): When using the "safe" calls from - TR24731/2005, specify the dest count as the user-specified source - length + 1 for the null. This assumes the caller knows the dest - buffer is long enough to hold what's specified. Specifying - _TRUNCATE as the src count gets the behavior we expect - the - specified number of bytes are copied with the assurance a nul - terminator is added. This avoids the CRT error handler. - -Fri Mar 9 16:10:09 UTC 2007 Steve Huston - - * ace/Log_Msg_NT_Event_Log.{h cpp}: Changed return type of log() from - int to ssize_t. Matches changes from: - Fri Mar 9 00:53:43 UTC 2007 Steve Huston - -Thu Mar 9 09:44:14 UTC 2007 Ossama Othman - - * ace/Time_Value.cpp (operator *=): - - Reverted bulk of the changes. New implementation will be - revisited as time permits. - -Fri Mar 9 09:42:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.3.GNU: - No need to explicitly link dl when building shared - -Thu Mar 9 07:44:14 UTC 2007 Ossama Othman - - * tests/Time_Value_Test.cpp (run_main): - - Simplified assertions. Rather than test equality of sec() and - usec() components separately, just test equality of the - ACE_Time_Value objects as a whole. - -Fri Mar 9 00:53:43 UTC 2007 Steve Huston - - Changes to resolve or quiet warnings from Visual Studio .NET 2005: - - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/vc8_warnings.mpb: Removed the - default addition of _CRT_SECURE_NO_DEPRECATE from the MPC VC8 - project templates. Many of the places where the changes recommended - by Microsoft could be made have been made (see further below). There - are still a number of places where the warnings are generated, - mostly because ACE wraps "unsafe" methods such as strcpy(), printf(), - etc. These can't legitimately be changed. So most of what can (and - should) be changed in ACE has been. To keep the warnings quiet - without removing them from any user application that includes ACE - headers, the acedefaults.mpb base project now inherits from - vc8_warnings - vc8_warnings will, by default, silence the warnings - we don't really need to see, but users of ACE will still get the - warnings when building their apps, unless they take similar steps - to silence them (or if they generate projects using the acedefaults - base project with MPC). - We can still elect to enable all the warnings by setting MPC features - to 0 (see vc8_warnings.mpb for features). And this is a good thing - to do still since we can improve the security situation by reviewing - things flagged as warnings and repair what's needed (not everything - flagged will be in need of a fix). - - * ace/config-win32-msvc-8.h: Removed most of the pragmas that silenced - legit warnings from VC8. Added ACE_HAS_TR24731_2005_CRT indicating - that there's a C Run-Time implementing C99 draft TR 24731 dated - October 2005 detailing security improvements to the C run-time. - This macros indicates that the more secure versions of the calls - can be used where desireable. - Also added a macro, ACE_WIN32_VC8, to easily tell where we need to - selectively disable a warning that we can tell by inspection is - irrelevant. Such as use of 'this' in an initializer list and we can - tell by inspecting the code in question to be sure that the passed - pointer isn't used to call a method on an object that's not fully - constructed yet. - - * ace/config-macros.h: When ACE_HAS_TR24731_2005_CRT is defined, - define ACE_SECURECRTCALL to make a call and adjust the returned - error value to the ACE return value convention. - - * ace/README: Describe ACE_HAS_TR24731_2005_CRT. - - * NEWS: Described the removing of the warning preventers and that - user code may trigger warnings that weren't showing up in previous - ACE versions. - - * ace/Global_Macros.h: For VC8 with ACE_HAS_EXCEPTIONS, define - ACE_THROW_SPEC as throw(...) always. VC8 always treats any throw - spec as throw(...) and issues a warning to this effect. This change - silences the warnings. The #if intends to set this for VC8 only, - guessing that any VC9 will be _MSC_VER 1500. - - * ace/os_includes/sys/os_types.h: For non-Borland, non-Mingw ACE_WIN32 - change mode_t from u_short to int. Matches CRT docs. - - * ace/Local_Tokens.cpp: - * ace/Select_Reactor_Base.inl: - * ace/WFMO_Reactor.cpp: - * apps/Gateway/Gateway/Event_Channel.cpp: - Disable VC8's C4355 warning that 'this' is used in an initializer - list; we know, and it's ok. - - * ace/Select_Reactor_T.cpp (ctor): Rather than pass a reference to - 'this' incompletely constructed object to token_, call token_'s - reactor() method to set the reactor impl pointer. - - * ace/Registry.{h cpp}: Rearranged setting of Binding_Iterator in the - inherited Iteration_State object. Instead of passing a reference to - an object that's not yet fully constructed, call a new iterator() - method to set that pointer. - - * ace/Service_Config.cpp (ctor): Rather than set the TSS pointer in - the initializer list before it's complete, call ts_object() to set - it within the constructor body. We could also catch a setup error - here and throw an exception if ACE ever goes that way. - - * ace/OS_NS_time.h (ace_timezone): Use the GetTimeZoneInformation() - system call to get timezone bias for all Windows platforms and - compilers. Much easier and faster than going through the C run-time - and will work with new US daylight savings changes automatically. - - * ace/OS_NS_sys_stat.inl: (umask): - * ace/OS_NS_stdio.inl (vsnprintf): - * ace/OS_NS_stdio.cpp (sprintf, snprintf): - * ace/OS_NS_string.inl (strtok_r, strncat): - * ace/OS_NS_string.cpp (strerror): - Use "safer" functions when ACE_HAS_TR24731_2005_CRT. - - * ace/OS_NS_time.{inl cpp}: (asctime_r, ctime_r, gmtime_r, - localtime_r): Use new functions when ACE_HAS_TR24731_2005_CRT. - NOTE - I purposely did not substitute the secure version for the - non _r methods (asctime, ctime, etc.) since that would have to use - a local static variable. That defeats the purpose of being able to - use a caller-supplied destination. Thus, the places that can - substitute a secure function are, and those that can't don't. This - will notify users of code that's potentially unsafe and allow them to - switch to the safer _r version. We can set the - _CRT_SECURE_NO_WARNINGS macro for non-inline builds (where the unsafe - versions will be compiled in) and leave the warning in place for - inlined builds to put the user on notice that a potentially unsafe - method is being used. - - * ace/UUID.cpp (from_string_i): Use sscanf_s for VC8. - - * ace/Atomic_Op_T.{cpp inl}: - * ace/INET_Addr.cpp: - * ace/Filecache.cpp: - * ace/Future.cpp: - * ace/Map_Manager.inl: - * ace/Message_Queue_T.cpp: - * ace/Process_Mutex.cpp: - * ace/RW_Process_Mutex.cpp: - * ace/Stream.cpp: Don't use 'this' in initializer list. Quiets - VC8's warnings. - - * protocols/ace/TMCast/Group.{hpp cpp}: Change 'throw' to - ACE_THROW_SPEC to quiet the VC8 warnings. - - * tests/unload_libace.mpb: Add _CRT_SECURE_NO_WARNINGS for VC8. Else - VC8 warns about fopen() and we don't care. - - * ace/README: Added ACE_LACKS_WIN32_GETPROCESSTIMES. - - * ace/config-WinCE.h: Added ACE_LACKS_WIN32_SECURITY_DESCRIPTORS and - ACE_LACKS_WIN32_GETPROCESSTIMES. - - * ace/OS_NS_dirent.cpp (opendir_emulation): WinCE offers - GetFileAttributes() but documents a failing return value as - 0xFFFFFFFF whereas on desktop/server Windows a failed call returns - INVALID_FILE_ATTRIBUTES. So on WinCE, define INVALID_FILE_ATTRIBUTES. - - * ace/OS_NS_sys_resource.inl (getrusage): Don't try GetProcessTimes() - on Win32 if ACE_LACKS_WIN32_GETPROCESSTIMES is set. - - * ace/OS_NS_stdio.inl (cuserid): WinCE returns ENOTSUP for these. - - * ace/OS_NS_unistd.inl (chdir): If ACE_HAS_WINCE, return ENOTSUP. - - * ace/Log_Record.cpp (operator<<): Truncate the message data length - down to 32 bits (ACE_CDR::ULong) size since that's all the - CDR ops and header field can handle. - - * ace/Log_Msg_Backend.h: - * ace/Log_msg_UNIX_Syslog.{h cpp}: - * ace/Log_Msg_IPC.h: - * ace/Log_Msg_IPC.cpp (log): Changed the return type of log() from int - to ssize_t to match what it's returning (byte count or error). - Corrected the max_payload_size calculation - to match the header that operator<< (above) writes. The MAXLOGMSGLEN - isn't always enough now that ACE_Log_Record's data can be extended. - -Fri Mar 9 00:57:26 UTC 2007 Carlos O'Ryan - - * ace/Event_Handler.cpp: - Fixed bug 2845, the event handler destructor no longer calls - purge_pending_notifications. More details about the rationale - can be found in the bug report. - - * NEWS: - * docs/ACE-FMM.html: - Prominently document the change, since it may catch people - unawares. - -Thu Mar 8 21:27:54 UTC 2007 Steve Huston - - * ace/String_Base.{h cpp}: Change ACE_String_Base::release_ from int - to bool. Thanks to Kelly Hickel for this change. This changes the - signatures of the following methods: - ACE_String_Base (const CHAR *s, - ACE_Allocator *the_allocator = 0, - int release = 1); - to - ACE_String_Base (const CHAR *s, - ACE_Allocator *the_allocator = 0, - bool release = true); - - ACE_String_Base (const CHAR *s, - size_type len, - ACE_Allocator *the_allocator = 0, - int release = 1); - to - ACE_String_Base (const CHAR *s, - size_type len, - ACE_Allocator *the_allocator = 0, - bool release = true); - - void set (const CHAR * s, int release = 1); - to - void set (const CHAR * s, bool release = true); - - void set (const CHAR * s, size_type len, int release); - to - void set (const CHAR * s, size_type len, bool release); - - void clear (int release = 0); - to - void clear (bool release = false); - - * ace/Configuration.cpp: - * ACEXML/common/NamespaceSupport.cpp: - * ACEXML/parser/parser/Entity_Manager.inl: - * tests/SString_Test.cpp: Changes to string usage to - reflect the above signature changes. Changed '0' args to 'false'. - - * NEWS: Added a description of the above changed methods. - -Thu Mar 8 21:24:38 UTC 2007 Steve Huston - - * tests/Cached_Conn_Test.cpp: - * tests/Cached_Accept_Conn_Test.cpp: Replace use of ACE_ASSERT with - ACE_ERROR. ACE_ASSERTS on single-process targets do really bad - things... - -Thu Mar 8 20:29:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.3.GNU: - More changes to build with shared library support using VxWorks 6.x - -Thu Mar 8 19:06:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.3.GNU: - Only add dl to LDLIBS when building shared - -Thu Mar 8 18:06:14 UTC 2007 Ossama Othman - - * ace/Time_Value.cpp (operator *=): - - Removed vestigial time value saturation code that does not work - correctly with latest implementation. - -Thu Mar 8 14:21:12 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Don't set ACE_HAS_SVR4_DYNAMIC_LINKING when we do a static - rtp build. - -Thu Mar 8 13:04:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.3.GNU: - Added some initial support for building shared libraries - with vxworks 6.3, this is not ready yet, in progress - -Thu Mar 8 12:17:50 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/config/ace_openssl.mpb: - * include/makeinclude/wrapper_macros.GNU: - - Moved the addition of SSL related macros out of wrapper_macros.GNU - and into a specific section in ace_openssl.mpb. The result is - that the SSL related information is only added to the projects - that inherit from ace_openssl (instead of every single project). - -Thu Mar 8 02:59:02 UTC 2007 Carlos O'Ryan - - * ace/Notification_Queue.cpp: - Fixed implementation of reset() make sure the code works right - when there are null event handlers in the queue. This should - have been part of the original fixes for bug 2820. - - * tests/Notification_Queue_Unit_Test.cpp: - Add new test cases for the reset() operation, in particular - check for null event handlers in the queue. - -Wed Mar 7 19:07:58 UTC 2007 Iliyan Jeliazkov - - * ace/Message_Block.cpp: - - Fixing a problem caused by inadvertently overwriting an external - buffer passed in the constructor. It happens when - ACE_INITIALIZE_MEMORY_BEFORE_USE is set (as result of setting - ACE_HAS_VALGRIND). Thanks to Johnny Willemsen for reporting it. - -Wed Mar 7 18:44:10 UTC 2007 Chad Elliott - - * include/makeinclude/wrapper_macros.GNU: - - Fixed an issue where if ssl wasn't set to zero, it was assumed to - be set to non-zero (ignoring the case where it could be set to - empty). - -Wed Mar 7 17:32:51 UTC 2007 Ossama Othman - - * ace/Time_Value.cpp (operator*=): - - Altered implementation to avoid converting the microseconds - component of the ACE_Time_Value to a fraction of a second. In - the case were the floating point type's mantissa width is the - same as the width of the time_t (seconds) value, a maxed out - ACE_Time_Value seconds component would utilize all bits in the - mantissa, leaving no room for a fraction. The microseconds - component would end up not contributing to the multiplication. - Multiply the seconds and microseconds components separately - instead. This also saves us a floating point division, which - can be expensive. - -Wed Mar 7 16:35:04 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/config/ace_openssl.mpb: - * include/makeinclude/wrapper_macros.GNU: - - Removed the addition of $(SSL_ROOT)/include and $(SSL_ROOT)/lib - from the includes and libpaths project variables and ssl and - crypto from the lit_libs settings for gnuace (as was done for - automake). - - This functionality will now come from wrapper_macros.GNU in the - form of PLATFORM_SSL_CPPFLAGS, PLATFORM_SSL_LDFLAGS and - PLATFORM_SSL_LIBS. If these variables are not set, they will be - given defaults based on the SSL_ROOT variable, as long as SSL_ROOT - is set and is not set to /usr. - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added support for the compile_flags and linkflags template - variables. - -Wed Mar 7 13:12:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - * include/makeinclude/platform_vxworks6.2.GNU: - Simplified these files - - * include/makeinclude/platform_vxworks6.3.GNU: - Added support to use a windows host system for the cross build - -Wed Mar 7 12:34:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - Removed setting of ACELIB, in the generated makefiles it is - always cleared again - - * bin/MakeProjectCreator/templates.gnu.mpb: - Removed clearing of ACELIB and setting of tao_dont_use_idl_make_rule - -Wed Mar 7 12:20:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/rules.local.GNU: - Removed check for TAO_IDL_DEP, the generated GNUmakefiles do - check for this - -Wed Mar 7 11:46:46 UTC 2007 Carlos O'Ryan - - * tests/Bug_2820_Regression_Test.cpp: - Use the standard ACE workaround for platforms with a broken - std::auto_ptr<>. - -Wed Mar 7 09:56:12 UTC 2007 Johnny Willemsen - - * ace/Atomic_Op.cpp: - Implemented the single_cpu_* methods for PPC, because of the lack - of a multi cpu ppc board we don't have these methods implemented - and we don't enable this by default. If you want to use the PPC - optimized operations for a single cpu board add - ACE_HAS_BUILTIN_ATOMIC_OP to your config.h - -Wed Mar 7 02:51:50 UTC 2007 William R. Otte - - * docs/bczar/bczar.html - - Updated bczar documentation to reflect change in release script. - - * bin/make_release - * bin/make_release.py - - Removed the old release script and added the new one. - -Tue Mar 6 23:06:15 UTC 2007 Ossama Othman - - * ace/Time_Value.cpp (operator*=): - - Use long double for internal computations if double is not large - enough to retain precision of the time_t/suseconds_t values. - This will only provide improved behavior with compilers that - support double-extended precision floating numbers, i.e. >= 79 - bits. - - Added comments to explain what is being done in the - implementation. - -Tue Mar 6 07:47:12 UTC 2007 Johnny Willemsen - - * ace/OS.inl: - Fixed compile error with VxWorks 6.x using a Windows host - -Tue Mar 6 15:27:52 UTC 2007 William R. Otte - - * NEWS: - - Noted removal of eVC3/4 projects. - -Tue Mar 6 15:00:00 UTC 2007 Ciju John - - * tests/INET_Addr_Test.cpp: - Add test for ACE_INET_Addr::is_loopback () API. This tests a - selected set of addresses to validate API's conformance with RFC - 3330. - -Tue Mar 6 13:21:24 UTC 2007 Douglas C. Schmidt - - * COPYING: Updated this file to clarify that the ACE license need - not be shipped with binary-only releases. Thanks to Michael - Kircher and Werner - Burger for motivating - this. - -Tue Mar 6 12:43:01 UTC 2007 Chad Elliott - - * tests/Date_Time_Test.cpp: - - Handle the rare case where the minute rolls over during the test. - -Tue Mar 6 04:41:36 UTC 2007 Abdullah Sowayan - - * examples/DLL/README: - - README was referring to files (dsp/dsw) used by Visual Studio C++ 6. - Updated to refer to files (sln/vcproj) used by VC++ 7.1 or later. - -Tue Mar 6 02:37:53 UTC 2007 Carlos O'Ryan - - * Merged changes from the fix_bug_2820 branch. From revision - 77533 to revision 77546. - - Tue Mar 6 02:07:43 UTC 2007 Carlos O'Ryan - - * ace/Select_Reactor_Base.cpp: - Fixed bugs in loop to extract event handlers from notification - pipe. - - * tests/Bug_2820_Regression_Test.cpp: - Fixed several problems in the test: - - The Event_Handler called on the Reactor on its destructor, but - by then the reactor was already destroyed. - - Improved debugging messages. - - Fixed memory management problems, valgrind is happy now. - - Mon Mar 5 18:01:36 UTC 2007 Carlos O'Ryan - - * ace/Notification_Queue.cpp: - When deleting the queue we must decrease the reference count on - all the event handlers stored there. - - * ace/Select_Reactor_Base.cpp: - When the notification pipe is destroyed we must read the data - stored there and release all the event handlers. Otherwise the - reference counts are broken. - - * tests/run_test.lst: - Add Bug_2820_Regression_Test to the list. - - Mon Mar 5 17:16:16 UTC 2007 Carlos O'Ryan - - * tests/Bug_2820_Regression_Test.cpp: - The test was broken, it did not delete the Reactor, so it failed - to test what we wanted. - -Tue Mar 6 00:10:36 UTC 2007 Steve Huston - - * examples/ASX/UPIPE_Event_Server/event_server.cpp: Use ACE_DEBUG - to display the message containing a time_t. Use of the standard - iostream operator<< with time_t gives the Intel90 compiler fits. - -Mon Mar 5 23:09:59 UTC 2007 Steve Huston - - * ace/Log_Msg.{h cpp}: Added new format specifiers: - %b to format ssize_t values - %B to format size_t values - %: to format time_t values - - Note that these use, when necessary, printf format specifiers such - as ACE_SIZE_T_FORMAT_SPECIFIER and ACE_INT64_FORMAT_SPECIFIER. - The printf formatters can't be used portably in ACE_Log_Msg format - strings because 1) some of them use %I, which has a different meaning - in ACE_Log_Msg already and 2) some of the new printf formats are - more complicated that ACE_Log_Msg knows how to deal with in its - existing logic to use format modifiers. The new ACE_Log_Msg format - specifiers make it easy to portably log these types that can change - sizes across platforms. - - * ace/Log_Record.cpp (dump): - * tests/Cached_Allocator_Test.cpp: - * tests/High_Res_Timer_Test.cpp: Use the new ACE_Log_Msg format - specifiers for size_t and time_t logged values. - -Mon Mar 5 22:23:01 UTC 2007 Adam Mitz - - * bin/clean_sems.sh: - - s/xargs/xargs -r/ The -r switch to xargs prevents the command from - being executed when there are no arguments. This will prevent the - extra scoreboard output on Linux (when rem_sems is used): - usage: ipcrm [ [-q msqid] [-m shmid] [-s semid] - [-Q msgkey] [-M shmkey] [-S semkey] ... ] - deprecated usage: ipcrm {shm | msg | sem} id ... - -Mon Mar 5 18:02:42 UTC 2007 Ossama Othman - - * ace/Basic_Types.h (ACE_UINT64_MAX): - - Simplified preprocessor conditionals. - - * ace/RB_Tree.h (ACE_RB_Tree_Iterator_Base): - - Made copy constructor public instead of private. The assignment - operator was already public so there was nothing to be gained by - making the copy constructor protected. Addresses Sun Studio 10 - warnings. - - * ace/Time_Value.inl (to_usec): - - Added support for ACE_LACKS_UNSIGNEDLONGLONG_T case. - - * ace/UUID.cpp (get_systemtime): - - In the ACE_LACKS_UNSIGNEDLONGLONG_T case, wrap 64-bit integer - constant with ACE_INT64_LITERAL macro. Addresses potential - problem where the constant is intepreted as a "long", instead of - "long long". - -Mon Mar 5 17:22:26 UTC 2007 Ciju John - - * ace/INET_Addr.inl: - * ace/INET_Addr.cpp: - * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: - RFC 3330 defines loopback as any address with 127.x.x.x. The - is_loopback API currently simply compares against the - INADDR_LOOPBACK macro. Doing so restricts loopback definition to - 127.0.0.1 which is inconsistent with the RFC definition. This - change will include any address with 127.x.x.x as loopback. - -Mon Mar 5 14:16:49 UTC 2007 Olli Savia - - * tests/run_test.lst: - Updated for LynxOS. - -Mon Mar 5 11:25:12 UTC 2007 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Enabled ACE_HAS_VSFWPRINTF for aCC compiler - -Mon Mar 5 09:21:12 UTC 2007 Johnny Willemsen - - * ace/Atomic_Op_Sparc.c: - * ace/Atomic_Op.{h,cpp}: - Added optimized functions for SunCC on x86. Thanks to - Dennis Chernoivanov for reporting this. - If you want to enable these, add atomic_ops_sparc=1 to your - platform_macros.GNU file - -Sat Mar 3 17:35:52 UTC 2007 Ossama Othman - - * ace/Basic_Types.h (ACE_UINT64_MAX): - - Re-wrap the integer constant with the ACE_UINT64_LITERAL macro - to ensure the appropriate type specifier is used. - -Fri Mar 3 5:01:19 UTC 2007 Ossama Othman - - * ace/Basic_Types.h (ACE_UINT64_MAX): - - Reintroduced this constant for the case where 64 bit integers - are natively supported. It was inadvertently removed. - - Removed stray semi-colon in ACE_LACKS_{UNSIGNED}LONGLONG_T - case. - -Fri Mar 2 21:42:54 UTC 2007 Ossama Othman - - * ace/Basic_Types.h (ACE_UINT64_MAX): - - Corrected value for the ACE_LACKS_{UNSIGNED}LONG_LONG_T case. - - (ACE_U64_TO_U32, ACE_CU64_TO_CU32): - - Converted these macros to inlined functions. - - (ACE_LONGLONG_TO_PTR): - - Cast pointer to intptr_t instead of ptrdiff_t before casting - to the pointer type. The ptrdiff_t type is meant for pointer - differences. - - * ace/High_Res_Timer.cpp (dump): - - Drop ACE_CU64_TO_CU32 macro in favor of standard static_cast<>. - There was no real use for that macro in this case. - - * ace/Numeric_Limits.h (ACE_Numeric_Limits): - - Added a specialization for ACE_U_LongLong. - - * ace/Sample_History.cpp (dump_samples): - - Removed unnecessary cast to 32 bit value. - - Corrected Log_Msg format specifier for unsigned type. - - * ace/Time_Value.cpp (operator*=): - * tests/Time_Value_Test.cpp (run_main): - - Removed ACE_LACKS_NUMERIC_LIMITS preprocessor conditional. Use - ACE_Numeric_Limits<> instead. It is always available. - - * ace/Time_Value.h (to_usec): - * ace/Time_Value.inl (to_usec): - - Enabled support for this method when ACE_LACKS_LONGLONG_T is - defined. - - * ace/UUID.cpp (get_systemtime): - - Fixed support for ACE_U_LongLong type. - -Fri Mar 2 20:48:45 UTC 2007 Steve Huston - - * ACE-INSTALL.html: Improved the description of using Pharlap ETS and - described the ACE_PHARLAP_TESTLOG_TO_FILE config setting. - - * ace/config-pharlap.h: Add a IN_CLASSD(i) macro that always reports - false. Although Pharlap is supposed to support multicast, the - IN_CLASSD macro is only added at WinSock 2. - - * tests/Test_Output.cpp: Allow Pharlap to log to a file by setting - ACE_PHARLAP_TESTLOG_TO_FILE in config.h. The default behavior of - logging to the system console still stands. - -Fri Mar 2 18:18:25 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm: - - Override the targets method to supply a list of targets that can - be used with Eclipse. - -Fri Mar 2 17:48:09 UTC 2007 Ossama Othman - - * ace/Truncate.h (Truncator): - - Fixed one more typo in the ACE_U_LongLong partial specialization - of this functor. Also corrected truncation logic. - -Thu Mar 1 16:30:13 UTC 2007 Douglas C. Schmidt - - * ace/Log_Msg.h (ACE_Log_Msg): Updated the document to remove the - claim that stdout can be used. Thanks to Ian C White - for reporting this. - -Thu Mar 1 13:15:12 UTC 2007 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Removed ACE_HAS_VSWPRINTF, there are dependencies on this - define and no time to handle this fully. - -Thu Mar 1 12:28:12 UTC 2007 Johnny Willemsen - - * ace/Sock_Connect.cpp: - Fixed sun warning - -Thu Mar 1 12:18:12 UTC 2007 Johnny Willemsen - - * examples/Reactor/Misc/test_signals_2.cpp: - Removed HPUX disabling, compiles fine on our system - -Thu Mar 1 9:42:12 UTC 2007 Martin Corino - - * bin/PerlACE/Process_Unix.pm: - * bin/PerlACE/ProcessVX_Unix.pm: - Some fixes for running VxWorks 6.x RTP tests. - -Thu Mar 1 08:51:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_stdio.{cpp,inl}: - Introduced new ACE_HAS_VSWPRINTF that we can set when a platform - has this method - - * ace/config-hpux-11.00.h: - Added ACE_HAS_VSWPRINTF - -Wed Feb 28 21:34:45 UTC 2007 Wallace Zhang - - * bin/tao_orb_tests.lst: - - Added two new TAO tests. - -Wed Feb 28 19:16:12 UTC 2007 Martin Corino - - * ace/DLL_Manager.cpp: - * ace/Parse_Node.cpp: - Fixed pointer conversion warnings on OpenVMS. - -Wed Feb 28 17:44:20 UTC 2007 Ossama Othman - - * ace/Truncate.h (Truncator): - - Fixed typo in the ACE_LACKS_UNSIGNEDLONGLONG_T case. - s/ACE_UIN32/ACE_UINT32/. - -Wed Feb 28 13:32:12 UTC 2007 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Moved ACE_HAS_SSIZE_T outside of the compiler specific part, gcc - and aCC do have ssize_t. Also moved ACE_HAS_XPG4_MULTIBYTE_CHAR - outside of the compiler part. - -Wed Feb 28 11:09:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_unistd.cpp (num_processors): - Implemented for HPUX - -Wed Feb 28 09:58:12 UTC 2007 Johnny Willemsen - - * bin/ADDIDL.DSM: - Moved to TAO - - * bin/msvc_cidlc.pl: - Moved to CIAO - - * indent_macros.perl: - * indent_macros.pl: - Renamed extension to .pl - -Wed Feb 28 09:44:12 UTC 2007 Johnny Willemsen - - * bin/corba-boolean.perl: - * bin/rm_exception_macros.pl: - * bin/subst_env.pl: - * bin/tao_env.pl: - * bin/tao_svcconf.pl: - Moved to TAO/bin, no need to ship these with ACE - -Wed Feb 28 08:14:12 UTC 2007 Johnny Willemsen - - * ace/DLL_Manager.cpp: - Fixed a deadlock that could occur when a dll is loaded which itselfs - also loads a dll in its static initialisation. This fixes bugzilla bug - 2830. - -Tue Feb 27 21:18:07 UTC 2007 Ossama Othman - - * netsvcs/lib/Time_Request_Reply.cpp: - * tests/Integer_Truncate_Test.cpp: - * tests/CDR_File_Test.cpp: - - s/ACE_Utils::Truncate/ACE_Utils::truncate_cast/g. The former is - deprecated. - - * tests/High_Res_Timer_Test.cpp: - - Improved variable types to make use of - ACE_Utils::truncate_cast<> unnecessary. - -Tue Feb 27 18:55:12 UTC 2007 Iliyan Jeliazkov - - * ace/CDR_Stream.cpp: - * ace/Message_Block.cpp: - - The intent of the change is to better detect (and be able to - recover from) a situation when memory allocation fails in - constructing or initializing an ACE_Data_Block. It fixes a - problem with the change from "Mon Feb 26 19:06:36 UTC 2007" - which wasn't accounting for the new datablock size correctly. - -Tue Feb 27 19:33:13 UTC 2007 Ossama Othman - - * ace/Truncate.h: - - Added specializations for ACE_U_LongLong. - - Added yet another const specialization for BCB6 to work around - its inability to use valid specializations with template - parameters that are not const. - - Removed ACE_Utils::Truncate<> altogether. Use - ACE_Utils::truncate_cast<> instead. - -Tue Feb 27 15:18:50 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/docs/templates/gnu.txt: - - Added documentation for template variables used by the gnuace - project type. This is used by document_template.pl found in - MPC/devtools. - -Tue Feb 27 14:59:12 UTC 2007 Johnny Willemsen - - * tests/Process_Manager_Test.cpp: - Fixed incorrect initialized variable - -Tue Feb 27 14:20:26 UTC 2007 Iliyan Jeliazkov - - * ace/CDR_Stream.cpp: - * ace/Message_Block.cpp: - - Reverting my patch from "Mon Feb 26 19:06:36 UTC 2007". It needs - more work. - -Tue Feb 27 13:57:12 UTC 2007 Johnny Willemsen - - * ace/High_Res_Timer.cpp: - * ace/DLL_Test.cpp: - Removed check for KCC, that compiler is not supported anymore - -Tue Feb 27 11:45:06 UTC 2007 Carlos O'Ryan - - * tests/Notification_Queue_Unit_Test.cpp: - Fixed compilation error in Redhat_Enterprise_Linux_3_Debug_WChar - build. Thanks to Johnny Willemsen for letting me know. - -Tue Feb 27 03:34:40 UTC 2007 Carlos O'Ryan - - * tests/Notification_Queue_Unit_Test.cpp: - Use functions instead of macros to workaround compiler warnings - in the HP-UX_11iv2_IA64_aCC_wchar build. - The warnings were harmless, but the code is more readable this - way in any case. Thanks to Johnny Willemsen for bringing the - warnings to my attention. - -Mon Feb 26 20:58:05 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Gestalt.cpp (insert): - - Removed the usage of fprintf to print messages about service - descriptors, inserted using static initializers. It is the only - way if you want to see what is being inserted before ACE_Log_Msg - gets initialized but because it uses stderr directly, it may - affect some aplications' expected output. - - * ace/Service_Repository.cpp (insert): - - Fixing a defective debug statement. - -Mon Feb 26 19:06:36 UTC 2007 Iliyan Jeliazkov - - * ace/CDR_Stream.cpp (grow_and_adjust, clone_nocopy): - - For large sizes the message block constructor may fail to - allocate and/or initialize the necessary ACE_Data_Block - instances. The failure to initialize can go unnoticed and may - cause an unlimited number of recursive invocations of - grow_and_adjust. The change adds a test for the invariant of the - newly allocated ACE_Message_Block instance. - - * ace/Message_Block.cpp (clone_nocopy): - - When memory is scarce the allocation of ACE_Data_Block may - succeed while the initialization can fail. Adding a test, - before the message block is declared good. - -Mon Feb 26 17:17:08 UTC 2007 Adam Mitz - - * bin/PerlACE/Run_Test.pm: - - Set up the $PerlACE::CIAO_ROOT variable, just like $PerlACE::TAO_ROOT - except for CIAO. - - * bin/auto_run_tests.pl: - - Find CIAO tests relative to the $CIAO_ROOT directory. - -Mon Feb 26 13:56:42 UTC 2007 Johnny Willemsen - - * bin/ACETAOCIAO.style: - Updated to version 1.12 of StyleManager - -Mon Feb 26 13:03:19 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - Added code to surround all libraries with a -Wl,--start-group and - -Wl,--end-group only if the compiler is g++, we're linking static - libraries, it's an executable and the 'link_groups' template - variable is set. - -Mon Feb 26 10:08:19 UTC 2007 Olli Savia - - * tests/SOCK_Dgram_Bcast_Test.cpp: - Pass correct buffer length to ACE_OS::vsnprintf(). - Thanks to Yves Alloyer for - reporting this and providing initial patch. - -Mon Feb 26 08:50:13 UTC 2007 Olli Savia - - * ace/Process.cpp (command_line): - Pass correct buffer length to ACE_OS::vsnprintf(). - Thanks to Yves Alloyer for - reporting this and providing initial patch. - -Sun Feb 25 17:26:37 UTC 2007 Jaiganesh B - - * bin/tao_orb_tests.lst: - - Added the DiffServ policy test's run_test.pl. - -Sat Feb 24 23:01:16 UTC 2007 Steve Huston - - * configure.ac: Added ACE_CHECK_LACKS_FUNCS(alphasort) - -Sat Feb 24 22:51:09 UTC 2007 Steve Huston - - * ace/config-sunos5.5.h: - * ace/config-sunos5.10.h: Add ACE_LACKS_ALPHASORT at Solaris 2.5 and - remove it at Solaris 10. Solaris 8 and 9 have an alphasort() but - only for use with the BSD cc compiler and with disclaimer that it's - not supported for use with system libraries nor with multiple - threads. Solaris 10 brings it into supported use. - -Sat Feb 24 17:03:47 UTC 2007 Steve Huston - - * examples/NT_Service/main.cpp: - * examples/NT_Service/nt_svc.{h cpp}: Don't check for disabling - macros until a config file has been included, else it never builds - anywhere. Thanks to Johnny Willemsen for pointing this out. - -Sat Feb 24 09:01:19 UTC 2007 Ossama Othman - - * ace/config-linux.h: - - AIO support pulls in the rt library, which pulls in the pthread - library. Disable AIO in single-threaded builds. - - * tests/Recursive_Mutex_Test.cpp: - - Check if ACE_Recursive_Thread_Mutex::get_nesting_level() is - supported before attempting to use it. - -Sat Feb 24 08:34:08 UTC 2007 Olli Savia - - * ace/config-openvms.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - Added ACE_LACKS_ALPHASORT. - -Fri Feb 23 23:10:17 UTC 2007 Ossama Othman - - * tests/Recursive_Mutex_Test.cpp (test_recursion_depth): - - Issue error messages instead of assert()ing. VxWorks builds - will hang on a crash. Thanks to Johnny for pointing this out. - -Fri Feb 23 19:24:30 USMST 2007 Yan Dai - - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - - Made run_server() and other functions and structures only compiled - when ACE_HAS_SCTP is defined. This should resolve the warning that the - run_server() is defined but not used on some platforms. - -Fri Feb 23 17:47:28 UTC 2007 Carlos O'Ryan - - * tests/Bug_2815_Regression_Test.cpp: - The test should be enabled only if the notification queue is - also enabled. Basically purge_pending_notifications() is not - supported without the notification queue, and that is the - operation we want to test. - -Fri Feb 23 15:37:03 UTC 2007 Steve Huston - - * ace/OS_NS_dirent.inl (alphasort): Use a bigger hammer on the casts. - -Fri Feb 23 10:50:41 UTC 2007 Olli Savia - - * ace/OS_NS_dirent.inl: - Fixed casts again. Hopefully now I got it right. - -Fri Feb 23 08:56:15 UTC 2007 Olli Savia - - * ace/OS_NS_dirent.inl: - Added casts to fix compile errors. - - * ace/config-rtems.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Added ACE_LACKS_ALPHASORT. - -Thu Feb 22 18:37:00 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.h: - * ace/Service_Config.inl: - * ace/Service_Config.cpp: - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.cpp: - - Fixing build troubles caused by the different ACE_TSS interface - for single-threaded builds. Eliminated the intermediary class - (TSS_Resources) and now storing the actual service gestalt - pointer in TSS, thus reducig the memory allocation overhead. - -Thu Feb 22 16:45:30 UTC 2007 Steve Huston - - * tests/MT_SOCK_Test.cpp: Document the actual cause of what's been - observed for some time with some Windows systems exhibiting a - "delayed rejection" of connections in excess of the listener's - backlog. Thank you to Aleksandar Vukajlovic for citing the full cause with its supporting - documentation and explanation. - -Thu Feb 22 15:59:12 UTC 2007 Steve Huston - - * ace/config-win32-common.h: Change the comments around ACE_HAS_PENTIUM - to more accurately reflect its use and setting. With the switch to - QueryPerformanceCounter() for high-res timers on Windows, this - setting doesn't have any affect on timers, but it is used in - some CDR operations. This resolves Bugzilla #1410. - - * ace/OS_NS_time.inl (gethrtime): - * ace/gethrtime.cpp: Remove the comments directing the reader to a - description of using RDTSC on Windows. The comment is long gone, and - RDTSC isn't used on Windows/VC any longer anyway. - -Thu Feb 22 15:07:22 UTC 2007 Ciju John - - * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm: - * bin/MakeProjectCreator/templates/gnu.mpd: - Additions to support DDS specific build rules and versioning. - -Thu Feb 22 13:56:42 UTC 2007 Johnny Willemsen - - * ace/Makefile.am: - Added Notification_Queue.{h,cpp,inl}: - - * ace/OS_NS_dirent.inl: - Added include when ACE_LACKS_ALPHASORT is defined - -Thu Feb 22 13:03:01 UTC 2007 Carlos O'Ryan - - * Merged changes from the bug_2815 branch. From revision 77182 to - revision 77315. - - Tue Feb 20 18:17:00 UTC 2007 Carlos O'Ryan - - * ace/ace_for_tao.mpc: - Add Notification_Queue.cpp to this file too. Thanks to Johnny - Willemsen for pointing this out. - - Mon Feb 19 21:53:58 UTC 2007 Carlos O'Ryan - - * ace/Intrusive_List.inl: - I learned a minute ago that std::swap() was kosher. Use it in - favor of ACE_Swap<>. - - Mon Feb 19 21:47:48 UTC 2007 Carlos O'Ryan - - * tests/run_test.lst: - * tests/Bug_2815_Regression_Test.cpp: - Adjusted the number of iterations so the test would pass on my - G4-based laptop without optimizations or inlining. The previous - numbers were just guesses anyway and I hope the new numbers will - result in no failures for the scoreboard. - - Mon Feb 19 21:29:32 UTC 2007 Carlos O'Ryan - - * ace/Notification_Queue.cpp: - Modified the purging algorithm. The algorithm used a temporary - list to store the elements not purged, so basically all nodes - were either moved to the free list or to the temporary list. - The new algorithm only removes the nodes that needs purging. - In the vast majority of the cases this is more efficient because - most nodes are not purged. - This resulted in a factor of 2 improvement for - tests/Bug_2815_Regression_Test, keep in mind that in this - program 1/16th of the nodes are purged. So in practice I would - expect even better results. - I also changed the order in which the free nodes are re-used, I - think LIFO order has a better chance of re-using the cache, but - I have no evidence or experiments to prove this. - - * ace/Intrusive_List.h: - * ace/Intrusive_List.cpp: - Renamed the remove_i() function to unsafe_remove() and promoted - its access to "public". The function is not safe to use in - general, thus the name, but it resulted in a factor of 2 - performance improvement for ACE_Notification_Queue. - - * tests/Bug_2815_Regression_Test.cpp: - Fixed memory leaks (in the test not the library) - - Mon Feb 19 20:32:34 UTC 2007 Carlos O'Ryan - - * ace/Notification_Queue.h: - * ace/Notification_Queue.inl: - * ace/Notification_Queue.cpp: - Re-factored to use ACE_Intrusive_List in the implementation. - This eliminates memory allocations during additions and removal - of elements. Also, many of the operations cannot fail, so the - code became smaller. - - * ace/Intrusive_List.h: - * ace/Intrusive_List.inl: - Add a swap() member function. - - Mon Feb 19 04:49:35 UTC 2007 coryan - - * ace/Notification_Queue.h: - * ace/Notification_Queue.cpp: - * ace/ace.mpc: - New class to encapsulate the implementation of a user-space - based notification queue. The code was duplicated in both - Select_Reactor.{h,cpp} and Dev_Poll_Reactor.{h,cpp} - - * tests/tests.mpc: - * tests/run_test.lst: - * tests/Notification_Queue_Unit_Test.cpp: - New unit test for the notification queue class. - - * ace/Dev_Poll_Reactor.h: - * ace/Dev_Poll_Reactor.cpp: - * ace/Select_Reactor_Base.h: - * ace/Select_Reactor_Base.cpp: - Refactored notification queue code to a new class - (ACE_Notification_Queue) - - * tests/Bug_2815_Regression_Test.cpp: - Add code to help with debugging. Basically my refactoring above - had at least one bug, and this test uncovered it. But it was - hard to debug because there was no single breakpoint to detect - when the failure condition was triggered. - - * tests: - Add new files to svn:ignore property. Also added some old - files. - - * tests/SSL: - * include/makeinclude: - Add missing files to svn:ignore - - Sun Feb 18 21:13:41 UTC 2007 coryan - - * tests/tests.mpc: - * tests/Bug_2815_Regression_Test.cpp: - Add new regression test for bug 2815. I have not added the test - to the automated test suite because (1) it fails, and (2) it is - a test to reproduce performance - -Thu Feb 22 12:58:42 UTC 2007 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Removed BCB4/5 support - -Thu Feb 22 11:19:59 UTC 2007 Olli Savia - - * ace/OS_NS_dirent.h: - * ace/OS_NS_dirent.inl: - Added ACE_OS::alphasort(). alphasort() is a BSD extension found - on Linux as well. - - * ace/config-lynxos.h: - Added ACE_LACKS_ALPHASORT_PROTOTYPE. - - * ace/config-win32-common.h: - Added ACE_LACKS_ALPHASORT. - - * ace/os_include/os_dirent.h: - Added alphasort prototype. - - * tests/Dirent_Test.cpp: - Chaged to use use ACE_OS::alphasort(). - -Thu Feb 22 09:24:42 UTC 2007 Johnny Willemsen - - * ace/Truncate.h (Truncate, truncate_cast): - Also renamed the Borland part - -Thu Feb 22 04:57:42 UTC 2007 Ossama Othman - - * tests/NonBlocking_Conn_Test.cpp (test_connect): - - Fixed syntax error. s/sizeof ACE_TCHAR/sizeof (ACE_TCHAR)/. - -Wed Feb 21 21:46:18 UTC 2007 Steve Huston - - * ace/config-pharlap.h: - * ace/config-WinCE.h: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_unistd.inl: Changed ACE_LACKS_SETFILEPOINTEREX to - ACE_LACKS_WIN32_SETFILEPOINTEREX to be consistent with the other - ACE_*_WIN32_*things. - - * ace/config-pharlap.h: - * ace/config-WinCE.h: - * ace/NT_Service.{h cpp}: - * examples/NT_Service/nt_svc.h: - * examples/NT_Service/main.cpp: - Also added ACE_LACKS_WIN32_SERVICES for Pharlap and CE. This marks - a platform that is Windows, but doesn't have Windows services. - - * ace/Configuration.{h cpp}: - * ace/Registry.{h cpp}: Rather than exclude registry-using code using - ACE_HAS_PHARLAP, use a new setting ACE_LACKS_WIN32_REGISTRY. - - * ace/config-pharlap.h: Added ACE_LACKS_WIN32_REGISTRY. - - * protocols/ace/HTBP/HTBP_Environment.cpp: - * examples/Reactor/WFMO_Reactor/Registry_Changes.cpp: - * examples/Registry/test_registry_update.cpp: - * examples/Registry/test_registry_iterator.cpp: - * tests/Config_Test.cpp: Don't try registry stuff - if ACE_LACKS_WIN32_REGISTRY is set. - - * examples/Reactor/WFMO_Reactor/Window_Messages.cpp: Don't try this if - ACE_LACKS_MSG_WFMO is set. - - * apps/JAWS/server/IO.{h cpp}: - * apps/JAWS/server/HTTP_Handler.{h cpp}: - * apps/JAWS/server/HTTP_Server.{h cpp}: - * apps/JAWS2/JAWS/IO.{h cpp}: - * apps/JAWS2/JAWS/IO_Acceptor.{h cpp}: - * apps/JAWS2/JAWS/IO_Handler.{h cpp}: - * apps/JAWS3/jaws3/Asynch_IO.cpp: - * examples/APG/Proactor/HA_Proactive_Status.{h cpp}: - * examples/Connection/blocking/SPIPE-acceptor.{h cpp}: - * examples/Connection/blocking/test_spipe_acceptor.cpp: - * examples/Reactor/Proactor/post_completions.cpp: - * examples/Reactor/Proactor/simple_test_proactor.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/Talker.cpp: - Decide on whether or not to compile the asynch support classes - based on ACE_HAS_WIN32_OVERLAPPED_IO, not ACE_WIN32. ACE_WIN32 - is broader than that overlapped I/O-capable ones; Pharlap ETS - doesn't do overlapped I/O, for instance. - -Wed Feb 21 19:27:14 UTC 2007 Ossama Othman - - * ace/Array_Base.cpp (size): - - Simplified return value logic. - - * ace/Auto_Ptr.h (ACE_auto_ptr_reset): - - Added missing "brief" documentation. - - * ace/Caching_Strategies_T.inl: - * ace/Svc_Handler.cpp (init): - - Removed unnecessary uses of ACE_UNUSED_ARG macro. Just comment - out the parameter name instead. - - * ace/DLL_Manager.cpp (unload_all): - * ace/Functor.inl (operator()): - * ace/OS_NS_unistd.h (sbrk): - * ace/OS_NS_unistd.inl (sbrk): - * ace/Parse_Node.cpp: - * ace/Timer_Hash_T.cpp: - - Corrected type used to store pointer value. - s/ptrdiff_t/{u}intptr_t/. - - * ace/SOCK_Dgram.cpp: - - Fixed unused argument warning. - - * ace/String_Base_Const.cpp: - - Workaround npos constant run-time initialization problem in some - mixed shared/static linking conditions by making it easy for the - compiler to embed the value of the constant in the object file - at compile-time. - - * ace/Truncate.h (Truncate, truncate_cast): - - Deprecated ACE_Utils::Truncate() function name in favor of - ACE_Utils::truncate_cast(). The latter better reflects what the - function template actually does. - - * ace/Unbounded_Set.cpp: - * ace/Unbounded_Set.h: - * ace/Unbounded_Set.inl: - - Implement find() method in terms of begin/end iterators to prevent - search from looping indefinitely under some race condition - scenarios. - - Added missing const_iterator factory methods. - - Added missing const_iterator equality and inequality operators. - - * ace/OS_NS_unistd.inl: - * ace/Time_Value.inl: - * ace/Token_Request_Reply.inl: - * ace/FILE_IO.cpp: - * ace/Filecache.cpp: - * ace/High_Res_Timer.cpp: - * ace/Log_Record.cpp: - * ace/MMAP_Memory_Pool.cpp: - * ace/Mem_Map.cpp: - * ace/Message_Queue.cpp: - * ace/Message_Queue_T.cpp: - * ace/Name_Request_Reply.cpp: - * ace/Process.cpp: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_IO.cpp: - * ace/Timer_Hash_T.cpp: - - s/ACE_Utils::Truncate/ACE_Utils::truncate_cast/g. The former is - deprecated. - - From Andrew Schnable - * ace/os_include/os_unistd.h (X_OK): - - Windows has no access() test for X_OK. Use R_OK instead. - - From Russell Mora - * ace/ACE.inl (hex2byte): - * ace/Capabilities.h (is_line, is_empty): - * ace/Capabilities.cpp (parse, fillent, is_entry, is_empty, is_line): - * ace/Get_Opt.cpp (long_option): - * ace/OS_NS_ctype.inl (ace_isalnum): - - Added ACE::ace_isalnum, ACE::ace_isdigit and ACE::ace_islower - and changed to use them where appropriate. This prevents the - narrow char versions being called with wide chars. - - * ace/Asynch_IO.cpp: - - Fixed preprocessor scoping issue in builds where - ACE_HAS_AIO_CALLS is undefined and versioned namspaces are - enabled. ACE_END_VERSIONED_NAMESPACE_DECL ended up being - preprocessed when it should not have. - - * ace/Configuration_Import_Export.cpp (export_config): - - Check the return value of fclose() is required because data may - have been buffered and will be fflush()d with the fclose(). - - * ace/Log_Msg.h: - * ace/Log_Msg.cpp: - - Changed message offset to correct type, ptrdiff_t, since it - contains a pointer difference value. - - * ace/Null_Semaphore.h: - - Added include to get definition of size_t. This is required for - static single-threaded builds on Darwin. - - * ace/OS_NS_stdio.inl (cuserid): - - Check for unexpected failure of getpwuid function; don't - dereference null pointer. - - * ace/Process.cpp (spawn): - - On Windows platforms a process handle is a pointer, not an int. - Corrected format specifiers accordingly. - - * ace/RB_Tree.cpp (remove_i): - - Fixes for Coverity REVERSE_INULL issues. Check for null pointer - before dereferencing. - - * ace/Recursive_Thread_Mutex.cpp (get_nesting_level): - - Reverted change that altered implementation for IA64 Windows - builds. The returned nesting level was incorrect. Use the - implementation used by both 32-bit and AMD 64 bit builds. - - * tests/Recursive_Mutex_Test.cpp (test_recursion_depth): - - Added test cases for the above problem. - - * ace/SOCK_Connector.cpp (shared_connect_finish): - - On Windows, in order to detect when the socket that has been - bound to is in TIME_WAIT we need to do the connect (which will - always return EWOULDBLOCK) and then do an - ACE::handle_timed_complete() (with timeout==0, i.e. poll). This - will do a select() on the handle which will immediately return - with the handle in an error state. The error code is then - retrieved with getsockopt(). - - Good sockets however will return from the select() with ETIME - - in this case return EWOULDBLOCK so the wait strategy can - complete the connection. - - * ace/Service_Manager.cpp (list_services): - - Type conversion - it is unlikely the name of the service is a - string bigger than 2GB (on 32-bit systems) so a static_cast<> is - safe here. - - * ace/Svc_Conf_Lexer.cpp (scan): - - Changed the loop indexing to allow loop variable to be the same - type as variable used to initialise the loop. This avoids - conversion warnings. - - (yylex): - - Fixed unused variable warning. - - * ace/UNIX_Addr.inl (set): - - Correct wide string to narrow string conversion. - - * ace/config-cxx-common.h: - - Eliminated copious amounts of warnings. - - * ace/config-linux.h (ACE_HAS_CLOCK_GETTIME): - * ace/config-linux-common.h (ACE_HAS_CLOCK_GETTIME): - - On linux clock_gettime/clock_settime are not available for - single-threaded builds. - - * ace/os_include/os_dlfcn.h (ACE_DEFAULT_SHLIB_MODE): - - Added DYNAMIC_PATH to the default flags used to call shl_load() - on HP 11.00 (PARISC1.1/32-bit) so that RPATH and SHLIB_PATH are - searched to find the requested .sl. - - * bin/MakeProjectCreator/templates/gnu.mpd (FORCED_IDL_STUBS): - - PCH source files are also dependent on the IDL compiler - generated files. - - * include/makeinclude/platform_hpux_aCC.GNU (SONAME): - - HP platform (non-g++) was missing the appropriate LDFLAGS for - building versioned shared libraries. Copied from the hpux - section of platform_g++_common.GNU. - - Disable warnings when 64 bit file offsets are enabled in HP - 11.11 builds. - - * include/makeinclude/platform_irix6.x_sgic++.GNU (AR, ARFLAGS): - - By default IRIX uses a prelinker to instantiate templates, thus - archives need to be created via CC (using the -ar option) so - that the required templates can be instantiated. This was the - cause of the missing symbols problems reported by users of the - static libraries. - - * include/makeinclude/platform_tru64_cxx.GNU: - - It seems that the default debug level in the Compaq C++ compiler - really goes to town when a template is instantiated - it seems - to add debug information for every scrap of code that the - template instantiation ever see resulting in debug template - instantiations that are up to 1000x bigger than their release - counterparts. Dialing the level back down to -g1 (-g2 is the - default) seems to avoid this issue and we still get debug - symbols for the template instantiation itself. - - * tests/NonBlocking_Conn_Test.cpp (test_connect): - - Fixed potential buffer overrun error. - - From Duane Binder - * ace/ace_wchar.h: - - Added ACE_TEXT_ macros needed by some apps. - - * ace/Process.inl (creation_flags): - * ace/Naming_Context.cpp: - * ace/Registry_Name_Space.cpp: - * ace/Registry_Name_Space.h: - - Use ACE_USES_WCHAR not UNICODE. Whether ACE uses Windows - wchar_t APIs is controlled by ACE_USES_WCHAR and not UNICODE. - - * include/makeinclude/platform_freebsd.GNU: - - Remove pthread and semaphore references for singled threaded - FreeBSD builds. - - * include/makeinclude/platform_linux.GNU (LIBS): - - Prevent single threaded linux builds from linking libpthread - (via librt). - - * include/makeinclude/rules.lib.GNU: - - Not all static libraries have template instantiations. Test if - $(TEMPINCDIR) exists before trying to add objects in an archive - library (was a problem on Tru64 with debug builds). - -Wed Feb 21 14:23:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added bug 1592 regression - -Tue Feb 20 17:56:25 UTC 2007 Douglas C. Schmidt - - * COPYING: Clarified how the COPYING file need to be included with - any code released. Thanks to Scott Mark - for helping clarify this. - -Wed Feb 21 08:35:12 UTC 2007 Johnny Willemsen - - * ace/Swap.{h,cpp,inl}: - Removed, use std::swap instead of ACE_Swap - - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - * ace/Makefile.am: - Removed Swap.{h,cpp,inl} - -Wed Feb 21 08:13:12 UTC 2007 Johnny Willemsen - - * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp: - * examples/IPC_SAP/SSL_SAP/SSL-server.cpp: - Fixed compile problems when wchar is enabled - -Tue Feb 20 19:15:30 UTC 2007 Iliyan Jeliazkov - - * tests/run_test.lst: - - Adding Object_Manager_Flipping_Test to the list of running - tests. - -Tue Feb 20 18:08:47 UTC 2007 Iliyan Jeliazkov - - * tests/Object_Manager_Flipping_Test.cpp: - * tests/tests.mpc: - - Adding new test verifying that after ACE::fini has been called, - the correct pointer value has been stored in TSS for the Service - Config. A subsequent call to ACE::init may SEGV - otherwise. Thanks to Bjoern Rasmussen for reporting it. - -Tue Feb 20 17:15:37 UTC 2007 Adam Mitz - - * ace/config-qnx-rtp.h: - * include/makeinclude/platform_qnx_rtp_gcc.GNU: - - Moved the version detection from the platform_macros file to the - config file. This allows us to use the QNX system-defined macro - _NTO_VERSION, which works in cross-compile environments. The old - method of reading the version number from the "uname -a" output is - not compatible with cross-compilation. - -Tue Feb 20 16:38:24 UTC 2007 William R. Otte - - * bin/MakeProjectCreator/templates/gnu.mpd - * bin/MakeProjectCreator/config/global.features - - Added logic in gnu template for new XSC custom type in CIAO, - and disabled xsc by default in global.features. - -Tue Feb 20 16:12:57 UTC 2007 Steve Huston - - * tests/Bug_2820_Regression_Test.cpp: ACEify use of auto_ptr. - -Tue Feb 20 16:06:12 UTC 2007 Johnny Willemsen - - * ace/os_include/os_stdlib.h: - Simplified the ACE_RANDR_TYPE define setting - - * ace/OS_NS_stdio.inl: - * ace/SOCK_Dgram.cpp: - * ace/WFMO_Reactor.cpp: - Simplified Borland C++ checks, no need to check for the version - number - -Tue Feb 20 15:54:20 UTC 2007 Chad Elliott - - * ace/OS_NS_Thread.cpp: - - Reverted my change to check PTHREAD_STACK_MIN. I just realized - that it may not be defined as an integral value (i.e., Solaris). - -Tue Feb 20 15:46:06 UTC 2007 Chad Elliott - - * ace/OS_NS_Thread.cpp: - - Added ACE_UNUSED_ARG(id) for RTEMS and modified code to check - that size (which is of type size_t) is less than PTHREAD_STACK_MIN - only if PTHREAD_STACK_MIN is greater than zero. - - * ace/OS_NS_stdlib.cpp: - - Fixed a compile error on VxWorks where an attempt to cast - ACE_thread_t to ACE_RANDR_TYPE failed (since ACE_thread_t is char* - on VxWorks). - - * ace/SOCK_Dgram.cpp: - - The iov_len element of the iovec struct is unsigned on RTEMS (as - it is with Linux and Borland C++), so use the same #if check to - avoid code that causes warnings. - -Tue Feb 20 15:06:04 UTC 2007 Chad Elliott - - * ace/SOCK_Dgram.cpp: - - The iov_len element of the iovec struct is unsigned on Linux (as - it is with Borland C++), so use the same #if check to avoid code - that causes warnings. - - * ace/Containers_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/UPIPE_Stream.cpp: - * ace/UUID.cpp: - - Added static_cast<> to avoid conversion warnings. - -Tue Feb 20 15:00:12 UTC 2007 Johnny Willemsen - - * m4/compiler.m4: - Fixed support for --enable-symbol-visibility. This fixes bugzilla - bug 2771, thanks to Waba for reporting - this. - -Tue Feb 20 14:43:00 UTC 2007 Chad Elliott - - * ASNMP/asnmp/pdu.cpp: - * apps/JAWS2/JAWS/Cache_Manager.cpp: - - Added a check for self assignment. - - * ace/INET_Addr.cpp: - * tests/Multicast_Test_IPV6.cpp: - * examples/Web_Crawler/Command_Processor.cpp: - - Removed redundant code to avoid "statement is unreachable" - warnings. - - * examples/APG/Naming/Temperature_Monitor.cpp: - * examples/APG/Naming/Temperature_Monitor2.cpp: - * examples/APG/Streams/Answerer.cpp: - * examples/C++NPv1/Logging_Server.cpp: - * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: - * examples/C++NPv1/Thread_Per_Connection_Logging_Server.h: - - Added ACE_NOTREACHED around unreachable code to avoid "statement - is unreachable" warnings. - - * examples/Connection/blocking/SPIPE-acceptor.cpp: - - Reverted a bug that was introduced many years ago where threads - would be spawned and then the main thread would exit. - - * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp: - * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp: - * performance-tests/SCTP/SOCK_STREAM_srv.cpp: - - Modified to only compile code if ACE_HAS_SCTP is defined. - - * tests/INET_Addr_Test.cpp: - - Check addr.get_host_addr() for non-zero before passing it to - ACE_OS::strcmp(). - -Tue Feb 20 03:08:26 UTC 2007 Carlos O'Ryan - - * tests/tests.mpc: - * tests/Bug_2820_Regression_Test.cpp: - A new test to demonstrate the problems in bug 2820. - -Mon Feb 19 23:13:07 UTC 2007 Steve Huston - - * ace/WFMO_Reactor.h: Clarify description of ok_to_wait(). - - * ace/WFMO_Reactor.cpp (ok_to_wait): Since WinCE can't use the - waitAll arg to atomically wait for both the lock and ok_to_wait - event, use a 2-step process to get both individually. This avoids - entering wfmo either without the ok_to_wait event or without - the lock. Thanks to Craig Johnson for reporting this. Also see: - Mon Oct 16 14:24:25 UTC 2006 Steve Huston - -Mon Feb 19 21:02:55 UTC 2007 Steve Huston - - * ace/Atomic_Op.inl: - * ace/OS_NS_unistd.inl: Adjust code for less-than-modern Win32 systems - such as Pharlap ETS to work with 64 bit file offsets and the lack - of interlocked exchange-add. - -Mon Feb 19 18:33:12 UTC 2007 Johnny Willemsen - - * ace/SSL/SSL_Context.h: - Layout change - - * ace/SSL/SSL_Context.inl (check_context): - Set the verify mode correctly, fixes bugzilla bug 2819 - -Mon Feb 19 12:00:12 UTC 2007 Johnny Willemsen - - * bin/tao_other_tests.lst: - Added Secure_Invocation test, this tests basic functionality but - seems to fail at this moment because of some broken support in - TAO - -Fri Feb 16 23:48:55 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.cpp: - - ACE_INLINE makes sense in .inl files (thanks Steve) - -Fri Feb 16 13:38:04 UTC 2007 Iliyan Jeliazkov - - * ace/Dynamic_Service_Base.cpp: - * ace/Dynamic_Service_Dependency.cpp: - * ace/Service_Config.h: - * ace/Service_Config.inl: - * ace/Service_Config.cpp: - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.inl: - * ace/Service_Gestalt.cpp: - - Reverting my changes since "Tue Feb 13 15:35:54 UTC 2007" as it - has been causing problems, in particular with borland and - no-threads builds. - -Fri Feb 16 12:47:03 UTC 2007 Steve Huston - - * ace/Service_Config.cpp (global): Removed the ACE_INLINE qualifier - from global() - if it's in the .cpp file, it shouldn't be marked - as inline, and isn't marked thusly in the .h file. Fixes unsats. - - * ace/Service_Config.h: Fixed spelling error. - -Thu Feb 15 20:04:01 UTC 2007 Ossama Othman - - * ace/OS_NS_stdlib.cpp (mkstemp_emulation): - - Include process and thread ID in random number generator seed - value. Addresses problems where the same seed value would end - up being used for different processes and/or threads, resulting - in identical filenames being generated. - - Addressed potential race condition on platforms that do not - inline the value of ACE_Numeric_Limits<>::max(). - -Thu Feb 15 17:53:53 UTC 2007 Krishnakumar B - - * THANKS: Check-in rules 101: Check-in files that you have - modified. Don't ever forget this basic rule. - -Thu Feb 15 13:50:58 UTC 2007 Johnny Willemsen - - * ace/CDR_Stream.h: - * ace/Connector.h: - * ace/DEV_IO.h: - * ace/FIFO_Recv.h: - * ace/FIFO_Send.h: - * ace/FIFO_Send_Msg.h: - * ace/FILE_IO.h: - * ace/INET_Addr.h: - * ace/Local_Memory_Pool.h: - * ace/Malloc_Base.h: - * ace/MEM_IO.h: - * ace/Mem_Map.h: - * ace/MEM_SAP.h: - * ace/MEM_Stream.h: - * ace/Message_Block.h: - * ace/MMAP_Memory_Pool.h: - * ace/OS_NS_unistd.h: - * ace/Pipe.h: - * ace/Process_Manager.h: - * ace/QoS/SOCK_Dgram_Mcast_QoS.h: - * ace/Service_Types.h: - * ace/Shared_Memory_Pool.h: - * ace/SOCK_Dgram.h: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_IO.h: - * ace/SOCK_SEQPACK_Association.h: - * ace/SPIPE_Stream.h: - * ace/Stream.h: - * ace/Task.h: - * ace/Thread.h: - * ace/Thread_Manager.h: - * ace/UPIPE_Stream.h: - Doxygen improvements - -Thu Feb 15 13:38:58 UTC 2007 Johnny Willemsen - - * ace/ATM_Connector.h: - * ace/DEV_Connector.h: - * ace/DEV_IO.h: - * ace/Dev_Poll_Reactor.h: - * ace/FILE_Connector.h: - * ace/Hash_Map_Manager_T.h: - * ace/IOStream_T.h: - * ace/LOCK_SOCK_Acceptor.h: - * ace/Map_Manager.h: - * ace/MEM_IO.h: - * ace/MEM_SAP.h: - * ace/MEM_Stream.h: - * ace/Message_Block.h: - * ace/Message_Queue.h: - * ace/Message_Queue_T.h: - * ace/Module.h: - * ace/Proactor.h: - * ace/Reactor.h: - * ace/Reactor_Impl.h: - * ace/Select_Reactor_T.h: - * ace/Sig_Handler.h: - * ace/Signal.h: - * ace/SOCK.h: - * ace/SOCK_Acceptor.h: - * ace/SOCK_Dgram.h: - * ace/SOCK_IO.h: - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/SOCK_SEQPACK_Association.h: - * ace/SPIPE_Connector.h: - * ace/Stream.h: - * ace/Svc_Handler.h: - * ace/Task_Ex_T.h: - * ace/Task_T.h: - * ace/Thread_Manager.h: - * ace/TLI_Acceptor.h: - * ace/TLI_Connector.h: - * ace/Token.h: - * ace/WFMO_Reactor.h: - * ace/XTI_ATM_Mcast.h: - Doxygen improvements - -Thu Feb 15 13:12:01 UTC 2007 Chad Elliott - - * examples/OS/Process/imore.cpp: - - Removed an enclosing block around code that caused issue with - SunCC 5.8. There was a comment claiming that the block was needed - so that the ACE_Process_Options could elegantly close the file - handlers that it kept, however the ACE_Process_Options object does - not close the file handlers. The ACE_Process does the handle - closing. - -Thu Feb 15 05:41:11 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Gestalt.inl: - * ace/Service_Gestalt.cpp: - - Moved find off-line because it requires a full declaration of - ACE_Service_Repository, which is unavailable when the inl file - is compiled (inlining on) - -Wed Feb 14 23:05:16 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.h: - * ace/Service_Config.inl: - * ace/Service_Config.cpp: - * ace/Service_Gestalt.h: - * ace/Service_Gestalt.cpp: - - Moved the ACE_Unmanaged_Singleton usage to the implementation - file and eliminated the unnecesary #includes, aiming to reduce - the footprint. - -Wed Feb 14 19:56:14 UTC 2007 Adam Mitz - - * ace/Service_Config.h: - s/TAO_Export/ACE_Export/ - -Wed Feb 14 19:21:58 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added bug 2809 regression - -Wed Feb 14 17:33:22 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.h: - Fixing a compile problem with g++ and borland compiler, which - treat members of private nested classes as "hidden" even when - the enclosing type has been exported. - -Wed Feb 14 12:59:58 UTC 2007 Johnny Willemsen - - * ace/Acceptor.h: - Doxygen improvement - -Wed Feb 14 11:31:58 UTC 2007 Johnny Willemsen - - * ace/os_include/os_stdio.h: - * ace/os_include/os_unistd.h: - Move ACE_STDIN, ACE_STDOUT and ACE_STDERR from stdio to unistd - file and use STDIN_FILENO, STDOUT_FILENO and STDERROR_FILENO if - these are defined yet, this way we use the same defines and header - files as in the posix specification. This fixes bugzilla bug 2731. - Thanks to Abdul Sowayan - for reporting this. - - * ace/Truncate.h: - Added another const specialization for Borland C++ - -Wed Feb 14 11:03:58 UTC 2007 Johnny Willemsen - - * tests/Process_Manager_Test.cpp: - Added test code from bugzilla 2797, thanks to Yves Alloyer - for reporting this. - -Wed Feb 14 10:06:58 UTC 2007 Johnny Willemsen - - * bin/tao_other_tests.lst: - Added TAO/orbsvcs/tests/Bug_2800_Regression/run_test.pl - -Wed Feb 14 08:53:58 UTC 2007 Johnny Willemsen - - * ace/Active_Map_Manager_T.h: - * ace/Cache_Map_Manager_T.h: - * ace/CDR_Size.h: - * ace/CDR_Stream.h: - * ace/Configuration.h: - * ace/Dev_Poll_Reactor.h: - * ace/Future.h: - * ace/Future_Set.h: - * ace/Hash_Cache_Map_Manager_T.h: - * ace/High_Res_Timer.h: - * ace/INET_Addr.h: - * ace/IO_SAP.h: - * ace/IPC_SAP.h: - * ace/Map_T.h: - * ace/MEM_SAP.h: - * ace/Message_Block.h: - * ace/Msg_WFMO_Reactor.h: - * ace/Multihomed_INET_Addr.h: - * ace/Priority_Reactor.h: - * ace/Reactor.h: - * ace/Reactor_Impl.h: - * ace/Recursive_Thread_Mutex.h: - * ace/Registry.h: - * ace/Semaphore.h: - * ace/Shared_Memory_MM.h: - * ace/Shared_Memory_SV.h: - * ace/SOCK_SEQPACK_Association.h: - * ace/Thread_Mutex.h: - * ace/Timeprobe_T.h: - * ace/WFMO_Reactor.h: - Doxygen improvements - - * ace/Truncate.h: - Fixed compile problems with Borland C++, thanks to Ossama for - giving a solution. - -Tue Feb 13 20:33:58 UTC 2007 Krishnakumar B - - * THANKS: Added gzeleniy@gmail.com to the THANKS list. - -Tue Feb 13 15:35:54 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.{h,inl,cpp}: - - Refactoring to simplify the TSS usage, reduce overhead and - eliminate a memory leak. - - * ace/Service_Gestalt.cpp: - - Fixed a memory leak in Service_Type_Dynamic_Guard dtor. Updated - logging. - - * ace/Dynamic_Service_Base.cpp: - * ace/Dynamic_Service_Dependency.cpp: - - Updated to use SC::instance () to better express the contract - for these classes. They simply don't need to be aware whether - they are using a global, or a TSS-local gestalt . - -Tue Feb 13 14:44:06 UTC 2007 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Removed VxWorks 5.4.2 support, we haven't build for it in years - -Tue Feb 13 12:58:13 UTC 2007 Chad Elliott - - * ACEXML/common/Exception.h: - * ACEXML/common/Exception.cpp: - * ACEXML/common/SAXExceptions.h: - * ACEXML/common/SAXExceptions.inl: - * ACEXML/common/SAXExceptions.cpp: - - Changed the print() and message() methods to const. There was no - reason for thease to be non-const and it makes it possible to - catch const references of the ACEXML exception types. - -Mon Feb 12 20:24:04 UTC 2007 Steve Huston - - * examples/Logger/Acceptor-server/server_loggerd.cpp (handle_input): - * examples/Logger/simple-server/Logging_Handler.cpp (handle_input): - Log the host name of the peer, not "", as previous code - did; also make sure to put it in ACE_TCHAR form. See also - Thu Feb 8 23:09:59 UTC 2007 Douglas C. Schmidt - -Mon Feb 12 19:20:06 UTC 2007 Johnny Willemsen - - * ace/CORBA_macros.h: - Fixed several macros which where using () around the exception - to be thrown - -Mon Feb 12 18:10:42 UTC 2007 Steve Huston - - * ace/Name_Request_Reply.cpp (timeout): - * netsvcs/lib/Time_Request_Reply.cpp (timeout, decode): - Truncate 64-bit time value down to the platform's time_t size. - -Mon Feb 12 15:18:42 UTC 2007 Chad Elliott - - * bin/fuzz.pl: - - Check for the use of ACE_THROW_SPEC in TAO or CIAO code only. - It's usage within ACE is still ok in some situations. - -Mon Feb 12 14:44:06 UTC 2007 Johnny Willemsen - - * bin/fuzz.pl: - Removed old todo's, extended msvc ver check - - * ace/Codeset_IBM1047.cpp: - * ace/Functor.cpp: - * ace/Functor.inl: - * ace/Hash_Map_Manager_T.cpp: - * ace/Hash_Multi_Map_Manager_T.cpp: - * ace/Sched_Params.cpp: - * ace/Sched_Params.inl: - Converted to doxygen style documentation - - * bin/doxygen-convert-h.pl: - Only handle source files - -Mon Feb 12 14:38:06 UTC 2007 Johnny Willemsen - - * ace/CORBA_macros.h: - Use ACE_LACKS_DEPRECATED_MACROS to make it possible to build without - all the emulated exception macros. Will make sure people can't use them - anymore in core code without noticing that - - * ace/Global_Macros.h: - Just define ACE_THROW_SPEC again as about a week ago, we need a fuzz check - to make sure people don't use this anymore in TAO - - * ace/Reactor.h: - Layout change - - * tests/Thread_Manager_Test.cpp: - Layout change to debug message - -Mon Feb 12 14:35:25 UTC 2007 Chad Elliott - - * bin/doxygen-convert-h.pl: - - Allow filenames or directories. If a directory is passed, it is - recursively searched for any file. - -Mon Feb 12 13:57:06 UTC 2007 Johnny Willemsen - - * etc/*.doxygen: - Removed ACE_THROW_SPEC - -Sat Feb 10 23:13:06 UTC 2007 Steve Huston - - * ace/Svc_Conf_Lexer.cpp (ace_yy_buffer_state): Disable VC8 warning - C4351 (input_ elements will be default-initialized) for this - block. The new behavior is good and desireable, so the warning - noise can be silenced in this case. - - * ace/Timer_Hash_T.cpp (reschedule, schedule_i): When calculating the - hash value, truncate the seconds value down to size_t range because - the modulo value used to hash is a size_t. Avoids a compile warning - about losing data when time_t is larger than size_t. - -Fri Feb 9 21:40:02 UTC 2007 Krishnakumar B - - * ace/High_Res_Timer.inl: - * ace/High_Res_Timer.cpp: - - Removed ACE_WIN32 specific code in ACE_High_Res_Timer to reflect - the change in the default value of ACE_HR_SCALE_CONVERSION. - Removed uses of ACE_HRTIME_CONVERSION and use - ACE_Utils::Truncate instead. - - * ace/OS_NS_time.h: - - Changed the check for defining ACE_HRTIME_CONVERSION and - ACE_HRTIME_TO_U64 from ACE_HRTIME_T_IS_BASIC_TYPE to - ACE_LACKS_UNSIGNEDLONGLONG_T. - - * tests/High_Res_Timer_Test.cpp: - - Updated the test to use ACE_Utils::Truncate instead of - static_cast which caused 0 to be output when time_t is 64-bit. - -Fri Feb 9 12:19:57 UTC 2007 Chad Elliott - - * bin/rm_exception_macros.pl: - - Fixed a bug where the end of the ACE_THROW_SPEC would not be - recognized. - -Thu Feb 8 23:09:59 UTC 2007 Douglas C. Schmidt - - * examples/Logger/Acceptor-server/server_loggerd.cpp (handle_input): - * examples/Logger/simple-server/Logging_Handler.cpp (handle_input): - * examples/Logger/client/logging_app.cpp (ACE_TMAIN): Fixed these - programs to use the proper (new) formatting for ACE_Log_Record. - Thanks to Mouna Seri for - reporting this. - -Thu Feb 8 19:40:30 UTC 2007 Steve Huston - - * ace/Makefile.am: - * ace/ace.mpc: - * ace/Time_Request_Reply.{h cpp}: - * netsvcs/lib/Makefile.am: - * netsvcs/lib/lib.mpc: - * netsvcs/lib/Time_Request_Reply.{h cpp}: Moved Time_Request_Reply - from ace to netsvcs; it's only used from netsvcs and is only useful - as an example of some ACE usage. Real time synch needs should be - met using NTP. - - * ace/Name_Request_Reply.{h cpp}: Changed the sec_timeout_ transfer - member from ACE_UINT32 to ACE_UINT64 to accomodate 64-bit time_t. - - * netsvcs/lib/TS_Clerk_Handler.h: - * netsvcs/lib/TS_Server_Handler.h: Time_Request_Reply.h now is included - from netsvcs/lib, not ace. - - * netsvcs/lib/Time_Request_Reply.{h cpp}: Changed the time-passing - API arguments in the constructor and time() methods from ACE_UINT32 - to time_t. The on-wire protocol buffer fields that carry seconds - values between clerk and server were changed from ACE_UINT32 to - ACE_UINT64 to accomodate 64-bit time_t values. - - * NEWS: Explained the user-visible ramifications of these changes. - -Thu Feb 8 09:23:50 UTC 2007 Olli Savia - - * ace/MMAP_Memory_Pool.cpp: - Removed empty else statement. - - * include/makeinclude/platform_linux.GNU: - Fixed TCL/TK settings - -Thu Feb 8 08:03:57 UTC 2007 Olli Savia - - * ace/config-openbsd.h: - Removed ACE_LACKS_CLEARERR and added ACE_HAS_3_PARAM_READDIR_R. - -Wed Feb 7 23:04:49 UTC 2007 Wallace Zhang - - * bin/tao_other_tests.lst: - - Added two existing Notify Service examples into the autotest list. - -Wed Feb 7 21:01:39 UTC 2007 Steve Huston - - * ACE-INSTALL.html: Added a bit of info about building for National - Instruments' LabVIEW RT which uses Pharlap ETS. In particular, if - building for LabVIEW's Pharlap, add #define ACE_PHARLAP_LABVIEW_RT - to your config.h file along with #include "ace/config-pharlap.h" - to adjust for slight differences between stock Pharlap and - LabVIEW RT's variant. - - * ace/config-pharlap.h: Pharlap doesn't supply InterlockedExchangeAdd - and doesn't do SetFilePointerEx (needs ACE_LACKS_SETFILEPOINTEREX). - - * ace/OS_NS_Thread.cpp (sched_params): Don't attempt SetPriorityClass - on Pharlap - it's not defined. - - * ace/OS_NS_Thread.inl (thr_getprio): For Pharlap ETS, use - EtsGetTimeSlice() to determine the scheduling policy; if the time - slice is anything other than 0, it's multitasking ACE_SCHED_OTHER. - - * ace/OS_NS_stdio.inl (cuserid): Pharlap doesn't go GetUserName() so - make it ACE_NOTSUP_RETURN. - (adjust_flock_params): Use SetFilePointer() instead of - SetFilePointerEx(), even with 64 bit offsets, if - ACE_LACKS_SETFILEPOINTEREX is set. - - * ace/OS_NS_unistd.inl (pwrite): For Windows platforms without - overlapped I/O, don't rely on availability of SetFilePointerEx - - platforms that have it also have overlapped I/O. In this case, use - SetFilePointer with appropriate call differences for 32/64 bit - file offsets. - - * ace/Pagefile_Memory_Pool.{h inl cpp}: Pharlap doesn't do this class. - - * ace/Configuration.{h cpp}: - * ace/Registry.{h cpp}: The Windows registry is not available in - Pharlap. - -Wed Feb 7 14:44:23 UTC 2007 Chad Elliott - - * bin/rm_exception_macros.pl: - - Added the ability to remove the ACE_THROW_SPEC's completely. - -Tue Feb 6 16:44:00 UTC 2007 Johnny Willemsen - - * ace/Global_Macros.h: - For the moment expand ACE_THROW_SPEC to nothing, we want to deprecate - this in TAO and want to see the impact of this on the tests - -Tue Feb 6 15:36:00 UTC 2007 Steve Huston - - * ace/Time_Value.inl: Remove the #if around #include "ace/Truncate.h" - because ACE_Utils::Truncate is needed in a case that's not in a - ACE_HAS_TIME_T_LONG_MISMATCH block. - -Mon Feb 5 19:58:39 UTC 2007 Steve Huston - - * ace/Log_Record.cpp (operator>>): Use ACE_Utils::Truncate to truncate - the received 64-bit time seconds to time_t. - -Mon Feb 5 17:16:20 UTC 2007 Steve Huston - - * ace/config-win32-msvc-8.h: Added a new setting for Windows VC8, - ACE_HAS_TIME_T_LONG_MISMATCH, to capture the case that requires - a replacement timeval def. See the following for details: - Thu Feb 1 23:46:27 UTC 2007 Steve Huston - This change isolates just the desktop VC8 compiler for the change, - avoiding compilers that don't need it and/or can't deal with - the code. - - * ace/Time_Value.{h inl}: Change code that uses a replacement timeval - from ACE_WIN32 to ACE_HAS_TIME_T_LONG_MISMATCH. - -Fri Feb 2 14:45:00 UTC 2007 Johnny Willemsen - - * ace/Dynamic_Service_Base.cpp: - Fixed compile error - -Fri Feb 2 14:32:06 UTC 2007 Adam Mitz - - * bin/auto_run_tests.pl: - Modified default behavior (if no -a, -o, -t, -C options are given) - so that the script looks for TAO in $TAO_ROOT as well as - $ACE_ROOT/TAO and similarly for CIAO. This change supports the peer - style layout. - -Fri Feb 2 14:08:00 UTC 2007 Johnny Willemsen - - * bin/rm_exception_macros.pl: - Also zap ACE_THROW_RETURN from application code, that is also - deprecated now - -Fri Feb 2 12:03:00 UTC 2007 Johnny Willemsen - - * ace/TSS_T.cpp: - Fixed merge error - -Fri Feb 2 11:43:00 UTC 2007 Simon Massey - - * include/makeinclude/platform_hpux_aCC.GNU: - Supress 3.xx warnings about non-return from functions - (Anoyingly it doesn't seem to think that a throw - terminates the execution flow of a function.) - -Fri Feb 2 10:47:55 UTC 2007 Olli Savia - - * ace/Proactor.cpp: - Layout change. - - * ace/config-lynxos.h: - Enabled POSIX_SIG_PROACTOR and made some cleanups. - - * ace/os_include/net/os_if.h: - Removed LynxOS specific include. - - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: - Enabled these tests again even if ACE_HAS_BROKEN_SIGEVENT_STRUCT - is defined. - -Fri Feb 2 10:31:14 UTC 2007 Johnny Willemsen - - * ace/CORBA_macros.h: - Removed workaround for ACE_THROW_RETURN for HP aCC compiler. This is - only needed for the HP 3.x compiler and we can suppress just this - warning. When this has been build on the scoreboard we will - zap the usage of this macro. - - * ace/Dynamic_Service.cpp: - * ace/Dynamic_Service_Base.cpp: - * ace/Service_Config.{h,cpp}: - * ace/Service_Gestalt.cpp: - * ace/TSS_T.cpp: - Layout changes - - * ace/Thread_Manager.cpp: - Const improvement - -Fri Feb 2 06:56:14 UTC 2007 Johnny Willemsen - - * bin/ACETAOCIAO.style: - Configuration file for profactor (see www.profactor.co.uk), a - code beautifier tool that we want to use to reformat the code - in ACE/TAO/CIAO. - -Fri Feb 2 06:48:40 UTC 2007 Olli Savia - - * ace/POSIX_CB_Proactor.h: - * ace/config-aix-5.x.h: - * ace/config-freebsd.h: - * ace/config-integritySCA.h: - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - * ace/config-rtems.h: - * ace/config-sunos5.4-g++.h: - * ace/config-sunos5.4-sunc++-4.x.h: - * ace/config-sunos5.5.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - - Removed unnecessary sigval_t typedef and feature test macro - ACE_LACKS_SIGVAL_T - -Thu Feb 1 23:46:27 UTC 2007 Steve Huston - - * NEWS: Note change to ACE_Log_Record constructor. - - * ace/Log_Record.h (constructor): The "long time_stamp" argument was - changed from long to time_t to correspond with what's expected. - - * ace/Log_Record.{h inl cpp}: The secs_ value was changed from - ACE_UINT32 to time_t and is handled as a ACE_CDR::LongLong in the - CDR insertion and extraction operators. The encode() and decode() - methods are deprecated and will be removed in a future version of - ACE. - - * ace/Message_Block.cpp (priority_status): Cast sec() value to - suseconds_t size to avoid truncation warnings. - - * ace/Time_Value.{h inl cpp}: Use a private struct to manage time - internally for Windows since Windows' struct timeval uses long - values internally instead of the standard time_t/suseconds_t - that the class API uses (and POSIX uses in timeval). When a - real OS-defined timeval is needed, build it on the fly for Windows. - - * tests/High_Res_Timer_Test.cpp: When logging ACE_Time_Value-obtained - sec/usec values, truncate them down to u_int size. Avoids passing - 64-bit values to ACE_Log_Msg when only 32 bits will be taken from - the arg vector for a %u format spec. Fixes crashing of this test - on Win/VC8. - - * examples/APG/Naming/Temperature_Monitor.cpp: - * examples/APG/Naming/Temperature_Monitor2.cpp: Treat time as an int - instead of a time_t; makes the logic easier even though it'll break - sometime in 2038. - - * examples/ASX/UPIPE_Event_Server/event_server.cpp: Unify use of time_t - to hold time values from ACE_OS::time(). - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: When measuring messages - per second, truncate seconds down to a 'long' to avoid truncation - warnings at compile time from converting to double. - - * examples/Reactor/Misc/notification.cpp (svc): Initialize an - ACE_Time_Value with secs / 2 instead of getting the seconds, - multiplying into usecs, then dividing by 2. Avoids data truncation - issues. - - * examples/Reactor/Multicast/Log_Wrapper.cpp (log_message): Cast - result of time() to long to insert in the multicast buffer. Avoids - truncation warning. Will stop recording a legit result sometime in - 2038 but the receiver isn't looking at the time field. - - * apps/gperf/src/Gen_Perf.cpp: - * ASNMP/tests/test_config.h (randomize): - * examples/Reactor/WFMO_Reactor/Multithreading.cpp: - * protocols/ace/RMCast/Link.cpp: - * protocols/ace/RMCast/Simulator.cpp: - * protocols/examples/TMCast/Member/member.cpp: - * tests/Auto_Event_Test.cpp: - * tests/Handle_Set_Test.cpp: - * tests/Recursive_Mutex_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/Thread_Mutex_Test.cpp: - * tests/Timer_Queue_Test.cpp: Cast time_t to u_int for use as an - ACE_OS::srand() seed - we just want some bits, not to fit it back in - range with ACE_Utils::Truncate. - -Thu Feb 1 11:21:32 UTC 2007 Olli Savia - - * ace/POSIX_CB_Proactor.h: - * ace/POSIX_CB_Proactor.cpp: - * ace/Proactor.cpp: - * ace/config-freebsd.h: - * ace/config-lynxos.h: - - Introduced a new feature test macro ACE_HAS_BROKEN_SIGEVENT_STRUCT - to make POSIX_CB_Proactor compile on FreeBSD 7.0-CURRENT. - - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: - - Modified due to changes above. - -Thu Feb 1 08:05:14 UTC 2007 Johnny Willemsen - - * ace/Message_Queue.{h,cpp,inl}: - Fixed compile errors in the NT Message Queue when build without - threading under windows - - * ace/OS_NS_Thread.cpp: - Layout changes - -Wed Jan 31 23:06:42 UTC 2007 Adam Mitz - - * ace/config-qnx-rtp-62x.h: - - Replaced ACE_LACKS_CUSERID with ACE_HAS_ALT_CUSERID to get the ACE - library to provide us with a cuserid() function. - - * ASNMP/asnmp/asn1.cpp: - * apps/drwho/global.h: - * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: - * examples/Logger/Acceptor-server/server_loggerd.cpp: - * examples/Logger/client/logging_app.cpp: - * examples/Logger/simple-server/Logging_Handler.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Reactor/Multicast/server.cpp: - * netsvcs/lib/Name_Handler.cpp: - - Replaced htonl, htons, ntohl, and ntohs with the appropriate - ACE_XTOYZ macro (ACE_HTONL, for example). QNX doesn't have htonl and - friends without adding extra #includes. - -Wed Jan 31 19:03:37 UTC 2007 Chad Elliott - - * ace/Basic_Types.h: - - Added constants ACE_FLT_MIN and ACE_DBL_MIN to provide consistency - with ACE_FLT_MAX AND ACE_DBL_MAX. - - * ace/CDR_Base.h: - * ace/CDR_Base.cpp: - - Enhanced the ACE_CDR::LongDouble class which is used on platforms - where the native long double is not 16 bytes. - - Provided operators to support multiplication, division, addition - and subtraction as well as conversion to the native long double. - - An assign() method is also provided to set the value of the - ACE_CDR::LongDouble. Since this class will be stored in a union - (if used as an IDL type), it can not have a non-trivial constructor - or assignment operator. The existing - ACE_CDR_LONG_DOUBLE_INITIALIZER macro is used to initialize the - LongDouble and a new macro, ACE_CDR_LONG_DOUBLE_ASSIGNMENT, is - used to assign to the LongDouble in a portable fashion. - - * bin/tao_orb_tests.lst: - - Added the new TAO LongDouble test. - -Wed Jan 31 17:30:46 UTC 2007 Steve Huston - - * ace/config-hpux-11.00.h: - * include/makeinclude/platform_hpux_aCC.GNU: If stdcpplib=0 is - selected at build time, explicitly set -AP compile option to use - old C++ libraries and no std namespace. Also set - ACE_LACKS_NUMERIC_LIMITS when -AP is set - there is a numeric_limits - but not in std. Note that ACE_Array_Map won't build with stdcpplib=0 - but pre-ACE-5.5 legacy code will still build. - - Also removed the HP-UX 10.x remnants and pre-3.0 aC++ support - from platform_hpux_aCC.GNU. Could probably safely remove more old - compiler support (anything older than 3.56 probably) but I played - it a little conservative for now. - -Wed Jan 31 17:22:11 UTC 2007 Chad Elliott - - * protocols/examples/examples.mwc: - - Removed the implicit usage. It is not necessary since each - example has a .mpc file. - - * protocols/examples/example_base.mpb: - - Removed this file. It was not needed. - -Wed Jan 31 16:55:23 UTC 2007 Adam Mitz - - * ace/config-qnx-rtp-62x.h: - - Removed #define ACE_HAS_INLINED_OSCALLS as it seems to be both rarely - used (only oddball platforms like unixware and other QNX versions - have it) and also incompatible with inline=0 builds. - Also added new config macros ACE_LACKS_STRPTIME (June 2006) and - ACE_HAS_3_PARAM_READDIR_R (December 2006). - These modifications have been tested with QNX 6.3 but from the docs - on the QNX web site I believe they apply to QNX 6.2 as well. - -Wed Jan 31 15:44:54 UTC 2007 Olli Savia - - * ace/POSIX_CB_Proactor.h: - * ace/POSIX_CB_Proactor.cpp: - Use sigval (which is SUS defined) instead of sigval_t. If this - change doesn't break on any platform I'll remove unnecessary - typedef and related stuff. - -Wed Jan 31 13:31:14 UTC 2007 Johnny Willemsen - - * bin/fuzz.pl: - Removed obsolete checks for environment macros - - * ace/Recycable.h: - Removed empty brief doxygen tag - - * ace/OS_NS_unistd.inl: - * ace/config-rtems.h: - Renamed ACE_HAS_BROKEN_SZ_PAGESIZE to ACE_HAS_NOTSUP_SC_PAGESIZE - -Wed Jan 31 13:21:14 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_hpux_gcc.GNU: - Added improvement for GCC on HPUX IA64 - -Wed Jan 31 10:17:14 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_hpux_gcc.GNU: - Improved support for GCC on HPUX IA64 - -Wed Jan 31 07:50:44 UTC 2007 Krishnakumar B - - * ace/OS_NS_Thread.cpp (ACE_OS::sched_params): Check if the - ACE_id_t id that is being passed in is equal to ACE_SELF. If - so, pass ::GetCurrentProcessId() to ::OpenProcess() instead of - id. ACE_SELF is defined to be 0 on ACE_WIN32; process id 0 is - the zero-page process, and we certainly don't want to attempt to - set it to REALTIME_PRIORITY_CLASS :-) - -Wed Jan 31 03:25:51 UTC 2007 Krishnakumar B - - * ace/High_Res_Timer.h: - - Removed the special case default definition of - ACE_HR_SCALE_CONVERSION to ACE_ONE_SECOND_IN_MSECS on Windows; - added a #ifndef around the default definition in case the user - wishes to change it. This was done to prevent useless values - like 0 showing up in calculations using ACE_Basic_Stats when the - time intervals are of the order of a few microseconds. Most of - the current machines have a QueryPerformanceCounter() - implementation that returns a value of atleast 3 MHz. So it - should be completely safe to use the definition of - ACE_ONE_SECOND_IN_USECS as the default value for - ACE_HR_SCALE_CONVERSION on contemporary x86 machines running - Windows. - - * ace/Message_Block.inl: - * ace/Message_Block.cpp: - - Moved the definition of - ACE_Dynamic_Message_Strategy::priority_status() from - Message_Block.inl to Message_Block.cpp. It was a big function - and it currently has code that causes a warning with VC8 on - Windows. - -Tue Jan 30 19:21:50 UTC 2007 Chad Elliott - - * ace/Module.h: - - Removed the trailing comma from the last element of the enum. - -Tue Jan 30 16:26:43 UTC 2007 William R. Otte - - * bin/sets-manager.py: - - Modified to pin the version of MPC at the time of branching/tagging - under modules/ACE/MPC. Note: This does not branch OR tag MPC, - it simply causes the branch/tag to check out a specific - revision of MPC. - -Tue Jan 30 13:51:32 UTC 2007 Chad Elliott - - * ace/Module.h: - * ace/Module.cpp: - - There was no way to distinguish between flags not being set and - flags to indicate that tasks should not be deleted. I have - changed the M_DELETE_NONE enum value to 4 and added a new enum - value for use in flag initialization. With this change, the - close() method can determine if it needs to use the flags passed - in or the internal flags. This fixes Bugzilla #2497. - -Tue Jan 30 11:35:14 2007 Johnny Willemsen - - * ace/Countdown_Time.{h,cpp}: - Readded destructor, missed that it updates the max_wait_time - passed to the constructor - -Tue Jan 30 10:44:14 2007 Johnny Willemsen - - * include/makeinclude/wrapper_macros.GNU: - When pipes is set to 1, also add -pipe to the CCFLAGS - - * include/makeinclude/platform_rtems.x_g++.GNU: - Set pipes to 1, set DCCFLAGS - -Tue Jan 30 10:14:14 2007 Johnny Willemsen - - * ace/Unbounded_Set.cpp: - Initialise pointer with 0. - - * ace/OS_NS_unistd.inl (getpagesize): - * ace/config-rtems.h: - RTEMS does define _SC_PAGESIZE, but using sysconf with _SC_PAGESIZE - results in -1. Added a new define ACE_HAS_BROKEN_SC_PAGESIZE to be - able to disable the usage of sysconf (_SC_PAGESIZE) for rtems 4.6, - the ::getpagesize() function returns a correct value. - -Tue Jan 30 09:46:14 2007 Johnny Willemsen - - * tests/OS_Test.cpp: - Added a test for ACE_OS::getpagesize(), it should return a value - bigger then 0 else the memory pools don't work - -Tue Jan 30 00:25:00 UTC 2007 Steve Huston - - * ace/config-hpux-11.00.h: If the user sets RWSTD_NO_NAMESPACE to - keep a lot of the standard C++ library out of the std namespace, - avoid setting ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB, and also - hoist everything else from std into the global namespace. This is - necessary because RW wasn't consistent with using their internal - _RWSTD_NO_NAMESPACE and the user-settable RWSTD_NO_NAMESPACE and - some things end up in std and some not; so get the ones that ended - up in std out to global with the rest of them. - -Mon Jan 29 19:48:14 2007 Johnny Willemsen - - * ace/Based_Pointer_Repository.cpp: - * ace/Basic_Stats.cpp: - * ace/Codeset_Registry.cpp: - * ace/FILE.cpp: - * ace/FILE_Addr.cpp: - Layout improvements - -Mon Jan 29 19:07:14 2007 Johnny Willemsen - - * etc/ciao.doxygen: - * etc/ciao_config_handlers.doxygen: - * etc/ciao_DAnCE.doxygen: - Removed CIAO_NAMESPACE - -Mon Jan 29 18:58:14 2007 Johnny Willemsen - - * ace/Argv_Type_Converter.cpp: - * ace/Asynch_Pseudo_Task.cpp: - * ace/Cached_Connect_Strategy_T.cpp: - Layout changes, result of experimenting with a code - beautifier - - * ace/config-rtems.h: - Improved rtems port, added support for building with - threads=0 - - * ace/config-sco-5.0.0.h: - Removed commented out define - - * ace/config-vxworks6.4.h: - putenv fails with VxWorks 6.4 with a pentium target - - * ace/Countdown_Time.{h,cpp}: - Use bool, removed return value from most methods, it was - meaningless, removed destructor, not needed to update members - in a destructor - - * ace/Dev_Poll_Reactor.h: - Export Token_Guard, fixes bugzilla 2786, thanks to - for reporting this - - * OS_NS_pwd.inl (getpwnam_r): - Initialize pointer with 0, simplified this a little - - * docs/ACE-guidelines.html: - Updated example with doxygen style of documentation - -Sun Jan 28 19:59:14 2007 William R. Otte - - * ACE version 5.5.6 released. - -Fri Jan 26 10:03:12 UTC 2007 Johnny Willemsen - - * ace/Cached_Connect_Strategy_T.cpp - * ace/Event_Handler_T.inl - * ace/Future.cpp - * ace/Future_Set.cpp - * examples/C++NPv2/Reactor_Logging_Server_T.cpp - Use typename - -Thu Jan 25 19:59:23 UTC 2007 Chad Elliott - - * bin/MakeProjectCreator/templates/gnu.mpd: - - The include of rules.cia.GNU must come before the include of - rules.tao.GNU in order for CIAO libraries to have the correct - version numbers. - - * bin/auto_run_tests.pl: - - Fixed the -l option to use the correct variable name and corrected - a bug where the script changed to the wrong directory if the -l - option was used. - - * bin/clean_sems.sh: - - Support the ngvipc command to clean up semaphores on MacOS X. - - * bin/rm_exception_macros.pl: - - A new script to assist users in the removal of all ACE related - exception macros. - -Thu Jan 25 19:24:12 UTC 2007 Johnny Willemsen - - * etc/*.doxygen: - Removed ACE_ENV macros - -Thu Jan 25 11:00:12 UTC 2007 Johnny Willemsen - - * ace/CDR_Stream.h: - Fixed typo, fixes part of bugzilla bug 2780, thanks to - for reporting this. - - * docs/Download.html: - Enabled links for source only packages, they are available - from x.5.5 - -Thu Jan 25 07:50:12 UTC 2007 Johnny Willemsen - - * ace/Containers_T.cpp: - Use typename - -Wed Jan 24 12:25:12 UTC 2007 Johnny Willemsen - - * ace/Acceptor.h: - * ace/Cached_Connect_Strategy_T.h: - * ace/Connector.h: - Use typename instead of ACE_TYPENAME which is now - deprecated - - * ace/Codeset_IBM1047.cpp: - Added missing includes - - * ace/config-aix-5.x.h: - * ace/config-borland-common.h: - * ace/config-cxx-common.h: - * ace/config-g++-common.h: - * ace/config-hpux-11.00.h: - * ace/config-icc-common.h: - * ace/config-irix6.x-sgic++.h: - * ace/config-linux-common.h: - * ace/config-lynxos.h: - * ace/config-netbsd.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-unixware-7.1.0.udk.h: - * ace/config-win32-dmc.h: - * ace/config-win32-ghs.h: - * ace/config-win32-interix.h: - * ace/config-win32-msvc-7.h: - * ace/config-win32-msvc-8.h: - * ace/config-win32-visualage.h: - Removed ACE_HAS_TYPENAME_KEYWORD, we do require that each - compiler supports typename - - * ace/config-cygwin32.h: - * ace/config-hpux-11.00.h: - * ace/config-lynxos.h: - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - * ace/config-netbsd.h: - * ace/config-openvms.h: - * ace/config-rtems.h: - * ace/config-sunos5.5.h: - * ace/config-tandem-nsk-mips-v3.h: - * ace/config-tru64.h: - Removed ACE_HAS_MEMCHR - - * ace/config-doxygen.h: - Enabled COIOP and Transport Current - - * ace/config-macros.h: - Deprecated ACE_TYPENAME, users can still use it, but in some builds - on the daily scoreboard it now can't be used anymore - - * ace/config-mvs.h: - Improved MVS support - - * ace/Global_Macros.h: - * ace/Malloc_T.h: - * ace/Map_T.h: - * ace/Strategies_T.h: - Use typename - - * ace/Log_Msg.cpp: - * ace/os_include/sys/os_types.h: - * ace/Task.cpp: - Added support for MVS - - * ace/OS_NS_string.{h,cpp,inl}: - Replaced ACE_HAS_MEMCHR with ACE_LACKS_MEMCHR, this way a platform that - lacks this method has to set an explicit define, maybe it now shows - that all platforms have this method and we don't need an emulation - anymore. Also removed several emulations that are not needed anymore - - * ace/OS_NS_Thread.inl: - Layout changes - - * ace/OS_NS_wchar.{h,cpp}: - Changed second argument of wcschr_emulation to wchar_t, that way we don't - need a cast anymore - - * ace/Rtems_init.c: - Improved this file - - * ace/Sock_Connect.cpp: - Initialise some pointers with 0 - - * bin/cvslog: - Removed, not needed anymore - - * bin/fuzz.pl: - Removed checks for emulated exception macros - - * examples/Export/run_test.pl: - Use ACE_ROOT - - * examples/Misc/test_read_buffer.cpp: - Initialise pointer with 0 - - * include/makeinclude/platform_mvs.GNU: - Improved support - - * netsvcs/servers/servers.mpc: - Simplified - - * performance-tests/UDP/udp_test.cpp: - * tests/Cached_Allocator_Test.cpp: - * tests/Env_Value_Test.cpp: - * tests/Handle_Set_Test.cpp: - Removed ACE_LACKS_FLOATING_POINT check - - * tests/Thread_Creation_Threshold_Test.cpp: - Added missing \n - -Mon Jan 22 23:14:56 2007 William R. Otte - - * ACE version 5.5.5 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-08a b/ACE/ChangeLogs/ChangeLog-08a deleted file mode 100644 index 7a48c1babf4..00000000000 --- a/ACE/ChangeLogs/ChangeLog-08a +++ /dev/null @@ -1,5373 +0,0 @@ -Thu Feb 21 02:34:37 CST 2008 Johnny Willemsen - - * ACE version 5.6.3 released. - -Thu Feb 21 08:09:12 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - Updated for a Windows host - -Mon Feb 18 19:59:12 UTC 2008 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run Bug_3171_Regression when messaging is disabled - -Thu Feb 14 11:22:12 UTC 2008 Johnny Willemsen - - * examples/Semaphores/starter.cpp: - * examples/Semaphores/worker.cpp: - Fixed unicode link errors - -Wed Feb 13 20:53:00 UTC 2008 Ciju John - - * bin/tao_orb_tests.lst: - Turn off test Bug_3193_Regression. - -Wed Feb 13 19:03:12 UTC 2008 Johnny Willemsen - - * examples/Semaphores/starter.cpp: - Added missing return - -Wed Feb 13 16:19:09 UTC 2008 Adam Mitz - - * include/makeinclude/rules.local.GNU: - - This is a (partial) fix for bug #3217, addressing two problems when - using gnu make on Windows systems: - 1. make depend (invoking depgen.pl) was broken - 2. when LN_S is cp the target of the copy operation was not updated - if the actual executable was remade. - -Wed Feb 13 12:41:12 UTC 2008 Johnny Willemsen - - * examples/Semaphores/*: - Added a basic example for process semaphores - -Tue Feb 12 15:43:57 UTC 2008 James H. Hill - - * NEWS: - Updated the NEW file with my updates for to ACE. - -Tue Feb 12 12:31:34 UTC 2008 Simon McQueen - - * bin/PerlACE/Run_Test.pm: - - Amend PerlACE::add_lib_path to add path relative to $HOST_ROOT - also in the even that it is set. Should hopefully make this function - work on VXWorks. In the even that it does this will fix bug #3177. - -Tue Feb 12 10:18:14 UTC 2008 Simon McQueen - - * bin/MakeProjectCreator/config/ace_output.mpb: - - Create new base project to direct libraries into $ACE_ROOT/lib. - - * bin/MakeProjectCreator/config/acelib.mpb: - - Remove entries that direct libraries into $ACE_ROOT/lib. - - * ACEXML/apps/svcconf/svcconf.mpc: - * ACEXML/common/common.mpc: - * ACEXML/parser/parser/parser.mpc: - * ASNMP/asnmp/asnmp.mpc: - * Kokyu/Kokyu.mpc: - * ace/QoS/qos.mpc: - * ace/SSL/ssl.mpc: - * ace/SSL/ssl_for_tao.mpc: - * ace/ace_flreactor.mpc: - * ace/ace_foxreactor.mpc: - * ace/ace_qtreactor.mpc: - * ace/ace_tkreactor.mpc: - * ace/ace_xtreactor.mpc: - * apps/Gateway/Gateway/gateway.mpc: - * apps/Gateway/Peer/peer.mpc: - * apps/JAWS/server/server.mpc: - * apps/JAWS2/HTTPU/httpu.mpc: - * apps/JAWS2/JAWS/jaws2.mpc: - * apps/JAWS3/jaws3/jaws3.mpc: - * netsvcs/lib/lib.mpc: - * protocols/ace/HTBP/HTBP.mpc: - * protocols/ace/RMCast/RMCast.mpc: - * protocols/ace/TMCast/TMCast.mpc: - * websvcs/lib/lib.mpc: - - Add ace_output.mpb as base project. - - * bin/PerlACE/Run_Test.pm: - - Add '.' onto the search path for test libraries. - - * bin/tao_orb_tests.lst: - - Create new alternate entries for some overly protracted tests - enabling a quicker run through. - - * tests/SSL/acetest.mpb: - - Add $ACE_ROOT/tests onto the link path for ACE tests. - - * tests/run_test.pl: - - Add $ACE_ROOT/tests onto the load path for running ACE tests. - -Mon Feb 11 20:46:13 UTC 2008 Ciju John - - Merging in changes from branch "Bug_3193". Here are the individual - Changelog entries: - Thu Feb 7 23:01:55 UTC 2008 Ciju John - - * bin/tao_orb_tests.lst: - Turn on reactive flushing oneway send test scenario. - - Wed Feb 6 21:41:25 UTC 2008 Ciju John - - * bin/tao_orb_tests.lst: - Disable test on Windows. No viable mechanism found to fulfill - test pre-requisites on Windows. - - Wed Jan 30 23:18:35 UTC 2008 Ciju John - - * bin/tao_orb_tests.lst: - Turn on TAO/tests/Oneway_Send_Timeouts. - -Mon Feb 11 16:12:12 UTC 2008 Johnny Willemsen - - * bin/PerlACE/Run_Test.pm: - Added wait_interval_for_process_shutdown which can be used to - wait longer on slower systems - -Wed Feb 6 08:30:12 UTC 2008 Johnny Willemsen - - * ace/config-vxworks5.x.h: - Some PPC's do lack log2 - -Wed Feb 6 23:29:55 UTC 2008 Steve Huston - - * examples/APG/Proactor/HA_Proactive_Status.cpp: Pass - ACE_DEFAULT_ASYNCH_BACKLOG, not ACE_DEFAULT_BACKLOG, to the - ACE_Asynch_Acceptor contructor. Corrects a startup error on Windows. - Thanks to Sorin Voicu-Comendant for this fix. - - * THANKS: Added Sorin Voicu-Comendant to the Hall of Fame. - -Tue Feb 5 22:15:29 UTC 2008 Simon McQueen - - * bin/tao_other_tests.lst: - - Scheduled bug #3216. - -Tue Feb 5 18:51:12 UTC 2008 Johnny Willemsen - - * bin/MakeProjectCreator/config/test_files.mpb: - Use run_test*.pl as filter and automatic=0. That way we only - generate projects when there is a run_test.pl file. Thanks to - Adam Mitz for the suggestions. - - * bin/MakeProjectCreator/config/acedefaults.mpb: - Readded test_files - -Tue Feb 5 13:49:12 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - No need to set TAO_IDL, TAO_IDL_DEP, etc, just use HOST_ROOT. - Also set the values in such a way we also support a Solaris host. - -Tue Feb 5 13:30:12 UTC 2008 Johnny Willemsen - - * bin/MakeProjectCreator/config/acedefaults.mpb: - Added build_files as base project, test_files is the one that - causes some problems - -Tue Feb 5 08:07:12 UTC 2008 Johnny Willemsen - - * bin/MakeProjectCreator/config/acedefaults.mpb: - Temporarily remove test_files and build_files, it seems - to cause some errors in the windows builds - -Tue Feb 5 07:58:12 UTC 2008 Johnny Willemsen - - * ace/Select_Reactor_Base.cpp: - Revert change of yesterday, caused compile errors on non win32 - platforms - -Mon Feb 4 19:48:12 UTC 2008 Johnny Willemsen - - * ace/config-vxworks6.6.h: - Simplified this file - - * ace/Obstack_T.cpp: - Initialise a few pointers - - * ace/Select_Reactor_Base.cpp: - Removed duplicated code, made loop easier to read - - * ace/Naming_Context.{h,cpp,inl}: - Use bool and added new inline file - -Mon Feb 4 18:37:12 UTC 2008 Johnny Willemsen - - * bin/MakeProjectCreator/config/test_files.mpb: - New file to list run_test.pl as Test_Files in for example a msvc - project file. Thanks to Adam Mitz for suggesting a way to do - this. This fixes bugzilla 3212 - - * bin/MakeProjectCreator/config/acedefaults.mpb: - Added test_files and build_files as base projects so that we - get *.mpc/*.mpb/*.mwc/run_test.pl added to project files - -Mon Feb 4 12:34:06 UTC 2008 Simon McQueen - - * bin/tao_other_tests.lst: - - Schedule regression tests for bug #2777 and #3215. - -Sat Feb 2 07:08:12 UTC 2008 Johnny Willemsen - - * ace/Malloc_T.h: - * ace/Process_Semaphore.inl: - * ace/Reactor.h: - * ace/Select_Reactor_T.h: - Doxygen improvements - -Sat Feb 2 06:36:12 UTC 2008 Johnny Willemsen - - * ace/config-win32-borland.h: - Updated for CodeGear C++ Builder 2007 December Update - -Fri Feb 01 13:25:00 UTC 2008 Simon Massey - - * ace/Timer_Heap_T.cpp: - Fixed possiable race condition. - - * test/Timer_Queue_Reference_Counting_Test.cpp: - Fixed periodic test timeout problem. - -Wed Jan 30 16:00:12 UTC 2008 Johnny Willemsen - - * ace/Message_Queue.inl: - Fixed incorrect include check - -Sun Jan 27 07:32:12 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_mingw32.GNU: - With gcc4 use the shared gcc libs - - * ACE-INSTALL.html: - Document postfix for msvc71 - -Sat Jan 26 07:18:12 UTC 2008 Johnny Willemsen - - * tests/Proactor_Scatter_Gather_Test.cpp: - Fixed GCC warnings - -Sat Jan 26 06:45:12 UTC 2008 Johnny Willemsen - - * 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 - Fixed compile errors with MinGW GCC 4.2.1 - -Fri Jan 25 18:43:46 UTC 2008 James H. Hill - - * docs/svn/config: - * docs/svn/svn-prefs.reg: - - Added *.mwb files to the default configuration. - -Fri Jan 25 09:51:12 UTC 2008 Johnny Willemsen - - * ace/config-g++-common.h: - GCC 4 with MinGW has other export macros in config-win32-common.h that - must be used - -Thu Jan 24 09:12:12 UTC 2008 Johnny Willemsen - - * bin/MakeProjectCreator/config/acedefaults.mpb - * bin/MakeProjectCreator/config/vc8nmake.mpb - * bin/MakeProjectCreator/config/vc9nmake.mpb - Changed to use synchronous exception handling with msvc 8/9 which - is the default. Asynchrous exception handling does catch access - violations but it leads to lower performance and other problems. - Also the C+ gurus advice not to use asynchronous exception - handling. This fixes bugzilla 3169, thanks to - Adrian Tulloch - for reporting this. - - * tests/Reactor_Exceptions_Test.cpp: - Always use a C++ exception to test the reactor. This test is the - only one that fails when using synchronous exception handling with - msvc8/9 because it causes only an access violation on windows - with msvc, on other platforms it already did throw a regular - C++ exception - - * bin/MakeProjectCreator/templates/bor.mpd: - Fixed typo in this template - -Thu Jan 24 08:32:53 UTC 2008 Vladimir Zykov - - * bin/tao_orb_tests.lst: - Disabled test for bug 3154 on builds where no tao_idl present. - -Thu Jan 24 08:25:12 UTC 2008 Johnny Willemsen - - * ace/OS_main.h: - Declare ace_main as extern C for VxWorks kernel mode. With this - we can resolve ace_main using symFindByName. This fixes bugzilla - 3204 - -Wed Jan 23 23:40:32 UTC 2008 Steve Huston - - * ace/INET_Addr.cpp (set): Propagate IPv4 and 6 lookup error values - to errno. - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: When picking a - unused listen port ends up binding an IPv6 address, use the IPv6 - "localhost" for the connect address. When unregistering a event - handler, don't deref reactor() if it's zero (happens when the - registration fails). Remove an extraneous %t spec in a log string. - -Wed Jan 23 19:21:12 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - With GCC 2.9x we need to use -mcpu - -Wed Jan 23 17:23:31 UTC 2008 Steve Huston - - * include/makeinclude/platform_linux.GNU: Don't add CFLAGS to CCFLAGS - because it ends up adding -pipe twice when pipe=1. Thanks to Howard - Finer for reporting this. - -Tue Jan 22 10:46:12 UTC 2008 Johnny Willemsen - - * bin/PerlACE/ProcessVX.pm: - * bin/PerlACE/ProcessVX_Unix.pm: - * bin/PerlACE/ProcessVX_Win32.pm: - Refactored these scripts so that we have less duplicated code - -Mon Jan 21 06:07:12 UTC 2008 Johnny Willemsen - - * ace/Dev_Poll_Reactor.cpp: - Fixed compile error - -Thu Jan 17 19:58:12 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.3.GNU: - Override RM on a solaris host - -Thu Jan 17 19:35:12 UTC 2008 Johnny Willemsen - - * ace/config-vxworks6.6.h: - Improved VxWorks 6.6 RTP support - -Thu Jan 17 19:24:12 UTC 2008 Johnny Willemsen - - * ace/Task_Ex_T.h: - Marked can_put as deprecated like in Task_T.h - - * ace/Task_Ex_T.inl: - Replaced assert with notsup return - - * ace/Task_T.inl: - Removed not needed includes - - * ace/ACE.cpp: - Const change - - * ace/DLL.cpp: - Changed close_handle_on_destruction flag and error flag to bool. - Use ACE_OS::dl_error() to get the error message - - * ace/DLL.h: - Changed close_handle_on_destruction flag and error flag to bool - - * ace/Log_Msg.cpp: - Use bool and print the process id as hex on OpenVMS, the DCL - scripts also prints the process id as hax - - * ace/Log_Msg.h: - Only defined the ACE_DEBUG, ACE_ERROR, and other - macros when they are not defined yet - -Thu Jan 17 18:57:12 UTC 2008 Johnny Willemsen - - * ace/config-vxworks6.6.h: - Improved x86 support - - * ace/Dev_Poll_Reactor.cpp: - Layout and const changes - - * ace/Encoding_Converter_Factory.cpp: - Const changes - - * ace/FILE_Connector.h: - * ace/Handle_Ops.h: - Doxygen changes - - * ace/POSIX_Proactor.cpp: - Use prefix increment/decrement and initialise pointer to 0 - - * ace/SSL/SSL_Context.cpp: - Initialise pointer to 0 - -Wed Jan 16 19:40:08 UTC 2008 Jeff Parsons - - * THANKS: - - Added Nayeem Khan . - -Wed Jan 16 18:16:12 UTC 2008 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Turn on Bug 3198 regression test. - -Wed Jan 16 15:50:19 UTC 2008 Abdullah Sowayan - - * bin/PerlACE/ProcessVX_Unix.pm: - * bin/PerlACE/ProcessVX_Win32.pm: - - Added support for iBootBar. iBootBar is similar to iBoot, except - that it is rack mounted with 8 power outlets. The scripts above - were extended to use the iBootBar iPAL protocol. The configuration - in the autobuild xml file of iBootBar is exactly the same that of - iBoot, except that you need to define ACE_RUN_VX_IBOOT_OUTLET - environment variable to specify the power outlet number you want - to use. - -Wed Jan 16 13:05:17 UTC 2008 Abdullah Sowayan - - * bin/PerlACE/ProcessVX_Unix.pm: - * bin/PerlACE/ProcessVX_Win32.pm: - - Added ACE_RUN_VX_LOGIN and ACE_RUN_VX_PASSWORD to the scripts. - One can use those variables in the autobuild XML to specify - the login/password used to access the target from telnet. - -Tue Jan 15 19:16:56 UTC 2008 Ciju John - - * bin/tao_orb_tests.lst: - Turn on Bug 3193 regression test. - -Mon Jan 14 16:14:11 UTC 2008 James H. Hill - - * tests/STL_algorithm_Test_T.cpp: - - Changed the std::for_each functor object to an actual class - that will count the number of elements handled. It would - be nice to eventually validate that the number of elements - handled is equal to the number of elements in the container. - -Mon Jan 14 14:06:33 UTC 2008 James H. Hill - - * tests/Hash_Map_Manager_Test.cpp: - - Removed the print_value () function since it is no longer - needed in the test. - - * tests/STL_algorithm_Test_T.cpp (for_each_callback): - - Wrapped the unused argument in ACE_UNUSED_ARG () to prevent - compiler warnings. - -Mon Jan 14 05:01:19 UTC 2008 James H. Hill - - * tests/acetest.mpb: - - Added an empty template declaration to the base project to - prevent actual tests from including unnecesary template source - files. - -Mon Jan 14 04:47:50 UTC 2008 James H. Hill - - * ace/Hash_Map_Manager_T.h: - - Added the ACE style iterator declaration for the const - reverse iterator to ACE_Hash_Map_Manager_Ex. - -Mon Jan 14 04:41:29 UTC 2008 James H. Hill - - * ace/Hash_Map_Manager_T.h: - * ace/Hash_Map_Manager_T.inl: - - Implemented the ACE_Hash_Map_Const_Reverse_Iterator_Ex class, - which is the const_reverse_iterator for the - ACE_Hash_Map_Manager_Ex class. - - * tests/Hash_Map_Manager_Test.cpp: - * tests/STL_algorithm_Test_T.h: - * tests/STL_algorithm_Test_T.cpp: - - Generalized the STL algorithm test used in the hash map - manager test so that it can be used with any ACE container. - - * tests/tests.mpc: - - Added the STL_algorithm_Test_T.* files to the - Hash_Map_Manager_Test project. - -Sun Jan 13 16:40:12 UTC 2008 Johnny Willemsen - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Set PLATFORM_STLPORT_CPPFLAGS independent of the Sun C++ version. - Thanks to Charles Brown - for reporting that this was causing a problem with Studio 12 - - * include/makeinclude/platform_g++_common.GNU: - Only set CXX_VERSION_FOR_TEST when it has not been set yet - -Fri Jan 11 09:01:12 UTC 2008 Martin Corino - - * bin/PerlACE/ProcessVX_Win32.pm: - Added ACE_RUN_VX_PRJ_ROOT env.var. to allow for projects - having root directory for tests different from ACE_ROOT. - -Tue Jan 8 09:02:12 UTC 2008 Johnny Willemsen - - * ace/os_include/sys/os_types.h: - Changed pid_t to be an int on windows. This fixes bugzilla - 3190, thanks to Nathan Ernst - for reporting this - -Sun Jan 6 19:55:12 UTC 2008 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Don't run bug 2936 in a static build - -Sun Jan 6 06:43:12 UTC 2008 Johnny Willemsen - - * tests/IOStream_Test.cpp: - Fixed include and removed chorus support - -Sat Jan 5 07:03:36 UTC 2008 James H. Hill - - * ChangeLog: - - Fixed incomplete entry below. - -Fri Jan 4 23:49:23 UTC 2008 James H. Hill - - * tests/Hash_Map_Manager_Test.cpp: - - Removed std::count_if sanity check since std::count_if is not - supported on Sun Studio 10. - -Fri Jan 4 18:47:56 UTC 2008 Adam Mitz - - * bin/generate_doxygen.pl: - - Added support for peer-based layout of ACE+TAO+CIAO, and also fixed - the use of TAGFILES when the -html_output option is used. - -Thu Jan 3 14:29:28 UTC 2008 James H. Hill - - * tests/Hash_Map_Manager_Test.cpp: - - Moved the Key_Equal_To struct to the top of the file. - -Thu Jan 3 14:21:40 UTC 2008 James H. Hill - - * tests/Hash_Map_Manager_Test.cpp: - - Removed ACE_HAS_STDCPP_STL_INCLUDES guard so the test can - always execute the test_STL_algorithm () function if it - compiles. - -Thu Jan 3 01:06:23 UTC 2008 James H. Hill - - * tests/Hash_Map_Manager_Test.cpp: - - Fixed compilation error on non-Windows systems. For some - reason, I used TCHAR instead of ACE_TCHAR. :/ - -Thu Jan 3 00:47:36 UTC 2008 James H. Hill - - * ace/Hash_Map_Manager_T.h: - - Increased support for using ACE_Hash_Map_*_Iterator with - functions in the STL header file. This involved - defining all the traits required by std::iterator_traits - for all the iterator types. - - * tests/Hash_Map_Manager_Test.cpp: - - Updated the test to check if the ACE_Hash_Map_*_Iterator - classes are able to compile with simple STL - cases. If the target platform does not support STL or - our iterators, this compilation will fail. - -Mon Dec 31 18:32:29 UTC 2007 Chris Cleeland - - * bin/PerlACE/Process_Unix.pm: - - Integrated a change originally made in OCITAO 1.4a to use a - non-blocking waitpid() call in a loop (max 5 seconds) to avoid - hanging the perl process in case waitpid() doesn't return. - -Sun Dec 30 18:31:12 UTC 2007 Johnny Willemsen - - Simplify the setup for VxWorks. We have GNU and config files for each - specific release, but the end user can just include the two new files - below and we will select the specific file required - - * include/makeinclude/platform_vxworks.GNU: - New file, based on the environment variable WIND_PLATFORM we - select a specific VxWorks GNU file. The WIND_PLATFORM environment - variable is set by the wrenv tool - - * ace/config-vxworks.h: - Based on ACE_VXWORKS we include a specific vxworks config file. - ACE_VXWORKS is added to the compiler flags when using the ACE - GNU makefiles. - -Fri Dec 28 18:57:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.6.GNU: - Added -fno-strict-aliasing to the CPPFLAGS as workaround to get - rid of the warnings on the VxWorks system header files. This - has been reported to WindRiver - -Fri Dec 28 18:18:12 UTC 2007 Johnny Willemsen - - * ace/config-sunos5.11.h: - New file for Solaris 11 - -Fri Dec 28 17:52:32 UTC 2007 Chris Cleeland - - * ace/config-macosx-leopard.h: - - Tweaks to get ACE tests to run properly on OS X Intel. Major - change was properly setting ACE_SIZEOF_LONG_DOUBLE. - - * include/makeinclude/platform_macosx_leopard.GNU: - - Broke this into a separate file, even though all it does right - now is include the platform_macros for tiger. Eventually I hope - to refactor the OS X support so that it's structured more like - the G++ supporting files. - -Fri Dec 28 17:44:37 UTC 2007 Chris Cleeland - - * ace/Atomic_Op.cpp: - - Folded in changes originally from OCITAO 1.5a that prevent low - probability race conditions when using ACE_Atomic_Op<> inside - static instances in libraries that link with libACE. This - addresses [Bug 3185]. - -Fri Dec 28 15:34:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_sunos5_common.GNU: - Solaris 11 also has sendfile in its own library. Thanks to - Douglas Atique for - reporting this. - -Thu Dec 27 11:23:12 UTC 2007 Johnny Willemsen - - * ace/config-linux-common.h: - Enabled event_poll reactor for 2.6 kernels - - * ace/config-openvms.h: - Cleanup - - * ace/config-vxworks6.6.h: - Removed workaround - - * ace/Dev_Poll_Reactor.h: - Removed linux kernel check, moved to config-linux-common.h - -Mon Dec 24 10:17:12 UTC 2007 Johnny Willemsen - - * ace/config-sunos5.7.h: - Added ACE_HAS_DEV_POLL, it is introduced with Solaris 7 - -Mon Dec 24 09:32:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_sunos5_common.GNU: - New file, factored out common sunos5 - - * include/makeinclude/platform_sunos5_g++.GNU: - Use new common file - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Use new common file and removed SunOS4 support - -Fri Dec 21 21:22:58 UTC 2007 Friedhelm Wolf - - * ace/README: added documentation for ACE_HAS_STDCPP_STL_INCLUDES - macro. - -Fri Dec 21 14:10:48 UTC 2007 Douglas C. Schmidt - - * ace/Task_T.inl: Added #include "ace/config-all.h" to the - ACE_NOTSUP_RETURN macro would be visible. Thanks to Steve - Huston for reporting this. - -Fri Dec 21 03:05:46 UTC 2007 Douglas C. Schmidt - - * ace/Task_T.h (class ACE_Task): Updated the documentation for - can_put() to make it clear that this method is deprecated and - will go away at some point. - -Fri Dec 21 03:03:56 UTC 2007 Douglas C. Schmidt - - * ace/Task_T.inl (can_put): Removed the assert() since ACE library - methods shouldn't call assert... Changed this to - ACE_NOTSUP_RETURN. Thanks to Gautam Thaker for reporting this. - -Thu Dec 20 20:01:07 UTC 2007 J.T. Conklin - - * ace/Codecs.h: - * ace/Codes.cpp: - - Fixed fuzz warnings. - -Tue Dec 18 17:56:30 UTC 2007 Douglas C. Schmidt - - * docs/ACE-development-process.html, - * docs/ACE-bug-process.html: Updated these documents to clarify - that submitters of code, bug fixes, etc. waive claims to - copyright or ownership of the submissions. Thanks to Tom - Callaway for help with this. - -Thu Dec 20 15:39:43 UTC 2007 J.T. Conklin - - * ace/Codecs.h: - * ace/Codecs.cpp: - - Add is_chunked argument to encode() which selects whether the - encoded output is "chunked" into newline terminated 72 column - chunks. Fixed bug where "chunked" output was not terminated by - a newline if the input buffer length was an exact multiple of 3. - Thanks to Alick Nie for reporting - inconsistant encoding behavior which lead to this change. - - * THANKS: - - Add Alick Nie . - -Thu Dec 20 14:00:12 UTC 2007 Johnny Willemsen - - * ace/Sched_Params.cpp: - Use VX_TASK_PRIORITY_MAX and VX_TASK_PRIORITY_MIN when they - are defined - -Thu Dec 20 13:46:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Layout change - - * ace/OS_NS_Thread.inl: - Fixed warning with VxWorks 6.6 which uses GCC 4.1.2 - -Thu Dec 20 13:46:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_dlfcn.inl: - Fixed warning with VxWorks 6.6 which uses GCC 4.1.2 - -Thu Dec 20 13:34:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.inl: - Fixed warning with VxWorks 6.6 which uses GCC 4.1.2 - -Thu Dec 20 13:04:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_aix_ibm.GNU: - Fixed typo in this file - -Thu Dec 20 10:30:00 UTC 2007 Simon Massey - - * bin/tao_orb_tests.lst: - - Exclude TAO/tests/CSD_Collocation from LynxOS builds. They - overload/tax the LynxOS kernal resulting in random process - table corruption and filing system errors. - -Wed Dec 19 14:04:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_aix_ibm.GNU: - * ace/config-aix-5.x.h: - Deprecated Visual Age 5 and older - -Tue Dec 18 14:40:11 UTC 2007 Adam Mitz - - * bin/tao_orb_tests.lst: - - Exclude TAO/tests/CSD_Collocation from minimum CORBA builds. - -Tue Dec 18 10:47:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug 3171 Regression - -Mon Dec 17 16:41:44 UTC 2007 Adam Mitz - - * bin/tao_orb_tests.lst: - - Added TAO/tests/CSD_Collocation. - -Mon Dec 17 12:35:00 UTC 2007 Simon Massey - - * bin/tao_other_tests.lst: - added TAO/orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/run_test.pl - for bugzilla 3174. - -Mon Dec 17 10:00:12 UTC 2007 Martin Corino - - * ace/Pipe.cpp: - Implemented fix for delays on OpenVMS when using socketpair() for Pipe. - -Sun Dec 16 19:26:12 UTC 2007 Johnny Willemsen - - * ace/Refcounted_Auto_Ptr.h: - * ace/Refcounted_Auto_Ptr.inl: - Extended this template, thanks to Hu Yi - for extending this template - - * tests/Refcounted_Auto_Ptr_Test.cpp: - Extended - - * tests/TSS_Test.cpp: - Removed pthread draft 4 code and fixed compile warnings with VxWorks 6.6 - - * ace/Pipe.cpp: - Const changes - -Sun Dec 16 07:03:12 UTC 2007 Johnny Willemsen - - * ACEXML/common/AttributesImpl.h: - Doxygen improvements - -Sun Dec 16 06:49:12 UTC 2007 Johnny Willemsen - - * ace/config-sunos5.5.h: - Added ACE_HAS_SOCK_BUF_SIZE_MAX, thanks to Adam Mitz for pointing - out this is needed for Solaris - - * ace/OS_NS_Thread.cpp: - Const changes - - * ace/OS_NS_Thread.inl: - Simplified ifdef checks in multiple methods - - * ace/Select_Reactor_Base.cpp: - Layout change - - * ace/Select_Reactor_Base.inl: - Change for msvc9 - - * ace/Select_Reactor_T.cpp: - No need to check for 0 after ACE_NEW_RETURN - - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: - Changed DEBUGGING to SVC_CONF_Y_DEBUGGING and also fixed - the compile problems that exist in the code guarded by - this define - -Sat Dec 15 15:02:12 UTC 2007 Johnny Willemsen - - * apps/gperf/gperf.mpc: - * bin/PerlACE/perlace.mpc: - Use custom_only=1 for these MPC files - -Sat Dec 15 14:57:12 UTC 2007 Johnny Willemsen - - * ace/Object_Manager.cpp: - Disable the critical error boxes when ACE_DISABLE_WIN32_ERROR_WINDOWS - is defined. This fixes bugzilla 3170. Thanks to Adrian Tulloch - for suggesting this - - * ace/Svc_Conf.h: - Fixed compile error when DEBUGGING is defined - - * ace/Token.cpp: - Renamed DEBUGGING to ACE_TOKEN_DEBUGGING, DEBUGGING is used on - more places like as a member in an enum. Also const, bool changes. - - * ace/TP_Reactor.cpp: - Layout and const changes - -Sat Dec 15 14:36:12 UTC 2007 Johnny Willemsen - - * docs/bzcar/bczar.html: - Updated location of this page and improved bczar instructions - -Fri Dec 14 13:21:12 UTC 2007 Johnny Willemsen - - * etc/index.html: - * docs/Download.html: - Updated for x.6.2 - -Fri Dec 14 02:48:57 CST 2007 Johnny Willemsen - - * ACE version 5.6.2 released. - -Thu Dec 13 16:19:54 UTC 2007 Johnny Willemsen - - * ace/os_include/sys/os_socket.h: - Set ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE to SSIZE_MAX when it is not - set yet - - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-tandem-nsk-mips-v3.h: - No need to set ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE anymore - - * ace/Pipe.h: - Doxygen changes - -Wed Dec 12 13:15:54 UTC 2007 Johnny Willemsen - - * ace/OS_NS_sys_socket.inl: - When ACE_HAS_SOCK_BUF_SIZE_MAX is defined, don't use - SSIZE_MAX but ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE as value - to check. That way we can limit the size of the packets - on OpenVMS. - - * ace/config-openvms.h: - Added ACE_HAS_SOCK_BUF_SIZE_MAX and set - ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE to a value of 64k. This should - increase the test results on OpenVMS to a better level - - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-tandem-nsk-mips-v3.h: - Set ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE to SSIZE_MAX to match - the old behaviour. - - * ace/Reactor.h: - Layout change - - * ace/Select_Reactor_T.cpp: - Layout change, initialise pointer to 0 - - * ace/SSL/SSL_SOCK_Stream.inl: - Const changes - - * ace/TP_Reactor.cpp: - Layout change - -Fri Dec 7 18:33:54 UTC 2007 Johnny Willemsen - - * ace/OS_main.h: - Make sure we initialise the resolvLib with VxWorks RTP - -Fri Dec 7 06:27:54 UTC 2007 Johnny Willemsen - - * apps/gperf/gperf.mpc: - * bin/PerlACE/perlace.mpc: - With vc9 set ConfigurationType to 10 to disable the creation - of the manifest file which fails because these projects don't - have source code - -Thu Dec 6 15:22:54 UTC 2007 Johnny Willemsen - - * ace/SSL/SSL_SOCK_Stream.cpp: - Layout and const changes - -Wed Dec 5 14:46:54 UTC 2007 Johnny Willemsen - - * ace/INET_Addr.cpp: - Use this-> to comply with coding standards - - * ace/OS_NS_dlfcn.inl: - Initialise pointer with 0 - - * ace/OS_NS_netdb.cpp: - Use C++ const_cast instead of c-style cast - -Tue Dec 4 20:20:54 UTC 2007 Johnny Willemsen - - * ace/INET_Addr.cpp: - Removed some not needed ACE_UNUSED_ARG - - * OS_NS_netdb.inl (gethostbyaddr_r): - Fixed VxWorks implementation - -Tue Dec 4 19:28:54 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Run all csd tests on VxWorks - -Tue Dec 4 18:07:59 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Temporarily exclude $TAO_ROOT/orbsvcs/orbsvcs/ESF from the - ACE_SYNCH_MUTEX check to eliminate fuzz warnings. - -Tue Dec 4 16:30:19 UTC 2007 Steve Huston - - * tests/Reactor_Notify_Test.cpp: Don't try to call - run_quiet_notify_test in single-threaded build. - -Tue Dec 4 15:03:54 UTC 2007 Johnny Willemsen - - * ace/CDR_Base.h: - Changed ACE_IMPLEMENT_WITH_NATIVE_LONGDOUBLE to - ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE which has to be defined to - 1. This makes this file easier to maintain - - * ace/config-linux-common.h: - * aceconfig-vxworks5.x.h: - Added ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE defined as 1. This fixes - also the LongDouble issues with VxWorks 6.x - -Tue Dec 4 13:50:54 UTC 2007 Johnny Willemsen - - * netsvcs/lib/Name_Handler.cpp (parse_args): - Fixed unicode build - -Mon Dec 3 19:41:54 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added bug 3163 regression - -Mon Dec 3 19:00:57 UTC 2007 Douglas C. Schmidt - - * netsvcs/lib/Name_Handler.cpp (naming_context): Fixed typos. - -Mon Dec 3 14:57:36 UTC 2007 Douglas C. Schmidt - - * netsvcs/lib/Name_Handler.h: Moved the inline methods to the - Name_Handler.cpp file. Also, zapped the unnecessary virtual - method for naming_context(). Thanks to Johnny for catching - this. - -Mon Dec 3 14:21:20 UTC 2007 Douglas C. Schmidt - - * netsvcs/lib/Name_Handler.{h,cpp}: Check the return value from - this->parse_args (argc, argv) and allow use all range config - options for ACE_Name_Acceptor::init. Thanks to Vladislav Zverev - vladislav at gtss dot spb dot ru> for these patches. - -Mon Dec 3 10:06:54 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.inl: - Removed not needed check for pthread_cancel - -Mon Dec 3 10:02:54 UTC 2007 Johnny Willemsen - - * ace/config-aix-5.x.h: - * ace/config-cray.h: - * ace/config-cygwin32.h: - * ace/config-hpux-11.00.h: - * ace/config-integritySCA.h: - * ace/config-irix6.x-common.h: - * ace/config-linux.h: - * ace/config-macosx-leopard.h: - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - * ace/config-netbsd.h: - * ace/config-openvms.h: - * ace/config-posix.h: - * ace/config-qnx-neutrino.h: - * ace/config-qnx-rtp-62x.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-rtems.h: - * ace/config-sunos5.5.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - * ace/config-win32-interix.h: - Removed ACE_HAS_PTHREADS_STD, we only support the official pthread - standard, not any draft - - * ace/config-cray.h: - Removed support for Unicos 9 and earlier. So far as I can find on the web - unicos 9 is from 1997 - - * ace/config-mvs.h: - Removed draft6, according to references on the web the std - pthread is supported now - - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-tandem-nsk-mips-v3.h: - Newer NSK versions to support pthread std - - * ace/config-tru64.h: - Removed support for ancient tru64 versions - - * ace/os_include/os_limits.h: - Updated for VxWorks 6.6. - - * ace/os_include/os_pthread.h: - Removed support for the draft pthread mappings - - * ace/os_include/os_time.h: - Use ACE_HAS_PTHREADS - - * ace/os_include/sys/os_msg.h: - Removed not needed workaround for osf1 - - * ace/OS_NS_pwd.inl: - * ace/OS_NS_signal.inl: - Use ACE_HAS_PTHREADS - - * ace/OS_NS_string.cpp: - Initialise pointer with 0 - - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_Thread.inl: - * ace/Thread_Manager.cpp: - Removed support for pthread draft 4, 6, & 7 - - * ace/Recursive_Thread_Mutex.cpp: - get_nesting_level is only not support with VxWorks tasks - - * ace/Select_Reactor_Base.cpp: - Layout change - - * ace/Token.h: - Only with VxWorks tasks use semaphores - - * ace/WIN32_Asynch_IO.cpp - -Sun Dec 2 17:47:13 UTC 2007 J.T. Conklin - - * configure.ac: - - Remove code which defined ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA - and ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION feature test macros. - There are vestigial bits of the tests which still remain -- the - entire platform template capability tests need to be rewritten. - - * m4/config_h.m4: - - Remove templates for ACE_HAS_TEMPLATE_INSTANTATION_PRAGMA and - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION. - -Sun Dec 2 17:43:27 UTC 2007 J.T. Conklin - - * ace/README: - - Remove description of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION. - This feature test macro was removed some time ago. - -Sun Dec 2 17:41:01 UTC 2007 J.T. Conklin - - * ace/OS_NS_stdlib.cpp: - - Change initial program name returned by the emulated version of - ACE_OS::getprogname() to be the empty string rather than a null - pointer. - -Sun Dec 2 06:47:54 UTC 2007 Johnny Willemsen - - * tests/gperf/tests/test.cpp: - Fixed conversion warning - -Sat Dec 1 17:06:32 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - Fixed the checks of ACE_SYNCH_MUTEX and ACE_Thread_Mutex to exclude - checking for those key words in ACE. We only want to detect the usage - of those words in TAO and CIAO. - -Fri Nov 30 23:59:41 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Added the following checks: - - check_for_ACE_SYNCH_MUTEX: - This test checks for the use of ACE_SYNCH_MUTEX in TAO/CIAO, - TAO_SYNCH_MUTEX should be used instead for consistency. - - check_for_ACE_Thread_Mutex: - This test checks for the use of ACE_Thread_Mutex in TAO/CIAO, - TAO_SYNCH_MUTEX should be used instead to make the code buid - in single-threaded builds. - - I will fix the resulting fuzz errors over the weekend. - -Fri Nov 30 22:11:32 UTC 2007 Steve Huston - - * ace/WFMO_Reactor.h: Clarify that only the owner thread can expire - timers and wait on the notifications handle. - -Fri Nov 30 21:53:15 UTC 2007 Steve Huston - - * tests/Reactor_Notify_Test.cpp: Added a test to verify that a quiet - (e.g., no I/O occurring) event loop will be awoken by a notify(). - -Fri Nov 30 16:58:00 UTC 2007 Steve Huston - - * ace/CDR_Stream.{h cpp}: - Added replace (ACE_CDR::Short, char *), analogous to the existing - replace (ACE_CDR::Long, char *); replaces a previous place in the - stream with a short. - To make the replace() methods more convenient and easier to use - correctly, added the following methods: - char* write_long_placeholder (void); - char* write_short_placeholder (void); - These methods align the stream's write pointer properly then write - a 0-valued placeholder in the stream. The pointer to the placeholder - is returned; that pointer can later be passed to replace(). - - * tests/CDR_Test.cpp: Added tests for placeholder and replace ops. - - Thank you to Howard Finer for contributing these additions. - - * NEWS: Added note about these additions. - -Fri Nov 30 11:50:00 UTC 2007 Simon Massey - - * bin/tao_other_tests.lst: - add TAO/orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/run_test.pl - -Thu Nov 29 19:49:23 UTC 2007 Douglas C. Schmidt - - * tests/Process_Manager_Test.cpp: Changed ACE_MT_SYNCH to ACE_SYNCH so - this works on single-threaded builds. Thanks to Johnny for - reporting this. - -Thu Nov 29 18:10:27 UTC 2007 J.T. Conklin - - * ace/ARGV.h: - - #include "ace/Global_Macros.h". This is included implicitly on - platforms where ACE_TEMPLATES_REQUIRE_SOURCE, but is needed for - those that don't. - -Wed Nov 28 13:37:54 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.3.GNU: - Only use pic when building rtp - -Wed Nov 28 13:27:54 UTC 2007 Johnny Willemsen - - * ace/OS_NS_unistd.inl: - Updated for VxWorks 6.6 - -Wed Nov 28 13:24:54 UTC 2007 Johnny Willemsen - - * ace/Task.cpp: - Updated for VxWorks 6.6 - -Wed Nov 28 13:18:54 UTC 2007 Johnny Willemsen - - * ace/OS_NS_arpa_inet.cpp: - Updated for VxWorks 6.6 - -Wed Nov 28 13:08:54 UTC 2007 Johnny Willemsen - - * ace/os_include/sys/os_types.h: - Updated for VxWorks 6.6 - -Wed Nov 28 10:56:29 UTC 2007 Vladimir Zykov - - * bin/tao_orb_tests.lst: - Added Bug_3154_Regression. - -Wed Nov 28 07:30:54 UTC 2007 Johnny Willemsen - - * ace/Timer_Queue_Adapters.{h,cpp}: - Updated activate method because of new argument in the base - class - -Tue Nov 27 14:16:54 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux.GNU: - Added support for Fedora 8 - -Tue Nov 27 14:03:17 UTC 2007 Douglas C. Schmidt - - * tests/Process_Manager_Test.cpp: Added - - #include "ace/Synch_Traits.h" - - so the ACE_MT_SYNCH macro is visible. Thanks to Johnny for - reporting this. - -Tue Nov 27 13:14:54 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Added missing const_cast for VxWorks - -Tue Nov 27 13:10:54 UTC 2007 Johnny Willemsen - - * examples/Reactor/Multicast/server.cpp - Don't use the deprecated ACE_SOCK_Dgram_Mcast methods - -Tue Nov 27 10:01:54 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux.GNU: - Updated for FC7 - -Tue Nov 27 08:27:54 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.{h,cpp,inl}: - * ace/Task.{h,cpp}: - * ace/Thread.{h,cpp,inl}: - * ace/Thread_Manager.{h,cpp}: - Added a const char* argument to all methods that create a thread - so that we can pass in an optional thread name which is used at - this moment only on VxWorks. Added ACE_OS::thr_name() to retrieve - the name of the current thread. - - * ace/SOCK_Dgram_Mcast.{h,cpp}: - Removed deprecated subscribe/unsubscribe methods - -Tue Nov 27 06:33:54 UTC 2007 Johnny Willemsen - - * examples/Reactor/Multicast/Log_Wrapper.cpp: - Don't use the deprecated ACE_SOCK_Dgram_Mcast methods - -Mon Nov 26 20:41:03 UTC 2007 Douglas C. Schmidt - - * tests/Process_Manager_Test.cpp: Changed the use of - ACE_Thread_Mutex to ACE_SYNCH_MUTEX so that the test compilees - properly on single-threaded builds. Thanks to Johnny for - reporting this. - -Mon Nov 26 19:41:54 UTC 2007 Johnny Willemsen - - * examples/Reactor/Ntalker/ntalker.cpp: - Don't use the deprecated ACE_SOCK_Dgram_Mcast methods - -Mon Nov 26 15:10:54 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.6.GNU: - * ace/config-vxworks6.6.h: - New files for VxWorks 6.6 - -Mon Nov 26 12:27:54 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - * include/makeinclude/platform_vxworks6.3.GNU: - Make sure we also use -mlongcall with c files - -Mon Nov 26 11:26:54 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux.GNU: - With FC6 and RedHat 5.0/5.1 we have to disable visibility. Use - lsb_release info to detect these versions. Simplifies the checks - we do and at the same moment we also support RedHat 5.1 on IA65 - -Mon Nov 26 11:04:54 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Enabed several tests for VxWorks - -Mon Nov 26 03:29:21 UTC 2007 Douglas C. Schmidt - - * ace/Process_Manager.cpp: Fixed a problem where spawning a - process with ACE_Process_Manager resulted in deadlock while - waiting for the end of another process. Thanks to Oliver Spang - for these fixes. - - * tests/Process_Manager_Test.cpp: Added a regression test for - Oliver's patches. Thanks again to oliver Spang for this code. - -Sun Nov 25 09:18:54 UTC 2007 Johnny Willemsen - - * ace/OS_NS_stdio.inl (vsprintf): - Updated for msvc9 - -Sun Nov 25 09:15:54 UTC 2007 Johnny Willemsen - - * ace/config-win32-msvc9.h: - Disabled warning 4250 with this compiler - -Sat Nov 24 00:23:34 UTC 2007 Steve Huston - - * ace/Reactor.h: Clarified the workings of the optional hook function - that can be passed to event loop methods. Thanks to Andre Kostur - for this idea. - -Fri Nov 23 19:38:54 UTC 2007 Johnny Willemsen - - * bin/MakeProjectCreator/config/vc8_warnings.mpb: - * bin/MakeProjectCreator/config/vc_warnings.mpb: - Renamed vc8 to vc because this file is now also used for vc9 - - * bin/MakeProjectCreator/config/acedefaults.mpb: - Updated base project because of rename above - - * bin/MakeProjectCreator/config/vc9.features: - New file - - * bin/MakeProjectCreator/config/vc9nmake.mpb: - New file - - * contrib/minizip/minizip.mpc: - Updated for vc9 - - * examples/Service_Configurator/Misc/Timer_Service.cpp: - Layout change - - * examples/Connection/non_blocking/CPP-connector.cpp: - Just not name an argument instead of using ACE_UNUSED_ARG - - * examples/APG/Reactor/HAStatus-AC.cpp: - Initialise some pointers with 0 - - * bin/make_release.py: - Added generation for vc9 - - * ASNMP/asnmp/wpdu.cpp: - Layout change - - * ACE-install.sh: - Removed, ancient - -Fri Nov 23 19:38:54 UTC 2007 Johnny Willemsen - - * ace/SOCK_Dgram_Mcast.cpp: - Use join instead of subscribe - -Fri Nov 23 06:50:01 UTC 2007 Olli Savia - - * tests/run_test.lst: - Do not run Signal_Test on LynxOS. - -Thu Nov 22 13:47:54 UTC 2007 Johnny Willemsen - - * ace/ace_for_tao.mpc: - * ace/QoS/qos.mpc: - * bin/MakeProjectCreator/config/ace_fl.mpb: - * bin/MakeProjectCreator/config/ace_gl.mpb: - * bin/MakeProjectCreator/config/ace_qt.mpb: - * bin/MakeProjectCreator/config/ace_x11.mpb: - * bin/MakeProjectCreator/config/acedefaults.mpb: - * bin/MakeProjectCreator/config/ipv6.mpb: - Added support for vc9 - -Thu Nov 22 12:44:54 UTC 2007 Johnny Willemsen - - * ace/Vector_T.inl: - Fixed compile error - - * bin/msvc_mpc_auto_compile.pl: - * bin/msvc_static_compile.pl: - Added vc9 as option - -Wed Nov 21 21:43:54 UTC 2007 Douglas C. Schmidt - - * ace/Vector_T.inl (advance): - * ace/Vector_T.cpp: Fixed the push_back() and pop_back() methods - so they work properly after resizing. Thanks to Karl-Heinz Wind - for these fixes. This fixes bugid 3152. - -Wed Nov 21 21:36:27 UTC 2007 Douglas C. Schmidt - - * tests/Vector_Test.cpp (run_main): Updated the test so that it - checks for the buggy push_back() and pop_back(). Thanks to - Karl-Heinz Wind for providing these - enhancements. - -Wed Nov 21 19:37:29 UTC 2007 Douglas C. Schmidt - - * examples/Reactor/Ntalker/ntalker.cpp (ACE_TMAIN): - - Use ACE_SOCK_Dgram_Mcast::leave() instead of deprecated - ...::unsubscribe() to leave the multicast group. Thanks to - Stefan Naewe for - reporting this. - -Wed Nov 21 16:14:21 UTC 2007 Johnny Willemsen - - * ace/OS_NS_sys_utsname.cpp (name): - Extended VxWorks implementation - -Wed Nov 21 16:06:21 UTC 2007 Johnny Willemsen - - * bin/PerlACE/ProcessVX_Unix.pm: - * bin/PerlACE/ProcessVX_Win32.pm: - Added support for iBoot - -Sun Nov 18 06:25:21 UTC 2007 Johnny Willemsen - - * configure.ac: - Fixed ACE_HAS_POSIX_SEM_TIMEOUT check, thanks to Thomas Girard - for reporting this. - This fixes bugzilla 3153 - -Fri Nov 16 04:12:20 UTC 2007 Douglas C. Schmidt - - * examples/Service_Configurator/Misc/main.cpp (ACE_TMAIN): Added a - space between "-f" and "svc.conf". This fixes a bug. Thanks - to Kun Niu for this fix. - -Fri Nov 16 09:37:21 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux_common.GNU: - * ace/config-linux-common.h: - * m4/platform.m4: - Changed ACE_HAS_LINUX_NPTL to ACE_LACKS_LINUX_NPTL. All recent - linux distributions do have NPTL, only older versions lack this - support. By changing HAS to LACKS it makes it easier to use ACE - with their own makefile scheme. This fixes bugzilla 3084 - -Thu Nov 15 19:44:21 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux_common.GNU: - Retrieve distribution and release number using lsb_release - - * include/makeinclude/platform_g++_common.GNU: - Moved RedHat/FC checks to platform_linux.GNU, this only needs - to be done when using GCC on Linux, not when using GCC on - other platforms - - * include/makeinclude/platform_linux.GNU: - With Ubuntu 7.04 and 7.10 we can't use visibilit, we get - unresolved externals when using it. We are now using - lsb_release to detect the distribution - -Thu Nov 15 08:41:21 UTC 2007 Johnny Willemsen - - * ace/os_include/os_limits.h: - PIPE_BUF is also defined to -1 with VxWorks 6.5 - -Thu Nov 15 05:40:21 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - * include/makeinclude/platform_vxworks6.2.GNU: - * include/makeinclude/platform_vxworks6.3.GN: - Add -mlongcall also to CFLAGS - -Wed Nov 14 19:12:21 UTC 2007 Johnny Willemsen - - * bin/MakeProjectCreator/templates/gnu.mpd: - When link_groups is defined to 1 we group the LDLIBS within - -Wl,--start-group and -Wl,--end-group. This way the user can - manually enable this through the platform_macros.GNU file and - doesn't need to regenerate all makefiles. Also removed the - check for the compiler name, with VxWorks we also can use this - and there we have different compilers (ccppc, ccpentium, etc) - - * include/makeinclude/wrapper_macros.GNU: - also can use this - and there we have different compilers (ccppc, ccpentium, etc) - - * include/makeinclude/wrapper_macros.GNU: - Set link_groups to 0 by default, the user has to explicitly enable - it - - * bin/MakeProjectCreator/docs/templates/gnu.txt: - Removed link_groups, that is now enabled through platform_macros.GNU, - not through MPC - -Wed Nov 14 16:16:49 UTC 2007 Ciju John - - * ace/Service_Config.cpp: - Check the reactor instance before using it. - -Wed Nov 14 14:34:26 UTC 2007 J.T. Conklin - - * m4/config_h.m4: - * m4/platform.m4: - - Remove autoheader template and platform support for the pSOS - platform. Support was removed from ACE some time ago. - -Wed Nov 14 11:00:21 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux_icc.GNU: - Added support for Intel C++ 10.1 - -Wed Nov 14 07:47:28 UTC 2007 J.T. Conklin - - * m4/config_h.m4: - - Removed PTHREAD_STACK_MAX autoheader template as this feature - test macro is not used. - -Wed Nov 14 07:46:43 UTC 2007 J.T. Conklin - - * m4/config_h.m4: - * m4/platform.m4: - - Remove autoheader template and platform support for the DG/UX - platforms. Support was removed from ACE some time ago. - -Wed Nov 14 07:23:07 UTC 2007 J.T. Conklin - - * m4/platform.m4: - - Update autoheader templates for ACE_INT64_FORMAT_SPECIFIER and - ACE_UINT64_FORMAT_SPECIFIER to clarify that they're the printf - format specifiers for the ACE_INT64 and ACE_UINT64 types. - - This can be an important distinction for platforms with - compilers that validate literal format strings (where passing - "long long" for "%ld", or "long" for "%lld" will result in an - warning/error even when both are 64 bit integers). - -Wed Nov 14 07:18:21 UTC 2007 J.T. Conklin - - * m4/platform.m4: - - Remove platform support for the "fsu" platform. Support was - removed from ACE some time ago. - -Wed Nov 14 07:12:03 UTC 2007 J.T. Conklin - - * m4/config_h.m4: - * m4/platform.m4: - - Remove autoheader templates and platform support for the "m88k" - platform. Support was removed from ACE some time ago. - -Tue Nov 13 14:34:17 UTC 2007 J.T. Conklin - - * configure.ac: - * m4/config_h.m4: - - Replace autoheader templates for ACE_HAS_ALPHA_TIMER, - ACE_HAS_POWERPC_TIMER, and ACE_HAS_PENTIUM in config_h.m4 with - a third argument to AC_DEFINE in configure.ac - -Tue Nov 13 07:45:25 UTC 2007 J.T. Conklin - - * configure.ac: - - Add ACE_HAS_INTEL_ASSEMBLY feature test. - -Tue Nov 13 06:48:16 UTC 2007 J.T. Conklin - - * ace/OS_NS_time.inl: - - Changed the inline assembly implementation of gethrtime() for - the amd64/x86_64 architecture to recognize that the timestamp is - read into the %eax and %edx registers, and thus must be combined - into a 64 bit value. Thanks to Nathan Ernst for reporting this bug. - - * THANKS: - - Add Nathan Ernst . - -Tue Nov 13 06:01:33 UTC 2007 J.T. Conklin - - * ace/OS_NS_stdio.inl: - - Change of Thu Nov 8 04:02:21 UTC 2007 was missing ACE_WIN32 - in conditional. Thanks to Johnny Willemsen for pointing out - resulting scoreboard failures. - -Mon Nov 12 20:05:21 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Enabled Smart_Proxies/Policy with VxWorks - -Mon Nov 12 14:16:21 UTC 2007 Johnny Willemsen - - * ace/Log_Msg.{h,cpp,inl}: - Use bool for several flags - -Mon Nov 12 14:12:21 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Disable Bug_2953_Regression for the moment on VxWorks, it hangs out - target - -Mon Nov 12 13:04:11 UTC 2007 J.T. Conklin - - * ace/CDR_Base.inl: - - Take advantage of bswap16, bswap32, and bswap64 macros when - ACE_HAS_BSWAPXX is defined as we do for bswap_16, bswap_32, - and bswap_64 when ACE_HAS_BSWAP_XX is defined. - - * configure.ac: - - Changed checks for bswap_16, bswap_32, and bswap_64 to use - ACE_CHECK_HAS_DEFINES. Thanks to Thomas Girard for reporting the ACE_HAS_BSWAP_XX - feature test macros were not being defined because bswap_16, - bswap_32, and bswap_64 are implemented as macros. This fixes - bugzilla 3134. - - Added check for bswap16, bswap32, and bswap64. These are the - *BSD, Darwin, etc. equivalents of the bswap_XX macros. - - * m4/ace_defines.m4: - - New file, new autoconf macros ACE_CHECK_DEFINE, - ACE_CHECK_HAS_DEFINES, and ACE_CHECK_LACKS_DEFINES. These are - used like ACE_CHECK_HAS_FUNCS and ACE_CHECK_LACKS_FUNCS, where - the tested feature is implemented as a macro and not a function. - -Mon Nov 12 10:25:00 UTC 2007 Simon Massey - - * bin/PerlACE/ConfigList.pm: - - Bugzilla 3085: Fix for "and" test for test suite control. - -Mon Nov 12 10:01:53 UTC 2007 Olli Savia - - * tests/Max_Default_Port_Test.cpp: - Changed this test to work on LynxOS. - -Mon Nov 12 06:36:21 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Disable bug 2494 regression for vxworks, it hangs our target. - When this test has been analyzed in detail we will enable - it again - -Mon Nov 12 06:31:21 UTC 2007 Johnny Willemsen - - * ace/config-linux-common.h: - The ACE_HAS_RUSAGE_WHO_ENUM and ACE_HAS_RLIMIT_RESOURCE_ENUM - are not needed anymore with glibc 2.3 and newer - Thanks to Thomas Girard - for reporting this. This fixes bugzilla 3143 - -Sun Nov 11 18:59:21 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Disable bug 1020 regression for vxworks, it hangs our target. - When this test has been analyzed in detail we will enable - it again - -Sun Nov 11 18:41:21 UTC 2007 Johnny Willemsen - - * configure.ac: - Added check for wcsnlen. - Thanks to Thomas Girard - for reporting this. This fixes bugzilla 3146 - -Sun Nov 11 18:31:21 UTC 2007 Johnny Willemsen - - * bin/PerlACE/ProcessVX_Unix.pm: - * bin/PerlACE/ProcessVX_Win32.pm: - Replaces ACE_RUN_TAO_DEBUG_LEVEL with TAO_RUN_TAO_ORB_DEBUG - -Fri Nov 9 23:45:48 UTC 2007 J.T. Conklin - - * ace/Makefile.am: - - Remove DEFAULT_INCLUDES= added on Wed Nov 7 04:33:02 UTC 2007. - Automake's nostdinc option performs the same function, but in - a documented, supported, manner. - - * configure.ac: - - Use nostdinc option to AM_INIT_AUTOMAKE. This instructs - automake not to add -I options for the current directory. - -Fri Nov 9 02:16:24 UTC 2007 Douglas C. Schmidt - - * ace/Asynch_IO.h: Disallow copying and assignment for - ACE_Handler. Thanks to Juraj Ivancic for this suggestion. - -Fri Nov 9 11:46:21 UTC 2007 Johnny Willemsen - - * ace/config-tandem-nsk-mips-v3.h: - * ace/os_include/sys/os_types.h: - * ace/Task.cpp: - * ace/Truncate.h: - Improved NSK support, thanks to Gary Maxey - for delivering the patches. This fixes bugzilla 3124 - -Fri Nov 9 11:25:21 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Doxygen improvements - -Fri Nov 9 11:06:21 UTC 2007 Johnny Willemsen - - * ace/config-linux-common.h: - Newer glibc versions don't need ACE_HAS_NONCONST_SETRLIMIT anymore. - Thanks to Thomas Girard - for reporting this. This fixes bugzilla 3136 - -Fri Nov 9 09:46:21 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Some PPC's don't have log2 in kernel mode - -Fri Nov 9 09:37:21 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.{h,cpp,inl}: - * ace/Thread_Manager.cpp: - Changed ACE_hthread_t to an int for VxWorks. This makes the core of - ACE cleaner and more stable on VxWorks. At this moment you can't give - a Task a name, but we will extend the thread creation functions - with an additional char* in a next iteration. That way you can use - task names also when using pthread on vxworks. See also bugzilla 3131 - - * tests/Conn_Test.cpp: - * tests/Thread_Manager_Test.cpp: - Disable task name setting, will be enabled again when the spawn - methods are extended - -Fri Nov 9 08:58:21 UTC 2007 Johnny Willemsen - - * ace/CDR_Base.inl: - Fixed incorrect define. This fixes bugzilla 3139. Thanks to - Thomas Girard - - * ace/Dynamic_Service_Base.{h,cpp}: - Reduced number of methods by using default argument values - - * ace/Object_Manager.{h,cpp}: - * ace/Service_Config.cpp: - The Service Configurator depends on the availability of TSS. When - TSS emulation is enabled, that emulation needs to be initialized - within the Object Manager. The Object Manager also depends on the SG, - so added a new init_tss() method that just initializes TSS - which is then called from the SG constructor. This fixes - problems with TAO VxWorks 6.x kernel mode. Thanks to Iliyan for - giving insights how SG/SC should work. - - * ace/OS_NS_Thread.h: - Changed key_create_ to bool and check the return value of taskSpawn - - * ace/Reactor.h: - * ace/Service_Config.inl: - Doxygen change - - * ace/Service_Config.cpp: - Updated some debug statements - - * bin/PerlACE/ProcessVX_Unix.pm: - * bin/PerlACE/ProcessVX_Win32.pm: - Added ACE_RUN_ACE_DEBUG and ACE_RUN_TAO_DEBUG_LEVEL, if set then - ACE_DEBUG/TAO_DEBUG_LEVEL are set as environment variabled on the - target - -Thu Nov 8 04:02:21 UTC 2007 J.T. Conklin - - * ace/OS_NS_stdio.inl: - - Changed wide character version of ACE_OS::vsnprintf()'s to match - ACE_OS::snprintf() as like prior to Sun Oct 28 21:11:57 UTC 2007. - This fixes a error reporting in buffer overflow conditions. - - At that time all the ACE_OS::*printf() functions were changed to - call ACE_OS::v*printf(). The intent was to reduce the chance of - bugs being introduced because of largly parallel implementations. - What I didn't expect was that such a bug was already present. - -Thu Nov 8 02:09:02 UTC 2007 Phil Mesnier - - * ace/Codeset_Registry_db.cpp: - Added an entry for UTF-8. - -Wed Nov 7 18:53:15 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_2133 regression - -Wed Nov 7 04:33:02 UTC 2007 J.T. Conklin - - * ace/Makefile.am: - - Add DEFAULT_INCLUDES definition that got lost during regeneration. - Fixes autoconf builds on case-insensitive filesystems. - - * m4/platform.m4: - - Add ACE_HAS_NONCONST_FD_ISSET feature test. - - Thanks to Doug McCorkle for providing - this patch. - -Tue Nov 6 11:30:00 UTC 2007 Simon Massey - - * ace/OS_NS_Thread.cpp: - - Re-instated the change of Thu Nov 1 14:40:00 UTC 2007. - Valgrind tests prove this is not causing the memory leaks - just exposing some existing ones. The whole area of TSS use - with singletons/statics needs to be investigated. - (See Bugzilla 3128 for details.) - -Tue Nov 6 10:59:15 UTC 2007 Johnny Willemsen - - * bin/PerlACE/ProcessVX_Win32.pm: - Fixed dirname setting - -Mon Nov 5 20:00:15 UTC 2007 Johnny Willemsen - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: - * apps/Gateway/Peer/Peer.cpp: - Fixed GCC 4.2.1 warnings - -Mon Nov 5 14:06:54 UTC 2007 J.T. Conklin - - * bin/PerlACE/Run_Test.pm: - - Change wait_interval_for_process_creation from 10/12 to 15 - seconds on non-VxWorks systems. - - My change of Thu Nov 1 04:36:27 UTC 2007 improved results of the - NetBSD scoreboard, but was still not enough time to ensure tests - started. I've increased the wait for all OS's instead of NetBSD - only, since this is likely to be a problem on all OS's that need - to calibrate the high res timer. This extra delay shouldn't - slow the testsuite execution on faster systems, as the existence - of the sentinal file is polled by PerlACE::waitforfile_timed() - which returns as soon as the file exists. - -Mon Nov 5 11:40:00 UTC 2007 Simon Massey - - * ace/OS_NS_Thread.cpp: - - Reverted the change of Thu Nov 1 14:40:00 UTC 2007 at the - request of Buildczar to test for memory leaks within this - area of the build. If this shows improved memory usage then - TAO is missusing keyfree and this needs to be investigated. - keyfree should NOT be responciable for the tidy-up of TSS - and it should NOT be calling destructors for the registered - keys it is being used to deactivate. (See the documentaion - for pthread_key_delete() and thr_keydelete() which our keyfree - call wraps.) - -Sat Nov 3 06:24:15 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.cpp: - Fixed a bug introduced by my VxWorks changes, thanks to JT - for finding this - -Fri Nov 2 22:31:36 UTC 2007 William R. Otte - - * ace/os_include/os_stdio.h: - * ace/config-macosx-leopard.h: - - Preliminary compatibility for Mac OS X 10.5 - -Fri Nov 2 07:48:15 UTC 2007 Johnny Willemsen - - * ace/Service_Config.{h,cpp}: - Removed the patch for bugzilla 2980, this results in a memory - leak of 10Kb for each thread that uses the ACE_Service_Config_Guard. - This memory leak is documented in bugzilla 3108. For bugzilla 2980 - we need to have a different patch without reintroducing the - memory leak. - - * ace/Timer_Heap_T.h: - Doxygen changes - -Thu Nov 1 19:59:15 UTC 2007 Johnny Willemsen - - Reverted the change below, it seems to cause problems with msvc 71. - - Thu Nov 1 11:11:15 UTC 2007 Johnny Willemsen - * ace/Service_Config.h: - -Thu Nov 1 16:57:11 UTC 2007 Steve Huston - - * contrib/FaCE/FaCE.mpc: - * contrib/FaCE/FaCENOACE.mpc: Added aygshell to lit_libs to fix link - errors. - -Thu Nov 1 14:40:00 UTC 2007 Simon Massey - - * ace/OS_NS_Thread.cpp: - - Systems with ACE_HAS_BROKEN_THREAD_KEYFREE requires some - cleanup within ACE_OS::thr_keyfree_native() otherwise they - can crash at thread_exit if ACE is dynamically loaded. - -Thu Nov 1 11:59:15 UTC 2007 Johnny Willemsen - - * ace/Select_Reactor_T.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel_T.h: - Doxygen changes - - * ace/Timer_Queue_T.cpp: - Layout change - -Thu Nov 1 11:11:15 UTC 2007 Johnny Willemsen - - * ace/Service_Config.h: - Removed the patch for bugzilla 2980, this results in a memory - leak of 10Kb for each thread that uses the ACE_Service_Config_Guard. - This memory leak is documented in bugzilla 3108. For bugzilla 2980 - we need to have a different patch without reintroducing the - memory leak. - - * ace/Service_Config.cpp: - * ace/Service_Config.h: - * ace/Service_Config.inl: - * ace/Service_Gestalt.cpp: - * ace/Service_Gestalt.h: - Bool changes - -Thu Nov 1 10:23:15 UTC 2007 Johnny Willemsen - - * tests/Malloc_Test.cpp: - Initialise some pointers with 0 to fix gcc 4.2 warnings. Thanks - to Robert Iakobashvili for reporting - this - -Thu Nov 1 09:27:15 UTC 2007 Johnny Willemsen - - * tests/Process.h: - * tests/Reactor_Impl.h: - * tests/Select_Reactor_T.h: - * tests/SOCK.h: - * tests/SOCK_Acceptor.h: - * tests/SOCK_SEQPACK_Acceptor.h: - * tests/TkReactor/TkReactor.h: - * tests/Token.h: - * tests/WFMO_Reactor.h: - * tests/WIN32_Asynch_IO.h: - * tests/WIN32_Proactor.h: - * tests/XtReactor/XtReactor.h: - Doxygen improvements - - * tests/TSS_T.cpp: - * tests/TSS_T.h: - Initialise pointers with 0 and changed once_ to a bool - -Thu Nov 1 04:36:27 UTC 2007 J.T. Conklin - - * bin/PerlACE/Run_Test.pm: - - Change wait_interval_for_process_creation from 10 to 12 seconds - on NetBSD systems. Many TAO unit tests take at least 5 seconds - to initialize on NetBSD/i386 systems as they calibrate the high - resolution timer. Often this doesn't leave enough time to - complete initialization within the timeout. - - Since there was a special case for LynxOS, I just extended it - for NetBSD. - -Wed Oct 31 13:54:15 UTC 2007 Johnny Willemsen - - * bin/PerlACE/ProcessVX_Win32.pm: - Updated to work with the new test setup for VxWorks. Thanks to - Martin Corino for updating this file - -Wed Oct 31 13:38:39 UTC 2007 J.T. Conklin - - * ace/OS_NS_unistd.cpp: - - Add ACE_UNUSED_ARG for ACE_HAS_THREADS case. - -Wed Oct 31 12:17:15 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.2.GNU: - * include/makeinclude/platform_vxworks6.3.GNU: - Improved VxWorks 6.x support - -Tue Oct 30 14:51:21 UTC 2007 J.T. Conklin - - * ace/OS_NS_unistd.cpp: - - Changed ACE_OS::fork() to not call ACE_Base_Thread_Adapter:: - sync_log_msg() if ACE_HAS_THREADS. sync_log_msg() will call - async signal unsafe functions, which results in undefined - behavior. - -Tue Oct 30 14:29:31 UTC 2007 Abdullah Sowayan - - * bin/msvc_static_order.lst: - - Project names in CIAO have been changed recently due to the effort - to break executor->servant dependency. generate_component_mpc.pl - script now also generates project names that are different than - the names that existed in the repository. As such, we needed to - modify this file accordingly. This should fix compile time - problems for WinXP_VC71_CIAOCore_Static_Debug build. - -Tue Oct 30 10:56:15 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks5.5.x.GNU: - * include/makeinclude/platform_vxworks6.2.GNU: - * include/makeinclude/platform_vxworks6.3.GNU: - Support static_libs_only=1 correctly - -Mon Oct 29 16:35:09 UTC 2007 J.T. Conklin - - * ace/OS_NS_stdio.cpp: - * ace/os_include/os_stdarg.h: - - Move workaround for the lack of va_copy() macro from - OS_NS_stdio.cpp to os_include/os_stdarg.h. - - Thanks to Johnny Willemsen for suggesting this improvement. - -Mon Oct 29 16:10:07 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Updated check_for_lack_ACE_OS to incorporate new wrapper facade functions - introduced in: - Sun Oct 28 21:11:57 UTC 2007 J.T. Conklin - -Mon Oct 29 15:01:28 UTC 2007 J.T. Conklin - - * ace/OS_NS_stdio.cpp: - * ace/Process.cpp: - - Fixed fuzz warnings. - -Mon Oct 29 14:44:15 UTC 2007 Johnny Willemsen - - * ace/config-openbsd.h: - Improved OpenBSD support. Thanks to Vladimir Panov - for reporting this. - - * ace/Dev_Poll_Reactor.h: - * ace/FlReactor/FlReactor.h: - * ace/FoxReactor/FoxReactor.h: - * ace/POSIX_Asynch_IO.h: - * ace/Proactor.h: - * ace/QtReactor/QtReactor.h: - * ace/Reactor.h: - * ace/Signal.h: - Doxygen improvements - - * ace/Service_Config.{h,cpp}: - Changed be_a_deamon to bool - - * ace/Service_Repository.cpp: - Initialise pointer with 0 - -Mon Oct 29 14:17:15 UTC 2007 Johnny Willemsen - - * ace/ARGV.h: - Made several constructor explicit - - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_Thread.h: - * ace/OS_NS_Thread.inl: - * ace/Thread_Manager.cpp: - * ace/Thread_Manager.h: - Switched ACE_thread_t and ACE_hthread_t definitions for VxWorks - with task support. ACE_thread_t is now an int, ACE_hthread_t is - a char*. This improves speed and solves possible raise conditions - with the TP_Reactor, see bugzilla 2441. The new code can be - refactored a little bit more, but that will be a seperate iteration. - - * tests/Bound_Ptr_Test.cpp: - Initialize some pointers with 0 and replaced some ACE_ASSERT with if - checks - - * tests/Conn_Test.cpp: - * tests/Thread_Manager_Test.cpp: - Updates for ACE_thread_t/ACE_hthread_t change - - * tests/Dirent_Test.cpp: - Fixed default path which caused runtime failure on VxWorks - - * tests/Sigset_Ops_Test.cpp: - Use bool - - * tests/SOCK_Dgram_Bcast_Test.cpp: - * tests/SOCK_Dgram_Test.cpp: - * tests/Thread_Creation_Threshold_Test.cpp: - Extended error information - - * tests/Thread_Pool_Reactor_Test.cpp: - Removed chorus check - -Mon Oct 29 12:42:34 UTC 2007 J.T. Conklin - - * ace/OS_NS_stdio.cpp: - - Add workarounds for systems without va_copy() macro. Use - __va_copy() on systems that have it, otherwise memcpy(). - - Use 0 instead of NULL for portability. - - Thanks to Johnny Willemsen for pointing out these errors. - -Mon Oct 29 12:26:15 UTC 2007 Johnny Willemsen - - * tests/run_test.lst: - Don't run Signal_Test and Bug_2659_Regression_Test on VxWorks - 6.4 and 6.5. These kernels have a bug which causes these tests - to fail. According to WindRiver support the issue will be - resolved with VxWorks 6.6 - -Mon Oct 29 07:30:15 UTC 2007 Johnny Willemsen - - * ace/OS_NS_stdio.inl: - Fixed ambiguity error with BCB6 - -Sun Oct 28 21:11:57 UTC 2007 J.T. Conklin - - * configure.ac: - - Add ACE_HAS_GETPROGNAME, ACE_HAS_SETPROGNAME, ACE_HAS_VASPRINTF, - and ACE_HAS_VASWPRINTF feature tests. - - * ace/config-freebsd.h: - * ace/config-netbsd.h: - - Add ACE_HAS_GETPROGNAME, ACE_HAS_SETPROGNAME, and - ACE_HAS_VASPRINTF feature test macros. - - * ace/OS_NS_stdio.cpp: - * ace/OS_NS_stdio.h: - * ace/OS_NS_stdio.inl: - - Add new ACE_OS::asprintf(), ACE_OS::aswprintf(), - ACE_OS::vasprintf(), and ACE_OS::vaswprintf() wrapper facades. - These functions dynamically allocate the buffer used for their - output with malloc(). Add ACE_OS::vasprintf_emulation() and - ACE_OS::vaswprintf_emulation() functions for systems without - native ::vasprintf() and ::vaswprintf() implementations. - - Add missing wide character version of ACE_OS::printf() wrapper - facade. - - Add missing wide and narrow character versions of ACE_OS::vprintf() - wrapper facades. - - Add missing wide and narrow character versions of ACE_OS::vfprintf() - wrapper facades. - - Implement ACE_OS::*printf() in terms of its cooresponding - ACE_OS::v*printf() function to ensure consistant behavior. - - * ace/OS_NS_stdlib.cpp: - * ace/OS_NS_stdlib.h: - * ace/OS_NS_stdlib.inl: - - Add ACE_OS::getprogname() and ACE_OS::setprogname() wrapper - facades. These functions are used to get and set the program - name for error handling, logging, etc. On systems with native - implementations, the program name is automatically set by the - C/C++ startup code. On others, ACE_OS::setprogname() must be - used. - - Add ACE_OS::getprogname_emulation() and - ACE_OS::setprogname_emulation() for systems without native - ::getprogname() and ::setprogname() implementations. One - limitation of the emulated version is the program name is - not available from static constructors. - - * ace/Process.cpp: - - If ACE_HAS_THREADS, don't invoke ACE_ERROR() in the child - process between the fork() and exec(). ACE_ERROR() undoubtedly - calls async signal unsafe functions, which results in undefined - behavior in threaded programs. - -Fri Oct 26 11:17:15 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_vxworks6.3.GNU: - Applied patch of Thomas Lockhart - for shared library - building on VxWorks 6.3. This fixes bugzilla 3113 - -Fri Oct 26 05:18:13 UTC 2007 J.T. Conklin - - * ace/config-netbsd.h: - - Remove ACE_HAS_CPLUSPLUS_HEADERS, ACE_HAS_NEW_NOTHROW, - ACE_HAS_STDCPP_STL_INCLUDES, ACE_LACKS_PRAGMA_ONCE, - ACE_NEW_THROWS_EXCEPTIONS, and ACE_HAS_PENTIUM, as these - definitions are inherited from config-g++-common.h, and - result in redefinition warnings. - -Thu Oct 25 21:00:46 UTC 2007 Abdullah Sowayan - - * bin/msvc_static_order.lst: - - Project names in CIAO have been changed recently due to the effort - to break executor->servant dependency. generate_component_mpc.pl - script now also generates project names that are different than - the names that existed in the repository. As such, we needed to - modify this file accordingly. This should fix compile time - problems for WinXP_VC71_CIAOCore_Static_Debug build. - -Thu Oct 25 15:21:02 UTC 2007 Adam Mitz - - * include/makeinclude/platform_sunos5_sunc++.GNU: - - Fixed version detection for SunCC 5.5 (Studio 8), the change from - Wed Sep 26 08:37:15 UTC 2007 Johnny Willemsen - had an off-by-one bug. - -Thu Oct 25 14:47:15 UTC 2007 Johnny Willemsen - - * tests/Bug_2659_Regression_Test.cpp: - Do a wait on the reactor thread for 5 seconds, it should - end within that time, if not, we return -1. On VxWorks this - test doesn't succeed and hangs, with this change it just - returns -1 speeding up the test run - -Thu Oct 25 13:07:11 UTC 2007 Phil Mesnier - - * bin/tao_orb_tests.lst: - Added DII_AMI_Forward test - -Thu Oct 25 12:24:15 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Added ACE_HAS_SIGACTION_CONSTP2 - -Thu Oct 25 10:26:15 UTC 2007 Johnny Willemsen - - * tests/Bug_2659_Regression_Test.cpp: - Some layout changes and added a debug message so that we can see - a little bit more what is happening on VxWorks - -Thu Oct 25 09:51:15 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_3108_Regression - -Thu Oct 25 09:27:15 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added Bug_3080 - - * bin/copy-script.sh: - Added copy-script which is used during the release process - -Thu Oct 25 08:36:15 UTC 2007 Johnny Willemsen - - * tests/Thread_Creation_Threshold_Test.cpp: - Limit the number of threads for VxWorks. Spawning 50 threads takes - more then a second on VxWorks, the tests wants to spawn 100000 which - would take about 30 minutes on VxWorks :-( - -Thu Oct 25 08:26:15 UTC 2007 Johnny Willemsen - - * ace/config-netbsd.h: - Include config-g++-common.h to get the needed defines for the - GCC compiler. This fixes bugzilla 3094. Thanks to Venkat Sidhabathuni - for reporting this. - - * ace/INET_Addr.cpp: - Const changes and set some sin_len fields for VxWorks - - * ace/OS_NS_netdb.inl (gethostbyname_r): - Fixed invalid check in VxWorks specific part - - * ace/OS_NS_stdlib.cpp: - Const change - - * ace/OS_NS_sys_socket.inl: - After bind of sin_addr.s_addr != INADDR_ANY VxWorks clears the sin_port - field. This leads to a failure of the SOCK_Dgram_Test but could also - affect other parts of ACE/TAO. After the bind, we use getsockname() - to retrieve the sockaddr struct again. This mimics the behaviour of - other network stacks. This fixes bugzilla 3107 - - * ace/OS_NS_sys_stat.inl (fstat): - Cleanup done to this method. Thanks to Rick Ohnemus - for reporting this. This - fixes bugzilla 3109 - - * ace/Process.cpp: - Use this-> when calling a method - - * ace/SOCK_Dgram.cpp: - Use bool - -Wed Oct 24 11:41:15 UTC 2007 Johnny Willemsen - - * ace/SOCK_Dgram_Test.cpp: - Improved this test to handle the problem on VxWorks. The change below - has been reverted, it seems we have somewhere a problem in ACE - -Tue Oct 23 19:15:15 UTC 2007 Johnny Willemsen - - * ace/SOCK_Dgram_Test.cpp: - On VxWorks binding the socket seems to clear the port number. For the - moment just reset the port number, that will fix this test failure. We - are in contact with WindRiver to sort out the real problem in the - network stack. - -Tue Oct 23 14:40:15 UTC 2007 Johnny Willemsen - - * tests/Signal_Test.cpp: - Use ACE_ERROR_RETURN instead of ACE_ASSERT which causes a VxWorks - target to hang - -Tue Oct 23 14:10:15 UTC 2007 Johnny Willemsen - - * tests/run_test.lst: - Sendfile_Test will not work on VxWorks kernel mode, we don't have - sendfile but we also lack mmap for the emulation - -Tue Oct 23 13:57:30 UTC 2007 Steve Huston - - * tests/run_test.pl: Changed handling of tests in subdirectories to - chdir to the subdirectory to run the test; allows tests to pick up - files they need (like keys and ciphers). This places the test's - log under its subdirectory (e.g. SSL/log) as well. - -Tue Oct 23 13:51:15 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.{h,cpp,inl}: - Use ACE_HAS_VXTHREADS, use bool, doxygen improvements and - improved ACE_OS::thr_equal to guard against an unitialized - ACE_thread_t which is a 0 pointer on VxWorks. This fixes then - the crash of the Reader_Writer_Test in our daily regression - suite - - * tests/Reader_Writer_Test.cpp: - Use prefix increment/decrement, also use a long for the counts, - these are implemented in assembly on most architectures - -Tue Oct 23 13:17:15 UTC 2007 Johnny Willemsen - - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - VxWorks 6.x doesn't have perfect multicast filtering - - * ace/FILE_Addr.h: - * ace/FILE_IO.h: - Doxygen fixes - - * ace/Lib_Find.cpp: - Use prefix increment - -Tue Oct 23 10:41:15 UTC 2007 Johnny Willemsen - - * ace/Asynch_Connector.h: - Fixed some missing bool usage - - * ace/Asynch_Acceptor.{h,cpp}: - Use bool and remove validate_new_connection which was deprecated in - ACE 5.4 - - * ace/Log_Msg.{cpp,inl}: - The Log_Msg stores the process id a static pid so that we only have to - obtain it once. It was initialized with -1, but when the OS doesn't have - process support (like VxWorks), then -1 is returned by ACE_OS::getpid() - which reduces in a performance reduction. Changed the default value to -2 - so that on a platform like VxWorks we also just obtain once. - - * ace/Thread_Manager.{h,cpp,inl}: - Doxygen changes, const changes, use bool when possible. Also use - ACE_HAS_VXTHREADS instead of ACE_HAS_VXWORKS to check if we are using - VxWorks with task support - -Mon Oct 22 19:03:15 UTC 2007 Johnny Willemsen - - * ace/OS_TLI.h: - Removed workaround for unixware 2.0 - - * ace/Proactor.{h,cpp}: - Use bool for delete_implementation flag - - * ace/Select_Reactor_Base.cpp: - Const improvement - - * ace/config-WinCE.h: - * ace/OS_NS_time.h: - Added ACE_LACKS_STRUCT_TM which is set in the config file and used in - OS_NS_time.h - - * ace/FoxReactor/FoxReactor.cpp: - Layout and const changes - - * ace/OS_QoS.h: - Doxygen changes - - * ace/Process_Semaphore.cpp: - Use ACE_UNUSED_ARG - -Mon Oct 22 18:57:15 UTC 2007 Johnny Willemsen - - * ace/POSIX_Asynch_IO.h: - * ace/RW_Process_Mutex.h: - * ace/SOCK_Acceptor.h: - * ace/SOCK_Dgram.h: - * ace/SOCK_IO.h: - * ace/SOCK_SEQPACK_Acceptor.h: - * ace/SOCK_SEQPACK_Association.h: - * ace/SPIPE_Connector.h: - * ace/Task.h: - * ace/Thread.h: - * ace/Thread_Hook.h: - * ace/TLI_Connector.h: - * ace/UPIPE_Connector.h: - * ace/UPIPE_Stream.h: - * ace/XTI_ATM_Mcast.h: - Doxygen changes - -Mon Oct 22 18:53:15 UTC 2007 Johnny Willemsen - - * ace/Asynch_Connector.{h,cpp}: - Use bool instead of int for all the flags - - * ace/Asynch_IO_Impl.h: - * ace/Asynch_Pseudo_Task.h: - * ace/ATM_Connector.h: - * ace/Configuration.h: - * ace/ATM_Params.h: - * ace/Connection_Recycling_Strategy.h: - * ace/Connector.h: - * ace/Countdown_Time.h: - * ace/DEV_Connector.h: - * ace/FILE_Connector.h: - * ace/File_Lock.h: - * ace/Free_List.h: - * ace/Logging_Strategy.h: - * ace/MEM_IO.h: - * ace/Mem_Map.h: - * ace/MEM_SAP.h: - * ace/MEM_Stream.h: - * ace/Module.h: - Doxygen changes - - * ace/config-unixware-2.01-g++.h: - * ace/config-unixware-2.1.2-g++.h: - Deleted, we don't support unixware already for a long time - - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/config-vxworks6.4.h: - Added ACE_HAS_VXTHREADS as new define which is used when - we use the VxWorks specific threading model instead of pthread - - * ace/config-vxworks6.4.h: - Improved VxWorks 6.4 support - -Mon Oct 22 12:25:15 UTC 2007 Johnny Willemsen - - * tests/Bug_3102_Regression_Test.cpp: - * tests/run_test.lst: - * tests/tests.mpc: - New test for bugzilla 3102 - -Sun Oct 21 03:43:13 UTC 2007 Phil Mesnier - - * THANKS: added Venkat Sidhabathuni - -Fri Oct 19 21:56:11 UTC 2007 Steve Huston - - * tests/Config_Test.cpp: Don't attempt the persistent heap-based - test if the platform doesn't have memory-mapped file capability. - - * tests/run_test.lst: Don't try UnloadLibACE on LabVIEW RT - the - platform has special needs to run tests that are taken care of by - trickery in MPC and the ACE_TMAIN setup. UnloadLibACE is a - specialized test that doesn't use the usuall facilities so doesn't - play well in the LabVIEW RT test environment. - -Fri Oct 19 21:34:01 UTC 2007 Steve Huston - - * examples/APG/Reactor/HAStatus-AC.cpp: Set accepted connections into - nonblocking mode so the checks for EWOULDBLOCK when sending data - are meaningful. Thanks to Johnny Willemsen for noticing this. - -Fri Oct 19 16:00:00 UTC 2007 Simon Massey - - * bin/tao_other_tests.lst: - * bin/tao_orb_tests.lst: - - Update for Lynxos 4.2. - -Fri Oct 19 10:28:02 UTC 2007 Douglas C. Schmidt - - * ace/Priority_Reactor.{h,cpp}: Revised the build_bucket() method - to fix some bugs when trying to remove non-existent event - handlers. Thanks to Alex Solan for reporting this. - -Thu Oct 18 22:04:28 UTC 2007 Abdullah Sowayan - - * bin/msvc_static_order.lst: - - Added a few projects to the static order, this is necessary due - to the update of CIAO tutorial I committed today. This will - avoid a build problem for WinXP_VC71_CIAOCore_Static_Debug build. - -Thu Oct 18 10:08:15 UTC 2007 Johnny Willemsen - - * ace/Thread_Exit.{h,cpp}: - Changed is_constructed_ flag to a real bool - - * ace/IPC_SAP.cpp: - Updated some defines in comments - - * ace/config-openbsd.h: - * ace/config-linux-common.h: - Removed some commented out defines - - * ace/Select_Reactor_Base.h: - Layout changes - -Wed Oct 17 16:03:19 UTC 2007 Abdullah Sowayan - - * bin/msvc_static_order.lst: - - Added a few projects to the static order list to resolve - problems on WinXP_VC71_CIAOCore_Static_Debug build. - -Wed Oct 17 14:00:00 UTC 2007 Simon Massey - - * tests/Signal_Test.cpp: - * tests/run_tests.lst: - * tests/run_tests.pl: - - Have to reduce the number of iterations of the test for LynxOS - otherwise it grossly timesout during automatic testing. - - Add correct parameter processing for tasks being run with parameters. - -Wed Oct 17 12:00:00 UTC 2007 Simon Massey - - * tests/Log_Msg_Test.cpp: - * tests/run_tests.lst: - - Update for Lynxos 4.2. - -Tue Oct 16 16:22:26 UTC 2007 Steve Huston - - * ace/OS_NS_string.cpp (strerror): Fix to pass correct error value to - strerror_s in the ACE_HAS_TR24731_2005_CRT case (VC8+ at least). - Thank you to Pavel Zaichenko for this fix. - -Mon Oct 15 14:05:00 UTC 2007 Simon Massey - - * ace/ACE.cpp: - * ace/config-lynxos.h: - * ace/os_include/sys/os_resource.h: - - Add #define ACE_LACKS_RLIMIT_NOFILE processing for Lynxos. - -Fri Oct 12 21:28:34 UTC 2007 Steve Huston - - * ace/CDR_Stream.h: Fix the replace() method's comments to be included - in Doxygen output; expanded the description and included an example - for how to use replace(). - -Fri Oct 12 20:08:02 UTC 2007 Steve Huston - - * include/makeinclude/rules.common.GNU: Mark __prebuild__ .PHONY so - users with hand-made Makefiles, or those generated with older MPC - versions, will work correctly without the MPC-inserted __prebuild__ - target. - -Fri Oct 12 09:18:06 UTC 2007 Ossama Othman - - * tests/Reactor_Timer_Test.cpp: - - Renamed global "count" variable to "the_count" to disambiguate - it from the VxWorks STL "count" function. Thanks to Johnny for - suggesting where the problem actually lied. - -Thu Oct 11 12:22:57 UTC 2007 Jeff Parsons - - * THANKS: - - Added Gr�gor Boirie - -Wed Oct 10 11:33:40 UTC 2007 Steve Huston - - * tests/Sendfile_Test.cpp: Fix compile error on AIX. - -Tue Oct 9 23:33:27 UTC 2007 Steve Huston - - * bin/ace_tests.lst: Disable WFMO tests and HTBP tests on LabVIEW_RT. - LabVIEW_RT lacks Winsock 2 stuff needed for the WMFO tests, and the - HTBP test scripts aren't converted to work on LabVIEW RT. - - * tests/MT_Reactor_Upcall_Test.cpp: - * tests/Reactor_Dispatch_Order_Test.cpp: - * tests/Reactor_Registration_Test.cpp: Test ACE_WFMO_Reactor if - ACE_HAS_WINSOCK2 != 0, not if == 0. - - * tests/Sendfile_Test.cpp: Remove ACE_ASSERTs; correct some logging. - - * tests/run_test.lst: Disable Env_Value_Test, Dirent_Test, and - Multicast_Test on LabVIEW RT. LabVIEW_RT doesn't have env variables, - the Dirent_Test expects too much of the build machine's directory - structure to be available, and LabVIEW_RT lacks Winsock 2 and mcast. - -Mon Oct 8 17:59:15 UTC 2007 Ossama Othman - - * ace/Atomic_Op_T.h: - - Untabified, and nuked trailing whitespace. - - * tests/Reactor_Timer_Test.cpp: - - Include "ace/Log_Msg.h" to pull in ACE logging macros. - -Sun Oct 7 18:52:15 UTC 2007 Johnny Willemsen - - * ace/Asynch_IO_Impl.h - * ace/CDR_Stream.h - * ace/FILE.h - * ace/FILE_IO.h - * ace/MEM_IO.h - * ace/Pipe.h - * ace/POSIX_Asynch_IO.h - * ace/Shared_Memory_Pool.h - * ace/SOCK_SEQPACK_Association.h - * ace/Svc_Handler.h - * ace/Synch_Options.h - * ace/Task.h - * ace/Thread.h - * ace/Thread_Manager.h - * ace/WIN32_Asynch_IO.h - Doxygen improvements - -Sat Oct 6 17:55:09 UTC 2007 Ossama Othman - - * examples/Reactor/TP_Reactor/ReadHandler.cpp: - * examples/Reactor/TP_Reactor/AcceptHandler.cpp: - * examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp: - * examples/Reactor/WFMO_Reactor/APC.cpp: - * examples/Reactor/WFMO_Reactor/Registration.cpp: - * examples/Reactor/WFMO_Reactor/Console_Input.cpp: - * examples/Reactor/WFMO_Reactor/Directory_Changes.cpp: - - Include "ace/Log_Msg.h" to pull in ACE logging macros. - -Fri Oct 5 18:45:48 UTC 2007 Ossama Othman - - * ace/Atomic_Op_T.inl (ACE_Atomic_Op_Ex, operator=): - - Implement the assignment operator in terms of the copy - constructor, not the other way around. This (1) allows one less - lock to be held during copy construction, (2) allows for finer - grained locking during copy assignment, and (3) allows the - copy assignment operator to be implemented in a strongly - exception safe manner. - - (operator==, operator>=, operator>, operator<=, operator<): - (value): - - Removed casts that removed const-ness of the mutex_ member. - They aren't necessary in this case. - - * ace/Atomic_Op_T.cpp: - - Only include "ace/Log_Msg.h" if ACE_HAS_DUMP is defined. It - isn't needed otherwise. - - From Russell Mora - * ace/Atomic_Op_T.h: - * ace/Atomic_Op_T.inl: - * ace/Atomic_Op_T.cpp: - - Parameterized argument types using type traits. Avoids warnings - about references being taken of temporaries for built-in types. - -Fri Oct 5 12:20:00 UTC 2007 Simon Massey - - * ace/config-lynxos.h: - - Updated for 4.0 -> 4.2. - -Wed Oct 3 19:31:15 UTC 2007 Johnny Willemsen - - * ace/Acceptor.cpp - * ace/Acceptor.h - * ace/ATM_Connector.h - * ace/Cached_Connect_Strategy_T.h - * ace/Caching_Strategies_T.h - * ace/Caching_Strategies_T.inl - * ace/Connector.cpp - * ace/Connector.h - * ace/Countdown_Time.h - * ace/DEV_Connector.h - * ace/Dev_Poll_Reactor.cpp - * ace/Dev_Poll_Reactor.h - * ace/Dirent.h - * ace/Event_Handler.h - * ace/FILE_Connector.h - * ace/Future.h - * ace/Future_Set.cpp - * ace/Future_Set.h - * ace/Handle_Set.h - * ace/Hash_Map_Manager_T.h - * ace/Local_Name_Space.cpp - * ace/Local_Name_Space.h - * ace/Lock_Adapter_T.cpp - * ace/Lock_Adapter_T.h - * ace/Lock_Adapter_T.inl - * ace/Message_Queue_T.h - * ace/NT_Service.h - * ace/OS_NS_sys_socket.h - * ace/Proactor.cpp - * ace/Proactor.h - * ace/RB_Tree.h - * ace/Service_Repository.cpp - * ace/Service_Repository.h - * ace/SOCK_Acceptor.h - * ace/SOCK_Dgram.h - * ace/SOCK_Dgram_Mcast.h - * ace/SOCK_SEQPACK_Acceptor.h - * ace/SPIPE_Connector.h - * ace/Strategies_T.cpp - * ace/Strategies_T.h - * ace/Svc_Handler.h - * ace/Task_Ex_T.cpp - * ace/Task_Ex_T.h - * ace/Task_Ex_T.inl - * ace/Task_T.cpp - * ace/Task_T.h - * ace/Task_T.inl - * ace/Thread_Control.h - * ace/Thread_Manager.cpp - * ace/Thread_Manager.h - * ace/Thread_Mutex.h - * ace/Timeprobe_T.h - * ace/Timer_Hash_T.h - * ace/Timer_Queue_T.h - * ace/TLI_Connector.h - * ace/WFMO_Reactor.cpp - * ace/WFMO_Reactor.h - * ace/WFMO_Reactor.inl - * ace/XTI_ATM_Mcast.h - Doxygen improvements, small cleanups and bool changes - -Tue Oct 2 17:06:15 UTC 2007 Johnny Willemsen - - * ace/Asynch_IO_Impl.h - * ace/config-macosx-tiger.h - * ace/Dev_Poll_Reactor.h - * ace/Message_Queue.h - * ace/Message_Queue.inl - * ace/Message_Queue_T.cpp - * ace/Message_Queue_T.h - * ace/Message_Queue_Vx.cpp - * ace/Message_Queue_Vx.h - * ace/Msg_WFMO_Reactor.h - * ace/Notification_Strategy.h - * ace/NT_Service.h - * ace/Object_Manager.h - * ace/Object_Manager_Base.h - * ace/POSIX_Asynch_IO.h - * ace/POSIX_CB_Proactor.h - * ace/POSIX_Proactor.h - * ace/Proactor.h - * ace/Process.cpp - * ace/Process.h - * ace/Process.inl - * ace/Process_Manager.cpp - * ace/Process_Manager.h - * ace/Process_Semaphore.cpp - * ace/Process_Semaphore.h - * ace/Reactor.h - * ace/Reactor_Impl.h - * ace/SOCK_Connector.h - * ace/WFMO_Reactor.h - Doxygen improvements, small cleanups and bool changes - -Mon Oct 1 15:06:15 UTC 2007 Johnny Willemsen - - * bin/make_release.py: - Added generation of vc8 static solution files - - * ace/Argv_Type_Converter.cpp - * ace/Argv_Type_Converter.h - * ace/Argv_Type_Converter.inl - * ace/ATM_Params.h - * ace/CDR_Stream.cpp - * ace/DEV_IO.h - * ace/INET_Addr.h - * ace/LSOCK_Connector.h - * ace/Message_Block.h - * ace/Multihomed_INET_Addr.h - * ace/Reactor_Notification_Strategy.h - * ace/SOCK_Dgram_Mcast.h - * ace/Timer_Queue_Adapters.cpp - * ace/Timer_Queue_Adapters.h - * ace/TP_Reactor.h - * ace/WIN32_Proactor.cpp - * ace/WIN32_Proactor.h - Doxygen, const, and bool improvements - - * ace/Multiplexor.cpp - * ace/Multiplexor.h - * ace/Multiplexor.inl - Removed, not implemented for years now - -Mon Oct 1 13:39:29 UTC 2007 Olli Savia - - * ace/OS_NS_Thread.h: - Final fix (and code cleanup) for bug #3074. - -Fri Sep 28 06:12:15 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux_common.GNU: - Added nptl=0|1 to disable/enable nptl support through the - platform_macros.GNU file - -Thu Sep 27 16:29:19 UTC 2007 Steve Huston - - * bin/PerlACE/ProcessLVRT.pm: Try to clean some files off the target - on a few more failure cases. - -Thu Sep 27 13:06:29 UTC 2007 Vladimir Zykov - - * ace/Timer_Hash_T.cpp: - Fix for a warning on Win2003_VC71_Inline_MFC build. - -Wed Sep 26 17:56:02 GMT 2007 Rich Seibel - - * bin/add_rel_links.sh: - * include/makeinclude/rules.local.GNU: - * include/makeinclude/wrapper_macros.GNU: - Make the symlinks in ACE_wrappers/lib be relative rather - than absolute. - -Wed Sep 26 16:51:47 UTC 2007 Vladimir Zykov - - * ace/Timer_Hash_T.h: - * ace/Timer_Hash_T.cpp: - * tests/Timer_Queue_Reference_Counting_Test.cpp: - Another attempt to fix the memory leak in ACE_Timer_Hash_T. - Now the solution is very similar to what was done in - ACE_Timer_Queue_T for memory management of ACE_Timer_Node_T. - So, it's not worse than what is already in the code base. - Now also it's important to cancel all valid timers before the - timer queue is destroyed otherwise a memory leak will occur. - In short it means if you called schedule at the beginning then - don't forget to call cancel at the end. - -Wed Sep 26 09:34:29 UTC 2007 Vladimir Zykov - - * ace/Timer_Hash_T.h: - * ace/Timer_Hash_T.cpp: - Back out a fix for one of the leaks fixed before. The solution - was not perfect. - -Wed Sep 26 08:37:15 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Corrected incorrect Sun Studio version check - -Wed Sep 26 08:16:15 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Changes for Sun Studio 12 - -Tue Sep 25 15:55:21 UTC 2007 Vladimir Zykov - - * ace/Timer_Hash_T.h: - * ace/Timer_Hash_T.cpp: - * tests/Timer_Queue_Reference_Counting_Test.cpp: - An attempt to fix the memory leaks in tests/Timer_Queue_Test.cpp - and tests/Timer_Queue_Reference_Counting_Test.cpp. - -Tue Sep 25 15:22:15 UTC 2007 Chad Elliott - - * ace/OS_NS_ctype.h: - * ace/OS_NS_ctype.inl: - - Implement a slightly dumb version of ace_towlower when towlower is - not available from the system libraries. Previously, ace_towlower - would not be available if ACE_LACKS_TOWLOWER was defined. - - * ace/OS_NS_string.cpp: - - Replaced the ACE_OS::strtok_r_emulation() implementation, when - ACE_HAS_WCHAR and ACE_LACKS_WCSTOK are defined, with a public - domain implementation (converted to work with wide characters and - c++). It did not compile as previously implemented. - -Mon Sep 24 18:58:01 UTC 2007 Abdullah Sowayan - - * ace/ATM_Acceptor.inl: - * ace/IOStream_T.inl: - * ace/OS_NS_dlfcn.inl: - * ace/OS_NS_netdb.inl: - * ace/OS_NS_sys_mman.inl: - * ace/OS_NS_sys_stat.inl: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - -Mon Sep 24 18:44:08 UTC 2007 Ossama Othman - - * ace/OS_NS_unistd.inl (swab): - - Added missing copyright notice for swab() implementation in - "ACE_LACKS_SWAB" block of code. That implementation falls under - the BSD license. - -Mon Sep 24 15:51:14 UTC 2007 Steve Huston - - * bin/PerlACE/ProcessLVRT.pm: Clarify that the Net-Telnet Perl module - is required to use this module. - -Mon Sep 24 07:47:15 UTC 2007 Johnny Willemsen - - * ace/README: - * ace/TSS_T.h: - Removed ACE_HAS_BROKEN_CONVERSIONS usage - -Sat Sep 22 13:39:35 UTC 2007 Steve Huston - - * ace/config-hpux-11.00.h: Removed ACE_HAS_BROKEN_CONVERSIONS; thanks - to Johnny for noticing this isn't needed anymore. Also cleaned up - some comments that still referred to HP C++ rather than aC++. - -Fri Sep 21 19:00:43 UTC 2007 Dale Wilson - - * ace/OS_NS_Thread.h: - Olli reports that the change to OS_NS_Thread.h causes - a test failure on LynxOS. (Bug #3074) - Since the change isn't critical -- the config-win32-common.h - change was the real fix to the problem -- I'm reverting this file. - -Fri Sep 21 18:59:15 UTC 2007 Johnny Willemsen - - * ace/config-hpux-11.00.h: - Removed defining of __HP_aCC when it is not defined yet - -Fri Sep 21 16:34:47 UTC 2007 Abdullah Sowayan - - * ace/Hash_Cache_Map_Manager_T.cpp: - * ace/Log_Msg.cpp: - * ace/OS_NS_Thread.inl: - * ace/OS_NS_stdio.inl: - * ace/OS_NS_sys_mman.inl: - * ace/OS_NS_sys_socket.inl: - * ace/OS_NS_unistd.inl: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - -Fri Sep 21 17:19:52 UTC 2007 Ossama Othman - - * ace/INET_Addr.cpp (get_host_name_i): - - Removed const qualifiers. The variables in question do get - reassigned. - -Fri Sep 21 09:32:15 UTC 2007 Johnny Willemsen - - * tests/Reactor_Exceptions_Test.cpp: - Updated this test to not derive from ACE_Reactor, that is not - possible anymore. Fixes the failing of this test on our - build systems - -Fri Sep 21 09:30:15 UTC 2007 Johnny Willemsen - - * ace/Truncate.h: - Added another specialization for BCB - -Fri Sep 21 09:05:15 UTC 2007 Johnny Willemsen - - * ace/Truncate.h: - Added needed specialization for BCB - - * ace/Reactor.{h,cpp}: - Changed delete_reactor and delete_implementation flags to bool - -Fri Sep 21 05:46:15 UTC 2007 Johnny Willemsen - - * tests/Makefile.am: - * tests/run_test.lst: - * tests/tests.mpc: - Updated for UUIDTest rename - -Thu Sep 20 23:58:15 UTC 2007 Ossama Othman - - * ace/ACE.cpp: - - Simplified message block chunk length truncation code by taking - advantage of ACE_Utils::truncate_cast<>. - - * ace/Guard_T.inl (ACE_Guard): - - Removed unnecessary use of ACE_UNUSED_ARG macro. Comment out - the parameter name instead. - - * ace/Service_Config.cpp: - - Minor const-correctness and loop increment improvements. - - * ace/Service_Gestalt.cpp: - - Replaced ACE_NEW_NORETURN() followed explicit by zero pointer - check with ACE_NEW_RETURN(). - - * ace/Service_Types.cpp: - - Removed some leading whitespace. - - * ace/Time_Value.h (msec): - * ace/Time_Value.inl (msec): - - Enabled 64-bit version of this accessor method on all - platforms. - - * ace/Timer_Hash_T.cpp (reschedule, schedule_i): - * ace/Timer_Hash_T.h: - - Use a straight static_cast<> instead of - ACE_Utils::truncate_cast<> when computing the hash value. The - former will provide more unique results when the number of - seconds is greater than std::numeric_limits::max(). - - (reset_interval): - - Don't bother grabbing the lock until a class member is actually - accessed. - - (is_empty): - - Return a bool instead of an int. The former better reflects how - the return value should be interpreted. - - * ace/Timer_Heap_T.cpp (ACE_HEAP_PARENT, ACE_HEAP_LCHILD): - - Converted these macros to inline functions. Nice and clean. - - (ACE_Timer_Heap_T, grow_heap): - Replaced calls to std::numeric_limits<>::max() with - ACE_Numeric_Limits<>::max() to allow removal of "ifndef - ACE_LACKS_NUMERIC_LIMITS" block of code. - - (cancel): - - Moved zero initialized local variable out of lock scope. - - * ace/Timer_Heap_T.h (isdone, is_empty): - * ace/Timer_List_T.cpp: - * ace/Timer_List_T.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel_T.cpp: - * ace/Timer_Wheel_T.h: - - Return a bool instead of an int. The former better reflects how - the return value should be interpreted. - - * tests/Config_Test.cpp: - - Addressed type conversion warnings. - - From Russell Mora - * ace/INET_Addr.cpp (get_hostname_i, set_address): - * ace/README: - * ace/config-hpux-11.00.h: - * ace/config-sunos5.8.h: - * ace/config-tru64.h: - * ace/config-win32.h: - - Some platforms don't convert IPv6-mapped-IPv4 addrs to IPv4 - addrs when passed to gethostbyaddr(), even though it is in the - stardard. This code will do it for them. - - When mapping IPv4 addresses to IPv6-mapped-IPv4 addresses don't - just convert INADDR_LOOPBACK to in6addr_loopback - this won't - work (i.e. IPv4 clients will not be able to connect to it). - - The ip4 variable will be in network-byte-order (either because - we converted it or it was passed in already in - network-byte-order) so make sure we convert it back to - host-byte-order before doing any comparisons. - - * ace/OS_NS_Thread.cpp (thread_exit): - - Zero out TSS values in ACE_OS::cleanup_tss(). This avoids - getting back dangling pointers if ACE TSS is used again after - the cleanup call. - -Thu Sep 20 21:22:30 UTC 2007 Jeff Parsons - - * ace/UUID.cpp: - - Fixed typos. - -Fri Sep 14 00:36:43 UTC 2007 Douglas C. Schmidt - - * ace/UUID.cpp: Changed the case of the clock_sequence from u_char - to ACE_UINT16 to avoid duplicate UUIDs. Thanks to wim dot van - dot den dot boogaard at varianinc dot com for reporting this. - -Thu Sep 13 17:57:31 UTC 2007 Douglas C. Schmidt - - * ace/Mutex.h: Updated the document for ACE_Mutex to indicate that - ACE_Process_Mutex or ACE_Thread_Mutex is preferred. Thanks to - Nathan Glasser - -Tue Sep 11 15:24:43 UTC 2007 Douglas C. Schmidt - - * docs/ACE-bug-process.html: Clarified bug fixing policies. Thanks to - Torsten Saliwada for motivating this. - -Mon Sep 3 18:54:54 UTC 2007 Douglas C. Schmidt - - * NEWS: Updated the NEWS file to reflect the recent changes to the UUID class. - -Mon Sep 3 14:54:55 UTC 2007 Douglas C. Schmidt - - * protocols/ace/HTBP/HTBP_ID_Requestor.cpp (get_HTID): - * tests/UUID_Test.cpp (test): Updated to use the new "ACE-ified" - UUDI interface. - -Mon Sep 3 12:53:49 UTC 2007 Douglas C. Schmidt - - * ace/UUID.{h,inl,cpp}: Converted this code to use ACE programming - conventions for naming. - -Mon Sep 3 12:37:44 UTC 2007 Douglas C. Schmidt - - * ace/UUID.{h,inl,cpp}: - Implemented an accessor to obtain the timestamp and - clockSequence in an atomic manner. The clockSequence could - change between the moment the timestamp is obtained and the - moment the clockSequence is used in a multithreaded environment - and that results in duplicate UUIDs. Thanks to Wim van den - Boogaard - for contributing this. - -Thu Sep 20 18:49:27 UTC 2007 Abdullah Sowayan - - * include/makeinclude/platform_g++_common.GNU: - Enhance rules to detect FC6 explicitly. The prior rules didn't - work under my FC6 distrubtion. - -Thu Sep 20 17:12:15 UTC 2007 Johnny Willemsen - - * apps/JAWS2/JAWS/IO_Handler.cpp: - Added needed include for closesocket - -Thu Sep 20 12:56:15 UTC 2007 Johnny Willemsen - - * ace/Reactor.{cpp,inl}: - Made all non virtual single line methods inline methods to gain - performance and reduce footprint - - * ace/Dev_Poll_Reactor.h: - * ace/File_Lock.h: - * ace/FlReactor/FlReactor.h: - * ace/FoxReactor/FoxReactor.h: - * ace/OS_NS_unistd.h: - * ace/Proactor.h: - * ace/QtReactor/QtReactor.h: - * ace/Reactor.h: - * ace/Reactor_Impl.h: - * ace/Select_Reactor_T.h: - * ace/TkReactor/TkReactor.h: - * ace/WFMO_Reactor.h: - * ace/XtReactor/XtReactor.h: - Fixed doxygen warnings - -Thu Sep 20 08:58:15 UTC 2007 Johnny Willemsen - - * ace/Dynamic_Message_Strategy.{h,cpp,inl}: - * ace/Message_Block.{h,cpp,inl}: - * ace/Message_Queue_T.h: - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - * ace/Makefile.am: - Moved ACE_Dynamic_Message_Strategy to its own file to reduce footprint - for applications that don't use it. Fixes bugzilla 2998 - -Thu Sep 20 08:05:15 UTC 2007 Johnny Willemsen - - * apps/JAWS2/JAWS/IO_Handler.cpp: - Use closesocket to close the socket, to prevent a leak on windows. - This fixes bugzilla 1124, thanks to Alain Totouom - for reporting this. - - * ace/OS_NS_sys_socket.h: - Doxygen improvement - -Thu Sep 20 07:56:15 UTC 2007 Johnny Willemsen - - * ace/Based_Pointer_T.{h,inl}: - Let the operator* and operator[] return a & so that we don't make a - copy. This fixes bugzilla 742, thanks to Pavel Zaichenko - for reporting this - -Thu Sep 20 07:24:15 UTC 2007 Johnny Willemsen - - * ace/Log_Msg.{h,cpp,inl}: - Added new inline file and moved several methods to that file. Fixes - bugzilla 2364 - - * ace/Makefile.am: - Added new file - -Thu Sep 20 06:59:15 UTC 2007 Johnny Willemsen - - * ace/ATM_Params.h: - * ace/Dev_Poll_Reactor.h: - * ace/Event_Handler.h: - * ace/Proactor.h: - * ace/Reactor_Impl.h: - * ace/Select_Reactor_T.h: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Hash_T.h: - * ace/Timer_Heap_T.cpp: - * ace/Timer_Heap_T.h: - * ace/Timer_List_T.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel_T.h: - * ace/Timer_List_T.cpp: - Doxygen improvements - - * ace/CDR_Stream.cpp: - * ace/CDR_Stream.inl: - * ace/Lib_Find.cpp: - Const improvements - - * ace/config-ghs-common.h: - * ace/config-irix6.5.x-sgic++.h: - * ace/config-irix6.x-sgic++.h: - * ace/config-macosx-panther.h: - * ace/config-macosx-tiger.h: - * ace/config-macosx.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-unixware-7.1.0.h: - * ace/config-unixware-7.1.0.udk.h: - * ace/config-win32-dmc.h: - * ace/config-win32-ghs.h: - * ace/config-win32-interix.h: - Removed ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION, we don't support that - already a long time - - * ace/config-hpux-11.00.h: - Removed support for ancient HP compilers that also required explicit template - instantiations. Fixes bugzilla 3071 - - * ace/config-sunos5.6.h: - Removed undef of ACE_HAS_STL_QUEUE_CONFLICT, it is not set anywhere - - * ace/config-sunos5.7.h: - Removed support for GCC 2.7.2 - - * ace/Malloc.cpp (name): - * ace/PI_Malloc.cpp (name): - No need for intermediate variable - - * ace/os_include/os_semaphore.h: - * ace/OS_NS_Thread.inl: - Changed new_sema_ to a real bool - - * ace/Reactor.h: - Only the methods derived from ACE_Reactor_Timer_Interface need to be virtual, - all other methods don't need to be that. Next step would be to inline these - methods. - - * ace/Sig_Handler.cpp: - * ace/Sig_Handler.h: - * ace/Timer_Hash_T.h: - * ace/Timer_Heap_T.h: - * ace/Timer_List_T.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel_T.h: - Removed support for ACE_HAS_BROKEN_HPUX_TEMPLATES - - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_Adapters.h: - * ace/Timer_Queue_Adapters.inl: - Changed delete_timer_queue to a real bool - - * ace/Timer_Hash.cpp: - * ace/Timer_Heap.cpp: - * ace/Timer_List.cpp: - * ace/Timer_Wheel.cpp: - * ace/Timer_Queue.cpp: - Removed from the repo, they only existed because of a broken HP compiler. - - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - * ace/Makefile.am: - Updated for the removed files - - * etc/ace.doxygen: - Use shortnames, fixes bugzilla 3069 - - * bin/make_release.py: - Use vc71 name modifier for the vc71 project files. Fixes bugzilla 2987 - - * docs/bczar/bczar.html: - Updated based on the steps of x.6.1 - -Wed Sep 19 04:10:15 CDT 2007 Johnny Willemsen - - * ACE version 5.6.1 released. - -Tue Sep 18 11:05:38 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux_common.GNU: - * include/makeinclude/platform_linux_icc.GNU: - Intel C++ needs a special ar tool when building statically - -Mon Sep 17 15:51:38 UTC 2007 Johnny Willemsen - - * configure.ac: - When checking for ACE_LACKS_NAMED_POSIX_SEM, include errno.h when - we have detected that this file is available. Hayim Shaul - reported an autoconf log where this define - was set because the test failed to compile because errno was not - defined - -Fri Sep 14 18:53:38 UTC 2007 Johnny Willemsen - - * tests/acetest.mpb: - * tests/SSL/acetest.mpb: - Don't use ACE_ROOT, causes problems with GNU make on windows when we build - on a different drive then the autobuild system is located at - -Fri Sep 14 09:47:38 UTC 2007 Johnny Willemsen - - * ace/CDR_Base.{inl}: - The swap_8 method was incorrect, there we use an EM64T instruction, - use ACE_HAS_INTEL_ASSEMBLY in the swap_2 and swap_4 method - -Fri Sep 14 04:51:38 UTC 2007 Johnny Willemsen - - * ace/CDR_Base.{cpp.inl}: - Don't use ACE_HAS_INTEL_ASSEMBLY, but just add EM64T, fixes problems - with solaris and vxworks - - Revert this change, not needed - - Thu Sep 13 08:55:38 UTC 2007 Johnny Willemsen - * ace/config-sunos5.5.h: - Don't use ACE_HAS_INTEL_ASSEMBLY with GCC - -Thu Sep 13 15:49:45 UTC 2007 Dale Wilson - - * NEWS: - Added description of ACE_DEFAULT_THREAD_KEYS change. - -Thu Sep 13 15:34:15 UTC 2007 Dale Wilson - - * ace/OS_NS_Thread.h: - * ace/config-win32-common.h: - Base the definiton of ACE_DEFAULT_THREAD_KEYS on the - Windows version rather than using the misleading - TLS_MINIMUM_AVAILABLE - Move the check to see if _WIN32_WINNT is defined - until *after* windows.h is included (directly or indirectly) - -Thu Sep 13 15:17:28 UTC 2007 Abdullah Sowayan - - * ace/ATM_Stream.cpp: - * ace/Lib_Find.cpp: - * ace/Metrics_Cache_T.cpp: - * ace/Process_Mutex.cpp: - * ace/Service_Config.cpp: - * ace/Service_Gestalt.cpp: - * ace/Service_Manager.cpp: - * ace/Throughput_Stats.cpp: - * ace/Timeprobe_T.cpp: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - -Thu Sep 13 08:55:38 UTC 2007 Johnny Willemsen - - * ace/config-sunos5.5.h: - Don't use ACE_HAS_INTEL_ASSEMBLY with GCC - -Wed Sep 12 18:02:38 UTC 2007 Johnny Willemsen - - * ace/config-win32-borland.h: - CodeGear RAD Studio 2007 doesn't seem to support inlined assembly - - * ace/config-g++-common.h: - * ace/config-icc-common.h: - When we have pentium, AMD64, or EM64T as CPU define - ACE_HAS_INTEL_ASSEMBLY - - * ace/Atomic_Op.h: - Simplified this file by using ACE_HAS_INTEL_ASSEMBLY - - * ace/CDR_Base.{cpp.inl}: - Make use of ACE_HAS_INTEL_ASSEMBLY, this fixes bugzilla - issue 3072 - - * ace/WFMO_Reactor.h: - Doxygen fixes - -Wed Sep 12 04:16:12 UTC 2007 Adam Mitz - - * ACE-INSTALL.html: - - Added notes on Microsoft Visual C++ 2005 Express Edition. - -Tue Sep 11 15:50:35 UTC 2007 Nishanth Shankaran - - * ace/Sample_History.cpp: Fixed formatting errors in the - dump_samples method. - -Tue Sep 11 11:38:38 UTC 2007 Johnny Willemsen - - * ACE-INSTALL.html: - Updated supported platforms - -Mon Sep 10 13:22:38 UTC 2007 Abdullah Sowayan - - * apps/JAWS/stress_testing/util.cpp: - * apps/drwho/Multicast_Manager.cpp: - * apps/drwho/Options.cpp: - * bin/LabVIEW_RT/labview_test_controller/labview_test_controller.cpp: - * bin/LabVIEW_RT/labview_test_controller/test.cpp: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - -Mon Sep 10 12:17:24 UTC 2007 Phil Mesnier - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - Add timeouts to recv_n and send_n calls to ensure the calling - loops always exit. - - This is necessary due to certain races that can occur between - the start up of new send/recv threads, and the shutdown of - individual thread loops. What sometimes happens is that a thread - is started to read from a socket, and then a different thread - closes down the read-side of the socket. But due to thread - startup delays, the send side never gets to the point where it - detects the close, effectively leaving a half-closed connection. - - In this case, on "weevil" a Windows 2003 server, the thread - blocked in recv on the half closed socket is not killed by the - nightly test script's shutdown signal, leaving a zombie - process. This zombie holds a lock on the libACE.dll file, which - then cannot be rebuilt, and as a result, subsequent nightly - builds fail catastrophically. - -Mon Sep 10 11:19:20 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Remove TAO/docs directory from the list of excluded - directories for the tabs check. - -Fri Sep 7 19:52:12 UTC 2007 Johnny Willemsen - - * etc/index.html: - Added links for older versions - -Fri Sep 7 11:45:12 UTC 2007 Johnny Willemsen - - * etc/doxygen.css: - * etc/index.html: - Put the files published online at http://www.dre.vanderbilt.edu/Doxygen/ - under version control - -Thu Sep 6 22:59:24 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - Remove TAO/utils directory from the list of excluded - directories for the tabs check. - -Thu Sep 6 18:28:12 UTC 2007 Johnny Willemsen - - * ace/config-win32-borland.h: - Make use of the new inline assembly feature of the upcoming CodeGear C++ - compiler - -Thu Sep 6 18:53:06 UTC 2007 Ossama Othman - - * tests/run_test.lst: - - Added the SSL_Asynch_Stream_Test and - Thread_Pool_Reactor_SSL_Test to the list of tests to run. The - run_test.pl script now supports log files for test binaries in - subdirectories. [Bug 2985] - -Thu Sep 6 18:41:36 UTC 2007 Ossama Othman - - * bin/fuzz.pl: - - Nuked trailing whitespace. - - * tests/run_test.pl (check_log): - - Support logs generated by tests in subdirectories, such as tests - found in the SSL subdirectory. - -Thu Sep 6 15:33:15 UTC 2007 Friedhelm Wolf - - * docs/ACE-guidelines.html - Add guidelines about doxygen comments - -Thu Sep 6 14:41:50 UTC 2007 Douglas C. Schmidt - - * ace/WIN32_Asynch_IO.cpp (open): Update the win32_proactor_ - pointer so it's in synch after a call to open(). Thanks to - Erman Balcik for - contributing this. - -Thu Sep 6 12:12:12 UTC 2007 Johnny Willemsen - - * performance-tests/Synch-Benchmarks/run_tests.pl: - Fixed typo - -Thu Sep 6 12:09:12 UTC 2007 Johnny Willemsen - - * bin/generate_rel_manpages: - Added md5sum steps - -Thu Sep 6 09:27:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_Thread.h: - Doxyen fix - -Thu Sep 6 00:13:48 UTC 2007 Ossama Othman - - * tests/run_test.lst: - - Updated location of Bug_2912_Regression test. - -Wed Sep 5 23:40:15 UTC 2007 Ossama Othman - - * tests/Bug_2912_Regression_Test.cpp: - * tests/tests.mpc: - * tests/SSL/tests.mpc: - - Moved Bug_2912_Regression test to the SSL subdirectory. It is - an SSL related test. - - * tests/Naming_Test.cpp: - * tests/Test_Output.cpp (randomize): - * tests/Timer_Queue_Test.cpp: - * tests/randomize.h (randomize): - * tests/test_config.h: - - Refactored test array element order randomization code to a - generic function template that can be leveraged by all tests. - In the process of refactoring the code, also corrected problem - where only the first half of the array elements were - randomized. - - * tests/Reactor_Remove_Resume_Test.cpp (run_main): - - Fixed typo in factory count calculation. - - * tests/Test_Output.cpp: - - Addressed some Coverity errors. - -Tue Sep 4 14:39:11 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - Remove the CIAO directory from the list of excluded - directories for the tabs check. - -Mon Sep 03 12:04:12 UTC 2007 Johnny Willemsen - - * docs/bczar/bczar.html: - Extended instructions - - * docs/Download.html: - Updated download locations for latest release which is not x.6 - -Mon Sep 03 02:50:30 CDT 2007 Johnny Willemsen - - * ACE version 5.6 released. - -Thu Aug 30 17:23:21 UTC 2007 Steve Huston - - * bin/LabVIEW_RT/labview_test_controller/stdafx.cpp: - * bin/LabVIEW_RT/labview_test_controller/stdafx.h: - * bin/LabVIEW_RT/labview_test_controller/test.cpp: - * bin/LabVIEW_RT/labview_test_controller/labview_test_controller.cpp: - Fixed Fuxx errors. - -Thu Aug 30 17:05:00 UTC 2007 Steve Huston - - * protocols/tests/HTBP/ping/client.cpp: Reverted the addition of - specific AF_INET address family. Since the server and client are - both doing specific name lookup, they'll both get the same IP - address and family, so we need not try to force one. Also added - more logging of the address and port to connect to. - - * protocols/tests/HTBP/ping/server.cpp: Log the listening IP/port. - -Thu Aug 30 16:34:06 UTC 2007 Steve Huston - - * bin/MakeProjectCreator/config/labviewrt_dll.mpb: A base that - is used with LabVIEW RT-target builds to change all the builds - for executables to build a DLL instead. This is needed for LabVIEW - RT w/ Phar Lap ETS. Please see bin/LabVIEW_RT/README for info. - - * bin/LabVIEW_RT/README: Added a note about labviewrt_dll.mpb's use. - -Thu Aug 30 07:06:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_g++_common.GNU: - Added rules to detect FC6 explicitly - -Thu Aug 30 03:41:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_g++_common.GNU: - FC6 and FC5 have exact the same GCC version, FC5 doesn't need the - workaround, FC6 does. Disabled the check for this specific RedHat - GCC version. FC6 users have to manually set - ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS to 1 - -Wed Aug 29 23:36:52 UTC 2007 Steve Huston - - * protocols/tests/HTBP/Reactor_Tests/server.cpp: - * protocols/tests/HTBP/Send_Large_Msg/server.cpp: - * protocols/tests/HTBP/ping/server.cpp: - Listen at the IP address represented by the hostname, not "any". - Matches what the client is going to do when looking up the host - to connect to. Of particular interest is getting the IP address - families to be the same for server and client on IPv6-capable - systems. Thanks to Phil Mesnier for these patches. - -Wed Aug 29 22:53:57 UTC 2007 Steve Huston - - * bin/LabVIEW_RT: A directory of information and utilities useful - for running ACE+TAO tests on LabVIEW RT / Phar Lap ETS targets. - See the README file in that directory for more information. - - * docs/svn/config: - * docs/svn/svn-prefs.reg: Add .ini as a text-type known file type. - -Wed Aug 29 18:55:33 UTC 2007 Steve Huston - - * protocols/tests/HTBP/ping/client.cpp: Explicitly set AF_INET on the - address to connect to the server on. Fixes fails on IPv6 builds. - Thanks to Phil Mesnier for diagnosing this problem. - Also fixed logging conversions where needed for 64-bit and wide-char. - -Wed Aug 29 18:21:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_aix_g++.GNU: - Another try, if this doesn't work I revert all changes from last wek - -Wed Aug 29 18:02:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_g++_common.GNU: - Detect the RedHat GCC compilers that need to have - ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS defined to 1. - If we detect that, add CE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS=1 - to the compiler flags - -Wed Aug 29 15:09:17 UTC 2007 Steve Huston - - * NEWS: Add note about LabVIEW RT/Pharlap ETS port. - -Wed Aug 29 08:33:12 UTC 2007 Johnny Willemsen - - * bin/cut_cidlc.sh: - Put this script under version control, it is used to cut the cidlc - release binaries - - * docs/bczar/bczar.html: - Added cut_cidlc.sh as last step of the release instructions - - * include/makeinclude/platform_aix_g++.GNU: - Made another few changes to resolve the new link errors - -Tue Aug 28 08:43:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_aix_g++.GNU: - Improved this file, thanks to Werner Buchert - for testing these changes - -Mon Aug 27 07:55:12 UTC 2007 Johnny Willemsen - - * ace/ace.mpc: - * ace/ace_for_tao.mpc: - * ace/Makefile.am: - Added missing Select_Reactor.h, thanks to Vikram Karandikar - for reporting this - -Sat Aug 25 12:57:30 UTC 2007 Steve Huston - - * bin/PerlACE/ProcessLVRT.pm: New class that integrates running a - test on a LabVIEW RT Pharlap ETS target. This requires the Perl - Net-Telnet. - - * bin/PerlACE/TestTarget.pm: The new TestTarget class is for test - operations that are per-target, such as creating a local file path, - deleting a file on the target, waiting for a file, creating a - process, and getting the standard error log. In the default case, - these all do the usual PerlACE functions currently in use. However, - you can derive a class from this to do things differently. For - example, on LabVIEW RT, creating a process really uses the - ProcessLVRT module described above. Deleting a file uses FTP to - delete it, etc. - In this way, it's possible to customize the behaviors to a target - without changing all the test scripts. The hitch is that the test - script has to be changed once to instantiate the TestTarget object - and then make method calls on it instead of calling PerlACE - functions directly. - - * bin/TestTarget_LVRT.pm: Customization of TestTarget for LabVIEW RT. - It requires the Net-Telnet Perl module to work. It's used when - the TestTarget::create_target method is called and LabVIEW_RT is - set in the test configuration. - - * tests/run_test.pl: Select ProcessLVRT when running a test with the - LabVIEW_RT configuration. - -Fri Aug 24 21:52:37 UTC 2007 Steve Huston - - * ace/MMAP_Memoy_Pool.cpp (map_file): Reverted the "always do - MAP_FIXED" flag on remapping a file from: - Wed Aug 22 18:10:09 UTC 2007 Steve Huston - That's an invalid thing to do, as it has the potential to remap - pages from things like the heap or the C library or ACE into the - mapped file - definitely not what we want. If the remap has to move - the area, it's best to fail it here. - - * tests/Naming_Test.cpp: Correct logging formats and wedge in a base - address for the name space's mmaped region. This avoids having to - move the mapped area as it grows, which totally screws the name - space map. RHEL4 x64 seems to be the only platform this is tested - on regularly where this condition is hit. - -Fri Aug 24 16:15:59 UTC 2007 Phil Mesnier - - * bin/ace_tests.lst: - * bin/tao_other_tests.lst: - guard against running the HTBP and HTIOP tests on systems that - do not build ACE_UUID, such as the compact builds. - -Thu Aug 23 19:39:27 UTC 2007 Abdullah Sowayan - - * bin/msvc_static_order.lst: - Added some TAO projects to the list in an attempt to fix - the WinXP_VC71_CIAOCore_Static_Debug build. - -Thu Aug 23 15:07:01 UTC 2007 Steve Huston - - * configure.ac: Allow POSIX semaphores to be used with UI Threads - (ala Solaris) if the functions are there. - -Thu Aug 23 05:35:12 UTC 2007 Johnny Willemsen - - * ace/Hash_Map_Manager_T.inl: - Don't use ACE_LIB_TEXT, but ACE_TEXT - -Wed Aug 22 22:31:00 UTC 2007 Steve Huston - - * tests/Signal_Test.cpp: When sigwait()-ing, restart the wait if - interrupted by an uncaught signal. This happens on Solaris 9, for - example, when a threading-related signals happen. Gets this test - working correctly for Solaris 9. - -Wed Aug 22 21:41:36 UTC 2007 Phil Mesnier - - * protocols/tests/HTBP/Send_Large_Msg/Send_Large_Msg.mpc: - * protocols/tests/HTBP/Send_Large_Msg/server.cpp: - * protocols/tests/HTBP/Send_Recv_Tests/server.cpp: - * protocols/tests/HTBP/ping/server.cpp: - - Add a small sleep in the server right before closing the socket. - This helps reduce the likelyhood that tests will fail on windows - if the server happens to close before the client has read the - last bit of data on the conection. - -Wed Aug 22 21:28:38 UTC 2007 Steve Huston - - * bin/ace_tests.lst: Marked RMCast tests to only run if the RMCAST - config is set. This effectively disables it everywhere pending some - requested feedack from the ACE users community on usage. - -Wed Aug 22 21:24:07 UTC 2007 Steve Huston - - * tests/Multicast_Test.cpp: Log the joined multicast groups. - - * tests/Multicast_Test_IPV6.cpp: Fixed string logging and a leak. - -Wed Aug 22 19:59:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - Added wall GNU make variable which is default set to 1, which then - adds -Wall to the CFLAGS. This option results in a lot of warnings - related dllimport which makes it not really usable, with GCC 4.x - we can disable that warning, but not with GCC 3.4, so the user can - set wall=0 to disable the usage of -Wall - -Wed Aug 22 18:10:09 UTC 2007 Steve Huston - - * ace/Hash_Map_Manager_T.inl (open): If open fails, include the - error reason in the logged message. - - * ace/Hash_Map_Manager_T.h: Documentation improvements. - - * ace/Local_Name_Space_T.cpp: Corrected logging of pointers to use - %@ instead of %d or %u. - - * ace/MMAP_Memory_Pool.cpp (map_file): When remapping a previous - mapping, try to use MAP_FIXED unless the memory pool option - NEVER_FIXED is also set. Resolves a problem of mapping to a - different region when remapping an existing area on RHEL 4 x64. - Also fixed logging of pointers and size_t to use %@ and %B. - -Wed Aug 22 18:09:45 UTC 2007 Steve Huston - - * m4/compiler.m4: For AIX xlC and Solaris CC 4.2, always turn on - RTTI support. ACE requires it, and for these compilers, the default - is RTTI disabled. The previous code used the rtti-enabled flag - which was removed at: - Wed Aug 22 08:49:12 UTC 2007 Johnny Willemsen - -Wed Aug 22 15:58:55 UTC 2007 Abdullah Sowayan - - * bin/msvc_static_order.lst: - - Added CIAO projects to the list. This may need further tweaking. - Hopefully this will address problems in the - WinXP_VC71_CIAOCore_Static_Debug build. - -Wed Aug 22 11:32:41 UTC 2007 Steve Huston - - * netsvcs/lib/Client_Logging_Handler.cpp: Fixed wide-char error. - -Wed Aug 22 08:52:12 UTC 2007 Johnny Willemsen - - * ACE-INSTALL.html: - Updated Remedy IT platforms - -Wed Aug 22 08:49:12 UTC 2007 Johnny Willemsen - - * ACE-INSTALL.html: - * m4/ace.m4: - Removed support for disabling rtti - -Wed Aug 22 08:46:12 UTC 2007 Johnny Willemsen - - * bin/msvc_mpc_auto_compile.pl: - * bin/msvc_static_compile.pl: - Use the word error when detecting an unknown option, this way the - autobuild scripts will tag this as error on the scoreboard - -Wed Aug 22 08:15:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - -Wno-attributes is only available with GCC 4.x. Removed support - for GCC 2.95 - -Wed Aug 22 06:23:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - The GCC compiler on windows gives a lot of warnings about attributes - that are ignored. These are not usefull, so added no_attributes - which by default is set to 1 which then disable this warning. If you - want to see these warnings, set no_attributes=0 to your - platform_macros.GNU file - -Wed Aug 22 04:53:12 UTC 2007 Johnny Willemsen - - * 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: - Fixes for VxWorks cross platform testing - -Tue Aug 21 21:07:24 UTC 2007 Steve Huston - - * netsvcs/lib/Client_Logging_Handler.cpp (ACE_Client_Logging_Acceptor): - Added an optional argument to the client logging daemon setup: - -llocal-ip[:local-port] - this allows one to specify the local - address and port number for the connection to the server logging - daemon. If the port number is not specified, it defaults to 0 (select - an unused port) and if -l is not specified, the host's defaults - are applied (as in all previous versions). - - * NEWS: Describe the above addition. - -Tue Aug 21 15:34:00 UTC 2007 Phil Mesnier - - * ace/Service_Config.cpp: - * ace/Service_Gestalt.cpp: - Service_Config::parse_args_i was improperly splitting arguments - that may contain spaces, such as explicit service directives. - This patch addresses that explicitly quoting unknown arguments - being passed on to the Service_Gestalt::parse_args_i. I removed - unparsed args from the gestalt's list of known args, and cleaned - up a bad error message. - -Tue Aug 21 15:24:47 UTC 2007 James H. Hill - - * docs/ace_guidelines.vsmacros: - Whitespaces in .mk and .mpd files are not modified. - -Tue Aug 21 07:07:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_irix6.x_common.GNU: - * include/makeinclude/platform_irix6.x_g++.GNU: - * include/makeinclude/platform_irix6.x_sgic++.GNU: - Moved some parts to the common file - - * include/makeinclude/platform_mvs.GNU: - Use ?= - - * include/makeinclude/platform_sco-nothread.GNU: - * include/makeinclude/platform_sco5.0.0-CC-fsu-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-mit-pthread.GNU: - * include/makeinclude/platform_sco5.0.0-nothread.GNU: - Removed, ancient and not maintained for years - -Tue Aug 21 05:03:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_unixware_udk.GNU: - Deleted, mentions it is for gcc 2.7.2, that compiler isn't - supported anymore for a long time - -Mon Aug 20 21:37:13 UTC 2007 Phil Mesnier - - * tests/MT_Reference_Counted_Event_Handler_Test.cpp: - Add thread ID and some additional debug output to help chase - test hangs. - -Mon Aug 20 20:02:32 UTC 2007 Phil Mesnier - - * protocols/tests/HTBP/Reactor_Tests/server.cpp: - * protocols/tests/HTBP/Send_Large_Msg/server.cpp: - * protocols/tests/HTBP/Send_Recv_Tests/server.cpp: - * protocols/tests/HTBP/ping/server.cpp: - eliminate anachronistic code warnings. - -Mon Aug 20 14:16:20 UTC 2007 Abdullah Sowayan - - * examples/C++NPv2/Select_Reactor_Logging_Server.cpp: - * examples/C++NPv2/Server_Shutdown.cpp: - * examples/C++NPv2/TP_Reactor_Logging_Server.cpp: - * examples/Web_Crawler/Command_Processor.h: - * netsvcs/lib/Log_Message_Receiver.h: - * netsvcs/lib/Name_Handler.h: - * netsvcs/lib/TS_Server_Handler.h: - - Zapped ACE_Shutup_GPlusPLus and ace_dewarn_gplusplus, they were - a reclic from the older days of ACE, it was used to silence - incorrect warning from g++ compiler. Moved the destructor to - the protected section to correctly handle such warnings - (if they still exist) without having to introduce a phony friend. - -Mon Aug 20 13:06:38 UTC 2007 Phil Mesnier - - * protocols/tests/HTBP/Reactor_Tests/run_test.pl: - * protocols/tests/HTBP/Reactor_Tests/server.cpp: - * protocols/tests/HTBP/Send_Large_Msg/run_test.pl: - * protocols/tests/HTBP/Send_Large_Msg/server.cpp: - * protocols/tests/HTBP/Send_Recv_Tests/run_test.pl: - * protocols/tests/HTBP/Send_Recv_Tests/server.cpp: - * protocols/tests/HTBP/ping/run_test.pl: - * protocols/tests/HTBP/ping/server.cpp: - - Added a synchronizing file to ensure server is running before - starting the client. - -Mon Aug 20 12:42:12 UTC 2007 Johnny Willemsen - - * tests/DLL_Test.cpp: - * tests/DLL_Test_Impl.cpp: - Removed left overs from the time that we could use ACE without rtti - -Mon Aug 20 12:33:12 UTC 2007 Johnny Willemsen - - * ace/ATM_Connector.h: - Removed commented out method - - * ace/config-cxx-common.h: - * ace/config-macros.h: - * ace/config-qnx-rtp-pre62x.h: - * ace/config-win32-interix.h: - * ace/config-win32-msvc.h: - Removed left overs from the time that we could use ACE without rtti - -Mon Aug 20 12:28:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_aix_g++.GNU: - * include/makeinclude/platform_aix_ibm.GNU: - * include/makeinclude/platform_integrity_ghs.GNU: - * include/makeinclude/platform_openvms.GNU: - * include/makeinclude/platform_rtems.x_g++.GNU: - * include/makeinclude/platform_sunos5_sunc++.GNU: - * include/makeinclude/platform_tru64_cxx.GNU: - * include/makeinclude/platform_tru64_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/wrapper_macros.GNU: - Removed rtti as make option, ACE requires rtti so we don't need an - option to disable rtti. - -Mon Aug 20 10:51:12 UTC 2007 Johnny Willemsen - - * bin/generate_rel_manpages: - Updated for new doxygen version on naboo - -Mon Aug 20 07:55:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_hpux.GNU: - Removed, old and obsolete - -Sun Aug 19 13:57:44 UTC 2007 Abdullah Sowayan - - * ACEXML/common/XML_Macros.h: - * ASNMP/agent/agent_impl.cpp: - Untabify. - - * bin/fuzz.pl: - Remove ACEXML and ASNMP directory from the list of excluded - directories for the tabs check. - -Sun Aug 19 06:20:12 UTC 2007 Johnny Willemsen - - * ace/Atomic_Op.h: - Added missing define for Sun - -Sat Aug 18 16:37:35 UTC 2007 Phil Mesnier - - * protocols/ace/HTBP/HTBP_Session.cpp: - Error reporting enhancement. - - * protocols/tests/HTBP/Reactor_Tests/client.cpp: - * protocols/tests/HTBP/Reactor_Tests/run_test.pl: - * protocols/tests/HTBP/Send_Large_Msg/client.cpp: - * protocols/tests/HTBP/Send_Large_Msg/run_test.pl: - * protocols/tests/HTBP/Send_Recv_Tests/client.cpp: - * protocols/tests/HTBP/Send_Recv_Tests/run_test.pl: - * protocols/tests/HTBP/Send_Recv_Tests/server.cpp: - * protocols/tests/HTBP/ping/client.cpp: - * protocols/tests/HTBP/ping/run_test.pl: - * protocols/tests/HTBP/ping/server.cpp: - - Fix the tests so that a random port is selected each run to - avoid problems with TCP wait states. - -Sat Aug 18 01:16:11 UTC 2007 Abdullah Sowayan - - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp: - * Kokyu/Dispatch_Deferrer.h: - * Kokyu/Dispatch_Deferrer.cpp: - * Kokyu/Kokyu_dsrt.h: - * examples/Threads/cancel.cpp: - * examples/Timer_Queue/Async_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp: - * examples/Timer_Queue/main_thread.cpp: - Untabify. - - * bin/fuzz.pl: - Remove Kokyu directory from the list of excluded - directories for the tabs check. - -Fri Aug 17 22:56:54 UTC 2007 Steve Huston - - * tests/Manual_Event_Test.cpp: Added additional diagnostics; fixed - spacing; removed ACE_ASSERT. - -Fri Aug 17 21:52:37 UTC 2007 Steve Huston - - * ace/config-linux-common.h: Only include config-posix.h when - ACE_HAS_LINUX_NPTL is defined; effectively reverts: - Mon Aug 13 04:40:12 UTC 2007 Johnny Willemsen - to fix broken RHEL 3 test results. RHEL 3's NPTL is not quite up to - snuff, apparantly (NPTL version 0.60) but even simply removing - ACE_HAS_LINUX_NPTL didn't do the trick. This effectively puts things - back the way they were for RHEL 3 and lets others stay with the - newer scheme of including config-posix.h. - - * include/makeinclude/platform_linux_common.GNU: Refined the NPTL - check to only set ACE_HAS_LINUX_NPTL when the NPTL version is not - 0.x. This works with the above to allow RHEL 4 et al to go on with - the new scheme and leave RHEL 3 at the old settings. - -Fri Aug 17 18:28:12 UTC 2007 Johnny Willemsen - - * m4/platform.m4: - Set ACE_UINT64_FORMAT_SPECIFIER for linux - -Fri Aug 17 14:41:15 UTC 2007 Abdullah Sowayan - - * contrib/minizip/zip.c: - Untabify. - - * bin/fuzz.pl: - Remove contrib directory from the list of excluded - directories for the tabs check. - -Fri Aug 17 13:36:11 UTC 2007 Phil Mesnier - - * protocols/ace/HTBP/HTBP_Channel.cpp: - * protocols/ace/HTBP/HTBP_Session.cpp: - - debug output cleanup and ACE_ASSERT removal. - - * protocols/tests/HTBP/Send_Large_Msg/run_test.pl: - - removed unused code. - - * protocols/tests/HTBP/Send_Recv_Tests/client.cpp: - * protocols/tests/HTBP/Send_Recv_Tests/run_test.pl: - * protocols/tests/HTBP/Send_Recv_Tests/server.cpp: - - This test wasn't working right due to the lack of a reactor. The - debug output was also cleaned up a bit, ACE_ASSERT removed and - the run_test script tidied up as well. - - * bin/ace_tests.lst: - * bin/tao_other_tests.lst: - Added HTBP and HTIOP tests to suites. - -Fri Aug 17 13:13:12 UTC 2007 Johnny Willemsen - - * ace/Message_Queue_T.h: - Doxygen updates - -Fri Aug 17 11:44:12 UTC 2007 Johnny Willemsen - - * ace/Atomic_Op_Sparc.c: - * ace/Atomic_Op.{h,cpp}: - Added optimized functions for SunCC on x86. Thanks to - Dennis Chernoivanov for reporting this. - If you want to enable these, add atomic_ops_sparc=1 to your - platform_macros.GNU file. This resolves bugzilla 2840 - -Fri Aug 17 10:43:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux_common.GNU: - New common file for linux which contains settings which are the same - for all compilers on linux - - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/platform_linux_icc.GNU: - * include/makeinclude/platform_linux_pgi.GNU: - * include/makeinclude/platform_linux_suncc.GNU: - Moved comment contents to platform_linux_common.GNU - - * include/makeinclude/platform_linux_cxx.GNU: - Removed, not maintained for a long time - -Thu Aug 16 23:47:47 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - Remove TAO/TAO_IDL directory from the list of excluded - directories for the tabs check. - -Thu Aug 16 21:53:36 UTC 2007 Steve Huston - - * configure.ac: When checking for pthread_attr_setstack(), don't use - the ACE_CHECK_LACKS_FUNCS macro - the underlying autoconf macros - generate code that will compile/link on HP-UX 11iv2 because there's - an entrypoint for it in libpthread, but it's not supported. So - check with a hand-crafted short code segment. Thanks to Johnny - Willemsen for this idea. - -Thu Aug 16 20:02:53 UTC 2007 Abdullah Sowayan - - * netsvcs/clients/Logger/direct_logging.cpp: - * netsvcs/clients/Logger/indirect_logging.cpp: - * netsvcs/clients/Tokens/collection/collection.cpp: - * netsvcs/clients/Tokens/collection/rw_locks.cpp: - * netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp: - * netsvcs/clients/Tokens/invariant/invariant.cpp: - * netsvcs/clients/Tokens/mutex/test_mutex.cpp: - * netsvcs/clients/Tokens/rw_lock/rw_locks.cpp: - Untabify - - * bin/fuzz.pl: - Remove netsvcs directory from the list of excluded - directories for the tabs check. - -Thu Aug 16 19:41:23 UTC 2007 Steve Huston - - * configure.ac: Adjusted the checks for "new throws..." to grab - much larger chunks; helps it run quicker and more accurately. - -Thu Aug 16 15:28:45 UTC 2007 Phil Mesnier - - * ace/Service_Config.cpp: - - Part of fix for bug 2995. Both the Service Config and Service - Gestalt have separate open counts, but multiple calls to open_i - on the Service Config were not propogated to Service Gestalt. - This led to a problem where closing a multiply opened Service - Config would result in a premature clean up of resources in the - Gestalt, triggering a crash later on. - - * ace/Service_Types.cpp: - Make debugging output more clear. - -Thu Aug 16 00:04:21 UTC 2007 Abdullah Sowayan - - * protocols/ace/HTBP/HTBP_Environment.cpp: - * protocols/ace/TMCast/FaultDetector.hpp: - Untabify. - - * bin/fuzz.pl: - Remove protocols directory from the list of excluded - directories for the tabs check. - -Wed Aug 15 21:54:11 UTC 2007 Steve Huston - - * tests/New_Fail_Test.cpp: Allocate the hugest blocks we can instead - of many merely big ones. Helps the test run without dragging the - system to a crawl, at least on my WinXP VC7.1 box w/ 1GB memory. - YMMV. Not ready to re-enable in tests/run_test.lst until a few - other people try this out by hand. - Also, replace ACE_ASSERT with if/else and ACE_ERROR. - -Wed Aug 15 15:56:12 UTC 2007 Abdullah Sowayan - - * performance-tests/Misc/test_mutex.cpp: - * performance-tests/Misc/test_singleton.cpp: - * performance-tests/SCTP/Options_Manager.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/condb_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/conds_test.cpp: - * performance-tests/Synch-Benchmarks/Perf_Test/memory_test.cpp: - * performance-tests/Synch-Benchmarks/context.c: - * performance-tests/Synch-Benchmarks/synch_driver.cpp: - * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp: - * performance-tests/TTCP/C/new-ttcp.cpp: - - Untabify. - - * bin/fuzz.pl: - - Remove performance-tests directory from the list of excluded - directories for the tabs check. - -Wed Aug 15 14:57:06 UTC 2007 Steve Huston - - * m4/platform.m4: Check for NPTL on Linux. Fixes Bugzilla 3044. - - * protocols/tests/HTBP/Send_Recv_Tests/Makefile.am: Corrected - multi-test syntax. - -Wed Aug 15 14:55:36 UTC 2007 Abdullah Sowayan - - * tests/ACE_Init_Test.h: - * tests/ACE_Init_Test_Resource.h: - * tests/ACE_Init_Test_StdAfx.h: - * tests/Map_Test.cpp: - * tests/OS_Test.cpp: - * tests/QtReactor_Test.cpp: - * tests/TP_Reactor_Test.h: - * tests/Thread_Pool_Reactor_Resume_Test.cpp: - - Untabify - - * bin/fuzz.pl: - - Remove tests directory from the list of excluded directories for - the tabs check. - -Wed Aug 15 12:15:16 UTC 2007 Phil Mesnier - - * protocols/tests/HTBP/Reactor_Tests/client.cpp: - * protocols/tests/HTBP/Reactor_Tests/server.cpp: - * protocols/tests/HTBP/Send_Large_Msg/client.cpp: - * protocols/tests/HTBP/Send_Large_Msg/server.cpp: - * protocols/tests/HTBP/Send_Recv_Tests/Makefile.am: - * 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/HTBP/htbptest.mpb: - - Fix up tests to build correctly on wchar platforms and automake. - -Wed Aug 15 11:47:12 UTC 2007 Johnny Willemsen - - * tests/Manual_Event_Test.cpp: - Check the return value of the pulse method - -Wed Aug 15 11:23:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - Added new 3042 test - -Wed Aug 15 11:09:12 UTC 2007 Johnny Willemsen - - * ace/CDR_Stream.cpp: - Const and layout changes - - * ace/config-linux-common.h: - Removed unneeded space - - * ace/config-posix.h: - Only test semaphare support in a multi threaded build - -Tue Aug 14 23:28:07 UTC 2007 Abdullah Sowayan - - * tests/ACE_Init_Test.h: - * tests/ACE_Init_TestDlg.h: - * tests/Based_Pointer_Test.cpp: - * tests/Basic_Types_Test.cpp: - * tests/Bug_2815_Regression_Test.cpp: - * tests/Bug_2820_Regression_Test.cpp: - * tests/Config_Test.h: - * tests/Config_Test.cpp: - * tests/Max_Default_Port_Test.cpp: - * tests/Mem_Map_Test.cpp: - * tests/Notification_Queue_Unit_Test.cpp: - * tests/QtReactor_Test.h: - * tests/QtReactor_Test.cpp: - * tests/Reactor_Notify_Test.cpp: - * tests/SOCK_Dgram_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: - * tests/Signal_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - * tests/Vector_Test.cpp: - Untabify. - -Tue Aug 14 22:39:56 UTC 2007 Steve Huston - - * configure.ac: Run the epoll_create() check; don't just link it. - RHEL 3 can link it but what ACE expects generates a run-time error. - -Tue Aug 14 19:11:06 UTC 2007 Phil Mesnier - - * protocols/ace/HTBP/HTBP_Channel.cpp: - * protocols/ace/HTBP/HTBP_Environment.cpp: - * protocols/ace/HTBP/HTBP_ID_Requestor.cpp: - * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp: - * protocols/ace/HTBP/HTBP_Notifier.cpp: - * protocols/ace/HTBP/HTBP_Outside_Squid_Filter.cpp: - * protocols/ace/HTBP/HTBP_Stream.cpp: - - Clean up the debug output. - - * protocols/tests/HTBP/Reactor_Tests/client.cpp: - * protocols/tests/HTBP/Reactor_Tests/run_test.pl: - * protocols/tests/HTBP/Reactor_Tests/server.cpp: - - * protocols/tests/HTBP/Send_Large_Msg/client.cpp: - * protocols/tests/HTBP/Send_Large_Msg/run_test.pl: - * protocols/tests/HTBP/Send_Large_Msg/server.cpp: - - * protocols/tests/HTBP/Send_Recv_Tests/SendRecv_Test.cpp: - * protocols/tests/HTBP/Send_Recv_Tests/SendRecv_Test.mpc: - * protocols/tests/HTBP/Send_Recv_Tests/server.cpp: - * protocols/tests/HTBP/Send_Recv_Tests/client.cpp: - * protocols/tests/HTBP/Send_Recv_Tests/run_test.pl: - - * protocols/tests/HTBP/ping/client.cpp: - * protocols/tests/HTBP/ping/run_test.pl: - * protocols/tests/HTBP/ping/server.cpp: - - Fix up the tests to run cleanly in a nightly build environment - This is primarily fixing the configuration so that it does not - depend on an external proxy, but will use one if locally - configured to do so. Also fixed up the test output and command - line processing to make it more consistent with other tests. - - I've not turned on the automatic running of these tests just - yet, I'd rather wait and just make sure the build is clean. We - can turn on the automatic run at some point later now that the - tests are cleaned up. - -Tue Aug 14 18:44:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_linux.GNU: - * include/makeinclude/platform_linux_icc.GNU: - * include/makeinclude/platform_linux_pgi.GNU: - * include/makeinclude/platform_linux_suncc.GNU: - Added a check whether we run on a kernel with NPTL. If this is - the case we add ACE_HAS_LINUX_NPTL to the compiler flags - -Tue Aug 14 18:06:16 UTC 2007 Abdullah Sowayan - - * ace/Svc_Conf_y.cpp: - Removed an extra space that was causing Debian_Core build to - emit a warning. - -Tue Aug 14 17:49:04 UTC 2007 Douglas C. Schmidt - - * ace/Log_Record.h: Disallow copying and assignment of - ACE_Log_Record. Thanks to Jan Kalin for suggesting this. - -Tue Aug 14 14:32:57 UTC 2007 Abdullah Sowayan - - * ace/Assert.h: - * ace/Global_Macros.h: - * ace/Netlink_Addr.h: - * ace/Rtems_init.c: - * ace/Svc_Conf_y.cpp: - * ace/Task_Ex_T.h: - * ace/config-win32-common.h: - * ace/config-win32-interix.h: - - Untabify. - -Tue Aug 14 13:48:56 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - Enabled the Check_for_tab test. The check_for_tab test now will - only check the core of ACE/TAO for tabs. This will prevent the - introduction of new tabs to the core of ACE/TAO. When we remove - tabs from other directories we will enable checks for those - directories. - -Tue Aug 14 08:46:12 UTC 2007 Johnny Willemsen - - * ace/Log_Msg.cpp: - Use ACE_TSS_CLEANUP_NAME instead of ACE_TSS_cleanup to resolve - compile problems with versioned namespaces enabled - -Mon Aug 13 20:27:43 UTC 2007 Abdullah Sowayan - - * ace/Assert.cpp: - * ace/Connector.cpp: - * ace/Dev_Poll_Reactor.cpp: - * ace/INET_Addr.cpp: - * ace/Notification_Queue.h: - * ace/Notification_Queue.cpp: - * ace/OS_NS_Thread.cpp: - * ace/OS_NS_dirent.inl: - * ace/POSIX_Proactor.cpp: - * ace/Process_Manager.h: - * ace/Process_Manager.cpp: - * ace/QoS/QoS_Session_Impl.cpp: - * ace/Rtems_init.c: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_IO.cpp: - * ace/SPIPE_Acceptor.cpp: - * ace/Select_Reactor_Base.cpp: - * ace/Service_Config.h: - * ace/config-vxworks5.x.h: - * ace/config-vxworks6.2.h: - * ace/config-vxworks6.3.h: - * ace/os_include/sys/os_socket.h: - Untabify. - -Mon Aug 13 14:52:12 UTC 2007 Johnny Willemsen - - * ace/Truncate.h: - Changed the new signed long/signed int specialization for BCB6 - in such a way that it doesn't cause a compiler crash. - -Mon Aug 13 11:42:46 UTC 2007 Chad Elliott - - * bin/tao_other_tests.lst: - - Added the new notification service monitor functional test. - -Mon Aug 13 10:55:12 UTC 2007 Johnny Willemsen - - * ace/CDR_Stream.cpp: - Const change - - * ace/OS_QoS.h: - Instead of making all ACE_ defines dependent on winsock2, just for each - one check if the non ACE define exists or not. If it exists, use it, if - not, use a special ACE value. This makes it easier to support QoS with - MinGW. - -Mon Aug 13 07:03:12 UTC 2007 Johnny Willemsen - - * ace/Log_Msg_IPC.cpp: - Fixed wrong calculation of payload size when unicode is enabled. - Thanks to David Beck for reporting this. - This fixes bugzilla 3038 - -Mon Aug 13 04:40:12 UTC 2007 Johnny Willemsen - - * ace/config-linux-common.h: - Always include config-posix.h, not only when ACE_HAS_LINUX_NPTL is - defined. Thanks to Thomas Girard - for noticing this - -Fri Aug 10 15:52:12 UTC 2007 Johnny Willemsen - - Reverted this change, could lead to problems - - * bin/MakeProjectCreator/config/gnuace.features: - Enabled qos, the GNU makefiles will block the building of QoS - -Fri Aug 10 11:59:12 UTC 2007 Johnny Willemsen - - * bin/MakeProjectCreator/config/gnuace.features: - Enabled qos, the GNU makefiles will block the building of QoS - - * include/makeinclude/platform_mingw32.GNU: - With MinGW we can build QoS support - - * ace/QoS/qos.mpc: - Added ACE_HAS_QOS to the macros, this is already done for projects - that use qos but not for the qos library itself - - * ace/config-win32-mingw.h: - Added ACE_HAS_WINSOCK2_GQOS - -Fri Aug 10 11:39:48 UTC 2007 Chad Elliott - - * ACE.mwc: - - Associate more directories and use the new '--' key. - - * bin/MakeProjectCreator/modules/AutomakeWorkspaceHelper.pm: - - Fixed issues with generated Kokyu projects. - -Fri Aug 10 09:33:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_gnuwin32_common.GNU: - When building shared libraries default inline to 0 - -Fri Aug 10 08:57:12 UTC 2007 Johnny Willemsen - - * ace/OS_main.h: - Made the destructor of ACE_Main_Base virtual to resolve MinGW - warnings - - * include/makeinclude/platform_linux_icc.GNU: - Updated this file with changes that have been done in the gcc - file the last years - -Fri Aug 10 07:39:12 UTC 2007 Johnny Willemsen - - * tests/Atomic_Op_Test.cpp: - Test operator= - -Fri Aug 10 07:14:12 UTC 2007 Johnny Willemsen - - * tests/Atomic_Op_Test.cpp: - Test the Atomic_Op also in single threaded builds and extended - the test with unsigned long and unsigned int tests - -Thu Aug 9 13:39:12 UTC 2007 Johnny Willemsen - - * ace/Log_Msg.cpp: - Initialise local variable to resolve GCC warning - - * ace/config-linux-common.h: - Added ACE_HAS_BROKEN_THREAD_KEYFREE so that on Linux the Log_Msg - does cleanup its TSS data which resolves problems when loading - and unloading the ACE shared library from an application that - doesn't use ACE at all - -Wed Aug 8 22:30:53 UTC 2007 Steve Huston - - * configure.ac: Moved check for ACE_LACKS_PTHREAD_ATTR_SETSTACK to - near the other stack-related pthreads checks. - - * m4/compiler.m4: Add +We to WERROR setting to force compile - warnings to be errors when desired. - -Wed Aug 8 11:35:01 UTC 2007 Chad Elliott - - * bin/Makefile.am: - * examples/QOS/Change_Receiver_FlowSpec/Makefile.am: - * examples/QOS/Change_Sender_TSpec/Makefile.am: - * examples/QOS/Diffserv/Makefile.am: - * examples/QOS/Simple/Makefile.am: - - The *_LDADD sections for these had wrong paths for the libraries. - -Wed Aug 8 09:05:12 UTC 2007 Johnny Willemsen - - * ace/Truncate.h: - Added specialization for BCB - -Tue Aug 7 19:04:25 UTC 2007 Chad Elliott - - * apps/drwho/drwho.mpc: - - Added the missing exename settings for the client and server. The - main() was changed to ACE_TMAIN(). - -Tue Aug 7 12:46:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/compiler.bor: - Use ACE_TEXT instead of ACE_LIB_TEXT - -Tue Aug 7 12:15:12 UTC 2007 Johnny Willemsen - - * html/stats/simple_footprint.html: - Removed Domain added Messaging - -Mon Aug 6 18:03:12 UTC 2007 Johnny Willemsen - - * m4/compiler.m4: - With ICC use -w1 to get rid of the remarks - -Mon Aug 6 11:28:12 UTC 2007 Johnny Willemsen - - * ace/Refcounted_Auto_Ptr.inl (count): - Fixed compile error - -Mon Aug 6 08:56:12 UTC 2007 Johnny Willemsen - - * ace/Refcounted_Auto_Ptr.{h,inl}: - Changed to use Atomic_Op for the refcount and use a long instead - of int. That way we can benefit from the Atomic_Op optimizations - - * ace/Bound_Ptr.{h,inl}: - Changed refcount to long as preparation of using Atomic_Op - -Mon Aug 6 08:31:12 UTC 2007 Johnny Willemsen - - * m4/compiler.m4: - Added -wr as flag to WERROR, with this flag remarks are not - promoted to error which caused several problems - -Mon Aug 6 08:24:12 UTC 2007 Johnny Willemsen - - * ace/config-WinCE.h: - * ace/OS_NS_sys_resource.inl: - Changed ACE_LACKS_WIN32_GETPROCESSTIMES to ACE_LACKS_GETPROCESSTIMES - to make a future autoconf check easier. Removed ACE_HAS_SYSCALL_GETRUSAGE - which wasn't set in any config file - -Mon Aug 6 07:58:12 UTC 2007 Johnny Willemsen - - * configure.ac: - Added a check whether we have a 1 or 2 param mkdir method. This - fixes bugzilla 2006. The other defines mentioned in this - issue are not added because they are for VxWorks 5.5 only which - we don't actively maintain anymore - -Mon Aug 6 06:55:12 UTC 2007 Johnny Willemsen - - * m4/compiler.m4: - Added -i-dynamic to default icpc flags - -Mon Aug 6 06:00:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_openvms.GNU: - For Alpha use a different way to silence the warnings - -Sun Aug 5 19:27:12 UTC 2007 Johnny Willemsen - - * ace/SStringfwd.h: - Check if __HP_aCC is defined before checking its value, fixes - a remark in the Intel C++ autoconf build - -Sat Aug 4 22:07:05 UTC 2007 Steve Huston - - * configure.ac: Removed the pthread_cond_timedwait() check - it was - used to set ACE_HAS_POSIX_SEM_TIMEOUT and ACE_HAS_POSIX_SEM_TIMEOUT_ - EMULATION, neither of which it is related to. Added a correct check - for sem_timedwait (ACE_HAS_POSIX_SEM_TIMEOUT). - Also, used shortcut functions instead of hand-coding tests for - pthread_attr_setstackaddr and pthread_attr_setstacksize. - - * m4/ace.m4: Add --enable-posix-sem-timeout-emulation, corresponding - to ACE_DISABLE_POSIX_SEM_TIMEOUT_EMULATION. - - * m4/config_h.m4: Corrected description of ACE_HAS_POSIX_SEM_TIMEOUT - and added ACE_DISABLE_POSIX_SEM_TIMEOUT_EMULATION. Also, because - of use of shortcuts (above) can remove templates for - ACE_LACKS_PTHREAD_ATTR_SETSTACKSIZE and - ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR. - - * m4/compiler.m4: For IBM Visual Age C++ and XL C++, use manual - template instances (-qnotempinc -qnotemplateregistry) because I - haven't found a way to name the template registry from the - Makefiles and without that, building multiple items in one directory - clashes. Some people have reported the need to use manual template - mechanism for building TAO successfully, so maybe this will be ok. - -Fri Aug 3 21:34:40 UTC 2007 Abdullah Sowayan - - * contrib/FaCE/CE_Screen_Output.cpp: - * contrib/minizip/crypt.h: - * contrib/minizip/unzip.c: - - Untabify. - -Fri Aug 3 20:26:36 UTC 2007 Phil Mesnier - - * ace/INET_Addr.cpp: - * THANKS: - Fix for running an IPv6 supporting build of ACE on a host - that does not have IPV6 enabled. Thanks to Premkumar P for pointing out this issue. - -Fri Aug 3 18:31:12 UTC 2007 Johnny Willemsen - - * bin/PerlACE/Run_Test.pm: - Fixed a problem introduced with the revert below - -Fri Aug 3 09:35:12 UTC 2007 Johnny Willemsen - - * bin/PerlACE/Run_Test.pm: - Reverted the change to use a sleep of 50ms, the test stats show that - some tests timeout without a real reason. Maybe the timeouts are now - less reliable. - -Fri Aug 3 01:50:05 UTC 2007 Abdullah Sowayan - - * ace/Global_Macros.h: - * examples/Reactor/TP_Reactor/client.cpp: - - Fixed fuzz check_for_exception_spec warnings. - -Thu Aug 2 22:20:28 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Enabled check_for_exception_spec. - -Thu Aug 2 22:02:32 UTC 2007 Steve Huston - - * tests/Dirent_Test.cpp: Fixed to allow running the test against - directories other than "../tests". Picks hardcoded TEST_DIR if - compiled in (as previously) but will otherwise try $top_srcdir/tests, - $ACE_ROOT/tests, or ../tests depending on env variables present. - Allows the test to run in autoconf builds (fixes Bugzilla 1794). - Also removed all the ACE_ASSERTs, replacing them with informative - diagnostics. - -Thu Aug 2 21:31:32 UTC 2007 Abdullah Sowayan - - * examples/ConfigViewer/MainFrame.cpp: - - ZAP the last NULL usage in the distrubtion. - -Thu Aug 2 20:43:18 UTC 2007 Abdullah Sowayan - - * apps/JAWS/clients/WebSTONE/src/bench.c: - - Zap NULL usage. - -Thu Aug 2 20:24:22 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.h: - - No-thread builds, instances of ACE_TSS use their destructor - instead of the static cleanup() method for deleting the object - they point to. Adding a destructor specialization to enable - non-ownership ACE_TSS behavior with no-thread builds for - ACE_Service_Gestalt's. - -Thu Aug 2 19:34:17 UTC 2007 Abdullah Sowayan - - * bin/fuzz.pl: - - Enhanced NULL check. - -Thu Aug 2 14:19:46 UTC 2007 Vladimir Zykov - - * bin/tao_other_tests.lst: - Added a new test TAO/orbsvcs/tests/Simple_Naming/run_test_ipv6.pl - -Thu Aug 2 11:43:35 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.h: - Removing extra semicolon - -Thu Aug 2 09:46:12 UTC 2007 Johnny Willemsen - - * ace/Log_Msg.cpp: - Fixed gcc4 warnings - -Thu Aug 2 09:22:12 UTC 2007 Johnny Willemsen - - * ace/Log_Msg.cpp: - Use regular reinterpret_cast, use 0 instead of NULL and - in case setspecific fails just do a printf, not an ACE_DEBUG - because that will use ACE_Log_Msg again. - -Wed Aug 1 21:39:04 UTC 2007 Dale Wilson - - * bin/tao_orb_tests.lst: - Enable TAO\tests\Bug_2935_Regression - -Wed Aug 1 18:55:12 UTC 2007 Martin Corino - - * bin/PerlACE/ConfigList.pm: - Added '-Exclude ' option to be able to finetune the actual - tests being run without having to add yet another Config option - and update the test .LST files. - - * ace/config-openvms.h: - * include/makeinclude/platform_openvms.GNU: - merged changes for OpenVMS IA64 builds. - -Wed Aug 1 18:01:12 UTC 2007 Johnny Willemsen - - * bin/fuzz.pl: - Readded throw check, thanks for Abdul to notice the wrong - deletion - -Wed Aug 1 15:55:38 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.h: - - Added conditional compilation around template specification - since ACE_TSS declares cleanup() only in multi-threaded builds. - -Wed Aug 1 12:14:17 UTC 2007 Olli Savia - - * ace/OS_NS_dirent.h: - Oops... Once again. - -Wed Aug 1 11:58:02 UTC 2007 Olli Savia - - * ace/OS_NS_dirent.h: - Fixed macro logic error once again. - -Wed Aug 1 09:50:51 UTC 2007 Olli Savia - - * ace/OS_NS_dirent.h: - Fixed macro logic error. - -Wed Aug 1 08:08:12 UTC 2007 Johnny Willemsen - - * ace/Service_Config.h: - Removed not needed semi colon - -Wed Aug 1 08:01:12 UTC 2007 Johnny Willemsen - - * ace/Service_Config.h (cleanup): - Changed argument to ptr, fixes some problems with BCB - -Wed Aug 1 07:39:12 UTC 2007 Johnny Willemsen - - * ace/ace_wchar.h: - Deprecated ACE_LIB_TEXT. Users can still use it, but not anymore - in the code that is in the distribution - -Wed Aug 1 07:30:12 UTC 2007 Johnny Willemsen - - * apps/drwho/Multicast_Manager.cpp: - * apps/drwho/Options.cpp: - Removed not needed fuzz disable statements - -Wed Aug 1 07:29:12 UTC 2007 Johnny Willemsen - - * netsvcs/lib/Time_Request_Reply.cpp: - * protocols/tests/HTBP/Reactor_Tests/test_config.h - Replaced ACE_LIB_TEXT with ACE_TEXT - -Wed Aug 1 07:27:12 UTC 2007 Johnny Willemsen - - * ace/Service_Config.h: - Fixed argument not used warning - - * apps/JAWS/clients/Blobby/Blob_Handler.cpp: - Removed ACE_LIB_TEXT in comment - - * bin/fuzz.pl: - Removed exception fuzz check. We have deprecated ACE_THROW - - * contrib/FaCE/FaCE.cpp: - * contrib/FaCE/FaCE.h: - * examples/ASX/Event_Server/Event_Server/Options.cpp: - * examples/ASX/UPIPE_Event_Server/Options.cpp: - * tests/Bug_2609_Regression_Test.cpp: - * tests/Bug_2610_Regression_Test.cpp: - * tests/Config_Test.cpp: - * tests/Proactor_Test.cpp: - * tests/Proactor_Test_IPV6.cpp: - * tests/Svc_Handler_Test.cpp: - Replaced ACE_LIB_TEXT with ACE_TEXT - - * tests/Bug_2975_Regression_Test.cpp: - Make sure we return the correct value out of main - -Wed Aug 1 06:51:11 UTC 2007 Olli Savia - - * ace/OS_NS_dirent.h: - * ace/OS_NS_dirent.inl: - Cleanup ACE_OS::rewinddir() code. - -Tue Jul 31 21:39:37 UTC 2007 Iliyan Jeliazkov - - * ace/Auto_Functor.cpp: - - Removed errant ChangeLog-like lines at the top of the file. - -Tue Jul 31 21:27:25 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.h: - * ace/Service_Config.cpp: - - Moved the template specialization to the header file and made it - "inline". This resolved linking problems with some compilers, - which complained about either unresolved references or - multiply-defined instances of cleanup(). Bugzilla 2980. - -Tue Jul 31 18:48:25 UTC 2007 Abdullah Sowayan - - * ace/Auto_Functor.h: - * ace/Auto_Functor.inl: - * ace/Auto_Functor.cpp: - - Zapped ACE_THROW_SPEC - - * ace/Global_Macros.h: - - Guarded ACE_THROW_SPEC with ACE_LACKS_DEPRECATED_MACROS. The - ACE_THROW_SPEC macro now has been deprecated. - - The above changes fix bugzilla 3008. - -Tue Jul 31 18:37:12 UTC 2007 Johnny Willemsen - - * ace/OS_NS_dirent.h: - Removed ACE_STD_NAMESPACE for rewinddir, it causes compile errors - and fixed compile errors with Borland C++ Unicode - -Tue Jul 31 18:14:12 UTC 2007 Johnny Willemsen - - * ace/*.{h,cpp,inl}: - Replaced all occurences of ACE_LIB_TEXT with ACE_TEXT as noted in - bugzilla 3021 - -Tue Jul 31 17:15:47 UTC 2007 Olli Savia - - * ace/OS_NS_dirent.h: - Fixed compile error on platforms that define ACE_LACKS_REWINDDIR. - -Tue Jul 31 15:02:34 UTC 2007 Steve Huston - - * tests/Multicast_Test_IPV6.cpp: Added some more diagnostic output and - changed the enable-loopback sockopt from char to int to try and avoid - some platform issues, particularly on Windows. - -Tue Jul 31 14:45:35 UTC 2007 Abdullah Sowayan - - * contrib/utility/Utility/ReferenceCounting/DefaultImpl.hpp: - - Fixed a compile-time error. - -Tue Jul 31 13:02:30 UTC 2007 Olli Savia - - * ace/OS_NS_dirent.h: - * ace/OS_NS_dirent.inl: - Fixed compile error on platforms that define rewinddir - as a macro. - -Tue Jul 31 12:52:12 UTC 2007 Johnny Willemsen - - * m4/config_h.m4: - Fixed another few macros - -Tue Jul 31 12:24:12 UTC 2007 Johnny Willemsen - - * ace/Service_Config.h: - Add attribute name to cleanup prototype, Borland C++ needs it, - don't ask why - -Tue Jul 31 12:07:12 UTC 2007 Johnny Willemsen - - * m4/compiler.m4: - Don't add -O3 with Intel C++ - -Tue Jul 31 12:02:12 UTC 2007 Johnny Willemsen - - * ace/config-sunos5.5.h: - Added ACE_LACKS_PTHREAD_ATTR_SETSTACK - - * ace/config-sunos5.10.h: - Undef ACE_LACKS_PTHREAD_ATTR_SETSTACK - -Tue Jul 31 10:38:37 UTC 2007 William Otte - - * include/makeinclude/platform_macosx_tiger.GNU - - Added support for building universal binaries by specifying - universal=1 in platform_macros or command line. - -Tue Jul 31 09:39:43 UTC 2007 Abdullah Sowayan - - * contrib/utility/Example/ExH/BadCast/bad_cast.cpp: - * contrib/utility/Example/ExH/Compound/compound.cpp: - * contrib/utility/Example/ExH/HelloWorld/hello_world.cpp: - * contrib/utility/Example/ExH/LogicToSystem/logic_to_system.cpp: - * contrib/utility/Test/ExH/Compound/compound.cpp: - * contrib/utility/Test/ExH/Converter/converter.cpp: - * contrib/utility/Test/ExH/Logic/DescriptiveException/descriptive_exception.cpp: - * contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp: - * contrib/utility/Test/ReferenceCounting/DefaultImpl/default_impl.cpp: - * contrib/utility/Test/ReferenceCounting/Interface/interface.cpp: - * contrib/utility/Test/ReferenceCounting/SmartPtr/smart_ptr.cpp: - * contrib/utility/Test/ReferenceCounting/StrictPtr/strict_ptr.cpp: - * contrib/utility/Utility/ReferenceCounting/DefaultImpl.hpp: - * contrib/utility/Utility/ReferenceCounting/DefaultImpl.ipp: - * contrib/utility/Utility/ReferenceCounting/Interface.hpp: - * contrib/utility/Utility/ReferenceCounting/Interface.tpp: - * contrib/utility/Utility/ReferenceCounting/SmartPtr.hpp: - * contrib/utility/Utility/ReferenceCounting/SmartPtr.tpp: - * contrib/utility/Utility/ReferenceCounting/StrictPtr.hpp: - * contrib/utility/Utility/ReferenceCounting/StrictPtr.tpp: - * contrib/utility/Vault/hetero/map.hpp: - - Zap the usage of exception specification. - -Tue Jul 31 07:52:25 UTC 2007 Olli Savia - - * ace/os_include/os_dirent.h: - Removed #undef rewinddir. It may have broken compilation - on some platforms so ACE_OS::rewinddir() may need tweaking. - -Tue Jul 31 06:45:12 UTC 2007 Johnny Willemsen - - * ace/config-hpux-11.00.h: - HPUX doesn't have pthread_attr_setstack - -Tue Jul 31 05:14:35 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.h: - * ace/Service_Config.cpp: - - Adding a forward decl for the partial specialization to silence - the Borland compiler, complaining about an already defined - template specialization. - -Tue Jul 31 05:19:12 UTC 2007 Johnny Willemsen - - * m4/config_h.m4: - Updated this file - -Tue Jul 31 04:13:34 UTC 2007 Abdullah Sowayan - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - - Reverted changes made in: - Mon Jul 30 12:40:57 UTC 2007 Abdullah Sowayan - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - - Use ACE_TCHAR instead of char to address problems in - Redhat_Enterprise_Linux_3_Debug_Wchar build. - -Tue Jul 31 00:50:49 UTC 2007 Iliyan Jeliazkov - - * ace/Service_Config.cpp: - - By introducing a partial specialization of - ACE_TSS we ensure that _if_ ACE_TSS::cleanup() - is called before ~ACE_Object_Manager(), the TSS pointer will not - clobber the ACE_Service_Config it points to. Resolves bugzilla - 2980. Thanks to Patrick Bennett and Lothar Werzinger for - their input. - -Mon Jul 30 23:51:07 UTC 2007 Steve Huston - - * ace/TP_Reactor.h: Documentation improvements, including clarification - of the synchronization needs for I/O and non-I/O callbacks. Thanks - to Hal Black for motivating this. - - * THANKS: Added Hal Black. - -Mon Jul 30 22:50:40 UTC 2007 Steve Huston - - * tests/SOCK_Connector_Test.cpp: After rummaging through the hosts - list looking for other names, do sethostent(0) before endhostent(). - Resolves the funky interaction with this and getaddrinfo() on AIX - with IPv6 support which would, on the second lookup of the local - host's name, return an AF_INET6 struct with an IPv4 address. - Thanks to Phil Mesnier for co-laboring to work this little mess out. - -Mon Jul 30 18:17:12 UTC 2007 Johnny Willemsen - - * ace/config-cray.h: - * ace/config-cygwin32.h: - * ace/config-linux.h: - * ace/config-lynxos.h: - * ace/config-mvs.h: - * ace/config-tandem-nsk-mips-v2.h: - * ace/config-tandem-nsk-mips-v3.h: - * ace/config-tru64.h: - * ace/OS_NS_Thread.cpp: - * configure.ac: - Updated ACE_LACKS_THREAD_STACK_ADDR to - ACE_LACKS_PTHREAD_SETSTACKADDR to match naming conventions - -Mon Jul 30 18:03:12 UTC 2007 Johnny Willemsen - - * ace/config-cygwin.h: - Added ACE_LACKS_PTHREAD_ATTR_SETSTACK - -Mon Jul 30 15:08:12 UTC 2007 Johnny Willemsen - - * ace/config-lynxos.h: - Added ACE_LACKS_PTHREAD_ATTR_SETSTACK for LynxOS 4.0 - -Mon Jul 30 14:57:12 UTC 2007 Johnny Willemsen - - * bin/tao_orb_tests.lst: - All POA examples are now under tests - -Mon Jul 30 14:45:00 UTC 2007 Simon Massey - - * tests/Timer_Queue_Reference_Counting_Test.cpp: - * tests/Timer_Queue_Test.cpp: - - Minor memory leak fixes. - -Mon Jul 30 13:37:12 UTC 2007 Johnny Willemsen - - * configure.ac: - Make the signal handler a static to fix detection with Intel C++ - -Mon Jul 30 13:27:12 UTC 2007 Johnny Willemsen - - * configure.ac: - Fixed problem detecting ACE_HAS_MUTEX_TIMEOUTS. Thanks to - Peter Korf for reporting this. - -Mon Jul 30 13:24:32 UTC 2007 Chad Elliott - - * ace/Hash_Map_Manager_T.h: - - Made a minor grammatic correction in the Doxygen. - - * bin/PerlACE/Run_Test.pm: - - Fixed Perl warnings. - - * bin/tao_other_tests.lst: - - Added the new Notify Service monitoring unit tests. - -Mon Jul 30 12:55:12 UTC 2007 Johnny Willemsen - - * m4/compiler.m4: - Disable warning 1419 with Intel C++ - -Mon Jul 30 12:40:57 UTC 2007 Abdullah Sowayan - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h: - - Use ACE_TCHAR instead of char to address problems in - Redhat_Enterprise_Linux_3_Debug_Wchar build. - -Mon Jul 30 12:03:12 UTC 2007 Johnny Willemsen - - * bin/package_copy_script.sh: - Add this script to the repo, used in the release process to copy - the archives with a release number - -Mon Jul 30 11:58:12 UTC 2007 Johnny Willemsen - - * ace/Mem_Map.{h,cpp}: - * ace/OS_NS_fcntl.{h,cpp}: - * ace/OS_NS_sys_mman.{h,inl}: - Updated mode argument to use mode_t as described by the posix spec. - This fixes bugzilla 2943. - -Mon Jul 30 11:24:12 UTC 2007 Johnny Willemsen - - * ace/Parse_Node.h: - Removed commented out code and improved documentation - -Mon Jul 30 11:19:12 UTC 2007 Johnny Willemsen - - * m4/compiler.m4: - Improved support for Intel C++ on Linux - -Mon Jul 30 10:21:56 UTC 2007 Vladimir Zykov - - * include/makeinclude/platform_sunos5_g++.GNU: - Added -z now linker option to gcc builds. This fixes - TAO/orbsvcs/tests/Bug_2285_Regression/run_test.pl, - TAO/orbsvcs/tests/Bug_2285_Regression/run_test2.pl, and - TAO/orbsvcs/tests/Bug_2287_Regression/run_test.pl in - corresponding build. - -Mon Jul 30 09:51:12 UTC 2007 Johnny Willemsen - - * configure.ac: - Added check for InterLocked methods - -Mon Jul 30 09:11:12 UTC 2007 Johnny Willemsen - - * include/makeinclude/platform_sunos5_ghs.GNU: - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - Removed, these are not tested anymore and outdated. - -Mon Jul 30 07:55:12 UTC 2007 Johnny Willemsen - - * bin/generate_rel_manpages: - Removed support for dot_path, not supported by the doxygen - script anymore - - * bin/PerlACE/Run_Test.pm: - When waiting for files we sleep each time a second, changed this - to 50ms so that we don't loose time for each test, given the - fact that we have about 600 tests it could safe a few minutes - for a few test run. Thanks to Chad Elliot for providing these - changes - -Mon Jul 30 07:39:12 UTC 2007 Johnny Willemsen - - * configure.ac: - Added bswap_16, bswap_32, and b_swap64 - -Mon Jul 30 07:28:12 UTC 2007 Johnny Willemsen - - * configure.ac: - * m4/config_h.m4: - Added check for pthread_cond_timedwait. Thanks to Peter Korf - for delivering the patch. This also - fixes bugzilla 2836 which was reported by Norbert Thoden - - -Mon Jul 30 07:15:12 UTC 2007 Johnny Willemsen - - * ace/os_include/os_pthread.h: - * ace/OS_NS_Thread.cpp: - * configure.ac: - Changed the check for pthread_attr_setstack and added it to the autoconf - support. This fixes bugzilla 2476. Thanks to Jonathan Sprinkle - for reporting this - -Sun Jul 29 20:56:40 UTC 2007 Abdullah Sowayan - - * netsvcs/clients/Naming/Client/Client_Test.cpp: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - * netsvcs/clients/Naming/Dump_Restore/createfile.cpp: - * netsvcs/clients/Tokens/manual/manual.cpp: - - Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS functions - where possible. If fuzz detected a false-positive, then disable - the ACE_OS fuzz check for that section of the code. - - * netsvcs/clients/Tokens/manual/manual.cpp: - - Untabify. - -Sat Jul 28 23:00:44 UTC 2007 Steve Huston - - * ace/Local_Name_Space.cpp: - Resolve 64-32-bit transition warnings. - - * ace/config-sunos5.5.h: Define ACE_MALLOC_ALIGN using a sizeof cast. - Makes it fit with the other ACE_MALLOC_* calculations in Malloc.h - without triggering 32/64-bit warnings. - -Sat Jul 28 22:50:12 UTC 2007 Steve Huston - - * tests/SOCK_Connector_Test.cpp: Added some additional diagnostics - re the address info that's being tried to easier note IPv4 vs. - IPv6 addresses. Also removed an ACE_ASSERT. - -Sat Jul 28 21:58:27 UTC 2007 Steve Huston - - * tests/Process_Manual_Event_Test.cpp: Added a hack to always delete - the underlying shared memory objects on AIX, primarily due to the - inability to neatly clean these objects up after a failed test. - See Bugzilla #2662 for further background. Also, added a delay - in the child process to allow the parent to initialize the event - objects. The race between the processes while the parent is - initializing the event objects can cause the child to hang. - -Sat Jul 28 18:56:12 UTC 2007 Johnny Willemsen - - * docs/bczar/bczar.html: - Small improvements - -Sat Jul 28 18:19:12 UTC 2007 Johnny Willemsen - - * configure.ac: - Added checks for byteswap.h, intrin.h, ia32intrin.h, and - ia64intrin.h, part of bugzilla 2905. - -Fri Jul 27 06:50:14 CDT 2007 Johnny Willemsen - - * ACE version 5.5.10 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-93 b/ACE/ChangeLogs/ChangeLog-93 deleted file mode 100644 index 0beb8e6321f..00000000000 --- a/ACE/ChangeLogs/ChangeLog-93 +++ /dev/null @@ -1,52 +0,0 @@ -Wed Dec 15 16:47:19 1993 Douglas C. Schmidt (schmidt@net4.ics.uci.edu) - - * Added a new parameter to the constructor and open() member - functions in the SOCK_Listener and LSOCK_Listener classes. This - parameter indicates that the SO_REUSEADDR option needs to be - applied before attempting to bind an address. - -Sun Nov 21 14:46:18 1993 Douglas C. Schmidt (schmidt@net4.ics.uci.edu) - - * Added a new file called "testconfig.h" in the include directory. - This file gives defaults for the hostname and server port - numbers used in the ./tests directory. - -Wed Nov 3 18:41:14 1993 Douglas C. Schmidt (schmidt@cupid.ics.uci.edu) - - * Released version 2.12. - - * Included Olaf Kruger's fix for templates/shared libs on Sun OS - 4. This solves a bunch of weird problems. Now, most of the - tests compile and run correctly on Sun OS 4! - -Mon Nov 1 17:47:30 1993 Douglas C. Schmidt (schmidt@cupid.ics.uci.edu) - - * Split the release into two parts: (1) the documentation and - papers and (2) the library source code and test examples. - - * Renamed and lightly redesigned the IPC_SAP* hierarchy. Now the - overall C++ wrapper abstraction for local and remote IPC is - called IPC_SAP. The specific wrappers for sockets, TLI, named - pipes, and STREAM pipes are called SOCK_SAP, TLI_SAP, FIFO_SAP, - and SPIPE_SAP, respectively. This cleans up the interfaces, - shares more code, and is much easier to explain. - - In addition, the Server_Daemon framework has been renamed the - Service Configurator framework, and the Server_Daemon class has - been renamed Service_Config. The documentation is being updated - to reflect these changes, as well. - - Note, the easiest way to upgrade existing apps is simply to use - perl as follows: - - % perl -p -i -e 's/Local_IPC/LSOCK/g;' *.[Chi] % perl -p -i -e - 's/IPC_SAP_FIFO/FIFO/g;' *.[Chi] % perl -p -i -e - 's/IPC_SAP_SPIPE/SPIPE/g;' *.[Chi] % perl -p -i -e - 's/IPC_SAP/SOCK_SAP/g;' *.[Chi] % perl -p -i -e 's/SAP_//g;' - *.[Chi] % perl -p -i -e 's/Server_Daemon/Service_Config/g;' - *.[Chi] - - etc. Note that the order in which you do this is important! In - addition, you need to check out your Makefiles, to be sure that - -lIPC_SAP linker lines are changed to include the appropriate - components. diff --git a/ACE/ChangeLogs/ChangeLog-94 b/ACE/ChangeLogs/ChangeLog-94 deleted file mode 100644 index 09465ce823f..00000000000 --- a/ACE/ChangeLogs/ChangeLog-94 +++ /dev/null @@ -1,1027 +0,0 @@ -Fri Dec 23 01:50:50 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/ASX: Changed the behavior of Map_Manager::Map_Manager() - to allocate a default-sized buffer. - - * libsrc/Reactor/Reactor.C (dispatch): Made the poll-based Reactor - smarter about detecting POLLERR error conditions. When POLLERR - is detected, the Reactor now shutdown down that fd... - -Wed Dec 21 18:29:15 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/IPC_SAP/SPIPE_SAP: Changed the name of class SPIPE_Msg to - SPIPE_IO to reflect the fact that I/O over named pipes need not - be message-oriented... - - * Changed all occurrences of {SOCK,TLI,SPIPE}_Listener to - {SOCK,TLI,SPIPE}_Acceptor. This is a more accurate name for the - function these classes perform. In addition, it is easier to - explain in the context of the Acceptor and Connector patterns. - Note that the *.h files are also changed, as well. - - * Changed the implementation of {SOCK,TLI,SPIPE}_SAP so that there - is now a *_Connector class to go along with the *_Acceptor - class. The *_Connector is a factory that produces *_Stream - objects *actively*, in a similar way to how the *_Acceptor is a - factory that produces *_Stream objects *passively*. This makes - everything much more orthogonal, though it will break existing - code... The easiest way to fix existing code is to do the - following: - - 1. Find places in the code that define objects of - type SOCK_Stream, LSOCK_Stream, TLI_Stream, - or SPIPE_Msg (now called SPIPE_IO). - - 2. Replace #include "SOCK_Stream.h" with - #include "SOCK_Connector.h" (or whatever - C++ wrapper you have). - - 3. Replace definitions of the form: - - INET_Addr addr (port, host); - SOCK_Stream foo (addr); - - with - - INET_Addr addr (port, host); - SOCK_Stream foo; - SOCK_Connector con (foo, addr); - - If you don't want to have an extra variable named "con", - you can replace this with: - - INET_Addr addr (port, host); - SOCK_Stream foo; - SOCK_Connector (foo, addr); // Calls the constructor. - -Tue Dec 20 21:34:10 1994 Douglas C. Schmidt (schmidt@tango) - - * Renamed the ./{libsrc,tests}/{Semaphores,Message_Queues} - directories to SV_Semaphores and SV_Message_Queues to better - reflect their true behavior and in order to prevent clashes with - the new ASX names. - - * libsrc/ASX: Renamed Queue to Task to better reflect its true - functionality. In addition, renamed Message_List to - Message_Queue. - -Mon Dec 19 23:04:52 1994 Douglas C. Schmidt (schmidt@tango) - - * Changed "private" to "protected" in ASX/Message_List.h at the - request of Troy Warner (tnw1@core01.osi.com). - -Mon Dec 12 23:47:01 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/IPC_SAP/SOCK_SAP: changed the name of the global utility - function "bind_port()" to ace_bind_port() to avoid polluting the - global symbol namespace. - - * Fixed a descriptor leak in SOCK_Dgram::shared_open() and - SOCK_CODgram::shared_open(). The original version didn't - automatically close down the socket descriptor if bind failed. - The new version does close the descriptor down. - -Sat Dec 10 00:53:20 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Reactor/Reactor.C (mask_ops): Fixed a stupid bug... The - test should have been - - if (this->invalid_handle (handle) || - this->poll_handles_[handle].fd == -1) - - rather than: - - if (this->invalid_handle (handle) || - this->poll_handles_[handle].fd != -1) - - * libsrc/Reactor/Reactor: Modified the semantics of - Reactor::remove_handler() such that calling it with a value of - Event_Handler::DONT_CALL or'd into the Reactor_Mask instructs - the Reactor to remove the handler *without* calling the object's - handle_close() method! - -Fri Dec 9 12:53:31 1994 Douglas C. Schmidt (schmidt@tango) - - * include/Synch: some C++ compilers (e.g., Centerline) barf when - the see the following in an inline function: - - if (foo == bar) - { - errno = result; - return -1; - } - result result; - - I fixed this by doing the following: - - if (foo == bar) - { - errno = result; - result = -1; - } - result result; - -Wed Dec 7 22:23:47 1994 Douglas C. Schmidt (schmidt@tango) - - * include/Synch.h: Added additional methods in the Null_Mutex - class in order to be consistent with the RW_Mutex interfaces... - - * libsrc/ASX/Message_List: Added new a set of methods called - "try_enqueue_head" and "try_enqueue_tail" that will only insert - a message into the queue if it is not already full. If it is - full, return EWOULDBLOCK. - -Tue Dec 6 13:58:28 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Reactor/Event_Handler: added default values of -1 to the - handle_input(), handle_output(), and handle_exception() methods. - -Mon Dec 5 23:30:28 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/ASX/Message_List: Added a new method called set_length to - Message_Block. This method sets the length of the "active" - portion of the message. This is defined as the offset from - RD_PTR to WR_PTR. - -Sat Dec 3 20:40:53 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Threads/Synch: Added two new class called Write_Guard and - Read_Guard, which provide functionality a la the Guard class, - only that they acquire and release readers/writer locks. - - * libsrc/Threads/Synch: For interface uniformity with other - synchronization wrappers I added an acquire() method. This is - implemented as a write-lock to be on the safe-side... - -Fri Dec 2 13:33:39 1994 Douglas C. Schmidt (schmidt@tango) - - * include/Synch.i (Mutex::tryacquire): Modified the behavior of - Mutex::tryacquire so that it will return -1 and set errno to the - appropriate return value of tryacquire(3T) if various types of - "problems" occur (such as the Mutex already being held). - - * include/Message_List.i: Rearranged the order of the - Message_Block::get_rd_ptr and Message_Block::set_wr_ptr methods - to deal with inlining problems that some cfront-based C++ - compilers have... - - * libsrc/Reactor/Signal.[hi]: Changed set_handler/get_handler to - "handler" to avoid a collision with Rogue Wave libraries. This - new version is more consistent with other usage in ACE anyhow... - - * Modified the behavior of Service_Config::Service_Config() so - that it makes the initialize size of the Reactor be the same - size as the Service_Repository. This was done at the suggestion - of Bob Sayle and Steve Warwick at ARINC Research. - -Sun Nov 20 00:59:06 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/ASX/Message_List: Added two new methods - (is_full() and is_empty()) to the public interface - of Message_List. These methods check whether the queue is full - or empty *while holding the lock*. - - * libsrc/ASX/Queue.h: Made the svc() method a pure virtual - function. This is much cleaner than not doing it, particularly - when we've already got to define open(), close(), and put()... - - * Added a new method to the IPC_SAP/Addr inheritance hierarchy. - The method is called addr_to_string() and it converts the - address of a subclass (e.g., either UNIX domain or Internet - domain) into a string. This functionality is particularly - useful in parameterized types (such as Acceptor), which should - be oblivious of the type of communication domain they are - using... - - * Reorganized the ./apps/Logger/Service_Configurator_Logger - directory in order to reuse more code. Now, all the Acceptor - pattern classes have been moved to a new subdirectory called - ./libsrc/Acceptor. In addition, this code has been generalized - to work with the ASX framework! - -Sat Nov 19 15:19:19 1994 Douglas C. Schmidt (schmidt@tango) - - * Released version 2.15.5 (added a couple of minor fixes and some - additional software to the release. In particular, I've added - the RPC++ C++ wrappers for Sun RPC. See the README file for - more info on this. - - * apps/Synch-Benchmarks: Reorganized all the synchronization tests - so that they would be easier to understand and extend. - - * include/sysincludes.h (ACE_NONBLOCK): Fixed a stupid typo in the - ./include/makeinclude/wrapper_macros.GNU file that accidentally - used ACE_NONBLOCKING instead of ACE_NONBLOCK... Jaysus - - * Fixed up the Service_Config.[Chi] source so that it no longer - allocates statically linked services via static variables. - Stacy Mahlon (mcs@contour.mayo.edu) recommended this change to - workaround bugs in compilers that fail to initialize static - objects appropriately. - -Tue Nov 15 11:55:03 1994 Douglas C. Schmidt (schmidt@tango) - - * Fixed a portability problem in the ./libsrc/Service_Configurator - that was caused by certain compilers failing to initialize - global variables correctly. In particular, the Obstack object - ace_obstack is now a pointer that is allocated dynamically by - Service_Config.process_directive(). Thanks to Stacy Mahlon - (mcs@contour.mayo.edu) for noticing this! - -Mon Nov 14 12:16:14 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Threads/Thread.h: added C++ wrappers for - thr_getconcurrency() and thr_setconcurrency(). - - * Fixed a dumb typo in ./tests/IPC_SAP/SOCK_SAP/CPP-nbclient.C - that failed to conditionally compile for different variants of - siginfo... - - * Added some test programs that benchmark the performance of - Solaris synchronization mechanisms. See ./apps/Synch-Benchmarks - for details... - - * Extended the methods of the Queue class to take advantage of the - new Message_List methods that perform timed waits! This - involves changing many of the existing methods in this class to - add an extra parameter of type timestruc_t *, which defaults to - 0. - - * Added some new comments in the - ./include/makeinclude/wrapper_macros.GNU file that indicate what - the various macros defined by the Makefile scheme actually mean. - This should help people who are porting to a new system... - - * Fixed a dumb bug in ./tests/Shared_Memory that directly included - system header files. Everything in ACE should include - "sysincludes.h" instead... Thanks to Stacy Mahlon - (mcs@contour.mayo.edu) for noticing this! - - * include/Memory_Pool.i (round_up): Fixed a typo where PAGESIZE - should have been ACE_PAGE_SIZE. - -Sat Nov 12 01:32:52 1994 Douglas C. Schmidt (schmidt@tango) - - * Generalized the Shared_Memory_Pool class for Malloc so that it - doesn't require the base addresses for multiple processes to all - start at the same location. - - * libsrc/Service_Configurator/Thread_Spawn.i (Thread_Spawn): - - Fixed a stupid bug in the constructor. Note that we should - be checking if this->tm_ == 0, rather than != 0... - -Fri Nov 11 00:11:41 1994 Douglas C. Schmidt (schmidt@tango) - - * Released version 2.15.4 (added a couple of minor fixes). - - * Added a new test program in the ./tests/ASX/Message_List - directory. This program illustrates how thread-safe - Message_Lists work using ASX. - - * libsrc/Threads/Thr_Manager.i: Added a new method called - insert_thr() to Thr_Manager that is used in conjunction with - Thr_Cntl::Thr_Cntl to make sure that a thread is added to the - Thr_Manager's table correctly. - -Thu Nov 10 20:14:11 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Log_Msg/Log_Record.C (print): Fixed the following very - subtle (and very stupid) bug: - - return ::fprintf (fp, this->msg_data_); - - if this->msg_data_ contains '%', then this call will - fail since fprintf tries to treat the percent sign as - a format code. The obvious fix is: - - return ::fprintf (fp, "%s", this->msg_data_); - - * libsrc/ASX/Message_List.i (is_empty): Fixed a braino that failed - to check if there was a 0-sized buffer in the list. It is now - possible to enqueue a 0-sized buffer, which is helpful for - things like signaling end of transmission by a producer. - - * libsrc/ASX/Message_List.C: Improved the robustness of the - Message_List abstraction by detecting the case where the newly - inserted Message_Block is a NULL pointer. Before, this would - crash the program, where now it returns -1 from the - enqueue_head() or enqueue_tail() methods. - - * libsrc/Threads/Synch.h: added timedwait_signal() and timedwait() - methods to class Condition. These are wrappers around the - cond_t cond_timedwait() function. - - * Improved the documentation of the class interfaces in the - Synch.h C++ wrapper for Solaris 2.x threads mechanisms. - - * Changed the name of class Condition methods wait_signal() and - timedwait_signal() to wait_alert() and timedwait_alert() to - remove confusion with UNIX signals and the regular condition - variable signal. - -Wed Nov 9 23:49:24 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/IPC_SAP/Addr/UNIX_Addr.i (UNIX_Addr): Fixed another - couple brainos in UNIX_Addr.i (thanks for Irfan - (ip1@cs.wustl.edu) for noticing this). - - * libsrc/IPC_SAP/SOCK_SAP/SOCK.i (get_local_addr): Fixed a braino - that didn't reset the Addr size after a call to getsockname(). - -Tue Nov 8 00:25:02 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Service_Configurator/Svc_Conf.y (create_service_type): - Fixed a bug on lines 323 and 324, and 330 and 331. The "#if - defined" needs to be INSIDE the "case" statements. Thanks to - mcs@contour.mayo.edu for finding this! - - * Improved the interfaces for all the synchronization wrappers so - that they can be given all the parameters for the underlying - SunOS 5.x *_init calls. Default values are given to keep the - normal usage concise... - -Mon Nov 7 21:41:13 1994 Douglas C. Schmidt (schmidt@tango) - - * Changed all occurrences of Mutex_Rec to Recursive_Lock. This is - much more descriptive since by using templates, the recursive - logic applies to a number of synchronization mechanisms (e.g., - Semaphores, RW_Mutex, Mutex, Null_Mutex, etc.) rather than just - the Mutex class. - - * Changed all occurrences of Mutex_Block to Guard. This is more - standard terminology and reflects Booch's terms more closely, as - well. - -Sun Nov 6 14:31:44 1994 Douglas C. Schmidt (schmidt@tango) - - * Majorly improved the modularity and structure of the Reactor - class. Much duplicate code has been coalesced and several new - features have been added. - - * Changed the name of the Reactor method set_ready() to - ready_ops(). Added a new method called mask_ops(). These - methods make it possible to manipulate the "dispatch masks" and - the "ready masks" (e.g., READ_MASK, WRITE_MASK, etc.) at a much - finer level of granularity without loss of efficiency or - correctness. - -Sat Nov 5 16:48:55 1994 Douglas C. Schmidt (schmidt@tango) - - * Changed the name of three methods in the Semaphore class to - mirror the terms used for Mutex and RW_Mutex. This will help - support the use of semaphores along with templates (e.g., - Rec_Lock) much better... The old names were "wait", "trywait", - and "signal". The new names are "acquire", "tryacquire", and - "release." - - * Added a new class called Signal_Block in Signal.[hiC] This class - operates similar to Mutex_Block, in that it holds a set of - signals over the duration of a C++ statement block. The - constructor masks out the signals and the destructor restores - the signals. - - * Changed the name of files Signal_Handler.[hiC] to Signal.[hiC] - to reflect a broadening of the functionality of the ACE wrappers - for Signals. For example, the new C++ classes wrap the sigset_t - API, as well as the struct sigaction structure. - -Fri Nov 4 00:41:48 1994 Douglas C. Schmidt (schmidt@tango) - - * Yow, got the new Shared_Malloc/Malloc class to work correctly on - SunOS 4.x, as well as SunOS 5.x. It's a bit more clunky on - SunOS 4.x since we have to use System V semaphores rather than - Solaris synchronization mechanisms. However, it now seems to - function correctly! - - * Added a new method called "tryacquire" to Semaphore_Complex and - Semaphore_Simple. This method provides the same "non-blocking" - semantics as it does in the Mutex, Semaphore, and RW_Mutex - classes. - - * Added a new method called "remove()" to all the C++ wrappers in - the Synch.[hi] file. This improves the symmetry with the System - V semaphore wrappers, and also gets around a nasty bug with - cfront 3.x and its handling of templates and explicitly called - destructors... - - * Added a new C++ wrapper class for Threads (Thread.h). The - eventual purpose of this class is to hide the differences - between POSIX pthreads and Solaris threads. - - * Added new parameters to Thr_Manager::spawn to enable the stack - and stack_size to be passed in. - - * Modified the Synch.h file so that the Null_Mutex and Mutex_Block - classes will both be compiled, even if we are building ACE on a - platform that doesn't support threads! - - * Added a timed event-loop method to the public interface of the - Service_Config class. This basically forwards the request to - the underlying Reactor->handle_events method. Thanks to Brad - Needham (bneedham@arinc.com) of ARINC research for the - suggestion! - -Wed Nov 2 14:47:25 1994 Douglas C. Schmidt (schmidt@tango) - - * Changed the interface for one of the Reactor's - {register,remove}_handler methods. These methods - had previously taken a sigset_t &, but for some reason the Sun - C++ 3.0 compiler can't seem to recognize that this is different - from an int! Therefore, I changed the interface to take a - sigset_t *. - - * Fixed some portability bugs that crept into the SunOS 4 version - of ACE, particularly with the siginfo_t extended signal handler - stuff. - -Tue Nov 1 21:46:07 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Log_Msg/Log_Msg.C (log): Fixed a braino on line 175. - "int sig" was undefined outside the conditional (duhhh ;-)). - -Thu Oct 27 17:23:37 1994 Douglas C. Schmidt (schmidt@tango) - - * Fixed up some problems with Semaphore_Complex and - Semaphore_Simple. The new design should be more functional, - particularly for Semaphore_Complex, which now generalizes to - arrays of semaphores. - -Wed Oct 26 16:38:42 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Shared_Malloc/: Created a .i file for Malloc and - Memory_Pool to handle inlines. - - * Fixed a fence-post error in Mem_Map::map_it(). The new version - should correctly set the length of the file *and* also do the - appropriate memory mapping. - - * bin/clone.C: Fixed the clone program so that it now compiles - with the C++ compiler rather than the C compiler. - -Tue Oct 11 20:01:16 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Reactor/Reactor.h (Reactor): Changed the order of the - arguments to the Reactor's register_handler() method used to - register signal handler objects. The new order puts both "new" - components first, and any - (optional) old components following this. This is - a more natural set of default values... - - * libsrc/Shared_Malloc: split out the Local and Shared memory - pools for class Malloc into the Memory_Pool.[hC] files. - -Mon Oct 10 22:54:53 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Threads/Synch.i: Reworked the Thread_Mutex and - Process_Mutex classes to inherit their interface and - implementation code from Mutex... Thanks to Irfan Payrali for - the suggestion! - -Wed Sep 28 11:26:34 1994 Douglas C. Schmidt (schmidt@tango) - - * Moved some of the tests directories around to better reflect - precisely which ACE components are being tested. In particular, - the {client,server} directories that were originally under the - ./tests/Reactor subtree are now located in the - ./tests/Service_Configurator subtree. - -Tue Sep 27 23:05:32 1994 Douglas C. Schmidt (schmidt@tango) - - * Added a bunch of constructors/destructors for - ./tests/Reactor/server to make g++ happy. - - * libsrc/Service_Configurator/Service_Object.[ih] - (Service_Object): Added a constructor and destructor to - Service_Object to make g++ happy. Also, removed the #if for - broken versions of g++ 2.5.8. - - * include/Reactor: Added a constructor and destructor for - Null_Callback to make G++ happy... - - * libsrc/Message_Queues/: Added support for G++ templates. - - * Changed the handling of _sys_siglist in the sysincludes.h file - to try and handle the weird SunOS 4 header file problems... - - * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram_Brdcast.C (mk_broadcast): - Removed the "struct" from new struct ifnode in order to - compile... - -Tue Sep 20 11:17:23 1994 Douglas C. Schmidt (schmidt@tango) - - * Fixed a couple of minor typos in the Windows NT C++ wrappers for - sockets. - - * Released version 2.15.2 so that Mark Frutig could have access to - the latest source in order to write man pages! - -Thu Sep 15 20:47:36 1994 Douglas C. Schmidt (schmidt@tango) - - * Extended the Event_Handler interface to support the additional - siginfo_t-style parameters for extended SVR4 signal handling. - Note that for backwards compatibility, this new interface only - enabled if the -DACE_HAS_SIGINFO flag is set in the - wrapper_macros.GNU config file. Making this change affected - several of the existing ACE classes such as Service_Config and - Signal_Handler. - -Mon Sep 12 17:07:10 1994 Douglas C. Schmidt (schmidt@tango) - - * Improved the modularity of the Reactor by creating a new class - called Signal_Handler. This new class basically encapsulates - the signal handling mechanism provided by UNIX within a nice OO - abstraction. The new arrangement is particularly useful since - the Signal_Handler class may be used in applications - (e.g., the Malloc class abstraction) that do not require the - other features of the Reactor. - -Sun Sep 11 14:40:06 1994 Douglas C. Schmidt (schmidt@tango) - - * Changed the default value for Semaphore_Simple and - Semaphore_Complex from OPEN to CREATE. This is more closely - related to how SunOS thread synchronization variables work. - - * Changed the methods of the Semaphore_Simple class to be - syntactically equivalent to the Process_Mutex and Thread_Mutex - classes. This makes it easier to write code that uses - parameterized types to instantiate the appropriate type of - synchronization primitive. - - * include/makeinclude/rules.local.GNU (OBJDIRS): Fixed the - "depend" target so that it generates the correct dependencies - for remaking .so files after they are changed. - - * Added a new pair of methods to the Reactor so that it is now - possible to register/remove a sigset_t of signals in one - operation. - -Sat Sep 10 03:11:34 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Mem_Map/Mem_Map.i (map_it): Fixed a few minor bugs with - how the Mem_Map::map() method handles lseek()'s. - - * Changed the name of the Mem_Map::open() methods to - Mem_Map::map(). This seems like a more reasonable name! Also, - removed the close() method. This is trivial to implement via - ::close (mmap.get_fd ()); - -Fri Sep 9 22:04:25 1994 Douglas C. Schmidt (schmidt@tango) - - * Provided a new implementation of a flexible memory allocation - scheme (Shared_Malloc/Malloc.[HiC]). This memory allocation can - be parameterized by the following: - - 1. The pool from which memory is allocated (e.g., - local memory vs. shared memory). - - 2. The type of synchronization used when allocating - the memory (e.g., no synchronization, thread-based - synchronization, process-based synchronization). - - * libsrc/Threads/Synch.i (Proc_Mutex): Added new classes to the - Synchronization library. These classes are wrappers around the - USYNC_PROCESS and USYNC_THREAD flags to mutex_init(). - -Wed Sep 7 20:29:00 1994 Douglas C. Schmidt (schmidt@tango) - - * include/sysincludes.h (MT): Added check to see if _REENTRANT was - already defined, and if so, avoid redefining it! - -Sun Sep 4 16:23:17 1994 Douglas C. Schmidt (schmidt@tango) - - * Released version 2.15.1 to the world... - - * Added support for the Windows NT version of SOCK_SAP. - - * Fixed a few minor bugs involved with the order of linking - libraries. - - * Fixed an oversight in ./testsReactor/server/server_test.C where - I was still including the "Server_Test.h" file (ugh). - -Wed Aug 31 13:27:10 1994 Douglas C. Schmidt (schmidt@tango) - - * libsrc/IPC_SAP/SOCK_SAP/SOCK_Stream.C (open): Fixed a bug - whereby the I/O descriptor wasn't being closed if connect() - failed. Thanks to Charles Eads - (eads@synoptics.com) for reporting this. - - - * Recompiled everything on SunOS 4.x using SunC++ 3.x and SunOS - 5.x using SunC++ 3.x and 4.x. Everything seems to compile fine - now. - - * Released version 2.15 - -Mon Aug 29 00:14:04 1994 Douglas C. Schmidt (schmidt@tango) - - * Finished up a preliminary set of tests for ASX. See the - $WRAPPER_ROOT/tests/ASX/Event_Server directory for more details. - - * wrapper_macros.GNU (CC): Removed the ARCHFLAG from the CCFLAGS - macro in the Makefile system. Henceforth, all conditional - compilation should be performed on a "per-feature" basis, rather - than a "per-platform" basis... - - * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram_Brdcast.C (send): - Automatically convert the port number to htons format before - using it to initialize the sin_port field of the addressing - structure. This is consistent with the behavior of other parts - of IPC_SAP (particularly INET_Addr::set()). - -Sun Aug 28 00:02:53 1994 Douglas C. Schmidt (schmidt@tango) - - * Changed version number of 2.15 to reflect all the major - modifications to the structure of ACE. - - * include/sysincludes.h: Started to fix up the conditional - compilation scheme to be much smarter about the features that - are available from both the compiler and the OS environment. - - * Added a fix suggested by Leslee Xu (lxu@ics.uci.edu) to better - handle the normalization of Timer_Values. - - * Continued to make ACE coding conventions more consistent by - removing get_/set_ prefix from all the accessor/manipulator - methods. Also, added an underbar at the end of all class and - object instance variables. - -Sat Aug 27 20:28:13 1994 Douglas C. Schmidt (schmidt@tango) - - * Continued to improve error handling by replacing all uses of - perror with the Log_Msg macros. - - * include/sysincludes.h: Continued to improve the namespace - utilization in ACE by prefixing stand-along Misc functions with - ace_. - - * include/FD_Set.h: Changed the name FD_Set_Iter to - FD_Set_Iterator. - - * typedef'd int to HANDLE in Event_Handler.h in preparation for - merging in the Windows NT support along with the regular ACE - package. I need to update all the other code in the entire - release to be consist with this! - -Thu Aug 25 19:49:57 1994 Douglas C. Schmidt (schmidt@tango) - - * Fixed a bug with Thr_Manager.i that occurred if a thread created - by ::thr_create() exits prior to the acquisition of the lock and - the subsequent bookkeeping. - -Wed Aug 24 17:34:49 1994 Douglas C. Schmidt (schmidt@tango) - - * Updated SOCK_Dgram_Brdcast to return the average number of bytes - sent. This isn't necessarily the most useful info, but it - doesn't hurt either. Thanks to Mark Frutig (mfrutig@fnbc.com) - for the suggestion. - -Mon Aug 22 01:18:14 1994 Douglas C. Schmidt (schmidt@tango) - - * Added a new test for the Service Configurator framework. This - test illustrates the dynamic configuration of an entire stream - of Modules. - -Sun Aug 21 03:16:00 1994 Douglas C. Schmidt (schmidt@tango) - - * Cleaned up the ./tests/Reactor/server example to be more robust. - In particular, it doesn't really make sense to have the same - object be configured both statically and dynamically *at the - same time*! This was causing problems since each constructor - was getting called twice for the same object -- once when it was - created statically, and again when it was linked in - dynamically... Things work much better now. - -Sat Aug 20 01:07:24 1994 Douglas C. Schmidt (schmidt@tango) - - * Heavily revised the structure of the ./apps/Logger - subdirectories to test out the new Makefile scheme. Everything - is working fine on Solaris! - - * Updated all the ./apps/Logger subdirectories to use the Acceptor - name rather than the Client_Listener name. This is consistent - with recent papers... - - * Fixed all the Makefiles to utilize the new simplified build - strategy. The Makefiles are *far* more automated now! - - * Added support to all the libsrc Makefiles to produce both shared - libraries (*.so) and traditional archives - (*.a). - -Fri Aug 19 16:13:42 1994 Douglas C. Schmidt (schmidt@tango) - - * Majorly improved the Makefile support for building shared - objects that will be dynamically linked explicitly. No longer - will we have to do the horrible hack of compiling all the source - code using -pic. Instead, only that code that will be linked - dynamically must be compiled with -pic! Note that this only - works if the shared object is entirely self contained (i.e., it - does *not* reference any statically linked symbols that are not - defined in itself)! - - * Started to add changes to the source code to make its - configation driven by features rather than by OS. This should - make everything much more portable soon! - - * Fixed IPC_SAP.h so that the constructor is protected (prevents - accidental definition of an instance of this class). - -Thu Aug 11 08:31:33 1994 Douglas C. Schmidt (schmidt at valentine.ics.uci.edu) - - * Fixed Reactor::schedule_timer() so that it will unblock the - Reactor if it is currently blocked. This is necessary so that - the Reactor will recompute the amount of time that it needs to - wait before dispatching timer-based events. Thanks to Todd Hoff - for noticing this... - - * Fixed a stupid bug in the handle_input() method of - Client_Listener in both the Reactor and Service_Configurator - version of the Server Logging Daemon. This routine was not - explicitly returning 0 when it worked..., which might cause the - Reactor to deregister the listener handler! - - * Added casts to the ::select() call in the Reactor to ensure that - the FD_Set * -> fd_set * conversion operators are properly - involved. Thanks to Todd Hoff for this fix (thm@ictv.com). - Todd noticed that the DCE pthreads implementation on AIX was - confusing the compiler... - -Mon Aug 8 18:11:03 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Added a new constructor for the FD_Set class that will convert - an fd_set into an FD_Set. - - * Removed the default value for the Service_Repository constructor - since this was ambiguous with the default constructor. - -Tue Aug 2 18:25:28 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Fixed a bunch of minor "warning-causing" nits that were caused - by #endif __INLINE__ in certain header files... - - * Added a new set of interfaces to the Reactor to retrieve a - registered handler. These interfaces are also useful for - checking whether a handler is registered at a particular fd. - -Sun Jul 10 17:43:19 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Improved the implementation of the Profile_Timer and - High_Res_Timer classes. In particular, the High_Res_Timer class - now works quite nicely using SunC++ 4.0. - -Mon Jul 4 12:49:14 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Changed the order of the base class inheritance list for the - Service_Object class as a workaround for a bug in SunC++ 4.0's - handling of pointers to member functions (ugh). - -Sun Jul 3 18:07:16 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Added a bunch of changes (courtesy of - george@truffula.fp.trw.com). These changes fix minor - portability problems with the new SunC++ 4.0 compiler. - -Fri Jun 24 08:59:02 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Removed operator() from all the IPC_SAP listener classes. - Defining this operator was causing more trouble than it is worth - since C++ doesn't allow operator() to have default arguments - (ugh). The "right" thing to do is to simply use the accept() - method in those classes instead of operator(). - -Wed Jun 22 16:54:05 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Fixed some problems with TLI_Listener that involved lax scoping - of nested classes with cfront 3.x-based C++ compilers. - -Tue Jun 14 11:56:56 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Added a bunch of changes to get portions of ACE up and running - on SCO UNIX, on HP-UX, and on OSF/1. - -Tue Jun 7 14:32:50 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Added support for FLEX's <> symbol to properly cleanup when - a configuration file has been parsed by the Service - Configurator's lexer/parser. - -Sun May 22 10:37:14 1994 Douglas C. Schmidt (schmidt at valentine.ics.uci.edu) - - * Modified the semantics of explicit dynamic linking on SunOS 4.x. - Now, if there is no _init or _fini function defined in a shared - library, it isn't an error (we simply don't call the function!). - -Mon May 9 07:58:35 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Included more fixes for GNU G++ courtesy of Aniruddha Gokhale - . - -Thu May 5 16:47:25 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Reimplemented the ./apps/Logger/Reactor_Logger to provide an - illustration of how the Reactor works. - - * Added finishing touches to the new version of the Service - Configurator framework. This framework now permits completely - automated configuration and reconfiguration of Service_Objects - and Streams. The next step is to add some more complete - examples that illustrate how these features are used... - -Tue May 3 10:17:12 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Fixed a bug in the Service Repository that would cause an - extraneous dlclose on a shared library handle under some - circumstances... - -Mon May 2 11:07:52 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Modified the semantics of Service_Object_Type in the Service - Configurator framework so that it does not automagically - register the service object with the instance of the Reactor. - The original behavior involved too much "over-specification" of - the behavior of Service Objects. Moreover, I can finally omit - the crazy semantics of DONT_REGISTER_SVC and REGISTER_SVC! - - * Fixed some subtle bugs involved with pop'ing a remove'ing a - Module from a Stream. Note that we need to use Module::link - rather than Module::set_next in order to ensure that all the - necessary pointers get rearranged.... - - * Fixed a couple of minor problems with deleting const objects in - the Service_Repository.i file. These were caught by G++, but - not caught by SunC++! - -Sun May 1 11:43:52 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Fixed subtle bug in Server_Config::run_event_loop(). This bug - prevented reconfiguration from occurring under certain - circumstances. - - * Added a new feature to the Service_Manager class in the Service - Configurator framework. This new feature enables the Service - Configurator to be reconfigured remotely by clients. - - * Fixed a bug in Service_Manager that caused the Service - Configurator to crash if SIGPIPE occurred if a client closed - down ungracefully while retrieving information on active - services. - - * Added a new argument to the Reactor::register_handler() method - that is used to register signal handling Event_Handlers. This - new argument returns the current Event_Handler (if any) that is - registered for this signal. - - * Fixed a potential bug in Service_Config::process_directives that - behaved improperly when there was no svc.conf file present in a - directory. - -Wed Apr 27 12:55:46 1994 Douglas C. Schmidt (schmidt at mabillon.ics.uci.edu) - - * Changed the name of Service_Directory to Service_Manager to - reflect its intended functionality - -Mon Apr 25 10:53:01 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Updated the Service Configurator framework to use the new signal - handling facilities provided by the Reactor. This cleans up a - lot of the code in Service_Config.i and removes the need for - ugly non-reentrant static class variables. - - * Released version 2.14 - -Sat Apr 23 14:29:11 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Changed the representation of the select()-based Reactor to be - more similar with the poll()-based Reactor. In particular, - there is only one array of Event_Handlers rather than three... - -Sun Mar 13 16:49:59 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Fixed a bug with the select-based version of the Reactor. This - bug caused problems when dispatching the handle_output() member - function. - - * Fixed a bug with the select-based version of the Reactor. This - bug resulted in a failure to call the handle_close() member - function on the write_fds and except_fds. - - * Changed the interface for Event_Handler::handle_close() so that - the second parameter is a Reactor_Mask. This allows the - call-back routine to determine which side of a connection (i.e., - read-side vs. write-side or both) to close down. Be careful - since this change may break existing code that used the original - 1 argument handle_close() member function. - - * Changed the location of the Reactor_Mask. It was originally an - enum in Reactor.h. It is now a typedef in Event_Handler. This - change will break existing code but it easily spotted since the - compiler will give an error! - -Sat Mar 12 15:16:59 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Continued to modify the grammar of the svc.conf file language. - The latest version (illustrated in configuration files in the - ./tests/Reactor/server and - ./apps/Logger/Service_Configurator_Logger file) is both easier - to read and to parse automatically. - -Tue Mar 8 10:19:40 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Changed the behavior of the Get_Opt class so that it will - perform option processing starting from argv[0] rather than - argv[1] if the SKIP argument to the constructor is set to 0. - Note that the default value is 1, so the behavior is the same - for backwards compatibility. Incidentally, this new change is - necessary to support the Service Configurator stuff... - - * Changed the names of some of the Service_Record member functions - to conform to the new idiom for naming get/set-style of member - function accessors... - -Sun Mar 6 12:47:03 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Removed libGet_Opt.a and merged it in with libMisc.a - -Sat Mar 5 18:37:43 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu) - - * Updated the Service_Config class to use a flex/yacc based parser - rather than an ad hoc parser and lexer. This is useful since - the new syntax for configuring a complete Stream into a Service - Configurator-based application is more complicated... - - * Made a small change to the syntax of a svc.conf file. Now any - parameters that are passed to the Service_Object::init() member - function of a dynamically linked service must be enclosed inside - of double quotes. In other words, service config entries such - as - - dynamic ./dev_adapter.so:_alloc () Device_Adapter -p 3000 - - now become - - dynamic ./dev_adapter.so:_alloc () Device_Adapter "-p 3000" - - This change makes it easier to parse the input using flex/yacc. - -Sat Feb 12 18:53:14 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu) - - * Modified the Reactor so that it now also demultiplexes signals, - as well as timer events and I/O events. This required making a - few sections of the Reactor code signal-safe, as well as - thread-safe. - - * Changing the Reactor to handle signals also required a slight - change to its interface. For example, it is now mandatory to - give the Event_Handler::{READ_MASK,WRITE_MASK,EXCEPT_MASK} when - registering a handler... - -Sat Feb 5 12:10:53 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu) - - * Changed the Condition and Monitor classes to use templates that - parameterize them with the appropriate type of Mutex (i.e., - either Mutex or Mutex_Rec). This greatly cleans up the code... - Made a number of changes in other files - (such as the Reactor) to account for the changes. - - * Added a new class called Mutex_Rec which implements a recursive - Mutex abstraction on SunOS 5.x. Recursive Mutexes may be - acquired multiple times from a single thread. Basically, this - supports an efficient and clean way of handling nested locking - conditions. - -Thu Feb 3 12:37:34 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu) - - * Fixed a bug in Service_Config.i that was causing SIGHUP-driven - reconfiguration not to work correctly. - - * Added a set of new member functions to the Reactor class to - suspend() and resume() an event handler. Also added suspend() - and resume() member functions to the Server_Object class to take - advantage of these new facilities automagically... - -Mon Jan 31 09:47:06 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu) - - * Modified the no-args constructor for the Reactor to initialize - it to the DEFAULT_SIZE. The prior behavior was *not* to - initialize it at all, which seems rather dumb in retrospect... - - * Improved the Reactor's support for multi-threading by adding a - pipe() call that is used to force the Reactor to reconfigure - itself everytime a new handler is registered or removed. - Previously, any new changes wouldn't take place until the - Reactor was triggered by some external event. This old behavior - was too non-deterministic... - -Sun Jan 2 12:35:39 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu) - - * Modified the inheritance hierarchy for Service_Object so that it - derives from both Shared_Object and Event_Handler. - Shared_Object is a new abstract base class the provides an - interface for dynamic linking of objects. When RTTI is widely - available for C++ the Service Configurator will be much more - functional since we can automatically figure out whether an - object is a Service_Object or just a Shared_Object and do the - right thing with it! - diff --git a/ACE/ChangeLogs/ChangeLog-95 b/ACE/ChangeLogs/ChangeLog-95 deleted file mode 100644 index 429e5681fdc..00000000000 --- a/ACE/ChangeLogs/ChangeLog-95 +++ /dev/null @@ -1,4179 +0,0 @@ -Sun Dec 31 01:02:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS (mmap): Added a new parameter to the argument list for - mmap(). This parameter is an ACE_HANDLE * and is used in the - Win32 implementation, which requires CreateFileMapping to open a - new HANDLE. This handle is passed back to the caller, which is - then responsible for freeing it... I'll probably need to modify - the ACE_Mem_Map class to manage this new handle for the WIN32 - version. - - * ace: Updated all the SPIPE files in preparation to porting them - to Windows NT, where they will be implemented using Win32 Named - Pipes! - - * ace/Typed_SV_Message: Fixed a mysterious braino where the method - definitions for Typed_SV_Message were actually within - Typed_SV_Message_Queue.cpp. I'm not sure why this happened, but - it's clearly been this way for eons... Also, changed the name - of the method "max" to "max_size" to avoid conflicts with macros - on Windows NT... - - * ace: Added a new config symbol: ACE_HAS_SYSV_IPC. If this is - *not* set (e.g., Win32) then don't try to compile any of the - System V IPC mechanisms (e.g., shared memory, message queues, - semaphores). - - * ace/Malloc: Reimplemented the Malloc-family to factor out common - code. Also added a new method called "trybind" which atomically - tries to bind a new void *pointer to a char *name. If there is - no name with the same value, the bind succeeds. Otherwise, the - bind "fails", but returns the existing pointer. - - * ace/Map_Manager: Reimplemented the Map_Manager to factor out - common code. Also added a new method called "trybind" which - atomically tries to bind a new int_id to an ext_id. If there is - no ext_id with the same name, the bind succeeds. Otherwise, the - bind "fails", but returns the existing int_id. - - * ace/Memory_Pool.cpp: Commented out all the diagnostic messages - in the various ACE_*_Memory_Pools. Now that we're actually - using this within ACE, they were distracting. - - * ace/CORBA_Handler.cpp (ACE_ST_CORBA_Handler): Gave iterations_ - an initial value of "5" for backwards compatibility. Thanks to - Irfan for doing this. - - * ace/Map_Manager.cpp (ACE_Map_Manager): Fixed some more braino in - the constructors of Map_Manager. During the recent changes I'd - forgotten to initialize the Map_Manager's instance variables to - 0. Thanks to Irfan for finding this out the hard way... ;-) - - * ace/OS.i (gettimeofday): Added a WIN32 implementation of - gettimeofday. This is pretty nasty, but it should centralize - all of this processing in one place in ACE! - -Sat Dec 30 00:50:20 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Timer_Queue: Removed the current_time() method from the - Timer_Queue class. All uses will be replaced with calls to - ACE_OS::gettimeofday(). Not only does this factor out more - code, but it is also reentrant! - - * ace/ACE.cpp (handle_timed_accept): Consolidated code so that - select() is always used, rather than poll(). - - * ace: Generalized the ACE file locking wrappers (both at the - Synch-level and the ACE_OS class level) to enable them to lock - arbitrary regions (aka "records") of a file. Before, they could - only lock the entire file (which remains the default behavior). - This new behavior works for both NT and UNIX. - - * ace/Synch: Removed the definition and use of the - ACE_SYNCH_ERROR_RETURN macro from all the ACE Synch* methods. - This behavior has been integrated into the ACE_OS class instead - since it cleans up lots of code that would otherwise have been - hard to write. - - * ace/INET_Addr.cpp (get_host_name): Fixed a bug that arose by - trying to use the reentrant version of gethostbyaddr all the - time. In order to fix this, I've added a new get_host_name() - method that allows the caller to supply a buffer for the - hostname. - - * ace: Cleaned up all the POSIX_TIMER junk that permeated ACE. - Now all platforms will have the POSIX timer structures (e.g., - timestruc_t and timespec), though only those that actually - support nano-second timing will be able to do anything useful - with this... As part of this cleanup, the poll, select, and - cond_timedwait method in ACE_OS now take ACE_Time_Value * rather - than int, timeval *, and timestruc_t, respectively. This - *greatly* cleans up the clutter throughout the rest of ACE. - - * ace/ACE: Added two new methods called tv2msec and msec2tv that - converts ACE_Time_Value format into millisecond format and vice - versa. This will make it easier to port code between NT and - UNIX. - - * ace/Reactor: Removed the code in the Reactor that previously - allowed it to be resized after it had been initialized. This - code no longer was used due to the recent enhancements that - ensure the Reactor is only initialized once per-process. - - * ace/Reactor: Modified the Reactor so that it now compiles on NT. - It doesn't work yet, but at least it compiles! - - * ace/Reactor: Moved the "max3" method from the Reactor to OS.h, - where it has become a template function usable throughout ACE. - - * ace/OS.cpp: Added extern "C" before the NT implementations of - readv() and writev(). - - * ace/OS.i: Fixed the declaration of ::readv() and ::writev() for - cases where the OS doesn't provide them natively. - - * ace/Event_Handler: Modified handle_signal() to take an int - rather than an ACE_HANDLE. The old way broke under NT... - - * ace: Made lots of minor changes to resolve signed int - vs. unsigned int mismatches. Thanks to the MSVC++ 4.0 compiler - for pointing these out. At least it's good for - something... ;-). - -Fri Dec 29 15:01:10 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/ACE.cpp (handle_timed_accept): Reimplemented the core - select() loop to make the code portable to Win32. - - * ace/Map_Manager.cpp (ACE_Map_Manager): Fixed a minor bug caused - by recent changes (forgot to initialize max_size_ in the - constructor...). - - * Updated all the manual pages to reflect the latest changes. - - * ace/ACE.cpp: Fixed up the ACE class so that all of the methods - should compile on both Windows NT and UNIX! - - * ace/OS: Moved the get_file_size() method from class ACE and put - it into class ACE_OS, where it's been renamed to filesize(). - This is really more of an "OS" function, e.g., it's supported on - Win32 directly. - - * ace/OS.cpp: added readv() and writev() implementations for those - platforms (e.g., Windows NT) that require them. - - * ace/Makefile: Added a new regex to the Svc_Conf_l.cpp target - that will substitute for . This should solve a - portability problem with Windows NT... - - * ace/Malloc: Modified the sync() and protect() methods to use - void * rather than char *. This is now consistent with the OS - classes. - - * ace/OS: Changed things so that all the mmap() related OS - wrappers use void * in their external interface. Any - discrepancies between platforms are now dealt with internally, - in the implementation of the methods. Thanks to Chris Lahey - (clahey@ix.netcom.com) for suggesting this. - - * ace/Local_Name_Space: Modified how ACE_NS_String is used to - instantiate ACE_Map_Manager in order to work around problems - with AIX C++. Thanks to Chris Lahey (clahey@ix.netcom.com) for - reporting this. - - * ace/Synch.i: Added a definition for ACE_RW_Mutex::acquire(). - -Fri Dec 29 00:34:16 1995 Chris Lahey (clahey@ix.netcom.com) - - * ace/OS.h: Changed the #ifdef for ACE_HAS_COMPLEX_LOCKS to - ACE_HAS_COMPLEX_LOCK. - - Changed prototypes for ACE_OS:mprotect(), msync(), and munmap() - to accept ACE_MMAP_TYPE for their first arg. The AIX versions - of these calls all expect void * for their pointer variable. - Note that madvise() takes a caddr_t for its 1st arg and - therefore does not need to be altered. (See related changes in - OS.i and Mem_Map.i) - - Changed prototype for ACE_OS::getsockname(), arg3 to int * (See - related change in OS.i) - - Changed prototype for ACE_OS::setsockopt(), arg4 to const char * - and arg 5 to int (See related change in OS.i) - - * ace/OS.i: Changed function definition for ACE_OS::mprotect(), - msync(), and munmap() to accept ACE_MMAP_TYPE as their 1st arg. - - The following changes relate to the inconsistencies in the - sockets calls on AIX. I thought it would make more sense to - leave the public interfaces alone and then handle the - differences internally. That way it won't break any exisiting - code. - - Changed function definition for ACE_OS::getsockname() to accept - arg3 as int *. Made similar changes in ACE_OS::setsockopt() - - change definition to accept const char * for arg4 and int for - arg5. Add the following code at the start of the function: - Also made changes to ACE_OS::recvfrom() - change arg 6 back so it is - int *. - - * ace/Mem_Map.i: In ACE_Mem_Map::advise(), cast 1st arg to - ACE_OS:madvise() to (caddr_t). - - * ace/Memory_Pool.cpp: In ACE_MMAP_Memory_Pool::acquire(), make - cast to char * in the return statement. In - ACE_MMAP_Memory_Pool::handle_signal(), also make same cast in - the ACE_DEBUG statement near the top of the function. - - * ace/Reactor.cpp and ace/Reactor.h: ACE_Reactor::handler_i() - doesn't return properly if *eh != 0. Remove last "else" so - function always returns 0 if handler != 0. - - In ACE_Reactor::owner(), we need to change signature since - thread_t is not an integer. This has been changed to int - ACE_Reactor::owner(thread_t *t_id); The last two lines have been - changed to: *t_id = this->owner_; return 0; - - * ace/Synch.cpp: In ACE_Condition_Mutex::wait(), the call to - cond_timedwait() does not exist, but ACE_OS::cond_timedwait() - does exist. It takes the same arguments. - - * ace/Synch.h and ace/Synch_T.h: At the end of both files, before - the #define INLINE check for this define's existence to avoid - causing compilers to choke. - - * ace/Mem_Map.i: In ACE_Mem_Map::operator(), the return statement - looked very odd. In the assignment to addr, why is the ", 0" in - the statement? - -Fri Dec 29 00:34:16 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu) - - * ace: Fixed up many minor problems with the various types of - Shared_Memory wrappers. This mostly entailed changing from char - * to void * to be more consistent with the other parts of ACE. - In addition, I now only include the *.i files if __INLINE__ is - enabled. - - * ace/Memory_Pool.cpp (map_file): Fixed a minor bug by enabling - MAP_FIXED if we're trying to map a file using a fixed address. - -Thu Dec 28 18:39:16 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp: Finished implementing changes to the - ACE_Malloc stuff and the Local_Name_Space that Irfan had begun - last semester. - - * ace/SString.cpp: Added new optimizations to the assignment - operators of the ACE_[WCS]String classes to avoid - freeing/allocating memory if the current size is large enough. - - * ace/SString: Added copy constructors... - - * ace/Local_Name_Space.cpp: Modified the implementation of bind() - to avoid a race condition. - - * ace/Map_Manager.cpp (bind): Changed the semantics of bind() so - that callers can control whether or not INT_IDs are reassigned. - Also changed things so that callers can get back the existing - value if they choose not to reassign. - - * ace/SString.cpp: Removed the "P" (persistent) versions of all - these classes and merged them into the default versions. The - persistence is now determined by the type of allocator passed in - as a parameter to the constructor (or by using the "default" - allocator that is accessible via - ACE_Service_Config::allocator()). - - * ace/Map_Manager.cpp: Removed the "P" (persistent) versions of - all these classes and merged them into the default versions. - The persistence is now determined by the type of allocator - passed in as a parameter to the constructor (or by using the - "default" allocator that is accessible via - ACE_Service_Config::allocator()). - - * ace/Malloc_T: Modified the bind() algorithm so that it will - allow the caller to determine whether duplicates are allowed or - not... Also changed things so that callers can get back the - existing value if they choose not to allow duplicates. Irfan - questions the sanity of this... ;-) - - * ace/Synch: To be consistent, added acquire_write and - acquire_read methods to ACE_Mutex. These are useful for cases - where we are going to be parameterizing classes like ACE_Malloc - with some type of mutex wrapper (e.g., ACE_RW_Mutex, ACE_Mutex). - - * ace/Malloc_T.cpp (calloc): Added a new method called "calloc" - that will not only allocate the memory dynamically, but will - also give it an initial value (e.g., '\0'). - -Thu Dec 28 01:10:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i: Modified the implementation of the TLI methods so that - they are conditionally compiled away if the platform doesn't - support TLI... Thanks to Neil Cohen for pointing out the need - for this... - - * ace/OS.i: Modified the implementation of dlopen() and dlsym() to - account for limitations with SunOS 4.x... - - * ace/Service_Repository.cpp: Modified this class to use the - ACE_OS::dlclose method. - - * ace/Parse_Node.cpp: Modified this class to use the - ACE_OS::dlopen and ACE_OS::dlsym methods. - -Wed Dec 27 23:25:03 1995 Jesper S. M|ller (stophph@diku.dk) - - * Added appropriate flags in OS.h for successful inclusion of - several header files, such as Malloc.h and friends. Also added - mprotect to ACE_OS for Win32 to avoid linker errors. - - * Added a return value (from map_file) to - ACE_MMAP_Memory_Pool::handle_signal. The compiler was - complaining. Likewise on - ACE_MMAP_Memory_Pool::commit_backing_store (there 0 seemed like - the correct off-the-end return value). - - * Removed include of some SV semaphore file, if not needed in - Malloc.h. Worse for Memory_Pool.h, since the SV_Semaphore - wrappers consistently differ completely from the other - synchronization routines. I guess we'll need some variant of - ACE_Process_Semaphore that takes an integer as a key instead of - a string, and does not perform automatic init/destroy. - - * Also upgraded fd's from int to ACE_HANDLEs and changes -1 to - ACE_INVALID_HANDLE where appropriate. - - * By help of aggresive preprocessor conditionals, made Handle_Set - work with Win32. There is a fd_set abstraction with appropriate - FD_xxx macros for WinSock, and it requires no sync'ing. The - Handle_Set_Iterator should also work. The good looks of - Handle_Set was impaired, though. Right now, the trigger is the - ACE_WIN32 flag, although it should be something like - ACE_FD_SET_USES_BITS for the unix approach, or like - ACE_FD_SET_USES_VECTOR for the WinSock approach. - - * Reactor almost compiles now, but not quite: Handlers are - addressed by fd, this is no longer possible - what a mess - we - need to step through the handle indices somehow. This will - likely get into some nasty quadratic complexities when iterating - the handles to find the event_handler for each file - handle. Mabye we can circumvent this with a hash table lookup - for those opaque handles. - - * There was a problem with the Svc_Conf.l.cpp and the - Svc_Conf.y.cpp and the extremely lame MSVC++ 2.0. I had to - rename them to Svc_Conf_y.cpp, etc. Awful! - - * Added code to inquire the 'host' name for Win32 in the ACE_Client_Id - class. Another candidate for ACE_OS. - - * About 60 or so ACE .cpp files compile now, which reminds me that - I'll be working on some precompiled header scheme soon, since it - takes for ever and ever, even on my 32meg system with pretty - good SCSI drives. Mabye it's because I'm only running a 66MHz - i486 DX2 (yawn). - - * Dozens of other changes have been made to various files, all - pertaining to int vs. ACE_HANDLE. In Service_Manager.h, a signal - number was an ACE_HANDLE, but just close by, some fd's were - ints. Fixed that, too. - -Sat Dec 23 14:15:16 1995 Jesper S. M|ller (stophph@diku.dk) - - * I've also grouped the .i and .cpp functions by class, - and #if'ed the sbrk and SysV pools out, since - Win32 cannot support those. - - * Added 'inline' to day accessor functions in Date_Time. - - * Two things that missed me in Trace.cpp: - 1) The inclusion order was so that I couldn't - build Trace.o, since it didn't know the MALLOC_HOOK thing. - I moved the #include of Trace.h down below that of ACE.h. - 2) The declaration and definition of the ACE_Trace constructor - differed by a const, which I added. - 3) When linking, multiple symbols were found for some - OS calls like mutex_init, corresponding to the larger - OS Win32 functions. I has ACE_INLINED_OS_CALLS off, - so sometimes the OS functions were inlined, sometimes - not. - I disabled the inline hack in Trace.cpp for WIN32 for now. - This seemed to resolve matters. - - * There was a major problem in OS.i, where Synch.h was needed for - mutex support (in conjunction with TSS info linked list). I - chose to make thr_keycreate and some others non-inlined. - - * More 'is-it-a-handle-or-success' confusion in SOCK*.* Changed - ACE_SOCK_Dgram to use int status. Changed ACE_SOCK_CODgram to - use int status. Changed ACE_LSOCK to use int status. Also - changed a few derived classes - -Fri Dec 22 14:03:15 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu) - - * ace/OS.h: Added a new type for rwlock_t for platforms that don't - support threading... Thanks to Neil Cohen for reporting this. - - * ace: Merged in all of Jesper's changes for NT and Chris Lahey's - changes for AIX. - - * ace: Merged tli.h into OS.h to avoid name conflicts on Win32. - - * Fixed duplicated names where case is the only difference. - ace/thread.cpp - ace/Thread.cpp - ace/TLI.h - ace/tli.h - apps/Token_Server/mutex_example/simple_token_client.cpp - apps/Token_Server/mutex_example/Simple_Token_Client.cpp - apps/Token_Server/script_example/scripting_token_client.cpp - apps/Token_Server/script_example/Scripting_Token_Client.cpp - tests/IPC_SAP/SOCK_SAP/FD-client.cpp - tests/IPC_SAP/SOCK_SAP/fd-client.cpp - tests/IPC_SAP/SOCK_SAP/FD-server.cpp - tests/IPC_SAP/SOCK_SAP/fd-server.cpp - -Wed Dec 20 22:26:24 1995 Jesper S. M|ller (stophph@diku.dk) - - * FIFO.cpp: One last comparison of 'open' return status where and - ACE_INVALID_HANDLE should be changed to -1. - - * One more last wrong comparison in FIFO_Recv_Msg.cpp. - (Never say never again!) - - * Put an appropriate conditional around the inclusion of - Handle_Set.h for ACE_WIN32 (for now). - - * Introduced a few backslashes in the macros of Dump.h that were - somehow left out... Had to add a really stupid constructor for - struct Tuple. I haven't a clue why MSVC++ wants this! Replaced - 'return ACE_ODB;' with 'return ACE_ODB::instance_;' in the - Singleton access function. - - * Added a constructor for ACE_ODB. It may be private, but it still - needs to be defined... - - * Stack and Set compiles fine for Win32 (not surprisingly) - - * If'ed out the guts of ACE_IPC_SAP enable/disable calls for - Win32, since async IO doesn't work that way on there. - - * Event_Handler now uses ACE_INVALID_HANDLE for default args. - - * SOCK compiles except for the ACE_SOCKET <> ACE_HANDLE - problem. Refer to issue #3 above. - - * We're swamping the ace directory with .mak files. I used the - winntace.mak file, which is compilable and linkable. - -Thu Dec 21 15:37:42 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu) - - * ace: Greatly simplified the include files so that (1) compilers - are faster and (2) the ACE_Trace mechanism works correctly. - - * ace/Trace: Modified the ACE_Trace_TSS class so that it is no - longer a template. This was overkill since we know the type - head of time (i.e., ACE_Trace_State). - - * ace: Added a number of new changes to ACE to make things work on - AIX. Thanks to Chris Lahey for these - changes. - - * ace/Thread_Manager.cpp: Removed the get_max_thr_id() method - since it was not portable to NT or POSIX pthreads. Nothing in - ACE depended on it anyway... - - * ace/OS: Added a new static data member called NULL_thread that - is a "zero'd" out thread id. This is necessary to deal with the - POSIX pthread implementation of a thread id, which is not always - implemented as a number... By using this new approach, all the - special-case code in Synch.cpp disappears... - - * ace/OS: Added a new method to class ACE_OS called thr_equal() - that masks the differences between comparing thread ids using - the threading libraries. This simplifies the code in Synch.cpp - and Reactor.cpp. - - * ace: Updated all uses of mmap() to use the new ACE_MMAP_TYPE - typedef. This deals with the fact that different versions of - UNIX define mmap() inconsistently (e.g., some use void * and - some use char *...). - - * ace: Removed testconfig.h and merged all of those #defines into - OS.h. This centralizes changes in one place and also eliminates - the need for ./apps and ./tests to include extraneous files... - - * ace/testconfig.h: Changed all uses of 0666 to ACE_DEFAULT_PERMS. - Also, removed all PERMS enums and substituted ACE_DEFAULT_PERMS - instead. - -Wed Dec 20 17:29:55 1995 Tim H. Harrison (harrison@merengue.cs.wustl.edu) - - * Rewrote the Token deadlock detection algorithm. It now performs - "best-effort" detection of deadlock for remote acquires and - complete deadlock detection for local acquires. - -Wed Dec 20 02:37:39 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.h: The select() system call has its own include file on - AIX: . We can wrap the #include with a variable - #if defined (ACE_HAS_SELECT_H). - - * include/makeinclude/platform_aix.GNU: Added new support for AIX. - Thanks to Chris Lahey for these changes. - Added a number of other minor changes, as well. - - * ace: Made a bunch of minor changes to get ACE to compile on - SunOS4.x, Linux, and SGI. - - * ace/config-linux.h: added ACE_HAS_MSG (thanks to Neil Cohen - for this). - - * ace/OS.h: Conditionally compile for ACE_HAS_UTIME for - . - - * Released an alpha version of ACE containing the new Windows NT - port. - - * Integrated and tested all the new Windows NT changes in class - ACE_OS, as well as the Synch* and Threads* classes. We're now - able to build Jesper's win32_test.cpp file in ./ace! A complete - NT port should be just around the corner... - -Tue Dec 19 17:59:04 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Move the remaining contents of sysincludes.h into ACE.h. - There is no more sysincludes.h (at long last!). - - * ace: Rearranged things so that the OS.[hi] files contain all the - OS-specific #defines and #includes that were previously in - sysincludes.h. - - * ace: Renamed the ACE_Misc class to class ACE, which is more - representative of what it does. - - * INSTALL: updated the installation instructions to explain how - the new directory structure works. Thanks to Neil Cohen for - pointing out the discrepancy beteen the source and the - documentation ;-). - - * Reorganized (by flattening) the ACE library directory structure - to make it work for both Windows NT and UNIX. Note that Windows - NT does not have symbolic links, so the old way of doing things - didn't port... The consequences of these changes is there is - now a single directory called $WRAPPER_ROOT/ace that contains - the *.[hi] and *.cpp source files. This is also where the - libACE.a and libACE.so libraries are built by default. Also, - note that the suffix used by ACE has been changed from *.C to - *.cpp to deal with the lame Visual C++ compiler... - -Tue Dec 19 01:26:54 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu) - - * tests/ASX/Event_Server/Event_Server/Supplier_Router.cpp (put): - Fixed up a problem with the Event_Server. Somewhere along the - way it stopped being concurrent! The new version fixes this. - Thanks to Alex V Maclinvosky for - noticing this... - - * Added a billion new changes to class OS to integrate the Windows - NT port with the rest of ACE. We are getting very close... - -Mon Dec 18 12:45:13 1995 Jesper S. Møller (stophph@diku.dk) - - * Major problems in the IPC_SAP. First, I detected that some open - calls returned handles, some returned -1 or 0. For instance - ACE_SOCK has a constructor, that calls this->open and expects a - handle (which it even sets as the current handle - value!). Unfortunately, the return from open is either 0 or -1, - depending on how well the open went. ACE_HANDLE being - typedef'ed to a void* really reveals some problems! I have - solved the problem for the FIFO*.* family and for SOCK.* - -Mon Dec 18 12:43:46 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu) - - * tests/Reactor/CODgram/CODgram.C (main): Fixed a bug in main() - caused by initializing the Reactor twice. Thanks to Aurelio - Nocerino for reporting - this. - - * libsrc/Service_Configurator/Service_Config.C Added a new - constructor to ACE_Service_Config that can be used to initialize - internal variables without performing a full configuration. - -Mon Dec 18 01:22:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Service_Config: renamed tokens.h to sc_tokens.h to avoid - file name collision on Win32. Thanks to Jesper S. M|ller - for reporting this. - - * tests/Mem_Map/IO_Test: renamed io_test.C to test_io.C to avoid - file name collision on Win32. Thanks to Jesper S. M|ller - for reporting this. - - * libsrc/Misc/OS: Implemented condition variables for Windows NT. - -Sun Dec 17 21:23:32 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu) - - * libsrc/Misc/Trace: Fixed up the ACE_Trace class so that it - doesn't include any calls that will improperly trigger infinite - recursion! This allows the ACE library to be traced completely. - -Sat Dec 16 19:12:37 1995 Jesper S. Møller (stophph@diku.dk) - - * Changes to OS.*: - * Added conditionals to the OS.h for Win32, for the special ACE/Win32 - thr_destroy_tss(), which is automatic for Solaris. - * Changed declarations of thr_create, thr_suspend, thr_continue, - thr_join and thr_[gs]etprio to use hthread_t instead of thread_t. - * Changed return type of OS::open from int to ACE_HANDLE. - * Provided non-obtrusive handling of thr_handle in OS::thr_create - for non-Win32. - * Copied ACE::writev to OS::writev for Win32. Something similar - should happen for other systems... - - * Changes to Thread.*: - * Changed join, suspend and continue to take handles. - * Added thread handle return address to spawn. - - * Changes to Thread_Manager.*: - * Added thread handles to the Thread_Descriptor structure. - * Modified insert_thr and append_thr functions to also take - handles. - * Made ACE_Thread_Descriptor::Thread_State (a enum) public - so Thread_Manager::append_thr could use it as a formal - parameter (I suspect this is a bug in MSVC++). - * Changes the various flavours of suspend, continue, etc. to - use handles instead of id's. Keep in mind that none of this - is destructive for Unix, but vital for Win32. - * There is still a problem with ACE_Thread_Control registering - itself with the Thread_Manager - the thread does not have means - of finding it's own handle. In this particular case, we could - have the thread duplicate it's pseudohandle into a real one, - and pass that one along. I'd really, really, really rather not - have to maintain a thread id->handle mapping myself; It would - slow down thread manipulation and give some troublesome memory - overhead. - - * Changes to Log_Msg.*: - * OS::getpid instead of ::getpid. - - * Changes to Misc.*: - * Sections inappropriate for Win32 #if'd out... - * Provided naive timestamp function (No date) for Win32. - - * Changes to IPC_SAP.*: - * Uses OS::ioctl instead of ::ioctl - * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE - - * Changes to FIFO.*, : - * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE - - * Changes to FIFO_Send.*: - * open now returns an int insted of an ACE_HANDLE. - * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE - - * Changes to FIFO_Send_Msg.*: - * open now returns an int insted of an ACE_HANDLE. - * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE - * Uses OS::writev instead of ::writev - - * Changes to FIFO_Recv.*: - * open now returns an int insted of an ACE_HANDLE. - * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE - - * Changes to FIFO_Recv_Msg.*: - * open now returns an int insted of an ACE_HANDLE. - * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE - - * Changes to sysincludes.h: - * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE - -Sat Dec 16 12:29:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/Addr/INET_Addr.C: Changed the implementation so - that the reentrant versions of the library calls are always used - (class OS sorts this all out). This reduces the amount of - clutter in the code. - - * libsrc/Threads/Synch: Added a new implementation of - "readers/writer" locks for both Windows NT and POSIX pthreads. - By default, these threads packages don't have this feature. - - * libsrc/Threads/Synch: Added a new macro called - ACE_SYNCH_ERROR_RETURN that greatly simplifies the definition of - the synchronization wrappers. - - * include/ace/sysincludes.h: Removed the pthreads_map.h file and - integrated this into sysincludes.h. - -Fri Dec 15 02:39:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Misc/OS.i: Finished updating class OS so that it will - compile correctly for OS platforms that don't support threads, - as well as platforms that support POSIX Pthreads vs. Solaris - threads, etc. - - * libsrc/Misc/OS: integrated Jesper S. M|ller - support for POSIX regular expressions (e.g., compile() and - step()) and sysinfo() into ACE. - - * Integrated and tested all of Irfan's changes to ACE to support - the new persistence Name_Server. This added some new classes in - various places that use the ACE_Allocator. - -Thu Dec 14 00:23:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/ASX/Event_Server/Event_Server: Fixed an "off by 1" bug in - the declaration of char *argv[3] in the open() methods of - Supplier_Router.C and Consumer_Router.C. Thanks to the "ever - dissatisfied" Alex V Maclinvosky - for reporting this. - - * libsrc/Service_Configurator/Service_Config: Added a new - "Singleton" access point for the global ACE_Allocator. - - * libsrc/Naming/Name_Options.C (parse_args): Made it possible to - change the name of the process on the command line via the -P - option. The default is still to use argv[0] as the process - name. - - * include/ace/testconfig.h (ACE_DEFAULT_GLOBALNAME): Changed the - value from "/localnames" to "/globalnames" to avoid a conflict. - - * libsrc/Misc/SString.C: Added Irfan's new "persistent" string - mechanisms that use the ACE_Allocator_Manager. We may - eventually update the existing SS* stuff to use this. - - * Merged in Jesper S. M|ller updates for Windows - NT. - - * include/ace/Malloc.h: Added a forward declaration for - ACE_Malloc_Iterator right before ACE_Malloc. Thanks to Antonio - Tortorici for reporting it. - - * libsrc/Threads/Synch_T.h: Fixed a small typo in - ACE_Null_Condition. Thanks to Antonio Tortorici - for reporting it. - - * include: Added new config-linux.h and platform_macros.GNU config - files for Linux. Thanks to Timothy Newell - <910430n@dragon.acadiau.ca> for this stuff. - -Wed Dec 13 23:08:11 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/Addr/INET_Addr.C (set): Fixed a small typo in the - ACE_INET_Addr::set (const char port_name[], ACE_UINT32 - inet_address) method where the test should be != rather than == - 0. Thanks to Bill Lear (rael@anarchy.cybercom.net) for - reporting this. - -Sun Dec 10 12:23:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Service_Configurator/Service_Record.C (init): Fixed a - small problem where a NULL pointer was being returned if a user - passes a non-existent config file (using the -f option) to - ACE_Service_Config::open(). Thanks to Dieter Quehl - (quehl@erlh.siemens.de) for noticing this. - - * libsrc/Log_Msg/Log_Msg.C (log): added a new option (%T) that - causes the current timestamp to be inserted into the log msg. - Thanks to Dieter Quehl (quehl@erlh.siemens.de) for suggesting - this. - - * libsrc/Misc/Misc: Added a new timestamp() method that 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. - - * tests/Shared_Malloc: Added Irfan Pyarali new - test program that exercises the new features of ACE_Malloc that - are described in the following bullet. - - * libsrc/Shared_Malloc: Added Irfan Pyarali - cool new versions of ACE_Malloc and ACE_MMAP_Memory_Pool. These - new versions provide the following enhancements: - - 1. Persistence -- via the sync() method - 2. Protection -- via the prot() method - 3. Named malloc chunks -- via bind(), find(), unbind(). - 4. Named iteration -- via ACE_Malloc_Iterator - -Thu Dec 7 00:31:26 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Signal.C: Replaced ACE_Guard with ACE_TSS_Guard - to ensure that locks are correctly released even if - Event_Handler::handle_signal() callbacks invoke - ACE_Thread::exit(). Thanks to Detlef Becker - (beckerd@erlh.siemens.de) for suggesting this. - - * libsrc/Threads/Synch_T: Used inheritance to factor out the - shared code between ACE_Guard, ACE_Read_Guard, and - ACE_Write_Guard in order to reduce unnecessary duplication. - - * libsrc/Threads/Synch_T: Changed the implementation of ACE_Guard - to keep a pointer to the LOCK rather than a reference. This - makes the code more flexible and aids in factorization. - - * libsrc/Threads/Synch_T: Changed the implementation of ACE_Guard - to incorporate ACE_Try_Guard semantics. This reduces the amount - of classes and duplicate code in ACE. - -Wed Dec 6 21:36:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/ace/Trace: Changed the type of the string passed into - ACE_Trace from char * to const char *. - - * libsrc/Reactor/Reactor.C: Had forgotten to initialize the - initialized_ and requeue_position_ members appropriately in the - constructor of the ACE_Reactor if ACE_MT_SAFE is *disabled*. - Thanks to Mark Zusman for pointing - this out. - - * libsrc/Threads/Synch_T.C: changed the order of some methods so - they would be properly defined if ACE_HAS_THREADS and - ACE_HAS_THREAD_SPECIFIC are *not* enabled. This should fix - remaining problems with ACE on SunOS 4 and SGI. Thanks to - Aniruddha Gokhale for noticing this. - -Tue Dec 5 01:06:14 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Changed things around so that the Name_Server and Token_Server - client interfaces are include in libACE. - - * libsrc/Shared_Malloc: added a const char *pool_name to - ACE_Malloc::ACE_Malloc. This is passed into the constructor of - the MEMORY_POOL to make it easier to dynamically name memory - pools. - -Mon Dec 4 21:20:28 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Synch_T: Modified the place that the - ACE_Thread_Specific methods are defined so that they will be - compiled correctly for platforms without threads or - thread-specific storage. - -Sun Dec 3 23:04:41 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/ASX/Message_Block: Modified clone() so that it takes an - extra parameter that specifies which flags SHOULD NOT BE - TRANSFERED to the clone. This defaults to - ACE_Message_Block::DONT_DELETE. Thanks to Alex V Maclinvosky - for suggesting this. - -Sun Dec 3 17:43:11 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * The number of files in the Token library has been reduced. As a - result, many of the files have been renamed. Also, the .i files - have been purged of relatively large methods (these have been - moved to the .C files.) Lastly, most uses of dynamic memory - allocation have been removed from the library. This was - important to reduce the amount of serialization in threaded - applications caused by the dynamic allocation. - -Sun Dec 3 17:29:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Synch: Modified all the synchronization classes - so that they disallow assignment and initialization! - - * libsrc/Threads/Synch: Moved the ACE_Thread_Specific class from - its own files into the Threads/Synch.[Chi] files. This should - eliminate a set of horrible interdependencies among files. - -Sat Dec 2 16:07:40 1995 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu) - - * libsrc/Misc/SString.C (ACE_CString): Added a destructor to - CString. Thanks to Tim for noticing this... - -Tue Nov 28 17:25:02 1995 Prashant Jain (pjain@tango.cs.wustl.edu) - - * apps/Name_Server/client/lib/Name_Proxy: Changed Name_Proxy to - inherit from ACE_Service_Object rather than ACE_Event_Handler. - This will allow a Name_Proxy to be dynamically linked into an - application via the svc.conf file. - - * apps/Name_Server/client/lib/Name_Proxy: Added new methods - init, fini, and info. - -Tue Nov 28 00:56:52 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/Threads/test_thread_specific.C: Added code to test the new - ACE_TSS_Guard class... - - * libsrc/Threads/Synch_T: Added the new ACE_TSS_Guard class. This - class is similar to the existing ACE_Guard, except that it uses - thread-specific storage to ensure locks are released even if a - thread exits via thr_exit()! - -Mon Nov 27 20:39:58 1995 Prashant Jain (pjain@tango.cs.wustl.edu) - - * apps/Name_Server/{client,server}/tests: Added new tests to - exercise the key features of the name server. - - * apps/Name_Server/client/lib: Simplified access to the nameserver - database. For example, all the network-byte ordering code was - moved out of the Local and Remote Name_Spaces. This code is no - longer necessary since we'll be providing a different means to - get portable name service repositories via a tool that extracts - the "key/value/type" tuples and stores them in a - machine-independent format. The result of this change is that - the Name_Server code is much easier to understand and modify. - - * apps/Name_Server/client/lib: Split local and remote name spaces - into two classes to simplify usage. This approach uses the - Bridge pattern to have a baseclass called Binding and then have - subclasses called Local_Name_Space and Remote_Name_Space. The - constructor of Naming_Context then allocates the right one - (i.e., it serves as a factory). This approach remove all the - switch statements in the code and makes it much easier to use - and extend. - - * apps/Name_Server: updated all the Name_Server components to - use ACE naming conventions. - - * apps/Name_Server/client/lib: Changed ACE_Name_Options to use the - Singleton pattern rather than the global variable... - -Mon Nov 27 00:47:32 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Shared_Malloc/Malloc.h: Named the previously anonymous - struct inside of ACE_Malloc_Header to be - ACE_Malloc_Control_Block in order to keep the OSE tools working. - Thanks to Karlheinz for reporting this. - - * libsrc/Threads/Synch: Fixed a major bug in the ACE_Semaphore - wrappers. Apparently, these had slipped between the cracks and - were not correctly mapping onto the ACE return value scheme - where -1 corresponds to an error with errno set to indicate the - type of error. - - * tests: Cleaned up some files that mistakenly were defining - LSOCK* objects even for platforms (i.e., Linux) that don't - support them. Thanks to Timothy Newell - <910430n@dragon.acadiau.ca> for noticing this. - -Sun Nov 26 12:42:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Shared_Malloc/Malloc: Added a new accessor method - (memory_pool) that returns a reference to the MEMORY_POOL object - used to configure ACE_Malloc. - - * libsrc/Shared_Malloc/Malloc: Changed the constructor of - ACE_Malloc to take advantage of the new init_release method on - all the ACE_*_Memory_Pools. - - * libsrc/Shared_Malloc/Memory_Pool: Added a new method to all the - ACE_*_Memory_Pool classes called "init_release". This is called - when ACE_Malloc finishes initializing the dynamic memory - manager. This method is necessary in order to initialize the - ACE_MMAP_Memory_Pool correctly if there are multiple processes - that try to initialize ACE_Malloc simultaneously. In addition, - also added an ACE_SV_Semaphore_Complex to the - ACE_MMAP_Memory_Pool in order to serialize initialization - correctly. - - * libsrc/Shared_Malloc/Memory_Pool: Added sync() and protect() - methods to all of the ACE_*_Memory_Pool classes in order to - support a uniform interface for use with the "robust memory" - mechanism we're building. - - * libsrc/Mem_Map/Mem_Map: Added two new "protect" methods to - ACE_Map_Manager in order to allow clients to change the - protection of memory-mapped regions. - - * libsrc/ASX/Map_Manager: Changed Map_Manager methods to use - "const" for EXT_ID and INT_ID at request of Prashant Jain - (pjain@cs.wustl.edu). - - * libsrc/Shared_Malloc/Memory_Pool: Revised the - ACE_Shared_Memory_Pool so that it would actually work - correctly... This code hadn't been reviewed carefully before - and there were some bugs... - - * libsrc/Shared_Malloc/Malloc: added "INLINE" to the - ACE_Allocator_Adapter components. - - * libsrc/Shared_Malloc/Memory_Pool: Greatly simplified and - consolidated the mmap(2) code for ACE_MMAP_Memory_Pool. - - * libsrc/Shared_Malloc/Memory_Pool.i (release): Removed the - vestigal this->mmap_.remove() call in release(), but added the - appropriate code to close the fd and unmap the region. Thanks - to Irfan Pyarali for noticing this. - -Sat Nov 25 18:12:55 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/CORBA/CORBA_Handler.C (activate_service): - Modified activate_service so that - - if (service_name != 0 - && this->register_service (service_name, marker_name, - service_location) == -1) - return -1; - - is changed to - - if (service_name != 0 && service_location != 0 - && this->register_service (service_name, marker_name, - service_location) == -1) - return -1; - - Irfan Pyarali requested this. - -Sat Nov 25 16:41:15 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu) - - * libsrc/Misc/Set: Changed all the find() and size() methods to - be const member functions. Thanks to Irfan Pyarali - (ip1@cec.wustl.edu) for requesting this. - -Fri Nov 24 02:51:59 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Reactor.C: Fixed the Reactor so that if we're - compiling with DEADLOCK_DETECTION enabled it will create a - uniquely named mutex by stringifying "this". - -Thu Nov 23 21:45:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP: Changed - - * libsrc/Service_Configurator/Service_Config: Added three new - methods to allow programmers to set the process-wide Singletons - for Reactor, Service_Repository, and Thread_Manager. - -Tue Nov 21 01:59:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Mem_Map/Mem_Map.C: Fixed a stupid typo in map_it() that - was causing problems due to unsigned arithmetic semantics... - This should make the file_reverse.C Mem_Map tests work correctly - now... Thanks to Bill Lear for - noticing the problem. - - * tests/Mem_Map/IO-tests/io_test.C (parse_args): Fixed a - classic C/C++ braino in io_test.C: - - The for loop in parse_args() - - for (int c; (c = get_opt () != -1); ) - - should be - - for (int c; ((c = get_opt ()) != -1); ) - - How embarrassing. Maybe Bertrand Meyer is right -- C++ is too - dangerous for its own good... ;-). Thanks to Bill Lear - for finding this! - - * Removed all traces of ACE_Condition from the library. - This should make life much easier for compilers (like G++) that - can't grok templates very well... - - * libsrc/Threads/Thread_Specific.C (ts_object): Added a new method - that allows you to simultaneously "test and set" thread-specific - data! This is used to support a neat new trick that ensures - locks are released even if a thr_exit() is called! - - * libsrc/Service_Configurator/Service_Repository: Removed the - Recursive_Mutex from Service_Repository and replaced it with a - regular (non-recursive) mutex. Had to rewrite the code a bit so - that it wouldn't try to call internal methods that acquired the - mutex (this leads to instant deadlock!) - -Mon Nov 20 01:05:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Synch: Finally gave in and accepted the fact that - GNU G++ is a horrible, horrible blight on mankind... Changed - the internals of Synch.[Chi] to completely remove any - dependencies on templates. I hope this fixes some portability - problems deep in the libraries... Added several new classes to - reflect this change: ACE_Mutex_Guard, ACE_Mutex_Condition, and - ACE_Recursive_Mutex. - - * libsrc/IPC_SAP/UPIPE_SAP/UPIPE_Acceptor.C (ACE_UPIPE_Acceptor): - Fixed a stupid typo that was causing the constructor of - UPIPE_Acceptor to become inlined!!! - - * apps/Gateway/Gateway: Fixed up the Makefile so that the gatewayd - executable would compile with G++. - - * include/ace/config-irix5.3-sgic++.h: Changed the SGI config.h - file so that it uses select() rather than poll() by default. - The select() version of the Reactor is implemented more - efficiently in ACE... - - * include: Added config files for AIX courtesy of Byron Walton - . - - * libsrc/Reactor/Signal.C: #ifdef'd out some code in Signal.[hC] - that was causing problems for the HPUX C++ compiler. What a - *horrible* compiler! - - * libsrc/Reactor/Event_Handler.h: Added two new methods to - ACE_Event_Handler: get_priority() and set_priority(). These - will be used to control the behavior of the ACE_Reactor's - dispatching. This also required added a new data member to - ACE_Event_Handler that stores the priority (which defaults to - MIN_PRIORITY). - - * libsrc/Misc/Stack.C (enqueue): Added a new class called - ACE_Unbounded_Queue. This is required for Tim's Token_Server - connection repository stuff... - - * libsrc/CORBA/CORBA_Handler.C: Added new support to both the - single-threaded and multi-threaded versions of CORBA_Handler so - that it will now suspend/resume the services associated with a - CORBA_Handler. - - * libsrc/CORBA/CORBA_Handler.C (ACE_MT_CORBA_Handler): Updated the - constructor to use the associated Thread_Manager to spawn a new - thread. This will allow the suspend() and resume() methods to - atomically resume and suspend the daemon thread and its event - handler. - - * libsrc/Threads/Synch.h: Fixed up the order of #includes to solve - problems with circular header dependencies! - - * Had to add zillions of little changes to avoid problems with - circular includes for G++... - - * tests/ASX/Event_Server/Event_Server/Peer_Router.C (bind_peer): - Fixed a typo that had been dormant for ages due to C++'s very - late binding of templates... G++ picked this right up! - -Sun Nov 19 11:55:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Signal: Replaced the static HANDLER_SET stuff - withing ACE_Sig_Handlers with a different implementation using - ACE_Fixed_Set. This should fix nasty problems with static - variables on HP/UX... - - * Fixed the entire library so that all occurrences of ace_log_msg - are changed to use the ACE_LOG_MSG macro. This macro has magic - properties that should greatly simplify the effort required to - compile ACE robustly on platforms with lame C++ compilers... - - * libsrc/Log_Msg/Log_Msg: Finally got my act together with respect - to thread-specific data and the ACE_Log_Msg class. The new - version can be conditionally compiled such that it won't use the - ACE_Thread_Specific smart-pointer wrapper mechanism unless the - platform supports thread-specific storage and threads. This - will make life much easier for lame C++ compilers that can't - handle static data member templates correctly... - - * apps/Name_Server/{client,server}/lib/Makefile (LIBS): Added a - reference to -lACE in the Makefiles of the ./lib directories in - order to get GCC to work correctly... - - * Added a bunch of fixes courtesy of Bill Lear - to make ACE compile more cleanly - with GNU GCC 2.7.x. - -Sat Nov 18 11:27:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Misc/Trace.C: Fixed up the ACE_Trace class so that it - will compile better on platforms that don't support - thread-specific storage. The trick was to make a new Singleton - called ACE_Nest_Depth and then conditionally compile it - according to whether the platform supports thread-specific data - or not! - - * include/makeinclude/platform_sunos5_g++.GNU: Added the new - config file that should allow ACE to build correctly with GCC - 2.7.x. Todd L. Montgomery deserves a big - round of applause for getting this stuff to work! If I had a - budget, I'd give him a raise ;-) - - * libsrc/Misc/Set.C (remove): Tightened up the semantics of all - the *Set::remove() methods so that they return 1 if they - succeed, 0 if the item isn't in the set, and -1 if they fail. - Thanks to Tim Harrison for noticing the inconsistencies. - -Fri Nov 17 01:34:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Logger/Reactor_Logger: Fixed up this example app so that it - would compile with GNU G++ correctly. There was a problem with - the order of include files! Thanks to Todd L. Montgomery - for reporting this. - - * libsrc/ASX/Module.C (writer): Fixed ACE_READER so that it is - properly qualified with ACE_Task_Flags::ACE_READER. Thanks to - Neil Cohen (nbc@metsci.com) for finding this! - - * apps/Gateway/Gateway/Routing_Entry: Replaced ACE_Fixed_Set with - ACE_Unbounded_Set to get around the seemingly endless problems - with HP/UX... - - * libsrc/Misc/Set: Fixed a braino in ACE_Unbounded_Set, where I'd - forgotten to define cur_size_. Thanks to Todd L. Montgomery - for reporting this. - - * libsrc/Connection/Acceptor.C: Change the #undefs of the - shorthand names PA_AC_1, PA_AC_2, and PA_AD in - libsrc/Connection/Acceptor.C to PR_AC_1, PR_AC_2, and PR_AD - (same as in Connector.C and Strategies.C). Thanks to - Dieter Quehl for reporting this. - -Thu Nov 16 02:14:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Misc/Trace: Fixed the ACE_Trace stuff by making the - "nesting_indent_" a static data member. This will undoubtedly - break some lame C++ compilers, but it's easy enough to remove - this stuff via conditional compilation using the ACE_NTRACE - #define in ./include/ace/config.h. - - * libsrc/Threads/Thread_Specific.C (cleanup): Under no - circumstances should ACE_Thread_Specific be allowed to - called ACE_Trace. Otherwise, chaos will result! - - * apps/Name_Server/{client,server}/tests/Makefile: Switched the - order of the -lACE and -lName* so that -lACE came *afterwards* - in order for the SGI linker to pick up the symbols correctly. - - * libsrc/Reactor/Signal: I'd accidentally put the "dump" methods - in the *.i file rather than the *.C file. This was causing - problems for G++. - - * libsrc/ASX/Task: Changed all "Q_" prefixes to "ACE_" prefixes in - order to work around a bug with HP/UX... - - * Recompiled everything on SunOS 4.x with SunC++ 4.0.1. It seems - to work! - -Thu Nov 16 18:05:03 1995 Tim H. Harrison (harrison@tango.cs.wustl.edu) - - * I moved around some class declarations so that g++ can properly - instantiate templates for ACE_Token_Collection and - ACE_Token_Manager. - -Wed Nov 15 00:26:40 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * The token library should now compile on platforms which do not - support threads. All token components will be compiled into the - library, but use null mutexes and condition variables. The - remote mutex library shall run properly on single-threaded - platforms, so it compiles as usual. - -Wed Nov 15 01:05:38 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Fixed a bunch of minor problems with the SGI port. Things - should work now on IRIX 5.3! - - * man/man3: Completely regenerated all the manual pages to - reflect all the recent updates. - - * libsrc: Added ACE_TRACE macros to every single method in ACE! - This will help with debugging... - -Wed Nov 15 00:26:40 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * The token library should now compile on platforms which do not - support threads. All token components will be compiled into the - library, but use null mutexes and condition variables. The - remote mutex library shall run properly on single-threaded - platforms, so it compiles as usual. - -Tue Nov 14 01:58:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/CORBA: Added a new test to illustrate the - ACE_MT_CORBA_Handler. - - * libsrc/ASX/Task.C (ACE_Task_Exit): Fixed a niggling problem with - ACE_Task_Exit. Originally, if a thread exited via an implicit - ACE_Thread::exit() (i.e., "falling off the end of the - ACE_Task::svc_run function) then the ACE_Thread_Control on the - thread stack would automatically unregister the thread from the - ACE_Thread_Manager. However, this did *not* occur if a thread - explicitly called ACE_Thread::exit() since in that case the - destructor for ACE_Thread_Control never got called. The - solution to this is a trivial change to ACE_Task_Exit, which now - maintains an instance of ACE_Thread_Control internally, which - will automatically be released when the thread-specific - thread-exit-hook destructor gets called to cleanup upon thread - exit. Since this happens regardless of whether the thread - terminates implicitly or explicitly the ACE_Thread_Manager will - always be able to clean up it's internal resources (unless the - process exit()s, which is a whole different issue... ;-)). - - * Changed all occurrences of ACE_CORBA_Handler to - ACE_ST_CORBA_Handler. Now we've got two types of - CORBA_Handlers: single-threaded (ST) and multi-threaded (MT). - Take a look at ./apps/Orbix-examples/Event_Comm/{Supplier,Consumer} - for an example of how to leverage this in a portable manner! - - * libsrc/CORBA/CORBA_Handler: Totally redesigned the ACE - CORBA_Handler stuff so that it now uses the Singleton pattern - explicitly, rather than using the half-baked static method - version... Changed the test code to reflect this update! - - * libsrc/CORBA/CORBA_Handler.C (activate_service): Changed the - check so that if == 0 then we don't try to do a - putit (previously, this check used , which is less - useful...). - - * libsrc/CORBA/CORBA_Handler.C (activate_service): Removed the - flag from the constructor so that we can - make the CORBA_Handler and the MT_CORBA_Handler equivalent. - - * include/ace/sysincludes.h: Added a new macro called - ACE_THREAD_EXIT_HOOK that enables application threads - (including the main thread) to register a Task * who's - close method will automatically be called when the thread - exits, either implicitly (by falling off the end) or explicitly - (by a thread calling ACE_Thread::exit ()). - - * libsrc/ASX/Task: Moved ACE_Task_Exit into the interface part of - ACE_Task so that Irfan can maybe use this in his stuff ;-). - - * libsrc/Misc: Incorporated the ACE_Date_Time class into the - release. This is an *interface* for a system independent - representation of date and time. Implementation will follow... - - * libsrc/CORBA: Added a new MT_CORBA_Handler, which makes it - very straightforward to integrate the ACE_Reactor with - multi-threaded (MT) Orbix. - - * libsrc/Threads/Token.C: Yow, fixed a dumb problem in Tokens.C - where I was failing to include the *.i file if we weren't - compiling with inlining on!!!! - -Mon Nov 13 01:13:37 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/ASX/Message_Block: Added several new methods to - Message_Block to allow users to access and set various flags. - Thanks to Alex V Maclinvosky for - suggesting this and providing a prototype implementation. - - * include/ace/sysincludes.h: Added a new macro called ACE_NDEBUG - that can be used to toggle support for "live object dumping". - If this macro is enabled then - - * libsrc/Misc/Dump.h: Added support for "live object dumping" into - ACE. This technique is implemented with the "External - Polymorphism" pattern described in a paper available at - http://www.cs.wustl.edu/~schmidt/EuroPLoP-96.ps.Z. - - * libsrc/Threads: Added new classes called *_Process_* and - *_Thread_* for ACE_RW_Mutex, ACE_Barrier, ACE_Condition, and - ACE_Semphaore. This will allow programmers explicitly state the - scope of their locks more explicitly and will also facilitate - portability to Windows NT... - - * libsrc/Threads: Updated the constructors of all the Synch and - Synch_T classes to take an option const char * called "name." - At the moment, this doesn't do anything, but when we port to - Window NT it will be used to ensure that we can name our - process-global synchronization objects. - - * libsrc/Threads/Synch: Added a new tryacquire method to - ACE_RW_Mutex to be consistent with acquire and release... - - * libsrc/Threads/Synch.C (ACE_Mutex): Added a new "name" parameter - to an ACE_Mutex in order to support process-semantics on NT... - - * include/ace/sysincludes.h: Added a #define for EDEADLK in case - some systems don't support it (this is needed by the new - ACE_*_Token stuff). - -Sun Nov 12 14:17:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Name_Server: Modified the client and server test programs - so that they can both be linked statically and/or dynamically. - If svc.conf is present then dynamic linking is used, otherwise - static linking is used. This makes it much easier to test!!! - - * apps/Name_Server/client/lib/Naming_Context.C (local): Changed - things a bit so that if our server host name is "localhost" then - we assume we are local no matter what... - - * apps/Name_Server: Moved directories around a bit so that all the - tests and libs for the client/server portions of the - ACE_Name_Server build correctly... - - * apps/Name_Server/server: Replaced the ad hoc Name_Acceptor and - Name_Handler to use the official ACE_Acceptor and - ACE_Svc_Handler... This cleans up the code considerably... - - * libsrc/Threads/Synch: Added a new wrapper for the the UNIX file - locking mechanism called ACE_File_Lock. This has the same - interface as the other locking mechanisms (e.g., ACE_Mutex and - ACE_Semaphore). Therefore, it can be used in the ACE_Guard - class! - -Sat Nov 11 13:53:48 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Shared_Malloc/Memory_Pool: Improved MMAP_Memory_Pool so - that it will be smarter about remapping the file if we aren't - trying to force a fixed addr to be used for the mapping. In - particular, if we *aren't* forcing a particular address, the new - solution will be more flexible and allow the OS to determine - where to remap the memory should we need to grow the backing - store and the mapping range... - - * libsrc/Misc/Set: Implemented a simple version of the - Unbounded_Set class and its iterator. - - * libsrc/Misc/SString: Changed all the implementations of methods - in SString classes to use new/delete rather than - strdup()/free(). - - * apps/Name_Server/client/Name_Proxy: Changed rcv_reply() to - recv_reply(). - - * apps/Name_Server/client/Name_Proxy: Modified ACE_Name_Proxy so - that the constructor and open take an ACE_Synch_Options. - - * apps/Name_Server/client/Name_Options.C (ACE_Name_Options): Added - a default for the Name_Space directory called - (ACE_DEFAULT_NAMESPACE_DIR) to the testconfig.h file... - -Sat Nov 11 00:24:37 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * tests/Tokens/test_token_manager/test_token_manager.C: The token - manager has a working deadlock detection algorithm. - ACE_Local_Mutex uses this to report deadlock situations. - Changes were made to ACE_Local_Mutex to fix a couple bugs which - were causing deadlock. Also, a new test application has been - added to test deadlock detection using the local mutex. - -Fri Nov 10 17:16:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Mem_Map/Mem_Map.h: Changed the type of from - long to size_t. - - * tests/Threads/test_thread_manager.C (main): Added a main() for - the case when there's - - * tests/ASX/UPIPE_Event_Server/event_server.C (main): Fixed a - typo that was causing problems on SunOS 4.x. - - * tests/Service_Configurator/IPC-tests/client/local_spipe_client_test.C: - added #include "ace/Log_Msg.h" (why was this working?!). - - * include/makeinclude/rules.lib.GNU: Changed the order of operations - in rules.lib.GNU from - - $(AR) $(ARFLAGS) $@ $? - -$(RANLIB) $@ - -chmod a+r $@ - - to - - $(AR) $(ARFLAGS) $@ $? - -chmod a+r $@ - -$(RANLIB) $@ - - to keep ranlib happy on SunOS 4.x. - - * apps/Time_Server: Added a Makefile - - * include/ace/sysincludes.h: Removed the include - since it was causing major problems on SunOS 4.x... - - * apps/Name_Server/Naming_Context.C: Fixed up a couple of problems - with casts. Thanks to Jack Erickson for - pointing this out. - -Thu Nov 9 15:49:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Synch_T: moved Atomic_Op from ./Misc to ./Threads - and merged it into the Synch_T files. This makes more sense as - a place to put it... - - * libsrc/Misc/SString.C (operator +=): Fixed a typo that would - have caused mistakes when memcpy() was used. Thanks to Prashant - Jain for noticing this. - -Wed Nov 8 22:36:51 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * libsrc/Reactor/Reactor.C (TOKEN_GUARD): The reactor now uses the - TOKEN_GUARD macro. The Reactor can now be conditionally - compiled with ACE_REACTOR_HAS_DEADLOCK_DETECTION to use the new - ACE_Local_Mutex in conjunction with the ACE_Token_Manager to - detect deadlock. The deadlock detection algorithm has not yet - been implemented, but the hooks are now in place. - - * libsrc/Tokens: This subdir includes ACE's new Token library. - Check out libsrc/Tokens/README for more info. - - * tests/Tokens: There are a couple test applications for the new - Token library. See tests/Tokens/README for more info. - - * apps/Token_Server: This directory contains some new client - interfaces to the old ACE TokenServer, now Token_Server. There - are also some example use cases included in this directory. As - always, see apps/Token_Server/README for more info. - -Wed Nov 8 00:14:55 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/IO_SAP: Added the new classes for IO_SAP from - Gerhard Lenzer (lenzer@csaserv.erlh.siemens.de). This - eliminates UNIX I/O-specific features from ACE. - - * libsrc/Misc/Set: Added a new find() method to each of the - ACE_*_Set classes... - - * include/ace/sysincludes.h (ACE_ALLOC_HOOK_DECLARE): Changed - enum __Ace { __ACE } to struct __ACE {}. I think this - will cause less problems with M.I... - - * libsrc/ASX/Message_Block: Added a new "allocator" parameter to a - Message_Block. This allows the memory stored by a Message_Block - to come from someplace besides the normal heap (e.g., a shared - memory segment!). - - * libsrc/ASX/Message_Block.C (ACE_Message_Block): Yow, fixed a bug - in the destructor where ACE_BIT_ENABLED was being used in place - of ACE_BIT_DISABLED! I think this was causing a memory leak... - - * libsrc/Reactor/Reactor: added a pair of methods that allow a - thread to set/get the notion of who "owns" the event loop. Only - the owner of the loop can do a handle_events() call. Also - changed things so that the requeue_position() are available for - both threaded and non-threaded implementations (just to have a - uniform interface...). - - * libsrc/ASX/Message_Block: added a new constructor and a new - init() method that just assume ownership of a char * passed - as the parameter. Note that this does *not* set any other - fields in the Message_Block and is only used to ferry around - totally opaque data in the Message Block! - -Tue Nov 7 00:52:15 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/Log_Msg/test_log_msg.C (main): Added some new tests to - make sure that op_status() and errnum() work on ace_log_msg. - Thanks to Tim Harrison for these tests. - -Mon Nov 6 12:55:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Thread_Specific: Changed a couple of places in - the Thread_Specific code so that key_ is initialized to 0 and - the ts_obj * is initialized to 0. If these *aren't* 0 then - weird bugs happen on Solaris... Thanks to Tim Harrison for - noticing this and suggesting the fix! - - * libsrc/Threads/Synch_T: Added an accessor method to obtain - the underlying mutex within ACE_Condition. - - * libsrc/Threads/Synch.C (ACE_Process_Mutex): Added a dummy - argument of type const char * to ACE_Process_Mutex. This is in - anticipation of the info required in Windows NT to support a - named process-wide Mutex. On UNIX, this argument is ignored... - -Fri Nov 3 19:02:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/SOCK_SAP: Back from C++ World... Fixed a couple - of typos in SOCK_Dgram_Bcast and SOCK_CODgram that included the - *.i files multiple times... Thanks to Alex V Maclinvosky - for reporting this. - -Tue Oct 31 02:12:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Reactor: Modifed the MT_SAFE Reactor so that the - its open() method keeps track of which thread originally created - it. This thread is then considered the "owner" of the Reactor. - If a different thread tries to run the handle_events() method - then an error is returned. - - * libsrc/ASX/Task.C: Added a "group id" field to the ACE_Task. - This can be used to suspend and resume a group of tasks - atomically. Also added default suspend() and resume() methods - that do just that! - - * libsrc/Reactor/Reactor: Made the open() method - thread-safe. Thanks to Detlef Becker (beckerd@erlh.siemens.de) - for pointing out the need for this. - -Mon Oct 30 00:02:53 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Shared_Malloc/Memory_Pool.C (ACE_MMAP_Memory_Pool): - Made it possible to configure the ACE_MMAP_Memory_Pool with a - (backing_store_) file name so that it is possible for multiple - processes to share one wellknown file, as well as to have - multiple pools per process. Check out the - ./tests/Shared_Malloc/test_malloc.C file for an example of how - this works (try the -p -e -L10000 -t3 options). - - * libsrc/Reactor/Reactor: Moved handler_i into the *.C file to - avoid problems with inline functions on HP/UX. - - * libsrc/Misc/SString: Added a new class called ACE_CString. This - class is similar to ACE_WString (which has "wide character" - size), though CString has regular "char" size. Note that both - of these classes are "true" string classes, unlike ACE_SString, - which is a very simple string class that is only to be used for - very specific purposes... - - * libsrc/Shared_Malloc/Memory_Pool.C (acquire): Fixed an - "off-by-one" error in ACE_MMAP_Memory_Pool::acquire() that was - causing an extra byte to be written to the backing store file... - This was causing the ./tests/Shared_Malloc/test_malloc.C program - to fail when -p was given. After this fix the test works - again... (thank God!). - -Sun Oct 29 22:43:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Shared_Malloc/Malloc: Added two new classes: - ACE_Allocator and ACE_Allocator_Adapter. ACE_Allocator uses - inheritance and dynamic binding to provide extensible mechanisms - for allocating and deallocating memory. ACE_Allocator_Adapter - implements the Adapter pattern to enable ACE_Allocator to be - used with instantiations of the ACE_Malloc<> template class. - -Sat Oct 28 13:51:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/ASX/Event_Server: Added a new directory called - UPIPE_Event_Server, which tests a version of the Event_Server - that is instantiated with ACE_UPIPE_* IPC mechanisms, - rather than by the ACE_SOCK_* mechanisms. - - * libsrc/IPC_SAP/Addr: Created a new file called UPIPE_Addr.h. - This file contains a typedef of ACE_SPIPE_Addr to - ACE_UPIPE_Addr. The purpose of doing this is to "logically" - decouple the ACE_UPIPE* classes from the ACE_SPIPE* classes - (even though they share the same *physical* representation at - this point...). - - * libsrc/IPC_SAP: Fixed a small bug in TLI_Connector.connect() and - SOCK_Connector.connect() that failed to set the - new_stream::handle_ to ACE::INVALID_HANDLE when the connection - failed. Thanks to the ever-astute Mark Patton - (mark_patton@tx72.mot.com) for noticing this. - -Thu Oct 26 15:08:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/Threads: created a new test program called - test_thread_manager.C that tests the new semantics for managing - groups of threads. - - * libsrc/Reactor/Signal.C (ACE_Sig_Action): Added a new method - that allows me to create a Sig_Action object that contains both - the handler and the signal to register for. This handler is - register to handle the signal in the constructor of the - object... - - * libsrc/Threads/Thread_Manager: enhanced the Thread_Manager to - add support for operations (i.e., suspend, resume, kill) on a - group of threads. - - * libsrc/Threads/Thread_Manager: Added a new method that allows - the Thread_Manager to resize itself automatically when it's - internal table gets full. - - * libsrc/Threads/Thread_Manager: Updated the return value of - Thread_Manager::spawn() and Thread_Manager::spawn_n() so that - they return -1 on failure *and the group id* on success. - Originally, they returned 0 on success, but this new return - value is more useful since it can be used to control groups of - threads atomically. - -Wed Oct 25 01:03:32 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Name_Server: Began integrating the newly donated name - server into ACE. There are a number of dependencies on - RogueWave that must be removed, but things are looking good so - far. - - * libsrc/Misc/Set: Changed the name of ACE_Unordered_Set to - ACE_Fixed_Set to be consistent with the ACE Stack classes... - - * libsrc/Misc/Set: Added new ACE classes called ACE_Unbounded_Set, - ACE_Bounded_Set, ACE_Unbounded_Set_Iterator, and - ACE_Bounded_Set_Iterator to deal with ACE name service - stuff. - - * libsrc/Misc/SString: Added a new class called ACE_WString that - gives a very simple "wide-character" string representation for - ACE. This is needed for the ACE name service stuff. - - * libsrc/Misc/SString.C (operator =): Fixed this so that ::strdup - is matched up with ::free, rather than with delete... - - * libsrc/Log_Msg/Log_Msg.C (log): Updated the ACE_Log_Msg class to - store an ostream * in thread-specific storage. This can be used - in conjunction with the dump() method on each ACE class, as well - as with the ACE_ERROR and ACE_DEBUG logging macros. - -Tue Oct 24 00:19:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added a definition of the dump() method to every class in ACE in - anticipation of the changes requested for Siemens. - - * Changed all occurrences of ACE_Signal_* to ACE_Sig_* to make the - ACE naming of signal handling wrappers consistent. - - * libsrc/Threads/Thread: Fixed some obscure bugs with the way that - ACE_Thread was compiling on platforms that don't support - threads. - - * include/ace/config-irix*.h: Removed all TLI support from the SGI - platform. It seems to be totally screwed up from the tests that - I've run and there's no sense in bending over backwards to - support an IPC API that is brain-damaged to begin with... - - * apps/Logger/Service_Configurator_Logger/Thr_Server_Logger: Fixed - up the code so that the Thr_Logging_Server stuff will compile - correctly even for platforms that lack threads! - - * libsrc/Connection/Strategies: Added new strategies that provide - Singleton creation and Process concurrency policies. - - * libsrc/Connection/Connector.C (handle_close): Make sure that all - pending timer objects are removed from the Reactor's timer queue - when a Connector shuts down. In addition, make sure to remove - and delete all dynamically allocated ASTs, as well. Thanks to - Karl-Heinz Dorn (kdorn@erlh.siemens.de) for suggesting this. - - * libsrc/Threads/Thread_Manager.C (wait): Modified wait() so that - it now takes an ACE_Time_Value *, which can be used to wait - until all threads terminate or a timeout occurs... - - * libsrc/Threads/Thread_Manager: Moved Thr_Descriptor from within - the ACE_Thread_Manager class to become ACE_Thr_Descriptor at - file scope. This is in anticipation of the cool new thread - manager stuff on the way... - - * libsrc: Updated every class in ACE to include a "dump" method - with the signature "void dump (void);" This method soon will be - tied into the ACE_Dump mechanism to allow all live objects in - ACE to have their state dumped automagically on-demand. This is - useful for debugging and tracing etc. - - * libsrc: Updated every class in ACE to include a "Alloc hook." - This hook will enable all ACE classes to be allocated from a - particular memory pool. - - * include/makeinclude/rules.local.GNU: fixed the clean target to - delete the *.rpo files (else gcc -frepo can get some crazy - errors) and combines all rm-commands for the target realclean - into one command (in some cases the last two lines do not have - any files to delete, in which case rm produces an usage - message). Thanks to John Huchinson (hutchiso@epi.syr.ge.com) - for the patch. - - * libsrc/IPC_SAP/Addr/INET_Addr: Fixed all the uses of gethost* - and getserv* to use the reentrant get*_r functions if - ACE_HAS_REENTRANT_FUNCTIONS is set and ACE_MT_SAFE is set. - Thanks to Bill Tang for suggesting this. - - * libsrc/Misc/OS: Started adding support for the POSIX *_r - functions to the OS class. - - * include/ace: Added a new #define called - ACE_HAS_REENTRANT_FUNCTIONS. This indicates that the platform - supports reentrant functions (i.e., all the POSIX *_r functions - like gethostbyname_r). - -Mon Oct 23 21:15:50 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/makeinclude/platform_irix5.3.GNU (LIBS): Removed the - link of the nsl lib since it seems not to be present on this - platform. Thanks to Karel Zuiderveld - for noticing this. - - * libsrc/IPC_SAP/Addr/INET_Addr.i (operator ==): Enhanced the - semantics of comparison to check both the port number and IP - address. Thanks to Mark Patton (mark_patton@tx72.mot.com) for - suggesting this. - -Thu Oct 19 00:10:28 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/Addr/INET_Addr.C (set): Fixed a stupid bug that - failed to set errno appropriately if things go wrong with this - method. Thanks to Mark Patton (mark_patton@tx72.mot.com) for - noticing this! - -Sat Oct 14 12:07:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Thread_Manager: Modified the Thread_Manager so - that even in the case where we are compiling for non-MT systems - the Thread_Manager still has the same method interface (all of - which are no-ops). - -Wed Oct 11 00:12:57 1995 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu) - - * Finished commenting all the classes in ACE. Updated all manual - pages accordingly. - -Fri Oct 6 14:17:17 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/ASX/Event_Server/Event_Server: Changed - - ACE_SOCK_Acceptor &sa = (ACE_SOCK_Acceptor &) *this->acceptor_; - - to - - ACE_SOCK_Acceptor &sa = this->acceptor_->acceptor(); - - Thanks to Dieter Quehl (quehl@erlh.siemens.de) for suggesting - this. - -Thu Oct 5 00:22:56 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/ASX/Map_Manager: Added a new find() method to the - Map_Manager. This method only checks for the existence of an - EXTERNAL_ID, and doesn't return the INTERNAL_ID. - - * Introduced the new "trait"-based *_Connector, *_Acceptor, and - *_Stream interfaces for all the IPC_SAP classes. Basically, for - each class like - {SOCK,TLI,SPIPE,etc,}_{Acceptor,Connector,Stream}, there's now a - typedef for the appropriate type of ACE_*_Addr subclass and the - appropriate type of ACE_*_Stream class. For example, here's - what's in ACE_SOCK_Acceptor (same goes for ACE_SOCK_Connector): - - class ACE_SOCK_Acceptor - { - public: - // ... - - // = Traits. - typedef ACE_INET_Addr PEER_ADDR; - typedef ACE_SOCK_Stream PEER_STREAM; - }; - - Once C++ compilers can grok template typedefs correct, this new - approach will allow much greater simplification of code, so that - template classes like - - template - class ACE_Acceptor { /* ... */ - virtual int open (const PEER_ADDR &); - }; - - that are currently used like this: - - ACE_Acceptor acc; - - can be replaced with - - template - class ACE_Acceptor { /* ... */ - virtual int open (const PEER_ACCEPTOR::PEER_ADDR &); - }; - - that are used like this: - - ACE_Acceptor acc; - - i.e., the ACE_SOCK_Acceptor maintains a "trait" that the - ACE_Acceptor uses to determine the appropriate addr. This is - more concise and less error-prone than the current scheme that - requires you to pass into the ACE_INET_Addr separately (ugh). - - Note that the trick to making all this work is to typedef the - PEER_ADDR trait into the ACE_SOCK_Acceptor class, as follows: - - class ACE_SOCK_Acceptor { - public: - typedef ACE_INET_Addr PEER_ADDR; // Trait... - }; - - Unfortunately, none of the C++ compilers (e.g., SunC++ 4.0.1, - G++ 2.7.0) support this stuff yet... Therefore, I've added - a set of macros that that will toggle back and forth between - whichever approach works, depending on the setting of - ACE_HAS_TEMPLATE_TYPEDEFS. Hopefully, over time compilers will - support this stuff correctly and life will become easier. - - * libsrc/ASX/Message_Queue: Changed all occurrences of the S_MUTEX - and S_CONDITION macros to ACE_SYNCH_MUTEX and - ACE_SYNCH_CONDITION in order to conform to the new ACE namespace - control conventions. - - * libsrc/Connection/Acceptor: Modified the Acceptor class to split - it into two classes: ACE_Acceptor (which implements a very - simple, very concise version of the Acceptor pattern, without - all the extra strategy mechanisms, etc.). These strategies have - now been factored out into a new class called - ACE_Strategy_Acceptor. The point of these changes is to "keep - simple things simple, but enable powerful extensions when - necessary." All the test programs that utilized the earlier - strategy version of the Acceptor have been updated to the the - Strategy_Acceptor instead. - - * libsrc/Connection/Connector: added two new protected methods, - connect_svc_handler() and activate_svc_handler(). These methods - allow subclasses to override the Connector's strategies for - connection establishment and concurrency. In addition, it makes - the pattern much easier to explain via the Connector pattern and - also is more similar to the Acceptor. - -Wed Oct 4 18:45:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Orbix-Examples/Event_Comm: Fixed the examples in this - directory so that they compile with the new ACE. - -Tue Oct 3 17:33:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/makeinclude/rules.nested.GNU: Added support so that - ACE can now be built in parallel using the -jN option of GNU - make. To accomplish this, just type - - % make MAKEFLAGS=-j2 - - on the command line and the "-j2" flag will be passed through to - the make hierarchy. Once the SunC++ compiler supports parallel - makes correctly (Template.DB causes problems) this will allow me - to tke advantage of my new dual-CPU SPARCstation 20!!! - -Mon Oct 2 13:34:14 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection: Cleaned up some of the code related to - Time_Values * by adding a new method call time_value() to the - ACE_Synch_Options class. - - * libsrc/Service_Config/Service_Record: Changed things a bit so - that we don't have to include "ace/Stream.h" in - Service_Record.h, but instead use forward decls of the - appropriate types. This breaks a circular dependency that was - causing problems for GNU C++. Thanks to John Hutchinson - (hutchiso@epi.syr.ge.com) for finding this problem. - -Sat Sep 30 13:45:08 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Changed all uses of typedef PARENT to inherited, which is less - obtrusive. - -Fri Sep 29 01:33:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Misc: Completed the new OS class, which will be used - shortly to remove all direct UNIX system calls in ACE. - - * libsrc: Completed redocumented the header files for almost all - of ACE. The goal was to document all the methods in all the - classes. This has most been achieved (only a few minor changes - remain). The result is *much* better manual page entires in - ./man/man3, as well as much more consistent header files and - overall documentation for ACE. - - * libsrc/Reactor/Reactor: Changed all uses of get() to - handler_i(). Also changed the check_connections() method to - check_handles(). Note that all these changes are invisible to - apps... - -Thu Sep 28 01:22:36 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/Addr/SPIPE_Addr: Changed all occurrences of - {get,set}_user_id() and {get,set}_group_id() to user_id() and - group_id() in order to be more consistent with other parts of - ACE. - - * libsrc/ASX/Task.C (module): Modified the implementation of - several Task helper methods (e.g., sibling()) so that they don't - crash if there is not Module associated with the Task. - - * libsrc/ASX/Stream: Removed the sync_ data member from the - private part of Stream since it didn't seem to be used for - anything. - - * libsrc/ASX/Map_Manager.C (bind): Changed the type of the INT_ID - to bind() from INT_ID to const INT_ID &. - - * libsrc/IPC_SAP/Addr/Addr: Moved some methods around in the *.i - file to the *.C file in order to be smarter about inlining. - - * libsrc/Misc/Auto_Ptr.h: Added a new pair of classes called - "auto_ptr" and "auto_array_ptr". These implement the ANSI/ISO - C++ standard auto_ptr mechanism, which helps to write - exception-safe code. The code is based on material from Jack - Reeves (jack@fx.com) and Dr. Harald M. Mueller - (mueller@garwein.hai.siemens.co.at). - - * libsrc/Threads/Synch_T.h (ACE_Null_Condition): Changed the - behavior of Null_Condition::{signal,broadcast} so that they - return 0 rather than setting errno = ETIME and returning -1. - -Wed Sep 27 00:16:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Synch: Fixed a bug with class ACE_Barrier: count_ - wasn't being set properly. - - * tests/Threads/test_barrier.C (main): Fixed a stupid bug - in the ACE_Barrier -- the main function was exiting, thereby - destroying the barrier! - - * tests/IPC_SAP/{SOCK,TLI}_SAP: Added test cases to exercise the - new reuse_addr feature of SOCK_Connector and TLI_Connector. - - * libsrc/IPC_SAP/{SOCK,TLI}_SAP/{SOCK,TLI}_Connector: Implemented - the new behavior for reusing a local address. Also fixed a few - error cases that would have lead to descriptor leaks. - - * libsrc/IPC_SAP/SOCK_SAP/SOCK.C (open): Modified a few return - values and comparisons to ease the transition to WIN32. - - * libsrc/ASX/Task.C (ACE_Task): Changed the behavior of - Task::activate() so that it uses the - ACE_Service_Config::thr_mgr() Singleton if no thread manager has - been associated with a Task when it becomes an active object. - - * libsrc/Service_Configurator/Service_Config: Added a new static - method to class Service_Config called thr_mgr(). This static - method behaves as a "Singleton" and provides a convenient - default thread manager that is available to all threads - throughout a process. - - * libsrc/IPC_SAP: Changed all the IPC_SAP/*_SAP/*_Connector.[hiC] - files and the Connection/Connector.[Chi] class in order to add - "reuse_addr" behavior consistent with the Reactor. This enables - the client to specify that the "local_addr" should be reused - (e.g., via SOCKREUSEADDR), even if its "2 minute wait" time - hasn't elapsed yet. The libsrc/Connection/Connector.[Chi] files - were also changed to support this new interface. - - * libsrc/Log_Msg/Log_Msg.C (log): Fixed a mistake in Log_Record - caused by the new thread-safe storage enhancement. The data - being logged was being rounded up incorrectly. Thanks to Daniel - Proulx (daproulx@qc.bell.ca) for reporting this. - - * libsrc/Reactor/Signal.i (operator): Made a minor change to the - definition of operator struct sigaction * to work around a bug - with the HP/UX C++ compiler (lame, lame, lame)... - - * libsrc/Service_Config: Changed all occurrences of - ACE_Service_Config::reactor (which was originally a globally - accessible public method of class ACE_Service_Config) to - ACE_Service_Config::reactor () (i.e., made the reactor a - Singleton implemented by a static method). This was long - overdue and will fix all sorts of niggling problems with order - of initialization since the reactor() method can do "lazy - creation" of Reactors now, i.e., create one the first time it is - referenced. In addition, changed the - ACE_Service_Config::svc_rep to ACE_Service_Config::svc_rep () in - the same manner. - - * Changed all occurrences of the form: - - *_Stream stream; - *_Connector con (stream, remote_addr); - - if (stream.get_handle () == ACE::INVALID_HANDLE) - ... - - To - - *_Stream stream; - *_Connector con; - - if (con.connect (stream, remote_addr) == -1) - ... - - which is cleaner and less error prone with respect to - UPIPE_Stream (which doesn't have a valid handle once it's - connected). - - * Changed all occurrences of get_handle () == -1 to get_handle () - == ACE::INVALID_HANDLE to help smooth the move to WIN32... - - * libsrc: Created a new directory called Shared_Memory and moved - the Shared_Malloc_MM and Shared_Malloc_SV classes from the - ./Shared_Malloc directory to here, where they are now called - Shared_Memory_MM and Shared_Memory_SV. This is a better - name/place for them since they never really had anything to do - with malloc in the first place! What remains the Shared_Malloc - is the Malloc.* and Memory_Pool.* classes, which are typically - used for truly shared malloc/free. - - * apps/Gateway/Gateway: added new logic to the Gateway to enable - it to specify which local port to bind() to. - -Tue Sep 26 21:17:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection/Strategies.C (open): Added a return 0; at the - end of the ACE_Thread_Strategy::open method. - - * tests/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.C: - Made CLI_Stream a template so that we don't have to worry about - multiple includes of classes... - -Mon Sep 25 01:41:27 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP: Revised the close() method of TLI_SAP and - SOCK_SAP so that they don't try to close down a handle that == - ACE::INVALID_HANDLE. - - * Changed all uses of ::free ((char *) ...) to ::free - (ACE_MALLOC_T (...)) to work around inconsistent prototype - problems with some compilers. - - * include/ace/sysincludes.h: Changed ACE_MALLOC_TYPE to - ACE_MALLOC_T which is a bit less verbose... - - * libsrc/Service_Configurator/Makefile (BUILD): Fixed the argument - to sed from -s (which is invalid) to -e (which is valid). - Thanks to Doug Ritter (dougr@guilder.datalytics.com) for - noticing this. Also used sed to do a more elegant fix on the - age-old problem of inconsistent prototypes for free() and - realloc()... - - * libsrc/IPC_SAP/UPIPE_SAP: Rewrote all the UPIPE_* classes to - remove any dependencies on class UPIPE. This class appears to - be unnecessary since it mimics the behavior of class SPIPE. To - simplify the behavior of the UPIPE_* classes, they now inherit - from the SPIPE_* classes where appropriate. - - * libsrc/IPC_SAP/UPIPE_SAP: Changed the semantics of the - UPIPE_Connector and UPIPE_Acceptor connection methods so that - they close down the SPIPE_Stream after a connection is - established successfully. This is important to conserve - descriptors. - - * libsrc/Misc: Created a new class called OS, which encapsulates - *all* of the UNIX system calls and library routines within a - single class. The rest of ACE will program only to the methods - in this interface, which will make it much easier to port to - other versions of UNIX (and WIN32!). - -Sun Sep 24 11:49:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/SOCK_SAP: Conditionally compile the LSOCK_* stuff - if the OS platform (e.g., Linux) doesn't support it. - - * Changed all occurrences of ACE_HAS_NO_... to ACE_LACKS_... in - all the config*.h files and the headers/source. This reads - better... - - * Changed all uses of (1) Acceptor::peer_acceptor_ to - Acceptor::acceptor(), (2) Svc_Handler::peer_ to - Svc_Handler::peer(), and (3) Connector::peer_connector_ to - Connector::connector() to make the code more abstract and - resilient to future changes. - - * include/ace/sysincludes.h: Added a new macro called - ACE_NEW_RETURN that provides a useful abstraction for - expressions involving operator new since we can change memory - allocation error handling policies (e.g., depending on whether - ANSI/ISO exception handling semantics are being used). - - * libsrc/Threads/Thread.C: Changed things a bit so that if - ACE_MT_SAFE == 0 then Thread::self() returns 1, regardless of - whether the platform supports threads. - - * Went through the entire library and (hopefully) made sure that - all calls to global system calls and library routines are - prefixed with "::". - - * libsrc/Misc/Get_Opt.C: Changed this class to use the Log_Msg - logging mechanism rather than stderr... - - * tests/Misc: Added a new test program to test the Profile_Timer. - - * tests/Reactor/misc: Added a new test program to test the - Handle_Set. - - * libsrc/Service_Configurator: Changed the error messages in - Svc_Conf.y and Svc_Conf.l to go to the ACE Log_Msg logging - mechanism rather than stderr... - - * libsrc/Connection/Acceptor: Modified the Acceptor and - Oneshot_Acceptor classes so that they take advantage of the new - ACE_Creation_Strategy, ACE_Accept_Strategy, and - ACE_Concurrency_Strategy components. This will make is easy to - define Acceptors that can be flexibly configured to use various - creation strategies (e.g., dynamic linking, singletons, dynamic - memory creation, etc.) for making Svc_Handlers. - - * libsrc/Connection/Svc_Handler: Added several new classes -- - ACE_Creation_Strategy, ACE_Accept_Strategy, and - ACE_Concurrency_Strategy -- that form the heart of the new - ACE_Acceptor implementation. These classes define the creation, - passive connection acceptance, and concurrency strategies - employed by the Acceptor factory when it receives a connection - from a client. - - * libsrc/Connection/Acceptor: Modified the implementation of the - Acceptor and the Oneshot_Acceptor. These classes are no longer - related by inheritance since they behave in fundamentally - different ways and sharing code was making it hard to write and - use these classes correctly. - - * libsrc/Misc/Misc: Moved the enum INVALID_HANDLE from IPC_SAP.h - to Misc.h since this is actually more general than just the - sockets stuff and we need to be portable to WIN32... Therefore, - any code that originally said ACE_IPC_SAP::INVALID_HANDLE should - now be ACE::INVALID_HANDLE. - - * Removed the ACE_OMIT_SERVICE_CONFIGURATOR flags. These are - annoying -- anyone who wants to subset ACE should be responsible - for doing this stuff. - -Fri Sep 22 22:36:33 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Thread_Spawn.C: Greatly simplified the - implementation of Thread_Spawn by leveraging the new class Task - semantics for activate(). Now, all the concurrency activation - mechanisms necessary to create active objects are associated - with a Task and all the Thread_Spawn needs to do is to define a - new make_svc_handler() Factory Method to create a SVC_HANDLER - and activate it! - - * libsrc/ASX/Task.C: Tightened up the semantics of Task::activate - (which turns a passive object into an active object, i.e., one - with its own thread). Now, if an object is activated more than - once it ignores the other requests, unless the force_active - parameter is enabled. Moreover, activate() now takes a - parameter that indicates the number of threads to allocate for - the Task. This makes it simple to have a "thread pool" - associated with a Task. - -Thu Sep 21 00:49:55 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/Connection: Updated the CPP-acceptor and CPP-connector to - use the underlying Acceptor and Connector patterns more - robustly. Also added new hooks to include a Service_Config - component so that integrating this with the ACE dynamic linking - scheme will be a snap! - - * libsrc/Connection/Acceptor.C: Revised the Oneshot_Acceptor to be - robust in situations where it isn't given a Reactor *... - - * apps/Logger: Fixed a couple of minor problems with *.i files - being included when __INLINE__ is set. This should help G++ - compiler ACE better... - - * libsrc/Reactor/Reactor: Enhanced the Reactor::notify() method so - that it takes both an Event_Hander * and a Reactor_Mask, which - it passes to the Reactor's main event loop thread via the pipe. - The event loop thread uses this mask to determine which method - to invoke. This new feature is due to the insight of Karl-Heinz - Dorn (kdorn@erlh.siemens.de). - - * libsrc/Connection/Connector: Fixed a braino in - Connector::handle_output, which was using ::getpeername() to - check whether a connection has been established with a peer. - Naturally, this only works for sockets, and doesn't work at all - for TLI or SPIPEs... - - * libsrc/IPC_SAP/Addr/SPIPE_Addr.C (set): Changed the return type - of this method to "int" in order to conform to the types - expected by the Acceptor/Connector patterns. - - * Removed all uses of the global scope "::" for all variables and - methods that are not UNIX system calls or library calls in - preparation to change over to the new OS class (requested by - Siemens). - -Wed Sep 20 14:39:08 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/SPIPE_SAP: Renamed the SPIPE_IO classes to - SPIPE_Stream to be consistent with the other parts of the ACE - library. Updated all parts of the library to reflect this - change. - - * tests/Service_Configurator: Moved the current contents of this - directory into a new directory called IPC-tests. Created a new - directory called Connection-tests where the dynamic linking - examples for Siemens will go. - - * libsrc/Reactor/Signal: Made a bunch of minor changes to support - signal handling on SunOS 4.x platforms. Thanks to Aniruddha - Gokhale for help with this. - - * libsrc/Threads/Synch.h: Modified the #ifdefs a bit so that - Synch_T.h gets included regardless of whether ACE_HAS_THREADS. - - * libsrc/Threads/Synch_Options: Added a new set() method to make - it possible to initialize the Synch_Options from outside the - constructor. - - * libsrc/Connection/Svc_Handler.C: Added checks within the - ACE_Svc_Handler so that if we are given a NULL Reactor we don't - crash! - - * libsrc/Mem_Map: Tidied up this class and added comments to the - header so that the class2man has something to generate manual - pages from! - - * libsrc/Misc/Misc: Added a new method called "round_to_pagesize", - which was previously in Mem_Map. This is a better place for it - since other parts of ACE (e.g., Shared_Memory) use it. - - * libsrc/Misc/Misc: Added a new method called "get_file_size", - which was previously in Mem_Map. This is a better place for it - since other parts of ACE might want to use it. - -Tue Sep 19 00:24:41 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released a beta version of ACE 3.3.1 for G++ testing. - - * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram.C: Removed a stray INLINE - that was causing problems for G++. Thanks to E. Jason Scheck - for reporting this. - - * libsrc/IPC_SAP/Addr/INET_Addr: Improved the documentation for - this class and also added new semantics to the constructor and - set() method so that a "ip_addr:port_number" tuple can be given - as a single string (e.g., "1234:tango.cs.wustl.edu" or - "1234:128.252.166.57"). This is useful since it gives a uniform - interface for addressing for Internet domain, UNIX domain, and - SPIPE domain addresses... Updated the ./tests/Connection tests - to use this form (which is nice since now they are all very - orthogonal!) - - * tests/Connection: Created a whole new suite of tests that - exercise the connection patterns for all of the relevant IPC - mechanisms (e.g., SOCK_SAP, TLI_SAP, SPIPE_SAP, and UPIPE_SAP). - - * bin/clone.C: fixed the first #include so that it uses #include - "ace/sysincludes.h". Thanks to Alex V Maclinvosky - for noticing this. - -Mon Sep 18 01:52:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/ASX/Message_Queue.C (close): Fixed yet another problem - with variables being defined in for loops. G++ is good for - detecting this ;-). - - * libsrc/Threads: Moved all the template classes from Synch.* into - Synch_T.* in order to make it possible to compile templates with - G++. Thanks to E. Jason Scheck for suggesting - this. - - * libsrc/IPC_SAP/UPIPE_SAP: Make a number of changes to ensure - that all the UPIPE_SAP classes conform to the same interface as - all the other ACE IPC classes. - - * Changed all occurrences of THR_FUNC to ACE_THR_FUNC to protect - the global namespace better. - -Sun Sep 17 13:36:23 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/ASX/Message_Queue: Fixed a typo in these test programs - that caused a segfault since a vararg parameter was omitted on a - call to the Log_Msg::log() method. Maybe iostreams isn't so bad - after all... ;-) - - * apps/Logger/Service_Configurator_Logger/Thr_Server_Logger: fixed - a stupid error that was caused by some mods I made after ECOOP - to update the threaded logging server. When I changed the - Thr_Logging_Acceptor so that it no longer inherited from the - Logging_Acceptor I forgot to redefine the init() method... - - * man: Totally regenerated the ACE manual pages using the new - versions of the OSE tools provided by Karl-Heinz Dorn - (kdorn@erlh.siemens.de). - - * Changed all occurrences of MT_SYNCH and NULL_SYNCH to - ACE_MT_SYNCH and ACE_NULL_SYNCH, respectively. This is - consistent with the ACE naming conventions and had been an - oversight when I renamed everything earlier. - - * Fully built and tested ACE with the __INLINE__ flag enabled. - This will generate code with many small methods in the library - inlined. Had to fix a bunch of minor things to allow this to - work without compilation-order dependency problems. - - * libsrc: Made a bunch of changes to the way that header files are - included internally to ACE in order to break compilation-order - dependencies. This is necessary to support GNU G++'s lame - handling of templates. None of this stuff should affect - application code. - - * tests: Added a whole new slew of tests for the remaining parts - of ACE that weren't currently included in ./tests. This stuff - exercises ACE components like the Log_Msg logger and factors all - the #if defined (DEBUGGING) code out of the ./libsrc directory - tree and puts it in the ./tests directory tree, where it - belongs. - - * Changed all uses of the error macros LM_* to ACE_* in order to - avoid name collisions with other libraries, frameworks, and - toolkits. In addition, changed all uses of the error enumerals - LOG_ to LM_ in order to avoid a conflict with system #defines in - . - - In order to change these automatically, I used the following - UNIX command sequence: - - % find . -type f -print | xargs perl -p -i -e 's/LM_/ACE_/g' - % find . -type f -print | xargs perl -p -i -e 's/LOG_/LM_/g' - -Sat Sep 16 11:55:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/Threads: Added a new test for Thread_Specific storage. - - * Added a new platform/compiler configuration flag called - ACE_TEMPLATES_REQUIRE_SOURCE that must be set for compilers - (e.g., GNU G++) whose template mechanism must be able to - see the source code (i.e., the *.C files). Changed *lots* of - header files to enable this... Also had to change the - corresponding *.C files so that they wouldn't get included - twice... - - * libsrc/Connection: redid the implementation of Acceptor, - Connector, and Svc_Handler to get more control over the scope of - #defines like #define SH SVC_HANDLER, etc. - - * libsrc/Threads/Thread_Spawn: Totally redid the implementation of - Thread_Spawn to use the Acceptor class template. This greatly - reduces the amount of code to implement the Thread_Spawn! - - * libsrc/Threads/Thread_Spawn: Moved the Thread_Spawn - implementation into the ./libsrc/Threads directory rather than - in the ./libsrc/Service_Configurator directory since it deals - with threading and thus belongs in the other place. - -Fri Sep 15 00:25:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Token.i (tryacquire): Added a cast to fix passing - a const pointer to a function that was expecting a non-const. - Thanks to E. Jason Scheck for reporting this. - - * libsrc: Added a bunch of changes to enable G++ to compile ACE. - A lot of this involves moving around info in header files so - that templates can be dealt with using the relatively lame GNU - C++ repository scheme. Thanks to E. Jason Scheck - for all his help in this. - - * libsrc/Synch: created Synch_Options.C out of Svc_Handler.C, so - that Svc_Handler.C could be "template pure"; all the other files - were already separated. Thanks to E. Jason Scheck - for recommending this. - - * Makefile (clone): Added a tiny fix that solves a weird problem - that arises with symbolic links on HP/UX. Thanks to Jam Hamidi - (jh1@osi.com) for tips on how to fix this. - -Thu Sep 14 10:55:30 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Gateway/Gateway/Channel.C (route_message): Updated the main - routing code to check for whether a channel is_active() - (i.e., is actually connected) before trying to send messages - to it. This was originally done in the Set class iterator, but - I revised that to make it more reuseable and to workaround bugs - in the HP/UX compiler so I had to update the main code... - - * libsrc/Threads/Thread_Specific: Added a new method to called - ts_object () to class ACE_Thread_Specific that get the - thread-specific object for the key associated with this object. - Returns 0 if the data has never been initialized, otherwise - returns a pointer to the data. This is useful since now you can - query a thread-specific storage mechanism to see if there's ever - been a thread-specific object created *without* having to - actually create one if one hasn't been created yet! Thanks to - Detlef Becker (beckerd@erlh.siemens.de) for pointing this out. - - * include/makeinclude/platform_sunos5_sunc++_orbix.GNU (LIBS): - Changed the default compilation strategy for SunOS 5.x machines - to use -mt. This seems to be necessary to build robust - libraries that are thread-safe. Thanks to Phil Mesnier - and Chris Cleeland - for hounding me until I changed the - existing solution. If you *don't* want this behavior you need - to remove -mt from the platform_macros.GNU file and and remove - the ACE_HAS_THREADS and ACE_MT_SAFE flags, etc. from the - config-sunos5.*.h files. - - * libsrc/Shared_Malloc/Memory_Pool.C (ACE_MMAP_Memory_Pool): Added - a new parameter to the constructor called write_each_page that - if enabled forces a write to each page to ensure that space is - allocated from the file system (otherwise, we can end up failing - due to optimisitic resource allocation...). Thanks to Phil - Brooks for detecting this issue and - implementing a solution. - - * include/ace/sysincludes.h: Added #ifdef support for HP/UX, which - fails to properly wrap with an extern "C" block. - -Mon Sep 11 01:39:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection/Connector.C (handle_input): Changed the call - to Svc_Handler::close() to accept the default value of 0 rather - than -1... Thanks to Mark Seaborn - for noticing this. - - * libsrc/Connection: Changed all uses of ADDR to PEER_ADDR to - avoid a name clash in Linux... Thanks to James Morris - for finding this. - -Sun Sep 10 03:56:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Synch: Added support for "barrier - synchronization" to ACE in the form of ACE_Barrier. Thanks to - Bruce Worden (bruce@betsy.gps.caltech.edu) for suggesting this - and pointing me in the right direction. - - * tests/Threads: Added a test for the new barrier synchronization - mechanism. - -Sat Sep 9 11:58:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Reactor: Changed Reactor::max to Reactor::max3 to - avoid problems with conflicting names of macros in Sun header - files! - -Mon Sep 4 14:34:52 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Signal: The new ACE_Signal_Handlers mechanism - appears to be working! There's a test in ./tests/Reactor/misc - called test-signal.C that illustrates how all this works. - - * libsrc/Reactor/Signal: Added several new methods to - ACE_Sig_Action to make life easier to implement the new - ACE_Signal_Handler code... - - * libsrc/Reactor/Signal.C (ACE_Sig_Action): Changed the order of - the arguments to the ACE_Sig_Action constructor. It's almost - always the case that you want to vary the SignalHandler, but - only rarely do you want to vary the mask or flags. By - reordering this, it's easier to get the correct default values - without adding extra junk... - -Mon Sep 4 01:11:29 1995 Tim Harrison (harrison@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram_Multicast: added support to - allow a port to be reused for multicast sockets. This is useful - if you are multicasting to multiple processes, some of which are - on the same host! - - * libsrc/ASX/Map_Manager: Fixed an odd bug that must have gone - undetected for a long time somehow. Basically, the "is_free_" - field of the ACE_Search_Structure struct was never being set to - it's correct initial value of 1. I don't know how this didn't - surface before... At any rate, it is fixed now... - - * include/ace/sysincludes.h: Changed the inline methods for - SET'ing and CLR'ing bits to be macros in order to get cheap - polymorphic behavior... Also changed them to use the prefix - "ACE_" to avoid namespace pollution. Changed all dependencies - in the source code (only a few...). - - * libsrc/Reactor/Signal: Added a new class called - ACE_Signal_Handlers, which subclasses from ACE_Signal_Handler. - This new class implements the semantics required for Siemens. - For example, this class allows multiple signal handlers to be - registered for the same signal. It also makes SA_RESTART the - default mode. Note that by default, the Reactor uses the - original ACE_Signal_Handler semantics. If you want the new - semantics, simply pass the Reactor a pointer to - ACE_Signal_Handlers. - - * include/ace/sysincludes.h: Removed the automatic inclusion of - ./libsrc/Misc/Misc.h from sysincludes.h since this was causing - problems with include file ordering. - -Sun Sep 3 00:22:11 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Signal.C (remove_handler): Moved a definition of - ACE_Sig_Action out of an inner block to avoid portability - problems. - - * libsrc/ASX/Map_Manager: Improved the documentation of this class - and fixed up a couple of problems with the scope of loop - indexes. - - * libsrc/Misc/{Stack,Set}: Added this new file that contains a set - of Stack and Unordered Set implementations. The Unordered Set - is used in various places in ACE (e.g., libsrc/Reactor/Signal - and apps/Gateway/Gateway/Routing_Entry). - - * libsrc/Log_Msg/Log_Msg: Moved the definition and declaration of - Thread_Specific ace_log_msg from this directory to - ./libsrc/Misc/Misc.h in order to cleanup the namespace and also - to help make this work on DEC platforms... - - * libsrc/Reactor/Signal: Changed ACE_Signal_Handler from a static - class to a non-static class in order to allow subclassing. This - is necessary to support the Siemens requirements. - - * libsrc/Shared_Malloc/Memory_Pool: Modified ACE_MMAP_Memory_Pool - so that it no longer stores the name of the backing store in a - static character array (which made it impossible to have more - than one of these at a time...). The new version stores the - name in each ACE_MMAP_Memory_Pool object. It also selects a - name that won't conflict with other names by using ::mktemp. - - * tests/Shared_Malloc/test_malloc.C (parse_args): Fixed two stupid - omissions of "break" when parsing command-line arguments. Isn't - C++ great?! (NOT)... - - * apps/Synch-Benchmarks: Came up with a killer solution to the - nagging problem of POSIX Pthread's lack of an integral thread id - (a la Solaris threads thr_self()). The solution leverages off - of our new ACE_Thread_Specific wrapper to provide the necessary - functionality. Thanks to Reginald S. Perry (perry@zso.dec.com) - for triggering the thoughts that lead to this solution... - -Sat Sep 2 17:00:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/TLI_SAP/TLI_Acceptor: Changed the implementation - of ACE_TLI_Acceptor so that ACE_TLI_Request is defined inside - the TLI_Acceptor.C file (this is the so-called "Cheshire Cat" - technique). This clean up the code and the global namespace a - bit. - -Fri Sep 1 00:53:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released new version of ACE 3.3 - - * libsrc/IPC_SAP/UPIPE_SAP/UPIPE.C: Fixed a small problem with - failing to #ifdef this file correctly if we don't have - threads... Thanks to John Morey (jmorey@hitel.com) for - reporting this. - - * tests/ASX/CCM_App/svc.conf: Fixed the svc.conf file so that it - looked in the .shobj directory rather than the .obj directory. - - * Released new version of ACE 3.2.9... - - * libsrc/Log_Msg/Log_Msg: Added a new field called "restart_" to - the thread-specific storage. This will be used to control - whether system calls are restarted when interrupted. - - * Changed inheritance syntax from - - class xxx - : public yyyy - { - }; - - to - - class xxx : public yyyy - { - }; - - so that the OSE tools would work correctly. - -Thu Aug 31 00:12:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/UPIPE_SAP: Changed all uses of UPIPE_Addr to - SPIPE_Addr since they were the same thing. This also allows - much reuse of code... - - * libsrc/IPC_SAP/{TLI_SAP,SOCK_SAP,SPIPE_SAP}: fixed the - "complete" method for these classes so that it uses the new - ACE::handle_timed_complete() method in libsrc/Misc. This cleans - up the code by merging common logic. - - * libsrc/IPC_SAP/{DEV_SAP,FILE_SAP,SPIPE_SAP}: fixed the "connect" - method for these classes to conform to the API used by the - SOCK_SAP and TLI_SAP wrappers. In addition, cleaned up the code - so that common logic was pushed into a new method in libsrc/Misc - called ACE::handle_timed_connect(). - -Wed Aug 30 00:20:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection/Acceptor.C (open): Fixed this method so that - it returns a value on all paths through the code... - - * libsrc/IPC_SAP/TLI_SAP/TLI.C (ACE_TLI): Moved the option - allocation code from the TLI::open() method into the TLI - constructor in order to make sure it is always called! - - * libsrc/IPC_SAP/DEV_SAP/DEV_Connector: Changed the signature of - the DEV_Connector::connect method to allow users to specify - flags, permissions, and timeouts (this is now consistent with - other parts of ACE). - - * libsrc/IPC_SAP/FILE_SAP/FILE_Connector: Changed the signature of - the FILE_Connector::connect method to allow users to specify - flags, permissions, and timeouts (this is now consistent with - other parts of ACE). - - * tests/IPC_SAP/TLI_SAP: Updated the test code to check the new - timer support for connection establishment. - - * libsrc/IPC_SAP/TLI_SAP: Updated the code to make it conform to - the interfaces provided by SOCK_SAP. This primarily affected - the TLI_Acceptor and TLI_Connector classes in order to add - support for timed connects and accepts. - - * libsrc/Reactor/Signal.C: Modified Signal_Handler::dispatch so - that it saves/restores errno to prevent it from being corrupted - by the handle_signal callback. Thanks to Detlef for suggesting - this. - - * libsrc/Shared_Malloc/Memory_Pool: Changed the name of - ACE_Local_Memory_Pool to ACE_Sbrk_Memory_Pool. Then added a new - version of ACE_Local_Memory_Pool that uses the C++ operator new - to acquire chunks of memory. This enables the ACE Malloc class - to integrate with existing programs that use new/delete. Thanks - to Karlheinz for suggesting this. - - * libsrc/IPC_SAP: Added the UPIPE mechanism donated by SIEMENS. - This provides an intra-process IPC mechanism that has the same - API as the interprocess and network mechanisms. - - * Reran catman on ./man/windex. Thanks to Dieter Quehl - (quehl@csaserv.erlh.siemens.de) for reporting the need for this. - - * Released new version of ACE 3.2.9... - - * tests: Fixed a bunch of minor problems that occurred when - building on HP/UX. Thanks to John Morey - (jmorey@hitel.com) for reporting these. - - * apps/Gateway/Gateway/Peer_Message.h: Changed the default values - of the parameters to Peer_Addr so they aren't trying to assign - negative values to unsigned chars! Thanks to John Morey - (jmorey@hitel.com) for noticing this... - -Tue Aug 29 18:52:17 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Thread/Thread_Specific: Changed the constructor so - that it will take an initial TYPE *, which will be used to - initialize the thread-specific object. This is necessary to - support the changes to ACE_Task described in the following - bullet. - - * libsrc/ASX/Task: Added a new class called ACE_Task_Exit to - Task.C. This class is used in conjunction with - ACE_Thread_Specific to keep exit information for a Task in - thread-specific storage. This ensures that the Task::close() - method will get called no matter how the thread exits (e.g., via - Thread::exit() or by "falling off the end of Task::svc_run"). - -Mon Aug 28 09:54:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released new version of ACE 3.2.9... - - * libsrc/Reactor/Handle_Set.C: changed the type of MSB_MASK from - u_long to ACE_UINT32 to handle problems with the Alpha's 64 bit - longs... - - * libsrc/Threads/Thread_Specific: Continued to try and get this - class to build correctly on other platforms... I think I've - just about got it working right now... - - * libsrc/IPC_SAP/IO_SAP/IO_SAP: Added installation flags that - indicate whether the platform has terminal ioctl flags like - TCGETS and TCSETS. I know that SunOS 5.x has these, but I'm not - sure about other platforms... - -Sat Aug 26 13:55:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released new version of ACE 3.2.9... - -Fri Aug 25 09:05:09 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Thread_Specific.h: Fixed a typo that was causing - this file to fail on HP/UX. Thanks to Neil Cohen - (nbc@metsci.com) for finding this! - - * libsrc/IPC_SAP/DEV_SAP/DEV_IO: Added conditional support for - getmsg/putmsg calls in the DEV_IO class. This will make things - work correctly for platforms that don't support SVR4 STREAM - pipes. - - * libsrc/IPC_SAP/FILE_SAP/FILE_IO: Added the same fixes to FILE_IO - that I added to DEV_IO... - - * include/ace/sysincludes.h (MAXNAMELEN): Fixed a typo in - sysincludes.h that caused problems for the G++ compiler. - - * libsrc/Connection/Acceptor.C (handle_close): Removed a - diagnostic message that was getting printed if a - Oneshot_Acceptor had already been removed from the reactor (it's - ok for this call to fail). Thanks to Irfan Pyarali - (ip1@cec.wustl.edu) for noticing this! - - * libsrc/ASX/Task.C (ACE_Task): Fixed a bug in the constructor - that prevented a Message_Queue from being allocated - automagically. - -Thu Aug 24 16:47:14 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/ace/sysincludes.h: added support for 64 bit machines so - that Internet addresses are 32 bits, as they must be! - - * libsrc/Shared_Malloc/Malloc: Changed things so that MALLOC_STATS - is now *off* by default... (also changed the name to - ACE_MALLOC_STATS). - -Wed Aug 23 15:21:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/ace/config-osf1.h: Added support for thread-specific - storage. Please let me know if this breaks on OSF/1! - - * libsrc/Threads/Thread: Added support for the thread-specific - storage wrappers for both Pthreads and Solaris threads. Also, - rearranged some of the code to emphasize similarities between - Pthreads and Solaris threads. - - * libsrc/Threads/Thread_Specific: Updated this to remove "static" - from all the data members in this class since those should be - specific to an *instance* rather than to an instantiation of the - particular template class. Tim claims this works... - - * libsrc/Threads/Token.C: Fixed a couple of typos that misspelled - "assert" (jaysus...). Thanks to David Trumble - (trumble@cvg.enet.dec.com) for noticing this. - - * libsrc/Threads/Token.C (release): Fixed a very stupid bug that - was causing the Token never to become "unused"... No excuses - for this, except that Pthreads is partly responsible ;-) - -Tue Aug 22 11:36:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/ASX/Task: Changed the behavior of task so that it doesn't - try to delete the Message_Queue or Thread_Manager if it didn't - allocate them! Thanks to Karl-Heinz Dorn - (kdorn@erlh.siemens.de) for suggesting this fix. - - * libsrc/ASX/Message_Block: Changed the semantics for - Message_Block::end() so that it returns a pointer to 1 past the - end of the data. This is more consistent with toolkits like - STL. Also changed the behavior of Message_Block::copy() so that - it checks to make sure the data will fit in its buffer. - - * tests and apps: Revised a bunch of files to add #ifdef so that - TLI tests and apps are not compiled if the platform doesn't - support it... - - * Fixed a bunch of minor problems for HP/UX (which lacks TLI and - other common OS features). Thanks to Mark Seaborn - (mseaborn@itthp1.comm.mot.com) for noticing these. - -Mon Aug 21 00:19:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Misc: Changed the name of the class Argument_Vector to - ACE_ARGV. This is a bit more concise... UNIX programmer will - know precisely what argv is... - - * Updated all of ACE to use the new naming scheme, which prepends - all ACE classes with "ACE_". This is an important change since - it prevents ACE from polluting the namespace of applications - (unless they also prefix "ACE_" in front of their classes, which - is not very likely!). - - Since this change basically affects every single file in the - entire release, as well as all existing user code I've written a - perl script called "rename-ace.pl" to automate all of this. - This script is in $WRAPPER_ROOT/bin. To use it, simply type: - - % find . -type f -print | egrep '[Chi]$' | xargs rename-ace.pl - - Note that you will need to change the first line of - rename-ace.pl to point it to whereever perl is located on your - system. - - I've tested this on the entire ACE source code base and it seems - to work fine. Please be careful using it on your code, however, - since it may conflict with names that you use. When in doubt, - remove the '-pi' from the first line of the rename-ace.pl perl - script and replace it with '-p' (which is non-destructive). - Then run the commands above and check the output carefully. - When you're convinced that everything is ok, add the '-pi' back - again. Let me know immediately if you find any problems with - this scheme! - - * libsrc/Connection/Acceptor.C: Added a virtual destructor to the - Oneshot_Acceptor to make sure that descriptors are closed down - correctly. Thanks to Irfan (irfan@wuerl.wustl.edu) for - suggesting this. - - * libsrc: Change all occurrences of Shared_Memory to - SV_Shared_Memory to firmly indicate the origins of this - wrapper... - -Sun Aug 20 23:12:03 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP: added the IO_SAP, DEV_SAP, and FILE_SAP - components donated by SIEMENS to the ACE release. - - * libsrc/ASX: Split the Message_Queue.* files into Message_Block.* - and Message_Queue.* in anticipation of the Windows NT port... - -Fri Aug 18 13:54:09 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Thread_Specific: Move the operator->() - method back into the *.C file in order to make HP/UX - happy... - - * apps/Gateway/Peer: Removed the Options.* files since they - weren't being used and they were causing problems on OSF/1... - - * libsrc/Misc/Profile_Timer: Factored common code together by - making a new typedef called Rusage that defaults to either - struct rusage or prusage_t, depending on installation flags. - Fixed a couple places in the code that were depending on the - prusage_t type (which is now the Profile_Timer::Rusage type...). - -Thu Aug 17 14:31:11 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection/Connector.h: Changed some typedefs in order to - keep the Centerline compiler from crapping out. I can't - *believe* how screwed up that compiler is when it comes to - templates... - - * Released new version of ACE 3.2.9... - - * libsrc/Threads/Synch: Fixed a bunch of typos that showed up - on OSF/1. Also tried to fix some other problems by removing - "const" from all the methods... - -Wed Aug 16 22:26:24 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Thread_Specific.h: Fixed another stupid bug - caused by a braino that failed to unconditionally include - Thread_Specific.i. Stuart Powell found this also... (thanks!). - - * libsrc/Threads/Thread_Specific.h: In Thread_Specific.h the - inlining macros were only included if threads were used. This - obviously didn't work for people without threads... I - moved the #endif for ACE_HAS_THREADS... back before the #ifdef - __INLINE__ stuff (e.g. to line 71). Thanks to Stuart Powell - (stuartp@ot.com.au) for suggesting this. - - * libsrc/Threads/Synch.h: Fixed a typo that manifested itself for - pthreads: Condition count_nonzero_ should obviously be - Condition count_nonzero_. Thanks to Rob Clairmont - (rclairmo@bnr.ca) for reporting this. - -Tue Aug 15 00:31:44 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Log_Msg/Log_Msg.C (log): Fixed a stupid typo (*format++ - should have been format++...). - - * libsrc/Misc/Trace.h: Move the class TSS_Int from within class - Trace to file scope and changed the name to ACE_TSS_Int to - handle problems with the HP/UX compiler. - - * include/ace/sysincludes.h: Added the word "struct" in front - of rusage to make things work on HP/UX. Thanks to Neil Cohen - (nbc@metsci.com) for reporting this fix. - - * apps/TokenServer/server/TokenMap.C: Fixed yet another problem - with scope of variables defined in for loops... - - * Released new version of ACE 3.2.9... - - * libsrc/Connector: Fixed a braino whereby I didn't use consistent - naming for my #defines (PA should have been PRC). Thanks to - Alex (alexey@ace.elektra.ru) for noticing this. - -Mon Aug 14 18:13:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/SPIPE_Acceptor: Modified the interface of open() - and accept() so they would conform to the SOCK_Acceptor and - TLI_Acceptor. This makes it possible to use SPIPE_Acceptor in - similar situations (e.g., Acceptor and Connector patterns). - - * libsrc/ASX/Stream: Fix a bug that occurred when trying to dump() - a linked Stream. - - * libsrc/Connection/Acceptor: Moved the body of the init() method - out of this class since it was unnecessarily dependent on the - INET_Addr domain addressing types. This required changes to the - ./apps and ./tests directory in order to add the init() method - to classes that used the default behavior. - - * libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Acceptor.C: Fixed close() so that - it will call fdetach(2) *before* closing down the descriptor. I - hope this will fix a problem noticed by people at SIEMENS. - - * tests/ASX/Event_Server/Event_Server/Options: Fixed a problem - with the default port numbers (they weren't using the values - from ./include/ace/testconfig.h). - - * include/ace/sysincludes.h (MAXNAMELEN): If MAXNAMELEN is not - defined by a platform then ACE sets it to be FILENAME_MAX, - which should be defined in stdio.h. Thanks to Todd Blanchard - (tblancha@evolving.com) for this suggestion. - -Sun Aug 13 17:02:57 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Service_Configurator/Parse_Node: Changed the name of - Function_Node::symbol (const void *) so that it won't give - those annoying warnings anymore... - - * libsrc/Reactor/Handle_Set: Moved the definition of MSB_MASK from - the header file into a static const within the .C file in order - to avoid overflow problems on certain compilers. - - * libsrc/Threads/Synch: Implemented bare-bones versions of - Semaphore and RW_Mutex for the POSIX Pthreads wrappers so that - they'll be more compatible with the Solaris threads wrappers. - The semaphore implementation uses a Condition object and a - Mutex, which should be a reasonable solution. The RW_Mutex is a - cop-out for now and just uses a Mutex (i.e., no extra - parallelism for readers...). If anyone has a good - implementation of RW_Mutex that they'd like to share please let - me know. - - * libsrc/Threads/Thread_Specific: Fixed the prototypes for copy - constructor and operator=, which were broken... Thanks to Alex - (alexey@ace.elektra.ru) for noticing this. - - * libsrc/Shared_Malloc/Memory_Pool.C: Added some casts to - MAP_FAILED to handle OSF/1. Thanks to Alex - (alexey@ace.elektra.ru) for noticing this. - - * libsrc/Threads/Token: Fixed things so that threads waiting for a - token wouldn't get screwed up by signals that occur... - - * include/ace/sysincludes.h: Changed the #ifdef - ACE_SELECT_USES_LONG to ACE_SELECT_USES_INT for HP/UX since - believe it or not, it really does use int, not long! - - * libsrc/SV_Semaphores: Fixed some weird problems that the HP/UX - compiler was having when trying to inline methods in this class. - As a consequence, I've rearranged the class to avoid inlining - non-trivial methods. Thanks to John Morey (jmorey@hitel.com) - for reporting these problems. - -Wed Aug 9 01:29:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Token: Added a tryacquire() method to become - interface compliant with other LOCK mechanisms. - -Sat Aug 5 09:18:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection: Fixed a couple of bugs when using - the Acceptor and Svc_Handler when ACE_OMIT_SERVICE_CONFIGURATOR - is enabled. Thanks to Stuart Powell (stuartp@ot.com.au) for - bringing this to my attention. - - * include/ace/sysincludes.h: Added a #ifdef for MAXNAMELEN to - handle systems (like HP/UX) that don't support it. - -Thu Aug 3 22:59:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released new version of ACE 3.2.9... - - * libsrc/Reactor/Time_Value.i (normalize): Added new code to - perform normalization of Time_Values. Thanks to Hans Rohnert - (Hans.Rohnert@zfe.siemens.de) of SIEMENS for the suggestion. - -Tue Aug 1 00:19:00 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Changed all code that used Log_Msg::log() directly to use - LM_ERROR or LM_DEBUG. This will ensure that logging will work - with the new thread-specific storage implementation. - - * libsrc/Threads/Thread_Manager.i (open): Fixed this method so - that it is thread-safe when a Thread_Manager is resized. - - * libsrc/ASX/Map_Manager.i (open): Fixed this method so that it is - thread-safe when a Map_Manager is resized. - -Mon Jul 31 12:56:17 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Misc/Trace: Reimplemented the ACE Trace class to use the - new thread-specific storage wrapper. - - * libsrc/Log_Msg: Reimplemented the Log_Msg class to use the new - thread-specific storage wrapper. This shouldn't affect any - existing code that was careful to only use the LM* macros... - - * libsrc/Threads: Added a new class called Thread_Specific which - implements a C++ wrapper for SunOS 5.x thread-specific data - (this will also work for POSIX pthreads I believe). Thanks to - Tim Harrison (harrison@cs.wustl.edu) for coming up with the idea - for using C++ "smart pointers" to implement this. - - * libsrc/Reactor/Timer_Queue.h: Moved Timer_Node from within - Timer_Queue to outside Timer_Queue and renamed it to - ACE_Timer_Node. Unfortunately, some compilers still don't like - nested classes (ugh)... - - * Changed ACE_Synch_Options to be simply Synch_Options since it - is *not* an ACE private class... - -Sun Jul 30 00:07:28 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/makeinclude/README: Added a new #define called - ACE_HAS_THREAD_SPECIFIC_STORAGE, which does exactly what it - sounds like! So far, I know that Solaris defines this. I'm not - sure which other platforms do (perhaps OSF/1 does?). - -Fri Jul 28 14:53:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Fixed a bunch more problems with loop variables that were - uncovered with GCC 2.7. Thanks to Matt Stevens - (mstevens@ent.mrj.com) for noticing this. - - * apps/Logger/Service_Configurator_Logger: Added a new flag called - ACE_HAS_NO_STATIC_DATA_MEMBER_TEMPLATES which is necessary to - workaround bugs with GNU G++... Thanks to Matt Stevens - (mstevens@ent.mrj.com) for noticing this. - - * libsrc/Connection/Connector.C (cleanup_AST): Changed the - parameter list just a tad to try and fix a problem with - G++ (which doesn't seem to like unscoped typedefs in - argument lists or return values. - - * libsrc/Misc/Profile_Timer.i: Changed ::getrusage to be getrusage - to avoid problems with macros and scope operators... - - * include/ace/testconfig.h (ACE_DEFAULT_RENDEZVOUS): Changed the - value from /tmp/foo to /tmp/fifo.ace. Thanks to Neil B. Cohen - (nbc@metsci.com) for suggesting this. - -Thu Jul 27 12:30:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/TokenServer/server/TokenHandler.C (abandon): Fixed a minor - bug that caused assert() to fail when a client abandoned a - Token. - - * libsrc/Reactor: Fixed a bug with the design of the Reactor's - Timer_Queue cancellation mechanism. The new mechanism is much - more robust since it ensures that timer_ids (used to cancel - pending timers) are unique up to values of greater than 2 - billion timers! As long as timers don't stay around longer than - this there should be no problems with accidentally deleting the - wrong timer. Thanks to Bill Sears (wsears@world.std.com) for - noticing this problem. - - One nice consequence to this change is that legacy code that - would have broken with the previous change is now 100% - compatible! - - * Provided a definition of ACE_Synch_Options::arg(const void *), - which I'd forgotten to define before (darn templates...). - Thanks to Tim Harrison (harrison@cs.wustl.edu) for finding this! - - * include/ace/sysincludes.h: Added a total hack to get HP/UX to - understand getrusage(). The trick is to use the following - undocumented syscall: - - #define getrusage(a, b) syscall(SYS_GETRUSAGE, a, b); - - What a hack (but it works...). - -Tue Jul 25 13:20:58 1995 Douglas C. Schmidt (schmidt@kavita.cs.wustl.edu) - - * libsrc/Misc/Profile_Timer: Fixed a typo in Profile_Timer.h - (ACE_HAS_RUSAGE_T should have been ACE_HAS_GETRUSAGE). Thanks - to George Reynolds (george@dvcorp.com) for noticing this. - - * Changed all uses of ::getopt() to use the ACE class Get_Opt - get_opt. Also changed all uses of optarg to get_opt.optarg. - Thanks to Bob Vistica (robertv@ims.com) for detecting and - reporting some inconsistencies in my previous changes... - -Mon Jul 24 19:03:03 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include: I've added config and platform support for SGI IRIX5.3 - for use with the SGI C++ compiler. Thanks to Stuart Powell - (stuartp@ot.com.au) for these config files. - - * libsrc/Connection/Acceptor.C (handle_input): Added the - Event_Handler::DONT_CALL flag when removing the Oneshot_Acceptor - from the Reactor so that we don't set it's peer_acceptor_ to -1. - -Mon Jul 24 12:46:10 1995 Douglas C. Schmidt (schmidt@kavita.cs.wustl.edu) - - * libsrc/Misc/Profile_Timer: Fixed problems stemming from the fact - that HP/UX doesn't seem to support getrusage() (how odd). - - * tests/Connection: a new test directory to test out the Connector - and Acceptor pattern implementations. - -Sun Jul 23 12:26:37 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection/Acceptor.C: Fixed a minor bug with the - Oneshot_Acceptor constructor. Thanks to John Morey - (jmorey@hitel.com) for noticing this and the one below. - - * libsrc/Reactor/Timer_Queue: Moved the static method current_time - from the Timer_Queue.i file to the Timer_Queue.C file. This - avoids a bug with HP/UX C++. - -Sat Jul 22 15:54:27 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released beta version 3.2.9. Once this compiles on all major - platforms then it's time to move to version 3.3. - - * Added a number of miscellaneous changes for OSF/1 courtesy of - David Trumble (trumble@cvg.enet.dec.com). One of these changes - involved changing all uses of Reactor::{ADD,SET,CLR,GET} to - Reactor::{ADD,SET,CLR,GET}_MASK in order to avoid a class with - some symbols in OSF/1. - -Fri Jul 21 00:21:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Finally was able to test ACE on the SunOS 4.x platform (using - the SunC++ 4.0.1 compiler). The entire release compiled - correctly! This is a great relief after fighting with this - stuff for months... If you are building ACE on SunOS 4.x I'd - *strongly* recommend you get SunC++ 4.0.1 since it is the only - compiler that seems to be able to grok the weirdness of SunOS - 4.x... - - * Finished updating all the ./tests and ./apps code so that it - works correctly with the new Acceptor/Connector modifications. - To see examples of these changes check out - ./tests/IPC_SAP/SOCK_SAP/CPP-{nbclient,inserver}.C. - - * libsrc/Misc/Profile_Timer: Merged in the new Profile_Timer - implementation from David Trumble (trumble@cvg.enet.dec.com). - This will work with basically the same interface as the current - scheme even if the OS platform doesn't support the prusage_t - type... - -Thu Jul 20 01:07:23 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection: Added a new class called ACE_Synch_Options - which is used in both the Acceptor and Connector classes to - consolidate options related to synchronous and asynchronous - behavior. - - * libsrc/Connection: Added a new class called Oneshot_Acceptor. - This class inherits from the Acceptor but it only accepts one - connection at a time (i.e., it doesn't keep itself registered - with the Reactor). Several examples in the tests/SOCK_SAP - directory have been added to illustrate how all this works. - - * libsrc/Connection/Connector: completely redid the Connector and - Acceptor class interfaces to incorporate the new changes for - asynchronous and synchronous behavior. The new scheme should be - much more general (and correct...). Thanks to Tim and Irfan for - helping out with this. - - * libsrc/Threads/Synch: Fixed the implementation of Recursive_Lock - so that it won't have race conditions when testing the thread id - and nesting level in parallel threads. - -Wed Jul 19 13:15:05 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Timer_Queue: Added new support for cancellation - of individual Event_Handlers in the Reactor. In addition, it is - now possible to cancel all Event_Handlers with a single call to - Timer_Queue::cancel(). Note that this new scheme will break - existing code since Timer_Queue::schedule() (and - Reactor::schedule_timer()) now return ACE_Timer_Node *'s rather - than ints... - - * libsrc/Service_Configurator/Service_Config: Fixed a problem - where the "-s" option didn't work since it was parsed when - "Service_Config::open" was called - (it sets Service_Config::signum_). However, previously the - signal handler was already setup by the constructor. By moving - this registration to the open() method the problem was solved. - Thanks to Bob Vistica (robertv@ims.com) for noticing this. - - * libsrc/Service_Configurator/Service_Manager: Changed the - Service_Manager::reconfigure_services to use this->signum_ - rather than to hard code SIGHUP. Thanks to Bob Vistica - (robertv@ims.com) for this insight. - -Mon Jul 17 12:08:08 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Threads/Token.C (renew): Fixed a typo so that we compare - this->head_ == 0 rather than this->head_->next_ == 0. - - * libsrc/Reactor/Reactor.h: Changed the Reactor to use the - Reactor_Token rather than the pure Token to make sure that the - sleep_hook() is called to unblock the Reactor. - -Fri Jul 14 14:12:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection: Changed the default behavior of the Connector - and Acceptor classes such that they pass a -1 to - svc_handler_->close() when things go wrong. This is useful as a - flag to close() (e.g., if it needs to figure out what to do if - is shuts down prematurely). - - * libsrc/Connection/Svc_Handler.C: Added a default definition of - the put() method, which is defined as a pure virtual method in - class Task. - -Thu Jul 13 23:10:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/ace/sysincludes.h: Added support for the SGI IRIX 5.3 - OS. More screwy gettimeofday() hacks (what a pain...). Thanks - to Matt Stevens (mstevens@kirk.softeng.infonautics.com) for - these fixes. - - * include/makeinclude/platform_sunos5_centerline.GNU: Fixed a - vexing problem that was causing the Centerline C++ compiler to - puke when compiling ACE. Thanks to Chandra Venkatapathy - (cvenkat@develop.bsis.com) for finding a solution! - -Tue Jul 11 00:01:15 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 3.2.6 for use by Karl and Detlef. - -Mon Jul 10 00:28:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/TTCP: Added support for benchmarking the performance of - Orbix, ORBeline, ACE SOCK_SAP, and C sockets. These results are - available at URL http://www.cs.wustl.edu/~schmidt/COOTS-95.ps.Z - - * libsrc/Service_Configurator/Makefile: Added new commands to the - Service Configurator Makefile so that all automatically - generated flex and yacc symbols (i.e., the "yy" stuff) is - renamed "ace_yy". The purpose is to avoid conflicts with other - uses of flex/yacc lexers/parsers with ACE. Thanks to Steve - Ritter (ritter@titan.com) for this suggestion and code. - - * libsrc/IPC_SAP/TLI: Changed the TLI files so they are - conditionally compiled only if the platform supports TLI... - - * libsrc/Connection: Changed the inlining strategy of Connector, - Acceptor, and Svc_Handler so that very short methods are always - inlined, but anything larger is never inlined... - -Sun Jul 9 14:07:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/ace/testconfig.h: Changed all occurrences of DEFAULT_* - to ACE_DEFAULT_ to prevent namespace collision. - - * libsrc/Connection/Connector: Massively improved the Connector - class so that its connect() method supports the following - behavior (tv == "timeout value" and ur == "use Reactor"): - - Parameters | Description - | - tv | ur | - -----|----------|------------------------------- - | | - NULL | yes | infinite timeout (using Reactor) - | | - time | yes | try asynch transaction for - | | the specified time (using Reactor) - | | - 0,0 | yes | poll; try, if EWOULDBLOCK, - | | then return immediately - | | (using Reactor) - | | - NULL | no | block forever (don't use Reactor) - | | - time | no | do a blocking transaction - | | for the specified time - | | (don't use Reactor) - | | - 0,0 | no | poll; but do not initiate a - | | nonblocking transaction - | | (don't use Reactor) - - * libsrc/IPC_SAP/SOCK_SAP/SOCK_Connector: Changed the behavior of - the SOCK_Connector::connect() method so that it uses Time_Values - rather than a simple flag that indicates whether or not to use - non-blocking connectors. The new scheme is an improvement since - it allows greater control over synchronous and asynchronous - timeouts for connection establishment. This behavior parallels - that of SOCK_Acceptor, as well! If this works well then I'll - update the TLI_Connector and SPIPE_Connector to match this - interface. - - * libsrc: Continued to improve ACE's use of the global name space - by prefixing all "helper" classes with "ACE_" - - * Updated SPIPE_Acceptor so that it would have the same basic - interface as the SOCK_Acceptor and TLI_Acceptor. - - * libsrc/IPC_SAP: Consolidated the handle_timed_wait() methods - used by the TLI, socket, and STREAM pipe wrappers so that they - share the new ACE::handle_timed_accept() method, which is in - libsrc/Misc. - - * libsrc/Misc: Modified the structure of Misc.[Ch]. Originally, - this file contained a bunch of stand-alone C functions with the - prefix "ace_" to keep them from conflicting with user's code. - I've modified things now so that all the miscellaneous functions - are now static methods in class ACE. This provides better scope - control... - - * libsrc/Log_Msg/Log_Msg: Replaced the use of a Mutex in class - Log_Msg with a Recursive_Lock. This is necessary to - handle signals correctly... - - * libsrc/Reactor/Reactor: Modified the behavior of - Reactor::notify() so that writers will block if the pipe is - full. This solves some nasty flow-control problems. - - * libsrc/Reactor/Handle_Set: changed all uses of fd_set to - ACE_FD_SET_TYPE * so that HP_UX would work correctly... - - * include/ace/config-hpux.h: Removed the ACE_HAS_XLI flag until I - get a better idea which HP systems this is installed on. - - * libsrc/Threads/Thread: Added a new static method called - spawn_n() that spawns "n" threads all running the same function. - -Sat Jul 8 14:14:34 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Service_Configurator: Made some miscellaneous changes to - "const" methods and parameters in order to handle the new - Reactor changes (C++ can be such a pain about this - sometimes...). - - * libsrc/Threads: Added "yield" and "sigsetmask" methods to class - Thread. How did I manage to omit these before?! - - * libsrc/Reactor: Updated the Reactor to use the new Token class - described below. This greatly simplies the structure of the - multi-thread support in the Reactor code. In addition, it - should improve performance because it cuts the number of context - switches compared with the old scheme. Many thanks to - Karl-Heinz and Detlef for encouraging me to redo the Reactor - implementation. - - * libsrc/Threads: Added a new class called Token that provides a - flexible and efficient recursive mutex scheme. Thanks to - Karl-Heinz Dorn (kdorn@erlh.siemens.de) and Detlef Becker - (beckerd@erlh.siemens.de) for sharing their original code for this. - -Thu Jul 6 10:37:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Event_Handler_T: Conditionally compiled this so - that it will only compile if the compiler supports template - typedefs (e.g., G++ doesn't seem to like this...). - - * Started to make changes in ACE to deal with the new ANSI C++ - semantics in the scope of variables defined within for loops. - Thanks to Aniruddha Gokhale (gokhale@cs.wustl.edu) for noticing - this in G++ 2.7... - -Wed Jul 5 21:50:39 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection/Svc_Handler: Fixed the behavior of the - Svc_Handler class so that it can be configured with a Reactor - other than Service_Config::reactor, just like the Acceptor and - Connector. Thanks to Karl-Heinz Dorn (kdorn@erlh.siemens.de) - for suggesting this! - -Tue Jul 4 00:21:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added some new changes for Linux courtesy of Charles Rennolet - (clr@thurse.mn.org). - - * libsrc/Reactor/Reactor.C (bit_ops): Fixed a dumb error in - bit_ops that was caused by checking "else if (Reactor::SET)" - rather than "else if (ops == Reactor::SET)". Thanks to Mark - Patton (mark_patton@tx72.mot.com) for finding this bug and - reporting it along with the fix. - - * include/ace/sysincludes.h: Added new fixes for M_SYNC and - ENOTSUP on SunOS 4. - - * libsrc/Reactor: Added new support for integrating X and the - Reactor. These files are called XtReactor.* and XReactor.*. - Thanks to Eric Vaughan (evaughan@arinc.com) for providing this - stuff... - -Mon Jul 3 19:44:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added support for SunOS 5.5 on i86 PC. Thanks to Bin Mu - (mubin@wfg.com) for the config files and fixes. - - * libsrc/Misc/Profile_Timer: Added new support for versions of - UNIX that don't support prusage_t. The new version of - Profile_Timer will use gettimeofday() and getrusage() of - prusage_t and /procfs isn't available... This code hasn't been - tested yet (since I don't have SunOS 4.x) so I don't know if it - works. - - * Hopefully fixed the SunOS4 prototype for gettimeofday(). Thanks - to Andrew McGowan (ajm@se09.wg2.waii.com) for the suggested fix. - - * include/makeinclude/platform_hpux.GNU (CC): Added new support - for building ACE and shared libraries on HP/UX. Thanks to Jam - Hamidi (jh1@osi.com) for this code. - - * libsrc/Reactor/Handle_Set: Fixed Handle_Set_Iterator::operator++ - to check for index to be greater or equal than NUM_WORDS instead - of just equal. This is better for sanity, although it may not be - needed. Thanks to Carlos Garcia Braschi (cgarcia@caramba.tid.es) - for suggesting this fix. - -Wed Jun 14 11:16:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/TLI_Acceptor: modified TLI_Acceptor so that it's - public constructor/open() and accept() methods are more similar - to the SOCK_Acceptor. In particular, added support for - "SO_REUSEADDR" in TLI_Acceptor and time values for accept(). - Thanks to John P. Hearn (jph@ccrl.nj.nec.com), TLI_SAP now does - the right thing for socket options. - - * libsrc/IPC_SAP: Fixed up the SOCK_Acceptor and TLI_Acceptor in - order to add better support for "timed accepts." The new scheme - uses Time_Values, which is more consistent with other parts of - ACE. In addition, the Time_Value was moved from the - constructor/open() to the accept() method, which allows more - fine grained control over this behavior. Thanks to Irfan - (ip1@cs.wustl.edu) for suggesting this. - - * libsrc/IPC_SAP: Cleaned up the SOCK_Acceptor::open and - TLI_Acceptor::open routine. In addition to being more compact - and robust, this routine now also let's open() determine which - local port to bind to (if you pass in Addr::sap_any as the - local_addr). Thanks to Irfan (ip1@cs.wustl.edu) for suggesting - this. - -Tue Jun 13 16:09:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Timer_Queue: Fixed an odd problem with the - Timer_Queue on Solaris. Apparently the select() call will - return slightly earlier than the timeout dictates due to lack of - granularity with the system clock. This was causing problems - where the Reactor wasn't correctly dispatching the - handle_timeout() method of Event_Handlers. The fix was to add a - 10 Millisec "fudge factor" when calling the - Timer_Queue::expire() method. Please let me know if this causes - any problems. Thanks to Giang Hoang Nguyen - (yang@titan.com) to noticing this problem. - - * libsrc/Connection/Acceptor: Enhanced the Acceptor class so that - it is possible to accept a new SVC_HANDLER synchronously, rather - than always driving this acceptance out of the Reactor's event - loop. Thanks to Irfan (ip1@cs.wustl.edu) for suggesting this. - - * libsrc/IPC_SAP/Addr: Changed all occurrences of ace_sap_any to - Addr::sap_any (i.e., sap_any is now a static data member in - class Addr). This is an improvement since it helps to limit the - scope of what would otherwise be global variables... - -Wed Jun 7 17:26:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Logger/Reactor_Logger/Client_Acceptor.i (handle_input): - Fixed a braino that omitted an important block of code! Thanks - to Ken Konecki (kenk@wfg.com) for finding this. - -Fri Jun 2 13:59:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/Addr/INET_Addr.i (set): Removed the special case - for INADDR_ANY. This should just fall right out... - -Thu Jun 1 19:45:21 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/SOCK_SAP/SOCK_Connector: Added support to - SOCK_Connector so that it is possible to bind the local TCP port - number prior to establishing the connection. Also fixed the - TLI_Connector to be consistent with this approach. Thanks to - Mark Patton (mark_patton@tx72.mot.com) for this idea. - - * Fixed a problem with Mem_Map that was caused by the fact that - some versions of Unix (e.g., SunOS 4.x) don't support MS_SYNC... - Thanks to Andy McGowan (mcgowan@wg2.waii.com) for noticing this. - - * Fixed a very stupid bug in ./libsrc/Synch.h that accidentally - omitted this->lock_.acquire() from the Guard class constructor. - Thanks to Bin Mu (mubin@wfg.com) for noticing this! - -Fri May 26 13:20:38 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Connection/Acceptor: Added a new method called - make_svc_handler() that generalizes the dynamic creation of a - SVC_HANDLER by the Acceptor's Template Method handle_input(). - This scheme is completely backwardly compatible with the - original approach, but now allows transparent extension too! - - * libsrc/Connection/Acceptor: cleaned up the Template Method logic - in Acceptor::handle_input. No longer do we set the listener - socket into non-blocking mode and then rely on a -1 with - EWOULDBLOCK to indicate there are no more connections to - establish. This was causing problems for singleton Svc_Handlers - since the Acceptor was setting their peer_stream_ to -1... The - new approach should complete solve this problem. - -Mon May 22 15:10:27 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 3.2.3 so that Bill Sears can test the new - #include "ace/" features. - - * Modified all the ACE source, tests, and apps so that all - #includes of its headers are refixed by ace/, e.g.: - - #include - - There are two reasons for have the include files be of - this form: - - First, you can tell at a glance by looking at the caller where - the library is coming from. - - Secondly, you can build an include tree of the form: - - /include/lib1 - /include/lib2 - /include/lib3 - /include/ace - - which then links to WRAPPER_ROOT. Now, all you have to do - when you build a make file is point to the include root, and - put links in the include root. This is especially helpful - if there are multiple versions. - - This means just one less thing that has to be modified in the - Makefile. Thanks to Bill Sears (wsears@world.std.com) for - recommending this change. - -Sat May 20 17:12:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * config-irix5.3-sgic++.h: Added new configuration support for SGI - IRIX5.3 courtesy of Stuart Powell (stuartp@ot.com.au). - -Sat May 13 20:44:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Generalized the SOCK_Connector::complete method so that it takes - a Time_Value timeout. This allows applications to wait upto a - certain limit before giving up on a non-blocking connection. - Updated the tests in ./tests/IPC_SAP/SOCK_SAP/CPP-inclient.C to - illustrate how this is used. - - * Added some interesting new tests to ./tests/Mem_Map that can be - used to benchmark the performance of various strategies (e.g., - stdio, read/write, mmap, etc.) for copying files. - -Fri May 12 19:09:10 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Mem_Map/Mem_Map: Added two new overloaded methods called - sync() that are wrappers around the msync(3c) system call. Also - added a new unmap() method that gives access to the full - behavior of munmap(3c). - -Wed May 10 14:16:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Tried yet another fix for the gettimeofday() botch that both - Centerline and SunOS 5.4 screw up in different ways. Thanks to - Medhi Tabatabai (Mehdi.Tabatabai@ed.nce.sita.int) for the latest - fixes. - -Tue May 9 19:05:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Handle_Set.C: Fixed some "off-by-one" errors that - were occurring in the Handle_Set::sync() and set_max() methods. - Thanks to Nigel Hooke (n.hooke@trl.oz.au) for finding and fixing - these. - -Mon May 8 02:01:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Reactor.C: Moved the Null_Callback class from - being nested within the Reactor class to outside the Reactor - class. This fixes a problem with the SIG compiler. - - * Released version 3.2.2. - - * libsrc/Reactor/Signal.C: Made the Signal_Handler class - thread-safe as well as signal-safe. - - * libsrc/Reactor/Reactor.C: Modified the new Reactor - implementation slightly to handle signals correctly. - - * libsrc/Threads/Synch.h: Added a new conversion operator to - Recursive_Lock that returns the underlying LOCK in case we need - it for something (e.g., to initialize a Condition object). - -Sun May 7 04:17:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Reactor.C: Finished what I hope will be the last - set of changes to make the Reactor robust in multi-threaded - programs in situations where separate threads are used to - register and remove handlers. The final solution is elegant in - that it does not significantly penalize the performance of - programs that do not use separate threads to register and remove - handlers. Moreover, if you compile without the ACE_MT_SAFE flag - the Reactor will not include additional state information - related to the multi-threaded implementation. - - * libsrc/Threads/Synch.h: Subclassed the Guard class to make a new - class Try_Guard that uses tryacquire() to obtain a LOCK. - -Fri May 5 18:43:50 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 3.2.1 - -Thu May 4 19:43:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/TLI_SAP/TLI_Connector.C (connect): Fixed a - problem whereby a t_bind() was being done twice. Since I didn't - write this code I don't know if my fix will work generically on - all platforms supporting TLI. Please let me know if there are - any problems. - -Tue May 2 17:21:53 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor: Added a new notification feature that allows - multiple threads of control to enqueue Event_Handler * to the - main Reactor thread via the pipe used to wake up the main - Reactor thread. The Reactor will call the handle_exception() - method on Event_Handler with a HANDLE == -1 to notify the - handler. This feature is very useful if you need to have - certain operations (such as handler termination) performed in - the main thread. - -Tue Apr 25 00:34:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor: Fixed a stupid pair of typos in the Reactor that - failed to cast arguments to the pipe to char *. - - * libsrc/Connection: Fixed a portability problem with the - Connector: we can't use RW_Mutex for synchronization since not - all platforms support threads. The quick fix is to use - Null_Mutex, but a better long term approach is on the way! - - * Released version 3.2. - - * Added richer support for the TLI_Connector to make it work - better with protocols other than TCP/IP. Thanks to Mats - Sundvall (sundvall@perrier.embnet.se) for these enhancements. - -Mon Apr 24 02:26:04 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Changed the SOCK_Dgram_Brdcast class name to SOCK_Dgram_Bcast - and the SOCK_Mcast to SOCK_Dgram_Mcast to be more consistent. - - * Massively improved the Reactor's support for multi-threading. - There was actually a major problem in previous versions of ACE - that used poll() as the underlying event demultiplexor. Poll() - produced incorrect results when the Reactor::handle_events() - method was run in one thread, but another thread came along and - registered or removed an Event_Handler. The new version fixes - this problem so that the Reactor will now work correctly in - multi-threaded programs. - - One consequence of this change is that sysincludes.h and the - SunOS 5.x configuration files have been changed so that poll() - is no longer used as the default demultiplexor. The reason is - that poll() doesn't work as efficiently when used in - multi-threaded programs (ugh). See the Reactor code for - examples of how this all works now. Basically, the trick is to - use the select()-style implementation for most of the code, and - transform to poll()-style implementation only when necessary. - -Sat Apr 22 03:35:51 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu) - - * libsrc/ASX/Message_Queue: Added a new method to the - Message_Queue class called unblock(). This method allows one - thread to release all other threads that are waiting for - messages to be enqueued or dequeued on a Message_Queue. - Modified the return value of methods like enqueue_head() and - dequeue_head() so that if a thread unblocks() then these methods - return -1 with errno == ESHUTDOWN. Also changed the name of - some of the internal methods so that they would be more - consistent. - - * libsrc/Connection/Connector: Fixed a stupid bug caused by - failing to have a destructor for Connector. Thus, there are - cases where unconnected Svc_Handlers are left around in the - handler_map_. This causes problems for dynamic linking in - conjunction with the Reactor, so now the destructor iterates - through all the unconnected Svc_Handlers and removes them from - the Reactor. - -Fri Apr 21 15:28:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Signal: Changed Sig_Set::addset() and - Sig_Set::delset() to the more appropriately named sig_add() and - sig_del(). Also added '_' in the Sig_Set method names to be - more consistent... - - * Removed the ./libsrc/IPC_SAP/SOCK_SAP/misc.[hC] file and merged - the one function in that file (ace_bind_port) into - ./libsrc/Misc/Misc.[hC]. - - * Added a bunch of fixes from various people to make ACE compile - better on SGI, SunOS 4, and HP/UX. Thanks for all the fixes! - - * libsrc/IPC_SAP/Addr: Changed sap_any to ace_sap_any to avoid - problems with the namespace. - - * Added a new portability flag that only compiles the SOCK_Mcast.* - stuff if the platform supports multicast! - - * ./libsrc/Shared_Malloc: Fixed some portability bugs with - Memory_Pool.C and added new support for SunOS 4.x running SunC++ - 4.x. Thanks to Steve Warwick (swarwick@arinc.com) for this - strategic help. - -Wed Apr 19 09:05:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Fixed up the ./libsrc/CORBA_Handler so that it will correctly - compile on platforms that don't have Orbix... - - * libsrc/Misc: added a new "Simple String" class called SString. - This is not really meant to be used by end-user applications. - It is used by certain portions of ACE that need to have - operator== and operator!= defined on a string (e.g., the - Token_Server and the Orbix Event_Comm components that use the - Map_Manager). - -Tue Apr 18 00:09:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/ASX: Fixed a stupid bug in Task::activate() that didn't - spawn a thread if the Thread_Manager was NULL... - -Sat Apr 15 19:39:30 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor: Added a new class to the Reactor called - Event_Handler_T.[hi]. This class makes it easy to integrate - existing classes into the Reactor framework without requiring - them to inherit from Event_Handler directly. This technique is - a superset of the DEF_TIE approach used by IONA in Orbix as one - of the ways to combine an existing class (that doesn't know - anything about CORBA) with a CORBA interface. Thanks to Greg - Lavender - (g.lavender@isode.com) for the suggestion. - -Fri Apr 14 14:41:49 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Run catman on the ./man directory so that it now has a windex - file. This facilitates "man -k". - -Thu Apr 13 23:39:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor: Made the Reactor be a stand-alone component that - does not require any other ACE libraries. - - * Added two new methods to the Reactor so that you can now - register or remove a set of HANDLEs in a single call. Thanks to - Bill Sears - (wsears@world.std.com) for this suggestion. Basically, now you - can register or deregister a set of n HANDLEs with one operation - (rather than doing n register_handler () or n remove_handler - ()). - - * include/sysincludes.h: Changed the name of the macro MT to - ACE_MT and DB to ACE_DB to avoid polluting the namespace. - -Wed Apr 12 11:14:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Reactor.C (close): Added code to close down the - pipe handles when the Reactor is shut down. Thanks to Mark - Patton (mark_patton@tx72.mot.com) for this info. - -Fri Apr 7 18:33:30 1995 Douglas C. Schmidt (schmidt@siesta.cs.wustl.edu) - - * Added a new method to CORBA_Handler so that handlers don't need - to subclass from CORBA_Handler, but rather can call the - CORBA_Handler::register_service() method (which is static). - Thanks to Chris Tarr (ctarr@objectspace.co) for this suggestion. - -Mon Apr 3 13:09:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added a new static method to Service_Config.[hC] called - end_event_loop(). This can be used to stop the run_event_loop() - method of the Service_Config. In addition, all the methods in - Service_Config were changed to be static to emphasize the fact - that the Service Configurator is a singleton... - - * include/Trace.h (ACE_TRACE): Changed the macro T to ACE_TRACE. - This will prevent namespace pollution. - - * Added support for the Orbix CORBA implementation. If you don't - have Orbix, you'll need to remove this flag from the - config-sunos5-sunc++.4.x.h file if you are compiling on SunOS - 5.x. - -Sun Apr 2 01:12:19 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added new support for C++ wrappers around the IP multicasting. - There are three new files in ./libsrc/IPC_SAP/SOCK_SAP called - SOCK_Mcast.[hiC] and a new test directory in - ./tests/Reactor/multicast and ./tests/Reactor/ntalker to - illustrate how to use this stuff. Thanks to Tim Harrison - (harrison@cs.wustl.edu) for this code. - -Sat Apr 1 18:48:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added support to the libsrc/Shared_Malloc/Memory_Pool.[hC] class - for System V shared memory, as well as for mmap(2) and sbrk(2) - memory. Please note that this has not been extensively tested - yet, so use with caution... - -Thu Mar 30 21:50:00 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Misc/Atomic_Op: Added the postfix versions of the ++ and - -- operators. This stops the Sun CC compiler from griping about - the "anachronistic" usage when using a++ rather than ++a. - Thanks to Bruce Worden for the - suggestion. - -Wed Mar 29 22:26:37 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Handle_Set: Fixed a weird problem where I was - using NOFILE as the max number of descriptors rather than - FD_SETSIZE. I don't know why I was doing this. - - * Also fixed up a problem with Handle_Set that was causing the - iterator to go nuts when it got a strange initial value of - fd_set in Handle_Set. Orbix triggers this kind of nonsense in - some cases... - -Tue Mar 28 21:01:36 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/Reactor/Reactor.C: swapped the order of dispatching so - that handle_exception methods are dispatched before handle_input - methods to improve response time for exceptions (e.g., OOB - data). Thanks to Detlef Becker - (beckerd@erlh.siemens.de) for suggesting this. - - * Fixed a bug in ./ASX/Stream.i that caused problems when a Module - was popped off a Stream. Thanks to Paul Stephenson for noticing - this and sending me the fix. - - * Changed the Reactor::dispatch methods so that they dispatch the - timers *before* dispatching the I/O-based event handlers. This - is helpful for systems that are time-delay sensitive. - - * libsrc/Reactor/Time_Value: Added new += and -= operators to - Time_Value. Thanks to Alex V. Maclinovsky - (garyh@teleng1.tait.co.nz) for this suggestion. - -Thu Mar 23 15:38:23 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/Addr/SPIPE_Addr.i (set): Fixed a problem that the - HP/UX compiler had with complex arithmetic expressions. - - * libsrc/Service_Configurator: fixed up the Service_Configurator - source code so that it will compile correctly on HP/UX - platforms. - -Tue Mar 21 00:28:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * libsrc/IPC_SAP/SOCK_SAP/LSOCK_Connector.h: Fixed an amazingly - stupid bug with LSOCK_Connector, where I was passing in a - default argument of PF_INET instead of PF_UNIX... Arrgh! - -Mon Mar 20 20:24:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Fixed up the $WRAPPER_ROOT/include/makeinclude/ directory to - define a new set of platform-specific configuration files. This - should greatly improve the portability of ACE to different - OS/compiler platforms. - - * Added a bunch of changes to allow ACE to build with Lucid C++ on - SunOs 4.x. This should also fix some other problems we've been - having with SunOS 4.x. Thanks to Lee Baker (baker@ctis.af.mil) - for these changes. - -Sun Mar 19 00:34:30 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added manual pages for all of the ./libsrc libraries. These - manual pages are all generated automagically from the libsrc - header files. - -Sat Mar 18 10:48:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Finally broke down and fixed the Makefile scheme so that there - is just one shared library (libACE.so) and one archive library - (libACE.a). This should massively simplify the application - development process, though it may require a bit of fixing of - Makefiles to remove all the -lReactor -lIPC_SAP stuff that was - in there before. - - * libsrc/IPC_SAP/TLI_SAP/: Fixed a stupid bug that was causing - core dumps since the TLI option pointers weren't initialized to - 0 in the TLI::TLI constructor. Thanks to Ed Brown for noticing - this (eebrown@netcom.com). - -Wed Mar 15 00:08:19 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added some new fixes to get ACE to run on OSF1 and Linux. - -Tue Mar 14 13:36:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added several changes to the source code and config-hpux.h - configuration file based on comments from Alex Ranous - (ranous@nsa.hp.com). In particular, changed ACE_HAS_NO_FDSET to - ACE_SELECT_USES_LONG. - -Mon Mar 13 09:23:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Improved the Makefile scheme so that the use of PTDIRS is no - longer required. The trick was to link the appropriate template - *.C files into the WRAPPER_ROOT/include directory. This enables - the compiler to find them in one single place. - -Sun Mar 12 22:35:50 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added a new mechanism to clean up the insane number of -D's in - the Makefile. This new mechanism requires a bit more work at - installation time, but should greatly reduce the effort during - normal software development - (once ACE is installed...). See the INSTALL file - for more details. - -Fri Mar 10 17:29:02 1995 Douglas Schmidt - - * Fixed a stupid bug in Map_Manager.i which wasn't correctly - setting default values for fields in one of the Map_Manager - constructors. - -Fri Mar 10 08:54:42 1995 Doug Schmidt - - * /libsrc/Connection/Acceptor.i: Fixed a potential memory leak in - handle_input(). - -Thu Mar 9 11:59:54 1995 Doug Schmidt - - * Changed the Map_Manager::find() method to use class Read_Guard - so that multiple finds may proceed in parallel on a multiple - threaded application. Likewise, changed the implementation of - bind() and unbind() to use class Write_Guard so that destructive - operations will be serialized correctly. One consequence of - this is that RW_Mutex must be used instead of Mutex... - - * Added a new overloaded Map_Manager::unbind() method with an - INT_ID parameter. This parameter that passes back a reference - to the internal id being unbound. This allows the caller to - clean up any dynamic memory associated with the INT_ID. - -Tue Mar 7 13:32:17 1995 Doug Schmidt - - * Changed a bunch more things to get ACE to compile with - Centerline C++. This should also make ACE more portable to - other cfront-based compilers. - - * Had to change the ASX source in ACE to work around a stupid - problem with templates in cfront-based C++ compilers. - Fortunately, it was possible to mask most of the problems using - the C++ preprocessor. - - * There seem to be some problems with cfront-based compilers (such - as centerline). They don't like the new SYNCH::MUTEX usage in - the Message_Queue. - - * Removed several unused local variables in the INET_Addr::set() - method. - -Wed Mar 1 00:35:11 1995 Douglas C. Schmidt (schmidt@tango) - - * Added a major performance boost on high-speed networks. It - turns out that send(3) and revc(3) are slower than write(2) and - read(2) (since the latter are system calls, and the former are - library calls. Therefore, I added new overloaded methods to - SOCK_IO so that write(2) and read(2) are available to the user! - -Tue Feb 28 10:13:09 1995 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Reactor/Reactor.C: Fixed the implementation of the - Reactor::open and Reactor::Reactor constructor so that it is now - possible to resize the size of the Reactor *after* the - constructor has run (by calling open()) *without* having to shut - down the Reactor first. - - * Modified the Reactor::attach() method so that it will ADD the - new bits to the bitmask rather than SET them. Thanks to Mark - Patton for recommending this - (mark_patton@tx72.mot.com). - -Sat Feb 25 15:08:04 1995 Douglas C. Schmidt (schmidt@tango) - - * Released version 3.0.5. - -Fri Feb 24 17:57:01 1995 Douglas C. Schmidt (schmidt@tango) - - * Used the OSE class2man scripts to generate UNIX manual pages for - IPC_SAP, Thread, Connection, and Reactor. Other manual pages - will be forthcoming... - - * libsrc/IPC_SAP/Addr/INET_Addr.i: Fixed a bug in one of the - INET_Addr::set() methods that caused a segmentation fault if - host_name was NULL. In addition, greatly cleaned up the code so - that all the "set" methods share a common basis of code. - -Tue Feb 21 19:32:28 1995 Douglas C. Schmidt (schmidt@tango) - - * Updated the entire release to use the new SYNCH template - interface for Task, Module, Stream, and Message_Queue. This is - *much* cleaner, though it reveals some bugs with the Sun C++ - templates facility. - -Mon Feb 20 22:46:14 1995 Douglas C. Schmidt (schmidt@tango) - - * Changed the SPIPE_SAP, SOCK_SAP, and TLI_SAP *Connector class - methods from open() to connect(). This is a more accurate name - and it also fits in nicely with the Acceptor::accept() method. - - * Started integrating new versions of various header files that - include hooks to automatically generate documentation. - -Tue Feb 14 20:52:13 1995 Douglas C. Schmidt (schmidt@tango) - - * Changed the order in which the Reactor dispatches descriptors. - Originally, it dispatched the "read" descriptors *before* the - "write" descriptors. Now, it dispatches the "write" descriptors - first. This was necessary to handle weird behavior of sockets - over TCP/IP when data is piggy-backed with the final ACK on a - non-blocking connection. - -Mon Feb 13 15:49:21 1995 Douglas C. Schmidt (schmidt@tango) - - * Changed the name of Event_Handler::get_fd() to - Event_Handler::get_handle() to be more consistent with other - usage in ACE. - -Sat Feb 4 22:47:34 1995 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Service_Configurator/Service_Object: changed the - destructor to be virtual (thanks to Steffen Winther Sorensen - for noticing this). - -Sat Jan 28 16:29:49 1995 Douglas C. Schmidt (schmidt@tango) - - * Changed the name of class Map_Manager's Search_Structure struct - to Map_Entry. This is more specific to what that data structure - really does. - - * Began adding support for Linux, courtesy of sts@dad.stibo.dk. - -Sun Jan 22 23:15:38 1995 Douglas C. Schmidt (schmidt@tango) - - * Changed the name of the ./libsrc/Connector-Acceptor directory to - ./libsrc/Connection. Also changed the name of libConn_Acc.so to - libConnection.so to be more consistent. - -Sat Jan 21 13:59:18 1995 Douglas C. Schmidt (schmidt@tango) - - * libsrc/IPC_SAP: Fixed the *Acceptor classes for SOCK_SAP and - SPIPE_SAP so they behave just like FIFO_SAP and contain a method - called remove(). This method closes the underlying descriptor - and also unlinks the local address from the file system. - - * libsrc/ASX/Message_Queue.i (copy): Fixed this code so that it - correctly stores starting at the wr_ptr rather than the rd_ptr. - Thanks to Chris Cleeland - (chris@milo.st-louis.mo.us) for pointing this out - to me. - -Wed Jan 11 13:07:19 1995 Douglas C. Schmidt (schmidt@tango) - - * Changed all uses of class Thr_Manager to class Thread_Manager - and class Thr_Cntl to Thread_Control. This is more readable and - is now consistent with the documentation... - -Tue Jan 10 13:49:31 1995 Douglas C. Schmidt (schmidt@tango) - - * Modified the makefile scheme so that only the *.so files are - built by default. If you want to build both *.a and *.so files, - uncomment out the lines described in - $WRAPPER_ROOT/include/makeinclude/rules.lib.GNU. Note that this - will require you to run make on the ./libsrc directories twice - in order to properly build and install both the *.a and *.so - libraries. - -Mon Jan 9 22:57:29 1995 Douglas C. Schmidt (schmidt@tango) - - * libsrc/Reactor/Signal.h: Changed the name of the Signal_Block - class to the Signal_Guard class to be more consistent with the - Guard class in Synch.h. - -Sat Jan 7 19:49:46 1995 Douglas C. Schmidt (schmidt@tango) - - * tests/ASX/Event_Server/Event_Server: Revised the Event Server - test example to use the Acceptor pattern components. - -Fri Jan 6 23:38:21 1995 Douglas C. Schmidt (schmidt@tango) - - * Added a new method to class Task that turns a task into an - active object (i.e., associates a thread of control with the - task). This is useful since it replaces all the places in - application code that original said "this->thr_mgr_.spawn - (THR_FUNC - (&this->svc_run))", etc... - -Thu Jan 5 21:05:15 1995 Douglas C. Schmidt (schmidt@tango) - - * libsrc/ASX: Changed the capitalization of class STREAM to class - Stream. This seems more reasonable since I don't see any - particular reason to shout about Streams! - - * libsrc/ASX/Task: Changed name of method qreply() to reply() to - reflect the fact that the name of the class is no longer Queue! - - * libsrc/ASX: Made both Task and Message_Queue into parameterized - types. This greatly improves the ability to parameterized - synchronization into an application. - - * Changed all occurrences of timestruc_t to use Time_Value - instead. This helps to improve portability and reduce the - "impedence mismatch" caused by mixing both C and C++ types in - the ACE interfaces. Note that one drawback of this is that we - lose nano-second timing accuracy. However, I don't know of any - real OS platforms that support that degree of precision anyway! - - * libsrc/Reactor: Moved the static "zero" data member from the - Timer_Queue class to the Time_Value class. Also added a new - static data member called "zerop," which is a pointer to "zero". - - * libsrc/Threads/Synch: Changed the interface of class Condition - so that it no longer has both wait() and a timedwait() methods. - Since C++ has default values, these two methods were redundant. - Now, there is only a single method called wait(). By default, - it's argument is 0, which defaults to the original wait() - semantics. If the argument is non-zero then the timewait - semantics apply. - - * libsrc/Threads/Synch: Added a new class called Null_Condition. - This is similar to the Null_Mutex class in the sense that it has - the same interface as class Condition, but it's methods are all - no-ops - (however, wait() and signal() both set errno = ETIME - before returning...). This class is useful for - parameterizing synchronization into an application. - diff --git a/ACE/ChangeLogs/ChangeLog-96a b/ACE/ChangeLogs/ChangeLog-96a deleted file mode 100644 index 5aa3c9b69fc..00000000000 --- a/ACE/ChangeLogs/ChangeLog-96a +++ /dev/null @@ -1,3889 +0,0 @@ -Sun Jun 30 15:28:43 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i (cond_timedwait): Fixed the implementation of the - ACE_OS::cond_timedwait() wrapper such that if the - caller-specified timeout elapses without the condition variable - being signaled that errno is always set to ETIME. This fixes - some inconsistencies that occurred with POSIX pthreads and Win32 - threads. Thanks to Ross Dargahi for pointing - this out. - - * ace/SOCK.cpp: Changed SOCK::close() to use the new - ACE_OS::closesocket() call. This should fix some weird bugs - that have been lurking in the code for some time now! - - * ace/OS: Added a new method to ACE_OS called closesocket(). This - handles the differences between Win32 and UNIX in their - treatment of sockets (e.g., NT requires the use of - closesocket(), whereas UNIX requires the use of close(). Thanks - to Irfan, Prashant, and Tim for figuring this one out! - -Sat Jun 29 21:23:04 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/SPIPE_Acceptor.cpp (create_new_instance): Added the flag - (FILE_FLAG_OVERLAPPED) in call to CreateNamedPipe. - -Fri Jun 28 01:31:24 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Svc_Handler.cpp (open): Fixed a small typo that caused a - compile error if the DEBUGGING macro was enabled. Thanks to - Irfan for finding this. - -Wed Jun 26 03:19:27 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Synch_T.cpp (ts_get): The tss object allocated off the heap - should be released if setspecific fails. Thanks to John Lu - for reporting this. - - * ace/CORBA_Handler.cpp (handle_input): changed ACE_OS::send and - ACE_OS::recv to ACE::send and ACE::recv respectively in - CORBA_Handler.cpp. Thanks to Irfan for pointing this out. - - * ace/Service_Config: slightly modified the Service_Config.[h,cpp] - in order to make it possible to create an ACE_Service_Config - with an external ACE_Reactor as a parameter. On creation I was - handling this partly correct (i.e., not creating a new reactor). - However, there was no flag for remembering this for a later - deletion. Thus, on deletion I was doing a delete on the Reactor - regardless of who created it. This is now fixed. Thanks to - Karlheinz for pointing this out. - - * examples/ASX/CCM_App/CCM_App.cpp: Changed all uses of init (int, - char **) to init (int, char *[]) to work around a "feature" with - MSVC++ 4.x... Thanks to Karlheinz for pointing this out. - - * ace/OS.h: Added a new typedef of TCHAR to be compatible with - Win32 UNICODE type names... - - * ace/{Mem_Map,DEV_Addr,SPIPE_Addr,FILE_Addr}: Added UNICODE - support for Win32 to all interfaces that require filenames. - - * ace/{SPIPE_Stream,SOCK_IO,FILE_IO,DEV_IO}: Added a new pair of - send()/recv() methods that take ACE_OVERLAPPED pointers in order - to make it possible to integrate seamlessly with Win32 - overlapped I/O. Naturally, these methods are simply - "callthroughs" to the ACE_OS versions... - - * ace/OS: Added a new pair of send()/recv() methods that take - ACE_OVERLAPPED pointers in order to make it possible to - integrate seamlessly with Win32 overlapped I/O. - - * ace/SPIPE_Acceptor: Factored out common code in the Win32 - implementation of ACE SPIPES (which uses Win32 Named Pipes, of - course ;-)). - - * ace/SPIPE_Acceptor.h: Removed a vestige of the past -- - ACE_SPIPE_LISTENER_H should be ACE_SPIPE_ACCEPTOR_H... - -Wed Jun 19 19:35:12 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/SPIPE_{Acceptor,Connector}: Modified SPIPE_Acceptor and - SPIPE_Connector to implement Named Pipes on NT. The public - interface remains the same. - -Sun Jun 16 00:45:41 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Service_Config: Provided public accessor methods for the - following data memebers of the ACE_Service_Config: - - reconfig_occurred_ - end_event_loop_ - - Thanks to Steve Warwick for suggesting this. - - * ace/Synch*: Added UNICODE support for the ACE synchronization - classes (e.g., ACE_Mutex, ACE_RW_Mutex, ACE_Semaphore, etc.). - - * ace/OS: Added UNICODE support for the ACE_OS::dl_open() - function, as well as the ACE_OS synchronization functions. - - * ace/CORBA_Handler: Added Seth's changes for Orbix 2.0. - -Sat Jun 1 13:30:55 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Memory_Pool.cpp (remap): Fixed a bug in - ACE_MMAP_Memory_Pool::remap (). The test for whether or not the - addr falls within the range had a '!' (not) missing, that is, it - was failing when it should be succeeding and vice versa. - -Sun Jun 9 00:01:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.24 for testing. - - * ace: Changed all uses of ACE_Guard m (lock_) to ACE_GUARD - (LOCK, lock_), which is a macro that is defined as follows: - - ACE_Guard ace_mon (LOCK); \ - if (m.locked () == 0) return; - - The reason we need this is (1) detect locking failures, rather - than have things fail silently and (2) to automatically detect - deadlock in the Reactor. In addition, I also added - ACE_GUARD_RETURN, which is similar to ACE_GUARD, except that it - returns a "failure" status when the lock is not acquired. - Thanks to Karlheinz for suggesting this. - - * ace/Log_Msg: Added the new thr_state() accessors to Log_Msg. - - * ace/Thread_Manager.cpp: factored out some common code by having - the public interfaces (like resume() and suspend()) utilize the - protected interfaces (like resume_thr() and suspend_thr()). - - * ace/Thread_Manager.cpp: Added sanity checks for suspend(), - resume(), cancel(), etc. so that we don't blow up if someone - tries to perform an operation on an invalid thread id. - - * ace/Thread_Manager: Added a suite of new methods for - (1) cooperatively "canceling" threads and (2) testing if threads - are cancelled (also added similar checks to test if threads are - suspended or resumed). The cooperative cancellation mechanism - is based on a design fleshed out with Detlef and Karlheinz. - It's essentially a compromise between the powerful mechanisms - available via POSIX pthreads vs. the totally lame mechanisms - available in Win32. - - Here's how it all works: - - 1. Added several new methods to ACE_Thread_Manager: - - cancel(thr_id); -- cancels thr_id - cancel_all(); -- cancels all the threads in a Thread_Manager - cancel_grp(grp_id); -- cancels a group of threads in a Thread_Manager - testcancel(thr_id); -- returns "true" if thr_id has been cancelled - - 2. Updated ACE_Log_Msg to maintain the current state of a thread - in thread-specific-storage (TSS). Actually, it's more clever - than that since I really keep a *pointer* to the state of a - thread in TSS. This pointer actually points *back* to the - ACE_Thread_State field in the ACE_Thread_Manager! I use it - as a cache as follows: - - ACE_Thread_Manager::testcancel (thread_t t_id) - { - ACE_MT (ACE_Thread_Mutex_Guard m (this->lock_)); - - // Try to get the cached value out of TSS to avoid lookup. - ACE_Thread_State *thr_state = ACE_LOG_MSG->thr_state (); - - if (thr_state == 0) - { // We need to init the cache. - int i = this->find (t_id); - if (i == -1) return -1; - // Update the TSS cache. - ACE_LOG_MSG->thr_state (thr_state = &this->thr_table_[i].thr_state_); - } - return *thr_state == ACE_THR_CANCELLED; - } - - Note that this allows me to avoid searching the - Thread_Manager on every Thread_Manager::cancel() access - except the first one! - - 3. I've updated the examples/Threads/test_thread_manager.cpp - test file to exercise the new cooperative thread cancellation - scheme. It basically spawns a bunch of threads that go into - their own event loops doing - - if (thr_mgr ()->testcancel (ACE_Thread::self ()) != 0) - break; - - every so often. Naturally, the main thread cancels them by saying - - thr_mgr ()->cancel_grp (grp_id); - - when it wants to inform them to shut down. - - * ace/Thread_Manager: Moved the Thread_State enum from the - ACE_Thread_Descriptor class to OS.h and renamed it to be - ACE_Thread_State. This will make it easier to integrate the - state of a thread in thread-specific storage... - -Sat Jun 8 13:35:17 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i (sema_post): revised the implementation of the POSIX - Pthreads semaphore implementation just a bit in order to make it - slightly more efficient (it now releases the mutex before - signaling the condition variable). - - * ace/OS.i and config-aix.4.1.h: added a fix that separates the - decision about whether optlen is a pointer from the decision of - the type of optlen. This fixes a problem on AIX. Thanks to Bob - Olson for this fix. - - * ace/Proactor.h: Fixed a small glitch that was causing some - compilers to break due to the fact that they can't grok fully - qualified destructor syntax in the class definition. Thanks to - Alfred Keller for reporting this. - - * ace/OS.h: Added some Win32 macros (e.g., GENERIC_READ) to the - UNIX side of the house in order to compile the Proactor on Win32 - and UNIX. - -Fri Jun 7 19:36:27 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added a new Bourne shell script called ACE-install.sh that will - automatically download and install on UNIX machines. Thanks to - Ajit Sagar for contributing this. - -Thu Jun 6 00:37:02 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.23 for testing. - - * ace/Local_Tokens: Updated the *.cpp and *.i files to remove - warnings and generally improve the conformance to the ACE coding - guidelines. - - * examples: Moved the Proactor directory into the Reactor - directory since the Proactor and Reactor are really two - implementations of the same basic pattern. - - * ace/Memory_Pool.cpp: Fixed an inconsistency caused by not - updating __INLINE__ to __ACE_INLINE__. Thanks to Neil Cohen for - finding this. - - * ace: Added support for the Florida State PTHREADS package. - Thanks to Gary Salsbery and - Eric Beser for helping with this. - - * ace: Added support for the m88k OS. Thanks to Gary Salsbery - and Eric Beser - for helping with this. - - * ace/OS.h: Added a default value of NULL to the sigwait() OS - wrapper method to simplify the usecase in certain cases. - - * ace/Memory_Pool.cpp (commit_backing_store): Fixed what is - hopefully the last typo related to the ACE_DEFAULT_BASE_ADDR - macro. Thanks to Neil B. Cohen for reporting - this. - -Thu Jun 6 15:31:40 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * ace/CORBA_Handler.h: This version of the CORBA_Handler works - with Orbix 2.0. Most of the changes involve the use of C++ - Exception Handling (the removal of IT_X), and the location of - some CORBA system exception classes. - - * ace/Event_Handler.h: Added handle_*_complete methods for the - Proactor. The Proactor now takes Event_Handlers and calls back - the **_complete methods when overlapped I/O operations have - completed. - - * ace/Service_Config.h: Added static accessors for the Proactor to - the Service_Config object. Similar to the Reactor accessors, - applications can now use the Service_Config object as the global - access point to the Proactor event demultiplexor. - -Wed Jun 5 22:40:28 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i (t_free): Added a check to avoid deleting a NULL ptr. - This was causing problems for the TLI_Acceptor. Thanks to Ajit - Sagar for reporting this. - - * ace/Makefile: Changed things back so that both static and - dynamic libs are built by default... Thanks to Brad Brown - for pointing this out... - -Sat Jun 1 13:49:51 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.22 for testing. - - * Added Tim Harrison's latest tests for Proactor. - -Sat Jun 1 13:30:55 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Memory_Pool.cpp (remap): Fixed a bug in - ACE_MMAP_Memory_Pool::remap (). The test for whether or not the - addr falls within the range had a '!' (not) missing, that is, it - was failing when it should be succeeding and vice versa. - -Fri May 31 16:31:13 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Rereleased version 4.0.21 for testing. - - * Copied over new versions of the Proactor -- there was a small - problem with the UNIX version that caused it not to compile... - -Fri May 31 00:03:41 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * examples/Proactor/test_proactor.cpp: Added a test program for - the Proactor. Check examples/Proactor/README for more details - on this test example. - - * ace/Proactor.cpp: Added first pass at the Proactor for win32. - The Proactor is a Reactor-like abstraction that uses - asynchronous I/O, rather than synchronous I/O. On Windows NT we - implement the Proactor using overlapped I/O. We'll soon be - porting the Proactor to Solaris using POSIX 4.x aio_* API for - real-time programming. - - Unfortunately, the Proactor has not yet been integrated with - Windows NT WaitForMultipleObjects since it appears that I/O - Completion ports are not "waitable" objects on Windows NT. Does - anyone know if this has been fixed in release 4.0? - -Thu May 30 05:51:23 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Synch.i: Reordered the definitions of several methods in - Synch.i to avoid warnings from G++. Thanks to Marco Sommerau - for noticing - this. - - * ace/Log_Msg.cpp: There was a problem having to do with the order - in which static objects by G++. In particular, G++ was calling - the constructor of the lock_ mutex in Log_Msg.cpp *after* it was - being used for the first time. The right solution is to make - lock_ be a pointer and allocate it once in the instance() - method. Thanks to Marco Sommerau - for finding this - problem. - - * ace/TLI_Acceptor.cpp (close): Make sure to only close down the - TLI_Request_Queue if queue_ is non-NULL! Thanks to Ajit Sagar - for spotting this. - - * ace: Changed all the enums in the various SysV wrappers from - things like CREATE and OPEN to ACE_CREATE and ACE_OPEN to avoid - name clashes with other systems. In addition, also changed - NONBLOCK to ACE_NOWAIT to avoid clashes with the existing - ACE_NONBLOCK macro! Thanks to Steve Warwick - for suggesting this. - - * ChangeLog: Changed all usages of the INLINE macro to ACE_INLINE. - This avoids name clashes with other systems. Thanks to - Chris Eich for - suggesting this. - -Mon May 27 13:03:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Map_Manager.cpp (trybind): The function trybind() doesn't - return a value as it should. A return was missing from the last - line of the function. Thanks to Stuart Powell - for finding this problem. - - * ace/Acceptor.cpp (dump): The debug print referred to - "scheduling_strategy_" which doesn't exist in the relevant - class. Replacing it with "concurrency_strategy_" fixes the - problem. Thanks to Stuart Powell for - finding this problem. - - * ace/Mem_Map.i: Make sure to close down the file mapping - correctly when we upmap the view! - - * ace/OS.h: Changed the default shared memory address from 16 M to - 64 M in order to work around problems with AIX. - - * ace/Memory_Pool: Moved and renamed the enums in - ACE_Shared_Memory_Pool so that they'd be in OS.h. This makes it - easier to remember to change them if they are incorrect. Thanks - to Lionel Mommeja for suggesting this. - - * ace/Stream.cpp: Removed #if defined (ACE_HAS_THREADS) - - * ace/OS.cpp (svc_run): Added a Win32 try/except block to - Spawn_Args::svc_run so that we catch all Win32 structured - exceptions in order to make sure that we clean up correctly when - the thread exits. - -Sun May 26 11:37:08 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp: Used the new Win32 exception - integration in order to ensure that the Name Server will - transparently work correctly when the backing store is extended - by other processes on the same machine. - - * ace/Memory_Pool.cpp: Revised the ACE_MMAP_Memory_Pool to export - the mechanism for extending the virtual memory mapping. This - can now be called by other programs (e.g., in order to integrate - with Win32 Structure Exception Handling). - - * ace/Memory_Pool.cpp: Changed the use of ACE_OS::lseek() to - ACE_OS::filesize() in order to determine the current offset when - we're remapping the address space. - -Wed May 22 13:08:44 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/OS.h (ACE_DEFAULT_TIME_SERVER_STR): Added a new entry for - ACE_DEFAULT_TIME_SERVER_STR. - - * ace/Malloc_T.cpp (advance): Fixed two small bugs. In - ACE_Malloc::try_bind(), if we have a match we need to set - pointer to node->pointer_ and not node->name_. - Ina ACE_Malloc_Iterator::advance(), the continue in the for loop - should be for strcmp != 0 instead of == 0. - -Sun May 19 12:03:11 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.20 for testing. - - * ace/Service_Record.cpp (remove): Fixed a very mysterious bug - that was caused by deleteing an object and then trying to access - it's next_ pointer. This worked on UNIX, but fortunately the - MSVC++ compiler does special things to deleted memory and the - bug was revealed! At long last, MSVC++ does something right - ;-). - - * ace/Module.cpp: Revised the code a bit to use the ACE_SET_BITS - and ACE_CLR_BITS macros to improve readability. - - * ace/SV_Semaphore_Complex.cpp (open): Fixed a race condition - where we weren't correctly checking for EIDRM. Thanks to - Michael Fortinsky for reporting this. - -Sat May 18 10:49:04 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Added a new ace.mak and ace.mdp file for Win32. - - * ace/Service_Record.cpp: Rewrote some code to work around a bug - with MSVC++. This bug was causing problems since the - ACE_Shared_Object methods were getting called, rather than the - Test_Task methods used in the examples/ASX/CCM_App.cpp file. - Thanks to Tom Leith for pointing out this problem! - - * ace/OS.h: Added a new #define for ACE_DEFAULT_SVC_CONF to deal - with differences between NT and UNIX pathnames. - - * ace/Time_Value.h: Moved the definition of the INLINE macro from - OS.h to Time_Value.h so that it will be in scope for - Time_Value.i. Thanks to Neil Cohen for reporting this. - - * examples/Reactor/Misc/signal_tester.cpp: There was a typo in - signal_test.cpp. It had mean to use handle_input() rather than - handle_output() to exercise the asynchronous signal handling - capabilities. This is fixed now. - - * apps/Synch-Benchmarks/Benchmark.cpp (thr_id): Added a new #if - define (ACE_HAS_DCETHREADS) to make this work on AIX. Thanks to - Greg Wilson for reporting this. - - * ace/Local_Name_Space: Moved ACE_NS_String and ACE_NS_Internal - from the *.cpp file to the *.h file to work around a "feature" - of the AIX C++ compiler. Thanks to Greg Wilson - for reporting this. - - * ace/Reactor.h (ACE_Handler_Repository): Changed the type of - cur_size_ from size_t to ssize_t to avoid type mismatches. - - * ace/Name_Request_Reply.cpp (decode): Fixed some inconsistencies - between signed and unsigned loop counters... - - * ace/OS.h: Changed the typedef of pid_t on Win32 from - DWORD to long to be consistent with UNIX. - -Thu May 16 18:49:14 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.19 for testing. - - * build/SunOS5.4/ace/ACE.cpp (ldfind): Fixed a bug in ldfind() - that caused a segfault if we didn't resolve the filename in the - LD_SEARCH_PATH. - - * ace/Reactor and Timer_Queue: Changed the interface of cancel() - to include a const void **arg. If arg is non-NULL then it will - be set to point to the ``magic cookie'' argument passed in when - the Event_Handler was registered. This makes it possible to - free up the memory and avoid memory leaks. - - * ace/Service_Record: Removed the #ifdefs that checked if - ACE_HAS_THREADS because we ought to be able to build all of this - stuff now that we've got the ACE_OS wrappers. - - * ace/Svc_Conf.y: Removed the #ifdefs that checked if - ACE_HAS_THREADS because we ought to be able to build all of this - stuff now that we've got the ACE_OS wrappers. - - * ace/OS.h (ACE_DEFAULT_BACKING_STORE): Made a different - ACE_DEFAULT_BACKING_STORE for NT and for UNIX to handle the - differences in directory separator characters... - -Wed May 15 18:45:48 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * examples/ASX/CCM_App/CCM_App.cpp: Fixed up the test application - so that it should support dynamic linking on Win32. Thanks to - Tom Leith for reporting this. - - * ace: Added the ACE_Export macro to class ACE and the various - "helper" classes related to ACE_Malloc in order to have this - work properly when use with ACE_Malloc outside of the ACE DLL. - - * ace/Svc_Conf.l: Added support for '\' and ':' in the regular - expression for an ACE pathname in order to support Win32 - filenames (e.g., "C:\foobar\"). Thanks to Tom Leith - for reporting this. - - * ace/Malloc_T.cpp (ACE_Allocator_Adapter): Moved the constructor - from the *.i file to the *.cpp file and added a new constructor - that takes both a pool_name *and* a lock_name. This is - necessary because the ACE Malloc now has this API, as well. - - * examples/Threads/test_barrier.cpp (main): Fixed a bug that was - caused by the main() thread exiting before all the other worker - threads had finished "waiting" on their Barrier. The fix is to - use ACE_Thread_Manager to control the thread exits... - -Mon May 13 00:03:09 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * examples/Connection/non_blocking/CPP-acceptor.cpp: Modified the - implementation of the Svc_Handler::open() method so that it will - truly behave as an iterative server (as advertised...). - Currently, it behaves as a half-iterative server (i.e., the - Oneshot_Acceptor is iterative, but the Svc_Handler is - "concurrently"), which is causing problems because we're wiping - out the values of Svc_Handler each time through the main event - loop. Thanks to Gerolf Wendland for noticing this problem. - - * ace/Log_Msg: Added an alternative logging mechanism that makes - it possible to integrate variable argument lists from other - logging mechanisms into the ACE mechanism. Thanks to Chris - Lahey for proposing this. - - * ace/Synch.h: Moved ACE_Process_Mutex so that it appears *after* - ACE_Mutex (since it depends on ACE_Mutex). Thanks to Dieter - Quehl for finding this. - - * Released version 4.0.18 for testing. - - * ace/Name_Space.cpp: Added the ACE_BUILD_DLL macro at the - beginning of this file so that it will build as a DLL on NT - correctly. - - * ace/Name_Space.cpp: Added a default constructor for - ACE_Name_Binding so that it will compile when used as a template - argument for ACE_Unbounded_Set. - -Sun May 12 14:23:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Map_Manager: Totally reworked the Map Manager so that it can - be more flexible with respect to where the allocator comes from. - This is necessary for certain parts of ACE (e.g., - Local_Name_Space) that must be very careful about which - allocator is used to manage memory. - - * ace/Synch: Moved ACE_Process_Mutex and ACE_RW_Process_Mutex - *outside* of the ACE_HAS_THREADS #ifdef since these are now - always defined on all platforms (because the Process_Mutex stuff - uses SV Semaphores, which are portable even if we don't have - threads!). - - * ace/Naming_Context.cpp (parse_args): Removed an unnecessary call - to strdup(). This was detected by Purify! - -Sun May 12 14:26:20 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp (shared_bind): Fixed a small bug. In - computing type_len in shared_bind(), we needed to add 1 to - account for the NUL character. - - * ace/Local_Name_Space.cpp: (list_types): Fixed some potential - memory leaks. In list_types() as well as list_type_entries() - calling pattern.char_rep() was allocating memory which was never - getting deleted. Similarly, in list_names() and list_values, - call to char_rep was also allocating memory that was not getting - deleted. - -Sat May 11 16:19:51 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Log_Msg.cpp (local_host): added a static member to - ACE_Log_Msg that maintains the local host name. Now, instead of - always displaying "", we can insert the actual local - name into the object and then it will be automatically printed - when VERBOSE mode is enabled. Thanks to Chris Lahey for - suggesting this. - - * ace/Local_Name_Space.cpp: Used the new ACE_Name_Binding class to - simplify the implementation of all the list_* methods in - ACE_Local_Name_Space. - - * ace/Name_Space.cpp: Made a number of changes to the - ACE_Name_Binding class in order to make it work more efficiently - and concisely (e.g., reduce the amount of copying and eliminate - the need for converting the type field back and forth to/from - ACE_WStrings). - - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp: - Fixed a typo where #if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) - was *before* the #include of the header file that defines this - macro! Thanks to Nigel for pointing this out, as well. - - * ace: Added a number of fixes to make ACE compile on SCO UNIX - 3.2.4 using gcc 2.7.2. Thanks to Nigel Lowe for - helping with this. - - * netsvcs/lib/Name_Handler.cpp: operation_ needs to be declared as - just LIST_OP and not ACE_Name_Handler::LIST_OP. For some strange - reason NT complains otherwise. Thanks to Prashant for finding - this. - -Fri May 10 01:09:17 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Added new versions of ace.mak and ace.mdp to fix a couple - of minor typos. - - * ace/Malloc_T.cpp (ACE_Malloc): Added a new constructor that - takes both the pool_name and the lock_name explicitly. This is - more flexible. Thanks to Ramesh Nagabushnam - for suggesting this. - - * ace/Malloc_T: Modified the constructor of ACE_Malloc so that by - default the name of the memory pool (which is also used as the - name of the lock...) is ACE_DEFAULT_MUTEX. - - * Released version 4.0.17 for testing. - - * ace/Connector.cpp (create_AST): Must reset errno = EWOULDBLOCK - to avoid making caller's think that something else has gone - awry... Thanks to Steve Warwick for chasing - this down! - - * ace/ACE.cpp (handle_timed_complete): If you issue a non-blocking - connect on a socket, you will have back a failure with errno = - EINPROGRESS. Then, if for some reason, the connection could not - be established, the select (which you have to issue to know - about the completion of connection) will return you the fd set - both in the read mask and in the write mask (infact select - returns 2 in this case). The behaviour above affects the method - ACE::handle_time_complete, so I changed the last part of the - above method, this way: - - if (n <= 0) - { - ... - ... - } - else if (rd_handles.is_set(h)) - { - char dummy; - // The following recv() won't block provided that the - // ACE_NONBLOCK flag has not been turned off . - - if (ACE::recv (h, &dummy, 1, MSG_PEEK) <= 0) - return ACE_INVALID_HANDLE; - } - - // 1. The HANDLE is ready for writing or 2. recv() returned that - // there are data to be read thus the connection was successfully - // established. - return h; - - That is, I reversed the sense of the tests so that the - rd_handles() is checked first for failure along with the recv(). - Thanks to Antonio Tortorici for - suggesting this. - - * examples/Threads/test_thread_manager.cpp (main): Changed argv[1] - to argv[2]. Thanks to Andres Kruse for finding - this problem. - - * examples/Connection/non-blocking: Fixed some nasty bugs that - caused the non-blocking connector and acceptor test programs to - crash and burn. Thanks to Steve Warwick and Gerolf Wendland for - finding this problem. - - * ace/SV_Semaphore_Simple.cpp (open): Check for - ACE_INVALID_SEM_KEY and return -1 in this case. - - * ace/Synch.h: Removed the default value of 0 for the name of the - ACE_Process_Mutex and the ACE_RW_Process_Mutex and replaced it - with a new macro called ACE_DEFAULT_MUTEX. Using 0 didn't make - any sense on either NT or UNIX because process-wide Mutexes - should be named! - - * ace/SV_Semaphore_Simple.cpp (name_2_key): Added a check for name - == 0 and bail out of that's the case rather than crash! - - * ace/Reactor.cpp (wait_for_multiple_events): In the Reactor's - wait_for_multiple_events method, the do {} while () around the - select/poll system call is trying to wait until some "good" - event occurs, with handle_error() taking care of unexpected - problems. In the case of a bad file descriptor, however, - handle_error() returns 0. This was exiting the loop because the - loop exit condition was: - - do { /* ... */ } while (nfound == -1 && this->handle_error () > 0); - - which eventually causes ACE_Service_Config::run_event_loop() to - exit. Since the offending file descriptor is handled by - handle_error(), the loop should continue. Therefore, I've - changed the while to read: - - while (nfound == -1 && this->handle_error () >= 0); - - Thanks to Eric C. Newton for providing this fix. - - * ace/INET_Addr.cpp (string_to_addr): Changed the order of the - parameters so that the form is now "ip-address:port". This - should (finally) be consistent for both string_to_addr() and - addr_to_string()... - - * ace/Log_Msg: Changed the char * parameter of the log() method to - const char *. Thanks to Chris for suggesting this! - - * ace/Synch_T.cpp: Moved the #if defined (ACE_HAS_THREADS) down to - the right part of the file... Thanks to Alex Karev - for finding this. - - * ace/Malloc.h: Added a very important #else... Thanks to Alex - Karev for finding this. - - * ace/Signal.i (ACE_Sig_Guard): Changed the sense of the #ifdef - tests in the ACE_Sig_Guard constructor and destructor from #if - !defined (ACE_MT_SAFE) to #if 0 // !defined (ACE_MT_SAFE) in - order to get the right semantics for signals (which should be - blocked "process wide"). - - * ace/Synch_T.h: put the frigging copy constructor in the public - section of ACE_Atomic_Op because it was causing trouble for - NT... - -Mon May 6 00:11:37 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.16 for testing. - - * ace/Log_Msg.cpp: Was defining ACE_Recursive_Thread_Mutex in the - wrong place (i.e., outside of the #if defined (ACE_MT_SAFE). - This was screwing up HP/UX. Thanks to Neil Cohen for pointing - this out! - - * Incorported new versions of ace.mdp and ace.mak for Win32. - -Sun May 5 16:18:43 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * netsvcs/lib/Server_Logging_Handler.cpp (handle_input): Fixed a - bug whereby handle_input() was returning the number of bytes - read by handle_logging_record() rather than 0 or -1. This was - causing problems for the logger since it was hanging in read()! - - * ace/Synch_T.cpp: Fixed some minor problems with the use of const - in ACE_Atomic_Op that was causing warnings. - -Sat May 4 16:31:46 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu) - - * ace/SOCK_Dgram_Bcast: Reimplemented most of the ACE socket - broadcast mechanism to (1) clean up the code and have it use - other parts of ACE and (2) make it work for Windows NT. Thanks - to Steve Weismuller for the basic - ideas here. - - * ace/INET_Addr: Added a new method to set the port number without - changing the host address. This is useful in the broadcast - class. - - * ace/Log_Record.cpp (print): Changed the hack of replacing the - newline with a call to flush() instead. This seems like a - better fix. Thanks to Alex for suggesting it. - - * ace/Log_Msg.cpp (log): Moved the order of the print operations - so that the ostream one goes last. This avoids a nasty problem - due to the fact that it replaces the newline (if any). Thanks - to Alex for pointing this out too! - - * ace/Log_Msg.cpp (log): Don't auto-increment bp at the end of - the log() method, instead just terminate it: - - *bp = '\0'; // Terminate bp. - - This makes the length computation correct... Thanks to the - ever-vigilent Alexandre Karev for - reporting this. - - * examples/Shared_Malloc/test_malloc.cpp: Fixed a bug where a void - * that was really an int was being cast incorrectly. Thanks to - Raj for pointing this out. - -Sat May 4 12:51:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Reactor.cpp (find): Modified the ACE_Handler_Repository so - that it doesn't crash when it isn't initialized properly. - Thanks to Darrin for pointing this out. - - * ace/Synch_T.cpp (wait): Changed the call wait(ACE_Time_Value *) - to wait(const ACE_Time_Value *) since wait() will not change the - time value object. - - * ace/Thread_Manager.cpp (wait): Changed the call - wait(ACE_Time_Value *) to wait(const ACE_Time_Value *) since - wait() will not change the time value object. Thanks to Chris - Lahey for suggesting this. - - * ace/Synch.h: Added a (const char * = 0) argument to - ACE_Null_Mutex so that it would work correctly with - ACE_Thread_Mutex and ACE_Process_Mutex... - -Fri May 3 17:26:07 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * netsvcs/lib/Name_Handler.cpp (lists_entries): Used '_' with - name/value/type in ACE_Name_Binding to be consistent with the - notation. - -Fri May 3 02:24:19 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Synch: Updated ACE_Process_Mutex to use SV_Semaphore_Complex - as the UNIX implementation. This seems like the only portable - and robust way to get the same semantics on UNIX and on NT! - - * ace/Malloc_T: It turned out there was a subtle bug with - ACE_Malloc on NT when used with the ACE_Process_Mutex - concurrency policy. On NT, we were storing the *HANDLE* of a - mutex in shared memory. Naturally, this didn't make any sense - since each HANDLE is relative to only one process!!! (duh ;-)). - This worked fine on UNIX because mutex_t's created with - USYNC_PROC mode can be stored in shared memory and accessed - directly... - - We fixed this by changing ACE_Malloc so that the - LOCK is allocated in non-shared memory. We then - fixed ACE_Process_Mutex so that on UNIX it is - implemented with SV_Semaphore_Complex. This is - (a) portable and (b) it gives the right semantics. - - As a result, we were able to totally eliminate the storage of - the lock in shared memory. Therefore, it doesn't matter of the - host crashes anymore! In addition, we were able to totally - remove the ugly "init_finished" lock that was previously stored - in shared memory by ACE_MMAP_Memory_Pool. This is *much* - cleaner!! - - Thanks to Karlheinz et al for pointing this problem out in the - first place! - - * ace: Removed a stray file called Svc_Conf_tokens.h. This was - causing problems on Win32 due to name clashes... Thanks to Adam - Miller for pointing this out. - - * ace/SString.cpp (strstr): there were some for (size_t j; ...) {} - if (j == x) constructs in the code that have as of recently - become non-standard. Thanks to Darrin - for reporting this. - -Tue Apr 30 00:18:46 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Thread.i (self): Commented out the ACE_Trace call in the - ACE_Thread::self() methods to avoid infinite recursion problems - on Win32. - - * ace/Token.cpp (ACE_Token): Commented out the ACE_Trace call in - the constructor of ACE_Token to avoid infinite recursion - problems on Win32. - - * ace/Log_Msg.cpp (instance): Moved the definition of the static - variable keylock_ into the static instance() method in order to - avoid "order of initialization" problems on Win32. Thanks - to Tim for figuring this out! - -Sun Apr 28 17:07:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * netsvcs: Rearranged and renamed the subdirectories so that they - are now called ./netsvcs/{lib,clients,servers}. In addition, - moved the Logger, Naming, and Tokens examples from ./examples - into the ./netsvcs/clients directory in order to make the - relationships more clear. - -Sat Apr 27 14:23:43 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Name_Space.cpp (operator ==): Created a new file - Name_Space.cpp and moved the definitions for - ACE_Name_Binding::operator== and ~ACE_Name_Space in it. Also - modified code to use '_' at the end of name/value/type in - ACE_Name_Binding. - -Sat Apr 27 16:00:03 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/INET_Addr.i (get_host_addr): There was an error where - sprintf(s,"%d:%s" ...) should have been %s:%d. Thanks to - Raj for pointing this out. - -Mon Apr 22 01:24:45 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Dump_T.h: #included "ace/Dump.h" so that this file will - compile on HP/UX. Thanks to Neil Cohen for reporting this - problem. - - * Released version 4.0.15 for testing. - - * ace/Synch_T: Added the appropriate "const" qualifiers to certain - operators in ACE_Atomic_Op. - -Sun Apr 21 12:54:18 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Fixed a problem that Dieter was having with the Name Server - when toggling between Naming_Contexts. Basically, what I've - done is - - 1. Moved the unmap() call into the ACE_Mem_Map::close() method - (this ensures that the region is correctly unmapped when the - Mem_Map is deleted). - - 2. I've removed the call to this->allocator_->remove () within - ~ACE_Local_Name_Space. This ensures that we don't remove the - backing store file. - - * ace/Mem_Map.cpp: Modified the ACE_Mem_Map::remove method to call - ACE_Mem_Map::close() in order to share code. - - * ace/Mem_Map.cpp: Modified the ACE_Mem_Map::close() method so - that it unmaps the mapped region before closing down the backing - store. This prevents "dangling mapping." - - * ace/Local_Name_Space.cpp (ACE_Local_Name_Space): Initialized all - the pointers to NULL. - - * ace/Synch_T.cpp (ACE_Atomic_Op): Enhanced the Atomic_Op - implementation by adding an assignment operator and disallowing - the copy constructor (forcing objects of ACE_Atomic_Op to be - passed by reference). - - * examples/Naming/Client/Client_Test: Reorganized the code for - Client_Test so that it will run correctly as a Win32 netsvc - (e.g., added the ACE_Svc_Export macro). - -Sun Apr 21 20:23:40 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Naming_Context.cpp (close): Added a new method to - Naming_Context called close() that deletes the instance of - name_space_. - - * ace/Local_Name_Space.cpp (ACE_Local_Name_Space): Added stuff to - the destructor of Local_Name_Space so that it calls remove on - the allocator_ to ensure we unmap the file. Also, we delete the - allocator_. - - * examples/Naming/Client/Client_Test.cpp (set_proc_local): Changed - set_proc_local (), set_node_local() and set_host() so that - before we change name space, we do a close() on - Naming_Context. The close ensures that we unmap the file as well - as delete the instance of the name space. - -Sat Apr 20 12:39:20 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Removed the Name_Options.* files and merged the - ACE_Name_Options class into Naming_Context.*. This simplifies - some order of include problems... - - * ace/Naming_Context.cpp (init): Switched the code so that rather - than always opening with ACE_Naming_Context::PROC_LOCAL, we use - ACE_Name_Options::context(), which can be overridden by using - the new -c command-line option (e.g., -c NODE_LOCAL). Thanks to - Dieter for suggesting this. - - * ace/OS.i: Modified the Win32 implementation of all the - ACE_OS::flock_*lock() methods so that they'd have the same - behavior as the UNIX ones with respect to a length of 0 meaning - "lock the entire length of the file." This works, of course, by - having each method check if len == 0, and if so, calling - GetFileSize() to set the size of the file. - - * ace/Synch.h: Changed the default len value for all the - File_Lock::*acquire* methods to 1 rather than 0 to work around a - problem with Win32. Thanks to Detlef for reporting this. - - * ace/ACE.cpp (ldfind): Added a strdup() of the LD_SEARCH_PATH - returned by getenv() so that we don't overwrite the environment - variable by using strtok(). Thanks very much to Prashant for - figuring this out! - -Thu Apr 18 22:13:43 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * examples/Naming/Client/Client_Test.cpp (list_value_entries): - Added check in list_name_entries and list_value_entries to see - if type actually exists before trying to print it out. - -Wed Apr 17 16:40:42 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.14 for testing. - - * Added Tim Harrison's new instructions for building and using ACE - as a DLL and SLL on Win32. - - * ace/Svc_Conf.h: Due to the new changes to the yacc code, I had - to move the definition of YYSTYPE into the Svc_Conf.h file - rather than have it in the Svc_Conf.y file. This solves a - variety of multiple-inclusion problems... - - * ace: Modified all the yacc token symbols so that they will be - prefixed with ACE_. This avoids namespace pollution problems. - - * Added the ACE_STATIC_SVC* macro support to a number of files so - that the static versions of all the ACE services will be - registered with the ACE Service Repository correctly. Thanks to - Jesper for pointing this out! - - * ace/OS.h: the first occurence of - - typedef thread_t tid_t; - - in the OS.h file should read - - typedef pthread_t tid_t; - - Thanks to Jan Rychter for reporting this. - - * ace/Read_Buffer.cpp: Fixed rec_read() so that it will fail - correctly when new fails! - -Wed Apr 17 19:05:42 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * netsvcs/lib/Name_Handler.cpp (type_request): Here is a brief - description of the changes made to ACE_Name_Handler to simplify - the dispatch method and make it more elegant: - - 1) I created a table called op_table_. It contains pointers to - member functions of ACE_Name_Handler. This table can be - indexed using the msg_type. However, I went one step further - to have all the list methods be grouped under two - methods. That is, requests for list_names, list_values, and - list_types are handled by one method called lists() and - similarly, requests for list_name_entries, - list_value_entries, and list_type_entries are handled by - another method called lists_entries(). A MASK is used to have - the op_table_ index to the same method for these requests. - - 2) I also created another table called list_table_. This is - primarily used by lists() to keep track of a couple of things: - + pointers to member functions of Name_Handler that - handle the actual request. - + pointers to member functions of Name_Handler that act - as factories to create the appropriate request to - send back. - + description of the message type. - - A different MASK is used to index into the list_table_ to - invoke the appropriate method or get the appropriate description. - - 3) Within the method lists_entries(), I once again make use of - the pointers to member functions technique. This time, - however, I use pointers to member functions of Naming_Context - which I assign in the switch statement. - -Tue Apr 16 13:03:49 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.13 for testing. - - * ace/INET_Addr.i: moved the get_port_number routine up to the top - of the file so it gets defined before it is used. Linux did not - like it where it was... Thanks to Neil Cohen for reporting - this. - - * ace: Split the Dump.* files into Dump_T.* files. This is - necessary to support the template policies of various C++ - compilers. - - * ace/Malloc_T.cpp (dump): Fixed an erroneous use of -> since - guard_ is a non-pointer... Thanks to Neil Cohen for reporting - this. - - * ace/Log_Record.cpp (print): Finally figured out how to do - extensible ostream logging so that it will seamlessly work with - ACE_Log_Msg. This required one change to ACE_Log_Record, - however. In Log_Record.cpp: - - In ACE_Log_Record::print(char *, int, ostream, size_t len), added - - char *t = this->msg_data_[len - 1]; - - if (t == '\n') - *t = '\0'; - - s << this->msg_data_ << endl; - - This is required because the virtual function overflow() in - streambuf does not get called until endl is called to flush the - buffer. Note that (at least on AIX), '\n' is treated separately - from endl and will not cause the overflow() function to be - called. Thanks to Chris Lahey for this idea. - - * ace/OS: Added a new wrapper for strrchr(). - - * ace/Token_Collection.cpp (renew): Added a cast of - (const char *) to token_name so that the conversion operator - will get called correctly. Thanks to Gonzalo Diethelm - for reporting this. - -Tue Apr 16 13:29:32 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Name_Request_Reply.cpp (decode): Fixed a small bug in encode() - and decode() of ACE_Name_Request. When doing ntohs and htons, we - only ought to do it for the name and value part of data. type - needed to be left alone since it is not a short. - -Mon Apr 15 02:31:00 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/makeinclude/platform_hpux_orbix.GNU: Added - David.L.Sames.1@gsfc.nasa.gov (David Sames) config*.h file and - platform_*.GNU file for HP/UX 9.x using Orbix. - - * ace/OS.i: Fixed all uses of pthread_cleanup_{pop,push} so that - they will work correctly if (1) the OS implements the as macros - and (2) if these macros must obey strict nesting rules... - Thanks to Reginald S. Perry for pointing out - how to do this effectively. - - * ace/Thread_Manager.h: Fixed a typo where the typedef - - typedef (ACE_Thread_Manager::*THR_FUNC)(int, int); - - was lacking a return value. Thanks to Reginald S. Perry - for reporting this. - - * netsvcs/bin/main.cpp (main): Fixed the main program so that it - passes the options correctly for the statically linked service - invocations. Thanks to Jesper for reporting this. - - * examples/Naming/Client/Client_Test: Updated the client test - program so that it will work on Window NT, where it's not valid - to select() on non-socket HANDLEs (ugh). Thanks to Jesper for - pointing this out... - - * Released version 4.0.11 for testing. - -Mon Apr 15 00:20:02 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp (strstr): Fixed ACE_NS_String::strstr - to function properly. It was assuming that length of the pattern - as well as the string was in units of ACE_USHORT16 when in - reality the length is number of bytes. - - * ace/Local_Name_Space.cpp (value_): Modified ACE_NS_Internal so - that instead of taking an ACE_NS_String for type, it now take a - char*. It therefore keeps type around as a char*. This should - help solve some problems we were encountering with byte ordering - when sending data between NT machines and Sun. - - * netsvcs/lib/Name_Handler.cpp: Cleaned up lists_entries by making - use of pointer to member functions. A single call to the - appropriate list method takes care of everything. - -Sun Apr 14 16:21:32 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/INET_Addr.i (addr_to_string): Swapped the order that the - hostname and port number are printed to make this consistent - with the way that ACE_INET_Addr::string_to_addr works. Thanks - to Ashish Singhai for pointing - this out. - - * ace/TLI_Acceptor: Changed the methods to take an ACE_Addr rather - than an ACE_INET_Addr. This allows other address families (such - as DECnet) to be used with the TLI wrappers. Thanks to Ajit - Sagar for suggesting this. - - * ace/Local_Name_Space.cpp (list_types): Removed the use of - regular expression matching for the name and value types of the - name server and replaced these with substring matching instead. - This is necessary since we're working with wide characters here, - and it doesn't make any sense to perform regular expressions on - these puppies... - - * ace/Local_Name_Space.cpp: Added a new strstr() method on all the - ACE_NS_String class so that we can compare substrings for wide - character types. - - * ace/SString: Added a new strstr() method on all the - ACE_[WSC]String classes so that we can compare substrings, - even for wide character types! - - * apps/gperf: Incorporated the GNU gperf program from the FSF. - We're going to make some improvements to this for a subsequent - paper. - -Sun Apr 14 15:30:05 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Name_Request_Reply.h: Changed the enum values for the - Constants such as BIND, REBIND, etc. The new values allow us to - do bitwise operations using MASK to be able to dispatch the same - method for all the list operations. For use case of this, please - see Name_Handler::dispatch(). - - * netsvcs/lib/Name_Handler.cpp (dispatch): Completely changed - dispatch() so that now it uses a table of pointer to member - functions to call the appropriate method when a request - arrives. In addition, requests for LIST_NAMES, LIST_VALUES, and - LIST_ENTRIES are now handled by one method called lists() in which - I factored out a lot of common code. Similarly, requests for - LIST_NAME_ENTRIES, LIST_VALUE_ENTRIES, and LIST_TYPE_ENTRIES are - handled by lists_entries(). This has really cleaned up the code. - -Sat Apr 13 15:26:51 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Name_Request_Reply.cpp: Made changes so that all - byte-ordering computations take place in encode and decode - methods of ACE_Name_Request_Reply and ACE_Name_Reply - only. Previously some of these computations were taking place in - Get/Set methods such as name_len() which was highly error prone. - (init): Added new methods called init() to both ACE_Name_Request - and ACE_Name_Reply that initialize length to size of transfer_. This - is needed since the length gets set only once in the constructor - and after that each call to encode() switches the byte ordering - causing problems. - -Sat Apr 13 11:44:16 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.10 for testing. - - * ace: Removed the ACE_HAS_THREAD_T macro from various places. - This was unnecessary given the new scheme for dealing with - threading. - - * ace/config-linux-pthread.h: Fixed a typo that was preventing - compilation from working. Thanks to Jan Rychter - for finding this. - -Fri Apr 12 13:17:47 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Gateway/Gateway: The gateway application appears to - be working again! - - * ace/OS.cpp (thr_create): Based on conversations with Chris - Lahey, modified the pthreads ACE_OS::thr_create implementation - so that it doesn't try to assign the hthread_t thr_handle since - this is meaningless in pthreads... - - * apps/Gateway/Gateway/Gateway.cpp: Fixed a typo that was causing - the system to go into an infinite loop when the config file was - empty! - - * apps/Gateway/Gateway/Gateway.cpp: I was forgetting to set the - line_number to 0 before calling read_entry()... - - * ace/Parse_Node.cpp: Fixed a dumb error that arose because I - forgot that you can't call dlerror() twice and get the same - result (it returns NULL the second time). As usual, RTFM. - - * ace: Removed ACE_HAS_TLI from all the SunOS 4.x config*.h files - and platform_*.GNU files. There are just too many bugs with TLI - on SunOS 4.x to support it by default... - - * examples: Made some minor fixes to make the examples all compile - with GCC. - - * apps/Gateway/Gateway/Gateway: Reimplemented the Gateway - application as to be an ACE network service. This should make - life much easier on platforms with broken C++ templates... - - * apps/Gateway/Gateway: Revised the Config_Parser.* files so that - templates would be split from the non-templates. This avoids - bugs with some C++ compilers... - - * ChangeLog: added the ACE_TEMPLATES_REQUIRE_SPECIALIZATION flag - to the config-linux-pthreads.h file. Thanks to - Jean-Francois.Ripouteau@netsurf.org for reporting this, and also - for archiving the ACE mailing list. - -Thu Apr 11 01:37:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.9 for testing. - - * ace: regenerated all the manual pages and html pages. - - * Built ACE successfully on SGI IRIX 5.3 using GNU G++ 2.7.2. - - * ace/Thread_Manager: renamed the descriptor() accessor methods to - hthread_descriptor() and thread_descriptor() to avoid - ambiguities due to the fact that hthread_t and thread_t can now - be the same type. - - * ace/Thread_Manager: revised the hthread_t so that it is always - large enough to hold valid thread ids. - - * ace: Moved the config-osf1.h file to be named config-osf1-3.2.h - in anticipation of OSF/1 4.0... - - * ace: Changed all occurrences of wchar_t to ACE_USHORT16, which - is a more portable way of representing wchar_t's so that we can - pass them across the network... Unfortunately, wchar_t tends to - be different sizes on different machines, so we can't use the - binary form!!! - - * ace: Added many, many small changes to get ACE to compile on - OSF/1 3.2D using DEC C++ 5.3. Thanks to Tom Marrs - <0002104588@mcimail.com> for slogging through all of this stuff! - - * ace/Thread_Manager.h: Fixed a stupid oversight where I forgot to - add a -1 to the trailing argument of spawn*. Thanks to Neil - Cohen for spotting this. - - * ace: Added a new ACE config file for AIX 3.2.5 courtesy of Bob - Olson . In addition, I changed the name of the - config-aix.h file to be config-aix-4.1.x.h and called the new - file config-aix-3.2.5.h. - - * apps/Synch-Benchmarks/Benchmark.cpp: Added template - specializations for ACE_TSS and ACE_Atomic_Op. Thanks to Matt - Stevens for pointing out the need for this. - - * ace/CORBA_Handler: Added a number of fixes to get the ACE - CORBA_Handler to compile on Win32 with Orbix 2.0. Thanks to - Rich Ryan for these fixes. - - * ace/OS.cpp (thr_create): Fixed a small bug in the pthreads - thr_create() code by dereferencing p_thr before casting it - to hthread_t and assigning it to *thr_handle. - - * ace/OS.i: Backed out the previous changes of pthread_cleanup*. - It turns out that on SunOS 5.5 these macros force a certain - style of programming this is hard to integrate with the existing - implementations of other ACE wrapper methods. Fortunately, none - of this affects existing ACE code since we just use the default - solaris threads API in this case... - - * ace/OS.i: Modified the order of #ifdefs in various ACE_OS::thr_* - methods to take advantage of the pthreads features on Solaris - 2.5. - - * ace: Removed the last few typos that prevented ACE from building - on SunOS 4.x with G++... - - * ace/Thread_Manager: Changed spawn() and spawn_n() so that - they optionally take a group parameter and automatically add - this to an existing thread group. That way we don't need to - spawn the thread(s) and then reassign them after the fact. - The new API automatically assigns the thread(s) to the group - you specify. Thanks to Chris Lahey for this idea. - - * ace: Fully integrated POSIX pthreads into the ACE build for - Solaris 2.5. - - * netsvcs/lib/Server_Logging_Handler.cpp: Rearranged the Server - Logging files so that things will compile and link correctly - using stock GNU G++. - - * ace/Log_Msg.cpp (ACE_Log_Msg): Forgot to initialize the ostream - * to 0. This was causing problems for Win32... - - * ace: *Finally* got the static and dynamic ACE libraries to - compile on SunOS 4.x using stock G++! - - * ace/Synch_T.h: Added a new macro called ACE_SYNCH that will - be ACE_NULL_SYNCH if !ACE_HAS_THREADS and ACE_MT_SYNCH if - ACE_HAS_THREADS. - - * ace/Service_Record.cpp: Changed this to use ACE_SYNCH. This - will fix template problems with G++ on SunOS 4.x. - - * build/SunOS5.5/ace/OS.i (sema_wait): Changed all uses of - ::pthread_cleanup_{push,pop} to pthread_cleanup_{push,pop} since - these are implemented as macros on Solaris.... - -Thu Apr 11 19:43:33 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * examples/Naming/Dump_Restore/Dump_Restore.cpp (init): Modified - Dump_Restore in order to work correctly without having - Name_Options around as a Singleton. - - * examples/Naming/Client/Client_Test.cpp (set_host): Modified - Client_Test in order to work correctly without having - Name_Options around as a Singleton. It simply uses the accessor - provided by Naming_Context to get to Name_Options. - - * ace/Name_Options.cpp: Changed Name_Options so that it is no - longer a Singleton. As a result, now there is an instance of - Name_Options per Naming_Context. Note that for an application to - change Name_Options, it can use the accessor function provided - in Naming_Context. As a consequence of all these changes, we can - now have multiple Naming_Contexts per application. - -Wed Apr 10 20:19:50 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.h: Incorporated a mapping for Solaris 2.5 pthreads so - that it fits in nicely with the earlier ACE pthreads support. - From now on, the pthreads API will be the default threading - scheme for ACE on Solaris 2.5... - - * ace: Added the file name to every *.cpp and *.i file in ACE. - This makes it easier to figure out what's what when looking at - the source code. Thanks to Chris Lahey for suggesting this. - - * ace/CORBA_Handler.cpp (ACE_CORBA_Handler): Added bodies for - the copy constructor and assignment operator of ACE_CORBA_Handler - (which are private) since some compilers generate link errors - for these! Thanks to Rich Ryan for - pointing this out. - - * ace/Synch_T.cpp (ts_get): at line 270 (within - ACE_TSS::ts_get (void) const) there was a keycreate() call - that did not have an instance pointer pass in with it. The - symptom has been that if the last active task has been finished - all active tasks being created afterwards won't get the close() - hook invoked. I've fixed this in order to solve a mysterious - bug with ACE_TSS. Thanks to the ever-vigilant Detlef for - reporting this bug and fix. - -Wed Apr 10 01:56:52 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu) - - * ace: Added the ACE_TEMPLATES_REQUIRE_SPECIALIZATION to - config-sunos5.5-g++.h file. This should allow ACE to build - correctly. Thanks to Adam Miller for - pointing this out. - - * ace: Installed SunOS 5.5, so now we can finally test pthreads! - - * ace/OS: Modified the implementation of mutex_t for Win32 so that - it automatically selects the CRITICAL_SECTION or the HANDLE form - of Mutex depending on whether the type argument is USYNC_THREAD - or USYNC_PROCESS, respectively. This now means that all the - existing ACE code that used ACE_Condition will - continue to work correctly on Win32 and UNIX! - -Tue Apr 9 23:04:30 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu) - - * ace/Synch: Somehow, the definitions for ACE_Thread_Semaphore and - ACE_Process_Semaphore were MIA. I've added the implementations. - Thanks to Bruce Worden for - noticing this... - -Tue Apr 9 02:16:02 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Service_Config.cpp: reordered the #includes in this file so - that it works correctly on Win32. Thanks to Rich Ryan - for help with this. - - * ace/Auto_Ptr.cpp (remove): added the implementations of the - auto_ptr::remove() and auto_array_ptr::remove() static methods. - Thanks to Chris Lahey for noticing their absence... - - * ace/Auto_Ptr: Added the #pragma implementation ("Auto_Ptr.cpp") - statement if defined ACE_TEMPLATES_REQUIRE_PRAGMA to work on - AIX. Thanks to Chris Lahey for this. - - * ace/Makefile: Moved Auto_Ptr from FILES to TEMPLATE_FILES to - work on AIX. Thanks to Chris Lahey for pointing this out. - - * Modified a bunch of the apps and example Makefiles so that - things will build better using G++. - - * ace/Name_Options.cpp (parse_args): Made the "database" name the - same as the process name by default... - - * ace/Reactor.h: Changed the type of current_ in - ACE_Handler_Repository_Iterator from size_t to ssize_t so that - this can handle negative numbers. Thanks to Mark Zusman - for reporting this. - -Mon Apr 8 23:33:15 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * netsvcs/lib/Name_Handler.cpp (recv_request): Fixed a small - bug. In recv_request() ntohl was being called again on length - which was causing problems since the length was already in host - byte order. The ACE Name Server should now be working on NT. - -Mon Apr 8 02:14:30 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Fixed a number of minor problems that caused duplicate - symbols when linking ACE with G++ (no-repo) on SunOS 5.x and - SunOS 4.x. Thanks to Andy Gokhale for help with this. - - * ace: Added Jan Rychter very nice contribution - of pthreads and DCE threads to ACE. This should make life - easier for Linux users and users of other pthreads packages. - - * ace/Service_Config.cpp (process_directives): Changed the code to - use an auto_ptr to make sure that we always release the - ace_obstack memory, regardless of how we exit. - - * ace/OS.i (strerror): Changed sys_errlist to _sys_errlist to work - around bugs with SunOS 4.x. This will undoubted break some - other twisted UNIX system. - - * ace/Local_Tokens.cpp (acquire): Added a return 0 at the very - end... Thanks to Chris Lahey for reporting this (yet - again... ;-)). - - * ace/Parse_Node: Made a bunch of small changes to deal with the - fact that there's no dlerror() equivalent on NT... - - * ace/Task.h: The static function instance() should return - ACE_Task_Exit* (or ), not - ACE_Task_Exit *. Thanks to Chris Lahey for spotting this. - - * ace/Thread_Manager.cpp: added an argument to the exit() method - that allows applications to exit without calling thr_exit. This - would allow the method to be called from within a pthread - cancellation cleanup routine, without calling thr_exit a 2nd - time. Thanks to Chris Lahey for suggesting this. - - * ace/Log_Record.cpp (operator <<): Changed the verbose option so - that it is an attribute, this will allow the ostream to print - verbose information if necessary. Thanks to Chris Lahey for - suggesting this change. - - * ace/config-win32-msvc*.h: Added the - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES flag since it appears - that this causes problem with some versions of MSVC++ 4.0... - - * Released version 4.0.6 for testing. - - * netsvcs/lib/Server_Logging_Handler.h: #included the - Svc_Handler.h file, that absence of which was causing problems - for HP/UX. Thanks to Richard Orr - for reporting this. - - * Made a few minor changes to the source to make sure that it - compiles correctly on SunOS 5.x with G++. - - * ace/Thread_Manager.h: Added the insert() method for the non-MT - version of Thread_Manager. Thanks to Alexandre Karev - for reporting this. - - * ace/Task: Renamed the static double-check lock_ to - ace_task_lock_ to avoid a name conflict with the existing - this->lock_ instance in each class. Thanks to Prashant for - tracking this down... - -Sun Apr 7 14:40:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - Rolled back a change that replaced #defines with typedefs. It - turned out the #defines were there for a reason... Thanks Neil - B. Cohen for pointing this out... - - * ace/OS.h: Added a new check to deal with the fact that many - versions of Pthreads don't support tid_t (which seems to be an - AIXism...). - -Thu Apr 4 01:19:19 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Officially released version 4.0.5... - - * ace/OS.h (ACE_TSS_TYPE): Somehow the ACE_TSS_TYPE macros ended - up *before* the inclusion of Time_Value.h, which meant that - these macros weren't being expanded properly. This may help - explain odd behavior with ACE TSS. - - * ace/Thread_Manager.cpp (insert): Added a new method that allows - us to insert a thread into an ACE_Thread_Control after it's been - constructed. - - * ace/Message_Block: Fixed a typo in the init() method. Thanks to - Ross Dargahi for noticing this. - - * ChangeLog: Finally got all of ACE built on SunOS 5.x and SunOS - 4.x using only the stock GNU GCC compiler (i.e., no template - repository...). This should make it easier to port to other - versions of G++. - - * ace/Task: Modified the ACE_Task and ACE_Task_Exit implemenation - so that it only uses 1 TSS key per ACE_Task template - instantation, rather than 1 TSS key per ACE_Task instance. This - works around horrible limitations with Win32... - - * ace/Thread_Manager: Added new methods to set and get the - Thread_Manager used in a Thread_Control. - - * ace/Pipe.cpp (open): Fixed a bug in where ACE_Pipe::open did not - set this->handles_, thus a garbage handle gets registered. - Inserted the following two lines at line 53 of Pipe.cpp: - - this->handles_[0] = reader.get_handle (); - this->handles_[1] = writer.get_handle (); - - Thanks to Kirk Sinnard for this fix. - - * ace/OS.h: Added a couple of fixes for the SCO port. Thanks - again to Matt Newhook - - * ace/OS.cpp: Integrated Detlef's clever scheme for freeing up - thread-specific storage correctly on Win32... - - * ace/Task.cpp (ACE_Task): Made sure to initialize the - next_-pointer of ACE_TASK and Message_Queue point to NULL. - This fixes a problem on NT. Thanks to Karlheinz for - noticing this... - - * include/makeinclude/rules.lib.GNU (VLIB): Fixed up the ACE - makefiles so that we can now build on SunOS 4.x correctly - without using the template repositories... - - * ace/Service_Config.cpp: Added a bunch of template - specializations so that GNU G++ can be used to compile ACE on - SunOS 4.x *without* requiring the template repository hacks... - Thanks to Mark Zusman for helping with this. - -Wed Apr 3 00:55:12 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * examples/Reactor/Misc/test_reactors.cpp: Added a new torture - test of the ACE_Reactor and ACE_Task. Thanks to Detlef for - contributing this... - - * netsvcs/bin/Makefile: Removed a stray -lACE_svcs from the - Makefile. Thanks to Matt Stevens for reporting this. - - * ace/Synch.cpp: Fixed two mistakes related to keeping INLINE on - the get_thread_id() and get_nesting_level() when I moved them - into the *.cpp file... Thanks to Matt Stevens for finding this. - - * ace/Reactor.cpp (owner): modified owner() so that it returns - the original owner when setting a new owner. This makes it - possible to write code like this: - - thread_t t; - - reactor->owner (ACE_Thread::self (), &t); - reactor->handle_events (); - reactor->owner (t); - - * ace/SOCK_Connector.cpp (connect): Added an additional check for - errno == EWOULDBLOCK for non-blocking connects due to screwy - semantics of Win32 non-blocking sockets... - - * netsvcs/lib/Client_Logging_Handler: Fixed a very obscure bug - that arose due to the way that UNIX select() interacts with - SVR4 MSG_BAND data. It turns out that you must use the - ACE_Event_Handler::EXCEPT_MASK to get this to work properly - (gag). This stuff is much easier with SVR4 poll(). - -Tue Apr 2 13:57:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i: Fixed an error compiling the new Log_Msg.cpp because - when it inlined OS.i, there were references to - ACE_OS::thread_mutex_*() before the functions were declared - inline. The references were assumed to be external, and then - when the linkage was actually declared as inline, the compiler - choked. To fix this, in OS.i, all the thread_mutex_* calls - where moved above the first reference, which was in - ACE_OS::cond_broadcast(). Also moved the mutex*() calls since - they are referenced by the thread_mutex calls. So the order is - mutex*(), then thread_mutex*(), and then cond*(). Thanks to - Chris Lahey for reporting this. - - * netsvcs/lib/Client_Logging_Handler.cpp: Added missing return - values in some of the methods. Thanks to Tim Harrison for - spotting this... - - * ace/Map_Manager.cpp (shared_unbind): It was possible that INT_ID - could be assigned a value from a previously unbound map entry. - The shared_unbind matches the ext_id, but does not see if the - entry had previously been unbound. This causes a problem if the - INT_ID type is a pointer type, and the user of the map deletes - objects as a result of the unbind returning a 0. The correct - solution is to include a test for is_free in the shared_unbind - before checking the equality of the ext_id. Thanks to Phil - Mesnier for reporting this. - - * ace/Reactor.cpp (next): Fixed a bug that prevented the - iterator's next() method from detecting the end of the - iteration. Thanks to Mark Zusman - for reporting this. - - * ace/Reactor.cpp (advance): Fixed a bug that prevented the - iterator from advancing. Thanks to Mark Zusman - for reporting this. - - * ace/Log_Msg.cpp (open): Added a check for logger_key being NULL, - in which case we log to STDERR rather than segfault... - - * netsvcs/lib/Server_Logging_Handler.h: Fixed a typo in - the declaration of - - ACE_SVC_FACTORY_DECLARE (ACE_Server_Logging_Acceptor) - - Thanks to Neil Cohen for finding this. - -Mon Apr 1 00:17:21 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu) - - * ace/Time_Value.i: Fixed two stupid bugs in the Time_Value - relational operators. Thanks to Mathew Newhook - for pointing this out. - - * ace/OS.h: Added an extern "C" block around the netdb, net/if.h, - netinet/in.h, arpa/inet.h to work around problems with SCO. - Thanks to Mathew Newhook for this. - - * ace/Reactor: Merged the ACE_Pipe into the Reactor - implementation. This cleans up some nasty OS-specific code in a - clean way. - - * ace/CORBA_Handler.cpp (ACE_MT_CORBA_Handler): Fixed some typos - that arose during the transition to the ACE_Pipe. - - * ace/Pipe: Added a new open() method that doesn't return the - handles, it just stashes them away for safe keeping. This is - useful for places like the Reactor. - - * ace/Local_Name_Space.h: Added ACE_Export to the front of - ACE_NS_String. Thanks to Detlef for suggesting this. - - * From now on, I'll be numbering each new release of ACE with a - different minor number. However, the latest version of ACE will - also always be available at - - http://www.cs.wustl.edu/~schmidt/ACE.tar.gz - - This is useful if you just want to get the latest one without - having to bother with keeping track of minor numbers. For - instance, that way you can still keep that reference in my - bookmark list and you don't have to remodify it with every - release. Thanks to the ever-vigilant Chris Lahey for suggesting - this. - - * ace: added new a ACE project file (ace.mdp) and Makefile - (ace.mak) to create ACE as a DLL on Win32. This should greatly - simplify the Win32 build process... - - * INSTALL: Added new INSTALL file explaining how to build for - Win32. - - * ace/Thread_Manager.cpp: Fixed a horrible bug with Win32. On - reasonable systems ACE_Thread::exit() should not return. - However, due to horrible semantics with Win32 thread-specific - storage this call can return (don't ask...). Therefore, we need - to reacquire the mutex so that we don't get burned when the - Guard automatically releases it when this method returns. Thanks - to Tim for helping me figure this out. - - * ace: Fixed some problems with errno in Remote_Tokens and - Local_Tokens. - - * ace/Reactor.cpp: Fixed an annoying preponderance of useless - ACE_MT_SAFE #ifdefs in the Reactor implementation. Thanks to - Gerolf Wendland for pointing this - out! - -Sun Mar 31 13:09:27 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu) - - * ace/OS: Changed the implementation of cond_t and rwlock_t for - Win32 to use thread_mutex_t (i.e., CRITICAL_SECTIONS) rather - than mutex_t (i.e., Win32 Mutexes). This should improve - performance without sacrificing generality (of which there is - none at the moment since we don't have process-wide condition - variables or readers/writer locks on Win32 anyway.. - - * ace/Thread_Manager.cpp (remove_thr): Fixed bugs in the - ACE_Thread_Manager class. The wait() member grabbed the - Thread_Mutex lock_, then (if the current_count is not zero) - grabs the Condition lock zero_cond_. Doing so, however - implicitly released lock_, which meant that another thread could - get into wait(), and wait on zero_cond_. zero_cond_ was only - signaled from ACE_Thread_Manager::remove_thr() when the - current_count_ is zero, but it signaled with - ACE_Condition_Thread_Mutex::signal(), which only releases one - thread that is waiting on the Mutex. Thus, any other threads - waiting on zero_cond_ would never be resumed. The fix was to - use ACE_Condition_Thread_Mutex::broadcast() rather than - ACE_Condition_Thread_Mutex::signal() in - ACE_Thread_Manager::remove_thr(). This fix is only reliable - since remove_thr() is called only when ACE_Thread_Manager::lock_ - is held by the calling thread. Thank to Bruce Worden - for reporting problem and - suggesting this fix. - - * ace/Token: Modified this class so that it only works with - ACE_Thread_Mutex (which is more precise than what was going on - before...). - - * ace/Synch.h: Modified ACE_RW_Process_Mutex so that on Win32 it - uses ACE_Process_Mutex until we've got a working - RW_Process_Mutex for Win32... - - * ace/Synch: Removed the ACE_Process_Barrier until we get a - working implementation... - - * ace/Synch: Changed the ACE_Barrier so that it only tries to work - within a single process. - - * ace: Changed all uses of ACE_Condition_Mutex to - ACE_Condition_Thread_Mutex to reflect what's really going on - here... - - * Changed all uses of ACE_Mutex to ACE_Thread_Mutex throughout - ACE. This is *much* more meaningful and makes it possible to do - some great optimizations on Win32! - - * ace: Changed all uses of ACE_Mutex_Guard to - ACE_Thread_Mutex_Guard. This is a more accurate name for how - this is used in ACE. - - * netsvcs/lib/Client_Logging_Server: Reengineered the ACE - Client_Logging service so that fits into the ACE network service - format. This version is particularly interesting since it - illustrates a "Connector-driven" service. In contrast, all the - other ACE network services are "Acceptor-driven" services. - - * netsvcs: Merged the implementation of all the ACE network - services into a single ./netsvcs/lib directory. Each of these - is now a fully dynamically linkable service. Created a single - main.cpp program in the ./netsvcs/bin directory. This main - illustrates how to dynamically link an or all of the ACE network - services to form complete applications. Thanks to Prashant for - help with this. - - * ace/OS.cpp: Changed readv() and writev() so that they will once - again compile for Win32. Note, however, that if you try to - readv() and writev() on the same descriptor you will lose since - they are not atomic! However, this stuff is stuff useful if - you're *not* reading/writing to a common descriptor... - - * ace/Synch_T.cpp: Removed the ACE_Null_Condition<> template. - This didn't really make any sense... - - * ace/OS: Changed the test of lock_.get_nesting_level() in - ACE_TSS_Cleanup::exit () to account for the fact that a - ACE_Recursive_Thread_Mutex now starts out with a nesting level - of 1 when it is first acquired. - - * ace/Synch_T: Removed the implementation of ACE_Recursive_Lock. - It just doesn't generalize correctly to other types of - synchronization mechanisms... - - * ace/Synch: Reimplemented ACE_Recursive_Thread_Mutex using Dave - Butenhof's strategy. This fixes some - latent race conditions in the original implementation. - - * ace: Changed the name of ACE_Recursive_Mutex to - ACE_Recursive_Thread_Mutex since the current implementation - really only works for Thread_Mutexes or Thread_RW_Mutexes... - - * ace: Removed the "Assert.h" file and moved its functionality - into Log_Msg.h. This is more consistent with the rest of the - error reporting and logging in ACE and also avoids some nasty - circular include problems. - - * ace/Local_Tokens.cpp: Changed the use of ACE_RETURN so that it - passes in errno. - - * ace/Log_Msg: Changed the arguments to the ACE_RETURN macro so - that errno can be returned explicitly. - -Sun Mar 31 15:52:58 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp (create_manager): Added three new - methods -- list_name_entries, list_name_values, and - list_name_types. They work similar to list_names, list_values, - and list_types (respectively) except they return the entire - tuple associated with a name binding. - -Sat Mar 30 16:46:32 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/SPIPE_Stream.i (send_handle): There was a typo -- the - parameter shouldn't be "const ACE_HANDLE handle", it should - just be ACE_HANDLE handle. - -Sat Mar 30 16:09:25 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu) - - * INSTALL: Added new Win32 installation instructions to build - ACE as a DLL. - -Sat Mar 30 14:42:02 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Carefully tested ACE on SGI and SunOS 5.x using G++ and CC. - Everything seems to work now... Released version 4.0.2. - - * ace/Acceptor.cpp (ACE_Strategy_Acceptor): Added default - initializations of NULL for service_name_ and - service_description_ in the ACE_Strategy_Acceptor's default - constructor. - - * ace: Fixed a slew of warnings for HP/UX. Thanks to John Morey - for reporting these. - - * ace/FILE.h (ACE_FILE_Info): Changed the type of field size_ from - size_t to off_t to avoid warnings from C++ compilers... - - * ace/OS.cpp (ftruncate): Added a new function for platforms like - SCO that lack ftruncate(). Thanks to Matthew Newhook - for contributing this. - -Sat Mar 30 12:41:16 1996 Douglas C. Schmidt - - * ace: Removed the ACE_svcs library for the time being and merged - everything back into libACE. There were two reasons for this - change: - - 1. There is a subtle dependency between the ACE_Reactor and the - ACE_Local_Tokens* stuff when deadlock detection is enabled. - This was causing problems. - - 2. This was driving GNU G++ nuts because of the need to - do the "prelink." - - Sooo, for the time being, there's just one ACE library. If - anyone wants to take the time to split everything up so that it - works for all different platforms and send me the fixes I'll be - glad to include this in ACE. - - * ace/Thread.i: Made the ACE_Thread::thr_self() methods call - down to the ACE_OS::thr_self() methods for the case where - the platform doesn't support threads. This means that we - only have to set the default thread id in one place... - -Sat Mar 30 11:53:31 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * bin/class2info.awk: Modified the handleClass() AWK function so - that it can correctly deal with the new ACE_Export and - ACE_Svc_Export tags needed to build ACE DLLs... Here's the - trick: - - sub( "^[\t ]*class[\t ]+(ACE_[.]*Export[\t ]+)?", "", $0 ) - - completely intuitive, eh? ;-) - - * apps/Gateway: Reimplemented the Gateway prototype so that it - uses the new Reactor cancel_wakeup() and schedule_wakeup() - methods instead of mask_ops(). - - * ace/Reactor: Added new high-level "scheduling" - operations called schedule_wakeup() and cancel_wakeup(). These - methods utilize the lower-level Reactor mask_ops() methods to - schedule and cancel Event_Handlers for subsequent dispatching by - the Reactor. I added these new interfaces because they are more - intuitive than calling mask_ops(), which is a non-descriptive - name unless you understand the Reactor implementation... - - * ace/config-irix5.*.h: It turns out that on IRIX 5.x the - bi-directional SVR4 pipe semantics are *disabled* by default. - Therefore, I've changed the config-irix4.*.h files to comment - out ACE_HAS_STREAM_PIPES. - -Fri Mar 29 08:25:33 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/ACE.cpp (ldfind): Changed the character given to strtok() to - account for the differences in UNIX and Win32 described in the - follow bullet. - - * ace/OS.h: UNIX and Win32 use different characters to separate - pathnames in their runtime LD search path (':' and ';' - respectively). Therefore, I've added new macros to ACE OS to - account for this stuff portably. - - * ace/OS.i: Changed the behavior of the ACE_OS::thr_self() methods - so that they always return 1 if ACE_HAS_THREADS is *not* - enabled. This makes application code work correctly across - threaded and non-threaded platforms. - - * ace/OS.i: Changed the return value of the Win32 arm of the - ACE_OS::dlopen() and ACE_OS::dlsym() functions so that they are - now identical to the way that UNIX behaves. - - * ace/Svc_Conf.y: added a #define for ACE_BUILD_DLL to make Win32 - happy... - - * ace/Synch.i: Fixed a number of bugs in the ACE_Mutex and - ACE_Thread_Mutex tryacquire_read() and tryacquire_write() - methods. I was calling mutex_lock() rather than - mutex_trylock()! Thanks to Prashant for finding this. - - * ace/OS.cpp (exit): Fixed a bug caused by the fact that the test - for the nesting level of the recursive mutex should have been - for > 0 rather than > 1. Thanks to Kirk Sinnard - <1764@mn.lawson.lawson.com> for tracking this down! - - * ace/Log_Msg: Enhanced ACE_Log_Msg so that it automatically - caches the process id. This makes it more robust even if users - don't call open()! - - * examples/Connection/non_blocking/CPP-connector.cpp Fixed a bunch - of typos that caused templates to fail on HP/UX. Thanks to Neil - Cohen for spotting this. - - * ace/Shared_Memory_SV: Change all uses of "int id" to "key_t id" - to reflect the new use of key_t in the Memory_Pool. - - * ace/Memory_Pool.cpp (ACE_MMAP_Memory_Pool): Fixed a potential - but in the construction of an MMAP memory pool. Because NT uses - strings rather than integers to name its semaphores we were - passing in junk to the NT Process_Mutex initializer. Arrgh! I - fixed this problem by typedef'ing key_t to be char * on Win32 - and then updating the ACE_DEFAULT_SEM_KEY to be - "C:\\temp\ace.sem" rather than 1234.... Also added a new macro - called ACE_INVALID_SEM_KEY, which is NULL on NT and -1 on UNIX. - - * ace/Log_Msg.cpp (instance): Fixed a typo for HP/UX and - other non-threaded platforms! - - * ace/Synch_T.cpp (ACE_TSS_Guard): Added another small fix - to ACE_TSS_Guard to make sure we free up the key when we - go away. - -Thu Mar 28 15:28:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.h: changed the names of macros ACE_DYNAMIC_SVC* to new - names that reflect their new, more general nature now that we've - got the ACE_Static_Svcs stuff... - - * ace/Service_Config.cpp (load_defaults): Added a very nice - mechanism that generalizes the configuration of statically - linked services. This makes it possible to insert statically - linked services into a program without changing any of the - existing ACE_Service_Config code. These static services can - then be enabled via the svc.conf file using the "static" - directive. Thanks to Matthew Newhook for - suggesting this and for doing the bulk of the implementation. - - * ace: Commented out the ACE_TRACE calls in ACE_Unbounded_Set, - ACE_OS, and all the ACE synchronization wrappers to work around - some horrible dependencies with Win32 and thread-specific - storage... The moral here is that you have to be careful what - you trace because circualar dependencies abound... My new - policy is that low-level routines are not automatically traced - because they can cause infinite recursion. - - * ace/Synch_T.cpp: Fixed a nasty bug with ACE_TSS_Guard. This was - causing programs that uses ACE_TSS_Guard to segfault... Thanks - to Kirk Sinnard for reporting this. - - * ace/Synch: Added "lock()" methods to all the ACE synchronization - wrappers to return the underlying C level object... This is - necessary at some points in ACE. - - * ace/Synch: Fixed a horrible bug in ACE_Recursive_Mutex and - ACE_Recursive_Lock that was causing instant deadlock because the - non-recursive Solaris/Pthread mutex was being acquired too - eagerly... - -Thu Mar 28 12:14:57 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Map_Manager.cpp (rebind): Added a new method called resize() - which increases the size of the map. Both open() and - shared_bind() make use of this method to dynamically increase - the size of the map. - - * ace/Local_Name_Space.cpp (shared_bind): Modified shared_bind() - in accordance to the changes to Map_Manager. shared_bind() no - longer has to check if the map runs out of room since - Map_Manager dynamically grows the map. - - * ace/Map_Manager.cpp (shared_bind): Changed shared_bind() so that - when the map reaches max_size_, we grow the map by DEFAULT_SIZE - by making a call to open(). - -Wed Mar 27 20:00:47 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp (shared_bind): Fixed a bug which was - allocating memory for a name binding which would fail on a bind - since there already existed a binding. This was causing the - mapped-file to grow even when binds would fail. - -Tue Mar 26 13:49:24 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/INET_Addr.i (addr_to_string): Moved the order of - get_host_addr() so that it comes before addr_to_string(). - Thanks to Neil Cohen for finding this. - - * ace/Synch: Added a new implementation of ACE_Thread_Mutex that - takes advantage of the new ACE_OS::thread_mutex_* mechanisms. - - * ace/OS: Added a new set of ACE_OS::thread_mutex_* mechanisms - that map efficiently to either Win32 CRITICAL_SECTIONs or UNIX - mutex_t's with type set to USYNC_THREAD. This allows ACE to - take advantage of the lightweight Win32 synchronization - mechanisms. When Windows NT 4.0 comes out, we'll at last have a - perfect mapping since WinNT 4.0 supports - TryEnterCriticalSection! - -Tue Mar 26 17:35:31 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Map_Manager.cpp: Added two new methods -- total_size() and - current_size() which return the max_size and current_size of the - map respectively. - -Mon Mar 25 20:22:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Service_Config.cpp (initialize): Updated the use of ACE_ARGV - to use the new method names. - - * ace/ARGV.cpp (ACE_ARGV): Changed the name of the two main - methods of ACE_ARGC from count() and operator&() to argc() and - argv(). This seems much more consistent with UNIX and C/C++ - naming conventions. - - * ace/ARGV.cpp (ACE_ARGV): Added environment variable substitution - to the ACE_ARGV class using the new ACE::strenvdup() method. - This is transparently available to the ACE Service Configurator - now, which enables the svc.conf file to include things like - this: - - dynamic Name_Service Service_Object * - name_svc.so:make_Name_Service() "-p $PORT -h $HOST" - - * ace/ACE: Added a new function called strenvdup() that returns a - dynamically allocated duplicate of its argument, - substituting the environment variable if str[0] == '$'. - - * ace/Naming_Context: Modified this class so that it now inherits - from ACE_Service_Config. This enables application programmers - to dynamically link instances of ACE_Naming_Context into their - applications via the svc.conf file. - - * ace/OS.i (access): Added a new wrapper for the access() method. - - * ace/Local_Name_Space.cpp: Fixed an error in each list_xxx - methods. If there's an error in the for-loop we must still call - ACE_OS::free() to release resources. Thanks to the - ever-vigilant Karlheinz Dorn for spotting this. - - * ace/Strategies: added virtual methods with name dump() to - ACE_Scheduling_Strategy, ACE_Schedule_All_Reactive_Strategy, and - ACE_Schedule_All_Threaded_Strategy. These methods are - referenced in ACE_Strategy_Acceptor::dump() method - (Acceptor.cpp). Thanks to Alexandre Karev for reporting this. - - * include/makeinclude: Added a number of changes to allow ACE to - build shared libraries correctly on AIX. Thanks to Chris Lahey - for these fixes. - - * ace/Makefile: added tempinc to the list of directories to delete - for "clean". Also, between the call to the two sub make files, - added a $(RM) -rf tempinc. Since we make both libs from the - same directory, we need to delete the tempinc directory to be - sure we don't get the templates generated for libACE included in - libACE_svcs. - - * ace/OS.i: Improved the mapping between ACE Win32 GetLastError() - values and POSIX-like errnos. This is now centralized in the - ACE_FAIL_RETURN macro. - - * examples/Threads/test_thread_specific.cpp: Added many new tests - to exercise the ACE thread-specific storage mechanisms on Win32 - and UNIX. - -Mon Mar 25 4:00:01 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Name_Options.cpp (parse_args): Added a new data variable - called database_ that keeps the name of the name server - database. Also added accessor methods for this. - - * ace/Local_Name_Space.cpp (create_manager): Changed - create_manager() to use ACE_Name_Options::instance ()->database - () instead of ACE_Name_Options::instance ()->process_name(). - - * ace/ACE.cpp (ldopen): Added a new method called ldopen that - finds a file either using absolute path or using - LD_LIBRARY_PATH. If the file is found, it opens the file and - returns a pointer to the file. - - * ace/Parse_Node.cpp: used the new ACE::ldfind() method to locate - the shared object file. This makes it possible to put - "relative" names into svc.conf files and then allow ACE to - locate the appropriate shared object DLL. - - * ace/ACE: added new methods called ldopen() and ldfind() that - find the file either using absolute path or using - LD_LIBRARY_PATH. If found, ldopen() opens the file and returns - a pointer to the file. - -Sun Mar 24 10:41:12 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Compiled ACE successfully on Windows '95. - - * ace/OS: Totally redid the ACE thread-specific storage cleanup - mechanism in OS.cpp to avoid bugs with the previous - implementation. - - * ace/Synch_T: Modified ACE_TSS_Guard so that it will call - ACE_OS::thr_keyfree () when it's finished. This should help to - eliminate the unbounded use of thread-specific storage slots - within a thread. - - * ace/Thread: added a new method keyfree() that calls down to the - ACE_OS::thr_keyfree (). - - * ace/Thread_Manager.cpp: Modified the semantics of - ACE_Thread_Manager::exit () so that it "always" calls - ACE_Thread::exit () even if the user hasn't registered this - thread with the thread manager. This avoids some subtle - problems that arise typically when I forget to put an - ACE_Thread_Control around the main() function. - - * examples/Threads/test_thread_specific.cpp: Added new tests to - ensure that the Win32 TSS cleanup logic is working correctly! - - * ace/Log_Msg: Moved the definition of the ACE_FIFO_Send_Msg queue - from the Log_Msg.h file to the Log_Msg.cpp file. The MSVC++ - compiler was having problems with this when building a DLL. - Besides, this needs to be replaced with Sockets for Win32 - anyway... - - * ace/OS.cpp: Put a safe guard in the readv() and writev() - emulations so that they return ACE_NOTSUP_RETURN if - ACE_HAS_THREADS is enabled. This is necessary because the - readv() and writev() emulations are *not* atomic if multiple - threads are used. If someone can provide an atomic - implementation I'll enhance the code to remove the existing - restrictions. - - * ace/OS: Created a new macro called ACE_SYSCALL_FAILED, which is - mapped to 0xFFFFFFFF on Win32 and -1 on UNIX. - - * ace/Synch and Synch_T: cleaned up the implementation of the - Recursive_Lock and Recursive_Mutex to use the ACE_Guard classes. - This simplifies the code. - -Sat Mar 23 16:53:14 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace: Updated all ACE classes to use the new ACE_Export macro. - This will enable them to transparently be used to create a Win32 - DLL. Also added ACE_BUILD_DLL to all the *.cpp files. - - * tests/CPP-inserver.cpp (main): Modified CPP-inclient.cpp and - CPP-inserver.cpp to use non-blocking I/O. In particular, - CPP-inserver times out on select and then checks to see if any - connections have arrived. Both applications are also working on - NT. - -Sat Mar 23 15:02:47 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Local_Tokens.cpp (proxy_): Modified the print statement for - local tokens to account for the fact that thread ids can be - unsigned on some platforms. - - * ace/Log_Msg.cpp (log): Modified the output format of the %t - directive to ACE_Log_Msg::log() so that it prints values in - unsigned form rather than signed form. This fixes a bug with - Win32 on Windows '95. - - * ace/ACE: Added two new methods ACE::read_n() and ACE::write_n(). - These are now necessary since Win32 distinguishes between - operations on SOCKETs and operations on other forms of HANDLEs. - - * ace/ACE: Changed all uses of ACE::set_fl() and ACE::clr_fl() to - ACE::set_flags() and ACE::clr_flags(). - - * ace/ACE: Changed the name of ACE function handle_timed_connect() - to handle_timed_open() since this is reall what it does... - -Fri Mar 22 00:11:19 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Stack: Added a "Node of last resort" to the - ACE_Unbounded_Stack. This ensures we are graceful in the face - of memory failures. - - * ace/OS.i (sleep): Fixed a bug with the Win32 ACE_OS::sleep - mapping. This should have had an "ACE_OSCALL_RETURN" in it... - - * ace/ACE.h: Had forgotten to put "static" in front of "basename". - Thanks to Neil Cohen for reporting this... - - * ace/Name_Options.cpp (process_name): Changed char * to const - char * to avoid compile error. Thanks to Neil Cohen for this... - - * ace/IPC_SAP: Implemented the enable()/disable() methods to work - with non-blocking I/O for SOCKETs on Windows NT. - - * ace/OS.i: Modified ioctl() to support the ioctlsocket() call on - Windows NT. - - * ace/Log_Msg.cpp (log): Fixed a bug that was caused by not - NUL-terminating the logging string properly when a %a is given. - Thanks to Tim Harrison for finding this. - - * ace/OS: Added a new overloaded "ACE_OS::sleep" method that takes - an ACE_Time_Value rather than a u_int. This is much more useful - for fine-grained timers than the horrible UNIX sleep() call. - - * ace/OS.h: #included "sys\timeb.h" in the Win32 version of ACE. - -Thu Mar 21 22:18:50 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps: Fixed all incorrect usages of ACE_HANDLE = -1 to use - ACE_HANDLE = ACE_INVALID_HANDLE in order to work with Win32... - - * ace/OS.i (gettimeofday): Replaced the existing implementation of - gettimeofday with a new version that is shorter, more efficient, - and most importantly, correct... Thanks to Todd Montgomery. and - Mike Flinn for this stuff. - - * ace/ACE: added a new method called basename() that returns the - filename portion of a pathname. - -Thu Mar 21 21:51:48 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/OS.h (ACE_DEFAULT_GLOBALNAME): Added some new #defines for - NT: ACE_DEFAULT_NAMESPACE_DIR, ACE_DEFAULT_LOCALNAME, and - ACE_DEFAULT_GLOBALNAME. - - * ace/Local_Name_Space.cpp (ACE_Local_Name_Space): Fixed a subtle - bug. Instead of doing a new char [xxx], I was doing a new char - (xxx). Also, added some #if defined (ACE_WIN32) to support - special cases for NT (for example determining the context file - name). - -Wed Mar 20 02:03:39 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Log_Msg.cpp (log): If we're writing to stdout or to an - iostream make sure the lock is help to avoid race conditions and - scrambled output. - -Tue Mar 19 00:12:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Thread_Manager.h: Added new default values to spawn() and - spawn_n(). - - * ace/OS.i (sigaction): Added support for signals to the ACE NT - mapping. - - * ace/ACE: Added 4 new methods to class ACE: send(), send(), - recv(), recv(). These calls mask some differences between UNIX - and Win32 IPC mechanisms. Then, reimplemented the Reactor's - notification mechanism to use this. - - * ace/OS.i (ACE_OSCALL_RETURN): fixed zillions of warnings on - HP/UX by making a small change to line 151 of the OS.i file. - Thanks to Neil Cohen for reporting this. - - * ace/Reactor.cpp: Rewrote the Reactor::notify() mechanism to - avoid using readv() and writev(). These work fine on UNIX, but - don't work correctly on Windows NT due to race conditions. - Basically, we need to reimplement this stuff on Win32 to avoid - the problem. - - * ace/OS.h: Added SIGQUIT, SIG_BLOCK, SIG_UNBLOCK, and SIG_SETMASK - definitions to NT. - - * ace/Time_Value: added a new set() method to be consistent with - the ACE_Time_Value (long, long) constructor. - - * ace/Service_Config.cpp (open): Fixed a bug where the - ACE_Service_Repository and ACE_Reactor weren't being initialized - correctly if the ACE_Service_Config::ACE_Service_Config (const - char *) method was called. - - * ace/Service_Config.cpp: Changed the constructor for - Service_Config so that it doesn't barf if the svc.conf file - isn't found. - -Mon Mar 18 00:34:45 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Reactor.h: Hid the inclusion of the Local_Tokens.h file in - the Reactor so that by default there will be no dependency - between libACE and libACE_svcs. This should prevent compilation - problems on some platforms. - - * bin: Included the html-windex shell script from Vincent Pommier - . - - * man: Included a shell script to automatically generate an - acewindex.html file. This file is useful just after running - man2html. Thanks to Vincent Pommier - for contributing this. - - * man/html: I've just used the man2html programs to generate the - html documentation from the man3 directory. It seems to work - pretty well. - - * ace/Assert.h: Added a forward declaration for class ACE_Log_Msg - to fix problems NuMega preprocessing. Thanks to Mike Flinn - for finding this. - - * ace: Implemented about 1/3rd of the "dump" methods for the - various ACE classes. - - * ace/Acceptor.cpp (info): Fixed a bug -- should use PR_AD rather - than ACE_INET_Addr since this is used for SPIPEs as well... - - * ace/Synch_T.cpp (ACE_TSS): If ACE_Thread::keycreate () fails - then we do an fprintf() and return at the moment. It doesn't do - any good to do an ACE_Log_Msg operation since those all require - thread-specific storage and this will just cause a recursive - problem... - - * ace/OS.cpp: Removed a memory leak in ACE_OS::thr_destory_tss() - that was caused by forgetting to delete each ACE_TSS_Key_Info - object when we no longer needed it. Thanks to Mike Flinn - for finding this. - - * ace/OS.cpp: Added a new method to class ACE_OS called - thr_keyfree(). This enables us to free up a thread-specific - storage key on Win32 (it isn't implemented on the UNIX - platforms). - - * ace/ACE.cpp (timestamp): In order to get ACE_OS::timestamp to - work on Win32, the wMonth, wDay, wYear structure members were - added to the sprintf statement. Thanks to Mike Flinn - for this fix. - - * examples: Changed all uses of ACE::send_n (1, ...) to - ACE_OS::write (ACE_STDOUT, ...) to avoid problems with NT's - hacked support for sockets and HANDLEs. Thanks to Bernd Hofner - for noticing this. - -Sun Mar 17 00:43:14 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/CORBA_Handler.cpp (handle_input): Fixed the CORBA_Handler to - use send()/recv() rather than read()/write(). - - * ace/Process_Manager: put the hooks in for the forthcoming ACE - Process Manager, which will provide a service similar to the - ACE_Thread_Manager, except that it will work for processes, not - threads. - - * netsvcs: all the ACE network services appear to be working - again... - - * man: Completely regenerated all the manual pages to reflect all - the most recent changes. - - * ace/OS.h: Created a new macro called ACE_DEFAULT_REACTOR_SIZE. - This is useful for two reasons (1) it centralizes this value in - one place in ACE and (2) removes a horrible circular dependency - between the Service_Config.h and Reactor.h... - - * ace/Strategies: Added new strategies to handle "scheduling" of - Svc_Handlers launched by a Strategy_Acceptor. In this context, - scheduling refers to "suspending" and "resuming" Svc_Handlers. - There are several alternative strategies ranging from (1) - suspending/resuming a single handler, (2) suspending/resuming - all the handlers in a Reactor, and (3) suspending/resuming all - handlers controlled by a Thread_Manager. This very powerful - feature makes it simple to write ACE_Network_Services that can - control all their handlers in one fell swoop... - - * ace/Task: Added new accessors/mutators to get/set the - Thread_Manager and the Message_Queue associated with a Task. - This makes life easier and more abstract in subclasses and - elsewhere. - - * ace/Reactor: added an iterator to the ACE_Handler_Repository. - This makes it possible to implement the suspend_handlers() and - resume_handlers() very efficiently on both UNIX and Windows NT. - - * ace/Reactor: Added two new methods called suspend_handlers() and - resume_handlers(). These methods suspend and resume all the - active Event_Handlers in the Reactor in one fell swoop. - - * ace/Reactor.i (suspend_handler): Fixed a bug in the Reactor - where we were not factoring out the code for suspend_handler() - appropriately with respect to locking. - - * netsvcs/Logging/Server_Daemon/Thr_Logging_Handler: Enhanced the - threaded logging service so that all active threads can be - automatically suspended and resumed via the ACE_Service_Config - svc.conf file. - - * netsvcs/Logging/Server_Daemon/Logging_Handler.cpp: Rewrote the - ACE Logging service to use the new ACE_Strategy_Acceptor - implementation. This greatly reduced duplicate code. There's - almost nothing left in this directory save the actual service - itself! - - * netsvcs/Tokens: Rewrote the ACE Token service to use the new - ACE_Strategy_Acceptor implementation. This greatly reduced - duplicate code. There's almost nothing left in this directory - save the actual service itself! - - * netsvcs/Naming: Rewrote the ACE Naming service to use the new - ACE_Strategy_Acceptor implementation. This greatly reduced - duplicate code. There's almost nothing left in this directory - save the actual service itself! - -Sat Mar 16 20:02:08 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * netsvcs: Created a new subdirectory off of $WRAPPER_ROOT and put - all the ACE network services (e.g., Time, Logging, Naming, and - Tokens) into that directory. These services all instantiate the - new ACE_Strategy_Acceptor implementation, which greatly - simplifies their behavior and code. - - * ace/Acceptor: Made some enhancements to the - ACE_Strategy_Acceptor in order to make it more suitable for use - as a generic "Service" launcher. This class now defines common - behavior for all the ACE network services (e.g., Time, Logging, - Naming, and Tokens). - - * apps/Token_Server: Made the main Token_Server application be - dynamically linked if there's a valid svc.conf file. - - * apps/Name_Server/Name_Server: Made the Server_Test a - "well-behaved" service. Previously, it block in a private event - loop within Name_Server::run(), which was called by - Server_Test::init() when the service was linked dynamically. - This obviously doesn't work correctly since it means that we - can't dynamically link any other services after this one! The - new version is "event-loop" friendly since it uses the main - Service_Config::run_event_loop() method. - - * ACE-categories: Added a new emacs "outline" file that - illustrates how the filenames in $WRAPPER_ROOT/ace cluster into - class categories. Thanks to Chris Eich - and Alex V. Maclinovsky - for helping create this. - - * ace: Split ACE into two libraries: libACE and libACE_svcs. - libACE contains the "core" ACE components. libACE_svcs contains - the client-side layered services (e.g., naming service, token - service, etc.). There are two reasons for doing this: - - 1. It reduces the size of ACE for many common usecases (i.e., - most people aren't using the naming service or the token - service). Any future layered services in ACE will be placed - into the libACE_svcs library rather than libACE. - - 2. It works around annoying compiler bugs with lame compilers - like HP/UX C++. Now, if those compiles can't compile the - token service (which is very template intensive) it won't - affect the core ACE library components. This improves the - portability of ACE. - - * Added -lACE_svcs to the ./apps/{Token_Server,Name_Server} and - ./examples/{Tokens,Naming} Makefiles to account for the new - libraries. Note that no source code changes are required... - -Fri Mar 15 00:03:48 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Name_Server/server/Name_Handler.cpp (recv_request): Fixed - the same problem as occurred in Token_Handler (these both come - from the same source...). - - * apps/Token_Server/Token_Handler.cpp (recv_request): There was a - subtle bug in the Token_Handler that stems from my old code. - The line - - n = this->peer_.recv ((void *) (((char *) &this->token_request_) - + sizeof (ACE_UINT32)), - length); - - This should actually be: - - n = this->peer_.recv ((void *) (((char *) &this->token_request_) - + sizeof (ACE_UINT32)), - length - sizeof (ACE_UINT32)); - - since length was read already. The old way tried to read 4 - bytes too much. Thanks to Jesper for noticing this. - - * ace/Connector.cpp (connect_svc_handler): Modified the connector - so that it automatically calls the close () method of the - Svc_Handler when the connection fails abortively. This makes - the semantics the same for synchronous and asynchronous - connection invocation modes. Thanks to Irfan for insisting on - this! - - * apps/Token_Server/Token_Acceptor.cpp (handle_input): Changed - return type from int to ACE_HANDLE for NT compatibility. Thanks - to Jesper for this insight. - - * ace/OS.h: The defines for ACE_LACKS_MODE_MASKS (OS.h) were only defined - when !ACE_WIN32. This has been fixed. Thanks to Irfan for - spotting this too. - - * ace/OS.i (mmap): made a small change to ACE_OS::mmap to fix NT - portability problem (new variable added:nt_flags). Thanks to - Irfan for spotting this. - - * ace/Local_Tokens.h: Added #include "ace/Map_Manager.h" after - line 41 in Local_Tokens.h to allow ACE to compile correctly with - the horrid HP/UX compiler. Thanks to Neil Cohen for figuring - this out (what a trooper!). - - * ace/Local_Tokens.cpp (ACE_TPQ_Entry *): Replace - - return ACE_TSS::operator ACE_TPQ_Entry *(); - - with - - return (ACE_TPQ_Entry *) (*((ACE_TSS *) this)); - - to work around problems with MSVC++ 4.0 when the browse option - is enabled. Thanks to Kirk Sinnard <1764@mn.lawson.lawson.com> - for this fix. - - * ace/config-sunx86-sunc++-4.x.h: Swapped the lines - - // Compiler/platform supports SVR4 signal typedef. - //#define ACE_HAS_SVR4_SIGNAL_T - #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES - - to - - // Compiler/platform supports SVR4 signal typedef. - #define ACE_HAS_SVR4_SIGNAL_T - //#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES - - to avoid an error using ProWorks C++ 4.0.1 (w/ patches) which - blow up in the Signal.x stuff with a prototyping error. Thanks - to John P. Hearn for this recommendation. - - * ace/Shared_Memory.h: The conditional compilation wrapper was out - of date, so I renamed it. Thanks to Alex V Maclinovsky - for reporting this. - -Thu Mar 14 23:18:59 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Thread.h: There was a bug in the ACE_Thread class. I - attempted to make the class uninstantiable by making the - constructor private. However, the statement was: - - private: - Thread (void); - - which is not the definition of the ctor! The code compiled - since it thinks Thread is a member function. As a result, you - could instantiate a object of ACE_Thread class, but no longer... - Also added this to the !defined (ACE_HAS_THREADS) arm of the - conditional compilation. Thank to Sandeep Joshi - for noticing this. - - * ace/Log_Record.i (decode): Fixed a stupid typo where htonl - (this->length_) should have been htohl (this->length_)... - Thanks to Audun Tornquist for - noticing this. - -Tue Mar 12 14:51:39 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Name_Request_Reply.cpp (decode): Added ntohl and htonl calls - wherever data was being exchanged. - -Sat Mar 9 17:49:51 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * ace/OS.i (cond_wait): Updated the Win32 implementation to - correspond precisely with the UNIX semantics where the mutex is - always reacquired even when errors occur. - -Mon Mar 4 23:03:37 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * INSTALL: updated the win32 to describe building test - applications. - -Mon Mar 4 16:17:05 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp (resolve): Fixed a small bug. The type - field in resolve was copying extraneous stuff (because of being - kept around as a wchar_t). So I added a new method to the class - ACE_NS_String called len() which simply returns len_. Using this - I can now do a strncpy of len bytes for type (instead of a - simple strcpy) and then null-terminate the string to remove the - garbage. - -Thu Feb 29 23:41:04 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * ace/Token_Request_Reply.cpp: Fixed a byte-order bug which was - showing up on intel platforms. - - * ace/Remote_Tokens.cpp: Fixed a race condition in - ACE_TSS_Connection which was munging mt token server clients. - - * examples/Tokens/mutex/*: The Token Server example applications - now use ACE_Thread_Manager, which should make them portable to - Win32. - - * apps/Token_Server/Token_Server.cpp: The Token Server is now a - Service_Object which can be dynamically linked. - - * ace/OS.i: Win32 ACE_OS:: signal methods now return 0 instead of - -1. So, calls to signal code succeed, but do nothing useful. - -Thu Feb 29 20:38:32 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Logger/Server_Daemon/Server_Logger.cpp - (handle_logging_record): There was a typo where - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES was incorrectly spelled. - This caused problems on HP/UX. Thanks to Neil Cohen for - finding this. - -Wed Feb 28 11:41:49 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Mem_Map.cpp: Fixed a nasty bug with Win32 memory mapping... - It turns out we need to be very careful when remapping a - previously mapped region if the MapViewOfFile we're trying to - establish *grows* beyond what was originally mapped with - CreateFileMapping(). The new scheme seems to work correctly - with both UNIX and Win32. - - * ace/OS.h: apparently when using MFC library functions it - is not possible to include windows.h. Instead, users - must include AFX.h. Therefore, I've modified OS.h to - include the following: - - #if !defined (__AFX_H__) - #include - #endif /* __AFX_H__ */ - - Thanks to Patty Genualdi (genualdp@agcs.com) for pointing this - out. - - * ace/Memory_Pool.cpp: Modified init_acquire() so that it calls - ACE_Mem_Map::open() rather than ACE_Mem_Map::map() the first - time. This ensures that the file is mapped correctly. - - * ace/Mem_Map: Added a new method called open() that creates/opens - a file without actually mapping it. - - * ace/SOCK_Dgram_Mcast.cpp (make_multicast_address): Added - new support for Windows NT. - - * ace/Memory_Pool: reimplemented ACE_MMAP_Memory_Pool so that uses - ACE_Mem_Map. This ensures that we can leverage all the work - that went into making ACE_Mem_Map work on Win32. - - * ace/Memory_Pool.cpp (map_file): Modified the code so that we - always unmap the file before trying to remap it. This avoids - problems with Win32... - - * ace/Mem_Map: Modified the implementation of ACE_Mem_Map so that - it takes advantage of the improved features in ACE_OS::mmap. - Also added new a method that returns the memory-mapped addr more - easily. - - * ace/OS: Modified the ACE_OS::mmap() method so that it is more - efficient for remapping files on Win32. - - * ace/OS.h: renamed the type QWORD to ACE_QWORD to avoid namespace - pollution. Thanks to Patty Genualdi (genualdp@agcs.com) for - pointing this out. - - * ace/OS.h: Changed the value of the SIGPIPE emulation for Win32 - to match the UNIX value in order to avoid problems. Thanks to - Jesper for noticing this. - - * apps/Token_Server: Fixed misuse of int for ACE_HANDLE in various - places. Thanks to Jesper for noticing this. - - * Renamed the ./tests directory to ./examples to make way for the - new ACE regression tests. These tests will go into the new - ./tests directory. - - * ace/Mem_Map.cpp: Added a destructor and a close() method that - closes down the file HANDLE if we allocated it. This is useful - to prevent descriptor leaks. Thanks to Irfan for suggesting - this. - - * ace: Made a number of changes to remove unreferenced parameters - from ACE methods. This eliminates zillions of warning from the - HP/UX compiler. Thanks to Neil Cohen for reporting this. - - * ace/Local_Name_Space.cpp (resolve): revised some code to work - around bugs with the HP/UX compiler... Thanks to Neil Cohen for - this workaround. - -Tue Feb 27 21:06:09 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i: The Win32 CreateFile does not handle the return you - would expect when the file exists. You would expect EEXISTS (17 - in UNIX) but the GetLastError is set to 80 - (ERROR_FILE_EXISTS). Therefore, I changed ACE_OS::open to map - ERROR_FILE_EXISTS onto EEXIST. This is only a partial solution, - however. There must be a better way to handle this! - - * ace/Mem_Map.cpp (ACE_Mem_Map): Fixed a bug with one of the - ACE_Mem_Map destructors that was causing problems due to the - fact that base_addr_ wasn't being initialized to 0. Thanks to - Karlheinz for noticing this. - - * ace/Signal.i: signals on AIX cannot use sigprocmask() in any - multithreaded programs. Instead, the call - ACE_OS::thr_sigsetmask() should be used since it is used to - update the thread signal mask. This comes up only in the - Sig_Guard constructor and destructor. Therefore, I #ifdef the - call under the ACE_MT_SAFE macro, using sigprocmask() in the - #else case. Thanks to Chris Lahey for reporting this. - - * tests: removed all uses of ACE_OS::join (0, ....) in ACE and - replaced them with ACE_Thread_Manager::wait() calls. This - ensures that the ACE code is portable to Win32 and POSIX - pthreads! - - * ace/Dynamic_Service.cpp: Added a #include of - "ace/Service_Config.h" to work around problems with HP/UX. - Thanks to John Morey for reporting this. - -Sun Feb 25 12:10:38 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * apps/Token_Server: changed the name token_server.cpp to main.cpp - to avoid a name clash on Win32... - - * man/man3: updated all the ACE manual pages to reflect the - most recent changes. - - * ace/OS.i: Implemented the cond_timedwait() method correctly in - ACE_OS. This method should now do the right thing with respect - to blocking, polling, and timewaits for Win32. - - * ace/OS.i: Modified the Win32 implementation of all the - socket-related wrappers in ACE_OS. The new implementation very - cleverly sets errno to the result of WSAGetLastError() if a - socket-related call fails. Since all of the WinSock errors are - mapped into their equivalent UNIX errno values this enables - socket applications to work portably for UNIX and Win32. - - * ace/Malloc_T.cpp (ACE_Malloc): Improved error reporting for - cases where the Memory_Pool::init_acquire() fails (e.g., if the - backing store was already created by another user and we don't - have permission to access it...). - - * ace/Task: modified Task.h so that it is no longer necessary to - write #include "ace/Synch_T.h" in order to use ACE_MT_SYNCH, - etc. - - * ace/SOCK.cpp (DllMain): Added a clever "Schwartz counter" to - make sure that the WinSock library is correctly initialized, - even if we're not using ACE as a DLL!!! - - * tests/Mem_Map/file-reverse: got the file reverse test program - working. The ACE_Mem_Map class should now be ported to Win32... - - * ace/OS.i (open): Changed how the O_CREAT flag was handled - to give it UNIX semantics... - -Sat Feb 24 12:55:27 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/UPIPE_Stream.cpp (recv): Fixed a signed/unsigned mismatch. - There should be no more mismatches in ACE... - - * ace/Name_Proxy.cpp (recv_reply): Fixed a signed/unsigned - mismatch. - - * ace/Message_Block.cpp (copy): Fixed a signed/unsigned mismatch. - - * ace/INET_Addr.cpp (get_host_name): Changed the type of the - hostnamelen parameter from int to size_t to be more "abstract." - This will also prevent a warning from the MSVC++ compiler. - - * apps/Logger/Client_Daemon/Client_Logger.i: Fixed a braino with - network byteoder that was causing Client_Logger::send() to fail - on INTEL boxes. Thanks to Bryon G. Rigg - for finding this. - -Fri Feb 23 01:59:34 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i: Enhanced mmap() to give the same semantics as UNIX - mmap() by using MapViewOfFileEx(). Also greatly improved the - UNIX emulation capabilities so that mmap() now has the same API - for UNIX and Win32. - - * ace/Time_Value: Added functions to constructor and conversion - from/to Win32 FILETIME. This enables us to reuse those 100ns - conversions in ACE_Profile_Timer. - - * ace/Time_Value: Fixed a problem with these: - - // True if tv1 < tv2. - - INLINE int - operator < (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2) - { - ACE_TRACE ("operator <"); - return tv2 > tv1; - } - - This should be "tv2 >= tv1". Same problem was fixed with - operator <=. - - * ace/Profile_Timer.i, fixed the following: - - this->end_time_ = ACE_OS::gettimeofday (); - this->last_time_ = this->end_time_; - this->last_usage_ = this->end_usage_; - ACE_OS::getrusage (RUSAGE_SELF, &this->end_usage_); - - This will overwrite end_time before it is saved to - last_time... - - * tests/Threads: Added Jesper's test for readers/writers locks. - The test adds a number of reader and writer threads. When - active, writers modify a shared variable and verify that only - one writer and no readers are active. When active, readers - check that no writers are active and that the shared data is - never changed. The test passes for different ratios of - readers/writers, and debug output shows that several readers are - allowed simultaneously. Or, in other words, we have an - indication that it should work. - - * ace/OS.i: Added Win32 implementations of getpid(), fork(), - lseek(), dup(), cond_timedwait (), getrusage () - - * ace/OS.i: Modified all the ACE_OS::str* routines so that they no - longer do an ACE_OSCALL_RETURN. This can lead to weird bugs... - Thanks to Jesper for noticing this. - - * ace/config-sunos4-sun4.1.4.h: Added a new config file that - should work with SunOS 4.x... Also added support for SunOS - 4.1.4. Thanks to Mick Adams (eeimas@eei.ericsson.se) for help - with this. - -Thu Feb 22 18:58:36 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * tests/Naming/Client/Name_Service.h (ACE_Service_Object): - Modified test application to make use of ACE_Dynamic_Service. - - * ace/Dynamic_Service.h: Added a new class called Dynamic_Service - which provides a general interface to add and retrieve arbitrary - things into the ACE service repository. - - * apps/Name_Server/README: Rearranged files so that Name_Server - and Name_Handler are now contained in the server directory under - apps and are no longer under /ace. Also, the Dump_Restore - directory has been moved under /tests/Naming. - -Thu Feb 22 01:56:46 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/INET_Addr.cpp (set): Fixed a byteorder bug in ACE_INET_Addr - that was causing problems when ACE was used on Win32 running on - Intel platforms... - - * ace/Mem_Map.cpp (map_it): Fixed ACE_Mem_Map so that it will work - correctly on Win32. - - * ace/SOCK_Stream.i: Changed the implementation of the Win32 - versions of send() and recv() so that they will never use the - read() and write() calls. This works around limitations with - Win32, which can't do a ReadFile() or WriteFile() - *synchronously* with a SOCKET. - - * Changed all occurrences of read (0, ...) to read (ACE_STDIN, - ...) and all occurrences of write (1, ...) to write - (ACE_STDOUT, ...) in order to be compatible across UNIX and - Win32. - - * tests/ASX/Event_Server: Fixed up all the socket I/O calls so - that they use the WinSock send()/recv() methods rather than - ReadFile and WriteFile... - - * ace/OS.i: Updated open() to correctly emulated UNIX open() - semantics on Win32. - - * ace/OS.cpp (thr_exit): Added support to the NT port so that - thr_exit() doesn't endup doing multiple deletions of the same - object. Thanks to Karlheinz for this fix. - - * ace/OS.h: Moved the location of ACE_MAXCLIENTIDLEN so that - MAXHOSTNAMELEN would be correctly visible for NT. - - * ace/Reactor.cpp: Added a temporary fix for the fact that - writev() and readv() don't work correctly yet on NT. The - solution is to replace write() with two writes() and readv() - with two reads() for the Reactor's notification scheme. A - better solution should be forthcoming. - - * ace/Reactor.cpp: Made sure to initialize the timer_queue_ to 0 - in the constructors so that the Reactor's destructor can avoid - crashing horribly if the constructor fails. Thanks to Karlheinz - for pointing out the need for this. - - * ace/SOCK.cpp: Added support for WSAStartup for using WinSock - within the ACE_SOCK class. - -Wed Feb 21 21:05:55 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/ACE.cpp (bind_port): Made a quick fix to work around the - fact that NT doesn't set errno... - - * ace/OS.i (mmap): Fixed a bug in mmap for the NT port. It should - return MAP_FAILED on error rather than 0 to be equivalent to the - UNIX version. Thanks to Irfan for spotting this. - -Mon Feb 19 00:31:42 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Typed_SV_Message.i (ACE_Typed_SV_Message): Modified the - constructor calls so that length_ and max_size_ are correctly - set when created. Thanks to Alexandre Karev - for reporting this. - - * ace/SV_Message_Queue.i (remove): fixed bug in - ACE_SV_Message_Queue::remove method where `internal_id_' member - was modified *BEFORE* it was used the last time in - ACE_SV_Message_Queue::control. Thanks to Alexandre Karev - for reporting this. - - * ace/Typed_SV_Message.i (length): Fixed a minor typo that caused - a bigger bug ;-). Thanks to Alexandre Karev - for reporting this. - - * ace/OS.h: Added new macros that allow programs to portably - access stdin, stdout, and stderr HANDLEs on Win32 and UNIX as - follows: - - #if defined (ACE_WIN32) - #define ACE_STDIN GetStdHandle (STD_INPUT_HANDLE) - #define ACE_STDOUT GetStdHandle (STD_OUTPUT_HANDLE) - #define ACE_STDERR GetStdHandle (STD_ERROR_HANDLE) - #else - #define ACE_STDIN 0 - #define ACE_STDOUT 1 - #define ACE_STDERR 2 - #endif /* ACE_WIN32 */ - - * ace/INET_Addr.i: modified the return value of get_port_number so - that it returns the value in host byte order. This has actually - been a latent bug in ACE for years, but it only surfaced - recently after porting to NT on the Intel instruction set (which - is "little-endian"). - - * tests/ASX/Event_Server: Merged in the latest changes to the - Event_Server tests, which enable it to compile on Windows NT. - Now, I just need to get it working on NT... - - * Updated all of ACE to use the new ACE_ASSERT rather than assert. - - * ace/Assert.h: Added a new file and a new macro called - ACE_ASSERT. This uses the ACE_Log_Msg Singleton to provide a - more consistent means to do assertions. Thanks to Alexandre - Karev for suggesting this. - - * ace/Log_Msg.cpp (log): added for method ACE_Log_Msg::log lines - to skip the `sprintf' part for %N - file name and %l - line - number format specifiers. Thanks to Alexandre Karev - for reporting this. - - * Remote_Name_Space: Removed an initalizer to ACE_WString that was - driving the HP/UX compiler nuts. - -Sun Feb 18 18:11:22 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Synch.h (ACE_Null_Condition_Mutex): Added a missing body to - the wait() method. Thanks to Byron Riggs for noticing this. - -Sat Feb 17 19:10:06 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * tests/Naming/README (client): Added description for new - features, including support for list_values and list_types. Also - added a small description about test programs using DLL. - - * ace/Name_Request_Reply.cpp (decode): Fixed a small bug in - ACE_Name_Request::decode. type_ was not null terminated causing - some garbage to be returned. - -Thu Feb 15 14:57:06 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Remote_Name_Space.cpp: Changed names of some parameters to - comply with ACE syntax. - -Wed Feb 14 13:36:31 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp (resolve): Type support has been added - to Name_Server. A new class called ACE_NS_Internal was created to - keep value and type information. - -Fri Feb 9 17:12:00 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * "Officially" released ACE 4.0 - - * ace/OS.i (sema_post): Fixed a bug in the NT port. - - #elif defined (ACE_HAS_WTHREADS) - return ::ReleaseSemaphore (*s, 1, 0); - #endif /* ACE_HAS_STHREADS */ - - This returns 1 for success, and disturbs cond_broadcast... - This was replaced by: - - #elif defined (ACE_HAS_WTHREADS) - return ::ReleaseSemaphore (*s, 1, 0) ? 0 : -1; - #endif /* ACE_HAS_STHREADS */ - - Thanks to Jesper S. M|ller (stophph@diku.dk) for this. - - * ace/OS.i (cond_init): Fixed a bug in the NT condition synch - code, as the initial count of the semaphore was 1. This gives an - inconsistent condition: The first waiter went straight through... - Change in ACE_OS::cond_init: - - if (ACE_OS::sema_init (&cv->sema_, 0, type, name, arg) != 0) - return -1; - - Thanks to Jesper S. M|ller (stophph@diku.dk) for this. - - * ace/Singleton.cpp: Fixed a stupid bug that was caused by failure - to #include "ace/Synch_T.h"... Thanks to Neil Cohen and Byron - Riggs for giving me insights on what the problem was. ACE now - compiles on HP/UX. - -Fri Feb 9 11:07:04 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * tests/Naming/server/Server_Test.cpp (init): Modified server - tests to dynamically link Naming Services. Both client and - server tests now make use of the ACE dynamic linking mechanisms. - - * ace/Local_Name_Space.cpp: Added list_values() to Name - Server. The functionality is very similar to list_names (returns - list of values that match a pattern). - - * tests/Naming/client/Client_Test.cpp (bind): Replaced all uses of - cerr and cout with ACE_ERROR, ACE_ERROR_RETURN, and ACE_DEBUG. - Split the file Client_Test.cpp into two files -- Client_Test.cpp - and Name_Service.cpp (similarly .h file) each containing the - corresponding class. Modified svc.conf to work with the changes. - -Thu Feb 8 02:05:26 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Log_Msg.cpp (log): Enhanced the Log_Msg class so that it - supports "nested" calls via %r. If SILENT mode enabled, nested - outputs will enclosed in {..} brackets in thread-specific - storage. Thanks to Alexandre Karev for - suggesting this. - - * ace/Synch: Added a new class called ACE_Null_Condition_Mutex. - This is necessary to fix bugs with stupid compilers... Thanks - to Zusman Mark for reporting this. - - * tests/Naming/client: made a first pass implementation of a - client application that dynamically links in a Naming_Context - based on information provided by the svc.conf file. - - * ace/Name_Options: Fixed yet more problems with dynamic memory - management. The old version didn't make a copy of the strings - it was passed and this caused major problems. - - * ace: Fixed a whole slew of problems with the ACE Name Server - stuff that arose from inconsistent use of const char * vs. char - *... - -Wed Feb 7 00:58:45 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/CORBA_Handler.cpp (ACE_MT_CORBA_Handler): Added new - enhancements to ACE_MT_CORBA_Handler to make it work correctly - with Windows NT. Thanks to Irfan for making these changes. - - * ace/Connector.cpp (fini): Make another workaround for bugs with - MSVC++ 2.0... - - * ace/SPIPE_Connector.cpp (connect): Added a call to ACE_CLR_BITS - (flags, O_CREAT) to make darn sure that the O_CREAT flag is not - set. Thanks to Chris Cleeland for suggesting this. - -Tue Feb 6 01:40:29 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.h: added a new prototype to OS.h that should help with - portability to nasty platforms with broken rand_r() definitions. - Thanks to Aurelio Nocerino - for suggesting this. - - * Local_Tokens: Changed all uses of enumerals MAXTOKENNAMELEN and - MAXCLIENTIDLEN to symbol #defines ACE_MAXTOKENNAMELEN and - ACE_MAXCLIENTIDLEN. This works around bugs with HP/UX. - Thanks to Neil Cohen for reporting this problem. - - * ChangeLog: split the ChangeLog files into 4 separate files -- - one for '96, '95, '94', and '93. Hard to believe I've been - working on this stuff for so long! - - * ace/OS: Fixed the use of ::memset to replace sizeof buffer with - sizeof (ACE_SERVENT_DATA) and sizeof (ACE_HOSTENT_DATA). This - fixes bugs that surfaced on AIX. Thanks to Chris Lahey for - finding these. - - * ace/SPIPE_Addr.cpp (ACE_SPIPE_Addr): Fixed a bug in - SPIPE_Addr::SPIPE_Addr(const SPIPE_Addr&). What happens is that - when the size is calculated it does not take into account the - required zero byte at the end of the rendezvous_ member. Thanks - to Chris Cleeland for reporting this. - - * ace/Local_Tokens: Had to move all ACE_Token_Proxy methods from - Local_Tokens.i to Local_Tokens.cpp and remove INLINE - otherwise - gcc reported them as undefined methods during linkage stage. - Thanks to Zusman Mark for - reporting this. - - * ace: Changed ACE_Name_Request_Reply::LAST to - ACE_Name_Request_Reply::MAX_ENUM to avoid problems with name - conflicts on OSF/1. Thanks to Eshel Liran - for suggesting this. - - * ace/Synch_T: Fix all definitions of ACE_Atomic_Ops so that they - compile correctly on platforms that lack threads! Thanks to - Alexandre Karev for noticing this. - - * include/makeinclude: Added a new config file from Bryon G. Rigg - , which should allow ACE to build on - Linux. - - * ace/Remote_Tokens.cpp: Moved ACE_TSS_Connection to - Remote_Tokens.h to avoid problems with AIX. Thanks to the - ever-vigilant Chris Lahey for reporting this. - -Mon Feb 5 23:34:42 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * Added CORBA_Ref.h which contains the new class ACE_CORBA_Ref. - This class provides a nice wrapper for making the use of Orbix - object references more transparent. This is done by automating - the release and duplicate calls. - -Mon Feb 5 15:43:17 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: added Prashant's latest changes to the Name_Handler*, - Naming_Context*, and Remote_Name_Space*. These changes make it - possible to retrieve lists of values based on a pattern, which - can be a regular expression. - - * Moved the apps/Name_Server/Client-Server tests into tests/Naming - and most of the apps/Token_Server/* tests into tests/Tokens to - conform to Karlheinz's testing style. - - * ace: Modified a number of files in ACE to make it compile - correctly with MSVC++ 2.0. - -Sun Feb 4 23:58:43 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu) - - * ace/Reactor: Generalized ACE_Null_Callback to work correctly - with Windows NT (which lacks pipes). The new design uses the - ACE socket wrappers for NT. It requires very few changes to the - code to handle NT now! Also changed the name to - ACE_Notification_Handler, which is more descriptive. - -Sun Feb 4 14:47:50 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Remote_Tokens.cpp: Reworked ACE_Singleton to avoid - portability problems on compilers like GCC. - -Thu Feb 1 12:47:46 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Remote_Tokens.cpp: Generalized the parameters passed into - ACE_Singleton so they would compile on HP/UX and other platforms - that lack threads. Thanks to Neil Cohen for noticing the - problem. - -Wed Jan 31 22:49:13 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Modified a number of minor things in ACE to get it to - compile successfully with Windows NT MSVC++ 4.0. Updated the - INSTALL file to explain this process better... - -Tue Jan 30 01:12:07 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/CORBA_Handler.cpp: changed things so that no diagonistic - messages are printed. - - * Regenerated all the ACE manual pages to bring them up to date - with the recent changes. - - * ace/Malloc.h: Modified the ACE_Malloc header file so that it - works correctly when ACE_MALLOC_STATS is enabled. Thanks to - Alexandre Karev for reporting this. - - * ace/OS.cpp (mutex_lock_cleanup): removed the leading & before - p_lock. Thanks to Chris Lahey for noticing this. - - * ace: Added the new ACE_Singleton class. This class uses the - Adapter pattern to turn ordinary classes into Singletons - optimized with the Double-Check pattern. - - * Added Tim's latest Token Server changes (which include support - for local and remote mutexes and readers/writer locks) and - Prashant's latest Name Server changes (which allows the contents - of a Name Server to be dumped and restored to/from an ASCII - file). - -Mon Jan 29 02:22:23 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Handle_Set: Changed MAX_SIZE and WORD_SIZE to MAXSIZE and - WORDSIZE to avoid name collisions with HP/UX. Thanks to Byron - Rigg for suggesting this. - - * ace/Time_Value.h: Added a new config symbol ACE_HAS_SVR4_TIME to - differentiate between UNIX platforms that support "POSIX_TIME" - (i.e., timespec_t) and those that support "SVR4_TIME" (i.e., - timestruc_t). This is necessary to work around HP/UX... Thanks - to Byron Rigg for suggesting - this. - - * ace/config-hpux-10.x.h: config-hpux.h has now been renamed to - config-hpux-10.x.h and config-hpux-9.x.h. Thanks to Byron Rigg - for suggesting this. - - * ace/Synch_T: Added a new method called ts_get() and made both - the operator-> and operator TYPE * call this. I hope this will - fix a bug with HP/UX reported by Neil Cohen... - - * ace/OS.i (dlclose): Added Win32 support for dlclose(). Thanks - to Todd L. Montgomery for pointing the way - here... - - * ace: Split off the old class ACE_Dynamically_Allocated, renamed - it ACE_Dynamic, put it in a separate file called Dynamic.*. - This is necessary to solve nasty multiple definition problems - with compilers that require the source of template. - - * ace/Synch_T: moved - - template TYPE * - ACE_TSS::make_TSS_TYPE (void) const - { - return new TYPE; - } - - out from condition compilation block - - #if (defined (ACE_HAS_THREADS) && defined(ACE_HAS_THREAD_SPECIFIC_STORAGE)) - - in file Synch_T.cpp. This class member called in many other - places regardless ACE_HAS_THREADS and - ACE_HAS_THREAD_SPECIFIC_STORAGE defined or not... - - * ace/Name_Handler.cpp: Changed the use of the "inherited" typedef - to fully expand to ACE_Svc_Handler. This is necessary to workaround bugs with AIX. - Thanks to Chris Lahey for reporting this. - - * tests and apps: Fixed an odd problem that only surfaced recently - with GNU G++. Apparently, it doesn't like function-style casts - of the form ACE_SignalHandler (foo), but will accept - (ACE_SignalHandler) foo. Since both approaches are equally good - for what I'm doing, I've updated all the code in ACE to be more - portable. - -Sun Jan 28 12:24:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * tests/Shared_Malloc/test_malloc.cpp (spawn): when forming - argv[] for execv, moved - - argv[ ... ] = Options::instance ()->debug () ? "-d" : ""; - - to the end of the vector just before terminator. This will - allow to pass rest of arguments to exec if -d switch not - specified. Thanks to Alexandre Karev - for reporting this. - - * tests/Shared_Malloc/Malloc.cpp: To avoid conflict with - ACE_DEFAULT_SEM_KEY in OS.h changed SEMA_KEY value in - tests/Shared_Malloc/Malloc.cpp to ACE_DEFAULT_SEM_KEY + 1. - Thanks to Alexandre Karev for reporting - this. - - * ace/SV_Semaphore_Complex.i: Changed all arguments in calls like - - this->acquire( n+2 ) - and - this->tryacquire( n+2 ) - to - this->acquire( n ) - and - this->tryacquire( n ) - . - Since the semaphore number is incremented by 2 in - SV_Semaphore_Complex::acquire - and - SV_Semaphore_Complex::tryacquire - - when SV_Semaphore_Simple::(acquire/tryacquire) is called. - Thanks to Alexandre Karev for pointing - this out. - -Sat Jan 27 16:14:27 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Read_Buffer: Added a new component that efficiently reads in - an artibrarily large buffer from a file up to an including a - termination character. Also performs search/replace on single - occurrences a character in the buffer using the priniciples of - Integrated Layer Processing. - -Fri Jan 26 12:01:06 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Thread_Manager: Made a small change to workaround the use of - a struct type for thread_t and hthread_t in HP/UX. Thanks to - Bryon Rigg for noticing this. - -Thu Jan 25 19:54:01 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Svc_Handler: Added some minor changes to account for - limitations with GNU G++. I think the new implementation will - be portable across all C++ platforms. - - * ace/SV_Semaphore_*: Widened the interface of SV_Semaphore* - classes to include a flags parameter. This can be used to pass - in SEM_UNDO, which is important in many applications. Thanks to - Andrew Gilbert for suggesting this. - - * ace/Synch_T.cpp: We are forced to "cast away const" inside of of - the ACE_TSS const methods in order to make the ACE_Guard work. - The right thing to do would be to make the lock "mutable" but - that's hopelessly non-portable. - -Thu Jan 25 14:34:12 1996 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu) - - * ace/Log_Msg: Fixed a minor bug in ACE_Log_Msg that kept - resetting the restart and iostream value no matter what we'd set - it to before. Thanks to Prashant for finding this. - - * bin: Fixed up the Makefile process for the clone program. Now - it builds without having to depend on ACE. Thanks to Brad Brown - (bbrown@rdxsunhost.aud.alcatel.com) for suggesting this. - - * ace/Synch: Modified ACE_Condition*.remove so that cond_destroy() - is called in a loop if the condition variable is BUSY. This - avoids a condition where a condition is signaled and because of - some timing problem, the thread that is to be signaled has - called the cond_wait routine after the signal call. Since the - condition signal is not queued in any way, deadlock occurs - unless this loop is used. Thanks to Chris Lahey for pointing - this out. - - * ace/CORBA_Handler: Made all the methods in ACE_CORBA_Handler - private to make sure that users don't inherit from this class! - Instead, the ACE_MT_CORBA_HAndler and ACE_ST_CORBA_Handler - should be used as Singletons. - - * ace/CORBA_Handler: Added new support for Orbix on Windows - NT. This requires clever use of macros in order to handle - inherent differences between generated code. - - * ace/Svc_Handler: Added a clever idiom that transparently checks - if we were allocated dynamically. This information is used by - the method to decide if we need to delete ... - The idiom is based on a paper by Michael van Rooyen - (mrooyen@cellnet.co.uk) that appeared in the April '96 issue of - the C++ Report. We've spruced it up to work correctly in - multi-threaded programs by using our ACE_TSS class. - - * ace/config-win32-msvc4.0.h (ACE_LACKS_RECVMSG): Fixed a typo - in the MSVC++ config files. - -Thu Jan 25 02:59:22 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Finally got the frigging library built on SGI. This was a chore - due to compiler bugs, but at least it's another datapoint for - successful cross-platform building... - -Wed Jan 24 00:10:29 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Time_Value.cpp (operator-=): Changed operator += and - operator -= to use const ACE_Time_Value & rather than - ACE_Time_Value &. Thanks to Alex V Maclinvosky for noticing - this. In addition, also changed *all* ACE_Time_Value parameters - to be const ACE_Time_Value &. This should reduce the number of - excess constructors called... - - * ace/OS: Added Chris Lahey's latest changes that introduce POSIX - pthread cancellation cleanup handlers. Also added an herror() - function that is comparable to perror(). - - * ace/OS: (thr_join): Added a new version of thr_join() which - works for Windows NT. Windows NT requires a HANDLE, which is - fundamentally incompatible with other things... - - * ace/Thread_Manager: added two new methods that return the - ACE_Thread_Descriptor corresponding to either a thr_id or a - thr_handle. - - * ace/Thread_Manager: Made the spawn() interface compatible with - the other spawn() interfaces in ACE_OS and ACE_Thread by adding - the hthread_t type. - - * ace/Log_Msg.cpp (log): Fixed things up so that we can now print - out the thread id for all versions of threads! - - * ace/OS: Added a new overloaded version of ACE_OS::thr_self() - that returns the "kernel" thread id. This is necessary on - systems like NT and AIX, which separate kernel thread ids from - user thread ids. Thanks to Chris Lahey for suggesting this. - -Tue Jan 23 01:17:23 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i (sigwait): Changed the parameter of sigwait() from - const sigset * to sigset *. Thanks to Neil Cohen for chasing - this down on SunOS 5.5.... - - * ace/Malloc_T.cpp: Fixed a typo in bind() whereby - the test if (duplicates == 0 || this->shared_find (name) != 0) - should be if (duplicates == 0 && this->shared_find (name) != 0). - Thanks to the ever vigilant Alexandre Karev - for reporting this. - - * tests: Fixed all test programs that previously used the "execl" - family of system calls to use the "execv" family instead. - - * ace/OS: Added support for the "execv" family of exec() system - calls. Unlike the "execl" family, these calls are easy to - support since they don't require variadic arguments. I've added - the hooks for the "execl" family, as well, but haven't actually - implemented them yet. - - * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): Fixed a bug that - was tickled when pool_name == 0. Thanks to Alexandre Karev - for reporting this. - - * ace/OS.h: removed FD_SETSIZE from the ACE_WIN32 stuff since this - is defined in winsock.h. - - * ace/OS.cpp (ACE_Spawn_Args): Added "f" to the parameter list. - - * ace/CORBA_Handler: Added a new macro called CORBA_T that masks - the incompatibilities between the version of Orbix on NT and on - Solaris. - - * ace/OS.h: Added support for compilers (like NT) that don't - support "mode masks" (these are used to give symbolic names for - file creation modes passed to open() and creat(). - - * ace/SString.cpp: Added Tim's new copy constructor code for - SString.cpp. This doesn't appear to be strictly necessary , but - it is more explicit and therefore it useful. - - * ace/Map_Manager.cpp: Fixed a bug in Map_Manager that was failing - to call the placement new operator for every element in the map - that was dynamically created by the allocator(). - - * ace/Synch_T: Added Tim's new ACE_TSS implementation. This - version is more flexible than the old one. - -Mon Jan 22 00:03:24 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Time_Value.h: changed a few minor things to get this - compiling again on NT. Thanks to Irfan for helping with this. - - * ace/Synch_Options: Changed all the "accessor" methods to be - const member functions at the request of Irfan. I just know - this is going to cause const cancer... ;-) - - * ace/Acceptor and Connector: Changed all parameters that take - ACE_Synch_Options & to take const ACE_Synch_Options & at the - request of Irfan. - - * ace/OS.i (uname): Added rudimentary support for the uname() - function for Windows NT. If anyone has suggestions on how to - fill in all these fields portably please let me know! - - * ace/Connector.h: Changed a stray -1 to ACE_INVALID_HANDLE. - Thanks to Irfan for noticing this. - - * ace/Profile_Timer.h: Added the keyword "public" to handle one - arm of the conditional compilation that is only exercised on - NT... Thanks to Irfan for noticing this. - - * ace/OS.i (mutex_init): Removed the call to - pthread_mutexattr_setkind_np() it isn't in the final POSIX - standard. - - * ace/Reactor.cpp (unbind): Removed the ACE_MAX3 template function - from OS.h and inlined its only use in the Reactor. This was - causing problems with some C++ compilers. Thanks to Mark Zusman - for reporting this. - - * ace/OS.i: Fixed a number of omitted return results in - gettimeofday() and ctime_r() that were masked by the - ACE_OSCALL_RETURN macros. Thanks to Mark Zusman - for reporting these. - - * ace/config-linux.h: Added new symbolic constants to handle the - fact that Linux seems to lack recvmsg(), sendmsg(), msync(), and - madvise(). Thanks to Neil Cohen for noticing this. - - * include/makeinclude: Fixed all the *-orbix.GNU files to use - $(ORBIX_ROOT)/lib rather than $(ORBIX_ROOT)/ace. Thanks to - Pramod Kumar Singh for reporting - this. - - * ace/config*.h: Changed all typos of the form ACE_HAS_SVSV_IPC to - ACE_HAS_SYSV_IPC. Thanks to Alexandre Karev - for reporting this! - - * ace/OS: Changed the order of parameters passed to thr_create() - to be consistent with all the spawn() and spawn_n() usages in - ACE. Thanks to Chris Lahey for pointing this out. - -Sun Jan 21 15:06:15 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Added a new "priority" parameter to the spawn() and - spawn_n() methods in ACE_Thread and ACE_Thread_Manager. This - allows us to pass the priority on down to thr_create(). Thanks - to Chris Lahey for pointing this out. Note that this change - required reordering the parameters so that the stack and - stack_size parameters now come last for these methods. Since - those are not likely to change much this is a good place to put - them (i.e., at the end). - - * ace/Thread.i (spawn_n): Added a new overloaded spawn_n() method - that accepts an array of thread_t's to be filled in. This is - useful if you want to know the thread IDs of any threads - created. - - * Changed ACE_OS::signal() to ACE_Sig_Action across all of ACE to - be portable to pthreads implementations. Thanks to Chris Lahey - for pointing this out. - - * ace/OS: Added a new set of OS C++ wrappers for POSIX pthread - cancellation routines. Thanks to Chris Lahey for these. - - * ace/Thread: Added a new set of ACE C++ wrappers for POSIX - pthread cancellation routines. Thanks to Chris Lahey for - these. - - * ace/Map_Manager: Revised the Map_Manager::bind method. This has - now been split into bind() and rebind() methods. The bind() - method is very simple -- if you try to bind() to something that - already exists you fail. The rebind() method allows you to - atomically update existing values in a map. It also gives you - back the existing values so that you can delete them if - necessary. The Local_Name_Space::bind() and rebind() methods - have been updated to use this new interface. - - * ace/Malloc_T.cpp (find): Fixed a typo -- find() should have set - its pointer parameter to node->pointer_, rather than - node->name_! This bug was revealed during testing of the ACE - Name Server. - - * ace/Local_Name_Space.cpp: Fixed bugs with computation of the - size of ACE_NS_Strings -- they needed to count the wchar_t's - correctly, along with several other minor fixes. These were - revealed during testing of the ACE Name Server. - - * ace/SString.cpp: Fixed several bugs that prevented the - assignment operators from working correctly. These were - revealed during testing of the ACE Name Server. - -Sat Jan 20 08:33:54 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Local_Name_Space.cpp (shared_bind): The args to to the - NS_String constructors were not in the correct order: - - wchar_t *value_rep = (wchar_t *) (ptr); - wchar_t *name_rep = (wchar_t *) (ptr + name_len); - ACE_NS_String ext_id (name.fast_rep (), name_rep, name_len); - ACE_NS_String int_id (value.fast_rep (), value_rep, value_len); - - They should be: - - ACE_NS_String ext_id (name_rep, name.fast_rep (), name_len); - ACE_NS_String int_id (value_rep, value.fast_rep (), value_len); - - Thanks to Irfan for noticing this. - - * ace/OS.h: defined the following in ACE_OS: - - #define MS_ASYNC 0 - #define MS_SYNC 0 - #define MS_INVALIDATE 0 - - under NT so that calls to mmap will port transparently. Thanks - to Irfan for suggesting this. - -Thu Jan 18 16:25:16 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Added a new symbol that indicates if the platform supports - the new BSD sin_len field of inet_addr. - - * ace/OS: added new support for AIX gethostbyaddr_r(), - gethostbyname_r(), and getservbyname_r(). This fixes some - problems caused by improper choice of buffer size. Also changed - the INET_Addr.cpp file to use these new changes. Thanks to - Chris Lahey for recommending these changes. - -Wed Jan 17 01:10:48 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i (printf): the ACE_OS::printf() function did not work. - Needed to call vprintf() internally, not printf. Thanks to - Chris Lahey for pointing this out. - - * Released version 4.0. - - * include/makeinclude: added the -lgen library to all the - platform_sunos5.*.GNU files. - - * ace/Memory_Pool.cpp: removed the INLINE macros in Memory_Pool.cpp. - Thanks to Alexandre Karev (karev@vxcern.cern.ch) for noticing - this! - - * ace/Malloc_T.cpp: moved the comment "Ce n'est pas une catst" - outside of the macro ACE_NEW_RETURN. The prepocessor truncates - the macro expansion when it encounters the comment. Thanks to - Greg Baker for pointing - this out. - - * ace/Reactor.cpp (close): added "return 0" at the end of the - close member function. The function is prototyped to return an - int and the compiler expects a return outside of the if clause. - Thanks to Greg Baker for - pointing this out. - - * ace/Stack.cpp (free_all_nodes): Removed a spurious ACE_OS that - was stuck on the front of ::delete. Thanks to Greg Baker - for pointing this out. - - * ace/OS.i: Added extern "C" to the prototype for syscall in OS.i. - Without it, you get unresolved symbols at link time. Thanks to - Greg Baker for pointing - this out. - - * ace/Message_Queue.cpp: Changed the return values for - enqueue_head(), enqueue_tail(), dequeue_head(), and - peek_dequeue_head() to return the number of messages that are - still on the queue. This helps some algorithms perform better - and avoid blocking unnecessarily. Thanks to Alex V Maclinvosky - for suggesting this... - - * ace/Synch_T.cpp (ACE_Condition): Fixed a bug in - ~ACE_Recursive_Lock and ~ACE_Recursive_Mutex that was causing - the destructor to be called twice (once implicitly and once - explicitly). Thanks to Chris Lahey for pointing this out. - -Mon Jan 15 12:44:29 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Created a new config symbol called ACE_HAS_ALLOCA_H. This - is required to differentiate between AIX and other versions of - UNIX. Thanks to Chris Lahey for pointing this out. - - * ace: moved config-hpux.h to config-hpux-9.x.h in anticipation of - the changes required to handle HP/UX 10.0! - -Sun Jan 14 23:38:23 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.h (ACE_MAX3): Fixed the definition of ACE_MAX3 (it needed - a return value of template type T). Thanks to Mark Zusman - for noticing this. - - * ace: Added a new section to all the template files called - ACE_TEMPLATES_REQUIRE_SPECIALIZATION to deal with the screwy GNU - G++ semantics that are required if you *don't* have the template - repository patches. Thanks to Mark Zusman - for this. - -Fri Jan 12 00:47:57 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Time_Value.h: #included to the Time_Value.h - class so that it would be the first file included. This fixes a - problem with AIX. Thanks to Chris Lahey for reporting this and - suggesting the fix. - - * ace: Fixed a braino with the #ifdefs in SPIPE_Stream and - SPIPE_Acceptor. These were checking for ACE_WIN32 rather than - ACE_HAS_STREAM_PIPES. Naturally, that failed on versions of - UNIX (e.g., Linux) that lack STREAM pipes! Thanks to Neil Cohen - for taking time out of fighting blizzards to report this! - - * ace/Svc_Handler: Added a new method for handle_timeout, which - shuts things down by default. Thanks to Irfan for suggesting - this. - - * Fixed a minor problem caused when Tim added the Double-Check - pattern to ACE_ODB... - -Thu Jan 11 01:48:02 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Integrated AIX fixes from Chris Lahey . - These should allow ACE to build correctly using the AIX compiler - and it's screwy template mechanisms! - - * ace: Fixed some minor bugs that caused problems when compiling - with G++. - -Wed Jan 10 00:17:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Trace.cpp: Fixed a typo that was causing problems when using - ACE_TRACE (we were ending up with recursive tracing in the - ACE_Trace class!). Thanks to Detlef for noticing this. - - * ace/ACE.cpp: Moved methods from ACE.i to ACE.cpp and removed the - INLINE macro to deal with order of include problems with GNU - G++. - -Tue Jan 9 19:00:41 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Task.i (flush): Added a check to make sure that msg_queue_ - != 0 before trying to close() the queue. This solves a problem - if the queue has already been closed. Thanks to Alex V - Maclinvosky for reporting this... - - * tests/ASX/Event_Server/Event_Server: Fixed minor bugs in - Supplier_Router.cpp and Consumer_Router.cpp -- I was checking - for this->getq (mb) > 0 rather than this->getq (mb) >= 0. - Thanks to Alex V Maclinvosky for - noticing this... - - * ace/Synch_T.h: Commented out the ACE_ALLOC_HOOK stuff. This is - causing order-of-include problems on HP/UX. Also moved the - ACE_Null_Condition::wait() method to Synch_T.i to avoid the same - problem. Thanks to Greg Baker - for pointing this out. - -Sun Jan 7 18:57:49 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Makefile: Added the Dump file to ACE. Thanks to Tim for - fixing this up to make it ready for prime time. - - * Thanks to Craig Rodrigues for sending - me a new version of psnup that *finally* fixes the nasty - problems with "4-up" printing of postscript! This makes it much - easier to distribute ACE documentation... - -Sun Jan 7 18:31:07 1996 Tim H. Harrison (harrison@merengue.cs.wustl.edu) - - * ace: Used the "Double-Check" pattern to eliminate potential race - conditions when using Singletons in multi-threaded programs. - Classes affected included ACE_[MS]T_CORBA_Handler, Name_Options, - Trace, and ACE_ODB. - -Fri Jan 5 00:03:29 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i: Added the following to OS.i: - - #if defined (ACE_LACKS_SYSCALL) - int syscall (int, ACE_HANDLE, struct rusage *); - #endif /* ACE_LACKS_SYSCALL */ - - This should fix some problems with HP/UX. Thanks to Walt Akers - (akers@cebaf.gov) for pointing out the problem. - - * ace/Handle_Set: Fixed the Handle_Set conversion operator so that - it returns fd_set * rather than ACE_FD_SET_TYPE *. Thanks to - Walt Akers (akers@cebaf.gov) for pointing out the problem. - - * ace/Time_Value.h: I think I've fixed the problem with the order - of #includes with respect to POSIX and SVR4 time. The trick was - to put this test in ace/Time_Value.h and then to make sure that - the ace/config.h file was included at this point! Also changed - the symbol from ACE_HAS_POSIX_TIMERS to ACE_HAS_POSIX_TIME to be - more accurate. - -Thu Jan 4 23:16:59 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/OS.i (gettimeofday): Changed the implementation of - gettimeofday() to use the ::_ftime call rather than the more - complex ::GetSystemTime(), ::SystemTimeToFileTime() duo. - -Thu Jan 4 9:32:38 1996 Chris Lahey (clahey@ix.netcom.com) - - * ace/config-aix.h: added #define ACE_TEMPLATES_REQUIRE_SOURCE - to make ACE work with AIX C++ compiler. - - * include/makeinclude/platform_aix.GNU: - - Added -qtempinc to the CPPFLAGS - Removed the PIC= definition completely - - * ace/Task.h: ACE_Task::svc() should not be declared as a pure - virtual, removed = 0. - - * ace/Map_Manager.cpp: in trybind() member function, the line - int_id = ss.int_id_; - should be: - int_id = search_structure[index].int_id_; - -Thu Jan 4 01:23:38 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Map_Manager.cpp: Fixed a braino in Map_Manager -- didn't - need the parameter to shared_bind(). Thanks to Tim for - finding this! - - * ace/Log_Msg.cpp (instance): Tim Harrison did a noble service to - humanity by fixing a potential race condition in the instance() - Singleton of ACE_Log_Msg. - -Wed Jan 3 00:49:57 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Made some minor changes to fix portability problems with - SGI. Fortunately, this should also fix some other problems with - HP/UX another other non-thread platforms. - - * ace/ACE.cpp (format_hexdump): Added Todd Montgomery's amazing - "format_hexdump" method to class ACE. - -Tue Jan 2 20:47:57 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/SV_Semaphore*: updated the interface of the _Simple and - _Complex System V semaphore wrappers to include the _read() and - _write() forms of acquire() and tryacquire(). Note that I've - implemented these as calls to acquire() and tryacquire(), so - they don't add any extra behavior. This is needed for interface - conformance with other forms of ACE synchronization mechanisms. - - * ace/Time_Value.h: Changed the header to #include - in order to work around nasty "order of include" problems. - - * tests: Created a new directory called Win32. This contains test - programs that This directory contains test programs that have - been compiled and tested successfully under Windows NT. As we - get further along, we'll move this stuff into the general ACE - $WRAPPER_ROOT/tests directory (since of course all ACE programs - will run without any problems under Win32, right? ;-)). See - the ./tests/Win32/README file for instructions on how to build - these tests. - - * ace/Reactor.h: Moved the ACE_Handler_Repository out of the - ACE_MT_SAFE section of the code. This was a "typo." Thanks to - Walt Akers for reporting this. - -Mon Jan 1 01:18:12 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/ACE.i: Moved the recv_n() and send_n() methods from ACE.cpp - into ACE.i and set things so that if __INLINE__ is set then - we'll inline those too! - - * ace: Irfan and I got the first major part of the Win32 to work - finally! We made two socket programs (client and server) that - talked to each other and to UNIX. Things are really starting to - take shape! diff --git a/ACE/ChangeLogs/ChangeLog-96b b/ACE/ChangeLogs/ChangeLog-96b deleted file mode 100644 index 5dd7b809a42..00000000000 --- a/ACE/ChangeLogs/ChangeLog-96b +++ /dev/null @@ -1,5878 +0,0 @@ -Tue Dec 31 18:27:50 1996 Douglas C. Schmidt - - * ace/Log_Msg.cpp (log): Added a test so that if we're - (1) not printing to stderr and (2) aborting the program we still - print a message to stderr. - - * ace/Message_Block: Added synchronization support to - ACE_Message_Block. This is necessary now that we've got - reference counting to ensure that we don't have race conditions - when incrementing and decrementing the reference count in - separate threads. The approach is very clean and uses the new - ACE_Lock mechanism to conditionally acquire()/release() the - locking strategy if concurrency control is necessary. - - * ace/Synch_T: Created a new set of ACE_Lock and - ACE_Lock_Adapter<> classes which are similar in spirit to the - ACE_Allocator and ACE_Allocator_Adapter<> classes. These make - it possible to treat polymorphically synchronization mechanisms - in ACE polymorphically, *without* creating an entire new - parallel hierarchy of locking mechanisms. - - * ace/Synch: Added the full suite of acquire_{read|write}() and - tryacquire_{read|write}() methods to ACE_Semaphore and - ACE_Process_Semaphore so they will be consist with the other - synchronization APIs. - -Tue Dec 31 00:11:56 1996 Douglas C. Schmidt - - * Changed all uses of ACE_Event_Handler::RWE_MASK to - ACE_Event_Handler::ALL_EVENTS_MASK to reflect the fact that - we will soon have more than READ, WRITE, and EXCEPT events. - However, I've kept RWE_MASK around for backwards - compatibility. - - * examples/ASX/Message_Queue: Changed the tests so that they use - the new ACE_Message_Block::release() method rather than calling - delete explicitly. - - * apps/Gateway: Revised the implementation of the Gateway and Peer - applications to take advantage of the new ACE_Message_Block - reference counting scheme. - -Tue Dec 31 15:06:51 1996 David L. Levine - - * ace/Task.cpp: added comments that try to explain interaction - between ACE_Task_Base::svc_run () and ACE_Task_Exit instance - - * ace/Hi_Res_Timer.h: added comment to print_total () saying it - should only be used for incremental timings; added defaults to - a few print_ave/print_total args - - * ace/Hi_Res_Timer.{i,cpp}: inlined the constructor; trimmed output - if count is 1; rounded instead of truncated usecs portion of time - -Mon Dec 30 15:24:59 1996 Douglas C. Schmidt - - * ace/Message_Block: Added reference counting to ACE_Message_Block - so that we no longer have to clone() messages when we want to - pass them around "by reference." - - * apps/Gateway/Peer/Peer.cpp (init): The Peer_Acceptor had gotten - out of date wrt newer ACE features, so I updated it. - -Mon Dec 30 15:24:59 1996 Douglas C. Schmidt - - * ace/OS.h: Added a special case for ACE_UNUSED_ARG that works - with G++. Thanks to David Levine for this. - -Mon Dec 30 16:05:11 1996 David L. Levine - - * ace/OS.cpp (ace_thread_adapter): Updated ACE_TRACE arg - names (even though they're currently commented out). - - * ace/Task.cpp (svc_run): If TSS isn't supported, and on - Linux, for now, create the ACE_Task_Exit exit_hook instance - on the stack so that it's destructor will be called when - svc_run () completes. - -Sun Dec 29 18:38:03 1996 Douglas C. Schmidt - - * apps/Gateway/Gateway/File_Parser.h: Removed the endofline() - method declaration -- it doesn't seem to be defined anywhere. - - * ace/OS.h: Added an ACE_INT32 to complement the ACE_UINT32. - - * netsvcs/lib: Cleaned up all the ACE network services by removing - their SIGINT signal handler. This was interferring with the - main event loop's ability to shutdown... - - * apps/Gateway/Gateway: Once again changed the name of - *IO_Handler* to *Proxy_Handler* since these things are really - proxies, in the COS sense! - - * ace/Service_Record.cpp: Tidied up the implementation of - ACE_Module_Type::fini() so that it doesn't try to call fini() on - NULL pointers. Also, rather than explicitly deleting the reader - and writer Tasks, we call ACE_Module<>::close(), which knows how - to take care of all this stuff. - - * ace/Module.cpp: Added an extra parameter to close_i() so that we - can correctly pass the value of "flags" from close() in order to - prevent deleting tasks when we don't want to do this. - - * ace/Module.cpp: There was a bug in the open() method - since we were potentially deleting reader_q and writer_q twice - if memory allocation failed. - -Sat Dec 28 19:02:13 1996 Douglas C. Schmidt - - * ace/ACE.cpp: Changed the implementation of ldfind() so that it - doesn't try to add the DLL prefix (e.g., "lib") unless it - doesn't match filename. This is necessary to keep lots - of existing svc.conf files from breaking. - - * ace/Event_Handler.h: Added a new ACCEPT_MASK for use with the - new asynchronous accept() operation support for Win32. - - * ace: Added a new config file for WinNT 4.0 called - config-winnt-4.0-msvc4.x.h. This file contains #defines for new - features in WinNT 4.0 such as non-blocking acquire for - CRITICALSECTIONs (TryEnterCriticalSection()), - SignalObjectAndWait(), and CancelIO(). Oddly enough, these - functions seem to be missing from the MSVC++ 4.2 #include files, - so I added them to the config file. - - * ace: Changed the name of config-win32-msvc4.0.h to - config-win32-msvc4.x.h since this config file works for MSVC++ - 4.0, 4.1, and 4.2. - - * ace/Proactor: Added a new "cancel_io" method on the Proactor. - This makes it possible to cancel all I/O that is outstanding on - a thread. Thanks to Tim for help with this. - -Sat Dec 28 23:49:09 1996 Tim H. Harrison - - * ace/ReactorEx.h: Fixed some bugs with ACE_ReactorEx::dispatch. - For instance, the index should only be incremented when handlers - are dispatched. - - * ace/OS.i: Fixed some typos regarding the ACE_cond_t for NT. - - * examples/Reactor/Proactor/test_proactor.cpp: Dr. Schmidt and I - hacked this to be way cool. In particular, we no longer - have to know the size of the files to be transferred in - advance. This scheme uses a clever protocol that shuts down - the Peer Handler when (1) all input from the file has arrived, - (2) all output to the remote peer handler has been sent, and (3) - all input from the remote peer handler has been received. - The Peer Handler now uses calls close_writer on the stream - to notify the remote peer when its done writing. The Input - File Handler sends an mb==0 to tell the Peer Handler when - it's done reading from the file. The Peer Handle uses a - state variable to OR in all the different conditions for - exiting. It works. - -Fri Dec 27 23:39:19 1996 Douglas C. Schmidt - - * ace/Stream.cpp (pop): Modified the code so that we don't delete - the Module we are popping unless the flags request this. - - * ace/Service_Record.cpp (fini): Always make sure to first fini() - each Module, then remove() (and delete) them. - - * ace/Stream.cpp (remove): Updated the code so that we don't - delete the Module unless the flags request this. - -Thu Dec 26 18:51:22 1996 David L. Levine - - * ace/config-linux-lxpthreads.h: Has James CE Johnson's - latest adjustments to this config file. - -Tue Dec 24 10:55:20 1996 Douglas C. Schmidt - - * ace/OS.cpp (ace_thread_adapter): Changed the message that is - printed if we exit the thread. Thanks to Luca for this - suggestion. - -Tue Dec 24 15:38:43 1996 David L. Levine - - * ace/OS.i (cond_destroy): added call to event_destroy () - for waiters_done_ on WTHREADS platforms - - * ace/Future.cpp: added specialization of - template class ACE_Atomic_Op; - so that libACE is self-contained with respect to template - instantiations (with g++, for example) - - * ace/Malloc.cpp: added specialization of - template class ACE_Atomic_Op; - so that libACE is self-contained with respect to template - instantiations (with g++, for example) - - * examples/Reactor/Misc/test_reactors.cpp, - examples/Threads/future1.cpp, examples/Threads/future2.cpp, - examples/Threads/manual_event.cpp, examples/Threads/task_two.cpp, - performance-tests/Synch-Benchmarks/Benchmark.cpp, - tests/Future_Test.cpp, tests/Reactors_Test.cpp: instantiate - ACE_Atomic_Op with int instead of u_long so that it can use - the specialization in libACE - -Tue Dec 24 12:49:21 1996 David L. Levine - - * ace/OS.h (struct siginfo_t): added declaration of - siginfo_t (ACE_HANDLE *handles) to match definition in - OS.cpp. Thanks to James Johnson for pointing this out. - - * ace/OS.cpp (thr_create): fixed position of - #endif /* !ACE_LACKS_THREAD_STACK_SIZE */ directive, it - needed to be before the closing '}' of the block. Thanks to - James Johnson for pointing this out, also. - - * ace/OS.cpp: don't include ace/ARGV.h except on WIN32 because - it's only needed there, and don't compile ACE_Thread_Adapter on - VxWorks to save space - - * apps/Gateway/Peer/Gateway_Handler.h: changed #include "Event.h" - to be #include "Peer_Message.h" so that Peer_Header::ROUTING_ID - can be referenced in the class declaration. This subproject - still doesn't build, though; I think that Event.h is needed. - - * ace/OS.h (struct ACE_cond_t): declare waiters_done_ as - ACE_sema_t on VxWorks only, to avoid recursive struct - definition with ACE_event_t - - * ace/OS.i (ACE_OS::cond_*): on VxWorks only, use sema - operations on ACE_cond_t::waiters_done_ instead of event ops - -Tue Dec 24 10:55:20 1996 Douglas C. Schmidt - - * examples/Threads/task_three.cpp (main): Changed the use of - new-style C++ casts for ACE_Sig_Action to old-style C casts so - that more picky compilers like GCC won't complain. Thanks to - Sandro Doro for reporting this. - - * examples/Threads/task_two.cpp: Fixed a typo where int should be - used as the type for ACE_Atomic_Op rather than u_long. Thanks - to David Levine for noticing this. - - * ace/OS.i: Generalized the implementation of ACE_OS::cond_wait() - so that it will work with Win32 and VxWorks. Thanks to David - Levine for pointing this out. - - * ace/Synch_T.cpp: Removed ACE_Process_Condition since it isn't - really feasible to implement this as a template. At some point, - it should be reimplemnted as a non-template that is only - guaranteed to work on Solaris and some POSIX pthreads platforms. - -Sun Dec 22 21:23:57 1996 David L. Levine - - * ace/Acceptor.cpp: replaced two statements that looked like this: - "ptr && ptr->foo ()" with "if (ptr) ptr-> foo()" to prevent - compiler warnings about computed values that aren't used - - * netsvcs/clients/Tokens/manual/manual.cpp: added explicit "int" - return type to declaration of handle_exception (ACE_HANDLE) so - that compilers don't complain about no type - - * ASX/Event_Server/Event_Server/Options.cpp, - ASX/UPIPE_Event_Server/Options.cpp: rearranged initializers - in Options ctor to match declaration order - -Sun Dec 22 21:16:23 1996 Douglas C. Schmidt - - * ace/OS.cpp (thr_create): added a new ACE_HAS_PTHREADS_XAVIER to - deal with the sparam.sched_priority features of the Linux - pthreads implementation. Thanks to James Johnson for this. - - * ace/OS.i (thr_setprio): I forgot to define int policy = 0; - - * ace/SV_Semaphore_Simple.i: Removed the frigging LUSED macro and - updated the ACE_SV_Semaphore_Simple::name_2_key() method to - consider *all* the characters in the name. This will help avoid - nasty bugs when different lock names have a common prefix. - - * ace/Local_Name_Space_T.cpp (ACE_Local_Name_Space): Added a call - to "delete this->lock_" since we now allocate it dynamically. - - * apps/Gateway/Gateway/gatewayd.cpp: Changed call to - ACE_SVC_INVOKE from ACE_Gateway to Gateway. - - * ace/OS.i: In function thr_sigsetmask changed the line: - - #if defined (ACE_HAS_IRIX62_THREADS) - - to - - #if defined (ACE_HAS_IRIX62_THREADS) || defined (ACE_HAS_PTHREADS_XAVIER) - - Thanks to James CE Johnson for this. - - * ace/config-linux-[lx]pthreads.h: Added a #define for the - ACE_HAS_THREAD_SPECIFIC_STORAGE symbol. Thanks to James CE - Johnson for this. - - * ace: created a new config file called config-linux-lxpthreads.h. - This contains the ACE #defines necessary to use L. Xavier's - threading package on Linux. Thanks to James CE Johnson - for this. - - * build/gcc/ace/Synch: Moved the definition of the ACE_*Event - classes *outside* of ACE_HAS_THREADS so that the Proactor will - compile correctly even when there's no threading defined. - - * ace/config-linux-pthread.h: Added #define ACE_MT_SAFE, which - seems to have been missing. Thanks to James Johnson for - suggesting this. - - * tests/TSS_Test.cpp: Now that we've got Chris Lahey's fixes for - AIX we can run this test on AIX. - - * ace/OS.cpp (thr_create): Added a #ifdef for - pthread_attr_setstacksize() for Linux pthreads, which doesn't - seem to support this. Thanks to James CE Johnson - for this fix. - - * ace/OS.i: Added DCE pthreads fixes for OSF/1 3.2. Thanks to - Harry Gunnarsson for these. - -Sat Dec 21 13:54:45 1996 Douglas C. Schmidt - - * ace/Synch_T: Integrated a solution that will allow MVS to use - ACE_TSS. The problem is that the MVS C++ compiler requires an - extern "C" destructor function for pthread_key_delete and the - ACE_TSS stuff uses a paramatized C++ destructor function - (ACE_TSS::cleanup). To solve this, a new class - (ACE_TSS_Adapter) was created that encapsulates a thread - specific object and it's associated C++ destructor. The ACE_TSS - methods were then modified so that they provide access to the - thread specific object through the ACE_TSS_Adapter. Also added - a generic extern "C" cleanup routine that takes an - ACE_TSS_Adapter as an argument. It then calls the adapters - cleanup method passing it the saved address of the thread - specific object. Thanks to Chuck Gehr - for all of this. - - * ace/OS: Updated the code so that it will work with MFC and - AfxBeginThread(). Thanks to Detlef for these changes. - - * ace/README: Added two new #defines for ACE_LACKS_COND_T and - ACE_LACKS_RWLOCK_T to make it possible to define these in a - fine-grained manner for various platforms. - - * ace/OS.h: Restructured the ACE_HAS_THREADS section so that we - factor out the code for ACE_cond_t and ACE_rwlock_t so that it - is only defined if we don't support these features natively. - - * ace/ReactorEx: Added a new "alertable" parameter to the - handle_events() method. If alertable is true, then - WaitForMultipleObjectsEx is used as the demultiplexing call, - otherwise WaitForMultipleObjects is used. - - * ace/Signal.cpp: Had to move a few things around so that the code - would compile for HP/UX. Thanks to Neil B. Cohen - for reporting this. - - * ace/Acceptor.cpp: Updated the handle_close() method so that the - Acceptor shuts down the listen socket and prevents handle leaks. - Thanks to Irfan for reporting this. - -Thu Dec 19th 03:48:26 1996 Irfan Pyarali - - * ace/Local_Name_Space_T.cpp: Made sure that the mutexes are - getting named properly (both the mutex owned by the - Local_Name_space and the lock owned by the backing - store). For the time being I named these two to be the - extensions of the backing store file name. - - * ace/Local_Name_Space_T.cpp: Replaced the create_manager code - such that we use the double check pattern. This is simpiler - and easy to understand compared to the current code. - - * ace/Naming_Context.cpp: Gave the database name a default value. - - * ace/Malloc_T.cpp: The lock_name should never be 0. This will - cause all instances of the same pool to get different - mutexes. - -Sat Dec 21 09:43:35 1996 David L. Levine - - * ace/OS.{h,i}: fixes for VxWorks introduced in 4.1, and for - inlining: moved #include of OS.i after #defines but before - other ace #includes - -Thu Dec 19 15:58:09 1996 David L. Levine - - * ace/config-vxworks*.h, include/makeinclude/platform_vxworks*.GNU: - enable inlining on VxWorks by default - -Wed Dec 18 16:44:47 1996 Tim H. Harrison - - * ace/Proactor.cpp (dispatch): Changed this method to take an - int error parameter to set errno just before dispatching. - This allows us to better propagate overlapped I/O errors to the - handlers. - -Wed Dec 18 16:21:36 1996 David L. Levine - - * ace/OS.{h,i} and ace/INET_Addr.cpp: more VxWorks - gethostbyname () tweaks - -Wed Dec 18 15:24:13 1996 Tim H. Harrison - - * ace/Proactor.cpp (ACE_Proactor): Initialize completion_port_ to - 0. This is the only way that CreateIoCompletionPort works - first time in. ACE_INVALID_HANDLE makes it break. - - * (ACE_Proactor): Added a call to CreateIoCompletionPort in the - constructor so that GetQueuedCompletionStatus can be called - before ACE_Proactor::initiate is called. This is necessary if - an application is using the Proactor as a timer mechanism only. - -Tue Dec 18 7:58:07 1996 Tim H. Harrison - - * ace/Proactor.i (get_handle): Changed this to return - ACE_INVALID_HANDLE on non Win32 platforms. Also changed - shared_event_ from an ACE_Manual_Event to an ACE_Auto_Event. - This allows us to remove the call to reset from handle_signal. - - * examples/Reactor/Proactor/test_timeout.cpp: Added a new example - application to the Proactor example suite. Check the README for - more details. - - * examples/Reactor/ReactorEx/test_timeout.cpp: Added a new example - application to the ReactorEx example suite. Check the README for - more details. - - * ace/Service_Config.cpp: Fixed a bug in run_reactorEx_event_loop - (ACE_Time_Value &) so that it doesn't return on timeout. - -Tue Dec 18 7:06:32 1996 - - * ace/Proactor.cpp (handle_events): Once again removed the - timer_skew_ code. Changed the ACE_HANDLE global_handle_ to - ACE_Manual_Event shared_event_. Added a constructor that takes - an ACE_Timer_Queue *. Changed the implementation to use an - ACE_OS::sleep if only timers are registered. We need to figure - out a better approach than the sleep. - - * ace/Service_Config.cpp (run_proactor_event_loop): Changed this - to only return when an error occurs. If handle_events returns a - 0, then a timeout occurred, and we can continue to dispatch - events. We only return when all of the time has expired. - - * ace/Registry_Name_Space.h (ACE_Registry_Name_Space): Moved the - include statements below the ACE_WIN32 and UNICODE directives. - - * ace/OS.h (siginfo_t): Added siginfo_t (ACE_HANDLE *handle) - constructor prototype. - -Wed Dec 18 06:37:22 1996 Douglas C. Schmidt - - * ace/OS.i (cond_wait): Added the new algorithm for condition - variable emulation on Win32. (and VxWorks). This should fix the - nasty problems we had with earlier version (which weren't - "fair"). Thanks to James Mansion, Karlheinz, Detlef, and Irfan - for helping with this. - - * ace/Registry.h: Removed the "ACE_TURN_NOMINMAX_OFF" stuff - in order to simplify the code. Thanks to Irfan for this. - - * ace/OS.i (sema_post): Added a new overloaded version of - ACE_OS::sema_post(), which takes a "release count." This is the - number of times to release the semaphore. Note that Win32 - supports this natively, whereas on POSIX we need to loop... - - * ace/Proactor.cpp (handle_events): Changed the Proactor logic so - that it will correctly propagate any errors that occur to the - handle_{input,output}_complete callback. - -Tue Dec 17 20:56:56 1996 David L. Levine - - * ace/OS.{h,i}: on VxWorks: implemented ACE_OS::gethostbyname (), - and fixed inet_ntoa () to return -1 on failure - - * ace/OS.cpp: in ::spa () for VxWorks, zero out unused argv[] - slots to overwrite args from previous invocations OS.cpp - -Tue Dec 17 04:27:07 1996 Douglas C. Schmidt - - * ace/ReactorEx: Added a new feature to the ReactorEx. If we - enable the wait_all flag when calling - ACE_ReactorEx::handle_events() *and* we give an - ACE_Event_Handler (this is a new final param to the call) then - the handle_signal() call will be invoked on this - "wait_all_callback" object when all the handles become signaled. - Moreover, we pass in the array of signaled handled to through - the siginfo_t parameter (see the following ChangeLog entry for - details). If there is no wait_all_callback param, then all the - handle_signal() methods are invoked on all the handles. - - * ace/OS.h (siginfo_t): Augmented the siginfo_t interface so that - we can pass an array of signaled Win32 HANDLEs, in addition to - just a single HANDLE. This is used in the ReactorEx. - - * examples/Reactor/ReactorEx/test_reactorEx.cpp: Added a number of - enhancements to this test program based on discussions with - Irfan, Karlheinz, Dieter, and Detlef. - - * ace/Task_T.i (msg_queue): If we override the existing definition - of the Message_Queue in an ACE_Task then we need to delete the - existing Message_queue (if necessary and mark the Message_Queue - as no longer being a candidate for deletion (since we have - supplied our own definition). Irfan had added this earlier, but - it seemed to get lost... - - * examples/Reactor/Proactor/test_proactor.cpp: The class called - STDIN_HANDLEr is misnamed since we don't read from stdin, we - read from a file. Therefore, I've changed this to be - Input_File_Handler. - - * examples/Reactor/ReactorEx/test_{proactor,reactorEx}.cpp: - Changed misspellings of transfered to transferred. - - * ace/Memory_Pool.cpp (ACE_MMAP_Memory_Pool): Since NT doesn't support - SIGSEGV thre's no point in even trying to register for this - signal! - - * ace/OS.i: Reverted some lost UNICODE fixes -- thanks to Irfan - for finding these. - - * ace/Local_Name_Space_T.cpp (create_manager_i): Removed a - debug statement since it may be causing problems with printing - UNICODE. - -Mon Dec 16 11:25:55 1996 Douglas C. Schmidt - - * ace/OS.i (cuserid): Fixed the definition to ACE_OS::cuserid() so - that it uses LPTSTR. Thanks to Irfan for this fix. - - * ace/Task.cpp (activate): In ACE_Task::activate() there is a possibility to actually - "reactivate" the task using the flag. The following - illustrates that ability: - - if (this->thr_count_ > 0 && force_active == 0) - return 1; // Already active. - else - this->thr_count_ = n_threads; - - The thing is that, when the task is running and we reactivate it - (actually we add threads) the command should be: - - this->thr_count_ += n_threads; - - rather than - - this->thr_count_ = n_threads; - - That way thr_count_> holds the new number of threads currently - associated with the task. Thanks to Hamual for this fix. - - * ace/OS.i (inet_aton): Placed the return 1 within the curly - braces to make the HP/UX compiler happy. Thanks to Kenny Want - for reporting this. - -Mon Dec 16 12:56:43 1996 David L. Levine - - * ace/OS.i: removed spurious "*/" after an #endif. Thanks to - Harry Gunnarsson for reporting this. - - * ace/Svc_Conf_l.cpp: #ifdef'ed out ace_yyunput () and - ace_yy_{push,pop,top}_state () because they're not used, - and commented out a few "break"s after "return"s in switch - statements to prevent compiler warnings. - - * ace/Typed_SV_Message.i: reordered initializations in ctor to - match declaration order. - - * examples/Threads/Makefile, performance-tests/Misc/Makefile, - tests/Makefile: - Removed "LIBS += -lm" from these Makefiles because it doesn't - appear to be necessary, and not all platforms have a libm. - - * include/makeinclude/platform_sunos4_g++.GNU, platform_sunos5_g++.GNU, - platform_sunos5_x86_g++.GNU, platform_unixware_g++.GNU: - added -lm to LIBS because it was removed from the Makefiles, and - it's needed with g++. - - * netsvcs/lib/Makefile: removed /pkg/gnu/lib dependencies. Thanks - to Per Andersson for pointing - this out. - - * netsvcs/servers/svc.conf: changed _make_ACE_Logger() to - _make_ACE_Logging_Strategy() svc.conf. Thanks to Per Andersson - for reporting this. - -Sun Dec 15 13:01:17 1996 David L. Levine - - * ace/Naming_Context.cpp: reordered initializations in default ctor - to match declaration order. - - * ace/Svc_Conf_y.cpp: added parens to a couple of combined - assignments/conditionals to avoid compiler warnings. - - * include/makeinclude/platform_sunos5_sunc++*.GNU: reverted - SOLINK step back to creating real .so files, because it - seems to be necessary, sometimes, for template instantiation. - - * netsvcs/lib/Server_Logging_Handler.cpp: removed ACE_INLINE's. - - * tests/MM_Shared_Memory_Test.cpp: declare shm_key as char[] - instead of char *, so that the string gets put into the data - segment rather than the text segment. The string gets modified, - which causes a core dump with the g++/SunOS5.5 build if the string - is in the text segment. - -Sun Dec 15 10:29:20 1996 Douglas C. Schmidt - - * netsvcs/servers/svc.conf: Removed the "lib" prefix for the - netsvcs DLL. This is now added automatically by the - ACE::ldfind() operation. - - * ace/SString.cpp (ACE_CString): Removed the #pragmas for Win32. - They aren't necessary since we should replace the ACE_USHORT16 - cast with a char cast. Thanks to Amos Shapira - for reporting this. - -Sat Dec 14 14:25:38 1996 Douglas C. Schmidt - - * build/SunOS5.5/tests/UPIPE_SAP_Test.cpp (main): Fixed several - minor bugs with UPIPE_SAP_Test.cpp. - - * ace/OS.i (thr_join): Added implementations for Solaris threads - and most versions of POSIX pthreads where ACE_hthread_t and - ACE_thread_t are the same type! - - * ace/OS: Began adding hooks so that we can eventually move away - from the current split between ACE_thread_t and ACE_hthread_t - and unify them via ACE_Thread_ID. - - * ace/{OS,Thread}.h: Changed the interface of thr_getprio() so - that it takes an int & rather than an int *. - - * ace/OS.i (thr_getprio): Fixed a minor bug for Win32 where we - weren't depositing the thread priority into the return value! - - * Makefile: Changed the order in which things are built so that - netsvcs are built right after libACE, followed by the tests. - -Sat Dec 14 11:54:22 1996 Douglas C. Schmidt - - * apps/Gateway/Gateway/Consumer_Map: Change the Consumer_Map class - so that it was no longer templatized. There isn't any point in - doing this since we aren't going to be changing these types for - this application. - - * apps/Gateway/Gateway: Factored out the code for selecting the - concurrency strategy into a separate *.h file called - Concurrency_Strategy.h. - - * apps/Gateway/Gateway: Began revising the Gateway application to - use the new ACE Event Channel. - - * ace/Svc_Handler: Now that we've got put() and svc() with no-op - defaults in class ACE_Task_Base, we don't need them in - ACE_Svc_Handler anymore, so I removed them! - - * ace/Task: Finally got sick of having to provide no-op - open()/put()/close() routines in all ACE_Task subclasses, so I - changed these methods from pure virtual to virtual with default - no-op behavior. Updated all the tests, as well. - -Sat Dec 14 11:39:15 1996 David L. Levine - - * ace/{Module,Stream,Svc_Handler,Synch_T,Task_T}.cpp and Synch_T.i: - removed ACE_INLINE qualifier from functions in .cpp files; in - the case of Synch_T, moved ACE_INLINE functions from .cpp to .i file - - * apps/Gateway/Gateway/Routing_Table.cpp, - examples/ASX/Event_Server/Event_Server/Peer_Router.cpp, - examples/ASX/UPIPE_Event_Server/Peer_Router.cpp: - removed ACE_INLINEs from .cpp files - - * ace/CORBA_Handler.h and ace/Token_Collection.{h,cpp}: - changed __INLINE__ to __ACE_INLINE__ - - * ace/Svc_Conf_y.cpp: commented out unused arguments to - suppress compiler complaints - -Fri Dec 13 22:07:11 1996 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++*.GNU: replaced - SOLINK step in build of shared objects for SunOS5 with SunC++ - with symlink from .so to .o file. - - * ace/config-vxworks*.h: added ACE_NEEDS_SYSTIME_H to VxWorks - configs because it's needed with inlining - - * include/makeinclude/platform_vxworks*.GNU: cleaned up VxWorks - config files - -Fri Dec 13 00:53:34 1996 Douglas C. Schmidt - - * ace: Replaced all uses of - - #if defined (.....) // .... - - with - - #if defined (.....) /* ... */ - - so that broken C++ compilers won't complain. Thanks to - John Cosby for reporting this. - - * ace/Thread.i: Updated the signature of getprio() and setprio() - so that they take ACE_hthread_t. Thanks to Wayne Vucenic - for finding this. - - * Reran all the tests on NT and Solaris. Everything seems to - work. Therefore, incremented the version number to 4.1 and put - it out for ftp and http. - -Thu Dec 12 18:51:04 1996 Douglas C. Schmidt - - * tests/Priority_Task_Test.cpp (svc): Added a new test to exercise - the new "priority" feature of ACE_OS::thr_create() - (which is also available to ACE_Task). - - * ace/Thread: Added getprio() and setprio() methods to ACE_Thread. - -Fri Dec 13 13:44:12 1996 David L. Levine - - * ace/config-vxworks*.h: added ACE_NEEDS_SYSTIME_H to VxWorks - configs because it's needed with inlining - - * include/makeinclude/platform_vxworks*.GNU: cleaned up VxWorks - config files - -Thu Dec 12 18:51:04 1996 Douglas C. Schmidt - - * ace: Added a new macro called ACE_UNUSED_ARG() to keep - the compiler from outputting warnings about unused - arguments. So far, this is mostly done for Win32, but it - should be easy to do it for other compilers. Thanks - to Matthias for these changes. - - * ace/OS.cpp: Added support so that thread priorities will - automatically be set when we spawn threads using - ACE_OS::thr_create(). - - * ace/OS.cpp: Simplified the logic for handling NULL thr_handles - and thr_ids. Now, we set all this stuff in one place at the - beginning of the function, rather than recomputing it all over - the place. - - * ace/config-aix-{3.2.5,4.1.x}.h: Added the - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS flag. - - * ace/Thread_Manager.cpp (ACE_Thread_Control): Conditionally - compiled the logic for calling this->exit() in the destructor - for ACE_Thread_Control so that we only make this call if - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS is *not* set. This will - prevent infinite recursion on platforms like AIX. Thanks to - Chris Lahey for reporting this. - - * apps/Gateway/Gateway/Channel.cpp (recv_peer): Added the logic - that makes sure we don't get screwed up by partial headers. - Thanks to Chris Cleeland for this. - -Thu Dec 12 20:55:02 1996 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++*.GNU: removed - SOLINK step in build of shared objects for SunOS5 with SunC++: - it's not necessary. - -Thu Dec 12 03:48:26 1996 Irfan Pyarali - - * ace/Naming_Context: Modified ACE_Naming such that on Win32, you - can use ACE_Registry_Name_Space. - - * ace/Registry_Name_Space: ACE_Registry_Name_Space is a Name_Space - which uses ACE_Registry as the persistence mechanism. Win32 - clients of ACE_Naming can now start using (the more robust and - reliable) Registry persistence without any major code changes. - - * tests/Naming_Test.cpp: Added the use of Registry_Name_Space to - the test if we are on Win32 and UNICODE is turned on. - - * examples/Registry: Fixed UNICODE behavior of the tests - -Wed Dec 11 20:33:28 1996 Douglas C. Schmidt - - * ace/Synch_T.h: Added a warning that indicates why it isn't - possible to use ACE_Process_Condition on - Win32... - - * tests/TSS_Test.cpp: Moved the Errno class to a file - TSS_Test_Errno.h and replaced the Errno class with the #include - "TSS_Test_Errno.h" to work around "features" with AIX C++'s - template instantiation scheme. - - * ace/OS.i (inet_aton): Replaced the use of ((ACE_UINT32) -1) with - ((ACE_UINT32) ~0). I expect this is more portable... - - * tests/run_tests.bat: Added "Service_Config_Test" to the - run_tests.bat file. - -Tue Dec 10 22:59:26 1996 Irfan Pyarali - - * tests: Added Service_Config_Test to Win32 makefiles. - - * ace/OS.i (inet_aton): We need to cast htonl to (long) - - * tests: Added/Fixed UNICODE behavior of the following: - - MM_Shared_Memory_Test.cpp - Mem_Map_Test.cpp - Mutex_Test.cpp - Naming_Test.cpp - Process_Mutex_Test.cpp - SPIPE_Test.cpp - Time_Service_Test.cpp - Tokens_Test.cpp - UPIPE_SAP_Test.cpp - - * netsvcs/lib: Added/Fixed UNICODE behavior of the following: - ACE_TS_Clerk_Processor::poolname_ - -Tue Dec 10 00:33:08 1996 Douglas C. Schmidt - - * tests/Service_Config_Test.cpp (main): Added a new method called - run_test() to ensure that ACE_Service_Config daemon is destroyed - before we try to end the test. - - * ace/OS.i (inet_aton): We need to cast -1 to (ACE_UINT32). - - * tests/Process_Mutex_Test.cpp (main): Added a minor change to - make gcc happy by moving the definition of int i *outside* the - loop. Thanks to Thilo Kielmann - for reporting this. - - * ace/OS.h: gcc complains about memcmp, memcpy, strcmp, and strcpy - (from ACE_OS::) being used before defined inline. This is due - to the include of SString.h at the end of OS.h. So I reordered - things in accordance to the changes from Thilo Kielmann - . - - * build/SunOS5.5/examples/Shared_Malloc/test_multiple_mallocs.cpp: - Changed the definition of char *base_addr to void *base_addr. - - * ace/Memory_Pool.cpp (ACE_MMAP_Memory_Pool_Options): Changed the - definition of char *base_addr to void *base_addr. - - * Put out what is hopefully the final beta release of 4.0.33. - - * ace/Message_Queue: Added the enqueue() method again to maintain - backwards compatibility. Thanks to Karlheinz for pointing out - the need for this. - - * ace/Service_Config.h: The svc.conf factory functions were - begin defined as extern "C", but the function pointer defined in - the ACE_Static_Svc_Descriptor struct is not declared as extern - "C", therefore, there was a mismatch. Here's how to fix this: - - In Service_Config.h, before the struct ACE_Static_Svc_Descriptor - add: - - extern "C" { - typedef ACE_Service_Object *(*ACE_SERVICE_ALLOCATOR)(void); - } - - Then in the struct alloc_ field was changed as follows: - - from: ACE_Service_Object *(*alloc_)(void); - to: ACE_SERVICE_ALLOCATOR alloc_; - - Thanks to Chuck Gehr for this. - - * ace/Memory_Pool.cpp (commit_backing_store_name): Changed uses of - "counter" from int to size_t to remove warnings. - - * ace/ACE.cpp: Reimplemented the ACE::daemonize() method to - conform to the latest version in Richard Steven's new UNP book. - - * ace/INET_Addr.cpp (set): Replaced the use of ACE_OS::inet_addr() - with ACE_OS::inet_aton(). Thanks to W. Richard Stevens for this - idea ;-). - - * ace/OS: Added a new function called inet_aton(), which is based - on a new POSIX socket addressing function that is non-ambiguous - in its return value (unlike inet_addr). - - * tests: Added a new Service_Config_Test.cpp to make sure that the - timeout features mentioned below work. - - * ace/Service_Config.cpp: Changed the implementation of - run_{reactor,proactor,reactorEx}_event_loop so that it returns - if the corresponding handle_events() method times out. - Thanks to Phil Logan for reporting - this. - - * ace/LSOCK_Stream: Moved get_remote_addr() from the private part - of the class and implemented it using get_local_addr(). This - fixes problems that previously occurred when using the - ACE_Connector with ACE_LSOCK_Stream. Thanks to Stuart Powell - for this suggestion. - -Mon Dec 9 22:03:30 1996 Douglas C. Schmidt - - * examples/Threads: Updated the test.mak and test.mdp files to - reflect the new name changes. Thanks to Matthias for this. - - * ace/ACE.cpp (ldfind): Added new code that will work if the - "base" part of the filename to look for is the same on both UNIX - and NT. The library name will be made up of three parts - [ACE_DLL_PREFIX]base part[ACE_DLL_SUFFIX], where prefix is "lib" - on UNIX and nothing on NT and suffix is ".dll" on NT and ".so" - on UNIX. If either prefix or suffix are missing from the - filename you supply to ldfind they will be added - automagically. This all will work independent from the pathname, - which will be treated completely separately from the filename - and can contain either UNIX style or NT style separators. - - Examples: - Source NT UNIX - =============================================================== - netsvc netsvc.dll libnetsvc.so - (PATH will be evaluated) (LD_LIBRARY_PATH evaluated) - - libnetsvc.dll libnetsvc.dll libnetsvc.dll + warning - netsvc.so netsvc.so + warning libnetsvc.so - - ..\../libs/netsvc ..\..\libs\netsvc.dll ../../libs/libnetsvc.so - (absolute path used) (absolute path used) - - The first and the last of these 4 examples is the way the new - functionality is supposed to be used. You simple supply the - pathname and the base part of the filename and ldfind will - figure everything out. - - Thanks to Tilo Chris for this code. - - * ace/OS.h: Added a new macro called ACE_DLL_PREFIX, which is - defined to "" on Win32 and "lib" on UNIX. Thanks to Tilo for - this. - - * ace/Reactor.cpp (detach): After further thought, I - have commented out the - - eh->reactor (0); - - call since I don't think we really need it. - - * ace/Reactor.cpp (detach): There was a problem with - ACE_Reactor::detach(). - - The following lines: - - // Reinitialize the Reactor pointer to 0. - eh->reactor (0); - - should be moved before: - - eh->handle_close (handle, mask); - - This will render the reactor handle not available in the - handle_close method but at least handle_close can delete itself. - Thanks to Luca for reporting this. - - * examples/Reactor/Ntalker: Replaced the use of ACE_OS::getopt() - with the ACE_Get_Opt iterator. Thanks to Alexandre Karev - for suggesting this. - - * ace/OS.h: Moved the #endif /* ACE_HAS_DCETHREADS || - ACE_HAS_PTHREADS */ once again in order to make sure that the - right things happen when #if defined (ACE_HAS_THREADS) is - *false*. Thanks to Robert Lyng - for reporting this. - -Mon Dec 9 02:06:48 1996 Irfan Pyarali - - * ace/SString: Made accessors return const references. - - * ace/OS.h: Added macro ACE_WIDE_STRING which allows the - conversion of char* to wchar_t* when UNICODE is turned on. - - * ace: Added/Fixed UNICODE behavior of the following: - - /* Local_Name_Space */ - ACE_Local_Name_Space_T::context_file_ - - /* ACE */ - ACE::basename - - /* Token */ - ACE_Token::ACE_Token - - /* Synch */ - ACE_File_Lock::ACE_File_Lock - - /* SPIPE_Addr */ - ACE_SPIPE_Addr::addr_to_string - ACE_SPIPE_Addr::set - - /* FILE_Addr */ - ACE_FILE_Addr::addr_to_string - - /* DEV_Addr */ - ACE_DEV_Addr::addr_to_string - - /* Addr */ - ACE_Addr::addr_to_string - ACE_Addr::string_to_addr - Note: These two were removed from the base class since they are - not common to all Address classes. - - /* Malloc */ - ACE_Allocator_Adapter::ACE_Allocator_Adapter - ACE_Malloc::ACE_Malloc - - /* Process */ - ACE_Process::start - - /* Shared_Memory_MM */ - ACE_Shared_Memory_MM::ACE_Shared_Memory_MM - ACE_Shared_Memory_MM::open - - /* Proactor */ - ACE_Overlapped_File::ACE_Overlapped_File - ACE_Overlapped_File::open - - /* Log_msg */ - ACE_Log_Msg::open - - /* Naming_Context */ - ACE_Name_Options::namespace_dir - ACE_Name_Options::process_dir - ACE_Name_Options::database - - /* Registry */ - ACE_Predefined_Naming_Contexts::connect - ACE_Predefined_Naming_Contexts::is_local_host - - /* SString */ - ACE_CString::ACE_CString - - /* Mem_Map */ - ACE_Mem_Map::ACE_Mem_Map - ACE_Mem_Map::map - - /* Service_Config */ - ACE_Service_Config::logger_key_ - - /* System_Time */ - ACE_System_Time::ACE_System_Time - - /* Memory_Pool */ - ACE_Sbrk_Memory_Pool::ACE_Sbrk_Memory_Pool - ACE_Shared_Memory_Pool::ACE_Shared_Memory_Pool - ACE_Local_Memory_Pool::ACE_Local_Memory_Pool - ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool - ACE_Lite_MMAP_Memory_Pool::ACE_Lite_MMAP_Memory_Pool - - /* OS */ - ACE_OS::strstr - ACE_OS::strdup - ACE_OS::hostname - ACE_OS::open - ACE_OS::unlink - ACE_OS::dlopen - ACE_OS::dlsym - ACE_OS::cuserid - ACE_OS::fork_exec - ACE_OS::sprintf - ACE_OS::access - ACE_OS::fopen - ACE_OS::getenv - ACE_OS::system - ACE_OS::mkdir - ACE_OS::mktemp - -Sun Dec 8 19:00:45 1996 Tim H. Harrison - - * ace/Reactor.cpp (handle_events): Updated this method to use the - ACE_Countdown_Time::update method after the mutex has been - acquired. - - * ace/Time_Value.cpp (update): Added an ACE_Countdown_Time::update - method that calls stop and start. This is useful for methods - such as ACE_Reactor::handle_events that need to update timeout - values after acquiring locks, but before waiting on the - demultiplexing mechanism (e.g. select). - - * ace/ReactorEx.cpp (handle_events): Modularized the - implementation of handle_events. Now it uses helper functions - to significantly simplify the implementation. Also updated the - header file documentation. - - * ace/Timer_Queue: Added a timer_skew_ data member and accessor - methods to ACE_Timer_Queue. Also added an expire method that - calls gettimeofday and adds the timer_skew_ for you. These - changes will help simplify Reactor, Proactor, and ReactorEx - code. - - * ace/Reactor : Removed timer_skew_. This code now just calles - timer_queue->expire () with no parameters. Very clean. - - * ace/ReactorEx : Removed timer_skew_ code. - - * ace/Proactor : Removed timer_skew_ code. - - * examples/Proactor/test_proactor.cpp: Fixed this application so - that it exits when all the data has been sent and received. - Previously, it used a cool timeout mechanism to "guess" when all - the data had been received. Ahh, but we can't have too much - fun, or people start to get nervous. - - * ace/Service_Config.cpp (run_reactorEx_event_loop (Time_Value)): - Fixed the implementation of this method. It now handles - reactorEx events until end_reactorEx_event_loop is called, or - the specified time value expires. Also fixed the - run_proactor_event_loop (Time_Value) method. - - * examples/ReactorEx/test_timeout.cpp: Added a new example - application that shows how to use - Service_Config::run_reactorEx_event_loop with timeouts. Check - the examples/ReactorEx/README file for more details. - - * examples/Proactor/test_timeout.cpp: Added a new example - application that shows how to use - Service_Config::run_proactor_event_loop with timeouts. Yes, this - screams for common dispatcher interfaces for Reactor, Proactor, - and ReactorEx. - -Sun Dec 8 10:27:19 1996 Douglas C. Schmidt - - * ace/Service_Manager.cpp (init): Changed all uses of "int port" - to "u_short port" to be consistent with socket types. - - * ace/ACE.cpp (bind_port): Changed all uses of "int port" to - "u_short port" to be consistent with socket types. - - * ace/Remote_Name_Space.cpp: Changed all uses of "int port" to - "u_short port" to be consistent with socket types. - - * ace/SV_Semaphore_{Simple,Complex}: Changed all uses of "int n" - to "u_short n" to be consistent with the SYSV types! - - * ace/OS.h: Moved the location of the ACE_HAS_USING_KEYWORD macros - until *after* we #include "ace/Time_Value.h". Thanks to - Matthias for this. - - * ace/Signal.cpp: Finished implementing the - ace_signal_handlers_dispatching logic, which wasn't done - entirely earlier. Thanks to Alexandre Karev - for reporting this. - - * netsvcs/servers/main.cpp (main): Fixed several small bugs in the - netsvcs main test program. Thanks to Alexandre Karev - for finding this. - - * ace/Reactor: Removed the timer_skew_ data member from the - ACE_Reactor since this is now covered by the - ACE_Timer_Queue. - - * ace/Reactor.cpp (handle_events): Added the new version of the - ACE_Countdown_Time to simplify the code. - - * ace/Time_Value: Added a new class called ACE_Countdown_Time, - which is used by the Reactor, ReactorEx, and Proactor to keep - track of how much time elapsed. - - * ace/config-win32-msvc4.0.h: Added a change that forces the MSVC - compiler to reference the proper Winsock - lib during linking of - ACE. This change is necessary because a) in the release version - the link to the winsock.lib was completly missing and b) only - wsock32.lib has been included (which is wrong when WinSock2 is - used). Thanks to Matthias for this. - - * ace/Module.cpp (ACE_Module): Added code to zero-out the - q_pair_[2] pointers. Thanks to Matthias for this. - - * tests: Removed the argv name from most main() functions so that - we don't get warnings... - - * examples/Threads: Fixed some errors in the threads examples - directory, most of which are ambigious overloads. Also included - a (MSVC 4.1) makefile for all tests in this directory. Thanks - to Matthias for this. - - * examples/Threads: Renamed all the files by removing the word - "test_" at the beginning. This is redundant! - - * tests/TSS_Test.cpp: If we are running AIX (i.e., if - ACE_TEMPLATES_REQUIRE_PRAGMA), then conditionally avoid - compiling this test program because it doesn't work unless we - split off class Errno due to AIX's rules for generating - templates. This is too much work to get right... - - * ace/OS.i (thr_self): Updated the conditional compilation tests - so that we check for ACE_HAS_THREAD_SELF first. Thanks to Chris - Lahey for this. - - * ace/{config-osf1-3.2.h,config-aix-4.1.x.h}: Updated this file so - that is has the new ACE_HAS_THREAD_SELF macro, which indicates - that the platform uses thread_self() rather than pthread_self(). - - * ace/config-aix-4.1.x.h: According to Chris Lahey - , AIX 4.1.x should have ACE_HAS_PTHREADS - rather than ACE_HAS_DCETHREADS. - - * ace/Thread_Manager: Removed the thread_descriptor_i() methods - and replaced them by generalizing the find() method to become - find_thread() and find_hthread(). Thanks to Hamutal Yanay - for suggesting this. - -Sun Dec 8 14:39:53 1996 Tim H. Harrison - - * ace/Timer_Queue: Added a timer_skew_ data member and accessor - methods to ACE_Timer_Queue. Also added an expire method - that calls gettimeofday and adds the timer_skew_ for you. These - changes will help simplify Reactor, Proactor, and ReactorEx - code. - -Sat Dec 7 01:14:04 1996 Irfan Pyarali - - * tests/Process_Mutex_Test.cpp: Added new test which checks the - functionality of a ACE_Process_Mutex. Abandoned mutexes can be - created by selecting the correct command-line arguments. - - * examples/Reactor/ReactorEx/test_reactorEx.cpp: Reverted back to - old scheme which does not utilize traits. - - * ace/Task_T.h: Removed the synchronization trait in Task. This is - because template typedefs are only supported by a few - platforms. Sigh ;-) - -Sat Dec 7 16:55:37 1996 Douglas C. Schmidt - - * ace/Thread_Manager.cpp: Because thread_descriptor_i() only returns - 0 or -1 on failure the code for - ACE_Thread_Manager::thr_self(ACE_hthread_t &) should read: - - if (-1 == this->thread_descriptor_i (id, td)) - return -1; - handle = &td.thr_handle_; - - Thanks to Matthias for reporting this. - - * ace/OS: Added a new static instance of ACE_thread_key_t to work - around the pthreads implementation on MVS (which doesn't store - TSS keys as ints!). Thanks to Chuck Gehr for reporting this. - - * ace/config-mvs.h: Added #define ACE_TEMPLATES_REQUIRE_SOURCE for - MVS C++. Thanks to Chuck Gehr for reporting this. - - * ace/Signal.cpp: ace_dispatcher was being set to - ace_signal_handlers_dispatch() which calls - ACE_Sig_Handlers::dispatch (when ACE_HAS_SIC_C_FUNC is defined), - whereas it was set to ACE_SigHanlder::dispatch (no s) if not - defined. I intended to set this to ace_signal_handler_dispatch - (no s). Thanks to Chuck Gehr for reporting this. - - * ace/Makefile: Fixed a small typo where I wasn't matching char - *getenv in the sed regular expression. - - * ace/{OS,Synch}: Moved various classes around so that things will - compile correctly when ACE_WIN32 is defined but ACE_HAS_THREADS - is *not* defined. Thanks to Robert Lyng - for reporting this. - -Sat Dec 7 16:55:37 1996 Matthias Kerkhoff - - * ace/Module: Added some values to the enum so Module clients - can decide whether the reader, the writer or both should be - automatically deleted. - - * ace/{Stream,Module,Task}: Changed some function arguments - from u_long to int (because enums are represented as ints). - - * ace/Task: Added a new virtual function to ACE_Task_Base - (module_closed), which by default calls - ACE_Task_Base::close(1). Please note the changed flags - argument. This allows clients to differ between calls - originated from a Module and/or Stream from those which - result from ~ACE_Task_Exit(). ~ACE_Task_Exit() calls - ACE_Task_Base::close(0). This may be or not be a problem to - existing applications. It may (hopefully not) - be neccessary to change ACE_Task_Base::module_close back to - calling ACE_Task_Base::close(0). - -Fri Dec 06 14:44:20 1996 David L. Levine - - * ace/OS.cpp: added ::spa () function to allow command line args - to be passed to programs in VxWorks - - * ace/OS.i: (ACE_OS::gettimeofday): VxWorks returns nsec instead - of usec, so convert - -Fri Dec 6 01:21:48 1996 Irfan Pyarali - - * examples/Reactor/ReactorEx/test_reactorEx.cpp: Rewrote the - example such that the test now uses the new Notification - Strategy scheme in ACE. This allows a message queue consumer to - wait in ReactorEx without spawning a new thread, or creating - extra Win32 events. This make the example smaller and much - cleaner. - - * ace/Task_T.h: Added synchronization trait to Task. - - * ace/Task_T.i (msg_queue): Added a check to delete the old - message_queue if we had created it. - - * ace/ReactorEx.cpp (remove_handler): Removed the call to set - reactorEx of the event handler to zero becauses the event - handler may no longer be there after the handle_close() - completes. - -Thu Dec 05 21:18:49 1996 David L. Levine - - * ace/OS.cpp (thr_create): Oops, needed to add another check if - thr_id == 0 before assigning *thr_handle = *thr_id, for systems - such as Solaris 2.4 that don't have PTHREADS. - -Wed Dec 4 09:09:56 1996 David L. Levine - - * ace/Log_Msg.cpp (log): added printout to stderr before call - to exit(). Silent calls to exit() are bad :-} - - * performance-tests/Synch-Benchmarks/Options.cpp (print_results): - only use rusage if ACE_HAS_PRUSAGE_T is #defined - - * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server}.cpp: - use blocking connect on VxWorks - - * ace/config-vxworks*.h: added ACE_LACKS_MPROTECT and - ACE_HAS_STRERROR - - * include/makeinclude/platform_vxworks*: removed INCLDIRS and - added indlib.o to GreenHills LIBS - - * Makefile (cleanrelease and release): changed "rm -r" of - ACE.tar.gz to "rm -f", that's probably what was meant - -Wed Dec 4 00:27:07 1996 Irfan Pyarali - - * ace/config-win32-msvc*.0.h: Added NOMINMAX. - - * ace/Registry: Removed NOMINMAX and - VC_PLUS_PLUS_NESTED_CLASS_PROBLEM flags from the header file. - The VC_PLUS_PLUS_NESTED_CLASS_PROBLEM flag is no longer needed - and NOMINMAX is defined at the project level. Thanks to - Matthias Kerkhoff for suggesting this. - -Mon Dec 2 14:13:44 1996 Douglas C. Schmidt - - * ace: Changed all occurrences of ACE_Event_Handler - reactorex() to reactorEx() to be consistent. Thanks to - Matthias for suggesting this. - - * ace/Message_Queue.cpp (close): We didn't allocate the memory for - the notification_strategy_, so we darn well can't delete it! - Thanks to Matthias for finding this. - - * ace/Log_Msg.cpp (ACE_TSS_cleanup): Made the ACE_TSS_cleanup - function extern "C" for MVS C++ and compilers like it... Thanks - to Chuck Gehr for reporting this. - - * tests/Naming_Test.cpp (main): Added delete ns_context to close - things down and free up the semaphores. Thanks to David Levine - for suggesting this. - - * examples/Reactor/Misc/test_demuxing.cpp (handle_input): Fixed a - "typo" where we were accessing mb->msg_priority() *after* - deleting it! Thanks to Matthias for finding this. - -Mon Dec 2 09:57:15 1996 David L. Levine - - * tests/run_tests.*: updated lists of tests to be run - - * tests/*.cpp: removed trailing .cpp from argument to - ACE_START_TEST because it would appear in the log file name - -Mon Dec 2 00:08:51 1996 Douglas C. Schmidt - - * ace/Log_Record.cpp (dump): There was an error on line 19 of - Log_Record.cpp: - - ACE_DEBUG ((LM_DEBUG, "\npid_ = %s\n", this->pid_)); - - should be changed to: - - ACE_DEBUG ((LM_DEBUG, "\npid_ = %d\n", this->pid_)); - - Thanks to Sandro Doro for reporting - this. - - * examples/Reactor/Misc/test_handle_set.cpp: Updated the test to - remove a warning caused by sloppy nesting of loop counters. - -Mon Dec 2 00:23:23 1996 Irfan Pyarali - - * ace/Strategies.{h,cpp}: Update the base-class and added - documentation. - - * tests/test_config.h: Added ACE_INIT_LOG, ACE_APPEND_LOG and - ACE_APPEND_LOG to facilitate the appending of log messages to a - file. Also changed Pipe_Test to use this new mechanism. - - * test/Naming_Test: Changed test to use "lite" implementation to - speed things up. - - * netsvcs/lib: Fixed multiple type mismatch warnings. - - * ace/ReactorEx: Fixed syntax errors in recently modified - ReactorEx.* files - - * ace/ace.{mdp.mak}: Added Strategies.cpp to VC++ makefile. - -Sun Dec 1 19:19:02 1996 Douglas C. Schmidt - - * ace/Service_Config: Moved the #inclusion of ace/Proactor.h and - ace/ReactorEx.h from the *.h file to the *.cpp file to avoid - problems with circular dependencies. - - * ace/Reactor: Added a new parameter to the Reactor's - initialization methods so that we can install a subclass of - ACE_Timer_Queue. This is in anticipation of Tim's new - "real-time" implementation of a timer queue. - - * ace/Reactor: Changed the internal Reactor name - ACE_Notification_Handler to ACE_Reactor_Notify to be consistent - with the ACE_ReactorEx_Notify class. - - * examples/Reactor/Misc/test_demuxing.cpp: Revised this test so - that it now illustrates the new notification mechanism of the - ACE_Message_Queue class. - - * examples/Reactor/Misc: Changed the name of the signal_tester.cpp - file to test_demuxing.cpp, which is really what this does. - - * ace/{Strategies,Message_Queue}: Created a suite of - "Notification Strategies" that are used with the new - ACE_Message_Queue notification scheme. This works as - follows: - - 1. There's a new virtual hook method on ACE_Message_Queue - called notify(). Whenever a new Message_Block is - enqueued the notify() hook is called. By default, this - does nothing. - - 2. If you want to do something with the notify() hook, you - have two choices: - - a. You can subclass from ACE_Message_Queue and - override this method. This is an example of the - "Template Method" pattern. - - b. You can configure an ACE_Notification_Strategy * - into an ACE_Message_Queue. An - ACE_Notification_Strategy is the vehicle for - extending the behavior of ACE_Message_Queue wrt - notification *without subclassing*. Thus, it's an - example of the Bridge/Strategy patterns. - - 3. ACE_Notification_Strategy is defined in - ace/Strategies.{h,cpp}. There are two pre-defined - subclasses: - - a. ACE_Reactor_Notification_Strategy -- integrates the - ACE_Message_Queue notification into the - ACE_Reactor::notify() method. - - b. ACE_ReactorEx_Notification_Strategy -- integrates - the ACE_Message_Queue notification into the - ACE_ReactorEx::notify() method. - - Both of these can be used almost identically in order to - seamlessly integrate multiple threads of control, inserting - ACE_Message_Blocks in one or more ACE_Message_Queues, with - the various ACE event demultiplexors (i.e., ACE_Reactor - and ACE_ReactorEx). - - * ace: Created a new pair of files called Strategies_T.cpp and - Strategies_T.h and move the template ACE_*Strategies classes - into those files. This was necessary since there are now new - non-template notification strategies in Strategies.{h,cpp}. - - * ace/Message_Queue: Created a new "notification hook" mechanism - that makes it possible for event demuxers (like ACE_Reactor and - ACE_ReactorEx) to be informed automatically when a Message_Block - is inserted into the Message_Queue. This is useful for - sitations where you'd like to integrate multiple threads (each - of which is pumping data into an ACE_Message_Queue) with an - ACE_Reactor or an ACE_ReactorEx. Thanks to Matthias Kerkhoff - and Luca for suggesting this. - - * ace/Synch.h: Modified the implementation of - ACE_Null_Condition_Mutex::wait() so that it always returns -1 - and sets errno to ETIME. This reflects the fact that if you'll - never be awakened if you "sleep" on a Null_Condition... - - * ace/ReactorEx: Generalized the ACE_ReactorEx so that its - notify() method now behaves like the ACE_Reactor, i.e., it can - queue up ACE_Event_Handlers that are dispatched in the ReactorEx - thread of control. - - * tests: Renamed the Shared_Memory_MM_Test.cpp to - MM_Shared_Memory_Test.cpp and remove the - Shared_Memory_SV_Test.cpp since it was redundant to the - SV_Shared_Memory_Test.cpp. - - * tests/SV_Shared_Memory_Test.cpp (main): Revised the SVSV IPC - shared memory test to be more robust. - - * ace/SV_Semaphore_Simple.cpp (open): If the char *name == 0 then - use ACE_DEFAULT_SEM_KEY instead. - - * ace/Memory_Pool: Generalized the ACE_Shared_Memory_Pool so that - there can be more than 1 shared memory pool active at a time - (similar to what we did for ACE_MMAP_Memory_Pool). - - * ace/Memory_Pool.h: There was an unnecessary - ACE_SV_Semaphore_Complex in ACE_Shared_Memory_Pool that was left - over from earlier days. I've removed this. - - * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): Revised - the constructor so that if we get a NULL pool_name we'll - initialize the - - * examples/Makefile: Added the System_V_IPC and Shared_Memory - directories. - - * ace/Message_Queue.h: Added a virtual destructor to - ACE_Message_Queue so that it can be destroyed appropriately, - even if subclassed. - - * ace/Message_Queue.h: Renamed enqueue() to enqueue_prio() to be - consistent with the other names (e.g., enqueue_head() and - enqueue_tail(). Updated the test programs to reflect this. - -Sun Dec 1 12:06:46 1996 David L. Levine - - * ace/config-vxworks*.h: Removed #define ACE_HAS_STRBUF_T: - copy and paste error - -Sun Dec 1 00:15:45 1996 Irfan Pyarali - - * ace/OS.h: ACE_NEW_RETURN and ACE_NEW were reverted back to the - old implementation. This is temporary till the infinite loop - problem with ACE_ERROR, ACE_DEBUG and ACE_TRACE being called - from ACE_Log_Msg::instance() is fixed. - - * ace/Synch.h: Repositioned ACE_Semaphore such that there are no - problems in compiling ACE_Process_Semaphore under Win32. - - * ace/config-win32-msvc4.0.h: Changed ACE_HAS_STL to - ACE_HAS_STANDARD_CPP_LIBRARY which is more descriptive (and what - is expected by stdcpp.h). - - * ace/Registry.h: Added the setting of NOMINMAX and - VC_PLUS_PLUS_NESTED_CLASS_PROBLEM flags so that STL behaves - properly. - - * ace/Log_Msg.cpp (open): Fixed a small bug such that msg_ostream - is only set this to cerr if it hasn't already been set. - - * STL: Updated the STL directory will latest code from - http://www.rahul.net/terris/ and also added the original - readme2.stl file. Created ACE_Changes which has the list of - changes made to the STL distribution. - -Sat Nov 30 12:02:00 1996 Douglas C. Schmidt - - * ace/OS.h: Added a new pragma that disables warning #4097 in - MSVC++ (typedef-name used as synonym for class-name). This - keeps Win32 clients from getting warning on Win32. Thanks to - Matthias Kerkhoff for this. - - * ace/Log_Msg.cpp: Created a new macro called ACE_NEW_RETURN_I, - which is used withing ACE_Log_Msg::instance(). We can't afford - to call ACE_LOG_MSG->instance() from within - ACE_Log_Msg::instance() or else we will recurse infinitely! - Thanks to Irfan for finding this. - - * ace/OS.i (mprotect): Added a #if !defined (ACE_LACKS_MPROTECT) - conditional compilation directive to support the EPLX real time - OS from CDC (based on LYNX). Thanks to Alexandre Karev - for reporting this. - -Sat Nov 20 12:23:45 1996 Prashant Jain - - * tests/Naming_Test.cpp (main): Added code that creates a unique - backing store name and removes the backing store every time - the test is run. - -Fri Nov 29 12:54:12 1996 Douglas C. Schmidt - - * ace/Stream.cpp (open): Changed tail->close() and head->close() - to delete tail and delete head now that we've got our new - changes. - - * ace/Module: Moved the destructor from the private part of the - class to the public part and changed things so that close() no - longer "deletes this." This is too confusing and error-prone. - In addition, changed the Module destructor so that it will try - to call close() only if close hasn't already been called. - - * ace/Synch.h: Moved ACE_Process_Semaphore out of the - ACE_HAS_THREADS section since this is available on platforms - that don't have threads. - - * Now that Log_Msg.h is being #included in OS.h, I removed all - other #includes of Log_Msg.h throughout the rest of ACE. - - * ace/OS.h: Rearranged the definition of the ACE_NEW and - ACE_NEW_RETURN macros so that they come at the end of OS.h. - This enables us to #include "ace/Log_Msg.h" here, as well, so - that we can make use of the ACE_LOG_MSG macro in the definition - of ACE_NEW and ACE_NEW_RETURN. - - * ace/Singleton.cpp (instance): Updated the ACE_Singleton - implementation to use the new ACE_NEW and ACE_NEW_RETURN macros. - - * ace/OS.h: Revised the ACE_NEW and ACE_NEW_RETURN macros so that - they check to see if the constructor of the newly allocated - object failed (i.e., by checking the ACE_LOG_MSG->op_status() - value). - - * tests/Reactors_Test.cpp: Added an ACE_ASSERT() after each - Reactor we create in order to make sure it worked. - - * tests/Reactors_Test.cpp: Added an ACE_Service_Config daemon - instance within main() in order to ensure that the Reactor is - cleaned up appropriately. This avoids problems with NT 4.0, - where there seems to be a bug if you don't shut down sockets - explicitly when the process exits. - - * tests/Pipe_Test.cpp (main): Improved the pipe test so that it - automatically iterates multiple times in order to test whether - there are problems with rapidly opening and closing NT socket - handles... - -Thu Nov 28 03:07:48 1996 Irfan Pyarali - - * netsvcs: netsvcs.mak and netsvcs.mdp were changed such that - it becomes easier to find ace.lib while compiling netsvcs.lib. - - * tests/Pipe_Test.cpp: Add more instances of ACE_Pipes to the test - and also added an option to close down the pipe. - -Thu Nov 28 00:53:16 1996 Douglas C. Schmidt - - * ace/config-sunos4-g++.h: This config file contained two - exclusive definitions - - #define ACE_HAS_SVR4_SIGNAL_T - - and - - #define ACE_HAS_SUNOS4_SIGNAL_T - - The first one was moved out. Thanks to Alexandre Karev - for reporting this. - - * ace/OS.h: - - #elif defined (ACE_HAS_SUNOS4_SIGNAL_T) - - was changed from - - typedef void (*ACE_SignalHandler)(void); - typedef void (*ACE_SignalHandlerV)(void); - - to - - typedef void (*ACE_SignalHandler)(...); - typedef void (*ACE_SignalHandlerV)(...); - - to make gcc happy. The first one was moved out. Thanks to - Alexandre Karev for reporting this. - - * ace/Pipe.cpp (close): Arrgh! Fixed a total braino where we - weren't using ACE_OS::closesocket() to close down the Win32 - ACE_Pipe implementation, which uses sockets... Thanks to Irfan - and Tilo for helping me figure this one out! - - * tests/CPP_Test.cpp: Completely reworked this test so that it - should run correctly on Win32 and UNIX. - -Wed Nov 27 16:50:17 1996 Douglas C. Schmidt - - * Put out a new beta of ACE 4.0.33. - - * tests/Mutex_Test.cpp (test): Fixed the test() function so that - it doesn't use the ACE_Thread_Control unless we explicitly want - to use threads. - - * tests/test_config.h: Added addition information about the - process id and thread id of the main thread. - - * ace/Synch.h: Speed things up a bit by conditionally #including - "ace/SV_Semaphore_Complex.h" only if we are compiling on a - non-Win32 platform or a POSIX platform. Thanks to Matthias - Kerkhoff for this. - - * ace/SV_Semaphore_Complex.h: Incorporated the new ACE_USING - macro, which is useful if you have - - class b { - a() - }; - - class d : private b { - b::a() // still works, but depriciated - using b::a() // should be used instead - }; - - Thanks to Matthias Kerkhoff for this. - - * ace/OS.h: Added a new macro called ACE_USING, which is used to - distinguish between platforms that support namespace "using" - semantics and those that don't. Thanks to Matthias Kerkhoff - for this. - - * examples/Misc/test_XtReactor[12].cpp: Had to add the infamous - #define String XtString before including Xm/PushB.h. Also, there - were some references to XtReactor when the class is now - ACE_XtReactor. Thanks to Gonzalo Diethelm - for reporting this. - - * ace/XtReactor.cpp (ACE_XtReactor): timeout_ was not being - initialized on the constructor, and that caused a core dump. - Thanks to Gonzalo Diethelm for reporting - this. - - * ace/SOCK.h: Put the open() call in the protected part of the - class since we generally don't want clients to call this - directly. Thanks to Eric Newton for pointing - this out. - - * ace/ACE.cpp: Fixed a bug where sin.sin_family was being set - rather than sin.sin_len. Thanks to Chuck Gehr - for reporting this. - - * ace/ACE.cpp: Enhanced the ACE::{send_n,recv_n} methods so that - they check to see if errno == EWOULDBLOCK when ACE_OS::send() or - ACE_OS::recv() returns -1. If that's the case, then they keep - iterating. - - Thanks to Mehdi TABATABAI for - this suggestion. - - * ace/Log_Msg.h: Fixed ACE_RETURN so that it only has 1 parameter - if ACE_NLOGGING is enabled. Thanks to Antonio Tortorici - for reporting this. - - * ace/config-vxworks*.h: Added ACE_NTRACE macros so that - tracing doesn't magically turn on! - - * ace/Task.cpp (activate): the &ACE_Task_Base::svc_run() argument - needs a cast to ACE_THR_FUNC, because that's what - ACE_Thread_Manager::spawn_n() requires. On VxWorks, - ACE_THR_FUNC functions return an int, while svc_run() returns - void *. Thanks to David Levine for this. - - * ace/Thread_Manager.cpp (kill_thr): I was mistakenly passing in - the thr_handle_ where I should have been passing in the thr_id_. - In addition, made sure we don't set errno to the wrong value... - Thanks to Ross Dargahi for reporting this. - - * ace/{Synch_T,Synch}.h: If we don't actually own the lock - anymore, don't try to do a release. Thanks to Jonathan Biggar - for reporting this bug. - - * ace/ACE.cpp (handle_timed_complete): Added an ex_handles mask so - that non-blocking connects will work correctly on Win32. Thanks - to Antonio Tortorici for - reporting this fix. - - * ace/Message_Queue.h: Updated the documentation to stress the - fact that the timeouts are specified in *absolute* time, rather - than in relative time. Thanks to Bob Dunmire - for reporting this. - - * tests/test_config.h: Modified the ACE_END_TEST macro so that the - log file is closed. This works around a problem on VxWorks - where destructors of static objects don't get closed - automatically. Thanks to David Levine for this fix. - - * ace/OS.i (rand_r): Added a fix for Digital UNIX so that rand_r - works correctly in MT settings. Thanks to Thilo Kielmann - for this. - -Wed Nov 27 16:12:00 1996 Tim H. Harrison - - * ace/Stream.cpp: Fixed a bug in ACE_Stream::open to - allow applications to specify a tail or a head without - having to specify both. This was needed by the ACE_Pipeline - application since it only needs a Pipeline-specific tail - (not a head). - -Tue Nov 26 18:00:25 1996 Douglas C. Schmidt - - * ace: Functions should not be declared with ACE_INLINE in a - .cpp file. Fixed this problem in the following files: - - SPIPE_Acceptor.cpp:116:ACE_INLINE - TLI_Acceptor.cpp:145:ACE_INLINE int - TLI_Acceptor.cpp:192:ACE_INLINE - Task.cpp:121:ACE_INLINE int - Task.cpp:130:ACE_INLINE void - - * ace/{OS,Thread}: Added Chuck Gehr's suggested change for the - pthread_keycreate() routine, which must take extern "C" - functions on MVC C++. This fix isn't perfect, but it should - allow the ACE library to build... - - * man: Updated all of the manual pages and HTML files. - - * ace/Signal.cpp: Updated the code so that we don't try to - register a static C++ dispatch method if ACE_HAS_SIG_C_FUNC is - defined. This fixes problems with the MVS C++ compiler... - Thanks to Chuck Gehr for this suggestion. - - * ace/OS.h: Added extern "C" { } wrappers around the signal - handling mechanisms if ACE_HAS_SIG_C_FUNC is defined. This - fixes problems with the MVS C++ compiler... Thanks to Chuck - Gehr for this suggestion. - - * ace/Reactor.cpp (open): Moved the initialization of the - ACE_Timer_Queue field to *before* the handler_rep_.open() call. - We do this first in case the handler_rep_ call fails (which it - sometimes does on Win32 when we restart applications quickly due - to the use of sockets as a notification mechanism). At least - this way the timer_queue_ isn't 0, so we can still use the - Reactor as a timer... Thanks to Tilo Christ for motivating - me to fix this. - - * ace/OS.i: Apparently, DIGITAL_UNIX gethostbyname() returns - thread-specific storage, so we can use this for - gethostbyname_r(). - - * ace/OS.i: Need to add: - - #else - - after line 3268: return (size_t) ACE_OS::sysconf (_SC_THREAD_STACK_MIN); - - otherwise we get a compile error: - - line 3296.1: CBC1331(W) Return value of type "unsigned int" is expected - - This is because no code ends up getting generated. Thanks to Chuck - Gehr for this fix. - - * ace/OS.i (ACE_PTHREAD_CLEANUP_PUSH): Removed an extraneous set - of parens. Thanks to Chuck Gehr for this fix. - - * ace/OS.cpp (thr_create): Oops, needed to add a check if thr_id - == 0 before assigning *thr_handle = *thr_id! Thanks to Prashant - for finding this. - -Tue Nov 26 21:06:13 1996 Irfan Pyarali - - * ace/Pipe.cpp (open): This change relates to Win32 code only. - Removed the reuse_addr flag to acceptor.open() so that we don't - try to reuse the acceptor socket immediately. Apparently, this - causes no end of trouble on Win32 as the following connect() - call fails (randomly). Now it should be possible to create - multiple ACE_Pipes in one process and hence create multiple - Reactors also without any problems. - - * tests/Pipe_Test.cpp: Added a ACE_Pipe test to check for the - creation of multiple pipes in a process. Also changed the - relevant makefiles and scripts. - -Tue Nov 26 11:27:33 1996 David L. Levine - - * tests/{CPP_Test,Mutex_Test,Shared_Memory_MM_Test,SPIPE_Test}.cpp: - added VXWORKS support for these tests by spawning a new thread - instead of forking a new process (the same as on Win32) - - * netsvcs/clients/Naming/Client/Client_Test.cpp (open): Added a - return 0 for success. - - * ace/Singleton.h: Modified the use of the ACE_NEW_RETURN macro so - we not only check if new has failed, but also check that the - constructor has succeeded. If it hasn't, we bail out... Thanks - to Luca for this suggestion. - - * ace/Log_Msg: Added a 4th parameter to log_hexdump() in order to - print out a comment. Thanks to Luca for this. - - * ace/ACE.cpp (ldfind): Changed the implementation to look for - ACE_DLL_SUFFIX rather than '.' since '.' might exist in the - pathname already... - - * Removed all the NT-specific svc.conf files and updated the other - files to use the new "auto-dll-suffix" feature in ACE. - - * ace/Synch_T.cpp (ts_get): Fixed a nasty bug introduced by recent - changes to ACE_TSS<>::ts_get(). The ACE_Mutex should be - ACE_Thread_Mutex. This should fix lots of nasty run-time bugs - seen with recent versions of the ACE 0.33 beta... - -Tue Nov 26 14:40:00 1996 David L. Levine - - * Log_Msg.cpp: fake out TSS on VxWorks in Log_Msg::instance() - by using a spare field in the task control block - - * tests/{CPP_Test,Mutex_Test,Shared_Memory_MM_Test,SPIPE_Test}.cpp: - added VXWORKS support for these tests by spawning a new - thread instead of forking a new process (the same as on - Win32) - - * OS.h: VxWorks can't handle the ACE_THR_FUNC typedef if - it's in the extern "C" block, so I moved it back out. - Also, the horrible GreenHills hack is no longer required. - - * OS.i: there's an ACE_OS_CALL_RETURN before a ::strncpy() call, - I changed it to ACE_OS_CALL. - - * OS.i: Added call to VxWorks ::mkdir() - - * Pipe.cpp: VxWorks doesn't know about TCP_NODELAY. - - * INET_Addr.cpp: get_host_name() is missing a return - statement, on VxWorks only - - * Thread_Manager.i: in ACE_Thread_Control::thr_mgr(), there - were two consecutive return statements, removed the first - one. - - * Time_Request_Reply.{h,cpp}: GreenHills warns that "type - qualifiers are meaningless" for declaration of const - ACE_UINT32 time(), so I removed them. - - * UPIPE_Stream.cpp, line 95: warning: integer conversion - resulted in a change of sign, so we cast n to int. - - * Map_Manager.cpp: in ACE_Map_Manager::resize_i(), variable - foo is unnecessary, so we omitted it. - - * tests/CPP_Test.cpp (and a few others) have references to - argv[0]: - -Tue Nov 26 03:15:22 1996 Irfan Pyarali - - * tests: Added Map_Manager_Test and Message_Queue_Test to - makefiles (NT and UNIX) and one-button scripts. - - * tests: (Barrier_Test.cpp Buffer_Stream_Test.cpp Mutex_Test.cpp - Priority_Buffer_Test.cpp Recursive_Mutex_Test.cpp - Shared_Memory_MM_Test.cpp) Fixed typos mainly and other small - changes. Also fixed logging file problems so to make logging - of tests more accurate. - -Mon Nov 25 00:23:40 1996 Douglas C. Schmidt - - * performance-tests/Synch-Benchmarks/Options.cpp (Options): - Reordered the initialization of data members to keep G++ from - complaining. - - * performance-tests/Synch-Benchmarks/pipe_thr_test.cpp: Changed - some types so that we don't get warnings. - - * tests/Mutex_Test.cpp (test): Added a "return 0". Thanks to - David Levine for reporting this. - - * ace/TTY_IO.cpp: Rearranged some definitions so that we don't get - "unused variable" warnings from g++. - - * ace/SOCK_Dgram.cpp (recv): Rearranged some definitions so that - we don't get "unused variable" warnings from g++. - - * tests/Priority_Buffer_Test.cpp (consumer): Fixed a typo -- I was - missing a *... Thanks to David Levine for reporting this. - - * ace/OS.h (ACE_SVC_FACTORY_DECLARE): Changed the macro so that it - defines a function with `extern "C"' linkage in order to be - consistent. - - * ace/OS.cpp (thr_create): Moved the conditional compilation test - for ACE_HAS_THR_C_FUNC outside of ACE_HAS_SETKIND_NP since MVS - doesn't have this! Thanks to Chuck Gehr for this info. - - * ace/OS.i (thr_sigsetmask): Replaced the tests for - ACE_HAS_DCETHREADS and ACE_HAS_SETKIND_NP with - ACE_LACKS_PTHREAD_THR_SIGSETMASK, which is more appropriate. - - * ace/OS.cpp (ace_mutex_lock_cleanup_adapter): Changed the - signature so that it returns "void" rather than "void *". - Thanks to Chuck Gehr for this. - - * ace/OS.h: Removed #include to avoid problems on - MVS. Thanks to Chuck Gehr for this. - - * ace/config-sunos5.5-sunc++-4.1.h: It looks like SunC++ 4.1 still - doesn't fix their template typedefs bugs. So I've commented - this out in the config file. Thanks to Fred LaBar - for reporting this. - - * ace/ACE.cpp (ldfind): Added support for a new feature that will - append the default suffix (e.g., ".dll" or ".so") for a shared - library on the current platform to the name of the file if it - cannot find an suffix. It will also check that a provided - suffix will match the default suffix for that platform and if it - doesn't it will produce a log entry with a warning. This change - will allow unified svc.conf-files for both UNIX and WinNT. - Thanks to Tilo Christ for this. - - * ace/OS.cpp (thr_create): Came up with a remarkably clever scheme - that should make it possible to utilize the ACE library *without - change* on MVS, where the frigging C++ compiler requires all - functions passed to pthread_create() have an extern "C" linkage. - The trick was to generalize the thread adapter mechanism used - for Win32. - - * ace/OS: Added a new macro called ACE_PTHREAD_CLEANUP_PUSH that - selects the right mechanism (e.g., ace_spawn_adapter or not) for - passing functions to pthread_cleanup_push(). - - * ace/config-mvs.h: Added a new macro called ACE_HAS_THR_C_FUNC - which expresses the fact that the MVS C++ compiler *must* have - an extern "C" function passed to pthread_create(). - - * ace/OS.h: Modified all uses of ACE_OS::mutex_lock_cleanup() to - use the extern "C" ace_spawn_adapter() on platforms MVS like MVS - that can't deal with non-C functions to pthread_create. Thanks - to Chuck Gehr for reporting this. - - * ace/OS.cpp (thr_create): Added Chuck Gehr's patches for MVS. - -Sun Nov 24 12:30:45 1996 Douglas C. Schmidt - - * ace: Added Chuck Gehr's config-mvs.h - file! - - * ace: Began adding support for WinSock 2.0. Thanks to Luca for - this. - - * ace/UPIPE_{Acceptor,Connector,Stream}: Updated the UPIPE - components so that they keep a reference count that keeps track - of the number of "owners" (which should always be 2 -- one for - the connector-side and one for the acceptor-side). By keeping - this count, we can ensure that we don't close down the - underlying ACE_Stream until both sides have called close(). - This will remove a nasty bug that was lurking in some of the - tests. - - * ace/Message_Block.h: Added a new copy() method that assumes the - buf passed in is a NUL-terminated string. - - * tests/UPIPE_SAP_Test.cpp: Modified this test so that threads - exit in a well-defined order. This should prevent problems on - Win32. - - * ace/OS.i: Changed SIGNAL_SAFE_OS_CALLS to - ACE_HAS_SIGNAL_SAFE_OS_CALLS to be consistent... - - * ace/config-vxworks*.h: Removed the SIGNAL_SAFE_OS_CALLS #define - from the VxWorks config files. There's no need to use this by - default. - - * ace/Event_Handler: Moved all the default implementations of the - virtual methods in ACE_Event_Handler from the *.i file to the - *.cpp and made them no longer be inlines. This will fix some - problems with some compilers (e.g., MSVC++ 4.1) and is also more - reasonable since there's really no purpose for inlining these - virtual functions since they are rarely called. Thanks to James - Michael Dwyer for reporting this problem. - -Sat Nov 23 12:39:03 1996 Douglas C. Schmidt - - * ace/Svc_Conf.y: Changed the parser so that it accepts DLL - pathnames that lack *.dll or *.so suffixes. This is necessary - so that we can automatically append the correct suffix depending - on the platform. Thanks to Tilo Christ - for suggesting this. - - * ace/Makefile: Updated the Makefile so that it will automatically - insert the appropriate so that conditions for include of - ace/OS.h can be checked correctly. - -Fri Nov 22 18:12:49 1996 Douglas C. Schmidt - - * ace/OS.i (thr_sigsetmask): DCE threads (at least as implemented - by Digital) have no means for setting the signal mask on a - per-thread basis. Therefore, modified the code so that it - correctly returns ACE_NOTSUP_RETURN(-1) for DCEthreads. Thanks - to Thilo Kielmann for - chasing this down. - - * performance-tests/Synch-Benchmarks/synch_driver.cpp (run_test): - Fixed this implementation so that it will shut down correctly - when a signal occurs or a timeout occurs (whichever comes - first). - -Fri Nov 22 08:02:39 1996 Irfan Pyarali - - * ace.{mdp,mak}: Changed ace.mak so that it links with the - non-debug version of Microsoft's multithreaded dll when compiled - with the release option - -Thu Nov 21 10:37:40 1996 Douglas C. Schmidt - - * ace/Service_Config: Changed the implementation of the - Service_Config class so that it no longer inherits from - ACE_Event_Handler. This was causing problems because the new - reactor() method in the ACE_Event_Handler was conflicting with - the static reactor() method on ACE_Service_Config. - - * ace/OS.cpp (detach): Since we no longer use an - ACE_Recursive_Thread_Mutex, we can remove the line - - else if (ACE_TSS_Cleanup::lock_.get_nesting_level () > 1) - // ... - - Thanks to Matthias Kerkhoff for - reporting this. - - * ace/Thread_Manager.cpp (spawn_n): Replaced int i with size_t i - to avoid warnings between signed and unsigned values. - - * ace: There is an easy way to speed up the "Update dependencies" - in MSVC. Just keep the the compiler from complaining about - missing header by inserting a comment like below in the - #include-directives which are not used in Win32. - - Therefore, instead of - - #include - - we use - - #include /**/ - - Please let me know if this causes problems for any - pre-processors. Thanks to Matthias Kerkhoff - for this suggestion! - - * ace/OS.cpp: Added support for AfxBeginThread in - ACE_OS::thr_create() and ACE_OS::exit(). Now ACE should work - with MFC when you give the THR_USE_AFX flag to - ACE_OS::thr_create()! Thanks to Matthias Kerkhoff - for this! - - * ace/Malloc_T.cpp (avail_chunks): Changed the return value to - ssize_t so we can return -1 if we can't get the lock. Thanks to - Tilo for reporting this. - - * ace/config-sunos4-sun3.x.h: Added new #ifdefs for Sun C++ 3.0.1 - on SunOS 4.1.3. Thanks to Eric Parker - for these fixes. - - * ace/Stack.h: Added a new method called peek() to the - ACE_Unbounded_Queue classes so that the first element can be - retrieved without removing it. Thanks to Luca for this - suggestion. - - * ace/SString.cpp (ACE_CString): Changed ACE_CString so that it - uses memcpy() rather than str(n)cpy() so that we can store any - structure into it. Thanks to Luca for this suggestion. - - * ace/Acceptor: Since we moved the reactor() accessors to - ACE_Event_Handler we can omit these from the Acceptor and - Svc_Handler. - - * ace: Updated the ACE_Reactor and ACE_ReactorEx so that they - automatically sets the pointers in ACE_Event_Handlers. Thanks - to Luca for this suggestion. - - * ace/Event_Handler: Added pointers to all the ACE demultiplexors - (e.g., ACE_Reactor, ACE_ReactorEx, and ACE_Proactor) to - ACE_Event_Handler, along with set/get accessor methods. This - supports a very common use-case where an event handler keeps - track of its demultiplexor. Thanks to Luca for this suggestion. - - * ace/OS.cpp: Since we do not use the recursion count from the - Recursive Mutex any more in ACE_TSS_Cleanup::exit() we can - replace the Recursive Mutex by a regular ACE_Thread_Mutex that - is recursive on NT natively and more efficient. Thanks to - Detlef for suggesting this. - - * ace/OS.cpp: Since we do not use the recursion count from the - Recursive Mutex any more in ACE_TSS_Cleanup::exit() we can - replace the Recursive Mutex by a regular ACE_Thread_Mutex that - is recursive on NT natively and more efficient. Thanks to - Detlef for suggesting this. - - * ace: Backed out all of Detlef's changes to ACE_OS and - ACE_TSS::ts_get(). It turns out that this is unnecessary since - he reimplemented ACE_TSS_Cleanup so that it no longer needs to - hold the lock when callbacks are made. Once again, Detlef - proves that he's a macho man, not a boy ;-) - -Thu Nov 21 08:12:51 1996 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: - put back the LD definition - - * include/makeinclude/platform_osf1_4.0_g++.GNU: - added LD definition to work with latest wrapper_macros.GNU - -Wed Nov 20 10:32:52 1996 Irfan Pyarali - - * tests: Mutex_Test.cpp Priority_Buffer_Test.cpp - Reader_Writer_Test.cpp Thread_Pool_Test.cpp were changed - slightly to remove some compile time warnings. - -Wed Nov 20 21:35:28 1996 David L. Levine - - * ace/Svc_Conf_l.cpp: added #include of ace/config.h so that - conditions for include of ace/OS.h can be checked. - -Wed Nov 20 02:38:40 1996 Douglas C. Schmidt - - * ace/Service_Config.cpp: Moved the definition of logger_key_ to - OS.h and changed it to a macro (ACE_LOGGER_KEY) so that it will - be portable to Win32 and UNIX. Thanks to Tilo for reporting - this. - - * ace/OS: Changed the return value of ACE_OS::getgid() from uid_t - to gid_t to be POSIX compliant. - - * ace/OS.cpp (thr_create): Fixed a typo where we were assigning - stacksize rather than size. Thanks Thilo. - - * ace/OS.cpp (thr_create): Added a new piece of code for - ACE_NEEDS_HUGE_THREAD_STACKSIZE, which is necessary to create a - larger per-thread stack size in order to run ACE_Log_Msg::log. - Thanks to Thilo for this. - - * tests/TSS_Test.cpp: Changed the name of the static variable - "lock" to "cout_lock" to avoid a potential namespace clash on - Digital UNIX. Thanks to Thilo Kielmann for reporting this. - - * ace/SOCK_Dgram.cpp (recv): Added a cast (char *) - io_vec->iov_base so that this would work correctly on platforms - where iov_base is a void * (e.g., AIX and HP/UX). Thanks to - Alan Stewart for the change. - - * ace/OS.h: Added a few new changes for Digital UNIX 4.0a. These - should fix problems with ctime_r() and asctime_r(). Thanks to - Dave Trumble for the fixes. - - * tests/UPIPE_SAP_Test.cpp: Disabled this test if we don't have - threads and (STREAM Pipes or Win32). Thanks to Thilo Kielmann's - for this info. - -Tue Nov 19 23:09:08 1996 Tim H. Harrison - - * ace/Log_Record.cpp (print): Added a call to ACE_OS::fflush - before returning. This change was suggested by Luca in order to - help prevent messages from getting lost when applications exit. - We're unsure of the affects this will have on performance, so we - may change this back in the future. - -Tue Nov 19 00:06:57 1996 Douglas C. Schmidt - - * Released a beta version of ACE 4.0.33 for testing. - - * ace/TTY_IO.h: Added the ACE_Export macro before the ACE_TTY_IO - class to make things work correctly for Win32 DLLs. Thanks - to William L. Gerecke for fixing this. - - * ace/OS.h: Improved the support for RLIMIT_NOFILE. Thanks to - Alan Stewart for reporting this. - - * ace/OS.h: Removed the following code from OS.h because - it is causing problems on some platforms: - - #if (!defined (timespec) && !defined (m88k)) - #define timestruc_t struct timespec - #endif /* timespec */ - - Thanks to Fred LeBar for reporting this. - - * ace/OS.cpp (thr_create): Needed to create an - ACE_OS::NULL_hthread so that we can assign the "NULL thread - handle" on POSIX platforms. Thanks to Alan Stewart - for reporting this. - - * ace/OS.i: The HP/UX C++ compiler is unable to grok inline - functions with multiple returns. So I recoded the - ACE_OS::event* methods to avoid this. Thanks to Alan Stewart - for reporting this. - - * ace/OS.h: Moved the "undef" of t_errno until after the inclusion - of mman.h and dlfcn.h to prevent problems with DU4.0a. Thanks - to David Trumble for reporting - this. - - * ace/Pipe.cpp (open): Fixed a typo where - this->ACE_SOCK::set_option() was being used instead of - writer.set_option(). Thanks to Tilo Christ - for reporting this. - - * ace/Message_Queue.h: Fixed a bug where - - ACE_Message_Queue &queue_; - - should be: - - ACE_Message_Queue &queue_; - - Thanks to Rick Orr for - reporting this. - - * apps/Makefile: Updated the Makefile so that it no longer tries - to look for Synch-Benchmarks. Thanks to Amos Shapira - for reporting this. - - * ace/Activation_Queue.cpp (dequeue): Added a sanity check to make - sure that we actually deleted the first element in the queue. - Thanks to Andres Kruse for reporting - this. - - * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: Added a - minor change to remove the libACE.a archive prior to creating a - new one. This works around bugs with the SunOS 4.x C++ - compiler. Thanks to Andres Kruse for - reporting this. - - * ace/Malloc_T.cpp (avail_chunks): Added Fred LeBar's code and - comments for computing the available chunks. - - * tests/Mutex_Test.cpp: Rewrote the Mutex_Test so that it behaves - correctly on UNIX and Win32. Thanks to Irfan for reporting the - problem. - - * ace/Log_Msg.cpp (sync): Somehow, the statement that updated the - pid_ after sync() is called following a fork() got removed, so I - put it back in. - - * ace/config-sunos5.*-g++.h: Added the - -D_REENTRANT flag to the config files for the G++ version of - ACE. This fixes a nasty problem that otherwise arises when - compiling on SunOS 5.x. Thanks to Hanan Herzog - for reporting this. - -Tue Nov 19 21:14:15 1996 David L. Levine - - * performance-tests/Synch-Benchmarks/Benchmark.{h,cpp}: - use thread ID class for VxWorks as well as Pthreads. - - * OS.i, config-{osf1-4.0,sunos5.[45]}-g++.h: Moved GNU - #include out of config files and into OS.i. - - * ace/Svc_Conf_l.cpp: added #include of ace/OS.h for HPUX and - VxWorks. - - * ace/Token.cpp: reordered initializations in Ace_Queue_Entry - ctor to match declaration order. - -Mon Nov 18 00:47:27 1996 Douglas C. Schmidt - - * ace/OS.h: Added a new #define called ACE_HAS_BROKEN_CONVERSIONS - to workaround problems with the HP/UX C++ compiler, which - doesn't seem to be able to grok foo->operator T *(). Thanks to - Alan Stewart for reporting this bug and the fix. - Also updated the config-hpux*.h files with this define. - - * examples/Misc: Added a new test (test_get_opt.cpp) which - exercises the ACE_Get_Opt class. - -Sun Nov 17 13:00:02 1996 Douglas C. Schmidt - - * ace/Get_Opt: Replaced the GNU-based implementation of class - ACE_Get_Opt with an implementation based on BSD UNIX. The - advantage here is that the BSD version is not encumbered by the - GNU GPL. Thus, ACE has no more dependencies on GNU GPL. Thanks - to James Hu for finding the BSD code. - -Mon Nov 18 00:13:25 1996 Tim H. Harrison - - * ace/stdcpp.h: Added this file to ACE. This file contains the - portability ugliness for the Standard C++ Library. As - implementations of the "standard" emerge, this file will need to - be updated. Although not very useful now, we are gearing up for - a support for STL on UNIX and NT. - - * ace/OS.h: Added an include "ace/stdcpp.h". - - * ace/Log_Record.h (ACE_Log_Record): Removed the iostream include - mess that got accidentally committed to the release. - -Sun Nov 17 00:13:25 1996 Tim H. Harrison - - * For some totally evil reason, MSVC++ will not allow any use of - the "allocator" symbol. It's an STL thing. As a result, I've - had to change all of the following files to rename allocator to - alloc: Local_Name_Space_T.cpp, Map_Manager.cpp, Malloc_T.cpp, - Message_Block.cpp, Read_Buffer.cpp, SString.cpp. The root - of the problem can be seen by compiling the code below: - - template - class foo {}; - - int foo; // compile error because of the foo<> class. - - int main () { return 0; } - - * Service_Config.{h,cpp}: We have to change the allocator - accessors to alloc. This is probably going to break - many things. If necessary, we can conditionally compile in the - old accessors for platforms that are not using STL and MSVC++. - - * ace/Task.h: Added ACE_Export macros to the class definitions. - -Sun Nov 17 13:00:02 1996 Douglas C. Schmidt - - * ace: Added Thilo Kielmann's - patches for OSF/1 4.0a. - - * ace/OS: Revised the implementation of ACE_OS::asctime_r() and - ACE_OS::ctime_r() to simplify common cases. However, this may - have broken some code on OSF/1 4.0a. Can someone please check - this? - - * tests/SPIPE_Test.cpp: Conditionally compiled this file so that - we only build the SPIPE test if (1) we're running on Win32 or - (2) ACE_HAS_STREAM_PIPES. Thanks to David Levine for this - suggestion. - - * ace/OS.i (ctime_r): Fixed a typo that was caused by a misplaced - #endif. Thanks to Eshel Liran for - reporting this. - - * ace/Time_Value: Disabled ACE_TRACE within these method in order - to prevent infinite recursion. - - * ace/Log_Record: Originally, when verbose mode was enabled you - can get the date and time down to the seconds. However, it is - useful for performance testings to have milliseconds displayed - in the log. To accomplish this, I changed ACE_Log_Msg and - ACE_Log_Record to they also keep track of and print the microsec - time, as well. Thanks to Luca for suggesting this. - - * ace/Map_Manager.cpp: updated all the ACE_Map_Manager methods so - their read and write Guards use the ACE_*_GUARD macros. - - * ace/Malloc_T.cpp: Updated all the ACE_Malloc methods so their - read and write Guards use the ACE_*_GUARD macros. - - * ace/OS.cpp (svc_run): Added an ACE_DEBUG announcing that an - exception has propagated beyond the outermost svc_run() - function. Thanks to Luca for this suggestion. - - * tests/test_config.h: VxWorks passes in a NULL argv (arrghhh...). - Therefore, to work around this in the ./tests directory, I changed - the ACE_START_TEST macro to take a NAME parameter, and then I - added the following local variable: - - const char *program = argv ? argv[0] : NAME; - - Thanks to David Levine for this fix. - -Sat Nov 16 12:01:08 1996 Douglas C. Schmidt - - * examples/Threads/test_tss2.cpp: Added Detlef's new test for - ACE_TSS. - - * ace/Synch_T.cpp (ts_get): Added Detlef's changes to fix deadlock - problems with ACE_TSS on NT. - -Fri Nov 15 18:01:26 1996 Douglas C. Schmidt - - * ace/ACE_SOCK_Stream.cpp: NT will signal an abortive close - to the opposite party if a socket is closed before all of its - data has been sent out. According to the NT SDK-docs, you should - do a shutdown before the closesocket() in order to prepare a - graceful close. Thus, I've placed an - ACE_SOCK_Stream::close_writer() method just before the call to - ACE_SOCK::close() in the new close() of the ACE_SOCK_Stream - class. Thanks to Tilo Christ for - this suggestion. - - * ace/INET_Addr.cpp: The function ACE_INET_Addr::addr_to_string - was a virtual function that is also inline and defined in the .i - file. Some compilers have a problem with this, so I moved it - into the *.cpp file. In addition, its sister function was also - virtual and is defined as: - - ACE_INLINE int - ACE_INET_Addr::string_to_addr (const char s[]) - - in the .cpp file. I removed the ACE_INLINE directive. Thanks - to Fred LaBar for reporting this. - -Thu Nov 14 16:20:20 1996 Douglas C. Schmidt - - * ace/Malloc_T.cpp: Added a new method to ACE_Malloc that will - return the number of chunks available on the free list. Thanks - to Fred Labar for this. - -Wed Nov 13 01:22:16 1996 Douglas C. Schmidt - - * ace/ReactorEx.cpp (handle_events): I've changed siginfo_t on - Win32 (which was previously typedef'd to int) so that it has the - following structure: - - struct siginfo_t - { - siginfo_t (ACE_HANDLE handle); - - ACE_HANDLE si_handle_; - // Win32 HANDLE that has become signaled. - }; - - Then, I've changed the ACE_ReactorEx::handle_events() method to - look like this: - - // Assign the ``signaled'' HANDLE so that callers can get - // it. - siginfo_t sig (relative_handles[relative_index]); - - if (relative_handlers[relative_index]->handle_signal - (0, &sig) == -1) - - Thus, you can refer to the signaled handle as - - si_handle_ - - within the handle_signal() call back. Thanks to Matthias - Kerkhoff for suggesting this. - - * ace/System_Time.h: Made ACE_System_Time::get_local_time() a - static member function. Thanks to Matthias Kerkhoff - for suggesting this. - - * ace/Message_Queue.h: The internal variables for counting the - bytes stored in the queue were declared as of type int (in - Message_Queue.h). But they are set (e.g. with - ACE_Message_Queue::ACE_Message_Queue) with values of size_t. - - When running tests/Priority_Buffer_Test, the high_water_mark_ is - preset with the value LONG_MAX. While assigning this value from - size_t to int, this becomes -1 and the queue is always believed - to be full :-( The fix is to change the internal data structures - in Message_Queue.h from int to size_t. Thanks to Thilo Kielmann - for reporting this. - - * tests: Fixed problems with the following three tests: - - Priority_Buffer_Test.cpp - Reader_Writer_Test.cpp - UPIPE_SAP_Test.cpp - - When these are compiled with gcc on Digital UNIX 4.0a the static - ACE_Thread_Manager thr_mgr; was never getting initialized due to - gcc compiler bugs. The fix is to replace the static thread - manager with the ACE_Service_Config::thr_mgr() singleton. - Thanks to Thilo Kielmann for - reporting this. - -Tue Nov 12 19:43:12 1996 Douglas C. Schmidt - - * ace/Thread_Manager.cpp (spawn_n): Was missing a 0 after ?. - Thanks to Thilo Kielmann for - reporting this. - - * ace/Log_Msg.h: Created a new macro call ACE_ERROR_BREAK(X) { - ACE_ERROR(X); break;} for use within switch and loop statements. - Thanks to Luca for this idea. - - * ace/Pipe.cpp: Enabled the "reuse addr" flag for accepting and - connecting the Win32 version of ACE_Pipe. Thanks to Luca for - reporting this problem. - - * ace/OS.i (thr_join): ACE_Thread::join () has a default second - parameter (the status) set to 0. This is not handled in - ACE_OS::thr_join(). To avoid getting a system error in NT we - handle this as we did with ACE_OS::thr_create() and the - thr_handle parameter. - - * ace/config-irix6.2-sgic++.h: Updated the set of patches required - for IRIX 6.2. Thanks to Amos Shapira for reporting this. - -Sun Nov 10 15:40:17 1996 Tim H. Harrison - - * ace/Token_Invariants.cpp: Moved static data - declarations out of ACE_Token_Invariant_Manager::instance and - into the header file. This is supposed to help with a g++ - problem on VxWorks. - -Sun Nov 10 13:22:03 1996 Douglas C. Schmidt - - * ace/Pipe.cpp (open): Set the loopback socket into TCP_NODELAY - mode so that we don't block for 200 ms... Thanks to Luca - Priorelli . - - * ace/Thread_Manager: Created a new version of spawn_n() that - gives parameters for stack, stack_size, and also for the - assigned ACE_hthread_t's. Thanks to Thilo Kielmann - for suggesting this. - -Sun Nov 10 13:56:38 1996 Prashant Jain - - * tests/Reactors_Test.cpp (main): Fixed the test so that the - output of the test goes to a log file instead of STDOUT. - -Sat Nov 9 11:23:13 1996 Douglas C. Schmidt - - * ace/Synch.i: Fixed a bug in ACE_Thread_Mutex_Guard. - The call: - - this->owner_ == block ? this->lock_.acquire () : this->lock_.tryacquire (); - - should be - - this->owner_ = block ? this->lock_.acquire () : this->lock_.tryacquire (); - - Thanks to Alexander Smundak for reporting - this. - -Sat Nov 9 01:44:15 1996 Irfan Pyarali - - * ace/Message_Queue: Added forward and reverse iterators to - Message_Queue. Also, added typedefs to Message_Queue for - ITERATOR, and REVERSE_ITERATOR. This makes the Queue like an STL - collection and also makes it easier to use since you don't have - to define types for the iterators. Please see - test/Message_Queue_Test.cpp for an example. - - * ace/Map_Manager: Added reverse iterator to Map_Manager. Also, - added typedefs to Map_Manager for ENTRY, ITERATOR, and - REVERSE_ITERATOR. This makes the Map more like an STL collection - and also makes it easier to use since you don't have to define - types for the iterators and the entry. Please see - test/Map_Manager_Test.cpp for an example. Note that the new - typedefs does not break existing code. - -Fri Nov 8 20:04:26 1996 Douglas C. Schmidt - - * ace/Malloc.h: Fixed a typo on line 176 that reads: - - #include "ace/Sync_T.h" - - It should read: - - #include "ace/Synch_T.h" - - Thanks to Todd Barkalow for - reporting this. - -Wed Nov 6 00:38:02 1996 Douglas C. Schmidt - - * ace/Pipe: Added the const qualifier to the following methods: - - ACE_HANDLE ACE_Pipe::read_handle (void) const; - ACE_HANDLE ACE_Pipe::write_handle (void) const; - - Thanks to Luca for reporting this. - - * ace/config-win32-msvc4.0.h: Redefined - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES since it looks like - MSVC++ 4.0 still doesn't work. Maybe this is fixed in 4.2? - -Tue Nov 5 03:09:44 1996 Douglas C. Schmidt - - * ace/Strategies.cpp: I'd forgotten to update one of the - accept(*svc_handler) calls to use the new - accept(svc_handler->peer()) syntax. - - * netsvcs/lib/Server_Logging_Handler.cpp: Added a cast to - (COUNTER) 0 when initializing ::request_count_ to avoid problems - on Win32. Thanks to Luca for pointing this out. - - * ace/Thread_Manager: Added a new thr_self() method that return - the unique ID of the thread. This is not strictly necessary - (because a thread can always just call ). - However, we put it here to be complete. Thanks to Hamutal Yanay - for suggesting this. - - * ace/OS.cpp (thr_create): I was accidentally closing down - ::CloseHandle (thr_handle) (where thr_handle is a HANDLE *) when - I should have been doing a ::CloseHandle (handle) instead. - Thanks to Luca for finding this! - -Tue Nov 5 14:26:32 1996 David Levine - - * include/makeinclude/wrapper_macros.GNU: Changed LINK.{c,cc} - commands to use LD instead of CXX. Changed all platform macros - files (except for g++ on VxWorks) to correspond. - - * tests/run_tests.sh: changed -e test to -f for portability and - reordered tests. Thanks to Michael Michael Rueger - for originally creating run_tests.sh, and - for maintaining it, and to Alan Stewart for - suggesting fixes/enhancements. - - * tests/Time_Service_Test.cpp and Tokens_Test.cpp: changed to - return 0 on success instead of 42 - -Fri Nov 1 03:53:39 1996 Irfan Pyarali - - * STL: Added STL files to $WRAPPER_ROOT/STL. This code is a - modified version (changes for VC++ compiler) of the publicly - available implementation of STL from HP. Currently, - ACE_Registry uses these STL classes. - -Fri Nov 1 00:25:01 1996 Douglas C. Schmidt - - * ace/CORBA_Handler.cpp (process_events): There was a very subtle - race condition in the ACE_MT_CORBA_Handler. process_events() - accessed the singleton directly without taking the mutex. At - startup the process_event thread is kicked off from the - constructor and the instance_ is set. Hence the race. The - solution is to attempt to take the mutex before accessing the - instance. Thanks to David Artus for - reporting the problem and providing the fix. - - * ace/Log_Msg.cpp (log): Improved the performance of the Log_Msg - mechanism by not doing any parsing of the format string if the - user has disabled this priority. - - * ace/Reactor.cpp: Added a chance for the open() method of the - Notification_Pipe failing. Thanks to Luca for pointing this - out. - - * ace/Reactor.cpp (handle_events): Added a change to the semantics - of the ACE_Reactor so that it doesn't fall out of the event loop - when signals arrive that it handles. Thanks to Stuart Powell - for this fix. - - * ace/Service_Repository.cpp (remove): Fixed a bug with - Service_Record::remove() that was failing if there were only two - records and we are removing the first one. Thanks to Alex - Villazon for reporting this. - - * ace: Recompiled everything on Solaris with G++ and CC and it - seems to work fine. - - * ace/Module: Replaced the use of char * with const char * for - assigning the Module a name. - - * ace: Split the Task.{cpp,i.h} file into Task_T.{cpp,i,h} in - order to factor out the new non-template ACE_Task_Base and - ACE_Task_Exit classes. This is required for GCC-based compilers - that include the *.cpp files... - -Thu Oct 31 00:36:38 1996 Douglas C. Schmidt - - * ace/Malloc_T.h: Made the destructor of ACE_Allocator_Adapter - virtual. - - * ace/Thread: Reorganized the ACE_Thread so that the - ACE_HAS_THREADS #ifdef is no longer required... - - * ace/Strategies.h: Changed all the destructors to be virtual so - that G++ will stop complaining... - - * ace/Thread_Manager: Reorganized the ACE_Thread_Manager so that - the ACE_HAS_THREADS #ifdef is no longer required... - - * ace/config-win32-msvc4.0.h: Added Dieter Quehl's great hack to - get ACE to compile correctly on Win32 with MFC! - - * ace/Task: I've rearranged the implementation of ACE_Task<> - in the following way: - - 1. Defined a non-template class ACE_Task_Base from which the - ACE_Task<...> inherits (instead of inheriting from - Ace_Service_Object, which ACE_Task_Base now inherits from. - - 2. Move all methods that don't depend on the or - modifers from the ACE_Task template to - ACE_Task_Base. - - There are two motivations for making this change: - - 1. It reduces ``template bloat'' by factoring out common - code that can be shared between ACE_Task - and ACE_Task. - - 2. It makes it possible for the Thread_Manager to use - ACE_Task_Base *'s for managing groups of ACE_Tasks - in a fully polymorphic manner. - - Note that the new changes don't break any existing code that - uses ACE_Task. Thanks to Hamutal Yanay - and Ari Erev's - for suggesting these changes. - - * ace/Thread_Manager: Changed the use of ACE_Task to - ACE_Service_Object because this avoids nasty problems with - template type conflicts. The right solution is probably to - create a new non-template base class for ACE_Task called - ACE_Task_Base and move all the ACE_Task operations into there - that don't involve the Message_Queue directly. I'll need to - think more about this... - - * ace/SOCK_Stream: Added new timed send_n() and recv_n() methods, - which use the underlying timed ACE::send() and ACE::recv() - calls. - - * ace/ACE.cpp: Added new timed send_n() and recv_n() methods, - which use the underlying timed ACE::send() and ACE::recv() - calls. - -Wed Oct 30 00:27:21 1996 Douglas C. Schmidt - - * ace/OS.h: Changed MAXHOSTNAMELEN on Win32 from - (MAX_COMPUTERNAME_LENGTH+1) (which is around 16 or so) to 256. - Thanks to Tilo Christ for this - suggestion. - - * ace: Made #define STRICT a compile time option if the - ACE_HAS_STRICT flag is enabled. This prevents ACE from breaking - existing application (i.e., non-ACE) code. Thanks to Karlheinz - for pointing this out! - - * ace/Synch_T.cpp: Fixed a typo in ACE_Condition::wait - (void). - - return ACE_OS::cond_wait (&this->cond_, this->mutex_.lock_); - - should read - - return ACE_OS::cond_wait (&this->cond_, &this->mutex_.lock_); - - Thanks to Dieter Quehl for - reporting this! - - * ace/Svc_Handler.h: Removed the operator ACE_PEER_STREAM &() from - the ACE_Svc_Handler class since we don't need it anymore due to - the changes below. - - * ace/{Acceptor,Connector}.cpp: Removed the use of operator - ACE_PEER_STREAM &() in the Acceptor::accept() and - Connector::connect() code and replaced it with - svc_handler->peer(). This works much better and is more - intuitive. - -Wed Oct 30 00:30:00 1996 Irfan Pyarali - - * Registry: Added a Name Service implementation to ACE based on - Win32 Registry. The ACE_Registry interface is inspired by the - interface specified in the CORBA Naming Service Specification. - The implementation is done through Win32 Reg*() functions. - Other than providing an OO wrapper for the Win32 Reg*() - functions, ACE_Registry provides an abstraction for iteration - over the elements of the Registry. This only works on Win32 - platforms (unless you are brave enough to reimplement the - Win32 Registry API on UNIX and link it in underneath ACE!). - - * ace/Local_Name_Space_T.cpp: Moved SEH out of methods of - Name_Space_Map to the methods of Local_Name_Space. Some of - the calls to Local_Name_Space methods used the allocator to - either malloc or find or free shared memory. Adding SEH to these - methods ensured that any exception raised due to remapping would - be caught and handled appropriately. - - Also, to fool the stupid MFC compiler, we added _i methods - so that it stopped bitching about destructors not getting called - correctly. - - * Added three new tests to /examples/Naming. Thanks to Lothar for - providing these tests. - -Tue Oct 29 18:10:09 1996 Douglas C. Schmidt - - * ace/ACE.cpp (send): Integrated a new and simpler version of - timed ACE::send(). Thanks to Vital Aza for - coming up with this. - - * ace/XtReactor.cpp: When the ACE_Reactor is constructed it - creates the notify pipe and registers it with the attach() - method. The XtReactor overloads this method BUT because the - attach occurs when constructing the base class ACE_Reactor, the - ACE_Reactor attach() is called not the XtReactor attach(). This - means that the notify pipe is registered with the ACE_Reactor - event handling code not the XtReactor and so notfications don't - work. To get around this we simply close and re-opened the - notification handler in the constructor of the XtReactor. - Thanks to Rodney Skinner for this fix. - - * ace/XtReactor.cpp (schedule_timer): The ACE_Reactor returns a - timer_id from it's equivalent call but the XtReactor always - returns 0. To fix this we simply replaced the "return 0;" in - the function with "return result;" Thanks to Rodney Skinner - for reporting this. - -Tue Oct 29 00:02:44 1996 Douglas C. Schmidt - - * ace/config-win32-msvc4.0.h: Defined the STRICT symbol based on a - suggestion from Luca. STRICT type checking in WINDOWS.H - enhances type safety for Windows programs by using distinct - types to represent all the different HANDLES in Windows. So for - example, STRICT prevents you from mistakenly passing an HPEN to - a routine expecting an HBITMAP. Note that if you have STRICT - type checking enabled in one file, but not in another, the C++ - compiler will generate different external link symbols for a - single function. This will result in link-time errors If you are - mixing STRICT and non-STRICT code, you must be aware of linkage - inconsistencies. In general, all MFC programming and all C++ - should be done with STRICT. If you have legacy C code, then not - using STRICT is acceptable - - * ace/OS.cpp (thr_create): Added a special check for the situation - where we have both ACE_HAS_PTHREADS and ACE_HAS_STHREADS - defined. In this case, we are running on Solaris, where - ACE_thread_t and ACE_hthread_t are the same. Therefore, we can - copy the value of the *thr_id into the *thr_handle. This - ensures that the ACE_Thread_Manager behaves correctly with - respect to suspending and resuming threads and ACE_Tasks. - - * ace/Trace.cpp (ACE_Trace): Changed the use of LM_DEBUG to - LM_TRACE in the constructor and destructor. Thanks to Luca for - this! - - * ace/OS.i: Added a cast to of (HMODULE) handle so that the STRICT - macro would work correctly for Win32. Thanks to Luca for this. - - * ace/config-win32-msvc4.0.h: According to Luca, ACE compiles file - with ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES undefined on NT. So - I undefined it! If there are any problems with this, please let - me know. - - * ace/SOCK_Dgram: Added Luca Priorelli - implementation of recv() for SOCK Dgrams that allows clients to - read from a socket without having to provide a buffer to read. - - * examples/Threads/test_task_four.cpp: This is a new test - program to test the new interfaces. Thanks to Hamutal Yanay - & Ari Erev for this. - - * tests/test_config.h: Added a call to the new ACE_OS::mkdir() - wrapper to create the log directory if one doesn't already - exist. This should solve some nasty problems with NT reported - by Tilo Christ . - - * ace/OS.h: Added a new macro ACE_DEFAULT_DIR_PERMS and changed - the spelling of the existing ACE_DEFAULT_PERMS to - ACE_DEFAULT_FILE_PERMS, which is more accurate. - -Mon Oct 28 21:35:12 1996 Douglas C. Schmidt - - * ace/OS.h: Added a wrapper for the mkdir() system call. We need - it for some of the tests. - - * ace/Task: Changed the name of ACE_Task_Exit<>::set_this() to - ACE_Task_Exit<>::set_task(). Thanks to Hamutal Yanay & Ari Erev - for suggesting this. - - * ace/{Task,Thread_Manager}: Integrated Hamutal - Yanay & Ari Erev's - enhancements to add ACE_Task support - to the ACE_Thread_Manager. This allows the ACE_Thread_Manager to - know about ACE_Tasks directly, rather than knowing - indirectly via their lower-level thread IDs. The changes - are described below: - - - Added a parameter to the activate() method. It is used to - pass an ACE_Task* to spawn_n(). - - - Modified suspend() and resume() to call - thrMgr->suspend_task() and thrMgr->resume_task() instead of - thrMgr->suspend_grp() and thrMgr->resume_grp(). - - - Added an ACE_Task * parameter to spawn_n(). - - - Added an ACE_Task * parameter to append_thr(). - - - append_thr() uses the ACE_Task * input parameter to - initialize the thread descriptor. - - - Added the following methods: - apply_task() - suspend_task() - resume_task() - kill_task() - resume_task() - cancel_task() - find_task() - - num_tasks_in_group() - num_threads_in_tasks() - - task_list() - thread_list() - hthread_list() - - set_grp() Like the current set_grp() but gets an ACE_Task * - as input. - get_grp() Like the current set_grp() but outputs an - ACE_Task *. - - wait_task() - wait_group() - -Sun Oct 27 11:25:00 1996 Douglas C. Schmidt - - * ace/OS: modified the ACE_OSCALL_RETURN macro so that we'll - no longer have zillions of warnings about _result not - used... - - * ace/Synch_T: Changed the use of ACE_Mutex for ACE_TSS to - ACE_Thread_Mutex. - - * ace: Added the necessary template specializations to get ACE - compiled correctly with G++. - - * ace/Log_Msg.h: There were some places in the ACE_{DEBUG,ERROR} - macros that should have been using __ace_error but there still - using errno (which is wrong since this might be changed due to - side-effects of calling ACE_Log_Msg::instance()). I found this - problem due to the use of -Wall with G++! As a result of this - fix, ACE now compiles much more cleanly with gcc -Wall. - - * ace/Strategy: Improved the scheme used to define the PEER_ADDR - type of the ACE_Accept_Strategy so that it will work correctly - on platforms whose C++ compilers aren't quite up to handling all - variants of template typedefs. In particular, many platforms - don't support the use of template typedefs in parameter names... - - * ace/OS: HP/UX omitted the const in the prototype of - const_timewait(). Therefore, I added a new typedef to handle - this and updated all the HP/UX config*.h files. - - * ace: Added a new config file (config-sunos5.5-sunc++-4.1.h) - which reflects the fact that SunC++ 4.1 fixes template bugs that - prevented earlier versions from supporting template typedefs - correctly. The new config file #defines - ACE_HAS_TEMPLATE_TYPEDEFS. - -Sat Oct 26 02:22:25 1996 Douglas C. Schmidt - - * ace: On the advice of David Levine, I compiled ACE with gcc - -Wall and started to fix lots of minor warnings (e.g., - misordered data member initializations). - - * ace/Local_Tokens.h: Changed the destructors of ACE_Mutex_Token, - ACE_RW_Token, ACE_Token_Proxy, and ACE_RW_Token to be virtual. - - * ace/Synch_T.h: Changed the destructor of ACE_TSS to be virtual. - - * ace/OS: Changed the prototype of ACE_OS::select() so that it - uses const ACE_Time_Value *. - - * Updated all uses of ACE_Malloc to use the new ACE_*_MEMORY_POOL - #defines. This makes it possible to use the ACE_Malloc<> scheme - with lame C++ compilers. - - * ace/ACE: Changed the interface of the new timed send/recv calls - to use ACE_Time_Value *, which makes it easier to determine - the blocking semantics at runtime. Thanks to Bill Fulton - for suggesting this. - -Sat Oct 26 15:55:02 1996 Irfan Pyarali - - * ace/OS.h: We determined that MSVC++ is capable of supporting - template typedefs. Therefore, we can enable the - ACE_HAS_TEMPLATE_TYPEDEFS flag, which makes life much easier for - end users! - -Fri Oct 25 23:16:16 1996 Irfan Pyarali - - * examples/Shared_Malloc/test_multiple_mallocs.cpp: Added a new - test that demonstrates the new ability of ACE_Malloc<> to to - handle multiple mallocs rooted at different base addresses. - - * ace/Memory_Pool: Fixed this stuff so that it works even when C++ - compilers can't grok template typedefs. - - * ace: Put all the macros that handle the fact that many C++ - compilers have broken template implementations into one place - (OS.h), rather than having this spread out in many files. - - * In ACE_MMAP_Memory_Pool::init_acquire (), we reset errno to 0 in - the case where the file already exists (and errno == EEXIST). - - * Added an ACE_*_Memory_Pool_Options class to each Memory Pool - class. The Options class allows detailed parameters to be passed - to the constructor of the Memory Pool class. Since a typedef'd - Options class was added to every Memory Pool class, this gave us - the ability to use traits in ACE_Malloc and - ACE_Allocator_Adapter to construct generic Memory Pools that can - be initialized uniquely for each instance of ACE_Malloc. Note - that this new feature only works for C++ compilers that support - template typedefs correctly (e.g., MSVC++ 4.x, SunC++ 4.1, - and the AIX C++ compiler). - - * Added additional constructors to ACE_Malloc and - ACE_Allocator_Adapter to allow Options to be passed in to Memory - Pool. - - * Added an extra field in ACE_Name_Options which allows - specification of the base address of the memory pool. This is - now used by ACE_Local_Name_Space::create_manager() to create an - ACE_Allocator_Adapter. This now allows us to have multiple - ACE_Naming_Context simultaneously in the same process address - space. - - * Also added error checking for constructors (in - ACE_Local_Name_Space and ACE_Malloc) by checking errno - values. This is a "hack" since we currently do not use exception - handling. - -Thu Oct 24 02:43:11 1996 Douglas C. Schmidt - - * examples/Connection/misc/Makefile: The Makefile in - ACE_wrappers/examples/Connection/misc seems to have been - truncated. I replaced it. Thanks to Alan Stewart - for reporting this. - - * examples/IPC_SAP/SOCK_SAP/CPP-{inclient,inserver}.cpp: Updated - these examples to use the new timed send()/recv() operations. - - * ace/SOCK_IO: Added timed send()/recv() methods, using the base - level implementations in class ACE. - - * ace/ACE: Added timed send()/recv() methods. - -Wed Oct 23 19:56:45 1996 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Changed the - behavior of the test program so that it doesn't take a - local_addr, but rather will use the default (this prevents a - common problem that happens when users run the test without - reading the README file). - - * ace/ACE.cpp: Added a new method (get_flags) that returns the - current setting of flags associated with handle. - - * Start of a brave new world: ACE is now under CVS version - control... Thanks to David Levine and Chris Cleeland - for making this happen. - -Sat Oct 19 12:33:56 1996 David L. Levine - - * added ACE threads mappings to VxWorks 5.2 tasks in OS.*. - NOTE: this is _untested_ at this point, but only affects - VxWorks code - - * changed name of first argument of ACE_OS::sigprocmask() and - ACE_OS::thr_sigsetmask() from "signum" to "how" to better - represent what it really is. - -Wed Oct 16 01:59:40 1996 Douglas C. Schmidt - - * ace/Log_Record.cpp (print): added Luca's suggestion for checking - if host_name == 0 for the ostream version of print(), as well. - - * Released version of ACE 4.0.32 for testing. - - * ace/Synch.h: Added many small fixes for HP/UX 10.x. Thanks to - Alan Stewart for providing these. - - * ace/OS.h: Added many new ACE_LACKS* and ACE_HAS* macros to - support the MVS port. Thanks to Chuck Gehr - for these. - -Tue Oct 15 11:56:59 1996 Douglas C. Schmidt - - * ace/OS.h: in a continuing effort to protect the ACE namespace, - I've changed ace/OS.h around lines 127-137 so that "SYNCH" and - "SYNCH_MUTEX", etc. are prefixed with "ACE_". Thanks to Alan - Stewart for suggesting this. - - * ace/Local_Tokens.h: Removed an unnecessary parameter name - that was unused. Thanks to Stuart Powell - for reporting this. - -Tue Oct 15 17:03:37 1996 Tim H. Harrison - - * ace/ReactorEx.cpp (handle_events): Fixed a bug in handle_events - so that the correct handlers get called when multiple handles - become signaled simultaneously. Thanks to Ari Erev - for pointing out this bug. I also took - this opportunity to fix a bug when handlers are removed during - handle_events. - - * examples/Reactor/ReactorEx/test_remove_handler.cpp: Added a new - application that tests how the ReactorEx services simultaneous - events and removes handlers. This example also illustrates the - use of the new ACE_Events wrapper. Check - examples/Reactor/ReactorEx/README for more details. - -Mon Oct 14 11:43:18 1996 Douglas C. Schmidt - - * tests: Added a new version of run_tests.sh, which was - contributed by Michael Rueger . - - * examples/Logger/simple-server/Logging_Handler.cpp (handle_input) - and examples/Logger/Acceptor-server/server_loggerd.cpp - (handle_input): Changed from stderr to cerr to work around bugs - with the C run-time libraries on Win32. Thanks to Tilo Christ - for suggesting this. - -Mon Oct 14 11:09:42 1996 Prashant Jain - - * ace/Local_Name_Space_T.cpp (remap): Added processor specific - stuff to remap(). The code was taken from the book "Win32 - Network Programming" by Ralph Davis (p.18) and takes care of - cases specific to the 80x86 processor. The code ensures that the - registers are set properly when we continue execution after an - exception. - -Sun Oct 13 21:18:38 1996 Douglas C. Schmidt - - * ace/Log_Record.cpp (print): Added a test to make sure that the - value returned from ctime_r != 0 (e.g., if time_stamp_ == -1) in - order to avoid crashes. - - * examples/Logger/client/logging_app.cpp (main): Moved the - construction of the ACE_Log_Record log_record object into the - loop so that it will be recreated each time through. If this - isn't done, then we'll be continually "encoding" values into - network byte order that have already been encoded and screwing - things up on little-endian machines (such as Intel). Thanks to - Irfan and Tilo Christ for pointing - me in the right direction on this. - - * ace/Log_Record.cpp: Changed the default constructor so that it - gives default initializations to the data members. - - * examples/Logger/Acceptor-server/server_loggerd.cpp (handle_input): - Fixed a couple of typos where - - Logging_Handler::handle_input (int) - - should be: - - Logging_Handler::handle_input (ACE_HANDLE) - - and - - size_t len; - - should be: - - ssize_t len; - - Thanks to Irfan for finding these. - -Sat Oct 12 08:48:23 1996 Douglas C. Schmidt - - * Released a beta version of ACE 4.0.32 for testing. - - * ace/Log_Record.cpp: rewrote the code a bit to try and avoid - problems on NT when host_name == 0. - - * ace/Log_Record.cpp: Changed the use of ACE_OS::ctime() to - ACE_OS::ctime_r() to avoid problems that might arise when - ACE_Log_Record::print() is called from multiple threads. - - * ace/Log_Record.cpp: Commented out calls to ACE_TRACE to avoid - weird problems with circular dependencies. Thanks to Luca - Priorelli for suggesting this. - - * build/SunOS5.5/examples/Makefile: Added the Logger directory to - the list of targets that are build automatically by Make. - -Fri Oct 11 17:13:03 1996 Douglas C. Schmidt - - * ace: Fixed lots of small warnings revealed when using the - Greenhills compiler on VxWorks. Thanks to David Levine for - this. - - * ace/Pipe.h: In Pipe.h, the return value of ACE_Pipe::close() - isn't explicitly declared, so some compilers gag. Thanks to - David Levine for this. - -Thu Oct 10 12:05:55 1996 Douglas C. Schmidt - - * ace/Thread.cpp: Correctly wrapped the methods in the *.cpp file - so that they are ignored if threads *aren't* supported. - - * ace/Service_Repository.cpp (remove): Added the ACE_MT in front - of all the ACE_GUARD* macros that utilize ACE_Thread* locks in - order to ensure that ACE compiles correctly on all non-MT - platforms. - - * examples/Shared_Malloc/Malloc.cpp: Removed the special purpose - class for PROCESS_MUTEX since ACE_Process_Mutex will now work - for non-MT platforms. - - * examples/Misc/test_dump.cpp: Changed all occurrences of - - cerr << "string " << this << endl; - - to - - cerr << "string " << (u_long) this << endl; - - to work around problems with IRIX 5.3. Thanks to Tilo Christ - for reporting this. - - * ace/config-linux.h: Added a // in front of a stray comment line. - Thanks to Neil Cohen for pointing this out. - - * ace/config-hpux-10.x-g++.h: Added a new config file for HP/UX - 10.x which should fix some problems with templates by using the - G++ compiler. Thanks to for - contributing this. - -Wed Oct 9 14:34:19 1996 Douglas C. Schmidt - - * ace/OS: Changed the logic of socket initialization, which has - been moved out of ACE_SOCK and into ACE_OS. This makes it - possible to program more fully at the ACE_OS API (if such a - crazy thing is really necessary ;-)). - - * examples/IPC_SAP/SOCK_SAP/C-in{client,server}.cpp: Fixed up the - client and server apps so they will work on NT - (i.e., replaced the use of int with ACE_HANDLE). Thanks to Joe - DeAngelis for suggesting this. - - * ace/Synch.h: Now that we've got support for POSIX semaphores on - Solaris, then we'll use them (when they are supported...) as the - implementation of ACE_Process_Semaphore rather than using the - slower ACE_SV_Semaphore_Complex stuff... - - * ace/OS.{h,i}: Added David Levine's support for named POSIX - semaphores. If ACE_HAS_POSIX_SEM is defined, then ACE_Semaphore - will construct a named POSIX semaphore if passed a non-null - name, or an unamed POSIX semaphore if passed a null name. This - is a great addition because POSIX semaphores are more powerful - and useful than the Solaris UI semaphores. Unfortunately, - Solaris 2.5 doesn't support them (yet). - -Tue Oct 8 16:00:00 1996 Irfan Pyarali - - * ace/OS: Integrated Irfan's encapsulation/emulation for Win32 - Events at the ACE_OS level. A new structure ACE_event_t was - created to support Events on non-WIN32 platforms. On WIN32 - platforms ACE_event_t is just a HANDLE. On non-WIN32 platforms, - ACE_event_t uses a combination of mutexes, condition variables, - and counters to emulate Events. Both auto-reset and manual-reset - events are supported. - - * ace/Synch: Integrated Irfan's encapsulation/emulation for Win32 - Events at the C++ wrappers level. There are three wrappers that - were created: ACE_Event, ACE_Auto_Event, and ACE_Manual_Event. - ACE_Event is a wrapper for the ACE_event_t structure. It - provides functionality for signal, wait, pulse, and reset on an - event. ACE_Event supports both auto-reset and manual-reset - events. However, specializations of ACE_Event were created - (ACE_Manual_Event and ACE_Auto_Event) to make it easier to use - Events. - - * examples/Threads/test_manual_event.cpp: A test for manual-reset - events. The test involves the creation and use of a barrier - which uses an ACE_Manual_Event. - - * examples/Threads/test_auto_event.cpp: A test for auto-reset - events. The test involves the use of an ACE_Auto_Event for - signaling threads. - -Tue Oct 8 15:45:01 1996 Douglas C. Schmidt - - * ace/DEV.cpp (ACE_DEV): Removed a stray call to - ACE_IO_SAP::dump(). Thanks to Brad Flood - for this fix. - - * ace/OS.i: Added ACE_HAS_CHARPTR_SOCKOPT for VxWorks. Thanks to - David Levine for this. - - * ace/Dump.cpp (instance): Added an ACE_MT() macro around the - ACE_GUARD_RETURN macro so that this will compile correctly on - non-threaded platforms. Thanks to David Levine for this. - - * ace/OS.h: the declaration of ACE_OS::msgctl needs "struct - msqid_ds" instead of just "msqid_ds" to compile with the - Greenhills C++ compiler. Thanks to David Levine for this... - - * ace/Local_Name_Space_T.h: Added #include "ace/Local_Name_Space.h" - to avoid a problem during template generation. Thanks to - Chris Lahey for this fix. - - * ace/OS.i (getprotobynumber_r): Added a pair of fixes from Chris - Lahey to get the ACE wrappers for the getprotoby*_r() methods to - compile on AIX. - - * examples/Threads: Added two new examples (test_auto_event.cpp - and test_manual_event.cpp) that exercise the new ACE_Event - mechanisms. - - * ace/Synch: Integrated Irfan's encapsulation/emulation for Win32 - Events at the C++ wrappers level. - - * ace/OS: Integrated Irfan's encapsulation/emulation for Win32 - Events at the ACE_OS level. - -Fri Oct 4 08:32:47 1996 Douglas C. Schmidt - - * ace/OS.i: Added David Levine's new ACE_OS::mktemp() implementation. - -Wed Oct 2 13:26:20 1996 Douglas C. Schmidt - - * ace/SV_Message_Queue.i: Changed the casts of (msgbuf *) to - (void *). - - * ace/OS.i: Added David Levine's implementation of inet_addr() for - VxWorks. - - * ace/OS.i: Continued to merge together various parts of Win32 and - UNIX to reduce redundancies. - -Tue Oct 1 15:03:42 1996 Douglas C. Schmidt - - * ace/OS.i: Added Chuck Gehr's new changes to ACE_OS::mutex_init() - and ACE_OS::cond_init() to handle the MVS Pthreads madness. - - * ace/OS.i: Added zillions of #ifdefs for VXWORKS. It's amazing - these guys call themselves POSIX compliant -- lots of stuff is - missing. Thanks to David Levine for doing this! - - * ace/OS.cpp: Added David Levine's implementation of mktemp() - for platforms that don't support it. - - * ace/OS.h: Added a bunch of minor changes for VXWORKS. In - addition, started to factor out common #ifdefs to make the code - easier to maintain. - - * ace/OS.h: Added a new macro for ACE_LACKS_UTSNAME, and factored - this out for both VxWorks and Win32. - - * ace/Time_Value.h: Added support for 2 VXWORKSisms: (1) we need - to #include sys/times.h rather than the standard UNIX sys/time.h - and (2) we need to change const timeval & to const struct - timeval & to keep the Greenhills compiler happy. Thanks to - David Levine for this. - - * ace/INET_Addr.cpp: Added support for the insane VXWORKS - hostGetByName() function. Yikes! Thanks to David Levine for - this. - - * ace/Memory_Pool.cpp: Added a new #define called ACE_LACKS_SBRK - and ACE_LACKS_SYSV_SHMEM, which is enabled on Win32 and VxWorks. - Thanks to David Levine for reporting this. - - * ace/OS.h: Added new macros that #define ETIME for platforms like - VxWorks that don't support it, but do support ETIMEDOUT. - - * ace/OS.h: Added placeholder #defines for USYNC_PROCESS and - USYNC_THREAD when !defined (ACE_HAS_THREADS). Thanks to Neil - Cohen for reporting this. - -Tue Oct 1 00:42:35 1996 Douglas C. Schmidt - - * ace/Message_Block.cpp (size): Member base_ of ACE_Message_Block - was being set to the new memory pointer before the old contents - are saved in method size. So the line - - this->base_ = buf; - - was moved to a place some lines below. Thanks to Marco Sommerau - for detecting this. - - * ace/Message_Queue.cpp: Changed the implementation of the - enqueue_i() method so that FIFO order is maintained when - messages of the same priority are inserted consecutively. - Thanks to Jay Denkberg for - suggesting this. - -Mon Sep 30 22:59:38 1996 Douglas C. Schmidt - - * ace/OS.i (thr_yield): Added a new macro ACE_HAS_YIELD_VOID_PTR - to make pthread_yield work on MVS. Thanks to Chuck Gehr - for this fix. - - * ace/OS: Added a new macro called ACE_HAS_TIMEZONE_GETTIMEOFDAY - that handles problems on MVS. Thanks to Chuck Gehr - for this fix. - -Mon Sep 30 13:45:10 1996 Tim H. Harrison - - * ace/Local_Tokens.h: Updated some documentation in all the Token - files. - -Mon Sep 30 18:01:12 1996 Prashant Jain - - * netsvcs/lib/: Renamed files Logger.{h,cpp} to - Logging_Strategy.{h,cpp} to avoid confusion with Server_Logging - and Client_Logging stuff. In addition, I modified the affected - files, including Makefile, README, and the config files in the - tests directory. - -Sun Sep 29 12:47:37 1996 Douglas C. Schmidt - - * ace/OS.h: Added Chuck Gehr fixes for - MVS to enable signals to work correctly. - - * ace/Time_Value.h: Added an extern "C" { } block around #include - to solve a problem with Linux. Thanks to Padhu - Ramalingam for reporting this. - - * netsvcs/lib/Server_Logging_Handler.cpp: Changed the - initialization of a static template object from ::request_count_ - (0L) to ::request_count_ = 0L. Thanks to Gonzalo Diethelm - for reporting this. - - * ace/Remote_Tokens.h: Moved the inclusion of "Singleton.h" from - Remote_Tokens.cpp to Remote_Tokens.h. This should avoid - template instantiation problems on some platforms (e.g., Irix - 6.2). - - * ace/config-irix6.2-sgic++.h: Changed ACE_HAS_SIGINFO to - ACE_HAS_SIGINFO_T and added ACE_HAS_UCONTEXT_T. Thanks to - Gonzalo Diethelm for reporting this. - - * ace/Token_Invariants.h: The ctor/dtor were private and the - compiler would not allow a template of the class to be created. - I switched them to public, but I wish there was a better way... - Thanks to Gonzalo Diethelm for reporting - this. - - * ace/Synch_T.h: #include'd "ace/Event_Handler.h". Thanks to - Gonzalo Diethelm for reporting this. - - * ace/Synch.h: The parameter name gives warnings when - instantiating templates. Thanks to Gonzalo Diethelm - for reporting this. - - * ace/Process: Changed the definition of the get_pid() method to - getpid() to avoid a conflict with Irix. Thanks to Gonzalo - Diethelm for reporting this. - - * ace/Log_Msg.cpp (log): Added another #elif !defined (ACE_WIN32) - to handle logging for OS platforms that (1) aren't Win32 and (2) - are versions of UNIX that don't support STREAM pipes. Thanks to - Gonzalo Diethelm for reporting this. - - * ace/Acceptor.cpp (handle_signal): Erased the signum parameter - name to avoid a nasty warning about arguments not used when - instantiating templates. Thanks to Gonzalo Diethelm - for reporting this. - - * ace/OS.h: Added the ACE_Export symbol to the definition of - ACE_Str_Buf. This makes it compile and link on NT. Thanks to - Prashant for noticing this (our favorite Win32ism...). - - * ace/Thread.h (ACE_Thread): Removed a default argument for one of - the ACE_Thread::join() wrappers so this won't be ambiguous with - the other join() wrapper. - - * ace/OS: Added a new wrapper for strtok_r(). - -Sun Sep 29 16:12:01 1996 Prashant Jain - - * netsvcs/lib/: Renamed the project file for Win32 from lib.mdp to - netsvcs.mdp. Also the original project file did not include some - files such as Naming_Handler.cpp and Server_Logging_Handler.cpp - and I fixed that. Finally removed two files System_Time.{h,cpp} - which are already present in ace/. - -Sat Sep 28 16:34:56 1996 Douglas C. Schmidt - - * ace/OS: Added a new overloaded select() method that takes a - const ACE_Time_Value &. This is useful for situations where you - are passing in ACE_Time_Value::zero. - -Fri Sep 27 16:20:46 1996 Douglas C. Schmidt - - * ace/ACE: Added a fix for the fact that VxWork's write() call - doesn't take a const char *. - - * ace: Started adding support for VxWorks and GreenHills compiler, - e.g., added the config-vxwork-ghs-1.8.h file. Thanks to David - Levine for getting this rolling! - -Thu Sep 26 00:15:46 1996 Douglas C. Schmidt - - * ace/Timer_Queue: Changed the public interface methods to be - virtual in order to make it possible to override them in - subclasses. This makes it feasible to implement different types - of Timers. - - * ace/OS: Added a wrapper for the strspn() string call. Thanks to - Irfan for noticing this omission. - - * ace/Synch_T.cpp (wait): Changed the line: - - return ACE_OS::cond_wait (&this->cond_, this->mutex_); - - to - - return ACE_OS::cond_wait (&this->cond_, &this->mutex_.lock_); - - Thanks to Dieter Quehl - for noticing this. - - * ace/config-sunos5.4-g++.h: Removed the #define for - ACE_HAS_BROKEN_RANDR and replaced the ACE_HAS_SVR4_SIGNAL_T with - ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES since it looks like the - latest gcc release (2.7.2) fixes this in their own header files. - -Sat Sep 21 10:45:43 1996 Douglas C. Schmidt - - * ace/OS.h: Added a new #define called ACE_HAS_BROKEN_MSG_H to the - config-osf1-3.2.h file and used it in OS.h to work around - problems with prototypes on that platform. - -Fri Sep 20 00:15:29 1996 Douglas C. Schmidt - - * Released version 4.0.31 for testing. - - * ace/Pipe.cpp: Initialize handles_ to ACE_INVALID_HANDLE in - default constructor. Thanks to Tim Harrison for pointing this - out. - - * ace: Copied in new versions of ace.{mak,mdp} for Win32. - - * ace: Added TTY_IO.cpp to the Makefile. - - * ace/config-win32-msvc[24].0.h: Updated the config file so that - it *doesn't* #define ACE_HAS_STRBUF_T since this type clearly - isn't available on Win32! - - * ace: Modified all of OS.i and config-*.h files so that they - would be consisten with respect to handling the size_t and int - differences in socket implementations. Thanks to Chuck Gehr - for helping with this for AIX. - - * ace/ACE.h (ACE): Added a new method called max_handles() that - returns the maximum number of open handles currently supported - by the process. - - * examples/Reactor/Misc/signal_tester.cpp: Revised the test to - utilize the new idioms for programming with signals. - - * ace/OS.h: added a new #define called ACE_DEV_NULL that defaults - to "/dev/null" on UNIX and "nul" on NT. Thanks to David Trumble - for reporting this fix. - - * ace/Log_Msg.cpp: Added some checks to make sure that we don't - try to strdup() if we are passed a NULL pointer. Thanks to Luca - for suggesting this. - - * ace/OS: Move ACE_Str_Buf into OS.{h,i} and remove the Str_Buf.h - file. - - * Makefile: Added the "performance-tests" directory to the list of - directories we build when making ACE. - - * ace: Moved the definition of strbuf from Str_Buf.h into OS.h. - Thanks to Irfan for recommending this. - - * ace/Makefile: Added some additional sed magic on the - Svc_Conf_y.cpp file in order to remove the very last warnings - from MSVC++! - -Thu Sep 19 00:00:17 1996 Douglas C. Schmidt - - * ace/Service_Config.cpp (open): Only initialize the logger to use - STDERR if the user hasn't already set the ACE_Log_Msg::flags(). - Thanks to Tom Leith for suggesting this. - - * ace/OS: Removed all traces of the ACE_HAS_INT_SOCKNAME and - ACE_HAS_LENPTR_SOCKOPT since Chris Lahey's new fixes for AIX - obviate the need for these. - - * ace/OS.i: Only #include if the platform has RPC! - Thanks to Chuck Gehr for suggesting - this. - - * ace: Removed all uses of ACE_HAS_SETOWN and replaced them with - explicit tests for F_SETOWN and FASYNC. This is more portable. - Thanks to Chuck Gehr for suggesting - this. - - * ace/OS: Added a new #define called ACE_HAS_SIZET_SOCKET_LEN to - handle platforms where the length parameter of bind(), - connect(), accept(), etc. uses size_t rather than int. This - helps to get ACE working on MVS. Thanks to Chuck Gehr - for suggesting this. - - * ace/OS: Added Chris Lahey's fixes that make the - getprotoby{name,number}_r() functions work for AIX. - - * ace: Changed the ACE_HAS_STRUCT_HOSTENT_DATA to - ACE_HAS_STRUCT_NETDB_DATA because we use a single symbol to - refer to all of the odd netdb.h stuff that AIX has... - - * ace: Changed all uses of: - - iovec *iovp = (iovec *) alloca (total_tuples * sizeof *iovp); - - to - - iovec *iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); - - to keep the AIX compiler from complaining (falsely) about using - iovp before it is initialized. Thanks to Chris Lahey for - reporting this. - - * ace/OS.h: Added Chris Lahey's changes that handle AIX's - _XOPEN_EXTENDED_SOURCE features without polluting all the socket - implementations! - - * ace/Thread.cpp (spawn_n): Removed an unreferenced local variable - so that the Win32 compiler doesn't complain. - - * ace/OS.h: Added the definition for strbuf{} for NT. - - * ace: Removed the msg_hack.h file since it had OSF and DEC - copyright info in it. Replaced this with Antonio Tortorici's - clever use of _KERNEL and the - new ACE_LACKS_SYSV_MSQ_PROTOS. - - * ace/INET_Addr.h: Updated the documentation to indicate more - clearly the use of getservbyname(). - - * ace/OS.cpp (thr_create): Added basic hooks to support the use of - AfxBeginThread on Win32. This is necessary to allow ACE to work - seemlessly with MFC applications. Added an THR_USE_AFX flag - that can be "or'd" in with the other thread flags in calls to - ACE_OS::thr_create(). If this flag is enabled *and* if we are - compiling with ACE_HAS_MFC enabled, then AfxBeginThread() is - called rather than _beginthreadex(). - - * ace/INET_Addr.h (set): Fixed a typo in the documentation for - set() (the order of "host:port" was backwards...). Thanks to - Brad Flood for reporting this. - -Wed Sep 18 00:36:01 1996 Douglas C. Schmidt - - * ace/SOCK_IO.cpp: Added a new recv() method that allows a client - to read from a socket without having to provide a buffer to - read. This method determines how much data is in the socket, - allocates a buffer of this size, reads in the data, and returns - the number of bytes read. The caller is responsible for - deleting the memory. Thanks to Luca Priorelli - for suggesting this. - - * ace/OS.h: Added a special #ifdef for IRIX 6.2 threads so that - THR_BOUND and THR_SCOPE_SYSTEM are different. Thanks to Gonzalo - Diethelm for reporting this. - - * ace/Message_Block.i (msg_class): Added a new "class" of messages - to ACE_Message_Block: MB_USER. This is useful for writing - extensible applications a la Microslush Windows MSG stuff... - -Tue Sep 17 16:38:44 1996 Douglas C. Schmidt - - * ace/Message_Block: Changed the signature of the - ACE_Message_Block constructors (and init()) so that they take - const char * rather than char *. In addition, changed the - definition of one of the constructors (and init()) so that it - takes a size field in addition to the buffer. - - * ace/Message_Block.cpp (size): Fixed a bug in the - ACE_Message_Block::size() method -- we were failing to deal with - allocators and ownership correctly during a resize. Thanks to - Amos Shapira for reporting - this. - - * ace/Naming_Context.cpp: Removed the source of yet another - warning about "inconsistent dll linkage. dllexport assumed." - - * ace/Mem_Map.cpp (map_it): Added a cast to size_t (file_len) - because by this time we know that file_len >= 0. This avoids - yet another warning on WinNT! - - * ace/Reactor.h: Fixed the remaining warnings about - "signed/unsigned mismatch" in Win32 by changing the type of - cur_size_ from size_t to ssize_t. - - * ace/Log_Msg.cpp: Modified the code so that on NT we use - ACE_SPIPE_Msg rather than ACE_FIFO_Send_Msg. Thanks to Luca - Priorelli for suggesting this. - - * ace/OS.i: Implemented the and put[p]msg() wrappers by being - smart about allocating and copying data. - - * ace/TTY_IO.cpp (control): There was one too many end parentheses - on line 192 of TTY_IO.cpp. Thanks to Dave Trumble - for reporting this fix. - - * ace/Log_Msg.cpp (local_host): Fixed the use of program_name_ and - local_host_ so that they strdup() the values passed by the - users, rather than copying pointers. This avoids problems if - the user doesn't pass in static memory. Thanks to Luca - Priorelli for reporting this. Somehow - this change got lost and I've reapplied it... - - * ace/Log_Record.cpp (round_up): Added an extra + 1 to the length - since otherwise the final '\0' gets lots if len is a multiple of - 8. Thanks to Luca Priorelli for reporting - this. Somehow this change got lost and I've reapplied it. - - * ace/Memory_Pool.h: removed #if defined (ACE_HAS_SIGINFO_T) logic - from both handle_signal() definitions (ACE_Shared_Memory_Pool - and ACE_MMAP_Memory_Pool). Thanks to Chris Lahey for fixing - this. - - * ace/OS.h: Moved the define of SA_RESTART below the #include for - signal.h. Otherwise SA_RESTART will always be defined by OS.h, - since SA_RESTART is defined on AIX in signal.h. Thanks to Chris - Lahey for fixing this. - - * ace/OS.h: Added some new #pragmas to suppress harmless warnings - for the MSVC++ compiler. - -Tue Sep 17 13:20:53 1996 Prashant Jain - - * ace/Local_Name_Space_T.cpp: Modified ACE_Local_Name_Space:: - create_manager () so that all three naming scopes use the - database variable defined in Name Options. This allows us to - specify different names for databases for all three naming - contexts. However, it is imporant to note that this can lead to - potential problems where, for example, a process may use the - same name for PROC_LOCAL database as an already existing - NET_LOCAL database. - -Mon Sep 16 01:31:21 1996 Douglas C. Schmidt - - * examples/Logger/simple-server/Logging_Handler: get_handle(), - handle_input(), and handle_close() want the right types - (ACE_HANDLE instead of int). Thanks to Luca Priorelli - for reporting these. - - * examples/Logger/simple-server/Logging_Acceptor.cpp: Fixed a typo - (Log_Mskg.h should be Log_Msg.h of course...). In addition, - changed the use of -1 to ACE_INVALID_HANDLE. Thanks to Luca - Priorelli for reporting these. - - - * ace: Changed all uses of ACE_HAS_ACE_INLINED_OSCALLS to - ACE_HAS_INLINED_OSCALLS. This was a vestiage of a global - replace gone amok. Thanks to Alan Stweart for - reporting this! - - * ace/Log_Msg.cpp (open): Added a check for the OSTREAM flag in - the ACE logger. Thanks to Rick Orr - for noticing this. - - * Released version 4.0.30 for testing. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp - (Dump_Restore): Deleted an extra "return 0;" within a - constructor (duh...). - - * examples/Threads/test_process_{semaphore,mutex}.cpp (main): - Fixed some annoying G++ compiler bug related problems. We need - to use old-style C casts to prevent ambiguous parsing. - - * examples/ASX/Event_Server/Transceiver/transceiver: Rewrote this - example to illustrate how to use the ACE_Connector and - ACE_Svc_Handler. - - * examples/ASX/Event_Server/Transceiver/transceiver: Finally clued - in and realized that it is just not suitable to implement the - event server transceiver with separate threads for input and - output. It is simply to non-portable to get these shut down - gracefully. I think John Ousterhout was right -- threads are - evil! - - * examples/ASX/Event_Server: Merged the Consumer/Supplier - directories into a single Transceiver directory to reflect the - fact that the Consumer and Supplier were completely symmetrical! - - * ace/Module.cpp (close): Don't delete the Tasks in a Module if - there are still threads running in them. Otherwise we'll end up - with a big mess. - -Mon Sep 16 15:50:45 1996 Prashant Jain - - * performance-tests/Misc/test_naming.cpp: Added a new test to the - performance-tests directory called test_naming which simply does - performance testing on Naming Service. The test runs both the - SYNC and the NO-SYNC version of Naming Service. - -Mon Sep 16 15:22:52 1996 Tim H. Harrison - - * ace/Proactor.cpp (initiate): Added a check for - ERROR_NETNAME_DELETED after ReadFile/WriteFile. Now the - initiating handler is immediately dispatched for EOF *and* - closed connections. Thanks to Luca Priorelli - for suggesting this change. - -Sun Sep 15 00:55:59 1996 Douglas C. Schmidt - - * Fixed all uses of ACE_Service_Config::end_event_loop() and - ACE_Service_Config::run_event_loop() to be - ACE_Service_Config::end_reactor_event_loop() and - ACE_Service_Config::run_reactor_event_loop() since we now have - to consider the other event loops (e.g., Proactor and ReactorEx) - and it doesn't seem right to relegate those to 2nd class status. - - * ace: Finally got fed up with all the #ifdefs required to deal - with extended signals and just changed the - ACE_Event_Handler::handle_signal() method to always use the - extended signal interface. Fortunately, we can use default - values to hid this from callers (though you may need to change - your class definitions if you were assuming the - handle_signal(int) interface. - - * ace/Memory_Pool.h: Changed all the methods of the various - Memory_Pool classes to be virtual so that subclasses can - selectively override them. This shouldn't affect performance - since all existing use cases work directly with the "derived" - classes themselves, so there shouldn't be any overhead since the - compiler can use direct calls rather than virtual function - calls. - - * ace/OS.cpp (thr_create): Changed the call to CreateThread() to - _beginthreadex() and the call to ExitThread() to _endthreadex() - for Win32 in order to make ACE threads work correctly with - Win32. Thanks to James Mansion for - recommending this. - - * ace/ACE: Added two new static functions: read_adapter() and - register_stdin_handler(). These are useful when writing code - that must demultiplexing ACE_STDIN on both Win32 and UNIX. This - works around Win32 limitations that don't allow us to select() - on non-sockets (such as ACE_STDIN). - - * examples/ASX/CCM_App/SC_Server.cpp: Updated this - test so that it should now work correctly on Win32, where it - isn't possible to select() on STDIN... - - * ace/Synch_T: Added a new class to ACE called "ACE_Test_and_Set." - As this name implies, this class implements an atomic ``test and - set'' abstraction. This has all sorts of useful implications, - particularly because it is a template that can be paramaterized - by the type of LOCK (e.g., ACE_Null_Mutex, ACE_Thread_Mutex, - etc.) and the type of TYPE (e.g., int, double, sig_atomic_t, - etc.). In addition, because this "is-a" ACE_Event_Handler it - instances can be registered with the Reactor and used to shut - down event hoops gracefully upon receipt of certain signals - (e.g., SIGINT). In fact, I've redone many of the example - applications (e.g., ./examples/Logger/server/server_loggerd.cpp) - to illustrate how this works. - -Sun Sep 15 20:40:17 1996 Tim H. Harrison - - * ace/ReactorEx.cpp (notify): I've redesigned this code. - Previously, ReactorEx was explicitly managing a handle that it - kept in handles_[0]. handles_[0] was used to implement - ReactorEx::notify, which allowed other threads to wake up the - thread waiting in ReactorEx::handle_events. Now ReactorEx has - an Event_Handler (ReactorEx_Notify) that is registered in the - constructor of ReactorEx. This allows us to treat events from - handles_[0] just like every other event (i.e. by dispatching to - handles_[0]->handle_signal). One of the results of this change - is that code in remove_handler() is simplified a bit. - -Sun Sep 15 17:56:52 1996 Prashant Jain - - * ace/Naming_Context.cpp: Added a new flag to the constructor and - open() method of ACE_Naming_Context that allows us to specify - which Memory_Pool to use when creating ACE_Local_Name_Space - (that is choose between ACE_MMap_Memory_Pool and - ACE_Lite_MMap_Memory_Pool). - - * ace/Memory_Pool.cpp: Added a new class called - ACE_Lite_MMap_Memory_Pool which subclasses ACE_MMap_Memory_Pool - and overrides the sync method so that it is a no-op. - - * ace/Local_Name_Space.cpp: Made some siginificant changes in - ACE_Local_Name_Space. Here is what the problem was: - ACE_Name_Space_Map (which is an ACE_Map_Manager) used an - ACE_RW_Process_Mutex for synchronization. However, since the Map - was kept in shared memory and was shared by all the processes, - it got instantiated only by the first process which came - along. Therefore, only the first process got around to creating - and initializing the lock. - - In fixing the problem, we made some other changes to - ACE_Local_Name_Space and ACE_Name_Space_Map. Both classes are - now template classes. ACE_Local_Name_Space needs to be - parameterized with a Memory_Pool (thus giving us a hook to - implement the NO-SYNC option) as well as a LOCK. - ACE_Name_Space_Map needs to be parameterized by an ALLOCATOR - which is created by ACE_Local_Name_Space. Note that the reason - we need to parameterize ACE_Name_Space_Map is so that we can - pass an ACE_Allocator_Adapter (which subclasses from - ACE_Allocator) with every method. It is not possible to pass an - ACE_Allocator since the ::remap() method relies on an - allocator() method defined on the ALLOCATOR that is passed in - (and ACE_Allocator does not define an allocator() method). - - The purpose of the class ACE_Name_Space_Map still remains the - same. It IS_A Map_Manager and provides the hook to set the - allocator to the process specific one. However, none of its - methods acquire any locks. For that reason, the Map_Manager is - parameterized with the Null_Mutex. All synchronization takes - place inside ACE_Local_Name_Space. ACE_Naming_Context - instantiates ACE_Local_Name_Space (depending upon the scope) and - by default parameterizes it with ACE_MMap_Memory_Pool and - ACE_RW_Process_Mutex. - - Also made some more fixes to ACE_Local_Name_Space. In - create_manager(), after we create the allocator, we now check to - see if the backing store was created successfully and if not, we - return -1. - -Sat Sep 14 00:00:31 1996 Douglas C. Schmidt - - * examples/Logger: Renamed the original server directory to - "simple-server" and added a new directory called - "Acceptor-server" which implements the Logger using the - ACE_Acceptor. Note that almost all of the implementation code - disappears! - - * ace/Local_Name_Server_T.cpp: Removed the name_server_map_ array - and replaced it with the ACE_NAME_SERVER_MAP #define, which is - now contained in OS.h. - - * ace/Malloc.h: Added "virtual ... = 0" to the bind() and - trybind() methods of the ACE_Allocator since they should be pure - virtual functions... - - * ace/Synch{_T}: Separated out the wait (ACE_Time_Value *) and - wait (void) methods in order to optimize the call sequence for - the common case when there is no timeout. - - * ace/Synch: Added a new wait(ACE_Thread_Mutex &) method to - ACE_Condition_Thread_Mutex so that we are consistent with the - templated ACE_Condition_Mutex. - - * include/makeinclude: Changed uses of -pic to -PIC because ACE is - now creating more than 2082 symbols. It's probably time to - split up the library... - - * ace/DEV_IO: Moved the ACE_DEV_Addr instance from ACE_DEV_IO into - ACE_DEV so that it will be available for the ACE_DEV_Connector. - This fixes a bug that prevented us from using the ACE_Connector - in conjunction with the ACE_DEV_* classes. Thanks to Karlheinz - for clarifying what had to occur. - -Fri Sep 13 00:16:32 1996 Douglas C. Schmidt - - * ace/OS.h: Changed the order of #includes so that - comes before . This fixes some bugs with the - Siemens SVR4 C++. Thanks to Antonio Tortorici - for this fix - - * ace/ACE.cpp (handle_timed_complete): Added yet another weird - hack to deal with the insanity that is TLI... - - * ace/Synch.cpp: Replaced all uses of ACE_Thread_Mutex_Guard with - ACE_GUARD macros in order to avoid problems when mutexes fail. - - * ace/OS.h: Changed the definition of the ACE_*GUARD macros so - that they are always enabled, even when we turn off ACE_MT_SAFE. - This avoids a nasty semantic problem for components that use - ACE_Process_Mutex. Thanks to Avraham Nash - for reporting this problem. - - * ace/OS: Removed ACE_OS::fork_exec() since its functionality has - been subsumed by ACE_Process. - - * ace/Thread_Manager: Added a new thread_descriptor_i() method - that *doesn't* grab the lock in order to avoid deadlocks. - - * include/makeinclude/platform_sunos5_sunc++.GNU (CXX): had to add - the -pta option so that we achieve template closure in ACE. - - * include/makeinclude: Added -lthread to the - platform_sunos5_sunc++.GNU file. I don't know how this slipped - through the cracks! - - * ace/{DEV_IO,FILE_IO,SOCK_IO,SPIPE_Stream}: Fixed a braino with - alloca where I was failing to multiply by sizeof (iovec). Isn't - C great? ... Thanks to Chuck Gehr for - reporting this. - - * ace/SOCK_Dgram_Mcast.cpp: Added two changes to the ACE multicast - code in order to get it to work on Win32. The first change is - to put the IP_ADD_MEMBERSHIP setsockopt() call *after* the - bind() (in shared_open()). The second is to convert the - ACE_INET_Addr::get_ip_address() from host byte order into - network byte order. Thanks to Todd L. Montgomery - and Steve Weismuller - for helping with this. - - * examples/Threads/test_barrier2.cpp: Incorporated Karlheinz's - new ACE_Barrier test program. - - * ace/Synch.h: Added Karlheinz's ACE_Null_Barrier class. - -Fri Sep 13 00:30:50 1996 Tim H. Harrison - - * tests/{Tokens_Test,Time_Service_Test}.cpp: Updated tests to use - ACE_Process instead of ACE_OS::fork_exec. - - * ace/Process.cpp: Added a new ACE_Process abstraction that is a - Portable encapsulation for creating new processes. It allows - assignment of STDIN, STDOUT, and STDERR of the new process. On - UNIX, ACE_Process uses fork and exec. On Win32, it uses - CreateProcess. Since we can set the standard handles, we can - mimic UNIX pipes on Win32 by building chains of processes. This - class should be used instead ACE_OS::fork_exec. - - * examples/OS/Process/process.cpp (main): Added new example - application to show how to use ACE_Process. - -Thu Sep 12 00:55:25 1996 Douglas C. Schmidt - - * ace/DEV_IO: Added methods get_local_addr() and get_remote_addr() - so that ACE_Connector will work correctly. Thanks to Brad Flood - for reporting this. - - * ace/Thread_Manager.cpp (thr_self): Added a fix to solve the - problem that Win32 GetCurrentThread() returns a pseudo-handle - rather than a real handle. Now, we just look things up using - the thread id rather than the thread handle. Thanks to Luca - Priorelli" for clarifying this. - - * ace/Proactor.cpp (initiate): Fixed an incorrect set of return - values -- they were reversed. Thanks to Brad Flood - for reporting this. - - * ace/OS.i (thr_cmp): Added a check for - !defined(ACE_HAS_SETKIND_NP) to avoid a problem with OSF/1. - Thanks to Martin Schoeckle for - reporting this. - - * examples/IPC_SAP/DEV_SAP: Updated these examples to use the new - ACE_TTY_IO classes. - - * ace: Moved the TTY_IO code from the - examples/IPC_SAP/DEV_SAP/{reader,writer} directories into the - files TTY_IO.{h,cpp} in the main part of ACE and integrated Brad - Flood's changes for Win32. - - * ace/DEV_IO.i: Changed the mapping of send_n() and recv_n() - methods to use write_n() and read_n() respectively so they will - work on NT. Thanks to Brad Flood for - reporting this. - - * ace/Thread_Manager.h: Implemented a non-synchronized version of - the lookup function for the . This version - assumes that the lock is help. We need this to avoid - intra-class method deadlock on systems (such as Solaris) that - lack recursive mutexes. - - * ace/Log_Msg.cpp (ACE_Log_Msg): made sure to initialize - ACE_Log_Msg::thr_handle_ to 0. I'm not sure how this got - changed... Thanks to Luca Priorelli for - reporting this. - - * examples/Reactor/ReactorEx/test_reactorEx.cpp - (register_thread_exit_hook): Changed hthread_t to ACE_hthread_t. - Thanks to Luca Priorelli for reporting - this. - - * apps/Gateway/Gateway/Channel.h: Due to inconsistencies between - the semantics of sockets and TLI with respect to establishing - non-blocking connections it's not a good idea to use TLI in - conjunction with select(). Therefore, I've #if 0'd out the use - of TLI in the Gateway application. - -Wed Sep 11 00:25:38 1996 Douglas C. Schmidt - - * ace/ACE.cpp (handle_timed_complete): Fixed a typo that was - failing to set n = ACE::recv(...). In addition, rethought how - we figure out if a connection completes for the nth time... - - * ace/TLI.cpp (open): Modified the implementation of open() so - that if oflag == 0 it is given an initial value of O_RDWR. - Otherwise we'll get a "badflags" t_errno. - - * ace/Connector.h (connect): Modified connect() so that the - default value of the flags parameter is O_RDWR. This is - necessary to make TLI_Connector::connect() work correctly by - default. - - * examples/Logger: Updated the example logger client and server to - illustrate more clearly how things like the Singleton Reactor - and the ACE_Reactor timer mechanism work. Thanks to Joe - DeAngelis for suggesting this. - - * ace/Pipe: Added a new constructor that makes it possible to - initialize the from the and handles. - Thanks to Stevan Warwick (sjw@aesthetic.com) for suggesting - this. - - * config-irix5.3-sgic++.h: Added #define for ACE_NEEDS_SYSTIME_H. - Thanks to Stevan Warwick (sjw@aesthetic.com) for reporting this. - - * examples/Logger/server/Client_Acceptor: Fixed some stray - mis-uses of int that should have been ACE_HANDLE. Thanks to - Luca Priorelli" for reporting this. - - * ace/{ACE,Log_Msg}.cpp: Added fixes for hexdump(). Thanks to - Luca Priorelli" for supplying these. - - * ace/Reactor.cpp (ACE_Reactor): Fixed a typo: "this->max_handlep1 - ()" should be "this->handler_rep_.max_handlep1 ()". Thanks to - Scott Shupe for reporting this. - - * apps/Orbix-Examples/Event_Comm: Added a bunch of changes to make - this application compile with Orbix 2.0. Thanks to Mike - O'Malley for the fixes. - - * ace/OS.cpp (thr_create): Added yet another fix for the IRIX 6.2 - pthreads implementation. Thanks to Gonzalo Diethelm - for reporting this. - - * ace/config-irix6.2-sgic++.h: Changed ACE_HAS_IRIX53_GETTIMEOFDAY - to ACE_HAS_IRIX_GETTIMEOFDAY because this also seems to be the - case for IRIX 6.2... Thanks to Gonzalo Diethelm - for reporting this. - - * ace/TLI_{Connector,Acceptor}.cpp: Added tests against NULL - pointers to avoid segmentation faults when the TLI - implementation doesn't allocate memory for the udata and opt - fields of netbuf structures. - - * ace/Mem_Map.i (ACE_Mem_Map): Added an accessor so that callers - can get the name of the filename that is being used as the - backing store. Thanks to the James Mansion - for recommending this. - -Tue Sep 10 00:26:52 1996 Douglas C. Schmidt - - * ace/OS.cpp (thr_create): Modified the thr_create() - implementation for Win32 so that if the caller doesn't care - about this value we can avoid a HANDLE leak. Thanks to the - James Mansion for recommending this. - - * ace/Thread.cpp (ACE_Thread): Moved both definitions of spawn_n() - into the Thread.cpp since they have loops and don't benefit from - being inlined. - - * ace/Svc_Handler.h: Moved operator delete() into the public part - of the class in order to make various compilers happy... - - * ace/OS.i (ACE_OS): Fixed the #define that selects the (union - wait *) alternative of wait(). This original was protected by - ACE_LACKS_POSIX_PROTO, but it should be ACE_HAS_UNION_WAIT. - - * performance-tests: Created a new directory that will contain all - of the ACE performance tests. Move the Synch-Benchmarks and the - TTCP tests from ./apps into here, and also moved the - test_mutex.cpp and test_singleton.cpp files from - ./examples/{Threads,Misc}, respectively. Thanks to Tim Harrison - for this suggestion. - - * ace/OS.i (ACE_OS): in WIN32 closesocket() returns 0 if call is - OK, so I changed the return value to be the other way around. - Thanks to Luca Priorelli for reporting - this. - - * ace: Changed the ACE_NO_POSIX_PROTO #define to something more - meaningful: ACE_LACKS_POSIX_PROTO. Thanks to Jonathan Biggar - for suggesting this. - - * ace/config-sunos4-g++.h: Added the #define ACE_NEEDS_SYSTIME_H. - Thanks to Alexandre Karev for reporting - this. - - * ace/OS: Fixed a bunch of pthreads portability problems that - showed up on OSF/1 4.0. Also added support for asctime_r() and - ctime_r() for OSF/1 4.0. Thanks to Dave Trumble - for reporting these fixes. - - * ace/Synch_T.cpp (ACE_TSS_Read_Guard): Removed a stray "new" that - was causing problems for the ACE_NEW macro. Thanks to Dave - Trumble for reporting this. - - * ace/Local_Tokens.h: Fixed a broken use of "friend", which was - missing the keyword "class." Thanks to Dave Trumble - for reporting this. - - * ace/config-osf1-4.0.h: Included Dave Trumble's - config file for OSF/1 4.0. - - * include/makeinclude/platform_osf1_4.0.GNU: Included Dave - Trumble's platform macros file for - OSF/1 4.0. Also renamed platform_osf1.GNU to - platform_osf1_3.2.GNU to deal with the new version. - - * ace/Proactor: There wasn't a way to destroy an - ACE_Overlapped_File object without closing the ACE_HANDLE - attached to it. Therefore, I added a flag that keeps track of - whether we have to delete this or not. Thanks to Amos Shapira - for suggesting this. - - * examples/Threads/test_future[12].cpp: Updated the tests to use - the new call() semantics in order to shut down the Scheduler's - event loop gracefully. - - * ace/Method_Object.cpp: Added a return value to the call() - routine. This can be used to indicate to the caller that it is - necessary to shut down the event loop. - -Mon Sep 9 02:07:08 1996 Douglas C. Schmidt - - * ace/Service_Config.cpp (ACE_Service_Config): #ifdef's out the - registration of signal handling to control reconfiguration on - Win32 since it doesn't really handle signals very well. Thanks - to John Morey for bringing this to my - attention. - - * ace/CORBA_Handler: Replaced CORBA_[123] with ACE_CORBA_[123]. - - * examples/CORBA: Updated the test programs to work portably - across different versions of Orbix. - - * ace/OS: Added a new wrapper for the getcwd() call. - - * examples/Threads/test_recursive_mutex.cpp: Added the use of - ACE_Guard<> to illustrate how these work with the - ACE_Recursive_Thread_Mutex. Thanks to Gonzalo Diethelm - for motivating me to do this. - - * examples/Threads/test_process_{mutex,semaphore}: Added two new - tests to illustrate how the ACE_Process_Mutex and - ACE_Process_Semaphore work, respectively. - - * ace/Synch: Replaced the implementation of ACE_Process_Semaphore - to use SV_Semaphore_Complex on UNIX platforms in order to get - the same semantics for Win32 and for UNIX. Thanks to the James - Mansion for recommending this. - - * ace/OS.h: Added some parens around the ACE BIT* macros so that - the precedence levels would be dealt with correctly and we don't - get any nasty surprises... - - * ace/{Synch_T,Synch}: Modified the implementation of all the - *acquire()/release() methods so they keep track of whether they - own the mutex. Thus, if a code path needs to give up the mutex - within the lifetime of the mutex, and it calls mutex_.release(), - then the destructor will not call it again. Thanks to the James - Mansion for recommending this. - - * ace/{Synch_T,Synch}: Changed the name of the field result_ to - owner_ for the ACE_Thread_Muetx_Guard and ACE_Guard. This is - more representative of the true purpose of this field. - - * ace/Synch: Updated ACE_Thread_Mutex_Guard so that it has the - same interface and semantics of ACE_Guard. Thanks to the - ever-vigilant James Mansion for - noticing this. - - * examples/Log_Msg/test_log_msg.cpp (main): Added a test of the - new ACE_Log_Msg::priority_mask() functionality. - - * ace/Log_Msg.cpp: Added a new method called priority_mask(), - which updates the new thread-specific priority_mask_ data member - with the new mask and returns the old mask. This is useful for - applications written using ACE_Log_Msg. Often, these have log() - calls with low priority such as LM_DEBUG that don't need to be - printed, but for which the logging code should not be removed. - The priority_mask() scheme makes it possible to selective enable - printing of certain priorities. Thanks to Rochi Febo Dommarco - for suggesting this. - - * netsvcs/clients/Logger/indirect_logging.cpp (main): Modified the - test program so that it randomly selects logging priorities that - are powers of two. - - * ace/Log_Priority.h: Renumbered the LM_* logging flags so that - they are all powers of two. This makes it easy to implement a - scheme for selectively printing only certain logging values. - -Sun Sep 8 10:46:40 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Proactor.cpp: Fixed up the error handling in ACE_Proactor so - that it returns an error both in case of "bad errors," as well - as when ACE_WIN32 isn't defined. Thanks to Amos Shapira - for reporting this. - -Sun Sep 8 14:11:08 1996 Tim H. Harrison - - * examples/Reactor/Proactor/README: Updated the test_proactor.cpp - and README files to clarify the relationship between the - Proactor and ReactorEx. This example uses the Proactor as the - main event loop (not the Reactor or ReactorEx). Thus, this - application can only do overlapped I/O and timers - asynchronously. To be able to react to other Win32 events, see - the ACE_ReactorEx and the examples/Reactor/ReactorEx/ test. - Thanks to Amos Shapira for - pointing out the ambiguity. - -Sat Sep 7 14:09:21 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Task.cpp: Enhanced the activate() method so that the caller - can set the priority and the thread group id. Thanks to - Karlheinz for this suggestion. - - * ace/OS.h: Added default values of 0 for the trailing arguments - for the {mutex,sema,cond}_init() methods. - - * examples/Threads/test_mutex.cpp: Added a new test program that - illustrates the difference between implementations of thread - mutex wrappers that use inheritance and dynamic binding vs. the - ACE approach (which doesn't use inheritance and dynamic - binding). The results I got on my SPARCstation 20 model 712 is - included in the source file. Thanks to James Mansion - for motivating me to write this. - - * examples/Misc/test_singleton.cpp: Added a new test program that - illustrates the performance of using the Double-Checked Locking - pattern compared with the standard "Mutex::acquire()/release()" - approach. Thanks to Jim Coplien - for encouraging me to get these performance numbers. - -Tue Sep 3 00:38:47 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/XtReactor: Added minor fixes to XtReactor to fix complaints - about "bool" not being defined and the destructor - ~ACE_XtReactor() has already having a body. Thanks to Andres - Kruse for these fixes. - - * ace/Mem_Map.cpp: Make sure that this->length_ is initialized to - 0 in ACE_Mem_Map::map (). Thanks to James Mansion - for pointing this out. - - * ace/Thread.i (spawn_n): In ACE_Thread::spawn_n the sense of the - following check is wrong: - - for (i = 0; i < n; i++) - // Bail out if error occurs. - if (ACE_OS::thr_create (func, arg, flags, &t_id, 0, priority, - stack == 0 ? 0 : stack[i], - stack_size == 0 ? 0 : stack_size[i]) != 0) - thread_ids[i] = t_id; - else - break; - - The '!=' should be '=='. Thanks to James Mansion - for pointing this out. - - * include/makeinclude/rules.local.GNU (MAKEFILE): Changed the - $WRAPPER_ROOT/include/makeinclude/rules.local.GNU line that - says: - - sed -e "s:$(WRAPPER_ROOT);$$(WRAPPER_ROOT);g" \ - - so that the double dollar is now "\$$" (prefixed the first - dollar sign with a backslash). If not, my shell will try to - execute WRAPPER_ROOT for some reason. With "\$$" it works as it - should. Thanks to Marius Kjeldahl for - reporting this. - - * Released version 4.0.29 for testing. - - * ace/OS.i (thr_getspecific): Added a new case for OSF/1. Thanks - to Martin Schoeckle for - reporting this. - - * ace/Thread_Manager.cpp (spawn_i): Removed an invalid - initialization of ACE_hthread_t = 0, which doesn't work on all - pthreads platforms because pthreads uses a struct in some - implementations. Thanks to Martin Schoeckle - for reporting this. - - * man: Updated all the nroff and html documentation to conform to - the latest version of ACE. - - * netsvcs/lib/{Name_Handler,TS_Server_Handler}.cpp: Fixed - some mistakes in the ACE_TEMPLATES_REQUIRE_SPECIALIZATION - code so that all the services can be linked together without - multiply defined symbols. - - * netsvcs/lib/Name_Handler.cpp: Fixed a spot where we weren't - passing in an lvalue to send_request(). Why this wasn't showing - up earlier I don't know, but GCC caught it! - -Mon Sep 2 00:47:00 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Thread_Manager.cpp: Updated all comparisons of ACE_thread_t - and ACE_hthread_t so that they use the ACE_OS::thr_equal() and - ACE_OS::thr_cmp() methods, respectively. Thanks very much to - Martin Schoeckle for identify - the need for this. - - * ace/OS: Added a new method called thr_cmp() which compares two - ACE_hthread_t values for equality. Unfortunately, we can't just - compare these directly via == because on some platforms they are - implemented as structs. Right now, I'm assuming that if - ACE_HAS_TID_T is enabled that we can compare tid_t's using ==. - If this turns out to be incorrect (e.g., if tid_t's are also - implemented as structs, please let me know). - - * ace/Future: Changed the overloaded result() method to a pair of - get()/set() methods. - - * tests/test_config.h: Fixed a bug in the reset() routine. This - was originally deleting the global static ace_file_stream. - However, this was causing segmentation faults if destructors for - objects local to main() were trying to write to the output file. - Therefore, instead of deleting the ostream, we simply flush() - it! - - In addition, also renamed the various functions in test_config.h - to make sure they don't conflict with any other names by - prefixing them with ace_test_... - - * ace: Added many small fixes for IRIX 6.2. Thanks to Gonzalo - Diethelm for reporting all of these! - - * ace/OS: Added a wrapper for the UNIX syscon() system call. - - * ace/LSOCK.cpp (recv_handle): Rearranged the casts so that things - work correctly on platforms with odd definitions ot struct - iovec. Thanks to Gonzalo Diethelm for - reporting this. - - * ace/Task.cpp (ACE_Task_Exit): Rearranged the order in which we - shut down a Task via the Task_Exit hook so that we first - decrement the count of the threads in the task and *then* call - its close() hook. This guards against cases where the close() - hook does something crazy like "delete this". - - * ace/XtReactor.h: Changed #include "X11/Intrinsic.h" to #include - . Thanks to Gonzalo Diethelm - for suggesting this. - - * ace/Future.cpp (ACE_Future): Added some strategic "consts" to - the assignment operator and copy constructor for ACE_Future and - ACE_Future_Rep. - - * examples/Threads/test_task_three.cpp (main): Revised the test so - that it will shut itself down automatically when all the threads - have finished. - - * examples/Threads/test_task_two.cpp (main): Revised this test so - that it doesn't run forever, but only runs either 1000 times or - as many times as the user specifies on the command line. Thanks - to Gonzalo Diethelm for suggesting this. - - * ace/OS.i: Added an extra #else for thr_sigsetmask(), - thr_min_stack(), and thr_kill() for weirdo platforms that don't - conform to the other threading APIs... - -Sun Sep 1 20:15:28 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * examples/ASX/Message_Queue: Changed the use of read(0, ...) and - write(1, ...) to ACE_OS::read(ACE_STDIN, ...) and - ACE_OS::write(ACE_STDOUT, ...) in buffer_stream.cpp and - bounded_buffer.cpp. - - * ace/OS.i: Fixed the errno mapping of the cond_timedwait() - functions so that they set errno to ETIME rather than EBUSY when - timeouts occur. This is necessary to support Solaris and POSIX - pthreads semantics on Win32. - - * build/SunOS5.5/examples/ASX/Message_Queue/buffer_stream.cpp: - Modified the example somewhat so that it uses the Singleton - thr_mgr() method from ACE_Service_Config. - -Sun Sep 1 17:29:58 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * ace/ACE.cpp (map_errno): Added a new static method to the ACE - class. This method allows us to map troublesome win32 errno - values (e.g. WSAEWOULDBLOCK) to values that standard C strerr - function understands. Thank you Microsoft. - - * ace/Log_Msg.cpp (log): Added a call to ACE::map_errno to the %p - option. Now the ACE logger can begin to map Win32 error values - into meaningful strings. - - * netsvcs/lib/lib.mdp: Added a project file for the netsvcs - library. This builds a dll into ace/netsvcs.dll (not into the - netsvcs/lib directory). This reduces the number of paths needed - in %PATH%. - - * examples/Tokens: Renamed this directory netsvsc/clients/Tokens. - - * ace/ace.mdp: Removed wsock32.lib from the ace files listing. - The problem is that we can't assume where MSDEV is installed. I - added wsock32.lib and advapi32.lib to the - build/settings/link/library_modules line. - - * ace/config-win32-msvc4.0.h: Disabled the "C4355: 'this' : used - in base member initializer list" warning. Thanks to Amos - Shapira for figuring this out for us. Although "this" is - unneeded for win32, it is required for compilers on other - platforms (e.g., AIX). - - * ace/Message_Queue.cpp (dequeue_head_i): Andres Kruse pointed out - that we weren't doing head_->prev (0), when dequeuing! - -Tue Aug 27 21:00:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * include/makeinclude/platform_sunos5_sunc++_4.1.GNU (CXX): Added - Andres Kruse's changes for SunC+ 4.1. - - * ace: Fixed line # 12 of ace/config-sunos4-sun4.1.4.h, - which read: - - "#define ACE_HAS_SVSV_IPC" (ACE_HAS_ ess vee ess vee _IPC) - - to - - "#define ACE_HAS_SYSV_IPC" (ACE_HAS_ ess wye ess vee _IPC) - - Fix another problem: - - #define ACE_LACKS_THREAD_STACK_ADDR (OS.cpp) - - was inconsistently defined in: - - #define ACE_LACKS_THREAD_STACK_ADDRESS (config-aix-4.1.x.h) - - Thanks to Alan Stweart for reporting - this! - -Mon Aug 26 00:34:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Updated all of ACE such that the ACE_GUARD* macros now all take - the name of the ACE_*Guard* that they will use as the scoped - locking object. This is important for several reasons: - - 1. It make it more clear what is going on in the code, rather - than hiding behind the macros! - - 2. It is now possible to have multiple ACE_GUARD* macros in the - same scope by calling each scoped locking object a different - name. This is used in the Local_Tokens.cpp file. - - * ace/Synch.h (ACE_Null_Mutex_Guard): Added the locked() method so - that this signature will conform to the one expected of - ACE_Guard. - - * tests: Added a new file Test_Future.cpp, which tests the new ACE - Futures mechanism using Active Obejcts. Thanks to Andres Kruse - for contributing this test. - - * ace: Added three new files: Future.{h,cpp}, - Method_Object.{h,cpp}, and Activation_Queue.{h,cpp}, which - implement Polymorphic Futures. Thanks to Andres Kruse - for contributing these. - - * ace/Stream.cpp (dump): Replaced LM_INFO with LM_DEBUG. - -Sun Aug 25 21:57:57 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace: Rather than using operator new directly, most of ACE now - uses the ACE_NEW and ACE_NEW_RETURN macros. For instance, - rather than writing: - - if (token_manager_ == 0) - token_manager_ = new ACE_Token_Manager; - - we should write: - - if (token_manager_ == 0) - ACE_NEW_RETURN (token_manager_, ACE_Token_Manager, 0); - - The reason for this is that it makes it much easier to ensure - that all dynamic memory allocation errors are treated uniformly. - I've updated the entire ACE library code tonight to make this - usage consistent whenever possible. - -Sat Aug 24 11:51:38 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Time_Value.h: Simplified various things so that the nasty - macros necessary to build DLLs on Win32 will be simplier. In - addition, I will only #include for those platforms - that don't already do this in (i.e., if - ACE_NEEDS_SYSTIME_H is defined in config.h). Please let me know - if you run across any platforms like this. - - * ace/TLI_{Connector,Acceptor}: Added two additional parameters at - the end of the connect() and accept() methods, respectively, so - that the ACE TLI wrappers can be used with X.25. Thanks to Ajit - Sagar for suggesting this fix. - - * ace: Integrated Eric Newton's XtReactor into the Makefile. If - you want to include this into ACE, make sure to define - ACE_HAS_XT in the config.h file. - - * examples/Misc: Integrated the XtReactor tests. - - * ace/OS.i (getservbyname,gethostby*): Fixed a suble omission -- - any calls to socket function should be wrapped by the - ACE_SOCKCALL_RETURN macro in order to make the errnos work - correctly on Win32. - - * ace/OS: Added support for the getprotoby{name,number} wrappers. - Thanks to Joe DeAngelis for suggesting this. - - * ace/Connector.cpp: Fixed a subtle bug in the ACE_Connector. - The problem centered around the following line in - cleanup_AST(): - - if (this->handler_map_.find (handle, ast) == -1) - - This lookup always failed because the key, the handle of the - service handler, was always -1. The service handler's handle is - not set until a successful connection is made and connector - transfers ownership of the handle to the service handler. The - fix for this is to store the ACE_HANDLE in the ACE_Svc_Tuple - *separately* from the ACE_Svc_Handler. Thanks to Bill Gerecke - for being so persistent in tracking this - down. - - * ace/ARGV.cpp (ACE_ARGV): Added a nifty new constructor that - converts argv-style vectors of strings into a single string - (this is the reverse of what the original constructor does!). - - * ace/ACE: Added a new utility method called strecpy(), which - copies to , returning a pointer to the end of the copied - region (rather than the beginning, a la . - -Thu Aug 22 15:43:58 1996 - - * ace/OS.h: Changed the interface of ACE_OS::fork_exec (char - *const argv[]). (There is no longer a separate const char *path - parameter. Now, argv[0] must be the full path name to the - executable. - - * tests/Time_Service_Test.cpp: Updated the Time Service - one-button test to use the new ACE_OS::fork_exec. I didn't - event break it. - - * tests/Tokens_Test.cpp: Updated the Tokens one-button test to - use the new ACE_OS::fork_exec. It actually works now. - - * tests/test_config.h: Added some more #defines to help simplify - path differences between NT and UNIX. Perhaps these should be - moved into OS.h? - -Thu Aug 22 13:46:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Thread_Manager.cpp (ACE_Thread_Control): The status_ member - in ACE_Thread_Control() was not being initialized! This caused - Purify to complain loudly about invalid memory accesses. I have - added an initialiser to ACE_Thread_Control::ACE_Thread_Control - to set status_ to 0. Thanks to Ross Dargahi - for reporting this. - - * ChangeLog: The ACE configuration files "config-irix*.h" defined - 'ACE_HAS_SIGINFO' to indicate that IRIX supports SVR4 extended - signals. This should be 'ACE_HAS_SIGINFO_T' instead. Thanks to - Craig Johnston for reporting - this. - -Wed Aug 21 21:09:01 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Time_Value.h: Added an extra condition, #if defined - (ACE_BUILD_DLL) so that ACE_Svc_Export evaluates to - something. Previously, it was evaluating to nothing in some - files such as Naming_Context.cpp where we were doing #define - ACE_BUILD_DLL and not #define ACE_BUILD_SVC_DLL. - -Wed Aug 21 00:33:17 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/ACE.cpp (format_hexdump): Fixed a minor bug in - format_hexdump(). If the buffer to dump is a multiple of 16 it - prints an extra blank line. ALso fixed the code to use spaces - rather than tabs and put an extra space between the first 8 HEX - bytes and the second. Thanks to Luca Priorelli - for this code. - - * ace/Log_Msg.h (ACE_HEX_DUMP): Added a new logging macro: - - #define ACE_HEX_DUMP(X) \ - do { int __ace_error = errno; \ - ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \ - ace___->set (__FILE__, __LINE__, 0, errno, ace___->restart (), - ace___->msg_ostream ()); \ ace___->log_hexdump X; \ - } while (0) - - which makes it possible to dump info in HEX. Thanks to Luca - Priorelli for suggesting this. - - * ace/config-win32-msvc4.0.h: Added - - #define _WINSOCKAPI_ - - To avoid multiple inclusions. Thanks to Luca Priorelli - for suggesting this. - - * ace/OS.h: enclosed the #define of WIN32_LEAN_AND_MEAN macro - definition between #ifndef ... #endif to avoid compiler - warnings. Thanks to Luca Priorelli for - suggesting this. - - * ace/SOCK.cpp (win32_fini): Fixed a potential problem in ACE - where any code of the form: - - ACE_DEBUG ((LM_DEBUG, "%d", GetLastError())); - - will reset errno a couple of times before GetLastError() gets - called. So the result is always 0. The fix is to say: - - int ret = GetLastError(); - ACE_DEBUG ((LM_DEBUG, "%d", ret)); - - Thanks to Luca Priorelli for noticing - this. - - * ace/Connector.cpp (create_AST): Was missing a return 0; if we - successfully register a cancellation id. Thanks to William - L. Gerecke for reporting this bug. - - * ace/Module.h: Added a non-existent friend class to get ACE - to stop complaining - - private: - friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning - ~ACE_Module (void); - // *Must* use dynamic allocation. - - Thanks to Eric Newton for the suggestion. - - * ace/Svc_Conf.y (ace_create_service_type): Removed some stray - calls to ACE_ERROR that were left over from earlier - configurations of ACE. Thanks to Gonzalo Diethelm - for reporting this. - - * ace/Log_Msg.cpp (instance): Fixed the #ifdefs so that - ACE_MT_SAFE implies ACE_HAS_THREAD_SPECIFIC_STORAGE. Thanks to - Gonzalo Diethelm for reporting the need for - this. - -Tue Aug 20 13:09:55 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * INET_Addr.cpp, line 84: Irix's C++ is not able to determine - whether to use the set(u_short,ACE_UINT32,int) or the - set(u_short,const char [],int), since on Irix, INADDR_ANY is 0. - I cast the value so that the call would read set(port, - ACE_UINT32(INADDR_ANY)) and everything went fine. Thanks to - Gonzalo Diethelm for reporting this. - - * ace/Synch[_T]: Added a new wait() method that takes a first - parameter which is the mutex used to serialize access to the - condition. This is useful if you want to store the - ACE_Condition object in shared memory (in which case, the use of - a reference to mutex_t doesn't work!). Thanks to Mark Patton - for recommending this approach. - - * ace/Task.h: Added a forward template declaration for - ACE_Task_Exit so that it will compile on HP/UX. Thanks to Tim - Ottinger for pointing this out. - - * ace: changed line 19 of ace/Str_Buf.h from - - #include "OS.h" - - to: - - #include "ace/OS.h" - - Fixed similar problems with OS.h at line 1154 and Dump.h at line - 150. Thanks to Alan Stewart for reporting this. - -Tue Aug 20 20:18:49 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * tests/TSS_Test.cpp (main): Fixed a small typo. I was referencing - the wrong variable but didn't catch it since it was in the #if - !defined (ACE_HAS_THREADS) section. Fixed the typo and also - renamed the variable called big_count to iterations. Thanks to - Tim Ottinger for pointing this out. - -Mon Aug 19 19:25:50 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * {examples,apps,tests}: Removed the use of zerop from these - files, as well... - - * ace/{Acceptor.cpp,Name_Proxy.cpp,Token.i}: Removed the use of - zerop from these files, as well... - - * ace/Connector.cpp (connect_svc_handler): It looks like our good - friend ACE_Time_Value::zerop isn't getting initialized correctly - on Win32. Therefore, I've replaced it with a direct use of - &ACE_Time_Value::zero. - - * ace/Time_Value.cpp: Removed the static pointer variable "zerop" - since there was no guarantee it was getting intialized before it - is used! Instead of using ACE_Time_Value::zerop, use - &ACE_Time_Value::zero. Thanks to William L. Gerecke - for reporting this problem. - - * ace/OS: Added zillions of changes to make ACE compile with OSF/1 - and its DCE threads implementation. Thanks to Martin Schoeckle - for sending these. - - * ace/config-osf1-3.2.h: Updated this file with fixes for OSF/1 by - Martin Schoeckle . - - * ace/ACE.cpp (handle_timed_complete): Added new logic to - ACE::handle_timed_complete() so that it sets errno to - ECONNREFUSED if the connection is refused by the server. When - you issue an asynchronous connect request, to complete it, you - will use complete() with a timeout. However, complete can fail, - and then it will deallocate any resource, (i.e. close down the - socket handle), also for timeout expiration. So, a user - interested in retrying to complete a connection while the - timeout expires will not use complete(); but rather will use - handle_timed_complete(). In fact, using handle_timed_complete() - the user could detect the reason of a failure (by examining - errno) and decide how to proceed. In the old ACE version the - problem was that, if handle_timed_complete() failed because of - the recv() returning 0, errno remained unchanged and so its - value could be quite misleading with respect to the reasons of - the failure. Thanks to Antonio Tortorici - for this fix and the explanation - above. - - * ace/OS.h: Added support for Borland 5.0's uint64. Thanks to - Hani Yakan for suggesting the strategy to - accomplish this. - -Mon Aug 19 15:52:07 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * tests: Added new macros to the test_config.h file in order to - simplify the testing. - -Mon Aug 19 00:21:22 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Re-released version 4.0.28 for testing (will change the version - number after Tim gives me the new Token stuff). - - * {netsvcs/lib,tests/test_config.h}: Removed spurious dependencies - on fstream.h and iostream.h. Thanks to Alan Stewart - for reporting this. - -Sat Aug 17 17:25:49 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Reactor: Removed the use of "inline" in the Reactor.cpp - files because this was causing problems with some - compilers/linkers. Thanks to Gonzalo Diethelm - for recommending this. - - * examples/Misc/test_XtReactor1.cpp: Added a new test of the - XtReactor, courtesy of Eric Newton . - - * ace/config-hpux-10.x.h: According to Eugene K. Plaude - , HP-UX 10.01 supports user-level threads - based on the pthreads interface specified by POSIX in 1003.4a, - Draft 4 (which is basically DCE threads). Therefore, I've - enabled the ACE_HAS_DCETHREADS symbol in the config-hpux-10.x.h - configuration file. If this isn't correct, please let me know. - -Sat Aug 17 02:18:39 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * examples/Tokens/manual/README: Added a new Token example - application. The manual test gives users a text-based - interactive interface to local or remote tokens. This is - extremely useful for manually testing the token server and - setting up deadlock scenarios. See the README file for more - details. - - * examples/Tokens/deadlock/README: Updated the deadlock example - application to test the new deadlock detection algorithm for - readers/writer locks. I also added the use of Token Invariants - to ensure correctness of the mutexes and readers/writer locks. - See the README file for more details. - -Fri Aug 16 22:16:05 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * ace/Token_Manager.cpp: Updated all Token code to use - ACE_OS::last_error instead of errno. - -Fri Aug 16 00:03:24 1996 Douglas C. Schmidt - - * After a long hiatus, released version 4.0.28 for testing. - -Thu Aug 15 21:04:35 1996 Douglas C. Schmidt - - * man: Updated all the ACE manual pages and html pages to reflect - recent changes. - - * netsvcs/lib/Server_Logging_Handler.cpp: Fixed an omitted - "ACE_BUILD_SVC_DLL" that was causing linker errors on NT. - Thanks to Luca Priorelli for reporting - this. - - * examples/Log_Msg/test_log_msg.cpp: Added a test for the new - log_hexdump() function. - - * ace/Log_Msg.cpp (log_hexdump): Integrated the log_hexdump() code - into the ACE Log_Msg abstraction. Thanks to Luca Priorelli - for fixing this and for Todd Montgomery - for originally supplying the code. - - * ace/Signal.cpp (ACE_Sig_Handlers): Moved the #endif /* HPUX */ - down to the end of the file so that it works correctly on HPUX. - Thanks to Eric C. Newton for report this bug. - - * ace/OS.i: Updated the behavior of thr_join() so that it will do - a ::CloseHandle after getting the exit status. Thanks to the - ever vigilant James Mansion - (mansionj@lonnds.ml.com) for noticing this. - - * examples: Finally added Tim and Prashant's examles/OS directory, - which contains a test that illustrates a "portable" means to - spawn processes on NT and UNIX. - - * ace/Malloc_T.cpp (next): Added an overloaded next() method that - returns the name that is bound to the pointer in the - Malloc_Iterator. This is useful in order to differentiate - entries in the pool based on their name. Thanks to Kim Gillies - for suggesting this. - - * ace: Changed all uses of thread_t, thread_key_t, mutex_t, - rwlock_t, sema_t, cond_t, etc. to ACE_* in order to avoid - polluting the name space. Also switched from using macros to - using typedefs whereever possible. Thanks to Gonzalo Diethelm - for recommending this. - - * ace/System_Time.cpp: Added template specializations for - templates used in the ACE_System_Time class. This should solve - some nasty undefined templates problems with GCC... Thanks to - Joseph DeAngelis for pointing out the - problem. - - * ace/Name_Space.cpp: Fixed the file Name_Space.cpp as follows: - - // Name_Space.cpp - #define ACE_BUILD_DLL - //#include "Name_Space.h" - #include "ace/Name_Space.h" - - Thanks to Eugene K. Plaude for fixing this! - - * ace/config-hpux-10.x.h: Added support for TLI since according to - Eugene K. Plaude this should work. If not, - please let me know. - -Wed Aug 14 21:29:46 1996 Douglas C. Schmidt - - * examples/Reactor/Logger: rearranged the Logger directory so it - would be more clear what the client and server programs did and - how to run them. - - * examples: Merged the contents of the SVR4 examples directory - into the IPC_SAP/SOCK_SAP directory so that we can remove the - SVR4 directory altogether (it wasn't contributing much...). - - * examples: Removed the vestigal Win32 tests since ACE now runs on - Win32 and we don't need a separate test directory. - - * netsvcs/client: Renamed the file remaining file in this - directory to logging_app.cpp since I moved the other file to the - examples/Reactor/Logger directory. - - * ace/Reactor.cpp (check_handles): If eh->get_handle() returns -1 - the select() code will index the [-1] element of an array. To - fix this, I've added a check of the value returned from - eh->get_handle(). Thanks to Eric C. Newton for - reporting this. - - * ace/OS.i (sema_wait): Fixed a subtle bug in the Pthreads - wrappers that surfaced on the SGI IRIX 6.2 port. There was some - code that looked like this: - - pthread_cleanup_push(); - int result = 0; - ... - pthread_cleanup_pop(); - return result; - - However, on Irix 6.2, the push introduces a new scope that is - closed by the pop, so result goes out of scope before returning. - Thanks to Gonzalo Diethelm for pointing this - out. - - * ace/OS.h: Changed the definition of pthread_mutex_t and - pthread_cond_t to mutex_t and cond_t to be consistent with other - usage in ACE. Thanks to Gonzalo Diethelm for - pointing this out. - -Wed Aug 14 01:25:47 1996 - - * ace/SPIPE_Acceptor.cpp: Added the PIPE_TYPE_MESSAGE | - PIPE_READMODE_MESSAGE flags to CreateNamedPipe pipe options so - that data is received in messages rather than as a stream. This - is consistent with the behavior of the SPIPE_Connector. When we - have time, we need to extend the interface so that stream pipes - are also supported, as well. - - * SPIPE_Acceptor.cpp: Made the ACE SPIPE in and out buffer sizes - 10 k. The previous size was just 512 bytes. This larger buffer - size helps decrease flow control. - -Tue Aug 13 23:21:46 1996 - - * examples/Connection/blocking: Updated the blocking SPIPE example - application to use a pool of threads in the proactor to handle - incoming client messages. The SPIPE-acceptor example - illustrates how named pipes are used on NT. Once the server - establishes a connection to a single client, it spawns a thread - pool to handle incoming requests via the proactor event - loop. That is, a separate thread from the pool is used to - process each message sent by a client. The size of the thread - pool can be specified by command-line arguments. This example - leverages the queueing performed by the NT kernel to trivially - implement a thread pool architecture. See - examples/Connection/blocking/README for more details. - - * Service_Config.h: Added a parameter (with a default - size of 0) to the proactor accessor method. This allows - applications to specify the size of the thread pool that can - block on Proactor::handle_events. - -Tue Aug 13 02:30:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Task: Added a new public interface called thr_count(). This - returns a count of the number of threads running within a Task. - If the value returned is 0, then the Task is a Passive Object. - If the value returns is > 0 the task is an Active Object, and - the value is a count of the number of threads running within the - object at this snapshot of time. - - * ace/OS: I implemented Karlheinz's suggested optimizations for - the ACE condition variable implementation under Win32. Here's - the deal... The original implementation used an internal_mutex - to ensure that access to the count of the number of waiters was - serialized between the waiter and signaler threads. The new - implementation is designed so that only the waiter threads - access the waiter count. Therefore, we can utilize the - external_mutex to serialize access to this, thus eliminating the - need for the internal_mutex. However, this means that code - *must* be written using the standard condition variable idiom, - i.e., - - int resources () - { - external_mutex.acquire (); - - // ... - - cond.signal (); - external_mutex.release (); - } - - Rather than like this: - - int resources () - { - external_mutex.acquire (); - - // ... - - external_mutex.release (); - cond.signal (); - } - - which is what some thread programming books recommend as an - optimization. However, you should be careful not to use this - form since it can lead to "lost wakeup" bugs caused by the fact - that the implementation of ACE_OS::cond_signal will test if the - waiter count > 0 *without holding any locks*!!! - - Fortunately, ensuring this shouldn't be a problem since most ACE - code uses the following idiom: - - int resources () - { - ACE_Guard mon (external_mutex); - - // ... - - cond.signal (); - // Destructor of mon releases external_mutex. - } - - Clearly, there are subtle tradeoffs between performance and - programmability here... - - * ace/Synch: Updated all of the ACE semaphore wrappers to take the - new "max" value as their final constructor argument. - - * ace/OS: Added a new default argument to the end of the - sema_init() method. This allows us to specify the maximum value - of the semaphore (this is only important on NT). Currently, it - is hard-coded to 0x7fffffff in uses. The new approach makes it - possible to set the max to a different value. Thanks to - Karlheinz for requesting this. - - * ace/Message_Queue.cpp: Added an implementation of the dump(). - Thanks Karlheinz. - - * ace/Synch.cpp: Added an implementation of the dump() method. - Thanks Karlheinz. - - * ace: Updated all usage of ACE_Thread_Mutex_Guard so that it now - uses the ACE_GUARD* macros correctly. Thanks to Chris Eich - for pointing out the - need for this. - - * examples/Threads: Added Karlheinz's new test_barrier2.cpp test - program that makes sure that the ACE_Message_Queues are working - correctly when accessed by multiple threads. - - * netsvcs/lib/Server_Logging_Handler.cpp (handle_logging_record): - Fixed an errant use of ACE_Guard, which wasn't properly checking - of the Guard acquired the lock. Thanks to Chris Eich - for pointing this out. - - * ace/OS.h (ACE_GUARD): Added default "ace_mon" implementations of - type ACE_Null_Mutex even in cases where there's no threading - defined so that code accessing ace_mon.release() and - ace_mon.acquire() will compile correctly. - - * apps/Gateway/Gateway/Channel.h: Fixed the code so - that we don't try to use TLI if the platform doesn't support it - (instead, we'll use sockets). Thanks to Marius Kjeldahl - for reporting this problem. - - * examples/ASX/Event_Server/{Supplier,Consumer}: Fixed the code so - that we don't try to use TLI if the platform doesn't support it - (instead, we'll use sockets). Thanks to Marius Kjeldahl - for reporting this problem. - -Mon Aug 12 14:50:47 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * examples/Misc: Added Eric Newton's test case for - his XtReactor integration. - - * ace: Included Eric Newton's code that integrates - ACE with the Xt event loop. This still needs a bit of work - (e.g., making it thread-safe and incorporating signal support), so - I haven't added it to the Makefile yet. If someone can take the - time to fix it up, I'll be happy to integrate it into ACE. - - * ace/Message_Queue.cpp (dequeue_head): Fixed the mother of all - bugs in the ACE_Message_Queue implementation... The problem was - that I was trying to be too clever by optimizing the number of - Condition::signal() calls by only calling signal() when the - queue changed state from empty to non-empty (or full to - non-full). It turns out that this optimization works fine for a - single producer/consumer case, but fails when there are multiple - consumers. The fix was just to call signal() every time. This - should be ok because the underlying Condition variable - implementation will perform the optimization in the correct - fashion. Thanks to the omniscient Karlheinz for detecting this - problem and reporting it. - -Sun Aug 11 15:52:07 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * tests: Made minor changes to test_config.h, SPIPE_Test.cpp, and - UPIPE_SAP_Test.cpp to accomodate the change made to SPIPE_Addr. - SPIPE_Addr now accepts a string of the form [host:]port and then - creates the rendezvous point. Originally, SPIPE_Addr would - assume that the string being passed in was the actual rendezvous - point. - -Sat Aug 10 18:41:21 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * netsvcs/lib/Logger.cpp (init): Added a new service to netsvcs - called ACE_Logger which allows us to control the output of all - the services. The ACE_Logger service can be invoked with - different flags (such as STDERR|OSTREAM) which in turn sets - ACE_Log_Msg to direct the output of all the services to the - appropriate stream(s). Note that if a service needs to stay - unaffected from ACE_Logger, it should be invoked before - ACE_Logger gets invoked. Also note that like other services in - netsvcs, ACE_Logger can also be dynamically linked in. - -Sat Aug 10 14:23:07 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added Steve Huston's patches to get ACE - to compile on UnixWare 2.01. This mostly involved changes to - the internal types used by the socket wrappers. Thanks Steve! - -Fri Aug 9 01:34:19 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * examples/ASX/UPIPE_Event_Server/Options.cpp (print_results): - Added a typedef to avoid problems if a platform doesn't support - prusage_t. Thanks to Marius Kjeldahl for - reporting this. - - * include/makeinclude/platform_linux_pthread.GNU. The line that - say: - - LIBS = -lpthreads -lstdc++ - - was modified to say: - - LIBS += -lpthreads -lstdc++ - - Thanks to Marius Kjeldahl for reporting - this. - -Fri Aug 9 18:26:16 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp (reset): Fixed a subtle (yet very - annoying bug). In switching contexts a test program would hang - after a certain number of switches. Having gone through the code - thoroughly and with the aid of Purify, the bug was narrowed down - to an extraneous delete taking place in - ACE_Name_Space::reset(). Essentially, we do not need to delete - ACE_Name_Space_Map::instance() which is actually the - SHARED_MALLOC since it gets deleted in the destructor of - ACE_Local_Name_Space. - -Thu Aug 8 17:55:20 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/SPIPE_Addr.cpp (set): Implemented - ACE_SPIPE_Addr::string_to_addr(). Modified ACE_SPIPE_Addr::set() - using code provided by Brad Flood to create the rendezvous - point. Note that originally ACE_SPIPE_Addr constructor and set() - would take the actual rendezvous point but now they rely on - being passed a string which is of the format "[host]:port" - (where host is optional). The rendezvous point is then created - by extracting from the string the hostname (if any) and also - using the port number as the unique pipe name. Note that this - approach works on both UNIX and Win32. - -Mon Aug 5 20:15:59 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/OS.i (last_error): Fixed a typo. In the set and get methods - last_error(), there should be a check for "if defined - (ACE_WIN32)" and not "if defined (ACE_HAS_WIN32)" - -Wed Aug 7 00:21:42 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Log_Msg.h: Replaced all uses of errno *following calls to - ACE_Log_Msg::instance()* so that we first cache errno in a local - variable called __ace_errno. We need to do this because - ACE_Log_Msg::instance() can reset errno == 0. Thanks to - Tim for pointing this out. - -Mon Aug 5 20:15:59 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/OS.i (last_error): Fixed a typo. In the set and get methods - last_error(), there should be a check for - "if defined (ACE_WIN32)" and not "if defined (ACE_HAS_WIN32)" - -Sat Aug 3 14:52:32 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * examples/Win32/win32_client.cpp: Changed ACE_GUARD_RETURN to - ACE_GUARD in the method Errno::flags since the return type is - void. - - * examples/Connection/non_blocking/CPP-connector.cpp: Made some - minor changes to get things compiling on Win32. The call to - handle_close now takes zero as the first argument (which is - never used). Also the arguments to ACE_SERVER_ADDRESS are now - swapped (hostname followed by port number) to be consistent with - the change made to the macro. Thanks to Brad Flood for - suggesting these changes. - - * examples/Connection/non_blocking/CPP-acceptor.cpp: Made minor - changes to some of the methods to make sure all control paths - return a value. Also changed the default port number to - ACE_DEFAULT_SERVER_PORT_STR to match what the connector tries to - connect to. Thanks to Brad Flood for - suggesting these changes. - - * ace/OS.h (ACE_SERVER_ADDRESS): Modified the macro - ACE_SERVER_ADDRESS so that it creates a string of a server - address with a "host:port" format. Previously the order was - reversed. Thanks to Brad Flood for suggesting this change. - -Sat Aug 3 00:07:26 1996 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu) - - * ace: Fixed problems with recursive tracing of ACE_TRACE by - commenting out certain constructors in IPC_SAP.cpp, - FIFO_Send_Msg.cpp, FIFO_Send.cpp, and FIFO.cpp. Thanks to - Karlheinz for finding and reporting these fixes. - -Fri Aug 2 22:19:05 1996 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu) - - * ace/ACE.cpp (format_hexdump): Fixed an infamous "off by one" bug - that was causing this to fail on Win32 (time to switch to Java? ;-)). - Thanks to lucapri@mbox.vol.it for finding this. - -Thu Aug 1 14:08:30 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/CORBA_Handler.cpp (activate_service): Fixed a typo caused by - an omitted ENDTRY. Thanks to Garrett Conaty - for noticing this. - -Mon Jul 29 10:03:16 1996 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu) - - * examples/Win32/win32_client.cpp: There was a typo in one of the - ACE_GUARD macros. Thanks to Tim Ottinger - for pointing this out. - -Mon Jul 22 12:41:22 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Local_Name_Space.cpp (reset): Added a new method - ACE_Name_Space_Map::reset() which deletes the instance of - ACE_Name_Space_Map. This forces instance() to create a new - instance using a new context file in the case of the context - having changed. I make use of this in - ACE_Local_Name_Space::create_manager(). - -Fri Jul 19 12:28:07 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/System_Time.cpp (get_master_system_time): Modified - ACE_System_Time::get_master_system_time() so that if an entry - for the time is not found in shared memory (indicating that no - Clerk is running), then we should just return the local time of - the host. - - * netsvcs/lib/TS_Clerk_Handler.cpp (update_time): Modified - ACE_TS_Clerk_Handler::update_time() so that if the Clerk is not - connected to any servers, is sets the delta time to zero - allowing clients to then use the local time of the host. - -Wed Jul 17 22:19:53 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/UPIPE_Connector.cpp (connect): Added an #ifdef around the - check of ACE_OS::isastream (handle) in - ACE_UPIPE_Connector::connect() since the call is not supported - on NT. - -Thu Jul 11 22:22:57 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * ace/OS.i (kill): Modified ACE_OS::kill so that it works on NT. - It takes a process ID, creates a handle for the associated - process, and calls TerminateProcess on the handle. This is - actually pretty dangerous according to the NT documentation. - Can majorly confuse DLLs. Does the same old thing on UNIX. - - * ace/OS.cpp (fork_exec): Added a fork_exec operation to ACE_OS. - This works on UNIX and NT. It combines the forking and exec'ing - into one call. This has to be combined since Win32 - CreateProcess only starts applications from scratch (unlike UNIX - fork). - - * examples/OS/test_os.cpp: Added a new example application to test - the new ACE_OS::fork_exec and ACE_OS::kill operations. - -Tue Jul 9 13:04:14 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Service_Manager.cpp (reconfigure_services): To improve - portability on Win32 and UNIX I replaced the use of a signal to - trigger reconfiguration to instead make a call to the new - ACE_service_Config::reconfig_occurred() method. This should - actually perform the same as the original approach, since all - the signal handler ever did was to set this flag! Thanks to - Karlheinz for pointing out the need for this. - - * ace/Service_Config.h: Added a new static public method called - reconfig_occurred(sig_atomic_t) to set if a reconfiguration - should take place the next time through the event loop. - -Mon Jul 8 14:20:01 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Time_Value.h: Added "ACE_Export" before all global operators - to allow them to be dll-exportable on NT. - -Mon Jul 8 13:12:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/{Message_Block,DEV_IO,SPIPE_Stream}.cpp: Fixed several more - cases of delete array that should have been delete [] array. - Thanks to Tom Leith for pointing out some of these. I can hear - the ghost of James Mansion coming closer... ;-) - - * INSTALL: Added tips on how to install ACE on a Win32 platform - that lacks a network card. - - * ChangeLog: Split ChangeLog-96 into two files (ChangeLog-96a and - ChangeLog-96b) since it was becoming quite large! Thanks to - Chris Lahey for pointing this out. - - * ace/Stream.cpp: Was missing a "return 0;" at the end of the - close() method. Thanks to Tom Leith for - finding this. - -Mon Jul 8 14:20:01 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Time_Value.h: Added "ACE_Export" before all global operators - to allow them to be exportable from Win32 DLLs. - -Sun Jul 7 10:34:48 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.27 for testing. - - * config-sunos5.5*.h: Removed all uses of ACE_HAS_SVR4_SIGNAL_T in - the config files since Solaris 2.5 has consistent signal and - sigaction types (at last!). - - * Installed and compiled ACE successfully with the new SunC++ 4.1 - compiler on Solaris 2.5. However, there seems to be major - problems with the interaction of the SunC++ exception handling - runtime system and the Solaris multi-threading mechanisms. This - is causing the ACE multi-threading tests to bomb with - segmentation faults inside of the _ex_unwind() library function. - If you read the /opt/SUNWspro_3.1/READMEs/c++ file you'll see - why this problem is occurring (apparently due to bugs in the - Solaris libC.so.5 C++ runtime library). - - There seem to be two fixes for this problem: - - 1. Add the following to *all* threads (including main): - - #include - - void *my_thread_entry_point (void *) { - set_terminate (abort); - set_unexpected (abort); - - // Do real work... - } - - This is the approach recommended by the README file in - SUNWspro_3.1. However, it is *clearly* a horrible hack and - very non-portable (therefore, I deem it worthy of Microsoft - ;-)). - - 2. Compile ACE (and applications?) with -noex in order to avoid - this bug. This is clearly not desirable either since it - precludes the use of exception handling with C++ and threads - on Solaris... - - Since ACE doesn't use exceptions internally on Solaris option 2 - seems like the best approach for the time being. When Sun gets - it act together and releases a bug-free library and C++ - software, I'll fix ACE accordingly. - - * tests: Integrated the latest of Prashant's "one-button" tests - into the main ACE release. These will run on both UNIX and - Win32 now. - - * ace/UPIPE_Stream.cpp (recv): Changed the semantics of the - ACE_UPIPE_Stream::recv (char *, size_t, ACE_Time_Value *) - method. Currently, the behavior is to block until *exactly* N - bytes are read. However, this is incorrect for 2 reasons: - - 1. It makes it hard to write a server that doesn't know - precisely how big the messages are from the client. In - particular, if the receiver doesn't know how big the buffer - messages are from the client it will block indefinitely! - - 2. It is redundant with respect to the - ACE_UPIPE_Stream::recv_n(), which also blocks until all N - bytes are received. - - Therefore, I've made the new UPIPE_Stream::recv() method block - only until it's received the first block of data that allows it - to fulfill its size request, or anything that is smaller than - that size. - - * ace/OS.cpp (thr_create): Since POSIX pthreads doesn't provide an - equivalent of THR_NEW_LWP in the pthreads_attr_* functions, I've - added an emulation that should work for Solaris. Basically, if - THR_NEW_LWP is set when ACE_OS::thr_create() is called, we use - the ACE_OS::thr_{get,set}concurrency methods to increase the - number of LWPs by one. - - * ace/Message_Block: Changed the default high water mark for an - ACE_Message_Queue from 4K to 16K. This is useful since it - allows applications to buffer more information before blocking. - - * ace/Log_Msg: Added a pair of operations that allow applications - to acquire and release the synchronization lock used internally - by the ACE_Log_Msg implementation. This allows applications to - hold the lock atomically over a number of calls to ACE_Log_Msg, - which is useful for composite operations like the following: - - // Make sure the following operations are run atomically! - ACE_LOG_MSG->acquire (); - - while (c != '!') - { - if (c_stream.recv (&c, 1) == -1) - ACE_DEBUG ((LM_DEBUG, - "(%t) buffer recv from supplier failed\n")); - else - ACE_DEBUG ((LM_DEBUG, "%c", c)); - } - - ACE_LOG_MSG->release (); - - * examples/IPC_SAP/UPIPE_SAP: Revised all of the UPIPE_Stream - tests to make them more consistent and correct with respect to - the new changes. - - * ace/Stream.cpp (link_i): There was a bug in the link_i() logic - because we weren't also linking the other stream back to our - stream. - - * ace/UPIPE_{Acceptor,Connector}: Modified both of these classes - so that they don't - - * ace/Stream.cpp (close): Modified close() so that it now detects - "double-closes" and ignores anything but the first one. - - * ace/UPIPE_Stream: Updated this class so that it no longer - inherits from ACE_Stream (previously ACE_UPIPE_Stream had - inherited from *both* ACE_Stream *and* ACE_SPIPE). There are - several reasons we shouldn't inherit from ACE_Stream: - - 1. There are operations on ACE_Stream that don't make any sense - on ACE_UPIPE_Stream (e.g., link(), unlink()). - - 2. ACE_Stream isn't really designed to be subclassed (e.g., - it doesn't have virtual methods). - - 3. Not inheriting makes the interface cleaner, e.g., we now use - send() and recv() methods consistently, rather than - send_msg()/put() and recv_msg()/get(). - - 4. The return values from the I/O methods are now more - consistent than they were before. - - * ace/Message_Block: The signature for the copy() method was - incorrect. It should have been copy (const char *, .....) - rather than copy (char *, ....). - - * examples/IPC_SAP/UPIPE_SAP: Together with Prashant, fixed up the - ACE_UPIPE_Stream tests so they more cleverly - (and correctly) utilize and illustrate various ACE concurrency - features. - -Sat Jul 6 18:28:55 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Stream.cpp: Fixed some obscure bugs with Stream::unlink() - and Stream::link(). These bugs were triggered by the - ACE_UPIPE_Stream tests. We need to make sure that we don't have - race conditions in the order in which ACE_UPIPE_Stream close() - down. Prashant and I fixed this problem by (1) adding a lock to - unlink() and link() and then creating unlink_i() and link_i() to - perform the work and (2) being more careful about trying to - unlink our side and the other side of a linked Stream. - - * ace/config-linux.h: According to Istvan Buki - , Linux now supports the - send_msg()/recv_msg() system calls, as well as UNIX domain - sockets. Therefore, I've updated the config-linux*.h file to - remove the existing restrictions. If this turns out not to be - the case, please let me know. - - * ace/LSOCK.cpp (recv_handle): Added a change to some casts to - make ACE compile with Linux. Thanks to Istvan Buki - for reporting this. - - * apps/Gateway/Gateway/File_Parser.cpp (readword): Removed - yet another use of: - - for (int x; foo(x); ) - { - } - - x = 10; - - Which is now a deprecated feature of C++. - - * include/makeinclude: added the -lw library to the GNU G++ - platform*.GNU file in order to pick up the wide-character string - functions. - -Fri Jul 5 18:11:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Re-released version 4.0.26 for testing. - - * ace/CORBA_Handler.cpp (activate_service): Revised the code to - use the Orbix macros for TRY/CATCH rather than try/catch. We - need this to make legacy code work! Thanks to Irfan for - pointing this out. - - * ace/Thread_Manager: Fixed a bunch of typos that grelims snuck - in. Thanks to Jack Erickson for reporting this. - - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp: Fixed some typos that - were causing problems on AIX. Thanks to Greg Wilson - for reporting this. - - * examples/Reactor/Misc/test_time_value.cpp (operator<<): Added a - "const" in front of the ACE_Time_Value & in order to make things - work correctly on AIX. Thanks to Greg Wilson - for reporting this. - - * ace/SPIPE_Acceptor: Fixed some missing "returns" that had sprung - up in the #else arm of the SPIPE code. Thanks to Greg Wilson - for reporting this. - - * apps/Synch-Benchmarks/Benchmark: Fixed a typo that was causing - the application to fail to compile on AIX. Thanks to Greg - Wilson for reporting this. - - * Changed all uses of virtual int init (int, char **) to virtual - int init (int, char *[]) to workaround bugs with MSVC++... - - * ace/OS.h: for POSIX pthreads, changed the definition of the - THR_SCOPE_SYSTEM macro so that it has the same value as - THR_BOUND. If this isn't done, then things don't quite work - right when we implement the ACE_OS::thr_create() wrapper. - -Thu Jul 4 13:17:35 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Thread_Manager: Added a new method called thr_self() that - *does* return a real handle that can be used by - WaitForMultipleObjects, etc. Note that this new approach - cleverly caches this handle in TSS in order to cut down on - search time. Thanks to Jesper for pointing this technique out. - - * ace/OS.i (thr_self): After receiving comments from Jesper, undid - the earlier change today that was returning a duplicated handle - for ACE_OS::thr_self(). It turns out this is a bad idea because - the handle most typically doesn't get released, which leads to - handle leaks. - - * ace/Thread_Manager: Added a new private method called - check_state(). This method extends existing code to be smarter - about how we check to see what "state" (e.g., suspended, - cancelled, etc.) a thread is in. The original code - (which was a macro called ACE_CHECK_STATE) didn't behave - correctly if we asked about the state of a thread that was - different from ourselves! - - * ace/Thread: Modified the public interface to - ACE_Thread::spawn_n() so that it now takes a void *stack[] and - size_t stack_size[]. If stack != 0 it is assumed to be an array - of n pointers to the base of the stacks to use for the threads - being spawned. Likewise, if stack_size != 0 it is assumed to be - an array of n values indicating how big each of the - corresponding stacks are. This is useful since now we can spawn - a group of threads each of which has its own custom stack and/or - stack size. Thanks to Ashish Singhai - for pointing out the need for - this. - - * apps/Synch-Benchmarks: Updated the Synch benchmarks so that most - of them work again. The trick is *not* to use ACE_OS::sleep () - (which doesn't seem to be thread-friendly...) but instead to use - ACE_OS::select() as a timer. - - * man: updated the manual pages and html pages to reflect all the - recent changes. - - * ace/Malloc_T.cpp (open): Added a check to make sure that if - init_acquire() fails we don't let this go by undetected... - Thanks to Karlheinz for pointing out the need for this. - - * ace/OS.i (thr_getconcurrency): Fixed a subtle bug with the - ACE_OS::thr_getconcurrency() function. I was mistakenly using - ACE_ADAPT_RETVAL for the result of ::thr_getconcurrency(), which - is clearly wrong! - - * ace/Service_Record.cpp (remove): Fixed a typo that was causing - the removals of Modules in a dynamically configured Stream to go - into infinite loops. - - * ace/OS.i (thr_self): Modified the ACE_OS::thr_self (hthread_t &) - function so that it will return a *duplicate* of the current - thread's pseudo-handle returned by GetCurrentThread(). This - change is necessary because the pseudo-handle returned by - GetCurrentThread() is pretty useless (e.g., it can't be used by - any other thread to "wait" for this thread to exit). This new - behavior is used in the examples/Reactor/ReactorEx test program. - - * ace/Service_Config.cpp: I'd forgotten to assign the - delete_svc_rep_ flag when dynamically allocating the svc_rep_. - This is fixed now. - -Wed Jul 3 20:09:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Added a new subdirectory called $WRAPPER_ROOT/tests that - contains the first phase of the ACE regression tests. - - * ace/Reactor.cpp (check_handles): Fixed an earlier fix with the - ACE_Reactor::wait_for_multiple_events() method. The earlier fix - had changed the exit condition of do/while loop to be - - while (nfound == -1 && this->handle_error () >= 0); - - However, this was causing signal handling to break... - Therefore, the right fix is to keep the exit test as: - - while (nfound == -1 && this->handle_error () > 0); - - and instead fix handle_errors() so that it returns 1 if we're - able to fix a bad handle... Thanks to Prashant and Irfan for - tracking this down. - - * ace/OS: Finally broken down and added a new pair of ACE_OS - functions called "last_error()". These basically call - SetLastError/GetLastError on Win32 or they set/get errno on - UNIX. - - * ace/config-linux.h: Fixed an annoying problem with - struct msghdr in Linux by adding - - #define msg_accrights msg_control - #define msg_accrightslen msg_controllen - - to the config-linux*.h files. Thanks to Michael R"uger - for suggesting this. - - * ace/SOCK_IO.cpp (recv): Fixed a "bug" where - ACE_SOCK_IO::{send,recv} allocates with: - - iovec *iovp = new iovec[total_tuples]; - - But deletes with: - - delete iovp; - - Thanks to the ever vigilant James Mansion - (mansionj@lonnds.ml.com) for noticing this. - -Tue Jul 2 23:48:38 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * ace/Service_Config.h: Added ReactorEx to the singleton resources - that the Service_Configurator holds. This includes accessors, - destruction hooks, and event loop methods. - - * examples/Reactor/ReactorEx/README: There is a new example - application for the ReactorEx. Please check out - examples/Reactor/ReactorEx/README for details. - -Tue Jul 2 18:43:12 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * Released version 4.0.25 for testing. - - * examples/ASX/Message_Queue/priority_buffer.cpp: Added a new test - program that illustrates the use of the new Message_Queue - priority scheme. - - * ace/Message_Queue: Added new support for prioritized message - enqueueing into the ACE_Message_Queue. Now, when an application - uses ACE_Message_Queue::enqueue() the new Message_Block is - inserted into the queue according to its msg_priority(). When - dequeue_head() is used the item retrieved will then be the item - of "highest priority" (priorities range from 0 to MAX_LONG). - Note that the semantics of the existing enqueue methods, - enqueue_head() and enqueue_tail(), remain unchanged. - - * ace/Message_Block: Changed the type of the priority in a message - block to u_long rather than u_char. This gives us a much - greater range of priorities! - -Mon Jul 1 01:12:08 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Thread.h: Changed a couple of mistyped comments. Thanks - to the eagle eyes of Andres Kruse for noticing this. - - * ace/OS: added more comprehensive support for UNICODE to - both the Win32 and UNIX OS adaptation layer. This new - support automagically selects the appropriate implementation - (i.e., either char * or wchar_t *) for the string comparison - routines (which are used in places like ACE_Mem_Map). - - * ace/Service_Config: Split up the ACE_Service_Config::close() - method into two parts: close_svcs() and close_singletons(). - This makes it possible to remove svc.conf services without - destroying Singletons like the Proactor, Reactor, etc. Thanks - to Karlheinz for recommending this. - - * ace/Service_Config: Added flags for remembering who created the - Singleton Proactor, Allocator, Thread_Manager, and - Service_Repository (in addition to the Reactor, which I did last - week). If we created these Singletons, then we are responsible - for freeing them up. Thanks to Karlheinz for pointing out the - need for this. - -Mon Jul 1 16:26:27 1996 Prashant Jain (pjain@merengue.cs.wustl.edu) - - * ace/Connector.cpp: Added two new arguments to connect () namely, - "int flags" and "int perms". The Connector can now pass these - two arguments to its template arguments (e.g., SOCK_Connector, - SPIPE_Connector, etc.) when calling their connect() method. A - consequence of doing this was that we had to modify the - signature of the connect() method on some of the IPC_SAP classes - (e.g., TLI_Connector, SOCK_Connector, and LSOCK_Connector). - Note that these changes may break some existing code, - particularly with TLI_Connector (see below), so beware... - - * ace/TLI_Connector.cpp: Changed the order of the connect() - arguments to be more consistent with the rest of the IPC_SAP - classes used with the Connector. Please note that existing - examples which use TLI_Connector may need to be modified as a - result of this change. - - * ace/OS.i (open): Modified ACE_OS::open() to use the argument - perms to turn the flag FILE_FLAG_OVERLAPPED on and off for - Win32. - - * ace/Service_Config.cpp (end_proactor_event_loop): Added new - methods run_proactor_event_loop() and end_proactor_event_loop() - which call handle_events on the Proactor. - -Mon Jul 1 02:15:34 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu) - - * ace/Proactor.h: Made ACE_Proactor an ACE_Event_Handler so that - it can be registered with the ACE_ReactorEx. ACE_Proactor - associates the same global HANDLE with every overlapped I/O - operation. This global HANDLE can be registered with the - ACE_ReactorEx. Therefore, by using the - ACE_Proactor::handle_signal method as an adapter, we can now - dispatch overlapped I/O and other "waitable" objects from a one - ACE_ReactorEx running in a single thread of control. Thanks to - James Mansion for setting us on the - right path! - - * ace/ReactorEx.h: Added a ACE_ReactorEx to encapsulate Win32 - WaitForMultipleObjects(). The ACE_ReactorEx handle_events() - method calls ACE_Event_Handler::handle_signal when the - corresponding Win32 HANDLE becomes signaled. This gives us a - uniform abstraction for dispatching all "waitable" objects on - Win32, including events related to I/O completion ports and - events related to other forms of NT synchronization (such as - mutexes, semaphores, threads, etc.). - - * ace/Timer_Queue.h (calculate_timeout): Added a calculate_timeout - method to ACE_Timer_Queue. Also removed the same method from - ACE_Reactor. This is so Reactor, ReactorEx, and Proactor can - all reuse the calculations required by the Timer_Queue without - duplicating code. diff --git a/ACE/ChangeLogs/ChangeLog-97a b/ACE/ChangeLogs/ChangeLog-97a deleted file mode 100644 index 161d4746d2d..00000000000 --- a/ACE/ChangeLogs/ChangeLog-97a +++ /dev/null @@ -1,9203 +0,0 @@ -Thu Jul 3 20:36:19 1997 Nanbor Wang - - * performance-tests/Misc/childbirth_time.cpp: Changed the - parameter type of "Profiler" from int to size_t to make g++ - happy. - -Thu Jul 03 20:03:18 1997 David L. Levine - - * ace/Reactor.cpp (remove_handler): added ACE_UNUSED_ARG - when NSIG != 0. - -Wed Jul 2 23:41:43 1997 Nanbor Wang - - * performance-tests/Misc/childbirth_time.cpp: Fixed some typos. - -Wed Jul 2 23:13:10 1997 Douglas C. Schmidt - - * performance-tests/Misc/childbirth_time.cpp: Revised the - code to use ACE programming style. - -Wed Jul 02 23:02:24 1997 Douglas C. Schmidt - - * ACE version 4.2.15, released Wed Jul 02 23:02:24 1997. - -Wed Jul 2 22:23:49 1997 Douglas C. Schmidt - - * ace/Service_Config.cpp: Used the new ACE_LACKS_UNIX_SIGNALS - macro to reduce the #ifdef complexity somewhat. - - * ace/config-{chorus,win32-common}.h: Added #define for - ACE_LACKS_UNIX_SIGNALS. - - * ace/OS.h: If a platform (e.g., Chorus) doesn't support signals - then #define NSIG 0. - - * ace/Reactor.cpp: Chorus does not support signals. Make the call - to register/remove_handler(sig_set, evnet_handler) return - succesfully so that some of the examples and test programs do - not need to be changed. Thanks to Wei Chiang for this. - - * ace/config-chorus.h: Added a new macro for - ACE_LACKS_NAMED_POSIX_SEM to handle Chorus. Thanks to Wei - Chiang for this. - - * ace/OS.i: Define macros ACE_PTHREAD_CLEANUP_* so that the - related code does not need to be surrounded with #ifdefs. - Thanks to Wei Chiang for this. - - * ace/OS.i: Chorus does not support named semaphores. The code - that to do with names in sema_init() and sema_destory() is - therefore disabled. Thanks to Wei Chiang for this. - - * ace/config-chorus.h: Added support for ACE_LACKS_PTHREAD_CLEANUP - and ACE_HAS_POSIX_SEM to the Chorus port. Thanks to Wei Chiang - for this. - -Wed Jul 2 17:37:09 1997 Douglas C. Schmidt - - * ace/Hash_Map_Manager.cpp: Clarified the behavior of close_i() a - bit more. - -Wed Jul 2 09:54:36 1997 Douglas C. Schmidt - - * ace/Hash_Map_Manager.cpp: Fixed a couple more size_t->u_long - conversions for ACE_Hash_Map_Manager::hash(). This didn't harm - anything but it's good to be consistent. - -Wed Jul 2 16:46:59 1997 Nanbor Wang - - * performance-tests/Misc/childbirth_time.cpp: Added this program - to measure child process/thread creation mechanisms on various - platforms. Native thread creation test only supports Solaris - and NT threads so far. But you can still use ACE_OS::thr_create - method on your platform if not supported. - -Wed Jul 2 15:59:53 1997 Darrell Brunsch - - * ace/High_Res_Timer.cpp: Created a function get_registry_scale_factor - that finds out the speed of the processor using the NT registry (in - megahertz). This means that ACE_High_Res_Timers should automatically - get the correct scale factor. - - * tests/Timer_Queue_Test.cpp: Removed the call to - get_env_global_scale_factor(). - -Wed Jul 2 15:39:33 1997 Tim H. Harrison - - * ace/Process.cpp: Modified spawn to check for the NO_EXEC - flag after forking on UNIX. If it's set, spawn returns the - child pid without exec'ing. Updated the NT version to - always return the child pid on success. - -Wed Jul 02 10:55:23 1997 David L. Levine - - * tests/SPIPE_Test.cpp,UPIPE_SAP_Test.cpp: tweaked the static - functions a bit to avoid warnings about unused statics on VxWorks. - -Wed Jul 02 00:16:07 1997 Douglas C. Schmidt - - * ACE version 4.2.14, released Wed Jul 02 00:16:07 1997. - -Tue Jul 1 22:49:58 1997 Douglas C. Schmidt - - * ace/Strategies_T.h: Changed the return value of all the hash() - methods to be u_long. - - * tests/Map_Manager_Test.cpp (hash): Changed the return value of - all the hash() methods to be u_long. - - * ace/SString.cpp: Changed the return value of all the hash() - methods to be u_long. - - * ace/Hash_Map_Manager: Changed the return value of hash() - to return a u_long in order to (1) be consistent with - the return value of hash_pjw() and (2) give the maximal - range for the hash function. Thanks to Marina Spivak - for reporting this. - -Tue Jul 01 14:47:22 1997 David L. Levine - - * ace/High_Res_Timer.{h,i} (gettime): use gettime () static function - to wrap all calls to ACE_OS::gethrtime (). On ACE_WIN32, if the - global scale factor has not been set, then gettime () uses - ACE_OS::gettimeofday () instead of ACE_OS::gethrtime (), because - gettimeofday doesn't need the scale factor. - -Mon Jun 30 17:28:53 1997 Douglas C. Schmidt - - * Makefile (RELEASE_FILES): Removed the rpc++ directory from the - main release since this doesn't seem to be widely used and the - GPL copyleft confuses people. - -Mon Jun 30 15:08:04 1997 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: added -lgcc - to LDFLAGS. - -Mon Jun 30 12:00:02 1997 Douglas C. Schmidt - - * ACE version 4.2.13, released Mon Jun 30 12:00:02 1997. - -Sat Jun 28 08:27:27 1997 David L. Levine - - * ace/OS.h: added definitions of ACE_SHLIB_HANDLE and - ACE_DEFAULT_SHLIB_MODE on platforms other than - ACE_HAS_SVR4_DYNAMIC_LINKING and hpux. - - * ace/OS.i: split definitions of ACE_OS::cond_* member - functions into two: for ACE_WIN32/VXWORKS and all others. - That allows us to break the circular dependencies between - those functions and the ACE_OS::sema_* member functions. - - * ace/Svc_Conf_y.cpp: commented out unused args and wrapped - assignments in "if" conditionals with parenthesis to avoid - g++ warnings. - - * ace/{ACE,INET_Addr,OS}.cpp (VxWorks only): added ACE_UNUSED_ARG - calls. - - * ace/Parse_Node.cpp (ACE_Stream_Node,ACE_Dynamic_Node,ACE_Dummy_Node - constructors): reordered initializers to match declaration order. - - * ace/Profile_Timer.h (elapsed_time): commented out unused arg "et". - - * ace/Read_Buffer.cpp (rec_read): initialized local variable "c" to - make sure that it is always defined before use. - - * ace/SPIPE_Acceptor.cpp (remove): don't declare local variable - "result" if ! ACE_HAS_STREAM_PIPES, because it's not used in - that case. - - * ace/config-vxworks5.x-g++.h: added ACE_LACKS_IOSTREAM_FX, - ACE_LACKS_LINEBUFFERED_STREAMBUF, and ACE_LACKS_SIGNED_CHAR. - - * ace/IOStream_T.h (ipfx): comment out unused variable "need". - - * platform_vxworks5.2_g++.GNU: added -Wall now that the ACE library - builds cleanly with it. - - * platform_vxworks5.x_g{++,hs}.GNU: renamed 5.x instead of 5.2. - - * netsvcs/lib/Token_Handler.cpp: reordered initializers to match - declaration order. - - * tests/SV_Shared_Memory_Test.cpp: moved template specializations - so that they're not done on platforms that don't support SV IPC. - - * examples/IOStream/client/iostream_client.cpp, - examples/IOStream/server/iostream_server.cpp: - use ACE_HAS_STRING_CLASS rather than __GNUC__ to determine whether - the platform has a String class. - -Fri Jun 27 13:10:46 1997 Douglas C. Schmidt - - * ace: Changed the name of config-vxworks5.2-g++.h to - config-vxworks5.x-g++.h since it works with 5.2 and 5.3. - - * examples/Mem_Map/IO-tests/IO_Test.cpp: Fixed some bugs that were - preventing this from running correctly. - -Fri Jun 27 13:37:37 1997 Steve Huston - - * ace/Svc_Conf.y: Finished the sanity checks started below. - -Fri Jun 27 11:55:13 1997 Darrell Brunsch - - * ace/Timer_Queue_T.cpp: added a check for an empty queue in expire - -Fri Jun 27 07:53:58 1997 David L. Levine - - * tests/Message_Queue_Notifications_Test.cpp (handle_output, - handle_exception,main): added ACE_UNUSED_ARG (fd) to avoid - compilation warnings about unused arguments. - -Fri Jun 27 01:08:54 1997 Douglas C. Schmidt - - * ace/Connector.cpp (create_AST): Replaced the gratuitous #ifdef - for ACE_WIN32 and EXCEPT_MASK with the new CONNECT_MASK. This - is much cleaner! - - * ace/Event_Handler.h: Added a new CONNECT_MASK that defaults to - READ_MASK | WRITE_MASK (with | EXCEPT_MASK thrown in for Win32). - Thanks to Irfan for this suggestion. - -Thu Jun 26 19:53:11 1997 Nanbor Wang - - * ace/OS.i (strtok_r): Added check on a null string so we won't go - past the end of a string. - - * performance-tests/Misc/context_switch_time.cpp (main): Added - get_env_gloval_scale_factor() at the very beginning so that high - resolution timer can return correct time in millisecond. - -Thu Jun 26 15:29:55 1997 Darrell Brunsch - - * tests/Timer_Queue_Test.cpp: Changed the random scheduling to use - past times instead of future time. This should fix some unusual - behavior of this test. Thanks to Gonzalo A. Diethelm - for reporting this. - -Thu Jun 26 12:38:16 1997 Douglas C. Schmidt - - * ACE version 4.2.12, released Thu Jun 26 12:38:16 1997. - -Thu Jun 26 01:11:10 1997 Douglas C. Schmidt - - * ace/Svc_Conf.y: Added some sanity checks to make sure we don't - segfault when things go wrong during the svc.conf file parsing. - Thanks to Steve Huston for this suggestion. - -Thu Jun 26 08:36:37 1997 David L. Levine - - * Makefile: fix UPTODATE check (for release target) by not - running it in a sub-shell. Also, added ACE-lessons.html - to RELEASE_FILES. - - * performance-tests/Misc/context_switch_time.cpp: use same priority - values on Win32 platforms as on Solaris, because thread priority - increases with increasing priority values on both of those platforms. - -Thu Jun 26 01:34:46 1997 Nanbor Wang - - * performance-tests/Misc/misc.{mak,mdp}: Added makefile for NT. - - * ace/{FILE,DEV}.{h,i}: Added the disable(int signum) function to - prevent NT from disabling a FILE/DEV using socket calls. - -Wed Jun 25 12:59:00 1997 - - * ace/Synch_T.h (ACE_SYNCH_PROCESS_MUTEX and - ACE_SYNCH_NULL_MUTEX): Added new template typedef to the list. - - * tests/Message_Queue_Notifications_Test.cpp: New test for - demonstrating notification qualities of Message_Queue. - - * ace/Strategies.h: Added accessors to these classes to make them - more usable. - -Wed Jun 25 10:47:34 1997 Steve Huston - - * ace/Parse_Node.cpp: Insure that ACE_Object_Node::symbol(void) - returns 0 if the underlying shared library can't be loaded. - - * ace/OS.h: Added a new type, ACE_SHLIB_HANDLE to allow dynamic - linking using correct types on all platforms that support it. - Also added a const ACE_SHLIB_DEFAULT_MODE for the 'mode' argument - when doing a dlopen-like operation. - Moved the ACE_OSCALL_* macros to this file from OS.i - - * ace/OS.i: Moved ACE_OSCALL_* macros out of here and into OS.h. - Added support for dlopen/close/sym/error on HP-UX. Note - the - Service_Configurator tests do not run yet on HP - I'm working on - that. - - * ace/Service_Record.{h, i, cpp}: Use new ACE_SHLIB_HANDLE type for - dynamic loading operations. - - * ace/Parse_Node.{h, cpp}: Use new ACE_SHLIB_HANDLE where appropriate. - - * ace/Strategies_T.cpp: Use new ACE_SHLIB_HANDLE type. - -Wed Jun 25 02:36:05 1997 Nanbor Wang - - * ace/OS.i (gmtime_r): Modified the implementation of gmtime_r - when OS doesn't provide one. Notice that the implementation - only simulate the semantic and is not thread-safe. - - * ace/OS.h: Moved definition of ACE_SHLIB_HANDLE typedef and - ACE_DEFAULT_SHLIB_MODE global variable for Win32 to where it - belongs. - - * ace/OS.i: Changed the return type of dlopen() when ACE_HAS_UNICODE to - ACE_SHLIB_HANDLE. - - * ace/OS.{h,i}: Moved ACE_OSCALL and ACE_OSCALL_RETURN for WIN32 - from OS.i to OS.h. - -Wed Jun 25 01:23:58 1997 Nanbor Wang - - * ace/OS.i (strtok_r): Modified the implementation when OS does - not provide reentrant strtok_r so that our imp. comforms with - the semantic of strtok_r (). - -Wed Jun 25 00:37:56 1997 Douglas C. Schmidt - - * ACE version 4.2.11, released Wed Jun 25 00:37:56 1997. - -Tue Jun 24 21:30:53 1997 David L. Levine - - * ace/Svc_Conf_y.cpp: commented out unused args and wrapped - assignments in "if" conditionals with parenthesis to avoid - g++ warnings. - -Tue Jun 24 18:15:46 1997 Nanbor Wang - - * ace/Reactor.cpp (wait_for_multiple_events): Modified the way to - manipulate timeout value so that we can differentiate when there - are timeout events to be handle from no timer and we want to - wait indefinitely. - -Tue Jun 24 16:52:22 1997 David L. Levine - - * ace/OS.h: reverted ACE_hrtime_t to unsigned __int64 with VC++. - This might break something, but we need to know what. - -Tue Jun 24 16:38:52 1997 Darrell Brunsch - - * Added Visual C++ 5.0 specific workspace (.dsw) and project (.dsp) - files to both the ace and tests subdirectory. ACE.DSW in the root - directory contains all the project files, so a batch build should - be able to build all the project files. - -Tue Jun 24 14:27:47 1997 Darrell Brunsch - - * ace/Timer_{Hash,Heap,List,Wheel}_T.cpp: Changed cancel (type..) - to call cancellation() even if there are no timers to cancel. - This causes the correct behavior of calling handle_close () - during expire when handle_timeout() returns -1. Thanks to - Hamutal Yanay for - pointing this out. - - * tests/Timer_Queue_Test.cpp: Updated to correctly test this. - -Tue Jun 24 13:02:51 1997 David L. Levine - - * ace/SString.h (ACE_SString ctor): changed "allocator" to "alloc". - Thanks to Brian Mendel for reporting this. - -Tue Jun 24 12:58:28 1997 James C Hu - - * include/makeinclude/platform_irix6.4*: Shuts up useless warnings - about multiply defined template instances. - -Tue Jun 24 12:50:52 1997 Douglas C. Schmidt - - * ACE version 4.2.10, released Tue Jun 24 12:50:52 1997. - -Tue Jun 24 00:44:30 1997 Nanbor Wang - - * ace/SPIPE.{h,i}: Added the disable(int signum) function to - prevent NT from disabling an SPIPE using socket calls. - -Mon Jun 23 22:14:39 1997 Douglas C. Schmidt - - * ace/Svc_Conf*: Changed the name of the YYSTYPE field - ACE_Static_Node_ to static_node_ to be consistent with the other - fields. - -Mon Jun 23 18:28:55 1997 David L. Levine - - * ace/ACE.cpp: added auto_basic_array_ptr specialization. - - * ace/Service_Config.cpp, tests/Future_Test.cpp, - examples/Threads/future[12].cpp: added auto_basic_ptr - specializations. - - * include/makeinclude/platform_vxworks5.2_g++.GNU: - reworked to supported different targets, instead of only PowerPC. - -Mon Jun 23 16:06:35 1997 James C. Hu - - * ace/OS.i: Moved definition of sema_* methods to follow cond_* - methods to remove compiler warnings on SGI. - -Mon Jun 23 09:42:08 1997 Darrell Brunsch - - * tests/Timer_Queue_Test.cpp: added testing for cancellation - during expire (when of handle_timeout() in an event handler - returning -1). - -Mon Jun 23 09:18:39 1997 David L. Levine - - * Makefile: added up-to-date check for "make release" from - /project/adaptive/ACE_wrappers. Also, "make release" now - adds release entry to latest ChangeLog. - - * ace/Makefile: build shared library before static library. - This appears to fix a problem with Sun C++ 4.{1,2} possibly - related to its template instantiation scheme. If the - static library is built first, then .shobj/Reactor.so - and .shobj/Timer_Hash.so (and possibly others) fail to - build due to ACE_TimeValue::normalize () "relocations remain - against allocatable but non-writable sections". - Thanks to Steve Huston and - Satoshi Ueno for reporting this, and - to Satoshi for verifying the fix. - - * ace/ACE.cpp (terminate_process): removed used of - ACE_OSCALL_RETURN macro because its defined in OS.i, and so - not available if inlining is disabled. - - * ace/Auto_Ptr.{h,i}: made "p_" protected instead of private - so that it can be accessed with the new class arrangement. - Also, made the auto_array_ptr operator-> const. - - * ace/Sched_Params.cpp (previous_priority, VxWorks only): - removed ACE_UNUSED_ARG (policy) because policy is used in - this function. - - * netsvcs/lib/TS_Clerk_Handler.cpp (parse_args): wrapped TCHAR - argument to sizeof in parenthesis. - -Mon Jun 23 09:12:04 1997 Nanbor Wang - - * ace/Auto_Ptr.i (auto_array_ptr): Fixed a typo. - -Mon Jun 23 08:03:46 1997 Darrell Brunsch - - * ace/Auto_Ptr.h: changed inheritance of auto_basic_array_ptr in - auto_array_ptr to include the template parameter X. - - * ace/IOStream_T.i: removed default parameter in the definition - of ACE_Streambut_T::recv_n() and ACE_SOCK_Dgram_SC::recv_n() - -Mon Jun 23 01:13:15 1997 - - * ace/OS.cpp (fork_exec): Fixed the usage of ACE_WIDE_STRING. - - * test_registry_iterator.cpp (main): Fixed the usage of - ACE_WIDE_STRING. - - * netsvcs/lib/TS_Clerk_Handler.cpp (parse_args): Fixed the usage - of ACE_WIDE_STRING. - - * ace/Auto_Ptr.h: Added support for basic types by seperating the - auto_ptr classes into two. One that requires the -> operator - support and the other that does not. The former inherits from - the latter. - - * ace/{FILE,DEV,SPIPE}_Addr.h: Added support for multibyte and - wide character addr_to_string and string_to_addr functionality. - - * ace/Connector.cpp && ace/Acceptor.cpp (info): Fixed sizeof bug. - - * examples/Connection/blocking/SPIPE: Added UNICODE support for - this example. - - * ace/OS.h: Added new macro ACE_MULTIBYTE_STRING. - - * ace/ACE.cpp (terminate_process): Fixed unused args errors. - -Sun Jun 22 09:58:36 1997 Douglas C. Schmidt - - * Released version 4.2.9 for testing. - - * ace/Log_Msg.cpp (open): Changed the use of ACE_LOG_MSG-> within - the open() method to use this-> in order to avoid deadlocks. - Thanks to Per Andersson for reporting this. - - * ace/ACE.cpp: Changed the use of __SVR4 and __unix to sparc and - unix to work better with various UNIX environments. Thanks to - Michael R. MacFaden for these changes. - - * ace/Handle_Set.cpp (count_bits): Added special code to handle - the case where fdmask is typedef'd as a long rather than an int. - Thanks to Eric Newton and James Johnson for - reporting this. - - * ace/IOStream.h: Changed the name of QuotedString to - ACE_Quoted_String to be consistent with the ACE naming scheme. - Thanks to James Johnson for suggesting this. - - * ace/IOStream_T.i: Added this new file to split off the inlined - code from the header file. - - * ace/ACE.cpp (terminate_process): Remove the - ACE_UNUSED_ARG(signum) from terminate_process(). Thanks to Wei - Chiang for reporting this. - -Sun Jun 22 17:19:18 1997 David L. Levine - - * examples/Threads/process_manager.cpp (main): replaced call to - kill with terminate. - -Sat Jun 21 10:48:34 1997 Douglas C. Schmidt - - * examples/Reactor/FIFO: Added a new example that illustrates - how the Reactor and the FIFO wrappers work together. Thanks - to Johannes Gutleber for sending - this. - - * tests/Time_Service_Test.cpp (main): Replaced the kill() call - with the terminate() call since kill() isn't portable across - platforms. - - * ace/Process: The kill() method on this class was being used - incorrectly. I've created a new method called terminate() that - terminates the process. - - * ace/Process_Manager: Renamed the kill() method to terminate() - and updated the implementation to use the new - ACE::terminate_process() call. - - * ace/ACE: Moved the incorrect Win32 and Chorus implementations of - ACE_OS::kill() and put them in a new static method called - ACE::terminate_process(). - - * ace/ACE: Changed the name of the is_process_active() to the - more concise process_active(). - - * ace/OS.i: Added an implementation of ACE_OS::kill() for Chorus. - Note that this doesn't behave as UNIX does -- it kills the - process id rather than sending a signal! Thanks to Wei Chiang - for these fixes. - - * examples/Reactor/Misc/notification.cpp: Added patches to run - this example under Chorus. Thanks to Wei Chiang - for these fixes. - - * ace/Connector.cpp (create_AST): Changed the order of some - instructions in Connector::create_AST method to make it more - safer to use in multi-thread environment. Thank to Paul Han - for reporting the problem and the fix. - - * ace/Connector.cpp (create_AST): Make sure to pass in the "mask" - when calling remove_handler() so that we get the right set of - bits removed from the Reactor. - - * tests/Reactor_Timer_Test.cpp (class Time_Handler): Changed int - to long to avoid type conversion problems on 64 bit SGI. Thanks - to Fred LaBar for reporting this. - - * examples/Reactor/FIFO: Added a test program to illustrate the - interaction of the ACE Reactor with the FIFO IPC mechanism. - Thanks to Johannes Gutleber for this - test. - - * examples/Reactor/Misc/pingpong.cpp: Added support for Chorus. - Thanks to Wei Chiang for this. - - * ace: Added a number of minor changes to signal assignment - code so that ACE will compile with Tandem NonStop. Thanks - to Jan Perman for these fixes. - - * ace/config-tandem.h: Added a new config file for the - Tandem NonStop-UX 4.2MP platform. Thanks to Jan Perman - for contributing this. - - * include/makeinclude/platform_tandem.GNU: Added a new platform - file for the Tandem NonStop-UX 4.2MP platform. Thanks to - Jan Perman for contributing this. - - * ace/config-unixware-2.1.2-g++.h: Added a new config file for - UNIXWARE 2.1.2. Thanks to Ganesh Pai (gpai@voicetek.com) for - contributing this. - - * include/makeinclude/platform_unixware_g++.GNU: Updated the - UNIXWARE platform config file to work for version 2.1.2. Thanks - to Ganesh Pai (gpai@voicetek.com) for contributing this. - - * ace/Handle_Set.cpp (count_bits): Added another 0xff mask to - prevent problems with sign extension on machines with 32 bit - ints and 64 bit longs. Thanks to James Johnson for reporting - this. - - * ace/OS.h: Updated all of the ACE_DEFAULT* macros in OS.h so that - they can be overridden by #defines in the config.h file. Thanks - to Chuck Gehr for suggesting this. - -Thu Jun 19 22:20:20 1997 David L. Levine - - * ace/OS.h (VxWorks/g++ only): added horrible hack to work around - mismatch of memcmp, etc., prototypes in . - - * ace/OS.i: reordered many function definitions to avoid use - before definition. Building with g++ 2.7.2 on VxWorks 5.3.1 - revealed them. - - * ace/config-vxworks5.2-g++.h: removed ACE_HAS_STRING_CLASS and - ACE_HAS_GNU_CSTRING_H, because those aren't distributed with - Tornado 1.0.1. - -Thu Jun 19 15:31:53 1997 Darrell Brunsch - - * ace/Timer_Wheel_T.cpp: Fixed problem with expire () not - expiring timers with a timeout of the current time. This was - causing problems with Timer_Queue_Test when high profile - timers were disabled (such as Windows NT when the - environment variable ACE_SCALE_FACTOR was undefined) - -Wed Jun 18 19:43:35 1997 David L. Levine - - * ace/Signal.cpp: 'removed "const" from #define of - ACE_MAX_SIGNAL_HANDLERS because it broke Irix 6.2 build. Thanks - to Gonzalo A. Diethelm for reporting this. - - * examples/Threads/task_four.cpp (Invoker_Task::svc): fixed typo, - n_tasks instead of ntasks. - -Wed Jun 18 11:25:14 1997 Nanbor Wang - - * examples/Threads/{task_four,token}.cpp: Changed the use of - cerr/cout to ACE_DEBUG macro. Thanks to Chuck Gehr - for pointing these out. - -Tue Jun 17 15:11:09 1997 David L. Levine - - * ace/config-sunos5.5-sunc++-4.x.h, - include/makeinclude/platform_sunos5_sunc++.GNU: support enabling of - exception handling via "exceptions=1" make flag. Exception handling - does seem to work with Sun C++ 4.2, even on MP machines, if patch - 104631-02 "C++ 4.2: Jumbo Patch for C++ 4.2 on Solaris SPARC" - is applied. Please beware that enabling of exception handling can - adversely affect peformance, even if the program doesn't use it. - So, we haven't enabled it by default. Thanks to Chris Cleeland - for suggesting not to enable it by default. - - * ace/IOStream.h: added #include of "ace/config.h" so that - ACE_LACKS_ACE_IOSTREAM can be checked. Thanks to Ganesh Pai - for reporting this problem. - - * ace/ACE.cpp (get_handle): use /dev/udp instead of /dev/ip on - SVR4 machines because it has other read permission by default - (on Solaris 2.x). - - * ace/ACE.cpp (get_ip_interfaces): use auto_array_ptr instead of - auto_ptr so that the array gets deleted properly, and zero it - out to avoid unitialized memory read reports from Purify. - - * ace/Timer_Hash_T.cpp (cancel): added "[]" to delete of timer_ids - array. Purify rules. - - * Timer_Queue_Test.cppc (test_performance): added "[]" to delete of - times array. Purify rules. - -Tue Jun 17 15:31:01 1997 Steve Huston - - * ace/ACE.cpp: Fixed get_ip_interfaces (and count_interfaces) to - work properly on HP-UX (and probably other similar UNIXes). Needed - to work with non-IP interfaces present, and fixed to copy the - IP address without the fudge factor being applied. - -Tue Jun 17 14:02:01 1997 Nanbor Wang - - * ace/{Free_List.h,Free_List.cpp,Timer_Queue_T.h}: Added #include - "ace/Synch_T.h" to Free_List.h and removed related inclusion - from Free_List.cpp and Timer_Queue_T.h. Thanks to - Jack Erickson for reporting this problem. - -Tue Jun 17 09:41:48 1997 David L. Levine - - * tests/Enum_Interfaces_Test.cpp: changed name of log file to match - the program name, so that the one-button test can easily find it. - -Tue Jun 17 04:58:38 1997 Nanbor Wang - - * ace/Timer_Queue_T.h: Added include file "ace/Synch_T.h" to avoid - compilation errors in SC 4.1. We didn't notice this because - most of us have moved to SC 4.2. Don't know why this didn't - cause any problem in SC 4.2. Thanks to Jack Erickson - for reporting this bug. - -Mon Jun 16 22:25:18 1997 Steve Huston - - * ace/ACE.cpp: Fixed conditional compiles to compile the - interface counting code for HP - it reports 0 interfaces, - so it needs more debugging still. - - * include/makeinclude/platform_hpux_aCC.GNU: added -g to link - command for building shared library. - - * tests/Buffer_Stream_Test.cpp: fixes to execute correctly and only - fail assertions on real failures. - -Mon Jun 16 19:05:13 1997 Steve Huston - - * ace/Free_List.cpp: added #include ace/Synch.h, needed by - Free_List.i. Fixes compile errors on HP-UX. - -Mon Jun 16 10:59:55 1997 Darrell Brunsch - - * ace/Timer_Wheel_T.cpp: Changed expire () so it doesn't - access past the end of an array when it finds nothing to - expire. Thanks to Norbert Rapp - for catching this. - -Sun Jun 15 03:44:21 1997 Nanbor Wang - - * examples/Threads/thread_specific.cpp (worker): Changed the - output of diagnostics from using cout to using printf. Also - corrected several portability problems. Thanks for Chuck Gehr - for pointing these out. - - * ace/OS.i (thread_mutex_trylock): Corrected the code for NT. Now - this function returns 0 if lock is obtained and -1 otherwise. - Thanks to Robert V. Head for noticing this. - - * performance-tests/Synch-Benchmarks/Synch_Tests.{mdp.mak}: - Added project workspace and makefile for NT to this directory. - - * performance-tests/Synch-Benchmarks/svc.conf: - * performance-tests/Synch-Benchmarks/{Options,Benchmark}.h: - * performance-tests/Synch-Benchmarks/*.cpp: Reworked these - files to have them compiled on NT. - -Sat Jun 14 03:53:13 1997 Nanbor Wang - - * performance-tests/Synch-Benchmarks/pipe_proc_test.cpp (class - Pipe_Proc_Test): Changed the type of pipe_handles[] from int to - ACE_HANDLE. - - * performance-tests/Synch-Benchmarks/sysvsema_test.cpp: When - creating the semaphore, explicitly cast the key value to (key_t) - since NT couldn't handle the conversion. - -Fri Jun 13 19:32:03 1997 Steve Huston - - * ace/ACE.cpp: Fixed count_interfaces to compile on non-SVR4 - systems such as HP-UX. Not tested yet. - - * ace/OS.i: Fixed mis-arranged conditional compile for HP-UX in - asctime_r. - -Fri Jun 13 03:13:51 1997 Nanbor Wang - - * ace/config-win32-common.h: Added a "pragma comment" directive to - direct MSVC to link in mswsock.lib automatically. Thanks to - Bill Tang for reminding this. - - * ace/ace.{mak,mdp}: Removed explicit inclusion of mswsock.lib. - Thanks to Bill Tang for reminding this. - - * examples/OS/Process/Process.{mdp,mak}: For some reasons, I got - an "unknown link error, please refer to documentation for - appropriate technical supports" when building this example on NT - (didn't help much, did it?) Reassigning the linked library - solved the problem. - - * examples/OS/Process/process.cpp: Updated class name - ACE_ProcessEX to ACE_Process because ACE_ProcessEX no longer - exists. Also, all exec'ed programs' absolute names have been - changed and let the environment variable "path" to decide which - program(s) to exec. - -Thu Jun 12 15:48:16 1997 Chris Cleeland - - * ace/ACE.cpp (get_ip_interfaces): Corrected code in the BSDish - section so that it at least compiles on Linux. I haven't tested - this AT ALL. - - * ace/Timer_Queue_T.cpp (calculate_timeout): When this was called - with the default argument from handle_events(), max_timeout was - passed as zero, which would cause a SEGV when attempts were made - to deref it. Added protection to simply return a zero ptr in that - case. - -Thu Jun 12 13:18:03 1997 Steve Huston - - * ace/OS.{h,i,cpp}: Changes for HP-UX 10 primarily. Threads - support for DCE Draft 4 threads (bundled with HP-UX 10). - Correct usage of reentrant C library functions for HP-UX. - - * ace/OS.i: Changed timeout argument to 2nd select function to - allow the compiler to pick a conversion operator. As it was, - HP compiler would not compile it. - - * ace/Service_Object.cpp: When deleting the service memory pointed - to by a void *, use "operator delete" rather than deleting a void, - which is prohibited by the current ANSI C++ draft. - - * ace/config-hpux-10.x.h: This is now a compiler-independent header - file, and is included by config-hpux-10.x-hpc++.h. This file - contains all correct settings for HP-UX 10.x, and compiler-specific - config files should use this - see config-hpux-10.x-hpc++.h. - - * ace/config-hpux-10.x-hpc++.h: New config file for either of the HP - compilers (HP C++ or HP aC++). It figures it out internally, and - uses config-hpux-10.x.h for OS details. - - * include/makeinclude/rules.lib.GNU: Allow for doing a PRELIB step - when building a shared library, and not using .shobj/*.so files. - This allows HP aC++ to close all template instantiations for the - entire library at once, rather than separately, reducing the - size of the resultant library significantly. - - * include/makeinclude/platform_hpux-aCC.GNU: build libraries with - templates instantiated all at once. Compile with flags for using - the reentrant versions of C library functions. - -Wed Jun 11 15:20:15 1997 Nanbor Wang - - * ace/Timer_Queue_T.{h,cpp} (calculate_timeout): Changed the - second parameter the_timeout from a ref. to a ptr. to a ptr in - order to avoid compilation warning. Since the pointer itself is - not modified within the function, it's ok to change this. - - * ace/Reactor.cpp (wait_for_multiple_events): Added ACE_Time_Value - the_timeout as a place holder for timeout value when - max_wait_time is NULL. Otherwise, - Timer_Queue::calculate_timeout won't process the timer queue - even it's not empty. - -Wed Jun 11 11:14:29 1997 James C Hu - - * include/makeinclude/platform_mvs.GNU (RANLIB): Requested change - from Check Gehr (gehr@sweng.stortek.com), RANLIB = echo - -Wed Jun 11 04:47:52 1997 Nanbor Wang - - * ACE.cpp (count_interfaces): Two bugs were corrected here. Both - were typo. - - * tests/Timer_Queue_Test.cpp: Added include file ace/Timer_Queue.h - -Tue Jun 10 16:02:52 1997 Darrell Brunsch - - * ace/SString.{h,cpp}: Changed the parameters in CString::substring() - and WString::substring(). Removed const and changed length to a - ssize_t because of signed/unsigned comparison warnings. - - * ace/ACE.cpp: Changed a loop variable in get_ip_interfaces() to - a size_t because of a signed/unsigned comparison warning. - -Tue Jun 10 12:47:49 1997 - - * ace/SString.cpp (operator = and operator +=): There were two - bugs here. operator= forgot to tack on the NULL terminator - after the memcpy() and operator+= appended the second string - incorrectly. Thanks to Michael R. MacFaden for - pointing these out. - -Tue Jun 10 12:16:04 1997 Darrell Brunsch - - * ace/Makefile: Updated to reflect newly added files - - * ace/Proactor.cpp: Removed template specializations. - - * ace/Reactor.cpp: Removed some template specializations. - - * ace/Timer_Hash.h: Added an include for Timer_Heap. - - * ace/Timer_Hash_T.cpp: Changed a reference to ACE_Timer_Node - to ACE_Timer_Node_T - - * ace/Timer_{Hash,Heap,List,Wheel}_T.h: Changed #include - "ace/Timer_{...}.h" to "ace/Timer_{...}_T.h". - - * ace/Timer_Queue.cpp: Removed some template specializations. - - * ace/Timer_Queue.h: Removed the including of Timer_Queue.cpp - since there are no templates to warrant it. - - * ace/Timer_{Hash,Heap,List,Wheel}.cpp: Added these and put the - appropriate template specializations here. - -Tue Jun 10 02:08:25 1997 Nanbor Wang - - * examples/Log_Msg/README: Revised. - - * examples/Log_Msg/test_log_msg.cpp: Revised program output so - that it's clearer to explain. - -Mon Jun 09 15:46:41 1997 - - * OS.i (mutex_lock): When WaitForSingleObject returns - WAIT_ABANDONED, the lock is held by the calling thread. - Therefore we must return 0 from the method. I have added a new - mutex_lock() method that takes an extra "abandoned" parameter. - This is set wehen the mutex is abandoned. Thanks to Dieter - Quehl for pointing this out. - -Mon Jun 9 02:31:36 1997 Nanbor Wang - - * tests/Sigset_Ops_Test.cpp (main): Comment out testing of invalid - sigset checking for most platforms don't seem to support it. - Perhaps the ACE's sigset* functions should remove this check for - compatibility. - -Sun Jun 8 11:39:06 1997 Douglas C. Schmidt - - * ace/OS.i (set): There was a typo here where - - ((long) (d - (double) l)) * 1000000 - - should be - - (long) ((d - (double) l) * 1000000) - - since otherwise the values are always 0. Thanks to Jim Crossley - for reporting this. - - * tests/Enum_Interfaces_Test.cpp (main): Changed ACE_UINT32 to - size_t to be consistent with the class definition. Thanks to - Nanbor Wang for reporting this. - - * ace/Token.h: Added some no-op method for ACE_Token so that it - will still compile even if ACE_HAS_THREADS isn't defined. - -Sun Jun 8 01:37:52 1997 Nanbor Wang - - * examples/Log_Msg/README: Added a README file. - - * tests/Sigset_Ops_Test.cpp (main): bug fixed. - - -Sat Jun 7 16:40:22 1997 Douglas C. Schmidt - - * ace/SString.h (string.): Added a substring() member function to - ACE_*String classes. Thanks to Michael MacFaden - for contributing this. - - * ace/ACE: Added a new method called - - int get_ip_interfaces(count, address_array) - - which will query the OS kernel for the IP addresses for each network - interface found and return a count and array of ACE_INET_Addr objects. - The reason for adding this method is that most client apps - assume gethostbyname(uname|gethostname)) will work. If the - nameservices is misconfigured/broken or the machine is multi-homed, - the client apps have alot of coding to do to figure out if an inteface - represents a local address or not. On UNIX, this includes - the loopback addr. On NT, the loopback addr is not added - (but may change the impl if others think this useful). - Thanks to Michael MacFaden for contributing - this. - - * ace/Synch[_T]: Changed all the classes so that internal instance - variables are now protected rather than private. This allows - greater flexibility if there's a need to subclass - (which shouldn't occur very much...). Thanks to - Reza Roodsari for suggesting this. - -Fri Jun 06 21:30:57 1997 David L. Levine - - * ace/Timer_{Hash,Wheel}_T.cpp: added #includes of - ace/High_Res_Timer.h. Also, in Timer_Wheel_T.cpp (cancel), - moved the declaration of "i" out of the loop because it's - used in two different loops. - -Fri Jun 06 17:11:13 1997 - - * OS.i (sleep): If ACE_POLL_IS_BROKEN is defined, use select() to - do micro second sleeps. - - * ace/CORBA_Handler.h (ACE_CORBA_*): The new version of Orbix - (2.2C01) on NT finally supports namespaces. So now the macros - ACE_CORBA_n need to be defined using the "::" and not the "_" - for NT if the new Orbix is being used. Thanks to John Morey - (jmorey@tbi.com) for the changes. - -Fri Jun 06 02:16:08 1997 - - * Sigset_Ops_Test.cpp: Added to test correct implementation of - sigset manipulating functions. - - * run_tests.{sh,bat}, Makefile: Added Sigset_Ops_Test. - -Thu Jun 05 20:32:39 1997 David L. Levine - - * tests/Timer_Queue_Test.cpp (randomize_array): removed static - qualifier now that it's a template function. It caused a warning - with Sun C++. - -Thu Jun 05 18:28:36 1997 - - * ace/Asynch_Acceptor.cpp (open): The Proactor was beening passed - implicitly. I have made this explicit by making this a parameter - to open. Thanks to MehulM@spa-marketing.com (Mehul Mahimtura) - for this. - -Thu Jun 5 12:06:45 1997 Chris Cleeland - - * ace/Timer_Queue_T.h (ACE_Timer_Queue_T): Overloaded - calculate_timeout with a version that accepts a pointer to - storage for the ACE_Time_Value as an argument. This has a small - performance win over the other b/c it does not take a lock. - The change was made after examining Quantify output for TAO - and observing that this lock caused - Reactor::wait_for_multiple_events() to consume a substantial - percentage of processing time. - - * ace/Reactor.cpp (wait_for_multiple_events): This now uses a - different version of calculate_timeout() that doesn't require - taking a lock. - -Thu Jun 05 08:48:49 1997 David L. Levine - - * ace/Reactor.cpp: added template specializations. - - * ace/Timer_Queue_T.cpp (ACE_Timer_Queue_T ctor): rearranged - initializers to match declaration order. - -Thu Jun 5 06:08:06 1997 Nanbor Wang - - * ace/OS.i (sigaddset, sigdelset, sigismember): NSIG itself is - invalid and must be excluded. - -Wed Jun 04 21:24:35 1997 David L. Levine - - * ace/config-sunos5.5-g++.h: fixed typo: #define instead of - #defined ACE_HAS_CLOCK_GETTIME. - - * ace/config-sunos5.5-sunc++*.h: Combined - config-sunos5.5-sunc++-4.x.h and config-sunos5.5-sunc++-4.1.h, - and removed the latter. The Orbix config file now #includes - config-sunos5.5-sunc++-4.x.h and adds its differences. - - * include/makeinclude/platform_sunos5_sunc++*.GNU: Combined - platform_sunos5_sunc++.GNU and platform_sunos5_sunc++-4.1.GNU, - and removed the latter. platform_sunos5_sunc++_orbix.GNU now - includes the non-orbix file and adds its differences. Also, - added optional CC -fast support. To enable, just add "fast=1" - to your "make" invocation. - -Wed Jun 04 12:21:41 1997 - - * tests: Made the following config files consistent: - UNIXclerk.conf UNIXtokens.conf Win32clerk.conf Win32server.conf - Win32tokens.conf - - * ace/OS.h: Made sure that some #defines were guarded for - redefinition specially for the Bristol (that provides Win32 API - on AIX) headers. Thanks to Rich Christy (rchristy@cccis.com) for - suggesting these changes. - - * ace/Handle_Set.h: Changed the type of handle_index from int to - u_int on Win32. Thanks to Jack Erickson (jack@cibc.com) for - suggesting this. - - * ace/FILE.h (ACE_FILE_STREAM): Fixed this #define from - ACE_FILE_Stream to ACE_FILE_IO. - -Tue Jun 3 21:23:48 1997 Douglas C. Schmidt - - * ace/Timer_{Queue,Hash}: Fixed some uses of template typedefs - since GCC is too lame to handle them correctly. Therefore, I - had to expand TIMER_QUEUE into the ugly fully expanded name. - - * ace/Timer_Queue_T.cpp: Moved the implementation of - ACE_Event_Handler_Handle_Timeout_Upcall from Timer_Queue.* into - Timer_Queue_T.* since only template classes should go into *_T.* - files. - -Tue Jun 3 18:16:02 1997 Darrell Brunsch - - * ace/Timer_Queue.*: - - Templatized ACE_Event_Handler_Handle_Timeout_Upcall with LOCK - - Added deletion() to Upcall Functors. This gets called if there - are any nodes in a queue and the queue's destructor is called - - * ace/Timer_Queue_T.*: - - Changed iterator accessor to public - - Removed two template parameters from ACE_Timer_Node_T so only - EVENT is left. Added accessors instead of using friendships, - and deleted the constructor (use set() instead) - - Changed iterator into a general iterator (with first(), next(), - isdone() and item () methods) - - Added remove_first () method that removes and returns the - earliest timer in the queue - - Added ACE_Free_List support - - * ace/Timer_Heap*: - - Added upcall functor deletion() support - - Added remove_first () method that removes and returns the - earliest timer in the queue - - * ace/Timer_List*: - - Changed to double-linked circular list and changed the timer_id - to be a pointer to the node (like it is in Timer Wheel and Timer - Hash) - - Added upcall functor deletion() support - - Added remove_first () method that removes and returns the - earliest timer in the queue - - Added check for timer_id of -1 so we don't try to delete the - error code if it is passed into cancel - - Changed Timer_List_Iterator_T constructor parameter from list to - listParm to resolve a conflict with STL. Thanks to Todd - Barkalow for this fix - - * ace/Timer_Wheel*: - Added HighRes timer support - - Added upcall functor deletion() support - - Added earliest_pos_ variable to keep track of the list with - the earliest node - - Created an expire that is specialized for ACE_Timer_Wheel - - Added remove_first () method that removes and returns the - earliest timer in the queue - - Added check for timer_id of -1 so we don't try to delete the - error code if it is passed into cancel - - * ace/Timer_Hash*: - - Added Timer Hash Queue - This is a class that can take another - timer queue type (Timer List, Timer Heap...) as a template - parameter (BUCKET) and then do an intermediate hash of a timer - to determine which queue among a table of timer queues to put - the timer into. ACE_Timer_Hash is typedefed to the Timer List - version and ACE_Timer_Hash_Heap is typedefed to the Timer Heap - version - - Added HighRes timer support - - Added upcall functor deletion() support - - Created an expire that is specialized for ACE_Timer_Hash - - Added remove_first () method that removes and returns the - earliest timer in the queue - - Added check for timer_id of -1 so we don't try to delete the - error code if it is passed into cancel - - * ace/Free_List.* - - Added ACE_Free_List and ACE_Locked_Free_List. These - are used to maintain free lists of nodes. ACE_Free_List is a - abstract class where ACE_Locked_Free_List is a concrete one that - has a mutex parameter (LOCK). - - * ace/OS.h: - - Added ACE_DEFAULT_TIMER_HASH_TABLE_SIZE constant - - Added ACE_DEFAULT_FREE_LIST_* constants - - * ace/Proactor.*: - - Added deletion() to Upcall Functors. This gets called if there - are any nodes in a queue and the queue's destructor is called. - - * tests/Timer_Queue_Test.cpp: - - Added HighRes timer support - - Changed the array of timer queues into a list (to more easily - add/remove/comment out an entry) - - Added some more performance tests with randomization - -Tue Jun 3 00:26:06 1997 Douglas C. Schmidt - - * ace/OS.h: Changed the access protection for ACE_cond_t, - ACE_sema_t, ACE_event_t, and ACE_rwlock_t so that it is - protected rather than private. In addition, added ACE_Export to - all of these classes so that they are visible outside of a DLL. - Thanks to Ivan Murphy for these suggestions. - - * ace/OS.h: Changed the value of ACE_MAX_DEFAULT_PORT on Win32 to - 0 in order to work around a nasty NTism... Thanks to Jon Biggar - for reporting this. - -Mon Jun 2 16:29:48 1997 James C Hu - - * ace/Process.*: - - Fixed ACE_Process::spawn to close descriptors after having - been duped. - - Fixed ACE_Process::spawn to exit () after an error is - encountered in the child process, rather than returning. - - Fixed ACE_Process_Options::set_handles to duplicate handles - that are passed in, and then to close them in the destructor. - -Sun Jun 01 22:21:28 1997 David L. Levine - - * examples/Threads/tss1.cpp: made some globals non-static or - const so that tss1 will link with Sun C++ 4.2 -O3. I don't - know what the problem is; it only shows up with optimization - enabled. These fixes work around it. - -Sun Jun 01 20:29:20 1997 James CE Johnson - - * ace/IOStream*: - - removed the old 4/5/97 comments - - made operator>>, << on QuotedString a template - - This last makes QuotedString much more functional. As - templated functions, the QuotedString can now be used on - other iostream-type objects. The previous method of - defining the function only for the type of ACE_IOStream - being created was didn't provide this flexibility. - -Sat May 31 07:01:22 1997 Douglas C. Schmidt - - * ace/Log_Msg.cpp (open): To avoid handle leaks, we need to - shutdown the message_queue before trying to reopen it. Thanks - to Per Andersson for this suggestion. - - * include/makeinclude/platform_osf1_4.0.GNU: Added a new platform - config file. Thanks to James Johnson for this. - -Fri May 30 16:25:25 1997 - - * CPP-inclient.cpp (main): Properly compare to the "quit" - string. Thanks to "Andre Arpin" for - reporting this. - - * tests/UPIPE_SAP_Test.cpp (connector): Changed the eof marker in - the strings. - -Fri May 30 14:04:44 1997 James C Hu - - * include/makeinclude/platform_irix6.4_sgic++.GNU: added to make - things compile on latest SGI machines. Removed +pp and -woff... - flags from the CCFLAGS variable. Added new -woff flags to hide - other warnings. - - * ace/config-irix6.4-sgic++*.h: copied corresponding configs from - irix6.2 and removed ACE_HAS_SVR4_TIME, since this seems to be no - longer true of irix6.4. - -Fri May 30 02:39:39 1997 - - * ace/Connector.cpp - - (create_AST): On Win32, added the except mask when registering - with the Reactor to find out when asynchronous connects - complete. - - (Svc_Tuple): Made sure that the default value for the timer_id - in AST is not 0. 0 is a valid timer_id. I have changed this to - be -1. - - (handle_exception): Added this method. On - Win32, the except mask must also be set for asynchronous - connects. - -Thu May 29 21:28:25 1997 - - * Process.*: Removed the ACE_Process_Old class. - - * Local_Tokens_T.*: Removed all these files. They have not been - used by the token library for some time. They were mistakenly - put in the release. - -Thu May 29 02:00:14 1997 - - * ACE.cpp (is_process_active): Added this method which checks if a - process is still alive. Thanks to Chris (CLahey@cccis.com) for - this code. - - * ace/OS.i (kill): Changed PROCESS_ALL_ACCESS to - PROCESS_TERMINATE. - - * ace/ACE.cpp (bind_port): Changed the implementation of this - method such that a recently used port is not used again in the - next call to this method on Win32, i.e., upper limit is - decreased even in the successful case. This fixes the problem on - Win32 where binding to a recently used port works but the - following connect fails. - - * ace/Acceptor.cpp (close): Added a close method that allows us - to shutdown the Acceptor (without having to destroy it). - - * ace/Connector.cpp (close): Added a close method that allows us - to shutdown the Connector (without having to destroy it). - - * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp - - (handle_close): Removed this method. This code seemed to be - duplicating the code in the handle_close of the proxies. - - (initiate_connection): Removed the code that did - rescheduling. The proxies are responsible for this. - - * apps/Gateway/Gateway/Event_Channel.cpp - - (initiate_proxy_connection): Must *always* use the correct synch - options while connecting. - - (reinitiate_proxy_connection): Always register for timeouts if - we are not disconnecting. This allows us to remove duplicated - logic in Proxy_Handler_Connector. - - The new logic of close() allows us to remove the code that use - to remove the proxy from the map to prevent double deletes. - - (close): Changed the shutdown logic to: Tell everyone that the - spaceship is here (behind the comet), close down the connector, - close down the acceptor, tell everyone that it is now time to - commit suicide. - - * apps/Gateway/Gateway/Proxy_Handler.cpp (handle_timeout): Must - return 0, or else the timer queue will cancel the handler and - *all* its timeouts. - - * apps/Gateway/Peer/svc.conf,Makefile: We now generate a Peer - shared library (instead of just an .so). The svc.conf was - changed to reflect this. - - * tests/UPIPE_SAP_Test.cpp: Fixed output message. - - * Handle_Set.i (operator): Fixed typo. - -Thu May 29 11:09:52 1997 David L. Levine - - * include/makeinclude/rules.local.GNU: check for directory - write permission before attempting to install. This helps - support shared ACE workspaces. There are two easy ways - to not install "private" libraries in the shared workspace: - 1) remove write permission from $WRAPPER_ROOT/ace, or - 2) add "INSTALL=" to invocations of "make". - -Thu May 29 06:07:18 1997 Douglas C. Schmidt - - * ace/OS.i (thr_join): Revised some code in the #ifdef'd out - version of ACE_OS::thr_join() so that it will compile correctly. - Note that this code isn't currently used, but someday it will - be. Thanks to Hamutal Yanay for reporting this. - -Wed May 28 16:37:57 1997 David L. Levine - - * ace/OS.{h,i} (ACE_Time_Value): added default constructor, - which does not call normalize (). ACE_Time_Value::normalize () - was showing up as a relatively minor, but signficant hot - spot in Event Channel latency tests. - -Wed May 28 16:02:53 1997 James C Hu - - * ace/OS.i: Changes to strdup and getpid for CHORUS, as per Wei - Chiang's suggestions. - -Tue May 27 18:26:51 1997 Douglas C. Schmidt - - * ace/config-hpux-10.x-decthreads.h: Added support for HP/UX 10.10 - with DCE threads. Thanks to Shankar Krishnamoorthy - for these fixes. - - * ace/Local_Tokens_T.h: #if def'd out all of this file since it - doesn't seem to be used anymore. Thanks to Shankar - Krishnamoorthy for reporting this. - - * ace/Makefile (TEMPLATE_FILES): Removed Local_Tokens_T since it - doesn't appear to be used anywhere. - -Tue May 27 18:47:34 1997 James C Hu - - * tests/*.cpp: Various changes for EBCIDIC compatibility. - Thanks to Chuck Gehr for pointing out the need for this! - - * tests/test_config.h: Added ACE_ALPHABET to aid a-z sending and - comparing. - -Tue May 27 15:03:25 1997 David L. Levine - - * tests/Future_Test.cpp: added ACE_Future{_Rep} template - specializations. - -Tue May 27 07:49:03 1997 Douglas C. Schmidt - - * ace/Future.cpp: Made a few minor reformatting changes to Per's - new Future enhancements. - -Tue May 27 14:19:14 1997 Per Andersson - - * ace/Future: Fixed self assignment bug in ACE_Future<>::operator=(). - Fixed bug in ACE_Future<>::set(). It is now possible to do a - ACE_Future<>::set() followed by a ACE_Future<>::get() without - hanging forever. - - Moved all handling of the ACE_Future_Rep<> reference count - into three new static ACE_Future_Rep<> member functions, - create, attach, assign and detach. - - Removed one mutex from ACE_Future_Rep<> by changing the - reference count from an ACE_Atomic_Op into a plain - int. The ACE_Future_Rep<>::value_ready_mutex_ mutex is - instead used for serializing changes to the reference count. - (ACE_Future_Rep<>::attach, ACE_Future_Rep<>::detach()) - - Removed mutex from ACE_Future<> the serialization is - performed by the ACE_Future_Rep<>::attach, - ACE_Future_Rep<>::detach() and ACE_Future_Rep<>::assign() - functions. - - Changed the ACE_Future<> default constructor to always - create a ACE_Future_Rep<> - - * tests/Future_Test.cpp: Added test case for - ACE_Future<>::set() followed by ACE_Future<>::get(). Added - test for working ACE_Future::operator=(). The test is not - fool proof but it crashes or hangs the test process with the - old ACE_Future<> implementation. - -Mon May 26 14:19:14 1997 James C Hu - - * ace/OS.{h,i}: Fixed difftime implementation for cases where - systems implement it as a macro. Fixed tempnam by adding - ACE_LACKS_TEMPNAM. - -Sun May 25 11:36:22 1997 Douglas C. Schmidt - - * examples/Reactor/Misc: Removed test_handle_set.cpp since it - is now completed subsumed by tests/Handle_Set_Test.cpp. - - * tests/Handle_Set_Test.cpp: Updated the test of - the ACE_Handle_Set so that it shows how fast the iterator works. - - * ace/Reactor.cpp: Updated the Reactor to use the new - ACE_Handle_Set_Iterator (whic no longer requires calling - operator++ to advance the iterator). - - * ace/Handle_Set: Rewrote the ACE_Handle_Set_Iterator to speed it up. - The result seems to be about 15% faster than the original. - - * ace/OS.h: Changed the MSB_MASK static constant into a macro and - moved it from Handle_Set.cpp into OS.h, changing its name to - ACE_MSB_MASK. - - * ace/Sched_Params.cpp (priority_max): Added another #ifdef for - Chorus. Thanks to Wei Chiang for reporting this. - - * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: added -l - in front of orbixmt. Thanks to Wei Chiang for pointing this - out. - - * ace/ACE.cpp: Changed the default port for NT so that it starts - at 65279 rather than 65535. Hopefully, this will fix that - annoying bug that has been plaguing us on NT 4.0 for months. - Thanks to Goran Lowkrantz - for reporting this. - -Sat May 24 23:42:32 1997 David L. Levine - - * performance-tests/Misc/test_naming.cpp (do_testing): replaced - strlen () calls in character array size with constant expression. - -Sat May 24 12:07:48 1997 Douglas C. Schmidt - - * Released version 4.2.1 for testing. - - * ace/Reactor.cpp (bind): Fixed a stupid typo where I was using - the ACE_REACTOR_EVENT_HANDLER macro instead of the - ACE_REACTOR_HANDLE macro. Thanks to Detlef for reporting this. - - * ace/OS.i: Added a new macro called ACE_HAS_THR_MINSTACK to deal - with weirdo mangling of names by Tandem. Thanks to Jan Perman - for reporting this. - - * ace/OS.h: Added a new macro ACE_LACKS_PRI_T for those platforms - using STHREADS (e.g., Tandem NonStop OS) that don't have pri_t - defined. Thanks to Jan Perman for - reporting this. - - * ace/Connector.cpp (connect): Make sure to save/restore errno - since svc_handler->close() may change it. Thanks to Michael - Hartman for reporting this. - - * include/makeinclude/platform_chorus.GNU: Added a new platform - macros file for Chorus. Thanks to Wei Chang for this. - - * ace/OS.cpp (sched_params): Reordered the #ifdefs so that Chorus - comes first. - - * ace/OS.i (sleep): If the platform defines ACE_HAS_CLOCK_GETTIME - then we'll use the nanosleep() method rather than sleep(). - - * ace/OS.h: disabled THR_NEW_LWP for Chorus. Thanks to Wei Chang - for reporting this. - - * ace/Sched_Params.cpp: ACE_SCHED_OTHER and ACE_SCHED_RR have the - same value on Chorus. Thanks to Wei Chang for reporting this. - -Sat May 24 09:21:08 1997 David L. Levine - - * netsvcs/lib/Server_Logging_Handler.cpp: protected second - ACE_Svc_Handler specialization for case that ACE_HAS_THREADS, - when ACE_HAS_TLI. It had gotten lost in the last pass of - that module. Thanks to Sandro Doro - for reporting this problem. - -Sat May 24 03:19:38 1997 Nanbor Wang - - * ace/OS.i (sigaddset, sigdelset, sigemptyset, sigfillset, - sigismember): Modified the implementation of these function so - as to conform with POSIX standard. Basically all functions do - the same things they did but more conservative protections are - added. The modified semantic becomes, - - sigemptyset, sigfillset, sigaddset, sigdelset: return 0 if - succeed, -1 otherwise. - sigismember: returns 0 if signum is not in the set, 1 if signum - is in the set, and -1 if error occurs. - - If error occured, errno will be set to one of the following - value: - EFAULT: sigset is not a valid address. - EINVAL: signum is not a valid signal number. - - Notice that, so far, this is for NT only. - -Sat May 24 01:53:22 1997 James C Hu - - * performance-tests/Misc/test_naming.cpp (do_testing): Thanks to - Sandro Doro, squashed a bug where we were trying to concatenate - onto a string constant. - -Fri May 23 01:01:01 1997 Douglas C. Schmidt - - * ace/config-hpux-9.x.h: Added - - #define ACE_HAS_BROKEN_ENUMS - #define ACE_HAS_IP_MULTICAST - #define ACE_LACKS_GETPGID - - Thanks to Neil Cohen for reporting these. - - * ace/Thread_Manager.h: Made the private methods and data members - protected so that subclasses can extend it. Thanks to Hamutal - Yanay for this suggestion. - -Fri May 23 21:27:05 1997 David L. Levine - - * ace/Process.{h,cpp} (env_argv): added "const" to char * type in - return type, for argument compatibility in call to ACE_OS::execve (). - - * ace/Process.cpp (spawn): removed unreachable return statement at - end of function. - - Thanks to Dave Mayerhoefer for - reporting the above two problems. - - * ace/{IOStream*,Makefile}: Split out templates into - ace/IOStream_T.{h,cpp} files. This way, automatic template - instantiation systems that require templates to be in separate - files, such as on Irix 6.2, will be able to build IOStream_Test - and the ACE_IOStream examples without warnings. (The - ACE_IOSTREAM_BUILDING_TEMPLATE macro that did this only worked - if ACE_TEMPLATES_REQUIRE_SOURCE was defined. It's no longer - needed with the separate template files.) - - * tests/IOStream_Test.cpp, - examples/IOStream/client/iostream_client.cpp, - examples/IOStream/server/iostream_server.cpp: - swapped ACE_Streambuf and ACE_Streambuf_T class names so that - the template class has the "_T". And renamed ACE_IOStream_T - for consistency. - - * ace/{IOStream.*,README}, - tests/IOStream_Test.cpp, - examples/IOStream/client/iostream_client.cpp, - examples/IOStream/server/iostream_server.cpp, - config-hpux-9.x*.h: - Added ACE_LACKS_ACE_IOSTREAM protection - so that these can easily be built on platforms that have - trouble with ACE_IOStream. - - * Priority_Task_Test.cpp: removed close () because it didn't really - close the Task, and added printout to main () after all tasks have - been spawned to help debug non-termination. - - * ace/OS.cpp: (thr_create, with STHREADS only): *thr_handle was - used but *thr_id had been set by ::thr_create, so threads never - got activated. Fixed by using *thr_id instead of *thr_handle - in the calls to ACE_OS::thr_setprio and ACE_OS::continue. - Thanks to Jan Perman for reporting - this problem. - -Fri May 23 20:12:33 1997 James C Hu - - * tests/SV_Shared_Memory_Test.cpp: Thanks to Chuck Gehr, fixed - ASCII dependent code in the parent and child routines. - -Fri May 23 02:58:28 1997 Nanbor Wang - - * ace/OS.i (dlsym): Added ACE_USES_ASM_SYMBOL_IN_DLSYM, support - for platforms (FreeBSD) which use assembly symbols instead of C - symbols in dlsym (). - - * ace/config-freebsd[-pthread].h: Added flag ACE_HAS_CHARPTR_DL - and ACE_USES_ASM_SYMBOL_IN_DLSYM. - -Thu May 22 08:14:21 1997 David L. Levine - - * tests/Tokens_Test.cpp: added deletes to avoid memory leaks. - -Wed May 21 16:15:48 1997 David L. Levine - - * ace/{config-irix6.2*.h,README}: removed ACE_LACKS_IOSTREAM_SETGET - because tests won't build with it. Also, added - ACE_LACKS_SIGNED_CHAR. - - * ace/IOStream.h: removed "const" from PUT_PROT of - u_char * and void *. This should allow the IOStream test - and examples to build and run on Irix platforms. Thanks - to Torbjorn Lindgren and Amos Shapira - for reporting this, and to James Hu for - helping fix it. - - * ace/{OS.cpp,Sched_Params.cp} (Solaris only): use 0 min priority - again, with workaround in ACE_OS::thr_create to not use - ::pthread_attr_setschedparam () if the priority is 0. Instead, - the priority of the newly created thread is set to 0 (if it - wasn't created with 0) after the thread is created, with - ::pthread_setschedparam (). - -Wed May 21 15:23:37 1997 Chris Cleeland - - * ace/Strategies_T.* (ACE_Hash_Addr): Eliminated the ADDR_T - template parameter as a base class. It is now a wholly-contained - member of the ACE_Hash_Addr<> with conversion operators. - This caused problems on certain compilers, notably HP-UX. - -Wed May 21 14:13:36 1997 James C Hu - - * ace/OS.{h,i} (difftime): Added implementation to ACE_OS. I - don't expect any problems since it is in ANSI. - - * ace/OS.{h,i} (tempnam): Added implementation to ACE_OS. - -Wed May 21 01:17:40 1997 Douglas C. Schmidt - - * Released version 4.2. - - * ace/Acceptor.cpp (activate_svc_handler ): Removed an unnecessary - return 0. Thanks to Amos Shapira for reporting - this. - - * ace/Message_Block.cpp (release): I believe that - ACE_Message_Block::release() should return something other than - 0, i.e., it should return the result of release_i(). Thanks to - Amos Shapira for reporting this. - -Wed May 21 01:17:40 1997 Per Andersson - - * Moved most code from netsvcs/lib/Server_Logging_Handler.* to - Server_Logging_Handler_T.*. Made template out of - ACE_Server_Logging_Handler and ACE_Server_Logging_Acceptor. - Factorised out as much as possible to reduce code - duplication. The log record processing was moved from - ACE_Server_Logging_Handler it should now be handled by the - Log_Message_Receiver class. It is now possible to change - how log records processed without changing code in - Server_Logging_Handler* and it is possible to have several - Server_Logging_Handlers that processes log records - in different ways without duplicating all the server code. - All that is needed is to write a new/change - Log_Message_Receiver and instantiate a couple of templates. - - * netsvcs/lib/Server_Logging_Handler.h added lots of typedefs - for making template instantiations easier. - - * netsvcs/lib/Server_Logging_Handler.h addad lots template - instatiations, there are now 58 all together. - - * Added netsvc/lib/Log_Message_Receiver.{h,cpp}, implementstwo - simple log message receivers that prints the log record to - stderr. - -Tue May 20 13:50:17 1997 Douglas C. Schmidt - - * ace/config-hpux-9.x.h: Added a #define for ACE_HAS_BROKEN_ENUM, - ACE_HAS_IP_MULTICAST, and ACE_LACKS_GETPGID. Thanks to Neil - Cohen for reporting this. - - * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: Replaced - the use of -lITsrv with -lorbixmt. Thanks to Wei Chiang for - this. - - * include/makeinclude/platform_osf1_3.2.GNU: Make sure that all - the template repositories are in the same directory to work - around problems with the C++ compiler. Also added -lrt to get - the apps and tests to run. Thanks to Tom Dobridge for this - help. - -Tue May 20 17:13:15 1997 Carlos O'Ryan - - * ace/config-hpux-10.x-nothread.h: - * ace/config-hpux-10.x-aCC.h: - * ace/Stream_Modules.cpp: - ACE_LACKS_STREAM_MODULES is no longer needed, moving the inclusion - of "ace/Task.h" to the beginning of "ace/Stream_Modules.h" solved - the problem nicely. - - * ace/config-hpux-10.x.h: - * ace/config-hpux-10.x-aCC.h: - ACE_HAS_BROKEN_HPUX_TEMPLATES is not needed on newer HP/CXX - compilers; further, old ones will not compile ACE even if the - macro is defined. - - * ace/Timer_List_T.h: - * ace/Timer_Queue_T.i: - I moved the definition of ACE_Timer_Queue_T::lock() from the .i - file to the .h file, HP/CXX gets completely confused otherwise. - I also added a number of ACE_INLINE missing in the .i file. - - * ace/Stream_Modules.h: - * ace/Stream_Modules.cpp: - I had to move the inclusion of "ace/Task.h" outside of the - protections against multiple inclusion for Stream_Modules.h. - That seems to solve the ciclyc dependancy for - Task->Module->Stream_Module->Task. - BTW, the same thing was already done in "ace/Log_Record.h". - I'll try to remove the ACE_LACKS_STREAM_MODULES macro, it seems - that the last change makes it redundant. - - * ace/Signal.cpp: - HP/CXX compiler will not close the library unless - ACE_MAX_SIGNAL_HANDLERS is defined as "const size_t". The previous - definition ("size_t") did compile tough. - - * ace/Log_Record.h: - We need to include "ace/ACE.h" before "ace/Log_Priority.h". - - * ace/Log_Priority.h: - HP/CXX compiler seems to reserve a few bits in enums, so the - ENSURE_32_BITS trick would result in a compile time error. - Since HP enums are always 32 bits we could skip the definition for - ENSURE_32_BITS altogether, but I prefer to keep a consistent - namespace across plaforms, I have found a value for ENSURE_32_BITS - that seems to work. - - * include/makeinclude/platform_hpux.GNU: - Some options to improve compile time, since we use explicit - template instantiation there is no need for a ptcomp o ptlink - phase. - -Tue May 20 09:10:18 1997 Nanbor Wang - - * ace/config-freebsd-pthread.h: - * ace/config-freebsd.h: Removed "FreeBSD" directive because gcc on - FreeBSD defines __FreeBSD__ automatically. - - * ace/OS.i (sigaddset, sigdelset, sigismember): Added range - checking to these functions in order to avoid disasters. Sig - number should be between 1 and NSIG. - (sigwait): Changed ifdef (FreeBSD) to ifdef (__FreeBSD__) since - compiler does it for us. - -Tue May 20 08:41:11 1997 David L. Levine - - * examples/Threads/tss2.cpp: added #include of ace/Thread.h - because Sun C++ 4.1 needs it. - -Mon May 19 16:04:32 1997 David L. Levine - - * bin/create_ace_build: changed startup line for compatibility - with bash. This startup line lets the script run without - hard-coding the full path to the perl executable, as long as - perl is on the user's PATH. - -Mon May 19 12:45:21 1997 Douglas C. Schmidt - - * examples/Threads/reader_writer.cpp: Changed the code so that we - don't try to treat thread ids as ints! Thanks to Chuck Gehr for - reporting this. - -Sun May 18 21:57:54 1997 David L. Levine - - * examples/Threads/tss2.cpp: added second parameter to - ACE_TSS_Singleton template specialization. - -Sun May 18 09:20:15 1997 Douglas C. Schmidt - - * examples/Threads/TSS_Data.h: Added the second parameter for - ACE_SYNCH_MUTEX since Rich and Chris updated ACE_TSS_Singleton. - - * ace/Singleton.cpp: Added the updated version of - ACE_TSS_Singleton that implements the Double-Checked Locking - pattern. Thanks to Rich Christy and Chris Lahey for this. - - * ace/Strategies_T.cpp (activate_svc_handler): Fixed the logic so - that a value is always returned. Thanks to David Levine for - noticing this. - -Sun May 18 07:25:11 1997 David L. Levine - - * netsvcs/lib/Server_Logging_Handler.cpp: removed second - ACE_Svc_Handler specialization for non-threaded, has-TLI case. - That's because it is the same as the first; the only difference - was that one specialized with ACE_SYNCH and the other with - ACE_NULL_SYNCH. Without threads, those macros expand to the - same thing. Thanks Sandro Doro for - reporting this. - - * examples/Threads/tss2.cpp: added ACE_TSS template - specialization. - -Sat May 17 23:24:34 1997 Nanbor Wang - - * ace/OS.i (sigismember): Corrected the code when - ACE_LACKS_SIGSET. - -Sat May 17 00:06:04 1997 - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp - (Event_Transceiver): Corrected signal registration for Win32. - - * apps/Gateway/Gateway/Gateway.cpp (parse_args): Since the - Connector is now fixed, non-blocking is now working fine. - - * ace/Connector.cpp (handle_close,create_AST): Made sure we close - down the svc_handler on error. - - * ace/{Acceptor.cpp,Connector.cpp} (activate_svc_handler): The - if statement logic in these methods was incorrect. - - * ace/SOCK_Connector.cpp (connect): Just like in complete(), we - start out with non-blocking disabled on the . - - * ace/OS.h: When ACE_LACKS_SIGSET is defined, changed the - definition of sigset_t from void * to unsigned int. - -Sat May 17 12:25:22 1997 Douglas C. Schmidt - - * ace/{Acceptor,Connector,Strategies_T}: Make sure to either - enable or disable ACE_NONBLOCK (depending on the flags). This - ensures that we always start with the I/O mode set to a - deterministic state. Thanks to Irfan for suggesting this. - - * ace/Connector: Added a new "flags" parameter to the - ACE_Connector and ACE_Strategy_Connector which keeps track of - flags that control how Svc_Handler are initialized prior to - being activated. - - * ace/Strategies_T.cpp (activate_svc_handler): Make sure to set - the peer's handle into non-blocking mode *before* calling the - Svc_Handler's open() method. This ensures that things are set - up correctly when this hook is called. - -Sat May 17 02:19:27 1997 Nanbor Wang - - * ace/config-freebsd.h (ACE_HAS_BROKEN_TIMESPEC_MEMBERS): - - * ace/OS.i (set, timestruct_t, nanosleep): - - * ace/High_Res_Timer.cpp (elapsed_time): - - * ace/README: Added ACE_HAS_BROKEN_TIMESPEC_MEMBERS so that we can - fix that problem FreeBSD 2.1.x brings by defining timespec as { - time_t ts_sec ; long ts_nsec }. Notice: This is highly - non-portable. Please refer to ACE code and see how to write - portable. Fortunately, only older versions of FreeBSD have - this. Yesterday's hack didn't work, so, it's removed. Thanks - to Satoshi Ueno for reporting and helping - debug on his FreeBSD 2.1.7R box. - -Sat May 17 00:06:04 1997 - - * apps/Gateway/Gateway/Proxy_Handler.cpp (open): Turn on - non-blocking I/O only after the Channel is done sending the id - to the Peer. - - * apps/Gateway/Gateway/Gateway.cpp: - - - Added necessary DLL build macros. - - - Removed error checking for Reactor::remove_handler() for STDIN - as STDIN is never registered with the Reactor on Win32. - - - Fixed the registration of SIGINT. - - - blocking_semantics_ should be 1 when blocking is on and not 0. - - - Since the Connector is currently broken with respect to - non-blocking connects, I have put a temporary fix such that - only blocking connects are done. Revert this after the - Connector is fixed. - - * apps/Gateway/Gateway/Event_Channel.cpp: - - - Only if socket_queue_size > 0, do we set a new value. - - - In reinitiate_proxy_connection(), we must unbind the proxy - from the proxy_map_ as we are no longer responsible for - this. The Connector should now be responsible for this. - - * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp: Added - necessary DLL build macros. - - * apps/Gateway/Peer/Peer.cpp: - - - Added include file and necessary DLL build macros. - - - Removed error checking for Reactor::remove_handler() for STDIN - as STDIN is never registered with the Reactor on Win32. - - - Fixed the registration of SIGINT. - - * apps/Gateway/{Peer,Gateway}: Added Win32 makefiles. - - * ace/ACE.cpp (read_adapter): Handle for the read_adapter should - always be STDIN. - -Fri May 16 18:43:17 1997 Nanbor Wang - - * ace/config-freebsd.h: Minor modification for working on FreeBSD - 2.1.x platform. Added includion of and - . Defined ACE_HAS_POSIX_TIME for 2.1.x. Redefine - timespec to timeval to hack around a bug on 2.1.x. Thanks to - Satoshi Ueno for reporting this. - -Fri May 16 12:25:32 1997 Douglas C. Schmidt - - * netsvcs/lib: Reverted back to the original Server_Logging_Handler - behavior since the new version is breaking GCC's templates. - - * ace/Log_Record.h: need to #include "ace/ACE.h" before - "ace/Log_Priority.h" so that "Log_Priority.h" sees the - configuration stuff (otherwise the following fix won't work). - - * ace/Log_Priority.h: Added a workaround for lame C++ compilers - like the one on HP/UX that can't support large enums. Thanks to - Robert Head for reporting this. - - * ace/Singleton: Added the new ACE_TSS_Singleton, which stores - Singletons in thread-specific storage. Thanks to Chris Lahey - and Rich Christy for this. - - * ace/OS.h: Removed the ACE_Singleton_Strategy since we don't need - it anymore. - - * netsvcs/lib: Added the new Server_Logging_Handler_T.* and - Log_Message_Receiver.* netsvcs. Thanks to Per Andersson for - contributing these. - - * examples/Misc/Makefile: Removed the XtReactor tests from the - Makefile until we figure out a good way to get them integrated - with the appropriate libraries. - - * ace/config-irix6.2-sgic++-nothread.h: Added the following: - - ACE_LACKS_LINEBUFFERED_STREAMBUF - ACE_HAS_SETOWN - ACE_HAS_SYSENT_H - ACE_HAS_SYSINFO - - Thanks to Torbjorn Lindgren for reporting - this. - - * ace/Proactor.cpp: Changed the use of lock() to mutex() since we - changed the name in Timer_Queue. - - * ace/Timer_Queue_T.i: Changed the name of the lock() method to - mutex() to work around compile problems with HP/UX. Thanks to - Robert Head for reporting this - workaround. - - * ace/config-irix5.3-sgic++.h: Made a few changes to get ACE to - work on IRIX 5.3. Thanks to Eugene R. Somdahl - for these fixes. - - * ace/OS: Added calloc() implementation. I don't know how - this managed to fall through the cracks! - - * include/makeinclude/platform_osf1_4.0.GNU: Added a few more - tweaks courtesy of James Johnson. - - * include/makeinclude/platform_osf1_3.2.GNU: Added a few more - tweaks courtesy of Tom Dobridge. - - * include/makeinclude/platform_osf1_4.0.GNU (DLD): Added -shared - -expect_unresolved '*' so that calls to the linker via cxx will - work correctly. Thanks to Thilo for this. - - * include/makeinclude/platform_chorus.GNU: Removed CLASSIXDIR = - /usr/home/chiang/chorus/merge/extended-i386at, added the - nostdinc flag, and removed extra whitespace. Thanks to Wei - Chiang for reporting this. - -Fri May 16 00:02:33 1997 - - * ace/ReactorEx: Even though changes to the owner field are very - well synchronized within the class code, the owner() - accessor is public and can be called from out side the - class. Therefore, I have added a owner_i() that does not do - locking. All internal calls to check the owner will use the - new accessor, whereas application code outside the class can - still use the old synchronized accessor. - -Fri May 16 11:39:51 1997 Nanbor Wang - - * ace/OS.i (sigaddset, sigdelset, sigemptyset, sigfillset, - sigismember): Added implementation when ACE_LACKS_SIGSET so that - platforms (NT?) without these functions can still manipulate - sigset_t variables. - -Thu May 15 22:19:59 1997 Douglas C. Schmidt - - * examples/ASX/Event_Server/Event_Server: Removed the THR_DETACHED - flag from options so that we can wait on the threads - correctly. - - * ace/Stream_Modules.cpp: Changed the logic for determining when - to compile the Stream_Modules.cpp code. Now, we compile it - unless ACE_LACKS_STREAM_MODULES is defined (i.e., we're on HP/UX - 10.x using aCC). - - * netsvcs/lib/Server_Logging_Handler.cpp (handle_input): Fixed - a bug in handle_input() where we need to return the result, not - just 0 or 1. Thanks to Per Andersson for reporting this. - - * ace/Log_Priority.h: Changed the values of the enums in - ACE_Log_Priority so that they can be dealt with via bitwise - operations. Thanks to Per Andersson for this. - - * include/makeinclude/platform_osf1_4.0.GNU: Added support for - templates. Thanks to Steve Huston and James Johnson for - verifying this. - - * include/makeinclude/platform_osf1_3.2.GNU: Got rid of all - unresolved symbol warnings using cxx 5.5 on DEC/OSF v3.2 by - using the linker flag "-expect_unresolved '*'." In addition, I - added -threads to the DCFLAGS macro. Thanks to Tom Dobridge - for this. - - * ace/Strategies_T: Added a minor ACE_Reactive_Strategy extension - to enable non-blocking I/O in active_svc_handler(). Thanks to - Arturo Montes for contributing this. - - * ace/config-osf1-4.0[-g++].h: Added a #define for - ACE_POLL_IS_BROKEN since DEC UNIX's poll() doesn't seem to work - correctly as a highres timer. Thanks to James Johnson and Thilo - for reporting this. - - * examples/Threads/thread_specific.cpp (worker): Changes - size_t i back to int i to avoid a signed/unsigned complaint. - Thanks to David Levine for reporting this. - - * ace/config-chorus.h: Added ACE_LACKS_MPROTECT, - ACE_HAS_IP_MULTICAST, and ACE_LACKS_SOCKETPAIR to the Chorus - port. Thanks to Wei Chiang for - reporting this. - - * ace/OS.i: Added ACE_LACKS_ACCESS to the Chorus config file - and VxWorks config file, as well as to OS.i. - -: * ace/OS.i: Added ACE_LACKS_GETSERVBYNAME to the Chorus config - file and VxWorks config file, as well as to OS.i. - - * ace/OS.i: Added ACE_LACKS_SBRK to the Chorus config file, as - well as to the definition of the ACE_OS::sbrk() function. - - * ace/OS.h: Removed #include /**/ from the Chorus-specific - part of OS.h since it's already included elsewhere. Thanks to - Wei Chiang for reporting this. - - * ace/Reactor: Added a typedef for ACE_Reactor_Token to - ACE_Null_Mutex for situations where ACE_MT_SAFE is *disabled*. - This makes the code more consistent. - - * ace/Reactor: Added an interface that makes it possible to - acquire a reference to the that is used to - serialize the internal Reactor's processing logic. This can be - useful for situations where you need to avoid deadlock - efficiently when are used in multiple - threads. Thanks to Detlef for pointing out the utility of this. - -Thu May 15 23:34:30 1997 Tim H. Harrison - - * ace/Process_Manager.cpp (spawn_n): Changed - ACE_Process_Manager::start_n to ACE_Process_Manager::spawn_n. - -Thu May 15 15:39:13 1997 Carlos O'Ryan - - * include/makeinclude/platform_hpux.GNU: - * ace/config-hpux-10.x.h: - * ace/config-hpux-10.x-nothread.h: - HP/CXX cannot achieve template closure, not even using the - dummy exec trick: apparently the repository gets a bit - corrupted. HP/CXX (version 10.24) support explicit template - instantiation, I believe this to be a superior method for - ensuring library closure (and it works). - - * ace/Task_T.cpp: - * ace/Stream_Modules.cpp: - I have changed the hack to compile under HP-UX, - "ace/Module.h" is once more included in ace/Task_T.cpp, but - "ace/Stream_Modules.cpp" is protected: it will be empty - under HP-UX unless included from the - "ace/Stream_Modules.h". I still believe that there is a - problem in the cyclic dependancy Task -> Module -> Thru_Task - -> Task; but it seems that the current hack works better. - - * ace/OS.h: - Defining ACE_UNUSED_ARG as (a) for HP/CXX does not work so I - moved it to the SGI and GCC definition. - - * ace/OS.i: - More unused args. - - * ace/Handle_Set.h: - Removed the extra qualification for ACE_Handle_Set::NBITS, - HP/CXX sends a lot of warnings with that. - - * ace/IOStream.h: - It included "IOStream.cpp" I think that "ace/IOStream.cpp" - is better. - - * ace/Local_Name_Space_T.h: - Ditto for "Local_Name_Space.h" - -Thu May 15 17:40:06 1997 - - * ace/ReactorEx.i (owner): Since changes to the owner field are - very well synchronized, we do not need to synchronize this - accessor. - - * ace/IOStream.h: Added /**/ after #include directives. - - * ace: Update Win32 makefiles to include UNICODE make option. - -Thu May 15 08:54:53 1997 David L. Levine - - * Makefile (release, cleanrelease): use -prune option to "find" - instead of filtering its output. Thanks to Chris Cleeland for - suggesting this. - -Wed May 14 21:52:22 1997 Douglas C. Schmidt - - * ace/UPIPE_Stream.cpp (control): We need to "cast away const" so - that this method can call the Stream's control() method - (which is non-const). Thanks to David Levine for locating this. - - * ace/Singleton.cpp: Finished re-implementing ACE_Singleton. - - * examples/ASX/Message_Queue/buffer_stream.cpp: Updated this - example to illustrate (1) how filters work in an ACE_Stream and - (2) to make sure that resizing buffers work. - - * ace/UPIPE_Stream.h: Changed the signature of control() - to take an int so that it will match the base class - signature. - - * ace/Singleton.h: The new ACE_SingletonEx isn't working yet. - I've #ifdef'd it out until it works. - - * examples/Threads/tss2.cpp: Updated this test program to - illustrate the use of the new ACE_SingletonEx class. - - * ace/Singleton.h: Added a new instance() method to the ACE - Singleton that can be used to set the Singleton. This is useful - for situations where the type being used as the Singleton - doesn't have a default constructor. Thanks to Arturo Montes - for this suggestion. - - * ace/Singleton: Factored out common code in the Singleton and - SingletonEx implementations so they will be cleaner and more - portable. - - * ace/Local_Name_Space_T.h, - ace/Map_Manager.h, - ace/Hash_Map_Manager.h, - ace/SString.h, - ace/Hash_Map_Manager.cpp: - - Changed all uses of the identifier "allocator" to "alloc" to - avoid conflicts with MSVC++ STL 5.0. Thanks to William - L. Gerecke for reporting this. - - * ace/config-aix-4.[12].x.h: Replaces - ACE_LACKS_PTHREAD_THR_SIGSETMASK with ACE_HAS_SIGTHREADMASK. - Thanks to Chris Lahey for this. - - * ace/OS.i (thr_sigsetmask): Added the ACE_HAS_SIGTHREADMASK - support for AIX. Thanks to Chris Lahey for this. - - * ace/Singleton: Added the new ACE_SingletonEx, which supports - both heap-based and thread-specific storage-based Singletons. - Thanks to Chris Lahey for this. - - * ace/OS.h: Added the new ACE_Singleton_Strategy to OS.h. Thanks - to Chris Lahey for this. - -Wed May 14 16:32:57 1997 David L. Levine - - * Makefile: use cpio instead of tar to allow easy filtering - of CVS files from the release. - -Wed May 14 15:00:58 1997 - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Fixed code. - - * examples/Naming: Replaced multiple makefiles with one makefile. - - * ace/OS.h: Added UNICODE support for some #defines. - - * OS.i (vsprintf): Added support for this in ACE_OS. - - * OS.cpp (socket_init && socket_fini): It is ok to print out cout - and cerr messages from here (as the C runtime library is still - attached) but it is *not* ok to print out ACE_DEBUG - messages. God only knows the state of the thread specific LogMsg - instance when the process reaches this piece of code. - - Also added a (handy) sprintf that has the following prototype: - - sprintf (wchar_t *buf, const char *format, ...) - - * ace/Process: UNICODE fixes. - - * tests: Fixed the following such that they work with UNICODE: - - Pipe_Test.cpp - Process_Mutex_Test.cpp - Process_Strategy_Test.cpp - Time_Service_Test.cpp - Tokens_Test.cpp - - * Time_Service_Test.cpp (main): Fixed typo in the svc.conf - filename for the clerk. - -Tue May 13 18:56:27 1997 Douglas C. Schmidt - - * ace/IOStream.h: To make C++ compilers happy I added - the following changes by modifying - - ACE_IOStream & operator>>( ACE_Time_Value *& tv ); - - to be - - ACE_IOStream & operator>>( ACE_Time_Value *& tv ); - - Thanks to Chuck Gehr for this fix. - -Tue May 13 21:32:12 1997 David L. Levine - - * ace/Process.cpp (~ACE_Process_Options): delete - command_line_buf_ was missing the []. - - * examples/Threads/process_manager.cpp (main): avoid compiler - warning due to implicit creation of temporary by explicitly - creating an ACE_Process_Options instance. It gets passed to - ACE_Process_Manager::spawn (ACE_Process_Options &), which - takes a non-const reference. - -Tue May 13 18:08:32 1997 - - * examples/ASX/UPIPE_Event_Server: Made enough fixes for this to - compile on Win32 but more work need to be done for this to - work on Win32. - - * ace/OS.i (kill): The error result for ::OpenProcess() is null - and *not* invalid handle. - - * ace/Process.i (kill): Changed the implementation to remove the - ACE_OS::kill() code from ACE_Process::kill() for Win32. This - allows us to avoid calling ::OpenProcess() unnecessarily. - - * tests: For Win32, added Reactor_Exceptions_Test and - Priority_Tasks_Tests. Files changes include run_tests.bat, - tests.mak, and tests.mdp. - - * tests/Future_Test.cpp (main): Fixed memory leaks in main() and - in name_i(). - - * tests/Thread_Pool_Test.cpp (open): The loop was messed up - causing memory leaks. I fixed it. - - * ace/UPIPE_Stream.cpp (close): I am not sure why the stream was - closed with M_DELETE_NONE. This indicates that close() should - not delete any Tasks. This caused a memory leak as the Tasks in - the Tail and Head modules were not deleted. I have removed this - to fix the memory leak. - - Also added a destructor such that mb_last_ is released if it is - still around. - -Tue May 13 16:48:18 1997 James C Hu - - * ace/Process.cpp: Added implementations to new interfaces - to ACE_Process_Options::setenv (char *envp[]), and - ACE_Process_Options::command_line (char *argv[]). - - * apps/JAWS/server/HTTP_Response.cpp: Required changes so that CGI - processing will work with the new ACE_Process class. - - * apps/JAWS/stress_testing/benchd.cpp: Requried changes due to - changes in the ACE_Process interface. - -Tue May 13 15:22:01 1997 Tim H. Harrison - - * ace/Process_Manager.h: Changed ACE_Process_Manager::start to - ACE_Process_Manager::spawn. - - * ace/Process.cpp (spawn): The check for a null environment argv - was incorrect. Thanks to Nanbor for finding this. - -Mon May 12 18:59:39 1997 David L. Levine - - * ace/config-mvs.h: conditionally use ACE_HAS_UCONTEXT_T or - ACE_LACKS_UCONTEXT_H depending on __COMPILER_VER__. Thanks to - Chuck Gehr for this fix. - - * OS.h, OS.cpp (thr_create), Task.h, Thread.h, Thread_Manager.h: - use ACE_DEFAULT_THREAD_PRIORITY instead of -1, because -1 is a - valid priority on Win32. Thanks to Irfan for discovering this - problem with Priority_Task_Test. - - * ace/Thread_Manager.cpp (wait_grp,wait_task): changed type of loop - index "i" from size_t to int to avoid signed/unsigned comparison. - -Mon May 12 18:41:19 1997 Nanbor Wang - - * ace/config-freebsd-pthread.h: - * ace/config-freebsd.h: Added ACE_LACKS_RWLOCK_T to FreeBSD config - files. Thanks to Amancio Hasty for - noticing this. - -Mon May 12 17:11:50 1997 Tim H. Harrison - - * ace/Process.h: Changed ACE_Process::start to - ACE_Process::spawn. Added new argv-style methods for - ACE_Process::setenv and ACE_Process::command_line. These new - argv-style methods do not have implementations yet. - -Mon May 12 15:27:41 1997 Douglas C. Schmidt - - * ace/config-aix-4.[12].x.h: Added ACE_HAS_EXCEPTIONS to - the AIX 4.* config files. Thanks to Chris Lahey for this. - -Mon May 12 13:49:54 1997 - - * ace/Thread_Manager.cpp (wait): We have to make sure that while - we wait for these threads to exit, we do not have the - lock. Therefore we make a copy of all interesting entries and - let go of the lock. We then do the join(). - - * ace/Task.cpp (wait): Removed the extra locking in wait(). The - Thread Manager will handle this correctly. - - * ace/ACE.cpp (register_stdin_handler): Changed the options such - that the Thread Manager used for the adapter is passed along to - the method executed by the new thread. We can then notify the - thread manager when this adapter thread exits. - - * examples/ASX/Event_Server/Event_Server: Changed the way the - reference count was being kept on the context. Now, the - reference count starts with zero and every instance and every - active Task increments it. This works well as Task::close() is - called one from the module being deleted and from the active - thread going away. - -Mon May 12 11:11:51 1997 - - * ace/Process.*: Removed the old ACE_Process and replaced it with - what was ACE_ProcessEx. - - * ace/Process_Manager.{i,cpp}: Updated to use the new ACE_Process - API. - -Mon May 12 08:16:38 1997 David L. Levine - - * ace/config-freebsd*.h: added support for FreeBSD 2.1.7R. - Thanks to Satoshi Ueno for figuring - out the differences and to Nanbor Wang - for updating the config files. - -Sun May 11 17:36:59 1997 - - * tests/{Pipe_Test.cpp, Process_Mutex_Test.cpp, - Time_Service_Test.cpp, Token_Service_Test.cpp}: Updated these - files to use the new ACE_Process API. - -Sun May 11 14:40:51 1997 David L. Levine - - * ace/config-osf1-4.0.h: put back ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS. - - * ace/ACE_Process.cpp (ACE_Process_Options ctor): reordered - initializers to match declaration order. - -Sat May 10 19:44:28 1997 - - * Process.h: ACE_ProcessEx now works on Solaris and NT. There - have been some changes to the API. ACE_ProcessEx::cl_options - and ACE_ProcessEx::path have been combined into - ACE_ProcessEx::command_line. ACE_ProcessEx::command_line must - be used to specify path and command-line arguments. There is - also a second ACE_ProcessEx::setenv method that allows - applications to set environment variables in a "VAR=VALUE" - format. - -Sat May 10 10:51:11 1997 Douglas C. Schmidt - - * ace/config-osf1-3.2.h: Added three new flags to the config file - for OSF/1 3.2: - - #define ACE_LACKS_SETSCHED - #define ACE_LACKS_RWLOCK_T - #define ACE_LACKS_GETPGID - - Thanks to Tom Dobridge for reporting - this. - -Fri May 09 16:37:48 1997 David L. Levine - - * ace/config-osf1-4.0.h: added DEC_CXX. - - * ace/config-osf1-4.0-g++.h: removed commented-out - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS. - - Thanks to Thilo Kielmann for - patches for the above two OSF config files. - - * ace/Sched_Params.cpp (priority_min): On Solaris (with STHREADS), - don't return priority of 0 because ::pthread_attr_setschedparam () - will refuse to use it (with EINVAL). So, bump priority of 0 up to 1. - - * tests/Priority_Task_Test.cpp: retry the task activation with - priority 0 if it fails with non-zero priority. This lets the - test run on platforms such as Linux that only let the superuser - set non-zero priority. - - * ace/ACE_Process.cpp (ACE_Process_Options ctor): reordered - initializers to match declaration order. - - * examples/Connection/non_blocking/test_lsock_acceptor.cpp: fixed - typo in template specializations: ACE_LSOCK_ACCEPTOR instead of - ACE_SOCK_LACCEPTOR. - -Fri May 9 13:07:20 1997 Douglas C. Schmidt - - * ace/UNIX_Addr: Changed the return values of all the set() - methods so that they conform to the signature used by the - INET_Addrs. - - * examples/Connection/non-blocking: Added two new test programs, - test_lsock_{connector,acceptor}.cpp that - - - * ace/LSOCK_Stream.cpp: Revised the get_remote_addr() method so - that it uses the underlying ACE_SOCK::get_remote_addr() method - rather than the get_local_addr() method. Hopefully, this will - fix an ACE bug with UNIX domain sockets. Thanks to Paul Han - for reporting the problem and the fix. - - * include/makeinclude/platform_aix4.2.GNU (LLIBS): Changed - - LLIBS = -lC_r -lC -lpthreads -lbsd -ltli_r -ldl -lc_r -lm -lc $(ACELIB) - - to - - LLIBS = -ltli_r -ldl $(ACELIB) - - MakeC++SharedLib_r includes all the other libs automatically in - the search. - - * apps/Gateway/Gateway/Proxy_Handler.h: Moved the handle_close() - method into the public section since the Connector now calls it. - - * ace/Containers.cpp: Updated all the operator= methods so - that they no longer try to return *this. Thanks to Chris Lahey - for reporting this. - - * ace/IOStream.h: Replaced __alpha with DIGITAL_UNIX && DEC_CXX. - Thanks to Thilo for reporting this. - - * build/gcc/tests/Simple_Message_Block_Test.cpp (main): Changed - the use of ACE_Mutex to ACE_SYNCH_MUTEX so that everything will - build correctly on non-MT platforms. - - * ace/Timer_{Heap,List}_T.cpp: To ensure backwards compatibility - with the old "int" return value of Timer_*::schedule() we must - cast the long value to int before returning it. Thanks to Thilo - Kielmann for reporting this. - - * ace/Acceptor.cpp, - ace/Connector.cpp: - If an active or passive connection times out and the Connector - or Acceptor calls the handle_timeout() method of the - Svc_Handler, we now keep track of whether the handle_timeout() - method returns -1. If so, we call handle_close() on the - Svc_Handler automatically. Thanks to Michael Hartman - for suggesting this. - - * tests/IOStream_Test.cpp: Fixed this test so that it runs on - non-MT platforms. - - * ace/Module.cpp: Changed the implementation of the close_i() - method so that it will wait for all active threads in a Task to - exit before deleting the task. - - * ace/Task: Added a wait() method on an ACE_Task that will use the - new ACE_Thread_Manager::wait_task() method to block until all - threads have shutdown in a Task. - - * ace/Thread_Manager: Finally implemented the wait_task() and - wait_grp() interfaces on ACE_Thread_Manager. - - * ace/SOCK_Dgram.cpp: Added a timed recv() operation. Thanks - to Hongbo Xu for contributing this. - - * ace/Timer_Queue_T.cpp: Added #include "ace/Synch.h" to keep the - DEC C++ compiler happy. Thanks to James CE Johnson - for this. - - * ace/Containers.i (size): Changed to so that this - compiles on the Alpha. Thanks to James CE Johnson - for this. - - * ace/IOStream.h: Include the std_macros header on the Alpha. - Thanks to James CE Johnson for this. - - * include/makeinclude/platform_osf1_4.0.GNU (SOBUILD): Removed - -lACE from the link line. Thanks to James CE Johnson - for this. - - * tests/Timer_Queue_Test.cpp: Changed all the int timer ids to - long so that the test will work on DEC ALPHAs. Thanks to Thilo - Kielmann for reporting this. - - * ace/Process: Fixed a number of compile problems for UNIX. - - * ace/Process.h: Changed the methods named stdin/stdout/stderr to - std_in/std_out/std_err to avoid name clashes with the standard C - library. - - * ace/OS: Changed the use of ACE_Unbounded_Set to - ACE_Unbounded_Stack in order to get the appropriate semantics - for TSS cleanup on NT. - - * ace/Containers: Enhanced the ACE_Unbounded_Stack class so - that it supports insert()/remove()/find() methods. These - rather unorthodox methods are useful for implementing the - TSS semantics required by OS.cpp. - - * ace/Containers: Revised all the interfaces for the various - containers so that they all have the same "look and feel." - -Fri May 9 00:00:21 1997 James C Hu - - * apps/JAWS/server/HTTP_Request.{h,cpp}: Added a uritopath - translation method, so that CGI location can be computed as it - is searched. Added methods to access the parsed headers. - - * apps/JAWS/server/HTTP_Response.{h,cpp}: Flushed out the - implementation of cgi_response () method. If all goes well, it - should be able to execute a CGI program. I don't set the IO - handles to point at the socket handle yet. - - * apps/JAWS/server/README: Updated description of JAWS behavior. - -Thu May 8 18:04:14 1997 Irfan Pyarali - - * ace/Containers: Made the return values of Container methods - more consistant with other components of ACE (i.e., 0 for - success, -1 for failure). - - * ace/Containers (ACE_Unbounded_Stack::delete_all_nodes): - Fixed subtle bug in delete_all_nodes. - - * ace/OS.cpp (ACE_TSS_Cleanup::exit): Changed because of - return value changes in ACE containers. - - * Containers: Added size methods to stack containers and - consolidated friendship between ACE_Unbounded_Stack_Iterator and - ACE_Unbounded_Stack - - * tests/Message_Block_Test.cpp: I was incorrect about each data - block having its own lock. Since *many* data blocks can share - the same lock, for the case of message block chains, we would - like to optimize locking. - - Therefore, the first guy in the chain grabs the lock and passes - it to the continuation chain. When each guy in the chain gets - it, it compares the passed lock to its own locking strategy. If - it is the same lock, no need to acquire the lock again. If our - lock is different, then we do our own locking. - - * tests/Simple_Message_Block_Test.cpp: 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 :-) - - * tests: Added new test. Following changed: - Makefile run_tests.bat run_tests.sh tests.mak tests.mdp - -Thu May 8 18:04:14 1997 James C Hu - - * include/makeinclude/platform_irix6.2_sgic++.GNU: Moved SGI C++ - options out of CPPFLAGS into CCFLAGS so that gcc won't emit - diagnostics during a make depend. - -Thu May 8 11:52:41 1997 Chris Cleeland - - * ace/{Task,Thread}.h: Added documentation describing - thread priority determination to methods where priority - is an [optional] argument. Note that if you want to inspect - the REAL documentation, you should look at the code for - ACE_OS::thr_create(). But that's convoluted and touchy. - - * ace/Strategies_T.h (ACE_Cached_Connection_Strategy): Added - documentation for this class. - -Thu May 08 00:10:00 1997 - - * ace/Process.*: This is the first pass at the new ACE_Process - class. It is now called ACE_ProcessEx. When it is completely - ported to Solaris, we'll replace the current ACE_Process with - ACE_ProcessEx. - - * examples/OS/Process/process.cpp: Added some examples for the - new ACE_ProcessEx. - -Wed May 07 21:58:29 1997 - - * ace/Message_Block.h: ACE_Data_Block calling delete on the - ACE_Message_Block was incorrect. This was a hack to simplify - the locking issues! However this optimization leaded to - incorrect code. Therefore I have taken this behavior out. The - new implementation will lock and unlock multiple times in the - case when there are message_blocks in the continuation field, - all of which point to same data block. However, this is a - strange case that can be optimized later. For now correct code - is more important. - - Also, the continuation message blocks are only deleted in the - release() method and not in the destructor. This will ensure - that if message blocks of the stack are chained together, we - will not call release on message blocks of the stack. - - Also note that release() should only be called on message blocks - that have been dynamically allocated. Message blocks of the - stack will clean up properly when the activation record of the - method completes. Dynamically allocated messages blocks should - *never* be chained with message blocks allocated of the stack. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.h: Removed - empty definitions of assignment operator and copy constructor. - - * examples/ASX/Event_Server/Event_Server/event_server.cpp - (handle_input): Added code here will make sure we actually wait - for the user to type something. On platforms like Win32, - handle_input() is called prematurely (even when there is no - data). - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Changed - a log message. - -Wed May 7 22:55:00 1997 James C Hu - - * JAWS/server/*: Debugging changes! GET and HEAD both work - now. As well as changes to make it compile cleanly on - VXWORKS, as reported by David. - -Wed May 07 16:05:39 1997 David L. Levine - - * ace/Makefile: added Timer_Wheel to FILES. Thanks to Thilo - Kielmann for reporting this. - - * include/makeinclude/platform_irix6.2_sgic++.GNU: enabled CPPFLAGS - to instantiate all templates so that gatewayd will build. - Thanks to Nathan N. Vuong for reporting - this problem and Eric Dean Russell - for supplying and the fix. - - * ace/Map_Manager.h: updated comments to indicate that find - functions return a non-negative integer if the item is found. - - * ace/Map_Manager.cpp (find_i (const EXT_ID &, INT_ID &)): return - index instead of 0 if the item is found, to be consistent with - find_i (const EXT_ID &). - - * ace/IOStream.cpp (ACE_Streambuf_T ctor): added initializations of - eback_saved_ and pbase_saved_ to avoid unitialized memory read - reports from Purify. - -Tue May 6 07:39:25 1997 Douglas C. Schmidt - - * ace/Service_Config.cpp (open): Make sure to perform the - daemonization logic first so that we get a new process created - before initializing reactors, etc. Thanks to Adrian Salt - for reporting this. - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main): - Changed ACE::INVALID_HANDLE to ACE_INVALID_HANDLE. - Thanks to Dani Flexer for - reporting this. - - * tests/Conn_Test.cpp (compare_i): Changed the comparison from - a1 == a2 to a1 != a2 since this appears to be what is needed. - We need to improve the comments here! - - * tests/Conn_Test.cpp: Split the definition of the Svc_Handler - template into its own Conn_Test.h file to work around "features" - with AIX C++. Thanks to Chris Lahey for reporting this. - - * ace/Containers.cpp: Fixed a bug in the set() method for - ACE_Unbounded_Queue. Again, thank goodness for cs242! - - * ace/Containers.cpp: Fixed a bug in the enqueue_head() logic for - ACE_Unbounded_Queue. Thank goodness for cs242 ;-). - - * ace/Containers.cpp: Added a destructor for ACE_Node to keep the - compilers happy. - -Tue May 06 11:31:49 1997 David L. Levine - - * netsvcs/lib/*.cpp: removed break statements after - ACE_RETURNs to avoid unreachable statement warnings from - GHS. - - * ace/OS.cpp (mktime): added time_t cast of -1 (error) return - to avoid compiler warning. - - * ace/config-vxworks-ghs-1.8.h: added ACE_LACKS_SIGNED_CHAR. - - * ace/Containers.cpp (dequeue_head): fixed typos in variable names. - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - removed #ifdef ACE_HAS_TLI around some template specializations so - that this subproject will build on platforms non-TLI platforms such - as Linux. - -Tue May 6 17:02:54 1997 James C Hu - - * ace/OS.{h,i}: Added strftime (). Also, enhanced strcasecmp - implementation to account for lexicographical ordering for - mismatches. - - * apps/JAWS/server/Parse_Headers.{h,cpp} (class Headers_Map): - Changed signature of casting operator to return a pointer - rather than a reference to a constant pointer, to fix - anachronism warning Doug found. - - * apps/JAWS/server/HTTP_Config.{h,cpp}: Added class - HTTP_Config to be a container for HTTP server options - such as locations of directories, port, etc. - - * apps/JAWS/server/HTTP_Helpers.{h,cpp}: Added code to enhance - support for CGI scripts: - - Added HTTP_decode_string to HTTP_Helper class, to deal - with percent codes. - - * apps/JAWS/server/HTTP_Request.{h,cpp}: Added code to enhance - support for CGI scripts: - - Added cgi_, cgi_env_, and cgi_args_ data members to - and corresponding accessors. - - Added nice accessors to the important data members to - simplify other parts of the code. - - Added method to parse URI to determine the name of the CGI - executable if present. - - * apps/JAWS/server/HTTP_Response.{h,cpp}: Added code to - enhance support for CGI scripts: - - Hooks are now present to make the appropriate calls - to activate a CGI program. - - * apps/JAWS/server/*.{h,cpp} - Various changes from the ACE mailing list incorporated. - Cosmetic changes for ACE coding style. - - SGI fixes. - -Tue May 6 00:00:54 1997 Chris Cleeland - - * ace/Message_Block.cpp: Added template specialization for - ACE_Guard<> that prevented ACE from compiling under Linux. - -Mon May 5 22:17:15 1997 Sumedh Mungee - - * apps/JAWS/stress_testing: Removed the usleep definition from - global.h, it was unused by the program. - -Mon May 05 21:01:42 1997 David L. Levine - - * ace/config-linux*.h: added ACE_HAS_STRING_CLASS. Thanks to - Luis Lopes for reporting this. - -Mon May 05 19:58:16 1997 - - * ace/ace.{mak,mdp}: Readded IOStream.cpp to the makefile. - - * ace/Synch_T.h: Added ACE_SYNCH_RECURSIVE_MUTEX. - - * ace/Timer_Queue: Added an extra template parameter to - Timer_Queues that specifies the type of locking to be used - inside of the timer queue. - - Also changed the functor callback routines so that they are more - descriptive compared to operator (). - -Mon May 5 21:37:01 1997 Douglas C. Schmidt - - * ace/Message_Block: Revised the release() logic for - ACE_Message_Block and ACE_Data_Block so that we will delete both - within the same block of code in order to hold the lock. This - should prevent nasty race conditions in multi-threaded programs. - Thanks to Craig Perras for - reporting this problem. - - * ace/Message_Block.cpp: Replaced an explicit acquire()/release() - of ACE_Lock::locking_strategy_ with a call to an ACE_Guard. - - * ace/Containers.cpp (set): Optimized for the common case where - we're increasing the size of the set by 1. - - * ace/Containers: Merged the ACE_Set_Node, ACE_Stack_Node, and - ACE_Set_Node into a single "ACE_Node" class. This tidies up the - code quite a bit. - - * ace: Removed the Set.* and Stack.* files and replaced them with - the Containers.* files. This file contains the ACE_*Stack, - ACE_*Queue, and ACE_*Set classes. If this revised file scheme - breaks existing code please let me know and I'll provide - backwards compatibility. - - * ace/Stack: Changed the name of ACE_Unbounded_Queue::enqueue() to - ACE_Unbounded_Queue::enqueue_tail() and also added - ACE_Unbounded_Queue::enqueue_head(). - - * ace/OS: Changed the names of the parameters of the ACE_OS::mem* - methods from ACE_OS::mem* (void *s, const void *t) to - ACE_OS::mem* (void *t, const void *s) since "t" should stand for - "target" and "s" for "source." Thanks to Andres Kruse - for pointing this out. - - * ace/Stack: Removed the peek() method from ACE_Unbounded_Queue. - This functionality is now subsumed by the get(..., 0) method. - If this breaks any existing code please let me know. - - * ace/Stack.h: Moved all the functionality from ACE_Unbounded_Set - into ACE_Unbounded_Queue. That's really where this belonged in - the first place. Thanks to David Levine for noticing this. - - * ace/Set.h: Moved ACE_Set_Node from the *.cpp file into the *.cpp - file in anticipation of AIX C++ compiler bugs ;-). - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - Rearranged the location where we register to receive standard - input so that the socket handle will not be initialized at this - point. Thanks to craig perras for - reporting this. - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp - (Event_Transceiver): Make sure to #ifdef around SIGQUIT for - WIN32 since it lacks this signal. Thanks to craig perras - for reporting this. - - * ace/config-osf1-4.0-g++.h: Removed the ACE_LACKS_SIGNED_CHAR - since this seems to be compiler specific. Thanks to Thilo for - this insight. - - * ace/Strategies_T: Added a number of fixes and enhancements to - the new Hash_Addr and ACE_Cached_Connect_Strategy classes. - - * ace/Strategies_T.h: Added #include for "Hash_Map_Manager.h". - Thanks to Amos Shapira for reporting this. - - * ace/config-hpux-10.*.h: Applied a number of patches courtesy of - Carlos O'Ryan. - - * ace/Dump.cpp: Changed a cast from - - delete (ACE_Dumpable_Ptr *) this->dumper_; - - to - - delete (ACE_Dumpable *) this->dumper_; - - This fixes a potential bug. Thanks to Carlos O'Ryan for this - bug report. - - * ace/DEV_IO.h, - * ace/SPIPE_Stream.h: Removed the = 0 default value for one send() - method to avoid ambiguity with the other send() method. Thanks - to Carlos O'Ryan for this bug report. - - * ace/Map_Manager.cpp (advance): Removed a cast to size_t since - that is always true. Thanks to David Levine for pointing this - out. - - * ace/XtReactor: Moved the remove_handler_i() and - register_handler_i() methods into the protected portion - of the class. Since these should never be called by the - client I've moved them into protected portion to ensure this - is the case. - - * ace/XtReactor: Changed the implementation of the XtReactor to - use long for dealing with timers. Thanks to Stuart Powell - for reporting this. - -Mon May 5 17:16:41 1997 Carlos O'Ryan - - * ace/config-hpux-10.x.h, config-hpux-10.x-nothread.h: - Some patches are needed to compile ACE under HP-UX (using HP/C++), - I documented those patches. - -Mon May 05 11:50:39 1997 David L. Levine - - * netsvcs/lib/Server_Logging_Handler.cpp: fixed ACE_Svc_Handler - specializations, yet again, for Linux w/LXPthreads. Thanks to - Luis Lopes for reporting this - problem with sufficient detail for us to track it down. - - * ace/Stack.* (ACE_Unbounded_Queue): - - 1) made peek () const. - 2) added another peek (u_int index = 0) function that can peek - at any queue item, not just the first. It returns a pointer - to the item (or 0 if not found), to avoid copying. - 3) changed return type of size () from int to size_t. - 4) inlined size (). - - * ace/Strategies_T.cpp (connect_svc_handler, operator==): - added return type. - - * netsvcs/lib/Server_Logging_Handler.cpp: fixed template - specializations for platforms that have neither THREADS nor - TLI. Thanks to Nanbor Wang for reporting this. - -Sun May 4 12:34:09 1997 Douglas C. Schmidt - - * ace/OS.cpp: If ACE_HAS_THREADS isn't defined then we'll just - use mktime() without the locking. - - * ace/Set: Removed the get() methods from the ACE_Fixed_Set and - ACE_Bounded_Set since they don't make much sense on these - abstractions. - - * ace/Set: Changed the new "find" method to be called "get" to - correspond to the new "set" method I'm adding. - - * ace/SString.cpp: Added a operator << for ACE_CString in - order to print it with iostreams. - - * ace/Set.cpp: Added a reset method to the ACE_Unbounded_Set to - remove all the nodes without completely destroying the set. - - * ace/SString: Added friend operator+ to both ACE_CString and - ACE_WString in order to provide a concatenation operator. - - * ace/SString: Added a compare() method to all the ACE String - classes. This behaves just like the Standard C library strcmp() - function. - - * ace/Message_Queue.i: Oddly, there were a bunch of methods - defined in this *.i file that didn't have ACE_INLINE in front of - them. I'm surprised this didn't give compile errors on some - platforms. I've fixed this by moving these methods into the - *.cpp file. - - * ace/Stream, - ace/Service_Repository, - ace/Reactor, - ace/Message_Queue, - ace/Map_Manager, - ace/Malloc_T, - ace/Hash_Map_Manager, - ace/Set: Added a done() method on all the iterators so that - we can check within the iteration itself to see if there are any - remaining elements. In addition, updated the return value of - advance() on all iterators so that it returns 1 if we're not - done and 0 if we're done. - -Sun May 04 07:22:49 1997 David L. Levine - - * ace/Timer_Heap_T.cpp: changed some more int declarations to longs. - -Sat May 3 17:38:19 1997 Douglas C. Schmidt - - * Changed all uses of Reactor::{scheduler_timer,cancel}() and - Timer_{Queue,List,Heap,Wheel}::{schedule,cancel}() to use - long rather than int. This is important since it ensures that - we can make the Timing Wheels trick of casting the - Timer_Node * to long work correctly on machines that have 64 - bit pointers, 64 bit longs, and 32 bit ints (e.g,. DEC - ALPHA). Thanks to Thilo Kielmann - for pointing this out, - even though he finds this solution distasteful ;-). - - * netsvcs/lib/TS_Clerk_Handler.cpp (initiate_connection): I - believe there was also a bug here -- if schedule_timer() returns - 0 that's not an error! - - * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp - (initiate_connection): I believe there was a bug here -- if - schedule_timer() returns 0 that's not an error! - - * tests/IOStream_Test.cpp: Added some minor changes for DEC UNIX. - Thanks to James CE Johnson for reporting - this. - - * ace/IOStream: Added a number of minor changes for DEC UNIX. - Thanks to James CE Johnson for reporting - this. - - * ace/config-osf1-4.0.h: Added - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS to the config.h file. - Thanks to James CE Johnson for reporting - this. - - * ace/SString: Made the ace_string_null_string_ a static data - member rather than an external constant. This should control - the name space a bit better. - - * ace/SString.cpp: Fixed the ACE_CString::operator += so that it - won't screw up if this->rep_ initially points to the - ACE_String_null_string_. - - * examples/Misc: Added a new test_set.cpp program that exercises - the ACE_*_Set classes. - -Sat May 03 06:56:10 1997 David L. Levine - - * ace/Map_Manager.cpp (dtor): removed void return (typo). - - * ace/Set.cpp (ACE_Fixed_Set::operator =): typo: fs instead of bs. - - * ace/Set.cpp (ACE_Fixed_Set::find): typo: index instead of i. - - * ace/IOStream.cpp: fixed typo: "#if defined" instead of just "#if". - - * tests/Conn_Test.cpp, - netsvcs/lib/{Client_Logging_Handler,TS_Clerk_Handler}.cpp, - netsvcs/clients/Tokens/manual/manual.cpp, - apps/Gateway/Gateway/Event_Channel.cpp,: - apps/JAWS/client/Blob.cpp, - examples/ASX/Event_Server/Event_Server/Peer_Router.cpp, - examples/ASX/Event_Server/Transceiver/transceiver.cpp, - examples/ASX/UPIPE_Event_Server/{Consumer,Supplier}_Router.cpp, - examples/Connection/misc/test_upipe.cpp, - examples/Connection/non_blocking/test_*_connector.cpp: added - ACE_Map_Entry template specialization. It's needed now that the - destructor is explicit. - -Fri May 2 14:57:56 1997 Douglas C. Schmidt - - * ace/Map_Manager.cpp: Added a no-op destructor to ACE_Map_Entry - just to keep some compilers happy. Thanks to Chuck Gehr for - reporting this. - - * ace/config-osf1-4.0.h: Added - - #define ACE_LACKS_IOSTREAM_FX - #define ACE_LACKS_LINEBUFFERED_STREAMBUF - #define ACE_LACKS_SIGNED_CHAR - - Thanks to James CE Johnson for reporting - this. - - * ace/Timer_{Wheel,Heap,List}_T.h: Fixed a typo in all these - classes that was failing to put the keyword "class" after - "friend." Also, replaced the use of the typedef with the - expanded name of the class to work around problems with DEC - C++. Thanks to James CE Johnson for - reporting this. - - * ace/Set: Added a find() method that will return the "ith" - element in the set. - - * ace/Set: Added copy constructors and assignment operators to all - the ACE_*_Set classes. - - * ace/Set.cpp: Changed the implementation of ACE_Unbounded_Set to - use a dummy node and a circular list. This improves performance - and also makes it possible to implement "queue" semantics for - inserting at the tail of the set. - - * ace/config-osf1-4.0.h: Added the ACE_HAS_STRING_CLASS macro. - Thanks to James CE Johnson for this. - - * ace/IOStream: Added the ACE_HAS_STRING_CLASS macro to - replace the nasty #ifdefs we had previously. Thanks to - James CE Johnson for this. - - * ace/config*.g++: Added ACE_HAS_STRING_CLASS for all the GNU - compilers and Win32. - - * ace/config-mvs.h: Added a new version that contains support for - IBM OS/390 r2. Thanks to Chuck Gehr for this. - -Fri May 02 08:14:30 1997 David L. Levine - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: removed - specializations of ACE Guards because they're in libGateway. - Thanks to Joey Zhu for reporting this problem. - - * examples/ASX/Event_Server/Transceiver/{Makefile,transceiver.cpp}: - added template specializations to transceiver.cpp so that it no - longer needs to be linked with libGateway. - - * examples/ASX/Event_Server/Event_Server/{Makefile,Peer_Router.cpp}: - added template specialization to Peer_Router.cpp so that event_server - no longer needs to be linked with libGateway. - - Thanks to Joey Zhu for reporting the above - link problems. - - * apps/Gateway/Peer/{Makefile,Peer.cpp}: added template - specialization to Peer.cpp so that peerd no longer needs to - be linked with libGateway. - - * Log_Msg.cpp (VxWorks only): fixed used of ::taskDeleteHookAdd (it - should only be called once for all Log_Msg instances) and added call - to ::taskDeleteHookDelete to clean up when the last task exits. - Thanks to Dave Mayerhoefer for - reporting this. - - * tests/Conn_Test.cpp: changed some fprintf print specifiers to avoid - g++ warnings about printing pointer values. - -Thu May 01 00:05:59 1997 - - * tests/Time_Service_Test.cpp (main): Made sure that the backing - store is not there at the start of the program. We need to make - sure because this test kills the Time Clerk and on some - platforms the Clerk is not allowed to do a graceful shutdown. By - cleaning the backing store here, we are sure that we get a fresh - start and no garbage data from a possible aborted run. - - The old code deleting the backing store at the end of the test - is still there but does not work on Win32 as unlink fails with - ERROR_ACCESS_DENIED. I am not sure why this is happening! For - now the unlink at the start of the program will do. - - Also added a wait for the clerk before deleting the backing - store. This way we are sure that we do not delete the backing - store before the clerk is done with it. - - * netsvcs/lib/TS_Clerk_Handler.cpp: Fixed an obscure bug with - ACE_TS_Clerk_Processor. ACE_TS_Clerk_Processor (which is an - ACE_Connector) and all its pending connection objects are still - registered with the Reactor when the process exits and the - Service_Object is deleted. After this the destructor of the - Reactor then calls handle_close on ACE_TS_Clerk_Processor - (which does not exist anymore), causing a seg fault. The - solution is to call ACE_Connector::fini from - ACE_TS_Clerk_Processor::fini. ACE_Connector::fini will - unregister ACE_TS_Clerk_Processor and all pending connects from - the Reactor. - -Wed Apr 30 17:47:11 1997 Douglas C. Schmidt - - * ace/OS.i (getpwnam_r): Changed the expression to check if - getpwnam_r() returns -1 for AIX. Thanks to Chris Lahey for - this. - - * ace/Timer_Wheel_T.h: changed - - // = Don't allow these operations for now. - ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T &); - void operator= (const ACE_Timer_Wheel_T &); - - to: - - // = Don't allow these operations for now. - ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T &); - void operator= (const ACE_Timer_Wheel_T &); - - Thanks to Chuck Gehr for reporting this. - - * ace/OS.cpp: Made mktime() thread-safe. If any platforms support - multi-thread safe versions of mktime() please let me know so we - can set the ACE_HAS_MT_SAFE_MKTIME macro for that config file. - - * ace/OS.i: Added a new special case for getpwnam_r() on AIX. - Thanks to Chris Lahey for reporting this. - -Wed Apr 30 16:01:04 1997 James C Hu - - * ace/OS.i, ace/OS.h: added mktime(). - -Wed Apr 30 14:17:34 1997 David L. Levine - - * ace/config-vxworks*.h: added ACE_LACKS_PWD_FUNCTIONS. Thanks - to Dave Mayerhoefer for reporting - this. - - * ace/OS.i: cleaned up ACE_LACKS_PWD_FUNCTIONS comments a bit. - - * ace/Array.{h,i}: added const operator []. - - * ace/Array.cpp (ctors): reordered initializers to match declaration - order. - - * netsvcs/lib/Server_Logging_Handler.cpp: protect against multiple - inclusion. Thanks to Kevin Martindale - for reporting this problem. - -Wed Apr 30 08:42:55 1997 Douglas C. Schmidt - - * ace: Added a new generic Array class, which we'll use until - STL becomes more widely portable. - - * ace: Added a new macro ACE_LACKS_GETPGID to clean up the code - in ACE_OS::getpgid(). - - * ace: Added new config*.h files and platform*.GNU files for - FreeBSD. Thanks to Nanbor Wang for these. - -Wed Apr 30 07:44:36 1997 David L. Levine - - * ace/config-osf1-4.0*.h: removed ACE_HAS_SIGWAIT. - - * ace/OS.{h,i}: applied Thilo's patch for sigwait on Digital - Unix 4.0, which defines sigwait as a macro. Thanks to - Thilo Kielmann for - this and the above config file patches. - - * ace/IOStream.{h,cpp}: James CE Johnson updated - the IOStream class; see comments in IOStream.h. - - * examples/Logger/client/logging_app.cpp (main), - performance-tests/Misc/test_naming.cpp (*): replaced sprintf - with ACE_OS::sprintf. Thanks to Thilo Kielmann - for reporting these. - -Tue Apr 29 20:03:38 1997 - - * apps/JAWS/stress_testing/http_tester.cpp : Removed usage - of pow (), and changed method of calculating throughput/latency - to use straight multiplication instead of pow (). Updated - Makefile to not link -lm. - -Tue Apr 29 19:57:52 1997 - - * config-win32-common.h (ACE_HAS_TEMPLATE_SPECIALIZATION): Win32 - supports this option. Added to config file. - - * ace: Removed tracing for the following to make things work with - tracing on: - - ACE::timestamp - ACE_FIFO_Send_Msg::send - ACE_SPIPE_Stream::send - ACE_Sig_Guard::ACE_Sig_Guard - ACE_Sig_Guard::~ACE_Sig_Guard - - * netsvcs/servers/main.cpp (main): Added special code for Win32 - such that only SIGINT is being registered with the Signal - Handler. SIGQUIT is not supported on Win32. - - * netsvcs/lib/Token_Handler.cpp (init): Removed the registration - of the Acceptor for SIGINTs. - - * netsvcs/lib/TS_Server_Handler.cpp (init): Same as above. - - * netsvcs/lib/Client_Logging_Handler.cpp (open): Removed the - registration of SIGPIPE for Win32. Win32 does not support - SIGPIPE. - - * tests/Process_Strategy_Test.cpp (server): The new thread must - become owner before it can call Reactor::handle_events. Also - fixed #define typo. - - * ace/OS.cpp (socket_fini): Remove the ACE error message as the IO - Stream objects are already gone by this point in the program. - - * examples/Registry/Registry.mak: Replaced the old makefiles with - this one. Also added _AFXDLL as a preprocessor define, forcing - the correct inclusion of header files that give a consistent - definition of HKEY. This is a hack till we have a better - solution. - - * ace/Event_Handler: Removed the old Proactor callback methods. - -Tue Apr 29 17:39:40 1997 Douglas C. Schmidt - - * ace/config-mvs.h: Added #define ACE_LACKS_LINEBUFFERED_STREAMBUF - for MVS. Thanks to Chuck Gehr for - reporting this. - - * ace: Commented out ACE_TRACE calls in constructors in - several ACE classes in order to avoid problems with circular - initialization dependencies related to mutexes that are - breaking code on WinNT when ACE_NTRACE is set to 0. Thanks - to Lothar Hermann for - reporting these. - - * ace/Reactor.cpp: It looks as if Windows NT isn't returning - the number of bytes requested by a WinSock recv() used in - the ACE_Reactor::notify() in some situations. This is - causing problems for test programs under heavy load. The - fix appears to be to add an additional ACE::recv() to obtain - the remaining bytes. Thanks to Karlheinz for reporting this - and to Irfan for helping to fix it. - - * ace/OS.i: Fixed a very subtle bug with ACE_OS::cond_wait() and - ACE_OS::cond_signal() that only manifests itself when - ACE_HAS_SIGNAL_OBJECT_AND_WAIT is enabled (which isn't the - default). The problem stemmed from the fact that we were - assuming that if we used condition variables it implied that the - external mutex had USYNC_PROCESS scope. In fact, the external - mutexes typically have USYNC_THREAD scope, so - SignalObjectAndWait() was hanging indefinitely. Fortunately, - the fix was easy -- just add a run-time check for the type of - the external mutex and take the appropriate action. Thanks to - Irfan for noticing this. - - * tests/Reader_Writer_Test.cpp: Added a parse_args() function that - allows us to override the default number of reader/writer - threads + the number of iterations. - - * ace/OS: Added patches for Digital UNIX to handle the - getpwnam_r() name. Thanks to Thilo Kielmann - for these patches. - -Tue Apr 29 14:27:19 1997 - - * OS.h: Added ACE_HAS_SVC_DLL. If you write a library and - want it to use ACE_Svc_Export, this will cause those macros - to build dlls. If you want your ACE service to be a static - library, comment out this line. As far as I know, the only - reason to have a library be an ACE "service" is to leverage - the ACE_Svc_Export macros. It's just as easy to define your - own export macros. - -Tue Apr 29 07:25:25 1997 David L. Levine - - * apps/JAWS/server/HTTP_Request.h (HTTP_Request): added destructor - declaration. - - * apps/JAWS/server/Parse_Headers.cpp (parse_header_line): assign local - "value" to value_ field of map_[header]. - - * apps/JAWS/server/HTTP_Request.cpp (HTTP_fix_path): commented this - static function out because it's not used, and g++ warns about that. - - * apps/JAWS: added CVS header to all .h, .i, and .cpp files. - -Tue Apr 29 00:33:46 1997 - - * examples/Reactor/Misc/notification.cpp: Add this test to the - Win32 makefile. - - * ace: Removed config-win32-msvc2.0.h, config-win32-msvc4.0.h - config-win32-msvc4.x.h, and config-winnt-4.0-msvc.h from the - repository. These files have been replaced by config-win32.h - and config-win32-common.h. - - * IOStream_Test.cpp (main): Added return 0 at the end of main(). - - * examples/Reactor/Proactor/test_proactor.mak: Added wsock32.lib - to the link line. I am not sure why we have to do this again - since ace.lib already includes it. Without this library in the - link line, GetAcceptExSockaddr is not defined. Go figure! - - * apps/JAWS/server/jaws.mak: Same as above. - - * ace/ace.{mak,mdp}: Fixed the generation of the release version - of ace.dll such that wsock32.lib is automatically included. - -Tue Apr 29 00:16:27 1997 James C Hu - - * JAWS: Changes to support CGI scripts - - Changed the following files -- - HTTP_Handler.cpp HTTP_Handler.h HTTP_Helpers.cpp - HTTP_Helpers.h HTTP_Request.cpp HTTP_Request.h IO.cpp IO.h - - Added the following files -- - HTTP_Response.cpp HTTP_Response.h Parse_Headers.cpp - Parse_Headers.h - - Removed the file -- - JXH_String.h - - * JAWS/stress_testing: Changed the Makefile to link in the math - library (-lm). - - * ace/OS.h and ace/OS.i: Added support for memmove(). - -Mon Apr 28 21:35:35 1997 Douglas C. Schmidt - - * ace/IOStream.h: Added a new macro called - ACE_LACKS_IOSTREAM_SETGET, which works around bugs with SGI C++ - on IRIX 6.2. Thanks to Torbjorn Lindgren for - reporting this. - - * ace/Timer_List_T.h: Replaced the use of - ITERATOR with ACE_Timer_Queue_Iterator_T to - work around problems with SGI C++. Thanks to - Torbjorn Lindgren for reporting this. - - * ace/Timer_List_T.cpp: Removed the use of NODE * and replaced it - with ACE_Timer_Node_T in order to work around - bugs with certain C++ compilers (i.e., SGI). Thanks to Torbjorn - Lindgren for reporting this. - - * tests/Conn_Test.cpp: Removed some extraneous template - specializations. Thanks to Nanbor Wang for - reporting these. - - * apps/JAWS/client/Blob.cpp: Rearranged some of the template - specializations in the hope of fixing a linker problem with - SunC++ 4.2. - - * ace/config-irix-6.2*.h. It appears that SGI IRIX 6.2 supports - pread() and pwrite() so I enabled the ACE_HAS_P_READ_WRITE macro - in the IRIX 6.2 config file. - - * ace/OS.cpp: Implemented ACE_OS::pread() and ACE_OS::pwrite() for - systems that lack this feature. The implementation uses the new - ACE_Thread_Mutex monitor lock in order to ensure atomicity - between the lseek() and the read()/write(). - - * ace/OS.cpp: Finally broke down and added a ACE_Thread_Mutex - monitor lock to the ACE_OS implementation file. This is useful - for situations where we need to serialize certain ACE_OS - emulation calls (e.g., ACE_OS::{pwrite,pread}). - -Mon Apr 28 15:42:48 1997 David L. Levine - - * apps/JAWS/client/blobby.cpp: updated template specializations. - - * apps/JAWS/stress_testing/global.h: removed #includes of system - headers because ace/OS.h takes care of them. They were causing - warnings with g++ (because they were #included before OS.h). - - * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: fixed - typos in template specializations. - - * tests/Conn_Test.cpp,Message_{Block,Queue}_Test.cpp, - Process_Strategy_Test.cpp: fixed template specializations - for platforms without threads. Thanks to Nanbor Wang - for pointing out this problem. - - * ace/Connector.h: use ACE_SYNCH_RW_MUTEX in Map typedefs - instead of old ACE_RW_Mutex (which should have been - ACE_Thread_RW_Mutex) and ACE_Null_Mutex (depending on - whether the platform has threads). - - * ace/Service_Record.cpp: added ACE_NULL_SYNCH template - specializations with threads, because they're still needed even - with threads. This way, individual programs don't have to - specialize these. - - * ace/Task.cpp: added ACE_TSS and - ACE_TSS template specializations, if the platform - has threads and TSS. This way, individual programs don't have - to specialize them. - - * apps/Gateway/Gateway/Event_Channel.cpp, - Proxy_Handler{,_Connector}.cpp,apps/JAWS/server/HTTP_Server.cpp, - examples/ASX/Event_Server/Transceiver/transceiver.cpp, - examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp, - examples/Connection/blocking/SPIPE-connector.cpp, - examples/Connection/misc/{Connection_Handler,test_upipe}.cpp, - examples/Connection/non_blocking/test_*.cpp, - examples/IOStream/server/iostream_server.cpp, - examples/Logger/Acceptor-server/server_loggerd.cpp, - examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp, - netsvcs/lib/Client_Logging_Handler.cpp, - netsvcs/lib/TS_{Clerk,Server}_Handler.cpp: - removed template instantiations that are now in - ace/Service_Record.cpp and ace/Task.cpp. This should help - on platforms without threads. - - * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: fixed - typos in template specializations. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: protected - the ACE_*Guard template instantiations with #ifdef ACE_HAS_THREADS. - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: protected - the ACE_*Guard template instantiations with #ifdef ACE_HAS_THREADS. - - * apps/JAWS/stress_testing/benchd.cpp (serve): added return -1 if - the strcmp () fails so that the function always returns a value. - -Mon Apr 28 18:53:58 1997 Darrell Brunsch - - * ace/OS.h: Added ACE_DEFAULT_TIMER_WHEEL_SIZE and - ACE_DEFAULT_TIMER_WHEEL_RESOLUTION constants. - - * ace/Timer_Wheel_T.h: switched to use these constants - - * tests/Timer_Queue_Test.cpp: switched to use these constants - - * ace/Timer_Wheel: added a new strategy for Timer Queues, one - based on a hash table of ordered lists. - - These files were added: - - - ace/Timer_Wheel.h - - ace/Timer_Wheel_T.h - - ace/Timer_Wheel_T.cpp - - These files were also changed to accomodate Timer Wheel - - - ace/Timer_Queue.cpp - - ace/Timer_Queue_T.h - - ace/Timer_Queue_T.cpp - - tests/Timer_Queue_Test.cpp - -Mon Apr 28 17:32:04 1997 Chris Cleeland - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Added - template specializations. - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Added - template specializations. - - * ace/OS.cpp (thr_create): Hopefully resolved tension - btw. priority determination algorithms for IRIX, LinuxThreads, and - DEC UNIX 4.0. Thanks to Thilo for information that lead to this. - -Mon Apr 28 00:25:17 1997 - - * apps/JAWS/client: Removed ACE_Export macro from class - declarations. Fixed buffer size bug in - ACE_Blob_Reader::receive_reply (). - -Sun Apr 27 22:22:14 1997 - - * ace/Proactor: The Proactor can now be registered with ReactorEx - and both of them can be run from ReactorEx's event loop. Added a - flag to Proactor's constructor that indicates whether the - Proactor will be used in conjunction with ReactorEx event - loop. Only if this flag is set will the event in the Proactor be - used by the Asynch IO components. This will help with - performance. - - * examples/Reactor/Proactor/test_multiple_loops.cpp: Added a new - test that shows the integration of the event loops of Proactor - and ReactorEx. - - * ace/Asynch_IO: Added an ACE_EVENT parameter to the constructors - of classes that inherit from the OVERLAPPED structure. This way - the Proactor's event_ can be set in the OVERLAPPED structure. - - Also changed the open methods on the Asynch IO classes to take a - Proactor as an extra parameter. - - Changed ACE_Handler's handle_timeout() to handle_time_out() in - ACE_Handler. This is temporary till we decide on the argument - about mixing the interface of ACE_Event_Handler and - ACE_Handler. This change allows user to inherit from ACE_Handler - and ACE_Event_Handler and use the different handle_timeout() - method, one of which returns void and the other return an int. - - * examples/Reactor/Proactor/test_timeout.cpp: This file got - affected by the above change. - -Sun Apr 27 17:44:28 1997 Douglas C. Schmidt - - * ace/OS.h: Added a new #define called ACE_DEFAULT_HTTP_SERVER_PORT. - Naturally, this defaults to 80... - - * apps/JAWS/client/blobby.cpp: Cleaned up the blobby example so - that it conforms more closely to the ACE style guide. - - * examples/IPC_SAP/SOCK_SAP/CPP-in{server,client}.cpp: Took out - the VxWorks-specific #ifdefs. I believe this is fixed in ACE_OS - now. If not, the burden of proof is on the VxWorks testers to - prove me wrong ;-). - - * ace/Synch_T.h: Added a new macro ACE_SYNCH_RW_MUTEX to - complement the existing ACE_SYNCH_MUTEX and ACE_SYNCH_CONDITION - macros. This will clean up lots of code in various test - programs. - - * ace/Synch_T.h: Added two new macros, ACE_SYNCH_MUTEX and - ACE_SYNCH_CONDITION. These default to ACE_MT_SYNCH::MUTEX and - ACE_MT_SYNCH::MUTEX if template typedefs are supported and - ACE_HAS_THREADS is enabled. If template typedefs *aren't* - supported but ACE_HAS_THREADS is enabled these macros turn into - ACE_Thread_Mutex and ACE_Thread_Condition. Finally, if - ACE_HAS_THREADS is disabled these macros turn into - ACE_Null_Mutex and ACE_Null_Condition. These macros make it - possible to write code that is more portable across platforms - and configurations. Thanks to Carlos O'Ryan for this - suggestion. - - * ace/OS.h: Replaced all uses of ACE_SYNCH_MUTEX and - ACE_SYNCH_CONDITION with ACE_SYNCH_MUTEX_T and - ACE_SYNCH_CONDITION_T since (1) this usage relates to templates - and (2) it frees up the namespace for the new ACE_SYNCH_MUTEX - and ACE_SYNCH_CONDITION macros. - - * ace/Timer_Queue.cpp: Added yet more template specializations for - the benefit of GCC (ugh). - - * ace/Timer_Wheel_T.cpp: Had to revise things just a bit to - compile with GCC and it's lame template mechanism. This - required changing NODE * to ACE_Timer_Node_T * in - several method definitions. - - * apps/JAWS/server/HTTP_Server.h: Changed the use of ACE_WIN32 to - ACE_HAS_THREAD_SAFE_ACCEPT since this is a more precise way to - determine if the platform allows multiple threads to call - accept() on the same port. If other platforms support this - feature please make sure to add it to their config*.h files. - - * ace/config-win32-common.h: Defined ACE_HAS_THREAD_SAFE_ACCEPT, - since Win32 allows multiple threads to call accept() on the same - port. - - * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: The mutex - should be ACE_RW_Mutex, not ACE_Null_Mutex... - -Sun Apr 27 18:13:24 1997 Irfan Pyarali - - * ace/Proactor.h: Added Timer_Wheel support. - -Sun Apr 27 18:13:24 1997 Sumedh Mungee - - * apps/JAWS/client: Removed blobby.h, and replaced it with - blobby_options.{h,cpp}. - - * apps/JAWS/stress-testing: Removed unused argument warnings - etc. - -Sun Apr 27 07:41:44 1997 David L. Levine - - * ace/Timer_Queue.cpp: added #includes for template specializations, - and removed some unused specializations. - - * ace/Timer_Wheel_T.cpp: added newline at end of file. - - * ace/Timer_Wheel_T.cpp (ACE_Timer_Wheel_T ctor): reordered - initializers to match declaration order. - - * ace/Log_Msg.cpp (log): added support for indenting output according - to the current nesting level by adding a new format specifier, I, - which indents the output according to the current trace_depth_. - If a width is also specified it is taken as multiplier (so that - the indentation is n*trace_depth_). Thanks to Matthias Kerkhoff - for providing the code for this feature! - - * examples/Reactor/Misc/test_timer_queue.cpp: fixed typos in - #includes, and added #include of ace/Timer_Heap.h. - -Sat Apr 26 17:19:56 1997 Irfan Pyarali - - * ace/Timer_Queue.cpp: The correct Timer_Queue.cpp file was not - checked in. Also the necessary #include was missing. - - * ace/Proactor.h: Proactor need all three Timer include files. - - * ace/ace.{mdp,mak}: Updated for changes to Timer files. - - * ace: Updated the following files to include /**/ before an - include file directive: OS.h, config-win32-common.h, - bstring.h. Thanks to Matthias Kerkhoff - for reporting this. - -Sat Apr 26 13:41:15 1997 Douglas C. Schmidt - - * ace/config-sco-5.0.0-mit-pthread.h: Added - ACE_LACKS_PTHREAD_CANCEL. Thanks to Arturo Montes - for reporting this. - - * ace: Came up with a scheme that allowed us to remove the - ace/Timers.{h,i,cpp} files by adding - ACE_Timer_{Queue,Heap,List}_T.{h,i,cpp} files instead. Thus, no - existing code should break. - -Fri Apr 25 17:17:06 1997 Chris Cleeland - - * ace/OS.cpp (thr_create): Fixed the fix from Thilo so that it - compiled properly on Linux. Hopefully I didn't break his, and I - should have detected the problem earlier. Mea culpa. - -Fri Apr 25 12:45:23 1997 Douglas C. Schmidt - - * ace/OS.h: Added a new macro called ACE_HAS_SIG_MACROS for the - case where the frigging OS defines things like sigismember and - sigfillset as macros (ugh). - - * ace/FILE_IO.h: Removed a trailing default initializer from the - send() method since it was ambiguous. Thanks to Carlos O'Ryan - for reporting this bug. - - * ace/OS.i (select): Unfortunately the (operator timeval*) defined - for ACE_Time_Value was not used in ACE_OS::select (int width, - fd_set *rfds, fd_set *wfds, fd_set *efds, const ACE_Time_Value - *timeout) because the operator cannot be applied for a - ACE_Time_Value*. Therefore, I fixed this as follows: - - ACE_SOCKCALL_RETURN (::select (width, - (ACE_FD_SET_TYPE *) rfds, - (ACE_FD_SET_TYPE *) wfds, - (ACE_FD_SET_TYPE *) efds, - timeout == 0 ? 0 : (timeval *) *timeout) , int, -1); - - Thanks to Carlos O'Ryan for reporting this bug. - - * ace: Applied a slew of patches from Carlos O'Ryan in order to - get ACE to compile on HP/UX 10.x with the aCC compiler. - - * ace/Shared_Memory_MM: Export the filename in - ACE_Shared_Memory_MM class in order to aid debugging. Thanks to - Ashish Singhai for reporting - this. - -Fri Apr 25 14:58:38 1997 Irfan Pyarali - - * ace/Timers: Updated the following files to make it compile on - g++. The following files were updated: - - Proactor.cpp Timer_Heap.cpp Timer_List.cpp Timer_Queue.cpp - Timers.cpp - -Thu Apr 24 21:13:51 1997 - - * ace/Timer_Queue: Decoupled the Timer Queue from - ACE_Event_Handler and the callback routines in the handler - (handle_timeout and handle_close). The new Timer Queue is - parameterized by the type of data to store and a FUNCTOR on - which methods are invoked by the Timer Queue when timeouts and - cancellations occur. - - No changes occured to the algorithms of the different - implementations of the Timer Queues (Timer List and Timer - Heap). Timer Queues, Timer List, and Timer Heap were all renamed - as _T. However, typedef were added such that there is now - an ACE_Timer_Queue, ACE_Timer_Heap, and ACE_Timer_List, each - being an instantiation of the respective template classes. The - instantiation is done with ACE_Event_Handler as the type of data - to be stored in Timer Queue and - ACE_Event_Handler_Handle_Timeout_Upcall as the FUNCTOR that does - the appropriate upcall to ACE_Event_Handler. - - Due to these typedefs, 99.9% of existing code should not - break. However, the following two will cause problems: - - (a) Forward declarations of Timer_Queue will not work! This is - because Timer_Queue is now a typedef and not a class. - - (b) #include "ace/Timer_Queue.h" will not be enough to get the - ACE_Timer_Queue typedef. The new typedefs are in a new file - called Timers.h. This file also has typedefs for ACE_Timer_Heap - and ACE_Timer_List. - - Currently Proactor is the only class that uses a different - instantiation of the Timer Queue class. Proactor's Timer Queue - class is instantiated with ACE_Handler as the type of data to be - stored in Timer Queue and ACE_Proactor_Handle_Timeout_Upcall as - the FUNCTOR that does the appropriate posting to the Proactor's - completion port. - - The Upcall Strategy is not needed any more cause it is replaced - by the FUNCTORs. Thus this is removed. - - Small modifications were made to the following files - because of the changes to Timer_Queue. - - - examples/Reactor/Misc/test_timer_queue.cpp - - examples/Reactor/Proactor/test_timeout.cpp - - tests/Timer_Queue_Test.cpp - - ace/Makefile (both UNIX and Win32) - - ace/Connector.h - - ace/Reactor.h - - ace/ReactorEx.h - - ace/Proactor.h - - * ace/Proactor: Proactor now uses the new timer queues. Proactor's - Timer Queue class is instantiated with ACE_Handler as the type - of data to be stored in Timer Queue and - ACE_Proactor_Handle_Timeout_Upcall as the FUNCTOR that does the - appropriate posting to the Proactor's completion port. This will - help reduce the overhead of creating new act for each - timer. This also enables the cancellation of entire - ACE_Handlers. - - * examples/Reactor/Misc: Added Win32 makefiles. - - * ace/Shared_Memory_MM.i: Fixed typo. - - * ace/SOCK_Connector.cpp: Fixed typo. - -Thu Apr 24 13:56:28 1997 Douglas C. Schmidt - - * ace/SOCK_Dgram.cpp: Added support for FreeBSD (i.e., BSD 4.4) - features for passing file descriptors between processes. Thanks - to Nanbor Wang for reporting this. - - * ace/LSOCK_Stream.cpp: Added support for FreeBSD (i.e., BSD 4.4) - features for passing file descriptors between processes. Thanks - to Nanbor Wang for reporting this. - - * ace/LSOCK.cpp: Added support for FreeBSD (i.e., BSD 4.4) - features for passing file descriptors between processes. Thanks - to Nanbor Wang for reporting this. - - * ace/SOCK_Connector.cpp (complete): There's a bug in WinNT that - causes non-blocking connects to fail. The workaround is to - sleep for 1 millisecond. Thanks to Steve Huston - for reporting this. - - * ace/Connector.cpp (handle_output): There's a bug in WinNT that - causes non-blocking connects to fail. The workaround is to - sleep for 1 millisecond. Thanks to Steve Huston - for reporting this. - - * tests/Conn_Test.cpp: Changed from operator != to operator == to - be consistent with what is required by the ACE_Hash_Map_Manager. - - * ace/Hash_Map_Manager: Factored out the equality comparison into - an equal() method in order to facilitate template - specialization. In addition, rather than using the != operator - we now default to using the operator== operator and negating the - result. This is consistent with the behavior of the - ACE_Map_Manager. - - * ace/Map_Manager: Factored out the equality comparison into an - equal() method in order to facilitate template specialization. - - * ace/OS.i: Added a new #ifdef called ACE_LACKS_PTHREAD_CANCEL. - I'm not sure which platforms should set this, but it fixes - a bug with ACE_OS::thr_cancel(). Thanks to Eric Dean - Russell for reporting this. - - * tests/Process_Strategy_Test.cpp (handle_input): We were - comparing EOF to a char, which gets complaints on platforms - where char is unsigned by default. I added a cast of EOF to - char to fix this. Thanks to Amos Shapira for - reporting this. - - * apps/JAWS/server/HTTP_Helpers.cpp (instance): Changed the - return type from const char * to const char **. Thanks to - Amos Shapira for reporting this. - - * ace/OS.i (getpwnam_r): Added a missing #else. Thanks to - Amos Shapira for reporting this. - - * ace/Timer_Heap: Made many minor enhancements to ACE_Timer_Heap - in an effort to figure out why we're getting memory leaks. - -Thu Apr 24 09:33:53 1997 David L. Levine - - * Makefile: modified the TIMESTAMP macro to update the third - component, if there is one, of the version number in the VERSION - file. This assumes that alpha/beta releases are numbered with - three components, and that final releases are not. So, if the - version number is, e.g., 4.2, it will not be modified because it - is assumed to be for a final release. Manual switching between - alpha/beta and final release "modes" is therefore still required. - - * ace/Timer_Heap.cpp (copy): added cast of max_size_ to int to avoid - signed/unsigned comparison. - - * ace/config-sunos5.4-g++.h: removed - ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES because it caused compile - warnings about conversion from `(int)' to `(...)' at Signal.i:113. - (And the other sunos5.4 config files don't have it.) - Thanks to Joey Zhu for reporting this. - - * tests/Timer_Queue_Test.cpp (main): added delete of timer_ids array - to avoid memory leak. - -Wed Apr 23 22:56:57 1997 Sumedh Mungee - - * apps/JAWS/client/*: Fixed warnings due to size_t - * apps/JAWS/client/Blob_Handler: Fixed error by passing - pointer to base class ACE_Blob_Handler instead - of pointing to ACE_Blob_Reader, in call to connect - -Wed Apr 23 20:57:35 1997 James C Hu - - * ace/OS.i and ace/OS.h: added methods for getpwnam and - getpwnam_r, with hooks for NT. - - * ace/config-irix6.2.*: added ACE_LACKS_PWD_REENTRANT_FUNCTIONS. - -Wed Apr 23 14:27:48 1997 David L. Levine - - * ace/Timer_Queue.cpp (ACE_Timer_Queue ctor): reordered initializers - to match declaration order. - - * tests/Process_Strategy_Test.cpp: added ACE_Singleton template - specialization. In function client (), null terminated "buf" - before call to ACE_OS::strrchr () to avoid uninitialized memory - read. Also, fixed typo in test name (argument to ACE_START_TEST). - - * examples/Service_Configurator/Misc/Timer_Service.cpp (init): changed - type of loop index to int to avoid signed/unsigned comparison, and - initialized "interval" so that it has a value even if one isn't - specified on the command line. - -Wed Apr 23 10:52:45 1997 Chris Cleeland - - * ace/OS.cpp (thr_create): Removed errant preprocessor conditional - for determining the scheduling priority. Thanks to Thilo Kielmann - for reporting this. - -Wed Apr 23 09:06:52 1997 Douglas C. Schmidt - - * tests/Process_Strategy_Test.cpp: Finished updating this program - so that it is an automated test. - - * ace/Acceptor.h: Moved get_handle() into the public portion of - the Acceptor. - - * include/makeinclude/platform_irix6.2_sgic++.GNU (SOBUILD): There - was an extra @ in $@@. Thanks to Amos Shapira - for reporting this. - - * apps/JAWS/client/Blob[_Handler].cpp: Added casts for free ((void - *) filename_);. Thanks to Amos Shapira for - reporting this. - - * apps/JAWS/server/HTTP_Helpers.h (class HTTP_Status_Code): - Removed an extraneous const * from the definition of instance(). - Thanks to Amos Shapira for reporting this. - -Wed Apr 23 03:15:11 1997 James C Hu - - * apps/JAWS/server/README: Updated to add some clarity and more - useful information. - -Tue Apr 22 20:17:00 1997 Douglas C. Schmidt - - * ace/Synch.cpp: Added a new method called open() to ACE_File_Lock - so that we don't have to initialize it solely in the - constructor. - - * tests/Process_Strategy_Test.cpp: Added new test code that - exercises the ACE_Process_Strategy, ACE_Thread_Strategy, and - ACE_Reactive_Strategy classes. - - * ace/Strategies_T: Added a new class called - ACE_Reactive_Strategy, which inherits from - ACE_Concurrency_Strategy and registers new Svc_Handlers with the - Reactor. - - * ace/Strategies_T.cpp (ACE_Thread_Strategy): Added a check for - failed open() methods and call ACE_ERROR. - - * tests/Map_Manager_Test.cpp: Added a template specialization for - the ACE_Hash_Map_Manager::hash() method, which is enabled if the - compiler supports template specializations. - - * ace/Hash_Map_Manager.h (pool): Moved the ext_id.hash() call into - a separate method so that we can perform template specialization - of it more easily. - - * ace/README: Added a new #define called - ACE_HAS_TEMPLATE_SPECIALIZATION so that we can work around funky - compilers that don't support this advanced template feature. - - * ace: Added Nanbor Wang's port to FreeBSD. The port is done - at FreeBSD 3.0-current as of 2/9/97, which is the - latest stable system before Lite2 merge. Since the merge is - current under testing and changes are introduced in a daily - basis, I don't recommend using -current after the date. You - can specified the date in your "supfile", run CVSup to get the entire - source tree and do a 'make world' to update (or reverse) your - system. - - Pthread library is provided by John Birrell. There is a - bug fix at mid April so you may want to CVSup the latest libc_r - library and re-make the pthreaded library. - - A shared library must be name as lib.so. (e.g. libACE.4.1.0). I would recommend adding a - post-compile hook in the Makefile so we FreeBSDers can - rename the shared library to it's proper name with correct - major and minor version number attached. (which is a trick - BSD library makefiles use.) - - * examples/OS/Process/process.cpp (main): Replaced the use of - "/bin/cat" with "cat" since we are now using execvp(). Thanks - to Nanbor Wang for reporting this. - - * ace/Process.cpp (start): Changed the use of execv() to execvp() - in order to avoid having to pass in the full pathname. - - * ace/OS.i (sigwait): Added an #ifdef for FreeBSD so that we - return ACE_NOTSUP_RETURN(-1) for ACE_OS::sigwait(). Thanks to - Nanbor Wang for reporting this. - -Tue Apr 22 17:46:30 1997 - - * Process.cpp (start): We must pass in 0 instead of "" to - CreateProcess for the current working directory. - -Tue Apr 22 01:38:14 1997 - - * ace/Timer_Queue: Added ACE_Upcall_Strategy as a parameter to the - constructor. will call upcall> if - is not 0. Else it will call - on the . Thus ACE_Upcall_Strategy becomes a - vehicle for extending the behavior of ACE_Timer_Queue wrt the - upcall (callback) *without subclassing*. Hence, it's an example - of the Bridge/Strategy patterns. - - This also affected ACE_Timer_List and ACE_Timer_Heap - - * ace/Strategies: Added ACE_Upcall_Strategy. - - * ace/Proactor: Added timing support to the calls. - - * ace/Asynch_IO: ACE_Handler now supports handle_timeout. - - * ace/Proactor: Added timer support for the new Proactor. This - new scheme allows any of the threads in the "thread pool" - waiting on the completion port of the Proactor to execute the - callback routine of the handler. - - The implementation included adding ACE_Proactor_Timer_Handler - class that has a thread that will wait on the earliest time in a - timer queue and an event. When a timer expires, the thread will - post a completion event on the port and go back to waiting on - the timer queue and event. If the event is signaled, the thread - will refresh the time it is currently waiting on (in case the - earliest time has changed). - - The ACE_Proactor::Asynch_Timer class is posted to the completion - port when a timer expires. When the method of this - object is called, the 's handle_timeout method will be - called. - - * examples/Reactor/Proactor/test_timeout: This example illustrates - the new timer features in the Proactor - - * examples/Reactor/Proactor/test_proactor.{mdp,mak}: Added new - example. - -Mon Apr 21 18:14:32 1997 Irfan Pyarali - - * ace/config-win32-common.h: Added checks around _AFXDLL before - defining it. Thanks to Bruce Meyer for - pointing this out. - -Mon Apr 21 11:31:16 1997 Chris Cleeland - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - Removed some unnecessary explicit template instantiations. - - * examples/Threads/barrier1.cpp (main): Explicitly converted - n_threads to int. - -Sun Apr 20 23:08:37 1997 Irfan Pyarali - - * ace/{Local,Remote}_Tokens.h: Added a private declarations of the - copy constructor and assignment operator for classes that - inherit from ACE_TSS. This is necessary since the compiler will - auto generate these two operations that will end up using the - non-existent copy constructor and assignment operator from the - TSS class and cause linker errors. - -Sun Apr 20 20:47:34 1997 Sumedh Mungee - - * apps/JAWS/client: Reworked the ACE_Blob* classes to work - with the new Connector behavior. Added README for this - directory. Added comments. - - * apps/JAWS/stress-testing: Added README file - -Sun Apr 20 13:11:25 1997 Douglas C. Schmidt - - * apps/Makefile: By default, we now compile JAWS along with the - rest of ACE. I've also added some README files that explain - what JAWS is all about. - - * examples/Service_Configurator/Misc/Timer_Service: Improved the - Timer_Service test so that it makes more sense and is better - documented. - -Sat Apr 19 11:56:35 1997 Douglas C. Schmidt - - * include/makeinclude: Removed the platform_irix6.2_sgiCC.GNU - from the release. Thanks to Torbjorn Lindgren - for these fixes. - - * include/makeinclude/platform_irix6.2_sgic++.GNU: Updated the SGI - C++ platform config file. Thanks to Torbjorn Lindgren - for these fixes. - - * ace/Log_Msg.cpp (log_hexdump): The char * arguments should be - const char *'s. Thanks to Matthias Kerkhoff - for reporting this. - -Sat Apr 19 18:52:44 1997 David L. Levine - - * (format_hexdump): changed type of first arg to const char * - for compatibility with Log_Msg::log_hexdump (). - -Thu Apr 17 08:25:06 1997 Douglas C. Schmidt - - * ace/Memory_Pool.h: Fixed a couple of typos in Memory_Pool - classes. Thanks to Neil B. Cohen for reporting - this. - - * netsvcs/lib/Name_Handler.h: Arrgh, there was still one more - missing #include that I forgot to move into the *.h file. - Thanks to David Levine for noticing this. - - * ace/Synch.cpp (wait): There was a bug in - ACE_Condition::wait(MUTEX& mutex, const ACE_Time_Value - *abstime.) Basically when abstime is zero, it ignores the - parameter "mutex" that has been passed to it and instead goes on - to call "ACE_Condition::wait()" which uses "this->mutex_" - as the mutex to be released and not the mutex that the caller - has given. The fix is to change the call "this->wait()" in the - if-clause to: - - return ACE_OS::cond_wait (&this->cond_, &mutex_.lock_); - - Thanks to Ashish Singhai for reporting - this. - -Thu Apr 17 16:33:21 1997 David L. Levine - - * ace/Memory_Pool.cpp: fixed typos in ACE_MMAP_Memory_Pool_Options - constructor declaration and initializer list. In init_acquire, - added cast of minimum_bytes_ to size_t to avoid signed/unsigned - comparison. - - * include/makeinclude/{platform*,wrapper_macros}.GNU: - moved -g out of wrapper_macros.GNU and into each platform - file so that -gstabs can be used on SCO. Thanks to - Ganesh Pai for reporting that problem. - - (The real change was getting rid of the CFLAGS += DCFLAGS - default. We could have left DCFLAGS=-g in wrapper_macros.GNU - and overridden for SCO. But the way I changed things, the - C/CFLAGS pieces are together in each platform file, so they're - easier to find.) - -Wed Apr 16 17:05:55 1997 Douglas C. Schmidt - - * ace/Memory_Pool.cpp (acquire): Added code to enable a minimum - bytes field with the Shared_Memory_Pool. Thanks to Fred LaBar - for these enhancements. - - * tests/Process_Strategy_Test.cpp: Only compile this test if - ACE_LACKS_EXEC is *not* defined since ACE_Process_Strategy - requires fork(). Thanks to Irfan for pointing this out! - - * netsvcs/lib: Fixed a couple o' typos that had escaped detection - last night. Thanks to David Levine for reporting this. - - * ace/Synch[_T].h: removed the use of {} rather than ; for - the private copy constructors and assignment operators. - Hopefully this won't break code on older C++ compilers. Thanks - to Berni Merkle for suggesting this. - - * Added a whole slew of minor fixes for unused variables in - the tests and examples. Thanks to Torbjorn Lindgren - for reporing these. - - * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator): The order of - the clause - - this->handles_.mask_.fds_bits[this->index_] == 0 - && this->num_ < ACE_Handle_Set::MAXSIZE - - was backwards. It should be: - - this->index_ < ACE_Handle_Set::NUM_WORDS - && this->handles_.mask_.fds_bits[this->index_] == 0 - - Thanks to Michael Newton for - reporting this. - -Wed Apr 16 21:34:53 1997 David L. Levine - - * tests/Process_Strategy_Test.cpp: added template specializations. - -Wed Apr 16 15:46:58 1997 - - * tests/Process_Strategy_Test: Added test to batch files and - MSVC++ Makefiles. - - * tests/Process_Strategy_Test.cpp (open): Added UNICODE support. - - * ace/OS.h: Added SIGCHLD to Win32 section. - - * ace/config-win32-common.h: UNICODE should not be automatically - defined if ACE_HAS_UNICODE is defined. ACE_HAS_UNICODE signifies - that the OS has UNICODE support. It does not mean that your code - must be UNICODE. UNICODE must be defined at the project level. - -Wed Apr 16 16:55:47 1997 David L. Levine - - * ace/SString.{h,cpp}: Modified CString to not allocate 1 byte for - a 0 length string. Instead, set the internal representation to - the address of static class character null_string_. - -Wed Apr 16 11:47:35 1997 Chris Cleeland - - * ace/Map_Manager.cpp (free_search_structure): Added the loop - variable back in that must have been inadvertently deleted in the - previous entry. - -Wed Apr 16 09:35:39 1997 David L. Levine - - * ace/Map_Manager.cpp (free_search_structure): changed type of - loop index to size_t to avoid signed/unsigned mismatch. - -Wed Apr 16 04:07:50 1997 Douglas C. Schmidt - - * ace/Strategies_T: Widened the constructor interface for - ACE_Process_Strategy based on the feedback I got from - implementing the Process_Strategy_Test.cpp program. - - * tests/Process_Strategy_Test.cpp: Added an interesting new test - that illustrates the use of the ACE_Process_Strategy and the - ACE_File_Lock. To exercise this program, you can telnet to it - and type "read" and "inc" to query and change the count of - the numbers in the file, respectively. - - * ace/Connector.cpp (create_AST): I fixed a couple of things - in Connector.cpp: - - - In create_AST, it needs to save and restore errno, else it - gets wiped on Win32 and other platforms. - - - On Win32 when a non-blocking connect completes and handle_output is - called, it tries to get the peer address. If done too quickly, it - fails. I put in a Sleep(0) call. I think this is not a great - solution, but I don't have a better one yet. - - Thanks to Steve Huston for fixing - these bugs. - -Tue Apr 15 17:09:33 1997 Douglas C. Schmidt - - * ace/SOCK_Stream.cpp (close): Removed the call to close_writer() - on UNIX since that doesn't do the correct thing in many - cases since it causes a protocol transmission which isn't - what we want if we're using fork(). - - * ace/Strategies_T.cpp (activate_svc_handler): Added a call to - svc_handler->destroy() in the parent since we don't need it and - we're leaking descriptors and memory otherwise... Thanks to - Kevin Boyle for reporting this. - - * ace/OS.i (thr_sigsetmask): Replaced the use of - PTHREADS_1003_DOT_1C with ACE_HAS_PTHREAD_SIGMASK. Thanks to - Arturo Montes for suggesting this. - - * ace: Changed all uses of ACE_HAS_PTHREADS_XAVIER to - ACE_HAS_PTHREAD_SIGMASK, which is more descriptive. Thanks to - Arturo Montes for suggesting this. - - * ace/config-aix-4.2.x.h: Added #define ACE_LACKS_RWLOCK_T to make - things compile with AIX 4.2. Thanks to Jeremy Buch - for reporting this. - - * ace/XtReactor.cpp (register_handler_i): Added "[]" to delete - this->ids_ since it is an array. Thanks to Jean-Marc Strauss - for reporting this. - - * netsvcs/lib: Moved all the class definitions into the *.h files - to avoid complaints from the IBM C++ compiler. - - * ace/OS.h: Added a #define for WNOHANG since this is missing on - NT. Thanks to Brian Mendel for reporting - this. - - * examples/Connection/non_blocking/test_sock_connector.cpp: Added - a typedef for ACE_RW_Mutex so that the code compiles on non-MT - platforms. Thanks to Ganesh Pai for - reporting this. - - * examples/Connection/non_blocking/test_tli_connector.cpp: Added a - typedef for ACE_RW_Mutex so that the code compiles on non-MT - platforms. Thanks to Ganesh Pai for - reporting this. - - * examples/Connection/misc/test_upipe.cpp: Added a typedef for - ACE_RW_Mutex so that the code compiles on non-MT platforms. - Thanks to Ganesh Pai for reporting this. - - * performance-tests/Synch-Benchmarks/Options.cpp: Added a #ifdef - for ACE_Thread_Mutex so that the code compiles on non-MT - platforms. Thanks to Ganesh Pai for - reporting this. - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Added a - typedef for ACE_RW_Mutex so that the code compiles on non-MT - platforms. Thanks to Ganesh Pai for - reporting this. - - * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: Added a - typedef for ACE_RW_Mutex so that the code compiles on non-MT - platforms. Thanks to Ganesh Pai for - reporting this. - - * examples/ASX/Event_Server/Event_Server/Options.cpp - (print_results): Although rusage struct is defined on SCO, there - is no getrusage(), rusage is used only by wait() - etc. internally. Therefore, we had to move some #ifdefs around. - Thanks to Ganesh Pai for reporting this. - - * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: Added a - typedef for ACE_RW_Mutex so that the code compiles on non-MT - platforms. Thanks to Ganesh Pai for - reporting this. - - * tests/Conn_Test.cpp: Added a typedef for ACE_RW_Mutex so that - the code compiles on non-MT platforms. Thanks to Ganesh Pai - for reporting this. - - * tests/SPIPE_Test.cpp (main): Removed the VXWORKS arm of the - #ifdef, which is not correct since this stuff only works if - we're working with a version of VxWorks that has STREAM pipes. - - * include/makeinclude/platform_sco5.0.0-nothread.GNU: Changed - - LIBS = -lsocket -lnsl -ldl - - to - - LIBS += -lsocket -lnsl -ldl - - Thanks to Ganesh Pai for reporting this. - - * netsvcs/lib/Client_Logging_Handler.cpp: Added a typedef for - ACE_RW_Mutex so that the code compiles on non-MT platforms. - Thanks to Ganesh Pai for reporting this. - - * netsvcs/lib/TS_Clerk_Handler.cpp: Added a typedef for - ACE_RW_Mutex so that the code compiles on non-MT platforms. - Thanks to Ganesh Pai for reporting this. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Added a - typedef for ACE_RW_Mutex so that the code compiles on non-MT - platforms. Thanks to Ganesh Pai for - reporting this. - -Tue Apr 15 23:16:43 1997 - - * ace/[Hash_]Map_Manager.cpp: The [Hash_]Map_Manager now - explicitly calls the destructors of Map_Entry objects before - freeing up the space. Not sure why we were not doing this - before... - -Tue Apr 15 17:09:33 1997 Irfan Pyarali - - * examples/Logger: Added MSVC++ makefile to Acceptor-server - and client. - -Tue Apr 15 21:51:45 1997 James C Hu - - * apps/JAWS/server/IO.cpp: Added a template instance for - ACE_Singleton so it would link using GCC. Removed GCC - warnings. - - * apps/JAWS/server/HTTP_Server.cpp: Added template instances for - LOCK_SOCK_Acceptor, ACE_Task, ACE_Thru_Task, ACE_Message_Queue, - ACE_Module so it would link using GCC. Removed GCC warnings. - - * apps/JAWS/server/HTTP_Server_T.cpp: Removed template instance of - LOCK_SOCK_Acceptor, since it was not really being compiled. - -Tue Apr 15 21:51:45 1997 James C Hu - - * apps/JAWS/server/IO.cpp: Added a template instance for - ACE_Singleton so it would link using GCC. Removed GCC - warnings. - - * apps/JAWS/server/HTTP_Server.cpp: Added template instances for - LOCK_SOCK_Acceptor, ACE_Task, ACE_Thru_Task, - ACE_Message_Queue, ACE_Module so it would link using GCC. - Removed GCC warnings. - - * apps/JAWS/server/HTTP_Server_T.cpp: Removed template - instance of LOCK_SOCK_Acceptor, since it was not really - being compiled. - - * apps/JAWS/server/HTTP_Handler.cpp: Removed GCC warnings. - -Tue Apr 15 13:01:13 1997 David L. Levine - - * ace/Token_Request_Reply.cpp (ctor): added initialization of - transfer_.data_ to avoid unitialized memory read. - - * tests/test_config.h: removed "static" qualifier from - randomize () to avoid warning from g++ when it's not called - in a test. - - * examples/IPC_SAP/SPIPE_SAP/server.cpp (main): moved - declaration of local variable "handle" up before its first - use. - -Tue Apr 15 17:09:33 1997 Irfan Pyarali - - * examples/Connection/blocking/Makefile: Removed the Makefile - for this test. This example is only suppose to work on WIN32 - and therefore the Makefile is not necessary. I have replace - this file with a MSVC++ make file. - -Mon Apr 14 23:08:27 1997 - - * INSTALL: Updated install files for Win32. - - * ace/SPIPE_Stream: Changed the use of ACE::send_n to ACE::write_n - and ACE::recv_n to ACE::read_n. - - * ace/OS.h (WNOHANG): Added WNOHANG to OS.h for Win32. - - * ace/OS.i (getpgid): Fixed extra return. - - * examples/Connection/blocking/SPIPE-acceptor: Updated the code to - use the new Proactor and the new asynchronous IO. - -Mon Apr 14 21:32:24 1997 David L. Levine - - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client): - ACE_OS::sprintf instead of sprintf. - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp - (svc): declare "t" as time_t instead of long. - - Thanks to Thilo Kielmann for - reporting both of these. - -Mon Apr 14 00:02:39 1997 Douglas C. Schmidt - - * ace/OS.i (getpgid): Removed the extraneous return in front of - ACE_NOTSUP_RETURN. Thanks to Mike Bernat for - reporting this. - - * ace/Process.cpp: Replaced the use of ACE_OS::fork(void) with - ACE_OS::fork(const char *) so that we can pass in the name of - the process we're exec'ing. - - * examples/Threads/process_manager.cpp: Added a test program that - exercises the features of the new ACE_Process_Manager. - - * ace/Process_Manager: Finished a rudimentary implementation of - ACE_Process_Manager. There's still plenty of work to be done on - this, however... - - * ace/Thread_Manager.cpp (dump): Added dump() methods for - ACE_Thread_Descriptor and ACE_Thread_Manager. - -Sun Apr 13 11:40:26 1997 Douglas C. Schmidt - - * ace/OS: Added a getpgid() call to ACE_OS. - - * ace/Thread_Manager: Changed the 'int n' of spawn_n() to size_t n - since this is more appropriate because we can't spawn a negative - number of threads... - - * ace/Thread_Manager.cpp (close): Make sure to lock the calls to - close() in case things get amiss. - - * ace/Process.cpp (start): Updated ACE_Process::start() to that it - doesn't try to exec() a program if argv == 0. This allows us to - use ACE_Process to fork() a process without exec'ing. - - * tests/Timer_Queue_Test.cpp (randomize_array): Added a new - "randomization" test that determines the performance of randomly - canceling items in the array. Thanks to Darrell Brunsch - for this enhancement. - - * tests/test_config.h: Moved the randomize() function from - Naming_Test.cpp to test_config.h so that we can use it in other - tests (e.g., the new Timer_Queue_Test.cpp that Darrell is - working on). - - * ace/OS: Added a new #define called ACE_HAS_NONCONST_MSGSND which - can be used for platforms (e.g., SCO) that don't have a const - parameter for msgsend(). Thanks to Arturo Montes - for reporting this. - - * ace/config-sco-5.0.0-mit-pthread.h: Added some fixes to make - this work on SCO. Thanks to Arturo Montes - for reporting this. - - * ace/OS.i (cond_timedwait): There is a *small* chance for a - context switch before ACE_OS::cond_timedwait() is reached. In - this case, the current time *may* advance by some milliseconds. - The code in ACE_OS::cond_timedwait() then converts the given - absolute time to a relative time. In the described situation - this will be a very, very long t ime (0xfffffffn). Therefore, I - added a check to avoid the "negative timespan" case. Thanks to - Matthias Kerkhoff for suggesting this. - - * ace/Set: Moved all the size() methods out of the *.i file and - into the *.cpp file to avoid problems with quirky compilers - (e.g., SGI) that can't handle this. Thanks to Torbjorn Lindgren - for pointing this out. - - * examples/Threads/process_semaphore.cpp (main): Removed a stray - ^M that was causing the SGI C++ compiler some grief. Thanks to - Torbjorn Lindgren for pointing this out. - - * ace/OS.i (gettimeofday): Rearranged the code a bit to return - errors correctly if they occur (which should be *very* - unlikely). Thanks to Torbjorn Lindgren for - pointing this out. - - * netsvcs/lib/Server_Logging_Handler.cpp: Replaced the use of - ACE_TLI* with LOGGING_PEER*. Thanks to Tom Wright - for reporting this. - - * ace/Connector.cpp: Made sure to initialize all of the instance - variables for the ACE_Strategy_Connector and ACE_Connector. - Thanks to David Levine for pointing this out. - - * ace/Synch.h: Changed protected: to private: so that we can - ensure that we never copy classes like ACE_File_Lock, etc. - Thanks to Berni Merkle for reporting - this. - - * examples/Shared_Malloc/test_malloc.cpp (malloc_recurse): Added - the print_stats() call back into the test since Sandro's fixes - should now support this. - - * ace/Malloc[_T]: Added patches to enable ACE_Allocator's to print - malloc statistics. Thanks to Sandro Doro - for these fixes. - -Sat Apr 12 20:42:11 1997 David L. Levine - - * tests/Priority_Task_Test.cpp (open): only use THR_SCHED_FIFO - if it is defined. (It isn't on Solaris without PTHREADS.) - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp - (make_svc_handler): added return statement. - -Sat Apr 12 11:53:49 1997 Douglas C. Schmidt - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp (main): - The first argument to connect () is now a SVC_HANDLER *&. - Therefore, we can no longer allows us to pass the address of a - SVC_HANDLER on the stack (or in the data segment). - Fortunately, the fix is easy, as shown below: - - Event_Transceiver transceiver, *tp = &transceiver; - - connector.connect (tp, ACE_INET_Addr (port_number, host_name)); - - Thanks to David Levine for reporting this problem. - -Fri Apr 11 15:14:59 1997 David L. Levine - - * tests/Conn_Test.cpp: moved declaration of "result" out of - loop because it's used after the loop. Thanks to - Thilo Kielmann for - reporting this. Also, removed a few unnecessary template - specializations. - - * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: fixed template - specializations for no-thread platforms. Thanks to Ganesh Pai - for reporting this. - - * performance-tests/Misc/context_switch_time.cpp (main): - removed call to ACE_High_Res_Timer::supported (). - -Fri Apr 11 14:31:42 1997 Chris Cleeland - - * tests/Conn_Test.cpp: Added several explicit template - instantiations. - -Fri Apr 11 13:49:04 1997 David L. Levine - - * ace/OS.h: VxWorks changes only: added taskHookLib.h. Thanks - to Dave Mayerhoefer for reporting - that. Also rearranged the VxWorks #includes and such a bit. - - * ace/Log_Msg.cpp (atexit): VxWorks changes only: added cast - of spare1 to ACE_Log_Msg *. Thanks to Dave Mayerhoefer - for reporting that. Also, - in exists () and instance (), replaced double indirection - of the ACE_Log_Msg instance with indirection through a pointer - reference. - - * ace/High_Res_Timer.{h,i}: removed supported () because - ACE_OS::gettimeofday () is used if a high-res timer isn't available. - - * ace/OS.i (thr_sigsetmask),config-sunos5.4-*.h: swapped order of - #ifdefs to that ACE_LACKS_PTHREAD_THR_SIGSETMASK is checked before - ACE_HAS_STHREADS. Added that #define to all SunOS 5.4 configs. - Thanks to Joey Zhu for reporting this. - - * ace/Token_Request_Reply.cpp (ctor): added a initializations to 0 - of requeue_position_, notify_, and arg_. With this change, all - of the ACE tests run without any Purify access anomalies! - (There are still some memory leaks, though.) - - * include/makeinclude/rules.local.GNU: added -DMAKEDEPEND to - invocation of g++dep. This allows users to get proper - dependencies if they have conditional #includes in their code. - They can added #if defined (MAKEDEPEND) as necessary to make - sure that all headers are seen by g++dep. - -Fri Apr 11 10:46:56 1997 Chris Cleeland - - * config-linux*.h: Added ACE_HAS_IP_MULTICAST as the default for - all Linux configurations. If you're a 1.x user, or you didn't - config that into your 2.x kernel, you'll have to remove this from - your version of the file. - -Thu Apr 10 00:34:10 1997 Douglas C. Schmidt - - * examples/Logger/simple-server/Logging_Acceptor.cpp - (handle_input): We need to call svc_handler->close() if accept() - or open() fails. Thanks to Ganesh Pai for - reporting this. - - * ace/Service_Config.cpp (close): Moved the call to - ACE_Service_Config::close_singletons() to outside the check for - ACE_Service_Config::svc_rep_ since the Singletons can be used - independently of the services. Thanks to Matthias Kerkhoff - for suggesting this. - -Wed Apr 9 21:11:38 1997 Douglas C. Schmidt - - * apps/Gateway/Gateway/Gateway.cpp (handle_signal): Evil demons - added bugs to my code that were causing segfaults when signals - shutdown the gateway. This is now fixed. - - * apps/Gateway/Gateway/Proxy_Handler.h: Changed ACE_Event_Channel - & to ACE_Event_Channel * to keep the compiler happy. - - * examples/Connection/non_blocking/CPP-connector.h: Added a - do-nothing default constructor to keep ACE_Connector happy. - - * examples/Connection/misc/test_upipe.cpp: Added a do-nothing - default constructor to keep ACE_Connector happy. - - * examples/Connection/blocking/SPIPE-connector.h: Added a - do-nothing default constructor to keep ACE_Connector happy. - - * apps/Gateway/Gateway/Proxy_Handler: Added a do-nothing default - constructor to keep ACE_Connector happy. - - * netsvcs/lib: Added some default arguments to - TS_Clerk_Handler.cpp and Client_Logger_Handler.cpp to keep the - compiler from complaining about the new ACE_Connector features. - Thanks to David Levine for reporting this. - - * ace/Timer_Heap.cpp (reheap_down): Fixed a *very* subtle bug in - reheap_down() where parent was starting off at 0 whereas it - should have been starting off at child_index / 2. - - * examples/Logger/simple-server/Logging_Handler: Removed the use - of the operator ACE_SOCK_Stream &() and replaced it with the - more intuitive peer() approach used in ACE_Svc_Handler et al. - Thanks to Ganesh Pai for reporting this. - - * ace: Added a bunch of changes to improve ACE support on SCO 5.0. - Thanks to Ganesh Pai for these fixes. - - * tests/Conn_Test.cpp: Completely reworked this test so that it - illustrates how to use the ACE_Strategy_Connector, which is - customized with a special Caching_Connect_Strategy that recycles - connections. - - * ace/Connector: Finished implementing the new - ACE_Strategy_Connector. This is similar in design to the - ACE_Strategy_Acceptor. - - * ace: Changed the signature of all the make_svc_handler() methods - so that they return int (rather than SVC_HANDLER *) and they - pass back a SVC_HANDLER * by reference. This makes it possible - to totally control the creation of svc handlers (which is useful - for the new ACE_Strategy_Connector). - - * ace/Connector.cpp: Factored out the active_svc_handler() call - from the connect_svc_handler() method into the connect() method - so that it would behave correctly as a Template Method and - Strategy. - - * ace/Connector: Removed the explicit use of the Reactor data - member from the ACE_Connector since it's inherited from the - ACE_Service_Object. - - * ace/Log_Msg.cpp: The MVS compiler doesn't like the call to - atexit() in ACE_Log_Msg::instance() because atexit() requires an - a function pointer of type extern "C" for its parameter. I've - fixed this via an adapter. Thanks to Chuck Gehr - for reporting this. - - * ace/Strategies_T: Added a new ACE_Connect_Strategy that - complements the ACE_Strategy_Connector in the same manner that - the ACE_Accept_Strategy complements the ACE_Strategy_Acceptor. - - * ace/Connector.h: The destructor for ACE_Connector should have - been virtual. Now it is. - - * ace/Connector: Added a new factory method called - make_svc_handler(). This behaves similiarly to the - ACE_Acceptor::make_svc_handler(). However, for the - ACE_Connector we only use this when the SVC_HANDLER * is NULL. - - * ace/Connector: Changed the signature for connect() to take a & - to a SVC_HANDLER * in anticipation of our new - ACE_Strategy_Connector. This new connector will make it easy to - implement cached connections. - - * ace/config-win32-common.h: Added a new #include for , - which contains the declarations for TransmitFile() data - structures. They are in WINSOCK.H if you do not use - ACE_HAS_WINSOCK2. Thanks to Norbert Rapp - for reporting this. - - * ace/OS.i: Fixed a typo in the new condition variable - implementation for Win32. Thanks to Norbert Rapp - for reporting this. - -Wed Apr 09 22:06:23 1997 - - * Memory_Pool.h: Modified ACE_MMAP_Memory_Pool and - ACE_MMAP_Memory_Pool_Options to include the new guess_on_fault - option. This is only for platforms that can not report which - address caused a segmentation fault (via signal or exception). - When guess_on_fault is set (via ACE_MMAP_Memory_Pool_Options), - ACE_MMAP_Memory_Pool::handle_signal calls - ACE_MMAP_Memory_Pool::remap "guessing" that the segmentation - fault was caused by an access to memory not yet mapped. - -Wed Apr 09 16:46:16 1997 David L. Levine - - * ace/OS.{h,i}: fixed readPPCTimeBase declaration and return - value (for now: it really needs to return a 64 bit quantity). - Thanks to Dave Mayerhoefer for - reporting these. - -Wed Apr 9 03:12:24 1997 Irfan Pyarali - - * ace/config-win32-common.h: Defining _WIN32_WINNT as 0x0400 - implies ACE_HAS_WINSOCK2. - - * ace/Asynch_IO: The implementation of ACE_Asynch_Transmit_File - and ACE_Asynch_Accept are only supported if ACE_HAS_WINSOCK2 is - defined or you are on WinNT 4.0 or higher. Therefore, added - appropriate #defines. Thanks to Matthias Kerkhoff - for suggesting this. - -Tue Apr 8 22:45:28 1997 Prashant Jain - - * java/src/SOCKStream.java (SOCKStream): Made two small changes to - the two send(). Instead of doing a println, I now do a - print. This was really a bug! - -Tue Apr 08 22:08:12 1997 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: removed - "rm -f $@" from AR command so that archive won't be removed - during incremental updates. Thanks to Chuck Gehr - for reporting this. - -Tue Apr 8 00:04:22 1997 Douglas C. Schmidt - - * ace/Task_T.cpp: Added a hack to work around the new weird HP/UX - aCC template semantics. Thanks to Neil B. Cohen - for reporting this. - - * ace/config-hpux-10.x[-g++].h: Added #define - ACE_HAS_CLOCK_GETTIME. Thanks to Neil B. Cohen - for reporting this. - - * ace/config-hpux-10.x[-g++].h: Added ACE_HAS_IP_MULTICAST and removed - ACE_LACKS_STRRECVFD. Thanks to Neil B. Cohen - for reporting this. - - * ace/config-hpux-10.x.h: Apparently some HP/UX 10.x C++ compilers - don't support volatile, so I #defined it away as a macro. - Thanks to Neil B. Cohen for reporting this. - - * ace/Log_Msg.cpp: Put a #if defined (ACE_MT_SAFE) around the - entire Log_Msg destructor. Thanks to Neil B. Cohen - for reporting this. - - * ace/config-hpux-10.x[-g++].h: Added #define ACE_HAS_STREAMS on - the recommendation of Neil B. Cohen . - -Mon Apr 07 12:08:21 1997 - - * ace/Set.cpp: For some reason, VC++ 5.0 doesn't like to have the - constructors X::X(X&) and X::X(X*). We can change the X::X(X*) - constructor to take in an extra argument with a default value. - This seems to have sufficiently satisfied the VC++ 5.0 for the - time being. There were no changes necessary to other Set.cpp - code (as the extra argument has a default value). - -Mon Apr 07 08:05:03 1997 David L. Levine - - * ace/config-win32.h: enabled ACE_HAS_UNICODE by default. - Thanks to Matthias Kerkhoff for - suggesting this. - - * ace/config-sunos5.4-g++.h: enabled ACE_HAS_BROKEN_RANDR and - disabled ACE_HAS_SVR4_SIGNAL_T. Thanks to Joey Zhu - for reporting these problems and testing - the fix. - - * ace/Proactor.h (ACE_Proactor): commented out unused arguments - in non-WIN32 version. - -Sun Apr 06 22:51:02 1997 - - * ace/Proactor: Complete rewrite of Proactor that pushes all the - differences in asynchronous I/O to the edges of the framework - - i.e., into the new Asynch_IO classes. This allows the Proactor - to easily support new asynchronous operations. - - Currently, the new Proactor supports minimal functionality. In - the future, we will complete this. - - The Proactor is used in conjunction with the new Asynch_IO - classes. There is a different class for each operation. Please - see Asynch_IO.h for details. - - There is also a new ACE_Asynch_Acceptor that uses AcceptEx. - - Example is in: - ACE_wrappers/examples/Reactor/Proactor/test_proactor.cpp. - - This example illustrates how the ACE_Proactor can be used to - implement an application that does various asynchronous - operations. - - * apps/JAWS/server: Complete rewrite of JAWS. The new JAWS has - support for Asynch-Thread-Pool (on WIN32), Synch-Thread-Pool, - and Thread-per-Request. Different models can be configured using - the svc.conf file. The server now supports both GET and PUT - commands. - - The HTTP_Handler class is a state based implementation of the - HTTP protocol. Therefore, it can be used synchronously and - asynchronously. It uses an abstract IO class to move between - different HTTP protocol states. It is up to the IO class to - decide on synchronous or asynchronous I/O. - - * apps/JAWS/client: This is an example of the implementation of - BlobStreaming in ACE. This version of BlobStreaming uses HTTP as - a transport protocol. - - Blobby :-) is a simple application written using the ACE_Blob - class, which is capable of doing both file uploads and - downloads. If a file is downloaded, the downloaded data is sent - to standard output, so that it can be piped as necessary. - - * ace/Mem_Map.cpp (map_it): This method now uses ACE_OS::pwrite - (if ACE_HAD_P_READ_WRITE is defined) instead of - ACE_OS::lseek/ACE_OS::write to write the end-of-file byte. The - old scheme does not work if the file is in OVERLAPPED mode. - - * ace/OS: Added pread and pwrite to the OS class (if - ACE_HAD_P_READ_WRITE is defined). On Win32, these functions use - the OVERLAPPED structure to specify the offset. This - implementation will block until the write/read completes (even - if the file is in OVERLAPPED mode). - - * ace/config: Added ACE_HAS_P_READ_WRITE to the following - platforms that support pread() and pwrite() calls: - config-sunos4-g++.h - config-sunos4-lucid3.2.h - config-sunos4-sun3.x.h - config-sunos4-sun4.1.4.h - config-sunos4-sun4.x-orbix.h - config-sunos4-sun4.x.h - config-sunos5.4-centerline-2.x.h - config-sunos5.4-g++.h - config-sunos5.4-sunc++-4.x-orbix.h - config-sunos5.4-sunc++-4.x.h - config-sunos5.5-g++.h - config-sunos5.5-sunc++-4.1.h - config-sunos5.5-sunc++-4.x-orbix.h - config-sunos5.5-sunc++-4.x.h - config-sunx86-sunc++-4.x.h - config-win32-common.h - -Sun Apr 6 14:16:18 1997 Douglas C. Schmidt - - * tests/Timer_Queue_Test.cpp: Added tests to make sure that the - new ACE_Timer_Queue::cancel() logic is working correctly. So - far, it seems to be fine. - - * ace/Timer_{Heap,List}.cpp (cancel): Changed the comparison for - dont_call_handle_close to be correct. - - * ace/OS.cpp: Deleted a useless return. Thanks to Gonzalo - A. Diethelm for reporting this. - - * ace/config-irix6.2-sgic++.h: Added the following definitions: - - + ACE_LACKS_PTHREAD_THR_SIGSETMASK - + ACE_HAS_PTHREAD_EQUAL - + ACE_HAS_PTHREAD_T - + ACE_HAS_SYSENT_H - + ACE_HAS_SYSINFO - + ACE_HAS_TEMPLATE_TYPEDEFS - - Deleted the following definitions: - - + #define ACE_HAS_SYS_SIGLIST (Irix's compiler only has a - _sys_siglist array when compiling their own internal - functions). - - Thanks to Gonzalo A. Diethelm for this. - - * ace/Process: Added new support for setting the environment - variable and the current working directory. Thanks to Gonzalo - A. Diethelm for this enhancement. - - * ace/OS.h: "sys/stat.h" was being included more than once, so I - fixed this. Thanks to Gonzalo A. Diethelm - for reporting this. - - * ace/XtReactor.cpp: Added the register_handler_i() method, which - just delegates to the one defined in the Reactor. This is - necessary to adjust to the C++ type system rules. Thanks to - Gonzalo A. Diethelm for reporting this. - - * ace/Service_Config.cpp: Added the Double-Checked Locking - Optimization pattern to all the ACE_Service_Config Singletons - (e.g., thr_mgr(), reactor(), etc.) so that they behave correctly - in multi-threaded programs. Thanks to Matthias Kerkhoff - for insisting on this. - - * ace/OS.i (nanosleep): If the nanosleep() system call isn't - supported by the OS platform we'll just use ACE_OS::sleep(const - ACE_Time_Value &) instead. - - * ace/Log_Msg.cpp: Changed the logic of - ACE_Log_Msg_Manager::remove() so that it returns the number of - remaining registered instances. When this goes to 0 we'll - cleanup. - - * ace/OS.i: Enhanced the ACE_OS::cond_[timed_]wait() methods so - that they use SignalObjectAndWait() whenever possible to avoid - potential problems with unfairness. See - http://www.cs.wustl.edu/~schmidt/editorial-15.html for more - details. Thanks to David Holmes for - pointing out this subtlety. - -Sun Apr 06 20:01:57 1997 David L. Levine - - * include/makeinclude/wrapper_macros.GNU: added "purify" and - "quantify" make command options. To build Purified versions - of all executables in the current direction, for example: - - % make clean; make purify=1 - - These options assume that purify or quantify are in your PATH. - - * ace/Task.{h,cpp}: removed ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES - from ACE_Task_Exit declaration and ACE_Task_Exit::instance (). - ACE_Task_Exit is no longer a template class, so we don't need that. - - * ace/Task_T.h: added missing "*/" at end of comment after #endif. - - * tests/IOStream.cpp (server): added check for 0 strlen of - "buf" to avoid out-of-bound array reference. - - * ace/Svc_Conf_l.cpp, Makefile: added #define ACE_BUILD_DLL. - Thanks to Matthias Kerkhoff for - reporting this. - - * ace/Set.cpp(ACE_Set_Node ctor): commented out unused arg MS_SUCKS. - -Sat Apr 5 14:21:29 1997 Prashant Jain - - * java/: Changed package name from ACE to JACE across all directories. - -Sat Apr 5 13:12:37 1997 Douglas C. Schmidt - - * tests/MM_Shared_Memory_Test.cpp: Removed the use of dynamic - memory allocation to avoid memory leaks. - - * ace/Service_Config: Changed _defaults to _static_svcs since this - more accurately reflects what they do. - - * examples/Shared_Malloc/test_malloc.cpp: Removed the - print_stats() call since it doesn't work via this API. Thanks - to Sandro Doro for reporting this. - - * ACE-install.sh: Tweeked the install script by changing the - "gunzip; tar; gzip" sequence into "gunzip -c | tar xvf -" to - speed it up a little. Thanks to Per Andersson - for this fix. - - * examples/Threads/future1.cpp: Make sure to delete the char *name - that is retrieved from the future in order to avoid a memory - leak. Thanks to Matthias Kerkhoff for - figuring this out. - - * examples/Threads/future1.cpp: Make sure to delete this->name_ in - the Scheduler destructor to avoid a memory leak. - - * examples/Threads/task_four.cpp (close): Enhanced the close() - method so that it will actually delete the memory for the - Worker_Task. - - * ace/XtReactor.cpp (register_handler_i): Added the - - if (mask & ACE_Event_Handler::ACCEPT_MASK) - ACE_SET_BITS (condition, XtInputReadMask); - - Thanks to Jean-Marc Strauss for - reporting this. - - * ace/Timer_Queue.cpp (expire): This is the only method that calls - ACE_Timer_Queue::cancel() with dont_call_handle_close set to 0. - - * ace/Reactor: Modified the cancel_timer() methods so that they - also take a dont_call_handle_close parameter and pass it on to - the Timer_Queue::cancel() method. - - * ace/Timer_{List,Heap}.cpp: Modified all the cancel() methods so - that they will not call handle_close() unless the new parameter - dont_call_handle_close is 0 (it is 1 by default). This will - avoid nasty problems with recursion. Thanks to Paul Han - for suggesting this. - - * ace/Timer_{List,Heap}.cpp (schedule): If a user tried to - schedule a NULL ACE_Event_Handler then we return -1 with errno - set to EINVAL. - - * ace/Message_Block.cpp: Somehow the file got screwed up and was - reverted back to an earlier incarnation where we didn't use - ACE_Service_Config::alloc()... Thanks to Matthias Kerkhoff - for figuring this out. - -Sat Apr 5 19:11:46 1997 Tim H. Harrison - - * ace/Signal.i (ACE_Sig_Guard): Changed the constructor of - ACE_Sig_Guard so that it doesn't call ACE_OS::sigprocmask for - Win32. This keeps errno from being set to ENOSYS at random - times. - -Sat Apr 05 17:27:02 1997 - - * Registry.cpp (resolve): Type and size of the object is only set - if RegQueryValueEx() returns success. Thanks to Alan - (Alan_Cabrera@fp.cibc.com) for reporting this. - -Sat Apr 05 13:11:04 1997 David L. Levine - - * ace/Log_Msg.cpp (instance): Added another ACE_NO_HEAP_CHECK. - Matthias provided the fix. - - * ace/config-win32.h: Disable ACE_HAS_STRICT by default, because - it will break existing application code. - - * ace/OS.{h,cpp},Log_Msg.{h,cpp}: fixes from Matthias Kerkhoff - to avoid memory-leak reports when MFC - or (the CrtHeapXXX()-functions of the Win32 runtime library) - are used. - - The problem is, that MFC (and so may other Win32 applications - do) allocates a thread specific storage slot for each running - thread which contains various control and debug informations. - Part of this information is an object, which when constructed - makes a snapshop of the heap. When this object is destroyed, - the snapshot is compared to the actual heap. All object still - existing on the heap are reported as memory leaks (which - is in most situations correct). Because the object is deleted - when the thread (or programs main) is left and this happens - before atexit is called, some leak reports are false (because, - e.g., all these ACE_Log_Msg's will be deleted in atexit). - - The fix for ACE_Log_Msg consists of three changes (two only - relevant for Win32, one relevant for all platforms.) - Description of changes: - - a) Introduced a new macro ACE_NO_HEAP_CHECK, which turns - off the built in heap checking until the current code block - is left. (defined for all platforms, but only does something - for Win32). This changes os.h and config-win32-common.h. - - b) Added a static member function to ACE_Log_Msg. The function - (exists) returns 0 if the calling thread don't have an ACE_Log_Msg - and non-null if an ACE_Log_Msg exists. This changes Log_Msg.h - and Log_Msg.cpp. - - c) Changed ACE_Thread_Adapter in a way that creating a new - thread does not automatically create an ACE_Log_Msg for the - calling thread. This happened until now, because the new - thread inherited the log settings of the calling thread. - This behaviour makes no sense, if the calling thread does - not have an ACE_Log_Msg, so i use ACE_Log_Msg::exists() (see - above) to prevent the implicit creation of an ACE_Log_Msg - for the calling thread. - - Thanks, Matthias! - - * ace/config-win32.h and config-win32-common.h: new, consolidated - Win32 config files. Thanks, again, Matthias! - - * ace/OS.h (ACE_UNUSED_ARG): determine whether we're building - on an Irix platform by looking for ACE_HAS_IRIX_GETTIMEOFDAY - instead of ACE_HAS_IRIX62_THREADS. - - * ace/Log_Msg.cpp: VxWorks (only!) change: no longer strdups - program_name and local_host to avoid memory leaks. Instead, - the addresses of these are copied by ACE_Log_Msg. So, only - strings in the text segment should be passed to its functions! - Again, this change is for VxWorks only. - - * ace/Sched_Params.cpp: moved memsets of pcinfo so that entire - pcinfo structure is zeroed out, to _really_ avoid Purify warnings. - -Fri Apr 04 12:28:40 1997 David L. Levine - - * ace/config-mvs.h: removed ACE_HAS_IP_MULTICAST because MVS - doesn't define ip_mreq. Thanks to Chuck Gehr - for reporting this. - - * ace/OS.i (mutex_init): fixed the extra braces once and for all. - Thanks to Chuck Gehr for reporting it. - - * ace/OS.i, config-sco-5.0.0*.h: fixed for SCO so that it uses - single-argument gettimeofday () prototype, but calls two-arg - (SVR4) version in ACE_OS::gettimeofday (). Thanks to Ganesh - Ganesh Pai for solving this problem. - - * ace/Log_Msg.{h,cpp}: added ACE_Log_Msg destructor. In - instance (), added call to ::atexit () (::taskDeleteHookAdd () - on VxWorks) to register cleanup handler. Each new instance - of an ACE_Log_Msg is inserted into an ACE_Unbounded_Set; the - cleanup handler iterates over the Set and deletes the - ACE_Log_Msgs at program exit. - - Also, the two strings that are allocated get cleaned up after - the last ACE_Log_Msg instance is deleted. Many thanks to - Matthias Kerkhoff for figuring this out - and cranking out the code. - - It works differently on VxWorks, because it doesn't have - ::atexit (). VxWorks has ::taskDeleteHookAdd (), which is - called when each task exits. So, the Set isn't used. Instead, - the cleanup hook is called for each task when it exits, passing - the task control block (TCB) of the exiting task. A pointer to - the ACE_Log_Msg instance is contained in one of the spare fields - of the TCB, so the cleanup handler simply deletes it. - - * ace/IOStream.h: specify template parameter (ACE_IOStream) - to ACE_OPERATOR{G,P}_SET macros. Thanks to Chuck Gehr - for providing this fix. - -Thu Apr 3 22:17:53 1997 Irfan Pyarali - - * ace/Registry.cpp: Changed STRING_SEPARATOR from Istring to - LPCTSTR. Thanks to Matthias Kerkhoff for - suggesting this. - -Thu Apr 3 21:39:45 1997 Chris Cleeland - - * ace/OS.i (mutex_init): Removed errant open-brace ('{'). Thanks - to Chuck Gehr (gehr@sweng.stortek.com) for the fix! - -Thu Apr 03 08:52:34 1997 David L. Levine - - * ace/OS.h,OS.cpp,Sched_Params.cpp: added /**/ to some #include - directives. Thanks to Matthias Kerkhoff - for reporting these. - - * ace/OS.cpp (writev, readv): changed type of local variable "i" - from size_t to int to avoid signed/unsigned mismatch. Thanks - to Matthias Kerkhoff for reporting this. - - * ace/OS.cpp (readv), SOCK_Dgram.cpp (recv): added casts of - iov_len and copyn because iov_len is int on some platforms and - size_t on others. This avoids compiler (MSVC 4.1) warnings. - Thanks to Matthias Kerkhoff for reporting - this. - - * include/makeinclude/platform_sco5.0.0-nothread.GNU: - updated CCFLAGS and added LD=$(CXX). Thanks to - Ganesh Pai for these fixes. - - * ace/OS.h: added #include of for SCO only. - Thanks to Ganesh Pai for this fix. - - * ace/config-sco-5.0.0*.h: added #define ACE_HAS_IP_MULTICAST. - Thanks to Ganesh Pai for this fix. - - * ace/config-{chorus,linux*,sco*}.h: removed #define of - ACE_HAS_INLINED_OSCALLS because it's no longer needed in the - config files: it's #defined in OS.h if needed. - -Thu Apr 3 01:48:01 1997 Tim H. Harrison - - * ace/Malloc.i (malloc): ACE_New_Allocator::malloc only calls new - if nbytes is > 0. Purify was complaining that 0 bytes were - allocated but never deleted. Go figure. - -Wed Apr 2 22:24:48 1997 Douglas C. Schmidt - - * ace/OS.cpp: Moved the ACE_OS::inet_aton() method into the *.cpp - file and made it non-inline to work around a bug with HP/UX C++. - Thanks to Neil Cohen for this fix. - -Wed Apr 02 10:09:37 1997 David L. Levine - - * ace/config-sunos5.5-sunc++-4.1.h: added template specialization - with Sun C++ 4.2. - - * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: removed +w - and added comments about Sun C++ 4.2 support. - - * include/makeinclude/platform_chorus.GNU, platform_hpux_gcc.GNU, - platform_irix5.{2,3_g++}.GNU, platform_linux{_,pthread}.GNU, - platform_m88k.GNU,platform_osf1_4.0_g++.GNU, - platform_sco-nothread.GNU,platform_sco5.0.0-*.GNU, - platform_sunos{4,5}_g++.GNU, platform_sunos5_x86_g++.GNU, - platform_unixware_g++.GNU, platform_vxworks5.2_g++.GNU: - added -fno-implicit-templates to CCFLAGS. See INSTALL file - for discussion of the g++ option. Also, added -O2 because - it dramatically reduces object file sizes. - - * netsvcs/clients/Tokens/manual/manual.cpp: made - STDIN_Token::TID typedef public so that template - specialization (w/ Sun C++ 4.2) can access it. - -Wed Apr 2 10:02:47 1997 Chris Cleeland - - * ace/OS.h: Added definitions for THREAD- and PROCESS-LEVEL - priorities because some implementations define these while - others don't. These are now - ACE_{THR,PROC}_{FIFO,RR,OTHER}_{MIN,MAX,DEF}. The only really - NEW concept is the *_DEF, which is a default value assigned by - ACE_OS::thr_create() if one isn't given. Of special note is that - we don't redefine a default values if it's already been - defined, which allows individual programs to have their - own ACE-wide "default". - - * ace/OS.cpp (thr_create): Uses ACE_{THR,PROC}_* macros - rather than the PRI_* macros. - - * ace/Sched_Params.cpp (priority_min,priority_max): These now - use ACE_{THR,PROC}_* macros to ignore OS-specific priority - assignments. - - * ace/config-linux-lxpthreads.h: Removed definitions of - PRI_{FIFO,RR,OTHER}_{MIN,MAX}. - - * include/makeinclude/platform_linux*.GNU (CCFLAGS): Added - -fno-implicit-templates now that it's supported. This - eliminates messages of the sort 'ld: Warning size of - change from xx to yy' - when linking libACE.so. Thanks to David Levine for making - this possible! - -Tue Apr 1 15:27:28 1997 Douglas C. Schmidt - - * bin/g++dep: Removed the "/bin" prefix so that this won't fail on - platforms that don't have sed in /bin. Thanks to Sandro Doro - for this fix. - -Tue Apr 01 09:55:07 1997 David L. Levine - - * ace/OS.h: protected definition of struct flock on VxWorks, - because it defines that type in sys/fcntlcom.h. (It doesn't - appear to support flock (), though.) Thanks to Dave - Mayerhoefer for reporting this. - - * ace/OS.h: define ACE_hrtime_t as u_longlong_t gcc, because - its long long types are only 4 bytes long. Its longlong_t - types are 8 bytes. Also made ACE_hrtime_t unsigned for - other than gcc on Unix platforms. - - * ace/OS.* (gethrtime), config-vxworks-ghs-1.8.h: added support - for PowerPC with Green Hills compiler. Thanks to Dave - Mayerhoefer for providing the - readPPCTimeBase assembler routine. - - * ace/config-vxworks*.h: removed #include of vxWorks.h because - its no longer necessary with the TimeValue.h merged into OS.h. - - * ace/High_Res_Timer.cpp (elapsed_time): added cast to - initialization of nseconds to avoid compiler warning from - MSVC 4.1 about narrowing from unsigned __int64. - Thanks to Matthias Kerkhoff for - reporting this. - -Mon Mar 31 18:18:35 1997 Carlos O'Ryan - - * ace/config-hpux-10.x-g++.h: - It was tuned to HP-UX 10.10 (and further) using g++ 2.7.2 without - DCE/Threads. - - * ace/Task_T.cpp: - Another iteration on the Module.h file, this time it is not - included *only* under HPUX and when using HP/aCC. Still IMHO - problems will arise as template sintax checking becomes more - popular. - - * ace/Local_Name_Space_T.h: - * ace/Local_Name_Space_T.cpp: - Replaced MAXNAMELEN with MAXPATHLEN since some platforms - (e.g., HP/UX) have a very low value (e.g., 14 bytes) for - MAXNAMELEN. - - * ace/config-hpux-10.x-aCC.h: - The comment did not make clear what was compiler/platform - target. It also included some remarks that only applied to - HP/C++. - - * tests/Future_Test.cpp: - * tests/Message_Block_Test.cpp: - * tests/Thread_Pool_Test.cpp: - Will not compile if ACE_HAS_THREADS was not defined and - ACE_TEMPLATES_REQUIRE_SPECIALIZATION was: they tried to - instantiate templates that were only defined when ACE_HAS_THREADS. - - * ace/config-hpux-10.x-aCC.h: - More fine tuning: ACE_HAS_EXCEPTIONS, - ACE_LACKS_LINEBUFFERED_STREAMBUF, - ACE_HAS_STREAM_PIPES. - - * ace/TLI_Stream.h: - * ace/TLI_Acceptor.h: - No "Meta-type info" was defined (the PEER_ADDR and PEER_STREAM - typedefs). - - * ace/Signal.h: - * ace/Signal.cpp: - With HP/aCC we can enable ACE_Sig_Handlers. - -Mon Mar 31 22:36:55 1997 Douglas C. Schmidt - - * ace/Service_Config.cpp (process_directives): Return -1 if - ace_yyerrno > 0. Thanks to Alan Cabrera - for reporting this. - -Mon Mar 31 17:38:08 1997 Chris Cleeland - - * ace/OS.cpp (thr_create): Moved priority determination after - policy determination because it's possible for setting of the - priority to fail if it's not a valid priority for the [default] - policy. - -Mon Mar 31 09:00:54 1997 David L. Levine - - * performance-tests/Misc/context_switch_time.cpp: this test no - longer worked. So, reverted to revision 4.5, plus minimum - changes necessary to support build on platforms without threads. - - * examples/Threads/Makefile, performance-tests/Misc/Makefile: - moved context_switch_time.cpp from examples/Threads to - performance-tests/Misc. - - * examples/Logger/Acceptor-server/server_loggerd.cpp, - examples/Reactor/Misc/pingpong.cpp, - examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp, - examples/Shared_Malloc/Malloc.cpp: - added template specializations. - - * include/makeinclude/platform_sunos5_g++.GNU: removed dependency - of CCFLAGS on CFLAGS to avoid duplicate -g in build command. - Also, added -fno-implicit-templates in comment. - -Sun Mar 30 12:52:58 1997 Douglas C. Schmidt - - * ace/Malloc.h: The block begining with: - #if defined (ACE_MALLOC_STATS) - and ending with end of struct ACE_Malloc_Stats - must be moved (up) after line 107 - - Thanks to Sandro Doro for pointing - this out. - - * ace/Malloc_T.cpp: The line - this->malloc_stats_.dump (); - must be changed in: - this->cb_ptr_->malloc_stats_.dump (); - - Thanks to Sandro Doro for pointing - this out. - - * ace/Malloc_T.cpp: the line - this->cb_ptr_->malloc_stats_.print (); // print not exists - may be changed in: - this->cb_ptr_->malloc_stats_.dump (); - - Thanks to Sandro Doro for pointing - this out. - - * ace/Malloc_T.h: Added "virtual" to the ACE_New_Allocator methods - to reinforce the fact that they are indeed virtual. Thanks to - Sandro Doro for pointing this out. - - * ace/Malloc.h: Added "virtual" to the ACE_New_Allocator methods - to reinforce the fact that they are indeed virtual. - -Sat Mar 29 20:26:54 1997 David L. Levine - - * ace/OS.h: moved #defin of RTLD_LAZY after #include of dlfcn.h. - Thanks to Chris Lahey for this fix. - - * ace/Task_T.h: replaced #include of "ace/Module.h" because some - Task_T methods use ACE_Module methods. - - * examples/Connection/non_blocking/test_{sock,spipe,tli}_{acceptor, - connector}.cpp, - examples/System_V_IPC/SV_Semaphores/Semaphores_{1,2}.cpp: - added template specializations. - -Sat Mar 29 17:08:33 1997 Douglas C. Schmidt - - * ace/OS.cpp: Added many new ACE_UNUSED_ARGS macros to eliminate - warnings when we are compiling without threads. - -Fri Mar 28 11:34:38 1997 David L. Levine - - * ace/Task.{h,cpp},Thread_Manager.h: changed remaining - priority types to long and defaults to -1. - - * ace/Thread_Manager.cpp (spawn_i): don't clobber errno! - ACE_OS::thr_create () sets errno and returns -1. So, - its return value should not be used to set errno. - - * ace/OS.cpp (thr_create): fixed PTHREADS_1003_DOT_1C thread - priority logic. Thanks to Thilo Kielmann - for the patch. - - * ace/config-sunos5.5*.h,README,OS.cpp (thr_create): added - ACE_HAS_ONLY_SCHED_OTHER to indicate that platform (Solaris 2.5) - only supports POSIX SCHED_OTHER scheduling policy. - - * tests/Priority_Task_Test.cpp (open): added THR_SCHED_FIFO flag. - Thanks to Thilo Kielmann for - for this suggestion. - - * examples/ASX/Event_Server/Event_Server/Makefile, - Transceiver/Makefile: - added -lGateway to LIBS to pick up its template - instantiations during links. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp, - Transceiver/transceiver.cpp, - Connection/blocking/SPIPE-{acceptor,connector}.cpp, - misc/Connection_Handler.cpp,test_upipe.cpp, - Logger/simple-server/server_loggerd.cpp, - UPIPE_Event_Server/{Consumer,Supplier}_Router.cpp, - performance-tests/Synch-Benchmarks/Options.cpp: - added template specializations. - -Thu Mar 27 21:10:59 1997 David L. Levine - - * ace/IOStream.h: only use built-in ipfx{0,1} () with __GNUC__, - because that's the only compiler we know of that has them. - Thanks to Carlos O'Ryan for pointing this - out, and to James CE Johnson for providing the fix. - - * ace/OS.i: rearranged order of ACE_Time_Value functions (moved - set ()'s up, moved arithmetic operators down) so that they are - defined before use. - - * ace/Task_T.cpp: removed ACE_TEMPLATES_REQUIRE_SOURCE around - #include of "ace/Module.h" so that it will build with Sun C++ 4.1. - - * apps/Gateway/Peer/Makefile: added -lGateway to LIBS to - pick up its template instantiations during links. - - * apps/Gateway/Peer/Peer.cpp: added template instantations. - -Thu Mar 27 14:10:39 1997 Douglas C. Schmidt - - * ace/OS.h: Added two new accessors to ACE_Time_Value: - - operator timeval *() const; - // Returns a pointer to the object as a timeval. - - const operator timeval *() const; - // Returns a pointer to the object as a timeval. - - Thanks to Carlos O'Ryan for this suggestion. - - * ace/OS.i (ACE_Time_Value): Inlined many of the ACE_Time_Value - accessors. - - * ace/OS.h: Reimplemented ACE_Str_Buf at - - struct ACE_Export ACE_Str_Buf : public strbuf - { - // = Initialization method - ACE_Str_Buf(void* b = 0, int l = 0, int max = 0); - // Constructor. - }; - - this makes the casting from ACE_Str_Buf* to strbuf* a "safe" - cast and makes it more portable (say on platforms where the - fields in strbuf are not in the right order). Thanks to Carlos - O'Ryan for this fix. - - * ace/OS.h: Moved the definition of imr_multiaddr to just before - class ACE_OS so that it picks everything up appropriately. - Thanks to Hakan Kallberg for reporting this. - - * ace/config-aix-4.[12].x.h and config-mvs.h: Fixed the - ACE_HAS_MULTICAST macros, which should have said - ACE_HAS_IP_MULTICAST. Thanks to Daniel Montalibet - for reporting this. - -Thu Mar 27 15:54:10 1997 Chris Cleeland - - * ace/{Thread,Thread_Manager}.{h,i,cpp} (ACE_Thread): Changed - type for priority arg to spawn*() from u_int to long to - support changes in thr_create indicated below. Thanks to - Thilo Kielmann for these - changes. - - * ace/OS.cpp: Ensure that whenever either a priority of a - scheduling policy is set explicitly, with POSIX threads, the - other argument and the flag THR_EXPLICIT_SCHED is set - automatically. A range check for priority values for POSIX - 1003.1c is also included. Thanks to Thilo Kielmann - for these changes. - - * ace/OS.h: Changed type and default value of priority arg to - thr_create from u_int to long and 0 to -1. Thanks to Thilo - Kielmann for these - changes. Also added ACE_MAX and ACE_MIN macros. - -Thu Mar 27 11:25:38 1997 David L. Levine - - * netsvcs/servers/Makefile: removed SHOBJ so that main.so is not - built, because it wasn't needed. Thanks to Sandro Doro - for this fix. - - * ace/config-aix-4.[12].x.h,config-mvs.h: changed - ACE_HAS_MULTICAST to ACE_HAS_IP_MULTICAST. Thanks to Daniel - Montalibet for reporting - this. - - * include/makeinclude/platform_sunos5_g++.GNU, - platform_sunos5_x86_g++.GNU, - platform_unixware_g++.GNU: - removed "-L$(WRAPPER_ROOT)/ace -L./" from LDFLAGS because it - is added to LDFLAGS in include/makeinclude/wrapper_macros.GNU. - - * apps/Gateway/Gateway/{Event_Channel.cpp,Gateway.cpp, - Proxy_Handler.cpp,Proxy_Handler_Acceptor.cpp, - Proxy_Handler_Connector.cpp, - examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp, - netsvcs/clients/Naming/Client/Client_Test.cpp, - netsvcs/clients/Tokens/manual/manual.cpp: - added template specializations. - -Thu Mar 27 10:05:59 1997 Prashant Jain - - * netsvcs/lib/TS_Clerk_Handler.cpp: Fixed two things: - 1) In TS_Clerk_Processor::parse_args() changed - "%n:\n[-p hostname:port] [-t timeout] [-p poolname]\n%a", 1), - to - "%n:\n[-h hostname:port] [-t timeout] [-p poolname]\n%a", 1), - - 2) In TS_Clerk_Processor::alloc() changed - void *temp = 0; - // Only create the state if it doesn't already exist. - if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR, temp) == -1) - { - // Allocate the space out of shared memory for the system time entry - temp = this->shmem_->malloc (sizeof (this->system_time_)); - - to: - - // Only create the state if it doesn't already exist. - if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR) == -1) - { - // Allocate the space out of shared memory for the system time entry - void *temp = this->shmem_->malloc (sizeof (this->system_time_)); - - Thanks to Sandro Doro (alex@aureus.sublink.org) for suggesting these changes. - -Thu Mar 27 01:00:18 1997 Douglas C. Schmidt - - * include/makeinclude/platform_irix6.2_sgiCC.GNU: Added a new - platform config file for SGI Irix 6.2 using the CC compiler (not - NCC nor the MipsProcompiler). Thanks to Eric Dean Russell - for these changes. - - * ace/OS.h: Moved the ACE_LACKS_UTSNAME_T block into the right - part of the code. Thanks to Jonathan Biggar for - this fix. - - * ace/Malloc.h: Added an enhancement so that the new alignment - features will work regardless of the size of ACE_MALLOC_ALIGN. - Thanks to Fred LaBar for this fix. - - * ace/Synch_Options.cpp: We now automatically set the USE_TIMEOUT - flag if a non-0 timeout value is supplied. Thanks to Tim - Liddelow for this suggestion. - -Wed Mar 26 08:47:24 1997 David L. Levine - - * ace/{ACE.cpp,Log_Msg.cppOS.cpp}, - tests/{Message_Queue_Test.cpp,Naming_Test.cpp}: - Changed ::sprintf calls to ACE_OS::sprintf. Thanks to - Thilo Kielmann for - reporting this. - - * netsvcs/lib/{Client_Logging_Handler.cpp,Name_Handler.cpp, - Server_Logging_Handler.cpp,TS_Service_Handler.cpp, - Token_Handler.cpp}: added template specializations. - -Tue Mar 25 06:47:14 1997 Douglas C. Schmidt - - * ace/OS.h: Moved config.h to the top of OS.h so that we don't - have to worry about not defining things in the right place. - Thanks to Matthias Kerkhoff for pointing - this out. - -Tue Mar 25 22:54:49 1997 Irfan Pyarali - - * ace/OS.i: Added UNICODE support for ACE_OS::chdir(). Thanks to - Ivan Murphy for the code. - -Tue Mar 25 21:26:10 1997 David L. Levine - - * ace/TTY_IO.{h,cpp},README, and these config files: - config-aix-*.h, config-hpux-*.h, config-irix5.*.h, - config-mvs.h, config-osf1-*.h, config-sun*.h (except for g++ - and config-sunos5.5-sunc++-4.1.h), config-win*.h: - Added ACE_NEEDS_DEV_IO_CONVERSION to conditionally compile the - ACE_DEV_IO & conversion operator for ACE_TTY_IO, which is a - subclass of ACE_DEV_IO. Thanks to Fred LaBar - and Gonzalo Diethelm - for reporting warnings without this on - Irix 6.2 with the mipsPro compiler. - - * ace/OS.cpp (thr_create): on VxWorks, always pass 0 as first arg to - ::taskSpawn () so that VxWorks will generate the task ID. - Thanks to Dave Mayerhoefer - for providing this fix, without which random task names would - be assigned. - - * ace/ACE.cpp (get_bcast_addr): added return 0 at end of non-WIN32 - code to avoid compile warning from g++. - - * tests/IOStream_Test.cpp: removed extra "(%P|%t)" from output. - I couldn't get ACE_ERROR_RETURN to work on g++: it complained - about mismatched return types when returning an int from a - function that returns a void *, and about mismatched arguments - to an ACE_Log_Msg function if I cast the int to a void *. So, - I used ACE_ERROR instead. - Added ACE_UNUNSED_ARG (arg). Removed unused variables - error_at_server and error_at_client. - - * netsvcs/lib/TS_Clerk_Handler.cpp: added another template - specialization. - - * examples/Reactor/Multicast/client.cpp: Log_Wrapper::LOG_DEBUG - instead of LM_DEBUG. - - * examples/Threads/context_switch_time.cpp: use ACE_Sched_Params - to get platform-dependent thread priorities. Also, moved #includes - so that config.h is read before testing for ACE_HAS_THREADS. - - * examples/Threads/{auto_event.cpp,barrier2.cpp,future1.cpp, - future2.cpp,reader_writer.cpp,tss1.cpp,tss2.cpp}: - added template specializations. - -Tue Mar 25 10:01:05 1997 Chris Cleeland - - * config-linux.h: Added - ACE_HAS_{SVR4_DYNAMIC_LINKING,AUTOMATIC_INIT_FINI}. Thanks to - alex@aureus.sublink.org (Sandro Doro) for the change. - - * platform_linux.GNU: Added -ldl to LIBS. Thanks to - alex@aureus.sublink.org (Sandro Doro) for the change. - -Tue Mar 25 16:01:34 1997 Carlos O'Ryan - - * ace/Svc_Handler.cpp: - I forgot to comment this: "operator delete" used to call ::delete - on a void*, on ANSI/C++ this is not allowed. Since "operator new" - calls ::new for a char[] I do a casting to char* and call - ::delete[] on the char pointer. - - * ace/config-hpux-10.x-aCC.h: - HP-UX 10.10 supports CLOCK_GETTIME, my guess is that it should - work with g++ and HP/C++, but I won't mess with those files yet. - - * ace/Connector.h: - The default address parameter for "connect" is a bit tricky, from - the comments in the file: - // - // If the compiler supports 'typename' we cannot use - // - // PEER_CONNECTOR::PEER_ADDR::sap_any - // - // because PEER_CONNECTOR::PEER_ADDR is not considered a - // type. But: - // - // typename PEER_CONNECTOR::PEER_ADDR::sap_any - // - // will not work either, because now we are declaring sap_any a - // type, further: - // - // (typename PEER_CONNECTOR::PEER_ADDR)::sap_any - // - // is considered a casting expression. All I can think of is - // using a typedef, I tried PEER_ADDR but that was a source of - // trouble on some platforms. I will try: - // - typedef ACE_PEER_CONNECTOR_ADDR ACE_PEER_ADDR_TYPEDEF; - - * ace/OS.h: - The stock HP C++ compiler (cfront based) gives lots of warnings in - . I used to define volatile to avoid this warnings. Now - I think I'll rather like to see them. - - * ace/SPIPE_Stream.h: - * ace/SPIPE_Connector.h: - There was no meta-type info (PEER_ADDR) for SPIPE_Stream and - SPIPE_Connector. - - * ace/Stream_Modules.h: - * ace/Stream_Modules.cpp: - Fixed a "bug" introduced in my last change: a couple of - ACE_ALLOC_HOOK_* were commented but shouldn't. - - * examples/Connection/non-blocking/CPP-acceptor.cpp (open): - PR_AD cannot be used in this context, it expands to - _ACE_PEER_ACCEPTOR::PEER_ADDR (via ACE_PEER_ACCEPTOR_ADDR), but - the template parameter is _ACE_PEER_STREAM (aka PR_ST_1, aka - ACE_PEER_STREAM_1). - The right macro was ACE_PEER_STREAM_ADDR. - - * ace/Connector.h: - * ace/Connector.cpp: - The typedef trick I used (PEER_ADDR) did not work on every - platform. - I also broke some examples since ACE_PEER_CONNECTOR_ADDR did not - include ACE_TYPENAME on its definition. Hopefully this new trick - will work everywhere. - - * I finally sorted out the mistery of including "ace/Module.h" - into "ace/Task_T.cpp": when compiling "ace/Stream_Modules.cpp" you - get the following include sequence: - Stream_Modules.cpp - Stream_Modules.h - Task.h - Task.i - Task_T.h - Message_Queue.h (descendants removed) - Synch_T.h (descendants removed) - Task.h (already included). - Task_T.i - Task_T.cpp - Module.h - ACE.h (descendants removed) - Task.h (already included). - Module.i - Module.cpp - - At this point Module.cpp uses ACE_Thru_Task declared on - Stream_Modules.h, but after the #include "ace/Task.h"; - in fact Module.cpp tries to #include "ace/Stream_Modules.cpp" but - that second #include expands to nothing due to the canonical - protection on Stream_Modules.h. - That explains the removal of Module.h in Task_T.cpp. - If you are wondering why so long an explanation for this change - the answer is simple: just because I was curious on now it worked. - -Mon Mar 24 14:08:48 1997 Douglas C. Schmidt - - * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Cleaned up the code a - bit. - - * ace/ACE: Added a new method called get_bcast_addr() which will - get the broadcast address for a host. Thanks to Paul Han - for suggesting this. - - * ace/UNIX_Addr: Added another set method in UNIX_Addr class: - - void set (const ACE_UNIX_Addr &sa); - // Creates an ACE_UNIX_Addr from another . - - Thanks to Paul Han for this. - - * ace/SOCK_Dgram: Removed the #if defined (ACE_HAS_IP_MULTICAST) - since this is now handled at the ACE_OS level. - - * ace/OS.h: Added support for IP multicast macros and structs even - on platforms that don't support it so that the tests will - compile without having lots of #ifdefs. - - * tests/Future_Test.cpp: Added a check for platforms that lack - threads. Thanks to Hakan Kallberg - for reporting this. - - * netsvcs/lib/Server_Logging_Handler.cpp: Added a check for - platforms that lack threads. Thanks to Hakan Kallberg - for reporting this. - - * examples/Threads/context_switch_time.cpp: Added an #ifdef for - ACE_HAS_THREADS to this test so that it will compile on - platforms that don't have threading. Thanks to Scott Halstead - for reporting this. - - * tests/IOStream_Test.cpp: Fixed up this test so that it works - correctly on platforms that lack multi-threading. Thanks to - Scott Halstead for reporting this. - - * netsvcs/lib/Makefile: Reincluded the LIB target so that we'll - build a static library. Thanks to Scott Halstead - for reporting this. - - * ace/SOCK_Dgram.cpp (recv): Added a check to make sure that we - don't try to copy more into the recv buffer than we've really - got. Thanks to Alan_Cabrera@fp.cibc.com for this fix. - - * ace/OS.cpp (readv): Added a check to make sure that we don't try - to copy more into the recv buffer than we've really got. Thanks - to Alan_Cabrera@fp.cibc.com for this fix. - - * ace/Malloc.h: Modified the alignment strategy to define - ACE_MALLOC_ALIGN to a number of bytes. (it gets rounded to a - number of long's). This makes it easier to work with more - complex buffer alignment strategies (e.g., DMA). Thanks to Fred - LaBar for this. - - * ace/OS.cpp (readv): Added several more changes for the readv() - emulation. Thanks to Alan Cabrera - and Adam Porter for these fixes. - -Mon Mar 24 14:22:17 1997 David L. Levine - - * ace/OS.cpp (thr_create): For VxWorks, fixed call to ::taskSpawn (). - ACE's arguments are in an array, not individual arguments. - Also, set flags to VX_FP_TASK if it's 0, to match behavior - of ::sp (). Thanks to Dave Mayerhoefer - for reporting these and providing - the fix. - - * ace/High_Res_Timer.cpp (elapsed_time (struct timespec &): - fixed, using same approach as in elapsed_time - (ACE_hrtime_t &nanoseconds), to get nanosecond resolution. - - * netsvcs/lib/TS_Clerk_Handler.cpp (handle_close): added - ACE_UNUSED_ARG (mask). Also, added template specializations. - - * examples/Reactor/Multicast/server.cpp (Server_Events ctor): - rearranged initializers to match declaration order. - - * examples/IOStream/server/iostream_server.cpp, - client/iostream_client.cpp: - added template specializations. - -Mon Mar 24 13:21:31 1997 Tim H. Harrison - - * ace/High_Res_Timer.cpp (elapsed_time): Added an - ACE_High_Res_Timer::elapsed_time (ACE_hrtime_t &nanosecond) - method that returns the number of elapsed nanoseconds. This is - accomplished even with the scale factors converting to - microseconds. It also does not use floating point - calculations. - -Sun Mar 23 13:25:39 1997 Tim H. Harrison - - * ace/High_Res_Timer.h: Removed from the - constructor of High_Res_Timer. All High_Res_Timers now use - global_scale_factor_ directly. Hopefully, this will not break - any existing code! - -Sat Mar 22 12:06:22 1997 Douglas C. Schmidt - - * ace/OS.h: The include statement for config.h was too low. Some - defines for key_t, needed for NT, didn't work. Thanks to Alan - Cabrera for these fixes. - - * examples/Reactor/Multicast: Improved the multicast client and - server programs to work better. - - * ace/Connector.cpp: Modified the ACE_Connector::handle_close() - method to prevent recursive calls to itself. Thanks to Paul Han - for reporting this. - - * ace/Svc_Handler.cpp: Put the check (closing_ == 0) in the - destructor as well as in the destroy() method. This prevents a - possible core dump when the timer exists. The instruction - reactor::remove_handler in the shutdown method currently will be - called twice when ACE_Svc_Handler object is being deleted. Core - dump occurs when it tries to execute ACE_Reactor::remove_handler - method the second time because the ACE_Svc_Handler object - pointer has already been deleted by the previous instruction - ACE_Reactor::cancel_timer. Thanks to Paul Han - for reporting this. - - * ace/OS.cpp: Added new thread-safe implementations of writev() - and readv() for platforms that lack these functions. - - * ace/SOCK_Dgram.cpp: Added new implementations of - ACE_SOCK_Dgram::{send,recv} that define methods for - send(iovec[], ...) and recv(iovec[], ...) for systems that - don't have sendmsg() and recvmsg(). Thanks to Alan Cabrera - for these fixes. - - * apps/jaws/HTTP_Handler.cpp: Removed some problematic template - specializations that were left over from an earlier version of - JAWS. Thanks to Adam Porter for reporting - this. - - * examples/Logger/Acceptor-server/server_loggerd.cpp: Revised the - code to use the new ACE_Svc_Handler logic that checks to ensure - that we don't recurse infinitely in handle_close(). - Thanks to Jean-Marc Strauss for - reporting this problem. - - * examples/Logger/simple-server/Logging_Handler.cpp - (handle_close): Added a check to make sure we don't end up - recursively calling handle_close(). This will prevent - a segfault. - -Sat Mar 22 07:30:49 1997 David L. Levine - - * ace/High_Res_Timer.*: Changed scale factor to convert - platform-dependent clock units to microseconds instead of - nanoseconds. That way, it should be greater than 1 for - all supported platforms. So, it's now an unsigned long - instead of a double. - - * ace/OS.h: Changed ACE_hrtime_t to unsigned __int64 with - _MSC_VER. Also, fixed typo: "uint64" instead of "unit64" - without _MSC_VER. - -Fri Mar 21 08:37:34 1997 Carlos O'Ryan - - * makeinclude/rules.lib.GNU: - I use the macro SOEXT to support HP non-standard extension for - shared library names (.sl instead of .so). - I also changed the rule to build shared libraries: under HP-UX you - cannot pass extra libraries (-lXXX options) when building a shared - lib. Before HP-UX 10.10 it wasn't a problem because no library was - needed with ACE, but to support XLI the '-lxti' flag must be used - on binaries (but not on shared libs). - - * include/makeinclude/platform_hpux.GNU: - The PIC option (+Z) was used always, clearly not intended. - - * include/makeinclude/platform_hpux_gcc.GNU: - Added a config file for g++ under HP-UX. - - * include/makeinclude/platform_hpux_aCC.GNU: - Added a config file for HP/aCC compiler under HP-UX. - - * ace/Makefile: - * netsvcs/lib/Makefile: - Changed to support the SOEXT macro. - - * config-hpux-10.x.h: - * config-hpux-10.x-aCC.h: - * config-hpux-10.x-g++.h: - I updated the files to HP-UX 10.10, AFAIK since that version HP-UX - uses fd_set instead of int in select(2) (so ACE_SELECT_USES_INT is - not needed) and the OS supports siginfo_t and ucontext_t so - ACE_HAS_SIGINFO_T and ACE_HAS_UCONTEXT_T are defined. - I *do not* have threads at my site nor the infamous PHSS_6246 - patch so I couldn't test the threaded version nor the HP cfront - based one. - ACE compiled fine with g++ and HP/aCC though. - - * ace/OS.h: - * ace/Malloc_T.h: - HP/aCC supports the typename keyword. I added a new config macro - 'ACE_HAS_TYPENAME_KEYWORD', when it is defined ACE_TYPENAME - expands to 'typename' when not it expands to nothing. - On the cases where HP/aCC requires the usage of 'typename' I added - a 'ACE_TYPENAME'. - - * ace/OS.i: - * ace/OS.cpp: - ACE_OS::inet_aton cannot be inlined under HP-UX. - - * ace/Connector.h: - * ace/Connector.cpp: - I have decided to use a typedef (PEER_ADDR) instead of - ACE_PEER_CONNECTOR_ADDR, mainly because the second form - requires a ACE_TYPENAME before each usage. - - * ace/Event_Handler_T.i: - Much to my surprize ACE_TYPENAME is required when using a template - typedef as a return value. - - * ace/Local_Name_Space_T.h: - HP/aCC does not like the usage of a private typedef from another - class. - - * ace/Strategies_T.h: - * ace/Strategies_T.cpp: - ACE_Process_Strategy declared two defaults constructors: - ACE_Process_Strategy(void) and ACE_Process_Strategy(int = 1). - The constructor code was wrong, it called open() with parameters: - open(thr_mgr, thr_flags, n_threads) - none of which were defined, worse, open() receives just one - parameter (the number of processes) just as the constructor, I - believe that C-w programming is lurking here. - - * ace/Signal.cpp: - Though the header file does not declare ACE_Sig_Handlers under - HP-UX (and the code is not defined too) some auxiliary functions - that use ACE_Sig_Handlers were defined. I removed their - definition. - Some day I'll try to take a look at the code, trying to find out - was wrong with them. - - * ace/Stream_Modules.h: - * ace/Stream_Modules.cpp: - By mistake I commented out the ACE_ALLOC_HOOK_* macros; have to - fix it *real soon*. - - * ace/Task_T.cpp: - No need to include "ace/Module.h" since only the template - declaration is used. When ACE_TEMPLATES_REQUIRE_SOURCE is defined - you end up using ACE_Thru_Task before it gets defined. - This is no problem unless your compiler checks template sintax - before instantiation as the HP/aCC compiler do. - - * examples/Reactor/Misc/test_demuxing.cpp: - ACE_MT_SYNCH was used, but it is only defined if ACE_HAS_THREADS, - I used ACE_SYNCH instead, which is defined as ACE_MT_SYNCH if - ACE_HAS_THREADS and as ACE_NULL_SYNCH if not. - Maybe the semantics are wrong, but the thing compiles. - -Fri Mar 21 15:10:59 1997 Douglas C. Schmidt - - * ace/Makefile (FILES): Moved Log_Msg to the beginning of the - source list in the ace Makefile. This is nice because it forces - the compilation of OS.i and that, obviously, is where you get - the complaints for the port. It's nice to have it at the - beginning so you catch the errors very early on before you've - compiled 30 or 40 files. Thanks to Scott Halstead - for this suggestion. - - * ace/Memory_Pool.cpp: Added #if !defined - (ACE_LACKS_SYSV_SHMEM) to handle systems like Chorus that - lack this feature. - -Thu Mar 20 18:58:50 1997 Douglas C. Schmidt - - * ace/Svc_Handler.cpp (destroy): Added a state variable to keep - track of when we are closing down the Svc_Handler. This is - necessary to prevent endless recursive calls to handle_close() - due to the recent enhancements to ACE_Timer_{List,Heap}. Thanks - to Bert Craytor for reporting - this. - - * tests/Conn_Test.cpp: Added a new test that makes sure the - Acceptor, Connector, and Svc_Handler are working correctly. - - * ace: Added some more changes for Chorus. Thanks to Wei Chiang - for these changes. - - * ace/OS.h: Added #define for SIGSEGV for platforms that lack it - (e.g., Chorus). - - * ace: Made a bunch of minor changes to support SunOS 4.x better. - Thanks to Scott Halstead for reporting - these problems. - - * tests/Conn_Test.cpp: Added ACE_TEMPLATES_REQUIRE_SPECIALIZATION - for the various templates used in this test. Thanks to Thilo - Kielmann for reporting this. - - * ace/Connector.cpp (connector): Fixed some minor bugs that - prevented the ACE_Connector from compiling. Thanks to David - Levine for noticing this. - - * ace/OS.h: Moved the ACE_LACKS_SIGACTION block so that it will - work on Win32. Thanks to Matthias Kerkhoff - for pointing this out. - -Thu Mar 20 22:38:27 1997 David L. Levine - - * ace/Timer_Heap.cpp: added template specializations. - - * netsvcs/lib/Client_Logging_Handler.cpp, - Name_Handler.cpp - Server_Logging_Handler.cpp - TS_Clerk_Handler.cpp - TS_Server_Handler.cpp - Token_Handler.cpp: added template specializations. - There are still many missing from libnetsvcs. - - * tests/Conn_Test.cpp, - Future_Test.cpp - IOStream_Test.cpp - Map_Manager_Test.cpp - Message_Block_Test.cpp - Message_Queue_Test.cpp - Reader_Writer_Test.cpp - SV_Shared_Memory_Test.cpp - Thread_Pool_Test.cpp}: added template specializations. - Thanks to Thilo Kielmann - for providing these. - - * ace/Log_Msg.cpp: removed commented-out template specialization. - - * include/makeinclude/platform_{chorus,hpux,hpux_gcc}.GNU: - split out CFLAGS and CCFLAGS from CC and CXX. - - * ace/config-aix-4.[12].x.h: added back ACE_HAS_THREAD_SELF and - and ACE_HAS_SVR4_DYNAMIC_LINKING; removed ACE_HAS_PTHREAD_T. - Thanks to Chris Lahey for figuring these out. - -Thu Mar 20 12:25:30 1997 - - * ace/ace.{mak,mdp}: Build->Settings->Code Generation->Processor is - now set to "Pentium" instead of "Blend*" for Debug and Release - builds. - - * ace/config-win32-msvc4.x.h: - * ace/config-win32-msvc2.0.h: - * ace/config-winnt-4.0-msvc4.x.h: Only define ACE_HAS_PENTIUM when - _M_IX86 == 500. Projects must specify Pentium in - Build->Settings->Code Generation->Processor to use the RDTSC - instruction in ACE_OS::gethrtime. - - * ace/High_Res_Timer.{cpp,i}: By default, High_Res_Timer is - constructed with a scale_factor == 1. This allowed me to remove - all the checks for scale_factor == 0 in the code. - - * ace/High_Res_Timer.h (static gettimeofday): If - global_scale_factor_ is not set, and we're on a platform that - requires global_scale_factor_ (e.g., Win32), - ACE_OS::gettimeofday will be used instead of ACE_OS::gethrtime. - This allows the scale_factor of 1 to still result in correct - values. - -Wed Mar 19 15:02:09 1997 Douglas C. Schmidt - - * ace: Added zillions of minor changes so that ACE will compile on - the new aCC compiler for HPUX. Thanks to Gonzalo A. Diethelm - and Carlos O'Ryan for - help with this. - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): In addition to the - SO_REUSEADDR option, Irix has a SO_REUSEPORT option that must - also be set to allow multiple sockets to bind to the same - multicast address. Thanks to Robert V. Head for - reporting this. - - * ace: Added a slew of changes to support CHORUS. Thanks to - Wei Chiang for these changes. - - * ace/config-sunos4.*.h: Added #define ACE_HAS_UNION_WAIT based - on the recommendation of Kumar Neelakantan - . - - * ace/Log_Msg.cpp (log_hexdump): Replaced the use of ::sprintf() - with ACE_OS::sprintf() so that the return value would be correct - on SunOS 4.x! - - * ace/OS: Added ACE_HAS_CHARPTR_SPRINTF and ACE_SPRINTF_ADAPTER - to ACE_OS::sprintf() for SunOS 4.x platforms. Thanks to Kumar - Neelakantan for reporting this. - - * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator): If the bound was - reached in the following loop, we should set this->num_ = - this->handles_.max_handle_ + 1 rather than go into the 2nd loop. - Thanks to Michael Newton for reporting - this. - - * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator): - ACE_Handle_Set_Iterator::ACE_Handle_Set_Iterator did not work - properly if called with a zero handleset, as there was no bounds - check on the first loop therein. Thanks to Michael Newton - for reporting this. - -Wed Mar 19 16:06:32 1997 David L. Levine - - * ace/OS.h,README: added ACE_HAS_AIX_BROKEN_SOCKET_HEADER to wrap - #include of sys/socket.h with #undef/#define of __cplusplus. - - * ace/config-aix-4.[12].x.h: added ACE_HAS_AIX_BROKEN_SOCKET_HEADER, - ACE_HAS_PTHREAD_T, ACE_LACKS_TCP_H, and ACE_LACKS_SETSCHED. - Removed ACE_HAS_SVR4_DYNAMIC_LINKING and ACE_HAS_THREAD_SELF. - - Thanks to Daniel Montalibet for - both of the above modifications. - - * platform_{dgux4_epc,irix5.3_g++,linux*,m88k,osf1_3.2,sco*, - sunos4_g++,sunos5_centerline*,sunos5_g++,sunos5_sunc++*, - unixware_g++,vxworks5.2_g++}.GNU: split out CFLAGS and CCFLAGS. - Also, removed -lstdc++/-lm from g++ versions, because we now set - CXX to g++ instead of gcc, so those libraries are picked up. - - * include/makeinclude/platform_osf1_4.0{,_g++}.GNU: - added -lrt to support ACE_Sched_Params. Thanks to - Thilo Kielmann for - suggesting this. Also, split out CFLAGS and CCFLAGS. - - * ace/OS.h: removed SVR4_DYNAMIC_LINKING protection around - #define of RTLD_LAZY because it's used in ace/Parse_Node.cpp. - Thanks to Matthias Kerkhoff for pointing - this out. - - * ace/OS.i (thr_setcanceltype): added ACE_UNUSED_ARGS for STHREADS - case. Thanks to Chuck Gehr for - providing this fix. - -Tue Mar 18 21:53:03 1997 Douglas C. Schmidt - - * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Modified the - SOCK_Dgram_Bcast class by adding a const char *host_name to the - contructor, and open, and mk_broadcast methods. If the user - passes in the host_name, then only the broadcast address of an - interface that has a matching ip address with the host will be - added to the if_list_. Otherwise, nothing changes. Thanks to - Paul for this feature. - -Tue Mar 18 13:20:59 1997 Irfan Pyarali - - * ace/ace.mdp: Reverted the change for DllMain as the entry point - to ace.dll. This is causing problems in multi-threaded - applications. - - * netsvcs/lib/Client_Logging_Handler.cpp: Added a check in fini() - to make sure we have a valid handler. If the connect attempt - failed, this->handler_ will be set to 0. - - * tests/Mem_Map_Test.cpp: Added code that removes all temporary - files created by the test. - - * tests/Time_Service_Test.cpp: Made sure we remove the backing - store file left behind by a aborted clerk process. - - * examples/Reactor/Ntalker/ntalker.cpp: The ntalker now uses - ACE::register_stdin_handler to register the STDIN. This function - allows for portability. - -Tue Mar 18 08:12:22 1997 David L. Levine - - * ace/Svc_Conf_y.cpp,Makefile: replaced "y.tab.c" string with - "Svc_Conf_y.cpp" to ease debugging. Thanks to Luca Priorelli - for suggesting this. - - * ace/IOStream.cpp (close): replaced call to - ACE_SOCK_Stream::close () with one to generic STREAM::close (). - Thanks to Kumar Neelakantan for - reporting this problem. - - * ace/OS.h,README,config-*.h: removed ACE_HAS_RTLD_LAZY_V, and - replaced with #define of RTLD_LAZY macro only if it's not - already defined (and if ACE_HAS_SVR4_DYNAMIC_LINKING is defined). - Thanks to Chris Lahey for providing this fix. - - * ace/OS.i (thr_setcancelstate, thr_setcanceltype, thr_cancel): - added ACE_UNUSED_ARG calls to avoid compiler warnings. Thanks - to Chuck Gehr for suggesting them. - - * ace/Local_Name_Space_T.h: moved #include of Local_Name_Space.h up - because this file needs declaration of ACE_NS_String. There - _shouldn't_ be a circular include problem because the #includes are - protected. Thanks to Daniel Montalibet - for reporting this problem and - providing the fix. - - * ace/Local_Name_Space.h: removed #include of ace/Service_Config.h. - - * include/makeinclude/wrapper_macros.GNU: put -I. before - -I$(WRAPPER_ROOT) instead of after. - - * tests/IOStream_test.cpp: added checks for receipt of proper values. - -Tue Mar 18 01:38:14 1997 Irfan Pyarali - - * ace/ace.mdp: Add DllMain as the entry point of ace.dll. This - allows us to call WSAStartup when ace.dll is loaded in and - WSACleanup when ace.dll is unloaded. People using ace as a - static library are still out in the cold with respect of getting - WSACleanup called before the process exits. - - I am not sure of two cases: (1) What happens when an application - crashes and was not able to call WSACleanup and (2) if the - application wants to continue using sockets when ace.dll is - unloaded. I hope this solves more problems than it creates ;-) - -Tue Mar 18 01:38:14 1997 Irfan Pyarali - - * ace/Parse_Node.cpp: Added END_OF_LINE characters to some - ACE_ERRORs. - - * netsvcs/{lib,servers}: Fixed the project files to produce and - use the dll in the correct place (which is netsvcs/lib). - - * ace/Log_Record.cpp: Corrected format string for fprintf(). - - * examples/Threads/test.mdp: Added context_switch_time.cpp to the - project. - - All of the above bugs were reported by Luca Priorelli - . Thanks for the contribution. - -Mon Mar 17 12:59:56 1997 David L. Levine - - * ace/OS.{h,i}: added nanosleep (), currently supported only - on POSIX platforms (if ACE_HAS_CLOCK_GETTIME is defined). - - * examples/Mem_Map/IO-tests/{IO_Test.cpp,test_io.cpp): - LM_ERROR instead of ACE_ERROR, and fixed call to ACE::basename (). - - * ace/OS.cpp (sched_params): return -1 if not supported, - instead of ENOTSUP. - - * ace/OS.cpp (fork): added ACE_UNUSED_ARG (program_name) for WIN32 - and VxWorks. - - * ace/Sched_Params.cpp (priority_min, priority_max, next_priority, - previous_priority): not supported on MVS, via ACE_LACKS_SETSCHED. - Thanks to Chuck Gehr for figuring this - out and providing the fix. - - * tests/Timer_Queue_Test.cpp (test_performance): changed type of - local variable "i" to (signed) int to avoid signed/unsigned - comparison, and eventual seg fault because a loop would never - terminate. - -Sun Mar 16 11:31:46 1997 Douglas C. Schmidt - - * ace/Timer_{List,Queue,Heap}.h: Defined copy constructors and - assignment operators in the private part of the class so that - users won't accidentally make mistakes. - -Sat Mar 15 21:44:45 1997 Douglas C. Schmidt - - * ace/Timer_{Queue,List}.cpp (cancel): handle_close() should be - called only once (especially when handle_close() implements - "delete this;" ). Since it is possible that the EH will be - registered more than once, I changed the code to do the - following: - - if (number_of_cancellations == 1) - // Call the close hook. - curr->handler_->handle_close (ACE_INVALID_HANDLE, - ACE_Event_Handler::TIMER_MASK); - - Thanks to Hamutal Yanay for - suggesting this. - - * examples/Mem_Map/IO-tests/test_io.cpp (run_tests): Removed all - uses of ::perror and replaced them with calls to ACE_ERROR - macros. - - * ace/Mem_Map.i (unmap): The ACE_Mem_Map::close method does not - work properly if the value of file_mapping_ is equal to - ACE_INVALID_HANDLE. In this case the method calls a useless - close (-1). Therefore, I changed: - - if (this->file_mapping_ != this->handle_) - ACE_OS::close (this->file_mapping_); - - in: - - if (this->file_mapping_ != this->handle_ && - this->file_mapping_ != ACE_INVALID_HANDLE) - ACE_OS::close (this->file_mapping_); - - Thanks to Sandro Doro for reporting - this. - -Thu Mar 13 18:21:15 1997 Irfan Pyarali - - * ace/ReactorEx.h: Change protection of methods/variables of - ReactorEx from private to protected. Thanks to Matthias Kerkhoff - for suggesting this. - -Thu Mar 13 16:31:54 1997 David L. Levine - - * ace/OS.i (thr_getprio): Added missing ACE_NOTSUP_RETURN - for the case of pthreads && !defined (ACE_LACKS_SETSCHED). - Thanks to Chuck Gehr for - reporting this. - -Thu Mar 13 00:12:15 1997 Irfan Pyarali - - * ace/Local_Name_Space_T.cpp (dump): Added ACE_UNUSED_ARG around - fake_this to stop the compiler from complaining about unused - variables. - - * ace/Message_Block.cpp (ACE_Data_Block::size): Moved the copying - of the old base before freeing it up. Thanks to Dieter Quehl - (dietrich.quehl@med.siemens.de) for pointing this out. - - * ace/Local_Name_Space_T.cpp: Added code to the list methods such - that structured exceptions are handled correctly. Thanks to - Karlheinz Dorn (karlheinz.dorn@med.siemens.de) for reporting - this. - -Wed Mar 12 21:31:51 1997 Irfan Pyarali - - * examples/Reactor/Ntalker/ntalker.cpp: Made changes to the - program which allows it to run under Win32. - - * ace/SOCK_Dgram_Mcast.cpp: Made changes to the setting of the - interface address so that it works correctly under Win32. - Thanks to Todd L. Montgomery (tmont@cs.wvu.edu), Anton van - Straaten (anton@appsolutions.com), Ole O. Johnsen - (Ole.Johnsen@gpi.telemax.no), Mike Flinn - (mike.flinn@smtpgate.aws.waii.com), Steve Weismuller - (spweismu@rsoc.rockwell.com) and others who helped out. - -Wed Mar 12 17:05:52 1997 Chris Cleeland - - * ace/config-linux-lxpthreads.h: Added ACE_HAS_IP_MULTICAST. - -Wed Mar 12 16:07:07 1997 David L. Levine - - * ace/OS.i (gethrtime): Added support for VxWorks and - other platforms that support ACE_HAS_CLOCK_GETTIME. - -Tue Mar 11 21:38:42 1997 Irfan Pyarali - - * ace/OS.i (open): Improved support for passing flags through to - CreateFile (). - -Tue Mar 11 14:30:12 1997 David L. Levine - - * ace/config-vxworks-ghs-1.8.h: added ACE_LACKS_SYS_NERR. - Thanks to Dave Mayerhoefer for - reporting this. - - * ace/OS.{i,cpp} (uname, hostname): added VxWorks support. - Thanks to Dave Mayerhoefer for - providing this. (Also, uninlined ACE_OS::uname on WIN32 - and VxWorks because it contains string literals.) - - * ace/High_Res_Timer.{i,cpp}: fixed interpretation of units: - ACE_hrtime_t is in nanoseconds, so it should be divided by - 1000000000 to get seconds. Fixed divs/mods to first divide - by 1000, then div/mod. Thanks to Luca Priorelli - for identifying this problem. - - Also, removed some casts that are no longer necessary, and - added some casts of ACE_hrtime_t values to longs to avoid - compiler warnings. Thanks to Matthias Kerkhoff - for pointing this out. - - * ace/Reactor.cpp (unbind): cast "index" to int to avoid - signed/unsigned comparison. Thanks to Matthias Kerkhoff - for pointing this out. - - * ace/ReactorEx.cpp (bind): changed type of "current_size" to - size_t to avoid signed/unsigned comparison. Thanks to Matthias - Kerkhoff for pointing this out. - - * ace/Timer_Heap.cpp (ctor, grow_heap): cast unsigned value - (i + 1) to int before negating to avoid compiler warning. - Thanks to Matthias Kerkhoff for pointing - this out. - - * examples/Threads/context_switch_time.cpp (main): added - ACE_SCOPE_PROCESS param to ACE_Sched_Params instances so - that the test works on WIN32. Thanks to Luca Priorelli - for identifying this problem. - - * ace/Registry.{h,cpp},Registry_Name_Space.{h,cpp},Svc_Conf_Tokens.h, - Svc_Conf_{l,y}.cpp,Timer_{Heap,List}.cpp,config-aix-4.2.x.h, - config-dgux-4.11-epc.h,config-mvs.h,config-sco-5.0.0-fsu-pthread.h, - config-sco-5.0.0-mit-pthread.h,config-sco-5.0.0-nothread.h: - added CVS header (Id wrapped in $). - - * netsvcs/clients/Logger/indirect_logging.cpp (main): declare loop - index as signed int to avoid signed/unsigned comparison. - -Tue Mar 11 07:34:04 1997 Douglas C. Schmidt - - * tests/Timer_Queue_Test.cpp: Added some code to illustrate how - the new handle_close() hook for ACE_Timer_{Heap,List} work. - - * ace/Timer_Heap.cpp (cancel): Modified the Timer_Heap and - Timer_Queue so that it will call the handle_close() hook when - Event_Handler's are cancelled. This is necessary to reclaim - resources. Thanks to Hamutal Yanay - for suggesting this. - - * ace/Event_Handler.h (signal): Added a TIMER_MASK, which is - passed to handle_close() when a timer is cancelled. - - * ace/Log_Msg.cpp (log): Fixed a bug by setting LPTSTR lpMsgBuf = - 0 on line 524. Thanks to Mark Wright for - reporting this. - -Sun Mar 10 13:06:04 1997 Douglas C. Schmidt - - * examples/Mem_Map/IO-tests: Fixed a small bug in "IO_Test.cpp" - file. In the "int Mmap1_Test::run_test" method I inserted an - lseek to rewind the output file. With this correction the speed - go up due to IO cache. Thanks to Sandro Doro - for reporting this. - -Sun Mar 9 18:24:37 1997 Prashant Jain - - * java/src/IOCntlMsg.java (IOCntlMsg): Added two new - classes/files, namely IOCntlCmds and IOCntlMsg. - - * java/src/Task.java: Added accessors to get/set the flags of the - Task. - -Sun Mar 9 13:06:04 1997 Douglas C. Schmidt - - * ace/Reactor: Fixed an evil bug where the expression - - if (handle >= 0 || handle < this->max_handlep1_) - - should be - - if (handle >= 0 && handle < this->max_handlep1_) - - Thanks to Mark Wright for reporting this. - -Sun Mar 9 13:06:04 1997 Douglas C. Schmidt - - * apps/Gateway: Updated the Peer and Gateway applications so that - they don't try to register ACE_STDIN with the Reactor on Win32. - - * apps/Gateway: Changed a bunch of calls to - ACE_Reactor::remove_handler() so that it no longer tries to - remove descriptor 0, but instead uses ACE_STDIN. Naturally, - this doesn't work due to the way that Win32 implements select() - but at least it compiles... Thanks to Elliot Lau - for reporting this. - - * apps/Gateway/Gateway/File_Parser: Changed the enumerated type - ERROR to PARSE_ERROR to avoid a name clash with a symbol - reserved by Win32 (barf). Thanks to Elliot Lau - for reporting this. - -Sat Mar 8 12:37:44 1997 Douglas C. Schmidt - - * ace/Log_Msg.cpp: Changed the implementation of ACE_Log_Msg so - that all accesses to the lock_ are now through a Singleton. - This makes it possible to define multiple instances of - ACE_Log_Msg within the same thread. Thanks to Jeff Morgan - for helping track this down. - - * Added support for SCO 5.0. Thanks to Auturo - for these patches. - -Thu Mar 06 13:24:04 1997 David L. Levine - - * ace/OS.i (gettimeofday): moved declaration of "result" so - that it's not declared on VxWorks, where it's not needed; - (stat): added cast of file arg to char * for VxWorks; - (thr_getprio): added missing "#else" before ACE_NOTSUP_RETURN (-1). - Thanks to Dave Mayerhoefer for - reporting these. - - * ace/OS.cpp (sched_param): with STHREADS, map ACE_SCOPE_THREAD - to ACE_SCOPE_PROCESS'. - - * ace/Svc_Conf_l.cpp: commented out YY_BREAK after ace_yyterminate () - to avoid GHS compiler warning about unreachable statement. - Thanks to Dave Mayerhoefer for - reporting this. - - * ace/ace.mak: removed Thread_Priority and renamed Scheduling_Params - to Sched_Param. - - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client): - added "l" qualifier for sprintf of ACE_OS::getpid (). - - * tests/Priority_Task_Test.cpp, - examples/Threads/{context_switch_time.cpp,Makefile}: - adapted to new thread priority/ACE_Sched_Params. - -Wed Mar 5 14:33:04 1997 Douglas C. Schmidt - - * ace/UNIX_Addr.cpp: Enhanced the implementation of set() so - that it works correctly on MVS, which has a different definition - of struct sockaddr_un: - - struct sockaddr_un { - unsigned char sun_len; - unsigned char sun_family; - char sun_path[108]; - }; - - Thanks to Chuck Gehr for reporting - this. - -Wed Mar 05 14:47:14 1997 David L. Levine - - * ace/OS.{h,cpp},Makefile; also, renamed Scheduling_Params.* to - Sched_Params.* and removed Thread_Priority.*: - - Major change in scheduling parameters interface: - The key change is that there is no longer a special thread priority - enum. Thread_Priority was changed to int, so applications can do - whatever they want. The ACE_Sched_Params class has some static - functions to help do this portably. - - Here are the changes from the ACE 4.1.3: - - 1) ACE_Thread_Priority: removed this class. - - It contained "priority class" and "thread priority". - "Priority class" is platform-specific and doesn't - need to be visible in ACE; it is subsumed by scheduling policy, - see below. "Thread priority" is replaced by the global - ACE_Sched_Priority typedef in ace/OS.h, see next change. - - 2) ace/OS.h: added ACE_Sched_Priority typedef (to int) - and ACE_SCOPE_THREAD. - - 3) ace/OS.h: added scheduling policy #defines: ACE_SCHED_OTHER, - ACE_SCHED_FIFO, and ACE_SCHED_RR. There's an ACE_Sched_Params:: - Policy typedef that can take one of these values. - - 4) ACE_Sched_Params: added priority_min (), priority_max (), - next_priority (), and previous_priority () functions. All - require an ACE_Sched_Params::Policy argument and take an - optional scope argument (to support the distinct thread - and process priorities on DEC UNIX). - - min_priority () and max_priority () have platform-specific - and policy-specific values, and direction (the min value may - be higher than the max value). The increment and decrement - operations allow applications to iterate over them, etc., - without explicitly specifying the direction of the priority - (0 for high or low priority). - - 5) The only way to apply ACE_Sched_Params is through - ACE_OS::sched_params (const ACE_Sched_Params &). - (This is not really a change, except for the name change from - ACE_OS::set_sched_params (). - - It sets both policy and priority of current thread or - process (depending on the scope in ACE_Sched_Params). - Not all combinations of policy, priority, and scope are - legal on all platforms. Unfortunately, I see no way around - this, because the intersection of legal ranges - on our supported platforms is empty. If an illegal request - is made, ACE_OS::sched_params () sets errno to EINVAL and - returns -1. - - 6) added ACE_OS::thr_setprio (const ACE_Sched_Priority prio) - to set the current thread's priority, only. - - Many thanks to Thilo Kielmann - for his careful review of this class design, thoughtful comments, - and assistance with implementation, especially for PTHREADS - platforms. - -Wed Mar 5 14:36:59 1997 Irfan Pyarali - - * SString.cpp: Fixed ACE*String initialization bugs. Thanks to - jmorey@tbi.com (John Morey) for reporting this. - -Wed Mar 5 14:33:04 1997 Douglas C. Schmidt - - * ace/OS.i: Fixed a bug in gethrtime - - const ACE_Time_Value now = ACE_OS::gettimeofday (void); - - which should be - - const ACE_Time_Value now = ACE_OS::gettimeofday (); - - Thanks to Chuck Gehr for reporting - this. - -Tue Mar 4 16:37:26 1997 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp (main): Make life - easier by doing an unlink(rendezvous) before reopening the - UNIX-domain socket. Thanks to Jeff Morgan - for suggesting this. - -Sun Mar 02 19:58:00 1997 David L. Levine - - * ace/config*.h: removed #define of ACE_HAS_INLINED_OSCALLS - because it's no longer needed in the config files: it's - #defined in OS.h if needed. - -Sun Mar 2 17:14:29 1997 Douglas C. Schmidt - - * include/makeinclude: Updated all the platform-*g++.GNU files so - that they no longer -D__ACE_INLINE__ (since this is handled in - the the config-*g++.h files). - - * ace: Updated all the config-*g++.h files so that they now - #define __ACE_INLINE__ rather than having this set in the - platform_*.GNU file. This makes ACE easier to build and - integrate with other software packages. - -Fri Feb 28 02:22:33 1997 Douglas C. Schmidt - - * ace/SOCK_*: There were problems starting UDP broadcast servers - (all using the same well known port number) multiple times on - one machine (this is very useful test distributed applications - on one single machine). Setting the SO_REUSEADDR option for the - broadcast socket allows binding of a socket that is already in - use and thus allows us to start more than one broadcast servers - in parallel on one machine. Thanks to Dieter Quehl - for this fix. - - Therefore, I patched ACE_SOCK_Dgram_Bcast, ACE_SOCK_Dgram and - ACE_SOCK to include this feature. In addition, I also changed - ACE_SOCK_Connector/ACE_SOCK_Acceptor to use this feature instead - of calling setsockopt() there explicitly. - - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (main): Fixed up the - use of ACE_OS::fork() here to use the new "named" version. - - * ace/OS.h: Added a clever new wrapper function called fork (const - char *program_name), which calls fork() and then automatically - calls ACE_LOG_MSG->sync (program_name) to sync up the program - name. This eliminates a common source of error when forking - children and using ACE_Log_Msg::log(). - - * examples/IPC_SAP/SOCK_SAP/FD-un{client,server}.cpp: Updated the - FD client and FD server programs so that it is now a concurrent - server. - - * ace/config-mvs.h: Added #define ACE_LACKS_TCP_H for MVS. Thanks - to Chuck Gehr for pointing this out. - - * ace/OS.h: Added a new #define ACE_LACKS_TCP_H that skips the - inclusion of the netinet/tcp.h file if it isn't on the platform. - - * ace/OS.i (thr_cancel): Changed the line - - ACE_UNUSED_ARG (t_id); - - to - - ACE_UNUSED_ARG (thr_id); - - Thanks to Chuck Gehr for reporting - this. - - * ace/SString.cpp: Fixed up all the ACE_[CSW]String code so that - always allocates a rep_ even in the null constructor. This - saves us from having to handle odd special cases later on... - Thanks to John Morey for reporting this. - - * ace/Service_Repository.cpp (close): Changed the order in which - services are destroyed when the Service Configurator is closed. - Currently, services are destroyed in the order in which they are - created according to the svc.conf file. Now, we shut them down - in reverse order. This makes more sense when services are - related, i.e., one service has to be started before another. - Thanks to Karlheinz for this suggestion. - -Fri Feb 28 12:13:09 1997 David L. Levine - - * ace/OS.h: fixed definition of ACE_TIMER_SKEW. Thanks - to Chuck Gehr for pointing this out. - -Thu Feb 27 21:36:28 1997 David L. Levine - - * ace/OS.{i,cpp} (gethrtime): support on all platforms by - using ACE_OS::gettimeofday () if there is no native high - resolution timer. Moved ACE_OS::getimeofday () definition - toward top of OS.i so that it is always defined before - being called. Finally, expanded gethrtime () support from - linux to __GNUC__ with ACE_HAS_PENTIUM; it should work on - platforms such as VxWorks with gcc on Pentiums. - - * ace/config-osf1-4.0-{,g++}.h: added ACE_HAS_CLOCK_GETTIME. - Thanks to Thilo Kielmann - for pointing this out. - -Thu Feb 27 17:06:12 1997 - - * ace/High_Res_Timer.h (get_env_global_scale_factor): This static - method will set the global_scale_factor to the value in an - environment variable (ACE_SCALE_FACTOR by default). - - * ace/High_Res_Timer.*: Changed all calculations to divide by - scale_factor before doing / and %. This must be done before the - mod for correctness. - - * ace/Profile_Timer.i (start): Changed start and stop methods to - call ACE_High_Res_Timer::gettimeofday. This should allow - greater timing accurracy. - - * ace/High_Res_Timer.h (global_scale_factor): Added a static - global_scale_factor that allows applications to set one scale - factor for all high res timers. This is important for platforms - like intel where the scale factor will vary based on the - processor clock speed. - - * ace/High_Res_Timer.i (gettimeofday): This static method calls - ACE_OS::gethrtime and converts to an ACE_Time_Value based on the - global_static_factor. - -Wed Feb 26 18:28:35 1997 Douglas C. Schmidt - - * ACE-install.sh: Added some fixes for the ACE-install.sh script. - Thanks to Eugene R. Somdahl for reporting these. - - * ace/Connector.cpp (handle_close): Added a test to see if the - reactor_ is NULL and if it is, don't bother trying to use it to - clean up. Thanks to Paul Han for this - suggestion. - -Tue Feb 25 21:19:57 1997 David L. Levine - - * ace/OS.h,config-sunos*.h: default ACE_TIMER_SKEW to 0, - and override to 10 ms in all Solaris config files. - - * ace/Svc_Conf_l.cpp,Makefile: #undef ACE_HAS_TERM_IOCTLS - so that /usr/include/sys/termios.h won't be included; it - #defines ECHO, and Svc_Conf_l.cpp has an ECHO symbol. - - * ace/ACE.cpp (sock_error): added ACE_UNUSED_ARG (error);. - - * ace/Timer_Queue.cpp (ctor): rearranged initializers to - match declaration order. - -Tue Feb 25 19:57:54 1997 - - * ace/Timer_Queue.cpp (gettimeofday): Added gettimeofday accessors - on the Timer_Queue. The default implementation calls - ACE_OS::gettimeofday. Applications can specify, via pointers to - functions, that a timer queue use an alternate gettimeofday - implementation (e.g., a high resolution timer). - - * ace/Reactor.cpp (schedule_timer): The Reactor no longer calls - ACE_OS::gettimeofday. Instead, it calls - Timer_Queue::gettimeofday. - - * ace/ReactorEx.cpp (schedule_timer): The ReactorEx no longer calls - ACE_OS::gettimeofday. Instead, it calls - Timer_Queue::gettimeofday. - -Tue Feb 25 17:40:57 1997 Douglas C. Schmidt - - * ace/Log_Msg.cpp: Updated the 'p' option of the log() method to - use the new ACE::sock_error() method for cases where - FormatMessage() fails. - - * ace/ACE: Added a new sock_error() method to class ACE which - returns the appropriate message for each WinSock error code. - This makes up for an apparent oversight in Win32. Thanks to - Michael R. MacFaden" for this. - -Tue Feb 25 01:33:06 1997 Douglas C. Schmidt - - * ace/OS.h: Moved outside of the VXWORKS #ifdef - since it seems to be available on other platforms (e.g., - Solaris). If people find this not to be the case on all - platforms please let me know and I'll #ifdef it. Thanks to - Sumedh Mungee for reporting this. - -Tue Feb 25 16:20:29 1997 Irfan Pyarali - - * examples/Connection/non_blocking/CPP-acceptor.cpp: Added a - specific checl for timeouts. Also, changed - ACE_PEER_ACCEPTOR_ADDR to ACE_PEER_STREAM_ADDR - - * examples/Connection/non_blocking/non-blocking.{mak,mdp}: New - project files for Win32. - - * ace/Log_Msg.cpp: Minor changes. - -Mon Feb 24 17:16:06 1997 Douglas C. Schmidt - - * ace/Log_Msg.cpp (ACE_Log_Msg): Enable the thread-specific - tracing flag by default. This ensures that tracing will work - "out of the box." - - * ace/config-sunos5.[45]-g++.h: Added a #define for - ACE_HAS_TERM_IOCTLS. Thanks to Joey Zhu for - reporting this. - - * ace/Synch.cpp (acquire): Simplified the recursive mutex logic - for acquire(). Thanks to Arthur J. Lewis" - for reporting this. - - * examples/Connection/non_blocking/CPP-acceptor.cpp (init): Added - a #ifdef for ACE_WIN32 so that we don't register the signal - handler for SIGPIPE since it's not supported on Win32. Thanks - to Ivan Murphy for reporting this - problem. - - * examples/Connection/non_blocking: The SPIPE examples in - (test_spipe_{acceptor,connector}.cpp) aren't ported to Win32 - yet. They currently don't work because ACE_SPIPE*'s can't be - registered with the ACE_Reactor (which only works with sockets). - I've #ifdef'd these examples so that they don't get compiled on - Win32. Thanks to Ivan Murphy for - reporting this problem. - -Mon Feb 24 20:28:10 1997 David L. Levine - - * ace/OS.h: use signed __int64 for ACE_hrtime_t because VC++ - won't convert unsigned __int64 to double. Thanks to Irfan - for reporting this. - - * include/makeinclude/platform_{irix5.3_g++,linux*,m88k, - osf1_4.0_g++,sco-nothread,sunos*g++,unixware_g++}.GNU: - changed C++ compiler (CXX) from gcc to g++ so that libg++ - will be linked in. Thanks to James CE Johnson - for suggesting this. - - * examples/IOStream/{client,server}/Makefile,tests/Makefile: - removed -lg++, when gcc is the compiler, because it's no - longer needed with g++ as the compiler. - -Sat Feb 22 23:03:45 1997 David L. Levine - - * ace/OS.i: restored version 4.89 and 4.90 changes that - were lost in version 4.91. - - * ace/OS.{i,cpp},config-linux*.h: added ACE_OS::gethrtime () - support for Linux on Pentiums. - - * ace/High_Res_Timer.*: changed scale_factor type from - u_long to double so that it can be less than 1. - - * ace/Thread_Priority.cpp: "linux" instead of "LINUX". - - * tests/Priority_Task_Test.cpp (open): set this->priority_ because - an assertion uses it. Also, use ACE_NORMAL_PRIORITY_CLASS so that - root doesn't have to run the test on Solaris. - -Sat Feb 22 22:07:35 1997 Chris Cleeland - - * tests/Priority_Task_Test.cpp (open): Now use - ACE_Thread_Priority while setting the priority of the new - thread. - - * ace/Thread_Priority.cpp (convert_to_os_priority): Changed - return type for this to 'int' from 'long' on Linux. Thanks - to James CE Johnson for pointing this - out! - - * ace/OS.i (thr_cancel): Corrected erroneous macro argument. - Thanks to James CE Johnson for pointing - this out! - -Sat Feb 22 17:00:59 1997 - - * ace/OS.i (gethrtime): Added support for intel's RDTSC - instruction for pentium architectures. - -Sat Feb 22 10:57:47 1997 Douglas C. Schmidt - - * ace/Stream.cpp (open): Make sure that if we allocate the Tasks - in the Stream head and the Stream tail that we set the M_DELETE - flag so that the close() method will clean up the memory. - Thanks to David Levine and Purify for noticing this problem. - -Fri Feb 21 08:06:41 1997 Douglas C. Schmidt - - * ace/OS.i: Yikes, it looks like the Solaris and the POSIX version - of sigwait() are different! The Solaris version returns the - signal number, whereas the POSIX version returns 0 on success, - errno on failure, and sets a parameter with the signal on - success. I've fixed the ACE_OS C++ wrapper so that the right - thing happens, i.e., errno is always set to the error (if - sigwait() returns -1) and the signum is always returned as the - argument and the return value on success ... Thanks to Harry - Gunnarsson for reporting this. - -Fri Feb 21 11:01:22 1997 David L. Levine - - * ace/Thread_Priority.cpp: fixed return type of - convert_to_os_priority () for Linux. Thanks to - James CE Johnson for pointing this out. - - * examples/Shared_Malloc/test_malloc.cpp, - examples/System_V_IPC/SV_Message_Queues/{T,}MQ_Server.cpp (main): - added ACE_UNUSED_ARG (sa);. - -Fri Feb 21 04:12:31 1997 - - * ace/OS.h: Added ACE_SEH_FINALLY. - - * ace/ReactorEx.h: Added ACE_ReactorEx_Test as a friend class. I - think we should have one such friend class for all classes in - ACE. - - * examples/Reactor/ReactorEx/test_exceptions.cpp: New test which - checks how ReactorEx deals with structured exceptions thrown by - user code - - * ace/ReactorEx.cpp (safe_dispatch): Added protection against - structured exceptions caused by user code when dispatching - handles - -Thu Feb 20 17:32:54 1997 Douglas C. Schmidt - - * apps/Gateway: Added a new -v flag to the peerd and gatewayd - applications so that they will print out the strings that are - passed to them. This makes it easier to debug and see what's - happening. - -Wed Feb 19 19:39:06 1997 Douglas C. Schmidt - - * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp (recv): Removed - the VERBOSE #ifdefs since they weren't used and were causing - compile errors. Thanks to Bert Craytor - for reporting this. - -Wed Feb 19 00:39:50 1997 Douglas C. Schmidt - - * examples/ASX/Event_Server: Updated the README file a bit to - clarify some loose ends. The documentation now explains - precisely how to start up the transceivers correctly. Thanks to - Patty Genuald for suggesting this. - - * include/makeinclude: Removed the default symlink for - platform_macros.GNU since it is "Solaris-biased" ;-). Thanks to - Amos Shapira for reporting this. - -Wed Feb 19 14:41:18 1997 Tim H. Harrison - - * ace/Reactor.cpp: Modified to use timer_queue_->gettimeofday(). - - * ace/Proactor.cpp: Modified to use timer_queue_->gettimeofday(). - - * ace/ReactorEx.cpp: Modified to use - timer_queue_->gettimeofday(). Also had to modify the - ReactorEx_Notify mechanism to use the ReactorEx's timer queue to - call gettimeofday. - - * ace/Timer_Queue.h: Added a gettimeofday method. This allows - applications to replace the timer mechanism used by the - Reactors. The default implementation returns - ACE_OS::gettimeofday. However, a real-time application can - inherit from Timer_Queue and override gettimeofday to return a - value from a high resolution timer. - - * STL/bool.h: Changed the defines for type bool. First, bool is no - longer defined for WIN32 since yvals.h typedefs it already. - Also, I moved the defines out the namespace. I'm not sure if - that's the right thing to do. - -Tue Feb 18 16:41:02 1997 Douglas C. Schmidt - - * include/makeinclude: Added minor enhancements to rules.local.GNU - and wrapper_macros.GNU so that it works with MVS. Thanks to - Chuck Gehr for this. - - * include/makeinclude: Added a new platform_mvs.GNU file that - supports builds on MVS! Thanks to Chuck Gehr - for this. - - * tests/TSS_Test.cpp (worker): To get TSS_Test.cpp to compile on - MVS we changed line 69 from: - - ACE_thread_key_t key = 0; - - to: - - ACE_thread_key_t key = ACE_OS::NULL_key; - - and line 122 from: - - key = 0; - - to: - - key = ACE_OS::NULL_key; - - Thanks to Chuck Gehr for reporting - this. - - * ace/Reactor.cpp (dispatch): Fixed the dispatching logic so that - we bail out as soon as we discover that our state has changed. - Thus, we'll recompute the fd_sets used for select(). - -Tue Feb 18 19:02:53 1997 - - * ace/ReactorEx: - - (a) Made wakeup_all_threads() public. Thanks to Hamutal Yanay - for suggesting this. - - (b) Change closed_for_business_ to open_for_business_. Also made - sure that open and close can potentially be called multiple - times from multiple threads. - - (c) Changed unbind and unbind_all such that they iterate through - all the handles. - - (d) Added a check to see if the handle has been scheduled for - deletion before dispatching it. - -Tue Feb 18 21:24:57 1997 David L. Levine - - * ace/IOStream.h,README: replaced ACE_WIN32 conditional with - ACE_LACKS_IOSTREAM_FX. - - * ace/config-{mvs,win*}.h: added #define ACE_LACKS_IOSTREAM_FX. - Thanks to Chuck Gehr for pointing - out the need for this support for MVS. - - * examples/Reactor/Misc/test_demuxing.cpp: removed unused - variable "done". - - * examples/Reactor/Misc/test_signals_1.cpp (main), - examples/Reactor/Ntalker/ntalker.cpp (main): - added ACE_UNUSED_ARG (sig);. - -Tue Feb 18 17:15:24 1997 Tim H. Harrison - - * ace/ace.mdp, ace/mak: Modified release configuration to build - acer.dll. - -Tue Feb 18 11:43:04 1997 David L. Levine - - * ace/Log_Msg.cpp: removed destructor because it's not declared - and it's empty. - - * ace/OS.i (thr_setprio): added another case (that is NOTSUP) - for platforms with Pthreads and with LACK_SETSCHED. Thanks to - Chuck Gehr for pointing this out. - - * tests/Reactor_Notify_Test.cpp (main): added shutdown flag so - that normal termination reaches ACE_END_TEST. - - * tests/Reactors_Test.cpp (worker): changed "timeout" message to - "Reactor shutdown" because that indicates normal termination, - and won't fool the one-button test. - - * examples/Mem_Map/IO-tests/test_io.cpp (main): added - ACE_UNUSED_ARG (sa);. - - * examples/Misc/test_trace.cpp (main): added ACE_UNUSED_ARG - for sig1 and sig2. - -Tue Feb 18 03:50:10 1997 Irfan Pyarali - - * ace/ReactorEx: - - (a) Added a closed_for_business_ flag so that handle_events() - cannot be called after the ReactorEx has been closed down. - - (b) Transfer of ownership of the ReactorEx to a new owner has - changed. The transfer will not complete until all threads - are ready for it (just like the handle set). - ReactorEx->update_state() now looks out for changes in - ownership. - - * examples/Reactor/ReactorEx/test_MT.cpp: - - (a) The test now terminates and number of iterations can be - specified on the command line. - - (b) Graceful shutdown of ReactorEx is now exercised in the - test. This is a change for the earlier infinite loop. This - also shows how to gracefully close ReactorEx which is being - shared by multiple threads. - - (c) Timers were added to the test. - - * ace/config{win32}: Added flag ACE_LACKS_LINEBUFFERED_STREAMBUF. - -Mon Feb 17 22:37:35 1997 Tim H. Harrison - - * ace/Log_Msg.h (ACE_RETURN): Modified all ACE_RETURN macros to - use ACE_OS::last_error instead of errno. This makes these more - portable to Win32. - - * ace/Log_Msg.cpp (log): Modified Win32 version to use - FormatMessage if errnum is greater than sys_nerr. - - * ace/OS.i (last_error): Modified Win32 version to return - GetLastError if errno == 0. - -Mon Feb 17 18:32:29 1997 Douglas C. Schmidt - - * ace/OS.h: Protected the #ifdef for CLOCK_REALTIME so that it - won't conflict with an existing macro in AIX. Thanks to Chris - Lahey for this. - - * ace/Local_Name_Space_T.h: Added Local_Name_Space.h to - Local_Name_Space_T.h so that templates will work correctly on - AIX. Thanks to Chris Lahey for this. - - * tests: Added a new test, Reactor_Notify_Test.cpp, which tests - out the new max_notify_iterations() method on the Reactor. - - * ace/Reactor: Finished rewriting and testing the new dispatching - logic of the Reactor. The new implementation guards against - pathological cases where ACE_Event_Handler::handle_*() methods - remove registered ACE_Event_Handler objects whose handles are - pending in the dispatch_set. Previously there was no good way - to guard against this. Now, it should be handled automatically. - - * ace: Added many minor fixes to remove warnings with the SGI C++ - compiler. Thanks to Gonzalo Diethelm for - suggesting this. - - * include/makeinclude/platform_irix6.2_sgic++.GNU: Turned on all - the warnings for the SGI C++ compiler. Thanks to Gonzalo - Diethelm for suggesting this. - -Mon Feb 17 20:59:47 1997 David L. Levine - - * ace/IOStream.h: added null ipfx (), etc., methods for ACE_WIN32 - because its iostream class doesn't have them. - - * ace/OS.h: added #include of on VxWorks. - - * ace/Pipe.cpp (open): enabled TCP_NODELAY on VxWorks now that - OS.h #includes . - - * ace/ReactorEx.h: made ACE_ReactorEx_Handler_Repository destructor - virtual because the class has other virtual functions. - - * tests/IOStream_Test.cpp: removed ACE_WIN32 #ifndef, and - removed q_char bool conversion operator because it shouldn't - be needed. - - * examples/Reactor/Misc/pingpong.cpp (handle_input): cast buf_len - to ssize_t to avoid signed/unsigned comparison. - - * examples/Service_Configurator/IPC-tests/client/\ - remote_dgram_client_test.cpp (main): cast mmap.size () to - ssize_t to avoid signed/unsigned comparison. - -Mon Feb 17 09:25:08 1997 Chris Cleeland - - * ace/config-linux-lxpthreads.h: Bumped the Linux kernel version - number assigned to the symbol LINUX. Also added conditional - defines for PTHREAD_{MAX,MIN}_PRIORITY when using Xavier Leroy's - LinuxThreads. - - * ace/Thread_Priority.cpp: Added convert_to_os_priority() for Linux. - -Mon Feb 17 03:15:48 1997 Irfan Pyarali - - * tests/SOCK_Test.cpp (server): Changed recv_n() to recv(). - - * tests/tests.{mak,mdp}: Added two new tests: IOStream and - Reactor_Notify. - - * ace/Reactor: Removed all special checks for setting - ACE_Reactor::max_notify_iterations_ on WIN32 to be 1. This was - made possible after we figured out that the errno was being - reset after the recv() call in handle_input(). This allows - ACE_Reactor_Notify::handle_input() to serve upto - ACE_Reactor::max_notify_iterations_ notifications in one shot - rather than just 1 on WIN32. This should speed up the Reactor on - WIN32 platforms. - -Sun Feb 16 12:23:23 1997 Douglas C. Schmidt - - * ace/Reactor.cpp: Totally rewrote the ACE_Reactor's dispatching - mechanism so that it now keeps track of whether the state of the - wait_set_ has changed during a dispatch (i.e., whenever - register_handler_i() or remove_handler_i() is called). If the - wait_set_ state *has* changed, then we bail out and rerun - select() in order to get the latest changes. - - * ace/Reactor.cpp: Changed the implementation of the - ACE_Reactor_Notify class so that (1) it short-circuits a trip - through the ACE_Reactor::notify_handle() method (after all, it's - just going to call its own handle_input() method back) and (2) - the ACE_Reactor_Notify::handle_input() method now returns a - count of the number of handlers that it dispatched. - - * ace/Log_Msg.h: Added a (%P|%t) so that we now print out the - process id and thread number for failed ACE_ASSERT() calls. - - * tests: Removed the unnecessary template specializations of - ACE_Atomic_Op since this is already done - in libACE. - - * ace/Reactor.cpp: Removed the #ifdef preventing the enabling of - non-blocking mode for the recv() side of the Reactor's - notification pipe (socket) for Win32. I believe that with the - new max_notify_iterations scheme we should be all set. - - * ace/ReactorEx.cpp: Added an identical API for bounding the - max_notify_iterations() for ReactorEx. - - * ace/Reactor.cpp: Enhanced the Reactor's notify() mechanism so - that it is now possible to set the max_notify_iterations(), - which limits the number of times that the - ACE_Reactor_Notify::handle_input() method will iterate and - dispatch the ACE_Event_Handlers that are passed in via the - notify pipe before breaking out of its recv() loop. This is - necessary to keep from starving out other Event_Handlers. - Thanks to Rod Skinner for pointing out the - need for this. - - * ace/Reactor.cpp: Fixed a bug in the WIN32 - ACE_Reactor_Notify::handle_input() logic. We were calling - requeue_position(0) when we should have been calling renew(). - -Sat Feb 15 11:46:39 1997 Douglas C. Schmidt - - * ace/ACE.cpp: It appears that VxWorks doesn't support fcntl(). - However, it does seem to support ioctl(). Therefore, that's how - we'll set the descriptors into non-blocking mode. Thanks to - Dave Mayerhoefer for reporting this. - - * ace/SOCK_Stream.h: Corrected the documentation for - ACE_SOCK_Stream::recv_n (void *buf, size_t len, int flags, const - ACE_Time_Value *timeout). Thanks to Paul Roman - for reporting this. - - * ace/SOCK_Stream.i (recv_n): Fixed a minor bug in the - SOCK_Stream.i line 38: - - ACE_TRACE ("ACE_SOCK_Stream::send_n"); - - should be - - ACE_TRACE ("ACE_SOCK_Stream::recv_n"); - - Thanks to Paul Roman for reporting this. - -Fri Feb 14 00:40:14 1997 Douglas C. Schmidt - - * ace/TTY_IO.cpp (control): Moved the drop out timer value from - the ACE struct to the WinNT struct. Thanks to Brad Flood - for this fix. - -Thu Feb 13 21:24:17 1997 - - * ace/OS.i (event_wait): Fixed the missing check for success. - - * ace/Synch: Fixed problems with multiple removal of - resources. Thanks to Bert (Bcraytor@aol.com) for pointing this - out. - - * examples/Threads/test.{mdp,mak}: Reorganized project so that it - is easier to use. - - * examples/Threads: Small changes to make tests run faster. - -Thu Feb 13 01:49:38 1997 Irfan Pyarali - - * ace/OS.i (stat): Added stat() to ACE_OS. - - * apps/jaws: The ACE web server has now been ported to Win32. - - * ace/ReactorEx: Add a new version of remove_handler(). - - * examples/Reactor/ReactorEx/test_MT.cpp: Fixed stuff so that only - are activated. - -Wed Feb 12 22:58:15 1997 Douglas C. Schmidt - - * ace/ReactorEx: Made minor changes to the ReactorEx. - - * examples/Reactor/ReactorEx/test_MT.cpp: Updated Irfan's new - ReactorEx test to use ACE_Tasks. - -Wed Feb 12 00:08:42 1997 Irfan Pyarali - - * ace/ReactorEx: Finished a complete rewrite of - ReactorEx. The new version allows multiple threads of - control to wait simultaneously in - ::WaitForMultipleObjects(). This was difficult because the - set of ACE_HANDLEs used in ReactorEx->handle_events() is - shared between all threads. We devised a clever protocol - that ensures all changes to the handle set are - serialized. This serialization was achieved by using - multiple (auto and manual) events and mutexes and by taking - advantage of the "waitAll" semantics of - WaitForMultipleObjects(). - - Concept of "owner" thread is introduced in ReactorEx. We - need to keep track of the "owner" because we don't want - multiple threads to try to expire timers. Therefore the - "owner" thread is the only one allowed to expire - timers. Also, the owner thread is the only thread which - waits on the internal notify handle (which is used to - dispatch explicit calls to - ACE_ReactorEx::notify(). Initially, the creator thread of - ReactorEx becomes the "owner" thread. Ownership can later be - transferred among threads, just as with the standard - ACE_Reactor. - - We also updated the Handler Repository since it now - keeps track of tuples to be added - and deleted from the current handle set at the appropriate - time (i.e., when all threads are out of - WaitForMultipleObjects() and have completed all necessary - dispatching). The Handler_Repository implements the update - protocol that is used to serialize changes to its internal - state. - - Two slots were added to the parameter in the - constructor and open methods of ReactorEx that will store - handles used for internal management. Therefore, users can add - upto MAXIMUM_WAIT_OBJECTS - 2 handles into ReactorEx. On - current WinNT platforms (e.g., 3.51 and 4.0) - MAXIMUM_WAIT_OBJECTS is 64. - - Note that the interface to ReactorEx did not change in this - process. Your existing code should work without changes. - Moreover, we've optimized the implementation so that if only - 1 thread calls ACE_ReactorEx::handle_events() the code is - very efficient. Moreover, you can dynamically add or remove - threads without having to register them with the ReactorEx. - - * examples/Reactor/ReactorEx/test_MT.cpp: This application tests - multiple threads simultaneously calling - ReactorEx->handle_events(). It also shows how different threads - can update the state of ReactorEx. - -Wed Feb 12 00:08:42 1997 Douglas C. Schmidt - - * ace/Synch: Added a remove() call to ~ACE_Thread_Mutex so that it - will be removed (and resources cleaned up) automatically when an - ACE_Thread_Mutex object goes out of scope. Thanks to Jay - Denkberg for reporting this. - - * ace: Added a new config file (config-irix6.2-sgic++-nothreads.h) - that works for non-Pthread versions of SGI 6.2. Thanks to Fred - LaBar for this. - - * ace/XtReactor: Fixed a bunch of minor bugs that crept into the - ACE_XtReactor. Thanks to Fred LaBar - for reporting this. - - * ace/OS.i (thr_getprio): Fixed a typo in the #ifdefs so that we - return ACE_NOTSUP_RETURN(-1) if threading isn't enabled. Thanks - to Fred LaBar for reporting this. - -Tue Feb 11 11:26:03 1997 David L. Levine - - * ace/OS.{h,i},config-vxworks*.h,README: added ACE_HAS_CLOCK_GETTIME, - and only support ACE_OS::clock_gettime if that's defined. - It can be supported on Solaris 2.5, but -lposix4 is then required. - - * ace/Thread_Priority.*: added increment () and decrement () - operations. - - * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: - added -pta back to avoid link problems with template classes - that have virtual functions that are all inline, if inlining - is disabled. Though we don't see the problem, other 4.1 users do. - Thanks to mscallinan@CCGATE.HAC.COM for reporting this. - - * examples/Logger/simple-server/Logging_Handler.cpp (handle_input): - cast "len" to ssize_t to prevent mixed signed/unsigned comparison. - - * examples/Logger/simple-server/server_loggerd.cpp (main): - added ACE_UNUSED_ARG (sa);. - - * examples/Reactor/Misc/notification.cpp (Thread_Handler ctor): - changed type of n_threads argument from int to size_t to avoid - signed/unsigned comparison. - -Mon Feb 10 15:27:02 1997 Douglas C. Schmidt - - * ace/Timer_Queue: Added a virtual destructor so that subclasses - deleted via ACE_Timer_Queue *'s will call the right destructor. - Thanks to Stuart Powell for reporting - this. - - * ace/Timer_Heap.cpp: Added support for automatically growing - ACE_Timer_Heaps. This allows heaps to grow automatically as new - ACE_Event_Handlers are added dynamically. Thanks to Stuart - Powell for this enhancement. - - * ace/Memory_Pool: Added support that allows flags to be passed in - to the MMAP_Memory_Pool. This can be used to set the - appropriate type of backing store semantics (e.g., MAP_PRIVATE - and MAP_SHARED). Thanks to Fred LaBar - for providing this. - -Sun Feb 9 11:56:37 1997 Douglas C. Schmidt - - * ace/Map_Manager.cpp (bind_i): A recent change to Map_Manager - broke the Connector since errno was getting set to ENOENT rather - than EWOULDBLOCK. Thanks to Mark Rabotnikov - for finding this. - -Sun Feb 09 21:44:34 1997 David L. Levine - - * ace/ACE.{h,cpp}: added static u_long is_prime (). - - * ace/{OS.cpp,Thread_Priority.cpp}: added comment about thread - priorities only being tested for 1003.1C version of Pthreads. - Thanks to Thilo Kielmann - for suggesting this. - - * ace/OS.{h,i}: added ACE_OS::clock_gettime (). It allows - applications to get high-resolution time on POSIX systems. - - * ace/Future.cpp (dump): cast ref_count_ to an int because - g++ doesn't figure it out (it's an ACE_Atomic_Op, which does have an int conversion operator). - - * ace/Timer_List.cpp (constructor): added initializer for - timer_id_ to prevent unitialized memory read report from Purify. - - * tests/IOStream_Test.cpp,Makefile: added IOStream_Test, - complements of James CE Johnson . Very cool! - - * tests/Future_Test.cpp: replaced call to ::sin () - with one to ACE::is_prime () to remove dependency on libm. - - * examples/IPC_SAP/UPIPE_SAP/ex1.cpp (peer1, peer2): removed - unused variables c_addr and serv_addr: they were replaced by - a global. - - * examples/Threads/future{1,2}.cpp: replaced call to ::sin () - with one to ACE::is_prime () to remove dependency on libm. - - * netsvcs/clients/Naming/Dump_Restore/createfile.cpp: removed - #include of math.h, it wasn't needed. - -Sat Feb 08 15:19:50 1997 David L. Levine - - * ace/ReactorEx.h: commented out ACE_ReactorEx_Notify::message_queue_ - declaration if not ACE_WIN32 because Sun C++ chokes on it. - - * examples/IPC_SAP/{FILE,SPIPE}_SAP/client.cpp: declare "len" as - ssize_t to avoid signed/unsigned comparison. - -Fri Feb 7 01:13:05 1997 Douglas C. Schmidt - - * ace/OS.i (select): Simplified Chris' fixes for the weird - Linux select() semantics. - - * ace/OS: Added a new accessor method called waiters() in - ACE_cond_t that returns the number of waiters on the condition - variable. Thanks to Karlheinz for suggesting this. - - * ace/OS: Changed all the ACE_cont_t, ACE_rwlock_t, etc. so that - their fields are private, but made class ACE_OS a friend. - Applications should not be mucking with these fields since they - may change. - - * ace/OS.h: Fixed a minor typo where friend class ACE_rwlock_t - should be friend class ACE_OS. Thanks to Thilo Kielmann - for reporting this. - - * ace/Log_Msg.cpp: Added a destructor to ACE_Log_Msg and changed - ACE_TSS_cleanup so that it calls delete (ACE_Log_Msg *) ptr. - Thanks to Per Anderson for - reporting this. - - * tests/Map_Manager_Test.cpp: Create a file Map_Manager_Test_Key.h - and move the class Key into the include file. Include this *.h - file in Map_Manager_Test.cpp. This is needed for template - generation on AIX. Thanks to Chris Lahey for - pointing this out. - -Fri Feb 7 17:29:40 1997 Chris Cleeland - - * ace/OS.cpp (set_sched_params): added support for POSIX - threads. Thanks to Thilo Kielmann - for figuring it out and - for providing the code. - - * tests/Naming_Test.cpp (test_find): Changed final delete[] to - not try to delete a static buffer. :-( - - * tests/SOCK_Test.cpp (server): Added assertion test for - modified select timeval. - -Fri Feb 07 13:56:24 1997 David L. Levine - - * ace/{OS.cpp,Thread_Priority.cpp}: added ACE_Thread_Priority - support for Digital Unix. Thanks to Thilo Kielmann - for figuring the priorities - and priority classes out and for providing the code. - - * ace/High_Res_Timer.{h,cpp},config-linux*.h,README: - use struct timespec instead of timespec_t, because not all - platforms have the timespec_t typedef. Thanks to - Marius Kjeldahl for reporting this on Linux - and Chris Lahey for reporting it on AIX. - - * ace/IOStream.h: use "ssize_t send (...)", etc., instead of exact - function prototypes. - - * examples/IPC_SAP/TLI_SAP/db-server.cpp: declare struct member as - const char * instead of const char [] because it's not static and - the struct doesn't have constructors. - - * examples/Reactor/Multicast/server.cpp (Server_Events ctor): - reordered initializers to match declaration order. - -Fri Feb 07 05:08:51 1997 - - * ace/Synch.cpp (dump): Fixed access error. - - * ace/OS.h: Fixed ACE_rwlock_t friend declaration. - - * ace/OS.i: Moved ACE_cond_t::waiters() such that it is now - visiable to NT. Also fixed ACE_OS::cond_timed_wait by returning - the correct return value on a TIMEOUT. Also fixed typo in - ACE_OS::sema_wait. - -Thu Feb 6 20:25:13 1997 Chris Cleeland - - * ace/OS.i (select): Adapted ACE_OS::select methods for use on - platforms (such as Linux) that allow select(2) to modify its - struct timeval arg. New behavior is triggered by the define - ACE_HAS_NONCONST_SELECT_TIMEVAL. Thanks to Jorn Jensen - for reporting this! - -Thu Feb 06 09:48:43 1997 David L. Levine - - * ace/config-sunos-sun*.h,README: added - ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR. - - * ace/IOStream.{h,cpp}: support - ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR - so that this builds with SunC++. - - * examples/IOStream/client/iostream_client.cpp: - reordered args and fixed argv indexes. - - * examples/IOStream/server/iostream_server.cpp: - use ACE_DEFAULT_SERVER_PORT for default port. - - * tests/Naming_Test.cpp (randomize): changed type of "size" arg to - size_t to avoid compiler warnings about signed/unsigned comparison. - -Thu Feb 06 09:40:47 1997 Chris Cleeland - - * ace/config-linux*.h: added typedef of timespec_t. - -Wed Feb 5 01:45:03 1997 Douglas C. Schmidt - - * ace/OS.i: Changed the Win32 implementation of all methods that call - WaitForMultipleObjects() so that errno is set to - WAIT_ABANDONED if the mutex is abandoned. This makes it - possible for users to understand why ACE_OS methods that use - synchronization operations fail. Thanks to Ivan Murphy - for reporting this problem. - - * ace/IOStream.cpp (ACE_Streambuf): Moved the const initialization - from the header file to the constructor since this is the only - portable way to do this. Thanks to Michael Maxie - for reporting this. - - * ace/OS.i: Updated the call to thr_setprio() for pthreads so that - it first determines the existing scheduling parameters and then - updates the priority. Thanks to Thilo Kielmann - for help with this. - - * ace/config-osf1-4.0*.h: Updated ACE_NEEDS_HUGE_THREAD_STACKSIZE - to be 1 mega to minimize porting surprises. Thanks to Thilo - Kielmann for help with this. - - * tests/Naming_Test.cpp: Cleaned up a few minor things related to - int i = 0 vs. size_t i = 0. - - * ace/SOCK_Dgram.cpp: Added a new macro called - ACE_HAS_SOCKADDR_MSG_NAME, which is used on platforms (e.g., - DG/UX) that require a cast to (struct sockaddr *) for the - msg_name field of struct msghdr. - -Wed Feb 05 10:45:41 1997 David L. Levine - - * ace/IOStream.h: replaced __*manip with expanded types, because - Sun C++ doesn't have those typedefs; and added complete prototypes - for send, recv, send_n, and recv_n. - - * ace/IOStream.cpp: fixed "#define ACE_IOSTREAM_C" to keep g++ sane. - - * ace/Hash_Map_Manager.{h,cpp},Map_Manager.{h,cpp}: replaced - DEFAULT_SIZE with ACE_DEFAULT_MAP_SIZE so that Naming_Test runs - on SunC++ 4.1. - - * ace/High_Res_Timer.*: added optional scale factor. - - * examples/IOStream/{client,server}/Makefile: addd -g++ if building - with gcc. - - * tests/Naming_Test.cpp: moved declaration of "i" out of for loop - because it is used after the loop. - - * examples/ASX/UPIPE_Event_server/{Consumer,Supplier}_Router.cpp - (open): return 1 if init () succeeds. There's a commented-out - call to activate the objects that would (should?) return a value. - - * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp (main): declare n - as ssize_t instead of size_t to avoid compiler warning about - signed/unsigned comparison. - -Tue Feb 4 19:06:52 1997 Douglas C. Schmidt - - * ace/Signal.cpp: Fixed all the ACE_Sig_Handler[s] methods so that - they now use ACE_Guard, rather than ACE_TSS_Guard, *unless* they - are actually performing callbacks to user-code. Not only is - this faster, but it also avoids thread-specific storage key - leaks on platforms like Solaris! - - * ace/OS.cpp (thr_keyfree): Added a new #ifdef for - ACE_HAS_THR_KEYDELETE, which is defined for UNIXWARE. This - fixes a nasty problem with leaking thread-specific keys. Thanks - to Nigel Owen for reporting this. - - * ace/Message_Block.cpp: Added a #include for - "ace/Service_Config.h". - - * ace/Malloc.i: Fixed a few warnings by removing the names of - unused parameters. - - * ace: Added many minor changes to ACE so that it will work on - DG/UX. Thanks to Michael Maxie for all these. - - * ace/LSOCK_Stream.cpp: Applied the same fix as to LSOCK.cpp. - - * ace/LSOCK.cpp: Removed the cast of 0 to (char *) for msg_name - since some platforms use (struct sockaddr *). By omitting the - cast the compiler will figure it out correctly. Thanks to - Michael Maxie for this. - - * ace/IOStream: Added a new template adapter for creating an - iostream-like object using an ACE IPC Stream for the actual I/O. - Thanks to James CE Johnson for this. - - * examples/Misc/test_iostreams.cpp: Added a test that illustrates - how the new ACE_iostreams mechanism works. Thanks to James CE - Johnson for this. - - * ace/Message_Block: Updated the ACE_Message_Block implementation - to use ACE_Service_Config::alloc() if the user doesn't supply a - customize version. This also means that we never delete the - allocator_strategy_, so we can remove this flag and reduce the - amount of storage by 4 bytes. Thanks to Irfan for noticing that - we can do this. - - * ace/platform_dgux4_epc.h: Added a new platform config file - for DG/UX. Thanks to Michael Maxie for - this. - - * ace/config-dgux-4.11-epc.h: Added a new config file for DG/UX. - Thanks to Michael Maxie for this. - -Tue Feb 04 18:26:01 1997 - - * ace/Service_Config.cpp (alloc): The implementation now creates a - ACE_New_Allocator rather than a ACE_Allocator_Adaptor. If - you still want the old behavior, simply provide your own - custom allocator singleton for ACE_Service_Config. - - * ace/OS.i (mktemp): Added the missing ACE_INLINE directive. - - * ace/OS.h: ACE_HAS_INLINED_OSCALLS is now automatically defined - when __ACE_INLINE__ is defined. This avoids mysterious linking - problems that occur otherwise. - - * ace/Malloc: Added a virtual destructor to ACE_Allocator. Also - added a new class ACE_New_Allocator which is a sub-class of - ACE_Allocator. This class uses the new/delete operators to - allocate and free up memory. Please note that the only methods - that are supported are malloc() and free(). All other - methods are no-ops. If you require more functionality, please use: - ACE_Allocator_Adapter > This will allow you to use the added functionality of - bind/find/etc. while using the new/delete operators. - -Mon Feb 3 15:35:24 1997 Douglas C. Schmidt - - * ace/config-aix-*.h: Added a (char *) cast to - ACE_DEFAULT_BASE_ADDR. Thanks to John Cosby - for reporting this. - - * ace/OS.cpp: Added a new set() method that sets the Time_Value - from a double. Thanks to Brad Flood for this suggestion. - - * ace/OS: Changed ACE_OS::flock_t to ACE_OS::ace_flock_t to avoid - a name clash on DG/UX. Thanks to Michael Maxie - for reporting this. - -Tue Feb 4 03:02:52 1997 Irfan Pyarali - - * tests/Naming_Test.cpp: Added timing and made debug print outs - optional. Also added randomization of the test data. - - * ace/OS.h: Fixed prototype for gethrtime () - -Mon Feb 03 21:00:56 1997 David L. Levine - - * ace/OS.h: define ACE_SCOPE_PROCESS and ACE_SCOPE_THREAD - even if ACE_HAS_THREADS is not defined. Thanks to - Michael Maxie for pointing this out. - - * examples/Threads/{process_mutex.cpp,process_semaphore.cpp, - task_three.cpp,thread_manager.cpp,thread_specific.cpp} (main): - added ACE_UNUSED_ARG (sa);. - - * examples/Threads/reader_writer.cpp: fixed declaration of - "shared_data" to be "static volatile" instead of "volatile - static", and removed unused variable "n". - - * examples/Threads/thread_pool.cpp: removed unused variable "result". - -Sun Feb 02 21:24:02 1997 David L. Levine - - * ace/OS.h: changed hrtime_t to ACE_hrtime_t. - - * ace/{config-win*.h,README}: added #define ACE_HAS_PENTIUM to - enable gethrtime () support. - - * ace/High_Res_Time.{h,i,cpp}: removed platform-specific #ifdef's, - instead added "unsupported ()" static member function; changed - changed signature of elapsed_time to take time reference as - argument instead of return value; added elapsed_time - (ACE_Time_Value &) and elapsed_time_incr (ACE_Time_Value &). - - * examples/Thread/context_switch.cpp: use ACE_High_Res_Timer - instead of the old Timer adapter. - - * ace/config-aix-4.1.x.h: fixed typo: #defind ACE_HAS_LONGLONG_T. - - * ace/config-aix-4.2.x.h: added #define ACE_HAS_LONGLONG_T. - - * ace/Thread_Priority.{h,cpp}: moved #include of OS.h from .cpp - to .h file. - -Sun Feb 02 10:30:29 1997 David L. Levine - - * ace/Local_Name_Space.cpp: removed ACE_Map_Manager, ACE_Map_Iterator, - and ACE_Map_Entry: they don't appear to be used and, without - including their headers, this file won't compile. - - * ace/Hash_Map_Manager.cpp (Hash_Map_Manager (ACE_Allocator *)): - reordered initializers to match declaration order. - -Sat Feb 1 15:11:28 1997 Douglas C. Schmidt - - * include/makeinclude/platform_aix4.2.GNU (LD): Removed the -qnoro - flag since it is no longer needed. Thanks to Rob Jordan - for reporting this. - -Sat Feb 1 03:25:21 1997 Irfan Pyarali - - * ace/SString.cpp: Added two methods to the wide string - implementation for high-performance. Even though these methods - are somewhat ugly and not the "OO" way of doing things, - performance was at stake here. - - * ace/Registry_Name_Space.cpp (resolve): Fixed the implementation - by correctly figuring out the size of the value in the - Registry. This allows us to dynamically allocated the correct - amount of memory. - - * ace/Registry: Fixed the constant MAX_CONTEXT_NAME_SIZE to be the - maximum path length. - - * ace/Naming_Context.cpp: Fixed various memory leaks. - - * ace/Local_Name_Space_T.h: Replaced the simple-minded Map_Manager - with the new (improved) Hash_Map_Manager. - - * ace/Local_Name_Space.cpp: Added new methods operator!= and hash - required by the map. - - * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Manager): Added an extra - constructor. - - * tests/Naming_Test.cpp: Removed memory leaks. - -Fri Jan 31 19:39:48 1997 David L. Levine - - * ace/Hash_Map_Manager.cpp (ctor): reordered initializers - to match declaration order. - - * tests/Time_Value_Test.cpp: cast double argument to long - because there no longer is a constructor that takes a double. - - * ace/Hash_Map_Manager.{h,cpp}: removed #include of - ace/Hash_Map_Manager.i because it doesn't exist. - Protected .cpp file against multiple includes. Moved - #include of "ace/Malloc.h" from .h to .cpp file. - - * ace/Map_Manager.cpp (current_size, total_size): cast -1 to - size_t to avoid warning about signed-to-unsigned conversion. - - * ace/OS.h: moved hrtime_t typedef for ACE_WIN32 so it doesn't - get defined twice. - - * ace/OS.i (getservbyname): one last ACE_HAS_NONCONST_GETBY change: - missed "lproto" to "proto". - - * bin/create_ace_build: added checks for existing symlinks, so - now the script can be re-run safely at any time on a build - tree to update it. - -Fri Jan 31 02:16:30 1997 Douglas C. Schmidt - - * ace/config-aix-*.h: Made the default value for - ACE_DEFAULT_BASE_ADDR 0x80000000 to work around restrictions - with AIX. Thanks to Rob Jordan for - this. - - * examples/Map_Manager: Added a new example of the - Hash_Map_Manager. - - * tests/Map_Manager: Integrated the Hash_Map_Manager into the - Map_Manager test and greatly improved the test (e.g., by adding - timing). - - * ace: Added a new implementation of the Map_Manager called - Hash_Map_Manager. This, of course, uses hashing rather than - linear search. The result should be a much faster - implementation for many types of applications. - -Thu Jan 30 13:55:08 1997 Douglas C. Schmidt - - * ace/Map_Manager: Changed the return type of total_size() and - current_size() to size_t. - - * ace/OS: Had to remove the ACE_Time_Value (double) constructor - since it caused ambiguities with ACE_Time_Value (long). Thanks - to Per Andersson for figuring this out. - - * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Added - -D_REENTRANT to make things work correctly in MT programs. - Thanks to Marius for this fix. - - * ace/OS.h: Added several extra constructors for ACE_Time_Value so - that it won't cause problems with the new ACE_Time_Value - (double) constructor. - - * ace/Log_Record.cpp (ACE_Log_Record): Added an "L" to the 0 - initial value used for time_stamp_. Thanks to Marius for - reporting this. - - * ace: Added the new config-aix-4.2.x.h file, which supports the - AIX4.2 platform. Thanks to Rob Jordan - for this. - - * include/makeinclude/platform_aix4.2.GNU: Added support for the - new AIX4.2 platform. Thanks to Rob Jordan - for this. - - * ace/OS.h: It's now possible to override ACE_DEFAULT_BASE_ADDR in - a config.h file. This is important for platforms that need to - put shared memory segments at particular address ranges. Thanks - to Rob Jordan for suggesting this. - -Thu Jan 30 16:01:37 1997 David L. Levine - - * ace/{config-aix-4.1.x.h,README}: added ACE_HAS_AIX_HIRES_TIMER, - see change to gettimeofday in OS.i below; and ACE_HAS_LONGLONG_T. - - * ace/OS.i (gettimeofday, gethrtime): use read_real_time () if - ACE_HAS_AIX_HIRES_TIMER. Thanks to Bob Olson - for this suggestion. - - * ace/OS.h: define hrtime_t as long long if ACE_HAS_AIX_HIRES_TIMER. - - * ace/OS.{i,cpp}: uninlined ACE_OS::gethostbyname (), - and ACE_OS::inet_ntoa () on VxWorks, because they have - static char arrays. - - * ace/OS.i (gethostbyaddr, getservbyname, gethostbyaddr, - gethostbyname, getservbyname_r): with ACE_HAS_NONCONST_GETBY, - instead of copying the const argument, just cast it to (char *). - Thanks to Michael Maxie for pointing out the - problem with the nonstatic char arrays with sizes determined at - runtime. - - * ace/High_Res_Timer.*: added ACE_HAS_AIX_HIRES_TIMER support. - Also, renamed get_time () to elapsed_microseconds (). - - * examples/Threads/{Timer.h,context_switch_time.cpp}: - ACE_High_Res_Timer::elapsed_microseconds () instead of - ACE_High_Res_Timer::get_time (). - - * bin/create_ace_build: added this script: it creates an ACE build - tree in directory "build/" below the current - directory, which must be a ACE "top level" directory (such as - $WRAPPER_ROOT). The build tree directory structure mirrors that - of the ACE top level directory structure, except that instead of - containing any plain files, it contains only symlinks to the files - in the ACE top level structure. - -Thu Jan 30 06:57:50 1997 David L. Levine - - * ace/Thread_Priority.cpp (convert_to_os_priority): changed - switch (priority_class) to switch (priority_class_). - Thanks to Chris Lahey for pointing this out. - Also, return -1 on other than Solaris, Win32, and VxWorks. - -Wed Jan 29 22:05:01 1997 Douglas C. Schmidt - - * tests/Naming_Test.cpp: Added the prefix "test_" to the bind(), - find(), rebind(), and unbind() functions. This avoids name - clashes with the bind() call from the socket API. Thanks to - Marius for this info. - - * ace/OS.cpp (ACE_Time_Value): Added a new constructor that makes - it possible to construct an ACE_Time_Value from a double. - Thanks to Brad Flood for this. - - * ace/OS.i (thr_join): If ACE_HAS_THREADS is defined, but none of - the threading APIs match (e.g., AIX) then we'll return - ACE_NOTSUP_RETURN(-1). Thanks to Chris Lahey for help with - this. - - * include/makeinclude/platform_aix.GNU: Made some changes to the - type of dynamic linker and libraries used by AIX 4.1. Thanks to - Chris Lahey for help with this. - - * ace/config-aix-4.1.x.h: Changed from BSD 4.3 to 4.4. Thanks - to Chris Lahey for help with this. - -Wed Jan 29 09:03:48 1997 David L. Levine - - * ace/OS.h: moved ACE_id_t and ACE_pri_t typedefs out of the - ACE_HAS_THREADS section. - - * ace/OS.cpp: fixed ACE_OS::set_sched_params on Win32 and VxWorks. - - * ace/Scheduling_Parameters.*, ace/Thread_Priority.*: updated - comments. - - * examples/Threads/{context_switch_time.cpp,Timer.h,Makefile}: - added context switch timing test. Currently only works on - Suns because that's the only platform for which ACE has a - high-resolution timer. - - * Makefile: added chmod of VERSION file in TIMESTAMP macro. - -Wed Jan 29 00:59:12 1997 Douglas C. Schmidt - - * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Removed - the -D_MIT_POSIX_PTHREADS symbol since we're using Xavier's - threads instead. Thanks to Marius Kjeldahl for reporting this. - - * ace/config-linux-lxpthreads.h: Removed the _MIT_POSIX_PTHREADS - symbol since we're using Xavier's threads instead. Thanks to - Marius Kjeldahl for reporting - this. - -Tue Jan 28 23:32:58 1997 Douglas C. Schmidt - - * ace/SString: Added hash() methods to each ACE String class so - that we can use this with the new ACE_Hash_Set implementation of - ACE_Map_Manager. - - * ace/ACE.h (ACE): Added a UNICODE version of hash_pjw() so that - we can use it to hash ACE_WString. - - * ace/OS.i (thr_setprio): Fixed a typo that was left over from a - previous change. Thanks to Fred LaBar - for reporting this. - - * apps/Gateway/Gateway/{proxy_config,consumer_config}: Added - comments to these config files so they are easier to understand. - Thanks to Chuck Gehr for motivating this. - - * apps/Gateway/Peer/Peer.cpp: Changed the name from connection_id_ - to proxy_id_, which is more accurate. - - * apps/Gateway/Peer/Peer.cpp: Added a destructor to Peer_Handler - so that it can clean itself up properly when shutdown with a - signal. This fixes a nasty bug. - - * ace/config-win32-msvc4.x.h (ACE_HAS_MFC): By default, ACE now - enables ACE_HAS_MFC. This makes it possible to use - AfxBeginThread() with the ACE_THR_AFX flag. - - * ace/OS.cpp: Fixed a typo in the call to ::AfxBeginThread() - function. Thanks to Karlheinz for reporting this. - - * apps/Gateway/Peer/Peer.cpp: Removed all uses of the Map_Manager - from the Peer. There's only ever one connection from a Gateway - per-Peer, so what was this doing here anyway?! It was causing - problems due to multiple deletions, so removing it improves - robustness of the tests. - - * ace/OS.i: Commented out the "extern char **_sys_siglist" - definition since this was conflicting with the definition in - Solaris. If some platforms needs this, we'll need to add a - specific #ifdef. - -Tue Jan 28 21:57:45 1997 David L. Levine - - * ace/OS.{h,cpp}: added ACE_OS::set_sched_params (). It permits - platform-independent setting of thread priorities and - priority classes. It is currently supported on Solaris, - Win32, and VxWorks. - - * ace/Scheduling_Parameters.{h,i,cpp}, - ace/Thread_Priority.{h,i,cpp}, ace/Makefile: - Added these two classes to support ACE_OS::set_sched_params (). - -Tue Jan 28 12:42:39 1997 Irfan Pyarali - - * ace/ace.mdp: Added the "Using MFC in a Shared DLL" flags. - - * tests/test_config.h (ACE_INIT_LOG): Made this UNICODE safe. - - * tests/Pipe_Test.cpp (main): Added an iteration count to control - the number of children created by the main process. - - * ace/Memory_Pool.cpp (init_acquire): cast this->minimum_bytes_ to - size_t to avoid compiler warning if size_t is unsigned. - - * ace/OS.h: Added strncat to the OS class. - -Tue Jan 28 09:13:00 1997 David L. Levine - - * ace/ACE.cpp (ACE::ldfind), - ace/Local_Name_Space_T.cpp, - ace/Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry), - ace/Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find), - Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool), - ace/Naming_Context.cpp (ACE_Naming_Context::open), - ace/Parse_Node.cpp (ACE_Location_Node::open_handle), - ace/Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host, - ACE_Registry::Binding_Iterator::Object_Iteration::next_n, - ACE_Registry::Binding_Iterator::Context_Iteration::next_n), - tests/UPIPE_SAP_Test.cpp: - changed "sizeof char" to "sizeof (char)" because g++ and Sun C++ - (properly) choked on it. - - * ace/Local_Name_Space_T.cpp (create_manager_i): - -- ::strncat () instead of ACE_OS::strcat () - -- "lock_name_for_backing_store" instead of - "lock_name_for_local_name_space" - - * ace/Naming_Context.cpp (both constructors): reordered - initializers to match declaration order. - - * include/makeinclude/platform_sunos5_g++.GNU: removed - -fno-strict-prototypes because it's not needed with SunOS 5.5.1. - -Mon Jan 27 21:33:00 1997 Irfan Pyarali - - * tests/Naming_Test.cpp (main): Made modifications to the test to - make it more dynamic. Also made it work with UNICODE and - ACE_Naming_Context. - - * ace/Local_Name_Space_T.cpp (create_manager_i): Added a better - naming scheme for the locks. - - * ace: Changed the calculations of string lengths such that the - size of the character type is carefully considered. - - The following were affected: - - ACE.cpp (ACE::ldfind) - Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry) - Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find) - Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool) - Naming_Context.cpp (ACE_Naming_Context::open) - Parse_Node.cpp (ACE_Location_Node::open_handle) - Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host, - ACE_Registry::Binding_Iterator::Object_Iteration::next_n, - ACE_Registry::Binding_Iterator::Context_Iteration::next_n) - - * ace/OS.h: Added UNICODE support for ACE_DEFAULT_LOCALNAME. - - * ace/Proactor.cpp: Redid "lost" changes to add UNICODE support to: - - /* Proactor */ - ACE_Overlapped_File::ACE_Overlapped_File - ACE_Overlapped_File::open - - * ace/Registry_Name_Space.h: Changed the order of #include and - #define as that the correct set of MACROS are defined for the - include files. - - * tests/MM_Shared_Memory_Test.cpp: Added UNICODE support. - -Mon Jan 27 09:16:03 1997 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++.GNU, - include/makeinclude/platform_sunos5_sunc++_orbix.GNU, - ace/config-sunos5.5-sunc++-4.x-orbix.h - ace/config-sunos5.5-sunc++-4.x.h: - disabled exception handling by commenting out ACE_HAS_EXCEPTIONS - in the config files and adding -noex to the platform files, - because it causes trouble, at least on MP machines. - -Mon Jan 27 14:54:31 1997 Douglas C. Schmidt - - * ace/Memory_Pool.h: Added code to ACE_MMAP_Memory_Pool_Options to - take a minimum_bytes parameter. This is needed to prevent mmap - remapping when a large segment is requested. Thanks to Fred - LaBar for this. - -Sun Jan 26 13:39:13 1997 Douglas C. Schmidt - - * ace/OS.i: Changed the typo sis_siglist to sys_siglist. Also, - changed the logic from #if !defined (ACE_HAS_SYS_SIGLIST) to - #if defined (ACE_HAS_SYS_SIGLIST) since this makes more sense... - Thanks to Nanbor Wang for noticing this. - -Sat Jan 25 20:30:23 1997 David L. Levine - - * ace/config-sunos5.5-sunc++-4.1.h: commented out ACE_HAS_EXCEPTIONS - #define because -noex is required with it, and that causes core - dump during thread exit on multiprocessor UltraSparcs. - - * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: added -noex - back because of core dump during thread exit on - multiprocessor UltraSparcs. - - * examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp, - examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp (control): - added "default" case to switch statement to eliminate compiler - warnings about enumeration values not being handled in switch. - - * examples/ASX/UPIPE_Event_Server/event_server.cpp (consumer): - removed unused variable "iter". - -Sat Jan 25 12:50:24 1997 Douglas C. Schmidt - - * ace/OS.i: Updated all the cond_timedwait() and cond_wait() - methods so that they decrement the count of waiters by one even - when errors occur. Thanks to Irfan for finding this. - - * ace/Map_Manager.cpp: Updated the ACE_Map_Iterator code so that - it no longer crashes if the Map has been closed. Thanks to - Slawomir Kuzniar for reporting this. - -Sat Jan 25 11:34:56 1997 Irfan Pyarali - - * ace/SOCK_Connector.cpp (complete): Added a sleep of zero seconds - which allows non-blocking connects to work properly on NT. - - * ace/config-winnt-4.0-msvc4.x.h and config-win32-msvc4.x.h: - Added ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS. - - * ace/OS.i: Moved out all code for Time_Value from #if region. It - is common to all. - - * ace/Reactor: Added helper routines to stop the VC++ compiler from - bitching about destructors in exception handling code. - - * ace/ace.{mak,mdp}: Removed Time_Value.cpp from project. - - * tests/tests.{mak,mdp}: Corrected the creation of SOCK_Test and - Message_Blob_Test executables and temporary files. - -Fri Jan 24 09:01:50 1997 David L. Levine - - * examples/Connection/misc/Connection_Handler.cpp: added - specialization of ACE_Svc_Handler - so that subproject will build with g++ without optimization. - - * apps/Gateway/Gateway/Proxy_Handler.cpp: added specializations - of ACE_Svc_Handler and - ACE_Svc_Handler - so that subproject will build with g++ without optimization. - - * tests/Reactor_Exceptions_Test.cpp (main): added ACE_UNUSED_ARG - for argc and argv when ACE_HAS_EXCEPTIONS is not defined. - - * performance-tests/Misc/test_mutex.cpp: made destructor of - Thread_Mutex_Derived virtual because the class has other virtual - functions. - -Thu Jan 23 11:51:45 1997 David L. Levine - - * ace/config-sunos5.5-g++.h: commented out ACE_HAS_EXCEPTIONS because - -fhandle-exceptions is broken in g++ 2.7.2 (and is required in order - to use exception handling); also, added ACE_HAS_INLINED_OSCALLS, if - __ACE_INLINE__ is #defined. - - * ace/config-sunos5.5-sunc++-4.1.h: added ACE_HAS_INLINED_OSCALLS, - if __ACE_INLINE__ is #defined. - -Wed Jan 22 15:04:47 1997 Douglas C. Schmidt - - * ace/OS.h: Moved the ACE_TIMER_SKEW macro to below the #inclusion - of config.h and updated it so that it can be overridden in the - config.h file if necessary. Thanks to Bob Olson - for motivating this. - - * ace/OS.cpp: Fixed the implementation of - ACE_Thread_ID::operator== so that it works correctly when thread - ids and thread handles aren't ints. Thanks to Chuck Gehr for - reporting this. - - * ace/OS.i (thr_getprio): Moved a stray #else into the right - place. Thanks to Chuck Gehr for reporting this. - - * ace/OS.i (sema_post): this->count_++ should have been - s->count_++. Thanks to Chuck Gehr for reporting this. - - * ace/Synch_T.cpp: Added an extern "C" definition for - ACE_TSS_C_cleanup(). Thanks to Chuck Gehr for reporting this. - - * ace: Added a new #define called ACE_LACKS_SYS_NERR to the - config files for MVS and VxWorks. This is used in OS.cpp - as follows: - - #if defined (ACE_LACKS_SYS_NERR) - int sys_nerr = ERRMAX + 1; - #endif /* ACE_LACKS_SYS_NERR */ - - Thanks to Chuck Gehr for reporting this. - - * Removed all #inclusions of "ace/Time_Value.h." This file - no longer contains anything besides a #include "ace/OS.h" - and is only kept around due to backwards compatibility. - - * ace: Moved the contents of Time_Value.h into OS.h to reduce the - confusion that arises from the #inclusion of "config.h" in - Time_Value.h. Also merged the contents of Time_Value.{i,cpp} - into OS.{i,cpp}. Thanks to the MDA guys for motivating this. - - * tests/Reactor_Exceptions_Test.cpp: Added a new test that - exercises the Reactor with C++ exceptions. Thanks to Luca for - the test. - - * ace/Reactor.cpp (handle_events): Added Win32 structured - exception handling support to the ACE_Reactor::handle_events() - method so that it correctly releases the token lock when Win32 - SEH occur in callback routines. Thanks to Luca for reporting - this problem. - - * ace: Added a new macro called ACE_HAS_EXCEPTIONS, which - indicates that the compiler supports C++ exception handling. - - * include/makeinclude/platform_sunos5_sunc++*.GNU: Commented out - the -noex flag for now. Hopefully, things will work correctly - now. - - * ace/Thread_Manager.cpp (exit): Removed the final acquire() on - ace_mon, which is no longer necessary since the Guard classes - now keep track of whether they are "owned". Thanks to Karlheinz - and Detlef for this fix. - -Wed Jan 22 09:05:31 1997 David L. Levine - - * Makefile,VERSION: modified top-level Makefile (and VERSION) - to add a timestamp to the VERSION file if creating a release - from the /project/adaptive/ACE_wrappers directory. If it - causes problems, this will disable it: - % make TIMESTAMP= release. - - * ace/Local_Tokens.cpp (dump): replaced "ACE_TSS" - with "ACE_TPQ_ENTRY" so that ACE_NO_TSS_TOKENS is supported. - - * ace/Synch.h: fixed typo in comment header for ACE_Thread_Semaphore - - * ace/config-vxworks-ghs-1.8.h,config-vxworks5.2-g++.h, - config-unixware-2.01-g++.h: - protect ACE_HAS_INLINED_OSCALLS #defined with - #if defined (__ACE_INLINE__). - - * apps/Gateway/Gateway/Event_Channel.cpp (open): added - ACE_UNUSED_ARG (sig);. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.h: - declared a friend of class Peer_Router_Context because it - has a private destructor, to eliminate compiler warning - about not having any friends. - - * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp - (open): added return 0 in "true" branch of if statement so - that the function always returns a value. - -Tue Jan 21 09:19:44 1997 David L. Levine - - * tests/Reader_Writer_Test.cpp (reader): commented out unused - variable "n"; also, commented out unused function - print_usage_and_die. - - * tests/TSS_Test.cpp, Thread_Manager_Test.cpp (main): added - ACE_UNUSED_ARG (sa);. - - * tests/Thread_Pool_Test.cpp (open): added return 0 at end. - -Tue Jan 21 11:00:12 1997 Douglas C. Schmidt - - * apps/Gateway/Gateway/Gateway.cpp (parse_args): There was a small - bug in parse_args (latest beta), it mixed proxy and consumer - conf files. Thanks to Per Andersson - for reporting this. - -Mon Jan 20 13:29:28 1997 David L. Levine - - * ace/OS.i, ace/Task.h, and ace/Thread_Manager.h: changed a few - occurrences of NULL to 0 (for other than Win32 platforms), - primarily to avoid compiler warnings on VxWorks if ACE.h isn't - #included before stddef.h. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp - (handle_input): replaced %d format with %hu for u_short arg. - - * netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp - (run_writer): initialized variable "t" to avoid compiler warning. - - * examples/Connection/misc/Connection_Handler.cpp (handle_timeout): - added ACE_UNUSED_ARG (tv); also, added explicit int return type - to definition of Connection_Handler::close (u_long). - - * examples/Threads/task_four.cpp (Invoker_Task::svc): - moved declaration of "task" out of for loop because it is - also used after the for loop. - - * netsvcs/lib/Name_Handler.cpp, Server_Logging_Handler.cpp, - TS_Clerk_Handler.cpp, TS_Server_Handler.cpp, Token_Handler.cpp: - added ACE_UNUSED_ARG (sig);. - -Sun Jan 19 11:10:49 1997 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++.GNU, - platform_sunos5_sunc++_4.1.GNU: - added comment about compiler warnings with +w option. - Also, added +w to platform_sunos5_sunc++_4.1.GNU. With the - other changes in this ChangeLog entry, there no longer should - be significant warnings from Sun C++ when building ACE. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp - (Peer_Handler::put): added ACE_UNUSED_ARG (tv);. - - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp (main), - netsvcs/clients/Tokens/invariant/invariant.cpp (main): - commented out argc and argv. - - * examples/Mem_Map/file-reverse/file-reverse.cpp (main): - removed unused variable "cp". - - * netsvcs/clients/Tokens/manual/manual.cpp (handle_input, - handle_exception): added ACE_UNUSED_ARG (fd); and - (create_proxy): added return statement at end: even - though it should never be reached, it eliminates a - compiler warning. - - * examples/OS/Process/process.cpp, - examples/Reactor/Misc/test_reactors.cpp, - netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp, - netsvcs/clients/Tokens/mutex/test_mutex.cpp, - netsvcs/clients/Tokens/rw_lock/rw_locks.cpp, - performance-tests/TTCP/ORBeline/ttcp_i.cpp, - performance-tests/TTCP/Orbix/ttcp_i.cpp (main): - return 0 instead of 42. - -Sat Jan 18 10:54:25 1997 Prashant Jain - - * java/src/README: Updated the README file to indicate how - documentation for Java ACE cab be automatically generated. - -Fri Jan 17 11:47:10 1997 Douglas C. Schmidt - - * ace/OS.h: Added an equivalent set of - ACE_LSOCK_{STREAM,ACCEPTOR,CONNECTOR} macros to complement the - ones for ACE_SOCK_*. Thanks to Gonzalo Diethelm - for suggesting this. - - * ace/OS.cpp (ACE_Thread_Adapter): Added a new feature that allows - logging features to be inherited by threads. It works with - those OSs (e.g., Win32) that use ACE_Thread_Adapter class. At - some point, we might do this for all the OSs. Thanks to Luca - for this. - - * examples/Connection/misc/Connection_Handler.cpp: Added a - new example that illustrates how to use the Acceptor pattern - to create multiple threads, each running its own Reactor. - - * ace/Log_Msg.cpp (dump): Some of the variables in the dump() - method have the wrong format specification type. These are: - restart_ (%d), flags_ (%x), priority_mask_ (%d). They are now - fixed, thanks to Luca. - - * tests/Priority_Task_Test.cpp (open): Add an ACE_ASSERT to make - sure that the tasks activate() correctly. Thanks to David for - finding this. - - * ace/config-linux-lxpthreads.h: Added #defines for - ACE_HAS_AUTOMATIC_INIT_FINI and ACE_HAS_SVR4_DYNAMIC_LINKING. - Thanks to Marius for this. - - * ace/Malloc.h: Changed the typedef of ACE_Malloc_Align to a macro - called ACE_MALLOC_ALIGN to allow users to override this value in - their config.h file. This is necessary for platforms that don't - have "long" word alignments. Thanks to Fred LaBar - for this suggestion. - - * ace/OS.h: Added an #ifdef check for ACE_HAS_IRIX62_THREADS and - if so, we'll use the if (&a) /* null */; } form of the - ACE_UNUSED_ARG macro to avoid unnecessary warnings. Thanks to - Fred LaBar for testing this out. - -Fri Jan 17 16:33:25 1997 David L. Levine - - * ace/High_Res_Timer.*: added elapsed_time () and get_time (). - - * netsvcs/clients/Tokens/collection/collection.cpp, rw_locks.cpp: - commented out unused variables to avoid compiler warnings; and - return 0 from main (). - - * include/makeinclude/rules.local.GNU, - netsvcs/lib/Makefile, - examples/Service_Configurator/IPC-tests/server/Makefile: - fixed ESOBUILD mechanism to work on all platforms, not just Linux. - Thanks to Marius Kjeldahl for this fix. - - * ace/OS.i and OS.cpp: uninlined functions that use varargs, because - they usually won't get inlined anyways. - - * ace/OS.cpp (thr_create): added #else clause to be sure that - always sparam.sched_priority always get set to the priority argument. - - * netsvcs/clients/Naming/Client/Client_Test.cpp: commented out - unused parameters and wrapped combined assignments/conditional - values to avoid compiler (g++) warnings. - - * tests/Priority_Task_Test.cpp: added check for successful thread - spawn, and ACE_NEW_THREAD to svc () so that messages get logged. - -Thu Jan 16 17:03:47 1997 Douglas C. Schmidt - - * include/makeinclude: Added support for shared object files - on Linux. Thanks to Marius Kjeldahl for his help with this. - - * ace: Merged in the IRIX support, mainly the missing netdb - reentrant functions. Thanks to Gonzalo Diethelm - and Carlos O'Ryan for - their help. - - * ace/Timer_{List,Heap,Queue}: Changed iterator() to iter() to - avoid name clashes with STL (ugh). - - * ace/Timer_{Heap,List}.cpp: Added ACE_BUILD_DLL so that things - will link. Thanks to John Morey for reporting this. - - * ace/Synch_T.h: Fixed: class ACE_Write_Guard: method: - tryacquire_write so that it will call - ...->lock_->tryacquire_write() and not - ...->lock_->acquire_write(). Thanks to Alexandre Karev - for this fix. - -Thu Jan 16 15:51:16 1997 David L. Levine - - * Dump.cpp (register_object): initialized "slot" so that g++ doesn't - complain about uninitialized use. - - * Reactor.cpp (initialized): use ACE_GUARD_RETURN instead of - ACE_GUARD because the function returns a value; - (find): initialize "i" if handle is out of range so that g++ - doesn't complain about uninitialized use. - - * Service_Repository.cpp (remove): removed unused variable "handle". - - * Thread_Manager.h: made destructor virtual now that spawn_i () is - virtual. - - * Timer_Heap.cpp: changed some int loop indicies to size_t to - make sure that comparisons are consistently signed or unsigned. - - * OS.h, config-vxworks*.h: removed ACE_HAS_GREENHILLS_SOCKETS - ACE macro because the code it wrapped applies to all VxWorks - compilers, not just GreenHills. - -Wed Jan 15 02:06:21 1997 Douglas C. Schmidt - - * ace/ACE.cpp (round_to_pagesize): If _SC_PAGESIZE is enabled then - we set the ACE::pagesize_ variable using sysconf(2). Thanks to - James Mansion for this suggestion. - -Wed Jan 15 02:06:21 1997 Douglas C. Schmidt - - * ace/Timer_Queue.cpp (expire): Changed a line of code from - - ACE_Timer_Queue_Iterator &iterator (this->iterator ()); - - to - - ACE_Timer_Queue_Iterator &iterator = this->iterator (); - - so that the Visual C++ compiler can grok it. Thanks to John - Morey for reporting this. - - * ace/Reactor.cpp: Modified the close() method so that it can be - called multiple times with no bad side-effects. - - * ace/Pipe.cpp: Modified the close() method so that it can be - called multiple times with no bad side-effects. - - * ace/Reactor: Added an initialized() method that indicates - whether the Reactor was successfully initialized. Also - rearranged the code in ACE_Reactor::open() so that initialized_ - is only set at the end of the method when everything succeeds. - If things *don't* succeed, we call close() on the way out. - Thanks to Luca for these suggestions. - - * ace/Reactor.cpp (close): When closing down the ACE_Reactor, we - now set initialized_ back to 0 so that it can be reopened again - later. - - * tests/Reader_Writer_Test.cpp: There were some problems with this - test due to the fact that on many pthreads platforms pthread_t - isn't an int (it's a struct). Thanks to Chuck Gehr - for the fix. - - * ace/OS.i (exit): In WIN32 when the process exits through an - ExitProcess() call, some process resources (e.g., file handles) - are freed before the static variable destructors are - called. This results in an application error when tracing is - enabled. Removing the ACE_TRACE call in ~ACE_Event_Handler - seems to fix this. Thanks to Luca for this fix. - - * ace/OS: Fixed the implementation of semaphores for the POSIX - port (POSIX lacks semaphores). The trick was to add a "waiters" - field, along with the semaphore count. Thanks to John Bossom - for reporting this. - - * examples/Threads/wfmo.cpp: Added a new test program that seems - to indicate that the Win32 WaitForMultipleObjects() function can - be called in multiple threads, all of which wait on the same set - of HANDLEs. Note that the dispatching of the threads is - relatively "fair" (i.e., everyone gets a chance to process the - various HANDLEs as they become active). Thanks to Ari Erev - for suggesting this and providing the - initial code. - - * ace/Thread_Manager.h: Made the spawn_i() method virtual and - moved it into the protected section of the class so that it can - be over-ridden by subclasses. Thanks to Tim Harrison for - suggesting this. - -Tue Jan 14 15:57:55 1997 Douglas C. Schmidt - - * ace/OS.h: Changed the default size of ACE_DEFAULT_TIMERS to - _SC_TIMER_MAX (which is typically around 40 or so). - Thanks to Stuart Powell for - suggesting this. - - * tests/Timer_Queue_Test.cpp (main): Added some additional logic - so that we can test the performance of the preallocated and - non-preallocated ACE_Timer_Heap. - - * ace/Timer_Heap: Added a new "preallocate nodes" mechanism to the - ACE_Timer_Heap. If this is enabled by the constructor, then we - preallocate as many ACE_Timer_Nodes as there are slots in the - heap. This allows us to completely remove the need for dynamic - memory allocation, which is important for real-time systems. - - * ace/Thread_Manager.cpp (remove_thr): Optimized the code just a - tad by decrementing the current_count_ *first*. Thanks to Per - Andersson for suggesting this. - - * ace/ReactorEx: Updated the implementation so that the - handle_events() method now in fact *does* return the number of - event handler's dispatched (i.e., the implementation matches the - documentation...). Thanks to Hamutal Yanay - for reporting this. - - * ace/Service_Repository.cpp (remove): Removed an extra call to - ACE_OS::dlclose(). This is already being called in the - destructor of ACE_Service_Record. Thanks to Karlheinz for - reporting this. - - * man: Updated all the nroff and html documentation. - - * ace/Timer_Heap: Implemented the spiffy new timer cancellation - algorithm that requires only O(log N) time to remove a timer - from the ACE_Timer_Heap. This is about 50 to 100 times faster - than using the ACE_Timer_List implementation. - -Tue Jan 14 21:01:36 1997 David L. Levine - - * ace/OS.h: Replace "Linux" preprocessor symbol with "linux". - -Mon Jan 13 17:57:50 1997 Douglas C. Schmidt - - * ace/Synch: Added lock() accessor methods to both - ACE_Process_Semaphore and ACE_Process_Mutex. Thanks to Hamutal - Yanay for suggesting this. - - * ace/config-mvs.h: Added a #define for ACE_HAS_GETPAGESIZE. - Thanks to Chuck Gehr for this information. - - * ace/LSOCK_Stream.h: Added a new typedef for PEER_ADDR that is - associated with ACE_UNIX_Addr. Thanks to Mark Rabotnikov - for suggesting this. - -Mon Jan 13 22:24:09 1997 David L. Levine - - * ace/OS.h: Added #undefs of sigemptyset and sigfillset on Linux - when __OPTIMIZE__ is enabled. Yes, the system header on Linux - really #defines them when optimizing! Thanks to an anonymous - ACE user for pointing this out. - - * tests/tests_config.h: Dropped ACE_MAX_ITERATIONS back to 10. - -Sun Jan 12 16:59:52 1997 Douglas C. Schmidt - - * ace/Timer_List.cpp (schedule): Cleanup the code so that (1) - timer_id never == -1 (in order to distinguish it from error - return values and (2) so that we avoid an unnecessary check for - operator new failure. - - * ace/OS.h: Added a new #define called ACE_DEFAULT_MAX_TIMERS, - which specifies the maximum number of ACE_Event_Handlers - supported by ACE_Timer_Heap. - - * ace/Proactor.cpp (ACE_Proactor): Updated the allocation of - ACE_Timer_Queue so that it really points to an ACE_Timer_List by - default. Naturally, this can be overridden by users. - - * ace/ReactorEx.cpp (open): Updated the allocation of - ACE_Timer_Queue so that it really points to an ACE_Timer_List by - default. Naturally, this can be overridden by users. - - * ace/Reactor.cpp (open): Updated the allocation of - ACE_Timer_Queue so that it really points to an ACE_Timer_List by - default. Naturally, this can be overridden by users. - - * ace: Added two new classes called ACE_Timer_List and - ACE_Timer_Heap, which derive from ACE_Timer_Queue. - ACE_Timer_List is essentially the old behavior of - ACE_Timer_Queue, i.e., it uses an implementation of a linked - list of ACE_Timer_Nodes. ACE_Timer_Heap, on the other hand, - uses a heap-based callout queue, which is more appropriate for - certain real-time applications. - - * ace/Timer_Queue: Revised the ACE_Timer_Queue implementation so - that it's now an abstract base class with most of the - implementation details pushed into the ACE_Timer_List and - ACE_Timer_Heap subclasses. - - * ace/Timer_Queue.h: Made all the ACE_Timer_Queue methods public - so that we can override them in a subclass (e.g., the new - ACE_Timer_Heap). - - * examples/Logger/Acceptor-server/server_loggerd.cpp: Fixed this - example application so that it only uses a single Reactor (the - REACTOR::instance()) rather than two Reactors. Thanks to Sandro - Doro for reporting this. - - * netsvcs/lib/Logging_Strategy.cpp: Fixed the #include of - fstream.h and iostream.h to use the '<' '>' notation rather than - the '"' and '"' notation. This avoids problems with running - "make depend". Thanks to Rino Simioni for - reporting this fix. - -Sun Jan 12 18:20:49 1997 David L. Levine - - * ace/ACE.cpp (round_to_pagesize): fixed typo in reference to - ACE::pagesize_. - - * ace/ACE.cpp: initialize ACE::pagesize_ to 0. - - * ace/config-irix*.h and config-win*.h: removed ACE_PAGE_SIZE - definition because these platforms no longer use it. - - * tests/UNIX*.conf and Win32server.conf: replaced net_svcs - with netsvcs. - -Sat Jan 11 15:11:28 1997 Douglas C. Schmidt - - * ace/OS.i (thr_setprio): The POSIX implementation of - ACE_OS:thr_setprio did not set the priority. It calls: - - pthread_setschedparam( thr_id, &policy, ¶m ) - - and then does - - prio = param.sched_priority. - - instead of - - param.sched_priority = prio; - - This is now fixed. Thanks to John Bossom - for reporting this. - - * ace/config-irix*.h: Modified all the IRIX config files to - use the new ACE_HAS_GETPAGESIZE feature since this is necessary - to differentiate between IRIX and IRIX64. - Thanks to Fred LaBar for - reporting this. - - * ace/ACE.cpp: Modified the round_to_pagesize() so that if - a config.h file enables ACE_HAS_GETPAGESIZE then we use - that function in preference to the value in config.h. - Thanks to Fred LaBar for - suggesting this. - - * ace/ACE.cpp: Modified the round_to_pagesize() so that on - platforms that allow the page size to be obtained dynamically - we'll get that rather than replying on what it set in the - config.h file. We'll cache this value in a static variable - to speedup searches. Thanks to James Mansion for suggesting - this. - - * apps/Gateway/Gateway: Finished adding support for thread-safe - reference counting to the uses of ACE_Message_Block. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Replaced - the use of ACE_MT_SYNCH with ACE_SYNCH so that this will compile - correctly on non-MT platforms. - -Fri Jan 10 12:38:42 1997 Douglas C. Schmidt - - * Added a COPYING file that explicitly states the copyright status - of ACE. - - * ace/config-win32-msvc4.x.h and ace/config-winnt-4.0-msvc4.x.h: - By default, we'll revert to *not* enabling - ACE_HAS_TEMPLATE_TYPEDEFS for MSVC++ 4.2, even though this is - well-support by the compiler since it breaks some application - code that expects to use 3 template parameters for - ACE_Svc_Handler<>. The "fix" is to use the ACE_SOCK_STREAM - macros (rather than using the "ACE_SOCK_Stream, ACE_INET_Addr" - tuple) in order to achieve portability in either case. Thanks - to Karlheinz for pointing out the need for backwards - compatibility. - -Wed Jan 8 01:00:05 1997 Douglas C. Schmidt - - * tests/Message_Block_Test.cpp: Enhanced the torture test of the - ACE_Message_Block so that it stresses the reference counting - implementation in a multi-threaded environment. - -Wed Jan 08 10:26:45 1997 David L. Levine - - * ace/Message_Block.cpp (~ACE_Data_Block): assigned 0 to - allocator_strategry_ after deleting it; fixed template - specializations (for g++) by using macros instead of class names; - commented out template specializations because Service_Record.cpp - already has them, and they should only appear once in the library - in order to avoid link clashes - - * ace/Service_Object.cpp (ACE_Service_Object): reordered - initializations in constructor - - * ace/Service_Record.cpp (ACE_Service_Record): reordered - initializations in constructor - - * ace/config-linux-lxpthreads.h: added - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS, thanks to - James CE Johnson for tracking down this - problem and testing the fix. - -Tue Jan 7 13:03:25 1997 Douglas C. Schmidt - - * ace/Message_Block: Continued to improve the - ACE_Message_Block/ACE_Data_Block implementation. - - * ace/Message_Block: Added a new constructor to ACE_Message_Block - that takes an ACE_Data_Block * and "owns" it. Thanks to Tim for - this idea. - - * ace/Log_Msg.cpp: Now that we've prevented signal handlers from - occurring within critical sections of ACE_Log_Msg::log() we - don't need to use the ACE_Recursive_Thread_Mutex anymore. - Instead, we just need ACE_Thread_Mutex. - - * ace/Log_Msg.cpp (log): Added an ACE_Sig_Guard to the block in - ACE_Log_Msg::log() that acquires the mutex that serializes - output. This prevents nasty problems with recursive to - ACE_Log_Msg::log() from within signal handlers. - - * ace/Service_Config.cpp (end_reactor_event_loop): Added a timeout - of ACE_Time_Value::zero to the ACE_Reactor::notify() method when - called in the ACE_Service_Config::end_reactor_event_loop(). - This prevents the Reactor from blocking indefinitely if there's - no longer a thread to receive from the notification pipe. - - * netsvcs/clients/Naming/Dump_Restore: Removed the vestigal - nametest.cpp and nametest.h files. I'm not sure why they were - still there, but they shouldn't have been! - - * ace/Synch.i (remove): this->owner_ should be set to -1 before - calling this->release(). Thanks to Per Andersson - for suggesting this. - - * ace/Thread_Manager.cpp (exit): Added a flag called "do_thr_exit" - to the ACE_Thread_Control::exit() method. This controls whether - we call ACE_OS::thr_exit() after removing the thread from the - Thread Manager's internal table. This is necessary to work - around pthread bugs on certain platforms (e.g., AIX and Linux). - - * ace/Synch.h: Removed the - ACE_Recursive_Thread_Mutex::set_nesting() method since this - isn't being used and is potentially dangerous. Thanks to Per - Andersson for suggesting this. - - * ace/XtReactor: Updated the XtReactor so that it uses the next - internal Reactor implementation. Thanks to Mark Rabotnikov - for reporting this. - - * ace/Task.i: Updated the grp_id(int) method to cache the group id - in the task and then set it in the Thread_Manager, if there is - one. Thanks to Hamutal Yanay - for suggesting this. - - * ace/Log_Record.h: Updated the ACE_Log_Record class to use the - new ACE_MAXLOGMSGLEN macro. - - * ace/OS.h: Added a new #define called ACE_MAXLOGMSGLEN. By - default this is 4k. However, you can reset it in the config.h - file if you'd like to increase or decrease the size. Thanks to - Anthony McConnell for suggesting this. - - * examples/Threads/tss[12].cpp: Tidied up the tss1.cpp and - tss2.cpp examples and improved the comments. Thanks to Luca for - suggesting this. - - * ace/Service_Object.cpp (fini): Added the "virtual" keyword to - the new destructor of ACE_Service_Type. Thanks to David for - reporting this. - - * ace/Message_Block.i: Rearranged the order of the ACE_Data_Block - and ACE_Message_Block locking_strategy() methods so that they'd - be defined as inline before being used. Thanks to David for - reporting this. - -Mon Jan 6 16:46:06 1997 Douglas C. Schmidt - - * ace/Service_Manager.cpp (fini): Only try to remove the - ACE_Service_Manager from the Reactor if it's actually been - registered in the first place (i.e., if it's get_handle() method - does not return ACE_INVALID_HANDLE). - - * netsvcs/servers/svc.conf: Changed the name of the net services - .so file from libnet_svcs to netsvcs so that it will work - correctly with our new "cross-platform" svc.conf ACE::ldfind() - strategy. Thanks to Marius Kjeldahl for - reporting this. - - * ace/Reactor.cpp (find): Added a strategic break and a check for - handle_in_range(). Thanks to Tim for this help! - - * netsvcs/clients/Naming/Client/svc.conf: Removed the "lib" part - from the executable shared object file names in the svc.conf - file so that it will work with the new "cross-platform" svc.conf - ACE::ldfind() strategy. Thanks to Marius Kjeldahl - for reporting this. - - * ace/Service_Record.cpp (fini): Added an extra assignment to a - temporary const void *obj to avoid problems with MSVC++ and it's - cast mechanism. - - * ace/ReactorEx.h: Added a default parameter to - ACE_ReactorEx::notify(). Thanks to Tim for noticing this. - -Sun Jan 5 10:48:23 1997 Douglas C. Schmidt - - * tests: Added a new test for ACE_Message_Block, which is called - Message_Block_Test.cpp (no surprise there ;-)). This test - exercises the reference counting mechanisms. - - * ace/Message_Block.h: Made the destructors for ACE_Message_Block - and ACE_Data_Block virtual, so that these classes can be - subclassed and ACE_Message_Blocks can delete these - subclasses (either via release() or delete). Thanks to Tilo - Christ for suggesting this. - - * ace/Message_Block.cpp: Modified the implementation - of ACE_Message_Block/ACE_Data_Block so that we always create - an allocator_strategy_. By default, this strategy will be - ACE_Allocator_Adapter >; - This greatly simplifies the code. - - * ace/Message_Block.h: It's now possible to assign a - Message_Block's priority when you create it. - - * ace/Reactor: Sped things up some more by merging the Reactor's - any_ready() and fill_in_ready() methods together. This reduces - redundant computations. - - * ace/Reactor: Changed the name of ACE_Reactor::detach() to - ACE_Reactor::remove_handler_i() and changed the name of - ACE_Reactor::attach() to ACE_Reactor::register_handler_i(). - This is more consistent with the other naming schemes. - - * ace/Reactor.cpp: Reworked the implementation of the Handler - Repository's unbind() method in order to simplfy the logic. - Also merged in all the Reactor's detach() functionality into the - unbind() method in order to localize all the handler removal - processing. - - * ace/Reactor[Ex].cpp: Added more descriptive errno entries for - failed operations in the handler repository. - - * ace/Reactor.cpp: Modified the implementation of the Handler - Repository's bind() method so that it reports an error if you - try to register an Event_Handler for an invalid HANDLE. - - * ace/Reactor.cpp: Reimplemented the internals of the Reactor to - prepare for the upcoming merge of the Reactor and ReactorEx to - use a single code base. - - * ace/Timer_Queue.cpp: Modified the behavior of the expire() - methods so that they return the number of ACE_Event_Handlers - whose handle_timeout() method was called. - -Sat Jan 4 11:47:05 1997 Douglas C. Schmidt - - * ace/Reactor.h: Removed the #ifdefs for ACE_HAS_POLL. This will - be recast as a strategy in subsequent implementations. - - * ace/Reactor.cpp: Added a new call, - ACE_Handler_Repository::handle_in_range(), which checks to make - sure that the HANDLE is within the range of 0 .. max_handlep1_. - This factors out some redundant code. - - * ace/Reactor.cpp: Sped up the performance of the Reactor by - removing redundant calls to - ACE_Handler_Repository::invalid_handle() and - ACE_Handler_Repository::find(). - - * tests/Reactors_Test.cpp: Added a test for - the new Reactor::notify() method with timeouts. - - * examples/Reactor/Misc/notification.cpp (svc): Added a test for - the new Reactor::notify() method with timeouts. - - * ace/Reactor[Ex]: Modified the Reactor and ReactorEx so that they - use timed send() operations for their notify() methods. This - makes it possible for users to bound the amount of time they're - willing to wait to try and notify the Reactor. This is mostly - useful to avoid infinite blocking if there is congestion in the - Reactor's notification mechanism. - - * ace/ACE.cpp: Added a new timed send() method that uses the - write() system call on UNIX and the socket send() call on Win32. - This new method is used in the new ACE_Reactor::notify() method, - which now supported timed notifications. - - * ace/Reactor.cpp (ACE_Handler_Repository): To simplify the code - and reduce unnecessary #ifdefs, I've merged the max_handlep1_ - and cur_size_ fields (which are now called max_handlep1_). - -Fri Jan 3 10:47:15 1997 Douglas C. Schmidt - - * ace: Replaced all uses of "delete mb" with mb->release (); - - * ace/Stream_Modules.cpp: Replaced the use of explicit bit - twiddling with the ACE_BIT* macros. - - * ace/Message_Block.cpp: Make sure that we use the - allocator_strategy_ to create the memory for the reference count - since this may need to go into shared memory if that's the - memory pool where the Message_Block allocations are coming from. - - * ace/OS.h: Added two new macros, ACE_ALLOCATOR_RETURN and - ACE_ALLOCATOR, which are similar to ACE_NEW_RETURN and ACE_NEW, - except that these - - * ace/Message_Block.cpp (release): Make sure to "delete this" - outside the scope of the locking_strategy_. - - * ace/Service_Object.cpp: Added a destructor to ACE_Service_Type. - Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for - suggesting this. - - * ace/Service_Object.i: Be smarter about how we reassign the name_ - pointer, i.e., delete the old one and make a copy. Thanks to - Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting - this. - - * ace/Module.cpp (open): Rearranged the assignments to - reader_q->mod_ and writer_q->mod_ so that we don't try to - initialize through NULL pointers. Thanks to - Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting - this. - - * ace/Service_Record.cpp (ACE_Service_Record): Initialized name_ - to NULL so that the following change works correctly now. - Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for - reporting this. - - * ace/Service_Record.i (name): Make sure to delete [] (char *) - this->name_ before allocating a new one. Thanks to - Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting - this. - - * ace/Message_Block: Reworked the reference counting implemention - so that reference counts are shared correctly amongst their - various owners. This requires making a deep copy the "header" - portion, but a shallow copy of the "data." - - * ace/Message_Block.cpp (ACE_Message_Block): Updated all three - ACE_Message_Block constructors so that they all call the init() - method. This centralizes all the initialization logic in one - place. - -Thu Jan 2 00:42:21 1997 Douglas C. Schmidt - - * ace/Message_Block.cpp (ACE_Message_Block): Make sure to set the - cont_ field to 0 after "releasing" it so that we don't - mistakenly think it's still around later on. This problem arose - in the ACE_Message_Queue::close() method, which was trying to - count the number of bytes being freed. - - * ace/Message_Queue.cpp (close): Fixed a subtle bug where we - weren't actually deleting messages from the - ACE_Message_Queue::close() routine. This should work now... - - * ace/Message_Queue.cpp (close): Replaced the use of "delete mb" - with "mb->release()" since the Message_Blocks are now reference - counted. - - * ace/Message_Block: Enhanced the reference counting scheme so - that you can increment and decrement the count by an arbitrary - amount. This is particular useful when you know you'll be - sending the same Message_Block to N consumers. - - * ace/Singleton: The dump() must be used same as instance() - (without supplying an object) so it must be declarated *static*, - i.e., - - static void dump (void); - - Thanks to Sandro Doro for reporting - this. - - * examples/ASX/Event_Server: Completely rewrote and retested the - ACE Event Server example. The new code is *much* easier to - understand, has many more comments, is more robust, and compiles - much faster since I removed many of the templates. - - * examples/ASX/Event_Server/Tranceiver/tranceiver.cpp: Fixed the - tranceiver so that it shuts down correctly when the Event_Server - exits. - - * examples/Connection/non_blocking/CPP-connector.cpp: Fixed a - problem where we were trying to select() on ACE_STDIN on Win32. - Naturally, this doesn't work, so we used the - ACE::register_stdin_handler() to fix this. Thanks to - Samuel_Bercovici - for reporting this. - - * examples/ASX/Event_Server/Event_Server/Options: Changed the - Options class to be a Singleton... - - * ace/Task.h: Added "const" method qualifier to accessor methods - like is_reader() and is_writer(). - -Wed Jan 1 00:10:47 1997 Douglas C. Schmidt - - * ace/Message_Block: Added a new static release() method that - behaves like the non-static method release(), except that it - checks if is 0. This is similar to CORBA::release(), which - is useful if you want to eliminate lots of checks for NULL - pointers before calling release() on them. - - * Updated all places in ACE where we use - ACE_Event_Handler::READ_MASK when we should be using - ACE_Event_Handler::ACCEPT_MASK. - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - Changed the name of the acceptor class from Handle_Thr_Stream to - Handle_Thr_Acceptor, which is more accurate. - - * ace/Reactor: Since we've now got an - ACE_Event_Handler::ACCEPT_MASK (intended primarily to accept - connections asynchronously using Win32 overlapped I/O) we can - now use this with the ACE_Reactor, as well. In particular, any - time that we are registering a "passive-mode" socket acceptor we - can now specify ACE_Event_Handler::ACCEPT_MASK. This is much - more intuitive than using the READ_MASK (which never made any - sense...). The ACE_Reactor now treats the ACCEPT_MASK as a - READ_MASK internally, so you can still use READ_MASK if you'd - like (i.e., this change doesn't break any existing code). - - * ace/Event_Handler: Changed "get_priority" and "set_priority" to - simply "priority(void)" and "priority(int)" to be more - consistent with other parts of ACE. - - * apps/Gateway/Gateway: Updated the Gateway so that the - concurrency strategies can now be specified on the - command-line (or in the svc.conf file), rather than being - determined at compile-time. This is much more flexible. - See the ./apps/Gateway/Gateway/README file for details. - - * apps/Gateway/Gateway: Verified that all the multi-threading - strategies still work. - - * ace/Message_Block.cpp (ACE_Message_Block): Make sure that we - "release" the continuation field, rather than delete it, since - its reference count may be > 1. - - * ace/Log_Msg.cpp (log): Change the abort_prog logic a bit so that - we always print a message to stderr if we're exiting, - regardless... Thanks to David Levine for pointing this out. - - * apps/Gateway/Gateway: Moved all of the configuration file - parsing logic *outside* of the Event_Channel into the Gateway - class so that we wouldn't have unnecessary dependencies. - - * apps/Gateway/Gateway: Redesigned the Gateway so that the - Proxy_Handlers (i.e., the Consumer_Proxy and Supplier_Proxy) - most of their work to the Event_Channel. This "lightweight - proxy" design is an improvement since it is now possible to - emulate the COS Event Channel semantics within the Event_Channel - "kernel." - - * Happy new year! Let's start a new ChangeLog to celebrate the - new year. diff --git a/ACE/ChangeLogs/ChangeLog-97b b/ACE/ChangeLogs/ChangeLog-97b deleted file mode 100644 index da7e8bf2f84..00000000000 --- a/ACE/ChangeLogs/ChangeLog-97b +++ /dev/null @@ -1,9182 +0,0 @@ -Tue Nov 25 16:18:49 1997 David L. Levine - - * ACE version 4.4, released Tue Nov 25 16:18:49 1997. - -Tue Nov 25 16:03:09 1997 David L. Levine - - * Makefile: fixed Version.h generation to work properly when - $$beta is undefined. - -Mon Nov 24 10:33:34 1997 Douglas C. Schmidt - - * ACE version 4.3.56, released Mon Nov 24 10:33:34 1997. - -Sun Nov 23 13:32:02 1997 David L. Levine - - * ace/IOStream.h: removed DIGITAL_UNIX from #include decision, - so now it just depends on DEC_CXX and its version. Thanks to - Dani Flexer for this fix. - - * netsvcs/lib/Server_Logging_Handler.cpp: updated template - instantiations to match recent change to Server_Logging_Handler_T.h. - -Sat Nov 22 19:16:35 1997 - - * tests/Process_Strategy_Test.cpp: - - main: Removed signal handling code. It is unnecessary since we - do not use kill() anymore. - - Process_Strategy: This subclass of ACE_Process_Strategy - overwrites the process creation method to include connection - counting. - - connection_completed: Made sure that the Reactor is woken up - after all the connections have completed. - - * ace/Priority_Reactor.cpp (init_bucket): Removed extra code. - - * ace/Acceptor.cpp (activate_svc_handler): open svc_handler only - if result is 0. Also removed extra tracing code. - - * ace/Handle_Set.i (reset): Purify is reporting a UMR - (uninitialized memory copy) when copying a Handle_Set. This - comes from the mask fd_set not being memset to 0 by FD_ZERO. - This is therefore a harmless error. - - * tests/Priority_Reactor_Test.cpp (main): The ordering of - auto_ptrs is very subtle.... "auto_ptr reactor" - should come before "auto_ptr impl", i.e., - the implementation should be destroyed *before* the forwarding - class. This is apparent when the implementation class is - removing registered event handlers that hold a pointer to the - forwarding class. - -Sat Nov 22 16:04:07 1997 Carlos O'Ryan - - * ace/Message_Queue.cpp: - Fixed some formating problems in the ACE_Message_Queue::dump - method, thanks to Arturo Montes for - finding this one. - -Sat Nov 22 14:38:22 1997 Steve Huston - - * ace/config-aix-4.2.x.h: Added ACE_TLI_TCP_DEVICE "/dev/xti/tcp". - This fixes Riverace problem ID P32; AIX now joins HP-UX in - supporting XTI/TLI, but not everything (problem P27). - - * ace/UPIPE_Connector.h: - * ace/TLI_Connector.h: Added meta-type information PEER_ADDR and - PEER_STREAM. Fixes Riverace problem ID P37. - - * apps/JAWS/server/HTTP_Server.cpp: Added 'const' to "char *prog". - Fixes Riverace problem P36. - - * examples/Connection/misc/test_upipe.cpp: - * examples/Connection/non_blocking/CPP-connector.cpp: - * examples/Threads/process_mutex.cpp: - * examples/Threads/process_semaphore.cpp: - Added 'const' to "char *" - can't initialize a char * with - a const string. Fixes Riverace problem ID P38, P40. - - * examples/Threads/thread_specific.cpp, tss1.cpp: Moved the Errno - class out to a new file, thread_specific.h. AIX xlC needs to have - the class in a .h file for template generation. Fixes Riverace - problem P42. - * examples/Threads/Makefile: Make sure that, on AIX, the tempinc - directory is cleared before building each new program. - - * performance-tests/Synch-Benchmarks/Makefile: Changed SHLIB to use - $(SOEXT) rather than .so. Fixes Riverace problem ID P41. - - * tests/Thread_Pool_Test.cpp: Moved 'this->getq(mb)' out of an - ACE_ASSERT. Thanks to Arturo Montes - for finding this. - -Sat Nov 22 05:44:10 1997 Nanbor Wang - - * tests/Process_Strategy_Test.cpp (main): Shuffled things around - in fork() block. This is fun. - - * ace/Strategies_T.cpp (activate_svc_handler): Added an - ACE_UNUSED_ARG macro to muffle g++. - - * tests/Process_Strategy_Test.cpp (handle_close): Added a return - type specifier. Without it, g++ laments. - - * ace/Acceptor.cpp (activate_svc_handler): Should be if (open (...) == - -1) then error, not if (open (...) != -1) then error. - - * ace/ACE.cpp (set_handle_limit): Removed a duplicated ACE_TRACE - macro. - -Sat Nov 22 00:26:11 1997 Nanbor Wang - - * ace/Thread_Manager.cpp (close): Activated automatic wait on - close functionality. I think I get it right this time. - -Fri Nov 21 19:59:37 1997 Carlos O'Ryan - - * ace/IPC_SAP.cpp: - Added a couple of ACE_NOTREACHED protections. Thanks to Brian - Mendel for reporting this. - -Fri Nov 21 17:12:48 1997 - - * ace/Thread_Manager.cpp (close): Deactivated automatic wait on - close for now. It doesn't seem to work on Solaris. - - * ace/Thread_Manager.{h,cpp} (wait): Added codes to remove detached - threads. This function can be activated selectively. I added - this so we can ignore detached threads when closing down the - default thread manager. - - (close): Activated the code to wait (join) all threads managed - by the thread manager. It will ask wait function to remove all - detached thread first (and so they won't be counted into threads - we are waiting for.) - -Fri Nov 21 13:22:25 1997 Douglas C. Schmidt - - * ACE version 4.3.55, released Fri Nov 21 13:22:25 1997. - -Fri Nov 21 12:18:28 1997 Douglas C. Schmidt - - * ace/Acceptor.cpp,Strategy_T.cpp: Removed the use of gotos. See - Dijkstra '67 for motivation... - - * tests/Process_Strategy_Test.cpp (open): Make sure that we set - the Reactor of the Svc_Handler to 0 if we're running the - threading test. - - * tests/Reactor_Notify_Test.cpp: Added back THR_BOUND to - make things work on Solaris. - -Fri Nov 21 02:23:47 1997 - - * tests/Process_Strategy_Test.cpp: - - - The event loop execution was based on a fragile timeout - mechanism. This was changed to a more robust mechanism that - counts the connections. - - - The unlinking of the file was moved from the server to the - client. This is necessary since there maybe multiple server - processes that cannot really coordinate when the file should - be removed. - - * ace/Strategies_T.cpp (ACE_Concurrency_Strategy): - ACE_Concurrency_Strategy and all three of the subclasses - (ACE_Reactive_Strategy, ACE_Process_Strategy, and - ACE_Thread_Strategy) were messed up. Only ACE_Reactive_Strategy - was (trying) to set the correct blocking mode of the socket. - Therefore, moved the socket mode setting code to the base class, - ACE_Concurrency_Strategy, so that all the classes can share it. - - This did create one problem though. If the implementation of - the reactor uses event associations (i.e., WFMO_Reactor), we - cannot try to set the socket mode since the registration of the - svc_handler caused an event association to be created for the - socket and by default (thanks Microslush) the socket is set to - non-blocking mode. If the user is excepting to have a socket in - blocking mode, he is in for a surprise. Maybe we should return - a failure if the user is expecting a socket in blocking mode. - This is probably too harsh for now. - - * tests/Future_Test.cpp (open): Added THR_DETACHED since we don't - wait for this thread. - - * tests/Reactor_Notify_Test.cpp (open): Changed THR_BOUND to - THR_DETACHED since we don't wait for this thread. - - * tests/IOStream_Test.cpp (server): Make sure to close the socket - in ACE_SOCK_Acceptor and ACE_SOCK_IOStream. - - * ace/WFMO_Reactor.cpp (open): When I changed open() last, I - ignored the order of the registeration of notify_handler_ and - wakeup_all_threads_handler_. Unfortunately, the order of the - two registrations is very important since the optimization for - owner thread takes advantage of this ordering. Therefore, - revert the order of registertion to notify_handler_ followed by - wakeup_all_threads_handler_. - - * tests/version_tests/run_all_tests.bat: Added new bat file to - make the running of all the different configurations easier. - - * tests/version_tests/version_tests.{mak,mdp}: Added a mammoth - testing scheme that is used to test all 8 configurations of the - tests under Win32. These 8 configurations are: - - DLL Debug - DLL Release - DLL Unicode Debug - DLL Unicode Release - static Debug - static Release - static Unicode Debug - static Unicode Release - - run_tests.bat from the test directory can then be used to run - these various configurations. run_tests.bat was also extended - to allow the user to purify the tests. Simply execute - run_tests.bat with the purify command line option. - -Thu Nov 20 17:43:15 1997 - - * ace/Thread_Manager.cpp (kill_thr): Changed to prevent thread - manager from "discard" a thread when a certain operation is not - supported by the operation system. Removed the mechanism that - preserves errno during "thread removal." We no longer remove - thread right after an error occured. - -Thu Nov 20 17:53:35 1997 Douglas C. Schmidt - - * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): Make - sure make sure that the semaphores created by the program are - released as well as the storage files deleted. Thanks to Tom - Arbuckle for reporting - this. - - * ace: Added a new version of config-osf1-3.2.h. Thanks to Dani - Flexer for updating this. - -Thu Nov 20 18:22:24 1997 Steve Huston - - * ace/README - ace/TLI.h - ace/TLI_Acceptor.h - ace/TLI_Connector.h - Changed from using hardcoded "/dev/tcp" as the XTI device name to - a new config-related define, ACE_TLI_TCP_DEVICE. If the config - doesn't set one, it defaults to "/dev/tcp". Thanks to Steve Coy - for zeroing in on this problem in HP-UX. - - ace/config-hpux-10.x.h: ACE_TLI_TCP_DEVICE is "/dev/inet_cots". - Note that XTI won't work 100% well on HP still - this is Riverace - problem ID P27. - - * netsvcs/lib/Server_Logging_Handler_T.h: Hardcoded to always use - ACE_SOCK_Stream (and friends) rather than ACE_TLI_Stream and friends. - XTI doesn't work real well on some platforms (particularly HP-UX - and AIX). When they're fixed, this can be undone (Riverace problem - ID P28). - - * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: Changed 'char *host' to - 'const char *host' so it can be initialized from a const char string. - -Thu Nov 20 14:19:57 1997 Carlos O'Ryan - - * tests/Priority_Reactor_Test.h: - * tests/Priority_Reactor_Test.cpp: - The test has a limited execution time now, and only reports a - warning if runs out of time. This may be due to some failed - connections, but it is hard to avoid that. On the other hand - the default time should be large enough, in our machines the - test only takes 14 seconds, so 60 seconds should be enough. - NOTE: this problem reveals a problem *only* in the test itself - not in ACE_Priority_Reactor. - -Thu Nov 20 11:29:51 1997 David L. Levine - - * ace/Timer_{Heap,List}_T.{h,cpp}: added - ACE_Timer_{Heap,List}::get_first () accessors. Thanks to - Stephen Henry for this suggestion. - -Thu Nov 20 11:27:44 1997 Douglas C. Schmidt - - * ACE version 4.3.54, released Thu Nov 20 11:27:44 1997. - -Thu Nov 20 10:45:08 1997 - - * tests/MT_SOCK_Test.cpp: Uncommented socket close call. - - * ace/WFMO_Reactor.cpp (open): Open the notification handler - *after* the timer queue has been created. - - * ace/ACE.cpp (get_ip_interfaces): Changed rep() to fast_rep() to - prevent memory leak. - - * ace/Reactor.cpp (ACE_Reactor): Fixed error of not creating any - Reactors on UNIX. - -Thu Nov 20 08:36:54 1997 Nanbor Wang - - * ace/Thread_Manager.{h,cpp}: Added a dummy argument to internal - thread functions. Without them, MSVC wrongly optimizes codes - and the stack were all clobbered when entering these functions. - -Wed Nov 19 23:24:03 1997 - - * ace/Reactor.cpp: Rearragned macros so we use Select_Reactor as - default if we don't have Winsock2. Irfan did it, not me. - -Wed Nov 19 22:11:20 1997 Douglas C. Schmidt - - * ACE version 4.3.53, released Wed Nov 19 22:11:20 1997. - -Wed Nov 19 15:55:52 1997 Sumedh Mungee - - * config-netbsd.h: NetBSD 1.3alpha has a better MSYNC. Commented out - ACE_HAS_BROKEN_NETBSD_MSYNC - -Wed Nov 19 14:26:36 1997 Nanbor Wang - - * stdcpp.h, OS.h: Changed ACE_CONFIG_H to ACE_USER_CONFIG_H. It - conflicts with the macro in various configuration files. - -Wed Nov 19 15:55:45 1997 Douglas C. Schmidt - - * ace/config-sunos5.*.h: Replaced all uses of ACE_HAS_UNICODE with - ACE_HAS_XPG4_MULTIBYTE_CHAR. At this point, I think only NT has - the UNICODE macro now. Thanks to Steve Huston for validating - this. - - * STL/bstring.h: Added a special-case for BorlandC++. However, I - think this can be generalized for all compilers. Thanks to - Valik Solorzano Barboza for reporting this. - - * ace/OS: Fixed strpbrk() to handle the const char * and char * - cases of ANSI C++. Thanks to Valik Solorzano Barboza - for reporting this. - - * ace/OS.h: Added a special case for _MSC_VER since BC++ doesn't - have wchar.h! Thanks to Valik Solorzano Barboza - for reporting this. - -Wed Nov 19 13:43:33 1997 Darrell Brunsch - - * Merged the purify testing into run_tests. Just use - - "run_tests purify ..." - - to purify instead of running the tests. If you thought this - batch file looked bad before.... - -Wed Nov 19 12:17:50 1997 Nanbor Wang - - * ace/{OS,stdcpp}.h (ACE_CONFIG_H): Added this macro to protect - config.h from getting included multiple times. - - * ace/stdcpp.h: Reverted include OS.h back to config.h. - -Wed Nov 19 09:20:05 1997 Douglas C. Schmidt - - * ACE version 4.3.52, released Wed Nov 19 09:20:05 1997. - -Wed Nov 19 07:54:44 1997 Douglas C. Schmidt - - * ace/ACE.cpp (crc32): Reverted the COMPUTE macro back to its - original value. For some reason, the version given by Valik was - failing. - - * ace/SV_Semaphore_Complex.cpp (open): Make sure initialize the - sem_number_ data member, though this isn't actually used for - anything. - - * ace/ACE.cpp: Added a #ifdef for __unix since this is the only - case where we'll actually have the ifreq autoptr. Thanks to - Valik Solorzano Barboza for reporting this. - - * ace/Log_Record.cpp (print): Added a work around for a really - lame bug with BORLANDC. Thanks to Valik Solorzano Barboza - for reporting this. - -Wed Nov 19 04:22:38 1997 Douglas C. Schmidt - - * ACE version 4.3.51, released Wed Nov 19 04:22:38 1997. - -Wed Nov 19 04:02:09 1997 Douglas C. Schmidt - - * include/makeinclude/rules.local.GNU (show_uninit): It seems - there was a missing '@' at the beginning of the line. Thanks to - Hans Rohnert for reporting this. - - * tests/Process_Strategy_Test.cpp (handle_input): Fixed Irfan's - code, which keeps breaking ACE ;-). - -Wed Nov 19 01:55:06 1997 - - * ace/WFMO_Reactor.cpp (resume_handler_i, suspend_handler_i, - unbind_i): Since things don't happen immediately in the - WFMO_Reactor world, we must make sure that this request is not a - duplicate. If so we must ignore it. - - * ace/Asynch_Acceptor.cpp (open): Fixed addr type mismatch problem. - - * tests/UPIPE_SAP_Test.cpp (main): Make sure to close the socket - in ACE_UPIPE_Acceptor. - - * tests/SPIPE_Test.cpp (server): Make sure to close the socket in - ACE_SPIPE_Acceptor. - - * tests/SOCK_Test.cpp (spawn): Make sure to close the socket in - ACE_SOCK_Acceptor. - - * tests/Reactor_Notify_Test.cpp (Supplier_Task): Make sure to - close the pipe down. - - * tests/Process_Strategy_Test.cpp (handle_input): Fixed ACE_DEBUG - statement to pass the correct number of arguments. - - * tests/MT_SOCK_Test.cpp (spawn): Make sure to close the socket in - ACE_SOCK_Acceptor. - - * tests/Reactor_Exceptions_Test.cpp (main): Make sure to close the - socket in ACE_SOCK_Dgram. - - * tests/run_purify_tests.bat: Added "mkdir purify_results". - - * tests/run_tests.bat, run_purify_tests.bat: Changed explicit name - of bat file (e.g., run_tests, run_purify_tests) to %0. This - will allow the bat file to be used from other directories. - - * ace/config-win32-common.h: Removed extraneous define of - ACE_HAS_TEMPLATE_INSTANTIATION. - -Wed Nov 19 00:37:22 1997 - - * ace/stdcpp.h: Changed to use "ace/OS.h" instead of using - "ace/config.h" directly to avoid redefinition of user defined - macros. - - * ace/Log_Msg.cpp (close): Disable Win32 to delete - ACE_Log_Msg::instance (). On Win32, this should be done by - ACE_TSS_Cleanup. - - * ace/OS.cpp (cleanup_tss): Enabled Win32 to call - ACE_Log_Msg::close. This is required to properly release - resourses held by ACE_Log_Msg_Manager. - -Tue Nov 18 19:28:36 1997 Douglas C. Schmidt - - * ace/Select_Reactor.cpp (unbind), - ace/WFMO_Reactor.cpp (handle_signal): Fixed a large number of - bugs with non-portable "scope of the for loop counter"... - Thanks to Valik Solorzano Barboza for - reporting this. - - * ace/Thread_Manager: Added == and != operators for - ACE_Thread_Descriptor to fix things with BORLANDC's template - mechanism. Thanks to Valik Solorzano Barboza - for reporting this. - - * ace/Select_Reactor: Added == and != operators for - ACE_Event_Tuple to fix things with BORLANDC's template - mechanism. Thanks to Valik Solorzano Barboza - for reporting this. - - * ace/OS.i (tempnam): Fixed a typo -- WIN32 should be ACE_WIN32. - Thanks to Valik Solorzano Barboza for - reporting this. - - * ace/OS.h: Reordered the ACE_SEH_* macros so they work correctly - with BORLANDC. Thanks to Valik Solorzano Barboza - for reporting this. - - * ace/OS: Added operator== and operator!= for ACE_Cleanup_Info so - that it will work correctly with BORLANDC's template mechanism. - Thanks to Valik Solorzano Barboza for - reporting this. - - * ace/config-win32-common.h: Added - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION for BORLANDC. Thanks to - Valik Solorzano Barboza for reporting this. - - * ace/Filecache.cpp: Fixed a bug with BORLANDC. Thanks to Valik - Solorzano Barboza for reporting this. - - * ace/ACE.cpp (crc32): Added some parens to the COMPUTE macro to - make it easier to grok. Thanks to Valik Solorzano Barboza - for reporting this. - -Tue Nov 18 16:27:32 1997 - - * ace/Log_Msg.cpp (log): Added a %D option to Log_Msg for - "month/day/year hour:minute:second:microsecond". Thanks to John - Mulhern <9107@MN3.LAWSON.lawson.com> for suggesting this. - - * ace/config-win32-common.h: If __ACE_INLINE__ is defined to be 0, - we will undefine it. - -Tue Nov 18 15:59:37 1997 Steve Huston - - * ace/IOStream.cpp: In underflow() and overflow(), use base() to - check for buffer in use in every case - not just without - ACE_HAS_STANDARD_CPP_LIBRARY==1. Thanks to James CE Johnson - (jcej@lads.com) for this fix. - - * tests/MT_SOCK_Test.cpp: Allow the test to run even if not all of - the proceses can be forked. - -Tue Nov 18 15:27:37 1997 Nanbor Wang - - * ace/Timer_Queue_Adapters.cpp: Reordered include files. Thanks - to Torbjorn Lindgren for noticing the problem. - -Tue Nov 18 11:40:18 1997 Steve Huston - - * ace/IOStream.(cpp h): Added: &&(ACE_HAS_STANDARD_CPP_LIBRARY != 0) - to the #if defined (ACE_HAS_STANDARD_CPP_LIBRARY) lines to only use - the new iostreams things if that's been selected by the config file. - In ACE_Streambuf::overflow(), changed: - if (!eback()) to if (!pbase()) - -Tue Nov 18 08:23:53 1997 Douglas C. Schmidt - - * tests/Thread_Pool_Test.cpp (open): Moved the activate() method - from the Thread_Pool constructor to the open() hook since the - Thread_Pool class invoked ACE_Task::activate, indirectly invokes - Thread_Pool::svc. There existed a miniscule probability this - code would have crashed since on extremely broken C++ compilers - the virtual member function Thread_Pool::svc may not correctly - initialized in Thread_Pool constructor (i.e., it might point to - ACE_Task_Base::svc() at this point). The chance of this - happening is incredibly remote, but it's still a good ideal to - put the call in the open() method so we can check the return - value in the application. Thanks to Arturo for pointing this - out. - -Tue Nov 18 05:40:53 1997 David L. Levine - - * ace/OS.cpp (inet_aton): on Chorus only, use the native - ::inet_aton (). Thanks to Wei for pointing this out. - - * ace/OS.cpp (gethostby{addr,name}): on VxWorks only, don't htonl - the input address because it already should be in network byte - order. Store the output address in network byte order. Thanks - to Wei for noticing this error. - - * include/makeinclude/wrapper_macros.GNU: add -DACE_PURIFY to - CFLAGS if purify make flag is set, and -DACE_QUANTIFY if - quantify is set. Thanks to Chris Cleeland for this suggestion. - - * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): reordered - initializers to match declaration order. - - * etc/purify.solaris2: added suppression of pthread_setcanceltype - BSW. - -Tue Nov 18 00:11:26 1997 Douglas C. Schmidt - - * ACE version 4.3.50, released Tue Nov 18 00:11:26 1997. - -Mon Nov 17 22:35:22 1997 Douglas C. Schmidt - - * examples/Shared_Malloc/test_malloc.cpp: Added some additional - calls to Malloc::instance ()->remove () to cleanup all the - semaphore locks. Thanks to Tom Arbuckle - for reporting this. - - * ace/Memory_Pool.cpp (init_acquire): Fixed a problem caused by - failing to initialize the minimum_bytes_ field in the - ACE_Shared_Memory_Pool class. Thanks to Tom Arbuckle - for reporting this. - - * examples/Shared_Malloc/test_malloc.cpp: Updated the Shared - Malloc test program to use the Singleton Thread Manager. - -Mon Nov 17 18:09:06 1997 - - * All eight different configurations of ACE passed all tests on - our Alpha/NT. - -Mon Nov 17 15:37:52 1997 David L. Levine - - * ace/INET_Addr.cpp (get_host_name): on VxWorks only, moved - ::hostGetByAddr code block to _after_ the check for the - address being INADDR_ANY. Without that check, get_host_name () - never returns the caller's own hostname. - - * netsvcs/lib/Makefile: the first line of the Local Target - (Server_Logging_Handler.*) override mysteriously disappeared. - -Mon Nov 17 02:09:57 1997 Douglas C. Schmidt - - * ACE version 4.3.49, released Mon Nov 17 02:09:57 1997. - -Mon Nov 17 02:03:21 1997 Douglas C. Schmidt - - * ace/IOStream_T.cpp: Added a few more fixes for KCC C++ and its - standard C++ library support. - -Mon Nov 17 01:34:34 1997 - - * netsvcs/servers/main.cpp (main): Removed daemon and changed to - use the singleton service configurator. Thanks to John Mulhern - and Stephen Coy for tracing this down and Irfan for coming out - with the fix. - -Sun Nov 16 21:58:51 1997 Darrell Brunsch - - * tests/*.dsp, ace/*.dsp: Added Release, Unicode Debug, and - Unicode Release versions for each of the tests. - - Also found out that precompiled headers take up insane - amounts of disk space when used with ACE and also slows - the compilation down. I turned it off for the tests and - for the ace libraries - -Sun Nov 16 13:34:29 1997 Douglas C. Schmidt - - * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking): - Changed the line - - status = con.complete (sock); - - to - - if (sock.get_handle () != ACE_INVALID_HANDLE) - status = con.complete (sock); - - The change worksaround a core dump due the the following - conditions: - - - the find_another_host function in SOCK_Connector_Test comes - up with the entry for an NT machine. - - - the ACE_OS::connect call at line 64 of SOCK_Connector.cpp - "successfully" fails returning -1 but in this case - errno is set to ECONNREFUSED. - - - Since errno is not EINPROGRESS or EWOULDBLOCK the - ACE_SOCK_Stream 'new_stream' close member function is called - which, besides closing the "handle", also sets it to - ACE_INVALID_HANDLE. - - - Since the errno was ECONNREFUSED the 'if' test at line 97 of - SOCK_Connector_Test.cpp is true and the next statement - - status = con.complete (sock); - - is called causing a core dump since sock.get_handle() is - ACE_INVALID_HANDLE (-1 on Solaris). - - Thanks to Jack Erickson for reporting this. - - * ace/OS: Cast away the constness of the parameters to _tempnam() - for Borland C++. Thanks to Valik Solrzano Barboza - for this. - - * ace/config-unixware-2.1.2-g++.h: Changed - ACE_HAS_OSF1_GETTIMEOFDAY to ACE_HAS_SVR4_GETTIMEOFDAY. Thanks - to John Connett for reporting this. - - * ace/SPIPE_Addr.cpp (set): Fixed a problem where we were - potentially writing into character constants. Thanks to Darrell - Brunsch for finding this. - - * ace/Get_Opt.cpp (operator): We need to make sure that all uses - of ACE_OS::strchr() are consistent with respect to const - correctness. Thanks to Darrell Brunsch for finding this. - - * ace/config-win32-common.h: Added a few minor changes for Borland - C++. Thanks to Valik Solrzano Barboza for - this. - - * ace/Log_Record.cpp (print): Changed the formal parameter from - "const char host_name[]" to "const char *hostname" so that we - can assign this in the function if necessary. Thanks to Valik - Solrzano Barboza for this. - - * ace/OS.cpp: Moved the constructor for ACE_Cleanup_Info into the - OS.cpp since it doesn't really need to be inline. - - * ace/WFMO_Reactor.cpp (notify): Replaced a "sizeof - ACE_Notification_Buffer" with "sizeof - (ACE_Notification_Buffer)". It's odd that the first approach - (which is incorrect) isn't flagged by MSVC++... Thanks to Valik - Solrzano Barboza for this. - - * ace/OS.i (sema_init): Added an ACE_ALLOCATOR_RETURN in the - appropriate spot. - - * ace/ACE.cpp: Moved the implementation of strsplit_r() into the - ACE.cpp file since it's rather long... - - * ace/OS: To be more conformant to the standard C++ library, - I've added a pair of methods for strstr(), strchr(), strrchr(), - etc. e.g., the function signature strstr(const char*, const - char*) is replaced by the two declarations: - - const char *strstr (const char* s1, const char* s2); - char *strstr (char* s1, const char* s2);" - - Thanks to Valik Solrzano Barboza for this. - - * ace: Added "ace.idl", which is a config file for Borland C++ - 5.x. Thanks to Valik Solrzano Barboza for - this. - - * include/makeinclude/platform_linux_kcc.GNU (SOFLAGS): Improved - this file a bit to work better with NULL pointers. Thanks to - Ben Eng for reporting this. - - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp (main): - Changed allocator to alloc to avoid conflicts with STL. Thanks - to Ben Eng for reporting this. - - * ace/config-linux-kcc.h: Added some fixes for the KCC compiler. - Thanks to Ben Eng for reporting this. - - * ace/IOStream: Added fixes for the standard C++ library. Thanks - to Ben Eng for reporting this. - -Sat Nov 15 17:31:58 1997 Douglas C. Schmidt - - * Ran "make depend" on all of ACE. - -Sat Nov 15 15:55:52 1997 Steve Huston - - * tests/Priority_Reactor_Test.cpp: Removed the writer->peer().close() - call from client() that I added yesterday. ACE_Svc_Handler::destroy - will end up doing the close - thanks to Irfan for pointing this out. - -Sat Nov 15 01:31:58 1997 Douglas C. Schmidt - - * ACE version 4.3.48, released Sat Nov 15 01:31:58 1997. - -Fri Nov 14 23:36:12 1997 Chris Cleeland - - * ace/{OS,ACE}.{h,i} (strsplit_r): Moved strsplit_r from ACE_OS to - ACE, which is where it should go. - - * ace/ACE.cpp (ldfind): Changed uses of strsplit_r to be scoped - under ACE rather than ACE_OS. - -Fri Nov 14 22:57:04 1997 David L. Levine - - * ace/config-vxworks*.h: added ACE_LACKS_NETDB_REENTRANT_FUNCTIONS. - This is necessary for the gethostby{addr,name}_r support added - yesterday. - -Fri Nov 14 18:42:23 1997 Steve Huston - - * tests/Priority_Reactor_Test.cpp: Fixed client to close its socket - before exiting from the thread/process. - -Fri Nov 14 17:41:40 1997 Douglas C. Schmidt - - * ace/OS.i: Fixed some typos in strsplit_r(). - - * ace/OS.h: Moved the ACE_ALLOCATOR* stuff from Malloc_T.h to - OS.h, which is where it belongs. - - * examples/Reactor/Dgram: Reformatted some of the example - code to make it more readable. - -Fri Nov 14 17:08:00 1997 Chris Cleeland - - * ace/OS.i (strsplit_r): Added fixes so that this properly returns - the last piece. Thanks to Scott Herscher for - submitting this! Also beefed up the comments. - - * ace/OS.h: Added definitions to work around VxWorks' lack of - proper ANSI C/C++ prototypes for the functions found in - . The definitions were taken from Solaris 2.5.1, but - appear to work just fine. For now this is only in effect when - compiling with the Green Hills (ghs) environment, but it should - probably be used for others (such as g++) as well. - -Fri Nov 14 01:10:33 1997 Douglas C. Schmidt - - * ACE version 4.3.47, released Fri Nov 14 01:10:33 1997. - -Fri Nov 14 00:14:21 1997 David L. Levine - - * ace/OS.* (gethostbyaddr_r,gethostbyname_r): added VxWorks - support. - -Thu Nov 13 20:29:18 1997 Douglas C. Schmidt - - * ACE version 4.3.46, released Thu Nov 13 20:29:18 1997. - -Thu Nov 13 19:11:36 1997 Douglas C. Schmidt - - * ace/config-sunos5.4.*: Solaris 2.4 doesn't support the ualarm() - call unless you use the (broken) /usr/ucb/cc compiler. Here's a - patch for $ACE_ROOT/ace/config-sunos5.4-sunc++-4.x.h to fix the - problem. Thanks to Caleb Epstein - for reporting this. - -Thu Nov 13 19:25:50 1997 Carlos O'Ryan - - * include/makeinclude/platform_irix6.x-sgic++.GNU: - Updated comment on when should the user disable the use of - -lpthread - -Thu Nov 13 18:18:16 1997 Steve Huston - - * ace/Containers.h, Containers.cpp, Hash_Map_Manager.cpp, Malloc_T.h: - Removed the conditional code for the macro - ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR. The workaround for - this compiler bug is to remove "this->" from the object pointer - used in the ACE_DES_FREE_TEMPLATE macro invocation. This compiler - bug is HP case SR5003396259 for future reference. - - * ace/config-hpux-10.x-hpc++.h: Added ACE_HAS_ANSI_CASTS; removed - ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR (both for aC++ only). - - * ace/README: Removed ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR, as - it is no longer used. - -Thu Nov 13 16:51:40 1997 - - * ace/OS.h: Added two new macros ACE_FACTORY_DECLARE and - ACE_FACTORY_DEFINE. Changed definitions of - ACE_SVC_FACTORY_DECLARE AND ACE_SVC_FACTORY_DEFINE to use these - two macros. Refer to changes of the ACE_Export related macros - below, you can now declare/define your service factories as, - - ACE_FACTORY_DECLARE (FOOBAR, fac_class); - ACE_FACTORY_DEFINE (FOOBAR, fac_class); - - This will ensure they get define properly and proper decoration - will be added. - -Thu Nov 13 16:52:31 1997 Nanbor Wang - - * ace/Thread_Manager.cpp: Removed all ! defined - (ACE_HAS_FSU_PTHREAD). Thanks to ARTURO MONTES - for reporting this. - - * ace/config-gcc-2.7.2.h: Added ACE_HAS_TEMPLATE_SPECIALIZATION. - Thanks to ARTURO MONTES for reporting - this. - - * ace/config-fsu-pthread.h: added ACE_LACKS_THREAD_PROCESS_SCOPING. - Thanks to ARTURO MONTES for reporting - this. - - * ace/OS.h: Separate definition of proper export flag for - platforms from setting these flags for building/not building - DLL. I keep ACE_Export and ACE_Svc_Export to remain backward - compatibality but now, they are defined using the new "common" - definition. This changes is made in hope that it will simplify - codes generated by TAO_IDL compiler. - - Several new directives are added to these file. These common - directives will be set to proper values (macros) according to - the platform we use. They are: - - ACE_Proper_Export_Flag - ACE_Proper_Import_Flag - ACE_EXPORT_SINGLETON_DECLATATION(T) - ACE_IMPORT_SINGLETON_DECLARATION(T) - ACE_PROPER_SINGLETON_INSTANTIATION(T) - - I use them to define ACE_Export and ACE_Svc_Export. I hope it - is easier to define your own export decoration flag now. Here - is an example. Say you want to define an export flag for your - DLL file : foobar.dll. First, you need to add the following to - a common header file: - - // Here are definition for FOO_BAR library. - #if defined (FOOBAR_HAS_DLL) && (FOOBAR_HAS_DLL == 1) - # if defined (FOOBAR_BUILD_DLL) - # define FOOBAR_Export ACE_Proper_Export_Flag - # define FOOBAR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) - # define FOOBAR_SINGLETON_INSTANTIATION(T) ACE_PROPER_SINGLETON_INSTANTIATION (T) - # else - # define FOOBAR_Export ACE_Proper_Import_Flag - # define FOOBAR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) - # define FOOBAR_SINGLETON_INSTANTIATION(T) - # endif /* FOOBAR_BUILD_DLL */ - #else /* ! FOOBAR_HAS_DLL */ - # define FOOBAR_Export - # define FOOBAR_SINGLETON_DECLARATION(T) - # define FOOBAR_SINGLETON_INSTANTIATION(T) - #endif /* FOOBAR_HAS_DLL */ - - Be sure to include "ace/OS.h" before these definitions so that - the macros they use will be properly initialized. After you've - done this, on Win32, define "FOOBAR_HAS_DLL=1" if you want to - build DLL, define it as "FOOBAR_HAS_DLL=0" if you want to build - static library. In your library project file, you must define - the directives FOOBAR_BUILD_DLL and decorate classes/objects you - want to export with FOOBAR_Export so that they can be declared - automatically according whether you are building/linking with - static library or dynamic library. - -Thu Nov 13 05:47:42 1997 David L. Levine - - * ace/Thread_Manager.cpp: added ACE_TSS_Singleton instantiation, for the recent Svc_Handler - change. - - * ace/Object_Manager.h (default_mask): moved out of ACE_MT_SAFE - protection. - - * ace/OS.{h,i},config-vxworks-ghs-1.8.h,README (strlen,strcpy): - protect declarations of wchar versions with - ACE_HAS_WCHAR_TYPEDEFS_CHAR. GreenHills typedefs wchar to char. - - * ace/Singleton.cpp: register ACE_TSS_Singletons for cleanup with - Object_Manager. - - * ace/OS.{i,cpp} (gethostbyaddr): added VxWorks support. - -Thu Nov 13 02:06:58 1997 Chris Cleeland - - * ace/Signal.i: Changed to use new Object Manager member. - - * ace/Object_Manager.cpp: Added a new member to the Object - Manager--default_mask. This is the default signal mask employed - by ACE_Sig_Set. Moving the object into the OM saves cycles b/c we - only construct it once and just re-use every time. - - * ace/Handle_Set.cpp: Added two new macros--ACE_DIV_BY_WORDSIZE and - ACE_MULT_BY_WORDSIZE--which either divide or multiply the argument - by ACE_Handle_Set::WORDSIZE. The manner in which this is - accomplished is governed by the #define - ACE_USE_SHIFT_FOR_EFFICIENCY--when defined, ACE tries to use - shifts to implement multiplication and division rather than actual - multiply and divide operations. Currently this is disabled. - -Wed Nov 12 19:13:05 1997 - - * ace/Svc_Handler: Changed hand written tss singleton to - ACE_TSS_Singleton. Lot of (unnecessary) code disappeared. - Thanks to David Levine for suggesting this. - - * ace/Object_Manager: Removed ACE_SVC_HANDLER_LOCK. - -Wed Nov 12 16:29:15 1997 Sumedh Mungee - - * platform_netbsd.GNU: added /usr/lib/c++rtO.o to SOBUILD to - insure that static objects' ctors are called. - -Wed Nov 12 00:20:38 1997 David L. Levine - - * ace/OS.{i,cpp} (inet_ntoa): use VxWorks' native inet_ntoa. It's - not documented but it works. - - * ace/OS.cpp (gethostbyname): on VxWorks, load static first_addr on - every call, not just the first. - - * include/makeinclude/rules.local.GNU: removed extra "fi" in - install operation. - - * include/makeinclude/platform_sunos5_sunc++.GNU: removed +w from - CFLAGS because it generates too many spurious warnings. - - * ace/TTY_IO.cpp (control): commented out unused local variable - c_line. Thanks to Amos Shapira for - reporting this. - - * ace/OS.{h,i} (hostname): added Chorus support. Thanks to Wei - for the patches. - -Tue Nov 11 23:44:17 1997 Douglas C. Schmidt - - * ACE version 4.3.45, released Tue Nov 11 23:44:17 1997. - -Tue Nov 11 21:26:36 1997 Douglas C. Schmidt - - * platform_sunos5_sunc++.GNU, platform_irix6.x-sgic++.GNU, rules.local.GNU: - Added some minor fixes. - -Tue Nov 11 20:18:27 1997 Douglas C. Schmidt - - * Makefile: Added the tests and netsvcs directory to - RELEASE_LIB_FILES since this is pretty important to determine - whether ACE works. Thanks to Chuck Gehr and Steve Coy for this - suggestion. - - * tests/UNIXclerk.conf: Changed "merengue" to "localhost." - Thanks to Steve Coy for this suggestion. - - * ace/config-lynxos.h (getopt): Missing 't' from const => see - getopt prototype parameter list. Thanks to Manojkumar Acharya - . - -Tue Nov 11 08:09:16 1997 David L. Levine - - * ace/OS.cpp (inet_aton): declare local ip_addr as an ACE_UINT32 - instead of a long. Real programmers have 64-bit longs. - - * ace/INET_Addr.cpp (get_host_name): added ACE_UNUSED_ARG (len); - for VxWorks only. - -Tue Nov 11 13:19:46 1997 Torbjorn Lindgren - - * include/makeinclude/rules.local.GNU: Fixed so that the ACE - makefiles doesn't create circular symlinks (happens if - something fails when building libACE.* with "make -k", or when - doing parallel builds). It's now possible to do parallel - builds of libACE.* without having to clean up a mess afterwards. - - * include/makeinclude/platform_irix6.x-sgic++.GNU: Removed - .so build with links instead (ace/apps/examples/tests and my own - programs all work well with this, and the manual seems to suggest - that it hasn't ever been necessary on this platform) - - * ace/config-irix6.x-sgic++-nothreads.h: Added - ACE_HAS_XPG4_MULTIBYTE_CHAR for SGI IRIX 6.[2-5]. - -Tue Nov 11 04:50:06 1997 Nanbor Wang - - * examples/Reactor/Multicast/server.cpp (handle_timeout): Fixed a - typo. Thanks to Sandro Doro for - reporting this. - -Tue Nov 11 04:20:09 1997 Douglas C. Schmidt - - * ACE version 4.3.44, released Tue Nov 11 04:20:09 1997. - -Tue Nov 11 01:44:39 1997 - - * examples/Naming/test_open.cpp (main): Added a new naming test - that binds to the net_local server and tries to bind entries to - it. - - * netsvcs/lib/Name_Handler.cpp: Added a new class called - Naming_Context. This helper class adds the correct default - constructor to the ACE_Naming_Context class so that we can use - it in ACE_Singleton. - - Previously, each Name_Handler was getting its own - Naming_Context. This is obviously incorrect as the mapping - address in already occupied by the first Name_Handler. - Therefore, the Naming_Context was changed into a Singleton - accessable by all Name_Handlers. - - * ace/WFMO_Reactor.cpp (handle_additions && handle_deletions): - Changed code to make sure that we should not make the upcall - until all the internal data structures have been updated. This - is to protect against upcalls that try to deregister again. - -Tue Nov 11 01:28:50 1997 Douglas C. Schmidt - - * ACE version 4.3.43, released Tue Nov 11 01:28:50 1997. - -Mon Nov 10 21:30:04 1997 Aniruddha Gokhale - - * INET_Addr.cpp: In the ACE_INET_Addr::get_host_name (char - hostname[], size_t len) method, an unnecessary local variable - called "name" was being used and the actual parameter "hostname" - was never getting updated. The local variable is now removed and - we use the actual parameter everywhere. - -Mon Nov 10 20:44:43 1997 James C Hu - - * etc/ACE-guidelines.html: Added a section for ACE Design Rules, - and added a design rule about sentinels. - -Mon Nov 10 18:11:05 1997 Sumedh Mungee - - * ace/Singleton.h (ACE_TSS_Singleton): Changed ACE_TSS to - ACE_TSS_TYPE (TYPE), so that the ACE_TSS_TYPE macro (defined in - OS.h) gets used. (Irfan's suggestion.) - -Mon Nov 10 17:02:40 1997 Douglas C. Schmidt - - * ace/OS.h: Reformatted the #ifdef structure of the - ACE_HAS_XPG4_MULTIBYTE_CHAR to conform to ACE usage. - - * ace/Service_Repository.cpp: The close() method needed a '\n' in - one of the debug messages. Thanks to Steve Coy for reporting - this. - -Mon Nov 10 14:09:24 1997 Steve Huston - - * ace/OS.h, OS.i, README: Added new macro, ACE_HAS_XPG4_MULTIBYTE_CHAR - for platforms which supply wchar.h and wide character functions. - Added the use if it in OS.h, and use the functions in OS.i, - strlen and strcpy with wchar_t arguments. - - * ace/config-hpux-10.x.h, config-aix-4.2.x.h, config-mvs.h, - config-sunos5.5-sunc++-4.x.h: Added ACE_HAS_XPG4_MULTIBYTE_CHAR. - -Mon Nov 10 13:33:02 1997 - - * ace/OS.h (ACE_WRITE_GUARD): Added macros for ACE_WRITE_GUARD and - ACE_READ_GUARD. Thanks to Brian Raven - for suggesting this. - - * tests/Thread_Mutex_Test.cpp: Modified version of Mutex_Test that - exclusively works on a Thread_Mutex. - - * tests/Mutex_Test.cpp: Removed this test. It have been - superseded by Thread_Mutex_Test and Process_Mutex_Test. - - * ace/OS.i (thread_mutex_trylock): Fixed the return value and - errno for this system call such that it is consistent with other - trylock calls. - -Mon Nov 10 10:21:55 1997 David L. Levine - - * ace/INET_Addr.cpp: updated gethostbyname/addr support for - Chorus. Thanks to Wei Chiang for - the patches for this fix. - - * ace/config-chorus.h: disabled ACE_LACKS_SOCKETPAIR. Thanks - to Wei for this fix, also. - - * tests/Thread_Mutex_Test.cpp (test): don't compile this function - if ACE_HAS_THREADS is not defined. - - * tests/IOStream_Test.cpp (main): removed extra % at end of - ACE_ERROR_RETURN message. - - * etc/ace_ld,include/makeinclude/platform_vxworks5.x_g++.GNU: - added ace_ld, a drop-in replacement for ld that supports munching. - We need to munch for VxWorks/g++. - - * ACE-INSTALL.html: updated VxWorks info to mention requirement - for perl with VxWorks/g++. And, LD_LIBRARY_PATH must be set - to find the ACE libraries on the host if using TAO. - -Sun Nov 09 23:29:43 1997 Douglas C. Schmidt - - * ACE version 4.3.42, released Sun Nov 09 23:29:43 1997. - -Sun Nov 09 22:18:30 1997 - - * ace/config-win32-common.h (ACE_HAS_ANSI_CASTS): VC++ compilers - support ANSI style casts. - - * ace/OS.h (ACE_static_cast): Added ANSI style cast macros to ACE. - Thanks to Stephen Coy for suggesting this. - -Sun Nov 9 21:34:16 1997 Douglas C. Schmidt - - * ace/OS: Enhanced ACE_OS so that it *always* defines - implementations for the wchar_t versions of strlen() and - strcpy(), even if the platform doesn't explicitly support - UNICODE. This is necessary since TAO needs these functions. - - * ace/OS.h: Added a typedef for wchar_t to handle the case where - the OS doesn't support UNICODE. - - * ace/ACE.cpp: Added hex character routines from TAO since they - are generally useful. - - * ace/OS.h: Moved the TAO-specific #defines into TAO, where they - belong. Thanks to David Levine and Chris Cleeland for insisting - on this... - -Sun Nov 09 17:55:50 1997 - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp (open): - Removed codes that reset a socket's non-blocking flag. This has - been taken care of by ACE_Acceptor::activate_svc_handler now and - resetting this flag twice on NT caused us grief. Thanks to - Georges Ata for reporting - the bug. - - * ace/ACE.i (hex2byte,nibble2hex): Replaced ACE_INLINE to inline - for these two functions. Functions in this file are always - inlined. - - * ace/config-win32-common.h (ACE_LACKS_RLIMIT): Added this flags - so we don't need to treat ACE_WIN32 specially. - - * ace/OS.i (getrlimit,setrlimit): Removed unnecessary conditional - flag ACE_WIN32. - - * ace/Thread_Manager.cpp (wait): Merged the two blocks within this - function so that we can avoid relase/acquire lock - unnecessarily. Thanks to Doug for his careful scrutiny. - -Sun Nov 09 09:27:24 1997 David L. Levine - - * ace/Thread_manager.cpp (wait): removed unused local, - threads_waited_on. - -Sat Nov 08 23:20:50 1997 Douglas C. Schmidt - - * ACE version 4.3.41, released Sat Nov 08 23:20:50 1997. - -Sat Nov 8 15:46:30 1997 Douglas C. Schmidt - - * ace/INET_Addr.cpp: Enhanced the get_host_name() functions so - that if the sin_addr.s_addr == INADDR_ANY we assume that we're a - server, and we return our "hostname". - - * Added a number of minor fixes for UNIXWARE with G++. Thanks to - Michael Rueger for reporting these. - - * ace/Thread_Manager.h: Both Irix5 and VxWorks have problems with - local typedefs with GCC. Thanks to Laura Paterno - for reporting this. - - * ace/Timer_Queue_Adapters.cpp: Changed some errant uses of lock_ - to mutex_. Thanks to David Levine for reporting this. - - * ace/ACE.cpp: set_handle_limit() was buggy because it never - increased the handle limit. With this change we do not need - special code in ACE_Select_Reactor with ACE_LACKS_RLIMIT because - this is managed in ACE::set_handle_limit. Thanks to Arturo for - this fix. - - * ace/Select_Reactor.cpp (open): We no longer need to - conditionally compile for ACE::set_handle_limit(). Thanks to - Arturo for this fix. - -Fri Nov 7 18:53:13 1997 Sumedh Mungee - - * ace/config-netbsd.h: Added file for NetBSD 1.2G. - - * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking): - Added ECONNREFUSED as a "valid failure", alongwith EWOULDBLOCK. - - * ace/OS.i (msync): msync on NetBSD takes only two parameters as - opposed to the usual three. (It doesnt have the "flags" - parameter.) The ACE_HAS_BROKEN_NETBSD_MSYNC flag works around - that. - -Fri Nov 7 16:04:35 1997 Douglas C. Schmidt - - * ace/Thread_Manager.cpp: Added a missing '>' for one of the - template specializations. Thanks to Torbjorn Lindgren - for reporting this. - - * ace/OS.cpp: ACE_OS::ACE_OS is defined in OS.cpp, which causes - the compiler to complain about multiple definitions. Other - ACE_CLASS_IS_NAMESPACE doesn't have constructors, which is why - they work. Thanks to Torbjorn Lindgren for - reporting this. - -Fri Nov 07 15:14:51 1997 David L. Levine - - * examples/Threads/tss1.cpp: replaced ACE_SYNCH_1 and _2 with - _DECL and _USE. - - * ace/config-linux{,-common}.h: created config-linux-common.h - and moved alpha-specific defines to it. - - * ace/FILE_Addr.cpp (set): explicitly declare int return type. - - * performance-tests/Misc/preempt.cpp (get_options): DEC CXX didn't - like conversion of -1 to u_int, so changed return type to int and - all ACE_ERROR_RETURNs to return -1. - -Fri Nov 07 10:05:12 1997 Douglas C. Schmidt - - * ACE version 4.3.40, released Fri Nov 07 10:05:12 1997. - -Fri Nov 7 09:58:09 1997 Douglas C. Schmidt - - * ace/Connector.cpp (fini): Added a call to - ACE_Map_Manager::close() in fini() since the destructor may not - be called. Thanks to Eric C. Newton for - reporting this. - - * ace/{FILE,SPIPE}_Addr.cpp (set): Added a return value. Thanks - to Marios Zikos for reporting this. - -Fri Nov 07 02:45:55 1997 Douglas C. Schmidt - - * ACE version 4.3.39, released Fri Nov 07 02:45:55 1997. - -Fri Nov 7 01:06:08 1997 Douglas C. Schmidt - - * ace/Message_Queue: Added a new method called deactivated(), - which returns true if the queue has been deactivated. Thanks to - Wei Chiang for reporting this. - - * ace/{config-chorus.h,OS.cpp}: Added a new macro called - ACE_CHORUS_DEFAULT_MIN_STACK_SIZE. Thanks to Wei Chiang - for reporting this. - - * ace/DEV_Addr.cpp, - ace/FILE_Addr.cpp, - ace/SPIPE_Addr.cpp, - ace/INET_Addr.cpp, - ace/UNIX_Addr.cpp: Fixed the set(const Foo &) method so that - it correctly detects cases where we're passed in a - ACE_Addr::sap_any. This is a total hack... - - * ace/{OS.h,Addr.cpp}: Added a new AF_ANY flag, which is set to -1. - -Thu Nov 6 23:05:14 1997 Douglas C. Schmidt - - * Changed the obtusely named ACE_SYNCH_1 and ACE_SYNCH_2 macros to - ACE_SYNCH_DECL and ACE_SYNCH_USE, respectively. Thanks to Mike - Kamrad for suggesting this. - - * ace/Select_Reactor.cpp, ace/ACE.cpp: Broaded the comparison so - that we only try to use {set|get}rlimit() if ACE_LACKS_RLIMIT is - *false*. Thanks to Arturo Montes for - reporting this. - - * ace/Object_Manager: Added support for - get_singleton_lock(ACE_Mutex *). Thanks to Arturo Montes - for reporting this. - - * ace/Connector.cpp: If connect_n() fails make sure to return -1. - Thanks to Stephen Coy for pointing out the - problem. - - * ace/config-sco-5.0.0.h: Removed the ACE_LACKS_RLIMIT flag. - Thanks to Arturo Montes for reporting - this. - - * tests: Changed all uses of "localhost" to - ACE_DEFAULT_SERVER_HOST. This solves some problems with MVS. - Thanks to Chuck Gehr for reporting - this. - - * examples/Timer_Queue: Changed COMMAND to CMD so it won't - conflict with the HP/YUX compiler. Thanks to Sandro Doro - for reporting this. - -Thu Nov 06 22:13:01 1997 - - * examples/Connection/blocking/SPIPE-connector.cpp (init): Fixed - odd looking typecast. - - * ace: Changed the comparison &local_sap == &ACE_Addr::sap_any to - local_sap == ACE_Addr::sap_any. Thanks to Steve Coy - for pointing out that the default - parameter const ACE_Addr &local_sap = ACE_Addr::sap_any will - cause a copy of sap_any to be made and passed to the method, - invalidating the memory address comparison. - - The following files were effected: - - Asynch_Acceptor.cpp - SOCK_Acceptor.cpp - SOCK_CODgram.cpp - SOCK_Dgram.cpp - TLI_Acceptor.cpp - TLI_Connector.cpp - - * ace/Addr.cpp: Made sure that the type and size of - ACE_Addr::sap_any does not match the type and size of any other - Addr type. This is necessary for local_addr==ACE_Addr::sap_any - to return 0 when local_addr is anything other than - ACE_Addr::sap_any. - - * ace/Synch_T.h: Fixed all the ACE_SYNCH_* defines. Thanks to - Matthias Kerkhoff for pointing the - problems. - -Thu Nov 06 18:30:42 1997 Steve Huston - - * ace/Addr.(h i), DEV_Addr.(h i), FILE_Addr.(h i), INET_Addr.(h - cpp), SPIPE_Addr.(h i), UNIX_Addr.(h i): Changed the operators - == and != to be non-virtual, and to accept the 'sap' argument as - its own type (not ACE_Addr for all of them). The - implementations of the operators compare type-specific data - without having to check the inherited type member. Thanks to - Steve Coy and Irfan and Nanbor for a huge - amount of work on these changes. *** NOTE - there is still some - SOCK_Connector problems related to these changes on HP-UX. The - hunt continues. - - * ace/Connector.cpp (connect_n): return -1 if any of the connect - attempts fail. - - * tests/Reactor_Performance_Test.cpp: Don't crash if any of the - client's connect attempts fail. - - * ace/Reactor.h: Added #include "ace/Handle_Set.h" - AIX needs the - class definition when generating templates in programs. - - * tests/Map_Manager_Test.cpp: Don't even try if the compiler doesn't - have template specialization working correctly. - - * tests/Priority_Reactor_Test.h: Added #include "ace/SOCK_Stream.h" - so AIX could generate template code correctly. - - * tests/Reactor_Performance_Test.cpp: Moved class definitions out to - Reactor_Performance_Test.h (new file) to allow AIX to generate - templates. - - * tests/SOCK_Connector_Test.cpp: Added a couple more checks to make - sure the local host is not the test target, and changed from using - port 4242 to 42000 (there is actually a program on AIX which listens - at port 4242). - - * tests/Thread_Manager_Test.cpp: Moved a class definition out to - Thread_Manager_Test.h (new file) to allow AIX to use it in template - generation. - - * tests/Timer_Queue_Test.cpp: Limit the number of iterations to 2000. - -Thu Nov 6 16:51:36 1997 Sumedh Mungee - - * tests/SOCK_Connector_Test.cpp (find_another_host): Added - ACE_NETBSD to the #if define around gethostent. - -Thu Nov 06 00:08:01 1997 Douglas C. Schmidt - - * ACE version 4.3.38, released Thu Nov 06 00:08:01 1997. - -Wed Nov 5 21:32:36 1997 Douglas C. Schmidt - - * ace/Service_Repository.cpp (close): Looking in the - Service_Repository while shutting it down does really bad - things. Some careful changes to the loop in - Service_Repository::close() fixed this. Thanks to Eric - C. Newton for reporting this. - - * Added new support for SCO UNIX with no threads. Thanks to - Arturo Montes for reporting this. - -Wed Nov 05 20:31:36 1997 - - * ace/Connector.cpp (close): Added an explicit close() method for - the Strategy_Connector. This closes down all Strategy_Connector - specific things and then calls close() on the base class. Also - modified the destructor to call this routine. - -Wed Nov 5 17:09:05 1997 Nanbor Wang - - * ace/OS.cpp (cleanup_tss): Rearranged how TSS'es get cleanup on - Win32. This was causing a tiny memory leak on NT. - -Wed Nov 5 15:03:31 1997 Nanbor Wang - - * ace/Thread_Manager.{h,cpp}: Changed the data type of - terminated_thr_queue_ back to - ACE_Unbounded_Queue. - -Wed Nov 05 14:16:27 1997 Steve Huston - - * ace/OS.i (mutex_trylock): Fixed code for ACE_HAS_DCE_DRAFT4_THREADS - (HP-UX) to process the returned status correctly. Thanks to - Robert Head for reporting this. - -Wed Nov 05 13:01:49 1997 David L. Levine - - * ace/ACE.cpp (daemonize): added ACE_UNUSED_ARG (close_all_handles) - if ACE_LACKS_FORK. - -Wed Nov 05 01:06:53 1997 Douglas C. Schmidt - - * ACE version 4.3.37, released Wed Nov 05 01:06:53 1997. - -Tue Nov 04 23:11:41 1997 - - * ace/Thread_Manager.h: Added an ACE_Unbounded_Queue to - collect threads that need to be removed. We can no longer - remove thread descriptors directly from because that - would clobber the integrity of the double-linked list. Changed - the data type of from - ACE_Unbounded_Queue to - ACE_Unbounded_Queue to reduce the codes - generated. - - * ace/Thread_Manager.cpp: Reordered several thread operations so they - won't remove thread descriptor directly while traversing the - . Removed #ifdef from template - instantiation section because now VxWorks needs it too. - - * ace/Container.{h,cpp}: Added more check on validities of passed in - node to ACE_Double_Linked_List::remove_element. Also changed - the function to reset a node's and to prevent - double removal of a node, which messes up the list structure. - - * ace/ace_{dll,lib}.dsp: Excluded Acceptor.cpp from make - explicitly. Moving this file to "template file folder" was not - enough. - -Tue Nov 4 18:03:51 1997 Douglas C. Schmidt - - * ace/config-sco*.h: Added #define ACE_DEFAULT_CLOSE_ALL_FILES 0 - to the SCO Unix config files. - - * ace/ACE.cpp: Added a new macro called - ACE_DEFAULT_CLOSE_ALL_FILES to workaround a bug with SCO Unix. - Thanks to Arturo Montes for reporting - this. - - * The ACE developer's drinking song: - - 100 little bugs in the code, - 100 bugs in the code, - fix one bug, compile it again, - 101 little bugs in the code. - 101 little bugs in the code..... - - Thanks to Steve Huston for appreciating the humor in this ;-). - - * ace/Containers.cpp (insert_head): Added some minor stylistic - fixes. - - * apps/Gateway/Gateway/Event_Channel.cpp (initiate_acceptor): - Changed - - if (ACE_Reactor::instance ()->register_handler - (&this->acceptor_, ACE_Event_Handler::ACCEPT_MASK) == -1) - - to: - - if (this->acceptor_.open(this->options ().acceptor_port_, - ACE_Reactor::instance (), this->options ().blocking_semantics_) == -1) - - Thanks to Ganesh Pai for reporting this. - - * apps/Gateway/Gateway/Gateway.cpp (parse_args): Changed - - ACE_Get_Opt get_opt (argc, argv, "abC:cdP:pq:t:vw:", 0); - - to: - - ACE_Get_Opt get_opt (argc, argv, "abC:cdP:p:q:t:vw:", 0); - - Thanks to Ganesh Pai for reporting this. - -Tue Nov 4 18:13:52 1997 Sergio Flores - - * examples/Timer_Queue/Async_Timer_Queue_Test.cpp (cancel): - Initialized act pointer variable to 0, which was causing - core dump in linux. In general, all pointers should be - initialized. This should have been warned by the compiler. - Thanks to Sandro Doro for - pointing this out. - -Tue Nov 4 11:14:35 1997 Nanbor Wang - - * ace/Containers.cpp: Fixed some stylistic ambiguities. - -Tue Nov 04 10:12:21 1997 David L. Levine - - * include/makeinclude/platform_hpux.GNU: added +a1 to CFLAGS - to select ANSI C, instead of the default K+R C. This is - required with the current ace/Object_Manager.cpp, because - it initialized autos using aggregates (via the - ACE_STATIC_SVC_DEFINE macro). Thanks to Neil B. Cohen - for helping to sort this out. - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: changed - another lock () to mutex (). - - * tests/run_tests.vxworks: added MT_SOCK_Test. - -Tue Nov 04 04:13:23 1997 Douglas C. Schmidt - - * ACE version 4.3.36, released Tue Nov 04 04:13:23 1997. - -Tue Nov 04 03:50:57 1997 - - * ace/Addr.i (operator == && operator !=): Comparison of - sap.addr_type_ should be with this->addr_type_ and not with 0. - -Mon Nov 3 23:18:33 1997 Sergio Flores - - * ace/Synch_T.cpp (dump): change the field lock_ to mutex_. - -Mon Nov 3 22:37:58 1997 Nanbor Wang - - * ace/Timer_Wheel_T.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Hash_T.cpp: Changed the use of lock_ to mutex_. - - * ace/OS.cpp (cleanup_tss): Added TSS cleanup codes for Win32 when - non-main threads are exiting. Without them, Thread_Manager won't - cleanup its thread table correctly. - - * ace/SV_Semaphore_Complex.cpp (close): Changed to return 0 - only when this->key_ == -1 instead of <= -1. This was causing - semaphore leaks on Solaris. - - * ace/UNIX_Addr.i (operator ==): - * ace/SPIPE_Addr.i (operator ==): - * ace/FILE_Addr.i (operator ==): - * ace/DEV_Addr.i (operator ==): - * ace/INET_Addr.cpp (operator ==): Added checking for the same - Addr types for addresses under comparison. Thanks to Stephen - Coy for pointing out the problem. - -Mon Nov 03 18:32:42 1997 Carlos O'Ryan - - * ace/Proactor.cpp: - * ace/Timer_Queue_T.h: - * ace/Timer_Queue_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Synch_T.h: - * ace/Synch_T.cpp: - * ace/Atomic_Op.i: - Changed the method name from lock() to mutex(), otherwise the - lame HP/C++ compiler gets completely confused. Also changed the - field from lock_ to mutex_ - -Mon Nov 3 17:15:17 1997 Steve Huston - - * ace/OS.h: Removed "class ace_dewarn_gplusplus;" from the - ACE_CLASS_IS_NAMESPACE macro. Produces warnings on AIX and - shouldn't be needed. - -Mon Nov 3 15:49:18 1997 Chris Cleeland - - * ace/Connector.cpp (connect): "Fixed" so that the service handler - pointer passed in by the caller doesn't change until the connect - completes without errors. - -Mon Nov 03 08:15:21 1997 David L. Levine - - * ace/Managed_Object.[hi] (get_preallocated_{object,array}): - inlined function definitions into the class header so that - it compiles on AIX 4.1 w/ xlC 3.01. Thanks to Bob Lyng - for reporting this problem, - at to Steve H. for testing the fix. - - * include/makeinclude/{platform_linux*.GNU,wrapper_macros.GNU}, - netsvcs/lib/Makefile: suppress -g when compiling ace/Timer_Hash.cpp - and netsvcs/lib/Server_Logging_Handler.cpp on Linux only. - (It really only needs to be suppressed on Linux/Alpha.) - - * apps/Gateway/Gateway: protect instantiation of - ACE_Svc_Handler - with ACE_HAS_THREADS. - - * ace/{Naming_Context.cpp,Service_Config.cpp,Object_Manager.cpp}: - moved ACE_Naming_Service and ACE_Service_Manager static service - objects to ACE_Object_Manager. - - With this change, the ACE library no longer has any static - objects that require destruction. - - * ace/Object_Manager.h: added documenation of - ACE_HAS_NONSTATIC_OBJECT_MANAGER config #define. - - * performance-tests/Misc/preempt.cpp: cleaned up cleanup so that - it compiles cleanly. - -Sun Nov 02 18:09:14 1997 Douglas C. Schmidt - - * ACE version 4.3.35, released Sun Nov 02 18:09:14 1997. - -Sun Nov 2 15:31:45 1997 Douglas C. Schmidt - - * ace/Select_Reactor.i (cancel_timer): Make sure that we don't try - to call cancel() through a NULL this->timer_queue_. Thanks to - Stephen Coy for reporting this. - - * ace/ACE.cpp (set_handle_limit): Fixed a subtle bug that occurs - if the OS doesn't like non-initialized rlimit structs. Thanks - to Stephen Coy for reporting this. - - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp (main): - Renamed allocator to my_alloc to work around wonderful STL and - GCC problems... Thanks to Ben Eng for - reporting this. - - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: Removed - unused constant SHMSZ. Thanks to Ben Eng for - reporting this. - - * examples/Reactor/Misc/test_time_value.cpp (operator<<): Removed - the "dec" stream manipulator since it isn't portable. Thanks to - Ben Eng for reporting this. - - * performance-tests/Misc/preempt.cpp (main): Cleaned up this test - so it compiles on non-threaded platforms. Thanks to Ben Eng - for reporting this. - - * examples/Timer_Queue/main_*.cpp (main): std::auto_ptr does not - have an operator= that accepts a raw pointer. Therefore, we - must assign raw pointers to an auto_ptr via the constructor. - Thanks to Ben Eng for reporting this. - - * apps/Gateway/Gateway/Proxy_Handler.cpp: Make sure we distinguish - between ACE_NULL_SYNCH and ACE_MT_SYNCH since these will be - different on all platforms, whereas ACE_SYNCH will be the same - as ACE_NULL_SYNCH on platforms without threads. Thanks to Ben - Eng for reporting this. - - * ace: Removed lots of uses of NULL and replaced them with 0. - This works around bugs with lame C++ compilers that treat NULL - as (void *). Thanks to Ben Eng for reporting - this. - - * ace/Thread.i (spawn): Replaced "stack" with "thr_stack" to work - around bugs with lame C++ compilers and STL. Thanks to Evgeny - Beskrovny for reporting this. - -Sat Nov 1 11:55:05 1997 Douglas C. Schmidt - - * ace/config-irix5.3-g++.h, - ace/config-irix5.3-sgic++.h: Removed the ACE_HAS_SYS_SIGLIST - macro since it doesn't seem to be working. Thanks to Laura - Paterno for reporting this. - - * include/makeinclude/platform_chorus.GNU: Tidied up - platform_chorus.GNU a bit. Thanks to Wei Chiang - for this. - -Fri Oct 31 14:35:37 1997 David L. Levine - - * ace/OS.cpp (thr_create): on Chorus, double the stack size to - avoid bad problems. Thanks to Wei Chang - for diagnosting this. - - * ace/Hash_Map_Manager.cpp (unbind_i): set the int_id - reference argument instead of ignoring it. Thanks to - Wei Chang for providing the patch. - - * ace/OS.h,README: wrapped #include of dlfcn.h with - ACE_HAS_DLFCN_H_BROKEN_EXTERN_C to support RedHat 4.2 - Linux 2.0.30/Alpha. - - * ace/OS.i,README: added ACE_HAS_GETRUSAGE_PROTO support, for - platforms that have a getrusage () prototype that is - different from the one in OS.i. - - * ace/config-linux.h: added added some #defines to enable - builds on RedHat 4.2/Linux 2.0.30/Alpha. - - * include/makeinclude/platform-linux.GNU: added -pipe and - bumped optimization level up to -O3. - - * ace/Thread_Manager.cpp (wait_task): no-op if thr_list_ - size is 0. wait_task () can be called under that condition - (after Thread_Manager::wait () has returned) from an - ACE_Stream destructor, through ACE_Module::close () and - ACE_Task_Base.wait (). Without this change, wait_task () - allocated a copy_table array of size 0. Sun C++ leaked - that array, according to Purify. - - * ace/Service_Config.*,Object_Manager.cpp: moved static - ACE_Service_Config::signal_handler_ to Object_Manager. - - * include/makeinclude/rules.local.GNU (show_statics,show_uninit): - added $(TOOLENV) to allow specification of full path to nm. - Thanks to Wei Chiang for this suggestion. - - * include/makeinclude/platform_chorus.GNU: added trailing "/" - to TOOLENV definition, so that it can be empty when not used. - - * ACE-INSTALL.html,include/makeinclude/wrapper_macros.GNU: - added documentation for ACE show_statics and show_uninit targets. - These are only supported with g++. - -Fri Oct 31 00:53:52 1997 - - * The following five changes were suggested by Stephen Coy - . Thanks Stephen. - - * ace/OS.h (ACE_CLASS_IS_NAMESPACE): Changed friend - ace_dewarn_gplusplus to friend class ace_dewarn_gplusplus. - - * ace/Malloc_T.h: Move the #include files to just after the - declaration of the macros, otherwise Containers.cpp will be - #included before the definition of the various allocator macros - (such as ACE_ALLOCATOR_RETURN) have been seen (when - ACE_TEMPLATES_REQUIRE_SOURCE is defined). - - * ace/Hash_Map_Manager.cpp (close_i): Changed &table[i] to - &table_[i]. - - * ace/Containers.h: The ACE_Node destructor needs to be publicly - accessible in order to support the - ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR fix. Unfortunately, - making the template function - ACE_Destructor_Template_For_HPUX_aCC_Only a friend does not seem - to work (although it should). - - * ace/ACE.cpp (ldfind): Changed path_entry from char* to - const char*. - - * tests/Priority_Reactor_Test.cpp (main): Fixed auto_ptr usage. - Thanks to Jack Erickson (jack@pinion.com) for pointing this out. - - * ace/OS.h (ACE_CLASS_IS_NAMESPACE): Changed the macro to not - include the destructor. This causes undefined destructor - problems on Win32. Also added ACE_UNIMPLEMENTED_FUNC macros - around the remain functions. - -Thu Oct 30 21:22:47 1997 David L. Levine - - * ace/Makefile: added auto Svc_Conf_[ly].cpp patches. - - * etc/Svc_Conf_[ly].cpp.diff,README: the ace/Svc_Conf_[ly].cpp - patches, and instructions for updating them. - -Thu Oct 30 19:54:50 1997 Douglas C. Schmidt - - * ACE version 4.3.34, released Thu Oct 30 19:54:50 1997. - -Thu Oct 30 17:49:56 1997 Douglas C. Schmidt - - * tests/Priority_Task_Test.cpp (main): Moved "int status" out of - the #if defined (ACE_HAS_THREADS) so that it will compile when - the platform *doesn't* have threads. - - * ace/Synch_T.i (ACE_TSS): Added a missing ':' that was causing - problems on platforms that lack threads. Thanks to Laura - Paterno for helping to track this - down. - - * ace/Signal.cpp (register_handler): Make sure not to use - SA_SIGINFO if we're running on LynxOS. At some point, we'll - want to generalize this, once enough OS platforms support POSIX - real-time signals. Thanks to Kirill.Rybaltchenko - for reporting this. - - * include/makeinclude/platform_chorus.GNU (CXX): Replaced - DCFLAGS += -g with DCFLAGS += -gstabs+. Thanks to - Wei Chiang for this. - - * ace/OS.cpp: It's not valid to set the NULL_key to anything other - than implicit initialization. In particular, if we set it to -1 - it breaks on pthreads systems... Thanks to Check Gehr for - reporting this. - - * ace/config-irix5.3*++.h: Added ACE_NEEDS_SYSTIME_H. Thanks to - Laura Paterno for reporting the - problem. - - * ace/OS.h: Moved the unistd.h files back down to where - they originally were defined since this was unnecessary. - - * include/makeinclude/platform_chorus.GNU (CXX): Replaced - DCFLAGS += -g with DCFLAGS += -gstabs+. Thanks to - Wei Chiang for this. - -Thu Oct 30 17:41:19 1997 James C Hu - - * ace/OS.h: Stray semi-colon removed from ACE_CLASS_IS_NAMESPACE - macro. - -Thu Oct 30 17:04:52 1997 - - * ace/OS.h (ACE_CLASS_IS_NAMESPACE): Changed the macro to not - include the destructor. This causes undefined destructor - problems on Win32. Also added ACE_UNIMPLEMENTED_FUNC macros - around the remain functions. - -Thu Oct 30 10:50:21 1997 Chris Cleeland - - * ace/OS.h: Added new macro--ACE_CLASS_IS_NAMESPACE ()--to - designate that a class is being used as a pseudo-namespace. It - declares private CTOR, Copy CTOR, and DTOR, as well as a friend - declaration in order to de-warn on g++. Typical usage would be - something like: - - class FooBarNamespace - { - ACE_CLASS_IS_NAMESPACE (FooBarNamespace); - - public: - static ... - }; - - The ACE_OS class has been updated to use this. - - * ace/ACE.h: Updated class ACE to use the new - ACE_CLASS_IS_NAMESPACE (). - - * ace/OS.i (getopt): Changed ACE_LACKS_SOME_POSIX_PROTOTYPES back - to ACE_LACKS_POSIX_PROTOTYPES so that a clean build on Linux is - achievable now. - (msgsnd): Corrected errant spelling from - ACE_LACKS_POSIX_SOME_PROTOTYPES to - ACE_LACKS_SOME_POSIX_PROTOTYPES. - -Thu Oct 30 06:14:58 1997 David L. Levine - - * Makefile,ACE-INSTALL: removed ACE-INSTALL from CVS control. - It will only be created when a release is made in - /project/adaptive/ACE_wrappers, and not put under CVS control. - - * ace/Manager_Object.h: added ACE_INLINE specifier to - get_preallocated_object/array declarations. Thanks to - Torbjorn Lindgren for reporting this. - - * ace/Synch.cpp: removed duplicate - ACE_Write_Guard instantiation. Thanks to - Torbjorn Lindgren for reporting this. - - * tests/Conn_Test.cpp: fixed template instantiation pragmas. - Thanks to Torbjorn Lindgren , again. - - * tests/SPIPE_Test.cpp: replaced ACE_UNUSED_ARG of client and server - with conditional compilation of those functions. Thanks to - Torbjorn Lindgren for snagging this. - - * ace/OS.{h,cpp},Object_Manager.cpp (tss_open,tss_close): removed - tss_open () dynamic allocation option because it wasn't used. - Removed tss_close() because it was a no-op without tss_open () - dynamic allocation. - - * ace/OS.cpp (tss_open): On VxWorks, don't check for 0 tss_base (). - It's not always 0 on program startup, especially if a program - has been previously run by the shell directly, without spawning - a new task to run it. - - * ace/OS.*: added ACE_TSS_EMULATION support for non-scalar - ACE_thread_key_t. Thanks to Chuck Gehr - for motivating this. - - * ace/config-mvs.h: added ACE_HAS_NONSCALAR_THREAD_KEY_T. It - is only used with ACE_HAS_TSS_EMULATION, which currently is - not supported on MVS. - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): cleaned up this function. - -Thu Oct 30 03:25:13 1997 Nanbor Wang - - * ace/Hash_Map_Manager.cpp (close_i): Can't use ACE_DES* - template. Have I been here before? - -Thu Oct 30 03:03:41 1997 Nanbor Wang - - * ace/Hash_Map_Manager.cpp (close_i): Changed to use ACE_DES* macros. - - * ace/OS.h: Moved ACE_Allocator related macros to Malloc_T.h - - * ace/Malloc_T.h: Moved ACE_Allocator related macros from OS.h. - Added two macros ACE_DES_NOFREE and ACE_DES_NOFREE_TEMPLATE to - call objects' destructors explicitly. This is required to - take care of some "broken" compilers. Thanks to Stephen Coy - for providing the fix for HP-UX aCC. - - * ace/README: - * ace/config-hpux-10.x-hpc++.h: Added flag - ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR. - -Thu Oct 30 02:56:25 1997 Douglas C. Schmidt - - * ACE version 4.3.33, released Thu Oct 30 02:56:25 1997. - -Thu Oct 30 01:03:21 1997 Douglas C. Schmidt - - * ace/LOCK_SOCK_Acceptor.cpp: Added a #include of "ace/Synch.h" so - that the Conn_Test.cpp will compile on HP/UX. Thanks to Stephen - Coy for reporting this. - -Wed Oct 29 22:55:15 1997 Nanbor Wang - - * ace/config-vxworks5.x-g++.h: - * ace/config-unixware-2.1.2-g++.h: - * ace/config-unixware-2.01-g++.h: - * ace/config-sunos5.5-g++.h: - * ace/config-sunos5.4-g++.h: - * ace/config-sunos4-g++.h: - * ace/config-osf1-4.0.h: - * ace/config-osf1-4.0-g++.h: - * ace/config-linux.h: - * ace/config-linux-pthread.h: - * ace/config-linux-lxpthreads.h: - * ace/config-irix6.x-g++.h: - * ace/config-irix5.3-g++.h: - * ace/config-hpux-10.x-g++.h: - * ace/config-gcc-2.7.2.h: - * ace/config-freebsd.h: - * ace/config-freebsd-pthread.h: - * ace/config-chorus.h: - * ace/config-aix-4.1.x.h: - * ace/README: Removed ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR. - It is no longer in use. - -Wed Oct 29 21:12:55 1997 Douglas C. Schmidt - - * ace/README: Added a new macro called ACE_LACKS_SOCKET_BUFSIZ, - which is enabled on VxWorks. - - * ace/OS.h: Added a new macro called - ACE_DEFAULT_MAX_SOCKET_BUFSIZ, which is set to 65536. - - * ace/OS: Changed the tolower() method to to_lower() so that it - won't conflict if there's a macro with the same name. - - * ace/OS.h: #include before ACE_Time_Value as long as - ACE_LACKS_UNISTD_H is false. Added this flag to the VxWorks and - Win32 config.h files. - - * ace/OS.h: Added a special #define for IRIX5, which seems to put - timeval in a strange file... Also, moved this #include to - *before* ACE_Time_Value. Thanks to Carlos O'Ryan for suggesting - this and to Laura Paterno for - reporting the problem in the first place. - - * ace: Changes all uses of the overly long - ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCS to - ACE_LACKS_SOME_POSIX_PROTOTYPES. However, I'm not really sure - how this relates to the ACE_LACKS_POSIX_PROTOTYPES macro. I - suspect we probably only need one of these... - - * ace/OS.h: Added a new ACE_HAS_STDARG_THR_DEST to handle - weirdness with LynxOS. Thanks to Kirill.Rybaltchenko - for reporting this. - - * ace: OS.h,config-lynxos.h: Added a new ACE_LACKS_GETOPT_PROTO - for LynxOS. Thanks to Kirill.Rybaltchenko - for reporting this. - - * ace/config-lynxos.h: Replaced - ACE_LACKS_POSIX_PROTO_FOR_SOME_FUNCS with - ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCTIONS. Thanks to - Kirill.Rybaltchenko for reporting - this. - -Wed Oct 29 22:17:03 1997 Nanbor Wang - - * ace/config-hpux-10.x-hpc++.h (ACE_HAS_TEMPLATE_SPECIALIZATION): - Moved to C++ section. Restored ACE_TEMPLATE_REQUIRE_SOURCE in - C++ section. Thanks to Stephen Coy for - providing the fix (patiently.) - -Wed Oct 29 20:30:55 1997 James C Hu - - * ace/OS.i (strlen): Moved it earlier so that it would be declared - inline before use. - - * ace/OS.i (strcasecmp): Removed spurious semi-colons (how did - they get in there?). - -Wed Oct 29 18:51:12 1997 Darrell Brunsch - - * ace/OS.{h,i}: Added strcasecmp functionality for NT - -Wed Oct 29 15:56:01 1997 David L. Levine - - * ace/OS.cpp: replaced ACE_TSS_REF_TABLE with a reference count to - remove dynamic allocation from ACE_TSS_Info. Also, enabled call - of ACE_Task close hook before calling TSS destructors. - - * ace/OS.cpp: changed a few TSS 0 keys to ACE_OS::NULL_key. - - * ace/Thread_Manager.cpp (ace_thread_manager_adapter): with - TSS_EMULATION, moved the call of tss_close () from here to - ACE_Thread_Adapter::invoke () so that it can be called after - the task's close hook, if any. - - * ace/{OS.h,Log_Msg.h,Object_Manager.cpp} (cleanup_tss): added - an argument to indicate whether the main thread is calling or not. - - * ace/OS.i (ACE_TSS_Emulation::next_key): start key values at - 0 instead of 1, because it's easier to deal with arrays of - keys then. That also corresponds with the starting key value - on Windows NT. - - * ace/IOStream.h: DEC_CXX #includes now depend on compiler version. - Thanks to James Johnson for providing the fix. - -Wed Oct 29 10:32:16 1997 David L. Levine - - * ace/config-lynxos.h: fixed ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCS - and added getopt () declaration. - - * include/makeinclude/platform_lynxos.GNU: updated LIBS. - - Thanks to Kirill Rybaltchenko for - the above fixes. - - * etc/purify.solaris2: added another _thrp_exit UMR. - - * include/makeinclude/wrapper_macros.GNU: added login (LOGNAME) - and compiler (CXX) to Purify/Quantify cache names. - -Wed Oct 29 08:40:38 1997 Douglas C. Schmidt - - * ACE version 4.3.32, released Wed Oct 29 08:40:38 1997. - -Wed Oct 29 07:39:38 1997 Douglas C. Schmidt - - * ace/Synch.cpp: Added an explicit template instantiations for - ACE_Guard. - - * ace/LOCK_SOCK_Acceptor.h: Removed the typedef of - ACE_SOCK_Acceptor with a full expansion of the name to fix a G++ - bug. - - * tests/Conn_Test.cpp: Fixed a template instantiation problem. - - * ACE-INSTALL.html: Pointed out that ACE is ported to LynxOS and - Chorus. - - * ACE-INSTALL.html: Added information about cloning that explains - how you must to build a config.h and platform_macros.GNU in - cloned directory. Thanks to Arturo for this. - - * bin/Makefile: Added - $(ACE_ROOT)/include/makeinclude/platform_macros.GNU to Makefile - so we can compile clone on any ACE platform. Thanks to Arturo - for this. - - * include/makefiles: Added new platform file for SCO UNIX with - nothreads. Thanks to Arturo for this. - - * ace: Added new config files for SCO UNIX with nothreads. - Thanks to Arturo for this. - - * apps/JAWS/server/HTTP_Server.cpp: Fixed the typedef for - ACE_LOCK_SOCK_Acceptor. Thanks to Hans Rohnert for reporting - this. - - * tests/Conn_Test.cpp: Changed template instantiations from - SOCK_ACCEPTOR to LOCK_SOCK_ACCEPTOR. Thanks to Han Rohnert for - reporting this. - -Wed Oct 29 02:10:37 1997 Douglas C. Schmidt - - * ACE version 4.3.31, released Wed Oct 29 02:10:37 1997. - -Wed Oct 29 01:25:54 1997 Douglas C. Schmidt - - * tests/Conn_Test.cpp: Modified Conn_Test to fully integrate - Irfan's new LOCK_SOCK_Acceptor. This new implementation is - truly the "mother of all Conn_Tests" ;-). - - * ace/LOCK_SOCK_Acceptor.cpp (lock): Added a lock() accessor - method to the new ACE_LOCK_SOCK_Acceptor so that we can remove - the lock (somehow). - -Wed Oct 29 00:29:52 1997 - - * apps/JAWS/server: Fixed Win32 related compilation errors. - - * ace/OS.h (SIGUSR1 and SIGUSR2): Added new defines for these two - signals. - - * ace/LOCK_SOCK_Acceptor: New class added to ACE (it was - originally a class in JAWS). It specialize ACE_SOCK_Acceptor to - lock around . This class is particular useful if you - want to have multiple threads accepting on the same endpoint and - the system does not support have thread safe accept. Thanks to - James Hu who initially wrote this class for JAWS. Thanks also - to Johannes Gutleber who decided to - use this in the Conn_Test. - - * tests/Conn_Test.cpp: Updated to use the new LOCK_SOCK_Acceptor. - - * apps/JAWS/server/HTTP_Server.h: Updated to use the new - LOCK_SOCK_Acceptor. - - * apps/JAWS/server/HTTP_Server_T.*: These files are no longer - necessary since this class has been absorbed into ACE. - - * tests: Fixed auto_ptr use in: - - Notify_Performance_Test.cpp - Priority_Reactor_Test.cpp - Reactor_Performance_Test.cpp - - Thanks to Jack Erickson (jack@pinion.com) for pointing this out. - -Tue Oct 28 11:26:39 1997 Nanbor Wang - - * ace/ace_{dll,lib}.dsp: Moved Acceptor.cpp from Source file - folders to Template file folders. Thanks to Satheesh Kumar - for pointing this out. - -Tue Oct 28 05:44:56 1997 David L. Levine - - * ace/OS.cpp (thr_create): use pthread_attr_setprio instead of - *_setsched with DCETHREADS, and check return values of - ACE_OS::thr_[gs]etconcurrency (). Thanks to Stephen Coy - for tracking these problems down. - - * tests/Priority_Task_Test.cpp (svc): removed ACE_ASSERT and - replaced with setting of error flag. This allows the test - to continue and gather more possibly useful information. - - * tests/Conn_Test.cpp: 1) Added template instantiations. - 2) Re-enabled with DEC_CXX. 3) Removed THR_DETACHED flags. - - * include/makeinclude/platform_osf1_4.0.GNU: suppress warnings - about unreachable statments. - - * ACE-INSTALL.html: Conn_Test now runs with DEC_CXX 6.0. - -Tue Oct 28 00:38:58 1997 - - * ace/Strategies_T: - - ACE_Recycling_Strategy - Added new class ACE_Recycling_Strategy. - It defines the interface (and default implementation) for - specifying a recycling strategy for a SVC_HANDLER. This - strategy acts as a consular to the Svc_Handler, preparing it for - the tough times ahead when the Svc_Handler will be recycled. - - ACE_NOOP_Concurrency_Strategy - Added new class - ACE_NOOP_Concurrency_Strategy. It implements a no-op activation - strategy in order to avoid calling open on a recycled - svc_handler multiple times. - - ACE_Cached_Connect_Strategy - Added a ACE_Creation_Strategy, - ACE_Concurrency_Strategy, and ACE_Recycling_Strategy to the - cached connector. This gives it more flexibility than by simply - providing template methods. This is similar to the Strategy - Connector. - - ACE_Cached_Connect_Strategy - Added new template methods for - certain key occasions in the cached connector: make_svc_handler, - activate_svc_handler, assign_recycler, and - prepare_for_recycling. - - * tests/Conn_Test.cpp (client): Updated the tests such that it - uses a null activation strategy. - -Mon Oct 27 22:17:54 1997 Aniruddha Gokhale - - * OS.h: Added the ACE_NESTED_CLASS macro to deal with those - compilers that do not allow a fully scoped type name appearing - inside a scope in which it was defined. - -Mon Oct 27 22:17:32 1997 David L. Levine - - * ace/Thread_Manager.cpp (exit): don't use the cache when finding - the thread ID. The cache is in the ACE_Log_Msg instance, and - it might have been deleted already. - -Mon Oct 27 20:33:07 1997 Douglas C. Schmidt - - * ACE version 4.3.30, released Mon Oct 27 20:33:07 1997. - -Mon Oct 27 18:03:06 1997 Nanbor Wang - - * ACE-INSTALL.html (HREF): Added NT/Alpha to supporting platforms - list. Added hyperlink to ACE newsgroup. Added hyperlink to - FreeBSD homepage. Minor changes to Win32 intstallation guide. - -Mon Oct 27 17:50:16 1997 Douglas C. Schmidt - - * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU (PRELIB): - Changed PRELIB in platform_sco5.0.0-mit-pthread.GNU, - platform_sco5.0.0-fsu-pthread.GNU to @true, so we can generate - the TAO_IDL compiler. Thanks to Arturo Montes - for reporting this. - -Mon Oct 27 14:26:10 1997 - - * ace/Synch_T (ACE_TSS): When ACE does not have thread specific - storage, ACE_TSS will be a simple pointer holder. Previously, it - had a instance as a member, now it has a pointer to an instance. - - * ace/WFMO_Reactor.cpp (update_state): Fixed a bug in the - WFMO_Reactor. wakeup_all_threads() used to be an internal - method that was called when changes were made to the state of - the reactor. When wakeup_all_threads() became public, there was - no code in place to handle explicit user wakeups. In - particular, the wakeup_all_threads event was never reset. - Thanks to Evgeny Beskrovny for - pointing out this bug. - - * ace/OS.i (ACE_FAIL_RETURN): Added mapping from - ERROR_PATH_NOT_FOUND to ENOENT. Thanks to David Brackman - for suggesting this. - -Mon Oct 27 11:36:39 1997 David L. Levine - - * ace/OS.cpp (exit_cleanup_i): removed protection against recursive - calls. This protection no longer is necessary, because - ACE_TSS_Cleanup () is only called by ACE_Thread_Adapter::invoke (). - It was problematic because it used the ACE_Allocator instance. - - * ace/config-vxworks*.h,README: added ACE_LACKS_FCNTL. - - * ace/OS.i,ACE.cpp: replaced #ifdef VXWORKS with #ifdef - ACE_LACKS_FCNTL. - - * ace/ACE.i (get_flags): return 0 if ACE_LACKS_FCNTL. It would - be better to store ACE's notion of the flags associated with - the handle so that they could be returned, but this works for now. - - * tests/run_tests.vxworks: re-enabled Reactors_Test, because it - works with the ACE_LACKS_FCNTL mods. - - * include/makeinclude/platform_osf1_4.0.GNU: -pthread instead of - -lpthread in LIBS. Thanks to James Johnson for - pointing this out. - - * ACE-INSTALL.html: added info on bin/create_ace_build. - -Mon Oct 27 11:11:33 1997 Nanbor Wang - - * netsvcs/servers/servers.dsp - * netsvcs/lib/netsvcs.dsp: - * tests/*.dsp: - * ace/ace_{dll,lib}.dsp: Added project configurations for Alpha - machines. Configurations are named by adding "Alpha" in front - of the original config names, e.g., "Win32 Alpha Unicode Debug. - -Mon Oct 27 06:40:18 1997 Douglas C. Schmidt - - * include/makeinclude/rules.local.GNU (show_uninit): Added a - missing semi-colon for one of the install rules. Thanks to - Manojkumar Acharya for reporting this. - - * ace/Synch_T.h: Make sure that ACE_Guard::remove() calls - this->lock_->remove() rather than this->lock_->release(). - Thanks to Johannes Gutleber for - reporting this. - -Mon Oct 27 00:20:13 1997 Nanbor Wang - - * ace/config-hpux-10.x-hpc++.h: Added directive - ACE_HAS_TEMPLATE_SPECIALIZATION. Thanks to Stephen Coy - for reporting this. - -Sun Oct 26 22:17:57 1997 Douglas C. Schmidt - - * ACE version 4.3.29, released Sun Oct 26 22:17:57 1997. - -Sun Oct 26 20:03:57 1997 Douglas C. Schmidt - - * ace/IPC_SAP.cpp, - ace/IO_SAP.cpp: Make sure that we don't use fcntl() when - we're compiling on VXWORKS since it's not defined... - - * examples/Connection/non_blocking/CPP-connector.cpp: Changed the - method named idle() to uninitialized() since idle() is now - defined on ACE_Svc_Handler. - - * ace/OS.h: Added the TAO_DEFAULT_SERVER_PORT to OS.h. - - * tests/Conn_Test.cpp (cached_connect): Added a new variable - called "n_client_iterations" to control how many times each - client thread tries to connect with the Cached_Connector. - -Sun Oct 26 16:56:32 1997 Chris Cleeland - - * include/makeinclude/platform_linux_lxpthread.GNU (CFLAGS): Added - -pipe to the compile options. - -Sun Oct 26 11:04:21 1997 David L. Levine - - * ace/Hash_Map_Manager.cpp (unbind): added ACE_UNUSED_ARG (int_id). - - * tests/Conn_Test.cpp (server): added ACE_UNUSED_ARG (options). - And, added template instantations. - - * tests/Conn_Test.cpp (cached_connect): changed type of loop index i - to int to avoid signed/unsigned comparison. - - * ace/Strategies_T.h: added #include of ace/Strategies.h. Thanks to - James Johnson for reporting this. - -Sun Oct 26 10:01:01 1997 Nanbor Wang - - * ace/Connector.cpp (open): The original fix failed to replace - strategies under some circumstances. - - * ace/OS.{h,cpp} (sprintf): Removed ACE_OS::sprintf (wchat_t, char). - It didn't ever work. - - * ace/Connector.cpp (open): Added check if we had previously - allocated various strategies and deleted these objects before - allocating new objects. The original codes caused memory leaks - and possible segmentation faults if it got called twice. We - probably need a do-nothing constructor (the current constructor - calls open.) However, this may break other codes. - -Sun Oct 26 01:00:07 1997 Douglas C. Schmidt - - * ACE version 4.3.28, released Sun Oct 26 01:00:07 1997. - -Sun Oct 26 00:50:00 1997 Douglas C. Schmidt - - * tests/Conn_Test.cpp (close): Since the connect() method on - ACE_Connector closes the svc_handler if failure occurs, we - shouldn't do that again unless we succeed in connecting. - - * ace/OS.h: Moved the CORBA portability macros from - CORBA_Handler.h into OS.h so they will be accessible from TAO. - - * ace/Filecache.cpp (finish): Replaced filename_ with filename() - so that "const correctness" would work with template - specialization. Go figure! - - * TAO/tests/IDL_Cubit/Makefile: Enhanced the "realclean" target to - remove the generated IDL stubs and skeletons. - - * ace/OS.cpp (ace_sysconf_dump): Made a minor change to OS.cpp - to fix some typos. Thanks to Wei Chiang - for reporting this. - -Sun Oct 26 00:06:17 1997 - - * ace/Strategies_T.cpp (~ACE_Cached_Connect_Strategy): Must set - recycler to 0 before calling close, else the svc_handler will - try to purge itself from the cache. - - * tests/Conn_Test.cpp (client): Updated to use the new connection - recycling scheme. - - * ace/Hash_Map_Manager: - - - ACE_Hash_Map_Reverse_Iterator: Added reverse iterator. - - - ACE_Hash_Map_Entry: Added a prev pointer to the entry. Thus - changing the bucket chains into doubly linked lists. Because of - this, it was necessary to change the way the list was being - managed. Sentinels were created for each bucket. - - This also changed (a) the way the iterators worked, (b) made it - easy to delete entries when you have one (this scheme allows the - entries to be easily used as ACTs). - - - New methods (bind, trybind, rebind, find): These methods allow - the users to get access to ACE_Hash_Map_Entry of the node in - question. This allows the user to treat the entry as an ACT and - get access to the key (in case the user is interested in - changing the key). These methods are only valid since the - implementation of Hash_Map_Manager uses linked lists where nodes - are never copied. These methods cannot be added to Map_Manager - since it uses an array of nodes, where the your data may get - copied to another node when the size of the Map_Manager changes. - - * ace/Strategies (ACE_Connection_Recycling_Strategy): Added a new - abstract strategy for recycling connections. - - * ace/Strategies_T: - - - ACE_Cached_Connect_Strategy: ACE_Cached_Connect_Strategy now - implements the ACE_Connection_Recycling_Strategy interface. - This allows Svc_Handlers to cache themselves with - ACE_Cached_Connect_Strategy when they become idle. It also - allows them to purge themselves from the connection cache when - the Svc_Handlers close down. - - Also added ~ACE_Cached_Connect_Strategy that will cleanup up the - connection cache. - - - ACE_Hash_Addr: ACE_Hash_Addr is the key for the hash map used by - ACE_Cached_Connect_Strategy. Previously it kept the Svc_Handler - pointer in the key in order to find out if it was busy or not. - Now the flag has been moved from the Svc_Handler into - the key. The also saves the Hash_Addr from requiring - Svc_Handler as a template parameter. - - Also updated ACE_Hash_Addr::operator== such that if the - Svc_Handler is busy, it does not bother to check compare the - addresses but simply returns false. - - * ace/Svc_Handler.cpp: Added the ability for a Svc_Handler to - recycle itself. idle() can be called when the Svc_Handler is - done serving a particular connection and can how be recycled. - The Svc_Handler now also has a pointer to a recycler that is - responsible for managing the connections. The recycler is - usually a Cached_Connector. - - * ace/Filecache.cpp (ACE_Hash_Map_Entry): Added a new constructor - specialization as the ACE_Hash_Map_Entry now has two - constructors. - - * tests/Hash_Map_Manager_Test.cpp (ACE_Hash_Map_Entry): Added a - new constructor specialization as the ACE_Hash_Map_Entry now has - two constructors. - - * tests/Reactor_Exceptions_Test.cpp (class My_Reactor): Added the - other handle_events method. Thanks to Stephen Coy - (coys@mail.ns.wsa.com.au) for pointing this out. - - * ace/Strategies_T.cpp (hash_i): This default routine is no good. - It uses a complicated scheme that calculate a hash value. - Unfortunately, there is no guarantee that this hash algorithm - will produce the same hash value for the same address. - Therefore, it is better just to return a consistent hash value - rather than an erroneous one. I have choosen 0 of the return - value. Even though this will cause all the entries to be hashed - to the 0 bucket, atleast they will be found. Users should - override this to provide better hashing. - - (compare_i): Memcmp is not the correct default action. - !(b1==b2) is the correct comparison, though this will assume - that the addresses will have a comparison operation. - - * ace/Mem_Map.cpp (close and close_handle): close() is doing too - much. It is closing the handle and unmapping the file. - Changing this method might effect code that depends on this - behavior. Therefore, we create a seperated method - close_handle() that only closes down the handle, and does not - unmap the file. Thanks to Jeff Richards (jrichard@OhioEE.com) - for pointing this out. - - * ace/Strategies_T.cpp (connect_svc_handler): If connect() failed - because of timeouts, we have to reject the connection entirely. - This is necessary since currently there is no way for the - non-blocking connects to complete and for the to - notify the cache of the completion of connect(). Therefore if - errno is EWOULDBLOCK, it is changed to ENOTSUP and -1 is - returned. - -Sat Oct 25 17:41:57 1997 Sergio Flores - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Async_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp: - * examples/Timer_Queue/main_async.cpp: - * examples/Timer_Queue/main_reactor.cpp: - * examples/Timer_Queue/main_thread.cpp: - Added "#pragma instantiate" for template instantiations on - platforms that use pragmas instead, like SGI. - -Sat Oct 25 4:44:00 1997 Carlos O'Ryan - - * Today at 06:44 hours (Santiago, 04:44 St. Louis) Fernanda O'Ryan - has joined the ACE family. She was born 3040 gr in weight and - 50 cm length. She has absolutely no experience in CORBA, C++ or - programming in general. Therefore, she is the ultimate Java - programmer. - -Sat Oct 25 10:13:56 1997 David L. Levine - - * ace/Singleton.h: added comment about best ACE_LOCK types to use. - - * Makefile (TIMESTAMP): replace tab with spaces in ChangeLog entry. - - * tests/Conn_Test.cpp (main): fixed typo, spawn_threads instead of - spawn_thread. Also, protected definitions of spawn_processes () - and spawn_threads () to avoid compiler warnings about unused static - functions. - -Sat Oct 25 01:02:34 1997 Douglas C. Schmidt - - * ACE version 4.3.27, released Sat Oct 25 01:02:34 1997. - -Fri Oct 24 17:39:08 1997 Douglas C. Schmidt - - * ace/ACE.cpp: Changed all the ACE_BIT_ENABLED () == 0 macros to - ACE_BIT_DISABLED() since the logic is clearer. - - * ace/SOCK_Acceptor.cpp (shared_accept): Improved the handling of - timed accepts. The original implementation was prone to race - conditions if there were multiple processes all doing timed - connects on the *same acceptor socket*! That's because select() - and accept() are not performed atomically. Now, we're smarted - about handling this... - - * tests/Conn_Test.cpp: Simplified the shutdown logic, which - appeared to have race conditions. - - * tests/Conn_Test.cpp: Modified this test to spawn off a number of - server processes, all of which will listen for connections on - the same acceptor port. This demonstrates a useful idiom for - writing connection-oriented concurrent server pools. - - * netsvcs/lib/Server_Logging_Handler_T: Fixed this code so that if - we're on an HP/UX that has broken templates we don't use the - Base_Optimizer. Thanks to Per Andersson for providing this fix. - - * ace/Thread_Manager: Added a destructor for ACE_Thread_Descriptor - to keep some compilers happy. Thanks to Chuck Gehr - for reporting this. - - * ace/Task.cpp (ACE_Task_Base_cleanup): Changed - ACE_Task_Base::cleanup (object); - - to: - - ACE_Task_Base::cleanup (object, 0); - - Thanks to Chuck Gehr for reporting - this. - - * ace/Thread_Manager.cpp (find_thread): Fixed another problem with - == being used to compare threads rather than - ACE_OS::thr_equal(). Thanks to Chuck Gehr - for reporting this. - -Fri Oct 24 17:11:14 1997 Sergio Flores - - * Thread_Timer_Queue_Test.cpp (shutdown_timer): added logic to - cancel preemptively or voluntarily, the dispatching thread, - depending on whether the platoform supports pthread_cancel(). - - * Timer_Queue_Adapters.cpp (ACE_Thread_Timer_Queue_Adapter): Added - initialization of flag to 1, active mode. We assume - we start in active mode. Added an internal variable - that stores the thread id of the currently running thread. The - motivation behind this is to be able to cancel this thread - whenever we are shutting down. It is initialized to - ACE_OS::NULL_thread. - - * Timer_Queue_Adapters.cpp (svc): Assign the with the - current running thread ID, using ACE_Thread::self (). - - * Timer_Queue_Adapters.h (ACE_Thread_Timer_Queue_Adapter): Added - default to be - ACE_Thread_Manager::instance() - - * Timer_Queue_Adapters.h (activate): Override the default - method to be able to enforce one thread of execution - per timer queue. Does make much sense to have more than one - managing the timer queue, and like Doug said too many weird - things can happen... - - * Timer_Queue_Adapters.i (thr_id): Added this method to access the - thread ID of this task. - - * Timer_Queue_Adapters.i (activate): Call - ACE_Task_Base::activate() with n_threads = 1 to ensure that a - single thread is spawned. - -Fri Oct 24 10:00:02 1997 Nanbor Wang - - * ace/Thread_Manager.cpp (wait_grp): Fixed a bug. Should wait on - threads with same grp_id, not task. - -Fri Oct 24 09:24:14 1997 David L. Levine - - * ace/Select_Reactor.cpp (open): cast return value of - ACE_::max_handles () to size_t to avoid signed/unsigned comparison. - - * ace/Singleton.cpp,Object_Manager.{h,cpp}: (get_singleton_lock): - dynamically allocate ACE_Thread_Mutex and ACE_RW_Thread_Mutex locks, - so we end up with one lock per ACE_Singleton instantiation. - - * ace/OS.cpp (ACE_TSS_Info, Win32 and VxWorks only): changed type - of ACE_TSS_TABLE from ACE_Unbounded_Stack to fixed-size ACE_Array. - With this change, we avoid some use of ACE_Allocator when - destroying TSS objects. There are two more changes required to - completely remove the ACE_Allocator use. - - * tests/TSS_Test.cpp (worker): added printout of iteration count. - -Fri Oct 24 01:53:58 1997 Douglas C. Schmidt - - * ACE version 4.3.26, released Fri Oct 24 01:53:58 1997. - -Thu Oct 23 19:05:08 1997 Douglas C. Schmidt - - * netsvcs/clients/Naming/Client/Makefile - netsvcs/clients/Naming/Dump_Restore/Makefile - - The lines: - - SHLIB = libClient_Test.so - SHLIB = libDump_Restore.so - - need to be - - SHLIB = libClient_Test.$(SOEXT) - SHLIB = libDump_Restore.$(SOEXT) - - Thanks to Stephen Coy for reporting this. - - * ace/Thread_Manager.cpp (find_hthread): Replaced the call - - if (iter.next ()->thr_handle_ == h_id) - - to - - if (ACE_OS::thr_equal (iter.next ()->thr_handle_, h_id)) - - since the other one isn't portable to Pthreads. Thanks to - Stephen Coy for reporting this. - - * ace/Hash_Map_Manager.cpp: Removed the sentinel in the - Hash_Map_Manager. Sentinels are evil since they require us to - hold write locks, even when we're doing finds! - - * ace/ACE.cpp (max_handles): By default, we now try to use the - getrlimit() function before sysconf() since sysconf() doesn't - work "correctly" for NO _SC_OPEN_MAX (i.e., it just returns the - original value, which might have been changed by setrlimit(). - What a pain... - - * ace/ACE.cpp (max_handles): If FD_SETSIZE is enabled return - this as the number of handles. This isn't perfect, but it's - probably better than returning -1. - - * ace/Select_Reactor.cpp (open): Added a call to - ACE::set_handle_limit() if the requested size for the Reactor is - greater than the current max number of descriptors in the - process. Also check to make sure that the user isn't ask for - more than the FD_SETSIZE. Thanks to Neil Lavelle - for motivating this. - - * ace/Thread_Manager: Changed the name THR_FUNC to - ACE_THR_MEMBER_FUNC since it's now a global typedef on VxWorks - and we don't have to have clashes with other names. - - * ace/Thread_Manager.h: There are mutually incompatible bugs with - VxWorks and MVS. Therefore, we have to conditionally compile - the THR_FUNC differently for these two platforms. Thanks to - Chuck Gehr for reporting this. - - * ace/OS.cpp (thr_create): Added a fix to set the Chorus stack - size correctly. Thanks to Wei Chiang for - reporting this. - - * ace/OS.cpp: Added a new method ace_sysconf_dump() to dump the - state of the configuration. Thanks to Wei Chiang - for reporting this. - - * ace/Singleton.cpp (dump): There was a typo in the dump() method - for ACE_TSS_Singleton, it should be - ACE_TSS_Singleton::instance_i(). I've fixed this. - -Thu Oct 23 23:19:24 1997 James C Hu - - * ace/Filecache.cpp: Removed template method specialization of - shared_find. No longer needed since Hash_Map_Manager has been - changed to no longer rely on sentinel_. - - * ace/Thread_Manager.cpp (various): - Hacked 'til it compiled. (Chased down syntax errors.) - -Thu Oct 23 22:52:17 1997 Sergio Flores - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (shutdown_timer): - Added a line to call the cancel method on the timer queue task - when we are shutting down; this is wrapped around #if's to only - include this only when the platformm supports pthread_cancel(). - - * ace/Timer_Queue_Adapters.cpp (svc): Added some POSIX thread - cancellation points to make sure the mutex that the condition - variable uses is unlocked before the thread is cancelled. - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (list_timer): - Deleted unnecessary cancellation points. Since we are not - blocking on a condition variable, we don't need to guard the - code. - -Thu Oct 23 22:07:03 1997 Nanbor Wang - - * ace/Thread_Manager.cpp (wait_task,wait_grp): We should also - check for thread creation flags when collection information for - threads belong to this group and don't try to join those threads - created with THR_DETACHED or THR_DAEMON. - -Thu Oct 23 21:22:16 1997 Darrell Brunsch - - * ACE-INSTALL.html: Copied some documentation about makefile flags - from include/makeinclude/wrapper_macros.GNU and added a section - for this. - -Thu Oct 23 20:37:44 1997 David L. Levine - - * ace/Array.*: added ACE_Array_Iterator. - -Thu Oct 23 17:28:11 1997 Chris Cleeland - - * ace/Mem_Map.i (close_filemapping_handle): Moved this above its - uses in the file so that g++ would de-warn. - -Thu Oct 23 15:30:17 1997 Steve Huston - - * ace/Timer_Hash_T.h, Timer_Hash.cpp, Timer_Heap_T.h, Timer_Heap.cpp, - Timer_List_T.h, Timer_List.cpp, Timer_Queue_T.h, Timer_Queue.cpp, - Timer_Wheel_T.h, Timer_Wheel.cpp: Replaced all occurences of - ACE_HPUX_BROKEN_TEMPLATES with ACE_HAS_BROKEN_HPUX_TEMPLATES. - -Wed Oct 22 23:23:29 1997 Nanbor Wang - - * ace/ACE_Library.*, ace_lib.dsp: Made naming convention uniform - for some less used ACE library. They are called: aced.dll, - ace.dll, aceud.dll, aceu.dll, acesd.lib, aces.lib, aceusd.lib - and aceus.lib. If you are using ACE on NT, you know what they - mean. ;-) - -Wed Oct 22 21:22:35 1997 David L. Levine - - * ace/Object_Manager.{h,cpp}: Added support for ACE_RW_Thread_Mutex - ACE_Singleton lock type. Thanks to Nanbor for suggesting this, - because TAO needs it. - - Also, removed at_exit registration of dynamically allocated - ACE_Static_Object_Lock because Object_Manager instance isn't - available for registration when it's created. Instead, handle - this lock as a special case in the Object_Manager destructor. - - * ace/Singleton.cpp,Object_Manager.cpp: check for shutting_down () - as well as starting_up () when deciding whether to use a - preallocated lock. Preallocated locks are not available at those - times. - - * tests/Reactor_Performance_Test.cpp (client): removed declaration - of loop index "i" because it shadowed a local. Also, the loop - index declaration caused a signed/unsigned comparison. - - * ace/Singleton.cpp: temporarily disabled ACE_Guards until - the lock acquistion is fixed. - -Wed Oct 22 17:53:26 1997 Steve Huston - - * ace/SOCK_Connector.cpp: In connect(), changed the - (local != ACE_Addr::sap_any) to be value comparison, - not pointer comparison. Works on compilers which construct - temporaries when a const reference is passed (like HP aC++), and - also when a user passes an ACE_Addr which they construct to look - just like an ACE_Addr::sap_any. Thanks to Stephen Coy - for finding this. - -Wed Oct 22 16:43:25 1997 Chris Cleeland - - * tests/Reactor_Performance_Test.cpp (client): Corrected some code - that wasn't logical (but compiled!) in the connect_n() test. - -Wed Oct 22 13:27:47 1997 Douglas C. Schmidt - - * tests/Reactor_Performance_Test.cpp (client): Revised the - connection portion of this test to use the newly revised - connect_n() method on Connector. - - * ace/Connector.cpp (connect_n): Revised the connect_n() method so - that it keeps track of which connections succeeded and which - failed. - -Wed Oct 22 07:23:21 1997 David L. Levine - - * ace/OS.i (getpgid): fixed (commented) ACE_TRACE identifer. - Thanks to Eric Newton for reporting this. - - * ace/Singleton.{h,cpp},Object_Manager.{h,cpp}: moved - ace_singleton_lock_ to Object_Manager. ace_singleton_lock_ - was a static data member: in addition to the usual troubles - associated with being a static, it was a static member of a - template class. g++ can't handle those, so we used a local - static; initialization of that static was not thread safe. - - The fix relies on knowledge from the Object_Manager about - whether the program is in static construction phase or not. - A critical assumption is that construction of static objects - does not spawn threads. With that assumption, we know that - there is only one (main) thread in the program prior to the - Object_Manager instance being constructed. At that time, - locking is not needed. The ACE_{TSS_}Singleton::instance () - methods rely on the state of the Object_Manager: if it has - not been constructed yet, then they don't guard allocation - of their singleton instance. - - The Object_Manager constructs four locks (of types ACE_Null_Mutex, - ACE_Thread_Mutex, ACE_Recursive_Thread_Mutex, and - ACE_RW_Thread_Mutex) for use only by ACE_Singleton classes. - After the Object_Manager has been constructed, ACE_{TSS_}Singleton - instantiations use one of those locks to guard their allocation of - a new instance, via double-checked locking. - - This change has one impact, then: - ACE_{TSS_}Singleton users are limited to the following types - for their ACE_LOCK instantiation parameters: ACE_Null_Mutex, - ACE_Thread_Mutex, ACE_Recursive_Thread_Mutex, and - ACE_RW_Thread_Mutex. If another type is needed, it can be - easily added to the ACE_Object_Manager: another overloaded - get_singleton_lock () function and preallocated lock would - have to be added. - - As noted in Singleton.h, the best types of ACE_LOCKs to use - for instantiating ACE_Singleton are ACE_Recursive_Thread_Mutex - and ACE_Null_Mutex. - - In addition to the above change, I made these two other - changes: - 1) ACE_Static_Object_Lock::instance (): dynamically allocate - a lock if the Object_Manager has not been constructed yet. - This approach replaces the static lock that was necessary - to allow the static services to be constructed. - - 2) Consolidated the singleton_ access in ACE_TSS_Singleton - via a singleton_i () internal accessor function. Now, - ACE_TSS_Singleton looks just like ACE_Singleton. - - * ACE-INSTALL.html: updated DEC CXX 6.0 build/test status. - - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i - (handle_timeout): convert arg to long if ACE_HAS_64BIT_LONGS. - - * examples/Shared_Malloc/test_malloc.cpp (worker): convert arg to - long if ACE_HAS_64BIT_LONGS. - - * examples/Timer_Queue/Driver.cpp (run_test,parse_commands): - added ACE_NOTREACHED. - - * examples/Logger/simple-server/Logging_Handler.cpp (handle_close): - removed declaration of unused arg "mask". - - * include/makeinclude/rules.local.GNU: added show_statics and - show_uninit targets. They show the statics (that have static - destructor calls) and uninitialized data in the object files - in the current directory. They work best (or at all) on object - files compiled by g++. - -Wed Oct 22 05:04:07 1997 Douglas C. Schmidt - - * ACE version 4.3.25, released Wed Oct 22 05:04:07 1997. - -Tue Oct 21 22:55:36 1997 - - * ace/WFMO_Reactor: Removed ACE_Event_Handler::CLOSE_MASK and the - explicit registration for the closing of sockets from - WFMO_Reactor. This is essentially for compatibility with UNIX - programs. UNIX does not have a CLOSE_MASK and the notification - of the closing of a socket is implicit in the socket becoming - read ready. Therefore when you register for - ACE_Event_Handler::READ_MASK with WFMO_Reactor, you will - register for FD_READ and FD_CLOSE. When FD_CLOSE is triggered, - handle_input() will be called on the Event_Handler. As on UNIX, - read() will return 0 and the programmer will be able to tell - that the socket has actually closed down. - - Arguably, this is lame for Win32 programmers as they have the - explicit close notification, but portability and existing code - base wins in this case. - - One other change. When an event_handler returns -1 from the - callback, unbind() is called with ALL_EVENTS_MASK rather than - the NULL_MASK. - - The upcall routine still needs to threat the two masks - separately. (FD_CLOSE | FD_READ) will not work as both maybe - simultaneously enabled. Therefore handle_input() maybe be called - twice (once for FD_READ and once for FD_CLOSE) unless the user - returns -1 from the first callback. - - * ace/Event_Handler: Removed the CLOSE_MASK. - - * examples/Logger/simple-server/Logging_Handler.cpp: Minor fixes. - - * examples/Logger/Acceptor-server/server_loggerd.cpp: Minor - changes. No need to register the acceptor with the - Reactor. Acceptor::open() does that. - - * examples/Reactor/ReactorEx/test_network_events: Removed the use - of CLOSE_MASK. - - * tests/Reactor_Performance_Test: Removed the use of CLOSE_MASK. - -Tue Oct 21 21:48:54 1997 David L. Levine - - * ace/OS.[hi]: moved ACE_PTHREAD_CLEANUP_PUSH/POP definitions from - OS.i to OS.h. Also, added #ifdef ACE_HAS_PTHREADS protection - before ! defined ACE_LACKS_PTHREAD_CLEANUP so that only PThreads - platforms need add ACE_LACS_PTHREAD_CLEANUP. - - * tests/Notify_Performance_Test.cpp: added #include of - ace/Thread_Manager.h. It's needed on OSF-1. - -Tue Oct 21 21:09:35 1997 Nanbor Wang - - * ace/Memory_Pool.cpp (ACE_MMAP_Memory_Pool): Oops. Souldn't - access options when it is 0. - -Tue Oct 21 12:58:30 1997 Nanbor Wang - - * ace/Log_Msg.{h,cpp}: (thr_desc): Modified the method so it take - an extra argument of type ACE_Thread_Manager* and uses it to - block execution until thread manager release its lock. - - * ace/Thread_Manager.{h,cpp} (acquire_release): Added this new - method whose only function is to grab the thread manager's - lock. This function ensure that a newly spawned thread won't - try to access its thread descriptor before it is fully built. - - * ace/OS.cpp (inherit_log_msg): Modified to cache the thread - descriptor of spawned thread in TSS Log_Msg after it has been - created and block the execution of new thread until thread - manager releases the lock (i.e., fills in all the information.) - - * ace/OS.h (ACE_Thread_Adapter): Added one more argument of type - ACE_Thread_Descriptor* to the constructor with default value 0. - - * ace/OS.cpp (invoke): If the thread descriptor ptr is not zero - in thread arguemnt, then, we'll wait till the thread manger - fills in the formation and cache the value in TSS Log_Meg. - - * ace/Thread_Manager (spawn_i): Changed to pass in the thread - descriptor of the newly spawned thread to thread adapter so it - can cache it in TSS Log_Msg. This must be created before - spawning the thread. If all goes well, we'll need to append the - thread descriptor into the double-linked list in the thread - manager. - (append_thr): Added a new argument of type Thread_Descriptor* - with default value 0. If we pass in a thread descriptor, - append_thr won't try to create on itself. - -Tue Oct 21 21:34:35 1997 Douglas C. Schmidt - - * ACE version 4.3.24, released Tue Oct 21 21:34:35 1997. - -Tue Oct 21 14:14:33 1997 Carlos O'Ryan - - * examples/Timer_Queue/Thread_Timer_Queue_Test.h: - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: - Use the typedef for Upcall to define the base Timer_Queue. - Input_Task inherits from ACE_Task_Base, no need for ACE_Task<> - here. - -Tue Oct 21 13:45:53 1997 Douglas C. Schmidt - - * ace/config-irix6.x-sgic++-nothreads.h: Added ACE_HAS_TERM_IOCTLS - for SGI. Thanks to Jeffrey Peterson - for reporting htis. - - * TAO/tests/Thruput_test/server.cpp (main): Changed BOA_init() - to POA_init(). - -Tue Oct 21 12:58:30 1997 - - * ace/OS.h (ACE_SINGLETON_DECLARATION): - (ACE_SINGLETON_INSTANTIATION): - (ACE_SVC_SINGLETON_DECLARATION): - (ACE_SVC_SINGLETON_INSTANTIATION): Added these new macros. Each - of them takes one argument which is the ACE_Singleton class. - All these craps are needed because MSVCs very kindly instantiate - the template codes for you. This ends up producing two - ACE_Singleton objects, one in DLL and one in user program. What - these macros do is to supress the template code instantiation in - user program and force compilers to instantiate these codes in - DLL. On other platforms, these macros simply expand to empty - strings. Here is a simple use case. Say we have a class - called which we want to make it a singleton using - ACE_Singleton template in our own DLL. In file , add - a line like this, - - ACE_SVC_SINGLETON_DECLARATION (ACE_Singleton); - - and it will be expanded to suitabe code to export the class or - supress another template instantiation outside DLL depending on - whether ACE_BUILD_SVC_DLL is defined or not. In file - , add a line, - - ACE_SVC_SINGLETON_INSTANTIATION (ACE_Singleton); - - at the end of the file to instantiate the template object in - DLL. Notice that there is a bug in MSVC 4.2 and you'll have to - write up a DEF file to export the template interface - explicitly. - - These macros should be integrated with the case when - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION but because of the VC - 4.2's bug, it will cause too much trouble to export all these - symbols for external access. Therefore, I'll leave them as they - are now. - - BTW, these is no templatized singleton object within ACE that - needs to be exported at this moment. - -Tue Oct 21 07:14:24 1997 David L. Levine - - * ace/Svc_Conf_l.cpp: fixed compile warnings on g++. - - * ace/Timer_{Heap,List,Wheel}_T.cpp: replaced NULL with 0 because - some compilers, such as GHS, define NULL as (void *) 0. So, it - sometimes needs to be cast to be used. Thanks to Brian Mendel - for reporting this. - - * ace/Thread_Manager.cpp (wait): removed thr_yield () hack because - it's not needed with Nanbor's Thread_Manager fix. - - * tests/test_config.h (ACE_END_TEST): removed sleep hack with - threading because it's not needed with Nanbor's Thread_Manager fix. - - * include/makeinclude/platform_vxworks*.GNU: added VXWORKS=1 macro, - for use by individual Makefiles to suppress VxWorks builds. - - * examples/System_V_IPC: suppress VxWorks builds because the builds - fail, and the examples wouldn't run anyways. - - * netsvcs/lib/TS_Server_Handler.cpp: only instantiate - ACE_Svc_Handler if ! ACE_HAS_TLI - because without TLI, the instantiation is in - Client_Logging_Handler.cpp. - - * examples/Shared_Malloc/test_persistence.cpp: added #include of - iostream.h with ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - - * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: removed - instantiation of ACE_TSS because it is in - ace/Thread_Manager.cpp. - -Tue Oct 21 02:23:26 1997 Douglas C. Schmidt - - * ACE version 4.3.23, released Tue Oct 21 02:23:26 1997. - -Tue Oct 21 02:18:56 1997 Douglas C. Schmidt - - * examples/Makefile: Things are happier now, so we've added back - the Timer_Queue directory to the Makefile. - - * examples/Timer_Queue: Added lots of annoying template - specializations so that the timer queue tests now work with GCC. - - * ace/Svc_Conf.l: Changed the regular expression for a - {string} so that it maches the null string (i.e., ""). - -Tue Oct 21 01:07:58 1997 Sergio Flores - - * examples/Timer_Queue: - Added documentation and fixed some warnings from the unused - arguments in some member functions. Cleaned up some .h files of - unnecessary template instantiations. - -Tue Oct 21 01:01:12 1997 Nanbor Wang - - * ace/Thread_Manager.h: Added more comments. - - * ace/Thread_Manager.{h,cpp}: Added a parameter to - Thread_Manager's constructor with default value 0. This - parameter is currently unused and put in for backward - compatibility. - (open): Putting back this method for backward compatibility. - This is currently a no-op. Thanks to David for reporting this. - Also modify some mis-inform comments. - -Mon Oct 20 22:34:46 1997 - - * ace/OS.i (open): Moved Win32 specific errno mappings from open() - to ACE_FAIL_RETURN. Also updated the wide-character version of - open(). - -Mon Oct 20 14:07:37 1997 Douglas C. Schmidt - - * ace/config-hpux-10.x.h: Added #define ACE_DEFAULT_BASE_ADDR - ((char *) 0x80000000) so that the various mmap() tests - will work on HP/UX. Thanks to Stephen Coy - for reporting this. - - * ace/OS.i: Fixed the implementation of ACE_OS::cond_timedwait() - so that it will work on VxWorks. Thanks to David Levine for - chasing this down and doing most of the changes. - - * ace/OS.h: Added a new special case for _KCC so that its - ACE_UNUSED_ARG will work properly. Thanks to Torbjorn Lindgren - for reporting this. - -Mon Oct 20 22:23:42 1997 Nanbor Wang - - * tests/Sigset_Ops_Test.cpp (main): It is not legal too for - sigismember to return 0 if we pass an invalid signal to it. - Thanks to Stephen Coy for fixing this. - - * Thread_Manager.*: Replace the thr_table_ with a double-linked - list thr_list_. With this change, we can cache the thread - descriptor entries in TSS area. Then, when accessing thread - descriptor from a spawned thread's context, we don't have to - search thru the whole list in order to find the corresponding - thread descriptor. Double-linked list and caching also make - adding/removing thread descriptor entries very fast. At this - moment, we need to do a linear search when we try to access the - cached pointer the first time. This overhead is expected to - removed shortly. The will be some memory leaks at this moment - because I haven't implemented the code to clean up the list when - a thread manager gets deleted. Will fix it soon. - - * Log_Msg.{h,cpp}: Removed thr_state methods, variable, and thr_id - methods and variable and replace them with thr_desc which cache - the pointer to the thread descriptor structure. - - * Containers.*: Added two new template classes - ACE_Double_Linked_List and ACE_Double_Linked_List_Iterator. - These two classes implement the very fundamental data structure - of double-linked list. Although this is not actually a - container class, I couldn't find a better place to put these - classes. - - * ace/Filecache.* - * ace/FIFO.* - * ace/FIFO_Send.* - * ace/FIFO_Recv.* - * ace/FIFO_Send_Msg.* - * ace/FIFO_Recv_Msg.* - * ace/Memory_Pool.* (ACE_MMAP_Memory_Pool_Options, - ACE_MMAP_Memory_Pool): Added one member variable to these class - so users can specify the LPSECURITY_ATTRIBUTES object they want - to use with them. - (map_file, init_inquire): Pass the security attribute to - underlying memory map object. - - * ace/Mem_Map.* (ACE_Mem_Map, map, open, map_it): Added a new - function parameter LPSECURITY_ATTRIBUTES. It will be passed - down to ACE_OS::mmap or ACE_OS::open. This is only used on - Win32. - -Mon Oct 20 08:48:28 1997 Steve Huston - - * ace/OS.h, config-hpux-10.x.h: Added a new definition, - ACE_HAS_TIUSER_H_BROKEN_EXTERN_C - HP-UX's tiuser.h has - def for t_errno/_terrno() outside of an extern "C" block, - so in this case, wrap #include in our own - extern "C" block. HP support call W3711856. - -Mon Oct 20 07:49:54 1997 David L. Levine - - * Makefile (TIMESTAMP): moved chmod after cvs commit. - - * include/makeinclude/platform_sunos{4,5}_sunc++*.GNU: don't - create Templates.DB/Modules.DB, because that should have been - Module.DB, and it's not needed anyways. - - * ace/config-vxworks-ghs-1.8.h: removed ACE_HAS_VERBOSE_NOTSUP. - - * tests/run_tests.vxworks: re-enabled Buffer_Stream_Test now that - ACE_OS::cond_timedwait () is supported on VxWorks. - - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp (main): removed call - to ACE_Thread_Manager::open () because it no longer is available. - -Mon Oct 20 02:04:19 1997 Douglas C. Schmidt - - * ACE version 4.3.22, released Mon Oct 20 02:04:19 1997. - -Mon Oct 20 02:01:43 1997 Douglas C. Schmidt - - * examples/Makefile: Removed the Timer_Queue directory from the - Makefile until Sergio has fixed all the examples for GCC. - -Sun Oct 19 21:15:10 1997 Sergio Flores - - * examples/Timer_Queue: Added a new testing framework for - various types of ACE_Time_Queue usecases, e.g., threaded, - reactive, and asynchronous. - The new classes are: - which factors out the common code for - different type of Timer queue implementations, for example the parsing, - the input reading, and leaves the implementation of display_menu() for - example, to subclasses. - the asynchronous version of the timer - queue, uses signals. - implements the reactive timer queue - test driver using - the threaded implementation of the - timer queue. - this class is used to specify operations on the timer queue - independently of their implementation. Thsi allows different - implementations of the timer queue to have different ways of - doing the operations without the base class having to know that. - See the Command pattern. - Added some helper functions into the class. - - -Sun Oct 19 18:07:31 1997 Douglas C. Schmidt - - * ace: Added new config files for SCO OpenServer with a new initial scheme - to make config files: - - - The config to SCO OpenServer has been changed to separate OS - specific flags, threads and compiler flags. - - - For SCO OpenServer the base config file is config-sco-5.0.0.h - - - Pthreads base files are config-fsu-pthread.h and - config-mit-pthread for FSU and MIT pthreads. - - - The compiler file has been named config-gcc-2.7.2.h, this is - base config file for GNU gcc 2.7.2 - - To build a config file for SCO using GNU gcc 2.7.2 would be: - - #include "ace/config-gcc-2.7.2.h" - #include "ace/config-sco-5.0.0.h" - - We would obtain ACE config file for SCO OpenServer with GNU gcc - 2.7.2 with no threads. To build a config file for SCO using GNU - gcc 2.7.2 with FSU pthread would be: - - #include "ace/config-gcc-2.7.2.h" - #include "ace/config-sco-5.0.0.h" - #include "ace/config-fsu-pthread.h" - - Thanks to Arturo Montes for these - changes. - - * ace/OS.i (open): Modified ACE_OS::open() so that it sets errno - to EACCES when the requested file is in use. Thanks to Edan - Ayal for reporting this. - -Sun Oct 19 17:55:34 1997 David L. Levine - - * etc/purify.solaris2: the contents of my ~/.purify file - for Solaris 2.x. The ACE tests purify cleanly with it. - -Sun Oct 19 13:49:17 1997 Carlos O'Ryan - - * ace/Proactor.cpp: - The mutex vs lock name change strikes back, this time under NT. - - * tests/Conn_Test.h: - * tests/Conn_Test.cpp: - The Svc_Handler was cached, but it had the default - handle_close() method, which destroys the object. The new - version leaks a bit of memory, but it seems that it never - crashes. - -Sat Oct 18 09:13:29 1997 Douglas C. Schmidt - - * ace/Synch_T.cpp (lock): Moved the frigging lock method of - Atomic_Op into the *.cpp file to work around bugs with earlier - versions of the horribleHP/UX C++ compiler. Thanks to Neil - Cohen for reporting this. - -Sat Oct 18 07:43:29 1997 David L. Levine - - * Makefile (release): oops, removed "echo" that was used to - disable CVS commit, for testing. - - * ace/Thread_Manager.{h,cpp},Object_Manager.{h,cpp}: moved - ace_thread_exit_lock_ to Object_Manager. - - * include/makeinclude/rules.local.GNU: added $(TEMPLATE_REPOSITORY) - to OBJDIRS, so that individual platforms can add template - repository directories for creation. - - * include/makeinclude/platform_sunos{4,5}_sunc++*.GNU: added - TEMPLATE_REPOSITORY with Templates.DB and Templates.DB/Modules.DB. - We can build without any warnings with Sun C++ now. - -Sat Oct 18 00:17:26 1997 Douglas C. Schmidt - - * ACE version 4.3.21, released Sat Oct 18 00:17:26 1997. - -Fri Oct 17 22:51:46 1997 Carlos O'Ryan - - * ace/Timer_Queue_Adapters.h: - * ace/Timer_Queue_Adapters.i: - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_T.h: - * ace/Timer_Queue_T.i: - * ace/Timer_Queue_T.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Wheel_T.cpp: - * ace/Timer_Hash_T.cpp: - Changed the accessor name for the lock_ field from mutex() to - lock(), we know this can cause trouble on HP-UX, but only if the - function is inline; so it was moved to the .cpp file. - - * ace/Timer_Queue_Adapters.h: - * ace/Timer_Queue_Adapters.i: - Changed the method name from lock() to mutex(), this should - workaround a bug in the HP/C++ compiler. - - * ace/Timer_Hash.cpp: - * ace/Timer_Hash_T.h: - * ace/Timer_Heap.cpp: - * ace/Timer_Heap_T.h: - * ace/Timer_List.cpp: - * ace/Timer_List_T.h: - * ace/Timer_Queue.cpp: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel.cpp: - * ace/Timer_Wheel_T.h: - Workaround HP/C++ compiler bug, we cannot include the .cpp file - from the header file, but it must be included in the point of - instantiation. - -Fri Oct 17 18:34:00 1997 Douglas C. Schmidt - - * ace/Atomic_Op.i (lock): Added an accessor to ACE_Atomic_Op to - return a reference to the underlying lock. Thanks to Janusz - Stopa for suggesting this. - -Fri Oct 17 15:36:26 1997 - - * ACE/config-win32-common.h: Added a directive to disable warning - of using Microsoft template instantiation control extension. - -Fri Oct 17 06:31:20 1997 David L. Levine - - * ace/Atomic_Op.i (operator=): rsh.value () instead of just rhs. - - * Makefile (release): added ACE_VERSION string to ace/Version.h. - The MS Resource-Compiler doesn't implement the preprocessor - # operator, so ACE_VERSION supplies the concatenated version - string. Thanks to Matthias for suggesting this. - - * ace/Svc_Handler.{h,cpp},Object_Manager.{h,cpp}: moved - ace_svc_handler_lock_ to Object_Manager. This lock was - created once per Svc_Handler instantiation. It has been - replaced by a single lock for all instantiations. That - shouldn't be a problem because there are so few Svc_Handler - instantiations, and the lock is only used for singleton - creation using double-checked locking. - -Fri Oct 17 01:19:35 1997 Douglas C. Schmidt - - * ACE version 4.3.20, released Fri Oct 17 01:19:35 1997. - -Fri Oct 17 00:05:55 1997 - - * ace/OS: Added ACE_Export to declarations to: - ace_mutex_lock_cleanup_adapter, ftruncate, ace_thread_adapter - - * ace/OS.cpp (readv, writev): Moved ACE_Export directive from - OS.cpp to OS.i. - - * ace/Atomic_Op (operator TYPE): operator TYPE() of Atomic_Op has - been deprecated and removed. Because both user-defined - conversions and user-defined operators were defined on - Atomic_Op, it was possible to get ambiguities between the - user-defined operators and the built-in operators. Therefore, - operator TYPE() has been removed and explicit accessor value() - has been added. Thanks to Stephen Coy for - suggesting this. - - * ace/Atomic_Op (operator!=): Add new operator. - - * tests/Atomic_Op_Test.cpp: Previously we had foo.operator== (5). - It was necessary to resolve the ambiguities between the - user-defined operators and the built-in operators. Since we have - removed the automagic type conversion, we can go back to writing - foo == 5. - - * ACE: Atomic Op related minor changes: - - ace/Malloc.cpp (dump): - tests/Future_Test.cpp (main): - tests/Reactors_Test.cpp (handle_input): - example/Threads/{future1.cpp future2.cpp manual_event.cpp task_two.cpp tss2.cpp}: - examples/Reactor/Misc/test_reactors.cpp: - - * tests/Notify_Performance_Test.cpp: - * tests/Reactor_Performance_Test.cpp: - - Moved explicit template instantiation code to ACE_HAS_THREADS - part for the test. Thanks to Stephen Coy - for pointing this out. - -Thu Oct 16 20:44:40 1997 James C Hu - - * ace/Message_Block.cpp: Changed how continuations are released in - the Message_Block::release_i() method to use an iteration rather - than recursion. This is to avoid a stack overflow problem - encountered by Janusz Stopa. - - * ace/OS.cpp: Added ACE_Export to the declarations of ::writev and - ::readv. These are emulation implementations for systems that - don't support them natively. Was not being resolved correctly - on NT. Hopefully this will fix it. Fix suggested by Rob Head - (rhead@virtc.com). - -Thu Oct 16 14:21:34 1997 Nanbor Wang - - * ace/Proactor.cpp: Replaced #include "ace/Servie_Config.h" with - #include "ace/Object_Manager.h" for declaration of - ACE_Static_Object_Lock. - -Thu Oct 16 10:22:48 1997 Carlos O'Ryan - - * ace/Timer_Heap_T.h: - Fixed comment on the Heap_Iterator, it said "Iterates over an - "). - -Thu Oct 16 08:43:50 1997 David L. Levine - - * ace/OS.i (sema_trywait): on VxWorks only, fixed to set errno to - EBUSY if the semaphore couldn't be taken. Thanks to Doug for - suggesting this fix. - - * performance-tests/Misc/preempt.cpp (main): fixed program name. - - * include/makeinclude/platform_osf1_4.0.GNU: OCFLAGS instead of OFLAGS. - - * tests/test_config.h (VxWorks): restored the removal of the log - file, because it again appears to be necessary. - - * tests/run_tests.vxworks: updated VxWorks tests status. - - * ace/OS.cpp,Token_Invariants.{h,cpp},Object_Manager.{h,cpp}: - moved ace_os_monitor_lock and ACE_Token_Invariants_Creation_Lock - to Object_Manager. - -Thu Oct 16 02:26:12 1997 Douglas C. Schmidt - - * ACE version 4.3.19, released Thu Oct 16 02:26:12 1997. - -Thu Oct 16 02:07:54 1997 Douglas C. Schmidt - - * tests/Priority_Reactor_Test.cpp: Added a "max_retries" flag to - keep the test from hanging forever... Thanks to Stephen Coy - for motivating this. - - * tests/Priority_Reactor_Test.h: Changed - - class Read_Handler : public ACE_Svc_Handler< - - to - - class Read_Handler : public ACE_Svc_Handler< - - and the same for the Write_Handler. Thanks to the ever vigilant - Stephen Coy for reporting this. - -Thu Oct 16 01:18:48 1997 Nanbor Wang - - * ace/OS.cpp (socket_init): Changed to use ACE_UNUSED_ARG. - - * ace/SV_Semaphore_Simple.cpp (name_2_key): Explicitly cast the - return value to (key_t). It was causing problem on Win32. - -Wed Oct 15 22:47:30 1997 Carlos O'Ryan - - * ace/ACE.h: - * ace/ACE.cpp: - Added an implementation of the ISO 8802-3 standard 32 bits CRC, - but for strings only. The implementation was taken from the - FreeBSD code. - - * ace/SV_Semaphore_Simple.cpp: Improved the hashing algorithm to - assign a "unique" key for semaphore keys using an string. This - solves a problem detected by Mark L. Boriack - (Mark.L.Boriack@cpmx.saic.com): under OSF/1 the were too many - collitions with the default arguments for ACE_Process_Mutex. - Note that this is only a problem if no name is given to it. - - * ace/Log_Msg.cpp: ACE_Log_Msg_message_queue_ was not initialized - in platforms without threads. - - * ace/Containers.h: Added a duplicate ACE_Ubounded_Stack_Iterator - to the NANBOR_EXP_CHANGES block. - - * ace/OS.h (ACE_DES_FREE_TEMPLATE): Removed unneeded concatenation - that was getting the HP/aCC compiler a bit confused. Thanks to - Stephen Coy for pointing out the problem - and then reminding me of actually adding the solution to ACE. - -Wed Oct 15 11:07:47 1997 Douglas C. Schmidt - - * ace/OS.i: Fixed the flock_trywrlock() and flock_tryrdlock() so - that they both set errno = EBUSY if they lock is already held. - - * ace/OS.i (mutex_trylock): Make the VxWorks version consistent - with the other versions by returning -1 and setting errno to - EBUSY. Thanks to David Levine for reporting this. - - * ace/Synch.h: Updated the documentation to clarify what the - return value is from the tryacquire() methods. - - * ace/OS.i (mutex_trylock): On NT, if we try to acquire a mutex - that's already locked we'll return -1 and set errno to EBUSY - rather than ETIME to be consistent with Pthreads. Please see - the following entry to understand why this doesn't break - existing code ;-). - - * ace/OS.h: Added a #define for EBUSY on NT. We'll make it the - same as ETIME to avoid breaking existing code! - - * tests/Process_Strategy_Test.cpp (main): Ignore SIGCHLD in the - child. - -Wed Oct 15 14:59:41 1997 - - * tests/run_tests.bat: Added Reactor_Performance_Test and - Notify_Performance_Test to one button test script. - - * tests/tests.dsw: Added Reactor_Performance_Test.dsp and - Notify_Performance_Test.dsp. - -Wed Oct 15 07:21:05 1997 David L. Levine - - * ace/ACE.{h,i},Version.h: added ACE version macros, and static - functions to access them in class ACE. - - * Makefile (release): updates ace/Version.h based on contents of - VERSION. - - * tests/Time_Value_Test.cpp: added test of ACE version accessors. - - * ace/OS.cpp,Object_Manager.cpp: changed ACE_TSS_CLEANUP_LOCK - from an ACE_Thread_Mutex to an ACE_Recursive_Thread_Mutex. - - * ace/OS.h: define ACE_NOTREACHED as empty on DEC_CXX (and - on ghs instead of VXWORKS). - - * tests/TSS_Test.cpp (worker): convert void *c to long if - ACE_HAS_64BIT_LONGS to avoid DEC cxx compiler warning. - - * examples/Threads/thread_specific.cpp (worker): convert void *c - to long if ACE_HAS_64BIT_LONGS. Changed name of "lock" to - "printf_lock" to avoid collision with lock () in DEC cxx - iostream.hxx. - - * examples/threads/tss1.cpp: removed unused static "lock". - - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp (read_file): convert - void *fd to long if ACE_HAS_64BIT_LONGS. And, put "n" in - ACE_UNUSED_ARG. (main): put "return 0" in ACE_NOTREACHED. - - * include/makeinclude/platform_osf1_4.0.GNU: minor cleanup, incl. - addition of -use_ld_input to SOFLAGS. - - * include/makeinclude/platform_osf1_4.0_g++.GNU: added "c" to - ARFLAGS. - - * tests/Future_Test.cpp,examples/Threads/future[12].cpp - (Method_Object_Name): removed extraneous ";" after function - definition. - - * netsvcs/lib/Base_Optimizer.h: adding missing, default "public" - access specifier. - - * apps/JAWS/Server/HTTP_Config.h: added "class" to friend HTTP_Config - declaration in HTTP_Config_Info. - - * examples/IPC_SAP/TLI_SAP/ftp-client.cpp: removed unused variable - "MAXLINE". - - * examples/IPC_SAP/TLI_SAP/db-server.cpp (main): wrapped "return 0" - with ACE_NOTREACHED. - - * examples/Reactor/Misc/test_timer_queue.cpp (handle_timeout): - convert void *arg to long if ACE_HAS_64BIT_LONGS. - - * examples/Service_Configurator/IPC-tests/client/ - local_fifo_client_test.cpp: removed unused variable BUF_LEN. - - * examples/Shared_Malloc/test_persistence.cpp: - removed unused Employee ostream << operator. - - * tests/Conn_Test.cpp: neutered Conn_Test on DEC_CXX. It - doesn't build on DEC cxx 5.5 due to apparent template - instantiation problems. Thanks to James Johnson for - reporting that. And it doesn't terminate when built with - DEC cxx (beta) 6.0. - - * ace/Thread_Manager.h: removed parens from (???) because - g++ got upset about encountering a trigraph. - - * tests/{Notify,Reactor}_Performance_Test.cpp: added - ACE_UNUSED_ARG (handle). - - * tests/Makefile,run_tests.sh: added Reactor_Performance_Test and - Notify_Performance_Test. - - * tests/run_tests.vxworks: added test status of - Reactor_Performance_Test (doesn't appear to do anything, - but doesn't return) and Notify_Performance_Test (fcntl - not supported). - -Wed Oct 15 01:48:36 1997 Nanbor Wang - - * ace/Containers.{h,i,cpp}: - * ace/Thread_Manager.{h,i,cpp}: Start modifying these files. - Will work on them for a day or two. You guys shouldn't worry - about these changes affecting anything because I surround my - changes with #ifdef (NANBOR_EXP_CHANGES) my changes #else - original codes #endif. More details change log will be added - once I get them all working. - -Tue Oct 14 23:54:21 1997 Douglas C. Schmidt - - * ACE version 4.3.18, released Tue Oct 14 23:54:21 1997. - -Tue Oct 14 20:27:28 1997 Carlos O'Ryan - - * tests/Priority_Reactor_Test.cpp: - Added a debug message to find out who terminates the reactor - thread. - - * tests/Priority_Reactor_Test.cpp: - The children could not connect sometimes, this will cause the - test to hang, waiting for those failed connections. - I added a simple exponential backoff strategy to retry - connections until they succeed. - -Tue Oct 14 17:48:28 1997 Steve Huston - - * ace/config-hpux-10.x-hpc++.h: Set ACE_LACKS_SIGNED_CHAR for - both C++ and aC++, not just C++. Thanks to Stephen Coy and - David Levine for finding this. - -Tue Oct 14 03:26:17 1997 Douglas C. Schmidt - - * ace/OS.h: Moved to earlier in the file so that - u_int will be defined. Thanks to Neil B. Cohen - for reporting this. - - * ace/OS.cpp (uname): Added a workaround for the fact that - Chorus doesn't support uname(). Thanks to Wei Chiang for - this fix. - -Tue Oct 14 08:02:20 1997 David L. Levine - - * ace/Managed_Object.{h,cpp} (ACE_Cleanup_Adapter): added virtual - destructor, needed by some compilers for vtable placement. - Thanks to Stephen Coy for this patch. - - * ace/Svc_Conf_y.cpp: commented out unused args and wrapped - assignments in "if" conditionals to avoid g++ warnings. - - * ace/Object_Manager.{h,cpp},Synch.{h,cpp}: moved - ACE_Static_Object_Lock from Synch.{h,cpp} to Object_Manager.{h,cpp}. - This allows it to be absorbed into the ACE_Object_Manager's - preallocated locks. The ACE_Static_Object_Lock interface - isn't really needed any more, but has been kept for backward - compatibility. - - * ace/Object_Manager.cpp: use a static ACE_Static_Object_Lock, - temporarily, because the ACE static services needs it. - - * ace/Malloc.cpp,Reactor.cpp,Service_Repository.cpp: added - #include "ace/Object_Manager.h" for ACE_Static_Object_Lock. - - * ace/Thread_Manager.h: moved ACE_Thread_Manager::THR_FUNC typedef - outside the class declaration to avoid compilation problems on - g++/VxWorks/i960 with -g. THR_FUNC is only used by protected - ACE_Thread_Manager methods so this doesn't widen the public - interface. Thanks to Aaron Valdivia for - reporting this and verifying the fix. - - * tests/IOStream_Test.cpp (client): multiply floats by 1.0 instead - of 1 to avoid bad code generation on g++/VxWorks/i960. Thanks to - Aaron Valdivia for reporting this. - - * tests/Buffer_Stream_Test.cpp: removed unused static thread_manager. - It caused core dump during destruction of static objects with - ACE_HAS_NONSTATIC_OBJECT_MANAGER. - - * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp (handle_timeout): - removed declaration of unused arg "tv". - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (main): - removed declarations of unused args "argc" and "argv". And, - updated template instantiations. - - * ace/OS.h: use "complex" ACE_UNUSED_ARG for DEC_CXX. - - * ace/Reactor.i (implementation): moved definition to top of - file to prevent use before definition. - - * ace/ARGV.cpp (ACE_ARGV): removed extraneous ; function definition. - - * ace/config-osf1-4.0.h: removed ACE_NEEDS_DEV_IO_CONVERSION. - - * tests/Time_Value_Test.cpp: ACE_HAS_64BIT_LONGS instead of - ACE_HAS_64BIT_LONG. - -Tue Oct 14 03:13:38 1997 Douglas C. Schmidt - - * ACE version 4.3.17, released Tue Oct 14 03:13:38 1997. - -Tue Oct 14 03:10:00 1997 Douglas C. Schmidt - - * ace/Service_Types.cpp (fini): Backed out the following change - until we figure out how to keep existing Svc_Handler code from - dying... Thanks to Nanbor for reporting this. - - * ace/Service_Types.cpp: Changed the implementation so that we - bypass the default cleanup originally done in - ACE_Service_Type_Impl::fini() and instead perform the cleanup in - ACE_Service_Object_Type::fini (void). Thanks to Alex Chan - for reporting this. - - * ace/Svc_Conf.y: Make sure that the Module has the same name as - the Module_Type object from the svc.conf file. We need to do - this because the Stream_Type::fini() method removes each module - by the name given in the configuration file (stored in the - Module_Type object). But the Stream::remove() method compares - this name against the name stored in the Module. So the object - is deleted, but never removed from the list. Another traversal - of the list causes a crash... Thanks to Eric Newton for - suggesting this fix. - - * ace/OS.cpp (invoke): Added call to AfxEndThread insides - ACE_TSS_Cleanup::exit() such that the same cleanup would not be - executed again when threads exit in ace_thread_adapter() in - OS.cpp. Thanks to Alex Chan for - reporting this. - - * ace/Service_Config.cpp (process_directives): Avoid reporting - lex/yacc leakage since there is nothing we could do about it. - Thanks to Alex Chan for reporting this. - - * ace/Svc_Conf.y: Removed duplicate call to symbol() to avoid the - problem that dynamic service objects are created twice. Thanks - to Alex Chan for reporting this. - - * examples/Reactor/FIFO/client.cpp (main): Fixed the call to - fifo_sender.send () so that it passes msg rather than &msg. - Thanks to Sandro Doro for reporting this. - -Tue Oct 14 02:49:02 1997 - - * tests/Notify_Performance_Test.cpp: New performance test. 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. - - * tests/Reactor_Performance_Test.cpp: New performance test. This - test is used to time the dispatching mechanisms of the - ACE_Reactors. Both the WFMO_Reactor and Select_Reactor can be - tested. - - * ace/Svc_Handler.cpp (shutdown): Change READ_MASK | WRITE_MASK to - ALL_EVENTS_MASK. - - * ace/Atomic_Op (value): Added an explicit value accessor. - -Mon Oct 13 23:07:15 1997 Douglas C. Schmidt - - * tests/Process_Strategy_Test.cpp (handle_signal): Removed the - ACE_DEBUG calls in the child reader signal handler. This was - causing all sorts of random problems due to the asynchronous - nature of signals. Thanks to David Levine for pointing this - out. - -Mon Oct 13 16:27:46 1997 Carlos O'Ryan - - * tests/Priority_Reactor_Test.h: - * tests/Priority_Reactor_Test.cpp: - Fixed wrong header file, thanks to Irfan (irfan@cs.wustl.edu) - - * examples/Shared_Malloc/test_persistence.cpp: - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: - Added a couple of ACE_NOTREACHED, thanks to Torbjorn Lindgren - for pointing out this one. - - * ace/Priority_Reactor.cpp: - Added some more template specializations. - - * tests/Priority_Reactor_Test.cpp: - Fixed a number of bugs: hostname not initialized when creating - the server address. - The Svc_Handler base class should be instantiated using the - ACE_*_STREAM macros. - The code for non-threaded platforms was broken. - Thanks to Irfan - - * tests/Priority_Task_Test.cpp: - We use the new ACE_Sched_Priority_Iterator. - - * include/makeinclude/platform_irix6.x-32_sgic++.GNU: - * include/makeinclude/platform_irix6.x-n32_sgic++.GNU: - Removed this old config files, they have been superseeded by - platform_irix6.x_sgic++.GNU. - -Mon Oct 13 15:41:32 1997 Steve Huston - - * ace/Select_Reactor.i, Priority_Reactor.i: Moved code for the - ACE_Event_Tuple struct from Priority_Reactor.i to Select_Reactor.i. - - * ace/Priority_Reactor.cpp: added #include Malloc_T.h to build on AIX. - - * ace/Synch_T.h, Timer_Queue_Adapters.h - added a template argument - to the non-ACE_HAS_TEMPLATE_TYPEDEFS, multi-threaded version of - the ACE_SYNCH_CONDITION macro - of the 3 possibilities for its - definition, this is the only case which requires a template - argument. Timer_Queue_Adapters.h is the only user of the definition, - and it was changed to not supply the template argument. - - * tests/Conn_Test.h: - * tests/Process_Strategy_Test.h: Added #include "ace/SOCK_Stream.h" - -Mon Oct 13 13:42:05 1997 Nanbor Wang - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp (svc): - Added a macro to define L_cuserid on Win32. - -Mon Oct 13 13:44:40 1997 - - * ace/Priority_Reactor: Fixed a gross violation of ACE coding - standard. Changed bucket to bucket_. - -Mon Oct 13 12:58:01 1997 David L. Levine - - * ace/OS.i: moved ACE_OS::strcasecmp () definition after - ACE_OS::strlen () to prevent use before definition. - - * ace/Priority_Reactor.i: reordered initializers to match - declaration order. - - * ace/Sched_Params.i: reordered function definitions to prevent - uses before definitions. - - * ace/Thread_Manager.cpp (ACE_Thread_Descriptor ctor): reordered - initializers to match declaration order. (spawn_i): added - ACE_UNUSED_ARG (t_handle) without WTHREADS. - - * ace/Thread_Manager.cpp (wait): moved all of the "join" block - inside the #ifndef VXWORKS so that it compiles on VxWorks. - - * ace/Strategies_T.cpp (ACE_NOOP_Creation_Strategy:: - make_svc_handler): removed unused arg declaration to avoid - compiler warning. - - * ace/Svc_Conf_y.cpp: commented out unused args and wrapped - assignments in "if" conditionals to avoid g++ warnings. - - * tests/Priority_Reactor_Test.cpp (handle_input): added - ACE_UNUSED_ARG (h). - - * examples/Connection/non_blocking/CPP-connector.cpp (handle_signal): - added ACE_UNUSED_ARG (signum). - -Mon Oct 13 03:25:45 1997 Douglas C. Schmidt - - * ACE version 4.3.16, released Mon Oct 13 03:25:45 1997. - -Mon Oct 13 03:18:33 1997 Douglas C. Schmidt - - * ace/Thread_Manager.h: Removed the following code from - ACE_Thread_Control: - - #if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - static ACE_Thread_Mutex ace_thread_lock_; - // Lock the creation of the Singleton. - #endif /* defined (ACE_MT_SAFE) */ - - What on earth was this doing here?! Thanks to Stephen Coy - for reporting this. - -Mon Oct 13 00:10:00 1997 - - * tests/Atomic_Op_Test.cpp (main): Changed "foo == 5L" to - "foo.operator== (5L)" because the former was breaking some - compilers (e.g., HP/UX aCC). - - * ace/Connector.h (open): Removed the defaults arguments since - some compilers complain about the two open()s being - indistinguishable. - -Sun Oct 12 23:51:57 1997 Douglas C. Schmidt - - * ace/{Synch_T,Atomic_Op}: All the relational operators should - return int (really return bool) rather than TYPE. - -Sun Oct 12 18:41:01 1997 Carlos O'Ryan - - * tests/Priority_Reactor_Test.cpp: - Added several missing template specializations. - - * ace/Priority_Reactor.cpp: - Fixed typo (#pragme for #pragma). - Added several missing template instantiation. - - * ace/Timer_Queue_Adapters.cpp: - The includes were missing and there was a minor syntax error. - -Sun Oct 12 16:16:15 1997 Nanbor Wang - - * ace/ace_{dll,lib}.dsp: Added Timer_Queue_Adapters.cpp into - project files. - - * tests: Added a new test Priority_Reactor_Test. - - * ace/Timer_Queue_Adapters.{h,i}: Added or moved the line that - instructs edit mode to use on emace to the first line. Also - added ACE_Export to classes in this file. - - * ace/Timer_Queue_Adapters.cpp: Added proper inclusion of the - header file. Corrected a syntax error. - - * examples/Timer_Queue/Timer_Queue.dsw: Added a new project - Thread_Timer_Queue_Test.dsp. - - * tests/run_tests.{bat,sh}: Added MT_SOCK_Test and - Priority_Reactor_Test into one-buttoned test set. - -Sun Oct 12 16:53:32 1997 Douglas C. Schmidt - - * ace/examples/Service_Configurator/IPC-tests/server: Reformatted - and recommented the code a bit. - - * ace/OS: Added 3 new ACE #defines: - - #define ACE_ONE_SECOND_IN_MSECS 1000L - #define ACE_ONE_SECOND_IN_USECS 1000000L - #define ACE_ONE_SECOND_IN_NSECS 1000000000L - - This is much easier to read than trying to keep track of the - 000s! Then, replaced all uses of the original values with the - new symbolic constants. - - * ace/Timer_List.cpp: Removed an explicit template instantiation - of ACE_Async_Timer_Queue_Adapter<>. Why was it here in the - first place? - - * ace: Created a new group of Timer_Queue_Adapters files and moved - the Async and Thread adapters into this file. This reduces the - amount of coupling in the ACE library and removes problems with - circular includes. - - * ace/Timer_Queue_T: Added a new ACE_Thread_Timer_Queue_Adapter, - which makes it possible to use a timer queue in a thread - automagically. Thanks to Carlos O'Ryan for writing this. - - * examples/Timer_Queue: Began to integrate Carlo's new thread - timer queue test. - - * examples/Timer_Queue/Async_Timer_Queue_Test.cpp: Changed the - timer queue from a Timer_List to a Timer_Heap. - - * examples/Makefile (DIRS): Added Timer_Queue to the list of DIRS - to build. - -Sun Oct 12 16:45:47 1997 Carlos O'Ryan - - * ace/Sched_Params.h: - Added some comments. - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: - Added some comments and template specializations. - - * examples/Naming/Makefile: - There is no need to set LDLIBS to add local object files - anymore, using FILES is enough. - -Sun Oct 12 03:35:37 1997 Nanbor Wang - - * examples/Timer_Queue: Added a new directory for testing of - various usages of timer queue. - - * tests/Async_Timer_Queue_Test: Moved to examples/Timer_Queue. - It doesn't really belong to tests/ directory. - - * ace/ACE.cpp (register_stdin_handler): Must register the reactor - we are using to the event handler. - (read_adapter): Must notify the reactor when we are done with - handling stdin event. - -Sun Oct 12 00:26:56 1997 Carlos O'Ryan - - * ace/Makefile: - * ace/Priority_Reactor.h: - * ace/Priority_Reactor.i: - * ace/Priority_Reactor.cpp: - Augmentes Select_Reactor, adding priority based dispatching for - the I/O Event_Handlers, the only feature supported is - dispatching in the order defined by the priorities. - Each Event_Handler defines its priority, if the priority is out - of range the culprit is "punished" by dispatching at the lowest - priority. - Care has been exercised to avoid dynamic memory allocation. - - * tests/Makefile: - * tests/Priority_Reactor_Test.h: - * tests/Priority_Reactor_Test.cpp: - Added small tests of the Priority_Reactor, the test runs an - Acceptor on the main thread and creates several threads (or - processes if the plaform does not support threads) that connect - to this Acceptor. The writing threads send several short - messages, the main thread receives them using one Svc_Handler - per writer, dispatched at different priorities. - The test itself is interesting, it shows how to write very - simple Svc_Handler, Connectors and Acceptors. - - * ace/Select_Reactor.h: - * ace/Select_Reactor.cpp: - The dispatching of all the handles in a "group" (READ, WRITE or - EXCEPT) was encapsulated in a single routine. - - * ace/Malloc_T.cpp: - In the Cached_Allocator memory was allocated as an arrays of - char, it must be released the same way. - - * ace/Sched_Params.h: - * ace/Sched_Params.i: - Added a new class (ACE_Sched_Priority_Iterator) to iterate over - the priorities. - - * tests/Priority_Task_Test.cpp: - Added some comments. - -Sat Oct 10 16:23:49 1997 Steve Huston - - * tests/SOCK_Connector_Test.cpp: Passes the test if the should-fail - non-blocking test fails for any reason - not limited to ECONNREFUSED - or ENOTCONN. - -Sat Oct 11 16:02:33 1997 Douglas C. Schmidt - - * ACE version 4.3.15, released Sat Oct 11 16:02:33 1997. - -Sat Oct 11 14:38:16 1997 Douglas C. Schmidt - - * ace/SOCK_Connector.cpp (complete): Fixed a typo with - ACE_NON_BLOCKING_BUG_DELAY. Thanks to John Zeb Dhom" - for reporting this. - - * tests/MT_SOCK_Test.cpp (client): Slightly revised the client - function so that it doesn't try to use non-blocking connects if - it's on a Win32 platform that has bugs with non-blocking - connects. - - * ace/SOCK_Connector.cpp: It appears that connect() can set the - ETIMEDOUT errno if the connection times out (whatever that - means). Therefore, I need to check for that errno, rather than - ETIME after calling connect(). - - * tests/SOCK_Connector_Test.cpp: Added a check for ETIMEDOUT - since this appears to be set by some platforms (e.g., - SGI). - -Sat Oct 11 02:52:10 1997 Douglas C. Schmidt - - * ACE version 4.3.14, released Sat Oct 11 02:52:10 1997. - -Sat Oct 11 02:10:29 1997 Carlos O'Ryan - - * examples/Logger/simple-server/Makefile: - * examples/Mem_Map/IO-tests/Makefile: - * examples/Reactor/Multicast/Makefile: - * examples/Service_Configurator/Misc/Makefile: - Fixed some more problems with the Makefiles for binaries; I took - the chance and added RCS ids on the Makefiles - -Fri Oct 10 18:39:39 1997 Douglas C. Schmidt - - * tests/Service_Config_Test.cpp: Moved the static member function - called cleanup() out into a stand-alone extern "C" function - called test_singleton_cleanup() to workaround MVS C++ compiler - bugs. Thanks to Chuck Gehr for reporting this. - - * ace/Task.cpp: Solved the age old MVS C++ problem where we can't - register C++ static member functions as C callback functions. - The solution here was to create a C wrapper to do the callback. - Thanks to Chuck Gehr for reporting this. - - * tests/Service_Config_Test.cpp: Made the destructor of - Test_Singleton public to work around bugs with the MVS C++ - compiler. Thanks to Chuck Gehr for reporting this. - - * ace/ACE, - ace/Proactor, - ace/SOCK_Connector, - ace/SPIPE_Connector, - ace/Acceptor, - tests/Conn_Test: Changed ETIMEDOUT errno to ETIME errno to be - consistent throughout ACE. There should be no uses of - ETIMEDOUT in ACE or the test apps and examples. - - * ace/ACE.cpp (handle_timed_complete): Only assume that we've - timed out if the return value from select() == 0 *and* the - timeout value isn't NULL... - - * ace/Object_Manager.h: Replaced the use of ACE_MT() in the header - file with a #ifdef. This solves problems that arise when ACE_MT - is defined as "nothing" when MT_SAFE is not defined. As a code - which has "ACE_MT();" becomes just ";" and fail to compile. - Thanks to Avraham Nash for reporting - this. - -Fri Oct 10 19:55:50 1997 Carlos O'Ryan - - * examples/ASX/CCM_App/Makefile: - * include/makeinclude/rules.bin.GNU: - I have re-applied Steve Huston changes from Oct 01, the change - was (IMHO) useful and made compilation cleaner. - - * examples/ASX/Event_Server/Event_Server/Makefile: - Fixed problem that made compilation fail. - -Fri Oct 10 19:52:44 1997 - - * ace/OS.h: - * ace/Connector.cpp: - * ace/SOCK_Connector.cpp: Added new #define - ACE_NON_BLOCKING_BUG_DELAY and replace their uses from some - magic numbers to this constant. - -Fri Oct 10 19:27:28 1997 Steve Huston - - * include/makeinclude/rules.bin.GNU - examples/ASX/CCM_App/Makefile - Removed the changes to these files added Oct 01. - -Fri Oct 10 15:21:07 1997 - - * examples/Connection/non_blocking/CPP-connector.cpp - (disconnecting): Remove this method. It was not being used. Also - rewrote some parts of handle_close to make the code simple. - - * ace/Connector.cpp (create_AST): The register_handler() method - now needs to explicitly be given the handle to wait on. This is - because the get_handle() method of Connector has been - depricated. - - * examples/Connection/non_blocking/test_sock_connector.cpp (main): - Since this test waits on the STDIN handle to become ready, we - have to make sure that the WFMO_Reactor is used on Win32. This - is necessary since select() on NT does not support waiting on - STDIN. - - * examples/Connection/non_blocking/CPP-connector.cpp (open): On - Win32, the std handle must be registered directly (and not as a - socket). On non-Win32, the std handle must be registered as a - normal handle with the READ mask. Since on Win32, STDIN is used - directly as an waitable handle, handle_signal will be called - instead of handle_input. Therefore, we had to add handle_signal - to the event_handler. - -Fri Oct 10 15:16:47 1997 Nanbor Wang - - * ace/WFMO_Reactor.{h,cpp}: - * ace/Select_Reactor.{h,cpp}: - * ace/Reactor_Impl.h: - * ace/Reactor.h: Added 2 new functions in ACE_Reactor class so we - can replace the signal handler and timer queue the reactor is - using. Notice that you should do this before you start the - reactor, otherwise, you may loose your scheduled timed events. - -Fri Oct 10 14:49:40 1997 Douglas C. Schmidt - - * bin/man2html: Added a new set rul -e 's/^$/

    /g', which - correctly preserves paragraph boundaries. Regenerated all of - the ACE html documentation so that it is much better formatted. - -Fri Oct 10 11:08:02 1997 Carlos O'Ryan - - * tests/run_tests.sh: - We remove the log file before running a test, we also check for - the log file existance before running run_test.check on - it. Thanks to Dean Clamons for - helping us with this. - - * tests/run_tests.check: - IRIX egrep does not support -q, we redirect the output the - /dev/null instead. - -Fri Oct 10 01:46:07 1997 Douglas C. Schmidt - - * ACE version 4.3.13, released Fri Oct 10 01:46:07 1997. - -Thu Oct 9 22:23:56 1997 Douglas C. Schmidt - - * ace/Thread_Manager.cpp: Moved the explicit template - instantiations for ACE_Unbounded_Queue out of the complicated - #ifdef since we also want this to compile even if we don't have - threads. - - * tests/MT_SOCK_Test.cpp: Revised the code so that it uses - processes on UNIX rather than threads. - - * tests/SOCK_Test.cpp (spawn): Cleaned up the code to make it - correct. - - * ace/Get_Opt.cpp (ACE_Get_Opt): Changed the third argument to the - ACE_Get_Opt constructor be changed from `char *' to `const char - *'. Thanks to Eric Newton for suggesting this. - -Thu Oct 09 18:43:14 1997 - - * ace/Strategies_T.cpp (connect_svc_handler): Added - synchronization to the method as the setting of the in_use bit - in the service handler must be done atomically with the finding - and binding of the service handler in the cache. - - * tests/Conn_Test.cpp (client_connections): Added multithreading - to the test in order to test out the new MT features of the - Connector. - - * ace/OS.cpp (invoke): Somehow there was a bug introduced in - ACE_Thread_Adapter::invoke where the user entry point was being - called twice! - -Thu Oct 09 17:54:31 1997 Douglas C. Schmidt - - * ACE version 4.3.12, released Thu Oct 09 17:54:31 1997. - -Thu Oct 9 17:46:59 1997 Carlos O'Ryan - - * ace/Thread_Manager.cpp: - Added explicit instantiation of - ACE_Unbounded_Queue_Iterator, it seems to - be needed on Linux and other platforms; thanks to Huiying Shen - for pointing out this one. - - * ace/OS.h: - * ace/OS.i: - Reverted the change that added support for - pthread_setconcurrency on IRIX, the function was supposed to be - undocumented, but present on the libraries, I could not find it - in any of the SGI machines we have access to. - - * ace/Thread_Manager.cpp: - On IRIX/SGIC++ we need to instantiate ACE_Node too. - - * ace/SOCK.h: - Moved the open() method to the public interface, it is used by - ACE_SOCK_Connector. - -Wed Oct 8 20:01:35 1997 Douglas C. Schmidt - - * ace/SOCK_Connector: Modified the ACE_SOCK_Connector so that it - doesn't maintain state and doesn't inherit from ACE_SOCK. - Therefore, we can have multiple threads using the same - ACE_SOCK_Connector simultaneously without any reentrancy - problems. - - * ace/SOCK.h: Moved the open() method into the public part of the - class so it can be used in ACE_SOCK_Connector::connect(). - - * ace/Connector.h: Removed the this->connector_ from the - ACE_Connector class in order to make this pattern work correctly - with multi-threaded programs. Also removed the connector() - accessor (which was never useful anyway). - - * ace/SOCK.cpp (open): Explicitly test setsockopt() for -1 in case - of failure. - - * tests/SOCK_Test.cpp (server): Revised this test to reflect the - fact that it doesn't iterate, but only runs one client and one - server. - - * tests: Added a new test for multi-threaded sockets called - MT_SOCK_Test.cpp. Thanks to Bob Laferriere - for motivating this test. - -Wed Oct 8 12:09:46 1997 Nanbor Wang - - * ace/OS.i (strcasecmp): Oops, we forgot to compare the strlen - first. Thanks to Murphy Ivan for - fixing the bug. - - * ace/OS.h: Added THR_DAEMON macro definition for Win32 (et. al.?) - to avoid compilation error. - Removed ACE_HAS_BROKEN_TEMPLATE_DESTRUCTOR and related macros. - -Wed Oct 8 09:52:20 1997 Carlos O'Ryan - - * ace/Parse_Node.cpp: - Fixed the minor syntax error *again*. - -Tue Oct 7 17:10:51 1997 Carlos O'Ryan - - * ace/Token_Manager.cpp: - Added a defined(ACE_MT_SAFE) protection around the lock creation - on ACE_Token_Manager::instance(), otherwise it would not work on - platforms without threads. Thanks to "Neil B. Cohen" - for pointing this one out. - -Tue Oct 7 07:07:45 1997 Douglas C. Schmidt - - * ace/Parse_Node.cpp (symbol): Added an ACE_ERROR_RETURN instead - of an ACE_RETURN to bail out if an error occurs. Thanks to Eric - Newton for reporting this. - -Tue Oct 7 10:57:48 1997 Carlos O'Ryan - - * ace/OS.h: - Added a prototype for pthread_setconcurrency when - ACE_HAS_IRIX62_THREADS is defined. This function is undocumented - but was needed by some users. - - * ace/Parse_Node.cpp: - Fixed a minor syntax error. - -Tue Oct 07 06:58:40 1997 Douglas C. Schmidt - - * ACE version 4.3.11, released Tue Oct 07 06:58:40 1997. - -Tue Oct 7 02:51:55 1997 Nanbor Wang - - * tests/TSS_Test.cpp (main): - * tests/Task_Test.cpp (main): - * tests/Barrier_Test.cpp (main): Removed thread_handles[] since we - don't need to join the thread explicitly anymore. - - * ace/Thread_Manager.{h,cpp}: Added an ACE_Unbounded_Quque to - collect terminated threads so that we can later join the threads - automatically by issuing a ACE_Thread_Manager::wait(). Some - typos are also fixed. Next step will be to replace current - thr_table_ with a hash table and store an index to this table - in TSS. - -Mon Oct 6 22:16:45 1997 Douglas C. Schmidt - - * ace/Thread_Manager: Added a new task() method to - ACE_Thread_Manager that returns a pointer to the current - ACE_Task_Base we're executing in if this thread is indeed - running in an ACE_Task_Base, else return 0. Thanks to Ari Erev - and John Neystadt for suggesting this. - - * ace/Thread_Manager: Moved the task_ pointer from the public part - of the ACE_Thread_Descriptor class into the private part of the - class and added an inline accessor instead. - - * ace/{Parse_Node.{h,cpp},Svc_Conf.y}: Added support to enable - dynamically allocate objects from factory functions that have - been pre-registered with the Service Configurator instead of - relying on dynamic loading. The new config file syntax would be - (note the colons): - - dynamic joe Service_Object * : make_queue() active - dynamic bob Service_Object * : make_queue() active - - Functions are found in the list of statically defined functions - for static services. Thanks to Eric C. Newton - for this fix. - -Mon Oct 6 13:00:19 1997 Carlos O'Ryan - - * ace/CORBA_Handler.cpp: Removed the use of reactor_ in the .cpp - file too; we are using the ACE_Event_Handler reactor_ (which is - a base class). - -Sat Oct 04 17:40:30 1997 Douglas C. Schmidt - - * ACE version 4.3.10, released Sat Oct 04 17:40:30 1997. - -Sat Oct 4 11:57:25 1997 Douglas C. Schmidt - - * apps/Orbix-Examples/Event_Comm/{Supplier,Consumer}/Makefile: - Changed a typo where /src/ was being used instead of /libsrc/. - Thanks to Jean-Marc STRAUSS for reporting - this. - - * examples/Connection/non_blocking/CPP-connector.cpp (init): - Removed the initialization of the local address. This is - error-prone and confusing to use. Thanks to Huiying Shen - for reporting this. - - * ace/SV_Semaphore_Simple: Added support for IPC_EXCL in order to - determine, upon creating the semaphore, if it already exists - (which means a bad key was selected), another daemon is still - running or the previous daemon didn't remove its resources. I - have this implemented now by first opening the semaphore and if - that fails then creating it. To support this, added another - enum, ACE_EXCL = IPC_EXCL, to the class header. - Also, changed the ACE_SV_Semaphore_Simple::open( key_t, ... ) - method to use - - if (ACE_BIT_ENABLED (flags, IPC_CREAT)) - - rather than - - if (flags == IPC_CREAT) - - Thanks to Michael McKnight for - reporting this. - - * ace: Replaced all uses of the template param LOCK with ACE_LOCK - to avoid conflicts with some systems that have a macro named - LOCK. - - * ace/IOStream_T.h: Added ACE_LACKS_ACE_IOSTREAM to the - IOStream_T.* files. Thanks to Torbjorn Lindgren - for reporting this. - - * ace/{Proactor,Service_Config,ACE_Sig_Handler}: Removed the use - of sig_atomic_t as a return type. Thanks to Torbjorn Lindgren - for reporting this. - -Sat Oct 04 03:14:46 1997 - - * ace/WFMO_Reactor.cpp (add_network_events_i): While looking - through all entries in the current (and suspended) handles for a - matching handle, we need to skip those that have been scheduled - for deletion). Also changed ACE_BIT_STRICTLY_ENABLED to - ACE_BIT_ENABLED. - - * ace/Select_Reactor.cpp (bit_ops): Since CONNECT is no longer a - logical OR of READ and WRITE, we have to explicitly make sure - that enable the handle in the correct wait sets. - - * ace/Event_Handler.h: Changed the values of the event - masks. CONNECT is no longer a logical OR of READ and WRITE. It - was its own unique value. - - * ace/OS.h: Removed ACE_BIT_STRICTLY_ENABLED. It did not do what I - thought it would do. - - * ace/Connector.cpp (handle_output): Added code that tries to find - out if the reactor uses event associations for the handles it - waits on. If so we need to reset it. This is necessary for - asynchronous connects. - - * ace/SOCK_Connector.i (reset_new_handle): Added new method on all - connectors to reset event associations of handles. - -Fri Oct 03 21:20:26 1997 David L. Levine - - * ace/Makefile: disable INSTALL in $(ACE_ROOT)/ace Makefile, - because it's not needed and it creates circular symlinks when - the library build fails. - -Fri Oct 3 11:39:45 1997 Douglas C. Schmidt - - * ace/Thread_Manager: Added a new flags_ field to - ACE_Thread_Descriptor and changed the insert_thr() and - append_thr() methods to update this flag so that we can keep - track of whether the thread was created "detached" or not. - - * ace/Reactor.cpp (event_loop_done): Replaced the use of - sig_atomic_t with int to workaround bugs with KAI C++. Thanks - to Torbjorn Lindgren for reporting this. - - * ace/CORBA_Handler: Removed the reactor() accessors since they - are subsumed by the methods in ACE_Event_Handler. Thanks to - Jean-Marc STRAUSS for reporting this. - -Thu Oct 02 15:38:34 1997 - - * Reactor: Renamed reset_new_handle to uses_event_associations. - - * ace/FIFO_Recv.cpp (ACE_FIFO_Recv): aux_handle_ must correctly be - initialized to ACE_INVALID_HANDLE. Thanks to Sandro Doro - for reporting this. - -Thu Oct 02 11:21:37 1997 Steve Huston - - * include/makeinclude/platform_{aix aix4.2}.GNU: added the - shared_libs_only = 0 and static_libs = 1 settings since C Set++ - builds the shared libs from the static. - - * ace/OS.h: Removed spaces around '##' in ACE_DES_FREE_TEMPLATE macro. - - * ace/Strategies_T.cpp: added #include "ace/Thread_Manager.h" - - * ace/Managed_Object.h: Added template arg in the "unimplemented - function" section. - -Thu Oct 02 10:46:18 1997 Steve Huston - - * ace/Malloc.h: added some comments on rationale and use of - ACE_MALLOC_ALIGN. - -Wed Oct 01 19:08:26 1997 Steve Huston - - * include/makeinclude/rules.bin.GNU: correctly builds programs - with multiple object modules. - - * examples/ASX/CCM_App/Makefile: needed some adjustment to work with - new rules.bin.GNU, above. - -Wed Oct 01 14:11:03 1997 - - * ace/Remote_Name_Space.cpp (resolve): We need to allocate one more - space than what strlen reports. - -Wed Oct 01 12:45:51 1997 David L. Levine - - * ace/ACE.cpp (count_interfaces, get_handle): changed "unix" to - "__unix" because DEC CXX doesn't #define "unix". Thanks to - Billy Quinn for reporting this. - - * ace/High_Res_Timer.h: added comment from Gabe - about ACE_OS::gethrtime () drift on MP - machines. - - * ace/OS.i (gethrtime, Solaris only): removed ACE_OSCALL_RETURN - wrapper around ::gethrtime () because it was broken (the type - was int) and not necessary (::gethrtime () should never fail), - so we can remove its overhead. - - * tests/Time_Value_Test.cpp: undef ACE_NO_INLINE in the - ACE_U_LongLong test hacks. - - * tests/SV_Shared_Memory_Test.cpp: delay construction of allocator - until first needed because it needs something that the - ACE_Object_Manager constructs. - - * tests/run_tests.vxworks: added console printout before each test. - -Tue Sep 30 21:42:58 1997 Douglas C. Schmidt - - * ACE version 4.3.9, released Tue Sep 30 21:42:58 1997. - -Tue Sep 30 17:15:14 1997 James C Hu - - * ace/Filecache.{h,cpp}: I removed the static locks in the - Filecache and made them local member objects. Since Filecache - is usually a singleton, no more memory is required this way. - - * tests/Hash_Map_Manager_Test.cpp: Added some code to test the - Hash_Map_Manager_Iterator. This is to show Bob Laferriere that - it works. - -Tue Sep 30 13:41:14 1997 Nanbor Wang - - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i - (handle_input): - * examples/Reactor/ReactorEx/test_network_events.cpp (handle_input): - * examples/Logger/simple-server/Logging_Acceptor.cpp - (handle_input): Changed to use reset_new_handle () for querying - whether we need to reset handles or not. - -Tue Sep 30 08:35:15 1997 David L. Levine - - * ace/Atomic_Op.i: added CVS header. - - * ace/Object_Manager.{h,cpp}: removed Filecache arrays, because - Filecache no longer needs them. - - * ace/Filecache.{h,cpp}: removed unused static Filecache::lock_. - - * tests/test_config.h: Added 1 second sleep to ACE_END_TEST to - allow all threads to terminate gracefully. - VxWorks only: removed the hack removal of the log file, because - it no longer appears to be necessary. - - * tests/TSS_Test_Errno.h,TSS_Test.cpp: dynamically allocate - Errno::lock_ to try to avoid problem with cleanup of statics - on VxWorks. It doesn't solve the problem, all of the time. - There are still statics in the ACE library, which could be - causing it. - -Tue Sep 30 01:35:28 1997 Nanbor Wang - - * ace/Naming_Context.cpp (close, close_down): Separated these two - functions calls. Close now only release the name_space_ - resource and close_down release all resources. Close should be - use when changing the name_space. - -Mon Sep 29 22:29:46 1997 Nanbor Wang - - * ace/Strategies_T.cpp (accept_svc_handler ): - * ace/Service_Manager.cpp (handle_input): - * ace/Acceptor.cpp (handle_input, accept_svc_handler): Changed to - use reset_new_handle () for querying whether we need to reset - handles or not. - - * ace/Reactor.{h,i} (reset_new_handle): - * ace/Reactor_Impl.h (reset_new_handle): - * ace/Select_Reactor.{h,i} (reset_new_handle): - * ace/WFMO_Reactor.{h,i} (reset_new_handle): Added this new method - so we can determine whether the implementation of the reactor - requires us to decouple the event a handle inherit from accept. - This scheme doesn't depend on the RTTI support of compilers. - Thanks to Irfan for the tips. - -Mon Sep 29 21:28:02 1997 - - * ace/Synch (ACE_Recursive_Thread_Mutex): Methods were added to - ACE_Recursive_Thread_Mutex so that it has a consistent interface - with other locking mechanisms. Thanks to Phil Logan - for submitting these changes. - -Mon Sep 29 13:28:05 1997 David L. Levine - - * ace/OS.i (thr_setconcurrency): added support on Irix 6.x, using - its ::pthread_setconcurrency (). Thanks to Felix Popp - for letting us know - about this Irix 6.2/3 system function, and for testing it out. - - * ace/ACE.cpp (handle_timed_complete) force recv check on VxWorks - because its read handle is always not set. Thanks to Steve for - helping track down the problem. We might want to consider doing - it this way on Unix platforms, as well, according to Steve. - - * apps/JAWS/server/HTTP_Server_T.cpp (accept): fixed typo, - "remote_address" instead of "remote_adrress". - - * tests/Time_Value_Test.cpp (test_ace_u_longlong): replaced - ACE_ASSERTs with calls to a static function that prints out - why the test failed. Also, disabled test of ACE_U_LongLong - if ACE_HAS_64BIT_LONG. - - * ace/OS.h: 1) Use u_long for ACE_hrtime_t if ACE_HAS_64BIT_LONGS. - 2) Added ACE_NO_INLINE support to allow wrapper_macros.GNU to - disable inlining from the command line. 3) Added - ACE_HAS_VERBOSE_NOTSUP support. - - * include/makeinclude/wrapper_macros.GNU: added "inline" flag to - allow enabling/disabling of inlining from the command line or - platform_macros.GNU. - - * ace/config-vxworks*.h: added ACE_HAS_VERBOSE_NOTSUP. - -Mon Sep 29 11:15:10 1997 Nanbor Wang - - * ace/OS.h (ace_cleanup_destroyer): Made this an export function. - -Sat Sep 27 17:04:48 1997 - - * ace/Reactor: Added new methods to be able to set and get the - implementation class being used by the reactor. The set method - is protected and should be used with care, specially while - changing the implementation class midway through an - application. Also both the methods are virtual, and user can - subclass to change their behavior. The internal code of the - reactor also changed to now use these methods exclusively rather - than the the raw data variables. - - * ace/Acceptor.cpp (handle_input): When using the WFMO_Reactor, we - need to reset the event association for the newly created - handle. This is because the newly created handle will inherit - the properties of the listen handle, including its event - associations. Therefore two changes were made: - - - A new directive (flag) was added to all the acceptors - (LSOCK_Acceptor, SOCK_Acceptor, SPIPE_Acceptor, TLI_Acceptor, - and UPIPE_Acceptor) to reset the event associations of the - newly created handle. Currently only the SOCK_Acceptor pays - attentions to this directive, others just ignore it. This flag - had to be added to all the acceptors for interface - compatibility and also to make sure that the Acceptor template - code works correctly. - - - A dynamic_cast was necessary to determine at run-time which - implementation of the Reactor we are using. But because this - code is limited to Win32, there should be no problems doing - the dynamic_cast. - - The same thing as above needed to be done to: - - - ACE_Accept_Strategy::accept_svc_handler (ace/Strategies_T.cpp) - - - ACE_Service_Manager::handle_input (ace/Service_Manager.cpp) - - - LOCK_SOCK_Acceptor::accept (apps/JAWS/server/HTTP_Server_T.h) - - - Logging_Acceptor.cpp::handle_input (examples/Logger/simple-server/Logging_Acceptor.cpp) - - - Network_Listener::handle_input (examples/Reactor/ReactorEx/test_network_events.cpp) - - - Handle_R_Stream::handle_input (examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i) - -Sat Sep 27 20:03:29 1997 Carlos O'Ryan - - * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: - Activated exceptions by default too, since they are used by - Orbix anyway. - - * include/makeinclude/platform_sunos5_sunc++.GNU: - Some libraries were missing and the locations were not - completely accurate. - - * ace/config-sunos5.5-sunc++-4.x-orbix.h: - I let the MT Orbix as the default, since that is the - configuration here and that was implicit in the platform*.GNU - files. - - * include/makeinclude/wrapper_macros.GNU: - Added flags to the IDL compiler to emit support for both - CORBA::Any (-A) and the BOAImpl (-B) approach for the server - side implementations. - - * ace/CORBA_Handler.cpp: - The full definition for Thread_Manager was missing, I added an - include for it. - -Sat Sep 27 07:59:18 1997 David L. Levine - - * include/makeinclude/wrapper_macros.GNU, - platform_{chorus,lynxos,vxworks*}.GNU: - default to building shared libs only, except on Chorus, - LynxOS, and VxWorks. While the "shared_libs_only=1" make - flag is still supported, it is no longer necessary because - it is the default. - - To revert to the prior behavior of building both shared and - static libraries, add "static_libs=1" to either your make - command invocation or your include/makeinclude/platform_macros.GNU. - -Sat Sep 27 00:45:10 1997 Nanbor Wang - - * examples/OS/Process/README (imore): - * examples/OS/Process/Makefile: - * examples/OS/Process/imore.cpp: Added a new example: imore. - - * ace/SOCK_Stream.cpp (close, close_reader, close_writer): Moved - invalid handlers checking from close to close_reader and - close_writer. - -Fri Sep 26 14:28:36 1997 Nanbor Wang - - * tests/SPIPE_Test.cpp: - * tests/Process_Strategy_Test: Changed the macro "ACE_LACKS_EXEC" - to "ACE_LACKS_FORK". - - * ace/SOCK_Stream.cpp (close): Added checking for invalid handle - before shutting down the write end. - -Fri Sep 26 11:55:27 1997 Steve Huston - - * ace/Malloc.h: Use signed math in the preprocessor calculations - for ACE_CONTROL_BLOCK_ALIGN_LONGS (and all of its contributing - factors). - - * ace/ACE.cpp: Fixed the TLI/BSD checks in handle_timed_complete. - - * tests/SOCK_Connector_Test.cpp: Added ENOTCONN as a valid fail - condition (in addition to ECONNREFUSED). - -Fri Sep 26 05:11:40 1997 Nanbor Wang - - * ace/SOCK_Acceptor.cpp (shared_accept): Made the newly added - WSAEventSelect code unreachable. It caused several test program - hung when performing socket recieving. Don't know why this is - happening. According to the online manual, this should be the - right thing to do. Some more Access Violations to be fix - tomorrow. Oh, I mean, today. - -Fri Sep 26 01:22:28 1997 Douglas C. Schmidt - - * ace/OS: Made a few changes to OS.h and OS.i to stop compiler - warnings. Thanks to Wei Chiang for - reporting this. - - * ace/config-chorus.h: Added ACE_LACKS_RLIMIT and removed - ACE_LACKS_SIGACTION. Thanks to Wei Chiang - for reporting this. - - * ace/TLI_Connector.cpp (complete): Changed the call to - ACE::handle_timed_complete() to use the new parameter. - - * ace/ACE: Added an extra parameter to the call to - ACE::handle_timed_complete() to indicate (at run-time) that this - is being called via a TLI interface. Thanks to the - ever-vigilant Steve Huston for suggesting this. - - * tests/SOCK_Connector_Test.cpp: "ACEified" the new test program. - -Thu Sep 25 23:27:38 1997 - - * ace/config-win32.h: Error in directives: it should be "Define - ACE_HAS_WINSOCK2 to 0 in your config.h file if you do *not* want - to compile with WinSock 2.0.". The typo was a 1 instead of the - 0. Thanks to Gonzalo A. Diethelm for pointing - this out. - -Thu Sep 25 20:33:09 1997 Douglas C. Schmidt - - * ace/Message_Queue.h: Changed the *_i() methods to be virtual so - that we can change the queueing mechanism by subclassing from - ACE_Message_Queue. Thanks to Eric Newton for - this suggestion. - - * ace/Timer_List_T.cpp (ACE_Timer_List_Iterator_T): Changed - listParam to timer_list to keep programming style consistent... - -Thu Sep 25 17:06:42 1997 Steve Huston - - * ace/OS.i - ACE_OS::cond_timedwait - HP's threads return - EAGAIN on timeout from pthread_cond_timedwait, so adjust that - to ETIME. - - * tests/SOCK_Connector_Test.cpp - will now try to find another - host to run the connect to. Won't try on Win32 or VxWorks - though. - -Thu Sep 25 15:25:53 1997 David L. Levine - - * ace/Object_Manager.cpp,OS.cpp: moved socket_init to Object_Manager - ctor and socket_fini to Object_Manager dtor, to be sure that - WinSock gets initialized early and closed late. - - * ace/SOCK.{h,cpp}: removed dummy_ static now that the - Object_Manager initializes WinSock. - - No, I'm not a Win32 wizard all of the sudden. Thanks to - Irfan and Nanbor for directing these changes. - - * tests/run_tests.vxworks: commented out tests that don't run - productively on VxWorks: SV_Shared_Memory_Test, - Reactor_Exceptions_Test, SPIPE_Test, and UPIPE_SAP_Test. - -Thu Sep 25 03:50:27 1997 - - * ace/OS.i (thr_getspecific): Must restore errno if no errors have - occured. - - * ace/Log_Msg.cpp (close): Must close the message queue *before* - destruction since there is no destructor for the queue. - - * netsvcs/lib/Client_Logging_Handler.cpp (fini): fini must close - and unregister the acceptor. Closing the socket is simply not - enough. - -Thu Sep 25 01:39:47 1997 Nanbor Wang - - * ace/Containers.{i,cpp}: Commented out all ACE_TRACE macros in - ACE_Unbounded_Queue so that they won't cause SIGSEGV when we - turn the tracing on. Unbounded_Queue is used in Object_Manager - which must be initialize before most of other objects. - -Wed Sep 24 23:37:19 1997 Nanbor Wang - - * ace/OS.i (thr_getspecific): On NT, added check whether - ::GetLastError() is NO_ERROR when ::TlsGetValue() return 0. - -Wed Sep 24 13:37:02 1997 - - * ace/config-win32-common.h (ACE_LACKS_FORK): Added in macro to - distinguish between ACE_LACKS_FORK and ACE_LACKS_EXEC. Also - updated config-chorus.h, config-vxworks-ghs-1.8.h, and - config-vxworks5.x-g++.h. - - * ace/OS.h (ACE_WIN32CALL_RETURN && ACE_WIN32CALL): Added new - macros to distinguish between Win32 calls that set GetLastError - and those that set errno. Also updated ACE_OSCALL_RETURN and - ACE_OSCALL such that they do not set errno to GetLastError. This - is because these calls automatically set errno. - - Updates OS.* files to reflect these changes. - - * ace/SOCK_Acceptor.cpp (shared_accept): Make sure to reset the - event association inherited by the new handle. - - * ace/WFMO_Reactor.i (unbind): Added a check for invalid handles - being passed in for removals. - -Wed Sep 24 10:34:29 1997 Carlos O'Ryan - - * ace/OS.h: - Under HP-UX and g++ must be included for dynamic loading, - not ; thanks to Warren Thompson (wthompson@altaira.com) - for helping us with this one. - -Wed Sep 24 09:36:21 1997 David L. Levine - - * ace/Managed_Object.{h,i},Object_Manager.{h,cpp}: removed - ACE_Managed_Object get_object () interface. It wasn't - used anywhere; it was originally intended to support preallocated - objects but turned out to not be necessary. I think that it would - be more useful to make it possible to instantiate - ACE_Managed_Object instead, and have it implicitly register - with the ACE_Object_Manager. - - * ace/Timer_List_T.cpp (ACE_Timer_List_Iterator_T): - changed name of "list" argument ot "listParam" to resolve name - conflict with STL. Thanks to Brian Mendel for reporting this. - - * tests/run_tests.check: print out filename with error messages. - -Tue Sep 23 17:11:44 1997 Carlos O'Ryan - - * ace/config-hpux-10.x-g++.h: - Added A ACE_LACKS_TIMESPEC_T, thanks to Warren Thompson - (wthompson@altaira.com) for this one. - - * include/makeinclude/platform_hpux_gcc.GNU: - Added a -D_REENTRANT define, to enable reentrant methods, thanks - to Warren Thompson (wthompson@altaira.com) and Steve Huston - (shuston@riverace.com) for pointing out this. - - * ace/config-hpux-10.x.h: - Added an small comment to clarify that DCE/threads must be - installed if threading is wanted, they are an optional product - for HP-UX. - -Tue Sep 23 10:13:57 1997 David L. Levine - - * ace/Select_Reactor.cpp: added #include of ace/Thread.h. - Thanks to Vladimir Schipunov for - reporting this. - - * ace/Object_Manager.cpp: added #include of ace/Malloc.h. - Thanks to Vladimir Schipunov for - reporting this. - - * ace/config-aix-4.1.x.h: added ACE_HAS_PTHREAD_T and - ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR #defines. - Thanks to Vladimir Schipunov for - reporting the build problem on AIX 4.1, and to - Torbjorn Lindgren for providing these fixes. - - * ace/Token_Manager.{h,cpp},Object_Manager.{h,cpp}: - preallocate ACE_Token_Manager creation lock. - - * ace/Object_Manager.cpp: use ACE_Cleanup_Adapter - for preallocated arrays. - -Mon Sep 22 16:51:44 1997 - - * ace/OS.i (open): Changed code so that (_O_CREAT | _O_TRUNC) - means CREATE_ALWAYS. Thanks to Dave Brackman - (dbrackma@OhioEE.com) for pointing this out. - -Mon Sep 22 11:01:28 1997 Steve Huston - - * tests/SOCK_Connector_Test.cpp, Makefile, run_tests.sh - added new - test to exercise ACE_SOCK_Connector focusing on fail conditions. - -Mon Sep 22 07:11:21 1997 David L. Levine - - * ace/Message_Block.cpp (clone): check this block's cont () - instead of the new block's cont_ when cloning the continuation - messages. Thanks to Eric Newton for tracking - down this problem with failing to clone continuation blocks, - and for providing the fix. - - * ace/OS.{h,i} (ACE_U_LongLong): added operator!=, and made args - const to ctor, operator/, hi, and lo member functions. - - * ace/Managed_Object.[hi]: renamed ACE_Managed_Cleanup to - ACE_Cleanup_Adapter because it doesn't implicitly register - itself with the ACE_Object_Manager. - - * ace/ACE.cpp: moved ACE_Object_Manager_Destroyer to - Object_Manager.cpp because the ACE_Object_Manager should - always be linked into executables now, even if libACE is - statically linked. - - * ace/Filecache.{h,cpp},Signal.{h,cpp} preallocate locks for - Filecache and Signal in ACE_Object_Manager. - - * ace/Object_Manager.{h,cpp}: 1) renamed ACE_Managed_Cleanup to - ACE_Cleanup_Adapter. 2) Moved ACE_Object_Manager_Destroyer from - ACE.cpp to Object_Manager.cpp. 3) Added Filecache and Signal locks. - - * ace/Singleton.*: removed instance (TYPE *) member function because - it wasn't being used. And, it allows us to store the contained - instance_ as an object instead of a pointer, saving a dynamic - memory allocation on construction. - - * include/makeinclude/platform_vxworks5.x_g++.GNU: added $(MUNCHED) - to PRELINK, to allow applications to add libraries or object - files to be munched. - - * ace/stdcpp.h: stdarg.h must be #included before stdio.h on LynxOS. - -Sat Sep 20 17:32:23 1997 David L. Levine - - * ace/Object_Manager.{h,cpp},Managed_Object.*, - CORBA_Handler.{h,cpp},Dump.{h,cpp},Log_Msg.cpp,OS.cpp - revised ACE_Object_Manager interface for preallocated objects. - - Also, added documentation of ACE_Object_Manager interface to - Object_Manager.h and Managed_Object.h. - - * ace/CORBA_Handler.cpp,Dump.cpp,OS.cpp: use ACE_MT with - preallocated locks. - - * include/makeinclude/platform_*.GNU,wrapper_macros.GNU: - moved -O out of wrapper_macros.GNU and into each platform - file's OC[C]FLAGS to support "optimize" make flag. - - I moved -O and similar compile flags out of CFLAGS and/or - CCFLAGS and into OCFLAGS and/or OCCFLAGS. This allows the - ACE make system to support the "optimize" flag. It operates - similar to the "debug" flag, i.e., you can set "optimize=1" - or "optimize=0" in your platform_macros.GNU file to enable - or disable optimization. You can use the same syntax to - get the same effect from the "make" command line, e.g., - "make optimize=1 debug=0". - - I added optimize=1 to platform_*.GNU files that had -O, etc., - in their C[C]FLAGS. Therefore, there should be no net effect - from this change on any platform. - - * include/makeinclude/wrapper_macros.GNU: - I _removed_ the disabling of "debug" when "optimize=1" is - enabled. This _will_ have a net effect: if you were relying - on "debug" to be disabled when you enabled "optimize=1", - you'll be surprised. The change supports platforms that - allow "debug" and "optimize" simultaneously. - - Because I had added the disabling of "debug" recently, - and because "optimize=1" wasn't supported well, if at all, - I'd be suprised if any is actually affected by this change. - -Sat Sep 20 11:47:14 1997 Carlos O'Ryan - - * ace/Timer_Queue_T.cpp: - Changed the return type to , to match its declaration. The - intent was to error error values, which are declared as - throughout ACE. - -Sat Sep 20 08:07:36 1997 David L. Levine - - * ace/OS.i (gethrtime): on Linux only, removed "volatile" qualifier - from declaration of local variable "now". I don't think that - it's necessary. It causes compilation failure with g++ because - the ACE_U_LongLong copy constructor won't take a volatile - argument. Thanks to Sandro Doro for - tracking down this problem. - - * tests/Time_Value_Test.cpp: reverted to test ACE_U_LongLong on - all platforms except WIN32. It works properly on Linux with - the removal of volatile from ACE_OS::gethrtime's "now". Thanks - to Sandro Doro for figuring this one - out. - -Fri Sep 19 18:49:50 1997 Carlos O'Ryan - - * ace/config-irix6.x-g++.h: - * include/makeinclude/platform_irix6.x_g++.GNU: - Added support for IRIX 6.x w/gcc, thanks to Celeste E. Copeland - (celeste@altaira.com) for this. - -Thu Sep 18 19:33:02 1997 Carlos O'Ryan - - * Douglas added the following changes while going through the - Async_Timer_Queue. - - * ace/Timer_Queue_T.h: Factored out the code for handling - ualarm(). - - * ace/Timer_Queue_T.cpp (handle_signal): Cleanedup the logic - for rescheduling a ualarm() after expiring a timer. - - * tests/Async_Timer_Queue_Test.cpp (signal_handler): Changed the - use of ACE_DEBUG to ACE_ERROR to ensure that the call doesn't - magically disappear if ACE_NDEBUG is enabled. - -Fri Sep 19 18:05:48 1997 Douglas C. Schmidt - - * ace/Log_Msg.cpp (log): Changed the send() to a send_n() so that - all the data gets written... - -Fri Sep 19 14:52:53 1997 Nanbor Wang - - * netsvcs/lib/Client_Logging_Handler.cpp (get_handle): Can't use - ACE_ERROR_RETURN here because ACE_HANDLE is a void* on NT, not - int. - - * examples/Reactor/Misc: Added reactors.dsp signals_1.dsp - signals_2.dsp. - - * ace/OS.cpp (thr_exit): Commented out the call to - ACE_TSS_Cleanup::exit () because ACE_OS::thr_exit is actually - called from ACE_TSS_Cleanup::exit (). - -Fri Sep 19 12:50:37 1997 David L. Levine - - * ACE-INSTALL*,ace/README: added more documentation of requirement - for explicit main (int, char *[]) arguments and int return type - with ACE_HAS_NONSTATIC_OBJECT_MANAGER (on VxWorks). - -Thu Sep 18 22:45:09 1997 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp (close): Fixed a - typo: it's output_ not outout_. Thanks to David for - pointing this out. - - * netsvcs/lib/Client_Logging_Handler.cpp: Make sure to clean up - all our resources (e.g., acceptor-mode and data-mode sockets) - when we close down. - - * netsvcs/servers/main.cpp (main): Restored the entire contents of - main(). - - * tests/Semaphore_Test.cpp: Updated the test to use a temporary - ACE_Time_Value variable that is passed to - ACE_Semaphore::acquire() so that we don't have problems with - reference anachronisms... Thanks to David Levine for reporting - this. - - * ace/Log_Msg.cpp: Changed over to using ACE_SPIPEs for the - logging mechanism rather than ACE_FIFOs to conform to the - changes to Client_Logging_Handler. - - * netsvcs/lib/Client_Logging_Handler.cpp: - Completely rewrote the Client Logging Daemon so that it uses - ACE_SPIPEs by default, rather than ACE_FIFOs. This is more - portable and makes it easier to write a generic client logging - daemon... If a platform doesn't support ACE_SPIPEs, then we - revert to using sockets. - -Thu Sep 18 21:56:33 1997 Nanbor Wang - - * ace/OS.cpp (ACE_TSS_Cleanup::exit): Masked out codes that relate - to freeing TSS keys and remove key entries from TSS cleanup - table. I removed it here to avoid race condition. - (ACE_TSS_Cleanup::free_all_key_left): Added this function to - free all left over TSS keys and remove them from TSS cleanup - table when the program exits. It is only called from - ACE_OS::cleanup_tss. - (ACE_OS::cleanup_tss): Added call to - ACE_TSS_Cleanup::free_all_key_left when ACE_WIN32 or - ACE_HAS_TSS_EMULATION are defined. - -Thu Sep 18 16:30:24 1997 David L. Levine - - * ace/Semaphore_Test: protected declarations of test_timeout_count - and timeouts because they're not used on Solaris. - - * netsvcs/lib/Client_Logging_Handler.cpp: added template - instantiations. - -Thu Sep 18 09:04:40 1997 - - * ace/Dynamic: Changed the way ACE_Dynamic worked. Instead of - keeping the "this" pointer of the object in question, we are now - simply keeping a flag that indicates whether the object was - dynamically created. The trick to this approach is to make sure - to reset the flag in the constructor. The "this" pointer - approach was broken when used with multiple inheritance, because - of "shearing" of the "this" pointer to get to the base - Svc_Handler class. - -Thu Sep 18 01:12:36 1997 Douglas C. Schmidt - - * ACE version 4.3.8, released Thu Sep 18 01:12:36 1997. - -Wed Sep 17 22:47:20 1997 Douglas C. Schmidt - - * ace/ACE: Added two new varargs methods for send() and recv(). - These are modeled after the ones that are in, e.g., ACE_SOCK_IO. - - * ace/Log_Msg.cpp (open): In the UNICODE version the compiler - complains about mixed wchar/char usage in Log_Msg.cpp: - - Log_Msg.cpp(468) : error C2665: 'ACE_INET_Addr::ACE_INET_Addr' : - none of the 8 overloads can convert parameter 1 - from type 'const unsigned short *' - - I fixed it modifing the connect() call from - - status = con.connect (*ACE_Log_Msg_message_queue, - ACE_INET_Addr (logger_key)); - - to - - status = con.connect (*ACE_Log_Msg_message_queue, - ACE_INET_Addr - (ACE_MULTIBYTE_STRING(logger_key))); - - Thanks to Dieter Quehl for - reporting this. - - * ace/SV_Semaphore_Simple.h: By default, we want the flags to - perform a SEM_UNDO. Thanks to Sandro Doro - for reporting this. - - * tests/Makefile (BIN): Added Semaphore_Test.cpp to the Makefile. - Thanks to Sandro Doro for reporting - this. - - * tests/Async_Timer_Queue_Test.cpp: If you want to print a '\', - you need to make it a \\... Thanks to David for noticing this. - - * apps/JAWS/clients/Blobby/Blob_Handler.h: There was a missing - #include for "ace/SOCK_Stream.h". - - * netsvcs/lib/Client_Logging_Handler: Reimplemented this service - so that it uses sockets on Win32 to receive logging messages - from clients. - - * ace/Log_Msg.cpp: Enhanced ACE_Log_Msg::log() so that it now uses - sockets on Win32 platforms to work around the lack of FIFOs. - - * ace/Log_Record.h: Revised the field layout of the ACE_Log_Record - so that the length field comes first. This is necessary for the - framing mechanisms used throughout ACE in various - configurations. - -Wed Sep 17 15:17:38 1997 James C Hu - - * ace/Filecache.cpp: ACE_Filecache::finish should check to see if - the file passed in is NULL before attempting to grab the - associated hash lock. Reported by Samuel Melamed - . - -Wed Sep 17 13:51:25 1997 Carlos O'Ryan - - * bin/auto_compile: - I setup autoflush on the logfile, it makes debugging and non - crontab usage a bit easier. - -Wed Sep 17 12:59:34 1997 - - * ace/Local_Name_Space_T.cpp: Fixed warnings caused by SEH macros. - -Wed Sep 17 01:07:40 1997 Douglas C. Schmidt - - * ACE version 4.3.7, released Wed Sep 17 01:07:40 1997. - -Tue Sep 16 23:34:36 1997 Douglas C. Schmidt - - * netsvcs/servers/main.cpp (main): The use of braces was incorrect - so that some services were being prematurely closed... - - * ace: Added a new flag called ACE_LACKS_FIFO to distinguish the - (lack of) features on Win32... - - * ace/Timer_Queue_T: Added an expire() wrapper for the - Async_Timer_Queue_Adapter. - - * ace/OS: Added a wrapper for strpbrk() and wcspbrk(). Thanks to - Bob Olson and Irfan for pointing out - the need for this. - -Tue Sep 16 18:03:58 1997 Carlos O'Ryan - - * bin/auto_compile: - It wouldn't report an error when run_tests.sh scream "FAILED", - now it does. - -Tue Sep 16 08:30:28 1997 Steve Huston - - * ace/OS.i: Changed a couple of ACE_UNUSED(arg) to ACE_UNUSED_ARG(arg) - -Mon Sep 15 12:08:38 1997 - - * ace/Reactor (register_handler): Originally this interface was - available for all platforms, but because ACE_HANDLE is an int on - non-Win32 platforms, compilers are not able to tell the - difference between - register_handler(ACE_Event_Handler*,ACE_Reactor_Mask) and - register_handler(ACE_Event_Handler*,ACE_HANDLE). Therefore, we - have restricted this method to Win32 only. - - * ace/WFMO_Reactor.h: Removed non-Win32 version of the - WFMO_Reactor. This is no longer required in the new scheme. - - * ace/XtReactor: - - Added remove_handler_i(const ACE_Handle_Set &,ACE_Reactor_Mask) - to make the compiler happy. - - Also changed ACE_Reactor_Handle_Set to ACE_Select_Reactor_Handle_Set. - - * ace/Select_Reactor.cpp (ACE_Select_Reactor_Token): Added set/get - select_reactor methods. - - * ace/OS.h (ACE_SEH_TRY): Changed ACE_SEH_TRY from nothing to - "if(1)" on non-Win32 platforms. This should stop some compilers - from complaining about unreachable code. - -Mon Sep 15 11:37:49 1997 Carlos O'Ryan - - * include/makeinclude/platform_hpux.GNU: - Added -D_REENTRANT to enable the _r functions. - -Mon Sep 15 09:40:57 1997 Carlos O'Ryan - - * bin/auto_compile: - Enabled the shared_libs_only flags to speed up compilations (and - reduce disk space usage). - -Sun Sep 14 22:36:17 1997 - - * ace/Select_Reactor.h: Added a no-op constructor for - ACE_Select_Reactor_Token to make the compiler happy. - -Sun Sep 14 21:02:31 1997 David L. Levine - - * all Makefiles: ran "make depend" to update all ACE Makefiles. - - * include/makeinclude/platform_irix6.x-32_sgic++.GNU, - platform_tandem.GNU: added debug = 1, to disable ACE_NDEBUG. - - * ace/Acceptor.cpp: added #include of ace/Handle_Set.h so that - it will compile on g++/Solaris. - - * ace/Managed_Object.h: added #include of ace/OS.h because - ACE_Cleanup class is used. - - * ace/Managed_Object.cpp: only #include ace/Synch.h if - ACE_TEMPLATES_REQUIRE_SOURCE is not defined. The #include - appears to be necessary with Digital Unix. But, it causes - inline functions warnings with g++, both with inlining - enabled and disabled. Circular #includes are evil :-) - - * ace/Select_Reactor.h: removed "," at end of DEFAULT_SIZE - enum definition. - - * ace/Select_Reactor.i (register_handler): added ACE_UNUSED_ARGS. - - * ace/Select_Reactor.i: moved ACE_Select_Reactor::size () after - ACE_Select_Reactor_Handler_Repository::size () to prevent use - before definition. - - * ace/Select_Reactor.cpp: added template instantiation. - - * ace/Svc_Conf_y.cpp: commented out unused args and wrapped - assignments in "if" conditionals to avoid g++ warnings. - - * ace/Token_Manager.h: inserting missing "public" access control - specifier for ACE_Cleanup. - - * ace/OS.{h,cpp} (gethrtime, Linux only): inlined and added Alpha - support. - - * ace/config-linux*.h: only define ACE_HAS_PENTIUM if i386 is defined. - -Sun Sep 14 10:35:57 1997 - - * ace/Reactor: The Reactor classes (ACE_Reactor and ACE_ReactorEx) - have changed. The motivation for this change was to allow users - to program abstractly and use the most efficient implementation - available on their platform. At the same time, we wanted to - make the changes required by the users kept to a minimal. - - Here is a layout of the new Reactor hierarchy in ACE (an example - of the GOF Bridge Pattern). Thanks to Thomas Jordan - (Thomas_Jordan@deluxedata.com) for suggesting this new design. - - - Reactor -----> Reactor_Impl - ^ - | - -------------------- - ^ ^ - | | - Select_Reactor WFMO_Reactor - - Reactor: - - The Reactor class now becomes an interface class that contains - a pointer to an implementation class. All methods of the - Reactor class forward all calls to the appropriate - implementation class. Users can pass in their own - implementation class. If an implementation class is not - supplied at creation time, the following default rules apply: - - On non-Win32 platforms: An instance of the Select_Reactor - class will be created and used as the implementation. - - On Win32 platforms: An instance of the WFMO_Reactor class will - be created and used as the implementation. This default - behavior can be overwritten at compile-time by setting the - ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL flag. In this case, an - instance of the Select_Reactor class will be created and used - as the implementation. - - Reactor_Impl: - - Reactor_Impl is an abstract class (i.e., the Bridge). - Select_Reactor and WFMO_Reactor inherit from this class. - - Select_Reactor: - - Previously known as the Reactor class. This class implements - the Reactor_Impl interface by using the select() system - call. This implementation is available on all platforms - (including Win32). - - WFMO_Reactor: - - WFMO (Wait For Multiple Objects) Reactor, previously known as - the ReactorEx class. This class implements the Reactor_Impl - interface by using the WaitForMultipleObjects() system call. - This implementation is currently only available on Win32 - platforms. - - Code changes for users: - - The higher authorities of ACE have decided that ReactorEx was - a "goofy" name and made little sense in the new hierarchy. - Therefore users using the old ReactorEx will have to change - over to start using the Reactor class (and make sure that the - implementation class being used is WFMO_Reactor). - - Also users that have extended Reactor or ReactorEx must - now subclass from Select_Reactor or WFMO_Reactor, - respectively. - - * ace/ReactorEx: - - The ReactorEx interface has been extended to be identical to the - Reactor interface. Some of these new operations will not be - supported in this version. However, we will have interface - compatability at this point. This allows the creation of the new - Reactor hierarchy in ACE. - - Removed all static (singleton) methods from ReactorEx. These are - not necessary anymore since ReactorEx will become an - implementation class. Reactor will take over this functionality. - - Changed methods names from resume_all to resume_handlers and - suspend_all to suspend_handlers. This increases the similarity - between ReactorEx and Reactor. - - Add a lock_adapter so that we can return an ACE_Lock form of our - internal lock. - - Added signal handling capabilities to ReactorEx. - - Added handler, requeue_position, mask_ops, and ready_ops - operations. However, they are not supported in this - version. They are mostly here for interface compatibility with - Reactor. - - Added a size() accessor that returns the current size of the - ReactorEx's internal descriptor table. - - Added an initialized() accessor that returns true if ReactorEx - has been successfully initialized, else false. - - * ace/Reactor: - - The Reactor interface has been extended to be identical to the - ReactorEx interface. Some of these new operations will not be - supported in this version. However, we will have interface - compatability at this point. This allows the creation of the new - Reactor hierarchy in ACE. - - Added resume_handler(ACE_Handle_Set &) and - suspend_handler(ACE_Handle_Set &) to the Reactor. This - increases the similarity between ReactorEx and Reactor. - - Add a lock_adapter so that we can return an ACE_Lock form of our - internal lock. This changes the signature of the return type - from ACE_Reactor_Lock to ACE_Lock. - - Added a size() accessor that returns the current size of the - Reactor's internal descriptor table. - - Added wakeup_all_thread() operation. Currently it just does a - notify. - - Added alertable_handle_events() operation. Currently it just - calls handle_events(). - - Added register_handler (that take event handles) operations. - However, they are not supported in this version. They are mostly - here for interface compatibility with ReactorEx. - - * ace/XtReactor: Now inherits from Select_Reactor instead of - Reactor. - - * ace/Timer_Queue_T.h: Removed the inclusion of Time_Value.h. This - file does not exist anymore - - * ace/Synch_T (ACE_Lock_Adapter): Changed the implementation of - the adapter such that the user is allowed to (optionally) pass - in the locking mechanism. - - * ace/Strategies: Removed ACE_ReactorEx_Notification_Strategy. - - * ace/Service_Config: Updated Service_Config so that all ReactorEx - and Proactor methods are removed. ReactorEx does not exist any - longer and Proactor methods are available as statics methods on - the Proactor class. - - * ace/OS.h (ACE_DEFAULT_SELECT_REACTOR_SIZE): Changed - ACE_DEFAULT_REACTOR_SIZE to ACE_DEFAULT_SELECT_REACTOR_SIZE. - There is no default size dictated by the Reactor class anymore. - - * ace/Local_Tokens,Token: Added new methods: acquire_read, - acquire_write, tryacquire_read, tryacquire_write. These methods - allow the Tokens to be used by the ACE_Lock_Adapter class. - - * ace/Handle_Set.h (MAXSIZE): Changed ACE_DEFAULT_REACTOR_SIZE to - ACE_DEFAULT_SELECT_REACTOR_SIZE. There is no default size - dictated by the Reactor class anymore. - - * ace/Event_Handler: Removed the Proactor and ReactorEx pointers - from Event_Handler. The Proactor has its own event handler - (ACE_Handler), and the ReactorEx does not exist anymore. - - * ace/Proactor: - - Changed Proactor to work with the new Reactor. - - Updated Proactor to bring it upto date with the recent changes - to the Timer_Queue. - - * tests: - - Removed the ACE_NEW_THREAD macro. With the new thread adapter, - the log stream for the new thread will automatically be set to - the creator thread's stream. Therefore, this macro is not - needed. - - Removed the inclusion of Service_Config.h. All tests are now - accessing the singletons that are supported by the class directly. - - * examples/Reactor/Proactor: Updated examples to use and access - the new Reactor class instead of the old ReactorEx. - - * examples/Reactor/ReactorEx: Updated examples to use and access - the new Reactor class instead of the old ReactorEx. - -Sun Sep 14 09:50:22 1997 Douglas C. Schmidt - - * ace/Singleton.i (ACE_Singleton): Moved the definition of the - ACE_Singleton default constructor into the *.i file. In - general, it's not a good idea to put definitions in *.h files. - - * tests/test_config.h: Improved the #undef scheme for ACE_NDEBUG. - -Sat Sep 13 23:51:55 1997 Nanbor Wang - - * ace/ACE_Library.{mak,mdp}: Removed Service_Record.cpp and added - Service_Type.cpp in project file. - - * ace/: Removed ace.{mak,mdp} and replaced them with - ACE_Library.{mak,mdp}. MSVC 4.2 insists to change the release - version DLL from our original setting "ace.{dll,lib}" to "ACE - dynamic Library.{dll,lib}". This is so far the only known - method to get around this. - - * netsvcs/servers/servers.{dsw,dsp}: Changed the output filenames - of debug version from maind.exe to main.exe. - - * netsvcs/lib/netsvcs.{dsw,dsp}: Changed the output filenames of - debug version from netsvcsd.{dll,lib} to netsvcs.{dll,lib}. - - * ace/ace.dsw: - * ace/ace_{dll,lib}.dsp: Removed Service_Record.cpp and added - Service_Type.cpp. - - * ace/Log_Msg.cpp (open): Fixed a typo. - - * ace/Reactor.cpp: Fixed a typo. - -Sat Sep 13 17:23:22 1997 Douglas C. Schmidt - - * ACE version 4.3.6, released Sat Sep 13 17:23:22 1997. - -Sat Sep 13 12:11:50 1997 Douglas C. Schmidt - - * tests: #include "test_config.h" before all the other files so - that we always have the ACE_ASSERT enabled... Thanks to Carlos - for noticing this. - - * ace/Reactor.cpp: Added Arturo's improvements for suspending and - resuming Event_Handlers. - - * tests/Reactors_Test.cpp: As a result of the new changes to - ACE_Thread_Manager, the Reactors_Test now seems to be working - fine. - - * ace/Thread_Manager.cpp (append_thr): When we append a new - Thr_Descriptor make sure to zero-out the cleanup_info_ fields - since otherwise horrible things will happen... - - * ace/Reactor: Added a new ACE_Reactor_Handle_Set called - suspend_set_ and updated the suspend_i() and resume_i() method - to use this set to store the ready bits that are enabled when we - suspend and resume and Event_Handler, respectively. Thanks to - Arturo for this suggestion. - - * tests/TSS_Test.cpp (main): Had to move the allocation and - deletion of TSS_Error into the ACE_HAS_THREADS section since - otherwise this test doesn't work when threading is disabled. - - * tests/Thread_Manager_Test.cpp: Move the template specialization - inside of the ACE_HAS_THREADS macro since otherwise this test - doesn't work when threading is disabled. - - * ace/Thread_Manager.cpp: Arrgh! Must initialize the cleanup_info - fields to 0 in the constructor for ACE_Thread_Descriptor! This - should fix a nasty bug... - - * tests/Async_Timer_Queue_Test.cpp: Continued to improve the - documentation in the test of the ACE_Async_Timer_Queue_Adapter. - - * ace/Timer_Queue_T.cpp (schedule): Oops, must pass &this->mask_ - to ACE_Sig_Set rather than this->mask_. - - * ace/Object_Manager.cpp: Changed #include - "ace/Service_Repository.h" to #include "ace/Service_Config.h" - since we now call ACE_Service_Config::close(). - - * ace/Service_Types: Removed a nasty circular dependency by simply - having each of the ACE_Service_Type_Impl subclasses take const - void *'s rather than their specific type (i.e., ACE_Stream or - ACE_Module, etc.). This turns out not to be a problem since we - treated them as const void *'s internally anyhow... - - * ace/Strategies_T.cpp: Fixed a bug in ACE_DLL_Strategy: - - ACE_Service_Type_Impl stp = new ACE_Service_Object_Type (svc_handler, this->svc_name_); - - should be - - ACE_Service_Type_Impl *stp = new ACE_Service_Object_Type (svc_handler, this->svc_name_) - - I wonder how this ever compiled?! - -Fri Sep 12 13:26:50 1997 Douglas C. Schmidt - - * ace/Mem_Map.cpp (close): Removed the following code in the - close() method that appears to be redundant with the code in - unmap(): - - if (this->file_mapping_ != this->handle_ - && this->file_mapping_ != ACE_INVALID_HANDLE) - ACE_OS::close (this->file_mapping_); - - Also cleaned up the close() code so that it doesn't try to close - the handle multiple times, even if close() is called more than - once. Thanks to Beged-Dov for reporting - this. - - * tests/Async_Timer_Queue_Test.cpp: Improved the structure of the - program and finished implementing the new feature that makes it - possible to avoid blocking SIGQUIT. - - * ace/Timer_Queue_T: Added support for an ACE_Sig_Set that can be - passed into the constructor of ACE_Async_Timer_Queue_Adapter. - This will enable us to selectively block only certain signals. - - * ace/Signal: Added a new constructor for ACE_Sig_Set that takes - ACE_Sig_Set * and also improved the documentation of the - constructor interfaces. - -Fri Sep 12 13:46:04 1997 David L. Levine - - * ace/OS.[hi],Log_Msg.h,config-lynxos.h, - include/makeinclude/platform_lynxos.GNU: added LynxOS port, - provided by Dave Mayerhoefer . Note how few - files were affected. What's even more amazing is the very small - number, 8, of very minor code changes to OS.[hi] and Log_Msg.h. - This is a tribute to the maturity of - - - * ace/Service_Object.h: Moved the ACE_Service_Type class into the - Service_Object.h file since this is "publically" visible to - applications. - - * ace/Service_Types.h: Improved the documentation of the - ACE_Service_Type subclass implementations. - - * ace/Service_Types: Changed the name next_ to link_ to be - consistent with the accessor name. - - * ace: Renamed Service_Record.{h,i,cpp} to Service_Types.{h,i,cpp} - to reflect the recent change in names. - - * ace/Service_Object.h: Renamed ACE_Service_Type to - ACE_Service_Type_Impl and ACE_Service_Record to ACE_Service_Type - in order to emphasize the use of the Bridge pattern. Thanks to - Eric Newton for motivating this. - - * ace/Svc_Conf.y: Removed the warning about Service name being - different from Module name. I'm not sure why this was - complaining in the first place. Thanks to Eric Newton for - pointing this out. - - * netsvcs/lib/README: The entry point for the time service client - is _make_ACE_TS_Clerk_Processor and not - _make_ACE_TS_Clerk_Connector. Thanks to Ivan for pointing this - out. - -Thu Sep 11 10:59:12 1997 - - * ace/Connector.cpp (handle_output): Increased the idle time - before we check the status of a non-blocking connection from 1 - ms to 35 ms when ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS is - defined (i.e., Win32.) This is very odd but wait a whole lot - longer seems to solve the problem. - - * ace/Log_Msg.cpp (close): On Win32, ACE_Log_Msg_Manager needs to - delete main thread's ACE_Log_Msg instance also. - -Thu Sep 11 10:37:00 1997 Carlos O'Ryan - - * ace/ACE.cpp: - * ace/INET_Addr.cpp: - * ace/Log_Msg.h: - * ace/Memory_Pool.h: - * ace/OS.h: - * ace/OS.i: - * ace/Parse_Node.cpp: - * ace/Strategies_T.h: - * bin/clone.cpp: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h: - I checked the use of MAXNAMELEN vs. MAXPATHLEN; all buffers - intended to keep full filenames should have at least - MAXPATHLEN+1 chars. - Only buffers that will keep basenames (without any directories) - should have MAXNAMELEN+1 bytes. - I also added a new macro ACE_MAX_FULLY_QUALIFIED_NAME_LEN which - is the maximum number of characters for a fully qualified - internet hostname. - There remain one obscure usage of these macros in ace/Malloc.h - and Local_Naming_Space_T.{h,cpp}, but a quick fix broke - something, I will try again soon. - -Thu Sep 11 08:52:36 1997 David L. Levine - - * ace/OS.cpp (thr_key_detach): check to see if the - ACE_TSS_Cleanup lock has been constructed, and not - destructed, before attempting to use it. Statics are evil. - - * ace/Log_Msg.cpp (~ACE_Log_Msg): release guard before calling - ACE_Log_Msg_Manager::close (), because that deletes the lock. - - * ace/Managed_Object.{h,cpp} (get_object): changed type of "id" - to int because it will often be passed an enum. Pass "id" by - value to get_object (int id), for preallocated objects. - - * ace/Object_Manager.{h,cpp}: added ACE_LOG_MSG_INSTANCE_LOCK, - and ACE_PREALLOCATE_OBJECT macro. - - * include/makeinclude/wrapper_macros.GNU: ignore shared_libs_only - in modules that only build a static lib. Fixed shared_libs_only - by removing OBJDIRS, unless BIN is undefined, and VDIR. Removed - SHOBJ from both shared_libs_only and static_libs_only because - they're unused. - - * include/makeinclude/rules.local.GNU: added lib*.*_pure* to - clean.local target, to remove Purified libraries. - - * examples/Connection/non_blocking/Makefile, - examples/Service_Configurator/IPC-tests/server/Makefile: - removed -L./ from LDFLAGS because it's redundant: - wrapper_macros.GNU adds it. - -Wed Sep 10 22:58:10 1997 Douglas C. Schmidt - - * ace/Thread_Manager.cpp (exit): Reordered the code so that it - will keep the lock held long enough to copy out the thread exit - hook but will release the lock before calling this hook. - -Wed Sep 10 11:04:08 1997 David L. Levine - - * ace/config-sunos5.5-g++.h: added - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS. - - * include/makeinclude/wrapper_macros.GNU: added PIC= with - static_libs_only, and added list of supported make flags. - - * include/makeinclude/wrapper_macros.GNU: added support for - debug=0, etc. Also, made debug, optimize, and profile - flags independent instead of exclusive. Thanks to Per - Andersson for suggesting this. - - * include/makeinclude/platform_*.GNU: replaced "CFLAGS += - $(DCFLAGS) with debug=1 so that debugging can easily be - disabled. Thanks to Per Andersson and James CE Johnson - for noticing this deficiency. - - * include/makeinclude/platform_vxworks5.x_g++.GNU: removed - "-I. -I$(ACE_ROOT)" from CFLAGS because it duplicates the - INCLDIRS set in wrapper_root.GNU. - -Wed Sep 10 10:35:06 1997 David L. Levine - - * ACE version 4.3.5, released Wed Sep 10 10:35:06 1997. - -Wed Sep 10 10:25:41 1997 David L. Levine - - * ace/Thread_Manager.cpp (exit): copy the thread exit hook before - releasing the guard, and call it after releasing the guard. - - * examples/Shared_Malloc/test_malloc.cpp (spawn): added (char *) - cast of slave_name () to avoid compilation warnings on Solaris. - -Wed Sep 10 00:43:04 1997 Nanbor Wang - - * ace/Makefile: Added Managed_Object to template sources. - - * ace/Object_Manager.{h,cpp}: * ace/Managed_Object.{h,cpp}: - Separate ACE_Managed_Object to a new set of file. - -Tue Sep 9 23:41:56 1997 Douglas C. Schmidt - - * tests/Reactors_Test.cpp (main): Check to see if wait() returns - -1 and then test to see what's gone wrong! - - * ace/OS.h: Added a "fake" #define for SIGALRM so that programs - will *compile* on platforms like Chorus. Thanks to Wei Chiang - for reporting this. - - * examples/Shared_Malloc/test_malloc.cpp (spawn): HP/UX doesn't - seem to like const char *const argv[] being given an initializer - list. I've fixed this to be just plain ol' char *argv[]. - Thanks to Sandro Doro for reporting this. - - * ace/Handle_Set.i (clr_bit): Replaced SOCKET with ACE_SOCKET so - this will compile on UNIX. - -Tue Sep 09 17:16:21 1997 - - * ace/Proactor: Updated Proactor to bring it upto date with the - recent changes to the Timer_Queue. - - * ace/Handle_Set.i (clr_bit and set_bit): These methods now change - the size_ member of the class on Win32. This is necessary since - the ACE_Handle_Set::operator fd_set *() accessor has been - optimized for size_ == 0. - -Tue Sep 09 09:14:07 1997 David L. Levine - - * ace/OS.cpp (cleanup_tss): On WIN32 and with ACE_HAS_TSS_EMULATION, - delete the ACE_TSS_Cleanup instance instead of registering it for - cleanup via the ACE_Object_Manager's at_exit (). This should allow - applications to use ACE_Log_Msg in their at_exit () hooks. Thanks - to Wei Chiang for reporting this problem. - - * ace/Object_Manager.{h,cpp}: added guard of internal structures. - (dtor): call at_exit hooks before calling cleanup_tss, now that - the ACE_TSS_Cleanup instance is no longer registered for an at_exit - call. (at_exit): set errno instead of returning different values - on error. Added ACE_Managed_Object template class, intended for - use in replacing static instances. - - * ace/Thread_Manager.cpp (exit): release guard before running the - thread exit hooks. This should help avoid deadlocks, in case - one of those hooks needs to operate on the Thread_Manager. - - * ace/CORBA_Handler.{h,cpp},Dump.{h,cpp},Object_Manager.{h,cpp}: - preallocate locks for CORBA_Handler and Dump in ACE_Object_Manager. - Statics are evil. - - * ace/Synch.{h,cpp},OS.cpp,Object_Manager.{h,cpp}: removed - ACE_TSS_Cleanup_Lock and replaced it with a preallocated mutex - in OS.cpp. Thanks to Nanbor for reporting problems at shutdown - with the old ACE_TSS_Cleanup_Lock static instance. - - * include/makeinclude/platform_sunos5_sunc++.GNU: when building - libraries only, don't use CC to create individual .shobj/*.so - files. The .so files are not needed to build libraries, because - libraries are built with -G. (They are needed to avoid upsetting - the ACE make rules, so they're created as links to their - corresponding .o files.) The .so files are still needed when - building executables in order to get all template instantiations. - - * include/makeinclude/platform_sunos5_g++.GNU: removed unused - SOLINK definitions. - -Mon Sep 8 18:38:22 1997 Douglas C. Schmidt - - * tests/Handle_Set_Test.cpp: It is possible for the order to get - the handles (using the iterator) will not agree with insert - order in ACE_Unbounded_Queue. It's best to use - ACE_Unbounded_Set. Thanks to Arturo for this fix. - -Mon Sep 8 17:43:43 1997 Darrell Brunsch - - * ace/Timer_{List,Wheel,Hash,Heap}_T.cpp: The iter() method now - returns a pointer to an iterator that is in a reset state - instead of an unknown one. - -Mon Sep 8 14:05:15 1997 Nanbor Wang - - * ace/ACE.cpp (read_adapter): Removed ACE_Thread_Control object in - this function. This is now taken care of by ACE_Thread_Manager. - (register_stdin_handler): This function no longer uses - ACE_Stdin_Args to pass in thread manager into read_adapter. - - * ace/ACE.h (ACE): Removed class ACE_Stdin_Args, because it is no - longer needed. - -Mon Sep 08 11:49:02 1997 David L. Levine - - * tests/run_tests.sh: moved log file checks out to separate file, - run_tests.check. - - * tests/run_tests.vxworks: added one-button test for VxWorks. - Check it out, Darrell. - - * ace/Filecache.cpp: commented out unused constants [RW]COPY_FLAGS. - -Mon Sep 08 08:26:52 1997 David L. Levine - - * ACE version 4.3.4, released Mon Sep 08 08:26:52 1997. - -Sat Sep 6 10:41:17 1997 Carlos O'Ryan - - * ace/Malloc.h: - sizeof() must be casted to int in ACE_CONTROL_BLOCK_ALIGN_LONGS - otherwise unsigned int arithmetic is used, thus obtaining - unexpected results. - -Sat Sep 06 09:07:02 1997 David L. Levine - - * OS.{h,cpp}: added ACE_Cleanup base class and - ace_cleanup_destroyer adapter. - - * Object_Manager.*: added at_exit () interface for ACE_Cleanup objects. - - * Singleton.{h,cpp},Token_Invariants.{h,cpp},Token_Manager.{h,cpp}: - base on ACE_Cleanup, so that simpler ACE_Object_Manager::at_exit () - can be used. - - * performance-tests/Misc/Makefile: moved $(BIN) files from FILES - to SRC so that they don't get put into libPerf. - -Sat Sep 6 02:36:31 1997 Nanbor Wang - - * tests/test_config.h (set_output): Added openning flag ios::trunc - explicitly if we are not appending to the opening ofstream. - This is required by standard CPP iostream libraries on NT (i.e., - we can't use ios::out alone when ofstream.open a file.) - -Sat Sep 6 00:21:33 1997 Douglas C. Schmidt - - * ace/Synch_T.h: Added new constructors: - - ACE_Guard(ACE_LOCK& l) : lock_(&l) - { this->owner_ = this->acquire(); } - - ACE_Read_Guard(ACE_LOCK& m) : ACE_Guard(&m) - { this->owner_ = this->acquire_read(); } - - ACE_Write_Guard(ACE_LOCK& m) : ACE_Guard(&m) - { this->owner_ = this->acquire_write(); } - - Remove default argument to current Guard classes. - - ACE_Guard(ACE_LOCK&l, int block) - ACE_Read_Guard(ACE_LOCK& m, int block) - ACE_Write_Guard(ACE_LOCK&m, int block) - with the current semantic. - - This change allows OS platforms with - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION or ACE_HAS ??? PRAGMA - ???, to> invoke common case constructor in a more efficient - way. Thanks to Arturo for this. - - * ace/Synch_T.h: ACE_Guard's destructor should be: - - ~ACE_Guard() { this->release(); } - - and not - - ~ACE_Guard() { if (this->owner_ != -1) this->release(); } - - because ACE_Guard::release has this test. Thanks to Arturo for - reporting this. - - * ace/ARGV.cpp: Declared the char* parameters for the ACE_ARGV - class constructors as const. Since they are copied in the - constructors, this is a safe thing to do. This makes it easier - to pass the result of string::c_str() to it. Thanks to Stephen - Coy for this suggestion. - - * ace/Thread_Manager.cpp: We were missing a Guard in the - ACE_Thread_Manager::at_exit() method. - - * ace/config-sunos5.5-sunc++-4.x.h: It appears that we need to set - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS for Solaris 2.5 since otherwise - wierd things happen randomly. This is based on the following man - page entry for pthread_exit(): - - Do not call pthread_exit() from a cancellation cleanup handler - or destructor function that will be invoked as a result of - either an implicit or explicit call to pthread_exit(). - - * ace/Thread_Manager.cpp (run_thread_exit_hooks): Once the cleanup - hook(s) are called we set the value of the cleanup hook variable - to 0 to avoid false matches later on. - -Fri Sep 5 21:57:44 1997 Nanbor Wang - - * ace/Containers.i (is_empty): - * ace/Malloc.cpp (instance): Commented out ACE_TRACE in these - routines. They were causing recursive call if we used TRACE. - Thanks to Craig Perras for solving - this. - - * ace/Handle_Set.i (fd_set *): Added conditional compilation code - for Win32 platforms. This is because we don't maintain - on Win32 and, therefore, can't depend on it. - -Fri Sep 5 19:05:02 1997 Douglas C. Schmidt - - * tests/Thread_Manager_Test.cpp (main): moved delete - signal_catcher into the ACE_HAS_THREADS part of the main() - function. - - * ace/Reactor.cpp (check_handles): When handle_error was optimized - with fstat we put NULL value to second argument. It requires a - value to SCO OpenServer to work. Therefore, I added struct stat - temp and changed ACE_OS::fstat(handle, NULL) by - ACE_OS::fstat(handle, &temp); Thanks to Arturo for fixing this. - - * examples/Threads/process_manager.cpp (sig_handler): Fixed a bug - where the thread was exiting if no more children existed. - Thanks to Avraham Nash for reporting - this. - - * ace/Handle_Set: Added the following performance enhancements: - - . Assignment operator to optimize size == 0. - - . min_handle to manage the case when the Handle_Set start in - handle different of zero. - - . A new iterator algorithm tuned for select function calls. - - Thank to Arturo for these enhancements. - - * ace/config-aix-4.1.x.h: Added ACE_LACKS_TIMESPEC_T. Thanks to - Rob Head (rhead@virtc.com) for reporting this. - - * ace/OS.cpp (fork_exec): Changed the logic so that we don't - create a new console window on Win32. This isn't done on UNIX, - so there's no point in doing it here. Thanks to Jeff Richard - for pointing this out. - - * ace/Reactor.cpp: The call to - ACE_Reactor_Handler_Repository::open() in the constructor of - ACE_Reactor should check for == -1! Thanks to Brian Mendel for - reporting this. - - * ace/Reactor.cpp (remove_handler): Fixed a braino where the - conditional compile for NSIG should have been > 0 rather than == - 0. Thanks to fixing this codeKaren Amestoy - for reporting this fix. - -Fri Sep 05 16:17:50 1997 David L. Levine - - * performance-tests/Misc/preempt.cpp: added command line options, - and explanation on how to interpret the results. - -Thu Sep 04 10:26:11 1997 David L. Levine - - * ace/OS.cpp: (tss_open): removed paren from around type in "new" - statement, because GHS (and ANSI C++) compilers will choke on it. - Thanks to Brian Mendel for reporting - this. - - * ace/Thread_Manager.cpp: (ACE_Thread_Descriptor ctor): zero out - cleanup_hook_ in cleanup_info_ because we read it later on. - (dump): added guard because thr_table_ is accessed. (wait): - hacked in thr_yield () to give waited threads a chance to clean - up before continuing. - - * ace/OS.h (ACE_Cleanup_Info): added default ctor. - - * ace/Log_Msg.cpp (close): delete main thread's Log_Msg instance, - on Solaris if ACE_HAS_EXCEPTIONS is not defined, because main - thread TSS dtors apparently don't get called. - - * ace/Token_Manager.{h,cpp}: register ACE_Token_Manager singleton - for deletion with ACE_Object_Manager. - - * ace/Token_Invariants.{h,cpp}: register ACE_Token_Invariant_Manager - singleton for deletion with ACE_Object_Manager. - - * ace/Naming_Context.cpp (close) moved deletion of "name_options_" - from dtor to close (), because when Service_Repository is closed, - it calls close () instead of deleting the service. - - * ace/Process_Strategy.cpp (handle_signal): suppress printouts during - shutdown, to prevent using ACE_Log_Msg while it's being deleted. - - * ace/Timer_List.cpp: replace ACE_Recursive_Thread_Mutex with - ACE_SYNCH_RECURSIVE_MUTEX, for non-threaded platforms. - - * tests/Reactors_Test (~Test_Task): moved ASSERT after the printout, - so we can see why it failed. (svc): added printout with thread ID. - (main): deleted reactor at end of test to prevent leak. - - * tests/SPIPE_Test (client): increased sleep time to 10 sec, - because a long delay is needed with Purify. - - * tests/UPIPE_Test (connector): added 5 second sleep to give - acceptor a chance to start up. - - * include/makeinclude/wrapper_macros.GNU: added -max_threads=100 to - Quantify options. - - * include/makeinclude/rules.local.GNU: added *.sym to clean target. - -Thu Sep 04 09:39:08 1997 David L. Levine - - * ACE version 4.3.3, released Thu Sep 04 09:39:08 1997. - -Thu Sep 04 08:48:13 1997 David L. Levine - - * include/makeinclude/wrapper_macros.GNU: added shared_libs_only - and static_libs_only build options. Only static_libs_only - has been tested successfully. - - * include/makeinclude/rules.lib.GNU: added INSTALL support for - shared_libs_only and static_libs_only. - - * include/makeinclude/platform_vxworks*.GNU: use static_libs_only. - - * ace/OS.cpp: moved tss_open ()/tss_close () calls from invoke () - to ace_thread_adapter. - - * examples/Threads/auto_event.cpp,manual_event.cpp, - process_manager.cpp,reader_writer.cpp,tss2.cpp: - cast spawn entry point to ACE_THR_FUNC. - - * examples/Threads/task_four.cpp (Invoker_Task): rearranged - initializers to match declaration order. - - * examples/Threads/thread_specific.cpp (worker): use - ACE_OS::printf () instead of printf (), and print out the - ACE_hthread_t instead of the ACE_thread_t. - - * examples/IPC_SAP/SPIPE_SAP/client.cpp,consumer_msg.cpp, - consumer_read.cpp,producer_msg.cpp,producer_read.cpp,server.cpp: - moved #include of shared.h inside ACE_HAS_STREAM_PIPES protection - to avoid compilation warnings on unsupported platforms. - - * examples/Reactor/Ntalker/ntalker.cpp (main): removed unused "argc". - - * examples/*/*.cpp,netsvcs/clients/Tokens/mutex/test_mutex.cpp: - added args to main (). - -Wed Sep 3 21:38:18 1997 Carlos O'Ryan - - * ace/config-irix6.x-sgic++.h: - IRIX uses pthread_sigmask to manage per-thread signal mask, - thanks to Gonzalo Diethelm (gonzo@ing.puc.cl) for pointing out - this one. - - * ace/OS.h: - Removed an initial '#' for a comment line, thanks to Gonzalo - Diethelm (gonzo@ing.puc.cl) for pointing out this one. - - * ace/Timer_Hash_T.cpp: - * ace/Timer_Hash_T.h: - * ace/Timer_Heap_T.cpp: - * ace/Timer_Heap_T.h: - * ace/Timer_List.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_List_T.h: - * ace/Timer_Queue_T.cpp: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel_T.cpp: - * ace/Timer_Wheel_T.h: - In the word of its author: Modified the iterators kept in - each of these classes so that they are constructed - dynamically on the heap after the Queue has been properly - initialized. Otherwise, the iterators try to iterate over a - non-initialized queue, and fail miserably (usually dumping - core). Once more thanks to Gonzalo Diethelm - (gonzo@ing.puc.cl) for this changes. - - * tests/UPIPE_SAP_Test.cpp: - Gonzalo improved the error message. - - * ace/README: - Gonzalo updated the documentation for some macros. - -Wed Sep 03 15:21:46 1997 David L. Levine - - * ace/OS.h: define ACE_TSS macros with ACE_HAS_TSS_EMULATION, - and renamed some ACE_TSS_Emulation methods. - - * ace/OS.i: allow TSS_Emulation storage to be on thread stack, - instead of always dynamically allocating it. - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): allocate TSS_Emulation - storage on thread stack. (ACE_TSS_Cleanup::exit): only call - a TSS destructor if the thread's value is non-zero. - - * ace/Thread_Manager.cpp: support TSS_Emulation. - - * ace/Thread_Manager.cpp (resize): zero out unused cleanup_hooks - in thr_table_; (run_thread_exit_hooks): check for zero cleanup - hook before calling. - - * ace/Synch_T.*: allow ACE_HAS_TSS_EMULATION _or_ - ACE_HAS_THREAD_SPECIFIC_STORAGE. - - * ace/Object_Manager.{h,cpp}: allocate main thread's TSS_Emulation - storage in the ACE_Object_Manager instance. - - * ace/Log_Msg.h: befriend ACE_OS::cleanup_tss () instead of - ACE_Object_Manager, because the cleanup path is now indirect - from the ACE_Object_Manager. - - * ace/Log_Msg.cpp: use TSS_Emulation on VxWorks, so - VxWorks-specific code was removed. - - * ace/Task.cpp: removed unused #include of ace/Dynamic.h. (It had - been used for template instantiations, but they were moved.) - Also, removed unused #include of ace/Object_Manager.h. - - * ace/Svc_Handler.{h,cpp}: register Svc_Handler singleton for - deletion with the ACE_Object_Manager. - - * tests/Process_Strategy_Test (Options): added a destructor so that - the dynamically allocated concurrency_strategy_ can be deleted. - -Wed Sep 3 08:05:26 1997 Steve Huston - - * ace/Message_Block.h: Corrected comment on release(void) - the - underlying ACE_Data_Block's refcount is decremented; the - ACE_Message_Block is always deleted. - -Tue Sep 2 18:26:22 1997 Douglas C. Schmidt - - * ace/Task: Revised the ACE_Task_Base::svc_run() method to - register a thread exit hook (ACE_Task_Base::cleanup()) - - * ace/Task: Added a static method called cleanup() that can serve - as a thread exit hook to ensure that close() is always called - when a task exits a thread. - - * ace/Thread_Manager: Added the first-cut implementation of the - thread exit hooks. This one is butt-simple -- just allowing a - single hook per-thread, but that should be enough to get us over - the hump... - - * ace/OS.h: Moved the object_info_t type from Object_Manager.h and - renamed it to ACE_Cleanup_Info since we will use it with the - Thread_Manager and the Object_Manager. - - * ChangeLog-97b: Emptied out the ChangeLog-97b file until - we move the ChangeLog to this file... - - * ace/OS.h: Moved the typedef from the - ACE_Object_Manager into global scope so that it can also be used - by the ACE_Thread_Manager. - - * ace/DEV_IO: Moved the get_remote_addr() and get_local_addr() - from the DEV class to the DEV_IO class, which seems to be more - consistent with how they should be used. - - * ace/FILE_IO: Added the get_remote_addr() and get_local_addr() - methods to FILE_IO. Now we should be able to use this with the - Connector pattern. Thanks to Stephen Coy - for reporting this. - - * ace/DEV_Connector*h, ace/FILE*.h: Added "traits" for PEER_ADDR - and PEER_STREAM. Now we should be able to use this with the - Connector pattern. Thanks to Stephen Coy - for reporting this. - - * tests/Async_Timer_Queue_Test.cpp (main): Replaced the use of - fputs() with read() so that it will be signal-safe. Thanks to - Carlos for pointing out the need for this. - - * ace/Task: All the complex ACE_Task_Exit logic has been moved out - of the Task file and into the Thread_Manager file. This will - both simplify and generalize the behavior of cleanups on thread - exit. - -Tue Sep 2 14:42:52 1997 Nanbor Wang - - * ace/config-chorus.h (ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR): - Added this directive for Chorus uses g++. Thanks to David - Levine for pointing this out. - -Mon Sep 01 21:31:25 1997 David L. Levine - - * ChangeLog-97b,Makefile,bin/create_ace_build: ChangeLog is no longer - a symbolic link, but instead is the most recent ChangeLog file. - ChangeLog-97b was moved to ChangeLog. - - * ace/Timer_Queue_T.cpp (schedule): added ACE_UNUSED_ARGs for act - and interval. - - * ace/OS.h: changed ACE_SEH_EXCEPT and ACE_SEH_FINALLY from null - to "while (0)" on all platforms except ACE_WIN32. Thanks to - Nanbor for this bit of macro wizardry. - - * ace/OS.i (tss_base): cast VxWorks TCB spare field to a void **& - instead of a void **, because the function returns a reference - to it. - - * ace/OS.cpp: protected definition of - ACE_TSS_Emulation::tss_collection_ on VxWorks, where it's not used. - - * ace/OS.cpp (ACE_Thread_Adapter::invoke) don't exit the thread - with TSS_EMULATION, except on WIN32. (thr_create) On VxWorks, - use thread adapter as entry point instead of func (via macros). - - * ace/config-vxworks*.h: added ACE_HAS_TSS_EMULATION, with - ACE_DEFAULT_THREAD_KEYS set to 16, and ACE_LACKS_UNIX_SIGNALS. - - * tests/Async_Timer_Queue_Test.cpp: added template instantiations. - - * tests/IOStream_Test.cpp: no longer need to dynamically allocate - the ACE_SOCK_IOStreams with the recent ACE_Thread_Manager changes. - That was causing occasional problems with unsafe deletion of the - underlying ostreams. Thanks to James Johnson for consulting on - this intermittent (nasty) problem. - - * tests/SPIPE_Test.cpp: (main) added ACE_UNUSED_ARG of client - and server. - - * tests/Thread_Manager_Test (worker): added ACE_UNUSED_ARG (thr_mgr) - if ACE_LACKS_UNIX_SIGNALS, and added template instantiations. - - * tests/Thread_Manager_Test.cpp: dynamically allocate the - signal_catcher so that we can destroy it before the main - thread's TSS is cleaned up. - - * tests/TSS_Test.cpp: dynamically allocate TSS_Error so that we - can ensure its deletion before that of ACE_Object_Manager. - Also, makde the code a little easier to change the number of threads. - - * include/makeinclude/wrapper_macros.GNU: added Purify options to - ignore SIGINT and set max threads to 100. - -Mon Sep 1 10:53:39 1997 Douglas C. Schmidt - - * ace/Handle_Set: Added an assignment operator that is optimized - for the case when the right-hand side is 0. - - * ace/OS: The ACE_THR_C_FUNC macro was confusing for Win32. We've - replaced this with the original UNIX typedef and will just use - LPTHREAD_START_ROUTINE for Win32. - - * tests/Thread_Manager_Test.cpp (main): Revised this test so that - we don't have race conditions for suspend() and resume(). - - * tests/Tokens_Test.cpp (run_test): Removed the use of - THR_SUSPENDED and resume_all() since this is broken due to race - conditions and other hazards implicit in using suspend() and - resume() on threads. - - * ace/Handle_Set.cpp: There were several ACE_INLINE methods in the - Handle_Set.cpp file. I've removed the ACE_INLINE flag. - - * tests/SPIPE_Test.cpp: If ACE doesn't have STREAM pipes on a - platform (or we aren't on NT) then don't try to run this test. - Thanks to James CE Johnson for reporting - this. - - * ace/config-sunos5.[45]-g++.h: ACE defines _REENTRANT in - config.h. Application using classes of ACE can conflict by - using compilation option as -D_REENTRANT. I fixed this by - surrounding the define as: - - #if !defined (_REENTRANT) - #define _REENTRANT - #endif /* _REENTRANT */ - - Thanks to Jean-Marc Strauss for - reporting this. - - * ace/Timer_Queue_T.h: We need to #include "ace/Signal.h" since - our Async_Timer_Queue_Adapter needs it. Thanks to Neil Cohen - for reporting this. - - * ace/Reactor.cpp (check_handles): Optimized the check for invalid - handles by using fstat() rather than select() on non-Win32 - platforms. Thanks to Arturo for suggesting this optimization. - -Mon Sep 1 17:52:10 1997 Darrell Brunsch - - * ace/Timer_Heap_T.cpp: Changed cancel (id ...) to check for - previously expired/cancelled timers - -Mon Sep 01 08:43:37 1997 David L. Levine - - * ace/Synch.cpp: added #include of Object_Manager.h. - Thanks to Edan Ayal for reporting this. - -Mon Sep 1 00:46:05 1997 Nanbor Wang - - * ace/README: Added explanation for ACE_HAS_STL_MAP_CONFILICT. - - * ace/OS.h: Added conditional compilation directive - ACE_HAS_STL_MAP_CONFLICT. This is used when users want to - compile ACE with STL library and the STL map class conflicts - with map structure in . - - * ace/config-unixware-2.1.2-g++.h: - * ace/config-unixware-2.01-g++.h: - * ace/config-osf1-4.0-g++.h: - * ace/config-irix5.3-g++.h: - * ace/config-hpux-10.x-g++.h: - * ace/config-linux-pthread.h: - * ace/config-linux-lxpthreads.h: - * ace/config-linux.h: - * ace/config-freebsd.h: - * ace/config-freebsd-pthread.h: - Added ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR flag for all - config files which apparently use g++. - - * ace/config-vxworks-g++.h: - * ace/config-vxworks5.x-g++.h: - * ace/config-sunos4-g++.h: - * ace/config-sunos5.4-g++.h: - * ace/config-sunos5.5-g++.h: - Moved ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR closer to - other template-related directives. - -Sun Aug 31 22:56:30 1997 Douglas C. Schmidt - - * ACE version 4.3.2, released Sun Aug 31 22:56:30 1997. - -Sun Aug 31 22:36:08 1997 Douglas C. Schmidt - - * tests/Async_Timer_Queue_Test.cpp: Need to #include "Timer_List.h" - rather than "Timer_Queue.h". - - * ace: Added ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT for all - config.h files. - - * ace/Handle_Set.cpp (count_bits): Continued to optimize this - method. Now, if ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT enabled - it will use a very fast loop that only runs for as many bits - that are enabled in the bitset. This approach also doesn't have - to access the Global Offset Table in shared libraries, which is - a win. Thanks to Arturo for contributing this. - - * tests/Async_Timer_Queue_Test.cpp: Generalized this test to use - the new ACE_Async_Timer_Queue_Adapter. - - * ace/Timer_Queue_T: Added the new ACE_Async_Timer_Queue_Adapter, - which makes it possible to encapsulate any of the ACE Timer - Queue mechanisms into a asynchronous signal-handling context. - - * ace/OS.i: If the platform doesn't support ualarm() (and it - doesn't lack UNIX signals) then we'll use alarm() rather - than ualarm(). Clearly, this isn't as good as ualarm(), - but it's better than nothing. - - * ace/OS.i: I'd missed replacing - - ACE_LACKS_POSIX_PROTO_FOR_SOME_FUNCS - - with - - ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCS - - in OS.i. Thanks to James CE Johnson for - pointing this out. - -Sun Aug 31 09:58:35 1997 Douglas C. Schmidt - - * Princess Diana was killed today in a senseless auto accident in - Paris, France. This is a very tragic ending to a very promising - life ahead of her. - -Sun Aug 31 15:08:00 1997 David L. Levine - - * tests/Async_Timer_Queue_Test.cpp: fixed and added some - ACE_UNUSED_ARG's. - - * netsvcs/clients/Tokens/invariant/invariant.cpp (run_mutex, - run_reader_writer), - netsvcs/clients/Tokens/mutex/test_mutex.cpp (run_test), - netsvcs/clients/Tokens/rw_lock/rw_locks.cpp (run_thread): - removed unused argument "vp". - - * ace/ACE.i (log2): moved "log" declaration outside of the - for loop because its used after the loop. - - * ace/Task.cpp (instance) only register for destruction with - ACE_Object_Manager when creating a new instance_. - - * ace/Thread_Manager.cpp (ACE_Thread_Control::exit) with TSS - emulation, don't exit the thread. Instead, - ACE_Thread_Adpater::invoke () will do it after cleaning up TSS. - - * ace/Synch{h,cpp}: (ACE_TSS_Cleanup_Lock) register for - destruction with ACE_Object_Manager. - - * ace/OS.*: major cleanup of ACE_TSS_Emulation, esp. how it - interacts with ACE_TSS_Cleanup::exit (). - -Sat Aug 30 17:30:24 1997 Steve Huston - - * Removed these config files: - config-hpux-10.x-aCC.h - config-hpux-10.x-decthreads.h - config-hpux-10.x-nothread.h - config-hpux-10.x-hpc++.h should be used with HP compilers on - HP-UX 10.x. - -Sat Aug 30 14:58:42 1997 Douglas C. Schmidt - - * ace/Signal.cpp (ACE_Sig_Action): Added a new constructor that - also takes an ACE_Sig_Set & *and* registers the handler... - - * ace/Handle_Set.cpp (count_bits): Added a newly optimized - algorithm for cases where - ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT. Thanks to Arturo for - this suggestion. - - * ace/config-sco-5.0.0*.h: Added ACE_HAS_LONG_FDMASK for all the - SCO files. Thanks to Arturo for suggesting this. - - * ace/Signal: Added a new mutator method to reassign an - ACE_Sig_Set to an ACE_Sig_Action. - - * ace/Handle_Set.i: If the size of the fd_set is 0 then operator - fd_set *() just returns 0. This will help to optimize the - performance of the Reactor. Thanks to Arturo for suggesting - this. - - * ace/Handle_Set.cpp (count_bits): Added yet another improvement - to remove the "i" iterator. Thanks to Arturo for this! - - * ace/Log_Msg.cpp (log): Used the new ACE_Log_Record::priority() - method in place of the type() method so that the priorities are - handled correctly. - - * ace/Log_Record: Added two new methods that get/set the - "priority" of an ACE_Log_Record. This value computed as the - base 2 log of the value of the corresponding ACE_Log_Priority - enumeral (which are all powers of two). We need this mapping - function so that we can use the priorities as parameters to the - putpmsg() function (which can only map between 0-255). Thanks - to Per Andersson for finding this stuff! - - * ace/ACE: Added a new method to compute the base2 logarithm of a - number. - - * Replaced all uses of ACE_Thread_Control since this is now - handled by the ACE_Thread_Manager. - - * ace/Thread_Manager.cpp (spawn_i): Make sure to pass "this" to - the ACE_Thread_Adapter if we're constructing it in the - ACE_Thread_Manager::spawn_i() method. - - * ace/OS.i (cond_timedwait): Added a special check to see if - timeout != 0, in which case we just call ACE_OS::cond_wait(). - Therefore, VxWorks can now use ACE_OS::cond_timedwait(), as long - as the timeout == 0! This simplifies certain internal ACE code. - Thanks to David Levine for pointing this out. - - * ace/Handle_Set.cpp (count_bits): Changed the code from - - for (int i = 0; i < sizeof (u_long); i++) - { - rval += ACE_Handle_Set::nbits_[n & 0xff]; - n >>= 8; - } - - to - - for (int i = 0; n != 0; i++) - { - rval += ACE_Handle_Set::nbits_[n & 0xff]; - n >>= 8; - } - - in order to speed it up in the "best case." Thanks to Arturo - Montes for reporting this. - - * ace/Thread.cpp (spawn_n): Added a test to make sure that the - thread_ids is != 0 before we assign into this. - -Fri Aug 29 22:45:21 1997 Nanbor Wang - - * ace/config-vxworks-g++.h: - * ace/config-vxworks5.x-g++.h: - * ace/config-sunos4-g++.h: - * ace/config-sunos5.4-g++.h: - * ace/config-sunos5.5-g++.h: - Added flag ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR to these - config files. - - * ace/README: Added explanation of flag - "ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR." - When calling a template class'es destructor explicitly, if you - must use "ptr->FOO::~FOO ();" but not - "ptr->FOO::~FOO ();" then, you must add this flag to - your config file. - - * ace/OS.h (ACE_DES_FREE_TEMPLATE): Added this new macro to cope - with the fact that compilers require different syntax when - calling destructor of template classes explicitly. This macro - takes four arguments, POINTER, DEALLOCATOR, CLASS, and - TEMPLATE_PARAMETER. To deallocate a pointer allocated by - ACE_NEW_MALLOC and you need to call FOO class'es - destructor, you'll write: - - ACE_DES_FREE_TEMPLATE (ptr, alloc->free, FOO, ); - - * ace/Containers.cpp: Changed to use ACE_DES_FREE_TEMPLATE to iron - out differences among compilers. - -Fri Aug 29 15:31:50 1997 David L. Levine - - * ace/OS.*,Synch.{h,cpp},Object_Manager.cpp: started adding - support for TSS emulation. - - * ace/OS.h: declare class ostream if - ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - - * tests/Async_Timer_Queue_Test.cpp (parse_commands): fixed - sscanf format specifiers to match argument types; (main): - fixed ACE_ERROR_RETURN parens; protected bulk of code with - ACE_HAS_UALARM so that the test will build cleanly on - platforms without it. - -Fri Aug 29 00:43:27 1997 Douglas C. Schmidt - - * ace/Synch.cpp (wait): Simpified the call to - ACE_OS::cond_timedwait() to avoid an extra test. Thanks to - Arturo for pointing this out. - - * ace/TTY_IO: Added native support for TSETA. Thanks to Arturo for - this. - - * ace/Strategies_T.cpp: Finished integrating the ACE_DLL_Strategy - implementation, which is used in TAO. Thanks to Satheesh Kumar - MG for motivating this. - - * ace/Synch_T.h: Clarified the constructor for ACE_TSS that takes - a TYPE * as an argument. Note that this only initializes the - TSS value in the *calling* thread, but not any other threads - that may come along later on. Thanks to Bob Laferriere - for helping to clarify this. - - * ace/Synch_T.h: Removed stray semi-colons from some of the - ACE_SYNCH_* macros. Thanks for Wei Chiang for reporting this. - -Fri Aug 29 11:40:10 1997 Darrell Brunsch - - * ace/OS.cpp: Added cast for ace_thread_adapter. - - * ace/OS.h: Changed name of ACE_Thread_Adapter's constructor's - fourth parameter from tm to tmgr since tm conflicted with - another tm. - - * ace/Thread_Manager.cpp: In spawn_i, changed the last parameter - given to spawn to thread_args. Also had to add a cast for - ace_thread_adapter. - -Fri Aug 29 06:44:05 1997 Nanbor Wang - - * ace/OS.h (ACE_DES_FREE): Added this macro which will call - designate destructor before freeing the memory. This is a - matching macro that should go with ACE_NEW_MALLOC and - ACE_NEW_MALLOC_RETURN which allocate memory using designate - allocator then call the user specified constructor explicitly. - - * ace/Containers.cpp: Many memory deallocations of container's - nodes were changed to use the new macro which deletes objects - correctly. - - Thanks very, very much to Ivan Murphy for torturing various - test programs and reporting those tests which fail the - excruciation. - -Fri Aug 29 01:26:38 1997 - - * ace/ReactorEx.cpp: Added two new methods to ReactorEx - - schedule_wakeup() and cancel_wakeup(). Also fixed some bugs - related to our local copy of network_events_ not getting updated - properly. Thanks to Edan Ayal for pointing out - the two missing functions. - -Thu Aug 28 20:12:23 1997 Douglas C. Schmidt - - * ace/Thread_Manager.cpp: Added a new ace_thread_manager_adapter() - function, which is similar to the ace_thread_adapter function - used in ACE_OS::thr_create(). However, the new function ensures - that threads spawned by an ACE_Thread_Manager are automatically - registered and deregistered from the Thread Manager. - - * ace/ACE.h (inherit_log_msg): Factored out the functionality to - inherit the logging features if the parent thread has an - ACE_Log_Msg instance in thread-specific storage. This function - is called in several places (e.g., OS.cpp and - Thread_Manager.cpp), so it pays to factor it out. - - * ace/OS.h (ACE_Thread_Adapter): Added a new data member that - keeps track of which thread entry point function we will pass to - the underlying OS thread creation routine. The default value is - ace_thread_adapter, but this can be overridden to do different - things... - - * ace/OS, - ace/Thread: Extended thr_create() so that if an - ACE_Thread_Adapter is passed to it this is used in lieu of the - func and arg parameters. This reduces the amount of dynamic - allocation and indirection required with the new - ACE_Thread_Manager. - - * ace/Task.h: Removed the ACE_Thread_Control data member from the - ACE_Task_Exit class since it now belongs to the - ACE_Thread_Manager instead... - - * ace/OS.cpp: Move the ACE_Thread_Adapter out of the OS.cpp file - and made it a first-class citizen of ACE. We can put this - to good use in the new ACE_Thread_Manager. - - * ace/OS.cpp: The ACE_Thread_Adapter is now the default behavior - in ACE. If you don't want to use it for whatever reason, - you'll need to set the ACE_NO_THREAD_ADAPTER macro. - - * ace/config-sco-5.0.0-fsu-pthread.h: Added - ACE_LACKS_CONST_TIMESPEC_PTR. Thanks to Arturo for this. - - * ace/Synch.cpp (wait): Removed the reference assignment and just - take the address of this->mutex_.lock_. Also, removed the - additional check for abstime == 0 in order to speed up the - common case. Thanks to Arturo for these suggestions. - -Thu Aug 28 20:02:03 1997 Douglas C. Schmidt - - * ACE version 4.3.1, released Thu Aug 28 20:02:03 1997. - -Thu Aug 28 00:21:09 1997 Douglas C. Schmidt - - * ace/Strategies_T.cpp (ACE_Thread_Strategy): Added reasonable - values to the default constructor. Thanks to Stephen Coy - for reporting this. - - * ace/config-irix6.x-sgic++-*.h: Added ACE_HAS_UALARM. Thanks to - Amos Shapira for reporting this. - - * ace/config-aix-4.*.h: Added ACE_HAS_UALARM. Thanks to Cary - Clark for reporting this. - - * ace/config-hpux-10.x*.h: Added ACE_HAS_UALARM. Thanks to Cary - Clark for reporting this. - - * ace/config-osf1*.h: Added ACE_HAS_UALARM. Thanks to Thilo - for reporting this. - - * ace/config-mvs.h: Added ACE_HAS_UALARM. Thanks to Chuck Gehr - for reporting this. - - * tests/Async_Timer_Queue_Test.cpp: Added a new test that will - illustrate how to implement an asynchronously invoked - Timer_Queue using UNIX SIGALRM signals. - -Thu Aug 28 19:32:07 1997 - - * examples/Reactor/ReactorEx: Added two new applications - (test_registry_changes.cpp and test_console_input.cpp) to show - some more features of ReactorEx. test_registry_changes.cpp shows - how to monitor the Registry using ReactorEx. - test_console_input.cpp shows how to use ReactorEx to get - notified when input shows up on the console. - -Thu Aug 28 18:07:37 1997 Darrell Brunsch - - * ace/Timer_{List,Heap,Wheel,Hash}_T.cpp: Changed the behavior - of the iterator to automatically initialize when the iterator - is constructed. - -Thu Aug 28 10:43:35 1997 David L. Levine - - * ace/Task.{h,cpp} (ACE_Task_Exit::instance) added call to - ACE_Object_Manager::at_exit () to clean up the singleton at - program termination. - -Thu Aug 28 03:25:52 1997 Nanbor Wang - - * tests/Task_Test.cpp (Barrier_Task): - * tests/TSS_Test.cpp (main): Added an array to collect thread - handles in order to clean them up. Thanks to Ivan Murphy - for pointing this out. - - * ace/Thread_Manager.{h,cpp} (spawn_n): - * ace/Task.{h,cpp} (activate): - Added an extra argument ACE_hthread_t thread_handles[] with - default value 0. We need this argument to collect handles of - spwaned/activated threads. On NT, we have to join terminated - threads explicitly to prevent handles leak. Thanks to Ivan - Murphy for digging this out. - -Wed Aug 27 10:48:25 1997 Douglas C. Schmidt - - * ace: Changed all occurrences of ACE_LACKS_RLIMIT_PROTO to - ACE_LACKS_RLIMIT_PROTOTYPE, ACE_LACKS_POSIX_PROTO to - ACE_LACKS_POSIX_PROTOTYPES, and ACE_LACKS_SYSV_MSQ_PROTOS to - ACE_LACKS_SYSV_MSQ_PROTOTYPES to be more consistent. - - * ace/config-sunos5.x*.h: Added ACE_HAS_UALARM to all the Solaris - config files. However, also had to add ACE_LACKS_UALARM_PROTOTYPE - since Solaris strangely doesn't provide this prototype. - - * ace/OS.h: Added an ACE_Time_Value version of ACE_OS::ualarm(). - - * ace/Signal: Added a new constructor for ACE_Sig_Action that - takes an ACE_Sig_Set parameter. - - * ace/Signal: Added a sigset() accessor method. - - * ace/config-unixware-2.1.2-g++.h: Added ACE_HAS_UALARM. Thanks - to Ganesh Pai for reporting this. - - * ace/OS.h: Added a default value of 0 to ACE_OS::time(). - - * ace/Synch.i (ACE_Thread_Mutex_Guard): Rearranged the code so - that we can inline the acquire(), tryacquire(), and release() - methods properly. Thanks to David Levine for pointing this out. - - * ace/OS.h: Added ACE_OS support for the ualarm() method. If your - platform supports ualarm() please send me email so I can set the - ACE_HAS_UALARM flag in your config.h file. - - * tests/Makefile: Added an asynchronous timer queue test. - - * examples/IOStream/server/iostream_server.cpp: Added a new macro - to work around the fact that some C++ compiles don't grok - template typedefs. Thanks to Oleg Krivosheev - for pointing this out. - - * ace/OS, - ace/Task.cpp: - Installed a bunch of patches for FSU pthreads. Thanks to Arturo - Montes for sending this. - - * Makefile: Added a line to the release script that will - automatically generate an ACE-INSTALL text file from the - ACE-INSTALL.html file. Thanks to Oleg Krivosheev - for suggesting this. - - * performance-tests/Misc/Makefile: Added $(BIN) to the FILE target - so that "make depend" will work. Thanks to David Levine for - pointing this out. - - * ace/Synch.i: Eliminated unnecessary assignment to this->owner_. - Thanks to Chris for pointing this out. - - * ace/OS.i (msgctl): Added a "struct" to the definition of - msqid_ds. Thanks to Steve Hickman for - reporting this. - -Thu Aug 28 01:07:21 1997 - - * examples/Reactor/ReactorEx/test_directory_changes.cpp: Added a - new example application. This application tests the working of - ReactorEx when users are interested in changes in the - filesystem. - -Wed Aug 27 22:06:23 1997 Nanbor Wang - - * *.{mak,mdp,dsw,dsp}: Updated ACE's library names on Win32 as - below. Only Microsoft's Win95 and Windows NT are effected. - - Version Dynamic Library Static Livrary - ------------------ -------------------- ----------------- - Debug aced.lib, aced.dll acesd.lib - Release ace.lib, ace.dll aces.lib - Debug w/ UNICODE aceud.lib, aceud.dll acesud.lib - Release w/ UNICODE aceu.lib, aceu.dll acesu.lib - - Thanks to John Morey for suggesting this and - Darrell for updating VC 5.0's makefiles. - - * ace/config-freebsd[-pthread].h (ACE_HAS_UALARM): FreeBSD does has - ualarm. - -Wed Aug 27 10:52:59 1997 Chris Cleeland - - * ace/Synch_T.h (CTOR): Eliminated unnecessary assignment to - this->owner_. - -Wed Aug 27 09:32:57 1997 David L. Levine - - * ace/Singleton.cpp (instance): removed full qualification of - "instance_" in ACE_NEW_RETURN macro, because it confused - the Sun C++ 4.2 preprocessor. - - * ace/Singleton.cpp: added support for ACE_HAS_SIG_C_FUNC platforms, - e.g., on MVS. At least I tried to. The cleanup function, - on ACE_HAS_SIG_C_FUNC platforms only, doesn't call the object's - destructor. It just deallocates the storage. That should be - good enough; I don't think it's worth trying to do more than that. - - * ace/Synch.cpp (close_singleton): removed call to - ACE_Allocator::close_singleton (), because this method is - only called if ACE_HAS_THREADS. - - * ace/Object_Manager.cpp (dtor): added call to - ACE_Allocater::close_singleton (), and protected call to - ACE_Static_Object_Lock::close_singleton () with ACE_HAS_THREADS. - - * tests/Time_Value_Test.cpp: disabled ACE_U_LongLong test - on ACE_WIN32 platforms, because that class is never used - there. Thanks to Nanbor for finding this. - - * performance-tests/Misc/preempt.cpp,Makefile: added preempt - test, which tests for thread preemption. - -Tue Aug 26 13:59:01 1997 Douglas C. Schmidt - - * netsvcs/lib/Server_Logging_Handler_T.cpp: Changed the symbol - "SS" to "SST" to avoid a namespace collision with UnixWare. - Thanks to Ganesh Pai for pointing this out. - - * ace: Added a new config file to sco using FSU pthreads. Thanks - to Arturo Montes for sending this. - - * include/makeinclude: Added a new platform macros file to sco - using FSU pthreads. Thanks to Arturo Montes - for sending this. - -Tue Aug 26 22:06:14 1997 - - * examples/Reactor/ReactorEx: Added two new applications for - testing some of the new features of ReactorEx. Added - documentation and renamed some of the older test files to make - it easier to comprehend the examples. - -Tue Aug 26 11:47:29 1997 - - * ace/OS.i (mutex_trylock): Changed this method to make it deal - correctly with abandoned mutexes. Also added a new mutex_trylock - method that allows the user to know if the mutex was abandoned - (through an extra out parameter). Also fixed - ACE_OS::cond_timedwait(), ACE_OS::cond_wait(), - ACE_OS::event_wait(), ACE_OS::event_timedwait() and - ACE_OS::sema_wait() to remove extra checks for WAIT_ABANDONED, - since we are not dealing with mutexes in these methods. Thanks - to Ivan Murphy for pointing this - out. - -Tue Aug 26 11:06:45 1997 David L. Levine - - * ace/OS.h,config-vxworks5.x-g++.h: - split ACE_HAS_RENAMED_MAIN into ACE_MAIN and - ACE_HAS_NONSTATIC_OBJECT_MANAGER. - - * ace/ACE.cpp: only create the ACE_Object_Manager_Destroyer - if not ACE_HAS_NONSTATIC_OBJECT_MANAGER. - - * ace/Object_Manager.{h,cpp}: dynamically allocated the - contained ACE_Unbounded_Queue to so that it can be deallocated - before the ACE_Allocator is destroyed. - - * ace/Singleton.{h,cpp}: register all ACE_Singletons for - cleanup with the ACE_Object_Manager. - - * ace/Synch.{h,cpp}: renamed ACE_Static_Object_Lock::atexit () to - close_singleton (), and removed the unused atexit hook. - - * ace/Log_Msg.cpp (ACE_Log_Msg_Manager::close): delete the - main thread's Log_Msg. - - * ace/config-vxworks-ghs-1.8.h: added ACE_HAS_NONSTATIC_OBJECT_MANAGER. - - * tests/Time_Value_Test.cpp: added tests of ACE_U_LongLong. - - * tests/Atomic_Op_Test.cpp (main): added arguments to main (). - - * tests/Barrier_Test.cpp (main): delete thread_handles array - to prevent memory leak. - - * examples/Reactor/Misc/test_signals_2.cpp (main): changed - type of second arg from "char *" to "char *[]". - -Mon Aug 25 14:13:57 1997 Carlos O'Ryan - - * ace/OS.h: - Changed the return type of sendmsg_timedwait from sszie_t to - ssize_t, this should only affect platforms where - ACE_LACKS_TIMEDWAIT_PROTOTYPES, further it was definitely wrong - before. - Thanks to ARTURO MONTES for pointing - out this one. - -Mon Aug 25 10:15:06 1997 David L. Levine - - * ace/Message_Queue.cpp (notify): fixed ACE_TRACE message. - - * examples/ASX/UPIPE_Event_Server/event_server.cpp, - examples/Connection/misc/test_upipe.cpp, - examples/Connection/non_blocking/test_*.cpp, - examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp, - examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp, - examples/Misc/test_dump.cpp, - examples/Reactor/FIFO/client.cpp, - examples/Reactor/Misc/test_*.cpp, - examples/Reactor/Proactor/test_multiple_loops.cpp, - examples/Reactor/Proactor/test_timeout.cpp, - examples/Reactor/ReactorEx/test_timeout.cpp, - examples/Reactor/ReactorEx/test_exceptions.cpp, - examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp, - examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp, - examples/Shared_Malloc/test_multiple_mallocs.cpp, - examples/System_V_IPC/SV_Message_Queues/*MQ_*.cpp, - examples/System_V_IPC/SV_Semaphores/Semaphores_?.cpp, - examples/Threads/process_mutex.cpp, - examples/Threads/recursive_mutex.cpp, - examples/Threads/tss1.cpp, - examples/Threads/thread_specific.cpp, - examples/Threads/token.cpp, - examples/Threads/wfmo.cpp, - tests/Simple_Message_Block_Test.cpp, - tests/Hash_Map_Manager_Test.cpp: - added arguments to main () to support redeclaring it on VxWorks. - - From now on, we should always declare main () with arguments, e.g., - int - main (int, char *[]) - -Sun Aug 24 10:27:33 1997 Douglas C. Schmidt - - * tests/Future_Test.cpp (Scheduler): Removed the non-existent - friend class Method_ObjectWork. Thanks to Sandro Doro - for reporting this problem. - - * ace/Message_Block.h: Clarified in the comments that the length() - of a Message_Block is 0 until the wr_ptr() is explicitly set. - Thanks to Amos Shapira for pointing out - the need for this. - -Sat Aug 23 14:43:27 1997 Douglas C. Schmidt - - * ACE version 4.3, released Sat Aug 23 14:43:27 1997. - -Sat Aug 23 14:40:32 1997 Douglas C. Schmidt - - * Released the long-awaited ACE 4.3. Good night sweet prince: - And flights of angels sing thee to thy rest. - -Sat Aug 23 00:44:09 1997 Douglas C. Schmidt - - * netsvcs/lib/Server_Logging_Handler.cpp: Make sure that we - explicitly instantiate ACE_Svc_Handler whether or not we're building with threads - since otherwise we get link errors. - -Fri Aug 22 20:58:49 1997 Nanbor Wang - - * ace/OS.cpp (ACE_TSS_Cleanup): Changed the lock for - ACE_TSS_Cleanup from a static object to a singleton to avoid the - nasty detruction order problem. This only effects Win32. - - * ace/Synch.{h,cpp}: Added a new singleton lock - "ACE_TSS_Cleanup_Lock" for Win32 platform. This object is - expect to be put under ACE_Object_Manager's control and will - probably gone/changed in the near future. - -Fri Aug 22 18:48:17 1997 Carlos O'Ryan - - * ACE-install.sh: - I updated the information on IRIX. Now we know for a fact it - compiles on IRIX 6.x, but we are not certain on IRIX 5.X. - - * bin/auto_compile_wrapper: - I have tried to make it clear that auto_compile_wrapper must be - tailored on each site. The email address is invalid and the - script should just crash the - - * ace/OS.i (cond_timedwait): - It used to always dereference the timeout parameter, which could - be 0 (heading for a - Sthreads use timestruc_t instead of timespec_t, thanks to - Ganesh Pai for pointing out this one and to - Steve Huston for explaining to us what - was going on. - -Fri Aug 22 08:46:39 1997 David L. Levine - - * include/makeinclude/platform_vxworks*.GNU: - unset SHLIB to fix builds without PRELIB. - - * netsvcs/lib/Logging_Strategy.cpp, - examples/Threads/task_three.cpp: include fstream.h and - iostream.h if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - - * examples/ASX/UPIPE_Event_Server/event_server.cpp, - examples/Log_Msg/test_log_msg.cpp, - examples/Reactor/Misc/test_time_value.cpp, - examples/Logger/Accepter-server/server_loggerd.cpp: - #include iostream.h if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - - * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp (svc): - replaced an iostream printout with an ACE_DEBUG call. - - * examples/Misc/test_read_buffer.cpp, - test_dump.cpp, - Mem_Map/IO-tests/test_io.cpp: - replaced bare OS calls with ACE_OS calls. - - * examples/Reactor/Misc/notification.cpp (Thread_Handler): - added cast of svc_run to ACE_THR_FUNC. - -Thu Aug 21 22:38:19 1997 Carlos O'Ryan - - * bin/auto_compile: - This tool will checkout ACE_wrapper from CVS, use - bin/create_ace_build to update a clone directory, compile ace - and tests in that clone directory and then run run_tests.sh. - If there is any problem it will report it to email. - - * bin/auto_compile_wrapper: - The former needs some configuration information and a proper - enviroment, hence it may not be invoked directly from your - crontab. This tool is used for that purpose. - - * apps/Gateway/Gateway/Makefile: - * apps/JAWS/server/Makefile: - * examples/Connection/non_blocking/Makefile: - * examples/IPC_SAP/DEV_SAP/reader/Makefile: - * examples/IPC_SAP/DEV_SAP/writer/Makefile: - * examples/Service_Configurator/IPC-tests/server/Makefile: - * netsvcs/clients/Naming/Client/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile: - * performance-tests/Synch-Benchmarks/Makefile: - No need to defines LIBS=-lACE here, it is already done in - wrapper_macros.GNU. Thanks to Cary Clark for - pointing out this one. - - * bin/create_ace_build: - New flag -a to create all symlinks using absolute paths, it - helps when the build directory is a symlink too. - - * include/makeinclude/platform_irix6.x-sgic++.GNU: - ACE now compiles with little or no warnings, I kept the linker - warnings deactivated though. - -ptall does not work any more. I added a comment on that. - - * ace/OS.h: - * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp: - * apps/JAWS/clients/Blobby/Blob_Handler.cpp: - * apps/JAWS/server/HTTP_Server.cpp: - * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp: - * examples/IPC_SAP/SPIPE_SAP/producer_read.cpp: - * examples/Reactor/Dgram/CODgram.cpp: - * examples/Reactor/Dgram/Dgram.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Reactor/Misc/test_reactors.cpp: - * examples/Reactor/Misc/test_signals_2.cpp: - * examples/Threads/barrier2.cpp: - * examples/Threads/process_manager.cpp: - * examples/Threads/task_three.cpp: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - * netsvcs/clients/Tokens/collection/collection.cpp: - * netsvcs/clients/Tokens/mutex/test_mutex.cpp: - * performance-tests/Misc/childbirth_time.cpp: - * tests/Reactor_Exceptions_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/SOCK_Test.cpp: - New macro ACE_NOTREACHED. Some compilers will issue warnings on - unreached statements with things like: - int foo() - { - if (bar) { - return 0; - } else { - return 1; - } - return 0; // warning here - } - but if we remove the last return some other compiler will issue - warnings on leaving the function with no return value. - This macro tries to deal with that, all we have to do is to - write the last line like: - int foo() - { - if (bar) { - return 0; - } else { - return 1; - } - ACE_NOTREACHED(return 0); // No warning now!!! - } - IMHO it also serves as a form of documentation. - -Thu Aug 21 21:00:35 1997 - - * ace/Auto_Ptr: Changed auto_ptr implementation to be as close - to the C++ specification as possible. Things that are still - missing are: - (a) std namespace - (b) member templates implementations - (c) making the constructors explicit - - * ace/OS.h (ACE_BIT_STRICTLY_ENABLED): Added new macro to check if - a bit is strictly enabled in a word. This is necessary when the - bit would be a combination of bits, and therefore, just - comparing against != 0 (like ACE_BIT_ENABLED does) is not enough - and comparing == BIT is necessary. - -Thu Aug 21 19:28:28 1997 James C Hu - - * include/makeinclude/rules.local.GNU (depend.local): If TAO_ROOT - is not set, don't try using it in sed. - - * bin/g++dep: Check the existence of the TAO_ROOT environment - variable before adding it to the relative pathname replacement - strategy. - -Thu Aug 21 16:29:02 1997 David L. Levine - - * ace/OS.h: added THR_JOINABLE and THR_SCHED_FIFO/RR/DEFAULT - to STHREADS, WTHREADS, and non-threaded platforms. On VxWorks - only, set NSIG to _NSIGS + 1. - - * ace/config-vxworks*.h: removed ACE_HAS_POSIX_SEM now that we - emulate it for VxWorks. - - * tests/Priority_Task_Test.cpp: use THR_SCHED_FIFO unconditionally - now that it's defined on all platforms. - - * include/makeinclude/platform_chorus.GNU, - platform_hpux_gcc.GNU, - platform_linux*.GNU, - platform_m88k.GNU, - platform_osf1_4.0_g++.GNU, - platform_sco*.GNU, - platform_sunos*_g++.GNU, - platform_unixware_g++.GNU, - g++ only: replaced PRELIB with "true" because it's not - needed for template instantiation. The old PRELIB no longer - worked without -lACE being added to LIBS in individual Makfiles. - The only reason to leave PRELIB defined to something is so that - the shared object definitions will be correct in rules.lib.GNU. - That should be fixed after 4.3 is released. - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - PRELIB no longer needed with explicit template instantiation. - -Thu Aug 21 12:38:26 1997 Steve Huston - - * ace/config-hpux-10.x.h: Removed extraneous #endif - -Thu Aug 21 12:21:16 1997 Nanbor Wang - - * ace/OS.h (THR_JOINABLE): Defined this macro for Win32 as 0. - -Wed Aug 20 22:36:52 1997 Douglas C. Schmidt - - * ACE version 4.2.44, released Wed Aug 20 22:36:52 1997. - -Wed Aug 20 18:28:28 1997 Steve Huston - - * ace/config-hpux-10.x.h: Made some definitions dependent on the - HP-UX version that is compiling the code. - - * ace/Filecache.(cpp h): Moved the definition of ACE_Filecache_Object - from .cpp to .h to help AIX xlC's template instantiator along. - - * apps/Gateway/Peer/Peer.(cpp h): Moved the definition of Peer_Handler - from .cpp to .h to help AIX xlC's template instantiator along. - - * include/makeinclude/platform_(hpux hpux_aCC hpux_gcc).GNU: Added - a compiler option to define HPUX_VERS with the current OS version. - Used in the config-hpux-10.x.h file. - -Wed Aug 20 13:44:16 1997 Carlos O'Ryan - - * ace/config-unixware-2.1.2-g++.h: - Unixware does not define timespec_t. Thanks to Ganesh Pai - for pointing out this one. - -Wed Aug 20 11:37:44 1997 David L. Levine - - * include/makeinclude/rules.bin.GNU,platform_vxworks5.x_g++.GNU: - added POSTLINK to build symbol table. - -Wed Aug 20 07:43:14 1997 Douglas C. Schmidt - - * ACE version 4.2.43, released Wed Aug 20 07:43:14 1997. - -Tue Aug 19 08:25:28 1997 Steve Huston - - * tests/Barrier_Test.cpp: Added THR_JOINABLE to the flags for - creating threads - allows join to work on platforms that create - threads detached by default (i.e. AIX). - - * tests/Process_Strategy_Test.cpp: If the final ACE_OS::kill() fails, - don't ACE_OS::wait() for the process. - - * ace/config-aix-4.2.x.h: Added ACE_HAS_BROKEN_POSIX_TIME. Commented - out ACE_HAS_AIX_BROKEN_SOCKET_HEADER. Added ACE_HAS_PTHREAD_T, - and will now not use tid_t for any ACE types. Rearranged things - to start clarifying items. - - * ace/config-hpux-10.x.h: Removed ACE_HAS_SETKIND_NP and adjusted - other, more meaningful, threads-related definitions to match what - HP 10.10 and 10.20 have for threads. This matches changes to OS.* - - * ace/OS.(h i cpp): Removed use of ACE_SETKIND_NP in an effort to - simplify the variety of threads-capability definitions. The only - platforms which used ACE_HAS_SETKIND_NP were HP-UX (see above) and - OSF/1 V3.2 (which has the same threads package as HP-UX). OSF/1 - V3.2 may require some adjustments per this change - it probably - should be changed to match HP-UX. OSF/1 V4 (aka Digital UNIX) - is not affected by this change. - - * ace/Log_Msg.cpp: Changed the 't' format (thread ID) to call - thread_self() directly on AIX. - -Mon Aug 18 21:39:33 1997 Douglas C. Schmidt - - * ACE version 4.2.42, released Mon Aug 18 21:39:33 1997. - -Mon Aug 18 20:22:14 1997 Carlos O'Ryan - - * apps/Gateway/Peer/Makefile: - No need to define LIBS=-lACE here, its already done in - wrapper_macros.GNU. Thanks to Cary Clark - for helping in this effort. - -Mon Aug 18 19:54:36 1997 Nanbor Wang - - * ace/OS.{h,i} (open, mutex_init, sema_init, event_init, mmap): - Added an extra argument LPSECURITY_ATTRIBUTE with default value - 0 to all these methods so that we can modify objects' security - attributes when needed. Thanks to Ivan Murphy for pointing this - out. - -Mon Aug 18 19:50:13 1997 Carlos O'Ryan - - * examples/Service_Configurator/Makefile: - * examples/Service_Configurator/IPC-tests/server/Makefile: - * apps/Gateway/Gateway/Makefile: - * examples/Connection/non_blocking/Makefile: - $(SOEXT) must be used instead of just .so, the former does not - work on all platforms, notably HP-UX. Thanks to Cary Clark - for helping in this effort. - -Mon Aug 18 19:46:27 1997 Carlos O'Ryan - - * ace/OS.i: - Added support for the missing netdb reentrant functions, even - under IRIX 6.2 with no threads. Thanks Paul Roman - for reporting this. - -Mon Aug 18 12:53:16 1997 David Levine - - * tests/Barrier_Test.cpp (tester): VxWorks doesn't support - thr_join(). Therefore, we need to work around it for now. - Maybe Wind River will fix it at some point. - -Mon Aug 18 12:38:52 1997 Steve Huston - - * ace/config-aix-4.2.x.h: Removed ACE_HAS_SVR4_TIME, added - ACE_LACKS_TIMESPEC_T. - -Mon Aug 18 12:00:31 1997 Carlos O'Ryan - - * ace/config-mvs.h: - MVS does not define timespec_t either. Thanks to Chuck - Gehr for reporting this. - -Mon Aug 18 10:41:05 1997 Carlos O'Ryan - - * ace/OS.h: - * ace/README: - On some platforms timespec_t is not defined. We added a new - config macro (ACE_LACKS_TIMESPEC_T) to handle that and we do a - typedef to solve the problem. - - * ace/config-freebsd-pthread.h: - * ace/config-freebsd.h: - * ace/config-linux-lxpthreads.h: - * ace/config-linux-pthread.h: - * ace/config-linux.h: - These are *some* config files that needed changes due to the new - timespec_t stuff. - -Mon Aug 18 09:34:11 1997 David L. Levine - - * ace/OS.cpp (ACE_Thread_Adapter): rearranged initializers to - match declaration order. - - * ace/Log_Record.h: declare "class ostream" if - ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION Log_Record.h. - - * ace/IOStream.h,Log_Msg.cpp,Log_Record.cpp, - tests/test_config.h: include iostream.h instead of ace/stdcpp.h - if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - - * ace/config-vxworks*.h: added ACE_LACKS_TIMESPEC_T. - -Sun Aug 17 20:58:56 1997 Douglas C. Schmidt - - * ACE version 4.2.41, released Sun Aug 17 20:58:56 1997. - -Sun Aug 17 17:02:53 1997 Carlos O'Ryan - - * ace/config-irix6.x-sgic++-nothreads.h: - * ace/config-irix6.x-sgic++.h: - * include/makeinclude/platform_irix6.x-sgic++.GNU: - Finally a single config.h and platform_macros.GNU file can be use - for all the IRIX 6.X versions. - On SGI machines we need a higher value for - ACE_DEFAULT_BASE_ADDR, we used 1024*1024*1024, which works on - our site, but your mileage may vary. - - * include/makeinclude/platform_irix6.2_sgic++.GNU: - * include/makeinclude/platform_irix6.4_sgic++.GNU: - * ace/config-irix6.2-sgic++-nothreads.h: - * ace/config-irix6.2-sgic++.h: - * ace/config-irix6.4-sgic++-nothreads.h: - * ace/config-irix6.4-sgic++.h: - These files are no longer needed, see above. - - * ace/README: - * ace/ACE.cpp: - * ace/OS.h: - * ace/OS.i: - * ace/Profile_Timer.cpp: - * ace/Profile_Timer.h: - We no longer use timestruct_t in ACE, it is a SYSVism; we use - timespec_t instead. Hence we have no need for the config - macro ACE_HAS_SVR4_TIME, but we keep it there for future - reference. - - * tests/Reader_Writer_Test.cpp: - On IRIX using ACE_Thread::yield() degraded performance for - multiprocessor machines, but worse, the test will not behave as - expected: instead of interleaving read/write locks over the - RW_Mutex it will make all the write locks first and then the read - locks. The test uses ACE_OS::sleep() for yielding the CPU, - and it uses different pauses for each thread (see code for - details). Further, it yields the CPU *before* taking the - lock, to give other threads a chance. - -Sat Aug 16 18:17:10 1997 Douglas C. Schmidt - - * ACE version 4.2.40, released Sat Aug 16 18:17:10 1997. - -Sat Aug 16 18:13:22 1997 Douglas C. Schmidt - - * ace/ReactorEx.cpp (add_network_events_i): Revised the code to - use the ACE_BIT_CMP_MASK and ACE_SET_BITS macros to simplify the - code. - - * ace/OS.h: Added a new macro called ACE_BIT_CMP_MASK which checks - if a "bit-wise" & with a word == a particular mask. - - * ace/OS.cpp (thr_create): If we're in the Pthreads implementation - then we assume that ACE_thread_t and ACE_hthread_t are the same. - If this *isn't* correct on some platform, please let us know. - Thanks to Carlos O'Ryan . - - * ace/Auto_Ptr.cpp: Reverted the changes of ACE_Auto_Ptr to - auto_ptr since we want to be Standard C++ Library compliant. - However, we only define auto_ptr if ACE_HAS_STANDARD_CPP_LIBRARY - is *not* enabled. - - * Removed the INSTALL file since this is redundant with the HTML - version of this file (ACE-INSTALL.html). Thanks to David Levine - for doing the legwork to merge this. - -Sat Aug 16 15:11:24 1997 Darrell Brunsch - - * ace/Auto_Ptr.h: Put in an #include (for auto_ptr) if - the standard C++ library is being used. - - * ace/Auto_Ptr.*: Changed the checks for ACE_HAS_STANDARD_CPP_LIBRARY - to also check to see if it is defined to 0 (which means the same - as it not being defined). - - * ace/ReactorEx.cpp: Changed the use of auto_ptr to work with - the one in the Standard C++ library. - - * ace/config-win32-common.h: Added ACE_HAS_BROKEN_NESTED_TEMPLATES - and ACE_LACKS_STL_DEFAULT_TEMPLATE_PARAMETER for the MSVC versions - that need them. - - * ace/Registry.cpp: changed some variable names from iterator to - iter to prevent conflicts with another variable - - * ace/Registry.cpp: - STL/bstring.h: - - Changed references of NPOS to Istring::npos - -Sat Aug 16 14:17:07 1997 Carlos O'Ryan - - * ace/Auto_Ptr.i: - * ace/Auto_Ptr.cpp: - Some code was only included if ACE_HAS_STANDARD_CPP_LIBRARY was - defined; but the intention was exactly the opposite. - -Sat Aug 16 14:33:26 1997 David L. Levine - - * README,FAQ,Makefile: changed references from INSTALL file - to ACE-INSTALL.html. - -Fri Aug 15 19:51:52 1997 - - * ace/Auto_Ptr.h: A rarely used piece of ACE code has changed - names because of name conflicts with the Microsoft Standard C++ - Library. The change is from auto_ptr to ACE_Auto_Ptr. A perl - script ($ACE_ROOT/bin/auto_ptr.perl) is provided for users to - change their code accordingly. - - The following files were effected: - - ace: ACE.cpp Auto_Ptr.cpp Auto_Ptr.h Auto_Ptr.i OS.h - ReactorEx.cpp Service_Config.cpp Service_Object.h - - examples/Threads: future1.cpp future2.cpp test_future1.cpp - test_future2.cpp - - tests: Future_Test.cpp - -Fri Aug 15 17:41:28 1997 Douglas C. Schmidt - - * ACE version 4.2.39, released Fri Aug 15 17:41:28 1997. - -Fri Aug 15 13:33:04 1997 Nanbor Wang - - * ace/OS.h (ACE_DEFAULT_GLOBALNAME_W): Moved pathname delimiter - from ACE_DEFAULT_{LOCAL|GLOBAL}NAME_* to - ACE_DEFUALT_NAMESPACE_DIR on NT. We need to append local/global - name to get a unique mutex name for naming service. NT won't - let us put a backslash in lock name. ;( - -Fri Aug 15 14:50:26 1997 Steve Huston - - * ace/Makefile: Moved ARGV from the TEMPLATES section to the FILES - section; now builds on AIX. - - * ace/config-hpux-10.x.h: Don't redefine _HPUX_SOURCE. Move the - ACE_HAS_REENTRANT_FUNCTIONS and ACE_CTIME_R_RETURNS_INT to the - build-with-threads section. Thanks to Neil Cohen - for helping to flush these problems out. - - * tests/Makefile: If building on AIX, wipe out the tempinc directory - before each compilation to keep the driver from compiling all - prior programs' template instantiations in every link step. - -Fri Aug 15 13:07:26 1997 Douglas C. Schmidt - - * ace/Signal.cpp (remove_handler): Added some additional - parameters to ACE_Sig_Action usages in order to get this stuff - to compile with G++ on SunOS 4.1.4. Thanks to Kumar Neelakantan - for reporting this. - - * ACE version 4.2.38, released Thu Aug 14 23:07:26 1997. - -Fri Aug 15 13:33:04 1997 Nanbor Wang - - * ace/Naming_Context.cpp (ACE_Naming_Context): Moved the deletion - of name_options_ from close to dtor of this class so that we can - reconfigure the naming context. - -Fri Aug 15 10:28:14 1997 Darrell Brunsch - - * ace/OS.cpp: Changed uname() for Win32 so it returns information - for Windows 95 and NT. - -Thu Aug 14 18:06:37 1997 Chris Cleeland - - * ace/OS.[hi] (strsplit_r): Added a new method which splits a - string separated by tokens, similar to the way that perl's - split() works. This is different from the strtok() family b/c - for the string ":/foo:/bar::boo", strtok() would return "/foo", - "/bar", "boo", while strsplit_r() returns "", "/foo", "/bar", - "", "boo". This method is also properly re-entrant, and thus - safe to use among multiple threads. - - * ace/ACE.cpp (ldfind): Fixed this so that it now properly deals - with paths containing empty components intended to indicate - 'current directory'. - -Thu Aug 14 17:30:36 1997 Steve Huston - - * ace/config-hpux-10.x.h - Add ACE_LACKS_CONST_STRBUF_PTR, remove - ACE_HAS_POSIX_SEM, clarify comments regarding setting of - _CMA_NOWRAPPERS_ - thanks to Cary Clark for - helping in this effort. - -Thu Aug 14 16:14:47 1997 David L. Levine - - * ace/High_Res_Timer.cpp (print_ave,print_total): fixed format - specification for total_secs to be lu instead of lld. - -Thu Aug 14 14:06:37 1997 Chris Cleeland - - * ace/ARGV.cpp: Completed the explicit template instantiations for - this component. - -Thu Aug 14 11:27:03 1997 Edward Everett Anderson - - * ace/ARGV.* (argv): - - * Added another behavior to ACE_ARGV -- a user can iteratively - build the parameter set with add(). Made the class more - consistent so that accessors work no matter which constructor is - used. - -Thu Aug 14 10:14:37 1997 Darrell Brunsch - - * Made several changes to allow ACE to work with the new standard - C++ header files, such as and the built in STL. Thanks - to Matthias Kerkhoff for these changes. - The default is to use the old headers, unless the - ACE_HAS_STANDARD_CPP_LIBRARY is defined as 1. - - * ace/config-win32-common.h: - ace/config-win32.h: - - - Added ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB flag to - distinguish compilers who have the standard C++ library - declared in the namespace std and those who use the global - namespace for it - - - Enabled ACE_HAS_SIG_ATOMIC_T and ACE_HAS_TYPENAME_KEYWORD for - MSVC 5 - - - Changed the semantics of ACE_HAS_STANDARD_CPP_LIBRARY from - [defined/undefined] to [(undefined or defined as 0)/defined != 0] - to allow the choice between the old iostream and standard C++ - library for those platforms that support both - - - Don't define the ACE_LACKS_IOSTREAM_FX when building with MSVC - 5.0 and the standard C++ library. - - - If __ACE_INLINE__ is defined as 0, config-win32-common.h - undefines __ACE_INLINE__ to decrease the size of libraries and - executables. - - * ace/IOStream.cpp: Moved the #ifdef ACE_LACKS_ACE_IOSTREAM up to the - proper place - - * ace/IOStream.h: - ace/IOStream_T.h: - ace/Log_Msg.cpp: - ace/Log_Msg.h: - ace/Log_Record.cpp: - ace/Log_Record.h: - examples/ASX/Message_Queue/*.dsp: - examples/OS/Process/*.dsp: - examples/Threads/*.dsp: - examples/Threads/barrier2.cpp: - examples/Threads/task_three.cpp: - netsvcs/lib/Logging_Strategy.cpp: - - Updated to including stdcpp.h instead of , - , , etc. - - * ace/OS.h: Updated to use stdcpp.h instead of including the - normal C headers. Moved the includes into stdcpp.h to allow - switching between the old and new versions - - * ace/Registry.h: Changed to use the standard C++ headers for STL - and added a typedef Name_Component and Binding to - ACE_Registry::* to help some unresolved problems. - - * tests/Hash_Map_Manager_Test.cpp: - tests/test_config.h: - - Updated to #include ace/stdcpp.h instead of and - - - * ace/stdcpp.h: Updated to include more of the new standard C++ - header files, and also promote some of the iostream classes to - the global namespace. - - * ace/ace.dsp: - - - Added some folders like Templates and Documentation - - Added some files that were missing to the project - - Enabled function level linking for debug projects - - Set it to "Not using MFC" - - Removed wsock32.lib from the project settings (since - config-win32-common.h will tell the linker to use the correct - winsock library) - - Removed some other unnecessary libraries (OLE) from the - project. - -Wed Aug 13 23:02:45 1997 Douglas C. Schmidt - - * ACE version 4.2.37, released Wed Aug 13 23:02:45 1997. - -Wed Aug 13 13:26:27 1997 Douglas C. Schmidt - - * tests/Barrier_Test.cpp (main): Fixed the test of the ACE_Barrier - class so that it doesn't leak handles. This also illustrates - the use of the ACE_Thread::join() and - ACE_Thread_Manager::spawn_n() methods. Thanks to Ivan Murphy - for pointing this out. - - * ace/Thread_Manager.cpp (spawn_n): Note that if we get a null - thread_ids parameter we shouldn't try to index into it! - - * include/makeinclude/rules.local.GNU (OBJDIRS): Added - so_locations to the list of directories cleaned up during a make - clean/realclean. Thanks to Amos Shapira for reporting this. - - * ACE version 4.2.36, released Wed Aug 13 07:30:10 1997. - - * include/makeinclude/platform_irix6.[x-]32_sgic++.GNU: Added a - -Wl,-woff,133 to LDFLAGS to make the linker shutup about branch - instructions that might degrade performance - (what does this mean?). Thanks to Amos for this. - - * tests/test_config.h: Fixed a typo (ourput_file() should be - output_file()). How on earth did this ever work?! Thanks to - Amos Shapira for reporting this. - - * ace/Message_Queue.cpp: Added a couple of new ACE_UNUSED_ARGs - Thanks to Amos Shapira for reporting this. - - * ace/OS.cpp (gethrtime): ACE_OS::gethrtime should cast its return - value to ACE_hrtime_t instead of (u_long long). Thanks to - Amos Shapira for reporting this. - -Wed Aug 13 14:51:47 1997 Darrell Brunsch - - * ace/SString.[i,cpp]: moved some inline methods from the .i into - the .cpp so the Win32 Unicode Release compiles with inlining. - -Wed Aug 13 01:14:08 1997 Nanbor Wang - - * tests/test_config.h (ACE_NEW_THREAD): Removed - ACE_Log_Msg::set_flags/clr_flags from this macro because - ACE_Log_Msg::flags is a static variable. We really don't need - to reset them when creating new threads. Once VxWorks can also - inherit ACE_Log_Msg's properties, we no longer need this macro. - - * ace/Log_Msg.h: Added trace_depth() functions. They are required - for inheriting ACE_Log_Msg's properties. - - * ace/OS.cpp: Changed ACE_Thread_Adapter implementation so that - newly created threads will inherit properties from their parent - threads. This is the default behavior and is valid on all - platform except VxWorks. If you don't want it and would like to - arrange the properties propagation yourself, you must define - ACE_THREADS_DONT_INHERIT_LOG_MSG in your ace/config.h file. Now, - creating a new thread will go thru ace_thread_adapter on all - platform except VxWorks. If ACE_THREADS_DONT_INHERIT_LOG_MSG is - defined but your platform defines ACE_HAS_THR_C_FUNC or - ACE_WIN32, creating new threads still need to use - ace_thread_adapter. This change also fixes a previous problem - which let threads access another thread's TSS. - -Tue Aug 12 21:57:30 1997 David L. Levine - - * etc/ACE-guidelines.html: added. - -Tue Aug 12 16:54:33 1997 Douglas C. Schmidt - - * Added Chuck Gehr's explanation of how to build ACE for MVS to - the ACE-INSTALL.html file at http://www.cs.wustl.edu/~schmidt/. - - * ace/OS.i: changed the name of ACE_U_LongLong::dump() to - ACE_U_LongLong::output(). Also moved some of the code that was - inlined in the class definition into the *.i file. - - * netsvcs/lib/Server_Logging_Handler.cpp: Added a template - specialization for ACE_Atomic_Op to - make things link with SGI and other systems that have long - different than int. Thanks to Amos Shapira for reporting this. - - * ace/Reactor.cpp (close): Removed the #ifdefs around - notify_handler_.open () and notify_handler_.close() since this - is now supposed to be available on all build configurations. - Thansk to Stefan Ericsson for reporting this. - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - Removed a static variable that seemed to be causing problems for - SGI C++. Also, removed the now unnecessary "inherited" from - Handle_Thr_Acceptor. - - * examples/ASX/UPIPE_Event_Server/Peer_Router.h, - * netsvcs/lib/Log_Message_Receiver.h: Added an - ACE_UNIMPLEMENTED_FUNC macro for the assignment operator to work - around silly "features" of SGI C++... - - * include/makeinclude/platform_irix6.[x-]32_sgic++.GNU: Added some - additional patches to suppress warning code. Thanks to Torbjorn - Lindgren for this fix. - - * include/makeinclude/platform_mvs.GNU: Changed all occurrences of - "MVSLIB" to "ACELIB". Thanks to Chuck Gehr for reporting this. - -Tue Aug 12 15:03:42 1997 Steve Huston - - * ace/Timer_Hash_T.cpp, Timer_Wheel_T.cpp: Replaced references to - ACE_High_Res_Timer::gettimeofday with ACE_OS::gettimeofday. - The High Res version is deprecated, and doesn't work - correctly on HP-UX. - -Tue Aug 12 07:51:02 1997 Douglas C. Schmidt - - * ACE version 4.2.35, released Tue Aug 12 07:51:02 1997. - -Mon Aug 11 22:30:39 1997 David L. Levine - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: disabled - automatic template instantiation, because we use explicit - template instantiation, via a #pragma, with Green Hills. - Thanks to Brian Mendel for - finding the compiler options. - -Mon Aug 11 17:45:44 1997 Nanbor Wang - - * ace/OS.cpp (ace_thread_adapter): Changed the code so that TSS - ACE_Log_Msg will get created and put into cleanup stack first no - matter there is other ACE_Log_Msg instances or not. This fixed - the "order of destruction" problem on Win32 platform. Thanks to - Irfan for digging this out and helping solving it. - -Mon Aug 11 07:25:29 1997 - - * examples/Reactor/ReactorEx/test_reactorEx.cpp: Updated this - example to use the new Proactor and Asynch IO interfaces. - - * ace/Connector.cpp (activate_svc_handler): Fixed the "leak" of - svc_handler in case of error. Thanks to Wei Chiang - for reporting this. - -Mon Aug 11 01:11:26 1997 Douglas C. Schmidt - - * ACE version 4.2.34, released Mon Aug 11 01:11:26 1997. - -Mon Aug 11 01:06:02 1997 Douglas C. Schmidt - - * ace/Message_Queue.cpp (enqueue_tail_i): Inadvertantly - added "signal_dequeue_waiters()" where I meant - "signal_enqueue_waiters()." - - * include/makeinclude/wrapper_macros.GNU: Fixed a typo in the - wrapper_macros.GNU file that was causing link errors. - -Sun Aug 10 11:35:06 1997 Douglas C. Schmidt - - * ace/Message_Queue.cpp: To make sure that we have correctly - signaled waiters the signal_enqueue_waiters() and - signal_dequeue_waiters() methods now check the return value from - the semaphore release if ACE_HAS_OPTIMIZED_MESSAGE_QUEUE is - enabled. - - * include/makeinclude/wrapper_macros.GNU (VLDLIBS): Added a - new macro called ACELIB that can be used to make it easier - to enable static linking for ACE, i.e.: - - ACELIB = -Bstatic -lACE -Bdynamic - - or - - ACELIB = $(ACE_ROOT)/ace/libACE.a - - Can be added to the individual platform_macros.GNU file. This - allowed us to remove special code for MVS in wrapper_macros.GNU. - Thanks to Chuck Gehr for this fix. - - * netsvcs/lib: Added some comments after the #endifs. - - * ace/Filecache.cpp (insert_i): Updated the code so that we use - ACE_NEW_RETURN rather than operator new. This macro will - protect against failed allocations. - -Sat Aug 9 22:08:50 1997 Douglas C. Schmidt - - * ace: Added two new config files: - - config-irix6.x-sgic++.h - config-irix6.x-sgic++-nothreads.h - - This should hopefully consolidate the SGI platform - configuration. Thanks to Torbjorn Lindgren for - this fix. - - * include/makeinclude: Added two new platform macro files: - - platform_irix6.x-n32_sgic++.GNU: - platform_irix6.x-32_sgic++.GNU - - This should hopefully consolidate the SGI platform macros. - Thanks to Torbjorn Lindgren for this fix. - - * ace/Filecache.cpp: Fixed the syntax of the SGI pragma stuff. - Thanks to Torbjorn Lindgren for reporting this. - - * ace/Name_Request_Reply.h: Changed MAX_NAME_LEN to MAX_NAME_LENGTH - to avoid problems with Solaris 2.6. Thanks to Thanh Ma - for reporting this. - -Sat Aug 9 12:10:35 1997 Nanbor Wang - - * ace/config-win32-common.h (ACE_HAS_WINSOCK2): - * ace/config-win32.h (ACE_HAS_WINSOCK2): Rearranged definition of - this so that users can overwrite the default setting and choose - older Winsock if they want. No action needed for most NT - useres. Thanks to jmorey@tbi.com (John Morey) for pointing this - out. - -Sat Aug 09 11:28:36 1997 Steve Huston - - * ace/Profile_Timer.i: ACE_HAS_GETRUSAGE and !ACE_HAS_PRUSAGE - platforms now use ACE_OS::gettimeofday rather than - ACE_High_Res_Timer::gettimeofday in start() and stop() methods. - - * tests/Sigset_Ops_Test.cpp: adjusted test for sigismember() with - out-of-range signum to separately test return value and errno. - Also, returns non-zero from program on failed test. - -Fri Aug 08 17:39:43 1997 Douglas C. Schmidt - - * ACE version 4.2.33, released Fri Aug 08 17:39:43 1997. - -Fri Aug 08 02:50:31 1997 Douglas C. Schmidt - - * ace/Message_Queue: Factored out the code that differs depending - on whether we are using the optimized ACE_Message_Queue - implementation (i.e., VxWorks and NT). This change makes it - easier to maintain the code. Thanks to Darrell for helping with - this. - - * ace/Log_Msg.cpp (close): Fixed a couple of typos in this code, - in particular, we need to make sure that we don't call - ACE_Log_Msg_Manager::close() if we aren't multi-threaded. - - * ACE version 4.2.32, released Fri Aug 08 02:50:31 1997. - -Fri Aug 8 13:17:21 1997 Chris Cleeland - - * ace/OS.* (strtoul): Added the OS function strtoul() to turn - strings into unsigned longs. - -Fri Aug 8 12:26:54 1997 Steve Huston - - * ace/Log_Msg.cpp: Fixed some comments and removed unused code - I erroneously added August 6. - - * ace/config-hpux-10.x.h: Fixed to not always compile tracing code. - - * tests/test_config.h: ACE_END_TEST and ACE_END_LOG macros direct - log output back to stderr when shutting off the file output. - - * tests/TSS_Test.cpp: Removed ACE_Thread_Control object from the main - thread - it served no purpose and didn't work on HP-UX (due to - a documented pthread_exit restriction). Also changed a 'delete - ptr' to a call on operator delete (void *). - -Fri Aug 8 09:17:21 1997 Chris Cleeland - - * ace/Service_Repository.h (operations.): Improved documentation - on find(). - -Fri Aug 8 00:01:43 1997 Nanbor Wang - - * ace/Log_Msg.cpp (close): Moved ACE_Log_Msg::close() out of - ACE_MT_SAFE block so it always exists. This function only takes - care of non-VxWorks platforms. - - (instance): Removed at_exit() call since the instances will be - taken of by TSS_Cleanup. - - * ace/Object_Manager.cpp (~ACE_Object_Manager): Removed condition - compilation so it always calls ACE_Log_Msg::close(). - -Thu Aug 7 23:36:26 1997 Douglas C. Schmidt - - * ace/Reactor.h: Added the renew() method and the notify_handler_ - data member to all compilation cases, not just for - multi-threading. - - * ace/Service_Config.h: Clarified the fact that argv[0] is the - program name. Thanks to Chris Cleeland for pointing this out. - - * ace/config-mvs.h: Added the ACE_HAS_TEMPLATE_SPECIALIZATION flag - thanks to Chuck Gehr. - - * include/makeinclude/platform_irix6.2_sgic++.GNU: Turned on - exceptions and turned off implicit template instantiation. - Thanks to Amos Shapira for reporting the - former. - - * ace/config-irix6.2-sgic++.h: Also added the - ACE_HAS_TEMPLATE_SPECIALIZATION flag and changed the - platform_irix6.2.GNU file to not implicitly initialize - templates. If this breaks something, please let me know. - - * ace/config-irix6.2-sgic++.h: Added the ACE_HAS_EXCEPTIONS flag. - Thanks to Amos Shapira for reporting this. - However, there is some question as to whether this will work. - If it doesn't, please let me know. - - * ace/Reactor: Moved the ACE_Reactory_Notify class out from the - ACE_MT_SAFE section into the main code since this should work - for non-threaded builds, as well. Thanks to Stefan Ericsson - for reporting this. - - * ace/config-chorus.h: Added the ACE_HAS_TEMPLATE_SPECIALIZATION - flag. Thanks to Wei Chiang for this. - -Thu Aug 7 19:09:35 1997 Steve Huston - - * tests/Hash_Map_Manager_Test.cpp - split definition of Dumb_String - class to a new header, Hash_Map_Manager_Test.h. This makes AIX - C Set ++ happy. - - * tests/Process_Strategy_Test.cpp - split definitions of Options - and Counting_Service classes to Process_Strategy_Test.h for AIX - C Set ++'s benefit. - -Thu Aug 7 15:27:28 1997 Darrell Brunsch - - * ace/OS.h: Fixed typo in the definition of ACE_SYNCH_1 and - ACE_SYNCH_2 for ACE_HAS_OPTIMIZED_MESSAGE_QUEUE - -Thu Aug 7 13:05:20 1997 Chris Cleeland - - * ace/Strategies_T.h: Changed the argument to ACE_DLL_Strategy - from ACE_Service_Config to ACE_Service_Repository, which is more - concrete. - - * bin/g++dep (REL): Added sed rule so that TAO's dependencies are - set relative to $TAO_ROOT as well as $ACE_ROOT when the '-r' - option is utilized. - - * include/makeinclude/platform_linux_lxpthread.GNU (CCFLAGS): The - -Wall option can now be used. It only generates two warnings - throughout all of ACE! - - * include/makeinclude/rules.local.GNU (depend.local): Modified - this target so that TAO's dependencies are set relative to - $TAO_ROOT as well as $ACE_ROOT. - -Thu Aug 7 12:03:48 1997 James C Hu - - * ace/Filecache.{h,cpp}: Fixed unused variable found by Amos - Shapira. Fixed TEMPLATE_SPECIALIZATION dependency, sort of. Do - not attempt to use Filecache if you do not support - TEMPLATE_SPECIALIZATION. - -Thu Aug 07 00:19:12 1997 Douglas C. Schmidt - - * ACE version 4.2.31, released Thu Aug 07 00:19:12 1997. - -Wed Aug 6 22:20:54 1997 Douglas C. Schmidt - - * ace/Synch_T.h: Replaced all uses of ACE_Null_Condition_Mutex - with ACE_Null_Condition, which is much more straightforward... - - * ASNMP: Added Mike MacFaden's changes for IRIX. - -Wed Aug 6 16:37:51 1997 James C Hu - - * ace/Hash_Map_Manager.cpp: Changed implementation back to use a - single sentinel_ rather than an array of them. - - * ace/Filecache.{h,cpp}: Total re-implementations. Fewer locks - acquired and released when there is a cache hit. - -Wed Aug 06 12:55:26 1997 Steve Huston - - * ace/Log_Msg.(h cpp): - (ACE_Log_Msg_Manager) - Removed most of the non-VxWorks - pieces - there's just a lock left; the instances_ was removed - (ACE_Log_Msg) - Use ACE_Object_Manager to remove per-thread - instances of ACE_Log_Msg rather than using ACE_Log_Msg_Manager. - The use of an ACE_Unbounded_Set to hold the ACE_Log_Msg pointers - in previous versions caused some non-tail recursion problems when - tracing was enabled. - Uses an instance count to know when it's safe to free the dynamically - allocated class-static memory. - - * ace/Trace.(h cpp): Added new static member function: - int is_tracing(void) - returns 1 if tracing is enabled, else 0. - - * ace/Object_Manager.(h cpp): Added a flag to indicate the object is - being destroyed - during destruction, ACE_Object_Manager now refuses - to register any new memory pointers. Also turns tracing off during - destruction - ACE_Log_Msg makes use of ACE_Object_Manager, so we - don't want ACE_Log_Msg instance being deleted, then created for a - ACE_TRACE, then deleted, then created,... - -Wed Aug 06 03:35:41 1997 Douglas C. Schmidt - - * ACE version 4.2.30, released Wed Aug 06 03:35:41 1997. - -Wed Aug 6 00:13:27 1997 Nanbor Wang - - * netsvcs/lib/Server_Logging_Handler.cpp: We only need to - instantiate ACE_Svc_Handler when - ACE_HAS_THREADS. Otherwise, we'll have duplicate symbols - defined on platforms that do not support threads. - -Tue Aug 5 19:52:36 1997 Douglas C. Schmidt - - * ace/Containers: Added a new reset method for ACE_Unbounded_Set. - Thanks to Arturo Montes for - reporting this. - - * ace: Changed most uses of ACE_LACKS_COND_T to - ACE_HAS_OPTIMIZED_MESSAGE_QUEUE to make it possible to toggle - between the emulated condition variable implementation of - ACE_Message_Queue and the semaphore implementation. We need - this until we fully test out the semaphore implementation of - ACE_Message_Queue. - - * ace/Object_Manager.cpp (ACE_Object_Manager): Only call the - ACE_Log_Msg::close() method if ACE_MT_SAFE is enabled! Thanks - to Satoshi Ueno for reporting this. - - * ace/Malloc.h: Added a fix for misalignment of data in the - ACE_CONTROL_BLOCK_ALIGN_LONGS macro. Thanks to Fred LaBar - for this fix. - - * ace/ACE.cpp: (enter_recv_timedwait,enter_send_timedwait): Always - give val a default value of 0 to make Purify happy. Thanks to - David Levine for reporting this. - - * netsvcs/clients/Tokens/rw_lock/rw_locks.cpp, - netsvcs/clients/Tokens/manual/manual.cpp, - netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp: - Removed unreachable statements. Thanks to Cherif Sleiman - for reporting this deficiency and - testing the fix. - -Tue Aug 5 16:41:06 1997 Darrell Brunsch - - * ace/Synch_T.h: Added some more ACE_LACKS_COND_T changes for compilers - without template typdefs. - -Tue Aug 5 11:50:43 1997 Nanbor Wang - - * ace/Message_Queue.h: Fixed typos for the case when - ACE_LACKS_COND_T. - -Tue Aug 05 11:02:11 1997 - - * tests/Atomic_Op_Test.cpp (main): Made sure that on platforms - without threads, we don't try to run this test. - -Tue Aug 05 09:15:40 1997 David L. Levine - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: removed - -no_prelink from LDFLAGS because ghs 1.8.8 doesn't support it. - Thanks to Cherif Sleiman for - reporting this. - - * ace/Service_Record.cpp: added #include "ace/Stream_Modules.h" - to support template instantiation on GreenHills, at least. - Thanks to Cherif Sleiman for - reporting this deficiency and testing the fix. - - * ace/config-vxworks-ghs-1.8.h: added - ACE_LACKS_LINEBUFFERED_STREAMBUF. Thanks to Cherif Sleiman - for reporting this. - -Mon Aug 4 22:47:54 1997 Douglas C. Schmidt - - * ace/Message_Queue: Fixed consistency problems in naming notfull - vs. not_full. Thanks to David Levine for finding this. - - * ace/Message_Queue: Added specialized support for cases where - ACE_LACKS_COND_T (e.g., VxWorks and NT). This scheme uses - ACE_Thread_Semaphores in this case, which should be more - efficient). - - * ace/Synch_T.h: Added a new set of macros and typedefs for - ACE_SYNCH_SEMAPHORE. - - * examples/ASX/Message_Queue: Cleaned up all the Message_Queue - examples. - - * examples/ASX/Message_Queue/buffer_stream.cpp: Added a - NUL-terminator to the program so that it won't break. Thanks to - Darrell for finding this. - - * ace/Reactor.cpp (wait_for_multiple_events): Fixed some - stylistic problems in the Reactor. - - * ace/Synch.cpp (ace_static_object_lock_atexit): Changed from: - - extern "C" static void - - to: - - extern "C" void - - Thanks to Chuck Gehr for this. - -Mon Aug 4 14:03:22 1997 Steve Huston - - * tests/Enum_Interfaces_Test.cpp: return non-zero if test fails. - -Mon Aug 4 12:03:29 1997 Darrell Brunsch - - * tests/Semaphore_Test: Redid to test timed waits in a more - reasonably fashion. - -Mon Aug 4 11:43:09 1997 Douglas C. Schmidt - - * ace/OS: Continued to cleanup the problems with inconsistent - variants of sendmsg() and writev() on VxWorks. Thanks to Cherif - Sleiman for reporting this. - - * ace/OS.i (sema_wait): Fixed the implementation on NT so that - errno = ETIME. - - * tests/Semaphore_Test.cpp: Cleaned up the programming style a - bit. - - * ace/OS (writev): Removed the ACE_WRITEV_TYPE from the - ACE_OS::writev() method and instead put this as a cast on the - internal call to ::writev(). This is much cleaner and should - fix a bug introduced last night. Thanks Cherif Sleiman - for reporting this. - - * ace/Synch: Added a new release() method to ACE_Semaphore that - enables a caller to release multiple waiters. Thanks to Darrell - Brunsch for noticing this. - -Mon Aug 4 12:03:29 1997 Darrell Brunsch - - * tests/Semaphore_Test: Redid to test timed waits in a more - reasonably fashion. - -Sun Aug 03 23:47:13 1997 Douglas C. Schmidt - - * ACE version 4.2.29, released Sun Aug 03 23:47:13 1997. - -Sun Aug 3 22:18:33 1997 Douglas C. Schmidt - - * tests/Atomic_Op_Test.cpp: Added template specialization so that - David won't have to ;-) - - * ace/ACE: Added a new, complete set of send/recv operations with - timeouts. These implement the following methods: - - read, readv, write, writev, recv, recvfrom, recvmsg, send, sendto, sendmsg. - - The implementation provides two flavors: MIT pthread support, an - ACE portable support. To use MIT pthread support, you must to - define ACE_HAS_READ_TIMEDWAIT, ACE_HAS_READV_TIMEDWAIT, - ACE_HAS_WRITE_TIMEDWAIT, ACE_HAS_RECV_TIMEDWAIT, - ACE_HAS_RECVFROM_TIMEDWAIT, ACE_HAS_RECVMSG_TIMEDWAIT, - ACE_HAS_SEND_TIMEDWAIT, ACE_HAS_SENDTO_TIMEDWAIT and - ACE_HAS_SENDMSG_TIMEDWAIT respectively. See the config.h file - for SCO UNIX for an example. - - This new approach is not only more powerful (since it takes - advantage of OS-level mechanisms when they exist), but it also - greatly improves the modularity of the code and provides a - wider range of supported functionality. Thanks to Arturo - Montes for this new feature. - - * ace/ACE.cpp: Added comments to the ACE_Object_Manager_Destroyer - class. - - * ace/OS.h: Redid all the function prototypes for class ACE_OS so - that it's easier to read the arguments. - - * ace/config-sco-5.0.0-mit-pthread.h: Added the new macros that - enable timed reads and writes. Thanks to Arturo Montes - for this new feature. - - * ace: Added a corresponding #endif /* FOO */ for all #if defined - (FOO) in ACE. - - * ace: Changed all uses of ACE_IOStream_T to ACE_IOStream to - be more consistent with other uses of templates in ACE. - Thanks to Thilo for reporting this (and thanks to David - for not being offended ;-)). - - * ace/OS.i (operator/): Removed "const" from both the OS.h and - OS.i files for ACE_U_LongLong::operator/. It is redundant, - potentially confusing, and gives warnings on some compilers! - -Sun Aug 03 21:20:12 1997 - - * tests/Atomic_Op_Test.cpp: Added new test to test 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. - - * ace/config-win32-common.h (ACE_HAS_INTERLOCKED_EXCHANGEADD): - Added macro to config file. This macro is automatically set true - for NT4.0 systems or greater. - - * ace/Atomic_Op.i: 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 this - 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. - - The creation of this new file is necessary for non-Win32 - platforms to continue to inline the code as before. - - * ace/Synch_T.cpp: This file must include Atomic_Op.i if - ACE_INLINE has not be turned on. If it is, this file must be - included by Synch_T.h. - - * ace/Synch.cpp: Moved the specialization code from Synch.cpp to - Atomic_Op.i. This is necessary, otherwise the compiler will - ignore the specialization. - -Sun Aug 03 10:51:34 1997 David L. Levine - - * ace/config-osf1-4.0*.h: added #define ACE_HAS_LONGLONG_T. - Thanks to Thilo for reporting that OSF1-4.0 does. - -Sat Aug 02 23:51:19 1997 Douglas C. Schmidt - - * ACE version 4.2.28, released Sat Aug 02 23:51:19 1997. - - * ace/TTY_IO.cpp (control): Fixed a bug when using 8 bits for - character due to ISTRIP flag setting for device. Thanks to - Arturo Montes for reporting this bug. - - * ACE-categories: Updated the list of ACE classes to reflect - recent changes. - - * ASNMP: Added the new ACE+SNMP release courtesy of Mike - MacFaden . This builds cleanly on Solaris, - but it looks like there are a bunch of non-portable features - that won't compile cleanly on all the other platforms. - Therefore, until Mike or others get this stuff fully portable, - it won't be build by default in the top-level ACE Makefile. - - * ace/OS.h (class ACE_U_LongLong): Reformatted this a bit. - - * ace/SV_Semaphore_Simple.i: Removed the #include of - SV_Semaphore_Simple.h since it seems unnecessary and is causing - problems for TAO. - - * ace/IOStream_T.h (ACE_IOStream_T): Removed the unneeded ';' at - the end of the ACE_UNIMPLEMENTED_FUNC macros since this was - causing compiler errors. - -Sat Aug 02 13:11:22 1997 David L. Levine - - * ace/Synch.cpp (ACE_Static_Object_Lock::instance): commented - out call to ::atexit () because it causes shutdown problems - on DEC CXX, HP/UX, and AIX. Many thanks to James Johnson - for tenaciously tracking this one down, to Thilo and Steve - for assisting, and to all who reported the problem. - - * ace/Log_Msg.cpp (ACE_Log_Msg_Manager::open,close): neutered - on VxWorks, only, so that it will compile. - -Fri Aug 1 21:33:18 1997 Nanbor Wang - - * netsvcs/lib/netsvcs.mak: Added post compilation command that - copies DLL to ace/ directory because netsvcs/main.exe must have - this file in search path. - - * ace/Read_Buffer.cpp (ACE_Read_Buffer): Used ACE_OS::fdopen - instead of ::fdopen because it caused compilation error on NT. - -Fri Aug 1 17:25:04 1997 Chris Cleeland - - * include/makeinclude/platform_irix6.4_sgic++.GNU (CCFLAGS): Used - -ptnone and -no_prelink in order to get SGI to compile properly. - - * ace/config-irix6.4-sgic++.h (ACE_HAS_EXCEPTIONS): Added - ACE_HAS_EXCEPTIONS to this config. - - * ace/IOStream_T.h (ACE_IOStream_T): Wrapped send, recv, send_n, - and recv_n with the ACE_UNIMPLEMENTED_FUNC macro. - -Fri Aug 1 17:08:32 1997 Nanbor Wang - - * ace/ace.mak: Put OS.cpp back into the makefile. - - * ace/config-win32-common.h: Commented out checking of - ACE_HAS_WINSOCK2 when we are using NT 4.0 and above. The - original check prevented us from using winsock2. - - * ace/Thread_Manager.cpp: - * ace/Service_Repository.cpp: - * ace/ReactorEx.cpp: - * ace/Reactor.cpp: - * ace/Proactor.cpp: - * ace/Malloc.cpp: - * ace/Synch.{h,cpp}: Changed the lock held by - ACE_Static_Object_Lock from ACE_Thread_Mutex to - ACE_Recurssive_Thread_Mutex. - - * ace/Timer_Heap_T.cpp (ACE_Timer_Heap_T): Something was missing - here..... - -Fri Aug 1 13:39:13 1997 Douglas C. Schmidt - - * ace/TTY_IO.cpp (control): Removed the special M_UNIX code for - SCO_OpenServer. Thanks to Arturo Montes - for reporting this. - - * ace/Read_Buffer.cpp (ACE_Read_Buffer): Mistakenly used int - rather than ACE_HANDLE for one of the constructors in - ACE_Read_Buffer. - - * ace/OS.cpp (readv): Fixed a braino that manifests itself on - Chorus because I put the ACE_READV_TYPE in the wrong place. - Thanks to Wei Chiang for reporting this. - -Fri Aug 1 14:31:22 1997 Darrell Brunsch - - * tests/Timer_Queue_Test.cpp: removed casts from pointers to ints - (when a act was compared with a number) and instead used a cast - on the integer values. This gets rid of warnings on platforms - where the sizeof a pointer is larger than the sizeof an int. - -Fri Aug 01 12:10:28 1997 - - * ace/Synch_T: Changed parameter passing for ACE_Atomic_Op from - const TYPE to const TYPE &. - - * ace/Synch.cpp: These specializations have been added to - ACE_Atomic_Op to make the implementation faster on Win32 that - has OS support for doing this quickly through methods like - InterlockedIncrement and InterlockedDecrement. - - * ace/SV_Semaphore_Complex.cpp (open): Fixed more compiler - warnings: - - IOStream.cpp Naming_Context.cpp Read_Buffer.cpp - SV_Semaphore_Complex.cpp SV_Semaphore_Complex.i - -Fri Aug 1 11:57:45 1997 Chris Cleeland - - * ace/Containers.h (ACE_Fixed_Set): Eliminated declaration for - unnecessary ACE_Fixed_Set(size_t) CTOR. - - * ace/OS.h: Simplified the typedef of ACE_hrtime_t so that it's an - unsigned long long whenever ACE_HAS_LONG_LONG_T is defined. - -Fri Aug 01 10:12:26 1997 David L. Levine - - * ace/config-osf1-4.0.h: added ACE_HAS_TEMPLATE_SPECIALIZATION. - Thanks to Thilo for verifying that this is supported with DEC CXX. - - * ace/config-irix6.4-sgic++*.h: added ACE_TEMPLATES_REQUIRE_SOURCE - and ACE_REQUIRES_FUNC_DEFINITIONS. - - * ace/OS.h,README: added ACE_REQUIRES_FUNC_DEFINITIONS support. - - * ace/{Free_List.h,Remote_Tokens.h,Synch_T.h,Timer_*_T.h}: - wrapped unimplemented template class copy constructors and - assignment operators with ACE_UNIMPLEMENTED_FUNC. - - * tests/Service_Config_Test.cpp: removed templates to avoid - problems with finicky compilers, and added check of destruction - ordering. - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: added - -no_prelink to LDFLAGS. - -Fri Aug 01 00:14:46 1997 Douglas C. Schmidt - - * ACE version 4.2.27, released Fri Aug 01 00:14:46 1997. - -Thu Jul 31 21:51:01 1997 David L. Levine - - * ace/Log_Msg.cpp (open): fixed memory leak. - -Thu Jul 31 21:41:10 1997 Douglas C. Schmidt - - * tests/Service_Config_Test.cpp (run_test): You won't shout as I... - - * ace/Object_Manager.cpp (instance): ... fiddle about ;-) - -Thu Jul 31 17:39:56 1997 - - * ace: The following files were modified to avoid the - "unreferenced formal parameter" and other warnings from the - compiler: - - ACE.cpp Asynch_IO.cpp Asynch_IO.h INET_Addr.cpp OS.cpp OS.h OS.i - Proactor.cpp Reactor.cpp ReactorEx.cpp ReactorEx.i - SOCK_Dgram_Bcast.cpp Service_Config.cpp - -Thu Jul 31 16:46:44 1997 David L. Levine - - * ace/config*.h: replaced "ACE_REQUIRES_TEMPLATE_SPECIALIZATION" - with "ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION". - - * ace/config-vxworks-ghs-1.8.h,config-irix6.4-sgic++*.h: added - ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA. - - * all .cpp files that had "ACE_REQUIRES_TEMPLATE_SPECIALIZATION": - replaced with "ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION" and - added #pragma instantiate for Edision Design Group compilers, - e.g., SGI and Green Hills. - -Thu Jul 31 16:25:33 1997 Douglas C. Schmidt - - * ace/Synch.i (acquire): Added the timed acquire() interface to - ACE_Semaphore. - -Thu Jul 31 11:10:17 1997 Darrell Brunsch - - * tests/run_tests.bat: Redid this file completely making it - much smarter about running tests. Instead of just blindly - executing the tests, it checks the return values to see if - an error occured and also outputs relevant errors from the - log file if the test was unsuccessful. - - It's a remarkable example of batch programming wizardry. - -Thu Jul 31 10:39:04 1997 Darrell Brunsch - - * ace/INET_Addr.cpp: initialized error variable in - gethostname to stop warnings when inlining is on. - -Thu Jul 31 09:46:50 1997 Darrell Brunsch - - * ace/Timer_Heap_T.cpp: changed cancel(id) to check the timer - id to make sure it is in range (not negative and not larger - than the current size of the heap) - -Thu Jul 31 07:32:26 1997 David L. Levine - - * Malloc_T.{i,cpp},Timer_Queue_T.i: replaced LOCK with ACE_LOCK. - Thanks to Thilo for supplying patches. - - * ace/config-sunos5.5-g++.h: #define ACE_MALLOC_ALIGN to be 8. - - * ace/Object_Manager.*: renamed cleanup () to at_exit (). - - * Log_Msg.{h,cpp},Object_Manager.cpp: let ACE_Object_Manager - clean up the global ACE_Log_Msg_Manager. - - * Service_Config_Test.cpp: added test of - ACE_Object_Manager::at_exit (). - -Wed Jul 30 20:30:25 1997 Douglas C. Schmidt - - * ace/SOCK_Dgram.h: Added an = 0 to the flags parameter to recv(). - Thanks to Michael MacFaden for pointing out the inconsistency. - - * ace/OS.cpp (thr_create): Added support for the SCHED_IO policy, - which is supported by MIT Pthreads. Thanks to Arturo Montes - for this fix. - - * ace/SOCK_Dgram.h: Added a comment to clarify how to delete the - elements of the iovec array. Thanks to Mike MacFaden for - clarifying this. - - * ace/Reactor.h: Changed the comment for schedule_timer() to use - delta_timer rather than delay. - - * ace/Connector: Updated the timer cancellation id to be long - rather than int. - - * examples/Reactor/Misc/notification.cpp: Timers are now working - happily on Chorus, so we can revert the Chorus-specific patches. - Thanks to Wei Chiang for reporting this. - - * ace/SOCK_Dgram.cpp (recv): The timed recv() method must return - -1 on a timeout to meet its documented specification. Thanks to - Joseph Cross for reporting this - problem. - - * ace/OS.i (readv): Added a fix for Chorus, which has a different - readv() prototype than normal operating systems. Thanks to Wei - Chiang for reporting this. - -Wed Jul 30 20:02:21 1997 James C Hu - - * ace/Hash_Map_Manager.{h,cpp}: changed the *_i methods to use - shared_find() method to ease template specialization efforts. - Also, added a new shared_find() method. Added a parameter to - each to allow the passing in of the calculated hash value. - -Wed Jul 30 16:43:34 1997 - - * ace/config-win32-common.h: If _DEBUG is not set (that is, we are - building the Release version), we will turn on __ACE_INLINE__. - Thanks to Matthias Kerkhoff for - suggesting this. - -Wed Jul 30 06:53:30 1997 Matthias Kerkhoff - - * The use of the following configuration #defines in the entire - ACE distribution has been changed: - - - ACE_HAS_WINNT4 - - ACE_HAS_MFC - - ACE_HAS_STRICT - - ACE_MT_SAFE - - ACE_HAS_DLL - - ACE_HAS_SVC_DLL - - ACE_HAS_WINSOCK2 - - ACE_HAS_ORBIX - - ACE_HAS_MT_ORBIX - - In previous ACE-versions, code blocks depending on one of these - defines have been guarded by an #if defined(ACE_XXX_OPTION). - Therefore it has been necessary to define the default - configuration unconditionally in config-win32.h. - - The #if statements in the source files have been changed to - - #if defined(ACE_XXX_OPTION) && (ACE_XXX_OPTION != 0) - - while the default configuration in config-win32.h will only be used, - if it has not been overridden from the compilers command line (i.e.) : - - #if !defined(ACE_XXX_OPTION) - #define ACE_XXX_OPTION 1 - #endif - -Wed Jul 30 14:46:33 1997 Nanbor Wang - - * ace/Malloc.cpp: - * ace/Proactor.cpp: - * ace/ReactorEx.cpp: - * ace/Reactor.cpp: - * ace/Service_Repository.cpp: - * ace/Thread_Manager.cpp: - * ace/Synch.{h,cpp}: Changed ACE_Static_Object_Lock::get_lock () - to instance () to emphasize that it's a singleton. - - * ace/Containers.cpp: Fixed the problem caused by - ACE_Unbounded_Stacknotkeeping its size currectly. Thanks for - Matthias Kerkhoff for sending us the - patch. - - * ace/OS.cpp (exit): Corrected a bug in ACE_TSS_Cleanup::exit (). - It innocently uses default ctor to copy info_arr. And things - get out of hand when info_arr[] gets destructed. Thanks very - much for Matthias Kerkhoff for digging - this out and sending us the patch. - -Wed Jul 30 13:36:55 1997 David L. Levine - - * ace/config-vxworks-ghs-1.8.h: added #ifdef ppc wrapper around - #define of ACE_HAS_POWERPC, because GreenHills #defines that. - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: replaced - indlib.o LIBS with newer ghsbltin.o and ghsmath.o. - - * ace/OS.h: use the same ACE_UNUSED_ARG definition with ghs as - with other compilers. - - * ace/Object_Manager.*: revised interface, but still in flux. - cleanup () should work for process-wide registration, but is - untested. - -Wed Jul 30 11:13:57 1997 Chris Cleeland - - * ace/config-linux*.h (ACE_HAS_LONGLONG_T): These configs - file incorrectly had ACE_HAS_LONGLONG rather than - ACE_HAS_LONGLONG_T. - - * ace/OS.cpp (gethrtime): Added 'volatile' keyword to insure that - the automatic variables 'most' and 'least' don't get put into - registers. Putting this in stopped the SIGSEGV that was occurring - in Linux. - -Wed Jul 30 06:53:30 1997 Douglas C. Schmidt - - * ACE version 4.2.26, released Wed Jul 30 06:53:30 1997. - -Wed Jul 30 04:36:39 1997 Nanbor Wang - - * ace/Containers.{h,cpp}: Added back new parameterized allocation - strategy version. Finally. - - * ace/Synch.cpp (atexit): Moved ACE_Allocator here because only - here, we can be sure that no other user defined memory - activities are going on. This is becoming even more - interesting now.... Perhaps we should move all - close_singleton's here? - - * ace/Service_Config.cpp (close_singletons): Removed - ACE_Allocator::close_singleton () from this function because we - still need ACE_Allocator to "free" static objects' memory. - - * ace/Synch.{h,cpp}: Added a new class ACE_Static_Object_Lock - which provides a lock when instantiating static objects. - - * ace/Thread_Manager.cpp: Removed ace_thread_manager_lock_, - * ace/Service_Repository.cpp: Removed ace_service_repository_lock_, - * ace/ReactorEx.cpp: Removed ace_reactorex_lock_, - * ace/Reactor.cpp: Removed ace_reactor_lock_, - * ace/Proactor.cpp: Removed ace_proactor_lock_, - * ace/Malloc.cpp: Removed ace_malloc_lock_, - and replace them with a global single lock - ACE_Static_Object_Lock::get_lock (). - -Tue Jul 29 16:25:48 1997 Chris Cleeland - - * ace/OS.cpp (thr_create): Explicitly flagged 'stack' and 'size' - as unused arguments. - - * ace/Memory_Pool.cpp (handle_signal): Explicitly flagged siginfo - as an unused argument, and moved the decl of offset into the - conditional block in which it's used. - - * ace/OS.i (dlerror): Added explicit cast of the return value to - (char*) because on Linux dlerror() returns const char*, while on - Solaris it's char*. - - * ace/config-linux-lxpthreads.h: Created new flag - ACE_LACKS_POSIX_PROTO_FOR_SOME_FUNCS that can be used when only - certain functions are missing POSIX prototypes. This eliminates - more warnings with -Wall - - * ace/ACE.cpp (max_handles): Added return statement for the - RLIMIT_NOFILE case. - (count_interfaces): Removed unused variables. - -Tue Jul 29 15:10:35 1997 Darrell Brunsch - - * ace/OS.i: Changed sema_wait to take in a const ACE_Time_Value - -Tue Jul 29 12:41:27 1997 Douglas C. Schmidt - - * ace/config-sco-5.0.0-mit-pthread.h: Added the - ACE_LACKS_PWD_FUNCTIONS macro. Thanks to Arturo Montes - for reporting this. - -Tue Jul 29 13:10:00 1997 Nanbor Wang - - * ace/Signal.h: Moved inclusion of "Containers.h" to the bottom of - this file so everything is defined properly before use. - -Tue Jul 29 12:36:24 1997 - - * tests/Message_Queue_Test.cpp (main): Removed dynamic allocation - of the string array. - -Tue Jul 29 12:15:49 1997 Darrell Brunsch - - * ace/Proactor.cpp - * ace/Reactor.cpp: - * ace/ReactorEx.cpp: Changed the default Timer Queue to - Timer Heap instead of Timer List. - -Tue Jul 29 07:59:04 1997 David L. Levine - - * Makefile,TAO/Makefile: change mode of updated ChangeLog-* - file to 644 after updating it, when building a release - with TIMESTAMP enabled. - - * ace/OS.cpp (sched_params): added some more initializations - to 0 to avoid Purify warnings about unitialized memory reads. - - * ace/Object_Manager.cpp (~ACE_Object_Manager): removed unused - variable "i". Thanks to Amos Shapira - for reporting this. - - * ace/Service_Record.{h,i} Parse_Node.{h,cpp} (handle,open_handle): - removed "const" from ACE_SHLIB_HANDLE return value. Thanks - to the several people who noted compiler warnings from this. - - * ace/Naming_Context.cpp: added delete of this->name_options_; - (dtor,fini): call this->close (). - - * tests/IOStream_Test.cpp (client,server): use ACE_NEW_RETURN - instead of new. - -Tue Jul 29 01:53:18 1997 Nanbor Wang - - * ace/OS.h: Added two new macros ACE_NEW_MALLOC_RETURN and - ACE_NEW_MALLOC. Theses are similiar to ACE_ALLOCATOR_RETURN and - ACE_ALLOCATOR that allow memory allocation using user defined - functions. However, these two macros will call specified - constructor after memory is being allocated. - - * ace/Containers.{h,cpp}: Decoupled memory allocation strategy for - ACE_Unbounded_Stack, ACE_Unbounded_Set, ACE_Unbounded_Queue. - Users can now specified their own memory allocation strategies - if needed. If not specified, the default ACE_Allocator will be - used. - -Tue Jul 29 00:56:54 1997 Douglas C. Schmidt - - * ACE version 4.2.25, released Tue Jul 29 00:56:54 1997. - -Mon Jul 28 16:23:26 1997 David L. Levine - - * include/makeinclude/rules.nested.GNU: added missing - semicolon at end of last statement. Thanks to Amos - Shapira for providing this fix. - - * ace/OS.h (VxWorks only): only #include before - for GreenHills. Thanks to Dave Moore - for reporting a problem without this - fix with g++/VxWorks 5.3.1 for PowerPC target. - Also, commented out g++ string.h hack. It no longer appears - to be necessary. - - * tests/README: added VxWorks 5.3.1 test status. - - * tests/SPIPE_Test.cpp (main): fixed #ifdefs so that it compiles. - - * ace/OS.i: (strtok_r): replaced NULL with 0. NULL is #defined - as (void *) 0 on VxWorks, so it causes compile warnings. - Thanks to Dave Mayerhoefer for reporting - this problem. - - * ace/Object_Manager.{h,cpp},Makefile: added this class to - shutdown ACE library services, and reclaim their storage, - at program termination. - - * ace/ACE.cpp: added hook to call ACE_Object_Manager destructor - in this file. It's in this file so that it's sure to be - linked in to executables that statically link libACE.a. - - * ace/Service_Config.{h,cpp}: (close): delete ACE_STATIC_SVCS - instance, which is now saved in static_svcs_. Also, removed - LM_SHUTDOWN call, because the logger apparently gets shutdown - now with everything else (with ACE_Object_Manager). - - * ace/Object_Manager.* (delete_at_exit,delete_array_at_exit): - made these (inline) static functions, with return values. - - * tests/IOStream_Test.cpp (client,server): explicitly destroy - (and create) ACE_SOCK_IOStream instances, because they don't - get destroyed on Solaris. They're on the stack of separate - threads, so maybe the problem is related to not cleaning up - TSS on Solaris. Thanks to James CE Johnson - for some efficient debugging work, and for verifying that the - original code works properly on Linux. - -Mon Jul 28 21:59:09 1997 Nanbor Wang - - * ace/ace.mak: Added file Object_Manager.cpp. - - * ace/OS.h: Added #define RTLD_LAZY when - ACE_HAS_SVR4_DYNAMIC_LINKING and RTLD_LAZY is not defined. - FreeBSD 2.2.1 "forgot" to put in this definition. Thanks to - Satoshi Ueno for reporting this. - -Mon Jul 28 13:27:21 1997 Douglas C. Schmidt - - * ace/Object_Manager: Made a few minor stylistic updates. - - * netsvcs/servers/main.cpp (main): Updated this test program to - utilize the new ACE_Service_Object_Ptr class. - - * ace/Service_Object.h: Added a new smart pointer call - ACE_Service_Object_Ptr, which generalizes functionality that was - previously in the ./netsvcs/server/main.cpp file. Thanks to Wei - Chiang for this suggestion. - - * examples/Threads/process_manager.cpp (parse_args): Removed the - unused n_processes global variable. Thanks to Amos Shapira for - reporting this. - - * tests/SPIPE_Test.cpp (main): Cleaned up the #ifdef structure - to remove compiler warnings. Thanks to Amos Shapira for - this. - - * tests/Handle_Set_Test.cpp (test_performance): Removed an unused - ACE_HANDLE handle definition. Thanks to Amos Shapira for - reporting this. - - * ace/OS.i (sema_init): Swapped else and #endif to avoid - a compile error when ACE_LACKS_NAMED_POSIX_SEM is false. - Thanks to Wei Chiang for reporting this. - - * ace/OS.cpp (rwlock_init): Added a cast to (const void *) to keep - certain compilers from complaining. Thanks to Thilo and - Amos Shapira for reporting this. - - * ace/OS.i (sema_wait): *tv should have been &tv. Thanks to Thilo - for reporting this. - -Mon Jul 28 13:57:21 1997 James C Hu - - * ace/config-irix6.4-sgic++.h: Added template specialization #def. - -Sun Jul 27 20:47:01 1997 David L. Levine - - * tests/Handle_Set_Test.cpp: Instantiate templates with - ACE_HANDLE instead of int. - - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp (main): use - ACE_OS::fprintf () instead of cerr. - -Sun Jul 27 20:10:26 1997 Douglas C. Schmidt - - * ACE version 4.2.24, released Sun Jul 27 20:10:26 1997. - -Sun Jul 27 16:03:30 1997 Nanbor Wang - - * tests/Handle_Set_Test.cpp (test_boundaries): Changed class of - queue from ACE_Unbounded_Queue to - ACE_Unbounded_Queue so it declares the right data - type. - - * ace/Synch.cpp (ACE_Process_Mutex): - * ace/OS.cpp (rwlock_init): - * ace/ACE.cpp (unique_name): Memories for placing unique_name are - now declared using ACE_UNIQUE_NAME_LEN. When calling - ACE::unique_name, the length is also specified using - ACE_UNIQUE_NAME_LEN because using "sizeof (buffer)" also caused - problem if we are using UNICODE. - - * ace/OS.h: Added a new directive ACE_UNIQUE_NAME_LEN to specified - the maximum length of an "unique name." - -Sun Jul 27 15:32:08 1997 David L. Levine - - * tests/Handle_Set_Test.cpp (main): uncommented - test_duplicates () and test_performance () calls, and added - ACE_Unbounded_Queue_Iterator specialization. - -Sun Jul 27 14:25:33 1997 Douglas C. Schmidt - - * tests/Handle_Set_Test.cpp (test_boundaries): Added a better test - to ensure that the ACE_Handle_Set_Iterators are working - correctly. This works by inserting the handles in a queue and - then making sure that they are the same values we receive from - the iterator. - - * ace/Handle_Set.i (operator): Fixed a subtle bug in the - ACE_Handle_Set_Iterator implementation. We need to make - sure that we increment the handle_index_ to the beginning - of the next word whenever we've examined all the bits in - the current word. Thanks to David Levine for noticing this - problem. - -Sun Jul 27 09:06:29 1997 David L. Levine - - * include/makeinclude/rules.lib.GNU: replaced hard-coded ".so" - with "$(SOEXT)". - - * include/makeinclude/rules.local.GNU: added/completed support - for "$(SOEXT)", and "$(VSHDIR)" instead of always hard-coding - them as ".so" and ".shobj/". - - * include/makeinclude/wrapper_macros.GNU: added support for - override of "$(VSHDIR)" in platform_macros.GNU. - - * apps/JAWS/clients/{Blobby,Caching}/Makefile, - apps/JAWS/stress_testing/Makefile, - apps/Orbix-Examples/Event_Comm/{Consumer,Supplier}/Makefile, - examples/ASX/Event_Server/Event_Server/Makefile, - examples/ASX/UPIPE_Event_Server/Makefile, - examples/Logger/simple-server/Makefile, - examples/Mem_Map/IO-tests/Makefile, - examples/Naming/Makefile, - examples/Reactor/Multicast/Makefile, - examples/Service_Configurator/Misc/Makefile, - examples/Shared_Malloc/Makefile: - replaced hard-coded ".shobj" with "$(VSHDIR)" in LDLIBS definitions. - - * include/makeinclude/platform_vxworks5.x_{g++,ghs}.GNU: - added overrides of .so build rules to change them .o builds. - - The above changes allow builds of modules that specify .shobj/*.so - on VxWorks, by mapping those objects to .obj/*.o. - -Sun Jul 27 03:07:35 1997 Nanbor Wang - - * ace/ACE.cpp (unique_name): Added __TEXT macro to the format - string in sprintf to avoid a nasty problem when using UNICODE on - NT. - -Sat Jul 26 21:12:07 1997 David L. Levine - - * ace/ReactorEx.cpp: added a couple of ACE_UNUSED_ARG's. - - * examples/Logger/simple-server/Logging_Handler.cpp (handle_input): - replace use of cerr with stderr (by using default arg of - ACE_Log_Record::print ()). - - * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): use - ACE_OS::printf () instead of cout. - - * examples/Shared_Malloc/test_persistence.cpp: added #include - of iostream.h with ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - -Sat Jul 26 15:55:43 1997 - - * ace/Malloc_T.cpp (ACE_Cached_Allocator): Changed (T *) to - (T*). VC++ did not like the former. - - * The entire ACE distribution was updated to use the new singleton - methods. The old singleton methods in Service_Config have been - deprecated and users are encouraged not to use these methods - anymore. It may not be supported in future releases. The - replacement is the instance() methods in the individual classes. - For example, ACE_Service_Config::reactor() is replaced by - ACE_Reactor::instance(). A perl script has been added - (ACE_wrappers/bin/Service_Config.perl) to allow users to change - their code over to the new methods. - - These changes will hopefully help in reducing the compile-time - dependencies in ACE source files and allow smaller custom ACE - libraries to be compiled. - - Thanks to Matthias Kerkhoff for making - these changes. - -Sat Jul 26 15:44:45 1997 Douglas C. Schmidt - - * ace/Malloc_T.cpp (ACE_Cached_Allocator): I think we want to - say "sizeof (T)" rather than "sizeof (T *)". - - * ace/FILE_IO.i (recv_n): There is a minor bug fix to be made in - FILE_IO.i. The method ACE_FILE_IO::recv_n() should call - ACE::read_n(), not ACE::recv_n(). Similarly, the method - ACE_FILE_IO::send_n() should call ACE::write_n(), not - ACE::send_n(). The functions ::recv() and ::send() are intended - only for *socket* I/O, and return failure conditions when - applied to *file* I/O. Thanks to David Brackman - for reporting this. - - * ace: Changed all LOCK names to ACE_LOCK to avoid clashes - with macros in the KAI C++ compiler. Thanks to Jeff - R. Hayes for pointing this out. - - * ace/Malloc_T.i: Added ACE_INLINE to some methods that weren't - getting inlined. - - * ace/OS.i: Added an implementation of timed semaphores for the - POSIX threading APIs. Also cleaned up the return values from - sema_wait() so that it always returns -1 if an error occurs - (originally, it was returning -2, which is confusing). Also - cleaned up the rd_lock() and wr_lock() methods in the same way. - -Sat Jul 26 16:00:05 1997 David L. Levine - - * Malloc_T.cpp (ACE_Cached_Allocator): fixed typo, sizeof (T*) - instead of sizeof (*T). - - * Proactor.cpp (instance): fixed signature in non-WIN32 - version. (run_event_loop): added ACE_UNUSED_ARG (tv). - -Fri Jul 25 12:08:47 1997 David L. Levine - - * ace/OS.[hi]: finished VxWorks (non-POSIX) semaphore implementation. - - * ace/Process.cpp (spawn): with GreenHills compiler only (for - VxWorks), call ACE_NOTSUP_RETURN instead of spawning via execve. - GreenHills 1.8.8 loses its lunch on the ACE_OS::execve () call. - Thanks to Dave Mayerhoefer for reporting - this problem. - - * tests/Mem_Map_Test.cpp (create_test_file): delete array "mybuf" - to prevent memory leak. - - * tests/Message_Queue_Test.cpp (main): delete "buffer" - elements at end of test to prevent memory leaks. - - * performance-tests/Misc/context_switch_time.cpp: use - ACE_Sched_Params for platform-independent thread priority - assignment. Also, modified Yield_Test so that only one thread - writes the test's timer. - - * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp (svc): - replaced an iostream printout with an ACE_DEBUG call. - - * examples/ASX/UPIPE_Event_Server/event_server.cpp: added - #include of iostream.h with ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - - * examples/IPC_SAP/FILE_SAP/client.cpp: require 2 args instead - of 1; mask file mode with 0777 (octal); and use - ACE_OS::printf () instead of cout. - -Fri Jul 25 00:46:22 1997 - - * ace/Synch: Added documentation for Condition variables. Thanks - to Jeff for pointing out the lack of - documentation. - -Thu Jul 24 11:48:05 1997 David L. Levine - - * Makefile,TAO/Makefile: added a filter to exclude backup and - [.]#* files from releases. Thanks to Carlos O'Ryan - for reporting this problem. - - * include/makeinclude/platform_*.GNU: inserted CVS/RCS - keyword string. - - * performance-tests/Misc/basic_perf.cpp (per_iteration): - added support for ACE_U_LongLong. - - * performance-tests/Misc/childbirth_time.cpp: - (prof_fork,prof_native_thread): added ACE_UNUSED_ARGs - for unsupported platforms. (prof_ace_os_thread): added - (ACE_THR_FUNC) cast of first arg to ACE_OS::thr_create () call. - - * performance-tests/Misc/test_naming.cpp (find): replaced cerr - statement with an ACE_DEBUG. - - * examples/Misc/test_read_buffer.cpp: replaced bare OS calls - with ACE_OS calls. - -Thu Jul 24 11:35:37 1997 Darrell Brunsch - - * ace/Timer_Heap_T.cpp: Fixed a problem with reschedule() - corrupting the free list in Timer Heap. Thanks to - James Crawford , Silvano Peruzzi - , and Stuart Powell - for the fix. - -Wed Jul 23 23:29:15 1997 - - * ace/Message_Block.cpp (size): Changed the comparison from - (length < this->max_size_) to (length <= this->max_size_). - Thanks to Paul for suggesting this change. - -Wed Jul 23 21:54:23 1997 David L. Levine - - * examples/Shared_Malloc/test_malloc.cpp (spawn): cast argv - argument to (char *const *) for call to ACE_OS::execv (). - -Wed Jul 23 16:40:39 1997 Nanbor Wang - - * ace/ACE.cpp (get_ip_interfaces): ACE'ified codes for NT. UNIX - part will come later. - - * ace/Malloc_T.cpp (ACE_Cached_Allocator): Changed to use raw - memory allocation method for memory pool. - - * ace/OS.h (ACE_TEXT_STRING): Added this #define macro to switch - between ACE_WString and ACE_CString according to the usage of - UNICODE. - -Wed Jul 23 14:43:11 1997 David L. Levine - - * tests/Timer_Queue_Test.cpp(main): delete timer_id array at - the end of the test to avoid a memory leak. - -Wed Jul 23 13:40:39 1997 Nanbor Wang - - * ace/Process.cpp (ACE_Tokenizer::next): Moved checking of string - termination after checking delimiter and preserve_designator so - that we can use this class to tokenize multiple null terminated - strings cascaded together (using \0 as delimitor.) Notice tne - combined strings must be terminated with two null chars. I need - to use this class in ACE::get_ip_interfaces. - - * ace/Malloc_T.{h,i}: Changed the implementation of - ACE_Cached_Mem_Pool_Node from using union to a plain pointer. - This is because some C++ compilers don't allow union member to - have copy constructor. Thanks to Tim to dig this out. - -Wed Jul 23 12:58:04 1997 Steve Huston - - * ace/CORBA_Ref.cpp: Added #include "ace/Log_Msg.h" to catch the - ACE_DEBUG macro. diff --git a/ACE/ChangeLogs/ChangeLog-98a b/ACE/ChangeLogs/ChangeLog-98a deleted file mode 100644 index c5daa4d7ee1..00000000000 --- a/ACE/ChangeLogs/ChangeLog-98a +++ /dev/null @@ -1,6588 +0,0 @@ -Wed Apr 29 18:55:13 1998 David L. Levine - - * ACE version 4.5 released. - -Wed Apr 29 12:25:05 1998 David L. Levine - - * ace/config-lynxos.h: added ACE_POLL_IS_BROKEN so that - ACE_OS::sleep () uses select () instead of poll (). - - * tests/Map_Manager_Test.cpp: added a ssize_t loop index that's - used to avoid signed/unsigned comparisons. - -Tue Apr 28 23:08:10 1998 Nanbor Wang - - * ace/Hash_Map_Manager.cpp: Bugs fixed. - - * tests/Map_Manager_Test.cpp: Added assertion tests on the number - of iterations to ensure the test does run correctly. - - * tests/Map_Manager_Test.cpp (main): Disabled the VERBOSE_LITE - Log_Msg flag before starting the real test and reenabled it - after the tests. - -Tue Apr 28 06:49:50 1998 David L. Levine - - * ACE-INSTALL.html,os-patches/linux-patches.html: updated - Linux glibc-2 info. ACE works with glib-2.0.7-7, unmodified. - - * ace/config-g++-common.h: added - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES with egcs. egcs 1.0.2 - won't compile netsvcs/lib without it. - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: fixed location - of parenthesis in ppc check. Thanks to Brian Mendel - for reporting this. - - * ace/High_Res_Timer.cpp: initialize global_scale_factor_ to 1000 - on Linux. - -Mon Apr 27 07:18:54 1998 Nanbor Wang - - * ace/Service_Types.cpp: Changes to use typedef - ACE_Service_Object_Exterminator to define . Thanks to - Chuck Gehr for reminding this. - - * ace/Service_Object.h (ACE_Service_Object_Ptr): - * netsvcs/servers/main.cpp (main): Added more comments on how to - use ACE_Service_Object_Ptr with ACE_SVC_INVOKE correctly. - - * ace/OS.h (ACE_Service_Object_Exterminator): Define the type as - extern "C" function pointer to make MVS happy. Thanks to Chuck - Gehr for pointing this out. - - * ace/Service_Object.i (ACE_Service_Object_Ptr): Delete the - underlying Service_Object after calling its fini() method. - Thanks to Tom Arbuckle - for pointing this out. - -Sun Apr 26 21:50:07 1998 David L. Levine - - * ace/Svc_Conf_l.cpp,etc/Svc_Conf_[ly].cpp.diff,etc/README: - updated the patch files. Thanks to J. Russell Noseworthy - for reporting problems with - them. - -Sun Apr 26 01:05:20 1998 Douglas C. Schmidt - - * ACE version 4.4.43 released. - -Sat Apr 25 17:47:31 1998 Nanbor Wang - - * ace/OS.h (ACE_FACTORY_DECLARE): Added explicit casting for - gobbler to prevent some weird compiler from complaining too - much. - - * netsvcs/lib/Server_Logging_Handler_T.cpp - (ACE_Server_Logging_Acceptor_T): We can't initialize the - with a temporary object. Its content gets deleted - right after the constructor exits. - -Sat Apr 25 11:55:01 1998 Alexander Babu Arulanthu - - * ace/Containers.h (class ACE_Double_Linked_List): Added - comments.(, the parameter for this class should have - T* next_ and T* prev_ fields in it. - - * ace/Containers.h (class ACE_Double_Linked_List): Corrected the - documentation for the insert_head and insert_tail functions. - -Fri Apr 24 22:36:37 1998 David L. Levine - - * ace/Service_Config.cpp (process_directive): added - ACE_UNUSED_ARG (directive). - -Fri Apr 24 18:40:08 1998 Irfan Pyarali - - * ace/Asynch_Acceptor.cpp (handle_accept): Fixed this method so - that it has better flexibility and error checking. Also, added - hooks so that users can do validation of remote connections. - Also, a flag is checked before accept is reissued. Thanks to - Jason Katz for reporting these upgrades. - -Fri Apr 24 16:33:14 1998 Steve Huston - - * ace/OS.h: ACE_FACTORY_DEFINE - in the generated gobble function, - use the indicated object type to do the delete so 1) the aC++ - compiler won't complain, and 2) so the service object is - destructed properly. - - * tests/Env_Value_Test.cpp: Made it compile on Solaris. - -Fri Apr 24 15:45:38 1998 David L. Levine - - * ace/config-sunos5.5-*.h: set ACE_THR_PRI_FIFO_DEF to 30, because - sched_get_priority_min is not implemented on Solaris 2.5.x. - -Fri Apr 24 09:12:39 1998 Nanbor Wang - - * tests/Env_Value_Test.cpp: Made it UNICODE safe. - - * tests/version_tests/version_tests.dsw: - * tests/version_tests/OrdMultiSet_Test.dsp: Added new project - file. - -Fri Apr 24 09:09:49 1998 David L. Levine - - * ace/config-linux-common.h: added ACE_HAS_4_4BSD_SENDMSG_RECVMSG. - Thanks to Sandro Doro for recommending - this. - -Fri Apr 24 04:12:39 1998 Nanbor Wang - - * tests/version_tests/version_tests.dsw: - * tests/version_tests/OrdMultiSet_Test.dsp: Added new project - file. - -Thu Apr 23 22:52:20 1998 Nanbor Wang - - * tests/tests.dsw: Somehow, Thread_Mutex_Test.dsp got removed from - the workspace. - - * tests/Thread_Mutex_Test.dsp: Update include/lib path. - -Fri Apr 24 00:12:32 1998 Douglas C. Schmidt - - * ACE version 4.4.42 released. - -Thu Apr 23 22:28:02 1998 Douglas C. Schmidt - - * ace/Service_Config: Began adding support for the new service - configurator feature that will make it possible to dynamically - configure services that are read in from the command-line. - Thanks to Karlheinz for requesting this. - - * ace/Parse_Node.cpp (open_handle), - ace/Svc_Conf.l: The line for the service object for the service - configurator contains the DLL specifications. Previously, it - was possible to specify either the absolute path name of the DLL - or only the name of the DLL itself. For the latter, the service - configurator is searching for the DLL using the PATH environment - variable. If we used the absolute path name it was not - possible to use environment variables in the string. It is now - possible to do this for Win32 using their %foo% notation. - Thanks to Andreas Schuelke for - providing these fixes. - - * etc/Svc_Conf_y.cpp.diff, - etc/Svc_Conf_l.cpp.diff, - ace/Makefile: Change the YY* symbols to ACE_YY* symbols to - avoid clashes if we link with other flex/yacc generated code. - - * apps/Gateway/Gateway/gatewayd.cpp, - apps/Gateway/Peer/peerd.cpp: Added a check to see if the - svc.conf file exists before trying to parse the arguments. - Thanks to Dani Flexer for reporting this. - - * apps/Gateway/Peer/Options.cpp (parse_args): Added the "C:" - qualifier to the get_opt string. Thanks to Dani Flexer - for reporting this. - - * ace/Activation_Queue.h: Extended ACE_Activation_Queue so that it - can be a proper base class by making the destructor virtual and - putting the methods into the protected section. Thanks to Garry - Brother for this. - - * ace/XtReactor.cpp: Commented out most of the logic if we're - running on Win32 because (1) it doesn't work correctly since - HANDLEs are not ints and (2) there's no X windows on Win32 - anyhow... - - * ace/XtReactor.h: Made ACE_XtReactor be ACE_Export'd. Thanks to - Kirill Rybaltchenko for reporting - this. - -Thu Apr 23 13:54:33 1998 David L. Levine - - * ace/Malloc.i (free): added ACE_UNUSED_ARG (ptr) if ACE_NDEBUG. - - * include/makeinclude/platform_chorus.GNU: include dtool/htgt-cf.rf - from $(MERGEDIR) instead of $(CLASSIXDIR). Thanks to - Wei Chiang for this update. - -Wed Apr 22 22:13:57 1998 Douglas C. Schmidt - - * ace/ace_bcc.ide: Added a new IDE for the Borland C++ compiler. - Thanks to Valik Solorzano Barboza for - this. - - * ace/Msg_WFMO_Reactor.cpp (wait_for_multiple_events): Fixed a - missing semi-colon. Thanks to Jorn Jensen - for reporting this. - -Wed Apr 22 21:53:12 1998 David L. Levine - - * config-linux-kcc.h: added #define ACE_SIZEOF_LONG_DOUBLE - to 12 on i386. Thanks to Ben Eng for - reporting this. - -Tue Apr 21 18:38:22 1998 Nanbor Wang - - * ace/ace_ce_dll.dsp: Removing a deprecated /windowsce:noconvert - linker flag. - -Mon Apr 20 15:39:42 1998 Steve Huston - - * ace/Handle_Set.cpp: Access fds_bits elements using an fd_mask - pointer rather than array indexing of the fds_bits array itself. - HP-UX 11 plays some games with the fd_mask type - fd_mask is defined - as an int32_t, but the fds_bits is an array of longs. This makes - plainly indexing through the array by hand tricky, since the FD_* - macros treat the array as int32_t. So the bits are in the right - place for int32_t, even though the array is long. This, they say, - is to preserve the same in-memory layout for 32-bit and 64-bit - processes. So, we play the same game as the FD_* macros to get - the bits right. See /usr/include/sys/_fd_macros.h. - On all other systems, this amounts to practically a NOP, since this - is what would have been done anyway, without all this type jazz. - -Sat Apr 18 13:59:55 1998 David L. Levine - - * ace/Naming_Context.h: removed trailing ';' at end of - ACE_FACTORY_DECLARE. - - * ace/OS.*,Sched_Params.{h,cpp}: added support on Solaris - for setting the LWP priority. It is necessary to set the - LWP priority for bound threads in the Real-Time scheduing - class. Thread priority is essentially ignored. See the - pthread_setschedparam man page for more info. Thanks to - Fred Kuhns for helping track this problem - down. - - There is one drawback: to set the LWP priority, in ACE, - a thread must set its own priority. There are examples - in performance-tests/Misc/preempt.cpp: - - High_Priority_Task::svc (void) - { - // On Solaris 2.5.x, the LWP priority needs to be set. - // This is the ACE way to do that . . . - ACE_OS::thr_setprio (priority_); - - I don't know of a way to set the LWP priority for another - thread. The problem is that there is no way that I know of - to find the LWP ID of another (bound) thread. A thread can - find the ID of its own LWP using _lwp_self (). - - * ace/config-sunos5*,README: added ACE_HAS_PRIOCNTL and - ACE_NEEDS_LWP_PRIO_SET. - - * ace/config-osf1-4.0.h: added ACE_HAS_PRIOCNTL and - ACE_LACKS_PRI_T. - - * performance-tests/Misc/preempt.cpp (svc): set LWP priority - (on Solaris) by having the thread set its own priority. - This test now passes on Solaris 2.5.1! - - * ace/High_Res_Timer.cpp (reset): initialize by assignment with - 0 instead of using memset. Thanks to Carlos for noticing this. - - * ace/Object_Manager.cpp (ACE_Object_Manager ctor): allocate - registered_objects_ after the allocation of ACE_STATIC_OBJECT_LOCK, - just to be safe. - -Sat Apr 18 01:28:36 1998 Irfan Pyarali - - * ace/Timeprobe.h (class ACE_Timeprobe): Changed ACE_Timeprobe to - use ACE_OS::gethrtime(). - -Sat Apr 18 01:14:30 1998 Irfan Pyarali - - * ace/OS.cpp (start and stop): start and stop should only be done - when ACE_Countdown_Time::max_wait_time_ is non-zero. - - * ace/Acceptor.cpp (open): Only set the reactor if calls to open() - and register_handler() succeeds. - -Fri Apr 17 21:00:21 1998 Steve Huston - - * ace/config-hpux11.h: Changes and comments around the - ACE_DEFAULT_BASE_ADDR definition for 64-bit HP-UX 11. - - * ace/Naming_Context.cpp - * ace/Malloc_T.cpp - * ace/Memory_Pool.cpp: Hacks to work around bugs in HP-UX aC++ in - 64-bit mode on HP-UX 11. - - * ace/OS.i: Addition of a facility that allows config.h to specify - additional flags for ACE_OS::mmap, above what's set by the caller. - It's done using a new definition, ACE_OS_EXTRA_MMAP_FLAGS. - This was added primarily to allow setting of the MAP_ADDR32 flag - on HP-UX 11 if the ACE_DEFAULT_BASE_ADDR is set in the 32-bit range - to allow 32-bit and 64-bit programs to map the same region. - -Fri Apr 17 11:40:38 1998 Nanbor Wang - - * ace/OS.cpp (invoke): Should check against null thr_desc, not - thr_desc->flag (). Thanks to "Erickson, Jack (CICG - NY GFX)" - for reporting this. - - * ace/OS.h (ACE_Service_Object_Exterminator): Typedef of ACE - factory cleanup funciton. - (ACE_FACTORY_{DECLARE,DEFINE}): Added an extra argument to pass - back destructor for the object created by the factory. Changed - the ACE_FACTORY_DEFINE to generate this destructor function to - pair with factory function so that we can deallocate the object - in the same heap it was created. - (ACE_SVC_INVOKE): This will now pass in 0, which means we don't - want to use the destructor function. - - * ace/Parse_Node.{h,cpp} (symbol): Added an extra argument to get - back the destructor function from ACE_FACTORY. Only - Function_Node actually uses it. - (ACE_Function_Node::symbol): Initialize the Service_Object with - added destructor function ptr so it will get destructed in the - "right place". - - * ace/Service_Config.{h,cpp} (load_static_svcs): Invoke the - factory method with added argument to get back the destructor - function and then, pass it in to ace_create_service_type - function. - (ACE_Service_Manager): Changed to use the more generic - ACE_FACTORY_DEFINE than using ACE_SVC_FACTORY_DEFINE. - (ACE_SERVICE_ALLOCATOR): Must match with signature of the - new factory method. - - * ace/Service_Type.{h,cpp} - (ACE_Service_Object_Type,ACE_Service_Type_Impl): Keep the - destruction function in these object, if use provides one, then - use it to destruct the object, otherwise, just use delete. - - * ace/Naming_Context.{h,cpp}: Changed to use - ACE_FACTORY_{DEFINE,DECLARE}. - - * ace/Object_Manager.cpp: Changed the signature of - Service_Manager. - - * ace/Svc_Conf.h: Changed the signature of - ace_create_service_type. - - * ace/Svc_Conf_y.cpp: - * ace/Svc_Conf.y: Try to get the destruction function from - factories in svc_location. - (ace_create_service_type): Pass in the destruction function if - provided one. - -Fri Apr 17 08:31:38 1998 Douglas C. Schmidt - - * ace/Signal.cpp (dispatch): Fixed a typo. Thanks for David - Levine's help pointing this out. - -Thu Apr 16 21:12:48 1998 Douglas C. Schmidt - - * ace/Signal.cpp: There was a major portability violation in the - ACE_Sig_Handler::dispatch() method, which was previously - acquiring a mutex lock. This is NOT permitted in the POSIX - signal handler spec. In addition, the implementation had other - nasty consequences related to dynamic allocation of memory in - the signal handler, which has a bad habit of breaking - non-reentrant uses of "new". The consequence of all this is - that you really shouldn't be modifying signal handlers via the - Reactor in multiple threads of control. In general, threads and - signals are just plain evil, so they are best addressed via - sigwait() anyhow... - - Thanks to Sumedh and Naga for first tracking this down. - -Thu Apr 16 20:51:42 1998 David L. Levine - - * ace/config-linux-pthread.h: added ACE_HAS_THREADS. - ace/config-irix6.x-g++.h: added ACE_HAS_THREADS and ACE_MT_SAFE. - Thanks to Dave Tallman for reporting these. - -Thu Apr 16 04:14:53 1998 Irfan Pyarali - - * ace/Timeprobe: - - This class is used to instrument code. This is accomplished by - inserting time probes at different location in the code. - ACE_Timeprobe then measures the time difference between two time - probes. - - This class provides a lightweight implementation for measuring - the time required to execute code between two time probes. When - a time probe executes, it records the time, the id of the - calling thread, and an event description. The event description - can either be an unsigned long or a string (char *). If string - are used, care must be taken cause only pointer copies are done - and the string data is *not* copied. - - The recorded time probes can then be printed by calling - print_times(). If you have used unsigned longs as event - descriptions in any of your time probes, you must provide an - event description table that maps the unsigned longs to readable - strings. This map is a simple array of strings, and the event - number is used as the index into the array when looking for the - event description. If you have only used strings for the event - description, this map is not necessary. - -Wed Apr 15 23:01:08 1998 Nanbor Wang - - * ace/Thread_Manager.cpp (exit): Don't delete the ACE_Thread_Exit - object of the thread here. ACE_Thread_Manager::exit will be - called back again when performing TSS cleanup. Thanks to Dave - Tallman for the bug report. - -Wed Apr 15 17:12:14 1998 Steve Huston - - * ace/config-hpux-11.x-hpc++.h: Explicitly set ACE_SIZEOF_LONG based - on compiler switch for processor/memory model. - -Wed Apr 15 16:25:38 1998 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (handle_signal): Changed break to return 0. - - * ace/OS.cpp (uname): We have to make sure that the size of - (processor + subtype) is not greater than the size of - name->machine. So we give half the space to the processor and - half the space to subtype. The -1 is necessary for because of - the space between processor and subtype in the machine name. - - Thanks to Andrew Marchewka - (Andrew_Marchewka@SRT.CCMAIL.compuserve.com) for suggesting - these changes. - -Wed Apr 15 08:52:52 1998 David L. Levine - - * tests/Reactor_Exceptions_Test (handle_input): removed - ACE_NOTREACHED wrapper around return statement at end. - Now that the previous statement is a function call, the - compiler (cxx) doesn't detect that the statement can't - be reached. - -Wed Apr 15 01:03:42 1998 Douglas C. Schmidt - - * ace/OS.i (ACE_SOCKCALL_RETURN): Added a work-around for a - Borland 5.02 compiler bug. The key turns out to be the - throw-away intermediate assignment statement to correctly keep - the value of WSAGetLastError(). Thanks to Dave Tallman - for reporting this. - -Tue Apr 14 23:35:19 1998 Nanbor Wang - - * ace/Profile_Timer.cpp (elapsed_rusage): The differences of user - time and system time for GETRUSAGE were not calculated. - - * performance-tests/Synch-Benchmarks/Options.cpp (print_results): - Added dump code for ACE_HAS_GETRUSAGE. - - * ace/ace_{dll,lib}.dsp: Removed Service_Main.cpp from the - projects. We don't really need them in ACE DLL. - - * ace/Service_Main.cpp: Removed the file from CVS. Lots of - Service_Config examples can be found all round ACE directories - so we really don't need it here anymore. - -Tue Apr 14 20:30:53 1998 Steve Huston - - * ace/OS.i (mutex_init, cond_init): Added sections to properly - handle error conditions on platforms which claim - ACE_HAS_PTHREADS_1003_DOT_1C. - -Tue Apr 14 16:39:42 1998 Nanbor Wang - - * ace/ACE.cpp (ldfind): Fixed a miscalculated string size. - Thanks to Jason Katz for reporting the - bug. - -Tue Apr 14 14:33:33 1998 David L. Levine - - * tests/Thread_Manager_Test.cpp (main): don't try to suspend/resume - DCE threads, because they don't support it. Added a start barrier, - to ensure that worker threads set up their signal handlers before - the main thread tries to signal them. Drop DEFAULT_ITERATIONS from - 100000 to 10000 because 100000 takes a long time on a 200 MHz - Pentium. - -Tue Apr 14 12:59:04 1998 Douglas C. Schmidt - - * tests/Hash_Map_Manager_Test.cpp: Changed the consts to - size_t, as well... - -Tue Apr 14 11:40:23 1998 David L. Levine - - * tests/Hash_Map_Manager.cpp: made type, size_t, of String_Table_size - explicit, instead of using the default type of int. - -Tue Apr 14 10:10:46 1998 Douglas C. Schmidt - - * ACE version 4.4.41 released. - -Tue Apr 14 07:19:25 1998 David L. Levine - - * bin/make_release (create_kit): ACE+TAO instead of ACE_TAO. - Thanks to Doug for reporting this. - - * ace/OS.h (ACE_Thread_Adapter): added friend class declaration - to avoid g++ warning: only defines a private destructor and - has no friends. - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): only declare local - thr_desc if ACE_HAS_WIN32 and ACE_HAS_MFC. - -Tue Apr 14 00:46:05 1998 Douglas C. Schmidt - - * ACE version 4.4.40 released. - -Mon Apr 13 19:19:13 1998 Douglas C. Schmidt - - * ace/OS: Made the destructor of ACE_Thread_Adapter private to - keep people like Russ from abusing this class... ;-) - - * ace/OS.cpp (invoke): We were incorrectly deleting this and then - using one of its fields! Thanks to the ever-vigilant Russ - Noseworthy for reporting this. - - * ace/Log_Record.cpp (print): Added VERBOSE_LITE support to the - code so we don't spew out quite so much information. - - * ace/Log_Msg.cpp (log): Replaced all calls to - ACE_Log_Record::print() so that they pass the - ACE_Log_Msg::flags_ parameter. - - * ace/Log_Record.h: Changed the 'int verbose' parameter to 'u_long - verbose_flag' parameter so that we can pass in the - ACE_Log_Msg::flags_ and check to see what they are enabled with! - - * tests/test_config.h: Changed VERBOSE to VERBOSE_LITE so we don't - have quite so much junk printed out for the tests! - - * ace/Log_{Priority,Record}: Added a new flag called VERBOSE_LITE - that isn't quite as verbose as VERBOSE (it only prints things - that can change between calls to the ACE_Log_Msg::log() method). - In addition, also changed the ACE_Log_Record::print() method so - it prints the string format for the ACE_Log_Priority types. - This is a lot more legible than printing the numbers. - - * ace: Removed all uses of ACE_HAS_WILDCARD_BIND. This is now the - default behavior. If there's some weird platform that DOESN'T - have this behavior, we'll deal with that by setting the - ACE_LACKS_WILDCARD_BIND flag. - - * ace/OS.cpp (invoke): Removed the (void *) cast on delete this. - It wasn't necessary. Thanks to Steve Huston and David Levine - for reporting this. - -Mon Apr 13 19:12:49 1998 Nanbor Wang - - * ace/DEV_Connector.i (ACE_DEV_Connector): - * ace/Asynch_IO.cpp (accept,addresses): UNICODE changes. - -Mon Apr 13 18:05:26 1998 Steve Huston - - * tests/Thread_Manager_Test.cpp: Disabled the suspend/resume action - for Pthreads platforms. - -Mon Apr 13 10:18:59 1998 David L. Levine - - * ace/High_Res_Timer.i (hrtime_to_tv): in tv.usec calculation, - moved the cast to long to after the division by global_scale_factor_. - This is necessary for compatibility with ACE_U_LongLong. - - * bin/make_release (get_versions): use $KIT instead of hard-coded - ACE, so that it works with TAO. (tag): translate dots to - underscores, because CVS doesn't allow dots in tags. Thanks to - Doug and Hans Rohnert for reporting these. - -Sun Apr 12 21:11:53 1998 Nanbor Wang - - * ace/OS.h: Prevent using ACE_HAS_MOSTLY_UNICODE_APIS without UNICODE. - - * ace/OS.cpp (thr_create): - * ace/Thread_Manager.cpp (spawn_i): Removed directive - ACE_NO_THREAD_ADAPTER and its related code. - -Sat Apr 11 22:20:51 1998 Nanbor Wang - - * tests/Thread_Manager_Test.cpp (main): Don't check execute result - of kill_grp statement if we are running on Win32 platforms. - thr_kill is not supported there. - -Sat Apr 11 20:00:12 1998 Douglas C. Schmidt - - * ACE version 4.4.39, released Sat Apr 11 20:00:12 1998. - -Sat Apr 11 19:58:56 1998 Douglas C. Schmidt - - * Nanbor removed a bunch of *.MAK files, which were quite large - and taking up lots of space. - -Sat Apr 11 18:58:24 1998 Steve Huston - - * ace/INET_Addr.cpp: Fixed missing paren. - - * netsvcs/servers/servers4.mdp: Added ..\lib to include directories - for Release build. - -Sat Apr 11 13:28:19 1998 Douglas C. Schmidt - - * ACE version 4.4.38, released Sat Apr 11 13:28:19 1998. - -Sat Apr 11 12:46:08 1998 Douglas C. Schmidt - - * ace/config-mvs.h: Added some ACE_SIZEOF_* macros for MVS. - Thanks to Chuck Gehr for reporting - this. - - * ace/INET_Addr.cpp: Added a newline and a better explanation of - what went wrong if an error occurs. Thanks to Luca for - reporting this. - -Fri Apr 10 02:42:35 1998 Nanbor Wang - - * ace/Log_Msg.{h,cpp} (log_hexdump): - * ace/ACE.{h,cpp} (format_hexdump): The buffer to be hex-dumped should - always be of type (const char *) no matter we have UNICODE - system strings or not. - - * ace/OS.{h,cpp} (ACE_CE_Bridge): This new class bridges - a text-based ACE programs with a default window that prints out - the default ACE_Log_Msg output. - - CE always uses non-static object manager and we replace the - original main function with a well know entry that the main - window program can call back from to invoke the ACE program in a - separate thread. - - * ace/Log_Record.{h,cpp}: Added support for passing strings as - windows messages. - - * ace/Log_Msg.cpp (log): Specialized CE support. - - * windoezCE: The template windows program that receives ACE - messages. See CE-Status or README file for more info. - -Fri Apr 10 00:41:23 1998 Douglas C. Schmidt - - * tests/Reactor_Exception_Test: Tidied the test up a bit. Thanks - to Bob Laferriere for suggesting - this. - - * tests/test_config.h: Enabled ACE_Log_Msg::VERBOSE since it gives - more information that can be useful for debugging. - -Fri Apr 10 00:04:03 1998 Irfan Pyarali - - * ace/Proactor.cpp (post_completion): Added a new method to the - Proactor. It can be used to post a result to the completion port - of the Proactor. If errors occur, the result will be deleted by - this method. If successful, the result will be deleted by the - Proactor when the result is removed from the completion port. - Therefore, the result should have been dynamically allocated and - should be orphaned by the user once this method is called. - - Changed the timer mechanism to use this new method rather than - posting to the completion port directly. - - Thanks to Jason Katz for the - improvements. - -Thu Apr 9 17:31:47 1998 Douglas C. Schmidt - - * Updated all the Makefile dependencies and also added the - appropriate CVS strings to all Makefiles. - - * examples/IPC_SAP/SOCK_SAP: Improved both the CPP-unserver.cpp - and CPP-inserver.cpp programs so they work identically wrt - concurrency and logic. - - * ace/LSOCK_Stream.cpp: Fixed the get_remote_addr() and - get_local_addr() methods to work correctly. Apparently, - getpeername() doesn't work appropriately for UNIX domain - sockets, so we simply have both methods call getsockname(). - Thanks to Chuck Gehr for pointing out this problem. - - * ace/FILE_IO.cpp (get_local_addr): The RHS has an additional - field that is the FILE name, which did not get copied. Added an - ACE_dynamic_cast() to do the right thing here. Thanks to Ganesh - Pai for reporting this. - - * ace/Malloc*: Factored out all the code in ACE_Static_Allocator - into a new non-templatized base class called - ACE_Static_Base_Allocator so that we don't trigger multiply - defined symbols when we use this in TAO. Thanks to Carlos for - this very insightful trick! - - * tests/Thread_Manager_Test.cpp (main): Added ACE_ASSERT - statements so that we bailout if things go awry. Thanks to - Robert J. Laferriere for reporting - this. - -Thu Apr 09 18:06:53 1998 Nanbor Wang - - * ace/High_Res_Timer.i (hrtime_to_tv): Cast the parameter for usec - to long. It can be fixed because of Darrell's vigilance. - -Thu Apr 09 17:55:21 1998 Steve Huston - - * ace/config-hpux-10.x.h, config-hpux11.h, config-aix-4.2.x.h: - Added ACE_HAS_WILDCARD_BIND. - -Thu Apr 09 16:43:26 1998 Irfan Pyarali - - * ace/ACE.*: Changed *_version() functions to be non-inlined. - After this change, inclusion of ace/Version.h can be moved into - ACE.cpp. This change helps as all of ACE doesn't have to be - compiled after Version.h changes (Version.h changes every time a - new beta is produced). - -Thu Apr 9 12:27:23 1998 Carlos O'Ryan - - * tests/Hash_Map_Manager_Test.cpp: POOL_SIZE was simple "const - POOL_SIZE" I changed that to "const int POOL_SIZE". Added - missing template instantiation for Static_Allocator. - -Thu Apr 09 10:50:18 1998 Nanbor Wang - - * ace/WFMO_Reactor.cpp (dump): Fixed signed/unsigned mismatched - warnings on NT. Thanks to Darrell for noticing the bug. - -Thu Apr 9 09:37:08 1998 Douglas C. Schmidt - - * ace/Malloc_T: Moved the ACE_Static_Allocator::dump() method into - the Malloc_T.cpp file so we'd get a vtable... Thanks to David - Levine for reporting this. - - * tests/Hash_Map_Manager_Test.cpp (run_test): Added a return - value to make G++ and David Levine happy ;-). - -Thu Apr 09 10:50:18 1998 Nanbor Wang - - * ace/WFMO_Reactor.cpp (dump): Fixed signed/unsigned mismatched - warnings on NT. Thanks to Darrell for noticing the bug. - -Wed Apr 08 17:29:01 1998 Irfan Pyarali - - * ace/SOCK_Acceptor.cpp (open): There was a boo-boo in open() as - we were only calling bind_port() and ignoring the port supplied - by the user. Call bind_port only if port == 0. - -Wed Apr 8 01:09:52 1998 Douglas C. Schmidt - - * ace/Malloc_T: Added a new ACE_Static_Allocator class, which is - highly optimized for allocations where (1) all the memory size - is known in advance and (2) no deletions are done. This class - will ultimately be used in TAO to improve it's startup - performance for operation tables initialization. - - * tests/Hash_Map_Manager_Test.cpp: Enhanced the test so that it - uses the new ACE_Static_Allocator feature. - - * ace/OS: Added support for the rename() method. Thanks to Ganesh - Pai for suggesting this. - - * ace/config-win32-common.h, - config-sunos*.h: - config-irix-6*.h: - Enable the ACE_HAS_WILDCARD_BIND macro. - - * ace/ACE.cpp: Modified the bind_port() method so that it is more - efficient on platforms that interpret a 0 port to bind() as a - request for the kernel to select the port. Thanks to Chris - Cleeland for pointing this out. - - * ace/Hash_Map_Manager: Made a bunch of minor changes to fix some - subtle deadlocks with intra-class locking. - - * tests/Map_Manager_Test.cpp: Restructured the tests so that we - don't keep recomputing end() and rend() of the map in each loop - iteration! - -Wed Apr 08 10:02:16 1998 David L. Levine - - * bin/make_release: added this script that creates ACE and/or - TAO releases. - - * Makefile: added support for make_release. See comments at - the top of the Makefile. The old release mechanism has - been retained; to use it: make release-old or - make releaseall-old. - -Wed Apr 08 00:37:33 1998 Irfan Pyarali - - * ace/ACE.cpp (bind_port): This call was not flexible enough as it - always assumed that the user wanted INADDR_ANY. Added an extra - parameter to this function where the user can pass in the addr - that she is interested in. This extra parameter defaults to - INADDR_ANY, so no existing should break. - - * ace/SOCK_Acceptor.cpp (open): Not enough information was being - passed to the new ACE::bind_port() call. Changed open() so that - the sin_addr part of the address is passed along to - ACE::bind_port(). - -Tue Apr 07 15:25:08 1998 David L. Levine - - * ace/config-irix*.h: fixed determination of ACE_SIZEOF_LONG_DOUBLE, - depending on system release and ABI. Thanks to Robert J. - Laferriere for figuring it all out. - -Mon Apr 06 01:29:35 1998 Nanbor Wang - - * ace/ace_ce_dll.dsp: Update project files. Rearrange dll filenames a - bit so that it's eaier to have various ACE libraries for various - CE supported CPUs. Files for every supported CPU are generated - under CPU specific directory as follow: - - CPU Directory Name - Sh3 series ace/WCE/SH aced.{lib,dll} ace.{lib,dll} - MIPS series ace/WCE/MIPS aced.{lib,dll} ace.{lib,dll} - x86 emulation ace/WCE/x86em aced.{lib,dll} ace.{lib,dll} - - * ace/config-win32-common.h: Prevent CE from using wsock32.lib. - -Sun Apr 05 16:44:31 1998 Nanbor Wang - - * ace/OS.h (ASYS_ONLY_MULTIBYTE_STRING): New macro. Used to - activate wchar string to char string conversion only under CE, - under other cases, the argument to this macro is treated as - a regular char string. - - * ace/INET_Addr.cpp (set): Changed to use - ASYS_ONLY_MULTIBYTE_STRING. This has gotten out of control - now. I need to think of a better name for these macros. - -Tue Apr 07 09:30:28 1998 David L. Levine - - * include/makeinclude/platform_lynxos.GNU: set up PATH when - cross-compiling. With this change, users don't need to - do anything special to their platform_macros.GNU or - environment to cross-compile for LynxOS (assuming that - the default platform_lynxos.GNU configuration is suitable). - -Mon Apr 06 16:28:32 1998 Steve Huston - - * examples/Service_Configurator/IPC-tests/server/svc.conf: Corrected - library name to load tests from. Thanks to Sandro Doro - for noticing there was a problem here. - -Sun Apr 05 10:20:26 1998 David L. Levine - - * include/makeinclude/platform_lynxos.GNU: only define - CROSS-COMPILE if not building on LynxOS. - - * ace/OS.h: fixed ACE_CAST_CONST definition with Sun CC. - -Sun Apr 05 00:20:52 1998 Nanbor Wang - - * ace/ACE.h: Moved "#include "ace/OS.h" out of _ACE_H_ block to - resolve the circular inclusion that occured when building ACE - Unicode Release version. - -Sat Apr 04 21:19:32 1998 Douglas C. Schmidt - - * ACE version 4.4.37, released Sat Apr 04 21:19:32 1998. - -Sat Apr 04 19:41:03 1998 Nanbor Wang - - * ace/OS.cpp (thr_exit): Forgot to access creation flags thru - the access function. - -Sat Apr 04 14:01:53 1998 Steve Huston - - * performance-tests/Makefile: Put UDP back in dir list. - -Sat Apr 04 07:45:33 1998 David L. Levine - - * ace/Basic_Types.h,config-sunos4*.h,README: don't use - u_longlong_t on Suns if ACE_LACKS_U_LONGLONG_T is defined. - Define ACE_LACKS_U_LONGLONG_T in all SunOS4 config files. - Thanks to John Lindal for reporting - this. - -Sat Apr 4 02:06:57 1998 Nanbor Wang - - * ace/OS.cpp (invoke,thr_exit): (*Win32*) We also need to consider - threads that are not spawned by ACE_Thread_Manager by checking - the validity of cached ACE_Thread_Descriptor. In any rate, - please avoid using thread functions in ACE_Thread::* and - ACE_OS::thr_* directly. - -Sat Apr 4 01:03:17 1998 Alexander Babu Arulanthu - - * ace/Map_Manager.cpp (map): Added map method for the iterator interface. - -Sat Apr 4 00:55:30 1998 Douglas C. Schmidt - - * netsvcs/clients/Naming/{Client,Dump_Restore}/Makefile: - Moved all program source names to PSRC, not SRC, for - 'make depend'. - -Fri Apr 3 21:18:51 1998 Douglas C. Schmidt - - * ace/OS.cpp (cleanup): Moved ACE_Cleanup::cleanup() back into the - *.cpp file so that we have at least one non-inline virtual - function. - - * ace/OS (cleanup): Created a dummy ACE_Cleanup constructor since - the lack of this may be causing a bug with CC and the linker for - TAO's IDL compiler. Also moved the constructor and destructor of - ACE_Cleanup into the OS.i file and made them inline. We'll fix - this bug yet!!!! - -Fri Apr 03 18:45:35 1998 Steve Huston - - * apps/JAWS/clients/Blobby/Makefile - * apps/JAWS/clients/Caching/Makefile - * examples/ASX/Event_Server/Event_Server/Makefile - * examples/ASX/UPIPE_Event_Server/Makefile - * examples/Logger/simple-server/Makefile - * examples/Mem_Map/IO-tests/Makefile - * examples/Reactor/Multicast/Makefile - * examples/Service_Configurator/Misc/Makefile - * examples/Shared_Malloc/Makefile - * performance-tests/Synch-Benchmarks/Makefile - Adjusted for corresponding changes to rules.bin.GNU and/or - rules.lib.GNU, below. - - * examples/Connection/non_blocking/Makefile - * examples/Service_Configurator/IPC-tests/server/Makefile - * examples/Timer_Queue/Makefile - * performance-tests/Misc/Makefile - Moved all program source names to PSRC, not SRC, for - 'make depend'. - - * performance-tests/Makefile: Removed UDP from list of dirs to build. - - * include/makeinclude/rules.bin.GNU: Set OBJEXT and VOBJS from the - SRC files in the Makefile (LSRC sets VLOBJS in rules.lib.GNU; - SRC sets VOBJS in rules.bin.GNU). - - * include/makeinclude/rules.local.GNU: depend rule will also operate - on $(PSRC) in addition to $(SRC). PSRC is new - if you have more - than one program to build in a makefile, set PSRC to the source - files for make depend. - - * include/makeinclude/rules.lib.GNU: Use VLOBJS for archive lib object - files; using VOBJS gets it confused with VOBJS in rules.bin.GNU and - makes it very difficult to build lib and exe from same Makefile. - -Fri Apr 3 10:40:10 1998 Nanbor Wang - - * ace/OS.cpp (invoke): We were using AfxGetThread to determine - whether a thread was created with AfxBeginThread or - _beginthreadex. This seemed to cause some subtle problem with - MSVC 4.2. Since we always cached the Thread_Descriptor in TSS - now, we can just check how a thread was created and use the - appropriate thread exiting method. Thanks to Detlef Becker - for tracing down this obscure - bug. - - * ace/Thread_Manager.{h,i} (flags): Added this new access function - into ACE_Thread_Descriptor to get the creation flags for a - thread. - -Fri Apr 03 10:01:32 1998 Steve Huston - - * ace/ACE.cpp (handle_timed_complete): On AIX, always check a - completed non-blocking connect() because AIX sets only the write - handle from select regardless of whether the connect succeeded - or not. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: Removed - the #include - this is taken care of via ace/OS.h. - Having the #include in Dump_Restore.cpp caused some very weird - compile errors on DG/UX. - - * netsvcs/lib/Server_Logging_Handler.cpp: Fixed template instantiations - for Base_Optimizer, non-static logging cases. - -Fri Apr 03 09:16:24 1998 David L. Levine - - * ace/OS.cpp (ACE_TSS_Info::key_in_use): return true if - thread_count_ > 0, not if it is != -1. Thanks to Chris - Lahey for finding and reporting this. - - * ace/OS.i (thr_yield): on VxWorks, changed argument of - ::taskDelay () from 0 to 1. With an argument of 0, - ::taskDelay () doesn't appear to yield the current thread. - - * tests/run_tests.vxworks: Reactor_Notify_Test is OK on - VxWorks now. - - * ace/OS.h,config-sunos5.5-sunc++-4.x.h: added ACE_CAST_CONST, - so that we can work around broken cast constness requirements - with Sun CC 4.2. It requires, for example, that a reinterpret - cast to a local pointer variable in a const member function be - const. Wrong. - - * ace/Basic_Types.i (operator/ and %): fixed comments: former - instead of latter. - -Thu Apr 02 16:23:12 1998 Irfan Pyarali - - * ace/WFMO_Reactor.i (dump): Also changed the method from HANDLE - to ACE_HANDLE. - -Thu Apr 2 15:36:20 1998 Douglas C. Schmidt - - * ace: Added - - #define ACE_HAS_STL_QUEUE_CONFLICT - - to the config files which had ACE_HAS_STL_MAP_CONFLICT defined, - i.e., - config-sunos5.5-g++.h - config-sunos5.5-sunc++-4.x.h - - Thanks to Russ Noseworthy for - reporting this. - -Thu Apr 2 15:14:35 1998 Sumedh Mungee - - * ace/WFMO_Reactor.h (dump): Renamed HANDLE to ACE_HANDLE. - -Thu Apr 02 14:23:11 1998 David L. Levine - - * tests/Reactor_Notify_Test.cpp (Supplier_Task::handle_output): - added a thr_yield () so that the Supplier_Task always gets a - chance to run. - - * tests/run_tests.sh: Reactor_Notify_Test is OK on Chorus now. - -Wed Apr 01 18:59:42 1998 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (dump): Added dump() methods. - - * ace/Msg_WFMO_Reactor.cpp (wait_for_multiple_events): Reverted - Nanbor's change. The flag is properly set in - ACE_Msg_WFMO_Reactor::alertable_handle_events(). - -Wed Apr 1 15:40:01 1998 Douglas C. Schmidt - - * ace: Made the WMFO_Reactor and Select_Reactor's dump() methods - virtual to underscore the fact that the Reactor_Impl's new - dump() method is also virtual. - - * ace/OS.h: Changed ACE_HAS_STL_MAP_CONFLICT to - ACE_HAS_STL_QUEUE_CONFLICT for the appropriate cases in ACE. - Thanks to Russ Noseworthy for - reporting this. - - * ace/CORBA_Handler.cpp (ACE_CORBA_Handler): The reference_count_ - data member wasn't being initialized correctly. Thanks to - Mahesh Chandwani for reporting this. - - * ace: Renamed config-sunos5.5-sunc++-4.x-orbix.h to - config-sunos5.x-sunc++-4.x-orbix.h since this config file works - with SunOS 5.5 and 5.6. Thanks to Mahesh Chandwani - for reporting this. - -Wed Apr 01 16:28:30 1998 David L. Levine - - * ace/Reactor.{h,cpp},Reactor_Impl.h (dump): added dump () - method, which calls the (existing) dump () in the reactor - implementation. - - * ace/High_Res_Timer.* (hrtime_to_tv): fixed conversion of - ACE_hrtime_t to ACE_Time_Value to be compatible with - ACE_U_LongLong. - -Wed Apr 01 09:32:27 1998 Nanbor Wang - - * ace/Msg_WFMO_Reactor.cpp (wait_for_multiple_events): Should not - wait for all objects in this function. - -Tue Mar 31 15:27:25 1998 Steve Huston - - * apps/JAWS/server/JAWS_Pipeline_Handler.cpp: Defined 'status' in - the put() function. - - * ace/config-dgux-4.x-ghs.h: Removed settings for ACE_SIZEOF_LONG_LONG - since the compiler doesn't really support a long long that ACE - is looking for (64-bit). Use the ACE-supplied ACE_ULongLong type. - -Tue Mar 31 10:46:23 1998 Nanbor Wang - - * ace/Msg_WFMO_Reactor.cpp: Changed to use - MsgWaitForMultipleObjects if we are not under NT. Also in - MsgWaitForMultipleObjectsEx, we should use NT defined flags - instead of the boolean "alertable" directly. - -Tue Mar 31 07:22:09 1998 David L. Levine - - * ace/OS.i (cond_timedwait): restored ACE_HAS_DCE_DRAFT4_THREADS - behavior to use absolute time. Special-case only on LynxOS, - which requires a relative time. Thanks to Steve Coy - for reporting this on HP-UX. - - * tests/Thread_Manager_Test.cpp (worker): cache the thread's - Signal_Catcher on entry. That way, we don't have to - dereference it in the worker's loop. It seems that a worker - thread can continue to run after main exits (and cleans up - TSS). That shouldn't happen, but it looks like it does on - Linux, LynxOS, and Digital Unix. Thanks to James CE Johnson - for verifying that the fix works on Linux/ - Intel and DU 4.0. - - * examples/Threads/task_five.cpp (main): wrapped return statement - at end with ACE_NOTREACHED. This will prevent compiler warnings - from Green Hills and DEC CXX, and maybe SGI cc. - -Fri Mar 27 23:04:08 1998 David L. Levine - - * ace/config-linux-common.h: added ACE_DEFAULT_MAX_SOCKET_BUFSIZ - 65535, because some Linux 2.1.x kernels fail setsockopts if - bigger than that. Thanks to Ravi Nagabhyru - for reporting that. Also changed hard-code ACE_PAGESIZE to - ACE_HAS_GETPAGESIZE, even though getpagesize () doesn't get - used. ACE_OS::getpagesize () uses sysconf on Linux. - - * performance-tests/UDP/udp_test.cpp (main): getopt.optarg instead - of optarg, for -f option. - - * ace/IPC_SAP.cpp (enable,disable): removed the ACE_NOTREACHED - wrappers around the return statements. Seems that some versions - of Green Hills complain about an unreachable statement, but - we'll live with it. This change is only visible with SGI, - DEC CXX, and Green Hills. - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: added missing - close paren after ppc conditional. Thanks to Brian Mendel for - reporting this. - -Fri Mar 27 16:47:26 1998 Steve Huston - - * tests/tests.mdp: Made settings for Env_Value_Test consistent with - other tests, so that run_tests.bat can find it. - - * netsvcs/servers/servers4.mdp: Added ..\lib to Include directories - when building in Release mode. - -Fri Mar 27 13:55:13 1998 Nanbor Wang - - * ace/High_Res_Timer.i (gettime): ACE_OS::gettimeofday doesn't - take any argument. - -Fri Mar 27 09:50:52 1998 Steve Huston - - * ace/Strategies_T.cpp: Added #include "ace/Service_Repository.h" for - compile on HP. Thanks to Steve Coy for this. - -Fri Mar 27 09:21:21 1998 David L. Levine - - * tests/test_config.h: with Green Hills on VxWorks, rename - main to ace_main for compatibility with run_tests.vxworks. - - * ace/OS.{h,i},High_Res_Timer.* (gethrtime): added an optional - argument to allow specifying start/increment/stop to a timer. - It is currently only used on Chorus. On Chorus, using - the default ACE_HRTIMER_GETTIME will use clock_gettime () - instead of sysBench (). sysBench () disables interrupts, - so it must be used with care. - -Thu Mar 26 21:18:57 1998 David L. Levine - - * ace/Basic_Types.h,config-g++-common.h,config-freebsd*.h, - config-netbsd.h: moved setting of ACE_SIZEOF_LONG_DOUBLE to 12 - from Basic_Types.h to config-g++-common.h and the FreeBSD/NetBSD - config files. - -Thu Mar 26 20:53:30 1998 Nanbor Wang - - * ace/Containers.{h,i,cpp}: Changed the template parameter name - to to avoid namespace polution. Thank to John - Mulhern <9107@MN3.LAWSON.lawson.com> for suggestion this. - -Thu Mar 26 17:23:38 1998 Douglas C. Schmidt - - * ACE version 4.4.36, released Thu Mar 26 17:23:38 1998. - -Thu Mar 26 12:54:57 1998 David L. Levine - - * ace/IPC_SAP.cpp (enable,disable): wrapped return statement - at end with ACE_NOTREACHED. - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: added support - for x86 targets. - - * ace/Basic_Types.h: sizeof (long double) is 8 on ghs/VxWorks/i386, - not 12. - -Wed Mar 25 10:10:04 1998 David L. Levine - - * include/makeinclude/platform_{chorus,vxworks5.x}_ghs.GNU: - change OFLAGS to OCFLAGS. - - * include/makeinclude/platform_chorus_ghs.GNU: if debug is enabled, - link with crth_d.s.o instead of crth.s.o. - - * ace/config-g++common.h: don't #define - ACE_HAS_TEMPLATE_SPECIALIZATION with egcs 2.91. Thanks to - Sudish Joseph and - Loren Rittle for reporting this - apparent bug with egcs 2.91. (egcs 2.90 builds ACE cleanly - with ACE_HAS_TEMPLATE_SPECIALIZATION.) - - * include/makeinclude/platform_vxworks5.x_g++.GNU: add VxWorks - host bin directory to PATH if its not already there. - -Tue Mar 24 19:48:44 1998 Irfan Pyarali - - * ace/Proactor.cpp (timeout): Changed comparison from || to - &&. Thanks to Jason Katz for reporting - this. - -Tue Mar 24 18:14:18 1998 Steve Huston - - * ace/Env_Value_T.h: added #include "ace/OS.h" to get the definition - for ACE_static_cast - AIX xlC needs it for auto template generation. - -Tue Mar 24 09:00:36 1998 Carlos O'Ryan - - * bin/auto_compile: - Missing newline after the "DISABLED" message. - -Tue Mar 24 07:38:44 1998 David L. Levine - - * ace/config-sunos5.5-g++.h: replaced ACE_PAGE_SIZE with - ACE_HAS_GETPAGESIZE, and added ACE_HAS_STL_MAP_CONFLICT. - Thanks to Loren Rittle for reporting - these. - -Mon Mar 23 12:06:30 1998 David L. Levine - - * performance_tests/UDP/udp_test.cpp: made use of the Reactor - optional. With this change, the performance is comparable - to the original C version. - - * ace/OS.{h,i} (wslen,wscpy): added these, and WChar typedef, - for TAO. - - * include/makeinclude/platform_chorus_ghs.GNU: moved directories - to /project/doc/mvme/. - - * ace/config-vxworks5.x.h: protected #define of ACE_MAIN so that - it can be #defined on the command line. - -Mon Mar 23 11:38:43 1998 Nanbor Wang - - * ace/OS.h (MAXPATHLEN): Guard the MAXPATHLEN definition with - #ifndef in case if has already been defined. Thanks to "Patrick - J. McNerthney" for reporting this. - -Mon Mar 23 03:18:50 1998 Douglas C. Schmidt - - * ACE version 4.4.35, released Mon Mar 23 03:18:50 1998. - -Mon Mar 23 00:03:37 1998 Irfan Pyarali - - * examples/Reactor/ReactorEx/test_abandoned.cpp: Tests the - WFMO_Reactor's ability to handle abandoned mutexes. - - * examples/Reactor/ReactorEx/test_apc.cpp: Tests the - WFMO_Reactor's ability to handle regular APC notifications. - -Sun Mar 22 23:47:00 1998 Irfan Pyarali - - * ace/WFMO_Reactor.cpp: Added code to the Reactor to make it more - resilient when the wait() function returns WAIT_IO_COMPLETION - and WAIT_ABANDONED. - - ok_to_wait: Keep waiting if wait() returns WAIT_IO_COMPLETION. - - dispatch: Return if wait() returns - WAIT_IO_COMPLETION. - - dispatch_handles: Added code to correctly handle WAIT_ABANDONED - and to correctly figure out the index of the handler to be - dispatched. - - Thanks to Beskrovny Evgeny (evgeny_beskrovny@icomverse.com) of - Comverse Network Systems for pointing out the problem with - WAIT_IO_COMPLETION. - - * ace/Reactor.cpp (run_alertable_event_loop): Added new function - that runs the Reactor using alertable_handle_events() instead of - handle_events(). - -Sat Mar 21 19:58:42 1998 Nanbor Wang - - * ace/OS.i (flock_destroy): lock->lockname_ should be cast to - LPTSTR instead of char*. Thanks to Goran Lowkrantz - for reporting this. - - * examples/Threads/task_five.cpp: Allow users to set thread stack - size from command lines. If a user doesn't give one, it will be - set to 8k on non-Windows platforms. - -Fri Mar 20 22:07:15 1998 Nanbor Wang - - * ace/ACE_Library.{mak,mdp}: Added Msg_WFMO_Reactor. - - * ace/Asynch_IO.cpp (cancel): Added version check because MSVC 4.2 - doesn't support CancelIo. - -Fri Mar 20 21:46:16 1998 Douglas C. Schmidt - - * ACE version 4.4.34, released Fri Mar 20 21:46:16 1998. - -Fri Mar 20 20:53:27 1998 Nanbor Wang - - * ace/Parse_Node.cpp: Fixed typos. - -Fri Mar 20 14:18:53 1998 Douglas C. Schmidt - - * performance-tests/UDP/udp_test.cpp: Completed the ACE'ification - of this test. - -Fri Mar 20 09:31:22 1998 David L. Levine - - * ace/OS.h: with ACE_LACKS_WCHAR_T, changed wchar_t typedef - from long to ACE_UINT32 to ensure that it is 4 bytes on - any platform. - - * performance-tests/UDP/udp_test.cpp: added this test, which - provides UDP performance statistics. Thanks to Fred Kuhns - for contributing the test. - -Thu Mar 19 10:15:27 1998 Steve Huston - - * ace/OS.i: Changed the dynamic library load/unload code so that - on HP-UX, g++ does the same thing as aC++ (not like HP C++), using - and shl_(un)load. Thanks to Kirill Rybaltchenko - for this change. - -Thu Mar 19 10:13:35 1998 David L. Levine - - * performance-tests/Misc/preempt.cpp: 1) Added -f option to fork - instead of spawning new threads. 2) Added -l option for - specifying number of iterations of low priority thread/process. - 3) On Solaris, print LWP ID. - -Thu Mar 19 02:47:42 1998 Nanbor Wang - - * ace/ace_dll.dsp: Link against user32.lib for all configurations - for we now use Msg_WFMO and related APIs in ACE. (We should do - the same to ace_lib.dsp.) - - * ace/config-WinCE.h: Added dummy definition of stdin and stdout. - They don't have any real effect. - - * ace/ACE.{h,cpp} (ldopen,ldfind): Made these functions visible - under CE. Modified them to work under CE. - - * ace/OS.cpp: Added scope name to day_of_week_name and - month_name. They are used only on CE. - - * ace/OS.{h,i}: Added some dummy C methods for CE. Yacc and Lex - generated codes use these functions, although we don't really - use them in ACE. - - * ace/OS.i (exit): Added implementation of ACE_OS::exit under CE. Since - there's no ExitProcess available, I use TerminateProcess, which - is not exactly the same as using ExitProcess but that's the - closest thing I can think of. - (open): Made the char version unsupported under CE. - (fread,fwrite,...): Added dummy C methods definition for CE. - - * ace/Parse_Node.cpp: Regular CE stuff. There's a boundary - of char/wchar functions somewhere in this file. Most Svc_Conf - stuff uses char functions but the information gets converted to - wchar later. - - * ace/Service_Config.{h,i}: Added char version function for - Service_Type under CE. Service_Type (and its subclasses) are - the boundary of char/wchar functions. - - * ace/Service_Object.{h,i}: Added the chname method which always - returns char value of a Service_Object under all platforms. - - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: - * ace/Object_Manager.{cpp}: Regular CE stuff. - - * ace/Svc_Conf_l.cpp: Regular CE stuff. Haven't figure out a way - to modify this from Svc_Conf.l yet. - - * ace/Service_Config.cpp - * ace/Object_Manager.{cpp}: Ifdef'ed inclusion of Naming Context - related header files out. Naming context uses Registry which - uses iostream and STL, both are not available on CE (yet?). - - * ace/WFMO_Reactor.{h,cpp}: - * ace/Proactor.{h,i,cpp}: - * ace/Asynch_IO.{h,cpp}: Ifdef'ed the body so they are not visible - under CE. CE doesn't have asynchronous IO. - -Wed Mar 18 21:30:39 1998 Douglas C. Schmidt - - * ACE version 4.4.33, released Wed Mar 18 21:30:39 1998. - -Wed Mar 18 16:36:17 1998 Douglas C. Schmidt - - * Makefile (releaseall): There is no more TAO.tar.gz. There are - now two tar files, ACE.tar.gz and ACE+TAO.tar.gz. - ACE+TAO.tar.gz contains ALL of ACE. In particular, it will - always have the same version number and same ACE contents as - ACE.tar.gz. The intent here is that people who just want to use - ACE will use ACE.tar.gz and people who want to use ACE and TAO - will use ACE+TAO.tar.gz. Thanks to David Levine and Irfan for - helping with this. - -Wed Mar 18 15:50:30 1998 Nanbor Wang - - * ace/Log_Msg.cpp (ACE_Log_Msg): Added codes to grab - ACE_Log_Msg_Manager's lock while updating the instance_count_. - There was a race condition without the change. Thanks to Detlef - Becker's thread creation stress - test to reveal the bug. - -Tue Mar 17 17:20:00 1998 Nanbor Wang - - * examples/Threads/test.dsw: - * examples/Threads/task_five.cpp: - * examples/Threads/task_five.dsp: - * examples/Threads/Makefile: Added a new ACE_Task testing - program. Thanks to Detlef Becker - for providing the source. - -Wed Mar 18 11:00:11 1998 Alexander Babu Arulanthu - - * ace/Hash_Map_Manager.cpp (map): This method has been added to - the ACE_Hash_Map_Iterator_Base class. - -Wed Mar 18 09:25:30 1998 Chris Gill - - * ace/ace.dsw: added user32.lib to link for dynamic library on NT - for all builds. - -Wed Mar 18 09:22:13 1998 David L. Levine - - * ace/Containers.cpp,Hash_Map_Manager.cpp,Map_Manager.cpp - (operator *): initialize retv to 0 to avoid warning about - using it before setting its value. - - * tests/Thread_Mutex_Test.cpp (test): added no-op statement to - suppress GHS warning about unused local variable "mutex". - - * tests/Priority_Buffer_Test.cpp (consumer): added no-op statement - to suppress GHS warning about unused local variable "cur_priority". - - * ace/README: removed ACE_HAS_BOOL. It was unused. - - * performance-tests/Misc/basic_func.{h,cpp},basic_perf.cpp: - With MSVC 5.0, do something in the empty iteration because - otherwise it gets completely optimized away. Thanks to - Alexander Ovsiankin for providing - this fix. - -Tue Mar 17 23:53:56 1998 Douglas C. Schmidt - - * examples/Threads/task_five.cpp (main): Reformatted Detlef's new - torture test so that it conforms to ACE programming conventions. - -Tue Mar 17 23:22:20 1998 Irfan Pyarali - - * ace/Reactor.cpp (ACE_Reactor): If - ACE_USE_MSG_WFMO_REACTOR_FOR_REACTOR_IMPL is defined, use - ACE_Msg_WFMO_Reactor for ACE_Reactor::instance(). - - * examples/Reactor/ReactorEx/test_window_messages.cpp: Tests - Msg_WFMO_Reactor's ability to handle regular events and window - messages. - -Tue Mar 17 21:41:57 1998 David L. Levine - - * examples/Threads/task_five.cpp (svc): use ACE_OS::sleepq - instead of ::Sleep. (main): declare "ii" outside of the - first loop because it is used in other loops. - -Tue Mar 17 16:02:26 1998 Irfan Pyarali - - * ace/WFMO_Reactor: Changes were made to WFMO_Reactor to make it - easier to extend it to handle window messages: - - - dispatch_handler() checks if there are window messages that - need to be dispatched if the matches . - If there are, they are dispatched by calling - dispatch_window_messages(). - - - dispatch_window_messages() is a noop for WFMO_Reactor. - - - Checking the return values from Wait*() functions was changed - as (WAIT_OBJECT_0 + nCount) is now a valid index. - - - Checking for remaining handles was abstracted into - poll_remaining_handles(). - - - Expiring of timer was abstracted out into expire_timers(). - Only the owner thread expires the timers. - - - calculate_timeout() was removed from - wait_for_multiple_events(). - - * ace/Msg_WFMO_Reactor: A new Reactor that specializes the - WFMO_Reactor. WFMO_Reactor uses WaitForMultipleObjects while - Msg_WFMO_Reactor uses MsgWaitForMultipleObjects. This allows - the Msg_WFMO_Reactor to react to Windows and COM/DCOM messages - in addition to the regular WFMO_Reactor events. - - Thanks to Beskrovny Evgeny (evgeny_beskrovny@icomverse.com) of - Comverse Network Systems for contributing this to ACE. - -Tue Mar 17 13:15:11 1998 Douglas C. Schmidt - - * ace/Future.cpp: Added missing ACE_MT macros so that we now - compile correctly if we don't have threads. Thanks to Laura - Paterno for reporting this. - -Tue Mar 17 15:13:17 1998 David L. Levine - - * ace/High_Res_Timer.cpp (dump): fleshed out the implementation. - - * ace/Profile_Timer.{h,cpp} (dump): implemented for platforms - w/o ACE_HAS_PRUSAGE_T and ACE_HAS_GETRUSAGE. - - * ace/OS.i (gethrtime): with ACE_HAS_CLOCK_GETTIME, carefully - construct return value to avoid arithmetic overflow if - ACE_LACKS_LONGLONG_T. - -Mon Mar 16 22:18:07 1998 Douglas C. Schmidt - - * ace/IPC_SAP.cpp: Moved return values outside of the #ifdefs to - quiet warning messages with KAI C++. Thanks to Laura Paterno - for reporting this. - -Tue Mar 17 00:04:53 1998 Nanbor Wang - - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: Applied "Regular CE Tricks [TM]". - -Mon Mar 16 23:34:39 1998 Nanbor Wang - - * ace/README: - * ace/config-WinCE.h: Added ACE_LACKS_STRRCHR. - - * ace/OS.i: Added implementation of ACE_OS::strrchr () when - platforms don't provide one. - -Mon Mar 16 16:08:45 1998 David L. Levine - - * ace/High_Res_Timer.cpp: set global_scale_factor_ to 1000 with - ACE_HAS_CLOCK_GETTIME, because clock_gettime has nanosecond - resolution, and with PSOS. - - * ace/Profile_Timer.{h,cpp},tests/Handle_Set_Test.cpp: use units - of microseconds instead of seconds if ACE_LACKS_FLOATING_POINT. - - * ace/OS.i (hostname): on Chorus, try the HOST environment variable - if ::gethostname () returns an empty string. - -Mon Mar 16 13:04:58 1998 Seth Benjamin Widoff - - * ace/OS.h: - Extended the ACE_HAS_STL_MAP_CONFLICT to include 'queue' as well - as 'map.' 'queue' is defined in sys/stream.h, which is included in - OS.h by netinet/in.h and sys/timod.h. - -Mon Mar 16 00:22:40 1998 Nanbor Wang - - * CE-status: Updated CE port status. - - * ace/config-WinCE.h: Added macro definitions for EOF and BUFSIZ. - - * ace/OS.{h,i} (ace_isspace): Added both char and wchar version - functions. Notice that this can't be called isspace because - most compilers implement isspace as a macro. - (dlerror,dlsym): Added wchar version of these functions under CE. - - * ace/OS.cpp (fork_exec): Modified parameters passed to - CreateProcess under CE. - - * ace/ARGV.{h,i,cpp}: Unicodize this class under CE. Notice that - under CE, you won't be able to use environment variable - substitution since there's no environment variable at all. - - * ace/Reactor.cpp: Don't include Service_Config.h and - WFMO_Reactor.h under CE for now. Prevent Reactor from - reconfigure the service configurator. - - * ace/Task.cpp: Don't include Service_Config.h under CE for now. - Prevent Task_Base from reconfigure the service configurator. - - * ace/SString.cpp: Don't include Service_Config.h under CE for - now. - - * ace/Svc_Conf.h: - * ace/Shared_Object.{h,cpp}: - * ace/Service_Type.{h,i,cpp}: - * ace/Service_Repository.{h,cpp}: - * ace/Service_Object.{h,i,cpp}: - * ace/Service_Manager.{h,cpp}: - * ace/Service_Config.{h,i,cpp}: Unicodize service configurator - related classes. I still need to find a point which breaks the - usage of char functions that flex and yacc use and wchar - functions that most CE functions use. - - * ace/Get_Opt.{h,cpp}: - * ace/Local_Token.{h,i,cpp}: - * ace/Map_Manager.cpp: - * ace/Message_Queue.cpp: - * ace/Module.{h,i,cpp}: - * ace/Parse_Node.cpp: - * ace/Pipe.cpp: - * ace/Stream.{h,cpp}: - * ace/Stream_Module.{h,cpp}: - * ace/Token_Manager.{h,cpp}: - * ace/Activation_Queue.cpp: Unicodize classes. Regular CE stuff. - -Sat Mar 14 06:43:32 1998 David L. Levine - - * ace/Basic_Types.h,config-win32-common.h,config-irix*.h: - moved WIN32 and SGI-specific code out of Basic_Types.h and - into their respective config files. - - * ace/Object_Manager.h: changed ACE_HAS_NON_STATIC_OBJECT_MANAGER - to ACE_HAS_NONSTATIC_OBJECT_MANAGER in comments. Thanks to - Kirill Rybaltchenko for reporting - this. - - * include/makeinclude/platform_chorus_ghs.GNU: set PATH, and - remove /tmp/gh_*.[os] files that GreenHills leaves. - - * ace/INET_ADDR.cpp (get_host_name): on Chorus, save errno in - error so that it gets propagated back to the caller. - -Sat Mar 14 00:13:22 1998 Douglas C. Schmidt - - * ace/Task.h (ACE_Task_Base): Give a default value of 0 for the - Thread Manager so we can use this as a base class. - - * tests/Future_Test.cpp: Since the Scheduler provides its own - activation queue it doesn't make sense to inherit from ACE_Task - (which provides its own queue) but instead ACE_Task_Base - (which doesn't define its own queue). Thanks to Loren Rittle - for reporting this. - - * examples/Threads/future[12].cpp: Since the Scheduler provides - its own activation queue it doesn't make sense to inherit from - ACE_Task (which provides its own queue) but instead - ACE_Task_Base (which doesn't define its own queue). Thanks to - Loren Rittle for reporting this. - - * examples/Threads/future[12].cpp: Removed the explicit call to - scheduler_->close() to avoid closing the scheduler down twice. - Thanks to Loren Rittle for reporting this. - -Fri Mar 13 23:41:44 1998 Nanbor Wang - - * ace/Process.cpp (ACE_Process_Options): Moved column out of - ifdef'ed area. - -Fri Mar 13 21:17:51 1998 David L. Levine - - * ace/Process.cpp (ACE_Process_Options): reordered initializers - to match declaration order. - -Fri Mar 13 17:30:16 1998 Nanbor Wang - - * ace/Process.{h,i,cpp}: As CE's CreateProcess is basically - broken, you can only start a new process using ACE_Process. You - cannot set any of environment, process attributes, thread - attributes, current directory, stratup info, and security - attributes. I have modified these files so that most attribute - access functions just do nothing. Some of "do nothing" - functions were defined as ACE_INLINE on CE. - - * ace/Memory_Pool.cpp: Regular CE stuff. - -Fri Mar 13 17:42:17 1998 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (handle_signal): If there are still - notification in the queue, we need to wake up again. - -Fri Mar 13 09:09:08 1998 David L. Levine - - * ace/Profile_Timer.*,config-chorus.GNU,README, - tests/Handle_Set_Test.cpp (test_performance): added - ACE_LACKS_FLOATING_POINT support. - - * include/makeinclude/platform_chorus_ghs.GNU: removed - -X445 from CFLAGS. I don't know what it does. - -Fri Mar 13 01:10:36 1998 Irfan Pyarali - - * ace/WFMO_Reactor: The following changes were made to make the - registration and removal of event_handlers from WFMO_Reactor - more robust. Thanks to Jonathan Biggar for - helping out. - - - ACE_WFMO_Reactor_Handler_Repository::Common_Info now contains - the delete_entry_ and close_masks_ fields as these were now - common to all three structures. - - - handle_additions() and handle_deletions() were changed to - make_changes_in_current_infos(), - make_changes_in_suspension_infos(), and - make_changes_in_to_be_added_infos() - - - Correct range for suspend_handlers() is 0 to max_handlep1_ - rather than (max_handlep1_ - 1) - - - suspend_handlers(), - resume_handlers(), - add_network_events_i(), - unbind_i(), - suspend_handler_i(), - resume_handler_i(), - unbind_all(), - - now go through the to_be_add_info_ array when making changes. - - * examples/Reactor/ReactorEx/test_prerun_state_changes.cpp: New - test added to check the Reactor's ability to handle state - changes before getting a chance to run. - - * examples/Reactor/ReactorEx/test_talker.cpp (main): Remove the - Procator from the Reactor so that the Proactor is not called - after it has been destroyed. - -Thu Mar 12 19:36:43 1998 Douglas C. Schmidt - - * ACE-INSTALL.html: Tidied up a bunch of things in this file. - Also, created a new $ACE_ROOT/os-patches/ directory and moved - the patches for Linux and LynxOS into this in order to - consolidate the patches into one location. - - * ace/WFMO_Reactor.cpp (upcall): Cleaned up a bunch of code to (1) - avoid a nasty "dangling else" bug and (2) simplify a bunch of - if/if statements. Thanks to Jonathan Biggar - for pointing this out. - -Thu Mar 12 18:21:15 1998 James C Hu - - * ace/config-linux-common.h: Incorporated changes that were - suggested by Robert Hanzlik to get ACE to - compile on Linux using glibc 2.1 and libg++/gcc 2.8. - -Thu Mar 12 17:25:28 1998 James C Hu - - * ACE-INSTALL.html: Added a table to Supported Platforms and - Compilers. - -Thu Mar 12 16:28:32 1998 Nanbor Wang - - * Apply regular string manipulation for CE to following files: - ACE.cpp ARGV.cpp Acceptor.cpp Activation_Queue.cpp - Asynch_Acceptor.cpp Asynch_IO.cpp CORBA_Handler.cpp - Connector.cpp Containers.cpp DEV_Addr.cpp Dynamic_Service.cpp - FIFO.cpp FIFO_Recv.cpp FIFO_Recv_Msg.cpp FIFO_Send.cpp - FIFO_Send_Msg.cpp FILE_Addr.cpp FILE_Connector.cpp Filecache.cpp - Future.cpp Get_Opt.cpp Hash_Map_Manager.cpp LSOCK.cpp - LSOCK_CODgram.cpp LSOCK_Connector.cpp LSOCK_Dgram.cpp - Local_Name_Space_T.cpp Local_Tokens.cpp Local_Tokens.i - Malloc_T.cpp Map_Manager.cpp Mem_Map.cpp Memory_Pool.cpp - Message_Queue.cpp Module.cpp Name_Proxy.cpp - Name_Request_Reply.cpp Naming_Context.cpp Obstack.cpp - Parse_Node.cpp Pipe.cpp Priority_Reactor.cpp Proactor.cpp - Process_Manager.cpp Read_Buffer.cpp Registry_Name_Space.cpp - Remote_Name_Space.cpp Remote_Tokens.cpp SPIPE_Acceptor.cpp - SV_Semaphore_Complex.cpp SV_Semaphore_Simple.cpp - Select_Reactor.cpp Service_Config.cpp Service_Main.cpp - Service_Manager.cpp Service_Repository.cpp Service_Types.cpp - Singleton.cpp Strategies_T.cpp Stream.cpp Svc_Handler.cpp - TLI.cpp TLI_Acceptor.cpp TLI_Connector.i Task_T.cpp - Time_Request_Reply.cpp Timer_Queue_Adapters.cpp - Token_Collection.cpp Token_Invariants.cpp Token_Manager.cpp - Token_Request_Reply.cpp WFMO_Reactor.cpp WFMO_Reactor.i - XtReactor.cpp. - -Thu Mar 12 15:37:14 1998 David L. Levine - - * ace/Read_Buffer.* (read): null terminate the result buffer. - Also, changed "inline" to "ACE_INLINE" and updated #includes - so that ACE inlining works. - -Thu Mar 12 02:19:53 1998 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (upcall): In the Select_Reactor, when it - upcalls to an event_handler which returns a -1, the - Select_Reactor only clears the specific mask bit for the - handler. For example, for a call to - Event_Handler::handle_input() which returns -1, the - Select_Reactor clears the READ_MASK bit. - - In the WFMO_Reactor, if any handler returns a -1, then it clears - ALL of the mask bits for the event handler. - - So, fixed WFMO_Reactor so that it works like Select_Reactor in - this regard. - - Thanks to Jonathan Biggar for pointing this - discrepancy out. - - * ace/WFMO_Reactor.cpp (dispatch_handles): The correct range check is - {WAIT_OBJECT_0,WAIT_OBJECT_0 + this->handler_rep_.max_handlep1 () - index} - and not - {WAIT_OBJECT_0,WAIT_OBJECT_0 + this->handler_rep_.max_handlep1 ()} - - Thanks to Evgeny Beskrovny evgeny_beskrovny@icomverse.com for - pointing this out. - -Wed Mar 11 15:20:09 1998 Douglas C. Schmidt - - * ace/OS.i (thr_getspecific): Added comments to the code to - explain the unusual step of saving errno across calls to - TlsGetValue() on Win32. Thanks to Tim Harrison for clarifying - this. - -Wed Mar 11 00:39:29 1998 Nanbor Wang - - * CE-status: A temporary file to trace the progress of the CE - port. - - * ace/ace_ce_dll.dsp: Added more .cpp files. - - * ace/High_Res_Timer.{h,cpp}: Undefined functions print_ave and - print_total. These two function use STDOUT which is not - supported on CE. We should probably modify the functions so - they write results to Log_Msg. - (get_register_scale_factor): This function always returns 1 on - CE to prevent the use of High_Res_Timer. - (get_env_global_scale_factor): Always returns -1 on CE because - environment variables are not supported. - - * ace/Thread_Manager.cpp (spawn_i): WinCE doesn't support - DuplicateHandle, therefore the best we can do now is just pass - back the handle to the spawned thread. Notice that you *can't* - close the handle by yourself under CE. Perhaps we shouldn't - even try to pass this info back. ??? - Applied regular CE porting tricks. - - * ace/SOCK_Dgram_Mcast.{h,cpp}: - * ace/SOCK_Dgram_Bcast.{h,cpp}: Changed some function signatures - to use wchar on CE. Applied regular CE porting tricks. - - * ace/IO_SAP.cpp: - * ace/SOCK_CODgram.cpp: - * ace/SOCK_Dgram.cpp: - * ace/Select_Reactor.cpp: - * ace/Timer_{Hash,Heap,List,Queue,Wheel}_T.cpp: Applied regular CE - porting tricks. Erm, I'm running out of tricks. - -Tue Mar 10 20:27:57 1998 Nanbor Wang - - * ace/Reactor.h (reset_event_loop): Made the signature match with - its definition in .cpp file. - -Tue Mar 10 15:07:00 1998 Douglas C. Schmidt - - * ace/Svc_Handler.cpp, - ace/Module.cpp: - Fixed some problems where Svc_Handlers in Modules were being - deleted prematurely. Thanks to Steve Coy - for reporting this. - - * ace/Reactor.h (ACE_Reactor): Added a "reset_event_loop" method - so that it's possible to reset the loop again once the - end_event_loop() method is called. Thanks to Eric Hopper - for reporting this. - - * ace/IOStream_T.cpp (ACE_IOStream): Moved some code to work - around some bugs with MSVC++ 5.0. Thanks to James CE Johnson - for reporting this. - -Tue Mar 10 15:57:54 1998 Nanbor Wang - - * ace/Handle_Set.cpp (dump): Cast mask_.fd_count to size_t. - Depend on whether you are using standard C++ library, the type - of fd_count count be size_t or ssize_t. Thanks to Darrell for - discovering this. - -Tue Mar 10 13:22:24 1998 Irfan Pyarali - - * ace/Asynch_IO.cpp (cancel): CancelIo is not supported on Win95. - - * ace/SString.cpp (set): Use ACE_WString::wstrlen(). - -Tue Mar 10 06:59:42 1998 David L. Levine - - * ace/SString.cpp (WString::set): added support for platforms - that don't have wchar_t, or that treat wchar_t and ACE_USHORT16 - as different types. - - * ace/OS.h,Basic_Types.h: moved ACE_USHORT16 typedef from OS.h to - Basic_Types.h. - - * ace/High_Res_Timer.h: fixed comment: timer.start () instead of - timer.stop () (twice). - -Mon Mar 09 22:15:43 1998 Irfan Pyarali - - * ace/SString.cpp (ACE_CString::operator=): Special cases have to - considered carefully so that memory is managed properly. This - is specially true when the ACE_CString::NULL_CString_ is used. - - * ace/SString.h (ACE_CString and ACE_WString): Added set methods - that allows the user to set the strings without having to use - the assignment operator. - -Mon Mar 09 16:11:16 1998 David L. Levine - - * examples/Map_Manager/test_hash_map_manager.cpp: added #include - of ace/SString.h and template instantiations. Replaced gets - with ACE_OS::fgets. - - * examples/Makefile,examples/Map_Manager/Makefile: added - Map_Manager to examples DIRS and added RCS keyword string. - -Mon Mar 9 14:59:20 1998 Carlos O'Ryan - - * include/makeinclude/platform_irix6.x-sgic++.GNU: - Added the definition for MATHLIB. - -Mon Mar 09 01:23:49 1998 Nanbor Wang - - * ace/ace_ce.dsw: - * ace/ace_ce_dll.dsp: New project/workspace files for WinCE. This - is a temporary workspace only and should be merged into ACE mail - Win32 project/workspace when the port is stable enough. - - * ace/config-WinCE.h: Added ACE_LACKS_GETS. - - * ace/Synch.i (get_nesting_level): Defined it as not supported on - CE. CE's CriticalSections don't have RecursionCount defined. - We should be able to simulate this, however. - - * ace/Process.{h,cpp}: - * ace/SString.{h,cpp}: Moved class ACE_Tokenizer from Process.* to - SString.*. Although ACE_Tokenizer is used in - ACE_Process[_Options], it really is a more general utility - class. - (operator<<): Conditionally compile these functions only when we - are not running ACE on CE. - - * ace/OS.i (atoi): Added inline implementation for wchar version. - (gets): Remove condition !defined (ACE_HAS_WINCE). This should - be taken care of by ACE_LACKS_GETS. - - * ace/OS.h (atoi): Added wchar version of this function. - (ASYS_WIDE_STRING): This macro converts char strings to - wchar strings when ACE_HAS_MOSTLY_UNICODE_APIS is defined. - (ASYS_MULTIBYTE_STRING): This macro converts wchar strings back - to char strings *only* when ACE_HAS_MOSTLY_UNICODE_APIS is - defined. - - * ace/INET_Addr.{h,cpp}: Redefined interface signatures on WinCE - using ASYS_* macros. The principle here is to pass wide char - strings in and get char strings out. That's because we will use - mostly wchar strings in CE but most winsock APIs return (or uses - char strings.) Doing so should reduce conversion between them - to minimum. - Converting debug messages with ASYS_TEXT. - - * ace/Log_Msg.cpp (open): - * ace/ACE.cpp (get_ip_interfaces): Only convert the wide character - string to a char string when ACE_HAS_MOSTLY_UNICODE_APIS flag is - not set using the ASYS_MULTIBYTE_STRING macro. - - * ace/SOCK.cpp: - * ace/SOCK_Acceptor.cpp: - * ace/Malloc.cpp: - * ace/Malloc_T.cpp: - * ace/Synch.cpp: - * ace/Message_Block.cpp: - * ace/IPC_SAP.cpp: - * ace/Handle_Set.cpp: - * ace/Addr.cpp: Converting debugging messages to wchar strings for - CE using the ASYS_TEXT macro. - -Sun Mar 08 14:29:30 1998 David L. Levine - - * apps/Gateway/Gateway/Event_Channel.cpp (initiate_acceptors): - changed SUPPLIER_CONNECTOR to SUPPLIER_ACCEPTOR. Thanks - to Dani Flexer for reporting this. - - * ace/OS.i (cond_timedwait): removed "struct" from declaration - of local timespec_t relative_time, because timespec_t can - be a typedef. Thanks to Steve Coy for - reporting this. - - * Makefile: tag from ACE_wrappers, not its parent directory, - to avoid confusing CVS. - -Sat Mar 07 16:46:58 1998 David L. Levine - - * ACE version 4.4.32, released Sat Mar 07 16:46:58 1998. - -Fri Mar 06 08:37:44 1998 David L. Levine - - * bin/ace_ld: made perl4-compatible. Thanks to - Jerry Bickle for reporting this. - - * ace/os.i: (sigwait): removed "::" from before sigwait () call - with ACE_HAS_ONEARG_SIGWAIT, in case it's a macro. Thanks - to Kirill Rybaltchenko for - reporting this. - - * bin/create_ace_build: made perl4-compatible. Thanks to - Carlos for noticing this. - - * include/makeinclude/platform_vxworks5.x_g++.GNU: added - WIN32 host support. Thanks to Paul von Behren - for providing the patches. - - * ACE-INSTALL.html: added information from Paul von Behren - on building on NT hosts for - VxWorks targets. - - * tests/Recursive_Mutex_Test.cpp: 50 iterations instead of 100 - on Chorus. - - * include/makeinclude/platform_chorus_ghs.GNU: added -G to - LDFLAGS. - - * tests/run_tests.sh: added capability for executing the tests - on a remote (Chorus) target. - - * examples/System_V_IPC/Makefile: added clean and realclean targets - for VXWORKS. - - * Makefile: cd .. before tagging. - -Thu Mar 05 12:36:52 1998 Nanbor Wang - - * ace/OS.h (ACE_TRACE): Added a missing right paren. - -Thu Mar 05 10:04:06 1998 David L. Levine - - * include/makeinclude/platform_chorus_ghs.GNU: this works, - though it may not be optimum. - -Thu Mar 05 01:33:08 1998 Nanbor Wang - - * ace/config-WinCE.h: Added more CE stuff. Ostream is now - redefined as FILE on CE. - - * ace/OS.{i,cpp}: - * ace/Synch_T.cpp - * ace/Message_Queue.cpp: - * ace/SOCK_Connector.i: Added ASYS_TEXT to numerous - ACE_DEBUG/ACE_ERROR macros. We must use wide char strings in - CE. - - * ace/ACE.{h,cpp}: Redefined sock_error to return wchar string on - CE. Added ASYS_TEXT to debugging messages. - - * ace/Trace.{h,cpp}: - * ace/Log_Msg.{h,cpp}: Made it UNICODE compatible. - - * ace/Log_Record.cpp: Changed how ostream is used on CE. Although - the code here become some how platform dependent, fortunately, - it can be shielded out from the users thru various macros. - Added ASYS_TEXT. - - * ace/SString.h: Undefined friend relations of ACE_?String with - ostream on CE. CE doesn't support . - - * ace/OS.h: Changed the definition of ASYS_TEXT to use _TEXT. - This macro can be used with other compiler defined macros - (e.g. __FILE__.) Added ASYS_TEXT to adorn parameters of - ACE_TRACE so we don't need to modify our codes to make it - portable to CE. - - * ace/Log_Msg.cpp: Removed macro definition of ACE_WSPRINTF. It - didn't appear to be used anywhere. - -Wed Mar 04 09:32:32 1998 David L. Levine - - * ace/OS.cpp (readv,writev): added static cast of iov_len to int, - to avoid unsigned comparison < 0. - - * ace/Containers.cpp (ACE_Fixed_Set_Iterator::done), - ace/Map_Manager.cpp (ACE_Map_Iterator_Base::done): - removed const from static cast to avoid warnings about - meaningless type qualifier from GreenHills. - - * ace/Basic_Types.i (ACE_U_LongLong): added missing ACE_INLINE's. - - * ace/Svc_Conf.y,Svc_Conf_y.cpp, etc/Svc_Conf_y.cpp.diff - (svc_location): delete svc_initializer after initializing - svc_location. Thanks to Tom Arbuckle - for reporting this. - - * include/makeinclude/platform_linux_lxpthreads.GNU: separated - SOBUILD into compile and link steps because the - Service_Configurator/server/* examples are unable to - use files compiled with -fPIC and just labeled as .so as shared - ELF objects. Thanks to Tom Arbuckle - for reporting this. - - * include/makeinclude/platform_chorus_ghs.GNU: explicitly link - in ioassign.o to resolve _cerr. - - * tests//SOCK_Connector_Test.cpp, - ace/config-{chorus,lynxos,netbsd,psosim-g++,vxworks5.x, - win32-common}.h: - added ACE_LACKS_GETHOSTENT, so that SOCK_Connector_Test doesn't - have to enumerate the platforms that don't have ::gethostent (). - - * tests/Basic_Types_Test.cpp (main): if ACE_LACKS_LONGLONG_T, use - ACE_U_LongLong instead of long long. - -Tue Mar 03 22:15:16 1998 Nanbor Wang - - * ace/Remote_Name_Space.cpp: Replaced a bunch of usages of - ACE_WString::rep (). They were passed to ACE_Name_Request which - creates another copy for itself and nobody ever cleans up these - memories. Thanks to John Mulhern <9107@MN3.LAWSON.lawson.com> - for reporting this. - - * ace/OS.h (THR_DETACHED): Defined this macro so that we can - simulate detached threads on NT (Hi Irfan! ;-). Thanks to Andre - Arpin for prividing the use case of - detached threads. - - * ace/Thread_Manager.cpp (exit): Added detached threads - manipulating codes here. We now can simulate behaviros of UNIX - detached threads on NT (no one cares about their return status.) - -Tue Mar 03 15:05:42 1998 David L. Levine - - * ace/Basic_Types.{h,i} (ACE_U_LongLong::operator *=): updated - with James Hu's implementation. Now it's fast :-) - - * tests/Time_Value_Test.cpp (test_ace_u_longlong): added another - test of operator *=. - -Mon Mar 2 19:21:36 1998 Douglas C. Schmidt - - * ace/OS.h: Changed all uses of "/localname" and "/globalname" to - "localname" and "globalname" to avoid problems on UNIX. Thanks - to John Mulhern <9107@MN3.LAWSON.lawson.com> for reporting this. - - * ace/OS.h: Changed "C:\\temp\\" to "C:\\temp" to avoid some minor - problems on NT. Thanks to John Mulhern - <9107@MN3.LAWSON.lawson.com> for reporting this. - - * netsvcs/lib/Log_Message_Receiver.cpp - (Log_Message_Receiver_Impl): Removed some stray inline keywords. - Thanks to Russ Noseworthy for - reporting this. - - * ace/OS.i (sigwait): Added support for POSIX sigwait(). Thanks - to Russ Noseworthy for reporting - this. - - * ace/Containers.cpp (done): - ace/Map_Manager.cpp (done): Corrected some misplaced "consts" in - the ACE_static_cast macro. Thanks to Russ Noseworthy - for reporting this. - - * include/makeinclude/platform_sunos5_sunc++.GNU (CXX): Commented - out the -pta option since it might not be necessary. If this - breaks code then we'll need to reevaluate this change. Thanks - to Russ Noseworthy for suggesting - this. - -Mon Mar 02 17:06:46 1998 Nanbor Wang - - * ace/Thread_Manager.cpp (exit): Added Win32 thread exit - functionality. When a thread function falls out of scope, this - functions is called by ACE_Thread_Control::exit and it will not - call ACE_OS::thr_exit from here. Under this scenario, the - ACE_Thread_Manager::exit simply falls thru the end. If a user - call this function directly, this function will delete - ACE_Thread_Exit::instance() first, which simulate the cleanup - routine executed when a thread fall out of end by calling - ACE_Thread_Manager::exit recursively. After this is done - (returned from the second call,) this function will then call - ACE_OS::exit, which clean up the TSS objects and then really - exit the thread. Thanks to Gordon Watts for - pointing this out. - - * ace/OS.cpp (thr_exit): Added Win32 thread exit functionality. - ACE_OS::thr_exit now will try to clean up TSS objects by calling - ACE_OS::cleanup_tss. You really should _not_ calling this - function directly. Esp. from the main thread because I don't - know how to tell if you are calling it from main thread thread - or not and thus memory leak might occur. - -Mon Mar 02 09:13:26 1998 David L. Levine - - * ace/config-sunos5.5-sunc++-4.x.h: replaced ACE_PAGE_SIZE with - ACE_HAS_GETPAGESIZE, and added ACE_HAS_STL_MAP_CONFLICT. - Thanks to J. Russell Noseworthy - for these recommendations. - - * ace/config-sunos5.6-sunc++-4.x.h: just #include - config-sunos5.5-sunc++-4.x.h. There's no difference between - the two at this point. - - * include/makeinclude/platform_sunos5_sunc++.GNU: added -R./ and - -mt to LDFLAGS. Added -fast to LDFLAGS if "fast" flag is - enabled. Thanks to J. Russell Noseworthy - for these recommendations. - - * include/makeinclude/platform_sunos5.6_sparc_sunc++.GNU: just - include platform_sunos5_sunc++.GNU. There's no difference between - the two at this point. There is one significant net change to - the 5.6 platform: -s is no longer included in LDFLAGS. - - * ace/config-chorus.h: added ACE_LACKS_ACE_IOSTREAM with ghs, because - its iostream doesn't have separate operators for signed/unsigned - char. - -Sun Mar 1 13:54:02 1998 Nanbor Wang - - * Makefile: Added cvs commands to automatically tag the CVS - repository with version number 'ACE_9_9_99' tag and 'Current' - tag. - -Sun Mar 1 12:26:13 1998 Alexander Babu Arulanthu - - * ace/Hash_Map_Manager.cpp (reset_i): - * ace/Hash_Map_Manager.h: - Added reset () method for the Hash_Map_Iterator. - -Sun Mar 01 10:59:27 1998 Irfan Pyarali - - * ace/Asynch_IO.cpp (cancel): Changed CancelIO to CancelIo. - - * ace/Synch.h (ACE_Lock): Added a virtual destructor to ACE_Lock. - -Sun Mar 01 08:38:00 1998 David L. Levine - - * ace/OS.h: use the new ACE_DEFAULT_SYNCH_TYPE for the default - mutex, etc., type, so that it can be set VxWorks. The ACE default - type on VxWorks is SEM_Q_FIFO, the same as VxWorks' default. - The ACE default can be easily overridden in config.h by - defining ACE_DEFAULT_SYNCH_TYPE. - - * ace/OS.i (sema_init): on VxWorks, use the type argument for the - sema type, instead of hard-coding to SEM_Q_FIFO. - - * ACE-INSTALL.html: updated Linux/alpha "as" patch. - -Sat Feb 28 12:20:57 1998 Douglas C. Schmidt - - * ace/Message_Queue.cpp: Fixed the implementation of - wait_not_{full,empty}_cond() so that they utilize the - ACE_Time_Value it's passed. In addition, revised the - implementation of peek_dequeue_head() so that it uses the new - wait_not_empty_cond() implementation. Thanks to Tom Venturella - for reporting this. - -Fri Feb 27 15:47:15 1998 David L. Levine - - * ACE-INSTALL.html: added very useful information from - Chris Ryan about build ACE with - NT/Tornado for VxWorks. - - * ace/config-chorus.h: use ACE_NEEDS_READV/WRITEV with GHS as well - as with g++. - - * ace/Basic_Types.{h,i} (ACE_U_LongLong): added a bunch of arithmetic - operators for Carlos :-) The operator *= is _very_ slow, until we - come up with the right way to do it. - - * tests/Time_Value_Test.cpp (test_ace_u_longlong): added some tests - of the new operators. - -Fri Feb 27 13:42:09 1998 Douglas C. Schmidt - - * ace/ACE.cpp (recv_n): Removed the MSG_PEEK flag since it didn't - seem to work correctly. - -Fri Feb 27 11:18:28 1998 Chris Cleeland - - * ace/Log_Msg.cpp: Added three new conversion operators: "%{" - calls inc() to increase the trace_depth, "%}" calls dec() to - decrease the trace_depth, and "%$" is used in place of "\n" to - insert a newline followed by appropriate current indentation. - -Thu Feb 26 21:36:27 1998 Douglas C. Schmidt - - * ACE version 4.4.31, released Thu Feb 26 21:36:27 1998. - -Thu Feb 26 16:48:53 1998 Douglas C. Schmidt - - * ace/OS.h: Added new macros for ACE_FILE_STREAM and - ACE_FILE_CONNECTOR to be consistent with the ACE_SOCK_* stuff, - etc. Thanks to Ganesh Pai for reporting - this. - -Thu Feb 26 11:14:21 1998 David L. Levine - - * ace/Parse_Node.cpp (ACE_Location_Node): reordered initializers - to match declaration order. - -Thu Feb 26 02:42:57 1998 Nanbor Wang - - * ace/Service_Config.cpp (load_static_svcs): Removed explicit - constness cast from the allocation function. - -Wed Feb 25 23:08:44 1998 Douglas C. Schmidt - - * tests/MT_Reactor_Timer_Test.cpp: Made this test compile on - platforms that lack threads and also updated the programming - style to be consistent with other parts of ACE. - - * tests/Priority_Task_Test.cpp: Made this test compile on - platforms that lack threads. - - * ace/Svc_Conf.h: Fixed the prototype for - ace_create_service_type() to reflect the elimination of "const - void *". - - * ace/Parse_Node: Eliminated more uses of "const void *" and - changed them to plain ol' "void *". - - * ace/Service_Types.cpp (fini): Changed the "const void *" to be - simply "void *" since it didn't seem to make any sense they way - it was! Thanks to Stephen Coy for - insisting on this... - - * ace/config-sunos5.*.h: Moved the ACE_HAS_REENTRANT_FUNCTIONS - into the section of #defines that should be commented out if - we're not building a multi-threaded library. - - * ace/Service_Config.cpp (open): Tightened up the comparison of - the key with the ACE_DEFAULT_LOGGER_KEY to use string equality - rather than pointer equality. Thanks to Stephen Coy - for reporting this. - -Wed Feb 25 10:50:17 1998 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU: added suppression of - "no corresponding delete" warning, until that is fixed in libTAO. - Added -lm to LIBS for MT_Cubit client. - - * include/makeinclude/platform_chorus_ghs.GNU: we can link now. - - * ACE-INSTALL.html: added information on Linux v. 2.0.x - getsockname () bug. - -Tue Feb 24 15:07:50 1998 Nanbor Wang - - * tests/test.{mdp,mak}: Added Env_Value_Test and OrdMultiSet_Test - into the workspace. - - Removed all odbc libraries from all projects. We don't really - need them to run ACE. Thanks to gonzo@ing.puc.cl (Gonzalo - A. Diethelm) for pointing this out. - -Tue Feb 24 07:14:16 1998 Douglas C. Schmidt - - * ace/Asynch_Acceptor.cpp (handle_accept): Update the - event_handler's proactor pointer once it is accepted. Thanks to - Jason Katz for reporting this. - - * apps/Gateway/Gateway/Event.h (class Subscription): Moved the - htonl of total_consumers_ to *after* the loop that uses it! - Thanks to Jorn Jensen for reporting this. - -Tue Feb 24 05:08:31 1998 Nanbor Wang - - * ace/Asynch_Acceptor.i: Filled in some missing keywords. - - * ace/Log_Record.h (ACE_Log_Record): Hacked it to work for CE. - Undefined the ostream version of print (). I'm planning to drop - iostream support on WinCE. (Then, I don't have to write my - own. ;-) - - * ace/ACE.{h,i} (timestamp, format_hexdump): Removed UNICODE_ONLY version. - Changed to use ASYS_TCHAR to differentiate this condition. - - * ace/OS.h (ACE_OS): Undefined shm_{open,unlink} if - ACE_HAS_MOSTLY_UNICODE_APIS. - - * ace/OS.cpp (ctime,ctime_r): Added CE implementation. - - * ace/streams.h: Added /**/ between #include and <..> in several - places. - - * ace/*: Changed ACE_HAS_UNICODE_ONLY to - ACE_HAS_MOSTLY_UNICODE_APIS. - -Mon Feb 23 19:41:53 1998 Douglas C. Schmidt - - * ace/Asynch_Acceptor.i (bytes_to_read): Added an inline accessor - for the bytes_to_read_ field. Thanks to Jason Katz - for suggesting this. - -Mon Feb 23 12:26:06 1998 David L. Levine - - * ace/OS.cpp (sched_params): removed ACE_ADAPT_RETVAL from PTHREADS - ::sched_setscheduler () call, because it returns the old scheduling - policy, not 0, on success. - - * ace/config-osf1-4.0.h: removed ACE_HAS_EXCEPTIONS because that is - enabled by platform_osf1_4.0{,_rcc}.GNU. - - * include/makeinclude/platform_osf1_4.0.GNU: added suppression of - warning 835 because /usr/include/cxx/memory, line 505, triggers - a warning about an unreferenced parameter. - - * include/makeinclude/platform_osf1_4.0{,_rcc}.GNU: added - "exceptions = 1" so that ACE exception handling can be - disabled on the make command line. - -Mon Feb 23 11:27:10 1998 David L. Levine - - * ACE version 4.4.30, released Mon Feb 23 11:27:10 1998. - -Mon Feb 23 11:11:18 1998 Nanbor Wang - - * ace/Process.h: Define ACE_Process_Options::NO_EXEC as 0 on - Win32. It has no effect on NT anyway. - -Sun Feb 22 21:37:43 1998 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: updated - comments to reflect that WIND_BASE and WIND_HOST_TYPE - environment variables must be set. Thanks to Nanbor for - reporting that. Also, set CROSS-COMPILE flag. - - * include/makeinclude/rules.lib.GNU: updated VOBJS so that it - will build the fancy new TAO/orbsvcs hierarchy. - - * include/makeinclude/platform_{chorus*,lynxos,vxworks5.x_g*}.GNU: - set CROSS-COMPILE flag. It's only used by TAO at this point. - - * ace/Svc_Conf_y.cpp: updated based on new Svc_Conf.y. - - * etc/Svc_Conf_y.cpp.diff: regenerated for latest Svc_Conf_y.cpp. - - * ACE-INSTALL.html,include/makeinclude/platform_lynxos.GNU: moved - LynxOS installation info from its platform file to ACE-INSTALL.html. - -Sun Feb 22 21:26:19 1998 James CE Johnson - - * tests/IOStream_Test.cpp (server): break out of while loop if - read from client_handler fails. - -Sun Feb 22 13:06:20 1998 Douglas C. Schmidt - - * ace/Asynch_Acceptor.h (class ACE_Asynch_Acceptor): Made the - accept method virtual so that users can override it and do - things like enforce limits on the maximum number of simultaneous - connections. Thanks to Jason Katz for - suggesting this. - -Sun Feb 22 13:22:30 1998 Nanbor Wang - - * ace/OS.h: Moved definition of ACE_MAP_{PRIVATE,SHARED,FIXED} - down to where every platform can see. - -Sun Feb 22 13:06:20 1998 Douglas C. Schmidt - - * ace/Svc_Conf.y: Fixed a couple of places where we were - potentially dereferencing NULL pointers when services failed to - load. Thanks to Eric C. Newton for reporting - this. - -Sat Feb 21 12:44:51 1998 David L. Levine - - * ACE version 4.4.29, released Sat Feb 21 12:44:51 1998. - -Sat Feb 21 11:53:45 1998 Nanbor Wang - - * ace/Hash_Map_Manager.cpp (close_i): Remember to reset the - current size to 0 after deallocating all entries in the map. - Thanks to Alex for noticing this. - -Fri Feb 20 06:36:04 1998 David L. Levine - - * ace/Timer_Queue_Adapters (activate): added thread_names argument. - - * ace/OS.{h,i} (cond_timedwait): fixed on LynxOS (DCE_DRAFT4_THREADS), - where pthread_cond_timedwait () expects a relative instead of - absolute time. - - * tests/Buffer_Stream_Test (Consumer::svc): removed thr_yield for - LynxOS, now that ACE_OS::cond_timedwait () is fixed. - - * ace/OS.i (mmap): use ACE_DEFAULT_FILE_PERMS on LynxOS for the - shared memory object. - - * ace/Mem_Map.* (unmap): on LynxOS, write back the shared object to - the plain file, if the mmap () protection included PROT_WRITE. - - * ace/README: added ACE_HAS_BOOL, which can be used by TAO. - -Thu Feb 19 17:59:53 1998 Nanbor Wang - - * apps/JAWS/clients/Caching/*: Reworked and cleaned up these files a - bit. Added a test_URL.cpp file. Notice that these file will - finally be moved to other directory. - -Thu Feb 19 15:52:50 1998 Stanley D Leeson - - * ace/Task.{h,cpp} (activate): added optional thread_names array - argument. - -Thu Feb 19 12:55:00 1998 Nanbor Wang - - * ace/OS.h: Added /**/ between #include and '<', Thanks to - gonzo@ing.puc.cl (Gonzalo A. Diethelm) for providing the - patches. - -Thu Feb 19 11:18:08 1998 David L. Levine - - * ace/OS.h: added ACE_MAP_{PRIVATE,SHARED,FIXED}, and - ACE_OS::shm_{open,unlink}. - - * ace/OS.i: added ACE_OS::shm_{open,unlink}, and mmap support on - LynxOS. - - * ace/Mem_Map.*,Shared_Memory_MM.h,Filecache.cpp: default share - value to ACE_MAP_PRIVATE instead of MAP_PRIVATE, to allow easy - overriding in config files. - - * ace/config-lynxos.h: added ACE_HAS_SHM_OPEN, and map - ACE_MAP_PRIVATE to ACE_MAP_SHARED because MAP_PRIVATE is - not supported on LynxOS 2.5.0. - - * tests/Mem_Map_Test.cpp: replace file_size with line_length because - that's more accurate. - - * tests/SOCK_Connector_Test.cpp: use ACE_DEFAULT_SERVER_HOST on - LynxOS, and removed #include of sys/utsname.h because it's in OS.h. - - * include/makeinclude/platform_lynxos.GNU: added LYNXOS so that - other Makefiles can easily know if where building for LynxOS. - - * ace/ACE.cpp (recv_n): commented out the MSG_PEEK flag check because - it caused IOStream_Test to not terminate. - - * ace/Env_Value_T.{h,i}: moved ACE_Convert specializations from .i - file to .h file, because the resulted in multiple instantiations - with ACE_INLINE disabled, and missing specializations without - ACE_HAS_TEMPLATES_REQUIRE_SOURCE and inlining enabled. - - * tests/TSS_Test.cpp: weakened to work with LynxOS. It has a very - limited number of keys, maybe 16, and can't free them. And, the - test always core dumps if we try to request more keys than it has - available. - - * tests/run_tests.sh: disabled some tests on LynxOS. - -Thu Feb 19 10:41:05 1998 Douglas C. Schmidt - - * ace/SOCK.cpp (open): It appears that we don't need to do - SO_REUSEADDR if protocol_family != PF_UNIX. Thanks to Chuck - Gehr for reporting this. - -Wed Feb 18 22:34:40 1998 Nanbor Wang - - * examples/Reactor/Dgram/Dgram.dsw: - * examples/Reactor/Dgram/Dgram.dsp: - * examples/Reactor/Dgram/CODgram.dsp: Newly added files for NT. - - * examples/Reactor/Dgram/Dgram.cpp: - * examples/Reactor/Dgram/CODgram.cpp: Made them runnable on NT. - - * ace/Process.h (ACE_Process_Options): Changed the definition of - ACE_Process_Options::NO_EXEC to 0 for Win32 because it doesn't - mean anything on NT (you must exec a new program on NT, no fork - syntax available.) With this, we can simulate the fork effect - more or less (still not portable thou. See - examples/Reactor/Dgram/ for some examples.) - -Wed Feb 18 16:07:14 1998 Douglas C. Schmidt - - * netsvcs/lib/Log_Message_Receiver.cpp (log_output): There was a - problem where "outputfile" can be NULL, which causes problems - when it is dereferenced. Thanks to Stephen Coy - for reporting this. - - * ace/ACE.cpp (ldfind): modified the code to allow it to - consistently return a status indicating whether or not a - potential shared library file was found. Thanks to Patrick - J. McNerthney for reporting this. - -Wed Feb 18 15:30:48 1998 Carlos O'Ryan - - * include/makeinclude/rules.lib.GNU: - Now we can create libraries with some files in - subdirectories. Though the Makefile still needs to set VPATH. - -Wed Feb 18 12:22:48 1998 David L. Levine - - * tests/Buffer_Stream_Test.cpp (Consumer::svc): added a - thr_yield so that the test magically works on LynxOS. - ACE_OS::cond_timedwait is busted on LynxOS, we're investigating it. - -Wed Feb 18 11:53:00 1998 Carlos O'Ryan - - * bin/auto_compile: - Added netsvcs to auto_compile list. - -Tue Feb 17 18:27:15 1998 Douglas C. Schmidt - - * ACE version 4.4.28, released Tue Feb 17 18:27:15 1998. - -Tue Feb 17 17:59:32 1998 Nanbor Wang - - * examples/Reactor/Multicast/Multicast.dsw: - * examples/Reactor/Multicast/client.dsp: - * examples/reactor/multicast/server.dsp: New project files. - -Tue Feb 17 15:53:41 1998 Douglas C. Schmidt - - * ace/ACE.cpp (recv_n): Added a check to drop out if the MSG_PEEK - flag is set! Thanks to Keith Brown for - reporting this. - -Tue Feb 17 12:56:24 1998 Chris Cleeland - - * include/makeinclude/wrapper_macros.GNU: Broke the "purify" - command out of PRELINK into its own variable: PURELINK. This was - done to quiet purify when building shared libraries. It wasn't - possible simply to remove the PRELINK reference from SOLINK.cc - because PRELINK is also used for specifying quantify. - - Also added two new variables: PURE_CACHE_DIR and - PURE_CACHE_BASE_DIR. PURE_CACHE_DIR is the value of the - purify/quantify '-cache-dir=' option, and PURE_CACHE_BASE_DIR is - used as the base directory to build a user/compiler-specific cache - directory. In general, you probably want to use them like this: - "make PURE_CACHE_BASE_DIR=~/mypurecache", which will end up - creating the directory ~/mypurecache--. - -Tue Feb 17 09:23:05 1998 David L. Levine - - * ace/OS.h: there were two SIGCHLD #defines, if it was not - already #defined. I changed the second one to be SIGCLD instead. - - * ace/config-linux-common.h: removed ACE_LACKS_TCP_H on alpha because - it's not necessary with glibc-2.0.6. - -Tue Feb 17 08:41:06 1998 Douglas C. Schmidt - - * ace/OS.h (ACE_PROPER_SINGLETON_INSTANTIATION): Changed spelling - of SINGLETONE to SINGLETON. Thanks to Mark Maris - for reporting this. - -Tue Feb 17 07:41:32 1998 Douglas C. Schmidt - - * ACE version 4.4.27, released Tue Feb 17 07:41:32 1998. - -Tue Feb 17 03:32:30 1998 Nanbor Wang - - * ace/ACE.*: Changes for Windows CE just keeps going and going and - going... All following functions are member functions of class - ACE. - - This member funcion has wchar version _only_ when - ACE_HAS_UNICODE_ONLY is defined: - - timestamp - - I've added wchar version of the following member functions: - - strecpy - strsplit_r - strrepl - basename - execname - format_hexdump - - These functions are not defined on CE because they make no sense - on CE. - - strenvdup - daemonize - - There is no stdin defined on CE. Before we implement a stdin - for CE, these functions don't make any sense. - - read_adapter - register_stdin_handler - remove_stdin_handler - - Changing these functions to UNICODE will need to change the - svc.conf parser. Therefore, I'll leave them to a later point. - - ldopen - ldfind - - * ace/README: Added a new directive ACE_HAS_UNICODE_ONLY which - indicates that most APIs must use wchar instead of char. (Note - that on WinCE, only WinSock functions use the traditional char - interfaces. Most other functions only support wchar - interfaces, include str* functions.) - -Mon Feb 16 14:57:26 1998 David L. Levine - - * tests/Priority_Task_Test.cpp (open): fallback to minimum - ACE_SCHED_OTHER priority instead of 0. - - * tests/Priority_Task_Test.cpp (open): suppress warning message - about retrying task activation with fallback priority unless -d - option is specified. - - * ace/High_Res_Timer.cpp: initialize global_scale_factor_ to 1 if - ACE_HAS_{,AIX_}HI_RES_TIMER and ACE_WIN32 are not defined. - Thanks to Robert Olson for reporting a - problem with bad hires time values on Irix. - -Mon Feb 16 10:51:28 1998 Oliver Kellogg - - * include/makeinclude/platform_osf1_4.0_rcc.GNU: added this - new platform file for Rational rcc (2.4.1) on DU 4.0. - - * ace/config-osf1-4.0.h: added ACE_LACKS_SIGNED_CHAR to - RATIONAL section. - - * ace/OS.h: added __rational__ to list of users of long - ACE_UNUSED_ARG. - - * ace/OS.i (gethostbyname_r): added some ACE_UNUSED_ARGs for - Digital Unix. - -Sun Feb 15 16:32:52 1998 Nanbor Wang - - * netsvcs/clients/Naming/Client/svc.conf: Removed "-s" flag, which - set the database name for local namespce. This was causing - grief if users forgot to set this environment variable. Thanks - to Johannes Gutleber for reporting - this. - -Sun Feb 15 15:55:47 1998 Darrell Brunsch - - * ace/Timer_Hash_T.{cpp,h}: Timer Hash wasn't keeping the earliest - node pointer up to date with cancels. - -Sat Feb 14 21:12:52 1998 Douglas C. Schmidt - - * ace/Synch_T.h (class ACE_Guard): this->acquire() already sets - the owner, so we don't need to do it in the constructor. - -Sat Feb 14 20:57:59 1998 Nanbor Wang - - * netsvcs/lib/Log_Message_Receiver.{h,cpp} (log_output): Added this to - all receiver classes. It allows writing messages to a user - specified ostream. - - * netsvcs/lib/Server_Logging_Handler_T.cpp - (handle_logging_record): * netsvcs/lib/Client_Logging_Handler.cpp - (send): Use the above change to avoid missing data on NT. Thanks - to Greg White for providing the fix. - -Sat Feb 14 18:34:37 1998 Darrell Brunsch - - * ace/Timer_{Wheel,Hash}_T.cpp: Fixed a bug with earliest time - pointers not being set correctly. Thanks to Mark Evans - for reporting this. - - * tests/Timer_Queue_Test.cpp: Added a quick test to check to - make sure the earliest time is reported correctly. - -Sat Feb 14 18:28:19 1998 Douglas C. Schmidt - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): Fixed a problem with the - ACE_SOCK_Dgram_Mcast subscription method. Originally, each time - the ACE_SOCK_Dgram_Mcast subscribe() method was invoked, it - created a new socket, did appropriate setsockopt calls - (e.g. SO_USEPORT), did a bind() to that socket, and then did the - setsockopt call that actually joins the mcast group. The - problem with this was that is wasn't possible to a single socket - to subscribe to more than one multicast group. Multiple calls - to ACE_SOCK_Dgram_Mcast.subscribe() didn't work because the new - socket descriptor that was issued didn't listen to the old - multicast group(s). The fix was to change the subscribe() - method to only create, set up, and bind the socket if - get_handle() == ACE_INVALID_HANDLE. Thanks to Dave Meyer - for reporting this. - -Sat Feb 14 03:29:50 1998 Sergio Flores - - * ace/ACE.cpp (set_handle_limit): Fixed a couple of bugs - setting the maximum number of file descriptors. If we use - setrlimit, we should first get the hard limit before calling - it, or we get an EINVAL for trying to set a hard limit of 0 - and a soft limit greater than that. Also, for -1 the call - was not setting the limit to the maximum allowable. - - * ace/OS.h (ACE_MAX_DGRAM_SIZE): Moved the #define - ACE_MAX_DGRAM_SIZE from the PSOS specific part of OS.h. - -Fri Feb 13 19:25:55 1998 Douglas C. Schmidt - - * ace/Log_Record.cpp (ACE_Log_Record): Changed the "set" method - for priority() so that it doesn't convert the priority into the - base two logarithm of the parameter. Instead, this is handled - by the "get" method of priority(). Thanks to Eric C. Newton - for reporting this. - - * ace/OS.h: Added a new #define called ACE_MAX_DGRAM_SIZE, which - is set to 8k by default. Naturally, this can be overwritten in - platform-specific config.h files. - -Fri Feb 13 10:40:36 1998 David L. Levine - - * ACE version 4.4.26, released Fri Feb 13 10:40:36 1998. - -Thu Feb 12 14:33:12 1998 Nanbor Wang - - * ace/OS.i (mktemp): I missed this one in Win32 section. - -Fri Feb 13 09:04:13 1998 Oliver Kellogg - - * ace/config-osf1-4.0.h: added Rational RCC support. - -Wed Feb 11 09:50:27 1998 Steve Huston - - * ace/config-dgux-4.x-ghs.h - * include/makeinclude/platform_dgux4_ghs.GNU: Configs for ACE on - DG/UX 4 using Green Hills Multi C++ compiler, and draft 10 pthreads. - - * ace/README - * ace/OS.h: New macro ACE_NEEDS_SCHED_H for platforms which needs to - #include to get complete defs for thread scheduling. - - * ace/OS.cpp: Added a DG/UX-specific pthread_wait function for use with - draft 10 pthreads on DG/UX. - -Wed Feb 11 09:32:10 1998 David L. Levine - - * ACE-INSTALL.html: updated DU CXX and Linux info. - - * ace/Makefile: moved INSTALL= to before include of rules.local.GNU, - so that the (unused) install command doesn't show up with make -n. - - * include/makeinclude/platform_chorus_ghs.GNU: put posix -I before - stdc -I. - - * ace/OS.h: removed include of stdfileio.h on ghs/Chorus. It's not - necessary with the above change to platform_chorus_ghs.GNU. - -Wed Feb 11 09:24:51 1998 David L. Levine - - * ACE version 4.4.25, released Wed Feb 11 09:24:51 1998. - -Tue Feb 10 14:58:00 1998 Chris Gill - - * ace/Containers.cpp : removed unreachable break; - -Tue Feb 10 09:34:27 1998 David L. Levine - - * ace/INET_Addr.cpp (get_host_name): moved declaration of local - "hentry" so that it's not seen on Chorus. - - * ace/OS.i (getprotoby{name,number}{,_r}): not supported on Chorus. - - * ace/Makefile: build Select_Reactor.o without -g on ghs/Chorus, - because it causes GreenHills 1.8.8 to core dump. - - * ace/config-chorus.h: adjusted to work with GreenHills 1.8.8. - - * include/makeinclude/platform_chorus_ghs.GNU: use Gnu ar instead - of ax, because we don't have a license for ax. - - * Timer_Queue_Adapters.{h,i} (activate): added stack and stack_size - parameters to match declaration in ACE_Task_Base. - - * include/platform_linux{,_lxpthread}.GNU: removed - -fno-strict-prototypes from CFLAGS because it is no longer needed. - - * include/makeinclude/platform_sunos5_g++.GNU: added -lposix4, to - be consistent with the Sun C++ platform file. Some of the TAO - tests need it. - -Mon Feb 09 18:10:37 1998 Chris Gill - - * ace/Containers.{cpp,h} : made next () a const member function in - ACE_Ordered_MultiSet_Iterator - -Mon Feb 09 14:52:25 1998 David L. Levine - - * include/makeinclude/platform_chorus_ghs.GNU: added include path. - - * ace/config-chorus.h: with GreenHills, removed - ACE_HAS_WCHAR_TYPEDEFS_CHAR and ACE_LACKS_UNISTD_H. We'll - see if --multibyte_chars --wchar_t_keyword work. - - * ace/OS.h: added #include with GreenHills/Chorus. - - * netsvcs/clients/Naming/Client/Client_Test.cpp (handle_input): - get input from stdin, not ACE_STDIN. Thanks to Jack Erickson - for reporting this. - -Sun Feb 8 15:33:33 1998 Nanbor Wang - - * include/makeinclude/wrapper_macros.GNU: - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.local.GNU: Rename - ACE_LDSO_Major_Minor_Version_Number to ACE_LDSO_Version_Number. - - * include/makeinclude/rules.local.GNU: Put back checking of - current directory into library installation rules but with an - extra check for null ACE_LDSO_Version_Number. - -Sun Feb 08 12:06:30 1998 David L. Levine - - * ACE-INSTALL.html: added Scott Snyder's egcs 1.0.1 patch, which - allows netsvcs/lib/Server_Logging_Handler.cpp to build on - Linux/RedHat 5.0. - - * include/makeinclude/wrapper_macros.GNU: protected ACE_ROOT... - additions to INCLDIRS and LDFLAGS so they're only added once. - Thanks to James CE Johnson for this addition. - - * ace/config-linux-common.h: added ACE_HAS_TERM_IOCTLS. Thanks - to James CE Johnson for this addition. - - * examples/Naming/test_multiple_contexts.cpp,test_non_existent.cpp, - test_writers.cpp: - replaced uses of cout with ACE_DEBUG. - - * examples/performance-tests/Misc/basic_perf.cpp, - context_switch_time.cpp,preempt.cpp: - divide ACE_hrtime_t by ACE_UINT32, to prevent ambiguity with - ACE_U_LongLong operator / overloading. - -Sun Feb 8 01:45:59 1998 Nanbor Wang - - * include/makeinclude/wrapper_macros.GNU (versioned_so): Added - a new directive to allow automatic installing of so libraries - with version number. This flag is default to 0. Put this line, - - versioned_so = 1 - - in your platform_*.GNU file to enable this feature. - - (ACE_LDSO_Major_Minor_Version_Number): Define the version number - to be appended to versioned so libraries (Notice: it include a - dot at the beginning.) If versioned_so == 0, this macro expand - to nothing. - - * include/makeinclude/rules.lib.GNU (INSTALL): - * include/makeinclude/rules.local.GNU (INSTALL rules): Modified - installation rules to allow installing so libraries with version - numbers. - - * include/makeinclude/platform_netbsd.GNU: - * include/makeinclude/platform_freebsd[_pthread].GNU: Enabled - new versioned_so feature. - -Sat Feb 07 05:51:15 1998 Nanbor Wang - - * ace/Synch_T.cpp (ACE_TSS): Changed to use MessageBox on WinCE. - Because there's no console in WinCE, we can't output warning - messages to stderr. - - * ace/README (ACE_HAS_UNICODE_ONLY): This new directive is used to - removed some char version function definitions because it - doesn't make too much sense to support these function when most, - if not all, strings in the system are wchar strings. - - * ace/OS.{h,i} (ACE_DEFAULT_LOGGER_KEY): Added wchar definition if - we are using UNICODE. - (ACE_SHE_{TRY,FINALLY,EXCEPT}): WinCE doesn't support Win32 - structual exception, so these macros should be defined as on - UNIX platforms. - (mktime): Removed this function from WinCE. Don't even think - about using them. - (ACE_HAS_UNICODE_ONLY): If this directive is defined, the char - version of the following functions are not defined in ACE_OS: - - chdir - mkdir - mkfifo - mktemp - getcwd - unlink - tempnam - - Some of them has wchar version. - - (chdir,mkdir,getcwd): Added wchar version. Unfortunately, getcwd - still doesn't work for WinCE. - - * ace/OS.cpp (mktemp): Added wchar version of this function. - Other changes added. Please refer to the entry above. If - platform/compiler supports this function, then both char and - wchar versions are defined as inline functions in OS.i. - (socket_{init,fini}): Removed leading :: from WSAStartup and - WSACleanup because these two are implemented as macros on - WinCE. Changed to use MessageBox instead of cerr for outputing - error messages. - - * ace/config-win32-common.h: Don't defined ACE_HAD_P_READ_WRITE on - WinCE. - - * ace/config-WinCE.h: Defined directive ACE_HAS_UNICODE_ONLY. - - * ace/ace_dll.dsp: Adjusted CE project settings. - -Fri Feb 06 15:28:11 1998 David L. Levine - - * ace/config-sunos5.5-sunc++-4.x.h: disable explicit template - instantiations with CC 4.2, because it still does implicit - instantiation. We need to figure out how to disable that. - Then, we can enable -instances=global to get the real - benefits of explicit template instantiation with CC. - - * tests/Barrier_Test.cpp: updated a comment re. the VxWorks - task names test. - -Fri Feb 06 10:42:22 1998 David L. Levine - - * ACE version 4.4.24, released Fri Feb 06 10:42:22 1998. - -Fri Feb 06 10:30:00 1998 Chris Gill - - * ace/Containers.cpp: fixed error in - ACE_Doubly_Linked_List_Iterator::first (void); - -Fri Feb 06 08:27:32 1998 Chris Gill - - * ace/Containers.{cpp,h} : added "first" methods to all container - iterators: each positions the iterator at the first element - in the container and returns 1, or if the container is empty - positions the iterator at a well defined "null" position for - that container and returns 0: - - template int - ACE_Unbounded_Set_Iterator::first (void); - - template int - ACE_Unbounded_Queue_Iterator::first (void); - - template int - ACE_Unbounded_Stack_Iterator::first (void); - - template int - ACE_Bounded_Set_Iterator::first (void); - - template int - ACE_Fixed_Set_Iterator::first (void); - - template int - ACE_Doubly_Linked_List_Iterator::first (void); - -Wed Feb 04 22:23:24 1998 David L. Levine - - * include/makeinclude/platform_linux*.GNU: commented out or - removed SUPPRESS_DASH_G, because it's not needed with hacked - gas on Linux/Alpha. - - * ACE-INSTALL.html: added some comments on Linux/RedHat 5.0, - for both Intel and Alpha. Thanks to James CE Johnson - , Torbjorn Lindgren , - and Oleg Krivosheev for this information. - - * ace/config-linux-common.h: replaced #define of ACE_HAS_EXCEPTIONS - with a compile time check for egcs, which supports exceptions. - Exceptions can now be enabled on the make command line. Also, - moved some comments on Linux system configuration up to - ACE-INSTALL.html. - - * ace/config-linux-common.h,config-g++-common.h: moved - ACE_HAS_EXCEPTIONS #define from config-linux-common.h to - config-g++-common.h. - - * include/makeinclude/wrapper_macros.GNU: disabled exception handling, - the default, on g++ >= 2.8.0. On both Linux/alpha and - Solaris 2.5.1/sparc, exception handling increased the size of - libACE.so by about 25 percent. Exception handling can easily - be enabled on the make command line or by editing your - include/makeinclude/platform_macros.GNU. - - * netsvcs/lib/TS_Server_Handler.cpp: instantiate - ACE_Svc_Handler if - ACE_HAS_STREAM_PIPES, not if ACE_HAS_TLI. Thanks to Oliver - Kellogg for reporting this problem. - - * Makefile: made ACE-INSTALL a dependency of release and - cleanrelease so that it is only updated when necessary. - - * ace/OS.{h,i},README (gets): wrapped with !ACE_LACKS_GETS. - - * ace/config-g++-common.h: added ACE_LACKS_GETS for egcs. It - supports ::gets (), but warns about it at link time on Linux. - The Solaris gets () man pages recommends using fgets () instead. - - * netsvcs/clients/Naming/Client/Client_Test.cpp: replaced use of - ACE_OS::gets () with ACE_OS::fgets (). - -Wed Feb 04 11:07:46 1998 Chris Gill - - * ace/Containers.cpp : fixed my "fix" to new_position pointer in - ACE_Ordered_MultiSet::find_from () - now checks the pointer - before assigning something to it. - -Tue Feb 03 15:11:00 1998 Chris Gill - - * ace/Containers.cpp : fixed order of member initialization list - in ACE_DNode ctor, added update of new_position pointer in - ACE_Ordered_MultiSet::find_from () - -Mon Feb 02 21:26:30 1998 David L. Levine - - * tests/Map_Manager_Test.cpp (test_map_manager): print out - item.int_id_ instead of local i so that item gets used (CXX - warned that it wasn't). - - * include/makeinclude/platform_osf1_4.0.GNU: added suppression of - warning 610, nonoverriding_function_decl. - - * ace/config-chorus.h,config-freebsd*.h,,config-hpux-10.x-g++.h, - config-irix{5.3,6.x}-g++.h,config-osf1-4.0.h,config-m88k.h, - config-netbsd.h,config-psosim-g++.h,config-sco-4.2-nothread.h, - config-sco-5.0.0-mit-pthread.h,config-sunos4-g++.h, - config-sunos5.4-g++.h,config-unixware-2.*.h: - migrated to config-g++-common.h. - - * ace/config-sunos5.5-egcs*.h: removed. config-sunos5.5-g++.h - now supports egcs, via config-g++-common.h. - - * ace/config-sco-5.0.0*.h: added RCS keyword string. - - * include/makeinclude/wrapper_macros.GNU: support "exceptions" - make flag on all platform. If enabled, it adds - -DACE_HAS_EXCEPTIONS to CCFLAGS. Not all platforms support - exception handling, of course, and that is noted in the - description of the "exceptions" make flag. - - * include/makeinclude/platform_sunos5_sunc++.GNU, - platform_sunos5.6_sparc_sunc++_4.2.GNU: - removed -DACE_HAS_EXCEPTIONS, because it's now done in - wrapper_macros.GNU. - - * examples/Reactor/Misc/test_event_handler_t.cpp: renamed - ACE_Sig_Handler to ACE_Test_Sig_Handler to avoid collision - with ACE_Sig_Handler in ACE library. - - * tests/Env_Value_Test.cpp (main): print out signed instead of - unsigned values. - -Mon Feb 02 14:40:00 1998 Chris Gill - - * tests/OrdMultiSet_Test.cpp: added explicit template instantiation - for ACE_DNode - - * tests/OrdMultiSet_Test.dsp: new MSVC++ project for the test - - * tests/tests.dsw: added OrdMultiSet_Test.dsp project to workspace - - * tests/run_tests.{bat,sh,psosim,vxworks} : added OrdMultiSet_Test - - * tests/Makefile : added OrdMultiSet_Test - -Mon Feb 02 02:42:30 1998 Nanbor Wang - - * ace/OS.h (ACE_NOTSUP_RETURN): Moved its definition to the end of - this file where __TEXT has already been defined. WinCE needs to - use wchar. - - (struct utsname): Moved this definition after all datatypes are - filled in. Reverted my previous changed on it. - - Win32 only: Added wchar version of ACE_OS::{perror,fprintf, - vsprintf,sprintf}. - - Windows CE only: Undefined some char version function in class - ACE_OS. They are of no use on CE anyway. - - * ace/OS.i (fdopen): Added wchar version of ACE_OS::fdopen, it is - only available on Win32. - - Windows CE only: Added implementation for c-styled file - functions. Type FILE * is mapped to Win32 HANLDE under the hood - and Win32 API's are used to emulate these functions. - - * ace/OS.cpp: Removed some char version functions and added some - wchar functions. - -Sun Feb 01 15:12:49 1998 Chris Gill - - * tests/OrdMultiSet_Test.cpp: added an ACE test for the - ACE_Ordered_MultiSet and ACE_Ordered_MultiSet_Iterator - class templates. - - * ace/Containers.i (ACE_Ordered_MultiSet::is_empty ()): - changed to return 1 rather than cause a SEGV when the - container is in fact empty (the above test discovered the bug). - -1998-02-01 Nanbor Wang - - * ace/OS.h (struct utsname): Separated WCE's definition from - ACE_LACKS_UTSNAME_T bacause VxWorks doesn't have TCHAR type. - -Sun Feb 01 12:09:11 1998 David L. Levine - - * ace/Containers.cpp (ACE_Ordered_MultiSet::insert and find): - expanded ITERATOR type of second argument, because g++ couldn't - deal with it. It can in the class declaration in Containers.h, - so I didn't change that. - - * ace/config-sunos5.5-g++.h,config-lynxos.h,config-vxworks5.x.h: - migrated to config-g++-common.h. - - * tests/run_tests.vxworks: disabled Message_Queue_Test because - it sometimes page faults or hangs the target. - -Fri Jan 30 15:35:30 1998 Chris Gill - - * ace/Containers.{cpp,h,i} : added class templates - ACE_Ordered_MultiSet and ACE_Ordered_MultiSet_Iterator - which respectively implement abstractions for containment - of and iteration over an ordered set that allows multiple - identical instances of a given item. - -Fri Jan 30 02:42:30 1998 Nanbor Wang - - * ace/OS.cpp (uname): Made it comform with Unicode. - - * ace/OS.h (struct utsname): Changed the internal string type to - TCHAR. - - * ace/OS.i (gettimeofday): Added Windows CE implementation. - -Thu Jan 29 21:02:24 1998 David L. Levine - - * ace/config-sunos5.5-g++.h: revert so that ACE_HAS_STRING_CLASS - is #defined, regardless of g++ version. - - * ace/config-g++-common.h,config-gcc-2.7.2.h: replaced - config-gcc-2.7.2.h with config-g++-common.h, which will support - all g++ versions, including egcs. - - * ace/config-linux-common.h,config-sco-5.0.0-{fsu-pthread,nothread}.h: - migrated to config-g++-common.h. - -Thu Jan 29 20:28:30 1998 Douglas C. Schmidt - - * ACE version 4.4.23, released Thu Jan 29 20:28:30 1998. - -Thu Jan 29 16:17:28 1998 Nanbor Wang - - * ace/Log_Msg.cpp (open): Always close down the logger connection - before changing the setting. Added codes to allow resetting - logging endpoint back to STDERR from LOGGER. - - * ace/OS.h (ACE_DEFAULT_LOGGER_KEY): Changed to localhost:10012 - so it can be used in both netsvcs/lib/ and netsvcs/client/. - - * netsvcs/client/Logger/indirect_logger.cpp: Added code to reset - logging endpoint back to stderr. - - * netsvcs/lib/Client_Logging_Handler.cpp - (ACE_Client_Logging_Acceptor): Changed to initialize - logger_key_ with ACE_DEFAULT_LOGGER_KEY. - - * netsvcs/lib/Client_Logging_Handler.h: Removed DEFAULT_LOGGER_KEY - definition. - -Thu Jan 29 12:32:32 1998 Carlos O'Ryan - - * include/makeinclude/platform_irix6.x-sgic++.GNU: - Added support for debugging, somehow the DCCFLAGS were missing. - -Thu Jan 29 10:52:34 1998 David L. Levine - - * ace/config-lynxos.h: added putenv () declaration. - - * include/makeinclude/platform_sunos5_g++.GNU: added comment - about disabling optimization with g++ 2.8.0. - - * ace/config-sunos5.5-g++.h: don't #define ACE_HAS_STRING_CLASS - with g++ 2.8.0. - - * include/makeinclude/platform_sunos5_egcs.GNU: include - the g++ platform file, it works just fine. The net effect - on egcs is these three changes: - - 1) -fno-implicit-templates is included in CPPFLAGS. That - option is necessary with the egcs (egcs-2.90.23 980102 - (egcs-1.0.1 release)) that we use to save _much_ text - space. - - 2) Use -G instead of -shared in SOFLAGS. That way, - libstc++.so, etc., need not be built. - - 3) The compiler is called g++ instead of c++. I don't - think this hurts anything. And Purify knows about g++, - but not g++. - - These (and any other) options can be overridden in - platform_sunos5_egcs.GNU if necessary. See the commented - example there. - - * ace/config-sunos5.5-egcs.h: added - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION to match - -fno-implicit-templates in the platform_sunos5_egcs.GNU. - - * tests/Env_Value_Test.cpp: updated comment to explain why we - can't use spawn with ACE_HAS_NONSTATIC_OBJECT_MANAGER. We - can, in general, but we can't on VxWorks because it doesn't - have fork (). - -Thu Jan 29 10:32:28 1998 Carlos O'Ryan - - * include/makeinclude/platform_sunos5_sunc++.GNU: - The posix4 library is needed in some TAO examples. - - * ace/Module.h: - * ace/Message_Queue.h: - Workaround HP/C++ compiler bug, it does not support enums inside - templates so we move them into base classes. Thanks to Sundar - T.J for reporting this problem. - -Thu Jan 29 10:14:03 1998 Douglas C. Schmidt - - * ace/FIFO.h: Revised the comment at the beginning of ACE_FIFO to - clearly indicate that it doesn't work portably to Win32. Thanks - to Thomas Hampson for suggesting this. - -Wed Jan 28 15:36:55 1998 Carlos O'Ryan - - * bin/auto_compile: - We can use the top level Makefile on TAO now. - -Wed Jan 28 11:59:41 1998 Nanbor Wang - - * ace/OS.i (isatty): Added conversion from a Win32 HANDLE to a C - file handle. It works correctly now. Thanks to Chuck R. Gehr - for noticing the problem. - -Tue Jan 27 20:32:07 1998 Douglas C. Schmidt - - * ace/Message_Block: Added an accessor to retrieve the reference - count on an ACE_Data_Block. Thanks to Dave Meyer - for contributing this. - -Tue Jan 27 15:09:08 1998 Douglas C. Schmidt - - * ace/OS.i, - * ace/Timer_Queue_Adapters.cpp: - When using ACE_CLEANUP_???_POP macros, it was being called with - argument 1, which should be 0 (don't execute the cleanup). - Thanks to Arturo Montes for reporting - argument 1, which should be 0 (don't execute the cleanup).this. - -Tue Jan 27 14:56:49 1998 David L. Levine - - * ace/Basic_Types.*: more cleanup: got rid of ACE_USES_ACE_U_LONGLONG, - replaced VXWORKS && ghs with ACE_HAS_WCHAR_TYPEDEFS_CHAR, and - factored out some common #defines. Rearranged ACE_SIZEOF_LONG_LONG - and ACE_UINT64 logic so that it works on NT. - -Tue Jan 27 08:28:34 1998 Steve Huston - - * ace/Basic_Types.h: Simplified and changed so that the config.h file - can pre-specify the ACE_SIZEOF_* macros in case the preprocessor - has trouble calculating them. - -Tue Jan 27 06:45:07 1998 David L. Levine - - * examples/IOStream/server/iostream_server.cpp: for egcs, use - ACE_SOCK_IOSTREAM instead of its expansion in the ACE_Svc_Handler - template instantiation. - - * ace/Event_Handler_T.h,examples/Reactor/Misc/test_event_handler_t.cpp: - removed special-case support for ACE_HAS_SIGNFO_T, because ace/OS.h - declares a siginfo_t without it. - - * tests/run_tests.vxworks: enabled Priority_Reactor_Test and - Message_Queue_Test, because they appear to run successfully now. - Most of the time, anyways. Message_Queue_Test occasionally - pages faults; there appears to be a memory management problem. - -Tue Jan 27 02:38:16 1998 Nanbor Wang - - * ace/OS.{i,cpp}: - * ace/config-WinCE.h: More Windows CE insanities. - -Mon Jan 26 13:20:58 1998 David L. Levine - - * include/makeinclude/platform_osf1_4.0_g++.GNU: added $(ACELIB) - to SOFLAGS. Thanks to Oliver Kellogg - for reporting the problem with building shared libraries on - g++/DU 4.0. - - * ace/config-linux-common.h: moved ACE_LACKS_TCP_H so that it is - only seen on alphas (with glibc2). Thanks to Edgar Villanueva - for reporting this. - - * performance-tests/Misc/childbirth_time.cpp (prof_native_thread, - prof_ace_os_thread): changed type of local j to int to avoid - signed/unsigned comparison. - - * tests/Reactors_Test (Test_Task): changed type of member - handled_ from int to size_t to avoid signed/unsigned comparison - in Test_Task::handle_input (). - -Mon Jan 26 11:35:54 1998 Carlos O'Ryan - - * bin/auto_compile: - Added TAO_ROOT to the environment. - -Mon Jan 26 10:28:57 1998 Douglas C. Schmidt - - * ACE version 4.4.22, released Mon Jan 26 10:28:57 1998. - -Mon Jan 26 02:53:10 1998 Nanbor Wang - - * ace/OS.h: Namespace related macros are now ifdef'ed by - ACE_HAS_BROKEN_NAMESPACES instead of ACE_ORBIX_HAS_NAMESPACES. - - * ace/README - * ace/config-win32-common.h: Added a new flag - ACE_HAS_BROKEN_NAMESPACES to deal with MSVC's broken namespace - support. - - * ace/config-win32.h: Re-enable defining ACE_ORBIX_HAS_NAMESPACES - for Win32. - - * ace/config-WinCE.h: Temporary file to hold WinCE specific - configurations. It will probably be merged with - config-win32-common.h in some point. - - * ace/ace_dll.dsp: Added WinCE x86 emulation mode project - definition. - - * ace/OS.{h.i} (ACE_OS): Added Windows CE macros madness. - - * ace/config-win32-common.h: Ifdef'ed out ACE_HAS_SIG_ATOMIC_T for - WinCE. Prevent repeat definition of STRICT. - -Sun Jan 25 17:31:49 1998 Nanbor Wang - - * ace/config-win32.h: Disabled setting ACE_ORBIX_HAS_NAMESPACES by - default on NT. MSVC's namespace support is buggy. - -1998-01-25 Nanbor Wang - - * tests/Conn_Test.cpp: Rearranged explicit template instantiations - order to avoid errors from egcs. Thanks to Gonzo for reporting - the bug. - -Fri Jan 23 12:24:05 1998 Douglas C. Schmidt - - * ace/OS.i (sleep): Fixed a typo where tv_sec was being set rather - than tv_usec. Thanks to Gonzo for pointing this out. - -Fri Jan 23 06:27:51 1998 David L. Levine - - * ace/IOStream.h: use std::string if - ACE_USES_STD_NAMESPACE_FORSTDCPP_LIB IOStream.h. Thanks - to Gonzo for the patch. Also, changed - DEC_CXX to __DECCXX_VER because that's more accurate. - - * tests/Barrier_Test.cpp: specify thread name and stack size - on VxWorks. Thanks to Stan Leeson - for suggesting this. - - * tests/Env_Value_Test.cpp (TEST_THIS): cast val to (type) - before casting to (u_int), to try to avoid DEC CXX compiler - warning about integer overflow. Thanks to Frederic Andres - for reporting this. - - * ace/config-osf1-4.0.h: added ACE_HAS_EXCEPTIONS, etc., with - CXX 6.0. Thanks to Torbjorn Lindgren for - the patch. - - * ace/OS.i (thr_kill): removed ACE_ADAPT_RETVAL because - ::taskNameToID returns the task ID, not success/fail. - Thanks to Richard Keizer for - diagnosing the problem and providing the fix. - - * tests/run_tests.vxworks: enabled Thread_Manager_Test and - Message_Block_Test now that they succeed. Thanks to Richard Keizer - for the ACE_OS::thr_kill fix. - - * ace/OS.cpp (thr_create), ace/Thread_Manager.cpp (kill_thr): - on VxWorks, use strncmp instead of strcmp to check for allocated - thread ID. - -Thu Jan 22 16:34:18 1998 Douglas C. Schmidt - - * examples/Connection/misc/Connection_Handler.cpp (svc): Fixed a - bug in the example where the global Singleton Reactor was being - used rather than the object's Reactor. Thanks to Peter Gross - for reporting this. - -Thu Jan 22 09:04:13 1998 David L. Levine <@cs.wustl.edu> - - * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Iterator_Base ctor): - added a cast of mm.total_size_ to ssize_t, to try to avoid - a compiler warning. Thanks to Brian Mendel - for reporting this. - - * ace/config-osf1-4.0.h: updated g++ support. Thanks to - Oliver Kellogg for the patch. - - Thanks to Tom Venturella and Dave Mayerhoefer - (!) for requesting the following three changes: - - * ace/Thread_Manager.cpp: added support for a user-supplied - thread (VxWorks task) name. By itself, that means just passing - the ACE_thread_t along to ACE_OS::thr_create (). The tricky - part was then handling the case where the user doesn't supply - a name. It would be cleaner if the ACE_thread_t and ACE_hthread_t - typedefs were swapped on VxWorks, because the ACE_Thread_Manager - keys off of the ACE_thread_t. And in addition to being cleaner, - it would be safer because ACE_thread_t's currently aren't - guaranteed to be unique on VxWorks. - - * ace/OS.cpp (thr_create): on VxWorks only, use the t_id (task - name) and stack_size if supplied. Also added support for setting - the stack, but commented it out because it doesn't seem to work. - - * tests/Conn_Test.cpp: on VxWorks, assign thread (VxWorks task) - names to server and client threads, to test that feature. - - * ace/OS.cpp (spa [VxWorks only]): use ::taskSpawn () instead - of ::sp () so that the task name, ace_main, can be specified. - - * ACE-INSTALL.html: added note about not linked the ACE library - into every VxWorks executable. It should work when running - multiple ACE executables on a target, though I haven't tried it. - - * include/makeinclude/rules.local.GNU: set SOEXT if it was not set, - so that it's always non-null for make depend. - - * ace/OS.h: #define ACE_THR_PRI_FIFO_DEF on all threaded platforms, - if not already defined in OS.h or in the individual platform config - file. It should be used by applications for a default real-time - thread priority. - - * ace/config-chorus.GNU: added GreenHills support. - - * include/makeinclude/platform_chorus_ghs.GNU: added platform file. - -Wed Jan 21 21:37:03 1998 Nanbor Wang - - * ace/Hash_Map_Manager.cpp (close_i): Removed the HPUX_11 - destructor madness by saving the location to be destructed in a - temporary reference instead of calling the destructor from the - array directly. Thanks to Istvan Buki for - providing the patch. - -Wed Jan 21 20:36:43 1998 Chris Cleeland - - * ACE version 4.4.21, released Wed Jan 21 20:36:43 1998. - -Wed Jan 21 10:39:12 1998 David L. Levine - - * ace/Task.cpp (activate): for builds without threads only, - added ACE_UNUSED_ARG of stack and stack_size. - - * ace/High_Res_Timer.cpp: used unsigned constants instead of - signed, to allow resolution of overloaded - ACE_U_LongLong::operator/ (). - -Tue Jan 20 21:15:01 1998 Douglas C. Schmidt - - * ACE version 4.4.20, released Tue Jan 20 21:15:01 1998. - -Tue Jan 20 20:31:27 1998 Carlos O'Ryan - - * tests/test_config.h: - Changed several buffer sizes from BUFSIZ to MAXPATHLEN, they - were used for storing pathnames, so the later is a proper size - for them. - -Tue Jan 20 15:54:44 1998 Darrell Brunsch - - * ace/Timer_Heap_T.cpp: Fixed a bug that was introduced on - Sunday because of the non-use of position 0 (we have to - grow the heap one node early). - - * ace/Timer_Queue_T.{h,cpp}: Added a return_node () method - which is used to return a ACE_Timer_Node back into the - control of the Timer Queue after it leaves via - remove_first (). - -Tue Jan 20 15:52:31 1998 Douglas C. Schmidt - - * ACE version 4.4.19, released Tue Jan 20 15:52:31 1998. - -Tue Jan 20 12:49:05 1998 Nanbor Wang - - * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Manager): Member table_ - needs to be initialized to prevent deleting invalid memories. - -Tue Jan 20 11:57:24 1998 Carlos O'Ryan - - * bin/auto_compile: - Added several TAO components to the compile list. - The regular expression for make errors was missing several of - them. - -Tue Jan 20 03:36:54 1998 Nanbor Wang - - * ace/Hash_Map_Manager.cpp (open): We should call close_i () to - ensure previously allocated memory gets release before we - allocate new one. - -Mon Jan 19 22:21:34 1998 Nanbor Wang - - * tests/Env_Value_Test.cpp (main): Added test codes for unsigned - short. - - * ace/Env_Value_T.i (ACE_Convert): Added conversion function for - unsigned short. - -Mon Jan 19 15:13:47 1998 Douglas C. Schmidt - - * bin/Makefile: Fixed a problem with the CCFLAGS definition that - was causing circular macro expansion. Thanks to Philippe - O'Reilly for reporting this. - -Sun Jan 18 14:32:42 1998 Darrell Brunsch - - * ace/Timer_Heap_T.cpp: Problems were arising because of the - use of negative numbers in the timer_id array of the timer - heap for the free list. When the 0th index is in the free - list, pointers to it will show up as 0 (because 0 == -0). - This will look the same as a timer_id for the top of the - heap, and if cancel () was attempted on this invalid - timer_id, bad things would happen. To prevent this, index - 0 is now ignored so it doesn't show up in the free list. - -Sun Jan 18 18:12:52 1998 Nanbor Wang - - * examples/Service_Configurator/Misc/*.ds?: Added new project - files for this example. - -Sun Jan 18 17:27:52 1998 Darrell Brunsch - - * ace/Timer_Wheel_T.cpp: Fixed a problem with Timer Wheel's - expire(). The problem occured when the handle_timeout() method - of the event handler used would return a 0. This causes the - Timer Queue to cancel all timers using that event handler. - Because Timer Wheel's expire caches the position of some timers - that will be expired, it was trying to expire timers that were - already cancelled. Now it checks the timer before it expires. - -Sun Jan 18 16:08:36 1998 Douglas C. Schmidt - - * ace/Thread_Manager: Modified the signature to the spawn_n() - method so that it's possible to pass in an array of stack - pointers and stack sizes. Thanks to Thomas Venturella - for requesting this. - - * ace/Task: Modified the signature to the activate() method so - that it's possible to pass in an array of stack pointers and - stack sizes. Thanks to Thomas Venturella - for requesting this. - -Sun Jan 18 15:54:16 1998 Darrell Brunsch - - * ace/Timer_Wheel_T.h: - ace/Timer_Hash_T.h: - ace/Timer_Queue_T.h: - ace/Timer_Wheel_T.cpp: - ace/Timer_Hash_T.cpp: Added pure virtual get_first() method to - Timer_Queue_T. Added implementations to Timer_Wheel and Timer_Hash. - Timer_Heap and Timer_List already had implementations. - -Sat Jan 17 23:40:02 1998 Nanbor Wang - - * netsvcs/VCAUTO.MAK: - * netsvcs/lib/VCAUTO.MAK: Added directory information for easier - debugging. - -Sat Jan 17 16:10:04 1998 Douglas C. Schmidt - - * examples/Service_Configurator/Misc/main.cpp (main): Replaced the - buggy use of ACE_Service_Config daemon; with - ACE_Service_Config::open(). We'll have to fix this properly - some day, but for now this is the best solution. Thanks to - Pawel Roman for reporting this. - -Sat Jan 17 00:42:13 1998 Irfan Pyarali - - * ace/SString.cpp (substring): Fixed bug. count should be - initialized to length and not len_. - -Fri Jan 16 15:52:34 1998 Nanbor Wang - - * ace/IOStream.h (ACE_Streambuf): - * ace/config-win32-common.h: - * ace/iosfwd.h: - * ace/streams.h: Applied IOStream patches from James CE Johnson - . - -Fri Jan 16 01:42:52 1998 Irfan Pyarali - - * ace/OS.h: Changed the definition of ACE_CORBA_* macros so that - on non-Win32 platforms, they will be expand to the nested - classes. Thanks to Jonathan Reis - for reporting this. - - * ace/SString.h: Added the correct export macros. - -Thu Jan 15 15:45:48 1998 Douglas C. Schmidt - - * etc/ACE-guidelines.html: Reformatted this page a bit. - - * ace/Message_Queue.cpp (open): The fix from Slawomir Kuzniar was - incorrect. I reverted the change. - -Thu Jan 15 12:43:23 1998 Nanbor Wang - - * /: Added a bunch of makefiles (*.MAK) for one button - make-and-test on NT. - - * Makefile (FILTER): Added filter to remove VC one button related - makefile from ACE release. - - * ace/ACE_Library.{mdp,mak}: Added Shared_Memory.cpp file into the - project makefile. - -Thu Jan 15 09:12:26 1998 David L. Levine - - * tests/Barrier_Test.cpp,Message_Block_Test.cpp,Priority_Task_Test.cpp, - Reactor_Exceptions_Test.cpp,Reactors_Test.cpp,Thread_Mutex_Test.cpp: - (main): changed some local variables from int to size_t to avoid - signed/unsigned comparison. - - * ace/OS.i,config-linux-common.h,README: aded ACE_HAS_SOCKLEN_T - support for Linux/glibc2, which has a socklen_t type. - - * include/makeinclude/rules.local.GNU (depend.local): produce all 4 - combinations of .obj, .shobj, .o, and .so dependency targets. This - should take care of the problem of not rebuilding when a dependency - has changed, after we regenerate all the Makefiles. - - * include/makeinclude/rules.local.GNU (depend.local): removed the sed - rule that wiped out each Makefile line ending with :. I don't know - why that rule was there. With it, if a Makefile had a target such - as clean:, it got deleted. Not any more. - - * many Makefiles: updated dependences with revised depend.local. - - * bin/g++dep: added lib/g++-include path to gcc -MM invocation, so - that gcc can find all of its headers. (It didn't help to replace - gcc with g++, though I would have expected that to solve the - problem.) - - * ace/Timer_Heap_T.cpp (get_first): fixed ACE_TRACE id string. - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp, - * apps/Gateway/Peer/Peer.cpp (recv): - changed type of HEADER_SIZE to size_t to avoid signed/unsigned - comparison. - -Wed Jan 14 20:41:35 1998 Carlos O'Ryan - - * ace/Signal.i (is_member): - Fixed typo in new cast, the type is sigset_t not sigset. - -Wed Jan 14 20:27:44 1998 - - * ace/OS.h: - The new location for AF_ANY and AF_FILE was in the middle of a - big #if !ACE_WIN32, hence it was not working for NT, I moved it - further down and now NT is happy. - -Wed Jan 14 19:01:59 1998 Douglas C. Schmidt - - * ace/Message_Queue.cpp (open): In Message_Queue::open - deactivated_ flag is being set to 0 instead of - WAS_INACTIVE. This is causing incorrect return value from - first-time call to activate(). Thanks to Slawomir Kuzniar - for reporting this. - - * ace/Signal.i (is_member): Added an ACE_const_cast(). Thanks to - Oleg Krivosheev for reporting this. - -Wed Jan 14 06:45:52 1998 David L. Levine - - * ace/OS.i: Fixed typo in ACE_Time_Value::operator const timeval * - definition. (select's): cast the ACE_Time_Value to a - const timeval * and then to a timeval * so that they will - compile. - - * tests/Time_Value_Test.cpp (test_ace_u_longlong): made divisors of - operator/ tests explicitly unsigned, to avoid overloading problems - now that there are two division operators. - -Tue Jan 13 16:31:48 1998 Douglas C. Schmidt - - * ace/OS.i: Changed the signature of ACE_Time_Value::operator - timeval *() to return operator const timeval *(). Thanks to - Oleg Krivosheev for reporting this. Changed - several other unsafe casts to use the ACE_const_cast() macro. - -Tue Jan 13 13:30:23 1998 David L. Levine - - * ace/Profile_Timer.cpp (elapsed_time): use floating point - arithmetic for real_time calculation, in case delta_t is - less than ACE_ONE_SECOND_IN_NSECS (and for more precision - otherwise). Thanks to Brian Mendel for tripping over this. - - * ace/Basic_Types.{h,i} (ACE_U_LongLong): added - operator/ (const double). - - * ace/OS.h: moved definition of AF_FILE, etc., to _after_ the - #include of sys/socket.h. That way, the #ifndef AF_FILE - protection will work properly on Linux/glib2. Thanks to - Amos Shapira for breaking silence and - reporting this. - -Mon Jan 12 20:19:54 1998 Douglas C. Schmidt - - * ace/SString.i: Replaced all uses of NULL with 0 since NULL - causes problems with some lame C++ compilers. - - * ace/SString.i: Moved one of the inline find() methods down - so that GCC doesn't complain anymore. - - * tests/Reactor_Timer_Test.cpp (main): Changed long i to size_t i - to be consistent. - - * ace/Select_Reactor.h: Updated the explanation of how the - ACE_Select_Reactor_Token works. Thanks to Detlef Becker for - explaining this in great detail. - - * tests/test_config.h: Changed the type of all the consts to - size_t rather than int. This may cause a bit of upheaval at - first since we'll need to fix some other types. But it's the - "Right Thing"[TM] to do. - -Mon Jan 12 18:31:23 1998 Nanbor Wang - - * Start renaming MSVC 4.2 workspace/makefile names. - - * apps/Gateway/Peer/Peer4.{mdp,mak}: - * apps/Gateway/Gateway/Gateway4.{mdp,mak}: Made them in synch with - VC 5.0's status. - -Mon Jan 12 12:30:34 1998 David L. Levine - - * ace/config-linux-common.h: moved - ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES so that it isn't used - with egcs. Thanks to Gonzo for testing this. - - * tests/Service_Config.test: changed type of VARIETIES to u_int to - avoid signed/unsigned comparison in main. Thanks to Gonzo for - reporting this. - - * ace/config-linux-common.h: added ACE_HAS_TEMPLATE_TYPEDEFS and - ACE_HAS_TYPENAME_KEYWORD. Thanks to Oleg Krivosheev - for reporting these. - - * ace/config-vxworks5.x.h: merged the two VxWorks configs (g++ and - ghs) into this new config for easier maintenance. Added - ACE_THR_PRI_FIFO_DEF, set to 6. - - * tests/Reactor_Timer_Test.cpp (main): cast i to u_long to avoid - signed/unsigned comparison. - -Sun Jan 11 23:02:07 1998 Irfan Pyarali - - * tests/SString_Test.cpp (main): Removed the "silly" strings from - the tests. They are annoying and cause memory leaks. - -Sun Jan 11 22:16:28 1998 Nanbor Wang - - * apps/Gateway/Peer/Peer.{h,cpp} (transmit): Changed the function - to return the result of transmission. - (transmit_stdin): Make sure the function returns proper results - of transmission. - -Sun Jan 11 16:18:15 1998 Douglas C. Schmidt - - * ACE version 4.4.18, released Sun Jan 11 16:18:15 1998. - -Sun Jan 11 00:00:26 1998 Douglas C. Schmidt - - * apps/Gateway/Gateway/Gateway.cpp (parse_connection_config_file): - Fixed a typo, == should be =. Thanks to David Levine for - reporting this. - - * apps/Gateway/Peer/Peer.cpp (recv), - apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (recv): - Added a cast to remove a GCC warning about signed/unsigned - comparisons. Thanks to David Levine for reporting this. - - * ace/Log_Msg.cpp (log): Made a minor change to move where the - message is copied from thread-specific storage into the transfer - buffer. Thanks to Patrick J. McNerthney - for reporting this. - - * apps/Gateway/Peer/Peer: Added new logic to transmit subscription - requests to the Gateway. - - * apps/Gateway/Gateway/Event.h (class Event_Header): Make sure - that we correctly encode/decode the connection_id. - -Sat Jan 10 18:17:06 1998 Douglas C. Schmidt - - * apps/Gateway/Gateway/Event.h: Added the event priority_ field to - the Event_Key. We don't currently use this, but we may some - day. - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (put): - Changed the forward() method to process() since our new scheme - will need to do more than just forward, e.g., it will need to - handle subscriptions. - - * apps/Gateway/Gateway/Connection_Handler: Made the accessors - const member functions and also added accessors for the - Event_Channel * so this can be set by the - Connection_Handler_Acceptor::accept_svc_handler() method. - - * apps/Gateway/Gateway/Connection_Handler: Added mutators so that - we can set the local and remote addresses outside of the - constructor. - - * apps/Gateway/Gateway/Options: Added a connection_id() accessor - to set/get the connection id. This makes it possible to allow - Peers to connection with the Gateway. - - * apps/Gateway/Gateway/Gateway.cpp (parse_connection_config_file): - Added a sanity check to ensure that the connection ids start at - 1 and increment by 1. - -Sat Jan 10 22:37:37 1998 David L. Levine - - * ace/SString.i (find): changed type of local i to size_t to - avoid signed/unsigned comparison. - -Sat Jan 10 14:57:01 1998 - - * ace/Env_Value_T.h: - The return value for the assignment operator had no template - parameter, ditto for the arguments of the copy constructor and - the already mentioned operator. - -Sat Jan 10 13:20:08 1998 Nanbor Wang - - * tests/Conn_Test.cpp: Moved template instantiation codes around - to avoid warnings. - -Sat Jan 10 01:36:08 1998 Irfan Pyarali - - * ace/SString: Made the following changes to make the ACE string - class look more like the STL string class: - - - Added npos to all classes. - - - Added non-const reference operator[]. - - - Changed operator= and operator+= to return *this. - - - Added STL like find and rfind routines - - - Made the three classes be a similar as possible. - - - Changed the implementation of strstr to use the C library - strstr function. - - - Added constructors from single characters. - - - Made substring a const method. - -Fri Jan 9 19:11:39 1998 Nanbor Wang - - * tests/Map_Manager_Test.cpp (test_hash_map_manager): Added - ACE_UNUSED_ARG to eliminate warnings. - - * ace/Hash_Map_Manager.cpp (rbegin): Added more static cast to - eliminate warning messages. - -Fri Jan 9 11:35:53 1998 Douglas C. Schmidt - - * examples/Service_Configurator/IPC-tests/server/server_test.cpp: - Fixed a syntax error. Thanks to John Mulhern - <9107@MN3.LAWSON.lawson.com> for reporting this. - - * ace/Log_Msg.cpp (log): Changed abort_prog == 0 to abort_prog so - that STDERR would be printed correctly. - - * ACE-categories: Added all the ACE files into the ACE-categories - listing. Thanks to Andres Kruse for motivating this. - - * include/makeinclude/platform_sunos5_egcs.GNU (CXX): Removed - -pipe from CC and CXX. It was already in CCFLAGS. - -Fri Jan 09 11:56:44 1998 Irfan Pyarali - - * ace/config-win32.h (ACE_ORBIX_HAS_NAMESPACES): By default, you - will get the proper namespace usage for Orbix. If you don't - like this, comment out the #define ACE_ORBIX_HAS_NAMESPACES line - or #undef ACE_ORBIX_HAS_NAMESPACES in your config.h file after - including this config-win32.h. - -Fri Jan 09 07:04:47 1998 David L. Levine - - * include/makeinclude/platform_sunos5_g++.GNU: removed - -pipe from CC and CXX. It was already in CCFLAGS. - - * include/makeinclude/platform_vxworks5.x_g++.GNU: added - target-dependent support for symbol table extractor, and - disabled symbol table extraction (POSTLINK) by default. - Thanks to Keith Nicewarner for - reporting problems with this on PPC604 targets. - - * ace/config-linux-common.h: added ACE_HAS_STDCPP_STL_INCLUDES - and removed ACE_LACKS_ACE_IOSTREAM. Thanks to James CE Johnson - for reporting these. - - * tests/run_tests.vxworks: added Env_Value_Test. - -Fri Jan 09 00:14:20 1998 Nanbor Wang - - * apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp: - * apps/Gateway/Gateway/Config_Files.cpp: Defined - ACE_BUILD_SVC_DLL flag. All declarations of an exported class - must be declared with the same exporting flag. - - * apps/Gateway/Peer/Options.h: Updated the path of include file - Event.h. - -Thu Jan 08 22:11:57 1998 Nanbor Wang - - * ace/Env_Value_T.i (ACE_Convert): Added static cast for int and - short conversion funcions. - -Thu Jan 08 21:37:30 1998 Douglas C. Schmidt - - * ACE version 4.4.17, released Thu Jan 08 21:37:30 1998. - -Thu Jan 8 19:50:43 1998 Douglas C. Schmidt - - * ace/Task: Added a virtual destructor for ~ACE_Task_Base. Thanks - to Oleg Krivosheev for suggesting this. - - * ace: Added a new config-sunos5.5-egcs.h for the EGCS compiler. - Thanks to Oleg Krivosheev for contributing - this. - - * include/makeinclude: Added a new platform macros file for the - EGCS compiler on Solaris 2.x. Thanks to Oleg Krivosheev - for contributing this. - - * include/makeinclude/platform_sunos5_g++.GNU (CXX): Added the - -pipe flag. - - * man: Updated all the manual pages. - - * ace/Log_Msg: Added changes to allow the logging of custom built - log records. The main reason for these changes is to allow code - to handle the logging of out of memory conditions without - allocating any additional memory. Thanks to Patrick - J. McNerthney for this feature. - - * ace/Log_Msg: Added a new method called log_priority_enabled(), - which returns true if the priority is enabled (gee, is *that* - what it does? ;-)). Thanks to Patrick J. McNerthney - for this feature. - - * examples/Service_Configurator/IPC-tests/server/server_test.cpp - (main): Revised the driver program so that it doesn't create an - explicit ACE_Service_Config object. Thanks to John Mulhern - <9107@MN3.LAWSON.lawson.com> for reporting this. - - * apps/Gateway/{Gateway,Peer}/Options.cpp: Oops, ACE_BUILD_DLL - should be ACE_BUILD_SVC_DLL, yikes! Thanks to Jeff Hellzen - for reporting this. - - * apps/Gateway/{Peer,Gateway}/Options.{h,cpp}: Added a missing - #define ACE_BUILD_DLL and a missing ACE_Svc_Export. Thanks to - Jeff Hellzen for reporting this. - - * ace/Select_Reactor.cpp (suspend_i): The clr_bit call was - mistakenly made on the write mask, rather than the read mask. - Thanks to Billy Quinn for reporting this. - -Thu Jan 08 16:02:33 1998 Nanbor Wang - - * ace/Hash_Map_Manager.{h,cpp}: Added STL-styled iterator - functions. - - * tests/Map_Manager_Test.cpp: - * tests/Hash_Map_Manager_Test.cpp: - * tests/Conn_Test.cpp: - * ace/Local_Name_Space.cpp: - * ace/Filecache.cpp: Added missing template instantiation codes. - -Thu Jan 08 11:05:15 1998 - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Added the new Shared_Memory.cpp file to the project. - -Wed Jan 07 20:40:45 1998 David L. Levine - - * ace/OS.h: protect #define of AF_FILE, because Linux/RedHat 5.0 - #defines it in /usr/include/socketbits.h. Thanks to James CE - Johnson for reporting this. - - * tests/test_config.h (set_output): "if (! test_dir)" instead of - "if (test_dir)" so the output filename ends up non-null. - - * ace/Shared_Memory.{h,cpp},Makefile (~ACE_Shared_Memory): made - virtual and non-line. Added file Shared_Memory.cpp to contain - the definition. - -Wed Jan 07 17:59:57 1998 Nanbor Wang - - * ace/Free_List.i (add): Only delete freeed item when we hit the - high water mark, not the other way around. Thanks to Stuart - Myles for pointing this out. - -Wed Jan 7 17:46:09 1998 James C Hu - - * examples/Timer_Queue/Thread_Timer_Queue_Test.h: - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.h: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Driver.h: - * examples/Timer_Queue/Driver.cpp: - Added virtual destructors to classes that needed them. - -Wed Jan 7 16:28:16 1998 Douglas C. Schmidt - - * ace/Event_Handler_T.cpp: Reordered the initializers in the - ACE_Event_Handler_T constructor so G++ doesn't complain. Thanks - to Oleg Krivosheev for reporting this. - - * ace/Shared_Memory.h: Added a virtual destructor to the - ACE_Shared_Memory abstract base class so that EGCS won't - complain. Thanks to Oleg Krivosheev for - reporting this. - - * ace/Event_Handler_T.h: Had to include the *.cpp file into .h - when ACE_TEMPLATES_REQUIRE_SOURCE is defined. Thanks to Oleg - Krivosheev for reporting this. - -Wed Jan 07 14:31:34 1998 Douglas C. Schmidt - - * ACE version 4.4.16, released Wed Jan 07 14:31:34 1998. - -Wed Jan 7 13:38:28 1998 Douglas C. Schmidt - - * tests/test_config.h (set_output): Added an environment variable - to specify where to put the log directory: ACE_TEST_DIR. Thanks - to Keith Nicewarner for reporting this. - - * ace/Service_Repository.cpp (close): Removed a fragment of - redundant code. Thanks to Eric Newton and Alex - Chan for reporting this. - -Tue Jan 06 17:19:13 1998 Nanbor Wang - - * ace/Containers.{h,cpp} (ACE_Unbounded_Set[_Iterator]): Added - STL-styled iterator functions. Changed the internal - representation of ACE_Unbounded_Set within iterators from a - reference to a pointer. We need this to compare if two - iterators are refering to the same set or not. - -Tue Jan 6 14:11:54 1998 Carlos O'Ryan - - * tests/Reader_Writer_Test.cpp: - Reverted to revision 4.21 since the latest one (4.23) fails; - thanks to Irfan for this solution. - -Tue Jan 06 10:37:49 1998 David L. Levine - - * ace/OS.i (rw_trywrlock_upgrade): moved the #if 0 up a bit so - that it builds on Linux/non-glibc. For some reason, its - preprocessor was getting confused. - - * ace/OS.i (nanosleep): convert nanoseconds to microseconds - by dividing by 1000, not multiplying. Thanks to - Mitch Kuninsky for reporting this. - - * ace/config-mvs.h: added ACE_LACKS_LONGLONG_T because MVS doesn't - support it. Thanks to Chuck Gehr for - confirming that. - -Mon Jan 5 01:20:51 1998 Nanbor Wang - - * ace/Map_Manager.{h,cpp}: Made operator == and != and their - arguments const. - -Sun Jan 04 19:45:47 1998 David L. Levine - - * ace/IPC_SAP.cpp (enable,disable): moved return 0 at end - to inside the #endif, to avoid warning about unreachable - return statement on ghs/VxWorks. Thanks to Brian Mendel - for reporting this. - - * ace/OS.i (rw_trywrlock_upgrade): moved return 0 inside the - #if 0 block to avoid warning about unreachable return statement - on ghs/VxWorks. Thanks to Brian Mendel for reporting this. - - * ace/OS.i (rw_trywrlock_upgrade): added ACE_UNUSED_ARG (rw) - to temporary code. - - * ace/Basic_Types.{h,i},README: replaced ACE_HAS_LONGLONG_T with - ACE_LACKS_LONGLONG_T. ACE_HAS_LONGLONG_T was no longer - being used on many platforms with the scheme in Basic_Types.h. - From now on, we'll assume that a platform has long long - (unless ACE_LACKS_LONGLONG_T is #defined), which should help - porting to new platforms. - - * ace/config-aix-4.{1,2}.x.h,config-dgux-4.11-epc.h, - config-linux-{common,kcc}.h,config-lynxos.h,config-m88k.h, - config-osf1-*.h,config-sunos5.*.h,config-tandem.h: - removed ACE_HAS_LONGLONG_T. - - * ace/config-chorus.h,config-psosim-g++.h,config-vxworks*.h: - added ACE_LACKS_LONGLONG_T. - - * ace/Basic_Types.{h,i} (ACE_U_LongLong): fixed operator/, and - added operator% and operator--. - - * ace/High_Res_Timer.*: changed type of global_scale_factor_ from - u_long to ACE_UINT32. Removed some hacks now that ACE_U_LongLong - has operator%. - - * tests/Time_Value_Test.cpp: added tests of ACE_U_LongLong - operator/ and operator%. - - * ACE-INSTALL.html: added link to Cygus repo patches. Thanks - to Achint Sandhu for providing the URL. - - * ace/OS.{h,i}: added ACE_OS::putenv (). - - * tests/Env_Value_Test.cpp: use ACE_OS::putenv (). - - * tests/Env_Value_Test.cpp: expect (unsigned long) -10 for - TEST_VALUE_NEGATIVE converted to an unsigned long. - Thanks to Jack Erickson for - verifying that it _should_ return (unsigned long) -10. - - * ace/OS.i (strtoul): on Linux with glibc, use ::strtol instead of - ::strtoul and cast the result to an unsigned long. Its ::strtoul - always seems to return 0 for a negative number, at least on - RedHat 4.2/Linux 2.0.30/Alpha with glibc 2.0 (0.961212-5). - - * ace/config-linux-common.h: factored out - ACE_LACKS_SOME_POSIX_PROTOTYPES from glibc and non-glibc - sections to common section. - - * etc/purify.solaris2: added suppression of MIU from putenv. - -Sun Jan 04 17:19:31 1998 Douglas C. Schmidt - - * ACE version 4.4.15, released Sun Jan 04 17:19:31 1998. - -Sun Jan 4 10:11:53 1998 Douglas C. Schmidt - - * ace/OS.i (rw_trywrlock_upgrade): Temporarily comments out this - method since we need to finish implementing it correctly. - - * ace/OS.i (rw_trywrlock_upgrade): Fixed a minor bug where we - weren't releasing the lock correctly if there were competing - readers. - - * apps/Gateway/Gateway/Event_Channel.cpp (put): Uncommented the - code that sets the appropriate locking strategy for the Message - Blocks. - - * apps/Gateway/Gateway/Connection_Handler.h: Made the - remote_addr() and local_addr() accessor methods return - const-correct values. - - * build/SunOS5.5/ace/OS: Revised a bunch of #ifdefs so that we can - selectively enable the ACE rwlock emulation, even if we're - compiling with ACE_HAS_STHREADS in order to get the native - Solaris semaphores. - - * apps/Gateway/Peer/Makefile: Tweaked the Makefile rules to fix - some minor problems. Thanks to David Levine for showing the - way... - -Sun Jan 04 12:37:02 1998 David L. Levine - - * tests/Env_Value_Test.cpp: hacked to work with - ACE_HAS_NONSTATIC_OBJECT_MANAGER. With that, it uses ::putenv (), - which we should wrap in ACE_OS. Also, expanded TEST_THIS to - provide a more helpful log message than just the ASSERT output. - - * ace/config-vxworks5.x-g++.h: removed - ACE_HAS_TEMPLATE_SPECIALIZATION. - - * tests/Hash_Map_Manager_Test.cpp (main): added casts of i->ext_id_ - and i->int_id_ to (char *) to force g++/VxWorks to apply the - conversion from Dumb_String to char *. - -Sun Jan 04 09:51:59 1998 Nanbor Wang - - * apps/Gateway/Gateway/Options.{h,cpp}: Removed macros to export - this class out of DLL. They are no longer needed. - - * apps/Gateway/Gateway/Gateway.dsp: Updated source file listings. - -Sat Jan 3 22:25:15 1998 Douglas C. Schmidt - - * apps/Gateway/Gateway: Changed the name of the ACE_Event_Channel - class to Event_Channel since this class wasn't a part of the ACE - library. - - * apps/Gateway/Gateway/Event_Channel.h: Updated the inheritance - relationship for Event_Channel so that it inherits from - ACE_Event_Handler rather than ACE_Task. ACE_Task was - overkill... - - * apps/Gateway/Gateway: Removed the supplier_id from all the - files. We didn't use this anyway and it was just confusing. - Also, renamed Proxy_* to Connection_* to underscore the fact - that the Supplier_Handler and Consumer_Handler work atop - *connections*. The previous naming scheme was too abstract for - its own good. - -Sat Jan 03 14:16:40 1998 Nanbor Wang - - * ace/Map_Manager.cpp (ACE_Map[_Reverse]_Iterator): Fixed the - initial iterator position. - -Fri Jan 02 18:43:14 1998 Douglas C. Schmidt - - * ACE version 4.4.14, released Fri Jan 02 18:43:14 1998. - -Fri Jan 2 17:39:04 1998 Douglas C. Schmidt - - * apps/Gateway/Peer/Options.cpp (Options): Rearranged the order of - the parameters in the base/member initialization section to make - GCC happy. Thanks to David Levine for getting on me about this. - - * apps/Gateway/Gateway/Options.h: Changed DEFAULT_TIMEOUT - to MAX_TIMEOUT to be consistent. Thanks to David - Levine for reporting this. - -Fri Jan 2 17:25:05 1998 Nanbor Wang - - * tests/Map_Manager_Test.cpp: Added codes to test STL-styled - functions in ACE_Map_Manager. - - * apps/Gateway/Gateway/Proxy_Handler.cpp: - * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: - * apps/Gateway/Gateway/Event_Channel.cpp: - * apps/Gateway/Peer/Peer.cpp: - * ace/Local_Name_Space.cpp: - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: - * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/Connection/misc/test_upipe.cpp: - * examples/Connection/non_blocking/test_sock_connector.cpp: - * examples/Connection/non_blocking/test_spipe_connector.cpp: - * examples/Connection/non_blocking/test_tli_connector.cpp: - * examples/Connection/non_blocking/test_lsock_connector.cpp: - * netsvcs/clients/Tokens/manual/manual.cpp: - * netsvcs/lib/TS_Clerk_Handler.cpp: - * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: Added some - more explicit template instantiations. - - * ace/Map_Manager.{h,cpp}: Added back comparison operators for - ACE_Map_Iterator and ACE_Map_Reverse_Iterator. - - * ace/Token_Invariants.cpp: - * ace/Token_Collection.cpp: - * ace/Token_Manager.cpp: Added missing ACE_Map_Reverse_Iterator. - - * ace/Map_Manager.h: Remove unnecessary method declarations from - ACE_Map_Iterator adn ACE_Map_Reverse_Iterator. - - * examples/Connection/non_blocking/test_tli_connector.cpp: - * examples/Connection/non_blocking/test_sock_connector.cpp: - * examples/Connection/non_blocking/test_lsock_connector.cpp: - * examples/Connection/non_blocking/test_spipe_connector.cpp: - * examples/Connection/misc/test_upipe.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: - * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: - * apps/JAWS/clients/Caching/http_handler.cpp: - * apps/JAWS/clients/Blobby/Blob.cpp: - * apps/Gateway/Peer/Peer.cpp: - * apps/Gateway/Gateway/Event_Channel.cpp: - * apps/Gateway/Gateway/Proxy_Handler.cpp: - * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: - * tests/Reactor_Performance_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Map_Manager_Test.cpp: - * tests/Conn_Test.cpp: - * netsvcs/lib/TS_Clerk_Handler.cpp: - * ace/Token_Manager.cpp: - * ace/Token_Invariants.cpp: - * ace/Token_Collection.cpp: - * ace/Local_Name_Space.cpp: Added explicit template instantiation - for ACE_Map_Iterator_Base. - - * ace/Map_Manager.{h,cpp}: Added a new class ACE_Map_Iterator_Base - to abstract out most common functionalities from - ACE_Map_Iterator and ACE_Map_Reverse_Iterator. Added some - missing functions to both iterator classes. - -Fri Jan 2 12:39:45 1998 Carlos O'Ryan - - * ace/Map_Manager.h: - Another declaration removed from ACE_Map_Reverse_Iterator, - operator* is defined in the base class. - - * tests/Conn_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Reactor_Performance_Test.cpp: - The instantiation of ACE_Map_Manager *requires* instantiating - ACE_Map_Reverse_Iterator. - - * ace/OS.i: - Cannot use ACE_ASSERT in OS.i, at least it make SGI compiler - unhappy. - - * ace/Map_Manager.cpp: - Several methods for ACE_Map_Manager were not given their fully - qualified name. - - * ace/OS.i: - The error code should be stored in errno, not in "error". - -Fri Jan 2 17:02:36 1998 Chris Cleeland - - * tests/run_tests.sh: Added Env_Value_Test to the list of tests to - run. - - * tests/Env_Value_Test.cpp (main): Fixed wrong test for negative - values with unsigned longs. Thanks to David Levine and - Linux/Alpha for finding this. - - * tests/Env_Value_Test.cpp (main): Changed the definition of the - TEST_THIS macro to be all on one line. While ugly, this helps in - locating the line when ACE_ASSERT fails, since allowing the macro - to have multiple lines skews the line # reported by ACE_ASSERT. - - * ace/Env_Value_T.*: Fixed lots of little bugs that got past both - g++ and Solaris compilers, but were caught by the ever-skeptical - SGI compiler. This included providing a definition for the missing - 'varname(void)' method. - -Fri Jan 02 10:12:28 1998 Steve Huston - - * ace/config-hpux-10.x-g++.h: Added #define HPUX_10 to catch OS - version-dependent code correctly. - -Fri Jan 02 07:06:44 1998 David L. Levine - - * apps/Gateway/Gateway/Makefile: restored the .obj/*.o targets. - They don't affect the build of the shared lib and are used if - the unshared lib is built. - - * apps/Gateway/Gateway/Options.h: added missing , in enum definition. - - * apps/Gateway/Gateway/Options.cpp (Options ctor): reordered - initializers to match declaration order. - - * apps/Gateway/Gateway/Config_Files.cpp (read_entry): fixed syntax - error, missing "if" after "else". Added #include of Options.h. - - * ace/OS.i (rw_trywrlock_upgrade): added ACE_UNUSED_ARG (rw) with - STHREADS. - - * ace/Synch.i (tryacquire_write_upgrade): only define if - ACE_HAS_THREADS. - - * tests/test_config.h: hacked ACE_INIT_LOG to work on VxWorks. - VxWorks gets upset if its asked to unlink a nonexistant file. - - * ace/Basic_Types.*: if using ACE_U_LongLong, #define - ACE_USES_ACE_U_LONGLONG and use that in the .i and .cpp files - instead of repeating all of the complex preprocessor tests - in Basic_Types.h. Thanks to Carlos for suggesting this. - - * ace/Env_Value_T.cpp: added protection against multiple inclusion. - - * tests/Env_Value_Test.cpp: added ACE_Env_Value instantiation. - -Fri Jan 02 00:47:33 1998 Douglas C. Schmidt - - * ACE version 4.4.13, released Fri Jan 02 00:47:33 1998. - -Fri Jan 2 00:17:04 1998 Douglas C. Schmidt - - * Reader_Writer_Test.cpp: Changed from an ACE_RW_Mutex to an - ACE_RW_Thread_Mutex so that we can use the new - tryacquire_write_upgrade() method. - - * ace/Env_Value_T.h: Reformatted the file a bit to conform to - ACE coding conventions. - -Thu Jan 1 12:04:29 1998 Douglas C. Schmidt - - * apps/Gateway/Peer/Options.cpp (parse_args): Changed the option - to set the passive acceptor port from -p to -a. This is now - consistent with the option for active connector port number, - which is -c. - - * apps/Gateway/Gateway/Gateway.cpp (fini): Added a call to - ACE::remove_stdin_handler(), which removes the handler for - ACE_STDIN so the gatewayd will shutdown cleanly. - - * ace/ACE: Added a new method, remove_stdin_handler(), which is - the inverse of the register_stdin_handler() method. However, - I'm not sure how to make this work on NT! - - * examples/Reactor/Misc/notification.cpp: Removed some - CHORUS-specific, which should be a no-op with our new signal() - and sigaction() scheme. - - * ace/OS.i: Enhanced the signal() and sigaction() wrappers so that - they simply ignore signums of 0. This means that we don't need - to special case all this stuff throughout ACE anymore. - - * ace/OS.h: Changed all the #defines for various SIG* so that they - are all 0. This way, we can ensure that the signal() functions - in ACE_OS can correctly ignore these signals. This should clean - up a ton of platform-dependent code throughout ACE. - - * apps/Gateway/Gateway/File_Parser.cpp (getint): Added a new - special-case check for the '*' character, which indicates "use - the default value for this field." - - * apps/Gateway/Gateway/Options: Added a new option to provide a - default max retry timeout. - - * tests/Reader_Writer_Test.cpp: Enhanced the test so that it - exercises the new "upgrade" feature of RW_Thread_Mutexes. - - * ace/{OS,Synch}: Added new methods, - ACE_OS::rw_trywrlock_upgrade() and - ACE_RW_Thread_Mutex::tryacquire_write_upgrade() that - conditionally upgrade a read lock to a write lock. This only - works if there are no other readers present, in which case the - method returns 0. Otherwise, the method returns -1 and sets - errno to EBUSY. Note that the caller of this method *must* - already possess this lock as a read lock. - - * apps/Gateway/{Gateway,Peer}/Makefile: Removed the $(VLIB) macro - so that we don't try to build the lib*.a files by default. - Thanks to David Levine for explaining this. - - * apps/Gateway/Gateway: Added new Options.{h,cpp} files and - rearranged the program to centralize all options processing in - an Options Singleton. - - * apps/Gateway/Peer/Options.cpp (parse_args): Changed the - connector and acceptor options to use a more generalizable - format. Now we can set the Consumer and Supplier port numbers - independently. - - * apps/Gateway/Gateway/Event.h: This is currently where the macros - from the following bullets have been moved, so they can be - shared by the Peer and Gateway components. - - * ace/OS.h: Moved the ACE_DEFAULT_{GATEWAY,PEER}_SERVER_PORT - macros into the Gateway application, where they belong. - - * apps/Gateway/Peer/Options.cpp (parse_args): Changed the option - to set the passive acceptor port from -p to -a. This is now - consistent with the option for active connector port number, - which is -c. - - * apps/Gateway/Gateway/Gateway.cpp (fini): Added a call to - ACE::remove_stdin_handler(), which removes the handler for - ACE_STDIN so the gatewayd will shutdown cleanly. - - * ace/ACE: Added a new method, remove_stdin_handler(), which is - the inverse of the register_stdin_handler() method. However, - I'm not sure how to make this work on NT! - - * examples/Reactor/Misc/notification.cpp: Removed some CHORUS-specific - code, which should be a no-op with our new signal() and sigaction() - scheme. - - * ace/OS.i: Enhanced the signal() and sigaction() wrappers so that - they simply ignore signums of 0. This means that we don't need - to special case all this stuff throughout ACE anymore. - - * ace/OS.h: Changed all the #defines for various SIG* so that they - are all 0. This way, we can ensure that the signal() functions - in ACE_OS can correctly ignore these signals. This should clean - up a ton of platform-dependent code throughout ACE. - - * apps/Gateway/Gateway/Gateway.cpp (init): Revised the code a bit - to factor out platform-dependent signal handling stuff in the - right place. - - * apps/Gateway/Gateway/gatewayd.cpp: Cleaned up the gatewayd main - program so that it reuses more ACE components and so that it is - more portable. - -Thu Jan 01 18:24:56 1998 Nanbor Wang - - * apps/Gateway/Gateway/Gateway.dsp: Added new file Options.cpp. - - * apps/Gateway/Gateway/Options.cpp (ACE_BUILD_SVC_DLL): Added - #define ACE_BUILD_SVC_DLL. - - * netsvcs/lib/Base_Optimizer.i: Removed this file. - - * netsvcs/lib/Base_Optimizer.h: Added codes to include in the - source file conditionally if needed. - - * netsvcs/lib/Base_Optimizer.cpp: Moved template implementation - from .i file. Removed ACE_INLINE keyword. - - * netsvcs/lib/Server_Logging_Handler.cpp: Added explicit template - instantiation macros. - -Thu Jan 01 17:13:06 1998 David L. Levine - - * apps/Gateway/Peer/Peer.cpp (Peer_Connector::open): added - return 0 statement at end. - - * apps/Gateway/Gateway/Options.cpp (Options ctor): reordered - initializers to match declaration order. - - * apps/Gateway/Gateway/Makefile: removed LOBJ and SHOBJ macros - because they're not needed. And, restored BUILD so that static - lib will be built if requested. - - * include/makeinclude/rules.lib.GNU: added OBJEXT macro, defaulted - to "o", and use it in VOBJS definition. - - * include/makeinclude/wrapper_macros.GNU: if building shared libs - only, set OBJEXT to "so" and VDIR to .shobj/, so that only shared - objects will be built. - - * apps/Gateway/Peer/Peer.cpp: added template instantiations. - - * netsvcs/lib/Base_Optimizer.*,Makefile: moved inline functions - to .i file and changed inline to ACE_INLINE. - - * netsvcs/lib/Server_Logging_Handler_T.{h,cpp}: don't use - Base_Optimizer with g++. Some versions of g++ 2.7.x have - trouble with its inline template member functions, especially - if __ACE_INLINE__ is disabled. - -Thu Jan 01 07:56:17 1998 Douglas C. Schmidt - - * ACE version 4.4.12, released Thu Jan 01 07:56:17 1998. - -Thu Jan 01 00:28:46 1998 Nanbor Wang - - * apps/Gateway/Peer/Peer.dsp: Added a new file "Options.cpp" into - this project. - - * tests/Env_Value_Test.cpp (main): Changed variable name: 'environ' - to 'envp'. Real OSes don't understand what the word means - and Access Violations will occur. - - * tests/run_tests.bat: Added Env_Value_Test. - - * tests/version_tests/version_tests.dsw: - * tests/tests.dsw: Added Env_Value_Test.dsp. - - * tests/version_tests/Env_Value_Test.dsp: - * tests/Env_Value_Test.dsp: New file. - -Thu Jan 1 00:00:00 1998 Douglas C. Schmidt - - * Happy New Year! Here's a thought for the new year, courtesy of - Sumedh: - - Nothing in the world is permanent, - and we're foolish when we ask anything to last; - but surely we're still more foolish - not to take delight in it while we have it. - - - W.Somerset Maugham (Razor's Edge) - -Wed Dec 31 19:10:59 1997 Douglas C. Schmidt - - * apps/Gateway/Peer/Peer: Added the hooks for making the Peer a - Connector, as well as an Acceptor. Now it's time to have some - fun. - - * apps/Gateway/Peer/peerd.cpp: Cleaned up the peerd main program - so that it reuses more ACE components and so that it is more - portable. - - * netsvcs/servers/main.cpp (main): Revised the code a bit to - factor out platform-dependent signal handling stuff in the right - place. - - * apps/Gateway/Peer: Factored out some common initialization code - to create an Options Singleton. Yowza! - - * apps/Gateway/README: Improved the documentation so that its - easier to tell what's supposed to happen and how to configure - the system. - - * apps/Gateway/Peer/Peer: Moved the Peer_Acceptor into the Peer.h - file and updated the documentation to clarify what's going on - better. - - * examples/Reactor/Dgram/: Enhanced the examples to make sure they - close() the dgram endpoint when the object is removed from the - Reactor. Thanks to Evgeny Beskrovny - for reporting this. - - * ace/Obstack.cpp: Fixed a stupid bug in the ACE_Obstack - constructor. Thanks to David Levine for reporting this. - - * ace/Local_Name_Space_T.h: Updated the documentation for class - ACE_Name_Space_Map to make it more clear. - -Wed Dec 31 21:21:50 1997 David L. Levine - - * examples/Reactor/Dgram/{CO,Dgram.cpp} (handle_close): added - ACE_UNUSED_ARG (handle). - - * tests/Env_Value_Test.cpp (main): removed unused arg argv and - local envargv. undef'ed ACE_HAS_NONSTATIC_OBJECT_MANAGER because - it can't deal with the three arguments to main (). - -Wed Dec 31 16:25:16 1997 Chris Cleeland - - * ace/Env_Value_T.*: Added a new template (ACE_Env_Value) which is - a typesafe encapsulation of environment variables with the - ability to provide a value to be used as a default if the - variable isn't set. An example of its use can be seen in the - corresponding test, tests/Env_Value_Test.cpp. Thanks to Carlos - O'Ryan for giving me the seed that started this. - - * tests/Env_Value_Test.cpp: Added test for the new template added - above. - - * tests/Makefile: Added new Env_Value_Test test to the Makefile. - - * ace/OS.{h,i} (strtod): Added new function for converting strings - to doubles. - -Tue Dec 30 22:07:44 1997 David L. Levine - - * ace/High_Res_Timer.cpp (elapsed_time): added a cast in - calculation of useconds to avoid MSVC++ warning about narrowing. - Thanks to Nanbor for reporting this. - - * ace/OS.i (gethrtime): commented out high-res tick counter on Linux - because it doesn't seem to work properly. Use ::gettimeofday () - instead. - - * tests/Basic_Types_Test.cpp (main): replaced #ifdef VXWORKS && ghs - with !ifdef ACE_HAS_WCHAR_TYPEDEFS_CHAR. - - * ace/Map_Manager.cpp (operator*): fixed typo in "ACE_Map_Entry". - - * ace/OS.h: added ACE_NSIG. In addition, I removed this: - - // Why is this defined? It must be a std C library symbol. - #if !defined (NSIG) - #define NSIG 0 - #endif /* NSIG */ - - We #define NSIG elsewhere on platforms (VxWorks, MVS) that need it. - #defining it to be 0 isn't good; it's better to catch the lack of - NSIG at compile time than at run time. - - * ace/{Log_Msg.cpp,OS.i,Select_Reactor.cpp,Signal.*,WFMO_Reactor.i}, - tests/Sigset_Ops_Test.cpp: replace NSIG with ACE_NSIG. - - * ace/Basic_Types.{h,i}: only use u_longlong_t on sun. Added - operator++ to ACE_U_LongLong, and tweaked calculation in operator/. - - * tests/Time_Value_Test.cpp (test_ace_u_longlong_): added test of - operator+, and one simple test of operator/. - - * ace/Filecache.h: removed extra , in enum ACE_Filecache_Flag definition. - -Tue Dec 30 20:32:03 1997 Nanbor Wang - - * ace/Map_Manager.{h,cpp}: Added STL-styled iterator function. - Changed the references to ACE_Map_Manager within interator - classes to pointers so we can check errors. - -Tue Dec 30 14:56:18 1997 Douglas C. Schmidt - - * ace/Obstack: Enhanced ACE_Obstack so that it can be given a - pointer to an allocator strategy. This allows users to take - complete control of where the memory comes from for the Obstack. - - * ace/Obstack: Changed the default value of "size" so that it is - (4096 - sizeof (ACE_Obstack)). - - * ace/Obstack: Added a new ACE_Obchunk constructor to simplify - some of the code. - -Mon Dec 29 20:21:32 1997 Steve Huston - - * include/makeinclude/rules.lib.GNU: Adjusted dependencies on building - a shared library to be on the object modules it will link in, not - necessarily $(VSJOBJ). - -Mon Dec 29 18:53:35 1997 James C Hu - - * ace/Filecache.h: Added an enum type, ACE_Filecache_Flag, which - gets passed into the ACE_Filecache_Handle constuctor to help - determine whether or not to use memory mapping (on Windows NT, - we sometimes do not want to memory map). - - * ace/Filecache.cpp: Required modifications to accomodate the - ACE_Filecache_Flag parameter. - -Mon Dec 29 15:37:24 1997 Nanbor Wang - - * ace/OS.i (event_timedwait): Added codes to guard against - negative wait time since we are passing an absolute time value - here, we may way past the target time when it gets called. - Thanks to Norbert Rapp for pointing - this. - -Mon Dec 29 13:57:43 1997 Carlos O'Ryan - - * ace/XtReactor.cpp: - Fixed syntax error, apparently some kind of typo. - - * ace/OS.h: - The ACE_*_cast() macros had (IMHO) surprizing priority, added - some parenthesis to make them behave as the new cast operators - are supposed to do. - -Mon Dec 29 08:59:28 1997 David L. Levine - - * ace/Basic_Types.h: Linux w/o glibc 2.0 doesn't have u_longlong_t, - so use "unsigned long long" for it. - - * ace/Task.cpp (activate): added ACE_UNUSED_ARG (thread_handles) on - non-threaded platforms. - - * ace/Thread_Manager.cpp (wait): added ACE_UNUSED_ARG - (abandon_detached_threads) on non-threaded platforms. - - * performance-tests/Misc/childbirth_time.cpp (prof_ace_os_thread): - added ACE_UNUSED_ARG (iteration) on non-threaded platforms. - - * performance-tests/Misc/preempt.cpp (main): added ACE_UNUSED_ARG - for argc and argv on non-threaded platforms. - - * include/makeinclude/platform_linux.GNU: enabled compiler warnings - by replacing -w with -Wall -Wpointer-arith in CFLAGS. - - * ace/ACE.cpp (count_interface,get_handle,get_ip_interfaces): use - same code for LynxOS as for __unix. - - * ace/OS.h: on LynxOS, redefine NSIG to be one greater than the - highest-numbered signal. LynxOS' signal.h #defines it to be - equal to the highest-numbered signal, 64. - -Mon Dec 29 08:35:17 1997 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Removed the PRELIB - and PRELIB_USES_OBJ_ONLY stuff; merged in macros for building - on HP-UX 11.00. - * include/makeinclude/platform_hpux11_aCC.GNU - Removed this file. - The 10.x and 11.x builds are now both controlled by - platform_hpux_aCC.GNU. - -Sun Dec 28 10:50:54 1997 Douglas C. Schmidt - - * ACE version 4.4.11, released Sun Dec 28 10:50:54 1997. - -Sat Dec 27 18:03:52 1997 Nanbor Wang - - * ace/Log_Msg.cpp (dump): Sould test if we have a valid thr_desc - before dumping the information of it. Thanks to Luca Priorelli - for pointing this out. - -Sat Dec 27 16:13:59 1997 David L. Levine - - * ace/{OS.i,config-linux-common.h,README} (getrusage,{get,set}rlimit): - added ACE_HAS_RUSAGE_WHO_ENUM and ACE_HAS_RLIMIT_RESOURCE_ENUM - support. glibc 2.0 for Linux uses enums for the first arguments - to ::getrusage and ::{get,set}rlimit. - -Fri Dec 26 18:04:06 1997 - - * ace/Containers.h: Added iterator traits for following classes. - ACE_Unbounded_Set - ACE_Unbounded_Queue - ACE_Unbounded_Stack - ACE_Double_Linked_List - ACE_Fixed_Set - ACE_Bounded_Set - Thanks to for recommending this. - -Fri Dec 26 12:03:05 1997 David L. Levine - - * ace/config-osf1-4.0.h: added support for DCE threads, and merged in - config-osf1-4.0-g++.h. Thanks to Frederic Andres - for the DCE threads support #defines. - - * ace/config-osf1-4.0-g++.h: removed. All Digital Unix 4.0 configs - are now supported by config-osf1-4.0.h. - - * ace/platform_osf1_4.0.GNU: added comment on how to use DCE threads - instead of POSIX threads. - - * ace/OS.i (thr_{get,set}prio): don't apply the - !defined(ACE_LACKS_SETSCHED) test if ACE_HAS_DCETHREADS. - - * ace/OS.cpp (thr_create): added || ACE_HAS_DCETHREADS to - #ifndef ACE_LACKS_SETSCHED, so that priority is set with DCETHREADS. - - * ace/OS.cpp (sched_params): moved paren so that DCETHREADS block - will be executed even if ACE_LACKS_SETSCHED. - - * ace/Sched_Params.cpp ({next,previous)_priority): added - ACE_HAS_DCETHREADS check before !defined(ACE_LACKS_SETSCHED). - - * ace/OS.i (cond_timedwait): wrapped first arg to ACE_OSCALL in - parens because it confused cxx. - - * examples/System_V_IPC/SV_Message_Queues/{,T}MQ_Server.cpp: renamed - variable msgque because it conflicted with a symbol in the DEC cxx - w/DCE threads headers. - - * ACE-INSTALL.html: expanded discussion of gcc config.status file. - Thanks to Hans Rohnert for figuring - out the role of the config.status file. - -Fri Dec 26 06:44:25 1997 - - * ace/OS.h (ACE_OS::ace_flock_t): Added a new field "lockname_" to - remember the lock filename. - - * ace/OS.i (flock_init,flock_destroy): We need to remember the - name of the lock file when initializing the lock and unlink the - file when destroying the lock. - -Thu Dec 25 18:08:42 1997 Douglas C. Schmidt - - * ace/XtReactor.cpp: Removed g++ warning about initialization - order, enabled read/write masks for - ACE_Event_Handler::CONNECT_MASK; fixed typo that checks a write - mask, but sets a read mask; removed unused variable "zero." - Thanks to Eric Newton for these fixes. - -Thu Dec 25 17:17:16 1997 - - * ace/config-win32.h: * ace/config-win32-common.h: Added macro - definitions not to use C++-styled castings on Win32 by default - so that we don't depend on the RTTI support. - -Thu Dec 25 16:18:03 1997 - - * ace/SString.h (ACE_CString and ACE_WString): Added c_str() to - make it similar to STL's string class. - -Wed Dec 24 19:59:15 1997 David L. Levine - - * tests/IOStream_Test.cpp (client): changed stream error message - from "timeout" to "timed out", so that run_tests.check won't - complain about it. - -Wed Dec 24 18:37:49 1997 - - * ace/Synch.i (get_thread_id,get_nesting_level): Added ACE_INLINE. - -Wed Dec 24 18:31:31 1997 Douglas C. Schmidt - - * ACE version 4.4.10, released Wed Dec 24 18:31:31 1997. - -Wed Dec 24 14:27:33 1997 - - * ace/Synch.{h,i,cpp} (ACE_Recursive_Thread_Mutex): Changed - ACE_Recursive_Thread_Mutex to inherit from ACE_Thread_Mutex on - Win32 because ACE_Thread_Mutex is already recusive on Win32. - -Wed Dec 24 08:14:32 1997 David L. Levine - - * ace/Log_Msg.cpp (instance): without threads, dynamically create - the ACE_Log_Msg instance instead of using a static. Now, without - threads, the ACE library has no statics that require destruction - (at least on Solaris/g++ and Linux). And, all of the ACE tests - Purify cleanly. - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): wrapped - rethrow_w32_structural_exception () call with #ifdef ACE_WIN32. - It was eliminated by the ACE_SEH_EXCEPT macro on non-WIN32 - platforms, but some compilers (cxx) warned about the - unreachable code. This call is only supported on WIN32 anyways. - - * ace/OS.h: LynxOS has ACE_HAS_PTHREADS_1003_DOT_1C, but not - ACE_HAS_PTHREAD_SIGMASK. - - * tests/Time_Value_Test.cpp: only test ACE_U_LongLong on Solaris, - and other platforms with STHREADS. - -Wed Dec 24 04:25:49 1997 - - * ace/OS.i (sema_init): Added checking for initial semaphore - counts and set the semaphore to non-signaled state if the - initial count is zero. Changed the internal variable lock from - a mutex to a thread_mutex (Critical Section.) - -Tue Dec 23 21:06:14 1997 David L. Levine - - * ace/TLI_Stream.cpp (get_remote_addr): added ACE_UNUSED_ARG - for the arg if ! ACE_HAS_SVR4_TLI. - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main): declare - local "i" outside the for loop because it is used after the loop. - -Tue Dec 23 19:34:10 1997 - - * ace/OS.i: Added comments for semaphore simulation. - -Tue Dec 23 19:33:59 1997 Douglas C. Schmidt - - * ACE version 4.4.9, released Tue Dec 23 19:33:59 1997. - -Tue Dec 23 19:05:32 1997 Douglas C. Schmidt - - * tests/IOStream_Test.cpp (server): Changed sleep(30) to - sleep(5). This seems more reasonable. Thanks to - James Johnson for this suggestion. - -Tue Dec 23 16:43:14 1997 Steve Huston - - * ace/README: Added descriptions for ACE_HAS_PTHREADS_1003_DOT_1C (this - was in use previously but not documented), ACE_HAS_XTI (new; XTI is - the POSIX superset of TLI - this implies ACE_HAS_TLI), - ACE_NEW_THROWS_EXCEPTIONS (new; the compiler throws bad_alloc if - a 'new' memory allocation fails). - - * ace/Hash_Map_Manager.cpp - Workaround for an aC++ bug in the HP-UX 11 - version of the compiler. - - * ace/INET_Addr.cpp: Note the failing host name in the error message - from ACE_INET_Addr::ACE_INET_Addr(u_short, const char []). - - * ace/OS.h: Changes made while porting to HP-UX 11: - - If ACE_HAS_PTHREADS_1003_DOT_1C (POSIX.1C), it implies (by - way of POSIX.1C) that these also be set: - ACE_HAS_PTHREAD_SIGMASK - ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R - This is intended to make the process of configuring a new - new platform easier. - - If the new config macro ACE_NEW_THROWS_EXCEPTIONS is set, include - the file . The "proper" thing to do is to include - ; however, at least on HP-UX 11, this will cause - other things to get brought in, like , which will - screw up auto_ptr. The day that all this standard library and - STL stuff is finally straight, there will be dancing in the - streets... - - Support including the proper header file for XTI when it's - supposed to use rather than (POSIX specifies - XTI, a superset of TLI, to have ) - - If ACE_NEW_THROWS_EXCEPTIONS is set, the ACE_NEW and - ACE_NEW_RETURN macros handle the exception. - - * ace/OS.i: Fixed check for failure in ACE_OS::sema_init. - - * ace/config-hpux11.h: - * ace/config-hpux11-hpc++.h: New configs for HP-UX 11.00 - - * include/makeinclude/platform_hpux11_aCC.GNU: Platform macros for - HP-UX 11. It is set up for 32-bit build with comments for how to - do a 64-bit build. - - * examples/Makefile: Added Naming to the directory list to build. - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: Changed test from - ACE_HAS_SVR4_POLL to ACE_HAS_POLL. - - * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: Fixed a char * being - initialized by a string literal. - - * examples/Map_Manager/test_hash_map_manager.cpp: Added #include - "ace/SString.h" - - * examples/Mem_Map/IO-tests/test_io.cpp: Fixed a char * being - initialized by a string literal. Fixed diagnostic statements. - - * examples/Naming/test_multiple_contexts.cpp: - * examples/Naming/test_non_existent.cpp: - * examples/Naming/test_writers.cpp: Added Id line for CVS. - - * tests/Time_Value_Test.cpp: Added #include "test_config.h" - -Tue Dec 23 16:12:28 1997 - - * ace/OS.i: Must use ACE_OS::sema_wait instead of waiting on the - singling event when using simulated semaphores. - -Tue Dec 23 08:32:00 1997 Chris Gill - - * include/makeinclude/platform_sunos5_g++.GNU - Removed trailing spaces from CC and CXX macros - (the trailing space behind CXX was giving the TAO_IDL - make fits) - -Tue Dec 23 07:26:28 1997 David L. Levine - - * ace/TLI.cpp (get_local_addr): return -1, instead of 0, and - set errno (with ACE_NOTSUP_RETURN) if ! ACE_HAS_SVR4_TLI. - ({set,get}_option): added ACE_UNUSED_ARfor all - arguments if ! ACE_HAS_SVR4_TLI. - - * ace/TLI_Stream.cpp (get_remote_addr): return -1, instead of 0, - and set errno (with ACE_NOTSUP_RETURN) if ! ACE_HAS_SVR4_TLI. - Declare and set local "name" only if ACE_HAS_SVR4_TLI. - - * ace/TLI_Acceptor.cpp (handle_asynch_event): initialize local - "event" instead of defining it in the switch condition, to - avoid compiler warning about not using it. - - * examples/IPC_SAP/TLI_SAP/db-server.cpp (lookup_name): removed - unused local variable "len". - - * include/makeinclude/platform_osf1_4.0.GNU: removed some warning - suppressions that are no longer needed. - - * ace/Log_Msg.cpp (~ACE_Log_Msg): clean up the message queue and - allocated strings on non-threaded platforms. - - * tests/test_config.h (ACE_APPEND_LOG): added a close () of the - ace_file_stream before opening it. Forked children inherit the - opened file stream, and fail on their attempt to open it if it - is not explicitly closed. - -Mon Dec 22 22:42:57 1997 Douglas C. Schmidt - - * ace/OS: Added a few minor changes to Nanbor's Semaphore - emulation for WinCE. - -Mon Dec 22 11:39:19 1997 - - * OS.i (event_timedwait): Added code to handle timeouts. Thanks - to Luca Priorelli for reporting this. - -Mon Dec 22 07:03:13 1997 David L. Levine - - * ace/IOStream_Test.cpp (spawn): changed printout from - "Process_Mutex_Test-children" to "IOStream_Test-children". - -Mon Dec 22 03:08:22 1997 - - * ace/OS.i: Modified ACE_OS::cond_* for WinCE. - - * ace/config-win32-common.h: Prevent ACE from using NT specific - API on Win CE. - -Sun Dec 21 16:19:40 1997 Nanbor Wang - - * ace/OS.{h,i} (ACE_OS::sema_*): Added semaphore simulation code - for WinCE. This code is currently protected - ACE_USES_WINCE_SEMA_SIMULATION for debugging the code on NT. - This flag should soon be obsolete and changed to ACE_HAS_WINCE. - - Moved ACE_event_t macro definition for Win32 before ACE_sema_t - definition for NT. I need to use it in semaphore simulation. - - * ace/OS.h (class ACE_Cleanup_Info::operator ==, !=): Removed - keyword struct. ACE_Cleanup_Info is a class now. - - * ace/Containers.h (class ACE_Double_Linked_List): Removed - unused function declarations. - - * ace/Containers.h (class ACE_DNode): Removed ACE_DNode class. - -Sun Dec 21 18:47:09 1997 Douglas C. Schmidt - - * ACE version 4.4.8, released Sun Dec 21 18:47:09 1997. - -Sun Dec 21 12:39:38 1997 Douglas C. Schmidt - - * ace/OS.h (ACE_OS): Made the netdb_{acquire()/release()} methods - public to help ACE users stuck on weird OS platforms. Thanks to - Arturo Montes for this suggestion. - - * ace: Changed all ACE class documentation so that it puts the - =TITLE and =DESCRIPTION comments *after* the opening '{' rather - than before. I did this since (1) it makes emacs C++ mode - happier and (2) it makes Rational Rose reverse-engineering tool - happier too. Thanks to Thomas Jordan - for suggesting this. - - * ace/LOCK_SOCK_Acceptor.h: The accept() method of class - ACE_LOCK_SOCK_Acceptor is no longer a virtual. I don't know why - this was made virtual in the first place, but it was a mistake. - -Sun Dec 21 15:24:42 1997 Nanbor Wang - - * ace/OS.h (class ACE_Cleanup_Info::operator ==, !=): Removed - keyword struct. ACE_Cleanup_Info is a class now. - - * ace/Containers.h (class ACE_Double_Linked_List): Removed - unused function declarations. - - * ace/Containers.h (class ACE_DNode): Removed ACE_DNode class. - -Sat Dec 20 11:05:45 1997 Douglas C. Schmidt - - * tests/test_config.h (ACE_INIT_LOG): Added (%P|%t) to an - ACE_DEBUG statement to make it consistent. - - * tests/IOStream_Test.cpp (spawn): Revised the test so that it - prints data correctly to the child processes. - - * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): Moved - the final print statement inside one of the if blocks so that it - appears only every second invocation to remind people to rerun - the program to remove the leaks. Thanks to Tom Arbuckle - for suggesting this. - - * ace/Malloc*: Changed ACE_MALLOC_STATS to ACE_HAS_MALLOC_STATS - since this is more consistent with ACE conventions. Also, - added ACE_HAS_MALLOC_STATS to the ace/README file. Thanks - to Tom Arbuckle for - suggesting this. - - * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): Fixed the logic - for naming the backing store if the sscanf() call fails. Thanks - to Tom Arbuckle for - suggesting this. - -Sat Dec 20 15:39:00 1997 Nanbor Wang - - * tests/IOStream_Test.cpp (spawn): Changed ACE_LACKS_EXEC to - ACE_LACKS_FORK. - -Sat Dec 20 09:42:06 1997 David L. Levine - - * ace/OS.h: changed ACE_SEH_FINALLY to be if (1) on Unix, not - just pSOS. - -Fri Dec 19 23:20:42 1997 Nanbor Wang - - * tests/IOStream_Test.cpp (client): Removed an extra read. - - * ace/OS.h: ACE_SEH_FINALLY should always be executed on UNIX - platforms. - -Fri Dec 19 18:49:26 1997 Douglas C. Schmidt - - * ace/IOStream_T.i: Enhanced ACE_IOStream and its companions as - follows: - - - ACE_Streambuf_T<> now distinguishes recv() timeout failure from - a "real" stream failure - - - ACE_IOStream::eof() honors the streambuf's recv_timeout() value - and returns FALSE if the eof() check fails on timeout. - - - IOStream_Test.cpp tests the streambuf timeout via the stream eof() - and retrys if possible. - - Thanks to James Johnson for these fixes. - - * ace/Log_Record.i: Removed a no-op assignment to Time_Value - in the encode() method. Thanks to Patrick J. McNerthney - for reporting this. - - * ace/Log_Record.i: The time stamp put into the ACE_Log_Record - gets all messed up when the ACE_Log_Record is transmitted to the - Server_Logging_Handler and the client is run on a little-endian - architecture. This is because the ACE_Log_Record::encode method - does: - - this->time_stamp_ = ACE_Time_Value - - htonl (this->time_stamp_.sec ()), - htonl (this->time_stamp_.usec ())); - - When the ACE_Time_Value is passed in the resulting values from - "htonl", it calls "normalize" which totally messes with the - values passed. Thanks to Patrick J. McNerthney - for reporting this. - - * ace/OS.i: Fixed ctime_r() so that it doesn't crash if a NULL is - returned from ctime_r(). Thanks to Patrick J. McNerthney - for reporting this. - -Fri Dec 19 09:44:28 1997 David L. Levine - - * ace/OS.{h,i}: fixed sigwait for DEC cxx, yet again for cxx - V6.0-010. cxx #defines sigwait, and was getting confused - with ACE_OS::sigwait. I replaced Thilo's #undef sigwait, - and updated the ::sigwait declaration to what cxx uses internally. - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (server): cast arg - to long before casting to ACE_HANDLE, and removed function-style - cast. - -Fri Dec 19 00:39:40 1997 Douglas C. Schmidt - - * ACE version 4.4.7, released Fri Dec 19 00:39:40 1997. - -Thu Dec 18 19:47:47 1997 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP: Stripped the CPP-in{server,client}.cpp - tests down to their bare essence to only test the core features - of sockets. Thanks to Bryan and Brian for suggesting this. - - * ace/Message_Queue.cpp (ACE_Message_Queue_Iterator): Changed - queue to q to avoid clashes with STL. Thanks to Brian Mendel - for reporting this. - - * ace/OS.h: The server logging daemon is implemented using TCP/IP - under Win32. Therefore, we can simplify the creation of the - ACE_DEFAULT_LOGGER_KEY. Thanks to Patrick J. McNerthney - for reporting this problem. - -Thu Dec 18 22:35:45 1997 David L. Levine - - * ace/OS.h: fixed typo in end-of-comment marker. - - * ace/OS.h: on Digital Unix 4.0, only declare sigwait () with cxx, - not with g++. Thanks to Erik Margraf - for verifying this. - - * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server}.cpp: tweaked - so that they build on VxWorks (spawn needs the (ACE_THR_FUNC) - cast), and without threads. - - * tests/run_tests.vxworks: updated VxWorks test status. - - * ace/Basic_Types.h: look for ULONGLONG_MAX, which Irix 6.x uses. - And, hard-code ACE_SIZEOF_LONG_DOUBLE to be 16 on __sgi, because - its float.h doesn't always allow us to distinguish them. - Thanks to Carlos for reporting these. - - * ace/High_Res_Timer.cpp,Profile_Timer.cpp: removed dependence - on ACE_U_LongLong. Thanks to Carlos for reporting this. - - * tests/Time_Value_Test.cpp: fixed #ifdefs so that ACE_ULongLong - isn't tested on Irix 6.x, etc. Thanks to Carlos for tripping - over this. - - * ace/IOStream_T.i (eof): made the return type, int, explicit. - - * ace/config-linux-common.h: started adding support for threads on - alpha (glibc). - -Thu Dec 18 21:17:46 1997 - - * ace/ace_dll.dsp: Added project files for Windows CE on SH3 - series CPU and x86 emulator. - - * ace/streams.h: - * ace/OS.h: Added Windows CE flags. - - * ace/OS.cpp (invoke): Added a dummy return to shut gcc up. - - * ace/OS.cpp (invoke): Added a dummy return to shut gcc up. - - * ace/OS.{h,cpp} (rethrow_w32_structural_exception): Added this - function, which prints out an error message to indicate the - occurance of structural exception and rethrow it again. - (ACE_Thread_Adapter::invoke): Rearranged try and except block - for Win32 and added a finally block so when a structural - exception occurs, a thread can clean it up properly, print out - an error message, and rethrow the exception again. - -Thu Dec 18 15:40:50 1997 James C Hu - - * ace/Filecache.{cpp,h}: - - debugged writing a file. - - can select if mapping is desired. - - * ace/OS.h: Added new #defines to facilitate forward declarations - of ACE_Export classes. - -Thu Dec 18 00:15:02 1997 Douglas C. Schmidt - - * ACE version 4.4.6, released Thu Dec 18 00:15:02 1997. - -Wed Dec 17 19:42:38 1997 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP: Enhanced the - CPP-{inserver,inclient}.cpp tests so that they will spawn - multiple client and server threads to perform the data transfer. - Thanks to Brian Mendel and Bryan Doerr for suggesting this. - - * ace/OS.i: Fixed some very subtle bugs with cond_signal() and - cond_broadcast(). Thanks to Patrick J. McNerthney - for reporting these and sending the fixes. - -Wed Dec 17 19:27:06 1997 Nanbor Wang - - * ACE-INSTALL.html (HREF): Added an advise not to use VC5.0 SP3. - - * examples/OS/Process/Makefile: Removed inclusion of - rules.lib.GNU. Thanks to Avi Nash for - noticing this. - -Tue Dec 16 22:09:42 1997 David L. Levine - - * tests/Time_Value_Test.cpp: restored #include test_config.h, - and changed #include ace/config.h to ace/inc_user_config.h. - - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp, - examples/Reactor/Misc/test_timer_queue.cpp, - examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i, - examples/Shared_Malloc/test_malloc.cpp, - examples/Threads/thread_specific.cpp: replaced ACE_HAS_64BIT_LONGS - preprocessor logic with a cast through a long to an int. - A void * is the same size as a long on all currently supported - ACE platforms. The int cast is also there, to avoid compiler - warnings about narrowing. As a side effect, the function-style - casts were removed. - - * ace/config-osf1*.h,README: added comment stating that - ACE_HAS_64BIT_LONGS is deprecated. - - * ace/config-tandem.h: removed commented-out line that mentioned - ACE_HAS_64BIT_LONGS. - - * ace/OS.{h,i} (sigwait): removed DEC cxx version dependence. The - standard two-arg POSIX ::sigwait () seems to work just fine even - on older releases of Digital Unix 4.0, with the sigwait declaration - that we have in OS.h. Thanks to Erik Margraf - and Thilo - for helping to sort this out. - - I did change the ACE_OS::sigwait () return value determination - in OS.i. It now depends on whether or not POSIX ::sigwait () - returns 0, to agree with the documenation for POSIX sigwait. - Before, the code checked for a -1 return value from ::sigwait (). - -Tue Dec 16 21:00:49 1997 Chris Gill - - Single Threaded port of ACE to pSOSim - first checkin - - * psosim/Makefile: (new) make file for new psosim directory - - builds the configured simulator components - - * psosim/drv_conf.c: (new) board driver configuration code for - simulator - - * ace/sys_conf.h: (new) configuration settings for simulator, ACE - - * ace/config-psosim-g++.h: (new) config file for psosim w/ g++ - - * ace/OS.cpp: - * ace/OS.h: - * ace/OS.i: Added psos and psosim specific code - - * ace/Mem_Map.cpp: Removed function style casts which were killing - g++ - - * ace/Message_Block.cpp: Removed function style casts which were - killing g++ - - * ace/Containers.cpp: Removed function style casts which were - killing g++ - - * ace/Map_Manager.cpp: Removed function style casts which were - killing g++ - - * tests/Handle_Set_Test.cpp: Added PSOS #defines, alongside those - for VXWORKS - - * tests/SOCK_Connector_Test.cpp: Added PSOS #defines, alongside - those for VXWORKS - - * tests/Priority_Reactor_Test.cpp: Added PSOS #defines, alongside - those for VXWORKS - - * tests/MM_Shared_Memory_Test.cpp: Added PSOS #defines, alongside - those for VXWORKS - - * tests/Conn_Test.cpp: Added PSOS #defines, alongside those for - VXWORKS - - * tests/run_tests.psosim: (new) script to run only those tests - that are relevant to pSOSim, in its current single threaded - state - - * include/makeinclude/platform_psosim_g++.GNU (new) make macros - for pSOSim using g++ - - -Tue Dec 16 17:23:49 1997 Nanbor Wang - - * tests/Time_Value_Test.cpp: Removed inclusion of "ace/config.h". - - * ace/inc_user_config.h: Added this file to prevent multiple - inclusions of config.h file. Replace `#include "ace/config.h"' - with `#include "ace/inc_user_config.h"'. - - * ace/Log_Msg.cpp: - * ace/OS.h: - * ace/Trace.cpp: - * ace/streams.h: - * ace/iosfwd.h: Replace "config.h" with "inc_user_config.h". - -Tue Dec 16 08:30:41 1997 Douglas C. Schmidt - - * examples/IPC_SAP/FILE_SAP/client.cpp (main): Fixed "lines" to - "links." Thanks to Istvan Buki for reporting - this. - -Tue Dec 16 14:15:48 1997 - - * ace/OS.i (fstat): Fixed Dr. Schmidt's typo. - -Tue Dec 16 09:17:53 1997 David L. Levine - - * ace/Singleton.cpp (cleanup): set instance pointer to 0 after - deleting it. Thanks to Luca Priorelli - for suggesting this. - - * ace/Basic_Types.{h,i}: (ACE_U_LongLong): use ACE_UIN32 instead - of u_long for data members, to ensure that its sizeof is 8 bytes. - - * ace/OS.h: except on WIN32 and Solaris (ACE_HAS_HI_RES_TIMER), - always typedef ACE_hrtime_t to ACE_UINT64. This changes removes - the dependence on ACE_HAS_64BIT_LONGS. - - * ace/OS.cpp (ACE_TSS_Keys): replaced ACE_HAS_64BIT_LONGS - dependence with ACE_SIZEOF_LONG == 8, and similarly for - determination of 4-byte longs. - - * tests/TSS_Test.cpp (worker): replaced ACE_HAS_64BIT_LONGS - preprocessor logic with a cast of the void * argument to a long. - A void * is the same size as a long on all currently supported - ACE platforms. The int cast is also there, to avoid compiler - warnings about narrowing. - - * tests/Time_Value_Test.cpp: replaced use of ! ACE_HAS_64BIT_LONGS - with ACE_SIZEOF_LONG == 4. - -Mon Dec 15 22:47:24 1997 Douglas C. Schmidt - - * ACE version 4.4.5, released Mon Dec 15 22:47:24 1997. - -Mon Dec 15 20:17:10 1997 Douglas C. Schmidt - - * ace/OS.cpp: Fixed pread() and pwrite() so that they work - correctly even if we don't support threads. Thanks to Irfan for - finding this. - - * ace/OS.i: Tried to fix the fstat() wrapper on Win32 so that - it does the right think for HANDLES. Thanks to Lori Anderson - for pointing this out. - -Mon Dec 15 15:36:07 1997 Nanbor Wang - - * ace/Thread_Manager.cpp (exit,wait): Changed these two functions - more for Chorus. Thanks again to Wei Chian - for providing the patch. - -Mon Dec 15 06:42:42 1997 David L. Levine - - * ace/Log_Msg.cpp (instance): on non-threaded platforms, only - allocate a new ACE_Log_Msg_message_queue if the (static) pointer - is 0. Thanks to Stephen Coy for - reporting this. - - * ace/config-linux-common.h: updated header comments about - autosensing the platform capabilities. - - * tests/Process_Strategy_Test.cpp: (parse_args): added DEBUG - message if an unsupported concurreny strategy is provided with - a -c option. - -Mon Dec 15 01:12:33 1997 - - * ace/Synch_T.h (ACE_Atmoic_Op::value_i): Explicitly return - (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 lock. Use with - care ;-) - -Sun Dec 14 21:37:08 1997 Douglas C. Schmidt - - * ace/OS.i (cond_wait,cond_timedwait): Fixed a missing return to - handle the case where we're using USYNC_PROCESS for the external - mutexes. - - * ace/OS: Made the use of the waiters_lock_ mutex consistent in - the ACE_cond_t implementation. This was broken since we used - the external_mutex to serialize access to the waiters_ count - inconsistently. Thanks to Patrick J. McNerthney - for reporting this very subtle bug. - -Sun Dec 14 12:29:26 1997 Nanbor Wang - - * ace/Thread_Manager.cpp (exit,wait): Disabled thread join - functionality in Chorus. Thanks to Wei Chiang - for providing the fix. - -Fri Dec 12 21:48:38 1997 Torbjorn Lindgren - - * ace/config-linux*.h: All Linux platform files except the - Linux-KCC modified to use the upgraded common Linux - configuration file. Linux-KCC looks reasonably easy to do, - if no-one that actually have KCC takes care of it I can do - this one later. - - * ace/config-linux-common.h: Modernized and updated the common - Linux configuration file to handle more of the common - configuration stuff. Also added the beginning of proper - glibc and egcs support for Linux. - -Sat Dec 13 14:22:28 1997 - - * ace/Basic_Types.h: Changed _M_IX386 to _M_IX86. - -Fri Dec 12 19:41:42 1997 - - * ace, tests, version_tests: Updated Win32 makefiles (VC4.2 and - VC5.0) to include new Basic_Types_Tests. - - * tests/Basic_Types_Test.cpp (main): Updated to use - ACE_OS::getpagesize(). - - * ace/ACE.cpp (round_to_pagesize): Updated to use - ACE_OS::getpagesize(). - - * ace/OS.i (getpagesize): Added this to ACE_OS. - -Fri Dec 12 07:49:01 1997 David L. Levine - - * ace/OS.i (inet_addr): changed type of "valid" from bool to u_int. - This code is only seen on VxWorks. - - * ace/IOStream.h (ACE_Quoted_String::operator <): changed return - type from bool to int. - - * ace/config-vxworks*.h,README: removed ACE_LACKS_SOCKET_BUFSIZ; - added ACE_DEFAULT_MAX_SOCKET_BUFSIZ of 32768. - - * examples/IPC_SAP/SOCK_SAP/C-in{client,server}.cpp: added - support to optionally set socket buffer sizes. - - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: - removed unused constant SHMSZ. - - * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp: removed - unused constant NO_OF_IO_HANDLERS. - - * ace/IOStream_T.h (ipfx,ipfx1): don't call setstate () on WIN32, - because MS VC++ 5.0 doesn't declare it. Thanks to Irfan for - reporting this. This "fix" is temporary, maybe, until we - figure out the proper fix. - - * ace/OS.h: cast the 1 in ACE_MSB_MASK to an fd_mask, to support - 64-bit fd_masks. I suspect that with this change, the - ACE_HAS_BROKEN_BITSHIFT used in config-tandem.h is no longer - necessary. - - Added Basic_Types: - * ace/Basic_Types.*,Makefile: Basic_Types defines the - following preprocessor macros: - - Sizes of built-in types: - ACE_SIZEOF_CHAR - ACE_SIZEOF_WCHAR - ACE_SIZEOF_SHORT - ACE_SIZEOF_INT - ACE_SIZEOF_LONG - ACE_SIZEOF_LONG_LONG - ACE_SIZEOF_VOID_P - ACE_SIZEOF_FLOAT - ACE_SIZEOF_DOUBLE - ACE_SIZEOF_LONG_DOUBLE - - Wrappers for built-in types of specific sizes: - ACE_INT16 - ACE_UINT16 - ACE_INT32 - ACE_UINT32 - ACE_UINT64 - (Note: ACE_INT64 is not defined, because there is no ACE_LongLong for - platforms that don't have a native 8-byte integer type.) - - Byte-order (endian-ness) determination: - ACE_BYTE_ORDER, to either ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN - ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN - - * ace/OS.*: moved ACE_U_LongLong to Basic_Types.*. - - * ace/OS.h: added #include . - - * ace/config-linux-common.h,README: added ACE_HAS_BYTESEX_H. - - * tests/Basic_Types_Test.cpp,run_tests.{bat,sh,vxworks),Makefile: - added new Basic_Types_Test. - - * tests/Time_Value_Test.cpp: removed ACE Version printout because - it is now in Basic_Types_Test. - -Fri Dec 12 03:00:21 1997 James C Hu - - * ace/config-sunos5.5-egcs-1.0.h: Fundamemntally identical to g++ - version, except added ACE_HAS_STDCPP_STL_INCLUDES, which is - taken to mean that the Standard C++ STL include files are - supported. - - * IOStream.h: Added #if's to handle the case where - ACE_HAS_STRING_CLASS, but if ACE_HAS_STDCPP_STL_INCLUDES, then - the string class is found in . Otherwise, it looks for - it in . - - * ace/OS.i: Re-implemented strcasecmp methods. Thought bad - implementations were related to a JAWS bug, but the hand - implementations are not used on Solaris. - -Thu Dec 11 23:20:57 1997 - - * ace/Strategies_T.cpp (activate_svc_handler): Changed the - parameter that was been passed into the open routine of - Svc_Handler. The that was passed to us is passed through - to open, rather than passing . Thanks to Mats Nilsson - for pointing this out. - - * ace/Connector.cpp (activate_svc_handler): Made sure that we pass - the connector pointer as the void* parameter to the svc_handler. - -Thu Dec 11 23:35:04 1997 Douglas C. Schmidt - - * ace/OS.i. The code was always calling dlsum for the _init() - hook, even if dlopen() failed. In addition to fixing this, I - also removed a potential handle leak. Thanks to Patrick - J. McNerthney for reporting this. - -Thu Dec 11 13:13:17 1997 David L. Levine - - * ace/LSOCK.cpp (recv_handle): fixed to remove compile errors and - warnings on platforms with both ACE_HAS_4_4BSD_SENDMSG_RECVMSG - and ACE_HAS_THREADS. The delta from version 4.3 of this file - is very small. Thanks to Kirill Rybaltchenko - for reporting this problem and - verifying the fix on LynxOS, the only affected platform. - - * ace/config-linux-kcc.h,include/makeinclude/platform_linux_kcc.GNU: - added linuxthreads support with the linux KAI C++ config. - Thanks to Ben Eng for the patches. - - * ace/IOStream_T.h: iostream fx emulation now skips whitespaces and - flushes when tied. Thanks to Ben Eng for the patch. - - * tests/IOStream_Test.cpp (server): check for double-quote instead - of newline as end-of-string character. Thanks to Ben Eng - for the patch. - - * tests/SV_Shared_Memory_Test.cpp: renamed "allocator" to - "myallocator" to avoid conflict with STL. Thanks to Ben Eng - for the patch. - - * include/makeinclude/platform_linux_lxpthread.GNU: protect - PRELIB definition with ifndef PRELIB, to allow overriding - without modifying the platform_macros.GNU file. Thanks to - James Johnson for this suggestion. - - * ace/IOStream_T.cpp: restored ACE_HAS_IOSTREAMH_INCLUSION - protection around the old g++ munch hack. There's no need - to trouble all (g++) platforms with its (4 byte) space penalty. - - * examples/IOStream/server/iostream_server.cpp (handle_input): - removed unused local "addr". - - * examples/Reactor/Dgram/{CODgram,Dgram}.cpp (run_test): added - return 0 at end so that the function always returns a value. - - * include/makeinclude/platform_lynxos.GNU: added comment indicator - to comment describing POSTLINK. - - * ACE-INSTALL.html: updated DEC CXX 6.0 test status: all tests pass - with the version of DIGITAL UNIX 4.0 and cxx 6.0 that we use. - -Wed Dec 10 23:57:00 1997 Chris Cleeland - - * ACE version 4.4.4, released Wed Dec 10 23:57:00 1997. - -Wed Dec 10 16:24:09 1997 - - * ace/Auto_Ptr.i: Apparently, the standard states that in order to - access members of a templated superclass from a templated - subclass, then the member name must be fully qualified. - Therefore, changed access to p_ to ACE_Auto_Basic_Ptr::p_. - Thanks to Stephen Coy for reporting this. - -Tue Dec 09 13:05:00 1997 - - * ace/Containers.cpp (copy_all_nodes): Added a temporary - ACE_Node pointer to get around the macro side effects. - -Sun Dec 7 10:20:46 1997 Douglas C. Schmidt - - * ace/Service_Config.cpp (parse_args): Added an appropriate macro - to switch from char * to UNICODE. Thanks to Timothy A. Brown - for reporting this. - - * ace/config-linux-*.h: Added ACE_HAS_GETRUSAGE_PROTO to all - the linux config files. Hopefully, this will help ACE to work - better with glibc. Thanks to Ernie Makris - and Torbjorn Lindgren for their help. - -Sat Dec 06 13:30:11 1997 Douglas C. Schmidt - - * ACE version 4.4.3, released Sat Dec 06 13:30:11 1997. - -Sat Dec 6 12:02:09 1997 Douglas C. Schmidt - - * examples/IOStream: Revised both the client and server to - demonstrate the ACE_IOStream functionality correctly. Also - added a README file explaining how to run the examples. Thanks - to James Johnson and Dustin Laurence - for suggesting this. - - * ace/IOStream_T: Added a new method eof() to the ACE_IOStream_T<> - class. This returns 1 if we've reached the end of the socket - stream, else 0. - -Fri Dec 5 16:58:29 1997 Douglas C. Schmidt - - * ace/Addr.h: Added a const ACE_Addr & instead of const ACE_Addr. - This will avoid an extra copy. Thanks to Irfan for noticing - this. - - * examples/Reactor/Dgram/CODgram.cpp: Also updated the CODgram - test to be just like the Dgram test. - - * examples/Reactor/Dgram/Dgram.cpp (main): Fixed a bug where it - was sending a huge buffer instead of just the string size. - Also, exit once we've finished the send. Finally, revised the - test so that it is easier to understand and so that it exits - properly. Thanks to Michael Hoffman - for reporting - this. - -Fri Dec 05 13:20:09 1997 David L. Levine - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: added OFLAGS. - Thanks to Brian Mendel for suggesting these. - - * tests/IOStream_Test.cpp: updated to work with the standard C++ - library version of iostreams. That primarily involved not - using operator>>(char& c) and operator>>(char* c) for C strings. - Thanks to Ben Eng for the patch. - - * ace/OS.{h,i},config-osf1-4.0.h: fixed sigwait on DEC CXX 6.0/ - recent DEC UNIX 4.0. The fix keys off the compiler version, - though it probably should depend on the OS. It adds a - sigwait declaration, which is a current signal.h deficiency. - With this change, ACE builds and tests cleanly on DEC UNIX. - - * ace/config-vxworks5.x-g++.h: restored comment that explains - ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - - * netsvcs/lib/Makefile: the first line of the Local Target - (Server_Logging_Handler.*) override mysteriously disappeared, again. - -Fri Dec 5 12:15:49 1997 Chris Cleeland - - * ace/Select_Reactor.cpp: Made error messages on open failure more - verbose. Having these in place straightaway would have helped - track down some problems at Boeing much more effectively. - -Fri Dec 5 11:15:17 1997 Nanbor Wang - - * ace/Log_Msg.h (callers.): Added documentation for %I and %D - flags. Thanks to John Morey for reosting - this. - - * ace/Dynamic.h: - * ace/CORBA_Ref.h: - * ace/Token_Invariants.h: - * ace/Token_Collection.h: - * ace/Local_Tokens.h: - * ace/Remote_Name_Space.h: - * ace/Registry_Name_Space.h: - * ace/Strategies.h: - * ace/Name_Space.h: - * ace/Name_Request_Reply.h: - * ace/Naming_Context.h: - * ace/Name_Proxy.h: - * ace/Local_Name_Space.h: - * ace/Local_Name_Space_T.h: Corrected erroneous comments. These - files all contain incorrect filename info in the preambles which - make erroneous auto-generated man pages. - -Fri Dec 05 00:00:53 1997 - - * ace/OS.h: If the user wants minimum IOStream inclusion, i.e., - they have defined ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION, we will - just include the forward declarations, i.e., ace/iosfwd.h. Else - they will get all the stream header files, i.e., ace/streams.h. - The positive thing about this change is that if your code was - using stream classes and you were depending on OS.h to provide - you the stream header files, you will not have to change your - code, unless you have defined - ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. Thanks to Dr. Schmidt for - suggesting this and thanks to David Levine for suggesting it to - Dr. Schmidt ;-). - - * ace/config-vxworks5.x-g++.h: Restored - ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. - - * ace/Asynch_IO.cpp (open): Fixed typo. - -Thu Dec 04 21:20:47 1997 Douglas C. Schmidt - - * ACE version 4.4.2, released Thu Dec 04 21:20:47 1997. - -Thu Dec 4 19:45:04 1997 Douglas C. Schmidt - - * ace/Object_Manager.cpp (ACE_Object_Manager_Destroyer): Fixed a - bug in the - ACE_Object_Manager_Destroyer::~ACE_Object_Manager_Destroyer - thread comparison routine. Thanks to Steven Coy for this. Also - renamed _saved_main_thread_id to saved_main_thread_id_, which is - proper ACE style. - - * Updated the ACE-INSTALL.html file to explain why you don't need - to build everything all the time. Thanks to Dustin Laurence - for suggesting this. - - * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking): - Added a check for ENETUNREACH. Thanks to Dustin Laurence - for reporting this. - - * ace/Asynch_Acceptor.cpp (open): Changed the local variable named - sap_any to sa to avoid conflicts with the new sap_any macro. - - * ace/Asynch_IO: Made the ACE_Service_Hanlder::open() method - non-virtual to work around bugs with Borland C++. Thanks to - Valik Solorzano Barboza for suggesting this. - - * ace/ACE.cpp (COMPUTE): Put parens around elements the COMPUTE - macros so that it will work on Borland C++. Thanks to Valik - Solorzano Barboza for suggesting this. - - * ace/config-win32-common.h: Added ACE_HAS_BROKEN_SAP_ANY to deal - with Borland C++ bugs. Thanks to Valik Solorzano Barboza - for suggesting this. - - * ace/Addr: Added a workaround for the Borland C++ problems. This - introduces a new global macro called sap_any. However, this is - only used for Borland, so it should be ok. Thanks to Valik - Solorzano Barboza for suggesting this. - - * ace/LSOCK.cpp (recv_handle): Make the code smarter if we've got - both STREAMS and 4_4BSD_SENDMSG_RECVMSG. - - * Reran "make depend" over all of ACE. - - * netsvcs/clients/Logger/indirect_logging.cpp (main): Changed - LOGGING to LOGGER. Thanks to Irfan for noticing this. - - * netsvcs/lib/Client_Logging_Handler: Changed "rendezvous" to - "logger." - - * netsvcs/clients/Logger/indirect_logging.cpp, - netsvcs/lib/Client_Logging_Handler: Changed DEFAULT_RENDEZVOUS - to DEFAULT_LOGGER_KEY. Thanks to Steven Coy for pointing out - this inconsistency. - - * ace/OS.h: Renamed ACE_LOGGER_KEY to ACE_DEFAULT_LOGGER_KEY to - make it consistent with other ACE_DEFAULT_* names. - - * ace/OS.h: Changed the definition for ACE_LOGGER_KEY so that it - defaults to "localhost:10015" on platforms that don't support - ACE STREAM Pipes. Thanks to Steven Coy for suggesting this. - - * ace/Service_Config.cpp: Added the -k option to parse_args() so - that the user can set the logger key. Thanks to Steven Coy for - suggesting this. - - * ace/Service_Config: Added the logger_key as a parameter to the - other open() method, as well. Thanks to Steve Coy for being - picky ;-). - - * netsvcs/clients/Logger/direct_logging.cpp (main): Modified the - code to use the new framing scheme. - - * netsvcs/lib/Server_Logging_Handler_T.cpp - (handle_logging_record): Updated the code to take advantage of - our new framing scheme. - - * netsvcs/lib/Client_Logging_Handler.cpp (send): We can be smarter - now about sending the ACE_Log_Record across the network since - the length field is now fixed and it's guaranteed to be in the - first 4 bytes. Thanks to Steve Coy for suggesting this. - - * ace/Log_Record.h (ACE_Log_Record): Replaced the horribly - non-portable "long length_" field with the "ACE_INT32 length_" - field, which is nice because it is portable across platforms - with different long-word sizes. - -Thu Dec 04 09:57:40 1997 David L. Levine - - * include/makeinclude/platform_osf1_4.GNU: allow enabling of - WARNING_FLAGS by setting CXX_VER to POST_5X. Thanks to - James Johnson for this suggestion. - - * ace/Svc_Conf_l.cpp: rebuilt with Doug's flex. - -Thu Dec 04 03:46:04 1997 - - * ace/Makefile (Svc_Conf_l.cpp): Changed the sed macros to produce - OS.h include instead of stdcpp.h. - - * ace/Svc_Conf_l.cpp: Updated after code was regenerated using the - new sed changes in the Makefiles. Currently there are two - inclusions of OS.h in this file and an extra stdlib.h. Maybe - someone more experienced in sed can take these out by updating - the Makefile. - - * ace/IOStream_T.h (stdcpp.h): Removed inclusion of stdcpp.h. It - is redundant because IOStream.h includes it. - - * ace/streams.h: New file. This files tries to reduce the - differences between the old and new stream libraries for the - user. This is done by automatically selecting the correct - includes depending on the ACE_HAS_STANDARD_CPP_LIBRARY variable. - This file also helps out by making commonly used classes (e.g., - ios, ostream, iostream, cin, cout, etc) available in the global - name space when used with the Standard C++ Library. Use this - file where you would usually include or . - - * ace/iosfwd.h: New file. This files deals with forward - declaration for the stream classes. Remember that since the new - Standard C++ Library uses templates for the implementation of - the streams, simple forward declaration will not work. Classes - forward declared by this class include: - - ios - streambuf - istream - ostream - iostream - filebuf - ifstream - ofstream - fstream - - Use this file where you would usually forward declare the - classes listed above. - - * ace/stdcpp.h: Removed this file from the repository. This file - was trying to do too much. All the inclusion of the C Library - headers were unnecessary. This is because the new C++ standard - preserves the old C library include files. The functions from - those files will still be in the global namescape. The new - header files (e.g., cstdio), provides the same prototypes as the - old files (e.g., stdio.h), except that all prototypes are in the - std namespace. Since we want the old behavior and global - prototypes (for backward compatibility), inclusion of the new - header files was incorrect. - - stdcpp.h was included by OS.h. This caused almost all files to - force the inclusion of the stream header files. This was - changed so that OS.h only includes the ace/iosfwd.h file. This - means that if your code was using stream classes and you were - depending on OS.h to provide you the stream header files, you - will have to change your code to either include iostream.h or - iostream, or more portably ace/streams.h. - - * ace/OS.h: Removed stdcpp.h. Moved the standard C library - includes from stdcpp.h to OS.h. Also added ace/iosfwd.h to give - forward declaration for the stream classes. - - * ACE: Added explicit inclusion of ace/streams.h to the following - files: - - ace/IOStream.cpp - ace/Log_Record.cpp - ace/OS.cpp - ace/SString.cpp - ace/Log_Msg.cpp - tests/test_config.h - examples/Log_Msg/test_log_msg.cpp - examples/Reactor/Misc/test_time_value.cpp - examples/Threads/task_three.cpp - netsvcs/lib/Logging_Strategy.cpp - examples/Logger/Acceptor-server/server_loggerd.cpp - examples/ASX/UPIPE_Event_Server/event_server.cpp - examples/Reactor/Ntalker/ntalker.cpp - examples/Shared_Malloc/test_persistence.cpp - examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp - examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp - examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp - examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp - - * Updated makefile dependencies throughout ACE to reflect the - removal of stdcpp.h and the addition of streams.h. - - * examples/Threads/barrier2.cpp: Removed inclusion of stdcpp.h. - - * ace/IOStream_T.cpp: Reorganized include files so that inclusion - of config.h is not necessary. - - * ace/IOStream.cpp: Changed inclusion of config.h to OS.h. - - * ace: Removed config.h from the following files. It was - redundant. - - Timer_Hash.cpp - Timer_Heap.cpp - Timer_List.cpp - Timer_Queue.cpp - Timer_Wheel.cpp - - * ace: Added code to protect against multiple inclusions of - config.h. Following files were effected: - - Trace.cpp - Log_Msg.cpp - - * ace/config-win32-common.h: Removed redundant definitions of - ACE_HAS_TYPENAME_KEYWORD and ACE_HAS_SIG_ATOMIC_T. Thanks to - Matthias Kerkhoff for pointing this out. - -Wed Dec 3 21:37:47 1997 Douglas C. Schmidt - - * Added the new ACE-inheritance.ps and pdf files, which show the - class structure of ACE. Thanks to John Lindal - for generating this. - - * ace/Service_Config: Removed the static logger_key_ member and - replaced it with a (defaulted) parameter to open(). This is - more flexible. Thanks to Steve Coy for the suggestion. - - * ace/Service_Config.h: Addressed all the "@@" questions. - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Fixed a - subtle bug in the "quit" logic. Thanks to Michael Hoffman - for reporting - this. - - * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record), - netsvcs/lib/Client_Logging_Handler.cpp (send): - Changed the code so that we now always send ACE_UINT32 bytes - worth of data for the length field. This ensures we're portable - across platforms. Thanks to Steven Coy for noticing this. - -Wed Dec 03 18:02:09 1997 - - * performance-tests/Synch-Benchmarks/Benchmark.cpp: Added template - instantiations for Atomic_Op. - -Wed Dec 3 10:29:58 1997 Carlos O'Ryan - - * ace/ACE.cpp: - Use ACE_UINT32 to compute the 32-bit CRC, on Alphas (and - probably other 64 bit machines) u_long seems to be longer than - that. - -Wed Dec 03 07:39:15 1997 Steve Huston - - * include/makeinclude/platform_hpux.GNU: - * include/makeinclude/platform_hpux_gcc.GNU: Moved some compile options - from the DCFLAGS to the CCFLAGS to compile correctly with or without - debugging. - -Wed Dec 03 06:26:14 1997 David L. Levine - - * ace/Future.cpp, - tests/{Future_Test,Reactors_Test,Reader_Writer_Test.cpp, - examples/Threads/manual_event.cpp: - moved ACE_Atomic_Op instantiation from - ace/Future.cpp to where it is used. - - * ace/OS.cpp (inet_aton): return 0 if addr argument is 0. Thanks - to Wei for reporting this. - - * ace/config-linux.common.h: set an ACE_DEFAULT_BASE_ADDR, on Alpha - for now. This might be necessary on Intel as well. - - * ace/OS.{h,i}, config-osf1-4.0.h: fixed use of ::sigwait with - DIGITAL_UNIX's cxx 6.0, which now uses ACE_HAS_ONEARG_SIGWAIT. - Also, added an ACE_DEFAULT_BASE_ADDR to the config file. - - * tests/{Priority_Reactor_Test,Reactor_Performance_Test}.cpp: - instantiate ACE_Map_*, for use by ACE_Connector, with ACE_HANDLE - instead of int. That's the way it's declared in ace/Connector.h. - -Wed Dec 03 00:17:50 1997 - - * tests/test_config.h: Removed code for - ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION, as this option is no longer - necessary. - - * ace/stdcpp.h: Removed code for - ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION, as this option is no longer - necessary. - - * ace/config-vxworks5.x-g++.h: Removed - ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. This flag is no longer - required. - - * ace/IOStream_T.cpp: Removed ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION - from #if defined. - - * ACE: Removed the explicit iostream.h inclusion from these: - - examples/ASX/UPIPE_Event_Server/event_server.cpp - examples/Log_Msg/test_log_msg.cpp - examples/Logger/Acceptor-server/server_loggerd.cpp - examples/Reactor/Misc/test_time_value.cpp - examples/Shared_Malloc/test_persistence.cpp - examples/Threads/task_three.cpp - netsvcs/lib/Logging_Strategy.cpp - - * ace/IOStream.h: Darrell missed removing this explicit iostream.h - inclusion. - - * ace/Future.cpp: Removed template instantiation of Atomic_Op - since Atomic_Op is not used by Future. - -Fri Dec 02 11:46:17 1997 - - * ace/Proactor.cpp (ACE_Proactor): Reenabled Proactor's thread - manager to wait on its Timer_Handler thread. - - * ace/Thread_Manager.cpp (close_singleton): Removed Win32 specific - codes. This is no longer necessary with above changes. - (wait): Close down thread handles when removing detached - threads. Avoid performing wait when the program is shutting - down. - (remove_thr_all): Extracted out this protected member function. - (close): Changed to use the new remove_thr_all function. - - * ace/Proactor.cpp (handle_events): Changed the magic number 258 - to WAIT_TIMEOUT. Thanks to Mark Rabotnikov - for pointing this out. - -Tue Dec 02 14:13:15 1997 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Moved some compile options - from the DCFLAGS to the CCFLAGS to compile correctly with or without - debugging. Thanks to Istvan Buki for reporting - the problem. - -Tue Dec 02 06:16:39 1997 David L. Levine - - * ace/Object_Manager.cpp (~ACE_Object_Manager_Destroyer): don't - delete the ACE_Object_Manager if not destroyed by the main - thread. That can cause problems, at least on WIN32. And - it should only happen under exceptional conditions, at least - on WIN32. Thanks to Ari Erev and - John Neystadt for suggesting this. - - * ace/IOStream.cpp (underflow,overflow): moved get_mode_ and - put_mode_ accesses so that it now works on KAI C++. - Thanks to Ben Eng for the patch. - - * ace/config-linux-kcc.h: commented out ACE_TEMPLATES_REQUIRE_SOURCE. - Thanks to Ben Eng for this update. - - * ace/Profile_Timer.cpp (elapsed_time): changed - ACE_ONE_SECOND_IN_USECS to ACE_ONE_SECOND_IN_NSECS. Thanks - to Wei for noticing this. - - * ace/OS.cpp (inet_aton): removed CHORUS specialization. - Thanks to Wei for reporting this. - - * include/makeinclude/platform_chorus.GNU: added CHORUS = 1, - for use by individual Makefiles. - - * examples/Shared_Malloc/test_persistence.cpp: removed - ACE_Malloc - instantiation because it's in ace/System_Time.cpp. - - * ace/config-lynxos.h: removed ACE_HAS_UALARM, because LynxOS - apparently doesn't. - - * include/makeinclude/platform_lynxos.GNU: added -Winline and - removed -fno-strict-prototypes. - - * tests/Message_Queue_Test.cpp (main): increased queue size from - default of 16Kb to 32Kb, so that it runs on machines with 8Kb - pagesizes. And, added a check to see if the queue is full - before enqueuing. - - * ace/OS.i, config-osf1-4.0.h: DECXX 6009006 has SIGWAIT. - - * ACE-INSTALL.html: updated DEC_UNIX test status. Message_Queue_Test - and all of the Mutex_Tests now pass. Conn_Test no longer does. - -Tue Dec 02 00:18:04 1997 - - * ace/Memory_Pool.cpp (handle_signal): If guess_on_fault_ is true, - then we cannot call remap(0). This will always put the address - out of range. Therefore, we will shoot in the dark (user has - instructed us to do so as guess_on_fault_ is true) and try to - remap the file. If the user does not want this behavior, the - guess_on_fault_ flag should be turned off. Thanks to Jon - Prettyman for pointing this out. - -Mon Dec 01 16:13:06 1997 - - * ace/config-win32-common.h: Added back ACE_LACKS_ACE_IOSTREAM to - the config file. The test is not compiling. - - * tests/run_tests.bat: Look for "Win32 structured exception" in - the log files. - -Mon Dec 1 14:01:02 1997 Darrell Brunsch - - * ace/Log_Msg.cpp, ace/Log_Msg.h, ace/Log_Record.cpp, - ace/Log_Record.h ace/OS.h, ace/stdcpp.h, tests/test_config.h: - - Changed use of ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION in stdcpp.h - to include iostream when the above is #defined. Made - changes to other files to accommodate this change. - -Mon Dec 01 12:15:00 1997 - - * ace/config-win32-common.h (ACE_LACKS_ACE_IOSTREAM): James CE - Johnson claims that ACE_LACKS_ACE_IOSTREAM is no longer not - necessary when using the ACE_HAS_STANDARD_CPP_LIBRARY. - - * ace/OS.h: Changed the definition of ACE_UNIMPLEMENTED_FUNC so - that it just evaporates on platform that have - ACE_REQUIRES_FUNC_DEFINITIONS defined. - - ACE_UNIMPLEMENTED_FUNC is only required for template classes and - not for a normal class. When the template is explicitly - instantiated, it causes some compilers to look for the - definition of all the declared methods. - - On platforms that have this behavior, we have decided to take - out the declaration of this function. This is necessary since - an empty definition of {} usually does not work with some - constructors. And by providing a explicit definition of this - function, will cause all platforms to suffer. - - Therefore, platforms with ACE_REQUIRES_FUNC_DEFINITIONS defined - must be specially careful when using this. - -Mon Dec 01 07:56:02 1997 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++.GNU: added - -xildoff to LDFLAGS, to avoid occasional problems with - the incremental linker. Thanks to Hans Rohnert - for this suggestion. - - * include/makeinclude/platform_vxworks5.x_g++.GNU, - etc/ace_ld, bin/ace_ld, ACE-INSTALL.html: - moved ace_ld from etc/ to bin/. - - * Makefile: added etc/ to CLONE and RELEASE_FILES. - - * include/makeinclude/platform_lynxos.GNU: added -Wall to CFLAGS. - - * ace/ACE.cpp (set_handle_limit): only call setrlimit if - RLIMIT_NOFILE is #defined. - - * ace/OS.h: removed ACE_HAS_STDARG_THR_DEST dependence for - ACE_THR_DEST definition. - - * ace/OS.cpp (thr_keycreate): with ACE_HAS_DCETHREADS only, cast - dest argument to ::pthread_keycreate if ACE_HAS_STDARG_THR_DEST. - - * ace/OS.i (get{host,proto,serv}by{addr,name}_r): with - ACE_HAS_NONCONST_GETBY only, added some ACE_UNUSED_ARGS. - - * examples/Shared_Malloc/Malloc.cpp: removed - ACE_Guard instantiation because it's in - ace/Synch.cpp. - - * ace/config-lynxos.h: added ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS. - Without it, the Thread_Manager went recursively ballistic. - - * performance-tests/Misc/preempt.cpp (main): fixed printout if - ACE_OS::sched_params () call failed. - -Sun Nov 30 22:44:50 1997 Douglas C. Schmidt - - * ACE version 4.4.1, released Sun Nov 30 22:44:50 1997. - -Sun Nov 30 20:32:50 1997 David L. Levine - - * include/makeinclude/platform_osf1_3.2.GNU: removed -ptr option - from CCFLAGS, so the default template repository will be used. - Thanks to Dani Flexer for reporting this. - - * ace/Svc_Conf_l.cpp,Makefile: - 1) #include ace/stdcpp.h instead of stdio.h so that anything - that needs to be #included with/before stdio.h can be. - 2) Changed ECHO to ACE_SVC_CONF_ECHO to avoid compiler warning if - ECHO was #defined to be a constant. - - * ace/Makefile: set ACELIB to null so that it can be used to build - shared libs, including libACE.$(SOEXT). - - * include/makeinclude/platform_osf1_4.0.GNU: added $(ACELIB) to - SOFLAGS to avoid shared lib build warnings about undefined ACE - symbols. - - * ace/Thread_Manager.h: declare ACE_THR_MEMBER_FUNC outside of - ACE_Thread_Manager class with __GNUG__ instead of with - VXWORKS || IRIX5. The problem is with older versions of g++, - not with the OS. - -Sun Nov 30 14:13:09 1997 Douglas C. Schmidt - - * netsvcs/servers/README: Clarified a bit more about how to - configure the client and server logging processes. Thanks to - Neil Cohen for motivating this. - -Sun Nov 30 17:36:35 1997 Sergio Flores - - * ace/Synch.cpp (ACE_File_Lock): Fixed order of parameters in the - call to this->open() and too many arguments in call to - ACE_File_Lock::open(). - -Sun Nov 30 16:31:41 1997 Carlos O'Ryan - - * ace/Synch.h: - * ace/Synch.cpp: - ACE_File_Lock should create the file if it does not exist, to do - so the constructor takes the parameter to ACE_OS::open() - and defaults to O_CREAT|O_RDWR. - -Sat Nov 29 21:31:07 1997 Nanbor Wang - - * ace/Proactor.cpp (~ACE_Proactor_Timer_Handler): Removed explicit - call to thr_mgr_.close(). - (ACE_Proactor): Be sure to ask Thread_Manager not to wait for - the timer_handler_ thread. - - * ace/Thread_Manager.cpp (close_singleton): Only reset - exit_on_wait status if we are responsible for deleting the - global thread manager. - -Sat Nov 29 15:15:04 1997 Carlos O'Ryan - - * ace/IPC_SAP.cpp: - Removed warning for functions not returning a value on SGI, it - seems that the flow changed and the last return was reached - sometimes, hence the ACE_NOTREACHED macro is no longer needed. - -Sat Nov 29 13:12:47 1997 Douglas C. Schmidt - - * ace/Synch: Conditionally inlined all the ACE_Process_Mutex - wrapper calls and moved them into the Synch.i file. I'm not - sure why there weren't here before. - - * ace/Synch: Reimplemented ACE_RW_Process_Mutex to use - ACE_File_Lock, which provides the proper readers/writer - semantics that had been lacking in the previous implementation. - -Fri Nov 28 04:25:23 1997 Nanbor Wang - - * ace: Removed redundant trailing commas from - ACE_UNIMPLEMENTED_FUNC. - - * ace/Thread_Manager.{h,i,cpp}: Delete declaration of - remove_thr_self. It is no longer in use. - (wait_on_exit): Added this function to let users specify whether - they want their Thread_Manager wait for spawned threads on exit - or not. - (wait): On Win32, handles should be closed if we decide to let - the thread go wild. - (remove_thr): Added another parameter to control whether - remove_thr should close the handle or not. It is only used on - Win32. - (close): Removed the parameter for it has been - incoporated as a member. - (close_singleton): Reset on Win32. We'll never - need to wait for unfinished threads on NT. - (ACE_Thread_Manager): Added initialization of member - . It is default to 1 (wait on exit.) - - * ace/Containers.h: Corrected erroneous comments. - -Wed Nov 26 10:33:22 1997 - - * ace/Log_Msg (msg): Changed the parameters from char * to const - char *. - - * ace: Added unimplemented copy constructors and assignment - operators to the following classes: - - ACE_Map_Manager - ACE_Message_Block - ACE_Data_Block - ACE_Log_Msg - ACE_Message_Queue - ACE_Task - ACE_Task_Base - - Added ACE_UNIMPLEMENTED_FUNC macros to these classes: - - ACE_Mem_Map - ACE_Priority_Reactor - ACE_Select_Reactor - ACE_WFMO_Reactor - ACE_XtReactor - ACE_Reactor - ACE_Read_Buffer - ACE_CORBA_Handler - ACE_TSS_TPQ_Entry - ACE_Object_Manager - ACE_File_Lock - ACE_Semaphore - ACE_RW_Mutex - ACE_Mutex - ACE_Null_Barrier - ACE_Null_Condition - ACE_Null_Mutex_Guard - ACE_Event - ACE_Thread_Mutex - ACE_Thread_Mutex_Guard - ACE_Condition_Thread_Mutex - ACE_Recursive_Thread_Mutex - ACE_Barrier - ACE_Condition - - Thanks to Stanley D Leeson for these - suggestions. - -Sat Dec 20 14:57:30 1997 - - * All MSVC 5.0 project files: Removed unnecessary library - inclusions. Most of them are not necessary. Thanks to - Patrick J. McNerthney for suggesting - this. - -Wed Nov 26 15:49:14 1997 David L. Levine - - * ace/IOStream_T.i (recv) affects WIN32 only: fixed typo, - ACE_BIT_ENABLED instead of ACE_BIT_ENTABLED IOStream_T.i. - Thanks to James CE Johnson for reporting this. - - * include/makeinclude/platform_lynxos.GNU: added information - on necessary OS patches. - -Wed Nov 26 09:45:43 1997 Chris Cleeland - - * ace/OS.h (ACE_PROPER_SINGLETON_INSTANTIATION): Corrected - misspelling in the "! defined (MSC_VER)" branch. I just happened - to notice this, so I don't know if anybody ever tried it and it - failed. - -Tue Nov 25 12:07:07 1997 David L. Levine - - * include/makeinclude/platform_osf1_3.2.GNU: updated for - OSF/1 3.2g/CXX 5.7. Thanks to Dani Flexer - for the updates. - -Tue Nov 25 01:07:39 1997 - - * examples/Reactor/Proactor/test_multiple_loops.cpp (main): Made - sure that the Proactor was removed from reactor. - - * ace/WFMO_Reactor.cpp (remove_handler_i, - remove_suspended_handler_i): Make sure to preserve DONT_CALL - with normal event entries. - - * ace/Proactor.cpp: - - - A flag used to indicate when we are shutting down. - - - Made sure to signal the timer event when we are closing down. - - - Thread Manager: don't bother to wait (since the thread may have - already gone). But make sure to close up the descriptor. This - may not be necessary in the future when THR_DETACHED is - correctly implemented. - - * ace/Asynch_IO.h: Changed some code from protected to public. - Even though these functions are really protected, sometimes it - simplifies user code to be able to "fake" a result. Users - should use these with care. - - * examples/Reactor/Proactor/test_proactor.cpp - (handle_write_stream): Added code for partial write to socket. - However it ever seems to do a short write ;-). Also made sure - that the initial data coming from the AcceptEx call is also - dumped to the file. Thanks to Mark Rabotnikov - (mark@netmanage.co.il) for pointing this out. diff --git a/ACE/ChangeLogs/ChangeLog-98b b/ACE/ChangeLogs/ChangeLog-98b deleted file mode 100644 index d9de5949d12..00000000000 --- a/ACE/ChangeLogs/ChangeLog-98b +++ /dev/null @@ -1,12943 +0,0 @@ -Thu Dec 31 13:25:53 1998 James CE Johnson - - * docs/tutorials/019/server[2].cpp: - Test that the segment was created. If it already existed, the - malloc() will return 0 and we'll crash. - -Thu Dec 31 12:10:46 1998 Carlos O'Ryan - - * tests/RB_Tree_Test.cpp: - Added missing template instantiation, actually it seems that the - IRIX MIPSPro compiler was not doing recursive instantiation. - - * ace/ACE.cpp: - Use ACE_NOTREACHED in ACE::set_handle_limit(), the IRIX compiler - was complaining again. - -Thu Dec 31 10:58:11 1998 David L. Levine - - * ace/Containers_T.cpp (ACE_Fixed_Set::insert): removed - blank line between function header and body. - -Thu Dec 31 09:40:09 1998 Douglas C. Schmidt - - * ace/SOCK_Stream: Added a new ACE_SOCK_Stream constructor that - initializes the underlying ACE_HANDLE automagically. - -Wed Dec 30 17:07:21 1998 Douglas C. Schmidt - - * ace/Containers_T.h: Clarified that the insert() method on - ACE_Unbounded_Stack doesn't allow duplicates. Thanks to Susan - Liebeskind for reporting - this. - -Wed Dec 30 14:41:56 1998 Carlos O'Ryan - - * ace/ACE.cpp: - Sometimes the get_ip_interfaces routine was returning 0.0.0.0 as - a valid address, we explicitly avoid that now. - -Wed Dec 30 14:34:44 1998 Nanbor Wang - - * bin/GenExportH.BAT: Added '\$\I\d\$' string in generated file. - Also in generated file, make XXX_HAS_DLL defined to 1 if it - isn't defined already. - -Wed Dec 30 13:22:50 1998 Chris Gill - - * ace/Functor.{cpp, h, i} - ace/Functor_T.{cpp, h, i} - ace/Hash_Map_Manager.{h, i} - ace/Hash_Map_Manager_T.{h, i}: Moved ACE_Hash and ACE_Equal_To - STL-style functors from the Hash_Map_Manager files into the - Functor files (so other containers can use these from a central - place). Added ACE_Less_Than STL-style functor. Thanks to Doug - Schmidt, Carlos O'Ryan, and Irfan Pyarali for comments on the - distinctions between GOF command pattern functors and STL-style - functors. - - * ace/RB_Tree.{cpp, h, i}: Reworked templates so RB_Tree can take - advantage of template specialization for strcmp semantics without - the overhead of a virtual function call. Thanks to Carlos O'Ryan - for his suggestions on how to achieve this. - - * ace/OS.h - ace/config-psos-diab.h - include/makeinclude/platform_psos_diab.GNU - tests/Handle_Set_Test.cpp - tests/Process_Strategy_Test.cpp - tests/RB_Tree_Test.cpp - tests/Reactor_Performance_Test.cpp - tests/TSS_Test.cpp: A number of fixes to allow ACE pSOS tests to - compile and link successfully. - -Wed Dec 30 10:36:36 1998 David L. Levine - - * tests/Env_Value_Test.cpp: protected tests of doubles with - #ifndef ACE_LACKS_FLOATING_POINT, so that the test will - build for our Chorus platform. - -Tue Dec 29 16:24:24 1998 David L. Levine - - * bin/Service_Config.perl,auto_ptr.perl,corba-boolean.perl, - rename-ace.pl: use perl from user's path, so we don't have - to hard-code its location. - - * tests/Time_Value_Test.cpp: don't test ACE_U_LongLong if - the platform defines ACE_LACKS_LONGLONG_T, e.g., GreenHills, - because it makes a big mess. - - * bin/Hash_Map_Manager.pl,Hash_Map_Manager_Helper.csh: - translated Hash_Map_Manager_Helper.csh from csh to sh. - Renamed Hash_Map_Manager_Helper.csh to Hash_Map_Manager_Helper. - - * docs/ACE-guidelines.html: specifically disallow csh scripts. - -Tue Dec 29 15:09:15 1998 Douglas C. Schmidt - - * ACE version 4.6.10 released. - -Tue Dec 29 14:57:24 1998 Douglas C. Schmidt - - * docs/tutorials/{019,020}: Checked out the two new tutorials - from James Johnson. - -Tue Dec 29 14:37:57 1998 Douglas C. Schmidt - - * ACE version 4.6.9 released. - -Tue Dec 29 13:32:50 1998 Nanbor Wang - - * ace/OS.h (ACE_SELF): Changed it's definition from -1 to 0 on NT - to avoid warings from Intel C++. ACE_SELF is not used on NT. - Thanks to Karel Zuiderveld for - reporting this. - -Tue Dec 29 10:29:03 1998 Douglas C. Schmidt - - * ace: Fixed a bunch of warnings produced by Intel's C++ 4.0 - compiler. Thanks to Karel Zuidrveld - for reporting these. - -Tue Dec 29 09:47:48 1998 David L. Levine - - * ace/config-sunos*.h,README: - restored ACE_TIMER_SKEW, with explanatory comment. - -Mon Dec 28 23:12:59 1998 Douglas C. Schmidt - - * ace/DLL.h, - ace/Mem_Map.h, - ace/Read_Buffer.h: - Added ACE_UNIMPLEMENTED_FUNC() macros to these headers. - -Wed Dec 28 22:55:55 1998 Kirthika Parameswaran - - * ace/DLL.h: Prevent copying and assignment by putting these - methods in the private part of the class. - -Mon Dec 28 17:57:25 1998 James CE Johnson - - * docs/tutorials/020/*: - Sooner than expected... A brief and basic intro to using - ACE_Shared_Memory_MM. - - * docs/tutorials/online-tutorials.html: - Linked in 019 and 020 - -Mon Dec 28 16:32:42 1998 James CE Johnson - - * docs/tutorials/019/*: - At long last, a basic Tutorial on ACE_Shared_Memory_SV. With - luck, 020 will be added soon to cover ACE_Shared_Memory_MM - -Mon Dec 28 11:21:40 1998 Douglas C. Schmidt - - * ace/Strategies.h: Put the "virtual" keyword in from of the - ~ACE_Reactor_Notification_Strategy to make it clear - that this destructor is virtual. Thanks to Greg Gallant - for pointing this out. - -Mon Dec 28 11:12:08 1998 David L. Levine - - * ACE-INSTALL.html: added SunOS 5.7 (Solaris 7) info. - -Mon Dec 28 10:52:20 1998 Carlos O'Ryan - - * */Makefile: - Updated dependencies. - -Mon Dec 28 02:34:59 1998 Nanbor Wang - - * examples/Service_Configurator/IPC-tests/server/server_test.cpp - (main): Allow loading in static services in this application. - Thanks to Peter J. Mason for reporting this. - - * ace/Service_Config.{h,i,cpp} (ACE_Service_Config): Changed the - default value of to 1. Otherwise, it is - not consistent with the initial value of - ACE_Service_Config::no_static_svcs_ and that's very confusing. - (open): Added one more argument with - default value of 1. This allow us to turn off this behavior - when opening Service_Config. Otherwise, the only other way is - to create a fake ACE_Service_Config and use that to change the - static variable . - -Sun Dec 27 21:51:10 1998 David L. Levine - - * etc/purify.solaris2: added a couple of MIU suppressions for - SunOS 5.7's thread library. - -Fri Dec 25 08:23:51 1998 Douglas C. Schmidt - - * ACE-INSTALL.html: Fixed a broken link to the ACE FAQ. Thanks to - Barry Hoggard for reporting this. - -Fri Dec 25 01:55:32 1998 Irfan Pyarali - - * ace/Hash_Map_Manager: There are two problems with the current - implementation of Hash_Map_Manager: - - (a) It requires a hash() method on the key type. If it is not - possible for the key type to have a hash() function (e.g., - the key is a primitive type such as an int, or is a pointer - type, or a three party class), the usual solution is to do - partial template specialization. - - This is usually not a very good option since some compilers - do not support partial template specialization. - - (b) The second problem is with comparing two keys. - Hash_Map_Manager assumes that keys can be compared using - operator==. This assumption causes problems in some cases, - e.g., when using char * as the key. Usually with char *, - you want to use strcmp and not compare pointers. - - Solution to these two problems is the new Hash_Map_Manager_Ex - class. Problem (a) is addressed by using a function object - the - type of which is specified by the user as an additional template - parameter. Problem (b) is addressed by using another function - object - the type of which is specified by the user as an - additional template parameter. So the new Hash_Map_Manager_Ex - takes five template parameters: - - - - Backward compatibility: Hash_Map_Manager now inherits from - Hash_Map_Manager_Ex, fixing the hash_key function object (which - simply calls key.hash()) and fixing compare_keys (which simply - uses operator== on the keys). - - There will be one problem: Users of compilers that do not - implicitly instantiate templates will have to update their list - of template instantiations. To help with this, please see - $ACE_ROOT/bin/Hash_Map_Manager_Helper.csh - - Other miscellaneous changes: Added two new classes: ACE_Hash - and ACE_Equal_To. ACE_Hash assumes a hash() method on T. - ACE_Equal_To compares by using operator==. However, the - ACE_Hash class has been specialized to work with: - - char, signed char, unsigned char, - short, unsigned short, - int, unsigned int, - long, unsigned long, - const char *, char *, - const wchar_t *, wchar_t *, - const ACE_USHORT16 *, ACE_USHORT16 *, - - Also, ACE_Equal_To has been specialized to work with: - - const char *, char *, - const wchar_t *, wchar_t *, - const ACE_USHORT16 *, ACE_USHORT16 *, - - Remember, you don't have to use these specialization. You can - always create your own. - - If we had default template parameters, we could default hash_key - to ACE_Hash and compare_keys could default to - ACE_Equal_To. - - BTW, note that the specialization with ACE_Hash and ACE_Equal_To - is not partial template specialization. It is complete template - specialization, and we don't know of compilers that cannot - handle complete template specialization. - - Since we now have template specialization, Hash_Map_Manager_T.* - files were created. I also took this opportunity to inline most - of the Hash_Map_Manager functions. - - Also, update the makefiles and project files. - - BTW, these changes grossly simplified - tests/Hash_Map_Manager_Test.cpp and tests/Map_Manager_Test.cpp. - These tests will now work with compilers that do not support - partial template specialization. Maybe James can change - Filecache to take advantage of these changes. - - Updated the following files with the new template instantiations: - - ace/Filecache.cpp - ace/Local_Name_Space.cpp - ace/Template_Instantiations.cpp - tests/Conn_Test.cpp - tests/Hash_Map_Manager_Test.cpp - tests/Map_Manager_Test.cpp - TAO/examples/Callback_Quoter/Notifier_i.cpp - TAO/examples/POA/On_Demand_Loading/Servant_Manager.cpp - TAO/examples/Simple/bank/AccountManager_i.cpp - TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp - TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp - TAO/orbsvcs/orbsvcs/Log/Logger_i.cpp - TAO/orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp - TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.cpp - TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.cpp - TAO/orbsvcs/orbsvcs/Trader/Trader.cpp - TAO/orbsvcs/orbsvcs/Trader/Trader_Utils.cpp - TAO/tao/ORB.cpp - TAO/tao/ORB_Core.cpp - TAO/tao/Object_Table.cpp - TAO/tao/Operation_Table.cpp - TAO/tao/POA.cpp - examples/Map_Manager/test_hash_map_manager.cpp - - Thanks to Carlos for suggesting these changes. Most of these - were inspired by SGI's STL. - - If these changes are successful (i.e., nobody is hunting me down - for breaking their code ;-)), we should add a similar comparison - function object to Map_Manager, Collections in Containers_T that - require an operator==() (typically for remove() and find()) and - the RB_Tree. - - * ace/ACE (hash_pjw): hash_pjw is now available for char *, - wchar_t *, and ACE_UINT16 *. - - * ace/OS (strlen, strcpy, strcmp): These functions are now - available for char *, wchar_t *, and ACE_UINT16 *. - - * ace/SString.cpp (ACE_WString::strlen): Simply calls - ACE_OS::strlen. - - * ace/config-win32-common.h (ACE_HAS_WCHAR_TYPEDEFS_USHORT): Since - Win32 typedefs wchar_t as a 16 bit unsigned short, this can - potentially cause problems with function overloading. - Therefore, I added ACE_HAS_WCHAR_TYPEDEFS_USHORT to the Win32 - config file. This is very similar to - ACE_HAS_WCHAR_TYPEDEFS_CHAR. Thanks to David Levine for helping - with this. - -Thu Dec 24 09:37:32 1998 Douglas C. Schmidt - - * ACE version 4.6.8 released. - -Thu Dec 24 00:59:46 1998 Nanbor Wang - - * ace/Thread_Manager.h (ACE_Thread_Manager): Added a more complete - documentation of the deprecated method. Thanks to - Keith Brown for reporting this. - -Wed Dec 23 16:37:52 1998 David L. Levine - - * ace/config-sunos5.5.h,include/makeinclude/platform_sunos5_ghs.GNU: - updated so that links succeed. - -Wed Dec 23 15:58:53 1998 Nanbor Wang - - * ace/ACE.cpp (ldfind): Supress changing the 'dll' name if a - customized dll extension is used. - -Tue Dec 22 22:34:32 1998 David L. Levine - - * ace/config-sunos5.5.h,include/makeinclude/platform_sunos5_ghs.GNU: - added GreenHills compiler support. - - * ace/OS.h: don't use hrtime_t for ACE_hrtime_t if - ACE_LACKS_LONGLONG_T. - -Mon Dec 21 16:06:07 1998 Douglas C. Schmidt - - * ace/Shared_Memory_MM.i: Changed the remove() method to call - ACE_Mem_Map::remove() rather than ACE_Mem_Map::unmap() so the - code is consistent with the documentation. Thanks to James - Johnson for reporting this. - -Mon Dec 21 13:55:33 1998 David L. Levine - - * ace/Containers_T.{i,cpp} (ACE_Bounded_Set::is_full): On LynxOS - only, uninlined this function to avoid Internal Compiler Error - with native (3.0.0) compiler. Thanks to Carlos for this fix, - it had us stumped for quite a while. - -Sat Dec 19 18:27:07 1998 Douglas C. Schmidt - - * ace/Timer_Queue_Adapters.cpp (handle_signal): Cleaned up an - unused variable. Thanks to David Levine for reporting this. - -Fri Dec 18 09:30:57 1998 David L. Levine - - * ace/High_Res_Timer.h (elapsed_time_incr): added missing - const to member function declaration. - - * ace/config-sunos5.5.h: removed redundant - ACE_HAS_XPG4_MULTIBYTE_CHAR #define. - - * ace/config-sunos5.7.h: added this config, for Solaris 7. - - * apps/Gateway/Gateway/Gateway.cpp, - examples/ASX/Event_Server/Transceiver/transceiver.cpp - (handle_signal): added ACE_UNUSED_ARG (signum). - -Fri Dec 18 06:08:47 1998 Douglas C. Schmidt - - * ace/High_Res_Timer: Made several methods const. Thanks to Ulf - Jaehrig for reporting this. - - * ace/Thread.h (ACE_Thread): Removed a stray join(ACE_Thread_ID) - method. Thanks to Jody Hagins for reporting - this. - -Thu Dec 17 21:06:30 EST 1998 James CE Johnson - - * docs/tutorials/000: - Removed. This is redundant with the Chap* directories. - -Thu Dec 17 17:18:21 1998 Douglas C. Schmidt - - * include/makeinclude/platform_sco5.0.0-{nothread,fsu-pthread}.GNU: - This file was been modified to get rid of thread related stuff - until we can obtain the FSU threads library. Thanks to Michael - Preobrazhensky for this. - -Thu Dec 17 16:56:28 1998 David L. Levine - - * bin/create_ace_build: try /bin/find if /usr/bin/find doesn't exist. - - * ace/High_Res_Timer.cpp (elapsed_time): rearranged terms in - nanoseconds calculation to avoid overflow on machines that don't - have native 64-bit ints. Thanks to Greg Holtmeyer - for helping to track this problem down. - -Thu Dec 17 12:43:11 1998 Douglas C. Schmidt - - * ace: Removed the use of ACE_DEBUG within handle_signal() methods - to avoid portability problems. Thanks to Susan Liebeskind - for reporting this. - -Tue Dec 15 14:45:49 1998 David L. Levine - - * *.h: removed () from #pragma implementation argument. - Thanks to Christian v. Mueffling for reporting - this. - - * docs/ACE-guidelines.html: added Doug's warning about side effects - in ACE_DEBUG statements. - -Tue Dec 15 14:43:47 1998 Ossama Othman - - * ace/OS.{h,i},README: added lstat() and readlink() methods. - Use ACE_LACKS_LSTAT and ACE_LACKS_READLINK if lstat() and readlink() - aren't supported. - -Tue Dec 15 11:55:51 1998 Steve Huston - - * ace/ACE_Library.(mak mdp): Added Message_Queue.cpp to the files list. - - * examples/NT_Service/NT_Service.(mak mdp): MSVC 4.2 project file for - the NT_Service example. - -Tue Dec 15 11:27:24 1998 David L. Levine - - * ace/config-chorus.h: added ACE_LACKS_READLINK. - - * ace/config-psos*.h,config-vxworks-5.x.h: added ACE_LACKS_READLINK - and ACE_LACKS_LSTAT. - -Tue Dec 15 08:44:18 1998 Steve Huston - - * examples/NT_Service: New example program, shows how to create, - manipulate, and run an NT Service using the ACE_NT_Service class. - Muchas gracias to Gonzalo Diethelm for smashing this code into a - good example - useful enough to show how things work, but simple - enough to show all the useful functionality in one concise program. - -Tue Dec 15 07:32:49 EST 1998 Aniruddha Gokhale - - * OS.h: - - Moved the definition of IOV_MAX after we have included the - limits.h file. Before make ing this change, we were getting lots - of warnings on SunOS 5.6 about redefinition of IOV_MAX. - -Mon Dec 14 15:39:39 1998 Carlos O'Ryan - - * tests/Makefile: - Updated dependencies. - -Mon Dec 14 10:49:29 1998 Nanbor Wang - - * Static_Performance.dsw: Quick and dirty workspace to build - several static version's performance tests. - - * ace/ace_lib.dsp: Removed "__ACE_INLINE__=0" from the default - static release build settings. - - * performance-tests/Misc/basic_perf.dsp: - * performance-tests/Misc/context_switch_time.dsp: Added static - build configurations. - - * tests/RB_Tree_Test.dsp: Redid the project file. A VC 6 only - compiler option somehow got into the file. Thanks to Ulf - Jaehrig for reporting this. - -Mon Dec 14 10:24:59 1998 Fred Kuhns - - * ace/OS.h: Added #define for IOV_MAX 16 - -Mon Dec 14 08:35:11 1998 David L. Levine - - * BUG-REPORT-FORM: added a few FMMs. - -Mon Dec 14 08:27:11 1998 Steve Huston - - * tests/run_tests.sh: Enabled MT_Reactor_Timer_Test. - -Sun Dec 13 16:40:18 1998 Nanbor Wang - - * tests/MT_Reactor_Timer_Test.dsp: - * tests/tests.dsw: Added the new project file - - MT_Reactor_Timer_Test. - - * tests/run_tests.bat: Added MT_Reactor_Timer_Test into - one-button test for NT. - - * tests/MT_Reactor_Timer_Test.cpp: Changed the use of - ACE_OS::{read,write} to ACE::{recv,send}. - -Sat Dec 12 17:19:17 1998 Irfan Pyarali - - * ace/ACE.cpp (ldfind): If we specified a suffix which is not the - default suffix on the platform, the ldfind() operation should - not try to add the default platform suffix but use ours. - -Sat Dec 12 07:44:02 1998 John Lindal - - * ace/config-mklinux.h: added. - -Fri Dec 11 23:26:20 1998 Nanbor Wang - - * tests/Message_Queue_Test.cpp: Generalize the test to perform - "platform specific" message queue tests when applicable. - Currently, this only applies to VxWorks and Windows NT 4.0 or - above. - - * tests/DLL_Test.cpp (main): STL's implementation of auto_ptr - doesn't define an assignment operator that takes a pointer of T. - Changed to use constructor to initialize the auto_ptr my_hello. - -Fri Dec 11 16:30:44 1998 Ossama Othman - - * tests/Time_Value_Test.cpp: Removed the ACE_DISABLE_AUTOCONF_LONGLONG - macro. It broke ACE+autoconf on non-sun platforms. - -1998-12-11 Nanbor Wang - - * test/DLL_Test.dsp: Fixed configuration settings. Most of the - time, it's easier to add new projects by using the - bin/dsp2dsp.pl. - - * ace/Message_Queue.{h,cpp} (enqueue): Made sure all bytes in a message - block chain are accounted for. - (enqueue_tail,dequeue_head): Added two more methods into - ACE_Message_Queue_Base. They are the prefered methods to use. - -Fri Dec 11 15:09:43 1998 Ossama Othman - - * tests/Time_Value_Test.cpp: define ACE_DISABLE_AUTOCONF_LONGLONG - before including ace/inc_user_config.h. This will prevent - an automatically generated ACE Configuration Project config.h - header from defining ACE_UINT64, and thus allowing - Time_Value_Test.cpp to compile on platforms that define - ACE_HAS_STHREADS. Please read the comment in Time_Value_Test.cpp. - ACE_DISABLE_AUTOCONF_LONGLONG is not meant for general use! - -Fri Dec 11 14:05:11 1998 Steve Huston - - * tests/MT_Reactor_Timer_Test.(cpp h): Replaced the multithread - timer set/cancel test with sensible tests. - -Fri Dec 11 08:51:07 1998 David L. Levine - - * ACE-INSTALL.html: updated egcs version information. - - * VERSION: added ace-users/comp.soft-sys.ace info. - - * include/makeinclude/platform_osf1_4.0.GNU: added suppression - of warning 1136, conversion to integral type of smaller size - could lose data. cxx V6.1-029 spews out a bunch of them, - otherwise. - - * tests/Time_Value_Test.cpp: protected definition of __ACE_INLINE__. - Thanks to Ossama for reporting this. - -1998-12-11 Nanbor Wang - - * ace/Message_Queue.{h,i,cpp} (ACE_Message_Queue_Base): Added a - bunch of pure virture functions in the class to define the - common interface functions of a message queue. This allows up - to experiment different message queue implementations easily. - Most significantly, all queueing operations are simplified into - and method in ACE_Message_Queue_Base as - "standard" queueing operations. Inherited class, of course, can - add fancier queueing operations (as in ACE_Message_Queue.) - - (ACE_Message_Queue_NT): A new adapter class inherited from - ACE_Message_Queue_Base that implement a message queue using NT's - IO completion ports. As it's name implies, this is a - specialized version for NT. It is not as versatile as ACE's - general MQ implementation. However, this implementation - consumes less NT handles which in some circumstances may be a - big win (because ACE_Message_Queue uses cv and on NT, cv is - simulated and consumes 4 handles per cv. ACE_Message_Queue_NT - only uses one handle and one critical section.) - - Several features inherited from IO completion port are, the - waiting threads are release in LIFO order, and you can control - (at initialization time,) the max number of threads that can be - release by the message queue to run concurrently. - - Notice that the constructor and the method have different - signature compared with those of ACE_Message_Queue. You should - use ACE_Message_Queue_Factory to create a message queue on the - fly if so desired. - - Thanks to Mark Lucovsky and Karlheinz Dorn - for providing the idea. - - * ace/Message_Queue_T.h (dequeue): Added the new method to match - with the changes in ACE_Message_Queue_Base. - (create_NT_message_queue): A wrapper function to manufacture an - ACE_Message_Queue_NT. - - -Thu Dec 10 09:08:26 1998 David L. Levine - - * ace/config-chorus.h: added ACE_LACKS_FSYNC. - - * ACE-INSTALL.html: ACE/TAO build on Linux RedHat 5.2 - as well as 5.1. - - * ace/config-osf1-3.2.h: added getpgid () prototype, because - an old comment said that it was missing from the system headers. - - * ace/config-linux-common.h: replaced ACE_LACKS_GETPGID with - a getpgid () prototype. - - Thanks to Ivan Pascal for motivating the - above two getpgid () updates. - - * ace/config-sunos5.5.h: updated comment on why explicit - instantiation isn't used with Sun CC. Thanks to - William A. Hoffman for introducing - us to -instances=explicit. - -Wed Dec 09 22:59:38 1998 David L. Levine - - * ACE version 4.6.7 released. - -Wed Dec 09 18:03:58 1998 Irfan Pyarali - - * examples/Reactor/WFMO_Reactor/test_network_events.cpp (main): - Removed global variables and cleaned up some minor things. - -Wed Dec 09 07:02:06 1998 David L. Levine - - * README, VERSION: expanded mention of BUG-REPORT-FORM. - - * docs/ACE-guidelines.html: strengthened mention of ACE_ASSERT danger. - Thanks to Irfan for the example. - - * tests/run_tests.vxworks: re-enabled Timeprobe_Test, now that - ACE_ASSERTs have been fixed in ACE's Containers. - - * ace/config-linux-common.h,config-osf1-{3.2,4.0}.h: - removed ACE_LACKS_GETPGID. Thanks to - Ivan Pascal for reporting that - getpid () is supported on those platforms. - - * ace/config-linux-common.h: restored ACE_LACKS_GETPGID, - because ::getpgid () isn't found on Alpha with glibc 2.0.7. - - * tests/Timeprobe_Test.cpp: disabled ACE_ENABLE_TIMEPROBES, - because the ACE lib is built by default without them. - - * performance-tests/Misc/context_switch_time.cpp: disabled - Yield_Test on VxWorks, because it doesn't run properly there. - - * ace/config-tandem.h,README: removed ACE_HAS_STRUCT_PROTOENT_DATA, - because it is no longer used. Thanks to Ossama for reporting this. - - * tests/Collection_Test.cpp, - examples/Reactor/Misc/test_early_timeouts.cpp: - removed unused parameter names argc and argv. - - * tests/DLL_Test.cpp: added ACE_Auto_Basic_Ptr template - instantiation. - -1998-12-09 Irfan Pyarali - - * tests/Collection_Test.cpp: Added new test for ACE collections. - - * ace/Map_Manager.cpp (operator*): - * ace/Containers_T.cpp (operator*): - * ace/SPIPE_Acceptor.cpp (create_new_instance): - - Fixed ACE_ASSERT usage. - - * ace/config-vxworks5.x.h: Added ACE_LACKS_FSYNC. - - * ace/OS.i (fsync): Added ACE_NOTSUP_RETURN (-1). - -Tue Dec 08 21:39:16 1998 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU,ACE-INSTALL.html: - enable DU 4.0 cxx 6.x warnings by default. To disable, if - you're using cxx 5.x, set CXX_VER to CXX_5 either on the - make command line, or in your environment. Thanks to - Gary York for being that last - cxx 6.x user to trip over this :-) - - * include/makeinclude/platform_lynxos.GNU: override - ACE_HAS_GNUG_PRE_2_8 to allow builds of all TAO tests - on LynxOS 3.0.0. Its g++ can handled nested classes, even though - it's in the 2.7 family. Thanks to Patty Hair - for suggesting that we try to build the tests on LynxOS. - -Tue Dec 8 19:50:49 1998 Douglas C. Schmidt - - * ace/Shared_Object.cpp: Changed the various default - implementations of init()/fini()/info() to return 0 rather than - -1 so that users won't have to subclass Service_Object just to - change the return value. Thanks to Eric Newton for motivating - this. - -Tue Dec 8 16:52:57 1998 Ossama Othman - - * ace/OS.{h,i}, ace/README: Added a fsync() method. Define - ACE_LACKS_FSYNC if ::fsync() isn't supported. - -Tue Dec 08 15:03:25 1998 Steve Huston - - * ace/NT_Service.{h cpp i}: Added a number of methods which can be - used to register, remove, and control an NT service. Also, - another macro, ACE_NT_SERVICE_RUN, which simplifies the setting up - and running the most common case, a single service. Huge thanks - to Gonzalo Diethelm for contributing - the bulk of this code! - -Tue Dec 08 11:22:56 1998 Chris Gill - - * ACE version 4.6.6 released. - -Tue Dec 08 10:45:56 1998 Nanbor Wang - - * ace/System_Time.h: Removed redundant ACE_Time_Date definition. - Thanks to Martin Krumpolec for reporting this. - -Mon Dec 07 22:58:53 1998 Irfan Pyarali - - * examples/Reactor/Misc/test_early_timeouts.cpp: On some - platforms, select() returns before the time value specified. - This tests counts the number of times this happens and the max - early timeout. - - * ace/DLL.cpp (open): Added a call to ACE::ldopen() before calling - ACE_OS::dlopen(). The allows us to find the library is - predefined places and also expand the file name to the correct - syntax (prefix and suffix) according to the platform. - - Also, fixed a bug where the flag has not - being consulted on a reopen. - - * ace/ACE.cpp (ldfind): Moved the code that calls - ExpandEnvironmentStringsA() from - ACE_Location_Node::open_handle() to ACE::ldfind(). This code is - more general and therefore belongs in ACE::ldfind(). - - * ace/Parse_Node.cpp and ace/Svc_Conf_y.cpp: Fixed the incorrect - use of ASYS_WIDE_STRING. Remember that the string returned from - ASYS_WIDE_STRING is only valid for that line of code ;) - -Mon Dec 7 19:10:24 EST 1998 James CE Johnson - - * docs/tutorials/ - * docs/tutorials/001/001.dsp - * docs/tutorials/002/002.dsp - * docs/tutorials/003/003.dsp - * docs/tutorials/004/004.dsp - * docs/tutorials/005/005.dsp - * docs/tutorials/006/006.dsp - * docs/tutorials/007/007.dsp - * docs/tutorials/008/008.dsp - * docs/tutorials/008/008-server/008-server.dsp - * docs/tutorials/008/008-direct/008-direct.dsp - * docs/tutorials/008/008-broadcast/008-broadcast.dsp - * docs/tutorials/009/009-directed/009-directed.dsp - * docs/tutorials/009/009-server/009-server.dsp - * docs/tutorials/009/009-broadcast/009-broadcast.dsp - * docs/tutorials/010/010.dsp - * docs/tutorials/011/011.dsp - * docs/tutorials/012/012.dsp - * docs/tutorials/013/013.dsp - * docs/tutorials/014/014.dsp - * docs/tutorials/018/018.dsp - * docs/tutorials/015/015-client/015-client.dsp - * docs/tutorials/015/015-server/015-server.dsp - * docs/tutorials/016/016.dsp - * docs/tutorials/017/017.dsp - * docs/tutorials/tutorials.dsw - Contributed by: - Stefan Ericsson - -Mon Dec 07 14:11:00 1998 Chris Gill - - * ace/README: added entries for ACE_LACKS_IOSTREAMS_TOTALLY - and ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS. Thanks to - Ossama Othman for reminding - me to do this. - -Mon Dec 07 09:27:04 1998 David L. Levine - - * ace/Stats.cpp (std_dev): added comments to not reformat - some code. It compiles with the Diab compiler for pSoS - the way it is. - -Sun Dec 06 23:59:29 1998 Irfan Pyarali - - * config-sunos5.5.h: Added back ACE_HAS_TIMER_SKEW. It is really - required. See me for an example that illustrates this need. - -Sun Dec 06 16:05:00 1998 Chris Gill - - Changes for pSOS port: ACE now compiles for pSOSystem 68k targets using - the Diab D-C++ 4.2a compiler release, and links with all but the - following ACE tests: Conn_Test, Handle_Set_Test, OrdMultiSet_Test, - Priority_Reactor_Test, Process_Strategy_Test, Reactor_Performance_Test, - and TSS_Test. - - * ace/Log_Msg.cpp - ace/Log_Record.{cpp, h} - ace/streams.h - ace/SString.cpp - ace/config-WinCE.h - ace/config-psos-diab.h - tests/test_config.h: Rearranged log print methods so that logging - can still be done on platforms where iostreams are not sufficiently - supported. Added ACE_LACKS_IOSTREAMS_TOTALLY to select this - behavior, and defined it in pSOS Diab config header (also added to - Windows CE config header, to simplify factoring out Win CE specific - logging methods). - - * include/makeinclude/platform_psos_diab.GNU - ace/OS.{cpp, h, i}: Removed Diab supplied library calls so ACE now - links directly to pSOSystem libraries. - - * ace/Parse_Node.cpp - ace/Stats.cpp: Modifications to circumvent bugs in the Diab 4.2a - compiler's handling of conditional operators. - -Sun Dec 06 08:32:36 1998 David L. Levine - - * ace/Containers_T.cpp,Local_Name_Space_T.cpp, - Name_Request_Reply.cpp,Service_Config.cpp,Service_Manager.cpp, - Svc_Conf.y,Svc_Conf_Tokens.h,Svc_Conf_y.cpp, - Time_Request_Reply.cpp,Trace.cpp: - use ACE_NLOGGING instead of ACE_NDEBUG. - -Sat Dec 05 21:45:00 1998 David L. Levine - - * ace/Containers_T.cpp,Local_Name_Space_T.cpp, - Name_Request_Reply.cpp,Service_Config.cpp,Service_Manager.cpp, - Svc_Conf.y,Svc_Conf_Tokens.h,Svc_Conf_y.cpp, - Time_Request_Reply.cpp,Trace.cpp: - added if NDEBUG protection to some local variables and - ACE_UNUSED_ARG to some parameters to avoid compiler warnings - when ACE_DEBUG is disabled. Thanks to Faron Dutton - for reporting this. - - * ace/Makefile (Svc_Conf_Tokens.h): escaped $\I\d$ string so - that it doesn't get expanded in the Makefile itself. - -Sat Dec 5 16:06:27 1998 Darrell Brunsch - - * ace/Local_Name_Space_T.cpp: Protected some of the ACE_DEBUG - statements with a ACE::debug () check. - -Fri Dec 04 13:46:12 1998 David L. Levine - - * ace/Stats.cpp (std_dev): fixed difference calculation so - that it always calculates a non-negative value. - - * performance-tests/Misc/context_switch_time.cpp - (High_Priority_Synchronized_Task::svc): check if nsec is >= - mutex_acquire_release_time, to avoid adding in negative - context_switch_times. - - * ace/config-vxworks5.x.h, - include/makeinclude/platform_vxworks5.x_g++.GNU, - include/makeinclude/platform_vxworks5.x_ghs.GNU: moved -DVXWORKS - from platform_vxworks5.x_* files to config-vxworks5.x.h, to reduce - command-line clutter a bit. - -Fri Dec 4 12:45:04 1998 James CE Johnson - - * docs/tutorials/linify: - * docs/tutorials/combine: - * docs/tutorials/fixMakefile: - Ensure that perms are 755 and that #!/.../perl is not used - -Wed Dec 02 14:21:34 1998 Nanbor Wang - - * ace/OS.i (fstat): This function needs to close down the c handle - opened by _open_osfhandle to avoid resource leaks on Win32. - Thanks to Christian Korn for reporting - this. - -Tue Dec 01 13:48:51 1998 Nanbor Wang - - * ace/config-freebsd-pthread.h: Added ACE_HAS_SIGWAIT. Also added - ifdef section to prevent threaded ACE from compiling on FreeBSD - under 3.0 (excluded.) - -Tue Dec 1 22:22:42 1998 Douglas C. Schmidt - - * ace/Synch.h: Added a comment to clarify the semantics of - ACE_RW_Process_Mutex. Thanks to Stanislav Meduna - for reporting this. - -Tue Dec 01 17:22:00 1998 Kirthika Parameswaran - - * tests/DLL_Test: Added the .dsp and tests.dsw to the - repository. - - * tests/run_tests.bat: Added an entry for DLL_Test. - -Tue Dec 01 13:54:35 1998 David L. Levine - - * ace/OS.h: added ESUCCESS definition (to 0), if not #defined. - -Tue Dec 01 13:48:51 1998 Nanbor Wang - - * ace/config-freebsd-pthread.h: Added ACE_HAS_SIGWAIT. Also added - ifdef section to prevent threaded ACE from compiling on FreeBSD - under 3.0 (excluded.) - - * ace/OS.i (sigwait): FreeBSD 3.0 supports sigwait. Changed the - ifdef condition to support sigwait for 3.0 or above. Thanks to - Bob McWhirter and Russell L. Carter - for helping to track this down. - -Tue Dec 01 12:59:57 1998 James CE Johnson - - * ace/IOStream_T.i (recv,recv_n): set errno to ESUCCESS - because it was never being set to ETIME when the read timed - out. (Before entering the peer_->recv/recv_n, errno was - ENOENT from previous activities and was the same after in - both positive & negative tests until I did the reset.) - (eof): cleaned up a bit. - - I tested against IOStream_Test for both positive and - negative. For the positive test, I changed the sleep() at - line 363 to a much larger value. The client worked fine. - For the negative test, I replaced the spleep() with a - close() & return() pair. The client saw the closure and - exited as expected. - -Tue Dec 1 08:55:48 PST 1998 James Hu - - * ace/Memory_Pool.cpp: Since type key_t might be something - other than int (e.g., a long), some additional code was needed - to support the sscanf. - -Tue Dec 01 10:49:00 1998 Chris Gill - - * tests/Win32clerk.conf - tests/Win32server.conf - tests/Win32tokens.conf: removed explicit path for netsvcs dll, as - this dll is now being moved to ACE_wrappers/bin after it is built - and the explicit path was causing dlopen to fail rather than - searching the path on NT, which caused Time_Service_Test to fail. - -Tue Dec 01 10:07:48 1998 David L. Levine - - * ACE version 4.6.5 released. - -Tue Dec 1 00:07:05 PST 1998 James Hu - - * ace/Containers_T.h: - * ace/Containers_T.i: - Fixed a bug introduced when someone genericized the creation - strategy for ACE_DLList. The removal routing had not been - similarly genericized. Thanks goes to Martin Krumpolec - for spotting the problem. - - -Mon Nov 30 19:10:23 1998 Kirthika Parameswaran - - * examples/DLL/Makefile: - * examples/DLL/Makefile.Today: - * examples/DLL/Makefile.Newsweek: - - Added the above makefiles. Makefile internally uses - Makefile.Today and Makefile.Newsweek to build the libraries - seperately. - -Mon Nov 30 13:54:04 1998 Douglas C. Schmidt - - * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_input): There - was a friggin' bug in this code that is a violation of Reactor - framework design rule #2, i.e., we were returning a non-0 value - from handle_input(), which is a no-no... Thanks to Steve Huston - for reporting this. - -Mon Nov 29 13:16:53 EST 1998 James CE Johnson - - * docs/tutorials/001/logger.h: - * docs/tutorials/001/page04.html: - * docs/tutorials/003/client.cpp: - * docs/tutorials/003/page01.html: - Added a blurb about the additional parameters to the recv(), - recv_n(), send() and send_n() method calls of ACE_SOCK_Stream. - -Sun Nov 29 22:14:32 1998 David L. Levine - - * ace/OS.i,cpp (exit): with ACE_HAS_NON_STATIC_OBJECT_MANAGER, - call ACE_Object_Manager::fini (). Uninlined to avoid circular - include problems with Object_Manager.h. The ACE_Object_Manager - instantiation on main's stack is not destroyed by ::exit (), - so this addition causes the ACE_Object_Manager to be - properly shutdown. Thanks to Jeff Greif - for pointing out that automatic objects are not destroyed - by ::exit (). - - * ace/Object_Manager.h: added Jeff Greif's ACE_OS::exit () - recommendations in comments. - -Sun Nov 29 20:13:15 1998 Kirthika Parameswaran - - * examples/DLL/Today.cpp: - * examples/DLL/Newsweek.cpp: - - Added ACE_BUILD_SVC_DLL and ACE_Svc_Export directives needed for the - extern "C" create_magazine function. - -Sun Nov 29 18:22:52 1998 Nanbor Wang - - * tests/Thread_Pool_Reactor_Test.cpp: Removed the use of - "main_reactor". The "main_reactor" was added to handle incoming - connections because this test was not working correctly without - moving out the acceptor to another reactor. However, I recently - found that the problem was actually due to the deadlocked - notify_handler which I fixed a while back. - - * ace/OS.h: Added forward declarations of ACE_Time_Value's - operator{+,-} so VC 6.0 won't get confused with the - operator{+,-} in namespace std. Thanks to Victor Yu - for reporting this. - -1998-11-29 James CE Johnson - - * docs/tutorials/007/page09.html: - Added warnings about a possible core dump when an event handler - exists in the thread pool's message queue after the handler has - been destroyed. Jeff Donner's work with - Tutorial 007 on Win32 lead to this discovery. - -Sat NOv 28 20:02:08 1998 Kirthika Parameswaran - - * examples/DLL/Today.cpp: - * examples/DLL/Newsweek.cpp: - - Added the #ifdef directive needed to seperate out the - functionality on NT and UNIX platforms. - -Sat NOv 28 20:02:08 1998 Kirthika Parameswaran - - * examples/DLL/Dll.dsw: - * examples/DLL/Test_dll.dsp: - * examples/DLL/Today.dsp: - * examples/DLL/Newsweek.dsp: - - Added to the repository. The test successfully executes on NT. - - * examples/DLL/README: Modified to add information on how to - execute this test example on NT. - -Fri Nov 27 13:32:38 1998 Kirthika Parameswaran - - * examples/DLL/test_dll.cpp (main): Added right arguments to the - ACE_ERROR_RETURN macro. - -Thu Nov 26 21:04:05 1998 Kirthika Parameswaran - - * examples/DLL/Makefile: - * examples/DLL/Today.{h,cpp}: - * examples/DLL/Newsweek.{h,cpp}: - * examples/DLL/Magazine.h: - - Placed the comments at the right place and added an descriptive - header wherever missing in the .h files. - - * examples/DLL/test_dll.cpp (main): Added auto_ptr for the - Magazine class object pointer. - - * examples/DLL/README: Added to the repository. - -Wed Nov 25 02:02:32 1998 Kirthika Parameswaran - - * examples/DLL/Makefile: - * examples/DLL/Today.{h,cpp}: - * examples/DLL/Newsweek.{h,cpp}: - * examples/DLL/Magazine.h: - * examples/DLL/test_dll.cpp: - - Added these files. This test example shows how dynamically linked - library objects can be loaded on demand and their methods accessed - on getting an pointer to these objects. - -Wed Nov 25 22:28:44 1998 Carlos O'Ryan - - * ace/INET_Addr.cpp: - Reverted the behavior to version 4.35, we don't use the first - alias as the hostname, but the value returned in the h_name - field. - This change was to support TAO in our local site, but it caused - many problems for other configurations of /etc/hosts and DNS. We - found another workaround for our local site which makes more - sense to the rest of the world. - -Wed Nov 25 20:34:12 1998 Kirthika Parameswaran - - * tests/DLL_Test.cpp (main): Removed ACE_OS::strcat which was - concatenating a string literal with a defined string. - -Wed Nov 25 12:01:20 1998 Ossama Othman - - * apps/gperf/gperf.texi: - * apps/gperf/gperf.info: - * apps/gperf/texinfo.tex: - * apps/gperf/version.texi: - - updated gperf.texi to work with recent versions of makeinfo (e.g. 1.68, - available in GNU texinfo-3.12). Regenerated gperf.info with latest - makeinfo (1.68). Added texinfo.tex to make available certain TeX - macros for texinfo to TeX converters. Added version.texi to centralize - gperf update dates and versions (gets included by gperf.texi). - -Wed Nov 25 12:01:20 1998 David L. Levine - - * performance-tests/Misc/context_switch_time.cpp (main): fixed - printouts by performing floating point division, instead of - converted integer division to double. Added checks of - activate () return values. - - * ace/OS.cpp (sched_params,lwp_getparams,lwpsetparams): set - LWP priority on Suns, even if only using the ACE_HAS_PTHREADS - interface. Though, we still don't get preemption if only using - that interface. performance-tests/Misc/preempt.cpp demonstrates - that. - - * ace/config-osf1-4.0.h: removed ACE_LACKS_THREAD_PROCESS_SCOPING. - DU 4.0 seems to have process scoping, though I think only - the superuser can use it. - -Wed Nov 25 10:48:42 1998 Douglas C. Schmidt - - * ace/Task.cpp: Fixed a bug whereby we weren't inheriting the - group id correctly when joining a group of existing threads. - Thanks to Valery Arkhangorodsky for - pointing this out. - -Tue Nov 24 03:50:09 1998 Kirthika Parameswaran - - * tests/DLL_Test.cpp: Renamed DLL_Wrapper_Test.cpp to - DLL_Test.cpp. Also, added ACE_OBJ_SUFFIX which takes care of the - object code convention on NT and UNIX platforms. Changed the - messages in ACE_ERROR to come from ACE_DLL::error(). - This is a running version tested using CC compiler too. - -Tue Nov 24 17:45:26 1998 Steve Huston - - * netsvcs/clients/Naming/Dump_Restore/Makefile: Added a LIBS += - $(ACELIB) to help this build on AIX. Thanks to Jon Lindgren - for reporting this problem. - - * README: Added Jon Lindgren to the contributor's list. Welcome, Jon! - -Tue Nov 24 09:34:58 1998 David L. Levine - - * include/makeinclude/platform_chorus.GNU: added support for - exceptions=0/1 make option. Thanks to Wei Chiang for - requesting this. - - * include/makeinclude/platform_chorus_ghs.GNU: removed - trailing / from MVME_DIR definition. - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: added - optimize=1, to enable optimization by default. - - * performance-tests/Misc/context_switch_time.cpp (main): - don't print suspend-resume results if the suspend-resume - test isn't run (because thr_suspend isn't supported). - Process command line options before calulating hi-res timer - scale factor. - - * ace/OS.h: replaced ENOTSUP with EDEADLK in a comment, - to fix a copy-and-paste error. - - * ace/Stats.* (mean): removed caching. It didn't account for - the fact that it could be called with different scale - factors. (std_dev): fixed sum_of_squares calculation to - always use 64-bit arithmetic. (print_summary): if the - std dev calculation overflows, retry with smaller scale - factor, until 0 is reached. - - * tests/Conn_Test.cpp: replaced #include of ace/Auto_Ptr.h, - because ACE_Auto_Basic_Array_Ptr is used. - -Mon Nov 24 03:30:36 1998 Kirthika Parameswaran - - * tests/DLL_Wrapper_Test.cpp: Added a test example for the DLL - wrapper class. - - * tests/Makefile: Added an entry for DLL_Wrapper_Test example. - -Mon Nov 23 23:49:36 1998 Kirthika Parameswaran - - * ace/DLL.h: Made the default value of the close_on_destruction - equal to 1. - - * ace/DLL.cpp (~ACE_DLL): Checked whether the member variable, - close_on_destruction_ is non-zero instead of comparing it to 1. - -Mon Nov 23 21:14:22 1998 Kirthika Parameswaran - - * ace/DLL.h (ACE_DLL): Set the default of close_on_destruction to - 1 instead of 0. - - * ace/DLL.cpp (~ACE_DLL): In the close operation, made a check for - whether the close_on_destruction_ flag was equal to 1 instead of - 0. - - * ace/DLL.cpp (get_handle): Made the close_on_destruction_ flag - equal to 0 when it gets orphaned as now the new owner has to - explicitly close the library. - -Mon Nov 23 20:29:52 1998 Douglas C. Schmidt - - * ace/DLL: Cleaned up the comments and also fixed an unnecessary - check to see if dll_name == 0. - -Mon Nov 23 10:20:22 1998 Kirthika Parameswaran - - * ace/DLL.h: Added a comment which specified that by default the - library would be closed before the ACE_DLL object gets - destroyed. - - * ace/DLL.cpp (get_handle): Changed the value for the member - variable, close_on_destruction_ to 1 on orphaning the handle - and giving it to the new owner. - -Mon Nov 23 17:14:40 1998 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_proactor.cpp (open): It is even - more neat to do this for faking the result. - // for Accept would have already moved the - // forward. Update it to the beginning position. - duplicate.wr_ptr (duplicate.wr_ptr () - bytes_transferred); - -Mon Nov 23 17:16:46 1998 Irfan Pyarali - - * ace/OS.h: Set the value of ACE_SHLIB_INVALID_HANDLE to 0 for HP. - Thanks to Steve Huston for providing this - information. - -Mon Nov 23 16:16:26 1998 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_proactor.cpp: Updated the code to - show that adjusting wr_ptr () to the place of rd_ptr () is the - better way to fake results properly. Thanks to "James A. Risinger" - for reporting this problem. - -Mon Nov 23 12:58:47 1998 Douglas C. Schmidt - - * examples/ASX/Message_Queue, - tests: - Replaced the improper (though technically correct) use of the - rd_ptr() with wr_ptr(). Thanks to Susan Liebeskind - for reporting this. - -Mon Nov 23 10:47:38 1998 David L. Levine - - * bin/generate_man_pages: added this script, which generates - the ACE man and html pages. - - * Makefile (release): added call to bin/generate_man_pages. - -Sun Nov 22 22:58:39 1998 Douglas C. Schmidt - - * ace/SPIPE_Addr.h: Replaced the use of an anonymous struct so - that class2man will be happy. Thanks to David Levine for - reporting this. - -Sun Nov 22 22:07:04 1998 David L. Levine - - * ace/Functor*: removed trailing // EOF because class2man choked - on it. - -Sun Nov 22 14:36:26 1998 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_proactor.cpp (open): Updated the - test to show the correct way to 'fake' call. - -Sun Nov 22 13:57:28 1998 Douglas C. Schmidt - - * ace/Makefile: Added Env_Value_T to the TEMPLATE_FILES macro in - the Makefile. Thanks to Ossama for reporting this. - -Sat Nov 21 14:32:53 1998 Douglas C. Schmidt - - * ace/DLL: Cleaned up the DLL logic to handle "close on - destruction" properly. - -Sat Nov 21 08:34:44 1998 David L. Levine - - * ace/OS.h: added ACE_LACKS_IP_ADD_MEMBERSHIP, for internal - use only. If IP_ADD_MEMBERSHIP isn't defined, ACE defines - ACE_LACKS_IP_ADD_MEMBERSHIP for subsequent use in - determining whether to define ip_mreq. - - * bin/html-windex: updated to match Doug's ~/bin version. - -Fri Nov 20 00:58:35 1998 Kirthika Parameswaran - - * ace/DLL.h (ACE_DLL): Added a new constructor which allows auto - opening of the dynamically linked library. - - * ace/DLL.h (get_handle): Added a method which returns teh handle - to the user. - - * ace/DLL.cpp (ACE_DLL): Added the auto-open feature taking care - of more than one open calls. - - * ace/DLL.cpp (get_handle): The orphan flag decides whether the - handle is orphaned or given to the user temporarily. - - * ace/DLL.cpp (open): Added a check so that a already existing - handle is closed before the next open is done. - -Fri Nov 20 23:40:12 1998 James CE Johnson - - * docs/tutorials/00[567]/client_handler.cpp : - * docs/tutorials/00[56]/page0[45].html - * docs/tutorials/007/page0[56].html - Rework the interaction of handle_input(), handle_close() and - close(). I had this all wrong by making handle_close() invoke - remove_handler() when it was unnecessary. - -Fri Nov 20 22:12:03 1998 Kirthika Parameswaran - - * ace/Makefile: Added an entry for DLL.{h,cpp}. - -Fri Nov 20 15:49:04 1998 Irfan Pyarali - - * ace/OS.h: Added ACE_SHLIB_INVALID_HANDLE which is used to - indicate a invalid shared library handle. - - * examples/Reactor/WFMO_Reactor/test_handle_close.cpp: 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). - - * ace/WFMO_Reactor.cpp (remove_handler_i, - remove_suspended_handler_i, and remove_to_be_added_handler_i): - There was a bug in WFMO_Reactor where handle_close() was not - called when it is not a complete removal. Added a call to - handle_close() for all the masks that were removed. Note that - partial removals do not change the state of the internal tables - of the reactor. - - * ace/OS.i (recvfrom): There is a bug in the Win32 implementation - of this function. It reports an error (with errno=WSAEMSGSIZE), - even MSG_PEEK is specified, when the message was too large to - fit into the specified buffer and was truncated. So we fixed it - by returning the length of the recv request when - errno=WSAEMSGSIZE and the MSG_PEEK flag was specified. - -Fri Nov 20 11:15:40 1998 David L. Levine - - * ace/config-sunos5.5.h: changed comment to use - -D_POSIX_PTHREAD_SEMANTICS to specify POSIX threads only. - Just commenting out ACE_HAS_STHREADS in insufficient. - See the Intro (3) man page for information on - -D_POSIX_PTHREAD_SEMANTICS; it's the Sun-recommended - way to specify use of POSIX threads. Thanks to - Rich Christy for pointing out that - removal of ACE_HAS_STHREADS doesn't work. - - * ACE-INSTALL.html: added notes on thread flavors on Solaris. - - * include/makeinclude/platform_sunos5_g++.GNU: added support - for threads=0. - - * ace/OS.cpp (thr_create): added static cast of PTHREAD_STACK_MIN - to size_t, to avoid signed/unsigned comparison on - g++ 2.7.2.3/Solaris86 2.6. - -Thu Nov 19 23:04:37 1998 Irfan Pyarali - - * ace/Functor.h (ACE_Command_Base): Added missing ACE_Export. - -Thu Nov 19 18:01:00 1998 Kirthika Parameswaran - - * ace/DLL.cpp (ACE_DLL): Made base-member initialisation change - to member variable close_mode_. - -Thu Nov 19 10:28:11 1998 David L. Levine - - * performance-tests/Misc/context_switch_time.cpp: fixed 64-to-32 - bit casts to work with unsigned 64 bit ACE_hrtime_t on NT. - -Wed Nov 18 20:56:38 1998 Kirthika Parameswaran - - * ace/DLL.{cpp,h} (ACE_DLL): Added the close-on-destruction - feature in the constructor of the ACE_DLL class. - -Thu Nov 19 00:18:26 1998 Irfan Pyarali - - * ace/OS.i (strnstr): Added a check to see if the substring is - longer than the string being searched. Fixed both the char and - wchar_t versions in OS.i and the ACE_USHORT16 version in - SString.cpp. Thanks to Knut Johannessen for - pointing out the bug and providing a fix. - - * ace/SString.i (find): The argument to strnstr() should be the - length of instead of len_ - pos>. - - * tests/SString_Test.cpp (main): Added tests to make sure that - find() and strstr() work even when the substring is longer that - the original string. - - * ace/Timeprobe_T.h (ACE_Timeprobe): Added accessors to the class - so that the user can get to the internals. This allows the - users to format the output of collecting the timeprobes - according to their liking. - -Wed Nov 18 15:51:42 1998 David L. Levine - - * ace/Basic_Types.h (ACE_UINT64_DBLCAST_ADAPTER): on other - than Win32 and without ACE_LACKS_LONGLONG_T, wrapped the - "n" macro definition with parenthesis, to avoid insidious - errors in equations due to removing the grouping. g++ 2.7.2.3 - noticed this on the latest context_switch_time.cpp. - - * ace/Svc_Handler.cpp (cleanup_hint): fixed ACE_TRACE string. - - * *.cpp: changed include protection from #if !defined to ifndef. - Added #pragma once, if possible, i.e., after #include of - an ace/ header. It can only be done after ace/config.h - is included, because some platforms don't allow #pragma once. - -Wed Nov 18 15:54:09 EST 1998 James CE Johnson - - * docs/tutorials/007/client_handler.cpp - * docs/tutorials/007/page06.html - - Jeff Donner (jdonner@schedsys.com) points out that Susan Liebskind's - fix to Tutorial 6 should also be applied to this one. - - The fix is: - Don't call baseclass close() from Client_handler::close(). Doing - so will result in double-delete of the handler object. - -Wed Nov 18 00:25:08 1998 Kirthika Parameswaran - - * ace/DLL.{h,cpp} (ACE_DLL): - Wrapper for dynamically linked library operations. - -Tue Nov 17 11:15:00 1998 Chris Gill - - * tests/version_tests/RB_Tree_Test.dsp - tests/version_tests/version_tests.dsw : created RB_Tree_Test project - for NT version tests and added it to version tests workspace. - -Tue Nov 17 10:15:10 1998 Nanbor Wang - - * ace/Map_Manager.cpp (resize_i): Made sure the new elements in - resize_i get constructed properly so we can use more complex - classes with it. Thanks to Knut Johannessen - for providing the patch. Also changed to use copy constructor - to move data across rather than construct/assign pair. - -Tue Nov 17 09:37:32 1998 David L. Levine - - * ace/config-linux-common.h: removed - ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR because it caused compilation - failure with egcs 1.0.2. - - * ace/config-g++-common.h: added ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR, - with egcs >= 1.1 only. Thanks to James Johnson for helping - to sort this out. - - * ace/config-osf1-4.0.h: moved ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR - from common area to DEC CXX area, because config-g++-common.h now - handles g++. - - * ace/IOStream_T.i (eof): fixed return value calculation - logic. Thanks to Arturo and James Johnson for providing - and verifying the fix. - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - added -DVXWORKS to CFLAGS, because GHS 1.8.9 needs it. - (GHS 1.8.8 had a built-in processor define for it. Adding - -DVXWORKS doesn't seem to bother 1.8.8.) Thanks to Steve - Kay for reporting this. - - * ace/OS.h: 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). This allows - compilation to succeed on GHS 1.8.9/VxWorks. Thanks to - Steve Kay for reporting it. - -Tue Nov 17 09:12:00 1998 Chris Gill - - * ace/SString.{h, i}: added < , > operators to string classes - - * apps/JAWS/PROTOTYPE/HTTPU/http_headers.cpp - tests/RB_Tree_Test.cpp: added missing template instantiations - - * tests/Makefile - tests/run_tests.sh : added RB_Tree test to UNIX makefile, test script - -Mon Nov 16 17:55:00 1998 Chris Gill - - * ace/Functor_T.{h, i} - ace/RB_Tree.{cpp, h, i} : added less-than comparison functor - (aka function object aka GOF Command Pattern) to allow ACE_RB_Tree - to be used with key types that do not support a < operator. - Thanks to Mark De Jong for reporting the less-than - problem and suggesting part of the solution. Also cleaned up class - naming and comments to conform to ACE coding standards, fixed an - access violation that occurred when deleting items from a tree. - - * tests/RB_Tree_Test.{cpp, dsp} - tests/run_tests.bat - tests.dsw: Added a test to verify correct tree - behavior under insertion and deletion for different key and item - types and insertion orders. - - * apps/JAWS/PROTOTYPE/HTTPU/http_headers.{cpp, h}: Changed type names - for ACE_RB_Tree and associated classes. - -Sun Nov 15 16:34:11 1998 David L. Levine - - * ace/config-osf1-4.0.h,config-linux-common.h: added - ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR #define. Thanks to - James Johnson for reporting that it is necessary. - - * ace/config-kcc-common.h: removed commented-out - ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR #define. - -Sun Nov 15 12:40:35 1998 James CE Johnson - - * docs/tutorials/018/* - * docs/tutorials/online-tutorials.html - A new tutorial on ACE_Token. - -Sun Nov 15 12:10:39 1998 James CE Johnson - - * docs/tutorials/013/* - - A few more tweeks now that the sun is up. Mostly simple - documentation changes but a couple of cleanups on the code as well. - -Sat Nov 14 23:15:58 EST 1998 James CE Johnson - - * docs/tutorials/013/message_queue.cpp - docs/tutorials/013/block.cpp - docs/tutorials/013/block.h - docs/tutorials/013/combine.shar - docs/tutorials/013/*.html - - Something changed between 4.5.x and 4.6 with the calling - order for ACE_Lock_Adapter<>::release() and ::destroy(). - - Specifically: In the older release, the data block's - lock was being held across its destruction. That required - some odd things to prevent the lock's deletion until it - was released. - - In the new version, it appears that release() is called - on the lock before the data block's destructor is called. - Data_Block::Lock::destroy() can now simply 'delete this' - The funky destroy_ flag is no longer necessary. - - Thanks to Bob McWhirter for causing me - to look back on this and get it fixed. - - I've also taken this opportunity to convert the tutorial - to the new style colorized HTML. - -Sat Nov 14 22:01:52 1998 David L. Levine - - * bin/make_release (diff): fixed logic that determines - when to use ../diffs/ instead of diffs/. Thanks to - Doug for reporting this. - -Sat Nov 14 14:21:49 1998 Douglas C. Schmidt - - * ACE version 4.6.4 released. - -Fri Nov 13 12:03:18 1998 Carlos O'Ryan - - * ace/config-irix6.x-sgic++.h: - * ace/config-irix6.x-sgic++-nothreads.h: - Under some versions of IRIX 6.X the readdir_r() prototype does - not show up unless threads support (actually POSIX1c support) is - enabled. I've change the config file to only use readdir_r() if - threads are enabled. Thanks to Bob Olson for - reporting this problem. - -Fri Nov 13 08:55:18 1998 David L. Levine - - * tests/Pipe_Test,Process_Mutex_Test.cpp: wrapped some variables - and functions with #ifndef ACE_LACKS_FORK, to avoid warnings - on g++/VxWorks. - -Thu Nov 12 09:07:28 1998 David L. Levine - - * bin/make_release: use ../diffs if building ace+tao kit, so - we no longer need a ../diffs symlink in TAO directory. Thanks - to Hans Rohnert for motivating this. - - * ace/README: removed ACE_LACKS_STREAM_MODULES. Thanks to - Ossama for reporting that it's no longer used. - -Wed Nov 11 23:11:15 1998 Darrell Brunsch - - * bin/ACEutils.pm: Updated to include $EXEPREFIX, which is used - in front of executables in the run_test.pl's. - -Wed Nov 11 01:08:32 1998 Nanbor Wang - - * ACE-INSTALL.html: Added a link to Ossama's ACE Configuration - Project. - -Tue Nov 10 22:29:00 1998 Douglas C. Schmidt - - * ACE version 4.6.3 released. - -Tue Nov 10 22:24:59 1998 Douglas C. Schmidt - - * docs/tutorials: Integrated Umar's code examples from - the ACE programmers manual. - -Tue Nov 10 21:53:01 1998 David L. Levine - - * ace/Process.cpp: added const to loop index, in CHORUS code. - -Tue Nov 10 19:27:32 1998 Darrell Brunsch - - * ace/OS.[i,cpp]: - Added checks for ACE_HAS_WINNT4 != 0 when checking for - ACE_HAS_WINNT4 like we do elsewhere. Thanks to Valery - Arkhangorodsky for pointing this out. - -Tue Nov 10 14:56:38 EST 1998 James CE Johnson - - * docs/tutorials/index.html - Including #17 now - - * docs/tutorials/017/*.html - docs/tutorials/017/combine.shar - Completed! Commented and converted into standared Tutorial format. - -Tue Nov 10 10:09:06 1998 David L. Levine - - * tests/Env_Value_Test.cpp (main): replaced hard-coded "/" with - ACE_DIRECTORY_SEPARATOR_STR. - - * ace/config-vxworks5.x.h: removed ACE_HAS_VERBOSE_NOTSUP #define. - Thanks to Margherita Vittone Wiersma and - Ramiro Penataro Blanco for complaining - about it. - -Mon Nov 9 23:27:59 1998 Douglas C. Schmidt - - * examples/ASX/Message_Queue/buffer_stream.cpp (main): Fixed an - off-by-one bug. Thanks to Rainer Blome - for reporting this. - -Mon Nov 09 21:31:56 1998 David L. Levine - - * tests/Env_Value_Test.cpp (main): prepended "./" to name of - file to spawn. With the last round of changes to - ace/Process.cpp, that's necessary if "." isn't in the user's - PATH. That's because we're now using only execvp, and no - longer using execve. - - * tests/Atomic_Op_Test.cpp,Barrier_Test.cpp,Buffer_Stream_Test.cpp, - Future_Test.cpp,IOStream_Test.cpp,MT_Reactor_Timer_Test.cpp, - Map_Manager_Test.cpp,Message_Block_Test.cpp, - Message_Queue_Notifications_Test.cpp,Notify_Performance_Test.cpp, - Pipe_Test.cpp,Priority_Buffer_Test.cpp,Priority_Task_Test.cpp, - Process_Mutex_Test.cpp,Reactor_Exceptions_Test.cpp, - Reactor_Notify_Test.cpp,Reactor_Performance_Test.cpp, - Reactors_Test.cpp,Reader_Writer_Test.cpp,SPIPE_Test.cpp, - SV_Shared_Memory_Test.cpp,Semaphore_Test.cpp,TSS_Test.cpp, - Task_Test.cpp,Thread_Manager_Test.cpp,Thread_Mutex_Test.cpp, - Thread_Pool_Reactor_Test.cpp,Thread_Pool_Test.cpp, - Tokens_Test.cpp,UPIPE_SAP_Test.cpp,Upgradable_RW_Test.cpp, - XtReactor_Test.cpp: - changed Log_Priority of "not supported" messages to LM_INFO. - Hopefully, it will help avoid confusion, especially among - new ACE users. Thanks to Gonzo for suggesting this. - - * tests/run_tests.sh: added ACE version number printouts. - - * BUG-REPORT-FORM: added phase (compilation/linking/execution/other), - and ACE+TAO/application/both. - -Mon Nov 9 02:52:11 1998 Douglas C. Schmidt - - * ace/Signal.cpp: handle_close() wasn't being called when - handle_signal() returns -1. It is now... Thanks to Vicentini - Emanuele for reporting this. - - * ace/Event_Handler.h (ACE_Event_Handler): Added a SIGNAL_MASK so - that we can pass this to handle_close() when handle_signal() - returns -1. - - * README: Fixed a typo where ACE-install.html was misspelled as - ACE-Install. Thanks to Michael Thomas - for reporting this. - -Sun Nov 08 22:00:22 1998 David L. Levine - - * ace/Message_Block.h: changed ACE_Message_Type to int, to - avoid overload ambiguity when it's unsigned. - -Sun Nov 8 10:42:38 1998 Douglas C. Schmidt - - * ace/Message_Block.h: Changed the ACE_Message_Type from being an - enum to being an ACE_UINT32 so that it's easier for users to add - their own message types to an ACE_Message_Queue. Thanks to - Martin Krumpolec for this suggestion and to - David Levine for catching that it should be an ACE_UINT32. - -Fri Nov 6 23:08:16 1998 Douglas C. Schmidt - - * ace/Process.cpp (spawn): Set result correctly when execvp() is - called. Also, make sure to check for putenv() failing. Thanks - to David Levine for pointing this out. - - * tests/Env_Value_Test.cpp: Reformatted the test a bit. - -Fri Nov 06 22:41:21 1998 David L. Levine - - * ace/Process.cpp (spawn): initialized local "result" to 0 - to avoid egcs warning about possible unitialized use. Added - const to loop index to avoid egcs warning about discarding - const. - - * ace/OS.h,Basic_Types.h: moved ACE_UINT64_FORMAT_SPECIFIER from - OS.h to Basic_Types.h, because other 64-bit int support is - there. Changed default ACE_UINT64_FORMAT_SPECIFIER to - "%llu", because that's what Solaris 2.x uses. - - * ace/config-win32-common.h,ace/config-linux-common.h: added - ACE_UINT64_FORMAT_SPECIFIER overrides. - - * ace/Log_Msg.cpp (log): added ACE_U_LongLong support. - -Fri Nov 6 13:29:11 1998 Douglas C. Schmidt - - * ace/OS.h (ACE_UINT64_FORMAT_SPECIFIER): Changed - #define ACE_UINT64_FORMAT_SPECIFIER "%I64d" - - to: - - #define ACE_UINT64_FORMAT_SPECIFIER "%I64u" - - to handle the signed/unsigned stuff correctly. Thanks Zoran! - - * ace/Process.cpp (spawn): Replaced the use of execve() with - execvp() by copying the environment variables manually first. - Thanks to Avi Nash for this fix. - - * ace/Log_Msg.cpp (log): Added support for a `%Q' format specifier - to the log() method. This prints out quad words, i.e., - ACE_UINT64's. Thanks to Zoran Ivanovic for - contributing this. - - * Updated the "site map" for ACE so that it doesn't use absolute - links. Thanks to Rainer Blome for - contributing this. - - * ace/Process.h: Clarified the behavior of ACE_Process and - ACE_Process_Options on UNIX because of the use of execve(), - which doesn't search the path. Thanks to Avi Nash for reporting - this. - -Fri Nov 06 15:01:20 1998 Rainer Blome - - * tests/run_tests.sh: augmented to make, run, and discard - each test for which it doesn't find an executable. - - Thus, if you first say make to build the executables, all tests - will just run (or not ;-), nothing is changed. - - If you start run_tests.sh without having built the executables, - it will make, run and discard the tests one by one instead. - Any compiler output goes to log/compilation.log. - -Fri Nov 06 12:58:24 1998 Nanbor Wang - - * ace/Thread_Manager.cpp: Removed several superfluous parens so - the code looks clearer and less error-prone. - -1998-11-06 James CE Johnson - - * docs/tutorials/013/block.cpp - * docs/tutorials/013/page05.html - * docs/tutorials/015/Compressor.cpp - * docs/tutorials/015/Crypt.cpp - * docs/tutorials/015/Recv.cpp - * docs/tutorials/015/Xmit.cpp - * docs/tutorials/015/*.html - Susan Liebeskind (susan.liebeskind@gtri.gatech.edu) discovered - that you can't use the 'inherited' typedef to initialize a - baseclass if you use the AIX C++ compiler. - -Fri Nov 06 08:57:49 1998 David L. Levine - - * tests/Mem_Map_Test.cpp (reverse_file): put the volatile - qualifier back in. LynxOS 3.0.0/PowerPC needs it with -O2 - and without ACE_HAS_INLINE. - - * VERSION: added reference to BUG-REPORT-FORM. Thanks to - Peter Nordlund for providing the new - text. - - * ace/SOCK_Dgram_Mcast.cpp (unsubscribe): fixed ACE_TRACE - string. - - * ACE-INSTALL.html: added note on possibly having to change - -G to -shared in platform_macro.GNU's SOFLAGS with GNU linker. - Thanks to Andy Gokhale and James Megquier for - reporting this. If anyone knows of an automagic fix, that would - be appreciated. - - * ACE-INSTALL.html: added note on how to enable IP multicast on - LynxOS. - -Thu Nov 5 23:10:46 1998 Nanbor Wang - - * ace/Thread_Manager.cpp (wait_task): Fixed a wrong parenthesis - pair. Thanks to Bob McWhirter for figuring - this out. - -Thu Nov 5 21:41:26 1998 James CE Johnson - - * docs/tutorials/017 - Began the ACE_Barrier tutorial. So far, it's just code but I'll - add the usual heavy comments & commentary in the next few days or - so. I'll update the docs/tutorials/index.html after that. - -Thu Nov 5 14:42:59 1998 Douglas C. Schmidt - - * ACE-INSTALL.html: Cleaned up a typo in the ACE-INSTALL.html - file. Thanks to James Megquier for reporting - this. - - * ace/config-sunos5.5.h: Cleaned up the comments a bit to make it - more clear how to enable/disable threads. Thanks to Russ - Noseworthy for reporting this. - - * ace/Stream.h: Clarified some subtleties with subclassing from - ACE_Stream. Thanks to Stephen Coy for reminding me of this. - - * include/makeinclude: Updated the platform_linux_kcc.GNU file. - Thanks to Joseph Weihs for reporting - this. - - * ACE.FAQ.html: Pointed out that ACE is Y2K compliant. Thanks to - Fredrik Lindahl for suggesting this. - -Thu Nov 05 13:23:29 1998 David L. Levine - - * include/makeinclude/platform_lynxos.GNU: default VERSION - to 3.0.0. We no longer build/test for LynxOS 2.5.0. Added - usage comments. - - * ACE-INSTALL.html: for LynxOS, added link to platform_lynxos.GNU - file, for usage information. Replaced some absolute paths in - URLs with relative paths. - -Wed Nov 4 23:28:55 1998 Douglas C. Schmidt - - * ace/Stream.h: Made all the methods of ACE_Stream virtual to - enable subclasses. Thanks to Bob McWhirter's for this - suggestion. - -Tue Nov 3 16:06:23 1998 Douglas C. Schmidt - - * examples/Logger/simple-server: Fixed the server so that it shuts - down cleanly when ^C is given. Thanks to Avi Nash - for reporting this. - -Tue Nov 03 13:17:49 1998 Nanbor Wang - - * ace/Thread_Manager.{h,i,cpp} (thread_desc_self): Changed this - method to an inline function. Removed outdated comments and - instead of searching thru the list when the current thread's - descriptor is not found in TSS cache, place an assertion there - for this should never happen. Thanks to Terry Rosenbaum - for motivating the change. - -Mon Nov 2 22:54:08 1998 Darrell Brunsch - - * ace/config-win32.h: - * ace/config-win32-common.h: - Only define ACE_LACKS_RECVMSG/SENDMSG for non-WinSock2 systems. - Before, it was being defined for all non-NT configurations. - Thanks to Irfan for suggesting this change. - -Mon Nov 2 18:18:04 1998 Douglas C. Schmidt - - * examples/Reactor/Dgram/CODgram.cpp, - examples/Reactor/Dgram/Dgram.cpp: - Fixed these programs so that they will work across - processes/machines, as well as within the same process. Thanks - to Larry for reporting this. - - * Added a "site map" for ACE. Thanks to Rainer Blome - for contributing this. - -Mon Nov 2 18:13:29 EST 1998 James CE Johnson - - * docs/ACE-FMM.html - Updated from Bob's latest. - -Mon Nov 02 11:22:30 1998 Nanbor Wang - - * tests/Thread_Pool_Reactor_Test.{h,cpp}: Renamed Acceptor_Handler to - Request_Handler to better reflect what the class actually does. - - * docs/ACE-categories.html: Fixed erroneous html tags. Thanks to - Rainer Blome for reporting this. - -Mon Nov 02 00:26:59 1998 Irfan Pyarali - - * ace: Since connectors really don't have any state, they don't - need to inherit from the SAP classes. Therefore, modified the - following to be simpler: - - TLI_Connector - DEV_Connector - SPIPE_Connector - UPIPE_Connector - -Sun Nov 01 21:18:24 1998 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (upcall): Before handle_input is called - because of FD_CLOSE, we check the return value of handle_input - because of FD_READ. If the user had returned -1, we won't call - handle_input again. Thanks to Gonzalo Diethelm - for suggesting this change. - - * examples/Reactor/WFMO_Reactor/test_network_events.cpp - (handle_input): Changed this method to keep reading from the - socket until EWOULDBLOCK occurs. - -Sun Nov 1 17:32:50 1998 Douglas C. Schmidt - - * tests/Hash_Map_Manager_Test.cpp (run_test): Oops, we need to - account for compilers that lack template specialization! Thanks - to David Levine for reporting this. - -Sun Nov 01 17:24:56 1998 David L. Levine - - * ace/config-win32-borland.h,config-win32-common.h,README: - removed ACE_LACKS_STL_DEFAULT_TEMPLATE_PARAMETER because - it's no longer used. Thanks to Ossama for reporting this. - -Sun Nov 01 08:54:08 1998 Douglas C. Schmidt - - * ACE version 4.6.2 released. - -Sat Oct 31 18:12:36 1998 Douglas C. Schmidt - - * tests/Hash_Map_Manager_Test.cpp (run_test): updated the test to - validate that the trybind() operation works correctly. Thanks - to Bill Fulton for this - fix. - - * ace/Hash_Map_Manager.cpp: trybind() was doing the "Wrong - Thing"[TM] by overwritting the INT_ID even if the entry was - already in the map! It's fixed now... Thanks to Bill Fulton - for reporting this. - -Sat Oct 31 17:15:42 1998 Douglas C. Schmidt - - * ACE version 4.6.1 released. - -1998-10-31 Nagarajan Surendran - - * ace/Select_Reactor_T.cpp (dispatch): Added signal_occurred at - the right return to indicate that a handle_signal () has been - dispatched. - -Fri Oct 30 20:31:27 1998 Darrell Brunsch - - * tests/Semaphore_Test.cpp: Cleaned up the #if's to make it easier - to understand, and fixed a related problem. Thanks to - Ossama for finding this. - -Fri Oct 30 15:47:39 1998 Douglas C. Schmidt - - * ace/Select_Reactor_T.cpp (dispatch): Make sure to include a - count of 1 if the Reactor dispatched a handle_signal() method. - This ensures we don't return 0 from handle_events() in cases - where we didn't timeout... Thanks to Naga for chasing this - down! - -Fri Oct 30 11:53:16 1998 David L. Levine - - * ace/config-sunos5.6.h: removed ACE_HAS_POSIX_SEM #define because - it caused a seg fault in Reactor_Notify_Test on - g++ 2.7.2.3/Solaris86 (with -D_POSIX_C_SOURCE=199506L - -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__). The seg fault is - at the end of the test: - - #0 0xdfd5a809 in realfree () - #1 0xdfd5ad16 in cleanfree () - #2 0xdfd5a43a in _malloc_unlocked () - #3 0xdfd5a2e9 in malloc () - #4 0xdfd61a25 in _strdup () - #5 0xdfeffcd5 in ACE_Log_Msg::log (this=0x8052ec0, - format_str=0x804f0af "(%P|%t) Ending %s test at %D\n", - log_priority=, - argp=0x80476ac "\nð\004\bÔÀÿß\177\023\004\bÔv\004\b§¹\004\b\001") - at /export/home/conga/levine/ACE_wrappers/ace/OS.i:1399 - #6 0xdfeffbfa in ACE_Log_Msg::log (this=0x8052ec0, - log_priority=, - format_str=0x804f0ac "d\n") at Log_Msg.cpp:601 - #7 0x804c935 in main () at Reactor_Notify_Test.cpp:297 - - It's hard to imagine how ACE_HAS_POSIX_SEM could cause that. - But, it's perfectly repeatable. And, we can live without - ACE_HAS_POSIX_SEM. - - * tests/run_tests.sh: really commented out Thread_Pool_Reactor_Test. - It _wasn't_ commented out in the 4.6 release. - - * tests/Mem_Map_Test.cpp (reverse_file): removed volatile - qualifier because it no longer seems to be necessary for LynxOS - 3.0.0/PowerPC. - -Fri Oct 30 09:23:55 1998 Douglas C. Schmidt - - * ace/SString.h: Cleaned up the ACE_SString comments to be more - helpful. Thanks to Ivan Murphy for - motivating this. - -Thu Oct 29 22:19:19 1998 James CE Johnson - - * docs/ACE-FMM.html: - Updated from Bob's latest version. Thanks Bob! - -Thu Oct 29 21:13:41 1998 James CE Johnson - - * docs/tutorials/016/Condition_i.cpp: - Fixed messed-up the signature on - Condition::operator Condition::value_t(void) - -Thu Oct 29 18:51:19 1998 Steve Huston - - * ace/ACE.cpp: Added "|| defined (_AIX)" to decision to do - template instantiations at end of file. Thanks to Ian - Wright for this fix. - - * ace/config-aix-4.1.x.h: Added ability to use g++ in addition to xlC. - Thanks again to Ian Wright for this addition. - - * include/makeinclude/platform_aix_g++.GNU: New platform_macros file - for building on AIX with g++. And, once again, thanks to Ian Wright - for this contribution. - - * ace/NT_Service.i: Added ACE_INLINE to the methods in this file. - Thanks to Goran Lowkrantz - for this fix. - -Thu Oct 29 17:36:29 1998 Darrell Brunsch - - * tests/Semaphore_Test: Removed the timed acquire stuff from - the worker thread and the display at the end of the test. - Now it shouldn't output the confusing "100% of threads - timed out" message on platforms without timed acquire. - -Thu Oct 29 15:25:19 1998 Nanbor Wang - - * ace/Svc_Handler.cpp (open): Added a trailing newline to the - error message. - -Thu Oct 29 15:13:07 EST 1998 James CE Johnson - - * docs/tutorials/index.html - * docs/tutorials/016/* - Added Tutorial 016. This discusses ACE_Condition<> and ways - to make it more manageable in an application. - -Thu Oct 29 11:44:21 1998 David L. Levine - - * ace/config-sunos5.6.h: changed ACE_THREAD_POSIX_SEM to - ACE_HAS_POSIX_SEM. It looked like a typo. - Only #define ACE_HAS_POSIX_SEM if _POSIX_PTHREAD_SEMANTICS is - #defined. Thanks to Ossama for help with this. - - Also, removed ACE_HAS_PTHREADS_STD because it's - #defined in config-sunos5.5.h. - -Wed Oct 28 14:30:01 1998 Rainer Blome - - * ace/Makefile: added AIX_TEMPLATE_HACK support. - This patch helps using Rob Jordan's trick described in the - ACE-INSTALL file. The existing description in the ACE-INSTALL - is a little misleading. Creating a ACE_All_Tmp.h will not - really help, because the Makefile will look for a ACE_All_Tmp.cpp. - - Here's how to use the patch: - - Use `make ACE_All' to create 0_ACE_All_Src.h, 0_ACE_All_Src.cpp and - 0_ACE_All_Tmp.cpp. These files contain include directives for each - of the files mentioned in the makefile variables FILES and - TEMPLATE_FILES. Then `make AIX_TEMPLATE_HACK=1' to compile the - library in one go. Compilation is fast then, but `ar' will still - take a long time. - -Wed Oct 28 09:13:10 1998 David L. Levine - - * ACE-INSTALL.html: expanded discussion of non-static - ACE_Object_Manager, including the fact that it's the - default config on Win32 and VxWorks. And that not - declaring main () with two arguments will lead to - link failure due to unresolved ace_main_i. - - * tests/Time_Service_Test.cpp,Tokens_Test.cpp: display - filename if ACE_Process::spawn () fails. - - * tests/run_tests.sh: only run Time_Service_Test if - ../netsvcs/server/main exists. Also, exit if a command - line argument is provided to run_tests.sh, and the argument - is not a Chorus hostname. - - * ace/Object_Manager.h: declare the ACE_Object_Manager_Base - methods to be public, instead of protected, for DEC CXX 5.6 - (in addition to Diab for PSoS). Thanks to Doug Anderson - for suggesting this. - - * ace/config-sunos5.5.h: removed ACE_HAS_TIMER_SKEW. Thanks - to Russ Noseworthy for verifying - that it no longer seems to be necessary. - - * ace/config-linux-common.h: added ACE_HAS_PROCFS. - -Tue Oct 27 22:14:18 1998 David L. Levine - - * ACE version 4.6 released. - -Tue Oct 27 21:54:17 1998 Douglas C. Schmidt - - * man: Added the ACE_Service_Repository_Iterator.{html,3} files. - Thanks to Erik Koerber for reporting - this. - - * Updated the manual pages to reflect the latest APIs in - the new release. - -Tue Oct 27 14:16:27 1998 James CE Johnson - - * docs/tutorials/015/Recv.cpp : Changed atoi() to ACE_OS::atoi() - * docs/tutorials/015/page22.html: Ensure that the correct cpp - and header files are HREF'd - - Thanks to Susan Leibeskind for catching these. - -Tue Oct 27 12:31:28 1998 Nanbor Wang - - * ace/OS.i (cond_timedwait): Made sure the broadcaster always gets - signaled no matter what the "wait" function return if this is - the last waiter for this cv. In any case, the calling thread is - no longer waiting on the cv any more. - -Tue Oct 27 08:22:41 1998 David L. Levine - - * ace/config-win32.h: fixed typo in comment: - ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER instead of - ACE_DONT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER. Thanks to - Olivier Lau for reporting this. - - * tests/Semaphore_Test.cpp (test_timeout_count,test_timeout): - put these in #ifndef STHREADS && #ifndef POSIX_SEM protection - to avoid compiler warnings about unused variable/function. - - * ace/config-sunos5.5.h: added comment to comment out - ACE_HAS_REGEX if there are link problems with g++ or egcs on - SunOS 5.5. Thanks to Hakan Kallberg for - reporting this. - - * ACE-INSTALL.html: added Sun C++ version/patchlevel information, - including a link to Sun's tech patches home patch. Thanks to - Susan for recommending this, and for providing the URL. - - * ACE-INSTALL.html: added note about segfault when attempting to - register a signal handler on LynxOS 3.0.0/PowerPC. - - * ace/Object_Manager.cpp (fini): added check of - instance_->shutting_down_ on entry. This will avoid - reentrance if fini () is called before the Object_Manager - is (explicitly) destroyed. Thanks to Gonzo for reporting it. - -Tue Oct 27 05:47:21 1998 Douglas C. Schmidt - - * ACE version 4.5.65 released. - -Tue Oct 27 03:24:36 1998 Nanbor Wang - - * ace/TP_Reactor.h: Added an description for TP_Reactor. - - * ace/OS.i (cond_timedwait): When emulating cv, there're chances - that the "wait for being signaled" function times out and return - an error. In this rare case, we must also signal the - broadcasting thread to bail out of cond_broadcast to avoid - deadlock since we are no longer waiting on the cv anymore. - Thanks to Detlef Becker for - noticing the problem and providing the patch. - -Mon Oct 26 20:59:15 1998 David L. Levine - - * ace/Synch_T.{i,cpp} (ACE_Lock_Adapter): uninlined the - ACE_Lock_Adapter default constructor. SunPRO C++ 4.2 + patch - 104631-07 has trouble compiling TAO with it inline. - Thanks to Terry Rosenbaum - for tracking this problem down and providing the fix. - -Mon Oct 26 18:33:28 1998 Carlos O'Ryan - - * Updated the dependencies in all the Makefiles, this was required - after the new Message_Block_T.{h,i,cpp} files. - -Mon Oct 26 19:16:27 1998 James CE Johnson - - * docs/tutorials/000/index.html: This index is has a layout - similar to Umar's ACE Tutorial document. As time progresses, we - will be merging the examples in his document into the online - tutorials. The current free-form tutorials will not go away but - will be supplimented with Umar's more structured approach. - -Mon Oct 26 17:37:55 1998 Carlos O'Ryan - - * ace/OS.h: - * ace/config-sunos5.4-sunc++-4.x.h: - * ace/config-sunos5.5.h: - Sun/CC throws the ::xalloc exception when operator new cannot - allocate the memory, thanks to Terry Rosenbaum - for reporting this and - providing a patch. - - * ace/Makefile: - Updated dependencies. - -Mon Oct 26 17:02:48 1998 Nanbor Wang - - * tests/Thread_Pool_Reactor_Test.cpp: Reduced the number of - connector threads _ONLY_ on platforms that couldn't handle too - many simultaneous connection. - - Changed to use dotted-decimal format to specify connection - endpoint for some platforms don't have a decent DNS support. - -Mon Oct 26 12:04:10 1998 Nanbor Wang - - * ace/ace_lib.dsp: Added TP_Reactor into the project. - -Mon Oct 26 11:29:55 1998 Darrell E. Brunsch - - * tests/Semaphore_Test.cpp: Changed behavior for ACE_HAS_STHREADS - and ACE_HAS_POSIX_SEM so it still tests everything but doesn't - test the timed waits. - -Mon Oct 26 08:22:18 1998 David L. Levine - - * docs/ACE-guidelines.html: added recommendation and - explanation re. use of #pragma once. - - * docs/ACE-guidelines.html: recommend avoiding g++ 2.8.1. - - * tests/SV_Shared_Memory_Test.cpp: don't try to run this - test if ACE_LACKS_FORK, because it uses ACE_OS::fork (). - It allocates the shared memory segment before the fork, - of course, so that was leaked if the fork was attempted - but failed. - - * tests/Pipe_Test.cpp,Process_Mutex_Test.cpp: don't try - to run these tests if ACE_LACKS_FORK, either. - - * tests/Mem_Map_Test.cpp (reverse_file): use a local, volatile - variable for the array index. Without it, the test core dumps - on LynxOS 3.0.0/PowerPC with -O2. - - * tests/run_tests.sh: run Timer_Queue_Test and Upgradeable_RW_Test - on LynxOS. - - * tests/run_tests.vxworks: changed - Message_Queue_Notifications_Test.cpp to - Message_Queue_Notifications_Test. - -Mon Oct 26 01:49:44 1998 Nanbor Wang - - * tests/Env_Value_Test.cpp (main): Changed argv and envp to type - LPTSTR[]. - -Sun Oct 25 23:52:40 1998 Douglas C. Schmidt - - * ACE version 4.5.64 released. - -Sun Oct 25 22:18:26 1998 Douglas C. Schmidt - - * ace/Select_Reactor_T.cpp (dispatch): Be more careful in how we - handle dispatching when signals occur. In general, if we're - interrupted by a non-Reactor-aware signal handler we need to - bail out... Thanks to Naga for reporting this. - - * examples/Reactor/Misc/test_signals_1.cpp: Cleaned up this test - so that it'll show off the signal handling capabilities of the - ACE Reactor better. - -Sun Oct 25 14:13:31 1998 Darrell Brunsch - - * ace/OS.i: Changed ACE_OS::sigaction to work with a null value - for on Windows. Thanks to Jim Buck for - reporting this. - - * examples/Reactor/Misc/reactors.dsp: - * examples/Reactor/Misc/signals_1.dsp: - * examples/Reactor/Misc/signals_2.dsp: - Corrected the include and library paths. Thanks to - Zoran Ivanovic for reporting this. - - * ChangeLog: Removed all the trailing spaces and tab characters so - CVS's commit-check will be happy. - -Sun Oct 25 10:59:21 1998 Douglas C. Schmidt - - * ace/config-sunos5.5.h: Added - - #if defined (i386) - #define ACE_HAS_X86_STAT_MACROS - #endif /* i386 */ - - to check for the [f]stat macros on Solaris for Intel. Thanks to - Daniel Nieten for reporting this. - -Sun Oct 25 00:15:03 1998 Nanbor Wang - - * ace/Service_Config.cpp (process_directives): We should use - ASYS_WIDE_STRING to convert a to a UNICODE string. - -Sat Oct 24 18:39:11 1998 Steve Huston - - * ace/ACE.cpp (get_ip_interfaces, get_handle): Add _AIX to the list - of macros which enable the proper code for these to work. - ACE::get_ip_interfaces still doesn't work right on AIX, though - - it reports one link-level interface. May need to get IBM's help - with this. - -Sat Oct 24 18:07:00 1998 Nanbor Wang - - * ace/OS.h (ACE_TEXT): Consolidated various ACE_TEXT definitions - into one and place it near the beginning of the file. - Re-indented macros. - -Sat Oct 24 17:47:15 1998 Arturo Montes - - * ace/OS.i (sigwait): Sigwait is little different with FSU - pthreads, sigwait take two arguments and return -1 if error, 0 - in otherwise. - -Sat Oct 24 17:26:41 1998 Darrell Brunsch - - * ace/OS.h (ACE_TEXT): Moved Nanbor's changes outside of - ACE_PSOS block. - - * ace/config-win32.h: Defined ACE_HAS_TEXT_MACRO_CONFLICT, - seeing that MSVC already defines __TEXT. - -Sat Oct 24 15:21:32 1998 Nanbor Wang - - * ace/OS.h (ACE_TEXT): Changed the macro __TEXT to ACE_TEXT to - avoid conflicting with OS/390. __TEXT is still available for - backward compatibility unless ACE_HAS_TEXT_MACRO_CONFLICT is - defined. However, using ACE_TEXT is prefered for obvious - reason. Thanks to Paul K. Fisher for - reporting this. - - * ace/README: Added documentation for ACE_HAS_TEXT_MACRO_CONFLICT. - - * *.cpp: Replaced a bunch of __TEXT to ACE_TEXT. - -Sat Oct 24 08:34:08 1998 Douglas C. Schmidt - - * ace/OS.i: Updated the fstat() and stat() calls to work properly - on the Solaris for Intel platform, which does weird things to - the fstat() and stat() functions to handle 32 and 64 bit file - offsets. Thanks to Daniel Nieten for - reporting this. - -Sat Oct 24 02:13:11 1998 Detlef Backer - - * ace/OS.cpp (invoke): ACE_Thread_Adapter::invoke() swapped the - nesting level of __except() and __finally() because if the - selector returns EXCEPTION_EXECUTE_HANDLER a global unwind takes - place, activating nested __finally blocks and in this case - terminating the thread before having a chance to execute the - handler. After reversing the logic, now the exception handler - gets called first before the termination handler is invoked. - - Furthermore I added the call to GetExceptionInformation(), - passing the result as a void* into the selector function. This - allows a case sensitive handling startegy of the exception in - the selector function. - - (inherit_log_msg): In ACE_Thread_Adapter::inherit_log_msg() I - moved the copy operation from the selector and handler - attributes outside of the "if (this->ostream_)" condition, - because I don't think this condition is related to the SEH. - - (thr_create): In ACE_OS::thr_create() I "inherit" the current - selector handler into the newly created ACE_Thread_Adapter in - case that the caller did not specify one at invocation. - - * ace/Thread_Manager.cpp (spawn_i): In - ACE_Thread_Manager::spawn_i() I added the initialization of - selector and handler at the creation time of - ACE_Thread_Adapter. - -Fri Oct 23 21:11:03 1998 Douglas C. Schmidt - - * ace/OS.h: Changed a comment to be consistent. Thanks to Serge - Kolgan for reporting this. - -Fri Oct 23 20:39:00 1998 Chris Gill - - * Paul Christopher Gill was born Friday October 23, 1998, at - 20:39 CDT, weighing 6 lbs. 7 oz., at 19 3/4 inches in length. - A true hacker in the making, Paul decided to work through the - evening even though it was a Friday night. ;-) - -Fri Oct 23 11:37:38 1998 Steve Huston - - * include/makeinclude/platform_aix4.2.GNU: Removed -qinitauto=5F from - DCFLAGS - with it, Process_Strategy_Test was going CPU bound in an - ostream operation. - -Fri Oct 23 00:27:11 1998 Douglas C. Schmidt - - * ACE version 4.5.63 released. - -Thu Oct 22 21:32:14 1998 Darrell Brunsch - - * ACE-INSTALL.html: Since we've been successfully using MSVC 6.0 - for a while, might as well mention it here in the documentation. - -Thu Oct 22 19:48:20 1998 James CE Johnson - - * docs/index.html - Reformatted it via emacs to make it more readable when editing. - Added a comment pointing to Bob McWhirter's original FMM document - to make it easier to update the repository in the future. - - * docs/tutorials/015/Client.h - * docs/tutorials/015/Client.cpp - * docs/tutorials/015/Server.h - * docs/tutorials/015/Server.cpp - - Since Windows just *pretends* to have mixed-case names the cpp - files conflict with client.cpp and server.cpp. I renamed these - files to: - - * docs/tutorials/015/Client_i.h - * docs/tutorials/015/Client_i.cpp - * docs/tutorials/015/Server_i.h - * docs/tutorials/015/Server_i.cpp - - Which necessitated changes to - * docs/tutorials/015/client.cpp - * docs/tutorials/015/server.cpp - * docs/tutorials/015/Makefile.client - * docs/tutorials/015/Makefile.server - * docs/tutorials/015/Makefile - * docs/tutorials/015/combine.shar - * docs/tutorials/015/*.html - - Thanks to Darrell Brunsch for catching this. - - -Thu Oct 22 16:52:21 1998 Steve Huston - - * tests/Thread_Pool_Reactor_Test.(cpp h): Adjusted debug output to - learn more about what's happening; added a check to be sure that - the correct number of messages are processed by each Svc_Handler. - -Thu Oct 22 15:46:42 1998 David L. Levine - - * ace/OS.cpp (ACE_TSS_Emulation::tss_base): if storage for - the TSS data must be allocated off the heap, zero all of it. - This avoids problems after fork in the child process on - LynxOS. - -Wed Oct 21 22:23:06 1998 Douglas C. Schmidt - - * ACE version 4.5.62 released. - -Wed Oct 21 21:19:53 1998 Douglas C. Schmidt - - * ace/Service_Config.cpp (process_directives): Replaced a - return -1 with a result = -1 and a break to avoid a - memory leak. Thanks to David for pointing this out. - -Wed Oct 21 20:00:51 1998 Nagarajan Surendran - - * tests/Timer_Queue_Test.cpp : - * tests/Map_Manager_Test.cpp: - * tests/Dynamic_Priority_Test.cpp: - Replaced double with ACE_timer_t everywhere so that it works on - platforms like Chorus. - -Wed Oct 21 18:44:26 1998 Nagarajan Surendran - - * tests/run_tests.sh: Changed egrep Chorus to CHORUS to identify a - Chorus vme board. - -Wed Oct 21 17:51:52 1998 Steve Huston - - * ace/ACE.cpp (get_ip_interfaces): If compiling on Win32 w/ Winsock 2, - use WSAIoctl(SIO_GET_INTERFACE_LIST) to get the interfaces from the - kernel rather than trying to fish through the registry. This should - help TAO's naming service be somewhat more reliable on Win32, as - well as solve some other nasties that plagued this thing. - - * ace/ws2tcpip.h: Filled out necessary pieces for the above change. - -Wed Oct 21 14:19:11 EDT 1998 James CE Johnson - - * docs/tutorials/007/thread_pool.cpp - * docs/tutorials/007/thread_pool.h - Alison Greig's question caused me to look back at these and - I find that an older g++ is unhappy about the close() methods. - It seems to confuse the baseclass 'close(u_long flags=0)' with - my derived 'close(void)' even though I also have 'close(u_long)'. - Anyway, I removed my 'close(void)' and now do all of my work in - the other method. - - * docs/tutorials/007/client_handler.cpp:handle_input() - Now using ACE_OS::thr_equal() instead of operator==() - This fixes Alison's problem. (Thanks for the solution David!) - -Wed Oct 21 07:12:32 1998 David L. Levine - - * tests/Thread_Pool_Reactor_Test.cpp: moved #include of - tests/Thread_Pool_Reactor_Test.h inside of ACE_HAS_THREADS - protection, so that it will compile without thread support. - Thanks to Jan Perman for - reporting this. - - * tests/MT_Reactor_Timer_Test.cpp: moved "the_reactor" declaration - outside of ACE_HAS_THREADS protection, so that it will compile - without thread support. Thanks to Jan Perman - for reporting this. - - * bin/g++dep: added -DACE_LACKS_PRAGMA_ONCE to keep it - quiet when the config.h doesn't #define it. Thanks to - Naga for reporting this. - - * ace/config-g++-common.h: protected #define of ACE_LACKS_PRAGMA_ONCE, - because g++dep now defines it with a -D. - - * ACE-INSTALL.html: updated Linux and LynxOS version status, - and egcs --enable-shared discussion. - - * ace/Hash_Map_Manager.cpp (operator *): only declare local "result" - without ACE_NDEBUG, to avoid compile warning with debug=0. - - * ace/Synch.cpp (ACE_Recursive_Thread_Mutex::release): only - declare local "t_id" without ACE_NDEBUG, to avoid compile warning - with debug=0. - - * ace/Timer_Heap_T.cpp (reschedule): only declare local "timerID" - without ACE_NDEBUG, to avoid compile warning with debug=0. - - * ace/SV_Message_Queue.h: fixed #ifndef protection to use - ACE_SV_MESSAGE_QUEUE_H instead of ACE_MESSAGE_QUEUE_H, to - prevent collision with the Message_Queue.h's protection. - Thanks to Rainer Blome for - reporting this. - - * ace/Object_Manager.cpp: removed some old, unused printouts. - -Tue Oct 20 19:40:41 1998 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Added - -DACE_LACKS_PRAGMA_ONCE - aCC on both 10.20 and 11.00 complain about - #pragma once. Added it here rather than in config.h because (1) it - can be set in one file, not two, (2) in case a #pragma gets in before - config.h is included somehow. - - * include/makeinclude/platform_aix4.2.GNU: Revised flags passed to - xlC_r - remove -qextchk because it's the cause of the mismatched - type errors building netsvcs/lib (IBM reports this is fixed in - compiler version 3.6.4). Removed -M - it's not needed and wastes - disk space. Moved -qcheck to DCFLAGS and added -qinitauto=5F to - DCFLAGS. - - * include/makeinclude/rules.local.GNU: Added SHLIBA to the files that - get 'realclean'ed - this covers libACEshr.a on AIX. - - * netsvcs/lib/Makefile: - * netsvcs/clients/Naming/Client/Makefile: Added ACELIB to LIBS to - insure libACE is linked in. - -Tue Oct 20 19:37:42 1998 James CE Johnson - - * docs/tutorials/014/*.html: - * docs/tutorials/014/Makefile: - * docs/tutorials/014/combine.shar: - Colorized using the new and improved 'combine' script. Also - modified the Makefile so that the HTML sources won't get destroyed - if the shar operation failed. - - * docs/tutorials/015/Makefile: - Added the same Makefile modification to prevent loss of HTML sources - -Tue Oct 20 16:28:12 1998 David L. Levine - - * ACE-INSTALL.html: added recommended DU CXX version info. - Thanks to Susan Liebeskind - for suggesting this. - - * ACE-INSTALL.html: added AIX 4.2.1 xlC V3.1 patch info. - Thanks to Susan Liebeskind - for supplying it, in ready-to-use form. - - * tests/Thread_Manager._Test.cpp (main): changed debug messages - for suspend_grp/resume_grp with Pthreads, which fail due to - ENOTSUP. The resume_grp message was wrong (copy and paste - error). In addition, I reworded the messages to that - run_tests.check won't catch them. They don't indicate a - problem, just that Pthreads doesn't support those operations; - see Steve's Thu Oct 15 16:40:41 1998 entry. - -Tue Oct 20 14:31:37 EDT 1998 James CE Johnson - - * docs/tutorials/001/Makefile - * docs/tutorials/002/Makefile - * docs/tutorials/003/Makefile - * docs/tutorials/005/Makefile - * docs/tutorials/006/Makefile - * docs/tutorials/007/Makefile - * docs/tutorials/008/Makefile - * docs/tutorials/009/Makefile - * docs/tutorials/010/Makefile - * docs/tutorials/011/Makefile - * docs/tutorials/012/Makefile - * docs/tutorials/013/Makefile - * docs/tutorials/012a/Makefile - * docs/tutorials/Makefile - - Updated these makefiles to remove rules.lib.GNU - Added the "top-level" makefile to allow building - of all tutorials in one step. - -Tue Oct 20 12:54:39 1998 David L. Levine - - * ACE version 4.5.61 released. - -Tue Oct 20 07:43:56 1998 David L. Levine - - * include/makeinclude/platform_irix6.x_g++.GNU: added - LIBS += -lpthread. Thanks to Peter Nordlund - for reporting that it is needed. - - * ace/config-irix6.x-sgic++-nothreads.h,config-irix6.x-common.h: - moved ACE_HAS_GPERF from SGI C++ config to common SGI C++/g++ - config. Thanks to Peter Nordlund for - recommending this. - - * ace/config-aix-4.1.x.h,config-dgux-4.11-epc.h,config-dgux-4.x-ghs.h, - config-irix5.2.h,config-irix5.3-g++.h,config-irix5.3-sgic++.h, - config-m88k.h,config-tandem.h,config-osf1-3.2.h, - config-sunos5.4-centerline-2.x.h,config-sunos5.4-g++.h, - config-sunos5.4-sunc++-4.x-orbix.h,config-sunos5.4-sunc++-4.x.h, - config-sunos5.5.h,config-unixware-2.01-g++.h, - config-unixware-2.1.2-g++.h,config-irix6.x-common.h,README: - removed ACE_HAS_SVR4_TIME because it is no longer used. - Thanks to Peter Nordlund for - reporting this. - - * tests/MT_Reactor_Timer_Test.cpp (handle_exception, - handle_timeout): added ACE_UNUSED_ARG's. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - added #include of ace/streams.h, because the dump () - method uses ofstream. - - * examples/Connection/non_blocking/CPP-acceptor.cpp (handle_close): - added ACE_UNUSED_ARG's. - - * ace/config-sunos5.5-sunc++-4.x.h,config-sunos5.5-g++.h: - removed, because config-sunos5.5.h should be used instead. - - * performance-tests/Misc/basic_perf.cpp (iteration_time): - added static cast 0 to ACE_hrtime_t to please g++ - on VxWorks (which uses ACE_U_LongLong for ACE_hrtime_t). - - * ace/config-cygwin32-common.h: removed msg_accrights{,len} - defines, because they were commented out. - - * OS.h,config-aix-4.1.x.h,config-linux-common.h,README: - added ACE_LACKS_MSG_ACCRIGHTS support. This consolidates - code that was in both of the config files. Thanks to - Ossama for suggesting it. - - * include/makeinclude/platform_vxworks*.GNU: moved our - wind installation from /project/doc/wind to /project/doc/pkg/wind. - -Tue Oct 20 07:09:31 1998 Steve Huston - - * ace/config-aix-4.2.x.h: Added ACE_HAS_GPERF. - - * tests/tests.(mak mdp): Fixed to build clean; Added: - DLList_Test, High_Res_Timer_Test, Dynamic_Priority_Test, - Thread_Pool_Reactor_Test, Upgradable_RW_Test, MT_Reactor_Timer_Test. - -Mon Oct 19 21:40:56 1998 David L. Levine - - * *.h: changed include protection from #if !defined to ifndef. - Added #pragma once, if possible, i.e., after #include of - an ace/ header. It can only be done after ace/config.h - is included, because some platforms don't allow #pragma once. - - * include/makeinclude/wrapper_macros.GNU: removed -DACE_LACKS_PRAGMA - for g++ because it's now in config-g++-common.h. - -Mon Oct 19 20:44:33 1998 James CE Johnson - - * docs/tutorials/015: - Once again I've modified just about every file. Finally though - Tutorial 015: Protocol Stream is done! - - * docs/tutorials/combine - Get rid of that silly "links" file and add "bodies". The new file - is an ordered list of files to use when assembling the HTML - pages. This makes it easier to stuff source code into the pages. - - * docs/tutorials/index.html - I could have sworn that I linked in 014 many moons ago. - Appologies to Bob McWhirter for leaving this out for so long! - -Mon Oct 19 17:00:52 EDT 1998 James CE Johnson - - * docs/tutorials/015: - Just about everything in this directory has been touched. I'm - in the middle of documenting it and need a checkpoint so nothing - gets lost! ETA for completion is later tonight or sometime tomorrow. - -Mon Oct 19 11:47:20 1998 David L. Levine - - * ace/OS.cpp (readPPCTimeBase): wrapped each line in "". - Otherwise, the C++ compiler on MVS complains unterminated - strings. Even though it isn't supposed to see this code :-/ - Thanks to Chuck Gehr for - reporting this. - - * ace/config-g++-common.h: added ACE_LACKS_PRAGMA_ONCE. - g++ doesn't need it, because it optimizes includes if the #ifndef - header protection convention is followed. And, it - complains about #pragma once. - - * ace/config-win32-common.h: added ACE_LACKS_PRAGMA_ONCE, - unless _MSC_VER < 1000. - -Mon Oct 19 11:13:00 1998 Chris Gill - - * ace/Message_Block.h: Added title and description comments to - deadline and laxity message priority strategy classes. - -Sun Oct 18 17:22:00 1998 James CE Johnson - - * docs/tutorials/014/combine.shar: - * docs/tutorials/015/combine.shar: - The additional input files to the combine script. A shell archive - seems to be the most economical way to keep their history. - Individual files just create clutter and a tar.gz wouldn't be - diff-able in the repository. - - * docs/tutorials/014/Makefile: - * docs/tutorials/015/Makefile: - Adjusted to create the HTML and combine.shar files. - -Sun Oct 18 16:51:43 1998 James CE Johnson - - * docs/tutorials/combine: A perl script for combining several - "source" files into an HTML. It was designed to combine comment - files with .cpp and .h files in the creation of tutorials. The - HTML output is commited to the repository, I haven't decided yet - if it's worth saving the input. - - * docs/tutorials/fix.Makefile: This was pulled out of one of the - old tutorials and made a bit more useful. It's purpose is to pull - dependency information out of a Makefile and create a .depend file - instead. This keeps makfiles cleaner and less confusing. - - * docs/tutorials/014/Makefile - * docs/tutorials/014/Task.cpp - Minor changes. I attempted to add THR_JOINABLE to the activate() - call but that resulted in a permanent hangup on Linux when trying - to exit the application - - * docs/tutorials/015/Client.cpp - * docs/tutorials/015/Client.h - * docs/tutorials/015/Compressor.cpp - * docs/tutorials/015/Compressor.h - * docs/tutorials/015/Crypt.cpp - * docs/tutorials/015/Crypt.h - * docs/tutorials/015/Handler.cpp - * docs/tutorials/015/Handler.h - * docs/tutorials/015/Makefile - * docs/tutorials/015/Makefile.client - * docs/tutorials/015/Makefile.server - * docs/tutorials/015/Protocol_Stream.cpp - * docs/tutorials/015/Protocol_Stream.h - * docs/tutorials/015/Protocol_Task.cpp - * docs/tutorials/015/Protocol_Task.h - * docs/tutorials/015/Recv.cpp - * docs/tutorials/015/Recv.h - * docs/tutorials/015/Server.cpp - * docs/tutorials/015/Server.h - * docs/tutorials/015/Xmit.cpp - * docs/tutorials/015/Xmit.h - * docs/tutorials/015/client.cpp - * docs/tutorials/015/page01.html - * docs/tutorials/015/page02.html - * docs/tutorials/015/page03.html - * docs/tutorials/015/page04.html - * docs/tutorials/015/page05.html - * docs/tutorials/015/page06.html - * docs/tutorials/015/server.cpp - The beginnings of a protocol stream tutorial. The code is done but - the tutorializing (eg -- HTML and comments) isn't complete. - -Sat Oct 17 21:20:44 1998 David L. Levine - - * ace/OS.i (gethrtime): updated comments on Alpha rpcc - instruction. Only 32 bits of high-res tick count are - available, even the 64 bits are read by the rpcc instruction. - The high 32 bits are for implementation-specific use, such - as a virtual tick counter. - -Sat Oct 17 13:41:57 1998 Douglas C. Schmidt - - * test/Future_Test.cpp: Added more comments so that the structure - and participants in the Active Object pattern would be more - obvious. - - * ace/Message_Block: Added a priority parameter, which defaults to - 0, to one of the constructor for ACE_Message_Block so that it - simplifies the new Method_Request semantics. - - * ace/Method_Request.h: Added priority() accessor/mutator methods - so that we can control where a Method_Request is placed in the - Activation_Queue, which is just a Facade for an - ACE_Message_Queue. - - * ace: Renamed ACE_Method_Object to ACE_Method_Request to - correspond to the new version of the Active Object pattern at - http://www.cs.wustl.edu/~schmidt/Act-Obj.ps.gz. This change - involved renaming the Method_Object.h and Method_Object.cpp - files to Method_Request.h and Method_Request.cpp, respectively. - For backwards compatibility, I kept the Method_Object.h file, - which now just includes Method_Request.h and adds a typedef of - ACE_Method_Request to ACE_Method_Object so no applications - should break. New applications should use the new names, - however. - - * ace/Acceptor.h: Moved the - ACE_Oneshot_Acceptor::register_handler() method into the private - part of the class so that users won't be tempted to call it! - Thanks to Larry for reporting this. - - * examples/Connection/non_blocking/CPP-acceptor: Fixed a bug that - occurred when timers were used in conjunction with the - ACE_Oneshot_Acceptor and handle_close(). - - * ace/Acceptor: Cleaned up the ACE_Oneshot_Acceptor comments. - Boy, this was confusing ;-). Thanks to Larry - for reporting this. - -Sat Oct 17 12:54:17 1998 Douglas C. Schmidt - - * ACE version 4.5.60 released. - -Sat Oct 17 12:50:44 1998 Douglas C. Schmidt - - * Fixed a number of warnings that crept into the release - yesterday. Thanks to David Levine and DEC C++ for - reporting these. - -Sat Oct 17 00:35:21 1998 Douglas C. Schmidt - - * ACE version 4.5.59 released. - -Sat Oct 17 00:29:37 1998 Douglas C. Schmidt - - * ace/Service_Config.cpp (process_directives): Only warn about a - missing svc.conf file if we're debugging. - -Fri Oct 16 23:16:30 1998 David L. Levine - - * docs/ACE-guidelines.html: 1) use complete sentences for - comments and 2) use prefix operators where possible, such - as on an iteration loop index. - -Fri Oct 16 15:45:08 1998 Douglas C. Schmidt - - * ace/Service_Config: Added a new method called - init_svc_conf_file_queue() that will properly initialize the new - queue containing the list of svc.conf files. - - * ace/Service_Config: Added a return value to parse_args() to make - sure we do a sanity check... - - * ace: Replaced all #if !defined (ACE_FOO_H) with #ifndef - ACE_FOO_H since many C++ preprocessors can recognize this idiom - and optimize for it. - - * ace/Service_Config.cpp (parse_args): Modified the -S option to - enqueue the directives in FIFO order rather than in LIFO order. - It's more intuitive to process them in the order they are - received! - - * ace/Service_Config: It's now possible to give multiple -f - options to the Service Configurator and it will open multiple - files and process each one in the order specified in argv. This - is useful if svc.conf are generated by automatic tools, e.g., - Wizards, that are operating independently. Thanks to David - O'Farrell for suggesting this. - - * tests/Upgradable_RW_Test.cpp: Revised the programming style ;-). - - * tests/Map_Manager_Test.cpp: Replaced all uses of postfix ++ - operators with prefix ++ operators because they are faster when - iterating over the various Maps. - - * ace/[Hash_]Map_Manager: Today we decided to remove the use of - locking for the ACE[_Hash]_Map_Manager Iterators. The original - scheme acquired the mutex of the [Hash_]Map_Manager on every - ++operator++/--operator-- call. Not only was this very - inefficient, but it was also essentially useless since it - doesn't protect against arbitrary insertions/deletions in the - underlying map during the iteration. - - Our first thought was to put an ACE_Read_Guard into the iterator - itself and acquire this for the duration of the iteration. - However, this approach is totally broken when using STL-style - iterators since the postfix ++ and -- operators return a copy of - the iterator, which easily causes deadlocks if non-recursive - mutexes are used. - - After much discussion, we decided it's better to let users - figure out their own locking usecase, rather than have the - iterators guess wrong and either screw up their code or yield - substantial inefficiencies. Therefore, the right approach is to - do something like this: - - typedef ACE_Map_Manager MAP_MANAGER; - typedef ACE_Map_Iterator ITERATOR; - typedef ACE_Map_Entry ENTRY; - - void - foo (MAP_MANAGER &map) - { - // ... - { - // Explicitly grab the lock and hold it for the duration of - // the iteration. - ACE_READ_GUARD (ACE_Thread_Mutex, ace_mon, map.mutex ()); - - ITERATOR end = map.end (); - - for (ITERATOR iter = map.begin (); - iter != end; - ++iter) - { - ENTRY &entry = *iter; - ++i; - } - // ... - } - - Note that as a general rule, it's better to use ++i rather than - i++ to avoid unnecessary copies. - -Fri Oct 16 14:57:58 1998 Irfan Pyarali - - * ace/Hash_Map_Manager and Map_Manager: Fixed the operator++ and - operator--. Also, moved the guard from the individual methods - to the iterator. Now, the read guard is held for the life time - of the iterator. - -Fri Oct 16 14:51:57 1998 Nanbor Wang - - * ace/OS.cpp (thr_create): Made sure if users don't specify - whether to spawn threads detached or joinable, we'd change the - creation flag for them so that they are always joinable (not - detached.) This is important for unify the thread behavior on - different platforms that have various default thread creation - policies. Thanks to Susan Liebeskind - for motivating the change. - -Fri Oct 16 01:28:17 1998 Douglas C. Schmidt - - * ACE version 4.5.58 released. - -Thu Oct 15 23:50:41 1998 Douglas C. Schmidt - - * ACE version 4.5.57 released. - -Thu Oct 15 22:05:02 1998 Douglas C. Schmidt - - * ace/ACE.cpp (unique_name): Moved the arguments around in the - sprintf() in order to generate a better "unique name". Thanks - to Bob McWhirter for suggesting this. - -Thu Oct 15 21:20:36 1998 Irfan Pyarali - - * ace/Hash_Map_Manager.cpp (operator-- and operator++): - * ace/Map_Manager.cpp (operator-- and operator++): - - Fixed by value and by reference return values. - -Thu Oct 15 20:16:46 1998 James CE Johnson - - * docs/ACE-FMM.html: Updated with Bob McWhirter's latest changes. - Discussion of race conditions when spawning threads from within a constructor. - -Thu Oct 15 18:30:58 1998 Douglas C. Schmidt - - * ace/OS.h: Added ACE_HTONS(x) macros to complement ACE_HTONL(x) - macros. Thanks to Balaji Srinivasan - for reporting this. - - * ace/[Hash_]Map_Manager.cpp: Postfix and prefix were inverted. - They are correct now. Thanks to Balaji Srinivasan - for reporting this. - -Thu Oct 15 18:02:51 1998 Darrell Brunsch - - * ace/config-win32.h: For non-winnt systems, define - ACE_LACKS_RECVMSG and ACE_LACKS_SENDMSG. Thanks to Bill Hall - for pointing this out. - - [BTW, Bill was the 400th individual to contribute an ACE/TAO - bug report, thanks to everyone for all their help over the years!] - -Thu Oct 15 16:50:09 1998 Nanbor Wang - - * ace/SOCK_Dgram_Mcast.i (set_option): Need to convert the - from char to int for Win32 because the shortest length - of must be at least sizeof (int) on Win32. Thanks - to Johan Lundin for reporting this. - -Thu Oct 15 16:40:41 1998 Steve Huston - - * tests/Thread_Manager_Test.cpp: Allow suspend/resume to be tried on - pthreads, but don't allow any error other than ENOTSUP. This - catches a bug in Thread_Manager that lost the error values on an - error. - - * ace/Thread_Manager.cpp (ACE_THR_OP macro): Don't remove a thread - from the active threads list if an operation fails with ENOTSUP. - This was causing calls to suspend_grp/resume_grp to erase the list - of threads in a group on pthreads, then wait_grp didn't wait because - it thought there weren't any more threads. - -Thu Oct 15 12:43:46 1998 Nanbor Wang - - * ace/Task.cpp (activate): Changed to activate new active objects - using the same grp_id if this task has been activated before and - no new grp_id is specified in activate method. Also, the task's - grp_id will only get updated if it has never been updated even - if is set. This prevent the original - get lost but the consequence if that if users select to - force_activate new tasks with a different grp_id, the new grp_id - will get lost and the only way to wait for these threads is to - either perform a wait for all threads, or wait for each - individual thread by waiting on the thread handles returned by - the activate method. Thanks to Bob McWhirter - for motivating this change. - (ACE_Task_Base): Changed to initialize to -1. - -Thu Oct 15 10:07:13 1998 David L. Levine - - * ACE version 4.5.56 released. - -Thu Oct 15 09:54:07 1998 David L. Levine - - * tests/run_tests.sh: commented out MT_Reactor_Timer_Test because - it doesn't halt on g++/Solaris or DU 4.0. - - * include/makeinclude/wrapper_macros.GNU: for g++, added - -DACE_LACKS_PRAGMA_ONCE to CCFLAGS. Thanks to Kirk Ellet - for pointing out that is has to be done - in CCFLAGS rather than as a #define in OS.h, because - ace/Synch_T.h uses the pragma before config.h is #included. - -Wed Oct 14 23:20:45 1998 Douglas C. Schmidt - - * ACE version 4.5.55 released. - -Wed Oct 14 22:17:31 1998 David L. Levine - - * docs/ACE-guidelines.html: added guideline for protection of - header files against multiple inclusion. Thanks to - Eric C. Newton for pointing out the construct - used by gcc/g++ to minimize unnecessary file inclusion. - Fortunately, other compilers use the same method. And, - thanks to Susan Liebeskind for being - the last ACE user to suggest something like this, and to - Pat McNerthney for spurring the search for - such an optimization. - -Wed Oct 14 12:36:00 1998 Douglas C. Schmidt - - * tests/run_tests.sh: Added the MT_Reactor_Timer_Test. - - * tests/MT_Reactor_Timer_Test.cpp: Fixed a number of bugs with - this test. It seems to work fine on Solaris now. - - * tests/MT_Reactor_Timer_Test.cpp (main): Added a test to make - sure that the ACE_Reactor::handle_events() method properly - counts the number of expired timers. - - * ace/Select_Reactor_T: Updated the various methods so that - handle_events() now works as advertised, i.e., it actually - returns the number of event handlers it dispatched. - - * ace: Added - - #if !defined (ACE_LACKS_PRAGMA_ONCE) - #pragma once - #endif /* ACE_LACKS_PRAGMA_ONCE */ - - To all the header files in ACE. This should speed up - compilation time on platforms whose C++ compilers support - #pragma once. Thanks to Patrick J. McNerthney - for suggesting this. - - * ace/Functor.h: Moved the definitions of the constructor and - destructor of ACE_Command_Base into the *.i file. - - * ace/Select_Reactor_T: Enhanced dispatch_timer_handlers() so that - it passes the number of timers dispatched as an out parameter to - avoid any ambiguity. - -Wed Oct 14 15:30:42 1998 Steve Huston - - * ace/Message_Block_T.h: Removed ACE_Export from definition of template - class ACE_Locked_Data_Block. - -Wed Oct 14 12:36:00 1998 Douglas C. Schmidt - - * ace/config-cygwin32-common.h, - ace/config-cygwin32.h, - ace/OS.h: - Added support for Cygwin32. Thanks to Phil Feairheller - for contributing this. - - * ace/config-vxworks5.x.h, - ace/config-chorus.h, - ace/config-psos*.h, - ace/config-cygwin32-common.h, - ace/OS.i: - Added and used the new ACE_LACKS_MKFIFO macro. Thanks to Phil - Feairheller for reporting this. - -Wed Oct 14 11:03:45 1998 Douglas C. Schmidt - - * ACE version 4.5.54 released. - -Wed Oct 14 00:28:10 1998 Douglas C. Schmidt - - * ACE version 4.5.53 released. - -1998-10-14 Nagarajan Surendran - - * ace/Synch_T.cpp : Changed ACE_mutex_t to ACE_cond_t for CHORUS - in ACE_Condition constructor. - -1998-10-13 Nagarajan Surendran - - * ace/Synch.i (ACE_Mutex::remove): Added a #else for non-chorus - cases instead of #endif to call ACE_OS::mutex_destroy. - - * ace/OS.cpp : Added static member definition - KnCap ACE_OS::actorcaps_[ACE_CHORUS_MAX_ACTORS] - for CHORUS. - - * ace/config-chorus.h: Added ACE_HAS_TSS_EMULATION. - -Tue Oct 13 22:40:40 1998 Carlos O'Ryan - - * ace/Makefile: - * ace/Message_Block.h: - * ace/Message_Block.i: - * ace/Message_Block.cpp: - * ace/Message_Block_T.h: - * ace/Message_Block_T.i: - * ace/Message_Block_T.cpp: - Added a new variant of the ACE_Data_Block class that holds an - instance of its locking strategy, this is useful because in some - cases the lifetime of the lock is tied to the lifetime of the - Data_Block itself. The Message_Block class was carefullly - modified to support this new feature, i.e. it does not hold a - lock while removing the data block because the hold may be part - of the data block itself. Still all the features in the - Message_Blocks are supported, for instance, a complete - Message_Block chain ca be destroyed while holding a single lock, - shared by all the Data_Blocks in the chain. - -Tue Oct 13 22:39:42 1998 David L. Levine - - * tests/MM_Shared_Memory_Test.cpp (client): added an - ACE_ASSERT to check that shm is non-zero. - - * ace/OS.h,config-chorus.h,README: added - ACE_HAS_PTHREAD_PROCESS_ENUM support. Thanks to - Alberto Villarica and Naga - for tracking the problem with Semaphore_Test hanging. - - * ace/OS.h: changed default PTHREAD_PROCESS_SHARED from 0 to 1. - That way, it's different than PHTREAD_PROCESS_PRIVATE. - -Tue Oct 13 22:09:12 1998 Irfan Pyarali - - * ace/Mem_Map.cpp (map_it): One more try to get this right ;) - Thanks to Jonathan Reis for the bug - reports, suggested fixes, and test program. - -Tue Oct 13 21:17:37 1998 Alexander Babu Arulanthu - - * ace/Asynch_IO.cpp: - * ace/Proactor.cpp: Fixed the problem with POSIX4 implementation - of Asynch_Transmit_File. Thanks to James Hu and Irfan for - reporting this problem and helped me on the fixes. - -Tue Oct 13 18:07:21 1998 Steve Huston - - * ace/config-aix-4.2.x.h: Set up so it should work with gcc as well - as xlC. Rearranged defs and removed some duplicates. - Enabled ACE_HAS_4_4BSD_SENDMSG_RECVMSG and removed the redefs - of msgbuf fields. - - * tests/Thread_Pool_Reactor_Test.cpp: Moved the definition of - Acceptor_Handler to a new file, Thread_Pool_Reactor_Test.h to - satisfy AIX xlC's template instantiation. - -Tue Oct 13 15:56:09 1998 Nagarajan Surendran - - * ace/OS.i: Fixed a few errors on CHORUS. - -Tue Oct 13 08:48:36 EDT 1998 James CE Johnson - - * docs/ACE-tutorials.html - * docs/ACE-FMM.html - Added Bob McWhirter's "Frequently Made - Mistakes" list. - -Tue Oct 13 07:28:38 1998 David L. Levine - - * ace/High_Res_Timer.cpp (dump): replaced ACE_static_casts with - ACE_CU64_TO_CU32, because the method is const. Thanks to Doug - for reporting this. - - * ace/Thread_Manager.cpp (join): replaced __xlC__ test with - _AIX. That way, g++ and xlC will both use the three-arg - join call on AIX. Thanks to Ian Wright - for reporting this. - - * ace/Makefile,examples/Bounded_Packet_Relay/Makefile: - updated dependencies. - - * ace/OS.[hi],config-fsu-pthread.h,config-aix-4.[12].x.h, - config-mit-pthread.h,config-hpux-10.x.h,config-hpux11.h, - config-irix6.x-{g++,sgic++}.h,config-mvs.h,config-tandem.h, - config-osf1-3.2.h,config-osf1-4.0.h,config-sco-5.0.0-mit-pthread.h, - config-irix6.x-common.h,README: - removed ACE_HAS_TID_T and ACE_HAS_PTHREAD_T support. ACE_hthread_t - is now a simple typedef of pthread_t. It was before, also, but not - so simple :-) Before, it was a typedef of tid_t on platforms - that had ACE_HAS_TID_T but not ACE_HAS_PTHREAD_T. There were - no such platforms; so, it was pthread_t on all PTHREADS platforms. - Thanks to Ossama, Arturo, and Steve for sorting all this out. - We ended up with just a single typedef, so it was worth it. - - * ace/OS.i (thr_cmp): use pthread_equal with PTHREADS, same as - in ACE_OS::thr_equal (). Thanks to Ossama for pointing out that - they were different, but shouldn't have been. - - * ace/config-aix-4.2.x.h,config-fsu-pthread.h,config-hpux-10.x.h, - config-hpux11.h,config-irix6.x-{g++,sgic++}.h,config-mit-pthread.h, - config-mvs.h,config-osf1-3.2.h,config-osf1-4.0.h, - config-sco-5.0.0-mit-pthread.hconfig-tandem.h,README: - removed ACE_HAS_PTHREAD_EQUAL because it's no longer used. Thanks - to Ossama for motivating the above change to thr_cmp, which had - been the only use of ACE_HAS_PTHREAD_EQUAL. - - * ace/Log_Record.h,OS.h: changed C++-style comments to C-style - comments in preprocessor directives. Thanks to - Fernando D. Mato Mira for reporting these. - -Tue Oct 13 00:19:42 1998 Douglas C. Schmidt - - * ace/OS.i (sema_destroy): I believe I've fixed the rats nest of - #ifdefs to get semaphores to work correctly on Chorus again. - Thanks to Naga for tracking this down! - - * ace/High_Res_Timer.cpp: Temporarily commented out the - ACE_static_casts so that this will compile with CC. - - * ace/Hash_Map_Manager, - ace/Map_Manager: - Added a public mutex() accessor that allows us to return a - reference to the lock_. This is useful for cases where we're - using ACE_Process_Mutex and need to call remove(). Thanks to - Bob McWhirter for this suggestion. - -Mon Oct 12 23:03:26 1998 Douglas C. Schmidt - - * ace/Mem_Map.cpp (map_it): Added a minor fix to handle the fact - that Chorus doesn't support filesize() on a shared memory - segment. Thanks to Alberto Villarica - for reporting this. - -Mon Oct 12 22:18:03 1998 David L. Levine - - * ace/High_Res_Timer.cpp (dump): cleaned up output so that it - works and is consistent across all platforms. (long long - printing is not portable: some platforms use %llu and - others use %Lu). - -Mon Oct 12 18:39:09 1998 Irfan Pyarali - - * ace/Mem_Map.cpp: Revised the code to take the offset into - account when deciding whether to grow the backing store. - - Also, ACE_Mem_Map was trying to be too clever when it tries to - make sure that your offset is a multiple of the allocation - granularity. It ends up messing up user offset and length - calculations. Therefore, I have taken this out of ACE_Mem_Map - code. Users is still welcome to use - ACE_OS::allocation_granularity and - ACE::round_to_allocation_granularity by themselves. - -Mon Oct 12 14:39:15 1998 Douglas C. Schmidt - - * ace/Parse_Node.cpp: Added some ACE_const_casts to cleanup the - casting going on here. - - * examples/ASX/CCM_App/CCM_App.cpp: We need to make sure and use - the ACE_SVC_FACTORY_* macros so that the gobbler will be set - correctly. Purify rules! - - * ace/Makefile: Make sure to add the // $ Id: $ CVS string when - recreating Svc_Conf_Tokens.h. - - * ace/Svc_Conf.y: Just to be paranoid, make sure to set the - gobbler function to 0. At least this way we'll get crashes - rather than bizarre errors if users don't use the ACE_*FACTORY* - macros. - -Mon Oct 12 19:19:27 1998 James CE Johnson - - * docs/ACE-tutorials.html: - Added a link to Bob McWhirter's Frequently Made Mistakes page. - - * docs/tutorials/014/Makefile - * docs/tutorials/014/Task.{cpp|h} - * docs/tutorials/014/EndTask.h - * docs/tutorials/014/stream.cpp - * docs/tutorials/014/page0[123456].html - A slightly modified version of Bob McWhirter's ACE_Stream tutorial. - -Mon Oct 12 15:59:00 1998 David L. Levine - - * ace/Message_Block.cpp (size): removed unused local "old_base". - -Mon Oct 12 11:24:45 PDT 1998 James Hu - - * Asynch_IO.cpp: Minor changes to deal with FMR error. - - * Message_Block.{cpp,i,h}: Changed rd_ptr_ and wr_ptr_ to be - byte offsets from base (). This allows one to resize a - duplicate without trashing other Message_Blocks that may be - referring to the same data block. - - * Proactor.cpp: Made the message block 64 bytes bigger to make - purify happier. - -Mon Oct 12 12:14:45 1998 Douglas C. Schmidt - - * ace/Parse_Node.cpp (ACE_Stream_Node): In error cases, the strops - parameter can be NULL. Therefore, we need to protect against - this case. Thanks to David O'Farrell - for reporting this. - -Mon Oct 12 10:43:09 1998 Alexander Babu Arulanthu - - * ace/Asynch_IO.cpp (ACE_Asynch_Result): Fixed a double deletion - problem. Thanks to James Hu for reporting this. - -Mon Oct 12 09:43:07 1998 Carlos O'Ryan - - * ace/Containers_T.h: - * ace/Containers_T.cpp: - Added a new method to modify the size of an ACE_Array. - -Mon Oct 12 09:23:49 1998 David L. Levine - - * netsvcs/lib/Name_Handler.cpp (lists_entries): one more try - to fix the egcs 1.1b bug: removed the ptmf temporary entirely. - -Sun Oct 11 17:33:22 1998 Douglas C. Schmidt - - * ace/Synch.cpp: Fixed a typo, s/lock_/process_lock_/. Thanks to - Naga for noticing this. - -Sun Oct 11 08:19:33 1998 David L. Levine - - * ace/config-linux-common.h: re-enabled msg_* undefs and defines, - but for libc5 (non-glibc) only. Thanks to JM Strauss - for verifying that they're needed. - - * netsvcs/lib/Name_Handler.cpp (lists_entries): replaced - switch statement with a multi-branch if statement, to - avoid Internal compiler error 980331 with egcs 1.1b (2.91.57) - (on Linux/alpha). - -Sat Oct 10 18:30:02 1998 Douglas C. Schmidt - - * ace/Synch_T: Added a process condition abstraction for Chorus - that is based on a condition variable stored in shared memory. - Thanks Alberto Villarica for - this. - - * ace/Synch: Added a process mutex abstraction for Chorus that is - based on a mutex stored in shared memory. Thanks Alberto - Villarica for this. - - * ace/config-chorus.h: Updated the config file for Chorus. Thanks - Alberto Villarica for this. - - * ace/OS.i: Added rudimentary flock support for Chorus. Thanks - Alberto Villarica for this. - - * ace/OS.i: Added exec*() support for Chorus. Thanks Alberto - Villarica for this. - - * ace/config-chorus.h: Added #include of file . - - * ace/Local_Name_Space_T.cpp (create_manager_i): Added a special - case for CHORUS so that we use a base address of 0. Thanks to - Alberto Villarica for reporting - this. - - * ace/Local_Name_Space_T.cpp (create_manager_i): Don't use - ACE_OS::access() if the platform lacks it. Thanks to Alberto - Villarica for reporting this. - -Sat Oct 10 18:33:06 1998 Alexander Babu Arulanthu - - * tests/Aio_Platform_Test.cpp: Comments. - -Sat Oct 10 17:42:18 1998 Douglas C. Schmidt - - * ACE version 4.5.52 released. - -Sat Oct 10 16:44:24 1998 Douglas C. Schmidt - - * ace/Service_Repository.cpp: Improved the documentation and added - some new ACE_const_casts. Thanks to Eric Palantir - for motivating this. - - * ace/Service_Config.cpp (open): The logger key should be set to - the static logger key only if the key supplied is EQUAL with the - default logger key. Thanks to Eric Palantir - for reporting this. - -Sat Oct 10 16:28:00 1998 Carlos O'Ryan - - * ace/Synch.h: - * ace/Synch.i: - * ace/Synch.cpp: - The ACE_Process_Mutex class was allocating one of its members - from the heap, thus it could not be placed in shared memory. - The problem was that the member required the creation of a - unique name if the user did not provide one; making the buffer - for this unique name a member of ACE_Process_Mutex allowed us to - initialize the lock_ member while still allocating it as a - member of the class. Thanks to Bob McWhirter - for helping to track this down. - -Sat Oct 10 12:45:31 1998 Douglas C. Schmidt - - * ace/Malloc_T.h: Added a documentation entry for class - ACE_Cached_Allocator. Thanks to Erik Koerber - for reporting this. - -Sat Oct 10 00:40:05 1998 Douglas C. Schmidt - - * ACE version 4.5.51 released. - -Fri Oct 09 23:47:42 1998 Irfan Pyarali - - * ace/Mem_Map.cpp (map_it): Fixed the setting of length_ again. - Hopefully, it will be right this time. - -Fri Oct 9 15:37:26 PDT 1998 James Hu - - * ace/Mem_Map.cpp: Protect against assigning 0 to length_. This - was causing JAWS to fail. - -Fri Oct 9 16:59:26 1998 Nagarajan Surendran - - * examples/IPC_SAP/SOCK_SAP/run_test: - * examples/IPC_SAP/SOCK_SAP/summarize: - Fixed the scripts to print the results correctly.Fixed - comments and usage. - -Fri Oct 09 16:35:00 1998 Chris Gill - - * ace/Timer_Queue_Adapters.cpp - ace/ace_dll.dsp - examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{cpp, h}: - Fixes for deferred callbacks in the BPR example on NT. - -Fri Oct 09 11:59:26 1998 David L. Levine - - * include/makeinclude/wrapper_macros.GNU: removed RM override - because it's not necessary. Thanks to - Tres Seaver for this suggestion. - - * include/makeinclude/platform_chorus_ghs.GNU, - platform_irix6.x-sgic++.GNU,platform_osf1_3.2.GNU, - platform_osf1_4.0.GNU,platform_osf1_4.0_rcc.GNU, - platform_sunos5_sunc++.GNU: - replaced hard-coded /bin/rm -f with $(RM). Thanks to - Tres Seaver for this suggestion. - - * ace/Containers_T.{h,cpp}: removed unecessary (and impolite) - argument name. - -Fri Oct 09 00:44:21 1998 Irfan Pyarali - - * ace/OS.i (mmap): CreateFileMapping must be created with a length - of 0 (which will get translated to the size of the file). This - must not be since only deals with the mapping of the - view and not with the file mapping object. It is ok to use 0 - since we are trying to emulate UNIX's mmap. - - * ace/ACE.cpp (round_to_allocation_granularity): - ace/OS.i (allocation_granularity): - - New methods. We need allocation granularity when rounding off - the offset in mmap and not the page size. Only on Win32, - allocation granularity is different from pagesize. - - * ace/High_Res_Timer.cpp: Added the inclusion of Object_Manager.h. - Otherwise, NT was picking up the definition of - ACE_Static_Object_Lock. - - * ace/Mem_Map.cpp (map_it): Fixed the problem where a requested - length of less than the filesize was being ignored. Also, - changed round_to_pagesize() to round_to_allocation_granularity(). - Thanks to Jonathan Reis for - pointing this bug out. - -Fri Oct 09 00:02:01 1998 Alexander Babu Arulanthu - - * ace/Asynch_IO.cpp: The YET another problem with doing multiple - Asynch_Accepts have been fixed. Thanks very much James Hu for - reporting this. I was calling reactor's resume_handlers and - suspend_handlers instead of only for one handle. Thanks very - much Irfan! for pointing this out. - -Thu Oct 08 23:06:20 1998 David L. Levine - - * config-linux-common.h: on Alpha only, added ACE_POLL_IS_BROKEN. - High_Res_Timer_Test revealed that it's necessary with - glibc 2.0.7-13. I don't think that its necessary on - Pentiums, but maybe it depends on glibc version. - - * OS.i (gethrtime),High_Res_Timer.cpp OS.i,README: - added ACE_HAS_ALPHA_TIMER support. See the comment - in ACE_OS::gethrtime about it being limited to 32 bits. - I don't know why, but that severely limits the range - of high res times. Therefore, it's not enabled by default - in any config files. - -Thu Oct 08 15:22:22 1998 Arturo Montes - - * ace/OS.{i,cpp}: Reverted FSU thread changes for now. - -Thu Oct 08 15:11:34 1998 Nanbor Wang - - * ACE-INSTALL.html: Updated document about spawning new thread - when ACE_HAS_MFC is defined. CWinBeginThread is not used - automatically. Users have to explicitly ask for this. - -Thu Oct 8 12:11:08 1998 Nagarajan Surendran - - * examples/IPC_SAP/SOCK_SAP/run_test: - * examples/IPC_SAP/SOCK_SAP/summarize: - - Added these scripts to run the test and summarize the - results. These scripts are modelled similar to the - $TAO_ROOT/performance-tests/Cubit/TAO/MT_Cubit scripts. - Thanks to David for the scripts. - -Thu Oct 08 08:23:09 1998 David L. Levine - - * ace/High_Res_Timer.cpp (get_registry_scale_factor): - default global_scale_factor to 1000 instead of 1, - because ACE_OS::gethrtime () defaults to nanoseconds. - Thanks to Peter Nordlund for - reporting that High_Res_Timer_Test failed on Irix without - this fix. - - * ace/Makefile (Svc_Conf_l.cpp): use Doug's flex to generate - this file, if running on a DOC group machine, instead of - using whatever flex is first on the users path. - - * etc/README: fixed typo. - - * ace/Svc_Conf_l.cpp,etc/Svc_Conf_l.cpp.diff (ACE_YY_DECL): - initialize ace_yy_cp and ace_yy_bp to 0 to avoid egcs 1.1 - warning about possible use before initialization. - -Wed Oct 7 23:47:29 1998 Alexander Babu Arulanthu - * ace/Asynch_IO.cpp: - * ace/Proactor.cpp : Fixed the problem with doing multiple - Asynch_Accepts. Thanks to James Hu for reporting this - problem. Thanks very much Irfan!!!, for helping me a lot in fixing - this one. - -Wed Oct 07 23:14:36 1998 Douglas C. Schmidt - - * ACE version 4.5.50 released. - -Wed Oct 7 21:44:20 1998 Douglas C. Schmidt - - * ace/Stream.h: Added a default value of 0 for both put() and - get(), which is more consistent with the underlying putq() and - getq() methods on ACE_Task. Thanks to Bob McWhirter - for this suggestion. - -Wed Oct 7 18:18:14 1998 Carlos O'Ryan - - * README: - * ace/config-irix6.x-g++.h: - * ace/config-irix6.x-common.h: - * ace/config-irix6.x-sgic++-nothreads.h: - Peter Nordlund kindly submitted a common - configuration file for IRIX 6.X that works with both g++ and SGI - MIPSPro 7.X - -Wed Oct 7 17:21:17 1998 Arturo Montes - - * ace/OS.{i,cpp}: FSU pthreads is draft6, but FSU in SCO is an - special port. The API is draft6 but return values is DRAFT7 - (really I am moving to STD). - -Wed Oct 07 09:30:00 CDT 1998 Chris Gill - - * ace/Functor.{cpp, h, i} - ace/Functor_T.{cpp, h, i} - ace/Makefile: - - Added ACE_Command_Base abstract base class and derived class - template ACE_Command_Callback to ACE to support the GOF Command - design pattern. - - * ace/Timer_Queue_Adapters.{cpp, h}: - - Added registration and deferred executiton of ACE_Command_Base - objects to ACE_Thread_Timer_Queue_Adapter. This is conditionally - compiled if the ACE_HAS_DEFERRED_TIMER_COMMANDS symbol is defined. - - * examples/Bounded_Packet_Relay/BPR_Drivers.{cpp, h} - examples/Bounded_Packet_Relay/BPR_Drivers_T.{cpp, h} - examples/Bounded_Packet_Relay/Makefile - examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{cpp, h} - examples/Bounded_Packet_Relay/bpr_thread.cpp: - - Changed example to use ACE_Command_Callback objects, modified event - handlers to register ACE_Command_Callback objects for deferred - excecution of timer cancellations and registrations. - -Wed Oct 07 02:37:58 1998 Douglas C. Schmidt - - * ACE version 4.5.49 released. - -Wed Oct 7 00:11:33 1998 Nanbor Wang - - * ACE-INSTALL.html: Added more information on using MFC with ACE, - some explanations about using run-time libraries and information - about VC6. - - * tests/version_tests/version_tests.dsw: Removed - MsgQueue_Notifications_Test.dsp and added - Message_Queue_Notifications_Test. - - * tests/*.dsp: Changed to use DLL version of run-time libraries - for static builds. Notice that user libraries are still linked - in statically. Only the run-time libraries are effected. - - * ace/README: Added information for ACE_USES_STATIC_MFC. - - * ace/config-win32-common.h: Re-structured MFC related macros - (_AFXDLL and _WINDLL) so that it allows us to use MFC in static - ACE libraries and the setting of MFC can propagate to - applications. By default, ACE uses MFC DLL if ACE_HAS_MFC=1. - If you want to use MFC as a static library, besides - ACE_HAS_MFC=1, also define ACE_USES_STATIC_MFC. Thanks to Jason - Milley for noticing the problem - of compiling static ACE library with MFC. - -Tue Oct 6 15:06:21 1998 Steve Huston - - * ace/Asynch_IO.cpp (ACE_Asynch_Accept_Handler): Removed the - version of the ctor with no args - it's equivalent to the one - with all defaulted args, and HP aCC complained. - - * ace/NT_Service.{h cpp i}: New class, ACE_NT_Service. This provides - a class and supporting macros to integrate NT Services into the - ACE framework at run-time. I'll work on getting an example into - the kit soon. - - * ace/ACE_Library.{mak mdp}: - ace/ace_dll.dsp, ace_lib.dsp: Added NT_Service files. - -Tue Oct 6 12:49:37 EDT 1998 James CE Johnson - - * docs/tutorials/006/client_handler.cpp - * docs/tutorials/006/page05.html - Susan Liebeskind discovered that invoking the baseclass - close() after handle_close() in Client_Handler::close() - causes the object to be destructed twice. I've removed - the call to the baseclass close(). She reports success - on Solaris, Dec and AIX. I've verified that Linux also - works fine with this fix. - -Tue Oct 06 09:53:22 1998 David L. Levine - - * ace/config-fsu-pthread.h,config-mit-pthread.h,config-mvs.h, - config-sco-5.0.0-mit-pthread.h,config-tandem.h,README: - removed ACE_HAS_YIELD_VOID_PTR because it's no longer used. - Thanks to Ossama for reporting this. - - * config-dgux-4.x-ghs.h,config-hpux-10.x.h,config-mit-pthread.h, - config-mvs.h,config-sco-5.0.0-mit-pthread.h,config-tandem.h,README: - removed ACE_LACKS_KEYDELETE because it's no longer used. Thanks to - Ossama for reporting this. - -Tue Oct 06 03:36:22 1998 Douglas C. Schmidt - - * ACE version 4.5.48 released. - -Tue Oct 06 02:53:28 1998 Douglas C. Schmidt - - * ACE version 4.5.47 released. - -Tue Oct 6 02:16:01 1998 Alexander Babu Arulanthu - - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_IO.cpp (handle_input): - * ace/Proactor.cpp: - In POSIX implementation of Asynch_Accept, We dont have to read - initial data to read on to the Message Block given to the - Asynch_Accept. So we dont use it at all. We get local and peer - address from using socket and pass back to the application. - -Mon Oct 05 23:58:16 1998 Douglas C. Schmidt - - * ACE version 4.5.46 released. - -Mon Oct 5 23:19:30 1998 Nanbor Wang - - * ace/OS.cpp (fork): Changed to use fork1 when ACE_HAS_STHREAD is - defined. Otherwise, file descriptors get messed up and socket - connections get lost after exec'ing a new program. Generally - speaking, you should not simply fork a multi-threaded program - without calling exec (). On pthread compliant platform, fork - does what fork1 does on solaris thread. - -Mon Oct 05 21:21:42 1998 Douglas C. Schmidt - - * ACE version 4.5.45 released. - -Mon Oct 05 15:59:55 1998 David L. Levine - - * ACE version 4.5.44 released. - -Mon Oct 05 15:23:04 1998 Douglas C. Schmidt - - * ACE version 4.5.43 released. - -Mon Oct 5 15:34:41 1998 James CE Johnson - - * docs/tutorials/002/handler.h: Added includes for INET_Addr.h, - SOCK_Stream.h and Reactor.h. Susan Liebeskind pointed out that - AIX gets confused in processing templates if these aren't present. - -Mon Oct 05 10:02:37 1998 David L. Levine - - * ace/config-chorus.h: added ACE_LACKS_TRUNCATE. Thanks - to Steve Kay for reporting this. - - * tests/Semaphore_Test.cpp: added some ifdefs so that it - builds cleanly with ACE_HAS_POSIX_SEM. - -Sun Oct 05 03:49:09 PDT 1998 James Hu - - * ace/Asynch_Accept.* - * ace/Asynch_IO.* - Made some small modifications to support passing in and - retrieving an ACT when performing asynchronous accept. - -Sun Oct 04 22:07:09 1998 David L. Levine - - * ace/config-fsu-pthread.h,config-hpux-10.x.h,config-lynxos.h, - config-mit-pthread.h,config-mvs.h,config-osf1-3.2.h, - config-osf1-4.0.h,config-sco-5.0.0-mit-pthread.h,config-tandem.h, - README: removed ACE_HAS_PTHREAD_GETSPECIFIC_DATAPTR, because it's - no longer used. Thanks to Ossama for reporting this. - - * ace/config-tandem.h,README: removed ACE_HAS_PTHREAD_YIELD_VOIDPTR, - because it's no longer used. It was commented out in - config-tandem.h, anyways. Thanks to Ossama for reporting this. - -Sun Oct 4 20:00:44 1998 Carlos O'Ryan - - * bin/auto_compile: - Fixed the regular expression to detect compile errors. - The user can pass extra arguments to GNU make, the arguments are - given as the script is invoked. - -Sun Oct 4 14:30:03 1998 Nanbor Wang - - * ace/TP_Reactor.cpp (handle_events): Made sure we never suspend - the without holding the . Otherwise, - depend on how an OS schedules ready threads, we may have a - Reactor that could never be woken up. This leads to a very - delicate race condition when other threads which need to modify - Reactor's state get block on the token (because they couldn't - wake up the reactor). These threads later block the - nofify_handler thread when it's ready to resume - - (notify_handle): Since we don't suspend the , - there's no need to resume it here. - -Sat Oct 3 13:11:48 1998 Carlos O'Ryan - - * bin/auto_compile: - Removed some of the tests, they were crashing more often than - not. - -Sat Oct 3 09:36:09 1998 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_proactor.cpp: Comments. - -Sat Oct 03 09:24:45 1998 Susan Liebeskind - - * ace/Task.h,Thread.h,Thread_Manager.h,Timer_Queue_Adapters.h - (activate,spawn,spawn_n): added THR_JOINABLE to THR_NEW_LWP - default flags. - - On the boxes which implement POSIX 1003.1.b (Solaris, Digital Unix) - threads spawned using default flags provided by those methods were, - and still are, created *joinable*. - - On the box which implements Draft 7 (AIX), the spawned threads were - *detached*. With this change, they'll be created *joinable*, - instead. - - This change ensures consistent behavior across all platforms. - -Sat Oct 03 09:04:44 1998 David L. Levine - - * ace/ACE.cpp (set_handle_limit): wrapped the final - return statement with #ifdef __sgi. Irix complains without - this return statement. DEC cxx (correctly) says that it's not - reachable. ACE_NOTREACHED won't work here, because it handles - both platforms the same. - - * include/makeinclude/wrapper_macros.GNU: with quantify=1 - on sparcs, add -record-register-window-traps to $(PRELINK). - Thanks to Andy for discovering this Quantify option, for sparcs. - -Fri Oct 2 23:43:51 1998 Carlos O'Ryan - - * ace/config-irix6.x-g++.h: - * ace/config-irix6.x-sgic++-nothreads.h: - * ace/OS.h: - IRIX puts in header of IRIX, it is only - relevant for the autoconf project. - - * ace/ACE.cpp: - Added an extra return to make IRIX compiler happy. - -Fri Oct 2 21:48:18 1998 Nanbor Wang - - * tests/Thread_Pool_Reactor_Test.cpp: Send the message length - before each message so we don't need to use time delay to - separate consecutive requests. - -Fri Oct 02 16:27:07 1998 Nanbor Wang - - * ace/Thread_Manager.cpp: ACEified some code. - (terminate): Do not register a thread as being terminated if it - is being joined by another thread. Just remove it from - Thread_Manager's thr_list_. - -Fri Oct 2 00:19:04 1998 Nanbor Wang - - * tests/Thread_Pool_Reactor_Test.cpp: Fixed explicit template - instantiation. - - * ace/Strategies_T.{h,i,cpp}: Removed classes - ACE_Thread_Pool_Strategy and ACE_Svc_Handler_Pool_Strategy. - - * tests/run_tests.{sh,bat}: Added Thread_Pool_Reactor_Test into - one-buttoned test scripts. - -Thu Oct 01 12:04:30 1998 Nanbor Wang - - * tests/Thread_Pool_Reactor_Test.cpp: Added a command line argument - parser. - -Thu Oct 1 08:51:00 1998 Douglas C. Schmidt - - * tests/Thread_Pool_Reactor_Test.cpp: Reformatted the - code a bit. - - * ace/ACE.cpp (max_handles): Added yet another fix for AIX. - Thanks to Chris Lahey for this. - -Thu Oct 01 01:05:49 1998 Nanbor Wang - - * tests/tests.dsw: - * tests/version_tests/version_tests.dsw: - * tests/Thread_Pool_Reactor_Test.{cpp,dsp}: Added a new test that - torture tests the new ACE_TP_Reactor. - -Thu Oct 01 00:09:35 1998 Irfan Pyarali - - * ace/ACE.cpp: Fixed max_handles(). - - * tests/Conn_Test: Removed template specialization for - INET_Addr.hash(). - - * ace/Addr.i (hash): - * ace/INET_Addr.i (hash): - - Finally gave up with template specialization hell and freak'in - broken compilers and simply added a hash() method to ACE_Addr - and ACE_INET_Addr. ACE_Addr::hash() simply return 0 and should - be overwritten by subclasses that can provide better hashing. - -Wed Sep 30 10:16:56 1998 Douglas C. Schmidt - - * ace/ACE.cpp: Modified max_handles() so that it goes the right - thing on platforms like AIX that don't have any predefined limit - on the number of handles. Thanks to Chris Lahey - for reporting this. - -Wed Sep 30 01:56:54 1998 Irfan Pyarali - - * ace/Strategies_T: - - - ACE_Refcounted_Hash_Recyclable::operator==(const T &rhs): - Added new method to prevent implicit type conversions. - - - Changed ACE_Hash_Addr::hash_i to return u_long instead of - size_t. This makes it similar to the return value from - hash(). - - - Added hash caching ability to ACE_Hashable. - - - Removed the use of ACE_Hash_Addr inside the - ACE_Cached_Connect_Strategy. This allows us to reduce - implicit type conversions inside connect_svc_handler(). - - Users are now required to specialize - ACE_Refcounted_Hash_Recyclable::hash_i (void) instead - of ACE_Hash_Addr::hash_i(const ACE_INET_Addr&addr) - - * tests/Conn_Test.cpp: Changed template specialization of - ACE_Hash_Addr::hash_i(const ACE_INET_Addr&addr) - to ACE_Refcounted_Hash_Recyclable::hash_i (void). - - * ace/OS.cpp (open): Fixed a couple of things that were broken - with respect to when the SetFilePointer was called and when lock - was released. Also fixed the UNICODE version of open(). BTW, - these functions had to be moved from OS.i to OS.cpp since the - ACE_Managed_Object is not visible from OS.i. - -Wed Sep 30 02:29:48 1998 Carlos O'Ryan - - * performance-tests/TTCP/ACE-C++/Makefile: - * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp: - Hacked so it would compile, don't know anything further than - that. - -Tue Sep 29 21:55:52 1998 Irfan Pyarali - - * ace/ace.dsw: Removed Connector.cpp from the compile list since - it is a files with template classes only. - -Tue Sep 29 21:14:02 1998 Nanbor Wang - - * ace/OS.i (open): Grab a lock from the Object_Manager when - O_APPEND is defined to simulate atomic behavior on most UNIX - platforms. Thanks to Irfan. - -Tue Sep 29 19:16:57 1998 James CE Johnson - - * docs/tutorials/007/thread_pool.h - * docs/tutorials/007/thread_pool.cpp - Added virtual methods for open() and close() that match the - baseclass. This will keep some compilers from complaining about a - partial-overload attempt. Thanks to Bob McWhirter for catching this. - -Tue Sep 29 16:13:10 1998 Irfan Pyarali - - * ace/Strategies_T: - * ace/Connector: - - Added accessors for the strategy. - -Tue Sep 29 14:04:49 EDT 1998 James CE Johnson - - * docs/tutorials/013/page08.html: Removed link to message_queue. - Thanks to Jeff Hellzen for pointing this out. - -Tue Sep 29 11:05:04 1998 David L. Levine - - * ace/README: removed ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R - because it is no longer used. Thanks to Ossama for reporting this. - - * ace/config-fsu-pthread.h,config-mit-pthread.h,config-mvs.h, - config-sco-5.0.0-mit-pthread.h,config-tandem.h,README: - removed ACE_HAS_PTHREAD_DSTATE_PTR because it is no longer used. - Thanks to Ossama for reporting this. - -Mon Sep 28 20:35:49 1998 Sergio Flores - - * ace/Containers_T.h: - * ace/Containers_T.cpp: Added begin () and end () to - ACE_Unbounded_Queue. - -Mon Sep 28 16:06:05 1998 David L. Levine - - * ace/OS.*,Object_Manager.{h,cpp}: removed ACE_HAS_TSS_EMULATION's - support for ACE_HAS_NATIVE_KEYS. Now, if ACE_HAS_TSS_EMULATION - is used and ACE_HAS_THREAD_SPECIFIC_STORAGE is #defined, then - the ACE TSS emulation will use one native TSS key. - - ACE_TSS_EMULATION may be useful even on platforms that - have native thread specific storage. It offers these - advantages: - - 1) ACE's TSS emulation offers a configurable number of TSS - keys, via ACE_DEFAULT_THREAD_KEYS. Most (all?) native TSS - implementations have a fixed number of keys. LynxOS 3.0.0, - for example, only has three keys available to applications. - - ACE_DEFAULT_THREAD_KEYS defaults to 64, to match the - number of native keys on Windows NT. - - 2) ACE's TSS emulation recycles deleted keys. Some native TSS - implementations, such as POSIX Draft 4, POSIX Draft 6, and - Solaris, do not allow deletion of TSS keys. Therefore, - unused keys cannot be recycled. - - 3) ACE's TSS emulation calls destructors on TSS objects in the - main thread. Solaris' native TSS, for example, does not. - - There is one known drawback to using ACE's TSS emulation: it is - slower than using native TSS. The performance penalty is - probably negligible for most applications, however. It involves - just an additional function call, an array index, and three numeric - comparisons beyond the native TSS call. The function call is - _not_ a virtual function call. (On MVS, there's an additional - memcpy of the TSS key with TSS emulation.) - - TSS emulation is enabled by default in the ACE configurations - for VxWorks, pSOS, and LynxOS. - - Many thanks to Arturo Montes for - expanding TSS emulation to platform that have native TSS. - -Sun Sep 27 20:12:13 EDT 1998 James CE Johnson - - * docs/tutorials/index.html: Linked in Tutorial 13 - -Sun Sep 27 18:53:25 1998 Carlos O'Ryan - - * tests/Map_Manager_Test.cpp: - Instead of clearing the capacity and size in the - free_search_structure() method we do it on the close() - method. The first method is also used in other places... - -Sun Sep 27 18:25:57 1998 David L. Levine - - * ace/OS.i (readdir_r): added __USE_POSIX test for three-arg - ::readdir_r (). Thanks to james@tsunami.com for providing - the patch. - -Sun Sep 27 09:35:04 1998 James CE Johnson - - * docs/tutorials/013/* - Completed Tutorial 013! The code is up to date and compilable on - RedHat Linux with egcs 1.1. It may need some template help on other - platforms. The HTML is done and in synch with the code. - -Sun Sep 27 01:52:36 1998 Carlos O'Ryan - - * ace/INET_Addr.cpp: - The get_host_name() method was returning the first name, and not - looking up in the alias list for the right match with the - address. - -Sun Sep 27 00:18:48 1998 Nanbor Wang - - * ace/Makefile: Updated dependency. - - * ace/OS.cpp (invoke): - * ace/Thread_Manager.cpp (ace_thread_manager_adapter): - (ACE_Thread_Exit::instance): Removed conditional macro - ACE_HAS_PTHREAD_SIGMASK so the Thread_Exit instance can be place - in TSS. This was guarded by ACE_HAS_PTHERAD_1003_DOT_3 which - later merged with ACE_HAS_PTHERAD_SIGMASK. However, the - origianl intension of this condition was to fix a bug in Xavier - pthread implementation. The effect of merging the two macros - forces ACE_Thread_Exit be allocated from stacks which, in turn, - prevent threads from exiting properly when pthread_cancel is - used. - - Linux is the only platform that I know which uses Xavier thread - library. The bug has apparently been fixed. If your platform - segfaults while spawning threads, please let me know. Thanks to - Chris Gill for noticing the abnormal behavior when calling - ACE_Thread::thr_cancel. - -Sat Sep 26 23:20:52 1998 Alexander Babu Arulanthu - - * ace/Proactor.cpp: Fixed the g++ warnings. - -Fri Sep 25 23:19:52 1998 David L. Levine - - * ace/Sched_Params.cpp: use both ACE_HAS_STHREADS and - ACE_HAS_PRIOCNTL. With just ACE_HAS_PRIOCNTL, the - min/max priority values weren't right on DU 4.0. With - this change, we're back to the strict POSIX interface - on DU 4.0, and SunOS if ACE_HAS_STHREADS is not #defined. - -Fri Sep 25 21:58:35 1998 Irfan Pyarali - - * ace/ACE.cpp (set_handle_limit): Added appropriate return value. - -Fri Sep 25 22:10:38 1998 Carlos O'Ryan - - * ace/Map_Manager.cpp: - Map_Manager::close() did not reset the capacity or current size - of the map. - -Fri Sep 25 18:24:17 1998 Darrell Brunsch - - * ace/Proactor.{h,cpp}: Had to allow the definition of - POSIX_COMPLETION_STRATEGY for the do-nothing constructor on - NT. - -Fri Sep 25 18:07:19 EDT 1998 James CE Johnson - - * A few more minor changes to docs/tutorials/013. With luck, the - HTML part will be done this weekend! - -Fri Sep 25 14:51:54 1998 Alexander Babu Arulanthu - - * ace/Asynch_IO.h: - * ace/Asynch_IO.cpp: - * ace/Proactor.h: - * ace/Proactor.cpp: - Implemented Asynch_Accept to work for AIO_CONTROL_BLOCKS strategy of - completion notification. - - Defined an auxillary Accept_Handler called ACE_AIO_Accept_Handler in - addition to the ACE_Asynch_Accept_Handler. ACE_AIO_Accept_Handler - holds the notification pipe and does a read on it to handle the - coming from Asynch_Accept_handler. - - THANKS to Doug and Irfan for suggesting this 'notification pipe' based - implementation for AIO_CONTROL_BLOCKS strategy, so that Proactor will - work on platforms where POSIX4 RT_Signals are broken (Solaris 2.6 !) - - Note : Proactor uses AIO_CONTROL_BLOACKS strategy by default on - POSIX4 platforms. Call the constructor with RT_SIGNALS to enable - Real Time singal implementation. - - This should become very easier when we finish organizing these - files according to the Bridge pattern. - -Fri Sep 25 12:40:45 1998 David L. Levine - - * ace/config-sunos5.{5,6}.h: removed #define/#undef of - ACE_THR_PRI_FIFO_DEF. They're no longer needed with the - hard-coded ACE_THR_PRI_* values for Solaris in ace/OS.h. - - * ace/OS.i: removed carriage returns. Thanks to Darrell - for noticing it. - - * tests/Handle_Set_Test.cpp: removed ACE_Node - template instantiation because it conflicted with the - ACE_Node instantiation in ace/Stats.cpp. - - * docs/ACE-porting.html: updated "auto configure" link. Thanks - to Ossama for reporting this. - - * ace/ACE.cpp (set_handle_limit): on platforms with - ACE_LACKS_RLIMIT or ! RLIMIT_NOFILE, don't use - ACE_NOTSUP_RETURN if the new_limit is <= the cur_limit. - On those platforms, the limit can't be changed anyways, - and the request was _not_ to increase the limit. So, - it's a no-op; just return 0. - -Fri Sep 25 12:15:00 1998 Irfan Pyarali - - * ace: The following ACE_TRACE calls being made during the - creation of the ACE_Log_Msg instance. The ACE_TRACE calls then - try to create the ACE_Log_Msg instance which then ends up - executing the ACE_TRACE's. Etc, etc, etc... - - Here are the methods with the ACE_TRACEs that I commented out to - get ACE to run: - - ACE_IPC_SAP::~ACE_IPC_SAP - ACE_SOCK::ACE_SOCK - ACE_SOCK::~ACE_SOCK - ACE_SOCK_IO::ACE_SOCK_IO - ACE_SOCK_IO::~ACE_SOCK_IO - ACE_SOCK_Stream::ACE_SOCK_Stream - ACE_SOCK_Stream::~ACE_SOCK_Stream - ACE_Thread::keycreate - ACE_Thread::setspecific - ACE_Thread::getspecific - - Thanks to "Patrick J. McNerthney" for this bug - report. - -Fri Sep 25 10:10:12 1998 Steve Huston - - * ace/OS.i (cond_timedwait): Add EINTR to the list of errno values - that get changed to ETIME on wait timeout. EINTR is from LynxOS. - Thanks to David Levine for this fix. - - * tests/Semaphore_Test.cpp: Remove the assertion that a timed out - semaphore will return EINTR for ACE_HAS_PTHREADS_DRAFT4. All - platforms expect ETIME, which is normalized in - ACE_OS::cond_timedwait. - -Thu Sep 24 22:31:30 1998 David L. Levine - - * ace/OS.h: hard-coded the ACE_THR_PRI_* values on suns. - SunOS 5.6 could use sched_get_priority_min/max () for FIFO - and RR. But for OTHER, it returns negative values, which - can't be used. And, sched_get_priority_min/max () aren't - supported in SunOS 5.5.1. It would really be helpful - if SunOS defined PRI_FIFO_MIN, etc., in sched.h, but - it doesn't, probably because its process scheduling is - so flexible. Thanks to Russ Noseworthy - for helping to figure this - out. - -Thu Sep 24 17:54:26 1998 Carlos O'Ryan - - * ace/Asynch_IO.cpp: - Removed duplicate instantiation of a template, IRIX does not - like this. Thanks to Ossama Othman - because his configure script - detected the Asynch I/O calls on IRIX and enabled this ACE - code. - -Thu Sep 24 16:28:32 1998 Irfan Pyarali - - * ace/config-win32-common.h: ACE_HAS_TEMPLATE_TYPEDEFS was defined - for VC4.1 and VC4.2. Template typedefs in Strategies_T.cpp - broke the VC4.2 compiler. Therefore, ACE_HAS_TEMPLATE_TYPEDEFS - was deprecated for VC4.1 and VC4.2. I also checked VC5.0 and it - didn't work. Therefore, for the time being, none of the VC - compilers support ACE_HAS_TEMPLATE_TYPEDEFS. I didn't try - VC6.0. - - * ace/Strategies_T.cpp (check_hint_i ): Changed the signature so - that it is identical to find_or_create_svc_handler_i(). For - some strange freakin reason, the VC4.2 could not gork - check_hint_i() but was able to gork - find_or_create_svc_handler_i. - - * ace/ACE_Library.mdp: Added Select_Reactor_Base.cpp and - Container.cpp to make ACE build with VC4.2. - -Thu Sep 24 13:30:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/README - examples/Bounded_Packet_Relay/Bounded_Packet_Relay.{dsp,dsw} - - Updated README, added in MSVC++ project, workspace files. - -Thu Sep 24 12:48:58 1998 David L. Levine - - * ace/Containers_T.cpp (ACE_{Bounded,Fixed}_Set_Iterator::done), - ace/Map_Manager.cpp (ACE_Map_Iterator_Base::done): - added ACE_CAST_CONST to the static cast. Thanks to Ossama for - reporting a compilation failure on Sun C++ 4.2/Solaris 2.6 - without it. - - * ace/High_Res_Timer.cpp (global_scale_factor): on Linux, - only use BogoMips if the CPU is an alpha. It would also - work directly on Pentium Pro, but not other Pentiums. With - a little effort, it could be made to work there, see the - BogoMips mini-HOWTO. Thanks to Ossama for enlightening me - on this corner of Linux. - - * tests/Upgradable_RW_Test.cpp (main): delete dynamically - allocated reader_tasks and writer_tasks, and arrays, at end of test. - -Thu Sep 24 09:17:32 1998 Steve Huston - - * ace/Containers_T.h: Added #include "ace/Containers.h" - AIX xlC - needs this when instantiating templates. - - * ace/Dirent.cpp: Do the HP check using only compiler-defined - preprocessor macros since config.h isn't included. - - * ace/OS.i: Fixed comments that referenced DCE threads. - Changed readdir_r #ifdefs to handle pthreads drafts 4 and 6 - the same, and split HP-UX 10.x off as a non-conformant player. - Thanks to David Levine for sorting this out with LynxOS. - - * ace/Thread_Manager.cpp: Changed occurrences of - ACE_HAS_DCE_DRAFT4_THREADS to ACE_HAS_PTHREADS_DRAFT4. Corrected - a call to pthread_detach. Changed a couple of calls to - pthread_detach on HP-UX 10.x to duplicate the thread handle before - the call because pthread_detach on HP-UX 10.x clears the handle - and it was still needed. - On AIX, xlC doesn't match the call to - ACE_Thread::join(ACE_hthread_t, void ** = 0) correctly when the - second arg is specified. So call the 3-arg variety on AIX, knowing - that the second arg is ignored underneath on pthreads. - -Wed Sep 23 22:13:04 1998 James CE Johnson - - * docs/tutorials/006/server.cpp: - Wrapped !defined(ACE_HAS_GNU_REPO) around the explicit template - instantiation. - - * docs/tutorials/005/client_handler.cpp (handle_input): - * docs/tutorials/006/client_handler.cpp (svc): - * docs/tutorials/006/client_handler.cpp (handle_input): - * docs/tutorials/007/client_handler.cpp (svc): - * docs/tutorials/007/client_handler.cpp (handle_input): - Use ACE_OS::memset() instead of direct call to memset() - - * docs/tutorials/005/Makefile: - * docs/tutorials/007/Makefile: - Touch .depend if it does not exist. - -Wed Sep 23 22:03:19 1998 Arturo Montes - - * ace/config-sco-5.0.0.h: added ACE_LACKS_READDIR_R. - -Wed Sep 23 14:26:44 EDT 1998 James CE Johnson - - * docs/tutorials/005/server.cpp - docs/tutorials/006/server.cpp - docs/tutorials/007/server.cpp - docs/tutorials/008/Makefile - docs/tutorials/009/Makefile - docs/tutorials/013/Makefile - docs/tutorials/013/block.cpp - docs/tutorials/013/block.h - docs/tutorials/013/data.h - docs/tutorials/013/message_queue.cpp - docs/tutorials/013/mld.cpp - docs/tutorials/013/mld.h - docs/tutorials/013/page01.html - docs/tutorials/013/page02.html - docs/tutorials/013/page03.html - docs/tutorials/013/page04.html - docs/tutorials/013/task.cpp - docs/tutorials/013/task.h - docs/tutorials/013/work.cpp - docs/tutorials/013/work.h - - Fixed explicit template instantiaions in - tutorials 5, 6, 7. - - Fixed a nasty bug in 9's Makefile (and removed - similar comment in 8's Makefile) - - Preliminary version of 013 committed. The code - worked before I began "optimizing" and should work - again in a couple of days. The HTML is not yet - done but will be by the weekend (I hope). - -Wed Sep 23 12:15:21 1998 David L. Levine - - * ace/Stats.*: modified standard deviation calculation to - help avoid overflow. Instead of keep running totals of - the sum and sum of squares, it stores each sample in an - dynamic structure. Then, to calculate the standard - deviation, each sample is compared with the mean. - - * ace/Sched_Params.cpp: replace ACE_HAS_STHREADS with - ACE_HAS_PRIOCNTL. Thanks to Ossama for pointing this out. - - * ace/Synch.h: replaced #endif /* ACE_HAS_STHREADS */ with - #endif /* 0 */. - - * performance-tests/TTCP/{ACE-C++,C,Orbix}/Makefile: removed - old Quantify LINK_COMMANDs. They don't look like they're used - anywhere. - - * include/makeinclude/wrapper_macros.GNU: removed -DACE_QUANTIFY - and -Dquantify, with quantify=1, because they're no longer used. - - * ace/OS.h,README: added ACE_LACKS_CMSG_DATA_{MACRO/MEMBER} support. - It will be used by autoconf, for Linux libc5 (pre-libc). Thanks - to Ossama for supplying it. - - * ace/config-g++-common.h: disable ACE_HAS_TEMPLATE_SPECIALIZATION - with g++ 2.9. Thanks to Andrew G. Harvey for a - problem with compiling ace/Filecache.cpp with g++ 2.9 on SunOS 5.5.1. - - * tests/Upgradeable_RW_Test.h: replaced ACE_Thread_Mutex with - ACE_SYNCH_MUTEX. Thanks to Ossama for reporting this. - - * ace/config-linux-common.h: commented out the msg_accrights(len) - #defines. Thanks to Ossama for noticing that they just don't - look right. They no longer appear to be necessary on Linux. - -Wed Sep 23 11:30:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers_T.{h,cpp} - - Fixed memory leaks uncovered by Purify, added large high water mark - for packet relay's underlying message queue. - -Wed Sep 23 11:28:13 1998 Carlos O'Ryan - - * bin/Process_Unix.pm: - If the exec() call fails we report the name and the arguments of - the program. - -Wed Sep 23 09:27:21 1998 Steve Huston - - * ace/Dirent.cpp: Fixed aCC workaround from 22-Sep so that only - non-g++ compilers on HP-UX see it. - -Wed Sep 23 02:21:24 1998 Douglas C. Schmidt - - * ACE version 4.5.42 released. - -Tue Sep 22 21:34:31 1998 Steve Huston - - * ace/Dirent.cpp: Make aCC quit yacking about an empty translation - unit. - - * ace/OS.i: Fix up the conditions for readdir_r on differing pthreads - drafts. - - * ace/config-aix-4.2.x.h: Added ACE_HAS_DIRENT. - -Tue Sep 22 21:00:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers_T.{h,cpp} - examples/Bounded_Packet_Relay/bpr_thread.cpp: - - More fixes from testing on NT, added more logging features. - -Tue Sep 22 17:07:17 1998 Nanbor Wang - - * tests/Message_Queue_Notifications_Test.cpp (Watermark_Test): - Repositioned a comma so it compiles on non-threaded platforms. - Thankd to Ossama for noticing this. - -Tue Sep 22 17:20:53 1998 James Hu - - * ace/Containers_T.{h,i}: - Added a remove method to the ACE_DLList_Iterator. This is - needed since ACE_DLList is actually an abstraction over - ACE_Double_Linked_List, so the user of ACE_DLList does not hold - the address of the "real" node that ACE_Double_Linked_List is - managing. - -Tue Sep 22 16:07:53 1998 Steve Huston - - * bin/Makefile: Will now only build envinfo if make is invoked - with "envinfo=1". The difference is needed to allow clone to be - built before ACE has been built. - -Tue Sep 22 13:58:06 1998 Carlos O'Ryan - - * ace/config-irix6.x-g++.h: - Added some missing defines, thanks to JM Strauss - for pointing them out. Also fixed a - test for the N32 ABI, it said _NABI32 and should be _ABIN32. - -Tue Sep 22 11:42:17 1998 David L. Levine - - * ace/config-lynxos.h: added ACE_HAS_POWERPC_TIMER with - __powerpc__, but commented it out because it requires an OS patch. - - * ace/OS.i (fstat): put a :: in front of the call to the - system fstat if it's not defined as a macro. Thanks to - Ossama for reporting that MM_Shared_Memory_Test failed - otherwise. - -Tue Sep 22 10:58:04 1998 Ossama Othman - - * ace/OS.i (ACE_cond_t::waiters): only define this function if - ACE_HAS_THREADS. - - Testing the autoconf integration on a Linux libc5 system w/o - threads caused me problems since ACE_LACKS_COND_T gets - defined by the configure script automatically since no - condition variable support was found. The ACE_cond_t class - appears to only get defined if ACE_HAS_THREADS is defined, - otherwise ACE_cond_t is typedefed to an int. For - this reason, I thought that it would be a good idea to make - the above modification to prevent compile time errors on - platforms without threads and when ACE_LACKS_COND_T is - defined on those platforms. - -Tue Sep 22 03:09:07 1998 Douglas C. Schmidt - - * ACE version 4.5.41 released. - -Tue Sep 22 00:31:26 1998 Douglas C. Schmidt - - * ace/Log_Record.cpp (print): Make sure that the process id and - timestamp are fixed width. Thanks to Valery Arkhangorodsky - for this fix. - -Mon Sep 21 22:54:44 1998 Douglas C. Schmidt - - * examples/Bounded_Packet_Relay: Removed a gratuitous - parameterized type which was causing problems for SunC++. - -Mon Sep 21 21:47:12 1998 David L. Levine - - * ace/README: added ACE_HAS_PURIFY and ACE_HAS_QUANTIFY. - - * include/makeinclude/wrapper_macros.GNU: added ACE_HAS_PURIFY - and ACE_HAS_QUANTIFY support. We should use these consistently. - In addition, added -I support for Purify and Quantify. - This support should no longer appear in individual Makefiles. - - * ACE-INSTALL.html: added paragraph on Purify/Quantify support - details, i.e., they must be on your PATH, and ACE puts the - instrumented libraries below /tmp by default. - -Mon Sep 21 20:46:00 1998 Nanbor Wang - - * ace/Containers_T.cpp (ACE_Double_Linked_List): Changed - dynamic_cast to static_cast. - -Mon Sep 21 18:35:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers_T.{h,cpp} (new) - examples/Bounded_Packet_Relay/bpr_thread.cpp: - - Factored out templates into separate files, fixed initialization, - concurrency, and deadlock problems found in NT testing. - -Mon Sep 21 18:27:19 1998 Irfan Pyarali - - * tests/Conn_Test.cpp: g++ cannot gork templates typedefs. - -Mon Sep 21 15:48:34 1998 Douglas C. Schmidt - - * ace/Acceptor: It's now possible to select if you want to reuse - the PEER_ACCEPTOR addr. Thanks to Chuck Gehr for suggesting - this. - -Mon Sep 21 15:00:34 1998 Nanbor Wang - - * ace/Thread_Manager.{h,cpp} (join): Allow passing back of thread's - exit status of the thread being joined. - -Mon Sep 21 11:24:33 1998 Douglas C. Schmidt - - * docs/ACE-categories.html (HREF): Updated the links to ace/ and - man/ since we moved the file around. Thanks to Byron Harris for - reporting this. - -Mon Sep 21 10:22:17 1998 Steve Huston - - * ace/Select_Reactor_T.cpp (handle_error): Check handles for all - errors (not just EBADF) on Win32, in addition to MVS. Thanks - to Xu Yifeng for this fix. - -Mon Sep 21 01:27:19 1998 Irfan Pyarali - - * ace/Strategies_T.cpp (find_or_create_svc_handler_i): g++ cannot - gork templates... - - * tests/Conn_Test.cpp: Fixed template instantiations. - - * ace/Strategies_T.cpp (ACE_Cached_Connect_Strategy): New methods - find_or_create_svc_handler_i and check_hint_i to simplify - connect_svc_handler. Also added _i methods to implement - non-locking versions. - - * ace/Strategies.h (ACE_Connection_Recycling_Strategy): - New methods: mark_as_close and cleanup_hint. - - * ace/Strategies: Added three new classes: ACE_Recyclable, - ACE_Hashable, and ACE_Refcountable. Also added - ACE_Refcounted_Hash_Recyclable. Deprecated ACE_Recyclable and - ACE_Hash_Recyclable - - * ace/Svc_Handler.h (cleanup_hint): Added new method. This can be - used by users when they are through with using the svc_handler - as a hint. - -Mon Sep 21 00:40:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp} - examples/Bounded_Packet_Relay/bpr_thread.cpp - examples/Bounded_Packet_Relay/README: - - Reorganized construction of input and output device objects - and the relay object, cleaned up readme file. - -Sun Sep 20 22:01:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/BPR_Drivers.h: - - Made Bounded_Packet_Relay_Driver::display_menu (void) pure virtual: - now it all compiles *and* links. - -Sun Sep 20 21:49:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp} - - Fourth checkin of bounded packet relay example: compiles. - -Sun Sep 20 20:41:29 1998 Nanbor Wang - - * ace/Acceptor.{h,cpp}: Added an extra argument to constructors of - ACE_Strategy_Acceptor and open method so that we can accept only - one connection request every time handle_input is called. - -Sun Sep 20 20:30:36 1998 Marina Igorevna Spivak - - * ace/OS.h : added ACE_GUARD_THROW, ACE_GUARD_THROW_RETURN, - ACE_NEW_TRY_THROW, ACE_NEW_TRY_THROW_RETURN macros to utilize - new exceptions macros. - -Sun Sep 20 19:18:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp} - examples/Bounded_Packet_Relay/README - - Third checkin of bounded packet relay example, - addressed remaining coding style issues. - (very rough, still does not compile) - -Sun Sep 20 16:38:17 1998 Nanbor Wang - - * ace/Thread_Manager.i (get_next): Changed to use static_cast. - - * ace/Thread_Manager.cpp: Shielded off terminated_thr_list_ from - compilation on VxWorks. Thanks to David for noticing this. - -Sun Sep 20 12:17:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp} - - Second checkin of bounded packet relay example, - addressed several coding style issues. - (very rough, still does not compile) - -Sun Sep 20 11:25:52 1998 David L. Levine - - * ace/OS.h: with ACE_HAS_TSS_EMULATION, use u_long instead of - u_int for ACE_thread_key_t. This avoids overload ambiguity - on platforms that typedef pthread_key_t to u_int. We'll be - in trouble if we try on one that uses u_long. In that case, - we could try u_short, or added an ACE_HAS. - - * ace/Thread_Manager.i (register_as_terminated): neutered on VxWorks, - so that it will compiled. - - * tests/SOCK_Connector_Test.cpp (host_is_up): don't define - this function ifdef ACE_LACKS_GETHOSTENT, because it isn't - used in that case. - -Sat Sep 19 14:29:56 1998 Douglas C. Schmidt - - * ace/OS.i (fstat): Removed the "::" in front of the fstat() call - since it's implemented as a macro on some platforms. Thanks to - Frank Adcock for reporting this. - - * examples/Bounded_Packet_Relay: Updated the coding style. - -Sat Sep 19 14:06:52 1998 Darrell Brunsch - - * apps/JAWS/PROTOTYPE/JAWS/IO.cpp: Fixed typo. - - * apps/JAWS/PROTOTYPE/JAWS/jaws.dsp: - * apps/gperf/src/gperf.dsp: - * ace/ace_dll.dsp: - * netsvcs/clients/Naming/Client/Client_Test.dsp: - * netsvcs/lib/netsvcs.dsp: - Changed behavior of all DLL projects and utilities (like - gperf) to put the dll and executables in $ACE_ROOT/bin. - - * ace/config-win32.h: ACE_HAS_GPERF is back. - - * ACE-INSTALL.html: On NT, $ACE_ROOT/bin should now be in - your path instead of $ACE_ROOT/ace. - -Sat Sep 19 12:27:31 1998 Irfan Pyarali - - * ace/Asynch_IO.cpp: thread_function() is only for UNIX. - -Sat Sep 19 10:43:41 1998 Alexander Babu Arulanthu - - * ace/Asynch_IO.cpp (open): Fixed the build errors with WIN32. - -Sat Sep 19 09:02:00 CDT 1998 Chris Gill - - * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp} - examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp} - examples/Bounded_Packet_Relay/bpr_thread.cpp - examples/Bounded_Packet_Relay/Makefile - examples/Bounded_Packet_Relay/README: - - First checkin of bounded packet relay example - (very rough, does not even compile yet) - -Sat Sep 19 00:42:53 1998 Alexander Babu Arulanthu - - * ace/Asynch_IO.cpp: Fixed NT warnings (hopefully :-) - -Fri Sep 18 22:50:21 1998 Nanbor Wang - - * ace/Thread_Manager.{h,i,cpp}: Added a join method to reclaim - OS/ACE resources that are used to managed thread object. I - encourage all ACE programmers to use ACE_Thread_Manager::join to - wait for threads spawned by ACE_Thread_Manager. It is more - portable than ACE_Thread (most significantly, wrt resource - management.) - (wait_grp,wait_task): Improved and corrected the - implementations. These two methods now also clean up resources - used by threads that has already terminated when the calls get - invoked. - - Changed the terminated_thr_queue_ to terminated_thr_list_ which - is now a double-linked list. This change allows us to - gather/cleanup infomation of threads belong to same group/task - in one pass. - - ACE_Thread_Manager::exit now tests the thread status to see if - ACE_THR_JOINING is set or not. If set, it means the thread is - being joined by join/wait_grp/wait_task and avoid double - removing the thread resources from OS. - - * ace/OS.h (ACE_Thread_State): Added ACE_THR_JOINING to identify - threads that are being joined by the Thread Manager. - - * ace/Container_T.{h,cpp} (ACE_Double_Linked_List): Added several - dynamic_cast in several places so we can generate code for both - base class and derived class. - (ACE_Double_Linked_List_Iterator): Added a method - "advance_and_delete" to allow removing double-linked list - element while iterating thru the list. The design is very - intrusive and you should know what you are doing before using - the method. Notice that ACE_Double_Linked_List is _not_ a - general purpose Container class. - - * tests/run_tests.bat: Added DLList_Test. - -Fri Sep 18 18:06:19 1998 Alexander Babu Arulanthu - - * ace/Asynch_IO.h: - * ace/Asynch_IO.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - Implemented Asynch_Accept for POSIX4 systems, by having only one - thread doing . Asynch_Accept_Handler has been - changed to act as Event Handler now. No problem of having threads - blocking on the now. Thanks to Irfan for this idea. - -Fri Sep 18 13:26:50 1998 David L. Levine - - * tests/High_Res_Timer_Test.cpp (check): raised success - threshold from 10 to 25 percent. Ossama saw just over - 10 percent on an Linux box, not surprising. Thanks to - him for reporting it. - - * ace/SOCK_Dgram_Mcast.cpp (unsubscribe): on other than ACE_WIN32, - added ACE_UNUSED_ARGs for protocol_family and protocol. Thanks - to Peter Liqun Na for reporting this. - - * ace/OS.cpp (ACE_TSS_Emulation_cleanup): added ACE_UNUSED_ARG (ptr). - - * bin/make-release: enter version number(s) into BUG-REPORT-FORM. - Thanks to Steve for this suggestion. - -Fri Sep 18 01:53:38 1998 Douglas C. Schmidt - - * ACE version 4.5.40 released. - -Fri Sep 18 01:51:46 1998 Douglas C. Schmidt - - * ace/ACE (open_temp_file): Changed the signature of this method - to take a const char * rather than a char *. - -Fri Sep 18 00:07:31 1998 Alexander Babu Arulanthu - - * ace/ACE.h (ACE): - * ace/ACE.cpp (open_temp_file): Added this method to do open for - the temp files, so that they will get deleted when they are - closed. - Thanks to Nanbor and Carlos. - -Thu Sep 17 23:01:50 1998 David L. Levine - - * ace/Containers.i: resurrected the file properly. - - * ace/Containers.i (~ACE_DLList_Node): removed extraneous ; - following function definition. - -Thu Sep 17 22:44:17 1998 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: If the client - doesn't connect to the server, make sure to shut down the test - gracefully, rather than getting a segfault. Thanks to - Margherita Vittone Wiersma for - reporting this. - -Thu Sep 17 22:33:00 1998 James CE Johnson - - * docs/tutorials/index.html - docs/tutorials/templates.html - - Added templates.html to discuss issues surrounding manual vs - automatic template instantiation. - -Thu Sep 17 20:01:33 1998 Nanbor Wang - - * tests/tests.dsw: - * tests/version_tests.dsw: - * tests/[version_tests/]High_Res_Timer_Test.dsp: - * tests/[version_tests/]DLList_Test.dsp: Added new project files. - -Thu Sep 17 19:27:11 1998 David L. Levine - - * ace/OS.cpp (TSS_base,some ACE_PSOS_Time_t functions): - removed ACE_INLINE. - - * examples/Shared_Malloc/test_malloc.cpp (gen_size): cast - &seed to unsigned long first, to avoid warning about - narrowing on Alphas (cxx/DU 4.0). - -Thu Sep 17 18:51:08 1998 Carlos O'Ryan - - * examples/Reactor/Multicast/server.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: - Revert back to iovec instead of ACE_IO_Vector. - -Thu Sep 17 18:33:19 EDT 1998 James CE Johnson - - * docs/tutorials/002/server.pp - - Added necessary templates for explicit instantiation. - Thanks to Krishna Padmasola for providing the proper code - and to Clinton Carr for reminding me to do it! - -Thu Sep 17 16:30:00 1998 Carlos O'Ryan - - * This comments were lost in a previous commit. - - * ace/OS.h: - * ace/OS.i: - * ace/ACE.cpp: - * ace/ACE.h: - * ace/DEV_IO.cpp: - * ace/DEV_IO.h: - * ace/DEV_IO.i: - * ace/FIFO_Send_Msg.cpp: - * ace/FILE_IO.cpp: - * ace/FILE_IO.h: - * ace/FILE_IO.i: - * ace/LSOCK.cpp: - * ace/LSOCK_Stream.cpp: - * ace/LSOCK_Stream.h: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram.h: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/SOCK_Dgram_Bcast.h: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast.i: - * ace/SOCK_IO.cpp: - * ace/SOCK_IO.h: - * ace/SOCK_IO.i: - * ace/SPIPE_Stream.cpp: - * ace/SPIPE_Stream.h: - * ace/SPIPE_Stream.i: - Moved back to iovec instead of ACE_IO_Vector. Since this - structure is defined by ACE we can make it binary compatible - with the WSABUF structure (yet preserve the names of the UNIX - iovec struct). This allow us to simply pass arrays of iovec to - routines expecting WSABUF*. - But Win32 does not provide any functions to go scatter-gather - over files, so this is only used for sockets, new methods: - ACE_OS::sendv() and ACE_OS::recvv() were added for this - purpose, the old emulation is used for the other classes. Users - writing to higher-level components (such as ACE_SOCK or - ACE_SOCK_Dgram) will benefit from this without any changes to - their code. - - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram.h: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/SOCK_Dgram_Bcast.h: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast.i: - Added the implementation for some send() variants that were - declared but not implemented. - - * ace/OS.h: - * ace/OS.i: - * ace/config-win32-common.h: - Added support for sendmsg() and recvmsg() on NT, emulated over - WSASendTo() and WSARecvFrom(), do data copies are made. - - * ace/Containers.cpp: - * ace/Containers.h: - * ace/Containers_T.h: - * ace/Containers_T.i: - Moved the non-templated code back to Containers.{h,i,cpp}, added - the infamous ACE_Export macro. - - * ace/ace_dll.dsp: - Added Containers.cpp to the project. - -Thu Sep 17 11:23:49 1998 Douglas C. Schmidt - - * ace/OS: Modified ACE_THR_FUNC so that its signature is always - void *(*)(void *). We now have a new type called - ACE_THR_FUNC_INTERNAL that is defined for each different OS - platform, e.g., VxWorks, pSoS, et al. - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (run_server): Oops, - we can't use ACE_THR_FUNC here since that has a different - signature on VxWorks. So we'll just expand this a bit. Thanks - to Raja Ati for reporting this. - -Thu Sep 17 09:54:56 1998 David L. Levine - - * ace/Svc_Handler.cpp (new): cleaned up the ACE_ASSERT check - for ACE_Dynamic::instance () not being null. - - * docs/ACE-guidelines.html: added guideline to define ACE_ - typedefs to reduce the number of #ifdefs. Thanks to - Carlos and Doug for this suggestion, and Chris for the - example :-). - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (run_event_loop): - added casts to ACE_THR_FUNC to please VxWorks. Thanks to - Raja Ati for reporting this problem. - - It would probably be better to change the definition of - ACE_THR_FUNC on VxWorks (and PSOS) to be the same as on - other platforms. That will require other changes, though. - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - removed trailing ; from instantiation #pragma. - - * ace/config-lynxos.h: added ACE_HAS_TSS_EMULATION. - -Thu Sep 17 09:23:01 1998 Carlos O'Ryan - - * ace/FIFO_Send_Msg.cpp: - Fixed variable declaration, "struct ACE_IO_Vector_Base" is not - the same as "ACE_IO_Vector_Base". - - * ace/OS.i: - Fixed the ACE_OS::rand_r() signature for Win32. - - * ace/SOCK_Dgram_Mcast.cpp: - Fixed some problems with the Win32 implementation of - unsubscribe(). - -Thu Sep 17 08:41:14 1998 Carlos O'Ryan - - * examples/Shared_Malloc/test_malloc.cpp: - Fixed some problems with my changes to rand_r() - - * ace/Containers.i: - Resurrected this file to avoid problems with dependencies in - TAO. - -Thu Sep 17 08:41:24 1998 Steve Huston - - * include/makeinclude/platform_hpux_gcc.GNU: Added -L. to LDFLAGS. - Thanks to Anne Blankert for this fix. - -Thu Sep 17 07:31:13 1998 David L. Levine - - * ace/OS.i (truncate): added ACE_UNUSED_ARGs for NOTSUP case. - -Thu Sep 17 02:45:53 PDT 1998 James Hu - - * ace/Containers_T.h: - * ace/Containers_T.i: - * ace/Containers_T.cpp: - Added these files so that I could include some explicit - template instantiations inside Containers.cpp. Removed - #if guards around ACE_DLList since it no longer relies - on the feature that was being guarded against. - - * ace/Containers.h: - Simply #includes Containers_T.h. - - * ace/Containers.cpp: - Only contains some explicit template instantiations. - - * ace/Containers.i: - Removed, since it was no longer needed. - -Thu Sep 17 01:20:53 1998 Irfan Pyarali - - * ace/Msg_WFMO_Reactor.cpp (dispatch_window_messages): There was a - slight problem in Msg_WFMO_Reactor.cpp when ACE coexists with - MFC. Basically the dispatch_window_messages routine simply - returns -1 when the WM_QUIT message is received. However, if - the WFMO_Reactor and the MFC application run on the different - threads the main thread would never shut down since it just keep - waiting forever for the Quit message from other threads. The - easiest way to fix the above problem to call PostQuiteMessage - when WM_QUIT is received by WFMO_Reactor. - - Thanks to Hongbo Xu for fixing this. - - * ace/OS.i (open): No need to find the file size since - SetFilePointer supports FILE_END. Also fixed the UNICODE - version of ACE_OS::open(). - -Wed Sep 16 22:52:44 1998 Carlos O'Ryan - - * examples/Reactor/Multicast/server.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: - Use ACE_IO_Vector instead of iovec because it is more portable. - -Wed Sep 16 22:17:54 1998 Carlos O'Ryan - - * ace/OS.h: - * ace/DEV_IO.cpp: - * ace/DEV_IO.h: - * ace/DEV_IO.i: - * ace/FIFO_Send_Msg.cpp: - * ace/FILE_IO.cpp: - * ace/FILE_IO.h: - * ace/FILE_IO.i: - * ace/LSOCK.cpp: - * ace/LSOCK_Stream.cpp: - * ace/LSOCK_Stream.h: - * ace/SOCK_Dgram.cpp: - * ace/SOCK_Dgram.h: - * ace/SOCK_Dgram_Bcast.h: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast.i: - * ace/SOCK_IO.cpp: - * ace/SOCK_IO.h: - * ace/SOCK_IO.i: - * ace/SPIPE_Stream.cpp: - * ace/SPIPE_Stream.h: - * ace/SPIPE_Stream.i: - More iovec to ACE_IO_Vector_Base conversion. - - * ace/Containers.i: - The ACE_DLList_Node and ACE_DLList_Iterator class are protected - by a !defined (ACE_LACKS_TEMPLATE_AS_TEMPLATE_PARAMETER), so - should be their inline methods. - - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_Dgram_Mcast.h: - * ace/SOCK_Dgram_Mcast.i: - Added a generic unsubscribe() method. - -Wed Sep 16 21:45:48 1998 Darrell Brunsch - - * ace/ACE.{h.cpp}: Changed some iovecs to ACE_IO_Vector_Base. - - * ace/config-win32.h: Commented out ACE_HAS_GPERF until we get - everything working with it. - -Wed Sep 16 21:43:07 1998 Nanbor Wang - - * ace/OS.i (open): Added SetFilePointer to move the file pointer - of the opened file to end of file if _O_APPEND is specified on - Win32. - -Wed Sep 16 20:42:16 1998 Douglas C. Schmidt - - * ace/OS: Added a typedef for ACE_IO_Vector_Base so that it will - shield the differences between Win32 and UNIX. - -Wed Sep 16 20:09:01 1998 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - ACE_OS::rand_r() is easier to use now. Just define a variable of - that type and invoke ACE_OS::rand_r() with it, it even works on - broken platforms that define it as a non-pointer. - This is a brief example on how to use it: - ACE_RANDR_TYPE seed; - int r1 = ACE_OS::rand_r (seed); - int r2 = ACE_OS::rand_r (seed); - -Wed Sep 16 17:46:23 PDT 1998 James Hu - - * ace/Containers.{h,i}: Added comments to DLList as per Doug's - request. - -Wed Sep 16 19:23:21 1998 Steve Huston - - * ace/config-hpux-11.x-hpc++.h: Moved ACE_HAS_DIRENT to config-hpux11.h - -Wed Sep 16 18:21:45 1998 Douglas C. Schmidt - - * ace/Containers.h: Reformatted the ACE_DLList* classes to conform - to ACE programming conventions. - - * ace/config-hpux-11.x-hpc++.h: Added ACE_HAS_DIRENT and - ACE_HAS_GPERF to appease John Mulhern. - - * ace/Asynch_Acceptor.cpp: Added ACE_reinterpret_cast()s to the - sockaddr *'s to appease aCC on HP/UX 11. Thanks to John Mulhern - for reporting this. - -Wed Sep 16 17:16:51 EDT 1998 James CE Johnson - - * docs/tutorials/012/Makefile - docs/tutorials/012/data.h - docs/tutorials/012/message_queue.cpp - docs/tutorials/012/page01.html - docs/tutorials/012/page02.html - docs/tutorials/012/page03.html - docs/tutorials/012/page04.html - docs/tutorials/012/page05.html - docs/tutorials/012/page06.html - docs/tutorials/012/task.cpp - docs/tutorials/012/task.h - docs/tutorials/index.html - - Tutorial 12. This corrects some of the nastyness - in number 11 by specializing the ACE_Message_Block - to carry around the data. - -Wed Sep 16 16:01:53 1998 Nanbor Wang - - * ace/Select_Reactor_T.{h,i,cpp}: Disable inlining in - Select_Reactor_T.i and always include them in .cpp file. The - latest version of SunCC can't grok this particular file and we - just turn it off here. We shall turn it back on once the - problem gets fixed. Thanks to Keith Brown - for providing this temporary fix. - -Wed Sep 16 13:41:50 1998 Douglas C. Schmidt - - * ace/OS.h: Added more protection for the semun definition, i.e., - (defined (__GLIBC__) && defined (_SEM_SEMUN_UNDEFINED)). This - fixes problems with Linux, GLIBC 2.1, and PGCC. Thanks to - Marc Lehmann for reporting this. - -Wed Sep 16 11:41:57 1998 David L. Levine - - * ace/High_Res_Timer.cpp: added ACE_HAS_POWERPC_TIMER support. - - * tests/High_Res_Timer_Test.cpp: added this new test. - - * tests/Makefile,run_tests.{bat,psosim,sh,vxworks}: - added High_Res_Timer_Test. - - * ace/OS.* (readPPCTimer): unlined readPPCTimer for - PowerPC. If it was called more than once in a - compilation unit, when inlined, the assembler complained - about multiple definitions of the aclock symbol. - - * ace/Malloc_T.cpp (dump): fixed typo, cb_ptr instead of - cp_ptr. Thanks to Umar Syyid for reporting this. - - * tests/TSS_Test.cpp (worker): allow second group of TSS keys to - be allocated, with TSS emulation. - - * ace/Svc_Handler.cpp (new): added check that - ACE_Dynamic::instance () is non-null before dereferencing it. - ACE_ASSERT/return 0 if it is null. - -Wed Sep 16 11:28:47 1998 Irfan Pyarali - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: In - general, using iostreams in ACE causes more problems for us than - it is worth since some systems do not support iostreams. I have - rewritten this file to not use iostreams but use - ACE_DEBUG/ACE_ERROR instead. - -Wed Sep 16 10:49:34 1998 Carlos O'Ryan - - * bin/auto_compile: Updated to the new directory hierarchy in TAO. - -Wed Sep 16 09:46:31 1998 Steve Huston - - * ace/config-hpux-10.x.h: Added ACE_HAS_DIRENT. - -Tue Sep 15 20:25:23 1998 Douglas C. Schmidt - - * tests/test_config.h: Always #undef ACE_NLOGGING so the tests - will produce output! Thanks to Chuck Gehr for reporting this. - - * ace/OS.i: Added a new ACE_LACKS_TRUNCATE flag to work around - platforms that lack the truncate() call. Thanks to - Sergio for reporting this. - -Tue Sep 15 17:57:26 1998 Sergio Flores - - * ace/config-vxworks5.x.h: Added ACE_LACKS_TRUNCATE to VxWorks - configuration. - -Tue Sep 15 16:58:18 1998 Nagarajan Surendran - - * include/makeinclude/platform_chorus_ghs.GNU: Changed the - MVME_DIR to /project/doc/mvme/mvme177. - - * ace/ARGV.cpp (ACE_ARGV::argv_to_string): Fixed the problem where - we were allocating space only for the length of the string whereas - strecpy was inserting the extra '\0' leading to Array bounds write. - -Tue Sep 15 16:34:47 1998 David L. Levine - - * ace/OS.i (gethrtime): added high-res timer support with - g++ and ACE_HAS_POWERPC_TIMER. - - * ace/OS.{h,cpp},config-vxworks5.x.h,README: changed ACE_HAS_POWERPC - to ACE_HAS_POWERPC_TIMER. - - * ace/config-lynxos.h: added ACE_HAS_PENTIUM, to provide - high-res timer support on LynxOS. - -Tue Sep 15 13:33:26 1998 Nanbor Wang - - * ace/config-{WinCE,g++-common}.h: - * ace/OS.{h,i,cpp}: Deprecated ACE_LACKS_GETS and ACE_OS::gets (void). - - * apps/gperf/src/gperf_lib.dsp: Enabled c++ exception handling to - avoid warning when compiling with standard c++ libraries. - -Tue Sep 15 11:22:53 1998 Aniruddha Gokhale - - * ace/OS.{h, i}: - - Added definition for the "stat" data structure. Also added the - definition for the "truncate" function. - -Mon Sep 14 23:28:24 1998 Douglas C. Schmidt - - * ACE version 4.5.39 released. - -Mon Sep 14 21:46:36 1998 David L. Levine - - * ace/Containers.h: added "class" to several ACE_DLList friend - declarations. - -Mon Sep 14 21:02:30 1998 Irfan Pyarali - - * ace/Mem_Map.cpp (map_it): Removed the code for - !ACE_HAS_P_READ_WRITE since we cover it in ACE_OS::pwrite. - - * ace/Filecache.cpp (ACE_Filecache_Object): Changed the - lseek/write combo to pwrite. - -Mon Sep 14 17:09:04 1998 Douglas C. Schmidt - - * ace/config-win32-common.h,OS.h,README: Removed all mention of - ACE_LACKS_FIFO, which was no longer necessary. Thanks to Ossama - Othman for suggesting this. - - * ace/ACE.cpp (bind_port): Renamed sin to sock_addr to make the - autoconf script happier. Thanks to Ossama Othman - for suggesting this. - - * include/makeinclude/platform_mvs.GNU: Updated the MVS platform - configuration as follows: - - changed: - debug = 1 - to: - debug = 0 - - added: - static_libs = 1 - - and deleted the line: - CCFLAGS += $(CFLAGS) - - Thanks to Chuck Gehr for these - changes. - -Mon Sep 14 14:34:32 1998 Darrell Brunsch - - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf_lib.dsp: - Fixed the project by removing new.cpp (which disappeared a - while back) and changed the code generation to DLL. Now - seems to work on NT. - - * ace/config-win32.h: ACE_HAS_GPERF now on NT. - -Mon Sep 14 13:41:26 1998 Douglas C. Schmidt - - * ace/OS: Fixed qsort() and bsearch() so they work correctly for - MVS. Thanks to Chuck Gehr for reporting this. - - * ace/config-mvs.h: Added - - #define ACE_HAS_DIRENT - #define ACE_LACKS_READDIR_R - - so that things will work correctly for MVS. Thanks to Chuck - Gehr for reporting this. - -Mon Sep 14 10:11:18 1998 Nanbor Wang - - * ace/ace_ce_dll.dsp: Added Select_Reactor_Base.cpp and removed - Array.cpp from the project. Thanks to Paul Sexton - for noticing this. - - * ace/config-WinCE.h: Added ACE_LACKS_BSEARCH. - - * ace/OS.h: Added /**/ between #include and in - pSOS section to prevent a MSVC warning. - - * ace/OS.i (bsearch): If the function is not supported by the - platform, return NULL instead of -1 so it behaves compatibly - with most common implementation. - -Mon Sep 14 09:37:09 1998 Douglas C. Schmidt - - * ace/Synch_T.h: Fixed a deadlock condition caused by acquiring - the internal lock in multiple places during the same call. - Thanks to Jorn Jensen for reporting this. - -Mon Sep 14 01:59:51 1998 Nanbor Wang - - * ace/Strategies_T.{h,i,cpp}: Added two new classes - ACE_Thread_Pool_Strategy and ACE_Svc_Handler_Pool_Strategy for - activating and creating Svc_Handler. They should be used with - the new TP_Reactor. More to come... - -Sun Sep 13 22:31:23 1998 Douglas C. Schmidt - - * ACE version 4.5.38 released. - -Sun Sep 13 18:36:11 EDT 1998 James CE Johnson - - * docs/tutorials/006/notify.cpp - No longer applicable. This used spawn() to create the - thread but the new version uses an ACE_Task<> derivative. - - * docs/tutorials/006/Makefile - Removed dependency info. - - * docs/tutorials/007/thread_pool.cpp - Removed THR_DETACHED from activate() call. I need a - better understanding of when to include this flag... - - * docs/tutorials/index.html - Setting up new Message_Queue entry points. - - * docs/tutorials/010/Makefile - docs/tutorials/010/block.h - docs/tutorials/010/message_queue.cpp - docs/tutorials/010/page01.html - docs/tutorials/010/page02.html - docs/tutorials/010/page03.html - docs/tutorials/010/page04.html - docs/tutorials/010/page05.html - docs/tutorials/010/page06.html - docs/tutorials/010/page07.html - docs/tutorials/010/task.cpp - docs/tutorials/010/task.h - - A tutorial showing a simple use of the ACE_Message_Queue. - - * docs/tutorials/011/Makefile - docs/tutorials/011/block.h - docs/tutorials/011/data.h - docs/tutorials/011/message_queue.cpp - docs/tutorials/011/page01.html - docs/tutorials/011/page02.html - docs/tutorials/011/page03.html - docs/tutorials/011/page04.html - docs/tutorials/011/page05.html - docs/tutorials/011/page06.html - docs/tutorials/011/task.cpp - docs/tutorials/011/task.h - - Extension of 010 adds queue-ing of non-trivial data. - - -Sun Sep 13 16:29:27 1998 Carlos O'Ryan - - * ace/Select_Reactor_T.h: - Use the ACE_UNIMPLETED_FUNC to make the code work on older - versions of IRIX - -Sat Sep 12 22:39:47 1998 Douglas C. Schmidt - - * ace/ACE.i: There was a bug with strecpy() -- it should return a - pointer to 1 byte PAST the '\0'... - -Sat Sep 12 21:43:07 1998 Nanbor Wang - - * ace/Timer_Hash.cpp: Removed the #pragma template instantiation - for ACE_Timer_Node_T because it is already - instantiated in Timer_Queue.cpp. Thanks to Sergio for noticing - this. - -Sat Sep 12 16:30:39 1998 Douglas C. Schmidt - - * ace/Dirent.cpp: Renamed the methods to be more "abstract" by - removing the "dir" suffixes. - - * ACE-INSTALL.html: Fixed a broken link. Thanks to Tom Shields - for reporting this. - - * ace/OS.h (ACE_OS): Added wrappers for the passwd iterator. - - * ace/OS.h (ACE_OS): Added wrappers for qsort() and bsearch(). - - * ace/README: Reformatted this file and also changed - ACE_REQUIRES_FUNC_DEFINITIONS - ACE_NEEDS_READV - ACE_NEEDS_SCHED_H - ACE_NEEDS_SYSTIME_H - ACE_NEEDS_WRITEV - - to - - ACE_NEEDS_FUNC_DEFINITIONS - ACE_LACKS_READV - ACE_LACKS_SCHED_H - ACE_LACKS_SYSTIME_H - ACE_LACKS_WRITEV - - respectively. - -Sat Sep 12 19:18:18 1998 Nanbor Wang - - * ace/OS.i (qsort): Fixed a typo. And removed "return" for this - is a void function. - -Sat Sep 12 13:13:39 EDT 1998 James CE Johnson - - docs/tutorials/003/Makefile - Removed dependency stuff since installations may vary - - docs/tutorials/003/client.cpp - docs/tutorials/003/page01.html - docs/tutorials/004/Makefile - docs/tutorials/004/client.cpp - docs/tutorials/004/page01.html - - Converted to new style with embedded comments instead of - line-numbered comments. - -Fri Sep 11 22:46:54 EDT 1998 James CE Johnson - - docs/tutorials/001/Source.tgz - docs/tutorials/001/acceptor.h - docs/tutorials/001/logger.h - docs/tutorials/001/page02.html - docs/tutorials/001/page03.html - docs/tutorials/001/page04.html - docs/tutorials/001/page05.html - docs/tutorials/001/server.cpp - docs/tutorials/002/Makefile - docs/tutorials/002/handler.h - docs/tutorials/002/page01.html - docs/tutorials/002/page02.html - docs/tutorials/002/page03.html - docs/tutorials/002/page04.html - docs/tutorials/002/server.cpp - - Updated to "new style". Corrected issues with Reactor - based on recent mailing list discussions. - -Fri Sep 11 12:30:37 1998 Nagarajan Surendran - - * ace/config-chorus.h: Uncommented ACE_LACKS_SYSV_SHMEM as ace - didn't compile on Chorus with that commented out. - -Fri Sep 11 09:02:00 CDT 1998 Chris Gill - - * ace/OS.{h,i} - ace/Containers.{cpp,h} - ace/config-psos-diab.h - include/makeinclude/platform_psos_diab.GNU: - Fixes to compile pSOS - added #if ! defined around new templates - as template parameters stuff in Config.* (Diab compiler can't - grok these), played with library linkage order platform macros. - -Fri Sep 11 08:54:41 EDT 1998 James CE Johnson - - * docs/tutorials/001/logger.h - Logging_Handler::open() should return 0 on success. - - * docs/tutorials/002/server.cpp - docs/tutorials/002/page02.html - Provide 'g_reactor' to the acceptor's open(). If you - don't do this, the app will core dump on ^C - - Thanks to Krishna Padmasola for - helping me see these. - -Thu Sep 10 16:53:21 1998 Carlos O'Ryan - - * tests/Upgradable_RW_Test.cpp: - Some templates were instantiated twice if threads were enabled. - -Thu Sep 10 13:41:53 1998 David L. Levine - - * config-sunos4-sun3.x.h,config-tandem.h,README: removed - ACE_HAS_SYSV_SPRINTF because it's no longer used. Thanks - to Ossama for reporting this. - -Thu Sep 10 10:18:29 1998 Nanbor Wang - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (run_event_loop): - Changed to use ACE_Handle_Set instead of FD_SET. It is more - portable this way. Thanks to Andre Folkers - for noticing this. - -Wed Sep 09 16:29:36 1998 David L. Levine - - * BUG-REPORT-FORM,Makefile: added BUG-REPORT-FORM. Thanks - to Susan Liebeskind for the form. - -Wed Sep 9 13:22:11 1998 James Hu - - * ace/Containers.h: - * ace/Containers.cpp: Added a new container class ACE_DLList. - -Tue Sep 8 23:17:11 1998 Nanbor Wang - - * tests/Thread_Mutex_Test.cpp (test): - * tests/Priority_Buffer_Test.cpp (consumer): Changed the - do-nothing if statements to ACE_UNUSED_ARG because NT doesn't - like that. Thanks to David for clarifying this. - -Tue Sep 8 21:45:32 1998 Nanbor Wang - - * *.{dsp,dsw}: Updated for VC 6. - -Tue Sep 8 21:31:32 1998 Carlos O'Ryan - - * ace/config-irix6.x-sgic++-nothreads.h: - Added ACE_HAS_DIRENT and support for the envinfo tool. - -Tue Sep 08 18:54:28 1998 Steve Huston - - * ace/OS.h: Removed definitions of PTHREAD_DETACHED, PTHREAD_FLOAT, - PTHREAD_INHERIT_SCHED from the ACE_HAS_PTHREADS_DRAFT6 section of - mapping draft 6 names into the pthreads standard names. The first - two aren't used anywhere and the third is already defined on the - known draft 6 platforms. Thanks to Chuck Gehr and Arturo Montes for - helping to straighten this out. - -Tue Sep 8 15:10:42 1998 Carlos O'Ryan - - * tests/Makefile: - Updated dependencies. - -Tue Sep 8 13:16:37 1998 Douglas C. Schmidt - - * ace/config-sco-5.0.0.h: Added ACE_HAS_GPERF at the bequest - of Arturo. - -Tue Sep 08 10:25:48 1998 Nanbor Wang - - * ace_{dll,lib}.dsp: Changed the process type to "Blend*" which - make the project to work on any type of intel processors. - However, this disable the bug-fix to get around the infamous - Pentium floating point problem. - - * netsvcs/lib/netsvcs.dsp: - * netsvcs/servers/servers.dsp: Perform VC 6 modification. - -Tue Sep 08 07:28:05 1998 David L. Levine - - * ace/OS.i (readdir_r): don't use the POSIX.1c ::readdir_r on - suns without _POSIX_PTHREAD_SEMANTICS. - - * include/makeinclude/wrapper_macros.GNU: added - ACE_HAS_GNUG_PRE_2_8 macro. Use it for determining - exceptions-related flags with g++. It can also be used to - suppress builds with old (pre-2.8) versions of g++; see - TAO/tests/POA/TIE/Makefile for an example. - - * apps/Gateway/Gateway/File_Parser.cpp (getint): - egcs 1.1b can't handle the FP_RETURN_TYPE typedef. So, - use FP::Return_Type with __GNUG__. - - * ace/config-chorus.h: added ACE_HAS_DIRENT and - ACE_LACKS_READDIR_R. - - * ace/config-lynxos.h: don't use ACE_HAS_STRING_CLASS with - LynxOS >= 3.0.0. It requires that libg++ be linked in - to the IOStream tests. - - * docs/ACE-guidelines.html: notify via email if a particular - individual's attention is needed to address a comment in the code. - - * ace/Basic_Types.h: corrected comment: the dump method - is named output, because it takes an argument. - -Mon Sep 7 22:12:02 1998 Nanbor Wang - - * ace/config-freebsd.h: Added ACE_HAS_SIGINFO_T, - ACE_LACKS_SIGINFO_H, ACE_LACKS_UCONTEXT_H, ACE_LACKS_SI_ADDR and - ACE_HAS_DIRENT. - - * ace/config-freebsd-pthread.h: - * ace/config-linux-common.h: Added ACE_HAS_DIRENT. - -Mon Sep 7 12:39:10 EDT 1998 James CE Johnson - - docs/tutorials/008/page01.html - docs/tutorials/008/page02.html - docs/tutorials/008/page03.html - docs/tutorials/008/page04.html - docs/tutorials/008/page05.html - docs/tutorials/009/Makefile - docs/tutorials/009/broadcast_client.cpp - docs/tutorials/009/directed_client.cpp - docs/tutorials/009/page01.html - docs/tutorials/009/page02.html - docs/tutorials/009/page03.html - docs/tutorials/009/page04.html - docs/tutorials/009/page05.html - docs/tutorials/009/server.cpp - - Cleanup on Tutorial 008 and creation of Tutorial 009 which expands - 008 by making the server more selective in who it responds to. - -Mon Sep 7 10:06:54 1998 Douglas C. Schmidt - - * ace/ACE.h (ACE): Moved strnew (wchar_t *) into an ACE_WIN32 - section to protect it properly. Thanks to David Levine for - reporting this. - - * ace:config-sco-*.h: Added ACE_HAS_DIRENT on the advice of Arturo - Montes . - -Mon Sep 07 09:52:12 1998 David L. Levine - - * docs/ACE-guidelines.html: added general rule to put system - call wrappers in ACE_OS, extensions in ACE. - - * ace/config-osf1-4.0.h: added ACE_HAS_DIRENT and - _POSIX_PTHREAD_SEMANTICS. The latter was necessary - to tell ACE_OS::readdir_r () to use the three-arg - ::readdir_r (). - - * ace/config-lynxos.h: added ACE_HAS_DIRENT. - - * ace/Log_Msg.cpp (log): initialized local "c" to '\0' so that - egcs 1.1b won't complain that it might be used without - initialization. - - * ace/OS.i,ace/config-osf1-4.0.h (readdir_r): use - ACE_HAS_PTHREADS_STD instead of _POSIX_PTHREAD_SEMANTICS to - select the three-arg ::readdir_r (). - - * ace/config-vxworks.h: added ACE_HAS_DIRENT. - - * ace/OS.i,config-vxworks5.x.h (readdir_r,rewinddir,seekdir,telldir), - README: - added support for ACE_LACKS_READDIR_R, ACE_LACKS_SEEKDIR, and - ACE_LACKS_TELLDIR. - - * ace/OS.i (opendir): added const_cast to remove constness - from the argument, because VxWorks' header doesn't declare - it const. This shouldn't cause a problem on other platforms. - -Mon Sep 7 01:02:58 1998 Darrell Brunsch - - * ace/ACE.i: Changed ACE_INLINE to ASYS_INLINE. - - * ace/OS.h: Added a no-op type define for DIR and struct - dirent so compilation can continue on NT. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Added new dirent.* files and removed Array.{cpp,i} files. - -Sun Sep 6 15:49:46 1998 Douglas C. Schmidt - - * ace/ACE: Added several new helper string functions, which were - mined from the drwho program. - - * ace/OS: Moved strnew() into class ACE, which is where it - belongs... - - * ace/Containers: Merged the ACE_Array class entirely into the - Containers files, which is more consistent with the general - design of ACE. Also, removed ace/Array.i and Array.cpp since - they are no longer needed. We'll keep Array.h around for a - while for backwards compatibility, but it just #includes - "ace/Containers.h" now... - - * ace/config-sunos5*.h: Added ACE_HAS_DIRENT. We'll need help - figuring this out on the other platforms... - - * ace/OS: Began adding "Dirent" support to ACE_OS. This will - provide the UNIX/POSIX directory iterator routines when the - ACE_HAS_DIRENT macro is enabled. - - * ace/OS: Added fputs() to ACE_OS. I'm not sure why this was - missing... - - * ace/Makefile (FILES): Moved Priority_Reactor to earlier in - the Makefile to maintain alphabetical order. - -Sun Sep 6 14:06:43 1998 Douglas C. Schmidt - - * ace/OS.h: Moved the ACE_NEW_THROW macros that Matt Braun wrote - into ACE so that we can use these in all applications. - -Sun Sep 06 12:28:40 1998 Fred Kuhns - - * Added a simple reactor/acceptor figure to the first tutorial - docs/tutorial/001/simple.* - -Sun Sep 06 08:34:57 1998 David L. Levine - - * ace/config-g++-common.h,ace/README,tests/Conn_Test.cpp: - renamed ACE_HAS_OLD_GNUG to ACE_HAS_GNUG_PRE_2_8. - -Sat Sep 5 15:31:33 1998 Douglas C. Schmidt - - * ace: Removed ACE_HAS_IRIX_GETTIMEOFDAY and all of its uses - throughout ACE. It was no longer necessary. Thanks to Ossama - for reporting this. - - * ace/Synch.h: Added a "no-op" ACE_Barrier for cases where we - don't have ACE_HAS_THREADS enabled. - -Sat Sep 5 15:25:33 EDT 1998 James CE Johnson - - docs/tutorials/index.html - docs/tutorials/008/Makefile - docs/tutorials/008/server.cpp - docs/tutorials/008/broadcast_client.cpp - docs/tutorials/008/directed_client.cpp - docs/tutorials/008/page01.html - docs/tutorials/008/page02.html - docs/tutorials/008/page03.html - docs/tutorials/008/page04.html - docs/tutorials/008/page05.html - docs/tutorials/008/CVS/Root - docs/tutorials/008/CVS/Repository - docs/tutorials/008/CVS/Entries - docs/tutorials/009/Makefile - docs/tutorials/009/broadcast_client.cpp - docs/tutorials/009/directed_client.cpp - docs/tutorials/009/server.cpp - docs/tutorials/009/CVS/Root - docs/tutorials/009/CVS/Repository - docs/tutorials/009/CVS/Entries - - Began the next set of tutorials on the topic of Datagrams. - Thanks to Jeff Hellzen for this suggestion. - -Fri Sep 4 18:56:36 1998 Carlos O'Ryan - - * ace/Name_Proxy.cpp: - Fixed spurious double assignment (int foo = foo = bar;), thanks - to thanks to John Mulhern <9107@mn3.lawson.lawson.com> for - reporting this. - -Fri Sep 04 18:54:32 1998 Irfan Pyarali - - * ace/Select_Reactor_T.cpp (ACE_Select_Reactor_T): Made sure that - all references to Select_Reactor have the template argument in - them. Thanks to Chuck Gehr for - sending the patches. - -Fri Sep 4 18:29:29 1998 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_proactor.cpp: Changed to use - "test_proactor.cpp" as input file. - -Fri Sep 4 17:51:17 1998 Alexander Babu Arulanthu - - * ace/Proactor.cpp: - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_Acceptor.h: - * ace/Asynch_IO.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - First round of changes for ACE_Asynch_Accept. Makes use of - separate thread for each accept call, each thread blocking on the - ACE_OS::accept. Thanks to Irfan, a better implementation using - TP_Reactor is currently being done. - -Fri Sep 4 16:45:36 1998 Douglas C. Schmidt - - * ace: Removed all traces of ACE_HAS_MT_SAFE_SOCKETS -- this was a - vestige from Solaris 2.2! Thanks to Ossama Othman - for suggesting this. - - * ace/Service_Config: Changed the default value of - ACE_Service_Config::debug_ from 1 to 0. Thus, debugging is - DISABLED by default. If you want to enable debugging, pass the - -d option to the constructor of ACE_Service_Config. - - * ace/Naming_Context.cpp, - ace/Service_Config.cpp, - ace/Service_Types.cpp, - ace/Service_Repository.cpp: Now we only print out service config - information if we're ACE::debug() is non-0. This is more - consistent with other parts of ACE. Thanks to XuYifeng - for reporting this. - - * ace/Service_Config: Moved the debug() stuff from here and put it - into class ACE so that it will be more globally visible. - -Fri Sep 04 15:24:44 1998 Nanbor Wang - - * ace/ACE.i: Here, we should use ASYS_INLINE which is always - defined as inline on most platforms. - - * ace/Log_Msg.h (ACE_Log_Msg): Added a new ACE_DEBUG format - character 'A' which prints out an ACE_timer_t value. This is - most useful when you want to print out the timers in - ACE_Profile_Timer::ACE_Elapse_Time. Thanks to Naga for - providing the brilliant idea. - - * tests/XtReactor_Test.cpp (main): Removed '.cpp' from - ACE_START_TEST title string. Thanks to Ossama for reporting - this. - - * Makefile (CONTROLLED_FILES): Removed some documents from the - list because they are in docs/ now. - - * tests/run_tests.bat: Removed trailing '.cpp' from - Message_Queue_Notifications_Test. Thanks to Jack Erickson - for reporting this. - - * ace/OS.i (signal): Added check for ACE_WIN32 to defeat the - effect of !defined (ACE_LACKS_UNIX_SIGNALS). Although Win32 - does has ACE_LACKS_UNIX_SIGNALS defined, it also has limited - support for signals. Thanks to XuYifeng - for reporting this. - -Fri Sep 04 07:26:57 1998 David L. Levine - - * include/makeinclude/rules.bin.GNU,wrapper_macros.GNU: - moved VBIN definition from rules.bin.GNU to wrapper_macros.GNU. - With this change, individual Makefiles need not define VBIN. - - * tests/run_tests.sh: removed -f so that temp file removal - works properly. Don't printout ipcs output unless it - changes, for resources owned by the user. - -Fri Sep 04 01:01:58 1998 Irfan Pyarali - - * ace/Timeprobe.h: Disable warning of using Microsoft Extensions. - -Fri Sep 04 02:12:03 1998 Douglas C. Schmidt - - * ACE version 4.5.37 released. - -Fri Sep 4 00:07:18 1998 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp (open): Added - template instantiations to make GCC happy. Thanks to David - Levine for reporting this. - -Thu Sep 03 19:15:52 1998 Fred Kuhns - - * docs/tutorial/006/client_acceptor.cpp: added - typedef ACE_Svc_Handler inherited; - -Thu Sep 03 17:03:46 1998 Irfan Pyarali - - * ace/Dynamic.cpp (instance): Removed the typedef in the header - file because some compiler was having problems with it. Thanks - to baksoo@dbserver.kaist.ac.kr for reporting this. - -Thu Sep 03 16:43:34 1998 David L. Levine - - * ace/OS.cpp (thr_create): play the zero thread priority game - on Solaris if defined (sun), not if defined (ACE_HAS_STHREADS). - This allows POSIX threads to be created with a thread priority - of 0 if _POSIX_C_SOURCE=199506L and _POSIX_PTHREAD_SEMANTICS - are defined. Thanks to Russ Noseworthy - for reporting this problem. - - * examples/Threads/tss2.cpp: added explicit ACE_Guard - instantiation. - - * tests/Dynamic_Priority_Test.cpp (main): changed "not supported" - to "not available" in printout that indicates that the - test will be run in time-sharing class, instead of - a real-time class. The test can still run in time-sharing - class. Thanks to Ossama for reporting this. - -Thu Sep 03 16:14:16 1998 Nanbor Wang - - * ace/Synch.i (ACE_Process_Mutex::remove): Reset this->lock_ to 0 - after removing the lock so we can avoid destroying the same - kernel object twice. Thanks to Detlef Becker - for reporting this. - -Thu Sep 03 15:43:22 1998 Irfan Pyarali - - * tests/Upgradable_RW_Test.cpp: Fixed this file so that it works - with egcs. - -Thu Sep 3 14:51:06 1998 Douglas C. Schmidt - - * docs: Moved ACE-{tutorials,guidelines,subsets,porting}.html - into the docs directory from the etc directory. This is - a more "fitting" location... - -Thu Sep 3 13:23:39 1998 Nanbor Wang - - * Makefile (CONTROLLED_FILES): Added docs/ into CONTROLLED_FILES. - -Thu Sep 03 09:24:20 1998 David L. Levine - - * ace/Message_Block.cpp: added ACE_Guard instantiation. - - * ace/SPIPE_Stream.i (recv_handle): replaced "recvfd = recvfd" with - ACE_UNUSED_ARG (recvfd) to avoid egcs 1.1 warning about a - statement with no effect. - -Thu Sep 03 00:26:23 1998 Nanbor Wang - - * ace/Time_Request_Reply.cpp (ACE_Time_Request): The second - parameter should be of type ACE_UINT32. - -Wed Sep 2 22:52:32 1998 Douglas C. Schmidt - - * netsvcs/lib/Name_Handler.cpp, - * ace/Time_Request_Reply.cpp: Fixed up yet another - minor mismatch caused by the ACE_SUCCESS/ACE_FAILURE fixes... - Thanks to David Levine for tracking these down. - -Wed Sep 02 20:55:18 1998 Douglas C. Schmidt - - * ACE version 4.5.36 released. - -Wed Sep 2 19:21:25 1998 Douglas C. Schmidt - - * ace/Name_Request_Reply.cpp: Continued to cleanup the residue of - the ACE_SUCCESS and ACE_FAILURE changes. Thanks to David Levine - for reporting this. - -Wed Sep 02 19:08:29 1998 David L. Levine - - * ace/Template_Instatiations.cpp: commented text following - an #endif. - -Wed Sep 02 16:46:45 1998 Douglas C. Schmidt - - * ACE version 4.5.35 released. BTW, these releases were aborted - due to CVS hiccups. We've got to figure out a better way to - roll this stuff back... - -Wed Sep 02 16:33:25 1998 Douglas C. Schmidt - - * ACE version 4.5.34 released. - -Wed Sep 02 16:31:22 1998 Nanbor Wang - - * ace/OS.h: Make sure ACE_NO_INLINE is not defined before defining - it to avoid double defining the macro. Thanks to Ossama Othman - for suggesting this. - -Wed Sep 2 11:10:08 1998 Douglas C. Schmidt - - * ace/Task.cpp (activate): Remmber to decrement the thr_count_ if - spawn_n() fails. Thanks to Russ Noseworthy - for reporting this fix. - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: Fixed another - void * -> char * problem. Now this stuff all seems to build - fine. - -Wed Sep 02 10:07:15 1998 David L. Levine - - * ace/Name_Request_Reply.{h,cpp}: reverted ACE_SUCCESS to SUCCESS - because other ACE code depended on it. - - * ace/Object_Manager.cpp (~ACE_Object_Manager_Base): moved - internal_lock_ deletion inside ACE_MT_SAFE protection. Thanks - to Dongwook Kim for reporting this. - - * include/makeinclude/platform_sunos5_sunc++.GNU: updated comments - to recommend not using Sun C++ 4.1. - -Wed Sep 02 09:34:32 1998 Oliver M. Kellogg - - * ace/OS.i (sigwait): use __sigwaitd10 with g++ on DU 4.0. - -Tue Sep 1 20:44:15 PDT 1998 James C. Hu - - * ace/Filecache.cpp: - * ace/UPIPE_Stream.cpp: I guess nobody uses GCC anymore. Fixed - some template instantiation problems in Filecache.cpp and - UPIPE_Stream.cpp. I guess, eventually all of this will be moved - into the Template_Instantiations.cpp file, but until then... - -Tue Sep 01 20:59:11 1998 David L. Levine - - * ace/OS.i (ts_object): commented test appearing after the #endif. - - * ace/OS.i (rw_trywrlock_upgrade): expanded/added comment to - clarify the with/without ACE_LACKS_RWLOCK_T distinction. - - * ace/OS.i (sigwait): fixed indentation. - - * ace/ACE.cpp (get_ip_interfaces): removed trailing } after comment - following #endif. - - * etc/ACE-guidelines.html: added section on scripts. Added rule - to prefix constants and enum values with ACE_ or TAO_. - -Tue Sep 1 19:05:05 1998 Douglas C. Schmidt - - * tests/XtReactor_Test.cpp: Added a new version that should work - on Linux. Thanks to Eric Newton for this fix. - -Tue Sep 1 19:40:03 1998 Carlos O'Ryan - - * tests/XtReactor_Test.cpp: - If ACE_LACKS_MOTIF is defined the test can use Athena - Widgets. Thanks to Eric C. Newton for - contributing this example. - -Tue Sep 1 19:05:05 1998 Douglas C. Schmidt - - * examples/Shared_Malloc/test_malloc.cpp (spawn): Fixed a minor - problem with conversions from const char * literals to char *'s. - Thanks to John Mulhern for reporting this problem. - - * examples/IPC_SAP/SOCK_SAP/CPP-in{server,client}.cpp: Fixed all - uses of void *request with char *request to stop ANSI C++ - compilers from complaining. Thanks to John Mulhern for - reporting this problem. - -Tue Sep 01 16:22:06 1998 Irfan Pyarali - - * ace/Filecache.cpp (init and ~ACE_Filecache_Object): Changed - SUCCESS to ACE_SUCCESS. - -Tue Sep 1 13:54:10 PDT 1998 James C. Hu - - * ace/Message_Block.h: - * ace/Message_Block.i: Added a space () method that reports - the amount of space remaining in the message block. - -Tue Sep 1 3:50:39 US/Central 1998 James CE Johnson - - * etc/tutorials/006/client_handler.cpp - etc/tutorials/006/client_handler.h - etc/tutorials/006/page04.html - etc/tutorials/006/page05.html - - Added a close() method to Client_Handler so that it will be closed - properly when the svc() method exits. - - * etc/tutorials/007/client_handler.cpp - etc/tutorials/007/client_handler.h - etc/tutorials/007/page05.html - etc/tutorials/007/page06.html - etc/tutorials/007/page09.html - - Added Client_Handler::close() that will be called when - Client_Handler::svc() exits in the thread-per-connection model. - Thread_Pool::svc() now calls the handler's handle_close() method - to properly shut down the handler if handle_input() fails. - -Tue Sep 01 12:58:02 1998 Chris Gill - - * ace/ACE.cpp - ace/Basic_Types.cp - ace/Containers.{cpp, h} - ace/Filecache.{cpp, h} - ace/Hash_Map_Manager.{cpp, h} - ace/INET_Addr.cpp - ace/Local_Tokens.cpp - ace/Log_Record.cpp - ace/Map_Manager.{cpp, h} - ace/Message_Block.cpp - ace/Name_Request_Reply.{cpp, h} - ace/OS.{cpp, h, i} - ace/Object_Manager.h - ace/Process.cpp - ace/Remote_Name_Space.cpp - ace/SOCK_Dgram_Mcast.{cpp, h} - ace/Service_Types.cpp - ace/Signal.cpp - ace/Synch_T.{cpp, h, i} - ace/Time_Hash.cpp - ace/Token_Request_Reply.h - ace/UPIPE_Stream.cpp - ace/config-psos-diab.h - ace/config-psos-tm.h: - - pSOS port of ACE for the Diab 4.2 and Trimedia cross compilers. - Thanks to Jin Lu of Philips Research for completing the ACE pSOS - port on the Trimedia cross compiler and contributing the changes - back to the ACE distribution. - -Tue Sep 1 10:43:24 1998 Douglas C. Schmidt - - * ace/config-linux-common.h, - ace/config-sco-5.0.0-mit-pthread.h, - ace/config-sco-5.0.0.h, - ace/README: - ACE_HAS_LONG_FDMASK macro has been changed to - ACE_HAS_BIG_FD_SET. Therefore, I updated these files. Thanks - to Ossama Othman for reporting - this. - -Tue Sep 01 10:21:49 1998 David L. Levine - - * tests/TSS_Test.cpp (cleanup, worker): with ACE_HAS_PTHREADS_DRAFT4, - delete the tss instances in cleanup instead of worker. This gets - rid of the memory leaks on those platforms. - - * include/makeinclude/platform_osf1_4.0.GNU: added - -hidden [...] -non_hidden magic. See comments in the file; - this solves a problem with mutiply defined symbols between - shared libraries and DEC's libcxxstd.a. It only affected - tests/IO_Stream_Test. - -Tue Sep 01 10:03:55 1998 Douglas C. Schmidt - - * ACE version 4.5.33 released. - -Tue Sep 01 03:46:21 1998 Steve Huston - - * ace/Asynch_Acceptor.{h cpp}: Enable the contents for platforms - with ACE_HAS_AIO_CALLS, not just ACE_WIN32. Thanks to John - Mulhern for these fixes. - - * examples/Reactor/Proactor/Makefile: Removed include of - platform_macros.GNU. Thanks to John Mulhern for this one too. - -Mon Aug 31 16:38:03 1998 Douglas C. Schmidt - - * ace/config-kcc-common.h: Added ACE_HAS_CPLUSPLUS_HEADERS to - prevent warnings/errors. Thanks to Ben Eng and - Todd Pack for reporting this. - - * Added a bunch of patches so that ACE compiles and passes its - tests on Chorus with gcc. Thanks to Alberto Villarica" - for reporting this. - -Mon Aug 31 14:02:34 1998 Darrell Brunsch - - * ace/ace.dsw: - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Updated to MSVC 6, which consisted of changing the - version number insde to 6.00. This change gets it - to work in both 5 and 6, without any trouble. - -Mon Aug 31 12:25:15 1998 David L. Levine - - * ace/Object_Manager.*: reorganized to provide the - ACE_Object_Manager_Base class. This class contains - the data structures used to support Singleton - registration for destruction. - - * ace/ACE.{h,cpp}: added init () and fini (). These - currently just call the ACE_Object_Manager's init () - and fini (). The might be useful for applications - that use ACE_HAS_NONSTATIC_OBJECT_MANAGER and - ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER, and - therefore need to explicitly initialize and finalize - the ACE_Object_Manager singleton. - - * tests/Semaphore_Test.cpp (test_timeout): a timed - semaphore acquire fails on ACE_HAS_PTHREADS_DRAFT4 - with EINTR instead of ETIME if it times out. That's - the way it's documented, as well as the way it behaves on LynxOS. - - * tests/TSS_Test.cpp (cleanup): with DRAFT4 threads, - don't do anything in the cleanup function. - The intended use of this function doesn't apply. - With Draft 4 threads, this function is called implicitly - by pthread_setspecific whenever an old value is replaced. - This function is intended to be used with Draft 6 and later - threads, where it is called on thread termination with the - thread-specific value. - - * tests/test_config.cpp: set ACE_MAX_PROCESSES to 4 on LynxOS, - so that Process_Mutex_Test will succeed. - -Sun Aug 30 23:05:34 1998 Nanbor Wang - - * ace/Select_Reactor_T.cpp: Should include ace/Thread.h also. - Thanks to J. Russell Noseworthy - for reporting this. - - * ace/Select_Reactor.cpp: Added explicit template instantiation - for ACE_Lock_Adapter>. - Thanks to Eric C. Newton for reporting this. - -Sun Aug 30 07:44:54 1998 David L. Levine - - * ace/config-sunos5.5.h,ace/README, - include/makeinclude/platform_sunos5_sunc++.GNU: - use ACE_LACKS_RTTI instead of ACE_HAS_RTTI without rtti, - with Sun CC on SunOS 5.5. That removes all use of ACE_HAS_RTTI - from ACE. - - * netsvcs/lib/Name_Handler.h: added #include of ace/Singleton.h. - - * tests/run_tests.vxworks: commented out Dynamic_Priority_Test. - It now causes VxWorks to go to never-never land. - - * ace/config-g++-common.h,ace/README,tests/Conn_Test.cpp: - added ACE_HAS_OLD_GNUG. Thanks to Doug for this suggestion. - - * ace/Token.cpp (ACE_Token_Queue_Entry ctor): added - ACE_UNUSED_ARG (m) ifdef ACE_TOKEN_USES_SEMAPHORE. - -Sun Aug 30 00:14:29 1998 Irfan Pyarali - - * ace/Service_Object.cpp (fini): Make sure to check the - flag before proceeding. Also - ~ACE_Service_Type() now calls this->fini(). - - * ace/Svc_Handler: - * ace/Dynamic: - - Patrick J. McNerthney described this problem: - ________________________________________ - - ACE_Svc_Handler creates an - ACE_TSS_Singleton singleton - object to determine if the ACE_Svc_Handler is a dynamically - created object or not. ACE_TSS_Singleton declares the internal - single instance of the ACE_Dynamic object as a - ACE_TSS data type. - - The first time this object is "referenced", - ACE_TSS::ts_init() is called, which in turn calls - ACE_Thread::keycreate and registers - ACE_TSS::cleanup with it. Since ACE_TSS is a - template class, the vtable and the code of this object resides - in the dynamically loaded service DLL. - - During termination, the Object Manager closes down the Service - Configurator, causing all services to be shutdown, and their - DLLs are unloaded. - - The Object Manager then calls ACE_OS::cleanup_tss which attempts - to call the above registered ACE_TSS::cleanup - method. Since the DLL has already been unloaded, the - application faults trying to access the vtable. - ________________________________________ - - My earlier solution addressed this problem but only in - ~Object_Manager(), i.e., at the end of the application, by - carefully ordering the cleanup of singletons, tss, and the - unlinking of libraries. To solve this more generically and to - address this problem when DLLs are unlinked arbitrarily (and not - only at the end of applications), I moved the typedef of - ACE_TSS_Singleton from Svc_Handler.h to - Dynamic.h. Then the access to this singleton was changed from - DYNAMIC::instance() to ACE_Dynamic::instance(). - - This will force the generation of the code for this class to be - in the ACE library rather than in a user's DLL. Hence when TSS - cleanup hooks and Object Manager are trying to clean this object - up from ~Object_Manager, it won't crash as the code for this - class is in ACE and not in the unlinked DLL. - - This issue raised a couple of interesting observations about - ACE_Singleton and ACE_TSS_Singleton and DLLs: - - It is ok to use ACE_Singleton and ACE_TSS_Singleton in DLLs that - are going to be unlinked at the end of the program. For DLLs - that may get unlinked *before* the end of the program, they must - not use ACE_Singleton or ACE_TSS_Singleton. ACE_Singleton - registers with the Object_Manager for deletion and therefore is - accessed at the end of the application. ACE_TSS_Singleton is - very similar to ACE_Singleton. Moreover, it uses tss cleanup - hooks to clean up the thread specific storage. Therefore, if - the DLL lives shorter than the thread and/or the application, it - must *not* use ACE_Singleton and ACE_TSS_Singleton. - - This motivates the need for ACE_DLL_Singleton. As usual, - contributions to ACE are always welcome ;-) Many, many thanks to - Patrick J. McNerthney for all his help! - -Sat Aug 29 19:22:22 1998 Douglas C. Schmidt - - * examples/Service_Configurator/Misc/main.cpp (main): Fixed a stray - l_argv[3] = 0; I'm not sure why this was here... - -Sat Aug 29 17:31:06 1998 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server,server-fancy}.cpp: - Updated these tests to be more robust and better designed. - - * examples/IPC_SAP/SOCK_SAP/Makefile: Added the - CPP-inserver-fancy.cpp file. I'm not sure why I'd omitted it - for so long... - - * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server}.cpp: Cleaned up - the code a bit to avoid warnings. Thanks to David Levine for - reporting these. - -Sat Aug 29 14:11:25 1998 David L. Levine - - * etc/ACE-guidelines.html: added rule to not for a pointer - being 0 before deleting it. It's always safe to delete a - 0 pointer. Thanks to James CE Johnson for - pointing this out. - -Fri Aug 28 23:29:51 1998 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server}.cpp: Enhanced - the client and server test so that it'll be a good benchmark for - the "best case" to compare TAO against. - -Fri Aug 28 21:53:13 1998 Steve Huston - - * ace/OS.h: Conditionalize setting of ACE_INFINITE on non-Win32 - to allow the platform config to define a value. - - * ace/config-hpux11.h: Define ACE_INFINITE as 10000000. This value - was empirically determined by John Mulhern. Until we know why - this had to be done, you may need to set a different value in - your own config.h file. - -Fri Aug 28 13:14:34 1998 Nanbor Wang - - * examples/Service_Configurator/Misc/main.cpp: Made the file CE - friendly. Added "-y" to service configurator so we can still - test static services. - -Fri Aug 28 13:45:28 1998 David L. Levine - - * include/makeinclude/platform_lynxos.GNU: added HOST_OS - support for PowerPC target. It has a slightly different - name (sunos-xcoff-ppc) than for x86 target (sunos-coff-x86). - - * ace/config-lynxos.h: there doesn't seem to be an - alloca () for PowerPC target. So, only enable - ACE_HAS_ALLOCA and ACE_HAS_ALLOCA_H ifdef __x86__. - -Fri Aug 28 12:30:57 1998 Carlos O'Ryan - - * bin/create_ace_build: - Now it will cleanup dead links on the build directory. - -Fri Aug 28 09:45:53 1998 Douglas C. Schmidt - - * ace/Synch: Fixed the constructor of ACE_Null_Condition so that - it's consistent with ACE_Condition_Thread_Mutex. Thanks to - Mats Nilsson for reporting this. - -Fri Aug 28 08:33:20 1998 Alexander Babu Arulanthu - - * ace/OS.h (FILE_FLAG_SEQUENTIAL_SCAN): Given null definitions for - FILE_FLAG_SEQUENTIAL_SCAN for Non Win32 platforms. - -Thu Aug 27 19:40:32 1998 Steve Huston - - * ace/OS.i: Changed an erroneous ACE_HAS_PTHREAD_DRAFT6 to - ACE_HAS_PTHREADS_DRAFT6. Thanks to Chuck Gehr for catching this. - -Thu Aug 27 15:47:34 1998 Irfan Pyarali - - * ace/Proactor.cpp (handle_signal): Fixed code for looping around - handle_events(). Thanks to Marc Penner - for pointing out the problem. - - * ace/OS.cpp (ACE_Countdown_Time::stop): Removed the setting of - errno to ETIME when we have used all of timeout. This was - necessary since this errno was interfering with errno being set - by other parts of ACE. - -Thu Aug 27 13:45:31 1998 Nanbor Wang - - * ace/OS.h: Added /**/ between "#include" and - "". Otherwise, MSVC spits out warnings, tons of - them. - - * ace/Profile_Timer.h (ACE_Profile_Timer): Remove the Win32 - section. Win32 (except CE) actually uses the code in - ACE_HAS_GETRUSAGE. - -Thu Aug 27 13:12:04 1998 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_proactor.cpp : - test_proactor_with_aio.cpp is removed. - test_proactor.cpp should do well on Win as well as other - POSIX4 compliant platforms (with some known bugs in Solaris2.6). - -Thu Aug 27 11:35:11 1998 David L. Levine - - * etc/ACE-guidelines.html: added rule to declare a loop index - before the loop, if it's used after the loop. - - * ace/OS.h,README: added ACE_LACKS_RTTI support, for use with - ACE_HAS_ANSI_CASTS without dynamic_cast. - - * ace/config-sunos5.5.h (Sun CC only), config-osf1-4.0.h: - added conditional ACE_LACKS_RTTI. - - * include/makeinclude/platform_osf1_4.0.GNU: added rtti=0 - support. - - * ACE-INSTALL.html,include/makeinclude/wrapper_macros.GNU: - updated comments to reflect that rtti=0 is now supported on - OSF1-4.0. (It's not only supported on Sun CC/SunOS 5.) - - * tests/SOCK_Connector_Test.cpp (host_is_up): broke out - the code to test whether a host exists, is reachable, and - is up into host_is_up (). Consider the host up if the - blocking connection attempt succeeds, or down if it doesn't. - -Wed Aug 26 23:43:42 1998 Douglas C. Schmidt - - * ACE version 4.5.32 released. - -Wed Aug 26 19:11:07 1998 Carlos O'Ryan - - * bin/count_lines: - A nice Perl script to count lines of code. - -Wed Aug 26 17:35:43 1998 Douglas C. Schmidt - - * tests/Reactors_Test.cpp (close): Oops, the ACE_ASSERT() was - incorrect. It should be - - ACE_ASSERT (Test_Task::task_count_ >= 0); - - Thanks to David Levine for reporting this. - -Wed Aug 26 07:47:57 1998 Nanbor Wang - - * ace/Select_Reactor.h: Added template specialization for - ACE_Guard> to speed - thing up when using lock-freed Select_Reactor. - - * ace/Select_Reactor.cpp: Removed template instantiation for - ACE_Guard> because - it's been specialized in .h file. - -Wed Aug 26 08:51:23 1998 Steve Huston - - * ace/OS.cpp (thr_keycreate): On pthreads draft 6, the call is - pthread_key_create, not pthread_keycreate. Thanks to Arturo - Montes for this fix. - -Wed Aug 26 08:32:18 1998 David L. Levine - - * tests/Reactor_Performance_Test.cpp (create_reactor): - wrapped block in "if" statement with {} to prevent syntax - error. Yet another example of why we should always use - {} in "if" statements :-) - -Wed Aug 26 07:54:49 1998 J. Russell Noseworthy - - * ace/OS.{i,cpp} (rwlock_init): use native ::rwlock_init on Solaris, - even if ACE_HAS_STHREADS isn't defined. This avoids a nasty - bug on startup with only ACE_HAS_PTHREADS defined on Solaris. - The ACE_Object_Manager fails to initialize its first - preallocated object, and core dumps when trying to use - the ACE_Log_Msg lock, which hasn't been initialized yet. - -Tue Aug 25 21:26:29 1998 James CE Johnson - - * include/makeinclude/platform_linux_lxpthread.GNU: - added NO_IMPLICIT_TEMPLATES support. To disable - -fno-implicit-templates, set NO_IMPLICIT_TEMPLATES - to anything in either your environment or on the - make command line. - -Tue Aug 25 20:04:09 1998 Douglas C. Schmidt - - * ace/config-hpux11.h: Added ACE_HAS_AIO_CALLS. Thanks to John - Mulhern for verifying this. - - * etc: Began to add the ACE tutorials. Thanks to James CE Johnson - for contributing this stuff. - - * tests/Reactor*.cpp: Fixed all the Reactor tests so that they'd - abide by the appropriate design rules. Thanks to Hans Rohnert - for reporting this. - -Tue Aug 25 19:31:37 1998 David L. Levine - - * ace/Memory_Pool.i (~ACE_Lite_MMAP_Memory_Pool,~ACE_MMAP_Memory_Pool): - swapped to avoid use of ~ACE_MMAP_Memory_Pool before its linline - definition. - -Tue Aug 25 18:48:50 1998 Irfan Pyarali - - * ace/Service_Config.cpp (parse_args): Changed the default for - ACE_Service_Config::no_static_svcs_ to be 1. This means that by - default static services (ACE_Naming_Context and - ACE_Service_Manager) will *not* be loaded into the Service - Repository. The -n option remains the same for backward - compatibility, i.e., it sets ACE_Service_Config::no_static_svcs_ - to 1. -y is a new option that sets - ACE_Service_Config::no_static_svcs_ to 0. - - The motivation for this change was to minimize the ACE - footprint, i.e., only load them if the program requires it. - -Tue Aug 25 18:28:11 1998 Nanbor Wang - - * ace/OS.i (strdup): Changed ::strlen to ACE_OS::strlen so we can - get the actual length for UNICODE strings. Thanks to Dana - Hackman for reporting this. - - Also, the size of the allocated memory should be - (strlen(s)+1)*sizeof(wchar_t), not strlen(s)*sizeof(wchar_t)+1. - -Tue Aug 25 14:33:46 1998 Carlos O'Ryan - - * ace/XtReactor.cpp: - The lock type for the ACE_XtReactor was wrong. - -Tue Aug 25 13:36:10 1998 Alexander Babu Arulanthu - - * tests/Aio_Platform_Test.cpp (do_sysconf): Fixed the VxWorks - warnings. - -Tue Aug 25 13:04:00 1998 Irfan Pyarali - - * ace/Memory_Pool: Added virtual destructors. - -Tue Aug 25 10:38:52 1998 Carlos O'Ryan - - * bin/auto_compile: - Added orbsvcs/test/Property/run_test.pl. - The Simple test was moved to Simple/time. - -Tue Aug 25 10:45:50 1998 Alexander Babu Arulanthu - - * tests/Aio_Platform_Test.cpp: Fixed the SunCC errors about - missing function prototypes. Also put the various - routines under "#if defined " - statements. - -Tue Aug 25 07:42:40 1998 David L. Levine - - * ace/Memory_Pool.cpp: changed ACE_Auto_Basic_Array_Ptr - template instantiation to ACE_Auto_Basic_Array_Ptr. - - * examples/IPC_SAP/UPIPE_SAP/ex3.cpp (consumer): changed - ACE_Auto_Basic_Ptr to ACE_Auto_Basic_Array_Ptr . - - * tests/Reactor_Performance_Test.cpp, - examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp: - removed explicit ACE_Auto_Basic_Array_Ptr instantiation - because it's now in libACE. - - * include/makeinclude/wrapper_macros.GNU: added BUILD - definition when building static libs only. This was necessary - to allow the TAO/orbsvcs/tests/Simulator/{EventSup,DOVEMIB} - makes to work properly on both Solaris and VxWorks. - It also means that BUILD is no longer necessary in most Makefiles. - - * tests/Message_Queue_Notification_Test.cpp (main): removed - trailing ".cpp" from log file name. - - * ace/config-sunx86-sunc++-4.x.h: removed because it wasn't being - maintained, because config-sunos5.{5,6}.h are supported on Solaris86. - - * include/makeinclude/wrapper_macros.GNU: fixed determination - of whether the g++ version supports exception handling. Assume - that it doesn't on VxWorks. Thanks to Margherita Vittone Wiersma - for reporting this. - - * include/makeinclude/platform_vxworks5.x_g++.GNU: use := instead - of += to set PATH, because += seems to insert a space. - -Tue Aug 25 05:23:11 1998 Nanbor Wang - - * tests/Message_Queue_Notifications_Test.dsp: Fixed something.... - - * tests/tests.dsw: Fixed a typo. - - * ace/ace_{dll,lib}.dsp: - * ace/Makefile: Added Select_Reactor_T and Select_Reactor_Base. - Rebuilt file dependencies. - - * ace/Select_Reactor[_Base,_T].{h,i,cpp}: Templatized - ACE_Select_Reactor and gangs. The original Select_Reactor files - are splited into three sets of files. Select_Reactor_Base - defines common components used by Select_Reactor and defines - Select_Reactor_Base class. Select_Reactor_T defines the - template classes. Select_Reactor instantiates necessary - template classes. Next step is to add template specialization - for ACE_Guard< ACE_Select_Reactor_Token_T >. - - * ace/Synch.{h,i}: Added a new class ACE_Noop_Token which is a - subclass of ACE_Null_Mutex. It supports a null renew method. - This class should be called ACE_Null_Token but the name is - already used. - -Tue Aug 25 01:38:40 1998 Douglas C. Schmidt - - * examples/Threads/task_three.cpp (main): Fixed this example so - that it works portably with signals. Thanks to Susan Liebeskind - for reporting this. - - * tests/Aio_Platform_Test.cpp: Removed the forward decls - so that don't conflict with the use of "static" later on. - Thanks to David Levine for reporting this. - -Mon Aug 24 22:23:33 1998 David L. Levine - - * examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp: removed unnecessary - includes of fstream.h. - -Mon Aug 24 18:11:39 1998 Irfan Pyarali - - * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): This - memory pool uses "new" to create memory chunks for the Malloc - class. However, since it did not keep track of this memory, - these chunks were leaked. - - The solution was to keep tarck of the chunks allocated and - delete them in release(). - - * ace/Object_Manager.cpp (~ACE_Object_Manager): Moved TSS cleanup - *before* Service_Config::close(). We need this to happen since - DLL related TSS objects need to get cleaned up *before* the DLL - is unlinked. The only downside to this order of things is that - Log_Msg will also get cleaned up by TSS cleanup, and we need to - make sure that we do not access Log_Msg after TSS cleanup. - - For this to work, we need to make sure of two things: user code - is not called and ACE does not use Log_Msg after this after TSS - resources have been cleaned up. The only major code that is - called is Service_Config::close(). Since - Service_Config::fini_svcs() has already been called, - Service_Config::close() only unlinks the DLLs and does not call - into user code. - - * ace/Service_Repository.cpp (close): Don't access Log_Msg since - it has already been deleted by the time this code runs. - - * ace/Service_Config.cpp (close): Don't access Log_Msg since it - has already been deleted by the time this code runs. - -Mon Aug 24 18:13:58 1998 Douglas C. Schmidt - - * tests/Aio_Platform_Test.cpp: Fixed a few problems due - to the fact that we weren't carefully guarding against platforms - that don't support AIO macros. Thanks to Dana Hackman - for reporting this. - -Mon Aug 24 15:18:46 1998 David L. Levine - - * tests/run_tests.sh: run Message_Queue_Notifications_Test - instead of Message_Queue_Notifications_Test.cpp. - -Mon Aug 24 13:05:03 1998 Douglas C. Schmidt - - * ace/config-{chorus,WinCE,vxworks5.x}.h: Added - ACE_HAS_STRDUP_EMULATION. Thanks to Chuck Gehr for this - suggestion. - - * ace/OS.i (strdup): Removed complicated #ifdef and replaced it - with ACE_HAS_STRDUP_EMULATION. - -Mon Aug 24 10:41:07 1998 Alexander Babu Arulanthu - - * ace/OS.h: Provided null defitions for all the wait - status macros for ACE_WIN32 platform. - -Mon Aug 24 00:11:00 1998 Douglas C. Schmidt - - * examples/Reactor/Misc/pingpong.cpp (run_svc): Fixed a subtle - potential "order of destruction" bug with this test. Thanks to - Hans Rohnert for reporting this. - -Sun Aug 23 21:09:55 1998 Arturo Montes - - * ace/OS.i (thr_testcancel): with ACE_HAS_PTHREAD_DRAFT6, - use ::pthread_testintr () instead of pthread_testcancel (). - Thats what FSU pthreads uses. Hopefully, MVS does also. - -Sun Aug 23 16:28:10 1998 Douglas C. Schmidt - - * ace/Process.cpp (spawn): Removed the ACE_DEBUG messages on exec - failure, etc. If apps want to know what has failed, they need - to check the return from spawn() or wait(). ACE shouldn't be - generating debugging information gratuitiously... - -Sun Aug 23 15:42:48 1998 Alexander Babu Arulanthu - - * ace/Process.cpp: Put the warning on failure on exec - ("ACE_Process::spawn (); exec failed: exiting!!!!\n") under - condition (ACE_Service_Config::debug_). - -Sun Aug 23 11:12:46 1998 Carlos O'Ryan - - * tests/Makefile: - * tests/Message_Queue_Notifications_Test.cpp: - Fixed typos. - -Sat Aug 22 21:52:23 1998 Douglas C. Schmidt - - * examples/IPC_SAP/UPIPE_SAP/ex[23].cpp: Changed the - Auto_Basic_Ptr to the Auto_Basic_Array_Ptr to avoid compilation - problems. Thanks to David Levine for reporting this. - -Sat Aug 22 20:13:37 1998 Darrell Brunsch - - * ACE-INSTALL.html: Added instructions for adding Alpha - configurations to MSVC 5 project files. - -Sat Aug 22 13:24:00 1998 Douglas C. Schmidt - - * tests/Message_Queue_Notifications_Test.cpp: Surrounded the - ACE_Barrier with conditional compilations for ACE_HAS_THREADS. - Thanks to Ganesh Pai for reporting this. - - * tests/Message_Queue_Notifications_Test.cpp: Cleaned up the - formatting a bit. - - * tests: Renamed MsgQueue_Notifications_Test.{cpp,bpr,dsp} to - Message_Queue_Notifications_Test.{cpp,bpr,dsp} to be more - consistent with spelling. - - * ace/OS.h: Moved the ACE_timer_t down a bit in the file so that - ACE_UINT is defined. Thanks to Naga for reporting this. - - * ace/OS.h: Added a "no-op" typedef for ACE_Rusage for platforms - that don't support it. Thanks to David Levine for reporting - this. - -Sat Aug 22 07:59:28 1998 David L. Levine - - * tests/UPIPE_SAP_Test.cpp (main): removed unused local - variables thr_handle_acceptor and thr_handle_connector. - - * tests/UPIPE_SAP_Test.cpp (connector): removed leading newline - in printout at end of thread execution. - - * ACE-INSTALL.html: added egcs section. Thanks to - Ganesh Pai for a portion of it. - - * examples/IPC_SAP/UPIPE_SAP/ex1.cpp (peer1); removed spurious - "new" in ACE_NEW_RETURN involcation. - - * examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp: untabified. - - * examples/IPC_SAP/UPIPE_SAP/Makefile: updated dependencies - so that the module will build, now that auto_builtin_ptr.h - has been removed. - -Sat Aug 22 00:27:06 1998 Irfan Pyarali - - * ace/Read_Buffer.i (alloc): Added new method to get to - Read_Buffer's allocator. This is necessary because we need to - free up the memory that it allocates for us. - - * ace/Service_Object.cpp (fini): New method calls fini() on - and sets the flag. This flag is - tested in the destructor so that the is not fini'ed - twice. - - * ace/Service_Repository.cpp (fini): New method to finalize (call - fini() and possibly delete) all the services. - - * ace/Service_Config.cpp (fini_svcs): New method calls - ACE_Service_Repository::instance ()->fini (). - - * ace/Object_Manager.cpp (~ACE_Object_Manager): Added a call - to close and possibly delete all service instances in the - Service Repository by calling ACE_Service_Config::fini_svcs. - This call is made *before* the library singletons (such as - the Reactor, Proactor, Thread_Manager, and Allocator) are - destroyed since the service instances maybe accessing these - singletons in the fini() and destructor methods. Note that - user singletons are destroyed before the services are - fini'ed or closed. - - * ace/Service_Config.cpp (fini_svcs): Disable log messages when - appropriate. - -Fri Aug 21 22:26:54 1998 Steve Huston - - * ace/OS.i (ACE_OS::gettimeofday): On Win32, instead of _ftime, - use GetSystemTimeAsFileTime. _ftime has a bug crossing from - daylight time to standard time in the US. - -Fri Aug 21 22:13:51 1998 David L. Levine - - * ace/OS.i (thr_cancel, thr_setcancelstate, thr_setcanceltype, - thr_testcancel): added #else - case, with ACE_NOTSUP (-1), to the various threads - types. It catches - ACE_HAS_PTHREADS && ACE_LACKS_PTHREAD_CANCEL. Thanks - to Naga for reporting this. - - * ace/OS.i (thr_setcanceltype): don't support if - ACE_LACKS_PTHREAD_CANCEL. Thanks to Naga for reporting this. - - * ace/config-chorus.h: added ACE_LACKS_PTHREAD_CANCEL. - Thanks to Naga, again. - -Fri Aug 21 20:23:44 1998 Douglas C. Schmidt - - * examples/IPC_SAP/UPIPE_SAP/ex[123].cpp: Updated these programs - to use the ACE_Auto_Basic_Ptr instead of the bizarre - auto_builtin_ptr.h file, which has been removed... Also - replaced the global thr_mgr with the ACE_Thread_Manager - Singleton and moved the include file until AFTER the - ACE includes to avoid problems with HP/UX 11's C++ compiler. - Thanks to John Mulhern for motivating these fixes. - - * ace/config-hpux-10.x.h: Added a check so that if threading is - disabled, then timespec_t does not get defined. This seems to - work around a bug with HP/UX 10.x. Thanks to Ganesh M. Pai - for reporting this. - -Fri Aug 21 19:54:26 1998 Carlos O'Ryan - - * include/makeinclude/wrapper_macros.GNU: - The ACE_HAS_EXCEPTIONS macro definition goes into CPPFLAGS now, - so make depend can use it too. - -Fri Aug 21 18:47:40 1998 Nanbor Wang - - * ace/Process.cpp (wait): Need to check if status is non-null - before accessing the exit status on NT. Thanks to Carlos for - pointing this out. - -Fri Aug 21 16:40:39 1998 Carlos O'Ryan - - * ace/config-irix6.x-sgic++.h: - * ace/OS.i: - Some platforms (notable IRIX 6.x) do not update the timer in - pthread_cond_timedwait(), this made the Semaphore test fail for - those platforms. - I modified the ACE_OS::sema_wait() function to obtain the - desired behavior. - -Fri Aug 21 15:50:05 1998 Douglas C. Schmidt - - * etc/ACE-porting.html: Updated some discussion on selecting - versions of STL that work with ACE and TAO. Thanks to Bob - Laferriere for reporting - this. - -Fri Aug 21 14:49:31 1998 Steve Huston - - * include/makeinclude/platform_hpux_gcc.GNU: Changed the default - from build without threads to build with threads. Thanks to Ganesh - Pai for this change. - -Fri Aug 21 09:25:21 1998 Douglas C. Schmidt - - * ace/OS.h: Moved several #ifdefs from Profile_Timer.h into OS.h - to clean up the code. - - * ace/Profile_Timer.h: Cleaned up the class definition to make the - OSE tool happy. Thanks to Doug Anderson for - reporting this. - - * etc: Moved the ACE-subsets.html file into $ACE_ROOT/etc. - - * ace/Synch_Options.h: Fixed a typo that was giving the OSE tool - fits! Thanks to Doug Anderson for reporting - this. - -Fri Aug 21 03:41:01 1998 Nanbor Wang - - * examples/OS/Process/process.cpp: - * examples/OS/Process/imore.cpp: Minor bug fixes. Print out of - child processes' exit status. - -Thu Aug 20 23:33:15 1998 Nanbor Wang - - * ace/Process.cpp (wait): Allow passing back the exit status of - the child process on NT. - -Thu Aug 20 19:52:21 1998 Nagarajan Surendran - - * ace/OS.i: - ACE_INLINE int - ACE_OS::thr_getspecific (ACE_thread_key_t key, void **data) - ... - #else /* this is Draft 7 or STD */ - *data = pthread_getspecific (key); - - changed the ::pthread_getspecific to pthread_getspecific as it - is a macro in Chorus. Thanks to David Levine for finding this. - -Thu Aug 20 17:05:28 1998 Douglas C. Schmidt - - * examples/Service_Configurator/Misc/Timer_Service.cpp: Added some - ACE_SVC_FACTORY_* macros for Timer_Service_1 so that it'll - compile and link properly. Thanks to David Levine for reporting - this. - -Thu Aug 20 14:39:53 1998 Nanbor Wang - - * ace/Process.{h,cpp} (ACE_Process::wait): Added a parameter of int* to - get back the exit status of a child process. - -Thu Aug 20 14:33:59 1998 Douglas C. Schmidt - - * etc/ACE-porting.html: Generalized the discussion to cover - porting TAO, as well as to explain what C++ features must/can be - supported to port ACE/TAO to a new platform. - -Thu Aug 20 05:12:24 1998 Douglas C. Schmidt - - * ACE version 4.5.31 released. - -Thu Aug 20 03:10:48 1998 Nanbor Wang - - * tests/UPIPE_SAP_Test.cpp (main): Reverted back to use - ACE_Thread. Although it's considered the "Right Thing" to spawn - threads using ACE_Thread_Manager, I'll keep this file to use - ACE_Thread to serve as an example that you can also use - ACE_Thread to do any tricks you like, and, a sanity check. - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): Don't create the - ACE_Thread_Exit object if we are not spawning the thread using - ACE_Thread_Manager. Otherwise, when a non-thread manager - spawned thread exits, the TSS clean up routing gets into an - infinite loop calling ~ACE_Thread_Exit recursively and - eventually the stack gets overflowed and the thread then - "appears" to exit normally. But in fact, TSS cleanup does not - complete at all. - - * ace/Thread_Manager.i: - * ace/Thread_Manager.cpp (at_exit,thr_self): Moved all at_exit - methods into the .i file. All at_exit methods and thr_self - don't really need to hold Thread_Manager's lock. - - Notice that after the newly spawned thread enters the - ACE_Thread_Adapter::invoke routine, we can safely manipulate its - Thread_Deacriptor because it has been registered properly. This - change should further reduce the times a thread gets started. - -Wed Aug 19 20:34:25 1998 Nanbor Wang - - * ace/README: - * ace/OS.h: Added a new macro directive - "ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER". By defining - this macro, it implicitly forces ACE to use non-static object - manager and _NOT_ instantiating ACE_Object_Manager for you and - assumes you will take the responsibility of instantiating - ACE_Object_Manager at the proper place in your programs. This - is usually used when using ACE with MFC/Windows programs. - Because the main function is defined by MFC/Windows libraries, - ACE has no way to instantiate object manager in these programs. - For programs using MFC, a good place to instantiate Object - Manger will be to define ACE_Object_Manager a member of - CApplication derived classes so it gets instantiated/destructed - properly. - - * ace/config-win32.h: Revised the comment about - ACE_HAS_NONSTATIC_OBJECT_MANAGER - -Wed Aug 19 17:15:00 1998 Douglas C. Schmidt - - * ace/Service_Config.cpp: Moved the registration of the SIGHUP - signal from the constructor to the open() method since otherwise - it'll never get called in the typical usecase... Thanks to - Susan Liebeskind for - reporting this. - -Wed Aug 19 14:11:22 1998 David L. Levine - - * ACE version 4.5.30 released. - -Wed Aug 19 13:38:40 1998 David L. Levine - - * ace/OS.cpp (ACE_TSS_Cleanup::detach): only declare local - temp_key ifdef ACE_WIN32, because it's only used there. - -Wed Aug 19 10:13:36 1998 Nanbor Wang - - * ace/OS.cpp (ACE_Thread_Cleanup::remove): Don't bother to check - the status when the object manager is shutting down. - Otherwise, we are creating another fresh ACE_TSS object all over - again. - (ACE_Thread_Cleanup::detach): When cleaning up a thread key, we - must first remove it from the internal table before actually - freeing the key to avoid race condition (the OS may reassigned - the key to other the_keycreate requests.) - - * ace/Log_Msg.cpp (close): Removed the ACE_Thread::key_free - statement. This should be handled by TSS cleanup mechanism. - - * ace/Thread_Manager.cpp (at_exit): Moved the return statement - after #endif macros to avoid the no return compiler warning. - - * tests/UPIPE_SAP_Test.cpp (main): Changed to use - ACE_Thread_Manager to spawn and wait for threads so the TSS - object gets cleanup correctly. Using plain vanilla - ACE_Thread::spawn and/or ACE_OS::thr_create no longer works. - -Wed Aug 19 10:06:25 1998 David L. Levine - - * etc/ACE-guidelines.html: @added guidelines to check for - success of an attempted open of an existing file, and to not - release copyrighted, etc., material with ACE/TAO. - - * tests/SOCK_Connector_Test.cpp (find_another_host): check to see - if the other host is up, by attempting a blocking connection with - it. Only return another host if the connection succeeds. - Also, cache the other host so that multiple calls will not - have to repeat the connection attempt. - -Wed Aug 19 08:25:20 1998 Douglas C. Schmidt - - * examples/Service_Configurator/Misc/Timer_Service.cpp: Changed - Timer_Service_2 to Timer_Service_1 since it was a typo. Thanks - to Irfan for reporting this. - -Tue Aug 18 22:10:43 1998 David L. Levine - - * ace/config-fsu-pthread.h,config-hpux-10.x.h,config-mit-pthread.h, - config-mvs.h,config-osf1-{3.2,4.0}.h,config-sco-5.0.0-mit-pthread.h, - config-sunos5.{5,6}.h,config-tandem.h: - removed ACE_HAS_ONEARG_SIGWAIT. It's no longer used. - -Tue Aug 18 16:50:28 1998 Irfan Pyarali - - * ace/Thread.i (sigsetmask): Renamed parameter name since it - conflicts with STL class name. Thanks to Kent Watsen - for pointing this out. - - * examples/Reactor/Proactor/test_proactor.cpp (handle_write_stream): - Fixed incorrect unary minus operator application. - -Tue Aug 18 16:43:00 1998 David L. Levine - - * ACE version 4.5.29 released. - -Tue Aug 18 14:15:23 1998 Steve Huston - - * include/makeinclude/platform_aix4.2.GNU: Don't link programs - against libACE.a - just against libACEshr.a (the shared lib). - - * include/makeinclude/platform_hpux_aCC.GNU: - * include/makeinclude/platform_hpux_gcc.GNU: Switch support for threads - on and off using "make threads=0" or "make threads=1". The default - for aCC is to use threads, and for gcc is to not. I deduced the - defaults from the old lib settings. Sorry if the gcc one is wrong. - - * ace/config-hpux-10.x.h: Added ACE_HAS_SIGISMEMBER_BUG, plus... - * ace/config-hpux11.h: Set threads things based on the setting - of ACE_HAS_THREADS, which gets set in platform_macros.GNU (see above) - to build with threads support. - -Tue Aug 18 10:57:32 1998 Carlos O'Ryan - - * include/makeinclude/rules.nested.GNU: - Removed extra enter/leave messages at each directory, GNUmake - does it for you. - -Tue Aug 18 08:15:30 1998 David L. Levine - - * tests/Aio_Platform_Test.cpp (do_sysconf): on VxWorks, don't - call ACE_OS::sysconf () because it's not supported. - - * bin/make_release: added -P to cvs checkout command, to ignore - empty diretories. - -Mon Aug 17 22:56:17 1998 Nanbor Wang - - * tests/version_tests/version_tests.dsw: - * tests/version_tests/Dynamic_Priority_Test.dsp: Added a new - project (as shown) into the workspace. - -Mon Aug 17 17:17:52 1998 Steve Huston - - * ace/Makefile: Removed IO_Cntl_Msg from files to build. It's empty. - - * include/makeinclude/platform_hpux_aCC.GNU: Added '302' to warnings - to suppress; changed LIBS from '=' to '+=' to work better with TAO - builds. Thanks to John Mulhern for these fixes. - -Mon Aug 17 17:04:31 1998 Nanbor Wang - - * tests/Env_Value_Test.cpp (main): Changed to use ASYS_TCHAR* for - arguments in main. - -Mon Aug 17 15:51:30 1998 David L. Levine - - * ace/OS.i (thr_sigsetmask): with ACE_HAS_PTHREADS_DRAFT4 or - ACE_HAS_PTHREADS_DRAFT6, added :: in front of sigprocmask () - call. Without it, g++ on LynxOS was warning about use of - sigprocmask () before definition. - -Mon Aug 17 14:59:13 1998 Douglas C. Schmidt - - * etc: Added a new file, ACE-porting.html, which explains how to - port ACE to new OS platforms. Thanks to Gabriel Lima - for submitting this. - - * ace/FILE_Connector.h: Changed ACE_FILE_Connector so that it no - longer inherits from ACE_FILE. This relationship is unnecessary - and was not used. Thanks to Byron Harris for reporting this. - -Mon Aug 17 12:14:13 1998 Steve Huston - - Large number of small changes (all listed below) to begin aligning - the large number of Pthreads-related definitions around the 4 supported - drafts: 4, 6, 7, as well as the standard (also known as draft 10). - The notation for "DCE threads" is gone. DCE threads are primarily - draft 4, plus platform-specific modifications. Now all code must - declare the pthreads draft, and handle any platform/implementation - oddities as such. - As time goes on, I will remove more of the ACE_HAS_... and ACE_LACKS... - things that are actually changes with the pthreads drafts. - I tested these on Solaris 2.5.1 (CC), HP-UX 10.20 and 11.00, AIX 4.2.1, - and sanity-tested on NT/MSVC (though no changes affected the WTHREADS - parts). - - * ace/README: Clarified use of Pthreads macros. - - * ace/config-hpux-10.x.h: - * ace/config-lynxos.h: - * ace/config-osf1-3.2.h: - * ace/config-osf1-4.0.h: - Changed from DCE threads to ACE_HAS_PTHREADS_DRAFT4. - - * ace/config-fsu-pthread.h: - * ace/config-m88k.h: - * ace/config-mvs.h: Added ACE_HAS_PTHREADS_DRAFT6. - - * ace/config-aix-4.1.x.h: - * ace/config-aix-4.2.x.h: Added ACE_HAS_PTHREADS_DRAFT7. - - * ace/config-chorus.h: - * ace/config-dgux-4.x-ghs.h: - * ace/config-hpux11.h: - * ace/config-irix6.x-g++.h: - * ace/config-irix6.x-sgic++.h: - * ace/config-linux-lxpthreads.h: - * ace/config-linux-pthread.h: - * ace/config-mit-pthread.h: - * ace/config-osf1-4.0.h: - * ace/config-sco-5.0.0-mit-pthread.h: - * ace/config-sunos-5.5.h: (also remove ACE_HAS_STHREADS if - _POSIX_PTHREAD_SEMANTICS is defined by user). - * ace/config-sunos5.6.h: - - Changed to / added ACE_HAS_PTHREADS_STD. - - * ace/config-hpux-10.x-g++.h: Changed over to use the base file - config-hpux-10.x.h. - - * ace/OS.h: - * ace/OS.i: - * ace/OS.cpp: - Unified the compile ifdefs for pthreads around ACE_HAS_PTHREADS, - ACE_HAS_PTHREADS_DRAFT{4, 6, 7} and ACE_HAS_PTHREADS_STD. - Removed all use of ACE_HAS_DCETHREADS; put in platform-specific - settings where needed. - - * ace/Sched_Params.cpp: - * ace/Synch.cpp: Removed the use of ACE_HAS_DCETHREADS. - -Mon Aug 17 12:10:54 1998 Nanbor Wang - - * ace/ace_{dll,lib}.dsp: Removed Message_Queue_T.cpp from and included - Message_Queue.cpp into source files that get build. Hmm, I - thought I made this change long ago. - - * ace/ace_ce_dll.dsp: Changed the DLL output directories for some - configurations. - -Mon Aug 17 11:25:18 1998 Carlos O'Ryan - - * ace/Strategies_T.h: - In some platforms we need to include "ace/Thread_Manager.h" - because its definition is used in the inline methods of some - templates, and a few platform actually check the syntax of - template code, even if the template is not used. - -Mon Aug 17 10:06:01 1998 David L. Levine - - * netsvcs/lib/Server_Logging_Handler_T.cpp: replaced - #include with #include "ace/OS.h", so that - _REENTRANT gets defined with g++. - - * apps/Gateway/Peer/Peer.{h,cpp} (Peer_Connector::open): added - (unused) arguments to this function. They are only provided to - avoid a compiler warning about hiding the virtual function - ACE_Connector::open (ACE_Reactor *, - int). - - * tests/Dynamic_Priority_Test.cpp (run_performance_test): - added delete of time_offsets array. The test Purifies - cleanly now. - -Mon Aug 17 00:05:02 1998 Irfan Pyarali - - * examples/Reactor/ReactorEx/test_removals.cpp (main): Fixed - signed/unsigned mismatch. - - * examples/Reactor/ReactorEx/test_talker.cpp (handle_read_stream): - Fixed incorrect unary minus operator application. - -Sun Aug 16 20:57:12 1998 Nanbor Wang - - * ace/OS.i (dlerror): Fixed a typo. Thanks to Ossama Othman - for reporting this. - -Fri Aug 14 18:58:29 1998 Alexander Babu Arulanthu - - * tests/Aio_Platform_Test.cpp : Changed 's to - ACE_OS::sysconf's. - -Fri Aug 14 11:41:23 1998 Steve Huston - - * ace/OS.i (ACE_OS::dlclose): On HP-UX 10.x and 32-bit 11.00, do - not actually call shl_unload if the library's ref count is more than - 1. If shl_unload is called, it unloads the library, regardless of - the reference count. This has the affect of never unloading a - library that's been loaded more than once, until the OS unloads it - at process run-down. Better than invalidating references to it, - though. The wonder of wrappers at work for you... - -Fri Aug 14 10:01:05 1998 David L. Levine - - * ace/Basic_Types.h (ACE_UINT64_DBLCAST_ADAPTER): with - ACE_LACKS_LONGLONG_T, only use low 32 bits. We could devise - a conversion from ACE_U_LongLong to double that uses all - 64 bits; but, it's probably easier for users to upgrade - their hardware and/or compilers to ones that support 64 - bit ints :-) - -Thu Aug 13 19:29:33 1998 Douglas C. Schmidt - - * ace/Message_Queue_T.i: Changed the is_empty_i() method to check - if this->tail_ == 0 rather than this->cur_bytes_ <= 0 && - this->cur_count_ <= 0. Thanks to Dirk Broer - for suggesting this. - -Thu Aug 13 17:45:00 1998 Chris Gill - - * ace/Basic_Types.h: added ACE_UINT64_DBLCAST_ADAPTER macro - to patch unimplemented UINT64 to double casts - -Thu Aug 13 13:34:52 1998 David L. Levine - - * os-patches/linux-patches.html: the af_inet.c patch is only - needed through Linux kernel version 2.0.34. - - * tests/Conn_Test.cpp: disabled ACE_Hash_Addr template - specialization on non-egcs g++. - - * tests/Process_Strategy_Test.{h,cpp} (~Process_Strategy): - added an explicit destructor. g++ 2.7.2.3 got very - confused ("Internal compiler error") without it, apparently - when generating it implicitly. - - * tests/ MsgQueue_Notifications_Test.cpp (producer): removed - unused local "result". - -Wed Aug 12 22:45:50 1998 Nanbor Wang - - * tests/MsgQueue_Notifications_Test.cpp: Added an explicit - template instantiation. - -Wed Aug 12 21:32:05 1998 Carlos O'Ryan - - * ace/Message_Block.h: - * ace/Message_Block.i: - * ace/Message_Block.cpp: - Enabled the base() method, it replaces the internal buffer and - resets the Message_Block. There were other ways to do this (like - calling data_block->base()), but some users find it convenient. - I also modified the Data_Block::base() method to release any - memory held by the class before the method is called. Thanks to - Peter.Gorgia@libnet.com for pointing this out. - -Wed Aug 12 17:43:33 1998 Nanbor Wang - - * tests/MsgQueue_Notifications_Test.cpp: The watermark test which - uses cv's signaling to notify other threads is also merged into - this file. - - * tests/MsgQueue_Water_Mark_Test.{dsp,cpp}: Removed. - -Wed Aug 12 17:12:57 1998 Darrell Brunsch - - * APC.DSP: - * Abondoned.dsp: - * Console_Input.dsp: - * Directory_Changes.dsp: - * Exceptions.dsp: - * Multithreading.dsp: - * Network_Events.dsp: - * Prerun_State_Changes.dsp: - * Registration.dsp: - * Registry_Changes.dsp: - * Removals.dsp: - * Talker.dsp: - * Timeouts.dsp: - * Window_Messages.dsp: - * test_abandoned.cpp: - * test_apc.cpp: - * test_window_messages.cpp: - Added updated versions of project files (with correct include - directories). Also changed the

    's to take in argc and - argv. Thanks to Jeff Hellzen - for submitting these changes. - -Wed Aug 12 16:16:38 1998 Nanbor Wang - - * tests/MsgQueue_Notifications_Test.cpp: Since this test doesn't - use threads at all, I removed the #if ACE_HAS_THREADS macro. - -Wed Aug 12 14:57:51 1998 Jonathan Biggar - - * ace/config-sunos5.5.h: wrapped thread-related defines with - "#ifdef _REENTRANT". - - * include/makeinclude/platform_sunos5_sunc++.GNU,wrapper_macros.GNU, - ACE-INSTALL.html: added support for "threads" make option. - -Wed Aug 12 02:06:02 1998 Nanbor Wang - - * tests/test_config.h (ACE_Test_Output): It seemed like redirecting - the Log_Msg output back to stderr in close was a bit too early - and some messages popped out after some tests ran successfully. - Moved the redirecting code into the destructor. - -Tue Aug 11 22:47:49 1998 David L. Levine - - * ace/TP_Reactor.cpp (dispatch_io_set): added - ACE_UNUSED_ARG (ready_mask). - - * tests/test_config.h: added - ACE_Singleton template - instantiation. This shouldn't be done in a header, and - I wouldn't be surprised if it breaks somewhere. But, we - don't have any other need for a .cpp file to link into all tests. - -Tue Aug 11 17:30:32 1998 Steve Huston - - * tests/test_config.h: Fixed ACE_Test_Output to get torn down clean - in all cases by changing it from a static to an ACE_Singleton. - Re-enabled it for Win32, non-WinCE. - -Tue Aug 11 15:51:47 1998 Irfan Pyarali - - * ace/XtReactor.h (ACE_XtReactor): Changed the constructor so that - the XtAppContext can be passed later. This scheme allows for a - default constructor. Thanks to J-M Strauss - for suggesting this. - -Tue Aug 11 12:35:10 1998 Nanbor Wang - - * ace/OS.i (fopen): On WinCE, reset the handle to 0 if CreateFile - fails so we can detect errors when using the emulated FILE - pointer on CE. - - * tests/test_config.h (~ACE_Test_Output): Changed !defined - (ACE_HAS_WINCE) to !defined (ACE_WIN32). When using non-static - object manager, the singleton ACE_Log_Msg may no longer exist - here and the reseting here just causes access violations. Other - platforms which use non-static might suffer the same sympton. - -Tue Aug 11 12:29:03 1998 David L. Levine - - * os-patches/linux-patches.html: the gas patch on alphas - isn't necessary with binutils-2.9.1. - -Tue Aug 11 12:23:09 1998 Nanbor Wang - - * ace/ARGV.{h,cpp}: Made a series of changes to make the file CE - friendly. - - * ace/Message_Queue_T.cpp: Adjusted the indentation. - -Tue Aug 11 02:06:55 1998 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (dispatch_handles): Because dispatch_index - is absolute, nCount should be set to - (max_handlep1 - dispatch_index) instead of (nCount - - dispatch_index). Thanks to Alberto Villarica - for pointing this out. - -Mon Aug 10 20:12:21 1998 Steve Huston - - * ace/Log_Msg.cpp: On HP-UX 10.x, display thread's readable number - rather than an int represenation of a pointer. - - * tests/test_config.h (ACE_Test_Output): When destroying - ACE_Test_Output, make sure to remove all traces of it from - ACE_Log_Msg instance. - - * tests/Dynamic_Priority_Test.cpp: Don't try to set process-wide - scheduling if it's not supported on the platform. - - * tests/Thread_Manager_Test.cpp: Don't do a kill on pthreads draft - 4 platforms. This is a NOP for now - it will make a difference when - I check in more threads-related changes later. - -Mon Aug 10 10:35:26 1998 Douglas C. Schmidt - - * Added the ACE-subsets.html file to the ACE directory so that - we can all modify it. - -Mon Aug 10 10:29:29 1998 Nanbor Wang - - * ace/OS.i (shm_open): There's no need to mess with the security - attribute here. - -Mon Aug 10 01:09:05 1998 Nanbor Wang - - * ace/OS.{h,i}: Added a new function - "default_win32_security_attributes" to return the defualt - security setting of kernel objects. By default, this function - is a no-op. You must define - ACE_DEFINES_DEFAULT_WIN32_SECURITY_ATTRIBUTES for this function - to return a SECURITY_ATTRIBUTES object that has no access - restriction. - - Modified all functions that use Win32 kernel objects to invoke - this new function to get the appropriate security attributes. - Thanks to Ivan Murphy for - suggesting this. - - -Sun Aug 09 23:26:39 1998 Douglas C. Schmidt - - * ACE version 4.5.28 released. - -Sun Aug 9 23:08:51 1998 Douglas C. Schmidt - - * Checked in a bunch of files/directories that I'd neglected - to check in before. - -Sun Aug 09 23:02:24 1998 Douglas C. Schmidt - - * ACE version 4.5.27 released. - -Sun Aug 9 15:04:41 1998 Darrell Brunsch - - * netsvcs/clients/Tokens/manual/manual.cpp: Changed all instances - of "#if (ACE_WIN32)" to "#if defined (ACE_WIN32)" - - * netsvcs/netsvcs.dsw: Added this workspace which contains all the - netsvcs projects. - - * netsvcs/clients/Tokens/collection/collection.dsp: - * netsvcs/clients/Tokens/collection/collection.dsw: - * netsvcs/clients/Tokens/deadlock/deadlock.dsp: - * netsvcs/clients/Tokens/deadlock/deadlock.dsw: - * netsvcs/clients/Tokens/invariant/invariant.dsp: - * netsvcs/clients/Tokens/invariant/invariant.dsw: - * netsvcs/clients/Tokens/manual/manual.dsp: - * netsvcs/clients/Tokens/manual/manual.dsw: - * netsvcs/clients/Tokens/mutex/mutex.dsp: - * netsvcs/clients/Tokens/mutex/mutex.dsw: - * netsvcs/clients/Tokens/rw_lock/rw_lock.dsp: - * netsvcs/clients/Tokens/rw_lock/rw_lock.dsw: - Added these MSVC projects and workspaces. Thanks to Jeff - Hellzen for submitting these. - - * netsvcs/clients/Logger/direct_logging.dsp: - * netsvcs/clients/Logger/indirect_logging.dsp: - * netsvcs/clients/Naming/Client/Client_Test.dsp: - * netsvcs/clients/Naming/Client/main.dsp: - * netsvcs/lib/netsvcs.dsp: - * netsvcs/servers/servers.dsp: - Mainly just updated all of these and made sure that they worked. - -Sun Aug 9 09:17:16 1998 Douglas C. Schmidt - - * ace/Strategies_T.cpp (connect_svc_handler): Changed the call to - this->CONNECT_STRATEGIES::connect_svc_handler() to avoid compile - problems with GCC on LynxOS. Thanks to Sergio for reporting - this. - -Sat Aug 8 09:37:27 1998 Carlos O'Ryan - - * ace/INET_Addr.cpp: - Reverted the operator== optimization, it turns out that the - definition of struct in_addr is not portable after all. Maybe - there is a set of macros to make it portable? - - * ace/ACE.h: - * ace/ACE.cpp: - Returning is unnecesary; and gives no more - guarantees that , plus it gives warnings in - IRIX/MIPSPro compilers. - - * ace/Synch.cpp: - Removed explicit instantiations of ACE_Guard, - the class is specialized so no instantiation is necessary. Same - thing for ACE_Write_Guard and ACE_Read_Guard. - -Fri Aug 7 23:18:53 1998 Carlos O'Ryan - - * ace/config-sunos5.5.h: - Updated the new ACE_CC_NAME macros (and friends) so they work - with egcs (and hopefully g++). - - * tests/MT_SOCK_Test.cpp: - Removed double comma in function call. - -Fri Aug 7 21:39:26 1998 Carlos O'Ryan - - * ace/INET_Addr.cpp: - Compare the fields of in_addr instead of calling memcmp. - - * ace/Message_Block.cpp: - * ace/Message_Block.h: - * ace/Message_Block.i: - The Message_Block can receive an allocator for the data block, - so instead of creating them on the heap they can be allocated - from a TSS allocator or other memory pool. By default we use - ACE_New_Allocator. - - * apps/gperf/Makefile: - The Id was wrong. - - * bin/auto_compile: - Added gperf to the default list of directories. - -Fri Aug 7 13:58:58 1998 Gonzalo Diethelm - - * bin/envinfo.cpp: - Added this program, which will print the version information for - ACE, the OS and C++ compiler. The idea is to use this when posting - to the ACE mailing list. - - * ace/ACE.h: - * ace/ACE.cpp: - Added static methods to retrieve compiler information (name, major - version, minro version, beta version). - - * ace/config-sunos5.5.h: - Defined the compiler information macros for this platform. - - * bin/Makefile: - Modified the Makefile to support multiple binaries in the - directory (according to tests/Makefile). - - * bin/clone.cpp: - Added RCS Id. - -Fri Aug 7 12:46:42 1998 Douglas C. Schmidt - - * ace/Activation_Queue.h: Updated the documentation to indicate - the need for absolute rather than relative time values. Thanks - to Johannes Gutleber for reporting - this. - -Fri Aug 07 02:06:54 1998 Nanbor Wang - - * tests/MsgQueue_Water_Mark_Test.{dsp,cpp}: Added a new test to - make sure the water mark stuff works. It still needs to be - clean up to compile with g++. - -Fri Aug 07 01:00:55 1998 Irfan Pyarali - - * ace/Strategies_T.i (operator==): Added a method to compare a - ACE_Hash_Recyclable and a ACE_Recyclable. Also inlined a shit - load of small methods. - - * ace/Strategies_T.cpp (connect_svc_handler): If is not - connected to the correct address or is busy, we will not use it. - Therefore we need to set it to zero. - - * ace/Synch: Added template specializations for - ACE_Guard, ACE_Write_Guard, and - ACE_Read_Guard. - -Thu Aug 06 14:59:22 1998 Douglas C. Schmidt - - * ace/Thread_Manager.cpp: Updated all uses of cancel_thr for the - various apply*() methods so that they pass along the - async_cancel flag. - - * ace/Thread_Manager.cpp: Added a new ARG to the ACE_EXECUTE_OP - macro. Believe it or not, this change actually reduced the - amount of special-case code because we can now treat kill_thr() - just like the other *_thr() methods. Irfan was amazed ;-). - - * ace/Thread_Manager: Added a new flag called "async_cancel" to - all the Thread Manager cancel*() methods. This flag is disabled - by default (hence, there are no changes to the ACE Thread - Manager semantics). If it is enabled, however, it will attempt - to perform an asychronous thread cancellation on the - corresponding thread id(s). - -Thu Aug 6 17:44:50 1998 Douglas C. Schmidt - - * tests/Priority_Task_Test.cpp: Enhanced this test so that it runs - correctly on platforms where you must be root to muck around - with thread priorities. Thanks to John Mulhern - <9107@mn3.lawson.lawson.com> for reporting this. - - * tests/MT_SOCK_Test.cpp: Reformatted the code to make it more - readable and also to remove a C-style cast. - - * ace/Message_Queue_T.h: Improved the documentation of the low - water mark and high water marks. Thanks to Umar for encouraging - this. - -Thu Aug 6 20:41:44 1998 James C Hu - - * ace/Filecache.cpp: Avoided a deadlock detected by Tom Dobridge - (thanks!). - -Thu Aug 06 14:59:22 1998 Irfan Pyarali - - * ace/Strategies_T.cpp (connect_svc_handler): If is not - connected to the correct address or is busy, we will not use it. - Therefore we need to set it to zero. - - * ace/Synch: Added template specializations for - ACE_Guard, ACE_Write_Guard, and - ACE_Read_Guard. - -Thu Aug 6 14:30:11 1998 Carlos O'Ryan - - * ace/config-irix6.x-sgic++-nothreads.h: - Use template specializations instead of pragmas if the compiler - is 7.2 or better. - - * ace/config-irix6.x-sgic++.h: - The is not necessary in IRIX 6.4 - -Thu Aug 06 14:11:15 1998 Nanbor Wang - - * ace/Message_Queue_T.cpp: Make sure to check if the cur_bytes_ is - <= to the low_water_mark before signaling threads trying to - enqueue a Message_Block. - - * ace/Message_Queue_T.cpp: Fixed a bunch of code to use the - ACE_NEW_RETURN macro to ensure that errno is set correctly. - - * ace/Message_Queue.h: Changed the DEFAULT_LWM to be the same as - the DEFAULT_HWM since that's the "Right Way"[TM] to handle - this... Thanks to Umar Syyid for helping to - track this down. - - * ace/Message_Queue_T.i (is_empty_i): Removed the low water mark - logic entirely because this isn't the right place to put it. - Also reverted back to using && rather than || since we need - to handle "0-sized" messages. - -Thu Aug 6 09:41:22 1998 Nagarajan Surendran - - * ace/ARGV.{h,cpp} : Added a new - ACE_ARGV(ASYS_TCHAR *first_argv,ASYS_TCHAR *second_argv,int) - which creates a new ARGV which is the concatenation of the 2 argvs. - - Also added a new private method argv_to_string - which converts an argv to a string. - -Thu Aug 6 08:56:02 1998 Douglas C. Schmidt - - * ace/Module.h: Pointed out that ACE_Module should't be subclassed - -- ACE_Task should be subclasses. Thanks to Barney Dalton - for pointing this out. - -Wed Aug 05 23:57:16 1998 Irfan Pyarali - - * ace/Reactor.cpp (end_event_loop): Changed the code so that *all* - threads are woken up. Thanks to Olivier Lau - for pointing this bug out. - - * examples/Reactor/ReactorEx/test_multithreading.cpp (main): - Changed Reactor->close() to Reactor::end_event_loop(). - -Wed Aug 5 23:12:54 1998 Douglas C. Schmidt - - * include/makeinclude/wrapper_macros.GNU: Changed - PURE_CACHE_DIR = $(PURE_CACHE_BASE_DIR)-$(LOGNAME)-$(CXX) - - to - - PURE_CACHE_DIR = $(PURE_CACHE_BASE_DIR)-$(LOGNAME)-$(notdir $(CXX) ) - - Thanks to John Mulhern <9107@mn3.lawson.lawson.com> for this. - -Wed Aug 05 14:53:18 1998 Irfan Pyarali - - * ace/Strategies_T.cpp (connect_svc_handler): When using this - method, the user was required to pass us a zero for the - svc_handler. We would either find them a non-busy one, or will - create a new one. - - Unfortunately, the svc_handler lookup was taking too long. - Therefore, the following change was made to the - connect_svc_handler algorithm: the user is now allowed to pass - in the svc_handler that they used last as a "hint". The - algorithm first checks to see if the "hint" svc_handler is - connected to the correct address and is recyclable. If it is, - then it recycles the "hint" svc_handler and gives it back to the - user. This should improve the lookups in most cases. - - * ace/Svc_Handler.cpp (recycling_act): Added accessor to get the - . - - * tests/Conn_Test.cpp (idle): Added method so that we can tell - when a Svc_Handler is being set to idle. Also changed the test - so that it can use the new "hint" mechanism in the cached - connector. - -Wed Aug 5 16:12:34 1998 Nanbor Wang - - * ace/Log_Msg.cpp: Replaced usage of ACE_OS::thr_* with - ACE_Thread::*. Thanks to Arturo Montes - for sending the patches. - -Wed Aug 5 11:07:12 1998 Douglas C. Schmidt - - * ace/Service_Manager: Cleaned up the documentation and formatting - a bit. - - * ace/Message_Queue_T.i: Changed the computation of is_empty_i() - so that it's - - return this->cur_bytes_ <= this->low_water_mark_ || this->cur_count_ <= 0; - - i.e., we use an || rather than a &&. Thanks to Umar for - reporting this. - - * ace/Message_Queue_T.i: Changed the computation of is_empty_i() so - that it doesn't consider the queue to be empty unless the - cur_bytes_ <= the low_water_mark_ (which defaults to 0 so that - no existing code is affected). This change makes it possible - for producer/consumer threading applications to avoid the "silly - window syndrome." Thanks to Umar Syyid for - suggesting this. - -Wed Aug 05 00:10:27 1998 Irfan Pyarali - - * ace/OS.i (strnstr (both Unicode and Multibyte versions)): - * ace/SString.cpp (strstr): - Fixed "off by one error" in searching algorithm. Thanks to - Byron Harris for pointing this out. - - * tests/SString_Test.cpp (main): Added new test cases. - -Tue Aug 4 21:56:16 1998 Nanbor Wang - - * tests/TSS_Test.cpp: - * examples/Thread/thread_specific.cpp: Replaced ACE_OS::thr_* with - ACE_Thread::*. Thanks to Arturo Montes - for sending the patches. - -Tue Aug 4 18:44:54 1998 Gonzalo Diethelm - - * ACE-INSTALL.html: - Updated the file to recommend the creation of config.h as a - regular file that includes the appropriate platform config file, - instead of setting it to be a symlink. This is more flexible and - allows the user to redefine some of the ACE configuration - parameters. - - * ace/config-linux-common.h: - As an example of the above, now the user can #define - ACE_HAS_IP_MULTICAST in his config.h file to 0, and he won't be - using multicast under linux. This is clearer than having to edit - the config-linux-common.h file, which will now respect the user's - settings (if any).. - -Tue Aug 4 17:39:12 1998 Steve Huston - - * ace/ACE_Library.{mak mdp}: Added TP_Reactor.cpp to the project. - - * tests/Aio_Platform_Test.cpp: Don't try to sysconf() for the AIO - values if there's no chance of AIO on the system (_POSIX_ASYNC_IO - not defined at compile time). - - * examples/OS/Process/Process.dsp: Link against ace.lib for Release, - aced.lib for Debug (these were reversed). - -Tue Aug 4 12:09:51 1998 Douglas C. Schmidt - - * ace/OS.h: Clarified the fact that the ACE_DEFAULT_MUITCAST_ADDR - must be within the range for host group addresses: 224.0.0.0 to - 239.255.255.255. Thanks to Christa Schwanninger - for reporting this. - -Tue Aug 04 11:01:18 1998 Nanbor Wang - - * bin/GenExportH.BAT: Moved from TAO/TAO_IDL/. - - * ace/Token.{h,cpp} (signal_all_threads): Added this method which - changes the return values of all acquire method to 2. The last - thread waiting for the token will reset the signal state - (therefore, there's NO cancel_signal_all_threads method.) - (shared_acquire): Return 2 if the token is signaled after - acquiring the token successfully. - (release): If the token is signaled and there's no other thread - waiting to acquire the token, reset the signal state. - - * ace/TP_Reactor.{h,i,cpp} (wakeup_all_threads): Added - implementation for this virtual function. It "signals" the - token threads are waiting on and wake them up by notifying the - reactor. - (handle_events): Check to see if the reactor token is signaled - after acquiring it. If the the token is signaled, it will not - proceed to handle events (by calling select) but instead return - successfully. This allow the thread the chance to check if it's - time to shut down the event loop. - -Mon Aug 3 17:53:48 1998 Gonzalo Diethelm - - * performance-tests/Makefile: - * performance-tests/Misc/basic_func.cpp: - * 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_mutex.cpp: - * performance-tests/Misc/test_naming.cpp: - * performance-tests/Misc/test_singleton.cpp: - * performance-tests/Synch-Benchmarks/Benchmark_Base.cpp: - * performance-tests/Synch-Benchmarks/Benchmark_Performance.cpp: - * performance-tests/Synch-Benchmarks/Options.cpp: - * performance-tests/Synch-Benchmarks/Performance_Test.cpp: - * performance-tests/Synch-Benchmarks/condb_test.cpp: - * performance-tests/Synch-Benchmarks/conds_test.cpp: - * performance-tests/Synch-Benchmarks/context_test.cpp: - * performance-tests/Synch-Benchmarks/memory_test.cpp: - * performance-tests/Synch-Benchmarks/mutex_test.cpp: - * performance-tests/Synch-Benchmarks/pipe_proc_test.cpp: - * performance-tests/Synch-Benchmarks/pipe_thr_test.cpp: - * performance-tests/Synch-Benchmarks/recursive_lock_test.cpp: - * performance-tests/Synch-Benchmarks/rwrd_test.cpp: - * performance-tests/Synch-Benchmarks/rwwr_test.cpp: - * performance-tests/Synch-Benchmarks/sema_test.cpp: - * performance-tests/Synch-Benchmarks/synch_driver.cpp: - * performance-tests/Synch-Benchmarks/sysvsema_test.cpp: - * performance-tests/Synch-Benchmarks/token_test.cpp: - * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp: - * performance-tests/TTCP/C/new-ttcp.cpp: - * performance-tests/TTCP/ORBeline/ttcp_i.cpp: - * performance-tests/TTCP/Orbix/ttcpC.cpp: - * performance-tests/TTCP/Orbix/ttcpS.cpp: - * performance-tests/TTCP/Orbix/ttcp_i.cpp: - * performance-tests/UDP/udp_test.cpp: - Added ACE_RCSID to these files. - -Sun Aug 2 19:43:04 1998 Darrell Brunsch - - * tests/Reactor_Performance_Test.cpp: Made a change suggested by - Irfan to allow this test to work in Windows 95. - -Sat Aug 1 20:35:32 1998 Douglas C. Schmidt - - * ace: - include/makeinclude: - Added new config/platform files for SCO. These files enable the - following: - - - TAO_IDL work newly in SCO OpenServer. - - Fixed a compilation problem with EventService in TAO. - - Fixed a problem with ACE and TAO shared libraries. - - Some test with TSS_Emulation and recent changes in Thread_Manager. - - Thanks to Arturo for these changes. - -Sat Aug 01 13:34:12 1998 Irfan Pyarali - - * ace/OS.i (flock_wrlock): LockFileEx() and UnLockFileEx() are not - implemented on Win32. Therefore, the flock methods were changed - to use the non-Ex versions on Win95. Thanks to XuYifeng - for pointing this out. - - While making the changes, I found that there were a couple bugs - in the code: (a) the parameter was being ignored and - (b) the adjustment for == 0 was incorrect. I think I have - fixed both of these also in ACE_OS::adjust_flock_params(). - - One last thing: I changed flock_unlock() to use UnLockFile() - instead of UnLockFileEx(). UnLockFileEx() is also not supported - on Win95. Hopefully, it is ok to lock with LockFileEx() and - unlock with UnLockFile() instead of UnLockFileEx(). - - * ace/OS.cpp (pread): Changed bytes_written to bytes_read. - -Fri Jul 31 23:47:50 1998 Carlos O'Ryan - - * bin/auto_compile: - We now run several on-button tests in TAO, though it is still - hard to detect any errors. - -Fri Jul 31 21:33:22 1998 Douglas C. Schmidt - - * ace/Select_Reactor.cpp (open): Changed the code to ignore the - return value from ACE::set_handle_limit(). Thanks to Zheng Han - for reporting this and to Arturo for - suggesting the fix. - - * ace/ARGV.cpp: Enhanced the implemenation of string_to_array() so - that it should always work correctly even if there are a large - number of bytes in the original buf string. - - * ace/ARGV.cpp: Renamed string_to_array() to string_to_argv(), - which is more intuitive. - - * ace/OS.h: Added a new macro called ACE_DEFAULT_ARGV_BUFSIZ, - which is used as the default size of all the "argv" contents in - ACE_ARGV. This defaults to 4 kbytes. - -Fri Jul 31 19:55:10 1998 Gonzalo Diethelm - - * netsvcs/clients/Logger/direct_logging.cpp: - * netsvcs/clients/Logger/indirect_logging.cpp: - * netsvcs/clients/Naming/Client/Client_Test.cpp: - * netsvcs/clients/Naming/Client/main.cpp: - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - * netsvcs/clients/Naming/Dump_Restore/createfile.cpp: - * netsvcs/clients/Naming/Dump_Restore/main.cpp: - * netsvcs/clients/Tokens/collection/collection.cpp: - * netsvcs/clients/Tokens/collection/rw_locks.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: - * netsvcs/lib/Base_Optimizer.cpp: - * netsvcs/lib/Client_Logging_Handler.cpp: - * netsvcs/lib/Log_Message_Receiver.cpp: - * netsvcs/lib/Logging_Strategy.cpp: - * netsvcs/lib/Name_Handler.cpp: - * netsvcs/lib/Server_Logging_Handler.cpp: - * netsvcs/lib/Server_Logging_Handler_T.cpp: - * netsvcs/lib/TS_Clerk_Handler.cpp: - * netsvcs/lib/TS_Server_Handler.cpp: - * netsvcs/lib/Token_Handler.cpp: - * netsvcs/servers/main.cpp: - Added ACE_RCSID to these files. - -Fri Jul 31 19:15:58 1998 Irfan Pyarali - - * ace/OS.cpp (pwrite and pread): There were many bugs in these two - methods. - - - It was assumed that it is ok to call WriteFile/ReadFile with - an OVERLAPPED structure. This is not true on Windows95. - Therefore, code had to be added to make sure that on - Windows95, WriteFile and ReadFile were called without an - OVERLAPPED struct. - - - We were assuming that if we used the OVERLAPPED struct, the - file pointer would not move. It turns out that the OVERLAPPED - struct has nothing with whether the file pointer moves or not. - It has to do with whether the file was opened with - FILE_FLAG_OVERLAPPED or not. Since it is not possible to - figure whether the file handle we got was opened with this - flag or not, we have to program defensively and reset the file - pointer in any case. - - - Also the !ACE_HAS_P_READ_WRITE implementation was not - restoring the file pointer to its original position. This was - also fixed. - -Fri Jul 31 18:33:39 1998 Gonzalo Diethelm - - * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: - * apps/Gateway/Gateway/Config_Files.cpp: - * apps/Gateway/Gateway/Connection_Handler.cpp: - * apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp: - * apps/Gateway/Gateway/Connection_Handler_Connector.cpp: - * apps/Gateway/Gateway/Event_Channel.cpp: - * apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp: - * apps/Gateway/Gateway/File_Parser.cpp: - * apps/Gateway/Gateway/Gateway.cpp: - * apps/Gateway/Gateway/Options.cpp: - * apps/Gateway/Gateway/gatewayd.cpp: - * apps/Gateway/Peer/Options.cpp: - * apps/Gateway/Peer/Peer.cpp: - * apps/Gateway/Peer/peerd.cpp: - * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp: - * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp: - * apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp: - * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp: - * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp: - * apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp: - * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp: - * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp: - * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp: - * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp: - * apps/Orbix-Examples/Logger/Logger.cpp: - * apps/Orbix-Examples/Logger/client.cpp: - * apps/Orbix-Examples/Logger/loggerS.cpp: - * apps/Orbix-Examples/Logger/logger_i.cpp: - * apps/Orbix-Examples/Logger/server.cpp: - Added ACE_RCSID to these files. - -Fri Jul 31 17:50:01 1998 Gonzalo Diethelm - - * ace/TP_Reactor.cpp: - Added ACE_RCSID to this file, and all the .cpp files in examples, - listed below. - - * examples/ASX/CCM_App/CCM_App.cpp: - * examples/ASX/CCM_App/SC_Client.cpp: - * examples/ASX/CCM_App/SC_Server.cpp: - * examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp: - * examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp: - * examples/ASX/Event_Server/Event_Server/Options.cpp: - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: - * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp: - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - * examples/ASX/Message_Queue/bounded_buffer.cpp: - * examples/ASX/Message_Queue/buffer_stream.cpp: - * examples/ASX/Message_Queue/priority_buffer.cpp: - * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: - * examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp: - * examples/ASX/UPIPE_Event_Server/Options.cpp: - * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp: - * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - * examples/CORBA/Test_i.cpp: - * examples/CORBA/client.cpp: - * examples/CORBA/server.cpp: - * examples/Connection/blocking/SPIPE-acceptor.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/Connection/blocking/test_spipe_acceptor.cpp: - * examples/Connection/blocking/test_spipe_connector.cpp: - * examples/Connection/misc/Connection_Handler.cpp: - * examples/Connection/misc/test_upipe.cpp: - * examples/Connection/non_blocking/CPP-acceptor.cpp: - * examples/Connection/non_blocking/CPP-connector.cpp: - * examples/Connection/non_blocking/test_lsock_acceptor.cpp: - * examples/Connection/non_blocking/test_lsock_connector.cpp: - * examples/Connection/non_blocking/test_sock_acceptor.cpp: - * examples/Connection/non_blocking/test_sock_connector.cpp: - * examples/Connection/non_blocking/test_spipe_acceptor.cpp: - * examples/Connection/non_blocking/test_spipe_connector.cpp: - * examples/Connection/non_blocking/test_tli_acceptor.cpp: - * examples/Connection/non_blocking/test_tli_connector.cpp: - * examples/IOStream/client/iostream_client.cpp: - * examples/IOStream/server/iostream_server.cpp: - * examples/IPC_SAP/DEV_SAP/reader/reader.cpp: - * examples/IPC_SAP/DEV_SAP/writer/writer.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp: - * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp: - * examples/IPC_SAP/FILE_SAP/client.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: - * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp: - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp: - * examples/IPC_SAP/SPIPE_SAP/client.cpp: - * examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp: - * examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp: - * examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp: - * examples/IPC_SAP/SPIPE_SAP/producer_read.cpp: - * examples/IPC_SAP/SPIPE_SAP/server.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-server.cpp: - * examples/IPC_SAP/TLI_SAP/db-client.cpp: - * examples/IPC_SAP/TLI_SAP/db-server.cpp: - * examples/IPC_SAP/TLI_SAP/ftp-client.cpp: - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp: - * 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_log_msg.cpp: - * examples/Logger/Acceptor-server/server_loggerd.cpp: - * examples/Logger/client/logging_app.cpp: - * examples/Logger/simple-server/Logging_Acceptor.cpp: - * examples/Logger/simple-server/Logging_Handler.cpp: - * examples/Logger/simple-server/server_loggerd.cpp: - * examples/Map_Manager/test_hash_map_manager.cpp: - * examples/Mem_Map/IO-tests/IO_Test.cpp: - * examples/Mem_Map/IO-tests/test_io.cpp: - * examples/Mem_Map/file-reverse/file-reverse.cpp: - * examples/Misc/test_XtReactor1.cpp: - * examples/Misc/test_XtReactor2.cpp: - * examples/Misc/test_dump.cpp: - * examples/Misc/test_get_opt.cpp: - * examples/Misc/test_profile_timer.cpp: - * examples/Misc/test_read_buffer.cpp: - * examples/Misc/test_set.cpp: - * examples/Misc/test_sstring.cpp: - * examples/Misc/test_trace.cpp: - * examples/Naming/test_multiple_contexts.cpp: - * examples/Naming/test_non_existent.cpp: - * examples/Naming/test_open.cpp: - * examples/Naming/test_writers.cpp: - * examples/OS/Process/imore.cpp: - * examples/OS/Process/process.cpp: - * examples/Reactor/Dgram/CODgram.cpp: - * examples/Reactor/Dgram/Dgram.cpp: - * examples/Reactor/FIFO/client.cpp: - * examples/Reactor/FIFO/server.cpp: - * examples/Reactor/Misc/notification.cpp: - * examples/Reactor/Misc/pingpong.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Reactor/Misc/test_event_handler_t.cpp: - * examples/Reactor/Misc/test_reactors.cpp: - * examples/Reactor/Misc/test_signals_1.cpp: - * examples/Reactor/Misc/test_signals_2.cpp: - * examples/Reactor/Misc/test_time_value.cpp: - * examples/Reactor/Misc/test_timer_queue.cpp: - * examples/Reactor/Multicast/Log_Wrapper.cpp: - * examples/Reactor/Multicast/client.cpp: - * examples/Reactor/Multicast/server.cpp: - * examples/Reactor/Ntalker/ntalker.cpp: - * examples/Reactor/Proactor/test_multiple_loops.cpp: - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/Proactor/test_proactor_with_aio.cpp: - * examples/Reactor/Proactor/test_timeout.cpp: - * examples/Reactor/ReactorEx/test_abandoned.cpp: - * examples/Reactor/ReactorEx/test_apc.cpp: - * examples/Reactor/ReactorEx/test_console_input.cpp: - * examples/Reactor/ReactorEx/test_directory_changes.cpp: - * examples/Reactor/ReactorEx/test_exceptions.cpp: - * examples/Reactor/ReactorEx/test_multithreading.cpp: - * examples/Reactor/ReactorEx/test_network_events.cpp: - * examples/Reactor/ReactorEx/test_prerun_state_changes.cpp: - * examples/Reactor/ReactorEx/test_registration.cpp: - * examples/Reactor/ReactorEx/test_registry_changes.cpp: - * examples/Reactor/ReactorEx/test_removals.cpp: - * examples/Reactor/ReactorEx/test_talker.cpp: - * examples/Reactor/ReactorEx/test_timeouts.cpp: - * examples/Reactor/ReactorEx/test_window_messages.cpp: - * examples/Registry/test_registry_iterator.cpp: - * examples/Registry/test_registry_update.cpp: - * examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp: - * examples/Service_Configurator/IPC-tests/server/server_test.cpp: - * examples/Service_Configurator/Misc/Timer_Service.cpp: - * examples/Service_Configurator/Misc/main.cpp: - * examples/Shared_Malloc/Malloc.cpp: - * examples/Shared_Malloc/Options.cpp: - * examples/Shared_Malloc/test_malloc.cpp: - * examples/Shared_Malloc/test_multiple_mallocs.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - * examples/Shared_Memory/test_MM.cpp: - * examples/Shared_Memory/test_SV.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp: - * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: - * examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp: - * examples/Threads/auto_event.cpp: - * examples/Threads/barrier1.cpp: - * examples/Threads/barrier2.cpp: - * examples/Threads/cancel.cpp: - * examples/Threads/future1.cpp: - * examples/Threads/future2.cpp: - * examples/Threads/manual_event.cpp: - * examples/Threads/process_manager.cpp: - * examples/Threads/process_mutex.cpp: - * examples/Threads/process_semaphore.cpp: - * examples/Threads/reader_writer.cpp: - * examples/Threads/recursive_mutex.cpp: - * examples/Threads/task_five.cpp: - * examples/Threads/task_four.cpp: - * examples/Threads/task_one.cpp: - * examples/Threads/task_three.cpp: - * examples/Threads/task_two.cpp: - * examples/Threads/thread_manager.cpp: - * examples/Threads/thread_pool.cpp: - * examples/Threads/thread_specific.cpp: - * examples/Threads/token.cpp: - * examples/Threads/tss1.cpp: - * examples/Threads/tss2.cpp: - * examples/Threads/wfmo.cpp: - * examples/Timer_Queue/Async_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Driver.cpp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: - * examples/Timer_Queue/main_async.cpp: - * examples/Timer_Queue/main_reactor.cpp: - * examples/Timer_Queue/main_thread.cpp: - -Fri Jul 31 12:07:16 1998 Irfan Pyarali - - * ace/XtReactor.cpp (XtWaitForMultipleEvents): The first select() - is made with the correct width. In XtAppProcessEvent(), the - descriptor set may change, so the underlying handle_max may also - have changed. The second select() is made with an incorrect - value for the width. The solution is to reinitialize width - before calling select() again. Thanks to J-M Strauss - for suggesting this change. - -Fri Jul 31 11:18:24 1998 Steve Huston - - * ACE-INSTALL.html: Removed the direction to set global include/library - paths in MSVC 4.2. - -Fri Jul 31 08:23:14 1998 Douglas C. Schmidt - - * examples/Misc/test_XtReactor[12].cpp: Updated these files so - they will work correctly with the "new" Reactor structure. Boy, - it's been a long time since anyone actually tried to use this - stuff... ;-) Thanks to J-M Strauss for - reporting this. - -Thu Jul 30 21:25:31 1998 Nanbor Wang - - * ace/Svc_Conf_y.cpp: This file didn't get patched with our - routine patch. Applied $ACE_ROOT/Svc_Conf_y.cpp.diff manually. - This change eliminates some warnings from g++. - -Thu Jul 30 19:03:12 1998 Douglas C. Schmidt - - * examples/Timer_Queue/Thread_Timer_Queue_Test.h: Changed the type - to class Thread_Timer_Queue_Test_Driver from - Timer_Queue_Test_Driver to work around a bug with MSVC++. Thanks to - Gonzo for pointing this out. - - * examples/Connection/blocking/SPIPE-{connector,acceptor}.cpp: - Added #include "ace/Proactor.h". Thanks to Gonzo for reporting - this. - -Thu Jul 30 17:54:14 1998 Nanbor Wang - - * tests/test_config.h: Added /**/ between #include and - to avoid MSVC warnings. - - * tests/WinCE/ce_tests.dsw: Renamed project - Message_Queue_Notifications_Test to MsgQueue_Notifications_Test. - - * tests/WinCE/Reactor_Performance_Test.dsp: This project file was - somehow missing. - - * tests/TSS_Test.cpp: - * tests/Reader_Writer_Test.cpp: - * tests/Message_Queue_Test.cpp: Added numerous ASYS_TEXT macros to - make sure we use the right strings on CE. - -Thu Jul 30 14:56:59 1998 Gonzalo A. Diethelm - - * ace/ACE.h: - * ace/ACE.cpp: - * ace/Event_Handler.h: - * ace/Event_Handler.cpp: - Moved the following static functions: - - register_stdin_handler - remove_stdin_handler - read_adapter - - from class ACE to class ACE_Event_Handler. That breaks a - dependency from ACE to higher-level classes. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - * netsvcs/clients/Naming/Client/Client_Test.cpp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp: - * examples/Timer_Queue/Async_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp: - * examples/Timer_Queue/Thread_Timer_Queue_Test.dsp: - * examples/Reactor/Ntalker/ntalker.cpp: - * examples/Reactor/Misc/test_demuxing.cpp: - * examples/Reactor/Misc/notification.cpp: - * examples/Connection/blocking/SPIPE-connector.cpp: - * examples/ASX/UPIPE_Event_Server/event_server.cpp: - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: - * examples/ASX/Event_Server/Event_Server/event_server.cpp: - * apps/Gateway/Peer/Peer.cpp: - * apps/Gateway/Gateway/Gateway.cpp: - All these were modified by the above change. - - * ace/OS.h: - * ace/OS.i: - Added a strnew function that works as strdup but uses new instead - of malloc to allocate memory. - -Thu Jul 30 16:54:20 1998 Douglas C. Schmidt - - * ACE version 4.5.26 released. - -Thu Jul 30 13:01:12 1998 Douglas C. Schmidt - - * ace/Task.h (ACE_Task_Base): Changed the spelling of - ACE_Task_Exit to ACE_Thread_Exit, which is correct. - Thanks to Daniel Winder for - reporting this. - -Thu Jul 30 08:43:41 1998 Steve Huston - - * tests/tests.(mdp mak): Made include and library paths relative. - -Thu Jul 30 02:22:49 1998 Nanbor Wang - - * ace/Synch_T.cpp (ts_init): Casted away constness of key_. - Changed to cast away constness of the pointer to once_. - -Thu Jul 30 01:12:30 1998 Douglas C. Schmidt - - * ace/TP_Reactor.i (notify_handle): Added an ASYS_TEXT where it - was missing. Thanks to Dieter Quehl for reporting this. - - * ace/Synch_T.cpp: It wasn't possible to call ts_object() to set - an initial zero pointer value. The solution is to give - ts_object() the same ability to initialize the key as ts_get(). - I also factored out some common code into a new method called - ts_init(). Thanks to Bob McWhirter for - reporting this. - -Wed Jul 29 23:58:04 1998 Douglas C. Schmidt - - * examples/Reactor/Ntalker: Added a README file and made some - stylistic changes to the ntalker.cpp example. - -Wed Jul 29 18:38:17 1998 Douglas C. Schmidt - - * ACE version 4.5.25 released. - -Wed Jul 29 17:46:21 1998 Douglas C. Schmidt - - * ace/Task_T.h: Updated documentation to explain that - ACE_Time_Values are ABSOLUTE rather than relative. Thanks to - James Johnson for reporting this. - -Wed Jul 29 16:05:16 1998 Carlos O'Ryan - - * bin/Process_Unix.pm: - Use SIGTERM instead of SIGHUP to kill a process, it is the Right - Thing and SIGHUP will not work in some cases because it is usual - to catch this signal. - -Wed Jul 29 14:04:49 1998 Irfan Pyarali - - * ace/Asynch_Acceptor.cpp (open): Added - as an extra parameter to - open(). is the number of - asynchronous accepts that are started at the end of . If - is -1, then - is set to and hence - number of asynchronous accepts are started. - - (get_handle): New method to get the underlying handle. - - (set_handle): New method to set the underlying listen handle. It - is the user's responsibility to make sure that the old listen - handle has been appropriately closed and the all outstanding - asynchronous operations have either completed or have been - canceled on the old listen handle. - -Wed Jul 29 12:49:09 1998 Nanbor Wang - - * ace/Makefile (FILES): Added TP_Reactor to the build list. - Updated dependency. - - * ace/TP_Reactor.{h,i} (handle_events,notify_handler): Added two - dummy methods to avoid warnings from SunCC. Thanks to Carlos - for noticing this. - -Wed Jul 29 09:41:23 1998 David L. Levine - - * ace/config-linux-common.h: added #define - ACE_DEFAULT_SELECT_REACTOR_SIZE 256 so that the - ACE_Select_Reactor works with this fix: - - if (size > (size_t) ACE::max_handles ()) - return ACE::set_handle_limit (size); - - On Linux (2.0.34), only root can set RLIMIT_NOFILE above 256. - -Wed Jul 29 04:19:05 1998 Nanbor Wang - - * Integrate TP_Reactor into ACE. Major framwork designed by - Irfan. Here's his changelog: - - * ace/TP_Reactor.h (ACE_TP_Reactor): One of the short comings of - the Select_Reactor in ACE was that it did not support a thread - pool based event dispatching model, similar to the one in - WFMO_Reactor. In Select_Reactor, only thread can be blocked - in handle_events() at any given time. - - A new Reactor has been added to ACE that removes this - short-coming. TP_Reactor is a specialization of Select - Reactor to support thread-pool based event dispatching. This - Reactor takes advantage of the fact that events reported by - select() are persistent if not acted upon immediately. It - works by remembering the event handler that just got - activated, releasing the internal lock (so that some other - thread can start waiting in the event loop) and then - dispatching the event handler outside the context of the - Reactor lock. - - This Reactor is best suited for situations when the callbacks - to event handlers can take arbitrarily long and/or a number of - threads are available to run the event loops. - - Note that callback code in Event Handlers - (e.g. Event_Handler::handle_input) does not have to be - modified or made thread-safe for this Reactor. This is - because an activated Event Handler is suspended in the Reactor - before the upcall is made and resumed after the upcall - completes. Therefore, one Event Handler cannot be called by - multiple threads simultaneously. - - * ace/Reactor.cpp (ACE_Reactor): - ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL can be used to make the - TP_Reactor the default Reactor implementation that will be - used by ACE_Reactor. - - I still need to add the reliable shutdown method and a - TP_Reactor_Test. - - * ace/Select_Reactor.{h,i,cpp} (renew): Moved decision of renew - supression from ACE_Select_Reactor_Notify::handle_input to this - method, which is a more appropriate place. - - * ace/Token.h (ACE_Token): Added more comprehensive comments about - the recent changes of reader/writer semantic. - -Tue Jul 28 12:36:18 1998 Irfan Pyarali - - * ace/Service_Config.cpp (~ACE_Service_Config): Removed the call - to ACE_Service_Config::close () from the destructor. This will - be called by the Object Manager upon destruction. - -Tue Jul 28 11:34:15 1998 Nanbor Wang - - * ace/OS.{h,i} (strpbrk): Added a const wchar_t version of this - function. Thanks to Ivan Murphy - for providing the fix. - -Tue Jul 28 09:52:08 1998 David L. Levine - - * ace/Thread_Manager.cpp (exit): only declare local close_handle - if ACE_USE_ONE_SHOT_AT_THREAD_EXIT. (ACE_Thread_Descriptor): - reordered initializers to match declaration order. - - * ace/Dynamic.cpp,Thread_Manager.cpp: moved - ACE_TSS_Singleton instantiation - from Thread_Manager.cpp to Dynamic.cpp. - -Mon Jul 27 16:31:27 1998 Arturo Montes - - * ace/Thread_Manager.{h,i,cpp}: - * ace/Log_Msg.cpp: The Thread_Manager::at_exit method now provides a - list of at_exit functions to be invoked to at thread termination - code. If you want to maintain previous compatibility use - ACE_USE_ONE_SHOT_AT_THREAD_EXIT. The new code maintaing - compatibility with the old code, ACE_Task::svc_run has not been - altered. - - We resolve a problem with ACE_TSS_cleanup, some platform - using Thread_Manager could be experimenting memory corruption because - of ACE_TSS_cleanup was being invoked before Thread_Manager exit - code. Now, if ACE_TSS_cleanup is called before of Thread_Manager - exit code, ACE_TSS_cleanup delegate ACE_Log_Msg delete instance - to Thread_Descriptor. - - Really, at_exit code is implemented in ACE_Thread_Descriptor, I - strongly recommend use at_exit code from Thread_Descriptor, - however in ACE_Thread_Manager we provide at_exit hook. - - Use of at_exit(void* object,ACE_CLEANUP_FUNC cleanup_hook,void* - param) is deprecated. We maitain it for compatibility and it - will be forever, however if you want implement new at_exit hook, - look into Thread_Manager.h and specialize ACE_At_Thread_Exit - class for your needs. - - If you want to allocate an ACE_At_Thread_Exit hook in stack, you - can do it. The at_exit code use at_exit overloading to take care - of this. Equally dynamic creation of at_exit hook is supported - too. - -Mon Jul 27 14:25:15 1998 Chris Gill - - * tests/Dynamic_Priority_Test.cpp: Changed C-Style casts to - ACE_static_casts, documented argument structure members - -Mon Jul 27 12:23:55 1998 Douglas C. Schmidt - - * ace/Select_Reactor.cpp (open): Changed a erroneous comparison - to - - if (size > (size_t) ACE::max_handles ()) - return ACE::set_handle_limit (size); - - Thanks to Avi Nash for reporting this. - -Sat Jul 25 20:26:21 1998 Steve Huston - - * ace/SPIPE_Acceptor.(h cpp): Modified Win32 part to start the - ConnectNamedPipe at open() time, in overlapped mode. Now also - processes the timeout in accept(), if specified. - -Sat Jul 25 16:18:30 1998 Carlos O'Ryan - - * ace/Malloc_T.i (addr): - Sun/CC does not like a reinterpret cast here, but only when T is - a char[20]. Use a couple of static casts and added a comment. - -Sat Jul 25 11:34:25 1998 Douglas C. Schmidt - - * ace/Typed_SV_Message_Queue.i (send): Fixed this call to use a - const cast AND a reinterpret cast. Thanks to David Levine for - reporting this. - -Fri Jul 24 23:14:09 1998 Douglas C. Schmidt - - * examples/Threads/thread_specific.cpp (cleanup): Added an - ACE_reinterpret_cast(). Thanks to John Mulhern - <9107@mn3.lawson.lawson.com> for this. - - * ace/Typed_SV_Message_Queue.i: Added some necessary - ACE_reinterpret_cast()s. Thanks to John Mulhern - <9107@mn3.lawson.lawson.com> for this. - - * ace/Malloc_T.i (addr): Changed (T *) cast to - ACE_reinterpret_cast(). Thanks to John Mulhern - <9107@mn3.lawson.lawson.com> for this. - - * ace/SOCK_Dgram_Bcast.cpp: Added an ACE_reinterpret_cast() macro - to make the HP/UX 11 C++ compiler happy. Thanks to John Mulhern - <9107@mn3.lawson.lawson.com> for this. - - * ace/config-hpux11.h: Added ACE_HAS_BROKEN_XTI_MACROS and - ACE_HAS_SIGISMEMBER_BUG. - - * ace/OS.i (sigismember): Sigismember works correctly in most - respects but the Sigset_Ops_Test tests the sigismember function - with an out-of-range signal number expecting it to fail with a - minus one result. On HPUX 11.0 it doesn't fail; it correctly - reports that the signal is not in the sigset. This happens - because HP, bless their hearts, thought that it should only - return out of range when the signal value was greater than the - capacity of the sigset; if ACE_NSIG is forced to 257 then the - test works as expected. But the real maximum signal is 45. - Added a fix for this courtesy of John Mulhern - <9107@mn3.lawson.lawson.com>. - - * ace/OS.h: Added a workaround for broken XTI header files on - HP/UX. Thanks to John Mulhern <9107@mn3.lawson.lawson.com> for - reporting this. - - * tests/Dynamic_Priority_Test.cpp: Reformatted this just a bit. - -Fri Jul 24 21:42:39 1998 David L. Levine - - * ace/OS.{h,cpp},Message_Block.{h,cpp}: renamed ACE_Time_Value::max - to ACE_Time_Value::max_time, because VxWorks #defines max. - - * tests/Message_Queue_Test.cpp: rearranged declarations so - that the test will build on non-threaded platforms. - - * tests/Dynamic_Priority_Test.cpp: changed ACE_MT_SYNCH to - ACE_SYNCH, so that we have a chance of building on non-threaded - platforms. - -Fri Jul 24 15:15:28 1998 Douglas C. Schmidt - - * Updated the manual pages to reflect recent changes. - - * ace/Svc_Conf.h: Change from yyerror (char *) to yyerror (const - char *). - -Fri Jul 24 14:36:30 1998 Chris Gill - - * ace/OS.{cpp, h} (ACE_Time_Value): Added ACE_Time_Value::max, - for the value at the other end of the time spectrum that can - be represented as a normalized ACE_Time_Value (LONG_MAX seconds, - ACE_ONE_SEC_IN_USECS - 1 microseconds). - - * ace/Message_Block.{cpp, h} (ACE_Message_Block): Changed default - parameters so message deadlines default to ACE_Time_Value::max - instead of ACE_Time_Value::zero - this ensures the assigned - static priority order is preserved in a dynamic message queue - if deadlines are not set. - - * ace/Message_Queue_T.{cpp, h} (ACE_Dynamic_Message_Queue): Changed - enqueue_tail and enqueue_head to call overloaded enqueue_prio - instead of static message queue base class methods (fixes bug - EC_Multiple_Test uncovered where a tail-enqueued zero length - message is still seen in the queue by the base class, but the - derived dynamic message queue class thinks the queue is empty) - - * DOC-way.html: added one on chess and sleep - -Fri Jul 24 12:35:12 1998 Nanbor Wang - - * ace/Token.{h,cpp}: Fixed warnings from gcc and SunCC. - -Fri Jul 24 09:05:24 1998 David L. Levine - - * ace/OS.cpp (thr_create): with ACE_HAS_DCE_DRAFT4_THREADS and - ACE_LACKS_SETDETACH (LynxOS and HP/UX 10.x), call - ::pthread_detach () on the newly spawned thread. Only do - it if the THR_DETACHED flag is enabled. - - * ace/Thread_Manager.cpp (join_thr,wait,wait_grp,wait_task): - with ACE_HAS_DCE_DRAFT4_THREADS and ACE_LACKS_SETDETACH - (LynxOS and HP/UX 10.x), call ::pthread_detach () on joined - threads. Only do it if the THR_DETACHED flag is not enabled. - - Thanks to Dave Mayerhoefer for diagnosing the - lack of ::pthread_detach () calls in ACE. - -Fri Jul 24 00:39:47 1998 Nanbor Wang - - * ace/ace_dll.dsp (Message_Queue_T.cpp): This file contains - template definitions and should not be included while building - ACE library. - - * ace/config-win32.h (ACE_HAS_NONSTATIC_OBJECT_MANAGER): Use - non-static object manager by default on Win32 (except CE.) This - at least fixed the problem of WSACleanup getting called too late. - - To disable this, define ACE_HAS_NONSTATIC_OBJECT_MANAGER to 0. - -Thu Jul 23 22:17:41 1998 Arturo Montes - - * ace/OS.cpp,Task.cpp,Thread_Manager.cpp: unify the Thread - Adapter use between general ACE threads and threads spawned - with a Thread_Manager. - - With this patch we add a new flag: ACE_USE_THREAD_MANAGER_ADAPTER. - If you set this flag in your config file, ACE will use the - ace_thread_manager_adapter in Thread_Manager, matching the current - behaviour. If you omit this flag, ACE will use ace_thread_adapter. - This change save a lot of source code and will let in the future - incorporate ACE_Thread at_exit. - -Thu Jul 23 15:30:41 1998 Nanbor Wang - - * ace/Token.{h,i,cpp}: On platforms that support timed acquire - semaphores, changed to use semaphores for signaling mechanism - for better performance. - (shared_acquire,renew): Give priority to acquire_write over - acquire_read. - -Thu Jul 23 14:05:20 1998 David L. Levine - - * performance-tests/Misc/context_switch_test.cpp: - helped yield test on VxWorks by timing each yield. - Added half-second delay between outer interations to give - LynxOS (w/ ACE_LACKS_SETDETACH) a chance to cleanup exited threads. - - * ace/config-sunos5.5.h: added support for _POSIX_PTHREAD_SEMANTICS. - If it is #defined, then #define ACE_HAS_PTHREADS_1003_DOT_1C - instead of ACE_HAS_STHREADS. Thanks to Doug Anderson - for investigating this and providing the - update. - - * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t &nanoseconds)): - simplified the calculation. Thanks to Tom Dobridge - for the fix. - -Wed Jul 22 19:20:43 1998 Irfan Pyarali - - * ace/Proactor.h (ACE_Proactor): Since is a - valid constructor parameter for all platforms, - POSIX_COMPLETION_STRATEGY should be defined for all platforms. - - * ace/Proactor.cpp (ACE_Proactor): Only use the - completion_strategy when ACE_HAS_AIO_CALLS is defined. - - * ace/Asynch_IO.cpp (ACE_Asynch_Result): Only delete - this->aiocb_ptr_ when ACE_HAS_AIO_CALLS is defined. - -Wed Jul 22 17:58:27 1998 Alexander Babu Arulanthu - - * ace/OS.h: Updated the comments. - -Wed Jul 22 17:55:46 1998 Nanbor Wang - - * performance-tests/Synch-Benchmarks/token_test.cpp: A new test. - -Wed Jul 22 17:50:58 1998 Alexander Babu Arulanthu - - * ace/OS.h: Defiend ACE_SIG_AIO to be SIGRTMIN. This is the only - signal used for all the s. - -Wed Jul 22 17:46:45 1998 Alexander Babu Arulanthu - - * ace/Asynch_IO.h,Asynch_IO.cpp Proactor.h Proactor.cpp : - - First round of changes for sigtimedwait () based approach - of completion querying. - - Added one more parameter to the Proactor contructor to - decide the completion strategy for the POSIX implementation, - either control blocks or the RT signals. The default is RT - signals. - - Fixed Transmit file. Proactor's handle_events () is done - with in the ACE_Asynch_Transmit_Handler so that control does not - return to the user's application before the whole file is - transmitted. Otherwise the user's application might start writing - to the same socket and this might change the order of the file - that is being transmitted. - -Wed Jul 22 15:51:48 1998 Nanbor Wang - - * performance-tests/Synch-Benchmarks/Benchmark_Base.h - (Benchmark_Method_Base): Passing the test item into pre_run_test - so the thread can be setup correctly. Duh! - - * performance-tests/Synch-Benchmarks/Performance_Test.{h,cpp} - (pre_run_test): Added code so that it iterates thru test items - in svc.conf properly. Duh**2! - -Wed Jul 22 15:48:25 1998 David L. Levine - - * ACE version 4.5.24 released. - -Wed Jul 22 11:45:44 1998 Alexander Babu Arulanthu - - * tests/Aio_Platform_Test.cpp: Added calls test for - platforms with ACE_HAS_AIO_CALLS defined. - -Wed Jul 22 11:32:33 1998 David L. Levine - - * tests/Dynamic_Priority_Test.cpp: VxWorks only, fixed a few - minor things so that it builds now. - - * ace/config-linux-common.h: added ACE_HAS_GPERF. - -Tue Jul 21 23:09:31 1998 Nanbor Wang - - * performance-tests/Synch-Benchmarks/{Synch_Tests,synch_driver}.dsp: - Updated proejct source files and renamed debug version dll. - - * performance-tests/Synch-Benchmarks/Performance_Test.cpp: Added - ACE_Svc_Export directive. - -Tue Jul 21 20:17:31 1998 Steve Huston - - * ace/ACE_Library.{mdp mak}: Removed ..\STL from include directories. - -Tue Jul 21 12:34:11 1998 Alexander Babu Arulanthu - - * ace/config-lynxos.h: Defined ACE_HAS_AIO_CALLS. - -Mon Jul 20 19:35:21 1998 Steve Huston - - * ace/config-aix-4.1.x.h: Added ACE_LACKS_RLIMIT. Thanks to Zheng - Han for finding this problem. - - * ace/ACE_Library.{mdp mak}: Set up ".." as an include file directory - so that $ACE_ROOT doesn't have to be added to MSVC's global options. - Allows working on more than one ACE version. - - * netsvcs/lib/netsvcs4.{mdp mak}: Made paths to ACE components relative - and made Debug build netsvcsd.dll - this will work with Nanbor's new - DLL search method (from 19-July). - - * netsvcs/servers/servers4.{mdp mak}: - * netsvcs/clients/Logger/Logger.{mdp mak}: - Made paths to ACE components relative. - -Mon Jul 20 11:12:44 1998 David L. Levine - - * ace/Object_Manager.{h,cpp}: added ACE_TSS_BASE_LOCK, to - support ACE_HAS_TSS_EMULATION with ACE_USE_NATIVE_KEYS. - - * include/makeinclude/rules.lib.GNU: (INSTALL): use += to - define INSTALL instead of =, so that applications' INSTALL - won't be overwritten. - - * ace/config-osf1-4.0.h,config-linux-common.h: added - ACE_HAS_GPERF. - -Mon Jul 20 11:06:44 1998 Arturo Montes - - * ace/OS.*: added support for TSS emulation with Pthreads. - It uses one native TSS key for its internal implementation. - All other TSS keys, both within the ACE library and in - applications, use keys managed by ACE. - To enable, add these #defines to your config.h: - #define ACE_HAS_TSS_EMULATION - #define ACE_USE_NATIVE_KEYS - -Sun Jul 19 22:21:17 1998 David L. Levine - - * ace/OS.h: added ACE_THROW_SPEC definition. - -Sun Jul 19 00:48:42 1998 Nanbor Wang - - * ace/ACE.cpp (ldfind): Re-enabled searching for *d.dll before - *.dll for debug version of ACE. There was a premature return - error in the logic. This is now the default behavior and has to - be disabled explicitly by defining ACE_DISABLE_DEBUG_DLL_CHECK. - -Sat Jul 18 22:51:59 1998 Douglas C. Schmidt - - * ACE version 4.5.23 released. - -Sat Jul 18 22:48:52 1998 Douglas C. Schmidt - - * There was a typo in the Makefile where CE-status should have - been CE-status.txt. Thanks to Nanbor for fixing this. - -Sat Jul 18 22:14:07 1998 Douglas C. Schmidt - - * ACE version 4.5.22 released. - -Sat Jul 18 21:11:52 1998 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Added +W829 to suppress - "string literal to char * is deprecated". I was going to fix these - in ACE, but TAO just wore me down... ;-) - -Sat Jul 18 Michael Kircher - - * tests/Upgradable_RW_Test.cpp: Changed the time measurement - completely. Before we meassured end-to-end. Now we meassure - only the time spend in actual doing things. At the end - all the time spend is summarized. - - * tests/Upgradable_RW_Test.h: Added this file, which contains - definitions for the test. - -Sat Jul 18 19:47:45 1998 Darrell Brunsch - - * ace/ACE.cpp: Looks like we are having some trouble with the - loading of *d.dll before *.dll on NT, so it is now disabled - by default (until the problem is solved). To enable use: - ACE_USE_DEBUG_DLL_CHECK. - -Sat Jul 18 13:51:49 1998 Douglas C. Schmidt - - * apps/Makefile: Always compile the gperf directory by default - now. - - * ace/config-sunos5.5.h: Added a new flag called ACE_HAS_GPERF, - which should be enabled if the OS/compiler platform can compile - GPERF. This will determine if we can use perfect hashing in - TAO! - -Sat Jul 18 10:52:49 1998 Gonzalo Diethelm - - * ace/Svc_Conf_l.cpp: - * ace/Svc_Conf_y.cpp: - Move the Id and added ACE_RCSID. - The #line commands changed their line numbers. - - * ace/Svc_Conf.l: - * ace/Svc_Conf.y: - Added an ACE_RCSID, and erased a few white spaces at the end. - - * etc/Svc_Conf_l.cpp.diff: - * etc/Svc_Conf_y.cpp.diff: - Got rid of a couple of RCS Ids that were being "replaced" by the - patches. These were probably a maintenance problem and didn't - really add much. I also cleaned up the patches: there were a - couple of useless replacements (lines with white spaces at the - ends, etc.), and some of the line offsets were wrong (but patch - could still catch them with its fuzz factors). Now the patches - apply cleanly. - -Sat Jul 18 9:00:00 1998 Douglas C. Schmidt - - * DCS: Born 36 years ago, at this moment. Yow, I've now become - a "perfect square" ;-) - -Fri Jul 17 18:30:10 1998 Irfan Pyarali - - * ace/Strategies_T.cpp (connect_svc_handler): The activation of - the newly created handler is moved outside the scope of the lock - of the cached connector. This is necessary to avoid subtle - deadlock conditions with this lock and the Reactor lock. Thanks - to Micheal for finding this race condition. - -Fri Jul 17 13:53:54 1998 Douglas C. Schmidt - - * examples/Threads/barrier2.cpp (ACE_MT_SYNCH>): Cleaned up the - coding style in this example. - - * ace/TTY_IO.cpp (control): Added entries for 300 baud. Thanks to - the ever vigilant Arturo Montes for - reporting this. - -Fri Jul 17 14:51:55 1998 Nanbor Wang - - * Makefile (CONTROLLED_FILES): Added CE-status to distribution. - Thanks to David for reminding this. - -Fri Jul 17 12:48:26 1998 Steve Huston - - * tests/Semaphore_Test.cpp: Removed unused variable, and disabled the - test for platforms with POSIX semaphores since POSIX semaphores - don't do timeouts (which this test stresses). - -Fri Jul 17 07:32:26 1998 David L. Levine - - * Makefile (CONTROLLED_FILES): added ACE-inheritance.{pdf,ps}.gz - to distribution. Thanks to Gabriel Lima for - reporting their absence. Also, added COPYING to distribution. - - * ace/IO_SAP.cpp (enable): removed unreachable break statement. - - * ace/OS.i (sema_wait w/time): on VxWorks and pSoS, subtract - the current time from the time argument to get the relative - time that the systems calls expect. Thanks to Steve Huston - for recommending this change. Also, removed ACE_ADAPT_RETVAL - wrap so that errno isn't disturbed. On VxWorks, convert - S_objLib_OBJ_TIMEOUT errno to ETIME. - - * tests/run_tests.{sh,vxworks}: added Semaphore_Test. - - * ACE-INSTALL.html: updated multicast on Linux discussion. - -Thu Jul 16 18:28:31 1998 Steve Huston - - * ace/OS.i (ACE_OS::sema_wait(ACE_sema_t*, ACE_Time_Value&)): - Changed WinCE version to use time as absolute and update it if - the semaphore is acquired. Changed Win32 version to update the - time if semaphore is acquired. - - * tests/Semaphore_Test.cpp: Added sanity checks for time that the - semaphore waits take and for the updated time values on acquiring - a semaphore. - -Thu Jul 16 15:41:08 1998 Douglas C. Schmidt - - * examples/IPC_SAP/UPIPE_SAP/ex2.cpp, - examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i, - examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i, - examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i, - examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i, - examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i, - examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i, - examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i: - Changed all uses of SIGIO to ACE_SIGIO. - - - * ace/IPC_SAP: Cleaned up the enable() and disable() methods and - documentation so they correctly use the new ACE_* macros - described in the following bullet. - - * ace/OS.h: Added new ACE_SIGIO, ACE_SIGURG, and ACE_CLOEXEC flags - that should be used instead of the SIGIO or SIGURG, etc., in - order to ensure uniqueness. However, legacy code will continue - to work. - - * ace/IO_SAP.cpp: Added new ACE_SIGIO, ACE_SIGURG, and ACE_CLOEXEC - flags that should be used instead of the SIGIO or SIGURG, etc., - in order to ensure uniqueness. However, legacy code will - continue to work. - -Thu Jul 16 15:02:55 1998 Carlos O'Ryan - - * ace/Synch_T.h: Use ACE_Condition_Thread_Mutex instead of - ACE_Condition as the default condition - variable (ACE_SYNCH_CONDITION), this removes some headaches wrt - template instantiation. - - * ace/IPC_SAP.cpp: Added support for the close-on-exec flag. We - use the new ACE_CLOEXEC macro for this. - -Thu Jul 16 12:50:42 1998 Nanbor Wang - - * netsvcs/lib/netsvcs.dsp: - * netsvcs/servers/servers.dsp: Updated DLL names. - - * ace/ACE.cpp (ldfind): Conventionallly, Win32 platforms - distinguish debug version DLL from release version DLLs by - suffixing debug version DLL names with 'd'. (E.g., aced.dll - v.s. ace.dll.) This was causing some problem in managing the - svc.conf files because we need to link the matching DLL with the - executables regarding of how they get compiled. - - I modified the ldfind so that when a debug version ACE is - searching for a DLL file, it will first try to find the debug - version of that DLL by suffixing the name with 'd'. If it can't - be found, it then searches for the name specified. The release - version doesn't try to do this. Now, we can specify only the - "normal" dll names in svc.conf files and ACE can pick up the - right dlls for you without changing svc.conf files. However, - you need to follow the Win32 DLL naming convention as described - above. - - I don't expect this feature to cause any backward compatibility - problem. However, if in the rare event, it does cause you - problem, you can disable it by defining - ACE_DISABLE_DEBUG_DLL_CHECK in your config.h file. Notice that - this change only affects Win32 platforms. - -Thu Jul 16 08:55:48 1998 David L. Levine - - * ace/Dynamic_Service.cpp (instance): removed const-ness - from local void * obj, because the function return value - isn't const. Sun C++ caught this. - - * STL,Makefile: removed STL from ACE, for good this time. There - are no more STL dependencies in TAO's AVStreams. However, if - you still want to use the version of STL that was in ACE, you - can obtain it at www.cs.wustl.edu/~schmidt/ACE_wrappers/STL. - - * ACE-INSTALL.html: added note on enabling multicast on Linux for - TAO's NameService. And, added note on adding a routing table - entry to enable multicast on Linux. Thanks to Nanbor for - discovering that. - -Wed Jul 15 19:00:33 1998 Douglas C. Schmidt - - * ace/Dynamic_Service.cpp (instance): Made the error reporting - less verbose. Thanks to Darrell for suggesting this. In - addition, changed the use of (SERVICE *) to - ACE_reinterpret_cast(). - -Wed Jul 15 16:16:40 1998 Chris Gill - - * ace/Message_Queue_T.cpp: Fixed message/byte counting bugs. - -Wed Jul 15 15:42:44 1998 James C Hu - - * ace/OS.h: Added a copy constructor for ACE_Thread_ID. - -Wed Jul 15 14:33:15 1998 Steve Huston - - * ace/Select_Reactor.cpp: Added some MVS-specific behavior in the - error checking/recovery code so that bad handles are properly - located and removed on MVS Open Edition. Thanks to Chuck Gehr - for his hard work in tracking these down. - -Tue Jul 14 14:00:00 1998 Michael Kircher - - * ace/Select_Reactor.cpp: Changed the handling - of the state_changed flag. Now, it is set to "changed" (=1) - after each run of the event loop. This fixed a nested - upcalls bug, which was caused by overwriting this - flag each time entering the event loop. So that, - when poping one level of the handle_events call - stack information was lost about changes. Now, we - assume that information has changed and - propagate this knowlegde down in the call - stack. No performance overhead is caused by that. - -Tue Jul 14 12:02:15 1998 Carlos O'Ryan - - * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp: - * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SOCK_Acceptor.cpp: - * ace/ACE.cpp: - Use ACE_reinterpret_cast in several conversions address type - conversions (like from sockaddr* to sockaddr_in*). - Some compilers (HP/aCC) give a warning if the old C-style cast - operators are used; using the proper cast operator removes the - warning. Thanks to John Mulhern <9107@mn3.lawson.lawson.com> for - pointing out this problem. - -Tue Jul 14 11:26:40 1998 David L. Levine - - * Makefile: added STL back in, because TAO's AVStreams still uses it. - Thanks to Hans Rohnert for - reporting this. - - * ace/Message_Queue_T.cpp (refresh_{late,pending}_queue): removed some - breaks following ACE_ERROR_RETURNs, to avoid compiler warnings about - unreachable statements. - - * tests/Dynamic_Priority_Test.cpp: commented out unused global - FIFO_receipt_order. - - * ace/Basic_Types.h: added ACE_UINT64_LITERAL macro. Thanks to - Nanbor for suggesting it. - - * ace/Stats.cpp: use ACE_UINT64_LITERAL to replace platform-specific - code. - -Mon Jul 13 22:29:20 1998 David L. Levine - - * tests/Dynamic_Priority_Test.cpp: swapped "const" and "static" - qualifiers so that "static" appears first. - (run_performance_test): initialized random_int to 0 to avoid - g++ warning. - - * ace/Message_Queue_T.h: on VxWorks, added forward declaration - of class ACE_Message_Queue_Vx. - - * ace/Message_Queue_T.cpp (create_Vx_message_queue): added - template . - -Mon Jul 13 16:37:07 1998 Chris D. Gill - - * Message_Queue_T.cpp: - refined dynamic queues based on performance test results - -Mon Jul 13 16:35:50 1998 Chris Gill - - * ace/Message_Block.{cpp, h, i} - ace/Message_Queue_T.{cpp, h}: - - Removed automatic deletion of beyond messages, replaced this - with a remove_messages method to be called by an external - "reaper" if at all. Reorganized dynamic message queues - to remove sources of overhead, especially in checking - message status while refreshing the queue: added separate - head and tail pointers for pending, late, and beyond late - protions of queue: only move these pointers, not messages - (except at enqueue). - - * tests/Dynamic_Priority_Test.cpp: - - Added performance tests for static and dynamic queues - which do best case, worst case, and randomized ordering - of messages, presenting each ordering to all queues - and clocking enqueue and dequeue performance. - -Mon Jul 13 11:11:56 1998 Nanbor Wang - - * ace/Svc_Handler.h (ACE_SYNCH_USE>): Changed type of member - to int. Thanks to Zoran Ivanovic - for pointing this out. - -Sun Jul 12 13:25:04 1998 David L. Levine - - * ACE-INSTALL.html: Separated the Linux RedHat 5.1 and 5.0 - discussions into different paragraphs. - -Sat Jul 11 14:25:58 1998 David L. Levine - - * ace/Timer_Queue_Adapter.cpp: moved the ACE_RCSID inside the - ifndef ACE_TIMER_QUEUE_ADAPTERS_C protection, because this - file gets multiply included with g++. - - * ace/config-lynxos.h: added #define ACE_USE_RCS_ID 0. - -Sat Jul 11 03:44:00 1998 Gonzalo Diethelm - - * ace/inc_user_config.h: - Defined an ACE_RCSID macro to add RCS Id keywords to .cpp - files. Also defined an ACE_USE_RCSID macro that allows turning - this feature on and off. - - * ace/config-chorus.h: - * ace/config-psosim-g++.h: - * ace/config-vxworks5.x.h: - These files have the RCS Id keywords off by default. - I hope these are all (and the only) real-time OSs that could be - impacted by the extra 40K or so of space. - - * ace/ACE.cpp: - * ace/ACED.cpp: - * ace/ACER.cpp: - * ace/ARGV.cpp: - * ace/Acceptor.cpp: - * ace/Activation_Queue.cpp: - * ace/Addr.cpp: - * ace/Arg_Shifter.cpp: - * ace/Array.cpp: - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_IO.cpp: - * ace/Auto_Ptr.cpp: - * ace/Basic_Types.cpp: - * ace/CORBA_Handler.cpp: - * ace/CORBA_Ref.cpp: - * ace/Connector.cpp: - * ace/Containers.cpp: - * ace/DEV.cpp: - * ace/DEV_Addr.cpp: - * ace/DEV_Connector.cpp: - * ace/DEV_IO.cpp: - * ace/Date_Time.cpp: - * ace/Dump.cpp: - * ace/Dump_T.cpp: - * ace/Dynamic.cpp: - * ace/Dynamic_Service.cpp: - * ace/Env_Value_T.cpp: - * ace/Event_Handler.cpp: - * ace/Event_Handler_T.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/Filecache.cpp: - * ace/Free_List.cpp: - * ace/Future.cpp: - * ace/Get_Opt.cpp: - * ace/Handle_Set.cpp: - * ace/Hash_Map_Manager.cpp: - * ace/High_Res_Timer.cpp: - * ace/INET_Addr.cpp: - * ace/IOStream.cpp: - * ace/IOStream_T.cpp: - * ace/IO_Cntl_Msg.cpp: - * ace/IO_SAP.cpp: - * ace/IPC_SAP.cpp: - * ace/LOCK_SOCK_Acceptor.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/Local_Name_Space.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Local_Tokens.cpp: - * ace/Log_Msg.cpp: - * ace/Log_Record.cpp: - * ace/Malloc.cpp: - * ace/Malloc_T.cpp: - * ace/Managed_Object.cpp: - * ace/Map_Manager.cpp: - * ace/Mem_Map.cpp: - * ace/Memory_Pool.cpp: - * ace/Message_Block.cpp: - * ace/Message_Queue.cpp: - * ace/Message_Queue_T.cpp: - * ace/Method_Object.cpp: - * ace/Module.cpp: - * ace/Msg_WFMO_Reactor.cpp: - * ace/Multiplexor.cpp: - * ace/Name_Proxy.cpp: - * ace/Name_Request_Reply.cpp: - * ace/Name_Space.cpp: - * ace/Naming_Context.cpp: - * ace/OS.cpp: - * ace/Object_Manager.cpp: - * ace/Obstack.cpp: - * ace/Parse_Node.cpp: - * ace/Pipe.cpp: - * ace/Priority_Reactor.cpp: - * ace/Proactor.cpp: - * ace/Process.cpp: - * ace/Process_Manager.cpp: - * ace/Profile_Timer.cpp: - * ace/RB_Tree.cpp: - * ace/Reactor.cpp: - * ace/Read_Buffer.cpp: - * ace/Registry.cpp: - * ace/Registry_Name_Space.cpp: - * ace/Remote_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_Stream.cpp: - * ace/SPIPE.cpp: - * ace/SPIPE_Acceptor.cpp: - * ace/SPIPE_Addr.cpp: - * ace/SPIPE_Connector.cpp: - * ace/SPIPE_Stream.cpp: - * ace/SString.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/Sched_Params.cpp: - * ace/Select_Reactor.cpp: - * ace/Service_Config.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_SV.cpp: - * ace/Shared_Object.cpp: - * ace/Signal.cpp: - * ace/Singleton.cpp: - * ace/Stats.cpp: - * ace/Strategies.cpp: - * ace/Strategies_T.cpp: - * ace/Stream.cpp: - * ace/Stream_Modules.cpp: - * ace/Svc_Handler.cpp: - * ace/Synch.cpp: - * ace/Synch_Options.cpp: - * ace/Synch_T.cpp: - * ace/System_Time.cpp: - * ace/TLI.cpp: - * ace/TLI_Acceptor.cpp: - * ace/TLI_Connector.cpp: - * ace/TLI_Stream.cpp: - * ace/TTY_IO.cpp: - * ace/Task.cpp: - * ace/Task_T.cpp: - * ace/Thread.cpp: - * ace/Thread_Manager.cpp: - * ace/Time_Request_Reply.cpp: - * ace/Timeprobe.cpp: - * ace/Timeprobe_T.cpp: - * ace/Timer_Hash.cpp: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Heap.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_List.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Queue.cpp: - * ace/Timer_Queue_Adapters.cpp: - * ace/Timer_Queue_T.cpp: - * ace/Timer_Wheel.cpp: - * ace/Timer_Wheel_T.cpp: - * ace/Token.cpp: - * ace/Token_Collection.cpp: - * ace/Token_Invariants.cpp: - * ace/Token_Manager.cpp: - * ace/Token_Request_Reply.cpp: - * ace/Trace.cpp: - * ace/Typed_SV_Message.cpp: - * ace/Typed_SV_Message_Queue.cpp: - * ace/UNIX_Addr.cpp: - * ace/UPIPE_Acceptor.cpp: - * ace/UPIPE_Connector.cpp: - * ace/UPIPE_Stream.cpp: - * ace/WFMO_Reactor.cpp: - * ace/XtReactor.cpp: - * ace/gethrtime.cpp: - * tests/Aio_Platform_Test.cpp: - * tests/Atomic_Op_Test.cpp: - * tests/Barrier_Test.cpp: - * tests/Basic_Types_Test.cpp: - * tests/Buffer_Stream_Test.cpp: - * tests/Conn_Test.cpp: - * tests/Dynamic_Priority_Test.cpp: - * tests/Enum_Interfaces_Test.cpp: - * tests/Env_Value_Test.cpp: - * tests/Future_Test.cpp: - * tests/Handle_Set_Test.cpp: - * tests/Hash_Map_Manager_Test.cpp: - * tests/IOStream_Test.cpp: - * tests/MM_Shared_Memory_Test.cpp: - * tests/MT_Reactor_Timer_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Map_Manager_Test.cpp: - * tests/Mem_Map_Test.cpp: - * tests/Message_Block_Test.cpp: - * tests/Message_Queue_Test.cpp: - * tests/MsgQueue_Notifications_Test.cpp: - * tests/Naming_Test.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/OrdMultiSet_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Priority_Buffer_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Priority_Task_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Reactor_Exceptions_Test.cpp: - * tests/Reactor_Notify_Test.cpp: - * tests/Reactor_Performance_Test.cpp: - * tests/Reactor_Timer_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Reader_Writer_Test.cpp: - * tests/Recursive_Mutex_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - * tests/SOCK_Test.cpp: - * tests/SPIPE_Test.cpp: - * tests/SString_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/Service_Config_Test.cpp: - * tests/Sigset_Ops_Test.cpp: - * tests/Simple_Message_Block_Test.cpp: - * tests/TSS_Test.cpp: - * tests/Task_Test.cpp: - * tests/Thread_Manager_Test.cpp: - * tests/Thread_Mutex_Test.cpp: - * tests/Thread_Pool_Test.cpp: - * tests/Time_Service_Test.cpp: - * tests/Time_Value_Test.cpp: - * tests/Timeprobe_Test.cpp: - * tests/Timer_Queue_Test.cpp: - * tests/Tokens_Test.cpp: - * tests/UPIPE_SAP_Test.cpp: - * tests/Upgradable_RW_Test.cpp: - * tests/XtReactor_Test.cpp: - * tests/tests_bcc.ide: - Added RCS Id keywords to all these files. - - * ace/ace_bcc.ide: - Don't really know what changed here... - -Fri Jul 10 23:11:36 1998 David L. Levine - - * bin/make_release: redirect rdiff error messages to /dev/null. - -Fri Jul 10 22:15:04 1998 David L. Levine - - * ACE version 4.5.21 released. - -Fri Jul 10 10:29:58 1998 David L. Levine - - * ace/SString.h: added ACE_INLINE specifiers to operator+ - declarations, to please Sun C++. Will AIX be able to cope? - -Thu Jul 09 23:27:26 1998 Gonzalo Diethelm - - * ace/OS.h: - Corrected definitions for ACE_Export under Borland compilers. - - * ace/SString.h: - Got rid of the friend operators. - - * ace/Containers.cpp: - * ace/Message_Queue_T.cpp: - * ace/Stream.cpp: - * ace/Timer_Heap_T.cpp: - * tests/Buffer_Stream_Test.cpp: - * tests/Dynamic_Priority_Test.cpp: - * tests/Future_Test.cpp: - * tests/Naming_Test.cpp: - * tests/Priority_Buffer_Test.cpp: - * tests/Thread_Pool_Test.cpp: - Got rid of a few assignments to zero that cause warnings with - the Borland compiler. - - * ace/ace_bcc.ide: - * tests/tests_bcc.ide: - Now Borland C++ 5.x supports building ACE as a DLL, and the tests - are linked against the Debug DLL. - - * tests/tests.bpg: - * tests/Dynamic_Priority_Test.bpr: - * tests/Timeprobe_Test.bpr: - * tests/Upgradable_RW_Test.bpr: - * tests/XtReactor_Test.bpr: - Added four new tests to the project group. - - * tests/Aio_Platform_Test.bpr: - * tests/Atomic_Op_Test.bpr: - * tests/Barrier_Test.bpr: - * tests/Basic_Types_Test.bpr: - * tests/Buffer_Stream_Test.bpr: - * tests/Conn_Test.bpr: - * tests/Dynamic_Priority_Test.bpr: - * tests/Enum_Interfaces_Test.bpr: - * tests/Env_Value_Test.bpr: - * tests/Future_Test.bpr: - * tests/Handle_Set_Test.bpr: - * tests/Hash_Map_Manager_Test.bpr: - * tests/IOStream_Test.bpr: - * tests/MM_Shared_Memory_Test.bpr: - * tests/MT_Reactor_Timer_Test.bpr: - * tests/MT_SOCK_Test.bpr: - * tests/Map_Manager_Test.bpr: - * tests/Mem_Map_Test.bpr: - * tests/Message_Block_Test.bpr: - * tests/Message_Queue_Test.bpr: - * tests/MsgQueue_Notifications_Test.bpr: - * tests/Naming_Test.bpr: - * tests/Notify_Performance_Test.bpr: - * tests/OrdMultiSet_Test.bpr: - * tests/Pipe_Test.bpr: - * tests/Priority_Buffer_Test.bpr: - * tests/Priority_Reactor_Test.bpr: - * tests/Priority_Task_Test.bpr: - * tests/Process_Mutex_Test.bpr: - * tests/Process_Strategy_Test.bpr: - * tests/Reactor_Exceptions_Test.bpr: - * tests/Reactor_Notify_Test.bpr: - * tests/Reactor_Performance_Test.bpr: - * tests/Reactor_Timer_Test.bpr: - * tests/Reactors_Test.bpr: - * tests/Reader_Writer_Test.bpr: - * tests/Recursive_Mutex_Test.bpr: - * tests/SOCK_Connector_Test.bpr: - * tests/SOCK_Test.bpr: - * tests/SPIPE_Test.bpr: - * tests/SString_Test.bpr: - * tests/SV_Shared_Memory_Test.bpr: - * tests/Semaphore_Test.bpr: - * tests/Service_Config_Test.bpr: - * tests/Sigset_Ops_Test.bpr: - * tests/Simple_Message_Block_Test.bpr: - * tests/TSS_Test.bpr: - * tests/Task_Test.bpr: - * tests/Thread_Manager_Test.bpr: - * tests/Thread_Mutex_Test.bpr: - * tests/Thread_Pool_Test.bpr: - * tests/Time_Service_Test.bpr: - * tests/Time_Value_Test.bpr: - * tests/Timeprobe_Test.bpr: - * tests/Timer_Queue_Test.bpr: - * tests/Tokens_Test.bpr: - * tests/UPIPE_SAP_Test.bpr: - * tests/Upgradable_RW_Test.bpr: - * tests/XtReactor_Test.bpr: - Uniform options for Borland C++ and C++ Builder. - -Thu Jul 09 16:23:34 1998 Irfan Pyarali - - * ace/Registry.h (ACE_Registry): Changed the Registry class so - that it does not use STL containers and the string classes - anymore. It now uses ACE containers and string classes. There - should be no dependency on STL in ACE anymore. - - * STL: Removed this directory since ACE is no longer dependent on - STL. If you still need these STL files, please refer to: - http://www.rahul.net/terris/. - - * examples/Registry/test_registry_{update,iterator}.cpp (main): - Updated files to work with modified Registry. - - * ace/SString.cpp (ACE_WString::operator<<): Added new operator. - - * Makefile: Updated Makefile so that STL is no longer released - with ACE. - -Thu Jul 09 09:37:43 1998 David L. Levine - - * ace/Basic_Types: for LONG_LONG size determination, don't use - ULONGLONG_MAX ifdef __GNUG__. This change should fix a build - problem on g++/Irix 6.4. Thanks to Johan Lundin - for reporting the problem. - -Wed Jul 08 17:47:48 1998 Irfan Pyarali - - * ace/Strategies_T (ACE_Scheduling_Strategy, - ACE_Schedule_All_Reactive_Strategy, and - ACE_Schedule_All_Threaded_Strategy): The code in these classes - was screwed up. The base class (ACE_Scheduling_Strategy) was - keeping a pointer to the SVC_HANDLER in order to enable the - derived classes to get to the Reactor and Thread Manager. Also, - if the user did not pass in an instance of SVC_HANDLER, one was - created dynamically ;-( Another problem was that the Reactor - field was set on the SVC_HANDLER, but the SVC_HANDLER was never - registered with the Reactor. So when the SVC_HANDLER was - deleted, it tried to remove itself from a potentially - non-existent Reactor. - - Solution: Removed scheduler_ as protected member of the base - class. Added thr_mgr_ to ACE_Schedule_All_Threaded_Strategy and - reactor_ to ACE_Schedule_All_Reactive_Strategy. Now these - classes do not need the scheduler_ member anymore. - -Wed Jul 8 13:47:02 1998 David L. Levine - - * ace/config-sunx86-sunc++-4.x.h: inserted note to not use this - config, but to use config-sunos5.5.h instead. After we - have installed and tested Sun C++ on Solaris86, we should - remove this config. - - * ACE-INSTALL.html: added note about increasing NUM_FILES to - 1000 in VxWorks kernel configuration. Thanks to - Jeff Franks for reminding me about - this change from the default VxWorks kernel configuration. - -Tue Jul 07 14:36:56 1998 Nanbor Wang - - * ace/ace_ce_dll.dsp: Added Stats.cpp into project. - - * ace/README: Added a new directive - ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS and its documentation. - - * ace/config-win32-common.h: Defined - ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS for Win32 except CE. - - * ace/Log_Msg.{h,cpp}: - * ace/OS.{h,i,cpp}: Changed to use ifdef - ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS for structural exception - code. - - * ace/Token.cpp: - * ace/Stats.cpp: - * ace/High_Res_Timer.cpp: Made them CE friendly. - -Tue Jul 07 09:26:22 1998 David L. Levine - - * ace/Thread_Manager.h: updated comments that describe - ACE_thread_t * argument to spawn () family. - - * ace/OS.{h,cpp},Thread_Manager.cpp: on VxWorks only, instead - of using a string to mark an ACE_thread_t as being allocated - by the ACE_Thread_Manager, use a single character (ASCII DC2). - - * tests/run_tests.vxworks: added Dynamic_Priority_Test. - - * apps/gperf/src/Makefile: added trailing $ to Id string. - -Tue Jul 7 10:48:42 EET DST 1998 Wei Chiang - - * tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp: - Use a counter, max. number of unread messages, instead of wait - to work around the blocking problem in ipcSend() - -Mon Jul 6 22:32:19 1998 Gonzalo Diethelm - - * ace/ace_bcc.ide: - Updates for Borland C++ 5.x. - - * ace/config-win32.h: - Made sure ACE_HAS_WINNT4 and _WIN32_WINNT are always defined if - they were not explicitly defined. - - * ace/config-win32-borland.h: - * ace/config-win32-common.h: - Moved all the Borland definitions to a config-win32-borland.h - file. - - * ace/OS.h (ACE_SEH_TRY): - Added correct support for Borland C++ 5.x. - - * ace/OS.cpp: - Replaced the ugly hack to access wProcessorArchitecture under - Borland compilers for an even uglier hack, but that will work on - every Borland compiler, as long as the members of SYSTEM_INFO are - consistent. See the code and get sick! - - * ace/LOCK_SOCK_Acceptor.h: - * ace/Array.cpp: - * ace/Arg_Shifter.cpp: - Were missing an "ace/" in some includes. - - * tests/tests_bcc.ide: - Added all (well, most) of the tests to the project file. - - * tests/Makefile: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Message_Queue_Notifications_Test.bpr: - * tests/Message_Queue_Notifications_Test.dsp: - * tests/MsgQueue_Notifications_Test.cpp: - * tests/MsgQueue_Notifications_Test.bpr: - * tests/MsgQueue_Notifications_Test.dsp: - * tests/run_tests.bat: - * tests/run_tests.psosim: - * tests/run_tests.sh: - * tests/run_tests.vxworks: - * tests/tests.bpg: - * tests/tests.dsw: - * tests/tests.mak: - * tests/WinCE/Message_Queue_Notifications_Test.dsp: - * tests/WinCE/MsgQueue_Notifications_Test.dsp: - * tests/version_tests/Message_Queue_Notification_Test.dsp: - * tests/version_tests/MsgQueue_Notifications_Test.dsp : - Changed name of Message_Queue_Notifications_Test to - MsgQueue_Notifications_Test, to avoid problems with Borland - compilers. - - * tests/Enum_Interfaces_Test.cpp: - Added some output to test ACE_OS::uname(). - - * tests/Basic_Types_Test.cpp: - Changed a couple of debug lines to contain only one \n. - -Mon Jul 6 14:24:11 EET DST 1998 Wei Chiang - - * tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp: - Add a pause after each send_n()(i.e. ipcSend()) as a temporary - work around over the block problem in ipcSend() when the resources are - exhaused. - - -Mon Jul 6 03:56:49 1998 Nanbor Wang - - * ace/Thread_Manager.h (ACE_Thread_Manager::thr_self): Instead of - refering to ACE_Thread::thr_self, it should mention - ACE_Thread::self. - -Fri Jul 03 17:02:49 1998 David L. Levine - - * bin/make_release (create_kit): remove any existing .zip - files before trying to create new ones, because they get - in the way. Thanks to J. Russell Noseworthy - for reporting the problem - with new ACE+TAO.tar.gz's not being created. - -Fri Jul 3 14:24:59 1998 Darrell Brunsch - - * apps/gperf/src/gperf.dsw: - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf_lib.dsp: - Added MSVC5 Project files - - * apps/gperf/src/Key_List.cpp: - * apps/gperf/src/Options.h: - * apps/gperf/src/Options.cpp: - There was a enumeration CONST, and MSVC5 didn't like it. I - renamed it to CONSTANT. - - * apps/gperf/src/new.cpp - Changed a variable from int to size_t to get rid of a MSVC - warning. - - NOTE: I tried out some tests and even though gperf compiles - on NT, it doesn't seem to work correctly yet. That - will come later. - -Fri Jul 03 13:47:19 1998 David L. Levine - - * ACE version 4.5.20 released. - -Fri Jul 03 08:52:13 1998 Steve Huston - - * netsvcs/lib/Name_Handler.{cpp h}: Moved class Naming_Context from - .cpp to .h so that AIX xlC can find it when instantiating templates. - -Thu Jul 2 11:49:16 1998 Alexander Babu Arulanthu - - * ace/OS.h: - * ace/OS.i: Added ACE_OS::fseek (). NT supports this too. Just - defined SEEK_SET, SEEK_CUR etc, in case they are not defined. This - is similar to what has been done for lseek. - -Thu Jul 02 10:58:00 1998 Michael Kircher - - * tests/Upgradable_RW_Test.cpp: Totally new version, - now we use linked lists on which we search to - spend some time. - - * tests/Upgradable_RW_Test.dsp: Project file for this test. - - * tests/tests.dsw: Integrated this project. - - * tests/version_tests.dsw: Integrated this project. - - * tests/Upgradable_RW_Test.dsp: Project file for this test. - -Thu Jul 02 09:14:20 1998 David L. Levine - - * examples/Reactor/Misc/test_timer_queue.cpp (test_functionality): - use timer_id outside of an assert, so that we don't get compile - warnings with ACE_NDEBUG about it being unused. - - * ace/OS.cpp (thr_create): on VxWorks only, check if thr_id - points to a zero char *. If so, assign the VxWorks task - name pointer to it (*thr_id). Thanks to Bill Backstrom - for this suggestion. - - * ace/Thread_Manager.cpp (spawn_i): on VxWorks only, augmented - comment to explain the various cases for t_id and *t_id values. - - * ace/Thread_Manager.h (spawn*): on VxWorks only, added comment - explaining use of ACE_thread_t * argument. - - * tests/Barrier_Test.cpp: on VxWorks only, added test of - an ACE_thread_t that points to a 0 char *. - - * tests/Barrier_Test.cpp,Thread_Manager_Test.cpp: moved - VxWorks task name and stack size tests from Barrier_Test - to Thread_Manager_Test. - - * tests/run_tests.vxworks: on VxWorks only, enabled - Message_Queue_Test. It's OK to run it on VxWorks, now - that the iterator_test () is disabled in the test. - - * tests/SOCK_Connector_Test.cpp (succeed_nonblocking): - if the connection completion fails, reset the status - _before_ doing the printout. The printout causes the - errno to be overwritten on LynxOS 2.5.0, for example. - - * Makefile (releaseall): use $(MAKE) instead of make for - recursive make. - -Wed Jul 01 21:31:40 1998 Arturo Montes - - * ace/IOStream_T.i (recv_n, eof): fixed calculation of - timeout_ and return value. - -Wed Jul 01 08:51:33 1998 Chris Gill - - * ace/Service_Types.cpp - tests/Dynamic_Priority_Test.cpp: Moved explicit template - instantiations for ACE_Dynamic_Message_Queue and - ACE_Message_Queue_Factory from the test into the ACE library - (next to where the ACE_Message_Queue instantiations resided). - -Wed Jul 01 07:08:40 1998 David L. Levine - - * ace/Message_Queue.i,cpp (VxWorks only): removed args from a - couple of unsupported functions, and added ACE_UNUSED_ARGS - to others, to avoid compiler warnings. - - * tests/Message_Queue_Test.cpp (performance_test): allocate - the send blocks in the main thread instead of in the sender. - That way, the main thread can delete them after the - receiver has finished. Before this change, the sender would - sometimes delete them before the reciever finished. Thanks to - Carlos and his friend Mr. SIGSEGV for helping to track this down. - -Tue Jun 30 23:48:39 1998 Nanbor Wang - - * ace/Message_Queue.h: Added /**/ between #include and <> to - prevent warnings from MSVC. - -Tue Jun 30 22:05:01 1998 David L. Levine - - * tests/Dynamic_Priority_Test.cpp: added template - instantiations. - -Tue Jun 30 18:55:45 1998 Chris Gill - - * ace/Message_Queue_T.{cpp, h} - - Added methods to ACE_Message_Queue_Factory to - create an ACE_Dynamic_Message_Queue with the - deadline and laxity with cleanup strategies. - - * tests/Dynamic_Priority_Test.cpp - - Added tests for the new cleanup strategy factory methods - -Tue Jun 30 18:03:15 1998 Chris Gill - - * ace/Message_Queue_T.{cpp, h} - ace/Message_Block.{cpp, h, i} - - Reorganized ACE_Dynamic_Message_Queue and related classes, - fixed bugs that turned up in testing: it's ready to put - on the road and see how it runs ;-) - - * tests/Dynamic_Priority_Test.{cpp, dsp} - tests/tests.dsw - tests/Makefile - tests/run_tests.{bat, sh} - - Added a test for the static and dynamic (both deadline and laxity - based) message queues, which assigns various message attributes, - pushes messages into the queue, and makes sure the resulting - dequeue order is correct for the given kind of queue. - -Tue Jun 30 14:04:42 1998 Steve Huston - - * ace/Message_Queue_T.cpp: Fixed references to an undeclared - priority_eval_func_ptr_ - I think I figured out what it was - supposed to be doing, but I'm not quite sure. It compiles ;-) - - * ace/Synch.h (ACE_Adaptive_Lock): Removed "= 0" (pure virtual) from - destructor decl. The function is defined in Synch.cpp. - -Tue Jun 30 13:13:21 1998 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (open): Made sure that size does not exceed - MAXIMUM_WAIT_OBJECTS. Thanks to Dr. Schmidt for pointing this - out. - -Tue Jun 30 11:45:12 1998 Steve Huston - - * ace/Message_Queue_T.cpp: Added explicit class names where needed - for ANSI C++. Fixed some compile errors. Still needs more work to - compile correctly on HP-UX aCC. - -Tue Jun 30 09:27:25 1998 David L. Levine - - * etc/ACE-guidelines.html: added a guideline about using ACE_Export. - - * ace/Message_Queue.cpp (ACE_Message_Queue_Vx::dtor; VxWorks only): - added close () call to destructor, because the one in the parent - class will never get called because head_ is always 0 in the derived - class. - - * ace/Message_Queue.i (VxWorks only): finished implementing the - ACE_Message_Queue_Vx inline member functions. - - * tests/Message_Queue_Test.cpp: added performance tests and - tests of ACE_Message_Queue_Vx. - -Tue Jun 30 03:39:15 1998 Nanbor Wang - - * ace/Synch.h (ACE_RW_Process_Mutex): This class no longer needs - to inherit from ACE_Process_Mutex. - - * ace/Synch.cpp (ACE_RW_Process_Mutex): On non-Win32 platforms, - the underlying ACE_File_Lock needs to be created with owner's - read/write permission. Otherwise, other process won't be able - to access the lock. - - * Makefile (CONTROLLED_FILES): Added ChangeLog-98a and - ChangeLog-97b into release. Thanks to Ivan Murphy - for pointing this out. - -Tue Jun 30 00:51:32 1998 Douglas C. Schmidt - - * ACE version 4.5.19 released. - -Tue Jun 30 00:07:39 1998 Nanbor Wang - - * examples/Service_Configurator/Misc/main.dsp: Added macro - definition ACE_SVC_HAS_DLL=0 in this project. DLL linkage is - not used in this example (yet.) Thanks to Joe Covalesky - for noticing this. - -Mon Jun 29 21:16:39 1998 David L. Levine - - * ace/OS.cpp (invoke): wrapped final return with ACE_NOTREACHED. - "It's the right thing to do." - -Mon Jun 29 19:42:12 1998 Irfan Pyarali - - * ace/Timeprobe_T.cpp (ACE_Timeprobe): Changed __TEXT to ASYS_TEXT. - -Mon Jun 29 14:48:58 1998 Nanbor Wang - - * ace/OS.h: Added UNICODE macros for non-Win32 platforms. Thanks - to Jeff Greif for pointing this out. - - * ace/OS.cpp (invoke): Added a return at the end to keep AIX - happy. Thanks to CLahey@cccis.com for reporting this. - -Mon Jun 29 11:37:28 1998 Steve Huston - - * ace/ACE.cpp: Added a 'const' to initialized ASYS_TCHAR * - string - literal conversion to char * is deprecated in C++. - -Sun Jun 28 22:16:51 1998 David L. Levine - - * examples/Service_Configurator/Misc/main.cpp (main): removed - argc declaration because it was unused. - - * examples/Threads/task_five.cpp (work): added - ACE_UNUSED_ARG (stack_size). - - * ace/Message_Queue_T.h: fully qualify the DEFAULT_[HL]WM - references so that it will compile with aCC 1.07 on HPUX 10.20. - Thanks to Avi Nash for reporting this - problem. - - * acer/Message_Queue.{h,cpp} (ACE_Message_Queue_Vx:enqueue_head/tail): - implement these for VxWorks. enqueue_head_i just calls - enqueue_tail_i. - -Sat Jun 27 18:13:05 1998 Irfan Pyarali - - * ace/Timeprobe_T.cpp (ACE_Timeprobe - copy constructor): Stupid - MSVC is forcing me to define this and make it public; it should - really be protected; please don't use it. - - * ace/Timeprobe.h: Added ACE_SINGLETON_DECLARATION; otherwise all - compilation units would get a different instantiation of the - time probe class. Also, changed ACE_TIMEPROBE_SINGLETON to a - #define instead of a typedef; otherwise the compiler bitched - when it was use in ACE_SINGLETON_DECLARATION. - - * SINGLETON_INSTANTIATION: Removed this flag from all files in - ACE. It is causing duplicate declaration errors. - -Sat Jun 27 11:29:50 1998 Douglas C. Schmidt - - * ACE version 4.5.18 released. - -Sat Jun 27 11:27:28 1998 David L. Levine - - * ace/Basic_Types.h: use ACE_CAST_CONST instead of const in - ACE_CU64_TO_CU32. - -Sat Jun 27 11:03:52 1998 Douglas C. Schmidt - - * README: Updated the list of people who have contributed to TAO. - -Sat Jun 27 07:07:43 1998 Douglas C. Schmidt - - * ACE version 4.5.17 released. - -Sat Jun 27 00:27:29 1998 Irfan Pyarali - - * ace/Timeprobe: - - - Added back ACE_COMPILE_TIMEPROBES. David pointed out that - without this flag, size of ACE increases even when time probes - are not being used. Therefore, users must compile ACE with - this flag defined if they want to use time probes. This can - be achieved by doing one of the following: - - . Use make probe = 1, if you are using the make utility. - - . Define ACE_COMPILE_TIMEPROBES in config.h - - . Define ACE_COMPILE_TIMEPROBES in the VC project file. - - . Other regular methods will also work. - - It is not necessary to define ACE_COMPILE_TIMEPROBES when - using time probes, you simply need ACE_ENABLE_TIMEPROBES. You - can use the ACE_TIMEPROBE_* macros to program the time probes, - and use the ACE_ENABLE_TIMEPROBE to enable the time probes. - If you define ACE_ENABLE_TIMEPROBE in your code, but forget to - compile ACE with ACE_COMPILE_TIMEPROBES, you will end up with - linker errors. - - Remember that ACE_COMPILE_TIMEPROBES means that the ACE - library will contain code for time probes. This is only - useful when compiling ACE. ACE_ENABLE_TIMEPROBES means that - the ACE_TIMEPROBE_* macros should spring to life. - - - Added inclusion of OS.h. This way the ACE_COMPILE_TIMEPROBES - can be specified in the config file. - - * include/makeinclude/wrapper_macros.GNU: probe = 1 no longer - means ACE_ENABLE_TIMEPROBE. It only means - ACE_COMPILE_TIMEPROBES. This was changed because defining - ACE_ENABLE_TIMEPROBE here is too broad. ACE_ENABLE_TIMEPROBE is - cleverly designed so that it allows only some time probes to be - enabled (where ACE_ENABLE_TIMEPROBE is defined), while others to - be disabled (where ACE_ENABLE_TIMEPROBE is not defined). - - Example: IDL_Cubit time probes can be enabled without enabling - TAO time probes. Or TAO time probes can be enabled without - enabling IDL_Cubit time probes. TAO time probes are controlled - through TAO/tao/Timeprobes.h. - - * tests/Timeprobe_Test.cpp: - - - Defining ACE_ENABLE_TIMEPROBES is not forced. Users can - uncomment this at the top of the file. This relieves us from - trying to include the symbols of ACE_Timeprobes from ACE if - ACE was compiled without using ACE_COMPILE_TIMEPROBES (the - #include ace/Timeprobe.cpp trick did not work on all 8 - different ways of compiling ACE on NT). - - - Made the registration of the description arrays similar to the - real use cases (in TAO). - - - Introduced enums and took the magic numbers out. - -Fri Jun 26 20:37:06 1998 Matthew J Braun - * tests/Logger/clnt.h - * tests/Logger/clnt.cpp - * tests/Logger/svr.cpp - * orbsvcs/orbsvcs/Log/Logger_i.h - * orbsvcs/orbsvcs/Log/Logger_i.cpp - * orbsvcs/orbsvcs/Logger.idl - - The current status of this is incomplete. The svr* test is guaranteed - to be nonfunctional (I cannot yet speak for the rest). - - -Fri Jun 26 14:52:33 1998 Nanbor Wang - - * tests/test_config.h: Don't close the ofstream before opening the - log stream in ACE_APPEND_LOG on Win32. It it not necessary - because Win32 doesn't have fork anyway and it somehow confuses - Win32 (becuase no file was openen at that point.) - - * performance-tests/Makefile: Temporarily removed Synch-Benchmark - from the targets. It should be added back once the work is - done. - -Fri Jun 26 11:50:03 1998 David L. Levine - - * ace/OS.h: map ACE_dynamic_cast to static_cast with Sun C++, - without RTTI, to avoid warning about using dynamic_cast - without RTTI. Thanks to J. Russell Noseworthy - for reporting this. - - * include/makeinclude/wrapper_macros.GNU,ACE-INSTALL.html: - added rtti make option. - - * ace/Message_Queue.*: on VxWorks, added ACE_Message_Queue_Vx, - which wraps native VxWorks messages queues. See the header - file for limitations. - - * ace/Message_Queue_T.*,Makefile: split Message_Queue into - template and non-template files. - - * ace/Basic_Types.h: added ACE_CU64_TO_CU32 conversion macro, - for converting const ACE_UINT64 to const ACE_UINT32. The old - ACE_U64_TO_U32 wouldn't work with Sun C++'s ANSI casts. - - * performance-tests/Misc/basic_perf.cpp (per_iteration): use - ACE_CU64_TO_CU32 for narrowing the const ACE_UIN64 argument. - - * ace/config-sunos5.5.h: added ACE_HAS_ANSI_CASTS with Sun C++ 4.2. - - * include/makeinclude/platform_sunos5_sunc++.GNU: added - -features=castop to CCFLAGS, to enable use of ANSI casts. - - Thanks to J. Russell Noseworthy - for recommending the above two changes. - - * include/makeinclude/platform_sunos5_sunc++.GNU: Added - support for rtti=1 option to make, to optionally enable RTTI. - -Fri Jun 26 11:39:49 1998 Nanbor Wang - - * ACE-INSTALL.html: Added more infomation in {Free,Net}BSD. - -Fri Jun 26 10:51:07 1998 Carlos O'Ryan - - * ace/OS.h: - Fixed problem in ACE_DES_* macros, some preprocessors were - tokenizing ::~CLASS as ":: ~CLASS" and we wanted ":: ~ CLASS" - (were class in a macro argument). - -Fri Jun 26 09:48:55 1998 Douglas C. Schmidt - - * VERSION: Updated this file to direct bug reports to - the ACE mailing list. - -Fri Jun 26 10:43:02 EET DST 1998 Wei Chiang - - * ace/CLASSIX/CLASSIX_OS.cpp: - ACE_CLASSIX_OS::ACE_CLASSIX_OS() - After created an CLASSIX reactor as an actor-wide singleton - reactor, delete the original reator singleton, if any. - -Fri Jun 26 02:18:05 1998 Nanbor Wang - - * performance-tests/Synch-Benchmarks/Benchmark[_Base].{h,cpp}: - * performance-tests/Synch_Benchmarks/Makefile: Added a new class - Benchmark_Base so we can not only load the test items - but also the test methods dynamically. - -Wed Jun 24 21:37:22 1998 David L. Levine - - * ace/Message_Queue.cpp (refresh_queue): fixed syntax - error: extraneous ;. - -Wed Jun 24 19:52:30 1998 Irfan Pyarali - - * ace/IPC_SAP.cpp (enable,disable): Fixed #define nesting. - -Wed Jun 24 15:36:18 1998 Nanbor Wang - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp - (Peer_Router_Context): For some reason, MSVC can't grop the - temporary objects. Therefore, I changed the ACE_INET_Addr object - in the constructor to a local variable. - -Wed Jun 24 17:10:06 1998 Irfan Pyarali - - * ace/Timeprobe: Removed ACE_COMPILE_TIMEPROBE. ACE library will - always contain ACE_Timeprobe code. - -Wed Jun 24 16:20:02 1998 James CE Johnson - - * ace/IOStream.cpp (underflow,overflow): added protection against - errors, when get/put buffers can be set to 0. - -Wed Jun 24 14:42:50 1998 Chris Gill - - * ace/Message_Queue.{cpp,h}: added =TITLE/=DESCRIPTION - and method comments to ACE_Message_Queue_Factory - - * ace/Message_Block.h: fixed comment in ACE_Laxity_Message_Strategy - -Wed Jun 24 13:35:15 1998 Chris Gill - - * ace/Message_Queue.{cpp,h,i} - ace/Message_Block.{cpp,h,i}: Fixed ACE_UNIMPLEMENTED_FUNC - declarations in ACE_Dynamic_Message_Queue, moved the - ACE_Dynamic_Message_Strategy, ACE_Laxity_Message_Strategy, - and ACE_Deadline_Message_Strategy classes from the - Message_Queue.* files into the respective Message_Block.* - files (fixes link errors on platforms such as NT which - require template source). - -Wed Jun 24 11:38:00 1998 Chris Gill - - * ace/Message_Block.{cpp,h,i}: Added worst case execution time and - deadline absolute time ACE_Time_Value members to ACE_Message_Block. - These default to ACE_Time_Value::zero in the constructors and - initialization methods. - - * ace/Message_Queue.{cpp,h,i}: Added ACE_Dynamic_Message_Queue, - ACE_Dynamic_Message_Strategy, ACE_Deadline_Message_Strategy, - ACE_Laxity_Message_Strategy, and ACE_Message_Queue_Factory - classes to facilitate adaptive use of statically or dynamically - prioritized message queues. - -Wed Jun 24 10:23:27 1998 David L. Levine - - * bin/make_release: 1) inserted /pkg/gnu/bin at head of - PATH, if it exists. That way, cvs diff will use GNU diff. - Thanks to Doug for tripping over that. - 2) changed grep -E to egrep. - - * ace/OS.i,gethrtime.cpp (gethrtime): with Pentium and g++ or ghs, - only; fixed load of 64-bit tick count into two 4-byte ints. - - * performance-tests/Misc/basic_perf.cpp (iteration_time): check - for elapsed_time_ less than empty_iteration_time_, and return 0 - if so. - -Wed Jun 24 10:02:14 1998 Douglas C. Schmidt - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp - (parse_args): Fixed a warning about control reaching the end of - a method. Thanks to David Levine for reporting this. - - * .cvsignore: Added "build" to make CVS happy. Thanks to - David for this info. - - * ace/CLASSIX: Reran "make depend." - - -Wed Jun 24 13:34:32 EET DST 1998 Wei Chiang - - * tests/CLASSIX/* - Attached "CLASSIX_" to all the file names in this directory - Added Imakefile - - * ace/CLASSIX/CLASSIX_Select_Reactor.* - test/CLASSIX/CLD_Connector_Test.cpp - get_current_info() is now renamed to current_info() in compliant - with ACE_Reactor_Impl class. - -Wed Jun 24 08:17:25 EET DST 1998 Wei Chiang - - * Renamed ace/CLASSIX/CLASSIX_Reactor.* to - ace/CLASSIX/CLASSIX_Select_Reactor.* and adujsted other files - accordingly. - - * ace/CLASSIX/CLASSIX_Reactor.* - make naming reference consistenet: all the references to - ACE_CLASSIX_Reactor are now to ACE_CLASSIX_Select_Reactor - -Wed Jun 24 02:39:35 1998 Douglas C. Schmidt - - * ACE version 4.5.16 released. - -Wed Jun 24 00:00:44 1998 Douglas C. Schmidt - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Cleaned - up the Event_Transceiver code a bit. - - * examples/ASX/Event_Server/Event_Server/event_server.cpp (main): - Cleaned up the code a bit. - - -Wed Jun 24 06:54:00 EET DST 1998 Wei Chiang - - * Attached "CLASSIX_" to all the file names in ace/CLASSIX. - - * Modified include statments in ace/CLASSIX/* to reflect the - name changes. - - * Added Makefile in ace/CLASSIX - - * ace/CLASSIX/CLASSIX_Reactor.h: - ACE_CLASSIX_Reactor_Notify is now derived from ACE_Reactor_Notify - The private data member, select_reactor_, is now an - ACE_CLASSIX_Reactor class instead of an ACE_Select_Reactor class. - - * ace/CLASSIX/CLASSIX_Reactor.cpp: - in open() - uses ACE_dynamic_cast() to cast - parameter from ACE_Reactor_Impl to ACE_CLASSIX_Reactor - -Tue Jun 23 22:18:42 1998 Douglas C. Schmidt - - * examples/Mem_Map/file-reverse/file-reverse.cpp: Fixed a minor - bug where the program would ungraciously core dump if the file - given on the command-line doesn't exist. Thanks to William - S. Lear for reporting this. - -Tue Jun 23 20:33:30 1998 Irfan Pyarali - - * ace/Synch.h (ACE_Adaptive_Lock): Added ACE_Export. - -Tue Jun 23 18:59:31 1998 Steve Huston - - * ace/Acceptor.cpp (ACE_Strategy_Acceptor<>::resume()): Don't - suspend() the object; resume() it - looked like a cut/paste error. - -Tue Jun 23 16:41:35 1998 Nanbor Wang - - * ace/Synch.{h,cpp} (class ACE_Adaptive_Lock): Added the new Lock - class which allows its subclass to determine the actual locking - mechanism it uses at run time. Notice that all subclasses must - provide their own contructor/destructor implementation. - -Tue Jun 23 06:40:35 1998 David L. Levine - - * examples/Map_Manager/test_hash_map_manager.cpp (main): - replaced use of cerr with and ACE_ERROR_RETURN. Thanks - to Philippe Klein for reporting - this. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: - added #include of ace/streams.h. Thanks to Philippe Klein - for reporting this. - - * tests/TSS_Test.cpp (worker): declare "u" globally so that - we don't quickly run out of TSS keys. - -Mon Jun 22 09:25:32 1998 Carlos O'Ryan - - * ace/XtReactor.cpp: - The notify_handler_ is a pointer now, it was still deferenced as - an object. - -Mon Jun 22 09:04:21 1998 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU: removed suppression - of warning 340, used reference to copied (temporary) value, - because it's no longer needed. - - * ace/Message_Queue.cpp (ACE_Message_Queue_Iterator ctor): - replaced "queue" with "q" to avoid problems with STL or on - platforms that #define queue. Thanks to Dave Meyer - for reporting this. - - * ace/Synch_T.h: added adapter class ACE_TSS_Type_Adapter. - It adapts built-in types for use with ACE_TSS. - - * tests/TSS_Test.cpp: demonstrate/test use of ACE_TSS_Type_Adapter. - - * ace/Timeprobe.h: added semicolon to end of - ACE_TIMEPROBE_EVENT_DESCRIPTIONS definition, when it's non-null. - - * tests/Timeprobe_Test.cpp (main): removed trailing semicolon - from ACE_TIMEPROBE_EVENT_DESCRIPTIONS, and added ACE_UNUSED_ARGs - to avoid compilation warnings about unused variables. - -Mon Jun 22 04:49:29 1998 Douglas C. Schmidt - - * man/windex: Removed ACE_Service_Record from all the - documentation since it is no longer relevant. Thanks - to Ivan Murphy for reporting this. - -Mon Jun 22 02:59:42 1998 Nanbor Wang - - * ace/Process.cpp (setenv_i): Nedd to adjust the memory size to - the actual string size. - -Mon Jun 22 02:32:56 1998 Gonzalo Diethelm - - * ace/Thread_Manager.h: - * ace/Thread_Manager.cpp: - * ace/Thread_Manager.i: - * ace/OS.cpp (uname): - Moved a few things (comparison operators) from - ACE_Thread_Descriptor to ACE_Thread_Descriptor_Base, to satisfy - Borland compilers. - Enabled a conditional compilation for all Borland compilers. - Thanks to Valik Solorzano Barboza for pointing - these things out. - -Mon Jun 22 01:14:36 1998 Gonzalo Diethelm - - * ace/ACE.bpg: - * ace/ACED.bpr: - * ace/ACER.bpr: - Contained ^M characters. - I also made sure there were no absolute paths pointing to "gonzo" - directories... - - * ace/ACED.cpp: - * ace/ACER.cpp: - Added Stats.cpp as a module in the right place. - - * ace/OS.h: - Added a ACE_NOOP macro to avoid compilation warnings when "if" is - used as a noop in certain macros. - - * ace/Hash_Map_Manager.cpp: - * ace/Map_Manager.cpp: - Replaced the use of "if" as a noop with ACE_NOOP. - - * ace/Signal.cpp: - For some obscure reason, Borland needs a blank line between the - #if and the extern "C" void ace_sig_handler_dispatch() - definition. Don't ask... - - * ace/Asynch_IO.h: - Changed (again) inheritance for ACE_Asynch_Result from protected - to public. - - * tests/Aio_Platform_Test.bpr: - * tests/Atomic_Op_Test.bpr: - * tests/Barrier_Test.bpr: - * tests/Basic_Types_Test.bpr: - * tests/Buffer_Stream_Test.bpr: - * tests/Conn_Test.bpr: - * tests/Enum_Interfaces_Test.bpr: - * tests/Env_Value_Test.bpr: - * tests/Future_Test.bpr: - * tests/Handle_Set_Test.bpr: - * tests/Hash_Map_Manager_Test.bpr: - * tests/IOStream_Test.bpr: - * tests/MM_Shared_Memory_Test.bpr: - * tests/MT_Reactor_Timer_Test.bpr: - * tests/MT_SOCK_Test.bpr: - * tests/Map_Manager_Test.bpr: - * tests/Mem_Map_Test.bpr: - * tests/Message_Block_Test.bpr: - * tests/Message_Queue_Notifications_Test.bpr: - * tests/Message_Queue_Test.bpr: - * tests/Naming_Test.bpr: - * tests/Notify_Performance_Test.bpr: - * tests/OrdMultiSet_Test.bpr: - * tests/Pipe_Test.bpr: - * tests/Priority_Buffer_Test.bpr: - * tests/Priority_Reactor_Test.bpr: - * tests/Priority_Task_Test.bpr: - * tests/Process_Mutex_Test.bpr: - * tests/Process_Strategy_Test.bpr: - * tests/Reactor_Exceptions_Test.bpr: - * tests/Reactor_Notify_Test.bpr: - * tests/Reactor_Performance_Test.bpr: - * tests/Reactor_Timer_Test.bpr: - * tests/Reactors_Test.bpr: - * tests/Reader_Writer_Test.bpr: - * tests/Recursive_Mutex_Test.bpr: - * tests/SOCK_Connector_Test.bpr: - * tests/SOCK_Test.bpr: - * tests/SPIPE_Test.bpr: - * tests/SString_Test.bpr: - * tests/SV_Shared_Memory_Test.bpr: - * tests/Semaphore_Test.bpr: - * tests/Service_Config_Test.bpr: - * tests/Sigset_Ops_Test.bpr: - * tests/Simple_Message_Block_Test.bpr: - * tests/TSS_Test.bpr: - * tests/Task_Test.bpr: - * tests/Thread_Manager_Test.bpr: - * tests/Thread_Mutex_Test.bpr: - * tests/Thread_Pool_Test.bpr: - * tests/Time_Service_Test.bpr: - * tests/Time_Value_Test.bpr: - * tests/Timer_Queue_Test.bpr: - * tests/Tokens_Test.bpr: - * tests/UPIPE_SAP_Test.bpr: - * tests/tests.bpg: - Contained ^M characters. - I also made sure there were no absolute paths pointing to "gonzo" - directories... - -Mon Jun 22 01:33:12 1998 Nanbor Wang - - * ace/OS.h (ACE_SYNCH_{1,2}): These two macros were added back for - backward compatibility. - -Mon Jun 22 01:12:53 1998 Irfan Pyarali - - * ace/OS.i (dlerror): Just use FormatMessageA instead of - FormatMessage. The you don't have to worry about UNICODE being - turned on. - -Mon Jun 22 00:01:02 1998 Douglas C. Schmidt - - * ACE version 4.5.15 released. - -Sun Jun 21 23:54:28 1998 Nanbor Wang - - * ace/config-freebsd-pthread.h: Defined - ACE_LACKS_MUTEXATTR_PSHARED and ACE_LACKS_CONDATTR_PSHARED. - -Sun Jun 21 10:14:32 1998 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp (server): Fixed - another ambiguity caused by the recent SOCK_IO changes. Thanks - to David for pointing this out. - -Sun Jun 21 00:16:56 1998 Nanbor Wang - - * ace/OS.i (dlerror): Have to treat UNICODE differently because - FormatMessage takes wchar when UNICODE is defined. - - * ace/WFMO_Reactor.{h,i,cpp}: Changed the parent class of - ACE_WFMO_Reactor_Notify from ACE_Event_Handler to - ACE_Reactor_Notify. - (dump): Added this virtual function implementation for - ACE_WFMO_Reactor_Notify. - - * Ace/Proactor.cpp (timeout): Fixed a typo. - -Sat Jun 20 16:51:39 1998 Douglas C. Schmidt - - * ace/Reactor*: Made a slew of changes to the Reactor and it's - associated implementations so that we can integrate it - seamlessly with Chorus ClassiX IPC. Thanks to Wei Chiang for - these changes. - - * ace/Acceptor.cpp: Added a flag that keeps track of whether we should - use select() in the Acceptor. This makes it easier to integrate - this stuff with Chorus IPC. Thanks to Wei Chiang for this. - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: Removed the trailing - 0 to the send() operation to (1) avoid overload ambiguity and - (2) to use write() rather than send()! Thanks to Chris Healey - for reporting this. - - * ace/ACE: The default condition in the select switch in the - enter_*_timed_wait functions assumed that all values returned - from select if not 0 or 1 will be -1. This is true in those - functions due to only 1 file descriptor flag being set. Thanks - to Chris Healey for generalizing this a bit... - - * ace/SOCK_IO: Added the wrappers for the "non-flags" version of - timed send()/recv(). Thanks to Chris Healey for this. - - * ace/FILE_Addr.cpp: Cleaned up the code a bit to be more - consistent. Thanks to Chris Healey for suggesting this. - - * ace/FILE_Addr.cpp (ACE_FILE_Addr): Removed the memset() in the - constructor since this is overkill... - - * ace/ACE.cpp (send_n): Fixed a dump cut&paste bug in the timed - version of send_n(). Thanks to Chris Healey - for reporting this. - -Sat Jun 20 14:58:21 1998 Nanbor Wang - - * bin/indent_macros.perl: Instead of hardcoding perl's location in - the script, it now invokes perl according to user's environment - setting. Thanks to David for providing the improvement. - -Sat Jun 20 01:24:28 1998 Nanbor Wang - - * include/makeinclude/platform_freebsd_pthread.GNU: Changed to use - -Wall to report all warnings. - - * ace/OS.cpp (thr_create): Specify as an unused - argument when ACE_LACKS_SETSCHED. - - * ace/OS.{h,i,cpp}: Rearrange macro indentations. - - * bin/indent_macros.perl: This little perl script rearrange the - indentation of macros so they are a bit easier to debug. - - * ace/config-freebsd-pthread.h: Defined ACE_LACKS_PTHREAD_CANCEL. - -Sat Jun 20 00:14:07 1998 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_proactor_with_aio.cpp: Test - program for the Asynch_Transmit_File, Asynch_Read_File, - Asynch_Read_Stream, Asynch_Write_File and Asynch_Write_Stream. - -Fri Jun 19 23:58:35 1998 Alexander Babu Arulanthu - * ace/Proactor.h : - * ace/Proactor.cpp : - * ace/Asynch_IO.h : - * ace/Asynch_IO.cpp : - - Implemented Asynch_Transmit_File for POSIX4 systems. - - Added a new class "ACE_Asynch_Transmit_Handler", which is - an auxillary handler class for Asynch_Transmit_File. This - does the actual transmission doing file read and stream - write asynchronously and finally calling the - transmit_handler in the application. - - Aiocb list is now of size RTSIG_MAX, the maximum number - of RT signals that can be queued in a process at a time. - -Fri Jun 19 22:17:35 1998 David L. Levine - - * bin/make_release (check_workspace): use cvs checkout instead - of update, to notice any new directories that have been added - to the repository but not to the workspace. - - There are .cvsignore files in /project/adaptive/ACE_wrappers - and /project/adaptive/ACE_wrappers/java. They can be used - to suppress tripping over any new, uncontrolled files, such - as releases, that are added to these directories. - - Filter ^U from checkout output, so that release need not be - based on the latest repository versions. Instead, the release - is based on the contents of the /project/adapative/ACE_wrappers - workspace. It need not be brought up-to-date with the repository, - though it cannot contain any modified files. This change allows - other users to continue to check in files prior to or during the - release. - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (read): added - ACE_UNUSED_ARG (len). - - * Makefile: fixed build of .obj/gethrtime.o with ghs/VxWorks/i86. - - * tests/run_tests.vxworks: added Timeprobe_Test, but commented - out. That test page faults when built with ghs for Pentium. - It appears that the STL-style iterator usage in ACE_Timeprobe - isn't handled properly by the compiler. - -Fri Jun 19 16:51:05 1998 Nanbor Wang - - * ace/config-freebsd-pthread.h (ACE_HAS_NONCONST_MSGSND): Macro - definition added. - - * ace/OS.i (sigwait): Suppress compiler warnings on FreeBSD. - (msgsnd): Separated the case ACE_HAS_NONCONST_MSGSND out. - - Thanks to Russell L. Carter for reporting - the above fix. - -Fri Jun 19 11:22:27 1998 David L. Levine - - * ACE version 4.5.13 released. - -Thu Jun 18 21:14:25 1998 David L. Levine - - * examples/Threads/task_five.cpp: renamed global stack_size - to default_stack_size, to avoid shadowing by stack_size in - main (). - - * ace/OS.i (dlopen): added support for ACE_HAS_SGIDLADD. - (dlerror): on WIN32, return a formatted message instead of 0. - Thanks to Kent Watsen for the diffs. - - * ace/config-irix6.x-sgic++-nothreads.h: added ACE_HAS_SGIDLADD. - Thanks to Kent Watsen for this addition. - - * Makefile: ACE-INSTALL is not a .PHONY target. - - * ace/Makefile: only regenerate Svc_Conf_[ly].cpp if at Wash. U. - -Thu Jun 18 20:46:46 1998 Nanbor Wang - - * performance_tests/Misc/childbirth_time.cpp: Changed to use the - variable MULTIPLY_FACTOR in statistic calculation. - - * ace/config-freebsd-pthread.h: Added the following definition: - #define ACE_HAS_SIGINFO_T - #define ACE_LACKS_SIGINFO_H - #define ACE_LACKS_UCONTEXT_H - #define ACE_LACKS_SI_ADDR - - * include/makeinclude/platform_freebsd_pthread.GNU: Changed to - invoke linker directly using g++. Added -pthread flag for - linker. This implies programs will link against libc_r - automatically now. Removed -lc_r. Other minor changes. - - Thanks very much for lots of help from FreeBSD team esp. Amancio - Hasty and John Birrell - . - -Thu Jun 18 19:32:30 1998 David L. Levine - - * ace/Token.cpp (dump): commented out print of owner_. Is - there a portable way to print an ACE_thread_t via ACE_DEBUG? - -Thu Jun 18 18:46:00 1998 Carlos O'Ryan - - * ace/Timeprobe.h: - * ace/Timeprobe_T.h: - * ace/Timeprobe_T.cpp: - Added methods to print the absolute values, this can be used to - mix the results of several processes: por example on Sparcs the - high-res timer is a CPU register so the value is consistent - across processes, there are some potential problems with - multiple CPUs, but that's not our case. - -Thu Jun 18 16:25:28 1998 Nanbor Wang - - * examples/Threads/task_five.cpp (main): Extracted out the body of - the test loop so that the delete[] gets called everytime the - body gets executed. - - * ace/Thread_Manager.cpp (ACE_EXECUTE_OP,kill): We need to guard - against non-existing target thread after searching the thread - table. Thanks to Savas Parastatidis - for noticing the problem. - -Thu Jun 18 09:23:39 1998 Irfan Pyarali - - * ace/config-win32-common.h: Fixed the inclusion of winsock - related files. Thanks to Ernesto Guisado - for suggesting this. - -Wed Jun 17 22:47:50 1998 David L. Levine - - * ace/OS.i (rw_trywrlock_upgrade): moved declaration of - local "result" before the ACE_PTHREAD_CLEANUP_PUSH. - PTHREAD_CLEANUP_PUSH/POP are macros that contain open/ - close braces on some platforms. So, any declarations - between them are not visible after the POP. - -Wed Jun 17 19:01:53 1998 Nanbor Wang - - The following changes provide an interface for ACE programmers - of more finer control over how Win32 structured exceptions are - handled. Thanks to Detlef Becker - for contemplating the idea and passing it to us. - - * ace/Log_Msg.{h,cpp} (seh_except_{selector,handler}): Added - new methods to retrieve/set structured exception handling - behavior. is used to determine the "proper" action a - thread should take upon a structured exception and - performs the actual exception handling routine. They are - structured as below in ace_thread_adapter: - - __except (ACE_LOG_MSG->seh_except_selector () (0)) - { - ACE_LOG_MSG->seh_except_handler () (0); - } - - * ace/OS.{h,cpp} (ACE_SEH_EXCEPT_HANDLER): New typedef used to - define user win32 structured exception handler. - - (ACE_SEH_Exception_{Selector,Handler}): Default structured - exception handler. Two handlers ACE_Log_Msg are initialized to - them by default. - - (ACE_Thread_Adapter,inherit_log_msg): Added initializing and - inheriting code to pass the spawning thread's structured - exception handling behaviors. - - * ace/config-win32-common.h - (ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION): This macro defines - the default action taken by ACE when a win32 structured - exception occurs. It is by default defined to - EXCEPTION_CONTINUE_SEARCH, which does not handle the exception - but simply pass the exception out. Users can overwrite the - default behavior by defining the macro in their config.h files. - -Wed Jun 17 17:30:11 1998 Michael Kircher - - * ace/OS.h: Added a condition variable and a flag to - the definition of reader/writer locks. - - * ace/OS.i: Implemented ACE_OS::rw_trywrlock_upgrade properly - using one condition variable and a flag. The condition - variable is used to get in front of all the possible - waiting writers and to wait on still working readers - on the rw_lock. The flag is used to indicate, that - a reader is upgrading its lock. rw_unlock obeys one more - case now. - - * ace/OS.cpp: The constructor for the Reader/writer locks - has changed slightly to initialize and destroy the - new members. - - * tests/Reader_Writer_Test.cpp: Added the use of the - rw_mutex.tryacquire_write_upgrade () method to the test. - -Wed Jun 17 07:34:11 1998 David L. Levine - - * tests/IOStream_Test.cpp (server): fixed sign of constant - used to check for valid double. Thanks to Mark Kettner - for reporting this. - - * performance-tests/UDP/udp_test.cpp: added a few - ACE_U64_TO_U32 explicit conversions. - - * tests/Priority_Buffer_Test.cpp (consumer): re-enabled the - statement to suppress the ghs warning about unused variable - cur_priority. - -Tue Jun 16 20:29:32 1998 Steve Huston - - * ACE-INSTALL.html: Added some comments concerning MSVC 5.0 and SP3. - Thanks to Bill Fulton for the excellent detective work. - -Tue Jun 16 16:08:23 1998 Irfan Pyarali - - * ace/Timeprobe_T.h (class ACE_Timeprobe): Fixed copy constructor - signature. Thanks to Chuck R. Gehr - (GehrCR@LOUISVILLE.STORTEK.COM) for pointing this out. - -Tue Jun 16 16:18:08 1998 Douglas C. Schmidt - - * ace/FILE_Addr.cpp (operator=): Check to make sure we - NUL-terminate the memcpy'd filename correctly. Thanks to Istvan - Buki for reporting this. - -Tue Jun 16 15:43:55 1998 Nanbor Wang - - * ACE-INSTALL.html: Changed to instruct users to #include - "ace/config-win32.h" instead of "config-win32.h" directly. - Thanks to Gonzo for noticing this. - -Tue Jun 16 10:33:20 1998 David L. Levine - - * os-patches/linux-patches.html: added RedHat 5.1 success - report from Chanaka Liyanaarachchi . - - * ace/Basic_Types.h,High_Res_Timer.cpp, - performance-tests/Misc/basic_perf.cpp: - added explicit ACE_U64_TO_U32 conversion macro. WIN32's __int64 - and ACE_U_LongLong need an explicit narrowing to 32 bits. This - macro provides a consistent way to do that on all platforms. - - * ace/Asynch_IO.*: added trailing $ to CVS keyword string. - - * ace/Asynch_IO.cpp: fixed so that it will compile with Sun CC - on Solaris 2.6. Thanks to Frederic ANDRES - for reporting this. - - * ACE-INSTALL.html: updated Linux RedHat info. - -Mon Jun 15 23:17:27 1998 David L. Levine - - * Makefile: added os-patches/ to distribution. - -Mon Jun 15 23:07:45 1998 David L. Levine - - * ACE version 4.5.12 released. - -Mon Jun 15 13:58:17 1998 David L. Levine - - * ace/config-chorus.h: replaced comment that said that the - config is for CHORUS using MIT threads with comment that says - that it uses the CHORUS POSIX threads interface. Thanks to - Leo Modica for questioning this, and Wei - Chiang for confirming it. - - * os-patches/linux-patches.html: updated glibc info. Thanks - to Bob Scott for pointing out the - glibc-2.0.7-7 is not available from sunsite. - -Sat Jun 13 13:10:05 1998 David L. Levine - - * tests/XtReactor_Test.cpp: moved explicit template instantiations - inside ACE_HAS_XT, because the #includes are all inside - ACE_HAS_XT also. - - * tests/XtReactor_Test.cpp: without ACE_HAS_XT, replaced - ACE_ERROR_RETURN with ACE_ERROR. This makes it consistent - with other tests, and allows the following ACE_END_TEST - statement to be reached. - - * tests/Process_Mutex_Test.cpp (main): specify full path to - spawned children. Removed Solaris/i386-specific code because - it should no longer be needed now that the test is fixed by - specifying the full path. (acquire_release): removed printout - at top. - - * ACE+TAO.tgz,ACE.tgz,ACE-lib.tgz,FSU-threads.tgz: added these - symlinks to their corresponding .tar.gz files. Thanks to - Gonzo and Darrell for suggesting this. - - * ace/RB_Tree.i (clear): removed extraneous ";" following the - function definition. - - * ace/Process.cpp (spawn): added an ACE_DEBUG printout before each - call to ACE_OS::exit (). - - * ace/Synch_T.cpp: removed the #pragma define_template for - ACE_Condition on __osf__ with cxx. It's no longer - needed, and was causing multiply defined instantiations with - cxx 6.1. - -Fri Jun 12 17:04:14 1998 Alexander Babu Arulanthu - - * ace/OS.h: Moved the #define's and typedef's (related to Proactor - stuff, things like TRANSMIT_BUFFERS etc) under '#if defined - (WIN32)' before OS.i. They were at the end of the file. - -Fri Jun 12 16:31:13 1998 Aniruddha Gokhale - - * ace/OS.h: (ACE_NTOHL, ACE_HTONL): Added macros for conversion - between network and host byte order. Thanks to James Hu for - contributing these. - -Fri Jun 12 14:29:40 1998 Douglas C. Schmidt - - * ace/OS.i (sema_wait): Changed the code so that it always treats - the time value argument in absolute time, even for Win32. - Thanks to Chuck Gehr for reporting this. - -Fri Jun 12 14:12:25 1998 Carlos O'Ryan - - * include/makeinclude/wrapper_macros.GNU: - The inclusion of the XtReactor is controlled on the - platform_macros file (or the command line). - Users simply type make xt_reactor=1 to enable this feature, or - set xt_reactor to 1 in the platform_macros.GNU file. - Some extra macros were added for platforms that require special - CPP, LD or libraries when linking against X/Windows. The macros - are described in this file. - The platforms that already had XtReactor compiled by default - still do. - - * ace/config-irix6.x-sgic++-nothreads.h: - * include/makeinclude/platform_irix6.x-sgic++.GNU: - Now the XtReactor configuration is controlled on the platform - file. - - * ACE-INSTALL.html: - Updated documentation for make flags. - - * tests/XtReactor_Test.cpp: - Fixed a few typos. - - * tests/Conn_Test.cpp: - Fixed some template instantiation pragmas. - -Thu Jun 11 22:05:31 1998 David L. Levine - - * tests/Process_Mutex_Test.cpp (main): kill children on - Solaris/i386 instead of waiting for them. (acquire_release): - added printout at top. It never appears, at least on - g++/Solaris/i386. - - * ace/Malloc.cpp (instance): wrap declaration of local "assertion" - with ifndef ACE_NDEBUG, to avoid warning about unused variable - with debug=0. - -1998-06-11 Alexander Babu Arulanthu - - * ace/Proactor.h (ACE_Proactor): Put insert_aiocb_list () under - ACE_HAS_AIO_CALLS so that it doesnt break in NT. - -Thu Jun 11 1998 Alexander Babu Arulanthu - - * ace/OS.h: Added typedef's, #define's and #include's under the - definition ACE_HAS_AIO_CALLS for the proactor porting. - - * ace/config-sunos5.6.h: Defined ACE_HAS_AIO_CALLS for - solaris2.6. - - * ace/Asynch_IO.h: - * ace/Asynch_IO.cpp: Added aio call support for Asynch_Read_File. See - the code under #if defined (ACE_HAS_AIO_CALLS) - - * ace/Proactor.h: - * ace/Proactor.cpp: Added support for AIO calls in Proactor. See - the code under #if defined (ACE_HAS_AIO_CALLS) - - * examples/Reactor/Proactor/test_proactor_with_aio.cpp: The test - program for Proactor doing aio stuff. - -Thu Jun 11 13:34:26 1998 Darrell Brunsch - - * ace/OS.cpp: Made change to uname to use a different structure - if certain Borland compilers are being used. Thanks to - Valik Solorzano for this fix. - - * bin/make_release: create .zip files in addition to .tar.gz files. - -Thu Jun 11 11:15:26 1998 Carlos O'Ryan - - * ace/XtReactor.cpp: - The notify_handler_ open method requires an extra argument. - -Wed Jun 10 14:31:55 1998 David L. Levine - - * ace/Strategies_T.cpp (ACE_Recyclable ctors): reordered - initializers to match declaration order. - - * tests/Conn_Test.cpp: fixed template instantiations: - ACE_SYNCH_MUTEX instead of ACE_SYNCH_RW_MUTEX. - - * tests/XtReactor_Test.cpp (main): added ACE_UNUSED_ARGS for - argc and argv without ACE_HAS_XT. - -Wed Jun 10 12:34:25 1998 Irfan Pyarali - - * ace/Strategies_T: Added two new template classes: ACE_Recyclable - and ACE_Hash_Recyclable. ACE_Recyclable adds a recyclable flag - to the class it is instantiated with. ACE_Hash_Recyclable - inherits from ACE_Recyclable and forces the class it is - instantiated with to have a hash() method. - - Also, the Hash_Addr was fixed so that it does not have the - recyclable flag anymore, since the Hash_Addr can be used even - when there is no recycling. - - Also updated the ACE_Cached_Connect_Strategy to reflect these - changes. - - * tests/Conn_Test.cpp: Fixed the template instantiations in lieu - of the changes to Hash_Addr. - -Wed Jun 10 11:05:39 1998 David L. Levine - - * bin/make_release: replaced ACE_wrappers-repository/ with - ACE_wrappers/ in diffs. Thanks to James Risinger - for reporting this. - -Wed Jun 10 01:31:46 1998 Gonzalo Diethelm - - * tests/Tokens_Test.cpp: - Changed how the Borland template instantiations are protected. - - * tests/XtReactor_Test.cpp: - test_config.h must be included before asking for ACE_HAS_XT. - Was missing the Borland non-sense. - - * tests/UPIPE_SAP_Test.cpp: - Protected the Borland template instantiations. - - * tests/Timeprobe_Test.cpp: - * tests/Time_Value_Test.cpp: - Added the Borland non-sense. - - * tests/Reactor_Timer_Test.cpp: - Added a couple of casts to avoid warnings. - - * tests/Priority_Buffer_Test.cpp: - Got rid of a (seemingly) useless piece of code. - - * tests/Naming_Test.cpp: - Modified a test so that it won't give warnings. - - * tests/Conn_Test.cpp: - Was missing the Borland non-sense. - Modified an #if-protected section to get rid of a warning. - Added a few extra Borland template instantiations. - - * ace/WFMO_Reactor.cpp: - * ace/SOCK_Dgram.cpp: - Under Borland, a couple of comparisons were always true (with a - warning) because of unsignedness. - - * ace/Malloc.cpp: - Assigned the consition of an assertion to a temporary variable to - avoid a misleading warning. - - * ace/Get_Opt.cpp: - Added an explicit comparison against 0 to avoid a warning. - - * ace/ACED.cpp: - * ace/ACER.cpp: - These files had been commited with ^M at the end of lines. - - * ace/ACE.cpp: - Changed a couple of run time checks for - ACE_DIRECTORY_SEPARATOR_CHAR into compile time tests; that got rid - of a couple of warnings under BCB3 (Borland C++ Builder 3.0). - - * ace/ACE.cpp: - * tests/Conn_Test.cpp: - Used ACE_NOTREACHED to avoid further warnings. - - * ace/OS.h: - Added Borland to the empty definition of ACE_NOTREACHED. - The definition of ACE_SEH_FINALLY for the case of Borland C++ - Builder 3.0 now uses __finally. This allowed most of the tests - that were hanging to complete ok. Thanks to David Tallman - for pointing this out. - -Tue Jun 9 19:35:26 1998 Douglas C. Schmidt - - * ace/XtReactor: Integrated the new XtReactor, which should now - work for Windows NT! Thanks to Kirill Rybaltchenko - for this. - - * tests: Added the new XtReactor_Test.cpp to test the features of - the XtReactor. Thanks to Kirill Rybaltchenko - for this test. - -Tue Jun 09 16:18:54 1998 David L. Levine - - * Makefile: removed old release targets. They're no longer - used, or maintained. - - * include/makeinclude/platform_sunos5_x86_g++.GNU: removed. - Use platform_sunos5_g++.GNU instead, on both sparcs and x86. - -Tue Jun 09 15:25:13 1998 David L. Levine - - * ACE version 4.5.11 released. - -Tue Jun 9 14:59:15 1998 Darrell Brunsch - - * ace/OS.cpp: Made it so both Borland and Microsoft use the - x.wProcessorArchitecture structure for system info. - -Tue Jun 09 14:35:28 1998 David L. Levine - - * tests/Tokens_Test.cpp,UPIPE_SAP_Test.cpp: only need the - template instantiations with Borland C++. - - * bin/make_release: create version diffs, in background, - when creating releases. - -Tue Jun 09 12:50:49 1998 Nanbor Wang - - * ace/ACE_Library.mak: Added Stats.cpp. - -Tue Jun 09 11:51:17 1998 Chris Gill - - * tests/MM_Shared_Memory_Test: added a null pointer check so - test complains rather than crashing when shared allocator fails. - -Mon Jun 8 21:03:23 1998 Douglas C. Schmidt - - * ace/Select_Reactor.cpp (any_ready): Fixed a more unrighteous bug - where we were assigning the values in the wait_set_ rather than - the ready_set_. Thanks to Stefan Ericsson - for reporting this bug. - -Mon Jun 8 19:15:38 1998 Nanbor Wang - - * ace/Malloc.h: - * ace/Malloc_Base.h (ACE_Allocator): Moved the definition of - abstract class ACE_Allocator from Malloc.h to a new file called - Malloc_Base.h to resolve a circular dependency among a bunch of - header files when compiling with UNICODE and inline enabled. - - * ace/SString.i: Changed to include "ace/Malloc_Base.h" to avoid - circular inclusion. - -Mon Jun 08 18:35:23 1998 Steve Huston - - * ACE-INSTALL.html: Added some updated HP-UX info (and a pointer to - Riverace's HP-UX hints page) and removed the warning to not use - MSVC 5.0 SP3 - per results from ace-users discussions last week, - SP3 is getting used successfully. - -Mon Jun 08 13:22:47 1998 David L. Levine - - * ace/Basic_Types.h: set ACE_SIZEOF_LONG_DOUBLE to 12 if - LDBL_MAX_EXP is 16384 and LDBL_DIG is 18. Thanks to - Sree Oggu for reporting this, on - SolarisX86 with Sun C++. - - * ace/Malloc.cpp (instance): cleaned up comments. - -Mon Jun 8 12:12:39 1998 Carlos O'Ryan - - * tests/UPIPE_SAP_Test.cpp: - Template instantiation was not using the ACE_SYNCH macros. - -Mon Jun 8 02:17:54 1998 Gonzalo Diethelm - - * ACE-INSTALL.html: - Added a comment regarding the new port to Borland C++ Builder. - - * ace/ACE.bpg: - * ace/ACED.bpr: - * ace/ACED.cpp: - * ace/ACER.bpr: - * ace/ACER.cpp: - - - * ace/ACE.cpp: - Got rid of unused const int MAX_STRING_SZ = 4096. - - * ace/Asynch_Acceptor.cpp: - * ace/Asynch_IO.cpp: - * ace/Msg_WFMO_Reactor.cpp: - * ace/config-win32-common.h: - Replaced the use of _WIN32_WINNT with ACE_HAS_WINNT4. Borland C++ - Builder doesn't handle _WIN32_WINNT very well when building under - Win95. - - * ace/Asynch_IO.h: - Now ACE_Asynch_Result inherits publicly from OVERLAPPED; - otherwise, Borland C++ Builder refuses to access OVERLAPPED - members. I'm not sure who's right or wrong here. - - * ace/CORBA_Ref.h: - Added an #include "ace/ACE.h". - - * ace/Future.h: - Two cosmetic changes. - - * ace/LOCK_SOCK_Acceptor.cpp: - Added an #include /**/ "ace/LOCK_SOCK_Acceptor.h". - - * ace/Log_Msg.cpp: - Borland C++ Builder doesn't like extern int sys_nerr, so I - protected against it. - - * ace/OS.cpp: - A couple of hacks to handle FILETIMEs and SYSTEM_INFO structs, - which are defined a little different under Borland C++ Builder. - - * ace/OS.h: - Added support for Borland C++ Builder. - - * ace/OS.i: - Borland C++ Builder handles a few functions differently: close, - SetFilePointer, wfdopen. - - * ace/Synch_T.h: - A comment on an #else spanned several lines and mixed // and /**/ - styles; hard to read. - - * ace/TTY_IO.cpp: - A switch was not properly indented and, as a result, had an extra - break that made Borland C++ Builder complain. - - * ace/WFMO_Reactor.cpp: - Got rid of a couple of unused local variables called result. - - * ace/config-win32-common.h: - Added a few defines for Borland C++ Builder. Don't know if - this is the proper way to do it, but there it is. - - * tests/Aio_Platform_Test.bpr: - * tests/Atomic_Op_Test.bpr: - * tests/Barrier_Test.bpr: - * tests/Basic_Types_Test.bpr: - * tests/Buffer_Stream_Test.bpr: - * tests/Conn_Test.bpr: - * tests/Enum_Interfaces_Test.bpr: - * tests/Env_Value_Test.bpr: - * tests/Future_Test.bpr: - * tests/Handle_Set_Test.bpr: - * tests/Hash_Map_Manager_Test.bpr: - * tests/IOStream_Test.bpr: - * tests/MM_Shared_Memory_Test.bpr: - * tests/MT_Reactor_Timer_Test.bpr: - * tests/MT_SOCK_Test.bpr: - * tests/Map_Manager_Test.bpr: - * tests/Mem_Map_Test.bpr: - * tests/Message_Block_Test.bpr: - * tests/Message_Queue_Notifications_Test.bpr: - * tests/Message_Queue_Test.bpr: - * tests/Naming_Test.bpr: - * tests/Notify_Performance_Test.bpr: - * tests/OrdMultiSet_Test.bpr: - * tests/Pipe_Test.bpr: - * tests/Priority_Buffer_Test.bpr: - * tests/Priority_Reactor_Test.bpr: - * tests/Priority_Task_Test.bpr: - * tests/Process_Mutex_Test.bpr: - * tests/Process_Strategy_Test.bpr: - * tests/Reactor_Exceptions_Test.bpr: - * tests/Reactor_Notify_Test.bpr: - * tests/Reactor_Performance_Test.bpr: - * tests/Reactor_Timer_Test.bpr: - * tests/Reactors_Test.bpr: - * tests/Reader_Writer_Test.bpr: - * tests/Recursive_Mutex_Test.bpr: - * tests/SOCK_Connector_Test.bpr: - * tests/SOCK_Test.bpr: - * tests/SPIPE_Test.bpr: - * tests/SString_Test.bpr: - * tests/SV_Shared_Memory_Test.bpr: - * tests/Semaphore_Test.bpr: - * tests/Service_Config_Test.bpr: - * tests/Sigset_Ops_Test.bpr: - * tests/Simple_Message_Block_Test.bpr: - * tests/TSS_Test.bpr: - * tests/Task_Test.bpr: - * tests/Thread_Manager_Test.bpr: - * tests/Thread_Mutex_Test.bpr: - * tests/Thread_Pool_Test.bpr: - * tests/Time_Service_Test.bpr: - * tests/Time_Value_Test.bpr: - * tests/Timer_Queue_Test.bpr: - * tests/Tokens_Test.bpr: - * tests/UPIPE_SAP_Test.bpr: - * tests/tests.bpg: - Added these Borland C++ Builder project files. - - * tests/Aio_Platform_Test.cpp: - * tests/Atomic_Op_Test.cpp: - * tests/Barrier_Test.cpp: - * tests/Basic_Types_Test.cpp: - * tests/Buffer_Stream_Test.cpp: - * tests/Enum_Interfaces_Test.cpp: - * tests/Env_Value_Test.cpp: - * tests/Future_Test.cpp: - * tests/Handle_Set_Test.cpp: - * tests/Hash_Map_Manager_Test.cpp: - * tests/IOStream_Test.cpp: - * tests/MM_Shared_Memory_Test.cpp: - * tests/MT_Reactor_Timer_Test.cpp: - * tests/MT_SOCK_Test.cpp: - * tests/Map_Manager_Test.cpp: - * tests/Mem_Map_Test.cpp: - * tests/Message_Block_Test.cpp: - * tests/Message_Queue_Notifications_Test.cpp: - * tests/Message_Queue_Test.cpp: - * tests/Naming_Test.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/OrdMultiSet_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Priority_Buffer_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Priority_Task_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Reactor_Exceptions_Test.cpp: - * tests/Reactor_Notify_Test.cpp: - * tests/Reactor_Performance_Test.cpp: - * tests/Reactor_Timer_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Reader_Writer_Test.cpp: - * tests/Recursive_Mutex_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - * tests/SOCK_Test.cpp: - * tests/SPIPE_Test.cpp: - * tests/SString_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: - * tests/Semaphore_Test.cpp: - * tests/Service_Config_Test.cpp: - * tests/Sigset_Ops_Test.cpp: - * tests/Simple_Message_Block_Test.cpp: - * tests/TSS_Test.cpp: - * tests/Task_Test.cpp: - * tests/Thread_Manager_Test.cpp: - * tests/Thread_Mutex_Test.cpp: - * tests/Thread_Pool_Test.cpp: - * tests/Time_Service_Test.cpp: - * tests/Time_Value_Test.cpp: - * tests/Timer_Queue_Test.cpp: - * tests/Tokens_Test.cpp: - * tests/UPIPE_SAP_Test.cpp: - Added the Borland non-sense to allow the tests to link against the - ACE library under Borland C++ Builder. Major pain in the rear - end... - - * tests/test_config.h: - Added a couple of includes for the case of Borland C++ Builder. - - * tests/Hash_Map_Manager_Test.cpp: - Changed variable name allocator to alloc, to avoid conflicts with - STL allocators under Borland C++ Builder. - - * tests/Reactors_Test.cpp: - Changed variable name tm to thr_mgr, to avoid conflicts with - std::tm under Borland C++ Builder. - - * tests/Tokens_Test.cpp: - * tests/UPIPE_SAP_Test.cpp: - Added a few explicit template instantiations. - -Sun Jun 07 09:51:02 1998 David L. Levine - - * ace/Timeprobe_T.cpp: added #include of ace/Timeprobe.h. - It wouldn't compile on GreenHills without it. - - * STL/bool.h: only #define bool, etc., if _MSC_VER is #defined. - Thanks to Stanley Leeson for - reporting this. - - * tests/Timeprobe_Test.cpp: added #include of ace/Timeprobe.cpp - to pick up template instantiations, if ACE_COMPILE_TIMEPROBES - was not defined. This allows the test to build on platforms - that have explicit template instantiation when libACE was - built without timeprobes enabled. - -Sun Jun 7 01:06:12 1998 Douglas C. Schmidt - - * ace/config-freebsd-pthread.h: Added the - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS flag to work around problems - with pthreads on FreeBSD. Thanks to Amancio Hasty - for reporting this. - -Sat Jun 6 22:00:54 1998 Douglas C. Schmidt - - * ace/Message_Queue.cpp: Added code so that advance() is more - thread-safe. - - * apps/gperf/src/Options.cpp (operator): Changed ACE_OS::exit() - to ACE_OS::_exit() so we'll leave no trace... - - * apps/gperf/src/Key_List.cpp (output_switch): Fixed another bug - where strcmp() should be generated instead of strncmp(). - - * apps/gperf/src: We no longer call the inline option "GNU" but - now call it "INLINE". - - * apps/gperf/src/{Options.h,Key_List.cpp,Gen_Perf.cpp}: Revised - the LARGE_STACK_ARRAY code so that it only gets compiled if - we're using GCC. - - * apps/gperf/src/Key_List.cpp (output_switch): Fixed a bug where - strcmp() was being used instead of strncmp(). Thanks to C++ - for finding this! - - * apps/gperf/src/Key_List.cpp: Removed all uses of "register" - since C++ compilers can do this automagically... - - * apps/gperf/tests/test.cpp (main): Modified the test program to - use C++ rather than C (ugh!). - - * ace: Added two new files: Timeprobe_T.h and Timeprobe_T.cpp in - order to solve problems with multiply defined symbols. Thanks - to Brian Mendel, David Levine, and Irfan for tracing this down. - -Sat Jun 6 19:10:54 1998 Sergio Flores - - * ace/config-vxworks5.x.h: changes the default thread priority - from 6 to 101. - -Sat Jun 06 16:43:01 1998 David L. Levine - - * ace/Timeprobe.cpp (dtor): inserted missing "[]" in delete of - array. - -Fri Jun 5 11:53:18 1998 Darrell Brunsch - - * ace/Log_Msg.{h,cpp}: Added enable_debug_messages() to do - the opposite of disable_debug_messages(). - - * ace/Parse_Node.cpp: Got rid of all the checks of the - Service Configurator's debug flag. Instead, the checking - will occur in the Service Configurator. - - * ace/Service_Config.cpp: Added to Stephen Coy's changes so - that debug messages are turned back on after the Service - Configurator is done. That way, other code can still use - debug messages. - -Thu Jun 4 12:25:48 1998 Rajiv C. Gandhi - - * apps/gperf/src/Options.h: removing the option to stack - allocate some large arrays as CC does not seem to like it. - - * apps/gperf/src/Key_List.cpp (output_lookup_array): removing - the option to stack allocate some large arrays as CC does - not seem to like it. - - * apps/gperf/src/Gen_Perf.cpp: removing the option to stack - allocate some large arrays as CC does not seem to like it. - -Thu Jun 04 05:03:09 1998 Douglas C. Schmidt - - * ACE version 4.5.10 released. - -Wed Jun 3 02:24:47 1998 Nanbor Wang - - * ace/config-win32-common.h: Instead of defining _MT for users if - it's not defined, spit out an error message and stop the - compilation. Thanks to Barney Dalton - for suggesting this. - -Tue Jun 02 20:03:51 1998 Steve Huston - - * ace/config-hpux-1[01].x-hpc++.h: Added ACE_HAS_USING_KEYWORD for - aC++ on both platforms. - -Tue Jun 02 12:19:29 1998 Nanbor Wang - - * ace/Thread_Manager.cpp (wait_grp,wait_task): These two were - still copying thread_descriptors and deleting the copies - directly. This corrupted the cached thread_descriptor. - Changing them to use Thread_Descriptor_Base solved the problem. - Thanks to Zoran Ivanovic for finding - this. - -Tue Jun 02 08:29:20 1998 David L. Levine - - * include/makeinclude/wrapper_macros.GNU,ACE-INSTALL.html: - moved probe=1 support from individual Makefiles to - wrapper_macros.GNU. - -Tue Jun 02 08:09:41 1998 Steve Huston - - * ace/config-aix-4.1.x.h: Removed ACE_HAS_THREAD_SELF. It was - causing compile failure. Thanks to Lee Nash - for helping to work this out. - -Mon Jun 01 16:19:52 1998 Steve Huston - - * examples/Reactor/Dgram/Dgram.mdp, Dgram.mak: Added these files - to build the examples with MSVC 4.2. - -Mon Jun 01 13:01:14 1998 Irfan Pyarali - - * examples/Reactor/Dgram/Dgram.cpp (run_test): Because of the - delayed de-registration in WFMO_Reactor, WFMO_Reactor was trying - to call handle_close on the Event Handler after it was - destroyed. Solution: dynamically created the Event Handler and - call "delete this" in handle_close. The other alternative was - to call remove_handler with the DONT_CALL flag and to close the - socket in the Event Handler's destructor. - - * ace/Timeprobe: The vxworks compiler is lame as it cannot handle - operator placement new for arrays. Therefore, ACE_Allocator was - removed in favor of regular new and delete. - -Mon Jun 01 09:54:51 1998 David L. Levine - - * tests/Timeprobe_Test.cpp: removed trailing ; from template - instantation pragmas. - - * tests/Conn_Test.cpp,MM_Shared_Memory_Test.cpp, - Priority_Reactor_Test.cpp,SOCK_Test.cpp: replaced - !defined (ACE_WIN32) && !defined (VXWORKS) with - !defined (ACE_LACKS_FORK). - -Sun May 31 23:05:10 1998 David L. Levine - - * ACE-INSTALL.html,include/makeinclude/wrapper_macros.GNU: - added repo=1 make option support. It only helps when - building ACE applications. ACE and TAO still use explicit - instantiation when building their libraries, because it's - easiest to avoid link collisions that way. And it already - works. - -Sun May 31 18:31:24 1998 James C Hu - - * ace/RB_Tree.i: - * ace/RB_Tree.cpp: Changes suggested by Sergio to make it work - with older version of GCC. Referred to RB_Tree_Node_Color - through the parent class RB_Tree_Node_Base. - -Sat May 30 13:14:18 1998 James C Hu - - * ace/RB_Tree.h: Try to put enum into a class again. This time, - created a dummy base class to hold the RED and BLACK enums. - -Sat May 30 08:01:31 1998 David L. Levine - - * ace/RB_Tree.h (RB_Tree_Iterator::operator =): Added explicit - return type to the declaration. Wrapped with - ACE_UNIMPLEMENTED_FUNC. - -Fri May 29 23:06:02 1998 David L. Levine - - * ace/RB_Tree.{h,i}: moved enum RB_Tree_Node_Color out of the - (template) class declaration because g++ 2.7.2.3 couldn't - find it there. - - * ace/Thread_Manager.cpp (remove_thr, VxWorks only): added [] to - delete of tid array. Thanks to Arturo Montes - for reporting this. - - * ace/RB_Tree.h (RB_Tree_Iterator::operator =): added explicit - return type to the declaration. Wrapped with - ACE_UNIMPLEMENTED_FUNC. - -Fri May 29 21:59:01 1998 James C Hu - - * RB_Tree.h: - * RB_Tree.i: - * RB_Tree.cpp: Debugged some minor typo errors, and changes - related to internalizing the RED and BLACK enums. - -Fri May 29 21:55:11 1998 David L. Levine - - * ace/High_Res_Timer.cpp: don't use ACE_HAS_PENTIUM code on - Solaris (ACE_HAS_HI_RES_TIMER) because it uses ::gethrtime (). - (dump): on Solaris, print 64-bit ints with %llu format. Other - platforms may need that, also. - - * ace/Makefile: replaced .o with $(OBJEXT) in gethrtime.o target, - so that make depend doesn't munge it. - - * ace/OS.h: only use the null versions of the - ACE_DES_FREE_TEMPLATE* macros with LynxOS 3.0.0. - - * include/makeinclude/platform_lynxos.GNU: commented out -Winline, - because it complains too much with -O2, and that's now the default. - -Fri May 29 17:52:37 1998 Douglas C. Schmidt - - * ACE version 4.5.9 released. - -Fri May 29 16:19:34 1998 Douglas C. Schmidt - - * ace/Synch_T.h (class ACE_Guard): ACE_Guard's destructor was - changing the errno value. Fixed this to avoid doing so... - Thanks to Arturo Montes for reporting - this. - -Fri May 29 15:33:41 1998 David L. Levine - - * performance-tests/Misc/context_switch_time.cpp: - added Synchronized Suspend-Resume Test. - -Fri May 29 14:46:49 1998 James C Hu - - * ace/Makefile - * ace/RB_Tree.h - * ace/RB_Tree.cpp: Added changes to RB_Tree to enable overloading - of the comparison method. Added class RB_Tree to the UNIX - Makefile. - - * ace/OS.cpp: Added some minor fixes to the difftime implementation. - - * ace/OS.cpp: - * ace/OS.i: - * ace/README: - * ace/config-sunos4*: - Added ACE_LACKS_DIFFTIME macro because SunOS4 does not support - the Standard C difftime function. Added a difftime - implementation for when such is the case. - -Fri May 29 08:22:36 1998 Steve Huston - - * ace/Log_Msg.cpp, Trace.cpp: Changed decision for - order-of-include/inline from ACE_WIN32 to - ACE_HAS_ONE_DEFINITION_RULE. This completes the changes needed - to be able to use the newer versions of HP aC++. - - * ace/config-win32.h: Set ACE_HAS_ONE_DEFINITION_RULE. - -Thu May 28 16:17:41 1998 Steve Huston - - * ace/README: Added ACE_HAS_ONE_DEFINITION_RULE. - * ace/config-hpux-10.x-hpc++.h: - * ace/config-hpux-11.x-hpc++.h: Added ACE_HAS_ONE_DEFINITION_RULE - for aC++. This is part of a set of changes to make ACE work - with HP aC++ A.01.09 (10.20) and A.03.05 (11.00). The other - changes are being tested still. Thanks _very_ much to Steve Coy - for digging through this with HP and working out a solution! - -Thu May 28 15:55:48 1998 Douglas C. Schmidt - - * Added new configuration files for SCO. Thanks to Arturo for - this. - -Thu May 28 13:57:50 1998 David L. Levine - - * ace/Filecache.cpp: removed redundant template instantiations. - - * ace/config-lynxos.cpp: added undef ACE_HAS_TEMPLATE_SPECIALIZATION - for LynxOS 3.0.0. - - * ace/Hash_Map_Manager.cpp,Map_Manager.cpp: replaced bare explicit - destructor calls with ACE_DES_FREE_TEMPLATE{,2} macro invocations. - - * ace/OS.h: #define ACE_DES_FREE_TEMPLATE to be null on LynxOS. - Without it, the g++ that's distributed with LynxOS 3.0.0 hopelessly - chokes on explicit calls to template class destructors. This - hack could cause memory leaks, though currently ACE_DES_FREE_TEMPLATE - is only used to call empty, non-virtual destructors (in - Containers.cpp, Hash_Map_Manager.cpp, and Map_Manager.cpp). - Also, added ACE_DES_FREE_TEMPLATE2 macro for use with two - template arguments. There's got to be a better way. - - * include/makeinclude/platform_lynxos.GNU: added LynxOS Version 3.0.0 - support. It's optional at this point: add VERSION=3.0.0 to your - make invocation to enable. Disabled -Wall with LynxOS 3.0.0. - Enabled optimization. - -Thu May 28 07:47:41 1998 Steve Huston - - * tests/SOCK_Connector_Test.cpp: Changed the "should succeed" test - from port 25 (smtp) to 7 (echo) to try and get a higher success - rate. Thanks to David Levine for this suggestion. - -Wed May 27 13:45:24 1998 Steve Huston - - * ace/ACE.cpp (handle_timed_complete): Fixed problem where - successful connect was being reported as a failure (P90). - - * tests/SOCK_Connector_Test.cpp: Added a test for a successful - non-blocking connect (tests fix from above). - -Wed May 27 07:04:42 1998 David L. Levine - - * ace/Service_Config.cpp: default debug_ to 1 instead - of 0. And the -d option now disables debug messages, - instead of enabling them. Thanks to Irfan for reporting - that LM_DEBUG messages were lost without this fix. - - * ace/High_Res_Timer (calibrate): added calibrate () method - to calculate the global scale factor on Pentiums. It's - called by the constructor for the first instantiation - in a process. (On WIN32, get_registry_scale_factor () is - called instead of calibrate ().) - - * ace/Stats.cpp (sample): continue aggregating data even - if there is overflow. This allows, e.g., a mean to be - calculated even if the standard deviation calculation overflow. - - * performance-tests/Misc/context_switch_time.cpp: don't run the - Yield_Test on VxWorks because it takes too long. - - * ace/High_Res_Timer.*: moved calibration from constructor to - global_scale_factor () accessor. - - * ace/Timeprobe.cpp: no longer need to explicitly calibrate the - High_Res_Timer. - -Tue May 26 22:25:18 1998 Stephen Coy - - * ace/Log_Msg.{h,cpp},Service_Config.cpp: added support for - -d in Service_Config files to enable/disable LM_DEBUG messages. - -Tue May 26 14:53:21 1998 Steve Huston - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): Fixed use of uninitialized - variable, nr_subscribed. Thanks to Nanbor for finding this. - -Tue May 26 13:39:21 1998 Carlos O'Ryan - - * ace/Timeprobe.cpp: - * tests/Timeprobe_Test.cpp: - Now egcs and Sun/CC are happy with this files. - -Tue May 26 00:35:49 1998 Irfan Pyarali - - * tests/Timeprobe_Test.cpp: Added new test. - - * ace/Timeprobe: Added the ability to have multiple event tables - for time probes. Multiple maps can be used to chunk up the time - probes. Each one can be added by calling event_descriptions(). - Different tables are used internally by consulting the - minimum_id for each table. It is up to the user to make sure - that multiple tables do not share the same event id range. - -Sat May 23 21:52:49 1998 Carlos O'Ryan - - * ace/Message_Block.h: - * ace/Message_Block.i: - The rd_ptr() and wr_ptr() are const methods now. - -Sat May 23 00:18:58 1998 Nanbor Wang - - * ace/ace_ce_dll.dsp: Updated settings for MIPS CPU. - - * tests/WinCE/*.dsp: Updated settings for MIPS CPU. - -Fri May 22 16:00:03 1998 Douglas C. Schmidt - - * tests/MT_SOCK_Test.cpp (spawn): We must check for !defined - (ACE_LACKS_FORK) rather test for VxWorks or Win32. Thanks to - Steven Coy for reporting this. - -Fri May 22 20:01:40 1998 David L. Levine - - * ace/OS.h: moved ACE_IO_Vector declaration ahead of OS.i #include. - - * ace/OS.i (ACE_IO_Vector::buffer): added static cast of new_buffer - to char *. - - * ace/OS.i (writev): changed return type from int to ssize_t to - match declaration in OS.h. - -Fri May 22 12:20:11 1998 Irfan Pyarali - - * ace: Other parts of ACE were modified to use the new - ACE_IO_Vector class. - - * ace/OS.h (ACE_IO_Vector): Added a new class that inherits from - the correct IO_Vector class provided by the platform. - - writev() and readv() were being emulated on Win32 in ACE. A new - ACE_OS::writev() and ACE_OS::readv() has been added to ACE - that uses WSASend() and WSARecv() respectively. However, in - order for you to exploit these new functions, you must use - ACE_IO_Vector instead of iovec. The ideal situation would have - been to totally replace iovec with ACE_IO_Vector but that would - break too much code. So, if you keep using iovec, you will use - the expenses and slow emulations. If you want to use WSASend() - and WSARecv(), switch over to ACE_IO_Vector. It will work on - both Win32 and non-Win32 platforms. - -Fri May 22 07:53:03 1998 David L. Levine - - * ace/config-linux-pthread.h: removed two - ACE_LACKS_CONDATTR_PSHARED #defines. That leaves just - one, that's commented out. - - * performance-tests/Misc/context_switch_time.cpp: create all - threads as detached so they don't have to be joined. They - test was using up resources on LynxOS, if a high -c option - was used, without this change. - - * ace/config-sunos5.5-{g++,sunc++-4.x}.h,config-sunos5.5.h: - merged config-sunos5.5-g++.h and config-sunos5.5-sunc++-4.x.h - into config-sunos5.5.h. That new file should be maintained - for both compilers from now on. The old files have been - retained for backward compatibility. The just #include - config-sunos5.5.h. - - * ace/config-sunos5.6.h: #include config-sunos5.5.h instead - of the separate Sun C++ and g++ configs. - - * include/makeinclude/platform_sunos5_sunc++.GNU: - updated comment to reflect change to config-sunos5.5.h. - -Fri May 22 07:30:23 1998 David L. Levine - - * ACE version 4.5.8 released. - -Fri May 22 07:26:06 1998 David L. Levine - - * ace/Stats.cpp: added some casts to avoid MSVC++ warnings - about narrowing. - - * ace/config-osf1-4.0.h: removed commented-out - ACE_LACKS_{COND,MUTEX}ATTR_PSHARED. - -Fri May 22 00:09:15 1998 Nanbor Wang - - * ace/Local_Tokens.{h,cpp} (ACE_Null_Token): Only defined default - ctor/dtor explicitly when ACE_LACKS_INLINE_FUNCTIONS. - - * ace/Stats.cpp: Defined ACE_BUILD_DLL at the beginning. - Win32 needs to define ULONGLONG literals as 999ui64. - This is the only place that uses i64 literals. - -Thu May 21 21:55:09 1998 David L. Levine - - * ACE version 4.5.7 released. - -Thu May 21 17:36:37 1998 David L. Levine - - * ace/config-sunos5.6.h: added support for POSIX 199506 - extensions. Thanks to J. Russell Noseworthy - for providing this support. - - * ace/Local_Tokens.{h,i}: inlined ACE_Null_Token ctor and dtor - in class header because the clone () method needs the ctor - inlined, and it's too difficult to get it right with macros. - - * tests/SString_Test.cpp (main): added ACE_ASSERT with s4 in - it, because it was unused otherwise. - - * performance-tests/Synch-Benchmarks/Options.cpp (print_results): - changed #else to #elif, because it has a condition after it. - -Thu May 21 15:28:07 1998 Nanbor Wang - - * tests/test_config.h: Modified to write output from tests into - log file. Notice that log files on CE have extension name - ".txt" instead of ".log". - - * ace/OS.i (strrchr): Added UNICODE version of this function. - - * ace/Log_Record.{h,cpp}: Generalized message formatting on CE by - adding a new method format_msg(). - - * ace/Reactor_Impl.h: Removed an extra comma. - - * ace/XtReactor.cpp: Include "ace/Reactor.h" - - * tests/Recursive_Mutex_Test.cpp: - * tests/Future.cpp: Removed iteration restriction on CE. - -Thu May 21 12:13:36 1998 Nanbor Wang - - * ace/ace_{dll,lib}.dsp: Added Stats.cpp into projects. - -Wed May 20 23:02:41 1998 Steve Huston - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): On Win32, if - ACE::get_ip_interfaces finds less than 2 interfaces, call - subscribe with "0.0.0.0". This is sort of a hack and is meant - only to help get things working again until ACE::get_ip_interfaces - can be made to work correctly in all cases. - -Wed May 20 10:42:12 1998 David L. Levine - - * ace/config-mvs.h: enabled ACE_LACKS_CONDATTR_PSHARED and - ACE_LACKS_MUTEXATTR_PSHARED. Thanks to Chuck Gehr - for advising on this. - - * ace/config-linux-lxpthreads.h,config-lynxos.h: removed - commented-out ACE_LACKS_{COND,MUTEX}ATTR_PSHARED #defines. - - * ace/config-sunos5.5-{sunc++-4.x,g++}.h: removed - commented-out ACE_LACKS_{COND,MUTEX}ATTR_PSHARED. Enabled - ACE_HAS_CLOCK_GETTIME, because we always link with -lposix4. - Thanks to J. Russell Noseworthy - for inspiring the ACE_HAS_CLOCK_GETTIME enable. - - * ace/config-osf1-4.0.h: removed uncommented - ACE_LACKS_CONDATTR_PSHARED, so that we can test whether - it's necessary. - - * ace/Stats.*,Makefile: added ACE_Stats class. - - * performance-tests/Misc/context_switch_time.cpp: use - ACE_Stats to calculate standard deviations. - -Tue May 19 21:24:50 1998 Nanbor Wang - - * tests/Future_Test.cpp: Reduced the number of iterations on CE. - - * ace/Synch.i: Added #ifdef (ACE_HAS_THREADS) to make it compile - on non-threaded platforms. - -Tue May 19 10:05:07 1998 Irfan Pyarali - - * ace/SString.cpp (strlen): Renamed ACE_WString::wstrlen to - ACE_WString::strlen. - - * ace/SString.i: Reordered functions to make g++ happy. - - * ace/ACE.cpp (hash_pjw): Changed ACE_OS::strlen to - ACE_WString::strlen. - -Tue May 19 09:52:08 1998 Carlos O'Ryan - - * ace/config-irix6.x-g++.h: - * ace/config-irix6.x-sgic++-nothreads.h: - * ace/config-irix6.x-sgic++.h: - Added ACE_LACKS_MUTEXATTR_PSHARED - -Mon May 18 16:37:36 1998 Irfan Pyarali - - * ace/SString.h (ACE_CString): Added the ability to hold on to - user supplied character strings without having to make a copy. - - * ace/OS.h (ACE_OS): Added implementations for strrchr, strnchr, - strnstr, and strstr. - - * ace/ACE.cpp (hash_pjw): Added new versions of these that work - with user specified string length. - -Mon May 18 12:24:40 1998 Douglas C. Schmidt - - * ace/config-*.h: Commented out most of the - ACE_LACKS_CONDATTR_PSHARED so we can see what platforms really - DON'T support this... - - * ace/OS.i (mutex_init): Added support for - pthread_mutexattr_setpshared() so we can initialize POSIX - pthreads process-wide mutexes. Thanks to Ki-hyun Yoon - for suggesting this. - - * ace/config-sunos5.6.h: Added an #define for - ACE_THREAD_POSIX_SEM. Thanks to Ki-hyun Yoon - for reporting this. - - * ace/config-sunos5*.h: Removed the ACE_LACKS_RWLOCK_T stuff since - it's unnecessary. Thanks to Chris Lahey for reminding me of - this... - -Mon May 18 13:48:14 1998 Nanbor Wang - - * ace/Synch.i: Added #ifdef (ACE_HAS_THREADS) to make it compile - on non-threaded platforms. - -Mon May 18 12:31:32 1998 Darrell Brunsch - - * ace/Service_Config.{h,i,cpp}: Added an accessor debug() for - external access to the variable. More debug messages - check this before displaying. - - * ace/Parse_Node.cpp: Checks Service_Config's debug flag before - outputting debug messages. - -Sun May 17 23:14:32 1998 Nanbor Wang - - * tests/Wince/*.dsp: Disabled precompiled headers. They ate up - all my disk space. - - * ace/Service_Config.cpp: takes a string of - type ASYS_TCHAR. Use ACE_WIDE_STRING to do the conversion. - - * ace/Log_Msg.{h,cpp} (ACE_ASSERT): Use unicode in ACE_ASSERT. - (log): Don't exit the program for now. Exiting program here - destroys all debugging message in the window. - - * tests/Reader_Writer_Test.cpp: Reduced the number of iterations - on WinCE. - - * ace/OS.i: Added ACE_OS::time () implementation for CE. - -Sun May 17 21:45:07 1998 David L. Levine - - * performance-tests/Misc/childbirth_time.cpp: changed type of - MULTIPLY_FACTOR from int to size_t to avoid signed/unsigned - comparison. - - * tests/Tokens_Test.cpp: synchronize start of thread svc () - routines. Occasionally, the first thread would finish before - any others had started. The TSS objects would get cleaned - up. Then, the remaining threads would start up and make a big - mess. - -Sat May 16 15:10:46 1998 Douglas C. Schmidt - - * ace/Service_Config.h (ACE_Service_Config): Moved the - process_directive() into the public part of the class so this - can be called by applications one the Service Configurator is - open. Thanks to Tom Arbuckle - for suggesting this. - -Sat May 16 14:12:09 1998 Nanbor Wang - - * ace/Thread_Manager.{h,i,cpp} (class ACE_Thread_Descriptor_Base): - Extract thread handle and thread creation flags out from - Thread_Descriptor into this new class. This is necessary - because after my last round of changes to improve - ACE_Thread_Manager, I changed the from - holding Thread_Descriptor's to holding pointers to descriptor. - This was a bad move because the address of these pointers had - already been "freed." The now holds - ACE_Thread_Descriptor_Base which contains only the information - needed for manipulating . Thanks to Arturo - for noticing this. - -Sat May 16 03:23:35 1998 Nanbor Wang - - * performance-tests/Misc/childbirth_time.cpp (main): Added a new - function to test the performance of ACE_Thread_Mutex in single - thread _without_ any contention. - -Fri May 15 22:55:51 1998 Nanbor Wang - - * tests/Recursive_Mutex_Test.cpp: Only iterate the test 50 times - on CE as on Chorus. Otherwise, as I'm using a CEdit to hold the - test output, CEdit would overflow. - - * ace/OS.i (thr_getspecific): Don't check for return value of - TlsGetValue on CE because CE doesn't seem to set the LastError - correspondingly. - (strchr): Added implementation on CE. - - * Added Activation_Queue.i and Strategies.i. - - * Combed thru all these files and added difinitions for ctor/dtor - for a bunch of classes explicitly. CE needs them. - - Activation_Queue.cpp Activation_Queue.h Dynamic.h Dynamic.i - Event_Handler.h Event_Handler.i Get_Opt.h Get_Opt.i Handle_Set.h - Handle_Set.i High_Res_Timer.h High_Res_Timer.i INET_Addr.h - INET_Addr.i IO_SAP.h IO_SAP.i IPC_SAP.h IPC_SAP.i Local_Tokens.h - Local_Tokens.i Log_Record.h Log_Record.i Malloc.h Malloc.i OS.h - OS.i Obstack.cpp Obstack.h Obstack.i Parse_Node.h Parse_Node.i - Pipe.h Pipe.i Process_Manager.h Process_Manager.i SOCK.h SOCK.i - SOCK_Acceptor.cpp SOCK_Acceptor.h SOCK_Acceptor.i SOCK_CODgram.h - SOCK_CODgram.i SOCK_Connector.h SOCK_Connector.i SOCK_Dgram.h - SOCK_Dgram.i SOCK_Dgram_Bcast.h SOCK_Dgram_Bcast.i - SOCK_Dgram_Mcast.h SOCK_Dgram_Mcast.i SOCK_IO.h SOCK_IO.i - SOCK_Stream.h SOCK_Stream.i SString.h SString.i Sched_Params.h - Sched_Params.i Select_Reactor.h Select_Reactor.i - Service_Manager.h Service_Manager.i Service_Repository.h - Service_Repository.i Service_Types.h Service_Types.i - Shared_Object.h Shared_Object.i Signal.h Signal.i Strategies.cpp - Strategies.h Strategies.i Strategies_T.cpp Strategies_T.h - Synch.cpp Synch.h Synch.i Synch_Options.cpp Synch_Options.h - Synch_Options.i Timer_Heap_T.cpp Timer_Heap_T.h Timer_List_T.cpp - Timer_List_T.h Timer_Queue_T.cpp Timer_Queue_T.h - Timer_Wheel_T.cpp Timer_Wheel_T.h. - -Fri May 15 16:55:34 1998 Douglas C. Schmidt - - * ace/config-sunos5*.h: Automatically enable ACE_LACKS_RWLOCK_T if - we're NOT using Solaris threads (since pthreads doesn't support - readers/writer locks). - - * ace/Service_Config.cpp: Removed a duplicate template - instantiation of template class - ACE_Unbounded_Queue_Iterator. Thanks to Ben Eng - for reporting this. - - * ace/OS: Fixed a number of problems that occurred when trying to - use the PTHREAD implementation on Solaris without using - ACE_HAS_STHREADS. The problems related primarily to the - ACE_OS::rw*() functions. To fix the problems, the following - changes were made. - - Remove the #if defined (ACE_HAS_STHREADS) from the case where we - have the native rw*() functions. We just use the - ACE_LACKS_RWLOCK_T compile flag to determine whether we have the - native functions. - - Without the ACE_HAS_STHREAD flag, ACE_rwlock_t comes up - undefined. To fix this, moved the definition at approx. line - 1868 above the #else at approx. line 1865 as the following: - - #if ! defined (ACE_LACKS_RWLOCK_T) - #include - typedef rwlock_t ACE_rwlock_t; - #endif // ! ACE_LACKS_RWLOCK_T - - Finally, the ACE_idtype_t type was also undefined. To fix this, - moved the typedef from within the #if defined (ACE_HAS_STHREADS) || - defined (DIGITAL_UNIX) block and create a new ifdef block: - - #if defined (ACE_HAS_IDTYPE_T) - typedef idtype_t ACE_idtype_t; - #else - typedef int ACE_idtype_t; - #endif - - Thanks to Chris Lahey for his through help at - recognizing and fixing these problems. - -Fri May 15 09:38:37 1998 David L. Levine - - * bin/make_release: redirect cvs tag output to /dev/null. - - * performance-tests/Misc/context_switch_time (main): fixed - printout of yield test time for other than the default - number of iterations. - -Fri May 15 09:29:57 1998 David L. Levine - - * ACE version 4.5.6 released. - -Fri May 15 08:25:19 1998 David L. Levine - - * ace/Service_Config.cpp: fixed and added template instantations. - - * ace/Svc_Conf_y.cpp,etc/Svc_Conf_y.cpp.diff: removed compile - warnings. - - * include/makeinclude/platform_sunos5_g++.GNU: use PIC instead of pic, - because the TAO orbsvcs lib needs it. - - * Makefile: added .PHONY for phony targets. - -Fri May 15 02:47:35 1998 Douglas C. Schmidt - - * ACE version 4.5.5 released. - -Fri May 15 02:42:06 1998 Douglas C. Schmidt - - * ACE version 4.5.4 released. - -Thu May 14 15:28:42 1998 Douglas C. Schmidt - - * ace/config-kcc-common.h: Added the ACE_HAS_USING_KEYWORD to the - config file. Thanks to Ben Eng for reporting - this. - - * examples/Service_Configurator/Misc: Updated the Timer_Service - test to demonstrate the new service configurator feature. It's - AWESOME! - - * ace/Svc_Conf.h, - ace/Svc_Conf.l: - Added a super-cool new feature that allows us to parse service - configurator directives from a string rather than from a - svc.conf file. - - * ace/Svc_Conf.l (yywrap): Free up ace_yy_current_buffer in yywrap - to prevent a memory leak. Thanks to Paul Motuzenko - for reporting this. - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: Enhanced the - implementation to make it easier to follow and to support the - latest features of CPP-inclient.cpp. - - * ace/OS.h (ACE_OS): Added a wrapper for strcspn(3s). - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: Added more - cool changes to the CPP-inserver.cpp example and renamed it. - -Thu May 14 14:46:02 1998 Irfan Pyarali - - * ace/OS.h: Moved the definition of ACE_Export before it is used. - -Thu May 14 13:22:46 1998 Carlos O'Ryan - - * ace/Message_Block.h: - * ace/Message_Block.cpp: - The static duplicate() method can take pointer to a const - Message_Block. - -Wed May 13 18:46:28 1998 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP/CPP-{inserver,inclient}.cpp: Added - profile timing to the server so we can compute socket - performance metrics. Also generalized the tests so we can - experiment with both oneway and twoway calls. - -Wed May 13 19:20:27 1998 James C Hu - - * ace/OS.h: - * ace/OS.i: - * ace/OS.cpp: Added a substitute gets implementation for when - ACE_LACKS_GETS. The substitute is actually safer than gets, so - I may end up making gets call the new routine instead of - Standard C's. - - * ace/config-g++-common.h: Changed the g++ common file so that - 2.8.1 acts like EGCS does. This worked on Solaris 2.5.1. We'll - see how other's fare. - -Wed May 13 18:13:12 1998 Douglas C. Schmidt - - * ACE version 4.5.3 released. - -Wed May 13 11:29:56 1998 Nanbor Wang - - * performance-tests/Synch-Benchmarks/Options.cpp (print_results): - My previous change to add print_results functionality when - ACE_HAS_GETRUSAGE broke this on Win32. - - * ace/config-g++-common.h (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS): - Made this macro defined for all versions of g++. - -Wed May 13 09:26:48 1998 David L. Levine - - * many *.{h,i,cpp,idl} files: inserted RCS keyword string. - -Wed May 13 00:35:25 1998 Irfan Pyarali - - * ace: Added ACE_Export to a bunch of class in ACE. Thanks to - Gonzalo A. Diethelm (gonzo@ing.puc.cl) for pointing this out. - -Tue May 12 15:16:04 1998 Nanbor Wang - - * ace/config-WinCE.h: - * ace/OS.h: Stopped using non-static object manager for CE. This - is causing some problem at process shutdown. - - * ace/Acceptor.cpp: Made CE friendly. - - * ace/Process.cpp ([~]ACE_Process_Options): Moved things around to - avoid compilation errors on CE. Secret: CE doesn't have - environment variables. - -Tue May 12 13:28:05 1998 Carlos O'Ryan - - * ace/OS.h: - The ACE_INLINE_FOR_GNUC macro must be defined (as the null - token) if ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTION is not - defined. - -Tue May 12 12:30:55 1998 Nanbor Wang - - * ace/README: - * ace/config-g++-common.h (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS): - Added this new macro to get around a bug which only happens in - GNUC 2.7.xx. It mistakenly refers to the template definition as - the place where a function is used. - - * ace/OS.h (ACE_INLINE_FOR_GNUC): Added the macro to fix the GNUC - bug. - - * ace/Thread_Manager.h: Added above macro to set_next and - get_next. - -Tue May 12 12:11:36 1998 Bob Laferriere - - * ace/Process.{h,cpp}: modifications to make the environment buffer - and number of environment variables tunable in the constructor. - I also fixed a logic error which previously attempted to write - beyond an array bounds of the array of pointers into the - environment buffer. I made the environment_argv_ buffer tunable - as well. The new constructor takes the old hardcoded static sizes - as the default dynamic sizes for backwards compatiblity. - The behavior is to return -1 if the maximum buffer size or - maximum number of environment arguments has been reached in - following with the prior behavior. I opted not to make the members - grow as needed so the class would still follow it's prior behavior. - This would be simple to add, however. - -Tue May 12 08:29:50 1998 David L. Levine - - * ace/Malloc.cpp (ACE_Allocator::instance): replaced dynamic - allocation of the default ACE_Allocator with allocation from - the data segment. Thanks to Ben Eng for - providing the stack trace that revealed the problem. - - * ace/Malloc.h: added comments to not add data members to - ACE_Allocator or ACE_New_Allocator. - - * bin/g++dep: changed PATH to pick up /project/doc/pkg/gnu/bin/g++, - and removed GNUG_INCLUDE. Thanks to Ganesh Pai - for reporting problems with the old version on Linux. - -Tue May 12 02:59:27 1998 Nanbor Wang - - * performance-tests/Misc/childbirth_time.cpp: Added ACE_OS::sleep - (0) before all timing sections start. This ensures we own a - fresh time slice when the timing begin and reduce the chances of - getting preempted - -Tue May 12 00:42:05 1998 Nanbor Wang - - * bin/dsp2dsp.pl: This file clones a new MSVC 5.0 dsp file based - on setting from another dsp file. It is most useful in adding - new project files into tests/. - - * tests/WinCE/*: New project files. Updated the workspace. - Please see CE-status for the current progress. - - * tests/Buffer_Stream_Test.cpp: - * tests/Conn_Test.cpp: - * tests/Enum_Interfaces_Test.cpp: - * tests/Handle_Set_Test.cpp: - * tests/Hash_Map_Manager_Test.cpp: - * tests/Message_Block_Test.cpp: - * tests/Reactors_Test.cpp: - * tests/Thread_Manager_Test.cpp: - * tests/Thread_Mutex_Test.cpp: Made CE friendly. - - * tests/test_config.h: Moved some common definitions shared among - CE and other platforms out. - - * ace/Acceptor.cpp: - * ace/Acceptor.h: - * ace/Connector.cpp: - * ace/Connector.h: - * ace/Stream.cpp: - * ace/Svc_Handler.cpp: - * ace/Svc_Handler.h: - * ace/Synch.h: - * ace/Synch.i: CE stuff. - - * ace/config-WinCE.h: Defined ACE_DEFAULT_SERVER_HOST in UNICODE - here to overwrite the default setting. - - * ace/Synch.i (ACE_Lock): CE needs a default ctor here. - -Mon May 11 15:43:01 1998 Nanbor Wang - - * tests/WinCE/ce_tests.dsw: - * tests/WinCE/Atomic_Op_Test.dsp: - * tests/WinCE/Barrier_Test.dsp: - * tests/WinCE/Basic_Types_Test.dsp: - * tests/WinCE/Map_Manager_Test.dsp: Added/Updated project files. - - * tests/Atomic_Op_Test.cpp: - * tests/Barrier_Test.cpp: - * tests/Basic_Types_Test.cpp: Made them CE friendly. - - * ace/config-WinCE.h: Only define ACE_LACKS_INLINE_FUNCTIONS when - building debug version of ACE for SH series CPU. - - * WindozeCE/WindozeCEDlg.cpp: Updated the initial message after the - display window but before ACE console progrm started. - - -Mon May 11 15:43:01 1998 Nanbor Wang - - * ace/OS.{i,cpp}: Moved CE's impelmentation of ACE_OS::fprintf to - cpp file. - -Mon May 11 15:15:24 1998 Carlos O'Ryan - - * ace/Thread_Manager.h: - Removed bogus ACE_INLINE macros in class declaration, they were - making the SGI compiler *very* unhappy. - -Mon May 11 15:11:11 1998 Nanbor Wang - - * ace/OS.cpp (ctime_r): Renamed the fmtstr to - ACE_OS_CTIME_R_FMTSTR for we may need to use similar scheme to - fix other bugs in the future. - -Mon May 11 14:50:47 CDT 1998 Everett Anderson - - * ace/Name_Proxy.cpp: Changed one last recv to recv_n. - -Mon May 11 13:14:22 1998 Chris Gill - - * ace/RB_Tree.{cpp,h,i}: (new) Red-Black Tree data structure - implementation. A Red-Black Tree is an efficient - self-balancing binary tree that uses recoloring to - minimize rotations while rebalancing on insertion or - deletion of a tree node. Items in the tree are stored - according to a key provided at insertion. This - implementation is an OO rendition of the ADT described - in Cormen, Leiserson, Rivest, "Introduction to Algorithms" - (c) 1990, MIT. - -Mon May 11 12:31:41 1998 Steve Huston - - * ace/OS.h: Made ACE_LD_SEARCH_PATH, ACE_LD_SEARCH_PATH_SEPARATOR_STR, - ACE_DLL_PREFIX, ACE_DLL_SUFFIX settable via config.h. - - * ace/config-hpux-10.x.h: - ace/config-hpux11.h: Set ACE_LD_SEARCH_PATH, ACE_DLL_SUFFIX. - Thanks to Kirill Rybaltchenko and David Levine for identifying - this problem. - -Mon May 11 12:27:05 1998 David L. Levine - - * ace/ACE.cpp (send_n): retry if ACE::send () fails due to - EWOULDBLOCK. Thanks to Dave Brackman - for reporting this. - - * tests/Env_Value_Test.cpp (main): check return values of - options.setenv () calls. Thanks to Bob Laferriere - for recommending this. - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: instead of - using GNU ranlib386 after using GHS ax for i386 targets, just - use GNU ar386. - - * ace/gethrtime.cpp: added some comments about GHS asm support. - - * java/netsvcs/{Logger,Time}/Makefile, - java/tests/netsvcs/Logger/Makefile: - replaced WRAPPER_ROOT with ACE_ROOT. - -Mon May 11 05:14:18 1998 Nanbor Wang - - * ace/config-WinCE.h: Added ACE_HAS_NON_STATIC_OBJECT_MANAGER. CE - console programs have to set this flag because the main - functions is actually renamed and running in a threads. - - * tests/test_config.h: Excluded class and macros to redirect - debugging messages to files under CE. This make debugging a bit - easier but we should eventually put them back under CE. - - * tests/Map_Manager_Test.cpp: Made CE friendly. - - * ace/Hash_Map_Manager.cpp: Some ACE_ERROR were not CE friendly. - - * ace/Profile_Timer.{h,i}: - * ace/Synch.{h,i}: Moved inline function definitions to Synch.i - file. Windows CE can't grok any inline at all. - -Mon May 11 02:43:45 1998 Nanbor Wang - - * performance-tests/Misc/childbirth_time.cpp (main): Added - a new method for benchmarking ACE_Thread_Manager::spawn_n. - Added other cosmetic changes. - -Sun May 10 23:20:36 1998 Irfan Pyarali - - * ace/Token.cpp: Adding more debugging statements. - - * ace/Asynch_Acceptor.cpp (should_reissue_accept): Added template - method that decides whether a new asynchronous accept should be - issued. - -Sun May 10 23:28:57 1998 Nanbor Wang - - * ace/OS.cpp(inherit_log_msg): - * ace/Log_Msg.cpp (thr_desc): Wait on Thread_Descriptor's lock - instead of the "global" Thread_Manager lock. - - * ace/Thread_Manager.cpp: Moved acquire_release() from - ACE_Thread_Manager to ACE_Thread_Descriptor. This method is - called from ACE_Log_Msg::thr_desc to prevent a thread from using - its thread descriptor before it is fully built. The change - relieve spwaned threads from waiting for other threads created - in the same spwan_n call to be created before it can start - running. - - (insert): Added an extra argument to control whether we want to - insert the newly created thread into ACE_Thread_Manager's thread - table or not. Notice that it is default to 1 to remain the - original behavior in case anyone is using this class/function - directly in their code. However, in ACE_Thread_Manager, we - always prevent it from inserting because we always register - thread descriptors from spawn_i. - -Sun May 10 01:51:29 1998 Nanbor Wang - - * ace/OS.h: Renamed ACE_OS::Time_To_The_Beginning to - ACE_OS::FILETIME_to_timval_skew. - - * ace/OS.cpp: Found the problem in ACE_OS::ctime_r. An internal - compiler bug (?) caused the bug. The solution: move the format - string out as a const string instead of putting it in sprintf - directly. Weird. - - * ace/Log_Record.{h,cpp}: Made priority_name_ and its access - function CE friendly. - -Sat May 9 20:09:13 1998 Nanbor Wang - - * ace/Thread_Manager.h: Changed the type of lock used by - to ACE_SYNCH_MUTEX. Or else, it won't - compile on platforms that doesn't support thread. Thanks to - Woody Zenfell for reporting this. - -Fri May 08 22:29:01 1998 Nanbor Wang - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): CE UNICODE related fix. - -Fri May 8 14:18:46 1998 Nanbor Wang - - * ace/Thread_Manager.h (ACE_Thread_Descriptor): Added ACE_INLINE - to declarations of set_next and get_next to get around a bug in - a version of g++. - -Fri May 8 11:57:23 1998 Douglas C. Schmidt - - * ace/Map_Manager.cpp: Fixed a bug where we weren't calling - close_i() when resizing the buffer. - - * ace/Thread_Manager.cpp (set_grp): In - ACE_Thread_Manager::{get,set}_grp we must check to see that we - have a valid pointer after the ACE_FIND. Otherwise a seg fault - occurs. Thanks to Chris Lahey for reporting - this. - -Fri May 08 09:47:50 1998 David L. Levine - - * ace/config-linux-common.h: only use ACE_HAS_POLL with glibc2. - Thanks to Saneyasu for reporting - this. - - * ace/OS.i (sleep): On Linux without ::poll () (prior to glibc), - copy the ACE_Time_Value argument because the system modifies it. - - * include/makeinclude/platform_osf1_4.0.GNU: moved -lm from LIBS - to MATHLIB. - - * performance-tests/UDP/Makefile: added $(MATHLIB) to LDLIBS. - - * tests/Aio_Platform_Test.cpp (have_asynchio): use - _SC_LISTIO_AIO_MAX instead of _SC_AIO_LISTIO_MAX if it's - #defined. It is on DU 4.0. - -Fri May 08 08:43:42 1998 Steve Huston - - * include/makeinclude/platform_hpux_gcc.GNU: Added $(PIC) to - definition of SOFLAGS. Thanks to Kirill Rybaltchenko - for this fix. - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): Added code for Win32 so that - if a subscribe is done without specifying an interface, the mcast - address is subscribed to on each non-loopback interface. This works - around a bug in NT's winsock in the presence of multiple IP - interfaces. Won't hurt 95 - will just run a bit slower than it - otherwise would. - - * examples/Reactor/Multicast/Multicast.{mdp,mak}: Added MSVC 4.2 - workspace for this example. - -Fri May 8 03:43:25 1998 Nanbor Wang - - * ace/Thread_Manager.{h,cpp}: Added yet one more member variable - into Thread_Descriptor to keep track of registration of - Thread_Descriptors. By adding this variable, we can avoid an - extra locking in remove_thr for most cases (normal cases ;-). - Thanks to the inspiration from Arturo Montes - . - -Thu May 07 22:06:13 1998 Ben Eng - - * ace/config-kcc-common.h,config-linux-{common,kcc}.h: updated - KCC/Linux support, and integrated into config-linux-common.h. - -Thu May 7 20:32:20 1998 Douglas C. Schmidt - - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp - (main): Oops, we need to move the unlink() AFTER we create the - file... Thanks to Sandro Doro for - reporting this. - -Thu May 07 19:08:22 1998 Douglas C. Schmidt - - * ACE version 4.5.2 released. - -Thu May 7 14:10:41 1998 Carlos O'Ryan - - * ace/Timer_Hash_T.h: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_Wheel_T.cpp: - The classes had a INHERITED typedef for the base class, but - Solaris defines a macro by the same name. This causes very weird - problems with EGCS (and probably other g++ versions). - -Thu May 07 04:15:23 1998 Nanbor Wang - - * ace/Profile_Timer.cpp (elapsed_time): Treat Win32 differently - so I can use this function with WinCE Emulation build. The - problem is that Win32 can't convert __int64 to double. - - * ace/OS.{h,cpp} (ACE_Time_Value): (Win32 only) Added a new static - const member (Time_To_The_Beginning) of type DWORDLONG (unsigned - _int64) to adjust the time skew between FILETIME and POSIX time. - Changed the type of _100ns to ULARGE_INTEGER to eliminate - unnecessary computation. - -Wed May 6 23:58:40 1998 Carlos O'Ryan - - * ace/XtReactor.cpp: - The signature for the open() method of the notify pipe has been - modified. - -Wed May 6 23:28:47 1998 Douglas C. Schmidt - - * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp: - Fixed a couple of mistakes that were causing the UNIX domain - sockets not to work. Thanks to Sandro Doro - for recommending this. - - * performance-tests/Misc/context_switch_time.cpp (svc): An 'i' - was being defined twice, gorp! It's fixed now! - -Wed May 06 22:00:14 1998 David L. Levine - - * ace/config-linux-common.h: only #define - ACE_HAS_4_4BSD_SENDMSG_RECVMSG with __GLIBC__. Thanks - to Chanaka Liyanaarachchi for - reporting the lack of CMSG_DATA support on RedHat 4.2. - -Wed May 06 18:35:21 1998 Steve Huston - - * ace/ACE.cpp (get_ip_interfaces): Reset buf_len before each call to - get_reg_key to get registry value for device's IP address. It gets - overwritten on each call to get_reg_key. - - * include/makeinclude/platform_mvs.GNU: Added definition for PIC. - Though not related to position-independent-code, it is a switch that - makes shared lib builds work right. Removed the old SOBUILD def. - Thanks to Chuck Gehr for helping with this strategy. - -Wed May 06 16:32:53 1998 Nanbor Wang - - * ace/Filecache.h (ACE_Filecache_Handle): Removed - ACE_EXPORT_DECLARE and specified ACE_Export directly for - ACE_Filecache_Handle and ACE_Filecache in calss declarations. - - * ace/Thread_Manager.{h,i,cpp}: A bug was found by Arturo Montes - who noticed that when a thread was - spawned and then exited immediately, its thread descriptor might - get freed before even get registered into the thread table kept - by the Thread_Manager. Although it doesn't make any sense to - spawn a thread just to let it return immediately, a middleware - shouldn't restrict the way how users want to use it. - - I got around this problem by adding a lock into - Thread_Descriptor. Before spawning a thread, the Thread Manager - will first grab the lock. It won't release the lock until - calling append thread, at which point, the Thread_Descriptor of - the thread has been stashed into the table. Removing the - Thread_Descriptor also requires to hold this lock and release - the lock before the Thread_Descriptor is "freed." Therefore, - if a thread exit before its Thread_Manager ever gets a chance to - register it, it will block and waiting. - - The type of the lock is defined by ACE_DEFAULT_THREAD_MANAGER_LOCK - which, by default, is ACE_Thread_Mutex. User can change the - definition by defining in their config.h file. For example, if - you can be sure that all your threads will run for an extended - long time (which, in most case, should be true,) you can disable - this feature by defining this as a ACE_Null_Mutex to speed up - spawning and termination of threads. - - (thread_desc_freelist_): Added a free list to Thread_Manager to - recycle Thread_Descriptor. By default, this free list - pre-allocate 0 Thread_Descriptor and has low-water-mark of 1, - increment count 1 and a huge (25000) high water mark. That is, - if you use a Thread_Manager for an extended period of time, you - won't have to dynamically allocate memory for Thread_Descriptor - for every thread after your system is stable (the thread count - fluctuates between some certain values.) - - There are two ways to change the settings. First, by defining - ACE_DEFAULT_THREAD_MANAGER_LWM, ACE_DEFAULT_THREAD_MANAGER_HWM, - ACE_DEFAULT_THREAD_MANAGER_INC, and - ACE_DEFAULT_THREAD_MANAGER_PREALLOC in your file. - This changes the default setting of your ACE. (The global - Thread_Manager use this setting.) Or, you can specify these - values when creating a Thread_Manager. - - * ace/Free_List.cpp (alloc,dealloc): Don't grab the lock in these - two functions. They only get called from add() and remove() - which hold the lock before making the call. Actually, they also - gets called from the constructor and destructor. But that - shouldn't be a problem. - - * tests/Reactor_Notify_Test.cpp (run_test): Moved the #endif of - ACE_HAS_THREADS down to avoid compilation error on non-threaded - platforms. - -Tue May 5 14:12:08 1998 Douglas C. Schmidt - - * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU: Added a - platform config file courtesy of Arturo Montes - . - -Tue May 05 08:35:18 1998 David L. Levine - - * ace/config-irix6.x-sgic++-nothreads.h: updated the determination - of ACE_SIZEOF_LONG_DOUBLE. Thanks to Bob Laferriere - for providing the fix. - - * include/makeinclude/platform_sunos5_g++.GNU: use -gstabs+ instead - of -g on Solaris86. - - * etc/Svc_Conf_l.cpp.diff: updated. It's magic, Nanbor :-) - The problem seems to be due to an old version left in - /tmp/Svc_Conf_l.cpp, which confuses flex. - - * ace/config-linux-common.h,config-g++-common.h: moved - ACE_HAS_PENTIUM (with i386) from config-linux-common.h - to config-g++-common.h. - - * ace/config-linux-common.h: added ACE_HAS_POLL, so we - don't use ::select () in ACE_OS::sleep (). Linux's - ::select () modifies its timeout argument! - - * ace/OS.i (gethrtime): added RDTSC support for all g++ - _and_ ACE_HAS_PENTIUM platforms. - - * ace/config-vxworks5.x.h: added ACE_HAS_PENTIUM with GHS - on Intel platforms. - - * ace/Makefile: for GHS on Intel 8086, build gethrtime.cpp. - It's used to provide a high-resolution time using the - Pentium RDTSC instruction. I don't know how to get - GHS' asm to do it, so it uses g++. - - * ACE-INSTALL.html: added note about carefully installing - egcs on Linux. Thanks to Kurt Sussman for - tracking down the cause of mysterious link failures. - -Tue May 05 02:15:49 1998 Nanbor Wang - - * ace/Svc_Conf_l.cpp: I know, I know. I shouldn't mess with this - file directly. But I couldn't manufacture this file even with - the stock Svc_Conf.l using Doug's flex. So, I reckon I'll just - check this in now and fix the Svc_Conf_l.diff later. - - * ace/Service_Config.{h,cpp} (process_directive): Standard CE - stuff. - - * WindozeCE/WinAdapter*.*: - * WindozeCE/WindozeCE*.*: Replaced the old adapter for CE with a - new one. The new version allows uses to scroll thru the - "console" output. - -Mon May 04 17:09:39 1998 David L. Levine - - * performance-tests/Misc/context_switch_time.cpp: lots of - cleanup. The main changes were the use of ACE_THR_PRI_FIFO_DEF - for the default therad priority, and removal of some - unnecessary thr_yield () calls. - - * tests/Aio_Platform_Test.cpp: added arguments to main (), - removed #includes that are already in ace/OS.h, and added - ACE_START_TEST/ACE_END_TEST calls. - -Mon May 4 13:08:18 1998 Douglas C. Schmidt - - * ace/config-sunos5.6.h: Removed a mysterious "30" at the end of - an #undef. Thanks to J. Russell Noseworthy - for reporting this problem. - -Mon May 04 08:49:09 1998 David L. Levine - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): with ACE_NEEDS_LWP_PRIO_SET, - added the call to ACE_OS::thr_setprio () so that the LWP priority - will be set if running in the RT class. Applications no longer - have to be concerned with this. - - * performance-tests/Misc/preempt.cpp (svc): removed - ACE_OS::thr_setprio () calls to set LWP priority, now that ACE - handles that internally. - - * include/makeinclude/platform_*linux.GNU: added "s" to - ARFLAGS, so that ranlib is no longer necessary. - -Sun May 03 22:37:38 1998 Nanbor Wang - - * ace/Parse_Node.cpp (open_handle): WinCE doesn't support - ExpandEnvironmentStringA. - - * ace/config-win32-common.h: Only define ACE_HAS_GETRUSAGE when - ACE_HAS_WINNT4 != 0. Thanks to Paul Motuzenko - for reporting this. - -Sun May 03 01:58:47 1998 Douglas C. Schmidt - - * ACE version 4.5.1 released. - -Sat May 2 14:35:04 1998 Douglas C. Schmidt - - * tests/Reactor_Notify_Test.cpp: Factored out some common code to - make the test more concise. - - * tests/Reactor_Notify_Test.cpp: Modified the test to check - whether our new mechanism for disabling the notify pipe works - correctly. - - * ace/{WFMO,Select}_Reactor[_Impl]: Added the - "disable_notify_pipe" flag in the constructor in order to - disable this feature and save on descriptors if they aren't - required. Thanks to Tom Venturella for - motivating this. - -Sat May 02 Alexander Babu Arulanthu - - * tests/Aio_Platform_Test.cpp: Included this test program for - testing a platform for Asynchronous I/O options. - * tests/Makefile (BIN): Added Aio_Platform_Test. - -Fri May 01 17:52:32 1998 Nanbor Wang - - * ace/Arg_Shifter.{h,cpp}: Added macros ACE_Export and - ACE_BUILD_DLL respectively. - - * ace/ACE_Library.mak: - * ace/ace_{dll,lib}.dsp: Added Arg_Shifter.cpp into project. - -Fri May 1 13:52:32 1998 Douglas C. Schmidt - - * ace/Addr: Made the destructor for ACE_Addr virtual so that - subclasses can be deleted correctly. Thanks to Wei Chiang - for reporting this. - - * ace: Added Arg_Shifter from TAO and renamed it to - ACE_Arg_Shifter. - - * ace/IOStream_T.i (recv_n): ACE_IOStream::eof (void) had - a subtle bug if it is called when a get operation (>>) has not - failed. Thanks to James CE Johnson for - reporting this bug. - - * examples/Connection/misc/Connection_Handler.cpp: Make sure to - activate() each active object using THR_DETACHED so we don't run - out of threading resources. Thanks to Brad Walton - for reporting this. - - * ace/Timer_Queue_Adapters.cpp: Rather than returning the result - of schedule_ualarm(), the - ACE_Async_Timer_Queue_Adapter::schedule() method should - return the timer id. Thanks to James Garrison - for reporting this. - - * examples/System_V_IPC/SV_Message_Queues: Renamed the so-called - "ACE_Message_Block" to "Message_Block" so it wouldn't be as - confusing. Thanks to Ganapathi for this - suggestion. - -Fri May 01 17:52:32 1998 Nanbor Wang - - * ace/ACE_Library.mak: - * ace/ace_{dll,lib}.dsp: Added Arg_Shifter.cpp into project. - -Fri May 01 14:09:21 1998 Steve Huston - - * ace/OS.h: Changed ACE_hrtime_t from signed to unsigned on Win32 - to insure correct results from ACE_High_Res_Timer::elapsed_time - calculations. Fixes bug P87. - -Fri May 01 11:52:47 1998 Nanbor Wang - - * ace/OS.h: Forgot to redefine ASYS_INLINE after #undef it. - - * ace/OS.i (last_error): On Win32, this should also update errno - after calling SetLastError (). Thanks to Steve for pointing - this out. Fixes bug P88. - -Fri May 01 10:01:09 1998 David L. Levine - - * ace/config-sunos5.6.h: replaced config-sunos5.6-sunc++-4.x.h - with this config file, which supports both Sun C++ and g++. - - * ace/OS.i (gethrtime): for the default (::gettimeofday) case, - use 64-bit instead of 32-bit arithmetic by casting to ACE_hrtime_t. - - * ace/Basic_Types.{h,i}: added ACE_U_LongLong::operator *. - - * ace/Env_Value_T.cpp: added #include of Env_Value_T.h. - -Fri May 1 00:35:40 1998 Nanbor Wang - - * include/makeinclude/wrapper_macros.GNU - (ACE_LDSO_Version_Number): Fixed the problem of not able to - parse a formal release number from ace/VERSION. - -Thu Apr 30 15:53:58 1998 Nanbor Wang - - * ACE.{h,i,cpp}: - * DEV.{h,i,cpp}: - * DEV_Connector.{h,i,cpp}: - * DEV_IO.{h,i,cpp}: - * Date_Time.{h,i,cpp}: - * FIFO_Recv.{h,i,cpp}: - * FIFO_Recv_Msg.{h,i,cpp}: - * FIFO_Send.{h,i,cpp}: - * FIFO_Send_Msg.{h,i,cpp}: - * FILE.{h,i,cpp}: - * FILE_Connector.{h,i,cpp}: - * FILE_IO.{h,i,cpp}: - * IO_SAP.{h,i,cpp}: - * IPC_SAP.{h,i,cpp}: - * LSOCK.{h,i,cpp}: - * LSOCK_CODgram.{h,i,cpp}: - * LSOCK_Connector.{h,i,cpp}: - * LSOCK_Dgram.{h,i,cpp}: - * LSOCK_Stream.{h,i,cpp}: - * Log_Record.{h,i,cpp}: - * Pipe.{h,i,cpp}: - * SOCK.{h,i,cpp}: - * SOCK_CODgram.{h,i,cpp}: - * SOCK_Connector.{h,i,cpp}: - * SOCK_Dgram.{h,i,cpp}: - * SOCK_Dgram_Bcast.{h,i,cpp}: - * SOCK_Dgram_Mcast.{h,i,cpp}: - * SOCK_IO.{h,i,cpp}: - * SOCK_Stream.{h,i,cpp}: - * SPIPE.{h,i,cpp}: - * SPIPE_Connector.{h,i,cpp}: - * SPIPE_Stream.{h,i,cpp}: - * SV_Message_Queue.{h,i,cpp}: - * SV_Semaphore_Complex.{h,i,cpp}: - * SV_Semaphore_Simple.{h,i,cpp}: - * UPIPE_Acceptor.{h,i,cpp}: - * UPIPE_Connector.{h,i,cpp}: Added inline control for these - supposedly default inline functions. - - * ace/config-WinCE.h: Added ACE_LACKS_INLINE_FUNCTIONS. - - * ace/OS.h: Added a new macro ASYS_INLINE for platforms that don't - support inline properly. This is controlled by the macro - ACE_LACKS_INLINE_FUNCTIONS. - - Walked thru all macros and indented them properly. - - * ace/README: Added documentation for ACE_LACKS_INLINE_FUNCTIONS. diff --git a/ACE/ChangeLogs/ChangeLog-99a b/ACE/ChangeLogs/ChangeLog-99a deleted file mode 100644 index 5399b215825..00000000000 --- a/ACE/ChangeLogs/ChangeLog-99a +++ /dev/null @@ -1,13411 +0,0 @@ -Sat Jul 31 20:29:17 1999 Nanbor Wang - - * ace/OS.cpp: Moved the comment regarding *printf to where it - belongs. - - * ace/OS.h: Removed an extra trailing semicolon following - IPPROTO_TCP. - -Sat Jul 31 19:27:50 1999 Douglas C. Schmidt - - * examples/Shared_Malloc/test_position_independent_malloc.cpp: - Now that position-independent malloc works, I finished - integrating all the features in this test. - -Sat Jul 31 19:06:05 1999 Carlos O'Ryan - - * ace/Pipe.cpp: - The third argument to ACE_OS::setsockopt() is a "const char*" no - sense in casting it to void*! - -Sat Jul 31 18:55:34 1999 Kirthika Parameswaran - - * ace/Asynch_IO_Impl.{h, cpp}: - Fixed compiler errors: redefinition of destructors of the - classes in this file. Removed inline declaration of destructors - and defined those which hadnt been defined. - -Sat Jul 31 17:54:32 1999 Carlos O'Ryan - - * etc/enforce_ace_try.diff: - Apply this patch file and then compile to enforce the correct - use of ACE_TRY macros. It renames the exception(), clear() and - print_exception() methods in the CORBA::Environment class. - -Sat Jul 31 17:39:42 1999 Carlos O'Ryan - - * ace/Timeprobe_T.cpp: - Print timeprobe results with higher precision (3 decimal - digits), this is useful for extremely fine grained analysis - where just microseconds won't cut it. - -Sat Jul 31 12:07:48 1999 Douglas C. Schmidt - - * ace: Updated comments in all the header files so that references - to method names like ACE_Event_Handler::handle_input() were - changed to . This change - enables the class2man scripts to use the appropriate "code" font - for these names in the auto-generated documentation. - - * ace/Asynch_IO_Impl: Moved the - virtual destructors for all the ACE_Asynch_*_Impl classes into - the *.cpp file, which is where they belong. - - * ace/Functor_T.h: Moved the destructor of ACE_Command_Callback - out of the header file and into the *.cpp file. - - * ace/Sched_Params.h: Updated the documentation a bit to mention - the ACE_SCHED_{FIFO,RR,OTHER} policies explicitly. Thanks to - Peter Mueller for motivating this. - - * ace/Synch_T: Moved the implementations of ACE_Read_Guard and - ACE_Write_Guard out of the class header and into the *.i file, - which is where they belong. - - * ace/Based_Pointer_T.i (operator *): In order to distinquish a - "NULL" pointer we keep a value of -1 in target. - - * ace/Based_Pointer_T.i: I was forgetting to check if - rhs == 0 for the ACE_Based_Pointer<> class. This leads to weird - behavior when assigning a "NULL" pointer. - - * examples/Reactor/Misc/notification.cpp: Cleaned up the program so - that it looks better and doesn't crash and burn when signals occur. - - * ace/Pipe.cpp (open): We now set the default size of the - ACE_Pipes that are implemented as Internet or UNIX-domain - sockets to ACE_DEFAULT_MAX_SOCKET_BUFSIZ. This will speed up - the Reactor's notify() method and prevent it from deadlocking as - quickly. Thanks to Detlef Becker - for testing this out. - - * ace/OS.h: Added a new macro called ACE_IPPROTO_TCP that factors - out the differences between PHARLAPs and "normal" systems. - - * ace/Strategies_T.{i,cpp}: Added some additional ACE_ERROR printouts - if open() methods fail in constructors. - - * ace/Strategies_T: The logic for creating a new Singleton wasn't - dynamic enough. It's now intelligent enough to create a new - SVC_HANDLER if it's not given one. Thanks to Hao Ruan - for reporting this. - -Sat Jul 31 15:57:16 1999 Carlos O'Ryan - - * ACE version 5.0 released. Party on Wayne. - -Sat Jul 31 12:20:59 1999 Nanbor Wang - - * tests/version_tests/version_tests.dsw: - * tests/version_tests/Hash_Map_Bucket_Iterator_Test.dsp: - * tests/version_tests/Cached_Conn_Test.dsp: - * tests/version_tests/Cached_Accept_Conn_Test.dsp: Added three - missing version_tests project files. - -Sat Jul 31 00:22:46 1999 Nanbor Wang - - * tests/Basic_Types_Test.dsp: - * tests/Collection_Test.dsp: - * tests/Dynamic_Priority_Test.dsp: - * tests/New_Fail_Test.dsp: - * tests/Reverse_Lock_Test.dsp: - * tests/SOCK_Connector_Test.dsp: - * tests/SOCK_Send_Recv_Test.dsp: - * tests/Thread_Mutex_Test.dsp: - * tests/Timeprobe_Test.dsp: - * tests/Upgradable_RW_Test.dsp: Rebuilt. ACE_Init_Test.dsp is - still broken. - -Fri Jul 30 10:27:31 1999 Steve Huston - - * ace/config-hpux-10.x.h: Allow building w/o threads - set _REENTRANT - if not set, to pick up _r functions; move - ACE_HAS_NONCONST_SELECT_ TIMEVAL out of the threads-only - section. - -Fri Jul 30 08:36:43 1999 Douglas C. Schmidt - - * ace/OS.i: Commented out the ACE_TRACE calls in ACE_OS::mutex_lock() - and ACE_OS::thread_mutex_lock() to avoid infinite recursion. Thanks - to Ulf Jaehrig for reporting this. - -Fri Jul 30 03:33:14 1999 Carlos O'Ryan - - * bin/auto_compile: - * bin/auto_compile_wrapper: - * bin/run_all_list.pm: - Added options to run only the tests that do not require threads - (-single_threaded) and that do not require the full corba - profile (-minimum_corba). Also added options to disable the cvs - update, to execute realclean before compiling and to print some - debugging info. - -Thu Jul 29 20:44:56 1999 Ossama Othman - - * include/makeinclude/wrapper_macros.GNU: - - Override minimum_corba variable if it isn't set to 1 (i.e. if - minimum_corba is not enabled). This change was needed to make - it easier to disable some TAO ORB services, examples and tests - that rely on CORBA features that aren't supported in the minimum - CORBA specification. - -Thu Jul 29 19:04:12 1999 Ossama Othman - - * ace/Atomic_Op.i: - * ace/Filecache.cpp: - - Replaced raw ACE_*_Guards with their corresponding - ACE_GUARD_RETURN macros. This corrects "unused variable" - warnings when building ACE without thread support. See David's - ChangeLog entry from Fri May 14 16:10:29 1999 for a better - description of why this was necessary. - -Thu Jul 29 18:29:46 1999 Nanbor Wang - - * bin/run_all_list.pm: Moved the RUN_LIST definition from - auto_compile to this file to reduce the work to maintain the - list and allow auto_compile and run_all_win32.pl to synchronize - the tests being run. - - * bin/auto_compile: - * bin/run_all_win32.pl: Removed definition of RUN_LIST and use the - run_all_list module. - -Thu Jul 29 17:30:14 1999 Douglas C. Schmidt - - * ace/Makefile[.am] (pkginclude_HEADERS): Removed Future_Node.* - Thanks to John Tucker and Michael Garvin - for reporting this. - -Thu Jul 29 14:47:10 1999 Ossama Othman - - * ace/Select_Reactor_T.cpp (dispatch_notification_handlers): - - This code is used for picking up updates from non-owner threads. - However, it is also useful for picking up notifications from the - notify pipe (even though the notify is part of the I/O handle - set in the Select_Reactor). Therefore, we have enabled this - code for the single-threaded case also. Thanks to Irfan for - this fix. - -Thu Jul 29 14:32:28 1999 Carlos O'Ryan - - * ace/ACE.cpp: - Linux without returns a different errno (EOPNOTSUPP) if the - connector or acceptor runs out of file descriptors. - - * ace/OS.i: - The Errno_Guard constructor was not using an argument in - platforms without exceptions. - -Thu Jul 29 13:59:15 1999 Douglas C. Schmidt - - * ACE version 4.6.47 released. - -Thu Jul 29 12:32:01 1999 Nanbor Wang - - * ace/WFMO_Reactor.cpp (ACE_WFMO_Reactor): - * ace/Select_Reactor_T.cpp (ACE_Select_Reactor_T): I forgot to - initialize flag in one of the two ctors. Thanks - to Ruediger Franke for catching - this one. - -Thu Jul 29 01:04:03 1999 Carlos O'Ryan - - * bin/auto_compile: - * bin/auto_compile_wrapper: - Updated to include the latest round of changes, new tests and - several improvements to send email and stuff. - -Wed Jul 28 18:29:46 1999 Jeff Parsons - - * ace/config-win32.h: - Removed ACE_HAS_STD_TEMPLATE_SPECIALIZATION - definition. See below. - - * ace/config-win32-common.h: - Added ACE_HAS_STD_TEMPLATE_SPECIALIZATION - definition, since there is a place for MSVC 6.0 stuff like this. - Also added ACE_HAS_BROKEN_IMPLICIT_CONST_CAST - definition for a generated code bug fix that just didn't have one version - that would satisfy both SunCC and MSVC. - -Wed Jul 28 18:26:53 1999 Carlos O'Ryan - - * ace/CDR_Stream.cpp: - * ace/Message_Block.h: - * ace/Message_Block.cpp: - * ace/Message_Block_T.h: - * ace/Message_Block_T.cpp: - Re-implemented the clone() method without data copies in a - backwards compatible way, a new clone_nocopy() method was added - so classes that inherit from Data_Block and only override - clone() will work correctly. - Also fixed the implementation of Locked_Data_Blocked because it - is used in TAO and we need zero-copy clone() operations in that - case. - -Wed Jul 28 16:16:27 1999 Nanbor Wang - - * ace/OS.cpp (set): Fixed a unsigned/signed conversion problem - that caused negative usec value in ACE_Time_Value. Thanks to - Jerry D. De Master for reporting the bug. - (FILETIME): Removed some unused macros for dealing with older - Borland C++ compilers. Thanks to Jody and Gonzo for confirming - this. - -Wed Jul 28 13:44:15 1999 Nanbor Wang - - * ACE-INSTALL.html: Remind users to pick the right configurations - when building from MSVC project files. Thanks to Jerry D. De - Master for suggesting this. - -Wed Jul 28 13:26:36 1999 David L. Levine - - * ACE-INSTALL.html: for VxWorks (thru Tornado 1.0.1), - -fno-implicit-templates is broken for x86 targets, - not all targets. - -Wed Jul 28 13:09:26 1999 David L. Levine - - * docs/ACE-subsets.html: updated libACE size breakdown. - -Wed Jul 28 12:08:56 1999 Ossama Othman - - * ace/CDR_Stream.cpp (reset_contents): - - Modified call to clone() so that it uses the newly added - zero-copy semantics. A data copy was already being made in - ACE_InputCDR::steal_from(), which also calls - ACE_InputCDR::reset_contents(). Two data copies were being - performed. This change reduces the number of data copies to - one. Thanks to Carlos for this change. - -Wed Jul 28 11:23:36 1999 Ossama Othman - - * ace/Message_Block.h: - * ace/Message_Block.cpp (clone): - - Added argument that allows the characteristics of an - ACE_Data_Block to be copied without copying the data that the - ACE_Data_Block holds. This modification is part of a zero-copy - optimization for TAO. Thanks to Carlos for implementing this - change. - -Wed Jul 28 09:48:37 1999 David L. Levine - - * docs/ACE-guidelines.html: added guideline about testing - for definition of a macro before using it. Thanks to - Susan Liebeskind for - providing this guideline. - -Wed Jul 28 00:06:32 1999 Douglas C. Schmidt - - * ace: Added a new Makefile.bor file for BCB4. Thanks to Christopher - Kohlhoff for contributing this. - -Tue Jul 27 23:25:18 1999 Douglas C. Schmidt - - * netsvcs/lib/Server_Logging_Handler_T.cpp (open): Updated a - comment to point out that we use a thread-per-connection - concurrency model. Thanks to Raghu Nambiath - for reporting this. - -Tue Jul 27 21:05:23 1999 David L. Levine - - * include/makeinclude/platform_tru64_cxx.GNU (ACE_DU_SUBVERSION): - fixed typo: -v instead of v-. Thanks to - Doug Anderson for reporting this. - -Tue Jul 27 16:58:54 1999 Kirthika Parameswaran - - * ace/ACE.cpp (out_of_handles): Added bug-fixes for RedHat5.2 and - FreeBSD. Thanks to James Megquier for discovering - and testing out the bug-fix on RedHat5.2 and Russell.L.Carter - for sending in a patch for FreeBSD. These - bug fixes are for: $ACE_ROOT/tests/ - Cached_Conn_Test and Cached_Accept_Conn_Test. - -Tue Jul 27 16:55:44 1999 Nanbor Wang - - * include/makeinclude/platform_sunos5_kcc.GNU (MATHLIB): KCC needs - to have this defined. - -Tue Jul 27 16:18:21 1999 David L. Levine - - * ACE-INSTALL.html: updated note about shared libraries - on VxWorks. In particular, they don't provide copies - of global (static) variables in the library. So, "programs" - that share a library will also share the static variables in - the library. [Bug 86] - -Tue Jul 27 14:26:37 1999 Douglas C. Schmidt - - * ace/SOCK_Dgram: Removed the QoS_Params from open() and - ACE_SOCK_Dgram since they don't appear to be useful. Thanks to - Vidya Narayanan for suggesting - this. - -Tue Jul 27 14:41:26 1999 Steve Huston - - * ace/Codeset_IBM1047.cpp: Added a static variable only for HP aC++ - to make it stop warning of an empty translation unit. - -Tue Jul 27 14:16:55 1999 Nanbor Wang - - * ace/Thread_Manager.cpp (cancel_thr): This method should return - the result of thread cancel operation if async_cancel is used. - Thanks to Peter Mueller for suggesting - the fix. - -Mon Jul 26 20:50:37 1999 Douglas C. Schmidt - - * ace/OS: Addded a new pair of priority() fields as place - holders for the forthcoming DiffServ QoS features. Thanks to - Vidya Narayanan for suggesting - this. - -Tue Jul 27 13:28:48 1999 David L. Levine - - * ace/OS.i (getuid): removed extra ACE_TRACE with - ACE_WIN32 or CHORUS. Thanks to Jerry D. De Master - for reporting this. - -Tue Jul 27 11:10:39 1999 David L. Levine - - * examples/System_V_IPC/Makefile: on VxWorks only, fixed - so that make all, etc., work properly (by just printing - the message that these examples aren't used on VxWorks). - -Tue Jul 27 10:25:41 1999 Steve Huston - - * ACE-INSTALL.html: Added a note about required HP-UX 10.20 - patch. Updated aC++ versions. - - * ace/Process.{h cpp} (ACE_Process_Options::command_line): Added - 'const' to make the entire array and contents const. Restores - ability for users of pre-5.0 to still pass char **. Thanks to - Bill Tovrea for reporting this. - - * examples/Connection/non_blocking/Makefile: Re-added LIBS += $(ACELIB) - (see ChangeLog, 23-Jul-1999) but did it in the section for AIX - C Set++ and IBM C/C++ only (ifdef TEMPINCDIR). This is needed to - generate the shared library (libConn) using those compilers. - -Mon Jul 26 20:50:37 1999 Douglas C. Schmidt - - * ace/Future.h: Moved the static methods until the bottom - of the ACE_Future_Rep class (again) to workaround a bug with - Borland's C++ Builder. Thanks to Christopher Kohlhoff - for reporting this (again). - -Mon Jul 26 20:59:23 1999 Carlos O'Ryan - - * websvcs/README: - Added a brief description of the directory and its current - contents. Thanks to Will Skunk - for motivating this. - -Mon Jul 26 20:50:37 1999 Douglas C. Schmidt - - * ace/Log_Msg.cpp: Added support for the 'W' (UNICODE) option for - Win32. Thanks to Valery Arkhangorodsky - for contributing this. - -Mon Jul 26 20:58:35 1999 Alexander Babu Arulanthu - - * ace/POSIX_Asynch_IO.cpp: - * ace/WIN32_Asynch_IO.cpp: Fixed the double deletion problem of - the result classes. Thanks to David Digby - and Timothy Schimke - for reporting this. - -Mon Jul 26 18:09:09 1999 Irfan Pyarali - - * tests/run_tests.sh (Cached_Conn_Test and - Cached_Accept_Conn_Test): These two tests are known to leak - memory when compiled with old gcc (g++). Therefore, we skip - these tests when using purify and old gcc (g++). A -p option - was added to the script to indicate that we want to run with - purify. - -Mon Jul 26 17:09:09 1999 David L. Levine - - * ace/Object_Manager.{h,cpp},Makefile: don't create the - ACE_TOKEN_MANAGER_CREATION_LOCK and - ACE_TOKEN_INVARIANTS_CREATION_LOCK preallocated objects - if the Token component isn't build. This gets rid of - unresolved references to the ACE_Token_Proxy compoents - on VxWorks/g++ when Token isn't built. Thanks to - Stephane Chatre for reporting this. - -Mon Jul 26 17:02:08 1999 David L. Levine - - * include/makeinclude/wrapper_macros.GNU: don't override - OBJDIRS on VxWorks with shared libs. This allows - make realclean to work properly on VxWorks, when shared - lib builds are enabled. - -Mon Jul 26 15:06:23 1999 Jeff Parsons - - * ace/CDR_Stream.i: - * ace/Map_Manager.i: - Had to cast some return values to avoid MSVC signed/unsigned - mismatch type warnings (level 4). - - * ace/config-win32.h: - Added ACE_HAS_STD_TEMPLATE_SPECIALIZATION define, so that - ACE_TEMPLATE_SPECIALIZATION macro adds the necessart - 'template <>' for MSVC, and so averts many many level 4 - warnings. - -Mon Jul 26 14:10:56 1999 Kirthika Parameswaran - - * ace/DLL.cpp (get_handle): Changed the check of - flag to now reset only if the - is set. Thanks to Bob McWhirter - for pointing this out. - -Mon Jul 26 12:32:41 1999 Douglas C. Schmidt - - * ACE version 4.6.46 released. - -Fri Jul 23 18:20:11 1999 Carlos O'Ryan - - * ace/config-irix6.x-sgic++-nothreads.h: - Enabled namespaces with MIPSPro 7.2 or higher. - -Fri Jul 23 16:40:15 1999 Carlos O'Ryan - - * ace/ACE.cpp: - Fixed typos in error return values for ACE::execname() - -Fri Jul 23 14:51:48 1999 Douglas C. Schmidt - - * examples/Service_Configurator/IPC-tests/Handle_L_CODgram, - examples/Service_Configurator/IPC-tests/Handle_L_Dgram, - examples/Service_Configurator/IPC-tests/Handle_L_Pipe: - Cleaned this stuff up so that it builds correctly when - ACE_LACKS_UNIX_DOMAIN_SOCKETS is enabled. Thanks to - David for reporting this. - - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe: - Made upper_case() a method in the Handle_L_Pipe class. - - * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp, - examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp: - Removed the bizarre hacks for SunOS4. This stuff probably - hasn't been tested since 1992! - -Fri Jul 23 14:16:22 1999 Steve Huston - - * ace/OS.i (ACE_OS::read): (only non-Win32), if call fails and - errno is EAGAIN, change it to EWOULDBLOCK. Improve portability for - platforms where EAGAIN and EWOULDBLOCK are different values and - both used, like HP-UX. - - * ace/Malloc_T.cpp (ACE_Malloc<> ctor): Added missing newline in error - message. - -Fri Jul 23 12:09:18 1999 Nanbor Wang - - * ace/OS.i: Fixed some mismatched ifdef/endif comments. - - * ace/ACE.cpp (execname): Fixed some misuses of ACE_HAS_WIN32 - macros where they should have been ACE_WIN32. Thanks to Andy - for noticing this. - -Fri Jul 23 11:28:17 1999 Douglas C. Schmidt - - * ace/Memory_Pool.cpp (init_acquire): shmat() returns -1 on - failure, not 0. Thanks to Kevin Liu - for reporting this. - -Fri Jul 23 11:35:31 1999 David L. Levine - - * examples/Connection/non_blocking/tests_lsock_{acceptor, - connector.cpp}: disabled if ACE_LACKS_UNIX_DOMAIN_SOCKETS. - Thanks to Alain Magloire for reporting this. - - * examples/Connection/non_blocking/Makefile: removed unneeded - LIBS (=$(ACELIB)) and BUILD macro definitions. - -Fri Jul 23 10:07:05 1999 David L. Levine - - * include/makeinclude/platform_qnx_neutrino.GNU: added - CROSS-COMPILE macro definition. Thanks to - Alain Magloire for reporting this. - -Fri Jul 23 08:58:56 1999 Douglas C. Schmidt - - * ace/Service_Config.h: Clarified the fact that the - ACE_Service_Config uses the Monostate pattern, so there can only - be one of them per-process. Thanks to Ralf Kluthe - for reporting this. - -Fri Jul 23 07:49:31 1999 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++.GNU: added - comment about options for producing 64-bit binaries. - Thanks to Jeff Franks for - raising this issue. - -Fri Jul 23 03:10:31 1999 Irfan Pyarali - - * ace/Strategies_T.cpp (find_or_create_svc_handler_i): - * ace/Cached_Connect_Strategy_T.cpp (cached_connect): - - I had added the new_connection() method that lets go of the lock - for the duration of the connect(), but forgot to use it in the - above functions ;) It should be fine now. - - * tests/Cached_Conn_Test.cpp (cached_connect): - * tests/Cached_Accept_Conn_Test.cpp (cached_connect): - - Host of the remote address should be ACE_LOCALHOST instead of - ACE_DEFAULT_SERVER_HOST. - -Thu Jul 22 23:23:26 1999 Irfan Pyarali - - * ace/Handle_Gobbler.h (class ACE_Handle_Gobbler): Inlined - declaration of the functions. - -Thu Jul 22 20:03:54 1999 Douglas C. Schmidt - - * ace/Acceptor.cpp: For sanity's sake, initialize all the data - members to 0 in the ACE_Strategy_Acceptor constructor. Thanks - to Jody Hagins for reporting this. - - * ace/Acceptor.cpp: The service_port_ data member in the - ACE_Strategy_Acceptor wasn't being initialized to 0. Thanks to - Jody Hagins for reporting this. - - * ace/Acceptor.cpp: Modified the dump() and info() methods so that - don't do bad things if service_name_ and service_description_ - are NULL. Thanks to Jody Hagins for this - suggestion. - - * ace/Message_Queue_T.h: Clarified what the errnos get set to when - timeouts occur or queues are deactivated. Thanks to - John Forest for suggesting this. - -Thu Jul 22 16:55:14 1999 Carlos O'Ryan - - * ace/Stats.cpp: - Fixed message that had a %s but no argument! - -Thu Jul 22 15:12:18 1999 David L. Levine - - * ace/Codeset_IBM1047.{h,cpp}: wrapped with #ifdef ACE_MVS - so that the code doesn't occupy any space on platforms - other than MVS. - -Thu Jul 22 14:22:41 1999 David L. Levine - - * examples/Shared_Malloc/Malloc.cpp: fixed explicit - template instantiations so that there are no duplications - with ACE_LACKS_SBRK and ACE_LACKS_SYSV_SHMEM. - -Thu Jul 22 12:17:26 1999 David L. Levine - - * ace/config-lynxos.h: removed ACE_LACKS_FORK on PowerPC. - All of the ACE tests that fork now succeed. - -Thu Jul 22 11:54:58 1999 David L. Levine - - * tests/SV_Shared_Memory_Test.cpp (child): added a one - second sleep to give the parent a chance to create the - semaphore. This allows the test to succeed on LynxOS/PPC - (with fork ()). - - * tests/Process_Mutex_Test.cpp,Process_Strategy_Test.cpp (main): - added a one second sleep after spawning each server, to give it - a chance to start. Also, wrapped some string literals with - ASYS_TEXT. Again, success on LynxOS/PPC with fork (). - -Thu Jul 22 10:42:06 1999 Clarence M. Weaver - - * ACE-INSTALL.html: added steps for running the ACE tests - on VxWorks platforms that lack NFS. - -Thu Jul 22 10:25:31 1999 David L. Levine - - * ace/Log_Record.cpp,SString.cpp: wrapped #include of - ace/streams.h with #ifndef ACE_LACKS_IOSTREAMS_TOTALLY. - [Bug 84] - -Thu Jul 22 09:55:10 1999 David L. Levine - - * docs/ACE-guidelines.html: updated commit message guideline - to show ChangeLogTag example. - -Thu Jul 22 02:15:46 1999 Irfan Pyarali - - * ace/Handle_Gobbler (class ACE_Handle_Gobbler): New class that - gobbles up handles :) This class is useful when we need to - control the number of handles available for a process. Mostly - used for testing purposes. - - Note that even though the new files are in the ace directory, - they are not part of the ace library. The files only contain - inline functions and Handle_Gobbler.h is only included where - needed. - - * tests/Cached_Conn_Test.cpp: - * tests/Cached_Accept_Conn_Test.cpp: - - Added Handle_Gobbler to the test to reduce the iterations - required before handles run out and purging starts. - -Wed Jul 21 21:45:22 1999 Nanbor Wang - - * ace/Reactor.cpp: Applied ACE_NOTREACHED to several - run_*_event_loop methods. - - * docs/ACE-guidelines.html: Updated ASYS_TEXT usage. - - * ace/RB_Tree.cpp: - * tests/Cache_Map_Manager_Test.cpp: Applied ASYS_TEXT liberally. - -Wed Jul 21 21:19:36 1999 David L. Levine - - * ACE-INSTALL.html: added note about ACE support for - shared libraries on VxWorks. It's still under - development. - -Wed Jul 21 18:38:00 1999 Irfan Pyarali - - * ace/Strategies_T.h (ACE_Cached_Connect_Strategy): Renamed - to . - - * ace/Hash_Cache_Map_Manager_T.cpp (find): Finding and updating - the attributes is faster through the find() that uses an entry. - Therefore, for find (key, value) and find (key) we go to - find (key, entry) instead of going to the base class. - - * ace/Cached_Connect_Strategy_T.cpp: - - - ACE_Cached_Connect_Strategy_Ex::check_hint_i - - ACE_Cached_Connect_Strategy_Ex::find - - Update the caching attributes directly since we don't do a - find() on the cache map. - -Wed Jul 21 15:54:25 1999 Nanbor Wang - - * ace/DLL.cpp: ACE_HAS_MOSTLY_UNICODE_APIS fixes. - - * ace/OS.i (ctime): - * ace/OS.cpp (ctime): One copy should only be available when - ACE_HAS_MOSTLY_UNICODE_APIS is defined. Thanks to Steve for - reporting this. - -Wed Jul 21 15:21:32 1999 David L. Levine - - * tests/Env_Value_Test.cpp (main): use the single-process - version if ACE_LACKS_FORK, in addition to if - ACE_HAS_NONSTATIC_OBJECT_MANAGER. - - * tests/Time_Service_Test.cpp (main): neuter if ACE_LACKS_FORK, - because the test uses ACE_Process::spawn (). - - Thanks to Riaz Syed for reporting these. - -Wed Jul 21 11:48:53 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - use full path to $(CC) in egcs version check, to avoid - warning if it is not on the user's PATH. - -Wed Jul 21 11:44:19 1999 Carlos O'Ryan - - * ace/OS.h: - Simplified the definition of the ACE_THR_PRI_*_DEF macros from - (MIN+(MAX-MIN)/2) to ((MIN+MAX)/2), the new definition is not - only easier to read, makes less operations (and function calls) - but it is also safer when the the priorities are "backwards" and - PRI_MAX < PRI_MIN - -Wed Jul 21 11:40:31 1999 Steve Huston - - * include/makeinclude/platform_aix4_cset++.GNU: - * include/makeinclude/platform_hpux_aCC.GNU: Replaced lines like - "debug=1" with ifeq (,$(debug)) debug=1 endif. - - * include/makeinclude/platform_aix4_g++.GNU: - Above change for variables, also added -Wl,-bbigtoc when linking - TAO_IDL, else it runs out of toc space. Don't do it for all links - because bigtoc introduces a run-time performance penalty. - -Wed Jul 21 10:25:07 1999 David L. Levine - - * ace/OS.{h,cpp} (tss_base,tss_open): with TSS emulation, - no longer return indication of whether tss_base allocated - the ts_storage array. Instead, added an (optional) - argument that tss_open can use for that purpose. This - allows threads that haven't been spawned by ACE to use - ACE's TSS emulation. Thanks to David Hauck - for reporting this and testing - the fix on NT. And, thanks to Terry Rosenbaum - for originally reporting it. - -Wed Jul 21 09:34:09 1999 David L. Levine - - * examples/Shared_Malloc/test_position_independent_malloc.cpp (main): - removed declarations of unused argc and argv. - -Wed Jul 21 04:32:20 1999 Nanbor Wang - - * ace/Reactor.cpp: - * ace/Reactor.h: - * ace/Reactor.i: - * ace/Reactor_Impl.h: - * ace/Select_Reactor_T.cpp: - * ace/Select_Reactor_T.h: - * ace/Select_Reactor_T.i: - * ace/TP_Reactor.cpp: - * ace/WFMO_Reactor.cpp: - * ace/WFMO_Reactor.h: - * ace/WFMO_Reactor.i: The change was motivated by removing a race - condition in TP_Reactor during shutdown. There was a small time - gap between a thread running TP_Reactor event loop checking its - end_event_loop flag to the thread actually grabing the token in - TP_Reactor. Since the token return to its "normal" state after - broadcasting, this thread has no chance to notice that the - reactor has already been shutdowned and thus a deadlock occured. - In order to fix the problem, we must keep a state indicating - whether the reactor has been shutdowned or not in the reactor. - - An added benefit of adding this state is that every reactor now - has its own run_reactor_event_loop which mimic the behavior of - the static ACE_Reactor::run_event_loop but instead of working on - the singleton reactor, the added function work on an instance of - reactor object. In fact, all event_loop control functions have - been added. They are named *_reactor_event_loop to - differentiate their behavior. These newly added function use - the added state in the reactor to control the looping of event - handling. All run_reactor_event_loop methods take an extra - argument of a function pointer. The function will be called in - every iteration if it is set. - - Notice that the singleton event loop control functions are still - available. Although these function merely forward the call to - the singleton reactor's *_reactor_event_loop functions, you can - still use them to control the "main" event loop. In fact, it is - required that you use these functions to run the main event loop - because it facilitates Service_Configurator's "reconfigure" - feature. - - All reactors now also have two extra functions namely - "deactivated" which is used to query whether the reactor will - handle more incoming event or not, and "deactivate" which is - used to control this new feature. - - An side effect of the change is that, once a reactor get - deactivated, calls to handle_events will return -1 immediately. - You can use the "deactivated" method to check if there's - actually an error in the handle_events method or it simply - returned because the reactor has been deactivated. This is also - how the various "run_reactor_event_loop" handle the situation. - Notice that this should not cause any backward compatibility - problem becuase if a user is using his own end_event_loop flag, - he will not (and should not) invoke any more handle_events after - the flag has been set. Also, if he is using the global - run_event_loop methods (for controling singleton reactor,) they - should still behave the same. - - To summarize the change: - - 1. The run_event_loop control logic has been "pushed" down into - each individual reactor. The methods supporting the logic are - defined in ACE_Reactor and are: - - run_reactor_event_loop () - run_alertable_reactor_event_loop () - end_reactor_event_loop () - reactor_event_loop_done () - reset_reactor_event_loop () - - 2. The origianl run_event_loop methods in ACE_Reactor are still - working but they now use the run_reactor_event_loop methods in - the implementation of the reactor. - - 3. Reactors now keep a state to indicate handle_events should be - called or not. They can be controlled thru: - - deactivated () - deactivate () - - methods. - -Tue Jul 20 21:31:50 1999 Jim Rogers jrogers@viasoft.com - - * ace/config-mvs.h: added ACE_HAS_EXCEPTIONS. - -Tue Jul 20 21:23:19 1999 David L. Levine - - * ace/OS.* (next_key,total_keys): with TSS_EMULATION, - added guard (using preallocated ACE_TSS_KEY_LOCK) - to access of next_key_. Uninlined both of these - functions because they now have the guards. Thanks - to Jake Hamby for reporting this. - -Tue Jul 20 21:11:02 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - fixed test of g++ for whether it's egcs. Thanks to - Erik Johannes for reporting this. - (The symptom was that TAO's IORManipulation.cpp wouldn't - compile due to an internal compiler error. Adding - -fno-exceptions works around that.) - -Tue Jul 20 18:30:22 1999 Irfan Pyarali - - * ace/Cached_Connect_Strategy_T.h: All functions in - ACE_Cached_Connect_Strategy_Ex and ACE_Cached_Connect_Strategy - that contain specific information about the map used by the - class should not be virtual. - - * ace/Future_Set.cpp (next_readable): Removed extra code that was - left behind from a debugging stage. Thanks to author John - Tucker for helping with this. - -Tue Jul 20 12:02:47 1999 David L. Levine - - * examples/Threads/task_five.cpp (main): removed - ACE_NOTREACHED wrapper around the final return statement. - It's reachable now. - -Tue Jul 20 11:46:09 1999 Douglas C. Schmidt - - * examples/Shared_Malloc/test_position_independent_malloc.cpp: - Completely #ifdef'd this example out until we get it working. - Thanks to David Levine for reporting this. - -Tue Jul 20 11:15:23 1999 David L. Levine - - * ACE-INSTALL.html: updated memory requirements discussions. - -Tue Jul 20 09:43:36 1999 Ossama Othman - - * ace/Future_Set.cpp (next_readable): - - Fixed unused variable warnings. - -Tue Jul 20 09:33:02 1999 David L. Levine - - * ace/OS.{h,i} (sigwait): only use the DIGITAL_UNIX sigwait - massaging with cxx, not with any other compiler. Thanks to - Doug Anderson for suggesting this, because - egcs issued warnings with it. - -Tue Jul 20 07:06:28 1999 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU: - removed -ptr ptrepository. Let the compiler use its - default template repository. - - * include/makeinclude/rules.local.GNU (realclean): added - cxx_repository, for DU cxx. - -Tue Jul 20 07:01:57 1999 Doug Anderson - - * ace/OS.i (sigwait,thr_sigsetmask): added support for - Cray UNICOS 9. - -Mon Jul 19 22:46:54 1999 Irfan Pyarali - - * ace/Strategies_T.cpp - (ACE_Cached_Connect_Strategy::new_connection):: We use a reverse - lock to let go of the lock for the duration of the actual - connect. This will allow other threads to hack on the - connection cache while this thread creates the new connection. - Thanks to James Whitledge for - suggesting this. - - * tests/Cached_Accept_Conn_Test.cpp - * tests/Cached_Conn_Test.cpp - * tests/Conn_Test.cpp - - Added reverse lock template instantiations. - - * ace/Synch_T: Since the reverse lock constructor that created the - regular lock was removed, there was no need for the - variable, and could be changed into a - reference (instead of pointer). - -Mon Jul 19 23:04:15 1999 Douglas C. Schmidt - - * netsvcs/lib/Logging_Strategy.cpp (init): The ACE_LOG_MSG->open() - call at the end of the ACE_Logging_Strategy::init() method - *must* specify the flags and logger key or an application will - not connect to the client logger daemon automatically when the - ACE_Log_Msg::LOGGER flag is set in a svc.conf file. Thanks to - Jerry De Master for reporting this. - -Mon Jul 19 22:11:13 1999 David L. Levine - - * ACE-INSTALL.html: cleaned up instructions for building - on NT for VxWorks target. Thanks to Stephane Chatre - for reporting that the instructions - were out of date. - -Mon Jul 19 21:38:16 1999 Carlos O'Ryan - - * tests/run_tests.vxworks: - Re-enable the Cached_Conn_Test and Cached_Accept_Conn_Test, it - works on Linux, NT, Solaris, IRIX and HP-UX so we should be - pretty close. Thanks to Irfan for fixing the problems with this - test. - -Mon Jul 19 21:26:57 1999 David L. Levine - - * ace/OS.{h,i}: reverted sigwait () changes on Digital - Unix. They cause examples/Threads/process_manager.cpp - to not compile on DU 5.0 with cxx 6.2-021. See - Mon Jul 19 21:13:16 1999 Doug Anderson . - -Mon Jul 19 21:13:16 1999 Doug Anderson - - * ace/ACE.cpp,ace/Basic_Types.h,ace/CDR_Stream.{h,cpp}, - ace/SOCK_Dgram_Bcast.cpp,ace/config-cray.h, - tests/Basic_Types_Test.cpp,tests/Handle_Set_Test.cpp, - include/makeinclude/platform_cray.GNU - - I finally managed to get the latest and greatest to work on - the Cray. Still no CDR support, but that will be post 5.0. - - * ace/OS.{h,i}: added support for egcs on Digital Unix (4.0d & e). - Fixe problem with legacy workarounds in OS.* for sigwait() and - cxx/GNU that don't appear to be necessary on 4.0d/e/f with - neither cxx nor GNU. - - * include/makeinclude/platform_tru64_g++.GNU: added. Works - with ace/config-tru64.h. - -Mon Jul 19 19:46:50 1999 Irfan Pyarali - - * ace/OS.h: Added ACE_*_cast_*_ptr and ACE_*_cast_*_ref for const, - static, and reinterpret casts. - - * ace/Strategies_T.cpp (find): - * ace/Cached_Connect_Strategy_T.cpp (find): - - The comparison should be between ACE_PEER_CONNECTOR_ADDR and not - REFCOUNTED_HASH_RECYCLABLE_ADDRESS. - - * ace/Svc_Handler: Changed to . - was too generic and in some cases a method was already - present in classes deriving from Svc_Handler. - - Also, added a accessor. - - The following files were effected: - - - ace/Cached_Connect_Strategy_T.cpp - - ace/Cached_Connect_Strategy_T.h - - ace/Caching_Utility_T.cpp - - ace/Strategies.h - - ace/Strategies.i - - ace/Strategies_T.cpp - - ace/Strategies_T.h - - ace/Strategies_T.i - - tests/Cached_Accept_Conn_Test.cpp - - tests/Cached_Conn_Test.cpp - -Mon Jul 19 20:08:15 1999 Carlos O'Ryan - - * ace/Strategies_T.cpp: - Fixed lookup of connections in the Cached_Connect_Strategy, - thanks to Irfan for providing this fix. - -Mon Jul 19 12:26:20 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU, - ace/config-g++-common.h: - don't #define ACE_HAS_GNUG_PRE_2_8 with Tornado II's - g++. It's egcs, though it's version identifier says - it's 2.7. Thanks to Thomas Lockhart - for reporting this. [Bug 80] - -Mon Jul 19 09:50:31 1999 Steve Huston - - * ace/Future.cpp: Added ACE_TYPENAME to template-qualified types. - * ace/Future.cpp: Added #include "ace/Containers.h" to be sure the - types necessary for this class is available at template link - time. - - * apps/gperf/src/Options.h: If on PharLap ETS, clear out its definition - of EOS to avoid compile errors. Thanks to David Hauck - for this fix. - -Mon Jul 19 08:12:30 1999 David L. Levine - - * include/makeinclude/platform_tru64_cxx.GNU: added support - for DU 4.0E and D. - -Mon Jul 19 08:08:25 1999 Steve Huston - - * ace/config-hpux-(10 11).x-hpc++.h: In the aC++ section, if __HP_aCC - is not set, set it. Some parts of TAO rely on it, but it's not set - until the most recent versions of the compiler. Thanks to Brian - Wallis for helping figure this out. - -Mon Jul 19 07:53:59 1999 David L. Levine - - * ace/SOCK_Dgram_Mcast.cpp (open): added unnecessary const_cast - of mcast_addr to ACE_Addr &, so that Sun C++ 4.2 will compile - without error. Thanks to Andy for this fix. - -Sun Jul 18 21:36:04 1999 David L. Levine - - * OS.cpp (sched_params): wrapped DIGITAL_UNIX preprocessor - symbol in parenthesis. - -Sun Jul 18 14:30:54 1999 Douglas C. Schmidt - - * tests/run_tests.sh: Reenabled the Future_Set_Test. Hopefully, - this will work on Solaris and the other platforms now! - - * ace/Future*: Added some fixes for Future_Set that should prevent - it from hanging indefinitely on certain platforms. Also, - removed the Future_Node.h and Future_Node.cpp files since they - are no longer used. Thanks to John Tucker - for contributing these fixes. - - * ace/SOCK_Dgram_Mcast: Finished implementing the QoS-enabled APIs for - socket datagram multicast. This required refactoring quite a - bit of code and adding some new methods that take the - ACE_QoS_Params. - - * ace/SOCK_Dgram.cpp: Finished integrating the QoS support - for SOCK dgrams. - - * ace/SOCK_Dgram.cpp: Factored out common code in the - ACE_SOCK_Dgram constructors. - - * ace/SOCK_Connector: Finished implementing the QoS-enabled - connect() methods. To make this cleaner, I've created a new - "shared_open()" method that factors out the common code. - - * ace/SOCK_Acceptor: Finished implementing the QoS-enabled open() - method. To make this cleaner, I've created a new - "shared_open()" method that factors out the common code. - -Sat Jul 17 13:36:03 1999 Ossama Othman - - * ace/High_Res_Timer.cpp (get_cpuinfo): - - Removed extra `FILE *cpuinfo' declaration. - -Sat Jul 17 12:20:25 1999 Douglas C. Schmidt - - * ace/High_Res_Timer: Added integrated support for Alpha and - Pentium that will eliminate the 5sec startup delay for Linux/PII - clients using the ACE high resolution timer. Thanks to Thomas - Lockhart for these fixes. - - * netsvcs/servers/main.cpp (main): Fixed a typo caused by recent - integration of Jerry De Master's fixes. - -Fri Jul 16 19:41:05 1999 Irfan Pyarali - - * ace/ACE.cpp (out_of_handles): Added a function to check if a - process is out of handles (file descriptors). This is required - to avoid repeating this code in many places. Also, note that - all platform specific quirks can be captured in this function. - - * ace/Cached_Connect_Strategy_T.cpp (cached_connect): - * tests/Cached_Conn_Test.cpp (out_of_sockets_handler): - * tests/Cached_Accept_Conn_Test.cpp (out_of_sockets_handler): - - Changed the above to use the new ACE::out_of_handles() function. - - * ace/OS.h (ENFILE): Added ENFILE if missing on platform. In that - case, ENFILE will equal to EMFILE. - -Fri Jul 16 13:55:34 1999 Douglas C. Schmidt - - * include/makeinclude/{build_dll.bor,build_exe.bor,compiler.bor}, - ace/{Makefile.bor,ace.rc}: - Updated these files to add version information to the DLLs so - when you right click them in windows explorer you can see what - version the file is (e.g., "4.6.45"). Thanks to Christopher - Kohlhoff for contributing this. - - * netsvcs/servers/main.cpp (main): Disable debugging messages - if the -d option isn't given to ACE_Service_Config. Thanks to - Jerry De Master for reporting this. - - * ace/config-win32-borland.h: Updated this file to enable some - necessary macros. Thanks to Christopher Kohlhoff - for reporting this. - - * tests/DLL_Test.cpp, - tests/run_test.bat: Updated these to handle the appropriate - directory where the Borland tests are built. Thanks to - Christopher Kohlhoff for reporting this. - - * netsvcs/lib/Logging_Strategy.cpp (init): When the application - program is started, none of the log output is sent to the - Client_Logging_Service. Further investigation shows that the - ACE_Log_Msg::open() method is responsible for connecting to the - client logger if the ACE_Log_Msg::LOGGER flag is set. However, - the connections never attempted because the ACE_Log_Msg::open() - method is called before the Logging_Strategy flags have been - parsed. This problem was fixed by rearranging the point at - which the ACE_LOG_MSG->open() method was called. Thanks to - Jerry De Master for contributing this. - - * netsvcs/lib/Client_Logging_Handler.cpp (send), - netsvcs/lib/Log_Message_Receiver.cpp (log_output): - All log message output in ACE is done through one of the - ACE_Log_Record::print() methods. Each of the overloaded methods - has a argument as the second argument. However, all - uses of the ACE_Log_Record::print() method in - Log_Message_Receiver.cpp and Client_Logging_Handler.cpp pass - zero for the flags argument. To fix this, simply pass - ACE_Log_Msg::instance()->flags() instead of 0. Thanks to Jerry - De Master for contributing this. - - * ace/Log_Record.cpp (format_msg): Added code for the new - ACE_Log_Record::format_msg() method that adds the date/time - stamp to the ACE_Log_Msg::VERBOSE_LITE output. Thanks to Jerry - De Master for contributing this. - - * netsvcs/lib/Logging_Strategy.cpp (init): Make sure the - ACE_Log_Msg::VERBOSE_LITE flag is OR'd into the clr_flags() - call. Thanks to Jerry De Master for - reporting this. - - * netsvcs/lib/Logging_Strategy.cpp (tokenize): Make sure that - the ACE_Log_Msg::VERBOSE_LITE flag is correctly parsed. Thanks - to Jerry De Master for reporting this. - - * ace/Memory_Pool.h: Added a way to set the segment_size in - ACE_Shared_Memory_Pool_Options and ACE_Shared_Memory_Pool. - Thanks to Serge Kolgan for this fix. [This - feature was actually added a couple of beta releases ago, but - somehow the ChangeLog entry got lost.] - -Fri Jul 16 16:41:22 1999 Ossama Othman - - * ace/Stats.cpp (print_summary): - - Fixed format specifier that was expecting an integer argument. - It needed an additional percent specifier. - -Fri Jul 16 09:20:42 1999 Arturo Montes - - * ace/OS.i: Patch the dl* family to keep ACE - compatible in SCO OpenServer 5.0.0, 5.0.2, 5.0.4 with 5.0.5 - - * ace/config-sco-5.0.0.h: Bring OpenServer up to date. - - * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU: - Use gcc-2.95. - -Fri Jul 16 11:50:24 1999 Nanbor Wang - - * ace/Log_Msg.cpp (log): - * tests/Basic_Types_Test.cpp (main): Reverted my previous - change. It was not a safe assumption. - -Fri Jul 16 02:28:10 1999 Nanbor Wang - - * ace/Log_Msg.cpp (log): Changed (*va_arg (argp,PTF))(), which - extracts a function pointer from va_list and makes a call using - the pointer pointer to ACE_reinterpret_cast (PTF, va_arg (argp, - long))(). This assumes the sizeof (long) is exactly equal to - the size of a function pointer. - - * tests/Basic_Types_Test.cpp (main): Narrow down the check to - ensure sizeof(long) == sizeof (a function pointer) (which is - true for all the platforms that ACE runs on.) - -Fri Jul 16 00:07:23 1999 Irfan Pyarali - - * tests/Cached_Accept_Conn_Test.cpp (test_connection_management): - Changed the test to allow for both one listen endpoint or - multiple listen endpoints. - -Thu Jul 15 22:42:36 1999 Nanbor Wang - - * ace/Message_Queue.h: (ACE_MESSAGE_QUEUE_DEFAULT_TYPE): - * ace/Future_Set.{h,cpp} (ACE_Future_Set): Typedef'ed the - ACE_Message_Queue to ACE_MESSAGE_QUEUE_DEFAULT_TYPE and use the - typedef'ed name in ACE_Future_Set's contstructor to get around a - bug in vxworks' g++ compiler. - -Thu Jul 15 22:14:18 1999 Irfan Pyarali - - * ace/Cached_Connect_Strategy_T.cpp - * ace/Cached_Connect_Strategy_T.h - * ace/Strategies_T.cpp - * ace/Strategies_T.h - - Changed find()'s signature to help g++. - - * tests/Cached_Accept_Conn_Test.cpp - * tests/Conn_Test.cpp - - Added template instantiations. - -Thu Jul 15 21:32:26 1999 David L. Levine - - * bin/create_ace_build: removed # -*- perl -*- on first - line so that t/csh users don't trip over it. Thanks - to Irfan for reporting this. - -Thu Jul 15 20:23:39 1999 Irfan Pyarali - - * tests/Cached_Conn_Test.cpp (test_connection_management): Changed - the test to allow for both one listen endpoint or multiple - listen endpoints. - - * ace/Cached_Connect_Strategy_T.cpp: - * ace/Strategies_T.cpp - - - find: Since the comparison of - REFCOUNTED_HASH_RECYCLABLE_ADDRESS doesn't work very well when - trying to find an idle connection (because there are many idle - states), we now use the new backet iterator to find a idle - connection. - - - check_hint_i: Explicitly checks for idleness; previously it - was simple checking !closed. - - * ace/Strategies.h (ACE_Recyclable): Changed ACE_Recyclable::State - to ACE_Recyclable_State. - - * ace/Strategies_T.h (ACE_Refcounted_Hash_Recyclable): - - - Added operator!=(ACE_Refcounted_Hash_Recyclable) - - Removed operator==(T) - - Added T &subject() - - Change operator==(ACE_Refcounted_Hash_Recyclable) to check - for equality in state and subject. - - * ace/Caching_Utility_T.cpp (minimum): Entries marked - ACE_RECYCLABLE_PURGABLE_BUT_NOT_IDLE should also be considered - for purging. - - * ace/Cleanup_Strategies_T.cpp (cleanup): The hash map of the - connection cache may contain duplicates. Therefore, we are not - exactly sure which map entry will be removed when calling - unbind(). Therefore, we use the other unbind() which gives us - back the value of the entry that was removed. This way will - close the correct handler. - - * ace/Svc_Handler.cpp (state): Added a new method that allows the - user to explcitly set the state of the Svc_Handler. If the - Svc_Handler does not have a recycler, this method will have no - effect. - -Thu Jul 15 16:39:06 1999 Ossama Othman - - * Makefile: - * NEWS: - - The NEWS file is no longer a generated file so it was added to - the list of controlled files. - -Thu Jul 15 16:20:43 1999 Nanbor Wang - - * ace/Service_Manager.cpp (init): Check to see the acceptor handle - is ACE_INVALID_HANDLE before the actual initialization to - prevent this service from being initialized twice. - (fini): Must call remove_handler with - ACE_Event_Handler::DONT_CALL since the service manager won't be - around when the reactor is being destroyed. Thanks to Gheorghe - Aprotosoaie for reporting this. - -Thu Jul 15 16:26:28 1999 David L. Levine - - * ace/OS.cpp (spa): use ACE_NEEDS_HUGE_THREAD_STACKSIZE - instead of hard-coded value. - - * ace/config-vxworks5.x.h: added default - ACE_NEEDS_HUGE_THREAD_STACKSIZE of 64000. - -Thu Jul 15 16:08:48 1999 Nanbor Wang - - * ace/config-win32-common.h: Moved ACE_HAS_IP_MULTICAST down - *after* ACE_HAS_WINSOCK2 is defined. Thanks to Marina for - reporting this. - -Thu Jul 15 16:11:04 1999 David L. Levine - - * ace/Basic_Types.h (ACE_U_LongLong): removed user-defined - conversion to ptr_arith_t. Replaced with new macro, - ACE_LONGLONG_TO_PTR. - -Thu Jul 15 15:31:49 1999 Ossama Othman - - * ace/ACE.cpp (timestamp): - * ace/High_Res_Timer.cpp (print_ave): - * ace/Local_Tokens.cpp (open): - * ace/Log_Msg.cpp (log): - * ace/Log_Record.cpp (format_msg): - * ace/Naming_Context.cpp (parse_args): - * ace/OS.cpp (unique_name): - - Fixed warnings and generated by gcc 2.95; mostly due to format - specifier mismatches and inefficient conversion operator usage. - -Thu Jul 15 14:21:32 1999 David L. Levine - - * docs/ACE-guidelines.html: reverted to the original - perl magic that goes at the top of every script. The - fix that was supposed to work on HP/UX doesn't. See - Thu Jul 08 22:15:50 1999 David L. Levine - -Thu Jul 15 12:19:44 1999 David L. Levine - - * bin/make_release: added -u option, to allow updating the - version stamps from any directory. Also, added suppression - of cvs checkout warning about empty ("New") directories. - - * Makefile: added -u to make_release invocations. - -Thu Jul 15 11:39:44 1999 David L. Levine - - * ACE version 4.6.45 released. - -Thu Jul 15 11:26:43 1999 David L. Levine - - * Makefile: made NEWS a dependency of release. - -Thu Jul 15 10:05:40 1999 David L. Levine - - * docs/ACE-guidelines.html: removed reference to - ACE_OS::scanf (). No such thing. - -Thu Jul 15 10:01:31 1999 Steve Huston - - * ace/OS.h: TRANSMIT_FILE_BUFFERS are not defined on PharLap ETS - - it's a Microsoft-specific extension to Winsock 1.1. - - * ace/config-win32-common.h: ACE_HAS_IP_MULTICAST is only set for - Winsock 2. - - Thanks to David Hauck for these fixes. - -Thu Jul 15 09:28:32 1999 David L. Levine - - * include/makeinclude/platform_tru64_cxx.GNU: changed - 4.0f to 4.0F, because that's what sizer -v returns - on DU 4.0F. Thanks to Doug Anderson - for reporting this. - - * ace/config-tru64.h: only #define _LIBC_POLLUTION_H_ - with DU >= 5.0. Thanks to Doug Anderson - for reporting that it's not necessary on DU 4.0F. - -Thu Jul 15 09:15:11 1999 Steve Huston - - * ace/config-aix-4.x.h: Corrected template settings for IBM C/C++ - 3.6 compiler. It does not get ACE_HAS_STD_TEMPLATE_SPECIALIZATION. - - * include/makeinclude/platform_aix4_cset++.GNU: Delete the - testAIXCompilerVersion.cpp file after getting the compiler version. - -Thu Jul 15 07:33:30 1999 David L. Levine - - * ace/config-tru64.h,config-osf1.h,config-osf1-4.0.h, - include/makeinclude/platform_tru64_cxx.GNU,platform_osf1_cxx.GNU, - ACE-INSTALL.html: moved config-osf1.h to config-tru64.h, - and platform_osf1_cxx.GNU to platform_tru64_cxx.GNU. - Thanks to Doug Anderson for this suggestion. - -Wed Jul 14 22:23:10 1999 David L. Levine - - * ace/config-cray.h: replaced ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA - with ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION. The standard - "template class" explicit instantiations work with version - 3.2.0.1 of the compiler. Thanks to Doug Anderson - for reporting this. - - * ace/config-ghs-common.h: use - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION with Green Hills 1.8.9 - and later. Thanks to Carlos for suggesting that we give it - whirl. It worked :-) - -Wed Jul 14 22:03:08 1999 David L. Levine - - * ace/config-osf1-4.0.h: enable pragma message disable declbutnotref - with Digital Unix 4.0f, as well as 5.0. Thanks to - Doug Anderson for reporting that - it's necessary. - - * ACE-INSTALL.html: updated config/platform info for - Digital UNIX 4.0f (and 5.0). - - [Bug 65] - -Wed Jul 14 19:44:21 1999 Steve Huston - - * ace/Thread_Manager.cpp (spawn_i): Defer acquiring the thread - descriptor's lock until just before attempting to start the thread - to avoid places where the thread descriptor could be destroyed - while holding the lock (doing that is an undefined operation in - pthreads, and has particularly bad results on HP-UX 11). If the - thread creation does fail, release the lock before returning - the error indication (taking care to guard errno). Removed an - unreachable block of code which put the thread descriptor on the - wrong list anyway. - Removed the #if 1, #else, #endif around the auto_ptr for - new_thr_desc - if it's still working this close the ACE 5 release, - it wins. Besides, the use of the auto_ptr was ingrained in the - rest of the function, without the #if checks. - -Wed Jul 14 19:03:57 1999 David L. Levine - - * etc/purify.solaris2: added another UMR suppression for - __sigprocmask in the Solaris 2.6 threads library. Thanks - to Andy for reporting this. - -Wed Jul 14 16:30:48 1999 Irfan Pyarali - - * ace/Hash_Map_Manager_T.h (class ACE_Hash_Map_Bucket_Iterator): - Added a new class that allows the iteration over the entries of - a of a particular bucket in a hash map. - - * tests/Hash_Map_Bucket_Iterator_Test.cpp: A test for the new - ACE_Hash_Map_Bucket_Iterator class. - -Wed Jul 14 16:37:33 1999 Ossama Othman - - * Makefile: - - Added Makefile.am and NEWS to the list of controlled files. The - file `NEWS' will get generated when a release is made. - - * TODO: - * acconfig.h: - * configure.in: - * configure: - - Minor ACE Configuration Project related updates and fixes. - -Wed Jul 14 13:38:12 1999 Steve Huston - - * tests/Cached_Accept_Conn_Test.cpp: Moved defs of Client_Svc_Handler - and Server_Svc_Handler classes to new file, Cached_Accept_Conn_Test.h - to make AIX xlC happy. - - * tests/Cached_Conn_Test.cpp: Moved definition of Svc_Handler class - new file, Cached_Conn_Test.h to make AIX xlC happy. - - * tests/Cached_Accept_Conn_Test.cpp, Cached_Conn_Test.cpp: Don't - even try to build these on AIX C Set++ 3.1. It can't hack the - auto template instantiation - overwrites a template generator - file and tosses its cookies. ACE is still the best C++ compiler - test on the planet. - -Wed Jul 14 16:24:38 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - Added new method to efficiently steal the contents of a CDR - stream and store them in another. - -Wed Jul 14 12:05:13 1999 David L. Levine - - * include/makeinclude/rules.local.GNU (LN_S): on WIN32 - hosts, use cp -p instead of ln -s, because symbolic - links aren't supported. - -Wed Jul 14 11:22:31 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU, - ACE_INSTALL.html: with egcs (Tornado II) and without - exception handling, add -Wno-uninitialized to CCFLAGS. - The version of egcs that is provided with Tornado II - produces some spurious warnings about uninitialized - variables (including "this" :-). This was a problem - in older versions of egcs, but has since been fixed. - To avoid the warning, we always disable the warning - with VxWorks' egcs. - -Wed Jul 14 11:20:31 1999 Steve Huston - - * ace/config-aix-4.x.h: Add ACE_LACKS_SETSCHED for pre-4.3 AIX. - -Wed Jul 14 11:15:24 1999 David L. Levine - - * examples/Shared_Malloc/Malloc.cpp: only explicitly - instantiate ACE_Read_Guard and - ACE_Write_Guard ifndef ACE_HAS_THREADS. - With threads, they're explicitly instantiated in - ace/Synch.cpp. - -Wed Jul 14 10:58:30 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - Clarified the relationship between this implementation and the - original SunSoft version. - -Wed Jul 14 10:47:45 1999 David L. Levine - - * include/makeinclude/platform_qnx_neutrino.GNU: - added ACE_HAS_GNUG_PRE_2_8 := 0, so that exception - handling will be disabled by default. - -Wed Jul 14 10:34:37 1999 David L. Levine - - * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: fixed typo, - ACE_LACKS_UNIX_DOMAIN_SOCKETS instead of - ACE_HAS_UNIX_DOMAIN_SOCKETS. - -Wed Jul 14 10:22:29 1999 David L. Levine - - * ace/Singleton.*: added ACE_Unmanaged_Singleton and - ACE_Unmanaged_TSS_Singleton template class. They're - identical to ACE_Singleton and ACE_TSS_Singleton, - respectively, except that they don't register for - cleanup with the ACE_Object_Manager. Therefore, - the application is responsible for explicitly destroying - the instance after it is no longer needed (if it wants to - avoid memory leaks, at least). The close () static member - function must be used to explicitly destroy the Singleton. - Thanks to Valery Arkhangorodsky - for suggesting this and providing the code. - -Wed Jul 14 10:01:47 1999 David L. Levine - - * ace/OS.h (ACE_{,U_}ONE_SECOND_IN*): made the trailing - L or U upper case, for readability. Thanks to Chris - for noticing this. - -Wed Jul 14 09:40:37 1999 David L. Levine - - * include/makeinclude/wrapper_macros.GNU: when setting - ACE_HAS_GNUG_PRE_2_8, if not g++: don't override - the value to null if it was non-null. Also, clarified - use of ACE_HAS_GNUG_PRE_2_8: 1 for g++ < 2.8.0, - 0 for g++ >= 2.8.0, undefined for non-g++. - -Wed Jul 14 09:29:57 1999 David L. Levine - - * tests/Makefile (realclean): remove log/compilations.log*. - -Tue Jul 13 22:25:18 1999 Carlos O'Ryan - - * include/makeinclude/wrapper_macros.GNU: - Disable the "unitialized" warnings with EGCS+exceptions, it - gives too many bogus warnings to take care of them. - -Tue Jul 13 22:16:17 1999 Carlos O'Ryan - - * bin/ACEutils.pm: - Wait for non empty files, sometimes the process creates the - files but does not have enough time to fill its contents. - -Tue Jul 13 21:32:44 1999 Ossama Othman - - * acconfig.h: - * ltconfig: - * ltmain.sh: - * ace/Makefile.am: - * tests/Makefile.am: - - ACE Configuration Project updates. Synchronized with current - version of ACE in CVS repository. - -Tue Jul 13 15:22:51 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - set ACE_HAS_GNUG_PRE_2_8 to 0 with egcs (Tornado II). - -Tue Jul 13 15:15:43 1999 Steve Huston - - * ace/ace-dll.icc, ace-lib.icc: Corrected source file set; now builds - (still with some warnings) on AIX, Visual Age C++ 4. - -Tue Jul 13 15:11:28 1999 Nanbor Wang - - * bin/run_all_win32.pl: Fixed program output redirection problem. - Unfortunately, the fix requires one to have either 'sh' or '4nt' - to redirect output from another perl script correctly. - -Tue Jul 13 15:04:35 1999 David L. Levine - - * include/makeinclude/platform_qnx_neutrino.GNU: - removed full paths from commands, because they're - prefixed with i386-nto-. - - * ace/config-qnx-neutrino.h: updated to build with egcs. - -Tue Jul 13 15:03:01 1999 David L. Levine - - * ace/Pipe.cpp (open): moved declaration of local variable - "one" inside the ACE_LACKS_TCP_NODELAY #ifndef block. - -Tue Jul 13 14:57:56 1999 David L. Levine - - * ace/SV_Semaphore_Simple.{h,cpp} (init,open,name_2_key): - added static cast of ACE_INVALID_SEM_KEY to key_t. key_t - is unsigned on QNX Neutrino, but we want to keep - ACE_INVALID_SEM_KEY as -1. - -Tue Jul 13 11:57:53 1999 Nanbor Wang - - * ace/config-win32.h: Changed CApplication to CWinApp. Thanks to - John Morey for pointing this out. - -Tue Jul 13 11:13:52 1999 Steve Huston - - * ACE_INSTALL.html: Added some info for building on AIX with - Visual Age C++. - - * ace/config-aix-4.3.x.h: New file - these version-specific configs - are particularly useful with Visual Age C++, which has its own - funky make system that doesn't use the platform_macros.GNU files, - and so doesn't pick up the ACE_AIX_MAJOR/MINOR_VERS settings which - are used in config-aix-4.x.h. - - * ace/config-aix-4.x.h: Corrected template settings for Visual Age C++ - and added ACE_HAS_TYPENAME for VAC++ also. - -Tue Jul 13 10:40:31 1999 Irfan Pyarali - - * ace/Cached_Connect_Strategy_T.cpp (purge_connections): There is - no need to set the purge percentage again. - -Tue Jul 13 10:39:57 1999 Matthew J Braun - - * ace/Containers_T.h,i: Altered private member list_ of - DLList_Iterator to be a pointer rather than a reference. This - allows the reset method to work because it was overwriting the - contents of list_ rather than iterating over a different list - -Tue Jul 13 09:14:31 1999 Steve Huston - - * ace/Cached_Connect_Strategy_T.cpp (dtor): Added ACE_TYPENAME - to 'iter' declaration since its type depends on template parameters. - -Tue Jul 13 09:11:24 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - moved LIBS setting for Green Hills 1.8.9 from - x86-only to all targets. Thanks to Dale Wood - for confirming that this - is necessary for PowerPC targets. - -Tue Jul 13 08:18:56 1999 David L. Levine - - * ace/config-osf1.h,config-osf1-4.0.h, - include/makeinclude/platform_osf1_cxx.GNU: - added another significant figure to the version identifer, - e.g., 0x40F and 0x500. [Bug 65] - -Tue Jul 13 06:45:53 1999 Steve Huston - - * examples/Shared_Malloc/test_position_independent_malloc.cpp: Moved - definition of Dummy_Data to test_position_independent_malloc.h, a - new file, to satisfy AIX IBM C++ template instantiation. - - * include/makeinclude/platform_aix4_cset++.GNU: Turn on/off warnings - based on compiler version, not OS version. Thanks to Craig - Rodrigues for sending the code in! - - * THANKS: Added Craig Rodrigues to the hall of fame. - - * ace/config-aix-4.1.x.h, config-aix-4.2.x.h: Added setting for - ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS if they weren't set - already. Eases backwards compatibility for those who don't use - the ACE build macros (horrors! :-). Thanks to Jeff Donner - for this suggestion. - -Mon Jul 12 18:24:34 1999 Kirthika Parameswaran - - * tests/Cached_Accept_Conn_Test.cpp: - This tests explicit purging from the server's point of view. - When the acceptor in either its accept_svc_handler () or open () - runs out of descriptors, purging of unused svc_handlers from the - connecton cache is requested. - - * tests/Cached_Conn_Test.cpp: - Defined ACE_HAS_BROKEN_EXTENDED_TEMPLATES for the - Caching_Strategy_Adapter. If this condition is true, then only - Least Recently Used Caching Strategy is available. This was - necessary for compilers which dont accept long template lists, - for example GNUC version < 8.0. Total credit for this hack - to get through the old GNUC compiler goes to Irfan - of the DOC group. - - * tests/Makefile: - Added Cached_Accept_Conn_Test.cpp. - - * tests/Makefile: - * tests/run_tests.sh: - * tests/run_pharlap_tests.bat: - * tests/run_tests.bat: - * tests/run_tests.psosim: - * tests/run_tests.vxworks: - Added Cached_Conn_Test, Map_Manager_Test and - Cache_Map_Manager_Test to the above. - -Mon Jul 12 17:31:28 1999 Nanbor Wang - - * bin/run_all_win32.pl: Fixed the missing execution output problem - and simplified how the script gets invoked. See comments for - more details. - - * ace/config-win32.h: - * ace/Object_Manager.h: Updated some unclear comments regarding - the use and instantiation of non-static object manager. Thanks - to John Morey and David for pointing this out. - - * ace/ace_dll.dsp: Merged additional MFC configuration. Thanks to - John Morey for submitting the patch. - -Mon Jul 12 15:27:37 1999 David L. Levine - - * ace/config-osf1.h,config-osf1-4.0.h, - include/makeinclude/platform_osf1_cxx.GNU, - ACE-INSTALL.html: added support for DU 4.0f. It needs the - same #defines that we use on DU 5.0. [Bug 65] - -Mon Jul 12 14:41:14 1999 David L. Levine - - * ace/config-win32.h,Object_Manager.h: cleaned up comments - about the non-static ACE_Object_Manager. Thanks to - John Morey for reporting this. - -Mon Jul 12 13:54:34 1999 Kirthika Parameswaran - - * ace/Cache_Map_Manager_T.{h,i,cpp}: - Defined ACE_T1 and ACE_T2 which contain the template parameter - list and added ACE_HAS_BROKEN_EXTENDED_TEMPLATES macro where - needed. This takes care of the template list for compilers which - cant accept a long template list, for example: GCC 2.7.2. - Also changed the purge() to now call the for - purging entries form the cache. - - * ace/Hash_Cache_Map_Manager_T.h: - Added ACE_HAS_BROKEN_EXTENDED_TEMPLATES to complement the - Cache_Map_Manager class changes. - - * ace/Cached_Connect_Strategy_T.cpp: - Changed dtor to take care of the - ACE_HAS_BROKEN_EXTENDED_TEMPLATES definition. - - * ace/Cached_Connect_Strategy_T.h: - Removed CONNECTION_CACHE_ITERATOR typedef. - - * ace/Caching_Strategies_T.{h,i,cpp}: - Changed template parameter list and removed dependency on the - CONTAINER. Removed clear_cache() method. - - * ace/Caching_Utility_T.{h,i,cpp}: - Added default cleanup strategies to every kind of - caching_utiltity. ACE_Recyclable_Hanlder_Caching_Utility no - longer derives form ACE_Pair_Caching_Utility. - - * ace/Cleanup_Strategies_T.{h,i,cpp}: - Changed ACE_Svc_Cleanup_Strategy to - ACE_Recyclable_Handler_Cleanup_Strategy. - - * tests/Cache_Map_Manager_Test.cpp: - * tests/Map_Manager_Test.cpp: - Made changes to template instantiations. - - * tests/Cached_Conn_Test.cpp: - Added out_of_sockets_handler() which will do the purging. - Added a check for ENOBUFS which arose on NT and ENOENT which - arose on Linux + Solaris. Defined - ACE_HAS_BROKEN_EXTENDED_TEMPLATES for GCC versions < GCC 2.8. - -Mon Jul 12 12:14:45 1999 David L. Levine - - * docs/ACE-development-process.html: added this page, as - a start towards a less chaotic development process. - -Mon Jul 12 10:05:31 1999 Steve Huston - - * ace/Event_Handler_T.i: Added ACE_TYPENAME on template-dependent types - in function signatures. Quiets HP-UX aC++. - - * ace/Based_Pointer_Repository.h: - * ace/Based_Pointer_T.h: Added #include "ace/OS.h" to pick up def. of - ACE_Export when instantiating templates with AIX IBM C++. - - * include/makeinclude/platform_hpux_aCC.GNU: Removed definition for - CPP_LOCATION - use aCC - cpp has too many problems, and a fix for - the pragma warnings was checked into TAO_IDL. - -Mon Jul 12 09:26:29 1999 David L. Levine - - * testsr/Makefile: don't build libDLL_Test.so if not building - shared libraries. This simplifies the build on static-libs - only platforms, and can be used by run_tests.sh, below. - [Bug 62] - - * tests/run_tests.sh: don't run DLL_Test if libDLL_Test.so - was not built. - -Mon Jul 12 07:48:04 1999 David L. Levine - - * docs/ACE-guidelines.html: updated guideline under CVS - section to match the other one about always testing - on egcs. - -Sun Jul 11 23:59:52 1999 nanbor - - * ACE version 4.6.44 released. - -Sat Jul 10 18:05:41 1999 Nanbor Wang - - * ace/config-kcc-common.h: Added ACE_NEW_THROWS_EXCEPTIONS. - Thanks to David for pointing this out. - -Sat Jul 10 16:22:00 1999 Chris Gill - - * ace/config-win32-common.h: wrapped ACE_HAS_TYPENAME_KEYWORD so it is - only set for MSVC++ 6.0 or higher. This is to work around a compiler - bug in MSVC++ 5.0 when trying to compile certain forms with the - typename keyword in a template method argument list. - -Sat Jul 10 13:16:50 1999 Douglas C. Schmidt - - * ace/Malloc: Changed the type of pointer used by ACE_Name_Node - from void * to char * so that we can integrate this cleanly with - ACE_Based_Pointer<>, which will fail if we use void since we - can't return from a "void" function! - - * tests/Thread_Pool_Test.cpp (open): Fixed another somewhat bogus - warning from EGCS related to initialization of loop variables. - - * tests/New_Fail_Test.cpp (main): Make sure to initialize pointers - so that EGCS doesn't complain. - - * tests/MT_Reactor_Timer_Test.cpp (main): Fixed a signed/unsigned - mismatch. - - * tests: Added appropriate header comments for all the *.h files. - - * tests/Cache_Map_Manager_Test.cpp: Capitlized the hash_key - class to be Hash_Key, which is standard ACE programming style. - - * ace/Service_Config.cpp: Added yet another set of - changes to open_i() so that the -d option is handled - appropriately. Thanks to Jonathan Reis - for this fix. - - * ace/SOCK_Acceptor.h: Clarified the parameters for - ACE_SOCK_Acceptor's constructor and open() methods. Thanks to - Ron MacKenzie for motivating this. - -Sat Jul 10 13:56:30 1999 Nanbor Wang - - * tests/MT_Reactor_Timer_Test.cpp (main): Fixed signed/unsigned - comparison. - -Sat Jul 10 08:01:36 1999 David L. Levine - - * docs/ACE-guidelines.html: THANKS instead of README. - -Fri Jul 9 20:54:30 1999 Ossama Othman - - * ace/UNIX_Addr.{h,i} (hash): - - Implemented a hash function for ACE_UNIX_Addr instead of relying - on the base class no-op hash function. Thanks to Irfan for - explaining the best way to do this. - -Fri Jul 9 20:39:47 1999 Kirthika Parameswaran - - * tests/Cached_Conn_Test.cpp: Added an Svc_Handler class which - helped in verifying the course of the program execution. - - * ace/Caching_Utility_T.cpp (minimum): Cleaned up code by removing - redundant else if statement. - - * tests/Cache_Map_Manager_Test.cpp: Resolved some template typos - which surfaced on compiling with VxWorks. - -Fri Jul 09 20:14:13 1999 Irfan Pyarali - - * tests/MT_Reactor_Timer_Test.cpp (main): Added fixes so that test - can work with WFMO_Reactor (WFMO_Reactor needs an extra - handle_events() to get started). - - * tests/Conn_Test.cpp (spawn_processes): Only printing reaping - message when result is not -1. - - * ace/Strategies_T.i (ACE_Refcounted_Hash_Recyclable::operator==): - The check should be for "and", not "or". - - * tests/Conn_Test.cpp: 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. - - Also changed the default number of clients to 5. Hopefully, - this won't overrun the backlog on the listen socket. - - * ace/Svc_Handler.cpp (shutdown): Remove self from Reactor only - when we have a valid handle. Otherwise, we lose our current - errno, since the failed remove_handler will set the errno to - EINVAL. - -Fri Jul 9 14:02:52 1999 Steve Huston - - * ace/config-aix-4.x.h: Re-enabled ACE_LACKS_SETSCHED for AIX 4.3. - The OS defs are not aligned/matched correctly with what they mean - in this area, but will need to wait til after ACE 5.0 is done - before straightening it out. - - * ace/WFMO_Reactor.cpp (ACE_WFMO_Reactor_Handler_Repository::bind_i): - Set errno to EMFILE if the max number of handles is registered, - instead of leaving a stale errno for the user to figure out. - - * tests/MT_Reactor_Timer_Test.h (Dispatch_Count_Handler): Changed - type of timers_fired_ from int to size_t so it matches type of - ACE_MAX_TIMERS. - -Fri Jul 9 14:27:10 1999 Douglas C. Schmidt - - * ace/Service_Config.cpp (open_i): Be default, disable debugging - messages. Only reenable them if the -d option is given. Thanks - to Jerry De Master for reporting this. - - * ace/Based_Pointer_T: Factored out all but the operator-> into - a new class called ACE_Based_Pointer_Basic so that we can use - this for "basic types" like char *. Thanks to Irfan for - pointing this out. - - * ace/Based_Pointer_Repository.cpp (unbind): Fixed a - bug in the unbind() loop. Thanks to David Levine and DEC UNIX - C++ for noticing this! - - * ace/Reactor.i (schedule_wakeup): Fixed a misplaced assignment - of Event_Handler->reator (). Thanks to Carlos for reporting - this. - -Fri Jul 09 13:11:33 1999 Nanbor Wang - - * tests/Conn_Test.cpp (spawn_threads): ACE_OS::perror takes a - wchar_t string on CE. - - * tests/test_config.h (set_output): We should use non-unicode - version of ACE_OS::getenv to initialize test_dir on "regular" - UNICODE compilation. Thanks to Steve for reporting this. - - Added more WinCE/UNICODE fixes. - -Fri Jul 9 12:16:00 1999 Kirthika Parameswaran - - * ace/Caching_Utility_T.cpp (minimum): - Modified minimum () of ACE_Recyclable_Handler_Utility class so - that the minimum value is also an entry which is purgable. - - * tests/Cache_Map_Manager_Test.cpp: - SunC++4.0 compiler doesnt accept typedefs with templates and - having ::, for example: HASH_MAP::iterator. One has to typedef - HASH_MAP::iterator and use it to typedef something else. Fixed - this problem in the above test. - -Fri Jul 9 11:39:40 1999 Douglas C. Schmidt - - * ace/Dirent.i: Added a pair of checks to open() and close() - to avoid double deletes. Thanks to Tom Arbuckle - for pointing this out. - - * ace/Reactor.i: For schedule_timer() and schedule_wakeup(), - make sure that the Event_Handler is assigned "this" Reactor - upon successful completion of the operation. Thanks to - Dirk Broer for suggesting this. - -Fri Jul 9 11:10:23 1999 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Re-suppress warning - 829 on 10.x because there's an offending system header file. - - * tests/test_config.h (ACE_Test_Output::set_output): Change test_dir - to be const because it's initialized with a string literal. - -Fri Jul 9 10:52:45 1999 Kirthika Parameswaran - - * ace/Caching_Utility_T.cpp (minimum): Checked the state of the - Refcounted_Hash_Address with ACE_Recyclable::IDLE_AND_PURGABLE. - -Fri Jul 09 10:49:40 1999 David L. Levine - - * tests/Message_Queue_Test.cpp (main): changed success - message from timed dequeue test to not contain "timedout", - because that trips run_tests.check. - -Fri Jul 09 10:25:42 1999 Irfan Pyarali - - * ace/Shared_Memory_MM.h (ACE_Shared_Memory_MM): Changed the - filename parameter from a non-const string to a const string. - Thanks to Ulf Jaehrig for pointing out this - problem. - -Fri Jul 09 03:31:34 1999 David L. Levine - - * ace/Basic_Types.i: added const to each of the static casts. - -Fri Jul 09 01:45:25 1999 Nanbor Wang - - * bin/auto_compile_win32.pl: A lot of projects changed names - recently and thus the file was not working properly. - -Thu Jul 8 23:15:06 1999 Alexander Babu Arulanthu - - * Merging the "ami_phase3" branch on to the main branch. Change - was done to the CDR_Stream{h,i} files to add the method - to the CDR class. Other than that, no change was - done to ACE. - -Thu Jul 08 22:15:50 1999 David L. Levine - - * docs/ACE-guidelines.html: changed the perl magic that - goes at the top of every perl script, to pick up perl - from the users path. This new version works on HP/UX. - Thanks to Carlos for divining it. - -Thu Jul 08 22:05:31 1999 David L. Levine - - * ace/config-linux-common.h: added #define of - ACE_DEFAULT_BASE_ADDR to 0x40000000 on __powerpc__ - only. - - * ace/config-linuxppcr5.h: removed. LinuxPPC can - now use config-linux-lxpthreads.h. - - * ACE-INSTALL.html: added LinuxPPC info. - - Thanks to Andreas Tobler for helping - to factor out the code from config-linuxppcr5.h. - -Thu Jul 8 21:57:17 1999 Carlos O'Ryan - - * ace/Malloc_T.h: - * ace/Malloc_T.cpp: - Changed the Cached_Allocator class to use a char* as the memory - source. - It was allocated as char* and deallocated as a char*, but casted - to T* to use placement new; this was actually unneeded and - actually an error: the memory does not become a T* until - placement new is invoked on it. [BUGID:40] - -Thu Jul 08 21:34:42 1999 David L. Levine - - * ace/config-lynxos.h: on PowerPC, set - ACE_NEEDS_HUGE_THREAD_STACKSIZE to 32000, instead of - its apparent default of 15000. On both x86 and ppc, - #define ACE_MAP_FIXED to 0 and ACE_DEFAULT_BASE_ADDR to - 0 to try to get the OS to always pick shared memory addresses. - - Thanks to Dan Butler for - suggesting the use of ACE_NEEDS_HUGE_THREAD_STACKSIZE here. - - * tests/Recursive_Mutex_Test.cpp (main): removed explicit - stack size setting, now that we're using - ACE_NEEDS_HUGE_THREAD_STACKSIZE on LynxOS/PPC. - -Thu Jul 08 18:47:23 1999 Kirthika Parameswaran - - * ace/Cached_Connect_Strategy_T.cpp: - Changed: - entry->ext_id_.state (ACE_Recyclable::IDLE); - to - entry->ext_id_.state (ACE_Recyclable::IDLE_AND_PURGABLE); - - * ace/Caching_Utility_T.{h,cpp}: - Added ACE_Recyclable_Handler_Caching_Utility which takes care - that the svc_handler to be purged is in the IDLE_AND_PURGABLE - state. - Made method minimum () virtual. - - * ace/Strategies.h: - Added IDLE_AND_PURGABLE and IDLE_BUT_NOT_PURGABLE states and - removed IDLE state from the enum. This change was necessary to - take care of AMI using the Mux Strategy. - - * ace/Strategies_T.cpp (cache_i): - Made entry state ACE_Recyclable::IDLE_AND_PURGABLE. - - * ace/Startegies_T.i (operator==): - Added checks for the ACE_Recyclable::IDLE_AND_PURGABLE and - ACE_Recyclable::IDLE_BUT_NOT_PURGABLE states. - - Thanks to Irfan of the DOC group for - helping with this. - -Thu Jul 08 18:47:23 1999 Irfan Pyarali - - * tests/Cache_Map_Manager_Test.cpp: Simplified code and output. - -Thu Jul 08 14:56:22 1999 David L. Levine - - * ace/Basic_Types.{h,i} (ACE_U_LongLong): added operators - that take ACE_UINT32 arguments corresponding to each of - the operators that take ACE_U_LongLong & arguments. This - solves some more overload resolution ambiguities. - - * ace/Stats.cpp: changed comparisons of ACE_U_LongLong with - ints to unsigned ints, to avoid overload resolution ambiguity. - -Thu Jul 08 14:29:42 1999 David L. Levine - - * ace/OS.i (gethrtime): cast ts.tv_nsec explicitly to - ACE_hrtime_t, instead of ACE_UINT32, to avoid overload - resolution ambiguity now that we have that ACE_U_LongLong - implicit conversion to ptr_arith_t. - -Thu Jul 8 13:50:14 1999 Steve Huston - - * ace/Reactor_Impl.h (dispatch_notifications): Changed ACE_Handle_Set - arg from const to non-const. Fix in ACE_Select_Reactor_Notify - requires the ability to change the handle set. - - * ace/WFMO_Reactor.{h cpp}: Corresponding removal of 'const' from - ACE_WFMO_Reactor_Notify::dispatch_notifications. Signature change - only - the function is a no-op in this class. - - * ace/Select_Reactor_Base.{h cpp}: In ACE_Select_Reactor_Notify, - dispatch_notifications(), remove the notify pipe's handle from the - dispatch handle set when handling a notification. Else it remained - set and dispatchng I/O handlers came back and ran through it - again, which artificially increased the count of dispatched - handlers, and left some input unhandled when it was ready. - - * tests/MT_Reactor_Timer_Test.cpp: Added some verification checks to - be sure that timer, notify, and input events all are handled at the - right time. - -Thu Jul 08 12:35:23 1999 Nanbor Wang - - * tests/test_config.h: Reorganized WinCE's macros and fix some - minor unicode problems. - -Thu Jul 8 11:33:50 1999 Douglas C. Schmidt - - * Rebuilt the ACE+TAO.tar.gz file. For some reason, there - was a ^M at the end of each line! Thanks to Bruce Edge - for reporting this. - - * ace/Based_Pointer_Repository.cpp (unbind): Rearranged the - iterator code a bit to see if that'll make DEC C++ happy. - - * ace/OS.h: Moved the ACE_MALLOC_ALIGN macro into OS.h. - - * config-aix-4.x.h, - config-lynxos.h, - config-psos-diab-mips.h, - config-psos-diab-ppc.h, - config-psos-diab.h, - config-psos-tm.h, - config-psosim-g++.h, - config-sunos5.5.h: - Added the ACE_MALLOC_ALIGN macro back since it's used in - an ACE test program. - - * ace/Malloc.cpp: Removed the trailing ';' on the #pragma - instantiate. Thanks to David Levine for reporting this. - -Thu Jul 08 11:35:53 1999 David L. Levine - - * ACE-INSTALL.html: added note about IP multicast support - with Tornado II/VxWorks 5.4. It's not enabled by default - in ACE. - -Thu Jul 8 11:31:13 1999 Steve Huston - - * tests/Message_Queue_Test.cpp: Added a test to see the correct errno - is set for a timed-out dequeue operation. - -Thu Jul 08 11:30:43 1999 David L. Levine - - * ACE-INSTALL.html: added note about the uninitialized - variable warnings from (the old) egcs that is - distributed with Wind River's Tornado II. - -Thu Jul 08 10:40:02 1999 David L. Levine - - * ace/config-linuxppcr5.h: use config-linux-lxpthreads.h - because thread support works. - - * ace/config-linuxppcr5.h, config-linux-common.h: use an - ACE_DEFAULT_BASE_ADDR of 0x40000000, because that allows - Naming_Test to work. - - With these two changes, all ACE tests pass on LinuxPPC. - Thanks to Andreas Tobler for the - fixes and testing. - -Thu Jul 08 10:25:55 1999 David L. Levine - - * ace/OS.h,Basic_Types.h: added ACE_U_LongLong conversion operator - to ptr_arith_t. Moved ptr_arith_t typedef from OS.h to - Basic_Types.h, so that it can be used by ACE_U_LongLong. - Thanks to Chris for helping to figure this out. - -Thu Jul 8 08:34:22 1999 Steve Huston - - * ace/Log_Msg.cpp (log): Don't special-case the %t handling on AIX - 4.3 - just 4.2 and earlier. - -Thu Jul 8 00:23:02 1999 Douglas C. Schmidt - - * ace/Malloc_T.cpp: Updated all the methods that check - cp_ptr_ to return immediately if it's 0. Thanks to Dieter for - suggesting this. - - * ace/Malloc.cpp (dump): Added a cast to trigger operator void - * for freep_ (which may be a smart pointer in some - configurations). - - * ace/Based_Pointer_Repository: Revised the implementation of - this class to use the "Cheshire-Cat" technique to hide the - implementation to avoid circular #include dependencies. - - * ace/Token.h (ACE_Token): Clarified that the timeouts are in - "absolute" time, not relative time. Thanks to Everett Anderson - for reporting this. - - * ace/config-win32-borland.h: Only enable - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION if we're running on - older versions of Borland. Thanks to Christopher Kohlhoff - for reporting this. - -Wed Jul 07 22:44:22 1999 David L. Levine - - * tests/Recursive_Mutex_Test.cpp (main): added comment - explaining why the stack size is now set. - - * tests/test_config.h: removed special ACE_MAX_PROCESSES - and ACE_MAX_THREADS values for LynxOS, because most - tests don't need them. - - * tests/Process_Mutex_Test.cpp: use only 4 processes - instead of ACE_MAX_PROCESSES, on LynxOS only. Otherwise, - the test's ACE_LOG_MSG->op_status assertion fails. - - * ACE-INSTALL.html: removed statements about some tests - failing on LynxOS/PPC. Just Naming_Test and - MM_Shared_Memory_Test fail now. - -Wed Jul 07 19:51:00 1999 Chris Gill - - * ace/config-ghs-common.h: removed use of native auto_ptrs, as they - implement an older specification which lacks the reset method. - -Wed Jul 7 17:17:10 1999 Ossama Othman - - * ace/ARGV.cpp (ACE_ARGV): - * ace/OS.cpp (ACE_OS_Recursive_Thread_Mutex_Guard): - * ace/Sched_Params.i (ACE_Sched_Priority_Iterator): - - Added some class members to the member initializer lists to fix - some "Effective C++" warnings from EGCS. - -Wed Jul 7 16:33:29 1999 Kirthika Parameswaran - - * tests/Cached_Conn_Test.cpp (main): Added default testing of LRU, - LFU, FIFO caching strategies. - - * tests/Cached_Conn_Test.cpp (parse_args): - * tests/Cache_Map_Manager_Test (parse_args): - Runtime selection of different caching strategies - (lru/lfu/fifo/null) made possible. - - * Caching_Strategies_T.{i,cpp}: - Removed typos and also definied the virtual destructor for - ACE_Caching_Strategy. - - * tests/Map_Manager_Test.cpp (test_cache_map_manager): - Added to the construction of - and objects to make - it in sync with the changes made below. - -Wed Jul 07 16:06:45 1999 David L. Levine - - * tests/Recursive_Mutex_Test.cpp: explicitly set the - stack size. This solves the problem on LynxOS/PPC, below, so - the 65-iteration workaround was removed. Thanks to Doug for - this suggestion. - -Wed Jul 7 13:27:53 1999 Douglas C. Schmidt - - * ace/config-win32-borland.h, - ace/config-win32.h: Added support for the ACE::major_versions(), etc. - for PC versions of ACE, as well as UNIX. Thanks to - Jeff Hellzen for suggesting this. - - * ace: Added a new Based_Pointer_T.i file that inlines the - small methods. - - * ace/Malloc[_T]: Cleaned up the code so that we can use the - ACE_Based_Pointer<> consistently when - ACE_HAS_POSITION_INDEPENDENT_MALLOC is enabled and disable. - - * ace/Malloc.h: By default, ACE_MALLOC_PADDING is set to 1 so that - we don't get "divide by zero" errors. However, it's only used - in the computation of the ACE_Malloc_Header if it's > 1. - - * config-aix-4.x.h, - config-lynxos.h, - config-psos-diab-mips.h, - config-psos-diab-ppc.h, - config-psos-diab.h, - config-psos-tm.h, - config-psosim-g++.h, - config-sunos5.5.h: - Removed the ACE_MALLOC_ALIGN macro since it should no longer - be necessary. - - * ace/Malloc.h: Changed the use of macro ACE_MALLOC_ALIGN to - ACE_MALLOC_PADDING, which is more descriptive. - - * Fixed a typo in the TAO-mail.html program where ace-* - should have been tao-*. Thanks to Pedro Alves Ferreira - for reporting this. - - * Fixed all vestiages of "BUG-REPORT-FORM" to say - "PROBLEM-REPORT-FORM." Thanks to Neil B. Cohen - for reporting this. - -Wed Jul 07 12:27:32 1999 David L. Levine - - * ace/config-lynxos.h: added ACE_LACKS_FORK for PowerPC - only. This cleans up most of the remaining test problems - on LynxOS/PPC. - -Wed Jul 07 11:26:06 1999 Nanbor Wang - - * ace/Malloc_T.cpp: Added ASYS_TEXT macros. - -Wed Jul 7 09:05:32 1999 Steve Huston - - * ace/Caching_Strategies_T.i (ACE_Caching_Strategy_Adapter<>::purge_ - percent): Don't return a value from a void function. - -Wed Jul 07 08:35:24 1999 Irfan Pyarali - - * examples/Threads/future1.cpp - * examples/Threads/future2.cpp - * tests/Future_Set_Test.cpp - * tests/Future_Test.cpp - - Fixed some template instantiations. - -Wed Jul 7 03:27:16 1999 Douglas C. Schmidt - - * examples/Shared_Malloc: Added a new file called - test_position_independent_malloc.cpp that exercises the new - "position-independent" features of the ACE_Malloc< class. - - * ace/Malloc_T.cpp: All the ACE_Malloc constructors were calling - open() without checking the results. Now, if failure occurs we - print a message. In addition, we weren't checking in - shared_malloc() to make sure that we'd been properly initialized - by the constructor. Now, if we aren't initialized correctly we - return 0. Thanks to Dietrich Quehl - for reporting these problems. - - * ace/Memory_Pool: Added a new feature to ACE_Shared_Memory_Pool - and ACE_Shared_Memory_Pool_Options that makes it possible to - tailor the size of System V shared memory segments without - breaking any existing ACE code. Thanks to Serge Kolgan - for contributing this enhancement. - - * ace/Makefile.bor (OBJFILES): Updated this file to include - the new Based_Pointer_Repository.obj entry. - - * ace/Makefile: Reran make depend. - - * ace/Makefile: Added the Based_Pointer_Repository.{h,cpp} and - Based_Pointer_T.{h,cpp} files to the Makefile. - - * ace/Malloc.h: Added the first support for the new "Based Pointer - Malloc" feature that's described below. - - * ace: Added the Based_Pointer_Repository.{h,cpp} and - Based_Pointer_T.{h,cpp} files to the release. These classes - make it possible to transparently use "pointers" in shared - memory without having to ensure that the base addresses of all - the pointers are mapped into separate processes at the same - absolute memory base address. Thanks to Dietrich Quehl - for contributing this software. - -Wed Jul 07 01:28:40 1999 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added the Based_Pointer_Repository.{h,cpp} and - Based_Pointer_T.{h,cpp} files to the project files. - - * ace/Based_Pointer_Repository.cpp: Added define ACE_BUILD_DLL. - -Tue Jul 06 22:47:04 1999 David L. Levine - - * bin/check_build_logs: filter out Purify warning about - non-pic R_SPARC_*. - - * ace/config-linuxppcr5.h: commented out #define __USE_XOPEN - because it's not necessary with glibc 2.1.1. Thanks to - Andreas Tobler for reporting this. - - * ace/OS.i (thr_kill, thr_setprio, sema_destroy, sema_wait, chdir, - unlink, sema_post, thr_continue, thr_getprio, thr_suspend, - ioctl): on VxWorks only, removed ACE_ADAPT_RETVAL wrapper from - system call, because it returns OK/ERROR (except for ioctl, - which returns driver number/ERROR). Thanks to Elias Sreih - for reporting this. - - * tests/SOCK_Send_Recv_Test.cpp (server): added 5 second - sleep so that the code agrees with the comments :-) It now - passes on LynxOS. Thanks to Steve Huston for the fix. Also, - changed an exit () call to ACE_OS::exit (), and changed a few - C-style casts to ANSI-style casts. - -Tue Jul 6 19:20:16 1999 Steve Huston - - * ace/Cache_Map_Manager_T.h: Removed extra "ace/" from #pragma - implementation directive. - - * tests/Cache_Map_Manager_Test.cpp: Changed typedefs for KEY and - VALUE from size_t to ACE_UINT32 to they always pick up the - specializations for ACE_Hash, etc. On HP-UX and AIX, size_t is - not the same as ACE_UINT32, and this caused build errors. - - * tests/Conn_Test.cpp: Restrict range of the test on PharLap ETS, - else it runs out of resources with default configuration. - -Tue Jul 6 18:21:37 1999 Everett Anderson - - * ace/Token_Request_Reply.{h,i,cpp}: Added - ACE_TOKEN_REQUEST_HEADER_SIZE for the fixed-length portion of - ACE_Token_Request's Transfer struct, changing length - calculations accordingly. Added two bytes to the buffer to - accomodate '\0' values after the token name and client ID. - - * ace/Remote_Tokens.cpp: Changed the check for failure when - receiving a reply in request_reply. - -Tue Jul 6 18:21:36 1999 Douglas C. Schmidt - - * ace/Map_Manager.cpp: Made this file conform to the ACE programming - guidelines. - -Tue Jul 6 18:31:34 1999 Carlos O'Ryan - - * include/makeinclude/platform_irix6.x_sgic++.GNU: - Removed pesky warnings about functions to big to optimize - because it would be slow. - -Tue Jul 6 18:15:31 1999 Steve Huston - - * ACE_INSTALL.html: Added a further note re PharLap ETS builds. - - * ace/config-pharlap.h: Added ACE_TIMER_SKEW of 10ms. - - * tests/Atomic_Op_Test.dsp: - * tests/Barrier_Test.dsp: - * tests/Cache_Map_Manager_Test.dsp: - * tests/Future_Set_Test.dsp: - Changed PharLap ETS configurations to put intermediate files in - ETS_LIB\Debug (like all the others), not in ETS_DLL\Debug. - - * tests/test_config.h: Set ACE_MAX_CLIENTS to 4 for PharLap ETS. - - * tests/run_pharlap_tests.bat: Disabled some tests of unsupported - facilities. - - * tests/SOCK_Test.cpp: Replaced "localhost" with ACE_LOCALHOST. - -Tue Jul 6 17:54:52 1999 Kirthika Parameswaran member. - - * ace/Cache_Map_Manager_T.{h, cpp}: - * ace/Hash_Cache_Map_Manager_T.{h,cpp}: - Changed the signature of the constructor.This was needed to be - able to use the External Polymorphism pattern. - - * tests/Cache_Map_Manager_Test.cpp: - * tests/Cached_Conn_Test.cpp: - Made necessary changes to reflect the changes above. - Thanks to Irfan of the DOC group for helping with this. - -Tue Jul 6 17:34:52 1999 Steve Huston - - * ace/config-aix-4.x.h: Enabled ACE_HAS_PTHREADS_UNIX98_EXT and - removed ACE_LACKS_RWLOCK_T for AIX 4.3. Moved some other - ACE_LACKS settings to the pre-4.3 threads section to allow - taking advantage of more capability on AIX 4.3. - -Tue Jul 06 16:29:32 1999 Nanbor Wang - - * ace/OS.h: Moved the string conversion macros before including - OS.i because we also use them in the file. Thanks to Carlos for - reporting this. - - * OS.{h,i,cpp}: - * Parse_Node.cpp: Windows CE fixes. - -Tue Jul 06 15:56:19 1999 David L. Levine - - * ace/ACE.h,Object_Manager.{h,cpp},OS.{h,cpp} - (ACE_Object_Manager*::init () and fini ()): return 1 instead - of -1 after the first call, per program invocation. Thanks - to Jody Hagins for this suggestion. - -Tue Jul 6 15:04:49 1999 Douglas C. Schmidt - - * ace/OS.i (sigwait): Fixed a problem with macro-itis and GCC. The - following macro - - # if (__FreeBSD__ < 3) || defined (CHORUS) || defined (ACE_PSOS) - - was always evaluating to true, even when we're not on FreeBSD!. - The following macro works around this: - - # if (defined (__FreeBSD__) && (__FreeBSD__ < 3)) || - defined (CHORUS) || defined (ACE_PSOS) - - Thanks to Elias Sreih for - reporting this and Carlos for suggesting the workaround. - -Tue Jul 6 11:39:59 1999 Douglas C. Schmidt - - * ace/OS.i: Updated the comment for ACE_ADAPT_RETVAL to - clarify why it is needed. Thanks to Elias Sreih - for motivating this clarification. - -Tue Jul 6 10:42:02 1999 Nanbor Wang - - * tests/test_config.h (ACE_INIT_LOG): Fixed a typo in VxWorks' - definition of ACE_INIT_LOG. Thanks to David for reporting - this. - -Tue Jul 6 10:17:19 1999 Douglas C. Schmidt - - * include/makeinclude/ace_flags.bor: Removed an extraneous - "\orbsvcs". Thanks to Eugene Surovegin (surovegin@softlab.ru) - for reporting this. - -Tue Jul 06 10:17:12 1999 David L. Levine - - * bin/check_build_logs: use mhmail instead of mailx on Suns. - mailx loses the subject, when run from my cron job. Thanks - to Naga for reporting this. - -Mon Jul 5 20:45:21 1999 Steve Huston - - * ace/OS.(h i): Added code for support of pthread suspend/resume and - pthreads reader-writer locks. These features are enabled by setting - the ACE_HAS_PTHREADS_UNIX98_EXT and removing ACE_LACKS_RWLOCK_T. - - * ace/config-hpux11.h: Added ACE_HAS_PTHREADS_UNIX98_EXT and removed - ACE_LACKS_RWLOCK_T - this enables native reader/writer locks as well - as thread suspend and reusme. - - * ace/README: Added ACE_HAS_PTHREADS_UNIX98_EXT. - - * apps/JAWS/server/HTTP_Config.(h cpp): - * apps/JAWS/server/HTTP_Response.( h cpp): const-corrected char *. - -Mon Jul 5 16:39:50 1999 Douglas C. Schmidt - - * ACE-INSTALL.html: Updated the discussion to point out - our support for KAI C++ 3.3, Borland C++ Builder 4.0, and the - IBM VisualAge C++ compiler. - - * ace/Future.h: Moved the static methods until the bottom - of the ACE_Future_Rep class to workaround a bug with Borland's - C++ Builder. Thanks to Christopher Kohlhoff - for testing this fix. - - * ace/Timer_Heap_T.cpp (grow_heap): Removed an extra memory - allocation that snuck in whilst integrating the IBM VisualAge - C++ compiler patches. Thanks to David Levine for reporting - this. - - * Added new Borland Makefiles. Thanks to Christopher Kohlhoff - for these. - - * include/makeinclude: Added several new platform configuration - files for Borland C++ Builder. Thanks to Christopher Kohlhoff - for these. - -Mon Jul 5 13:08:36 1999 Kirthika Parameswaran - - * tests/Cache_Map_Manager_Test.cpp: Added ACE_UNUSED_ARG macros - for to ward off warnings. - -Mon Jul 05 13:00:19 1999 Irfan Pyarali - - * ace/Malloc.i (free): Fixed unused arg warning for . - - * examples/Threads/future1.cpp: - * examples/Threads/future2.cpp: - - Fixed template instantiations. - -Mon Jul 5 12:25:11 1999 Carlos O'Ryan - - * ace/OS.i (strspn): - This function cannot return -1 to indicate errors, the function - returns an unsigned integral type. - -Mon Jul 05 12:14:56 1999 Nanbor Wang - - * ace/OS.i: Wchat_t version of strenvdup should only be available - on Win32. Thanks to Bala, Carlos, and David for noticing this. - (strspn): Ditto to this function. - -Mon Jul 05 09:58:07 1999 David L. Levine - - * ACE-INSTALL.html: in example config.h for VxWorks on NT, - use "" style #includes instead of <>. <> should only be - used for system headers. - -Mon Jul 05 04:11:05 1999 Nanbor Wang - - * tests/version_tests/Future_Set_Test.dsp: - * tests/version_tests/version_tests.dsw: Added Future_Set_Test - into version tests workspace. - - * ace/ACE.cpp: - * ace/ACE.h: - * ace/DLL.cpp: - * ace/DLL.h: - * ace/Env_Value_T.h: - * ace/Env_Value_T.i: - * ace/FIFO.cpp: - * ace/FIFO.h: - * ace/FIFO.i: - * ace/FIFO_Recv.cpp: - * ace/FIFO_Recv.h: - * ace/FIFO_Recv_Msg.cpp: - * ace/FIFO_Recv_Msg.h: - * ace/FIFO_Send.cpp: - * ace/FIFO_Send.h: - * ace/FIFO_Send_Msg.cpp: - * ace/FIFO_Send_Msg.h: - * ace/FILE_Connector.i: - * ace/Filecache.cpp: - * ace/Get_Opt.cpp: - * ace/INET_Addr.cpp: - * ace/Local_Name_Space_T.cpp: - * ace/Log_Record.cpp: - * ace/Message_Queue_T.cpp: - * ace/Name_Proxy.cpp: - * ace/Naming_Context.cpp: - * ace/Naming_Context.h: - * ace/OS.cpp: - * ace/OS.h: - * ace/OS.i: - * ace/Parse_Node.cpp: - * ace/Parse_Node.h: - * ace/Proactor.cpp: - * ace/Process.cpp: - * ace/RB_Tree.cpp: - * ace/Registry_Name_Space.cpp: - * ace/Remote_Name_Space.cpp: - * ace/Remote_Name_Space.h: - * ace/Remote_Tokens.cpp: - * ace/Remote_Tokens.h: - * ace/Remote_Tokens.i: - * ace/SOCK_Dgram_Mcast.cpp: - * ace/SPIPE_Connector.cpp: - * ace/SV_Message_Queue.cpp: - * ace/SV_Semaphore_Simple.cpp: - * ace/SV_Shared_Memory.cpp: - * ace/Stats.cpp: - * ace/Stats.h: - * ace/Strategies_T.cpp: - * ace/Strategies_T.i: - * ace/Svc_Conf.h: - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: - * ace/Token_Collection.cpp: - * ace/Token_Collection.h: - * ace/Token_Collection.i: - * ace/Token_Invariants.cpp: - * ace/Token_Invariants.h: - * ace/UPIPE_Acceptor.cpp: - * ace/UPIPE_Connector.cpp: - * ace/UPIPE_Connector.i: - * ace/WFMO_Reactor.cpp: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Proactor.cpp: - * ace/config-win32-common.h: - * tests/CDR_Test.cpp: - * tests/Cache_Map_Manager_Test.cpp: - * tests/Collection_Test.cpp: - * tests/DLL_Test.cpp: - * tests/DLL_Test.h: - * tests/DLList_Test.cpp: - * tests/Dynamic_Priority_Test.cpp: - * tests/Env_Value_Test.cpp: - * tests/Handle_Set_Test.cpp: - * tests/High_Res_Timer_Test.cpp: - * tests/IOStream_Test.cpp: - * tests/MT_Reactor_Timer_Test.cpp: - * tests/Map_Manager_Test.cpp: - * tests/Map_Test.cpp: - * tests/Message_Queue_Test.cpp: - * tests/Naming_Test.cpp: - * tests/New_Fail_Test.cpp: - * tests/Pipe_Test.cpp: - * tests/Priority_Reactor_Test.cpp: - * tests/Process_Mutex_Test.cpp: - * tests/Process_Strategy_Test.cpp: - * tests/Process_Strategy_Test.h: - * tests/Reactor_Performance_Test.cpp: - * tests/SOCK_Connector_Test.cpp: - * tests/SPIPE_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: - * tests/Service_Config_Test.cpp: - * tests/Thread_Manager_Test.cpp: - * tests/Time_Service_Test.cpp: - * tests/Tokens_Test.cpp: - * tests/UPIPE_SAP_Test.cpp: - * tests/Upgradable_RW_Test.cpp: - * tests/test_config.h: Changes to make it possible to write pure - UNICODE programs on NT. Now it is possible to compile ACE on NT - with ACE_HAS_MOSTLY_UNICODE_APIS defined. Most tests passed - without trouble. However, Future_Set_Test is not yet included - in the version_tests and Dynamic_Priority_Test also - failed. Thanks to Valery Arkhangorodsky - for providing a preliminary patch for - ACE to motivate the change. - -Sun Jul 04 18:57:13 1999 David L. Levine - - * ACE-INSTALL.html: when building tao_idl on NT to be - used for generating code for VxWorks, build without - ACE_HAS_EXCEPTIONS. Otherwise, TAO_IDLFLAGS must - be overridden to be null instead of -Ge 1. Thanks to - Carlos for this suggestion. - -Sun Jul 4 17:06:17 1999 Douglas C. Schmidt - - * tests/Notify_Performance_Test.cpp, - tests/Message_Block_Test.cpp, - tests/Priority_Task_Test.cpp, - tests/Thread_Pool_Reactor_Test.cpp: Fixed a couple of - warnings related to initializing char *'s with const char *'s. - Thanks to SunC++ 5.0 for reporting this. - -Sun Jul 04 16:07:33 1999 David L. Levine - - * ACE-INSTALL.html: updated instructions for building on - NT host for VxWorks. - -Sun Jul 04 15:41:34 1999 David L. Levine - - * many Makefiles: call ace_components via sh, instead of - directly in the make $(shell) command. This allows it - to work on platforms that don't have /bin/sh, such as NT. - -Sun Jul 4 12:34:24 1999 Douglas C. Schmidt - - * ace/Timer_Hash_T.cpp (cancel): Reversed a comparison from - <= to > to make the ACE_ASSERT replacement work properly. - Thanks to David Levine for reporting this. - - * tests/Thread_Pool_Test.cpp (open): We need to define 'int i' - outside of the for loop to keep EGCS from complaining for some - reason. - - * ace/Timer_Heap_T.cpp: Reformatted this code to conform to - the ACE programming guidelines. - - * ace/Timer_Heap_T.cpp (schedule): Replaced an ad hoc check for - allocator failure with the ACE_ALLOCATOR_RETURN macro. - - * ace/RB_Tree.cpp: Modified Carlo's change so that we add an - extra set of parens in a special way, rather than using a new - macro. This is more consistent with how we deal with this - problem in other parts of ACE. - - * ace/RB_Tree.cpp (insert_i): Removed an unreachable statement. - Thanks to David Levine for reporting this. - -Sat Jul 3 22:12:07 1999 Carlos O'Ryan - - * ace/Object_Manager.cpp (get_singleton_lock): - Fixed one of the ACE_Thread_Mutex version of this method. One of - the braces after an if() statement got "accidentaly" removed; - binding the "else" part of the statement to the previous if() - instead. - -Sat Jul 3 18:54:18 1999 Carlos O'Ryan - - * ace/RB_Tree.cpp: - If the "constructor" parameter in an ACE_NEW_RETURN macro has a - comma in it (such as Foo(x,y,z)) we need to replace it with a - macro, so it is seen as a single token by the pre-processor. - Otherwise it (the pre-processor) gets confused and uses - the comma as separator. Thanks to David for detecting this one. - -Sat Jul 3 15:57:40 1999 Carlos O'Ryan - - * ace/SOCK_Dgram_Mcast.cpp: - Fixed error code return, it should be -1 not ACE_INVALID_HANDLE - - * ace/SOCK_Connector.cpp: - Fixed stray comment characters. - -Sat Jul 03 14:04:10 1999 David L. Levine - - * ace/Makefile: call ace_components via sh, and use single - instead of double quotes, so that it works with Cygwin - on NT host. - -Sat Jul 3 12:05:46 1999 Douglas C. Schmidt - - * ace/SOCK_Dgram_Mcast: Modified the subscribe() method to return - 0 or -1 rather than ACE_HANDLE. Thanks to Vidya Narayanan - for suggesting this. - - * ace/SOCK_Acceptor, - ace/SOCK_Connector, - ace/SOCK: Added the ACE_Protocol_Info *, ACE_SOCK_GROUP, and - flags parameters to these classes so we can pass down the GQoS - information. Thanks to Vidya Narayanan - for suggesting this. - - * ace/SOCK.h: Added the reuse_addr parameter to open() and the - ACE_SOCK constructor. - - * tests/Future_Set_Test.cpp (main): We were casting a - const ASYS_TCHAR * to u_int, yikes! - - * ace/RB_Tree.cpp: Cleaned up the code so it's conformant with the - ACE programming style, particularly for dynamic memory - allocation (which wasn't using ACE_NEW). - - * ace/ACE.cpp (get_ip_interfaces): Cleaned up the code so it conforms - to the ACE programming guidelines. - - * ace/Timer_Hash_T.cpp: Fixed a number mistakes where the return - value of new wasn't being checked. - - * ace/Timer_Heap_T.cpp, - ace/Timer_Wheel_T.cpp: Removed the apparently extraneous parens - used in the ACE_NEW* macros in order to keep EGCS 2.95 happy. - Thanks to Jody Hagins and Arturo Montes - for reporting this. BTW, if this - causes problems on any compilers please let me know. - - * ace: Reformatted all the ACE_NEW* macros so they conform to - ACE programming style. - - * ace/Priority_Reactor.cpp: Cleaned up the code to conform to - the ACE programming style. - - * ace/OS.cpp (tss_base): Cleaned up a loop a bit so it conforms - to the ACE programming style. - -Sat Jul 3 11:09:51 1999 Alexander Babu Arulanthu - - * ace/WIN32_Asynch_IO.cpp - * ace/WIN32_Proactor.cpp - Addressed Doug's @@ Alex comments. It was simply making some - debug statements conditional upon ACE::debug () flag. - -Fri Jul 2 19:50:29 1999 Douglas C. Schmidt - - * ace/OS.h: There was a typo in the ACE_WIN32CALL_RETURN() macro - for Borland C++. Thanks to Jody Hagins for - reporting this. - - * ace/config-win32-borland.h: Clarified the fact that this file - shouldn't be #included directly. Thanks to Thaddeus Olczyk - for motivating this. - -Fri Jul 02 22:22:12 1999 Steve Huston - - * ace/config-hpux-11.x-hpc++.h: Added - ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION for aC++. - - * include/makeinclude/platform_hpux_aCC.GNU: Removed the suppression - of warning 829 (auto convert of string literal to char * deprecated). - With the exception of some JAWS code, all of ACE has been rid of the - offenders. - - * websvcs/tests/Makefile: Replace VLDLIBS with correct LDLIBS. Now - works on AIX. - -Fri Jul 2 19:37:16 1999 Carlos O'Ryan - - * tests/Future_Test.cpp: - The timeout variable was declared in one scope but used in - another one. Added another timeout variable to keep it happy. - - * tests/Message_Queue_Test.cpp: - A pointer was initialize using "0x" i think it was a typo and - should be "0". - -Fri Jul 02 18:28:31 1999 Steve Huston - - * ace/config-hpux11.h: Added ACE_HAS_BROKEN_T_ERROR. - Enable threads by default, unless site config explicitly turns it - off by setting ACE_HAS_THREADS to 0. Thanks to Brian Wallis - for motivating this change. - - * ace/config-hpux-11.x-hpc++.h: Added - ACE_HAS_STD_TEMPLATE_SPECIALIZATION. - - * include/makeinclude/platform_hpux_aCC.GNU: If on 11.00 and the - user requests a build w/o threads, set ACE_HAS_THREADS to 0 to - override the config default (see config-hpux11.h, above). - -Fri Jul 2 11:49:12 1999 Kirthika Parameswaran - - * tests/Cached_Conn_Test.cpp: This is a test which shows how the - Strategy Connector can automagically as well as explicitly cache - and purge connection from its connection cache using different - caching strategies. - - * ace/Cached_Connect_Strategy_T.{h, cpp}: Added a method - "purge_connections ()" which allows explicit purging of - connnections from the connection cache. - -Fri Jul 2 13:54:14 1999 Douglas C. Schmidt - - * ace/Future_Set.cpp, - ace/Future.cpp: Added ACE_TYPENAME at a couple of places - to make HP/UX aCC happy. Thanks to Eric Mitchell - for reporting this. - - * ace/SOCK_Dgram: Added send() and recv() methods that take - ACE_OVERLAPPED structures. Thanks to Vidya Narayanan - for suggesting this. - - * ace/OS.h: Added an ACE_OVERLAPPED_FLAG that's used to abstract - away from the WSA_FLAG_OVERLAPPED macro on Win32. Thanks to - Vidya Narayanan for suggesting - this. - - * ace/OS.cpp: Removed unnecessary ';' after ACE_BEGINTHREADEX() and - ACE_ENDTHREADEX(). Thanks to Kris Johnson - for reporting this. - - * ace/Service_Config.cpp (open_i): It appears that - - if (ACE::debug ()) - ACE_Log_Msg::disable_debug_messages (); - - should really be - - if (ACE::debug () == 0) - ACE_Log_Msg::disable_debug_messages (); - - Thanks to Jonathan Reis for - reporting this. - - * tests/Future_Test.cpp (main): Make sure to use absolute time - rather than relative time for the timeouts. Thanks to Peter - Brandstrom for reporting this. - -Fri Jul 02 13:44:17 1999 Irfan Pyarali - - * tests/Thread_Pool_Reactor_Test.cpp (worker): Added const fix to - and . - - * tests/Priority_Task_Test.cpp: Added const fix to . - - * tests/Notify_Performance_Test.cpp (print_results): Added const - fix to . - - * tests/Message_Block_Test.cpp: Added const fix to . - -Fri Jul 2 11:49:12 1999 Irfan Pyarali - - * Initialized some variables to zero to avoid some silly warnings - from egcs (with exceptions): - - - ace/Free_List.cpp - - ace/Malloc.i - - tests/DLL_Test.cpp - - tests/Mem_Map_Test.cpp - - tests/Message_Queue_Test.cpp - - tests/Reactor_Notify_Test.cpp - -Fri Jul 2 11:49:12 1999 Kirthika Parameswaran - - * ace/Strategies_T.h (ACE_Cached_Connect_Strategy): Made "virtual" - methods which were getting overriden in the derived - Cached_Connect_Strategy_Ex class. - - * ace/Cached_Connect_Strategy_T.{h, cpp}: Added a method - "purge_connections ()" which allows explicit purging of - connnections from the connection cache. - - * tests/Cached_Conn_Test.cpp: This is a test which shows how the - Strategy Connector can automagically as well as explicitly cache - and purge connection from its connection cache using different - caching strategies. - -Fri Jul 2 11:49:12 1999 Kirthika Parameswaran - - * tests/Cached_Conn_Test.cpp: This is a test which shows how the - Strategy Connector can automagically as well as explicitly cache - and purge connection from its connection cache using different - caching strategies. - - * ace/Cached_Connect_Strategy_T.{h, cpp}: Added a method - "purge_connections ()" which allows explicit purging of - connnections from the connection cache. - -Fri Jul 02 11:50:21 1999 Steve Huston - - * ace/ace_lib.dsp: Added Pharlap ETS configurations for Debug and - Release. - - * ace/config-pharlap.h: Added ACE_LACKS_* definitions to avoid some - unimplemented memory mapped things. Added a definition for - ACE_PAGE_SIZE because it's not obvious how to get it at run time. - Include because some of the OS functions call ETS - kernel functions for low-level system info gathering. - Set ACE_HAS_TSS_EMULATION. The PharLap TSS leaves some to be - desired, according to TSS_Test. - - * ace/config-win32-common.h: In building for PharLap, don't bring in - the OS-supplied wsock32.lib - need to use the PharLap one. - - * ace/ACE.cpp: PharLap ETS changes: - ACE::ldfind: PharLap doesn't have expand environment strings. - ACE::get_ip_interfaces: Use PharLap kernel functions to find - interfaces and learn their addresses. - ACE::terminate_process: Unsupported on PharLap. - ACE::handle_timed_open: If the open times out, set errno to - ETIMEDOUT, not ETIME. - ACE::handle_timed_accept: If the select times out, set errno to - ETIMEDOUT, not ETIME. - ACE::sock_error: If not a known error, format a message with the - error number in it - this is the only chance for a PharLap - system error to indicate the error number. - - * ace/OS.h: Changed def of ACE_DEFAULT_SERVER_HOST to ACE_LOCALHOST. - - * ace/OS.cpp (ACE_OS::uname): PharLap: Use ETS kernel functions to get - target processor class. PharLap doesn't do GetSystemInfo. - - * ace/OS.i (ACE_OS::hostname): PharLap: Attempt gethostname if using - RT version, though this isn't too reliable (requires ethernet and - BOOTP). - (ACE_OS::dlerror): PharLap doesn't support FormatMessage, - so format the error number. - (ACE_OS::mmap, ACE_OS::mprotect, ACE_OS::msync): PharLap doesn't - do memory-mapped files. - (ACE_OS::getpagesize): PharLap - use page size set from config.h. - Don't know a way to get this info at run time. - (ACE_OS::hostname (whar_t *, size_t)): PharLap - no wide chars. - - * ace/Log_Msg.cpp (log): PharLap doesn't do FormatMessage, so print - = %d for %p. - - * ace/Pipe.cpp (open): The protocol level for TCP_NODELAY on PharLap - is SOL_SOCKET, as opposed to Win32, where it's IPPROTO_TCP. - - * ace/SPIPE_Connector.cpp (connect): PharLap doesn't have the - SetNamedPipeHandleState function. - - * ace/WFMO_Reactor.cpp: PharLap ETS changes, because PharLap doesn't - implement async I/O, or WaitForMultipleObjectsEx. - register_handler_i: (This is a general Winsock 1.1 change) Creating - an event handle for a socket is not supported. - ok_to_wait, wait_for_multiple_events: Use WaitForMultipleObjects, - not WaitForMultipleObjectsEx. Should be fine since the big - difference is alertable, and that's not supported on ETS anyway. - - * tests/test_config.h: On PharLap, direct all logging to host console. - - * tests/tests_pharlap_msvc.lnk: Cleaned things up; extended stack size - from 8K to 32K. Change the starting load offset to - 0x100000 - the tests don't all fit in the default range. - Disabled the target screen driver to make all the test output from - all threads go to the host, thereby getting saved in the log files. - - * tests/run_pharlap_tests.bat: Fixed names of the executables. - - * tests/Atomic_Op_Test.dsp: - * tests/Barrier_Test.dsp: - * tests/Basic_Types_Test.dsp: - * tests/Buffer_Stream_Test.dsp: - * tests/CDR_Test_Test.dsp: - * tests/Collection_Test.dsp: - * tests/Conn_Test.dsp: - * tests/DLList_Test.dsp: - * tests/Dynamic_Priority_Test.dsp: - * tests/Enum_Interfaces_Test.dsp: - * tests/Env_Value_Test.dsp: - * tests/Future_Test.dsp: - * tests/Handle_Set_Test.dsp: - * tests/Hash_Map_Manager_Test.dsp: - * tests/High_Res_Timer_Test.dsp: - * tests/IOStream_Test.dsp: - * tests/Map_Manager_Test.dsp: - * tests/Map_Test.dsp: - * tests/Mem_Map_Test.dsp: - * tests/Message_Block_Test.dsp: - * tests/Message_Queue_Notifications_Test.dsp: - * tests/Message_Queue_Test.dsp: - * tests/MM_Shared_Memory_Test.dsp: - * tests/MT_Reactor_Timer_Test.dsp: - * tests/MT_SOCK_Test.dsp: - * tests/Naming_Test.dsp: - * tests/New_Fail_Test.dsp: - * tests/Notify_Performance_Test.dsp: - * tests/OrdMultiSet_Test.dsp: - * tests/Pipe_Test.dsp: - * tests/Priority_Buffer_Test.dsp: - * tests/Priority_Reactor_Test.dsp: - * tests/Priority_Task_Test.dsp: - * tests/Process_Mutex_Test.dsp: - * tests/Process_Strategy_Test.dsp: - * tests/RB_Tree_Test.dsp: - * tests/Reactor_Exceptions_Test.dsp: - * tests/Reactor_Notify_Test.dsp: - * tests/Reactor_Performance_Test.dsp: - * tests/Reactor_Timer_Test.dsp: - * tests/Reactors_Test.dsp: - * tests/Reader_Writer_Test.dsp: - * tests/Recursive_Mutex_Test.dsp: - * tests/Reverse_Lock_Test.dsp: - * tests/Semaphore_Test.dsp: - * tests/Service_Config_Test.dsp: - * tests/Sigset_Ops_Test.dsp: - * tests/Simple_Message_Block_Test.dsp: - * tests/SOCK_Connector_Test.dsp: - * tests/SOCK_Send_Recv_Test.dsp: - * tests/SOCK_Test.dsp: - * tests/SPIPE_Test.dsp: - * tests/SString_Test.dsp: - * tests/SV_Shared_Memory_Test.dsp: - * tests/Svc_Handler_Test.dsp: - * tests/Task_Test.dsp: - * tests/Thread_Manager_Test.dsp: - * tests/Thread_Mutex_Test.dsp: - * tests/Thread_Pool_Reactor_Test.dsp: - * tests/Thread_Pool_Test.dsp: - * tests/Time_Service_Test.dsp: - * tests/Time_Value_Test.dsp: - * tests/Timeprobe_Test.dsp: - * tests/Timer_Queue_Test.dsp: - * tests/Tokens_Test.dsp: - * tests/TSS_Test.dsp: - * tests/Upgradeable_RW_Test.dsp: - * tests/UPIPE_SAP_Test.dsp: - Fixed settings for PharLap ETS configurations. - - * tests/Conn_Test.cpp (server): If the acceptor fails, do not try to - close the svc_handler - the failed ACE_Oneshot_Acceptor already - closed it. - - * tests/SOCK_Send_Recv_Test.cpp: Use ACE_LOCALHOST, not "localhost". - -Thu Jul 1 21:49:39 1999 Matthew J Braun - - * ace/Containers_T.i,h,cpp - Added reset () methods to the derived classes of - ACE_Double_Linked_List_Iterator because the behavior of the base - class's version was not sufficient (and would cause way fun - segfaults when used). - - * tests/Map_Manager_Test.cpp - * tests/DLList_Test.cpp - ACE_const_cast'ed some string literals to char *'s to appease - the evil monstrosity that is SC 5.0. - -Wed Jun 30 18:11:41 1999 Ossama Othman - - * ace/OS.i (strncasecmp): - - Corrected ACE_TRACE statement to contain "strncasecmp" instead - of "strcasecmp." - -Thu Jul 01 21:07:22 1999 Douglas C. Schmidt - - * ACE version 4.6.43 released. - -Thu Jul 01 10:53:33 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - set INCLDIRS, so that wrapper_macros.GNU doesn't insert -I. - Otherwise, with GHS on NT host, ACE's Signal.h gets #included - instead of VxWorks' signal.h by target/h/private/sigLibP.h. - Thanks to Dale Wood and - Dave Steele for helping to figure - this out. - - * include/makeinclude/platform_vxworks5.x_g++.GNU, - bin/ace_ld: changed -c option to -C [...] --, so - that its arguments don't need to be quoted. I - couldn't figure out a way to quote on NT host. Thanks - to Dale Wood for enlightening me - on some of the intricacies of NT. - -Thu Jul 01 10:47:41 1999 David L. Levine - - * bin/libsize.pl: always use `pwd`, because the PWD environment - variable doesn't appear to get updated by recursive makes. - -Thu Jul 01 08:46:10 1999 David L. Levine - - * bin/check_build_logs: filter out lines from IDL_Cubit - that contain "0 errors". - -Thu Jul 01 00:24:52 1999 Nanbor Wang - - * docs/ACE-guidelines.html: Added a table explaining how to use - all the different ACE_*_STRING macros. - - * tests/DLList_Test.cpp: - * tests/Hash_Map_Manager_Test.cpp: - * tests/Map_Manager_Test.cpp: - * tests/Message_Block_Test.cpp: - * tests/Notify_Performance_Test.cpp: - * tests/Priority_Task_Test.cpp: - * tests/Thread_Pool_Reactor_Test.cpp: - * tests/test_config.h: UNICODE fixes. The usage of ASYS_TCHAR and - LPCTSTR were mistaken in many places. - -Wed Jun 30 16:13:58 1999 Irfan Pyarali - - * tests/Future_Set_Test.cpp: Added missing template instantiation - for ACE_Hash_Map_Reverse_Iterator_Ex. Also, added some fixes - from John Tucker . - -Wed Jun 30 12:09:22 1999 Nanbor Wang - - * ace/ace_bcc.ide: - * tests/tests_bcc.ide: - * *.{bpr,bpg}: Removed unused BCB project files. - -Tue Jun 29 23:12:58 1999 Carlos O'Ryan - - * ace/OS.i: - Use ACE_CAST_CONST to keep the silly Sun/CC 4.2 from - complaining. - -Tue Jun 29 22:48:43 1999 Irfan Pyarali - - * ace/OS.i (strncasecmp): Changed to . - -Tue Jun 29 22:33:55 1999 Carlos O'Ryan - - * ace/OS.i: - Fixed warnings in green hills and possibly othre EDG-based - compilers. - - * tests/run_tests.sh: - * tests/run_tests.vxworks: - Take Future_Set_Test out, it does not work in too many - platforms. - -Tue Jun 29 21:24:13 1999 Douglas C. Schmidt - - * ace/SOCK.cpp (open): Removed an unused variable. Thanks - to Carlos for reporting this. - -Tue Jun 29 20:53:41 1999 Carlos O'Ryan - - * ace/config-irix5.3-g++.h: - IRIX 5.3 (!) has a DIRENT structure, thanks to Isaac Stoddard - for providing this fix. - -Tue Jun 28 20:19:11 1999 Darrell Brunsch - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Manually cleaned up these projects and fixed them so they should - work on NT Alpha again. - -Tue Jun 29 18:48:22 1999 Irfan Pyarali - - * ace/Functor_T.h (class ACE_Pointer_Hash): Added new class for - hashing pointers on their values. - - * ace/Future_Set: Restored future map to be a - ACE_Hash_Map_Manager_Ex. - -Tue Jun 29 14:45:38 1999 Irfan Pyarali - - * tests/run_tests.bat: Removed New_Fail_Test from the - run_tests.bat (the script for NT). This tests takes too long to - run and swaps out the entire machine making is impossible to do - useful things while the test is running. Note that the test is - still there and can be run by hand (i.e., on its own, without - the run_tests.bat script). - - * ace/Future: Changed the observer collection to be an unbounded - set and changed the future map to map manager. These are - temporary changes to get things compiling again. Once we figure - out the correct hashing functions, we can restore the original - code. - -Tue Jun 29 13:38:52 1999 Ossama Othman - - * AUTHORS: - - Added an AUTHORS file to bring ACE closer to recent software - distribution conventions. - - * Makefile: - - Added Carlos' websvcs directory to the release, in addition to - the missing top-level ACE Configuration project files and - directories. - - * config.guess: - * config.sub: - * ltconfig: - * ltmain.sh: - * missing: - * mkinstalldirs: - - Updated from latest GNU libtool and GNU automake. - -Tue Jun 29 12:07:08 1999 Ossama Othman - - * README: - * THANKS: - - Moved list of contributors to the file `THANKS' to bring the - distribution closer to conventional distribution standards. - - * Makefile: - - Added the THANKS file to the list of controlled files so that it - gets distributed with ACE. - -Tue Jun 29 11:27:23 1999 Matthew J Braun - - * ace/Containers_T.i: Modified next method in ACE_DLList_Iterator - to avoid segfaults (a bad thing). - -Tue Jun 29 10:54:15 1999 Carlos O'Ryan - - * ace/OS.i: - Sun/CC was not pleased with a cast from "void* const" to "const - char*", and rightly so. - -Tue Jun 29 09:21:06 1999 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - * ace/SOCK_Dgram.h: - * ace/SOCK_Dgram.i: - Fixed the unix version ACE_OS::sendto() call. - Also fixed the Win32 version and the Win32 version of - ACE_OS::recvfrom, had to change the signatures to make them safe - and fit the WinSock2 interfaces. - -Tue Jun 29 07:07:30 1999 David L. Levine - - * bin/check_build_logs: allow _ with -l and -m options, and - @ and . with -m option. - -Mon Jun 28 21:31:58 1999 Douglas C. Schmidt - - * ace/OS: Added a constructor to ACE_Flow_Spec to initialize - its various fields wholesale. Thanks to Kumar Surender - for this suggestion. - - * ace/SOCK: Added a new constructor and a new open() method - that pass through the QoS information required by WSASocket(). - - * ace/{OS,SOCK_Connector,SOCK_Dgram,SOCK_Dgram_Mcast}: Renamed - ACE_Connect_QoS_Params to ACE_QoS_Params since (1) it's used in - ACE_OS::connect() *and* ACE_OS::join_leaf() and (2) it's used - for Dgrams, which aren't connection oriented. Thanks to Kumar - Surender for this suggestion. - - * ace/OS: Added set/get methods for time-to-live on the - ACE_Flow_Spec classes. This is necessary since RAPI defines - this. - - * ace/OS: Added a new ACE_OS::recvfrom() method that's a wrapper - for the WSARecvFrom() on Win32 and (will be) an "emulation" on - non-Win32 platforms. - - * ace/OS: Added a new ACE_OS::sendto() method that's a wrapper - for the WSASendTo() on Win32 and an "emulation" on non-Win32 - platforms. - - * ace/OS.h: Updated the QoS documentation to clarify that these - features are appropriate for IntServ (RSVP) *and* DiffServ. - Thanks to Kumar Surender , Vidya - Narayanan and Pradeep Avasthi - suggesting this. - - * ace/SOCK_Dgram.h: Added send() and recv() methods for - ACE_SOCK_Dgram that take overlapped I/O parameters. This is - needed for the GQoS WinSock API. - -Mon Jun 28 21:53:06 1999 David L. Levine - - * bin/libsize.pl: added support for liborbsvcs, and - for shared libs (with -s option). - - * bin/check_build_logs: fixed command-line argument processing. - -Mon Jun 28 17:30:08 1999 Nanbor Wang - - * ace/OS.i (recvv): We must not passed a null pointer to - but a pointer pointing to a real flag. This fixed the - SOCK_Send_Recv_Test failing on NT problem. Thanks to Jody - Hagins for reporting this. - -Mon Jun 28 15:10:50 1999 Irfan Pyarali - - * ace/Strategies_T: Removed ACE_Hash_Addr which was no longer used - in ACE and is not necessary given the new - ACE_Hash_Map_Manager_Ex class. - -Mon Jun 28 15:00:01 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - Added new method to reset the state of a CDR stream without need - for any memory allocations. - -Mon Jun 28 12:48:35 1999 David L. Levine - - * bin/check_build_logs: added this script, which checks build - logs named *.log, of current day. - -Mon Jun 28 09:32:59 1999 Douglas C. Schmidt - - * ace/{Future_Set,Future}: Integrated new enhancements to use - the ACE_Hash_Map_Manager rather than the ACE_DLL_Linked_List to - speed up notifications for the Future Set. Thanks to John - Tucker for this enhancement. - - * tests: Integrated the Future_Set_Test into this directory and the - various batch files. Thanks to John Tucker - for this test. - - * ace/Map_Manager.i: Added an ACE_const_cast to the lock_ used - in the newly const total_size() and current_size() methods. - - * ace/Map_T, - * ace/Map_Manager, - * ace/Cache_Map_Manager_T, - * ace/Active_Map_Manager_T, - * ace/Hash_Map_Manager_T: The current_size() and total_size() methods - must be const. - - * ace/OS.i: Fixed a type inconsistency where wchar_t should have been - char and added a missing ';'. - - * ace/OS.i: Fixed a typo where last_error should have been - lerror. Thanks to Chris Gill for reporting this. - - * ace/OS.cpp (ACE_BEGINTHREADEX): Oops, mistyped "_beginthreadex()" - as "_beingthreadex()". I must be going through an existential - phase ;-). Thanks to Chris Gill for reporting this. - - * ace/OS.i: Fixed a typo where last_error should have been - lerror. Thanks to Chris Gill for reporting this. - - * ace/OS.cpp (ACE_BEGINTHREADEX): Oops, mistyped "_beginthreadex()" - as "_beingthreadex()". I must be going through an existential - phase ;-). Thanks to Chris Gill for reporting this. - -Sun Jun 27 18:03:24 1999 Douglas C. Schmidt - - * ACE-INSTALL.html: Updated the discussion for Borland C++ - Building 4.0 and IBM's VisualAge C++ compiler to reference the - appropriate maintainers. - - * ace/WIN32_Proactor.cpp, ace/WIN32_Asynch_IO.cpp: Added back some - initializers to keep EGCS happy. - - * ace/config-g++-common.h: Added ACE_LACKS_AUTO_PTR to work around - an omission within the EGCS standard library. - - * ace/Auto_Ptr.h: If ACE_LACKS_AUTO_PTR is enabled then use our - version of auto_ptr. This is necessary to work around problems - with EGCS. - - * ace/config-g++-common.h: Define ACE_HAS_STANDARD_CPP_LIBRARY so - that #include will work properly. However, this - required that we also set ACE_USES_OLD_IOSTREAMS, as well. - Thanks to Carlos for help with this. - - * ace/config-g++-common.h: The EGCS 1.1.1 compiler supports the - template<> syntax. If this breaks older EGCS or GCC compilers - we'll have to handle each of those cases. - - * ace/config-win32-borland.h: - Added ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION. - - * ace/OS.h: Replaced the const's for ACE_DEFAULT_SHLIB_MODE and - ACE_SHLIB_INVALID_HANDLE with #defines since it's more portable. - - * ace/OS.i: All the strcasecmp() and strncasecmp() methods were - broken. Thanks to David Levine for reporting this. - - * ace/WFMO_Reactor.cpp: Updated the programming style a bit to - conform to the ACE guidelines. - -Sun Jun 27 20:50:02 1999 Douglas C. Schmidt - - Added support for IBM's VisualAge C++ compiler. - - * ace: Added a new config-visualage.h file that automatically - includes the proper configurations for IBM's VisualAge C++ - compiler on Win32 and AIX. - - * ace/OS.i: The IBM VisualAge C++ compiler's prototypes for _chdir(), - _mkdir(), and _tempnam() are broken, so we must add a cast to - char *. - - * ace/OS.cpp: Added new macros ACE_ENDTHREADEX and - ACE_BEGINTHREADEX to work around a bugs with _endthreadex() and - _beginthreadex() on IBM's VisualAge C++ compiler. - - * ace/OS.cpp (ACE_Time_Value::set): Replaced this expression: - - this->tv_.tv_usec = long ((_100ns.QuadPart % (10000 * 1000)) / 10); - - with this expression: - - this->tv_.tv_usec = long ((long (_100ns.QuadPart) % long (10000 * 1000)) / 10); - - to work around a bug with IBM's VisualAge C++ compiler. - - * ace/OS.cpp: Replaced a hard-coded MSVC++'ism for signed long long - with a use of the ACE_UINT64_LITERAL macro, which works for all - Win32 C++ compilers. - - * ace/config-win32-visualage.h, - ace/config-aix-4.x.h: Added a workaround for an IBM VisualAge - C++ bug with the WIFEXITED and WEXITSTATUS macro. - - * ace/OS.h: Added workarounds for bugs with IBM's VisualAge C++ compiler - as it pertains to the ACE_DES_FREE_TEMPLATE and - ACE_DES_FREE_TEMPLATE2 macros. - - * ace/Map_T.h: Added a workaround for a bug with IBM's VisualAge C++ - compiler. I think this workaround should help with other C++ - compilers, as well. Also reformated the code to make it - consistent with the ACE programming guidelines. - - * ace/Hash_Purgable_Map_Manager_T.cpp: Added a workaround for a - VisualAge C++ bug. - - * ace/config-aix-4.x.h: Added VisualAge C++ compiler support. - - * ace/Timer_Heap_T.cpp: We must hard code numbers like - 1024 for an array size to workaround bugs with the IBM VisualAge - C++ compiler. - - * ace/Basic_Types.h: Added #defines for ACE_INT64_LITERAL. - - * ace/config-win32-common.h: #include the - config-win32-visualage.h file. - - * ace: Added the following files for the IBM VisualAge C++ compiler: - - ace-lib.icc - WinNT configuration file to create a static library - ace-dll.icc - WinNT configuration file to create a dynamic library - config-win32-visualage.h - VisualAge C++ defines - - * tests: Added the icc.bat and makeicc.pl files, which build the - tests for the IBM VisualAge C++ compiler. - - * tests: Added the *.icc project files for the IBM VisualAge C++ compiler. - -Sun Jun 27 18:17:43 1999 Carlos O'Ryan - - * ace/CORBA_macros.h: - On platforms with native C++ exceptions we use ACE_UNUSED_ARG() - in the throw macros to avoid warnings about the unused - ACE_TRY_ENV variable. - -Sun Jun 27 14:56:16 1999 Nanbor Wang - - * tests/run_tests.bat: Added the patch for running tests compiled - with Borland C++. Thanks to Jody Hagins for - the patch. - - * tests/Cache_Map_Manager_Test.dsp: The project file was - mis-configured. - - * tests/version_tests/version_tests.dsw: - * tests/version_tests/Cache_Map_Manager_Test.dsp: Added this new - project file. - -Sun Jun 27 12:36:00 1999 Chris Gill - - * ace/RB_Tree.{h, i}: Moved non-deprecated iterator base class - method next (RB_Tree_Node<...>) down into derived forward and - reverse iterator classes due to method resolution conflict - with deprecated next (void) method in forward iterator class. - When the deprecated next method is removed, these will be - moved out of the derived classes and into the base class. - Thanks to Matt Braun and Carlos O'Ryan for pointing out - this problem. - -Sat Jun 26 16:22:07 1999 Marina Spivak - - * ace/ace_lib.dsp - * ace/ace_dll.dsp: - Updated to include Hash_Map_With_Allocator_T.* files. - -Sat Jun 26 16:05:29 1999 Ossama Othman - - * acconfig.h: - * configure.in: - - Added support/test for ACE_HAS_MEMCHR macro. - - * ace/Makefile.am: - * tests/Makefile.am: - - Synchronized with latest version of ACE. - - * m4/features.m4: - - Updated asynchronous IO tests. - -Sat Jun 26 14:41:31 1999 Marina Spivak - - * ace/Event_Handler_T.h - Removed "ACE_Export" - it is not necessary for a template class. - - * ace/Hash_Map_With_Allocator.{h,i,cpp}: - Added these files to ACE. These files contain a thin wrapper - around ACE_Hash_Map_Manager, which is useful when - ACE_Hash_Map_Manager is used with a shared memory (or memory - mapped file) allocator (e.g., ACE Naming Service, and TAO Naming - Service are example use cases). Please see header file for more - details. - -Sat Jun 26 12:45:26 1999 Douglas C. Schmidt - - * tests/Cache_Map_Manager_Test.cpp: Fixed this test so that it - compiles with SunC++ 4.2 and its broken C++ templates... Thanks - to David Levine for reporting this. - - * ace/Malloc_T.i: Make sure to put ACE_INLINE on all the methods - in the .i files. Thank to Marina for reporting this. - - * ace/Hash_Map_Manager_T.h: Fixed the programming style a bit. - - * ace/Arg_Shifter.cpp (ACE_Arg_Shifter): Reformatted this - stuff a bit. - -Sat Jun 26 12:45:26 1999 Jody Hagins - - This is a change log for the modifications made to support - Borland C++Builder 4.0, Patch 1. Thanks to - Christopher Kohlhoff and Chris Uzdavinis - for helping with this. - - First, I did not get integrate the makefiles to the BCB environment - as it requires alot of tools and more time. I hope to fet to this - in the somewhat near future. However, each directory that has stuff - that I built and tested has a Makefile.bor, which will make whatever - is there with BCB4. Note that the makefiles do not, at present, - have a clean or anything except the default make. - - To build, make sure config.h points to, or simply includes - ace/config-win32.h. - - Finally, not all the programs and exampales have BCB makefiles. - However, it should not be too difficult to adapt the ones that are - there. In addition, the .bpr files should NOT be used to build - the libraries, or any examples. If you want to build examples, - you will need to start with a fresh project in BCB. - - At present (4.6.42) all tests, except SOCK_Send_Recv_Test run - successfully, and some of my own tests run. Also, the TAO services - and programs seem to be operating as well. - - * ace/Asynch_Acceptor.cpp: Need CancelIO for BCB as well - - * ace/Atomic_Op.i: Need ACE_TEMPLATE_SPECIALIZE on specializations. - - * ace/CDR_Stream.h: Need LongLong for BCB as well - - * ace/Functor.i: Need ACE_TEMPLATE_SPECIALIZE on specializations. - - * ace/Future.h: Work around a BCB4 bug which causes the create() - method from being seen. - - * ace/IOStream.h: Only want CString stuff for MSC. - - * ace/IOStream_T.cpp: Only want CString stuff for MSC. - - * ace/OS.cpp: _fdopen, in BCB, takes a non-const pointer - - * ace/OS.h: Differentiate between mode masks and user mode masks. - - BCB doesn't like initialized data in precompiled header files so - define certain constants instead. A bug in BCB prevents calling - a destructor explicitly on a typedef declared inside a class. - So, TEMPLATE3 and TEMPLATE4 versions of ACE_DES_FREE are - necessary for destruction of templates with more parameters. - - BCB4 has a bug in the RTL that resets the GetLastError() value - to zero when errno is accessed. Thus, setting errno to - ::GetLastError requires a copy. To keep from having the code - everywhere, I added ACE_OS::set_errno_to_last_error () and - ACE_OS::set_errno_to_wsa_last_error (), and used it everywhere - errno was being set to GetLastError() or WSAGetLastError(). - - BCB4 has a bug in the optimizer that screws up the return from - certain expressions when a variable is set on both sides of an - assignment. Thus, the definition of ACE_WIN32CALL_RETURN needed - to change. - - * ace/OS.i: Use ACE_set_errno_to_last_error where appropriate. - BCB4 bug requires splitting FILETIME dummy_1, dummy_2; into - separate declarations. - - * ace/Select_Reactor.h: Need ACE_TEMPLATE_SPECIALIZE on - specializations. - - * ace/WFMO_Reactor.cpp: Use ACE_set_errno_to_last_error where - appropriate. Likewise, fix the use of auto_ptr copy ctor, which - can not take a const ref. - - * ace/WIN32_Asynch_IO.cpp: Use ACE_set_errno_to_last_error - where appropriate. Need CancelIo for BCB as well. - - * ace/WIN32_Proactor.cpp: Use ACE_set_errno_to_last_error - where appropriate. - - * ace/config-win32-borland.h: Specific build stuff for BCB - - * ace/config-win32-common.h: Differences between BCB and MSC - - * apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.cpp: BCB4 bug prevents - using typedef inside class for explicit dextructor. - - * apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.cpp: - BCB4 bug prevents using typedef inside class for explicit - dextructor. - - * apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.cpp: BCB4 bug prevents - using typedef inside class for explicit dextructor. - - * apps/JAWS/PROTOTYPE/JAWS/IO.cpp: Get rid of const warning - - * tests/DLL_Test.cpp: The get_hello function has calling - convention __cdecl (by default since the calling convention is - not mentioned). However, BCB decorates __cdecl with a leading - underscore (and doesn't decorate __stdcall). Thus, we needed to - add some decoration to find the function. Also, added prefix to - find the executable. - - * tests/Message_Queue_Test.cpp: BCB4 defines a "messages" and by - default sucks that namespace into the global namespace, so a new - variable name was needed. - - * tests/Reactor_Exceptions_Test.cpp: The test throws a structured - exception. The ISO does not require non C++ exceptions to be - caught by catch (...). MSVC catches it but BCB4 does not. So, - the code needed to be changed to catch a structured exception as - well. - - * tests/run_tests.bat: Changed to allow running the BCB tests, - when in another directory. - -Sat Jun 26 08:40:01 1999 David L. Levine - - * ace/Proactor.cpp: fixed template instantiation pragmas - (to match explicit template instantiation directives). - -Sat Jun 26 08:21:52 1999 David L. Levine - - * ace/Signal.h: reordered #includes to avoid warning about - #pragma once. - -Fri Jun 25 22:30:24 1999 David L. Levine - - * docs/ACE-guidelines.html: always test on egcs before - commiting. It catches real problems that are missed - by some of the other compilers we (well, some of us :-) - use. - -Fri Jun 25 22:20:16 1999 David L. Levine - - * ace/Future.cpp (detach): changed equality comparison of - curr_observer from itself to the observer argument. - Thanks to egcs -W for snagging this. - -Fri Jun 25 21:46:46 1999 David L. Levine - - * ace/OS.h,ace/Signal.h,ace/config-psos-tm.h - (ACE_DONT_INCLUDE_ACE_SIGNAL_H): added this interlock - diagnostic to inform the user when ace/Signal.h gets #included - instead of signal.h. Thanks to Dale Wood - and Timothy Canham for tripping - over it, on the same day, and reporting it. - -Fri Jun 25 17:22:02 1999 Nanbor Wang - - * ace/Select_Reactor_T.cpp (close): Don't call close() on the - if there isn't one. - - * ace/SOCK_Acceptor.cpp (open): The error status was not set - correctly if listen() failed. - - Thanks to Irfan for helping with this. - -Fri Jun 25 16:48:17 1999 David L. Levine - - * ace/OS.h: don't #include directly on VxWorks. - When cross-compiling on NT host, the GreenHills compiler - #includes ace's Signal.h instead of VxWorks' signal.h. - No comment. OS.h doesn't need to #include signal.h directly, - because it gets indirectly #included through sigLib.h. Thanks - to Dale Wood for reporting this. - -Fri Jun 25 16:03:59 1999 Douglas C. Schmidt - - * ace/Future.cpp: Fixed a couple of places where the set() method - didn't have the new *this parameter added. - - * ace: Added Future_Set.{h,cpp} and Future_Node.{h,cpp}, as well - as the new Future.{h,cpp} files to the ACE release. Thanks to - John Tucker for contributing these. - - * ace/Synch.h: Added a comment pointing out that Solaris - threads do not support timed acquire(). Thanks to Darren - DeRidder for reporting - this. - -Fri Jun 25 15:07:00 1999 John Tucker - - The following describes the changes to ACE_Future_Set: - - * I followed the Observer Pattern where the ACE_Future_Set is the - "Observer" and the ACE_Future_Rep is the "Subject". - - * I created an abstract base class called ACE_Future_Observer - which contains a single pure virtual member function "update()". - - * The ACE_Future_Rep is modified so that it contains a list of - ACE_Future_Observer pointers and an interface for attaching - and detaching ACE_Future_Observer Observer objects. The - "attach(...)" member function allows objects which implement the - ACE_Future_Observer interface to attach themselves to - ACE_Future_Rep objects so that they will be notified of - changes to the ACE_Future_Rep Subject. The "detach(...)" - member function allows objects which implement the - ACE_Future_Observer interface to detach themselves from - ACE_Future_Rep objects so that they will no longer be - notified of changes to the ACE_Future_Rep Subject. - - * The ACE_Future_Rep::set() method is modified so that it invokes the - "update()" method of each ACE_Future_Observer object stored - in its list of attached ACE_Future_Observer Observer - objects. It also removes each ACE_Future_Observer Observer - object from its list. - - * The ACE_Future_Set class derives from the ACE_Future_Observer - class. - - * The ACE_Future_Set class contains its own ACE_Message_Queue - attribute which will be used by writer threads to notify reader - threads that an ACE_Future is readable. - - * The ACE_Future_Set class contains a list of ACE_Future - Subject objects which clients in the reader threads insert into - it. When an ACE_Future is inserted into an - ACE_Future_Set, the ACE_Future_Set attaches itself to the - specified ACE_Future, keeping in mind the ACE_Future_Set - implements the ACE_Future_Observer interface, and also - inserts the specified ACE_Future object into its list of - ACE_Future objects. - - * The ACE_Future_Set class implements its "update()" method to - just enqueue an ACE_Message_Block with Null data onto its - ACE_Message_Queue. Since this "ACE_Future_Set::update()" - method will be invoked by the ACE_Future_Rep::set() method in - the writer thread, it will allow the ACE_Future_Set in the - writer thread to signal itself that an ACE_Future has become - readable. - - * The "int ACE_Future_Set::next_readable(ACE_Future &future, - ACE_Time_Value *)" method in the reader thread will block via a - call to "dequeue()" on its ACE_Message_Queue until is awakened - by a call to "ACE_Future_Set::update()" in the writer thread. - Once awakened, the ACE_Future_Set object iterates through its - list of ACE_Future objects until it encounters a readable - one. This readable ACE_Future will be removed from its list - and assigned to the specified "future" parameter". - - * The ACE_Future_Set destructor detaches itself from all - ACE_Future objects remaining in its list. - - * I did not use the ACE_Reactor since I could foresee the - ACE_Future_Set being used by applications which did not run,or - want to run, the event loop. - -Fri Jun 25 14:28:05 1999 Ossama Othman - - * ace/UNIX_Addr.cpp (ACE_UNIX_Addr): Moved base_set() call in - constructor to member initializer list. This is cleaner coding - style. The original code, before a bug fix was made, was like - that. I just forgot to put it back in the member initializer - list after the fix. - -Fri Jun 25 15:15:32 1999 Steve Huston - - * performance-tests/Misc/Makefile: set static_libs_only so the library - selection gets done right on AIX. Clean out the tempinc dir - between binaries on AIX. - - * performance-tests/Misc/test_singleton.cpp: Moved def of DC_Singleton - to new file, test_singleton.h so it works on AIX w/ xlC. - - * ace/Hash_Cache_Map_Manager_T.h: Removed the "ace/" from the - #pragma implementation line. The compiler remembers the directory - it came from. - - * examples/ASX/UPIPE_Event_Server/Peer_Router.h: - * examples/Connection/non_blocking/CPP-connector.h: - * examples/Connection/non_blocking/CPP-acceptor.h: - Added #pragma implementation, for AIX IBM C++. - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: - Split the Options class to a new file, CPP-inclient.h, to make - IBM C++ (xlC) like it. - - * examples/IOStream/server/iostream_server.cpp: Split the Handler - class off to new iostream_server.h file, to make IBM C++ (xlC) - like it. - - * examples/Logger/Acceptor-server/server_loggerd.cpp: Moved the - Options and handler classes' definitions to new server_loggerd.h - file to build with AIX IBM C++. - - * examples/Misc/testr_dump.cpp: Moved the program's classes' - definitions to new server_loggerd.h file to build with AIX IBM - C++. - - * examples/IPC_SAP/SOCK_SAP/Makefile: - * examples/Connection/non_blocking/Makefile: - * examples/Misc/Makefile: - On AIX w/ IBM C++, delete the tempinc directory before compiling - each new program. Keeps the template instantiations from one - program from conflicting with the others. - - * include/makeinclude/rules.lib.GNU: On AIX using IBM C++ only, don't - try to link in the auto-instantiated template object modules if - there aren't any. - - * include/platform_aix4_cset++.GNU: Removed TMPL_OBJS - not needed now. - * examples/Misc/Makefile: On AIX w/ IBM C++, delete the tempinc - directory before compiling each new program. Keeps the template - instantiations from one program from conflicting with the - others. - -Fri Jun 25 12:40:29 1999 David L. Levine - - * ACE-INSTALL.html: added/expanded/moved discussions of - enabling/increasing virtual memory on Linux and LynxOS. Thanks - to Fabrice Podlyski for providing - detailed information for LynxOS. - -Fri Jun 25 11:16:32 1999 Kirthika Parameswaran - - * tests/Makefile: Updated dependencies for Cache_Map_Manager_Test - and Map_Manager_Test. - -Fri Jun 25 07:41:05 1999 David L. Levine - - * docs/ACE-guidelines.html: added guideline to include - directories containing files with template definitions in a -I. - -Thu Jun 24 22:42:44 1999 David L. Levine - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): fixed UNICOS - preprocessor usage so that it's not in the middle of the - ACE_reintepret_cast. - -Thu Jun 24 22:18:52 1999 Doug Anderson - - * ace/CDR_Stream.*,ace/SOCK_Dgram_Mcast.cpp,ace/config-cray.h: - updates for Cray UNICOS port. - -Thu Jun 24 21:33:11 1999 Kirthika Parameswaran - - * ace/Caching_Strategies_T.{h, cpp} (class ACE_FIFO_Caching_Strategy): - * ace/Caching_Strategies_T.{h, cpp} (class ACE_LRU_Caching_Strategy): - * ace/Caching_Strategies_T.{h, cpp} (class ACE_LFU_Caching_Strategy): - Removed the overloaded clear_cache () method with entries as an - formal argument. - - * ace/Caching_Strategy_Utility_T.{h,i,cpp}: Renamed as - Caching_Utiltity.{h, i, cpp}. Also, removed formal - argument from the clear_cache() method, and made purge_percent - of type double instead of unsigned int. - - * tests/Cache_Map_Manager_Test.cpp: Changed the purge_test and - added a test for the Cache_Map_Manager using the Map_Manager. - - * tests/Map_Manager_Test.cpp: Changed the template instantiation - in vein with the changes to the names of the Caching_Utility - classes. - - * tests/Cache_Map_Manager_test.dsp: - * tests/tests.dsw: - Made NT project for the test and added it to the tests workspace. - -Thu Jun 24 20:43:54 1999 Irfan Pyarali - - * examples/Reactor/WFMO_Reactor/test_multithreading.cpp - (Task_Handler): Change loop to go from 1 to number_of_handles - instead of 0 to number_of_handles - 1. - -Thu Jun 24 18:36:22 1999 Douglas C. Schmidt - - * ace/Signal.h: Removed the still-born - ACE_Sig_Action (struct sigaction *) method. Thanks to Umar - Syyid for reporting this. - -Thu Jun 24 15:47:32 1999 Steve Huston - - * tests/run_pharlap_tests.bat: One-button script for running the tests - built for PharLap ETS. - - * tests/tests_pharlap_msvc.lnk: PharLap ETS LinkLoc input file for - building test for ETS. Very possible that local sites will need to - adjust this for the target environment. - - * tests/Atomic_Op_Test.dsp: - * tests/Barrier_Test.dsp: - * tests/Basic_Types_Test.dsp: - * tests/Buffer_Stream_Test.dsp: - * tests/CDR_Test_Test.dsp: - * tests/Collection_Test.dsp: - * tests/Conn_Test.dsp: - * tests/DLList_Test.dsp: - * tests/Dynamic_Priority_Test.dsp: - * tests/Enum_Interfaces_Test.dsp: - * tests/Env_Value_Test.dsp: - * tests/Future_Test.dsp: - * tests/Handle_Set_Test.dsp: - * tests/Hash_Map_Manager_Test.dsp: - * tests/High_Res_Timer_Test.dsp: - * tests/IOStream_Test.dsp: - * tests/Map_Manager_Test.dsp: - * tests/Map_Test.dsp: - * tests/Mem_Map_Test.dsp: - * tests/Message_Block_Test.dsp: - * tests/Message_Queue_Notifications_Test.dsp: - * tests/Message_Queue_Test.dsp: - * tests/MM_Shared_Memory_Test.dsp: - * tests/MT_Reactor_Timer_Test.dsp: - * tests/MT_SOCK_Test.dsp: - * tests/Naming_Test.dsp: - * tests/New_Fail_Test.dsp: - * tests/Notify_Performance_Test.dsp: - * tests/OrdMultiSet_Test.dsp: - * tests/Pipe_Test.dsp: - * tests/Priority_Buffer_Test.dsp: - * tests/Priority_Reactor_Test.dsp: - * tests/Priority_Task_Test.dsp: - * tests/Process_Mutex_Test.dsp: - * tests/Process_Strategy_Test.dsp: - * tests/RB_Tree_Test.dsp: - * tests/Reactor_Exceptions_Test.dsp: - * tests/Reactor_Notify_Test.dsp: - * tests/Reactor_Performance_Test.dsp: - * tests/Reactor_Timer_Test.dsp: - * tests/Reactors_Test.dsp: - * tests/Reader_Writer_Test.dsp: - * tests/Recursive_Mutex_Test.dsp: - * tests/Reverse_Lock_Test.dsp: - * tests/Semaphore_Test.dsp: - * tests/Service_Config_Test.dsp: - * tests/Sigset_Ops_Test.dsp: - * tests/Simple_Message_Block_Test.dsp: - * tests/SOCK_Connector_Test.dsp: - * tests/SOCK_Send_Recv_Test.dsp: - * tests/SOCK_Test.dsp: - * tests/SPIPE_Test.dsp: - * tests/SString_Test.dsp: - * tests/SV_Shared_Memory_Test.dsp: - * tests/Svc_Handler_Test.dsp: - * tests/Task_Test.dsp: - * tests/Thread_Manager_Test.dsp: - * tests/Thread_Mutex_Test.dsp: - * tests/Thread_Pool_Reactor_Test.dsp: - * tests/Thread_Pool_Test.dsp: - * tests/Time_Service_Test.dsp: - * tests/Time_Value_Test.dsp: - * tests/Timeprobe_Test.dsp: - * tests/Timer_Queue_Test.dsp: - * tests/Tokens_Test.dsp: - * tests/TSS_Test.dsp: - * tests/Upgradeable_RW_Test.dsp: - * tests/UPIPE_SAP_Test.dsp: - Added "PharLap ETS Debug" configurations. - - * ACE-INSTALL.html: Added some info about the PharLap TNT ETS port. - -Thu Jun 24 14:10:20 1999 David L. Levine - - * bin/libsize.pl: use appropriate size command for all of - our cross-compile platforms. - -Thu Jun 24 14:00:27 1999 David L. Levine - - * ace/config-sunos5.7.h: with ghs only, undef ACE_HAS_PROC_FS - and ACE_HAS_PRUSAGE_T because the Sun's sys/procfs_isa - requires 64-bit ints. - -Thu Jun 24 13:53:53 1999 David L. Levine - - * ace/Proactor.cpp: added missing backslash to one of - the instantiation pragmas. - -Thu Jun 24 12:53:22 1999 Steve Huston - - * ace/OS.(h i): Added check for ACE_HAS_WINSOCK2 != 0 wherever - the check was only for ifdef ACE_HAS_WINSOCK2. Allows building on - Winsock 1.1. - - * ace/config-pharlap.h: New config file for use with PharLap TNT - Embedded ToolSuite. This is not really tested yet - that activity - continues. - -Thu Jun 24 07:05:17 1999 David L. Levine - - * ace/config-osf1-4.0.h,include/makeinclude/platform_osf1_4.0.GNU, - include/makeinclude/platform_osf1_cxx.GNU: use pragmas instead of - command line arguments to disable specific warning messages. - This cleans up the command line, and makes it easier to control - warning message suppression (because the compiler version is - available in __DECCXX_VER to the preprocessor.) - -Wed Jun 23 21:27:45 1999 David L. Levine - - * ACE-INSTALL.html: removed space from "resource requirements" - tag to avoid problems with web browers. - -Wed Jun 23 20:18:42 1999 Douglas C. Schmidt - - * ace/WFMO_Reactor: Added a no-op work_pending() - implementation until we figure out how to implement this. - - * ace/Reactor_Impl.h, - * ace/Reactor.{cpp,h}, - * ace/Select_Reactor_T.{h,cpp}: Added a work_pending() method - that just checks if there are I/O events "ready" for - dispatching, but doesn't actually dispatch event handlers. This - is needed for TAO's work_pending() API. Thanks to Irfan for - suggesting this. - -Wed Jun 23 15:27:48 1999 David L. Levine - - * bin/libsize.pl: added this script, which provide a size - breakdown of either the ACE or TAO libraries. - -Wed Jun 23 14:34:27 1999 David L. Levine - - * ACE-INSTALL.html: added link to ACE Library Size Breakdown - in System Resource Requirements discussion. - -Wed Jun 23 14:09:27 1999 Kirthika Parameswaran - - * ace/Caching_Strategies_T.cpp (ACE_LRU_Caching_Strategy): - Checked and modified the creation and deletion logic of the - caching utility object. - * ace/Cache_Map_Manager_T.cpp (~Cache_Map_Manager): - Added the close method call to avoid memory leaks. - * tests/run_test.pl: - * tests/run_test.bat: - Added Cache_Map_Manager_Test. - * tests/Cache_Map_Manager_Test: Removed extra comma. - * ace/Caching_Strategies_T.{h, i, cpp} - * ace/Cache_Map_Manager_T.{i,h,cpp} - * ace/Caching_Strategy_Utility_T.{h,i,cpp} - * ace/Cleanup_Strategies_T.{h, i,cpp} - * ace/Hash_Cache_Map_Manager_T.{h, i,cpp} - * ace/ace_dll.dsp: - Added above caching related files into the NT ace workspace. - -Wed Jun 23 10:09:06 1999 David L. Levine - - * ACE-INSTALL.html: updated System Resource requirements discussion. - All of ACE+TAO requires well over 1 Gb of disk now :-/. - -Wed Jun 23 00:03:31 1999 Douglas C. Schmidt - - * ace/SOCK_Dgram.cpp (ACE_SOCK_Dgram): Fixed an unused args - warning. Thanks to David for reporting this. - - * ace/Service_Config.h (ACE_Service_Config): Moved the - documentation for the open() method's "argv" parameters *to* the - open() method. Also clarified that by default we don't install - the "statically configured services" (such as ACE_Svc_Manager). - Thanks to Ian MacDonald for motivating this. - - * ace/OS.i (accept): Added a new workaround for platforms - like VxWorks that can't handle NULL addrs to accept(). Thanks - to James Hu and John Weald - for this fix. - - * ace/config-vxworks5.x.h: Added a new macro - ACE_HAS_BROKEN_ACCEPT_ADDR to work around VxWorks problems - with NULL addrs to accept(). - -Tue Jun 22 21:17:49 1999 Kirthika Parameswaran - - * tests/Cache_Map_Manager_Test.cpp: Tests the Cache_Map_Manager - as well as the Hash_Cache_Map_Manager which has additional - features of caching and purging of entries along with the map - properties. - * tests/Makefile: Added Cache_Map_Manager_Test.cpp - -Tue Jun 22 15:20:53 1999 David L. Levine - - * tests/Thread_Manager_Test.cpp (main): removed THR_DETACHED. - That seems to solve the libthread panic problem on Solaris, - even with group signalling enabled. Thanks to Carlos for - suggesting this. - -Tue Jun 22 15:11:34 1999 Matthew J Braun - - * ace/Containers_T.h,i - Added new next(T *&) methods to the ACE_DLList_Iterator - classes and marked the old versions as DEPRECATED. - -Tue Jun 22 13:40:22 1999 David L. Levine - - * docs/tutorials/*/Makefile: replace rm -f with $(RM). - -Tue Jun 22 13:07:19 1999 Carlos O'Ryan - - * tests/Message_Block_Test.cpp: - * websvcs/lib/URL_Addr.i: - * websvcs/lib/URL_Addr.cpp: - Removed more g++ -W warnings - -Tue Jun 22 11:12:42 1999 David L. Levine - - * ACE-INSTALL.html: added System Resource Requirements - section. Thanks to Hakan Kallberg - and Eric Mitchell for the - Linux swap space and -pipe removal suggestions. - -Tue Jun 22 07:45:59 1999 David L. Levine - - * ace/Event_Handler_T.i: fixed some occurrences of - ACE_INLINE that were after the function return type. - -Tue Jun 22 07:30:12 1999 David L. Levine - - * ace/Stats.cpp: fixed for ACE_LACKS_LONGLONG_T platforms. - (sample): replace return statement with an else branch, to - make it easier to see what the code is doing. - -Mon Jun 21 23:36:02 1999 Carlos O'Ryan - - * websvcs/lib/URL_Addr.cpp: - Fixed warnings about unused variables. - -Mon Jun 21 23:27:01 1999 Darrell Brunsch - - * ace/SString.h: Added ACE_TString typdef that is either a - ACE_CString or ACE_WString, depending on whether UNICODE - is defined. - -Mon Jun 21 23:22:46 1999 Douglas C. Schmidt - - * examples/Misc/test_trace.cpp: Improved this test so it will - work more effectively on single-threaded *and* multi-threaded - platforms. Thanks to Hao Ruan for reporting - this. Also fixed a warnng in this test caused by failure to - return a value on every return path. Thanks to David Levine for - reporting this. - -Mon Jun 21 14:17:22 1999 Carlos O'Ryan - - * ace/Stats.h: - * ace/Stats.cpp: - Added new class to keep latency and throughput statistics. - -Mon Jun 21 13:24:41 1999 David L. Levine - - * include/makeinclude/platform_freebsd.GNU,platform_linux.GNU, - platform_linux_lxpthread.GNU,platform_psosim_g++.GNU, - platform_qnx_neutrino.GNU,platform_sunos5_g++.GNU, - platform_vxworks5.x_g++.GNU: added -W to CFLAGS. -Wall - doesn't include the -W checks, at least with egcs 1.1.2. - -Mon Jun 21 10:18:01 1999 David L. Levine - - * ace/Makefile: moved FlReactor, Msg_WFMO_Reactor, TkReactor, - and XtReactor from OTHER to DEMUX_FILES because TAO uses - them in some configurations. They add negligible size - overhead when not used. Thanks to Nanbor for pointing this - out. - -Mon Jun 21 10:11:15 1999 Carlos O'Ryan - - * ace/Makefile: - The TP_Reactor is used by TAO, but was listed in the OTHER - component. Moved to the DEMUX component to make it always - available. Thanks to David Levine for pointing this out. - -Mon Jun 21 09:58:42 1999 Joe Hoffert - - * ace/QoS.{h,cpp}: Removed these files from ACE since they have a - lot of problems. Will add back later when they compile and are - tested. - -Mon Jun 21 08:40:14 1999 Steve Huston - - * examples/Connection/misc/Connection_Handler.cpp (handle_input): - Corrected signed/unsigned mismatch I accidentally put in last week. - - * ace/CORBA_macros.h: Added __HP_aCC to the compilers that need - special handling for throwing an exception from a value-returning - function. - - * include/makeinclude/platform_hpux_aCC.GNU: Added +DAportable - to CCFLAGS if no architecture specified. Added -z to LDFLAGS - to force SEGV on dereference 0 pointer. Added definition for - CPP_LOCATION to not use aCC - it displays warnings for unrecognized - #pragmas and this dirties the TAO builds. Thanks to Brian Wallis - for these ideas. - -Sat Jun 19 22:28:35 1999 Carlos O'Ryan - - * bin/auto_compile: - Updated the list of tests run every night. - -Sat Jun 19 18:15:48 1999 Carlos O'Ryan - - * ace/OS.h: - * ace/CORBA_macros.h: - The ACE_GUARD macros needed some blanks to work with a template - as the lock type parameter. - -Sat Jun 19 10:34:55 1999 Douglas C. Schmidt - - * ace/Acceptor.cpp, - ace/Connector.cpp: Modified the make_svc_handler() hook method - in these classes to set the Reactor of the newly created - SVC_HANDLER to the same reactor that the Acceptor or Connector - is using. Thanks to John Aughey for - this suggestion. - - * man/{html,man3}: Zapped the Ace_Export.* files since - they don't belong here. Thanks to Zoran Ivanovic - for reporting this. - -Fri Jun 18 20:49:09 1999 Irfan Pyarali - - * ace/Synch.cpp: Added template instantiations for - ACE_Write_Guard. - -Fri Jun 18 19:30:09 1999 Douglas C. Schmidt - - * ACE version 4.6.42 released. - -Fri Jun 18 18:49:39 1999 Carlos O'Ryan - - * tests/Makefile: - * tests/run_tests.psosim: - * tests/run_tests.sh: - * tests/run_tests.vxworks: - Disabled Map_Manager_Test, it does not work with too many - platforms and the features it tests are not used (yet). - -Fri Jun 18 16:54:43 1999 Irfan Pyarali - - * tests/Message_Queue_Test.cpp: - * tests/Message_Block_Test.cpp: - Removed template instantiations for ACE_Message_Queue_Iterator - and ACE_Message_Queue_Reverse_Iterator. They are already - available in the ace library. - - * ace/Service_Types.cpp: Added explicit instantiations for - ACE_Message_Queue_Reverse_Iterator. ACE_Message_Queue and - ACE_Message_Queue_Iterator were already there. This addition - will complete the set. - -Fri Jun 18 12:12:59 1999 Douglas C. Schmidt - - * ace/SOCK_Dgram: Added the first set of hooks to support - QoS-enabled data grams for Win2K GQoS. - -Fri Jun 18 11:37:31 1999 Nanbor Wang - - * *.{mdp,mak}: Removed all MSVC++ 4.x workspaces and makefiles. - We are no longer supporting this version of MSVC++. If you need - support for MSVC++ 4.x please contact Steve Huston - of Riverace to arrange a support - contract. - -Fri Jun 18 12:19:42 1999 Matthew J Braun - - * tests/DLList_Test.cpp: Removeed unnecessary explicit template - instantiation that mirrored ones in ace/Containers.cpp to fix - compile errors on VxWorks. Why this _ever_ worked, I don't - know... - -Fri Jun 18 11:37:31 1999 Nanbor Wang - - * ace/Service_Config.h (class ACE_Static_Svc_Descriptor): Changed - the type of from LPTCSTR to 'const ASYS_TCHAR*'. - -Thu Jun 17 12:46:30 1999 Douglas C. Schmidt - - * tests/Conn_Test.cpp: Fixed a problem with explicit template - instantiations so that this test will compile even if ACE isn't - built with threads. - - * netsvcs/lib/Server_Logging_Handler.cpp: Fixed the explicit - template instantiations so hopefully they'll work when ACE is - compiled without threads. Thanks to Carlos for reporting this. - - * ace/SOCK_Dgram_Mcast.cpp: We needed to modify the return values - of subscribe_i() so that we'd have the ability to differentiate - a "short-circuit" return on NT. Thanks to Marina for reporting - this. - - * ace/OS.h: Added an automatic test to check if we're running on - an EBCDIC character set, and if so, set - ACE_STANDARD_CHARACTER_SET_SIZE to 256 rather than 128. Thanks - to Jim Rogers for this suggestion. - - * performance-tests/TTCP/Makefile: Zapped the Orbix and ORBeline - directories from the Makefile. These are *way* out of date and - have been superceeded by the versions in - $TAO_ROOT/performance-tests/Thruput/. Thanks to Youzhong Liu - for reporting this. - -Thu Jun 17 12:59:24 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - Added accessors for the codeset translators. - -Thu Jun 17 00:33:57 1999 Nanbor Wang - - * include/makeinclude/platform_freebsd.GNU (VERSION): Applied the - patch to automatically detect FreeBSD version. Thanks to - Goldshtain Dmitry for providing the - patch. - - * bin/Process_Win32.pm (TimedWait): - Get and return the exit status from the waited process. - -Wed Jun 16 22:03:29 1999 Irfan Pyarali - - * ace/OS.h (ACE_OS): Removed ACE_WIDE_DL_TYPE and the wide char - versions of dlopen(), dlsym(), and dlerror(). Even Win32 - doesn't support them. - - Also changed the argument type of ACE_OS::dlopen(), - ACE_OS::dlsym(), ACE_DLL::ACE_DLL(), ACE_DLL::open(), and - ACE_DLL::symbol() from ACE_DL_TYPE to const char *. Now the - ACE_OS wrappers do the correct const cast before calling the OS - function. Note that since this change is only adding constness - to the argument, the change is backward compatible. - -Wed Jun 16 20:47:27 1999 Carlos O'Ryan - - * bin/Process_Win32.pm: - The wait time for a process seems to be in milliseconds. - -Wed Jun 16 20:03:41 1999 Steve Huston - - * ace/Containers_T.cpp: Qualify dllist_ with 'this->' to get the - template types looked up correctly. This is what fixes the pesky - future error 641 on HP-UX aC++. - - * ace/RB_Tree.i: Qualify node_ and tree_ with 'this->' to get the - template types looked up correctly. aC++ is really happy now, - and so is Steve :-) - -Wed Jun 16 18:50:38 1999 Carlos O'Ryan - - * ace/OS.i: - Fixed typos in single threaded code. - -Wed Jun 16 18:14:45 1999 Kirthika Parameswaran - - * ace/Cached_Connect_Strategy_T.{h, cpp}: Added ATTRIBUTES to - the template list for the Cached_Connect_Strategy_Ex class to - ward off g++ compiler errors. - -Wed Jun 16 15:54:08 1999 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - * ace/config-win32.h: - Auto-detect if we are using MSVC5.0 or MSVC6.0 and define the - ACE_HAS_WINSOCK_GQOS macro in that case. This macro is used in - the places where the QoS data structure of both compilers are - different. - -Mon Jun 14 22:52:48 1999 Kirthika Parameswaran - - * tests/Map_Manager_Test.cpp: Removed template instantiation - regarding ACE_Read_Mutex. Added template - instantiations for ACE_Pair and - ACE_Reference_Pair to make sunc++5.0 happy. - - * ace/Caching_Strategy_Utility_T.{h.cpp}: Removed math.h from the - include list since it caused problems when native exceptions were - enabled. - -Mon Jun 14 21:41:40 1999 Douglas C. Schmidt - - * ace/Connector.h: Added a comment to clarify that if - Connector::connect() fails the close() hook of the Svc_Handler - is called to prevent resource leaks. Thanks to V. Lakshmanan - for motivating this. - -Mon Jun 14 20:54:09 1999 Kirthika Parameswaran - - * ace/Synch.cpp: Declared template definitions for - ACE_Read_Mutex to get around compiler errors - while building $ACE_ROOT/tests. Thanks to Dr.Schmidt for - suggesting this. - -Mon Jun 14 19:33:04 1999 Douglas C. Schmidt - - * ace/SOCK_Acceptor.cpp (accept): Fixed a bizarre problem with - Win32 where it's imperative that the third parameter to - must be a NULL pointer if we want to ignore the client address. - - * ace/OS.i: Cleaned up warnings in join_leaf() and ioctl() due to - unused args. Thanks to Marina for reporting this. - -Mon Jun 14 15:56:27 1999 David L. Levine - - * ace/config-qnx-neutrino.h, - include/makeinclude/platform_qnx_neutrino.GNU: added config - files for QNX Neutrino. They support cross-compiling on a - QNX4 host for Neutrino target. Builds are almost (but not - completely) clean. - - * include/makeinclude/platform_qnx_neutrino.GNU: only - build static libs, because they seem to work better. Many - of the ACE tests pass with this configuration! (Some of - the usual suspects, such as Conn_Test, don't.) - - * ace/config-qnx-neutrino.h: don't need ACE_HAS_PENTIUM here, - because it's in config-g++-common.h. Removed - ACE_HAS_USING_KEYWORD, because g++ 2.8.1 doesn't support - namespaces. - -Mon Jun 14 14:33:29 1999 David L. Levine - - * tests/Reactor_Performance_Test.cpp (handle_input): removed - printout when result == 0. It happens when the client finishes - first, which I think is OK. - -Mon Jun 14 11:55:31 1999 Steve Huston - - * include/makeinclude/platform_aix4_g++.GNU: New platform file for AIX - 4.x using GNU compiler. Been tested w/ egcs 1.1.2. - - * include/makeinclude/platform_aix4_cset++.GNU: Make shared libs - correctly and without building the static one first. - Also, for cset++, disable warnings on AIX 4.3 to shut up the - 0-valued preprocessor warnings. This is not a great - long-term general solution, but it'll do the job. - - * include/makeinclude/wrapper_macros.GNU: - * include/makeinclude/rules.lib.GNU: On AIX, build shared lib w/o - requiring static one first. When building shared libs, also link - against them and install the proper files when done. The correct - files built for libfoo are: - libfoo.a: archive/static library - libfoo.so: shared library, but not set up for run-time linker. - This is the one loaded by ACE dynamic loading. - libfooshr.a: an archive library with libfoo.so as its only - member. This is what to link against when building - a program/library that uses libfoo. - - Silly? Uh-huh. But that's life in AIX land. I tried to get things - building/running clean using the run-time linker (-brtl) but had - no end of trouble. And, since no other libs in /usr/lib want to - do it that way either, it's like this. - -Mon Jun 14 09:58:02 1999 Douglas C. Schmidt - - * ace/OS.i: Added ACE_UNUSED_ARG() macros for all the non-WINSOCK2 - cases in the ACE_Flow_Spec and ACE_QoS methods. Thanks to David - for reporting this. - - * ace/OS.i: Moved the definition of ACE_Errno_Guard's methods to - earlier in the file to avoid problems with inline ordering. - Thanks to David for reporting this. - - * ACE-INSTALL.html: Updated Barry Hoggard's CORBA page URL. - -Mon Jun 14 07:17:23 1999 David L. Levine - - * docs/ACE-guidelines.html: fixed typo: exceptions. - -Sun Jun 13 14:22:54 1999 Douglas C. Schmidt - - * ace/LSOCK_Acceptor.cpp: Rewrote the accept() method to use the - same new technique that's used in ACE_SOCK_Acceptor::accept(). - This is necessary since there's no longer a shared_accept(). - - * ace/SOCK_Acceptor: Removed shared_accept() since it's been split - into two parts to make the QoS features easier to maintain. - - * ace/SOCK_Acceptor: Added the new ACE_Accept_QoS_Params parameter - to the ACE_SOCK_Acceptor::accept(). Also created two new - private methods, shared_accept_start() and - shared_accept_finish(), that factor out common code. - - * ace/SOCK_Connector: Added the new ACE_Connect_QoS_Params - parameter to ACE_SOCK_Connector::connect(). Also created two - new private methods, shared_connect_start() and - shared_connect_finish(), that factor out common code. - - * ace/SOCK_Connector.cpp: Cleaned up the logic that checks for - various types of errors and updated the code to use the new - ACE_Errno_Guard features. - - * ace/OS.h: Added an equality and in-equality operator for - ACE_Errno_Guard and moved all the methods into OS.i rather than - OS.h. Also added an ACE_Export to the ACE_Errno_Guard class so - that it can be used outside of the ACE library. - - * ace/OS.h: For Win32, added support for the WinSock2 QoS - functions WSAAccept(), WSAConnect(), WSAJoinLeaf(), and - WSAIoctl(). - - * ace/OS.h: For Win32, added thin wrappers ACE_Flow_Spec and - ACE_QoS that encapsulate the WinSock2 FLOWSPEC and QOS structs, - respectively. - - * ace/OS.h: For Win32, added an implicit conversion operator from - iovec to WSABUF since they are structurally equivalent. - -Sun Jun 13 14:22:54 1999 Douglas C. Schmidt - - * bin/README.html: Updated the information about the ACE - documentation tools to be more helpful. - -Fri Jun 11 20:04:37 1999 Carlos O'Ryan - - * bin/Process_Unix.pm: - Fixed problems on TimedWait(). - -Fri Jun 11 15:28:44 1999 Douglas C. Schmidt - - * ace/OS.h: Need to add #include before - since pthread.h doesn't include signal.h on SunOS 5.7. Thanks - to Rick Weisner for reporting this. - - * ace/OS: ACE_OS::memchr() should return a const void * rather - than a void *. Thanks to Rick Weisner - for reporting this. - - * ace/Dirent.i: Don't call closedir() on a NULL dirp because some - platforms (such as SunOS 5.7) will segfault! Thanks to Tom - Arbuckle for pointing - this out. - -Fri Jun 11 14:47:47 1999 Carlos O'Ryan - - * bin/auto_compile: Does not compile all the directories in TAO, - because it takes too much space (and time). Run several more - tests in TAO that are stable. Improve output. - - * ace/Log_Msg.cpp: Use ACE_HAS_THR_C_DEST for TSS "destructors", - not ACE_HAS_THR_C_FUNC. - - * bin/ACEutils.pm: - * bin/Process_Unix.pm: - * bin/Process_Win32.pm: Added new routines to wait for a process - with a timeout, ditto for the ACE::waitforfile() routine. They - can be used to write more reliable test drivers. - -Fri Jun 11 14:40:49 1999 David L. Levine - - * bin/create_ace_build: run the directory mode value through eval, - to convert it from octal to decimal, if necessary. Thanks to - Russ Noseworthy for providing the patch. - - * include/makeinclude/platform_sunos5_sunc++.GNU: only set - TEMPLATE_REPOSITORY for Sun C++ 4.2. 5.0 doesn't need it. - Thanks to Dennis C. De Mars for - reporting this. - - * tests/Reactor_Performance_Test.cpp (main): return error status - from run_event_loop () call. And, added a few ACE_ERROR - printouts. Thanks to Steve for mentioned this. - - * ace/config-sunos5.5.h: properly reverted all the changes of - today. The comments are more helpful this way. - - * include/makeinclude/platform_linux_lxpthread.GNU: changed - PLATFORM_AIO_SUPPORT to use := instead of =, so that it only - invokes the shell once. Thanks to Lothar Werzinger - for suggesting this. - -Fri Jun 11 12:10:00 1999 Chris Gill - - * tests/RB_Tree_Test.{cpp, h (new)}: factored out class template - declaration into a .h file to make AIX C++ happy. - -Thu Jun 10 23:11:36 1999 Kirthika Parameswaran - - * ace/Cache_Map_Manager_T.{h, i, cpp}: Added Iterator - implementations to the template parameters to be able to build - using the g++ compiler. Also removed unnecessary HASH_KEY and - COMPARE_KEYS from the template list. - - * ace/Hash_Cache_Map_Manager_T.{h, i, cpp}: Made appropriate - changes to support changes made to Cache_Map_Manager. - - * ace/Caching_Strategies_T.{h, i, cpp}: Added an overloaded - clear_cache method which allows the user to specify the total - number of entries in the cache. Also added the - Caching_Strategy_Utility parameter which decouples the actual - purging from the caching strategy. - - * ace/Caching_Strategy_Utility.{h,i,cpp}: Added a Null version of - the utility to be used with the Null strategy. - - * ace/Cleanup_Strategies_T.{h,i,cpp}: Added the ACE_UNSED_ARGS - macro to ward of g++ warnings. - - * tests/Map_Manager_Test.cpp: Added performance tests for the - Cache_Map_Manager and the Hash_Cache_Map_Manager. - -Thu Jun 10 20:29:00 1999 Chris Gill - - * ace/RB_Tree.h: Made constructors for iterator base class - protected instead of protected, so the the base class can only - be constructed by the derived forward and reverse iterator - classes. Thanks to Matt Braun for pointing this out. - - * tests/RB_Tree_Test.cpp: Major overhaul of the test to use a test - class template that encapsulates the test details and makes the - code much more readable. Then, the main program merely - instantiates a test for each of the four possible combinations - of key/item type parameterization over int and const char *, and - calls the run_test () method of each test instance. - -Thu Jun 10 12:44:22 1999 Steve Huston - - * tests/UPIPE_SAP_Test.cpp: Disable for Win32 if !ACE_HAS_WINNT4. - The test relies on ACE_SPIPE_Acceptor which requires NT4 to - work. - -Thu Jun 10 12:47:52 1999 David L. Levine - - * ace/config-linux-lxpthreads.h: removed ACE_HAS_AIO_CALLS. It's - now enabled in the platform_macros.GNU file: - - * include/makeinclude/platform_linux_lxpthread.GNU: added - automatic detection of AIO support, based on existence of - /usr/lib/librt.so. - - * include/makeinclude/platform_linux_lxpthread.GNU: add -lrt to - LIBS only if $(PLATFORM_AIO_SUPPORT) is equal to - -DACE_HAS_AIO_CALLS. - - Thanks to Jake Hamby for reporting that not - all Linux platforms have AIO support. - -Thu Jun 10 10:17:08 1999 David L. Levine - - * ace/config-sunos5.5.h: with Sun C++ 5.0, #define - _RWSTD_NO_EXCEPTIONS 1 if exceptions are not enabled. This - avoids a warning about throw expressions being ignored with - -noex. See /opt/SUNWspro_5.0/SC5.0/include/CC/stdcomp.h for - more information. - - * ace/os-patches/vxworks-5.1.txt,ACE-INSTALL.html: added these - notes for using ACE with VxWorks 5.1. - - * docs/ACE-guidelines.html: avoid source code filenames that - include "Error". Avoid #include . - -Wed Jun 9 21:45:24 1999 Douglas C. Schmidt - - * tests/Svc_Handler_Test.cpp (main): Revised the test a bit to - make it more clear what's going on. - - * ace/Svc_Handler.cpp: Fixed a typo in flush() -- we need to - update the temp pointer with temp->cont() *not* entry->cont(). - - * ace/Svc_Handler.cpp (dump): Fixed a typo -- I wasn't comparing - the pointer to 0, I was comparing the ACE_Time_Value! - -Wed Jun 9 21:10:00 1999 Chris Gill - - * ace/config-psos-diab-ppc.h: added - ACE_HAS_NONCONST_SELECT_TIMEVAL - - * tests/RB_Tree_Test.cpp: fixed constness issues revealed by - SunC++ 5.0, added return value assertions for insert calls, - added typedefs. - -Wed Jun 9 20:40:50 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: Added new methods to support message - reassembly in GIOP 1.1 - -Wed Jun 9 15:32:37 1999 Douglas C. Schmidt - - * ace/Message_Queue_T: Added a lock() accessor method so that - other components can access the lock used by a Message Queue. - - * ace/Svc_Handler.cpp: Added better support for timeout handling - for the ACE_Buffered_Svc_Handler. - - * ace/Svc_Handler: Split the buffering portion of ACE_Svc_Handler - off into a separate class called ACE_Buffered_Svc_Handler to - avoid adding extra space and complexity to the existing - ACE_Svc_Handler. Thanks to Irfan for suggesting this, as well - as also suggesting ways to improve the performance by caching - the current size of the buffer. - - * ace/OS.h: Added a patch to work around some problems with macros - for USYNCH_THREAD. Thanks to David Levine and Russ Noseworthy - for this. - - * examples/Threads/task_five.cpp (main): Improved the form and - content of this example a bit. - - * include/makeinclude/platform_sunos5_sunc++.GNU, - * include/makeinclude/platform_sunos5_g++.GNU, - * include/makeinclude/platform_irix6.x_g++.GNU, - * include/makeinclude/platform_linux_lxpthread.GNU, - * include/makeinclude/platform_irix6.x_sgic++.GNU: - Added support to make it easier to override various settings - in platform_macros files. Thanks to Dave Meyer - for contributing this. - - * ace/SPIPE_Stream: Added sendv(), sendv_n(), and recvv_n() - methods to SPIPE_Stream. Thank to Carlos for pointing this out. - - * ace/config-mvs.h: Changed the size of the ACE_SIZEOF_DOUBLE and - ACE_SIZEOF_LONG_DOUBLE from 4 and to 8 and 16, respectively. - Thanks to Jim Rogers for reporting this. - - * ace/config-mvs.h: Added ACE_HAS_NONCONST_SELECT_TIMEVAL on the - advice of Jim Rogers . - - * ace/OS.h (class ACE_Errno_Guard): Propagate the return value of - the assignment operator to allow chaining. Thanks to Jeff for - reporting this. - - * ace/OS.i: Fixed a bizzarre problem with lower-case ace_os::. - Thanks to Andy for pointing this out. - - * ace/Svc_Conf.y: Don't enable YYDEBUG by default so that we can - save some space in the generated code. - - * ace/OS: Added several more uses of ACE_Errno_Guard, which has - been enhanced to support assignment. Thanks to Irfan for - suggesting this. - - * tests/Svc_Handler_Test.cpp: Added a simple test for the new - buffering feature in ACE_Svc_Handler. - - * ace/Strategies.cpp: Added an explicit template instantiation for - ACE_Message_Queue_Iterator since this is now - used in ACE_Svc_Handler. - - * ace/Svc_Handler: Added a "buffering" feature to the - ACE_Svc_Handler. This feature makes it possible to queue up - ACE_Message_Blocks in an ACE_Message_Queue until (1) the queue - is "full" or (2) a period of time elapses, at which point the - queue is "flushed" via sendv_n() to the peer. - -Wed Jun 9 12:23:30 1999 Jeff Parsons - - * tests/version_tests/version_tests.dsw: - * tests/run_tests.bat: - * tests/run_tests.psosim: - * tests/run_tests.vxworks: - Added Svc_Handler_Test to these. - - * tests/tests.dsw: - Added Svc_Handler_Test.dsp (created and checked in by - Nanbor) to the workspace. - -Wed Jun 9 10:46:07 1999 Carlos O'Ryan - - * ace/Strategies.cpp: - Moved template instantiations to ace/Service_Types.cpp - - * ace/Service_Types.cpp: - Added missing template instantiations for - ACE_Message_Queue_Iterator<> - - * ace/Svc_Handler.cpp (flush): - Removed extra characters and the end of a #endif - Fixed warning about unused variable - Use right iterator for the Message_Queue - -Wed Jun 09 10:11:29 1999 David L. Levine - - * ace/config-g++-common.h: added #define of - ACE_NEW_THROWS_EXCEPTIONS, with egcs if ACE_HAS_EXCEPTIONS is - #defined. That allows ACE's New_Fail_Test to pass. Thanks - to Jake Hamby for providing the fix. - -Tue Jun 8 22:44:18 1999 Douglas C. Schmidt - - * Hacked BYACC to generate a parser that doesn't have any - incorrect const char *'s. This clears the last major const - issue in libACE. - -Tue Jun 8 20:46:05 1999 Matthew J Braun - - * ace/Functor.i,h: Migrated ACE_Hash template specializations - from native types to ACE types (ACE_UINT16, etc). This was - necessary since native types are not portable. - -Tue Jun 8 15:47:06 1999 Douglas C. Schmidt - - * ace: Updated most of the places in ACE that can benefit from the - new ACE_Errno_Guard class. - - * ace/OS.h: Added a new ACE_Errno_Guard class that improves - performance when thread-specific errno must be saved/restored in - a block of code. Thanks to Serge Kolgan for - motivating this and to Rick Weisner - for explaining the technique to Serge. - - * ace/Env_Value_T.h: Added a new ACE_Convert() function that works - for const char *'s. Thanks to David for reporting this. - -Tue Jun 08 18:08:41 1999 Steve Huston - - * ace/OS.h: Added new overridable macro, ACE_LOCALHOST. This allows - overriding of the string used to do a loopback IP socket to the - local host. Some systems (e.g. PharLap ETS) don't have a host table - out of the box, and require an IP address string. - - * ace/Pipe.cpp: Use the new ACE_LOCALHOST macro instead of a hard - "localhost" when using a socket to emulate a pipe. Thanks to - Bruce Trask for working to get this - ironed out for PharLap ETS. - - * README: Added Bruce Trask to the Hall of Fame ;-) - - * tests/SOCK_Connector_Test.cpp: Check for failed host lookup - before trying to connect. Changed the way sethostent is done on - AIX 4.3 to work around an apparent bug in AIX 4.3. - -Tue Jun 08 13:46:38 1999 Nanbor Wang - - * ace/OS.h (wmain): Added a new macro to tweak the wchat_t version - of main program entry point to create the non-static - Object_Manager. This is only enabled if UNICODE and ACE_WIN32 - is defined (although you can also use wmain under non-UNICODE - environment). - -Mon Jun 07 14:34:53 1999 Nanbor Wang - - * ace/CORBA_macros.h: The member function for dumping - TAO_Exception is changed to _tao_print_exception. - -Tue Jun 08 14:44:07 1999 David L. Levine - - * tests/Thread_Manager_Test.cpp (main): on Sun only, added 5 - second sleep before the "main thread finished" printout. It - might help (but certainly doesn't prevent) avoid an occasional - thread lib panic on SunOS 5.5 through 5.7. - -Tue Jun 08 14:01:51 1999 David L. Levine - - * ACE version 4.6.41 released. - -Tue Jun 8 12:42:56 1999 Douglas C. Schmidt - - * Fixed lots of brokens URL links. Thanks to Eric S Rosenthal - for reporting these. - -Mon Jun 7 17:09:56 1999 Douglas C. Schmidt - - * examples/Naming/test_multiple_contexts.cpp (main): Added a cast - to resolve const problems. Thanks to David for reporting this. - - * examples/Naming/test_writers.cpp (main): Fixed a typo. Thanks - to David for reporting this. - -Mon Jun 7 14:21:48 1999 Kirthika Parameswaran - - * tests/DLL_Test.cpp (main): ANSI C++ spec doesnt allow void * to - be typecasted to a function_pointer. Hence made changes to - remove the warning due to this. Thanks to Nanbor - for pointing it out. - -Mon Jun 7 14:12:02 1999 Nanbor Wang - - * ACE-INSTALL.html: Added a general section explaining the order - of user defined macros and platform config file. Thanks to - Stephen E Blake for pointing - this out. - -Mon Jun 07 10:55:12 1999 David L. Levine - - * ace/config-osf1-4.0.h: added #define ACE_HAS_BROKEN_T_ERROR - to permit building again. Thanks to Doug for this fix. - -Mon Jun 7 12:35:17 1999 Douglas C. Schmidt - - * examples/Service_Configurator/IPC-tests/client: Fixed some more - warnings related to const-correctness. I believe that ACE is - now just about completely const-correct. - - * examples/Service_Configurator/Misc/main.cpp (main): Cast to - (ASYS_TCHAR **) rather than (ASYS_THCAR *[]). Thanks to David - for reporting this. - - * examples/IPC_SAP/DEV_SAP/writer/writer.cpp (main): Fixed a stray - comma. Thanks to David for reporting this. - - * tests/Hash_Map_Manager_Test.cpp: Changed the use of ASYS_TCHAR * - to LPCTSTR to ensure const-correctness. - - * netsvcs/lib: Reformatted all the *.h files to conform to the ACE - programming guidelines. - -Sun Jun 6 22:02:43 1999 Douglas C. Schmidt - - * ace/OS.i (t_error): Fixed the broken t_error() usage on SunOS - 5.5 and 5.6... - - * ace/README: Added a new macro called ACE_HAS_BROKEN_T_ERROR to - workaround the frigging broken prototype for t_error() on - Solaris 2.5. Note that this macro is required for SunOS 2.5 and - 2.6, but not SunOS 2.7 (thank goodness). - - * Fixed gazillions of incorrect usages of char * (which should - have been const char *) throughout ACE. - - * netsvcs/clients/Tokens: Fixed some const char * inconsistencies. - - * netsvcs/lib/Name_Handler.h: Fixed another inconsistent use of - char * that should have been const char *. - - * ace/Service_Config.h: Fixed a const incorrectness in the - ACE_Static_Svc_Descriptor. - - * ace/Process.h (ACE_Process_Options): The parameter type of - command_line() should be LPCTSTR argv[] *not* LPTSTR argv[]. - This fix should be ok as a further extension to what Carlos did - below. - -Sun Jun 06 20:33:00 1999 Carlos O'Ryan - - * ace/SString.h: - Added missing ACE_Export macro - -Sun Jun 6 20:34:40 1999 Carlos O'Ryan - - * ace/Synch.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Queue.cpp: - * ace/Select_Reactor.cpp: - Moved explicit template instantiations around, now ACE compiles - and links with Sun/CC and inlining enabled. TAO does not. - -Sun Jun 6 18:05:48 1999 Carlos O'Ryan - - * ace/Process.h: - * ace/Process.cpp: - Added const-correct version of the command_line() method, in the - future we should remove the non-const version, but I don't feel - like breaking an interface today. - - -Sun Jun 06 09:08:48 1999 David L. Levine - - * PROBLEM-REPORT-FORM: added requests to not send - as attachment, or tar'red, compressed, and/or - uuencoded, or with line lengths >= 80 characters. - -Sun Jun 06 08:08:11 1999 David L. Levine - - * ace/Functor.{h,i} (ACE_Hash::operator ()): - conditionally compile only if ACE_SIZEOF_LONG is not 8, - to avoid conflict with ACE_HASH on 64-bit - platforms (alphas). - -Sat Jun 5 23:34:21 1999 Douglas C. Schmidt - - * ace/Containers_T: Changed all uses of "index" to "slot" to avoid - conflicts with broken C++ compilers that define macros named - "index." - -Sat Jun 5 22:57:31 1999 Carlos O'Ryan - - * ace/OS.h: - Added new macro (ACE_TEMPLATE_SPECIALIZATION) to handle the - differences between compilers supporting the standard way to - specialize a template (i.e. template<> class Foo) vs. the - old style (just saying class Foo). - Also added new macro ACE_HAS_STD_TEMPLATE_SPECIALIZATION that - platforms must define if they want the new style. - - * ace/Filecache.cpp: - * ace/Functor.h: - Use the new ACE_TEMPLATE_SPECIALIZATION macro - - * ace/config-sunos5.5.h: - Define the new ACE_HAS_STD_TEMPLATE_SPECIALIZATION for Sun/CC - 5.0 - - * ACE-INSTALL.html: - Added some notes about our success with Sun/CC 5.0 - -Sat Jun 5 16:48:47 1999 Carlos O'Ryan - - * ace/config-irix6.x-common.h - * ace/config-irix6.x-sgic++-nothreads.h - * ace/config-irix6.x-sgic++.h - * include/makeinclude/platform_irix6.x-sgic++.GNU - * include/makeinclude/platform_irix6.x_common.GNU - * include/makeinclude/platform_irix6.x_g++.GNU - * include/makeinclude/platform_irix6.x_kcc.GNU - * include/makeinclude/platform_irix6.x_sgic++.GNU: On IRIX 6.5 we - must not define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS, thanks to - Bob Laferriere for pointing this out. - Created a new platform_*.GNU file that auto detects the IRIX - version (couldn't find a pre-processor macro to do it); also - renamed the platform_irix6.x-sgic++.GNU file to use underscore - instead of '-'; that way it is more consistent with the other - files. - -Sat Jun 5 13:29:07 1999 Douglas C. Schmidt - - * ace/Codeset_IBM1047: Minor reformatting to conform to ACE - programming guidelines. - -Sat Jun 5 13:00:46 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - New methods added to the InputCDR class to simplify the process - of reading a buffer from a socket or file. - -Fri Jun 4 23:52:19 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - Added support for codeset translators. - Many thanks to Jim Rogers for providing - these fixes. - - * ace/Makefile: - * ace/Codeset_IBM1047.h: - * ace/Codeset_IBM1047.cpp: - A pair of codeset translators between IBM1047 (aka EBCDIC) and - ISO8859-1 (aka ISO-Latin-1) - - * ace/config-mvs.h: - Define an ACE_MVS macro - -Fri Jun 4 15:23:18 1999 Kirthika Parameswaran - - * ace/Cached_Connect_Strategy_T.{h,i,cpp}: Removed common code by - making Cached_Connect_Strategy_Ex derive from - Cached_Connect_Strategy class. - -Fri Jun 04 09:59:58 1999 Irfan Pyarali - - * docs/tutorials/tutorials.dsw: Fixed "_" to "-". Thanks to Tom - Bradley for pointing - out this problem. - -Fri Jun 4 09:02:35 1999 Aniruddha Gokhale - - * ace/POSIX_Asynch_IO.cpp: Fixed a syntax error. There were two - consecutive commas in the ACE_DEBUG statement which were causing - syntax errors while compiling. - -Fri Jun 4 00:28:07 1999 Alexander Babu Arulanthu - - * ace/POSIX_Asynch_IO.cpp: Fixed the Linux egcs warning. - -Thu Jun 3 17:05:36 1999 Kirthika Parameswaran - - * ace/Cached_Connect_Strategy_T.h - * ace/Cached_Connect_Strategy_T.i - * ace/Cached_Connect_Strategy_T.cpp - - Caching connection strategy used by the Strategy Connector. - - * ace/Cache_Map_Manager_T.h - * ace/Cache_Map_Manager_T.i - * ace/Cache_Map_Manager_T.cpp - - Map Manager which performs caching depending on the caching - strategy used. - - * ace/Hash_Cache_Map_Manager_T.h - * ace/Hash_Cache_Map_Manager_T.i - * ace/Hash_Cache_Map_Manager_T.cpp - - Hash_Map used as a specialised form of the Cache Map. - - * ace/Caching_Strategies_T.h - * ace/Caching_Strategies_T.i - * ace/Caching_Strategies_T.cpp - - Strategies used for caching purposes, example: Least Recently - Used. - - * ace/Caching_Strategy_Utility_T.h - * ace/Caching_Strategy_Utility_T.i - * ace/Caching_Strategy_Utility_T.cpp - - Helper class for the caching strategy classes which does the - purging of entries. - - * ace/Cleanup_Strategies_T.h - * ace/Cleanup_Strategies_T.i - * ace/Cleanup_Strategies_T.cpp - - Strategy which deals with destruction and cleanup in general. - - * ace/Makefile - - Added the above under the TEMPLATE_FILES. - - * examples/Web_Crawler/Optimal_Cache_Map_Manager_T.h - * examples/Web_Crawler/Optimal_Cache_Map_Manager_T.i - * examples/Web_Crawler/Optimal_Cache_Map_Manager_T.cpp - * examples/Web_Crawler/Cached_Connect_Strategy_T.h - * examples/Web_Crawler/Cached_Connect_Strategy_T.i - * examples/Web_Crawler/Cached_Connect_Strategy_T.cpp - * examples/Web_Crawler/Caching_Strategies_T.h - * examples/Web_Crawler/Caching_Strategies_T.i - * examples/Web_Crawler/Caching_Strategies_T.cpp - - Removed these files and added them to the ace library itself. - - * examples/Web_Crawler/Command_Processor.cpp - * examples/Web_Crawler/Command_Processor.h - * examples/Web_Crawler/HTTP_URL.cpp - * examples/Web_Crawler/HTTP_URL.h - * examples/Web_Crawler/Iterators.h - * examples/Web_Crawler/Makefile - * examples/Web_Crawler/Mem_Map_Stream.cpp - * 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.cpp - * examples/Web_Crawler/URL_Visitor.h - * examples/Web_Crawler/URL_Visitor_Factory.h - * examples/Web_Crawler/Web_Crawler.h - * examples/Web_Crawler/main.cpp - - Changed to include files pertaining to Caching and Connection - management from ace library. - -Thu Jun 03 15:57:43 1999 Irfan Pyarali - - * ace/Strategies_T (ACE_Cached_Connect_Strategy): Allowed the user - to pass in a mutex. This allows the user to pass in a - preconfigured mutex of his/her liking. Since the parameters - default appropriately, no existing code should break. - - * ace/Functor: Changed ACE_Hash specialization - to ACE_Hash. - -Thu Jun 3 10:36:35 Matthew J Braun - - * ace/Functor.i - * ace/Functor.h: - Added ACE_Hash . It truncates the ULongLong - to a ULong and returns it. Nothing major... - -Wed Jun 2 17:50:23 1999 Carlos O'Ryan - - * include/makeinclude/platform_mvs.GNU: - Debugging info was not generated on the C++ files. - The -+ flag should be added to CPPFLAGS using += - Thanks to Jim Rogers for these fixes. - -Wed Jun 02 16:11:34 1999 Nanbor Wang - - * ace/TTY_IO.cpp (control): Commented out odd baud rates (56000, - 128000, 256000) which don't seem to be supported on FreeBSD. - -Wed Jun 02 00:07:44 1999 - - * tao/test_cancel.dsp - * tao/post_completions. - * tao/test_end_event_lo - * tao/test_multiple_loo - * tao/test_proactor.dsp - * tao/test_proactor.dsw - * tao/test_timeout.dsp - - * examples/Reactor/Proactor/test_cancel.cpp: - * examples/Reactor/Proactor/README: - * examples/Reactor/Proactor/Makefile: - - Related to ChangeLog : Tue Jun 1 16:48:58 1999 Alexander Babu - Arulanthu - -Tue Jun 1 21:44:05 1999 Carlos O'Ryan - - * include/makeinclude/platform_linux_lxpthread.GNU: - Added the rt library to the command line, ACE uses aynchronous - I/O by default on linux. - -Tue Jun 1 16:48:58 1999 Alexander Babu Arulanthu - - Ported to POSIX platforms based - on API. Made the return values consistent in both - WIN32 and POSIX platforms as follows. - - All completion notifications for the I/O operations will occur - normally. - - = Return Values: - - -1 : Operation failed. (can get only in POSIX). - 0 : All the operations were cancelled. - 1 : All the operations were already finished in this - handle. Unable to cancel them. - 2 : Atleast one of the requested operations cannot be - cancelled. - - * ace/Asynch_IO.cpp - * ace/Asynch_IO.h - * ace/POSIX_Asynch_IO.cpp - * ace/POSIX_Asynch_IO.h - * ace/POSIX_Proactor.h - * ace/WIN32_Asynch_IO.cpp: - * ace/POSIX_Proactor.cpp: - - * ace/config-linux-lxpthreads.h: Enabled the ACE_HAS_AIO_CALLS - flag for this platform. - - -Tue Jun 1 15:02:34 1999 Carlos O'Ryan - - * ace/Connector.h: - Documented the new connect() method - -Tue Jun 01 11:18:03 1999 - - * examples/Reactor/Proactor/test_end_event_loop.cpp: - * tao/post_completions.cpp - * tao/test_end_event_loop.cpp - * tao/test_end_event_loop.dsp - * tao/test_proactor.dsw - Fixed the link problems. - -Tue Jun 1 09:57:42 1999 Douglas C. Schmidt - - * ace/TTY_IO.cpp (control), - * ace/config-freebsd.h, - ace/config-freebsd-pthread.h: Attached is a patch that will - allow the ACE_TTY_IO class to work with FreeBSD tty devices. - Thanks to John Aughey for contributing these. - - * ACE-INSTALL.html: Updated the list of platforms that ACE is - supported on. - -Tue Jun 01 10:00:29 1999 David L. Levine - - * ACE-INSTALL.html: updated Sun C++ and DU versions in fully - supported platforms list. - -Mon May 31 22:45:18 1999 David L. Levine - - * ace/config-lynxos.h: added ACE_HAS_GPERF. - -Mon May 31 16:28:27 1999 Jeff Parsons - - * ace/CDR_Stream.h: - Added and updated some comments. - -Mon May 31 16:13:21 1999 David L. Levine - - * ace/Makefile: if ACE_COMPONENTS is equal to FOR_TAO, - override it with the proper component values. The - override allows it to be set on the command line, e.g., - make ACE_COMPONENTS=FOR_TAO. Thanks to Carlos for - reporting this. - -Mon May 31 14:00:21 1999 Steve Huston - - * ace/RB_Tree.i: Reverted changes from May 21. It broke the LynxOS - build of tests/RB_Tree_Test. - -Mon May 31 11:51:03 1999 Douglas C. Schmidt - - * ace/CORBA_Handler.h: Updated the comments to clarify how to use - this class. Thanks to Ram Vishnuvajjala - for motivating this. - - * ace/Service_Config: Added a static variable called is_initialized - that keeps track of whether the is already - initialized. If it is, we can't allow to be called - since it's not reentrant... - -Sun May 30 14:08:48 1999 Ossama Othman - - * ace/Makefile: - * ace/Vector.{h,i,cpp}: - * tests/Makefile: - * tests/Vector_Test.cpp: Removed the ACE_Vector implementation - from the distribution. - -Sat May 29 14:14:37 1999 Ossama Othman - - * ace/Vector.{h,i,cpp}: Added STL Vector-style insert() and - erase() methods. Also added a new constructor that creates an - ACE_Vector from a specified range of iterators. ACE_Vector - class is now Purify clean (i.e. fixed any and all memory leaks). - - * tests/Vector_Test.cpp: Added tests for the newly added - ACE_Vector::insert() and ACE_Vector::erase() methods. - -Fri May 28 20:19:50 1999 Ossama Othman - - * ace/Vector.{h,i,cpp}, - tests/Vector_Test.cpp: Implemented an ACE_Vector class based on - the ACE_Array class. It is not derived from it, however. The - ACE_Vector class provides an STL Vector-like interface. The - Vector_Test tests the important features of the ACE_Vector class - and sends output to `logs/Vector_Test.log'. - - * ace/Makefile, - tests/Makefile: Added ACE_Vector related files to the makefiles - and updated the dependencies. - -Thu May 27 15:50:17 1999 Ossama Othman - - * ace/UNIX_Addr.cpp (set), Explicitly set the sun_family to - AF_UNIX, otherwise it will be zero by a previous call to - memset(). AF_UNSPEC, which is zero, is what the call to - memset() cause the sun_family to be. - -Wed May 26 01:46:27 1999 Nanbor Wang - - * include/makeinclude/platform_freebsd.GNU: - * include/makeinclude/platform_freebsd_pthread.GNU: Consolidated - platform macro files for FreeBSD. - - * ace/config-freebsd-pthread.h: - * ace/config-freebsd.h: Added ACE_HAS_NONCONST_SELECT_TIMEVAL. - -Tue May 25 21:38:40 1999 Carlos O'Ryan - - * ace/UNIX_Addr.cpp: The default constructor was not setting the - address family to AF_UNIX. Now that we do so we can let the OS - select a ephemeral UNIX domain endpoint for us. - -Tue May 25 19:20:15 1999 Steve Huston - - * tests/run_tests.(sh bat): Added SOCK_Send_Recv_Test. - -Tue May 25 16:54:41 1999 Jeff Parsons - - * tests/SOCK_Send_Recv_Test.cpp: - Fixed a signed/unsigned mismatch warning and - changed several uses of static_cast to - reinterpret_cast. This is a belated entry, I put it - first in TAO/ChangeLog by mistake. - -Tue May 25 15:19:06 1999 David L. Levine - - * include/makeinclude/platform_sunos5_ghs.GNU: added - -Xleaveg7 to CFLAGS with threads=1. It's necessary - to avoid execution problems in multithreaded programs. - Thanks to Stefaan Kiebooms for providing - this fix. - -Tue May 25 13:40:10 1999 Ossama Othman - - * ace/LSOCK_Acceptor.cpp (get_local_addr): - - Only the base class members of ACE_UNIX_Addr were being copied - since the assignment lacked a dynamic cast. Thanks to Carlos and - Irfan for clarifying this. - -Tue May 25 11:41:28 1999 Irfan Pyarali - - * ace/Timeprobe_T.h (class ACE_Timeprobe): Moved the default size - from Timeprobe_T.h to OS.h, where it can easily be redefined by - the user. - -Tue May 25 07:37:47 1999 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU: removed suppression - of warning 839: no_corresponding_delete. - -Mon May 24 14:04:11 1999 Steve Huston - - * tests/SOCK_Send_Recv_Test.cpp: New test to exercise ACE_SOCK send - and receive variations. It concentrates on recvv/sendv-like things - now in order to shake out Winsock 1.1 issues. To be complete, it - should be added to over time. - - * tests/Makefile: - * tests/version_tests/{SOCK_Send_Recv_Test.dsp, version_tests.dsw}: - * tests/{SOCK_Send_Recv_Test.dsp, tests.dsw}: Add new test. - -Mon May 24 12:11:03 1999 Irfan Pyarali - - * ace/OS.i (ACE_SOCKCALL_RETURN): Fixed macro by comparing against - FAILVALUE rather than SOCKET_ERROR. Some winsock calls don't - return SOCKET_ERROR. Thanks to Christopher Kohlhoff - for reporting this problem. - -Sun May 23 11:33:07 1999 Alexander Babu Arulanthu - - Changes for the following enhancement in the Proactor - implementation. Enhanced the semantics of the , - so that when it is called, it wakes up all the threads blocked on - waiting for completions and end the event loop. Thanks to Edwin - D. Windes for reporting the issue. - - * ace/Proactor.h: - * ace/Proactor.cpp: Added static helper methods and states to post - the wakeup completions to the CompletionPort. - - * ace/Asynch_IO.h: - * ace/Asynch_IO.cpp: Added a method to the - ACE_Handler. - - * ace/Object_Manager.cpp - * ace/Object_Manager.h: Added a new Thread_Mutex called - to protect the thread count in - the event loop. - - * ace/POSIX_Asynch_IO.cpp - * ace/POSIX_Proactor.cpp - * ace/POSIX_Proactor.h - * ace/Proactor.cpp - * ace/Proactor.h - * ace/Proactor_Impl.h - * ace/WIN32_Proactor.cpp - * ace/WIN32_Proactor.h: - Changes for posting wakeup completions. - - * examples/Reactor/Proactor/test_end_event_loop.cpp: - * examples/Reactor/Proactor/test_end_event_loop.dsp: - * examples/Reactor/Proactor/post_completions.dsp: - * examples/Reactor/Proactor/Makefile: Test file the - enhancement. - -Sat May 22 16:57:38 1999 Carlos O'Ryan - - * ace/FlReactor.cpp: Sun/CC doesn't like reinterpret cast when - converting from an int into an int; this is silly, but I cannot - use static_cast because on NT reinterpret_cast is the right - thing. Use old-style casts for the moment. - - * tests/FlReactor_Test.cpp: Minor cosmetic fixes. - -Sat May 22 16:36:14 1999 Chris Gill - - * ACE version 4.6.40 released. - -Sat May 22 14:53:47 1999 David L. Levine - - * ace/Filecache.cpp: snagged another "template <>". Thanks to - Bala for reporting it. - -Sat May 22 07:30:44 1999 David L. Levine - - * ace/config-chorus.h,ace/config-lynxos.h: added - ACE_HAS_NONCONST_SELECT_TIMEVAL. - - * ace/Filecache.cpp: commented out "template<>" for now. Not all - compilers can cope with it. - -Fri May 21 21:12:37 1999 Irfan Pyarali - - * ace/Map_Manager.i (operator==): Since is a pointer - now, we must compare by value, rather than by address. - -Fri May 21 12:56:38 1999 David L. Levine - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: fixed to - build without threads: #ifdef ACE_MT_SAFE is insufficient. - Must also check if it is 0. - -Fri May 21 12:45:32 1999 Carlos O'Ryan - - * ace/Map_Manager.i: - Fixed minor error in previous commit. Thanks to Irfan for - helping out with this. - -Fri May 21 11:18:21 1999 Steve Huston - - * ace/config-hpux11.h: Added ACE_HAS_NONCONST_SELECT_TIMEVAL. - - * ace/RB_Tree.i: Fully template-qualified references to node_ and - tree_ in iterators; makes HP aC++ happy. - -Fri May 21 11:27:44 1999 Irfan Pyarali - - * ace/Map_Manager.h (class ACE_Map_Iterator_Base): Changed the - ACE_Map_Manager reference to a pointer. This way there is no - problem in reinitializing , and hence the compiler - will not have a problem in providing us a default assignment - operator. Thanks to Knut Johannessen for - pointing out this problem. - - * ace/Process: A nifty ACE::fork was added several months ago - which offers the option to avoid zombies, but it is not used in - ACE_Process::spawn. - - Mark L. Boriack provided patches which - adds an data member to ACE_Process_Options, - appropriate accessor functions, and changes the ACE_OS::fork - call to ACE::fork in ACE_Process::spawn, making use of the - option. The default behavior is left unchanged, i.e., you get - zombies. Thanks Mark. - -Fri May 21 10:34:10 1999 David L. Levine - - * ace/gethrtime.cpp,Makefile (gethrtime on Green - Hills/VxWorks): reverted to building gethrtime.cpp with g++, because - the ghs assembly code didn't work properly. - -Fri May 21 10:10:13 1999 Ossama Othman - - * ACE-INSTALL.html: Updated information about building egcs' C++ - shared libraries with an example, and emphasized the fact that - the `--enable-shared' configuration option is not an egcs - run-time option. Thanks to Wallace Owen for - motivating this. - -Fri May 21 09:15:08 1999 Carlos O'Ryan - - * ace/config-sunos5.5.h: - Added ACE_HAS_NONCONST_SELECT_TIMEVAL here too - -Fri May 21 07:53:58 1999 Steve Huston - - * ace/config-vxworks5.x.h, config-osf1-4.0.h: Added - ACE_HAS_NONCONST_SELECT_TIMEVAL. - -Thu May 20 18:01:24 1999 Steve Huston - - * ace/Filecache.cpp: Added "template<>" to specializations. - - * ace/OS.i (ACE_OS::select, ACE_OS::sleep): Removed implicit - dependency on binary object layout with regard to using an - ACE_Time_Value object as a struct timeval; use the timeval* - operator instead. On platforms with ACE_HAS_NONCONST_SELECT_TIMEVAL - don't just cast away const-ness of the ACE_Time_Value - modification - of the timeval by select() is not consistent, and Linux is not the - only one that modifies it (Solaris 7 does also, as well as AIX and - possibly HP; Solaris 2.5/6 don't specify). So, play it safe. - Inlining and optimization should prevent this from having any - affect on performance. - - * ace/config-sunos5.5.h, config-hpux-10.x.h, config-aix-4.x.h: - Added #define ACE_HAS_NONCONST_SELECT_TIMEVAL. - -Thu May 20 17:47:35 1999 Irfan Pyarali - - * ace/OS.h (ACE_DES_ARRAY_FREE_*): Added new macros to facilitate - proper destruction of arrays. - - * ace/Containers_T.cpp (ACE_Array_Base): Changed ACE_Array_Base to - use the new ACE_DES_ARRAY_FREE_* macros in order to prevent the - memory leaks. - -Thu May 20 17:46:02 1999 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Fixed Alpha configurations. Thanks to - Christian Schuderer for - reporting this. - -Thu May 20 15:35:23 1999 Carlos O'Ryan - - * tests/TkReactor_Test.cpp: - It was not compiling if ACE_HAS_TK was not defined. - -Thu May 20 15:33:21 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: - added (and default to) LIBS for Green Hills 1.8.9. - -Thu May 20 14:34:59 1999 David L. Levine - - * ace/config-sunos5.5.h: with Green Hills only, added - ACE_LACKS_ACE_IOSTREAM. ACE's IOStream_Test never halts - when built with Green Hills 1.8.9. - -Thu May 20 14:21:44 1999 David L. Levine - - * ace/OS.i: (t_getname): fixed comment after #endif, to - agree with the #ifdef. - -Thu May 20 13:51:20 1999 Nanbor Wang - - * ace/config-win32-common.h: I forgot to put '/**/' between - #include and which caused MSVC to generate warnings - when checking file dependencies. Thanks to Christian Schuderer - for reporting this. - -Thu May 20 13:52:04 1999 David L. Levine - - * ace/config-sunos5.5.h: build with threads if - _POSIX_C_SOURCE >= 199506L or #ifdef _POSIX_PTHREAD_SEMANTICS. - Added #define ACE_LACKS_RWLOCK_T if _POSIX_PTHREAD_SEMANTICS - is #defined (and therefore ACE_HAS_STHREADS is not #defined). - The rwlock functions are a Solaris threads interface, and - are not POSIX. - - * include/makeinclude/platform_sunos5_ghs.GNU: default to - building without threads support, because Green Hills 1.8.9 - is incompatible with the SunOS threads libraries. - -Thu May 20 12:12:01 1999 David L. Levine - - * ace/OS.{h,cpp},Sched_Params.cpp: with ACE_HAS_PRIOCNTL, - moved #include of sys/{rt,ts}priocntl.h from OS.cpp and - Sched_Params.cpp to OS.h, so that USYNC_THREAD and USYNC_PROCESS - #defines can be protected effectively. - -Thu May 20 11:19:45 1999 Joe Hoffert - - * ace/ATM_Addr.cpp: Added ACE_UNUSED_ARG for selector parameter - when appropriate. - -Thu May 20 09:57:57 1999 Bill Rizzi - - * ace/Log_Msg.{h,cpp},examples/Log_Msg/test_log_msg.cpp - (priority_mask): added optional support for process priority - mask, in addition to the (now default) thread priority mask. - -Thu May 20 09:42:54 1999 David L. Levine - - * ace/OS.h (fcntl): changed type of last argument from int to - long, to permit safer casting from pointer types. - - * ace/OS.i (flock_*): use ACE_OS::fcntl instead of ::fcntl. - - * ace/OS.cpp (ftruncate): use ACE_OS::fcntl instead of ::fcntl. - - Thanks to an anonymous ACE user for reporting that - these functions weren't using ACE_OS::fcntl. - -Wed May 19 23:50:18 1999 Nagarajan Surendran - - * ace/TkReactor.{h,cpp}: - * ace/Makefile: - Added a new reactor implementation based on the Tcl/Tk Event - loop and event handling mechanism. - - * ace/tests/TkReactor_Test.{cpp,tcl}: - * ace/tests/Makefile: - The Tk Reactor test and the tcl script for the GUI. This is - similar to the XtReactor_Test. - - * ace/include/makeinclude/wrapper_macros.GNU: - * ace/include/makeinclude/platform_sunos5_sunc++.GNU - Added changes to Makefile flags for XtReactor. - -Wed May 19 21:56:49 1999 David L. Levine - - * ace/Message_Queue.h: fixed typo in comment: interrupt. - -Wed May 19 21:34:29 1999 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU: removed these - warning suppressions: - 174: expr_has_no_effect - 610: nonoverriding_function_decl - They're certainly not needed with cxx 6.2-020, and - hopefully not needed with earlier versions. - -Wed May 19 10:52:15 1999 Irfan Pyarali - - * examples/DLL/test_dll.cpp (main): Fixed auto pointer use. It - was causing "Temporary used for non-const reference" warnings. - -Wed May 19 10:04:54 1999 Jeff Parsons - - * ace/SString.i: - Changed the default constructor to set rep_ to the - empty string instead of the null string. Thanks to - Knut Johannessen for pointing - this out. - -Wed May 19 06:34:58 1999 David L. Levine - - * ace/config-minimal.h: added #define ACE_USE_THREAD_MANAGER_ADAPTER, - so that ACE_Thread_Exit isn't needed in the ACE_OS layer. - -Tue May 18 22:03:49 1999 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU,platform_osf1_cxx.GNU: - removed suppression of warning 9 (nested comment not allowed) on - Digital Unix 5.0 and later. - -Tue May 18 15:01:39 1999 Steve Huston - - * ace/ACE.cpp: Added #include "ace/SString.h" to catch def for - ACE_Tokenizer in Winsock 1.1 mode. - -Tue May 18 13:30:55 1999 Nanbor Wang - - * include/makeinclude/rules.nested.GNU: FOR is not an excutable on - Win32, therefore, we must bring in the command processor in to - use FOR. Thanks to David Hooker for - reporting the bug. - -Tue May 18 11:46:55 1999 Douglas C. Schmidt - - * ace/FILE_Connector.h: Changed the default perms from 0 to - ACE_DEFAULT_FILE_PERMS. - -Tue May 18 11:28:32 1999 Joe Hoffert - - * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp: forced - ACE_TLI_Stream's recv method to call ACE_OS::t_rcv rather than - ACE_OS::read to be compatible with XTI. - -Tue May 18 11:00:15 1999 Douglas C. Schmidt - - * ace/Task_T: Moved the ACE_Buffered_Task logic out of the Task - abstraction since it doesn't belong there. - - * ace/Makefile: Regenerated the dependencies. - - * ace/FlReactor.cpp: We should be including rather than - "FL/Fl.h". - -Tue May 18 10:42:47 1999 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU: removed - suppression of warning 1180, statement causes unreachable - return, because it's no longer necessary. - -Tue May 18 10:38:53 1999 David L. Levine - - * tests/Thread_Manager_Test.cpp: replaced Hash_Map_Manager - with a simple array. This avoids dynamic allocation in - the signal handler. And, it avoids having to specialize - ACE_Hash on platforms that have a pthread_t - struct. - -Tue May 18 09:33:46 1999 Douglas C. Schmidt - - * ace/FILE_IO: Added new sendv()/recvv() and sendv_n()/recvv_n() - methods to be consistent with SOCK_IO and SOCK_Stream. - - * ace/SOCK_IO.cpp (recvv): Make sure to 0-out the iov_base so that - it's always ok to delete it, even if any of the internal - operations fail! - -Tue May 18 10:14:47 1999 Carlos O'Ryan - - * ace/Makefile: - * ace/FlReactor.h: - * ace/FlReactor.i: - * ace/FlReactor.cpp: - * include/makeinclude/platform_linux_lxpthread.GNU: - * include/makeinclude/wrapper_macros.GNU: - * tests/Makefile: - * tests/FlReactor_Test.cpp: - Added new reactor implementation based on the event loop of the - Fast-Light toolkit, similar to the XtReactor. - FLTK is a GUI toolkit that works on UNIX/X-Windows and on Win32, - it is integrated to OpenGL and is pure C++. - Check http://fltk.easysw.org for more details. - -Tue May 18 09:35:00 1999 David L. Levine - - * tests/Thread_Manager_Test.{h,cpp},Makefile: - removed Thread_Manager_Test.h. - -Mon May 17 22:39:06 1999 David L. Levine - - * tests/Thread_Manager_Test.cpp: added a couple more - explicit template instantiations. Thanks to Carlos - for reporting that they're needed on Irix. And, - added an ACE_Hash specialization to - keep DU cxx happy. - -Mon May 17 16:31:16 1999 Douglas C. Schmidt - - * ace/Task_T.cpp, - ace/OS.h: Removed ACE_DEFAULT_WRITEV_MAX and replaced it - with IOV_MAX. - -Mon May 17 15:49:48 1999 David L. Levine - - * config-dgux-4.x-ghs.h,config-vxworks5.x.h,config-ghs-common.h: - factored ACE_LACKS_SIGNED_CHAR to config-ghs-common.h. - - * config-dgux-4.x-ghs.h: removed ACE_LACKS_ACE_IOSTREAM. - It should work now, though we don't have that platform - to verify it. - -Mon May 17 15:08:45 1999 Carlos O'Ryan - - * ace/CORBA_macros.h: - Fixed implementation of the ACE_READ_GUARD_THROW_EX and - ACE_WRITE_GUARD_THROW_EX macros. - -Mon May 17 15:12:54 1999 David L. Levine - - * test/Thread_Manager_Test.cpp: use a hash map, instead of - TSS, to store each thread's indication of whether it has - been signalled. That way, the signal handler doesn't have - to access TSS. Increased the delay from 1 to 2 seconds after - the signal test, which also seems to help avoid thread lib - panics on Solaris. - -Mon May 17 14:02:01 1999 David L. Levine - - * tests/Conn_Test.cpp (handler): added comment saying that even - the ACE_OS::exit () call isn't safe. - -Mon May 17 10:31:04 1999 Nanbor Wang - - * ace/Service_Repository.cpp (find_i): A missing pointer check was - causing the remove method to segfault. Thanks to Tom Arbuckle - for pointing this out. - -Mon May 17 10:21:29 1999 David L. Levine - - * tests/TSS_Test.cpp: removed the signal handler. It - wasn't used for the test, and contained an ACE_DEBUG. - -Mon May 17 10:12:45 1999 David L. Levine - - * ace/config-chorus.h,config-dgux-4.x-ghs.h,config-sunos5.5.h, - config-vxworks5.x.h,config-ghs-common.h: - factored out Green Hill-specific #defines to config-ghs-common.h. - -Mon May 17 09:07:41 1999 David L. Levine - - * tests/Conn_Test.cpp (handler): commented out unused arg - "signum". - -Sun May 16 20:38:58 1999 Nanbor Wang - - * ace/CDR_Stream.{h,i} (current): Added this accesor function for - Flick IDL compiler. Thanks to Tim Stack for - recommending this. - -Sun May 16 20:08:41 1999 David L. Levine - - * tests/Thread_Manager_Test.cpp (handler,worker): - moved ACE_DEBUG out of signal handler. It was - causing occasional lockups on SunOS. Signal - handlers must never do anything that could cause - a lock to be acquired. - - * tests/Conn_Test.cpp (handler): removed ACE_DEBUG. - -Sun May 16 20:04:09 1999 David L. Levine - - * ace/OS.h: moved #include of ace/Trace.h to before #include of - ace/OS.i. - - * ace/OS.{i,cpp}: enabled ACE_TRACE for most functions (except - those that are used by ACE_TRACE). - -Sun May 16 19:54:10 1999 Alexander Babu Arulanthu - - * ace/config-sunos5.7.h: Comments - * ace/config-sunos5.6.h: Comments - - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Proactor.h: - * ace/POSIX_Proactor.cpp: - Using ACE_dynamic_cast to get - from gives build errors on - egcs. is not the correct solution for - this. Solved this problem by having one more list of - so that we dont have to do any - casting. - * ace/Proactor.cpp (ACE_Proactor): Indentation. - * examples/Reactor/Proactor/post_completions.cpp: Added template - pragma's. - -Sun May 16 18:35:59 1999 Douglas C. Schmidt - - * ACE version 4.6.39 released. - -Sun May 16 12:34:48 1999 David L. Levine - - * ace/Log_Msg.cpp (ACE_Log_Msg_Manager::lock_): changed - the lock type from ACE_Thread_Mutex to - ACE_Recursive_Thread_Mutex. This allows ACE_Log_Msg's - methods to be called after calling ACE_Log_Msg::acquire (), - without deadlock. Thanks to Bill Rizzi - for suggesting this. - -Sat May 15 08:30:43 1999 David L. Levine - - * ace/Containers.h: added #include of ace/Malloc_Base.h. - It's needed for the definition of ACE_Allocator when - instantiating container classes. - -Sat May 15 03:32:02 1999 Nanbor Wang - - * ace/CDR_Stream.h: Added #include of ace/SString.h. - -Fri May 14 23:05:32 1999 David L. Levine - - * ace/Log_Record.h: removed unnecessary #include of ace/SString.h. - -Fri May 14 21:11:46 1999 Carlos O'Ryan - - * ace/Task_T.h: - * ace/Task_T.cpp: - Fixed syntax errors in ACE_Buffered_Task - -Fri May 14 21:03:30 1999 Carlos O'Ryan - - * netsvcs/lib/Log_Message_Receiver.cpp: - Changed ACE_Guard instantiations with ACE_GUARD() macros to - avoid some warnings with egcs, similar to the problem that David - had with Message_Queue_T.cpp - -Fri May 14 19:31:04 1999 Ossama Othman - - * ace/Message_Block.cpp (total_size): - - Corrected warning caused by assignment to non-const from const. - - * ace/Message_Queue_T.cpp (close): - - Temporary variable wasn't declared. - - * ace/Message_Queue_T.cpp (remove_messages): - - Removed unused variable. - -Fri May 14 19:16:06 1999 Ossama Othman - - * ace/Task_T.cpp (put, flush): - - Corrected syntax errors where return type was placed before - template keyword. - -Fri May 14 16:46:42 1999 Douglas C. Schmidt - - * ace/Task_T: Added a new class called ACE_Buffered_Task that - buffers up its ACE_Message_Blocks until (1) the buffer is full - or (2) a timeout elapses, at which point the buffers are written - out using some type of writev()-like mechanism. - - * ace/OS.h: Added a new macro called ACE_DEFAULT_WRITEV_MAX, which - defaults to the maximum value that writev() can have. - - * ace/Message_Block.cpp: Added a new method called total_size() - that returns the total number of bytes in a composite - Message_Block (i.e., a Message_Block that has a chain of - Message_Blocks). - - * ace/Message_Queue_T.cpp: Reimplemented all the hand-coded loops - to use the new ACE_Message_Block::total_size() method. - -Fri May 14 16:17:27 1999 Nanbor Wang - - * ace/Synch.h (ACE_Null_Mutex>): Conditionally compiles ~ACE_Guard() - destructor. Win32 needs this definition. - -Fri May 14 16:10:29 1999 David L. Levine - - * ace/Message_Queue_T.cpp: replaced raw ACE_Read_Guards - with ACE_READ_GUARD_RETURN macros. That avoids a compiler - warning (egcs 1.1.1/SunOS 5.7) now that the ACE_Guard - destructor has been removed. Thanks to Irfan and Carlos - for suggesting this fix. - -Fri May 14 15:35:50 1999 Irfan Pyarali - - * ace/ACE.cpp (clr_flags and set_flags): We should use ioctl() - calls to implement on vxworks this rather than fcntl(). Thanks - to Joseph A. Condlin for reporting this. - -Fri May 14 13:15:02 1999 Joe Hoffert - - * examples/IPC_SAP/TLI_SAP/Makefile: Took out FORE specific - information. Somehow my local changes got checked in - this is - to undo that. - -Fri May 14 12:58:02 1999 Joe Hoffert - - * ace/ATM_Addr.h: - * ace/ATM_Addr.i: - * ace/ATM_Addr.cpp: Added accessor methods for the selector byte - of an ATM address. - - * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp: - * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp: Modify example code - to have the user optionally specify the selector byte. - -Fri May 14 12:47:38 1999 David L. Levine - - * ace/Addr.cpp,ace/Synch_Options.cpp: added comments about - the static objects. - -Fri May 14 11:36:05 1999 Carlos O'Ryan - - * ace/SString.h: - * ace/SString.i: Added new class to auto destroy dynamically - allocated strings, sort of a mixing between auto_ptr and - CString. Auto_Ptr_Array was not useful because we need to free - using ACE_OS::free() (and in the future allocators). - -Fri May 14 10:37:49 1999 Douglas C. Schmidt - - * ace/OS.i: Fixed a deadlock in cond_timedwait()/cond_broadcast(). - Thanks to Brian C. Olson for reporting - this. - - * ace/Synch.h (ACE_Null_Mutex>): Commented out the ~ACE_Guard() - destructor to prevent segfaults on certain versions of SunC++. - Thanks to Russ Noseworthy for reporting this bizarre bug! - -Fri May 14 09:51:55 1999 Carlos O'Ryan - - * ace/Message_Block.h: - * ace/Message_Block.cpp: - Modified default constructor and constructor taking a Data_Block - to also take an Allocator. - -Fri May 14 09:14:55 1999 David L. Levine - - * include/makeinclude/platform_osf1_cxx.GNU: - added $(ACELIB) to SOFLAGS for DU 5.x. It should - have been there all along. - -Thu May 13 17:27:14 1999 Nanbor Wang - - * netsvcs/servers/svc.conf: - * netsvcs/clients/Naming/Client/svc2.conf: - * netsvcs/clients/Naming/Client/svc2.conf: Removed relative paths - from all DLL's. They were hard-coded which was not portable. - ACE should figure out the correct path automatically. - - * netsvcs/lib/Name_Handler.cpp: Replaced several calls to - ACE_WString::rep with ACE_WString::fast_rep to avoid memory - leaks. Thanks to Valery Arkhangorodsky - for reporting this. - - * ace/Registry.cpp (close): Only close when we do own a - key. - - * netsvcs/lib/Name_Handler.cpp (resolve): The atype string needs - to be delete[]'ed once we are done with it. Thanks to Valery - Arkhangorodsky for pointing this out. - -Thu May 13 09:39:17 1999 David L. Levine - - * tests/Makefile: added Tokens_Test to BIN2 if Tokens component - is not configured in. This ensures that Tokens_Test gets - cleaned up, even if the ace directory was realcleaned first - (and ACE_BUILD_COMPONENTS is therefore empty). - -Thu May 13 07:24:41 1999 David L. Levine - - * ace/POSIX_Proactor.cpp (handle_events): replaced - incorrect dynamic_cast with a reinterpret cast. - -Wed May 12 17:42:09 1999 Carlos O'Ryan - - * ace/Message_Block.h: - * ace/Message_Block.cpp: - The message blocks can be obtained from an allocator now. Thanks - to John Aughey for this cool feature. - -Wed May 12 16:24:17 1999 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/Makefile: - * examples/Reactor/Proactor/test_proactor.cpp: - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Proactor.h: - * ace/Proactor.cpp : - * ace/POSIX_Asynch_IO.cpp: Fixed the problem with terminating the - Timer thread. Also, fixed the places where conversion between - void * and ACE_POSIX_Asynch_Result. Used ACE_reinterpret_cast at - these places. - -Wed May 12 12:14:09 1999 Ossama Othman - - * COPYING: Additional updates/clarifications suggested by Richard - Stallman. - -Wed May 12 00:25:57 1999 Nanbor Wang - - * ace/Thread_Manager.h (ACE_Thread_Manager): Added clarification - for the semantics differences among wait(), wait_grp() and - wait_task(). - -Tue May 11 18:11:51 1999 James C. Hu - - * ace/config-sunos5.7.h: SunOS 5.7 (aka Solaris 7) does not have a - limited select. - -Tue May 11 17:11:51 1999 David L. Levine - - * tests/Conn_Test.cpp (spawn_threads): changed some ACE_NEW - statements to ACE_NEW_RETURN. - -Tue May 11 15:43:30 1999 David L. Levine - - * ace/OS.h: added ACE_THR_PRI_OTHER_DEF for NT, because MT_Cubit - uses it. - -Tue May 11 14:45:08 1999 David L. Levine - - * tests/Conn_Test.cpp: fixed use of status on platforms that lack - fork. - -Tue May 11 14:10:29 1999 David L. Levine - - * ace/config-osf-4.0.h: added #define of - ACE_NEW_THROWS_EXCEPTIONS, if exception handling is enabled. - - * tests/New_Fail_Test.cpp: removed workaround for DEC cxx, and - modified error message to mention ACE_NEW_THROWS_EXCEPTIONS. - -Tue May 11 12:02:03 1999 David L. Levine - - * ace/config-win32-common.h: set __ACE_INLINE__ to 1 if not - #defined. It's scary when I trip over syntax errors on Win32 - :-) - -Tue May 11 10:00:00 1999 Chris Gill - - * ace/OS.i: fixed name of unused argument for pSOS - - * ace/RB_Tree.{cpp, h}: moved enumerated type from template to - non-templatized base class to make old g++ happy. - -Mon May 10 22:59:46 1999 David L. Levine - - * include/makeinclude/wrapper_macros.GNU: don't set VDIR to - .shobj/ for VxWorks, because it uses the same .o files for - static and shared libs. - - * include/makeinclude/platform_vxworks5.x_g++.GNU: disable RTTI - for egcs, because the Tornado 1.0.x libs don't support it. No - harm in disabling for old g++. - -Mon May 10 15:33:56 1999 Douglas C. Schmidt - - * ace/INET_Addr.cpp (string_to_addr): Fixed a mistake that - occurred when integrating Jerry D. De Master - fix. Thanks to Zoran and Jerry for - reporting this. - -Mon May 10 15:00:31 1999 Nanbor Wang - - * ACE-INSTALL.html: Changed to use ACE_NO_INLINE to supress - inlining to match with the recent dsp file changes. Added a - link to Barry Hoggard's CORBA page which contains ACE related - MSVC setting hints. - - * ace/Select_Reactor_Base.cpp (unbind): We need to make sure the - reactor's suspend_set_ also gets cleaned up when unbinding a - handler. Thanks to Casey Lucas for pointing - this out. - -Mon May 10 17:08:29 1999 James C. Hu - - * ace/ACE.cpp: - * ace/config-sunos5.6.h: - * ace/README: Added support to enter_recv_timedwait, - enter_send_timedwait, handle_timed_complete, and - handle_timed_accept to use poll() instead of select() if poll() - is available and select() is known to have problems. Created - ACE_HAS_LIMITED_SELECT macro. Certain versions of SunOS 5.6 do - not correctly select on file descriptors that are larger than - 1023. - -Mon May 10 13:32:11 1999 David L. Levine - - * tests/Conn_Test.cpp (spawn_threads): wait a maximum of 200 - seconds. Carlos reported that the test sometimes hangs on Irix. - -Mon May 10 12:14:00 1999 Chris Gill - - * ace/RB_Tree.cpp: fixed a dangling pointer bug in - RB_Tree::delete_fixup. Added pointer tests to all dereferences - in this piece of code. - -Mon May 10 11:35:18 1999 Ossama Othman - - * COPYING: Made some updates suggested by Richard Stallman - of the Free Software Foundation - (http://www.fsf.org/). - -Mon May 10 11:01:58 1999 David L. Levine - - * tests/New_Fail_Test.cpp: DEC cxx catches its default, - NoNamedException. OK, I guess. - - * tests/Upgradable_RW_Test.cpp: added -f option, which enables - FIFO thread scheduling. Some platforms require superuser - privilege to use it. Also, wait a maximum of 1 second per - iteration. And, replaced some u_longs with u_ints. - - * tests/Thread_Manager_Test.cpp (main): wait a maximum of 60 - seconds, because the test sometimes hangs on SunOS 5.5.1 and - SunOS 5.7. - -Mon May 10 08:26:44 1999 David L. Levine - - * bin/g++dep: added support for our Solaris 7 machines. - -Sun May 9 18:07:24 1999 Ossama Othman - - * acconfig.h: - * configure.in: Added support/tests for - ACE_LACKS_CHAR_RIGHT_SHIFTS and - ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS. - - * ace/README: Fixed typo. ACE_LACKS_LINEBUFFERED_STREAMBUF was - used twice. Corrected the appropriate one to - ACE_LACKS_UNBUFFERED_STREAMBUF. - -Sun May 09 11:45:00 1999 Chris Gill - - * ace/RB_Tree.cpp added explicit scoping to RB_SearchResult - parameter in RB_Tree<...>::find_node (). - -Sun May 09 11:30:00 1999 Chris Gill - - * ace/Makefile - examples/Connection/non_blocking/Makefile - examples/IPC_SAP/SPIPE_SAP/Makefile - examples/IPC_SAP/TLI_SAP/Makefile - examples/Reactor/Misc/Makefile - examples/Service_Configurator/IPC-tests/client/Makefile - examples/Service_Configurator/IPC-tests/server/Makefile - netsvcs/lib/Makefile - netsvcs/servers/Makefile - tests/Makefile: ran make depend after adding new RB_Tree - interface. - -Sat May 08 19:30:00 1999 Chris Gill - - * ace/RB_Tree.{cpp, h, i} - tests/RB_Tree_Test.cpp: finished implementing all methods for - the ACE_Hash_Map_Manager_Ex compliant interface, fixed a bug in - the internal tree search method (thanks to David Levine for - pointing this out), and added a new section to the test that - exercises the new bind and unbind methods. - -Sat May 08 17:09:10 1999 David L. Levine - - * apps/Gateway/Gateway/Event_Channel.cpp (bind_proxy,subscribe): - wrapped final return statement with ACE_NOTREACHED, to please DU - cxx 6.2. - -Sat May 08 08:49:44 1999 David L. Levine - - * ace/CDR_Stream.h: only use unsigned long for Boolean with Green - Hills 1.8.8 on Chorus, not 1.8.9. - - * ace/IOStream.h,README: added ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS - and ACE_LACKS_CHAR_RIGHT_SHIFTS support. - - * ace/config-chorus.h: added ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS - #define for g++. - - * ace/config-vxworks5.x.h: added ACE_LACKS_CHAR_RIGHT_SHIFTS - #define for Green Hills 1.8.9. - -Sat May 08 08:44:00 1999 Chris Gill - - * ace/RB_Tree.{cpp, h, i} - tests/RB_Tree_Test.cpp - apps/JAWS/PROTOTYPE/HTTPU/http_headers.cpp: Added more - implementation code and necessary template instantiations for - migration of RB_Tree class templates to conform to the - ACE_Hash_Map_Manager API. - -Sat May 08 03:59:52 1999 Nanbor Wang - - * ace/config-win32-common.h: Re-ordered __ACE_INLINE__ macro check - and definition so users can turn of inlining correctly. - However, the right thing to do is to define ACE_NO_INLINE macro. - - * ace/ace_{dll,lib}.dsp: Moved RB_Tree.cpp to template folder and - excluded it from being built. - - * ace/ace_lib.dsp: - * performance-tests/Misc/basic_perf.dsp: - * performance-tests/Misc/context_switch_time.dsp: - * tests/version_tests/*.dsp: We should have used ACE_NO_INLINE - instead of defining __ACE_INLINE__=0 to supress the use of - inlining. Thanks to Nick Sawadsky - for reporting this. - -Fri May 07 23:05:24 1999 David L. Levine - - * ace/config-vxworks5.x.h: added ACE_LACKS_LINEBUFFERED_STREAMBUF - for Green Hills 1.8.9. - - * ace/README: added ACE_LACKS_LINEBUFFERED_STREAMBUF. - -Fri May 7 19:39:43 1999 Carlos O'Ryan - - * ace/Message_Block_T.i: Found little bug in - ACE_Locked_Data_Block<> default constructor. - -Fri May 07 16:54:00 1999 Chris Gill - - * ace/RB_Tree.{cpp, h, i}: Reorganized and optimized internal - methods, added read and write guards, implemented all public - find and unbind methods for the interface comparable to - ACE_Hash_Map_Manager_Ex. - -Fri May 07 14:40:12 1999 David L. Levine - - * include/makeinclude/platform_osf1_cxx.GNU: added, to support - uniform use of cxx across different OS versions. - - * ace/config-osf1-4.0.h: conditionally #define DIGITAL_UNIX, to - support definition in CFLAGS. - - * ace/config-osf1.h: added, to support easy migration to DU 5.0. - -Fri May 07 11:00:52 1999 David L. Levine - - * ACE-INSTALL.html: OK on RedHat 6.0 Linux. - -Fri May 07 08:58:47 1999 David L. Levine - - * ace/OS.{h,i}: added some QNX support. In OS.i, this mostly - consisted of adding a !defined (ACE_LACKS_MUTEXATTR_PSHARED) - check to _POSIX_THREAD_PROCESS_SHARED. Thanks to Alain Magloire - for providing this support. - -Thu May 6 21:48:26 1999 Ossama Othman - - * acconfig.h: - * configure.in: - * ace/OS.h: - * ace/README: - * ace/config-hpux11.h: - * ace/config-irix6.x-g++.h: - * ace/config-irix6.x-kcc.h: - * ace/config-irix6.x-sgic++.h: - * ace/config-linux-lxpthreads.h: - * ace/config-osf1-4.0.h: - * ace/config-sco-5.0.0-mit-pthread.h: - * ace/config-sunos5.5.h: Removed all references to - ACE_HAS_PTHREAD_SIGMASK. This macro has been deprecated. - -Thu May 6 20:12:57 1999 Ossama Othman - - * acconfig.h: - * configure.in: Added tests/support for ACE_LACKS_PTHREAD_SIGMASK, - ACE_LACKS_TCP_NODELAY and ACE_LACKS_NULL_PTHREAD_STATUS. Thanks - to David for providing a test for ACE_LACKS_NULL_PTHREAD_STATUS. - -Thu May 06 14:26:54 1999 David L. Levine - - * ace/README,ace/Pipe.cpp (open): added support for - ACE_LACKS_TCP_NODELAY. Thanks to Alain Magloire - for providing the patch. - -Thu May 6 14:23:14 1999 Carlos O'Ryan - - * ace/Synch_T.cpp: Removed ACE_ALLOC_HOOK_DEFINE macros for the - Guard<> objects, they don't need them (because they are - allocated on the stack) and the HOOK_DECLARE macros where not - used in the header file. - - * bin/count_lines: Several new file types, fixed computations when - multiple modules are used. - -Thu May 06 12:28:54 1999 David L. Levine - - * docs/ACE-FMM.html: replaced a > with > and added RCS Id - string. - - * ACE-INSTALL.html: added link to docs/ACE-FMM.html. - -Thu May 06 12:23:51 1999 Steve Huston - - * ace/OS.i (recvv, sendv): Added code to make these functions work - on Win32 w/ Winsock 1.1. - -Wed May 05 15:10:37 1999 David L. Levine - - * ace/OS.h: added ACE_U_ONE_SECOND_IN_*SECS. They're typed and - unsigned. The old ACE_ONE_SECOND_IN_*SECS macros are retained - for backward compatibility. - -Wed May 5 13:58:25 1999 Carlos O'Ryan - - * ace/OS.i: Don't use poll() for the implementation of - ACE_OS::sleep(), it has bad resolution and it gives wrong - results on Linux. - - * tests/High_Res_Timer_Test.cpp: Added new option to run several - iterations of each interval. - -Wed May 05 13:14:52 1999 Steve Huston - - * ace/ACE.cpp: Removed DllMain - Win32 does not have the gusto to - handle the initialization/finalization in this way. It causes - DLL dependency problems which result in early detachment of - winsock, and possible network data loss in some cases. - - * ace/OS.cpp, Object_Manager.cpp: Clarified some comments - regarding multiple ACE_OS_Object_Manager and ACE_Object_Manager - objects in existence and how they're handled. - - * tests/ACE_Init_Test.cpp: Always does ACE::init and ACE::fini - now. This is one example of how to handle a non-console program - in Win32. - -Wed May 05 13:07:49 1999 David L. Levine - - * bin/Makefile: replaced /bin/rm with $(RM) and removed clean - pseudotarget. - -Tue May 04 20:38:00 1999 Chris Gill - - * tests/RB_Tree_Test.cpp: Added missing explicit template - instantiations for ACE_RB_Tree_Iterator_Base. Thanks to Carlos - O'Ryan for reporting this. - - * include/makeinclude/platform_psos_diab_ppc.GNU: added -g flag - back into debug flags since it can easily be deactivated via - make debug=0. - -1999-05-04 Seth Widoff - - * ace/Containers_T.cpp (ACE_Array_Base::max_size): When - resizing the array to be larger, the max_size method was copying - in the contents of the older, smaller array, but not - initializing the new elements. - -Tue May 4 17:37:30 1999 Kirthika Parameswaran - - * examples/Web_Crawler/Options.cpp (parse_args): Change the - default options from "www.cs.wustl.edu" to "tao.cs.wustl.edu". - -Tue May 04 16:24:00 1999 Chris Gill - - * ace/RB_Tree.{cpp, h, i}: Added deprecation comments to methods - that are going to be replaced by the new Hash_Map_Manager - compliant interface. Factored out iterator base class, added - reverse iterator. Interim checkin since it all compiles and - RB_Tree_Test runs clean. - -Tue May 04 15:56:41 1999 Steve Huston - - * ace/ACE.cpp: Re-enabled DllMain (see Mon May 3 entry from Chris - Gill). - - * ace/OS.cpp, Object_Manager.cpp: In ACE_OS_Object_Manager and - ACE_Object_Manager, differentiate between The singleton instance - and other instances when allocating and freeing per-process - information. - - * tests/run_tests.bat: Added ACE_Init_Test. - -Mon May 3 18:04:32 1999 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_aiocb_ace.cpp: Added this - file. If this test is sucessful, ACE_POSIX_AIOCB_PROACTOR could - be defined for a platform. - -Mon May 03 09:35:00 1999 Chris Gill - - * ace/RB_Tree.cpp: fixed bug in ACE_RB_Tree::RB_delete_fixup in - which a null pointer was dereferenced while trying to determine - the color of the node that was being pointed to. Per the RB - Tree discussion in Cormen Lieserson and Rivest's "Introduction - to Algorithms", after which this implementation is modeled, a - nil node is implicity treated as having been colored BLACK. - Thanks to Long Hoang for reporting - the problem and providing a test program that showed the bug. - -Mon May 03 15:53:15 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU, - tests/run_tests.vxworks,ACE-INSTALL.html: added support for - shared lib builds. Thanks to Ramiro Penataro Blanco - and James D. Rucker - for figuring this out, and - providing detailed instructions for others to follow. - -Mon May 03 15:20:00 1999 Kirthika Parameswaran - - * examples/Web_Crawler/main.cpp: - * examples/Web_Crawler/Web_Crawler.{h,cpp}: - * examples/Web_Crawler/Cached_Connect_Strategy_T.{h,i,cpp}: - * examples/Web_Crawler/Caching_Strategies_T.{h,i,cpp}: - * examples/Web_Crawler/Command_Processor.{h,cpp}: - * examples/Web_Crawler/HTTP_URL.{h,cpp}: - * examples/Web_Crawler/Iterators.{h,cpp}: - * examples/Web_Crawler/Mem_Map_Stream.{h,cpp}: - * examples/Web_Crawler/Optimal_Cache_Map_Manager_T.{h,i,cpp}: - * examples/Web_Crawler/Options.{h,cpp}: - * examples/Web_Crawler/URL.{h,cpp}: - * examples/Web_Crawler/URL_Addr.{h,cpp}: - * examples/Web_Crawler/URL_Status.{h,cpp}: - * examples/Web_Crawler/URL_visitor.{h,cpp}: - * examples/Web_Crawler/URL_Visitor_Factory.{h,cpp}: - * examples/Web_Crawler/Makefile - * examples/Web_Crawler/README - - This example is a HTTP client which crawls over the link provided - and checks whether the links recusively are valid or not. - This example was used to test teh auto-purging feature where the - connections are removed from the connection cache when the process - runs out of file descriptors. - -Mon May 03 14:46:28 1999 Steve Huston - - * tests/ACE_Init_Test.dsp: Fixed to build on all configurations (for - Intel anyway). - -Mon May 03 10:30:37 1999 David L. Levine - - * ACE version 4.6.38 released. - -Mon May 3 09:56:06 1999 Douglas C. Schmidt - - * ace/INET_Addr.cpp (get_host_name): Make sure to check if - get_host_name() fails and do something useful in this case. - Thanks to Frank O'Dwyer for reporting this. - -Mon May 03 09:35:00 1999 Chris Gill - - * ace/ACE.cpp: disabled BOOL APIENTRY DllMain(HANDLE hModule, - DWORD ul_reason_for_call, LPVOID lpReserved) by having it - just return TRUE. This function is used only on NT. This - is a temporary workaround for the problem of tao_idl - crashing on NT, and will be replaced ASAP with a more - complete fix to Object Manager initialization/cleanup at - DLL load/unload time on NT. Thanks to David Levine for - suggesting this fix. - -Mon May 03 09:27:54 1999 David L. Levine - - * docs/ACE-guidelines.html: added guideline to put - spaces around comment delimiters. Thanks to Chris - Gill for suggesting this. - -Sun May 02 14:36:43 1999 David L. Levine - - * ace/OS.h: Added ghs back to the list of compilers for which - ACE_NOTREACHED disappears. It was causing warnings for - many ACE and TAO files. - -Sun May 02 08:21:13 1999 David L. Levine - - * ace/OS.i (pthread_sigmask): added ACE_UNUSED_ARGs to - NOTSUP case. - - * ace/OS.i (pthread_sigmask),ace/config-chorus.h,ace/README: - added ACE_LACKS_PTHREAD_SIGMASK. - -Sat May 01 17:33:04 1999 David L. Levine - - * ace/OS.cpp,Object_Manager.cpp: reverted this change because - it causes a seg fault on NT: - - Thu Apr 29 13:41:52 1999 Steve Huston - - * ace/{OS.cpp Object_Manager.cpp}: Fixed leaking ACE_Object_Manager - when config has #define ACE_HAS_NONSTATIC_OBJECT_MANAGER 0. - -Sat May 01 12:06:57 1999 Nanbor Wang - - * ace/ACE.cpp: - * ace/config-win32.h: Reverted my previous change. I didn't - notice David had already fixed it. Thanks David. - -Sat May 01 01:48:29 1999 Nanbor Wang - - * ace/ACE.cpp (DllMain): Only use DllMain to control - Object_Manager's lifecycle when - ACE_USES_DLL_TO_MANAGE_THE_LIFECYCLE_OF_OBJECT_MANAGER is - defined and we are building ACE as a DLL. - - * ace/config-win32.h: Defining - ACE_USES_DLL_TO_MANAGE_THE_LIFECYCLE_OF_OBJECT_MANAGER =1, when - compiling DLL version of ACE will cause then ACE::init/fini be - called automatically for you in DllMain when ACE gets linked - in/unlinked. - - Defining ACE_USES_DLL_TO_MANAGE_THE_LIFECYCLE_OF_OBJECT_MANAGER - =1 automatically define ACE_HAS_NONSTATIC_OBJECT_MANAGER to 1 - and define ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER. - -Fri Apr 30 22:53:01 1999 David L. Levine - - * ace/OS.h: put Object_Manager back on the stack of main, - instead of using ACE::init () and ACE::fini (). It - should be functionally equivalent, and then some: if - the user's main () returns, the Object_Manager will get - properly destroyed if it's on the stack. And, it's better - for subset support if we avoid class ACE calls from OS.h. - - * include/makeinclude/rules.lib.GNU: cleaned up a bit. - -Fri Apr 30 17:42:11 1999 Alexander Babu Arulanthu - - * ace/OS.i (pthread_sigmask): - * ace/OS.h (ACE_OS): Added wrapper for to get - the Proactor code compile on LynxOS. - - * ace/config-lynxos.h (ACE_HAS_AIO_CALLS): - Enabled ACE_HAS_AIO_CALLS for LynxOS. Also enabled - ACE_HAS_AIOCB_PROACTOR since LynxOS 3.0.0 has not got - yet, so signal proactor cannot work correctly. - - * ace/POSIX_Proactor.cpp: - * examples/Reactor/Proactor/test_aiosig_ace.cpp - (setup_signal_delivery): Added ACE_OS:: scope to pthread_sigmask - so that it works (fails!!) correctly on LynxOS. - - * examples/Reactor/Proactor/post_completions.cpp: - * examples/Reactor/Proactor/test_timeout.cpp: Added 'main' - function for platforms where only AIOCB_Proactor is enabled so - that the test prints out a message. - - * examples/Reactor/Proactor/Makefile: - -Fri Apr 30 14:44:12 1999 Darrell Brunsch - - * ACE-INSTALL.html: Added a note about manually cleaning out the - ACE_wrappers directories on Win32, which could be required for a - true start from scratch build. Thanks to David Hooker - for this insight. - -Fri Apr 30 14:06:41 1999 Douglas C. Schmidt - - * COPYING: Updated the COPYING file to reflect the use new of - ACE(TM) and TAO(TM). - -Fri Apr 30 13:23:22 1999 Steve Huston - - * docs/tutorials/017/Barrier_i.cpp: - * docs/tutorials/018/token.cpp: Added explicit template - instantiations. - -Fri Apr 30 12:11:36 1999 Ossama Othman - - * ace/OS.i (gethostbyname2): - - Added an IPv4-only implementation. If ACE_HAS_IP6 is not defined, - the IPv4-only implementation will be used. - -Fri Apr 30 12:11:50 1999 Nanbor Wang - - * tests/Basic_Types_Test.cpp: Added checks for sizeof(long) == - sizeof(void*) and sizeof(long) >= sizeof (a_function_pointer). - Certain code in ACE depends on the assumptions. - -Fri Apr 30 11:24:26 1999 Steve Huston - - * tests/ACE_Init_Test.cpp: Added compile-time change to adapt to - build w/ static ACE lib and ACE_HAS_NONSTATIC_OBJECT_MANAGER. - * tests/version_tests/ACE_Init_Test.dsp: Changes to build clean on - all configurations. - -Fri Apr 30 02:06:53 1999 Nanbor Wang - - * ace/Parse_Node.cpp (symbol): According to the new ANSI C++ - specification, casting a void* pointer to a function pointer is - not allowed. However, casting a void* pointer to an integer - type that is large enough to hold the pointer value is legal. I - chose to cast the return value to long since it should be large - enough to hold the void* pointer's value on most platforms. I am - not sure if casting a long value to a function pointer is legal - or not (can't find a good explanation in spec) but it prevent - SunC++ 5.0 compilers from complaining about illegal pointer - conversion. - - * ace/OS.h: Removed ACE_non_function_ptr_to_function_ptr_cast, - it is no longer needed. - -Fri Apr 30 00:36:23 1999 Ossama Othman - - - * ace/Get_Opt.cpp: - * ace/TLI_Acceptor.cpp: - * ace/TLI_Connector.cpp: - - Cast away const from string literals using ACE_const_cast to make - Sun C++ 5.0 happier. - -Thu Apr 29 18:32:43 1999 Irfan Pyarali - - * ace/OS.h: Removed ghs from the list of compilers for which - ACE_NOTREACHED disappears. It was causing warnings for - TAO/orbsvcs/orbsvcs/Naming/Persistent_Context_Index_T.cpp. - -Thu Apr 29 19:48:25 1999 Ossama Othman - - * ace/OS.{h,i} (ACE_OS): - - More IPv6 support. Added support for the new IPv4/IPv6 - inet_ntop() and inet_pton() calls. If ACE_HAS_IP6 is not - defined, these calls will use IPv4 implementations (see - Stevens' book "UNIX Network Programming - Volume I") and - return an error if a family other than AF_INET is passed to - them. - - * ace/OS.h: - - Define INET_ADDRSTRLEN and INET6_ADDRSTRLEN if they don't - get defined after including . - -Thu Apr 29 18:32:43 1999 Ossama Othman - - * ace/README: - * ace/OS.h (ACE_OS): - * ace/OS.i (gethostbyname2): - - Added support for the gethostbyname2() system call. It is only - enabled if ACE_HAS_IP6 is defined. When I have time, I'll add - more IPv6 support. - -Thu Apr 29 15:30:04 1999 Douglas C. Schmidt - - * ace/INET_Addr.cpp (string_to_addr): Added support to check for - both "port numbers" and "port names". Thanks to Jerry D. De - Master for suggesting this. - - * ace/Select_Reactor_T.h, - ace/Reactor.h, - ace/Select_Reactor_T.h, - ace/TP_Reactor.h (ACE_TP_Reactor): Updated the documentation to - clarify the purpose of the flag. Thanks to Susan - Liebeskind for reporting this. - -Thu Apr 29 13:41:52 1999 Steve Huston - - * ace/{OS.cpp Object_Manager.cpp}: Fixed leaking ACE_Object_Manager - when config has #define ACE_HAS_NONSTATIC_OBJECT_MANAGER 0. Now - both ACE_OS_Object_Manager and ACE_Object_Manager remember if they - were dynamically allocated whether the above #define is used or not - and correctly clean up and track the singleton properly. - Thanks to David and Irfan for identifying this and helping with the - solution. - -Wed Apr 28 20:21:12 1999 Irfan Pyarali - - * ace/Synch_T.h (class ACE_Anti_*_Guard): I had accidentally - checked in the anti guard classes. These are not needed since - we decided to stick with the reverse lock class rather than the - anti guard classes. - -Wed Apr 28 18:02:36 1999 Nanbor Wang - - * ace/OS.h: Added a new macro called - ACE_non_function_ptr_to_function_ptr_cast to get around some - compiler constrain. In face, ANSI C++ standard prevents casting - from a non-function pointer (e.g., void *) to a function - pointer. Currently, only egcs check for this condition. - - * ace/Parse_Node.cpp (symbol): Changed to use the new - ACE_non_function_ptr_to_function_ptr_cast. - -Wed Apr 28 16:53:16 1999 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/Aio_Platform_Test_C.cpp: Added this - file, a simple C version of the - $ACE_ROOT/tests/Aio_Platforms_Test.cpp. Useful for submitting bug - reports etc. - - * ace/Proactor.cpp: - * ace/POSIX_Asynch_IO.cpp: Fixed old g++ warnings - -Wed Apr 28 15:39:14 1999 Nanbor Wang - - * ace/Parse_Node.cpp (symbol): Use reinterpret_cast to cast - dlsym's return value. - -Wed Apr 28 12:40:26 1999 David L. Levine - - * ace/Synch_T.{i,cpp} (~ACE_Reverse_Lock): uninlined destructor. - See docs/ACE-guidelines.html for an explanation of why a - class should have at least one non-inline, non-pure virtual - function if it has any virtual functions. egcs 1.1.1b - needed this one. - -Wed Apr 28 09:02:26 1999 Douglas C. Schmidt - - * ace/config-sunos5.5.h: It appears that SunC++ 5.0 wants - ACE_HAS_THR_C_DEST to be defined. - - * ace/SString: Clarified the comments a bit to avoid confusion. - Also, moved the definition of ACE_SString to AFTER ACE_CString - and ACE_WString since they are more general. Thanks to Kevin - Lyda for reporting this. - -Tue Apr 27 20:59:52 1999 Douglas C. Schmidt - - * netsvcs/clients/Naming: Moved the README file into the Client/ - directory since that's what it described. - - * netsvcs/clients/Naming/Client/Client_Test.cpp: Reformatted some - code to conform to ACE programming guidelines. - - * ace/Naming_Context.cpp (parse_args): Oops, fixed a braino - related to strcmp(). Thanks to Valery Arkhangorodsky - for reporting this. - -Tue Apr 27 18:00:31 1999 Steve Huston - - * ace/OS.cpp (ACE_OS_CString, ACE_OS_WString): Fixed one-off error - in allocating new string's memory. - -Tue Apr 27 17:36:28 1999 Ossama Othman - - * m4/threads.m4: - - Restructured thread detection test so that it properly detects - threads on platforms that provide PTHREADS backward compatibility - macros, such as Digital Unix 4.0 and 5.0. - -Tue Apr 27 18:56:00 1999 Chris Gill - - * ace/Containers_T.{cpp, h} - tests/OrdMultiSet_Test.cpp: added a workaround for a problem with - implicit template instantiation and a do-nothing destructor - definition. Thanks to Sarmeesha Reddy and - Steven Tine for reporting this. - - * include/makeinclude/platform_psos_diab_ppc.GNU: changes to use - the board support package linker file. Thanks to Sarmeesha - Reddy and Steven Tine - for contributing this change. - -Tue Apr 27 16:30:57 1999 Ossama Othman - - * ace/UNIX_Addr.h (ACE_UNIX_Addr): - - Corrected typographical error in comment. - -Tue Apr 27 12:57:06 1999 Ossama Othman - - * configure.in: - - Removed `tests/log/Makefile' from the list of files to - generate (i.e. removed from AC_OUTPUT macro call). - - * tests/Makefile.am: - - Corrected a typo. I neglected to add "_SOURCES" to the end - of the Collection_Test source variable variable. Also added - more missing tests to the list of test programs. Commented out - Cache_Manager_Test. It appears to need a header that doesn't - exist. - - * ace/Makefile.am (pkginclude_HEADERS): - - Removed `Timer_Queue.i' from the list of headers. - - * bin/autogen: - * bin/bootstrap: - - Renamed the `autogen' script to `bootstrap'. - -Tue Apr 27 11:54:53 1999 Ossama Othman - - * configure.in: - - Temorarily removed my experimental C++ libtool support so that - I can get a semi-working test distribution out on the net. - - * ltconfig: - * ltmain.sh: - - Reverted to more stable version, i.e. w/o my C++ support. - - * m4/threads.m4: - - Added KAI C++ thread flag check. - -Tue Apr 27 11:45:40 1999 Irfan Pyarali - - * tests/Collection_Test.cpp (main): Added some additional array - tests and fixed template instantiation errors. Thanks to David - Levine for pointing them out. - - * ace/OS.h (ACE_DES_FREE): Changed all the ACE_DES* macros to - check for zero pointers. Thanks to Torsten Kuepper - for pointing this bug out. - -Tue Apr 27 11:08:35 1999 Nanbor Wang - - * ace/Basic_Types.h: Forced KAI compiler to use ACE_U_LongLong if - ACE_LACKS_LONGLONG_T is defined. - - * ace/DLL.cpp: - * ace/Service_Config.i: - * ace/Service_Object.i: - * ace/INET_Addr.cpp: Some CE related changes. - -Tue Apr 27 00:03:16 1999 Irfan Pyarali - - * tests/Collection_Test.cpp (main): Added test code for ACE_Array. - -Mon Apr 26 23:55:43 1999 Irfan Pyarali - - * ace/Synch_T.h (class ACE_Reverse_Lock): Removed constructor that - created the lock. There were two reasons for this: (a) it was - unrealistic that the reverse lock would own and create the - regular lock and (b) this constructor made it impossible that - ACE_Reverse_Lock can be used with ACE_Lock (the abstract - class). Thanks to Carlos for pointing this out. - -Mon Apr 26 21:43:23 1999 Ossama Othman - - * ace/Makefile.am (pkginclude_HEADERS, libACE_IPC_la_SOURCES): - - Added ATM_Addr sources to these variables. - - * ace/Makefile.am (EXTRA_libACE_la_SOURCES): - - Accidentally removed this variable. It is needed for - conditionally built sources, such as `gethrtime.cpp'. - - * tests/Makefile.am: - - Added newly added tests to the list of test programs to be built. - Changed "noinst_PROGRAMS" variable to "check_PROGRAMS" so that - tests only get built when a `make check' is issued by the user. - -Mon Apr 26 19:29:25 1999 Ossama Othman - - * tests/Reverse_Lock_Test.cpp (main): - - ACE_START_TEST macro had "Thread_Mutex_Test" instead of - "Reverse_Lock_Test." - -Mon Apr 26 17:01:22 1999 Steve Huston - - * ace/ACE.cpp (DllMain): Re-enabled this for use on Win32. - - * ace/OS.h (main): On non-pSoS, use ACE::init, ACE::fini rather than - creating object manager instances on the stack. Allows a single - instance regardless of program type; especially helpful on Win32. - - * ace/OS.cpp (ACE_OS_Object_Manager ctor): - * ace/Object_Manager.cpp (ACE_Object_Manager ctor): - Don't set instance_ if it was already set. So if two - ACE_Object_Manager instances end up getting created, the first one - stays The Instance, and the second gets used privately by its - creator. Previously, the original was forgotten. Thanks to David - Levine for working out this and the above details with me to get the - Win32 crowd in business without platform-specific hacks. - -Mon Apr 26 16:43:32 1999 Nanbor Wang - - * ace/Asynch_IO_Impl.h (ACE_Asynch_[Read|Write]_File_Impl): - Declared the read/write pure virtual methods of - ACE_Asynch_[Read|Write]_Stream_Impl again in these class to - avoid KAI compiler's overwriting pure virtual function - warnings. - -Mon Apr 26 10:54:23 1999 Carlos O'Ryan - - * ace/High_Res_Timer.h: - Moved the static method hrtime_to_tv to the public section. It - is useful outside this class. - - * ace/Synch_T.cpp: - The default constructor for ACE_Reverse_Lock should not allocate - the locking mechanism, otherwise it cannot work with ACE_Lock. - -Mon Apr 26 07:30:51 1999 Nanbor Wang - - * ace/OS.i (fstat): Changed to use CE's implementation and added - some features that're supported on other Win32 platforms. The - original implementation for Win32 closed down the file handle - accidentally which is not a "Good Thing[TM]". Thanks to Dominic - Williams for pointing this out. - -Sun Apr 25 21:35:37 1999 David L. Levine - - * ace/ACE.{h,cpp},OS.{h,cpp},Object_Manager.{h,cpp} (init,fini): - moved init_fini_count_ from ACE Object_Managers to ACE, so that - it is only used via ACE::init () and ACE::fini (). Thanks - to Steve Huston for pointing out that the old way didin't work - if an Object_Manager was created prior to starting main (), - and there were ACE::init ()/ACE::fini () calls in main (). - -Sun Apr 25 16:59:21 1999 Nanbor Wang - - * include/makeinclude/platform_sunos5_kcc.GNU: Fixed incorrect - compiler flags. - - * ace/config-sunos5.7.h: Added definition of uint64_t on KAI. - - * ace/config-kcc-common.h: Changed to use non-static object - manager. - Defined ACE_SIZEOF_LONGLONG. KAI compiler has type long long. - - * ace/OS.h: ACE_NOTREACHED should expand to nothing on KAI - compiler. - - * ace/CDR_Stream.h (ACE_CDR): KAI compiler doesn't have - longlong_t. - - * ace/Basic_Types.h: KAI compiler should define ACE_UINT64 as - unsigned long long. - -Sun Apr 25 14:52:18 1999 Douglas C. Schmidt - - * COPYING, - TAO/COPYING: Updated the ACE+TAO COPYING information to - emphasize the relationship to open source. Thanks to Malcolm - Spence for suggesting the wording. - -Sat Apr 24 23:03:31 1999 Alexander Babu Arulanthu - - * ACE_wrappers/ace/POSIX_Asynch_IO.cpp - * ACE_wrappers/ace/POSIX_Asynch_IO.h - * ACE_wrappers/ace/POSIX_Proactor.cpp - * ACE_wrappers/ace/POSIX_Proactor.h - * ACE_wrappers/ace/Proactor.cpp - * ACE_wrappers/ace/Proactor.h - * ACE_wrappers/ace/Proactor_Impl.h - - * ACE_wrappers/examples/Reactor/Proactor/Makefile - * ACE_wrappers/examples/Reactor/Proactor/README - * ACE_wrappers/examples/Reactor/Proactor/test_aiocb.cpp - * ACE_wrappers/examples/Reactor/Proactor/test_aiosig.cpp - * ACE_wrappers/examples/Reactor/Proactor/test_aiosig_ace.cpp - * ACE_wrappers/examples/Reactor/Proactor/test_proactor.cpp - * ACE_wrappers/examples/Reactor/Proactor/test_timeout.cpp - - - Completed Multithreading of POSIX_SIG_Proactor. - - - Introduced another constructor for ACE_POSIX_SIG_Proactor for taking - signal mask to be used with the Proactor. - - - Thanks to Dave Butenhof for helping a lot to - understand the various things in the POSIX4 standard. - - - Thanks to Dave suggestion of keeping null_handler for the sigaction - to real-time signals. With this and a couple of other correct POSIX - things SIG proactor is now working with in Solaris 2.7. - - - Lynx OS doesnt support , so it couldnt be - multithreaded. Enabled AIOCB_Proactor for this platform. - - - Added an example to make use of the real-time signal numbers for the - asynchronous I/O calls. - - * examples/Reactor/Proactor/test_posix_sig_proactor.cpp: 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. - - * ace/config-lynxos.h: Enabled ACE_POSIX_AIOCB_PROACTOR for this - platform, since was not available. Without - , SIG_Proactor can not work correctly. - - * ace/config-linux-lxpthreads.h: Removed ACE_HAS_AIO_CALLS. Even - simple aio calls test is hanging. - -Sat Apr 24 13:09:27 1999 Douglas C. Schmidt - - * ace/Containers_T.h: Added allocator support to ACE_Array. - Thakns to Paul Francis for contributing this. - - * ace/Future.h (class ACE_Future): Make sure to mention that - get()'s ACE_Time_Value must be in absolute, not relative, time. - Thanks to Ian MacDonald for reporting this. - -Sat Apr 24 07:24:51 1999 David L. Levine - - * tests/Reverse_Lock_Test.cpp: removed ACE_Guard - instantiation because it's in ace/Synch.cpp. - - * ace/config-vxworks5.x.h: added ACE_THR_PRI_OTHER_DEF - #define, for use by MT_Cubit. - - * ace/Object_Manager.cpp, OS.cpp (fini): unconditionally set - instance_ to 0 at the end. This allows init () to - work properly if called after fini (), such as for - repeated test on VxWorks. Thanks to Todd Mullanix - for reporting this. - -Fri Apr 23 17:53:24 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - for PPC860, changed -m=860 to -mcpu=860. Thanks to - Todd Mullanix for reporting this. - -Fri Apr 23 15:48:31 1999 James Hu - - * ace/OS.h: - * ace/OS.i: - * ace/README: - * ace/config-sunos5.5.h: added support for the memchr - library call, and created ACE_HAS_MEMCHR macro. - -Fri Apr 23 10:48:31 1999 David L. Levine - - * tests/New_Fail_Test.cpp (main): added uses of the - two static functions when they're not otherwise used, - to prevent g++ warnings. - -Fri Apr 23 09:11:24 1999 Carlos O'Ryan - - * tests/Reverse_Lock_Test.cpp: - Fixed template instantiation problems. - -Thu Apr 22 21:39:44 1999 Ossama Othman - - * tests/Makefile.am: - - Added support to create the `tests/log' directory after - the tests have been built. - - * tests/log/Makefile.am - - The above change deprecates this Makefile.am file. Thanks to - Nanbor for motivating this change. - -Thu Apr 22 20:50:30 1999 Jeff Parsons - - * ace/CDR_Stream.i: Modified reset() to reset all the message - blocks, instead of just the first one as it had previously done. - Thanks to Jerry D. De Master for pointing - out the problem and suggesting a fix. - -Thu Apr 22 19:40:52 1999 Steve Huston - - * ace/OS.h: Adjust exception thrown at out-of-memory for HP-UX, aC++. - - * ace/config-hpux-10.x-hpc++.h: Add ACE_NEW_THROWS_EXCEPTIONS. - -Thu Apr 22 19:30:01 1999 Irfan Pyarali - - * ace/Synch_T.h (class ACE_Reverse_Lock): Added an interesting - adapter class that changes a lock into a reverse lock, i.e., - acquire() on this class calls release() on the lock, and - release() on this class calls acquire() on the lock. - - One motivation for this class is when we temporarily want to - release a lock (which we have already acquired) but then - reaquire it soon after. An alternative design would be to add a - Anti_Guard or Reverse_Guard class which would release() on - construction and acquire() destruction. However, there are - *many* varieties of the Guard class and this design choice would - lead to at least 6 new classes. One new ACE_Reverse_Lock class - seemed more reasonable. - - * tests/Reverse_Lock_Test.cpp: Test for the new ACE_Reverse_Lock - class. - - * tests/Env_Value_Test.cpp (main): Fixed UNICODE string - concatenation problem. - - * tests/version_tests: Added a bunch of missing project files. - - * ace/ace_lib.dsp: Added missing files. - -Thu Apr 22 19:10:52 1999 Steve Huston - - * ace/ATM_Addr.cpp: Put in class's consts for non-FORE platforms. - -Thu Apr 22 17:05:36 1999 Nanbor Wang - - * bin/auto_compile_win32.pl: Added version_tests. - - * include/makeinclude/platform_sunos5_kcc.GNU: Makefile macros for - KAI C++ compiler. - - * ace/config-sunos5.5.h: Added KAI C++ compiler support. - - * docs/exceptions.html: Explicitly state that ACE try macros will - replace TAO try macros and advise users to take action if they - are still using TAO try macros. Thanks to Don Busch - for pointing this out. - -Thu Apr 22 15:07:10 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - added PPC860 support. Thanks to Todd Mullanix - figuring out how to - support it, with help from Thomas Mehrkam - and Hai Vu . - -Thu Apr 22 13:26:26 1999 Irfan Pyarali - - * ace/XtReactor.cpp (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. Thanks to JM - Strauss for contributing these changes. - -Thu Apr 22 13:23:00 1999 Chris Gill - - * include/makeinclude/platform_psos_diab_ppc.GNU: commented out -g - switch which was triggering a bug in the Diab 4.2b compiler when - compiling in debug information. This is supposed to be fixed in - the 4.3a release of the Diab compiler. The ACE tests all compile - now for pSOS/PPC. Thanks to Sarmeesha Reddy - for reporting the bug to Diab and obtaining the workaround. - -Thu Apr 22 10:46:17 1999 Steve Huston - - * apps/JAWS/server: Added $(ACELIB) to LDLIBS to build libJAWS on AIX - with xlC. - - * tests/New_Fail_Test.cpp: Added __GNUG__ to the platforms which do not - actually perform the test; added some more explanation and a better - log message for when it doesn't actually run. - -Thu Apr 22 10:28:39 1999 David L. Levine - - * ace/config-minimal.h: removed suppression of ACE_TSS_EMULATION - and enable of ACE_USE_THREAD_MANAGER_ADAPTER. They're no - longer necessary with the clean OS.cpp. - -Thu Apr 22 08:52:48 1999 Steve Huston - - * tests/New_Fail_Test.cpp: Fixed to compile clean without exceptions. - - * tests/run_tests.{sh bat}: Added New_Fail_Test. - -Wed Apr 21 16:41:08 1999 David L. Levine - - * tests/Reactor_Performance_Test.cpp (main): added 10 second - time limit to run_event_loop () call. That prevents the - test from hanging forever if some of the connections - are lost. - - * tests/Priority_Reactor_Test.cpp: default to 5 children - instead of 10 on LynxOS. Beyond 8, the test seems to - take forever on LynxOS 3.0.0. - - * tests/run_tests.sh: enabled Reactor_Performance_Test, - Priority_Reactor_Test, Time_Service_Test, and Tokens_Test - on LynxOS. - -Wed Apr 21 16:35:21 1999 Steve Huston - - * tests/New_Fail_Test.cpp: Test to be sure that the ACE_NEW[_RETURN] - stuff works correctly when heap is exhausted. - * tests/Makefile: Added New_Fail_Test. - * tests/tests.dsw, New_Fail_Test.dsp: Add new test to MSVC. - -Wed Apr 21 15:35:44 1999 Steve Huston - - * ace/ACE.cpp: On Win32, with ACE_HAS_NONSTATIC_OBJECT_MANAGER, use - DllMain to do ACE::init() and ACE::fini(). - - * tests/ACE_Init_Test.dsp, - * tests/ACE_Init_Test.{cpp h}, - * tests/ACE_Init_TestDlg.{cpp h}, - * tests/ACE_Init_Test.(ico rc rc2 res}, - * tests/ACE_Init_Test_(Resource StdAfx}.h: New test to be sure that - ACE DLL is initialized properly from an MFC app. - - * tests/tests.dsw: Added ACE_Init_Test.dsp project. - -Wed Apr 21 14:59:04 1999 David L. Levine - - * ace/OS.cpp (ACE_OS_Object_Manager::fini): on LynxOS only, - disabled ACE_{recursive/thread}_mutex_destroy () calls, because - they failed on LynxOS in forked children. The prevents - the failure message from being printed, with no apparent - ill effect. - -Wed Apr 21 10:06:11 1999 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU: Moved -lthread from - the all-Orbix section to the MT-Orbix section for LIBS. - -Wed Apr 21 09:25:16 1999 David L. Levine - - * tests/Upgradable_RW_Test.cpp (main): replaced ACE_SCHED_FIFO - with THR_SCHED_FIFO in activate call. Thanks to Carlos for - finding this subtle error. - -Wed Apr 21 03:34:18 1999 Douglas C. Schmidt - - * ACE version 4.6.37 released. - -Tue Apr 20 22:55:18 1999 David L. Levine - - * ace/OS.i (thr_join): ifdef ACE_LACKS_PTHREAD_NULL_STATUS, - provide the address of a temporary variable for the status - argument of ::pthread_join (), if the caller passed 0. - - * ace/config-lynxos.h,README: added ACE_LACKS_PTHREAD_NULL_STATUS. - LynxOS 3.0.0 fails ::pthread_join () calls with EFAULT - if the second (status) argument is 0. - -Tue Apr 20 21:53:32 1999 Joe Hoffert - - * examples/IPC_SAP/TLI_SAP/Makefile: Had inadvertently checked in - local changes. Now undoing these changes. - -Tue Apr 20 18:25:45 1999 Douglas C. Schmidt - - * ace/{SOCK,TLI,LSOCK,Asynch}_Acceptor.h: Replaced the use of the - hard-coded backlog value of 5 with ACE_DEFAULT_BACKLOG. Thanks - to Irfan for motivating this. - - * ace/OS.h: Added a new (overriddable) macro called - ACE_DEFAULT_BACKLOG that's used to control the default number of - connections that can be accepted by an OS. The default value is - 5. - -Tue Apr 20 18:22:00 1999 Chris Gill - - * ace/Map_T.i - ace/config-psos-diab-mips.h - ace/config-psos-diab-ppc.h - ace/config-psos-diab.h - include/makeinclude/platform_psos_diab_ppc.GNU - tests/Handle_Set_Test.cpp - tests/Process_Strategy_Test.cpp: fixed the remaining tests - for which compiler bug workarounds were available for pSOS - PPC with the Diab 4.2b compiler. - -Tue Apr 20 16:41:39 1999 Nanbor Wang - - * ace/Thread_Manager.cpp (num_tasks_in_group): Make sure we are - not searching for a null task. Thanks to Umar Syyid - for pointing this out. - -Tue Apr 20 15:10:33 1999 Irfan Pyarali - - * tests/Reactor_Performance_Test.cpp: Changed the default number - of connections () from 20 to 5 for NT. This - seems reasonable since the default backlog is 5. Once we have - the ability to set the backlog from the ACE_Acceptor class, we - can increase this number. - -Tue Apr 20 13:55:34 1999 Joe Hoffert - - * ace/OS.i: Fixed ACE_OS::t_free to free memory if pointer is not - null. - - * ace/TLI.h: Added default ACE_XTI_ATM_DEVICE. - - * ace/TLI_Connector.cpp: Disabled non-blocking connects for XTI/ATM - since FORE's drivers have problems with this. Also, fixed t_alloc - memory leaks. - - * ace/ATM_Addr.cpp: Added code formatting change. - - * examples/IPC_SAP/TLI_SAP/CPP-ATM-{server,client}.cpp: Added - the use of ACE_XTI_ATM_DEVICE - -Tue Apr 20 13:30:51 1999 Douglas C. Schmidt - - * ace/ace.icc: Added a configuration file for creating a shared - library with Visual Age C++. - -Mon Apr 19 23:50:25 1999 Irfan Pyarali - - * tests/Time_Service_Test.cpp (main): Fixed error message. - - * ace/Connector.cpp (handle_close): Removed unused argument - . - -Mon Apr 19 17:17:47 1999 Steve Huston - - * docs/tutorials/tutorials.dsw: Fixed project file name for 019-021. - -Mon Apr 19 17:02:42 1999 Irfan Pyarali - - * ace/Connector.cpp (handle_close): There is no need to call - cancel_timer() or remove_handler() from handle_close(). Removal - of all svc tuples from the is done by . - -Mon Apr 19 16:45:54 1999 David L. Levine - - * ace/OS.{h,cpp},Object_Manager.{h,cpp} (ACE_OS_Object_Manager, - ACE_Object_Manager: added static counter to match init ()/fini () - calls. Don't destroy Object_Managers until final fini () call. - Thanks to Ian MacDonald for tracking down - the problem with multiple DLLs in a process. This change - delays destruction of the ACE_Object_Manager until the final - fini () call. - -Mon Apr 19 15:24:55 1999 Douglas C. Schmidt - - * ace/TLI_Stream.cpp (ACE_TLI_Stream): Make sure to set the value - of rwflag_ to 0 so that purify is happy. Thanks to Joe Hoffert - for reporting this. - -Mon Apr 19 14:35:42 1999 Irfan Pyarali - - * examples/IPC_SAP/UPIPE_SAP/ex2.cpp (supplier): - * examples/IPC_SAP/UPIPE_SAP/ex3.cpp (consumer): - - Avoided annoying g++ warning about by explicitly - making a temporary. Thanks to David for pointing this out. - -Sun Apr 18 21:52:43 1999 David L. Levine - - * ace/config-linux-common.h: moved ACE_LACKS_MADVISE to - non-glibc section. Thanks to JM Strauss - for reporting that it wasn't on a Linux system with a - 2.0.35 kernel. - -Sun Apr 18 16:36:30 1999 Ossama Othman - - * ace/config-linux-common.h (ACE_LACKS_MADVISE): - - Re-enabled #define ACE_LACKS_MADVISE. Linux doesn't appear - to have an madvise() system call. - - * configure.in: - * tests/Makefile.am: - - Added libtool support for modules (dlopened libraries). - -Sun Apr 18 08:48:37 1999 David L. Levine - - * ace/Auto_Ptr.i: reordered inline methods to avoid use before - definition. Fixed a few ACE_TRACE comments. - -Sun Apr 18 00:26:28 1999 Irfan Pyarali - - * tests/Notify_Performance_Test.cpp (main): - * tests/Reactor_Performance_Test.cpp (main): - * tests/Priority_Reactor_Test.cpp (main): - - Avoided annoying g++ warning about by explicitly - making a temporary. Thanks to David for pointing this out. - -Sat Apr 17 18:52:38 1999 Irfan Pyarali - - * ace/Memory_Pool.cpp (acquire): Changed use of auto_ptr. - - * ace/Auto_Ptr.i (operator=): Changed to . Thanks to - David Levine and Jean-Marc Strauss - for reporting this. - -Sat Apr 17 08:34:22 1999 David L. Levine - - * examples/Naming/Makefile,performance-tests/Misc/Makefile, - tests/Makefile,all netsvcs Makefiles: - updated for proper support of ACE subsets, with BIN2/LIB2/SHLIB2. - -Fri Apr 16 22:14:36 1999 Irfan Pyarali - - * ace/Auto_Ptr: Made several changes to bring the implementation - up to the specification: - - - Made the constructors take non-const parameters. - - Made release() non-const. - - Added reset(). - - Thanks to Simeon Simeonov , Rainer Blome - , Jody Hagins , and John - Mulhern for helping. - - * tests/Reactor_Performance_Test.cpp: Updated to work with new - auto pointer implementation. - -Fri Apr 16 19:36:35 1999 Alexander Babu Arulanthu - - * ace/Proactor.h (ACE_Proactor): Switched the order of TIMER_QUEUE - and delete_implementation in the constructor. - - * examples/Reactor/Proactor/test_multiple_loops.cpp: Fixed to work - on the WIN32 correctly. This can work only on WIN32 (combining - Proactor with Reactor's event loop). So I have put a #if defined - around the file. - -Fri Apr 16 18:09:44 1999 Irfan Pyarali - - * tests/Conn_Test.cpp (server): If we timeout on accept(), it is - not an error, and should not be reported as one. Thanks to - Thomas Mehrkam for pointing this out. - -Fri Apr 16 13:08:49 1999 David L. Levine - - * ace/OS.{h,cpp},ACE.{h,cpp}: (read_n,send_n,write_n): moved - from ACE to ACE_OS, so that the uses in OS.cpp could be localized. - The ACE versions are now just wrappers over the ACE_OS - versions, for backward compatibility. Thanks to - Erik Ivanenko for reporting - that OS.cpp used a couple of the ACE static member functions. - -Fri Apr 16 10:13:14 1999 David L. Levine - - * include/makeinclude/rules.nested.GNU,ACE-INSTALL.html: added - support for recursive make invocations with Windows NT's shell. - Thanks to Dave Steele for diagnosing the - problem, and Tres Seaver for providing - the wild NT FOR command. Check it out, Darrell. - -Fri Apr 16 07:52:11 1999 Darrell Brunsch - - * ace/High_Res_Timer.cpp: Fixed my previous fix with - calibrate being called on Windows NT when a high-res - timer of 1 Mhz was being found. Calibrate should not - be called on NT now. Thanks to Zoran Ivanovic - for noticing this. - - * ace/Profile_Timer.cpp: Integrated the patch from Andy - Marchewka for returning rusage information - from elapsed_time. - -Thu Apr 15 16:50:21 1999 David L. Levine - - * ACE-INSTALL.html: updated discussion of "dir unexpected" - error when building for VxWorks on NT. Thanks to - Dave Steele for providing the - insight. - -Thu Apr 15 14:04:36 1999 David L. Levine - - * include/makeinclude/rules.lib.GNU: don't call $(RANLIB) - if it is null. - - * include/makeinclude/platform_vxworks5.x_{g++,ghs}.GNU: removed - RANLIB definition, so that it will be null. This prevents - calling "true" on NT hosts. - - Thanks to Thomas Mehrkam for reporting - that his NT host doesn't have "true". - -Thu Apr 15 14:00:00 1999 Chris Gill - - * ace/OS.{h, i}: simplified the conditional compilation logic - for a couple of the pSOS-specific ACE_OS methods, removed a - handful of marker comments, added a conditional compilation - branch for pid_t declaration. - -Wed Apr 14 22:40:08 1999 David L. Levine - - * tests/run_tests.sh: call run_tests.check via sh, to support - platforms that don't have /bin/sh. Thanks to Thomas Mehrkam - for reporting that his NT host doesn't - have /bin/sh. - -Wed Apr 14 18:56:00 1999 Chris Gill - - * ace/OS.{h, i} - ace/config-psos-diab-ppc.h - include/makeinclude/platform_psos_diab_ppc.GNU: changes to adapt - the pSOS Diab 68k/MIPS port to PPC. Many thanks to Sarmeesha - Reddy and Steven Tine - for contributing these changes. - -Wed Apr 14 17:06:22 1999 David L. Levine - - * ace/config-vxworks5.x.h: added #define ACE_HAS_DLL 0. - Thanks to Thomas Mehrkam for - reporting that it's necessary on NT hosts. - -Wed Apr 14 13:10:48 1999 Alexander Babu Arulanthu - - * ace/config-sunos5.7.h: - Enabled ACE_HAS_AIO_CALLS for Solaris - 7. ACE_POSIX_AIOCB_PROACTOR works now on this. - * examples/Reactor/Proactor/test_aiocb.cpp: Updated comments. - * ace/config-sunos5.6.h: Removed the ACE_AIORETURN/ERROR macros. - * ace/Proactor.cpp (ACE_Proactor): Removed debug print statments. - * ace/config-lynxos.h: Removed the ACE_AIORETURN/ERROR macros. - * ace/POSIX_Proactor.cpp: - * ace/WIN32_Asynch_IO.h: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Proactor.h: - * ace/WIN32_Proactor.cpp: - * ace/Proactor_Impl.h: - Completed committing changes related to the - additions done earlier. - -Wed Apr 14 09:07:38 EDT 1999 Aniruddha Gokhale - - * ace/POSIX_Proactor.cpp: - - Several methods were missing the "int signal_number" parameter - that was added as mentioned in the log entry below. In addition, - an undefined ACE_SIG_AIO flag was used. I found a log entry in - ChangeLog-98b which says that ACE_SIG_AIO is ACE_SIGRTMIN. So I - replaced the 5 occurrences of ACE_SIG_AIO with ACE_SIGRTMIN. - -Wed Apr 14 02:34:13 1999 Alexander Babu Arulanthu - - Added additional parameter to all the Asynchronos - Operation method so that we can specify which real-time signal should - be used for each of the Asynchronous Operation. This only makes sense - in the ACE_SIG_Proactor configuration. - - * ace/Asynch_IO_Impl.h: - * ace/Asynch_IO.h: - * ace/Asynch_IO.cpp: - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Proactor.h: - - - For each asynchronous call issued, the real-time signal is - registered with the Proactor so that it can wait for the completions - using that signal. Previously, the signal number for all the - operations was the same signal and it was hard coded. - - - method which earlier existed only for - has been added to - also. just takes the from the result - object and registers the signal number. Registering involves, - masking the signal, setting the signal delivery for that RT signal - etc. - - - Allowing to specify signal number for each operation can be useful, - since the order in which the completions are delivered from the - completion queue, is based on the signal numbers in addition to the - priority. Applications might want to leverage this. - - * ace/OS.h: - OS.h has been defined with ACE_SIGRTMIN and ACE_SIGRTMAX, which are - defined to SIGRTMIN and SIGRTMAX respectively, for POSIX4 - platforms. For others, they are 0. - -Tue Apr 13 15:29:37 1999 David L. Levine - - * ace/Object_Manager.cpp: moved ACE_Service_Config signal - handler allocation from constructor to init (). Tidy, - tidy, tidy. - -Tue Apr 13 14:52:15 1999 Joe Hoffert - - * ace/ATM_Addr.cpp: Fixed g++ warnings of unused parameters. - -Tue Apr 13 14:47:18 1999 David L. Levine - - * tests/Basic_Types_Test.cpp (main): replaced call to sysconf () - with ACE_OS::sysconf (). Thanks to Erik Ivanenko - for noticing this. - -Tue Apr 13 14:17:48 1999 David L. Levine - - * ace/OS.cpp: replaced use of ACE_TSS with ACE_WIN32 or - ACE_HAS_TSS_EMULATION with native use of ACE_OS TSS, to remove - dependency on ace/Synch.h. Also, changed ACE_OS::NULL_key to - be -1 instead of 0 with ACE_HAS_TSS_EMULATION. - -Tue Apr 13 09:05:25 1999 David L. Levine - - * ace/Sched_Params.i (ACE_Sched_Priority_Iterator): removed - ACE_TRACE's, because Sched_Param is in the ACE_OS (lowest) - component. Thanks to Erik Ivanenko - for reporting this. - -Tue Apr 13 08:21:41 1999 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU - * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: Added a make - option, mt_orbix, to control whether the MT or non-MT variant of - Orbix is used. Default is MT; to use non-MT, "make mt_orbix=0". - - * ace/config-sunos5.x-sunc++-4.x-orbix.h: Include correct config-sunos5 - file based on OS version at compile time. Allow site config to - specify ACE_HAS_MT_ORBIX 0. - -Mon Apr 12 14:24:28 1999 David L. Levine - - * include/makeinclude/rules.local.GNU (realclean.local): - added BIN2, LIB2, SHLIB2, and SHLIBA2 to support - subsetting. It allows realclean to remove old BIN, - LIB, SHLIB, and SHLIBA targets after remove the - ace_components information file. Also, removed explicit - -f following $(RM). -f should be included in the RM macro - if appropriate for the platform. - -Mon Apr 12 13:01:32 1999 David L. Levine - - * ace/gethrtime.cpp (ACE_gethrtime),Makefile: added support for - rdtsc instruction with GHS on Intel targets. Thanks to - Andy Alvarez for providing the assembly - instructions to do this! - -Mon Apr 12 12:04:20 1999 Joe Hoffert - - * ace/Makefile,ATM_Addr.cpp: - Added ACE_ATM_Addr class back into Makefile since it's working - now. Fixed address initialization problem in ACE_ATM_Addr. - NOTE: This code currently only works with Solaris 2.5/2.6. Will - need to update the code for FORE's implementation on Solaris 2.7. - NOTE: To use FORE's XTI/ATM implementation the following #defines - need to be included (typically in ace/config.h): - #define ACE_HAS_FORE_ATM_XTI - #define ACE_HAS_TIUSER_H_BROKEN_EXTERN_C - #define ACE_TLI_TCP_DEVICE "/dev/xtisvc*" //(e.g., /dev/xtisvc0) - AND the following flags are needed to build the ace library - (typically in include/makeinclude/platform_macros.GNU): - CPPFLAGS += -I$(FORE_ROOT)/include - -Mon Apr 12 10:04:31 1999 Carlos O'Ryan - - * include/makeinclude/rules.local.GNU: - The default rule to compile .idl files is only enabled if - TAO_ROOT is not defined, otherwise we should use the rule in - $TAO_ROOT/rules.tao.GNU - -Mon Apr 12 00:18:23 1999 Douglas C. Schmidt - - * ACE version 4.6.36 released. - -Sun Apr 11 17:06:53 1999 Alexander Babu Arulanthu - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (run_client): Fixed - the warnings on Linux (config-linux.h). - -Sun Apr 11 16:09:16 1999 Douglas C. Schmidt - - * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (run_client): Made - some fixes if ACE_MT_SAFE is false... Thanks to Alex for - reporting these. - -Sun Apr 11 16:02:49 1999 Alexander Babu Arulanthu - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp (create_handler): - Fixed the warnings (control reaching end of block) and error (passing - u_long to close) which showed up on Linux(with config-linux.h) - - * performance-tests/Misc/preempt.cpp, - * examples/Threads/task_five.cpp: Replaced ACE_MT_SYNCH by - ACE_SYNCH to get it compile on Linux. - -Sun Apr 11 14:38:22 1999 Ossama Othman - - * configure.in: Added test for ACE_NEEDS_FUNC_DEFINITIONS. - Corrected bug in ACE_TEMPLATES_REQUIRE_SOURCE test. - -Sat Apr 10 14:02:11 1999 Douglas C. Schmidt - - * ace/Malloc[_Base]: Added a new no-op constructor for - ACE_Allocator to hopefully work around a problem with DEC UNIX - C++. - -Fri Apr 09 10:08:49 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - enable -fno-implicit-templates for targets other than - Intel. It appears to work for PPC targets, and is necessary - to avoid compiler warnings about different symbol sizes - in object files. Thanks to Thomas Mehrkam - for tracking down the source of the warnings, and verifying - that -fno-implicit-templates works for PPC targets. - -Fri Apr 09 08:14:55 1999 David L. Levine - - * include/makeinclude/rules.local.GNU: replaced "ln -s" with - $(LN_S), and set that to "ln -s" by default. Thanks to - Rainer Blome for suggesting this. - -Fri Apr 9 00:38:03 1999 Douglas C. Schmidt - - * ace/SOCK_Acceptor.cpp (shared_accept): Make sure to disable - ACE_NONBLOCK on the newly accepted socket since otherwise - applications can have weird behavior. Thanks to Margaret Reitz - and Irfan for helping to track this down. - -Thu Apr 08 13:47:03 1999 David L. Levine - - * BUG-REPORT-FORM,PROBLEM-REPORT-FORM, - README,VERSION,Makefile,Makefile.am,bin/make_release, - docs/ACE-bug-process.html: moved BUG-REPORT-FORM - to PROBLEM-REPORT-FORM. Thanks to Thomas Lockhart - for suggesting this. - - * docs/ACE-guidelines.html: added checklist for ACE/TAO changes, - including commit with a meaningful message, update a - ChangeLog, and ack and respond to the requestor. - -Thu Apr 8 13:18:22 1999 Alexander Babu Arulanthu - - * ace/SString.h: Updated the documentation to show that "Memory is - _not_ allocated/freed if is 0". - -Wed Apr 7 20:24:48 1999 Nanbor Wang - - * ace/CORBA_macros.h (ACE_DECLARE_NEW_CORBA_ENV): Removed the - trailing semi-column. Thanks to Marina for the reminder. - -Wed Apr 7 19:09:05 1999 Douglas C. Schmidt - - * ace/Containers_T: Replaced all Foo &Foo::operator=() with void - Foo::operator=() to avoid nasty problems with propagation of - errors. Thanks to Chris Schleicher for - reporting this. - -Wed Apr 07 17:25:07 1999 Nanbor Wang - - * apps/Gateway/Gateway/connection_config: Changed the connection 1 - and 2 to use localhost since it would probably be the most - common test case. - - * apps/Gateway/README: Replaced all references of proxy_config - to connection_config. Also change the example port number to - 10011 and 10012 which are the default port number used by the - gatewayd. - - Thanks to Sam Rhine for reporting - this. - -Wed Apr 7 16:36:41 1999 Darrell Brunsch - - * ACE-INSTALL.html: Put a note in saying to rebuild all - when upgrading releases. - -Wed Apr 07 14:25:47 1999 Joe Hoffert - - * ace/ATM_Addr.{h,cpp}: modified files to compile for - machines without FORE XTI/ATM support. - - * examples/IPC_SAP/TLI_SAP/CPP-{server,client}.cpp: - modified files to take out XTI/ATM code. - - * examples/IPC_SAP/TLI_SAP/Makefile,CPP-ATM-{server,client}.cpp: - added separate test files for XTI/ATM - -Wed Apr 7 14:20:59 1999 Jeff Parsons - - * ace/Basic_Types.h: - Added a signed companion to David's - ACE_UINT64_LITERAL, to avoid MSVC warnings. If - the platform has no 8-byte integer, this is - useless, but we must keep all compilers happy. - Also modified ACE_INT64_MAX tp use this, and - added a signed companion to - ACE_UINT64_FORMAT_SPECIFIER. - -Wed Apr 07 13:57:33 1999 David L. Levine - - * ACE-INSTALL.html: updated egcs shared library discussion - with information from Tim Rose - that egcs 1.1.1 statics libs work fine on Solaris 2.6. - -Wed Apr 07 13:14:34 1999 Nanbor Wang - - * ace/Service_Object.{h,i} (fini_called): Accessor to the - underlying fini_already_called_ flag. - - * ace/Service_Repository.cpp (find_i): Disallowed returning a - service which fini() has been called upon. - -Wed Apr 7 11:30:09 1999 Carlos O'Ryan - - * bin/auto_compile: - Added more tests to the script. - -Wed Apr 07 09:54:28 1999 David L. Levine - - * include/makeinclude/rules.local.GNU: instead of trying to - overwrite an existing symlink with ln -f, remove it first. - Thanks to Keith Rohrer for reporting that - Solaris' ln -f doesn't work. - - * ace/config-vxworks_5.x.h: added ACE_HAS_RECURSIVE_MUTEXES. - Thanks to Tom Venturella - for suggesting this, because the VxWorks semaphores that - ACE uses for mutexes are recursive. - - * ace/Synch.i (set_thread_id): added ACE_UNUSED_ARG (t), with - ACE_HAS_RECURSIVE_MUTEXES. - -Wed Apr 07 09:37:34 1999 David L. Levine - - * include/makeinclude/platform_osf1_4.0.GNU: disable warning - 1016 when optimization is enabled. That gets rid of the - "D:incint" warning about bzero in sys/select.h. - - * docs/ACE-guidelines.html: always use $(RM) instead of rm or - rm -f in Makefiles. - -Wed Apr 07 02:42:50 1999 Douglas C. Schmidt - - * ACE version 4.6.35 released. - -Wed Apr 07 02:04:30 1999 Douglas C. Schmidt - - * ACE version 4.6.34 released. - -Tue Apr 6 21:09:32 1999 Douglas C. Schmidt - - * ace/ATM_Addr: Added the ATM_Addr.* files into the CVS - respository. However, we're not going to enable this in the - Makefile or project files until they are tested. - -Tue Apr 6 20:48:16 1999 Jeff Parsons - - * ace/Basic_Types.h: - Added max and min #defines for various ACE data types. Now, - when using the ACE or ACE_CDR data types, we need not - depend on the vagaries of limits.h and float. - -Tue Apr 6 20:39:01 1999 Ossama Othman - - * ace/Log_Record.cpp (format_msg): - * ace/Log_Record.cpp (print): - - Changed host_name[] to *host_name since null pointers were being - passed into the host_name array. Strictly speaking, host_name - should thus be a pointer, not an array. Also cleaned up - ternary operator in format_msg() by parenthesizing some - expressions. - -Tue Apr 6 20:19:23 1999 Douglas C. Schmidt - - * ace/Makefile: Removed the ATM_Addr files until Joe can - get them checked in. - -Tue Apr 06 19:36:24 1999 Irfan Pyarali - - * ace/Active_Map_Manager.h (ACE_Active_Map_Manager_Key): Added a - separate structure that holds the fields of the key. This - separate structure makes it easier to manage copying the index - and the generation to and from the user buffer. - -Tue Apr 6 16:07:29 1999 Douglas C. Schmidt - - * ace/Synch.cpp (get_thread_id): If we have recursive mutexes then - it's not possible to get the id of the thread that's currently - holding the mutex. Thanks to David for reporting this. - -Tue Apr 6 15:50:14 1999 Balachandran Natarajan - - * docs/exceptions.html: - Updated the documentation. - -Tue Apr 6 15:25:56 1999 Darrell Brunsch - - * ace/High_Res_Timer.{h,i,cpp}: On Win32, don't call calibrate if - we cannot get the scale factor. Instead, just automatically - fall back on ACE_OS::gettimeofday (). - - Also added another static variable to represent the conditions - where the global scale factor is not set yet or high resolution - timers are not supported. - -Tue Apr 06 15:14:29 1999 David L. Levine - - * ace/Basic_Types.h: added ACE_UINT64_LITERAL for platforms - with ACE_LACKS_U_LONGLONG_T. - - * tests/Basic_Types_Test.cpp: added test of ACE_UINT64_LITERAL. - -Tue Apr 06 14:54:56 1999 Nanbor Wang - - * tests/Message_Queue_Test.cpp (performance_test): - * tests/Message_Queue_Notifications_Test.cpp (producer): Unicode - related change. - - * ace/ace_ce_dll.dsp: Added Active_Map_Manager.cpp. - - * ace/OS.h: - * ace/config-WinCE.h: CE now uses non-static object manager. - - * WindozeCE/WindozeCE.h: Instantiate the non-static object manager - within the class. - - * WindozeCE/WindozeCEDlg.cpp: We should register the bridge window - using its HANDLE so it would work no matter we build ACE with or - without MFC support. - -Tue Apr 6 14:17:06 1999 Joe Hoffert - - * ace/OS.h: Added support for the FORE ATM XTI interface. - - * ace/TLI_{Acceptor,Connector}: Added support for the FORE ATM XTI - interface. - - * ace/ATM_Addr: Added support for ATM address for the XTI ATM - driver. Eventually, this class will be generalized to work on - WinSock 2 ATM support, as well. - -Tue Apr 06 13:56:18 1999 Thomas Lockhart - - * include/makeinclude/rules.local.GNU: added -f to ln -s commands, - to force overwrite of old symlink. This eases moving of - installed ACE code trees. - -Tue Apr 6 00:17:59 1999 Kirthika Parameswaran - - * ace/DLL {.h, .cpp} (set_handle): Added the set_handle () method - which allows the user to set the ACE_SHLIB_HANDLE for the DLL. - Thanks to Bob McWhirter for bringing up this point. - -Mon Apr 5 22:27:02 1999 Douglas C. Schmidt - - * ace/config-irix6.x-sgic++-nothreads.h: Added - - #if !defined (ACE_HAS_NETDB_REENTRANT_FUNCTIONS) - #define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS - #endif /* ACE_HAS_NETDB_REENTRANT_FUNCTIONS */ - - to fix a problem with SGI 6.5. Thanks to Bob Laferrie - for reporting this. - -Mon Apr 5 19:42:11 1999 Ossama Othman - - * configure.in: - * m4/acinclude.m4: - - Created the macro ACE_CHECK_FOR_CVS_DIR to prevent the configure - script from continuing the configuration if the current - configuration directory is in a CVS controlled directory. The - idea is to prevent automatically generated files from being - checked into the repository. This will prevent accidental - overwrites of ACE's current Makefiles by the automatically - generated ones, for example. - - In addition, this should ease the transition from the current - Makefile scheme to the new Auto{conf,make}/libtool scheme since - the current Makefiles can remain under CVS control without - the generate Makefiles interfering with them. - -Mon Apr 05 17:02:46 1999 David L. Levine - - * ace/High_Res_Timer.cpp (global_scale_factor ()): removed - comment that said we use BogoMIPS on Linux/Intel. We - only use it on Linux/alpha. Thanks to - Thomas Lockhart for - reporting this. - -Mon Apr 5 15:54:57 1999 Darrell Brunsch - - * ace/Profile_Timer.i: Removed ACE_OS::gettimeofday () - calls from start and stop. - -Mon Apr 05 15:09:49 1999 David L. Levine - - * ace/OS.h: removed second #include of netdb.h. Thanks to - John H Aughey for reporting this. - -Mon Apr 05 14:17:31 1999 David L. Levine - - * ace/Trace.cpp: removed unnecessary (and complicated) - #include of ace/ACE.h. - -Mon Apr 5 13:21:49 1999 Alexander Babu Arulanthu - - * ace/Proactor.cpp: - (svc): - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Proactor.h: - * ace/Proactor.h: - * ace/Proactor_Impl.h: - * ace/WIN32_Proactor.cpp: - * ace/WIN32_Proactor.h: - * examples/Reactor/Proactor/test_timeout.cpp: - Completed Timers implementation for POSIX platforms. Timers - implementation is now common for POSIX and WIN32. Portable - ACE_Auto_Event is used in the auxillary thread to wait for the - Timer events. - The Timer's code in WIN32 has been removed and the common code exists - in Proactor.{h,cpp} only. - A new factory method called create_asynch_timer has been created to - create the Timer Result class. This is used internally by the Proactor - to post timer completions to the Proactor completion - queue. Application may want to use this directly to fake - completions. - -Mon Apr 05 12:05:01 1999 David L. Levine - - * ace/OS.*,Thread_Manager.{h,cpp}: moved flags members from - ACE_Thread_Descriptor to a new ACE_OS_Thread_Descriptor base - class, to remove dependency of OS.cpp on Thread_Manager.h. - -Sun Apr 4 18:19:05 1999 Ossama Othman - - * configure.in: - - Changed ANSI C++ cast test to fail on warnings. Currently, - only g++ and Sun C++ warning/error conversion is supported. - - Moved the ACE_SET_COMPILER_FLAGS macro after the AC_ARG_ENABLE - and AC_ARG_WITH calls so that user settings can influence what - compiler flags get set. - - Removed some M4 comments (`dnl') that were inside of the - template specialization test header block. The test was failing - since `dnl' was being quoted by M4 and actually placed inside - the test program source during test source compilation. Also - corrected a typo in the same test. - - Changed test for ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION so - that it attempts to link instead of just compile. Hopefully - this will make the test "tougher." - - * m4/compiler.m4: - - Added `-features=castop' compiler flag and completed support for - `-features=rtti' via `--enable-rtti'. These flags only work for - Sun C++ 4.2. Added support for the `-noex' Sun C++ compiler flag - when the user disables exception handling. - - * m4/platform.m4: Minor comment updates. - -Sat Apr 3 19:41:36 1999 Nanbor Wang - - * ace/TTY_IO.cpp (control): Disabled support for higher baudrate - for non-NT platforms. - -Sat Apr 3 19:37:07 1999 Douglas C. Schmidt - - * ace/TTY_IO.cpp (control): Added support for more modem speeds. - Thanks to Valery Arkhangorodsky for - reporting this. - -Sat Apr 3 17:02:48 1999 James CE Johnson - - * docs/tutorials/*: Regenerated all the HTML to get the hyperlinks - into the various headers. I'm sure somebody will let me know if I - munged it all. - - * docs/tutorials/(019|020|021) : Finally made myself sit down and - add Kirthika's last abstracts. - -Sat Apr 3 15:27:07 1999 Ossama Othman - - * Makefile.am - * ace/Makefile.am - * netsvcs/clients/Naming/Client/Makefile.am - * netsvcs/clients/Tokens/manual/Makefile.am - * netsvcs/lib/Makefile.am - * tests/Makefile.am - - Added targets to clean up files and directories created during - compilation. Automake will setup the `clean-local' targets to - run automatically whenever a `make clean' is done. - -Fri Apr 02 23:25:11 1999 David L. Levine - - * bin/make_release: added TAO/tao/Version.h. Thanks to - Nanbor for suggesting this. - - * ace/OS.cpp: removed use of ACE_Array with WIN32 and - TSS_EMULATION. In doing this, fixed an off-by-one error: - ACE_TSS_Cleanup::remove () would try to remove key value - "n" from an ACE_Array of size "n". - -Fri Apr 2 19:19:09 1999 Ossama Othman - - * bin/autogen: Update NEWS file by copying VERSION. Temporary - hack to make Automake happy when doing a `make dist'. - -Fri Apr 2 18:37:29 1999 Ossama Othman - - * configure.in: Placed the asynchronous IO checks right after - the thread library checks. This was done to make sure the - library with AIO support gets added to the link list before - the rest of the tests start, and to make sure that it doesn't - get added if AIO isn't supported or isn't working. - - * Makefile.am (ACE_EXTRA_DIST): Changed directory names to use - `$(top_srcdir)' instead of the current directory `.'. This - allows a distribution to be made from a directory other than - ACE's top level source directory. - - * m4/compiler.m4: Explicitly add the `-xildoff' flag to Sun CC's - LDFLAGS. This is just a precautionary measure. It shouldn't - be needed. - -Fri Apr 2 12:41:09 1999 Ossama Othman - - * ace/Containers_T.h (all of the classes listed below): - * ace/Containers_T.i (ACE_Array): - * ace/Containers_T.i (ACE_DLList): - * ace/Containers_T.cpp (ACE_Bounded_Stack): - * ace/Containers_T.cpp (ACE_Fixed_Stack): - * ace/Containers_T.cpp (ACE_Unbounded_Stack): - * ace/Containers_T.cpp (ACE_Unbounded_Queue): - * ace/Containers_T.cpp (ACE_Double_Linked_List): - * ace/Containers_T.cpp (ACE_Fixed_Set): - * ace/Containers_T.cpp (ACE_Bounded_Set): - * ace/Containers_T.cpp (ACE_Unbounded_Set): - * ace/Containers_T.cpp (ACE_Ordered_MultiSet): - * ace/Handle_Set.h (ACE_Handle_Set): - * ace/Handle_Set.i (ACE_Handle_Set): - - Changed assignment operators (operator=) to return a reference - to `*this' so that assignments may be chained. - -Thu Apr 1 23:41:56 1999 Jeff Parsons - - * ace/CDR_Stream.cpp: - Fixed write_array() to memcpy if doing a byte-swap - and size = 1. Previously, it was falling through - without writing anything. Thanks to Jerry De Master - for pointing this out. - -Thu Apr 01 22:38:25 1999 Douglas C. Schmidt - - * ACE version 4.6.33 released. - -Thu Apr 01 21:09:00 1999 Irfan Pyarali - - * Sequence.h (TAO_Base_Sequence): Made the copy constructor and - the assignment operator public since making them protected was - breaking some compilers. - - * ace/Filecache.cpp (ACE_Filecache_Object): Fixed typo: - should be . - -Thu Apr 1 19:41:26 1999 Ossama Othman - - * ace/IPC_SAP.h (ACE_IPC_SAP): - * ace/SOCK.h (ACE_SOCK): - * ace/SOCK_IO.h (ACE_SOCK_IO): - * ace/SV_Semaphore_Simple.h (ACE_SV_Semaphore_Simple): - * ace/Synch.h (ACE_Barrier): - * ace/Synch.h (ACE_Event): - * ace/Synch.h (ACE_Guard): - * ace/Synch.h (ACE_Null_Mutex): - * ace/Synch.h (ACE_RW_Mutex): - * ace/Synch.h (ACE_Semaphore): - Reverted the changes that made these base class destructors - virtual. They don't need to be virtual for the way they are - being used. - -Thu Apr 01 19:01:20 1999 Irfan Pyarali - - * ace/Containers.h (ACE_DLList_Node): - * ace/Containers_T.h (ACE_Double_Linked_List_Iterator): - * ace/Containers_T.h (ACE_Unbounded_Set_Iterator): - * ace/Event_Handler.h (ACE_Event_Handler): - * ace/Event_Handler.h (ACE_Notification_Buffer): - * ace/Filecache.h (ACE_Filecache_Handle): - * ace/Filecache.h (ACE_Filecache_Object): - * ace/Local_Tokens.h (ACE_TPQ_Iterator): - * ace/Local_Tokens.h (ACE_Token_Proxy): - * ace/Local_Tokens.h (ACE_Token_Proxy_Queue): - * ace/Malloc.h (ACE_Name_Node): - * ace/Malloc.h (ACE_Static_Allocator_Base): - * ace/Memory_Pool.h (ACE_MMAP_Memory_Pool): - * ace/Memory_Pool.h (ACE_MMAP_Memory_Pool_Options): - * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): - * ace/Memory_Pool.h (ACE_Shared_Memory_Pool_Options): - * ace/OS.h (ACE_Countdown_Time): - * ace/OS.h (ACE_Thread_Adapter): - * ace/OS.h (ACE_Thread_Control): - * ace/OS.h (ACE_Thread_Exit): - * ace/Service_Object.h (ACE_Service_Type): - * ace/Signal.h (ACE_Sig_Adapter): - * ace/Synch.h (ACE_Adaptive_Lock): - * ace/Synch.h (ACE_TSS_Adapter): - - In some cases, classes with pointers *can* use the default copy - constructor and the assignment operator. A more careful - screening of the egcs -Weffc++ flag need to be done before a - copy constructor and assignment operator can be considered - harmful/dangerous. For now, the changes Ossama made have been - reverted. - - * ace/Filecache.cpp (ACE_Filecache_Object): - * ace/Signal.i (ACE_Sig_Action): - * ace/OS.i (ACE_Time_Value): - - Removed default contruction of structs. Old g++ is broken. - - * ace/Filecache.cpp (ACE_Filecache_Object): Fixed incorrect - initialization of . - -Thu Apr 1 16:22:18 1999 Ossama Othman - - * ace/Containers_T.h (ACE_Unbounded_Set_Iterator): - * ace/Containers_T.cpp (ACE_Unbounded_Set_Iterator): - The signatures for the prefix and postfix operators were - switched. Prefix operators take a void and return a - a reference and postfix operators take an int and returns a - copy. - - * ace/Containers.h (ACE_DLList_Node): - * ace/Containers_T.h (ACE_Double_Linked_List_Iterator): - * ace/Containers_T.h (ACE_Unbounded_Set_Iterator): - * ace/Event_Handler.h (ACE_Event_Handler): - * ace/Event_Handler.h (ACE_Notification_Buffer): - * ace/Filecache.h (ACE_Filecache_Handle): - * ace/Filecache.h (ACE_Filecache_Object): - * ace/Local_Tokens.h (ACE_TPQ_Iterator): - * ace/Local_Tokens.h (ACE_Token_Proxy): - * ace/Local_Tokens.h (ACE_Token_Proxy_Queue): - * ace/Malloc.h (ACE_Name_Node): - * ace/Malloc.h (ACE_Static_Allocator_Base): - * ace/Memory_Pool.h (ACE_MMAP_Memory_Pool): - * ace/Memory_Pool.h (ACE_MMAP_Memory_Pool_Options): - * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): - * ace/Memory_Pool.h (ACE_Shared_Memory_Pool_Options): - * ace/OS.h (ACE_Countdown_Time): - * ace/OS.h (ACE_Thread_Adapter): - * ace/OS.h (ACE_Thread_Control): - * ace/OS.h (ACE_Thread_Exit): - * ace/Service_Object.h (ACE_Service_Type): - * ace/Signal.h (ACE_Sig_Adapter): - * ace/Synch.h (ACE_Adaptive_Lock): - * ace/Synch.h (ACE_TSS_Adapter): - Explicitly disallow use of implicitly generated copy - constructor and assignment operator to prevent inadvertent - memory leaks. - - * ace/Filecache.cpp (ACE_Filecache_Object): - * ace/OS.i (ACE_Time_Value): - * ace/Signal.i (ACE_Sig_Action): - * ace/Signal.i (ACE_Sig_Guard): - * ace/Signal.i (ACE_Sig_Set): - * ace/Synch_T.i (ACE_Guard): - Added base member initializers for class members that weren't - initialized. Better style and helps avoid some warnings. - - * ace/IPC_SAP.h (ACE_IPC_SAP): - * ace/SOCK.h (ACE_SOCK): - * ace/SOCK_IO.h (ACE_SOCK_IO): - * ace/SV_Semaphore_Simple.h (ACE_SV_Semaphore_Simple): - * ace/Synch.h (ACE_Barrier): - * ace/Synch.h (ACE_Event): - * ace/Synch.h (ACE_Guard): - * ace/Synch.h (ACE_Null_Mutex): - * ace/Synch.h (ACE_RW_Mutex): - * ace/Synch.h (ACE_Semaphore): - Made base class destructor virtual to ensure that it gets - called by derived class destructor. - -Thu Apr 1 13:31:56 1999 Jeff Parsons - - * ace/CDR_Stream.{i,cpp}: - Moved the destructors and a couple of short output CDR - functions from .cpp to .i. - -Thu Apr 1 03:30:19 1999 Nanbor Wang - - * bin/tao_svcconf.pl: New perl script to help converting TAO's - svc.conf file to use static services. - -Wed Mar 31 14:30:28 1999 Nanbor Wang - - * ace/OS.h: Fixed mis-matched #endif comments. Thanks to Eric - Eide for pointing this out. - -Thu Mar 31 14:30:20 Douglas C. Schmidt - - * tests/Message_Block_Test.cpp: updated some printouts. - -Wed Mar 31 10:46:31 1999 Steve Huston - - * ace/Message_Block_T.h: Add template arg to operator = definition for - ACE_Locked_Data_Block<>. - - * ace/config-aix-4.x.h: Don't set _BSD for AIX 4.2 (or 4.3). Setting - it works ok on AIX 4.2, but breaks TAO builds. Not setting it has - caused no regressions on 4.2, and allows TAO to build more. - -Tue Mar 30 23:28:41 1999 Irfan Pyarali - - * ace/Message_Block.cpp (init_i): This function was not releasing - the old data block (if was non-zero). Fixed this - problem and avoided the memory leak. Thanks to Sangwoo Jin - for reporting this leak. - - Also changed the constructors to set to zero. - - * tests/Message_Queue_Test.cpp (receiver): Fixed hacked use of - init() to prevent memory leak. The new init_i() fixes the leak. - -Tue Mar 30 23:24:02 1999 Ossama Othman - - * configure.in: - * m4/features.m4: - * m4/threads.m4: - Updated several library checks to use a single call of my - re/implementation of the new autoconf AC_SEARCH_LIBS test instead - of having several AC_CHECK_LIB calls in a row. Nice! - - The thread detection tests were overhauled. They are now - simpler but retain the same functionality as the previous - tests. They were greatly reduced in size so debugging, updating - and enhancing should be much easier now. - - * m4/acinclude.m4: - Reimplemented Autoconf's AC_SEARCH_LIBS into ACE_SEARCH_LIBS. - The functionality is the same but the ACE reimplementation - actually works when C++ is the test language. For some reason - Autoconf's test isn't being generated properly by GNU M4. - -Tue Mar 30 22:04:49 1999 Nanbor Wang - - * ace/config-win32-common.h: Added definition of - ACE_DEFAULT_THREAD_PRIORITY as 0. Thanks to John Morey - for reporting this. - -Tue Mar 30 21:31:01 1999 David L. Levine - - * Makefile (RELEASE_LIB_FILES): added bin/ and etc/. - Thanks to John Lindal - for reporting that the ACE library Makefile needs - bin/ace_components. - -Tue Mar 30 18:49:58 1999 Darrell Brunsch - - * bin/make_release: Added .ico to binary file types. - -Tue Mar 30 12:23:23 1999 Douglas C. Schmidt - - * ACE version 4.6.32 released. - -Tue Mar 30 11:03:31 1999 Douglas C. Schmidt - - * ace/Synch.h (ACE_Adaptive_Lock): Clarified a comment about how - to define a constructor in a subclass that initializes the - lock_. Thanks to Michael Kircher for reporting this. - -Tue Mar 30 10:37:43 1999 Ossama Othman - - * ace/OS.i (getpwnam_r): Added patch contributed by Roland Gigler - for getpwnam_r on SCO UnixWare 7. - -Mon Mar 29 20:22:44 1999 Ossama Othman - - * configure.in: - * m4/features.m4: - Added new M4 macro include file, and moved asynchronous IO tests - to `m4/features.m4'. The asynchronous IO tests were improved by - making them run-time tests. Cross-compiled platforms will fall - back to a compile-time test. Thanks to Alex for providing - run-time tests. The tests are based on his AIO tests found in - the examples/Reactor/Proactor directory. - -Sun Mar 28 18:02:54 1999 Ossama Othman - - * configure.in: - Enabled the C++ libtool support mentioned below. Removed all - references to CXXCPPFLAGS since the CPPFLAGS variable is used - by autoconf for both C and C++. - - * ltconfig: - Added my experimental libtool C++ support. The hacks I made - allow it to build C++ shared libraries. - - * m4/acinclude.m4: - * m4/threads.m4: - Renamed some variables. Namespace pollution was breaking most - of the tests. - -Sun Mar 28 12:20:44 1999 Nanbor Wang - - * ace/OS.h: - * ace/CORBA_macros.h: Moved ACE_NEW_THROW* and ACE_GUARD_THROW* - macros from OS.h to CORBA_macros.h. Also added - ACE_*GUARD_THROW_EX which has the new ACE try macros semantics. - CORBA_macros.h needs to include "OS.h" to source in the correct - platform configuration macros. - -Sun Mar 28 13:27:15 1999 Balachandran Natarajan - - * docs/exceptions.html: - Added a new example - -Fri Mar 26 23:35:28 1999 Nanbor Wang - - * ace/config-freebsd-pthread.h: Added ACE_NEEDS_SCHED_H. - - * ace/config-irix6.x-g++.h: - * ace/config-irix6.x-kcc.h: - * ace/config-irix6.x-sgic++.h: - * ace/OS.h: Reverted changes about ACE_LASKS_SCHED_H. - - * ace/config-dgux-4.x-ghs.h: - * ace/config-irix6.x-sgic++.h: - * ace/README: - * ace/OS.h: Renamed ACE_LACKS_SCHED_H with ACE_NEEDS_SCHED_H to - refect what it really means. The original name was quite - confusing. - -Fri Mar 26 18:16:25 1999 Carlos O'Ryan - - * ace/config-irix6.x-g++.h: - * ace/config-irix6.x-kcc.h: - * ace/config-irix6.x-sgic++.h: - There is no need to explicitly include or to define - ACE_LACKS_SCHED_H the file is present in IRIX 6.4. - -Fri Mar 26 17:57:25 1999 Nanbor Wang - - * ace/config-freebsd-pthread.h: Defined cuserid as an extern "C" - function. - - * ace/OS.h: should only be included when !defined - (ACE_LACKS_SCHED_H). - - Thanks to Eric Eide for sending the patch. - -Fri Mar 26 17:12:21 1999 Darrell Brunsch - - * ace/Profile_Timer.{h,i,cpp}: On Win32 platforms that - support RUsage, Profile_Timer will use both that and - High Resolution Timers for measurements. Depending - on the method, one or the other will be used. - -Fri Mar 26 17:02:00 1999 Ossama Othman - - * configure.in: - Improved ACE_HAS_USING_KEYWORD test so that it works for platforms - that support the `using' keyword but don't have the `std' namespace. - - Updated ACE_HAS_TEMPLATE_SPECIALIZATION test so that it works for - compilers that require the "template<>" syntax for specialization. - - Improved ACE_HAS_ONLY_SCHED_OTHER by checking for run time errors - when a thread scheduling policy other than SCHED_OTHER is set. - Thanks to David for suggesting this modification. - - * m4/acinclude.m4: - Added support for converting warnings to errors for Sun C++. - - * m4/threads.m4: - Added test to check if `-Kthread' compiler flag enables thread - support. SCO UnixWare 7 uses this flag. - -Fri Mar 26 07:21:33 1999 David L. Levine - - * tests/Reactor_Performance_Test.cpp (handle_input): wrapped - final return statement with ACE_NOTREACHED. - -Thu Mar 25 20:16:49 1999 Darrell Brunsch - - * bin/make_release: I wasn't using $bin_files for the - ACE+TAO.zip creation, so now that is fixed. Thanks to - Greg Ross for pointing this out. - -Thu Mar 25 16:31:27 1999 Carlos O'Ryan - - * ace/OS.h: - Added new macros for byte swapping, this are rather evil. They - add the correct padding to use a single long to represent a - short or char, but in such a way that the first bytes of the - long contain the required data. - Nobody should need that, but the IDL compiler does. - -Thu Mar 25 16:25:46 1999 Ossama Othman - - * configure.in: Added test for ACE_HAS_BROKEN_MAP_FAILED. - - * ace/OS.h: Added __USLC__ to list of macros in the conditional that - keeps the compiler from complaining about parameters which are not - used. This is needed for the C++ compiler on SCO UnixWare 7. - Thanks to Roland for letting me know about this. - -Thu Mar 25 14:55:37 1999 David L. Levine - - * tests/Basic_Types_Test.cpp: print out ACE version - information even with ACE_HAS_MINIMAL_ACE_OS. - -Thu Mar 25 13:52:57 1999 Irfan Pyarali - - * tests/Reactor_Performance_Test.cpp (handle_input): This code - wasn't entirely correct. Well actually, I think where was some - change in the semantics of Windows. Previously, once the handle - was close, it seems that the application still got notified if - there was data on the socket. With WinNT SP4, it seems that - once the handle was closed, no additional FD_READs were issued - by the OS, even if data was available on the socket. - - In ACE, both FD_READ and FD_CLOSE get mapped to handle_input(). - The way to know when the connection was closed is to do a recv() - in handle_input() and check for a zero return. When told of new - data, the old code in handle_input() only did one recv() of - BUFSIZ bytes. If there was more than BUFSIZ bytes of data on the - socket, there would be some data left on the socket. Hence, - when notified of FD_CLOSE, it did another recv() which - succeeded, and handle_input() never returned -1, making the test - hang. - - The change made was to make handle_input() call recv() until - EWOULDBLOCK occurs (note that the socket is in non-blocking - mode). Hence, when FD_CLOSE occurred, the socket did not have - any data left, recv() returned 0 and handle_input() returned -1, - which finally closed the test down correctly. - -Thu Mar 25 13:13:51 1999 Ossama Othman - - * Makefile.am (ACE.ifnames): - Placed rule generation of ACE.ifnames within a MAINTAINER_MODE - automake conditional. If a `--enable-maintainer-mode' option - isn't given on the configure script command line then don't - generate a new `ACE.ifnames' file. - - * configure.in: - Added AM_MAINTAINER_MODE so that maintainer level Makefile - features are disabled by default. - - * acconfig.h: - * ace/OS.h: - * ace/README: - Added ACE_HAS_BROKEN_MAP_FAILED macro for platforms that do not - cast MAP_FAILED to a (void *). Defining this macro prevents - compilers on those platforms from complaining about assigning - an int to a (void *). Thanks to Roland Gigler - for providing feedback about this. - -Thu Mar 25 11:30:44 1999 Balachandran Natarajan - - * docs/exceptions.html: - Corrected a couple of links... - -Thu Mar 25 01:04:00 1999 Alexander Babu Arulanthu - - * ace/OS.h (ACE_OS): Added ACE_DEFAULT_TEMP_DIR_ENV to be "TEMP" - for WIN32 and "TMP" for Unix. - -Wed Mar 24 18:30:18 1999 Douglas C. Schmidt - - * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp: Added a new - version of this program that fixes a number of bugs with the old - one. Thanks to Hao Ruan for these fixes. - -Wed Mar 24 15:31:27 1999 Darrell Brunsch - - * High_Res_Timer.cpp: - * High_Res_Timer.h: - * OS.i: - - Changed the implementation of the High Resolution Timer on - Win32 to use QueryPerformanceCounter instead of assembly code. - The docs also say that this is MP-safe. Thanks to Gregory D. - Fee for suggesting this. - - * Profile_Timer.cpp: - * Profile_Timer.h: - * Profile_Timer.i: - - Now uses the High Res Timer on Win32 instead of rusage. - -Wed Mar 24 14:36:12 1999 Ossama Othman - - * ace/OS.cpp (ACE_OS_PREALLOCATE_OBJECT): Initialized obj_p to zero - to make egcs happy. - -Wed Mar 24 13:23:36 1999 David L. Levine - - * ACE-INSTALL.html: removed note about building netsvcs before - running the one-button test on WIN32. Thanks to Nanbor for - hacking run_tests.bat :-) - -Wed Mar 24 13:16:17 1999 Nanbor Wang - - * ace/WFMO_Reactor.i (handler): - * ace/Select_Reactor_T.cpp (handler_i): Made sure we can safely - pass out the event handler before we do so. Thanks to Michael - Preobrazhensky for reporting this. - - * tests/run_tests.bat: Do not run Time_Service_Test if - netsvcs/servers/main.exe doesn't exist. Thanks to - Jeffrey_Franks@i-o.com for reporting the problem and David for - suggesting the fix. - -Wed Mar 24 12:47:56 1999 David L. Levine - - * ACE-INSTALL.html: added note to build netsvcs on Win32 - before running run_tests.bat. Thanks to Jeff Franks - for suggesting this. - -Wed Mar 24 06:53:57 1999 David L. Levine - - * ace/OS.cpp (thr_create): SunOS 5.7 allows thread priority of 0, - so we no longer need to work around that. - -Tue Mar 23 22:49:15 1999 Ossama Othman - - * configure.in: Added a test for ACE_NEEDS_DEV_IO_CONVERSION. - -Tue Mar 23 22:29:20 1999 David L. Levine - - * ace/config-sunos5.7.h: undef ACE_HAS_ONLY_SCHED_OTHER, because - other scheduling policies are supported by SunOS 5.7. Thanks - to Ossama and autoconf for noticing this. - -Tue Mar 23 20:42:44 1999 Ossama Othman - - * tests/Cache_Manager_Test.cpp (main): Added missing ACE_START_TEST - and ACE_END_TEST macros. - - * m4/threads.m4: Modified UNIX International threads check to include - check for rwlock_destroy() in -lthread since thr_create() was - found without explicitly linking to -lthread on Solaris 2.5.1. - rwlock_destroy() should be found only by linking to -lthread which - will cause the configure script to add -lthread to the library link - list. - -Tue Mar 23 16:25:39 1999 David L. Levine - - * docs/ACE-subsets.html: added FOR_TAO subset sizes. - -Tue Mar 23 15:15:20 1999 Nanbor Wang - - * ace/Map_Manager.{i,cpp} (ACE_Map_Iterator_Base::operator*): - Moved this function to .cpp file to avoid compilation problem on - SunOS 5.6 with SunCC 4.2. Once we know a patch that will fix - the problem, we should move it back to .i file again. Thanks to - James Megquier for reporting the problem. - -Tue Mar 23 14:56:58 1999 Ossama Othman - - * acconfig.h: - * configure.in: - * ace/OS.h: - * ace/TLI.cpp: - * ace/config-osf1-4.0.h: Removed all references to - ACE_HAS_BROKEN_T_ERRNO and removed the definition of the _terrno() - function from TLI.cpp since it isn't a standard TLI function (at - least not the Steven's books that I've read). This also fixes a - problem on Solaris that was causing an autoconfigured build of - TLI.cpp to fail. - - * ace/Makefile.am: Make sure template source files get installed for - all cases. Previously, they only got installed if the template - source is required by the compiler. However, they are still needed - by compilers that don't explicitly require template sources to - be included in a file that references them. - - * configure.in: Fixed the test for ACE_TEMPLATES_REQUIRE_SOURCE. - Thanks to Carlos for his help on this. Removed the test for - ACE_HAS_BROKEN_T_ERRNO since it is no longer needed due to the - above change. - - * README: Added Konstantinos Margaritis to the - ACE contributor list. - -Tue Mar 23 12:57:40 1999 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp: Split off the logging to - an ostream from the logging for STDERR. Thanks to Bill Rizzi - (rizzi@softserv.com) for pointing out this problem. - - * netsvcs/lib/Client_Logging_Handler.cpp: Changed the default from - ACE_STDOUT to ACE_STDERR to be consistent. Thanks to Bill Rizzi - (rizzi@softserv.com) for pointing out the problem. - -Tue Mar 23 12:06:04 1999 Nanbor Wang - - * ace/OS.h (ACE_THROW_SPEC): Added prgama to disable reporting - warning 4290 on MSVC. MSVC "supports" the exception - specification but doesn't provide an implementation for it. - Instead, it warns you the specification is ignored. - -Mon Mar 22 21:34:06 1999 David L. Levine - - * include/makeinclude/platform_sunos5_g++.GNU: use -m uname - option instead of -i, because GNU uname doesn't support -i. - -Mon Mar 22 18:59:55 1999 Steve Huston - - * ace/NT_Service.cpp (state): Changed the (DWORD *, ACE_Time_Value *) - version to reliably return -1 on any error. Thanks to Martin - Krumpolec for keeping me honest here, and for - sending in better code. - -Mon Mar 22 14:16:04 1999 David L. Levine - - * ace/OS.{h,cpp} (cleanup_tss): added tss_close (), to enable - deleting the native key on program termination. That's not - implemented yet, because it requires a separate - ACE_OS::thr_keyfree (ACE_OS_thread_key_t). - - * ace/OS.cpp (fini), README, ace/config-linux-lxpthreads.h: - removed ACE_FINI_HOOK support. It wasn't helping. - -Mon Mar 22 11:14:16 1999 Ossama Othman - - * Makefile.am: - Various minor updates. - - * configure.in: - * m4/platform.m4 - Moved known platform specific macro checks from `configure.in' - to `platform.m4'. - - * tests/Makefile.am: - Updated to build the DLL_Test shared library. Support for the - test is still broken (my fault :). - - * aclocal.m4: - * configure: - These are automatically generated so they shouldn't be under - CVS control. I Removed them from the CVS repository. - -Mon Mar 22 09:42:26 1999 David L. Levine - - * docs/ACE-subsets.html: added current status section. - -Mon Mar 22 01:04:23 1999 Nanbor Wang - - * ace/OS.cpp (free_all_keys_left): Changed to remove left-over - keys using TlsFree on Win32. We can't use ACE_OS::thr_keyfree - here because it tries to update the TSS in_use_ information - which has already been deleted at this point. - (cleanup_tss): Uncommented free_all_keys_left. - -Sun Mar 21 21:26:46 1999 David L. Levine - - * bin/make_release: fixed error status when building ACE+TAO. - Thanks to Doug for reporting this. - -Sun Mar 21 21:16:02 1999 Douglas C. Schmidt - - * ACE version 4.6.31 released. - -Sun Mar 21 20:45:57 1999 Douglas C. Schmidt - - * ACE version 4.6.30 released. - -Sun Mar 21 18:39:16 1999 Ossama Othman - - * ACE.ifnames: - - Updated with new macro list. - - * Makefile.am: - - Added the m4 directory to the distribution list and made some - minor updates. - - * ace/Makefile.am: - * m4/subsets.m4: - - Subsetting updates/corrections. - - * configure.in: - - Added work around for buggy glibc2.1 when including both - and . Added check for auto_ptr class - declaration since some platforms have but may not - declare the auto_ptr class. Shortened some of the "checking" - messages. - - * ace-config.1.in: ace-config script man page template - * aceConf.sh.in: ace-config "unknown" library script - - Added these files to the CVS repository. - - * config.guess: - * config.sub: - * ltconfig: - * ltmain.sh: - - Updated these files to the ones in the latest libtool. - - * libtool: - - Removed this since it is automatically generated for each platform. - It shouldn't be under CVS control. - -Sun Mar 21 17:59:22 1999 Carlos O'Ryan - - * ace/CDR_Stream.cpp: - Fixed a problem with ACE_OutputCDR::write_octet_array_mb, thanks - to Dave Meyer for isolating and reporting - this bug again [it was fixed in TAO and somehow it crept to the - ACE version of the CDR classes]. - -Sun Mar 21 17:42:08 1999 Ossama Othman - - * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record): - Use ACE_NTOHL macro instead of system ntohl() to get around bug - in egcs-2.91.6x. - -Sun Mar 21 16:07:24 1999 Ossama Othman - - * ace/config-g++-common.h (ACE_HAS_USING_KEYWORD): - Define ACE_HAS_USING_KEYWORD for egcs 1.1.x. - -Sun Mar 21 09:44:30 1999 David L. Levine - - * tests/Timeprobe_Test.cpp: don't test ACE_Singleton - creation during static construction if ACE_HAS_PURIFY - is enabled, because it notices the memory-in-use. - - * examples/Naming/Makefile: changed SRC to PSRC. - - * examples/Naming/Makefile,performance-tests/Misc/Makefile, - tests/Makefile: - Use ace_components instead of the current ACE_COMPONENTS - setting to determine what should be built. - -Sat Mar 20 19:10:37 1999 Carlos O'Ryan - - * ace/Connector.h: - * ace/Connector.cpp: - * ace/Strategies_T.h: - * ace/Strategies_T.cpp: - Added new methods to the ACE_Connector, ACE_Strategy_Connector, - ACE_Connect_Strategy and ACE_Cached_Connect_Strategy. - The motivation for this new method is a bit convoluted: - In TAO we store the Svc_Handler returned from connect() as a - hint for later Cached_Connector lookups. But the location - where we store it could be shared between multiple threads. - To minimize the number of locks this hint is only modified and - examined by the Cached_Connector, while the lock in the - connection map is beign held. - - The problem arises when the hint is returned: another thread - could try to use the same hint location, detect that the hint - is in use and replace it before the thread that just requested - the object has a chance to read the hint value. - The solution is to use two variables: one is the hint - location, carefully protected by the Cached_Connector lock, - the other is a variable in the thread stack, they return the - same thing, but the second variable is not affected by changes - done by other threads. - - In short: we addeda connect() method that takes two arguments, - the first is just intented to update the cached connector - hint, the second is where the real connection gets returned. - - * tests/Makefile: - David discovered that using SRC to list the sources does not - work under some platforms. But using PSRC does. - -Sat Mar 20 15:51:14 1999 Ossama Othman - - * configure.in: - Added tests for: ACE_HAS_BROKEN_NAMESPACES - ACE_HAS_BROKEN_CONVERSIONS - ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS - ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP - ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP - ACE_HAS_PTHREAD_PROCESS_ENUM - - Added some minor updates and corrections. - -Sat Mar 20 09:06:10 1999 David L. Levine - - * tests/Map_Manager_Test.cpp: changed index () to slot_index () - and generation () to slot_generation (), to correspond to - Active_Map_Manager interface change. - - * examples/ASX/Message_Queue/Makefile: changed LSRC to PSRC. - - * ace/Object_Manager.{h,cpp}: removed complex support from - ACE_Object_Manager for cleanup of some ACE_Singleton locks - during static construction/destruction, only. The affected - lock types are ACE_Thread_Mutex, ACE_Mutex, and - ACE_RW_Thread_Mutex. ACE_Recursive_Thread_Mutex and - ACE_Null_Mutex will still be cleaned up if used to create - ACE_Singletons during static construction/destruction. As - noted in ace/Singleton.h, those are the best type of locks - to use with ACE_Singleton, anyways. - - This support was tricky to get right, and increased the size of - the Object_Manager object file by 46 to 59 percent. Now, if - ACE_Singletons are created during static construction or - destruction, with either an ACE_Thread_Mutex, ACE_Mutex, or - ACE_RW_Thread_Mutex lock, those locks will be dynamically - allocated and leaked. - -Sat Mar 20 02:03:53 1999 Ossama Othman - - * acinclude.m4: - - Split acinclude.m4 into several M4 macro files and moved those - files into the new `m4' subdirectory, includind acinclude.m4. - - * m4/acinclude.m4: - * m4/compiler.m4: - * m4/subsets.m4: - * m4/threads.m4: - - Added these M4 files. - - * bin/autogen: - - Script to regenerate auto{conf,make} and libtool related files. - Additional functionality may be added to this script in the - future. - - * Makefile.am: - * ace/Makefile.am: - * apps/gperf/src/Makefile.am: - * apps/gperf/tests/Makefile.am: - * apps/gperf/Makefile.am: - * apps/Makefile.am: - * netsvcs/clients/Logger/Makefile.am: - * netsvcs/clients/Naming/Client/Makefile.am: - * netsvcs/clients/Naming/Dump_Restore/Makefile.am: - * netsvcs/clients/Naming/Makefile.am: - * netsvcs/clients/Tokens/collection/Makefile.am: - * netsvcs/clients/Tokens/deadlock/Makefile.am: - * netsvcs/clients/Tokens/invariant/Makefile.am: - * netsvcs/clients/Tokens/manual/Makefile.am: - * netsvcs/clients/Tokens/mutex/Makefile.am: - * netsvcs/clients/Tokens/rw_lock/Makefile.am: - * netsvcs/clients/Tokens/Makefile.am: - * netsvcs/clients/Makefile.am: - * netsvcs/lib/Makefile.am: - * netsvcs/servers/Makefile.am: - * netsvcs/Makefile.am: - * man/man3/Makefile.am: ( NOT ADDED YET ) - * man/Makefile.am: ( NOT ADDED YET ) - * tests/log/Makefile.am: - * tests/Makefile.am: - - Added Automake makefile templates for ACE. - - * configure.in: - * m4/subsets.m4: - * ace/Makefile.am: - - Added support for David's ACE subsetting work. - -Fri Mar 19 23:36:37 1999 Irfan Pyarali - - * ace/Active_Map_Manager.h (ACE_Active_Map_Manager_Key): Changed - method index() to slot_index() and generation() to - slot_generation(). These changes were motivated by the - OpenEdition platform/compiler, which defines a macro called - index(). Also, changed the type of and - from u_long to ACE_UINT32 to get consistent size across - platforms. - -Fri Mar 19 22:50:19 1999 David L. Levine - - * bin/ace_ld: inserted ^['"]? at beginning of patterns that check - for -l and -L, to make sure they're at the beginning of arguments. - Thanks to Henric Jungheim for - suggesting this. - - * tests/Makefile: removed SRC, because it caused link problems - on DU 4.0. - -Fri Mar 19 18:56:26 1999 Carlos O'Ryan - - * Fixed several makefiles that did not have a SRC or LSRC variable - defined. - - * Re-generated the dependencies for both ACE and TAO, this time on - a platform that includes the template code. - - * include/makeinclude/rules.local.GNU: - Now we can run make depend inside a build directory. - Removed any $(ACE_ROOT)/ace/config*.h files from the dependency - list, those are not used. - -Fri Mar 19 18:05:27 1999 Ossama Othman - - * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record): - Reverted change that was thought to work around egcs compiler bug. - The call to ntohl() within the templates still causes the compiler - to complain. - -Fri Mar 19 17:31:57 1999 Carlos O'Ryan - - * ace/CDR_Stream.cpp: - Fixed silly error in the InputCDR constructor taking an - ACE_Message_Block. - -Fri Mar 19 15:41:30 1999 Irfan Pyarali - - * ace/config-win32-common.h: Added CE fix. - -Fri Mar 19 15:03:54 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - Changed CDR to ACE_CDR. - Fixed ACE_InputCDR constructor when receiving a linked list of - Message_Blocks. - - * tests/CDR_Test.cpp: - Added a test for the constructor above. - -Fri Mar 19 10:29:17 1999 David L. Levine - - * ace/Singleton.cpp (instance): removed at_exit () calls - from both ACE_Singleton and ACE_TSS_Singleton, only - when the ACE_Object_Manager hasn't started or has already - shutdown. In those cases, the singletons will leak. - - * ace/Object_Manager.cpp (ACE_Object_Manager ctor), - ace/OS.cpp (ACE_OS_Object_Manager ctor): allow - newer instances to overwrite older ones, in case an application - #defines ACE_HAS_NONSTATIC_OBJECT_MANAGER and uses the - Object_Manager during construction of static objects. - - * tests/Timeprobe_Test.cpp: added test of ACE_Singleton - creation during construction of static objects. Timeprobes - can do that, when they're enabled. - - * ace/OS.cpp (fini), README: added ACE_FINI_HOOK support. - Applications can #define ACE_FINI_HOOK to any executable code, - and it will be executed on program termination. - - * ace/config-linux-lxpthreads.h: with ACE_HAS_TSS_EMULATION, - #define ACE_FINI_HOOK to insert a one-second sleep at - program termination. It's necessary to avoid occasional - segfaults of unknown origin, but they appear to be in the - LinuxThreads library. - - * bin/ace_components: added. It is used to record/access - which components were built into the ACE library. See next - entry for files that have been updated to use it. - - * ace/Makefile,tests/Makefile,tests/run_tests.sh: use - ace_components to record which components are in the ACE library. - Suppress build/run of tests that use Token and Other. - - * netsvcs/{clients,servers}/Makefile: use ace_components instead of - the current ACE_COMPONENTS setting to determine what should be built. - -Fri Mar 19 03:24:34 1999 Irfan Pyarali - - * ace/Singleton.cpp (instance): Commented out the call to - ACE_Object_Manager::at_exit(). Currently, this is causing - multiple instances of ACE_Object_Manager to get created, and - hence causing all sorts of problems. - - * ace/OS.cpp (cleanup_tss): Removed the call to - free_all_keys_left() (WIN32 only), because it causes - segmentation faults at shutdown. - -Fri Mar 19 00:15:21 1999 Nanbor Wang - - The following changes are specific to WindowsCE. They are - required to remove MFC dependency from CE port. Thanks to Eric - Covington for motivating this. - - * ace/config-WinCE.h: We no longer enfoce the use of MFC with ACE - CE port anymore. - - * ace/config-win32-common.h: When not using MFC, CE needs to - include and explicitly. - - * ace/Log_Record.cpp (print): - * ace/OS.{h,cpp} (ACE_CE_Bridge): Changed to use HWND to record - target window handle instead of CWnd. Also, we stop passing - output string in a CString anymore. The string is now created - using ACE_OS::strdup and must be released by the target window - using ACE_OS::free.. A small smart pointer class will be added - later. Notice that if you used ACE CE port before, the wParam - can no longer be casted to a CString*, it should be casted to - LPTSTR now. - - * WindozeCE/WindozeCEDlg.cpp: should be casted to LPTSTR - and it should be freed using ACE_OS::free. - - * ace/ace_ce_dll.dsp: CE programs (or DLL only?) not using MFC - must specify all libraries used by the program, even msvcrt. - -Thu Mar 18 22:21:39 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: changed - ACE_QUOTE to '"', instead of "", on win32 hosts. "" just - evaporates to nothing; we really need one double quote. - Thanks to Hans Rohnert for verifying this. - -Thu Mar 18 18:49:32 1999 Marina Spivak - - * ace/SString.i (compare): fixed the function to work properly in - case strings have different lenghts. - - * ace/SString.cpp: fixed code to gracefully handle failed memory - allocations. - - * ace/SString.h: added comments about strings with release=0, not - necessarily being null terminated. - -Thu Mar 18 14:31:29 1999 Steve Huston - - * tests/DLL_Test.cpp: Use the new DLL_Test.h file that contains the - class defs - needed for AIX xlC. This should have been done - with the Mar 15 changes but slipped through the cracks. - - * include/makeinclude/platform_hpux_aCC.GNU: Added support for - building HP-UX 11 distributions with both 32 and 64 bits. - - * docs/tutorials/006/client_handler.cpp (Client_Handler::open): Changed - arg name to void_acceptor to avoid redefining it inside the function. - - * docs/tutorials/007/client_acceptor.cpp (Client_Acceptor(Thread_Pool&) - Fixed initialization of concurrency_. - - * docs/tutorials/018/Test_T.cpp (open): Fix ACE_UNUSED_ARG(arg). - - * ace/Message_Queue.h (ACE_Message_Queue_Base): Removed "= 0" from - ~ACE_Message_Queue_Base. AIX xlC warns that pure virtual dtor - needs an out-of-line definition to be a base of another class. - There is already a definition for the dtor in Message_Queue.i. - -Thu Mar 18 14:30:04 1999 Nanbor Wang - - * ace/OS.i (timezone): Removed the leading '::' to cope with VC - 5. Thanks to Lan Yaolong for reporting - this. - -Wed Mar 17 17:23:43 1999 Vishal Kachroo - - * ace/OS.i (timezone): Added support for timezone () on CHORUS - -Wed Mar 17 14:06:24 1999 Ossama Othman - - * acconfig.h: Some characters got removed so I put them back. - -Wed Mar 17 13:59:42 1999 Ossama Othman - - * configure.in: - * acconfig.h: - Added autoconf check for rename() system call. - -Wed Mar 17 07:55:38 1999 Nanbor Wang - - * include/makeinclude/platform_freebsd_pthread.GNU: Made some - adjustment for building ELF executables which are the default on - FreeBSD 3 and above. I'll incoporate Russell's LinuxThread - change later. - -Wed Mar 17 13:36:32 1999 David L. Levine - - * bin/make_release: return non-zero exit status on failure. - -Wed Mar 17 12:47:04 1999 Nanbor Wang - - * ace/Service_Config.cpp (open_i): Also delete the parse buffer - before exiting the function for it is no longer needed. We - still need to deallocate the buffer at close method to prevent - the case when uses manipulate Service_Config directly using - process_directives. - -Wed Mar 17 12:33:35 1999 Douglas C. Schmidt - - * ace/OS.i: Reenabed ACE_OS::rename() and we'll see which - platforms need to have ACE_LACKS_RENAME. Thanks to Susan - Liebeskind for reporting this. - -Wed Mar 17 10:46:26 1999 Ossama Othman - - * ace/Message_Block.i (space): Moved ACE_Message_Block::space() - after inline declarations of ACE_Message_Block::end() and - ACE_Message_Block::wr_ptr() to prevent "used before it was - declared inline" warnings on end() and wr_ptr(). - -Wed Mar 17 10:24:26 1999 David L. Levine - - * ace/OS.cpp (argv_to_string): initialized temp to 0 to avoid warnings - from VxWorks g++. - ace/OS.i (strenvdup): initialized temp to 0 to avoid warnings from - VxWorks g++. Thanks to Hans Rohnert for reporting these. - - * include/makeinclude/platform_vxworks5.x_g++.GNU (RANLIB): - replaced /bin/true with @true, to avoid build warning on - NT hosts. Thanks to Hans Rohnert for reporting this. - -Wed Mar 17 09:58:43 1999 Douglas C. Schmidt - - * ace/Svc_Conf.l (yy_delete_parse_buffer): Added a check for NULL - to avoid freeing buffers multiple times. Thanks to Tom Arbuckle - for this fix and to - Nanbor for noticing the problem in the first place! - -Wed Mar 17 08:30:58 1999 David L. Levine - - * ACE version 4.6.29 released. - -Wed Mar 17 03:12:43 1999 James C. Hu - - * ace/Message_Block.i: Changed the definition of space () to be - something more useful than it was. Thanks to Bill Rizzi - (rizzi@softserv.com) for pointing out the problem. - - * ace/Cache_*: Removed by popular decree. Can be found in - JAWS/PROTOTYPE. - -Wed Mar 17 03:06:20 1999 Nanbor Wang - - * ace/Service_Config.cpp (close): Re-enabled cleaning up the lex - buffer. - - * ace/Svc_Conf_l.cpp (ace_yy_delete_parse_buffer): We should not - remove uninitialize buffer. - -Tue Mar 16 19:48:57 1999 Irfan Pyarali - - * ace/Makefile and tests/Makefile: Reverted these files to the - pre-Cache_Manager state. The Cache_Manager files don't compile - on g++ and vxworks and we need to make a release now. - - * ace/Map_T.h (class ACE_Noop_Key_Generator): Added new class. - This class makes it easy to use the map adapters when you don't - care about generating new keys. - -Tue Mar 16 11:36:41 1999 Nanbor Wang - - * ace/config-freebsd-pthread.h: FreeBSD 2.2 and above also support - threads, but siginfo_t is only supported on FreeBSD 3.0 and - above. Thanks to Goldshtain Dmitry - for pointing these out. - -Tue Mar 16 16:46:04 1999 David L. Levine - - * ace/Hash_Bucket_T.h: added class to friend - ACE_Hash_Bucket_DLCStack_Iterator declaration. - -Tue Mar 16 16:35:39 1999 David L. Levine - - * docs/ACE-guidelines.html: never use TRUE, true, FALSE, false, etc. - -Tue Mar 16 15:58:07 1999 Nanbor Wang - - * ace/Service_Config.cpp (close): Don't call the - ace_yy_delete_parse_buffer for now. It is causing access - violation. - -Tue Mar 16 15:15:00 1999 Chris Gill - - * ace/ACE.{cpp, i} - ace/OS.{cpp, h, i} - ace/FIFO.cpp - ace/Log_Record.cpp - ace/SOCK_Dgram_Mcast.cpp - ace/SPIPE_Connector.cpp - ace/TLI_Acceptor.cpp - ace/config-psos-diab-mips.h (new) - ace/config-psos-diab.h - ace/config-psos-tm.h - ace/streams.h: integrated pSOS/MIPS changes into ACE. Thanks to - Jaepil Kim (jpkim@lgsoft.com) for completing the ACE pSOS port - for the MIPS platform, and for sending these modifications. - -Tue Mar 16 14:25:03 1999 Steve Huston - - * ace/ACE.cpp (get_ip_interfaces, count_interfaces, get_bcast_addr): - On AIX, use CSIOCGIFCONF instead of SIOCGIFCONF to retrieve - interface information. Thanks to Eric Newton for - figuring this out. - -Tue Mar 16 12:20:53 1999 Balachandran Natarajan - - * ace/Service_Config.h (ACE_Service_Config): - Added documentation for the parse_args () method. This was in - request to Bill Rizzi . - -Tue Mar 16 10:57:46 1999 Douglas C. Schmidt - - * ace/Svc_Conf.l: Added a new method ace_yy_delete_parse_buffer() - that frees up FLEX buffers when the program is done. Thanks to - Tom Arbuckle for - this fix. - - * examples/ASX/Message_Queue/buffer_stream.cpp (main): Changed pm - to cm and vice versa to be consistent. Thanks to Rainer Blome - for reporting this. - -Tue Mar 16 10:50:42 1999 Steve Huston - - * include/makeinclude/platform_aix4_cset++.GNU: New file to cover - all AIX 4.x versions with the C Set++ (xlC) compiler. - - * include/makeinclude/platform_aix.GNU, platform_aix4.2.GNU: These - files are deprecated; they simply include the new file above, - platform_aix4_cset++.GNU. - -Tue Mar 16 10:38:35 1999 Carlos O'Ryan - - * ace/Hash_Bucket_T.cpp: - Removed default parameter declaration from the constructor for - ACE_Hash_Bucket_Manager definition. Default parameter - declarations can only show up in the function declaration. - -Tue Mar 16 10:25:53 1999 Steve Huston - - * ace/config-aix-4.1.x.h, config-aix-4.2.x.h: These now simply - include config-aix-4.x.h. All further changes for any AIX 4.x - version should go in config-aix-4.x.h. - -Tue Mar 16 08:12:54 1999 Steve Huston - - * ace/Thread_Manager.cpp: In thread_within(ACE_thread_t), replaced use - of '==' with ACE_OS::thr_equal. In hthread_within (ACE_hthread_t), - replaced use of '==' with ACE_OS::thr_cmp. Thanks very much to - Peter Windle for pointing this out. - - * README: Added Peter Windle to the list of distinguished contributors. - -Tue Mar 16 03:05:22 1999 James Hu - - * ace/Cache_Hash_T.{cpp,h}: - * ace/Cache_Heap_T.{cpp,h}: - * ace/Cache_List_T.{cpp,h}: - * ace/Cache_Manager.{cpp,h}: - * ace/Cache_Manager_T.{cpp,h}: - * ace/Cache_Object.{cpp,h}: - * ace/Hash_Bucket_T.{cpp,h}: - Incorporated fixes from purify and benchmarking sessions at Entera. - Cosmetic changes coming soon (documentation strings and removal - of magic numbers). - - * ace/Makefile: Added above files to Makefile. - - * ace/OS.i: FreeBSD does not support the timezone() function as - documented by Vishal below. Using Chris Gill's implementation - for LynxOS. - - * tests/Makefile: - * tests/Cache_Manager_Test.cpp: Added this test to illustrate - Cache_Manager. Still needs changes to use ACE_DEBUG instead of - cerr. - -Mon Mar 15 19:05:22 1999 Steve Huston - - * ace/config-aix-4.x.h: New config file that covers all of the AIX 4.x - versions with C Set++ (xlC) and g++. Many thanks to Susan - Liebeskind for doing to port to AIX 4.3 and - testing, providing needed changes! - - * ace/OS.i (wait): Fixed to handle ACE_HAS_UNION_WAIT case correctly, - without depending on AIX - thanks to Susan Liebeskind for this too! - - * ace/ACE.cpp (fork, with zombie avoidance): Fixed to work right - with ACE_HAS_UNION_WAIT (ala AIX 4.2). - - * include/makeinclude/rules.lib.GNU: New template instantiation - scheme for AIX with C Set++ (xlC); goes with... - * etc/xlc_dummy.cpp: New file, purpose of which is to help with AIX - xlC template instantiation. This is the new, improved method from - IBM suport. It still generates a zillion duplicate definition - warnings, but IBM doesn't have any better solution. - - * include/makeinclude/platform_aix4.2.GNU: This will work with both - AIX 4.2 and 4.3 now. I'll take care of the naming soon. - - * tests/Map_Test.(cpp h): Moved template defs to new file, Map_Test.h - to satisfy AIX xlC. Thanks to Susan for this too. - - * tests/DLL_Test.(cpp h): Moved template defs to new file, DLL_Test.h - to satisfy AIX xlC. - - * tests/Makefile, Makefile.DLL: Fixed to build libDLL_Test correctly - on AIX w/ xlC. - - * tests/run_tests.sh: Sets LIBPATH correctly for AIX (4.2 at least). - -Mon Mar 15 00:26:31 1999 Douglas C. Schmidt - - * netsvcs/ACE-netsvcs.html: Updated this to document the current - version. Thanks to Bill Rizzi for - reporting this. - - * netsvcs/lib/Client_Logging_Handler.cpp: Make sure that debug - messages go to stderr and log messages go to stdout. Thanks to - Bill Rizzi for reporting this. - - * netsvcs/lib/Client_Logging_Handler.cpp (fini): Oops, fixed a - minor buglet with return values. Thanks to David for reporting - this. - - * netsvcs/lib/Client_Logging_Handler.cpp (send): Added a check to - make sure we don't crash if the ostream is NULL. Thanks to Bill - Rizzi for reporting this. - -Sun Mar 14 22:54:41 1999 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp (init): Added an - ACE_OS::unlink() to prevent STREAM pipes from getting confused - if this application doesn't shutdown gracefully. Thanks to Bill - Rizzi for reporting this. - -Sun Mar 14 19:51:25 1999 Ossama Othman - - * configure.in: Added real-time support library `-lrt' check to - asynchronous IO functions/libraries checks. - - GNU glibc 2.1 adds support for the POSIX 1b real-time - specification in the library `librt'. The POSIX asynchronous IO - functions may be found in that library. Currently, `-lpthread' - must also be linked to in addition to `-lrt'. - -Sun Mar 14 17:20:09 1999 Douglas C. Schmidt - - * ace/Log_Msg: Generalized the enable_debug_messages() and - disable_debug_messages() methods so they can be used to enable - or disable arbitrary priorities. Thanks to Susan Liebeskind - for suggesting this. - -Sun Mar 14 14:46:00 1999 Chris Gill - - * ace/OS.i (tzset,timezone): pSOS doesn't support these two - functions. - - * ace/OS.{cpp, h}: added comments clarifying usage for - ACE_Time_Value::max_time, use of ACE_PSOS_TM in ACE_OS::signal (). - -Sun Mar 14 01:30:43 1999 Nanbor Wang - - * ace/OS.i (tzset,timezone): WinCE doesn't support these two - functions. - -Sat Mar 13 12:14:34 1999 Douglas C. Schmidt - - * ace/Thread_Manager: Changed the following methods: - - int task_list (..) - int thread_list (...) - int hthread_list (..) - int thread_grp_list (...) - int hthread_grp_list (...) - - to return actual number of fetched values. - - * ace/Thread_Manager: Added two new methods, task_all_list() and - thread_all_list(), which return lists of all the tasks and - threads in a Thread_Manager, respectively. Thanks to Zoran - Ivanovic for contributing this. - - * ace/Shared_Memory_{MM,SV}.h: Clarified the relationship of - these classes to the more powerful ACE_Malloc<> abstraction. - Thanks to Ti Z for suggesting this. - -Sat Mar 13 13:27:55 1999 David L. Levine - - * ace/OS.i (timezone,tzset): not supported on VxWorks. - - * include/makeinclude/ platform_osf1_4.0.GNU: added suppression - of msg 1180, statement causes unreachble return, with cxx 6.2 - and later. It doesn't like ACE_OSCALL_RETURN and - ACE_NOTSUP_RETURN, though it seems to be going overboard. - The warnings appeared with cxx 6.2-009. If someone uses - 6.2-007, they might have to manually remove the 1180 suppression. - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp (handle_events), - C-inserver.cpp (main), - netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record), - apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (svc): - replaced NOTREACHED comment with ACE_NOTREACHED macro. DU cxx - started complaining about the unreached return statement. - -Sat Mar 13 16:16:13 1999 James CE Johnson - - * docs/tutorials/021: Added some comments to page04 about the - template parameters and the use of the ACE_LOCK parameter in - particular. (Thanks to Bala for the suggestion.) - -Sat Mar 13 00:37:17 1999 Douglas C. Schmidt - - * ACE version 4.6.28 released. - -Fri Mar 12 20:17:47 1999 Irfan Pyarali - - * ace/Select_Reactor_Base.cpp (handle_input): - * ace/WFMO_Reactor.cpp (handle_signal): Added support for - dispatching QOS_MASK and GROUP_QOS_MASK. - -Fri Mar 12 19:13:11 1999 Carlos O'Ryan - - * ace/OS.i: - Implemented ACE_OS::timezone() for LynxOS. - -Fri Mar 12 16:31:19 1999 Ossama Othman - - * ACE-INSTALL.html (Linux): added note about non-thread safe - glibc 2.0 dynamic loader. The dynamic loader in glibc 2.1 is - thread safe. - -Fri Mar 12 13:44:54 1999 Kirthika Parameswaran - - * tests/DLL_Test.cpp (main): Fixed the errors on VxWorks and - LynxOS by shifting the START_TEST before the #ifdefs began. - -Fri Mar 12 12:53:17 1999 David L. Levine - - * ace/config-sunos5.5.h: with CC 5.0, replaced ACE_LACKS_ACE_IOSTREAMS - with ACE_USES_OLD_IOSTREAMS. - - * include/makeinclude/platform_sunos5.5_sunc++.GNU: with CC 5.0, - added -library=iostream,no%Cstd to CCFLAGS. - - Thanks to Diethard Ohrt for the - above two updates to support CC 5.0. - -Fri Mar 12 12:09:14 1999 David L. Levine - - * ace/OS.h: fixed comment after #endif to match its #ifdef. - -Fri Mar 12 11:46:55 1999 Vishal Kachroo - - Added two new functions tzset () and timezone (). The former sets the - timezone information based on an environment variable TZ which is - set when the user logs on. (For St. Louis TZ=US/Central and - timezone = 360 minutes or 6 hrs. from GMT.). timezone () retrieves - the timezone value in seconds. - - * ace/OS.h (ACE_OS): Added a wrapper for timezone () and tzset (). - * ace/OS.i (ACE_OS): Added Implementation for the above functions. - - The timezone information is being used in the Time Service. - -Thu Mar 11 20:11:13 1999 Douglas C. Schmidt - - * ace/Get_Opt.cpp (operator): Reverted the following change since - it will break documented behavior. Thanks to Jon Biggar for - reporting this. - - * ace/Get_Opt.cpp (operator): When the getopt encountered an - unknown option or an option with a missing required argument, it - returned '?' and continues to allow processing with the next - argument (no problem so far). However, if it encountered an - argument that is not an option (i.e. no '-' in front) or if it - encounters a double dash (i.e. '--') it returns EOF which - disallows further processing. Now, it returns a '?' after - advancing optind to allow further processing. Thanks to Mark - Laffoon for reporting this. - -Thu Mar 11 15:34:24 1999 David L. Levine - - * ace/ACE.cpp: removed unnecessary #includes of ace/IPC_SAP.h, - ace/Process.h, and ace/SString.h. Thanks to Elias Sreih - and Liang Chen - for suggesting this. - - * ace/OS.cpp (ACE_OS::thr_setspecific): on ACE_WIN32 with - ACE_HAS_TSS_EMULATION, don't register the one native key - with ACE_TSS_Cleanup::instance (). There's no need, because - it doesn't have a destructor. And, it prevents startup - because the ACE_TSS_Cleanup structures haven't been set up - completely when it is called. Thanks to Terry Rosenbaum - for reporting this. - - Thu Mar 11 14:04:15 1999 David L. Levine - - * include/makeinclude/platform_chorus_ghs.GNU: added protection - to not reset exceptions flag if it was defined. - -Thu Mar 11 12:53:41 1999 Carlos O'Ryan - - * ace/Thread_Manager.i: - The method to return the number of threads was using thr_lists_ - as a pointer, but it isn't. - -Thu Mar 11 10:12:51 1999 Douglas C. Schmidt - - * ace/Thread_Manager: Added a method to return the current number - of threads in the ACE_Thread_Manager. Thanks to Zoran Ivanovic - for suggesting this. - -Thu Mar 11 10:27:51 1999 Kirthika Parameswaran - - * tests/DLL_Test.cpp (main): Allowed the main to be accessible on - all platforms by shifting the #ifdefs inside the main. The - problem arose due to the main being declared an undefined - reference on LynxOS. - -Wed Mar 10 13:31:37 1999 Ossama Othman - - * ace/config-linux-common.h: - Commented out ACE_HAS_DLFCN_H_BROKEN_EXTERN_C, ACE_LACKS_MSYNC and - ACE_LACKS_MADVISE. They are no longer needed for recent revisions - of glibc 2.x. Thanks to for pointing this out. - -Wed Mar 10 11:05:39 1999 David L. Levine - - * ace/Thread.h,ace/Thread_Manager.h (exit): added comment - that exit () should not be called by main thread. - - * ace/OS.h: added an ACE_OS_thread_key_t typedef on WIN32 - with ACE_HAS_TSS_EMULATION. Thanks to Terry Rosenbaum - for reporting that - it was missing. - - * include/makeinclude/platform_osf1_4.0.GNU: disable msg 1136 with - cxx 6.1-029. Thanks to Doug Anderson for - reporting this. - -Wed Mar 10 10:57:16 1999 Carlos O'Ryan - - * ace/Basic_Types.h: - Fixed minor problem that would show up if sizeof(int)==2; thanks - to Cristian Ferretti for reporting this - problem. - -Wed Mar 10 10:13:52 1999 Nanbor Wang - - * ace/Message_Block.i (reference_count): Made sure the inline - function is defined before used. Thanks to David for noticing - this. - -Wed Mar 10 08:52:59 1999 David L. Levine - - * include/makeinclude/platform_chorus.GNU: fixed - exceptions=1 support. Thanks to Wei Chiang for - reporting this. - - * include/makeinclude/wrapper_macros.GNU: added exceptions=1 - support for pre-2.8 g++. It's not recommended, because pre-2.8 - g++ doesn't support exceptions well. It's provided for - completeness. - - * include/makeinclude/platform_chorus.GNU: removed - exceptions=1 support, because now it's in wrapper_macros.GNU. - -Tue Mar 09 21:54:39 1999 David L. Levine - - * netsvcs/Makefile,netsvcs/clients/Makefile: updated - ACE_COMPONENTS check to allow everything to be built - in the default case, when ACE_COMPONENTS isn't set. - Thanks to Carlos for noticing this. - - * netsvcs/Makefile,netsvcs/servers/Makefile: moved - netsvcs/server build suppression, when ACE_COMPONENTS - lacks Other, from netsvcs/Makefile to netsvcs/servers/Makefile. - - * examples/Naming/Makefile: suppress build if ACE_COMPONENTS - is defined and doesn't contain Other. - - * performance-tests/Misc/Makefile: don't build test_naming - if ACE_COMPONENTS is defined and doesn't contain Other. - - * ace/Log_Record.i (length): cast the long argument to ACE_UINT32, - to avoid warning message if long is greater than 4 bytes. - Thanks to Hao Ruan for reporting this. - -Tue Mar 9 20:56:35 1999 Carlos O'Ryan - - * include/makeinclude/rules.nested.GNU: - If the DIRS macro is not set we simply do not recurse. Before - this change we got an error from the shell. - - * bin/auto_compile: - If there are no errors then send a message when a warning was - detected during compilation. - -Tue Mar 09 15:15:19 1999 David L. Levine - - * bin/create_ace_build: check for ace/ and include/ directories - in top level directory, instead of ace/, examples/ and netsvcs/. - This allows use with trimmed-down workspaces. Thanks to Jeff - for suggesting this. - - * include/makeinclude/platform_chorus_ghs.GNU: added exceptions - make option support. Thanks to Wei Chiang for reporting that - it wasn't supported. - -Tue Mar 9 12:59:09 1999 Douglas C. Schmidt - - * docs/ACE-subsets.html: Updated the subsets to reflect what's - actually in the ACE Makefile. - - * ace/Message_Block.h: Changed the private section in both - ACE_Message_Block and ACE_Data_Block to protected allowing - derived classes to access data members of the parent class; - Thanks to Alexander Davidovich for suggesting - this. - - * ace/Message_Block: Added new reference counting accessor methods - to Message_Block and Data_Block. Thanks to Alexander Davidovich - for suggesting this. - -Tue Mar 09 11:21:49 1999 Nanbor Wang - - * ace/Message_Block.h: For some reason, default ctor and operator= - must be declared private instead of protected if they are not to - be accessable. Otherwise, VC complains. - -Tue Mar 09 01:06:44 1999 Douglas C. Schmidt - - * ACE version 4.6.27 released. - -Tue Mar 09 00:39:23 1999 Douglas C. Schmidt - - * ACE version 4.6.26 released. - -Mon Mar 08 23:23:35 1999 Nanbor Wang - - * ace/Thread_Manager.{h,cpp} (thread_within,hthread_within, - thread_grp_list,hthread_grp_list): Added new functions to - check if a thread is managed by the thread manager and collect - the thread ids/handles in a thread group. Thanks to XuYifeng - for motivating the addition. - -Mon Mar 08 22:23:33 1999 David L. Levine - - * ace/Makefile: added FOR_TAO short-cut to ACE_COMPONENTS. - If the ACE_COMPONENTS variable is set to FOR_TAO, then - only the components necessary to support TAO will be - built into libACE. - - * netsvcs/clients/Makefile: suppress build if Other - ACE_COMPONENT isn't built. - - * netsvcs/Makefile: suppress server build if Other and Token - ACE_COMPONENT aren't built. - -Mon Mar 8 17:35:04 1999 Gonzalo Diethelm - - * ace/NT_Service.cpp: - * ace/NT_Service.h: - Now the handle_control method calls separate protected virtual - methods to do its work. That way, it is easier to override what - must be done on each case, just by overriding one of the new - methods. - -Mon Mar 08 15:41:08 1999 Steve Huston - - * include/makeinclude/platform_hpux.GNU: Added -DACE_LACKS_PRAGMA_ONCE. - Thanks to Hao Ruan for reporting this. - - * README: Added Hao Ruan to the list of contributors. - -Mon Mar 08 12:27:54 1999 David L. Levine - - * ace/Service_Config.cpp (handle_signal): added ACE_UNUSED_ARG (sig) - if ACE_NDEBUG is defined, to avoid compilation warning about - unused argument with debug=0. - - * docs/ACE-subsets.html: added subset characterizations on - several platforms. - - * include/makeinclude/platform_sunos5_ghs.GNU: fixed AR and - ARFLAGS to use CC to build static libs. It looks like GreenHills - no longer supplies a separate archiver with 1.8.9. - -Mon Mar 08 11:58:03 1999 Nanbor Wang - - * ace/Task.cpp (activate): Made sure we don't mess with the passed - in grp_id if the task was not previously actived. Thanks to - XuYifeng for noticing this. - -Fri Mar 05 14:15:46 1999 David L. Levine - - * ace/OS.cpp (ACE_TSS_Cleanup (),free_all_keys_left ()): - with ACE_TSS_Emulation only, don't free the TSS key that - ACE_TSS_Cleanup uses internally for its in_use_ member. - The key doesn't get freed in ACE_OS::thr_key_detach (), - because that gets called during shutdown. So, - free_all_keys_left () would attempt to free it. But, - the dynamic memory associated with it had already been - deleted by ACE_TSS_Cleanup::exit (). And, there - aren't any other resources associated with it. So, - free_all_keys_left () can just skip over it. - - * ace/OS.cpp (cleanup_tss): disabled call to - free_all_keys_left () with ACE_HAS_TSS_EMULATION, because - we can't safely access the TSS values that were created by - the main thread. They were destroyed when the ACE_TSS_Cleanup - instance exit () function was called. There don't seem to - be any leaks if free_all_keys_left () isn't called, anyways. - -Fri Mar 5 11:05:04 1999 Nanbor Wang - - * examples/Log_Msg/Log_Msg.dsw: Fixed the path to Callback.dsp. - Thanks to Zoran Ivanovic for reporting - this. - - * performance-tests/Misc/Makefile: Removed test_guard from the - Makefile. This test requires having - ACE_USES_OBSOLETE_GUARD_CLASSES defined in order to compare - ACE_Guard to ACE_Thread_Mutex_Guard (obsolete). - - * ace/OS.h: Removed ACE_THREAD_GUARD*. - - * ace/config-psos-{diab,tm}.h: Removed - ACE_LACKS_METHOD_DEFINITIONS_IN_CLASS_TEMPLATE. It is no longer - needed. - - * ace/Synch_T.{h,i}: One would assume compilers are smart enough - to treat _all_ in-class functions as inline. Not for template - member functions. This is true at least for SunCC, egcs, gcc, - and MSVC. These functions seems to impose extra overhead. - After removing the in-class definitions for ACE_Guard, the cost - of using ACE_Guard is now as good as using - ACE_Thread_Mutex_Guard (which, by the way, is depricated.) So, - there's no need for a ACE_THREAD_MUTEX_GUARD class. Afterall, - the "ACE Way[TM]" of defining inline functions is the "Right - Way[TM]". The motto of the change is, always put inline - functions in .i files (even for template specialization) - otherwise, they'll become regular functions. If you really need - to put function definitions within class definitions, mark - inline function explicitly. - - Thanks to Andy Marchewka for noticing the - performance differences between ACE_Thread_Mutex_Guard and (old) - ACE_Guard. - -Fri Mar 5 11:06:12 1999 Douglas C. Schmidt - - * ace/Svc_Conf.y: Always print out an error message when we - increment yyerror. Thanks to Ulf Jaehrig - for reporting this. - -Thu Mar 4 12:26:47 1999 Nanbor Wang - - * tests/Message_Queue_Notifications_Test.cpp (svc): Made increment - of thread-safe. - -Thu Mar 04 07:00:20 1999 David L. Levine - - * ace/config-aix-4.2.x.h: added ACE_LACKS_PRAGMA_ONCE - to xlC section. Thanks to Rainer Blome - for reporting this. - - * ace/config-osf1-4.0.h: added ACE_LACKS_PRAGMA_ONCE to - cxx section, with __DECCXX_VER < 60090010. This should - help avoid compilation warnings from cxx 5.x. Thanks - to Oliver M. Kellogg for - reporting this. - - * ACE-INSTALL.html: corrected name of ace/config-linux-lxpthreads.h. - Thanks to Barry Hoggard for reporting this. - - * tests/Makefile,Makefile.DLL: instead of always running a - recursive make to build libDLL_Test.so, only do that if it - needs to be built. And, added dependencies to Makefile.DLL. - - * ace/Makefile: commented out use of TEMPLATE_FILES. I don't - believe that it's needed. - - * ace/CLASSIX/Makefile: removed unused TEMPLATE_FILES and - LSRC2 macros, and gethrtime build rule. - - * docs/ACE-subsets.html: updated, and added documentation for - ACE_COMPONENTS and the ACE_OS adapation layer. - -Wed Mar 3 22:30:02 1999 James CE Johnson - - * ace/IOStream_T.{cpp|h|i}: Those last changes break (at least) - examples/IOStream/server. I'm backing them out and restoring - the 4.6.25 versions of these files until Chris can get back to - me about what's going on. - -Wed Mar 03 21:49:58 1999 David L. Levine - - * ace/OS.cpp (socket_init,socket_fini): replaced use of - cerr with ACE_OS::fprintf. - - * ace/OS.h: conditionally #include Object_Manager.h, only - if ACE_HAS_MINIMAL_ACE_OS is not defined. Merged main () - #defines for Unix/NT and WinCE, to ease maintenance. - - * ace/config-minimal.h: removed undef of - ACE_HAS_NONSTATIC_OBJECT_MANAGER, because OS.h now conditionally - #includes Object_Manager.h. Added ACE_MAIN_OBJECT_MANAGER #define, - to only instantiate the ACE_OS_Object_Manager. - - * ace/config-WinCE.h: added ACE_MAIN and ACE_MAIN_OBJECT_MANAGER - #defines, to support merging of the main () #defines in OS.h. - - * ace/OS.{h,cpp}: added ACE_OS_Object_Manager::starting_up () - and shutting_down (). (ACE_TSS_Cleanup::remove): replaced - use of ACE_Object_Manager::shutting_down () with - ACE_OS_Object_Manager::shutting_down (). Thanks to Irfan - for reporting that, otherwise, ace/Object_Manager.h had - to be #included by OS.cpp on NT, if ACE_NONSTATIC_OBJECT_MANAGER - wasn't #defined. - - * tests/Basic_Types_Test.cpp: hacked a bit to support building, - and running, with ACE_HAS_MINIMAL_ACE_OS. Don't look, - unless you want to forever ruin all of your good coding habits. - -Wed Mar 03 19:08:52 1999 Irfan Pyarali - - * ace/Map_T.h (ACE_Map): Further degraded my code to make it - compile with lame compilers ;-) This time it was the lame pSOS - diab compiler that could not recongnize a typedef in the base - template class. - -Wed Mar 03 11:31:00 1999 David L. Levine - - * docs/ACE-guidelines.html: added guideline to try to limit - the length of source code lines to less than 80 characters. - And, reverted to the previous version of the file. The - last version was apparently committed by mistake. - - * include/makeinclude/wrapper_macros.GNU (ACE_HAS_GNUG_PRE_2_8): - added support for eg++. Assume that it's egcs, and therefore - ACE_HAS_GNUG_PRE_2_8 is set to 0. Thanks to Russell L. Carter - for supplying a patch. - -Wed Mar 3 09:35:20 1999 Ossama Othman - - * ace/Memory_Pool.cpp (handle_signal): Added a check to see if the - current mapping is up to date so that faults caused by other - mappings will be passed on. Thanks to - Joseph Weihs for reporting this and for - providing a fix. - -Wed Mar 3 05:48:24 1999 Douglas C. Schmidt - - * ace/ACE.cpp (fork): Added an extra pair of parens within the - WIFE*() macros to work around GCC bugs. Thanks to Alexandre - Karev and Andre Folkers - for reporting this. - -Tue Mar 2 22:50:18 1999 Alexander Babu Arulanthu - - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Proactor.cpp: - Added forward declaration for ACE_Proactor_Impl. Using static cast - to down cast from to - . Thanks to John.Mulhern@lawson.com for - reporting the warnings in HP UX. - -Tue Mar 02 21:17:19 1999 David L. Levine - - * ace/OS.{h,cpp},Object_Manager.{h,cpp}: changed Object_Manager - state to be per-instance, instead of global. This makes - it easier to enforce startup and shutdown ordering, - regardless of whether the Object_Managers are static, - created on the stack of main (), or dynamically allocated. - - * ace/IOStream_T.h: fixed a couple more line breaks. - - * Makefile: added support for suppressing man page regeneration - on make release command line. - - * include/makeinclude/platform_osf1_4.0.GNU: added automated - support for warning 1136. It's only supported by cxx 6.2. - Thanks to James CE Johnson for reporting - this, and to Andrew Hobson for - diagnosing the problem. - - * ace/OS.i (thr_getspecific): added #else clause w/ACE_NOTSUP_RETURN - to support ACE_HAS_MINIMAL_ACE_OS. - - * ace/config-minimal.h: added #undef of - ACE_HAS_NONSTATIC_OBJECT_MANAGER, to avoid #include of - Object_Manager.h. And, added #define ACE_USE_THREAD_MANAGER_ADAPTER - so that ACE_Thread_Adapter::invoke () won't use any - ACE_Thread_Exit functions. - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): removed - ACE_HAS_MINIMAL_ACE_OS conditional compilation, because - config-minimal.h now #defines ACE_USE_THREAD_MANAGER_ADAPTER. - And, added #else clauses to three TSS-related functions. - -Tue Mar 02 14:43:29 1999 Steve Huston - - * ace/Map_T.(h i): Qualified types inherited from template base - classes; qualified with ACE_TYPENAME where needed. Now aC++ - is happy. - - * ace/config-hpux-10.x-hpc++.h: Added ACE_HAS_TYPENAME_KEYWORD for - aC++. - - * tests/DLL_Test.cpp: Enable on HP-UX. Generalize the library - prefix/suffix with the platform definitions from OS.h. - -Tue Mar 2 12:41:00 1999 Chris Gill - - * ace/IOStream_T.{cpp, h}: Fixed some line breaks that were - inadvertently introduced when these files were last checked in. - -Tue Mar 2 10:54:16 1999 Nanbor Wang - - * Cache_{Hash,Heap}_T.{h,cpp}: - * Cache_Manager[_T].{h,cpp}: - * Cache_Object.cpp: - * Hash_Bucket_T.{h,cpp}: Fixed erroneous include directives. - Thanks to Christian.Destor@alcatel.fr for reporting this. - -Tue Mar 2 10:33:47 1999 James CE Johnson - - * ace/IOStream_T.{cpp|h|i}: Christopher Healey - noticed occasional core dumps from - ~ACE_IOStream on heavily loaded systems. It turns out that - streambuf_ was being deleted out from under the object. These - three files include his patches for this problem. - -Tue Mar 2 02:28:54 1999 Nanbor Wang - - * ace/CDR_Stream.h (do_byte_swap): This accessor function should - be public accessible. Otherwise it's useless. Reorder class - declaration so the protected members appear before private - members/functions. - -Mon Mar 1 23:26:41 1999 Kirthika Parameswaran - - * tests/DLL_Test.cpp (ACE_HAS_SVR4_DYNAMIC_LINKING): - Added this check to prevent this test from being run - separately. - -Mon Mar 01 17:02:48 1999 David L. Levine - - * ACE version 4.6.25 released. - -Mon Mar 01 16:54:02 1999 David L. Levine - - * ace/OS.cpp,Object_Manager.cpp: fixed ObjMan state logic to - ensure that the ACE_Object_Manager is fini'd before the - ACE_OS_Object_Manager, even when both are static objects. - Thanks to Carlos for reporting this problem. - -Mon Mar 01 14:05:46 1999 David L. Levine - - * ACE version 4.6.24 released. - -Mon Mar 01 13:04:53 1999 David L. Levine - - * ace/OS.*,Object_Manager.{h,cpp},ACE.cpp: added class - ACE_OS_Object_Manager. It manages the three preallocated - locks that ACE_OS uses. Many thanks to Nanbor for - suggesting the scheme to avoid dependency on Synch_T.h - for the ACE_Guard instantiations: OS.cpp now has a - couple of lightweight guards for its internal use. - - * ace/ACE.{i,cpp},OS.*: moved ACE::strecpy () and - ACE::unique_name () from class ACE to ACE_OS. That - allows ACE_OS to be self-contained. The ACE versions - were left for backward compatibility; they now just - wrap the ACE_OS versions. - - With these changes, a stand-alone ACE OS adaptation layer - can now be built. The ace/config-minimal.h config file - should be included in ace/config.h if you want to build - the ACE OS adaptation layer. - - Two deficiencies remain with the ACE OS adaptation layer: - the dependencies on ACE_Log_Msg have been conditionally - compiled out by config-minimal.h. Similarly, there is - a conditional dependency of ACE_Thread_Adapter::invoke () - on ACE_Thread_Exit. It would probably be best to move - that to ACE Thread_Manager, if possible. - - * ace/config-minimal.h: suppress ACE_HAS_TSS_EMUATION, because - it requires other ACE headers to be #included. - - * ace/Synch.{i,cpp} (~ACE_Recursive_Thread_Mutex): added - a call to this->remove (). Without it, the mutex wasn't - being destroyed. Uninlined both the destructor to avoid - code bloat if there are multiple returns in a function - that instantiates an ACE_Recursive_Thread_Mutex locally. - And, uninlined the remove () function, to save code space, - because it's non-trivial and not expected to be time critical. - -Sun Feb 28 20:21:05 1999 Kirthika Parameswaran - - * tests/Makefile.DLL (realclean): Added the realclean target to - the makefile. - - * tests/run_tests.sh (ace_version): Disabled DLL_Test for chorus, - LynxOS, Unicos platforms as they dont support shared libraries. - -Sun Feb 28 20:08:54 1999 Alexander Babu Arulanthu - - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Asynch_IO.cpp: - Fixed to pass wherever is being - passed, since it is ok to pass the derived class pointer in place of - base class pointer. - Defined the fields and in - so that they can be used instead of - and . Because and - fields are not supported on HP yet. - -Sun Feb 28 14:22:38 1999 David L. Levine - - * include/makeinclude/platform_linux_kcc.GNU: added - -D_GNU_SOURCE to CFLAGS, because it's needed with - glibc 2.1. It can't go into the config file, because - it needs to be #defined before the #include of - features.h. But, features.h #defines the glibc version. - Thanks to Ben Eng for reporting this. - - * ace/config-minimal.h: disable ACE_ASSERT, ACE_DEBUG, and ACE_ERROR. - -Sun Feb 28 12:57:53 1999 Nanbor Wang - - * ace/Thread_Manager.cpp (terminate): The condition for handling - joining thread was wrong. Thanks to Terry Rosenbaum - for reporting the bug. - -Sun Feb 28 08:37:44 1999 David L. Levine - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): replaced call - to ACE_Thread::self () with call to ACE_OS::thr_self (), - so that we don't need to #include ace/Thread.h. Thanks - to Russ Noseworthy for reporting this. - -Sat Feb 27 17:25:52 1999 David L. Levine - - * ace/Makefile: updated dependencies. They didn't have - any .shobj dependencies, just .obj. - - * tests/Makefile: ran make depend. It didn't have any - dependencies. - - * include/makeinclude/platform_linux_kcc.GNU: added note that - evaluation copies of KCC might come with libraries that were - built with exception handling support. To use them, ACE must be - built with exception handling support - (exceptions=1). Thanks to John Lindal - for reporting this. - - Also, added support for the exceptions make flag. - -Sat Feb 27 13:31:17 1999 Douglas C. Schmidt - - * ace/OS.i: Fixed the remaining problems with ACE_OSCALL_RETURN - macro usage for sem_wait(), sem_post(), and sem_trywait(). - Thanks to David Levine for reporting this. - - * ace/OS.h: Added a set of ACE_THREAD_GUARD macros that use - ACE_Thread_Mutex_Guard. These seem to be faster on many - platforms than the ACE_Guard. Thanks to - Andy Marchewka for reporting this. - - * ace/Dump.cpp: Moved the explicit template instantiation of - ACE_Guard out of dump and put it into - Synch.cpp, where it's with the other instantiations. - -Fri Feb 26 23:58:46 1999 Jeff Parsons - - * ace/CDR_Stream.{h,i,cpp}: - Added some read- and write-pointer alignment - functions, as proposed by Carlos. Also deleted some - ACE_OutputCDR members that weren't being used. - Checked the build on NT and suncc. Must come up with - some kind of test for these new functions. - -Fri Feb 26 21:56:05 1999 David L. Levine - - * ace/Makefile: moved ACE_COMPONENTS to after include - of wrapper_macros.GNU, so that users can set it in - their platform_macros.GNU. Also, added ACE_LACKS_ACE_OTHER - to CFLAGS if Other ACE_COMPONENT is not built. - -Fri Feb 26 17:48:32 1999 Steve Huston - - * include/makeinclude/platform_hpux_aCC.GNU: Added OCFLAGS - value for optimize=1 builds; added support for distrib=1 - builds to build for off-site distribution. - -Fri Feb 26 12:38:00 1999 David L. Levine - - * ace/OS.cpp: added #include "ace/Thread_Manager.h" on - WIN32, for ACE_Thread_Descriptor declaration. Thanks - to Barry Hoggard for reporting this. - - * ace/Managed_Object.h: fixed comments in description. - -Fri Feb 26 11:56:08 1999 Ossama Othman - - * ace/Log_Priority.h (ACE_Log_Priority): Removed all references to - ACE_HAS_BROKEN_ENUMS since it has been deprecated (see David's - ChangeLog entries from Feb 5). - -Fri Feb 26 11:09:47 1999 Ossama Othman - - * ace/OS.i (sema_destroy): ACE_OSCALL and ACE_OSCALL_RETURN macro - calls for sem_destroy, sem_unlink and sem_close had too few - arguments. Added the missing arguments for the macros. - -Fri Feb 26 10:59:45 1999 Alexander Babu Arulanthu - - * examples/Reactor/WFMO_Reactor/test_talker.cpp (main): Fixed to - use the new proactor interface. - -Thu Feb 25 22:17:58 1999 David L. Levine - - * ace/OS.cpp (spa, for VxWorks only): updated comment about - ::sp () default values, and added comments for each argument - to ::taskSpawn (). Thanks to Tad Jarosinski - for asking about spa (). - -Thu Feb 25 20:10:06 1999 Ossama Othman - - * ace/Synch.h: - * ace/Synch.i: - * ace/Synch_T.h: - - Added an ACE_Null_Semaphore class. Thanks to Irfan for his guidance - on this. Also fixed ACE_SYNCH_SEMAPHORE to be ACE_Null_Semaphore - when ACE is built without thread support. - -Thu Feb 25 18:37:27 1999 Irfan Pyarali - - * ace/WFMO_Reactor (cancel_wakeup and masks_ops): Fixed the - cancel_wakeup() method. It was doing too much, i.e., if the - masks were reduced to null, it was removing the event handler - entry. The new version behaves more like the Select Reactor in - that it simply plays with the masks without removing the event - handler. - - Also, implemented the mask_ops() operation. - - Thanks to Douglas C. Schmidt and Zoran - Ivanovic for helping in pinpointing the - problem. - - * ace/Service_Config.cpp (fini_svcs and close): Since the reactor - and proactor singletons potentially call user code (in - handle_close()), we must shut them down *before* the log msg is - destroyed. Therefore, moved the close_singletons() call from - close() to fini_svcs(). - - * ace/Select_Reactor_Base.cpp (bit_ops): Since we return the old - masks everytime, find the old reactor masks at the start of the - method. This automatically does the work of the GET_MASK - operation. - - * ace/Proactor.cpp: Added #include "ace/Object_Manager.h" - - * examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp: - handle_close() was getting called twice; changed code to prevent - double deletion. - - * examples/Reactor/WFMO_Reactor/test_handle_close.cpp: Added the - ability to cancel reads, change masks, and check for existing - reactor masks. - -Thu Feb 25 17:35:10 1999 Kirthika Parameswaran - - * tests/DLL_Test.cpp: - Changed the OBJ_SUFFIX to ".so" as on Linux the .o file cannot - be a shared object. Also the OBJ_PREFIX is now "./lib" for - non-Win32 platforms. - * tests/Makefile: - Additional option DLL_TEST added so that a .so can be produced - for DLL_Test. - * tests/Makefile.DLL: - This is the makefile which produces libDLL_Test.so for DLL_Test. - -Wed Feb 24 23:47:22 1999 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_proactor.cpp: - * ace/WIN32_Asynch_IO.h: - * ace/Proactor.cpp: - * ace/WIN32_Proactor.cpp: - * ace/Proactor.h: - * ace/Proactor_Impl.h: - * ace/POSIX_Proactor.h: - Changed the return values of the API to - return -1 on error, 0 on timeout, 1 on success. This has been done so - that it looks like the . Previously - was returning -1 on error, 0 on success - and 0 on timeout also. - - Fixed the and - to do indefinite blocking when - ACE_INFINITE is passed. is used instead of - . - - Renamed the class to more appropriate - . - -Wed Feb 24 22:08:50 1999 Douglas C. Schmidt - - * ace/OS.i: Fixed all the sem_* calls so that they no longer use - the ACE_ADAPT_RETVAL() macro, which was broken since these calls - all return -1 on failure. Thanks to John E. Bossom - for reporting this. - -Wed Feb 24 17:40:49 1999 James CE Johnson - - * docs/tutorials/combine: - * docs/tutorials/colorize: - A few enhancements to make the colorization better. Also, when - #include "ace/something.h" is seen by the colorizer, it will - create a link to ../../../ace/something.h. That should give - direct links from the tutorial pages to the ACE headers. - -Wed Feb 24 16:56:51 1999 James CE Johnson - - * docs/tutorials/017/barrier2.cpp: Added this to show how you can - change the thread count while threads are still active. - - * docs/tutorials/017/*.html: Regenerated due to the new file. - - * docs/tutorials/018/*.html: Added Kirthika's abstract & - regenerated. - - * docs/tutorials/018/token.cpp: Typo in the comments... - -Wed Feb 24 14:57:10 1999 Nanbor Wang - - * ace/OS.h (ASYS_ONLY_WIDE_STRING): New UNICODE macros to convert - char* to wchar* when UNICODE is defined but not on CE. - - * ace/Service_Config.cpp (parse_args): Convert getopt.optarg using - ASYS_ONLY_WIDE_STRING. - -Wed Feb 24 13:54:15 1999 David L. Levine - - * ace/config-minimal.h: changed #include protection to - ACE_CONFIG_MINIMAL_H, so that this config can be #included - by others. - - * ace/OS.{h,cpp},Thread_Manager.h: moved ACE_Thread_Control and - ACE_Thread_Exit class definitions from Thread_Manager.h to OS.h, - so that Task.h no longer needs to be #included by OS.cpp. - - * ace/OS.cpp: protected #include of Containers_T.h with - defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION). - -Wed Feb 24 05:30:59 1999 Douglas C. Schmidt - - * ace/Message_Queue_T.i (dequeue): Replaced the improper - self-recursive call to dequeue() with dequeue_head(). Thanks to - Marc Engel for reporting this. - -Tue Feb 23 20:58:17 1999 Douglas C. Schmidt - - * ace/OS.i: Make sure to do the right thang if we're compiling the - ACE recursive thread mutexes on platforms that lack threading. - - * ace/Service_Object: Added a new ACE_Service_Object constructor - that takes an ACE_Reactor * and passes this down to the - ACE_Event_Handler base class. - - * ace/Event_Handler: Added a new ACE_Event_Handler constructor - that takes an ACE_Reactor * and an int priority that default to - the right values. - -Tue Feb 23 21:53:32 1999 David L. Levine - - * ace/OS.h,README: added ACE_HAS_MINIMAL_ACE_OS support. - - * ace/config-minimal.h: added this config file. It defines - ACE_HAS_MINIMAL_ACE_OS. It is designed to build only - the minimal ACE_OS adaptation layer. - -Tue Feb 23 20:28:45 1999 Marina Spivak - - * ace/SString.{h,i,cpp}: Added a private member to the - ACE_CString class to keep track of the size of data buffer, and - avoid unnecessary memory reallocations. Updated class methods - to use buf_len_. - -Tue Feb 23 19:54:55 1999 Alexander Babu Arulanthu - - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Asynch_IO.cpp: - Fixed the potential dominance warnings in POSIX - implementation. Updated the documentation. - -Tue Feb 23 18:11:11 1999 Kirthika Parameswaran - - * examples/DLL/DLL.dsw: - examples/DLL/Main.dsp: - examples/DLL/Newsweek.dsp: - examples/DLL/Today.dsp: - Added extra include and linker options to the projects. - - * tests/DLL_Test: - Added OBJ_PREFIX to cater to the problem which arose due to the fact - that the .o is produced under the .obj directory on SunOS. - - * tests/run_tests.sh: - tests/run_tests.bat: - Made an entry for DLL_Test. - -Tue Feb 23 16:54:33 1999 Irfan Pyarali - - * ace/OS.i (recursive_mutex_trylock and recursive_mutex_lock): - Removed the "abandoned" versions of these routines. Abandoned - mutexes are only supported for process mutexes, but not for - thread mutexes. - -Tue Feb 23 15:50:40 1999 Alexander Babu Arulanthu - - * ace/Proactor.cpp: - * ace/Proactor.h: - * ace/Proactor_Impl.h: - * ace/POSIX_Proactor.h: - * ace/POSIX_Proactor.cpp: - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Asynch_IO.cpp: - * ace/WIN32_Proactor.cpp: - Implemented for POSIX platforms. Thanks to Irfan - for the cool design. This API has been changed a little bit for - portability. API now exists at - class. To post completions, users will have - to get hold of an class (either get it from - the predefined factory methods at the Proactor or derive from - or , then call - on it passing in the which can - be got through method in the . - The need for RTTI has been avioded in this design. - -Tue Feb 23 15:19:33 1999 Steve Huston - - * ace/NT_Service.(h cpp): Added two new methods: - state (DWORD *, ACE_Time_Value * = 0) as an alternate way to get the - service's state, with definite indication of error. Also changed - comments on the other state() method to clarify the return value. - test_access (DWORD) tests caller's access to the service. - Thanks to Martin Krumpolec for these ideas and - suggestions! - -Tue Feb 23 14:12:52 1999 Irfan Pyarali - - * ace/Active_Map_Manager_T.h (npos): Added a new static member - function that returns a key that cannot be found in the map. - Thanks to Fernando D. Mato Mira for - suggesting this. - -Tue Feb 23 12:15:09 1999 Nanbor Wang - - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: - * ace/Parse_Node.cpp (symbol): - * ace/OS.cpp (fork_exec): - * ace/INET_Addr.cpp (ACE_INET_Addr): More Unicode fixes. - -Tue Feb 23 12:00:21 1999 Steve Huston - - * examples/NT_Service/main.cpp: Allow -i option without a value, and - default to AUTO_START. Also, added a README file to explain how to - use the program. Thanks to Zoran Ivanovic for - the change and the README file! - -Mon Feb 22 22:03:47 1999 Nanbor Wang - - * bin/auto_compile_win32.pl: Perl script for compiling all the - million different config. combination on Win32. Hey, it also - works on Alpha. Thanks to Darrell Brunsch for testing it on - Alpha/NT. - - * ace/ace_{dll,lib}.dsp: Fixed broken project settings. - -Mon Feb 22 21:56:27 1999 David L. Levine - - * ace/Sched_Params.cpp: removed #include of ACE.h because it's - not necessary. - - * ace/Makefile: added ACE_COMPONENTS default definition. - Moved Sched_Params from THREADS_FILES to OS_FILES because - OS.cpp needs it. It only contributes 172 bytes to libACE - on VxWorks and 248 on LynxOS. - -Sun Feb 21 18:52:17 1999 Douglas C. Schmidt - - * ACE version 4.6.23 released. - -Sun Feb 21 08:46:09 1999 David L. Levine - - * ace/OS.i (recursive_mutex_{init,lock,trylock}: added some - ACE_UNUSED_ARGS. - - * ace/OS.{i,cpp} (cond_*): uninlined the ACE_OS:cond_* function - versions with ACE_LACKS_COND_T. Most are too big to be - good candidates for inlining. And the others cause use-before- - definition problems in OS.i. - -Sun Feb 21 00:17:58 1999 Darrell Brunsch - - * websvcs/lib/URL_Addr.i: Can now copy null Addrs. Also added - hash function implementation. - - * websvcs/lib URL_Addr.h: Added hash function. - - * websvcs/lib/URL_Addr.cpp: Fixed a bug with - ACE_HTTP_Addr::create_relative_address and urls beginning with - "/". It used to copy the first '/', which wasn't needed. - -Sat Feb 20 15:39:16 1999 David L. Levine - - * ace/OS.{h,cpp},Object_Manager.{h,cpp}: changed ACE_OS::exit () - to call an exit hook that is registered by the ACE_Object_Manager, - instead of directly calling ACE_Object_Manager::fini (). - - * ace/OS.i (thr_self): moved definitions to before first use. - -Sat Feb 20 11:50:30 1999 Nanbor Wang - - * ace/OS.i (thr_equal): Moved the body of ACE_OS::thr_equal before - recursive_mutex methods to avoid "function redefined as inline" - problem. Thanks to David Levine for reporting this. - -Sat Feb 20 09:05:20 1999 Douglas C. Schmidt - - * ace/OS.cpp: Changed the ACE_static_cast() in ACE_OS_Wstring to - first use an ACE_const_cast(). Thanks to Andy Gokhale for - reporting this. - -Sat Feb 20 02:53:38 1999 Nanbor Wang - - * ace/OS.cpp (ACE_OS_WString): Need to add a statis cast when - converting from wchar to char to eliminate a warning from Win98. - - * ace/config-win32-common.h: Do not check for library type on CE. - - * ace/config-WinCE.h: Defined ACE_HAS_WINCE as 1. - -Fri Feb 19 22:54:18 1999 Carlos O'Ryan - - * ace/OS.h: - Fixed the return types for ACE_OS_WString and ACE_OS_CString - assignment operators, even though they are not defined they - should be declared to return something, otherwise egcs give us a - ton of warnings. - -Fri Feb 19 21:02:49 1999 Douglas C. Schmidt - - * ace/config-win32-common.h: #define'd ACE_HAS_RECURSIVE_MUTEXES - for Win32. - - * ace/OS.cpp: Removed the SString.h dependency in OS.cpp! - -Fri Feb 19 21:44:31 1999 Darrell Brunsch - - * ace/OS.i: Was using two many arguments to thread_mutex_lock () - and ACE_OS::thread_mutex_trylock (). - - * ace/Synch.i: Typo in comment - -Fri Feb 19 18:18:13 1999 Nanbor Wang - - * ace/OS.{h,i,cpp}: Added ACE_OS_WString and ACE_OS_CString which - should only be used within ACE_OS to perform conversion between - wchar strings and char string. - Changed the wide/multibyte conversion macros to use - ACE_OS_?String classes and removed dependencies to Auto_Ptr.h - and SString.h. - - * ace/config-win32-common.h: Removed checked for (_DLL) if - ACE_HAS_DLL = 0. Otherwise, the static build won't compile. - - * ace/Token_Manager.cpp (release_token): - * ace/Service_Manager.cpp (list_services): Changed - ASYS_MULTIBYTE_STRING to ASYS_ONLY_MULTIBYTE_STRING. Because - the new conversion classes have stronger type checking, these - errors weren't found until now. - -Fri Feb 19 17:01:08 1999 David L. Levine - - * ace/Makefile: moved ACE from OS_FILES to UTILS_FILES. - -Fri Feb 19 15:44:23 1999 Douglas C. Schmidt - - * ace/OS, - ace/Synch: Moved the implementation of the - ACE_Recursive_Thread_Mutex from the Synch.* files to - the OS.* files in order to reduce coupling in OS.* and - other parts of ACE. - -Fri Feb 19 12:36:43 1999 Carlos O'Ryan - - * ace/OS.i: - Fixed missing ACE_INLINE for ACE_OS::strenvdup() - -Fri Feb 19 11:35:57 1999 Steve Huston - - * include/makeinclude/platform_sunos5_sunc++.GNU: Added new option - "distrib". If you do a "make distrib=1" the -R options won't be - given when linking, which produces dynamic load records requiring - objects/libraries in standard places, or use of LD_LIBRARY_PATH. - The default is distrib=0, which is the existing behavior. - -Fri Feb 19 11:22:48 1999 Nanbor Wang - - * ace/OS.cpp (open): Don't call CreateFileA with FILE_SHARE_DELETE - when compiled on Win95 because it doesn't support the flag. The - implication of this change is that unlink before close will not - work on Win95. So programs that are targeted to both NT and - Win95 cannot depend on it. Thanks to Rod Joseph - for reporting the bug. - -Thu Feb 18 21:10:45 1999 Douglas C. Schmidt - - * ace/OS.cpp (string_to_argv): We no longer have to special case - for WinCE since this logic has been moved into - ACE_OS::strenvdup(). - - * ace/ACE.cpp: Implemented ACE::strenvdup() using - ACE_OS::strenvdup(). - - * ace/OS: Move the implementation of strenvdup() from ACE to - ACE_OS to remove another dependency from the OS wrappers. - - * ace/ARGV.cpp: Rewrote the ACE_ARGV::string_to_argv() and - ACE_ARGV::argv_to_string() methods to use the new - ACE_OS::string_to_argv() and ACE_OS::argv_to_string(). - - * ace/OS.h: Added string_to_argv() and argv_to_string() methods to - ACE_OS to remove the dependency on ACE_ARGV. - -Thu Feb 18 19:21:03 1999 James CE Johnson - - * docs/tutorials/005/client_handler.cpp: Replaced the leading '_' - in the open() method so that we can cast _acceptor to acceptor. - -Thu Feb 18 14:12:28 1999 Nanbor Wang - - * netsvcs/clients/Naming/Client/svc.conf: Changed to start up - ACE_Naming_Context as dynamic service. Thanks to Darren - Whobrey for reporting this problem. - - * ace/Name_Proxy.cpp (open): The timeout value was set upp - ACE_Time_Value::zero accidentally when we want blocking - connect. Thanks to Darren Whobrey for - reporting the bug. - - * ace/CDR_Stream.{h,i} (ACE_InputCDR::do_byte_swap): Added - accessor function for Flick. - - * ace/CORBA_macros.h (ACE_THROW_INT): This should return a new - instance of the exception. Thanks to Andy for pointing this - out. - -Wed Feb 17 16:40:56 1999 Nanbor Wang - - * ace/OS.h (ACE_NEW_THROW_EX): A new ACE_NEW_THROW macro which - makes ACE_NEW_THROW_EX behave like a exception-throwing - function. I.e., you need to follow ACE_NEW_THOW_EX with - appropriate ACE_CHECK* macros. The use of ACE_NEW_THROW, - ACE_NEW_THROW_RETURN, ACE_NEW_TRY_THROW are deprecated. - - * docs/exceptions.html: Added documentation for - ACE_DECLARE_NEW_CORBA_ENV. - - * ace/config-WinCE.h: Automatically define ACE_HAS_WINCE if it is - not already defined. - - * ace/Synch.cpp: I had to shuffle the location of .i file around - to avoid a warning from SH compiler for CE. - - * ace/config-win32-common.h: Disabled checking for DLL run-time, - WIN32, and multi-threaded run-time on Windows CE. - - * ace/CORBA_macros.h (ACE_DECLARE_NEW_CORBA_ENV): Added this macro - for declaring a new CORBA_Environment called ACE_TRY_ENV. - ACE_TRY_NEW_ENV should now be avoided because it won't work if - multiple try blocks are needed in the top-most functions. - Instead, you can use the new macro to define the environment - variable and use ACE_TRY/ACE_TRY_EX as usually. This is even - more intuitive than ACE_TRY_NEW_ENV. ;) Thanks to Andy for - reporting the problem. - -Wed Feb 17 10:44:29 1999 Alexander Babu Arulanthu - - * examples/Reactor/Proactor/test_proactor.dsp: - * examples/Reactor/Proactor/test_proactor.cpp: - * examples/Reactor/Proactor/Makefile: - rtagged these files with "new_proactor" - -Tue Feb 16 17:08:53 1999 Steve Huston - - * examples/ASX/Event_Server/Transceiver: Moved Event_Transceiver - class definition to new file, transceiver.h, to build ok on AIX (P15) - and fixed core dump if ctor fails to connect. - - * examples/Connection/misc: Moved some class definitions from - test_upipe.cpp to new file test_upipe.h to build ok on AIX (P17). - Same thing with Connection_Handler - new file Connection_Handler.h. - - * examples/Connection/misc/Makefile: Clean out tempinc directory - between program compiles so AIX xlC doesn't freak out. - -Tue Feb 16 16:42:23 1999 Nanbor Wang - - * ace/CORBA_macros.h (ACE_PRINT_EXCEPTION): A new macro that deal - with printing out the exception for debugging. Thanks to Lothar - Werzinger for suggesting this. - - * docs/exceptions.html: Added documentation for the new macro - ACE_PRINT_EXCEPTION. Since there's no portable way to print out - the content of a CORBA_Exception, we use this macro to deal with - differences among various ORB implementations. This macro is - user definable. - - Thanks to Eric Covington for figuring out the - following. - - * ace/ace_ce_dll.dsp: Added Functor.cpp and Message_Queue.cpp. - - * ace/High_Res_Timer.cpp (dump): Fixed Unicode problem. - - * ace/OS.i (truncate): WinCE does not have char* version of - truncate. - -Tue Feb 16 00:39:35 1999 Alexander Babu Arulanthu - * ace/ace_dll.dsp: - * examples/Reactor/Proactor/test_proactor.dsp: - * examples/Reactor/Proactor/test_proactor.cpp: - Updated the files. - * ace/WIN32_Asynch_IO.h: - * ace/WIN32_Asynch_IO.cpp: - * ace/WIN32_Asynch_IO.i: - Added the files - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Updated these files - * examples/Reactor/Proactor/Makefile: - New make file which also compiles the test_aiosig_ace.cpp - program. - * ace/POSIX_Asynch_IO.i: - Added the file. - - - rTagged the ACE_wrappers repository with - After the following changes rtagged the repository with - - - * ace/ - Proactor.h - Asynch_IO.cpp - Asynch_IO.h - Makefile - Proactor.cpp - Proactor.h - config-lynxos.h - config-sunos5.6.h - config-sunos5.7.h - POSIX_Asynch_IO.{h,CPP} - POSIX_Proactor.{h,cpp} - WIN32_Asynch_IO.{h,cpp} - Asynch_IO_Impl.{h,cpp,i} - Proactor_Impl.h - Applied Bridge pattern to the POSIX implementation of the Proactor - code. ACE_POSIX_AIOCB_Proactor works fine on Solaris - 2.6. ACE_POSIX_SIG_Proactor works on LynxOS. Take a look at the tests - at the $(ACE_ROOT)/examples/Reactor/Proactor/ and the README. - - * tests/ - Aio_Platform_Test.cpp - *examples/Reactor/Proactor/: - test_proactor.cpp - test_aiocb.cpp - test_aiosig.cpp - test_aiosig_ace.cpp - README - Test files for testing out the platforms. - -Mon Feb 15 13:17:15 1999 Douglas C. Schmidt - - * ACE version 4.6.22 released. - -Sun Feb 14 15:25:27 1999 Ossama Othman - - * ACE-configuration.txt: - * ACE.ifnames: - * acconfig.h: - * ace-config.in: - * ace-diff-config.in: - * acinclude.m4: - * aclocal.m4: - * config.guess: - * config.sub: - * configure: - * configure.in: - * install-sh: - * libtool: - * ltconfig: - * ltmain.sh: - * missing: - * mkinstalldirs: - * ace/config.h.in: - - Started to introduce the work done by the ACE Configuration - Project into the official ACE distribution. - - To help speed development, the work being done by the ACE - Configuration Project is being slowly introduced into the official - ACE distribution. Some of the functionality in the work created by - the ACE Configuration Project has been removed so that ACE may be - built in the usual fashion. Once the ACE Configuration Project - work stabilizes on more platforms that removed functionality may be - added to ACE. - - Currently the configure script contains most of the tests that are - necessary to properly configure ACE on most platforms. However, - there are still some autoconf tests that are missing. As such, you - may encounter and most likely will have compilation problems. - - The `configure' script that is currently being used has been - modified from the ACE Configuration Project's `configure' script to - prevent makefiles from being automatically generated since there are - still some issues that must be addressed before automatically - generated makefiles are incorporated into the official ACE - distribution. - -Sun Feb 14 14:09:11 1999 James CE Johnson - - * docs/tutorials/015/server.cpp (main): Force the singleton to use - the Select Reactor instead of the OS-default. This should fix the - problem this tutorial has on Win32 due to blocking vs non-blocking - socket configuration. - - * docs/tutorials/015/Protocol_Task.h : Removed the ability to - activate this task. The code is now a little simpler and less - likely to behave in unpredicatable ways. - - * docs/tutorials/015/* : A few typos fixed but mostly fallout from - removing the ability to activate the Protocol_Task. - - * docs/tutorials/016/page01.html : Added Kirthika's abstract. - - * docs/tutorials/016/condition.cpp : Made max_threads_ a - non-static member variable that is set by open(). - - * docs/tutorials/017/page01.html : Added Kirthika's abstract. - -Sun Feb 14 12:47:03 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - Minor cosmetic changes, mostly trailing spaces. - -Sat Feb 13 22:06:17 1999 Nanbor Wang - - The following changes are based on the patch Eric Covington - submitted. Thanks very much to Eric for - bringing ACE/CE up-to-date. - - * ace/ace_ce_dll.dsp: Updated. - - * ace/OS.cpp: (open): CE doesn't support opening files with - attribute FILE_SHARE_DELETE. - - * ace/OS.i (abort): CE doesn't support abort. - - * ace/Stats.cpp (print_summary): CE doesn't support strerror. - - * ace/Stats.i (dump): Changed to use ACE_DEBUG. - - * tests/Thread_Manager_Test.cpp (main): - * ace/tests/SOCK_Connector_Test.cpp (find_another_host): - * ace/Log_Msg.cpp (log): - * ace/INET_Addr.cpp (addr_to_string): Fixed Unicode problems. - -Fri Feb 12 16:14:47 1999 Douglas C. Schmidt - - * ace/Remote_Tokens.cpp: Replaced the typedef for - ACE_TSS_CONNECTION_MUTEX with #define ACE_TSS_CONNECTION_MUTEX. - Thanks to Arturo for reporting this. - -Fri Feb 12 18:41:22 1999 Steve Huston - - * ace/SString.cpp: Added "ace/" to #include "Auto_Ptr.h" to conform - to conding guidelines. - -Fri Feb 12 17:16:17 1999 David L. Levine - - * tests/run_tests.vxworks: commented out Message_Queue_Test and - Timeprobe_Test, because they lockup the machine. And, - fixed string length of DLL_Test printout. - -Fri Feb 12 17:06:30 1999 Arturo Montes - - * ace/config-sco-5.0.0-CC-fsu-pthread.h: removed this config - file, because it's not used. - -Fri Feb 12 16:36:55 1999 Nanbor Wang - - * ace/SOCK_IO.{h,i,cpp} (send,recv): Added back the iovec version - of send/recv back to maintain backward compatibility. Thanks to - Steve for pointing this out. - -Fri Feb 12 15:37:10 1999 David L. Levine - - * ace/Makefile: split FILES up into subsets. See - docs/ACE-subsets.html for more information. - -Fri Feb 12 12:31:29 1999 Ossama Othman - - * ace/Makefile: Removed blank line that was added when troubleshooting - the cvs log problem. The extra line cause Digital Unix's make to - complain about a missing separator. - -Fri Feb 12 09:19:21 1999 David L. Levine - - * ace/config-sunos5.5.h: added ACE_HAS_STANDARD_CPP_LIBRARY and - ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB #defines with Sun CC 5.0. - Thanks to Diethard Ohrt for - providing these. - -Thu Feb 11 15:05:42 1999 Darrell Brunsch - - * ACE-INSTALL.html: Reworded the first step of the Windows - NT installation to be a bit clearer. - -Thu Feb 11 14:30:35 1999 Darrell Brunsch - - * ace/ace_dll.dsp: Fixed Alpha Configuration. - -Thu Feb 11 03:48:50 1999 Nanbor Wang - - * ace/CORBA_macros.h: Added #pragma once and ACE_CORBA_MACROS_H to - prevent duplicate inclusion of this file. - - Added a new macro ACE_ANY_EXCEPTION to denote the name of the - CORBA exception caught by the ACE_CATCHANY. Thanks to Lothar - Werzinger for suggesting this. - -Wed Feb 10 23:01:16 1999 Darrell Brunsch - - * ace/config-win32-common.h: Made a better effort at finding out - if the files are compiled against the correct run-time - libraries. Now _DLL is checked to see if it is defined for - ACE_HAS_DLL != 0 builds, and if it is not defined for static - builds. - - This should help diagnose the problem of not using (Debug) - Multithreaded DLL run-time libraries in clients that use DLL - versions of ace (one symptom of this mistake is errno not - working correctly because of one copy being defined in the DLL - and one in the program itself). - -Wed Feb 10 22:19:33 1999 James CE Johnson - - * docs/tutorials/014/stream.cpp : Removed the __LINE__ displays. - * docs/tutorials/014/page01.html : Added Kirthika's abstract - - * docs/tutorials/015/page01.html : Added Kirthika's abstract - * docs/tutorials/015/page12.html : Oops... Wrong intro text. - * docs/tutorials/015/Protocol_Stream.cpp : Typos fixed - * docs/tutorials/015/Protocol_Task.cpp : Typos fixed - -Wed Feb 10 15:04:26 1999 Ossama Othman - - * ace/Makefile: added Pair_T.cpp and Template_Instantiations.cpp - to the TEMPLATE_FILES list/variable. They were missing. - * tests/Conn_Test.cpp (spawn_processes): initialized - pid_t *children_ptr to zero to prevent "uninitialized" - warnings from egcs 1.1.1. - -Wed Feb 10 14:16:25 1999 Ossama Othman - - * tests/Message_Queue_Test.cpp (performance_test): initialized - ACE_Message_Block **send_block to zero to prevent "uninitialized" - warnings from egcs 1.1.1. - -Wed Feb 10 14:02:46 1999 Ossama Othman - - * ace/ACE.cpp (get_ip_interfaces): initialized struct ifreq * ifs - to zero to prevent "uninitialized" warnings from egcs 1.1.1. - -Wed Feb 10 10:53:59 1999 Carlos O'Ryan - - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp: - Fixed several minor syntax errors. - -Tue Feb 09 16:54:10 1999 Jeff Parsons - - * ace/CDR_Stream.cpp: - Put the 'XXX_DISABLE_SWAP_ON_READ' code back into the - ACE_INputCDR methods read_array(), read_2(), read_4(), - read_8() and read_16(). I didn't realize at first how - crucial that is to the Boeing folks. Thanks to Carlos - for bringing this to my attention. - -Tue Feb 09 16:07:32 1999 Nanbor Wang - - * ace/Synch.{h,i,cpp}: Removed classes ACE_Null_Mutex_Guard and - ACE_Thread_Mutex_Guard since there doesn't seem any need for - them any more. They should be replaced by - ACE_Guard and ACE_Guard. If - by any chance you still need to use them, add - ACE_USES_OBSOLETE_GUARD_CLASSES into your config.h file. - - * ace/Local_Tokens.h: Replaced ACE_Null_Mutex_Guard and - ACE_Thread_Mutex_Guard with ACE_Guard and - ACE_Guard. - -Tue Feb 9 16:12:42 1999 James CE Johnson - - * docs/tutorials/{010|011}/task.{h|cpp} : barrier_ doesn't need to be a - pointer since Doug moved n_threads to the ctor. Minor typos - corrected also. - - * docs/tutorials/010/message_queue.cpp : Typos... - - * docs/tutorials/002/server.cpp: Added call to notify() in the - signal handler so that ^C will exit as expected. - -Tue Feb 09 13:57:23 1999 Nanbor Wang - - * tests/DLList_Test.cpp (main): The test should log the result to - DLList_Test.log, not ACE_DLList_Test.log. - - * tests/run_tests.{sh,vxworks,psosim}: Added DLList_Test. - - * tests/run_tests.bat: Removed DLL_Test. - - * ace/ACE.cpp (ldfind): Win32 only. Made sure we always look for - the DLL at the current directory first on Win32 which is the - default behavior on Win32. - - * ace/ace_{dll,lib}.dsp: Removed entries of Service_Record.{h,i}. - Thanks to David for noticing this. - -Tue Feb 09 10:21:33 1999 David L. Levine - - * ace/Service_Types.{i,cpp},README: removed obsolete references to - Service_Record. - - * tests/MT_Reactor_Timer_Test.cpp (main): added printout with numbers - of expected and actual events, if result is not ACE_MAX_TIMERS + 2 - - * include/makeinclude/wrapper_macros.GNU: added BUILD line with both - shared_libs and static_libs enabled, so that individual Makefiles - don't need a BUILD line. - - * docs/ACE-subsets.html: updated to reflect current ACE status. - -Mon Feb 08 14:32:43 1999 Nanbor Wang - - * docs/exceptions.html: Added guidelines of switching from TAO try - macros to ACE try macros. Other cosmetic changes. - -Mon Feb 8 13:54:32 1999 Yamuna Krishnamurthy - - * docs/tutorials/011/task.cpp : - In the open return this->activate (THR_NEW_LWP, - this->n_threads_); was taking an udefined variable threads. - - * docs/tutorials/011/message_queue.cpp: - Corrected Compilation error due to a typo (static misspelt as - statuc!!!) - -Mon Feb 8 09:21:10 1999 Douglas C. Schmidt - - * ace/Map_T.h, - ace/Pair_T.h: Aded parens around the #pragma implementation file - names so the AIX compiler would be happy. Thanks to Martin - Krumpolec for reporting this. - -Mon Feb 08 00:39:49 1999 Douglas C. Schmidt - - * ACE version 4.6.21 released. - -Sun Feb 7 22:48:01 1999 Nanbor Wang - - * ace/CORBA_macros.h (ACE_THROW_RETURN): The second macro argument - was missing. - -Sun Feb 7 22:32:21 1999 Douglas C. Schmidt - - * ace/CORBA_macros.h: It wasn't clear why the ACE_THROW_RETURN - macro for non-NT platforms wasn't taking a second RETV - parameter. I've fixed this, however. - -Sun Feb 07 13:55:15 1999 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++.GNU: added - comment about possibly needing -compat=4 with Sun CC 5.0. - Thanks to Sush Bankapura for - reporting success with it. - -Sun Feb 7 00:43:32 1999 Jeff Parsons - - * ace/CDR_Stream.cpp: - Turns out that read_boolean_array was declared, but - the body was missing (?). - -Sat Feb 6 22:38:40 1999 Jeff Parsons - - * ACE_wrappers/tests/CDR_Test.cpp: - Changed #include file name to ace/CDR_Stream.h (the new - source file name). - -Sat Feb 6 22:21:14 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.cpp: - Fixed the write_boolean_array() method; it only needs a const - array of booleans. - -Sat Feb 6 22:07:45 1999 Jeff Parsons - - * ace/CDR.{h,i,cpp}: Renamed these as... - * ace/CDR_Stream.{h,i,cpp}: Mustn't have files with the - same name (the TAO files) for the sake of some compilers. - * Makefile: - * ace_dll.dsp: - Changed to reflect the renaming above. - -Sat Feb 6 20:30:51 1999 Carlos O'Ryan - - * ace/CDR.h: - * ace/CDR.i: - * ace/CDR.cpp: - Fixed some indentation and style problems. - -Sat Feb 06 07:47:20 1999 David L. Levine - - * tests/test_config.h (~ACE_Test_Output): wrapped use of - cerr with #ifndef ACE_LACKS_IOSTREAM_TOTALLY. - -Sat Feb 06 02:41:07 1999 Irfan Pyarali - - * tests/Map_Test.cpp: The hell of explicit template instantiation. - Someone please save me from these stupid compilers. - - * ace/Map: Broken g++ (2.7) has deformed my beautiful code based - on typedefs and forced me to use their basic form. However, - users should continue to use the typedefs provided as I do in - the Map_Test. - -Fri Feb 05 21:57:24 1999 Irfan Pyarali - - * ace/Map_T: Added a new Map mini framework to ACE. The classes - in this mini framework allows the Map interface to be used - without caring about the specific Map implementation being used. - There is the class hierarchy of the framework: - - forwards - ACE_Iterator --------> ACE_Iterator_Impl (abstract) - - ACE_Iterator_Impl is subclassed by: - - - ACE_Map_Impl_Iterator_Adapter - - ACE_Active_Map_Manager_Iterator_Adapter - - ACE_Hash_Map_Manager_Ex_Iterator_Adapter - - ACE_Map_Manager_Iterator_Adapter - - forwards - ACE_Reverse_Iterator --------> ACE_Reverse_Iterator_Impl (abstract) - - ACE_Reverse_Iterator_Impl is subclassed by: - - - ACE_Map_Impl_Reverse_Iterator_Adapter - - ACE_Active_Map_Manager_Reverse_Iterator_Adapter - - ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter - - ACE_Map_Manager_Reverse_Iterator_Adapter - - ACE_Map is subclassed by: - - - ACE_Map_Impl - - ACE_Active_Map_Manager_Adapter - - ACE_Hash_Map_Manager_Ex_Adapter - - ACE_Map_Manager_Adapter - - Also included in the framework is a Key Generator class and a - Key Adapter class. The Key Generator class is used by some map - adapters to generate keys since the maps they adapt do not - generate keys. The Key Adapter class is used by the active map - adapter to allow encoding and decoding of active keys into user - keys. - - Note that the iterators use the bridge pattern while the map - class uses an abstract base class based inheritance approach. - The reason for this is that STL containers return the iterators - by value. An abstract base class cannot be returned by value. - - An alternative design would be to add an abstract base class - that the ACE maps would derive from. Unfortunately, this would - break many things including the ability to add these maps to - shared memory and explicit template instantiations. - - This mini framework would have been idle to apply the external - polymorphism pattern. However, the ACE map classes are - different enough that adaption was necessary. This turned out - to be a blessing in disguise since I was able to add extra - common functionality such as the key generator and key adapter - to the map adapters. I did add the external polymorphic - subclasses to the framework for future use. - - The classes in this framework are as close STL containers as I - would dare to make them ;) Thanks to Carlos for helping design - them. - - * tests/Map_Test: New test to illustrate and test the workings of - the new ACE Map classes. There are two aspect to this test: - (a) functionality testing includes testing the iterators and - various operations, and (b) performance testing to compare the - relative performance of the maps. - - * ace/Pair: Added new Pair class to ACE that holds instances of - the template arguments. Also, added a Reference_Pair class that - only hold references of the template arguments. - - * ace/Hash_Map_Manager_T.* (ACE_Hash_Map_Manager_Ex): - * ace/Map_Manager.* (Map_Manager): - Added new rebind() methods to make interface compatible with - other maps. Also, fixed the constness of some functions. - - * ace/Hash_Map_Manager.h: Fixed order of inclusion of template - code. - - * ace/Active_Map_Manager_T.h (ACE_Active_Map_Manager): Added new - versions of bind, find, and unbind to reduce the number of data - copies. - - * ace/Active_Map_Manager.h (ACE_Active_Map_Manager_Key): Added the - ability for the active key to encode and decode into and out of - a data stream. This relieves the developer from concerning - herself about the internal structure of the active key. - - * ace/config-win32-common.h: Define WIN32 if not already defined. - - * tests/SString_Test.cpp: Added testing for substring creation and - comparisons. - - * ace/OS.h (ACE_dynamic_cast_*_ptr and ACE_dynamic_cast_*_ref): - Added new macros to handle casting of template class. - - * tests/test_config.h: Removed global KEY class that was not being - used anymore anyway. - -Fri Feb 05 21:12:56 1999 Douglas C. Schmidt - - * ACE version 4.6.20 released. - -Fri Feb 05 12:02:31 1999 Steve Huston - - * tests/run_tests.sh: Added SHLIB_PATH support for HP-UX. Fixed - the LD_LIBRARY_PATH setting to work if there was no path set - on entry to the script. - - * ace/config-hpux-9.x.h, config-hpux-(10,11).x-hpc++.h: - Removed ACE_HAS_BROKEN_ENUMS. This affects the HP C++ compiler, not - aC++. I made this change based on David's experience with the - enums and Green Hills, below. If it causes any problems, let me - know and I'll reset it. - -Fri Feb 05 10:11:18 1999 David L. Levine - - * ace/Log_Priority.h: changed ENSURE_32_BITS to LM_ENSURE_32_BITS, - and its value from 0xffffffff to 0x7fffffff. Green Hills 1.8.9 - properly complained that 0xffffffff doesn't fit into an int. - - * ace/config-sco-5.0.0-CC-fsu-pthread.h,config-sunos5.5.h, - config-vxworks5.x.h: removed ACE_HAS_BROKEN_ENUMS, because - it's not necessary with 0x7fffffff. - -Thu Feb 4 23:11:26 1999 Carlos O'Ryan - - * websvcs/lib/URL_Addr.h: - * websvcs/lib/URL_Addr.i: - Added operator= to the ACE_URL_Addr classes. - - * websvcs/lib/URL_Addr.cpp: - Fixed minor memory allocation problem for invalid HTTP - addresses. - It removes './' when creating relative addresses. - -Wed Feb 03 21:50:09 1999 David L. Levine - - * ace/config-vxworks5.x.h: added ACE_HAS_BROKEN_ENUMS with - Green Hills, because it's needed with 1.8.9. And, added - ACE_HAS_STANDARD_CPP_LIBRARY #define to 1, for Green Hills 1.8.9 - (with __STANDARD_CXX #defined) only, because it doesn't work with - 1.8.8. Thanks to Jacob Jones for - reporting these. - - * ace/config-sunos5.5.h: with Green Hills 1.8.9 (with - __STANDARD_CXX #defined), added ACE_HAS_STANDARD_CPP_LIBRARY - #define to 1. - -Wed Feb 03 14:57:21 1999 Nanbor Wang - - * ace/Thread_Manager.h (ACE_At_Thread_Exit[_Func]): Added - ACE_Export keywords. Thanks to Terry Rosenbaum - for pointing this out. - - * ace/Service_Config.{h,i,cpp}: Added one more argument to open - methods that allows ignoring the default svc.conf file. You can - still open svc.conf files using the -f option. - -Wed Feb 03 10:12:14 1999 David L. Levine - - * bin/make_release: fixed release_filter so that it doesn't put - CVS files into the release. - - * ace/Object_Manager.h: updated comments to reflect that - ACE_HAS_NONSTATIC_OBJECT_MANAGER is now #defined in - several ace/config files, including that for Win32. - Thanks to Dave Meyer for pointing - that out. - -Wed Feb 3 09:30:11 1999 Carlos O'Ryan - - * websvcs/lib/URL_Addr.cpp: - Fixed some memory leaks. - HTTP_Addr::create_relative_address supports the #label syntax. - -Wed Feb 03 07:02:49 1999 David L. Levine - - * tests/CDR_Test.cpp: commented out ACE_Auto_Basic_Array_Ptr - explicit instantiation, because it's in ace/Memory_Pool.cpp. - -Tue Feb 2 21:35:21 1999 James CE Johnson - - * docs/tutorials/007/client_handler.h: - * docs/tutorials/007/thread_pool.h: - A couple of syntax goofs. I'm surprised it compiled for anyone! - - * docs/tutorials/007/thread_pool.h: - Changed ACE_Time_Value(0.25) to ACE_Time_Value(0,250000) - - * docs/tutorials/*/Makefile: - Added '.depend' to the list of files removed by the CLEAN - target. I shoulda' done this the other day. - -Tue Feb 2 20:02:22 1999 Darrell Brunsch - - * bin/make_release: Added .gz to the list of binary file extensions. - -Tue Feb 2 19:28:46 1999 Douglas C. Schmidt - - * docs/tutorials: ACE-ified the first 11 tutorials. I hope - James still recognizes this stuff now ;-) - -Tue Feb 2 19:12:50 1999 James CE Johnson - - * docs/tutorials/001/logger.h (class Logging_Handler): - Incorporated Pradeep's suggestion to get rid of the memset() and - use the recv() return value to drop in the null-termination. - -Tue Feb 2 14:19:30 1999 Darrell Brunsch - - * websvcs/websvcs.dsw: - * websvcs/lib/websvcs.dsw: - * websvcs/lib/websvcs.dsp: - * websvcs/tests/tests.dsw: - * websvcs/tests/Test_URL_Addr.dsp: - Added MSVC project files for the websvcs library. - - * websvcs/lib/URL_addr.cpp: - Now correctly exports classes in DLLs. - -Tue Feb 2 12:48:34 1999 Jeff Parsons - - * tests/CDR_Test.cpp: - Changed the template type of the auto_ptr for char. We were - getting a Purify FMR message on Unix. - -Tue Feb 2 12:27:13 1999 Douglas C. Schmidt - - * ace/ACE.cpp: Added an ACE_UNUSED_ARG for program_name for - ACE::daemonize(). Thanks to David Levine for reporting this. - - * ace/OS.h: Generalized the WIF* macros so that they will be - defined on any platform that lacks them, not just NT. Thanks to - David Levine for reporting this. - -Tue Feb 02 08:58:32 1999 Steve Huston - - * tests/MT_Reactor_Timer_Test.cpp: Moved definition of status outside - of ACE_HAS_THREADS condition since it's used in either case. Thanks - to Frederic Andres for this fix. - -Mon Feb 01 23:16:34 1999 Douglas C. Schmidt - - * ACE version 4.6.19 released. - -Mon Feb 01 22:06:40 1999 David L. Levine - - * bin/make_release (create_kit): fixed typo, bin_files - instead of binfiles. - -Mon Feb 01 21:24:45 1999 Douglas C. Schmidt - - * ACE version 4.6.18 released. - -Mon Feb 1 21:02:26 1999 Darrell Brunsch - - * ace/ace_dll.dsp: Some template files were being compiled - in the Release/Unicode/Alpha configs. This is now not the - case. - -Mon Feb 1 13:49:11 1999 Carlos O'Ryan - - * ace/config-linux-common.h: - Added a definition for ACE_TIMER_SKEW, apparently it is only - needed in multiple CPU machines (with SMP enabled); but it did - solve the problems with MT_Reactor_Timer_Test. - -Mon Feb 01 13:08:11 1999 Jeff Parsons - - * tests/CDR_Test.cpp: - Used an auto_ptr to manage a string sent to string_read(). I - had included the .h file for auto ptrs (Carlos corrected my - typo, see below), but had never checked in the code using - auto_ptr. - -Mon Feb 01 12:54:11 1999 Steve Huston - - * ace/NT_Service.(h i): Some fixes provided by Martin Krumpolec - - thanks to Martin for these! - - Supplied missing ctor for name/desc variant. - - svc() method is not pure virtual any longer to prevent SCP-type - applications from having to override it and never use it. - -Mon Feb 1 12:04:35 1999 Darrell Brunsch - - * bin/make_release: Added zip and gif to the binary files in - zips. - -Mon Feb 01 12:00:55 1999 David L. Levine - - * ace/config-sunos5.5.h: With CC 5.0, enabled explicit template - instantiation and added ACE_LACKS_ACE_IOSTREAM. Early versions - of CC 5.0 seem to have problems with automatic template - instantiation and ACE_IOStream. - - * include/makeinclude/platform_sunos5_sunc++.GNU: added CC 5.0 - support to enable explicit template instantiation, and disable - inlining by default. - - Thanks to Diethard Ohrt for confirming - that above fixes allow ACE and TAO to build with CC 5.0. - - * include/makeinclude/platform_sunos5_{g++,ghs}.GNU: removed -lw - from libs. It's not necessary, and apparently causes problems - on Solaris 2.6, because libc now includes the code that was - formerly in libw. Thanks to Steve Coleman - for reporting this. - -Mon Feb 1 10:41:09 1999 Carlos O'Ryan - - * tests/CDR_Test.cpp: - There was a typo in a included filename. - -Mon Feb 1 08:39:15 1999 Douglas C. Schmidt - - * ace/Synch.h: Clarified that the ACE_Semaphore::acquire() is in - absolute, rather than relative, time. Thanks to Jacques - Salerian for reporting this. - -Sun Jan 31 20:10:23 1999 Jeff Parsons - - * ace/OS.h: - Just renamed the CDR byte order macros to something more - reasonable. - -Sun Jan 31 18:19:45 1999 Douglas C. Schmidt - - * docs/tutorials/Makefile: Now we can build the UNSHAR SHAR HTML - right from the top-level. Thanks James! - - * tests/Process_Strategy_Test: Updated the test to use ACE::fork() - and the new "avoid zombies" feature of ACE_Process_Strategy. - - * ace/ACE: Added a new version of fork() that can avoid creating - zombies. Thanks to Garry Brother for - this code. - - * ace/Strategies_T: Changed the ACE_Process_Strategy so that - programmers can designate to not create zombies. Thanks to - Garry Brother for this suggestion. - - * ace/ACE.cpp (daemonize): Only do a chdir if pathname != 0. - - * ace/ACE: Added a "program_name" argument to daemonize() so that - we can set the program name. - - * docs/tutorials: Reformatted all the header files to conform - to the ACE programming style. - -Sun Jan 31 16:09:55 1999 Jeff Parswons >parsons@cs.wustl.edu> - - * ACE_wrappers/tests/CDR_Test.cpp: - Plugged a memory leak in a string read from the CDR stream. - Thanks to Sangwoo Jin for pointing this out. - - * ace/CDR.{h,i,cpp}: - Changed the name of the "base" class holding the constants to - 'CDR' from 'ACE_CDR'. In leveraging this code in the TAO cdr - classes, I've discovered that there are many files that - use these constants, so probably best to keep the original - name. Also made minor changes to read_string, read_wstring, - append_string and append_wstring to prevent a memeory leak - if the operation fails. - -Sun Jan 31 11:58:32 1999 James CE Johnson - - * docs/tutorials/{010|011|012|013|017}: - In all of these, I'd overridden open() as open(int) to specify - the number of threads in a thread-pool. Steve Huston pointed - out that this causes grief with some compilers. I've changed - all of these open(int) overrides to start(int) instead. - - * docs/tutorials/017/Barrier_i.cpp (threads): - The thr_equal() call was changed to !thr_equal(). - - * docs/tutorials/010/taks.cpp: - Vishal recommended some extra commentation to make things a bit - more clear WRT barrier synch. - - * docs/tutorials/013/page01.html: - Added Kirthika's abstract. - -Sat Jan 30 16:03:23 1999 Carlos O'Ryan - - * websvcs/lib/URL_Addr.h: - * websvcs/lib/URL_Addr.cpp: - The HTTP address class can create an URL_Addr from a path - relative to it. This is useful when interpreting an address - inside an HTML document. - -Sat Jan 30 13:34:00 1999 Nanbor Wang - - * examples/Connection/non_blocking/test_sock_connector.cpp (main): - Prevent the program from executing if compiled on non-NT Win32 - platform without Winsock2 installed. Thanks to Greg Harrison - for reporting ths problem. - -1999-01-29 Irfan Pyarali - - * ace/Mem_Map.cpp (map_it): NT makes no claims about replacing - previous mapping at the specified address. Therefore, I have - added a new macro ACE_LACKS_AUTO_MMAP_REPLACEMENT which is - defined if there is no system support for replacing any previous - mappings. In this case, we unmap() before (potentially) mapping - to the same location. ACE_LACKS_AUTO_MMAP_REPLACEMENT is - defined on NT. - -Fri Jan 29 17:40:34 1999 Carlos O'Ryan - - * websvcs/lib/URL_Addr.h: - * websvcs/lib/URL_Addr.cpp: - We were not checking against nil strings in several places, also - fixed some uninitialized members in the HTTP_Addr constructors. - - * bin/auto_compile: - Added protection against simultaneous executions of the script; - it checks for .disable file on the $LOGDIR directory, if present - it does not execute; if not present it creates one; the file is - deleted at program termination. - -Fri Jan 29 16:25:22 1999 Steve Huston - - * ace/config-hpux-10.x-hpc++.h: Added ACE_HAS_GPERF. - * apps/gperf/src/List_Node.cpp (ctor): Added ACE_const_cast to - a char * initializer. - * apps/gperf/src/Options.cpp: Fixed -j processing (typo). - - * docs/tutorials/017/barrier.cpp: Can't init a long with a thread ID. - On HP-UX 10.20, it's a struct. - * docs/tutorials/017/Barrier_i.cpp: Use ACE_OS::thr_equal to check - equality of thread IDs. - - * docs/tutorials/019/server/cpp: Removed redefinition of char *s from - 'for' loop. Works around a compiler issue, but isn't needed anyway. - - * include/makeinclude/platform_hpux_aCC.GNU: On HP-UX 10.20, suppress - (future)error 667 and warning 495 to stop hearing about the problems - with the system-supplied header files. The compiler still says - there was 1 future error, but at least it's easy to scan the output - for real errors now. - -Fri Jan 29 14:49:37 1999 Carlos O'Ryan - - * ace/ACE.cpp: - * ace/Basic_Types.h: - * ace/INET_Addr.cpp: - * ace/Memory_Pool.cpp: - * ace/OS.cpp: - * ace/OS.h: - * ace/OS.i: - * ace/SOCK_Dgram_Bcast.cpp: - * ace/config-cray.h: - * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: - * include/makeinclude/platform_cray.GNU: - * tests/Basic_Types_Test.cpp: - * tests/Handle_Set_Test.cpp: - * tests/Message_Queue_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: - * tests/run_tests.sh: - Thanks to Doug Anderson for this port of ACE to - Cray machines. - -Fri Jan 29 13:51:40 1999 Nanbor Wang - - * ace/OS.h: Removed definition of ACE_Thread_State. - - * ace/Thread_Manager.*: Changed the ACE_Thread_State as a bunch of - bit-masks so we don't overwrite the thread states accidentally. - Thanks to Tom Dobridge for reporting - the bug. - -1999-01-28 Irfan Pyarali - - * ace/Hash_Map_Manager_T.cpp (open): this->close_i() must be - called *before* the allocators are changed. - - * ace/Map_Manager.cpp (open): Close the old map (if any) before - creating the new map. This also make open() reentrant. Thanks - to Zoran Ivanovic for reporting this bug. - -Thu Jan 28 19:08:25 1999 Carlos O'Ryan - - * ace/Active_Map_Manager_T.h: - Steve's change didn't make it, so I changed BASE to - ACE_AMM_BASE, I don't know about the pragma. - -Thu Jan 28 16:43:17 1999 Steve Huston - - * ace/Active_Map_Manager_T.(h i): Renamed BASE to ACE_AMM_BASE - BASE - conflicted with something in AIX xlC. Also fixed #pragma - implementatation to work on xlC. - -Thu Jan 28 10:04:39 1999 Carlos O'Ryan - - * ace/Hash_Map_Manager_T.cpp: - Reverted to version 4.2, thanks to Kirthika for helping find - this one. - -Thu Jan 28 09:11:29 1999 Andreas Tobler - - * ace/config-linuxppcr5.h: added this config file, for - LinuxPPC R5 platforms. - -Thu Jan 28 08:55:21 1999 David L. Levine - - * ace/config-mklinux.h: replaced ACE_HAS_SOCKLEN_T, removed - __USE_XOPEN. Thanks to Andreas Tobler for - these clarifying this. - -Wed Jan 27 19:12:48 1999 James CE Johnson - - * docs/tutorials/008/*: - * docs/tutorials/009/*: - * docs/tutorials/011/*: - * docs/tutorials/012/*: - Updates from the reviewers. - -Wed Jan 27 17:06:38 1999 David L. Levine - - * ace/Makefile: removed some unprintable characters. - -Wed Jan 27 16:31:01 1999 Ossama Othman - - * ace/Makefile: Added LOCK_SOCK_Acceptor to TEMPLATE_FILES list. - -Wed Jan 27 14:50:13 1999 Nanbor Wang - - * examples/Service_Configurator/Misc/main.cpp: Changed to open the - Service_Config object with ignore_static_svc set to 0. That - allows this example to use static service. (By default, static - services are not loaded.) Thanks to Arturo Montes - for reporting this. - -Wed Jan 27 13:47:00 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: use - double double quotes around COMPILE argument to ace_ld, - but only on WIN32 hosts. Thanks to Peter Weat - for figuring this out. - -Wed Jan 27 13:04:55 1999 David L. Levine - - * ACE version 4.6.17 released. - -Wed Jan 27 12:32:22 1999 David L. Levine - - * ACE-INSTALL.html,include/makeinclude/platform_vxworks5.x_g++.GNU: - default PERL_PATH to "perl", and added notes to set it to the full - perl path if perl is not on your path. - -Wed Jan 27 10:16:06 1999 Carlos O'Ryan - - * docs/ACE-guidelines.html: - Added an entry for the creation of files containing template - code. - -Tue Jan 26 20:44:36 1999 Nanbor Wang - - * ace/SOCK_IO.cpp (send,recv): Changed to use sendv/recvv to - handle variable arguments send/recv. - - * ACE-INSTALL.html: Fixed the dead link to CE-status. Thanks to - Mike Preradovic for reporting - this. - -Tue Jan 26 14:38:11 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: expanded - the information on the PERL_PATH environment variable for - NT hosts. Thanks to Peter Weat for - reporting this. - -Tue Jan 26 13:40:51 1999 Nanbor Wang - - * ace/High_Res_Timer.cpp (elapsed_time_incr): Rearranged the - formula to avoid compilation errors for platforms without - ULONGLONG. Thanks to David for the tip. - -Tue Jan 26 12:01:19 1999 Jeff Parsons - - * ACE_wrappers/tests/CDR_Test.dsp: - * ACE_wrappers/tests/CDR_Test.cpp: - Added lines to the test code to send the output to - the log file, and deleted the unnecessary Header - Files folder in the project. - * ace/CDR.{i,cpp}: - Relocated the longdouble comparison operators' - definitions, and moved a misplaced '}', which - were causing build errors. - -Tue Jan 26 10:55:02 1999 Carlos O'Ryan - - * ace/Active_Map_Manager.h: - The _T.h file has to be included *after* the inclusion of the .i - file, otherwise the template may not see the inline functions; - the problem only showed up on IRIX. - -Mon Jan 25 22:11:36 1999 Jeff Parsons - - * ACE_wrappers/tests/CDR_Test.dsp: - * ACE_wrappers/tests/tests.dsw: - * ACE_wrappers/tests/versions_tests/CDR_Test.dsp: - * ACE_wrappers/tests/versions_tests/version_tests.dsw: - * ACE_wrappers/tests/run_tests.sh: - * ACE_wrappers/tests/run_tests.psosim: - * ACE_wrappers/tests/run_tests.bat: - * ACE_wrappers/tests/run_tests.vxworks: - Fixed the project files (they had incorrrect project - settings, I think) and updated the workspace files. - Also, on a tip from Nanbor, added CDR_Test to the - various run_tests files. - -Mon Jan 25 20:22:01 1999 Jeff Parsons - - * ace/CDR.{h,i,cpp}: - * ace/Basic_Types.h: - * ACE_Wrappers/tests/CDR_Test.cpp: - Better design of ACE CDR, compiles and runs on NT, g++ - and CC. - -Mon Jan 25 09:35:42 1999 Steve Huston - - * ace/ACE.cpp (handle_timed_complete): If connect times out, set - errno to ETIMEDOUT, not ETIME. Matches what will happen if a - simple blocking connect times out. - - * ace/OS.i (ACE_OS::accept, ACE_OS::recv): (only non-Win32), if - call fails and errno is EAGAIN, change it to EWOULDBLOCK. - - * tests/MT_SOCK_Test.cpp: Remove EAGAIN hacks; above changes fix - this for all programs. - -Sun Jan 24 22:04:42 1999 David L. Levine - - * docs/ACE-guidelines.html: added operator==/!= guideline. - -Sun Jan 24 20:25:44 1999 Irfan Pyarali - - * ace: When a class provides operator==, it must also provide - operator!=. Also, both these operators should be const. - - Fixed the above violations in: - - ACE_TSS_Ref - ACE_Thread_ID - ACE_Registry::Binding - ACE_Registry::Name_Component - ACE_Active_Map_Manager_Key - - * ace/Map_Manager: Renamed methods that may become identical if - INT_ID is the same as size_t. Thanks to Ossama for helping with - this. - -Sun Jan 24 19:46:55 1999 Jeff Parsons - - * ace/CDR.{h,i,cpp}: - * ace/Basic_Types.h: - Made some fixes to make DEC cxx happy, but I'm going to - undo many of the typedefs and change the design. These - changes will hopefully lead to a clean build with cxx, - but the CDR classes are not yet in finished form. - -Sun Jan 24 19:26:34 1999 Irfan Pyarali - - * ace/SString.cpp (set): Fixed usage case of when the incoming - string is not zero but the length specified is zero. - - * tests/SString_Test.cpp (main): Added zero sized strings and - single character strings to the test. - -Sun Jan 24 19:09:45 1999 Nanbor Wang - - * ace/config-win32-common.h - (ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR): VC apparently - does it right. - -Sun Jan 24 17:22:02 1999 Ossama Othman - - * ace/SString.cpp (substring): the variable "length" was misspelled - on one of the lines in the method. - -Sun Jan 24 16:17:58 1999 Nanbor Wang - - * ace/README: - * ace/OS.h: - * ace/config-g++-common.h: - * ace/config-osf1-4.0.h: - * ace/config-psos-diab.h: - * ace/config-psos-tm.h: Replace ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR - with ACE_HAS_WORKING_EXPLITCIT_TEMPLATE_DESTRUCTOR to reflect - the true problem. Thanks to Ossama for suggesting the name. - -Sun Jan 24 16:20:17 1999 James CE Johnson - - * docs/ACE-FMM: - Added an entry about the DONT_CALL flag to remove_handler(). - - * docs/tutorials/00[45789]: - * docs/tutorials/01[012]: - Many changes from Yamuna, Pradeep, Kirthika and Ossama. In all, - there were 62 files changed. Mostly the .html's due to - recombination and colorization. - -Sun Jan 24 14:23:07 1999 Douglas C. Schmidt - - * ace/SString.cpp: The substring() method did not check for zero - length. Thanks to Mike Goldman for this fix. - -Sun Jan 24 02:08:57 1999 Carlos O'Ryan - - * websvcs/lib/URL_Addr.cpp: - * websvcs/lib/URL_Addr.h: - * websvcs/lib/URL_Addr.i: - * websvcs/tests/Test_URL_Addr.cpp: - Added support for mailto: URLs - -Sat Jan 23 23:53:29 1999 Carlos O'Ryan - - * websvcs/Makefile: - * websvcs/lib/Makefile: - * websvcs/lib/URL_Addr.h: - * websvcs/lib/URL_Addr.i: - * websvcs/lib/URL_Addr.cpp: - * websvcs/tests/Makefile: - * websvcs/tests/Test_URL_Addr.cpp: - Added a small library to keep basic Web related wrappers. The - first set is a small collection of URL address classes, - including HTTP and FTP representations. - -Sat Jan 23 23:26:17 1999 Nanbor Wang - - * ace/High_Res_Timer.{h,cpp} (elapsed_time_incr): Added a new - function to access the incremental timer in nanosecond. - -Sat Jan 23 23:08:27 1999 Jeff Parsons - - * ace/CDR.{h,i,cpp}: - Caught numerous inline ordering errors and mistakes in - long double functions (not defined on NT) with g++. - -Sat Jan 23 21:13:47 1999 Jeff Parsons - - * tests/tests.dsw: - * tests/CDR_Test.dsp: - * tests/Makefile: - * tests/CDR_Test.cpp: - New test in the suite for the new ACE CDR classes (see below). - - * TAO/TAOACE.dsw: - * TAO/TAOACE_static.dsw: - * ace/Makefile: - * ace/CDR.{h,i,cpp}: - * ace/OS.h: - * ace/Basic_Types.h: - CDR stuff modified from TAO library. Typedefs, default - constants and macros added to OS.h and Basic_Types.h. - There is now complete CDR functionality in ACE, except - for the interpreter, and thus also no handling of Any - or TypeCode types. - -Sat Jan 23 17:50:22 1999 Steve Huston - - * tests/MT_SOCK_Test.cpp: 1. Check for EAGAIN as well as EWOULDBLOCK - after an accept fail (this change will probably be removed at some - point when we figure out how to handle EAGAIN/EWOULDBLOCK). - 2. Close the ACE_SOCK_Acceptor in the server before going into - the "reap children" loop so any half-connected clients will get - closed. - -Sat Jan 23 17:25:48 1999 Kirthika Parameswaran - - * ace/Hash_Map_Manager_T.{h,cpp}: Reverted changes made since the - ACE_Hash_Map_Manager_Ex was getting used in shared memory and - hence could not have "virtual" methods. - -Sat Jan 23 04:53:12 1999 Irfan Pyarali - - * ace/Active_Map_Manager: Added a new associative container (map - abstraction) that associates system generated keys with user - specified values. Since the key is system generated, searches - are very fast and take a constant amount of time. This map uses - a key that keeps information of the index and the generation - count of the slot it represents. Since the index information is - part of the key, lookups are super fast and predictable. - - This performance of this map is truely awesome: - - - inserts O(1) worse case - - lookups O(1) worse case - - deletes O(1) worse case - - * ace/Map_Manager: Completely reworked the internals of the - Map_Manager. A number of problems were addressed: - - (a) Finding an empty slot took O(n). New code takes O(1). - - (b) Resizing was lame as it increased by ACE_DEFAULT_MAP_SIZE - everytime. The new scheme is cool since it grows - exponentially up to 64K and after that grow in chunks of - 32K. - - (c) Old scheme used a simple but inefficient flag. - The new scheme uses two doubly linked list to track used and - free slots. Note that this scheme still uses an array to - manage the search structure but manages the two linked list - on top of the array. Thanks to Carlos for this cool idea. - - (d) current_size() was broken. This is fixed in the new code. - - (e) Inlined a bunch of small functions. - - * tests/SString_Test.cpp: Added empty string test. - - * ace/Containers_T.h (operator=): ACE_Array_Base must be fully - qualified: ACE_Array_Base. Thanks to Susan Liebeskind - for pointing this out. - - * tests/Map_Manager_Test.cpp (test_map_manager): Added - Active_Map_Manager to the test. - -Fri Jan 22 21:27:14 1999 Kirthika Parameswaran - - * ace/Hash_Map_Manager_T.h - (class ACE_Hash_Map_Entry): Modified the destructor to be - "virtual" so that it gets invoked on the destruction of its - derived class objects. - (class ACE_Hash_Map_Manager_Ex): Modified the destructor to be - "virtual" so that it gets invoked on the destruction of its - derived class objects. - Modified shared_find () to be "virtual" so that it can be - defined in its derived classes. - Declared a virtual method for creating new entries for the map - called create_entry (). - - * ace/Hash_Map_Manager_T.cpp - (create_entry): Added this virtual method which creates a new - map entry. This is necessary to allow the map to contain various - types of map entries. - (bind_i): - (trybind_i): - (unbind_i): - Used create_entry () to obtain a new entry object. - - * ace/Hash_Purgable_Map_Manager_T.{h,i,cpp}: - The ACE_Hash_Purgable_Map_Manager_Ex derives from - ACE_Hash_Map_Manager_Ex and provides the feature of purging - K entries from the map. The default purging algorithm is Least - Recently Used, which has been implemented using a virtual timer - that increments whenever an entry is looked up or used. Each - entry has a purge_tag which is the timestamp updated by the - timer value whenever it is referenced. The entry is an object of - ACE_Hash_Purgable_Map_Entry class which is derived from - ACE_Hash_Map_Entry. - (purge): This is the method which flushes K entries from the - map. Locks are held. - (purge_i): This method also flushes K entries but w.o. locks - being held. - (create_entry): Creates an ACE_Hash_Purgable_Map_Entry object. - (shared_find): This method is used to lookup and verify whether - an entry is present in the map. Also, the purge_tag of the entry - is updated with the current timer value. - - * tests/Purgable_Map_Manager.cpp: Added this test which - illustrates the use of the Hash_Purgable_Map_Manager to maintain - a cache map. Also displays the change in the map size on - purging. - -Fri Jan 22 16:10:35 1999 Steve Huston - - * ace/Select_Reactor_Base.cpp (ACE_Select_Reactor_Notify::handle_input) - EAGAIN is also a legit errno value (not only EWOULDBLOCK) for end - of data on pipe. Makes count of dispatches returned from - ACE_Select_Reactor's handle_events correct in the presence of - notifications. - - * ace/OS.i (ACE_OS::sema_init): Always init s->name_ to 0, else it - might be non-zero (and junk) when deleted. - - * ace/config-hpux11.h: Added an overrideable ACE_TIMER_SKEW of 10 msec. - -Fri Jan 22 15:07:08 1999 Douglas C. Schmidt - - * ace/Containers_T.cpp: Yikes, don't delete the fixed stack since - it wasn't allocated dynamically! Thanks to Mike Goldman - for this fix! - -Fri Jan 22 13:08:00 1999 Chris Gill - - * ace/ACE.{cpp, h}: added static methods ACE::gcd, which computes the - greatest common divisor of two u_longs using Euclid's algorithm, and - ACE::minimum_frame size, which computes the minimum enclosing frame - size for two u_longs. - -Thu Jan 21 20:45:09 1999 James CE Johnson - - * docs/tutorials/006/client_acceptor.h - * docs/tutorials/006/client_handler.cpp - * docs/tutorials/006/client_handler.h - * docs/tutorials/006/page01.html - * docs/tutorials/006/page02.html - * docs/tutorials/006/page03.html - * docs/tutorials/006/page04.html - * docs/tutorials/006/page05.html - Integrated changes from Vishal and Kirthika - - * docs/tutorials/008/combine.shar - * docs/tutorials/008/page02.html - * docs/tutorials/008/page03.html - * docs/tutorials/008/page04.html - * docs/tutorials/009/combine.shar - * docs/tutorials/009/directed_client.cpp - * docs/tutorials/009/page01.html - * docs/tutorials/009/page02.html - * docs/tutorials/009/page03.html - * docs/tutorials/009/page04.html - * docs/tutorials/009/page05.html - * docs/tutorials/009/server.cpp - Changes from Kirthika plus colorization. - - -Thu Jan 21 16:01:50 1999 James CE Johnson - - * docs/tutorials/007/Makefile: - * docs/tutorials/007/combine.shar: - * docs/tutorials/007/page01.html: - * docs/tutorials/007/page02.html: - * docs/tutorials/007/page03.html: - * docs/tutorials/007/page04.html: - * docs/tutorials/007/page05.html: - * docs/tutorials/007/page06.html: - * docs/tutorials/007/page07.html: - * docs/tutorials/007/page08.html: - * docs/tutorials/007/page09.html: - * docs/tutorials/007/thread_pool.cpp: - * docs/tutorials/008/Makefile: - * docs/tutorials/008/combine.shar: - * docs/tutorials/008/directed_client.cpp: - * docs/tutorials/008/page01.html: - * docs/tutorials/008/page02.html: - * docs/tutorials/008/page03.html: - * docs/tutorials/008/page04.html: - * docs/tutorials/008/page05.html: - * docs/tutorials/008/server.cpp: - * docs/tutorials/009/Makefile: - Included Kirthika's abstract. - Colorized both tutorials & convereted to new format. - -Thu Jan 21 14:25:58 1999 David L. Levine - - * ace/SString.h: changed !ACE_HAS_WINCE wrap of ostream - operators to !ACE_LACKS_IOSTREAM_TOTALLY. - - * ace/OS.i (getuid): added static cast of -1 to uid_t on - Chorus, to avoid compiler warning about change in sign. - - * ace/OS.h: moved (protected) MAXHOSTNAMELEN #define from - pSOS and NT-only code to where its visible on all platforms. - When we removed the #include of rpc.h, we lost the - #define of MAXHOSTNAMELEN on Chorus. - -Thu Jan 21 15:19:26 1999 James CE Johnson - - * docs/tutorials/001/Makefile: - * docs/tutorials/001/page01.html: - * docs/tutorials/001/page02.html: - * docs/tutorials/001/page03.html: - * docs/tutorials/001/page04.html: - * docs/tutorials/001/page05.html: - * docs/tutorials/005/client_handler.cpp: - * docs/tutorials/005/page02.html: - * docs/tutorials/005/page03.html: - * docs/tutorials/005/page04.html: - * docs/tutorials/005/page05.html: - * docs/tutorials/005/page06.html: - * docs/tutorials/006/client_handler.cpp: - * docs/tutorials/006/page01.html: - * docs/tutorials/006/page02.html: - * docs/tutorials/006/page03.html: - * docs/tutorials/006/page04.html: - * docs/tutorials/006/page05.html: - Incorporated new comments from Vishal, Yamuna and Pradeep. - -Thu Jan 21 13:05:31 1999 Steve Huston - - * docs/tutorials/Makefile: Removed include .depend to allow the - whole set of tutorials to be built from the top. Thanks to James - Johnson for guiding this fix. - -Wed Jan 20 19:47:16 1999 Nanbor Wang - - * ace/OS.{h,i,cpp} (fopen): Reimplement fopen using Win32 APIs so - ACE_OS::unlink behaves the same as it does on UNIX platforms. - Both ACE_OS::open and ACE_OS::fopen have been corrected. - There's also a ACE::open_temp_file which should be the prefered - method to open temp files when ACE_HANDLE is used. That's - because Win32 tries to map the file opened by - ACE::open_temp_file to memory. - - * ace/Parse_Node.cpp (symbol): need to be initialized. - Thanks to David for reporting the bug. - -Wed Jan 20 17:37:21 1999 Steve Huston - - * ace/Log_Msg.h: Added "do {} while (0)" as defs for ACE_HEX_DUMP, - ACE_ERROR, ACE_DEBUG when ACE_NLOGGING is defined. Having null defs - for these caused MSVC some problems. Thanks to Doug Schmidt for - giving (and explaining) the correct definitions. - -Wed Jan 20 13:38:03 1999 David L. Levine - - * ace/OS.i (readdir_r): added ACE_UNUSED_ARG (entry) - without ACE_HAS_REENTRANT_FUNCTIONS. - - * docs/ACE-guidelines.html: added guideline for calling - ACE_OS::unlink () immediately after opening a temporary file. - - * *.h: replaced () around #pragma implementation argument. Thanks - to Susan Liebeskind and - Steve Huston for reporting and confirming that it's necessary - on AIX. - -Wed Jan 20 01:48:21 1999 Nanbor Wang - - * ace/Parse_Node.cpp (symbol): Remembered to pass down the - "gobbler" in a Static_Function_Node. Thanks to Eric C. Newton - for reporting and providing the fix. - -Tue Jan 19 17:52:49 1999 Douglas C. Schmidt - - * ace/SString.h: Clarified the role of the argument for - the method. Thanks to Sudhanshu Garg - for suggesting this. - -Tue Jan 19 16:15:26 1999 David L. Levine - - * OS.i,README,config-cygwin32-common.h,config-linux-common.h, - config-psos-diab.h,config-psos-tm.h,config-psosim-g++.h, - config-sco-5.0.0-mit-pthread.h,config-sco-5.0.0.h, - config-tandem.h: removed removed include of rpc/rpc.h, and - ACE_LACKS_RPC_H. Thanks to Susan Liebeskind - for initially suggesting this, - and to Russ Noseworthy for reporting another problem (on - SunOS 5.6 w/o threads) with it. ACE doesn't need it. - - * bin/g++dep: removed /project/doc/pkg/gnu/bin from PATH so that - I can run make depend on Linux. - -Tue Jan 19 12:14:09 1999 Douglas C. Schmidt - - * Makefile (CONTROLLED_FILES): Added ChangeLog-98b to the - CONTROLLED_FILES macro. Thanks to Susan Liebeskind - for suggesting this. - -Tue Jan 19 10:24:00 1999 Chris Gill - - * apps/JAWS/PROTOTYPE/HTTPU/HTTPU.{dsp, dsw}: converted to MSVC++ 6.0 - (and backward compatible) format. - - * apps/JAWS/PROTOTYPE/HTTPU/http_headers.{cpp, h}: fixed ACE_RB_Tree - templates, template instantiations. Thanks to Sridhar Sabella - (ssabbella@cemax.com) for pointing this out. - -Tue Jan 19 00:42:44 1999 Irfan Pyarali - - * examples/Log_Msg/test_callback.cpp (log): Removed the use of - cerr and used ACE_OS::printf() instead. - - * ace/Log_Record.cpp (print): Fixed comparison between signed and - unsigned. Thanks to David Levine for pointing this out. - -Mon Jan 18 23:55:03 1999 Darrell Brunsch - - * ACE-INSTALL.html: Added more info on Alpha configuration - problems and fixes. - -Mon Jan 18 23:07:38 1999 Nanbor Wang - - * ace/OS.cpp (open): Files opened with CreateFileA (on Win32 of - course,) are now opened with FILE_SHARE_DELETE flag set. This - allows ACE_OS::unlink to work as it should. However, I haven't - figured out how to make unlink work with file opened with fopen - yet. Apparently, fopen does not open file with - FILE_SHARE_DELETE. - -Mon Jan 18 22:54:18 1999 Darrell Brunsch - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Updated NT Alpha configurations. - - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf_lib.dsp: - Added NT Alpha configurations. - -Mon Jan 18 22:14:00 1999 James CE Johnson - - * docs/tutorials/011/message_queue.cpp: - * docs/tutorials/011/page02.html: - ACE_Message_Block::copy() will advance the wr_ptr() for us. - Previously, I was doing that myself in run_test(). The test only - worked because I never wrote data to the block after that. If I - had, things would have broken horribly. - -Mon Jan 18 20:41:48 1999 Douglas C. Schmidt - - * ace/Message_Block.h: Clarified that the wr_ptr() is incremented - by n as a result of the copy operation. Thanks to Zoran - Ivanovic for suggesting this. - - * ace/INET_Addr.h (ACE_INET_Addr): Changed the default for - ipaddr_format to 1 (which is what it had been originally) rather - than 0 since the original way is faster since it doesn't use - DNS. Thanks to Zoran Ivanovic for finding - this. - -Mon Jan 18 20:31:47 1999 James CE Johnson - - * docs/tutorials/006/client_handler.cpp: - Typo... - - * docs/tutorials/006/*.html: - * docs/tutorials/006/combine.shar: - Colorized, added Kirthika's abstract. - -Mon Jan 18 16:19:56 1999 Nanbor Wang - - * ace/OS.cpp (open): If a file is open with _O_TEMPORARY flag set - on Win32, we also set the FILE_ATTRIBUTE_TEMPORARY so OS will - try to cache it in memory to speed up access. - - * ace/ACE.cpp (open_temp_file): On Win32, temporary file should be - opened with _O_TEMPORARY flag set, not FILE_DELETE_ON_CLOSE. - - * include/makeinclude/wrapper_macros.GNU: My previous fix of - avoiding multiple definition of ACE_NDEBUG was not correct. Now - the macro check where should the definition go to. Thanks to - David for showing me the right way to do this. - -Mon Jan 18 11:23:06 1999 Carlos O'Ryan - - * include/makeinclude/platform_irix6.x-sgic++.GNU: - Added the -multigot flag when building shared libraries, - otherwise TAO/orbsvcs is too big. - -Mon Jan 18 09:54:54 1999 David L. Levine - - * ace/config-sunos5.5.h: moved ACE_HAS_PRIOCNTL #define so - that it's defined even without threads. Thanks to - Russ Noseworthy for reporting this. - - * ace/OS.cpp (lwp_getparams): removed ACE_MT_SAFE check - that Doug added Saturday. It's not necessary with the - above fix to config-sunos5.5.h. - - * examples/Log_Msg/test_ostream.cpp: don't try to create the - ofstream if ACE_LACKS_IOSTREAM_TOTALLY. Also, removed - declarations of unused argc/argv arguments because some - g++ versions complain about them. - -Mon Jan 18 08:17:49 1999 Douglas C. Schmidt - - * ace/SOCK_IO.cpp, - ace/SOCK_Dgram.cpp: Added - - ACE_UNUSED_ARG (timeout); - - to the #else part of the recv (iovec *) methods. Thanks to Mike - Goldman for reporting this. - -Mon Jan 18 01:13:57 1999 Nanbor Wang - - * ace/CORBA_macros.h: ACE_TRY_NEW_ENV also needs to define a new - CORBA::Environment even with native exceptions. Mark exception - caught by ACE_CATCH as unused arg to avoid compilation warnings. - -Mon Jan 18 00:12:13 1999 Douglas C. Schmidt - - * ACE version 4.6.16 released. - -Sun Jan 17 16:40:22 1999 Douglas C. Schmidt - - * tests/Reactor_Exceptions_Test.cpp (main): Changed the LM_INFO - message to indicate that C++ exception support isn't ENABLED on - a platform, rather than saying that it's not supported at all... - -Sun Jan 17 15:16:35 1999 Nanbor Wang - - * ace/SString.cpp (operator<<): The operator<< used to print out - ACE_WString caused an infinite loop on platform without UNICODE - defined because we didn't convert the wide string on these - platform. However, since an ACE_WString always contains a wide - string, the conversion from wide string to char string should - always be done here. Thanks to Scott Snyder - for noticing this bug. - - (operator<<): Changed the ACE_SString and ACE_CString version to - check against the case when the internal contains 0. - The ACE_CString version was printing out the string one char a - time. Can't see any reason why this is done like this. Changed - to print out the underlying directly. - -Sun Jan 17 14:42:39 1999 James CE Johnson - - * docs/tutorials/001/*: - * docs/tutorials/002/*: - * docs/tutorials/003/*: - * docs/tutorials/004/*: - * docs/tutorials/005/*: - Converted to the new (colorized) format used by T13 and beyond. - I will convert the remaining tutorials (6-12) as each is reviewed. - - * docs/tutorials/005/fix.Makefile: - * docs/tutorials/006/fix.Makefile: - * docs/tutorials/007/fix.Makefile: Replaced by ../fix.Makefile. - - * docs/tutorials/010/Makefile: - * docs/tutorials/011/Makefile: - * docs/tutorials/012/Makefile: - * docs/tutorials/013/Makefile: - * docs/tutorials/014/Makefile: - * docs/tutorials/016/Makefile: - * docs/tutorials/017/Makefile: - These all referenced ../007/fix.Makefile. They now reference - ../fix.Makefile instead. - -Sun Jan 17 13:50:16 1999 James CE Johnson - - * docs/tutorials/002/handler.h: - * docs/tutorials/002/handler.h: - * docs/tutorials/002/page03.html: - * docs/tutorials/003/client.cpp: - * docs/tutorials/003/page01.html: - * docs/tutorials/004/page01.html: - * docs/tutorials/005/client_handler.h: - * docs/tutorials/005/page02.html: - * docs/tutorials/005/page04.html: - * docs/tutorials/005/page05.html: - * docs/tutorials/005/server.cpp: - - More improvements from Doug's class (and Ossama). Each "page2" - includes an abstract by Kirthika. - - Reviewers to date: - Yamuna Krishnamurthy - Kirthika Parameswaran - Balachandran Natarajan - Pradeep Gore - Ossama Othman - -Sat Jan 16 19:08:12 1999 Douglas C. Schmidt - - * ace/High_Res_Timer.cpp: Added #ifdef so high-res timers work - correctly on KCC. Thanks to Scott Snyder - for contributing this. - - * tests/test_config.h: Updated randomize() so that it uses a - "fixed" seed, so that it will produce "reusable" random numbers. - - * include/makeinclude/platform_linux_kcc.GNU (LD): Added the -lm - flag. Thanks to Scott Snyder for - contributing this. - - * tests/run_tests.sh: Added an - LD_LIBRARY_PATH=../netsvcs/lib:$LD_LIBRARY_PATH so that we can - use a relative name for the svc.conf files used in the - Time_Service_Test and Tokens_Test. - - * ace/config-irix6.x-common.h: Added support for long double for - KCC. Thanks to Scott Snyder for - contributing this. - - * ace/config-irix6.x-kcc.h: Added KCC support. Thanks to Scott - Snyder for contributing this. - - * ace/config-osf1-4.0.h: Added KCC support. Thanks to Scott - Snyder for contributing this. - - * ace/IOStream.h: Fixed up the PUT_CODE and GET_CODE macros so - that they work with KCC. Thanks to Scott Snyder - for contributing this. - - * ace/Env_Value_T.h (ACE_Convert): Added a new ACE_Convert - constructor for u_int so that TAO compiles correctly with KCC. - Thanks to Scott Snyder for contributing - this. - - * include/makeinclude/platform_osf1_4.0_kcc.GNU: Added a new - platform config file for KCC. Thanks to Scott Snyder - for contributing this. - -Sat Jan 16 18:13:29 1999 Nanbor Wang - - * include/makeinclude/wrapper_macros.GNU: Commented out adding - ACE_NDEBUG to CCFLAGS to avoid defining it twice. Most (if not - all) platforms include CFLAGS into CCFLAGS. So, if "make - debug=0" no longer work on your platform, then, you may need to - add "CCFLAGS += $(CFLAGS)" into your platform_xxx.GNU. - -Sat Jan 16 13:40:40 1999 Douglas C. Schmidt - - * ace/Proactor.cpp (schedule_timer): Had to add an - ACE_SYNCH_RECURSIVE_THREAD_MUTEX in place of - ACE_Recursive_Thread_Mutex to avoid problems when threads=0. - - * ace/OS.cpp (lwp_getparams): For some reason we had to - add - - # if defined (ACE_HAS_STHREADS) || (defined (sun) && (ACE_MT_SAFE != 0)) - - instead of - - # if defined (ACE_HAS_STHREADS) || defined (sun) - - to avoid problems when threads=0. - - * ace/Asynch_IO.cpp: Replaced some ACE_Thread_Mutex decls with - ACE_SYNCH_MUTEX to avoid problems with threads=0. - - * ace/config-sunos5.6.h: If defined(_POSIX_C_SOURCE) && - _POSIX_C_SOURCE >= 199506L) || defined (__EXTENSIONS__) then - #define ACE_HAS_SIGWAIT to avoid compilation errors. Thanks to - Russ Noseworthy for reporting this. - - * ace/OS.i: Fixed the ACE_OS::readdir_r() so that it doesn't fail - if threads are disabled via "make threads=0". Thanks to Russ - Noseworthy for reporting this. - - * ace/FILE_Connector.h (ACE_FILE_Connector): Added the O_CREAT - flag to the list of flags passed to connect(). This ensures - that the file is created if it doesn't already exist. Thanks to - Pradeep Gore for reporting this. - -Fri Jan 15 21:28:04 1999 Irfan Pyarali - - * ace/Log_Msg (ACE_Log_Msg_Callback): Added an interface class - used for getting logging callbacks. Users who are interested in - getting the logging messages directly, can subclass this - interface and override the log() method. They must then register - their subclass with the 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 - ACE_Log_Record. From this class, you can get the log - message, the verbose log message, message type, message - priority, and so on. - - Remember that there is one Log_Msg object per thread. - Therefore, you may need to register your callback object with - many Log_Msg objects (and have the correct synchronization in - the log() method) or have a separate callback object per - Log_Msg object. - - Thanks to Chris Lahey for suggesting this - and send patches. - - * examples/Log_Msg/test_callback.cpp: Added new example for - Log_Msg. This program tests the Log_Msg abstraction wrt writing - to user defined callback objects. - -Fri Jan 15 21:10:25 1999 Nanbor Wang - - * ace/CORBA_macros.h: Made sure ACE_CORBA_HAS_EXCEPTIONS always - gets set properly. Added ACE_ADPOT_CORBA_ENV to reuse a - existing CORBA::Environment variable. - -Fri Jan 15 17:05:12 1999 Irfan Pyarali - - * ace/Log_Record: Factored out the redundant formatting code. The - new scheme also allows the end user to get to verbose formatted - string. Thanks to Nanbor for helping out with this. - -Fri Jan 15 17:15:18 EST 1999 James CE Johnson - - * docs/tutorials/templates.html - docs/tutorials/001/acceptor.h - docs/tutorials/001/logger.h - docs/tutorials/001/page01.html - docs/tutorials/001/page02.html - docs/tutorials/001/page03.html - docs/tutorials/001/page04.html - docs/tutorials/001/page05.html - docs/tutorials/001/server.cpp - docs/tutorials/003/page01.html - - Many changes from Ossama plus a new abstract (for T3) from - Kirthika. - -Fri Jan 15 14:40:26 1999 Douglas C. Schmidt - - * ace/SOCK_IO, - ace/SOCK_Dgram: Modified the recv(iovec *) and recvv(iovec *) - methods so that they use select() to avoid spinning if no data - is available. Thanks to Mike Goldman for this - fix. - -Fri Jan 15 10:47:26 1999 Douglas C. Schmidt - - * ace/Service_Repository.cpp: If a service being removed from the - Service_Repository used the Service_Repository while being - removed it could access objects that had already been deleted. - Fix this by decrementing the current_size_ member in - "real-time". Thanks to Eric Newton for reporting this. - -Fri Jan 15 08:08:31 1999 Douglas C. Schmidt - - * ACE version 4.6.15 released. - -Fri Jan 15 07:20:46 1999 Chris Gill - - * ace/OS.i: Fixed variable names in isatty () on NT - -Fri Jan 15 03:45:46 1999 Nanbor Wang - - * docs/exceptions.html: Rewrote the exception handling guildlines - based on ACE's try macros. - -Fri Jan 15 01:32:55 1999 Douglas C. Schmidt - - * ACE version 4.6.14 released. - -Fri Jan 15 00:03:32 1999 Irfan Pyarali - - * examples/Log_Msg/test_ostream.cpp: Added new example for - Log_Msg. This program tests the Log_Msg abstraction wrt writing - to stderr and to a file. - -Thu Jan 14 21:50:22 1999 Nanbor Wang - - * ace/CORBA_macros.h: Added a new set of try macros which help - application developers write portable code that handles - CORBA::Exception portably. The macros will work with any ORB. - - The total number of macros has reduces significantly and they - should be much easier to use because the rules all follow the - same style. - - The new try macros should be prefered over the original try - macro in $TAO_ROOT/TAO/try_macros.h because those macros will - soon be *DEPRICATED* once we finished convert TAO to use the new - macros. - - Please see ACE_wrappers/docs/exceptions.html for guidelines and - rules of using ACE's try macros. - -Thu Jan 14 20:41:33 1999 Douglas C. Schmidt - - * ace/OS: Moved some code around to consolidate the getuid() and - isatty() functions. - - * ace/OS: Added support for the setuid() call. Thanks to Susan - Liebeskind for suggesting - this. - -Thu Jan 14 16:18:37 EST 1999 James CE Johnson - - * docs/tutorials/001/page02.html: - docs/tutorials/001/page03.html: - - Included Kirthika Parameswaran's - abstract and analogy. Thanks Kirthika! - - * docs/tutorials/001/Source.tgz: - docs/tutorials/001/acceptor.h: - docs/tutorials/001/logger.h: - docs/tutorials/001/server.cpp: - docs/tutorials/001/page[345].html: - * docs/tutorials/002/page0[23].html: - docs/tutorials/002/handler.h: - - Added improvements from Kirthika, Pradeep and Yamuna - -Thu Jan 14 11:46:25 1999 Douglas C. Schmidt - - * ace/Synch_T.h: Pointed out that we can only parameterize - ACE_Condition<> with ACE_Thread_Mutex and ACE_...Null_Mutex. - Thanks to Knut-Havard Aksnes for reporting - this. - -Thu Jan 14 02:33:37 1999 Douglas C. Schmidt - - * ACE version 4.6.13 released. - -Thu Jan 14 00:07:34 1999 Irfan Pyarali - - * docs/tutorials/014/stream.cpp: Added #include "ace/streams.h". - -Wed Jan 13 23:18:03 1999 Nanbor Wang - - * ace/OS.h: - * config-g++-common.h: - * config-osf1-4.0.h: - * config-psos-diab.h: - * config-psos-tm.h: Revert my previous change. Removed the - ChangeLog entry about the change. - -Wed Jan 13 22:30:49 1999 David L. Levine - - * include/makeinclude/platform_chorus_ghs.GNU: removed - explicit link with libedgnoe.a, because GreenHills adds - that implicitly. - - * ace/OS.h: added quick hack to ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR - logic to allow compilation with g++. - -Wed Jan 13 18:48:30 EST 1999 James CE Johnson - - * docs/tutorials/004/client.cpp: - docs/tutorials/010/message_queue.cp: - docs/tutorials/011/message_queue.cpp: - docs/tutorials/012/message_queue.cpp: - docs/tutorials/013/message_queue.cpp: - docs/tutorials/014/EndTask.h: - docs/tutorials/019/client.cpp: - docs/tutorials/019/client2.cpp: - docs/tutorials/019/server.cpp: - docs/tutorials/019/server2.cpp: - docs/tutorials/019/shmem.cpp: - docs/tutorials/020/client.cpp: - docs/tutorials/020/server.cpp: - docs/tutorials/021/client.cpp: - docs/tutorials/021/mpool.cpp: - docs/tutorials/021/mpool.h: - docs/tutorials/021/server.cpp: - Fixed many NT issues found by Irfan. Most are related to the - fact that NT doesn't have SysV shared memory. - -Wed Jan 13 04:45:59 1999 James C Hu - - * ace/Cache_Object.{h,cpp}: - * ace/Cache_Manager.{h,cpp}: - * ace/Cache_Manager_T.{h,cpp}: - * ace/Cache_Hash_T.{h,cpp}: - * ace/Cache_Heap_T.{h,cpp}: - * ace/Hash_Bucket_T.{h,cpp}: - Supporting infrastructure for the new Filecache. These classes - form the basis of a generic in memory cache engine. - -Wed Jan 13 02:17:57 1999 Irfan Pyarali - - * ace/OS.cpp (writev): This function should use ACE::write_n - instead of ACE::send_n. Similarly, readv() should use - ACE::read_n instead of ACE::recv_n. - - * ace/ACE.cpp (send): This function should use ACE_OS::sendv - instead of ACE_OS::writev. Similarly, recv() should use - ACE_OS::recvv instead of ACE_OS::readv. - - * docs/tutorials: Fixed all the NT project files. - -Tue Jan 12 22:41:05 1999 Nanbor Wang - - * ace/config-freebsd.h: Uncommented ACE_HAS_SIGWAIT. This is - required for FreeBSD 2.2.8. Thanks to John Aughey - for reporting this. - - * ace/SOCK_IO.{h,i}: - * ace/SOCK_Stream.{h,i} (sendv_n/recvv_n): Moved these functions - from SOCK_IO to SOCK_Stream where it makes more sense to have - the semantic of sending/receiving bytes. - -Tue Jan 12 19:52:26 1999 Nanbor Wang - - * ACE-INSTALL.html: Added more info on dynamically linking - run-time libraries. - - * ace/SOCK_IO.{h,i,cpp} (sendv,recvv,sendv_n,recvv_n): Renamed - vector send_n/recv_n. There were name clashing since these - methods have similar signatures to some send_n/recv_n in - ACE_SOCK_Stream, they got hidden by the derived methods. - Renaming them solve the problem. - -Tue Jan 12 10:59:58 1999 David L. Levine - - * include/makeinclude/platform_chorus_ghs.GNU: fixed location of - libedgenoe.a, so that a symlink in $(GHS_DIR) is no longer necessary. - Thanks to Steve Kay for reporting this. - - * ace/config-mklinux.h: removed ACE_HAS_SOCKLEN_T, added __USE_XOPEN. - Thanks to Andreas Tobler for these updates. - -Tue Jan 12 08:44:11 EST 1999 Aniruddha Gokhale - - * ace/Acceptor.cpp (handle_close): - - Since the reactor_ data member is made private, we need to use - its accessor method to retrieve it. - -Tue Jan 12 02:12:38 1999 Nanbor Wang - - * ace/OS.h (ACE_DES_NO_FREE,ACE_DES_FREE): These two macros - shouldn't be treated differently no matter - ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR is defined or not. - Otherwise, virtual destructor won't work in one of the original - definitions. - - There shouldn't be different different definitions for calling - template destructor explicitly either. However, we need to find - that out. The meaning of ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR - seems to be reversed. That needs to be fixed also. - -Tue Jan 12 00:18:15 1999 Douglas C. Schmidt - - * ace/Event_Handler.h: Moved the priority_ and reactor_ data - members into the private section of the class since these can - always be accessed via their accessor methods. Thanks to Mike - Goldman for reporting this. - -Mon Jan 11 15:30:26 1999 Nanbor Wang - - * ace/Process.{h,i} (get_process_attributes,get_thread_attributes): - Removed the constness from the return value to avoid Intel C++ - warnings. Thanks to Karel Zuiderveld - for reporting this. - - * bin/ADDIDL.DSM: A VB script to add new IDL files into DevStudio - projects. Thanks to Peter for contributing - this nice tool. - -Mon Jan 11 12:54:26 1999 Douglas C. Schmidt - - * ace/SOCK_IO: Added const qualifiers to all the send*() and - recv*() methods that take ACE_Time_Value values. Thanks to Jody - Hagins for reporting this. - - * ace/SOCK_IO: Added a new send_n() method that uses the new - ACE::sendv_n() method! - - * ace/ACE: Added a new sendv_n() and writev_n() method that sends - all the bytes in the iovec! - - * ace/ACE.h (ACE): Added default values of 0 for ACE::writev() and - ACE::readv(). - - * examples/NT_Service: Tidied up the formatting to conform to the - ACE programming guidelines. - -Mon Jan 11 10:23:06 1999 Nanbor Wang - - * ace/config-freebsd-pthread.h: Added ACE_LACKS_READDIR_R. - * ace/config-freebsd.h: Added ACE_LACKS_READDIR_R, - ACE_HAS_NONCONST_MSGSND, ACE_LACKS_MALLOC_H. ACE_HAS_SIGINFO_T - only applies to 3.0 and above. Thanks to Ivan Pascal - for reporting the change. - -Sun Jan 10 21:52:57 1999 David L. Levine - - * tests/Message_Queue_Notifications_Test.cpp (iterator_test): - added comment explaining why a message queue size of 32 Kb - is used, instead of the default of 16 Kb. - - * docs/ACE-guidelines.html: added guidelines for boolean types - and function return values. - -Sun Jan 10 17:33:29 1999 Douglas C. Schmidt - - * tests/Message_Queue_Notifications_Test.cpp: Replaced delete mb - with mb->release(). Thanks to Susan Liebeskind - for reporting this - inconsistency. - - * ace/Task_T.h, - ace/Message_Queue_T.h: Clarified the fact that the - ACE_Time_Value arguments to the Message_Queue methods - use absolute, rather than relative, time. Thanks to - Stanford S. Guillory for pointing out - the need for this clarification. - -Sun Jan 10 09:18:41 1999 Martin Krumpolec - - * ace/Log_Msg.cpp (log): only re-enable tracing if it had - not been explicitly disabled. - -Sun Jan 10 01:06:18 1999 Irfan Pyarali - - * ace/Log_Msg.cpp (log): Change call from exit() to abort(). - - * ace/OS.i (abort): Added new function. - -Sat Jan 9 22:05:07 1999 Nanbor Wang - - * bin/tao_env.pl: A new perl script that help you translate _env - to TAO_IN_ENV. - -Sat Jan 09 10:53:37 1999 David L. Levine - - * ace/Name_Proxy.cpp (open): swapped branches of conditional - so that options.time_value () is used if USE_TIMEOUT is enabled. - Thanks to Mike Goldman for reporting this. - -Fri Jan 08 19:19:17 1999 Nanbor Wang - - * ace/OS.h: Applied ACE_TEXT to the definition of - ACE_DEFAULT_TEMP_FILE on Win32. Thanks to - for reporting this. - -Fri Jan 08 13:24:12 1999 David L. Levine - - * ace/Synch.h (ACE_Process_Mutex): made data members - private instead of public. Thanks to Peter Gross - for reporting this. - - * examples/Threads/reader_writer.cpp: removed volatile - qualifier from declaration of "shared_thr_id", so that - the file will compile on DU 4.0 with DCE threads. The - volatile qualifier caused a type mismatch with - ACE_thread_t. And, it's not necessary, because all - access of the shared_thr_id is guarded. - - * include/makeinclude/platform_chorus_ghs.GNU: added gnuch68 - to -alttools, and removed bin from AR; use libedgnoe.a instead - of libedg.a with GHS 1.8.9.1. - - * ace/config-sunos5.5.h: don't define ACE_HAS_XPG4_MULTIBYTE_CHAR - with ghs, because its version 1.8.9 doesn't seem to support it. - Also, with ghs, replaced the __ctype [] declaration with an - #include of , because that's cleaner. Finally, - added ACE_HAS_BROKEN_ENUMS for ghs (1.8.9). - -Thu Jan 07 09:05:27 1999 David L. Levine - - * ace/config-sunos5.5.h: added ACE_HAS_SIG_C_FUNC with - Sun CC >= 4.2. Sun CC 5.0 needs it; Sun CC 4.2 doesn't - object to it on SunOS 5.5.1, 5.6, and 5.7. Thanks to - Neil Cohen for figuring out how to - compile ACE with Sun CC 5.0. - - * include/makeinclude/platform_sunos5_sunc++.GNU: only - use -features=castop and -rtti with Sun CC 4.2. CC 5.0 - doesn't support them; I assume that it enables RTTI by - default. Thanks to Neil Cohen for - reporting this. - - * ACE-INSTALL.html: added ACE_HAS_REGEX #undef suggestion for - shared lib link problems with egcs 1.1.x on Solaris 2.5.x. - Thanks to Bob McWhirter for reporting this - problem. - -Thu Jan 07 04:45:36 1999 Douglas C. Schmidt - - * ACE version 4.6.12 released. - -Thu Jan 07 04:01:08 1999 Irfan Pyarali - - * ace/Containers_T.cpp (max_size): No need to reallocate if the - new size is the same. Thanks to Mike Goldman for - pointing this out. - - * ace/Strategies_T.cpp (check_hint_i and cleanup_hint_i): - purge_i() should be called after the entry is closed. - - * Select_Reactor_Base.cpp (unbind): The next - should be calculated not only based on the but also - the . - - Thanks to Mark L. Boriack for providing - a description of this bug. - -Wed Jan 06 21:42:11 1999 David L. Levine - - * ace/OS.cpp (thr_create): moved #endif /* ACE_LACKS_SETDETACH */ - outside of }, to allow compilation on DU 4.0/cxx with DCE threads. - - * ace/config-osf1-4.0.h: with DCE threads only, added - ACE_LACKS_THREAD_PROCESS_SCOPING. - -Wed Jan 06 16:36:21 1999 David L. Levine - - * ACE version 4.6.11 released. - -Wed Jan 06 15:15:37 1999 Nanbor Wang - - * ace/Service_Config.cpp (process_directive,close): Moved the - deletion of into close method. - Otherwise, there's no way to reconfigure the service - configuration once it get started. Thanks to Mike Goldman - for reporting the problem. - -Wed Jan 6 14:27:24 EST 1999 James CE Johnson tutorial. It could be a lot better - than it is but I'm still new to ACE_Malloc... - - * docs/tutorials/021/online-tutorials.html: - Added the link for #21 - -Tue Jan 05 22:55:07 1999 Irfan Pyarali - - * ace/Strategies_T.cpp (cleanup_hint_i and check_hint_i): Since we - are holding the connection cache lock in these methods, the - Svc_Handler should not call purge(). If it does, a deadlock - will occur (unless we have recursive locks) since we are already - holding the connection cache lock. Therefore, we zero out the - recycler before calling svc_handler->close() and purge out the - svc_handler entry ourself (through purge_i()). - - Thanks to Mark L. Boriack for providing - a precise example illustrating this bug. - -Tue Jan 5 18:48:47 James CE Johnson - - * docs/tutorials/templates.html: Fixed a number of problems here. - Thanks to Amos Shapira for pointing - them out. - - * docs/tutorials/colorize: I pulled out the colorization code from - combine into this standalone script. One of these days I'll fix - combine so that the code isn't duplicated... - -Tue Jan 5 16:14:00 1999 Carlos O'Ryan - - * ace/config-irix6.x-common.h: - Added ACE_TIMER_SKEW definition. - - * ace/FILE.cpp: - Fixed the seek() prototype, is was declared as taking a "off_t" - argument, but is was defined with a "long" argument, - unfortunately in most platforms this was not a problem. - -Tue Jan 05 13:15:35 1999 Nanbor Wang - - * ace/Service_Config.i (open): Be sure to pass down the - argument down to the real open method. - -Tue Jan 05 08:08:06 1999 David L. Levine - - * tests/MM_Shared_Memory_Test.cpp (spawn): fixed syntax error - by moving ) to end of ACE_ERROR invocation. - - * ace/config-osf1-4.0.h: added 10 ms ACE_TIMER_SKEW, so that - MT_Reactor_Timer_Test passes. - - * ace/config-lynxos.h: added 10 ms ACE_TIMER_SKEW, so that - MT_Reactor_Timer_Test comes closer to passing. It now - chokes on the wait () near the end. - - * ace/OS.i (thr_getspecific): moved return 0 statement inside - the Draft 7/STD #else block, to avoid warning about unreachable - statement with Draft 4/6. - - * ace/config-osf1-4.0.h: with Draft 4 pthreads, added - ACE_LACKS_READDIR_R. - - * tests/MT_Reactor_Timer_Test.cpp (main): added printout if - wait () fails. - -Tue Jan 5 00:59:04 1999 Douglas C. Schmidt - - * ace/Synch: Changed the remove() method of ACE_Thread_Mutex, - ACE_Mutex, ACE_Semaphore, ACE_RW_Mutex, ACE_Event, - ACE_Thread_Condition_Mutex, ACE_File_Lock, and - ACE_Recursive_Thread_Mutex so that they check a flag to see if - remove() has already been called. If it has, then the remove() - call does nothing. This avoids nasty problems on platforms like - Win95 that fail mysteriously if locks are destroyed multiple - times. Note that our solution isn't perfect since it won't - protect against race conditions if multiple threads call - remove() simultaneously. However, if this happens it's a sign - that the application was designed incorrectly... Thanks to Paul - Felix and Irfan for tracking this down.... - - * ace/FILE: Added new methods, seek() and tell(), that are more - intuitively named than the existing position() methods. The - position() methods have been retained for backwards - compatiblity, but are now marked as deprecated. - - * ace/OS.h: Added a macro for ACE_DEFAULT_HTTP_PORT, which - is 80 of course... - - * ace/INET_Addr.cpp: Make sure that addr_to_string() correctly - checks the length of its buffer before doing a sprintf(). In - addition, added an option to print the results in either ip-addr - format or ip-name format. - - * ace/Mem_Map.cpp (map): where ace/Mem_Map.cpp mmap() will succeed - if the length of the file mapping is 0, which will be the case - if we've just created the file. This was the wrong place to - make this check. - - * tests/MM_Shared_Memory_Test.cpp: Cleaned up a few things - in this test so that it'll be easier to maintain. - -Mon Jan 04 08:45:45 1999 David L. Levine - - * ace/config-sunos5.7.h: only use the g++ hacks if the - g++ version is prior to 2.8. Assume that later versions - were built on SunOS 5.7 host, and/or don't have header - files that are incompatible with the system headers. - - * bin/create_ace_build: changed symlink creation failure from - error (with termination) to warning create_ace_build. - -Mon Jan 4 03:15:57 1999 Douglas C. Schmidt - - * ace/Mem_Map: If we're remapping an already-mapped file - (i.e., the base_addr_ != 0) && the addr parameter IS 0 (i.e., - the user isn't trying to respecify where to map this file), then - we'll try to map over top of the existing region, which implies - "MAP_FIXED". - -Sun Jan 03 23:21:46 1999 Nanbor Wang - - * ace/Service_Config.cpp (initialize): Both initialize methods now - remove the service object from the repository if its init() - method failed. - -Sun Jan 3 14:39:49 1999 Douglas C. Schmidt - - * ace/ACE: Added a simple dirname() wrapper method. - - * ace/SString: The set(const char *, size_t, int = 1) and - set(const char *, int) methods were inherently ambiguous. - I've fixed this by changing removing the default parameters. - Thanks to Irfan for suggesting this fix. - - * ace/Mem_Map.cpp: mmap() will fail if the length of the file - mapping is 0, which will be the case if we've just created the - file. Therefore, don't even bother trying to mmap() in this - case and return a successful result. - - * ace/FILE: Moved the get_remote_addr() and get_local_addr() - methods from the FILE_IO class to the FILE class since that's - more properly where they belong. Also added a new remove() - method that unlinks the file. - - * tests/Priority_Reactor_Test.cpp, - tests/Conn_Test.cpp, - tests/Notify_Performance_Test.cpp, - Priority_Reactor_Test.cpp, - Reactor_Performance_Test.cpp: Since the default is to skip argv0 - there's no sense explicitly saying this in the constructor of - ACE_Get_Opt. - - * ace/FILE_Connector.h: Updated the comments to reflect recent - changes. - - * ace/FILE.h: Added a new get_info() method that takes a reference - to an ACE_FILE_Info rather than a pointer. This is a cleaner - API, IMHO. - - * ace/FILE_Connector.cpp (connect): When the argument - is ACE_Addr::sap_any, then connect will select a temporary - filename using the new feature of ACE_FILE_Addr described below. - - * ace/FILE_Addr.cpp (set): When the address is ACE_Addr::sap_any, - then we'll select a new temporary filename using the new - ACE_DEFAULT_TEMP_FILE macro and ACE_OS::mktemp(). - - * ace/OS.h: Added a new ACE_DEFAULT_TEMP_FILE macro that defaults - to "/tmp/ace-file-XXXXXX" and is used by the ACE_FILE_Connector - to create a temporary file when it's given an ACE_Addr::sap_any. - - * ace/FILE_Addr.h: The accessor should return an int to be - consistent. - - * ace/OS.h: Added a new ACE_sap_any_cast macro, which makes it - much easier to cast the ACE_Addr::sap_any to the right subclass. - - * tests/Reactor_Performance_Test.cpp, - tests/Reactor_Exceptions_Test.cpp, - tests/Process_Strategy_Test.cpp, - tests/Priority_Reactor_Test.cpp, - tests/IOStream_Test.cpp, - tests/Conn_Test.cpp: Replaced all the C-style casts for - ACE_Addr::sap_any with the new ACE_sap_any_cast macro. - -Sun Jan 03 21:48:37 1999 Irfan Pyarali - - * ace/Asynch_Acceptor.cpp: Since this is a template file, I - removed it from the ace library build on NT. - - * ace/Asynch_Acceptor.cpp (open): Changed C-style cast to use the - new ACE_sap_any_cast macro from Dr. Schmidt. - -Sun Jan 03 09:12:23 1999 David L. Levine - - * ace/config-sunos5.5.h: with GreenHills, added - ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR. - - * ace/Basic_Types.* (ACE_U_LongLong): unioned the data members - with a double, to ensure alignment on 8-byte boundaries. It - could matter when an ACE_U_LongLong is used as a true 8-byte - quantity, such as in a call to Solaris ::gethrtime (). - - * tests/Time_Value_Test.cpp: replaced remaining #ifdef - ACE_HAS_STHREADS with #ifdef sun. - -Sat Jan 2 23:48:44 1999 James CE Johnson - - * docs/ACE-tutorials.html - * docs/tutorials/guide-tutorials.html - * docs/tutorials/new-tutorials.html - * docs/tutorials/online-tutorials.html - Converted some of the absolute URLs to relative. I only have the - docs/tutorials tree here at home so I couldn't do any more than - these. - - * docs/tutorials/021/* - New tutorial on ACE_Malloc<>. I haven't begun the documentation - yet but wanted to get the code commited so it doesn't get lost. - -Sat Jan 02 08:34:27 1999 David L. Levine - - * examples/ASX/Event_Server/Event_Server/event_server.cpp - (handle_input), - examples/Reactor/Misc/test_early_timeouts.cpp (main): - added ACE_UNUSED_ARG (n), to avoid compile warning with ACE_NDEBUG. - - * performance-tests/Misc/test_naming.cpp (find): moved function - call w/side effect out of ACE_ASSERT. Thanks to DU 4.0 cxx - for noticiing it, with ACE_NDEBUG. - -Fri Jan 01 18:57:22 1999 David L. Levine - - * ace/Containers_T.i (ACE_Array,ACE_Array::operator=): - added missing ACE_INLINE's. - - * ace/OS.{h,cpp} (ACE_TSS_Info::operator{==,!=}): added - constness. It's necessary with the ACE_Array changes, - with ACE_HAS_TSS_EMULATION. - -Fri Jan 1 12:22:14 1999 Carlos O'Ryan - - * ace/Containers_T.h: - * ace/Containers_T.i: - * ace/Containers_T.cpp: - * bin/Array_Helper: - * bin/Array.pl: - Moved most of the implementation of ACE_Array into - ACE_Array_Base this class does not require == or != operators - defined for the template parameter. - I also added methods to access and manipulate the capacity of - the array (max_size) as opposed to always changing its size (the - portion actually used). - - * ace/Object_Manager.cpp: - * ace/Template_Instantiations.cpp: - * ace/OS.cpp: - * apps/JAWS/clients/Caching/URL_Properties.cpp: - Fixed ACE_Array instantiations. diff --git a/ACE/ChangeLogs/ChangeLog-99b b/ACE/ChangeLogs/ChangeLog-99b deleted file mode 100644 index 2bdeb97ccd3..00000000000 --- a/ACE/ChangeLogs/ChangeLog-99b +++ /dev/null @@ -1,7290 +0,0 @@ -Fri Dec 31 08:07:18 1999 David L. Levine - - * all Makefiles: updated dependencies. - -Thu Dec 30 11:17:27 1999 David L. Levine - - * etc/ACE-development-process.html: fixed some typos. - -Wed Dec 29 15:42:21 1999 David L. Levine - - * ace/OS.h: added null definition of ACE_ENDLESS_LOOP, - if not already #defined. - - * ace/config-cxx-common.h: added definition of ACE_ENDLESS_LOOP - to avoid compiler warning about unreachable statement following - the loop. - - * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main): - inserted ACE_ENDLESS_LOOP. - -Wed Dec 29 13:21:48 1999 David L. Levine - - * include/makeinclude/platform_linux_cxx.GNU: added - MATHLIB and test -f cxx_repository/*.o. - -Wed Dec 29 09:11:46 1999 David L. Levine - - * ace/config-cxx-common.h: enable ACE_USES_OLD_IOSTREAMS - without __USE_STD_IOSTREAM. Removed ACE_HAS_STRING_CLASS - on Linux, because IOStream_Test won't compile with it. - - * include/makeinclude/platform_linux_cxx.GNU: removed - -D__USE_STD_IOSTREAM test, because IOStream_Test failed - with it. - - * include/makeinclude/platform_linux_cxx.GNU: Removed - -use_ld_input because it has no effect on Linux. Thanks - to Ken Block for pointing - that out. - -Tue Dec 28 18:32:02 1999 Vishal Kachroo - - * ace/QoS_Session_Impl.cpp: Added a comment for get qos(). - - * examples/QOS/Receiver_QOS_Event_Handler.cpp: - * examples/QOS/Receiver_QOS_Event_Handler.h: - * examples/QOS/server.cpp: - - Changed the server of the GQoS example to use the newly added - QoS classes of ACE. The program structure has changed to reflect - the abstractness of the ACE QoS API. The final goal is to remove - all the GQoSisms from the applications, even if this means - constraining it by the granularity provided by RAPI. - -Tue Dec 28 15:50:46 1999 David L. Levine - - * tests/test_config.h (set_output): removed the flags - local variable, with its conditionally compiled type - determination. The absorbed code is much cleaner. - -Tue Dec 28 15:37:11 1999 Chris Gill - - * ace/Log_Msg.cpp - ace/Malloc.cpp - ace/OS.{cpp, h, i} - ace/Process_Manager.cpp - ace/SOCK_Dgram_Mcast.cpp - ace/Service_Config.{cpp, h} - ace/Task.cpp - ace/Thread.i - ace/Thread_Manager.{cpp, h} - - ace/config-psos-diab-ppc.h: merged in changes for pSOS (Diab PPC) - to support additional pHILE+ file system capabilities, and to deal - with the limitations on sharing file and socket handles across pSOS - tasks. Thanks to Sarmeesha Reddy and Steve Tine of Motorola for - contributing these changes to ACE. - -Tue Dec 28 15:32:55 1999 David L. Levine - - * tests/Makefile: build libDLL_Test.so before building - any executables, so that it doesn't see the template - instantiations from all of the tests (after a make - realclean, anyways). - -Tue Dec 28 08:55:23 1999 David L. Levine - - * include/makeinclude/platform_linux_cxx.GNU: - added -D__USE_STD_IOSTREAM. - - * ace/config-cxx-common.h,ace/config-linux-common.h: - added support for __USE_STD_IOSTREAM. - -Tue Dec 28 02:03:11 1999 Nanbor Wang - - * ace/Container_T.i (remove): Changed to call the method - using the in ACE_DLList[_Reverse]_Iterator, otherwise, - the in the ACE_Double_Linked_List got called which - incurred memory leaks. Thanks to Lorin Hochstein - for reporting the bug. - -Mon Dec 27 21:29:25 1999 David L. Levine - - * tests/Log_Msg_Test.cpp (test_ostream): removed local - variable flags, because cxx X6.3/Linux doesn't like - it as an int. - -Mon Dec 27 19:17:46 1999 Vishal Kachroo - - * ace/SOCK.cpp: Added #pragma template instantiations for g++. - -Mon Dec 27 16:24:09 1999 David L. Levine - - * ace/IOStream.h (setb): commented out declaration of - unused arg a. - -Mon Dec 27 15:51:39 1999 David L. Levine - - * tests/test_config.h (set_output): with __USE_STD_OSTREAM - (with Compaq cxx X6.3 on Linux), declare variable flags - as std::ios_base::openmode instead of int. Otherwise, - it complained about a type mismatch. Other compilers - may need this eventually, as well. egcs didn't like it, - so let's wait to see how best to generalize it. - -Mon Dec 27 13:03:50 1999 Vishal Kachroo - - * ace/QoS_Session_Impl.cpp: fixed the "pragma once is obsolete" - warning thrown by Sung++. - -Mon Dec 27 12:27:33 1999 Nanbor Wang - - * tests/run_tests.bat: Changed to allow _Borland 4_ users to set - the PATH environment variable to include the path to the - appropriate ACE dll if necessary, and it sets the PATH - environment variable to the correct directory depending on the - "build options". Thanks to Charles Frasch - for contributing this fix. - -Mon Dec 27 11:29:20 1999 David L. Levine - - * include/makeinclude/platform_linux_cxx.GNU: removed - -I/usr/include/g++. (It's not needed with\end{verbatim} - ACE_HAS_CPLUSPLUS_HEADERS.) Thanks to Judy Ward - for pointing out that cxx should - not be using the g++ headers. - - * ace/config-cxx-common.h: on Linux, #define - ACE_HAS_CPLUSPLUS_HEADERS instead of ACE_LACKS_ACE_IOSTREAM. - -Mon Dec 27 09:28:40 1999 Balachandran Natarajan - - * QoS_Session_Impl.h: Fixed a warning in g++. - -Sun Dec 26 23:45:44 1999 Vishal Kachroo - - * QoS_Session.h: Provided a definition for the virtual destructor - of ACE_QoS_Session. - - * QoS_Session_Impl.{cpp,h}: Replaced the - ACE_LACKS_INLINE_FUNCTIONS macro with __ACE_INLINE__. - - * ace/ace_dll.dsp: Added the new QoS files to the NT DLL project. - -Sun Dec 26 21:50:46 1999 Vishal Kachroo - - The following existing files were changed for the ACE QoS API. - - * SOCK.h: - * SOCK.cpp: - Added a QoS session set to the ACE_SOCK. Also methods to join - a new QoS session. - - * SOCK_Dgram_Mcast.h: - * SOCK_Dgram_Mcast.cpp: - The QoS subscribe method was changed to accommodate QoS. - - The following new files were added. - - * QoS_Session.h: Has the abstract base class for concrete QoS - implementations. - - * QoS_Session_Factory.{h,cpp}: Concrete Factory for QoS - implementations. Currently two implementations are - supported, RAPI and GQoS. - - * QoS_Session_Impl.{h,cpp,i}: Has the QoS implementation classes. - RAPI and GQoS are supported. - - * ace/Makefile: Added the new QoS classes. - - * include/makeinclude/wrapper_macros.GNU (): Added the - ACE_HAS_RAPI flag. For ACE to have RAPI support it should be - built with "make rapi=1". The platform_macros.GNU should have - - PLATFORM_RAPI_CPPFLAGS= - PLATFORM_RAPI_LIBS=-lrsvp - PLATFORM_RAPI_LDFLAGS= - -Sun Dec 26 16:43:16 1999 Yamuna Krishnamurthy - - * ace/OS.i: - Replaced malloc with ACE_NEW_RETURN - -Fri Dec 24 16:33:48 1999 Ossama Othman - - * acconfig.h: - - Added ACE_HAS_RECURSIVE_MUTEXES to list of macros. - - * configure.in: - - Fixed ACE_LACKS_SETSCHED test. It previously didn't check that - sched_setscheduler() existed. Both sched_setscheduler() and - either pthread_attr_setschedpolicy() or pthread_attr_setsched() - must be defined. This was an AIX related fix. - - Initialized variables in all compile-time tests. This fixes - compile-time test warnings on AIX. - -Fri Dec 24 13:06:59 1999 Ossama Othman - - The following fixes were motivated by problems discovered in a - configure script log file (config.log) that was generated on AIX, - and sent in by Mike Winter . - - * THANKS: - - Added my Mike Winter to the THANKS list. - - * acconfig.h: - - Removed an extraneous comment. - - * configure.in: - - Added tests for ACE_HAS_BROKEN_XTI_MACROS and - ACE_HAS_BROKEN_T_ERROR. - - Updated TLI/XTI preprocessor directives in TLI/XTI related - tests. - - Fixed pthread_rwlock_t and pthread_rwlockattr_t structure - tests. Previously the tests were missing the header files to - search in. - - AIX defines _THREAD_SAFE in . Check if it is defined - after including . - - * ltcf-cxx.sh: - - Added Digital/Compaq C++ libtool support. - - Minor Sun C++ updates. - - * ace/OS.h: - - AIX defines TCP_NODELAY and TCP_MAXSEG in tiuser.h so undefine - them if ACE_HAS_BROKEN_XTI_MACROS is defined before including - tiuser.h. - - Simplified TLI/XTI related macros. - -Fri Dec 24 08:04:58 1999 Douglas C. Schmidt - - * ace: - tests: Moved ace/Auto_IncDec_T.cpp to - tests/Auto_IncDec_Test.cpp, which is where it belongs. Thanks - to David for reporting this. - -Thu Dec 23 13:57:04 1999 David L. Levine - - * include/makeinclude/rules.local.GNU: uncommented the - rules for building .o files from .C and .cc files. - They've been commented out since this file was put - under CVS control, so it's not obvious why they can't - be used. Thanks to Wei.Chiang@nokia.com for suggesting - this. - -Thu Dec 23 12:16:38 1999 Christopher Kohlhoff - - * ace: Added missing files Capabilities.cpp and Configuration.cpp - to $ACE_ROOT/ace/Makefile.bor. - - * ACE/tests: Added new tests Auto_IncDec_Test and - Capabilities_test to Makefile.bor. - - * ACE/tests: Fixed syntax error in a Borland C++Builder specific - section of Auto_IncDec_Test.cpp. - - * ACE/tests: Fixed Malloc_Test so that it does not fail with - Borland C++Builder. - - * ACE/tests/ Changed run_tests.bat so that it does not invoke - ACE_Init_Test when run with the "bor" command line - argument. This test uses MFC and need not be built or run. - -Thu Dec 23 11:46:38 1999 Douglas C. Schmidt - - * ace/OS.h: Moved - - #if defined (ACE_HAS_SYS_FILIO_H) - # include /**/ - #endif /* ACE_HAS_SYS_FILIO_H */ - - from OS.i to OS.h so that the FIONREAD macro will be defined for - the ACE_SOCK_Dgram::recv() method even if inline = 0. Thanks to - Alain Sauron for reporting this. - -Wed Dec 22 11:29:43 1999 Nanbor Wang - - * bin/auto_compile_win32.pl: Renamed ImplRepo.dsw to - ImplRepo_Service.dsw. Thanks to Derek Dominish - for reporting this. - -Wed Dec 22 08:44:56 1999 Douglas C. Schmidt - - * tests/Log_Msg_Test.cpp: Conditionally compiled the iostream - print statements so that the test builds correctly if - ACE_LACKS_IOSTREAM_TOTALLY is defined. Thanks to David Levine - for reporting this. - -Wed Dec 22 08:22:24 1999 David L. Levine - - * tests/CDR_File_Test.cpp: disabled with - ACE_LACKS_IOSTREAM_TOTALLY. - -Tue Dec 21 21:27:48 1999 David L. Levine - - * ace/config-cxx-common.h: enable ACE_LACKS_ACE_IOSTREAM - on Linux. cxx 6.3 generates unresolved streambuf symbols, - otherwise. - - * include/makeinclude/platform_linux_cxx.GNU: added. - - * include/makeinclude/platform_osf1_4.0.GNU: changed comment - now that cxx code is in ace/config-cxx-common.h. - -Tue Dec 21 08:02:43 1999 Douglas C. Schmidt - - * ace/Log_Msg.h (ACE_Log_Msg): Clarified that the - ACE_Log_Msg_Callbacks are not inherited when a new thread is - spawned. Thanks to Airat A. Sadreev - for reporting this. - -Tue Dec 21 11:31:18 1999 bala - - * ACE version 5.0.10 released. - -Tue Dec 21 01:04:55 1999 Ossama Othman - - * ACE-configuration.txt: - - Updated information about using ACE+autoconf. - - * configure.in: - - Moved AC_{EXE,OBJ}EXT tests before C++ linker flags since these - tests require C linker flags. - - * Makefile (release, releaseall): - - ACE-INSTALL should be a dependency of these targets in order for - it to be generated. This fixes a "no such file or directory" - error that occurs when making an ACE beta/release. Note that - this fix is unrelated to the ACE+autoconf bootstrapping support - that was recently added. - - * bin/bootstrap: - - Output message that lets the user know that bootstrapping is - done. - -Mon Dec 20 23:55:18 1999 Ossama Othman - - * Makefile (release, releaseall): - - Removed ACE+autoconf bootstrapping commands. Bootstrapping must - be done later in the process (i.e. in bin/make_release). - - * bin/make_release: - - Fixed MD5 checksum generation. - - Added temporary hacks to bootstrap ACE+autoconf support into the - release. - -Mon Dec 20 22:15:45 1999 Ossama Othman - - * Makefile: - - Added ACE-configuration.txt, ltcf-c.sh, ltcf-cxx.sh and - Makefile.in to the list of CONTROLLED_FILES. - - Added ACE+autoconf bootstrapping commands the release and - releaseall targets. This allows a bootstrapped ACE+autoconf - setup to be shipped with ACE, thus allowing the configure script - to work "out of the box." - - * bin/bootstrap: - - Added bootstrapping options that enable or disable certain types - of workspaces. By default, automatic dependency tracking is - disabled by default. - - * bin/make_release: - - If path to additional GNU tools is broken, default to existing - PATH and hope for the best. - - Fixed MD5 checksum generation. - -Mon Dec 20 21:14:41 1999 Ossama Othman - - * configure.in: - - Disabled maintainer mode check that prevented users from running - the configure script. - - Added experimental libtool C++ support. - - Replaced CVS directory check with top-level source directory - check to prevent stock ACE makefiles from being overwritten - during configuration. - - * ltcf-c.sh: - * ltcf-cxx.sh: - - Adding these files to the CVS repository. They will soon be - merged into the upstream libtool package. Local copies will no - longer be necessary. - - * m4/acinclude.m4: - - Alot of M4 quoting fixes/improvements. - - Reduced size ACE_CONVERT_WARNINGS_TO_ERRORS Autoconf macro. It - still needs to be refined a bit (e.g. AC_REQUIREing compiler - flag setups). - - (ACE_CHECK_SETRLIMIT_ENUM, ACE_CHECK_GETRUSAGE_ENUM): - - Added regex for one or more spaces before function name to - prevent functions such as "__getrusage" from matching the - regex. This fixes a problem on platforms that have both - "getrusage," and "__getrusage," for example. - - (ACE_CHECK_TOP_SRCDIR): - - Added this autoconf macro. It prevents ACE from being - configured in the top-level source directory. Configuring ACE - in the top-level source directory would cause the stock ACE - makefiles to be overwritten. Since autoconf support in ACE is - still in the testing stages, we need to make sure that users can - fall back on the stock ACE build procedure. This "feature" can - be overridden by using the "--enable-maintainer-mode" configure - script option. - - * m4/compiler.m4: - - Set variable "WERROR" that contains the compiler flags to - convert warnings to errors. Eventually, this support should be - moved to its own macro that is AC_REQUIREd by - ACE_CONVERT_WARNINGS_TO_ERRORS. - - * m4/features.m4 (ACE_CHECK_ASYNCH_IO): - - Minor M4 quoting fixes/improvements. - -Sun Dec 19 09:34:49 1999 David L. Levine - - * bin/g++dep: set TAO_ROOT to $ACE_ROOT/TAO if it was - unset. Thanks to Darrell for reporting that TAO_ROOT - wasn't being substituted if it wasn't set. - -Sat Dec 18 01:16:20 1999 Irfan Pyarali - - * ace/ACE.cpp (recv_i and send_i): The selection of the next - message block to send/recv was incorrect. The correct way is to - chase the continuation chain and then go to the next - continuation chain. - -Fri Dec 17 22:25:56 1999 David L. Levine - - * ace/config-cxx-common.h: added, to factor out common - configuration for Compaq cxx. - - * ace/config-osf1-4.0.h,config-linux-common.h: updated to - use config-cxx-common.h. - -Fri Dec 17 21:32:48 1999 David L. Levine - - * ace/config-linux-common.h: added support for Compaq - (Digital) cxx. Currently, that just means allowing - compilation to succeed. - -Fri Dec 17 21:29:19 1999 David L. Levine - - * ace/OS.h: use __DECCXX instead of DEC_CXX to detect that - the compiler is Compaq (Digital) cxx. DEC_CXX is - #defined in ACE config files for cxx, but __DECCXX is - #defined by the compiler. Only the latter should be used. - -Fri Dec 17 21:20:48 1999 David L. Levine - - * ace/TTY_IO.cpp (control): added static cast of TCSETS to - int to avoid cxx 6.3 warning about conversion of unsigned - int to int. Also added the cast to TCGETS. - -Fri Dec 17 14:40:02 1999 Nanbor Wang - - * ace/Local_Tokens.h (ACE_TSS_TPQ_Entry): Made the destructor - virtual to avoid warnings from egcs. - -Fri Dec 17 13:27:24 1999 Steve Huston - - * ace/config-pharlap.h: Added ACE_LACKS_TCP_NODELAY. Thanks to David - Hauck for this. Fixes bugzilla #270. - -Fri Dec 17 11:38:09 1999 Douglas C. Schmidt - - * We just reached our 800th external contributor: Andrey - Nechypurenko . Andrey gets a free copy of - ACE+TAO as a prize! - - * ace/config-linux-common.h: Wrapped the #define - ACE_DEFAULT_SELECT_REACTOR_SIZE with a #if !defined() so that - users can override this. Thanks to Charlie Duke - for suggesting this. - -Thu Dec 16 12:26:36 1999 Nanbor Wang - - * bin/auto_compile_win32.pl: Took out Concurrency Service from the - build list. - -Wed Dec 15 21:24:05 1999 Irfan Pyarali - - * ace/config-win32-common.h (ACE_DEFAULT_MAX_SOCKET_BUFSIZ): - Windows doesn't like 65536 ;-) If 65536 is specified, it is - listenly ignored by the OS, i.e., setsockopt does not fail, and - you get stuck with the default size of 8k. - -Tue Dec 14 08:57:03 1999 Vishal Kachroo - - * ace/OS.h: Added a #ifdef for WINSOCK2_GQOS for removing the - errors on NT due to the previous change in ACE_Flow_Spec class. - -Tue Dec 14 07:49:58 1999 Vishal Kachroo - - * ace/OS.i: - * ace/OS.h: Extended the ACE_Flow_Spec and ACE_QoS classes to - accommodate the use of such classes for non-Win32 - platforms. These changes are motivated by the new ACE QoS - classes that will soon be included with ACE. - -Mon Dec 13 16:23:22 1999 Nanbor Wang - - * ace/Malloc.{h,cpp}: Made print_alignment_info available for all - configuration. - -Mon Dec 13 02:49:04 1999 Nanbor Wang - - * ace/Memory_Pool.cpp (remap): Commented out the printout of remap - message in MMAP_Memory_Pool as this function is called from the - signal handler. (It didn't really cause any problem but we - shouldn't use ACE_DEBUG from signal handlers anyway.) - -Mon Dec 13 01:12:00 1999 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (update_state): make_changes() calls into - user code which can request other changes. So keep looping - until all requested changes are completed. Thanks to Edan Ayal - for reporting this problem! - -Sun Dec 12 20:10:23 1999 Nanbor Wang - - * ace/config-hpux-10.x.h: Tweaked ACE_MALLOC_PADDING, - ACE_MALLOC_ALIGN, and ACE_CONTROL_BLOCK_ALIGN_LONGS manually for - HPUX. - - * tests/Malloc_Test.cpp: Added an ACE_TEST_REMAP_ON_FAULT macro - which is not defined on linux only. Linux seems to have problem - calling mmap from within the signal handler. - -Sat Dec 11 15:00:43 1999 Nanbor Wang - - * tests/Malloc_Test.cpp (main): Alignment information should only - be printed when ACE_NDEBUG is not defined. - -Sat Dec 11 14:27:27 1999 Ossama Othman - - * ace/Makefile.am (pkginclude_HEADERS): - - Split header file list into `.h' files (HEADER_FILES) and `.i' - (INLINE_FILES). This gets around a limitation on Solaris. - -Sat Dec 11 10:40:38 1999 Nanbor Wang - - * ace/config-lynxos.h: Added ACE_HAS_TYPENAME_KEYWORD. - -Fri Dec 11 11:13:54 1999 James Hu - - * ace/Dirent.i: - Constructor with a path passed in was not initializing dirp_. - -Fri Dec 10 17:29:54 1999 Nanbor Wang - - * ace/Malloc.h: - * ace/Malloc.cpp: Added methods for both - control block. They are only available for debug version. - - * tests/Malloc_Test.cpp: Removed temporary debug print out and - changed to use . - - This test no longer forces the mmap to remap. Linux doesn't - handle the case correctly. - -Fri Dec 10 15:37:09 1999 Douglas C. Schmidt - - * ACE-INSTALL.html: Clarified how the clone procedure should - work. Thank to Jerry D. De Master - for suggesting this. - - * ace/OS.h: Changed the value of O_NDELAY from 0 to 1 on - Windows NT. Thanks to Craig Perras for - reporting this. - -Fri Dec 10 15:55:53 1999 Ossama Othman - - * ace/Configuration.cpp: - - Added a comment stating that ACE_SYNCH_MUTEX should not be used - in the template instantiations because the resulting template - instantiation for the single-threaded case already exists in - ACE. Thanks to Doug for letting me know about this. - - * m4/compiler.m4 (CXXFLAGS): - - Added missing flags that fix Sun C++ 5.0 weirdness on Solaris. - -Fri Dec 10 14:35:26 1999 Ossama Othman - - * acconfig.h (_RWSTD_NO_EXCEPTIONS): - - Sun CC 5.0 without exception support needs this macro to be - defined to prevent warnings from occurring due to its broken - header. - - * configure.in: - - Added a few "checkpoints" where the cache is saved to aid in - debugging. - - (ACE_HAS_THREAD_SPECIFIC_STORAGE): - - Added check for pthread_keycreate(). Old POSIX threads - implementations used pthread_keycreate() instead of - pthread_key_create(). - - (ACE_HAS_SIG_C_FUNC): - (ACE_HAS_THR_C_FUNC): - (ACE_HAS_THR_C_DEST): - - Added tests that check if signal handlers, thread start - routines, and thread destructors should be declared `extern - "C"'. These changes allow clean builds on Solaris 7 with Sun CC - 5.0. - - (ACE_HAS_STDARG_THR_DEST): - - Check if thread destructor argument to pthread_key_create (or - pthread_keycreate) should be of type `void(*)(...)'. - - * m4/compiler.m4 (_RWSTD_NO_EXCEPTIONS): - - Define _RWSTD_NO_EXCEPTIONS when compiling on Solaris with Sun - CC 5.0 without exceptions. - -Fri Dec 10 11:43:50 1999 Douglas C. Schmidt - - * tests/run_tests.lst: Disabled the MT_Reactor_Timer_Test - until Darrell can fix the timer queue. - -Fri Dec 10 07:24:12 1999 David L. Levine - - * ACE-INSTALL.html: on VxWorks, automatic - construction/destruction of static objects should be enabled. - Thanks to Erik Johannes for reminding - me of this. - -Thu Dec 9 17:18:57 1999 Douglas C. Schmidt - - * ace/Acceptor.cpp (handle_input): Only printout a diagnostic - message if ACE::debug () > 0. Thanks to Chris Uzdavinis - for reporting this. - -Thu Dec 9 19:55:58 1999 Ossama Othman - - * acconfig.h: - * configure.in: - - Added checks/support for the ACE_HAS_PTHREADS_UNIX98_EXT macro. - - * ace/OS.h (ACE_rwlock_t): - * ace/OS.i (rw_tryrdlock, rw_trywrlock, rw_rdlock, rw_wrlock, - rw_unlock): - - ACE_LACKS_RWLOCK_T should not imply !ACE_HAS_PTHREADS_UNIX98_EXT - because the pthread_rwlock_t type exist despite the fact that - rwlock_t doesn't. - -Thu Dec 09 15:53:20 1999 Nanbor Wang - - * ace/Malloc.cpp: - * ace/Malloc.h: - * ace/Malloc.i: Separated the control block implementation into - "position independent control block" and "lean and mean control - block." Each control block implementation has its own - definitions of Malloc_Header and Name_Node as inner classes. - ACE_Control_Block implements the "old, lean and mean" control - structure for ACE_Malloc_T and ACE_PI_Control_Block implements - the "new, position independent" control structure for - ACE_Malloc_T. - - Added several macros to finer control the padding and alignment - because calculating the padding requires using some operations - that can not be evaluated during the compile time and the - original padding length calculation don't always work. Usually, - you don't have to worry about the padding. But if you are - interested in tweaking these parameters, here are some hints. - - - (ACE_MALLOC_PADDING): defines the minimum size of a Malloc_Header. - The actual size of Malloc_Header should always be the a multiple - of ACE_MALLOC_ALIGN and may be larger then ACE_MALLOC_PADDING. - - - (ACE_MALLOC_PADDING_SIZE): define the actual size of the array - of long used to pad the ACE_Control_Block::ACE_Malloc_Header. - If it is not defined by the user, ACE will try to calculate it - for you. If it is defined as 0, there'll be no padding at all. - This macro is compiler/platform dependent. - - - (ACE_CONTROL_BLOCK_ALIGN_LONGS): define the actual size of the - array of long used to pad the ACE_Control_Block so that the - first Malloc_Header always starts from the alignment boundary. - If it is not defined by the user, ACE will try to calculate it - for you. If it is defined as 0, there'll be no padding at all. - This macro is compiler/platform dependent. - - - (ACE_PI_MALLOC_PADDING_SIZE): similar to ACE_MALLOC_PADDING_SIZE - but applied to ACE_PI_Control_Block::ACE_Malloc_Header. - - - (ACE_PI_CONTROL_BLOCK_ALIGN_LONGS): similar to - ACE_CONTROL_BLOCK_ALIGN_LONGS but applied to - ACE_PI_Control_Block. - - * ace/Malloc_T.cpp: - * ace/Malloc_T.h: - * ace/Malloc_T.i: Parameterized the type of control block used in - ACE_Malloc, which is now renamed to ACE_Malloc_T, as a template - parameter so that we can control tradeoff between efficiency and - flexibility. - - Another ACE_Malloc template class was added which simply use - ACE_Malloc_T with ACE_Control_Block as its internal control - structure so that we don't have to change the existing programs - using ACE_Malloc. However, for platforms/compilers using - explicit template instantiation, you still need to add the - instantiations for the based template class. For example, if - you instantiated "ACE_Malloc", you'll need to add - "ACE_Malloc_T". Likewise for - ACE_Malloc_LIFO_Iterator and ACE_Malloc_FIFO_Iterator. - - * ace/Based_Pointer_T.h: Renamed arguments "overload" to "o". KCC - complained about using "overload" as variable names - - * ace/Configuration.cpp: - * ace/Naming_Context.cpp: - * ace/Service_Config.cpp: - * ace/System_Time.cpp: - * ace/Template_Instantiations.cpp: - * docs/tutorials/021/client.cpp: - * docs/tutorials/021/server.cpp: - * examples/Reactor/Misc/demuxing.dsp: - * examples/Shared_Malloc/Malloc.cpp: - * examples/Shared_Malloc/test_persistence.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: - * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: - * performance-tests/TCP/TCP.dsp: - * tests/Malloc_Test.cpp: - * tests/SV_Shared_Memory_Test.cpp: Added explicit template - instantiations for base malloc class in corresponding with the - above change. - -Thu Dec 09 15:40:03 1999 David L. Levine - - * ace/OS.i (mmap): on LynxOS, fixed use of file_mapping - argument. It it was 0, set it equal to the address of - an int on the stack. Thanks to Chad Elliott - for reporting a problem with - ACE_OS::mmap on LynxOS. And thanks to Chad for an - explanation of why Malloc_Test and TAO's Naming_Service -f - don't work: it's because they require that the mapped - object be changed. LynxOS 3.0.x and earlier don't support - that. - -Thu Dec 09 07:30:12 1999 David L. Levine - - * Makefile (CONTROLLED_FILES): added ChangeLog-99a. Thanks - to Pierre Oberson for reporting - that it was missing. - -Wed Dec 8 13:36:59 1999 Ossama Othman - - * configure.in (ACE_SYS_RESTARTABLE_SYSCALLS): - - Disabled ACE_SYS_RESTARTABLE_SYSCALLS test. On platforms where - it detects restartable system calls, it defines - ACE_HAS_SIGNAL_SAFE_OS_CALLS. This causes the ACE_OSCALL* - macros in OS.h to use "ACE_LOG_MSG->restart()" before - ace/Log_Msg.h is included, ending up in ACE_LOG_MSG being an - unknown macro. Currently, none of ACE's supported platforms - actually define ACE_HAS_SIGNAL_SAFE_OS_CALLS so disabling this - test okay for now. - - * ace/OS.i (ioctl): - - Commented out ACE_DEBUG call. ACE_OS should not depend on - ACE_Log_Msg in any way. - -Wed Dec 8 10:15:20 1999 Douglas C. Schmidt - - * bin/clone.cpp: The definition of mk_symbolic_link() was - missing the third argument 'int level'. Thanks to Jerry De - Master for reporting this. - - * ace/Synch.h: Added comments to ACE_Thread_Mutex_Guard and - ACE_Null_Mutex_Guard explaining that they were obsolete and - should be replaced by ACE_Guard and - ACE_Guard, respectively. Thanks to Pierre - Oberson for reporting this. - -Tue Dec 7 22:53:01 1999 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp (send): Clarified that - *someday* we'll improve the implementation to queue data when a - connection is lost and automagically reinitiate the connection. - Thanks to David X Callaway for - motivating this. - -Tue Dec 07 22:14:15 1999 David L. Levine - - * docs/ACE-guidelines.html: added a guideline about signal - handlers. - -Tue Dec 7 21:39:42 1999 Douglas C. Schmidt - - * ace/OS.i: Fixed the definition of ACE_NETDBCALL_RETURN so that - - memcpy (TARGET,ace_result_,SIZE); - - is changed to - - memcpy (TARGET,ace_result_, - SIZE < sizeof(TYPE) ? SIZE : sizeof(TYPE)); - - This fixes a bug with UnixWare. Thanks to Phil Mesnier - for reporting this. - -Tue Dec 07 21:20:37 1999 Nanbor Wang - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Added ace.rc to project files. One can use - GetFileVersionInfo on Win32 to get the ACE library version info - now. Thanks to David Hauck for - suggesting this. - -Tue Dec 07 15:27:24 1999 David L. Levine - - * docs/ACE-guidelines.html: added guideline to use THR_BOUND - for time-critical threads. Thanks to Marina for reminding - me about this, and for running some experiments on Solaris - that demonstrate that it's necessary (and really works :-). - -Tue Dec 07 13:25:53 1999 Nanbor Wang - - * ace/Based_Pointer_T.{h,cpp}: Added two constructors that take a - base pointer for base_offset_ calculation. They can be used - when we already know the base address of the pointer to avoid an - extra lookup from the Based_Pointer_Repository. - - * ace/Malloc_T.i (init_malloc_header_ptr): Changed to initialize - the pointer using the address of control block. Notice that - the address of the control block should never change during the - lifetime of ACE_Malloc. - - Thanks to Irfan for noticing the performance issue. - -Mon Dec 06 21:16:53 1999 Irfan Pyarali - - * ace/SOCK_Dgram.cpp (send): Added missing timed send. - Thanks to Yuval Yosef for motivating this. - - * ace/SOCK_IO.h (ACE_SOCK_IO): Most methods now support an - optional timeout parameter. - - * ace/SOCK_Stream.h (ACE_SOCK_Stream): All methods now support an - optional timeout parameter. Also fixed the parameter type - in recv_urg and send_urg to be size_t instead of int. - - * ace/ACE: - - - All the I/O function were made consistent in ACE. This - included matching send and recv functions, all of which now - support timeouts. - - - Many of the timed functions, e.g., ACE::readv() and - ACE::sendto(), were changed such that the case - was made common between the code that expected OS provided timed - functions and the other where the timed function was simulated - by ACE. - - - Certain file I/O operation were made simple by removing the - extra parameter. Timeouts are not supported in file - I/O. In some cases, e.g., the timed writev and readv functions, - the function was removed since it was not necessary as taking - the parameter made it redundant with the function in - ACE_OS. - - - The "_n" methods were given a performance boost when they are - used with timeouts. We only set the handle into non-blocking - mode only once rather than for every iteration in the loop. - - - Added send/recv/send_n/recv/recv_n methods that take a message - block as the data container. - - - Here is the description of the updated functions from the - documentation: - ________________________________________ - - The parameter in the following methods indicates how - long to blocking trying to transfer data. If == 0, - then the call behaves as a normal send/recv call, i.e., for - blocking sockets, the call will block until action is possible; - for non-blocking sockets, EWOULDBLOCK will be returned if no - action is immediately possible. - - If != 0, the call will wait until the relative time - specified in * elapses. - - Errors are reported by -1 and 0 return values. If the operation - times out, -1 is returned with . If it succeeds - the number of bytes transferred is returned. - - The "_n" I/O methods keep looping until all the data has been - transferred. These methods also work for sockets in - non-blocking mode i.e., they keep looping on EWOULDBLOCK. - is used to make sure we keep making progress, i.e., - the same timeout value is used for every I/O operation in the - loop and the timeout is not counted down. If the transfer times - out, the number of bytes transferred so far are returned. - - Methods with parameter are I/O vector variants of the - I/O operations. - ________________________________________ - - * ace/config-win32-common.h: Set IOV_MAX on Win32 to be 1024. It - seems like Win32 does not have a limit on the number of buffers - that can be transferred by the scatter/gather type of I/O - functions, e.g., WSASend and WSARecv. We are arbitrarily - setting this to be 1k for now. The typically use case is to - create an I/O vector array of size IOV_MAX on the stack and then - filled in. Note that we probably don't want too big a value for - IOV_MAX since it may mostly go to waste or the size of the - activation record may become excessively large. - - * ace/OS: - - The "faked" readv() in ACE for operating systems without it was - calling read_n(). This was changed to call read() since readv() - makes no guarantee that everything requested will be read. Same - changes applied for writev(). - - send_n() does not belong in the OS class. It belongs in the ACE - class. Therefore, it was moved. - - read_n() is only called for file handles (and not for socket - handles). Therefore, there is no point in checking for - EWOULDBLOCK. Same change was made to write_n(). - - * ace/Handle_Set.h (ACE_Handle_Set): Added an explicit fdset() - function to get to the fd_set *. This eliminates the need for - the stupid cast operator. - -Mon Dec 6 21:13:08 1999 Douglas C. Schmidt - - * ace/Configuration.cpp (set_string_value): When setting a value - in the registry, the specified length must include the NUL - terminating character. Thanks to Chris Hafey - for reporting this. - -Mon Dec 6 11:06:43 1999 Ossama Othman - - * m4/acinclude.m4 (ACE_TRY_COMPILE): - - Make choice of compiler flags to use dependent on the current - autoconf test language. This fixes a problem with C++ compiler - flags potentially passed as C flags to libtool. - - (ACE_USE_TEMP_FILE): - - Added checks for existing files that should be directories and - vice versa. - - If the file passed as argument is in a directory and the - directory doesn't exist then create the directory. In order to - be as general as possible a script fragment was implemented with - the same functionality as "mkdir -p" because "mkdir -p" may not - be portable. - - * m4/threads.m4 (ACE_SEARCH_THREAD_FLAGS): - - Make choice of compiler flags to use dependent on the current - autoconf test language. This fixes a problem with C++ compiler - flags potentially passed as C flags to libtool. - -Mon Dec 06 08:25:22 1999 David L. Levine - - * include/makeinclude/platform_sunos5_sunc++.GNU: added more - comments about support of 64-bit binaries with Sun CC 5.0. - Thanks to Dani Flexer for - providing them. - -Mon Dec 6 07:55:05 1999 Douglas C. Schmidt - - * ace/config-sunos5.7.h: Added several new #defines needed to - port ACE to 64 bit Solaris. Thanks to Dani Flexer - for these. - - * ace/ACE.cpp: Changed the implementation of count_interfaces() - to handle the fact that size_t is a 64 bit type but the - parameter to ioctl needs to be an int, which according to LP64 - is 32 bits. Thanks to Dani Flexer - for reporting this. - - * netsvcs/lib/Client_Logging_Handler.cpp (handle_signal): - If SIGPIPE occurs, ACE_Client_Logging_Handler::handle_signal() - returns -1, thus removing svc handler from reactor. Since svc - handler is implemented as a singleton here, all next incoming - SPIPE connections operate on object that is already destroyed -> - SIGSEGV/SIGBUS. Therefore, we now return 0 in handle_signal(). - Thanks to Alexander Dergatch for reporting - this. - - * netsvcs/lib/Server_Logging_Handler_T.cpp (svc): The following - loop - - while ((result = this->handle_input ()) > 0) - continue; - - causes server thread to leave its execution loop, because - handle_input() always returns 0 or -1. This should be replaced - with - - while ((result = this->handle_input ()) == 0) - - Thanks to Alexander Dergatch for reporting - this. - -Sun Dec 05 21:54:47 1999 David L. Levine - - * ace/Dump.cpp (ACE_ODB ctor): initialize current_size_ - data member, so that examples/misc/test_dump will pass - on MSVC 6.0/NT 4.0, at least. Thanks to Soren Ilsoe - for reporting this. - -Sun Dec 5 16:50:37 1999 Ossama Othman - - * ace/OS.h: - - Some compilers were picky about the circular dependency fix. - Moved inclusion of ace/Log_Msg.h after ace/OS.i yet again. - -Sat Dec 04 21:14:37 1999 Nanbor Wang - - * tests/Malloc_Test.cpp (init_test): Need to call init_acquire to - make sure the old mapfile does get removed. - - Added more printout items in the normally disabled debug - section. - -Sat Dec 04 19:45:49 1999 Nanbor Wang - - * ace/Memory_Pool.cpp: Conditionally bind/unbind the - Pagefile_Memory_Pool with the Based_Pointer_Repository depends - on whether position independent pointers are used or not. - -Sat Dec 4 16:59:08 1999 Ossama Othman - - Circular dependency fixes/updates: - - * ace/OS.h: - - Include "ace/Log_Msg.h" before "ace/OS.i" because the methods in - ACE_OS depend on ACE_Log_Msg for output and error reporting. - - * ace/Log_Record.h: - - Include "ace/OS.h" instead of "ace/ACE.h." OS.h is needed to - pull in the definition of ACE_Export. ACE.h was overkill. This - change is at the core of the circular dependency fix. - - * ace/Log_Record.cpp: - - Include "ace/ACE.cpp" to pull in definition of ACE::log2(). - - The above changes made the following changes necessary. They also - corrected an annoying circular dependency problem that was - occurring when using an automatically generated ace/config.h. The - below changes are actually legitimate fixes since the source files - in question unnecessarily relied on other headers to pull in ACE - class definitions. - - * ace/DLL.cpp: - - Include "ace/ACE.h" because ACE_DLL::open() uses ACE::ldfind(). - - * ace/Functor.h: - - Include "ace/ACE.h" instead of "ace/OS.h" because - "ace/Functor.i" needs the hash functions in the ACE class. - - All of the above changes nicely reduced the number of source files - that depend on ace/ACE.{h,i}! - - * ace/Makefile: - * apps/gperf/src/Makefile: - - Updated dependencies. - -Fri Dec 3 21:51:38 1999 Nanbor Wang - - * ace/Malloc_T.cpp (shared_malloc): Changed the for loop to - while(1) so the compilers can identify the control will never - fall off the end of the loop and apply ACE_NOTREACHED to the - final return statement. - -Fri Dec 03 12:14:31 1999 Nanbor Wang - - * ace/Malloc_T.i (init_malloc_header_ptr): Applied ACE_UNUSED_ARG - when we are not using position independent pointers. - - * ace/Malloc_T.cpp (shared_malloc): Split the structural exception - try block into two to avoid warnings from the OSF compiler. - Thanks to David for reporting this. - -Thu Dec 2 22:42:53 1999 James Hu - - * ace/TP_Reactor.cpp: - Instead of setting suspend_set_ and wait_set_ both all the time, - try to determine whether or not the handler is suspended and - choose one of the sets to do the bit_ops on. - -Thu Dec 2 22:41:53 1999 Yamuna Krishnamurthy - - * ace/OS.i: - Added the bug fix to the SIO_GET_QOS call in ACE::ioctl () for - RC2 release. This involved removing explicit buffer allocation - for the provider specific buffer and just allocating one - contiguos buffer for the QOS structure. - -Thu Dec 02 18:16:27 1999 James Hu - - * ace/Filecache.cpp: Make it possible to remove something from - the Filecache. - -Thu Dec 02 18:03:27 1999 Nanbor Wang - - * tests/Malloc_Test.cpp (parent): Before binding the name "bar", - do a series of small malloc and a huge malloc to make sure the - child process will segfault and the remapping is tested on the - child process. - - * ace/Memory_Pool.h: - * ace/Memory_Pool.cpp: Added a no-op method to - Local_Memory_Pool because we might call remap from ACE_Malloc on - Win32. - - (Win32 only) Added a new function that takes a - pointer to an EXCEPTION_POINTERS and is responsible to determine - if remapping of the memory map file is required or not. - - * ace/Malloc_T.h: - * ace/Malloc_T.i (init_malloc_header_ptr): Added a new inline - function which simply initializes a (position independent) - pointer pointing to a Malloc_Header. This is required because - the placement new in this function makes MSVC think we are - creating a new object and disallow the use of ACE_SEH_TRY in - functions that use placement new. - - * ace/Malloc_T.cpp: Added the use of ACE_SEH_TRY in several - ACE_Malloc::shared_* methods so we can catch the potential - access violations and force remapping of memory maps. On UNIX, - this is done thru in Memory_Pool. - -Thu Dec 2 09:17:02 1999 Douglas C. Schmidt - - * ace/config-win32-borland.h: Apparently, the Borland BC4 compiler - lacks operator placement delete, so I added #define - ACE_LACKS_PLACEMENT_OPERATOR_DELETE to handle this case. Thanks - to Mike Gingell . - -Wed Dec 1 22:26:06 1999 Douglas C. Schmidt - - * tests/MM_Shared_Memory_Test.cpp: Make sure to force the test - to use System V Semaphores if the OS platform supports POSIX - semaphores natively (since these don't have the right semantics - for this test). Thanks to Steve Huston for reporting this bug. - This fix should clear BUG ID 382. - -Wed Dec 01 06:16:34 1999 Nanbor Wang - - * ace/Malloc.h (ACE_MALLOC_PADDING): Restored default value to 1. - Added a new macro ACE_MALLOC_HEADER_SIZE which serves the same - function as ACE_MALLOC_PADDING (both specify the minimum malloc - header size) but ACE_MALLOC_HEADER_SIZE is normalized to be - multiple of ACE_MALLOC_ALIGN. - - (ACE_CONTROL_BLOCK_ALIGN_LONGS): Changed back to use - ACE_MALLOC_ALIGN to calculate the starting malloc header - alignment. - - * tests/Malloc_Test.cpp: Expanded the memory offset between parent - and child mmap base address so there'll be no overlap even when - we use a larger ACE_MALLOC_PADDING. - -Wed Dec 1 02:10:51 1999 Douglas C. Schmidt - - * tests/Auto_IncDec_Test.cpp: The main() function was missing - a return type. Also, don't run the test with output logged to - stderr. Thanks to David Levine for reporting this. - -Tue Nov 30 16:11:52 1999 Steve Huston - - * tests/run_tests.sh: Made the check for libDLL_Test use a - configurable suffix rather than hardcoded .so so it works on - platforms like HP-UX (which uses .sl). - -Tue Nov 30 14:24:31 1999 Ossama Othman - - * acconfig.h: - - Minor cosmetic updates. - - * configure.in: - - Only enable POSIX semaphore support if process shared semaphores - are supported. Presumably process shared semaphores are only - available if the _POSIX_THREAD_PROCESS_SHARED macro is defined - by the platform. [Bug 304] - -Tue Nov 30 00:22:48 1999 Nanbor Wang - - * tests/Malloc_Test.cpp: Changed to store the mmap allocator in an - auto_ptr instead of as a static object so we can be absolutely - sure about the creation order. - - Added an init_test method which creates a mmap memory pool and - releases it immediately to make sure the test won't - crash/deadlock due to previous crashes. - -Mon Nov 29 16:36:06 1999 Nanbor Wang - - * ace/Malloc.h (ACE_MALLOC_PADDING): Changed the default value of - ACE_MALLOC_PADDING to 16 to avoid some some alignment problem. - - Fixed the padding size calculation in ACE_Malloc_Header. - - * tests/Malloc_Test.cpp (main): Added some debug printout which is - commented out for now (they are not used for regular test.) - -Mon Nov 29 14:34:16 1999 Ossama Othman - - * ace/config-win32-borland.h: - * ace/config-win32-common.h: - - The ACE_HAS_BROKEN_IMPLICIT_CONST_CAST macro I previously - removed is used in TAO's IDL_Test. Thanks to Jeff for pointing - this out. - - * ace/OS.i (sema_init): - - The call to sem_init() for the process shared case incorrectly - used USYNC_THREAD for the second argument. For the - USYNC_PROCESS case, the second argument to ::sem_init() should - be "type == USYNC_PROCESS" since it will evaluate to "1" in this - case. A conditional is used since some platforms may not define - USYNC_PROCESS to be a non-zero value. - -Mon Nov 29 12:15:56 1999 Douglas C. Schmidt - - * tests/Auto_IncDec_Test.cpp: Updated this test to use multiple - threads, if available. Thanks to Edan Ayal for - this. - -Mon Nov 29 11:47:55 1999 Ossama Othman - - * ace/OS.h: - - Backed out the inline related changes I made. Some compilers - have a problem with them. - -Sun Nov 28 20:03:03 1999 Ossama Othman - - * ace/OS.i (sema_init): - - According UNIX Network Programming V2 by Stevens, sem_init() is - currently not required to return zero on success, but it *does* - return -1 upon failure. For this reason, check for failure by - comparing to -1, instead of checking for success by comparing to - zero. - -Sun Nov 28 19:05:31 1999 Nanbor Wang - - * ace/Process_Manager.cpp (open): Fixed an ASYS_TEXT usage. - ASYS_TEXT can not enclose several string literals. - -Sun Nov 28 18:09:49 1999 Ossama Othman - - * m4/acinclude.m4 (ACE_USE_TEMP_FILE): - - Check that the source directory is not the current directory - before moving a file in the current directory out of the way. - Previously an attempt to move the same file out of the way was - performed to twice. - -Sun Nov 28 17:06:00 1999 Ossama Othman - - * acconfig.h: - - Added ACE_HAS_POSITION_INDEPENDENT_MALLOC macro. - - * configure.in: - - Dropped AC_ISC_POSIX macro in favor of an AC_CHECK_LIB strerror - test. - - Disabled exception handling support by default. - - Added "--enable-pi-malloc" configure script option to - enable/disable ACE's position independent malloc feature. By - default, this feature will be enabled. - - Added a run-time test for sem_open(). glibc() apparently - defines a stub for this function in the pthread library but - there is no entry in for it. As such, the - configure script assumed that it is a working function. It - turns out it is not (on Linux with glibc <= 2.1.2). - - Generalized/improved setrlimit and getrusage tests that check if - the first argument is an enum. The tests now determine exactly - what the enum type is. Previously, the test was specific to - Linux/glibc platforms. - - Fixed some tests that didn't initialize a const variable before - it was used. - - Added a test that checks the integrity of the generated - configuration. The test attempts to compile ace/OS.cpp. If it - fails then the rest of ACE won't compile, indicating that the - automatic configuration wasn't successful. Upon failure, some - diagnostic information is output, and a request to submit a bug - report is made. - - Flush the cached configuration test results to the cache file. - This is mainly useful for configure script debugging purposes. - - * ace/Log_Msg.h (ACE_Log_Msg): - - Added additional spaces before comments describing each format - specifier since the single quote "'" at the beginning of each - description was interpreted as a troff comment. Thanks to Kevin - Dalley for pointing this out and suggesting a fix. - - * ace/OS.h: - - Consolidated some ACE_INLINE macro preprocessor conditionals. - - Moved inclusion of Log_Msg.h and OS.i to the end of the file in - case some declarations or definitions found earlier in OS.h are - ever needed in the future by these two files. - - * ace/Trace.h: - * ace/Trace.cpp: - - Removed inclusion of Log_Msg.h from Trace.cpp and included OS.h - in Trace.h. OS.h is needed for the definition of ACE_Export. - - * ace/config-win32-borland.h: - * ace/config-win32-common.h: - - Removed ACE_HAS_BROKEN_IMPLICIT_CONST_CAST macro. This macro - isn't used anywhere in ACE or TAO. - - * ace/Makefile: - - Updated dependencies. - - * bin/am_edit: - - This script is generates IDL source file targets and - dependencies in Makefile.in files. It is essentially the same - script that the KDE developers use for their IDL sources except - that it is has been customised for TAO_IDL generated sources. - Thanks to Stephan Kulow for pointing out the - availability of this script. - - * bin/make_release: - - Archive list should be concatenated instead replaced. This list - is currently only used by the MD5 checksum generation support. - - * bin/generate_html_windex: - - Created this script to generate the acewindex.html file. It - generates the acewindex.html directly from the man pages instead - of an intermediate windex file. Some platforms don't have a - "catman -w" equivalent command since the man database is - generated automatically by the OS (e.g. Debian GNU/Linux). This - script allows the acewindex.html file to be generated on such - platforms. The windex file (not acewindex.html) isn't generated - but this typically isn't a problem since it is not the ACE - install system's responsibility to (re)generate a windex file at - install time. It is up to the sysadmin to do so. Thanks to - Kevin Dalley for motivating the creation of - this script. - - * bin/bootstrap: - - The list of ROFF and HTML man pages is now automatically - generated and inserted into the appropriate Makefile.am file in - this script. This allows the removal of the non-portable - "$(shell ...)" expression from the Makefile.am files. It also - improves build performance in the man directories since the list - is only evaluate at bootstrap time instead of each time the - directory is built. - - * man/Makefile.am (acewindex.html): - - Use the newly created `generate_html_windex' script to create - the acewindex.html file since not all platforms support "catman - -w" windex file generation. - - * man/html/Makefile.am (html_DATA): - * man/man3/Makefile.am (man_MANS): - - Removed the commands that generate the man pages lists. The - `bootstrap' script now takes care of substituting what each of - the Makefile.am variables should contain. - - * m4/acinclude.m4: - - Improved ACE_USE_TEMP_FILE macro. It now checks for the - existence of a file with the same name as the temporary file in - the current directory, in addition to the top-level source - directory. - - Moved the setrlimit and getrusage enum tests into Autoconf - macros in this file. The macros are ACE_CHECK_SETRLIMIT_ENUM - and ACE_CHECK_GETRUSAGE_ENUM. - - Fixed AC_SYS_RESTARTABLE_SYSCALLS and added it to this file. - The patched version compiles and runs, whereas the existing/old - version doesn't even compile on some platforms. The - AC_SYS_RESTARTABLE_SYSCALLS test is broken in GNU Autoconf - 2.13. I use this test to determine if the - ACE_HAS_SIGNAL_SAFE_OS_CALLS macro should be defined for ACE. I - patched it so that it works, at least platforms that expect a - signal handler that expects an int argument. - - * m4/subsets.m4: - - Disable building of all subset libraries by default. - -Sun Nov 28 09:45:36 1999 Darrell Brunsch - - * netsvcs/lib/Logging_Strategy.cpp: ACE_Logging_Strategy::fini () - now returns a value. - -Sun Nov 28 02:41:02 1999 Nanbor Wang - - * tests/Reactor_Notify_Test.cpp (run_test): Only print out the - error message when the notification pipe is not disable. - Otherwise, when the notification pipe gets disabled, the event - loop depends purely on the OS scheduling policy to determine how - many times to gets to run. Since the Supplier_Task removes - itself from the reactor, there could be no active event handler - available in the reactor when the gets called if - the task finishes before the event loop - has a chance to finish its iterations. Another way to solve - this is to add a thr_yield after every notification but that - seems to defeat the intention of the test. Thanks to Ivan - Murphy for reporting the false error output. - -Sat Nov 27 22:06:26 1999 Nanbor Wang - - * ace/OS.cpp: Defined ACE_ENDTHREADEX and ACE_BEGINTHREADEX to use - ExitThread and BeginThread for WinCE 2.11 and above. Thanks to - Peter C. Chien for the tip. - - * ace/ace_ce_dll.dsp: Reworked for WinCE 2.11. More - configurations are added and the distributed token related files - are removed from the project. - - * ace/OS.{h,cpp}: WinCE 2.11 and above does implement exit method - so we don't need to provide our own for them. - - * ace/config-WinCE.h: Updated configuration settings for WinCE - 2.11. - - * ace/Memory_Pool.{h,i}: Added the method for - accessing the base address information of the memory pool. - -Sat Nov 27 18:36:48 1999 Douglas C. Schmidt - - * tests/Priority_Buffer_Test.cpp (consumer): Revised the test - so that it doesn't bother to check the priority in the - ACE_ASSERT macro if we're sending a shutdown message. Thanks to - Ivan Murphy and Darrell Brunsch for narrowing this down. - -Thu Nov 25 13:32:00 1999 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp (parse_args): Make sure - to free() the host or logger key before calling strdup()! - - * netsvcs/lib/Logging_Strategy.cpp (parse_args): Fixed up this - code so that we correctly allocated and deallocate filename_ - using strdup()/free() to prevent weird memory problems. Thanks - to Alexander Dergatch for reporting this. - -Sat Nov 27 15:01:44 1999 Carlos O'Ryan - - * ACE version 5.0.9 released. - -Sat Nov 27 14:59:27 1999 Carlos O'Ryan - - * bin/make_release: - There was a non-scoped variable. - -Thu Nov 25 13:24:37 1999 Darrell Brunsch - - * tests/Capabilities_Test.cpp: Changed a variable from - int to ACE_HANDLE. - -Thu Nov 25 02:17:34 1999 Nanbor Wang - - * ace/Malloc.h: Added back some apparent bug fixes during the - alignment change. - -Thu Nov 25 01:41:33 1999 Nanbor Wang - - * ace/Malloc.h: Removed the alignment change for now. - -Wed Nov 24 14:41:14 1999 Nanbor Wang - - * ace/Process.i (wait): Changed to use the process handle to wait - for process termination. - - * ace/OS.h: - * ace/OS.i (wait,waitpid): Added an extra argument that takes the - process handle of the waited process. On Win32, is - ignored if the is not equal to 0. Passing the process - is prefer on Win32 because using to wait on the - project doesn't always work correctly if the waited process has - already terminated. - -Wed Nov 24 08:30:52 1999 Douglas C. Schmidt - - * examples/Shared_Malloc/test_malloc.cpp (malloc_recurse): Fixed - the AMS macro to be ACE_MALLOC_STATS. Thanks to David Levine - for reporting this. - -Tue Nov 23 12:47:39 1999 Douglas C. Schmidt - - * ace/Malloc.h: Modified the definition and use of - ACE_MALLOC_PADDING_SIZE so that it works correctly and the code - that uses it compiles... Thanks to Alexander Belopolsky - for reporting this. - - * ace/Malloc: Replaced the AMS macro, which polluted the global - namespace, with ACE_MALLOC_STATS, which doesn't... Thanks to - Alexander Belopolsky for reporting - this. - - * ace/OS.h: Modified ACE_MIN macro so that it uses the > operator to - be consistent with the ACE_MAX macro. Thanks to Derek Dominish - for reporting this. - - * tests/Malloc_Test: Updated the Malloc_Test so that it'll - allocate and test doubles to make sure they work correctly. - - * ace/Malloc.h: Modified the alignment logic to make things - work properly for datatypes like doubles. Thanks to Alexander - Belopolsky for working this out. - -Tue Nov 23 12:02:53 1999 Douglas C. Schmidt - - * ace/OS.i: Moved the inline methods for sec()/usec()/msec() so - that are defined *before* they are used... - -Tue Nov 23 11:34:40 1999 Nanbor Wang - - * tests/Malloc_Test.cpp (myallocator): Applied ACE_TEXT to several - malloc argument. Thanks to Ivan Murphy for reporting this. - -Tue Nov 23 11:06:13 1999 Nanbor Wang - - * tests/CDR_File_Test.cpp (run_test): Changed to - LPCTSTR so the test compile with UNICODE. Thanks to Ivan Murphy - for reporting this. - -Mon Nov 22 18:02:19 1999 Irfan Pyarali - - * ace/Strategies_T.cpp: - * ace/Cached_Connect_Strategy_T.cpp: - - There was a strange interaction in - find_or_create_svc_handler_i() because of these two changes: - - Fri Nov 12 00:30:41 1999 Irfan Pyarali - - and - - Mon Jul 19 22:46:54 1999 Irfan Pyarali - - Basically, was assigned to the newly created svc_handler. - It had, however, not been added to the connection map nor had it - been assigned a hint or recycler, i.e., it was partially - initialized. - - However, we let go of the connector lock during the OS level - connect call, hence exposing the partially initialized - svc_handler to other threads. - - The solution is to use a temporary variable until the - svc_handler is completely initialized. After this we can assign - to . Note that making a new svc_handler, - connecting remotely, binding to the map, and assigning of the - hint and recycler should be atomic to the outside world. - -Mon Nov 22 17:06:34 1999 Darrell Brunsch - - * bin/auto_compile_win32.pl: Changed the project file for - ImplRepo_Service. Thanks to Derek Dominish - for pointing this out. - -Mon Nov 22 14:15:23 1999 Douglas C. Schmidt - - * examples/Configuration/config_test.cpp: ACE-ified this example. - - * ace/OS.i: Replaced all the uses of ACE_Time_Value private methods - within the overloaded global relational operator to use inline - methods. This change should work around bugs with MSVC++. - Thanks to Alok Gupta for reporting - this. - - * ace/Service_Config.cpp (parse_args): Reverted the behavior - of parse_args() so that it doesn't return an error when it runs - across an option that it doesn't recognize. This is necessary - to support certain use-cases where the Service Configurator is - part of an application-specific configuration process. We do, - however, print a warning message if ACE::debug() > 0. Thanks to - Ivan Murphy for reporting this and - suggesting a fix. - -Sat Nov 20 10:16:07 1999 Douglas C. Schmidt - - * ace/Configuration.cpp: Moved DEFBUFSIZE into the Win32-specific - part of the code and changed the name to ACE_DEFAULT_BUFSIZE so - that it won't conflict with any global names. Thanks to David - Levine for reporting this. - -Fri Nov 19 17:25:13 1999 Douglas C. Schmidt - - * ace: Double checked that ACE builds correctly when threads are - disabled. - - * ace/Local_Tokens.cpp (client_id): Had to futz with the code - a bit to get it to work for both the threaded and non-threaded - case. - - * ace/Activation_Queue.h: Added a #define of ACE_Activation_List - to ACE_Activation_Queue to be compatible with the terminology - used in the POSA2 book! - - * ace/Message_Queue_T: Moved message_bytes(size_t) and - message_length(size_t) from the *.i file to the *.cpp file to - workaround bugs with SunC++ 5.0. Thanks to Rick Weisner - and John Tucker - for reporting this problem and providing - the fix. - - * ace/Configuration.cpp: There were inconsistencies in the explicit - template instantiations where ACE_Thread_Mutex should have been - ACE_SYNCH_MUTEX so that the code will work when threading is - disabled. In addition, we must be careful to conditionally - compile certain ACE_Allocator<> and ACE_Malloc<> template - instantiations since they are only valid when ACE_HAS_THREADS is - defined. - - * include/makeinclude/platform_irix6.x_sgic++.GNU, - * ace/Local_Tokens, - * ace/Synch_T.i: - Made a number of minor changes so that ACE will compile/work - when threading is not enabled. Thanks to Extern Chatterji - for reporting this. - - * ace/Message_Block.h: Clarified the comment for space(). - Thanks to Eric Newton for reporting this. - -Fri Nov 19 02:21:11 1999 Darrell Brunsch - - * ace/Configuration.h: - * ace/Configuration.cpp: - Altered the Unicode macros used so it compiles in the two - Unicode configurations. Thanks to Ruibiao Qiu - for noticing this. - -Thu Nov 18 22:49:09 1999 David L. Levine - - * tests/run_tests.lst: DISABLED Process_Manager_Test - because it fails on Solaris and HPUX_aCC. - -Thu Nov 18 20:47:49 1999 Krishnakumar Elakkara Pathayapura - - * THANKS: added Marcelo Matus - -Thu Nov 18 19:44:04 1999 David L. Levine - - * ace/OS.i (ACE_TSS_Emulation::tss_base,ts_object): on VxWorks, - if ACE_VXWORKS_SPARE is 0, allocate a TSS array (and - zero it out) in tss_object () instead of tss_base (). - This allow tss_base () to still be used on the left-hand - side. The only way that tss_base () should be called - on VxWorks with 0 ACE_VXWORKS_SPARE is through ts_object (). - Thanks to Dave Steele and - Dale Wood for further discussion and - insight. - -Thu Nov 18 19:20:16 1999 Ossama Othman - - * ace/OS.h (SEM_FAILED): - - Changed SEM_FAILED from ((sem_t *) 0) to ((sem_t *) -1). - Although it makes more sense to have a zero fail value, it - appears that many OSes are still brain damaged enough to use -1 - instead. This change is consistent with what ACE expected as - the sem_open() fail value prior to my updates. - -Thu Nov 18 16:37:55 1999 Ossama Othman - - * ace/OS.h: - - If a platform has named POSIX semaphores, define SEM_FAILED if - it isn't already defined. - - * ace/OS.i (sema_init): - - Cast MAP_FAILED to (sem_t *) when comparing to sem_t pointer. - - Check sem_open() failure against SEM_FAILED macro instead of - ((sem_t *) -1) since sem_open() in some named POSIX semaphore - implementations returns ((sem_t *) 0) on failure (e.g. glibc - 2.1.x on Linux). - -Thu Nov 18 08:19:39 1999 Douglas C. Schmidt - - * ace/SOCK_Dgram_Bcast.cpp: Some systems seem to generate 0 - (AF_UNDEF) for the sa_family, even when there are no errors! - Thus, we only print an error if this is not the case, or if - we're in "debugging" mode. Thanks to Extern Chatterji - for reporting this. - -Thu Nov 18 12:08:20 1999 Balachandran Natarajan - - * ace/Configuration.cpp: Added missing template instantiations for - SunCC5.0 - -Thu Nov 18 11:49:39 1999 Ossama Othman - - * bin/make_release: - - Added MD5 checksum generation support. Each ACE/TAO archive - will now have an associated file that contains its MD5 - checksum. [Bug 48] - -Thu Nov 18 08:19:39 1999 Douglas C. Schmidt - - * ace/Log_Msg.cpp: Added a new flag to win32 FormatMessage call, - which removes unneccessary newlines in resulting message. So - whole logged message fits on one line and logs are then nicer - and easier to parse. Thanks to Martin Krumpolec - for contributing this. - -Wed Nov 17 22:45:01 1999 David L. Levine - - * ace/OS.i (ACE_TSS_Emulation::tss_base): on VxWorks, - if ACE_VXWORKS_SPARE is 0, allocate a TSS array. This - can happen if the task wasn't spawned through ACE, - but then tries to use ACE's TSS emulation. Thanks - to Dave Steele for the - excellent detective work and patch. - - * ace/config-vxworks5.x.h: added ACE_VXWORKS_SPARE, - defaulted to spare4. - -Wed Nov 17 17:36:25 1999 Steve Huston - - * ace/config-hpux-11.x-hpc++.h: Added - ACE_LACKS_PLACEMENT_OPERATOR_DELETE for aC++. This is a known bug by - HP, at least at aC++ A.03.10. - -Wed Nov 17 16:33:40 1999 Ossama Othman - - * ace/Makefile.am: - - Added Auto_IncDec_T.*, Capabilities.* and Configuration.* to - list of sources. - - * tests/Makefile.am: - - Added Auto_IncDec_Test, Capabilities_Test and - Process_Manager_Test to list of tests. - - * tests/Capabilities_Test.cpp: - - Create the config file within the test itself instead of having - a seperate config file. This makes the test self-contained, and - also allows the test to be run in a build environment where the - sources are in a different directory from the binaries (e.g. a - "VPATH" build). This change was motivated by a problem that - occurred in an ACE+autoconf VPATH build. - - * tests/Capabilities_Test.cfg: - - Removed this file. It is now created at run-time by the - Capablities_Test itself. - -Wed Nov 17 13:45:25 1999 Ossama Othman - - * acconfig.h: - * configure.in: - * ace/OS.h: - * ace/OS.i: - - Added support for two additional macros, namely ACE_HAS_LSEEK64 - and ACE_LACKS_LLSEEK_PROTOTYPE. This make it easier to - customize llseek support for a given platform. - - * ace/config-linux-common.h: - - Define ACE_HAS_LSEEK64 and ACE_LACKS_LSEEK64_PROTOTYPE for glibc - 2.1.x, and define ACE_HAS_LLSEEK and ACE_LACKS_LLSEEK_PROTOTYPE - for glibc 2.0.x. [Bug 375] - -Wed Nov 17 07:36:04 1999 Douglas C. Schmidt - - * tests: Removed the Cache_Manager_Test.cpp since Cache_Manager.* - is no longer in ACE. Thanks to Airat A. Sadreev - for reporting this. - - * netsvcs/lib/Client_Logging_Handler.cpp (fini): Added a void * - cast to the arguments to ACE_OS::free(). Thanks to David Levine - for reporting this. - -Tue Nov 16 07:58:11 1999 Douglas C. Schmidt - - * netsvcs/lib/Client_Logging_Handler.cpp (fini): - Make sure to dynamically allocate the logger_key_ and - server_host_ so that we don't end up with weird memory problems. - Thanks to Alexander Dergatch for reporting this. - - * ace/config-irix6.x-common.h: Added - ACE_LACKS_PLACEMENT_OPERATOR_DELETE to keep Irix compilers from - complaining! Thanks to David for reporting this. - -Mon Nov 15 20:44:04 1999 Douglas C. Schmidt - - * ace/OS.cpp (inherit_log_msg): Added a comment explaining why - we don't inherit the callback when a new thread is created - - since all hell would break loose otherwise if it came off the - stack! Thanks to Sangwoo Jin for - motivating this clarification. - -Mon Nov 15 19:54:36 1999 Ossama Othman - - * ace-config.in: - - Added missing "-lACE" to the library list. Thanks to Benedikt - Eric Heinen for pointing this out. - -Mon Nov 15 13:28:03 1999 Luther J Baker - - * ace/Log_Msg.cpp (priority_mask_): - Added delete_ostream_(0) to ctor. - -Mon Nov 15 09:33:49 1999 Douglas C. Schmidt - - * ace/Synch.h (ACE_Mutex): changed protected: to public: in - ACE_Mutex so that certain compilers would be happy. Thanks to - Ivan Murphy for reporting this. - - * ace/Configuration.h (ACE_Configuration_Section_Key): The - reserved word "operator" has a typo and is typed as "Operator". - Thanks to Andy Gokhale for reporting this. - -Sun Nov 14 20:20:13 1999 Douglas C. Schmidt - - * ace/Configuration.h: Improved the ACE-ification of this file. - -Sun Nov 14 18:13:37 1999 Ossama Othman - - * ACE-configuration.txt: - - Updated with information about bootstrapping autoconf support in - ACE since it is currently not enabled by default in ACE. - - * configure.in: - - User must now specify the "--enable-maintainer-mode" configure - script option in order to be able to use the configure script. - If an attempt is made to run the configure script with this - option, the configure script will immediately exit with a - summary that states that ACE stock build procedure should be - used until autoconf support is fully integrated into ACE. - - Once autoconf support is fully integrated into ACE, this - requirement will be removed. - -Sun Nov 14 15:22:29 1999 Darrell Brunsch - - * ace/Configuration.cpp: Fixed a statement unreachable in - expand_path (). - -Sat Nov 13 19:55:17 1999 Luther J Baker - - * ace/SString.cpp (next): - Removed a buggy line for Tokenizer. - Thanks to Sangwoo Jin for reporting this. - -Sat Nov 13 18:38:21 1999 Darrell Brunsch - - * ace/Configuration.cpp: Fixed some compiler problems with the - ACE_Malloc template instantiations and pointer casting. - -Sat Nov 13 11:29:20 1999 Douglas C. Schmidt - - * tests/run_tests.lst: Re-enabled the Process_Manager_Test - to see if it Dave Madden's fixes worked. - -Fri Nov 12 21:26:58 1999 David L. Levine - - * ace/OS.h: without threads, added #ifndef protection for - all of the THR_* macros that didn't already have it. - And, with ACE_HAS_PRIOCNTL on sun, #include - before #including sys/rtpriocntl.h. That ensures that - the THR_* macros are defined first by the system header - file. Thanks to Timothy Canham - for reporting this. - - Also, changed a couple of #includes - to "ace/sys_conf.h", because that file is not a system - header. - -Fri Nov 12 00:30:41 1999 Irfan Pyarali - - * ace/Connector.cpp (connect_i): Since we should change only - in the confines on the connector lock, it is not proper to use - the copy of and assign it to when the connect - succeeds. The removal of should not change the - algorithm (famous last words ;) since not really be - considered in the case of failures. - - * ace/Strategies_T.cpp (ACE_Cached_Connect_Strategy): - * ace/Cached_Connect_Strategy_T.cpp: - - If the new connection fails, close out the svc_handler and set - it to zero. - - Also in cleanup_hint_i(), reset the <*act_holder> in the - confines and protection of the lock. - - * ace/Svc_Handler.cpp (cleanup_hint): Expanded the interface to - allow the resetting of the in an atomic manner wrt - the lock of the connector. - - The above changes should fix BUG 310. Thanks to Eric Mitchell - for reporting it. - -Fri Nov 12 12:13:29 1999 Steve Huston - - * ace/config-aix-4.x.h: Made _BSD_INCLUDES and ACE_HAS_CHARPTR_DL - be defined only for pre-AIX 4.3. Thanks to Greg Siebers - for these changes. - Set ACE_LACKS_PLACEMENT_OPERATOR_DELETE for IBM C++ 3.6 and prior. - -Fri Nov 12 11:50:19 1999 Nanbor Wang - - * ACE-INSTALL.html: Added ACE lib/dll naming rules. - -Fri Nov 12 10:02:10 1999 Douglas C. Schmidt - - * ace/config-win32-common.h, - * ace/config-win32.h: Fixed inconsistent use of <> and - "" for ACE-specific #includes. Thanks to Dave Delano - for reporting this. - -Fri Nov 12 08:25:25 1999 David L. Levine - - * ace/Log_Msg.cpp (open,log,dump): ensure that there - is a message_queue_ by calling get_lock () in multithreaded - applications. This solves the problem where the first - thread that uses a Log_Msg terminates before any other - threads create a Log_Msg instance. Thanks to - Mike Mazurek for reporting this. - -Thu Nov 11 20:46:29 1999 Ossama Othman - - * examples/Configuration/Makefile: - - Added a Makefile for this example. - - * examples/Configuration/config_test.cpp: - - ACEified this example, and corrected several errors and - warnings. - -Thu Nov 11 20:28:44 1999 Carlos O'Ryan - - * ace/Local_Tokens.cpp: - * ace/OS.cpp: - Removed gcc-2.95 warnings about mismatch format and arguments, - the warning only shows up under gcc-2.95 for alphas. - We use to print the addresses which produces correct - results in all the platforms we have access to. - Thanks to Cristian Ferretti for pointing this - out. - -Thu Nov 11 19:55:52 1999 Darrell Brunsch - - * ace/Configuration.h: - * ace/Configuration.cpp: - * examples/Configuration/config_test.cpp: - MSVC doesn't like _export and _import so changed them to - export_config and import_config. - -Thu Nov 11 18:41:24 1999 Ossama Othman - - * ace/Configuration.h: - * ace/Configuration.cpp: - - "path_" variable was allocated with strdup(), but deallocated - with delete(). free() should be used instead. - - Added missing class members to member initializer lists. - - Changed name of export() to _export(). "export" is a C++ - keyword, and shouldn't be used as function name. The import() - method was changed to _import() for sake of being consistent. - - Removed duplicate template instantiations. - -Thu Nov 11 17:09:19 1999 Darrell Brunsch - - * ace/Configuration.h: - * ace/Configuration.cpp: - ACE-ified the code. Also fixed miscellaneous compiler warnings - and put in template specialization code. - -Thu Nov 11 12:10:40 1999 Douglas C. Schmidt - - * ace/Process_Manager.cpp, - ace/Process.cpp: It looks like the thread that's going to use - the Process_Manager object must do a setpgid (0, 0) in order to - establish a process group for its children. Apparently, when - you run the test program from the command line, the shell sets - the process up in a group of its own, but when you run it from - the test script, it's a member of the script's group. In the - latter case, when you spawn a child process, you can't add it to - your own group (because your group doesn't exist!). Thanks to - Dave Madden for contributing this fix. - -Thu Nov 11 01:54:55 1999 Luther J Baker - - * ace/Log_Msg.h (msg_ostream): - * ace/Log_Msg.cpp (msg_ostream): - * ace/Log_Msg.cpp (~ACE_Log_Msg): - - Added a member to flag whether or not Log_Msg object - assumes responsibility for destroying its ostream_*. - -Wed Nov 10 23:29:25 1999 Darrell Brunsch - - * ace/Configuration.cpp: - * ace/Configuration.h: - * ace/Configuration.i: - * examples/Configuration/Configuration.dsw: - * examples/Configuration/Test.dsp: - * examples/Configuration/config_test.cpp: - Added the ACE Configuration class files. Thanks to Chris - Hafey for submitting them. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - * ace/Makefile: - * examples/Configuration/Makefile: - Added the Configuration files to the projects and Makefiles. - - * ace/config-win32.h: - MSVC only supports operator placement delete as of version 6. - -Wed Nov 10 22:12:32 1999 Ossama Othman - - * configure.in: - - Enabled the CVS directory check so that ACE's stock Makefiles - won't get inadvertently clobbered by developers who want to - experiment with the configure script. - - * m4/acinclude.m4: - - Made CVS directory check more verbose. It now provides an - example of how to avoid the error it detects, i.e. it provides - an example that demonstrates to do a build without affecting the - source. - - * Makefile.in: - * ace/Makefile.in: - * ace/config.h.in: - * apps/gperf/src/Makefile.in: - * apps/gperf/Makefile.in: - * apps/Makefile.in: - * netsvcs/clients/Logger/Makefile.in: - * netsvcs/clients/Naming/Client/Makefile.in: - * netsvcs/clients/Naming/Dump_Restore/Makefile.in: - * netsvcs/clients/Naming/Makefile.in: - * netsvcs/clients/Tokens/collection/Makefile.in: - * netsvcs/clients/Tokens/deadlock/Makefile.in: - * netsvcs/clients/Tokens/invariant/Makefile.in: - * netsvcs/clients/Tokens/manual/Makefile.in: - * netsvcs/clients/Tokens/mutex/Makefile.in: - * netsvcs/clients/Tokens/rw_lock/Makefile.in: - * netsvcs/clients/Tokens/Makefile.in: - * netsvcs/clients/Makefile.in: - * netsvcs/lib/Makefile.in: - * netsvcs/servers/Makefile.in: - * netsvcs/Makefile.in: - * man/html/Makefile.in: - * man/man3/Makefile.in: - * man/Makefile.in: - * tests/Makefile.in: - - Added these files so that developers who don't have GNU - Autoconf, Automake and Libtool can run the configure script and - attempt builds to provide feedback to us. - -Wed Nov 10 21:35:47 1999 Ossama Othman - - * m4/compiler.m4: - - Added some default flags for compilers on IRIX. - - * m4/threads.m4: - - Added more thread library checks in an effort to figure out if a - thread library really is needed, in the case that the initial - check for pthread_create succeeds without the need of a thread - library. Such a problem occurred on IRIX. This modification - should correct the problem. - -Wed Nov 10 10:55:34 1999 Ossama Othman - - * ace/OS.i (memset, thr_self, thr_getspecific): - - Commented the ACE_TRACE statements. On some compiler/platform - combinations these methods get called before the Object Manager - is initialized, which causes the ACE_TRACE call to seg fault - when tracing is enabled in ACE. - -Tue Nov 9 17:50:01 1999 Darrell Brunsch - - * ace/config-hpux-10.x-hpc++.h: - Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE since it doesn't seem - to be supported on aCC. - -Tue Nov 9 15:47:10 1999 Ossama Othman - - * ace/XtReactor.cpp (TimerCallbackProc): - - Fixed "unused argument" warning. - -Tue Nov 9 14:57:51 1999 Ossama Othman - - * configure.in: - - Minor comment updates. - - * m4/features.m4: - - Fixed asynchronous IO tests. The tests now properly detect - working asynchronous IO on Linux, for example. - - Force asynchronous IO tests to be performed after the thread - detection tests in case the real time functions depend on the - thread library. - -Tue Nov 9 10:11:22 1999 Douglas C. Schmidt - - * ace/config-g++-common.h: Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE - for the GCC 2.8 and earlier family of compilers since they don't - seem to support this feature. - -Mon Nov 8 09:41:34 1999 Douglas C. Schmidt - - * ace/Svc_Handler.cpp: Removed the unused parameter `n'. Thanks - to David Levine for reporting this. - -Mon Nov 8 16:34:27 1999 Ossama Othman - - * acconfig.h: - * configure.in: - - Added autoconf support/tests for the following ACE macros: - - ACE_HAS_STRPTIME - ACE_LACKS_NATIVE_STRPTIME - ACE_LACKS_PLACEMENT_OPERATOR_NEW - ACE_LACKS_PLACEMENT_OPERATOR_DELETE - -Mon Nov 8 09:41:34 1999 Douglas C. Schmidt - - * ace/config-g++-common.h: Added ACE_LACKS_PLACEMENT_OPERATOR_NEW - for older versions of G++. Thanks to David Levine for reporting - this. - - * ace/config-sunos5.5.h: Added a #define for - ACE_LACKS_PLACEMENT_OPERATOR_DELETE to handle problems with - SunC++ 4.2. - - * ace/Svc_Handler: Not all C++ compilers support placement - operator delete, so we need to #ifdef for it. Thanks to Andy - Gokhale for reporting this. - -Sun Nov 07 23:36:51 1999 Nanbor Wang - - * tests/run_tests.bat: - * tests/tests.dsw: - * tests/Auto_IncDec.dsp: - * tests/version_tests/version_tests.dsw: - * tests/version_tests/Auto_IncDec_Test.dsp: Added Auto_IncDec_Test - for MSVC workspaces. - -Sun Nov 7 12:03:31 1999 Douglas C. Schmidt - - * ace/Svc_Handler: Added two new placement operator new() and - delete() operations so that it is possible to allocate an - ACE_Svc_Handler from a custom allocator. Thanks to Edan Ayal - for contributing this. - - * tests/run_tests.lst: Added Auto_IncDec_Test to the tests. - - * ace/Makefile, - tests/Makefile: Added the new Auto_IncDec* stuff to the - makefiles. - - * ace: Added Auto_IncDec_T.{h,i,cpp} to the ACE release. This class - automatically increments and decrements a parameterized counter. - Thanks to Edan Ayal for contributing this. - - * tests/Auto_IncDec_Test.cpp: Added a test for the ACE_Auto_IncDec - class. Thanks to Edan Ayal for contributing - this. - -Fri Nov 05 14:26:38 1999 Jim Buck - - * ace/OS.cpp (ACE_Time_Value::set): fixed calculation of - microsecond part. This change restores the correct pre-ACE 5.0 - behavior. - -Fri Nov 5 07:58:14 1999 Douglas C. Schmidt - - * ace/Memory_Pool.i: Fixed stupid typos in Memory_Pool.i. - Thanks to Jeff Parsons for reporting this. - - * ace/Memory_Pool.i: Default arguments shouldn't be in the - *.i signatures. Thanks to Andy Gokhale for reporting this. - -Thu Nov 4 08:36:34 1999 Douglas C. Schmidt - - * ace/Memory_Pool: Moved the sync() and protect() methods - from ACE_Pagefile_Memory_Pool into the *.i file and made their - parameter names anonymous since these methods are no-ops. - Thanks to Martin Krumpolec for suggesting - this. - - * include/makeinclude/compiler.bor: Changed MISC_CFLAGS - to -a8 -b- -Ve -Vx. Thanks to Jody Hagins for this suggestion. - -Thu Nov 04 15:19:54 1999 David L. Levine - - * ACE version 5.0.8 released. - -Thu Nov 04 08:16:25 1999 David L. Levine - - * config-linux-common.h: only enabled ACE_HAS_SIGTIMEDWAIT - with glibc. RedHat 5.2 doesn't have sigtimedwait. - -Mon Nov 01 14:29:04 1999 David L. Levine - - * ace/Filecache.cpp,Capabilities.cpp,Makefile: moved - ACE_Hash and ACE_Equal_To - explicit instantiations from Filecache.cpp to Capabilities.cpp, - because it needs them and is used with FOR_TAO. - -Mon Nov 01 15:05:44 1999 Steve Huston - - * THANKS: Added Greg Siebers - -Mon Nov 01 15:02:31 1999 Steve Huston - - * ace/config-aix-4.x.h: Added definition of ACE_LD_SEARCH_PATH. - Thanks to Greg Siebers for this fix. - -Mon Nov 01 10:11:36 1999 David L. Levine - - * ace/Capabilities.{i,cpp}: unlined definition of - ~ACE_CapEntry. It caused an internal compiler error - with g++ 2.7.2.3, and it is a good idea to not inline - it because it's virtual. Also, prepended ACE_ to - enum values. - -Sun Oct 31 22:46:17 1999 David L. Levine - - * tests/Capabilities_Test.cpp (main): removed declarations - of unused argc and argv arguments. - -Sun Oct 31 16:39:53 1999 Darrell Brunsch - - * ace/Capabilities.cpp: - Added ACE_BUILD_DLL so the class is properly exported on NT. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: - Added Capabilities files to MSVC projects. - - * tests/Capabilities_Test.cpp: - Was loading the wrong file, changed to loading - Capabilites_Test.cfg instead of captest.cfg. - - * tests/Capabilities_Test.dsp: - * tests/version_tests/Capabilities_Test.dsp: - * tests/tests.dsw: - Added Capabilities_Test project files. - - * tests/run_tests.bat: - Added Capabilities_Test to the list of tests. - -Sun Oct 31 15:29:08 1999 Douglas C. Schmidt - - * ace/Capabilities.cpp: Cleaned up some of the explicit template - instantiations so they will work on all platforms. Thanks to - Bala for pointing this out. - - * ace/Makefile, - * tests/run_tests.lst, - tests/Makefile (BIN): Added an entry for the new ACE_Capabilities - classes. - -Fri Oct 29 21:09:49 1999 Ossama Othman - - * man/html/Makefile.am: - - For some reason Automake couldn't automatically copy the HTML - man pages to the distribution directory when doing a `make dist' - so do it manually. - -Fri Oct 29 19:53:59 1999 Ossama Othman - - * Makefile.am (EXTRA_DIST): - - Removed ACE.DSW from the distribution list. - - * configure.in: - - Removed test for necessity of _GNU_SOURCE macro. All uses and - need of that feature test macro have been removed from ACE. - - If a thread library was detected, define _REENTRANT in the - command line, not the generated config.h header. The user can - use the ace-config script to determine what other flags are - needed to compile ACE. - - Check for sched_yield in the librt library, if it exists, in - addition to the others listed. Solaris 7 moves sched_yield from - the libposix4 library to librt. - - Added libsocket to list of libraries to search for - getservbyname(). - - If check for socket() results in unresolved symbols, add `-lnsl' - to library search. - - Improved ACE_HAS_PTHREAD_PROCESS_ENUM test. - - Added checks for getpgid, strtok_r, strptime and lseek64 - prototypes. The old getpgid test is superceded by a new one. A - prototype is declared if the checks determine that certain - feature test macros are needed to enable them. - - Added man directory Makefiles to list of files to generate. - - * ace-config.in: - - Minor updates. Modified so that "ace" is the default library if - one isn't specified. - - * ace-config.1.in: - - Minor updates. - - * ace/config-linux-common.h: - * ace/OS.h: - - Moved all prototypes to OS.h. Only macros should be defined - config headers. Each of the moved prototypes are enabled by - using the following newly added macros: - - ACE_LACKS_GETPGID_PROTOTYPE - ACE_LACKS_STRPTIME_PROTOTYPE - ACE_LACKS_STRTOK_R_PROTOTYPE - ACE_LACKS_LSEEK64_PROTOTYPE - - All prototypes in ace/OS.h should come after the inclusion of - ace/Basic_Types.h since the prototypes may need types that are - only available after that inclusion. Also added a - ACE_LACKS_PREAD_PROTOTYPE that is used to enable make both - pread() and pwrite() protypes. - - Recent glibc libraries have pread() and pwrite() but only enable - the prototypes if _XOPEN_SOURCE=500 is defined (Single Unix - specification). Now define ACE_HAS_P_READ_WRITE and - ACE_LACKS_PREAD_PROTOTYPE on Linux. - - * bin/bootstrap: - - Added ACE man page generation. Generating the man pages during - the bootstrapping process allows the man page list in - man/man3/Makefile.am to be generated by a shell command instead - of having to explicitly specify each man page in that Makefile. - The man pages will only be generated if the ACE.3 man page - doesn't exist. That man page should be representative of the - existence of the rest of the man pages. - - * man/Makefile.am: - * man/html/Makefile.am: - * man/man3/Makefile.am: - - Added Automake input files for the ACE man pages. The man pages - will now be installed during a `make install'. This is an - ACE Configuration Project specific enhancement. ACE's current - man page scheme is unchanged, and doesn't support this feature. - - * m4/features.m4: - - Delete test_aio.log when the test is done. - -Fri Oct 29 17:01:58 1999 Kirthika Parameswaran - - * ace/OS.h: Added ACE_DEFAULT_SHLIB_MODE for KCC. Since this mode - wasnt right the DLL_Test failed when compiled using the KAI - compiler. This change fixes this problem too. Thanks to Nanbor - and Michael Kircher - for helping me on this task. - -Fri Oct 29 07:08:16 1999 David L. Levine - - * include/makeinclude/rules.local.GNU, - include/makeinclude/wrapper_macros.GNU - include/makeinclude/platform_vxworks5.x_g++.GNU: - fixed typo: COMSPEC instead of COMPSPEC. - -Thu Oct 28 11:15:43 1999 Nanbor Wang - - * docs/ACE-guidelines.html: Added a new guideline on avoiding - multicharacter format specifiers in ACE_DEBUG/ACE_ERROR. - -Thu Oct 28 10:54:42 1999 Nanbor Wang - - * ace/Message_Block.cpp: - * ace/Name_Request_Reply.cpp: - * ace/Time_Request_Reply.cpp: - * ace/Token_Request_Reply.cpp: - Replaced the use of %ld or %lu with %d or %u in - ACE_DEBUG/ACE_ERROR. - - * ace/config-kcc-common.h: Undefined - ACE_HAS_NONSTATIC_OBJECT_MANAGER. Thanks to Russ Noseworthy for - noticing this. - -Thu Oct 28 10:49:51 1999 Darrell Brunsch - - * ACE.dsw: This is an internal file that I last updated - in 1997 (I don't think it ever got included in the - releases). Being out of date and not used, I removed it. - -Thu Oct 28 09:31:19 1999 David L. Levine - - * tests/SOCK_Send_Recv_Test.cpp (client): if len is not 255, - print out its value. - -Thu Oct 28 09:27:47 1999 David L. Levine - - * include/makeinclude/rules.local.GNU, - include/makeinclude/wrapper_macros.GNU - include/makeinclude/platform_vxworks5.x_g++.GNU: - support ComSpec as well as COMSPEC environment variable - (on Windows). Thanks to Tom Venturella for reporting that - ComSpec was defined on the system that he was using. - -Wed Oct 27 20:31:22 1999 Luther J Baker - - * ace/Arg_Shifter.h (ACE_Arg_Shifter): Spelling errors. - -Wed Oct 27 16:45:56 1999 David L. Levine - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): use an - ACE_reinterpret_cast instead of an ACE_static_cast to - cast func (of type ACE_THR_FUNC_INTERNAL) to ACE_THR_FUNC. - Thanks to Tom Venturella for reporting that the static_cast - didn't compile on Tornado II. - -Wed Oct 27 16:40:07 1999 David L. Levine - - * ace/OS.h,ACE.h: added newline before ACE_CLASS_IS_NAMESPACE. - This might solve the problem with the ACE_OS man page - generation failure. Thanks to Samuel Stickland - for reporting this problem. - -Wed Oct 27 12:53:15 1999 Nanbor Wang - - * ace/Object_Manager.h: - * ace/config-win32.h: The instructions on how to disable the use - of nonstatic object manager were not consistent for NT and other - platforms. Thanks to Russ Noseworthy for reporting this. - -Wed Oct 27 09:48:41 1999 David L. Levine - - * include/makeinclude/wrapper_macros.GNU: changed check - for whether exceptions are enabled from ifndef exceptions - to ifeq ($(exceptions),). That allows use of - exceptions=0. Thanks to Phil Mesnier - for reporting this. - -Wed Oct 27 09:46:05 1999 David L. Levine - - * include/makeinclude/platform_qnx_neutrino.GNU: removed - -Winline, because it was complaining about operator<< - in generated code. - -Wed Oct 27 08:32:47 1999 Douglas C. Schmidt - - * ace/OS.i (timezone): Added an ACE_UNUSED_ARG to please KCC. - Thanks to Dave Madden for reporting this. - -Tue Oct 26 14:56:15 1999 Balachandran Natarajan - - * ace/FlReactor.cpp (reset_timer_interval): Fixed a compile error - with Sun_Egcs. Thanks to Thomas Groth - for reporting this problem & also for giving a fix. - -Sat Oct 23 19:11:51 1999 Nanbor Wang - - * ACE version 5.0.7 released. - -Fri Oct 22 16:58:44 1999 Darrell Brunsch - - * ace/Dynamic_Service.h: Added an include for OS.h so the - Dynamic_Service.cpp will always get included on platforms - that need it (ie. win32). - - Thanks to Paulo Breda Vieira for spotting - this problem in the AV Streaming code on NT. - -Thu Oct 21 20:21:13 1999 Douglas C. Schmidt - - * ace/Memory_Pool.cpp (map_file): Make sure to update the - base_addr_ with the new mem_map_.addr() before the call to - update the ACE based pointer. Thanks to Damien Dufour - for reporting this. - -Thu Oct 21 17:10:17 1999 Vishal Kachroo - - * ace/OS.i (ioctl): Corrected the implementation of - ACE_OS::ioctl () call with ACE_SIO_GET_QOS io control - code. Thanks to Vidya Narayanan - for reporting this. - - * ACE_wrappers/examples/QOS/server.cpp: - * ACE_wrappers/examples/QOS/client.cpp: - * ACE_wrappers/examples/QOS/Sender_QOS_Event_Handler.cpp: - * ACE_wrappers/examples/QOS/Receiver_QOS_Event_Handler.cpp: - Changed the QOS example to GET-QOS only on receipt of a QoS - event. Also tested the changes made to the ioctl (GET_QOS) in - OS.i. - -Thu Oct 21 15:46:08 1999 David L. Levine - - * tests/run_tests.lst: disabled Process_Manager_Test, for now, - because it asserts on Solaris, Irix, Linux, and HP/UX. - -Wed Oct 21 14:05:00 1999 Ruibiao Qiu - - * ace/examples/IPC_SAP/ATM_SAP/CPP_{client,server}.dsp: Added - configurations for building static executables on NT. - -Wed Oct 20 00:05:34 1999 Douglas C. Schmidt - - * ace/OS.i: Replaced 0666 wit ACE_DEFAULT_FILE_PERMS. Thanks - to Dave Delano for reporting this. - -Tue Oct 19 13:31:15 1999 Joe Hoffert - - * ace/ATM_Params.h, ATM_QoS.{h,i}: - Cleaned up comments, removed ACE_ATM_QoS::get_options_params - method (since it's not used), and made changes for UNIX build. - -Tue Oct 19 12:55:16 1999 Ossama Othman - - * ace/Codeset_IBM1047.h: - - Include `ace/inc_user_config.h' before check for definition of - ACE_MVS macro since otherwise ACE_MVS may not get defined. - - * ace/Codeset_IBM1047.cpp: - - Moved inclusion of `ace/Codeset_IBM1047.h' ahead of ACE_MVS - macro definition check, and removed inclusing of - `ace/inc_user_config.h' - - * ace/OS.i (llseek): - - Reenabled lseek64() on Linux. If _LARGEFILE64_SOURCE is not - defined then an external declaration for lseek64() is made in - the config-linux-common.h header. - - * ace/config-linux-common.h: - - Minor comment update. - - Added extern declaration of lseek64() if _LARGEFILE64_SOURCE is - not defined. - - * ace/Handle_Set.cpp: - - Check if _XOPEN_SOURCE is #defined instead of _GNU_SOURCE to - determine if the fd_set structure has an fds_bits member. - - * ace/Makefile: - - Updated dependencies. - - * ace/Makefile.am: - - Added ATM files to source lists. - - * acconfig.h: - - Added entries for some additional "feature test" macros, such as - _XOPEN_SOURCE. - - * bin/g++dep: - * include/makeinclude/rules.local.GNU: - - Incorporated Jody Hagins patches that get - around a trailing backslash problem in generated Makefile - dependencies. Thanks Jody! - -Tue Oct 19 12:30:00 1999 Kirthika Parameswaran - - * examples/Web_Crawler.dsp: Changed the settings to make the - executable name as main.exe. - * examples/Web_Crawler/URL_Visitor.cpp (~URL_Validation_Visitor): - Removed double deletion of the which is the - Strategy Connector. - -Tue Oct 19 11:24:16 1999 Nanbor Wang - - * include/makeinclude/wrapper_macros.GNU: Commented out an - out-dated OBJEXT definition. If a rule requires to generated - *.so, then it should specify the extension using SOEXT. Thanks - to Aniruddha Gokhale for - reporting this. - -Tue Oct 19 10:27:37 1999 Carlos O'Ryan - - * bin/run_all_list.pm: - Added TAO/tests/DSI_Gateway to the list of tests - -Tue Oct 19 00:43:34 1999 Nanbor Wang - - * ace/config-win32-common.h: Undefined ACE_HAS_EXCEPTIONS under - WinCE. - - The following changes are contributions from James Buck - and Peter C. Chien . - - * ace/config-WinCE.h (ACE_LACKS_SOCKET_BUFSIZ): We cannot change - the socket buffer size on WinCE. - - * ace/OS.h: - * ace/OS.i: - * ace/OS.cpp: Added a customized TSS errno implementation for - WinCE version 2.10 and above based on James and Peter's patch. - ACE_Errno_Guard also had to be changed when using this - implementation. However, this code is not active by default - because I don't know how to detect CE's OS and platform - configuration automatically. To use the code, define - ACE_HAS_WINCE_BROKEN_ERRNO. - - * ace/OS.i(cond_wait,cond_timedwait): On WinCE, we must tweak the - returning result from the semaphore if timeout occurred. - Because CE uses the simulated semaphore, the returning value is - not the same as that returned by a native semaphore. - -Tue Oct 19 00:03:57 1999 Nanbor Wang - - * include/makeinclude/wrapper_macros.GNU: - * include/makeinclude/rules.bin.GNU: - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.local.GNU: Chaged the following - settings to be platform configurable: - - OBJDIRS: Names of directories to keep obj files. Default is - '.obj' and '.shobj'. - OBJEXT: Extension name for obj files. Default is 'o'. - SOEXT: Extension name for so files. Default is 'so'. - LIBEXT: Extension name for lib files. Default is 'a'. - CC_OUTPUT_FLAG: - LINK_OUTPUT_FLAG: - SO_OUTPUT_FLAG: Flags to specify output file name for cc, linker - and so_linker. Defaults are '-o'. - -Mon Oct 18 23:46:00 1999 Nanbor Wang - - * ace/config-freebsd-pthread.h: Undefined ACE_HAS_PENTIUM for - freebsd. The high resolution timer doesn't seem to work on this - platfrom. - - * ace/OS.i (cuserid): Added missing ACE_UNUSED_ARG (maxlen) - statement. - - * ace/Log_Msg.cpp (log): FreeBSD defines sys_nerr as a const int. - -Mon Oct 18 23:13:55 1999 Kirthika Parameswaran - - * examples/Web_Crawler/URL_Visitor.cpp: Updated some broken - template instantiations. Thanks to Bruce Alderson - for reporting this. - -Mon Oct 18 21:32:29 1999 Ossama Othman - - Updates that remove need to use _GNU_SOURCE macro on Linux/glibc - systems [Bug 167]: - - * ace/OS.i: - - Return ACE_static_cast (off_t, -1), instead of just -1 in - ACE_OS::lseek(). (not related to _GNU_SOURCE updates) - - Only enable lseek64() on Linux/glibc systems if - _LARGEFILE64_SOURCE is defined. - - Don't use cuserid() on Linux/glibc systems. It was dropped - from POSIX.1 back in 1990. Instead, extract the user name from - getpwuid(geteuid()), as suggested by the glibc cuserid() man - pages and Stevens' Advanced programming in the UNIX - Environment. - - * ace/Handle_Set.cpp: - - XPG4.2 declares an fds_bit member in the fd_set structure. - Since _GNU_SOURCE is being disabled in ACE, use the __fds_bits - member. It's not pretty, but it works. - - * ace/config-linux-common.h: - - strptime() is an XOPEN function. It is only enabled if - _XOPEN_SOURCE or _GNU_SOURCE is defined (_GNU_SOURCE causes - _XOPEN_SOURCE to be defined on Linux/glibc systems). If - _XOPEN_SOURCE is not defined, create an external declaration for - it. - -Mon Oct 18 18:41:38 1999 Steve Huston - - * ace/OS.h: Add #include for HP-UX 10.x, and... - * ace/OS.i (ACE_OS::sigwait): On HP-UX 10.x, call cma_sigwait - directly. Fixes bug #66. - -Mon Oct 18 15:45:08 1999 Irfan Pyarali - - * ace/OS.i (event_wait): The following changes are incorrect and - have been reverted: - - http://ace.cs.wustl.edu/cvsweb/ace-cvs.cgi/ACE_wrappers/ace/OS.i?r1=4.796&r2=4.797. - - Remember that is only turned on to remember - state, i.e., when == 0. In the case when - there are waiters, i.e., != 0, - is not turned on, and therefore breaks the wait function since - - while (event->is_signaled_ == 0) - - never becomes false. We need a better way to protect against to - guard against spurious wakeups. - -Mon Oct 18 13:42:37 1999 Nanbor Wang - - * ace/OS.h: Added extra parentheses to avoid operator precedence - mix-up. Thanks to JM Strauss - for reporting this. - -Mon Oct 18 13:30:08 1999 Nanbor Wang - - * ace/OS.h: Removed a whole bunch of extra blank in ACE_DES_*FREE* - macro definitions. Thanks to JM Strauss - for pointing this out. - -Sun Oct 17 19:08:51 1999 Balachandran Natarajan - - * ace/QtReactor.cpp: Fixed a bug in remove_handle_i () method. I - found this when I was testing the test for the QtReactor. - -Sun Oct 17 11:00:46 1999 Douglas C. Schmidt - - * include/makeinclude/platform_sunos5_sunc++.GNU (LD): Added - a fix so that SunC++ 5.0 will work correctly when it's used in - "compat" mode with SunC++ 4.2. Thanks to Susan Liebeskind - for reporting this fix. - - * ace/Malloc_T.cpp (remove): Need to call the destructor of - ACE_Malloc_Stats explicitly in remove(). Thanks to Jean-Marc - Strauss for reporting this. - - * ace/Containers_T.i (get): ACE_DLList::get() didn't check - the return value from ACE_Double_Linked_List::get() so it was - possible for the node variable to be NULL. Now it checks for - the error case explicitly. Thanks to Boris Sukholitko - for reporting this bug. - - * ace/Containers_T.cpp (get): The ACE_Double_Linked_List::get() - method should return -1 on error but it was returning 1. Now, - the implementation matches the documentation. Thanks to Boris - Sukholitko for reporting this bug. - -Sat Oct 16 17:10:23 1999 Douglas C. Schmidt - - * ace/Makefile: - * ace/Svc_Conf_l.cpp: Replace exit(1) with ACE_OS::exit(1) - so that CodeWarrior doesn't get confused. Thanks to David - Delano for reporting this. - - * ace/OS.cpp: Removed the '&' in front of thread_args to make - CodeWarrior happier. Thanks to David Delano - for reporting this. - - * ace/OS.cpp: Removed the table_() "initialization" for - ACE_TSS_Cleanup since this breaks the CodeWarrior C++ compiler. - Thanks to David Delano for reporting this. - - * ace/OS.i: There was a bug with the ACE_OS::truncate() - emulation for Win32. We need to check for ACE_INVALID_HANDLE - and NOT < 0! Thanks to David Delano for - reporting this. - -Sat Oct 16 11:17:10 1999 Irfan Pyarali - - * TAO/tao/Sync_Strategies.cpp (buffering_constraints_reached): - Changed the signature of - TAO_Flush_Sync_Strategy::buffering_constraints_reached() to - match the base class. - -Fri Oct 15 17:28:05 1999 Irfan Pyarali - - * ace/Connector.cpp (connect_i): Only close if we have a - valid . Thanks to Yury Kuznesov for - reporting this problem. - -Fri Oct 15 17:26:08 1999 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU: Added a new flag that - would help conditional compilation compilation of the - QtReactor. - - * ace/QtReactor.cpp: - * ace/QtReactor.h: Files for the QtReactor. Thanks to Hamish - Friedlander for donating this to ACE. For - the sake of record, Qt is a multiplatform C++ GUI toolkit. - - * ace/Makefile: Added the above files to Makefile. Changes were - also made to generate files from moc (Meta Object Compiler, - that comes with Qt libraries) and include them with the build. - -Fri Oct 15 01:03:13 1999 Douglas C. Schmidt - - * ace/Activation_Queue: ACE_Activation_Queue has no methods for - inspecting the size of the queue. The solution was to add the - methods: method_count(), is_empty(), and is_full(). Thanks to - Travis Shirk for contributing this. - -Fri Oct 15 00:36:35 1999 Douglas C. Schmidt - - * tests/Process_Manager_Test.cpp (main): Replaced - ACE_OS::exit(secs) with return secs so that Purify will be - happy. - -Thu Oct 14 14:30:06 1999 David L. Levine - - * tests/Process_Manager_Test.cpp: use u_int instead of - bool. Make ~Exit_Handler () public so that g++ doesn't - complain about a private destructor with no friends. - Commented out unused local variable child7. - -Thu Oct 14 14:25:44 1999 Dave Madden - - * tests/Process_Manager_Test.cpp: fixed the memory leaks, and - most of the "unused variable" warnings should be gone. - I've added, but left commented out, ASSERTs for the child - process' exit codes. The reason is that, on Unix, the exit - code contains extra information (exited, traced, stopped, - signaled, etc.) that causes the exit code from wait() to be - different from what the child's main() returned. - -Wed Oct 13 20:23:58 1999 Nanbor Wang - - * ace/config-WinCE.h: Added ACE_LACKS_ACE_TOKEN and - ACE_LACKS_ACE_OTHER to reduce CE dll's footprint. - - * ace/Memory_Pool.cpp (ACE_Pagefile_Memory_Pool::map): The - SECURITY_DESCRIPTOR and its management routines are only - supported on NT. Changed to pass a NULL security attribute on - non-NT platforms (95, 98, CE.) - -Wed Oct 13 10:50:39 1999 David L. Levine - - * tests/run_tests.sh: use uname -s without checking to - see if /bin/uname, etc., exist. Redirect stderr to - the sysname string. It works. - -Wed Oct 13 10:39:50 1999 David L. Levine - - * ace/OS.h: ensure that ACE_THR_PRI_FIFO_DEF and - ACE_THR_PRI_OTHER_DEF are defined on non-threaded platforms, - to support application source code compatibility. - -Wed Oct 13 10:11:47 1999 David L. Levine - - * tests/Malloc_Test.cpp: fixed preprocessor logic so that - the test is neutered on LynxOS. [Bug 224] - -Wed Oct 13 01:15:45 1999 Nanbor Wang - - * ace/Parse_Node.cpp: Made sure we don't try to duplicate a null - string. This was causing problem when the initialization string - was missing from a service entry. Thanks to Chris Hafey - for reporting this. - -Tue Oct 12 15:05:12 1999 Douglas C. Schmidt - - * tests/run_tests.lst: Reenabed Dave Madden's new - Process_Manager_Test so that we can see if it works on various - platforms. - - * tests/Process_Manager_Test.cpp (main): Added a new one-button - test for the ACE_Process_Manager. Thanks to Dave Madden - for contributing this test. - - * ace/Process_Manager.cpp (wait): Fixed a bug triggered by - a process-specific wait. Thanks to Dave Madden - for contributing this fix. - - * ace/ACE.cpp (format_hexdump): Replaced - - textver[i] = (c < 0x20 || c > 0x7e) ? '.' : c; - - with - - textver[i] = isprint (c) ? c : '.'; - - since this is more portable. Thanks to Jim Rogers - for reporting this. - - * ace/Memory_Pool.i: Changed implementation to - round_to_chunk_size() to ACE::round_to_pagesize(), which appears - to be the "Right Thing"[TM] on NT. - -Tue Oct 12 14:49:00 1999 Ruibiao Qiu - - * ace/ATM_Stream.h - * ace/ATM_Acceptor.h: Moved #pragma after ACE include - so that g++ would not give warning messages. Thanks to - Dr. David L. Levine for pointing this out. - -Tue Oct 12 14:26:15 1999 David L. Levine - - * ace/config-qnx-neutrino.h: added #define of - ACE_THR_PRI_FIFO_DEF. This allows us to easily set a thread - priority (10) that's lower the the TCP service threads (17) in - tests. Thanks to Sean Boudreau for suggesting - that. - -Tue Oct 12 14:16:18 1999 David L. Levine - - * etc/purify.solaris2: added some more UMR suppressions - for SunOS 5.7 (with Sun CC 4.2). - -Tue Oct 12 13:22:22 1999 David L. Levine - - * include/makeinclude/platform_sunos5.6_sparc_sunc++_4.2.GNU: - removed to avoid confusion. It just included - platform_sunos5_sunc++.GNU; that should be used directly, - instead. Thanks to Dan Butler - for reporting this. - -Tue Oct 12 12:40:41 1999 Jeff Parsons - - * ace/Memory_Pool.i: - * ace/Memory_Pool.cpp: - Fixed some errors in Win32 specific code. - -Tue Oct 12 12:20:08 1999 David L. Levine - - * docs/ACE-subsets.html: updated status, and added some - missing motivation sections. Thanks to Wei Chiang - for reporting that the document - was out-of-date. - -Tue Oct 12 11:57:21 1999 David L. Levine - - * ace/config-sunos5.6-sunc++-4.x.h: removed because it - #included a header that no longer exists in the - distribution. ace/config-sunos5.6.h should be used - instead. Thanks to Dan Butler - for reporting this. - -Tue Oct 12 11:48:00 1999 Ruibiao Qiu - - * ace/ATM_Addr.{h,cpp,i}: - * ace/ATM_Stream.{h,cpp,i}: - * ace/ATM_Connector.{h,cpp,i}: - * ace/ATM_Acceptor.{h,cpp,i}: - * ace/ATM_QoS.{h,cpp,i}: - * ace/ATM_Params.{h,cpp,i}: Added support for Fore ATM on Windows - platform. Enabled when ACE_HAS_ATM and ACE_HAS_FORE_ATM_WS2 - are defined. - - * ace/config-win32-common.h: Added needed header include when - ACE_HAS_FORE_ATM_WS2 is defined. - - * ace/ace_dll.dsp: - * ace/ace_lib.dsp: Included ATM_* classes files in the porject files. - - * examples/IPC_SAP/ATM_SAP/CPP-client.cpp - * examples/IPC_SAP/ATM_SAP/CPP-server.cpp: Changed example codes - so that they can be run on Windows. They are now non-interactive, - and show data rates at each end. - - * examples/IPC_SAP/ATM_SAP/CPP_client.dsp - * examples/IPC_SAP/ATM_SAP/CPP_server.dsp - * examples/IPC_SAP/ATM_SAP/ATM_SAP.dsw: Created MSVC project files - and workspace file for these examples. - -Tue Oct 12 11:37:56 1999 David L. Levine - - * tests/run_tests.sh: export ACE_ROOT if setting it. - -Tue Oct 12 11:32:23 1999 David L. Levine - - * tests/run_tests.pl,run_tests.sh: don't print "Skipping test - on this platform" message for DISABLED tests. Set - ACE_ROOT to .. if it wasn't set. - - * tests/run_tests.sh: don't invoke uname command on - Neutrino, because it's not supported. - -Tue Oct 12 08:53:52 1999 Irfan Pyarali - - * ace/Message_Queue.cpp (enqueue): and - should increase by total_size() and total_length() respectively. - And in dequeue(), should decrease by - total_length(). Thanks to Christopher Kohlhoff - for pointing this out. - -Tue Oct 12 10:00:52 1999 Douglas C. Schmidt - - * ace/Memory_Pool (ACE_Pagefile_Memory_Pool):Added a new memory - pool that uses the Win32 page file. Thanks to Dieter Quehl for - contributing this. - -Mon Oct 11 17:07:46 1999 Douglas C. Schmidt - - * ace/Message_Queue.cpp (enqueue): ACE fails to compile because of - a for-loop scoping problem in the method - ACE_Message_Queue_NT::enqueue. Thanks to Christopher Kohlhoff - for reporting this. - - * ace/Activation_Queue.cpp (enqueue): Changed the - creation of the ACE_Message_Block so that it uses the sizeof - (ACE_Method_Request) to ensure the queue's flow control - mechanism works properly. Thanks to Dan Gilboa - for reporting this. - -Mon Oct 11 17:36:15 1999 Nanbor Wang - - Thanks to Wei Chiang for the following - patches. - - * ace/Thread_Manager.cpp (kill_thr): Chorus only supports - SIGTHREADKILL here. Made sure we remove the killed thread from - the managed thread list. - - * tests/Thread_Manager_Test.cpp: Changed the test to check for - cooperative cancellation even if the platform doesn't support - sending signaling to a specific thread. On Chorus, this signal - has to be SIGTHREADKILL. - -Mon Oct 11 17:35:51 1999 Nanbor Wang - - * ace/config-kcc-common.h: Added - ACE_HAS_STD_TEMPLATE_SPECIALIZATION for KCC. - -Mon Oct 11 12:05:31 1999 Wei Chiang - - * ace/Signal.cpp (ACE_Sig_Action ctors), - ace/Select_Reactor_T.cpp (register_handler,remove_handler): - disabled signal-related operations on Chorus. - -Mon Oct 11 10:15:28 1999 David L. Levine - - * bin/check_build_logs: suppress some Purify warnings. Purify - says that it's ignoring the problem; so will we. - -Mon Oct 11 10:09:56 1999 David L. Levine - - * ACE version 5.0.6 released. - -Mon Oct 11 07:34:34 1999 Douglas C. Schmidt - - * ace/OS.h: Removed a stray '>' that was causing OS.h not to - compile. Thanks to Marvin Allen Wolfthal - for reporting this. - -Fri Oct 8 07:47:08 1999 Douglas C. Schmidt - - * ace/OS.h: Removed the word "defined" since that was breaking - SunCC 4.2. Thanks to Andy Gokhale for reporting this. - -Thu Oct 07 18:47:03 1999 Irfan Pyarali - - * ace/OS.h (ACE_NOTSUP): Added new macro. This one is similar to - ACE_NOTSUP_RETURN, except that there is no return value (similar - to ACE_GUARD and ACE_GUARD_RETURN). - - * ace/Message_Queue (message_length): Returns the total length on - the queue, i.e., sum of the message block lengths. - - Since manual changes to these stats might be necessary, - specially when queued message blocks change size or lengths - (without dequeuing the messages from the queue), we also provide - methods for setting these stats. - - * ace/Message_Block.i (total_length): This new method is similar - to except that it deals with the length of the - message blocks and not the size of the message blocks. It - returns the length of the message blocks, including chained - message blocks. - -Thu Oct 7 13:17:29 1999 Douglas C. Schmidt - - * ACE-INSTALL.html: Changed the word "compiler" to - "linker". Thanks to George Ball - for reporting this. - -Thu Oct 07 11:35:13 1999 Steve Huston - - * ace/streams.h: Added #include in the non-Win32 - section of the !ACE_HAS_STANDARD_CPP_LIBRARY section, for systems - like Solaris w/ SC4.2. - -Wed Oct 6 21:36:18 1999 Douglas C. Schmidt - - * ace/Log_Msg.cpp (log): Forgot to remove a stray %s. - Thanks to Kitty Krishnakumar for - reporting this. - -Wed Oct 06 16:42:56 1999 Nanbor Wang - - * examples/Reactor/Misc/Misc.dsw: - * examples/Reactor/Misc/demuxing.dsp: Added the demuxing test - project file. - - * examples/Reactor/Misc/test_demuxing.cpp: MS Windows only - supports a limited set of signals. Made sure we use them in the - examples. - -Wed Oct 06 16:20:28 1999 David L. Levine - - * tests/CDR_File_Test.cpp (run_test): when reading, ensure - that the message block has sufficient space to properly - align the 64-bit double on LynxOS and Neutrino. Thanks - to Jeff for helping to track this down, and for Carlos - for providing the fix. - -Wed Oct 6 15:40:11 1999 Vishal Kachroo - - * ace/OS.i : Initialised the qos_len variable to sizeof (QOS) - within the ioctl () method for ACE_SIO_GET_QOS. - - * ACE_wrappers/examples/QOS/client.cpp: - * ACE_wrappers/examples/QOS/server.cpp: Added a test for the - ACE_SIO_GET_QOS io control code. The Sending and Receiving - QOS flowspec parameters are extracted and printed for both the - sender and receiver using this control code. - -Wed Oct 6 08:36:17 1999 Douglas C. Schmidt - - * ace/OS.h: Changed - - # if defined (__SUNPRO_CC < 0x500) - - to this - - # if defined (__SUNPRO_CC < 0x500) || ((__SUNPRO_CC == 0x500 && > __SUNPRO_CC_COMPAT == 4)) - - to work around compilation problems with Sun CC 5.0 when used in - Sun CC 4 compatibilty mode. Thanks to Erik Koerber - for this fix. - - * ace/Log_Msg.cpp (log): Added support for a %m option that - behaves like strerror() rather than perror(). Thanks to Kitty - Krishnakumar for this feature. - - * ace/OS.i (event_wait): We need to put the call to - ACE_OS::cond_wait() in a loop to guard against spurious wakeups. - Thanks to Sergey Nemanov and Vladimir - Kondratiev for reporting this - and suggesting a fix. - - * tests/Malloc_Test.cpp: Don't run the Malloc_Test on LynxOS. - - * tests/MM_Shared_Memory_Test.cpp: Fixed the code so that it'll - compile correctly on platforms that lack fork(), such as - VxWorks. Thanks to David Levine for reporting this. - -Tue Oct 5 16:17:57 1999 Douglas C. Schmidt - - * tests/MM_Shared_Memory_Test.cpp (spawn): Make sure to - delete the synchronizer in both the parent and the child - processes since otherwise we get a memory leak! Thanks to David - Levine for pointing this out. - - * tests/Task_Test.cpp (main): Make sure to delete the thread hook - before exiting the process to avoid a memory leak. Thanks to - David Levine for pointing this out. - -Tue Oct 5 15:04:03 1999 Douglas C. Schmidt - - * ace/[Active_|Hash_]Map_Manager: Modified these classes so that the - find() methods are all "const". Thanks to Jody Hagins - for reporting this. - -Tue Oct 05 21:58:06 1999 Nanbor Wang - - * ace/config-WinCE.h: Reenabled ACE_HAS_MFC. This should be the - most portable configuration. If you insist not to use MFC at - all, define ACE_HAS_MFC=0 in your config.h file. - - * ace/OS.h: - * ace/OS.cpp (set_window): Removed the MFC specific set_window - method so we can use ACE in both MFC and non-MFC applications. - - * ace/INET_Addr.h: Applied ASYS_TEXT to several default - string literals. - - * ace/DLL.h: - * ace/DLL.cpp: Changed the type of in ctor and the open - method to ASYS_TCHAR to minimize string conversion. - - * tests/DLL_Test.cpp: Applied ASYS_TEXT to the name of the DLL - file. - -Tue Oct 5 19:01:43 1999 Jeff Parsons - - * ace/CDR_Stream.i: - Changed << for bounded (w)strings to marshal only 'length' - bytes, instead of 'bound' bytes. The previous method could - cause an access violation if the string fits near the end - of a system page, but the 'bound' extends beyond it. Thanks - to Brian Wright for reporting this - bug. - -Mon Oct 4 08:31:58 1999 Douglas C. Schmidt - - * examples/Shared_Malloc/test_persistence.cpp: Enhanced the - list_employees() method so that it'll print the contents of - ACE_Malloc<> in FIFO and LIFO order. - - * ace/Malloc[_T].{h,cpp}: Added a new iterator for ACE_Malloc<> - called ACE_Malloc_FIFO_Iterator, which prints out the - ACE_Name_Node entries in FIFO order. In addition, renamed - ACE_Malloc_Iterator to be ACE_Malloc_LIFO_Iterator because it - prints the ACE_Name_Node entries in LIFO order. Also added a - #define of ACE_Malloc_Iterator to ACE_Malloc_LIFO_Iterator to - ensure backwards compatibility. Thanks to Wenli Bai - for this enhancements. - - * tests/MM_Shared_Memory_Test.cpp: Fixed the test so that it should - work correctly for platforms that use either processes or - threads. Also, make sure to call remove() on the - ACE_Process_Semaphore so that stray semaphores aren't left - around. Thanks to David Levine for helping to track this down. - - * ace/Synch.h: Updated the documentation for the - ACE_Process_Semaphore destructor to indicate that it doesn't - remove the semaphore. Instead, you must call remove() - explicitly. Thanks to David Levine for helping to track this - down. - - * ace/Malloc_T.cpp (print_stats): Added a cast for the ACE_LOCK to - work around the fact that the print_stats() method is const. - Thanks to Jean-Marc Strauss for - reporting this. - - * ace/INET_Addr.cpp (set): Added ACE_UNUSED_ARG - so the compiler won't complain about the protocol paraemter in - parts of the code where it's not used. - - * tests/MM_Shared_Memory_Test.cpp (spawn): Added ACE_UNUSED_ARG - so the compiler won't complain about process_synchronizer in - parts of the code where it's not used. - -Sun Oct 3 12:47:35 1999 Douglas C. Schmidt - - * tests/Process_Mutex_Test.cpp (main): Renamed the confusing "server" stuff - to "parent" where appropriate. - - * tests/MM_Shared_Memory_Test.cpp: Don't call ACE_OS::exit() - in the child since this won't clean up the Object_Manager - correctly. Thanks to David Levine for reporting this. However, - we'll still have two "end" statements, but only one begin - statement, which is confusing. I'm not sure how to solve this, - but it won't break anything. - - * tests/MM_Shared_Memory_Test.cpp: Oops, only do the - acquire()/release() of the Process_Semaphore if we have fork()! - - * tests/MM_Shared_Memory_Test.cpp: Added an ACE_Process_Semaphore - so we no longer need to sleep in order to wait for the server to - be initialized. - - * tests/Process_Strategy_Test.cpp (main): Switched the processes - in which the client and server are run so that the server is now - run in the parent and the client is run in the child. This made - it possible to remove the ACE_OS::sleep(1) call because the - acceptor is created before the fork, so the client should always - be able to connect to the server, even if the server isn't - scheduled to run again before the client. - - * tests/Process_Mutex_Test.cpp, - * tests/SV_Shared_Memory_Test.cpp: - Fixed some improper style problems with these tests. - -Sun Oct 03 10:34:19 1999 David L. Levine - - * tests/SV_Shared_Memory_Test.cpp (main): only delete - parent_mutex and parent_synch in the parent, to prevent - double deletion by the child. [Bug 91] - -Sun Oct 03 10:21:15 1999 David L. Levine - - * tests/SV_Shared_Memory_Test.cpp: create parent_mutex and - parent_synch before forking, to avoid race condition between - their creation in the parent and use in the child. This - allowed us to remove the sleep (1) in the child. [Bug 91] - -Sun Oct 03 10:17:21 1999 David L. Levine - - * ace/OS.cpp (ACE_Thread_Adapter::invoke): added casts of - func (to ACE_THR_FUNC) and its return value (to void *) - so that this function will compile for VxWorks and pSOS. - -Sat Oct 2 18:54:38 1999 Vishal Kachroo - - * ace/SOCK_Dgram_Mcast.{cpp,h}: Added ACE_Protocol_info as a - parameter to the QoS enabled private method subscribe_ifs. This - allows the use of ACE_Protocol_Info->iAddressFamily in the call - to join_leaf (). Thanks to Vidya Narayanan - for pointing this out. - -Sat Oct 2 16:20:33 1999 Nanbor Wang - - * ace/config-kcc-common.h: The macro __KCC_VERSION was not - available in 3.3e so we switched to check the existence of this - macro to decide the availability of auto_ptr::reset(). Thanks - to Ossama for noticing this bug. - -Sat Oct 2 16:10:26 1999 Ossama Othman - - * ace/config-linux-common.h: - - Linux (glibc 2.x) has lseek64() so define ACE_HAS_LLSEEK. - - * ace/OS.i (llseek): - - Removed external declaration for llseek() on Linux. Linux uses - lseek64(), not llseek(). Updated macro checks to use lseek64() - for Linux. [Bug 276] - -Sat Oct 2 16:01:50 1999 Douglas C. Schmidt - - * ace/INET_Addr.h (ACE_INET_Addr): Removed an unnecessary "protocol" - string. Thanks to Jeff and Ossama for reporting this. - -Sat Oct 2 12:50:43 1999 Douglas C. Schmidt - - * ace/INET_Addr: Previous, it was not possible to specify the - proto argument in the ACE_INET_Addr constructor because it was - hard-coded to "tcp". Now, this can be passed as a parameter. - Thanks to Jaymes Galvin for this suggestion. - -Fri Oct 1 14:44:12 1999 Vishal Kachroo - - * ace/OS.h : Added the Winsock2 GQOS related #defines to this - file. The #defines are limited to the ones used in the ACE QOS - example. - - * ACE_wrappers/examples/QOS/server.cpp: - * ACE_wrappers/examples/QOS/client.cpp: - * ACE_wrappers/examples/QOS/QosEvent.h: - Changed the QOS example to use the ACE flags instead of Windows - flags. Removed the #defines from the example and moved them to - OS.h - -Fri Oct 1 13:14:17 1999 Douglas C. Schmidt - - * ChangeLog: Added more Borland support. Thanks to - Christopher Kohlhoff for this. - -Fri Oct 01 13:05:24 1999 David L. Levine - - * Makefile: move instructions for creating kits down in - the file, and added note that they're intended for - ACE+TAO developers and maintainers, only. Thanks to - Rick Hess for pointing out that - that wasn't clear. - -Fri Oct 1 08:23:36 1999 Joe Hoffert - - * ace/ATM_Connector.{h,i}: Added add_leaf method and functionality. - -Thu Sep 30 16:55:41 1999 Douglas C. Schmidt - - * tests/Task_Test.cpp (main): Added a short example illustrating - how the new ACE_Thread_Hook mechanism works. - - * ace/OS.cpp: Added new support for the thread_hook to - ACE_OS_Object_Manager. - - * ace/OS.cpp (invoke): Added support for a virtual "start_hook()" - method in a new ACE_Thread_Hook class. This makes it possible - for users to subclass ACE_Thread_Hook perform initialization - operations before the thread entry point method is called back. - Thanks to Chris Hafey for this - suggestion. - -Thu Sep 30 20:40:42 1999 Marina Spivak - - * bin/run_all_list.pm: - Added TAO/examples/Load_Balancing demo to the list of daily - executed tests. - -Thu Sep 30 11:36:20 1999 Charles Frasch - - * include/makeinclude/wrapper_macros.GNU: in checks for - ACE_HAS_GNUG_PRE_2_8, use $(notdir $(CXX)) to properly - handle case where CXX has a directory part. - -Thu Sep 30 11:13:14 1999 Douglas C. Schmidt - - * ace/Pipe.cpp (open): Don't use socketpair() for pipes on LynxOS - since this doesn't work for some reason. Instead, use the - socket emulation. Thanks to David Levine for reporting this. - -Thu Sep 30 10:30:00 1999 Kirthika Parameswraan - - * ace/README: Added documentation for: - ACE_HAS_BROEN_EXTENDED_TEMPLATES Thanks to Fritz Bosch - for suggesting this. - -Thu Sep 30 10:07:38 1999 Douglas C. Schmidt - - * ace/Strategies_T.h: Added - - #define ACE_Refcounted_Hash_Recyclable ARHR - - to work around broken linkers that can't handle long - symbol names. Thanks to Fritz Bosch - for this suggestion. - -Wed Sep 29 20:58:45 1999 Darrell Brunsch - - * ace/config-win32.h: - * ace/config-win32-common.h: - Winsock2.h wasn't being included before my checks of the - winsock version, so I moved it to -common.h instead. - -Wed Sep 29 16:40:45 1999 Nanbor Wang - - The following changes fix the Service_Configurator on Windows - CE. Thanks very much to Kirthika for her help on making this - work. - - * tests/WinCE/DLL_Test.dsp: - * tests/WinCE/ce_tests.dsw: Added the DLL_Test project. - - * ace/ace_ce_dll.dsp: Added DLL.cpp into the project. - - * ace/Service_Types.i (name): - * ace/Service_Object.i (name): Changed to use ACE::strnew to - duplicate the name string. - - * ace/Parse_Node.cpp: Changed all the ACE_*_Node classes to make - copies of all string variables and release when they get - destructed. This is necessary because on Windows CE, the - strings passed into these classes are very short-lived (we use - ASCII to UNICODE conversion macros which make temporary copies - only.) The change shouldn't affect the performance of ACE since - parsing the svc.conf entries should never be in the critical - path. - - * ace/Parse_Node.h: The comments for in - ACE_Location_Node is completely outdated. It now specifies - whether the Service_Object generated by this Location_Node - should be removed or not when it is no longer in use, not the - . - - * ace/OS.i (access): Added a temporary implementation for CE here. - ACE::ldfind check the file accessibility using this function. - Currently, we hard-code the method to check for read-access only - (i.e., the argument is not used) which needs to be - fixed. - - * ace/OS.cpp (fopen): Check for invalid handle and return NULL if - handle is invalid on CE. Otherwise, CE programs get totally - confused. - - * ace/Malloc.cpp (dump): I added some more operations in the dump - methods but forgot to make them UNICODE friendly. - - * ace/config-WinCE.h: Added the macro definition for - ACE_DEFAULT_LD_SEARCH_PATH since CE doesn't support environment - variables at all and we need to hard-code the search path on - CE. - - * ace/README: Added documentation for ACE_DEFAULT_LD_SEARCH_PATH. - - * ace/ACE.cpp (ldfind): When the macro ACE_DEFAULT_LD_SEARCH_PATH is - defined, we should use the hard-coded search path instead of - trying to use getenv to acquire the search path. - - * examples/Service_Configurator/Misc/Timer_Service.cpp: - * examples/Service_Configurator/Misc/Timer_Service.h: Made the - services UNICODE and CE friendly by applying ASYS_TEXT and using - ASYS_TCHAR liberally. - - * examples/Service_Configurator/Misc/README: Added instructions on - how to run the example on Windows CE. - -Tue Sep 28 15:46:23 1999 Darrell Brunsch - - * ace/OS.i: Fixed some GQOS stuff for the older versions of - WinSock 2. - - * ace/config-win32.h: Uses a better detection technique to - figure out whether we are compiling with WinSock 2's newer - headers or not. - -Tue Sep 28 14:48:26 1999 Irfan Pyarali - - * ace/WFMO_Reactor.cpp (handler): Implemented previously - unimplemented function. - -Tue Sep 28 15:02:33 1999 Vishal Kachroo - - * ace/OS.i (ioctl): Added the #if def ACE_HAS_WINSOCK2_GQOS for - the extra fields in struct _flowspec. - -Mon Sep 27 19:16:34 1999 Douglas C. Schmidt - - * ace/OS.i (timezone): SunOS 4 needs to use gettimeofday() to find - the current timezone. Thanks to Kamen Penev - for reporting this fix. - -Mon Sep 27 19:30:54 1999 Carlos O'Ryan - - * THANKS: - Added Dennis to the hall of fame list. - -Mon Sep 27 17:12:51 1999 Vishal Kachroo - - * ace/OS.i: - * ace/OS.h: - Added an overloaded ioctl () that is used when the io control - code is one of SIO_SET_QOS or SIO_GET_QOS. Thanks to Vidya - Narayanan for help with this - feature. - - * ACE_wrappers/examples/QOS/server.cpp: - * ACE_wrappers/examples/QOS/client.cpp: - Made changes to the usage of ioctl () in the above files to - reflect the corresponding changes in ACE. - -Mon Sep 27 13:11:02 1999 Douglas C. Schmidt - - * ace/config-sunos5.5.h: Wrap the define statement in a - conditional that prevents declaration of #define - ACE_HAS_STL_QUEUE_CONFLICT for gcc 2.95. We don't know if this - is a problem in newer versions of Solaris but this will get rid - of it for 5.5.1. Thanks to Siegurd Weber - for this fix. - -Mon Sep 27 16:56:10 1999 Carlos O'Ryan - - * ace/OS.cpp: - ACE_OS::cond_init() has two completely separate versions, i - forgot to fix the NT version too, thanks to Vishal for pointing - this out. - -Mon Sep 27 16:05:35 1999 Darrell Brunsch - - * tests/Object_Manager_Test.dsp: - * tests/run_tests.bat: - * tests/tests.dsw: - * tests/version_tests/Object_Manager_Test.dsp: - * tests/version_tests/version_tests.dsw: - Added Object_Manager_Test support on Win32 and MSVC. - -Mon Sep 27 15:23:47 1999 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - Fixed overloading problems for cond_init() under LynxOS and - Chorus, thanks to John K. Black - for reporting the problem and providing a fix. - This fixes [BUGID:342] - -Mon Sep 27 13:11:02 1999 Douglas C. Schmidt - - * ace/SString.h: Added the default value for the ACE_CString - method set (const char *, int = 1). We had removed the default - values from both the set() methods in order to remove an - ambiguity. However, it appears that it's ok to give just this - method a default value. Moreover, this prevents existing code - from breaking. Thanks to Giga Giguashvili - and Ivan Murthy - for reporting this. - -Sat Sep 25 17:09:57 1999 Carlos O'Ryan - - * ACE version 5.0.5 released. - -Fri Sep 24 17:20:41 1999 Nanbor Wang - - * ace/config-kcc-common.h: KCC does support auto_ptr::reset - after 3.4. Made sure we don't define ACE_AUTO_PTR_LACKS_RESET - for newer version of KCC. Thanks to Ossama for reporting the - problem. - -Fri Sep 24 08:59:13 1999 Douglas C. Schmidt - - * ace/config-sunos4-g++.h: Added ACE_HAS_DIRENT. - Thanks to Kamen Penev for reporting this. - - * tests/Handle_Set_Test.cpp (test_boundaries): Added some casts - and parens so that the code will compile with MSVC++ 5.0. - Thanks to Carlos O'Ryan for reporting this. - - * examples/Connection/blocking/SPIPE-{acceptor,connector}.cpp: - Reformatted some of the code. - -Fri Sep 24 08:27:28 1999 David L. Levine - - * ace/OS.*,Synch.cpp: reverted changes of: - - Thu Sep 23 11:13:38 1999 Wei Chiang - - because Bug 342 proposes a more general fix. - -Thu Sep 23 19:02:47 1999 Vishal Kachroo - - * examples/QOS/server.cpp (main): - * examples/QOS/server.cpp (main): - - Removed the instantiation of ACE_OS_Object_Manager from - the above files. This is done automagically in ACE. - - * examples/QOS/Sender_QOS_Event_Handler.h: - Fixed a warning regarding the #def of MY_DEFPORT. - -Thu Sep 23 14:12:58 1999 Carlos O'Ryan - - * bin/auto_compile: - It was reporting success even when things failed. - -Thu Sep 23 11:13:38 1999 Wei Chiang - - * ace/OS.*,Synch.cpp: Chorus compiler (g++) seems to be - confused by "int" and "int&" in overloaded operations. - A dummy variables to full Chorus compiler is added to - cond_init (ACE_cond_t*, ACE_condattr_t&, LPCTSTR void*). - - * include/makeinclude/rules.bin.GNU,platform_chorus.GNU: - updated to support linking of TAO executables for Chorus. - -Wed Sep 22 19:30:49 1999 Randall Sharo - - * ace/OS.i (sema_wait): on VxWorks, update tv to return - the wait time. [Bug 339] - - * ace/Synch.h (ACE_Semaphore::acquire): updated comment - to show that the absolute acquisition time is returned, - not the elapsed time while waiting. - -Wed Sep 22 16:59:19 1999 Nanbor Wang - - * ace/config-win32-common.h: Added definition of - ACE_AUTO_PTR_LACKS_RESET when ACE_HAS_STANDARD_CPP_LIBRARY is - defined. Thanks to Ossama for the quick hint. - -Wed Sep 22 13:05:55 1999 Jim Rogers - - * ace/Codeset_IBM1047.cpp: added #include "ace/inc_user_config.h" - at the beginning, to properly pick up the ACE_MVS #define - on MVS. - -Wed Sep 22 11:20:39 1999 David L. Levine - - * ace/Basic_Types.h: use u_long for ptr_arith_t, even - with 64-bit ints, with Sun CC. For unknown reasons, - Sun CC 5.0 won't allow a reintepret cast of a 64-bit - pointer to a 64-bit int (with -xtarget=ultra -xarch=v9a). - Thanks to Giga Giguashvili for - reporting this. - -1999-09-21 James CE Johnson - - * docs/tutorials/Makefile - * docs/tutorials/???/* - Added a number of notes about proper usage of THR_NEW_LWP and - THR_DETACHED. Rebuilt all of the .html and .shar files. Probably - touched too many along the way but better safe than sorry. - -Tue Sep 21 21:56:10 1999 David L. Levine - - * docs/ACE-subsets.html: replaced absolute link to - ../ACE-INSTALL.html#repo with a relative link. And, - added "typically" to the 25 percent size reduction figure. - -Tue Sep 21 16:49:36 1999 Douglas C. Schmidt - - * docs/ACE-subsets.html,ACE-INSTALL.html: Updated the document - to point to the -frepo discussion. Thanks to Timothy Canham - for motivating this. - -Tue Sep 21 16:07:26 1999 David L. Levine - - * docs/ACE-subsets.html: fixed size comparison chart; the - For TAO entry was missing for SunOS 5.7/egcs 2.91.60. - Thanks to Timothy Canham - for reporting this. - -Tue Sep 21 15:34:16 1999 Douglas C. Schmidt - - * ace/Service_Config.cpp (process_directives_i): Added a fix - so that the Service_Config allows one level of reentrancy. - Thanks to Jonathan Reis for - suggesting this. - -Tue Sep 21 11:35:57 1999 Douglas C. Schmidt - - * examples/Threads/tss1.cpp (main): Need to rearrange where the - explicit template instantiations are to make certain compilers - happy. Thanks to Jeffrey Franks for - reporting the problem. - - * tests/Makefile.bor: Updated ACE tests makefile to build (almost) - all of the tests. Thanks to Christopher Kohlhoff - for this fix. - - * examples/Reactor/Misc/test_signals_2.cpp (main), - * examples/Reactor/WFMO_Reactor/test_talker.cpp (STDIN_Handler): - Preemptively fixed a couple more potential problems that might - trigger the type of problem reported in the next entry below. - -Tue Sep 21 11:41:33 1999 Ossama Othman - - * apps/Gateway/Gateway/Event_Channel.cpp (open): - Changed cast style to make gcc 2.95.1 happy. Thanks to Jeffrey - Franks for reporting the problems. - -Tue Sep 21 11:25:32 1999 Carlos O'Ryan - - * bin/auto_compile: - Print the most recent ChangeLog entries in the log file. - Report successful builds by default. - Reformat email to make Darrell happier, btw, he made most of - these suggestions. - -Tue Sep 21 11:13:21 1999 Steve Huston - - * ace/streams.h: Added includes/using to pick up strstream for - istrstream, ostrstream classes when ACE_HAS_STD_CPP_LIBRARY is set. - -Tue Sep 21 09:38:20 1999 David L. Levine - - * tests/run_tests.lst: disabled Signal_Test. [Bug 309] - -Tue Sep 21 08:33:21 1999 David L. Levine - - * ACE-INSTALL.html: use shared_libs=1, not shared_libs_only=1, - to build shared libs on VxWorks. That avoids missing libACE.a, - for example, when linking other libraries. Thanks to - Uwe Landrock for reporting this. - -Mon Sep 20 10:52:37 1999 Douglas C. Schmidt - - * ACE-INSTALL.html: Clarified that the --unix flag must be given for - Cygwin tools on Vxworks and NT. Thanks to Uwe Landrock - for reporting this. - -Mon Sep 20 10:34:51 1999 Steve Huston - - * ACE-INSTALL.html: Fixed broken link to Riverace's HP-UX info. - Thanks to Doug for finding this. - -Sun Sep 19 12:48:31 1999 Douglas C. Schmidt - - * tests/Signal_Test.cpp: Only send outselves a signal if we're - running the signal handler in a separate thread. - -Sun Sep 19 10:39:30 1999 Douglas C. Schmidt - - * tests/Signal_Test.cpp: Changed the type of shut_down indicator from - ACE_Atomic_Op<> to sig_atomic_t. This prevents some nasty - deadlocks. - - * tests/run_tests.lst: Reenabled Signal_Test so we can see if it's - still working. - - * tests/Signal_Test.cpp: Changed the worker_child() function so that - just before its thread exits, it will sent its process a signal - to the signal handling thread to dislodge it if it hasn't - shutdown on its own accord yet. Thanks to David Levine for - reporting this. This fixes [BUGID:309]. - - * ACE/Handle_Set.h: Updated the documentation to point out that it's - the *caller's* responsibility to ensure handles aren't - added/cleared from the set if their values are larger than - ACE_DEFAULT_SELECT_REACTOR_SIZE. This behavior is necessary to - ensure efficiency. - - * tests/Handle_Set_Test.cpp (test_boundaries): Fixed the test so - that it will correctly ignore any handle values >= - ACE_DEFAULT_SELECT_REACTOR_SIZE. Thanks to David Levine for - reporting this. This fixes [BUGID:315]. - -Sat Sep 18 18:49:31 1999 Jeff Parsons - - * ace/config-win32-borland.h: - Undefined ACE_HAS_BROKEN_IMPLICIT_CONST_CAST as - suggested by Christopher Kohlhoff . - -Sat Sep 18 17:31:52 1999 Douglas C. Schmidt - - * examples/QOS: Improved the conformance to ACE programming - guidelines a bit. - - * ace/Message_Block.cpp: Whenever a ACE_Message_Block accepts a - ACE_Data_Block that was produced by someone else, it should - verify that the allocator is non-NULL and if it is, then it - should allocate the ACE_ALLOCATOR_RETURN on it. Thanks to - Pierre Grondin for reporting - this. - - * docs/tutorials/006: Fixed the activate() method so that it uses - THR_DETACHED. Thanks to Shafiek Savahl - for reporting this. - -Sat Sep 18 16:17:34 1999 Carlos O'Ryan - - * bin/auto_compile: - The messages include the build name in the subject line. Thanks - to Darrell for suggesting this idea. - -Sat Sep 18 12:00:28 1999 Douglas C. Schmidt - - * ace/Message_Block.h: Changed all the ACE_Message_Block constructors - so that the priority parameter defaults to - ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY, rather than 0. Thanks to - Detlef Becker for this suggestion. - - * ace/OS.h: Added a new macro called - ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY, which defaults to 0 but - which can be overridden in a config.h file to a different value - so it's possible to transparently choose default priorities that - are > 0. Thanks to Detlef Becker - for this suggestion. - -Fri Sep 17 19:49:15 1999 Kirthika Parameswaran - - * tests/Hash_Map_Manager_Test.cpp: Repositioned template - instantiations and static variables to make the debug=0 build - happy with SunCC5.0. - -Fri Sep 17 15:34:46 1999 Nanbor Wang - - * ace/Malloc.cpp (dump): - * ace/Malloc_T.cpp (dump): Enriched various dump methods a bit. - -Thu Sep 16 17:53:57 CDT 1999 Loren Rittle - - * bin/update-ace+tao.sh: Added force option. - -Thu Sep 16 17:43:02 CDT 1999 Loren Rittle - - * bin/update-ace+tao.sh: Improve portability. - -Thu Sep 16 11:08:45 1999 Ossama Othman - - * ace/Makefile: - * tests/Makefile: - - Updated dependencies. - -Wed Sep 15 21:42:08 1999 Carlos O'Ryan - - * ace/OS.h: - Removed extra "typedef" in the declaration of the - ACE_Protocol_Info structure, it was causing a large number of - warnings in several platforms. - -Wed Sep 15 15:08:33 1999 Ossama Othman - - * bin/run_all_list.pm: - - Run the newly added TAO/tests/ORB_init/run_test.pl script when - executing the ORB_init test. - -Wed Sep 15 14:49:50 1999 Balachandran Natarajan - - * ace/Hash_Map_With_Allocator_T.h: - * ace/Hash_Map_With_Allocator_T.i: Added a method unbind () which - unbinds an entry by only taking a key. - -Wed Sep 15 13:19:36 1999 Nanbor Wang - - * ace/Service_Config.cpp (process_directive): Added ace_yyrestart - to make sure the service config parser has a valid buffer to - work on. Thanks to Lothar Werzinger - for reporting this. - -Wed Sep 15 10:50:21 1999 James Hu - - * ace/TP_Reactor.{cpp,h,i} (mask_ops): Fixed a problem where - cancel_wakeup would fail. Since an event handler is suspended - for the duration of the up-call, the wait_mask_ was being - over-written by the suspend_mask_ when the event handler was - resumed. This fixes the problem by extending TP_Reactor with - its own implementations of mask_ops that operate on both - wait_mask_ and suspend_mask_. - -Wed Sep 15 10:14:21 1999 Ossama Othman - - * docs/exceptions.html: - - Corrected some ACE_TRY_THROW examples. The exception being - thrown must have a parameter list, even if it is empty - (e.g.: ACE_TRY_THROW (CORBA::BAD_PARAM ());) - -Tue Sep 14 22:10:24 1999 Kristopher Johnson - - * ace/Process_Manager.cpp (wait): changed array index from - i to idx. Thanks to Dave Madden for confirming this fix. - - Reverted this change: - Tue Sep 14 16:01:04 1999 Christopher Kohlhoff - because it's no longer necessary. - -Tue Sep 14 21:00:45 1999 Vishal Kachroo - - * ace/OS.h: Added a typedef for ACE_Protocol_Info for non-Win32 - platforms. Defined it as a struct (with limited fields) instead - of u_long because applications using ACE_Protocol_Info on - non-Win32 platforms expect this to be a structure instead of a - u_long. - - * ACE_wrappers/examples/QOS/Makefile: Added this for the test to - compile on non-Win32 platforms. - - * ACE_wrappers/examples/QOS/server.cpp: - * ACE_wrappers/examples/QOS/client.cpp: - * ACE_wrappers/examples/QOS/QosEvent.h: - * ACE_wrappers/examples/QOS/Sender_QOS_Event_Handler.cpp: - - Removed the last remains of win32isms from the test. The QoS - test now compiles clean on non-Win32 platforms. - -Tue Sep 14 17:49:33 1999 Luther J Baker - - * ace/Arg_Shifter.cpp (get_the_parameter): removed an errant - return 0; - -Tue Sep 14 16:01:04 1999 Christopher Kohlhoff - - * ace/Process_Manager.cpp (wait): moved declaration of - loop index i out of the loop, because it is used outside - the scope of the loop. - -Tue Sep 14 15:03:21 1999 Ossama Othman - - * bin/run_all_list.pm: - - Added ORB_init test to the list of tests to run. - - * configure.in: - * configure: - - Do not define ACE_USE_POLL, even if system poll() works. - -Tue Sep 14 11:02:06 1999 Balachandran Natarajan - - * ace/Hash_Map_With_Allocator_T.h: - * ace/Hash_Map_With_Allocator_T.cpp:Added a find () method that - would lookup at the underlying Hash_Map_Manager_Ex to do the - find. - -Sat Sep 11 12:18:22 1999 Douglas C. Schmidt - - * ace/Pipe.cpp: Make sure to use SOCK_STREAM rather than SOCK_DGRAM - when creating a socketpair. Thanks to Dave Madden for reporting - this. - -Mon Sep 13 13:31:23 1999 Luther J Baker - - * ace/Arg_Shifter.cpp (get_the_parameter): continued -ORB parsing - fixes. Allows one simple method to return a parameter value for - defined flag is it exists. - -Mon Sep 13 11:01:24 1999 Nanbor Wang - - * examples/Shared_Malloc/test_persistence.cpp: Added comments on - the use of scanf. Thanks to Wenli Bai for - reporting the problem. - -Sun Sep 12 19:23:51 1999 Nanbor Wang - - * ACE version 5.0.4 released. - -Sat Sep 11 12:18:22 1999 Douglas C. Schmidt - - * ace/Process_Manager.cpp: Reverted the following change so that we - just add a fake "friend" to keep G++ happy... Also, fixed a - typo where we should have allocated an ACE_Managed_Process - rather than an ACE_Process. Thanks to Dave Madden for reporting - this. - - * ace/Process_Manager.cpp: Added the ACE_CLASS_IS_NAMESPACE method - to ACE_Managed_Process to make G++ happy. Also, removed the - trailing '_' since we don't need this because we've prefixed - "ACE_" already. - -Fri Sep 10 16:58:34 1999 Nanbor Wang - - * ace/Malloc_T.cpp (open,shared_malloc): Added several placement - new's if position independent malloc is enabled to avoid reading - uninitialized memory. - -Fri Sep 10 16:39:13 1999 Vishal Kachroo - - * examples/QOS/README: - * examples/QOS/server.cpp: - * examples/QOS/client.cpp: - * examples/QOS/Sender_QOS_Event_Handler.h: - * examples/QOS/Sender_QOS_Event_Handler.cpp: - - Removed the Win32-isms from the above files and used cleaner ACE - interfaces. Added a README file that describes the test. - -Fri Sep 10 16:38:51 1999 Nanbor Wang - - * tests/WinCE/*.dsp: VC 6 changed all the dsp files format. - -Fri Sep 10 11:20:47 1999 Douglas C. Schmidt - - * ace/SOCK_Acceptor.h, - ace/SOCK_Connector.h: Updated the documentation to clarify what - happens wrt blocking vs. non-blocking connects and accepts. - Thanks to Jose Rubio for motivating - this change. - -Thu Sep 9 16:27:56 1999 Douglas C. Schmidt - - * ace/Process_Manager, - ace/Process: Added some new patches from Dave Madden to obtain - greater control over the spawn() behavior. - -Fri Sep 10 14:30:17 1999 Vishal Kachroo - - * ace/SOCK_Dgram_Mcast.i: - * ace/SOCK_Dgram_Mcast.h: - - Added two send () functions using overlapped I/O to the - ACE_SOCK_Dgram_Mcast class. These simply call the parent - class functions with the same signature. The recv () functions - need not be added as there is currently no recv () function - within SOCK_Dgram_Mcast class to hide any parent class recv () - functions. - -Fri Sep 10 12:24:17 1999 Carlos O'Ryan - - * THANKS: - Added Joerg Pommnitz to the list of contributors. - -Thu Sep 9 22:48:56 1999 Darrell Brunsch - - * ace/config-hpux-10.x-hpc++.h: - * ace/config-hpux-11.x-hpc++.h: - Fixed spelling of ACE_PREPROCESSOR_ARGS to - ACE_CC_PREPROCESSOR_ARGS. - -Thu Sep 9 18:22:21 CDT 1999 Carlos O'Ryan - - * ace/Future.cpp: - HP/aCC was giving bogus warning about function without a return - statement (the function only has a throw). - -Thu Sep 09 14:56:29 1999 David L. Levine - - * ACE-INSTALL.html: we now fully support QNX Neutrino 2.0. - - * ACE-INSTALL.html: expanded repo=1 discussion. [Bug 248] - -Thu Sep 09 13:21:03 1999 Nanbor Wang - - * ace/ace_ce.dsw: - * ace/ace_ce_dll.dsp: Changed to use the project file format for - CE Toolkit for VC 6. - - * ace/config-WinCE.h: Added some macros definitons for POSIX error - codes. They are removed for Palm-size CE v2.01. This - configuration is still not working because its compilers don't - support placement new, which I don't know how to work around. - - * ace/Process_Manager.cpp (wait): Applied ASYS_TEXT macros. - - * ace/OS.cpp (init,fini): Applied ACE_TEXT macros around error - message print out. - (print_error_message): Added a WinCE specialized - implementation. - -Thu Sep 09 12:45:06 1999 David L. Levine - - * ace/config-qnx-neutrino.h: added ACE_HAS_SIGISMEMBER_BUG. - Sigset_Ops_Test passes with that. - -Thu Sep 09 12:31:51 1999 David L. Levine - - * tests/Handle_Set_Test (handle_vector[]): - limit the maximum handle in handle_vector to 31, 63, 127, and - 254 if ACE_DEFAULT_REACTOR_SIZE is less than or equal to - 32, 64, 128, and 256, respectively. [Bug 315] - -Thu Sep 9 09:39:46 1999 Kirthika Parameswaran - - * etc/purify.solaris2: Added suppression for MLK due to OS accept - call. [Bug 227] - -Thu Sep 09 09:24:29 1999 David L. Levine - - * tests/run_tests.lst: disabled Signal_Test. [Bug 309] - -Thu Sep 9 08:46:58 1999 Douglas C. Schmidt - - * tests/Lazy_Map_Manager_Test.cpp (main): ACEified this a bit - and fixed a typo for the argv argument in main(). - - * Updated the ACE-mail.html file to put the *-request addresses - first. Thanks to Lorin Hochstein for this - suggestion. - -Wed Sep 08 23:01:22 1999 Nanbor Wang - - * examples/Service_Configurator/Misc/Timer_Service.h: Added - ACE_Svc_Export specifiers. - - * examples/Service_Configurator/Misc/Misc.dsw: - * examples/Service_Configurator/Misc/Timer.dsp: Added a new - project file for the dll file. - -Wed Sep 08 22:19:47 1999 David L. Levine - - * ace/config-qnx-neutrino.h: added some magic to allow - compilation to succeed when optimization is enabled, - for x86 targets. The egcs 1.1.2 string.h #includes - x86/string.h, which has anti-social #defines for - memcmp, memcpy, and memset. Therefore, they can't be - used as C++ member functions, such as in ACE_OS. The - hack is to disable optimization just when #including - string.h. - - * include/makeinclude/platform_qnx_neutrino.GNU: default - both optimize and repo to 1. - -Wed Sep 8 17:25:07 1999 Douglas C. Schmidt - - * ace/OS.h (ACE_FACTORY_DEFINE): It shouldn't be necessary - to use ACE_dynamic_cast() or ACE_static_cast() for the - ACE_FACTORY_DEFINE macro because ACE_Service_Object's destructor - is virtual. Thanks to Carlos for pointing this out. - -Wed Sep 8 16:51:45 1999 Kirthika Parameswaran - - * ace/Acceptor.cpp (handle_close): Removed a unnecessary check - for which was causing UMR to occur. - -Wed Sep 08 16:48:55 1999 David L. Levine - - * include/makeinclude/wrapper_macros.gnu (purify): moved - -ignore-signals option to tests/Makefile, because that's - where it's needed. - - * tests/Makefile (purify): added SIGHUP and SIGTERM to - -ignore-signals, to prevent warnings from Signal_Test. - [Bug 309] - -Wed Sep 8 15:58:07 1999 Douglas C. Schmidt - - * tests/Log_Msg_Test.cpp (test_ostream): Make sure to add 1 - to the buffer we allocate dynamically so we can put a NUL at the - end of it! Thanks to David Levine for reporting this. [Bug 312] - - * examples/Service_Configurator/Misc/main.cpp (main): Changed the - test of the -f Service Configurator option so that it links two - different svc.conf files to avoid reentrancy problems. - - * examples/Service_Configurator/Misc/svc.conf: Revised this - svc.conf file (and the application) to illustrate the use of - both static *and* dynamic service. Thanks to Amir Bahmanyari - for motivating this. - -Wed Sep 8 14:05:00 1999 Kirthika Parameswaran - - * ace/Log_Msg.cpp: Shifted the instantiations to the top to keep - SunCC5.0 debug=0 build happy. - - * tests/Cached_Accept_Conn_Test.cpp: Repositioned global - declarations to ward off compilation errors on HP-UX. - -Wed Sep 8 13:13:18 1999 Douglas C. Schmidt - - * ace/Process.h (ACE_Process): Made the spawn() method virtual - so code can be executed just before and/or after the actual - fork(). Thanks to Dave Madden for this fix. - -Tue Sep 07 19:55:52 1999 Irfan Pyarali - - * ace/Map_Manager.h (ACE_Map_Manager): The old map manager (the - one before the changes made to support the active map manager) - used to allow deletion of entries from the map during iteration - (note that this feature was accidental since typically changes - to container invalidates the iterators). The new design did not - support this "feature". However, some users had come to depend - on this feature. - - The solution was to delay the movement of freed slots from the - occupied list to the free list until we run out of free slots in - the free list when binding new entries into the map. However, - this change requires additional state in each entry that keeps - track of whether this entry has been freed. Also, the time - required for binding new entries is less predictable since the - bind may require moving of freed slots from the occupied list to - the free list because of the initial lazy unbind. - - Changes were also required to the Active_Map_Manager since it - directly depends on the internals of the Map_Manager. - - Since this lazy feature is not required in the majority of cases - and results in increased memory consumption, this feature is - only support if ACE_HAS_LAZY_MAP_MANAGER is defined. - - A new test Lazy_Map_Manager_Test.cpp was added to check the new - changes. - - Thanks for Dr. Schmidt for helping with this solution and to - Murphy Ivan for pointing out this - problem. - - Bug fixed: id 228. - -Tue Sep 7 15:19:33 1999 Douglas C. Schmidt - - * tests/Log_Msg_Test.cpp (test_ostream): NUL-terminated the buffer - to avoid an array bounds overflow! Thanks to David Levine for - reporting this. - -Tue Sep 7 12:38:37 1999 Darrell Brunsch - - * tests/Reactor_Timer_Test.cpp: Purify was showing an UMR in - test_registering_one_handler(). This was because Time_Handler - didn't have a constructor that initialized its timer_id_ member - and it wasn't being set in this method (like the others). I - added a default constructor to Time_Handler. [Bug 249] - -Tue Sep 7 08:04:41 1999 Douglas C. Schmidt - - * ace/OS.i (isatty): Fixed this code so that it doesn't use - osf_handle() anymore on NT, but instead just casts the - ACE_HANDLE to an int. Thanks to Mark Winrock - for suggesting this fix and - testing it out. - - * tests/run_tests.lst: Added Signal_Test. - -1999-09-07 Douglas C. Schmidt - - * tests/Signal_Test.cpp (main): Fixed the test so that it won't - try to run the "synchronous signal handler in a separate thread" - on Linux because Linux threads are non-standard wrt signals. - -Mon Sep 6 21:19:27 1999 Douglas C. Schmidt - - * tests/Signal_Test.cpp (run_test): Added an ACE_UNUSED_ARG - for the synchronous_signal_handler pointer-to-function for the - case where ACE_HAS_THREADS is disabled. Otherwise, we get a - warning. - -Mon Sep 6 18:47:18 1999 Darrell Brunsch - - * ace/Process_Manager.h: Moved handle_signal outside of a !defined - ACE_WIN32 block and moved handle_input inside of it, and this - fixes some errors on MSVC. - -Mon Sep 6 14:19:14 1999 Douglas C. Schmidt - - * tests/Reactor_Notify_Test.cpp (main): Added a hyphen to - the ACE_DEBUG printout "with timeout =" so that it says "with - time-out =" to avoid confusing the run_tests.sh script! Thanks - to David Levine for reporting this. - - * ace/Process_Manager.cpp: Integrated more patches from - Dave Madden so that the correct - register_handler() method is used on Win32. - -Mon Sep 06 15:05:17 1999 David L. Levine - - * ace/Makefile: moved ACELIB setting (to null) to before include - of rules.lib.GNU. That way, rules.lib.GNU can use the value of - $(ACELIB) to determine whether the ACE library object files - should be linked into the library, with repo=1. [Bug 248] - - * include/makeinclude/rules.lib.GNU: with repo=1 when building - static libs, except for libACE, include all of the ACE lib's - object files. The prevents multiple instantiations, by GNU - repo, of templates that are used in the ACE library. See the - gcc info pages, Template Instantiation node, for more information. - [Bug 248] - -Mon Sep 6 08:45:31 1999 Douglas C. Schmidt - - * examples/Reactor/WFMO_Reactor: Cleaned up some of the coding in - the examples. - - * ace/Profile_Timer.cpp: Reformatted the code a bit. - - * examples/Threads/process_manager.cpp (main): Fixed some warnings - and errors. Thanks to David for reporting this. - - * ace/OS.i: Fixed ACE_UNUSED_ARG(options) to be - ACE_UNUSED_ARG(wait_options). Thanks to David's build logs for - reporting this. - - * tests/Signal_Test.cpp: Changed the types of parameters passed - to run_test() from int to long so that we can safely cast them - to and from void *'s. Thanks to David Levine for pointing this - out. - - * ace/Process_Manager.cpp (notify_proc_handler): Removed - the now unused parameter h. Thanks to David for pointing this - out. - -Mon Sep 06 07:25:01 1999 David L. Levine - - * ace/OS.h: added ACE_Export to ACE_OS_Exit_Info class - declaration. It shouldn't be necessary, but - Dmitry Goldshtain reports that - Builder 4 needs it. - -Mon Sep 06 03:31:34 1999 Nanbor Wang - - * tests/Signal_Test.cpp (run_test): Removed a redundant use of - ACE_UNUSED_ARG (synchronous_signal_handler). Thanks to KCC 3.3e - for pointing this out. - -Mon Sep 6 01:03:03 1999 Douglas C. Schmidt - - * examples/Threads/Makefile (BIN): Added process_manager.cpp - back into the list of programs that get built automagically. - - * ace/Process_Manager: Added some new patches from Dave Madden - that continue to improve the - ACE_Process_Manager and make it portable between NT and UNIX. - - * examples/Threads: Readded process_manager.cpp now that - Dave Madden has updated it. - -Sun Sep 05 23:52:16 1999 Nanbor Wang - - * ace/OS.h (WIFEXITED,WEXITSTATUS): On platforms that do not - define these macros, we should always assume the child process - exit properly because the return status does not tell us how the - process exited. Likewise, the WEXITSTATUS macro should simply - return the status we got from ACE_OS::wait because it only - contains the exit status of child process. - -Sun Sep 5 23:40:25 1999 Douglas C. Schmidt - - * examples/QOS: Continued to improve the coding style so it'll - look like normal "ACE" code. - -Sun Sep 05 21:32:40 1999 David L. Levine - - * ace/Synch.cpp: removed unnecessary #include of ace/Object_Manager.h. - -1999-09-05 Vishal Kachroo - - Made the receiver of QOS test portable by removing - Win32-isms from it. Files modified : - - * examples/QOS/QosEvent.h: - * examples/QOS/server.cpp: - -Sun Sep 5 13:40:18 1999 Michael Kircher - - * ace/ACE.cpp: Made the status code to be of type - ACE_exitcode instead of int. This is necessary - because of the change on waitpid (). - -Sun Sep 5 10:59:18 1999 Douglas C. Schmidt - - * ace/Process.i (wait): Removed the ACE_static_cast() Michael - had added recently because the change below makes it - unnecessary. - - * ace/OS.h (ACE_OS): Modified the 3-arg wait() and the waitpid() - methods to take an ACE_exitcode* rather than int* so this will - work on Win32. - - * ace/Log_Msg.cpp: Added a new explicit template instantiation - for template class - - ACE_Guard >; - - to fix compiler errors that showed up with EGCS. - - * tests/Signal_Test.cpp (run_test): Added ACE_UNUSED_ARG macros - for several symbols that aren't used when the test is compiled - single threaded. - -Sat Sep 05 02:05:00 1999 Michael Kircher - - * ace/OS.cpp: Fixed a missing "#else". - - * ace/Process.i, - ace/Process_Manager.h, - ace/Process_Manager.cpp: - Fixed an "int" versus "ACE_exitcode" conversion - problem. - -Sat Sep 4 23:37:29 1999 Douglas C. Schmidt - - * ace/config-win32-common.h: Missing a '&&' that was causing - problems on Win32. Thanks to Michael Kircher - for reporting this. - -Sat Sep 04 20:24:32 1999 David L. Levine - - * ace/Handle_Gobbler.i (close_remaining_handles,free_handles): - moved the function definitions ahead of their first use in - the file. - -Sat Sep 04 20:17:49 1999 David L. Levine - - * ace/Pipe.cpp (open): added ACE_UNUSED_ARG (buffer_size) - for all platforms that #define ACE_LACKS_SOCKET_BUFSIZ. - -Sat Sep 4 14:43:36 1999 Douglas C. Schmidt - - * tests/Signal_Test.cpp: Finished off the test so that it now - works for all the various combinations of synchronous and - asynchronous tests. Now, to make it work on Linux... - - * ace/OS.h: The use of ACE_static_cast in the ACE_FACTORY_DEFINE macro - didn't make any sense, so I've replaced it with - ACE_dynamic_cast. - - * ace/Process_Manager.*, - * ace/Process.*, - * ace/OS.h: - Created a new typedef called ACE_exitcode that factors out the - difference between Win32 and UNIX exit codes from wait() - operations. Thanks to Dave Madden for - suggesting this. - -Sat Sep 04 12:22:38 1999 David L. Levine - - * ace/OS.i (shm_open,close,filesize,ftruncate,mmap): moved - these functions up in the file so that they're defined before - being used by ACE_OS::sema_init (). - -Fri Sep 3 11:57:24 1999 Douglas C. Schmidt - - * ace/Event_Handler.h (ACE_Event_Handler): Added the new - handle_exit() method, which is called by the ACE_Process_Manager - when a process exits. Thanks to Dave Madden - for contributing this. - - * ace/Process.*, - ace/Process_Manager.*: Integrated a new round of changes from - Dave Madden that factor out most of the - remaining differences between Win32 and UNIX. - - * ace/OS.h, - * ace/config-win32-common.h: Added a #ifndef for __IBMCPP__ to - make things work for Visual Age C++. Thanks to Boris Kaminer - for reporting this. - - * ace/{ACE,OS}: Added ACE_HAS_UNICODE to conditionally compile the - strnew() definition. Thanks to Boris Kaminer - for reporting this. - - * ace: Added a new optimized ace-dll.icc file so that ACE will - build better with IBM's Visual Age C++. Thanks to Boris Kaminer - for contributing this. - - * ace/OS.h, - * ace/config-win32-common.h: Added a #ifndef for __IBMCPP__ to - make things work for Visual Age C++. Thanks to Boris Kaminer - for reporting this. - - * ace/{ACE,OS}: Added ACE_HAS_UNICODE to conditionally compile the - strnew() definition. Thanks to Boris Kaminer - for reporting this. - - * ace: Added a new optimized ace-dll.icc file so that ACE will - build better with IBM's Visual Age C++. Thanks to Boris Kaminer - for contributing this. - -1999-09-03 Vishal Kachroo - - * ace/OS.i: - * ace/OS.h: Added a new overloaded ACE_OS::ioctl () function that - takes in ACE_QoS as one of the parameters, constructs a windows - QOS from it and passes it to WSAIoctl (). This function can be - used when the I/O control code is SIO_SET_QOS. - -Fri Sep 3 14:58:51 1999 Darrell Brunsch - - * config-aix-4.x.h: - * config-hpux-10.x-hpc++.h: - * config-hpux-11.x-hpc++.h: - * config-mvs.h: - * config-win32-borland.h: - * config-win32.h: - Moved many of the preprocessor information for various - platforms from TAO_IDL to here (in ACE_CC_PREPROCESSOR and - ACE_CC_PREPROCESSOR_ARGS). - -Fri Sep 3 13:52:43 1999 Carlos O'Ryan - - * bin/auto_compile: - Fixed the implementation of the -dont_run option. - -Fri Sep 3 09:05:20 1999 Kirthika Parameswaran - - * ace/Containers_T.cpp (delete_nodes): Removed the redundant check - which was verifying that was always > 0. But - itself is unsigned so thsi check was redundant - causing warnings with egcs. - -Thu Sep 2 23:54:49 1999 Nanbor Wang - - * ace/Containers_T.h (class ACE_Double_Linked_List): Added more - comments to stress that this is not a general purpose container - class. Thanks to Rusty Conover for - suggesting this. - -Thu Sep 2 18:39:23 1999 Douglas C. Schmidt - - * ace/Process_Manager.cpp (handle_close): Did a better job of - fixing the use of ACE_UNUSED_ARG to make EGCS happy. - -Thu Sep 2 12:21:41 1999 Douglas C. Schmidt - - * ace/Select_Reactor_Base: Renamed the notify_set_, alloc_set_, - and free_set_ to *_queue_ since that's what they really are! - -Thu Sep 2 17:42:22 1999 Carlos O'Ryan - - * ace/Malloc_T.cpp: - Eliminated UMR problem with the position independent malloc - support. Thanks to Doug for figuring this stuff out. - -Thu Sep 2 12:21:41 1999 Douglas C. Schmidt - - * tests/Log_Msg_Test.cpp (test_log_msg_features): Changed the - use of %p to prevent an error message from being printed that'll - confuse the run_tests script. - - * Just added the 700th non-DOC group individual who has contributed - to ACE+TAO over the years. In the last year, we've gone from - 400 to 700 contributors, which is great! - - * tests/CDR_File_Test.cpp (main): Fixed a signed/unsigned warning - and removed the unreferenced argc/argv parameters. - - * tests{run_tests.lst,Makefile}: Added the new ACE_Log_Msg.cpp - test. - - * tests: Added a new test called Log_Msg_Test.cpp. This exercises - the many features of the ACE_Log_Msg class. - - * tests/Object_Manager_Test.cpp (main): Just reformatted some - stuff. - -Thu Sep 2 14:42:31 1999 Kirthika Parameswaran - - * tests/Cached_Accept_Conn_Test.cpp: Repositioned - ACE_HAS_BROKEN_EXTENDED_TEMPLATES macro before the inclusion of - the header since thats where the typedefs had been shifted. - Also, to keep both gcc2.7.3 and sunCC5.0 w.o debugging symbols - happy it was necessary to move the definitions of - methods before the instantiations. - -Thu Sep 2 12:21:41 1999 Douglas C. Schmidt - - * ace/OS.h: Added an ACE_static_cast in the ACE_FACTORY_DEFINE macro - to let the compiler catch "bad casts," i.e., when X isn't allow - to be cast from an ACE_Service_Object. Thanks to Jody Hagins - for suggesting this. - - * ace/config-win32-common.h: Deleted - - #define ACE_LACKS_STRPTIME - - and added - - #define ACE_HAS_STRPTIME - #define ACE_LACKS_NATIVE_STRPTIME - - In addition, I removed the wday and yday stuff in - ACE_OS::strptime(). Thanks to Kevin Lyda - for suggesting this. - - * ace/OS.h: Make sure to add a cast to ACE_Service_Object * in the - ACE_FACTORY_DEFINE macro so that the offset will be corrected - automagically. Thanks to Eric C. Newton for - reporting this and suggesting a fix. - - * ace/Log_Msg: Modified the msg_callback(ACE_Log_Msg_Callback *) - method to return the existing ACE_Log_Msg_Callback * so we can - support "chaining". - - * ace/Log_Msg.cpp: Added explicit template instantiations for - ACE_Reverse_Lock. - - * ace/Log_Msg.cpp: Changed the implementation described below to - use an ACE_Reverse_Lock, which is cool ;-). Thanks to Carlos - for explaining how this worked. - - * ace/Log_Msg.cpp: Don't hold the lock during a msg_callback() to - avoid deadlock. Thanks to Matthew Davis - for reporting this. - - * tests/Cached_Accept_Conn_Test.cpp: Removed a "static" from - int debug so that the friggin' SunC++ compiler will link... - -Thu Sep 02 11:04:18 1999 David L. Levine - - * bin/check_build_logs: added /dev/null to egrep invocation - so that it always shows the file name. Thanks to Doug for - reporting this. - -Thu Sep 02 11:02:25 1999 David L. Levine - - * ace/config-qnx-neutrino.h: added ACE_LACKS_SOCKET_BUFSIZ. - -Thu Sep 2 08:56:39 1999 Jeff Parsons - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - Added << and >> operators for ACE_CDR::Char. These are not - to be used by TAO or the IDL compiler, they are solely for - use with the ACE library, so that 1-byte values can be - streamed without using the CORBAisms to_char and from_char. - Otherwise, if a 1-byte value were on the rhs of a CDR operator, - the compiler will probably promote the operator to the one - using ACE_CDR::Short, which is not at all what we want. - -Wed Sep 1 21:37:59 1999 Douglas C. Schmidt - - * tests/Makefile (BIN): Added the new CDR_File_Test.cpp to - the list of files that are automatically built. Also, added - this to run_tests.lst. - - * tests: Added a new test called CDR_File_Test, which - exercises the ACE_CDR_Stream features in conjunction with file - I/O. Thanks to Giga Giguashvili . - - * tests/CDR_Test.cpp: Moved the main() function to the end - of the file. - - * ace/OS.i: Moved the new ACE_OS::filesize() method down in - this file until *after* the ACE_OS::close() method to prevent a - "used before being inlined" error on DU. Thanks to David for - reporting this. - -Wed Sep 1 20:41:03 1999 Carlos O'Ryan - - * tests/run_tests.lst: - Disabled the Time_Service_Test, it was crashing the parent - process. - -Wed Sep 01 19:46:30 1999 David L. Levine - - * bin/check_build_logs: allow log directory (-l option argument) - to start with anything except -. - -Wed Sep 1 17:15:25 1999 Kirthika Parameswaran - - * ace/Arg_Shifter.cpp (get_current_parameter): Removed egcs - warnings by making int and also cleaned up the - code. - -Wed Sep 1 15:51:41 1999 Douglas C. Schmidt - - * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: Fixed a typo - where ACE_reinterpret_cast() was misspelled. Thanks to - David for reporting this. - - * examples/QOS/server.cpp: "ACE"-ified this example. - - * ace/OS: Added a new method called ACE_OS::filesize() that - takes a LPCTSTR so that we can pass a file name to this. - - * ace/config-win32-borland.h: Changed ACE_CC_COMPILER to - CPP32.EXE on the recommendation of Christopher Kohlhoff - . - - * ace/Synch.h: Updated the documentation of ACE_Semaphore::remove() - to clarify that it should only be called by one thread to avoid - race conditions. Thanks to Clarence Bishop - for mentioning this. - -1999-09-01 Vishal Kachroo - - * ACE_wrappers/ace/OS.h: - * ACE_wrappers/ace/OS.i: - Added a wrapper ACE_OS::enum_protocols () for WSAEnumProtocols(). - Tested this function with the ACE QOS test. - - * examples/QOS/client.cpp: - * examples/QOS/server.cpp: - Replaced the occurences of WSAEnumProtocols with - ACE_OS::enum_protocols () and successfully ran the QOS test. - -Wed Sep 1 15:51:41 1999 Douglas C. Schmidt - - * ace/OS.i: Ensure that ACE_OS::localtime_r() does the "Right - Thing"[TM], i.e., returns the pointer in the buffer provided by - the user, even if there's no native support for localtime_r() on - the OS platform. In addition, added an ACE_OS_GUARD for this - use-case so that we don't have race conditions in MT programs. - This necessitated moving the localtime_r() wrapper facade into - the OS.cpp file. Thanks to Jody Hagins for - these suggestions. - - * ace/SV_Semaphore_Complex: Improved the documentation a bit - based on comments from Herbert . - -Wed Sep 1 15:15:00 1999 Luther Baker - - * ace/Arg_Shifter.h: Added function (get_current_parameter(offset) - to return parameters that may be mangled with flags. - - * ace/Arg_Shifter.cpp: Implemented function above. - -Wed Sep 1 14:50:48 1999 Nanbor Wang - - * ace/OS.h: Added definitions for _O_BINARY, _O_TEXT, and _O_RAW - if they are not defined. Thanks to Kevin Lyda - for pointing this out. - -Wed Sep 1 14:30:58 1999 Darrell Brunsch - - * ace/Process_Manager.cpp: Typo fixed. - -Wed Sep 1 11:18:26 1999 Douglas C. Schmidt - - * tests/Reactor_Notify_Test.cpp: Fixed an erroneous use of = - rather than != and added another pair of explicit template - instantiations for ACE_Auto_Basic_Ptr<>. Thanks to Carlos for - reporting this. - - * ace/Process_Manager.cpp (handle_close): Removed a warning - about unused parameter. Thanks to David for reporting this. - - * tests/Reactor_Notify_Test.cpp: I needed to add - - #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - - rather than - - #else - -Wed Sep 01 11:55:31 1999 Steve Huston - - * ace/CORBA_Handler.{h cpp} (ACE_ST_CORBA_Handler): Made the - ACE_ST_CORBA_Handler instance get cleaned up via object manager - at rundown, giving it a chance to clean up it's reactor - registrations and reset its Orbix callbacks. Also added a new - capability of allowing the ACE_ST_CORBA_Handler to daisy-chain - the Orbix callbacks - this is only enabled if - ACE_TAKEOVER_ORBIX_CALLBACKS is set in the config.h file, and - its use is highly discouraged unless you really know what you're - doing and can account for all of the callbacks. - -Wed Sep 1 11:18:26 1999 Douglas C. Schmidt - - Thanks to David for reporting this. - - * tests/run_tests.lst: Disabled the Process_Manager_Test - until it's stable. Thanks to David for reporting this. - -Wed Sep 1 00:05:04 1999 Douglas C. Schmidt - - * ace/config-win32-borland.h: Added a #define for ACE_CC_COMPILER - so that things will work properly on Borland. Thanks to - Goldshtain Dmitry and Adrian - Mercieca for reporting this. - -Wed Sep 01 10:45:15 1999 David L. Levine - - * ace/OS.{h,cpp} (ACE_OS_Object_Manager::init,fini): replaced - use of ACE_ERROR with a new, private method (print_error_message). - If one of the operations in init () fails, then the Log_Msg - instance might not work properly. Thanks to Alain Magloire - for noting this. - - print_error_message also consolidates the common const char - strings into one place. This entire changes reduces the size - of OS.o by about 900 bytes. - -Wed Sep 1 00:05:04 1999 Douglas C. Schmidt - - * tests/Reactor_Notify_Test.cpp: Only run the iterations in - this test for 2000 times, not 10000 times. - -Wed Sep 1 07:41:58 1999 Jeff Parsons - - * ace/Process_Manager.cpp (wait): - An ACE_NEW_RETURN needed ACE_INVALID_PID for the return - value instead of ACE_INVALID_HANDLE. - -Wed Sep 1 00:05:04 1999 Douglas C. Schmidt - - * tests/Process_Manager_Test.cpp: Made some minor changes in - this test so that it'll compile. We still need to update it so - it'll run correctly with the new version of ACE_Process_Manager, - however. - - * ace/Process_Manager: Integrated the latest and greatest - ACE_Process_Manager from Dave Madden . This - should now work relatively transparently on all OS platforms - that support processes. We'll be adding a new - Process_Manager_Test.cpp shortly... - - * tests/Reactor_Notify_Test.cpp: Modified this test to exercise - the new user-level notification queueing in the ACE_Reactor. - -Tue Aug 31 16:05:14 1999 Douglas C. Schmidt - - * ace/Process_Manager.cpp (handle_close): Added an ACE_UNUSED_ARG - to keep the compiler from warning that the "handle" parameter - isn't used. - - * ace/OS.h: Added a new #defined called - ACE_REACTOR_NOTIFICATION_ARRAY_SIZE that designates the size of - the array of ACE_Notification_Buffers used by the new Reactor - user-level notification queue feature. - - * ace/Select_Reactor_Base: Added support for a user-level - notification queue that can buffer very large amounts of pending - notifications, i.e., well beyond the 64 kbyte limit imposed by - the use of a socket. This feature is only enabled if - ACE_HAS_REACTOR_NOTIFICATION_QUEUE is enabled in a config.h - file. Thanks to Detlef Becker - for suggesting this and contributing a prototype implementation. - -Tue Aug 31 20:10:49 1999 Yamuna Krishnamurthy - - * ace/OS.h: Added the ACE_HAS_NO_THROW_SPEC check in order to - suppress the generation of throw specs to placate some compilers - and make it easier for CORBA developers to by lazy wrt C++ - exception throw specs ;-). Thank to Andreas Geisler - for suggesting this addition - -1999-08-31 Vishal Kachroo - - Modified the ACE GQoS test to use a single handler registered - for QOS_MASK|READ_MASK instead of two separate handlers. Had to - remove the following files and add other files. - - * ACE_wrappers/examples/QOS/QOS_Event_Handler.cpp - * ACE_wrappers/examples/QOS/Read_Handler.h - * ACE_wrappers/examples/QOS/QOS_Event_Handler.h - * ACE_wrappers/examples/QOS/Read_Handler.cpp - - Added the following files : - - The Sender event handler is only registered for QOS events. It - uses the ACE_OS::sendto () as soon as it receives a QOS event. - - * ACE_wrappers/examples/QOS/Sender_QOS_Event_Handler.cpp - * ACE_wrappers/examples/QOS/Sender_QOS_Event_Handler.h - - The Receiver event handler is registered for both QOS as well as - READ events since it has to initially wait for a PATH RSVP - message from the sender (QOS event, finally!!) and then read - from the same QOS enabled socket. - - * ACE_wrappers/examples/QOS/Receiver_QOS_Event_Handler.cpp - * ACE_wrappers/examples/QOS/Receiver_QOS_Event_Handler.cpp - - The client and server have been modified to subscribe to the - same multicast session. The RSVP SP on the receiver side sends - RESV messages at the earliest indication of QOS parameters AND - existence of a matching PATH state. This state is found only if - a multicast socket has been created (by the sender) with a - matching "multicast session" address. - - * ACE_wrappers/examples/QOS/server.cpp: - * ACE_wrappers/examples/QOS/client.cpp: - - Modified the following to incorporate the removal and addition - of files listed above. - - * ACE_wrappers/examples/QOS/QOS.dsw - * ACE_wrappers/examples/QOS/client.dsp - * ACE_wrappers/examples/QOS/server.dsp - -Tue Aug 31 16:05:14 1999 Douglas C. Schmidt - - * ace/Malloc_T, - * ace/Malloc: For historical reasons, we'd had a nested class - called ACE_Malloc_Control_Block within ACE_Malloc_Header. This - was redundant and confusing, so I merged the fields of - ACE_Malloc_Control_Block into ACE_Malloc_Header. In addition, I - also added a constructor that initialized the fields to 0 so - that we won't have problems with Purify complaining about - uninitialized memory reads. Thanks to Carlos for reporting - this. - -Tue Aug 31 15:54:56 1999 Douglas C. Schmidt - - * ace/Process_Manager.h: There was a bizarre default value - for the pid parameter, which was helping to cause ambiguity - warnings from the C++ compiler. I've removed this. - -Tue Aug 31 00:16:34 1999 Douglas C. Schmidt - - * build/egcs/tests/Cached_Accept_Conn_Test.h: Moved the template - class into the header file so that IBM C++ will be happy. - - * tests/Cached_*_Test.h: Updated these files to include the proper - descriptive information. - - * tests/Upgradable_RW_Test.h: Cleaned up the formatting for this - test. - - * tests/Cached_Accept_Conn_Test.cpp, - * tests/Cached_Conn_Test.cpp, - * tests/Conn_Test.cpp, - * tests/DLList_Test.cpp, - * tests/Hash_Map_Manager_Test.cpp: - Fixed some "order of definition" problems caused by the - workarounds for SunC++ 5.0 -g bugs. Also replaced the use of - ADDR and STRING with ACE_ADDR and ACE_STRING to avoid potential - clashes with symbols in the global name space. Thanks to David - for reporting this. - -1999-08-31 Vishal Kachroo - - * ACE_wrappers/examples/QOS/server.cpp - * ACE_wrappers/examples/QOS/client.cpp - * ACE_wrappers/examples/QOS/QOS_Event_Handler.cpp - * ACE_wrappers/examples/QOS/QosEvent.h - * ACE_wrappers/examples/QOS/Read_Handler.h - * ACE_wrappers/examples/QOS/QOS_Event_Handler.h - * ACE_wrappers/examples/QOS/Read_Handler.cpp - * ACE_wrappers/examples/QOS/QOS.dsw - * ACE_wrappers/examples/QOS/client.dsp - * ACE_wrappers/examples/QOS/server.dsp: - These files test the new ACE GQoS features, which - implement IntServ features over WinNT 2000. - -Tue Aug 31 14:47:54 1999 Kirthika Parameswaran - - * ACE-INSTALL.html: Added a note on building egcs with the - -fsquangle option contributed by Skye Sweeney - . - -Tue Aug 31 00:16:34 1999 Douglas C. Schmidt - - * bin/clone.cpp: Modified this program so that it'll work more - flexibly with symbolic links. In particular, clone can now - generate symbolic links with relative pathnames to the source. - Thus, you can now call it like this: - - % clone -s ../../foo . - - and all of the cloned links will properly refer to ../../foo - (adding the appropriate number of extra '..'s to handle - directory nesting). Thanks to Jonathan Biggar - for these fixes. - - * ace/Process.cpp: Need to #include "ace/Signal.h". - - * Added a series of fixes that allow ACE to build and - run cleanly with SunC++ 5.0 and Solaris 7 even when debugging is - NOT enabled. These changes require moving the explicit template - instantiations from the BOTTOM of the *.cpp files to near the - top. Thanks to Robert Shewan for reporting - this. - - * ace/Process_Manager.cpp: Fixed some warnings. Thanks to - Carlos for reporting this. - -Mon Aug 30 21:14:46 1999 Douglas C. Schmidt - - * ace/Process_Manager.cpp: Added the destructor for - ACE_Process_Descriptor. Thanks to David for reporting this. - -Mon Aug 30 17:20:56 1999 David L. Levine - - * ace/config-qnx-neutrino.h: added ACE_LACKS_MUTEXATTR_PSHARED. - - * ace/OS.i (mutex_init): enable the ACE_UNUSED_ARG (type) - statement with ACE_LACKS_MUTEXATTR_PSHARED. - -Mon Aug 30 17:10:00 1999 Kirthika Parameswaran - - * ACE-INSTALL.html: Added a note about the "-fsquangle" option - to be used with egcs to shorten long symbol names. - -Mon Aug 30 16:12:36 1999 Douglas C. Schmidt - - * ace/Process.i: Oops, the implementation of gethandle() was - in a Win32-specific part of the code... - - * ace/Msg_WFMO_Reactor.h: Fixed a problem that was causing - ACE_Msg_WFMO_Reactor from being included in the documentation - windex files. Thanks to Jody Hagins for reporting this. - -Mon Aug 30 16:16:46 1999 Ossama Othman - - * PROBLEM-REPORT-FORM: - - Updated to point to refer reports ace-bugs mailing list. - -Mon Aug 30 14:27:26 1999 David L. Levine - - * tests/Cached_Accept_Conn_Test.cpp,Cached_Conn_Test.cpp, - Map_Manager.cpp: - use the explicit template instantiations even with - ACE_HAS_GNU_REPO. g++ 2.91.66 misses some of them with -frepo. - -Mon Aug 30 15:23:12 1999 Douglas C. Schmidt - - * ace/Process_Manager: Integrated the new features that make it - possible to notify a Reactor when a process exits. Thanks to - Dave Madden for contributing this. - - * ace/Process: Added a more portable timed wait() operation for - UNIX platforms. However, this method has the following two - limitations: (1) on UNIX platforms this function uses , - i.e., it overwrites any existing alarm and (2) it steals all - SIGCHLDs during the timeout period, which will break another - ACE_Process_Manager in the same process that's expecting SIGCHLD - to kick off process reaping. If you know a good solution to - this please let us know. Thanks to Dave Madden - for contributing this. - - * ace/Process: Added setgroup() and getgroup() methods to - ACE_Process_Options so that we can manage groups of processes. - Thanks to Dave Madden for contributing this. - - * examples/OS/Process/process.cpp: Added a new version that - tests the various wait() methods on ACE_Process. Thanks to Dave - Madden for contributing this. - - * config-chorus.h, - config-cray.h, - config-cygwin32-common.h, - config-freebsd-pthread.h, - config-freebsd.h, - config-hpux-9.x.h, - config-hpux-9.x.h, - config-lynxos.h, - config-netbsd.h, - config-sunos4-g++.h, - config-sunos4-lucid3.2.h, - config-sunos4-sun3.x.h, - config-sunos4-sun4.1.4.h, - config-sunos4-sun4.x-orbix.h, - config-sunos4-sun4.x.h, - config-win32-common.h: - Added ACE_LACKS_SETPGID on the assumption that platforms lacking - getpgid() won't have setpgid() either. If this turns out to be - incorrect, please let me know. - - * ace/OS: Added a new wrapper facade method for setpgid(). Thanks to - Dave Madden for contributing this. - - * ace/OS.h: Added a new macro called ACE_INVALID_PID. Thanks to - Dave Madden for contributing this. - - * ace/Local_Tokens.h: Added a comment explaining that these locking - classes aren't intended as general-purpose synchronization - mechanisms. Thanks to Brian Wright - - * examples/Misc/test_trace.cpp (main): Added a call to - ACE_OS::atexit() to make sure we test this someplace. - -Mon Aug 30 12:11:06 1999 Carlos O'Ryan - - * ace/Strategies.i: - Once a Recyclable object reaches the ACE_RECYCLABLE_CLOSED state - its state cannot change. This eliminates a nasty race condition - where one thread detects that the connection is closed (and sets - the state accordingly), but another thread changes the state to - IDLE, based on old information. - Thanks to Mark L Boriack for reporting - this problem and helping us debug it. - -Mon Aug 30 10:43:08 1999 Carlos O'Ryan - - * ace/config-irix6.x-common.h: - Added ACE_HAS_SIGSUSPEND and ACE_HAS_TIMEDWAIT - -Mon Aug 30 10:18:52 1999 Ossama Othman - - * PROBLEM-REPORT-FORM: - - Fixed typo. - - * acconfig.h: - * configure.in: - - Removed ACE_LACKS_ATEXIT test since the macro no longer exists. - - Added test for ACE_HAS_SIGSUSPEND. - -Mon Aug 30 07:38:11 1999 David L. Levine - - * tests/Message_Block_Test.cpp, - examples/Reactor/Misc/test_event_handler_t.cpp: - use the explicit template instantiations even with - ACE_HAS_GNU_REPO. g++ 2.91.66 misses some of them with -frepo. - -Sun Aug 29 22:57:26 1999 Douglas C. Schmidt - - * tests/Signal_Test.cpp (worker_parent): Revised the test - so that we transmit the parent process ID in argv so that the - child doesn't have to "guess." This solves the annoying - problems with Linux threads... - -Sun Aug 29 21:35:17 1999 David L. Levine - - * ace/config-g++-common.h: - 1) Don't #define ACE_HAS_EXPLICIT_INSTANTIATION with - ACE_HAS_GNU_REPO, so that -frepo can do its thing. [Bug 248] - 2) #undef ACE_HAS_STRING_CLASS with ACE_HAS_GNU_REPO, because - egcs 2.91.66 can't build IOStream test (due to an unresolved - basic_string method instantiation) otherwise. - - * ace/config-aix-4.x.h,ace/config-cygwin32-common.h, - ace/config-hpux-10.x-g++.h,ace/config-irix5.3-g++.h, - ace/config-irix6.x-g++.h,ace/config-linux-common.h, - ace/config-lynxos.h,ace/config-osf1-4.0.h,ace/config-sunos4-g++.h, - ace/config-sunos5.4-g++.h,ace/config-sunos5.5.h, - ace/config-unixware-2.*-g++.h: - moved ACE_HAS_STRING_CLASS #define before #include of - config-g++common.h, so that config-g++-common.h can #undef - it with ACE_HAS_GNU_REPO. - - * include/makeinclude/rules.lib.GNU: when ace_lib_prelink is - enabled, add a link step before building a library. This is - used, for example, to insert template instantiations into - object files. [Bug 248] - - * include/makeinclude/wrapper_macros.GNU: set ace_lib_prelink - to 1 when repo is enabled. Added ACE_NUL and ACE_NUL_STDERR - macros, for internal use to support the prelink step. [Bug 248] - -Sun Aug 29 07:53:33 1999 Douglas C. Schmidt - - * tests/Signal_Test.cpp: Linux threads are problematic because - getppid() isn't the process id of your parent PROCESS, it's the - "process" id of your parent THREAD. Yikes! Therefore, I had to - rearrange this test so that it'll work on Linux. - - * ace/config-qnx-neutrino.h, - * ace/config-vxworks5.x.h, - * ace/config-osf1-4.0.h, - * ace/config-sunos5.5.h, - * ace/config-linux-common.h: Added support for - the ACE_HAS_SIGTIMEDWAIT and ACE_HAS_SIGSUSPEND macros. - - * ace/OS: Added a new sigsuspend() wrapper to class ACE_OS. This - implementation is "smarter" than the default behavior of - sigsuspend(2) because it'll handle NULL sigset_t *'s gracefully. - - * ace/Signal: Make the use of ACE_Sig_Set & parameters - const-correct. - - * ace/Signal: Added a new method for ACE_Sig_Action that'll register - an ACE_Sig_Set's worth of signals simultaneously. - - * ace/Signal: Updated the documentation to explain what the various - constructors do. - - * ace/Process.h: Updated the documentation for ACE_Process::spawn() - to explain what the return values are. - - * tests/Makefile: Added Signal_Test to the list of tests that are - built automatically. - - * tests: Added a new test, Signal_Test.cpp, that exercises the - various signal handling capabilities supported by ACE on various - OS platforms. - - * ace/OS.h, - * ace/README, - * ace/config-vxworks5.x.h: - Removed all mention of the ACE_LACKS_ATEXIT feature. This is - now the default behavior because we ACE_OS_Object_Manager::at_exit() - to get consistent semantics, as described below. Thanks to David - for pointing this out. - - * ace/OS.i: Changed the implementation of ACE_OS::atexit() to always - use the ACE_OS_Object_Manager::instance ()->at_exit() method so - that we get consistent semantics across platforms. - -Sun Aug 29 18:27:38 1999 Ossama Othman - - * ACE.ifnames: - * ace-diff-config.in: - - Removed ace-diff-config.in and ACE.ifnames from the repository. - They are only used for internal ACE Configuration Project - testing. - - * Makefile.am: - * configure.in: - - Removed references to ace-diff-config.in and ACE.ifnames. - - * acconfig.h: - * configure.in: - - Added entries and tests for the following macros: - - ACE_AUTO_PTR_LACKS_RESET - ACE_HAS_LLSEEK - ACE_HAS_EXPLICIT_KEYWORD - ACE_HAS_MUTABLE_KEYWORD - ACE_HAS_STD_TEMPLATE_SPECIALIZATION - ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION - ACE_HAS_SIGTIMEDWAIT - ACE_LACKS_ATEXIT - ACE_LACKS_GETPPID - - * configure.in: - - Fixed auto_ptr test. auto_ptr was being used incorrectly. - -Sun Aug 29 07:53:33 1999 Douglas C. Schmidt - - * tests/Process_Manager_Test.cpp: Changed the names of the signal - handlers to one_child_synchronous_signal_handler() and - multiple_children_synchronous_signal_handler() to reflect how - they are used. - - * ace/OS.[hi]: Added a new wrapper for sigtimedwait() so that - we can encapsulate this. To make programming more consistent, - the encapsulation uses an ACE_Time_Value, rather than a struct - timespec. - - * ace/config-linux-pthread.h, - * ace/config-linux-lxpthreads.h: Removed the - - #define ACE_HAS_SIGWAIT - - macro since this was already defined in config-linux-common.h. - - * tests/Malloc_Test.cpp: Improved the test by printing out - additional diagnostic information. Also validated that it works - when ACE_DEFAULT_BASE_ADDR == 0 on Solaris using SunCC (with - purify) and EGCS. - - * ace/Malloc: Added a dump() method to ACE_Malloc_Header. - - * ace/Process_Manager.cpp (ACE_Process_Descriptor): Changed - a -1 to a 0 to prevent a compiler warning. Thanks to - David Levine and DEC UNIX for reporting this. - -Sun Aug 29 00:14:09 1999 Luther Baker - - * ace/Arg_Shifter.h (cur_arg_strncasecmp): Removed and replaced earlier - method 'is_or_contains_ignore_case' with 'cur_arg_strncasecmp.' - This method does less and it is more self-contained, adding protection - and greater flexibility for the program program using it. - - * ace/Arg_Shifter.cpp (cur_arg_strncasecmp): Implementation - corresponding with changes in ACE_Arg_Shifter class. - -Sun Aug 29 00:13:35 1999 Douglas C. Schmidt - - * ace/Process_Manager.i: Moved the destructor for - ACE_Process_Descriptor out of the *.i file since it's always - called by vector delete and therefore inlining it is pointless. - -Sat Aug 28 23:46:55 1999 Douglas C. Schmidt - - * ace/Process_Manager.cpp (resize): The loop should run - from 0 < this->current_count_ rather than 0 < - this->max_process_table_size_. - -Sat Aug 28 16:28:33 1999 David L. Levine - - * ace/Synch_T.i: reordered some methods to avoid - use before definition. - -Fri Aug 27 18:52:00 1999 Luther Baker - - * ace/Arg_Shifter.h (is_or_contains_ignore_case): added method - to facilitate CORBA spec in ORB_init. - - * ace/Arg_Shifter.cpp (is_or_contains_ignore_case): implemented - the method added. Part of a larger project to implement CORBA - spec regarding -ORB parsing in ORB_init. - -Fri Aug 27 18:58:50 1999 Douglas C. Schmidt - - * tests/run_tests.lst: Reenabled the Process_Manager_Test since - it now seems to work fine with EGCS after the fix noted below. - -Fri Aug 27 18:39:14 1999 Douglas C. Schmidt - - * ace/Process_Manager.cpp (wait): Fixed a mistake in the coding - logic whereby we were returning from the function in a loop even - when there was no error. Thanks to David Levine and DEC UNIX - for pointing this out. - -Fri Aug 27 16:05:49 1999 David L. Levine - - * ace/OS.*,Log_Msg.cpp,Synch_T.i: reverted changes of - Fri Aug 27 11:29:21 1999 David L. Levine - to see if they caused problems on NT. Thanks to Michael - and Jeff for reporting this. - -Fri Aug 27 12:01:37 1999 David L. Levine - - * ace/OS.cpp (mktime): added static cast of -1 return value - to time_t to avoid warnings on VxWorks. - -Fri Aug 27 11:38:36 1999 Nanbor Wang - - * ace/Service_Config.cpp (process_directives): Remember to close - down the svc.conf file pointers once they are processed. Thanks - to Lothar Werzinger for pointing - this out. - -Fri Aug 27 11:29:21 1999 David L. Levine - - * ace/OS.*: moved ACE_OS_Recursive_Thread_Mutex_Guard from - OS.cpp to OS.h so that Log_Msg.cpp can use it. - - * ace/Log_Msg.cpp: replaced use of ACE_Guards with - ACE_OS_Thread_Recursive_Mutex. [Bug 262] - - * ace/OS.h (ACE_OS_Recursive_Thread_Mutex_Guard::lock): - added this method. - - * ace/OS.cpp (ACE_OS_GUARD,ACE_TSS_CLEANUP_GUARD, - ACE_TSS_BASE_GUARD): fixed to use - ACE_OS_Recursive_Thread_Mutex_Guard::lock. Added - _RETURN versions. - - * ace/Synch_T.i: reordered some methods to avoid - use before definition. - -Fri Aug 27 09:53:09 1999 Joe Hoffert - - * ace/ATM_Stream.{h,cpp}: added get_vpi_vci method. - * examples/IPC_SAP/ATM_SAP/CPP-{client,server}.cpp: Changed tests to - print out VPI and VCI after connected. - -Fri Aug 27 10:50:10 1999 David L. Levine - - * ACE version 5.0.3 released. - -Fri Aug 27 09:32:26 1999 David L. Levine - - * bin/make_release: added some diagnostics to see why - diffs aren't being created. - -Fri Aug 27 07:17:58 1999 Toshio Hori - - * ACE-INSTALL.html: fixed a typo, missing ; after - < and >. - -Thu Aug 26 21:01:02 1999 Jim Rucker - - * ace/Thread_Manager.cpp (spawn_i): on VxWorks, if t_handle - is non-0, set it with thr_handle. - -Thu Aug 26 16:33:42 1999 David L. Levine - - * ace/Log_Msg.cpp: removed unnecessary #include "ace/Synch_T.h". - [Bug 262] - -Thu Aug 26 13:49:00 1999 David L. Levine - - * examples/Threads/Makefile: removed process_manager from BIN. - See Sat Aug 21 12:36:40 1999 Douglas C. Schmidt. - -Thu Aug 26 12:22:55 1999 David L. Levine - - * ace/config-ghs-common.h: on Sun, added - ACE_HAS_NONSTATIC_OBJECT_MANAGER. It's necessary - to prevent seg fault on startup. Thanks to - David Sunwall for - reporting this problem. - -Thu Aug 26 12:11:09 1999 David L. Levine - - * docs/ACE-guidelines.html: added guidelines to avoid - default arguments, and favor narrow interfaces. - -Thu Aug 26 11:44:26 1999 David L. Levine - - * tests/Time_Value_Test.cpp (main): added static casts - of the doubles to longs. g++ 2.7.2.3 warned about - passing a double to a long :-) - -Thu Aug 26 11:20:55 1999 David L. Levine - - * tests/Time_Value_Test.cpp (main): added a test showing - that ACE_Time_Value (2.5) == ACE_Time_Value (2). - The 2.5 gets coerced to a long with value 2. Beware . . . - -Thu Aug 26 10:43:04 1999 Carlos O'Ryan - - * ace/config-sunos5.6.h: - egcs-2.95 under Solaris 5.6 does not need - ACE_HAS_STL_QUEUE_CONFLICT, thanks to Krishnakumar - B. for reporting this problem. - This fixes [BUGID:264] - -Thu Aug 26 07:29:42 1999 David L. Levine - - * ace/OS.{h,i} (ACE_Time_Value): reverted - Wed Aug 25 22:05:54 1999 David L. Levine - change. It caused overload ambiguity when the types of - sec and usec didn't match, and on Sun CC 4.2/SunOS 5.6. - Thanks to Andy for reporting that. - -Wed Aug 25 22:05:54 1999 David L. Levine - - * ace/OS.{h,i} (ACE_Time_Value): added four new - constructors. One takes a double, to avoid surprises - (truncation) when constructing an ACE_Time_Value from - a double. The other three constructors take two - unsigned longs, ints, and unsigned ints. They avoid - the ambiguity introduced by the new double constructor. - Thanks to Dave Meyer for starting this :-) - - The double constructor is wrapped with - #ifndef ACE_LACKS_FLOATING_POINT. - - * tests/Time_Value_Test.cpp (main): removed cast of - 2.0 to long. - -Wed Aug 25 16:15:07 1999 David L. Levine - - * docs/ACE-subsets.html: removed spurious LOGGING_FILES - text. - -Wed Aug 25 15:55:05 1999 David L. Levine - - * ace/OS.{h,cpp},Object_Manager.*,Signal.i (default_mask): moved - the default_mask () static method from ACE_Object_Manager - to ACE_OS_Object_Manager, so that it can be used by - Log_Msg.cpp without layer inversion. (Left a deprecated, - inline ACE_Object_Manager::default_mask (), for backward - compatibility.) default_mask () now returns a sigset_t * - instead of an ACE_Sig_Set *, again to avoid layer inversion. - - * ace/Log_Msg.cpp (log): replaced use of ACE_Sig_Guard - with a bare-bones ACE_Log_Msg_Sig_Guard. [Bug 262] - -Wed Aug 25 14:53:58 1999 Carlos O'Ryan - - * bin/run_all.pl: - * bin/auto_compile: - The script did not start with the canonical trick to run perl - from [t]csh, [ba]sh or perl itself. - -Wed Aug 25 14:45:06 1999 Ossama Othman - - * tests/Process_Manager_Test.cpp: - - Explicitly include "ace/Signal.h" to make declaration of - ACE_Sig_Set class visible. - - return statement at end of multiple_children_sig_handler() - function is never reached. It was commented out to prevent - compiler warnings. - -Wed Aug 25 13:34:07 1999 Narendra Ravi - - * ACE-INSTALL.html: added information about -j GNU make option. - -Wed Aug 25 12:26:49 1999 Carlos O'Ryan - - * ace/OS.h: - On Borland C++ (and other platforms) we should use - std::bad_alloc instead of bad_alloc for the ACE_bad_alloc - exception. We use the ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB - macro to detect this. Thanks to Jody Hagins - for this fix. - - * tests/run_tests.lst: - Disabled the Token test, it is more trouble that it is worth. It - hangs and tends to freeze the complete testsuite. - -Wed Aug 25 12:09:32 1999 Carlos O'Ryan - - * Makefile: - Include (conditionally) the $TAO_ROOT/tao/tao_targets.GNU file, - that defines the targets required to compile just TAO. - -Tue Aug 24 21:47:44 1999 David L. Levine - - * ace/Synch_Options.{h,cpp} (timeout): added const to - ACE_Time_Value & argument, because it's not modified. - Thanks to John Lindal for suggesting this. - -Tue Aug 24 10:02:51 1999 Douglas C. Schmidt - - * tests/Process_Manager_Test.cpp: Fixed a number of warnings - caused by unused args and signed/unsigned mismatches. Thanks to - David Levine for reporting this. - - * ace/Service_Repository.h, - ace/Service_Config.h, - ace/OS.h: - Changed the default number of entries in the - ACE_Service_Repository from ACE_DEFAULT_SELECT_REACTOR_SIZE - to ACE_DEFAULT_SERVICE_REPOSITORY_SIZE, which defaults to - 1024. Thanks to Ivan Murthy for - suggesting this. - - -Tue Aug 24 16:23:07 1999 Carlos O'Ryan - - * bin/make_release: - Use an explicit temporary file to create the ChangeLog, i had - some problems with the previous scheme, but it could be my - shell. - When tagging TAO we have to change directories. - -Tue Aug 24 12:19:29 1999 Carlos O'Ryan - - * tests/Makefile: - Updated dependencies - - * performance-tests/TCP/tcp_test.cpp: - Fixed argument parsing. - -Tue Aug 24 10:37:02 1999 David L. Levine - - * bin/cvslog (find_changelogs): one more time: append /$file - to `pwd`, so that we can find ChangeLogs in child directories. - Always call basename (), again. - -Tue Aug 24 09:10:58 1999 David L. Levine - - * bin/cvslog (find_changelogs): don't call basename () immediately - after calling `pwd`, so that ChangeLogs in current directory - will be found. - -Tue Aug 24 07:11:52 1999 David L. Levine - - * ace/OS.*,Object_Manager.{h,cpp},README: with ACE_LACKS_ATEXIT, - use ACE_OS_Object_Manager::at_exit () to emulate atexit (). - [Bug 246] - - * tests/Object_Manager_Test.cpp,tests/Makefile, - tests/run_pharlap_tests.bat,tests/run_tests.bat, - tests/run_tests.lst,tests/run_tests.psosim, - tests/run_tests.vxworks,tests/t.icc,tests/icc.bat: - added Object_Manager_Test. - -Mon Aug 23 22:03:24 1999 Carlos O'Ryan - - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/rules.local.GNU: - When compiling both shared and static libraries only one of them - was installed. Thanks to Paul Calabrese - for providing this fix. - -Mon Aug 23 21:41:43 1999 Carlos O'Ryan - - * tests/run_tests.pl: - We search for "Starting" instead of "starting" because that's - what the tests print out now. - -Mon Aug 23 21:20:28 1999 Carlos O'Ryan - - * docs/ACE-guidelines.html: - Added new guidelines relevant to ACE+TAO. - -Mon Aug 23 16:57:13 1999 Carlos O'Ryan - - * performance-tests/RPC/README: - * performance-tests/RPC/client.cpp: - Changed the options to make it more consistent with other tests - like this one. - Added a README file - -Mon Aug 23 16:53:00 1999 Carlos O'Ryan - - * performance-tests/Makefile: - * performance-tests/TCP/README: - Added a README file for the test - - * performance-tests/TCP/tcp_test.cpp: - Added options to pace the events and to control the message size - on the server side. - - * performance-tests/RPC/Makefile: - * performance-tests/RPC/client.cpp: - * performance-tests/RPC/ping.x: - * performance-tests/RPC/server.c: - Added a simple RPC test to compare sockets (ACE), RPC and TAO. - -Mon Aug 23 13:30:32 1999 Nanbor Wang - - * include/makeinclude/platform_sunos5_kcc.GNU: The optimization - flag for KCC should be +K3, not -K2. - -Mon Aug 23 10:56:40 1999 David L. Levine - - * bin/cvslog: added this wrapper around cvs log. It - expands ChangeLogTags to their ChangeLog entries. - Thanks to Luther for helping greatly with it. - -Mon Aug 23 08:46:37 1999 David L. Levine - - * ace/Object_Manager.{h,cpp}: replaced the use of - ACE_Unbounded_Queue with a new - ACE_Cleanup_Info_Node private helper class. The reduces - the size of libACE by over 4 Kb, and is the first step - towards moving the Object_Manager's atexit () support to - OS. [Bug 246] - -Mon Aug 23 07:28:02 1999 David L. Levine - - * tests/run_tests.check: changed "starting" to "Starting", - to match a recent change to test_config.h. - - * tests/test_config.h: changed one remaining "starting" to - "Starting", to be consistent. - -Mon Aug 23 07:08:17 1999 David L. Levine - - * tests/run_tests.lst: disabled Process_Manager_Test, - because it never terminates when built with egcs - on both Solaris 7 and Linux. - -Sun Aug 22 21:15:13 1999 David L. Levine - - * ace/Makefile: with Green Hills for x86 target, use - $(MAKE) instead of make to build .obj/gethrtime.o. - Thanks to Cliff_H_Campbell - for reporting this. - -Sun Aug 22 21:02:26 1999 David L. Levine - - * ace/config-vxworks5.x.h: added ACE_LACKS_ATEXIT. - -Sun Aug 22 21:01:18 1999 David L. Levine - - * ace/README: added ACE_LACKS_ATEXIT. - -Sun Aug 22 14:51:56 1999 Vishal Kachroo - - * ace/OS.i (join_leaf): Constructed a winsock2 QOS structure - within ACE_OS::join_leaf () from the corresponding ACE QOS - classes. Passed this QOS structure to WSAJoinLeaf (). - -Sun Aug 22 12:18:42 1999 Nanbor Wang - - * ace/Process.i (wait): Fixed a typo. - - * ace/Process.cpp (ACE_Process): Removed an extra underscore. - - * ace/OS.i (getppid): Removed undefined variable . - -Sat Aug 21 12:36:40 1999 Douglas C. Schmidt - - * ace/OS.h: Moved the ACE_OS::set_exit_hook() static method - into the OS.i file so be more consistent with the other ACE_OS - methods. Also, changed the signature of extern "C" void - ACE_OS_Object_Manager_Internal_Exit_Hook () to void - ACE_OS_Object_Manager_Internal_Exit_Hook (void) so that this - will match the type declaration for ACE_EXIT_HOOK. - [NOTE: that's not really a signature change. g++ needs the - "void", however, to avoid a bug without -pedantic.] - - * ace/Process_Manager.cpp: Use the new ACE_OS::wait() method, - which is portable to Win32, rather than ACE_OS::waitpid(). - - * tests/Process_Manager_Test.cpp: Completed the first major - enhancement to the test that exercises the new - ACE_Process_Manager features. This test builds and runs cleanly - on Solaris using CC and should run on other versions of UNIX - that support threads and processes. It would be great if - someone could improve it to run on Win32, as well. - - * ace/Process_Manager: Added support for the spawn_n() method, - which creates N new processes. - - * tests: Cleaned up the use of ACE_INIT_LOG/ACE_APPEND_LOG in - Process_Manager_Test.cpp and Malloc_Test.cpp so we don't lose - information. Both these tests now write their child processes' - output to "-child.log". - - * ace/Thread_Manager.h: Added a default value of 0 to the - exit() method since this is a common return status. - - * ace/config-win32-common.h: Added ACE_LACKS_GETPPID. - - * ace: Added a new wrapper for getppid(). For platforms that - don't support this system call, please add ACE_LACKS_GETPPID. - - * tests: Moved the $ACE_ROOT/examples/Threads/process_manager.cpp - example into the $ACE_ROOT/tests directory, renamed it to - Process_Manager_Test.cpp, and revised the test to illustrate the - new ACE_Process_Manager features. - - * tests/run_tests.lst: Added the Process_Manager_Test to the - list of tests to run. - - * tests/Malloc_Test.cpp (main): Added some necessary ASYS_TEXT - macros. - - * ace/Process.i: Rather than replicate the #ifdef logic in - ACE_OS::kill() within ACE_Process:kill(), we just forward to - ACE_OS::kill() and let it sort this out! - - * ace/Process: Moved several of the short wait() methods from the - *.cpp file to the *.i file and inlined them. - - * ace/Process_Manager.cpp: The logic for the implementation of - terminate() was incorrect, i.e., the process table entry should - be removed *if* ACE::terminate_process() succeeds but *not* if - it fails! - - * ace/OS.h: Added a new method called wait() that works portably - on Win32 and UNIX/POSIX platforms. - - * ace/Process: Added an optional "options" parameter to the former - "blocking" wait() method on ACE_Process. This allows clients to - use the WNOHANG option to avoid blocking if the child process - hasn't exited yet. Also changed the type of the return value to - pid_t rather than int. Finally, added an optional status - pointer to the "timed" wait() method (which only works on - Win32). - - * ace/OS.h: On platforms that do not define WNOHANG natively, - changed #ifdef of WNOHANG to 0100 (which can be used in bitmask - comparisons) rather than Douglas Adams favorite constant: 42. - -Sat Aug 21 14:13:46 1999 Carlos O'Ryan - - * ACE version 5.0.2 released. - -Sat Aug 21 11:52:51 1999 Carlos O'Ryan - - * Makefile: - Fixed small problem in the releaseall target. - - * bin/make_release: - The shell did not like the embedded script to print the - ChangeLog entry. - -Fri Aug 20 15:40:58 1999 Douglas C. Schmidt - - * ace/Process_Manager: Added a new method called wait() that's - just syntactic sugar for ACE_Process_Manager::reap(). Thanks to - Dave Madden for suggesting this. - - * ace/OS: Added support for ACE_OS::atexit(), which necessitated - changing the extern "C" signature for ACE_EXIT_HOOK to typedef - void (*ACE_EXIT_HOOK) (void) so that this will be consistent - with the signature expected by the ISO/ANSI C atexit() call. At - the moment, ACE_OS::atexit just calls ::atexit() (unless a - platform's config.h file #defines ACE_LACKS_ATEXIT). - Ultimately, we might want to have this hook into the - ACE_OS_Object_Manager's at_exit() support, which may be more - portable and reliable. - - * ace/ACE_Process_Manager.h: Made the destructor virtual so it's - possible to subclass from this class. - - * ace/Process_Manager.h: Updated the comments on the wait() - method to indicate that a signal handler must be used to keep - track of the number of remaining child processes. Thanks to - Dave Binder for motivating this. - -Thu Aug 19 18:45:00 1999 Chris Gill - - * ace/Auto_Ptr.h: modified ACE_AUTO_PTR_RESET macro, to pass the - type of the pointer. This is needed for the case where - ACE_AUTO_PTR_LACKS_RESET is defined, in order to explicitly - convert the pointer into an auto_ptr for assignment. - -Thu Aug 19 17:26:50 1999 John Heitmann - - * docs/ACE-SSL.html: Cleaned up the auto generated errors. - -Thu Aug 19 16:47:21 1999 Douglas C. Schmidt - - * ACE-INSTALL.html: Added a reference to $ACE_ROOT/docs/ACE-SLL.html. - - * docs: Added a new ACE-SSL.html file that explains how to participate in the - ACE SSL project. Thanks to John Heitmann - for adding this. - -Thu Aug 19 15:31:58 1999 Nanbor Wang - - * ace/OS.h (ACE_OSTREAM_TYPE): Removed the redundant trailing * - for the defintion when ACE_LACKS_IOSTREAM_TOTALLY is defined. - -Thu Aug 19 14:16:37 1999 David L. Levine - - * include/makeinclude/rules.nested.GNU: added ACE_NESTED_COMMAND - hook. Users can set it to whatever they like (preferably in - include/makeinclude/platform_macros.GNU). One example is - to set it to: - - ACE_NESTED_COMMAND := || break $? - - to terminate building if a build in one subdirectory fails. - Thanks to Lothar Werzinger for - suggesting this addition. - -Thu Aug 19 13:06:00 1999 Michael Kircher - - * ace/Read_Buffer.cpp: Fixed a bug in rec_read () method - which prohibited reading more than 1024 bytes at once. - -Thu Aug 19 13:03:07 1999 Douglas C. Schmidt - - * ace/ACE.h (ACE): Fixed a "cut & paste" error in the comment -- - basename should have been dirname. Thanks to Mark Hyett - for reporting this. - - * ace/ACE.cpp: Fixed a bug in ACE::dirname() that was causing problems - if the pathname didn't have a delim character. Thanks to Russ - Noseworthy for reporting this and providing a fix. - -Thu Aug 19 12:59:56 1999 Carlos O'Ryan - - * ace/Message_Block.i: - Moved ACE_Message_Block::replace_data_block() down in the file - because it was using inline functions that were defined after it - was. Thanks to David for pointing this out. - -Thu Aug 19 10:53:50 1999 David L. Levine - - * ace/OS.i (setuid): added ACE_UNUSED_ARG (uid) for VxWorks, - pSOS, WIN32, and Chorus. Thanks to Garry Brother - for reporting this. - -Thu Aug 19 10:04:12 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: added - trap to cause builds to fail if the exceptions flag is - enabled. The VxWorks libraries don't support exceptions. - And, exceptions give the (Tornado II) compiler fits, e.g., - with ACE_wrappers/TAO/tao/IORManipulation.cpp. Thanks to - Erik Johannes for this nifty preemptive - solution, and to Nick Sawadsky - for motivating its implementation. - -Thu Aug 19 09:34:41 1999 Douglas C. Schmidt - - * ace/WFMO_Reactor.h, - * ace/WFMO_Reactor.cpp, - * ace/Select_Reactor_T.h, - * ace/Select_Reactor_T.cpp, - * ace/Reactor_Impl.h, - * ace/Reactor.h, - * ace/Reactor.cpp: - Added a pair of restart() methods that can be used to set/get - the restart_ flag, which controls whether the handle_events() - event loop is restarted automatically when select() is - interrpted. Thanks to Erik Koerber - for suggesting this. - - * ace/Service_Config: Updated the failure result comment for - open() and cleaned up the return value and errno propagation for - open_i() when process_commandline_directives() fails. Thanks to - Jerry D. De Master for reporting the bug - and suggesting a fix. - - * ace/Service_Config.h: Moved the process_directives() method - used to parse the svc.conf files out of the protected part of - the class to the public part so that application programmers can - call this directly to reconfigure services from the svc.conf - files. Thanks to John Mink for - suggesting this. - -Wed Aug 18 22:45:24 1999 Douglas C. Schmidt - - * ace/WFMO_Reactor.h, - * ace/WFMO_Reactor.cpp, - * ace/XtReactor.h, - * ace/XtReactor.cpp, - * ace/TkReactor.h, - * ace/TkReactor.cpp, - * ace/FlReactor.h, - * ace/FlReactor.cpp, - * ace/Select_Reactor_T.h, - * ace/Select_Reactor_T.cpp, - * ace/Reactor_Impl.h, - * ace/Reactor.h, - * ace/Reactor.cpp: - * ace/Timer_Hash_T.h: - * ace/Timer_Heap_T.h: - * ace/Timer_List_T.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel_T.h: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Wheel_T.cpp: - Changed all uses of const long to long... - -Wed Aug 18 22:15:58 1999 Carlos O'Ryan - - * tests/run_tests.sh: - It was running the DISABLED tests, thanks to David for pointing - this out. - -Wed Aug 18 21:48:52 1999 David L. Levine - - * ACE-INSTALL.html: added Toshio Hori - suggestions (in a new section) on building just what's - needed for TAO, and his tips for reducing disk space - usage on Unix platforms. - -Wed Aug 18 21:32:56 1999 Ossama Othman - - * docs/usage-bugzilla.html: - - Added a simple document explaining basic usage of our - installation of bugzilla. - - * ACE-INSTALL.html: - * PROBLEM-REPORT-FORM: - - Updated with information about the bugzilla usage - documentation. - -Wed Aug 18 20:28:23 1999 David L. Levine - - * bin/check_build_logs: check for just Stop, not [Ss]top, - to avoid snagging top output. Gnu make says "Stop" when - it can't find a dependency. - -Wed Aug 18 19:08:08 1999 David L. Levine - - * ace/OS.{h,cpp},Object_Manager.{h,cpp},Log_Msg.cpp: - moved ACE_LOG_MSG_INSTANCE_LOCK from ACE_Object_Manager - to ACE_OS_Object_Manager, so that Log_Msg.cpp needn't - to depend on Object_Manager for it. - -Wed Aug 18 18:20:11 1999 Carlos O'Ryan - - * tests/SOCK_Send_Recv_Test.cpp: - Fixed typo. - -Wed Aug 18 17:58:06 1999 Carlos O'Ryan - - * THANKS: - * ace/README: - * ace/config-irix6.x-common.h: - Added new macro (ACE_HAS_BROKEN_DGRAM_SENDV) to handle platforms - where using sendmsg with exactly IOV_MAX elements in the iovec - fails (normally the number of elements can be up to and - including IOV_MAX). Thanks to Tobin Bergen-Hill - for tracking this down. - -Wed Aug 18 16:08:46 1999 Douglas C. Schmidt - - * tests/SOCK_Send_Recv_Test.cpp: Reformatted this test so - that it conforms to ACE programming guidelines. - -Wed Aug 18 13:49:30 1999 David L. Levine - - * ace/Makefile: if ACE_COMPONENTS = FOR_TAO, don't include - Filecache in UTILS_FILES. TAO doesn't need Filecache. - And, its ACE_Hash and ACE_Equal_To - explicit template instantiations collide with those in - ACE_wrappers/TAO/tao/POA.cpp. That precludes building - a shared libTAO for VxWorks, for example. And, it costs 14 Kb. - Thanks to Erik Johannes for helping - to find this solution. And reminding me to implement it :-) - -Wed Aug 18 13:16:09 1999 David L. Levine - - * ACE-INSTALL.html: clarify that PERL_PATH must include - the full path, including the perl.exe filename. Thanks - to Walter Welzel for - reporting this. - -Wed Aug 18 13:11:30 1999 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - The new methods to manipulate condition variable attributes - were not compiling on single threaded platforms. - -Wed Aug 18 13:09:36 1999 David L. Levine - - * tests/Makefile: don't add libDLL_Test.$(SOEXT) to BUILD - on VxWorks. Thanks to Walter Welzel - for reporting that it did get build for VxWorks with - shared libs enabled, but not successfully (or usefully). - -Wed Aug 18 10:36:16 1999 Nanbor Wang - - * ACE-INSTALL.html: Updated all references to MSVC 4.x. We no - longer support the compiler. Thanks to Welzel Walter - for pointing this out. - -Wed Aug 18 10:42:13 1999 Douglas C. Schmidt - - * ace/Timer_List_T.cpp (reset_interval): Added a constcast to - make SunC++ 4.2 happy. Thanks to Andy for reporting this. - - * ace/WFMO_Reactor.i (reset_timer_interval): The return type - was incorrect... Thanks to Andy and Jeff for reporting this. - -Wed Aug 18 09:47:51 1999 Carlos O'Ryan - - * tests/run_tests.pl: - The disabled tests were executed anyway, thanks to David for - pointing this out. - -Wed Aug 18 09:34:46 1999 Carlos O'Ryan - - * ace/FlReactor.cpp: - * ace/XtReactor.cpp: - Fixed typos in the code, this is only used in a few platforms, - that's why it didn't show up before. - -Tue Aug 17 20:02:55 1999 Douglas C. Schmidt - - * tests/Reactor_Timer_Test.cpp: Enhanced this test to exercise - the new reset_timer_interval() feature that Darrell added. It - appears to work quite well. Also, make the test easier to - understand by adding more structure. - - * ace/WFMO_Reactor.h, - * ace/WFMO_Reactor.cpp, - * ace/XtReactor.h, - * ace/XtReactor.cpp, - * ace/TkReactor.h, - * ace/TkReactor.cpp, - * ace/FlReactor.h, - * ace/FlReactor.cpp, - * ace/Select_Reactor_T.h, - * ace/Select_Reactor_T.cpp, - * ace/Reactor_Impl.h, - * ace/Reactor.h, - * ace/Reactor.cpp: - Exposed the new reset_interval() method Darrell added to all the - Timer mechanisms via a method in each of these Reactor's called - reset_timer_interval(). - - * ace/Timer_Hash_T.h: - * ace/Timer_Heap_T.h: - * ace/Timer_List_T.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel_T.h: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Wheel_T.cpp: - Changed the return values of to be (1) - consistent (i.e., to return a value through all paths in the - method) and (2) to return -1 on failure and 0 on success. - Also replaced a number of C-style casts with - ACE_reinterpret_casts. - -Tue Aug 17 20:51:35 1999 Carlos O'Ryan - - * ace/TP_Reactor.h: - * ace/TP_Reactor.cpp: - The TP Reactor also experiences a performance hit if signal - masking is enabled. Therefore, we can now make this optional. - -Tue Aug 17 19:10:00 1999 Darrell Brunsch - - * ace/OS.cpp: Fixed typo. - - * ace/Stats.cpp: Removed some warnings showing up in MSVC when - assigning ACE_UINT64 values to ACE_UINT32 variables. Used - ACE_U64_TO_U32 to remove these warnings. - - * ace/Timer_Hash_T.h: - * ace/Timer_Heap_T.h: - * ace/Timer_List_T.h: - * ace/Timer_Queue_T.h: - * ace/Timer_Wheel_T.h: - * ace/Timer_Hash_T.cpp: - * ace/Timer_Heap_T.cpp: - * ace/Timer_List_T.cpp: - * ace/Timer_Wheel_T.cpp: - Added a new method, which can be used to - change the interval of a timer represented by a timer_id. - -Tue Aug 17 18:43:53 1999 Jeff Parsons - - * ace/OS.h: - * ace/OS.i: - Added wscmp and wsncmp functions to go with the existing - wslen and wscpy functions. These all use WChar*, so arg - size is independent of platform. These are to be used for - all manipulations of CORBA::WString. The two that were - added were needed for wstring tests in Param_Test. WChar* - versions of the other string manipulation functions will - be added as needed. - -Tue Aug 17 17:49:33 1999 Douglas C. Schmidt - - * ace/config-sunos5.5.h: If (_LARGEFILE_SOURCE) || (_FILE_OFFSET_BITS==64) - are enabled then #undef ACE_HAS_PROC_FS and ACE_HAS_PRUSAGE_T to - work around problems with Solaris 7. Thanks to Sridhara Rao - Dasu for reporting this. - - * ace/OS.i: Updated the readdir_r() conditional compilation so that - it'll work when _FILE_OFFSET_BITS == 64. Thanks to Sridhara Rao - Dasu for reporting this. - -Tue Aug 17 17:17:13 1999 Carlos O'Ryan - - * ace/OS.h: - * ace/OS.i: - * ace/OS.cpp: - Added new data type to handle condition variable attributes - (ACE_condattr_t). New methods to manipulate that data type - (ACE_OS::cond_attr_init and destroy) Add new method to create a - condition variable from a pre-initialized attribute. - - * ace/Synch.h: - * ace/Synch.i: - * ace/Synch.cpp: - Added new wrapper for the ACE_condattr_t structure. - - * ace/Token.h: - * ace/Token.cpp: - Use ACE_Condition_Attributes to minimize the number of memory - allocations and locks in the critical path of the TP_Reactor. - -Tue Aug 17 15:55:17 1999 Nanbor Wang - - * performance-tests/TCP/TCP.{dsw,dsp}: - * performance-tests/TCP/Makefile: - * performance-tests/TCP/tcp_test.cpp: Added the new test modified - by Carlos and a bit further by me. The test measures TCP - performance of a platform. We can also use it to test the - performance of various reactors. - -Tue Aug 17 14:52:40 1999 Darrell Brunsch - - * ace/config-win32.h: Added ACE_CC_COMPILER definition for MSVC. - ACE_CC_COMPILER is a string containing the compiler program. - -Tue Aug 17 13:48:27 CDT 1999 Loren Rittle - - * bin/update-ace+tao.sh: Use authoritative name list instead of - ad hoc list to update file. - -Tue Aug 17 06:33:05 1999 Douglas C. Schmidt - - * ace/Task.h: Clarified the comment regarding - open() and close() on ACE_Task_Base. Thanks to Jeff Franks - for suggesting this. - -Tue Aug 17 11:56:33 1999 Carlos O'Ryan - - * ace/Select_Reactor_T.h: - * ace/Select_Reactor_T.cpp: - Added option in the constructor to disable the signal handling - features in the select reactor. This eliminates a couple of - kernel level locks that are not needed in all applications. - - * ace/Stats.h: - * ace/Stats.cpp: - Now we keep track of the iteration where the minimum and maximum - latencies were achieved. - -Tue Aug 17 06:33:05 1999 Douglas C. Schmidt - - * bin: Added a new shell script called update-ace+tao.sh - that updates the ACE/TAO source tree to the latest - numeric-assigned version. Thanks to Loren Rittle - for contributing this. - -Mon Aug 16 20:09:12 1999 Carlos O'Ryan - - * ace/CDR_Stream.h: - * ace/CDR_Stream.i: - * ace/CDR_Stream.cpp: - Added new method to transfer the contents of one CDR stream into - another. This is used in the implementation of the ORB to - minimize the number of data copies, memory allocations and - locks. - - * ace/Message_Block.h: - * ace/Message_Block.i: - Added new method to replace the Data_Block, this method returns - the old one, letting the user decide how to deallocated the Data - block, possibly transfering it to another Message_Block. - -Mon Aug 16 15:58:12 1999 Steve Huston - - * ace/config-sunos5.5.h: - * include/makeinclude/platform_sunos5_sunc++.GNU: Added support - for using "compat=4" mode for Sun CC 5. To use this, do - "make compat4=1", or equivalent. Compat 4 uses -compat=4 with - its old iostreams, but the newer Sun CC 5 scheme of explicit - template instantiation. - -Mon Aug 16 11:59:18 1999 Vishal Kachroo - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): Constructed and passed a - complete sockaddr_in to the ACE_OS::join_leaf () call. This was - just being passed sockaddr_in.sin_addr.s_addr. - -Sat Aug 14 18:01:27 1999 Carlos O'Ryan - - * tests/run_tests.pl: - Fixed some output messages that were going to stdout. - -Sat Aug 14 15:20:27 1999 Douglas C. Schmidt - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): It looks like there - was a bug where we were passing an s_addr to ACE_OS::join_leaf() - rather than a sockaddr *. Fixing this also cleaned up some code - that was #ifdef'd for UNICOS. Thanks to Vishal for reporting - this. - - * ace/Process.h: Added a virtual to ~ACE_Process so that it - can be used for subclassing more readily. Thanks to Zoran - Ivanovic for suggesting this. - -Sat Aug 14 14:11:25 1999 Everett Anderson - - * ace/Remote_Tokens.cpp (tryacquire): Fixed so that it uses - ACE_Token_Request::TRY_ACQUIRE instead of RELEASE. - -Fri Aug 13 18:55:51 1999 Douglas C. Schmidt - - * ace/Handle_Set.h (ACE_Handle_Set): Clarified the meaning of the - nbits_ array. Thanks to Hao Ruan for - motivating this. - -Fri Aug 13 21:18:40 1999 David L. Levine - - * ace/OS.i (llseek): on Linux, moved extern "C" llseek () - declaration out of the function. Thanks to Tal Lev-Ami - for this fix. - -Fri Aug 13 20:50:02 1999 Nanbor Wang - - * ace/Select_Reactor_T.cpp (handle_events): Added a deactivation - check for non-threaded case. The original check was mixed with - thread owner check and thus got disabled under single-threaded - configurations. Thanks to Kirthika for reporting the problem. - -Fri Aug 13 13:11:16 1999 David L. Levine - - * bin/make_release: moved ACE_wrappers/TAO addition to - $release_files so that it's only done for the ACE+TAO kit. - -Fri Aug 13 12:44:08 1999 David L. Levine - - * Makefile,bin/make_release: added support (and documentation) - for creating kits with or without new tags, or using an old - tag; generated man pages; installation to the public ftp/http - site on ace; and zip files. - -Fri Aug 13 07:58:12 1999 David L. Levine - - * ace/OS.{h,i},README,config-osf1-4.0.h (llseek): added - ACE_HAS_LLSEEK support. Thanks to Tal Lev-Ami - for providing this. - -Thu Aug 12 22:05:37 1999 Douglas C. Schmidt - - * ace/OS.i (sema_wait, rw_tryrdlock, rw_trywrlock): - Replaced more ad hoc uses of the - - int error = 0; - ... - error = errno; - ... - errno = error; - - idiom with the ACE_Errno_Guard. - - * ace/Synch.h: Updated the comment to remind folks who would - like to have a working ACE_Process_Condition to contact us if - they know how to do this. Thanks to Craig Anderson - for motivating this. - - * tests/Process_Strategy_Test.cpp (open): Clarified the behavior - of the code that's run when fork() is used. Thanks to Umar - Syyid for motivating this. - -Thu Aug 12 21:30:09 1999 Alexander Babu Arulanthu - - * include/makeinclude/platform_vxworks5.x_g++.GNU: - added SIMNT support. - -Thu Aug 12 20:54:40 1999 David L. Levine - - * ace/config-osf1-4.0.h: added ACE_HAS_USING_KEYWORD - for cxx and Rational compilers. [Bug 163] - -Thu Aug 12 20:47:13 1999 Carlos O'Ryan - - * tests/Cached_Accept_Conn_Test.cpp: - Made the and variables global - instead of static, because otherwise Sun/CC automatic template - instantiation cannot find them at link time. The variables are - used in template code that is defined and used in the same file, - but Sun/CC does not seem to understand that. - -Thu Aug 12 17:14:35 1999 Jeff Parsons - - * ace/OS.h: - Changed typedef of WChar to ACE_UINT16. The CDR operations - are already using write_2, read_2 and SHORT_SIZE, and - in the process of implementing wchars and wstrings in - IDL, it's going to be important to optimize for the - Unicode common case. - -Thu Aug 12 16:24:16 1999 David L. Levine - - * bin/make_release: chdir up a level before removing the - staging directory. Thanks to Carlos for pointing out - that it's necessary, because we had chdir'd into it. - And for noticing that $build_commands got clobbered in - create_kit (). Obey $generate_man_pages setting. - -Thu Aug 12 16:03:03 1999 David L. Levine - - * ACE version 5.0.1 released. - -Thu Aug 12 15:49:00 1999 David L. Levine - - * Makefile,bin/make_release: build kits in /tmp staging - area, and copy to ace's ftp pub/ACE directory. - -Thu Aug 12 11:36:46 1999 Carlos O'Ryan - - * ace/OS.h: - * ace/Svc_Handler.cpp: - * ace/Future.cpp: - Some platforms require arguments in the exception thrown from - operator new. The standard (std::bad_alloc) does not require - any. - Added a new macro (ACE_throw_bad_alloc) that takes care of these - differences, including platforms that don't throw exceptions but - return something. - -Wed Aug 11 17:00:00 1999 Kirthika Parameswaran - - * tests/Cached_Accept_Conn_Test.cpp: - Removed run_event_loop and end_event_loop and put in - handle_events with a flag to stop the loop. This is a bug fix - for Bug183. - -Wed Aug 11 15:49:37 1999 David L. Levine - - * docs/ACE-guidelines.html: cleaned up ACE doc tool discussion. - Added Carlos' inlining heuristics. - -Wed Aug 11 13:53:20 1999 David L. Levine - - * ace/config-win32.h,config-win32-borland.h: added - ACE_HAS_MUTABLE_KEYWORD. Thanks to Jody for this request. - -Wed Aug 11 13:15:26 1999 David L. Levine - - * ace/config-g++-common.h,config-win32.h,config-win32-borland.h: - added ACE_HAS_EXPLICIT_KEYWORD - (for egcs only, in config-g++-common.h). Thanks to Jody Hagins - for this update. - - * ace/config-g++-common.h: added ACE_HAS_MUTABLE_KEYWORD. - -Wed Aug 11 13:10:32 1999 David L. Levine - - * ace/OS.h,README: added ACE_HAS_MUTABLE_KEYWORD support. - Thanks to Jody Hagins for providing it. - -Wed Aug 11 12:55:23 1999 Carlos O'Ryan - - * ace/Svc_Handler.cpp: - * ace/Future.cpp: - The throw expressions require a constructor, not just the type, - thanks to David for pointing this out. - -Wed Aug 11 10:12:11 1999 David L. Levine - - * ace/OS.h,Auto_Ptr.h,SString.h,README: added support for - ACE_HAS_EXPLICIT_KEYWORD. Thanks to Jody Hagins - for suggesting this. - -Wed Aug 11 10:07:36 1999 Carlos O'Ryan - - * ace/Future.cpp: - * ace/Local_Tokens.cpp: - * ace/Log_Msg.cpp: - * ace/Log_Record.cpp: - * ace/Svc_Handler.cpp: - * netsvcs/lib/Token_Handler.cpp: - Fixed several warnings and errors with gcc-2.95 - - * include/makeinclude/wrapper_macros.GNU: - Add -fcheck-new to the command-line of g++ when compiling with - exceptions disabled. In that case new operators could return 0 - and without this option the constructor will surely be invoked - on invalid data. - - * bin/auto_compile: - Use LOGNAME instead of USER to get the username because it is - more portable. - -Tue Aug 10 23:47:32 1999 Kirthika Parameswaran - - * ace/Cached_Connect_Strategy_T.h: - * ace/Caching_Utility_T.h: - * ace/Caching_Strategies_T.h: - * ace/Cleanup_Strategies_T.h: - * ace/Cache_Map_Manager_T.h: - * ace/Hash_Cache_Map_Manager_T.h: - - Defined macros to shorten lengthy class names for linkers which - couldnt grok long names (example: Sun Linker). Thanks to - Dr.Schmidt for this cool idea. - -Tue Aug 10 19:07:32 1999 Carlos O'Ryan - - * tests/run_tests.sh: - * tests/run_tests.pl: - * tests/run_tests.lst: - Move the list of tests to a separate file. This file is used to - drive both a perl version of the script and the old shell - version. - The new perl version is able to terminate programs that hang, - but still has problem with processes that fork children who then - hang for some reason. The perl script has to be ported to Win32 - too. - - * bin/run_all_list.pm: - Use the new tests/run_tests.pl script on Unix. - - * bin/run_all.pl: - Run all the test scripts in ACE and TAO, much like run_all_win32 - but for unix systems. - - * bin/auto_compile: - Remember to remove the disable file in case of errors. - -Tue Aug 10 18:08:30 1999 Jeff Parsons - - * ace/CDR_Stream.h: - * ace/CDR_STream.i: - Added all the necessary stuff for wstrings. - -Tue Aug 10 15:36:02 1999 David L. Levine - - * tests/Malloc_Test.cpp (main): removed unused argc - declaration, with ACE_LACKS_FORK && ! ACE_HAS_WIN32. - -Tue Aug 10 15:26:43 1999 David L. Levine - - * ace/OS.cpp (strptime): removed unreachable break after - return statement, in default case of switch statement. - -Tue Aug 10 14:46:12 1999 David L. Levine - - * ace/OS.{h,cpp},README: Changed support for ACE_OS::strptime () - to be configurable. VxWorks, LynxOS, and Chorus, for example, - don't have a native ::strptime (). The current emulation cost - 2 Kb, which will be objectionable to some embedded systems - developers. - - Replaced ACE_LACKS_STRPTIME with a combination - ACE_HAS_STRPTIME/ACE_LACKS_NATIVE_STRPTIME. ACE_HAS_STRPTIME - enables ACE_OS::strptime () support. ACE_LACKS_NATIVE_STRPTIME - lets ACE know that there's no native ::strptime (), so it then - uses its emulation. - - This has two advantages: it minimizes footprint in the default - case, and doesn't break builds on platforms that don't have - ::strptime (). It easily allows developers to configure ACE - identically, with respect to strptime, on their Unix, NT, and - embedded platforms. [Bug 219] - - * ace/config-sunos5.5.h,config-linux-common.h,config-osf1-4.0.h, - config-irix6.x-common.h: - added #define ACE_HAS_STRPTIME. [Bug 219] - -Tue Aug 10 12:28:54 1999 Jeff Parsons - - * bin/run_all_list.pm: - Added IDL test to the list. - -Mon Aug 09 16:49:45 1999 Nanbor Wang - - * ace/Process.{h,cpp} (wait): Re-visited the implementation so it - behaves the same on both UNIX and Win32. Thanks to Doug for - suggesting this. - -Mon Aug 09 16:30:24 1999 David L. Levine - - * docs/ACE-guidelines.html: added note to follow the - ACE documentation tools guidelines and restrictions. - Thanks to Doug for pointing this out. - -Mon Aug 09 16:06:01 1999 Nanbor Wang - - * include/makeinclude/wrapper_macros.GNU: Applied smart eg++ - recognizer. Thanks to Craig Anderson for - providing the patch. - -Mon Aug 9 11:29:36 1999 Douglas C. Schmidt - - * bin: Fixed html-windex so that it works when class names contain - the digit '3' in them, e.g., ACE_WIN32_Asynch_Accept, etc. - Thanks to Jody Hagins for reporting this - problem. - -Mon Aug 09 15:10:27 1999 Nanbor Wang - - * ace/Process.h (wait): Rewrote comments. - - * ace/Service_Config.h (open): Revised the comments for several - service_config flags. Thanks to Doug for pointing this out. - -Mon Aug 9 11:29:36 1999 Douglas C. Schmidt - - * examples/Reactor/Misc/test_demuxing.cpp: Added a destructor - to ~STDIN_Handler that will remove the event handler for STDIN - and the registered timer. - -Mon Aug 9 10:45:24 1999 Douglas C. Schmidt - - * ace/Memory_Pool.cpp (handle_signal): When working with an MMAP - memory pool, a "real" segmentation fault (not related to - updating the memory mapping) will cause the process to fail but - not write a core file. This is because that on linux (and - possibly other flavours of UNIX) core file writing is a default - behaviour which is disabled once you register a signal handler. - Even if the signal handler returns a bad return value which - crashes the program, a core file will not be written. - - The fix for this is to modify the mmap() signal handler so that - it de-registers the signal handler when detecting a segfault - with the mapping up to date and return an "ok" answer. the - program will attempt to access the illegal address again and - dump core. Thanks to Joseph Weihs for - contributing this fix. - - * ace/Signal: Changed the new handle_i() and register_handler_i() - methods to be static member functions so they can be called from - the static dispatch() member function. Thanks to Andreas - Geisler for reporting this. - -Mon Aug 9 10:33:50 1999 Douglas C. Schmidt - - * examples/ASX/CCM_App/SC_Server.cpp: Make sure to enable - the appropriate parameter for ACE_Service_Config::open() so that - static services will be enabled. Thanks to Michael Roth - for reporting this. - -Mon Aug 09 10:21:37 1999 David L. Levine - - * include/makeinclude/wrapper_macros.GNU (INCLDIRS): - removed "-I.". It's not necessary, because the preprocessor - will first look for headers in the current directory, when - appropriate. It causes trouble, for example, on NT for - VxWorks with Green Hills. Instead of including the system's - Signal.h, ACE's signal.h gets #included with "-I.". Thanks - to Dale Wood for helping to track - this down. [Bug 35] - - * include/makeinclude/platform_vxworks5.x_ghs.GNU: no longer - need to override INCLDIRS, now that it doesn't contain "-I.". - [Bug 35] - -Mon Aug 09 10:09:57 1999 David L. Levine - - * ace/OS.h,streams.h: moved ACE_OSTREAM_TYPE #define from - streams.h to OS.h, so that it is seen with - ACE_LACKS_IOSTREAM_TOTALLY. And, provide default value - for ACE_DEFAULT_LOG_STREAM. [Bug 208] - - * ace/Log_Msg.cpp: changed a couple remaining ostream occurrences - to ACE_OSTREAM_TYPE. Replaced conditional use of - ACE_DEFAULT_LOG_STREAM/&cerr with ACE_DEFAULT_LOG_STREAM, - now that it's always defined. [Bug 208] - -Mon Aug 09 09:47:06 1999 David L. Levine - - * ace/Log_Msg.{h,cpp}: replaced the ACE_Log_Msg_key_created_ - and ACE_Log_Msg_key_ file static variables with static - class members ACE_Log_Msg::key_created_ and - ACE_Log_Msg::log_msg_tss_key_, respectively. Only declare - ACE_Log_Msg::log_msg_tss_key_ if the platform supports TSS - (native or emulated). Replaced the ACE_Log_Msg_message_queue - file static variable with ACE_Log_Msg_Manager::message_queue_. - Cleaned up Log_Msg.cpp. [Bug 86] - - Thanks to Umar Syyid for suggesting that - we remove the file static variables. - -Mon Aug 09 09:33:43 1999 David L. Levine - - * ace/OS.h: #define ECOMM (to ECONNABORTED) if it's not - already #defined. This allows support on NT. Thanks to - Andy for reporting this. - -Mon Aug 9 07:45:19 1999 Douglas C. Schmidt - - * ace/Signal.h: Modified the behavior of the - ACE_Sig_Handler::dispatch() method so that on Win32 it'll - automagically re-register the signal handler after the - handler_signal() method returns with a non -1 value. Thanks to - Andreas Geisler for suggesting - this. - - * tests/Malloc_Test.cpp: Win32 didn't seem to like a 32k - offset for the virtual address. Let's try 64k instead. Thanks - to Nanbor for reporting this. - - * tests/Malloc_Test.cpp: Changed the sense of the conditional - compilation test from && !defined (ACE_WIN32) to || defined - (ACE_WIN32) so that this will run on Win32. Thanks to - Nanbor for reporting this. - - * ace/OS.i: Cleaned up the coding style for the sigset* - wrapper functions. - -Sun Aug 08 21:19:42 1999 David L. Levine - - * ace/config-osf1-4.0.h: removed unreferenced_function_param - warning suppression. It's no longer needed with the fixes - to avoid unreferenced function parameters. [Bug 217] - -Fri Aug 06 15:20:00 1999 Kirthika Parameswaran - - * ACE-INSTALL.html: added information about compilation on - SunOS5.6 using egcs1.1.2. - -Fri Aug 06 13:47:51 1999 David L. Levine - - * ACE-INSTALL.html: added note about disabling optimization - for some files with Tornado II. - -Fri Aug 06 13:39:48 1999 David L. Levine - - * ACE-INSTALL.html: updated VxWorks build information, - specifically, the instructions for building on NT host. - And, added information about linking libACE.so and libTAO.so - into the VxWorks kernel. Thanks to - Erik Johannes and Stephane Chatre - for helping to clarify and verify. - -Fri Aug 06 12:10:19 1999 Nanbor Wang - - * ace/config-win32-common.h: Added - ACE_HAS_POSITION_INDEPENDENT_MALLOC. - - * ace/OS.cpp (strptime_getnum): getnum should be strptim_getnum. - - * ace/config-win32-common.h: Added ACE_LACKS_STRPTIME. Thanks to - Andy for pointing this out. - -Fri Aug 06 11:13:27 1999 David L. Levine - - * ace/streams.h,OS.h,Log_Msg.h: with ACE_LACKS_IOSTREAM_TOTALLY, - removed the hack that re-#defined ostream. Replaced that - with an ACE_OSTREAM_TYPE macro. [Bug 208] - -Fri Aug 06 10:49:34 1999 David L. Levine - - * ACE-INSTALL.html: updated egcs versions that we use - (1.1.1 and 1.1.2). - -Fri Aug 6 08:43:22 1999 Douglas C. Schmidt - - * examples/Log_Msg/test_log_msg.cpp (main): Changed this - test so that it no longer abort()s, but instead calls - ACE_OS::_exit(). This should help avoid confusion when it's - run. Thanks to Kevin Lyda for - reporting this. This fixes [BUGID:211]. - - * ace/SOCK_Dgram_Mcast: The QoS-enabled subscribe() call must - call the QoS-enabled open() call, rather than the "regular" - open() call because otherwise QoS information isn't initialized! - Thanks to Vishal for pointing this out. - -Fri Aug 06 08:22:00 1999 David L. Levine - - * ace/Object_Manager.cpp: with ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK, - made the ACE_Static_Object_Lock_lock instance static, to - match the non-ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK behavior. - Thanks to Jody for this change. - - Also, consolidated the code to alway use the - ACE_Static_Object_Lock_Type typedef. - -Fri Aug 06 06:55:49 1999 Jody Hagins - - * include/makeinclude/rules.local.GNU (depend.local): added - ACE_DEPEND_SED_CMD hook, so that users can add sed scripts. - An example is to use relative instead of absolute paths - in dependencies. I put this into it to get the desired - (site-specific) functionality: - - USER_DEPEND_SED_CMD=-e "s;$(PRISM_ROOT);\$$(PRISM_ROOT);g" - -Thu Aug 5 22:26:18 1999 Douglas C. Schmidt - - * ace/OS.h (ACE_OS): Added support for strptime() for platforms that - lack it. Thanks to Kevin Lyda for - contributing this. Note that if a platform fails to compile - because it doesn't support this function, please enable - ACE_LACKS_STRPTIME in the config.h file and send us email. - -Thu Aug 05 21:37:05 1999 David L. Levine - - * ace/Object_Manager.cpp (ACE_Static_Object_Lock_lock, - ACE_Static_Object_Lock::instance, cleanup_lock): - added support for ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK. - It's not (currently) used by ACE. But, applications may - find it useful for avoiding recursive calls if they have - overridden operator new. Thanks to Jody Hagins - for contributing it. - -Thu Aug 05 21:04:20 1999 David L. Levine - - * ace/streams.h: removed #includes of istream.h and ostream.h - with ACE_HAS_STD_CPP_LIBRARY and ACE_USES_OLD_IOSTREAMS. - Those headers aren't available with Sun CC. I think that - they might be unnecessary with egcs for Tornado II. Thanks - to Doug for reporting this. Ref. - Thu Aug 05 14:31:48 1999 David L. Levine . - -Thu Aug 5 16:43:29 1999 Douglas C. Schmidt - - * tests/Malloc_Test.cpp: Rearranged the #ifdefs so that - we don't do much of anything if the platform doesn't support - processes. Thanks to David Levine for reporting this. - -Thu Aug 5 16:27:15 1999 Carlos O'Ryan - - * include/makeinclude/rules.lib.GNU: - * include/makeinclude/wrapper_macros.GNU: - Added new macro (ACE_SHLIBS) to control the final link line of - shared libraries. Use this macro to list the -l options - required by your shared library that are *not* included in the - system LIBS macro, for example "-lTAO -lACE"; the system will - automagically change that to be "-lTAOshr -lACEshr" on AIX. - This also decouples the shared library link line from the - binaries, which use LDLIBS and ACELIB, allowing the application - developers to easily mix shared libraries and binaries in the - same directory, even if the binaries depend on the generated - shared library. - -Thu Aug 05 15:44:39 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_g++.GNU: on - WIN32 host, assume that $(CC) is on the user's path (or is a - full pathname). That way, we don't need to determine ACE_CC - dynamically, which causes trouble with the WIN32 shell. Thanks - to Erik Johannes for reporting this. - [NOTE: this had been committed on a branch, but never on the - main line.] - -Thu Aug 05 15:35:21 1999 Nanbor Wang - - * apps/gperf/src/gperf.dsp: - * apps/gperf/src/gperf_lib.dsp: - * ace/ace_lib.dsp: - * ace/ace_dll.dsp: Changed the default configuration to Win32 - Debug so if anyone doesn't know what he is doing, he'll most - likely to success. - -Thu Aug 05 15:30:32 1999 David L. Levine - - * ace/streams.h: with ACE_LACKS_IOSTREAMS_TOTALLY, always - #define ostream FILE *. [Bug 208] - -Thu Aug 05 15:13:01 1999 David L. Levine - - * ace/config-lynxos.h: added note on why we don't #define - ACE_HAS_POSIX_SEM for LynxOS. [Bug 164] - -Thu Aug 05 14:53:44 1999 David L. Levine - - * ace/config-vxworks5.x.h: added support for the Diab - compiler, version 4.2a or later. Compilation succeeds but links - still have unresolved symbols related to new and delete. [Bug - 207] - - * ace/OS.h,README: added support for ACE_LACKS_NEW_H. [Bug 207] - - * ace/OS.h: for VxWorks, use the ANSI prototypes for - inet_ntoa.h, etc., for all VxWorks compilers, not just Green - Hills. This allows compilation to succeed with Diab 4.2a. [Bug - 207] - - Thanks to Erik Johannes for helping with - this quick port to Diab 4.2a for VxWorks. - -Thu Aug 05 14:31:48 1999 David L. Levine - - * ace/iosfwd.h: #include iosfwd with - ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION as well as without - ACE_HAS_OLD_IOSTREAMS. This allows builds to succeed for - Tornado II with its egcs. [Bug 206] - - * ace/streams.h: added #includes of istream.h, ostream.h, - and iomanip.h with ACE_HAS_STD_CPP_LIBRARY and - ACE_USES_OLD_IOSTREAMS. It's necessary for builds for Tornado - II, but should be harmless and helpful on other platforms. [Bug - 206] - - Thanks to Matthias Schumann for - first reporting the solution to the build problem for Tornado II. - -Thu Aug 5 13:03:28 1999 Douglas C. Schmidt - - * ace/Malloc_T.cpp (shared_free): Looks like ACE_reinterpret_cast - isn't the right thing to do... Let's just use good ol' - fashioned C-style casts instead. Thanks to Bala for reporting - this. - -Thu Aug 05 12:05:42 1999 David L. Levine - - * include/makeinclude/wrapper_macros.GNU: moved minimum_corba - make flag support from wrapper_macros.GNU to TAO/rules.tao.GNU. - Thanks to Bala for noticing this. [Bug 204] - -Thu Aug 05 12:01:14 1999 Nanbor Wang - - * ace/Malloc_T.cpp (shared_free): Applied - ACE_reinterpret_cast (ACE_Malloc_Header*, yadda) to serveral - pointer comparisons. MSVC was complaining because the pointers are - of different types. - -Thu Aug 5 11:57:23 1999 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU (YACC): Removed the - definition of interface_repo a command line option with 'make' - to $TAO_ROOT/rules.tao.GNU as per Dr.Levine's suggestions. - -Thu Aug 05 08:43:27 1999 David L. Levine - - * include/makeinclude/platform_vxworks5.x_diab.GNU: added. - Thanks to Erik Johannes for - helping to figure out its contents. Note that compiles - succeed with Diab 4.2a for VxWorks, but links do not, yet. - -Thu Aug 05 08:37:09 1999 David L. Levine - - * ACE-INSTALL.html: added Kirk Davies' notes for running - the ACE tests on Tornado II, without NFS installed. - -Thu Aug 5 00:15:45 1999 Douglas C. Schmidt - - * ace/Based_Pointer_T: Changed the type of index for operator[] - and operator+= to be int instead of long so that it'll work - correctly when constant values are used. Thanks to - Nanbor and KCC for pointing this out! - -Wed Aug 4 19:46:33 1999 Carlos O'Ryan - - * tests/run_tests.sh: - Disabled the New_Fail_Test because it breaks other - compilations. - -Wed Aug 4 15:56:51 1999 Douglas C. Schmidt - - * tests/Malloc_Test.cpp: Make this test work even if - ACE_HAS_POSITION_INDEPENDENT_MALLOC isn't set for a particular - platform. - - * tests/Malloc_Test.h: Added a #include for - "ace/Based_Pointer_T.h". Thanks to Carlos for pointing out the - need for this. - -Wed Aug 4 17:07:12 1999 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU : Made the interface - repository files to be compiled by default. If the user does not - want these files to be compiled he can turn it off by issuing - interface_repo=1 with the 'make' command. - -Wed Aug 4 15:56:51 1999 Douglas C. Schmidt - - * ace/Task.h (ACE_Task_Base): Changed the parameter name - to , which is more descriptive. - Thanks to John Forest for - motivating this. - -Wed Aug 4 15:54:51 1999 Carlos O'Ryan - - * netsvcs/clients/Naming/Client/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile: - If the libraries are specified as dependencies then they don't - need to be listed in LDLIBS - -Wed Aug 4 13:20:54 1999 Douglas C. Schmidt - - * ace/Malloc.h: Ok, let's try this again ;-). Removed the - forward declarations and typedefs and replaced them with - #defines. Hopefully, this will make all the compilers happy! - -Wed Aug 04 12:58:53 1999 Nanbor Wang - - * tests/*.dsp: Fixed Alpha configurations. - -Wed Aug 4 12:26:53 1999 Carlos O'Ryan - - * ace/Malloc.h: - Added more forward declarations for the compilations that - enabled PIM. - -Wed Aug 4 11:59:57 1999 Carlos O'Ryan - - * ace/Malloc.h: - The previous fix did not work, i used forward declarations to - make it work. - -Wed Aug 4 09:28:35 1999 Douglas C. Schmidt - - * ace/Malloc.h: Replaced the use of typedefs for macros - to define ACE_MALLOC_HEADER_PTR ACE, ACE_NAME_NODE_PTR, - ACE_CHAR_PTR to try to avoid "incomplete type" messages from - certain versions of G++. Macros are "later binding" than - typedefs for this situation. - - * ace/Asynch_Acceptor.cpp (handle_accept): Fixed an expression - that had incorrect parentheses. Thanks to David Digby - for reporting this. - -Wed Aug 04 02:40:45 1999 Nanbor Wang - - * tests/run_tests.bat: * tests/tests.dsw: - * tests/Malloc_Test.dsp: - * tests/version_tests/Malloc_Test.dsp: Added project files for the - Malloc_Test and added the test in run_test.bat. - -Tue Aug 3 22:39:34 1999 Douglas C. Schmidt - - * tests/{Makefile,run_tests.sh}: Added support for the new - Malloc_Test. - - * tests/Malloc_Test.cpp: Added a new test that exercises the new - position-independent ACE_Malloc with ACE_MMAP_Memory_Pool and - ACE_Process_Mutex. - - * ace/Malloc_T: Added an accessor called mutex() to allow - applications to acquire()/release() the lock used to provide - mutual exclusion to an allocator. - - * tests/SV_Shared_Memory_Test.cpp: Reformatted this test to - conform to ACE programming guidelines. - - * ace/Memory_Pool: The void * and char * arguments to the various - ACE_*_Memory_Pool_Options constructors should be const; now they - are! - - * examples/Shared_Malloc/test_position_independent_malloc.cpp (main): - Added auto_ptr support to this test, as well. - - * examples/Shared_Malloc/test_multiple_mallocs.cpp: Enhanced - this test so that it uses auto pointers and also now takes - advantage of position-independent malloc, when possible. - - * examples/Shared_Malloc/test_position_independent_malloc.cpp: - Finished integrating all the features of this test. It's pretty - cool now! - - * examples/Shared_Malloc/Makefile: Updated the LSRC target so - 'make depend' works correctly... - - * ace/Select_Reactor_Base.cpp (find): Don't set errno = ENOENT - if we find a valid mapping of handle to Event_Handler. Thanks - to Hao Ruan for reporting this. - - * ace/Based_Pointer_T: Added support for operator= (const - ACE_Based_Pointer_Basic &). - - * ace/Based_Pointer_T: Added definitions for - ACE_Based_Pointer::operator= and - ACE_Based_Pointer_Basic::operator= to make EGCS happy. - - * ace/Malloc.h: Factored out the common code for - ACE_Based_Pointer<> and the underlying types, thereby reducing - the number of #ifdef's. - - * ace/Based_Pointer_T: Added an operator CONCRETE *() method - - * ace/Based_Pointer_Repository.cpp: The original implementation - of this classes stored a pointer to the size of each mapped - address, rather than just the value. This was causing problems - when used for shared memory because the memory was allocated in - one process and freed in another. This is now fixed by not - storing a pointer, but by storing the value instead. Thanks to - Nanbor for reporting this. - -Tue Aug 3 23:43:47 1999 Carlos O'Ryan - - * netsvcs/clients/Naming/Client/Makefile: - * netsvcs/clients/Naming/Dump_Restore/Makefile: - Fixed dependencies so parallel compilations (using the -j - option) will work correctly. This fixes [BUGID:187] - -Tue Aug 3 23:23:18 1999 Kirthika Parameswaran - - * ace/Cached_Connect_Strategy_T.{h,cpp} (cleanup): - Added a specialised method to prevent memory leaks with old - versions of g++. This method calls the underlying iterator - and does the cleanup. - - * ace/run_tests.sh: - Removed purify check over Cached_Accept_Conn_Test and - Cached_Conn_Test since they no longer leak memory when built - using old version of g++. - -Tue Aug 3 22:23:18 1999 Balachandran Natarajan - - * include/makeinclude/wrapper_macros.GNU: Added an ifeq flag for - the interface repository. Compiling with interface_repo=1 will - compile the files for interface repository. - -Tue Aug 03 21:17:00 1999 Nanbor Wang - - * tests/SOCK_Connector_Test.cpp (host_is_up): Added a time out - value of 5 second to spped up the test. Thanks to Jody Hagins - for submitting the patch. - -Tue Aug 03 18:30:47 1999 Kirthika Parameswaran - - * ace/Strategies.h (ACE_Connection_Recycling_Strategy): - Added a new pure virtual method which will - provide a non-locking implementation of the - method. - - * ace/Strategies_T.h (ACE_Cached_Connect_Strategy): - * ace/Cached_Connect_Strategy_T.h (ACE_Cached_Connect_Strategy_Ex): - Made public. - - * ace/Caching_Utility_T.{h,cpp} - (ACE_Refcounted_Recyclable_Caching_Utility): Added this class - which caters to purging of refcounted and recyclable handlers. - - * ace/Cleanup_Strategy_T.{h,cpp}: - (ACE_Refcounted_Recyclable_Cleanup_Strategy): Added this class - which caters to the cleanup of handlers which are refcounted and - recyclable. Heres where the necessity of making the non-locking - version of public arose in the first place. - - * ace/OS.h (ACE_Recyclable_State): - Removed hardcoded values and left the enum values to the - discretion of the compiler. - -Tue Aug 03 16:58:08 1999 Joe Hoffert - - * ace/ATM_Acceptor.{h,cpp}: - * ace/ATM_Connector.{h,cpp}: - * ace/ATM_Stream.{h,i,cpp}: - * ace/ATM_Params.cpp: - * ace/ATM_QoS.cpp: - * ace/XTI_ATM_Mcast.{h,i,cpp}: - Fixed inlining errors. - -Tue Aug 03 16:15:00 1999 Chris Gill - - * ace/Auto_Ptr.h: created ACE_AUTO_PTR_RESET macros, which depend on - whether or not ACE_AUTO_PTR_LACKS_RESET is defined. - - * ace/config-kcc-common.h: defined ACE_AUTO_PTR_LACKS_RESET, because - KCC native auto_ptr support is difficult to disable, and implements - an older version of auto_ptr (without the reset method). - -Tue Aug 03 13:26:47 1999 Nanbor Wang - - * ace/Service_Repository.cpp (instance): Check to see if - the ACE_Object_Manager is being shutting down before creating a - new instance of Service_Repository. Otherwise, we may be - creating a new service repository just for shutting it down. - Thanks to Doug for noticing this. - - * ace/Service_Config.cpp (fini_svcs): Since it is now possible for - ACE_Service_Repository::instance to return 0 during program - shutdown, we must check its value before using it. - - Notice that the change assumes people don't do stupid things - like initializing the Service_Config during program shutdown. - -Mon Aug 2 23:21:01 1999 Carlos O'Ryan - - * bin/auto_compile: - Added several flags to: disable test execution, specify the list - of build directories on the command line, send email on - successful compilation, keep a more detailed history, etc. - -Mon Aug 02 18:38:37 1999 Joe Hoffert - - * ace/ATM_Acceptor.{h,i,cpp} : - * ace/ATM_Connector.{h,i,cpp} : - * ace/ATM_Params.{h,i,cpp} : - * ace/ATM_QoS.{h,i,cpp} : - * ace/ATM_Stream.{h,i,cpp} : - * ace/XTI_ATM_Mcast.{h,i,cpp} : - * ace/ATM_Addr.{h,cpp}: - * ace/Makefile: - * ace/TLI_Connector.i: - Added new ATM wrapper files to make the mechanism of sockets or - XTI transparent when using the ATM protocol. Modified existing - files to take advantage of these wrapper classes. - - * examples/IPC_SAP/ATM_SAP : - * examples/IPC_SAP/ATM_SAP/CPP-client.cpp : - * examples/IPC_SAP/ATM_SAP/CPP-server.cpp : - * examples/IPC_SAP/ATM_SAP/Makefile : - Added new test directory and programs to test ATM wrapper classes. - - * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp: - Modified existing test program to utilize new ATM_QoS class. - -Mon Aug 02 17:24:05 1999 Nanbor Wang - - * ace/OS.h (ACE_DL_TYPE): Only WinCE uses wchar_t DL type, we'll - just deal with this in ACE_OS::dlsym instead of defining - different types here. - - * ace/OS.i (dlsym): GetProcAddress is defined differently on - Windows CE and other Win32 platforms so we need to treat them - differently. - - * ace/Malloc.h (ACE_Malloc_Header): Added a dummy member function - to prevent egcs from complaining "all member functions are - private." - - * ace/Based_Pointer_Repository.cpp: Fixed the use of map - iterators. - - * examples/Shared_Malloc/test_position_independent_malloc.cpp - (main): Delete the allocator before exiting from main. - - * ace/Malloc.h (ACE_Malloc_Header,ACE_Name_Node,ACE_Control_Block): - Added an unimplemented assignment operator for this class. - Otherwise, some compilers will try to use - ACE_Based_Pointer_Base::operator= which is not implemented. - -Mon Aug 2 09:58:20 1999 Ossama Othman - - * netsvcs/lib/Name_Handler.cpp (init): - * netsvcs/lib/Server_Logging_Handler_T.cpp (init): - * netsvcs/lib/TS_Clerk_Handler.cpp (init): - - Changed cast to ACE_SignalHandler to allow it to compile under - gcc 2.95. Thanks to Jeffrey Franks for - reporting the problem. - -Sun Aug 1 15:58:39 1999 James CE Johnson - - * docs/tutorials/colorize: - Added
     wrapper around generated output.
    -
    -        * docs/tutorials/Chap_03/Makefile:
    -        * docs/tutorials/Chap_03/README:
    -        * docs/tutorials/Chap_03/mm.cpp:
    -        * docs/tutorials/Chap_03/ex03.html: mm.cpp (and ex03.html) are a
    -          slightly modified version of ex02.html that uses a memory mapped
    -          file instead of SYSV SHMEM.  To work around the lack of fork()
    -          in Win32, the app must be executed once in server mode
    -          (argv[1] == 's') and again in client mode.
    -
    -Sun Aug  1 15:58:39 1999  Douglas C. Schmidt  
    -
    -        * ace/Memory_Pool.cpp: If the base_addr is 0 for the
    -          ACE_MMAP_Memory_Pool_Options, then we will disable the
    -          "use_fixed_addr" option since it's going to cause big trouble to
    -          mmap() at location 0!  Plus, when 0 is used it's intended as an
    -          indication that the application wants the OS to choose the
    -          appropriate mapping.  This minor change in semantics works
    -          particularly well with the new
    -          ACE_HAS_POSITION_INDEPENDENT_MALLOC feature, because we can now
    -          let the OS choose the mapping location with out fear of begin
    -          mapped to a different location!
    -
    -        * ace  /Memory_Pool.cpp: Conditionally include
    -          ace/Based_Pointer_Repository.h when
    -          ACE_HAS_POSITION_INDEPENDENT_MALLOC is defined.
    -
    -        * ace/config-sunos5.5.h: Enabled the
    -          ACE_HAS_POSITION_INDEPENDENT_MALLOC macro by default.  Let's see
    -          whether this breaks lots of stuff ;-).
    -
    -        * ace/OS.h: Moved the definition of ACE_IPPROTO_TCP down
    -          further in this file so that the IPPROTO_TCP macro would be
    -          defined.
    -
    -        * ace/Based_Pointer_T.cpp: Removed an inappropriate use of
    -          ACE_INLINE in the *.cpp file.  Thanks to DEC UNIX C++ for
    -          reporting this!
    -
    -Sun Aug 01 02:41:44 1999  Nanbor Wang  
    -
    -        * examples/Shared_Malloc/Shared_Malloc.dsw
    -        * examples/Shared_Malloc/position_independent_malloc.dsp: Added
    -          this new project file for position independent malloc test.
    diff --git a/ACE/FAQ b/ACE/FAQ
    deleted file mode 100644
    index c184fbde84c..00000000000
    --- a/ACE/FAQ
    +++ /dev/null
    @@ -1,1847 +0,0 @@
    -There are many changes and improvements in the new version of ACE.
    -The ChangeLog file contains complete details about all of them.
    -
    -I've tested ACE thoroughly on Solaris 2.3 and 2.4 with the SunC++ 4.x
    -compiler and Centerline 2.x.  I've also tested it with the SunC++ 3.x
    -compiler on the SunOS 4.x platform.  However, I've not been able to
    -test it on other platforms.  If anyone has time to do that, and can
    -report the results back to me I'd appreciate that.
    -
    -Please let me know if you have any questions or comments.
    -
    -	Doug
    -
    -----------------------------------------
    -
    -1. SIGHUP
    -
    -> 1) Where the heck does the HUP signal get registered for the 
    -> $ACE_ROOT/tests/Service_Configurator/server stuff? I looked there and
    -> in $ACE_ROOT/libsrc/Service_Configurator. No luck. I guess I am
    -> just blind from reading.
    -
    -	Take a look in ./libsrc/Service_Configurator/Service_Config.h.
    -The constructor for Service_Config is where it happens:
    -
    -  Service_Config (int ignore_defaults = 0, 
    -		  size_t size = Service_Config::MAX_SERVICES, 
    -		  int signum = SIGHUP);
    -
    -----------------------------------------
    -2. Multi-threaded Signal_Handler support
    -
    -> It appears Signal_Handler is
    -> not setup for multi-threaded apps.  How do you handle signals
    -> in different threads? Do I have to put in the hooks in my app or should
    -> it go in the Threads arena?
    -
    -	Ah, good question...  My design follows the approach espoused
    -by Sun.  Basically, they suggest that you implement per-thread signal
    -handling atop of the basic UNIX signal handlers (or in the case of
    -ACE, the handle_signal() callbacks on Event_Handler subclasses) by
    -using the thread id returned by thr_self() to index into a search
    -structure containing the handlers.  This should be pretty straight
    -forward to layer atop the existing ACE Signal_Handler mechanisms.
    -However, you might ask yourself whether you really want (1) separate
    -signal handler *functionality* in different threads or (2) different
    -threads that mask out certain signals.  The latter might be easier to
    -implement and reason about!
    -
    -----------------------------------------
    -3. Problems compiling ACE with G++
    -
    -> I substituted -lg++ for -lC in macro_wrappers.GNU and ran make.
    -> 
    -> Most stuff seemed to build.  Continually got messages like the following:
    -> ld: /usr2/tss/jvm/ACE_wrappers/lib/libASX.a: warning: archive has no table of c
    -> ontents; add one using ranlib(1)
    -> ld: /usr2/tss/jvm/ACE_wrappers/lib/libThreads.a: warning: archive has no table 
    -> of contents; add one using ranlib(1)
    -> ld: /usr2/tss/jvm/ACE_wrappers/lib/libSPIPE.a: warning: archive has no table of
    ->  contents; add one using ranlib(1)
    -> ld: /usr2/tss/jvm/ACE_wrappers/lib/libASX.a: warning: archive has no table of c
    -> ontents; add one using ranlib(1)
    -> ld: /usr2/tss/jvm/ACE_wrappers/lib/libThreads.a: warning: archive has no table 
    -> of contents; add one using ranlib(1)
    -> ld: /usr2/tss/jvm/ACE_wrappers/lib/libSPIPE.a: warning: archive has no table of
    ->  contents; add one using ranlib(1)
    -
    -> no matter how many times I used ranlib or removed the libraries and re-compiled
    -> or whatever.  Perhaps these are System V specific and will not work on 4.1.3?
    -
    -	Yes, that's exactly right.  If you look at the files, they all
    -contain ifdef's for features that aren't included in the
    -./include/makeinclude/wrapper_macros.GNU file.  To make this more
    -obvious, I've enclosed the following message in the ACE-INSTALL.html file:
    -
    -	* Sun OS 4.1.x
    -
    -		  Note that on SunOS 4.x you may get warnings from the 
    -		  linker that "archive has no table of contents; add
    -		  one using ranlib(1)" for certain libraries (e.g.,
    -		  libASX.a, libThreads.a, and libSPIPE.a).  This 
    -		  occurs since SunOS 4.x does not support these features.
    -
    -> never able to get .so -- assume these are shared libraries that gcc can not
    -> deal with.
    -
    -	Yes, if you use the stock gcc/gas/gnu ld
    -compiler/assembler/linker, you won't get shared libraries to work.  It
    -is possible to hack this by using the "collect" version of g++.
    -However, as usual, I strongly advise people to stay away from g++ if
    -you want to use shared libraries or templates.
    -
    -> got some linker errors as follows:
    -> 
    -> g++ -g  -DACE_NTRACE  -DACE_HAS_MT_SAFE_SOCKETS -DACE_HAS_NO_T_ERRNO -DACE_HAS_
    -> OLD_MALLOC -DACE_HAS_POLL -DACE_HAS_SEMUN -DACE_HAS_SETOWN -DACE_HAS_STRBUF_T -
    -> DACE_HAS_STREAMS -DACE_HAS_SVR4_DYNAMIC_LINKING -DACE_HAS_TIUSER_H -DACE_HAS_SY
    -> S_FILIO_H -DACE_PAGE_SIZE=4096 -DACE_HAS_ALLOCA -DACE_HAS_CPLUSPLUS_HEADERS -DA
    -> CE_HAS_SVR4_SIGNAL_T -DACE_HAS_STRERROR -DMALLOC_STATS -I/usr2/tss/jvm/ACE_wrap
    -> pers/include  -I/usr2/tss/jvm/ACE_wrappers/libsrc/Shared_Malloc  -o test_malloc
    ->  .obj/test_malloc.o -L/usr2/tss/jvm/ACE_wrappers/lib  -Bstatic -lSemaphores -lS
    -> hared_Malloc -lShared_Memory -lReactor -lThreads -lMem_Map -lLog_Msg -lFIFO -lI
    -> PC_SAP -lMisc -lnsl -lg++
    -> ld: /usr2/tss/jvm/ACE_wrappers/lib/libThreads.a: warning: archive has no table 
    -> of contents; add one using ranlib(1)
    -> ld: Undefined symbol 
    ->    _free__t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEXPv 
    ->    _free__t6Malloc2Z17Local_Memory_PoolZ10Null_MutexPv 
    ->    _malloc__t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEXUl 
    ->    _malloc__t6Malloc2Z17Local_Memory_PoolZ10Null_MutexUl 
    ->    _remove__t6Malloc2Z17Local_Memory_PoolZ10Null_Mutex 
    ->    ___t6Malloc2Z17Local_Memory_PoolZ10Null_Mutex 
    ->    _print_stats__t6Malloc2Z17Local_Memory_PoolZ10Null_Mutex 
    ->    _remove__t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEX 
    ->    ___t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEX 
    ->    _print_stats__t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEX 
    -> collect2: ld returned 2 exit status
    -> gcc: file path prefix `static' never used
    -> make[2]: *** [test_malloc] Error 1
    -> make[2]: Leaving directory `/usr2/tss/jvm/ACE_wrappers/tests/Shared_Malloc'
    -> <========     End all: /usr2/tss/jvm/ACE_wrappers/tests/Shared_Malloc
    -
    -	That looks like a problem that G++ has with templates.  I
    -don't know of any reasonable solution to this problem using g++.
    -
    -> Finally decided there was enough stuff that it looked like I might have some
    -> thing so I tried to run some tests and could not find so much as one piece
    -> of documentation that might give me some clue about running tests.
    -
    -You should take a look at ./tests/Service_Configurator/server/README
    -file.  That explains how to run the more complicated tests.  As for
    -the other tests, it is pretty straight forward if you look at the
    -./tests/IPC_SAP/SOCK_SAP and ./tests/Reactor/* directory code to
    -figure out how to run the tests.  I don't have a Q/A department, so
    -any documentation has to come from volunteers.
    -
    -----------------------------------------
    -4. Is there any docs or man pages on the Log_Record class?
    -
    -There is a paper in the C++_wrappers_doc.tar.Z file on ics.uci.edu
    -called reactor2.ps that has some examples of using Log_Record.  The
    -./apps/Logger directories show several examples using Log_Record.  
    -Finally, the source code for Log_Record is pretty short (though it
    -clearly could be commented better ;-)).
    -
    -----------------------------------------
    -5. Signal handling prototypes
    -
    -> According to the man page on sigaction on our system, that line
    -> should look something like the following:
    -> 
    ->       sa.sa_handler = SIG_DFL;
    -
    -	The problem is that most versions of UNIX I've come across
    -don't have a correct prototype for this field of struct sigaction.
    -That's why I define two variants of signal handler typedefs: one that
    -is a typedef of the "correct version" (which I call SignalHandler) and
    -one of which is a typedef of the "incorrect version" (which I call
    -SignalHandlerV).  You might check out the sysincludes.h file to see
    -how it is defining SignalHandlerV and make sure this matches what your
    -OS/Compiler defines in 
    -
    -----------------------------------------
    -6. Omitting shared libraries
    -
    -> Can anyone tell me a way to turn off the creation of the shared libraries
    -> in the ACE build.
    -
    -You can simply comment out the LIB target in the $ACE_ROOT/ace/Makefile
    -or change the BUILD target from
    -
    -BUILD	= $(VLIB) $(VSHLIB) $(SHLIBA)
    -
    -to
    -
    -BUILD	= $(VSHLIB) $(SHLIBA)
    -
    -----------------------------------------
    -7. DCE threading and signal handling
    -
    ->Reading the DCE docs leaves me confused as to how to make everyone
    ->work together in a happy hormonious whole. May basic need is to catch
    ->asynchronous signals so i can release some global resources before
    ->the process exits.
    -
    -You need to spawn a separate thread to handle signals.  As part of
    -your init, do this:
    -	pthread_create(&tid, thread_attr, signal_catcher, NULL);
    -	pthread_detach(&tid);
    -
    -Where signal_catcher is like this:
    -static void *
    -signal_catcher(void *arg)
    -{
    -    static int		catch_sigs[] = {
    -	SIGHUP, SIGINT, SIGQUIT, SIGTERM, SIGCHLD
    -    };
    -    sigset_t		catch_these;
    -    int			i;
    -    error_status_t	st;
    -
    -    for ( ; ; ) {
    -	sigemptyset(&catch_these);
    -	for (i = 0; i < sizeof catch_sigs / sizeof catch_sigs[0]; i++)
    -	    sigaddset(&catch_these, catch_sigs[i]);
    -	i = sigwait(&catch_these);
    -	/* Note continue below, to re-do the loop. */
    -	switch (i) {
    -	default:
    -	    fprintf(stderr, "Caught signal %d.  Exiting.\n", i);
    -	    CLEANUP_AND_EXIT();
    -	    /* NOTREACHED */
    -#if	defined(SIGCHLD)
    -	case SIGCHLD:
    -	    srvrexec__reap();
    -	    continue;
    -#endif	/* defined(SIGCHLD) */
    -	}
    -    }
    -    return NULL;
    -}
    -----------------------------------------
    -8.
    -
    -> I have installed ACE2.15.5 on SunOS 4.1.3 with gcc2.6.0. I run the test program
    -> ---server_test. The static is OK, but error found when I commented out the first
    -> one and uncommented out the second one in the svc.conf file: 
    -> 
    -> #static Svc_Manager "-d -p 3912"
    -> dynamic Remote_Brdcast Service_Object * .shobj/Handle_Broadcast.so:remote_broad
    -> cast "-p 10001"
    -> 
    -> The error goes like this:
    -> 
    -> -----------
    -> jupiter[12] %server_test -d
    -> starting up daemon server_test
    -> opening static service Svc_Manager
    -> did static on Svc_Manager, error = 0
    -> signal signal 1 occurred
    -> beginning reconfiguration at Sat Feb 25 13:40:29 1995
    -> Segmentation fault (core dumped)
    -> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    -
    -My guess is that the code generated by GCC on SunOS 4.x does not
    -correctly initialize static variables from shared libraries.  The
    -SunC++ 4.0.x compiler does this correctly on Solaris 2.x (though I
    -believe that on SunOS 4.x it doesn't work without some extra coaxing).
    -
    -In general, I try to avoid using ACE's explicit dynamic linking
    -mechanisms on SunOS 4.x and GCC.  You can write plenty of interesting
    -and useful code with ACE without using those features.  Those tests
    -are mostly there to illustrate the "proof of concept."
    -----------------------------------------
    -9. 
    -
    -> a) I noticed the default constructor for the reactor does an open w/ defaults.
    ->    Does this mean I need to close it if I wish to re-open it with different
    ->    size and restart values?
    -
    -	No.  With the latest versions of ACE, you can now just call
    -open() with a new size and it will correctly resize the internal
    -tables to fit.
    -
    -> b) What is the usage difference between the normal FD_Set objects 
    ->    (rd/wr/ex_handle_mask_) and the ready FD_Set objects 
    ->    (rd/wr/ex_handle_mask_ready)?
    -
    -	The normal FD_Sets (now called Handle_Set in ACE 3.0.5) holds
    -the "waitable" descriptors (these are the descriptors given to
    -select() or poll()).  In contrast, the ready FD_Sets may be set by
    -Event_Handler subclasses (by called the set_ready() API) to indicate
    -to the Reactor that they want to be redispatched on the next go-round
    -*without* blocking.  If you look at the Reactor code, you'll see that
    -the wait_for() method checks the ready sets first and doesn't block if
    -there are any bits set in those masks.  This features makes it
    -possible for Event_Handlers to control subsequent dispatching policies
    -of the Reactor.
    -
    -> c) What does the positive return value do from an event handler callback:
    ->   -1 detaches the event handler for that mask
    ->    0 does nothing - keeps the event handler registered for that mask
    ->   >0 resets a bit in the current dispatching mask (I think) - does this mean 
    ->    this event will be called again before the current dispatch cycle is done?
    -
    -Almost...  (it's tied in with my description of the ready sets above).
    -It means that once the Reactor finishes cycling through the set of
    -descriptors it got back from select() or poll(), it will redispatch
    -the ready set descriptors before sleeping.
    -
    ->    Without direct access to the bit masks in X, I'm not sure I could emulate
    ->    this activity - what do you think?
    -
    -I'm not sure.  I'm not enough of an X guru.  Maybe someone else on the
    -list knows the answer to this?
    -
    -> d) If I let X do the select blocking, will that have any affect on 
    ->    the Reactor performing signal handling? 
    -
    -	Yes, I think that will cause problems since the Reactor relies
    -on a "handshake" between its Signal_Handler component and its
    -handle_events loop to properly handle signals.
    -
    -> e) Is the Poll method preferred over Select if it is available - why?
    -
    -For systems that implement select() in terms of poll() (e.g., Solaris
    -2.x) then it may be somewhat faster.  Otherwise, it doesn't really
    -matter since (1) they (should) do the same thing and (2) the end user
    -shouldn't notice any change in behavior.
    -
    -----------------------------------------
    -10. 
    -
    -> I would very much like to evaluate/use the ACE Toolkit,
    -> but am limited as to disk space on our system.
    -> What is the total disk space required for a compiled,
    -> usable toolkit?
    -
    -The source code itself is around 2 Meg, uncompressed.  
    -
    -The compiled version of ACE is around 90 Meg compiled with the SunC++
    -4.x compiler (naturally, this will differ with other compilers).
    -However, of this amount, about 40 meg are for the libraries, and
    -another 50 meg are for the test programs.  Naturally, you don't need
    -to keep the test programs compiled.
    -
    -The postscript documentation is around 5 Meg, compressed.
    -
    -----------------------------------------
    -11.
    -
    -> This is regarding the newer release of ACE and pertaining to the library
    -> archive file. My question is, if all the ".o" files are archived into one
    -> single "libACE.a", does it increase the size of the executable program?
    -
    -No.  The use of a *.a file allows the linker to extract out only those
    -*.o files that are actually used by the program.
    -
    -> If it does, then does a large executable program mean possibility of it being 
    -> slower?
    -
    -	No.
    -
    -----------------------------------------
    -12.
    -
    -> What happens if I have several reactors in a process (e.g. in different 
    -> threads)?
    -> 
    -> Programmer 1 decides to register at reactor 1 in his thread 1 a signal handler 
    -> for SIGUSR.
    -> Programmer 2 decides to register at reactor 2 in his thread 2 a signal handler
    -> for SIGUSR.
    -
    -	Naturally, the behavior of this all depends on the semantics
    -of the threads package...  In Solaris 2.x, signal handlers are shared
    -by all threads.  Moreover, the Reactor uses a static table to hold the
    -thread handlers.  Thus, only one of the handler's would be registered
    -(i.e., whichever one was registered second).
    -
    -> Programmer 3 designs the process and decides to have thread 1 and thread 2
    -> running in the same process and also makes use of a third party software library
    -> that internally has also registered a signal handler (not at the reactor) for
    -> SIGUSR.
    -
    -	Now you've got big problems!  This is an example of a
    -limitation with UNIX signal handlers...  In general, it's a bad idea
    -to use signal handlers if you can avoid it.  This is yet another
    -reason why.
    -
    -> When looking into Ace/ACE_wrappers/tests/Reactor/misc/signal_tester.C you
    -> have shown a way to do this by marking the dummy file_descriptor of the
    -> Sig_Handler object ready for reading asynchronously. The handle_input()
    -> routine of Sig_Handler object will then be dispatched synchronously.
    -> But what happens if I have several reactors. 
    -> The asynchronously dispatched
    -> handle_signal() routine does not know via which reactor it has been registered
    -> so in which reactor to modify the dummy file_descriptor.
    -> Is your suggestion to have just one process global reactor in such a case?
    -
    -	Yes, precisely.  I would *strongly* recommend against using
    -several reactors within separate threads within the same process if
    -you are going to be having them handle signals.  Can you use 1
    -reactor and/or have one reactor handle signals within a process?
    -
    -> One thing we want to do is the priorization of Event_Handlers. I.e. in case
    -> of concurrent events the sequence in which the Event_Handler methods will be
    -> activated depends on their priority relative to each other. 
    -> We have two choices:
    -> - complete priorization, which means a high priority Input Event_Handler may
    ->   be activated prior to a lower prioritized Output Event_Handler (and doing
    ->   so violating the 'hardcoded rule' that output must be done prior to input).
    -> - priorization only in categories, which means all Output Event_handler are
    ->   ordered by their priority regardless of priorities for the category of Input
    ->   Event_Handlers. The priority is fixed between the categories, i.e. first
    ->   output then input then out-of-band.
    -> 
    -> Right now I would think that we have to use the second choice if we want to
    -> use the feature of asynchronous output with automatical re-queueing. Am I right
    -> ?
    -
    -	Hum, that's an interesting problem.  It might be better to
    -subclass the Reactor to form a new class called Priority_Reactor.
    -This subclass would override the Reactor's dispatch method and
    -dispatch the event handlers in "priority" order.  I've never done
    -that, but I don't think it would be all that difficult.
    -
    -----------------------------------------
    -13. 
    -
    -> 	Is the Orbix (aka CORBA) version still around?
    -
    -Nope, IONA does not support Orbix-2.X nor Orbix-3.0 anymore (the
    -versions of Orbix that the ACE code was based upon).  Plus we didn't
    -maintain this code for ages, so it probably was broken too.
    -
    -----------------------------------------
    -14. 
    -> We are using your ACE software and ran into a problem which may or may not
    -> be related to the mutex locks.  The question may have more to do with how 
    -> mutex locks should be used.  We had a class which was using your mutex 
    -> lock wrapper.  Each member function of the class acquired the lock before 
    -> processing and released on exiting the function.  Some member functions may 
    -> call other member functions.  The following is an example:
    -> 
    -> class foo {
    -> 
    -> void a()
    -> {
    ->   MT( Mutex_Block m( this->lock_ ));
    -> 
    ->   if( cond )
    ->     b();
    -> }
    -> 
    -> void b()
    -> {
    ->   MT( Mutex_Block m( this->lock_ ));
    -> 
    ->   if( cond )
    ->     a();
    -> }
    -> 
    -> };
    -> 
    -> Is this valid ?  My assumtpion is that the mutex lock is recursive and 
    -> the same thread can acquire the lock multiple times in different member
    -> functions.
    -
    -	Ah, that's a great question since there are subtle and
    -pernicious problems lurking in the approach you are trying above.
    -Basically, Solaris mutex locks are *not* recursive (don't ask why...)
    -Thus, if you want to design an application like the one above you'll
    -need to use one or more of the following patterns:
    -
    -----------------------------------------
    -A. Use recursive mutexes.  Although these are not available in
    -   Solaris directly they are supported in the later versions
    -   of ACE.  You might want to take a look at the latest
    -   version (./gnu/ACE-3.1.9.tar.Z).  It's got lots of new
    -   support for threading and synchronization.  In that case,
    -   you simply do the following:
    -
    -	class Foo 
    -	{
    -	  public:
    -	  void a()
    -	  {
    -	    MT( Guard > m( this->lock_ ));
    -	    b ();
    -	  }
    -
    -	  void b()
    -	  {
    -	    MT( Guard > m( this->lock_ ));
    -	    b_i ();
    -	  }
    -
    -	};
    -
    -   The advantage with this is that it requires almost no
    -   changes to existing code.  The disadvantage is that
    -   recursive locks are just slightly more expensive.
    -
    -B. Have two layers of methods (a) which are public and acquire
    -   the Mutex and then call down to methods in layer (b), which
    -   are private and do all the work.  Methods in layer b assume
    -   that the locks are held.  This avoids the deadlock problem
    -   caused by non-recursive mutexes.  Here's what this approach
    -   looks like (using the more recent ACE class names):
    -
    -	class Foo 
    -	{
    -	  public:
    -	  void b()
    -	  {
    -	    MT( Guard m( this->lock_ ));
    -	    b_i ();
    -	  }
    -
    -	  void b_i()
    -	  {
    -	    if( cond )
    -	      a_i();
    -	  }
    -
    -	  void a_i()
    -	  {
    -	    if( cond )
    -	      b_i();
    -	  }
    -
    -	  void a()
    -	  {
    -	    MT( Guard m( this->lock_ ));
    -	    a_i ();
    -	  }
    -
    -	};
    -
    -    The advantage here is that inline functions can basically
    -    remove all performance overhead.  The disadvantage is that
    -    you need to maintain two sets of interfaces.
    -
    -C. Yet another approach is to release locks when calling
    -   other methods, like this:
    -
    -	class Foo 
    -	{
    -	  public:
    -	  void b()
    -	  {
    -	    MT( Guard m( this->lock_ ));
    -	    m.release ();
    -	    a ();
    -	    m.acquire ();
    -	  }
    -
    -	  void a()
    -	  {
    -	    MT( Guard m( this->lock_ ));
    -	    m.release ();
    -	    b ();
    -	    m.acquire ();
    -	  }
    -
    -	};
    -
    -   The disadvantage with this, of course, is that you
    -   greatly increase your locking overhead.  In addition,
    -   you need to be very careful about introducing race
    -   conditions into the code.  The primary reason for
    -   using this approach is if you need to call back to
    -   code that you don't have any control over (such as
    -   OS I/O routines) and you don't want to hold the 
    -   lock for an indefinite period of time.
    -----------------------------------------
    -	   
    -	BTW, all three of these patterns are used in the ACE Reactor
    -class category.  The Reactor has a number of fairly complex
    -concurrency control and callback issues it must deal with and I've
    -found it useful to use all three of these patterns jointly.
    -
    -	I'd be interested to hear any comments on these approaches.
    -	
    -	Doug
    -----------------------------------------
    -15. 
    -
    -> I am working on Solaris 2.3 and trying to understand how to get around
    -> the problem of trying to open a Socket connection to a remote host that
    -> is "dead".  Of course you get a nice long process block if the socket
    -> is in Blocking mode (TCP lets you know when you can continue - how polite). 
    ->
    -> So how does a non-blocking connect work with respect to using
    -> the Reactor and a SOCK_Stream object to coordinate the opening
    -> of the connection? Do I wait on the OUTPUT event for the FD?
    -> How do I know if the connect worked or possibly timed-out?  Is
    -> this a reliable approach (I read somewhere that this will only
    -> work if the STREAMS module is at the top of the protocol stack
    -> - MAN page I think)?
    -
    -An example of implementing this is in the Gateway sample application
    -in the new ACE.  It's also encapsulated in the Connector<> pattern of
    -the Connection class category in ./libsrc/Connection.  You may want to
    -take a look at those two things for concrete usage examples.
    -
    -However, the basics of getting non-blocking to work are:
    -- set socket to non-blocking
    -- initiate connect() request
    -- if connect() returned 0 you're connected
    -- if connect() returned -1 and errno is EWOULDBLOCK (or EAGAIN, depending  
    -on where you are), then register an event handler for read and write events  
    -on the socket
    -- any other errno value is fatal
    -
    -When an event is returned
    -- no matter which event you get back (read or write), you may have gotten  
    -the event out of error.  Thus, re-attempt the connect() and check to see if  
    -errno is EISCONN (if it's not there's a problem!)
    -- if errno was EISCONN, the connection is ready to go, otherwise you must  
    -handle an error condition
    -
    -If you want to "time out" after a certain period of time, consider  
    -registering for a timer event with Reactor.  If the timer goes off before  
    -the connection succeeds, close down the appropriate socket.
    -
    -> Is using a separate thread to make the connection a better way to avoid
    -> the potentialy long block in the main thread during the connect call?
    -
    -You could do that, but it can all be accomplised in a single process using  
    -the facilities available.
    -----------------------------------------
    -16. 
    -
    -> I was wondering, does the Reactor class have the ability to prioritize 
    -> activity on the registered event handlers?
    -
    -	The default strategy for the Reactor's dispatch routine
    -(Reactor::dispatch) does not prioritize dispatching other than to
    -dispatch callbacks in ascending order from 0 -> maxhandlep1.
    -
    -> We have a requirment to be able to process both real-time, as well as, stored
    -> telemetry and ERMs concurrently.  Real-time needs to be processed at a higher
    -> priority than stored data.  Our design is based on both real-time and stored 
    -> data coming into our process via separate sockets.  
    -
    -	I can think of several ways to do this:
    -	
    -	1. Use dup() or dup2() to organize your sockets such that the
    -	   higher priority sockets come first in the Handle_Sets that
    -	   the Reactor uses to dispatch sockets.  This is pretty easy
    -	   if you don't want to muck with the Reactor code at all.
    -
    -	2. You could subclass Reactor::dispatch() and revise it so
    -	   that it dispatches according to some other criteria that
    -	   you define in order to ensure your prioritization of
    -	   sockets.
    -
    -BTW, I'm not sure what you mean by "real-time" but I assume that you
    -are aware that there is no true "real-time" scheduling for network I/O
    -in Solaris.  However, if by "real-time" you mean "higher priority"
    -then either of the above strategies should work fine.  
    -----------------------------------------
    -17. 
    -
    -> 	I compiled the new ACE 3.2.0 's apps/Gateway. The compiling went
    -> through without any errors. But I could not get it running,  neither single
    -> threaded nor multi-threaded. The cc_config and rt_config files entries are given
    -> below. Also the machine configurations are given below. Does it need some more 
    -> settings or some patch !!??
    -
    -	I believe you are seeing the effects of the dreaded Sun MP bug
    -with non-blocking connects.  The easy work around for now is simply to
    -give the "-b" option to the Gateway::init() routine via the svc.conf
    -file:
    -
    -dynamic Gateway Service_Object *.shobj/Gateway.so:_alloc_gatewayd() active 
    -				"-b -d -c cc_config -f rt_config"
    -
    -If you check line 137 of the Gateway::parse_args() method you'll see
    -what this does.
    -----------------------------------------
    -18.
    -
    -How to get ACE to work with GCC C++ templates.
    -
    -The first and foremost thing to do is to get the latest version of GCC
    -(2.7.2) and also get the template repository patches from
    -
    -ftp://ftp.cygnus.com/pub/g++/gcc-2.7.1-repo.gz
    -
    -This will get the ball rolling...
    -
    -Here is some more info on G++ templates courtesy of Medhi TABATABAI
    -:
    -
    -Where's the Template?
    -=====================
    -
    -   C++ templates are the first language feature to require more
    -intelligence from the environment than one usually finds on a UNIX
    -system.  Somehow the compiler and linker have to make sure that each
    -template instance occurs exactly once in the executable if it is
    -needed, and not at all otherwise.  There are two basic approaches to
    -this problem, which I will refer to as the Borland model and the
    -Cfront model.
    -
    -Borland model
    -     Borland C++ solved the template instantiation problem by adding
    -     the code equivalent of common blocks to their linker; template
    -     instances are emitted in each translation unit that uses them, and
    -     they are collapsed together at run time.  The advantage of this
    -     model is that the linker only has to consider the object files
    -     themselves; there is no external complexity to worry about.  This
    -     disadvantage is that compilation time is increased because the
    -     template code is being compiled repeatedly.  Code written for this
    -     model tends to include definitions of all member templates in the
    -     header file, since they must be seen to be compiled.
    -
    -Cfront model
    -     The AT&T C++ translator, Cfront, solved the template instantiation
    -     problem by creating the notion of a template repository, an
    -     automatically maintained place where template instances are
    -     stored.  As individual object files are built, notes are placed in
    -     the repository to record where templates and potential type
    -     arguments were seen so that the subsequent instantiation step
    -     knows where to find them.  At link time, any needed instances are
    -     generated and linked in.  The advantages of this model are more
    -     optimal compilation speed and the ability to use the system
    -     linker; to implement the Borland model a compiler vendor also
    -     needs to replace the linker.  The disadvantages are vastly
    -     increased complexity, and thus potential for error; theoretically,
    -     this should be just as transparent, but in practice it has been
    -     very difficult to build multiple programs in one directory and one
    -     program in multiple directories using Cfront.  Code written for
    -     this model tends to separate definitions of non-inline member
    -     templates into a separate file, which is magically found by the
    -     link preprocessor when a template needs to be instantiated.
    -
    -   Currently, g++ implements neither automatic model.  The g++ team
    -hopes to have a repository working for 2.7.0.  In the mean time, you
    -have three options for dealing with template instantiations:
    -
    -  1. Do nothing.  Pretend g++ does implement automatic instantiation
    -     management.  Code written for the Borland model will work fine, but
    -     each translation unit will contain instances of each of the
    -     templates it uses.  In a large program, this can lead to an
    -     unacceptable amount of code duplication.
    -
    -  2. Add `#pragma interface' to all files containing template
    -     definitions.  For each of these files, add `#pragma implementation
    -     "FILENAME"' to the top of some `.C' file which `#include's it.
    -     Then compile everything with -fexternal-templates.  The templates
    -     will then only be expanded in the translation unit which
    -     implements them (i.e. has a `#pragma implementation' line for the
    -     file where they live); all other files will use external
    -     references.  If you're lucky, everything should work properly.  If
    -     you get undefined symbol errors, you need to make sure that each
    -     template instance which is used in the program is used in the file
    -     which implements that template.  If you don't have any use for a
    -     particular instance in that file, you can just instantiate it
    -     explicitly, using the syntax from the latest C++ working paper:
    -
    -          template class A;
    -          template ostream& operator << (ostream&, const A&);
    -
    -     This strategy will work with code written for either model.  If
    -     you are using code written for the Cfront model, the file
    -     containing a class template and the file containing its member
    -     templates should be implemented in the same translation unit.
    -
    -     A slight variation on this approach is to use the flag
    -     -falt-external-templates instead; this flag causes template
    -     instances to be emitted in the translation unit that implements
    -     the header where they are first instantiated, rather than the one
    -     which implements the file where the templates are defined.  This
    -     header must be the same in all translation units, or things are
    -     likely to break.
    -
    -     *See Declarations and Definitions in One Header: C++ Interface,
    -     for more discussion of these pragmas.
    -
    -  3. Explicitly instantiate all the template instances you use, and
    -     compile with -fno-implicit-templates.  This is probably your best
    -     bet; it may require more knowledge of exactly which templates you
    -     are using, but it's less mysterious than the previous approach,
    -     and it doesn't require any `#pragma's or other g++-specific code.
    -     You can scatter the instantiations throughout your program, you
    -     can create one big file to do all the instantiations, or you can
    -     create tiny files like
    -
    -          #include "Foo.h"
    -          #include "Foo.cc"
    -          
    -          template class Foo;
    -
    -     for each instance you need, and create a template instantiation
    -     library from those.  I'm partial to the last, but your mileage may
    -     vary.  If you are using Cfront-model code, you can probably get
    -     away with not using -fno-implicit-templates when compiling files
    -     that don't `#include' the member template definitions.
    -
    -4. Placing a function that looks like this near the top of a .C file
    -   that uses any inline template member functions permits proper inlining:
    -
    -   // #ifdef __GNUG__
    -   // This function works around the g++ problem with inline template member
    -   // calls not being inlined ONLY in the first block (in a compilation
    -   // unit) from which they are called.
    -   // This function is inline and is never called, so it does not produce
    -   // any executable code.  The "if" statements avoid compiler warnings about
    -   // unused variables.
    -   inline
    -   void
    -   gcc_inline_template_member_function_instantiator()
    -   {
    -       if ( (List *) 0 );
    -   }
    -   // #endif  // __GNUG__
    -
    -   other prerequisites:
    -   -- All inline template member functions should be defined in
    -      the template class header.  Otherwise, g++ will not inline
    -      nested inline template member function calls.
    -   -- Template .h and .C files should NOT include iostream.h
    -      (and therefore debugging.h).
    -      This is because iostream.h indirectly includes other
    -      GNU headers that have unprotected #pragma interface,
    -      which is incompatible with -fno-implicit-templates and optimal
    -      space savings.
    -   -- inline virtual destructors will not be inlined, unless necessary,
    -      if you want to save every last byte
    -   -- be sure that -Winline is enabled
    -
    -----------------------------------------
    -19.
    -
    -> 	1. when are dynamically loaded objects removed from the Service_Config.
    -
    -The Service Configurator calls dlclose() when a "remove Service_Name"
    -directive is encountered in the svc.conf file (or programmatically
    -when the Service_Config::remove() method is invoked).  Check out the
    -code in ./libsrc/Service_Config/Service_Repository.i and
    -./libsrc/Service_Config/Service_Config.i to see exactly what happens.
    -
    -> 	2. In the Service Configurator, when an item is entered in the svc.conf
    -> 		how dow you know which items will be invoked as threads and 
    -> 		which items are forked. I know that static items are executed 
    -> 		internally. 
    -
    -	No!  It's totally up to the subclass of Service_Object to
    -decide whetehr threading/forking/single-threading is used.  Check out
    -the ./apps/Logger/Service_Configurator_Logger for examples of
    -single-threaded and multi-threaded configuration.
    -----------------------------------------
    -20. 
    -
    -> I have been reading the Service Configurator Logger. I was wondering about 
    -> cleanup of new objects. In the handle_input method for the Acceptor a new
    -> svc_handler is allocated for each new input request and deleted in the 
    -> handle_close. I was wondering how handle close was called when a client who
    -> has created a socket terminates the connection (i.e., when is handle_close
    -> called).
    -
    -handle_close() is automatically called by the Reactor when a
    -handle_input()/handle_output()/etc. method returns -1.  This is the
    -"hook" that instructs the Reactor to call handle_**() and then remove
    -the Event_Handler object from its internal tables.
    -
    -----------------------------------------
    -21. 
    -
    -> How does the Logger know to remove the client socket and the svc_handler object.
    -> Does he recieve an exception. 
    -
    -	No.  when the client terminates the underlying TCP/IP
    -implementation sends a RESET message to the logger host.  This is
    -delivered to the logger process as a 0-sized read().  It then knows to
    -close down.
    -
    -> What I am worried about is a leak. Where by alot of clients connect and 
    -> disconnect and the server does not cleanup correctly. Such as a core dump
    -> from the client where he cannot close correctly.
    -
    -	That's handled by the underlying TCP (assuming it is
    -implemented correctly...).
    -
    -> What I am doing is attempting to convert the logger example into an alarm
    -> manager for remote nodes. In this application a node may be powered down
    -> there by terminating a Logger/Alarm server connection abnormally, this could
    -> leave the Logger with many dangling sockets and allocated svc_handler objects.
    -
    -	If the TCP implementation doesn't handle this correctly then
    -the standard way of dealing with it is to have an Event_Handler use a
    -watchdog timer to periodically "poll" the client to make sure it is
    -still connected.  BTW, PCs tend to have more problems with this than
    -UNIX boxes since when they are turned off the TCP implementation may
    -not be able to send a RESET...
    -----------------------------------------
    -22. 
    -
    -Using templates with Centerline.
    -
    -Centerline uses ptlink to process the C++ templates. ptlink expect the
    -template declarations and definitions (app.h and app.C) to reside in
    -the same directory. This works fine for the ACE hierarchy since
    -everything is a link to the appropriate src directory (include/*.[hi]
    ---> ../src/). When a users of the ACE distribution attempts to include
    -the ACE classes in an existing application hierarchy this problem will
    -arise if ptlink is used.
    -
    -The solution is to create a link to the declaration file from the
    -definition file directory and use the "-I" to point to the definition
    -directory.
    -
    -----------------------------------------
    -
    -23. 
    -
    -> When I try to compile $ACE_ROOT/src/Message_Queue.C on a Solaris
    -> 5.3 system using SUNPro CC 4.0, the compiler aborts with a Signal 10
    -> (Bus Error).  Our copy of CC 4.0 is over a year old and I do not
    -> know if any patches or upgrades exist for it.  If they do, then we
    -> have not applied them to our compiler.
    -
    -	Several other people have run across this as well.  It turns
    -out that there is a bug in the Sun 4.0.0 C++ compiler that will get a
    -bus error when -g is used.  If you compilg Message_Queue.C *without*
    --g then it works fine.  The later versions of SunC++ don't have this
    -bug.  I'd recommend that you upgrade as soon as possible.
    -
    -----------------------------------------
    -
    -24. 
    -
    -> I have added a dynamic service to the Service Configurator. This new service
    -> fails on the load because it uses application libraries that are not shared 
    -> object libraries (i.e., objects in libApp.a). I am assuming from the error
    -> message that the problem is the mix match of shared and non-shared objects.
    -
    -	Right, exactly.
    -
    -> I was wondering if there is an easy way to add static services to the 
    -> Service Configurator. The example directory listing static service is
    -> very tightly coupled with the Service_Config object. Is there another
    -> way of adding static services.
    -
    -	Sure, that's easy.  The best way to do this is to use the
    -interfaces of the Service_Respository class to configure static
    -services into the Service_Config.  A good example of how to do this is
    -in Service_Config.[Chi]:
    -
    -int
    -Service_Config::load_defaults (void)
    -{
    -  for (Static_Svc_Descriptor *sl = Service_Config::service_list_; sl->name_ != 0; sl++)
    -    {
    -      Service_Type *stp = ace_create_service_type (sl->name_, sl->type_, 
    -						   (const void *) (*sl->alloc_)(),
    -						   sl->flags_);
    -      if (stp == 0)
    -	continue;
    -
    -      const Service_Record *sr = new Service_Record (sl->name_, stp, 0, sl->active_);
    -
    -      if (Service_Config::svc_rep->insert (sr) == -1)
    -	return -1;
    -    }
    -  return 0;
    -}
    -
    -----------------------------------------
    -25. 
    -
    -> 8. Do you have examples of the SYNC/ASYNC pattern?
    -
    -	Yes.  Check out the following:
    -	
    -	1. The latest version of ./apps/Gateway/Gateway has
    -	   an example of this when you compile with the USE_OUTPUT_MT 
    -	   flag.  In this case, the Reactor performs the "Async"
    -	   processing, which multiplexes all incoming messages from peers
    -	   arriving on Input_Channels.  These messages are then queued
    -	   up at the appropriate Output_Channels.  Each Output_Channel
    -	   runs in a separate thread, performing the "Sync"
    -	   processing.
    -	   
    -	2. Also, the latest version of the OOCP-tutorial4.ps.gz
    -	   file available from wuarchive.wustl.edu in the
    -	   directory /languages/c++/ACE/ACE-documentation shows
    -	   an example of using the Half-Sync/Half-Async pattern
    -	   to build an Image Server.  I'm using this as an
    -	   example in my tutorials these days.
    -
    -----------------------------------------
    -26.
    -
    -> We had a discussion about something we saw in the new ACE code.
    -> I thing there was a member function of a class that was doing a 
    -> "delete this".  Is this safe?
    -
    -In general it is safe as long as (1) the object has been allocated
    -dynamically off the heap and (2) you don't try to access the object
    -after it has been deleted.  You'll note that I tend to use this idiom
    -in places where an object is registered with the Reactor, which must
    -then must ensure the object cleans itself up when handle_close() is
    -called.  Note that to ensure (1) I try to declare the destructor
    -"private" or "protected" so that the object must be allocated off the
    -heap (some compilers have a problem with this, so I may not be as
    -consistent as I ought to...).
    -
    -----------------------------------------
    -27. 
    -
    -> 5. What is the correct way for building a modified ACE library?
    -> 	Changing in "libsrc" or in "include" directory?
    -> 	When I make a complete new directory, how can I get introduced
    -> 	the dependencies within my new makefile, can you give a short hint?
    -
    -Sure, no problem.  For instance, here's what I did tonight when I
    -added the new Thread_Specific.[hiC] files to ACE:
    -
    -	1. Created three new files Thread_Specific.[hiC] in
    -	   ./libsrc/Threads. 
    -
    -	2. cd'd to ../../include/ace and did a
    -	
    -	   % ln -s ../../libsrc/Threads/Thread_Specific.[hi] .
    -	   
    -	3. cd'd to ../../src and did a 	   
    -
    -	   % ln -s ../../libsrc/Threads/Thread_Specific.C .
    -
    -	4. then I did
    -	
    -	   % make depend
    -
    -	   on the ./src directory, which updated the dependencies. 
    -
    -----------------------------------------
    -28. The following is from Neil B. Cohen (nbc@metsci.com), who is
    -    writing about how to work around problems he's found with HP/UX.
    -
    -I've been trying to compile the latest beta (3.2.9) on an HP running
    -HPUX9.05 for the past week or so. I've had problems with templates up
    -and down the line. I finally discovered (after some discussions with
    -the HP support people) that they have made numerous changes to their
    -C++ compiler recently to fix problems with templates and
    -exceptions. If you are trying to compile ACE under HPUX with anything
    -less than version 3.70 of the HP compiler, you may have serious
    -problems (we were using v3.50 which came with the machine when we
    -bought it a few months ago).
    -
    -Also, unlike earlier ACE versions, I was forced to add the following
    -line to the rules.lib.GNU file to "close" the library - ie. force the
    -various template files to be instantiated and linked to the ACE
    -library itself. I don't know if this is necessary, or the only way to
    -make things work, but it seems to do the job for my system.
    -
    -in rules.lib.GNU...
    -
    -$(VLIB): $(VOBJS)
    -    - CC -pts -pth -ptb -ptv -I$(ACE_ROOT)/include $(VOBJS)
    -    $(AR) $(ARFLAGS) $@ $? ./ptrepository/*.o
    -    -$(RANLIB) $@
    -    -chmod a+r $@
    -
    -I added the CC line, and added the "./ptrepository/*.o" to the $(AR)
    -cmd.  Sun has an -xar option, I believe that does something similar to
    -this.  Also - note that I'm not sure that the "-ptb" option is
    -necessary. I added that before we upgraded the compiler, so it may not
    -be needed now...
    -
    -----------------------------------------
    -29. 
    -
    -> I just ran my program with Purify, and it is telling me that there
    -> is at least one large (~4k) memory leak in
    -> ACE_Thread_Specific.  This may or may not be serious,
    -> but it is probably worth looking into.
    -
    -Right, that's ok.  This is data that's allocated on a "per-thread"
    -basis the first time a thread makes a call using the LM_ERROR or
    -LM_DEBUG macros.  The data isn't freed-up until the thread exits.
    -
    -----------------------------------------
    -
    -30. 
    -
    ->     In my trying to use the Reactor pattern for my application I
    -> noticed that I had to couple my eventHandler derived objects with a
    -> specific IPC_SAP mechanism. To use some of your own examples your
    -> Client_Stream object contains a TLI_Stream object to use in data
    -> transfer. My application calls for determining the communication
    -> mechanism at run time. To do this my eventHandler must be able to
    -> create the appropriate IPC_Stream object at run time and use its
    -> methods through a super class casting. The problem is that there is no
    -> super class with the virtual methods for send, recv, etc. To solve my
    -> problem I will create that super class and have the TLI ( as well as
    -> other wrapper objects) inherit from it instead of IPC_SAP. My question
    -> is I am suspicious of why ACE wasn't designed with that in mind? Is my
    -> application that unique ? or is there a better way to do this that I
    -> am not aware of ?  Your help in this matter will be much appreciated.
    -
    -ACE was developed using static binding for IPC_SAP in order to
    -emphasize speed of execution over dynamic flexibility *in the core
    -infrastructure*.  To do otherwise would have penalized the performance
    -of *all* applications in order to handle the relatively infrequent
    -case where you want to be able to swap mechanisms at run-time.
    -
    -Since it is straightforward to create an abstract class like the one
    -you describe above I decided to make this a "layered" service rather
    -than use this mechanism in the core of ACE.
    -
    -BTW, I would not modify TLI_SAP and SOCK_SAP to inherit from a new
    -class. Instead, I would use the Bridge and Adapter patterns from the
    -"Gang of Four" patterns catalog and do something like this:
    -
    -----------------------------------------
    -// Abstract base class
    -class ACE_IPC_Stream
    -{
    -public:
    -	virtual ssize_t recv (void *buf, size_t bytes) = 0;
    -	virtual ssize_t send (const void *buf, size_t bytes) = 0;
    -	virtual ACE_HANDLE get_handle (void) const = 0;
    -	// ...
    -};
    -----------------------------------------
    -
    -and then create new classes like 
    -
    -----------------------------------------
    -template 
    -class ACE_IPC_Stream_T : public ACE_IPC_Stream
    -{
    -public:
    -	virtual ssize_t recv (void *buf, size_t bytes)
    -	{
    -		return this->ipc_.recv (buf, bytes);
    -	}
    -
    -	virtual ssize_t send (const void *buf, size_t bytes)
    -	{
    -		return this->ipc_.send (buf, bytes);
    -	}
    -
    -	virtual ACE_HANDLE get_handle (void)
    -	{
    -		return this->ipc_.get_handle ();
    -	}
    -	// ...
    -
    -private:
    -	IPC ipc_;
    -	// Target of delegation 
    -	// (e.g., ACE_SOCK_Stream or ACE_TLI_Stream).
    -}
    -----------------------------------------
    -
    -Then you could write code that operated on ACE_SAP *'s to get a
    -generic interface, but that reused existing code like SOCK_SAP and
    -TLI_SAP, e.g.,
    -
    -----------------------------------------
    -class My_Event_Handler : public ACE_Event_Handler
    -{
    -public:
    -	My_Event_Handler (void) {
    -		// Figure out which IPC mechanism to use somehow:
    -		
    -		if (use_tli)
    -			this->my_ipc_ = new ACE_SAP_IPC;
    -		else if (use_sockets)
    -			this->my_ipc_ = new ACE_SAP_IPC;
    -		else
    -			...
    -	}
    -
    -private:
    -	ACE_IPC_Stream *my_ipc_;
    -};
    -----------------------------------------
    -
    -There are obviously details left out here, but this is the general idea.
    -
    -----------------------------------------
    -31. 
    -
    -> I was trying to view your 'Writting example applications in CORBA' article
    -> /tutorial using ghostview but the .ps file seems to be corrupted ( I tried to
    -> ftp it more than once). Any help would be much appreciated.
    -
    -There are two solutions to this problem (which seems to be caused by a
    -weird interaction between ghostview and the "psnup" program I use to
    -generate the slides 4-up on a page):
    -
    -	1. If you want to print them or view them 1-up on a page you
    -	   can edit the postscript file and remove the first 551
    -	   lines or so (which are generated by the psnup script).
    -	   This will cause the document to be printed 1-up rather than
    -	   4-up.
    -
    -	2. You can try to print the 4-up file on a postscript printer. 
    -	   Believe it or not, this typically works, even though ghostview
    -	   can't handle it!
    -
    -----------------------------------------
    -32.
    -
    -> We would like to use the Reactor class as a static member on some of
    -> our classes (one per process) so that we can see and use the Reactor
    -> witnin each process on a global level.  We are using it to set
    -> timers several levels down in our class trees and don't want to pass
    -> a pointer to it through all of our constructors.  My question is:
    -> are there any static initialization dependencies that you know of
    -> when using the default "do nothing" constructor of the Reactor that
    -> could prevent use from using it as a static member variable?  Thanks
    -> for any advice on this issue.
    -
    -The only problems you'll have are the typical ones about "order of
    -initialization" of statics in separate files.  You'll also have to
    -live with the default size of the I/O handler table, which probably
    -isn't a problem since the max is something like 1024 or so.
    -
    -BTW, I solve this problem in ACE via the Service_Config::reactor,
    -which is a static *pointer* to a Reactor.  If you really wanted to
    -make this work nicely, you could use the Singleton pattern from the
    -"Gang of Four" patterns catalog.  That should solve your problem even
    -more elegantly!
    -
    -----------------------------------------
    -33. 
    -> I just got the ACE-3.3 version and am trying it on the HP-UX.
    -> I run into a small problem while cloning the directories that
    -> might be worth fixing.
    -> 
    -> I made a directory called ACE_WRAPPERS/HP-UXA.09.05-g1, cd to it
    -> and run "make -f ../Makefile clone".  when I look in src, I have:
    -> Acceptor.C@ -> ../libsrc/Connection/Acceptor.C
    -> 
    -> However, ../libsrc does not exist.  It is not one of the CLONE
    -> variables in ACE_WRAPPERS/Makefile.  I don't think you'd want to
    -> clone libsrc too, since its files don't change.
    -
    -I think you can solve this problem as follows:
    -
    -% cd ACE_WRAPPERS
    -% setenv ACE_ROOT $cwd
    -% cd HP-UXA.09.05-g1
    -% make -f ../Makefile clone
    -% setenv ACE_ROOT $cwd
    -% make
    -
    -That should build the links correctly since they'll point to the
    -absolute, rather than relative, pathnames!
    -
    -----------------------------------------
    -34.
    -
    -> Our quality personal has asked me the following questions for which
    -> I think you are the right guy for answering that:
    -
    -> o How long is ACE used in industrial products?
    -
    -It was first used at Ericsson starting in the fall of 1992, so that
    -makes it about 3 years now.
    -
    -> o What are reference projects comparable to ours that use ACE?
    -
    -The ones I have directly worked with include:
    -
    -Motorola -- satellite communication control
    -Kodak Health Imaging Systems -- enterprise medical imaging
    -Siemens -- enterprise medical imaging
    -Ericsson/GE Mobile Communications -- telecommunication switch management
    -Bellcore -- ATM switch signal software
    -
    -In addition, there are probably about 100 or more other companies that
    -have used ACE in commercial products.  The current mailing list has
    -about 300 people from about 230 different companies and universities.
    -If you'd like additional info, please let me know.
    -
    -> o How many persons have contributed on testing and writing error
    -> reports for ACE?
    -
    -Around 60 or so.  All the contributors are listed by name and email
    -address at the end of the README file distributed with the ACE release.
    -
    -> o How many bug fixes have been made since ACE was public domain?
    -
    -All information related to bug fixes is available in the ChangeLog
    -file distributed with the ACE release (I could count these for you if
    -you need that level of detail).
    -
    -> o How many literature is there on ACE?
    -
    -All articles published about ACE are referenced in the BIBLIOGRAPHY
    -file in the top-level directory of ACE.
    -
    -----------------------------------------
    -
    -35.
    -
    -> We are currently evaluating ACE for use on a new telecom switch.
    -> Many of us like ACE but are having trouble convincing some team
    -> members that wrappers are better than using the direct Unix
    -> system calls.
    -
    -> I have read your papers that came with ACE, but was wondering if there
    -> are other papers that address the benefits (or problems) of wrappers?
    -
    -This topic has been discussed in other places, most notably the book
    -by Erich Gamma and Richard Helm and Ralph Johnson and John Vlissides
    -called "Design Patterns: Elements of Reusable Object-Oriented
    -Software" (Addison-Wesley, 1994), where it is described in terms of
    -the "Adapter" pattern.
    -
    -Very briefly, there are several key reasons why you should *not* use
    -UNIX system calls directly (regardless of whether you use ACE or not).
    -
    -1. Portability -- 
    -
    -   	Unless you plan to develop code on only 1 UNIX platform (and
    -   	you never plan to upgrade from that platform as it goes
    -   	through new releases of the OS) you'll run across many, many
    -   	non-portable features.   It's beyond the scope of this
    -        FAQ to name them all, but just take a look at ACE sometime
    -        and you'll see all the #ifdefs I've had to add to deal with
    -	non-compatible OSs and compilers.  Most of these are centralized
    -	in one place in ACE (in the ace/OS.*files), but it took a lot
    -	of work to factor this out.  By using wrappers, you can avoid
    -	most of this problem in the bulk of your application code
    -	and avoid revisiting all of these issues yourself.
    -
    -        In addition, ACE is now ported to other platforms (e.g.,
    -        Windows NT and Windows 95).  If you want to write code that
    -        is portable across platforms, wrappers are a good way to
    -        accomplish this. 
    -
    -2. Ease of programming --
    -
    -	I'd go as far as to say that anyone who wants to program
    -   	applications using C-level APIs like sockets or TLI is not
    -   	serious about developing industrial strength, robust, and easy
    -   	to maintain software.  Sockets and TLI are *incredibly*
    -   	error-prone and tedious to use, in addition to being
    -   	non-portable.  I've got a paper that discusses this in detail
    -	at URL http://www.cs.wustl.edu/~schmidt/PDF/COOTS-95.pdf
    -	
    -3. Incorporation with higher-level patterns and programming methods -- 
    -
    -	Here's where the Adapter pattern stuff really pays
    -	off.  For example, by making all the UNIX network
    -	programming interfaces and synchronization mechanisms
    -	have the same API I can write very powerful higher-level
    -	patterns (e.g., Connector and Acceptor) that generalize
    -	over these mechanisms.  For proof of this, take a look
    -	at the ./tests/Connection/non_blocking directory
    -	in the latest ACE-beta.tar.gz at wuarchive.wustl.edu
    -	in the /languages/c++/ACE directory.  It implements
    -	the same exact program that can be parameterized
    -	with sockets, TLI, and STREAM pipes *without*
    -	modifying any application source code.  It is 
    -	literally impossible to do this without wrappers.
    -
    -----------------------------------------
    -36.
    -
    -> How can I use a kind of "Reactor" in such a way that a reading
    -> thread can notice the arrival of new data on several shared memory
    -> areas ?
    -
    -Ah, that is a tricky issue!  The underlying problem is that UNIX is
    -inconsistent with respect to the ability to "wait" on different
    -sources of events.  In this case, Windows NT is much more consistent
    -(but it has its own set of problems...).
    -
    -> Poll, Select and Reactor (so far I read) assume that file
    -> descriptors are present, which is not the case with shared memory.
    -
    -That's correct (though to be more precise, the Reactor can also deal
    -with signals, as I discuss below).  
    -
    -> Is there a common and efficient way to deal with that kind of
    -> situation, or do I have to insert extra ipc mechanisms (based on
    -> descriptors) ?
    -
    -There are several solutions:
    -
    -1. Use the Reactor's signal handling capability (see the
    -   ./tests/Reactor/misc/signal_tester.C for an example)
    -   and have the process/thread that writes to shared 
    -   data send a signal to the reader process(es).  The
    -   disadvantage of this is that your code needs to 
    -   be signal-safe now...
    -
    -2. Use a combination of SPIPE_Streams and the Reactor
    -   to implement a simple "notification protocol," e.g.,
    -   the receiver process has an Event_Handler with a
    -   SPIPE_Stream in it that can be notified when the
    -   sender process writes data to shared memory.
    -   The disadvantage here is that there's an extra
    -   trip through the kernel, though the overhead
    -   is very small since you only need to send 1 byte.
    -
    -3. Use threads and either bypass the Reactor altogether
    -   or integrate the threads with the Reactor using its
    -   Reactor::notify() mechanism (see the 
    -   ./tests/Reactor/misc/notification.C file for an
    -   example of how Reactor::notify() works).  The
    -   disadvantage of this approach is that it won't
    -   work for platforms that lack threads.
    -
    -----------------------------------------
    -37.
    -
    -> What do you think about wrapping communication methodologies in C++ streams?
    -> What I mean is having defining a stream and extractor/insertor functions
    -> which the underlying implementation reads/writes on comm mechanisms instead of
    -> files.  I would think this to be a very general interface for all comms
    -> implementations.  All user code would look the same, but the underlying stream
    -> implementations would be different.  Whether the stream functionality would
    -> be defined by the stream itself (eg tcpstream) or with manipulators
    -> (eg commstream cs; cs << tcp;) is up for grabs in my mind.
    -> 
    -> Anyhow, I was wondering your input...
    -
    -That technique has been used for a long time.  In fact, there are
    -several freely available versions of iostreams that do this and
    -RogueWave also sells a new product (Net.h++) that does this.  I think
    -this approach is fine for simple applications.
    -
    -However, it doesn't really work well if you need to write
    -sophisticated distributed applications that must use features like
    -non-blocking I/O, concurrency, or that must be highly robust against
    -the types of errors that occur in a distributed system.
    -
    -For these kinds of systems you either need some type of ORB, or you
    -need to write the apps with lower-level C++ wrappers like the ones
    -provided by ACE.
    -
    -----------------------------------------
    -
    -38.
    -
    -> What is the difference between cont() and next() in an ACE_Message_Block?
    -
    -Ah, good question.  cont() gives you a pointer to the next
    -Message_Block in a chain of Message_Block fragments that all belong to
    -the same logical message.  In contrast, next() (and prev()) return
    -pointers to the next (and previous) Message_Block in the doubly linked
    -list of Message_Blocks on a Message_Queue.  
    -
    -BTW, this is *exactly* the same structure as in System V Streams...
    -
    -> Which would I use if I wanted to add a header and a trailer, each stored in
    -> ACE_Message_Blocks of their own, to another ACE_Message_Block?
    -
    -You should use cont() for that.  Does that make sense?
    -----------------------------------------
    -
    -39.
    -
    -> I think that your site is cool, but it's being a terrible tease in
    -> that I really want to read the contents, but don't know anything
    -> about x-gzip formatting.  I'm running Netscape 2.0 under MS Windows
    -> NT.
    -
    -To view PostScript files under Win32 you will need a PostScript 
    -viewer such as GSview.  You can find GSview and Ghostscript (which is
    -needed to run GSview) at http://www.cs.wisc.edu/~ghost/.  
    -
    -It seems that both Netscape and Internet Explorer mangles the names 
    -of downloaded files to reflect their content type, so *.ps.gz files 
    -are saved as *_ps.ps instead.  Fortunately, GSview as of version 2.2
    -supports gzip compressed postscript.  When set up as a viewer for
    -Postscript files, files with mangled names can be viewed by GSview 
    -without any preprocessing.
    -
    -----------------------------------------
    -
    -40. 
    -
    -> What I am doing is
    -> 1. Making an ACE_SOCK_Dgram and let it choose the next available port number.
    -> 2. Making a message that will be broadcasted to X number of servers. This
    ->    message has a port number which the server will use to send its reply.
    -> 3. Broadcast the message to a fixed port number.
    -> 4. Wait for replies from the servers.
    -> 
    -> 
    -> It looks like I need "ACE::bind_port" to return the port number that
    -> it picked and "ACE_SOCK_Dgram::shared_open" will need it store the
    -> port number so I could call some function like
    -> ACE_SOCK_Dgram::get_port_number or it would need to return the port
    -> number instead of the handle(I could always call
    -> ACE_SOCK_Dgram::get_handle if I needed the handle).
    -> 
    -> Is there I way to get the port number that I have missed?
    -
    -Sure, can't you just do this:
    -
    -// Defaults to all "zeros", so bind will pick port.
    -ACE_INET_Addr dg_addr;
    -
    -ACE_SOCK_Dgram dg;
    -
    -dg.open (dg_addr);
    -
    -dg.get_local_addr (dg_addr);
    -
    -dg_addr.get_port_number ();
    -
    -----------------------------------------
    -
    -41. How can you rename a core file?
    -
    -new_disposition.sa_handler = &Handle_Coredump_Signal;
    -sigemptyset(&new_disposition.sa_mask);
    -sigaddset(&new_disposition.sa_mask,SIGCHLD);
    -new_disposition.sa_flags = 0;
    -sigaction(SIGSEGV,&new_disposition,&old_disposition);
    -
    -*****************
    -
    -void
    -Handle_Coredump_Signal(void)
    -{
    -    int   status;
    -    pid_t child;
    -    char  new_core_name[64];
    -    
    -    if(0 == (child = fork()))
    -    {
    -	abort();
    -    }
    -    else
    -    {
    -	if(-1 == waitpid(child,&status,NULL))
    -	{
    -	    exit(-1);
    -	}
    -	sprintf(new_core_name,"core_%d",getpid());
    -	rename("core",new_core_name);
    -	exit(0);
    -    }
    -}
    -
    -----------------------------------------
    -
    -42. 
    -
    -> I have seen 2 different inlining policies in ACE
    -> 
    -> 1) The .i file is included unconditionally by both the .h and .C file
    ->    and all functions in the .i file carry the "inline" keyword.
    -
    -Right.  Those are for cases where I *always* want to inline those
    -methods.  I do this mostly for very short wrapper methods (e.g.,
    -read() or write()) that are likely to be on the "fast path" of an
    -application.
    -
    -> 2) The .i file is included by the .h file ONLY if __INLINE__ is defined
    ->    for the compile.  This causes the functions in the .i file to be
    ->    compiled as inline functions (INLINE translates to inline in this case).
    ->    If __INLINE__ is not defined, the .i file is only included by the .C
    ->    file and the functions do NOT carry the "inline" keyword.
    -
    -I do this for cases where it's really not essential to have those
    -methods inline, but some users might want to compile ACE that was if
    -they want to eliminate all the wrapper function-call overhead.  For
    -instance, I'll typically do this when I'm running benchmarks.
    -
    -----------------------------------------
    -
    -43. Integrating ACE and CORBA
    -
    -> Our goal is to implement a CORBA-II compliant application.  I am
    -> trying to conceptually visualize the applicability to ACE to this
    -> attempt (which we're pretty excited about), and I was hoping you'd
    -> offer any opinions / observations that you might have.
    -
    -We've successfully integrated ACE with several implementations of
    -CORBA (in particular Orbix 1.3 and 2.0) and used it in a number of
    -commercial applications.  In these systems, we use ACE for a number of
    -tasks, including the following:
    -
    -1. Intra-application concurrency control, threading, and
    -   synchronization via the ACE_Thread_Manager and Synch* classes. 
    -   
    -2. Dynamic linking of services via the ACE_Service_Config.
    -
    -3. Integration of event loops via the ACE_Reactor.
    -
    -4. Management of shared memory via ACE_Malloc.
    -
    -5. High-performance network I/O via the ACE_SOCK* wrappers.
    -
    -plus many more.
    -
    -You can find out more info about the ACE/CORBA integration and the
    -performance issues associated with it in the following paper:
    -
    -http://www.cs.wustl.edu/~schmidt/PDF/COOTS-96.pdf
    -
    -----------------------------------------
    -
    -44. 
    -
    -> Can the Reactor's event loop be called recursively?
    -
    -This is not advisable.  The Reactor's dispatch() method is not
    -reentrant (though it is thread-safe) since it maintains state about
    -the active descriptors it is iterating over.  Therefore, depending on
    -the descriptors you're selecting on, you could end up with spurious
    -handle_*() callbacks if you make nested calls to the
    -Reactor::handle_events() method.
    -
    -> For example, if I have a program that sets up some event handlers
    -> and then calls, in an infinite loop, ACE_Reactor::handle_events().
    -> Can one of the event handlers call handle_events() again if it needs
    -> to block, while allowing other event handlers a chance to run?
    -
    -I'm not sure if this is really a good idea, even if the Reactor were
    -reentrant.  In particular, what good does it do for one Event_Handler
    -to "block" by calling handle_events() again?  The event the handler is
    -waiting for will likely be dispatched by the nested handle_events()
    -call!  So when you returned back from the nested call to
    -handle_events() it will be tricky to know what state you were in and
    -how to proceed.
    -
    -Here's how I design my single-threaded systems that have to deal with
    -this:
    -
    -  	1. I use a single event loop based on the Reactor, which acts
    -	   a cooperative multi-tasking scheduler/dispatcher.
    -	   
    -	2. I then program all Event_Handler's as non-blocking I/O
    -	   objects.  This is straightforward to do for both input and
    -	   output using the ACE_Reactor::schedule_wakeup() and
    -	   ACE_Reactor::cancel_wakeup() methods (available with the
    -	   latest version of ACE).  
    -	   
    -	3. Then, whenever an Event_Handler must block on I/O, it 
    -	   queues up its state on an ACE_Message_Queue, calls
    -	   ACE_Reactor::schedule_wakeup(), and returns to the 
    -	   main event loop so that other Event_Handlers can be
    -	   dispatched.  When the I/O is ready, the Reactor will
    -	   call back to the appropriate handle_* method, which
    -	   can pick up the state it left in the Message_Queue and
    -	   continue. 
    -
    -There are a number of places to find more information on this sort of
    -design:
    -
    -	1. $ACE_ROOT/apps/Gateway/Gateway/Channel.cpp --
    -	   This Gateway application example shows the C++ code.
    -
    -	2. http://www.cs.wustl.edu/~schmidt/PDF/TAPOS-00.pdf --
    -	   This paper describes the underlying patterns.
    -
    -	3. http://www.cs.wustl.edu/~schmidt/PDF/OONP-tutorial4.pdf
    -	   -- This tutorial explains the source code and 
    -	   the patterns.
    -
    -BTW, I'll be describing patterns for this type of design challenge in
    -my tutorial at USENIX COOTS in June.  Please check out
    -http://www.cs.wustl.edu/~schmidt/COOTS-96.html for more info.
    -
    -----------------------------------------
    -
    -45. 
    -
    ->   In one of my programs, a process needs to receive input from
    -> multiple input sources. One of the input sources is a file
    -> descriptor while another is a message queue. Is there a clean way to
    -> integrate this a message queue source into the Reactor class so that
    -> both inputs are handled uniformly?
    -
    -Do you have multiple threads on your platform?  If not, then life will
    -be *very* tough and you'll basically have to use multiple processes to
    -do what you're trying to do.  There is *no* portable way to combine
    -System V message queues and file descriptors on UNIX, unfortunately.
    -
    -If you do have threads, the easiest thing to do is to have a thread
    -reading the message queue and redirecting the messages into the
    -Reactor via its notify() method.  
    -
    -Please take a look at the program called
    -
    -examples/Reactor/Misc/notification.cpp
    -
    -for an example.
    -
    -----------------------------------------
    -
    -46. 
    -
    -> I'm writing a program to find out the address for a socket.  The
    -> idea is that we open an ACE_Acceptor (and will eventually perform
    -> accept() on it.)  Before we can do that we need to find out the
    -> address of the ACE_Acceptor so that we can publish it (for others to
    -> be able to connect to it.)  The trouble is that the call
    -> ACE_INET_Addr::get_host_name () prints "localhost" as the host name
    -> while I would like to principal host name to be printed instead.
    -
    -All ACE_INET_Addr::get_host_name() is doing is calling
    -ACE_OS::gethostbyaddr(), which in turn will call the socket
    -gethostbyaddr() function.  I suspect that what you should do is
    -something like the following:
    -
    -ACE_Acceptor listener (ACE_Addr::sap_any);
    -
    -ACE_INET_Addr addr;
    -
    -listener.get_local_addr (addr);
    -
    -char *host = addr.get_host_name ();
    -
    -if (::strcmp (host, "localhost") == 0)
    -{
    -  char name[MAXHOSTNAMELEN];
    -  ACE_OS::hostname (name, sizeof name);
    -  cerr << name << endl;
    -}
    -else
    -  cerr << host << endl;
    -
    -----------------------------------------
    -
    -47. 
    -
    -> Could you please point me to stuff dealing with asynchronous cross
    -> platform socket calls. I want to use non blocking socket calls on
    -> both UNIX and NT.
    -
    -Sure, no problem.  Take a look at the
    -
    -./examples/Connection/non_blocking/
    -
    -directory.  There are a number of examples there.  In addition, there
    -are examples of non-blocking connections in 
    -
    -./examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp
    -
    -The code that actually enables the non-blocking socket I/O is in
    -ace/IPC_SAP.cpp
    -
    -----------------------------------------
    -
    -48.
    -
    -> Is ACE exception-safe?  If I throw an exception out of event 
    -> handler, will the Reactor code clean itself?
    -
    -Yes, that should be ok.  In general, the two things to watch out for
    -with exceptions are:
    -
    -	1. Memory leaks -- There shouldn't be any memory leaks internally
    -	   to the Reactor since it doesn't allocate any memory when 
    -	   dispatching event handlers.
    -	  
    -	2. Locks -- In the MT_SAFE version of ACE, the Reactor acquires
    -	   an internal lock before dispatching Event_Handler callbacks.
    -	   However, this lock is controlled by an ACE_Guard, whose
    -	   destructor will release the lock if exceptions are thrown
    -	   from an Event_Handler.
    -
    -----------------------------------------
    -
    -49.
    -
    ->   I am building a Shared memory manager object using MMAP and MALLOC
    -> basically as:
    -> 
    -> typedef ACE_Malloc SHMALLOC;
    -> 
    -> I noticed that the ACE_MMAP_Memory_Pool class provides for the users
    -> to specify a Semaphore key. However, once I use it via the
    -> ACE_Malloc<..>::ACE_Malloc(const char* poolname) constructor, I lose
    -> this option. 
    -
    -Yes, that is correct.  That design decision was made to keep a clean
    -interface that will work for all the various types of memory pools.
    -
    -> Is there any recommended way to specialize ACE classes to allow this
    -> key to be overridden?
    -
    -Yes indeed, you just create a new subclass (e.g., class
    -My_Memory_Pool) that inherits from ACE_MMAP_Memory_Pool and then you
    -pass in the appropriate key to the constructor of ACE_MMAP_Memory_Pool
    -in the constructor of My_Memory_Pool.  Then you just say:
    -
    -typedef ACE_Malloc SHMALLOC;
    -
    -Please check out the file:
    -
    -examples/Shared_Malloc/Malloc.cpp 
    -
    -which illustrates more or less how to do this.
    -
    -----------------------------------------
    -
    -50.
    -
    -> What is the best way to turn on TRACE output in ACE.  I commented
    -> out the #define ACE_NTRACE 1 in config.h and rebuilt ACE and the
    -> examples.
    -
    -The best way to do this is to say
    -
    -#define ACE_NTRACE 0
    -
    -in config.h.
    -
    -> When I run the CPP-inserver example in examples/IPC_SAP/SOCK_SAP, I
    -> get some trace output but not everything I would expect to see.
    -
    -Can you please let me know what you'd expect to see that you're not
    -seeing?  Some of the ACE_TRACE macros for the lower-level ACE methods
    -are commented out to avoid problems with infinite recursion (i.e.,
    -tracing the ACE_Trace calls...).  I haven't had a chance to go over
    -all of these indepth, but I know that it should be possible to turn
    -many of them back on.
    -
    -> It would be nice to have a runtime option for turning trace on and
    -> off.
    -
    -There already is.  In fact, there are two ways to do it.
    -If you want to control tracing for the entire process, please check
    -out ACE_Trace::start_tracing() and ACE_Trace::stop_tracing().  
    -
    -If you want to control tracing on a per-thread basis please take a
    -look at the ACE_Log_Msg class.  There are methods called
    -stop_tracing() and start_tracing() that do what you want.
    -
    -----------------------------------------
    -
    -51. 
    -
    -> I've been using an acceptor and a connector in one (OS-) process.
    -> What does happen, if a signal is sent to this process? Is the signal
    -> processed by every ACE_Event_Handler (or its descendants) that is
    -> around?  The manual page simply states that handle signal is called
    -> as soon as a signal is triggered by the OS.
    -
    -How this signal is handled depends on several factors:
    -
    -1. Whether your using ACE_Sig_Handler or ACE_Sig_Handlers to register
    -   the signal handlers.
    -
    -2. If you're using ACE_Sig_Handler, then the ACE_Event_Handler * that
    -   you've most recently registered to handle the signal will
    -   have it's handle_signal() method called back by the Reactor.
    -
    -3. If you're using ACE_Sig_Handlers, then all of the ACE_Event_Handler *
    -   that you've register will be called back.
    -
    -For examples of how this works, please check out
    -
    -$ACE_ROOT/examples/Reactor/Misc/test_signals.cpp
    -
    -This contains a long comment that explains precisely how everything
    -works!
    diff --git a/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp b/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp
    deleted file mode 100644
    index a5d28115fac..00000000000
    --- a/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.cpp
    +++ /dev/null
    @@ -1,286 +0,0 @@
    -// $Id$
    -
    -#ifndef DSRT_CV_DISPATCHER_IMPL_T_CPP
    -#define DSRT_CV_DISPATCHER_IMPL_T_CPP
    -
    -#include "DSRT_CV_Dispatcher_Impl_T.h"
    -
    -#if !defined (__ACE_INLINE__)
    -//#include "DSRT_CV_Dispatcher_Impl_T.i"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, DSRT_CV_Dispatcher_Impl_T, "$Id$")
    -
    -namespace Kokyu
    -{
    -  
    -/*
    -//@@VS: This is somehow not being recognized by MSVC, which results
    -//in a link error. For now, the definition has been moved to the .h
    -//file. Needs further investigation.
    -
    -template 
    -int Comparator_Adapter_Generator::MoreEligible::
    -operator ()(const DSRT_Dispatch_Item_var& item1,
    -            const DSRT_Dispatch_Item_var& item2)
    -{
    -  int rc = qos_comparator_ (item1->qos (), item2->qos ());
    -
    -  //more eligible
    -  if (rc == 1)
    -    return 1;
    -
    -  //if equally eligible, then resolve tie with the creation time of
    -  //the item
    -  if (rc == 0 && item1->insertion_time () < item2->insertion_time ())
    -    return 1;
    -
    -  return 0;
    -}
    -*/
    -
    -template 
    -DSRT_CV_Dispatcher_Impl::
    -DSRT_CV_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy, 
    -                         int sched_scope)
    -  :DSRT_Dispatcher_Impl (sched_policy, sched_scope),
    -   run_cond_ (run_cond_lock_)
    -{
    -}
    -
    -template  int
    -DSRT_CV_Dispatcher_Impl::
    -init_i (const DSRT_ConfigInfo&)
    -{
    -  return 0;
    -}
    -
    -template 
    -int DSRT_CV_Dispatcher_Impl::
    -schedule_i (Guid_t id, const DSRT_QoSDescriptor& qos)
    -{
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, 
    -              "(%t|%T):schedule_i enter\n")); 
    -#endif
    -
    -  DSRT_Dispatch_Item* item;
    -  ACE_hthread_t thr_handle;
    -  ACE_Thread::self (thr_handle);
    -
    -  if (ACE_OS::thr_setprio (thr_handle, 
    -                           this->blocked_prio_, 
    -                           this->sched_policy_) == -1)
    -    {
    -      ACE_ERROR_RETURN ((LM_ERROR,
    -                  ACE_TEXT ("%p\n"),
    -                  ACE_TEXT ("thr_setprio failed")), -1);
    -    }
    -
    -  ACE_NEW_RETURN (item,
    -                  DSRT_Dispatch_Item (id, qos),
    -                  -1);
    -  item->thread_handle (thr_handle);
    -
    -  ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->synch_lock_, -1);
    -  if (this->ready_queue_.insert (item) == -1)
    -    return -1;
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  this->ready_queue_.dump ();
    -
    -  ACE_DEBUG ((LM_DEBUG, 
    -              "(%t|%T):schedule_i after ready_q.insert\n")); 
    -#endif
    -  
    -  DSRT_Dispatch_Item_var item_var;
    -
    -  ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, cond_guard, run_cond_lock_, -1);
    -  this->ready_queue_.most_eligible (item_var);
    -
    -  guard.release ();
    -
    -  ACE_hthread_t most_eligible_thr_handle = item_var->thread_handle ();
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, 
    -                  "(%t|%T):curr thr handle = %d\n", 
    -                  thr_handle)); 
    -      ACE_DEBUG ((LM_DEBUG, 
    -                  "(%t|%T):curr scheduled thr handle = %d\n", 
    -                  this->curr_scheduled_thr_handle_)); 
    -      ACE_DEBUG ((LM_DEBUG, 
    -                  "(%t|%T):most eligible thr handle = %d \n",
    -                  most_eligible_thr_handle)); 
    -#endif
    -
    -  if (this->curr_scheduled_thr_handle_ == thr_handle &&
    -      most_eligible_thr_handle != thr_handle)
    -    {
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, 
    -                  "(%t|%T):curr sched thr handle = thr_handle & "
    -                  "most eligible thr handle != curr thr handle. "
    -                  "about to do a broadcast on CV to wake up most eligible\n")); 
    -#endif
    -      this->curr_scheduled_thr_handle_ = most_eligible_thr_handle;
    -      //wake up the most eligible thread
    -      this->run_cond_.broadcast ();
    -    }
    -
    -  //if the current thread is not the most eligible, then wait.
    -  //if the current thread is most eligible, but some thread is
    -  //scheduled currently, then wait.
    -  while (most_eligible_thr_handle != thr_handle ||
    -         (most_eligible_thr_handle == thr_handle && 
    -          this->curr_scheduled_thr_handle_ != thr_handle &&
    -          this->curr_scheduled_thr_handle_ != 0))
    -    {
    -      ACE_Time_Value tv (60,0);
    -      tv += ACE_OS::gettimeofday ();
    -      //wait a maximum of 1 min. This is an escape latch against lockups. 
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, 
    -                  "(%t|%T): About to block on cv\n"));
    -#endif
    -      if (this->run_cond_.wait (&tv) == -1) 
    -        {
    -          ACE_ERROR ((LM_ERROR, 
    -                      "(%t|%T): run_cond.wait timed out -- Possible Lockup\n"));
    -        }
    -      this->ready_queue_.most_eligible (item_var);
    -      most_eligible_thr_handle = item_var->thread_handle ();
    -    }
    -  this->curr_scheduled_guid_ = item_var->guid ();
    -  this->curr_scheduled_thr_handle_ = most_eligible_thr_handle;
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, 
    -                  "(%t|%T): %d is currently running\n",
    -                  thr_handle));
    -#endif
    -
    -  if (ACE_OS::thr_setprio (thr_handle, 
    -                           this->active_prio_, 
    -                           this->sched_policy_) == -1)
    -    {
    -      ACE_ERROR ((LM_ERROR,
    -                  ACE_TEXT ("%p\n"),
    -                  ACE_TEXT ("thr_setprio failed")));
    -    }
    -    
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, 
    -              "(%t|%T):schedule_i exit\n")); 
    -#endif
    -
    -  return 0;
    -}
    -
    -template 
    -int DSRT_CV_Dispatcher_Impl::
    -update_schedule_i (Guid_t guid, const DSRT_QoSDescriptor& qos)
    -{ 
    -  return this->schedule_i (guid, qos);
    -}
    -
    -template 
    -int DSRT_CV_Dispatcher_Impl::
    -update_schedule_i (Guid_t guid, Block_Flag_t flag)
    -{
    -  ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->synch_lock_, -1);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, "(%t): update schedule for block entered\n"));
    -#endif
    -
    -  DSRT_Dispatch_Item_var dispatch_item;
    -  ACE_hthread_t thr_handle;
    -  ACE_Thread::self (thr_handle);
    -
    -  int found = this->ready_queue_.find (guid, dispatch_item);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  if (found == 0)
    -      ACE_DEBUG ((LM_DEBUG, "(%t|%T): %d found in ready queue\n", thr_handle));
    -  else
    -      ACE_DEBUG ((LM_DEBUG, "(%t|%T): %d not found in ready queue\n", 
    -                  thr_handle));    
    -#endif
    -
    -  if (found == 0 && flag == BLOCK)
    -    {
    -      thr_handle = dispatch_item->thread_handle ();
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, "(%t|%T): update schedule: %d found\n", thr_handle));
    -#endif
    -
    -      if (ACE_OS::thr_setprio (thr_handle, 
    -                               this->blocked_prio_, 
    -                               this->sched_policy_) == -1)
    -        {
    -          ACE_ERROR ((LM_ERROR,
    -                      ACE_TEXT ("%p\n"),
    -                      ACE_TEXT ("thr_setprio failed")));
    -        }
    -
    -      int rc = this->cancel_schedule (guid);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, "(%t): update schedule for block done\n"));
    -#endif
    -
    -      return rc;
    -    }
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, "(%t): update schedule for block done\n"));
    -#endif
    -
    -  return -1;
    -}
    -
    -template  int
    -DSRT_CV_Dispatcher_Impl::
    -cancel_schedule_i (Guid_t guid)
    -{
    -  ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->synch_lock_, -1);
    -
    -  ACE_hthread_t thr_handle;
    -  ACE_Thread::self (thr_handle);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, "(%t|%T): about to remove guid\n"));
    -#endif
    -
    -  this->ready_queue_.remove (guid);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  this->ready_queue_.dump ();
    -#endif
    -
    -  if (this->curr_scheduled_thr_handle_ == thr_handle)
    -    {
    -      this->curr_scheduled_guid_ = 0;
    -      this->curr_scheduled_thr_handle_ = 0;
    -    }
    -
    -  ACE_GUARD_RETURN (cond_lock_t,
    -                    mon, this->run_cond_lock_, 0);
    -  this->run_cond_.broadcast ();
    -  return 0;
    -}
    -
    -template  int
    -DSRT_CV_Dispatcher_Impl::
    -shutdown_i ()
    -{
    -  this->shutdown_flagged_ = 1;
    -  return 0;
    -}
    -
    -}
    -
    -#endif /* DSRT_CV_DISPATCHER_IMPL_T_CPP */
    diff --git a/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.h b/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.h
    deleted file mode 100644
    index 305afb55ccc..00000000000
    --- a/ACE/Kokyu/DSRT_CV_Dispatcher_Impl_T.h
    +++ /dev/null
    @@ -1,86 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file  DSRT_CV_Dispatcher_Impl_T.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - */
    -
    -#ifndef DSRT_CV_DISPATCHER_IMPL_T_H
    -#define DSRT_CV_DISPATCHER_IMPL_T_H
    -#include /**/ "ace/pre.h"
    -#include "ace/Task.h"
    -#include "ace/Copy_Disabled.h"
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -#include "Kokyu_dsrt.h"
    -#include "DSRT_Sched_Queue_T.h"
    -#include "DSRT_Dispatcher_Impl_T.h"
    -
    -namespace Kokyu
    -{
    -  template
    -  class DSRT_CV_Dispatcher_Impl :
    -    public DSRT_Dispatcher_Impl,
    -    public ACE_Copy_Disabled
    -  {
    -  public:
    -    typedef typename
    -    DSRT_Scheduler_Traits::Guid_t Guid_t;
    -
    -    typedef typename
    -    DSRT_Scheduler_Traits::QoSDescriptor_t DSRT_QoSDescriptor;
    -
    -    DSRT_CV_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy,
    -                             int sched_scope);
    -
    -    int init_i (const DSRT_ConfigInfo&);
    -
    -    /// Schedule a thread dynamically based on the qos info supplied.
    -    int schedule_i (Guid_t, const DSRT_QoSDescriptor&);
    -
    -    /// Update the schedule for a thread. This could alter the current
    -    /// schedule.
    -    int update_schedule_i (Guid_t, const DSRT_QoSDescriptor&);
    -
    -    /// Inform the scheduler that the caller thread is about to
    -    /// block. This could alter the current schedule.
    -    int update_schedule_i (Guid_t, Block_Flag_t);
    -
    -    /// Cancel the schedule for a thread. This could alter the current
    -    /// schedule.
    -    int cancel_schedule_i (Guid_t);
    -
    -    /// Shut down the dispatcher. The dispatcher will stop processing
    -    /// requests.
    -    int shutdown_i ();
    -
    -  private:
    -    typedef ACE_SYNCH_MUTEX cond_lock_t;
    -    typedef ACE_SYNCH_CONDITION cond_t;
    -
    -    cond_lock_t run_cond_lock_;
    -    cond_t run_cond_;
    -  };
    -
    -}
    -
    -#if !defined (__ACE_INLINE__)
    -//#include "DSRT_CV_Dispatcher_Impl_T.i"
    -#endif /* __ACE_INLINE__ */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
    -#include "DSRT_CV_Dispatcher_Impl_T.cpp"
    -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
    -#pragma implementation ("DSRT_CV_Dispatcher_Impl_T.cpp")
    -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
    -
    -#include /**/ "ace/post.h"
    -#endif /* DSRT_DIRECT_DISPATCHER_IMPL_T_H */
    diff --git a/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp b/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp
    deleted file mode 100644
    index ebbea987c50..00000000000
    --- a/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp
    +++ /dev/null
    @@ -1,380 +0,0 @@
    -// $Id$
    -
    -#ifndef DSRT_DIRECT_DISPATCHER_IMPL_T_CPP
    -#define DSRT_DIRECT_DISPATCHER_IMPL_T_CPP
    -
    -#include "DSRT_Direct_Dispatcher_Impl_T.h"
    -
    -#if !defined (__ACE_INLINE__)
    -//#include "DSRT_Direct_Dispatcher_Impl_T.i"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, DSRT_Direct_Dispatcher_Impl_T, "$Id$")
    -
    -namespace Kokyu
    -{
    -
    -/*
    -//@@VS: This is somehow not being recognized by MSVC, which results
    -//in a link error. For now, the definition has been moved to the .h
    -//file. Needs further investigation.
    -
    -template 
    -int Comparator_Adapter_Generator::MoreEligible::
    -operator ()(const DSRT_Dispatch_Item_var& item1,
    -            const DSRT_Dispatch_Item_var& item2)
    -{
    -  int rc = qos_comparator_ (item1->qos (), item2->qos ());
    -
    -  //more eligible
    -  if (rc == 1)
    -    return 1;
    -
    -  //if equally eligible, then resolve tie with the creation time of
    -  //the item
    -  if (rc == 0 && item1->insertion_time () < item2->insertion_time ())
    -    return 1;
    -
    -  return 0;
    -}
    -*/
    -template 
    -DSRT_Direct_Dispatcher_Impl::
    -DSRT_Direct_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy,
    -                         int sched_scope)
    -  :DSRT_Dispatcher_Impl(sched_policy, sched_scope),
    -   sched_queue_modified_ (0),
    -   sched_queue_modified_cond_ (sched_queue_modified_cond_lock_)
    -{
    -  //Run scheduler thread at highest priority
    -  if (this->activate (this->rt_thr_flags_, 1, 0, this->executive_prio_) == -1)
    -    {
    -      ACE_ERROR ((LM_ERROR,
    -                  "(%t|%T) cannot activate scheduler thread in RT mode."
    -                  "Trying in non RT mode\n"));
    -      if (this->activate (this->non_rt_thr_flags_) == -1)
    -        ACE_ERROR ((LM_ERROR,
    -                    "(%t|%T) cannot activate scheduler thread\n"));
    -    }
    -}
    -
    -template  int
    -DSRT_Direct_Dispatcher_Impl::
    -init_i (const DSRT_ConfigInfo&)
    -{
    -  return 0;
    -}
    -
    -template  int
    -DSRT_Direct_Dispatcher_Impl::svc (void)
    -{
    -  ACE_hthread_t scheduler_thr_handle;
    -  ACE_Thread::self (scheduler_thr_handle);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  int prio;
    -  ACE_DEBUG ((LM_DEBUG,
    -              ACE_TEXT ("max prio=%d\n")
    -              ACE_TEXT ("min prio=%d\n")
    -              ACE_TEXT ("active prio=%d\n")
    -              ACE_TEXT ("inactive prio=%d\n"),
    -              max_prio_,
    -              min_prio_,
    -              active_prio_,
    -              inactive_prio_));
    -
    -  if (ACE_OS::thr_getprio (scheduler_thr_handle, prio) == -1)
    -    {
    -      if (errno == ENOTSUP)
    -        {
    -          ACE_ERROR((LM_ERROR,
    -                     ACE_TEXT ("getprio not supported\n")
    -                     ));
    -        }
    -      else
    -        {
    -          ACE_ERROR ((LM_ERROR,
    -                      ACE_TEXT ("%p\n")
    -                      ACE_TEXT ("thr_getprio failed")));
    -        }
    -    }
    -
    -  ACE_DEBUG ((LM_DEBUG, "(%t): Scheduler thread prio is %d\n", prio));
    -#endif /*DSRT_LOGGING*/
    -
    -  while(1)
    -    {
    -      ACE_GUARD_RETURN (cond_lock_t,
    -                        mon,
    -                        sched_queue_modified_cond_lock_,
    -                        0);
    -
    -      if (this->shutdown_flagged_)
    -        break;
    -
    -      while (!sched_queue_modified_)
    -        {
    -#ifdef KOKYU_DSRT_LOGGING
    -          ACE_DEBUG ((LM_DEBUG,
    -                      "(%t|%T): sched thread about to wait on cv\n"));
    -#endif
    -          sched_queue_modified_cond_.wait ();
    -        }
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, "(%t|%T): sched thread done waiting on cv\n"));
    -#endif
    -
    -      sched_queue_modified_ = 0;
    -
    -      ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX,
    -                        synch_lock_mon,
    -                        this->synch_lock_,
    -                        0);
    -
    -      if (this->ready_queue_.current_size () <= 0)
    -        continue;
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, "(%t|%T):Sched Queue contents===>\n"));
    -      this->ready_queue_.dump ();
    -#endif
    -      DSRT_Dispatch_Item_var item_var;
    -      this->ready_queue_.most_eligible (item_var);
    -
    -      ACE_hthread_t most_eligible_thr_handle = item_var->thread_handle ();
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG,
    -                  "(%t|%T):curr scheduled thr handle = %d\n",
    -                  this->curr_scheduled_thr_handle_));
    -      ACE_DEBUG ((LM_DEBUG,
    -                  "(%t|%T):most eligible thr handle = %d \n",
    -                  most_eligible_thr_handle));
    -#endif
    -
    -      if (this->curr_scheduled_thr_handle_ != most_eligible_thr_handle)
    -        {
    -          if (this->curr_scheduled_thr_handle_ != 0)
    -            {
    -              if (ACE_OS::thr_setprio (this->curr_scheduled_thr_handle_,
    -                                       this->inactive_prio_,
    -                                       this->sched_policy_) == -1)
    -                {
    -                  ACE_ERROR ((LM_ERROR,
    -                              ACE_TEXT ("%p\n"),
    -                              ACE_TEXT ("thr_setprio on curr_scheduled_thr_handle_ failed.")));
    -                  ACE_DEBUG ((LM_DEBUG, "thr_handle = %d, prio = %d\n",
    -                              this->curr_scheduled_thr_handle_,
    -                              this->inactive_prio_));
    -                }
    -            }
    -
    -          if (ACE_OS::thr_setprio (most_eligible_thr_handle,
    -                                   this->active_prio_, this->sched_policy_) == -1)
    -            {
    -              ACE_ERROR ((LM_ERROR,
    -                          ACE_TEXT ("%p\n"),
    -                          ACE_TEXT ("thr_setprio on most_eligible_thr_handle failed")));
    -            }
    -
    -          this->curr_scheduled_thr_handle_ = most_eligible_thr_handle;
    -          this->curr_scheduled_guid_ = item_var->guid ();
    -        }
    -          /*change all threads in blocked_prio_ to inactive_prio_*/
    -          this->ready_queue_.change_prio(this->blocked_prio_, this->inactive_prio_,this->sched_policy_);
    -    }
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, "(%t): sched thread exiting\n"));
    -#endif
    -
    -  return 0;
    -}
    -
    -template 
    -int DSRT_Direct_Dispatcher_Impl::
    -schedule_i (Guid_t id, const DSRT_QoSDescriptor& qos)
    -{
    -  ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->synch_lock_, -1);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG,
    -              "(%t|%T):schedule_i enter\n"));
    -#endif
    -
    -  DSRT_Dispatch_Item* item;
    -  ACE_hthread_t thr_handle;
    -  ACE_Thread::self (thr_handle);
    -
    -  ACE_NEW_RETURN (item,
    -                  DSRT_Dispatch_Item (id, qos),
    -                  -1);
    -  item->thread_handle (thr_handle);
    -
    -  if (this->ready_queue_.insert (item) == -1)
    -    return -1;
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG,
    -              "(%t|%T):schedule_i after ready_q.insert\n"));
    -#endif
    -
    -  if (ACE_OS::thr_setprio (thr_handle,
    -                           this->blocked_prio_,
    -                           this->sched_policy_) == -1)
    -    {
    -      ACE_ERROR_RETURN ((LM_ERROR,
    -                  ACE_TEXT ("%p\n"),
    -                  ACE_TEXT ("thr_setprio failed")), -1);
    -    }
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG,
    -              "(%t|%T):schedule_i after thr_setprio\n"));
    -#endif
    -
    -  //ready_queue_.dump ();
    -
    -  /*first release ready_queue_ lock. Otherwise if the scheduler gets the
    -  sched_queue_modified_cond_lock first, then try to get the ready_queue_ lock
    -  just when one thread who gets the ready_queue_ lock first, then try to get
    -  sched_queue_modified_cond_lock. Deadlock happens.
    -  */
    -  guard.release ();
    -
    -  //@@ Perhaps the lock could be moved further down just before
    -  //setting the condition variable?
    -  ACE_GUARD_RETURN (cond_lock_t,
    -                    mon, this->sched_queue_modified_cond_lock_, 0);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG,
    -              "(%t|%T):schedule_i after acquiring cond lock\n"));
    -#endif
    -
    -  this->sched_queue_modified_ = 1;
    -  this->sched_queue_modified_cond_.signal ();
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG,
    -              "(%t|%T):schedule_i exit\n"));
    -#endif
    -
    -  return 0;
    -}
    -
    -template 
    -int DSRT_Direct_Dispatcher_Impl::
    -update_schedule_i (Guid_t guid, const DSRT_QoSDescriptor& qos)
    -{
    -  return this->schedule (guid, qos);
    -}
    -
    -template 
    -int DSRT_Direct_Dispatcher_Impl::
    -update_schedule_i (Guid_t guid, Block_Flag_t flag)
    -{
    -  ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->synch_lock_, -1);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, "(%t): update schedule for block entered\n"));
    -#endif
    -
    -  DSRT_Dispatch_Item_var 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 mon(sched_queue_modified_cond_lock_);
    -
    -  int found = this->ready_queue_.find (guid, dispatch_item);
    -  if (found == 0 && flag == BLOCK)
    -    {
    -      thr_handle = dispatch_item->thread_handle ();
    -      if (ACE_OS::thr_setprio (thr_handle,
    -                               this->blocked_prio_,
    -                               this->sched_policy_) == -1)
    -        {
    -          ACE_ERROR ((LM_ERROR,
    -                      ACE_TEXT ("%p\n"),
    -                      ACE_TEXT ("thr_setprio failed")));
    -        }
    -
    -      //monitor released because cancel_schedule would acquire the
    -      //lock. Using recursive mutex creates lock up.
    -      //
    -      //@@ Need to investigate this further. Also we can consider
    -      //using the Thread-Safe interface pattern.
    -      //mon.release ();
    -      int rc = this->cancel_schedule (guid);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, "(%t): update schedule for block done\n"));
    -#endif
    -
    -      return rc;
    -    }
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, "(%t): update schedule for block done\n"));
    -#endif
    -
    -  return -1;
    -}
    -
    -template  int
    -DSRT_Direct_Dispatcher_Impl::
    -cancel_schedule_i (Guid_t guid)
    -{
    -  ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, this->synch_lock_, -1);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, "(%t): about to remove guid\n"));
    -#endif
    -
    -  this->ready_queue_.remove (guid);
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -  this->ready_queue_.dump ();
    -#endif
    -
    -  if (this->curr_scheduled_guid_ == guid)
    -    {
    -      this->curr_scheduled_guid_ = 0;
    -      this->curr_scheduled_thr_handle_ = 0;
    -    }
    -
    -  //release ready_queue_ lock first before getting another lock
    -  guard.release ();
    -
    -  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 ();
    -  return 0;
    -}
    -
    -template  int
    -DSRT_Direct_Dispatcher_Impl::
    -shutdown_i ()
    -{
    -  this->shutdown_flagged_ = 1;
    -
    -  ACE_Guard mon(this->sched_queue_modified_cond_lock_);
    -  this->sched_queue_modified_ = 1;
    -  this->sched_queue_modified_cond_.signal ();
    -  // We have to wait until the scheduler executive thread shuts
    -  // down. But we have acquired the lock and if we wait without
    -  // releasing it, the scheduler thread will try to acquire it after
    -  // it gets woken up by the above signal and it fails to acquire the
    -  // lock. This will lead to a deadlock. So release the lock before we
    -  // wait.
    -  mon.release ();
    -  this->wait ();
    -  return 0;
    -}
    -
    -}
    -
    -#endif /* DSRT_DIRECT_DISPATCHER_IMPL_T_CPP */
    diff --git a/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h b/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h
    deleted file mode 100644
    index 1e5dddfaecd..00000000000
    --- a/ACE/Kokyu/DSRT_Direct_Dispatcher_Impl_T.h
    +++ /dev/null
    @@ -1,92 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file  DSRT_Direct_Dispatcher_Impl_T.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - */
    -
    -#ifndef DSRT_DIRECT_DISPATCHER_IMPL_T_H
    -#define DSRT_DIRECT_DISPATCHER_IMPL_T_H
    -#include /**/ "ace/pre.h"
    -
    -#include "ace/Task.h"
    -
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -#include "ace/Copy_Disabled.h"
    -#include "Kokyu_dsrt.h"
    -#include "DSRT_Sched_Queue_T.h"
    -#include "DSRT_Dispatcher_Impl_T.h"
    -
    -namespace Kokyu
    -{
    -  template
    -  class DSRT_Direct_Dispatcher_Impl :
    -    public ACE_Task_Base,
    -    public DSRT_Dispatcher_Impl,
    -    public ACE_Copy_Disabled
    -  {
    -  public:
    -    typedef typename
    -    DSRT_Scheduler_Traits::Guid_t Guid_t;
    -
    -    typedef typename
    -    DSRT_Scheduler_Traits::QoSDescriptor_t DSRT_QoSDescriptor;
    -
    -    DSRT_Direct_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy, 
    -                                 int sched_scope);
    -
    -    int init_i (const DSRT_ConfigInfo&);
    -
    -    /// Schedule a thread dynamically based on the qos info supplied.
    -    int schedule_i (Guid_t, const DSRT_QoSDescriptor&);
    -
    -    /// Update the schedule for a thread. This could alter the current
    -    /// schedule.
    -    int update_schedule_i (Guid_t, const DSRT_QoSDescriptor&);
    -
    -    /// Inform the scheduler that the caller thread is about to
    -    /// block. This could alter the current schedule.
    -    int update_schedule_i (Guid_t, Block_Flag_t);
    -
    -    /// Cancel the schedule for a thread. This could alter the current
    -    /// schedule.
    -    int cancel_schedule_i (Guid_t);
    -
    -    /// Shut down the dispatcher. The dispatcher will stop processing
    -    /// requests.
    -    int shutdown_i ();
    -
    -  private:
    -    typedef ACE_SYNCH_MUTEX cond_lock_t;
    -    typedef ACE_SYNCH_CONDITION cond_t;
    -
    -    u_int sched_queue_modified_;
    -    cond_lock_t sched_queue_modified_cond_lock_;
    -    cond_t sched_queue_modified_cond_;
    -
    -  private:
    -    int svc (void);
    -  };
    -
    -}
    -
    -#if !defined (__ACE_INLINE__)
    -//#include "DSRT_Direct_Dispatcher_Impl_T.i"
    -#endif /* __ACE_INLINE__ */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
    -#include "DSRT_Direct_Dispatcher_Impl_T.cpp"
    -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
    -#pragma implementation ("DSRT_Direct_Dispatcher_Impl_T.cpp")
    -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
    -
    -#include /**/ "ace/post.h"
    -#endif /* DSRT_DIRECT_DISPATCHER_IMPL_T_H */
    diff --git a/ACE/Kokyu/DSRT_Dispatch_Item_T.cpp b/ACE/Kokyu/DSRT_Dispatch_Item_T.cpp
    deleted file mode 100644
    index 123b4a47e2c..00000000000
    --- a/ACE/Kokyu/DSRT_Dispatch_Item_T.cpp
    +++ /dev/null
    @@ -1,35 +0,0 @@
    -// $Id$
    -
    -#ifndef DSRT_DISPATCH_ITEM_T_CPP
    -#define DSRT_DISPATCH_ITEM_T_CPP
    -
    -#include "DSRT_Dispatch_Item_T.h"
    -
    -#if ! defined (__ACE_INLINE__)
    -#include "DSRT_Dispatch_Item_T.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, DSRT_Dispatch_Item, "$Id$")
    -
    -namespace Kokyu
    -{
    -
    -template 
    -DSRT_Dispatch_Item_var::
    -DSRT_Dispatch_Item_var (DSRT_Dispatch_Item *p)
    -  :ACE_Strong_Bound_Ptr,
    -                        ACE_SYNCH_MUTEX> (p)
    -{
    -}
    -
    -template 
    -DSRT_Dispatch_Item_var::
    -DSRT_Dispatch_Item_var (const DSRT_Dispatch_Item_var &r)
    -  :ACE_Strong_Bound_Ptr,
    -                        ACE_SYNCH_MUTEX> (r)
    -{
    -}
    -
    -}
    -
    -#endif /* DSRT_DISPATCH_ITEM_T_CPP */
    diff --git a/ACE/Kokyu/DSRT_Dispatch_Item_T.h b/ACE/Kokyu/DSRT_Dispatch_Item_T.h
    deleted file mode 100644
    index 0c76de53483..00000000000
    --- a/ACE/Kokyu/DSRT_Dispatch_Item_T.h
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file  DSRT_Dispatch_Item_T.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - */
    -
    -#ifndef DSRT_DISPATCH_ITEM_H
    -#define DSRT_DISPATCH_ITEM_H
    -#include /**/ "ace/pre.h"
    -#include "ace/Bound_Ptr.h"
    -#include "ace/Copy_Disabled.h"
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -#include "Kokyu_dsrt.h"
    -
    -namespace Kokyu
    -{
    -  /**
    -   * @class DSRT_Dispatch_Item
    -   *
    -   * @brief This stores information about a schedulable thread.
    -   */
    -
    -  template 
    -  class DSRT_Dispatch_Item : private ACE_Copy_Disabled
    -  {
    -    typedef typename
    -    DSRT_Scheduler_Traits::Guid_t Guid_t;
    -
    -    typedef typename
    -    DSRT_Scheduler_Traits::QoSDescriptor_t DSRT_QoSDescriptor;
    -
    -  protected:
    -    ACE_hthread_t thr_handle_;
    -    Guid_t guid_;
    -    DSRT_QoSDescriptor qos_;
    -    ACE_Time_Value insertion_time_;
    -
    -  public:
    -    DSRT_Dispatch_Item (Guid_t guid, const DSRT_QoSDescriptor&);
    -
    -    /// Get the guid.
    -    Guid_t guid ();
    -
    -    /// Get the associated qos value.
    -    DSRT_QoSDescriptor qos ();
    -
    -    /// Get the thread handle.
    -    ACE_hthread_t thread_handle ();
    -
    -    /// Set the thread handle.
    -    void thread_handle (ACE_hthread_t &handle);
    -
    -    /// Get the insertion time.
    -    ACE_Time_Value insertion_time ();
    -
    -    /// Set the insertion time.
    -    void insertion_time (const ACE_Time_Value&);
    -  };
    -
    -  /**
    -   * @class DSRT_Dispatch_Item_var
    -   *
    -   * @brief Smart pointer to dynamically allocated 
    -   * DSRT_Dispatch_Item  objects.
    -   */
    -  template 
    -  class DSRT_Dispatch_Item_var :
    -    public ACE_Strong_Bound_Ptr<
    -                              DSRT_Dispatch_Item,
    -                              ACE_SYNCH_MUTEX>
    -  {
    -  public:
    -    explicit
    -    DSRT_Dispatch_Item_var (DSRT_Dispatch_Item
    -                            *p = 0);
    -
    -    DSRT_Dispatch_Item_var (
    -         const DSRT_Dispatch_Item_var &r);
    -  };
    -}
    -
    -#if defined (__ACE_INLINE__)
    -#include "DSRT_Dispatch_Item_T.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
    -#include "DSRT_Dispatch_Item_T.cpp"
    -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
    -#pragma implementation ("DSRT_Dispatch_Item_T.cpp")
    -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
    -
    -#include /**/ "ace/post.h"
    -#endif /* DSRT_DISPATCH_ITEM_H */
    diff --git a/ACE/Kokyu/DSRT_Dispatch_Item_T.inl b/ACE/Kokyu/DSRT_Dispatch_Item_T.inl
    deleted file mode 100644
    index 79532b79c10..00000000000
    --- a/ACE/Kokyu/DSRT_Dispatch_Item_T.inl
    +++ /dev/null
    @@ -1,70 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file  DSRT_Dispatch_Item_T.inl
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - */
    -
    -namespace Kokyu
    -{
    -
    -template 
    -ACE_INLINE
    -DSRT_Dispatch_Item::
    -DSRT_Dispatch_Item (Guid_t guid, const DSRT_QoSDescriptor& qos)
    -  :guid_ (guid), qos_ (qos)
    -{
    -}
    -
    -template 
    -ACE_INLINE typename DSRT_Dispatch_Item::Guid_t
    -DSRT_Dispatch_Item::
    -guid ()
    -{
    -  return guid_;
    -}
    -
    -template 
    -ACE_INLINE typename DSRT_Dispatch_Item::DSRT_QoSDescriptor
    -DSRT_Dispatch_Item::
    -qos ()
    -{
    -  return qos_;
    -}
    -
    -template 
    -ACE_INLINE ACE_hthread_t
    -DSRT_Dispatch_Item::
    -thread_handle ()
    -{
    -  return thr_handle_;
    -}
    -
    -template 
    -ACE_INLINE void
    -DSRT_Dispatch_Item::
    -thread_handle (ACE_hthread_t &handle)
    -{
    -  thr_handle_ = handle;
    -}
    -
    -template 
    -ACE_INLINE void
    -DSRT_Dispatch_Item::
    -insertion_time (const ACE_Time_Value& tv)
    -{
    -  this->insertion_time_ = tv;
    -}
    -
    -template 
    -ACE_INLINE ACE_Time_Value
    -DSRT_Dispatch_Item::
    -insertion_time ()
    -{
    -  return this->insertion_time_;
    -}
    -
    -}
    diff --git a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp b/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp
    deleted file mode 100644
    index 3d3ac5ed8f2..00000000000
    --- a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp
    +++ /dev/null
    @@ -1,56 +0,0 @@
    -// $Id$
    -
    -#ifndef DSRT_DISPATCHER_IMPL_T_CPP
    -#define DSRT_DISPATCHER_IMPL_T_CPP
    -
    -#include "DSRT_Dispatcher_Impl_T.h"
    -
    -#if ! defined (__ACE_INLINE__)
    -#include "DSRT_Dispatcher_Impl_T.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, DSRT_Dispatcher_Impl, "$Id$")
    -
    -namespace Kokyu
    -{
    -
    -template 
    -DSRT_Dispatcher_Impl::
    -DSRT_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy, 
    -                          int sched_scope)
    -  : sched_policy_ (sched_policy),
    -    sched_scope_ (sched_scope),
    -    min_prio_ (ACE_Sched_Params::priority_min
    -               (sched_policy_,
    -                sched_scope)),
    -    max_prio_ (ACE_Sched_Params::priority_max
    -               (sched_policy_,
    -                sched_scope)),
    -    executive_prio_ (max_prio_),
    -    blocked_prio_ (ACE_Sched_Params::previous_priority
    -                   (sched_policy_,
    -                    max_prio_,
    -                    sched_scope)),
    -    inactive_prio_ (min_prio_),
    -    active_prio_ (ACE_Sched_Params::next_priority
    -                  (sched_policy_,
    -                   min_prio_)),
    -    shutdown_flagged_ (0),
    -    non_rt_thr_flags_ (THR_NEW_LWP | THR_JOINABLE | THR_BOUND),
    -    curr_scheduled_thr_handle_ (0)
    -{
    -  if (sched_policy_ == ACE_SCHED_FIFO)
    -    rt_thr_flags_ = non_rt_thr_flags_ | THR_SCHED_FIFO;
    -  else if (sched_policy_ == ACE_SCHED_RR)
    -    rt_thr_flags_ = non_rt_thr_flags_ | THR_SCHED_RR;
    -}
    -
    -//virtual - so don't inline
    -template 
    -DSRT_Dispatcher_Impl::~DSRT_Dispatcher_Impl ()
    -{
    -}
    -
    -}
    -
    -#endif /* DSRT_DISPATCHER_IMPL_T_CPP */
    diff --git a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.h b/ACE/Kokyu/DSRT_Dispatcher_Impl_T.h
    deleted file mode 100644
    index 18fd07695cb..00000000000
    --- a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.h
    +++ /dev/null
    @@ -1,210 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file   DSRT_Dispatcher_Impl_T.h
    - *
    - *  $Id$
    - *
    - */
    -
    -#ifndef DSRT_DISPATCHER_IMPL_H
    -#define DSRT_DISPATCHER_IMPL_H
    -#include /**/ "ace/pre.h"
    -
    -#include "ace/Synch_Traits.h"
    -#if defined (ACE_HAS_THREADS)
    -#  include "ace/Recursive_Thread_Mutex.h"
    -#else
    -#  include "ace/Null_Mutex.h"
    -#endif /* ACE_HAS_THREADS */
    -
    -#include "Kokyu_dsrt.h"
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -
    -
    -namespace Kokyu
    -{
    -  /**
    -   * @class Comparator_Adapter_Generator
    -   *
    -   * @brief Generates function object adapter that adapts the
    -   * QoSComparator function object to compare between two schedulable
    -   * items instead of QoSDescriptors.
    -   *
    -   * The QoSComparator function object that gets passed through the
    -   *  DSRT_Scheduler_Traits  takes two qos values and
    -   * determines the more eligible one. Since the INT_ID (key) for
    -   * RB_Tree needs to be of type  DSRT_Dispatch_Item_var
    -   * , the QoSComparator needs to be adapted using an adapter
    -   * to compare two schedulable items. This adapter compares the two
    -   * using their qos values. Ties are resolved by giving preference to
    -   * items which arrived earlier. Note that this class serves the
    -   * purpose of a generator class, since it generates the adapter
    -   * class for a given qos comparator function object.
    -   */
    -
    -  template 
    -  class Comparator_Adapter_Generator
    -  {
    -  public:
    -    typedef typename
    -    DSRT_Scheduler_Traits::QoSComparator_t QoSComparator_t;
    -
    -    /**
    -     * @class More_Eligible
    -     *
    -     * @brief Actual function object that gets generated.
    -     */
    -    class MoreEligible
    -    {
    -    public:
    -      /**
    -       * Function call operator to do comparison between two
    -       * schedulable items. Returns 1 if item1 is more eligible than
    -       * item2, otherwise 0.
    -       */
    -      int operator ()
    -        (const DSRT_Dispatch_Item_var& item1,
    -         const DSRT_Dispatch_Item_var& item2)
    -      {
    -        int rc = qos_comparator_ (item1->qos (), item2->qos ());
    -
    -#ifdef KOKYU_DSRT_LOGGING
    -        ACE_DEBUG ((LM_DEBUG, 
    -                    "(%t|%T): MoreEligible:: qos_comparator returned %d\n", 
    -                    rc));
    -#endif
    -        
    -        //more eligible
    -        if (rc == 1)
    -          return rc;
    -
    -        //if equally eligible, then resolve tie with the creation time of
    -        //the item
    -        if (rc == 0 && item1->insertion_time () < item2->insertion_time ())
    -          return 1;
    -
    -        return 0;
    -      }
    -
    -    private:
    -      QoSComparator_t qos_comparator_;
    -    };
    -
    -    /**
    -     * Facilitates return of the generated function object adapter.
    -     */
    -    typedef MoreEligible RET;
    -  };
    -
    -  /**
    -   * @class DSRT_Dispatcher
    -   *
    -   * @brief Base class for DSRT dispatcher implementations
    -   *
    -   * The responsibility of this class is to act as a common base class
    -   * for different DSRT dispatcher implementations. This is an
    -   * abstract base class and cannot be instantiated.
    -   */
    -  template 
    -  class DSRT_Dispatcher_Impl
    -  {
    -  public:
    -    typedef typename DSRT_Scheduler_Traits::Guid_t Guid_t;
    -    typedef typename DSRT_Scheduler_Traits::QoSDescriptor_t DSRT_QoSDescriptor;
    -
    -    DSRT_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy, 
    -                          int sched_scope);
    -
    -    /// Configure the DSRT dispatcher.
    -    int init (const DSRT_ConfigInfo&);
    -
    -    /// Schedule a thread dynamically based on the qos info supplied.
    -    int schedule (Guid_t guid,
    -                  const DSRT_QoSDescriptor&);
    -
    -    /// Update the schedule for a thread. This could alter the current
    -    /// schedule.
    -    int update_schedule (Guid_t guid,
    -                         const DSRT_QoSDescriptor&);
    -
    -    /// Inform the scheduler that the caller thread is about to
    -    /// block. This could alter the current schedule.
    -    int update_schedule (Guid_t guid, Block_Flag_t flag);
    -
    -    /// Cancel the schedule for a thread. This could alter the current
    -    /// schedule.
    -    int cancel_schedule (Guid_t guid);
    -
    -    /// Shut down the dispatcher. The dispatcher will stop processing
    -    /// requests.
    -    int shutdown ();
    -
    -    virtual ~DSRT_Dispatcher_Impl ();
    -
    -  private:
    -
    -    //following an idiom to avoid public virtual functions.
    -    //instead make them private and use the template method
    -    //pattern - "Virtually Yours" article in CUJ Experts Forum
    -
    -    virtual int init_i (const DSRT_ConfigInfo&)=0;
    -    virtual int schedule_i (Guid_t guid,
    -                    const DSRT_QoSDescriptor&)=0;
    -    virtual int update_schedule_i (Guid_t guid,
    -                           const DSRT_QoSDescriptor&)=0;
    -    virtual int update_schedule_i (Guid_t guid, Block_Flag_t flag)=0;
    -    virtual int cancel_schedule_i (Guid_t guid)=0;
    -    virtual int shutdown_i ()=0;
    -
    -  protected:
    -    /// Generate the QoSComparator adapter.
    -    typedef typename
    -    Comparator_Adapter_Generator::RET
    -    Queue_Item_Comparator_t;
    -
    -    typedef Sched_Ready_Queue
    -    DSRT_Sched_Queue_t;
    -
    -    ACE_Sched_Params::Policy sched_policy_;
    -    int sched_scope_;
    -
    -    Priority_t min_prio_;
    -    Priority_t max_prio_;
    -    Priority_t executive_prio_;
    -    Priority_t blocked_prio_;
    -    Priority_t inactive_prio_;
    -    Priority_t active_prio_;
    -
    -    DSRT_Sched_Queue_t ready_queue_;
    -    int shutdown_flagged_;
    -    long non_rt_thr_flags_;
    -    long rt_thr_flags_;
    -
    -    ACE_SYNCH_RECURSIVE_MUTEX synch_lock_;
    -
    -    ACE_hthread_t curr_scheduled_thr_handle_;
    -    Guid_t curr_scheduled_guid_;    
    -  };
    -
    -} //end of namespace
    -
    -#if defined (__ACE_INLINE__)
    -#include "DSRT_Dispatcher_Impl_T.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
    -#include "DSRT_Dispatcher_Impl_T.cpp"
    -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
    -#pragma implementation ("DSRT_Dispatcher_Impl_T.cpp")
    -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
    -
    -#include /**/ "ace/post.h"
    -#endif /* DSRT_DISPATCHER_IMPL_H */
    diff --git a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.inl b/ACE/Kokyu/DSRT_Dispatcher_Impl_T.inl
    deleted file mode 100644
    index e4983a17ba3..00000000000
    --- a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.inl
    +++ /dev/null
    @@ -1,57 +0,0 @@
    -// $Id$
    -
    -namespace Kokyu
    -{
    -
    -template 
    -ACE_INLINE int
    -DSRT_Dispatcher_Impl::
    -init (const DSRT_ConfigInfo& config_info)
    -{
    -  return this->init_i (config_info);
    -}
    -
    -template 
    -ACE_INLINE int
    -DSRT_Dispatcher_Impl::
    -schedule (Guid_t guid,
    -          const DSRT_QoSDescriptor& qos)
    -{
    -  return this->schedule_i (guid, qos);
    -}
    -
    -template 
    -ACE_INLINE int
    -DSRT_Dispatcher_Impl::
    -update_schedule (Guid_t guid,
    -                 const DSRT_QoSDescriptor& qos)
    -{
    -  return this->update_schedule_i (guid, qos);
    -}
    -
    -template 
    -ACE_INLINE int
    -DSRT_Dispatcher_Impl::
    -update_schedule (Guid_t guid,
    -                 Block_Flag_t flag)
    -{
    -  return this->update_schedule_i (guid, flag);
    -}
    -
    -template 
    -ACE_INLINE int
    -DSRT_Dispatcher_Impl::
    -cancel_schedule (Guid_t guid)
    -{
    -  return this->cancel_schedule_i (guid);
    -}
    -
    -template 
    -ACE_INLINE int
    -DSRT_Dispatcher_Impl::shutdown ()
    -
    -{
    -  return this->shutdown_i ();
    -}
    -
    -}
    diff --git a/ACE/Kokyu/DSRT_Sched_Queue_T.cpp b/ACE/Kokyu/DSRT_Sched_Queue_T.cpp
    deleted file mode 100644
    index ad6593e885d..00000000000
    --- a/ACE/Kokyu/DSRT_Sched_Queue_T.cpp
    +++ /dev/null
    @@ -1,281 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file  DSRT_Sched_Queue_T.cpp
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - */
    -#ifndef DSRT_SCHED_QUEUE_T_CPP
    -#define DSRT_SCHED_QUEUE_T_CPP
    -
    -#include "DSRT_Sched_Queue_T.h"
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -#if !defined (__ACE_INLINE__)
    -//#include "DSRT_Sched_Queue_T.i"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu,
    -          DSRT_Sched_Queue_T,
    -          "$Id$")
    -
    -namespace Kokyu
    -{
    -/*
    -//@@VS: This is somehow not being recognized by MSVC, which results
    -//in a link error. For now, the definition has been moved to the .h
    -//file. Needs further investigation.
    -
    -template 
    -u_long
    -Sched_Ready_Queue::
    -Guid_Hash::operator () (const Guid_t& id)
    -{
    -  typename DSRT_Scheduler_Traits::Guid_Hash guid_hash;
    -  return guid_hash(id);
    -}
    -*/
    -template 
    -int Sched_Ready_Queue::
    -current_size ()
    -{
    -  return dispatch_items_prio_queue_.current_size ();
    -}
    -
    -template 
    -int Sched_Ready_Queue::
    -most_eligible (DSRT_Dispatch_Item_var& item)
    -{
    -  if (dispatch_items_prio_queue_.current_size () == 0)
    -      return -1;
    -
    -  PRIO_QUEUE_ITERATOR start = dispatch_items_prio_queue_.begin ();
    -  PRIO_QUEUE_ENTRY &ent = (*start);
    -  item = ent.item ();
    -  return 0;
    -}
    -
    -template 
    -int Sched_Ready_Queue::
    -find (Guid_t guid,
    -      DSRT_Dispatch_Item_var& found_item)
    -{
    -  ACE_GUARD_RETURN (ACE_LOCK, mon, lock_, -1);
    -  RB_Tree_Dispatch_Item_Node* rb_tree_node;
    -
    -  if (dispatch_items_hash_map_.find(guid, rb_tree_node) == -1)
    -    {
    -      return -1;
    -    }
    -
    -  found_item = rb_tree_node->item ();
    -  return 0;
    -}
    -
    -template 
    -int Sched_Ready_Queue::
    -insert (DSRT_Dispatch_Item* item)
    -{
    -  item->insertion_time (ACE_OS::gettimeofday ());
    -  DSRT_Dispatch_Item_var item_var(item);
    -
    -  ACE_GUARD_RETURN (ACE_LOCK, mon, lock_, -1);
    -
    -  RB_Tree_Dispatch_Item_Node* rb_tree_node;
    -  Guid_t guid = item->guid ();
    -
    -#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", 
    -              thr_handle));
    -#endif
    -
    -  if (dispatch_items_hash_map_.find (guid, rb_tree_node) == -1)
    -    {
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG, 
    -                  "(%t|%T) %d not found in hashmap\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): item bound in rbtree\n"));
    -#endif
    -          if (dispatch_items_hash_map_.bind (guid, rb_tree_node) == 0)
    -            {
    -#ifdef KOKYU_DSRT_LOGGING
    -              ACE_DEBUG ((LM_DEBUG, "(%t|%T): item bound in hashmap\n"));
    -              ACE_DEBUG ((LM_DEBUG,
    -                          "<===Hash Table contents Begin===>\n"));
    -              dispatch_items_hash_map_.dump ();
    -              ACE_DEBUG ((LM_DEBUG,
    -                          "<===Hash Table contents End=====>\n"));
    -#endif              
    -              return 0;
    -            }
    -        }
    -    }
    -  else
    -    {
    -#ifdef KOKYU_DSRT_LOGGING
    -      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));      
    -#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));      
    -#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,
    -                          "<===Hash Table contents Begin===>\n"));
    -              dispatch_items_hash_map_.dump ();
    -              ACE_DEBUG ((LM_DEBUG,
    -                          "<===Hash Table contents End===>\n"));
    -#endif              
    -              return 0;
    -            }
    -        }
    -    }
    -
    -  return -1;
    -}
    -
    -template 
    -int Sched_Ready_Queue::
    -remove (Guid_t guid)
    -{
    -  ACE_GUARD_RETURN (ACE_LOCK, mon, lock_, -1);
    -  RB_Tree_Dispatch_Item_Node* rb_tree_node;
    -
    -  if (dispatch_items_hash_map_.find(guid, rb_tree_node) == 0)
    -    {
    -      dispatch_items_hash_map_.unbind (guid);
    -      dispatch_items_prio_queue_.unbind (rb_tree_node);
    -#ifdef KOKYU_DSRT_LOGGING
    -      ACE_DEBUG ((LM_DEBUG,
    -                  "<===Hash Table contents Begin===>\n"));
    -      dispatch_items_hash_map_.dump ();
    -      ACE_DEBUG ((LM_DEBUG,
    -                  "<===Hash Table contents End===>\n"));
    -#endif
    -      
    -      return 0;
    -    }
    -
    -  return -1;
    -}
    -
    -template 
    -void Sched_Ready_Queue::
    -dump ()
    -{
    -  ACE_GUARD (ACE_LOCK, mon, lock_);
    -  ACE_DEBUG ((LM_DEBUG, "(%t|%T):##########################\n"));
    -  if (dispatch_items_prio_queue_.current_size ())
    -    {
    -      PRIO_QUEUE_ITERATOR end_iter = dispatch_items_prio_queue_.end ();
    -      PRIO_QUEUE_ITERATOR iter;
    -
    -      iter = dispatch_items_prio_queue_.begin ();
    -      while( iter != end_iter )
    -        {
    -          PRIO_QUEUE_ENTRY &ent = (*iter);
    -          DSRT_Dispatch_Item_var
    -            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", 
    -                      guid, item_var->thread_handle ()));
    -          */
    -          ++iter;
    -        }
    -    }
    -  ACE_DEBUG ((LM_DEBUG, "(%t|%T):##########################\n"));
    -}
    -
    -template 
    -int Sched_Ready_Queue::
    -change_prio(int old_prio, int new_prio, int policy)
    -{
    -  if (dispatch_items_prio_queue_.current_size ())
    -    {
    -      PRIO_QUEUE_ITERATOR end_iter = dispatch_items_prio_queue_.end ();
    -      PRIO_QUEUE_ITERATOR iter;
    -      int prio;
    -
    -      iter = dispatch_items_prio_queue_.begin ();
    -      while( iter != end_iter )
    -        {
    -          PRIO_QUEUE_ENTRY &ent = (*iter);
    -          DSRT_Dispatch_Item_var
    -            item_var = ent.item ();
    -          ACE_OS::thr_getprio (item_var->thread_handle (), prio);
    -          if (prio==old_prio) {
    -            ACE_OS::thr_setprio(item_var->thread_handle (), new_prio, policy);
    -          }
    -          ++iter;
    -        }
    -    }
    -    return(0);
    -}
    -
    -}
    -
    -#endif /* DSRT_SCHED_QUEUE_T_CPP */
    diff --git a/ACE/Kokyu/DSRT_Sched_Queue_T.h b/ACE/Kokyu/DSRT_Sched_Queue_T.h
    deleted file mode 100644
    index 68ad4be8e69..00000000000
    --- a/ACE/Kokyu/DSRT_Sched_Queue_T.h
    +++ /dev/null
    @@ -1,230 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file  DSRT_Sched_Queue_T.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - */
    -
    -#ifndef DSRT_SCHED_QUEUE_T_H
    -#define DSRT_SCHED_QUEUE_T_H
    -#include /**/ "ace/pre.h"
    -
    -#include "DSRT_Dispatch_Item_T.h"
    -#include "ace/RB_Tree.h"
    -#include "ace/Hash_Map_Manager_T.h"
    -#include "ace/Null_Mutex.h"
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -#include "Kokyu_dsrt.h"
    -
    -namespace Kokyu
    -{
    -
    -  /**
    -   * @class Sched_Ready_Queue
    -   *
    -   * @brief RB_Tree based template class for implementation of
    -   * reordering queue.
    -   *
    -   * This queue is used as a priority queue to store schedulable
    -   * entities. The item at the top of the RB_Tree is the most eligible
    -   * item. The comparator used to determine the most eligible item is
    -   * passed as a template parameter  More_Eligible_Comparator
    -   * . This is expected to be a functor which compares two
    -   * schedulable items. The mutex type template parameter for RB_Tree
    -   * is chosen to be a null mutex since all the methods in the
    -   * enclosing  Sched_Ready_Queue  class are thread
    -   * safe. Since QoS is used for comparison between two schedulable
    -   * items, QoSDescriptor is the ideal candidate to be used as the key
    -   * or the EXT_ID for RB_Tree instantiation. But two qos descriptors
    -   * could be the same. The existing implementation of RB_Tree does
    -   * not allow duplicate keys. In order to facilitate insertion of
    -   * duplicate qos descriptors, the qos descriptors are contained in a
    -   *  DSRT_Dispatch_Item  and this is used as the basis
    -   * of comparison. To resolve tie between equal qos values, an
    -   * insertion time stamp is maintained in each item and an item with
    -   * an earlier time stamp is more eligible than an item with an
    -   * identical qos value. Another requirement is that it should be
    -   * possible to remove an item from the RB_Tree based on guid. Since
    -   * we have already used up the qos descriptor for the key, we need a
    -   * separate index into the list of schedulable items. The second
    -   * index should be based on guid. This is achieved by using a hash
    -   * map to store  pairs. This makes the deletion
    -   * of nodes from RB_Tree more efficient.
    -   *
    -   */
    -  template 
    -  class Sched_Ready_Queue
    -  {
    -    /// Extract the necessary types from the traits class
    -    typedef typename DSRT_Scheduler_Traits::Guid_t Guid_t;
    -
    -    typedef typename
    -    DSRT_Scheduler_Traits::QoSDescriptor_t DSRT_QoSDescriptor_t;
    -
    -  public:
    -
    -    /**
    -     * Given a guid, find an item in the priority queue.
    -     *
    -     * @param guid Guid of item
    -     *
    -     * @param found_item Reference to DSRT_Dispatch_Item_var
    -     *                   to hold the found item.
    -     * @return  -1 if no item found and 0 otherwise.
    -     */
    -    int find(Guid_t guid,
    -             DSRT_Dispatch_Item_var&
    -             found_item);
    -
    -
    -    /**
    -     * Insert an item in the priority queue. If item with same guid is
    -     * already in the queue, the existing one is deleted and the new
    -     * one inserted. A deletion and insertion has to happen instead of
    -     * update since the rebalancing of the RB_Tree should take place.
    -     *
    -     * @param item  DSRT_Dispatch_Item  object containing guid and qos.
    -     *
    -     * @return -1 if insertion failed and 0 otherwise.
    -     */
    -    int insert(DSRT_Dispatch_Item* item);
    -
    -    /**
    -     * Remove an item from the priority queue.
    -     *
    -     * @param guid Guid of item.
    -     *
    -     * @param qos QoS associated with item.
    -     *
    -     * @return -1 if removal failed and 0 otherwise.
    -     */
    -    int remove(Guid_t guid);
    -
    -    /**
    -     * Returns current size of the priority queue.
    -     */
    -    int current_size ();
    -
    -    /**
    -     * Get the most eligible item from the priority queue.
    -     *
    -     * @param item Item which is most eligible, i.e. one at the
    -     *             "top" of the priority queue.
    -     *
    -     * @return -1 if there are no items in the priority queue.
    -     */
    -    int most_eligible (DSRT_Dispatch_Item_var&
    -                       item);
    -
    -    /**
    -     * change blocked_prio_ item to inactive_prio_
    -     */
    -    int change_prio (int old_prio, int new_prio, int policy);
    -
    -    void dump();
    -
    -  private:
    -
    -    /**
    -     * @class Guid_Hash
    -     *
    -     * @brief Internal class to generate hash for guid.
    -     *
    -     * This acts just as a wrapper functor to the Hash functor passed
    -     * as part of the traits class  DSRT_Scheduler_Traits
    -     * .
    -     *
    -     */
    -    class Guid_Hash
    -    {
    -    public:
    -      /// Returns hash value.
    -      u_long operator () (const typename DSRT_Scheduler_Traits::Guid_t &id)
    -      {
    -        typename DSRT_Scheduler_Traits::Guid_Hash guid_hash;
    -        return guid_hash(id);
    -      }
    -    };
    -
    -    // RB_Tree related typedefs
    -    typedef ACE_RB_Tree ,
    -                         DSRT_Dispatch_Item_var,
    -                         More_Eligible_Comparator,
    -                         ACE_SYNCH_NULL_MUTEX> Dispatch_Items_Priority_Queue;
    -
    -
    -    typedef
    -    ACE_RB_Tree_Node,
    -                     DSRT_Dispatch_Item_var >
    -    RB_Tree_Dispatch_Item_Node;
    -
    -    typedef typename
    -    Dispatch_Items_Priority_Queue::ITERATOR PRIO_QUEUE_ITERATOR;
    -
    -    typedef typename
    -    Dispatch_Items_Priority_Queue::ENTRY PRIO_QUEUE_ENTRY;
    -
    -    // Hash map related typedefs
    -    typedef ACE_Hash_Map_Manager_Ex,
    -                                    ACE_SYNCH_NULL_MUTEX>
    -    Dispatch_Items_Hash_Map;
    -
    -    typedef ACE_Hash_Map_Iterator_Ex,
    -                                     ACE_SYNCH_NULL_MUTEX>
    -    Dispatch_Items_Hash_Map_Iterator;
    -
    -    typedef ACE_Hash_Map_Entry 
    -    Dispatch_Items_Hash_Map_Entry;
    -
    -    /**
    -     * Lock used to protect the state of the scheduler queue. A
    -     * separate lock is not used for the internal RB_Tree and hashmap.
    -     */
    -    ACE_LOCK lock_;
    -
    -    /**
    -     * Hash table to maintain a second index into the list of
    -     * schedulable items. This is for efficient removal of items from
    -     * the RB_Tree based on guid. The guid is used as the key for the
    -     * hash map, whereas the qos value is used as the key for the
    -     * RB_Tree.
    -     */
    -    Dispatch_Items_Hash_Map dispatch_items_hash_map_;
    -
    -    /**
    -     * RB_Tree implementation of priority queue of schedulable items.
    -     */
    -    Dispatch_Items_Priority_Queue dispatch_items_prio_queue_;
    -  };
    -}
    -
    -#if !defined (__ACE_INLINE__)
    -//#include "DSRT_Sched_Queue_T.i"
    -#endif /* __ACE_INLINE__ */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
    -#include "DSRT_Sched_Queue_T.cpp"
    -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
    -#pragma implementation ("DSRT_Sched_Queue_T.cpp")
    -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
    -
    -#include /**/ "ace/post.h"
    -#endif /* DSRT_SCHED_QUEUE_T_H */
    diff --git a/ACE/Kokyu/Default_Dispatcher_Impl.cpp b/ACE/Kokyu/Default_Dispatcher_Impl.cpp
    deleted file mode 100644
    index 4fdb0fa8164..00000000000
    --- a/ACE/Kokyu/Default_Dispatcher_Impl.cpp
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -// $Id$
    -
    -#include "Default_Dispatcher_Impl.h"
    -#include "ace/Sched_Params.h"
    -
    -#if ! defined (__ACE_INLINE__)
    -#include "Default_Dispatcher_Impl.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, Default_Dispatcher_Impl, "$Id$")
    -
    -namespace Kokyu
    -{
    -
    -Default_Dispatcher_Impl::Default_Dispatcher_Impl ()
    -  : activated_ (0)
    -{
    -}
    -
    -int
    -Default_Dispatcher_Impl::init_i (const Dispatcher_Attributes& attrs)
    -{
    -  //create and init the dispatcher tasks here
    -
    -  ACE_DEBUG ((LM_DEBUG, "entering init_t\n" ));
    -  int size;
    -  size = attrs.config_info_set_.size ();
    -
    -  if (size == 0)
    -    return -1;
    -
    -  this->ntasks_ = size;
    -
    -  Dispatcher_Task_Auto_Ptr * tasks_array=0;
    -  ACE_NEW_RETURN (tasks_array, Dispatcher_Task_Auto_Ptr[ntasks_], -1);
    -
    -  //ACE_DEBUG ((LM_DEBUG, "after new on task array\n" ));
    -  tasks_.reset(tasks_array);
    -
    -  //ACE_DEBUG ((LM_DEBUG, "task array auto_ptr set\n" ));
    -
    -  ConfigInfoSet& config_set = 
    -    const_cast (attrs.config_info_set_);
    -  ConfigInfoSet::ITERATOR iter(config_set);
    -  int i=0;
    -
    -  ConfigInfo* config;
    -  for (;i tmp_task_auto_ptr (task);
    -      tasks_[i++] = tmp_task_auto_ptr;
    -      //I couldn't use reset because MSVC6 auto_ptr does not have reset method.
    -      //So in configurations where the auto_ptr maps to the std::auto_ptr instead
    -      //of ACE auto_ptr, this would be a problem.
    -      //tasks_[i++].reset (task);
    -    }
    -
    -  this->thr_creation_flags_ = attrs.thread_creation_flags ();
    -
    -  if (attrs.immediate_activation_ && !this->activated_)
    -    {
    -      this->activate_i ();
    -    }
    -
    -  curr_config_info_ = attrs.config_info_set_;
    -  return 0;
    -}
    -
    -int
    -Default_Dispatcher_Impl::activate_i ()
    -{
    -  int i;
    -
    -  if (this->activated_)
    -    return 0;
    -
    -  for(i=0; iget_curr_config_info ().thread_priority_;
    -
    -      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")),  
    -             -1);
    -        }
    -    }
    -
    -  this->activated_ = 1;
    -  return 0;
    -}
    -
    -Dispatcher_Task*
    -Default_Dispatcher_Impl::find_task_with_preemption_prio (Priority_t prio)
    -{
    -  int i;
    -
    -  if (prio >=0)
    -  {
    -    for( i=0; ipreemption_priority () == prio)
    -        return  tasks_[i].get();
    -    }
    -  }
    -
    -  return 0;
    -}
    -
    -int
    -Default_Dispatcher_Impl::dispatch_i (const Dispatch_Command* cmd,
    -                  const QoSDescriptor& qos_info)
    -{
    -  //delegate to the appropriate task
    -  if (qos_info.preemption_priority_ < 0)
    -    return -1;
    -
    -  Dispatcher_Task* task =
    -    find_task_with_preemption_prio (qos_info.preemption_priority_);
    -
    -  //@@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 ();
    -
    -  return task->enqueue (cmd, qos_info);
    -}
    -
    -int
    -Default_Dispatcher_Impl::shutdown_i ()
    -{
    -  //This needs to be revisited based on mode transition and 
    -  //consistent cut through the queues
    -
    -  //post shutdown command to all tasks
    -  int i;
    -
    -  for(i=0; ienqueue (shutdown_cmd, qos_info);
    -    }
    -
    -  //wait for all tasks to exit
    -  for (i=0; iwait ();
    -    }
    -
    -  return 0;
    -}
    -
    -int
    -Shutdown_Task_Command::execute ()
    -{
    -  return -1;
    -}
    -
    -}
    diff --git a/ACE/Kokyu/Default_Dispatcher_Impl.h b/ACE/Kokyu/Default_Dispatcher_Impl.h
    deleted file mode 100644
    index 196b0ca3775..00000000000
    --- a/ACE/Kokyu/Default_Dispatcher_Impl.h
    +++ /dev/null
    @@ -1,77 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file   Default_Dispatcher_Impl.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - * Based on previous work by Tim Harrison (harrison@cs.wustl.edu),
    - * Chris Gill, Carlos O'Ryan and other members of the DOC group.
    - */
    -
    -#ifndef DEFAULT_DISPATCHER_IMPL_H
    -#define DEFAULT_DISPATCHER_IMPL_H
    -#include /**/ "ace/pre.h"
    -
    -#include "ace/Task.h"
    -
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -#include "ace/Auto_Ptr.h"
    -#include "kokyu_export.h"
    -#include "Kokyu_defs.h"
    -#include "Dispatcher_Impl.h"
    -#include "Dispatcher_Task.h"
    -
    -namespace Kokyu
    -{
    -  /**
    -   * @class Default_Dispatcher_Impl
    -   *
    -   * @brief Default implementation class for EC dispatcher
    -   * implementations
    -   *
    -   */
    -  class Default_Dispatcher_Impl : public Dispatcher_Impl
    -  {
    -  public:
    -    Default_Dispatcher_Impl ();
    -
    -  private:
    -    int activate_i ();
    -    int init_i (const Dispatcher_Attributes&);
    -    int dispatch_i (const Dispatch_Command*,
    -                  const QoSDescriptor&);
    -    int shutdown_i ();
    -    Dispatcher_Task* find_task_with_preemption_prio (Priority_t);
    -
    -  private:
    -    typedef auto_ptr Dispatcher_Task_Auto_Ptr;
    -    ACE_Auto_Array_Ptr tasks_;
    -    int ntasks_;
    -    ConfigInfoSet curr_config_info_;
    -    int activated_;
    -  };
    -
    -  class Shutdown_Task_Command : public Dispatch_Command
    -  {
    -  public:
    -    /// Constructor
    -    Shutdown_Task_Command (ACE_Allocator *mb_allocator = 0);
    -
    -    /// Command callback
    -    int execute ();
    -  };
    -
    -} //end of namespace
    -
    -#if defined (__ACE_INLINE__)
    -#include "Default_Dispatcher_Impl.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#include /**/ "ace/post.h"
    -#endif /* DEFAULT_DISPATCHER_IMPL_H */
    diff --git a/ACE/Kokyu/Default_Dispatcher_Impl.inl b/ACE/Kokyu/Default_Dispatcher_Impl.inl
    deleted file mode 100644
    index bf1e76c3ce7..00000000000
    --- a/ACE/Kokyu/Default_Dispatcher_Impl.inl
    +++ /dev/null
    @@ -1,11 +0,0 @@
    -// $Id$
    -
    -namespace Kokyu
    -{
    -ACE_INLINE
    -Shutdown_Task_Command::Shutdown_Task_Command (ACE_Allocator *mb_allocator)
    -   :Dispatch_Command(0,mb_allocator)
    -{
    -}
    -
    -}
    diff --git a/ACE/Kokyu/Dispatch_Deferrer.cpp b/ACE/Kokyu/Dispatch_Deferrer.cpp
    deleted file mode 100644
    index 6db734c8205..00000000000
    --- a/ACE/Kokyu/Dispatch_Deferrer.cpp
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -// $Id$
    -
    -#include "ace/Sched_Params.h"
    -#include "Dispatch_Deferrer.h"
    -#include "Dispatcher_Task.h"
    -
    -#if ! defined (__ACE_INLINE__)
    -#include "Dispatch_Deferrer.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#include "kokyu_config.h"
    -#include "kokyu_dsui_families.h"
    -#include 
    -ACE_RCSID(Kokyu, Dispatch_Deferrer, "$Id$")
    -
    -namespace Kokyu
    -{
    -
    -int
    -Dispatch_Deferrer::init(const Dispatch_Deferrer_Attributes& attr)
    -{
    -  //set up reactor for timeouts
    -  this->react_.open(0);
    -  //Don't need any handles, since we're only using it for timeouts
    -
    -  this->timers_.open();
    -
    -  this->task_ = attr.task_;
    -
    -  return 0;
    -}
    -
    -int
    -Dispatch_Deferrer::dispatch (Dispatch_Queue_Item *qitem)
    -{
    -  ACE_ASSERT(qitem != 0);
    -
    -  //setup timout
    -  //For now, assume period = deadline
    -  ACE_Time_Value tv;
    -  tv = ACE_OS::gettimeofday() + qitem->qos_info().deadline_;
    -  long timer_id = this->react_.schedule_timer(this,
    -                                              0, //NULL arg
    -                                              tv);
    -  if (timer_id < 0)
    -    {
    -      ACE_ERROR_RETURN ((LM_ERROR,
    -                  ACE_TEXT ("EC (%P|%t) cannot schedule Release Guard timer.")
    -                  ACE_TEXT ("ACE_Reactor.schedule_timer() returned -1\n")),
    -                  -1);
    -    }
    -  //else valid timer_id
    -  this->timers_.bind(qitem,timer_id);
    -
    -  //@BT INSTRUMENT with event ID: EVENT_DEFERRED_ENQUEUE Measure time
    -  //between release and enqueue into dispatch queue because of RG
    -  DSUI_EVENT_LOG(DISP_DEFERRER_FAM, EVENT_DEFERRED_ENQUEUE, timer_id, 0, 0);
    -
    -  //buffer until timer expires
    -  return this->rgq_.enqueue_deadline(qitem,&tv);
    -}
    -
    -
    -int
    -Dispatch_Deferrer::handle_timeout (const ACE_Time_Value &,
    -                                   const void *)
    -{
    -  //get all expired Dispatch_Queue_Items
    -  ACE_Message_Block *begin,*end;
    -  this->rgq_.remove_messages(begin,end,
    -                             (u_int) (ACE_Dynamic_Message_Strategy::LATE | 
    -                                      ACE_Dynamic_Message_Strategy::BEYOND_LATE));
    -
    -  //dispatch them back to Dispatcher_Impl
    -  while (begin <= end)
    -    {
    -      Dispatch_Queue_Item *qitem =
    -        dynamic_cast (begin);
    -
    -      if (qitem == 0)
    -        {
    -          ACE_Message_Block::release (begin);
    -          continue;
    -        }
    -
    -
    -      //remove timer for each enqueued qitem from reactor
    -      long timer_id;
    -      if (this->timers_.find(qitem,timer_id) < 0)
    -        {
    -            ACE_ERROR_RETURN ((LM_ERROR,
    -             ACE_TEXT ("Could not cancel Release Guard timer.")
    -             ACE_TEXT ("Unknown timer ID\n")),
    -             -1);
    -        }
    -      //else got timer_id
    -      this->react_.cancel_timer(timer_id);
    -
    -      //@BT INSTRUMENT with event ID: EVENT_DEFERRED_DEQUEUE Measure
    -      //time between release and enqueue into dispatch queue because
    -      //of RG
    -      DSUI_EVENT_LOG (DISP_DEFERRER_FAM, EVENT_DEFERRED_DEQUEUE, timer_id, 0, 0);
    -
    -      this->task_->enqueue(qitem);
    -
    -      ++begin;
    -    }
    -
    -  return 0;
    -}
    -
    -} //namespace Kokyu
    diff --git a/ACE/Kokyu/Dispatch_Deferrer.h b/ACE/Kokyu/Dispatch_Deferrer.h
    deleted file mode 100644
    index 6375ed1b865..00000000000
    --- a/ACE/Kokyu/Dispatch_Deferrer.h
    +++ /dev/null
    @@ -1,95 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file   Dispatch_Deferrer.h
    - *
    - *  $Id$
    - *
    - *  @author Bryan Thrall (thrall@cse.wustl.edu)
    - *
    - */
    -
    -#ifndef DISPATCH_DEFERRER_H
    -#define DISPATCH_DEFERRER_H
    -#include /**/ "ace/pre.h"
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -#include "kokyu_export.h"
    -#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"
    -
    -namespace Kokyu
    -{
    -
    -class Dispatch_Task; //forward decl
    -class Dispatch_Queue_Item; //forward decl
    -
    -/**
    - * @class Dispatch_Deferrer
    - *
    - * @brief Part of the Release Guard protocol. When a Dispatch_Command
    - * needs to be dispatched later rather than when dispatch_i() is
    - * called on the Default_Dispatcher_Impl, it is passed to this
    - * object. When the appropriate time to dispatch the Dispatch_Command
    - * comes (last release time + period), this object calls enqueue() on
    - * the Dispatcher_Task.
    - */
    -class Dispatch_Deferrer : public ACE_Event_Handler
    -{
    - public:
    -  Dispatch_Deferrer();
    -  //Default constructor
    -
    -  ~Dispatch_Deferrer();
    -  //Destructor
    -
    -  int init(const Dispatch_Deferrer_Attributes& attr);
    -
    -  int dispatch (Dispatch_Queue_Item *qitem);
    -
    -  virtual int handle_timeout (const ACE_Time_Value ¤t_time,
    -                              const void *act = 0);
    -  //TODO: what if need higher resolution timers?
    -
    - private:
    -  ACE_Deadline_Message_Strategy msg_strat_;
    -
    -  ///Stores the Dispatch_Commands in earliest-release-time order,
    -  ///until they are dispatched. I decided to use an
    -  ///ACE_Dynamic_Message_Queue because it supports deadline
    -  ///ordering. This decision is also good because we can simply store
    -  ///the Dispatch_Queue_Item given to us by the
    -  ///Default_Dispatcher_Impl rather than allocate some structure to
    -  ///hold the Dispatch_Command and QoSDescriptor.
    -  ACE_Dynamic_Message_Queue rgq_;
    -
    -  //Stores timer_ids from the Reactor (longs) using the
    -  //Dispatch_Queue_Item the timer is for as the key. Used to
    -  //cancel timers if they expire and are enqueued before the
    -  //callback happens.
    -  typedef ACE_Map_Manager Timer_Map;
    -
    -  Timer_Map timers_;
    -
    -  ///Manages timers for the Dispatch_Commands
    -  ACE_Reactor react_;
    -
    -  Dispatcher_Task* task_;
    -};
    -
    -} //namespace Kokyu
    -
    -#if defined (__ACE_INLINE__)
    -#include "Dispatch_Deferrer.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#include /**/ "ace/post.h"
    -#endif //DISPATCH_DEFERRER_H
    diff --git a/ACE/Kokyu/Dispatch_Deferrer.inl b/ACE/Kokyu/Dispatch_Deferrer.inl
    deleted file mode 100644
    index 315afce5598..00000000000
    --- a/ACE/Kokyu/Dispatch_Deferrer.inl
    +++ /dev/null
    @@ -1,29 +0,0 @@
    -// $Id$
    -
    -namespace Kokyu
    -{
    -
    -ACE_INLINE
    -Dispatch_Deferrer_Attributes::Dispatch_Deferrer_Attributes()
    -{
    -}
    -
    -ACE_INLINE
    -Dispatch_Deferrer::Dispatch_Deferrer()
    -  : msg_strat_()
    -  , rgq_(this->msg_strat_)
    -  , timers_()
    -  , react_()
    -  , task_(0)
    -{
    -}
    -
    -ACE_INLINE
    -Dispatch_Deferrer::~Dispatch_Deferrer()
    -{
    -  this->react_.close();
    -
    -  this->timers_.close();
    -}
    -
    -} //namespace Kokyu
    diff --git a/ACE/Kokyu/Dispatcher_Impl.cpp b/ACE/Kokyu/Dispatcher_Impl.cpp
    deleted file mode 100644
    index 884cf2dceb2..00000000000
    --- a/ACE/Kokyu/Dispatcher_Impl.cpp
    +++ /dev/null
    @@ -1,19 +0,0 @@
    -// $Id$
    -
    -#include "Dispatcher_Impl.h"
    -
    -#if ! defined (__ACE_INLINE__)
    -#include "Dispatcher_Impl.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, Dispatcher_Impl, "$Id$")
    -
    -namespace Kokyu
    -{
    -
    -//virtual - so don't inline
    -Dispatcher_Impl::~Dispatcher_Impl()
    -{
    -}
    -
    -}
    diff --git a/ACE/Kokyu/Dispatcher_Impl.h b/ACE/Kokyu/Dispatcher_Impl.h
    deleted file mode 100644
    index 668271f042a..00000000000
    --- a/ACE/Kokyu/Dispatcher_Impl.h
    +++ /dev/null
    @@ -1,74 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file   Dispatcher_Impl.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - * Based on previous work by Tim Harrison (harrison@cs.wustl.edu),
    - * Chris Gill, Carlos O'Ryan and other members of the DOC group.
    - */
    -
    -#ifndef DISPATCHER_IMPL_H
    -#define DISPATCHER_IMPL_H
    -#include /**/ "ace/pre.h"
    -
    -#include "Kokyu_defs.h"
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -#include "kokyu_export.h"
    -
    -namespace Kokyu
    -{
    -  /**
    -   * @class Dispatcher
    -   *
    -   * @brief Base class for EC dispatcher implementations
    -   *
    -   * The responsibility of this class is to act as a common base class
    -   * for different EC dispatcher implementations. This is an
    -   * abstract base class and cannot be instantiated.
    -   */
    -  class Kokyu_Export Dispatcher_Impl
    -  {
    -  public:
    -    /// Configure the dispatcher.
    -    int init (const Dispatcher_Attributes&);
    -
    -    int activate ();
    -
    -    /// dispatch a command (eg. event) based on the QoS supplied.
    -    int dispatch (const Dispatch_Command*,
    -                  const QoSDescriptor&);
    -
    -    /// shutdown the dispatcher.
    -    int shutdown ();
    -
    -    virtual ~Dispatcher_Impl();
    -
    -  private:
    -    //following an idiom to avoid public virtual functions.
    -    //instead make them private and use the template method
    -    //pattern - "Virtually Yours" article in CUJ Experts Forum
    -
    -    virtual int init_i (const Dispatcher_Attributes&) =0;
    -    virtual int dispatch_i (const Dispatch_Command*,
    -                            const QoSDescriptor&) =0;
    -    virtual int shutdown_i () =0;
    -    virtual int activate_i () =0;
    -
    -  protected:
    -    int thr_creation_flags_;
    -  };
    -} //end of namespace
    -
    -#if defined (__ACE_INLINE__)
    -#include "Dispatcher_Impl.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#include /**/ "ace/post.h"
    -#endif /* DISPATCHER_IMPL_H */
    diff --git a/ACE/Kokyu/Dispatcher_Impl.inl b/ACE/Kokyu/Dispatcher_Impl.inl
    deleted file mode 100644
    index a1c31d16212..00000000000
    --- a/ACE/Kokyu/Dispatcher_Impl.inl
    +++ /dev/null
    @@ -1,31 +0,0 @@
    -// $Id$
    -
    -namespace Kokyu
    -{
    -
    -ACE_INLINE
    -int Dispatcher_Impl::init (const Dispatcher_Attributes& attr)
    -{
    -  return init_i (attr);
    -}
    -
    -ACE_INLINE
    -int Dispatcher_Impl::dispatch (const Dispatch_Command* cmd,
    -                               const QoSDescriptor& qos_info)
    -{
    -  return dispatch_i (cmd, qos_info);
    -}
    -
    -ACE_INLINE
    -int Dispatcher_Impl::shutdown ()
    -{
    -  return shutdown_i ();
    -}
    -
    -ACE_INLINE
    -int Dispatcher_Impl::activate ()
    -{
    -  return activate_i ();
    -}
    -
    -}
    diff --git a/ACE/Kokyu/Dispatcher_Task.cpp b/ACE/Kokyu/Dispatcher_Task.cpp
    deleted file mode 100644
    index 8cbb9cd97ac..00000000000
    --- a/ACE/Kokyu/Dispatcher_Task.cpp
    +++ /dev/null
    @@ -1,188 +0,0 @@
    -// $Id$
    -
    -#include "Dispatcher_Task.h"
    -
    -#include "ace/Malloc_T.h"
    -#include "ace/OS_NS_errno.h"
    -
    -#if ! defined (__ACE_INLINE__)
    -#include "Dispatcher_Task.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, Dispatcher_Task, "$Id$")
    -
    -namespace
    -//anonymous namespace - use this to avoid polluting the global namespace
    -{
    -  const int ALLOC_POOL_CHUNKS = 200;
    -}
    -
    -namespace Kokyu
    -{
    -
    -typedef ACE_Cached_Allocator
    -Dispatch_Queue_Item_Allocator;
    -
    -int
    -Dispatcher_Task::initialize ()
    -{
    -  switch(curr_config_info_.dispatching_type_)
    -    {
    -    case FIFO_DISPATCHING:
    -      ACE_NEW_RETURN (
    -          this->the_queue_,
    -          ACE_Message_Queue,
    -          -1);
    -      break;
    -
    -    case DEADLINE_DISPATCHING:
    -      ACE_NEW_RETURN (
    -          this->the_queue_,
    -          ACE_Dynamic_Message_Queue (deadline_msg_strategy_),
    -          -1);
    -      break;
    -
    -    case LAXITY_DISPATCHING:
    -      ACE_NEW_RETURN (
    -           this->the_queue_,
    -           ACE_Dynamic_Message_Queue (laxity_msg_strategy_),
    -           -1);
    -      break;
    -
    -    default:
    -      return -1;
    -    }
    -
    -  if (this->the_queue_ != 0)
    -    {
    -      this->msg_queue(this->the_queue_);
    -    }
    -
    -  if (this->allocator_ == 0)
    -    {
    -      ACE_NEW_RETURN (this->allocator_,
    -                      Dispatch_Queue_Item_Allocator(ALLOC_POOL_CHUNKS),
    -                      -1);
    -      own_allocator_ = 1;
    -    }
    -
    -  return 0;
    -}
    -
    -int
    -Dispatcher_Task::svc (void)
    -{
    -  int done = 0;
    -
    -    ACE_hthread_t thr_handle;
    -    ACE_Thread::self (thr_handle);
    -    int prio;
    -
    -    if (ACE_Thread::getprio (thr_handle, prio) == -1)
    -      {
    -        if (errno == ENOTSUP)
    -          {
    -            ACE_DEBUG((LM_DEBUG,
    -                       ACE_TEXT ("getprio not supported on this platform\n")
    -                       ));
    -            return 0;
    -          }
    -        ACE_ERROR_RETURN ((LM_ERROR,
    -                           ACE_TEXT ("%p\n"),
    -                           ACE_TEXT ("getprio failed")),
    -                          -1);
    -      }
    -
    -    //ACE_DEBUG ((LM_DEBUG, "(%t) Dispatcher Thread started prio=%d\n", prio));
    -
    -  while (!done)
    -    {
    -      ACE_Message_Block *mb;
    -      if (this->getq (mb) == -1)
    -        if (ACE_OS::last_error () == ESHUTDOWN)
    -          return 0;
    -        else
    -          ACE_ERROR ((LM_ERROR,
    -                      "EC (%P|%t) getq error in Dispatching Queue\n"));
    -
    -      //ACE_DEBUG ((LM_DEBUG, "(%t) : next command got from queue\n"));
    -
    -      Dispatch_Queue_Item *qitem =
    -        dynamic_cast (mb);
    -
    -      if (qitem == 0)
    -        {
    -          ACE_Message_Block::release (mb);
    -          continue;
    -        }
    -
    -      Dispatch_Command* command = qitem->command ();
    -
    -      ACE_ASSERT(command != 0);
    -      int result = command->execute ();
    -
    -      if (command->can_be_deleted ())
    -        command->destroy ();
    -
    -      ACE_Message_Block::release (mb);
    -
    -      if (result == -1)
    -        done = 1;
    -    }
    -  return 0;
    -}
    -
    -int
    -Dispatcher_Task::enqueue (const Dispatch_Command* cmd,
    -                          const QoSDescriptor& qos_info)
    -{
    -  void* buf = this->allocator_->malloc (sizeof (Dispatch_Queue_Item));
    -
    -  if (buf == 0)
    -    return -1;
    -
    -  ACE_Message_Block *mb =
    -    new (buf) Dispatch_Queue_Item (cmd,
    -                                   qos_info,
    -                                   &(this->data_block_),
    -                                   ACE_Message_Block::DONT_DELETE,
    -                                   this->allocator_);
    -
    -  this->putq (mb);
    -
    -  return 0;
    -}
    -
    -int Dispatcher_Task::get_native_prio ()
    -{
    -  ACE_hthread_t thr_handle;
    -  ACE_Thread::self (thr_handle);
    -  int prio;
    -
    -  if (ACE_Thread::getprio (thr_handle, prio) == -1)
    -  {
    -    if (errno == ENOTSUP)
    -    {
    -      ACE_DEBUG((LM_DEBUG,
    -                 ACE_TEXT ("getprior not supported on this platform\n")
    -               ));
    -      return 0;
    -    }
    -    ACE_ERROR_RETURN ((LM_ERROR,
    -                       ACE_TEXT ("%p\n"),
    -                       ACE_TEXT ("getprio failed")),
    -                      -1);
    -  }
    -
    -  return prio;
    -}
    -
    -void Dispatch_Queue_Item::init_i (const QoSDescriptor& qos_info)
    -{
    -  this->msg_priority (qos_info.preemption_priority_);
    -  this->msg_execution_time (qos_info.execution_time_);
    -  this->msg_deadline_time (qos_info.deadline_);
    -}
    -
    -}
    -
    diff --git a/ACE/Kokyu/Dispatcher_Task.h b/ACE/Kokyu/Dispatcher_Task.h
    deleted file mode 100644
    index 32424d5cf62..00000000000
    --- a/ACE/Kokyu/Dispatcher_Task.h
    +++ /dev/null
    @@ -1,106 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file   Dispatcher_Task.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - * Based on previous work by Tim Harrison (harrison@cs.wustl.edu),
    - * Chris Gill, Carlos O'Ryan and other members of the DOC group.
    - */
    -
    -#ifndef DISPATCHER_TASK_H
    -#define DISPATCHER_TASK_H
    -#include /**/ "ace/pre.h"
    -#include "ace/Task.h"
    -#include "ace/Lock_Adapter_T.h"
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -#include "Kokyu_defs.h"
    -
    -namespace Kokyu
    -{
    -
    -class Dispatch_Queue_Item : public ACE_Message_Block
    -{
    -public:
    -  Dispatch_Queue_Item (
    -        const Dispatch_Command* cmd,
    -        const QoSDescriptor& qos_info,
    -        ACE_Allocator* mb_allocator =0);
    -
    -  Dispatch_Queue_Item (
    -        const Dispatch_Command* cmd,
    -        const QoSDescriptor& qos_info,
    -        ACE_Data_Block* data_block,
    -        int flags,
    -        ACE_Allocator* mb_allocator =0);
    -
    -  Dispatch_Command* command ();
    -
    -private:
    -  void init_i(const QoSDescriptor&);
    -
    -private:
    -  const Dispatch_Command* command_;
    -  QoSDescriptor qos_info_;
    -};
    -
    -/**
    - * @class Dispatcher_Task
    - *
    - * @brief Implement the dispatching queues for FIFO and Priority
    - * dispatching.
    - *
    - */
    -class Dispatcher_Task : public ACE_Task
    -{
    -public:
    -  /// Constructor
    -  Dispatcher_Task (const ConfigInfo& config_info,
    -                   ACE_Thread_Manager* thr_manager = 0);
    -
    -
    -  ~Dispatcher_Task ();
    -  int initialize();
    -
    -  int enqueue (const Dispatch_Command* cmd,
    -           const QoSDescriptor& qos_info);
    -
    -  /// Process the events in the queue.
    -  int svc (void);
    -
    -  const ConfigInfo& get_curr_config_info() const;
    -  Priority_t preemption_priority() const;
    -
    -private:
    -  static int get_native_prio();
    -
    -private:
    -  ConfigInfo curr_config_info_;
    -
    -  ACE_Allocator *allocator_;
    -  int own_allocator_;
    -
    -  /// Helper data structure to minimize memory allocations...
    -  ACE_Locked_Data_Block > data_block_;
    -
    -  /// The queue
    -  ACE_Message_Queue* the_queue_;
    -
    -  ACE_Deadline_Message_Strategy deadline_msg_strategy_;
    -  ACE_Laxity_Message_Strategy laxity_msg_strategy_;
    -};
    -
    -} //end of namespace
    -
    -#if defined (__ACE_INLINE__)
    -#include "Dispatcher_Task.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#include /**/ "ace/post.h"
    -#endif /* DISPATCHER_TASK_H */
    diff --git a/ACE/Kokyu/Dispatcher_Task.inl b/ACE/Kokyu/Dispatcher_Task.inl
    deleted file mode 100644
    index e663509d86b..00000000000
    --- a/ACE/Kokyu/Dispatcher_Task.inl
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -// $Id$
    -
    -namespace Kokyu
    -{
    -ACE_INLINE
    -Dispatcher_Task::Dispatcher_Task (const ConfigInfo& config_info,
    -                                  ACE_Thread_Manager* thr_manager)
    -  :  ACE_Task (thr_manager),
    -     curr_config_info_ (config_info),
    -     allocator_ (config_info.allocator_),
    -     own_allocator_ (0),
    -     deadline_msg_strategy_ (config_info.reordering_flags_.static_bit_field_mask_,
    -                             config_info.reordering_flags_.static_bit_field_shift_,
    -                             config_info.reordering_flags_.dynamic_priority_max_,
    -                             config_info.reordering_flags_.dynamic_priority_offset_),
    -     laxity_msg_strategy_ (config_info.reordering_flags_.static_bit_field_mask_,
    -                           config_info.reordering_flags_.static_bit_field_shift_,
    -                           config_info.reordering_flags_.dynamic_priority_max_,
    -                           config_info.reordering_flags_.dynamic_priority_offset_)
    -{
    -   this->initialize();
    -}
    -
    -ACE_INLINE
    -Dispatcher_Task::~Dispatcher_Task ()
    -{
    -   if (own_allocator_)
    -   {
    -      delete allocator_;
    -   }
    -}
    -
    -ACE_INLINE
    -Priority_t
    -Dispatcher_Task::preemption_priority() const
    -{
    -    return curr_config_info_.preemption_priority_;
    -}
    -
    -
    -ACE_INLINE
    -const ConfigInfo&
    -Dispatcher_Task::get_curr_config_info() const
    -{
    -    return curr_config_info_;
    -}
    -
    -ACE_INLINE
    -Dispatch_Queue_Item::Dispatch_Queue_Item (
    -        const Dispatch_Command* cmd,
    -        const QoSDescriptor& qos_info,
    -        ACE_Data_Block *data_block,
    -        int flags,
    -        ACE_Allocator* mb_allocator)
    - : ACE_Message_Block (data_block, 
    -                      flags, 
    -                      mb_allocator),
    -   command_ (cmd), qos_info_ (qos_info)
    -
    -{
    -   this->init_i (qos_info);
    -}
    -
    -ACE_INLINE
    -Dispatch_Queue_Item::Dispatch_Queue_Item (
    -        const Dispatch_Command* cmd,
    -        const QoSDescriptor& qos_info,
    -        ACE_Allocator* mb_allocator)
    - : ACE_Message_Block (mb_allocator),
    -   command_ (cmd), qos_info_ (qos_info)
    -{
    -   this->init_i (qos_info);
    -}
    -
    -ACE_INLINE
    -Dispatch_Command*
    -Dispatch_Queue_Item::command()
    -{
    -  return const_cast (command_);
    -}
    -}
    diff --git a/ACE/Kokyu/Kokyu.cpp b/ACE/Kokyu/Kokyu.cpp
    deleted file mode 100644
    index 1146f1ee315..00000000000
    --- a/ACE/Kokyu/Kokyu.cpp
    +++ /dev/null
    @@ -1,55 +0,0 @@
    -// $Id$
    -
    -#include "Kokyu.h"
    -
    -#include "Default_Dispatcher_Impl.h"
    -
    -#if ! defined (__ACE_INLINE__)
    -#include "Kokyu.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, Kokyu, "$Id$")
    -
    -namespace Kokyu
    -{
    -
    -int Dispatcher::dispatch (const Dispatch_Command* cmd, const QoSDescriptor& qos)
    -{
    -  return dispatcher_impl_->dispatch (cmd, qos);
    -}
    -
    -int Dispatcher::shutdown ()
    -{
    -  return dispatcher_impl_->shutdown ();
    -}
    -
    -int Dispatcher::activate ()
    -{
    -  return dispatcher_impl_->activate ();
    -}
    -
    -void Dispatcher::implementation (Dispatcher_Impl* impl)
    -{
    -  auto_ptr tmp_impl (impl);
    -  dispatcher_impl_ = tmp_impl;
    -
    -  //I couldn't use reset because MSVC++ auto_ptr does not have reset method.
    -  //So in configurations where the auto_ptr maps to the std::auto_ptr instead
    -  //of ACE auto_ptr, this would be a problem.
    -  //dispatcher_impl_.reset (impl);
    -}
    -
    -Dispatcher*
    -Dispatcher_Factory::
    -create_dispatcher(const Dispatcher_Attributes& attrs)
    -{
    -  Dispatcher* disp;
    -  Dispatcher_Impl* tmp;
    -  ACE_NEW_RETURN (tmp, Default_Dispatcher_Impl, 0);
    -  ACE_NEW_RETURN (disp, Dispatcher, 0);
    -  disp->implementation (tmp);
    -  tmp->init (attrs);
    -  return disp;
    -}
    -
    -}
    diff --git a/ACE/Kokyu/Kokyu.dsui b/ACE/Kokyu/Kokyu.dsui
    deleted file mode 100644
    index ab1e86740a1..00000000000
    --- a/ACE/Kokyu/Kokyu.dsui
    +++ /dev/null
    @@ -1,37 +0,0 @@
    -# DSRT Dispatcher Impl (DSRT_Dispatcher_Impl.cpp)
    -DSTRM_EVENT	DSRT_DISPATCH_IMPL	10	INIT2	0	"Initialize Dispatcher object"	print_string
    -
    -# Dispatcher Task (Dispatcher_Task.cpp)
    -DSTRM_EVENT     DISP_TASK       9       EVENT_DEFERRED  3       "Time event is deferred"        print_string
    -DSTRM_EVENT     DISP_TASK       9       EVENT_FINISHED_DISPATCHING      2       "End time of dispatching event"    print_string
    -DSTRM_EVENT     DISP_TASK       9       EVENT_START_DISPATCHING 1       "Start time of actually dispatching event"    print_string
    -DSTRM_EVENT     DISP_TASK       9       EVENT_DEQUEUED  0       "Time of event duqueue" print_string
    -
    -# Dispatch Deferrer  (Dispatch_Deferrer.cpp)
    -DSTRM_EVENT     DISP_DEFERRER   8       EVENT_DEFERRED_DEQUEUE  1       "Enqueue event in dispatch queue"       print_string
    -DSTRM_EVENT     DISP_DEFERRER   8       EVENT_DEFERRED_ENQUEUE  0       "Buffer event until timer expires"    print_string
    -
    -# DSRT DIRECT Dispatcher (DSRT_DIRECT_Dispatcher_Impl_T.cpp)
    -DSTRM_EVENT     DSRT_DIRECT_DISPATCH        7       SCHEDULE_EXIT   1       "Exit Schedule_i"      print_string
    -DSTRM_EVENT     DSRT_DIRECT_DISPATCH        7       SCHEDULE_ENTER  0       "Enter Schedule_i"      print_string
    -
    -# DSRT CV Dispatcher (DSRT_CV_Dispatcher_Impl_T.cpp)
    -DSTRM_EVENT	DSRT_CV_DISPATCH	6	INIT	13	"Enter DSRT_Dispatcher_Impl init"	print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       SHUTDOWN     12       "Enter shutdown_i function"  print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       CANCEL_SCHEDULE_END     11       "Exit cancel_schedule_i function"  print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       CANCEL_SCHEDULE_START     10       "Enter cancel_schedule_i function"  print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       UPDATE_SCHEDULE_END     9       "Exit update_schedule_i function"  print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       UPDATE_SCHEDULE_START     8       "Enter update_schedule_i function"  print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       RELEASE_GUARD_END     7       "Exit release_guard_i function"  print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       RELEASE_GUARD_START     6       "Enter release_guard_i function"  print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       INIT_I    5       "Initialization"        print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       NONRG_EVENT_RELEASED  4 "Event release time on the server side" print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       RG_DELAYED_EVENT_RELEASED  3       "Event delayed by release guard release time on the server side" print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       RG_EVENT_RELEASED  2       "Release guard Event release time on the server side" print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       SCHEDULE_EXIT   1       "Exit Schedule_i"      print_string
    -DSTRM_EVENT     DSRT_CV_DISPATCH        6       SCHEDULE_ENTER  0       "Enter Schedule_i"      print_string
    -
    -# DSRT_Dispatcher (Kokyu_dsrt.cpp)
    -DSTRM_EVENT	DSRT_DISPATCH	5	CREATE_DSRT_DISPATCH_SCHED_END	2	"Done creating appropriate Scheduler"	print_string
    -DSTRM_EVENT	DSRT_DISPATCH	5	CREATE_DSRT_DISPATCH_SCHED_START	1	"Create appropriate Scheduler"	print_string
    -DSTRM_EVENT	DSRT_DISPATCH	5	SCHEDULE	0	"Schedule task"	print_string
    diff --git a/ACE/Kokyu/Kokyu.h b/ACE/Kokyu/Kokyu.h
    deleted file mode 100644
    index 67cd6329c01..00000000000
    --- a/ACE/Kokyu/Kokyu.h
    +++ /dev/null
    @@ -1,115 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file   Kokyu.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - * Based on previous work by Tim Harrison Chris Gill,
    - * Carlos O'Ryan and other members of the DOC group.
    - */
    -
    -#ifndef KOKYU_H
    -#define KOKYU_H
    -#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"
    -
    -//Currently I am not seeing a way to avoid including these here. The
    -//whole purpose of the pImpl idiom is to avoid this dependency. But
    -//using the auto_ptr<> to store the implementation causes a compile
    -//error (in the destructor) that the implementation definition is not
    -//found. Note that the auto-ptr::~auto_ptr() calls delete on the
    -//internal pointer and at this point the class definition needs to be
    -//visible. Need to revisit this and see whether there is a work
    -//around.
    -#include "Dispatcher_Impl.h"
    -
    -//#################################################################
    -//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 
    -//are a user of this interface, kindly let us know so that we can
    -//coordinate with you when we refactor this interface.
    -//##################################################################
    -
    -namespace Kokyu
    -{
    -  //class Dispatcher_Impl;
    -
    -  /**
    -   * @class Dispatcher
    -   *
    -   * @brief Interface class for dynamic scheduling of events
    -   *
    -   * The responsibility of this class is to forward all methods to
    -   * its delegation/implementation class, e.g.,
    -   * @c Default_Dispatcher_Impl. This class follows the pImpl idiom
    -   * or the bridge pattern to separate the implementation from the interface.
    -   * Dispatcher is the class that users will be using to achieve
    -   * dynamic dispatching of events in an event channel.
    -   */
    -  class Kokyu_Export Dispatcher : private ACE_Copy_Disabled
    -  {
    -  public:
    -    /// Dispatch a command object based on the qos info supplied.
    -    int dispatch (const Dispatch_Command*, const QoSDescriptor&);
    -
    -    /// Shut down the dispatcher. The dispatcher will stop processing requests.
    -    int shutdown ();
    -
    -    /// Supply this interface with an appripriate implementation.
    -    void implementation (Dispatcher_Impl*);
    -
    -    int activate ();
    -
    -    /// Non virtual destructor. Read as this class not available
    -    /// for inheritance.
    -    ~Dispatcher ();
    -  private:
    -    /// Auto ptr to the implementation. Implementation will be created on the
    -    /// heap and deleted automatically when the dispatcher object is destructed.
    -    auto_ptr dispatcher_impl_;
    -  };
    -
    -  typedef auto_ptr Dispatcher_Auto_Ptr;
    -
    -  /**
    -   * @class Dispatcher_Factory
    -   *
    -   * @brief Factory class to create one of the dispatcher interface
    -   * objects - for events.
    -   *
    -   * Factory class creates a dispatcher for EC and configures the
    -   * interface object with the appropriate implementation.
    -   */
    -  class Kokyu_Export Dispatcher_Factory : private ACE_Copy_Disabled
    -    {
    -    public:
    -      /**
    -       * Create a dispatcher for dynamic dispatching of commands
    -       * (eg. events). The caller is responsible for freeing the
    -       * returned dynamically allocated memory.
    -       *
    -       * @param config Configuration information for the dispatcher.
    -       *
    -       * @return pointer to the dispatcher.
    -       */
    -      static Dispatcher*
    -      create_dispatcher (const Dispatcher_Attributes& attr);
    -    };
    -} //end of namespace
    -
    -#if defined (__ACE_INLINE__)
    -#include "Kokyu.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#include /**/ "ace/post.h"
    -#endif /* KOKYU_H */
    diff --git a/ACE/Kokyu/Kokyu.inl b/ACE/Kokyu/Kokyu.inl
    deleted file mode 100644
    index 0de9481c16d..00000000000
    --- a/ACE/Kokyu/Kokyu.inl
    +++ /dev/null
    @@ -1,10 +0,0 @@
    -// $Id$
    -
    -namespace Kokyu
    -{
    -ACE_INLINE
    -Dispatcher::~Dispatcher()
    -{
    -}
    -
    -}
    diff --git a/ACE/Kokyu/Kokyu.mpc b/ACE/Kokyu/Kokyu.mpc
    deleted file mode 100644
    index 592f7acd14b..00000000000
    --- a/ACE/Kokyu/Kokyu.mpc
    +++ /dev/null
    @@ -1,27 +0,0 @@
    -//  -*- MPC -*- now wouldn't this be cool...
    -// $Id$
    -
    -project(Kokyu) : acelib, ace_output, install {
    -  sharedname  = Kokyu
    -  dynamicflags = KOKYU_BUILD_DLL
    -
    -  Source_Files {
    -    Dispatcher_Impl.cpp
    -    Kokyu.cpp
    -    Default_Dispatcher_Impl.cpp
    -    Dispatcher_Task.cpp
    -    Kokyu_defs.cpp
    -  }
    -
    -  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
    -  }
    -
    -  Pkgconfig_Files {
    -    Kokyu.pc.in
    -  }
    -}
    diff --git a/ACE/Kokyu/Kokyu.mwc b/ACE/Kokyu/Kokyu.mwc
    deleted file mode 100644
    index dd297256b34..00000000000
    --- a/ACE/Kokyu/Kokyu.mwc
    +++ /dev/null
    @@ -1,5 +0,0 @@
    -// -*- MPC -*-
    -// $Id$
    -
    -workspace {
    -}
    diff --git a/ACE/Kokyu/Kokyu.pc.in b/ACE/Kokyu/Kokyu.pc.in
    deleted file mode 100644
    index f0130540d25..00000000000
    --- a/ACE/Kokyu/Kokyu.pc.in
    +++ /dev/null
    @@ -1,11 +0,0 @@
    -prefix=@prefix@
    -exec_prefix=@exec_prefix@
    -libdir=@libdir@
    -includedir=@includedir@
    -
    -Name: Kokyu
    -Description: Kokyu Scheduling Framework
    -Requires: ACE
    -Version: @VERSION@
    -Libs: -L${libdir} -lKokyu
    -Cflags: -I${includedir}
    diff --git a/ACE/Kokyu/Kokyu_defs.cpp b/ACE/Kokyu/Kokyu_defs.cpp
    deleted file mode 100644
    index 8ba5c907429..00000000000
    --- a/ACE/Kokyu/Kokyu_defs.cpp
    +++ /dev/null
    @@ -1,66 +0,0 @@
    -// $Id$
    -
    -#include "Kokyu_defs.h"
    -
    -#if ! defined (__ACE_INLINE__)
    -#include "Kokyu_defs.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, Kokyu_defs, "$Id$")
    -
    -namespace Kokyu
    -{
    -   Dispatch_Command::~Dispatch_Command (void)
    -   {
    -   }
    -
    -  DSRT_ConfigInfo::DSRT_ConfigInfo ()
    -    :sched_policy_ (ACE_SCHED_RR),
    -     sched_scope_ (ACE_SCOPE_THREAD)
    -  {
    -  }
    -
    -Dispatcher_Attributes::Dispatcher_Attributes()
    -    :immediate_activation_ (0),
    -     sched_policy_ (ACE_SCHED_FIFO),
    -     sched_scope_ (ACE_SCOPE_THREAD),
    -     base_thread_creation_flags_ (THR_NEW_LWP | THR_BOUND | THR_JOINABLE)
    -{
    -}
    -
    -int Dispatcher_Attributes::thread_creation_flags () const
    -{
    -   int thread_creation_flags = base_thread_creation_flags_;
    -
    -   switch (sched_policy_)
    -   {
    -      case ACE_SCHED_FIFO:
    -         thread_creation_flags |= THR_SCHED_FIFO;
    -         break;
    -
    -      case ACE_SCHED_OTHER:
    -         thread_creation_flags |= THR_SCHED_DEFAULT;
    -         break;
    -
    -      case ACE_SCHED_RR:
    -         thread_creation_flags |= THR_SCHED_RR;
    -         break;
    -   }
    -
    -   switch (sched_scope_)
    -   {
    -      case ACE_SCOPE_PROCESS:
    -      case ACE_SCOPE_LWP:
    -         thread_creation_flags |= THR_SCOPE_PROCESS;
    -         break;
    -
    -      case ACE_SCOPE_THREAD:
    -      default:
    -         thread_creation_flags |= THR_SCOPE_SYSTEM;
    -         break;
    -   }
    -   return thread_creation_flags;
    -}
    -
    -}
    -
    diff --git a/ACE/Kokyu/Kokyu_defs.h b/ACE/Kokyu/Kokyu_defs.h
    deleted file mode 100644
    index 721b87e522f..00000000000
    --- a/ACE/Kokyu/Kokyu_defs.h
    +++ /dev/null
    @@ -1,191 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file   Kokyu_defs.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - */
    -
    -#ifndef KOKYU_DEFS_H
    -#define KOKYU_DEFS_H
    -#include /**/ "ace/pre.h"
    -#include "ace/Array.h"
    -#include "ace/Time_Value.h"
    -#include "ace/Auto_Ptr.h"
    -#include "ace/Message_Block.h"
    -#include "ace/Sched_Params.h"
    -#include "ace/Malloc_Allocator.h"
    -
    -#if !defined (ACE_LACKS_PRAGMA_ONCE)
    -# pragma once
    -#endif /* ACE_LACKS_PRAGMA_ONCE */
    -
    -#include "kokyu_export.h"
    -
    -namespace Kokyu
    -{
    -  typedef long Priority_t;
    -  typedef ACE_Time_Value Deadline_t; //absolute deadline
    -  typedef ACE_Time_Value Execution_Time_t; //execution time
    -  //typedef int Guid_t;
    -
    -  enum Dispatching_Type_t
    -    // Defines the type of prioritization strategy
    -    // to be used by a dispatching queue
    -    {
    -      FIFO_DISPATCHING,
    -      DEADLINE_DISPATCHING,
    -      LAXITY_DISPATCHING
    -    };
    -
    -  enum Criticality_t
    -    // Defines the criticality of the operation.
    -    // For use with Dynamic Scheduler.
    -    {
    -      VERY_LOW_CRITICALITY,
    -      LOW_CRITICALITY,
    -      MEDIUM_CRITICALITY,
    -      HIGH_CRITICALITY,
    -      VERY_HIGH_CRITICALITY
    -    };
    -
    -  enum Importance_t
    -    // Defines the importance of the operation,
    -    // which can be used by the RtecScheduler as a
    -    // "tie-breaker" when other scheduling
    -    // parameters are equal.
    -    {
    -      VERY_LOW_IMPORTANCE,
    -      LOW_IMPORTANCE,
    -      MEDIUM_IMPORTANCE,
    -      HIGH_IMPORTANCE,
    -      VERY_HIGH_IMPORTANCE
    -    };
    -
    -  struct Kokyu_Export Reordering_Queue_Attributes
    -  {
    -    Reordering_Queue_Attributes ();
    -    unsigned long static_bit_field_mask_;
    -    unsigned long static_bit_field_shift_;
    -    unsigned long dynamic_priority_max_;
    -    unsigned long dynamic_priority_offset_;
    -  };
    -
    -  struct Kokyu_Export ConfigInfo
    -  {
    -    Priority_t preemption_priority_;
    -
    -    // OS priority of the dispatching thread associated with the queue
    -    Priority_t thread_priority_;
    -
    -    // type of dispatching queue
    -    Dispatching_Type_t dispatching_type_;
    -
    -    //allocator to be used for dynamic memory allocation. If each
    -    //thread gets its own memory pool, contention will be less
    -    ACE_Allocator *allocator_;
    -
    -    Reordering_Queue_Attributes reordering_flags_;
    -
    -    ConfigInfo ();
    -  };
    -
    -  typedef ACE_Array ConfigInfoSet;
    -
    -  class Kokyu_Export Dispatcher_Attributes
    -  {
    -  public:
    -    ConfigInfoSet config_info_set_;
    -    int immediate_activation_;
    -
    -  public:
    -    Dispatcher_Attributes ();
    -    void sched_policy (int);
    -    void sched_scope (int);
    -    int thread_creation_flags () const;
    -
    -  private:
    -    int sched_policy_;
    -    int sched_scope_;
    -    int base_thread_creation_flags_;
    -  };
    -
    -
    -  struct Kokyu_Export QoSDescriptor
    -  {
    -    Priority_t preemption_priority_;
    -    Deadline_t deadline_;
    -    Execution_Time_t execution_time_;
    -    Importance_t importance_;
    -  };
    -
    -  enum Block_Flag_t {BLOCK, UNBLOCK};
    -
    -  class Kokyu_Export Dispatch_Command
    -    {
    -    public:
    -      Dispatch_Command(int dont_delete = 0,
    -                       ACE_Allocator *allocator = 0);
    -      //dont_delete indicates whether this object needs to be deleted once processed.
    -      //allocator indicates the ACE_Allocator, if any, from which this object was created.
    -      //This same allocator has to be used for the deletion also
    -
    -      /// Command callback
    -      virtual int execute () = 0;
    -
    -      int can_be_deleted () const;
    -
    -      void destroy (void);
    -    protected:
    -      /// Destructor
    -      // only inheritance is possible and object should be on heap,
    -      // since object could be handed over to a different thread.
    -      virtual ~Dispatch_Command (void);
    -
    -    private:
    -      int dont_delete_;
    -      ACE_Allocator *allocator_;
    -      //if this object has to be deleted, then delete it using the allocator
    -      //if one is present.
    -    };
    -
    -  enum DSRT_Sched_Type_t
    -    {
    -      DSRT_FP,
    -      DSRT_MUF,
    -      DSRT_MIF
    -    };
    -
    -  enum DSRT_Dispatcher_Impl_t
    -    {
    -      DSRT_CV_BASED,
    -      DSRT_OS_BASED
    -    };
    -
    -  struct Kokyu_Export DSRT_ConfigInfo
    -  {
    -    //not used currently
    -    DSRT_Sched_Type_t sched_strategy_;
    -
    -    ACE_Sched_Params::Policy sched_policy_;
    -    int sched_scope_;
    -
    -    //type of implementation
    -    DSRT_Dispatcher_Impl_t impl_type_;
    -
    -    DSRT_ConfigInfo ();
    -  };
    -
    -} //end of namespace
    -
    -//to satisfy ACE_Array
    -ACE_INLINE bool operator != (const Kokyu::ConfigInfo& lhs, const Kokyu::ConfigInfo& rhs);
    -
    -#if defined (__ACE_INLINE__)
    -#include "Kokyu_defs.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#include /**/ "ace/post.h"
    -#endif /* KOKYU_DEFS_H */
    diff --git a/ACE/Kokyu/Kokyu_defs.inl b/ACE/Kokyu/Kokyu_defs.inl
    deleted file mode 100644
    index 0cf793c2a1a..00000000000
    --- a/ACE/Kokyu/Kokyu_defs.inl
    +++ /dev/null
    @@ -1,86 +0,0 @@
    -// $Id$
    -
    -
    -namespace Kokyu
    -{
    -
    -ACE_INLINE
    -void Dispatcher_Attributes::sched_policy(int policy)
    -{
    -  sched_policy_ = policy;
    -}
    -
    -ACE_INLINE
    -void Dispatcher_Attributes::sched_scope(int scope)
    -{
    -  sched_scope_ = scope;
    -}
    -
    -ACE_INLINE
    -Reordering_Queue_Attributes::Reordering_Queue_Attributes ()
    -  :static_bit_field_mask_ (0), // not used
    -   static_bit_field_shift_ (0), // not used
    -   dynamic_priority_max_ (0x7FFFFFFFUL), // 2^31-1
    -   dynamic_priority_offset_ (0x08000000UL) // 15/16th of dynamic prio range
    -{
    -  //bits for static priority = 0
    -  //max dynamic prio = 2^31 - 1
    -  //pending offset = 15/16th of the dynamic prio range
    -  //which means that the LATE population will be in the
    -  //1/16th part of the range.
    -
    -  //For the Laxity and Deadline strategies these are the
    -  //defaults defined in Message_Block.h
    -  //static_bit_field_mask (0x3FFUL), // 2^(10) - 1
    -  //static_bit_field_shift (10), // 10 low order bits
    -  //dynamic_priority_max (0x3FFFFFUL), // 2^(22)-1
    -  //dynamic_priority_offset (0x200000UL) // 2^(22-1)
    -}
    -
    -ACE_INLINE
    -Dispatch_Command::Dispatch_Command (int dont_delete,
    -        ACE_Allocator *allocator)
    -        :dont_delete_ (dont_delete),
    -        allocator_ (allocator)
    -{
    -}
    -
    -ACE_INLINE
    -int Dispatch_Command::can_be_deleted (void) const
    -{
    -  return !dont_delete_;
    -}
    -
    -ACE_INLINE
    -void Dispatch_Command::destroy (void)
    -{
    -  if (allocator_)
    -  {
    -    allocator_->free (this);
    -  }
    -  else
    -  {
    -    delete this;
    -  }
    -}
    -
    -ACE_INLINE
    -ConfigInfo::ConfigInfo ()
    -  :preemption_priority_ (0),
    -   thread_priority_ (0),
    -   dispatching_type_ (FIFO_DISPATCHING),
    -   allocator_ (0)
    -{
    -}
    -
    -}
    -
    -//to satisfy ACE_Array
    -ACE_INLINE
    -bool operator != (const Kokyu::ConfigInfo& lhs,
    -                  const Kokyu::ConfigInfo& rhs)
    -{
    -  return (lhs.preemption_priority_ != rhs.preemption_priority_ ||
    -          lhs.thread_priority_ != rhs.thread_priority_ ||
    -          lhs.dispatching_type_ != rhs.dispatching_type_ );
    -}
    diff --git a/ACE/Kokyu/Kokyu_dsrt.cpp b/ACE/Kokyu/Kokyu_dsrt.cpp
    deleted file mode 100644
    index 31b3beec2a4..00000000000
    --- a/ACE/Kokyu/Kokyu_dsrt.cpp
    +++ /dev/null
    @@ -1,179 +0,0 @@
    -// $Id$
    -
    -#include "Kokyu_dsrt.h"
    -
    -#include "ace/Dynamic_Service.h"
    -#include "DSRT_Direct_Dispatcher_Impl_T.h"
    -#include "DSRT_CV_Dispatcher_Impl_T.h"
    -
    -#if ! defined (__ACE_INLINE__)
    -#include "Kokyu_dsrt.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -ACE_RCSID(Kokyu, Kokyu, "$Id$")
    -
    -namespace Kokyu
    -{
    -
    -template 
    -void
    -DSRT_Dispatcher::implementation (DSRT_Dispatcher_Impl* impl)
    -{
    -  auto_ptr > tmp_impl (impl);
    -  dispatcher_impl_ = tmp_impl;
    -}
    -
    -template 
    -int
    -DSRT_Dispatcher::schedule (Guid_t guid, const DSRT_QoSDescriptor& qos)
    -{
    -  return dispatcher_impl_->schedule (guid, qos);
    -}
    -
    -template 
    -int
    -DSRT_Dispatcher::update_schedule (Guid_t guid, const DSRT_QoSDescriptor& qos)
    -{
    -  return dispatcher_impl_->update_schedule (guid, qos);
    -}
    -
    -template 
    -int
    -DSRT_Dispatcher::update_schedule (Guid_t guid, Kokyu::Block_Flag_t flag)
    -{
    -  return dispatcher_impl_->update_schedule (guid, flag);
    -}
    -
    -template 
    -int
    -DSRT_Dispatcher::cancel_schedule (Guid_t guid)
    -{
    -  return dispatcher_impl_->cancel_schedule (guid);
    -}
    -
    -template 
    -int DSRT_Dispatcher::shutdown ()
    -{
    -  return dispatcher_impl_->shutdown ();
    -}
    -
    -template 
    -DSRT_Dispatcher*
    -DSRT_Dispatcher_Factory::
    -create_DSRT_dispatcher (const DSRT_ConfigInfo& config_info)
    -{
    -  ACE_UNUSED_ARG ((config_info));
    -
    -  DSRT_Dispatcher_Impl* tmp;
    -  DSRT_Dispatcher* disp;
    -
    -  switch (config_info.impl_type_)
    -    {
    -    case DSRT_OS_BASED:
    -      ACE_NEW_RETURN (tmp, 
    -                      DSRT_Direct_Dispatcher_Impl (
    -                      config_info.sched_policy_, 
    -                      config_info.sched_scope_), 
    -                      0);
    -      break;
    -
    -    case DSRT_CV_BASED:
    -    default:
    -      ACE_NEW_RETURN (tmp, 
    -                      DSRT_CV_Dispatcher_Impl(
    -                      config_info.sched_policy_, 
    -                      config_info.sched_scope_), 
    -                      0);
    -      break;
    -    }
    -    
    -  ACE_ASSERT (tmp != 0);
    -  ACE_NEW_RETURN (disp, DSRT_Dispatcher, 0);
    -  disp->implementation (tmp);
    -  tmp->init (config_info);
    -  return disp;
    -}
    -
    -template 
    -int MUF_Comparator::
    -operator ()(const QoSDescriptor_t& qos1,
    -            const QoSDescriptor_t& qos2)
    -{
    -  if (qos1.criticality_ > qos2.criticality_)
    -    {
    -      return 1;
    -    }
    -  else if (qos2.criticality_ > qos1.criticality_)
    -    {
    -      return -1;
    -    }
    -
    -  typename QoSDescriptor_t::Now now_functor;
    -  Time_t now = now_functor ();
    -
    -  Time_t exec_time1 = qos1.exec_time_;
    -  Time_t deadline1 = qos1.deadline_;
    -  Time_t laxity1 = deadline1 - now - exec_time1;
    -  Time_t exec_time2 = qos2.exec_time_;
    -  Time_t deadline2 = qos2.deadline_;
    -  Time_t laxity2 = deadline2 - now - exec_time2;
    -
    -  if (laxity1 < laxity2)
    -    {
    -      return 1;
    -    }
    -  else if (laxity1 == laxity2)
    -    {
    -      return 0;
    -    }
    -  else
    -    {
    -      return -1;
    -    }
    -}
    -
    -template 
    -int MIF_Comparator::
    -operator ()(const QoSDescriptor& qos1,
    -            const QoSDescriptor& qos2)
    -{
    -#ifdef KOKYU_DSRT_LOGGING
    -  ACE_DEBUG ((LM_DEBUG, 
    -              "(%t|%T):qos1.importance = %d, qos2.importance = %d\n",
    -              qos1.importance_, qos2.importance_));
    -#endif  
    -
    -  if (qos1.importance_ > qos2.importance_)
    -    {
    -      return 1;
    -    }
    -  else if (qos1.importance_ == qos2.importance_)
    -    {
    -      return 0;
    -    }
    -  else
    -    {
    -      return -1;
    -    }
    -}
    -
    -template 
    -int Fixed_Priority_Comparator::
    -operator ()(const QoSDescriptor& qos1,
    -            const QoSDescriptor& qos2)
    -{
    -  if (qos1.priority_ > qos2.priority_)
    -    {
    -      return 1;
    -    }
    -  else if (qos1.priority_ == qos2.priority_)
    -    {
    -      return 0;
    -    }
    -  else
    -    {
    -      return -1;
    -    }
    -}
    -
    -}
    diff --git a/ACE/Kokyu/Kokyu_dsrt.h b/ACE/Kokyu/Kokyu_dsrt.h
    deleted file mode 100644
    index c10d429e062..00000000000
    --- a/ACE/Kokyu/Kokyu_dsrt.h
    +++ /dev/null
    @@ -1,177 +0,0 @@
    -/* -*- C++ -*- */
    -/**
    - *  @file   Kokyu_dsrt.h
    - *
    - *  $Id$
    - *
    - *  @author Venkita Subramonian (venkita@cs.wustl.edu)
    - *
    - */
    -
    -#ifndef KOKYU_DSRT_H
    -#define KOKYU_DSRT_H
    -#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"
    -
    -namespace Kokyu
    -{
    -
    -  template  class DSRT_Dispatcher_Impl;
    -
    -  /**
    -   * @class DSRT_Dispatcher
    -   *
    -   * @brief Interface class for dynamic scheduling of threads
    -   *
    -   * The responsibility of this class is to forward all methods to
    -   * its delegation/implementation class, e.g.,
    -   * @c Default_DSRT_Dispatcher_Impl. This class follows the pImpl idiom
    -   * or the bridge pattern to separate the implementation from the interface.
    -   * DSRT_Dispatcher is the class that users will be using to achieve
    -   * dynamic scheduling of threads.
    -   */
    -  template 
    -  class DSRT_Dispatcher : private ACE_Copy_Disabled
    -  {
    -  public:
    -    typedef typename DSRT_Scheduler_Traits::Guid_t Guid_t;
    -    typedef typename DSRT_Scheduler_Traits::QoSDescriptor_t DSRT_QoSDescriptor;
    -
    -    // = Scheduling methods.
    -
    -    /// Schedule a thread dynamically based on the qos info supplied.
    -    int schedule (Guid_t guid, const DSRT_QoSDescriptor&);
    -
    -    /// Update the schedule for a thread. This could alter the current schedule.
    -    int update_schedule (Guid_t guid, const DSRT_QoSDescriptor&);
    -
    -    /// Inform the scheduler that the caller thread is about to
    -    /// block. This could alter the current schedule.
    -    int update_schedule (Guid_t guid, Kokyu::Block_Flag_t flag);
    -
    -    /// Cancel the schedule for a thread. This could alter the current schedule.
    -    int cancel_schedule (Guid_t guid);
    -
    -    /// Supply this interface with an appropriate implementation.
    -    void implementation (DSRT_Dispatcher_Impl*);
    -
    -    // = Termination methods.
    -
    -    /// Shut down the dispatcher. The dispatcher will stop processing requests.
    -    int shutdown ();
    -
    -    /// Non virtual destructor. Read as this class not available
    -    /// for inheritance.
    -    ~DSRT_Dispatcher ();
    -
    -  private:
    -    /// Auto ptr to the implementation. Implementation will be created on the
    -    /// heap and deleted automatically when the dispatcher object is destructed.
    -    auto_ptr > dispatcher_impl_;
    -  };
    -
    -
    -  /**
    -   * @class DSRT_Dispatcher_Factory
    -   *
    -   * @brief Factory class to create one of the dispatcher interface
    -   * objects - for events or DSRT threads.
    -   *
    -   * Factory class creates a dispatcher or DSRT dispatcher and configures
    -   * the interface object with the appropriate implementation.
    -   */
    -
    -  template 
    -  class DSRT_Dispatcher_Factory : private ACE_Copy_Disabled
    -    {
    -    public:
    -      typedef auto_ptr > DSRT_Dispatcher_Auto_Ptr;
    -
    -      /**
    -       * Create a dispatcher for dynamic dispatching of threads.
    -       * This will be used to dynamic scheduling of distributable threads for
    -       * DSRTCORBA. The caller is responsible for freeing the memory.
    -       *
    -       * @param config Configuration information for the DSRT dispatcher.
    -       *
    -       * @return pointer to the DSRT dispatcher.
    -       */
    -      static DSRT_Dispatcher* create_DSRT_dispatcher (const DSRT_ConfigInfo&);
    -    };
    -
    -  /**
    -   * @class MIF_Sched_Strategy
    -   *
    -   * @brief Strategy class implementing Maximum Importance First
    -   * reordering strategy.
    -   *
    -   */
    -  template 
    -  class MIF_Comparator
    -  {
    -  public:
    -    typedef typename QoSDesc::Importance_t Importance_t;
    -
    -    int operator ()(const QoSDesc& qos1,
    -                    const QoSDesc& qos2);
    -  };
    -
    -  /**
    -   * @class Fixed_Priority_Sched_Strategy
    -   *
    -   * @brief Strategy class implementing Fixed Priority reordering
    -   * strategy.
    -   *
    -   */
    -  template 
    -  class Fixed_Priority_Comparator
    -  {
    -  public:
    -    typedef typename QoSDesc::Priority_t Priority_t;
    -
    -    int operator ()(const QoSDesc& qos1,
    -                    const QoSDesc& qos2);
    -  };
    -
    -  /**
    -   * @class MUF_Sched_Strategy
    -   *
    -   * @brief Strategy class implementing Maximum Urgency First
    -   * reordering strategy.
    -   *
    -   */
    -  template 
    -  class MUF_Comparator
    -  {
    -    public:
    -    typedef typename QoSDesc::Criticality_t Criticality_t;
    -    typedef typename QoSDesc::Time_t Time_t;
    -
    -    int operator ()(const QoSDesc& qos1,
    -                    const QoSDesc& qos2);
    -  };
    -
    -
    -} //end of namespace
    -
    -#if defined (__ACE_INLINE__)
    -#include "Kokyu_dsrt.inl"
    -#endif /* __ACE_INLINE__ */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
    -#include "Kokyu_dsrt.cpp"
    -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
    -
    -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
    -#pragma implementation ("Kokyu_dsrt.cpp")
    -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
    -
    -#include /**/ "ace/post.h"
    -#endif /* KOKYU_DSRT_H */
    diff --git a/ACE/Kokyu/Kokyu_dsrt.inl b/ACE/Kokyu/Kokyu_dsrt.inl
    deleted file mode 100644
    index 1f9caf3c234..00000000000
    --- a/ACE/Kokyu/Kokyu_dsrt.inl
    +++ /dev/null
    @@ -1,11 +0,0 @@
    -// $Id$
    -
    -namespace Kokyu
    -{
    -template 
    -ACE_INLINE
    -DSRT_Dispatcher::~DSRT_Dispatcher()
    -{
    -}
    -}
    -
    diff --git a/ACE/Kokyu/Makefile.am b/ACE/Kokyu/Makefile.am
    deleted file mode 100644
    index 86deb01005e..00000000000
    --- a/ACE/Kokyu/Makefile.am
    +++ /dev/null
    @@ -1,87 +0,0 @@
    -##  Process this file with automake to create Makefile.in
    -##
    -## $Id$
    -##
    -## This file was generated by MPC.  Any changes made directly to
    -## this file will be lost the next time it is generated.
    -##
    -## MPC Command:
    -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc
    -
    -includedir = @includedir@/Kokyu
    -pkgconfigdir = @libdir@/pkgconfig
    -
    -ACE_BUILDDIR = $(top_builddir)
    -ACE_ROOT = $(top_srcdir)
    -
    -SUBDIRS = \
    -        . \
    -        tests
    -
    -## Makefile.Kokyu.am
    -
    -lib_LTLIBRARIES = libKokyu.la
    -
    -libKokyu_la_CPPFLAGS = \
    -  -I$(ACE_ROOT) \
    -  -I$(ACE_BUILDDIR) \
    -  -DKOKYU_BUILD_DLL
    -
    -libKokyu_la_SOURCES = \
    -  Default_Dispatcher_Impl.cpp \
    -  Dispatcher_Impl.cpp \
    -  Dispatcher_Task.cpp \
    -  Kokyu.cpp \
    -  Kokyu_defs.cpp
    -
    -libKokyu_la_LDFLAGS = \
    - -release @ACE_VERSION_NAME@
    -
    -libKokyu_la_LIBADD = \
    -  $(ACE_BUILDDIR)/ace/libACE.la
    -
    -nobase_include_HEADERS = \
    -  DSRT_Direct_Dispatcher_Impl_T.cpp \
    -  DSRT_Direct_Dispatcher_Impl_T.h \
    -  DSRT_Dispatch_Item_T.cpp \
    -  DSRT_Dispatch_Item_T.h \
    -  DSRT_Dispatch_Item_T.inl \
    -  DSRT_Dispatcher_Impl_T.cpp \
    -  DSRT_Dispatcher_Impl_T.h \
    -  DSRT_Dispatcher_Impl_T.inl \
    -  DSRT_Sched_Queue_T.cpp \
    -  DSRT_Sched_Queue_T.h \
    -  Default_Dispatcher_Impl.h \
    -  Default_Dispatcher_Impl.inl \
    -  Dispatcher_Impl.h \
    -  Dispatcher_Impl.inl \
    -  Dispatcher_Task.h \
    -  Dispatcher_Task.inl \
    -  Kokyu.h \
    -  Kokyu.inl \
    -  Kokyu_defs.h \
    -  Kokyu_defs.inl \
    -  Kokyu_dsrt.cpp \
    -  Kokyu_dsrt.h \
    -  Kokyu_dsrt.inl
    -
    -pkgconfig_DATA = \
    -  Kokyu.pc
    -
    -CLEANFILES = \
    -  Kokyu.pc
    -
    -Kokyu.pc: ${top_builddir}/config.status ${srcdir}/Kokyu.pc.in
    -	${top_builddir}/config.status --file $@:${srcdir}/Kokyu.pc.in
    -
    -EXTRA_DIST = \
    -  Kokyu.pc.in
    -
    -
    -## Clean up template repositories, etc.
    -clean-local:
    -	-rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.*
    -	-rm -f gcctemp.c gcctemp so_locations *.ics
    -	-rm -rf cxx_repository ptrepository ti_files
    -	-rm -rf templateregistry ir.out
    -	-rm -rf ptrepository SunWS_cache Templates.DB
    diff --git a/ACE/Kokyu/README b/ACE/Kokyu/README
    deleted file mode 100644
    index 9db0e95225b..00000000000
    --- a/ACE/Kokyu/README
    +++ /dev/null
    @@ -1,22 +0,0 @@
    -# $Id:
    -
    -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 1.2 scheduler
    -implementations. For more information, see
    -
    -ACE_wrappers/Kokyu/docs/Kokyu.html
    -
    -To build Kokyu on Unix systems, from under $ACE_ROOT/Kokyu do
    -
    -make
    -
    -To build Kokyu on Windows, open the workspace
    -$ACE_ROOT/Kokyu/Kokyu.dsw and build it.
    -
    -An mpc file has also been provided - $ACE_ROOT/Kokyu/Kokyu.mpc from
    -which IDE specific build files can be generated.
    diff --git a/ACE/Kokyu/docs/Kokyu.html b/ACE/Kokyu/docs/Kokyu.html
    deleted file mode 100644
    index bb4505eb9e6..00000000000
    --- a/ACE/Kokyu/docs/Kokyu.html
    +++ /dev/null
    @@ -1,416 +0,0 @@
    -
    -
    -
    -
    -   
    -   
    -   
    -   Kokyu
    -
    -
    -
    -
    -

    -Kokyu - A middleware framework for flexible scheduling -and dispatching

    -
    Introduction -
    Strategized Scheduling framework -
    Flexible Dispatching Framework -
    Use of Kokyu within the TAO Real-time Event Channel(RTEC) -
    Configuration of RTEC to use Kokyu dispatching -
    Use of Kokyu within the Dynamic Scheduling -Real-time CORBA (DSRTCORBA) schedulers -
    How to write a new DSRT scheduler using Kokyu -
    Kokyu DSRTCORBA vs Kokyu RTEC -
    Current status -
    Future work -
    Papers on Kokyu -
      -

    -Introduction

    -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 CORBA Event Service, which mediates supplier-consumer -relationships between application operations. Kokyu consists primarily -of two cooperating infrastructure segments, illustrated in Figure 1: -
    -

    -
    Figure 1: Kokyu Scheduling and Dispatching Infrastructure

    - -
      -
    1. -A pluggable scheduling infrastructure with efficient support for adaptive -execution of diverse static, dynamic, and hybrid static/dynamic scheduling -heuristics.
    2. - -
    3. -A flexible dispatching infrastructure that allows composition of primitive -operating system and middleware mechanisms to enforce arbitrary scheduling -heuristics.
    4. -
    -The scheduler is responsible for specifying how operation dispatch requests -are ordered, by assigning priority levels and rates to tasks, and producing -a configuration specification for the dispatching mechanism. The dispatcher -is responsible for enforcing the ordering of operation dispatches using -different threads, requests queues, and timers configured according to -the scheduler’s specification. The combined framework provides an implicit -projection of scheduling heuristics into appropriate dispatching infrastructure -configurations, so that the scheduling and dispatching infrastructure segments -can be optimized both separately and in combination. -

    -Strategized Scheduling framework

    -The Kokyu scheduling framework is designed to support a variety of scheduling -heuristics including RMS, EDF, MLF, and MUF. In addition, this framework -provides a common environment to compare systematically both existing and -new scheduling strategies. This flexibility is achieved in the Kokyu framework -via the Strategy pattern, which allows parts of the sequence of steps in -an algorithm to be replaced, thus providing interchangeable variations -within a consistent algorithmic framework. The Kokyu scheduling framework -uses the Strategy pattern to encapsulate a family of scheduling algorithms -within a fixed CORBA IDL interface, thereby enabling different strategies -to be configured independently from applications that use them. -

    -Flexible Dispatching Framework

    -The right side of Figure 1 shows the essential features of Kokyu’s flexible -task dispatching infrastructure. Key features of the dispatching infrastructure -that are essential to performing our optimizations are as follows: -

    Dispatching queues: Each task is assigned by our strategized -Kokyu scheduling framework  to a specific dispatching queue, each -of which has an associated queue number, a queueing discipline, and a unique -operating-system-specific priority for its single associated dispatching -thread. -

    Dispatching threads: Operating-system thread priorities decrease -as the queue number increases, so that the 0th queue is served by the highest -priority thread. Each dispatching thread removes the task from the head -of its queue and runs its entry point function to completion before retrieving -the next task to dispatch. Adapters can be applied to operations to intercept -and possibly short-circuit the entry-point upcall. In general, however, -the outermost operation entry point must complete on each dispatch. -

    Queueing disciplines: Dispatching thread priorities determine -which queue is active at any given time: the highest priority queue with -a task to dispatch is always active, preempting tasks in lower priority -queues. In addition, each queue may have a distinct discipline for determining -which of its enqueued tasks has the highest eligibility, and must ensure -the highest is at the head of the queue at the point when one is to be -dequeued. We consider three disciplines: -

      -
    • -Static – Tasks are ordered by a static subpriority value – results in FIFO -ordering if all static subpriorities are made the same; static queues at -different priority levels can be used to implement an RMS scheduling strategy.
    • - -
    • -Deadline – Tasks are ordered by time to deadline; a single deadline queue -can be used to implement the earliest deadline first (EDF) scheduling strategy.
    • - -
    • -Laxity – Tasks are ordered by slack time, or laxity – the time to deadline -minus the execution time; a single laxity queue can be used to implement -the minimum laxity first (MLF) scheduling strategy; laxity queues at different -priority levels can be used to implement the maximum urgency first (MUF) -scheduling strategy.
    • -
    -Any discipline for which a maximal eligibility may be selected can be employed -to manage a given dispatching queue in this approach. Scheduling strategies -can be constructed from one or more queues of each discipline alone, or -combinations of queues with different disciplines can be used. Figure 2  -illustrates the general queueing mechanism used by the dispatching modules -in the Kokyu dispatching framework. -
    -

    -

    Figure 2: Example Queueing Mechanism in a Kokyu Dispatching Module

    - -

    In addition, this figure shows how the output information provided by -the Kokyu scheduling framework is used to configure and operate a dispatching -module. During system initialization, each dispatching module obtains the -thread priority and dispatching type for each of its queues, typically -from the scheduling service’s output interface. Next, each queue is assigned -a unique dispatching priority number, a unique thread priority, and an -enumerated dispatching type. Finally, each dispatching module has an ordered -queue of pending dispatches per dispatching priority. To preserve QoS guarantees, -operations are inserted into the appropriate dispatching queue according -to their assigned dispatching priority. Operations within a dispatching -queue are ordered by their assigned dispatching subpriority. To minimize -priority inversions, operations are dispatched from the queue with the -highest thread priority, preempting any operation executing in a lower -priority thread. To minimize preemption overhead, there is no preemption -within a given priority queue. The following three values are defined for -the dispatching type: -

      -
    • -STATIC DISPATCHING: This type specifies a queue that only considers -the static portion of an operation’s dispatching subpriority.
    • - -
    • -DEADLINE DISPATCHING: This type specifies a queue that considers -the dynamic and static portions of an operation’s dispatching subpriority, -and updates the dynamic portion according to the time remaining until the -operation’s deadline.
    • - -
    • -LAXITY DISPATCHING: This type specifies a queue that considers the -dynamic and static portions of an operation’s dispatching subpriority, -and updates the dynamic portion according to the operation’s laxity.
    • -
    - -

    -Use of Kokyu within the TAO Real-time Event Channel(RTEC)

    -Figure 3 shows the sequence of operations that take place in the Kokyu -based dispatching module in the TAO RTEC. The client application registers -all relevant operations with the scheduler along with their real-time requirements. -This is done through the concept of an RT_Info -(see -TAO/orbsvcs/orbsvcs/RtecScheduler.idl) structure which is a structure that -contains the execution time, criticality, period, etc of an operation.  -The client then calls compute_schedule -method on the scheduler. The scheduler creates a dependency graphs of all -operations and partitions operations into equivalence classes based on -the scheduling parameters supplied. The scheduler can be configured to -have any scheduling policy which determines the equivalence class partitioning -(queues) and possibly a partial ordering of operations within an equivalence -class (ordering within a queue). Once this is done, the scheduler has the -configuration information for the Kokyu dispatcher like the number of dispatch -queues, priorities for the threads processing each queue, etc. -

    When the client calls activate -on the event channel, the EC inturn activates the Kokyu based EC dispatching -module. The EC dispatching module queries the dispatch configuration from -the scheduler and uses that to create the Kokyu dispatcher with the appropriate -number of lanes and threads. When an event is pushed into the EC, the EC -pushes the event to the appropriate consumers, who are subscribed to that -event. For each consumer, the EC queries the scheduler for the RT_Info -of that consumer. It then hands over the event to the Kokyu based dispatching -module. The dispatching module then enqueues the event into the appropriate -queue for processing by the thread watching that queue. -

    -

    -

    Figure 3: Kokyu based dispatching module within TAO RTEC

    - -

    -Configuration of RTEC to use Kokyu dispatching

    -Static configuration: In the svc.conf file, make sure you -have the following configuration for Kokyu dispatching. You can combine -this with other -ECxxx options. -

    static EC_Factory "-ECdispatching kokyu -SCHED_FIFO -ECscheduling kokyu -ECfiltering kokyu" -

    To run the threads in the real-time FIFO class, use SCHED_FIFO. You -could use SCHED_RR and SCHED_OTHER also. -
    The default is SCHED_FIFO. -

    In your program, call -

    TAO_EC_Kokyu_Factory::init_svcs (); -

    to statically create the EC Kokyu dispatching and other Kokyu related -modules. -

    Dynamic configuration: In the svc.conf file, make sure -you have the following configuration for Kokyu dispatching. You can combine -this with other -ECxxx options. -

    dynamic EC_Factory Service_Object * -TAO_RTKokyuEvent:_make_TAO_EC_Kokyu_Factory() "-ECdispatching kokyu -ECscheduling -kokyu -ECfiltering kokyu" -

    -Use of Kokyu within the Dynamic Scheduling -Real-time CORBA (DSRTCORBA) schedulers

    -An initial implementation of mechanisms to support DSRTCORBA schedulers -have been released. DSRTCORBA uses the concept of distributed threads, -which traverse multiple end systems giving the application the illusion -of a single logical thread executing an end-to-end task. The distributed -thread carries with it the scheduling parameters like importance, deadline, -etc so that it can get scheduled by a local scheduler on each endsystem. -The Kokyu DSRT dispatching framework is used as an enforcing mechanism. -

    The DSRT schedulers are available in the directory $TAO_ROOT/examples/Kokyu_dsrt_schedulers. -They use the Kokyu DSRT -
    dispatching classes present in $ACE_ROOT/Kokyu. These act as wrappers/adapters -around the Kokyu DSRT dispatcher. The Kokyu DSRT dispatcher is responsible -for scheduling threads which ask the dispatcher to schedule themselves. -Currently there are two implementations for the Kokyu DSRT dispatcher. -One uses a condition-variable based approach for scheduling threads and -the other manipulates priorities of threads and relies on the OS scheduler -for dispatching the threads appropriately. -

    -CV-based approach:

    -In this approach, it is assumed that the threads "yield" on a regular basis -to the scheduler by calling update_scheduling_segment. Only one -thread is running at any point in time. All the other threads are blocked -on a condition variable. When the currently running thread yields, it will -cause the condition variable to be signalled. All the eligible threads -are stored in a scheduler queue (rbtree), the most eligible thread determined -by the scheduling discipline. This approach has the drawback that it requires -a cooperative threading model, where threads yield voluntarily on a regular -basis. The application threads are responsible for doing this voluntary -yielding. -

    -OS-based approach:

    -This approach relies on the OS scheduler to do the actual thread dispatching. -The Kokyu DSRT dispatcher manipulates the priorities of the threads. The -scheduler maintains a queue (rbtree) of threads. The scheduler also has -an executive thread, which runs at the maximum available priority. This -thread runs in a continuous loop until the dispatcher is shut down. The -executive thread is responsible for selecting the most eligible thread -from the scheduler queue and bump up its priority if necessary while bumping -down the priority of the currently running thread, if it is not the most -eligible. There are four priority levels required for this mechanism to -work, listed in descending order of priorities. For example, a thread running -at Active priority will preempt a -
    thread running at Inactive priority level. -
      -
    1. -Executive priority - priority at which the scheduler executive thread runs.
    2. - -
    3. -Blocked priority - this is the priority to which threads about to block -on remote calls will be bumped up to.
    4. - -
    5. -Active priority - this is the priority to which the most eligible thread -is set to.
    6. - -
    7. -Inactive priority - this is the priority to which all threads except the -most eligible thread is set to.
    8. -
    -As soon as a thread asks to be scheduled, a wrapper object is created and -inserted into the queue. This object carries the qos (sched params) associated -with that thread. A condition variable is signalled to inform the executive -thread that the queue is "dirty". The scheduler thread picks up the most -eligble one and sets its priority to active and sets the currently -running thread priority to -
    inactive. -

    The drawback to this approach is that it relies on the OS scheduler -to dispatch the threads. Also, with the current implementation, there is -only one thread running at active priority and others are all at inactive -level. This will create undesirable effects with multi-processor systems, -which could select any one of the inactive level threads and this -could cause priority inversions. -

    -How to write a new DSRT scheduler using Kokyu

    -One can use one of the schedulers as a starting point. The variation points -are -
      -
    1. -The scheduler parameters that need to be propagated along with the service -context.
    2. - -
    3. -The QoS comparison function, that determines which thread is more eligible.
    4. -
    -To aid (1), we have created a Svc_Ctxt_DSRT_QoS idl interface (see ./Kokyu_qos.pidl). -This interface currently has the necessary things to be propagated for -FP, MIF and MUF schedulers. This can be altered if necessary to accomodate -new sched params. The idea here is to let the IDL compiler generate the -marshalling code (including Any operators) so that these parameters can -be shipped across in the service context in an encapsulated CDR. -

    To create customized QoS comparator functions, we used the idea of C++ -traits to let the user define customized comparator functions. For example, -the MIF scheduler uses the following traits class. -

      struct MIF_Scheduler_Traits -
      { -
        typedef RTScheduling::Current::IdType Guid_t; -

        struct _QoSDescriptor_t -
        { -
          typedef long Importance_t; -
          Importance_t importance_; -
        }; -

        typedef _QoSDescriptor_t QoSDescriptor_t; -

        typedef Kokyu::MIF_Comparator<QoSDescriptor_t> -QoSComparator_t; -

        class _Guid_Hash -
        { -
        public: -
          u_long operator () (const Guid_t& -id) -
          { -
            return ACE::hash_pjw -((const char *) id.get_buffer (), -
                                  -id.length ()); -
          } -
        }; -

        typedef _Guid_Hash Guid_Hash; -
      }; -

    The idea of traits makes the Kokyu dispatcher more flexible in terms -of creating new schedulers. For example, the Kokyu classes do not care -about what concrete type Guid is. It could be an OctetSequence for some -applications, whereas it could be an int for some others. The exact type -is defined by the application (in this case, the MIF scheduler) using the -traits class. In the above traits class the Guid's type is defined to be -an octet sequence (indirectly). The Kokyu dispatcher expects the following -typedef's to -
    be present in the traits class: -

    Guid_t - Type of GUID. -
    QoSDescriptor_t - aggregate for scheduler parameters -
    QoSComparator_t - used by the scheduler queue to determine -most eligible item -
    Guid_Hash - used by the internal hash map in the scheduler -to hash the guid. -

    It is also expected that the following operator be defined for comparing -QoS parameters. This comparator function will be used by the scheduler -queue to determine the most eligible item in the queue. -

    QoSComparator_t::operator ()(const QoSDescriptor_t& qos1, -
                -const QoSDescriptor_t& qos2) -

    -Kokyu DSRTCORBA vs Kokyu RTEC

    -Currently we have separate interfaces for DSRTCORBA and RTEC dispatching -mechanisms. Once we get more use cases and experience, there is a possibility -of these getting merged in the future. The RTEC related dispatching interface -is in Kokyu::Dispatcher (Kokyu.h) and DSRTCORBA related dispatching -interface is in Kokyu::DSRT_Dispatcher (Kokyu_dsrt.h) -

    -Current status

    -Kokyu dispatching framework is available as a separate module under ACE_wrappers/Kokyu -as part of the ACE/TAO -distribution. Note that this module is not dependent on TAO, though -it is built on top of ACE. The TAO Event Channel uses the Strategy and -Service Configurator patterns to use configurable dispatching modules. -A Kokyu based EC dispatching module is available in the TAO/orbsvcs/orbsvcs/RTKokyuEvent -module. This module acts as an adapter between the Kokyu dispatcher and -the RTEC. -

    Kokyu scheduling framework is available under the TAO source tree (TAO/orbsvcs/orbsvcs/Sched). -

    An example using the RTEC Kokyu dispatching module is available under -TAO/orbsvcs/examples/RtEC/Kokyu. -

    -Future work

    - -
      -
    1. -Currently there is no support for timers in the Kokyu dispatching module. -We plan to do this in the near future.
    2. - -
    3. -It looks like there is a general structure to the different schedulers. -May be this can be abstracted using templates or some similar mechanism.
    4. - -
    5. -Thread sched policy and sched scope are currently being passed explicitly -from the application to the scheduler. This can be changed later to get -this information from the ORB. This requires the usage of RTORB and the -actual values can be set using svc.conf parameters for RT_ORB_Loader.
    6. - -
        -
    7. -See whether the approaches could be extended to multiprocessor systems.
    8. -
    - -

    -Papers on Kokyu

    - -
      -
    1. -Christopher D. Gill, Dissertation:Flexible -Scheduling in Middleware for Distributed Rate-Based Real-Time Applications
    2. - -
    3. -Christopher D. Gill, David L. Levine, and Douglas C. Schmidt The -Design and Performance of a Real-Time CORBA Scheduling Service, Real-Time -Systems: the International Journal of Time-Critical Computing Systems, -special issue on Real-Time Middleware, guest editor Wei Zhao, March 2001, -Vol. 20 No. 2
    4. - -
    5. -Christopher D. Gill, Douglas C. Schmidt, and Ron Cytron, Multi-Paradigm -Scheduling for Distributed Real-Time Embedded Computing, IEEE Proceedings -Special Issue on Modeling and Design of Embedded Systems, Volume 91, Number -1, January 2003.
    6. -
    - - - diff --git a/ACE/Kokyu/docs/KokyuEC.jpg b/ACE/Kokyu/docs/KokyuEC.jpg deleted file mode 100644 index b0c8103d2aa..00000000000 Binary files a/ACE/Kokyu/docs/KokyuEC.jpg and /dev/null differ diff --git a/ACE/Kokyu/docs/kokyu1.jpg b/ACE/Kokyu/docs/kokyu1.jpg deleted file mode 100644 index 268c6ae3302..00000000000 Binary files a/ACE/Kokyu/docs/kokyu1.jpg and /dev/null differ diff --git a/ACE/Kokyu/docs/kokyu2.jpg b/ACE/Kokyu/docs/kokyu2.jpg deleted file mode 100644 index f5e2386774e..00000000000 Binary files a/ACE/Kokyu/docs/kokyu2.jpg and /dev/null differ diff --git a/ACE/Kokyu/kokyu_config.h b/ACE/Kokyu/kokyu_config.h deleted file mode 100644 index 4eab747376e..00000000000 --- a/ACE/Kokyu/kokyu_config.h +++ /dev/null @@ -1,10 +0,0 @@ -/* $Id$ */ -#ifndef KOKYU_CONFIG_H -#define KOKYU_CONFIG_H - -#define CONFIG_DSTREAM_DSRT_DISPATCH -#define CONFIG_DSTREAM_DSRT_CV_DISPATCH -#define CONFIG_DSTREAM_DSRT_DIRECT_DISPATCH -#define CONFIG_DSTREAM_DSRT_DISPATCH_IMPL - -#endif /* KOKYU_CONFIG_H */ diff --git a/ACE/Kokyu/kokyu_export.h b/ACE/Kokyu/kokyu_export.h deleted file mode 100644 index 8b15053da15..00000000000 --- a/ACE/Kokyu/kokyu_export.h +++ /dev/null @@ -1,55 +0,0 @@ -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl Kokyu -// ------------------------------ -#ifndef KOKYU_EXPORT_H -#define KOKYU_EXPORT_H - -#include "ace/config-all.h" - -#if defined (ACE_AS_STATIC_LIBS) -# if !defined (KOKYU_HAS_DLL) -# define KOKYU_HAS_DLL 0 -# endif /* ! KOKYU_HAS_DLL */ -#else -# if !defined (KOKYU_HAS_DLL) -# define KOKYU_HAS_DLL 1 -# endif /* ! KOKYU_HAS_DLL */ -#endif - -#if defined (KOKYU_HAS_DLL) && (KOKYU_HAS_DLL == 1) -# if defined (KOKYU_BUILD_DLL) -# define Kokyu_Export ACE_Proper_Export_Flag -# define KOKYU_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define KOKYU_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* KOKYU_BUILD_DLL */ -# define Kokyu_Export ACE_Proper_Import_Flag -# define KOKYU_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define KOKYU_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* KOKYU_BUILD_DLL */ -#else /* KOKYU_HAS_DLL == 1 */ -# define Kokyu_Export -# define KOKYU_SINGLETON_DECLARATION(T) -# define KOKYU_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* KOKYU_HAS_DLL == 1 */ - -// Set KOKYU_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined (KOKYU_NTRACE) -# if (ACE_NTRACE == 1) -# define KOKYU_NTRACE 1 -# else /* (ACE_NTRACE == 1) */ -# define KOKYU_NTRACE 0 -# endif /* (ACE_NTRACE == 1) */ -#endif /* !KOKYU_NTRACE */ - -#if (KOKYU_NTRACE == 1) -# define KOKYU_TRACE(X) -#else /* (KOKYU_NTRACE == 1) */ -# define KOKYU_TRACE(X) ACE_TRACE_IMPL(X) -#endif /* (KOKYU_NTRACE == 1) */ - -#endif /* KOKYU_EXPORT_H */ - -// End of auto generated file. diff --git a/ACE/Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc b/ACE/Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc deleted file mode 100644 index 62da58ed055..00000000000 --- a/ACE/Kokyu/tests/DSRT_MIF/DSRT_MIF.mpc +++ /dev/null @@ -1,7 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project: kokyu { - avoids += ace_for_tao - exename = MIF -} diff --git a/ACE/Kokyu/tests/DSRT_MIF/MIF.cpp b/ACE/Kokyu/tests/DSRT_MIF/MIF.cpp deleted file mode 100644 index 4c943533ad6..00000000000 --- a/ACE/Kokyu/tests/DSRT_MIF/MIF.cpp +++ /dev/null @@ -1,185 +0,0 @@ -// $Id$ - -#include "ace/ACE.h" -#include "ace/Auto_Ptr.h" -#include "ace/Task.h" -#include "ace/Sched_Params.h" -#include "ace/Atomic_Op.h" -#include "ace/High_Res_Timer.h" -#include "ace/Barrier.h" -#include "ace/Lock_Adapter_T.h" -#include "ace/Countdown_Time.h" - -#include "Kokyu_dsrt.h" - -ACE_Atomic_Op guid=0; - -struct mif_scheduler_traits -{ - typedef int Guid_t; - - struct QoSDescriptor_t - { - typedef long Importance_t; - - long importance_; - }; - - /* - static Time_t now() - { - ACE_Time_Value now = ACE_OS::gettimeofday (); - return now.sec () * 10000000 + now.usec () * 10; - } - */ - - typedef Kokyu::MIF_Comparator QoSComparator_t; - - struct Guid_Hash - { - u_long operator () (const Guid_t& guid) - { - return guid; - } - }; -}; - - -class MyTask : public ACE_Task_Base -{ -public: - - MyTask (ACE_Barrier& bar, - Kokyu::DSRT_Dispatcher* dispatcher, - mif_scheduler_traits::QoSDescriptor_t& qos, - int exec_duration) - :barrier_ (bar), - dispatcher_ (dispatcher), - qos_ (qos), - guid_ (++guid), - exec_duration_ (exec_duration) - {} - - int svc (void); - - private: - ACE_Barrier& barrier_; - Kokyu::DSRT_Dispatcher* dispatcher_; - mif_scheduler_traits::QoSDescriptor_t qos_; - mif_scheduler_traits::Guid_t guid_; - int exec_duration_; -}; - -int MyTask::svc (void) -{ - ACE_hthread_t thr_handle; - ACE_Thread::self (thr_handle); - - ACE_DEBUG ((LM_DEBUG, "(%t|%T): task activated\n")); - ACE_ASSERT (dispatcher_ != 0); - - (void) dispatcher_->schedule (guid_, qos_); - - barrier_.wait (); - - long prime_number = 9619899; - - ACE_High_Res_Timer timer; - ACE_Time_Value elapsed_time; - ACE_Time_Value seconds_tracker(0,0); - - ACE_Time_Value one_second (1,0); - ACE_Time_Value compute_count_down_time (exec_duration_, 0); - ACE_Countdown_Time compute_count_down (&compute_count_down_time); - - timer.start (); - while (compute_count_down_time > ACE_Time_Value::zero) - { - ACE::is_prime (prime_number, - 2, - prime_number / 2); - - compute_count_down.update (); - timer.stop (); - timer.elapsed_time (elapsed_time); - seconds_tracker += elapsed_time; - if (seconds_tracker >= one_second) - { - seconds_tracker.set (0,0); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%t) Currently running guid=%d") - ACE_TEXT (", qos_.importance=%d \n"), - guid_, qos_.importance_)); - } - timer.reset (); - timer.start (); - } - - dispatcher_->cancel_schedule (this->guid_); - return 0; -} - -int ACE_TMAIN (int,ACE_TCHAR**) -{ - Kokyu::DSRT_ConfigInfo config_info; - - // config_info.scheduler_type_ = Kokyu::SCHED_MIF; - config_info.impl_type_ = Kokyu::DSRT_OS_BASED; - - ACE_Barrier bar (3); - - ACE_DEBUG ((LM_DEBUG, "before create_dispatcher\n" )); - - config_info.sched_strategy_ = Kokyu::DSRT_MIF; - - Kokyu::DSRT_Dispatcher_Factory::DSRT_Dispatcher_Auto_Ptr - disp (Kokyu::DSRT_Dispatcher_Factory:: - create_DSRT_dispatcher (config_info)); - - ACE_DEBUG ((LM_DEBUG, "after create_dispatcher\n" )); - - ACE_ASSERT (disp.get () != 0); - - mif_scheduler_traits::QoSDescriptor_t qos1, qos2, qos3; - - qos1.importance_ = 1; - qos2.importance_ = 2; - qos3.importance_ = 3; - - MyTask mytask1 (bar, disp.get (), qos1, 15); - MyTask mytask2 (bar, disp.get (), qos2, 6); - MyTask mytask3 (bar, disp.get (), qos3, 4); - - long flags = THR_BOUND | THR_SCHED_FIFO; - - if (mytask1.activate (flags) == -1) - { - flags = THR_BOUND; - if (mytask1.activate (flags) == -1) - ACE_ERROR ((LM_ERROR, - "EC (%P|%t) cannot activate task\n")); - } - - if (mytask2.activate (flags) == -1) - { - flags = THR_BOUND; - if (mytask2.activate (flags) == -1) - ACE_ERROR ((LM_ERROR, - "EC (%P|%t) cannot activate task\n")); - } - - if (mytask3.activate (flags) == -1) - { - flags = THR_BOUND; - if (mytask3.activate (flags) == -1) - ACE_ERROR ((LM_ERROR, - "EC (%P|%t) cannot activate task\n")); - } - - disp->shutdown (); - - ACE_DEBUG ((LM_DEBUG, "main thread exiting\n")); - - return 0; -} - diff --git a/ACE/Kokyu/tests/DSRT_MIF/Makefile.am b/ACE/Kokyu/tests/DSRT_MIF/Makefile.am deleted file mode 100644 index 4ed16f988cd..00000000000 --- a/ACE/Kokyu/tests/DSRT_MIF/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - - -## Makefile.DSRT_MIF.am - -if !BUILD_ACE_FOR_TAO - -noinst_PROGRAMS = MIF - -MIF_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/Kokyu - -MIF_SOURCES = \ - MIF.cpp - -MIF_LDADD = \ - $(top_builddir)/Kokyu/libKokyu.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -endif !BUILD_ACE_FOR_TAO - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/Kokyu/tests/DSRT_MIF/svc.conf b/ACE/Kokyu/tests/DSRT_MIF/svc.conf deleted file mode 100644 index 247c85945d9..00000000000 --- a/ACE/Kokyu/tests/DSRT_MIF/svc.conf +++ /dev/null @@ -1,4 +0,0 @@ -# -dynamic DSRT_Scheduler_Impl Service_Object * -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/DSRT_MIF/svc.conf.xml b/ACE/Kokyu/tests/DSRT_MIF/svc.conf.xml deleted file mode 100644 index aef4b3ea0a9..00000000000 --- a/ACE/Kokyu/tests/DSRT_MIF/svc.conf.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/ACE/Kokyu/tests/EDF/EDF.mpc b/ACE/Kokyu/tests/EDF/EDF.mpc deleted file mode 100644 index d0c7749e28e..00000000000 --- a/ACE/Kokyu/tests/EDF/EDF.mpc +++ /dev/null @@ -1,6 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project: kokyu { - exename = EDF -} diff --git a/ACE/Kokyu/tests/EDF/Makefile.am b/ACE/Kokyu/tests/EDF/Makefile.am deleted file mode 100644 index 9aa8fcdf71d..00000000000 --- a/ACE/Kokyu/tests/EDF/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - -## Makefile.EDF.am - -noinst_PROGRAMS = EDF - -EDF_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/Kokyu - -EDF_SOURCES = \ - test.cpp - -EDF_LDADD = \ - $(top_builddir)/Kokyu/libKokyu.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/Kokyu/tests/EDF/README b/ACE/Kokyu/tests/EDF/README deleted file mode 100644 index 4f209605e14..00000000000 --- a/ACE/Kokyu/tests/EDF/README +++ /dev/null @@ -1,24 +0,0 @@ -This example is a very simple example, showing how to use the Kokyu -dispatcher to dispatch command objects in a EDF manner. The test -configures the Kokyu dispatcher with a single EDF lane. Typically this -would be done by an EDF scheduler which assigns priorities to tasks -based on the deadlines for tasks. To ensure that the command objects -enqueued in the dispatcher are dispatched in the correct order, we -enqueue the command objects and *then* activate the dispatcher. Only -when the dispatcher is activated, the thread watching each dispatch -queue starts running. - -To run this example, - -./test -p - -The following is the expected output - -Deadline of command1 is 1065966081 -Deadline of command2 is 1065966131 -Deadline of command3 is 1065966031 -command 3 executed -command 1 executed -command 2 executed - -Note that the deadlines are absolute deadlines. diff --git a/ACE/Kokyu/tests/EDF/test.cpp b/ACE/Kokyu/tests/EDF/test.cpp deleted file mode 100644 index 0c6939ee613..00000000000 --- a/ACE/Kokyu/tests/EDF/test.cpp +++ /dev/null @@ -1,162 +0,0 @@ -// $Id$ - -#include "ace/Auto_Ptr.h" - -#include "Kokyu.h" -#include "ace/Task.h" -#include "ace/Sched_Params.h" -#include "ace/SString.h" -#include "ace/Get_Opt.h" -#include "ace/OS_NS_strings.h" -#include "ace/OS_NS_sys_time.h" - -ACE_CString sched_policy_str = "fifo"; - -int parse_args (int argc, ACE_TCHAR *argv[]); - -class MyCommand : public Kokyu::Dispatch_Command -{ -public: - MyCommand(int i) - :Kokyu::Dispatch_Command(1),id_(i) - { - } - int execute(); - -private: - int id_; -}; - -int MyCommand::execute() -{ - ACE_hthread_t thr_handle; - ACE_Thread::self (thr_handle); - int prio; - - if (ACE_Thread::getprio (thr_handle, prio) == -1) - { - if (errno == ENOTSUP) - { - ACE_DEBUG((LM_DEBUG, - ACE_TEXT ("getprior not supported on this platform\n") - )); - return 0; - } - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("getprio failed")), - -1); - } - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%t|prio=%d) | command %d executed\n"), - prio, id_)); - return 0; -} - -int ACE_TMAIN (int argc, ACE_TCHAR** argv) -{ - Kokyu::ConfigInfoSet config_info(3); - - int sched_policy=ACE_SCHED_FIFO; - - Kokyu::Dispatcher_Attributes attrs; - - if (parse_args (argc, argv) == -1) - return 0; - - if (ACE_OS::strcasecmp(sched_policy_str.c_str(), "fifo") == 0) - { - sched_policy = ACE_SCHED_FIFO; - } - else if (ACE_OS::strcasecmp(sched_policy_str.c_str(), "other") == 0) - { - sched_policy = ACE_SCHED_OTHER; - } - else if (ACE_OS::strcasecmp(sched_policy_str.c_str(), "rr") == 0) - { - sched_policy = ACE_SCHED_RR; - } - - attrs.sched_policy (sched_policy); - - Kokyu::Priority_t min_prio = - ACE_Sched_Params::priority_min (sched_policy); - - config_info[0].preemption_priority_ = 1; - config_info[0].thread_priority_ = min_prio; - config_info[0].dispatching_type_ = Kokyu::DEADLINE_DISPATCHING; - - ACE_DEBUG ((LM_DEBUG, "before create_dispatcher\n" )); - - attrs.config_info_set_ = config_info; - auto_ptr - disp (Kokyu::Dispatcher_Factory::create_dispatcher (attrs)); - - ACE_ASSERT (disp.get() != 0); - - MyCommand cmd1(1), cmd2(2), cmd3(3); - - Kokyu::QoSDescriptor qos1, qos2, qos3; - - // Get the current time. - ACE_Time_Value current_time = ACE_OS::gettimeofday (); - - ACE_Time_Value deadline1, deadline2, deadline3; - - deadline1 = current_time + ACE_Time_Value(150,0); - deadline2 = current_time + ACE_Time_Value(200,0); - deadline3 = current_time + ACE_Time_Value(100,0); - - qos1.preemption_priority_ = 1; - qos1.deadline_ = deadline1; - qos2.preemption_priority_ = 1; - qos2.deadline_ = deadline2; - qos3.preemption_priority_ = 1; - qos3.deadline_ = deadline3; - - ACE_DEBUG ((LM_DEBUG, "Deadline of command1 is %d\n", - qos1.deadline_.sec ())); - disp->dispatch (&cmd1, qos1); - - ACE_DEBUG ((LM_DEBUG, "Deadline of command2 is %d\n", - qos2.deadline_.sec ())); - disp->dispatch (&cmd2, qos2); - - ACE_DEBUG ((LM_DEBUG, "Deadline of command3 is %d\n", - qos3.deadline_.sec ())); - disp->dispatch (&cmd3, qos3); - - disp->activate (); - - disp->shutdown (); - - ACE_DEBUG ((LM_DEBUG, "after shutdown\n")); - - return 0; -} - -int parse_args (int argc, ACE_TCHAR *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("p:")); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'p': - sched_policy_str = ACE_TEXT_ALWAYS_CHAR(get_opts.opt_arg ()); - break; - - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s %s" - "\n", - argv [0], - "-p "), - -1); - } - // Indicates sucessful parsing of the command line - return 0; -} diff --git a/ACE/Kokyu/tests/FIFO/FIFO.mpc b/ACE/Kokyu/tests/FIFO/FIFO.mpc deleted file mode 100644 index b6afad4c977..00000000000 --- a/ACE/Kokyu/tests/FIFO/FIFO.mpc +++ /dev/null @@ -1,6 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project: kokyu { - exename = FIFO -} diff --git a/ACE/Kokyu/tests/FIFO/Makefile.am b/ACE/Kokyu/tests/FIFO/Makefile.am deleted file mode 100644 index 05b7dbe9e38..00000000000 --- a/ACE/Kokyu/tests/FIFO/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -ACE_BUILDDIR = $(top_builddir) -ACE_ROOT = $(top_srcdir) - -## Makefile.FIFO.am - -noinst_PROGRAMS = FIFO - -FIFO_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(ACE_ROOT)/Kokyu - -FIFO_SOURCES = \ - test.cpp - -FIFO_LDADD = \ - $(top_builddir)/Kokyu/libKokyu.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -## Clean up template repositories, etc. -clean-local: - -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* - -rm -f gcctemp.c gcctemp so_locations *.ics - -rm -rf cxx_repository ptrepository ti_files - -rm -rf templateregistry ir.out - -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/ACE/Kokyu/tests/FIFO/README b/ACE/Kokyu/tests/FIFO/README deleted file mode 100644 index 5700e4a5038..00000000000 --- a/ACE/Kokyu/tests/FIFO/README +++ /dev/null @@ -1,24 +0,0 @@ -This example is a very simple example, showing how to use the Kokyu -dispatcher to dispatch command objects in a FIFO manner. The test -configures the Kokyu dispatcher with 3 FIFO lanes, each having a -different priority. Typically this would be done by an RMS scheduler -which assigns priorities to tasks based on the rate of tasks. To -ensure that the command objects enqueued in the dispatcher are -dispatched in the correct order, we enqueue the command objects and -*then* activate the dispatcher. Only when the dispatcher is activated, -the thread watching each dispatch queue starts running. - -To run this example, - -./test -p - -The following is the expected output - -Priority of command1 is 2 -Priority of command2 is 3 -Priority of command3 is 1 -command 3 executed -command 1 executed -command 2 executed - -Note that a lower number means a higher priority for the task. diff --git a/ACE/Kokyu/tests/FIFO/test.cpp b/ACE/Kokyu/tests/FIFO/test.cpp deleted file mode 100644 index deb25823a3b..00000000000 --- a/ACE/Kokyu/tests/FIFO/test.cpp +++ /dev/null @@ -1,166 +0,0 @@ -// $Id$ - -#include "ace/Auto_Ptr.h" - -#include "Kokyu.h" -#include "ace/Task.h" -#include "ace/SString.h" -#include "ace/Get_Opt.h" -#include "ace/OS_NS_strings.h" - -ACE_CString sched_policy_str = "fifo"; - -int parse_args (int argc, ACE_TCHAR *argv[]); - -class MyCommand : public Kokyu::Dispatch_Command -{ -public: - MyCommand(int i) - :Kokyu::Dispatch_Command(1),id_(i) - { - } - int execute (); - -private: - int id_; -}; - -int MyCommand::execute() -{ - ACE_hthread_t thr_handle; - ACE_Thread::self (thr_handle); - int prio; - - if (ACE_Thread::getprio (thr_handle, prio) == -1) - { - if (errno == ENOTSUP) - { - ACE_DEBUG((LM_DEBUG, - ACE_TEXT ("getprior not supported on this platform\n") - )); - return 0; - } - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("getprio failed")), - -1); - } - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%t|prio=%d) | command %d executed\n"), - prio, id_)); - return 0; -} - -int ACE_TMAIN (int argc, ACE_TCHAR** argv) -{ - Kokyu::ConfigInfoSet config_info(3); - - int hi_prio, me_prio, lo_prio; - int sched_policy=ACE_SCHED_FIFO; - - Kokyu::Dispatcher_Attributes attrs; - - if (parse_args (argc, argv) == -1) - return 0; - - if (ACE_OS::strcasecmp(sched_policy_str.c_str(), "fifo") == 0) - { - sched_policy = ACE_SCHED_FIFO; - } - else if (ACE_OS::strcasecmp(sched_policy_str.c_str(), "other") == 0) - { - sched_policy = ACE_SCHED_OTHER; - } - else if (ACE_OS::strcasecmp(sched_policy_str.c_str(), "rr") == 0) - { - sched_policy = ACE_SCHED_RR; - } - - attrs.sched_policy (sched_policy); - - hi_prio = ACE_Sched_Params::priority_max (sched_policy); - me_prio = ACE_Sched_Params::previous_priority (sched_policy, - hi_prio); - lo_prio = ACE_Sched_Params::previous_priority (sched_policy, - me_prio); - - config_info[0].preemption_priority_ = 1; - config_info[0].thread_priority_ = hi_prio ; - config_info[0].dispatching_type_ = Kokyu::FIFO_DISPATCHING; - - config_info[1].preemption_priority_ = 2; - config_info[1].thread_priority_ = me_prio; - config_info[1].dispatching_type_ = Kokyu::FIFO_DISPATCHING; - - config_info[2].preemption_priority_ = 3; - config_info[2].thread_priority_ = lo_prio; - config_info[2].dispatching_type_ = Kokyu::FIFO_DISPATCHING; - - attrs.config_info_set_ = config_info; - - ACE_DEBUG ((LM_DEBUG, "before create_dispatcher\n" )); - auto_ptr - disp (Kokyu::Dispatcher_Factory::create_dispatcher (attrs)); - - ACE_ASSERT (disp.get() != 0); - - MyCommand cmd1(1), cmd2(2), cmd3(3); - - Kokyu::QoSDescriptor qos1, qos2, qos3; - - qos1.preemption_priority_ = 2; - ACE_DEBUG ((LM_DEBUG, "Priority of command1 is %d\n", - qos1.preemption_priority_)); - - qos2.preemption_priority_ = 3; - ACE_DEBUG ((LM_DEBUG, "Priority of command2 is %d\n", - qos2.preemption_priority_)); - - qos3.preemption_priority_ = 1; - ACE_DEBUG ((LM_DEBUG, "Priority of command3 is %d\n", - qos3.preemption_priority_)); - - if (disp->dispatch (&cmd1, qos1) == -1 || - disp->dispatch (&cmd2, qos2) == -1 || - disp->dispatch (&cmd3, qos3) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "Error in dispatching command object\n"), -1); - - if (disp->activate () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Error activating dispatcher. ") - ACE_TEXT ("You might not have superuser privileges ") - ACE_TEXT ("to run FIFO class. Try \"-p other\"\n")), -1); - } - - disp->shutdown (); - - ACE_DEBUG ((LM_DEBUG, "after shutdown\n")); - return 0; -} - -int parse_args (int argc, ACE_TCHAR *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("p:")); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'p': - sched_policy_str = ACE_TEXT_ALWAYS_CHAR(get_opts.opt_arg ()); - break; - - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s %s" - "\n", - argv [0], - "-p "), - -1); - } - // Indicates sucessful parsing of the command line - return 0; -} diff --git a/ACE/Kokyu/tests/Makefile.am b/ACE/Kokyu/tests/Makefile.am deleted file mode 100644 index 9745459d4e3..00000000000 --- a/ACE/Kokyu/tests/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## ./bin/mwc.pl -type automake -noreldefs ACE.mwc - -SUBDIRS = \ - DSRT_MIF \ - EDF \ - FIFO - diff --git a/ACE/Makefile.am b/ACE/Makefile.am deleted file mode 100644 index 29fb2e2dbe8..00000000000 --- a/ACE/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -## Process this file with automake to create Makefile.in -## -## $Id$ -## -## This file was generated by MPC. Any changes made directly to -## this file will be lost the next time it is generated. -## -## MPC Command: -## /acebuilds/ACE_wrappers-repository/bin/mwc.pl -include /acebuilds/MPC/config -include /acebuilds/MPC/templates -feature_file /acebuilds/ACE_wrappers-repository/local.features -noreldefs -type automake -exclude build,Kokyu - -SUBDIRS = \ - ace \ - @ACEXML@ \ - @ASNMP@ \ - apps \ - bin \ - netsvcs - -if BUILD_EXAMPLES -SUBDIRS += examples -endif - -if BUILD_TESTS -SUBDIRS += performance-tests -SUBDIRS += tests -endif - -SUBDIRS += \ - @protocols@ \ - websvcs \ - @KOKYU@ \ - @TAO@ - -ACLOCAL = @ACLOCAL@ -ACLOCAL_AMFLAGS = -I m4 -AUTOMAKE_OPTIONS = foreign diff --git a/ACE/NEWS b/ACE/NEWS deleted file mode 100644 index 25626c11b4f..00000000000 --- a/ACE/NEWS +++ /dev/null @@ -1,1275 +0,0 @@ -PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known) -=========================================================================== - -. (Remedy) Add VxWorks 6.x kernel mode with shared library support - -USER VISIBLE CHANGES BETWEEN ACE-5.6.3 and ACE-5.6.4 -==================================================== - -USER VISIBLE CHANGES BETWEEN ACE-5.6.2 and ACE-5.6.3 -==================================================== - -. Deprecated Visual Age 5 and older - -. Closed a rare race condition hole whereby ACE_Atomic_Op<> function - pointers would not be fully initialized prior to use. See bugzilla - 3185 for details. - -. Tweaks to support MacOS X Leopard (10.5 and 10.5.1) on Intel - -. Fixed compile problems with MinGW with GCC 4.2. Do note that we do see - much more test failures then when using GCC 3.4. - -. Changed to use synchronous exception handling with msvc 8/9 which is the - default. Asynchrous exception handling does catch access violations but - it leads to lower performance and other problems. See also bugzilla 3169 - -. Make ace_main extern C with VxWorks so that it doesn't get mangled - -. Fixed compile errors and warnings for VxWorks 6.6 - -. Added an MPC generator for the WindRiver Workbench 2.6 which is shipped - with VxWorks 6.4 - -. Added support for CodeGear C++ Builder 2007 with December 2007 update - installed - -. Added support for VxWorks 5.5.1 - -. Implemented the const reverse iterator for ACE_Hash_Map_Manager_Ex - -. Increased support for using ACE_Hash_Map_Manager_Ex with STL - functions based on latest standard C++ draft - -USER VISIBLE CHANGES BETWEEN ACE-5.6.1 and ACE-5.6.2 -==================================================== - -. ACE-ified the UUID class, which will change user applications slightly. - -. Added support for Sun Studio 12 - -. Added support for Intel C++ 10.1 - -. Fixed runtime problems with VxWorks 6.x in kernel mode, several improvements - have been made to ACE, but also some problems in the VxWorks kernel have - been found for which WindRiver has made patches. - -. Added support for VxWorks 6.5 kernel mode - -. Added support for MacOS 10.5 - -. Support for MacOS 10.4 is now deprecated. - -. Added support for OpenSuSE 10.3 - -. Added support for RedHat 5.1 - -. Added support for Microsoft Visual Studio 2008 - -. Added support for Fedora Core 8 - -. Added support for Ubuntu 7.10 - -. With Ubuntu 7.04 and 7.10 we can't use visibility, that results in - unresolved externals when building some tests. With lsb_release we - now detect Ubuntu 7.04 and 7.10 automatically and then we disable - visibility - -. Removed deprecated (un)subscribe methods from ACE_SOCK_Dgram_Mcast - -. Added an additional replace() method to ACE_OuptutCDR for replacing a - ACE_CDR::Short value. Also added write_long_placeholder() and - write_short_placeholder() to properly align the stream's write pointer, - write a placeholder value and return the placeholder's pointer. The pointer - can later be used in a call to replace() to replace the placeholder with a - different value. - -. Initial support for VxWorks 6.6 - -. Removed support for pthread draft 4, 6, & 7. This makes the ACE threading - code much cleaner - -. Improved autoconf support - -. Fixed TSS emulation problems - -. Changed ACE_thread_t and ACE_hthread_t to int for VxWorks kernel mode. All - thread creation methods do have an additional const char* argument to - specify the task name, this now also works with pthread support enabled - -. Use bool in much more interfaces where this is possible - -. Added support for Debian Etch - -. Fixed ACE CDR LongDouble support on VxWorks 6.x - -. Added Microsoft Visual Studio 2008 project files to the release packages - -. Fixed a few bugs in the ACE_Vector template - -USER VISIBLE CHANGES BETWEEN ACE-5.6 and ACE-5.6.1 -==================================================== - -. Added support for CodeGear RAD Studio 2007 - -. Added support for CodeGear C++ Builder 2007 Update 3 - -. Modified the definiton of ACE_DEFAULT_THREAD_KEYS on Windows so it - is based on the version of the OS as defined by Microsoft in this web - page: http://tinyurl.com/2jqcmd - This fixes bugzilla #2753 - -USER VISIBLE CHANGES BETWEEN ACE-5.5.10 and ACE-5.6 -==================================================== - -. OpenVMS 8.3 on IA64 port - -. Added autoconf support for Intel C++ 10.0 - -. Improved autoconf support on Linux, Solaris, NetBSD and HPUX - -. CodeGear C++ Builder 2007 Update 2 support - -. The netsvcs's client logging daemon has a new configuration option, - -llocal-ip[:local-port], which can be used to specify the local IP - address and port number for the client logging daemon's connection to - the server logging daemon. If the -l option is specified with an IP - address but not a port number, an unused port number is selected. - -. A new ACE+TAO port to LabVIEW RT 8.2 with Pharlap ETS. The host build - environment is Windows with Microsoft Visual Studio .NET 2003 (VC7.1). - Please see the ACE-INSTALL.html file for build instructions. - -USER VISIBLE CHANGES BETWEEN ACE-5.5.9 and ACE-5.5.10 -==================================================== - -. The ACE_utsname struct, used in the ACE_OS::uname() function when the - platform doesn't provide the standard utsname struct, was changed. It - defines a number of text fields and their types were changed from - ACE_TCHAR[] to char[] in order to be consistent with all other platforms. - This removes the need to write different code for platforms where - ACE_LACKS_UTSNAME_T is set and that have wide characters (most probably - Windows). Fixes Bugzilla #2665. - -. The ACE::daemonize() "close_all_handles" parameter was changed from - an "int" to a "bool" to better reflect how it is used. - -. VxWorks 6.5 support. Compilation of the core libraries has been validated - but no runtime testing has been performed. - -. CodeGear C++ Builder 2007 support. - -. The FaCE utility was moved from the ACE_wrappers/apps directory to - ACE_wrappers/contrib. It is used for testing ACE+TAO apps on WinCE. - See the ACE_wrappers/contrib/FaCE/README file for more information. - -. ACE_INET_Addr::set (u_short port, char *host_name, ...) now favors IPv6 - addresses when compiled with ACE_HAS_IPV6 defined and the supplied address - family is AF_UNSPEC. This means that if host_name has an IPv6 address in - DNS or /etc/hosts, that will be used over an IPv4 address. If no IPv6 - address exists for host_name, then its IPv4 address will be used. - -. Intel C++ 10.0 support - -. Support for the version of vc8 for 64-bit (AMD64) shipped with the Microsoft - Platform SDK. - -. Fixed ACE_Vector::swap() (bugzilla #2951). - -. Make use of the Atomic_Op optimizations on Intel EM64T processors. The - Atomic_Op is now several times faster on EM64T then with previous versions - of ACE - -USER VISIBLE CHANGES BETWEEN ACE-5.5.8 and ACE-5.5.9 -==================================================== - -. Use Intel C++ specific optimizations for Linux on IA64 - -. Improved support for ACE_OS::fgetc. Added support for ACE_OS::fputc, - ACE_OS::getc, ACE_OS::putc and ACE_OS::ungetc. - -. Added support for ACE_OS::log2(double) and improved support for - ACE::log2(u_long). - -. Shared library builds on AIX now produce a libxxx.so file instead of the - previous practice of producing libxxx.a(shr.o). - -. GCC 4.1.2 that comes with Fedora 7 seems to have a fix for the visibility - attribute we use for the singletons. F7 users will therefore need to - define the following in your config.h file. - ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1 - -. Fixed (rare) problem in TP_Reactor where incorrect event handler was - resumed. - -. Reduced footprint on some platforms, particularly those that use - g++ >= 3.3. - -USER VISIBLE CHANGES BETWEEN ACE-5.5.7 and ACE-5.5.8 -==================================================== - -. Extended ACE_Event constructor with optional LPSECURITY_ATTRIBUTES - argument - -. Added support for QT4 - -. Added support to integrate with the FOX Toolkit (www.fox-toolkit.org) - -. Added support for Microsoft Visual Studio Code Name "Orcas", which is - the msvc9 beta - -. Added ability to provide an optional priority when calling - ACE_Message_Queue_Ex::enqueue_prio(). There was previously no way - to specify a priority for queueing. - -. Removed support for Visual Age on Windows. - -. ACE will compile once again with ACE_LACKS_CDR_ALIGNMENT #defined. - -. ACE_Process_Manager::terminate() no longer removes the process from the - process descriptor table; the pid remains available in order to call - ACE_Process_Manager::wait(). - -USER VISIBLE CHANGES BETWEEN ACE-5.5.6 and ACE-5.5.7 -==================================================== - -. ACE 5.5 contained a set of pragmas which prevented Visual Studio 2005 (VC8) - from issuing warnings where C run-time functions are used but a more - secure alternative is available. For more information on the C run-time - issues and Microsoft's response, please see the following MSDN page: - http://msdn2.microsoft.com/en-us/library/8ef0s5kh(VS.80).aspx. - In this beta, the pragmas which prevented the warnings have been removed. - The ACE library has been reviewed and most of the use of "unsafe" functions - has been fixed where possible. Since not all of the warnings emanating from - ACE are situations that can or should be fixed, the ACE VC8 projects will - prevent the warnings while building the ACE kit and its contained examples, - tests, etc. The warnings are disabled by adding Microsoft-specified macros - to the compile line via MPC. If desired, the warnings can be re-enabled by - regenerating the project files with different MPC features. Note, however, - that while ACE without warnings caused by the new C run-time functions, your - application builds may trigger these warnings either by use of the "unsafe" - C run-time functions or via use of an inlined ACE_OS method which uses it. - If the warning is caused by an ACE_OS method, there is a more safe alternate - available, probably located by appending _r to the method name (e.g., - instead of using ACE_OS::ctime(), use ACE_OS::ctime_r()). - There are other cases where the compiler may have issued warnings and ACE - prevented this via a #pragma. These #pragmas have been removed as well. - This may cause your application builds to trigger more warnings from VC8 - than past ACE versions. You should review your code and either correct - the code or disable the warnings locally, as appropriate. - -. The "release" argument to a number of ACE_String_Base<> methods was changed - from int to bool to more accurately reflect its purpose. The following - methods were changed: - - ACE_String_Base (const CHAR *s, - ACE_Allocator *the_allocator = 0, - int release = 1); - to - ACE_String_Base (const CHAR *s, - ACE_Allocator *the_allocator = 0, - bool release = true); - - ACE_String_Base (const CHAR *s, - size_type len, - ACE_Allocator *the_allocator = 0, - int release = 1); - to - ACE_String_Base (const CHAR *s, - size_type len, - ACE_Allocator *the_allocator = 0, - bool release = true); - - void set (const CHAR * s, int release = 1); - to - void set (const CHAR * s, bool release = true); - - void set (const CHAR * s, size_type len, int release); - to - void set (const CHAR * s, size_type len, bool release); - - void clear (int release = 0); - to - void clear (bool release = false); - - Since ACE_String_Base forms the basis of the ACE_CString and ACE_TString - classes, this may ripple out to user application code. If you encounter - errors in this area while building your applications, replace the - int argument you are passing to the method now with either true or false. - -. Solutions for the eVC3/4 platform have been removed from this - release. Note that we package WinCE projects/workspaces for use - with VC8. - -. There were 3 new ACE_Log_Msg logging format specifiers added to make logging - easier for types that may change sizes across platforms. These all take one - argument, and the new formats are: - %b - format a ssize_t value - %B - format a size_t value - %: - format a time_t value - -. The ace/Time_Request_Reply.h and ace/Time_Request_Reply.cpp files were - moved from $ACE_ROOT/ace to $ACE_ROOT/netsvcs/lib. The time arguments in - the public API to ACE_Time_Request were changed from ACE_UINT32 to time_t - and the portions of the on-wire protocol that contains time was changed from - ACE_UINT32 to ACE_UINT64. Thus, code that uses the ACE_Time_Request class - to transfer time information will not interoperate properly with prior - ACE versions. This will affect uses of the netsvcs time clerk/server. - -. The portion of the ACE_Name_Request class that carries the on-wire seconds - portion of a timeout value was changed from ACE_UINT32 to ACE_UINT64. This - means that Name server/clients at ACE 5.5.7 and higher will not interoperate - properly with previous ACE versions' name servers/clients. - -. In the ACE_Log_Record (ACE_Log_Priority, long, long) constructor, the - second argument, long time_stamp, was changed to be of type time_t. This - aligns the type with the expected value, a time stamp such as that returned - from ACE_OS::time(). - -. Added support for VxWorks 6.x cross compilation using a Windows host - system - -. Added support for VxWorks 6.x using the diab compiler - -. The destructor of ACE_Event_Handler no longer calls - purge_pending_notifications(). Please see bugzilla #2845 for the full - rationale. - (http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2845) - -USER VISIBLE CHANGES BETWEEN ACE-5.5.5 and ACE-5.5.6 -==================================================== - -. The ACE_TYPENAME macro has been added to those that are not - available when the ACE_LACKS_DEPRECATED_MACROS config option is set - (it is not set by default). You are encouraged to replace the use of - ACE_TYPENAME with the C++ typename keyword before the ACE_TYPENAME - macros is removed from ACE in the future. - -. A new script, rm_exception_macros.pl, has been added to help users - remove the use of the ACE exception macros from their own code. - -USER VISIBLE CHANGES BETWEEN ACE-5.5.4 and ACE-5.5.5 -==================================================== - -. The prebuild MPC keyword is now supported by the gnuace project type. - This fixes Bugzilla #2713. - -. Support for Windows earlier than NT 4 SP2 was removed. ACE will not build - for Windows 95, 98, Me, etc. out of the box any longer. - -. Reformat stringified IPv6 addresses to use [addr]:port when printing - addresses that contain ':' such as "::1". - -. Added method to ACE_INET_Addr to determine if address is IPv6 or - IPv4 multicast. - -. Fixed a bug in ACE_Async_Timer_Adapter_Timer_Queue_Adapter where the - gettimeofday function of the timer queue was ignored when setting the alarm. - -. Fixed a problem where, on Solaris 9 onwards, calling - ACE_OS::thr_create(THR_NEW_LWP) more than 2^15 (65535) times in a - process will fail. See changelog entry from "Wed Jan 3 22:31:05 UTC - 2007 Chris Cleeland " for more information. - -. Fixed a bug in ACE_QtReactor where the two select() calls in that function - might select on different handler sets. - -. ACE_SOCK_IO::recvv(iovec[], size_t, const ACE_Time_Value* = 0) and - ACE_SOCK_IO::sendv (const iovec[], size_t, const ACE_Time_Value* = 0) methods - were changed to specify the iovec count argument as int instead of size_t - since it gets reduced to int in the underlying OS calls (usually). - -. The following deprecated methods were removed: - - ssize_t ACE_SOCK_IO::recv (iovec iov[], - size_t n, - const ACE_Time_Value *timeout = 0) const; - - ssize_t ACE_SOCK_IO::recv (iovec *io_vec, - const ACE_Time_Value *timeout = 0) const; - - ssize_t ACE_SOCK_IO::send (const iovec iov[], - size_t n, - const ACE_Time_Value *timeout = 0) const; - - These were previously replaced with more specific recvv() and sendv() - methods. - -. The ACE_Service_Repository::find(const ACE_TCHAR name[], - const ACE_Service_Type **srp = 0, - int ignore_suspended = true) const - method's 'ignore_suspended' parameter was changed from int to bool to - reflect it's purpose as a yes/no indicator. - -. Added --enable-ace-reactor-notification-queue configure script - option to the autoconf build for enabling the Reactor's userspace - notification queue (defines ACE_HAS_REACTOR_NOTIFICATION_QUEUE in - config.h). - -. The int ACE_OutputCDR::consolidate(void) method was contributed by - Howard Finer at Sonus Networks. This method consolidates any continuation - blocks used by an ACE_OutputCDR object into a single block. It's useful for - situations which require access to a single memory area containing the - encoded stream, regardless of its length, when the length cannot be known - in advance. - -. There are a number of new methods defined on ACE_String_Base: - - size_t capacity (void) const: This method returns the number - of allocated CHAR units in the string object. - - void fast_resize (size_t): This method manage the sizing/reallocating - of the string, but doesn't do the memory setting of resize(). - - bool operator!= (const CHAR *) const - bool operator== (const CHAR *) const: These methods compare the - string with a nul-terminated CHAR* string. - - nonmember functions operator== and operator!= where also added - that compare const ACE_String_Base and const CHAR*; these make - it possible to switch ACE_String and CHAR* on either side of - the operator. - - Thank you to Kelly Hickel for these additions. - -. There are 2 new build options on the traditional make command: - dmalloc and mtrace. When specified at build time (e.g. make mtrace=1) - the PLATFORM_DMALLOC_CPPFLAGS and/or PLATFORM_MTRACE_CPPFLAGS values - are added to CPPFLAGS. For dmalloc, the PLATFORM_DMALLOC_LDFLAGS and - PLATFORM_DMALLOC_LIBS are added to LDFLAGS and LIBS, respectively. - Thank you to Howard Finer for supplying these additions. - -. Added the ability to specify additional purify and quantify command-line - options by setting PLATFORM_PURIFY_OPTIONS and PLATFORM_QUANTIFY_OPTIONS, - respectively. Thank you to Howard Finer for supplying these additions. - -. Added the ability to use trio (http://sourceforge.net/projects/ctrio/) - if platform lacks decent support for vsnprintf. trio support is - enabled by defining trio=1 in plaform_macros.GNU - -. Removed Irix 5, DGUX, and m88k support - -. Improved LynxOS 4.2 support - -. VxWorks 6.4 support - -. Added support for FC6. Because the GCC 4.1.1 version that gets shipped - has a fix for the visibility attribute we use for the singletons - you will need to define the following in your config.h file. This can't be - done automatically because SuSE 10.2 gets shipped with GCC 4.1.2 but - doesn't have the same fix - ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1 - -. RTEMS port - -USER VISIBLE CHANGES BETWEEN ACE-5.5.3 and ACE-5.5.4 -==================================================== - -. Added appropriate intptr_t and uintptr_t typedefs on platforms that - don't provide them (i.e. when ACE_LACKS_INTPTR_T is defined). - -. Added ability to explicitly choose support for 32 bit or 64 bit file - offsets on all platforms. Define the _FILE_OFFSET_BITS preprocessor - symbol to either 32 or 64 to choose the desired number of file - offset bits. This preprocessor symbol is supported natively by most - UNIX and UNIX-like operating systems, and supported by ACE on - Windows. Use the new ACE_OFF_T typedef to refer to file offsets - across UNIX and Windows portably. - -. 64-bit file offsets are now enabled by default in Win64 - configurations. - -. Improved support for 64 bit platforms (64 bit addresses, etc). - -. Added STL-style traits, iterators and a swap() method to the - ACE_Array_Base<> class template. - -. Added STL-style traits and iterator accessors to the - ACE_Hash_Map_Manager_Ex<> class template, as well as new find() and - unbind() methods that return (as an "out" parameter) and accept - iterators, respectively. - -. Greatly improved event handler dispatch performance in - select()-based reactors (e.g. ACE_Select_Reactor and ACE_TP_Reactor) - for large handle sets on Windows. Previous event handler search - were linear, and are now constant on average. - -. Addressed a number of Coverity errors (CHECKED_RETURN, DEADCODE, - LOCK, USE_AFTER_FREE, RESOURCE_LEAK, FORWARD_NULL). - -. Added STL-style "element_type" trait to all ACE auto_ptr class - templates. - -. Removed support for LynxOS 3.x. - -. Resolved Bugzilla #2701 to ensure fini() is called for all - Service Objects upon calling ACE_Service_Config::close() - -. VxWorks 5.5.2 has been tested, for ACE the support is exactly - the same as for VxWorks 5.5.1. No specific defines or flags have - to be used. - -USER VISIBLE CHANGES BETWEEN ACE-5.5.2 and ACE-5.5.3 -==================================================== - -. Added the base projects for executionmanager_stub and plan_generator. - -. Added the ACE_Hash_MultiMap_Manager class and its test file. - -. Changed the ACE_Synch_Options::operator[] method to return bool rather than - int. The value returned is a yes/no indication of whether or not the - specified option(s) are set in the object. - -. Changed the prototype(s) for ACE::debug () to return (and take) a - bool. This is consistent with the original intent for this - feature. If you have been using it like 'ACE::debug () > 0' or - 'ACE::debug (1)', you may have to rebuild ACE. The value of the - ACE_DEBUG environment variable can be used to specify the initial - value for ACE::debug(), at the process start up. - -. An assembler (within a C source file) based implementation for SPARC - of atomic operations suitable for use with the - ACE_Atomic_Op and - ACE_Atomic_Op specializations has - been added. Currently, it can only be enabled by setting the - atomic_ops_sparc make macro to 1 when using the GNUACE build system with - the Solaris SunCC compiler. It should be noted that this requires the - -xarch=v8plus (or higher) be added to the CFLAGS make macro or the - assembler code will not compile. - -. The ACE_Message_Queue_Ex_N class - is new, contributed by Guy Peleg . - ACE_Message_Queue_Ex_N is - similar to ACE_Message_Queue_Ex in that the object queued is a - template parameter. However, ACE_Message_Queue_Ex_N allows the - enqueueing and dequeueing of multiple chained objects at once. This - wasn't added to ACE_Message_Queue_Ex because the chained object - functionality requires the ACE_MESSAGE_TYPE class to have a - ACE_MESSAGE_TYPE *next (void) const method, analogous to - ACE_Message_Block::next(), to follow the chain and this would - probably break existing applications using ACE_Message_Queue_Ex. - The ACE_wrappers/tests/Message_Queue_Test_Ex.cpp test has an example of - how to use the new class. - -. The selector and comparator function pointer arguments to ACE_OS::scandir() - and ACE_Dirent_Selector are now marked as extern "C" to enforce their - use with a C RTL function. User code that defines functions which are - passed as the selector or comparator arguments which are not declared - extern "C" may generate compile warnings. To resolve this, add extern "C" - to the function's signature. See ACE_wrappers/tests/Dirent_Test.cpp for - an example. - -. To address a problem in the ACE string interface that prevented - substring or character searches in very large strings (e.g. greater - than the maximum value of an ssize_t type) from being correctly - reported to the caller, the find(), rfind() and strstr() methods now - return an unsigned integer (size_t) instead of a signed one - (ssize_t). Affected classes include: - - * ACE_CString - * ACE_WString - * ACE_TString - * ACE_NS_WString - - Unless you have been explicitly using -1 instead of npos when - comparing the return value of find(), rfind() and strstr(), and/or - assigning the return value to ssize_t you should not see any - difference. A new size_type typedef has been added to the ACE string - class to aid developers. This typedef is analogous to the standard - C++ string::size_type typedef. - - The ACE_String_Base<>::strstr() documentation and the default - rfind() argument erroneously referred to -1 instead of npos. Those - instances have been corrected. - - To summarize, a "no position" condition is denoted using the npos - constant, not -1. It can be referred directly by scoping it with the - appropriate string class (e.g. ACE_CString::npos, ACE_WString::npos, - etc). - -. Changing the shared library extension for hpux ia64 to ".so". On - HP-UX 11i Version 1.5 the naming scheme is lib*.sl for PA and - lib*.so on IPF. - -. The ACE_Refcounted_Auto_Ptr reset() and release() methods were changed - per Bugzilla #1925. They will both now detach from the underlying - ACE_Refcounted_Auto_Ptr_Rep object; reset() will create a new one for - the new pointer specified as its argument. This change may cause referenced - objects to be deleted in cases where previous ACE versions would not have. - -. The return type of "ACE_Refcounted_Auto_Ptr::null (void) const" changed - from int to bool. It's possible values, true and false, have not changed. - -. TTY_IO now accepts "none" as a valid parity value. Due to this change - 'parityenb' member is now deprecated and will be removed in the future. - The users of TTY_IO class should change their code to use only 'paritymode' - member for parity control and leave 'parityenb' unchanged (it is - enabled by default in class constructor). - -. Support for Intel C++ 9.1 on Windows and Linux - -. VxWorks 6.3 support - -. Fixed Bugzilla #2648 to make sure ACE_Service_Object::fini() - is called iff ACE_Service_Object::init() succeeded, as per - C++NPv2. - -. Added preliminary support for Mac OS X 10.4 on Intel CPU's. - -. Fixed Bugzilla #2602 to re-enable XML Service Configurator - file support. - -USER VISIBLE CHANGES BETWEEN ACE-5.5.1 and ACE-5.5.2 -==================================================== - -. Added support for: - - VxWorks 6.2 for the rtp model using pthread support - - OpenVMS 8.2 for Alpha - -. Removed code and configurations that provided support for: - - Visual C++ 6.0 and 7.0 - - Chorus - - pSOS - - KAI C++ on all platforms - -. Explicit template instantiation support has been removed. This effectively - removes support for Sun Forte 6 and 7 which required explicit template - instantiation to build ACE reliably. - -. Added support for multiple independent Service Repositories through - configuration contexts called "Gestalt". Full backwards compatibility - is maintained through the existing ACE_Service_Config static methods, - while direct individual repository access is enabled through instances - of the new ACE_Service_Gestalt class. ACE_Service_Config has changed to - a specialization of ACE_Service_Gestalt and is only responsible for the - process-wide configuration. - -. To support dynamically-sized ACE_Log_Record messages, the netsvcs - logging components now use ACE CDR encoding and transfer mechanisms - inspired by the examples in Chapter 4 of the C++NPv1 book. - The client and server logging daemons in ACE 5.5.2 and forward will - not interoperate with those in previous ACE versions. - -. Added a wrapper for the sendfile API (ACE_OS::sendfile()). - -. Added support for netlink sockets on Linux. - -. Added a new method, ACE_Task::last_thread(). This method returns the thread - ID (ACE_thread_t) of the last thread to exit from the ACE_Task object. - Users checking to see if a thread is the last one out (for example, to know - when to perform cleanup operations) should compare the current thread ID to - the return value from last_thread(). This is a change from the previously - recommended practice (C++NPv2, page 189) of comparing the return value of - thr_count() with 0. - -. Changed the first argument to ACE_OS::strptime() to be 'const' which - matches its usual usage in POSIX strptime(). This change allows users to - pass const strings in - a common use case. - -. Made part of the file support in ACE 64bit but we have some places where - 32bit types are used, this could lead to some conversion warnings which - will be addressed in the near future, but getting everything 64bit - compliant is a lot of work. - -USER VISIBLE CHANGES BETWEEN ACE-5.5 and ACE-5.5.1 -==================================================== - -. Added support for the --enable-symbol-visibility configure option - to the autoconf build infrastructure instead of solely relying on - feature tests to enable/disable symbol visibility support. This - avoids build problems with icc, etc. - -. Added support for the --enable-fl-reactor configure option to the - autoconf build infrastructure to build the ACE_FlReactor library. - -. Added support for the --enable-qt-reactor configure option to the - autoconf build infrastructure to build the ACE_QtReactor library. - -. Added support for the --enable-xt-reactor configure option to the - autoconf build infrastructure to build the ACE_XtReactor library. - -. Fixed a bug that would cause timer IDs from ACE_Timer_Heap to be - improperly duplicated under certain conditions (Bugzilla #2447). - -. Fixed ACE_SSL_Context::private_key(), context(), and dh_params() methods - to allow retrying a file load after a failed call. - -. Fixed ACE_SSL_Asynch_Stream so it can be instantiated; also moved the - declarations for ACE_SSL_Asynch_Read_Stream_Result, - ACE_SSL_Asynch_Write_Stream_Result, and ACE_SSL_Asynch_Result classes - to the ace/SSL/SSL_Asynch_Stream.h file so applications can see them. - -USER VISIBLE CHANGES BETWEEN ACE-5.4.10 and ACE-5.5 -==================================================== - -. Added a platform macros option "templates=manual", currently only - applies to AIX 5.3 with XL 7 compiler. It allows the user to tell the - compiler to set -qnotempinc and -qnotemplateregistry and works well - in static builds. - -. ACE and its tests compile error free with GCC 4.1 pre release. - -. ACE_Recursive_Thread_Mutex::get_nesting_level() fixed for 64-bit Windows - XP on amd64/EM64T hardware. - -. Many build-time fixes for Windows Mobile 5 and Windows PocketPC 2003 using - Visual Studio .NET 2005 (VC8). - -. Added support for the --enable-tk-reactor configure option to the - autoconf build infrastructure to build the ACE_TkReactor library. - -USER VISIBLE CHANGES BETWEEN ACE-5.4.9 and ACE-5.4.10 -==================================================== - -. Fixed a bug in ACE_Timer_Heap_T::cancel(). - -. Improved ACE_Time_Value support for boundary conditions. - -. Fixed problems with operator placement delete on certain C++ compilers. - -. Fixed a bug with the ACE_SPIPE_Acceptor on Windows. - -. Correctly set sockaddr_in.sin_len and sockaddr_in6.sin6_len on - platforms that have these fields. - -. Avoided problems with namespace pollution for max() macros. - -. Many fixes for ACE_LACKS* and ACE_HAS* macros for autoconfig. - -USER VISIBLE CHANGES BETWEEN ACE-5.4.8 and ACE-5.4.9 -==================================================== - -. Added dozens of new ACE_LACKS and ACE_HAS defines which are used to - simplify the ACE_OS layer - -. Constructors of ACE_Time_Value have been made explicit to prevent - implicit conversions. - -. Added a shutdown() method to ACE_Barrier. The new method aborts the - wait by all threads. - -. Changed the behavior of ACE_Message_Queue::enqueue_head() and - enqueue_tail(). If the enqueued message block has other blocks - chained to it via its next() pointer, the entire chain of blocks - will be enqueued at once. - -. Improved the support for high-resolution timers with - ACE_Timer_Queue_Adapter. - -. Make it possible to disable file caching in JAWS. - -. Improved ACE_Pipe implementation so that it uses localhost to avoid - firewall problems. - -. Added Unicode support to the Service Configurator. - -USER VISIBLE CHANGES BETWEEN ACE-5.4.7 and ACE-5.4.8 -==================================================== - -. Improved IPv6 support - -. Improved 64bit portability - -. TTY_IO overhaul - - Improved documentation. - - It is now possible to request infinite timeout in portable manner. - This can be achieved by setting negative value to readtimeoutmsec. - - Various bugs fixed and portability issues resolved. - -. Subset ACE for TAO and TAO Services - -. Support for Intel C++ 9.0 on Windows and Linux - -. Support for Microsoft Visual Studio 2005 (aka VC8) for Win32 as well - as the Windows CE platforms Pocket PC 2003 and Windows Mobile 5. - Solution/project files are generated with an appended "_vc8" for - Win32 and "_WinCE" for the CE platforms. See - ACE_wrappers/docs/CE-status.txt for more information. - -. Completed implementation of ACE_Dev_Poll_Reactor using the Linux epoll - facility; tested on Red Hat Enterprise Linux 4. - -. The in-memory size of an ACE_RB_Tree will be smaller due to rearranged - placement of pointers. - -. Added an optimization to CDR stream to ignores alignment when marshaling - data. Use this new ACE_LACKS_CDR_ALIGNMENT compile-time option only - when the ACE_DISABLE_SWAP_ON_READ macro is enabled. This new option - requires ACE CDR engine to do both marshaling and demarshaling, and - when this option is enabled the encoded streams are no longer - compliant with the CORBA CDR specification. - -. Developed Feature Oriented Customizer (FOCUS) tool to enable - specialization of middleware frameworks such as Reactor and Protocol - framework. FOCUS provides an XML based transformation engine, where - the transformations to specialize the components are captured in XML - file and a weaver specializes the code. - -. Added support for unrolling ACE_OS::memcpy copy loop where - applicable to improve performance. Autoconf tests empirically - determine whether loop unrolling is at least 10% better than default - version. - -. Added support for an ACE "versioned" namespace. When enabled, ACE - library sources will be placed within a namespace of the user's - choice or a namespace of the form ACE_5_4_7 by default, where - "5_4_7" is the ACE major, minor and beta versions. The default may - be overridden by defining the ACE_VERSIONED_NAMESPACE_NAME - preprocessor symbol. Enable overall versioned namespace support by - adding "versioned_namespace=1" to your MPC default.features file. - -USER VISIBLE CHANGES BETWEEN ACE-5.4.6 and ACE-5.4.7 -==================================================== - -. Support for shared libraries with VxWorks - -. Support for Solaris 10 on x86 with Sun Studio 10 (C++ 5.7). - -. Extended ACE_OS::event_xxx implementation to support platforms - having either PThread support with Process Shared condition - variables or POSIX semaphores with named (process shared) - semaphore support or using the new FIFO based semaphores. - -. ACE_OS::closesocket() no longer calls ACE_OS::shutdown() on any platform - while closing the socket. It previously called ACE_OS::shutdown() on - HP-UX. Removing this call fixes the fork-and-close programming paradigm - that's common to many networked applications. - -. RMCast - - Support for message fragmentation. This will allow - for messages larger than 64K. - - Support for flow control. - - Timed recv() in RMCast::Socket. - - Per-instance configurable protocol parameters (e.g., message - retention time, NAK timeout, etc). - -USER VISIBLE CHANGES BETWEEN ACE-5.4.5 and ACE-5.4.6 -==================================================== - -. Updated RMCast to include - - Reactor-compatible interface. - - Message unavailability reporting. - - Protocol documentation. - -. Added support for 64bit Visual Age on AIX - -. Improved g++ 4.0 support. A number of RTTI related problems have been - fixed. - -. Smaller footprint. - -. Fixed memory leaks ACE_DLL and ACE_Log_Msg classes. - -. The ACE::ICMP_Socket and ACE::Ping_Socket classes were moved out of - the ACE namespace and "flattened" to ACE_ICMP_Socket and - ACE_Ping_Socket to be consistent with the rest of ACE. - -. ACE_INET_Addr::set_address() - fixed a possible struct member - alignment issue when building an IPv4-mapped IPv6 address. - -. Added a new ACE::wild_match() function to match a string based on - wildcards. - -. Added efficient overloads for string concatenation to the - ACE_String_Base class. - -. Added support for the use of pthread_getschedparam on MacOS X. - -. Fixed an issue with static initialization of TSS related classes on - static builds for Windows. - -USER VISIBLE CHANGES BETWEEN ACE-5.4.4 and ACE-5.4.5 -==================================================== - -. Remove special handling in the Thread Specific Storage(TSS) code - that released the TSS key for ACE_TSS. ACE_TSS has - been changed to explicitly free the TSS key when necessary. - -. On Win32 systems: detect thread termination via a hook in DLLMain - for ACE.dll. This allows cleanup of TSS objects for non-ACE threads - that use ACE functions. The most common case was threads that used - ACE logging. Formerly any TSS objects created by these threads would - be leaked. - -. Added support for GNU G++ 4.0. The x.4.5 beta takes advantage of - g++ 4.0's symbol visibility. This feature is conceptually similar - to MS Windows "__declspec(dllexport)" DLL functionality. Using this - new g++ feature results in substantially improved ACE/TAO/CIAO - shared library binaries. A subset of the improvements include the - following: - - * The number of unnecessarily exported DSO/DLL symbols is - greatly reduced, resulting in faster program start times. - * Smaller footprint. - * Improved performance since run-time indirection of internal - symbols is no longer needed. - - No changes to the ACE/TAO sources were necessary to support this - feature since the required visibility attributes were hidden behind - the various "*_Export" macros (formerly only useful for MS Windows - DLLs) used throughout ACE/TAO. - -. The ACE_Reactor destructor will now call close() on the referenced reactor - implementation. This assures that all handlers are notified before the - ACE_Reactor object that's most likely referenced in these handlers is - invalid. Although this should not be a user-visible change, it did catch - some ACE tests off guard destroying reactor implementations and ACE_Reactor - interfaces in the wrong order, so it may come up in the field as well. - When using dynamically allocated reactor implementations, do not destroy - the implementation object before the ACE_Reactor interface object. Use of - the ACE_Reactor constructor's delete_implementation argument (with a value - of 1) is recommended when dynamically allocating reactor implementations. - -. Improved performance of HTBP by not requiring a lookup of peer hostname. - -. Added new ACE_SizeCDR stream which allows one to calculate size of the - representation without writing anything. - -. Number of improvements in RMCast, reliable multicast implementation. - -USER VISIBLE CHANGES BETWEEN ACE-5.4.3 and ACE-5.4.4 -==================================================== - -. The ace-config script has been replaced by pkg-config metadata files - which are installed in ${prefix}/lib/pkgconfig by the automake build. - -. Remove ACE_OS::gets() implementation. While this ACE implementation - of gets() did not contain the security holes that all standard - gets() implementations have, keeping it around only serves to foster - confusion since (1) some may incorrectly assume that this - ACE-specific gets() implementation has the same holes as standard - ones, and (2) invoking it with a default size argument so that it - looks like a standard gets() call results in behavior that is - different from the standard. Use ACE_OS::fgets() instead. - -. Removed ACE_Unbounded_Set_Ex, this gave the false idea that it had - thread safe iterators. Use ACE_Unbounded_Set instead - -. Improved VxWorks support for static libraries. Shared libraries do cause - several known problems which will be fixed in the x.4.5 release. - -. Removed the usage of the ACE_x_cast macros, we are using the C++ casts - from now on. The ACE_x_cast macros are deprecated and will be removed - after the x.5.1 release - -. Some improvements in autoconf support; better detection of available - OS and compiler features. - -. Fixed bugs in ACE TSS emulation - -USER VISIBLE CHANGES BETWEEN ACE-5.4.2 and ACE-5.4.3 -==================================================== - -. Improved Cygwin 1.5.12 support, 90% of the tests now succeed - -. Improved OpenVMS support. - -. Added ability to use fltk with Cygwin/MinGW - -. Added ACE_INT64 that defines a native 64 bit type. - -. Added 'q' as usable specifier for ACE_Log_Msg to print out int64 bit number. - -. Added better support for Intel C++ compilers. - -. Improved HPUX support. - -. Added a new directory ("ACE_wrappers/protocols/ace") for new protocols - that are not directly components of ACE, but are relate to ACE and - defined a new protocol, HTBP (Hypertext Tunneling, Bidirectional - Protocol) providing ACE_Acceptor/Connector/Stream semantics over a - connection owned by an HTTP proxy. Test cases in - ACE_wrappers/tests/HTBP provide examples of use. - -. Performace enhancement in TP_Reactor's handle_timer_events method [Bug - 1971]. - -. Various changes to permit ACE to execute on HP NonStop platform (e.g - support for its pthreads version). - -. Updated HP NonStop configuration files (config-tandem-nsk). - -. The "ACE" pseudo-namespace is now a true C++ namespace. Transitional - pseudo-namespaces that were only meant to be used internally by ACE, - such as "ACE_Sock_Connect", no longer exist. - -. ACE_CDR::Boolean type is now a true C++ "bool" on all platforms except - MSVC++ 6. We plan to deprecate MSVC++ 6 support sometime after the - x.5 release of ACE+TAO+CIAO, so we recommend you start migrating to a - later version of MSVC++. - -. More GNU g++ 3.4.x fixes. - -. Added ICMP and "ping" socket support. - -. Added mkstemp() emulation. - -. Fixed problem on Linux < 2.5.47 platforms where equality comparison of - two logically equal sockaddr_in structure instances would incorrectly - fail. - -. Support for wide characters has been improved on non-Windows - platforms. - -. A number of Windows CE problems have been fixed. - -. ACE's loading of DLLs (for example, as a result of loading synamic - services) has been changed to use the native OS's facilities for - locating the DLL instead of searching LD_LIBRARY_PATH (or its - equivalent) then loading the DLL using a full pathname. This restores - enforcement of a platform's loading and security policy. To use the - old DLL locating method, add ACE_MUST_HELP_DLOPEN_SEARCH_PATH to your - config.h file before building ACE. - -. A number of errors in the APG example programs have been corrected. - -. Select_Reactor and Priority_Reactor performance improved. [Bug 1890] - -. Wide-char functionality on POSIX (Linux, etc.) - -. TSS memory leak fixes [Bug 1542] - -. Ported to HPUX 11i v2 on Itanium - -. Added code to ACE for platform RedHat AS 3.0 on Opteron. - -. Changed ACE::crc32() family of functions to NOT fold in the length of - the string/buffer/iovec into the CRC. - - -USER VISIBLE CHANGES BETWEEN ACE-5.4.1 and ACE-5.4.2 -==================================================== - -. Support for g++ 3.4.1. - -. All ACE Makefiles, project files, etc, are now generated by OCI's - "MakeProjectCreator" (MPC) tool. Makefiles and project files for - commonly used configurations have been pre-generated and distributed - with the beta(s). Please see: - - $ACE_ROOT/ACE-INSTALL.html - - for information on how to use MPC with ACE. - -. Improved Doxygen documentation. - -. Reduced header file dependencies, which should speedup compilation - and help minimize static footprint. - -. ACE now requires support for the following standard C++ features: - - - "bool" keyword - - - "mutable" keyword - - - "explicit" keyword - - - C++ casts (e.g. static_cast<>, reinterpret_cast<>, dynamic_cast<> - and const_cast<>) - - If you're using a compiler that does NOT support these features - please contact Steve Huston for support. - -. Changed the select()-based reactor implementations to scan for - broken handles to remove based on the registered handles, not on - event handlers. This allows for bad handles to be removed from the - reactor even if the event handler doesn't implement get_handle() the - way we expect. - -. Support for Pthreads native recursive mutexes was added. This - capability is specified to ACE_OS::mutex_init() as an optional - argument, lock_type. To fix confusion from an earlier attempt to add - this functionality, the meaning of the old 'type' argument to - ACE_OS::thread_mutex_init() is changed. It previously combined the - scope and type. Now it is just the type (e.g. recursive), as the - scope is inherent in the method used. For clarification on - ACE_HAS_RECURSIVE_MUTEXES, it means that the platform is capable of - them, not that they always are, as one would expect. However, before - Pthreads had recursion added, it was never optional. Now it is. - -. Initial support for new Linux sys_epoll() interface in - Dev_Poll_Reactor. The obsolete Linux /dev/epoll interface is no - longer supported. - -. Improved Cygwin support. - - Threading works without problems. - - Problems with shared memory, process shared mutexes, multicast and - some other small things still exist. - -. New OpenVMS port. - - This is for the latest version of OpenVMS with all available ECOs - applied. Basic stuff works without problems. Advanced features - still need some work. - -. Usage of ASYS_INLINE is deprecated in ACE. Use ACE_INLINE instead. - -. All inline source files now end in ".inl". The previous ".i" - extension is generally used for preprocessed C sources. - -. Autoconf support has been improved and fixed on a number of - platforms, including the BSD variants (e.g. FreeBSD). It is still - not the preferred way to configure most platforms, but it is ready - for wider testing. Please report any problems found to - ace-bugs@cs.wustl.edu. - -. A number of fixes were made to quiet compile errors and warnings on - 64-bit Windows. - -. For builds on AIX using Visual Age C++, the make rtti option default - was changed to 1, enabling RTTI by default. - -. ACE_Service_Repository::remove() has a new, optional argument that - can receive the service record pointer for the removed service. If - the pointer is returned to the caller, it is not deleted. If the - pointer is not returned to the caller (the default) it is deleted - (this is the historic behavior). - -. The tutorials in ACE_wrappers/docs have been removed. They were not - being maintained and caused confusion in a number of cases. Now that - there are complete examples that match the printed books (C++NPv1, - C++NPv2, APG), the older tutorials are no longer useful. Please see - - $ACE_ROOT/examples/C++NPv1/ - $ACE_ROOT/examples/C++NPv2/ - $ACE_ROOT/examples/APG/ - - for the source code of the examples in those books. - -. ACE_String_Base::fast_clear() is a new method which sets the string - length to 0. Doesn't release string-allocated memory, but if the - memory was externally supplied, it is no longer referenced from the - string object. - -. A true C++ "bool" is now used as the CDR stream boolean type, if - supported by the compiler. - -. Renamed AIX 5L configuration header from config-aix5.1.h to - config-aix-5.x.h. - -. All C++ equality, relational and logical operators now return bool - instead of int, as is the norm for modern C++. - -. Added new ACE_OS::realpath() implementation. Contributed by Olli - Savia - - -USER VISIBLE CHANGES BETWEEN ACE-5.4 and ACE-5.4.1 -==================================================== - -ACE ---- - -. Fixed "make install" support in ACE+autoconf configurations. - -. Fixed autoconf support on Solaris. - -. Corrected invalid `aux' directory (on MS Windows) found in ACE - distribution. - -. ACE/TAO build now without problems with MinGW and all ACE tests run - now without problems - -. Added some more support for the new CBuilderX Preview compiler, this - is not 100% ready yet because the compiler is still a preview and - has its own problems. - -. Added Visual SlickEdit 8.1 MPC template - -. Added workaround for compile problems in Borland Release builds - -. Cygwin 1.5.9 is now supported - -. Tests for IPV6 have been added - -. Implement lstat() so that it'll use stat() on platforms that don't - support lstat(). - -. Problems related to ACE_Event_Handler usage in WFMO_Reactor was - fixed. - -. A wrapper for rmdir () has been added. - -. Threads spawned in thread-per-connection mode never inherited the - priority. This problem was fixed and this fix is consistent with the - C++ NPV* books. - -. Fixed memory leaks with ACE_String_Base::resize () - -. Enable the usage of native recursive mutexes for the implementation - of ACE recursive mutexes on Linux. - -. The ACE Proactor framework can now be enabled for AIX 5.2. Since AIO - functionality is not run-time enabled by default on AIX 5.2, the ACE - Proactor code is not built by default on AIX. To enable it, the - config.h file must contain #define ACE_HAS_AIO_CALLS before - including the config-aix-5.1.h file. - -. The ACE_POSIX_CB_Proactor implementation is now built on all - platforms except LynxOS. - - -USER VISIBLE CHANGES BETWEEN ACE-5.3.6 and ACE-5.4 -================================================== - -ACE: ---- -. Added a new makefile commandline flag, static_link, that can be - used to force static linking when static_libs_only is turned on. It - uses the new STATIC_LINK_FLAG variable and is currently only - implemented for for GNU ld, i.e., it adds the "-static" option to - LDFLAGS. It's turned off by default since using it causes the - footprint to go up by almost 1 MB on Linux, since it links all the - system and compiler .a files, but can be turned on if users - want/need to use it, by enabling both static_libs_only and static_link. - - -. Added macros ACE_USES_GPROF which enables users to use gprof in a - multithreaded environment with ACE libs. - -. Added a new functor template class, ACE_Malloc_Lock_Adapter_T, - that's used by ACE_Malloc_T as a factory for the ACE_LOCK template - parameter, and allows the use of locking strategy classes, like - ACE_Process_Semaphore and ACE_Thread_Semaphore that don't have a - satisfactory ctor taking a single required ACE_TCHAR* parameter, to - be adapted to work with ACE_Malloc_T. - -. The source code examples from "The ACE Programmer's Guide" book by - Huston, Syyid, and Johnston, are now located in - $ACE_ROOT/examples/APG. - -. Support for GNU autoconf is now in ACE. Please see ACE-INSTALL.html - for details. - -. Fixed problems that prevented ACE from being compiled on LynxOS - 4.0.0. - -. Fixed compilation error which prevented ACE from being compiled when - ACE_COMPILE_TIMEPROBES was set to 1. - -. Preliminary support for Tandem NSK has been added. - -. Lots of bug fixes with TLI and XPG5. Please see $ACE_ROOT/ChangeLog - for details. - -. Fixed ACE_OS::event_timedwait() and ACE_OS::event_wait() so that - they use a while loop around the ACE_OS::cond_[timed]wait() calls to - avoid problems with spurious wakeups, etc. - -. ACE's wrapper around getipnodebyname() and getipnodebyaddr () has - been made go through the IPv4-only case on ACE_WIN32. Since Windows - IPv6 implementation doesn't offer support (at thistime) for - getipnodebyname() the code has been changed to use the IPV4 part of - the code. - -. Install with Borland C++ of ACE library fixed - -ACEXML: -------- - -. Fixed memory leak in ACEXML parser. - -. Fixed implementations of rewind() in all the CharStreams. They were - broken previously. - -. Fixed bugs in the parser associated with incorrect handling of PE - References for keywords. diff --git a/ACE/PROBLEM-REPORT-FORM b/ACE/PROBLEM-REPORT-FORM deleted file mode 100644 index 7843ba864eb..00000000000 --- a/ACE/PROBLEM-REPORT-FORM +++ /dev/null @@ -1,90 +0,0 @@ -[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 - 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. - - We prefer that all bug reports be submitted through our bug tracking - system. See $ACE_ROOT/docs/usage-bugzilla.html for more information - about how to do this. If you are unsure as to whether your problem - is a real bug or not then please submit your question to the mailing - list using the following form. Not using the problem report form - will make it harder or impossible to identify the problem, and in - many cases we will be unable to help at all. Also please try to - 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. - - Replace/remove all the explanatory text in brackets before mailing. - - Please send this form as ASCII text only. Do _not_ send it as an - attachment, or as tar'ed, compressed and/or uuencoded text. And - limit line lengths to less than 80 characters. - - PLEASE make your Subject: line as descriptive as possible. - Subjects like "ACE bug" or "bug report" are not helpful! - Also, do _not_ include the word "help" in the Subject!] - - When including your config.h and platform_macros.GNU files as requested - below, only include the contents if you use the recommended method of - including the platform-specific file in your file. If you use a link - to the platform-specific file, simply state which one - DO NOT - include an entire platform-specific configuration file in the form. - -8<----------8<----------8<----------8<----------8<----------8<----------8<---- - -To: ace-bugs@cs.wustl.edu -Subject: [area]: [synopsis] - - ACE VERSION: 5.6.3 - - HOST MACHINE and OPERATING SYSTEM: - If on Windows based OS's, which version of WINSOCK do you - use?: - - TARGET MACHINE and OPERATING SYSTEM, if different from HOST: - COMPILER NAME AND VERSION (AND PATCHLEVEL): - - THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform- - specific file, simply state which one]: - - THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you - use a link to a platform-specific file, simply state which one - (unless this isn't used in this case, e.g., with Microsoft Visual - C++)]: - - CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features - (used by MPC when you generate your own makefiles): - - AREA/CLASS/EXAMPLE AFFECTED: -[What example failed? What module failed to compile?] - - DOES THE PROBLEM AFFECT: - COMPILATION? - LINKING? - On Unix systems, did you run make realclean first? - EXECUTION? - OTHER (please specify)? -[Please indicate whether ACE, your application, or both are affected.] - - SYNOPSIS: -[Brief description of the problem] - - DESCRIPTION: -[Detailed description of problem. Don't just say " -doesn't work, here's a fix," explain what your program does -to get to the state. ] - - REPEAT BY: -[What you did to get the error; include test program or session -transcript if at all possible. ] - - SAMPLE FIX/WORKAROUND: -[If available ] diff --git a/ACE/README b/ACE/README deleted file mode 100644 index bd81f4c5a4e..00000000000 --- a/ACE/README +++ /dev/null @@ -1,222 +0,0 @@ -This document is also available at the following URL: - -http://www.cs.wustl.edu/~schmidt/ACE.html - -All software and documentation is available via both anonymous ftp and -the World Wide Web.] - -THE ADAPTIVE COMMUNICATION ENVIRONMENT (ACE) - -An Object-Oriented Network Programming Toolkit - ----------------------------------------- - -Overview of ACE - -The ADAPTIVE Communication Environment (ACE) is an object-oriented -(OO) toolkit that implements fundamental design patterns for -communication software. ACE provides a rich set of reusable C++ -wrappers and frameworks that perform common communication software -tasks across a range of OS platforms, including Win32 (i.e., WinNT -3.5.x/4.x, Win95, and WinCE), most versions of UNIX (e.g., SunOS 4.x -and 5.x, SGI IRIX 5.x and 6.x, HP-UX 9.x, 10.x, and 11.x, DEC UNIX -4.x, AIX 4.x, Linux, SCO, UnixWare, NetBSD, and FreeBSD), real-time -operating systems (e.g., VxWorks, Chorus, LynxOS, and pSoS), and MVS -OpenEdition. A single source tree is used for all these platforms and -porting ACE to other platforms is relatively easy. - -The communication software components provided by ACE include event -demultiplexing and event handler dispatching, service initialization, -interprocess communication, shared memory management, message routing, -dynamic (re)configuration of distributed services, multi-threading, -and concurrency control. There are both C++ and Java versions of ACE -available. - -ACE is targeted for developers of high-performance and real-time -communication services and applications on UNIX, POSIX, and Win32 -platforms. ACE simplifies the development of OO network applications -and services that utilize interprocess communication, event -demultiplexing, explicit dynamic linking, and concurrency. ACE -automates system configuration and reconfiguration by dynamically -linking services into applications at run-time and executing these -services in one or more processes or threads. - -ACE is currently used in commercial projects and products by dozens of -companies including Ericsson, Bellcore, Siemens, Motorola, Kodak, -Boeing, Lucent, DEC, Lockheed Martin, and SAIC. Commercial support -for ACE is available at http://www.riverace.com. - ----------------------------------------- - -C++ Wrappers for OS Interfaces - -The lower-level portions of ACE provide a set of portable and -type-secure C++ wrappers that encapsulate the following C language OS -interfaces: - - . IPC mechanisms - -- e.g., Internet- and UNIX-domain sockets, TLI, Named - Pipes (for UNIX and Win32) and STREAM pipes; - - . Event demultiplexing - -- e.g., select(), poll(), and Win32 - WaitForMultipleObjects and I/O completion ports; - - . Multi-threading and synchronization - -- e.g., Solaris threads, POSIX Pthreads, and Win32 - threads; - - . Explicit dynamic linking - -- e.g., dlopen/dlsym on UNIX and LoadLibrary/GetProc - on Win32; - - . Memory-mapped files and shared memory management - -- e.g., BSD mmap(), SYSV shared memory, and Win32 - shared memory; - - . System V IPC - -- e.g., shared memory, semaphores, message queues. - -The OS Adaptation Layer shields the upper levels of ACE from platform -dependencies associated with the underlying OS interfaces. - ----------------------------------------- - -Frameworks and Class Categories - -ACE also contains a higher-level network programming framework that -integrates and enhances the lower-level C++ wrappers. This framework -supports the dynamic configuration of concurrent distributed services -into applications. The framework portion of ACE contains the -following class categories: - - . The Reactor - -- Supports both Reactive and Proactive I/O; - - . The Service Configurator - -- Support dynamic (re)configuration of objects; - - . The ADAPTIVE Service Executive - -- A user-level implementation of System V STREAMS, - that supports modular integration of - hierarchically-related communicaion services; - - . Concurrency - -- Various types of higher-level concurrency - control and synchronization patterns (such as - Polymorphic Futures and Active Objects); - - . Shared Malloc - -- Components for managing dynamically allocation - of shared and local memory; - ----------------------------------------- - -Distributed Services and Components - -Finally, ACE provides a standard library of distributed services that -are packaged as components. These service components play two roles -in ACE: - - 1. They provide reusable components for common distributed - system tasks such as logging, naming, locking, and time - synchronization. - - 2. They illustrate how to utilize ACE features such as the - Reactor, Service Configurator, Service Initialization, - Concurrency, and IPC components. - ----------------------------------------- - -Middleware Applications - -ACE has been used in research and development projects at many -universities and companies. For instance, it has been used to build -avionics systems at Boeing, telecommunication systems at Bellcore, -Ericsson, Motorola, and Lucent; medical imaging systems at Siemens and -Kodak; and many academic research projects. Two example middleware -applications provided with the ACE release include: - - 1. The ACE ORB (TAO) -- TAO is a real-time implementation of - CORBA built using the framework components and patterns - provided by ACE. - - 2. JAWS -- JAWS is a high-performance, adaptive Web server - built using the components in ACE. - ----------------------------------------- - -OBTAINING ACE - -The current ACE release is provided as a tar file that is around 3 Meg -compressed using GNU gzip. ACE may be obtained electronically from -http://www.cs.wustl.edu/~schmidt/ACE-obtain.html. This release -contains the source code, test drivers, and example applications -(including JAWS) for C++ wrapper libraries and the higher-level ACE -network programming framework developed as part of the ADAPTIVE -project at the University of California, Irvine and at Washington -University, St. Louis. - -You can get The ACE ORB (TAO) in a companion release at -http://www.cs.wustl.edu/~schmidt/TAO.html. - ----------------------------------------- - -ACE DOCUMENTATION AND TUTORIALS - -Many of the C++ wrappers and higher-level components have been -described in issues of the C++ Report, as well as in proceedings of -many journals, conferences, and workshops. - -A collection of white papers and tutorial handouts are included at -ftp://wuarchive.wustl.edu/languages/c++/ACE/ACE-documentation. This -directory contains postscript versions of various papers that describe -different aspects of ACE. - -I update these papers periodically to reflect changes to the ACE -architecture. Therefore, you might want to check the date on the -files to make sure that you have read the most recent versions of -these papers. - -This material is also available available via the WWW at URL: - -http://www.cs.wustl.edu/~schmidt/ACE.html - ----------------------------------------- - -ACE MAILING LIST AND NEWSGROUP - -A mailing list, ace-users@cs.wustl.edu, is available for discussing -bug fixes, enhancements, and porting issues regarding ACE. Please -send mail to me at the ace-users-request@cs.wustl.edu if you'd like to -join the mailing list. There is also a USENET newsgroup called -comp.soft-sys.ace. Please see -http://www.cs.wustl.edu/~schmidt/ACE-mail.html for details on how to -subscribe to the mailing list. - ----------------------------------------- - -BUILDING AND INSTALLING ACE - -Please refer to the http://www.cs.wustl.edu/~schmidt/ACE-install.html -file for information on how to build and test the ACE wrappers. The -BIBLIOGRAPHY file contains information on where to obtain articles -that describe the ACE wrappers and the ADAPTIVE system in more detail. - -The current release has been tested extensively, but if you find any -bugs, please report them to the ACE mailing list -ace-users@cs.wustl.edu using the $ACE_ROOT/PROBLEM-REPORT-FORM. -Please use the same form to submit questions, comments, etc. -To ensure that you see responses, please do one of the following: - - 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. - ----------------------------------------- - -ACKNOWLEDGEMENTS - -Please see the file `$ACE_ROOT/THANKS' for a list of the thousands of -people who've contributed to ACE and TAO over the years. diff --git a/ACE/Release b/ACE/Release deleted file mode 100644 index 6072314a11f..00000000000 --- a/ACE/Release +++ /dev/null @@ -1,212 +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 \ - ACE-install.sh \ - ASNMP \ - AUTHORS \ - COPYING \ - ChangeLog* \ - FAQ \ - Release \ - NEWS \ - ACE.mwc \ - Makefile.am \ - PROBLEM-REPORT-FORM \ - README \ - THANKS \ - VERSION \ - ACEXML \ - ace \ - apps \ - bin \ - configure.ac \ - lib \ - MPC \ - docs \ - etc \ - examples \ - include \ - m4 \ - netsvcs \ - performance-tests \ - tests \ - Kokyu \ - protocols \ - websvcs \ - contrib - -RELEASE_FILES = \ - $(addprefix ACE_wrappers/,$(CONTROLLED_FILES)) \ - ACE_wrappers/ACE-INSTALL \ - ACE_wrappers/GNUmake* \ - ACE_wrappers/*.sln \ - ACE_wrappers/*.bor \ - 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) - -ACE-INSTALL: ACE-INSTALL.html - @lynx -dump $< > $@ diff --git a/ACE/THANKS b/ACE/THANKS deleted file mode 100644 index 081666a3c8a..00000000000 --- a/ACE/THANKS +++ /dev/null @@ -1,2265 +0,0 @@ -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 -University of California at Irvine, and Vanderbilt University in Nashville. - -Everett Anderson -Alexander Babu Arulanthu -Shawn Atkins -Jaiganesh Balasubramanian -Krishnakumar Balasubramanian -Matt Braun -Darrell Brunsch -Dante J. Cannarozzi -Sharath R. Cholleti -Chris Cleeland -Angelo Corsaro -Gan Deng -Mayur Deshpande -Eric Ding -George Edwards -Sergio Flores-Gaitan -Chris Gill -Andrew G. Gilpin -Aniruddha Gokhale -Priyanka Gontla -Pradeep Gore -Matthew P. Hampton -Tim Harrison -John Heitmann -James Hill -Shawn Hannan -Don Hinton -Joe Hoffert -James Hu -Huang-Ming Huang -Frank A. Hunleth -Prashant Jain -Shanshan Jiang -Vishal Kachroo -Michael Kircher -Boris Kolpackov -Arvind S. Krishna -Yamuna Krishnamurthy -Fred Kuhns -David Levine -Tao Lu -Mike Moran -Sumedh Mungee -Balachandran Natarajan -Will Otte -Kirthika Parameswaran -Krishnakumar Pathayapura -Stoyan Paunov -Carlos O'Ryan -Ossama Othman -Jeff Parsons -Irfan Pyarali -Nilabja Roy -Lucas Seibert -Diego Sevilla Ruiz -Nishanth Shankaran -Marina Spivak -Venkita Subramonian -Nagarajan Surendran -Cassia Tatibana -Sumant Tambe -Gabriele Trombetti -Emre Turkay -Nanbor Wang -Seth Widoff -Jules White -Friedhelm Wolf -Torben Worm -Ming Xiong - -I would also like to thank all the following people who have also -contributed to ACE and TAO over the years: - -Paul Stephenson -Olaf Kruger -Ed Brown -Lee Baker -Alex Ranous -Mark Patton -Steffen Winther Sorensen -Troy Warner -Stacy Mahlon -Charles Eads -Mark Frutig -Todd Hoff -George -Brad Needham -Leslee Xu -Detlef Becker -Bruce Worden -Chris Tarr -Bill Sears -Greg Lavender -Steve Warwick -Mats Sundvall -Andreas Ueltschi -Nigel Hooke -Medhi Tabatabai -Stuart Powell -Bin Mu -Andrew McGowan -Ken Konecki -John P. Hearn -Giang Hoang Nguyen -Carlos Garcia Braschi -Jam Hamidi -Eric Vaughan -Karlheinz Dorn -Gerhard Lenzer -Steve Ritter -Chandra Venkatapathy -Matt Stevens -Bob Vistica -David Trumble -George Reynolds -Hans Rohnert -Alex V. Maclinovsky -Todd Blanchard -Rob Clairmont -Christian Millour -Neil B. Cohen -Dieter Quehl -Reginald S. Perry -James Morris -Mark Seaborn -Phil Brooks -E. Jason Scheck -Daniel Proulx -Bill Tang -John Huchinson -Jack Erickson -Byron Walton -Bill Lear -Mark Zusman -Aurelio Nocerino -Walt Akers -Greg Baker -Alexandre Karev -Pramod Kumar Singh -Bryon Rigg -Brad Brown -Patty Genualdi -Eshel Liran -Mick Adams -Chris Eich -Mike Flinn -Audun Tornquist -Sandeep Joshi -Bernd Hofner -Craig Perras -Kirk Sinnard -Matthew Newhook -Gerolf Wendland -Phil Mesnier -Ross Dargahi -Richard Orr -Rich Ryan -Jan Rychter -Tom Marrs <0002104588 at mcimail dot com> -Bob Olson -Jean-Francois Ripouteau -Ajit Sagar -Ashish Singhai -David Sames -Gonzalo Diethelm -Raj -Darrin Edelman -Steve Weismuller -Eric C. Newton -Andres Kruse -Ramesh Nagabushnam -Antonio Tortorici -Nigel Lowe -Tom Leith -Michael Fortinsky -Marco Sommerau -Gary Salsbery -Eric Beser -Alfred Keller -John Lu -James Mansion -Jesper S. M|ller -Chris Lahey -Michael R"uger -Istvan Buki -Greg Wilson -Garrett Conaty -Brad Flood -Marius Kjeldahl -Steve Huston -Eugene K. Plaude -Joseph DeAngelis -Kim Gillies -Luca Priorelli -Alan Stewart -Hani Yakan -William L. Gerecke -Craig Johnston -Pierre-Yves Duval -Rochi Febo Dommarco -Jonathan Biggar -Scott Shupe -Chuck Gehr -Avi Nash -Padhu Ramalingam -Jay Denkberg -Ayman Farahat -Tilo Christ -rev -Hamutal Yanay -Vital Aza -Alex Villazon -David Artus -Todd Barkalow -Alexander Smundak -Thilo Kielmann -Matthias Kerkhoff -Fred LaBar -Hanan Herzog -Eric Parker -James Michael Dwyer -Arun Katkere -Bob Dunmire -Sandro Doro -Robert Lyng -Phil Logan -John Cosby -Wayne Vucenic -Harry Gunnarsson -James CE Johnson -Samuel_Bercovici -Per Andersson -Anthony McConnell -Mark Rabotnikov -John Bossom -Rino Simioni -Slawomir Kuzniar -Rob Jordan -Michael Maxie -John Cosby -Nigel Owen -Jorn Jensen -Paul Roman -Dave Mayerhoefer -Bert Craytor -Joey Zhu -Arthur J. Lewis -Michael R. MacFaden -Paul Han -Jeff Morgan -Arturo Montes -Elliot Lau -Mark Wright -Michael Newton -Kumar Neelakantan -Scott Halstead -Jean-Marc Strauss -Adam Porter -Hakan Kallberg -Eric Dean Russell -Daniel Montalibet -Norbert Rapp -Ganesh Pai -Berni Merkle -Tom Wright -Torbjorn Lindgren -Mike Bernat -Brian Mendel -Jeremy Buch -Kevin Boyle -Kevin Martindale -Luis Lopes -Adrian Salt -Hongbo Xu -Michael Hartman -Tom Dobridge -Rich Christy -Satoshi Ueno -Eugene R. Somdahl -Robert Head -Ivan Murphy -Jan Perman -Shankar Krishnamoorthy -Reza Roodsari -Jim Crossley -Johannes Gutleber -Yigong Liu -Erik Urdang -Mike Schweiger -Anthony Mutiso -Jeff R. Hayes -David Brackman -Dave Moore -Joseph Cross -Cherif Sleiman -Stefan Ericsson -Thanh Ma -Oleg Krivosheev -Stephen Coy -Bob Laferriere -Satheesh Kumar MG -Karen Amestoy -Jeff Richard -Samuel Melamed -Vladimir Schipunov -Felix Popp -Billy Quinn -Michael McKnight -Huiying Shen -Alex Chan -Aaron Valdivia -Edan Ayal -Jeffrey Peterson -Neil Lavelle -Steven Wohlever -Manojkumar Acharya -Evgeny Beskrovny -Kirill Rybaltchenko -Laura Paterno -Ben Eng -Mike Kamrad -Marios Zikos -Mark L Boriack -Mark Hyett -Valik Solrzano Barboza -John Connett -Tom Arbuckle -Stephen Henry -Dani Flexer -Michael Hoffman -John Lindal -Dustin Laurence -Ernie Makris -Timothy A. Brown -Pat McNerthney -Lori Anderson -Erik Margraf -Bryan Doerr -Adam Miller -Thomas Jordan -Keith Nicewarner -Frederic Andres -Achint Sandhu -Mitch Kuninsky -Alex Chan -Jeff Hellzen -Thomas Venturella -Philippe O'Reilly -Stan Leeson -Richard Keizer -Edgar Villanueva -Oliver Kellogg -Dave Meyer -Thomas Hampson -Jay Kistler -Scott Snyder -Mark Evans -Todd Pack -Mark Maris -Jason Katz -Jim Penny -Chris Ryan -J dot Russell Noseworthy -Carol Sanders -Jerry Bickle -Paul von Behren -Sudish Joseph -Loren Rittle -Alexander Ovsiankin -Ravi Nagabhyru -Tom Brusehaver -Dave Tallman -Monish Rajpal -Garry Brother -Andreas Schuelke -Ganapathi -James Garrison -Brad Walton -Paul Motuzenko -Kurt Sussman -Rob Thornton -Chanaka Liyanaarachchi -Saneyasu -Steve Kay -Greg White -Ki-hyun Yoon -Umar Syyid -Bill Fulton -Amancio Hasty -Zoran Ivanovic -Sree Oggu -James Risinger -Leo Modica -Bob Scott -Mark Kettner -Kent Watsen -Chris Healey -Philippe Klein -William S. Lear -John Geiss -Ernesto Guisado -Stuart Myles -Lothar Werzinger -Andrew Harbick -Pavel Motuzenko -Ross J. Lillie -Sam Hauer -Frank J. Hodum -David Miron -Anton van Straaten -Joe Covalesky -Bill Backstrom -Jeff Franks -John Mulhern <9107 at mn3 dot lawson dot lawson dot com> -Johan Lundin -Eric Powers -Gabriel Lima -Doug Anderson -Hongyin Quan -Maximilian Hoferer -Kevin Stanley -Jeff Greif -Jeff McDaniel -Andreas Geisler -Bob McWhirter -Daniel Winder -Zheng Han -Christa Schwanninger -Byron Harris -Barney Dalton -Peter Gorgia -Dirk Broer -Joseph E. LaPrade -Goran Lowkrantz -Susan Liebeskind -Dana Hackman -Margherita Vittone Wiersma -Priya Narasimhan -Jeff Hopper -Mats Nilsson -Dongwook Kim -Don Davis -Alberto Villarica -XuYifeng -Tom Shields -Krishna Padmasola -Andre Folkers -Paul Sexton -Marc Lehmann -Anne Blankert -Raja Ati -Clinton Carr -Peter Liqun Na -Frank Adcock -Xu Yifeng -Valery Arkhangorodsky -Alan Scheinine -Andrew G. Harvey -Dann Corbit -James -Jason Milley -Ulf Jaehrig -Peter Nordlund -Mark Weel -Tres Seaver -Erik Koerber -Eric R. Medley -David O'Farrell -Amir Bahmanyari -Ian Wright -David Janello -Rich Wellner -Fernando D. Mato Mira -Jonathan Reis -Seung-Lee Hoon -Russell L. Carter -Bill Hall -Brian Gilstrap -Balaji Srinivasan -Anders W. Tell -Larry Lachman -Terry Rosenbaum -Rainer Blome -Kirk Ellett -Sunil Kumar -T Stach -Ron Barack -Daniel Nieten -Paul K. Fisher -Jim Buck -Olivier Lau -Achim Stindt -Fredrik Lindahl -Joseph Weihs -Serge Kolgan -James Megquier -Martin Krumpolec -Michael Thomas -Vicentini Emanuele -Bob Price -Ramiro Penataro Blanco -Sigg Pascal -Ivan Leong -Virginie Amar -Tom Ziomek -Hamish Friedlander -Mark De Jong -Knut Johannessen -Leif Jakobsmeier -Jon Lindgren -Steve Vinoski -Christian Mueffling -Victor Yu -Jeff Donner -Joe Loyall -Stanislav Meduna -Christian Korn -Ron Barack -Steve Totten -Faron Dutton -Gary York -Patty Hair -Ivan Pascal -William A. Hoffman -Mark Lucovsky -Greg Holtmeyer -Jody Hagins -Patrice Bensoussan -Keith Brown -Barry Hoggard -Peter J. Mason -Jerry D. De Master -Greg Gallant -wym -Karel Zuiderveld -Mike Goldman -Peter Gross -Greg Ross -Stanford S. Guillory -Peter Weat -Magnus Karlsson -Andreas Tobler -John Aughey -Knut-Havard Aksnes -Eric Mitchell -Tommy Andreasen -Slava Galperin -Jeff Olszewski -Sudhanshu Garg -Mike Preradovic -Greg Harrison -Sangwoo Jin -Jacques Salerian -Steve Coleman -Diethard Ohrt -Jacob Jones -Phil Ruelle -Sush Bankapura -Eric Covington -Darren Whobrey -Mason Taube -Rod Joseph -Hans Horsmann -Kevin Royalty -Souhad Mcheik -Mark Little -Tim Stack -Marc Engel -Uma Markandu -Henrik Nordberg -Tad Jarosinski -Andy Marchewka -Neal Norwitz -Frederic Maria -David Hooker -Christian Destor -Andrew Hobson -Andre Folkers -Torsten Kuepper -Hao Ruan -Alexander Davidovich -Cristian Ferretti -N Becker -Yaolong Lan -Elias Sreih -Liang Chen -Mark Laffoon -Ti Z -Brian Dance -Alexey Gadzhiev -Francois Bernier -Bill Rizzi -Peter Windle -Jaepil Kim -Dmitry Goldshtain -Carl Grinstead -Henric Jungheim -Michael Preobrazhensky -Gregory D. Fee -Roland Gigler -Frank Buschmann -Eric Eide -Don Busch -Thomas Lockhart -David Hauck -Keith Rohrer -Tim Rose -Sam Rhine -Chris Schleicher -Margaret Reitz -Thomas Mehrkam -Erik Ivanenko -Sarmeesha Reddy -Steven Tine -Dave Steele -Simeon Simeonov -David H. Whittington -Ian MacDonald -Hans Ridder -Todd Mullanix -Hai Vu -Paul Francis -Kristopher Johnson -Dave Butenhof -Dominic Williams -Srikumar Kareti -Ian Pepper -Kevin Lyda -James D. Rucker -Brian Wallis -Sandeep Goyal -English Malc -Frank O'Dwyer -Long Hoang -Steven D. Chen -Alain Magloire -Jim Rogers -Nick Sawadsky -David Brownell -Richard Stallman -Casey Lucas -Brian C. Olson -Joseph A. Condlin -Serge Du -Mike Mazurek -Christian Schuderer -John R. Taylor -Bill Tovrea -Wallace Owen -Vyacheslav A. Batenin -Edwin D. Windes -Christopher Kohlhoff -Andreas Terstegge -Stefaan Kiebooms -Keith Nichol -Rebecca Sanford -Ram Vishnuvajjala -Tom Bradley -Shaun Ohagan -Dale Wood -Robert Flanders -Gul Onural -Stephen E Blake -Eric S Rosenthal -Sridevi Subramanian -Bruce Trask -Jake Hamby -Rick Weisner -Dennis C. De Mars -V dot Lakshmanan -Hata Yoshiaki -Vidya Narayanan -Sean Landis -Youzhong Liu -John Weald -Gilbert Roulot -Gildo Medeiros Junior -Brian Peterson -Fabrice Podlyski -Darren DeRidder -John Tucker -Oleg Orlov -Timothy Canham -Randy Heiland -Joyce Fu -Surender Kumar -Pradeep Avasthi -Guicheney Christophe -Madhu Konety -Isaac Stoddard -Alvarez -Peter Brandstrom -Eugene Surovegin -Thaddeus Olczyk -John Chludzinski -Pedro Alves Ferreira -Bruce Edge -Dan Butler -Ron MacKenzie -Craig Rodrigues -Phil Y. Wang -David Brock -John Morey -Dwayne Burns -Denis Ouellet -Stefan Ullrich -Brian Raven -Gheorghe Aprotosoaie -Carsten Zerbst -Paul Calabrese -Stephane Chatre -James Whitledge -Erik Johannes -Alex Hornby -Riaz Syed -Clarence M. Weaver -Roger Egbers -Ralf Kluthe -Ruud Diterwich -Bill Nesbitt -Will Skunk -David Digby -Timothy Schimke -Jim Robinson -Peter Mueller -Raghu Nambiath -Mike Gingell -David McCann -Ruediger Franke -Brian Jones -Michael Garvin -Mike Vitalo -Kirk Davies -Arno Pernozzoli -Trey Grubbs -Matthias Schumann -John Gathright -Alexander Villatora -Hoang Duong -Michael Roth -Craig Anderson -Mitsuhiko Hara -Weihai Yu -Tal Lev-Ami -Chris Zimman -Rick Wesson -Sridhara Rao Dasu -Walter Welzel -Anthony Shipman -Tobin Bergen-Hill -Toshio Hori -John Mink -Duane Binder -Randall Sharo -Dave Madden -Cliff_H_Campbell -Narendra Ravi -Krishnakumar B. -David Sunwall -Brian Wright -Yosi Sarusi -Robert Shewan -Skye Sweeney -Lars Immisch -Stefan Wendt -Herbert -Clarence Bishop -Giga Giguashvili -Philipp Slusallek -Matthew Davis -Janusz Stopa -Rusty Conover -Alex Mintz -Phillippe Merle -Mark Winrock -Boris Kaminer -Martin Botzler -Lorin Hochstein -Wenli Bai -Harry Forry -Jose Rubio -Joerg Pommnitz -Mogens Hansen -Shafiek Savahl -Pierre Grondin -John Masiyowski -Uwe Landrock -Klaus Banzer -Probal Bhattacharjya -Dmitri Katchalov -Alok Gupta -Chien Yueh -John K. Black -Kamen Penev -Gregory Yarmit -Jarek Tomaszewski -Siegurd Weber -Fabrizio Giannotti -Harald Finster -Fritz Bosch -Charles Frasch -Chris Hafey -Rick Hess -David Dunn -Jaymes Galvin -Marat -Sergey Nemanov -Vladimir Kondratiev -John Glynn -Raymond Wiker -Michael Pitman -Joseph Jefferson -Engelbert Staller -George Ball -Dennis Noll -Ronald Fischer -Marvin Allen Wolfthal -Dan Gilboa -Sean Boudreau -Shalini Yajnik -Matt Thompson -Peter C Chien -Bruce Alderson -Christoph Poggemann -Travis Shirk -Alain Sauron -David Delano -Boris Sukholitko -Brian Mason -Thomas Groth -Damien Dufour -Paulo Breda Vieira -Samuel Stickland -Bryan Van de Ven -Greg Siebers -Rob Gabbot -Paul Carreiro -Jovan Kilibarda -Derek Dominish -Devesh Kothari -Stephen Moon -Hani Mawlawi -Benedikt Eric Heinen -Jason Topaz -Alexander Dergatch -Airat A. Sadreev -Klaus Hofmann -Miroslav Koncar -Extern Chatterji -Zach Frey -Ruibiao Qiu -Marcelo Matus -R Seshardi -Stephan Kulow -Alexander Belopolsky -Ben Bourner -Lalitha Chinthamani -Thomas Huang -Sankaranarayanan K. V -Ephraim Vider -Reid Spencer -Kevin Dalley -Jan Nielsen -Jochen Linkohr -Mirko Brandner -Yuval Yosef -Chad Elliott -David X. Callaway -Soren Ilsoe -Eric Hopper -Martin Johnson -Pierre Oberson -Chris Uzdavinis -Ishay Green -Andrey Nechypurenko -Charlie Duke -Jonathan Luellen -Andrew Psaltis -Erik Jones -Ted Burghart -Mike Winter -Judy Ward -Ken Block -Jamshid Afshar -Jerry Jiang -Rob Ruff -Hugh Arnold -Hessel Idzenga -Mark C. Barnes -Suresh Kannan -Alex Scholte -Greg Jansen -Raj Narayanaswamy -Iain Melville -Daniel Lang
    -Chris Leishman -Klemen Zagar -Rick Ohnemus -Adamo, Vince -Defang Zhou -Dave Zumbro -Ted Nolan -Jianfei Xu -Alvin C. Shih -J dot Scott Evans -Alex Luk -Kenneth Osenbroch -Jason Czavislak -Alex Chachanashvili -Gilbert Grosdidier -James Briggs -Herbert Wang -Anders Olsson -Sergey Gnilitsky -David Wicks -Girish Birajdar -Hajdukiewicz Markus -Gerwin Robert -Alia Atlas -David Hall -Todd Gruhn -John Hickin -Alex Brown -Rich Seibel -Jim Scheller -Bob Bouterse -Sandeep Adwankar -W Craig Trader -Bruce McIntosh -Natarajan Kalpathy -David O'Farrell -Bob Bouterse -Malcolm Spence -Dong-Yueh Liu -Craig Ball -Norbert Krain -Adrian Miranda -Cody Dean -Hans Scharkowitz -Charles Meier -Tim Sim -Shalabh Bhatnagar -Charles Scott -Espen Harlinn -mulder -Richard L. Johnson -Tam Nguyen -Jeff Graham -Ralph Loader -Ji Wuliu -Wada Hiroshi -Sal Amander -Torsten Pfuetzenreuter -John M. Mills -David McWeeny -Florian Lackerbauer -Manuel Benche -Steve Luoma -Roger Tragin -Alex Bangs -Yangfen Qiu -Johnny Chen -John Foresteire -Larry Peacock -Francisco Bravo -Antti Valtokari -John Smyder -Mathew Samuel -Conrad Hughes -John Rodgers -Charles Taurines -James Lacey -Nick Pratt -Xiaojun Wu -George Lafortune -Aoxiang Xu -Dima Skvortsov -Moore Y. Cao -Wai Keung Fung -Michael Laing -Benoit Viaud -Ken Weinert -Ferran Boladeres Salvad -Steve Vranyes -Jim Melton -Ron Klein -Anuj Singhal -Henrik Kai -Dominic Hughes -Lior Shalev -Charlie Duke -William Horn -Greg Hall -Aviad Eden -Vianney Lecroart -Russell Mora -Samir Shaikh -Eric Yee -Matt Emerson -Yiu L. Lee -Pedro Brandao -Hakon Innerdal -Sami Aario -Ingo Dahm -Vijay Aswadhati -Xiaowen Wang - -Warren Miller -Youngkwan Cho -Dorr H. Clark -Dave McNeely -Eric Malenfant -Roland Fischer -Alexander Libman -Roger Larsson -Martin Stack -Michael Ravits -Derek Viljoen -Hamed Azizadah -Keo Kelly -Joachim Achtzehnter -Tomer Amiaz -Sergey Osokin -Nick Logvinov -Viatcheslav Batenine -Shashi Bhushan -Javier Corrales -J dot Randy Pitz -Richard Reitmeyer -Xavier Montet -Letha Etzkorn -James Dabbs -Matej Sekoranja -Mattias Eriksson -Nicoletta Viale -George Reid -Kim Lester -Wilson Chan -William Rucklidge -Victor Krebss -Chander P. Thareja -John Mills -Haifeng Lee -Hans Utz -Askok Kumar Kalanithi -Chris Able -John Hiltenbrand -Steve Hespelt -Peter Fischer -Madhu Ramachandran -Caleb Epstein -Bruno Marconi -Ken Childress -Michael Kramer -Johnny Willemsen -Jonathan Astle -Javier Lopez Sanchez -Nir Drang -Albert Wijnja -Marcel Van Der Weert -Mervyn Quah -Giovanni Zito -Matthew Adams -Sameer Schabungbam -Jeff Butler -Roland Rüdenauer -John Buckman -Guy Rosen - -Bennett R. Stabile -Paul Caffrey -Low Aik long -Michael Rinne -Jaffar Shaikh -Roger Beck -Trueman Bill -Harold Bien -Mateu Batle -Philip Miller -Base V Paul -Evghenii Filippov -Mike Curtis -Jessie Ragsdale -Shourya Sarcar -Eric Crampton -Sandip Patel -ChenXu -Vsevolod Novikov -Brendan Corcoran -Steve Sivier -Rick Schneeman -Klaus H. Wolf -Jean-Christophe Dubois -Michael Hampel -Wei Zheng -Bernd Annamaier -Joachim Tremouroux -Momchil Velikov -Munagala Ramanath -Kevin Marshall -David Channon -Andy Guy -Oscar Rodriquez -Jonathan Cano -Alain Decamps -Paul Rubel -Jon Loeliger -Ricardo Chan -Sarabjeet Duhra -Michael Rushton -Arno Pernozzoli -Calum Mitchell -Jerry Odenwelder -Kent Stewart -Alexander Kogan -Michael Lindner -Arnaud Compan -Michael Searles -Bogdan Jeram -Sebastian Schubert -Li Zhou -Shivakumar Patil -Steve Olson -Allen Broadman -Yuriy Zaporozhets -Joe Guan -Attilio Dona -McGanahan Skjellifetti -Matthias Wittig -David Allen -Edwin McKay -Scott Bolin -Mike Anderson -David Singer -Nick Lin -Ron Hashimshony -Max Khon -Jonas Nordin -Jonathan Stockdale -Jean-Francois Daune -Wei Chiang -Rick Stille -Kirill Kuolechov -Edwin Wrench -Yung Trinh -Richard Eperjesi -Ben Strong -David Karr -Sathish Tiptur -Lu Yunhai -Christian Ewald -Samuel Qi Luo -Sergey Logvin -Orlando Ribeiro -Doug Warner -Kevin Regan -Andy Olson -Max Voronoy -Alexandr Gavrilov -Scott Gunn -Mason Deaver -Richard Huber -Glen Osterhout -YingLi -Haka -Sam Chong -Virgilijus Globis -Stefan Scherer -Pim Philipse -Michael Grove -John Mackenzie -Ricky Marek -Patrick Maassen -Christian Schuhegger -David L Smith -Rainer Doerntge -Tompa -Derek Horton -Shameek Basu -Dipti Jain -Eric Zuur -Jeffrey J. Persch -Rahul Shukla -Pierre Fayolle -Greg McCain -Matt Cheers -Benjamin Fry -Ram Ben-Yakir -Eric Desamore -John Ashmun -Przemyslaw Marciniak -Carsten Madsen -David Sperry -Ted Horst -Diana Arroyo -Benny Prijono -Roland Ziegler -Stelios Sfakianakis -Mike Letchworth -Brian Gilmer -James Dunham -Juergen Pfreundt -Joel Sherrill -Jules Colding -Stephane Pion -Raghu Narayan -Richard Goold -Nathalie D'Amours -Albert Pariante -Stephen Torri -Philippe Perrin -Gunnar Buason -David Hanvey -Jeff McNiel -Georg Lohrer -Rachel G Smith -Tom Lake -Logan Modahala -Jean Malenfant -Victor Poznyak -Juan Jose Comellas -James Dorsey -Benot Desmeules -Tom Moog -Stan Pinte -Dayisi -Peter Georgakakis -Richard Hardgrave -Mark Drijver -Guy Bolton King -Carlton Teel -Alexandre Cervieri -Darren Griffith -Sam Mok -Josh Curry -Norman Wilson -Itzhak Briskman -James Kanyok -Corey Trager -Kirat Singh -Oleg Pavliv -Frederick Niemi -Andrew Munro -Nicolas Huynh -Kevin Burge -Wayne Erchak -Yew Khong See -Greg Thompson -Mike Pyle -Kobi Cohen-Arazi -Israel Illescas Gomez -Brodie Thiesfield -Erik Toubro Nielsen -Masaoud T. Moonim -Steve Witten -Gil Rapaport -Boris Temkin -Steve Perkins -Jerry Thomas -cuma -Ron Heald -Andrew Finnell -Dan Levi -Rob Andzik -James Maynard -Francois Rioux -Ophir Bleiberg -Allen Kelly -Victor Pitchouc -Srikanth Vedire -J Shane Culpepper -Steffen Hieber -Craig L. Ching -Ben Howard -Rich Newman -Kelly F. Hickel -David Trusty -Burkhard Neppert -Crawford Lodge -Scott Gaa -Jenny Kowald -Oren Zeev-Ben-Mordehai -Holger P. Krekel -Glenn Popelka -Tibor Kiss -Robert Davidson -Peter Crowther -Mouna Seri -Vladimir Chovanec -Alexander Rieger -Glen Coakley -Scott Plant -Wilfried Reinoehl -Sangeetha Ramadurai -Victor Chernenko -Frank Wolf -Christophe Galerne -Scott Harris -Stefan Kluehspies -Egon Wuchner -Ugendreshwar Kudupudi -Ekkehard Hoffmann -Ted Krovetz -Grzegorz Sikora -Fabris -Christina Junru -Patrick Rabau -Hyman Rosen -Torbjorn Backstrom -Robert Burke -Olivier Brunet -Bret Clark -Steve Rahn -Bertrand Motuelle -Blair Zajac -Gary Duzan -Garry Shamis -Eamonn Saunders -Yev Omenzel -John E Hein -Tino Schwarze -Gergely Timar -Peter Phillips -Yury Kuznesov -Daniel Manfis -Massimo Pichini -Eyal Neuman -Dave Hale -Giulio Agostini -Werner Buchert -Kevin Cline -Mahesh Varadarajan -Olof Lindfors -Tom Wagner -Kyle Brost -Vincent Nicolas -Jonathan Wackley -Jan Kalin -Andreas Huggel -Alain Totouom -Tushar Nair -Sunny Leung -Bonifides Bautista -Brad Hoskins -Donald Acton -Hagen Ulrich -Adrian Mercieca -Lars Steubesand -Heping He -Leo Kov -Suresh N -David Arndt -Tad Hetke -Graeme Clark -Gu Song -Chris Hughes -Fikri Pribadi -Ioulia Passynkova -Steve Osselton -Doron Rajwan -Stuart Jones -Guillaume Renaud -Tommy Svensson -Jstwo -Hartmut Quast -Ulrich Voigt -Syed Wasim Ali -Bo Balder -Michael Sawczyn -Ildar Gabdulline -David Yongqiang Wang -Shahzad Aslam-Mir -Andrew Foster -C Chan -Alexey Chalimov -Andrea Bernicchia -Praphul Menon -Patrick N -Garth Watney -Jim Connelly -Eyal Lubetzky -Gaoyan Xie -Michael Brinkmann -Chatchai Khumboa -Andrey Shkinev -Michael Graf -Justin Michel -Robert Martin -Charles Meidinger -Petr Tuma -Greg Burley -Marvin Greenberg -Mike Connors -Ben Flight -Bob Jolliffe -Jesse -Robert Handl -Keith Snively -Ahmed Riza -Miljenko Norsic -David Robison -Preston Elder -Eric Peters -Edward A Thompson -Eugene Alterman -Patrick Cosmo -Ran Kohavi -Harvinder Sawhney -Sorin Iordachescu -Mahesh Vedantam -Brian Olson -Roy Sharon -Charlie Grames -Tom Howard -Michael Gillmann -Yaniv Ben Ari -Victor Terber -David Sanders -Yoram Zini -Sean McCauliff -Shmulik Regev -Andrew L. Shwaika -Gerhard Voss -Gregor Bruce -Ian Cahoon -Alexei I. Adamovich -Sohail Husain -Jerome Julius -William R Volz -Koushik Banerjee -Zoran Cetusic -Patrick Bennett -Felix Wyss -Tim Rydell -Petr Shelomovsky -Juliana Diniz -Yuval Cohen -Timothy Kilbourn -Marc Walrave -Petru Marginean -Paresh Raote -Donna Maskell -Steve Ige -Marco Kranawetter -Christian Veleba -Olli Savia -Bhaskara Rao G -M Schulze -John Michael Zorko -Ami Bar -David Smith -Peter van Merkerk -Bill Dyer -Rodney Morris -Mark Hoffmann -Markus Wild -Joe Hayes -Chip Jones -Patrick J Lardieri -Ken O'Brien -Daniel Troesser -Ivan Pazymenko -Dan Green -Cyrille Chepelov -Peter Heitman -Paxton Mason -Yan Dai -Sean I. Luzader -Renjie Tang -Max V. Zinal -Stan Sosnovsky -Ariel Peltz -Carsten Prescher -Raghuram Shetty -Val Dumiterscu -Oleg Kraynov -Stephan Gudmundson -Frank Kuhlman -Denis Otchenashko -Marc M Adkins -Jon Lambert -Rainer Lucas -Allan S Iverson -Jeffrey Shaffer -Oleg Burlachenko -Jian Chen -Jeff Paciga -Laurent Sabourin -Frank Rybak -Tim Iskander -Michele Amoretti -Ido Yellin -Eric Page -Kevin Heifner -James Haiar -Pavel Repin -Whitney Kew -Tom Phan -Andrew Guy -Bharathi Kangatharan -Jean Quinsat -Ma Ting Chong -Andrew Sutton -Ansgar Konermann -Amir Kunst -Daniel Garrido -Andy Alvarez -Soeren Gerlach -Vitaly Prapirny -Sasha Agranov -Ruwanganie Gunatilleke -Peter Kullmann

    -Lyn Headley -Jeff Adams -Alexander Maack -Timothy Culp -Oleg Terletsky -Bill Tonseth -Frank Pilhofer -Eric Quere -Keith Thornton -Nathan Krasney -Marek Maleta -David Smith -Dimitrije Jankovic -Frank O. Flemisch -Cary Steinmetz -Ty Tenait -Nitin Mallya -Nick Cross -Christopher W. Midgley -Wanjia -Shanliang Cheng -Andy Ling -Stephen Howard -Carsten T. Nielsen -Adee Ran - -Davide Pasetto -Michael Hornok -Wim van den Boogaard -Carol Hunsicker -Joseph Sarbak -Ruslan Zasukhin -Colin Weaver -Kew Whitney -Sean Ogle -Tim Bradley -Kier Schmitt -George Varsamis -Alan Tanga -Bertin Colpron -Jeff Wilson -Dmitry Khrapov -Francois -Laxmikant Bopalkar -Steven Gardner -Ronald Berger -Jeremy Altavilla -Brian Appel -Lan Zhineng -Leen Van Kampen -James Beale -Mark Xu -Umberto Mascia -Marcel Loose -Christian Klutz -Ville Lehtiniemi -Chumsu Kim -Schone Mullerin -Cemal Yimaz -Newton Aird -Frederic Motte -Roger Weeks -Gautam Thaker -Christophe Juniet -Jeff W -Geir Berset -Ken Sedgwick -Vince Mounts -Vladislav Zverev -Erich Hochmuth -Nick S. Petrov -Dmitry Botcharnikov -Philippe Haussy

    -K2 -Eric Frias -Antonio Saraiva -Sean M. Paus -Yuanfang Zhang -Jonathan Franklin -Cristian Ungureanu -Tommy Persson -Christian Barheine -Ole Husgaard -Victor Kirk -Sandeep Neema -Mike Curtis -Artashes Ghazaryan -Ashok Sadasivan -Andreas Koehler -Thomas Devanneaux -Paul Marquis -Ed Skees -Marc Alter -Martin Geliot -Simon McQueen -Jason Pasion -Philipp Leibfried -Erwin Rol -Dirk Moermans -Huseyin Calgin -Jaroslaw Nozderko -Sharon Caspi -Thomas Natterer -Wilbur Lang -Rick Marlborough -David-A O-Brien -Shelton Tang -Frederic Langlet -Antonio Leonforte -Pablo d'Angelo -Christophe Vedel -Uwe Jaeger -Viktor Ransmayr -Daniel Bell -Mathias Waack -Mike Nordell -Tufan Oruk -Tim Smith -Andy King -Eric Strennen -Abhay Kulkarni -Ron Muck -Ma Weida -Terry Lao -Volker Boerchers -Tim Pullen -Marc Tardif -Guan Joe -Petr Ferschmann -Greg Mulyar -Max F. Bilyk -Danile White -Andrew Marlow -Michael F"olsl -Vincent Chau -Theo Landman -Igor Pisarenko -Dima Scub -Volodymyr Orlenko -Grigory -Michael Soden -Dennis Sporcic -Emmanuel Thevenot Beaufort -Denis Parnaland -Matthias Blankenhaus -Wolfgang Schroeder -Mario Hofmann -Bruce MacDonald -Jeffrey Graham -Otis Nyandoro -Ray Limpus -Dmitri Belogaj -Will Christof -Ferran Boladeres Salvad -Juan Carlos Montes Costa -Edward Scott -Steve Spencer -Fukasawa Mitsuo -Martin Brown -Terry Mihm -Jeff Gray -Rob Eger -Leonid Kvetnyi -Rudolf Weber -Sergei Pimenov -David Kinder -Sebastien Lalonde -Jia Wan -Bertin Colpron -Weston Markham -Bryan Thrall -Subhabrata Biswas -Dave Ryan -Zsolt Zsoldos -Tongzhe Cui -Braden McDaniel -Richard Woodring -Andras Lang -Scott Gammil -Nick Lewycky -Ira Burton -Thomas Wiegert -Craig Watcham -Pit Linnartz -Peder Norgaard -David Ohlemacher -Ken Kane -Bill Church -Udo Berninger -Vincent Korkos -Martin Corino -Terry Lacy -Branko Mijic -Jeff Kelley -Daniel Hannum -Jason Cohen -Nick Kukuczka -Andrew Voumard -Anand -D.J. Dwyer -Douglas A Stuart -Victor N. -Francesco Baldi -Michael Rice -Jesse Greenwald -Raymond Hoofman -Jason Smith -Danta Cannarozzi -Valery Salamakha -Karim Fodil-Lemelin -Wenlong Tang -Manish Jain -Robin Farine -Roland Schimmack -Roy Pollock -Eric Held -Kees van Marle -Dieter Knueppel -Amol Tambe -Emiliano Berenbaum -Scott Clarke -Sunil Rottoo -Martin Habets -Todd Cooper -Serkan Unsal -Milan Cvetkovic -Didier Becu -Dan Halbert -Jerome Waibel -Stephan Frenzel -Bruce Jones -Tim Hawes -Philip Leishman -Alexander Jasper -Gerard Grant -Trevor Fields -Jeff Dugan -Jeff Mirwaisi -Alain Dupont -Stephan Bettermann -David McKen -Adam Fanello -Matthieu Vansteene -Sean Rooney -Enrico Detoma -Onopin V. Mikhail -Edward R. Mulholland -Brian Buesker -Vladimir Naylov -Ted Mules -Mike Hepburn -Dale Wilson -Thomas Girard -Malcolm McRoberts -Dror Tirosh -Chris Sontag -Moran Levi -UV Wildner -Alan l Batongbacal -Gary Maxey -Yoav Borer -Andre Kleibeuker -Andy Bellafaire -John Fletcher -Terry Ware -Pierre Pacchioni -Roger Beathard -Konstantinos Margaritis -Stephen Procter -Christoph Liebig -Andre Kostur -Markus Stenberg -Jonathan Pollack -Si Mong Park -Hakim Souami -Paul Morrison -John Poplett -Heiko Bachmann -Andrew Metcalfe -Simon Dutkowski -Mickael P. Golovin -Shannon Barber -Brad Orner -Michelangelo Nottoli -Peter Bekiesch -Martin Kaul -Lukas Gruetzmacher -Robert Schiele -Matthew Grosso -Akim Boyko -Nils Sandoy -Daniel Miranda -Hans-Peter Bock -Dmitri Hrapof -Denny Kolb -Daniel Buchs -Matt Murphy -Brian Nelson -Avi Ouziel -Matthew Gillen -Chris Reed -Andrew Reid -Praveen Sharma -Yi Zuo -Raphael Bossek -Richard G. Hash -Karl Tredwell -Norm Whitehead -Jiang Wei -Kevin Bryan -Zvika Ashani -Thomas Costa -Dom Monteiro -Jean-Marc Prud'homme -Yury Osadchy -Pavan Mandalkar -Scott Willey -David Calkins -Wu Yongwei -Karen L. Regner -Michel Drapeau -Hans Bos -Kevin Stacy -Liat -Andreas Wagner -Steven Xie -Kris Dekeyser -Matthew Harris -Abhijit Sachdev -Mikael Lundqvist -Peter Hercek -Jay Welch -Angel Roman -Jessica Pistole -Paolo Carlini -Eric Whorter -Vincent Seignole -Jingbin An -Roland Meub -Marek Brudka -Levente Torok -Panagiotis Issaris -Mehrdad Nazari -Pierre Bisaillon -Rob Boyer -Scott Gammill -Bayu Hendradjaya -Randy Hammon -Bill Cassanova -Matthew Corey -Vinod Kumar -Mirek Pabich -Christian Egeler -J.T. Conklin -Dale Hawkins -Bill Hopkins -David Fleeman -Merlin Ran -Kevin Christian -Trina Wisler -Bae-Sik Chon -Benjamin Bronk -Dave Craig -Ofira Shaer -Ciaran Moran -Thomas Rohner -Ken Descoteaux -Claas-Hinrich Dommreis -Yateen Joshi -Sergei Kuchin -Theckla Louchios -Randy Secrest -Patrice Marques -Stanislaw Trytek -Mattias Nilsson -Michael Hollins -Dave Knox -Lance Paine -Brian Waltersdorf -Johann Kandlbauer -Adam Rymarczuk -Heiko Nardmann -J. Abelardo Gutierrez -Roger Sala -Razi Ben-Yehuda -Geo Sebastian -Simon Massey -Rich Shapiro -Ramiro Morales -Andrew Athan -Sebastien Roy -Matthew Townsend -Rick Robinson -John D. Robertson -Paul Lew -Eider Oliveira -Jeff Jones -Jean-Christophe Cota -Paul -Vincent Newsum -Vasili Goutas -Iliyan Jeliazkov -Shlomi Yaakobovich -Todd Marshall -Ciju John -Yuk Ming Kwok -Honorato Saavedra -Domingos Monteiro -Bill Somerville -Bjorn Roald -Michi Henning -Xue Yong Zhi -Ertugrul Sorar -Simone Viani -Rohan Mars -Robert S. Iakobashvili -Chris Hammond -Vincent Spano -Nuno Silva -Greg Bostrum -Dipa Suri -Adam Howell -Steven Frare -Dave Dalapati -Arjun Thounaojam -Michael Altmann -Steven Patrick -Pete McCann -William Nagel -M. C. Gahan -Thia Chang Chao -Gao Xianchao -Huang Rui -Sam Abbe -Mike McGahan -David Michael -Steve D. Baker -Martina Yen -Kim ByeongSu -Doug McCorkle -YiQing Xiong -Peter Falsh -Don Sharp -Arto Jalkanen -Scott Zionic -Diana Ukleja -Shaun Cooley -Aapo Mäkinen -Matt Emerson -Sean Parker -Mark Wilson -Joerg Rockel -Phil Chen -Stefan Morrow -Bruce Elliot -Mitscher Dubreus -Brian O'Connor -Ron Wilson -Peter Grotrian -Alex Ott -D. J. Stachniak -Slava Gorelik -Wolfgang Fischer -Nicholas Todd -Arno Wilhelm -Andreas Schuler -Altaf Aali -Vemund Handeland -Mario Di Giacomo -Raoul Gough -Aaron -Rohini Madhavan -Alan Balasuar -Will Chai -Paul Koch -Dave Giovannini -Dave Varnell -Howard Finer -Mark Callaghan -Hanson Lu -Gavin Yu -Srikanth Gopal -Like Ma -Alvin Msg -Angela Ziegenhorn -Sam Mesh -Felix Perez Alamillo -Steven T. Hatton -Yevgen Galchenko -Timothy Wayne Gomez -Ventimiglia Chere -Frederick Heckel -Ian Zagorskih -Olivier Guérin -Abdel Rigumye -James Damour -Alan Anderson -Vito Bico -Aldo Texier -J H Choi -Mike Chartier -Nikolay Metchev -Anand Rathi -Vitaly Belekhov -Dorian Hileaga -Steve Williams -Paul Friberg

    -Zachi Klopman -Jin Zhi Ye -David Carlton -Feng Li -Michael van der Westhuizen -Jan Zima -Francesco Salvestrini -Sandeep Deshpande -Hubert Talbot -Oh Yoon Sik -Anton Bakanovskiy -Toha Bakanovsky -David Faure -Robert Hancock -Peter Oslej -Yongming Wang -Vadim Iosevich -Mike Knight -Nathan Anderson -Eyal Car -Jonathan Sprinkle -Vladimir Panov -Volker Lukas -Bryan Cassell -Guy Peleg -Wallace Zhang -Richard Ward -Alan Stokes -Rick Taylor -Tobias Herzke -Paul Felix -Jan Ohlenburg -Eric Tiangang -David Hawkins -Michael Klein -Sandro Santos Andrade -Richard Spence -Thomas E Lackey -luxi78 at gmail dot com -John Lilley -Abdullah Sowayan -Nathan Bamford -Zoltan Molnar -William Byrne -Karl Schmitt -Ron DeAngelis -Alex Sheh -Daniel Wagner <__daniel___ at icg do tu-graz dot ac dot at> -Nemoy Michael -Marc Brown -Andrew Keane -Martin Kolleck -Tino Riethmueller -Adam Mitz -Frank Rehberger -Aaron Scamehorn -Alan Kierstead -Sven-Uwe Sieler-Hornke -Spencer Vanroekel -Dan Pozdol -Yauheni Akhotnikau -Axter -Roopa Pundaleeka -JR Andreassen -Mockey Chen -Vincent Joseph -Igor Mammedov -Yuan -Adrian Tulloch -Dmitriy Kuznetsov -Steve Orner -Bob Ronak -Aleksandar Vukajlovic -esIgnacio Alvarez -Sergey Zubarev -Qingbo Cai -David White -Jason Zhang -Mark Paulus -Willie Chen -Martin Cornelius -Mohit Kapoor -David Gibbs -Gary Fernandez -Jason Zhao -Keith Muzzioli -John Black -David Chu -Kevin Hu -Yasser Zabuair -Phlip -Michelle Zheng -Gerolf Reinwardt -Paul Robinson -Popeye Cai -David Highley -Sonicfly Zhou -Phil Billingham -David Giovannini -Paul Daugherty -Robert Schwebel -William Cote -Ben Creech -Michael Reed -Heesuk Shin -Hong Xing -Winston Zhang -Stefan Naewe -Graeme Bell -Eric Danielou -Wei Jiang -Dale Boan -Christoph Schmalhofer -Amnon Berger -Ephy Levy -Don Meek -Liu Qian -Nzer Zaidenberg -Birgit Platt -Andy Salnikov -Hieu Ngyuen -Andriy Gapon -Andy Wang -Zhamak Dehghani -Charles Calkins -Manuel Traut -Drew Reynaud -Artur DeEsperanto -Scott Mitchell -Thomas Vanier -N Johnson -Adam Nagel -Robert Neumann -Venkat -Juraj Ivancic -Daniel Black -Richard Ridgway -Vadym Ridosh -Viola Wang -Ray Lischner -Sergey Kosenko -Pavel Zaichenko -Paul Riley -Nelson Filipe Ferreira Gonçalves -Harry Goldschmitt -Sail Zeng -Markus Henschel -Asif Lodhi -Andrew Schnable -Grigoriy Zeleniy -Yves Alloyer -Waba -Scott Mark -Bjoern Rasmussen -Ian C White -Dennis Chernoivanov -Werner Burger -Andres Hurtis -Joe French -M. Arshad Khan -Hans van't Hag -Roland Sun -Vance Maverick -John McCabe -Andres Oportus -Olof Granered -Eric Hughes -Zhenghao Shi -Alexander Kornienko -Ben Mohlenhoff -Bill Bruns -Dmitriy Nikitinskiy -Ravi Kanth -Ian Roberts -Patrick Spiering -Duane Beck -Kanghee Yoon -Xu Liang -Leo Lei -Jules d'Entremont -Rajiv K. Shukla -Haibin Zhang -Vikram Karandikar -Kim J. Schmock -Venkat Forums -James Marsh -Shaolong Xiang -Christoph Hofmann -Vladimir Zykov -Daniel de Angelis Cordeiro -Hal Black -Peter Korf -Norbert Thoden -Premkumar P -David Beck -Hayim Shaul -Erman Balcik -Torsten Saliwada -Nathan Glasser -Grégor Boirie -Alex Solan -Venkat Sidhabathuni -Nathan Ernst -Kun Niu -Karl-Heinz Wind -Oliver Spang -Hu Yi -Joe Seward -Tom Callaway -Alick Nie -Douglas Atique -Nayeem Khan -Sorin Voicu-Comendant - -I would particularly like to thank Paul Stephenson, who worked with me -at Ericsson in the early 1990's. Paul devised the recursive Makefile -scheme that underlies the ACE distribution and also spent countless -hours with me discussing object-oriented techniques for developing -distributed application frameworks. - -Finally, I'd also like to thank Todd L. Montgomery , -fellow heavy metal head, for fulfilling his quest to get ACE to -compile with GCC! - -In conclusion, our goal is to see ACE+TAO+CIAO continue to evolve and -become a more comprehensive, robust, and well-documented C++ class -library that is freely available to researchers and developers. If -you have any improvements, suggestions, and or comments, we'd like to -hear about it. Please see the instructions in - -$ACE_ROOT/PROBLEM-REPORT-FORM -$TAO_ROOT/PROBLEM-REPORT-FORM -$CIAO_ROOT/PROBLEM-REPORT-FORM - -for instructions on submitting suggestions or fixes. - - Thanks, - - Douglas C. Schmidt - d.schmidt at vanderbilt.edu diff --git a/ACE/VERSION b/ACE/VERSION deleted file mode 100644 index 4dae67f14a1..00000000000 --- a/ACE/VERSION +++ /dev/null @@ -1,11 +0,0 @@ -This is ACE version 5.6.3, released Thu Feb 21 02:34:37 CST 2008 - -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: - - 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. diff --git a/ACE/ace/ACE.cpp b/ACE/ace/ACE.cpp deleted file mode 100644 index 233ef720f4c..00000000000 --- a/ACE/ace/ACE.cpp +++ /dev/null @@ -1,3409 +0,0 @@ -// $Id$ - -#include "ace/ACE.h" - -#include "ace/Basic_Types.h" -#include "ace/Handle_Set.h" -#include "ace/Auto_Ptr.h" -#include "ace/SString.h" -#include "ace/Version.h" -#include "ace/Message_Block.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_sys_select.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_strings.h" -#include "ace/OS_NS_signal.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_sys_resource.h" -#include "ace/OS_NS_sys_wait.h" -#include "ace/OS_NS_sys_time.h" -#include "ace/OS_NS_time.h" -#include "ace/OS_NS_sys_uio.h" -#include "ace/OS_NS_sys_stat.h" -#include "ace/OS_NS_ctype.h" -#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) -# include "ace/OS_NS_poll.h" -#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */ - - -ACE_RCSID (ace, - ACE, - "$Id$") - - -// Open versioned namespace, if enabled by the user. - ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace ACE -{ - // private: - // Used internally so not exported. - - // Size of allocation granularity. - size_t allocation_granularity_ = 0; - - // Size of a VM page. - size_t pagesize_ = 0; - - // Are we debugging ACE? - // Keeps track of whether we're in some global debug mode. - char debug_; -} - - -int -ACE::out_of_handles (int error) -{ - // EMFILE is common to all platforms. - if (error == EMFILE || -#if defined (ACE_WIN32) - // On Win32, we need to check for ENOBUFS also. - error == ENOBUFS || -#elif defined (HPUX) - // On HPUX, we need to check for EADDRNOTAVAIL also. - error == EADDRNOTAVAIL || -#elif defined (linux) - // On linux, we need to check for ENOENT also. - error == ENOENT || - // For RedHat5.2, need to check for EINVAL too. - error == EINVAL || - // Without threads check for EOPNOTSUPP - error == EOPNOTSUPP || -#elif defined (sun) - // On sun, we need to check for ENOSR also. - error == ENOSR || - // Without threads check for ENOTSUP - error == ENOTSUP || -#elif defined (__FreeBSD__) - // On FreeBSD we need to check for EOPNOTSUPP (LinuxThreads) or - // ENOSYS (libc_r threads) also. - error == EOPNOTSUPP || - error == ENOSYS || -#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; - else - return 0; -} - -u_int -ACE::major_version (void) -{ - return ACE_MAJOR_VERSION; -} - -u_int -ACE::minor_version (void) -{ - return ACE_MINOR_VERSION; -} - -u_int -ACE::beta_version (void) -{ - return ACE_BETA_VERSION; -} - -const ACE_TCHAR * -ACE::compiler_name (void) -{ -#ifdef ACE_CC_NAME - return ACE_CC_NAME; -#else - return ACE_TEXT (""); -#endif -} - -u_int -ACE::compiler_major_version (void) -{ -#ifdef ACE_CC_MAJOR_VERSION - return ACE_CC_MAJOR_VERSION; -#else - return 0; -#endif -} - -u_int -ACE::compiler_minor_version (void) -{ -#ifdef ACE_CC_MINOR_VERSION - return ACE_CC_MINOR_VERSION; -#else - return 0; -#endif -} - -u_int -ACE::compiler_beta_version (void) -{ -#ifdef ACE_CC_BETA_VERSION - return ACE_CC_BETA_VERSION; -#else - return 0; -#endif -} - -bool -ACE::debug (void) -{ - static const char* debug = ACE_OS::getenv ("ACE_DEBUG"); - return (ACE::debug_ != 0) ? ACE::debug_ : (debug != 0 ? (*debug != '0'): false); -} - -void -ACE::debug (bool onoff) -{ - ACE::debug_ = onoff; -} - -int -ACE::select (int width, - ACE_Handle_Set *readfds, - ACE_Handle_Set *writefds, - ACE_Handle_Set *exceptfds, - const ACE_Time_Value *timeout) -{ - int result = ACE_OS::select (width, - readfds ? readfds->fdset () : 0, - writefds ? writefds->fdset () : 0, - exceptfds ? exceptfds->fdset () : 0, - timeout); - if (result > 0) - { -# if !defined (ACE_WIN32) - // This isn't needed for Windows... it's a no-op anyway. - if (readfds) - readfds->sync ((ACE_HANDLE) width); - if (writefds) - writefds->sync ((ACE_HANDLE) width); - if (exceptfds) - exceptfds->sync ((ACE_HANDLE) width); -#endif /* ACE_WIN32 */ - } - return result; -} - -int -ACE::select (int width, - ACE_Handle_Set &readfds, - const ACE_Time_Value *timeout) -{ - int result = ACE_OS::select (width, - readfds.fdset (), - 0, - 0, - timeout); - -#if !defined (ACE_WIN32) - if (result > 0) - readfds.sync ((ACE_HANDLE) width); -#endif /* ACE_WIN32 */ - return result; -} - -int -ACE::terminate_process (pid_t pid) -{ -#if defined (ACE_HAS_PHARLAP) - ACE_UNUSED_ARG (pid); - ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_WIN32) - // Create a handle for the given process id. - ACE_HANDLE process_handle = - ::OpenProcess (PROCESS_TERMINATE, - FALSE, // New handle is not inheritable. - pid); - - if (process_handle == ACE_INVALID_HANDLE - || process_handle == 0) - return -1; - else - { - // Kill the process associated with process_handle. - BOOL terminate_result = - ::TerminateProcess (process_handle, 0); - // Free up the kernel resources. - ACE_OS::close (process_handle); - return terminate_result ? 0 : -1; - } -#else - return ACE_OS::kill (pid, 9); -#endif /* ACE_HAS_PHARLAP */ -} - -int -ACE::process_active (pid_t pid) -{ -#if !defined(ACE_WIN32) - int retval = ACE_OS::kill (pid, 0); - - if (retval == 0) - return 1; - else if (errno == ESRCH) - return 0; - else - return -1; -#else - // Create a handle for the given process id. - ACE_HANDLE process_handle = - ::OpenProcess (PROCESS_QUERY_INFORMATION, FALSE, pid); - if (process_handle == ACE_INVALID_HANDLE - || process_handle == 0) - return 0; - else - { - DWORD status; - int result = 1; - if (::GetExitCodeProcess (process_handle, - &status) == 0 - || status != STILL_ACTIVE) - result = 0; - - ::CloseHandle (process_handle); - return result; - } -#endif /* !ACE_WIN32 */ -} - -const ACE_TCHAR * -ACE::execname (const ACE_TCHAR *old_name) -{ -#if defined (ACE_WIN32) - const ACE_TCHAR *suffix = ACE_OS::strrchr (old_name, ACE_TEXT ('.')); - if (suffix == 0 || ACE_OS::strcasecmp (suffix, ACE_TEXT (".exe")) != 0) - { - ACE_TCHAR *new_name; - - size_t size = - ACE_OS::strlen (old_name) - + ACE_OS::strlen (ACE_TEXT (".exe")) - + 1; - - ACE_NEW_RETURN (new_name, - ACE_TCHAR[size], - 0); - ACE_TCHAR *end = new_name; - - end = ACE_OS::strecpy (new_name, old_name); - - // Concatenate the .exe suffix onto the end of the executable. - // end points _after_ the terminating nul. - ACE_OS::strcpy (end - 1, ACE_TEXT (".exe")); - - return new_name; - } -#endif /* ACE_WIN32 */ - return old_name; -} - -u_long -ACE::hash_pjw (const char *str, size_t len) -{ - u_long hash = 0; - - for (size_t i = 0; i < len; i++) - { - const char temp = str[i]; - hash = (hash << 4) + (temp * 13); - - u_long g = hash & 0xf0000000; - - if (g) - { - hash ^= (g >> 24); - hash ^= g; - } - } - - return hash; -} - -u_long -ACE::hash_pjw (const char *str) -{ - return ACE::hash_pjw (str, ACE_OS::strlen (str)); -} - -#if defined (ACE_HAS_WCHAR) -u_long -ACE::hash_pjw (const wchar_t *str, size_t len) -{ - u_long hash = 0; - - for (size_t i = 0; i < len; i++) - { - // @@ UNICODE: Does this function do the correct thing with wchar's? - - const wchar_t temp = str[i]; - hash = (hash << 4) + (temp * 13); - - u_long g = hash & 0xf0000000; - - if (g) - { - hash ^= (g >> 24); - hash ^= g; - } - } - - return hash; -} - -u_long -ACE::hash_pjw (const wchar_t *str) -{ - return ACE::hash_pjw (str, ACE_OS::strlen (str)); -} -#endif /* ACE_HAS_WCHAR */ - -#if !defined (ACE_HAS_WINCE) -ACE_TCHAR * -ACE::strenvdup (const ACE_TCHAR *str) -{ - ACE_TRACE ("ACE::strenvdup"); - - return ACE_OS::strenvdup (str); -} -#endif /* ACE_HAS_WINCE */ - -/* - -Examples: - -Source NT UNIX -================================================================== -netsvc netsvc.dll libnetsvc.so -(PATH will be (LD_LIBRARY_PATH -evaluated) evaluated) - -libnetsvc.dll libnetsvc.dll libnetsvc.dll + warning -netsvc.so netsvc.so + warning libnetsvc.so - -..\../libs/netsvc ..\..\libs\netsvc.dll ../../libs/netsvc.so -(absolute path used) (absolute path used) - -*/ - -const ACE_TCHAR * -ACE::basename (const ACE_TCHAR *pathname, ACE_TCHAR delim) -{ - ACE_TRACE ("ACE::basename"); - const ACE_TCHAR *temp = ACE_OS::strrchr (pathname, delim); - - if (temp == 0) - return pathname; - else - return temp + 1; -} - -const ACE_TCHAR * -ACE::dirname (const ACE_TCHAR *pathname, ACE_TCHAR delim) -{ - ACE_TRACE ("ACE::dirname"); - static ACE_TCHAR return_dirname[MAXPATHLEN + 1]; - - const ACE_TCHAR *temp = ACE_OS::strrchr (pathname, delim); - - if (temp == 0) - { - return_dirname[0] = '.'; - return_dirname[1] = '\0'; - - return return_dirname; - } - else - { - // When the len is truncated, there are problems! This should - // not happen in normal circomstances - size_t len = temp - pathname + 1; - if (len > (sizeof return_dirname / sizeof (ACE_TCHAR))) - len = sizeof return_dirname / sizeof (ACE_TCHAR); - - ACE_OS::strsncpy (return_dirname, - pathname, - len); - return return_dirname; - } -} - -ssize_t -ACE::recv (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::recv (handle, (char *) buf, len, flags); - else - { - int val = 0; - if (ACE::enter_recv_timedwait (handle, timeout, val) ==-1) - return -1; - else - { - ssize_t bytes_transferred = - ACE_OS::recv (handle, (char *) buf, len, flags); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -#if defined (ACE_HAS_TLI) - -ssize_t -ACE::t_rcv (ACE_HANDLE handle, - void *buf, - size_t len, - int *flags, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::t_rcv (handle, (char *) buf, len, flags); - else - { - int val = 0; - if (ACE::enter_recv_timedwait (handle, timeout, val) ==-1) - return -1; - else - { - ssize_t bytes_transferred = - ACE_OS::t_rcv (handle, (char *) buf, len, flags); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -#endif /* ACE_HAS_TLI */ - -ssize_t -ACE::recv (ACE_HANDLE handle, - void *buf, - size_t n, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE::recv_i (handle, buf, n); - else - { - int val = 0; - if (ACE::enter_recv_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = ACE::recv_i (handle, buf, n); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -ssize_t -ACE::recvmsg (ACE_HANDLE handle, - struct msghdr *msg, - int flags, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::recvmsg (handle, msg, flags); - else - { - int val = 0; - if (ACE::enter_recv_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = ACE_OS::recvmsg (handle, msg, flags); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -ssize_t -ACE::recvfrom (ACE_HANDLE handle, - char *buf, - int len, - int flags, - struct sockaddr *addr, - int *addrlen, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::recvfrom (handle, buf, len, flags, addr, addrlen); - else - { - int val = 0; - if (ACE::enter_recv_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = - ACE_OS::recvfrom (handle, buf, len, flags, addr, addrlen); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -ssize_t -ACE::recv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - n = ACE_OS::recv (handle, - static_cast (buf) + bytes_transferred, - len - bytes_transferred, - flags); - // Check EOF. - if (n == 0) - return 0; - - // Check for other errors. - if (n == -1) - { - // Check for possible blocking. - if (errno == EWOULDBLOCK) - { - // Wait for the blocking to subside. - int result = ACE::handle_read_ready (handle, - 0); - - // Did select() succeed? - if (result != -1) - { - // Blocking subsided. Continue data transfer. - n = 0; - continue; - } - } - - // Other data transfer or select() failures. - return -1; - } - } - - return static_cast (bytes_transferred); -} - -ssize_t -ACE::recv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - ssize_t result = 0; - int error = 0; - - int val = 0; - ACE::record_and_set_non_blocking_mode (handle, val); - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - // Since the socket is in non-blocking mode, this call will not - // block. - n = ACE_OS::recv (handle, - static_cast (buf) + bytes_transferred, - len - bytes_transferred, - flags); - - // Check for errors. - if (n == 0 || - n == -1) - { - // Check for possible blocking. - if (n == -1 && - errno == EWOULDBLOCK) - { - // Wait upto for the blocking to subside. - int rtn = ACE::handle_read_ready (handle, - timeout); - - // Did select() succeed? - if (rtn != -1) - { - // Blocking subsided in period. Continue - // data transfer. - n = 0; - continue; - } - } - - // Wait in select() timed out or other data transfer or - // select() failures. - error = 1; - result = n; - break; - } - } - - ACE::restore_non_blocking_mode (handle, val); - - if (error) - return result; - else - return static_cast (bytes_transferred); -} - -#if defined (ACE_HAS_TLI) - -ssize_t -ACE::t_rcv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - int *flags, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - n = ACE_OS::t_rcv (handle, - (char *) buf + bytes_transferred, - len - bytes_transferred, - flags); - // Check EOF. - if (n == 0) - return 0; - - // Check for other errors. - if (n == -1) - { - // Check for possible blocking. - if (errno == EWOULDBLOCK) - { - // Wait for the blocking to subside. - int result = ACE::handle_read_ready (handle, - 0); - - // Did select() succeed? - if (result != -1) - { - // Blocking subsided. Continue data transfer. - n = 0; - continue; - } - } - - // Other data transfer or select() failures. - return -1; - } - } - - return bytes_transferred; -} - -ssize_t -ACE::t_rcv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - int *flags, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - ssize_t result = 0; - int error = 0; - - int val = 0; - ACE::record_and_set_non_blocking_mode (handle, val); - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - // Since the socket is in non-blocking mode, this call will not - // block. - n = ACE_OS::t_rcv (handle, - (char *) buf + bytes_transferred, - len - bytes_transferred, - flags); - - // Check for errors. - if (n == 0 || - n == -1) - { - // Check for possible blocking. - if (n == -1 && - errno == EWOULDBLOCK) - { - // Wait upto for the blocking to subside. - int rtn = ACE::handle_read_ready (handle, - timeout); - - // Did select() succeed? - if (rtn != -1) - { - // Blocking subsided in period. Continue - // data transfer. - n = 0; - continue; - } - } - - // Wait in select() timed out or other data transfer or - // select() failures. - error = 1; - result = n; - break; - } - } - - ACE::restore_non_blocking_mode (handle, val); - - if (error) - return result; - else - return bytes_transferred; -} - -#endif /* ACE_HAS_TLI */ - -ssize_t -ACE::recv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - n = ACE::recv_i (handle, - static_cast (buf) + bytes_transferred, - len - bytes_transferred); - // Check EOF. - if (n == 0) - { - return 0; - } - // Check for other errors. - if (n == -1) - { - // Check for possible blocking. - if (errno == EWOULDBLOCK) - { - // Wait for the blocking to subside. - int result = ACE::handle_read_ready (handle, - 0); - - // Did select() succeed? - if (result != -1) - { - // Blocking subsided. Continue data transfer. - n = 0; - continue; - } - } - - // Other data transfer or select() failures. - return -1; - } - } - - return static_cast (bytes_transferred); -} - -ssize_t -ACE::recv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - ssize_t result = 0; - int error = 0; - - int val = 0; - ACE::record_and_set_non_blocking_mode (handle, val); - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - // Since the socket is in non-blocking mode, this call will not - // block. - n = ACE::recv_i (handle, - static_cast (buf) + bytes_transferred, - len - bytes_transferred); - - // Check for errors. - if (n == 0 || - n == -1) - { - // Check for possible blocking. - if (n == -1 && - errno == EWOULDBLOCK) - { - // Wait upto for the blocking to subside. - int rtn = ACE::handle_read_ready (handle, - timeout); - - // Did select() succeed? - if (rtn != -1) - { - // Blocking subsided in period. Continue - // data transfer. - n = 0; - continue; - } - } - - // Wait in select() timed out or other data transfer or - // select() failures. - error = 1; - result = n; - break; - } - } - - ACE::restore_non_blocking_mode (handle, val); - - if (error) - return result; - else - return static_cast (bytes_transferred); -} - -// This is basically an interface to ACE_OS::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 number -// of tuple pairs! - -ssize_t -ACE::recv (ACE_HANDLE handle, size_t n, ...) -{ - va_list argp; - int total_tuples = static_cast (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 (int i = 0; i < total_tuples; i++) - { - iovp[i].iov_base = va_arg (argp, char *); - iovp[i].iov_len = va_arg (argp, int); - } - - ssize_t result = ACE_OS::recvv (handle, iovp, total_tuples); -#if !defined (ACE_HAS_ALLOCA) - delete [] iovp; -#endif /* !defined (ACE_HAS_ALLOCA) */ - va_end (argp); - return result; -} - -ssize_t -ACE::recvv (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::recvv (handle, iov, iovcnt); - else - { - int val = 0; - if (ACE::enter_recv_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = ACE_OS::recvv (handle, iov, iovcnt); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -ssize_t -ACE::recvv_n_i (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - bytes_transferred = 0; - - 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); - // Check EOF. - if (n == 0) - return 0; - - // Check for other errors. - if (n == -1) - { - // Check for possible blocking. - if (errno == EWOULDBLOCK) - { - // Wait for the blocking to subside. - int result = ACE::handle_read_ready (handle, - 0); - - // Did select() succeed? - if (result != -1) - { - // Blocking subsided. Continue data transfer. - n = 0; - continue; - } - } - - // Other data transfer or select() failures. - return -1; - } - - for (bytes_transferred += n; - s < iovcnt - && n >= static_cast (iov[s].iov_len); - s++) - n -= iov[s].iov_len; - - if (n != 0) - { - char *base = static_cast (iov[s].iov_base); - iov[s].iov_base = base + n; - iov[s].iov_len = iov[s].iov_len - n; - } - } - - return bytes_transferred; -} - -ssize_t -ACE::recvv_n_i (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - bytes_transferred = 0; - ssize_t result = 0; - int error = 0; - - int val = 0; - ACE::record_and_set_non_blocking_mode (handle, val); - - 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); - - // Check for errors. - if (n == 0 || - n == -1) - { - // Check for possible blocking. - if (n == -1 && - errno == EWOULDBLOCK) - { - // Wait upto for the blocking to subside. - int rtn = ACE::handle_read_ready (handle, - timeout); - - // Did select() succeed? - if (rtn != -1) - { - // Blocking subsided in period. Continue - // data transfer. - n = 0; - continue; - } - } - - // Wait in select() timed out or other data transfer or - // select() failures. - error = 1; - result = n; - break; - } - - for (bytes_transferred += n; - s < iovcnt - && n >= static_cast (iov[s].iov_len); - s++) - n -= iov[s].iov_len; - - if (n != 0) - { - char *base = reinterpret_cast (iov[s].iov_base); - iov[s].iov_base = base + n; - iov[s].iov_len = iov[s].iov_len - n; - } - } - - ACE::restore_non_blocking_mode (handle, val); - - if (error) - return result; - else - return bytes_transferred; -} - -ssize_t -ACE::recv_n (ACE_HANDLE handle, - ACE_Message_Block *message_block, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - bytes_transferred = 0; - - iovec iov[ACE_IOV_MAX]; - int iovcnt = 0; - - while (message_block != 0) - { - // Our current message block chain. - const ACE_Message_Block *current_message_block = message_block; - - while (current_message_block != 0) - { - size_t current_message_block_length = - current_message_block->length (); - char *this_rd_ptr = current_message_block->rd_ptr (); - - // Check if this block has any space for incoming data. - while (current_message_block_length > 0) - { - u_long const this_chunk_length = - ACE_Utils::truncate_cast ( - current_message_block_length); - - // Collect the data in the iovec. - iov[iovcnt].iov_base = this_rd_ptr; - iov[iovcnt].iov_len = this_chunk_length; - current_message_block_length -= this_chunk_length; - this_rd_ptr += this_chunk_length; - - // Increment iovec counter. - ++iovcnt; - - // The buffer is full make a OS call. @@ TODO find a way to - // find ACE_IOV_MAX for platforms that do not define it rather - // than simply setting ACE_IOV_MAX to some arbitrary value such - // as 16. - if (iovcnt == ACE_IOV_MAX) - { - size_t current_transfer = 0; - - ssize_t const result = ACE::recvv_n (handle, - iov, - iovcnt, - timeout, - ¤t_transfer); - - // Add to total bytes transferred. - bytes_transferred += current_transfer; - - // Errors. - if (result == -1 || result == 0) - return result; - - // Reset iovec counter. - iovcnt = 0; - } - } - - // Select the next message block in the chain. - current_message_block = current_message_block->cont (); - } - - // Selection of the next message block chain. - message_block = message_block->next (); - } - - // Check for remaining buffers to be sent. This will happen when - // ACE_IOV_MAX is not a multiple of the number of message blocks. - if (iovcnt != 0) - { - size_t current_transfer = 0; - - ssize_t const result = ACE::recvv_n (handle, - iov, - iovcnt, - timeout, - ¤t_transfer); - - // Add to total bytes transferred. - bytes_transferred += current_transfer; - - // Errors. - if (result == -1 || result == 0) - return result; - } - - // Return total bytes transferred. - return bytes_transferred; -} - -ssize_t -ACE::send (ACE_HANDLE handle, - const void *buf, - size_t n, - int flags, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::send (handle, (const char *) buf, n, flags); - else - { - int val = 0; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = ACE_OS::send (handle, (const char *) buf, n, flags); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -#if defined (ACE_HAS_TLI) - -ssize_t -ACE::t_snd (ACE_HANDLE handle, - const void *buf, - size_t n, - int flags, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::t_snd (handle, (const char *) buf, n, flags); - else - { - int val = 0; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = ACE_OS::t_snd (handle, (const char *) buf, n, flags); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -#endif /* ACE_HAS_TLI */ - -ssize_t -ACE::send (ACE_HANDLE handle, - const void *buf, - size_t n, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE::send_i (handle, buf, n); - else - { - int val = 0; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = ACE::send_i (handle, buf, n); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -ssize_t -ACE::sendmsg (ACE_HANDLE handle, - const struct msghdr *msg, - int flags, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::sendmsg (handle, msg, flags); - else - { - int val = 0; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = ACE_OS::sendmsg (handle, msg, flags); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -ssize_t -ACE::sendto (ACE_HANDLE handle, - const char *buf, - int len, - int flags, - const struct sockaddr *addr, - int addrlen, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::sendto (handle, buf, len, flags, addr, addrlen); - else - { - int val = 0; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = - ACE_OS::sendto (handle, buf, len, flags, addr, addrlen); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -ssize_t -ACE::send_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - n = ACE_OS::send (handle, - (char *) buf + bytes_transferred, - len - bytes_transferred, - flags); - // Check EOF. - if (n == 0) - return 0; - - // Check for other errors. - if (n == -1) - { - // Check for possible blocking. -#if defined (ACE_WIN32) - if (errno == EWOULDBLOCK) // If enobufs no need to loop -#else - if (errno == EWOULDBLOCK || errno == ENOBUFS) -#endif /* ACE_WIN32 */ - { - // Wait for the blocking to subside. - int result = ACE::handle_write_ready (handle, - 0); - - // Did select() succeed? - if (result != -1) - { - // Blocking subsided. Continue data transfer. - n = 0; - continue; - } - } - - // Other data transfer or select() failures. - return -1; - } - } - - return bytes_transferred; -} - -ssize_t -ACE::send_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - ssize_t result = 0; - int error = 0; - - int val = 0; - ACE::record_and_set_non_blocking_mode (handle, val); - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - // Since the socket is in non-blocking mode, this call will not - // block. - n = ACE_OS::send (handle, - (char *) buf + bytes_transferred, - len - bytes_transferred, - flags); - - // Check for errors. - if (n == 0 || - n == -1) - { - // Check for possible blocking. - if (n == -1 && - errno == EWOULDBLOCK || errno == ENOBUFS) - { - // Wait upto for the blocking to subside. - int rtn = ACE::handle_write_ready (handle, - timeout); - - // Did select() succeed? - if (rtn != -1) - { - // Blocking subsided in period. Continue - // data transfer. - n = 0; - continue; - } - } - - // Wait in select() timed out or other data transfer or - // select() failures. - error = 1; - result = n; - break; - } - } - - ACE::restore_non_blocking_mode (handle, val); - - if (error) - return result; - else - return bytes_transferred; -} - -#if defined (ACE_HAS_TLI) - -ssize_t -ACE::t_snd_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - n = ACE_OS::t_snd (handle, - (char *) buf + bytes_transferred, - len - bytes_transferred, - flags); - // Check EOF. - if (n == 0) - return 0; - - // Check for other errors. - if (n == -1) - { - // Check for possible blocking. - if (errno == EWOULDBLOCK || errno == ENOBUFS) - { - // Wait for the blocking to subside. - int result = ACE::handle_write_ready (handle, - 0); - - // Did select() succeed? - if (result != -1) - { - // Blocking subsided. Continue data transfer. - n = 0; - continue; - } - } - - // Other data transfer or select() failures. - return -1; - } - } - - return bytes_transferred; -} - -ssize_t -ACE::t_snd_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - ssize_t result = 0; - int error = 0; - - int val = 0; - ACE::record_and_set_non_blocking_mode (handle, val); - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - // Since the socket is in non-blocking mode, this call will not - // block. - n = ACE_OS::t_snd (handle, - (char *) buf + bytes_transferred, - len - bytes_transferred, - flags); - - // Check for errors. - if (n == 0 || - n == -1) - { - // Check for possible blocking. - if (n == -1 && - errno == EWOULDBLOCK || errno == ENOBUFS) - { - // Wait upto for the blocking to subside. - int rtn = ACE::handle_write_ready (handle, - timeout); - - // Did select() succeed? - if (rtn != -1) - { - // Blocking subsided in period. Continue - // data transfer. - n = 0; - continue; - } - } - - // Wait in select() timed out or other data transfer or - // select() failures. - error = 1; - result = n; - break; - } - } - - ACE::restore_non_blocking_mode (handle, val); - - if (error) - return result; - else - return bytes_transferred; -} - -#endif /* ACE_HAS_TLI */ - -ssize_t -ACE::send_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - n = ACE::send_i (handle, - (char *) buf + bytes_transferred, - len - bytes_transferred); - // Check EOF. - if (n == 0) - return 0; - - // Check for other errors. - if (n == -1) - { - // Check for possible blocking. - if (errno == EWOULDBLOCK || errno == ENOBUFS) - { - // Wait for the blocking to subside. - int result = ACE::handle_write_ready (handle, - 0); - - // Did select() succeed? - if (result != -1) - { - // Blocking subsided. Continue data transfer. - n = 0; - continue; - } - } - - // Other data transfer or select() failures. - return -1; - } - } - - return bytes_transferred; -} - -ssize_t -ACE::send_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - ssize_t n; - ssize_t result = 0; - int error = 0; - - int val = 0; - ACE::record_and_set_non_blocking_mode (handle, val); - - for (bytes_transferred = 0; - bytes_transferred < len; - bytes_transferred += n) - { - // Try to transfer as much of the remaining data as possible. - // Since the socket is in non-blocking mode, this call will not - // block. - n = ACE::send_i (handle, - (char *) buf + bytes_transferred, - len - bytes_transferred); - - // Check for errors. - if (n == 0 || - n == -1) - { - // Check for possible blocking. - if (n == -1 && - errno == EWOULDBLOCK || errno == ENOBUFS) - { - // Wait upto for the blocking to subside. - int rtn = ACE::handle_write_ready (handle, - timeout); - - // Did select() succeed? - if (rtn != -1) - { - // Blocking subsided in period. Continue - // data transfer. - n = 0; - continue; - } - } - - // Wait in select() timed out or other data transfer or - // select() failures. - error = 1; - result = n; - break; - } - } - - ACE::restore_non_blocking_mode (handle, val); - - if (error) - return result; - else - return bytes_transferred; -} - -// 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::send (ACE_HANDLE handle, size_t n, ...) -{ - va_list argp; - int total_tuples = static_cast (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 (int i = 0; i < total_tuples; i++) - { - iovp[i].iov_base = va_arg (argp, char *); - iovp[i].iov_len = va_arg (argp, int); - } - - ssize_t result = ACE_OS::sendv (handle, iovp, total_tuples); -#if !defined (ACE_HAS_ALLOCA) - delete [] iovp; -#endif /* !defined (ACE_HAS_ALLOCA) */ - va_end (argp); - return result; -} - -ssize_t -ACE::sendv (ACE_HANDLE handle, - const iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout) -{ - if (timeout == 0) - return ACE_OS::sendv (handle, iov, iovcnt); - else - { - int val = 0; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_transferred = ACE_OS::sendv (handle, iov, iovcnt); - ACE::restore_non_blocking_mode (handle, val); - return bytes_transferred; - } - } -} - -ssize_t -ACE::sendv_n_i (ACE_HANDLE handle, - const iovec *i, - int iovcnt, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - bytes_transferred = 0; - - iovec *iov = const_cast (i); - - for (int s = 0; - s < iovcnt; - ) - { - // Try to transfer as much of the remaining data as possible. - ssize_t n = ACE_OS::sendv (handle, - iov + s, - iovcnt - s); - // Check EOF. - if (n == 0) - return 0; - - // Check for other errors. - if (n == -1) - { - // Check for possible blocking. - if (errno == EWOULDBLOCK || errno == ENOBUFS) - { - // Wait for the blocking to subside. - int result = ACE::handle_write_ready (handle, - 0); - - // Did select() succeed? - if (result != -1) - { - // Blocking subsided. Continue data transfer. - n = 0; - continue; - } - } - - // Other data transfer or select() failures. - return -1; - } - - for (bytes_transferred += n; - s < iovcnt - && n >= static_cast (iov[s].iov_len); - s++) - n -= iov[s].iov_len; - - if (n != 0) - { - char *base = reinterpret_cast (iov[s].iov_base); - iov[s].iov_base = base + n; - iov[s].iov_len = iov[s].iov_len - n; - } - } - - return bytes_transferred; -} - -ssize_t -ACE::sendv_n_i (ACE_HANDLE handle, - const iovec *i, - int iovcnt, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - bytes_transferred = 0; - ssize_t result = 0; - int error = 0; - - int val = 0; - ACE::record_and_set_non_blocking_mode (handle, val); - - iovec *iov = const_cast (i); - - 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::sendv (handle, - iov + s, - iovcnt - s); - - // Check for errors. - if (n == 0 || - n == -1) - { - // Check for possible blocking. - if (n == -1 && - errno == EWOULDBLOCK || errno == ENOBUFS) - { - // Wait upto for the blocking to subside. - int rtn = ACE::handle_write_ready (handle, - timeout); - - // Did select() succeed? - if (rtn != -1) - { - // Blocking subsided in period. Continue - // data transfer. - n = 0; - continue; - } - } - - // Wait in select() timed out or other data transfer or - // select() failures. - error = 1; - result = n; - break; - } - - for (bytes_transferred += n; - s < iovcnt - && n >= static_cast (iov[s].iov_len); - s++) - n -= iov[s].iov_len; - - if (n != 0) - { - char *base = reinterpret_cast (iov[s].iov_base); - iov[s].iov_base = base + n; - iov[s].iov_len = iov[s].iov_len - n; - } - } - - ACE::restore_non_blocking_mode (handle, val); - - if (error) - return result; - else - return bytes_transferred; -} - -ssize_t -ACE::write_n (ACE_HANDLE handle, - const ACE_Message_Block *message_block, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - bytes_transferred = 0; - - iovec iov[ACE_IOV_MAX]; - int iovcnt = 0; - - while (message_block != 0) - { - // Our current message block chain. - const ACE_Message_Block *current_message_block = message_block; - - while (current_message_block != 0) - { - size_t current_message_block_length = - current_message_block->length (); - char *this_block_ptr = current_message_block->rd_ptr (); - - // Check if this block has any data to be sent. - while (current_message_block_length > 0) - { - u_long const this_chunk_length = - ACE_Utils::truncate_cast ( - current_message_block_length); - - // Collect the data in the iovec. - iov[iovcnt].iov_base = this_block_ptr; - iov[iovcnt].iov_len = this_chunk_length; - current_message_block_length -= this_chunk_length; - this_block_ptr += this_chunk_length; - - // Increment iovec counter. - ++iovcnt; - - // The buffer is full make a OS call. @@ TODO find a way to - // find ACE_IOV_MAX for platforms that do not define it rather - // than simply setting ACE_IOV_MAX to some arbitrary value such - // as 16. - if (iovcnt == ACE_IOV_MAX) - { - size_t current_transfer = 0; - - ssize_t const result = ACE::writev_n (handle, - iov, - iovcnt, - ¤t_transfer); - - // Add to total bytes transferred. - bytes_transferred += current_transfer; - - // Errors. - if (result == -1 || result == 0) - return result; - - // Reset iovec counter. - iovcnt = 0; - } - } - - // Select the next message block in the chain. - current_message_block = current_message_block->cont (); - } - - // Selection of the next message block chain. - message_block = message_block->next (); - } - - // Check for remaining buffers to be sent. This will happen when - // ACE_IOV_MAX is not a multiple of the number of message blocks. - if (iovcnt != 0) - { - size_t current_transfer = 0; - - ssize_t const result = ACE::writev_n (handle, - iov, - iovcnt, - ¤t_transfer); - - // Add to total bytes transferred. - bytes_transferred += current_transfer; - - // Errors. - if (result == -1 || result == 0) - return result; - } - - // Return total bytes transferred. - return bytes_transferred; -} - -ssize_t -ACE::send_n (ACE_HANDLE handle, - const ACE_Message_Block *message_block, - const ACE_Time_Value *timeout, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - bytes_transferred = 0; - - iovec iov[ACE_IOV_MAX]; - int iovcnt = 0; - - while (message_block != 0) - { - // Our current message block chain. - const ACE_Message_Block *current_message_block = message_block; - - while (current_message_block != 0) - { - char *this_block_ptr = current_message_block->rd_ptr (); - size_t current_message_block_length = - current_message_block->length (); - - // Check if this block has any data to be sent. - while (current_message_block_length > 0) - { - u_long const this_chunk_length = - ACE_Utils::truncate_cast ( - current_message_block_length); - - // Collect the data in the iovec. - iov[iovcnt].iov_base = this_block_ptr; - iov[iovcnt].iov_len = this_chunk_length; - current_message_block_length -= this_chunk_length; - this_block_ptr += this_chunk_length; - - // Increment iovec counter. - ++iovcnt; - - // The buffer is full make a OS call. @@ TODO find a way to - // find ACE_IOV_MAX for platforms that do not define it rather - // than simply setting ACE_IOV_MAX to some arbitrary value such - // as 16. - if (iovcnt == ACE_IOV_MAX) - { - size_t current_transfer = 0; - - ssize_t const result = ACE::sendv_n (handle, - iov, - iovcnt, - timeout, - ¤t_transfer); - - // Add to total bytes transferred. - bytes_transferred += current_transfer; - - // Errors. - if (result == -1 || result == 0) - return result; - - // Reset iovec counter. - iovcnt = 0; - } - } - - // Select the next message block in the chain. - current_message_block = current_message_block->cont (); - } - - // Selection of the next message block chain. - message_block = message_block->next (); - } - - // Check for remaining buffers to be sent. This will happen when - // ACE_IOV_MAX is not a multiple of the number of message blocks. - if (iovcnt != 0) - { - size_t current_transfer = 0; - - ssize_t const result = ACE::sendv_n (handle, - iov, - iovcnt, - timeout, - ¤t_transfer); - - // Add to total bytes transferred. - bytes_transferred += current_transfer; - - // Errors. - if (result == -1 || result == 0) - return result; - } - - // Return total bytes transferred. - return bytes_transferred; -} - -ssize_t -ACE::readv_n (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - bytes_transferred = 0; - - for (int s = 0; - s < iovcnt; - ) - { - ssize_t n = ACE_OS::readv (handle, - iov + s, - iovcnt - s); - - if (n == -1 || n == 0) - return n; - - for (bytes_transferred += n; - s < iovcnt - && n >= static_cast (iov[s].iov_len); - s++) - n -= iov[s].iov_len; - - if (n != 0) - { - char *base = reinterpret_cast (iov[s].iov_base); - iov[s].iov_base = base + n; - iov[s].iov_len = iov[s].iov_len - n; - } - } - - return bytes_transferred; -} - -ssize_t -ACE::writev_n (ACE_HANDLE handle, - const iovec *i, - int iovcnt, - size_t *bt) -{ - size_t temp; - size_t &bytes_transferred = bt == 0 ? temp : *bt; - bytes_transferred = 0; - - iovec *iov = const_cast (i); - - for (int s = 0; - s < iovcnt; - ) - { - ssize_t n = ACE_OS::writev (handle, - iov + s, - iovcnt - s); - if (n == -1 || n == 0) - return n; - - for (bytes_transferred += n; - s < iovcnt - && n >= static_cast (iov[s].iov_len); - s++) - n -= iov[s].iov_len; - - if (n != 0) - { - char *base = reinterpret_cast (iov[s].iov_base); - iov[s].iov_base = base + n; - iov[s].iov_len = iov[s].iov_len - n; - } - } - - return bytes_transferred; -} - -int -ACE::handle_ready (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int read_ready, - int write_ready, - int exception_ready) -{ -#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT) - ACE_UNUSED_ARG (write_ready); - ACE_UNUSED_ARG (exception_ready); - - struct pollfd fds; - - fds.fd = handle; - fds.events = read_ready ? POLLIN : POLLOUT; - fds.revents = 0; - - int 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 - select_width = int (handle) + 1; -# endif /* ACE_WIN64 */ - int result = ACE_OS::select (select_width, - read_ready ? handle_set.fdset () : 0, // read_fds. - write_ready ? handle_set.fdset () : 0, // write_fds. - exception_ready ? handle_set.fdset () : 0, // exception_fds. - timeout); - -#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */ - - switch (result) - { - case 0: // Timer expired. - errno = ETIME; - /* FALLTHRU */ - case -1: // we got here directly - select() returned -1. - return -1; - case 1: // Handle has data. - /* FALLTHRU */ - default: // default is case result > 0; return a - // ACE_ASSERT (result == 1); - return result; - } -} - -int -ACE::enter_recv_timedwait (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int &val) -{ - int result = ACE::handle_read_ready (handle, - timeout); - - if (result == -1) - return -1; - - ACE::record_and_set_non_blocking_mode (handle, - val); - - return result; -} - -int -ACE::enter_send_timedwait (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int &val) -{ - int result = ACE::handle_write_ready (handle, - timeout); - - if (result == -1) - return -1; - - ACE::record_and_set_non_blocking_mode (handle, - val); - - return result; -} - -void -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. - val = ACE::get_flags (handle); - - if (ACE_BIT_DISABLED (val, ACE_NONBLOCK)) - // Set the handle into non-blocking mode if it's not already in - // it. - ACE::set_flags (handle, ACE_NONBLOCK); -} - -void -ACE::restore_non_blocking_mode (ACE_HANDLE handle, - int val) -{ - if (ACE_BIT_DISABLED (val, - ACE_NONBLOCK)) - { - // Save/restore errno. - ACE_Errno_Guard error (errno); - // Only disable ACE_NONBLOCK if we weren't in non-blocking mode - // originally. - ACE::clr_flags (handle, ACE_NONBLOCK); - } -} - - -// 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, - ACE_TCHAR *obuf, - size_t obuf_sz) -{ - ACE_TRACE ("ACE::format_hexdump"); - - u_char c; - ACE_TCHAR textver[16 + 1]; - - // We can fit 16 bytes output in text mode per line, 4 chars per byte. - size_t maxlen = (obuf_sz / 68) * 16; - - if (size > maxlen) - size = maxlen; - - size_t i; - - size_t lines = size / 16; - for (i = 0; i < lines; i++) - { - size_t j; - - for (j = 0 ; j < 16; j++) - { - c = (u_char) buffer[(i << 4) + j]; // or, buffer[i*16+j] - ACE_OS::sprintf (obuf, - ACE_TEXT ("%02x "), - c); - obuf += 3; - if (j == 7) - { - ACE_OS::sprintf (obuf, - ACE_TEXT (" ")); - ++obuf; - } - textver[j] = ACE_OS::ace_isprint (c) ? c : '.'; - } - - textver[j] = 0; - - ACE_OS::sprintf (obuf, - ACE_TEXT (" %s\n"), - textver); - - while (*obuf != '\0') - ++obuf; - } - - if (size % 16) - { - for (i = 0 ; i < size % 16; i++) - { - c = (u_char) buffer[size - size % 16 + i]; - ACE_OS::sprintf (obuf, - ACE_TEXT ("%02x "), - c); - obuf += 3; - if (i == 7) - { - ACE_OS::sprintf (obuf, - ACE_TEXT (" ")); - ++obuf; - } - textver[i] = ACE_OS::ace_isprint (c) ? c : '.'; - } - - for (i = size % 16; i < 16; i++) - { - ACE_OS::sprintf (obuf, - ACE_TEXT (" ")); - obuf += 3; - if (i == 7) - { - ACE_OS::sprintf (obuf, - ACE_TEXT (" ")); - ++obuf; - } - textver[i] = ' '; - } - - textver[i] = 0; - ACE_OS::sprintf (obuf, - ACE_TEXT (" %s\n"), - textver); - } - return size; -} - -// 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. - -ACE_TCHAR * -ACE::timestamp (ACE_TCHAR date_and_time[], - int date_and_timelen, - int return_pointer_to_first_digit) -{ - //ACE_TRACE ("ACE::timestamp"); - - if (date_and_timelen < 35) - { - 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 (); - time_t secs = cur_time.sec (); - - ACE_OS::ctime_r (&secs, - timebuf, - sizeof timebuf); - // 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 */ -} - -// This function rounds the request to a multiple of the page size. - -size_t -ACE::round_to_pagesize (size_t len) -{ - ACE_TRACE ("ACE::round_to_pagesize"); - - if (ACE::pagesize_ == 0) - ACE::pagesize_ = ACE_OS::getpagesize (); - - return (len + (ACE::pagesize_ - 1)) & ~(ACE::pagesize_ - 1); -} - -size_t -ACE::round_to_allocation_granularity (size_t len) -{ - ACE_TRACE ("ACE::round_to_allocation_granularity"); - - if (ACE::allocation_granularity_ == 0) - ACE::allocation_granularity_ = ACE_OS::allocation_granularity (); - - return (len + (ACE::allocation_granularity_ - 1)) & ~(ACE::allocation_granularity_ - 1); -} - -ACE_HANDLE -ACE::handle_timed_complete (ACE_HANDLE h, - const ACE_Time_Value *timeout, - int is_tli) -{ - ACE_TRACE ("ACE::handle_timed_complete"); - -#if !defined (ACE_WIN32) && defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT) - - struct pollfd fds; - - fds.fd = h; - fds.events = POLLIN | POLLOUT; - fds.revents = 0; - -#else - ACE_Handle_Set rd_handles; - 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 */ - -#if defined (ACE_WIN32) - // Winsock is different - it sets the exception bit for failed connect, - // unlike other platforms, where the read bit is set. - ACE_Handle_Set ex_handles; - ex_handles.set_bit (h); -#endif /* ACE_WIN32 */ - - bool need_to_check = false; - bool known_failure = false; - -#if defined (ACE_WIN32) - int n = ACE_OS::select (0, // Ignored on Windows: int (h) + 1, - 0, - wr_handles, - ex_handles, - timeout); -#else -# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT) - - int n = ACE_OS::poll (&fds, 1, timeout); - -# else - int n = ACE_OS::select (int (h) + 1, - rd_handles, - wr_handles, - 0, - timeout); -# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */ -#endif /* ACE_WIN32 */ - - // If we failed to connect within the time period allocated by the - // caller, then we fail (e.g., the remote host might have been too - // busy to accept our call). - if (n <= 0) - { - if (n == 0 && timeout != 0) - errno = ETIME; - return ACE_INVALID_HANDLE; - } - - // Usually, a ready-for-write handle is successfully connected, and - // ready-for-read (exception on Win32) is a failure. On fails, we - // need to grab the error code via getsockopt. On possible success for - // any platform where we can't tell just from select() (e.g. AIX), - // we also need to check for success/fail. -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (is_tli); - - // On Win32, ex_handle set indicates a failure. We'll do the check - // to try and get an errno value, but the connect failed regardless of - // what getsockopt says about the error. - if (ex_handles.is_set (h)) - { - need_to_check = true; - known_failure = true; - } -#elif defined (ACE_VXWORKS) - ACE_UNUSED_ARG (is_tli); - - // Force the check on VxWorks. The read handle for "h" is not set, - // so "need_to_check" is false at this point. The write handle is - // set, for what it's worth. - need_to_check = true; -#else - if (is_tli) - -# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT) - 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 */ - - else -#if defined(AIX) - // AIX is broken... both success and failed connect will set the - // write handle only, so always check. - need_to_check = true; -#else -# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT) - need_to_check = (fds.revents & POLLIN); -# else - need_to_check = rd_handles.is_set (h); -# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */ -#endif /* AIX */ -#endif /* ACE_WIN32 */ - - if (need_to_check) - { -#if defined (SOL_SOCKET) && defined (SO_ERROR) - int sock_err = 0; - int sock_err_len = sizeof (sock_err); - int sockopt_ret = ACE_OS::getsockopt (h, SOL_SOCKET, SO_ERROR, - (char *)&sock_err, &sock_err_len); - if (sockopt_ret < 0) - { - h = ACE_INVALID_HANDLE; - } - - if (sock_err != 0 || known_failure) - { - h = ACE_INVALID_HANDLE; - errno = sock_err; - } -#else - char dummy; - - // The following recv() won't block provided that the - // ACE_NONBLOCK flag has not been turned off . - n = ACE::recv (h, &dummy, 1, MSG_PEEK); - - // If no data was read/peeked at, check to see if it's because - // of a non-connected socket (and therefore an error) or there's - // just no data yet. - if (n <= 0) - { - if (n == 0) - { - errno = ECONNREFUSED; - h = ACE_INVALID_HANDLE; - } - else if (errno != EWOULDBLOCK && errno != EAGAIN) - h = ACE_INVALID_HANDLE; - } -#endif - } - - // 1. The HANDLE is ready for writing and doesn't need to be checked or - // 2. recv() returned an indication of the state of the socket - if there is - // either data present, or a recv is legit but there's no data yet, - // the connection was successfully established. - return h; -} - -// Wait up to amount of time to accept a connection. - -int -ACE::handle_timed_accept (ACE_HANDLE listener, - ACE_Time_Value *timeout, - int restart) -{ - ACE_TRACE ("ACE::handle_timed_accept"); - // Make sure we don't bomb out on erroneous values. - if (listener == ACE_INVALID_HANDLE) - return -1; - -#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT) - - struct pollfd fds; - - fds.fd = listener; - fds.events = POLLIN; - fds.revents = 0; - -#else - // 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 */ - - // We need a loop here if is enabled. - - for (;;) - { -#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT) - - 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 - 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 */ - - switch (n) - { - case -1: - if (errno == EINTR && restart) - continue; - else - return -1; - /* NOTREACHED */ - case 0: - if (timeout != 0 - && timeout->sec () == 0 - && timeout->usec () == 0) - errno = EWOULDBLOCK; - else - errno = ETIMEDOUT; - return -1; - /* NOTREACHED */ - case 1: - return 0; - /* NOTREACHED */ - default: - errno = EINVAL; - return -1; - /* NOTREACHED */ - } - } -} - -// Make the current process a UNIX daemon. This is based on Stevens -// code from APUE. - -int -ACE::daemonize (const ACE_TCHAR pathname[], - bool close_all_handles, - const ACE_TCHAR program_name[]) -{ - ACE_TRACE ("ACE::daemonize"); -#if !defined (ACE_LACKS_FORK) - pid_t pid = ACE_OS::fork (); - - if (pid == -1) - return -1; - else if (pid != 0) - ACE_OS::exit (0); // Parent exits. - - // 1st child continues. - ACE_OS::setsid (); // Become session leader. - - ACE_OS::signal (SIGHUP, SIG_IGN); - - pid = ACE_OS::fork (program_name); - - if (pid != 0) - ACE_OS::exit (0); // First child terminates. - - // Second child continues. - - if (pathname != 0) - // change working directory. - ACE_OS::chdir (pathname); - - ACE_OS::umask (0); // clear our file mode creation mask. - - // Close down the I/O handles. - if (close_all_handles) - for (int i = ACE::max_handles () - 1; i >= 0; i--) - ACE_OS::close (i); - - return 0; -#else - ACE_UNUSED_ARG (pathname); - ACE_UNUSED_ARG (close_all_handles); - ACE_UNUSED_ARG (program_name); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_LACKS_FORK */ -} - -pid_t -ACE::fork (const ACE_TCHAR *program_name, - int avoid_zombies) -{ - if (avoid_zombies == 0) - return ACE_OS::fork (program_name); - else - { - // This algorithm is adapted from an example in the Stevens book - // "Advanced Programming in the Unix Environment" and an item in - // Andrew Gierth's Unix Programming FAQ. It creates an orphan - // process that's inherited by the init process; init cleans up - // when the orphan process terminates. - // - // Another way to avoid zombies is to ignore or catch the - // SIGCHLD signal; we don't use that approach here. - - pid_t pid = ACE_OS::fork (); - if (pid == 0) - { - // The child process forks again to create a grandchild. - switch (ACE_OS::fork (program_name)) - { - case 0: // grandchild returns 0. - return 0; - case -1: // assumes all errnos are < 256 - ACE_OS::_exit (errno); - default: // child terminates, orphaning grandchild - ACE_OS::_exit (0); - } - } - - // Parent process waits for child to terminate. - ACE_exitcode status; - if (pid < 0 || ACE_OS::waitpid (pid, &status, 0) < 0) - return -1; - - // child terminated by calling exit()? - if (WIFEXITED ((status))) - { - // child terminated normally? - if (WEXITSTATUS ((status)) == 0) - return 1; - else - errno = WEXITSTATUS ((status)); - } - else - // child didn't call exit(); perhaps it received a signal? - errno = EINTR; - - return -1; - } -} - -int -ACE::max_handles (void) -{ - ACE_TRACE ("ACE::max_handles"); -#if defined (RLIMIT_NOFILE) && !defined (ACE_LACKS_RLIMIT) - rlimit rl; - int const r = ACE_OS::getrlimit (RLIMIT_NOFILE, &rl); -# if !defined (RLIM_INFINITY) - if (r == 0) - return rl.rlim_cur; -# else - if (r == 0 && rl.rlim_cur != RLIM_INFINITY) - return rl.rlim_cur; - // If == RLIM_INFINITY, fall through to the ACE_LACKS_RLIMIT sections -# endif /* RLIM_INFINITY */ -#endif /* RLIMIT_NOFILE && !ACE_LACKS_RLIMIT */ - -#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 - ACE_NOTSUP_RETURN (-1); -#endif /* _SC_OPEN_MAX */ -} - -// Set the number of currently open handles in the process. -// -// If NEW_LIMIT == -1 set the limit to the maximum allowable. -// Otherwise, set it to be the value of NEW_LIMIT. - -int -ACE::set_handle_limit (int new_limit, - int increase_limit_only) -{ - ACE_TRACE ("ACE::set_handle_limit"); - int cur_limit = ACE::max_handles (); - int max_limit = cur_limit; - - if (cur_limit == -1) - return -1; - -#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE) - struct rlimit rl; - - ACE_OS::memset ((void *) &rl, 0, sizeof rl); - int r = ACE_OS::getrlimit (RLIMIT_NOFILE, &rl); - if (r == 0) - max_limit = rl.rlim_max; -#endif /* ACE_LACKS_RLIMIT */ - - if (new_limit == -1) - new_limit = max_limit; - - if (new_limit < 0) - { - errno = EINVAL; - return -1; - } - else if (new_limit > cur_limit) - { - // Increase the 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) - return 0; -#else - // Must return EINVAL errno. - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_LACKS_RLIMIT */ - } - else if (increase_limit_only == 0) - { - // Decrease the limit. -#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE) - rl.rlim_cur = new_limit; - return ACE_OS::setrlimit (RLIMIT_NOFILE, &rl); -#else - // We give a chance to platforms without RLIMIT to work. - // Instead of ACE_NOTSUP_RETURN (0), just return 0 because - // new_limit is <= cur_limit, so it's a no-op. - return 0; -#endif /* ACE_LACKS_RLIMIT */ - } - - return 0; -} - -// Euclid's greatest common divisor algorithm. -u_long -ACE::gcd (u_long x, u_long y) -{ - while (y != 0) - { - u_long r = x % y; - x = y; - y = r; - } - - return x; -} - - -// Calculates the minimum enclosing frame size for the given values. -u_long -ACE::minimum_frame_size (u_long period1, u_long period2) -{ - // if one of the periods is zero, treat it as though it as - // uninitialized and return the other period as the frame size - if (0 == period1) - { - return period2; - } - if (0 == period2) - { - return period1; - } - - // if neither is zero, find the greatest common divisor of the two periods - u_long greatest_common_divisor = ACE::gcd (period1, period2); - - // explicitly consider cases to reduce risk of possible overflow errors - if (greatest_common_divisor == 1) - { - // periods are relative primes: just multiply them together - return period1 * period2; - } - else if (greatest_common_divisor == period1) - { - // the first period divides the second: return the second - return period2; - } - else if (greatest_common_divisor == period2) - { - // the second period divides the first: return the first - return period1; - } - else - { - // the current frame size and the entry's effective period - // have a non-trivial greatest common divisor: return the - // product of factors divided by those in their gcd. - return (period1 * period2) / greatest_common_divisor; - } -} - - -u_long -ACE::is_prime (const u_long n, - const u_long min_factor, - const u_long max_factor) -{ - if (n > 3) - for (u_long factor = min_factor; - factor <= max_factor; - ++factor) - if (n / factor * factor == n) - return factor; - - return 0; -} - -const ACE_TCHAR * -ACE::sock_error (int error) -{ -#if defined (ACE_WIN32) - static ACE_TCHAR unknown_msg[64]; - - switch (error) - { - case WSAVERNOTSUPPORTED: - return ACE_TEXT ("version of WinSock not supported"); - /* NOTREACHED */ - case WSASYSNOTREADY: - return ACE_TEXT ("WinSock not present or not responding"); - /* NOTREACHED */ - case WSAEINVAL: - return ACE_TEXT ("app version not supported by DLL"); - /* NOTREACHED */ - case WSAHOST_NOT_FOUND: - return ACE_TEXT ("Authoritive: Host not found"); - /* NOTREACHED */ - case WSATRY_AGAIN: - return ACE_TEXT ("Non-authoritive: host not found or server failure"); - /* NOTREACHED */ - case WSANO_RECOVERY: - return ACE_TEXT ("Non-recoverable: refused or not implemented"); - /* NOTREACHED */ - case WSANO_DATA: - return ACE_TEXT ("Valid name, no data record for type"); - /* NOTREACHED */ - /* - case WSANO_ADDRESS: - return "Valid name, no MX record"; - */ - case WSANOTINITIALISED: - return ACE_TEXT ("WSA Startup not initialized"); - /* NOTREACHED */ - case WSAENETDOWN: - return ACE_TEXT ("Network subsystem failed"); - /* NOTREACHED */ - case WSAEINPROGRESS: - return ACE_TEXT ("Blocking operation in progress"); - /* NOTREACHED */ - case WSAEINTR: - return ACE_TEXT ("Blocking call cancelled"); - /* NOTREACHED */ - case WSAEAFNOSUPPORT: - return ACE_TEXT ("address family not supported"); - /* NOTREACHED */ - case WSAEMFILE: - return ACE_TEXT ("no file handles available"); - /* NOTREACHED */ - case WSAENOBUFS: - return ACE_TEXT ("no buffer space available"); - /* NOTREACHED */ - case WSAEPROTONOSUPPORT: - return ACE_TEXT ("specified protocol not supported"); - /* NOTREACHED */ - case WSAEPROTOTYPE: - return ACE_TEXT ("protocol wrong type for this socket"); - /* NOTREACHED */ - case WSAESOCKTNOSUPPORT: - return ACE_TEXT ("socket type not supported for address family"); - /* NOTREACHED */ - case WSAENOTSOCK: - return ACE_TEXT ("handle is not a socket"); - /* NOTREACHED */ - case WSAEWOULDBLOCK: - return ACE_TEXT ("resource temporarily unavailable"); - /* NOTREACHED */ - case WSAEADDRINUSE: - return ACE_TEXT ("address already in use"); - /* NOTREACHED */ - case WSAECONNABORTED: - return ACE_TEXT ("connection aborted"); - /* NOTREACHED */ - case WSAECONNRESET: - return ACE_TEXT ("connection reset"); - /* NOTREACHED */ - case WSAENOTCONN: - return ACE_TEXT ("not connected"); - /* NOTREACHED */ - case WSAETIMEDOUT: - return ACE_TEXT ("connection timed out"); - /* NOTREACHED */ - case WSAECONNREFUSED: - return ACE_TEXT ("connection refused"); - /* NOTREACHED */ - case WSAEHOSTDOWN: - return ACE_TEXT ("host down"); - /* NOTREACHED */ - case WSAEHOSTUNREACH: - return ACE_TEXT ("host unreachable"); - /* NOTREACHED */ - case WSAEADDRNOTAVAIL: - return ACE_TEXT ("address not available"); - /* NOTREACHED */ - case WSAEISCONN: - return ACE_TEXT ("socket is already connected"); - /* NOTREACHED */ - case WSAENETRESET: - return ACE_TEXT ("network dropped connection on reset"); - /* NOTREACHED */ - case WSAEMSGSIZE: - return ACE_TEXT ("message too long"); - /* NOTREACHED */ - case WSAENETUNREACH: - return ACE_TEXT ("network is unreachable"); - /* NOTREACHED */ - case WSAEFAULT: - return ACE_TEXT ("bad address"); - /* NOTREACHED */ - case WSAEDISCON: - return ACE_TEXT ("graceful shutdown in progress"); - /* NOTREACHED */ - case WSAEACCES: - return ACE_TEXT ("permission denied"); - /* NOTREACHED */ - case WSAESHUTDOWN: - return ACE_TEXT ("cannot send after socket shutdown"); - /* NOTREACHED */ - case WSAEPROCLIM: - return ACE_TEXT ("too many processes"); - /* NOTREACHED */ - case WSAEALREADY: - return ACE_TEXT ("operation already in progress"); - /* NOTREACHED */ - case WSAEPFNOSUPPORT: - return ACE_TEXT ("protocol family not supported"); - /* NOTREACHED */ - case WSAENOPROTOOPT: - return ACE_TEXT ("bad protocol option"); - /* NOTREACHED */ - case WSATYPE_NOT_FOUND: - return ACE_TEXT ("class type not found"); - /* NOTREACHED */ - case WSAEOPNOTSUPP: - return ACE_TEXT ("operation not supported"); - /* NOTREACHED */ - case WSAEDESTADDRREQ: - return ACE_TEXT ("destination address required"); - /* NOTREACHED */ - default: - ACE_OS::sprintf (unknown_msg, ACE_TEXT ("unknown error: %d"), error); - return unknown_msg; - /* NOTREACHED */ - } -#else - ACE_UNUSED_ARG (error); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_WIN32 */ -} - -bool -ACE::is_sock_error (int error) -{ -#if defined (ACE_WIN32) - switch (error) - { - case WSAVERNOTSUPPORTED: - case WSASYSNOTREADY: - case WSAEINVAL: - case WSAHOST_NOT_FOUND: - case WSATRY_AGAIN: - case WSANO_RECOVERY: - case WSANO_DATA: - /* - case WSANO_ADDRESS: - */ - case WSANOTINITIALISED: - case WSAENETDOWN: - case WSAEINPROGRESS: - case WSAEINTR: - case WSAEAFNOSUPPORT: - case WSAEMFILE: - case WSAENOBUFS: - case WSAEPROTONOSUPPORT: - case WSAEPROTOTYPE: - case WSAESOCKTNOSUPPORT: - case WSAENOTSOCK: - case WSAEWOULDBLOCK: - case WSAEADDRINUSE: - case WSAECONNABORTED: - case WSAECONNRESET: - case WSAENOTCONN: - case WSAETIMEDOUT: - case WSAECONNREFUSED: - case WSAEHOSTDOWN: - case WSAEHOSTUNREACH: - case WSAEADDRNOTAVAIL: - case WSAEISCONN: - case WSAENETRESET: - case WSAEMSGSIZE: - case WSAENETUNREACH: - case WSAEFAULT: - case WSAEDISCON: - case WSAEACCES: - case WSAESHUTDOWN: - case WSAEPROCLIM: - case WSAEALREADY: - case WSAEPFNOSUPPORT: - case WSAENOPROTOOPT: - case WSATYPE_NOT_FOUND: - case WSAEOPNOTSUPP: - return true; - } -#else - ACE_UNUSED_ARG (error); -#endif /* ACE_WIN32 */ - return false; -} - -char * -ACE::strndup (const char *str, size_t n) -{ - const char *t = str; - size_t len; - - // Figure out how long this string is (remember, it might not be - // NUL-terminated). - - for (len = 0; - len < n && *t++ != '\0'; - len++) - continue; - - char *s; - ACE_ALLOCATOR_RETURN (s, - (char *) ACE_OS::malloc (len + 1), - 0); - return ACE_OS::strsncpy (s, str, len + 1); -} - -#if defined (ACE_HAS_WCHAR) -wchar_t * -ACE::strndup (const wchar_t *str, size_t n) -{ - const wchar_t *t = str; - size_t len; - - // Figure out how long this string is (remember, it might not be - // NUL-terminated). - - for (len = 0; - len < n && *t++ != '\0'; - len++) - continue; - - wchar_t *s; - ACE_ALLOCATOR_RETURN (s, - static_cast ( - ACE_OS::malloc ((len + 1) * sizeof (wchar_t))), - 0); - return ACE_OS::strsncpy (s, str, len + 1); -} -#endif /* ACE_HAS_WCHAR */ - -char * -ACE::strnnew (const char *str, size_t n) -{ - const char *t = str; - size_t len; - - // Figure out how long this string is (remember, it might not be - // NUL-terminated). - - for (len = 0; - len < n && *t++ != L'\0'; - len++) - continue; - - char *s; - ACE_NEW_RETURN (s, - char[len + 1], - 0); - return ACE_OS::strsncpy (s, str, len + 1); -} - -#if defined (ACE_HAS_WCHAR) -wchar_t * -ACE::strnnew (const wchar_t *str, size_t n) -{ - const wchar_t *t = str; - size_t len; - - // Figure out how long this string is (remember, it might not be - // NUL-terminated). - - for (len = 0; - len < n && *t++ != ACE_TEXT_WIDE ('\0'); - len++) - continue; - - wchar_t *s; - ACE_NEW_RETURN (s, - wchar_t[len + 1], - 0); - return ACE_OS::strsncpy (s, str, len + 1); -} -#endif /* ACE_HAS_WCHAR */ - -const char * -ACE::strend (const char *s) -{ - while (*s++ != '\0') - continue; - - return s; -} - -#if defined ACE_HAS_WCHAR -const wchar_t * -ACE::strend (const wchar_t *s) -{ - while (*s++ != ACE_TEXT_WIDE ('\0')) - continue; - - return s; -} -#endif - -char * -ACE::strnew (const char *s) -{ - if (s == 0) - return 0; - char *t = 0; - ACE_NEW_RETURN (t, - char [ACE_OS::strlen (s) + 1], - 0); - if (t == 0) - return 0; - else - return ACE_OS::strcpy (t, s); -} - -#if defined (ACE_HAS_WCHAR) -wchar_t * -ACE::strnew (const wchar_t *s) -{ - if (s == 0) - return 0; - wchar_t *t = 0; - ACE_NEW_RETURN (t, - wchar_t[ACE_OS::strlen (s) + 1], - 0); - if (t == 0) - return 0; - else - return ACE_OS::strcpy (t, s); -} -#endif /* ACE_HAS_WCHAR */ - -inline static bool equal_char(char a, char b, bool case_sensitive) -{ - if (case_sensitive) - return a == b; - return ACE_OS::ace_tolower(a) == ACE_OS::ace_tolower(b); -} - -bool -ACE::wild_match(const char* str, const char* pat, bool case_sensitive) -{ - if (str == pat) - return true; - if (pat == 0 || str == 0) - return false; - - bool star = false; - const char* s = str; - const char* p = pat; - while (*s != '\0') - { - if (*p == '*') - { - star = true; - pat = p; - while (*++pat == '*'); - - if (*pat == '\0') - return true; - p = pat; - } - else if (*p == '?') - { - ++s; - ++p; - } - else if (! equal_char(*s, *p, case_sensitive)) - { - if (!star) - return false; - s = ++str; - p = pat; - } - else - { - ++s; - ++p; - } - } - if (*p == '*') - while (*++p == '*'); - - return *p == '\0'; -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ACE.h b/ACE/ace/ACE.h deleted file mode 100644 index 7dec2712fa4..00000000000 --- a/ACE/ace/ACE.h +++ /dev/null @@ -1,825 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ACE.h - * - * $Id$ - * - * This file contains value added ACE functions that extend the - * behavior of the UNIX and Win32 OS calls. - * - * All these ACE static functions are consolidated in a single place - * in order to manage the namespace better. These functions are put - * here rather than in @c ACE_OS in order to separate concerns. - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_ACE_H -#define ACE_ACE_H - -#include /**/ "ace/pre.h" - -#include "ace/config-lite.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/OS_NS_math.h" -#include "ace/Flag_Manip.h" -#include "ace/Handle_Ops.h" -#include "ace/Lib_Find.h" -#include "ace/Init_ACE.h" -#include "ace/Sock_Connect.h" -#include "ace/Default_Constants.h" - -#if defined (ACE_EXPORT_MACRO) -# undef ACE_EXPORT_MACRO -#endif -#define ACE_EXPORT_MACRO ACE_Export - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declarations. -class ACE_Time_Value; -class ACE_Message_Block; -class ACE_Handle_Set; - -/** - * @namespace ACE - * - * @brief The namespace containing the ACE framework itself. - * - * The ACE namespace contains all types (classes, structures, - * typedefs, etc), and global functions and variables in the ACE - * framework. - */ -namespace ACE -{ - // = ACE version information. - /// e.g., the "5" in ACE 5.1.12. - extern ACE_Export u_int major_version (void); - - /// e.g., the "1" in ACE 5.1.12. - extern ACE_Export u_int minor_version (void); - - /// e.g., the "12" in ACE 5.1.12. - /// Returns 0 for "stable" (non-beta) releases. - extern ACE_Export u_int beta_version (void); - - // = C++ compiler version information. - /// E.g., the "SunPro C++" in SunPro C++ 4.32.0 - extern ACE_Export const ACE_TCHAR * compiler_name (void); - - /// E.g., the "4" in SunPro C++ 4.32.0 - extern ACE_Export u_int compiler_major_version (void); - - /// E.g., the "32" in SunPro C++ 4.32.0 - extern ACE_Export u_int compiler_minor_version (void); - - /// E.g., the "0" in SunPro C++ 4.32.0 - extern ACE_Export u_int compiler_beta_version (void); - - /// Check if error indicates the process being out of handles (file - /// descriptors). - extern ACE_Export int out_of_handles (int error); - - /// Simple wildcard matching function supporting '*' and '?' - /// return true if string s matches pattern. - extern ACE_Export bool wild_match(const char* s, const char* pattern, bool case_sensitive = true); - - /** - * @name I/O operations - * - * Notes on common parameters: - * - * @a handle is the connected endpoint that will be used for I/O. - * - * @a buf is the buffer to write from or receive into. - * - * @a len is the number of bytes to transfer. - * - * The @a timeout parameter in the following methods indicates how - * long to blocking trying to transfer data. If @a timeout == 0, - * then the call behaves as a normal send/recv call, i.e., for - * blocking sockets, the call will block until action is possible; - * for non-blocking sockets, @c EWOULDBLOCK will be returned if no - * action is immediately possible. - * - * If @a timeout != 0, the call will wait until the relative time - * specified in @a *timeout elapses. - * - * The "_n()" I/O methods keep looping until all the data has been - * transferred. These methods also work for sockets in non-blocking - * mode i.e., they keep looping on @c EWOULDBLOCK. @a timeout is - * used to make sure we keep making progress, i.e., the same timeout - * value is used for every I/O operation in the loop and the timeout - * is not counted down. - * - * The return values for the "*_n()" methods match the return values - * from the non "_n()" methods and are specified as follows: - * - * - On complete transfer, the number of bytes transferred is returned. - * - On timeout, -1 is returned, @c errno == @c ETIME. - * - On error, -1 is returned, @c errno is set to appropriate error. - * - On @c EOF, 0 is returned, @c errno is irrelevant. - * - * On partial transfers, i.e., if any data is transferred before - * timeout / error / @c EOF, @a bytes_transferred> will contain the - * number of bytes transferred. - * - * Methods with @a iovec parameter are I/O vector variants of the - * I/O operations. - * - * Methods with the extra @a flags argument will always result in - * @c send getting called. Methods without the extra @a flags - * argument will result in @c send getting called on Win32 - * platforms, and @c write getting called on non-Win32 platforms. - */ - //@{ - extern ACE_Export ssize_t recv (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout = 0); - -#if defined (ACE_HAS_TLI) - - extern ACE_Export ssize_t t_rcv (ACE_HANDLE handle, - void *buf, - size_t len, - int *flags, - const ACE_Time_Value *timeout = 0); - -#endif /* ACE_HAS_TLI */ - - extern ACE_Export ssize_t recv (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout = 0); - - extern ACE_Export ssize_t recvmsg (ACE_HANDLE handle, - struct msghdr *msg, - int flags, - const ACE_Time_Value *timeout = 0); - - extern ACE_Export ssize_t recvfrom (ACE_HANDLE handle, - char *buf, - int len, - int flags, - struct sockaddr *addr, - int *addrlen, - const ACE_Time_Value *timeout = 0); - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - -#if defined (ACE_HAS_TLI) - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t t_rcv_n (ACE_HANDLE handle, - void *buf, - size_t len, - int *flags, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - -#endif /* ACE_HAS_TLI */ - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - - /// Receive into a variable number of pieces. - /** - * Accepts a variable, caller-specified, number of pointer/length - * pairs. Arguments following @a n are char *, size_t pairs. - * - * @param handle The I/O handle to receive on - * @param n The total number of char *, size_t pairs following @a n. - * - * @return -1 on error, else total number of bytes received. - */ - extern ACE_Export ssize_t recv (ACE_HANDLE handle, size_t n, ...); - - extern ACE_Export ssize_t recvv (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout = 0); - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t recvv_n (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - - extern ACE_Export ssize_t recv_n (ACE_HANDLE handle, - ACE_Message_Block *message_block, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - - extern ACE_Export ssize_t send (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout = 0); - -#if defined (ACE_HAS_TLI) - - extern ACE_Export ssize_t t_snd (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout = 0); - -#endif /* ACE_HAS_TLI */ - - extern ACE_Export ssize_t send (ACE_HANDLE handle, - const void *buf, - size_t len, - const ACE_Time_Value *timeout = 0); - - extern ACE_Export ssize_t sendmsg (ACE_HANDLE handle, - const struct msghdr *msg, - int flags, - const ACE_Time_Value *timeout = 0); - - extern ACE_Export ssize_t sendto (ACE_HANDLE handle, - const char *buf, - int len, - int flags, - const struct sockaddr *addr, - int addrlen, - const ACE_Time_Value *timeout = 0); - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - -#if defined (ACE_HAS_TLI) - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t t_snd_n (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - -#endif /* ACE_HAS_TLI */ - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - - /// Varargs variant. - extern ACE_Export ssize_t send (ACE_HANDLE handle, size_t n, ...); - - extern ACE_Export ssize_t sendv (ACE_HANDLE handle, - const iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout = 0); - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t sendv_n (ACE_HANDLE handle, - const iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - - /// Send all the @a message_blocks chained through their @c next and - /// @c cont pointers. This call uses the underlying OS gather-write - /// operation to reduce the domain-crossing penalty. - extern ACE_Export ssize_t send_n (ACE_HANDLE handle, - const ACE_Message_Block *message_block, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0); - - // = File system I/O functions (these don't support timeouts). - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t read_n (ACE_HANDLE handle, - void *buf, - size_t len, - size_t *bytes_transferred = 0); - - ACE_NAMESPACE_INLINE_FUNCTION - ssize_t write_n (ACE_HANDLE handle, - const void *buf, - size_t len, - size_t *bytes_transferred = 0); - - /// Write all the @a message_blocks chained through their @c next - /// and @c cont pointers. This call uses the underlying OS - /// gather-write operation to reduce the domain-crossing penalty. - extern ACE_Export ssize_t write_n (ACE_HANDLE handle, - const ACE_Message_Block *message_block, - size_t *bytes_transferred = 0); - - extern ACE_Export ssize_t readv_n (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - size_t *bytes_transferred = 0); - - extern ACE_Export ssize_t writev_n (ACE_HANDLE handle, - const iovec *iov, - int iovcnt, - size_t *bytes_transferred = 0); - //@} - - /** - * Wait up to @a timeout amount of time to passively establish a - * connection. This method doesn't perform the @c accept, it just - * does the timed wait. - */ - extern ACE_Export int handle_timed_accept (ACE_HANDLE listener, - ACE_Time_Value *timeout, - int restart); - - /** - * Wait up to @a timeout amount of time to complete an actively - * established non-blocking connection. If @a is_tli is non-0 then - * we are being called by a TLI wrapper (which behaves slightly - * differently from a socket wrapper). - */ - extern ACE_Export ACE_HANDLE handle_timed_complete ( - ACE_HANDLE listener, - const ACE_Time_Value *timeout, - int is_tli = 0); - - /** - * Reset the limit on the number of open handles. If @a new_limit - * == -1 set the limit to the maximum allowable. Otherwise, set - * the limit value to @a new_limit. If @a increase_limit_only is - * non-0 then only allow increases to the limit. - */ - extern ACE_Export int set_handle_limit (int new_limit = -1, - int increase_limit_only = 0); - - /** - * Returns the maximum number of open handles currently permitted in - * this process. This maximum may be extended using - * @c ACE::set_handle_limit. - */ - extern ACE_Export int max_handles (void); - - // = String functions -#if !defined (ACE_HAS_WINCE) - /** - * Return a dynamically allocated duplicate of @a str, substituting - * the environment variable if @c str[0] @c == @c '$'. Note that - * the pointer is allocated with @c ACE_OS::malloc and must be freed - * by @c ACE_OS::free. - */ - extern ACE_Export ACE_TCHAR *strenvdup (const ACE_TCHAR *str); -#endif /* ACE_HAS_WINCE */ - - /// Returns a pointer to the "end" of the string, i.e., the character - /// past the '\0'. - extern ACE_Export const char *strend (const char *s); - - /// This method is just like @c strdup, except that it uses - /// @c operator @c new rather than @c malloc. If @a s is NULL - /// returns NULL rather than segfaulting. - extern ACE_Export char *strnew (const char *s); - - /// Delete the memory allocated by @c strnew. - ACE_NAMESPACE_INLINE_FUNCTION void strdelete (char *s); - - /// Create a fresh new copy of @a str, up to @a n chars long. Uses - /// @c ACE_OS::malloc to allocate the new string. - extern ACE_Export char *strndup (const char *str, size_t n); - - /// Create a fresh new copy of @a str, up to @a n chars long. Uses - /// @c ACE_OS::malloc to allocate the new string. - extern ACE_Export char *strnnew (const char *str, size_t n); - -#if defined (ACE_HAS_WCHAR) - extern ACE_Export const wchar_t *strend (const wchar_t *s); - - extern ACE_Export wchar_t *strnew (const wchar_t *s); - - ACE_NAMESPACE_INLINE_FUNCTION void strdelete (wchar_t *s); - - extern ACE_Export wchar_t *strndup (const wchar_t *str, size_t n); - - extern ACE_Export wchar_t *strnnew (const wchar_t *str, size_t n); - -#endif /* ACE_HAS_WCHAR */ - - /** - * On Windows, determines if a specified pathname ends with ".exe" - * (not case sensitive). If on Windows and there is no ".exe" suffix, - * a new ACE_TCHAR array is allocated and a copy of @c pathname with - * the ".exe" suffix is copied into it. In this case, the caller is - * responsible for calling delete [] on the returned pointer. - * - * @param pathname The name to check for a proper suffix. - * - * @retval @c pathname if there is a proper suffix for Windows. This is - * always the return value for non-Windows platforms. - * @retval If a suffix needs to be added, returns a pointer to new[] - * allocated memory containing the original @c pathname plus - * a ".exe" suffix. The caller is responsible for freeing the - * memory using delete []. - */ - extern ACE_Export const ACE_TCHAR *execname (const ACE_TCHAR *pathname); - - /** - * Returns the "basename" of a @a pathname separated by @a delim. - * For instance, the basename of "/tmp/foo.cpp" is "foo.cpp" when - * @a delim is @a '/'. - */ - extern ACE_Export const ACE_TCHAR *basename (const ACE_TCHAR *pathname, - ACE_TCHAR delim = - ACE_DIRECTORY_SEPARATOR_CHAR); - - /** - * Returns the "dirname" of a @a pathname. For instance, the - * dirname of "/tmp/foo.cpp" is "/tmp" when @a delim is @a '/'. If - * @a pathname has no @a delim ".\0" is returned. This method does - * not modify @a pathname and is not reentrant. - */ - extern ACE_Export const ACE_TCHAR *dirname (const ACE_TCHAR *pathname, - ACE_TCHAR delim = - 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. - */ - extern ACE_Export ACE_TCHAR *timestamp (ACE_TCHAR date_and_time[], - int time_len, - int return_pointer_to_first_digit = - 0); - - /** - * if @a avoid_zombies == 0 call @c ACE_OS::fork directly, else - * create an orphan process that's inherited by the init process; - * init cleans up when the orphan process terminates so we don't - * create zombies. Returns -1 on failure and either the child PID - * on success if @a avoid_zombies == 0 or 1 on success if @a - * avoid_zombies != 0 (this latter behavior is a known bug that - * needs to be fixed). - */ - extern ACE_Export pid_t fork ( - const ACE_TCHAR *program_name = ACE_TEXT (""), - int avoid_zombies = 0); - - /** - * Become a daemon process using the algorithm in Richard Stevens - * "Advanced Programming in the UNIX Environment." If - * @a close_all_handles is non-zero then all open file handles are - * closed. - */ - extern ACE_Export int daemonize ( - const ACE_TCHAR pathname[] = ACE_TEXT ("/"), - bool close_all_handles = ACE_DEFAULT_CLOSE_ALL_HANDLES, - const ACE_TCHAR program_name[] = ACE_TEXT ("")); - - // = Miscellaneous functions. - /// Rounds the request to a multiple of the page size. - extern ACE_Export size_t round_to_pagesize (size_t len); - - /// Rounds the request to a multiple of the allocation granularity. - extern ACE_Export size_t round_to_allocation_granularity (size_t len); - - // @@ UNICODE what about buffer? - /// Format buffer into printable format. This is useful for - /// debugging. - extern ACE_Export size_t format_hexdump (const char *buffer, size_t size, - ACE_TCHAR *obuf, size_t obuf_sz); - - /// Computes the hash value of {str} using the "Hash PJW" routine. - extern ACE_Export u_long hash_pjw (const char *str); - - /// Computes the hash value of {str} using the "Hash PJW" routine. - extern ACE_Export u_long hash_pjw (const char *str, size_t len); - -#if defined (ACE_HAS_WCHAR) - /// Computes the hash value of {str} using the "Hash PJW" routine. - extern ACE_Export u_long hash_pjw (const wchar_t *str); - - /// Computes the hash value of {str} using the "Hash PJW" routine. - extern ACE_Export u_long hash_pjw (const wchar_t *str, size_t len); -#endif /* ACE_HAS_WCHAR */ - - /// Computes CRC-CCITT for the string. - extern ACE_Export ACE_UINT16 crc_ccitt(const char *str); - - /// Computes CRC-CCITT for the buffer. - extern ACE_Export ACE_UINT16 crc_ccitt(const void *buf, size_t len, - ACE_UINT16 crc = 0); - - /// Computes CRC-CCITT for the @ len iovec buffers. - extern ACE_Export ACE_UINT16 crc_ccitt(const iovec *iov, int len, - ACE_UINT16 crc = 0); - - /// Computes the ISO 8802-3 standard 32 bits CRC for the string. - extern ACE_Export ACE_UINT32 crc32 (const char *str); - - /// Computes the ISO 8802-3 standard 32 bits CRC for the buffer. - extern ACE_Export ACE_UINT32 crc32 (const void *buf, size_t len, - ACE_UINT32 crc = 0); - - /// Computes the ISO 8802-3 standard 32 bits CRC for the - /// @ len iovec buffers. - extern ACE_Export ACE_UINT32 crc32 (const iovec *iov, int len, - ACE_UINT32 crc = 0); - - /// Euclid's greatest common divisor algorithm. - extern ACE_Export u_long gcd (u_long x, u_long y); - - /// Calculates the minimum enclosing frame size for the given values. - extern ACE_Export u_long minimum_frame_size (u_long period1, u_long period2); - - /** - * Function that can burn up noticeable CPU time: brute-force - * determination of whether number @a n is prime. Returns 0 if - * it is prime, or the smallest factor if it is not prime. - * @a min_factor and @a max_factor can be used to partition the work - * among threads. For just one thread, typical values are 2 and - * n/2. - */ - extern ACE_Export u_long is_prime (const u_long n, - const u_long min_factor, - const u_long max_factor); - - /// Map troublesome win32 errno values to values that standard C - /// strerr function understands. Thank you Microsoft. - extern ACE_Export int map_errno (int error); - - /// Returns a string containing the error message corresponding to a - /// WinSock error. This works around an omission in the Win32 API. - /// @internal - extern ACE_Export const ACE_TCHAR * sock_error (int error); - - /// Determins whether the given error code corresponds to to a - /// WinSock error. If so returns true, false otherwise. - /// @internal - extern ACE_Export bool is_sock_error (int error); - - /** - * Checks if process with {pid} is still alive. Returns 1 if it is - * still alive, 0 if it isn't alive, and -1 if something weird - * happened. - */ - extern ACE_Export int process_active (pid_t pid); - - /** - * Terminate the process abruptly with id @a pid. On Win32 platforms - * this uses {TerminateProcess} and on POSIX platforms is uses - * {kill} with the -9 (SIGKILL) signal, which cannot be caught or - * ignored. Note that this call is potentially dangerous to use - * since the process being terminated may not have a chance to - * cleanup before it shuts down. - */ - extern ACE_Export int terminate_process (pid_t pid); - - /** - * This method uses process id and object pointer to come up with a - * machine wide unique name. The process ID will provide uniqueness - * between processes on the same machine. The "this" pointer of the - * {object} will provide uniqueness between other "live" objects in - * the same process. The uniqueness of this name is therefore only - * valid for the life of {object}. - */ - ACE_NAMESPACE_INLINE_FUNCTION void unique_name (const void *object, - ACE_TCHAR *name, - size_t length); - - /// Computes the base 2 logarithm of {num}. - ACE_NAMESPACE_INLINE_FUNCTION u_long log2 (u_long num); - - /// Hex conversion utility. - ACE_NAMESPACE_INLINE_FUNCTION ACE_TCHAR nibble2hex (u_int n); - - /// Convert a hex character to its byte representation. - ACE_NAMESPACE_INLINE_FUNCTION u_char hex2byte (ACE_TCHAR c); - - // = Set/get the debug level. - extern ACE_Export bool debug (void); - extern ACE_Export void debug (bool onoff); - - /// Wrapper facade for @c select that uses @c ACE_Handle_Sets. - extern ACE_Export int select (int width, - ACE_Handle_Set *readfds, - ACE_Handle_Set *writefds = 0, - ACE_Handle_Set *exceptfds = 0, - const ACE_Time_Value *timeout = 0); - - /// Wrapper facade for the most common use of @c select that uses - /// @c ACE_Handle_Sets. - extern ACE_Export int select (int width, - ACE_Handle_Set &readfds, - const ACE_Time_Value *timeout = 0); - - /// Timed wait for handle to get read 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. - ACE_NAMESPACE_INLINE_FUNCTION - int handle_write_ready (ACE_HANDLE handle, - const ACE_Time_Value *timeout); - - /// Timed wait for handle to get exception 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. - extern ACE_Export int handle_ready (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int read_ready, - int write_ready, - int exception_ready); - - /// Wait for @a timeout before proceeding to a @c recv operation. - /// @a val keeps track of whether we're in non-blocking mode or - /// not. - extern ACE_Export int enter_recv_timedwait (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int &val); - - /// Wait for @a timeout before proceeding to a @c send operation. - /// @a val keeps track of whether we're in non-blocking mode or - /// not. - extern ACE_Export int enter_send_timedwait (ACE_HANDLE handle, - const ACE_Time_Value* timeout, - int &val); - - /// This makes sure that @a handle is set into non-blocking mode. - /// @a val keeps track of whether were in non-blocking mode or not. - extern ACE_Export void record_and_set_non_blocking_mode (ACE_HANDLE handle, - int &val); - - /// Cleanup after a timed operation, restore the appropriate - /// non-blocking status of @a handle. - extern ACE_Export void restore_non_blocking_mode (ACE_HANDLE handle, - int val); - - // private: - // These functions aren't meant to be used internally, so they are - // not exported. - - // - // = Recv_n helpers - // - - ACE_NAMESPACE_INLINE_FUNCTION ssize_t recv_i (ACE_HANDLE handle, - void *buf, - size_t len); - - extern ACE_Export ssize_t recv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - size_t *bytes_transferred); - - extern ACE_Export ssize_t recv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout, - size_t *bytes_transferred); - -#if defined (ACE_HAS_TLI) - - extern ACE_Export ssize_t t_rcv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - int *flags, - size_t *bytes_transferred); - - extern ACE_Export ssize_t t_rcv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - int *flags, - const ACE_Time_Value *timeout, - size_t *bytes_transferred); - -#endif /* ACE_HAS_TLI */ - - extern ACE_Export ssize_t recv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - size_t *bytes_transferred); - - extern ACE_Export ssize_t recv_n_i (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout, - size_t *bytes_transferred); - - extern ACE_Export ssize_t recvv_n_i (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - size_t *bytes_transferred); - - extern ACE_Export ssize_t recvv_n_i (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout, - size_t *bytes_transferred); - - // - // = Send_n helpers - // - - ACE_NAMESPACE_INLINE_FUNCTION ssize_t send_i (ACE_HANDLE handle, - const void *buf, - size_t len); - - extern ACE_Export ssize_t send_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - size_t *bytes_transferred); - - extern ACE_Export ssize_t send_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout, - size_t *bytes_transferred); - -#if defined (ACE_HAS_TLI) - - extern ACE_Export ssize_t t_snd_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - size_t *bytes_transferred); - - extern ACE_Export ssize_t t_snd_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout, - size_t *bytes_transferred); - -#endif /* ACE_HAS_TLI */ - - extern ACE_Export ssize_t send_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - size_t *bytes_transferred); - - extern ACE_Export ssize_t send_n_i (ACE_HANDLE handle, - const void *buf, - size_t len, - const ACE_Time_Value *timeout, - size_t *bytes_transferred); - - extern ACE_Export ssize_t sendv_n_i (ACE_HANDLE handle, - const iovec *iov, - int iovcnt, - size_t *bytes_transferred); - - extern ACE_Export ssize_t sendv_n_i (ACE_HANDLE handle, - const iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout, - size_t *bytes_transferred); - -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/ACE.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ACE_H */ diff --git a/ACE/ace/ACE.inl b/ACE/ace/ACE.inl deleted file mode 100644 index 573cae93357..00000000000 --- a/ACE/ace/ACE.inl +++ /dev/null @@ -1,350 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_unistd.h" -#include "ace/OS_NS_Thread.h" -#include "ace/OS_NS_ctype.h" -#include "ace/OS_NS_sys_socket.h" - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - - -// Wrappers for methods that have been moved to ACE_OS. - -ACE_INLINE ssize_t -ACE::read_n (ACE_HANDLE handle, - void *buf, - size_t len, - size_t *bytes_transferred) -{ - return ACE_OS::read_n (handle, - buf, - len, - bytes_transferred); -} - -ACE_INLINE ssize_t -ACE::write_n (ACE_HANDLE handle, - const void *buf, - size_t len, - size_t *bytes_transferred) -{ - return ACE_OS::write_n (handle, - buf, - len, - bytes_transferred); -} - -ACE_INLINE ssize_t -ACE::recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) -{ - if (timeout == 0) - return ACE::recv_n_i (handle, - buf, - len, - flags, - bytes_transferred); - else - return ACE::recv_n_i (handle, - buf, - len, - flags, - timeout, - bytes_transferred); -} - -#if defined (ACE_HAS_TLI) - -ACE_INLINE ssize_t -ACE::t_rcv_n (ACE_HANDLE handle, - void *buf, - size_t len, - int *flags, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) -{ - if (timeout == 0) - return ACE::t_rcv_n_i (handle, - buf, - len, - flags, - bytes_transferred); - else - return ACE::t_rcv_n_i (handle, - buf, - len, - flags, - timeout, - bytes_transferred); -} - -#endif /* ACE_HAS_TLI */ - -ACE_INLINE ssize_t -ACE::recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) -{ - if (timeout == 0) - return ACE::recv_n_i (handle, - buf, - len, - bytes_transferred); - else - return ACE::recv_n_i (handle, - buf, - len, - timeout, - bytes_transferred); -} - -ACE_INLINE ssize_t -ACE::recvv_n (ACE_HANDLE handle, - iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) -{ - if (timeout == 0) - return ACE::recvv_n_i (handle, - iov, - iovcnt, - bytes_transferred); - else - return ACE::recvv_n_i (handle, - iov, - iovcnt, - timeout, - bytes_transferred); -} - -ACE_INLINE ssize_t -ACE::send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) -{ - if (timeout == 0) - return ACE::send_n_i (handle, - buf, - len, - flags, - bytes_transferred); - else - return ACE::send_n_i (handle, - buf, - len, - flags, - timeout, - bytes_transferred); -} - -#if defined (ACE_HAS_TLI) - -ACE_INLINE ssize_t -ACE::t_snd_n (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) -{ - if (timeout == 0) - return ACE::t_snd_n_i (handle, - buf, - len, - flags, - bytes_transferred); - else - return ACE::t_snd_n_i (handle, - buf, - len, - flags, - timeout, - bytes_transferred); -} - -#endif /* ACE_HAS_TLI */ - -ACE_INLINE ssize_t -ACE::send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) -{ - if (timeout == 0) - return ACE::send_n_i (handle, - buf, - len, - bytes_transferred); - else - return ACE::send_n_i (handle, - buf, - len, - timeout, - bytes_transferred); -} - -ACE_INLINE ssize_t -ACE::sendv_n (ACE_HANDLE handle, - const iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) -{ - if (timeout == 0) - return ACE::sendv_n_i (handle, - iov, - iovcnt, - bytes_transferred); - else - return ACE::sendv_n_i (handle, - iov, - iovcnt, - timeout, - bytes_transferred); -} - -ACE_INLINE ssize_t -ACE::send_i (ACE_HANDLE handle, const void *buf, size_t len) -{ -#if defined (ACE_WIN32) || defined (HPUX) - return ACE_OS::send (handle, (const char *) buf, len); -#else - return ACE_OS::write (handle, (const char *) buf, len); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE ssize_t -ACE::recv_i (ACE_HANDLE handle, void *buf, size_t len) -{ -#if defined (ACE_WIN32) || defined (ACE_OPENVMS) || defined (ACE_TANDEM_T1248_PTHREADS) - return ACE_OS::recv (handle, (char *) buf, len); -#else - return ACE_OS::read (handle, (char *) buf, len); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE::handle_read_ready (ACE_HANDLE handle, - const ACE_Time_Value *timeout) -{ - return ACE::handle_ready (handle, - timeout, - 1, - 0, - 0); -} - -ACE_INLINE int -ACE::handle_write_ready (ACE_HANDLE handle, - const ACE_Time_Value *timeout) -{ - return ACE::handle_ready (handle, - timeout, - 0, - 1, - 0); -} - -ACE_INLINE int -ACE::handle_exception_ready (ACE_HANDLE handle, - const ACE_Time_Value *timeout) -{ - return ACE::handle_ready (handle, - timeout, - 0, - 0, - 1); -} - -ACE_INLINE void -ACE::strdelete (char *s) -{ - delete [] s; -} - -#if defined (ACE_HAS_WCHAR) -ACE_INLINE void -ACE::strdelete (wchar_t *s) -{ - delete [] s; -} -#endif /* ACE_HAS_WCHAR */ - -ACE_INLINE void -ACE::unique_name (const void *object, - ACE_TCHAR *name, - size_t length) -{ - ACE_OS::unique_name (object, name, length); -} - -ACE_INLINE u_long -ACE::log2 (u_long num) -{ - u_long log = 0; - - for (; num > 1; ++log) - num >>= 1; - - 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) -{ -#if defined (ACE_WIN32) - switch (error) - { - case WSAEWOULDBLOCK: - return EAGAIN; // Same as UNIX errno EWOULDBLOCK. - } -#endif /* ACE_WIN32 */ - - return error; -} - -ACE_INLINE u_char -ACE::hex2byte (ACE_TCHAR c) -{ - if (ACE_OS::ace_isdigit (c)) - return (u_char) (c - ACE_TEXT ('0')); - else if (ACE_OS::ace_islower (c)) - return (u_char) (10 + c - ACE_TEXT ('a')); - else - return (u_char) (10 + c - ACE_TEXT ('A')); -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ACE.pc.in b/ACE/ace/ACE.pc.in deleted file mode 100644 index 90b2a9eebd7..00000000000 --- a/ACE/ace/ACE.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: ACE -Description: ADAPTIVE Communication Environment -Version: @VERSION@ -Libs: -L${libdir} -lACE @LIBS@ -Cflags: -I${includedir} diff --git a/ACE/ace/ACE_crc32.cpp b/ACE/ace/ACE_crc32.cpp deleted file mode 100644 index f9e91c652ce..00000000000 --- a/ACE/ace/ACE_crc32.cpp +++ /dev/null @@ -1,161 +0,0 @@ -// $Id$ - -#include "ace/ACE.h" - -ACE_RCSID (ace, - ACE_crc32, - "$Id$") - - -namespace -{ - /*****************************************************************/ - /* */ - /* CRC LOOKUP TABLE */ - /* ================ */ - /* The following CRC lookup table was generated automagically */ - /* by the Rocksoft^tm Model CRC Algorithm Table Generation */ - /* Program V1.0 using the following model parameters: */ - /* */ - /* Width : 4 bytes. */ - /* Poly : 0x04C11DB7L */ - /* Reverse : TRUE. */ - /* */ - /* For more information on the Rocksoft^tm Model CRC Algorithm, */ - /* see the document titled "A Painless Guide to CRC Error */ - /* Detection Algorithms" by Ross Williams */ - /* (ross@guest.adelaide.edu.au.). This document is likely to be */ - /* in the FTP archive "ftp.adelaide.edu.au/pub/rocksoft". */ - /* */ - /*****************************************************************/ - - const ACE_UINT32 crc_table[] = - { - 0x00000000L, 0x77073096L, 0xEE0E612CL, 0x990951BAL, - 0x076DC419L, 0x706AF48FL, 0xE963A535L, 0x9E6495A3L, - 0x0EDB8832L, 0x79DCB8A4L, 0xE0D5E91EL, 0x97D2D988L, - 0x09B64C2BL, 0x7EB17CBDL, 0xE7B82D07L, 0x90BF1D91L, - 0x1DB71064L, 0x6AB020F2L, 0xF3B97148L, 0x84BE41DEL, - 0x1ADAD47DL, 0x6DDDE4EBL, 0xF4D4B551L, 0x83D385C7L, - 0x136C9856L, 0x646BA8C0L, 0xFD62F97AL, 0x8A65C9ECL, - 0x14015C4FL, 0x63066CD9L, 0xFA0F3D63L, 0x8D080DF5L, - 0x3B6E20C8L, 0x4C69105EL, 0xD56041E4L, 0xA2677172L, - 0x3C03E4D1L, 0x4B04D447L, 0xD20D85FDL, 0xA50AB56BL, - 0x35B5A8FAL, 0x42B2986CL, 0xDBBBC9D6L, 0xACBCF940L, - 0x32D86CE3L, 0x45DF5C75L, 0xDCD60DCFL, 0xABD13D59L, - 0x26D930ACL, 0x51DE003AL, 0xC8D75180L, 0xBFD06116L, - 0x21B4F4B5L, 0x56B3C423L, 0xCFBA9599L, 0xB8BDA50FL, - 0x2802B89EL, 0x5F058808L, 0xC60CD9B2L, 0xB10BE924L, - 0x2F6F7C87L, 0x58684C11L, 0xC1611DABL, 0xB6662D3DL, - 0x76DC4190L, 0x01DB7106L, 0x98D220BCL, 0xEFD5102AL, - 0x71B18589L, 0x06B6B51FL, 0x9FBFE4A5L, 0xE8B8D433L, - 0x7807C9A2L, 0x0F00F934L, 0x9609A88EL, 0xE10E9818L, - 0x7F6A0DBBL, 0x086D3D2DL, 0x91646C97L, 0xE6635C01L, - 0x6B6B51F4L, 0x1C6C6162L, 0x856530D8L, 0xF262004EL, - 0x6C0695EDL, 0x1B01A57BL, 0x8208F4C1L, 0xF50FC457L, - 0x65B0D9C6L, 0x12B7E950L, 0x8BBEB8EAL, 0xFCB9887CL, - 0x62DD1DDFL, 0x15DA2D49L, 0x8CD37CF3L, 0xFBD44C65L, - 0x4DB26158L, 0x3AB551CEL, 0xA3BC0074L, 0xD4BB30E2L, - 0x4ADFA541L, 0x3DD895D7L, 0xA4D1C46DL, 0xD3D6F4FBL, - 0x4369E96AL, 0x346ED9FCL, 0xAD678846L, 0xDA60B8D0L, - 0x44042D73L, 0x33031DE5L, 0xAA0A4C5FL, 0xDD0D7CC9L, - 0x5005713CL, 0x270241AAL, 0xBE0B1010L, 0xC90C2086L, - 0x5768B525L, 0x206F85B3L, 0xB966D409L, 0xCE61E49FL, - 0x5EDEF90EL, 0x29D9C998L, 0xB0D09822L, 0xC7D7A8B4L, - 0x59B33D17L, 0x2EB40D81L, 0xB7BD5C3BL, 0xC0BA6CADL, - 0xEDB88320L, 0x9ABFB3B6L, 0x03B6E20CL, 0x74B1D29AL, - 0xEAD54739L, 0x9DD277AFL, 0x04DB2615L, 0x73DC1683L, - 0xE3630B12L, 0x94643B84L, 0x0D6D6A3EL, 0x7A6A5AA8L, - 0xE40ECF0BL, 0x9309FF9DL, 0x0A00AE27L, 0x7D079EB1L, - 0xF00F9344L, 0x8708A3D2L, 0x1E01F268L, 0x6906C2FEL, - 0xF762575DL, 0x806567CBL, 0x196C3671L, 0x6E6B06E7L, - 0xFED41B76L, 0x89D32BE0L, 0x10DA7A5AL, 0x67DD4ACCL, - 0xF9B9DF6FL, 0x8EBEEFF9L, 0x17B7BE43L, 0x60B08ED5L, - 0xD6D6A3E8L, 0xA1D1937EL, 0x38D8C2C4L, 0x4FDFF252L, - 0xD1BB67F1L, 0xA6BC5767L, 0x3FB506DDL, 0x48B2364BL, - 0xD80D2BDAL, 0xAF0A1B4CL, 0x36034AF6L, 0x41047A60L, - 0xDF60EFC3L, 0xA867DF55L, 0x316E8EEFL, 0x4669BE79L, - 0xCB61B38CL, 0xBC66831AL, 0x256FD2A0L, 0x5268E236L, - 0xCC0C7795L, 0xBB0B4703L, 0x220216B9L, 0x5505262FL, - 0xC5BA3BBEL, 0xB2BD0B28L, 0x2BB45A92L, 0x5CB36A04L, - 0xC2D7FFA7L, 0xB5D0CF31L, 0x2CD99E8BL, 0x5BDEAE1DL, - 0x9B64C2B0L, 0xEC63F226L, 0x756AA39CL, 0x026D930AL, - 0x9C0906A9L, 0xEB0E363FL, 0x72076785L, 0x05005713L, - 0x95BF4A82L, 0xE2B87A14L, 0x7BB12BAEL, 0x0CB61B38L, - 0x92D28E9BL, 0xE5D5BE0DL, 0x7CDCEFB7L, 0x0BDBDF21L, - 0x86D3D2D4L, 0xF1D4E242L, 0x68DDB3F8L, 0x1FDA836EL, - 0x81BE16CDL, 0xF6B9265BL, 0x6FB077E1L, 0x18B74777L, - 0x88085AE6L, 0xFF0F6A70L, 0x66063BCAL, 0x11010B5CL, - 0x8F659EFFL, 0xF862AE69L, 0x616BFFD3L, 0x166CCF45L, - 0xA00AE278L, 0xD70DD2EEL, 0x4E048354L, 0x3903B3C2L, - 0xA7672661L, 0xD06016F7L, 0x4969474DL, 0x3E6E77DBL, - 0xAED16A4AL, 0xD9D65ADCL, 0x40DF0B66L, 0x37D83BF0L, - 0xA9BCAE53L, 0xDEBB9EC5L, 0x47B2CF7FL, 0x30B5FFE9L, - 0xBDBDF21CL, 0xCABAC28AL, 0x53B39330L, 0x24B4A3A6L, - 0xBAD03605L, 0xCDD70693L, 0x54DE5729L, 0x23D967BFL, - 0xB3667A2EL, 0xC4614AB8L, 0x5D681B02L, 0x2A6F2B94L, - 0xB40BBE37L, 0xC30C8EA1L, 0x5A05DF1BL, 0x2D02EF8DL - }; - - /*****************************************************************/ - /* End of CRC Lookup Table */ - /*****************************************************************/ -} - -#define COMPUTE(var, ch) (var) = (crc_table[(var ^ ch) & 0xFF] ^ (var >> 8)) - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_UINT32 -ACE::crc32 (const char *string) -{ - ACE_UINT32 crc = 0xFFFFFFFF; - - for (const char *p = string; - *p != 0; - ++p) - { - COMPUTE (crc, *p); - } - - return ~crc; -} - -ACE_UINT32 -ACE::crc32 (const void *buffer, size_t len, ACE_UINT32 crc) -{ - crc = ~crc; - - for (const char *p = (const char *) buffer, - *e = (const char *) buffer + len; - p != e; - ++p) - { - COMPUTE (crc, *p); - } - - return ~crc; -} - -ACE_UINT32 -ACE::crc32 (const iovec *iov, int len, ACE_UINT32 crc) -{ - crc = ~crc; - - for (int i = 0; i < len; ++i) - { - for (const char *p = (const char *) iov[i].iov_base, - *e = (const char *) iov[i].iov_base + iov[i].iov_len; - p != e; - ++p) - COMPUTE (crc, *p); - } - - return ~crc; -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - -#undef COMPUTE diff --git a/ACE/ace/ACE_crc_ccitt.cpp b/ACE/ace/ACE_crc_ccitt.cpp deleted file mode 100644 index f591b53aa10..00000000000 --- a/ACE/ace/ACE_crc_ccitt.cpp +++ /dev/null @@ -1,128 +0,0 @@ -// $Id$ - -#include "ace/ACE.h" - -ACE_RCSID (ace, - ACE_crc_ccitt, - "$Id$") - -namespace -{ - /*****************************************************************/ - /* */ - /* CRC LOOKUP TABLE */ - /* ================ */ - /* The following CRC lookup table was generated automagically */ - /* by the Rocksoft^tm Model CRC Algorithm Table Generation */ - /* Program V1.0 using the following model parameters: */ - /* */ - /* Width : 2 bytes. */ - /* Poly : 0x1021 */ - /* Reverse : TRUE. */ - /* */ - /* For more information on the Rocksoft^tm Model CRC Algorithm, */ - /* see the document titled "A Painless Guide to CRC Error */ - /* Detection Algorithms" by Ross Williams */ - /* (ross@guest.adelaide.edu.au.). This document is likely to be */ - /* in the FTP archive "ftp.adelaide.edu.au/pub/rocksoft". */ - /* */ - /*****************************************************************/ - - const ACE_UINT16 crc_table[] = - { - 0x0000, 0x1189, 0x2312, 0x329B, 0x4624, 0x57AD, 0x6536, 0x74BF, - 0x8C48, 0x9DC1, 0xAF5A, 0xBED3, 0xCA6C, 0xDBE5, 0xE97E, 0xF8F7, - 0x1081, 0x0108, 0x3393, 0x221A, 0x56A5, 0x472C, 0x75B7, 0x643E, - 0x9CC9, 0x8D40, 0xBFDB, 0xAE52, 0xDAED, 0xCB64, 0xF9FF, 0xE876, - 0x2102, 0x308B, 0x0210, 0x1399, 0x6726, 0x76AF, 0x4434, 0x55BD, - 0xAD4A, 0xBCC3, 0x8E58, 0x9FD1, 0xEB6E, 0xFAE7, 0xC87C, 0xD9F5, - 0x3183, 0x200A, 0x1291, 0x0318, 0x77A7, 0x662E, 0x54B5, 0x453C, - 0xBDCB, 0xAC42, 0x9ED9, 0x8F50, 0xFBEF, 0xEA66, 0xD8FD, 0xC974, - 0x4204, 0x538D, 0x6116, 0x709F, 0x0420, 0x15A9, 0x2732, 0x36BB, - 0xCE4C, 0xDFC5, 0xED5E, 0xFCD7, 0x8868, 0x99E1, 0xAB7A, 0xBAF3, - 0x5285, 0x430C, 0x7197, 0x601E, 0x14A1, 0x0528, 0x37B3, 0x263A, - 0xDECD, 0xCF44, 0xFDDF, 0xEC56, 0x98E9, 0x8960, 0xBBFB, 0xAA72, - 0x6306, 0x728F, 0x4014, 0x519D, 0x2522, 0x34AB, 0x0630, 0x17B9, - 0xEF4E, 0xFEC7, 0xCC5C, 0xDDD5, 0xA96A, 0xB8E3, 0x8A78, 0x9BF1, - 0x7387, 0x620E, 0x5095, 0x411C, 0x35A3, 0x242A, 0x16B1, 0x0738, - 0xFFCF, 0xEE46, 0xDCDD, 0xCD54, 0xB9EB, 0xA862, 0x9AF9, 0x8B70, - 0x8408, 0x9581, 0xA71A, 0xB693, 0xC22C, 0xD3A5, 0xE13E, 0xF0B7, - 0x0840, 0x19C9, 0x2B52, 0x3ADB, 0x4E64, 0x5FED, 0x6D76, 0x7CFF, - 0x9489, 0x8500, 0xB79B, 0xA612, 0xD2AD, 0xC324, 0xF1BF, 0xE036, - 0x18C1, 0x0948, 0x3BD3, 0x2A5A, 0x5EE5, 0x4F6C, 0x7DF7, 0x6C7E, - 0xA50A, 0xB483, 0x8618, 0x9791, 0xE32E, 0xF2A7, 0xC03C, 0xD1B5, - 0x2942, 0x38CB, 0x0A50, 0x1BD9, 0x6F66, 0x7EEF, 0x4C74, 0x5DFD, - 0xB58B, 0xA402, 0x9699, 0x8710, 0xF3AF, 0xE226, 0xD0BD, 0xC134, - 0x39C3, 0x284A, 0x1AD1, 0x0B58, 0x7FE7, 0x6E6E, 0x5CF5, 0x4D7C, - 0xC60C, 0xD785, 0xE51E, 0xF497, 0x8028, 0x91A1, 0xA33A, 0xB2B3, - 0x4A44, 0x5BCD, 0x6956, 0x78DF, 0x0C60, 0x1DE9, 0x2F72, 0x3EFB, - 0xD68D, 0xC704, 0xF59F, 0xE416, 0x90A9, 0x8120, 0xB3BB, 0xA232, - 0x5AC5, 0x4B4C, 0x79D7, 0x685E, 0x1CE1, 0x0D68, 0x3FF3, 0x2E7A, - 0xE70E, 0xF687, 0xC41C, 0xD595, 0xA12A, 0xB0A3, 0x8238, 0x93B1, - 0x6B46, 0x7ACF, 0x4854, 0x59DD, 0x2D62, 0x3CEB, 0x0E70, 0x1FF9, - 0xF78F, 0xE606, 0xD49D, 0xC514, 0xB1AB, 0xA022, 0x92B9, 0x8330, - 0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78 - }; - - /*****************************************************************/ - /* End of CRC Lookup Table */ - /*****************************************************************/ -} - -#define COMPUTE(var, ch) (var) = (crc_table[(var ^ ch) & 0xFF] ^ (var >> 8)) - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_UINT16 -ACE::crc_ccitt (const char *string) -{ - ACE_UINT16 crc = 0xFFFF; - - for (const char *p = string; - *p != 0; - ++p) - { - COMPUTE (crc, *p); - } - - return ~crc; -} - -ACE_UINT16 -ACE::crc_ccitt (const void *buffer, size_t len, ACE_UINT16 crc) -{ - crc = ~crc; - - for (const char *p = (const char *) buffer, - *e = (const char *) buffer + len; - p != e; - ++p) - { - COMPUTE (crc, *p); - } - - return ~crc; -} - -ACE_UINT16 -ACE::crc_ccitt (const iovec *iov, int len, ACE_UINT16 crc) -{ - crc = ~crc; - - for (int i = 0; i < len; ++i) - { - for (const char *p = (const char *) iov[i].iov_base, - *e = (const char *) iov[i].iov_base + iov[i].iov_len; - p != e; - ++p) - COMPUTE (crc, *p); - } - - return ~crc; -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - -#undef COMPUTE diff --git a/ACE/ace/ACE_export.h b/ACE/ace/ACE_export.h deleted file mode 100644 index a988b143427..00000000000 --- a/ACE/ace/ACE_export.h +++ /dev/null @@ -1,76 +0,0 @@ -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by -// generate_export_file.pl -// ------------------------------ - -#ifndef ACE_EXPORT_H -#define ACE_EXPORT_H - -#include "ace/config-lite.h" - -#if defined (ACE_AS_STATIC_LIBS) - -# if !defined (ACE_HAS_DLL) -# define ACE_HAS_DLL 0 -# endif /* ! ACE_HAS_DLL */ -#else -# if !defined (ACE_HAS_DLL) -# define ACE_HAS_DLL 1 -# endif /* ! ACE_HAS_DLL */ -#endif /* ACE_AS_STATIC_LIB */ - -#if defined (ACE_HAS_DLL) -# if (ACE_HAS_DLL == 1) -# if defined (ACE_BUILD_DLL) -# define ACE_Export ACE_Proper_Export_Flag -# define ACE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define ACE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else -# define ACE_Export ACE_Proper_Import_Flag -# define ACE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define ACE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* ACE_BUILD_DLL */ -# else -# define ACE_Export -# define ACE_SINGLETON_DECLARATION(T) -# define ACE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* ! ACE_HAS_DLL == 1 */ -#else -# define ACE_Export -# define ACE_SINGLETON_DECLARATION(T) -# define ACE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* ACE_HAS_DLL */ - -// Added by hand to help with ACE_OS namespace -#if defined (__TANDEM) && defined (USE_EXPLICIT_EXPORT) -#define ACE_NAMESPACE_STORAGE_CLASS ACE_EXPORT_MACRO extern -#else -#define ACE_NAMESPACE_STORAGE_CLASS extern ACE_EXPORT_MACRO -#endif - -#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) -# define ACE_NAMESPACE_INLINE_FUNCTION inline -# else -# define ACE_NAMESPACE_INLINE_FUNCTION ACE_NAMESPACE_STORAGE_CLASS inline -# endif -# define ACE_INLINE_TEMPLATE_FUNCTION inline -#else -# define ACE_NAMESPACE_INLINE_FUNCTION ACE_NAMESPACE_STORAGE_CLASS -// Microsoft Visual C++ will accept 'extern'; others refuse. -# if defined (_MSC_VER) || defined (__BORLANDC__) -# define ACE_INLINE_TEMPLATE_FUNCTION ACE_Export -# else -# define ACE_INLINE_TEMPLATE_FUNCTION -# endif -#endif - -#endif /* ACE_EXPORT_H */ - -// End of auto generated file. diff --git a/ACE/ace/ARGV.cpp b/ACE/ace/ARGV.cpp deleted file mode 100644 index 431db5b0ee7..00000000000 --- a/ACE/ace/ARGV.cpp +++ /dev/null @@ -1,359 +0,0 @@ -// $Id$ - -#ifndef ACE_ARGV_CPP -#define ACE_ARGV_CPP - -#include "ace/Log_Msg.h" -#include "ace/OS_NS_unistd.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_Memory.h" - -#if !defined (__ACE_INLINE__) -#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 - -ACE_ALLOC_HOOK_DEFINE (ACE_ARGV_Queue_Entry) -ACE_ALLOC_HOOK_DEFINE (ACE_ARGV) - -template -void -ACE_ARGV_Queue_Entry_T::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_ARGV_Queue_Entry_T::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("arg_ = %s"), this->arg_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("quote_arg_ = %d"), (int)this->quote_arg_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template -void -ACE_ARGV_T::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_ARGV_T::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("argc_ = %d"), this->argc_)); - - ACE_ARGV *this_obj = const_cast (this); - - for (int i = 0; i < this->argc_; i++) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("\nargv_[%i] = %s"), - i, - this_obj->argv ()[i])); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nbuf = %s\n"), this->buf_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// Creates this->argv_ out of this->buf_. New memory is allocated for -// each element of the array. This is used by the array-to-string -// style constructor and for creating this->argv_ when in iterative -// mode. - -template -int -ACE_ARGV_T::string_to_argv (void) -{ - ACE_TRACE ("ACE_ARGV_T::string_to_argv"); - - return ACE_OS::string_to_argv (this->buf_, - this->argc_, - this->argv_, - this->substitute_env_args_); -} - -template -ACE_ARGV_T::ACE_ARGV_T (const CHAR_TYPE buf[], - bool substitute_env_args) - : substitute_env_args_ (substitute_env_args), - iterative_ (false), - argc_ (0), - argv_ (0), - buf_ (0), - length_ (0), - queue_ () -{ - ACE_TRACE ("ACE_ARGV_T::ACE_ARGV_T CHAR_TYPE[] to CHAR_TYPE *[]"); - - if (buf == 0 || buf[0] == 0) - return; - - // Make an internal copy of the string. - ACE_NEW (this->buf_, - CHAR_TYPE[ACE_OS::strlen (buf) + 1]); - ACE_OS::strcpy (this->buf_, buf); - - // Create this->argv_. - if (this->string_to_argv () == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("string_to_argv"))); -} - -template -ACE_ARGV_T::ACE_ARGV_T (CHAR_TYPE *argv[], - bool substitute_env_args, - bool quote_arg) - : substitute_env_args_ (substitute_env_args), - iterative_ (false), - argc_ (0), - argv_ (0), - buf_ (0), - length_ (0), - queue_ () -{ - ACE_TRACE ("ACE_ARGV_T::ACE_ARGV_T CHAR_TYPE*[] to CHAR_TYPE[]"); - - if (argv == 0 || argv[0] == 0) - return; - - this->argc_ = ACE_OS::argv_to_string (argv, - this->buf_, - substitute_env_args, - quote_arg); -} - -template -ACE_ARGV_T::ACE_ARGV_T (CHAR_TYPE *first_argv[], - CHAR_TYPE *second_argv[], - bool substitute_env_args, - bool quote_args) - : substitute_env_args_ (substitute_env_args), - iterative_ (false), - argc_ (0), - argv_ (0), - buf_ (0), - length_ (0), - queue_ () -{ - ACE_TRACE ("ACE_ARGV_T::ACE_ARGV_T CHAR_TYPE*[] + CHAR_TYPE *[] to CHAR_TYPE[]"); - - int first_argc = 0; - int second_argc = 0; - - CHAR_TYPE *first_buf = 0; - CHAR_TYPE *second_buf = 0; - - // convert the first argv to a string - if (first_argv != 0 && first_argv[0] != 0) - { - first_argc = ACE_OS::argv_to_string (first_argv, - first_buf, - substitute_env_args, - quote_args); - } - - // convert the second argv to a string - if (second_argv != 0 && second_argv[0] != 0) - { - second_argc = ACE_OS::argv_to_string (second_argv, - second_buf, - substitute_env_args, - quote_args); - } - - // Add the number of arguments in both the argvs. - this->argc_ = first_argc + second_argc; - - size_t buf_len = - ACE_OS::strlen (first_buf) + ACE_OS::strlen (second_buf) + 1; - - // Allocate memory to the lenght of the combined argv string. - ACE_NEW (this->buf_, - CHAR_TYPE[buf_len + 1]); - - // copy the first argv string to the buffer - ACE_OS::strcpy (this->buf_, first_buf); - - // concatenate the second argv string to the buffer - ACE_OS::strcat (this->buf_, second_buf); - - // Delete the first and second buffers - delete [] first_buf; - delete [] second_buf; -} - -template -ACE_ARGV_T::ACE_ARGV_T (bool substitute_env_args) - : substitute_env_args_ (substitute_env_args), - iterative_ (true), - argc_ (0), - argv_ (0), - buf_ (0), - length_ (0), - queue_ () -{ - ACE_TRACE ("ACE_ARGV_T::ACE_ARGV_T Iterative"); - - // Nothing to do yet -- the user puts in arguments via add () -} - -template -int -ACE_ARGV_T::add (const CHAR_TYPE *next_arg, bool quote_arg) -{ - // Only allow this to work in the "iterative" verion -- the - // ACE_ARGVs created with the one argument constructor. - if (!this->iterative_) - { - errno = EINVAL; - return -1; - } - - this->length_ += ACE_OS::strlen (next_arg); - if (quote_arg && ACE_OS::strchr (next_arg, ' ') != 0) - { - this->length_ += 2; - if (ACE_OS::strchr (next_arg, '"') != 0) - for (const CHAR_TYPE * p = next_arg; *p != '\0'; ++p) - if (*p == '"') ++this->length_; - } - else - { - quote_arg = false; - } - - // Put the new argument at the end of the queue. - if (this->queue_.enqueue_tail (ACE_ARGV_Queue_Entry_T (next_arg, quote_arg)) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Can't add more to ARGV queue")), - -1); - - ++this->argc_; - - // Wipe argv_ and buf_ away so that they will be recreated if the - // user calls argv () or buf (). - if (this->argv_ != 0) - { - for (int i = 0; this->argv_[i] != 0; i++) - ACE_OS::free ((void *) this->argv_[i]); - - delete [] this->argv_; - this->argv_ = 0; - } - - delete [] this->buf_; - this->buf_ = 0; - - return 0; -} - -template -int -ACE_ARGV_T::add (CHAR_TYPE *argv[], bool quote_args) -{ - for (int i = 0; argv[i] != 0; i++) - if (this->add (argv[i], quote_args) == -1) - return -1; - - return 0; -} - -// Free up argv_ and buf_ - -template -ACE_ARGV_T::~ACE_ARGV_T (void) -{ - ACE_TRACE ("ACE_ARGV_T::~ACE_ARGV_T"); - - if (this->argv_ != 0) - for (int i = 0; this->argv_[i] != 0; i++) - ACE_OS::free ((void *) this->argv_[i]); - - delete [] this->argv_; - delete [] this->buf_; -} - -// Create buf_ out of the queue_. This is only used in the -// "iterative" mode. - -template -int -ACE_ARGV_T::create_buf_from_queue (void) -{ - ACE_TRACE ("ACE_ARGV_T::create_buf_from_queue"); - - // If the are no arguments, don't do anything - if (this->argc_ <= 0) - return -1; - - delete [] this->buf_; - - ACE_NEW_RETURN (this->buf_, - CHAR_TYPE[this->length_ + this->argc_], - -1); - - // Get an iterator over the queue - ACE_Unbounded_Queue_Iterator > iter (this->queue_); - - ACE_ARGV_Queue_Entry_T *arg = 0; - CHAR_TYPE *ptr = this->buf_; - size_t len; - - while (!iter.done ()) - { - // Get next argument from the queue. - iter.next (arg); - iter.advance (); - - if (arg->quote_arg_) - { - *ptr++ = '"'; - if (ACE_OS::strchr (arg->arg_, '"') != 0) - { - for (const CHAR_TYPE * p = arg->arg_; *p != '\0'; ++p) - { - if (*p == '"') *ptr++ = '\\'; - *ptr++ = *p; - } - } - else - { - len = ACE_OS::strlen (arg->arg_); - // Copy the argument into buf_ - ACE_OS::memcpy ((void *) ptr, - (const void *) (arg->arg_), - len * sizeof (CHAR_TYPE)); - // Move the pointer down. - ptr += len; - } - *ptr++ = '"'; - } - else - { - len = ACE_OS::strlen (arg->arg_); - // Copy the argument into buf_ - ACE_OS::memcpy ((void *) ptr, - (const void *) (arg->arg_), - len * sizeof (CHAR_TYPE)); - // Move the pointer down. - ptr += len; - } - - // Put in an argument separating space. - *ptr++ = ' '; - } - - // Put in the NUL terminator - ptr[-1] = '\0'; - - return 0; -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_ARGV_CPP */ diff --git a/ACE/ace/ARGV.h b/ACE/ace/ARGV.h deleted file mode 100644 index a50535f1dea..00000000000 --- a/ACE/ace/ARGV.h +++ /dev/null @@ -1,306 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file ARGV.h - * - * $Id$ - * - * @author Doug Schmidt - * @author Everett Anderson - */ -//========================================================================== - -#ifndef ACE_ARGUMENT_VECTOR_H -#define ACE_ARGUMENT_VECTOR_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/Global_Macros.h" -#include "ace/Unbounded_Queue.h" - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_ARGV_Queue_Entry_T - * - * @brief An entry in the queue which keeps user supplied arguments. - */ -template -class ACE_ARGV_Queue_Entry_T -{ -public: - // = Initialization and termination. - /// Initialize a ACE_ARGV_Queue_Entry_T. - ACE_ARGV_Queue_Entry_T (void); - - /** - * Initialize a ACE_ARGV_Queue_Entry_T. - * - * @param arg Pointer to an argument - * - * @param quote_arg The argument @a arg need to be quoted - * while adding to the vector. - */ - ACE_ARGV_Queue_Entry_T (const CHAR_TYPE *arg, - bool quote_arg); - - /** - * Initialize a ACE_ARGV_Queue_Entry_T. - * - * @param entry Pointer to a queue entry - */ - ACE_ARGV_Queue_Entry_T (const ACE_ARGV_Queue_Entry_T &entry); - - /// We need this destructor to keep some compilers from complaining. - /// It's just a no-op, however. - ~ACE_ARGV_Queue_Entry_T (void); - - /// Dump the state of this object. - void dump (void) const; - - // Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - /// Pointer to the argument. - const CHAR_TYPE * arg_; - - /// The argument need to be quoted while adding to the vector. - bool quote_arg_; -}; - -/** - * @class ACE_ARGV_T - * - * @brief Builds a counted argument vector (ala argc/argv) from either - * a string or a set of separate tokens. This class preserves whitespace - * within tokens only if the whitespace-containing token is enclosed in - * either single (') or double (") quotes. This is consistent with the - * expected behavior if an argument vector obtained using this class is - * passed to, for example, ACE_Get_Opt. - * - * This class can substitute environment variable values for tokens that - * are environment variable references (e.g., @c $VAR). This only works - * if the token is an environment variable reference and nothing else; it - * doesn't substitute environment variable references within a token. - * For example, @c $HOME/file will not substitute the value of the HOME - * environment variable. - */ -template -class ACE_ARGV_T -{ -public: - // = Initialization and termination. - /** - * Splits the specified string into an argument vector. Arguments in the - * string are delimited by whitespace. Whitespace-containing arguments - * must be enclosed in quotes, either single (') or double ("). - * - * @param buf A nul-terminated CHAR_TYPE array to split into arguments - * for the vector. - * - * @param substitute_env_args If non-zero, any token that is an - * environment variable reference (e.g., @c $VAR) will have - * its environment variable value in the resultant vector - * in place of the environment variable name. - */ - explicit ACE_ARGV_T (const CHAR_TYPE buf[], - bool substitute_env_args = true); - - /** - * Initializes the argument vector from a set of arguments. Any environment - * variable references are translated (if applicable) during execution of - * this method. - * - * @param argv An array of tokens to initialize the object with. The - * array must be terminated with a 0 pointer. All needed - * data is copied from @a argv during this call; the pointers - * in @a argv are not needed after this call, and the memory - * referred to by @a argv is not referenced by this object. - * - * @param substitute_env_args If non-zero, any element of @a argv that is - * an environment variable reference (e.g., @c $VAR) will have - * its environment variable value in the resultant vector - * in place of the environment variable name. - * - * @param quote_args If non-zero each argument @a argv[i] needs to - * be enclosed in double quotes ('"'). - */ - explicit ACE_ARGV_T (CHAR_TYPE *argv[], - bool substitute_env_args = true, - bool quote_args = false); - - /** - * Initializes the argument vector from two combined argument vectors. - * - * @param first_argv An array of tokens to initialize the object with. - * The array must be terminated with a 0 pointer. - * @param second_argv An array of tokens that is concatenated with the - * the tokens in @a first_argv. The array must be - * terminated with a 0 pointer. - * @param substitute_env_args If non-zero, any element of @a first_argv - * or @a second_argv that is an environment variable - * reference (e.g., @c $VAR) will have its environment - * variable value in the resultant vector in place - * of the environment variable name. - * - * @param quote_args If non-zero each arguments @a first_argv[i] and - * @a second_argv[i] needs to be enclosed - * in double quotes ('"'). - */ - ACE_ARGV_T (CHAR_TYPE *first_argv[], - CHAR_TYPE *second_argv[], - bool substitute_env_args = true, - bool quote_args = false); - - /** - * Initialize this object so arguments can be added later using one - * of the add methods. This is referred to as the @i iterative method - * of adding arguments to this object. - */ - explicit ACE_ARGV_T (bool substitute_env_args = true); - - /// Destructor. - ~ACE_ARGV_T (void); - - /** @name Accessor methods - * - * These methods access the argument vector contained in this object. - */ - //@{ - /** - * Returns the specified element of the current argument vector. - * - * @param index Index to the desired element. - * - * @retval Pointer to the indexed string. - * @retval 0 if @a index is out of bounds. - */ - const CHAR_TYPE *operator[] (size_t index); - - /** - * Returns the current argument vector. The returned pointers are to data - * maintained internally to this class. Do not change or delete either the - * pointers or the memory to which they refer. - */ - CHAR_TYPE **argv (void); - - /// Returns the current number of arguments. - int argc (void) const; - - /** - * Returns a single string form of the current arguments. The returned - * pointer refers to memory maintained internally to this class. Do not - * change or delete it. - */ - const CHAR_TYPE *buf (void); - - //@} - - /// Dump the state of this object. - void dump (void) const; - - // Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - /** - * Add another argument. This only works in the iterative mode. - * - * @note This method copies the specified pointer, but not the data - * contained in the referenced memory. Thus, if the content of - * the memory referred to by @a next_arg are changed after this - * method returns, the results are undefined. - * - * @param next_arg Pointer to the next argument to add to the vector. - * - * @param quote_arg The argument @a next_arg need to be quoted while - * adding to the vector. - * - * @retval 0 on success; -1 on failure. Most likely @c errno values are: - * - EINVAL: This object is not in iterative mode. - * - ENOMEM: Not enough memory available to save @a next_arg. - */ - int add (const CHAR_TYPE *next_arg, bool quote_arg = false); - - /** - * Add an array of arguments. This only works in the iterative mode. - * - * @note This method copies the specified pointers, but not the data - * contained in the referenced memory. Thus, if the content of - * the memory referred to by any of the @a argv elements is - * changed after this method returns, the results are undefined. - * - * @param argv Pointers to the arguments to add to the vector. - * @a argv must be terminated by a 0 pointer. - * - * @param quote_args If non-zero each argument @a argv[i] needs to - * be enclosed in double quotes ('"'). - * - * @retval 0 on success; -1 on failure. Most likely @c errno values are: - * - EINVAL: This object is not in iterative mode. - * - ENOMEM: Not enough memory available to save @a next_arg. - */ - int add (CHAR_TYPE *argv[], bool quote_args = false); - -private: - /// Copy constructor not implemented. - ACE_UNIMPLEMENTED_FUNC (ACE_ARGV_T (const ACE_ARGV_T&)) - - /// Assignment operator not implemented. - ACE_UNIMPLEMENTED_FUNC (ACE_ARGV_T operator= (const ACE_ARGV_T&)) - - /// Creates buf_ from the queue of added args, deletes previous buf_. - int create_buf_from_queue (void); - - /// Converts buf_ into the CHAR_TYPE *argv[] format. - int string_to_argv (void); - - /// Replace args with environment variable values? - bool substitute_env_args_; - - bool iterative_; - - /// Number of arguments in the ARGV array. - int argc_; - - /// The array of string arguments. - CHAR_TYPE **argv_; - - /// Buffer containing the contents. - CHAR_TYPE *buf_; - - /// Total length of the arguments in the queue, not counting - /// separating spaces - size_t length_; - - /// Queue which keeps user supplied arguments. This is only - /// active in the "iterative" mode. - ACE_Unbounded_Queue > queue_; -}; - -typedef ACE_ARGV_Queue_Entry_T ACE_ARGV_Queue_Entry; -typedef ACE_ARGV_T ACE_ARGV; - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/ARGV.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/ARGV.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("ARGV.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_ARGUMENT_VECTOR_H */ diff --git a/ACE/ace/ARGV.inl b/ACE/ace/ARGV.inl deleted file mode 100644 index e84166f49ba..00000000000 --- a/ACE/ace/ARGV.inl +++ /dev/null @@ -1,104 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#include "ace/Global_Macros.h" - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE -ACE_ARGV_Queue_Entry_T::ACE_ARGV_Queue_Entry_T (void) - : arg_(0), - quote_arg_(false) -{ - // No-op -} - -template ACE_INLINE -ACE_ARGV_Queue_Entry_T::ACE_ARGV_Queue_Entry_T (const CHAR_TYPE *arg, - bool quote_arg) - : arg_(arg), - quote_arg_(quote_arg) -{ - // No-op -} - -template ACE_INLINE -ACE_ARGV_Queue_Entry_T::ACE_ARGV_Queue_Entry_T (const ACE_ARGV_Queue_Entry_T &entry) - : arg_(entry.arg_), - quote_arg_(entry.quote_arg_) -{ - // No-op -} - -template ACE_INLINE -ACE_ARGV_Queue_Entry_T::~ACE_ARGV_Queue_Entry_T (void) -{ - // No-op just to keep some compilers happy... -} - -// Return the number of args -template -ACE_INLINE int -ACE_ARGV_T::argc (void) const -{ - ACE_TRACE ("ACE_ARGV_T::argc"); - // Try to create the argv_ if it isn't there - ACE_ARGV_T *nonconst_this = - const_cast *> (this); - (void) nonconst_this->argv (); - return this->argc_; -} - -// Return the arguments in a space-separated string -template -ACE_INLINE const CHAR_TYPE * -ACE_ARGV_T::buf (void) -{ - ACE_TRACE ("ACE_ARGV_T::buf"); - - if (this->buf_ == 0 && this->iterative_) - this->create_buf_from_queue (); - - return (const CHAR_TYPE *) this->buf_; -} - -// Return the arguments in an entry-per-argument array - -template -ACE_INLINE CHAR_TYPE ** -ACE_ARGV_T::argv (void) -{ - ACE_TRACE ("ACE_ARGV_T::argv"); - - // Try to create the argv_ if it isn't there - if (this->argv_ == 0) - { - if (this->iterative_ && this->buf_ == 0) - this->create_buf_from_queue (); - - // Convert buf_ to argv_ - if (this->string_to_argv () == -1) - return (CHAR_TYPE **) 0; - } - - return (CHAR_TYPE **) this->argv_; -} - -// Subscript operator. - -template -ACE_INLINE const CHAR_TYPE * -ACE_ARGV_T::operator[] (size_t i) -{ - ACE_TRACE ("ACE_ARGV_T::operator[]"); - - // Don't go out of bounds. - if (i >= static_cast (this->argc_)) - return 0; - - return (const CHAR_TYPE *) this->argv ()[i]; -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ATM_Acceptor.cpp b/ACE/ace/ATM_Acceptor.cpp deleted file mode 100644 index 5a78f1c32c8..00000000000 --- a/ACE/ace/ATM_Acceptor.cpp +++ /dev/null @@ -1,309 +0,0 @@ -// $Id$ - -#include "ace/ATM_Acceptor.h" - -ACE_RCSID(ace, ATM_Acceptor, "$Id$") - -#if defined (ACE_HAS_ATM) - -#if defined (ACE_HAS_LINUX_ATM) -#include /**/ "linux/atmdev.h" -#endif /* ACE_HAS_LINUX_ATM */ - -#if !defined (__ACE_INLINE__) -#include "ace/ATM_Acceptor.inl" -#endif /* __ACE_INLINE__ */ - - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Put the actual definitions of the ACE_ATM_Request and -// ACE_ATM_Request_Queue classes here to hide them from clients... - -ACE_ALLOC_HOOK_DEFINE(ACE_ATM_Acceptor) - -ACE_ATM_Acceptor::ACE_ATM_Acceptor (void) -{ - ACE_TRACE ("ACE_ATM_Acceptor::ACE_ATM_Acceptor"); -} - -ACE_ATM_Acceptor::~ACE_ATM_Acceptor (void) -{ - ACE_TRACE ("ACE_ATM_Acceptor::~ACE_ATM_Acceptor"); -} - -int -ACE_ATM_Acceptor::get_local_addr (ACE_ATM_Addr &local_addr) -{ - ACE_TRACE ("ACE_ATM_Acceptor::get_local_addr"); - -#if defined (ACE_HAS_FORE_ATM_WS2) - unsigned long ret = 0; - DWORD deviceID = 0; - ATM_ADDRESS addr; - struct sockaddr_atm *laddr; - - if (::WSAIoctl ((int) ((ACE_SOCK_Acceptor *)this) -> get_handle (), - SIO_GET_ATM_ADDRESS, - (LPVOID) &deviceID, - sizeof (DWORD), - (LPVOID)&addr, - sizeof (ATM_ADDRESS), - &ret, - 0, - 0) == SOCKET_ERROR) { - ACE_OS::printf ("ATM_Acceptor (get_local_addr): WSIoctl: %d\n", - ::WSAGetLastError ()); - return -1; - } - - laddr = (struct sockaddr_atm *)local_addr.get_addr (); - ACE_OS::memcpy ((void *)& (laddr -> satm_number), - (void *)&addr, - ATM_ADDR_SIZE - 1); - - return 0; -#elif defined (ACE_HAS_FORE_ATM_XTI) - ACE_UNUSED_ARG (local_addr); - - return 0; -#elif defined (ACE_HAS_LINUX_ATM) - ATM_Addr *myaddr = (ATM_Addr *)local_addr.get_addr (); - int addrlen = sizeof (myaddr->sockaddratmsvc); - - if (ACE_OS::getsockname (acceptor_.get_handle (), - (struct sockaddr *) & (myaddr->sockaddratmsvc), - &addrlen) < 0) { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ATM_Acceptor (get_local_addr): ioctl: %d\n"), - errno)); - return -1; - } - - return (0); -#else - ACE_UNUSED_ARG (local_addr); - - return 0; -#endif /* ACE_HAS_FORE_ATM_WS2 && ACE_HAS_FORE_ATM_XTI */ -} - -ACE_HANDLE -ACE_ATM_Acceptor::open (const ACE_Addr &remote_sap, - int backlog, - ACE_ATM_Params params) -{ - ACE_TRACE ("ACE_ATM_Acceptor::open"); -#if defined (ACE_HAS_FORE_ATM_XTI) - ACE_HANDLE handle = acceptor_.open (remote_sap, - params.get_reuse_addr (), - params.get_oflag (), - params.get_info (), - backlog, - params.get_device ()); - return (handle == ACE_INVALID_HANDLE ? -1 : 0); -#elif defined (ACE_HAS_FORE_ATM_WS2) - struct sockaddr_atm local_atm_addr; - ACE_HANDLE ret; - DWORD flags = 0; - - /* Create a local endpoint of communication */ - - // Only leaves can listen. - flags = ACE_FLAG_MULTIPOINT_C_LEAF | ACE_FLAG_MULTIPOINT_D_LEAF; - - if ((ret = ACE_OS::socket (AF_ATM, - SOCK_RAW, - ATMPROTO_AAL5, - 0, - 0, - flags)) - == ACE_INVALID_HANDLE) { - ACE_OS::printf ("Acceptor (open): socket %d\n", - ::WSAGetLastError ()); - return (ret); - } - - ((ACE_SOCK_Acceptor *)this) -> set_handle (ret); - - /* Set up the address information to become a server */ - ACE_OS::memset ((void *) &local_atm_addr, 0, sizeof local_atm_addr); - local_atm_addr.satm_family = AF_ATM; - local_atm_addr.satm_number.AddressType = SAP_FIELD_ANY_AESA_REST; - local_atm_addr.satm_number.Addr[ ATM_ADDR_SIZE - 1 ] - = ((ACE_ATM_Addr *)&remote_sap) -> get_selector (); - local_atm_addr.satm_blli.Layer2Protocol = SAP_FIELD_ANY; - local_atm_addr.satm_blli.Layer3Protocol = SAP_FIELD_ABSENT; - local_atm_addr.satm_bhli.HighLayerInfoType = SAP_FIELD_ABSENT; - - /* Associate address with endpoint */ - if (ACE_OS::bind (((ACE_SOCK_Acceptor *)this) -> get_handle (), - reinterpret_cast (&local_atm_addr), - sizeof local_atm_addr) == -1) { - ACE_OS::printf ("Acceptor (open): bind %d\n", ::WSAGetLastError ()); - return (ACE_INVALID_HANDLE); - } - - /* Make endpoint listen for service requests */ - if (ACE_OS::listen (( (ACE_SOCK_Acceptor *)this) -> get_handle (), - backlog) - == -1) { - ACE_OS::printf ("Acceptor (open): listen %d\n", ::WSAGetLastError ()); - return (ACE_INVALID_HANDLE); - } - - return 0; -#elif defined (ACE_HAS_LINUX_ATM) - //we need to set the qos before binding to the socket - //use remote_sap as local_sap - - ACE_ATM_Addr local_sap; - ATM_Addr *local_sap_addr = (ATM_Addr*)local_sap.get_addr (); - ACE_ATM_QoS def_qos; - ATM_QoS qos = def_qos.get_qos (); - - ACE_HANDLE handle; - if ((handle = ACE_OS::socket (params.get_protocol_family (), - params.get_type (), - params.get_protocol (), - params.get_protocol_info (), - params.get_sock_group (), - params.get_flags () - )) - == ACE_INVALID_HANDLE) { - ACE_DEBUG (LM_DEBUG, - ACE_TEXT ("Acceptor (socket): socket %d\n"), - errno); - return (ACE_INVALID_HANDLE); - } - - ((ACE_SOCK_Acceptor *)this) -> set_handle (handle); - if (ACE_OS::setsockopt (handle, - SOL_ATM, - SO_ATMQOS, - reinterpret_cast (&qos), - sizeof (qos)) < 0) { - ACE_OS::printf ("Acceptor (setsockopt): setsockopt:%d\n", - errno); - } - - struct atmif_sioc req; - struct sockaddr_atmsvc aux_addr[1024]; - - req.number = 0; - req.arg = aux_addr; - req.length = sizeof (aux_addr); - if (ACE_OS::ioctl (handle, - ATM_GETADDR, - &req) < 0) { - ACE_OS::perror ("Acceptor (setsockopt): ioctl:"); - } - else { - local_sap_addr->sockaddratmsvc = aux_addr[0]; - } - local_sap.set_selector (( (ACE_ATM_Addr*)&remote_sap)->get_selector ()); - - if (ACE_OS::bind (handle, - reinterpret_cast ( - &(local_sap_addr->sockaddratmsvc)), - sizeof (local_sap_addr->sockaddratmsvc) - ) == -1) { - ACE_DEBUG (LM_DEBUG, - ACE_TEXT ("Acceptor (open): bind %d\n"), - errno); - return -1; - } - // Make endpoint listen for service requests - if (ACE_OS::listen (handle, - backlog) - == -1) { - ACE_DEBUG (LM_DEBUG, - ACE_TEXT ("Acceptor (listen): listen %d\n"), - errno); - return -1; - } - - return 0; -#else - ACE_UNUSED_ARG (remote_sap); - ACE_UNUSED_ARG (backlog); - ACE_UNUSED_ARG (params); -#endif /* ACE_HAS_FORE_ATM_XTI/ACE_HAS_FORE_ATM_WS2/ACE_HAS_LINUX_ATM */ -} - -int -ACE_ATM_Acceptor::accept (ACE_ATM_Stream &new_sap, - ACE_Addr *remote_addr, - ACE_Time_Value *timeout, - int restart, - int reset_new_handle, - ACE_ATM_Params params, - ACE_ATM_QoS qos) -{ - ACE_TRACE ("ACE_ATM_Acceptor::accept"); -#if defined (ACE_HAS_FORE_ATM_XTI) - ATM_QoS optbuf = qos.get_qos (); - - return (acceptor_.accept (new_sap.get_stream (), - remote_addr, - timeout, - restart, - reset_new_handle, - params.get_rw_flag (), - params.get_user_data (), - &optbuf)); -#elif defined (ACE_HAS_FORE_ATM_WS2) - ACE_HANDLE n_handle; - ACE_HANDLE s_handle = ((ACE_SOCK_Acceptor *) this) -> get_handle (); - struct sockaddr_atm *cli_addr - = (struct sockaddr_atm *)remote_addr -> get_addr (); - int caddr_len = sizeof (struct sockaddr_atm); - - do { - n_handle = ACE_OS::accept (s_handle, - reinterpret_cast (cli_addr), - &caddr_len); - } while (n_handle == ACE_INVALID_HANDLE && errno == EINTR); - - ((ACE_ATM_Addr *)remote_addr) -> set (cli_addr, - ((ACE_ATM_Addr *)remote_addr) -> get_selector ()); - ((ACE_IPC_SAP *)&new_sap) -> set_handle (n_handle); - - return 0; -#elif defined (ACE_HAS_LINUX_ATM) - ACE_UNUSED_ARG (params); - - ACE_HANDLE s_handle = ((ACE_SOCK_Acceptor *) this) -> get_handle (); - struct atm_qos accept_qos = qos.get_qos (); - - if (ACE_OS::setsockopt (s_handle, - SOL_ATM, - SO_ATMQOS, - reinterpret_cast (&accept_qos), - sizeof (accept_qos)) < 0) { - ACE_OS::printf ("Acceptor (accept): error setting Qos"); - } - - return (acceptor_.accept (new_sap.get_stream (), - remote_addr, - timeout, - restart, - reset_new_handle)); -#else - ACE_UNUSED_ARG (new_sap); - ACE_UNUSED_ARG (remote_addr); - ACE_UNUSED_ARG (timeout); - ACE_UNUSED_ARG (restart); - ACE_UNUSED_ARG (reset_new_handle); - ACE_UNUSED_ARG (params); - ACE_UNUSED_ARG (qos); - return (0); -#endif /* ACE_HAS_FORE_ATM_XTI */ -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - - -#endif /* ACE_HAS_ATM */ diff --git a/ACE/ace/ATM_Acceptor.h b/ACE/ace/ATM_Acceptor.h deleted file mode 100644 index 5ed236099e3..00000000000 --- a/ACE/ace/ATM_Acceptor.h +++ /dev/null @@ -1,123 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ATM_Acceptor.h - * - * $Id$ - * - * @author Joe Hoffert - */ -//============================================================================= - - -#ifndef ACE_ATM_ACCEPTOR_H -#define ACE_ATM_ACCEPTOR_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_HAS_ATM) - -#include "ace/ATM_Stream.h" -#include "ace/ATM_Params.h" -#include "ace/ATM_QoS.h" - -#if defined (ACE_HAS_LINUX_ATM) -#include /**/ "atm.h" -#endif /* ACE_HAS_LINUX_ATM */ - -#if defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM) -#include "ace/SOCK_Acceptor.h" -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef ACE_SOCK_Acceptor ATM_Acceptor; -ACE_END_VERSIONED_NAMESPACE_DECL -#elif defined (ACE_HAS_FORE_ATM_XTI) -#include "ace/TLI_Acceptor.h" -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef ACE_TLI_Acceptor ATM_Acceptor; -ACE_END_VERSIONED_NAMESPACE_DECL -#endif // ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declarations. -class ACE_Time_Value; - -/** - * @class ACE_ATM_Acceptor - * - * @brief Defines the member functions for ACE_ATM_Acceptor abstraction. - * - * This class wraps up the ACE_SOCK_Acceptor and ACE_TLI_Acceptor - * to make the mechanism for the ATM protocol transparent. - */ -class ACE_Export ACE_ATM_Acceptor -{ - -public: - // = Initialization and termination methods. - /// Default constructor. - ACE_ATM_Acceptor (void); - - ~ACE_ATM_Acceptor (); - - /// Initiate a passive mode connection. - ACE_ATM_Acceptor (const ACE_Addr &remote_sap, - int backlog = ACE_DEFAULT_BACKLOG, - ACE_ATM_Params params = ACE_ATM_Params()); - - /// Initiate a passive mode socket. - ACE_HANDLE open (const ACE_Addr &remote_sap, - int backlog = ACE_DEFAULT_BACKLOG, - ACE_ATM_Params params = ACE_ATM_Params()); - - /// Close down the acceptor and release resources. - int close (void); - - // = Passive connection acceptance method. - - /// Accept a new data transfer connection. A @a timeout of 0 means - /// block forever, a @a timeout of {0, 0} means poll. @a restart == 1 - /// means "restart if interrupted." - int accept (ACE_ATM_Stream &new_sap, - ACE_Addr *remote_addr = 0, - ACE_Time_Value *timeout = 0, - int restart = 1, - int reset_new_handle = 0, - ACE_ATM_Params params = ACE_ATM_Params(), - ACE_ATM_QoS qos = ACE_ATM_QoS()); - - /// Get the local address currently listening on - int get_local_addr( ACE_ATM_Addr &local_addr ); - - // = Meta-type info - typedef ACE_ATM_Addr PEER_ADDR; - typedef ACE_ATM_Stream PEER_STREAM; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - ATM_Acceptor acceptor_; -}; - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - - -#if defined (__ACE_INLINE__) -#include "ace/ATM_Acceptor.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_HAS_ATM */ -#include /**/ "ace/post.h" -#endif /* ACE_ATM_ACCEPTOR_H */ diff --git a/ACE/ace/ATM_Acceptor.inl b/ACE/ace/ATM_Acceptor.inl deleted file mode 100644 index c08fd048f68..00000000000 --- a/ACE/ace/ATM_Acceptor.inl +++ /dev/null @@ -1,43 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE void -ACE_ATM_Acceptor::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_ATM_Acceptor::dump"); -#endif /* ACE_HAS_DUMP */ -} - -ACE_INLINE -ACE_ATM_Acceptor::ACE_ATM_Acceptor (const ACE_Addr &remote_sap, - int backlog, - ACE_ATM_Params params) -{ - ACE_TRACE ("ACE_ATM_Acceptor::ACE_ATM_Acceptor"); - - //FUZZ: disable check_for_lack_ACE_OS - if (open (remote_sap, backlog, params) < 0) - //FUZZ: enable check_for_lack_ACE_OS - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_ATM_Acceptor::ACE_ATM_Acceptor"))); -} - -ACE_INLINE -int -ACE_ATM_Acceptor::close (void) -{ -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM) - return (acceptor_.close()); -#else - return 0; -#endif // ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ATM_Addr.cpp b/ACE/ace/ATM_Addr.cpp deleted file mode 100644 index 19088cef5b1..00000000000 --- a/ACE/ace/ATM_Addr.cpp +++ /dev/null @@ -1,522 +0,0 @@ -// $Id$ - -// Defines the Internet domain address family address format. - -#include "ace/ATM_Addr.h" -#if defined (ACE_HAS_ATM) - -#include "ace/Log_Msg.h" - -#if defined (ACE_HAS_FORE_ATM_WS2) -#include /**/ "forews2.h" -#endif /* ACE_HAS_FORE_ATM_WS2 */ - -#if !defined (__ACE_INLINE__) -#include "ace/ATM_Addr.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, ATM_Addr, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_ATM_Addr) - -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) -#define BHLI_MAGIC "FORE_ATM" -// This is line rate in cells/s for an OC-3 MM interface. -const long ACE_ATM_Addr::LINE_RATE = 353207; -const int ACE_ATM_Addr::OPT_FLAGS_CPID = 0x1; -const int ACE_ATM_Addr::OPT_FLAGS_PMP = 0x2; -const int ACE_ATM_Addr::DEFAULT_SELECTOR = 0x99; -#elif defined (ACE_HAS_LINUX_ATM) -//pbrandao:for Linux: -//pbrandao:for now stick with current definitions -//pbrandao:see if later need to change -const long ACE_ATM_Addr::LINE_RATE = 353207; -const int ACE_ATM_Addr::OPT_FLAGS_CPID = 0; -const int ACE_ATM_Addr::OPT_FLAGS_PMP = 0; -const int ACE_ATM_Addr::DEFAULT_SELECTOR = 0x99; -#else -const long ACE_ATM_Addr::LINE_RATE = 0L; -const int ACE_ATM_Addr::OPT_FLAGS_CPID = 0; -const int ACE_ATM_Addr::OPT_FLAGS_PMP = 0; -const int ACE_ATM_Addr::DEFAULT_SELECTOR = 0x0; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ - -// Default constructor - -ACE_ATM_Addr::ACE_ATM_Addr (u_char selector) -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) - : ACE_Addr (AF_ATM, -#elif defined (ACE_HAS_LINUX_ATM) - : ACE_Addr (PF_ATMSVC, -#else - : ACE_Addr (AF_UNSPEC, -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ - sizeof this->atm_addr_) -{ - // ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr"); - (void) ACE_OS::memset ((void *) &this->atm_addr_, - 0, - sizeof this->atm_addr_); - this->init (selector); -} - -// Copy constructor. - -ACE_ATM_Addr::ACE_ATM_Addr (const ACE_ATM_Addr &sap, - u_char selector) -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) - : ACE_Addr (AF_ATM, -#elif defined (ACE_HAS_LINUX_ATM) - : ACE_Addr (PF_ATMSVC, -#else - : ACE_Addr (AF_UNSPEC, -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ - sizeof this->atm_addr_) -{ - ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr"); - this->set (sap, selector); -#if defined (ACE_HAS_LINUX_ATM) - this->atm_addr_.sockaddratmsvc.sas_family = PF_ATMSVC; - this->atm_addr_.atmsap.blli[0].l3_proto = ATM_L3_NONE; - this->atm_addr_.atmsap.blli[0].l2_proto = ATM_L2_NONE; - this->atm_addr_.atmsap.bhli.hl_type = ATM_HL_NONE; -#endif /* ACE_HAS_LINUX_ATM */ -} - -ACE_ATM_Addr::ACE_ATM_Addr (const ATM_Addr *sap, - u_char selector) -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) - : ACE_Addr (AF_ATM, -#elif defined (ACE_HAS_LINUX_ATM) - : ACE_Addr (PF_ATMSVC, -#else - : ACE_Addr (AF_UNSPEC, -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ - sizeof this->atm_addr_) -{ - ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr"); - this->set (sap, selector); -} - - -ACE_ATM_Addr::ACE_ATM_Addr (const ACE_TCHAR sap[], - u_char selector) -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) - : ACE_Addr (AF_ATM, -#elif defined (ACE_HAS_LINUX_ATM) - : ACE_Addr (PF_ATMSVC, -#else - : ACE_Addr (AF_UNSPEC, -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ - sizeof this->atm_addr_) -{ - ACE_TRACE ("ACE_ATM_Addr::ACE_ATM_Addr"); - this->set (sap, selector); -} - -ACE_ATM_Addr::~ACE_ATM_Addr (void) -{ -} - -// Return the address. - -void * -ACE_ATM_Addr::get_addr (void) const -{ - ACE_TRACE ("ACE_ATM_Addr::get_addr"); - return (void *) &this->atm_addr_; -} - -void -ACE_ATM_Addr::init (u_char selector) -{ -#if defined (ACE_HAS_FORE_ATM_XTI) - // Note: this approach may be FORE implementation-specific. When we - // bind with tag_addr ABSENT and tag_selector PRESENT, only the - // selector (i.e. address[19]) is used by the TP. The rest of the - // local address is filled in by the TP and can be obtained via the - // 'ret' parameter or with t_getname ()/t_getprotaddr (). - - atm_addr_.addressType = (u_int16_t) AF_ATM; - - atm_addr_.sap.t_atm_sap_addr.SVE_tag_addr = (int8_t) T_ATM_ABSENT; - atm_addr_.sap.t_atm_sap_addr.SVE_tag_selector = (int8_t) T_ATM_PRESENT; - - atm_addr_.sap.t_atm_sap_addr.address_format = (u_int8_t) T_ATM_ENDSYS_ADDR; - atm_addr_.sap.t_atm_sap_addr.address_length = ATMNSAP_ADDR_LEN; - atm_addr_.sap.t_atm_sap_addr.address[ATMNSAP_ADDR_LEN - 1] = selector; - - atm_addr_.sap.t_atm_sap_layer2.SVE_tag = (int8_t) T_ATM_ABSENT; - atm_addr_.sap.t_atm_sap_layer3.SVE_tag = (int8_t) T_ATM_ABSENT; - - atm_addr_.sap.t_atm_sap_appl.SVE_tag = (int8_t) T_ATM_PRESENT; - atm_addr_.sap.t_atm_sap_appl.ID_type = (u_int8_t) T_ATM_USER_APP_ID; - - ACE_OS::memcpy (atm_addr_.sap.t_atm_sap_appl.ID.user_defined_ID, - BHLI_MAGIC, - sizeof atm_addr_.sap.t_atm_sap_appl.ID); -#elif defined (ACE_HAS_FORE_ATM_WS2) - ACE_OS::memset ((void *)&atm_addr_, 0, sizeof atm_addr_); - atm_addr_.satm_number.Addr[ ATM_ADDR_SIZE - 1 ] = (char)selector; - atm_addr_.satm_family = AF_ATM; - atm_addr_.satm_number.AddressType = ATM_NSAP; - atm_addr_.satm_number.NumofDigits = ATM_ADDR_SIZE; - atm_addr_.satm_blli.Layer2Protocol = SAP_FIELD_ABSENT; - atm_addr_.satm_blli.Layer3Protocol = SAP_FIELD_ABSENT; - atm_addr_.satm_bhli.HighLayerInfoType = SAP_FIELD_ABSENT; - - // Need to know the correspondence. - //atm_addr_.sap.t_atm_sap_appl.SVE_tag = (int8_t) T_ATM_PRESENT; - //atm_addr_.sap.t_atm_sap_appl.ID_type = (u_int8_t) T_ATM_USER_APP_ID; - //ACE_OS::memcpy (atm_addr_.sap.t_atm_sap_appl.ID.user_defined_ID, - // BHLI_MAGIC, - // sizeof atm_addr_.sap.t_atm_sap_appl.ID); -#elif defined (ACE_HAS_LINUX_ATM) - atm_addr_.sockaddratmsvc.sas_family = AF_ATMSVC; - atm_addr_.sockaddratmsvc.sas_addr.prv[ATM_ESA_LEN - 1] = (char)selector; - atm_addr_.atmsap.blli[0].l3_proto = ATM_L3_NONE; - atm_addr_.atmsap.blli[0].l2_proto = ATM_L2_NONE; - atm_addr_.atmsap.bhli.hl_type = ATM_HL_NONE; -#else - ACE_UNUSED_ARG (selector); -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ -} - -int -ACE_ATM_Addr::set (const ACE_ATM_Addr &sap, - u_char selector) -{ - ACE_TRACE ("ACE_ATM_Addr::set"); - - this->init (selector); - - this->ACE_Addr::base_set (sap.get_type (), - sap.get_size ()); - -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) - ACE_ASSERT (sap.get_type () == AF_ATM); -#elif defined (ACE_HAS_LINUX_ATM) - ACE_ASSERT (sap.get_type () == PF_ATMSVC); -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 */ - - (void) ACE_OS::memcpy ((void *) &this->atm_addr_, - (void *) &sap.atm_addr_, - sizeof this->atm_addr_); - return 0; -} - -int -ACE_ATM_Addr::set (const ATM_Addr *sap, - u_char selector) -{ - ACE_TRACE ("ACE_ATM_Addr::set"); - - this->init (selector); - -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) - this->ACE_Addr::base_set (AF_ATM, -#elif defined (ACE_HAS_LINUX_ATM) - this->ACE_Addr::base_set (PF_ATMSVC, -#else - this->ACE_Addr::base_set (AF_UNSPEC, -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 */ - sizeof (*sap)); - - (void) ACE_OS::memcpy ((void *) &this->atm_addr_, - (void *) sap, - sizeof this->atm_addr_); - return 0; -} - -int -ACE_ATM_Addr::set (const ACE_TCHAR address[], - u_char selector) -{ - ACE_TRACE ("ACE_ATM_Addr::set"); - int ret; - - this->init (selector); - -#if defined (ACE_HAS_FORE_ATM_XTI) - atm_addr_.sap.t_atm_sap_addr.SVE_tag_addr = - (int8_t) T_ATM_PRESENT; -#endif /* ACE_HAS_FORE_ATM_XTI */ - - ret = this -> string_to_addr (address); - this -> set_selector (selector); - return ret; -} - -// Transform the string into the current addressing format. - -int -ACE_ATM_Addr::string_to_addr (const ACE_TCHAR sap[]) -{ - ACE_TRACE ("ACE_ATM_Addr::string_to_addr"); - -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) - this->ACE_Addr::base_set (AF_ATM, -#elif defined (ACE_HAS_LINUX_ATM) - this->ACE_Addr::base_set (PF_ATMSVC, -#else - this->ACE_Addr::base_set (AF_UNSPEC, -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ - sizeof this->atm_addr_); -#if defined (ACE_HAS_FORE_ATM_XTI) - struct hostent *entry; - struct atmnsap_addr *nsap; - - // Yow, someone gave us a NULL ATM address! - if (sap == 0) - { - errno = EINVAL; - return -1; - } - else if ((entry = gethostbyname_atmnsap ((ACE_TCHAR *)sap)) != 0) - { - ACE_OS::memcpy (atm_addr_.sap.t_atm_sap_addr.address, - entry->h_addr_list[0], - ATMNSAP_ADDR_LEN - 1); - } - else if ((nsap = atmnsap_addr (sap)) != 0) - { - ACE_OS::memcpy (atm_addr_.sap.t_atm_sap_addr.address, - nsap->atmnsap, - ATMNSAP_ADDR_LEN); - } - else { - errno = EINVAL; - return -1; - } -#elif defined (ACE_HAS_FORE_ATM_WS2) - DWORD dwValue; - HANDLE hLookup; - WSAQUERYSETW qsRestrictions; - CSADDR_INFO csaBuffer; - WCHAR tmpWStr[100]; - - MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, sap, -1, tmpWStr, 100); - - csaBuffer.LocalAddr.iSockaddrLength = sizeof (struct sockaddr_atm); - csaBuffer.LocalAddr.lpSockaddr = (struct sockaddr *)&atm_addr_; - csaBuffer.RemoteAddr.iSockaddrLength = sizeof (struct sockaddr_atm); - csaBuffer.RemoteAddr.lpSockaddr = (struct sockaddr *)&atm_addr_; - - qsRestrictions.dwSize = sizeof (WSAQUERYSETW); - qsRestrictions.lpszServiceInstanceName = 0; - qsRestrictions.lpServiceClassId = &FORE_NAME_CLASS; - qsRestrictions.lpVersion = 0; - qsRestrictions.lpszComment = 0; - qsRestrictions.dwNameSpace = FORE_NAME_SPACE; - qsRestrictions.lpNSProviderId = 0; - qsRestrictions.lpszContext = L""; - qsRestrictions.dwNumberOfProtocols = 0; - qsRestrictions.lpafpProtocols = 0; - qsRestrictions.lpszQueryString = tmpWStr; - qsRestrictions.dwNumberOfCsAddrs = 1; - qsRestrictions.lpcsaBuffer = &csaBuffer; - qsRestrictions.lpBlob = 0; //&blob; - - if (::WSALookupServiceBeginW (&qsRestrictions, LUP_RETURN_ALL, &hLookup) - == SOCKET_ERROR) { - ACE_OS::printf ("Error: WSALookupServiceBeginW failed! %d\n", - ::WSAGetLastError ()); - return -1; - } - - dwValue = sizeof (WSAQUERYSETW); - - if (::WSALookupServiceNextW (hLookup, 0, &dwValue, &qsRestrictions) - == SOCKET_ERROR) { - if (WSAGetLastError () != WSA_E_NO_MORE) { - ACE_OS::printf ("Error: WSALookupServiceNextW failed! %d\n", - ::WSAGetLastError ()); - return -1; - } - } - - if (WSALookupServiceEnd (hLookup) == SOCKET_ERROR) { - ACE_OS::printf ("Error : WSALookupServiceEnd failed! %d \n", - ::WSAGetLastError ()); - errno = EINVAL; - return -1; - } -#elif defined (ACE_HAS_LINUX_ATM) - if (sap == 0 || !ACE_OS::strcmp (sap,"")) { - errno = EINVAL; - return -1; - } - - if (text2atm ((ACE_TCHAR *)sap, - (struct sockaddr *)& (atm_addr_.sockaddratmsvc), - sizeof (atm_addr_.sockaddratmsvc), - T2A_SVC | T2A_NAME) < 0) { - ACE_DEBUG (LM_DEBUG, - "Error : text2atm failed!\n"); - errno = EINVAL; - return -1; - } -#else - ACE_UNUSED_ARG (sap); - - return 0; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ - -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM) - return 0; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 */ -} - -// Transform the current address into string format. - -int -ACE_ATM_Addr::addr_to_string (ACE_TCHAR addr[], - size_t addrlen) const -{ - ACE_TRACE ("ACE_ATM_Addr::addr_to_string"); - -#if defined (ACE_HAS_FORE_ATM_XTI) - ACE_TCHAR buffer[MAXNAMELEN + 1]; - struct atmnsap_addr nsap; - ACE_OS::memcpy (nsap.atmnsap, - atm_addr_.sap.t_atm_sap_addr.address, - ATMNSAP_ADDR_LEN); - ACE_OS::sprintf (buffer, - ACE_TEXT ("%s"), - atmnsap_ntoa (nsap)); - - size_t total_len = ACE_OS::strlen (buffer) + sizeof ('\0'); - - if (addrlen < total_len) - return -1; - else - ACE_OS::strcpy (addr, buffer); - - return 0; -#elif defined (ACE_HAS_FORE_ATM_WS2) - ACE_TCHAR buffer[MAXNAMELEN + 1]; - int i; - - if (addrlen < ATM_ADDR_SIZE + 1) - return -1; - - for (i = 0; i < ATM_ADDR_SIZE; i++) { - buffer[ i * 3 ] = '\0'; - ACE_OS::sprintf (buffer, ACE_TEXT ("%s%02x."), - buffer, - atm_addr_.satm_number.Addr[ i ]); - } - - buffer[ ATM_ADDR_SIZE * 3 - 1 ] = '\0'; - ACE_OS::strcpy (addr, buffer); - - return 0; -#elif defined (ACE_HAS_LINUX_ATM) - ACE_TCHAR buffer[MAX_ATM_ADDR_LEN + 1]; - int total_len; - if ((total_len = atm2text (buffer, - sizeof buffer, - (struct sockaddr *)& (atm_addr_.sockaddratmsvc), - A2T_PRETTY)) < 0) { - ACE_DEBUG ((LM_DEBUG,"ACE_ATM_Addr (addr_to_string): atm2text failed\n")); - return -1; - } - if (addrlen < (size_t)total_len) - return -1; - else - ACE_OS::strcpy (addr, - buffer); - - return 0; -#else - ACE_UNUSED_ARG (addr); - ACE_UNUSED_ARG (addrlen); - return -1; -#endif /* ACE_HAS_FORE_ATM_XTI && ACE_HAS_FORE_ATM_WS2 */ -} - -const ACE_TCHAR * -ACE_ATM_Addr::addr_to_string (void) const -{ - ACE_TRACE ("ACE_ATM_Addr::addr_to_string"); - - static ACE_TCHAR addr[MAXHOSTNAMELEN + 1]; - if (this->addr_to_string (addr, - MAXHOSTNAMELEN + 1) < 0) - return 0; - - return addr; -} - -// Set a pointer to the address. -void -ACE_ATM_Addr::set_addr (void *addr, int len) -{ - ACE_TRACE ("ACE_ATM_Addr::set_addr"); - -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) - this->ACE_Addr::base_set (AF_ATM, -#elif defined (ACE_HAS_LINUX_ATM) - this->ACE_Addr::base_set (PF_ATMSVC, -#else - this->ACE_Addr::base_set (AF_UNSPEC, -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_WS2 */ - len); - ACE_OS::memcpy ((void *) &this->atm_addr_, - (void *) addr, len); -} - -// Compare two addresses for inequality. - -bool -ACE_ATM_Addr::operator != (const ACE_ATM_Addr &sap) const -{ - ACE_TRACE ("ACE_ATM_Addr::operator !="); - return ! ((*this) == sap); -} - -// Compare two addresses for equality. - -bool -ACE_ATM_Addr::operator == (const ACE_ATM_Addr &sap) const -{ - ACE_TRACE ("ACE_ATM_Addr::operator =="); - -#if defined (ACE_HAS_LINUX_ATM) - return (atm_equal ((const struct sockaddr *)& (this->atm_addr_.sockaddratmsvc), - (const struct sockaddr *)& (sap.atm_addr_.sockaddratmsvc), - 0, - 0) - && - sap_equal (& (this->atm_addr_.atmsap), - & (sap.atm_addr_.atmsap), - 0)); -#else - return ACE_OS::memcmp (&atm_addr_, - &sap.atm_addr_, - sizeof (ATM_Addr)) == 0; -#endif /* ACE_HAS_LINUX_ATM */ -} - -void -ACE_ATM_Addr::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_ATM_Addr::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - - ACE_TCHAR s[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 16]; - ACE_OS::sprintf (s, - ACE_TEXT ("%s"), - this->addr_to_string ()); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%s"), s)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_ATM */ diff --git a/ACE/ace/ATM_Addr.h b/ACE/ace/ATM_Addr.h deleted file mode 100644 index 34cbfd876a6..00000000000 --- a/ACE/ace/ATM_Addr.h +++ /dev/null @@ -1,197 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file ATM_Addr.h - * - * $Id$ - * - * @author Joe Hoffert - */ -//========================================================================== - -#ifndef ACE_ATM_ADDR_H -#define ACE_ATM_ADDR_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_HAS_ATM) - -#include /**/ "ace/ACE_export.h" -#include "ace/Addr.h" - -#if defined (ACE_HAS_FORE_ATM_XTI) -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef ATMSAPAddress ATM_Addr; -ACE_END_VERSIONED_NAMESPACE_DECL -#elif defined (ACE_HAS_FORE_ATM_WS2) -#define FORE_NAME_SPACE NS_ALL -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef struct sockaddr_atm ATM_Addr; -ACE_END_VERSIONED_NAMESPACE_DECL -#elif defined (ACE_HAS_LINUX_ATM) - -#include /**/ "atm.h" - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -//pbrandao:as Linux has this 2 structs separeted we "link it" here -typedef struct _linux_atm_addr -{ - struct sockaddr_atmsvc sockaddratmsvc; - struct atm_sap atmsap; -} ATM_Addr; -#else -typedef int ATM_Addr; -#endif /* ACE_HAS_FORE_ATM_XTI/ACE_HAS_FORE_ATM_WS2/ACE_HAS_LINUX_ATM */ - -/** - * @class ACE_ATM_Addr - * - * @brief Defines the ATM domain address family address format. - */ -class ACE_Export ACE_ATM_Addr : public ACE_Addr -{ -public: - // Constants used for ATM options - static const long LINE_RATE; - static const int OPT_FLAGS_CPID; - static const int OPT_FLAGS_PMP; - static const int DEFAULT_SELECTOR; - - // = Initialization methods. - /// Default constructor. - ACE_ATM_Addr (u_char selector = DEFAULT_SELECTOR); - - /// Copy constructor. - ACE_ATM_Addr (const ACE_ATM_Addr &, - u_char selector = DEFAULT_SELECTOR); - - /** - * Creates an ACE_ATM_Addr from an ATMSAPAddress structure. This - * is vendor specific (FORE systems). May need to change when other - * vendors are supported. - */ - ACE_ATM_Addr (const ATM_Addr *, - u_char selector = DEFAULT_SELECTOR); - - /** - * Initializes an ACE_ATM_Addr from the which can be - * "atm-address" (e.g., - * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00") or "hostname" - * (e.g., "frisbee.cs.wustl.edu"). - */ - ACE_ATM_Addr (const ACE_TCHAR sap[], - u_char selector = DEFAULT_SELECTOR); - - /// Default dtor. - ~ACE_ATM_Addr (void); - - // = Initialization methods (useful after object construction). - /// Default initialization for non-address values (e.g., - /// t_atm_sap_addr.SVE_tag_addr, t_atm_sap_addr.SVE_tag_selector) - void init (u_char selector = DEFAULT_SELECTOR); - - /// Initializes from another ACE_ATM_Addr. - int set (const ACE_ATM_Addr &, - u_char selector = DEFAULT_SELECTOR); - - /** - * Initializes an ACE_ATM_Addr from an ATMSAPAddress/sockaddr_atm - * structure. This is vendor specific (FORE systems). May need to - * change when other vendors are supported. - */ - int set (const ATM_Addr *, - u_char selector = DEFAULT_SELECTOR); - - /** - * Initializes an ACE_ATM_Addr from the which can be - * "atm-address" (e.g., - * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00") or "hostname" - * (e.g., "frisbee.cs.wustl.edu"). - */ - int set (const ACE_TCHAR sap[], - u_char selector = DEFAULT_SELECTOR); - - /** - * Initializes an ACE_ATM_Addr from the which can be - * "atm-address" (e.g., - * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00") or "hostname" - * (e.g., "frisbee.cs.wustl.edu"). - */ - virtual int string_to_addr (const ACE_TCHAR sap[]); - - /** - * Return the character representation of the ATM address (e.g., - * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00") storing it in - * the @a addr (which is assumed to be bytes long). This - * version is reentrant. Returns -1 if the of the @a addr - * is too small, else 0. - */ - virtual int addr_to_string (ACE_TCHAR addr[], - size_t addrlen) const; - - /** - * Return the character representation of the ATM address (e.g., - * "47.0005.80.ffe100.0000.f20f.2200.0020480694f9.00"). Returns -1 - * if the of the is too small, else 0.(This version - * is non-reentrant since it returns a pointer to a static data - * area.) - */ - const ACE_TCHAR *addr_to_string (void) const; - - /// Return a pointer to the underlying network address. - virtual void *get_addr (void) const; - - /// Set a pointer to the address. - virtual void set_addr (void *, int); - - /// Return the selector for network address. - u_char get_selector (void) const; - - /// Set the selector for the network address. - void set_selector (u_char selector); - - /** - * Compare two addresses for equality. The addresses are considered - * equal if they contain the same ATM address. Q: Is there any - * other check for equality needed for ATM? - */ - bool operator == (const ACE_ATM_Addr &SAP) const; - - /// Compare two addresses for inequality. - bool operator != (const ACE_ATM_Addr &SAP) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -// char *construct_options (ACE_HANDLE fd, -// int qos_kb, -// int flags, -// long *optsize); -// // Construct options for ATM connections - -private: - ATM_Addr atm_addr_; -}; - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - - -#if defined (__ACE_INLINE__) -#include "ace/ATM_Addr.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_HAS_ATM */ -#include /**/ "ace/post.h" -#endif /* ACE_ATM_ADDR_H */ diff --git a/ACE/ace/ATM_Addr.inl b/ACE/ace/ATM_Addr.inl deleted file mode 100644 index 8120c6d11d5..00000000000 --- a/ACE/ace/ATM_Addr.inl +++ /dev/null @@ -1,37 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE u_char -ACE_ATM_Addr::get_selector (void) const -{ - ACE_TRACE ("ACE_ATM_Addr::get_selector"); -#if defined (ACE_HAS_FORE_ATM_XTI) - return atm_addr_.sap.t_atm_sap_addr.address[ATMNSAP_ADDR_LEN - 1]; -#elif defined (ACE_HAS_FORE_ATM_WS2) - return atm_addr_.satm_number.Addr[ ATM_ADDR_SIZE - 1 ]; -#elif defined (ACE_HAS_LINUX_ATM) - return atm_addr_.sockaddratmsvc.sas_addr.prv[ATM_ESA_LEN - 1]; -#else - return 0; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ -} - -ACE_INLINE void -ACE_ATM_Addr::set_selector (u_char selector) -{ - ACE_TRACE ("ACE_ATM_Addr::set_selector"); -#if defined (ACE_HAS_FORE_ATM_XTI) - atm_addr_.sap.t_atm_sap_addr.address[ATMNSAP_ADDR_LEN - 1] = selector; -#elif defined (ACE_HAS_FORE_ATM_WS2) - atm_addr_.satm_number.Addr[ ATM_ADDR_SIZE - 1 ] = selector; -#elif defined (ACE_HAS_LINUX_ATM) - atm_addr_.sockaddratmsvc.sas_addr.prv[ATM_ESA_LEN - 1] = selector; -#else - ACE_UNUSED_ARG (selector); -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ATM_Connector.cpp b/ACE/ace/ATM_Connector.cpp deleted file mode 100644 index ca33a2bb833..00000000000 --- a/ACE/ace/ATM_Connector.cpp +++ /dev/null @@ -1,138 +0,0 @@ -// ATM_Connector.cpp -// $Id$ - -#include "ace/ATM_Connector.h" -#if defined (ACE_HAS_ATM) - -#include "ace/Handle_Set.h" - -ACE_RCSID(ace, ATM_Connector, "$Id$") - -#if !defined (__ACE_INLINE__) -#include "ace/ATM_Connector.inl" -#endif /* __ACE_INLINE__ */ - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_ATM_Connector) - -ACE_ATM_Connector::ACE_ATM_Connector (void) -{ - ACE_TRACE ("ACE_ATM_Connector::ACE_ATM_Connector"); -} - -// Actively connect and produce a new ACE_ATM_Stream if things go well... -// Connect the to the , waiting up to -// amount of time if necessary. - -int -ACE_ATM_Connector::connect (ACE_ATM_Stream &new_stream, - const ACE_ATM_Addr &remote_sap, - ACE_ATM_Params params, - ACE_ATM_QoS options, - ACE_Time_Value *timeout, - const ACE_ATM_Addr &local_sap, - int reuse_addr, - int flags, - int perms) -{ - ACE_TRACE ("ACE_ATM_Connector::connect"); -#if defined (ACE_HAS_FORE_ATM_XTI) - return connector_.connect(new_stream.get_stream(), - remote_sap, - timeout, - local_sap, - reuse_addr, - flags, - perms, - params.get_device(), - params.get_info(), - params.get_rw_flag(), - params.get_user_data(), - &options.get_qos()); -#elif defined (ACE_HAS_FORE_ATM_WS2) - ACE_DEBUG(LM_DEBUG, - ACE_TEXT ("ATM_Connector(connect): set QoS parameters\n" )); - - ACE_HANDLE s = new_stream.get_handle(); - struct sockaddr_atm *saddr = ( struct sockaddr_atm *)remote_sap.get_addr(); - ACE_QoS cqos = options.get_qos(); - - ACE_QoS_Params qos_params = ACE_QoS_Params(0, - 0, - &cqos, - 0, - 0); - - ACE_DEBUG(LM_DEBUG, - ACE_TEXT ("ATM_Connector(connect): connecting...\n")); - - int result = ACE_OS::connect( s, - ( struct sockaddr *)saddr, - sizeof( struct sockaddr_atm ), - qos_params ); - - if ( result != 0 ) - ACE_OS::printf( "ATM_Connector(connect): connection failed, %d\n", - ::WSAGetLastError()); - - return result; -#elif defined (ACE_HAS_LINUX_ATM) - ACE_UNUSED_ARG (params); - ACE_UNUSED_ARG (timeout); - ACE_UNUSED_ARG (reuse_addr); - ACE_UNUSED_ARG (perms); - ACE_UNUSED_ARG (flags); - - ACE_HANDLE handle = new_stream.get_handle(); - ATM_QoS qos =options.get_qos(); - ATM_Addr *local_addr=(ATM_Addr*)local_sap.get_addr(), - *remote_addr=(ATM_Addr*)remote_sap.get_addr(); - - if (ACE_OS::setsockopt(handle, - SOL_ATM, - SO_ATMSAP, - reinterpret_cast (&(local_addr->atmsap)), - sizeof(local_addr->atmsap)) < 0) { - ACE_OS::printf( "ATM_Connector(connect): unable to set atmsap %d\nContinuing...", - errno); - } - if (ACE_OS::setsockopt(handle, - SOL_ATM, - SO_ATMQOS, - reinterpret_cast (&qos), - sizeof(qos)) < 0) { - ACE_DEBUG((LM_DEBUG,ACE_TEXT ("ATM_Connector(connect): unable to set qos %d\n"), - errno)); - return -1; - } - - int result = ACE_OS::connect(handle, - (struct sockaddr *)&(remote_addr->sockaddratmsvc), - sizeof( remote_addr->sockaddratmsvc)); - - if ( result != 0 ) - ACE_DEBUG(LM_DEBUG, - ACE_TEXT ("ATM_Connector(connect): connection failed, %d\n"), - errno); - - return result; -#else - ACE_UNUSED_ARG (new_stream); - ACE_UNUSED_ARG (remote_sap); - ACE_UNUSED_ARG (params); - ACE_UNUSED_ARG (options); - ACE_UNUSED_ARG (timeout); - ACE_UNUSED_ARG (local_sap); - ACE_UNUSED_ARG (reuse_addr); - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (perms); - return 0; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_ATM */ diff --git a/ACE/ace/ATM_Connector.h b/ACE/ace/ATM_Connector.h deleted file mode 100644 index 7e820ae765e..00000000000 --- a/ACE/ace/ATM_Connector.h +++ /dev/null @@ -1,164 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file ATM_Connector.h - * - * $Id$ - * - * @author Joe Hoffert - */ -//============================================================================= - -#ifndef ACE_ATM_CONNECTOR_H -#define ACE_ATM_CONNECTOR_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_HAS_ATM) - -#include "ace/ATM_Stream.h" -#include "ace/ATM_Params.h" -#include "ace/ATM_QoS.h" - -#if defined (ACE_WIN32) || defined (ACE_HAS_LINUX_ATM) -#include "ace/SOCK_Connector.h" -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef ACE_SOCK_Connector ATM_Connector; -ACE_END_VERSIONED_NAMESPACE_DECL -#else -#include "ace/XTI_ATM_Mcast.h" -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef ACE_XTI_ATM_Mcast ATM_Connector; -// Open versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL -#endif - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_ATM_Connector - * - * @brief Defines an active connection factory for the ACE_ATM C++ - * wrappers. - */ -class ACE_Export ACE_ATM_Connector -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_ATM_Connector (void); - - /** - * Actively connect and produce a @a new_stream if things go well. - * The @a remote_sap is the address that we are trying to connect - * with. The are the parameters needed for either socket - * or XTI/ATM connections. The @a timeout is the amount of time to - * wait to connect. If it's 0 then we block indefinitely. If - * *timeout == {0, 0} then the connection is done using non-blocking - * mode. In this case, if the connection can't be made immediately - * the value of -1 is returned with @c errno == EWOULDBLOCK. If - * *timeout > {0, 0} then this is the maximum amount of time to wait before - * timing out. If the time expires before the connection is made - * @c errno == ETIME. The @a local_sap is the value of local address - * to bind to. If it's the default value of then - * the user is letting the OS do the binding. If @a reuse_addr == 1 - * then the is reused, even if it hasn't been cleanedup yet. - */ - ACE_ATM_Connector (ACE_ATM_Stream &new_stream, - const ACE_ATM_Addr &remote_sap, - ACE_ATM_Params params = ACE_ATM_Params(), - ACE_ATM_QoS options = ACE_ATM_QoS(), - ACE_Time_Value *timeout = 0, - const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "", 0 ), - int reuse_addr = 0, -#if defined (ACE_WIN32) - int flags = 0, -#else - int flags = O_RDWR, -#endif /* ACE_WIN32 */ - int perms = 0); - - /** - * Actively connect and produce a @a new_stream if things go well. - * The @a remote_sap is the address that we are trying to connect - * with. The are the parameters needed for either socket - * or XTI/ATM connections. The @a timeout is the amount of time to - * wait to connect. If it's 0 then we block indefinitely. If - * *timeout == {0, 0} then the connection is done using non-blocking - * mode. In this case, if the connection can't be made immediately - * the value of -1 is returned with @c errno == EWOULDBLOCK. If - * *timeout > {0, 0} then this is the maximum amount of time to wait before - * timing out. If the time expires before the connection is made - * @c errno == ETIME. The @a local_sap is the value of local address - * to bind to. If it's the default value of then - * the user is letting the OS do the binding. If @a reuse_addr == 1 - * then the is reused, even if it hasn't been cleanedup yet. - */ - int connect (ACE_ATM_Stream &new_stream, - const ACE_ATM_Addr &remote_sap, - ACE_ATM_Params params = ACE_ATM_Params(), - ACE_ATM_QoS options = ACE_ATM_QoS(), - ACE_Time_Value *timeout = 0, - const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "", - 0 ), - int reuse_addr = 0, -#if defined (ACE_WIN32) - int flags = 0, -#else - int flags = O_RDWR, -#endif /* ACE_WIN32 */ - int perms = 0); - - /** - * Try to complete a non-blocking connection. - * If connection completion is successful then @a new_stream contains - * the connected ACE_SOCK_Stream. If @a remote_sap is non-NULL then it - * will contain the address of the connected peer. - */ - int complete (ACE_ATM_Stream &new_stream, - ACE_ATM_Addr *remote_sap, - ACE_Time_Value *tv); - - /** - * Actively add a leaf to the root (i.e., point-to-multipoint). The - * @a remote_sap is the address of the leaf that we - * are trying to add. - */ - int add_leaf (ACE_ATM_Stream ¤t_stream, - const ACE_Addr &remote_sap, - ACE_ATM_QoS &qos); - - /// Resets any event associations on this handle - int reset_new_handle (ACE_HANDLE handle); - - // = Meta-type info - typedef ACE_ATM_Addr PEER_ADDR; - typedef ACE_ATM_Stream PEER_STREAM; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - ATM_Connector connector_; -}; - -// Open versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/ATM_Connector.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_HAS_ATM */ -#include /**/ "ace/post.h" -#endif /* ACE_ATM_CONNECTOR_H */ diff --git a/ACE/ace/ATM_Connector.inl b/ACE/ace/ATM_Connector.inl deleted file mode 100644 index b9372ccb34d..00000000000 --- a/ACE/ace/ATM_Connector.inl +++ /dev/null @@ -1,132 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE void -ACE_ATM_Connector::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_ATM_Connector::dump"); -#endif /* ACE_HAS_DUMP */ -} - -ACE_INLINE -ACE_ATM_Connector::ACE_ATM_Connector (ACE_ATM_Stream &new_stream, - const ACE_ATM_Addr &remote_sap, - ACE_ATM_Params params, - ACE_ATM_QoS options, - ACE_Time_Value *timeout, - const ACE_ATM_Addr &local_sap, - int reuse_addr, - int flags, - int perms) -{ - ACE_TRACE ("ACE_ATM_Connector::ACE_ATM_Connector"); - if ((ACE_HANDLE)this->connect (new_stream, - remote_sap, - params, - options, - timeout, - local_sap, - reuse_addr, - flags, - perms) == ACE_INVALID_HANDLE - && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME)) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_ATM_Stream::ACE_ATM_Stream"))); -} - -// Try to complete a non-blocking connection. - -ACE_INLINE -int -ACE_ATM_Connector::complete (ACE_ATM_Stream &new_stream, - ACE_ATM_Addr *remote_sap, - ACE_Time_Value *tv) -{ - ACE_TRACE ("ACE_ATM_Connector::complete"); -#if defined (ACE_HAS_ATM) - return connector_.complete(new_stream.get_stream(), - remote_sap, - tv); -#else - ACE_UNUSED_ARG(new_stream); - ACE_UNUSED_ARG(remote_sap); - ACE_UNUSED_ARG(tv); - return 0; -#endif -} - -ACE_INLINE -int -ACE_ATM_Connector::add_leaf (ACE_ATM_Stream ¤t_stream, - const ACE_Addr &remote_sap, - ACE_ATM_QoS &qos) -{ - ACE_TRACE ("ACE_ATM_Connector::add_leaf"); -#if defined (ACE_HAS_FORE_ATM_XTI) - return connector_.add_leaf(current_stream.get_stream(), - remote_sap, - leaf_id, - timeout); -#elif defined (ACE_HAS_FORE_ATM_WS2) - struct sockaddr_atm *saddr = (struct sockaddr_atm *)remote_sap.get_addr(); - ACE_QoS cqos = qos.get_qos(); - int addr_len = sizeof( struct sockaddr_atm ); - - ACE_QoS_Params qos_params(0, - 0, - &cqos, - 0, - (JL_SENDER_ONLY)); - - ACE_OS::printf( "ATM_Connector::add_leaf: connecting...\n" ); - - ACE_HANDLE result = ACE_OS::join_leaf(current_stream.get_handle(), - (struct sockaddr *)saddr, - addr_len, - qos_params); - - if ( result == ACE_INVALID_HANDLE ) - ACE_OS::printf( "ATM_Connector(add_leaf): connection failed, %d\n", - ::WSAGetLastError()); - - return (result != ACE_INVALID_HANDLE); -#elif defined (ACE_HAS_LINUX_ATM) - ACE_OS::printf("ATM_Connector(add_leaf): not yet implemented in Linux \n"); - - ACE_UNUSED_ARG(current_stream); - ACE_UNUSED_ARG(remote_sap); - ACE_UNUSED_ARG(leaf_id); - ACE_UNUSED_ARG(timeout); - - return 0; -#else - ACE_UNUSED_ARG(current_stream); - ACE_UNUSED_ARG(remote_sap); - ACE_UNUSED_ARG(leaf_id); - ACE_UNUSED_ARG(timeout); - return 0; -#endif -} - -ACE_INLINE -int -ACE_ATM_Connector::reset_new_handle (ACE_HANDLE handle) -{ -#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) - // Reset the event association - return ::WSAEventSelect ((SOCKET) handle, - 0, - 0); -#else /* !defined ACE_HAS_WINSOCK2 */ - ACE_UNUSED_ARG (handle); - return 0; -#endif /* ACE_WIN32 */ -} - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ATM_Params.cpp b/ACE/ace/ATM_Params.cpp deleted file mode 100644 index cc6ec674ece..00000000000 --- a/ACE/ace/ATM_Params.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// $Id$ - -#include "ace/ATM_Params.h" - -#if defined (ACE_HAS_ATM) - -ACE_RCSID(ace, ATM_Params, "$Id$") - -#if !defined (__ACE_INLINE__) -#include "ace/ATM_Params.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_ATM_Params) - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_ATM */ - diff --git a/ACE/ace/ATM_Params.h b/ACE/ace/ATM_Params.h deleted file mode 100644 index 82cf6999b3b..00000000000 --- a/ACE/ace/ATM_Params.h +++ /dev/null @@ -1,214 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file ATM_Params.h - * - * $Id$ - * - * @author Joe Hoffert - */ -//========================================================================== - - -#ifndef ACE_ATM_PARAMS_H -#define ACE_ATM_PARAMS_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_HAS_ATM) - -#include /**/ "ace/ACE_export.h" - -#if defined (ACE_HAS_FORE_ATM_XTI) -#include "ace/TLI.h" -#define ATM_PROTOCOL_DEFAULT 0 -typedef struct t_info Param_Info; -typedef struct netbuf Param_Udata; -#elif defined (ACE_HAS_FORE_ATM_WS2) -#include "ace/SOCK.h" -#define ATM_PROTOCOL_DEFAULT ATMPROTO_AAL5 -#define ACE_XTI_ATM_DEVICE "" -typedef int Param_Info; -typedef int Param_Udata; -#elif defined (ACE_HAS_LINUX_ATM) -#include /**/ "atm.h" -#define AF_ATM PF_ATMSVC -#define ACE_XTI_ATM_DEVICE "" -#define ATM_PROTOCOL_DEFAULT ATM_AAL5 -typedef int Param_Info; -typedef int Param_Udata; -#else -#define ACE_XTI_ATM_DEVICE "" -typedef int Param_Info; -typedef int Param_Udata; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_ATM_Params - * - * @brief Wrapper class that simplifies the information passed to the ATM - * enabled ACE_ATM_Connector class. - */ -class ACE_Export ACE_ATM_Params -{ -public: - /** - * Initialize the data members. This class combines options from - * ACE_SOCK_Connector (@a protocol_family, @a protocol, , - * @a protocol_info, , and @a flags) and - * ACE_TLI_Connector (, , , , and ) - * so that either mechanism can be used transparently for ATM. - */ - ACE_ATM_Params (int rw_flag = 1, - const char device[] = ACE_XTI_ATM_DEVICE, - Param_Info *info = 0, - Param_Udata *udata = 0, - int oflag = O_RDWR, - int protocol_family = AF_ATM, - int protocol = ATM_PROTOCOL_DEFAULT, - int type = -#if defined (ACE_HAS_LINUX_ATM) - SOCK_DGRAM, -#else - SOCK_RAW, -#endif /* ACE_HAS_LINUX_ATM */ - ACE_Protocol_Info *protocol_info = 0, - ACE_SOCK_GROUP g = 0, - u_long flags - = ACE_FLAG_MULTIPOINT_C_ROOT - | ACE_FLAG_MULTIPOINT_D_ROOT, // connector by default - int reuse_addr = 0); - - /// Destructor. - ~ACE_ATM_Params (); - - /// Get protocol family. - int get_protocol_family (void) const; - - /// Set protocol family. - void set_protocol_family (int); - - /// Get protocol. - int get_protocol (void) const; - - /// Set protocol. - void set_protocol (int); - - /// Get type. - int get_type (void) const; - - /// Set type. - void set_type (int); - - /// Get protocol info. - ACE_Protocol_Info *get_protocol_info( void ); - - /// Set protocol info. - void set_protocol_info( ACE_Protocol_Info *); - - /// Get socket group. - ACE_SOCK_GROUP get_sock_group( void ); - - /// Set socket group. - void set_sock_group( ACE_SOCK_GROUP ); - - /// Get socket flags. - u_long get_flags( void ); - - /// Set socket flags. - void set_flags( u_long ); - - /// Get reuse_addr flag. - int get_reuse_addr (void) const; - - /// Set reuse_addr flag. - void set_reuse_addr (int); - - /// Get device. - const char* get_device (void) const; - - /// Get info. - Param_Info* get_info (void) const; - - /// Set info. - void set_info (Param_Info *); - - /// Get r/w flag. - int get_rw_flag (void) const; - - /// Set r/w flag. - void set_rw_flag (int); - - /// Get user data. - Param_Udata* get_user_data (void) const; - - /// Set user data. - void set_user_data (Param_Udata*); - - /// Get open flag. - int get_oflag (void) const; - - /// Set open flag. - void set_oflag (int); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Protocol family for sockets connections. - int protocol_family_; - - /// Protocol for sockets connections. - int protocol_; - - /// Type for opening sockets. - int type_; - - /// Information about the protocol. - ACE_Protocol_Info *protocol_info_; - - /// Socket group used (for sockets only). - ACE_SOCK_GROUP group_; - - /// Flags for sockets (for sockets only). - u_long flags_; - - /// Flag for reusing address for opening sockets. - int reuse_addr_; - - /// Device name for XTI/ATM connections. - const char *device_; - - /// Info for XTI/ATM connections. - Param_Info *info_; - - /// R/W flag for XTI/ATM connections. - int rw_flag_; - - /// User data for XTI/ATM connections. - Param_Udata *udata_; - - /// Open flag for XTI/ATM connections. - int oflag_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/ATM_Params.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_HAS_ATM */ -#include /**/ "ace/post.h" -#endif /* ACE_ATM_PARAMS_H */ diff --git a/ACE/ace/ATM_Params.inl b/ACE/ace/ATM_Params.inl deleted file mode 100644 index 5d60f6ba920..00000000000 --- a/ACE/ace/ATM_Params.inl +++ /dev/null @@ -1,235 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE void -ACE_ATM_Params::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_ATM_Params::dump"); -#endif /* ACE_HAS_DUMP */ -} - -ACE_INLINE -ACE_ATM_Params::ACE_ATM_Params (int rw_flag, - const char device[], - Param_Info *info, - Param_Udata *udata, - int oflag, - int protocol_family, - int protocol, - int type, - ACE_Protocol_Info *protocol_info, - ACE_SOCK_GROUP g, - u_long flags, - int reuse_addr) - : protocol_family_(protocol_family), - protocol_(protocol), - type_(type), - protocol_info_(protocol_info), - group_(g), - flags_(flags), - reuse_addr_(reuse_addr), - device_(device), - info_(info), - rw_flag_(rw_flag), - udata_(udata), - oflag_(oflag) -{ - ACE_TRACE ("ACE_ATM_Params::ACE_ATM_Params"); -} - -// Default dtor. -ACE_INLINE -ACE_ATM_Params::~ACE_ATM_Params (void) -{ - ACE_TRACE ("ACE_ATM_Params::~ACE_ATM_Params"); -} - -ACE_INLINE -int -ACE_ATM_Params::get_protocol_family (void) const -{ - ACE_TRACE ("ACE_ATM_Params::get_protocol_family"); - return protocol_family_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_protocol_family (int family) -{ - ACE_TRACE ("ACE_ATM_Params::set_protocol_family"); - protocol_family_ = family; -} - -ACE_INLINE -int -ACE_ATM_Params::get_protocol (void) const -{ - ACE_TRACE ("ACE_ATM_Params::get_protocol"); - return protocol_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_protocol (int protocol) -{ - ACE_TRACE ("ACE_ATM_Params::set_protocol"); - protocol_ = protocol; -} - -ACE_INLINE -int -ACE_ATM_Params::get_type (void) const -{ - ACE_TRACE ("ACE_ATM_Params::get_type"); - return type_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_type (int type) -{ - ACE_TRACE ("ACE_ATM_Params::set_type"); - type_ = type; -} - -ACE_INLINE -ACE_Protocol_Info* -ACE_ATM_Params::get_protocol_info( void ) -{ - ACE_TRACE ("ACE_ATM_Params::get_protocol_info"); - return protocol_info_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_protocol_info( ACE_Protocol_Info *protocol_info ) -{ - ACE_TRACE ("ACE_ATM_Params::set_protocol_info"); - protocol_info_ = protocol_info; -} - -ACE_INLINE -ACE_SOCK_GROUP -ACE_ATM_Params::get_sock_group( void ) -{ - ACE_TRACE ("ACE_ATM_Params::get_sock_group"); - return group_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_sock_group( ACE_SOCK_GROUP g ) -{ - ACE_TRACE ("ACE_ATM_Params::set_sock_group"); - group_ = g; -} - -ACE_INLINE -u_long -ACE_ATM_Params::get_flags( void ) -{ - ACE_TRACE ("ACE_ATM_Params::get_flags"); - return flags_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_flags( u_long flags) -{ - ACE_TRACE ("ACE_ATM_Params::set_flags"); - flags_ = flags; -} - -ACE_INLINE -int -ACE_ATM_Params::get_reuse_addr (void) const -{ - ACE_TRACE ("ACE_ATM_Params::get_reuse_addr"); - return reuse_addr_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_reuse_addr (int reuse_addr) -{ - ACE_TRACE ("ACE_ATM_Params::set_reuse_addr"); - reuse_addr_ = reuse_addr; -} - -ACE_INLINE -const char* -ACE_ATM_Params::get_device (void) const -{ - ACE_TRACE ("ACE_ATM_Params::get_device"); - return device_; -} - -ACE_INLINE -Param_Info* -ACE_ATM_Params::get_info (void) const -{ - ACE_TRACE ("ACE_ATM_Params::get_info"); - return info_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_info (Param_Info* info) -{ - ACE_TRACE ("ACE_ATM_Params::set_info"); - info_ = info; -} - -ACE_INLINE -int -ACE_ATM_Params::get_rw_flag (void) const -{ - ACE_TRACE ("ACE_ATM_Params::get_rw_flag"); - return rw_flag_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_rw_flag (int rw_flag) -{ - ACE_TRACE ("ACE_ATM_Params::set_rw_flag"); - rw_flag_ = rw_flag; -} - -ACE_INLINE -Param_Udata* -ACE_ATM_Params::get_user_data (void) const -{ - ACE_TRACE ("ACE_ATM_Params::get_user_data"); - return udata_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_user_data (Param_Udata *udata) -{ - ACE_TRACE ("ACE_ATM_Params::set_user_data"); - udata_ = udata; -} - -ACE_INLINE -int -ACE_ATM_Params::get_oflag (void) const -{ - ACE_TRACE ("ACE_ATM_Params::get_oflag"); - return oflag_; -} - -ACE_INLINE -void -ACE_ATM_Params::set_oflag (int oflag) -{ - ACE_TRACE ("ACE_ATM_Params::set_oflag"); - oflag_ = oflag; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ATM_QoS.cpp b/ACE/ace/ATM_QoS.cpp deleted file mode 100644 index 6a7e6d4f463..00000000000 --- a/ACE/ace/ATM_QoS.cpp +++ /dev/null @@ -1,631 +0,0 @@ -// $Id$ - -#include "ace/ATM_QoS.h" - -ACE_RCSID(ace, ATM_QoS, "$Id$") - -#if defined (ACE_HAS_ATM) - -#if !defined (__ACE_INLINE__) -#include "ace/ATM_QoS.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) -#define BHLI_MAGIC "FORE_ATM" -// This is line rate in cells/s for an OC-3 MM interface. -const long ACE_ATM_QoS::LINE_RATE = 353207; -const int ACE_ATM_QoS::OPT_FLAGS_CPID = 0x1; -const int ACE_ATM_QoS::OPT_FLAGS_PMP = 0x2; -const int ACE_ATM_QoS::DEFAULT_SELECTOR = 0x99; -const int ACE_ATM_QoS::DEFAULT_PKT_SIZE = 8192; -#elif defined (ACE_HAS_LINUX_ATM) -//pbrandao:for Linux: -//pbrandao:for now stick with current definitions -//pbrandao:see if later need to change -const long ACE_ATM_QoS::LINE_RATE = 353207; -const int ACE_ATM_QoS::OPT_FLAGS_CPID = 0x1; -const int ACE_ATM_QoS::OPT_FLAGS_PMP = 0x2; -const int ACE_ATM_QoS::DEFAULT_SELECTOR = 0x99; -const int ACE_ATM_QoS::DEFAULT_PKT_SIZE = 8192; -#else -const long ACE_ATM_QoS::LINE_RATE = 0L; -const int ACE_ATM_QoS::OPT_FLAGS_CPID = 0; -const int ACE_ATM_QoS::OPT_FLAGS_PMP = 0; -const int ACE_ATM_QoS::DEFAULT_SELECTOR = 0x0; -const int ACE_ATM_QoS::DEFAULT_PKT_SIZE = 0; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ - -ACE_ALLOC_HOOK_DEFINE(ACE_ATM_QoS) - -ACE_ATM_QoS::ACE_ATM_QoS (int pktSize) -{ - ACE_TRACE ("ACE_ATM_QoS::ACE_ATM_QoS"); -#if defined (ACE_HAS_LINUX_ATM) - ACE_OS::memset(&qos_, 0, sizeof(qos_)); - qos_.aal = ATM_PROTOCOL_DEFAULT; - qos_.rxtp.traffic_class = ATM_ANYCLASS; - qos_.rxtp.max_sdu = pktSize; - qos_.txtp.traffic_class = ATM_ANYCLASS; - qos_.txtp.max_sdu = pktSize; -#else - ACE_UNUSED_ARG (pktSize); -#endif /* ACE_HAS_LINUX_ATM */ -} - -ACE_ATM_QoS::ACE_ATM_QoS(int rate, - int pktSize) -{ - ACE_TRACE( "ACE_ATM_QoS::ACE_ATM_QoS" ); -#if defined (ACE_HAS_FORE_ATM_WS2) - AAL_PARAMETERS_IE ie_aalparams; - ATM_TRAFFIC_DESCRIPTOR_IE ie_td; - ATM_BROADBAND_BEARER_CAPABILITY_IE ie_bbc; - ATM_QOS_CLASS_IE ie_qos; - Q2931_IE *ie_ptr; - int size; - - // Setting up cbr parameters ... - ie_aalparams.AALType = AALTYPE_5; - ie_aalparams.AALSpecificParameters.AAL5Parameters.ForwardMaxCPCSSDUSize - = pktSize; // was 1516; - ie_aalparams.AALSpecificParameters.AAL5Parameters.BackwardMaxCPCSSDUSize - = pktSize; // was 1516; - ie_aalparams.AALSpecificParameters.AAL5Parameters.Mode = AAL5_MODE_MESSAGE; - ie_aalparams.AALSpecificParameters.AAL5Parameters.SSCSType = AAL5_SSCS_NULL; - - size = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(AAL_PARAMETERS_IE); - - ie_td.Forward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Forward.PeakCellRate_CLP01 = rate; - ie_td.Forward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Forward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; - ie_td.Forward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; - ie_td.Forward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; - ie_td.Forward.Tagging = SAP_FIELD_ABSENT; - - ie_td.Backward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Backward.PeakCellRate_CLP01 = rate; - ie_td.Backward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Backward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; - ie_td.Backward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; - ie_td.Backward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; - ie_td.Backward.Tagging = SAP_FIELD_ABSENT; - - ie_td.BestEffort = 0; // Note: this must be set to zero for CBR. - - size += sizeof( Q2931_IE_TYPE ) - + sizeof( ULONG ) - + sizeof( ATM_TRAFFIC_DESCRIPTOR_IE ); - - ie_bbc.BearerClass = BCOB_X; - ie_bbc.TrafficType = TT_CBR; - ie_bbc.TimingRequirements = TR_END_TO_END; - ie_bbc.ClippingSusceptability = CLIP_NOT; - ie_bbc.UserPlaneConnectionConfig = UP_P2P; - - size += sizeof( Q2931_IE_TYPE ) - + sizeof( ULONG ) - + sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE ); - - ie_qos.QOSClassForward = QOS_CLASS1; - ie_qos.QOSClassBackward = QOS_CLASS1; // This may not be really used - // since we do only simplex data xfer. - - size += sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_QOS_CLASS_IE); - - qos_.ProviderSpecific.buf = (char *) ACE_OS::malloc(size); - if (qos_.ProviderSpecific.buf == 0) { - ACE_ERROR((LM_ERROR, - ACE_TEXT ("ACE_ATM_QoS::ACE_ATM_QoS: Unable to allocate %d bytes for qos_.ProviderSpecific.buf\n"), - size)); - return; - } - qos_.ProviderSpecific.len = size; - ACE_OS::memset(qos_.ProviderSpecific.buf, 0, size); - - ie_ptr = (Q2931_IE *) qos_.ProviderSpecific.buf; - ie_ptr->IEType = IE_AALParameters; - ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) - + sizeof( ULONG ) - + sizeof( AAL_PARAMETERS_IE ); - ACE_OS::memcpy(ie_ptr->IE, &ie_aalparams, sizeof(AAL_PARAMETERS_IE)); - - ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); - ie_ptr->IEType = IE_TrafficDescriptor; - ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) - + sizeof( ULONG ) - + sizeof( ATM_TRAFFIC_DESCRIPTOR_IE ); - ACE_OS::memcpy(ie_ptr->IE, &ie_td, sizeof(ATM_TRAFFIC_DESCRIPTOR_IE)); - - ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); - ie_ptr->IEType = IE_BroadbandBearerCapability; - ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) - + sizeof( ULONG ) - + sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE ); - ACE_OS::memcpy(ie_ptr->IE, - &ie_bbc, - sizeof(ATM_BROADBAND_BEARER_CAPABILITY_IE)); - - ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); - ie_ptr->IEType = IE_QOSClass; - ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) - + sizeof( ULONG ) - + sizeof( ATM_QOS_CLASS_IE ); - ACE_OS::memcpy(ie_ptr->IE, &ie_qos, sizeof(ATM_QOS_CLASS_IE)); - - // qos_.SendingFlowspec.TokenRate = 0xffffffff; - // qos_.SendingFlowspec.TokenBucketSize = 0xffffffff; - // qos_.SendingFlowspec.PeakBandwidth = 0xffffffff; - // qos_.SendingFlowspec.Latency = 0xffffffff; - // qos_.SendingFlowspec.DelayVariation = 0xffffffff; - // qos_.SendingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT; - // This will most probably be ignored by the service provider. - // qos_.SendingFlowspec.MaxSduSize = 0xffffffff; - // qos_.SendingFlowspec.MinimumPolicedSize = 0xffffffff; - - // qos_.ReceivingFlowspec.TokenRate = 0xffffffff; - // qos_.ReceivingFlowspec.TokenBucketSize = 0xffffffff; - // qos_.ReceivingFlowspec.PeakBandwidth = 0xffffffff; - // qos_.ReceivingFlowspec.Latency = 0xffffffff; - // qos_.ReceivingFlowspec.DelayVariation = 0xffffffff; - // qos_.ReceivingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT; - // This will most probably be ignored by the service provider. - // qos_.ReceivingFlowspec.MaxSduSize = 0xffffffff; - // qos_.ReceivingFlowspec.MinimumPolicedSize = 0; - - ACE_Flow_Spec send_fspec( 0xffffffff, - 0xffffffff, - 0xffffffff, - 0xffffffff, - 0xffffffff, - SERVICETYPE_BESTEFFORT, - // This will most probably ignored by SP. - 0xffffffff, - 0xffffffff, - 15, - ACE_DEFAULT_THREAD_PRIORITY ), - recv_fspec( 0xffffffff, - 0xffffffff, - 0xffffffff, - 0xffffffff, - 0xffffffff, - SERVICETYPE_BESTEFFORT, - // This will most probably ignored by SP. - 0xffffffff, - 0, - 15, - ACE_DEFAULT_THREAD_PRIORITY ); - - qos_.sending_flowspec (send_fspec); - qos_.receiving_flowspec (recv_fspec); -#elif defined (ACE_HAS_FORE_ATM_XTI) - ACE_UNUSED_ARG (rate); - ACE_UNUSED_ARG (pktSize); -#elif defined (ACE_HAS_LINUX_ATM) - ACE_OS::memset(&qos_, - 0, - sizeof(qos_)); - qos_.aal = ATM_PROTOCOL_DEFAULT; - qos_.rxtp.max_sdu = pktSize; - - if (rate > 0) { - qos_.rxtp.pcr = rate; - qos_.rxtp.traffic_class = ATM_CBR; - qos_.txtp.traffic_class = ATM_CBR; - qos_.txtp.pcr = rate; - } - else { - qos_.rxtp.traffic_class = ATM_UBR; - qos_.txtp.traffic_class = ATM_UBR; - } - - qos_.txtp.max_sdu = pktSize; -#else - ACE_UNUSED_ARG (rate); -#endif /* ACE_HAS_FORE_ATM_WS2 || ACE_HAS_FORE_ATM_XTI || ACE_HAS_LINUX_ATM */ -} - -void -ACE_ATM_QoS::set_cbr_rate (int rate, - int pktSize) -{ - ACE_TRACE ("ACE_ATM_QoS::set_cbr_rate"); -#if defined (ACE_HAS_FORE_ATM_WS2) - /* - AAL_PARAMETERS_IE ie_aalparams; - ATM_TRAFFIC_DESCRIPTOR_IE ie_td; - ATM_BROADBAND_BEARER_CAPABILITY_IE ie_bbc; - ATM_QOS_CLASS_IE ie_qos; - Q2931_IE *ie_ptr; - int size; - */ - - ACE_OS::printf( "ATM_QoS(set_cbr_rate): set rate to %d c/s\n", rate ); - - // Setting up cbr parameters ... - /* - FORE has changed this - we no longer specify QoS this way - ie_aalparams.AALType = AALTYPE_5; - ie_aalparams.AALSpecificParameters.AAL5Parameters.ForwardMaxCPCSSDUSize - = pktSize; // was 1516; - ie_aalparams.AALSpecificParameters.AAL5Parameters.BackwardMaxCPCSSDUSize - = pktSize; // was 1516; - ie_aalparams.AALSpecificParameters.AAL5Parameters.Mode = AAL5_MODE_MESSAGE; - ie_aalparams.AALSpecificParameters.AAL5Parameters.SSCSType = AAL5_SSCS_NULL; - - size = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(AAL_PARAMETERS_IE); - - ie_td.Forward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Forward.PeakCellRate_CLP01 = rate; - ie_td.Forward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Forward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; - ie_td.Forward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; - ie_td.Forward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; - ie_td.Forward.Tagging = SAP_FIELD_ABSENT; - - ie_td.Backward.PeakCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Backward.PeakCellRate_CLP01 = rate; - ie_td.Backward.SustainableCellRate_CLP0 = SAP_FIELD_ABSENT; - ie_td.Backward.SustainableCellRate_CLP01 = SAP_FIELD_ABSENT; - ie_td.Backward.MaxBurstSize_CLP0 = SAP_FIELD_ABSENT; - ie_td.Backward.MaxBurstSize_CLP01 = SAP_FIELD_ABSENT; - ie_td.Backward.Tagging = SAP_FIELD_ABSENT; - - ie_td.BestEffort = 0; // Note: this must be set to zero for CBR. - - size += sizeof( Q2931_IE_TYPE ) + - sizeof( ULONG ) + - sizeof( ATM_TRAFFIC_DESCRIPTOR_IE ); - - ie_bbc.BearerClass = BCOB_X; - ie_bbc.TrafficType = TT_CBR; - ie_bbc.TimingRequirements = TR_END_TO_END; - ie_bbc.ClippingSusceptability = CLIP_NOT; - ie_bbc.UserPlaneConnectionConfig = UP_P2P; - - size += sizeof(Q2931_IE_TYPE) + - sizeof(ULONG) + - sizeof(ATM_BROADBAND_BEARER_CAPABILITY_IE); - - ie_qos.QOSClassForward = QOS_CLASS1; - ie_qos.QOSClassBackward = QOS_CLASS1; // This may not be really used - // since we only simplex data xfer. - - size += sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + sizeof(ATM_QOS_CLASS_IE); - - qos_.ProviderSpecific.buf = (char *) ACE_OS::malloc(size); - if (qos_.ProviderSpecific.buf == 0) { - ACE_ERROR((LM_ERROR, - ACE_TEXT ("ACE_ATM_QoS::ACE_ATM_QoS: Unable to allocate %d bytes for qos_.ProviderSpecific.buf\n"), - size)); - return; - } - qos_.ProviderSpecific.len = size; - ACE_OS::memset(qos_.ProviderSpecific.buf, 0, size); - - ie_ptr = (Q2931_IE *) qos_.ProviderSpecific.buf; - ie_ptr->IEType = IE_AALParameters; - ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) + - sizeof( ULONG ) + - sizeof( AAL_PARAMETERS_IE ); - ACE_OS::memcpy(ie_ptr->IE, &ie_aalparams, sizeof(AAL_PARAMETERS_IE)); - - ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); - ie_ptr->IEType = IE_TrafficDescriptor; - ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) + - sizeof( ULONG ) + - sizeof( ATM_TRAFFIC_DESCRIPTOR_IE ); - ACE_OS::memcpy(ie_ptr->IE, &ie_td, sizeof(ATM_TRAFFIC_DESCRIPTOR_IE)); - - ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); - ie_ptr->IEType = IE_BroadbandBearerCapability; - ie_ptr->IELength = sizeof( Q2931_IE_TYPE ) + - sizeof( ULONG ) + - sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE ); - ACE_OS::memcpy( ie_ptr->IE, - &ie_bbc, - sizeof( ATM_BROADBAND_BEARER_CAPABILITY_IE )); - - ie_ptr = (Q2931_IE *) ((char *)ie_ptr + ie_ptr->IELength); - ie_ptr->IEType = IE_QOSClass; - ie_ptr->IELength = sizeof(Q2931_IE_TYPE) + sizeof(ULONG) + - sizeof(ATM_QOS_CLASS_IE); - ACE_OS::memcpy(ie_ptr->IE, &ie_qos, sizeof(ATM_QOS_CLASS_IE)); - */ - - const int BYTES_PER_ATM_CELL = 53; - ACE_OS::memset(&qos_, 0, sizeof(ATM_QoS)); - // Setting the token rate sets the minimum rate. 3 Mbits/sec seems too high. - // Certainly for Vaudeville audio, we only need about 1000 c/s which is - // 424000 bits/sec which is 53000 bytes/sec. - //qos_.SendingFlowspec.TokenRate = 3*(1024*128); // 3Mbits/sec - qos_.SendingFlowspec.TokenRate = 53000; // 1000 cells/sec - qos_.SendingFlowspec.TokenBucketSize = 32*1024; // our block size - //ourQos.SendingFlowspec.PeakBandwidth = ourQos.SendingFlowspec.TokenRate; - qos_.SendingFlowspec.ServiceType = SERVICETYPE_GUARANTEED; - // Peak bandwidth is in bytes/sec. The rate is specified in cells/sec so - // we need to convert from cells/sec to bytes/sec (i.e., multiply by 53). - qos_.SendingFlowspec.PeakBandwidth = rate * BYTES_PER_ATM_CELL; - qos_.SendingFlowspec.Latency = -1; // we don't care too much - qos_.SendingFlowspec.DelayVariation = -1; // we don't care too much - // no provider-specific data allowed on ATM - qos_.ProviderSpecific.buf=0; - qos_.ProviderSpecific.len=0; - // unidirectional P2MP; we don't need to setup the Receiving flowspec - - //qos_.SendingFlowspec.TokenRate = 0xffffffff; - //qos_.SendingFlowspec.TokenBucketSize = 0xffffffff; - //qos_.SendingFlowspec.PeakBandwidth = 0xffffffff; - //qos_.SendingFlowspec.Latency = 0xffffffff; - //qos_.SendingFlowspec.DelayVariation = 0xffffffff; - //qos_.SendingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT; - // This will most probably be ignored by the service provider. - //qos_.SendingFlowspec.MaxSduSize = 0xffffffff; - //qos_.SendingFlowspec.MinimumPolicedSize = 0xffffffff; - - //qos_.ReceivingFlowspec.TokenRate = 0xffffffff; - //qos_.ReceivingFlowspec.TokenBucketSize = 0xffffffff; - //qos_.ReceivingFlowspec.PeakBandwidth = 0xffffffff; - //qos_.ReceivingFlowspec.Latency = 0xffffffff; - //qos_.ReceivingFlowspec.DelayVariation = 0xffffffff; - //qos_.ReceivingFlowspec.ServiceType = SERVICETYPE_BESTEFFORT; - // This will most probably be ignored by the service provider. - //qos_.ReceivingFlowspec.MaxSduSize = 0xffffffff; - //qos_.ReceivingFlowspec.MinimumPolicedSize = 0; - - /* - ACE_Flow_Spec send_fspec( 0xffffffff, - 0xffffffff, - 0xffffffff, - 0xffffffff, - 0xffffffff, - SERVICETYPE_BESTEFFORT, - // This will most probably ignored by SP. - 0xffffffff, - 0xffffffff, - 15, - ACE_DEFAULT_THREAD_PRIORITY ), - recv_fspec( 0xffffffff, - 0xffffffff, - 0xffffffff, - 0xffffffff, - 0xffffffff, - SERVICETYPE_BESTEFFORT, - // This will most probably ignored by SP. - 0xffffffff, - 0, - 15, - ACE_DEFAULT_THREAD_PRIORITY ); - - qos_.sending_flowspec( send_fspec ); - qos_.receiving_flowspec( recv_fspec ); - */ -#elif defined (ACE_HAS_FORE_ATM_XTI) - ACE_UNUSED_ARG (rate); - ACE_UNUSED_ARG (pktSize); -#elif defined (ACE_HAS_LINUX_ATM) - ACE_UNUSED_ARG (pktSize); - - qos_.rxtp.traffic_class = ATM_CBR; - qos_.rxtp.pcr = rate; - qos_.txtp.traffic_class = ATM_CBR; - qos_.txtp.pcr = rate; -#else - ACE_UNUSED_ARG (rate); -#endif /* ACE_HAS_FORE_ATM_WS2 || ACE_HAS_FORE_ATM_XTI || ACE_HAS_LINUX_ATM */ -} - -void -ACE_ATM_QoS::set_rate (ACE_HANDLE fd, - int rate, - int flags) -{ - ACE_TRACE ("ACE_ATM_QoS::set_rate"); -#if defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM) - set_cbr_rate( rate ); - - ACE_UNUSED_ARG( fd ); - ACE_UNUSED_ARG( flags ); -#elif defined (ACE_HAS_FORE_ATM_XTI) - long optlen = 0; - qos_.buf = construct_options(fd, - rate, - flags, - &optlen); - qos_.len = optlen; -#else - ACE_UNUSED_ARG (rate); -#endif /* ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM || ACE_HAS_FORE_ATM_XTI */ -} - -char* -ACE_ATM_QoS::construct_options (ACE_HANDLE fd, - int rate, - int flags, - long *len) -{ -#if defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM) - ACE_UNUSED_ARG (fd); - ACE_UNUSED_ARG (rate); - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (len); - return (0); -#elif defined (ACE_HAS_FORE_ATM_XTI) - struct t_opthdr *popt; - char *buf; - int qos_cells; - struct t_info info; - - if (ACE_OS::t_getinfo (fd, &info) == -1) - { - ACE_OS::t_error ("t_getinfo"); - return 0; - } - - buf = (char *) ACE_OS::malloc (info.options); - - if (buf == 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Unable to allocate %d bytes for options\n"), - info.options), - 0); - - popt = (struct t_opthdr *) buf; - - if (flags & OPT_FLAGS_CPID) - { - // This constructs the T_ATM_ORIG_ADDR option, which is used to - // signal the UNI 3.1 Calling Party ID Information Element. - t_atm_addr *source_addr; - - popt->len = sizeof (struct t_opthdr) + sizeof (t_atm_addr); - popt->level = T_ATM_SIGNALING; - popt->name = T_ATM_ORIG_ADDR; - popt->status = 0; - - source_addr = - (t_atm_addr *)((char *) popt + sizeof (struct t_opthdr)); - - source_addr->address_format = T_ATM_ENDSYS_ADDR; - source_addr->address_length = ATMNSAP_ADDR_LEN; - - ATMSAPAddress local_addr; - struct t_bind boundaddr; - - boundaddr.addr.maxlen = sizeof(local_addr); - boundaddr.addr.buf = (char *) &local_addr; - - //if (ACE_OS::t_getprotaddr(fd, &boundaddr, 0) < 0) { - if (ACE_OS::t_getname(fd, - &boundaddr.addr, - LOCALNAME) < 0) - { - ACE_OS::t_error("t_getname (local_address)"); - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Can't get local address!\n"))); - ACE_OS::free (buf); - return 0; - } - - ACE_OS::memcpy(source_addr->address, - local_addr.sap.t_atm_sap_addr.address, - ATMNSAP_ADDR_LEN); - - popt = T_OPT_NEXTHDR (buf, info.options , popt); - } - - // This constructs all options necessary (bearer cap., QoS, and - // Traffic Descriptor) to signal for a CBR connection with the - // specified QoS in kbit/sec., and/or specify a PMP connection. - - // For FORE 200e cards, the adapter shapes traffic to CBR with rate - // equal to PCR CLP=0+1 (traffic.forward.PCR_all_traffic) - - qos_cells = (rate * 1000) / (48*8); - - if ((qos_cells > 0 && qos_cells < LINE_RATE) - || (ACE_BIT_ENABLED (flags, OPT_FLAGS_PMP))) - { - struct t_atm_bearer *bearer; - struct t_atm_traffic *traffic; - - // T_ATM_BEARER_CAP: Broadband bearer capability - popt->len = sizeof (struct t_opthdr) + sizeof (struct t_atm_bearer); - popt->level = T_ATM_SIGNALING; - popt->name = T_ATM_BEARER_CAP; - popt->status = 0; - - bearer = (struct t_atm_bearer *)((char *) popt + - sizeof (struct t_opthdr)); - bearer->bearer_class = T_ATM_CLASS_X; - - if (qos_cells) - { - bearer->traffic_type = T_ATM_CBR; - bearer->timing_requirements = T_ATM_END_TO_END; - } - else - { - bearer->traffic_type = 0; // UBR - bearer->timing_requirements = 0; - } - bearer->clipping_susceptibility = T_ATM_NULL; - - if (ACE_BIT_ENABLED (flags, OPT_FLAGS_PMP)) - bearer->connection_configuration = T_ATM_1_TO_MANY; - else - bearer->connection_configuration = T_ATM_1_TO_1; - - popt = T_OPT_NEXTHDR (buf, info.options, popt); - - // T_ATM_TRAFFIC: traffic descriptor - popt->len = sizeof (struct t_opthdr) + sizeof (struct t_atm_traffic); - popt->level = T_ATM_SIGNALING; - popt->name = T_ATM_TRAFFIC; - popt->status = 0; - - traffic = (struct t_atm_traffic *)((char *) popt + - sizeof (struct t_opthdr)); - - traffic->forward.PCR_high_priority = T_ATM_ABSENT; - traffic->forward.PCR_all_traffic = qos_cells ? qos_cells : LINE_RATE; - traffic->forward.SCR_high_priority = T_ATM_ABSENT; - traffic->forward.SCR_all_traffic = T_ATM_ABSENT; - traffic->forward.MBS_high_priority = T_ATM_ABSENT; - traffic->forward.MBS_all_traffic = T_ATM_ABSENT; - traffic->forward.tagging = T_NO; - - traffic->backward.PCR_high_priority = T_ATM_ABSENT; - traffic->backward.PCR_all_traffic = - (ACE_BIT_ENABLED (flags, OPT_FLAGS_PMP)) - ? 0 : qos_cells ? qos_cells : LINE_RATE; - traffic->backward.SCR_high_priority = T_ATM_ABSENT; - traffic->backward.SCR_all_traffic = T_ATM_ABSENT; - traffic->backward.MBS_high_priority = T_ATM_ABSENT; - traffic->backward.MBS_all_traffic = T_ATM_ABSENT; - traffic->backward.tagging = T_NO; - - traffic->best_effort = qos_cells ? T_NO : T_YES; - - popt = T_OPT_NEXTHDR (buf, - info.options, - popt); - } - - if (qos_cells > 0 && qos_cells < LINE_RATE) - { - struct t_atm_qos *qos; - - // T_ATM_QOS: Quality of Service - popt->len = sizeof (struct t_opthdr) + sizeof (struct t_atm_qos); - popt->level = T_ATM_SIGNALING; - popt->name = T_ATM_QOS; - popt->status = 0; - - qos = (struct t_atm_qos *)((char *) popt + sizeof (struct t_opthdr)); - qos->coding_standard = T_ATM_ITU_CODING; - qos->forward.qos_class = T_ATM_QOS_CLASS_1; - qos->backward.qos_class = T_ATM_QOS_CLASS_1; - - popt = T_OPT_NEXTHDR (buf, info.options, popt); - } - - // Return actual size of options and option buffer to user. - *len = (char *) popt - buf; - - return buf; -#else - ACE_UNUSED_ARG (fd); - ACE_UNUSED_ARG (rate); - ACE_UNUSED_ARG (flag); - ACE_UNUSED_ARG (len); - return (0); -#endif /* ACE_HAS_FORE_ATM_WS2 */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_ATM */ - diff --git a/ACE/ace/ATM_QoS.h b/ACE/ace/ATM_QoS.h deleted file mode 100644 index f548da3033d..00000000000 --- a/ACE/ace/ATM_QoS.h +++ /dev/null @@ -1,115 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file ATM_QoS.h - * - * $Id$ - * - * @author Joe Hoffert - */ -//========================================================================== - - -#ifndef ACE_ATM_QoS_H -#define ACE_ATM_QoS_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_HAS_ATM) - -#if defined (ACE_HAS_FORE_ATM_WS2) -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -// just map to WS2 GQOS struct -typedef ACE_QoS ATM_QoS; -ACE_END_VERSIONED_NAMESPACE_DECL -#elif defined (ACE_HAS_FORE_ATM_XTI) -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef struct netbuf ATM_QoS; -ACE_END_VERSIONED_NAMESPACE_DECL -#elif defined (ACE_HAS_LINUX_ATM) -#include /**/ "atm.h" -#include "ace/ATM_Params.h" -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef struct atm_qos ATM_QoS; -ACE_END_VERSIONED_NAMESPACE_DECL -#else -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef int ATM_QoS; -ACE_END_VERSIONED_NAMESPACE_DECL -#endif /* ACE_HAS_FORE_ATM_WS2 || ACE_HAS_FORE_ATM_XTI || ACE_HAS_LINUX_ATM */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_ATM_QoS - * - * @brief Define the QoS parameters for ATM - * - * This class wraps up QoS parameters for both ATM/XTI and - * ATM/WinSock2 to make the mechanism for the ATM protocol - * transparent. - */ -class ACE_Export ACE_ATM_QoS -{ -public: - // Constants used for ATM options - static const long LINE_RATE; - static const int OPT_FLAGS_CPID; - static const int OPT_FLAGS_PMP; - static const int DEFAULT_SELECTOR; - static const int DEFAULT_PKT_SIZE; - - // = Initializattion and termination methods. - /// Default constructor. - ACE_ATM_QoS(int = DEFAULT_PKT_SIZE); - - /// Constructor with a CBR rate. - ACE_ATM_QoS(int, - int = DEFAULT_PKT_SIZE); - - ~ACE_ATM_QoS (); - - /// Set the rate. - void set_rate (ACE_HANDLE, - int, - int); - - /// Set CBR rate in cells per second. - void set_cbr_rate (int, - int = DEFAULT_PKT_SIZE); - - /// Get ATM_QoS struct. - ATM_QoS get_qos (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Construct QoS options. - char* construct_options(ACE_HANDLE, - int, - int, - long*); - -private: - ATM_QoS qos_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/ATM_QoS.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_HAS_ATM */ -#include /**/ "ace/post.h" -#endif /* ACE_ATM_QoS_H */ diff --git a/ACE/ace/ATM_QoS.inl b/ACE/ace/ATM_QoS.inl deleted file mode 100644 index 283baa3f560..00000000000 --- a/ACE/ace/ATM_QoS.inl +++ /dev/null @@ -1,29 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE void -ACE_ATM_QoS::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_ATM_QoS::dump"); -#endif /* ACE_HAS_DUMP */ -} - -ACE_INLINE -ACE_ATM_QoS::~ACE_ATM_QoS () -{ - ACE_TRACE ("ACE_ATM_QoS::~ACE_ATM_QoS"); -} - -ACE_INLINE -ATM_QoS -ACE_ATM_QoS::get_qos (void) -{ - ACE_TRACE ("ACE_ATM_QoS::get_qos"); - return qos_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ATM_Stream.cpp b/ACE/ace/ATM_Stream.cpp deleted file mode 100644 index 21035b97f52..00000000000 --- a/ACE/ace/ATM_Stream.cpp +++ /dev/null @@ -1,290 +0,0 @@ -// $Id$ - -#include "ace/ATM_Stream.h" - -ACE_RCSID (ace, ATM_Stream, "$Id$") - -#if defined (ACE_HAS_ATM) - -#if !defined (__ACE_INLINE__) -#include "ace/ATM_Stream.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE (ACE_ATM_Stream) - -char* -ACE_ATM_Stream::get_peer_name (void) const -{ - ACE_TRACE ("ACE_ATM_Stream::get_peer_name"); -#if defined (ACE_HAS_FORE_ATM_XTI) - // // Use t_getprotaddr for XTI/ATM - // struct t_bind *localaddr - // = (struct t_bind *) ACE_OS::t_alloc (get_handle (), - // T_BIND, - // T_ADDR); - // struct t_bind *peeraddr - // = (struct t_bind *) ACE_OS::t_alloc (get_handle (), - // T_BIND, - // T_ADDR); - // ::t_getprotaddr (get_handle (), - // localaddr, - // peeraddr); - - // char* connected_name = (char*) ACE_OS::malloc (peeraddr->addr.len + 1); - // ACE_OS::strcpy (connected_name, - // peeraddr->addr.buf); - // ACE_OS::t_free ((char *) localaddr, - // T_BIND); - // ACE_OS::t_free ((char *) peeraddr, - // T_BIND); - // return (connected_name); - -#error "This doesn't seem to work. May need to jimmy-rig something with the" -#error "/etc/xti_hosts file - Ugh!" - - ACE_ATM_Addr sa; - struct netbuf name; - name.maxlen = sa.get_size (); - name.buf = (char *) sa.get_addr (); - ACE_OS::t_getname (this->get_handle (), &name, REMOTENAME); - // ACE_OS::ioctl (this->get_handle (), - // TI_GETPEERNAME, - // &name); - return (name.buf); - -#elif defined (ACE_HAS_FORE_ATM_WS2) - // Use getpeername for WinSock2. - struct sockaddr_atm name; - ACE_OS::memset (&name, 0, sizeof (name)); - int nameSize = sizeof (name); - - if (ACE_OS::getpeername (this->get_handle (), - (struct sockaddr *) &name, - &nameSize) != 0) { - return 0; - } - - char buffer[256]; - for (unsigned int index = 0; index < ATM_ADDR_SIZE - 1; index++) { - buffer[ index * 3 ] = '\0'; - ACE_OS::sprintf (buffer, "%s%02x.", buffer, name.satm_number.Addr[ index ]); - } - buffer[ (ATM_ADDR_SIZE - 1) * 3 ] = '\0'; - ACE_OS::sprintf (buffer, "%s%02x.", buffer, 0); - buffer[ ATM_ADDR_SIZE * 3 - 1 ] = '\0'; - for (index = 0; index < ACE_OS::strlen (buffer); ++index) - buffer[index] = ACE_OS::ace_tolower (buffer[index]); - - ifstream atm_hosts ("C:/WINNT/atmhosts"); - assert (atm_hosts.is_open ()); - - // Find the host address in the ATM hosts file and return the - // host name - char line[256]; - char *host_ptr, *host_name = 0; - ACE_NEW_RETURN (host_name, char[256], 0); - while (!atm_hosts.eof ()) { - atm_hosts.getline (line, 256); - // Convert the line to lower case to ease comparison - for (index = 0; index < ACE_OS::strlen (line); ++index) - line[index] = ACE_OS::ace_tolower (line[index]); - if (ACE_OS::strstr (line, buffer) != 0) - { - char *strtok_p; - // Grab the second token which is the host name - ACE_OS::strtok_r (line, " \t", &strtok_p); - host_ptr = ACE_OS::strtok (0, " \t", &strtok_p); - ACE_OS::strcpy (host_name, host_ptr); - break; - } - } - - return host_name; -#elif defined (ACE_HAS_LINUX_ATM) - ATM_Addr name; - int nameSize = sizeof (name.sockaddratmsvc); - - if (ACE_OS::getpeername (this->get_handle (), - (struct sockaddr *) & (name.sockaddratmsvc), - &nameSize) < 0) { - ACE_OS::perror ("ACE_ATM_Stream (get_peer_name) : "); - return 0; - } - - static ACE_TCHAR buffer[MAX_ATM_ADDR_LEN + 1]; - int total_len; - if ((total_len = atm2text (buffer,sizeof buffer, - (struct sockaddr *) & (name.sockaddratmsvc), - A2T_PRETTY|A2T_NAME)) < 0) { - ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("ACE_ATM_Stream (get_peer_name) :%d"),errno)); - return 0; - } - - return (char*) buffer; -#else - return 0; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ -} - -ACE_HANDLE -ACE_ATM_Stream::get_handle (void) const -{ - ACE_TRACE ("ACE_ATM_Stream::get_handle"); -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) || defined (ACE_HAS_LINUX_ATM) - return stream_.get_handle (); -#else - return 0; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ -} - -int -ACE_ATM_Stream::get_vpi_vci (ACE_UINT16 &vpi, - ACE_UINT16 &vci) const -{ - ACE_TRACE ("ACE_ATM_Stream::get_vpi_vci"); -#if defined (ACE_HAS_FORE_ATM_XTI) - struct t_atm_conn_prop conn_prop; - char* connect_opts = (char *) &conn_prop; - int opt_size = sizeof (t_atm_conn_prop); - struct t_info info; - struct t_optmgmt opt_req, opt_ret; - - if (ACE_OS::t_getinfo (stream_.get_handle (), - &info) < 0) - { - ACE_OS::t_error ("t_getinfo"); - return -1; - } - - char *buf_req = (char *) ACE_OS::malloc (info.options); - if (buf_req == 0) - { - ACE_OS::fprintf (stderr, - "Unable to allocate %ld bytes for options\n", - info.options); - return -1; - } - - char *buf_ret = (char *) ACE_OS::malloc (info.options); - if (buf_ret == 0) - { - ACE_OS::fprintf (stderr, - "Unable to allocate %ld bytes for options\n", - info.options); - return -1; - } - - ACE_OS::memset (&opt_req, 0, sizeof (opt_req)); - ACE_OS::memset (&opt_ret, 0, sizeof (opt_ret)); - - struct t_opthdr *popt = (struct t_opthdr *) buf_req; - struct t_opthdr *popt_ret = (struct t_opthdr *) buf_ret; - - popt->len= sizeof (struct t_opthdr) + opt_size; - - // We are only concerned with SVCs so no other check or values are needed - // here. - popt->level = T_ATM_SIGNALING; - popt->name = T_ATM_CONN_PROP; - popt->status = 0; - - opt_req.opt.len = popt->len; - opt_req.opt.buf = (char *) popt; - opt_req.flags = T_CURRENT; - - popt = T_OPT_NEXTHDR (buf_req, - info.options, - popt); - opt_ret.opt.maxlen = info.options; - opt_ret.opt.buf = (char *) popt_ret; - - if (ACE_OS::t_optmgmt (stream_.get_handle (), - &opt_req, - &opt_ret) < 0) { - ACE_OS::t_error ("t_optmgmt"); - return -1; - } - - ACE_OS::memcpy (connect_opts, - (char *) popt_ret + sizeof (struct t_opthdr), - opt_size); - - ACE_OS::free (buf_ret); - ACE_OS::free (buf_req); - - vpi = conn_prop.vpi; - vci = conn_prop.vci; - return (0); -#elif defined (ACE_HAS_FORE_ATM_WS2) - ATM_CONNECTION_ID connID; - DWORD bytes = 0; - - if (::WSAIoctl ((int) this -> get_handle (), - SIO_GET_ATM_CONNECTION_ID, - 0, - 0, - (LPVOID) &connID, - sizeof (ATM_CONNECTION_ID), - &bytes, - 0, - 0) - == SOCKET_ERROR) { - ACE_OS::printf ("Error: WSAIoctl %d\n", WSAGetLastError ()); - } - - vpi = (ACE_UINT16) connID.VPI; - vci = (ACE_UINT16) connID.VCI; - - return 0; -#elif defined (ACE_HAS_LINUX_ATM) -#if defined (SO_ATMPVC) /* atm version>=0.62 */ - struct sockaddr_atmpvc mypvcaddr; - int addrpvclen = sizeof (mypvcaddr); - if (ACE_OS::getsockopt (stream_.get_handle (), - SOL_ATM, - SO_ATMPVC, - reinterpret_cast (&mypvcaddr), - &addrpvclen) < 0) { - ACE_DEBUG (LM_DEBUG, - ACE_TEXT ("ACE_ATM_Stream::get_vpi_vci: getsockopt %d\n"), - errno); - return -1; - } - vpi = (ACE_UINT16) mypvcaddr.sap_addr.vpi; - vci = (ACE_UINT16) mypvcaddr.sap_addr.vci; - - return 0; -#elif defined (SO_VCID) /* patch for atm version 0.59 */ - struct atm_vcid mypvcid; - int pvcidlen = sizeof (mypvcid); - if (ACE_OS::getsockopt (stream_.get_handle (), - SOL_ATM,SO_VCID, - reinterpret_cast (&mypvcid), - &pvcidlen) < 0) { - ACE_DEBUG (LM_DEBUG, - ACE_TEXT ("ACE_ATM_Stream::get_vpi_vci: getsockopt %d\n"), - errno); - return -1; - } - vpi = (ACE_UINT16) mypvcid.vpi; - vci = (ACE_UINT16) mypvcid.vci; - - return 0; -#else - ACE_DEBUG (LM_DEBUG, - ACE_TEXT ("ACE_ATM_Stream::get_vpi_vci: Not implemented in this ATM version. Update to >= 0.62\n Or patch 0.59")); - ACE_UNUSED_ARG (vci); - ACE_UNUSED_ARG (vpi); - - return (-1); -#endif /* SO_ATMPVC || SO_VCID */ -#else - return (-1); -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 || ACE_HAS_LINUX_ATM */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_ATM */ diff --git a/ACE/ace/ATM_Stream.h b/ACE/ace/ATM_Stream.h deleted file mode 100644 index fde1294e1e3..00000000000 --- a/ACE/ace/ATM_Stream.h +++ /dev/null @@ -1,107 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file ATM_Stream.h - * - * $Id$ - * - * @author Joe Hoffert - */ -//============================================================================= - - -#ifndef ACE_ATM_STREAM_H -#define ACE_ATM_STREAM_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_HAS_ATM) - -#include "ace/ATM_Addr.h" -#include "ace/ATM_Params.h" - -#if defined (ACE_WIN32) -#include "ace/SOCK_Stream.h" -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef ACE_SOCK_Stream ATM_Stream; -ACE_END_VERSIONED_NAMESPACE_DECL -#else -#include "ace/TLI_Stream.h" -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef ACE_TLI_Stream ATM_Stream; -ACE_END_VERSIONED_NAMESPACE_DECL -#endif - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_ATM_Stream - * - * @brief Defines the member functions for ACE_ATM_Stream abstraction. - */ -class ACE_Export ACE_ATM_Stream -{ -public: - // = Initialization and termination methods. - /// Default constructor. - ACE_ATM_Stream (void); - - // = ATM-specific open and shutdown operations. - /// open the stream. - int open (ACE_ATM_Params params = ACE_ATM_Params()); - - /// Close down and release resources. - int close (void); - - /// Get the underlying handle. - ACE_HANDLE get_handle (void) const; - - /// Get the underlying stream. - ATM_Stream& get_stream (void); - - /// Get the name of the connected host. - char* get_peer_name (void) const; - - /// Get the VPI and VCI of the stream. - int get_vpi_vci (ACE_UINT16 &vpi, - ACE_UINT16 &vci) const; - - /// Recv an n byte buffer from the connected transport mechanism. - ssize_t recv (void *buf, - size_t n, - int *flags = 0) const; - - /// Send exactly n bytes to the connected transport mechanism. - ssize_t send_n (const void *buf, - size_t n, - int flags) const; - - // = Meta-type info - typedef ACE_ATM_Addr PEER_ADDR; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Typedef'd to the appropriate stream mechanism above. - ATM_Stream stream_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/ATM_Stream.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_HAS_ATM */ -#include /**/ "ace/post.h" -#endif /* ACE_ATM_STREAM_H */ diff --git a/ACE/ace/ATM_Stream.inl b/ACE/ace/ATM_Stream.inl deleted file mode 100644 index b796af474e7..00000000000 --- a/ACE/ace/ATM_Stream.inl +++ /dev/null @@ -1,133 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE void -ACE_ATM_Stream::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_ATM_Stream::dump"); -#endif /* ACE_HAS_DUMP */ -} - -ACE_INLINE -ACE_ATM_Stream::ACE_ATM_Stream (void) -{ - ACE_TRACE ("ACE_ATM_Stream::ACE_ATM_Stream"); -} - -ACE_INLINE -int -ACE_ATM_Stream::open (ACE_ATM_Params params) -{ - ACE_TRACE ("ACE_ATM_Stream::open"); -#if defined (ACE_HAS_FORE_ATM_XTI) - ACE_HANDLE handle = stream_.open (params.get_device(), - params.get_oflag(), - params.get_info()); - return (handle == ACE_INVALID_HANDLE ? -1 : 0); -#elif defined (ACE_HAS_FORE_ATM_WS2) - params.set_flags( ACE_FLAG_MULTIPOINT_C_ROOT | ACE_FLAG_MULTIPOINT_D_ROOT ); - - int retval = stream_.open (params.get_type(), - params.get_protocol_family(), - params.get_protocol(), - params.get_protocol_info(), - params.get_sock_group(), - params.get_flags(), - params.get_reuse_addr()); - if (retval == -1) - return -1; - - struct sockaddr_atm sock_addr; - - ACE_OS::memset(&sock_addr, 0, sizeof(struct sockaddr_atm)); - sock_addr.satm_family = AF_ATM; - sock_addr.satm_number.AddressType=ADDR_ANY; - sock_addr.satm_number.NumofDigits = ATM_ADDR_SIZE; - sock_addr.satm_blli.Layer2Protocol = SAP_FIELD_ABSENT; - sock_addr.satm_blli.Layer3Protocol = SAP_FIELD_ABSENT; - sock_addr.satm_bhli.HighLayerInfoType = SAP_FIELD_ABSENT; - if (ACE_OS::bind(get_handle(), - (struct sockaddr FAR *)&sock_addr, - sizeof(struct sockaddr_atm)) < 0) - { - ACE_OS::printf("Error binding local address: %d",WSAGetLastError()); - return -1; - } - - return 0; -#else - ACE_UNUSED_ARG(params); - return 0; -#endif /* ACE_HAS_FORE_ATM_XTI */ -} - -ACE_INLINE -int -ACE_ATM_Stream::close (void) -{ - ACE_TRACE ("ACE_ATM_Stream::close"); -#if defined (ACE_HAS_FORE_ATM_XTI) || defined (ACE_HAS_FORE_ATM_WS2) - return stream_.close (); -#else - return 0; -#endif /* ACE_HAS_FORE_ATM_XTI || ACE_HAS_FORE_ATM_WS2 */ -} - -ACE_INLINE -ATM_Stream& -ACE_ATM_Stream::get_stream (void) -{ - ACE_TRACE ("ACE_ATM_Stream::get_stream"); - return stream_; -} - -ACE_INLINE -ssize_t -ACE_ATM_Stream::recv (void *buf, - size_t n, - int *flags) const -{ - ACE_TRACE ("ACE_ATM_Stream::recv"); -#if defined (ACE_HAS_FORE_ATM_XTI) - return stream_.recv (buf, - n, - flags); -#elif defined (ACE_HAS_FORE_ATM_WS2) - return stream_.recv (buf, - n); -#else - ACE_UNUSED_ARG(buf); - ACE_UNUSED_ARG(n); - ACE_UNUSED_ARG(flags); - return (0); -#endif /* ACE_HAS_FORE_ATM_XTI */ -} - -ACE_INLINE -ssize_t -ACE_ATM_Stream::send_n (const void *buf, - size_t n, - int flags) const -{ - ACE_TRACE ("ACE_ATM_Stream::send_n"); -#if defined (ACE_HAS_FORE_ATM_XTI) - return stream_.send_n (buf, - n, - flags); -#elif defined (ACE_HAS_FORE_ATM_WS2) - return stream_.send_n (buf, - n, - flags); -#else - ACE_UNUSED_ARG(buf); - ACE_UNUSED_ARG(n); - ACE_UNUSED_ARG(flags); - return (0); -#endif /* ACE_HAS_FORE_ATM_XTI */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Acceptor.cpp b/ACE/ace/Acceptor.cpp deleted file mode 100644 index 2dd5b52d926..00000000000 --- a/ACE/ace/Acceptor.cpp +++ /dev/null @@ -1,1226 +0,0 @@ -#ifndef ACE_ACCEPTOR_CPP -#define ACE_ACCEPTOR_CPP - -#include "ace/ACE.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#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 - -ACE_ALLOC_HOOK_DEFINE(ACE_Acceptor) - -template void -ACE_Acceptor::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Acceptor::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - this->peer_acceptor_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Acceptor::operator ACE_PEER_ACCEPTOR & () const -{ - ACE_TRACE ("ACE_Acceptor::operator ACE_PEER_ACCEPTOR &"); - return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_; -} - -template ACE_PEER_ACCEPTOR & -ACE_Acceptor::acceptor (void) const -{ - ACE_TRACE ("ACE_Acceptor::acceptor"); - return const_cast (this->peer_acceptor_); -} - -// Returns ACE_HANDLE of the underlying Acceptor_Strategy. - -template ACE_HANDLE -ACE_Acceptor::get_handle (void) const -{ - ACE_TRACE ("ACE_Acceptor::get_handle"); - return this->peer_acceptor_.get_handle (); -} - -// Initialize the appropriate strategies for creation, passive -// connection acceptance, and concurrency, and then register -// with the Reactor and listen for connection requests at the -// designated . - -template int -ACE_Acceptor::open - (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor *reactor, - int flags, - int use_select, - int reuse_addr) -{ - ACE_TRACE ("ACE_Acceptor::open"); - this->flags_ = flags; - this->use_select_ = use_select; - this->reuse_addr_ = reuse_addr; - this->peer_acceptor_addr_ = local_addr; - - // Must supply a valid Reactor to Acceptor::open()... - - if (reactor == 0) - { - errno = EINVAL; - return -1; - } - - if (this->peer_acceptor_.open (local_addr, reuse_addr) == -1) - return -1; - - // Set the peer acceptor's handle into non-blocking mode. This is a - // safe-guard against the race condition that can otherwise occur - // between the time when indicates that a passive-mode - // socket handle is "ready" and when we call . During this - // interval, the client can shutdown the connection, in which case, - // the call can hang! - if (this->accept_strategy_->acceptor ().enable (ACE_NONBLOCK) != 0) - return -1; - - // Initialize the concurrency strategy. - - if (con_s == 0) - { - ACE_NEW_RETURN (con_s, - CONCURRENCY_STRATEGY, - -1); - this->delete_concurrency_strategy_ = true; - } - this->concurrency_strategy_ = con_s; - - // Initialize the scheduling strategy. - - if (sch_s == 0) - { - ACE_NEW_RETURN (sch_s, - SCHEDULING_STRATEGY, - -1); - this->delete_scheduling_strategy_ = true; - } - this->scheduling_strategy_ = sch_s; - - this->use_select_ = use_select; - - return this->reactor ()->register_handler - (this, - ACE_Event_Handler::ACCEPT_MASK); -} - -// Simple constructor. - -template -ACE_Strategy_Acceptor::ACE_Strategy_Acceptor - (const ACE_TCHAR service_name[], - const ACE_TCHAR service_description[], - int use_select, - int reuse_addr) - : creation_strategy_ (0), - delete_creation_strategy_ (false), - accept_strategy_ (0), - delete_accept_strategy_ (false), - concurrency_strategy_ (0), - delete_concurrency_strategy_ (false), - scheduling_strategy_ (0), - delete_scheduling_strategy_ (false), - service_name_ (0), - service_description_ (0) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::ACE_Strategy_Acceptor"); - - if (service_name != 0) - ACE_ALLOCATOR (this->service_name_, - ACE_OS::strdup (service_name)); - if (service_description != 0) - ACE_ALLOCATOR (this->service_description_, - ACE_OS::strdup (service_description)); - this->use_select_ = use_select; - this->reuse_addr_ = reuse_addr; -} - -template -ACE_Strategy_Acceptor::ACE_Strategy_Acceptor - (const ACE_PEER_ACCEPTOR_ADDR &addr, - ACE_Reactor *reactor, - ACE_Creation_Strategy *cre_s, - ACE_Accept_Strategy *acc_s, - ACE_Concurrency_Strategy *con_s, - ACE_Scheduling_Strategy *sch_s, - const ACE_TCHAR service_name[], - const ACE_TCHAR service_description[], - int use_select, - int reuse_addr) - : creation_strategy_ (0), - delete_creation_strategy_ (false), - accept_strategy_ (0), - delete_accept_strategy_ (false), - concurrency_strategy_ (0), - delete_concurrency_strategy_ (false), - scheduling_strategy_ (0), - delete_scheduling_strategy_ (false), - service_name_ (0), - service_description_ (0) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::ACE_Strategy_Acceptor"); - - if (this->open (addr, - reactor, - cre_s, - acc_s, - con_s, - sch_s, - service_name, - service_description, - use_select, - reuse_addr) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Strategy_Acceptor::ACE_Strategy_Acceptor"))); -} - -// Perform termination activities when is removed from the -// . - -template int -ACE_Strategy_Acceptor::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::handle_close"); - // Guard against multiple closes. - if (this->reactor () != 0) - { - ACE_HANDLE handle = this->get_handle (); - - if (this->delete_creation_strategy_) - delete this->creation_strategy_; - this->delete_creation_strategy_ = false; - this->creation_strategy_ = 0; - - if (this->delete_accept_strategy_) - delete this->accept_strategy_; - this->delete_accept_strategy_ = false; - this->accept_strategy_ = 0; - - if (this->delete_concurrency_strategy_) - delete this->concurrency_strategy_; - this->delete_concurrency_strategy_ = false; - this->concurrency_strategy_ = 0; - - if (this->delete_scheduling_strategy_) - delete this->scheduling_strategy_; - this->delete_scheduling_strategy_ = false; - this->scheduling_strategy_ = 0; - - // We must use the obtained *before* we deleted the - // accept_strategy_... - - this->reactor ()->remove_handler - (handle, - ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL); - - // Set the Reactor to 0 so that we don't try to close down - // again. - this->reactor (0); - } - return 0; -} - -// Bridge method for creating a . The strategy for -// creating a are configured into the Acceptor via it's -// . The default is to create a new -// . However, subclasses can override this strategy to -// perform creation in any way that they like (such as -// creating subclass instances of , using a singleton, -// dynamically linking the handler, etc.). - -template int -ACE_Strategy_Acceptor::make_svc_handler (SVC_HANDLER *&sh) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::make_svc_handler"); - return this->creation_strategy_->make_svc_handler (sh); -} - -// Bridge method for accepting the new connection into the -// . The default behavior delegates to the -// in the Acceptor_Strategy. - -template int -ACE_Strategy_Acceptor::accept_svc_handler - (SVC_HANDLER *svc_handler) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::accept_svc_handler"); - return this->accept_strategy_->accept_svc_handler (svc_handler); -} - -// Bridge method for activating a with the appropriate -// concurrency strategy. The default behavior of this method is to -// 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 creating the SVC_HANDLER as an -// "active object" via multi-threading or multi-processing). - -template int -ACE_Strategy_Acceptor::activate_svc_handler - (SVC_HANDLER *svc_handler) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::activate_svc_handler"); - return this->concurrency_strategy_->activate_svc_handler - (svc_handler, - (void *) this); -} - -template -ACE_Strategy_Acceptor::~ACE_Strategy_Acceptor (void) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::~ACE_Strategy_Acceptor"); - ACE_OS::free ((void *) this->service_name_); - ACE_OS::free ((void *) this->service_description_); - this->handle_close (); -} - -// Signal the server to shutdown gracefully. - -template int -ACE_Strategy_Acceptor::handle_signal (int, siginfo_t *, ucontext_t *) -{ - ACE_Reactor::instance()->end_reactor_event_loop (); - return 0; -} - -template int -ACE_Strategy_Acceptor::info (ACE_TCHAR **strp, - size_t length) const -{ - ACE_TRACE ("ACE_Strategy_Acceptor::info"); - - ACE_TCHAR buf[BUFSIZ]; - ACE_TCHAR service_addr_str[BUFSIZ]; - ACE_PEER_ACCEPTOR_ADDR addr; - - if (this->acceptor ().get_local_addr (addr) == -1) - return -1; - else if (addr.addr_to_string (service_addr_str, - sizeof service_addr_str) == -1) - return -1; - - // @@ Should add the protocol in... - ACE_OS::sprintf (buf, - ACE_TEXT ("%s\t %s #%s\n"), - this->service_name_ == 0 - ? ACE_TEXT ("") - : this->service_name_, - service_addr_str, - this->service_description_ == 0 - ? ACE_TEXT ("") - : this->service_description_); - - if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0) - return -1; - else - ACE_OS::strsncpy (*strp, buf, length); - return static_cast (ACE_OS::strlen (buf)); -} - -template int -ACE_Strategy_Acceptor::fini (void) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::fini"); - return this->ACE_Strategy_Acceptor::handle_close (); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Oneshot_Acceptor) - -template void -ACE_Oneshot_Acceptor::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Oneshot_Acceptor::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nsvc_handler_ = %x"), this->svc_handler_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nrestart_ = %d"), this->restart_)); - this->peer_acceptor_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("delete_concurrency_strategy_ = %d"), - delete_concurrency_strategy_)); - this->concurrency_strategy_->dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template int -ACE_Oneshot_Acceptor::open - (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor *reactor, - ACE_Concurrency_Strategy *con_s) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::open"); - this->reactor (reactor); - - // Initialize the concurrency strategy. - - if (con_s == 0) - { - ACE_NEW_RETURN (con_s, - ACE_Concurrency_Strategy, - -1); - this->delete_concurrency_strategy_ = true; - } - this->concurrency_strategy_ = con_s; - - // Reuse the addr, even if it is already in use...! - return this->peer_acceptor_.open (local_addr, 1); -} - -template -ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor (void) - : delete_concurrency_strategy_ (false) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor"); - this->reactor (0); -} - -template -ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor - (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor *reactor, - ACE_Concurrency_Strategy *cs) - : delete_concurrency_strategy_ (false) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor"); - if (this->open (local_addr, reactor, cs) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor"))); -} - -template -ACE_Oneshot_Acceptor::~ACE_Oneshot_Acceptor (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::~ACE_Oneshot_Acceptor"); - this->handle_close (); -} - -template int -ACE_Oneshot_Acceptor::close (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::close"); - return this->handle_close (); -} - -template int -ACE_Oneshot_Acceptor::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::handle_close"); - - // Guard against multiple closes. - if (this->delete_concurrency_strategy_) - { - delete this->concurrency_strategy_; - this->delete_concurrency_strategy_ = false; - this->concurrency_strategy_ = 0; - } - // Note that if we aren't actually registered with the - // ACE_Reactor then it's ok for this call to fail... - - if (this->reactor ()) - this->reactor ()->remove_handler - (this, - ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL); - - if (this->peer_acceptor_.close () == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("close\n"))); - return 0; -} - -template int -ACE_Oneshot_Acceptor::handle_timeout - (const ACE_Time_Value &tv, - const void *arg) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::handle_timeout"); - errno = ETIME; - - if (this->svc_handler_->handle_timeout (tv, arg) == -1) - this->svc_handler_->handle_close (this->svc_handler_->get_handle (), - ACE_Event_Handler::TIMER_MASK); - - // Since we aren't necessarily registered with the Reactor, don't - // bother to check the return value here... - if (this->reactor ()) - this->reactor ()->remove_handler (this, - ACE_Event_Handler::ACCEPT_MASK); - return 0; -} - -template int -ACE_Oneshot_Acceptor::cancel (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::cancel"); - return this->reactor () && this->reactor ()->cancel_timer (this); -} - -template int -ACE_Oneshot_Acceptor::register_handler - (SVC_HANDLER *svc_handler, - const ACE_Synch_Options &synch_options, - int restart) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::register_handler"); - // Can't do this if we don't have a Reactor. - if (this->reactor () == 0) - { - errno = EINVAL; - return -1; - } - else - { - this->svc_handler_ = svc_handler; - this->restart_ = restart; - ACE_Time_Value *tv = (ACE_Time_Value *) synch_options.time_value (); - - if (tv != 0 - && this->reactor ()->schedule_timer (this, - synch_options.arg (), - *tv) == 0) - return -1; - else - return this->reactor ()->register_handler - (this, - ACE_Event_Handler::ACCEPT_MASK); - } -} - -// Bridge method for activating a with the appropriate -// concurrency strategy. The default behavior of this method is to -// 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 creating the SVC_HANDLER as an -// "active object" via multi-threading or multi-processing). - -template int -ACE_Oneshot_Acceptor::activate_svc_handler - (SVC_HANDLER *svc_handler) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::activate_svc_handler"); - return this->concurrency_strategy_->activate_svc_handler - (svc_handler, - (void *) this); -} - -// Factors out the code shared between the and -// methods. - -template int -ACE_Oneshot_Acceptor::shared_accept - (SVC_HANDLER *svc_handler, - ACE_PEER_ACCEPTOR_ADDR *remote_addr, - ACE_Time_Value *timeout, - int restart, - int reset_new_handle) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::shared_accept"); - if (svc_handler == 0) - return -1; - - // Accept connection into the Svc_Handler. - else if (this->peer_acceptor_.accept (svc_handler->peer (), // stream - remote_addr, // remote address - timeout, // timeout - restart, // restart - reset_new_handle // reset new handle - ) == -1) - { - // Check whether we just timed out or whether we failed... - if (!(errno == EWOULDBLOCK || errno == ETIME)) - // Close down handler to avoid memory leaks. - svc_handler->close (0); - return -1; - } - // Activate the using the designated concurrency - // strategy (note that this method becomes responsible for handling - // errors and freeing up the memory if things go awry...) - else - return this->activate_svc_handler (svc_handler); -} - -// Make a SVC_HANDLER, accept the connection into the SVC_HANDLER, and -// then activate the SVC_HANDLER. Note that SVC_HANDLER::open() -// decides what type of concurrency strategy to use. - -template int -ACE_Oneshot_Acceptor::accept - (SVC_HANDLER *svc_handler, - ACE_PEER_ACCEPTOR_ADDR *remote_addr, - const ACE_Synch_Options &synch_options, - int restart, - int reset_new_handle) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::accept"); - // Note that if timeout == ACE_Time_Value (x, y) where (x > 0 || y > - // 0) then this->connector_.connect() will block synchronously. If - // is set then we don't want this to happen (since we - // want the ACE_Reactor to do the timeout asynchronously). - // Therefore, we'll force this->connector_ to use ACE_Time_Value (0, - // 0) in this case... - - ACE_Time_Value *timeout; - int use_reactor = synch_options[ACE_Synch_Options::USE_REACTOR]; - - if (use_reactor) - timeout = (ACE_Time_Value *) &ACE_Time_Value::zero; - else - timeout = (ACE_Time_Value *) synch_options.time_value (); - - if (this->shared_accept (svc_handler, // stream - remote_addr, // remote address - timeout, // timeout - restart, // restart - reset_new_handle // reset new handler - ) == -1) - { - if (use_reactor && errno == EWOULDBLOCK) - // We couldn't accept right away, so let's wait in the - // . - this->register_handler (svc_handler, - synch_options, - restart); - return -1; - } - return 0; -} - -// Accepts one pending connection from a client (since we're the -// "oneshot" Acceptor). - -template int -ACE_Oneshot_Acceptor::handle_input (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::handle_input"); - int result = 0; - - // Cancel any timer that might be pending. - this->cancel (); - - // Try to find out if the implementation of the reactor that we are - // using requires us to reset the event association for the newly - // created handle. This is because the newly created handle will - // inherit the properties of the listen handle, including its event - // associations. - int reset_new_handle = this->reactor ()->uses_event_associations (); - - // There is a use-case whereby this object will be gone upon return - // from shared_accept - if the Svc_Handler deletes this Oneshot_Acceptor - // during the shared_accept/activation steps. So, do whatever we need - // to do with this object before calling shared_accept. - if (this->reactor ()) - this->reactor ()->remove_handler - (this, - ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL); - - if (this->shared_accept (this->svc_handler_, // stream - 0, // remote address - 0, // timeout - this->restart_, // restart - reset_new_handle // reset new handle - ) == -1) - result = -1; - - return result; -} - -// Hook called by the explicit dynamic linking facility. - -template int -ACE_Oneshot_Acceptor::init (int, ACE_TCHAR *[]) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::init"); - return -1; -} - -template int -ACE_Oneshot_Acceptor::fini (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::fini"); - return this->handle_close (); -} - -template int -ACE_Oneshot_Acceptor::info (ACE_TCHAR **strp, - size_t length) const -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::info"); - ACE_TCHAR buf[BUFSIZ]; - ACE_TCHAR addr_str[BUFSIZ]; - ACE_PEER_ACCEPTOR_ADDR addr; - - if (this->peer_acceptor_.get_local_addr (addr) == -1) - return -1; - else if (addr.addr_to_string (addr_str, sizeof addr_str) == -1) - return -1; - - ACE_OS::sprintf (buf, - ACE_TEXT ("%s\t %s %s"), - ACE_TEXT ("ACE_Oneshot_Acceptor"), - addr_str, - ACE_TEXT ("#oneshot acceptor factory\n")); - - if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0) - return -1; - else - ACE_OS::strsncpy (*strp, buf, length); - return static_cast (ACE_OS::strlen (buf)); -} - -template int -ACE_Oneshot_Acceptor::suspend (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::suspend"); - return this->reactor () && this->reactor ()->suspend_handler (this); -} - -template int -ACE_Oneshot_Acceptor::resume (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::resume"); - return this->reactor () && this->reactor ()->resume_handler (this); -} - -// Returns ACE_HANDLE of the underlying peer_acceptor. - -template ACE_HANDLE -ACE_Oneshot_Acceptor::get_handle (void) const -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::get_handle"); - return this->peer_acceptor_.get_handle (); -} - -template ACE_PEER_ACCEPTOR & -ACE_Oneshot_Acceptor::acceptor (void) const -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::acceptor"); - return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_; -} - -template -ACE_Oneshot_Acceptor::operator ACE_PEER_ACCEPTOR & () const -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::operator ACE_PEER_ACCEPTOR &"); - return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_ACCEPTOR_CPP */ diff --git a/ACE/ace/Acceptor.h b/ACE/ace/Acceptor.h deleted file mode 100644 index 741dca098e1..00000000000 --- a/ACE/ace/Acceptor.h +++ /dev/null @@ -1,684 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Acceptor.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_ACCEPTOR_H -#define ACE_ACCEPTOR_H - -#include /**/ "ace/pre.h" - -#include "ace/Service_Object.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Strategies_T.h" -#include "ace/Synch_Options.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Acceptor - * - * @brief Abstract factory for creating a service handler - * (SVC_HANDLER), accepting into the SVC_HANDLER, and - * activating the SVC_HANDLER. - * - * Implements the basic strategy for passively establishing - * connections with clients. An ACE_Acceptor is parameterized - * by concrete types that conform to the interfaces of - * PEER_ACCEPTOR and SVC_HANDLER. The PEER_ACCEPTOR is - * instantiated with a transport mechanism that passively - * establishes connections. The SVC_HANDLER is instantiated - * with a concrete type that performs the application-specific - * service. An ACE_Acceptor inherits from ACE_Service_Object, - * which in turn inherits from ACE_Event_Handler. This enables - * the ACE_Reactor to dispatch the ACE_Acceptor's handle_input - * method when connection events occur. The handle_input method - * performs the ACE_Acceptor's default creation, connection - * establishment, and service activation strategies. These - * strategies can be overridden by subclasses individually or as - * a group. - */ -template -class ACE_Acceptor : public ACE_Service_Object -{ -public: - - // Useful STL-style traits. - typedef ACE_PEER_ACCEPTOR_ADDR addr_type; - typedef ACE_PEER_ACCEPTOR acceptor_type; - typedef SVC_HANDLER handler_type; - typedef typename SVC_HANDLER::stream_type stream_type; - - /// "Do-nothing" constructor. - ACE_Acceptor (ACE_Reactor * = 0, - int use_select = 1); - - /** - * Open the contained @c PEER_ACCEPTOR object to begin listening, and - * register with the specified reactor for accept events. An - * acceptor can only listen to one port at a time, so make sure to - * @c close() the acceptor before calling @c open() again. - * - * The @c PEER_ACCEPTOR handle is put into non-blocking mode as a - * safeguard against the race condition that can otherwise occur - * between the time when the passive-mode socket handle is "ready" - * and when the actual @c accept() call is made. During this - * interval, the client can shutdown the connection, in which case, - * the @c accept() call can hang. - * - * @param local_addr The address to listen at. - * @param reactor Pointer to the ACE_Reactor instance to register - * this object with. The default is the singleton. - * @param flags Flags to control what mode an accepted socket - * will be put into after it is accepted. The only - * legal value for this argument is @c ACE_NONBLOCK, - * which enables non-blocking mode on the accepted - * peer stream object in @c SVC_HANDLER. The default - * is 0. - * @param use_select Affects behavior when called back by the reactor - * when a connection can be accepted. If non-zero, - * this object will accept all pending connections, - * intead of just the one that triggered the reactor - * callback. Uses ACE_OS::select() internally to - * detect any remaining acceptable connections. - * The default is 1. - * @param reuse_addr Passed to the @c PEER_ACCEPTOR::open() method with - * @p local_addr. Generally used to request that the - * OS allow reuse of the listen port. The default is 1. - */ - ACE_Acceptor (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor *reactor = ACE_Reactor::instance (), - int flags = 0, - int use_select = 1, - int reuse_addr = 1); - - /** - * Open the contained @c PEER_ACCEPTOR object to begin listening, and - * register with the specified reactor for accept events. An - * acceptor can only listen to one port at a time, so make sure to - * @c close() the acceptor before calling @c open() again. - * - * The @c PEER_ACCEPTOR handle is put into non-blocking mode as a - * safeguard against the race condition that can otherwise occur - * between the time when the passive-mode socket handle is "ready" - * and when the actual @c accept() call is made. During this - * interval, the client can shutdown the connection, in which case, - * the @c accept() call can hang. - * - * @param local_addr The address to listen at. - * @param reactor Pointer to the ACE_Reactor instance to register - * this object with. The default is the singleton. - * @param flags Flags to control what mode an accepted socket - * will be put into after it is accepted. The only - * legal value for this argument is @c ACE_NONBLOCK, - * which enables non-blocking mode on the accepted - * peer stream object in @c SVC_HANDLER. The default - * is 0. - * @param use_select Affects behavior when called back by the reactor - * when a connection can be accepted. If non-zero, - * this object will accept all pending connections, - * intead of just the one that triggered the reactor - * callback. Uses ACE_OS::select() internally to - * detect any remaining acceptable connections. - * The default is 1. - * @param reuse_addr Passed to the @c PEER_ACCEPTOR::open() method with - * @p local_addr. Generally used to request that the - * OS allow reuse of the listen port. The default is 1. - * - * @retval 0 Success - * @retval -1 Failure, @c errno contains an error code. - */ - virtual int open (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor *reactor = ACE_Reactor::instance (), - int flags = 0, - int use_select = 1, - int reuse_addr = 1); - - /// Close down the Acceptor's resources. - virtual ~ACE_Acceptor (void); - - /// Return the underlying PEER_ACCEPTOR object. - virtual operator ACE_PEER_ACCEPTOR &() const; - - /// Return the underlying PEER_ACCEPTOR object. - virtual ACE_PEER_ACCEPTOR &acceptor (void) const; - - /// Returns the listening acceptor's {ACE_HANDLE}. - virtual ACE_HANDLE get_handle (void) const; - - /// Close down the Acceptor - virtual int close (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - // = The following three methods define the Acceptor's strategies - // for creating, accepting, and activating SVC_HANDLER's, - // respectively. - - /** - * Bridge method for creating a SVC_HANDLER. The default is to - * create a new {SVC_HANDLER} if {sh} == 0, else {sh} is unchanged. - * However, subclasses can override this policy to perform - * SVC_HANDLER creation in any way that they like (such as creating - * subclass instances of SVC_HANDLER, using a singleton, dynamically - * linking the handler, etc.). Returns -1 on failure, else 0. - */ - virtual int make_svc_handler (SVC_HANDLER *&sh); - - /** - * Bridge method for accepting the new connection into the - * . The default behavior delegates to the - * PEER_ACCEPTOR::accept. - */ - virtual int accept_svc_handler (SVC_HANDLER *svc_handler); - - /** - * Bridge method for activating 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 - * 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 - * SVC_HANDLER as an "active object" via multi-threading or - * multi-processing). - */ - virtual int activate_svc_handler (SVC_HANDLER *svc_handler); - - // = Demultiplexing hooks. - /// Perform termination activities when {this} is removed from the - /// {reactor}. - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); - - /// Accepts all pending connections from clients, and creates and - /// activates SVC_HANDLERs. - virtual int handle_input (ACE_HANDLE); - - // = Dynamic linking hooks. - /// Default version does no work and returns -1. Must be overloaded - /// by application developer to do anything meaningful. - virtual int init (int argc, ACE_TCHAR *argv[]); - - /// Calls {handle_close}. - virtual int fini (void); - - /// Default version returns address info in {buf}. - virtual int info (ACE_TCHAR **buf, size_t) const; - -public: - // = Service management hooks. - /// This method calls {Reactor::suspend}. - virtual int suspend (void); - - /// This method calls {Reactor::resume}. - virtual int resume (void); - -protected: - /// Concrete factory for accepting connections from clients... - ACE_PEER_ACCEPTOR peer_acceptor_; - - /// Needed to reopen the socket if {accept} fails. - ACE_PEER_ACCEPTOR_ADDR peer_acceptor_addr_; - - /** - * Flags that indicate 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. - */ - int flags_; - - /// Flag that indicates whether it shall use {select} in the - /// {accept}-loop. - int use_select_; - - /// Needed to reopen the socket if {accept} fails. - int reuse_addr_; -}; - -/** - * @class ACE_Strategy_Acceptor - * - * @brief Abstract factory for creating a service handler - * (SVC_HANDLER), accepting into the SVC_HANDLER, and activating - * the SVC_HANDLER. - * - * Implements a flexible and extensible set of strategies for - * passively establishing connections with clients. There are - * three main strategies: (1) creating a SVC_HANDLER, (2) - * passively accepting a new connection from a client into the - * SVC_HANDLER, and (3) activating the SVC_HANDLER with a - * particular concurrency mechanism. - */ -template -class ACE_Strategy_Acceptor - : public ACE_Acceptor -{ -public: - - // Useful STL-style traits. - typedef ACE_Creation_Strategy - creation_strategy_type; - typedef ACE_Accept_Strategy - accept_strategy_type; - typedef ACE_Concurrency_Strategy - concurrency_strategy_type; - typedef ACE_Scheduling_Strategy scheduling_strategy_type; - typedef ACE_Acceptor - base_type; - - // = Define some useful (old style) traits. - typedef ACE_Creation_Strategy CREATION_STRATEGY; - typedef ACE_Accept_Strategy ACCEPT_STRATEGY; - typedef ACE_Concurrency_Strategy CONCURRENCY_STRATEGY; - typedef ACE_Scheduling_Strategy SCHEDULING_STRATEGY; - - - - /// Default constructor. - ACE_Strategy_Acceptor (const ACE_TCHAR service_name[] = 0, - const ACE_TCHAR service_description[] = 0, - int use_select = 1, - int reuse_addr = 1); - - /** - * Initialize the appropriate strategies for creation, passive - * connection acceptance, and concurrency, and then register {this} - * with the Reactor and listen for connection requests at the - * designated {local_addr}. - */ - ACE_Strategy_Acceptor (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor * = ACE_Reactor::instance (), - ACE_Creation_Strategy * = 0, - ACE_Accept_Strategy * = 0, - ACE_Concurrency_Strategy * = 0, - ACE_Scheduling_Strategy * = 0, - const ACE_TCHAR service_name[] = 0, - const ACE_TCHAR service_description[] = 0, - int use_select = 1, - int reuse_addr = 1); - - /** - * Open the contained @c PEER_ACCEPTOR object to begin listening, and - * register with the specified reactor for accept events. - * - * The @c PEER_ACCEPTOR handle is put into non-blocking mode as a - * safeguard against the race condition that can otherwise occur - * between the time when the passive-mode socket handle is "ready" - * and when the actual @c accept call is made. During this - * interval, the client can shutdown the connection, in which case, - * the {accept} call can hang. - * - * @param local_addr The address to listen at. - * @param reactor Pointer to the ACE_Reactor instance to register - * this object with. The default is the singleton. - * @param flags Flags to control what mode an accepted socket - * will be put into after it is accepted. The only - * legal value for this argument is @c ACE_NONBLOCK, - * which enables non-blocking mode on the accepted - * peer stream object in @c SVC_HANDLER. The default - * is 0. - * @param use_select Affects behavior when called back by the reactor - * when a connection can be accepted. If non-zero, - * this object will accept all pending connections, - * intead of just the one that triggered the reactor - * callback. Uses ACE_OS::select() internally to - * detect any remaining acceptable connections. - * The default is 1. - * @param reuse_addr Passed to the @c PEER_ACCEPTOR::open() method with - * @p local_addr. Generally used to request that the - * OS allow reuse of the listen port. The default is 1. - * - * @retval 0 Success - * @retval -1 Failure, @c errno contains an error code. - */ - virtual int open (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor *reactor, - int flags = 0, - int use_select = 1, - int reuse_addr = 1); - - /** - * Initialize the appropriate strategies for creation, passive - * connection acceptance, and concurrency, and then register {this} - * with the Reactor and listen for connection requests at the - * designated {local_addr}. - */ - virtual int open (const ACE_PEER_ACCEPTOR_ADDR &, - ACE_Reactor * = ACE_Reactor::instance (), - ACE_Creation_Strategy * = 0, - ACE_Accept_Strategy * =0, - ACE_Concurrency_Strategy * = 0, - ACE_Scheduling_Strategy * = 0, - const ACE_TCHAR *service_name = 0, - const ACE_TCHAR *service_description = 0, - int use_select = 1, - int reuse_addr = 1); - - /// Close down the Strategy_Acceptor's resources. - virtual ~ACE_Strategy_Acceptor (void); - - /// Return the underlying PEER_ACCEPTOR object. - virtual operator ACE_PEER_ACCEPTOR &() const; - - /// Return the underlying PEER_ACCEPTOR object. - virtual ACE_PEER_ACCEPTOR &acceptor (void) const; - - /// Returns the listening acceptor's {ACE_HANDLE}. - virtual ACE_HANDLE get_handle (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - // = Service management hooks. - - /// This method delegates to the {Scheduling_Strategy}'s {suspend} - /// method. - virtual int suspend (void); - - /// This method delegates to the {Scheduling_Strategy}'s {resume} - /// method. - virtual int resume (void); - -protected: - - /// Calls {handle_close} when dynamically unlinked. - virtual int fini (void); - - /// Default version returns address info in {buf}. - virtual int info (ACE_TCHAR **buf, size_t) const; - - // = The following three methods define the {Acceptor}'s strategies - // for creating, accepting, and activating {SVC_HANDLER}'s, - // respectively. - - /** - * Bridge method for creating a {SVC_HANDLER}. The strategy for - * creating a {SVC_HANDLER} are configured into the Acceptor via - * it's {creation_strategy_}. The default is to create a new - * {SVC_HANDLER} if {sh} == 0, else {sh} is unchanged. However, - * subclasses can override this policy to perform {SVC_HANDLER} - * creation in any way that they like (such as creating subclass - * instances of {SVC_HANDLER}, using a singleton, dynamically - * linking the handler, etc.). Returns -1 on failure, else 0. - */ - virtual int make_svc_handler (SVC_HANDLER *&); - - /** - * Bridge method for accepting the new connection into the - * {SVC_HANDLER}. The default behavior delegates to the - * {PEER_ACCEPTOR::accept} in the {Acceptor_Strategy}. - */ - virtual int accept_svc_handler (SVC_HANDLER *svc_handler); - - /** - * Bridge method for activating 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 - * allows the {SVC_HANDLER} to define its own concurrency strategy). - * However, subclasses can override this strategy to do more - * sophisticated concurrency activations (such as creating the - * {SVC_HANDLER} as an "active object" via multi-threading or - * multi-processing). - */ - virtual int activate_svc_handler (SVC_HANDLER *svc_handler); - - // = Demultiplexing hooks. - /// Perform termination activities when {this} is removed from the - /// {Reactor}. - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); - - /// Handle SIGINT. - virtual int handle_signal (int signum, siginfo_t *, ucontext_t *); - - // = These data members are "logically private" but are put in the - // protected part in case subclasses want to access them. - - // = Strategy objects. - - /// Creation strategy for an Acceptor. - CREATION_STRATEGY *creation_strategy_; - - /// true if {Acceptor} created the creation strategy and thus should - /// delete it, else false. - bool delete_creation_strategy_; - - /// Accept strategy for an {Acceptor}. - ACCEPT_STRATEGY *accept_strategy_; - - /// true if {Acceptor} created the accept strategy and thus should delete - /// it, else false. - bool delete_accept_strategy_; - - /// Concurrency strategy for an {Acceptor}. - CONCURRENCY_STRATEGY *concurrency_strategy_; - - /// true if {Acceptor} created the concurrency strategy and thus should - /// delete it, else false. - bool delete_concurrency_strategy_; - - /// Scheduling strategy for an {Acceptor}. - SCHEDULING_STRATEGY *scheduling_strategy_; - - /// true if {Acceptor} created the scheduling strategy and thus should - /// delete it, else false. - bool delete_scheduling_strategy_; - - // = Service information objects. - - /// Name of the service. - ACE_TCHAR *service_name_; - - /// Description of the service. - ACE_TCHAR *service_description_; - - /// Address that the {Strategy_Acceptor} uses to listen for - /// connections. - ACE_PEER_ACCEPTOR_ADDR service_addr_; -}; - -/** - * @class ACE_Oneshot_Acceptor - * - * @brief Generic factory for passively connecting clients and creating - * exactly one service handler (SVC_HANDLER). - * - * This class works similarly to the regular {ACE_Acceptor}, - * 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). - */ -template -class ACE_Oneshot_Acceptor : public ACE_Service_Object -{ -public: - - // Useful STL-style traits. - typedef ACE_PEER_ACCEPTOR_ADDR addr_type; - typedef ACE_PEER_ACCEPTOR acceptor_type; - typedef SVC_HANDLER handler_type; - typedef typename SVC_HANDLER::stream_type stream_type; - - /// Constructor. - ACE_Oneshot_Acceptor (void); - - /** - * 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 - * needed later. - */ - ACE_Oneshot_Acceptor (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor *reactor = ACE_Reactor::instance (), - ACE_Concurrency_Strategy * = 0); - - /** - * 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 - * needed later. - */ - int open (const ACE_PEER_ACCEPTOR_ADDR &, - ACE_Reactor *reactor = ACE_Reactor::instance (), - ACE_Concurrency_Strategy * = 0); - - /// Close down the {Oneshot_Acceptor}. - virtual ~ACE_Oneshot_Acceptor (void); - - // = Explicit factory operation. - /// Create a {SVC_HANDLER}, accept the connection into the - /// {SVC_HANDLER}, and activate the {SVC_HANDLER}. - virtual int accept (SVC_HANDLER * = 0, - ACE_PEER_ACCEPTOR_ADDR *remote_addr = 0, - const ACE_Synch_Options &synch_options = ACE_Synch_Options::defaults, - int restart = 1, - int reset_new_handle = 0); - - /// Cancel a oneshot acceptor that was started asynchronously. - virtual int cancel (void); - - /// Return the underlying {PEER_ACCEPTOR} object. - virtual operator ACE_PEER_ACCEPTOR &() const; - - /// Return the underlying {PEER_ACCEPTOR} object. - virtual ACE_PEER_ACCEPTOR &acceptor (void) const; - - /// Close down the {Oneshot_Acceptor}. - virtual int close (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /** - * Bridge method for activating a {svc_handler} with the appropriate - * concurrency strategy. Default behavior is to activate the - * {SVC_HANDLER} as a "passive object." However, subclasses can - * override this strategy to do more sophisticated concurrency - * activations (such as creating the {SVC_HANDLER} as an "active - * object" via multi-threading or multi-processing). - */ - virtual int activate_svc_handler (SVC_HANDLER *svc_handler); - - /// Factors out the code shared between the {accept} and - /// {handle_input} methods. - int shared_accept (SVC_HANDLER *svc_handler, - ACE_PEER_ACCEPTOR_ADDR *remote_addr, - ACE_Time_Value *timeout, - int restart, - int reset_new_handle); - - // = Demultiplexing hooks. - /// Returns the listening acceptor's {ACE_HANDLE}. - virtual ACE_HANDLE get_handle (void) const; - - /// Perform termination activities when {this} is removed from the - /// {reactor}. - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); - - /// Accept one connection from a client and activates the - /// SVC_HANDLER. - virtual int handle_input (ACE_HANDLE); - - /// Called when an acceptor times out... - virtual int handle_timeout (const ACE_Time_Value &tv, - const void *arg); - - // = Dynamic linking hooks. - /// Default version does no work and returns -1. Must be overloaded - /// by application developer to do anything meaningful. - virtual int init (int argc, ACE_TCHAR *argv[]); - - /// Default version does no work and returns -1. Must be overloaded - /// by application developer to do anything meaningful. - virtual int fini (void); - - /// Default version returns address info in {buf}. - virtual int info (ACE_TCHAR **, size_t) const; - - // = Service management hooks. - /// Default version does no work and returns -1. Must be overloaded - /// by application developer to do anything meaningful. - virtual int suspend (void); - - /// Default version does no work and returns -1. Must be overloaded - /// by application developer to do anything meaningful. - virtual int resume (void); - -private: - /** - * Insert ourselves into the {ACE_Reactor} so that we can continue - * accepting this connection asynchronously. This method should NOT - * be called by developers directly. - */ - int register_handler (SVC_HANDLER *svc_handler, - const ACE_Synch_Options &options, - int restart); - - /// Hold the svc_handler_ across asynchrony boundaries. - SVC_HANDLER *svc_handler_; - - /// Hold the restart flag across asynchrony boundaries. - int restart_; - - /// Factory that establishes connections passively. - ACE_PEER_ACCEPTOR peer_acceptor_; - - /// Concurrency strategy for an Acceptor. - ACE_Concurrency_Strategy *concurrency_strategy_; - - /// true if Acceptor created the concurrency strategy and thus should - /// delete it, else false. - bool delete_concurrency_strategy_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Acceptor.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Acceptor.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ACCEPTOR_H */ diff --git a/ACE/ace/Activation_Queue.cpp b/ACE/ace/Activation_Queue.cpp deleted file mode 100644 index aef17d05e7a..00000000000 --- a/ACE/ace/Activation_Queue.cpp +++ /dev/null @@ -1,138 +0,0 @@ -#include "ace/Activation_Queue.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Activation_Queue.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Log_Msg.h" -#include "ace/Method_Request.h" -#include "ace/Malloc_Base.h" -#include "ace/Time_Value.h" - -ACE_RCSID (ace, - Activation_Queue, - "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -void -ACE_Activation_Queue::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("delete_queue_ = %d\n"), - this->delete_queue_)); - ACE_DEBUG ((LM_INFO, ACE_TEXT ("queue_: \n"))); - if (this->queue_) - this->queue_->dump(); - else - //FUZZ: disable check_for_NULL - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(NULL)\n"))); - //FUZZ: enable check_for_NULL - - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Activation_Queue::ACE_Activation_Queue (ACE_Message_Queue *new_queue, - ACE_Allocator *alloc, - ACE_Allocator *db_alloc) - : delete_queue_ (false) - , allocator_(alloc) - , data_block_allocator_(db_alloc) -{ - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); - - if (new_queue) - this->queue_ = new_queue; - else - { - ACE_NEW (this->queue_, - ACE_Message_Queue); - this->delete_queue_ = true; - } -} - -void -ACE_Activation_Queue::queue (ACE_Message_Queue *q) -{ - // Destroy the internal queue if one exist. - if (this->delete_queue_) - { - // Destroy the current queue. - delete this->queue_; - - // Set the flag to false. NOTE that the delete_queue_ flag is a - // flag used to only indicate whether or not if an internal - // ACE_Message_Queue has been created, therefore, it will not - // affect the user if the user decided to replace the queue with - // their own queue no matter how many time they call on this - // function. - this->delete_queue_ = false; - } - - queue_ = q; -} - -ACE_Activation_Queue::~ACE_Activation_Queue (void) -{ - if (this->delete_queue_) - delete this->queue_; -} - -ACE_Method_Request * -ACE_Activation_Queue::dequeue (ACE_Time_Value *tv) -{ - ACE_Message_Block *mb = 0; - - // Dequeue the message. - if (this->queue_->dequeue_head (mb, tv) != -1) - { - // Get the next . - ACE_Method_Request *mr = - reinterpret_cast (mb->base ()); - // Delete the message block. - mb->release (); - return mr; - } - else - return 0; -} - -int -ACE_Activation_Queue::enqueue (ACE_Method_Request *mr, - ACE_Time_Value *tv) -{ - ACE_Message_Block *mb = 0; - - // We pass sizeof (*mr) here so that flow control will work - // correctly. Since we also pass note that no unnecessary - // memory is actually allocated -- just the size field is set. - ACE_NEW_MALLOC_RETURN (mb, - static_cast (this->allocator_->malloc (sizeof (ACE_Message_Block))), - ACE_Message_Block (sizeof (*mr), // size - ACE_Message_Block::MB_DATA, // type - 0, // cont - (char *) mr, // data - 0, // allocator - 0, // locking strategy - mr->priority (), // priority - ACE_Time_Value::zero, // execution time - ACE_Time_Value::max_time, // absolute time of deadline - this->data_block_allocator_, // data_block allocator - this->allocator_), // message_block allocator - -1); - - // Enqueue in priority order. - int const result = this->queue_->enqueue_prio (mb, tv); - - // Free ACE_Message_Block if enqueue_prio failed. - if (result == -1) - ACE_DES_FREE (mb, this->allocator_->free, ACE_Message_Block); - - return result; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Activation_Queue.h b/ACE/ace/Activation_Queue.h deleted file mode 100644 index 87fffc0f73d..00000000000 --- a/ACE/ace/Activation_Queue.h +++ /dev/null @@ -1,173 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Activation_Queue.h - * - * $Id$ - * - * @author Andres Kruse - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_ACTIVATION_QUEUE_H -#define ACE_ACTIVATION_QUEUE_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/Message_Queue.h" -#include "ace/Condition_Thread_Mutex.h" - -/// Define to be compatible with the terminology in the POSA2 book! -#define ACE_Activation_List ACE_Activation_Queue - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Method_Request; - -/** - * @class ACE_Activation_Queue - * - * @brief Reifies a method into a request. Subclasses typically - * represent necessary state and behavior. - * - * Maintains a priority-ordered queue of ACE_Method_Request objects. - * A scheduler class (often derived from ACE_Task) subsequently removes - * each method request and invokes its @c call() method. - * - * This class is discussed in depth in the Active Object chapter - * of POSA2. In that book, it is referred to as an Activation List. - * - * @sa ACE_Method_Request - */ -class ACE_Export ACE_Activation_Queue -{ -public: - // = Initialization and termination methods. - /// Constructor. - /** - * Initializes a new activation queue. - * - * @param new_queue The activation queue uses an ACE_Message_Queue to - * queue and order the method requests. If this argument - * is 0, a new ACE_Message_Queue is created for this - * object's use and will be deleted when this object is - * destroyed. If a non-zero pointer is supplied, the - * passed object will be used and will not be deleted when - * this object is destroyed. If an ACE_Task is being created - * to act as the scheduler, for instance, its - * ACE_Message_Queue pointer can be passed to this object. - * @param alloc Optional, the allocator to use when allocating - * ACE_Message_Block instances that wrap the method requests - * queued to this activation queue. Defaults to - * ACE_Allocator::instance(). - * @param db_alloc Optional, the allocator to use when allocating - * data blocks for the ACE_Message_Block instances that - * wrap the method requests queued to this activation queue. - * Defaults to ACE_Allocator::instance(). - */ - ACE_Activation_Queue (ACE_Message_Queue *new_queue = 0, - ACE_Allocator *alloc = 0, - ACE_Allocator *db_alloc = 0); - - /// Destructor. - virtual ~ACE_Activation_Queue (void); - - // = Activate Queue operations. - - /// Dequeue the next available ACE_Method_Request. - /** - * @param tv If 0, the method will block until a method request is - * available, else will wait until the absolute time specified - * in the referenced ACE_Time_Value. This method will return, - * earlier, however, if queue is closed, deactivated, or when - * a signal occurs. - * - * @retval Pointer to the dequeued ACE_Method_Request object. - * @retval 0 an error occurs; errno contains further information. If - * the specified timeout elapses, errno will be @c EWOULDBLOCK. - */ - ACE_Method_Request *dequeue (ACE_Time_Value *tv = 0); - - /// Enqueue the ACE_Method_Request in priority order. - /** - * The priority of the method request is obtained via the @c priority() - * method of the queued method request. Priority ordering is determined - * by the ACE_Message_Queue class; 0 is the lowest priority. - * - * @param new_method_request Pointer to the ACE_Method_Request object to - * queue. This object's @c priority() method is called to obtain - * the priority. - * @param tv If 0, the method will block until the method request can - * be queued, else will wait until the absolute time specified - * in the referenced ACE_Time_Value. This method will return, - * earlier, however, if queue is closed, deactivated, or when - * a signal occurs. - * - * @retval >0 The number of method requests on the queue after adding - * the specified request. - * @retval -1 if an error occurs; errno contains further information. If - * the specified timeout elapses, errno will be @c EWOULDBLOCK. - */ - int enqueue (ACE_Method_Request *new_method_request, ACE_Time_Value *tv = 0); - - /// Get the current number of method objects in the queue. - size_t method_count (void) const; - - /// Returns 1 if the queue is empty, 0 otherwise. - int is_empty (void) const; - - /// Returns 1 if the queue is full, 0 otherwise. - int is_full (void) const; - - /// Dump the state of an request. - void dump (void) const; - - /// Get a pointer to the underlying queue. - ACE_Message_Queue *queue (void) const; - - /// Set the pointer to the underlying queue. - void queue (ACE_Message_Queue *q); - - /// 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. - ACE_Message_Queue *queue_; - - /// Keeps track of whether we need to delete the queue. - bool delete_queue_; - -private: - - /// Allocation strategy of the queue. - ACE_Allocator *allocator_; - - /// Allocation strategy of the message blocks. - ACE_Allocator *data_block_allocator_; - -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Activation_Queue.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_ACTIVATION_QUEUE_H */ diff --git a/ACE/ace/Activation_Queue.inl b/ACE/ace/Activation_Queue.inl deleted file mode 100644 index 50127f607d1..00000000000 --- a/ACE/ace/Activation_Queue.inl +++ /dev/null @@ -1,31 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE size_t -ACE_Activation_Queue::method_count (void) const -{ - return queue_->message_count (); -} - -ACE_INLINE int -ACE_Activation_Queue::is_full (void) const -{ - return queue_->is_full (); -} - -ACE_INLINE int -ACE_Activation_Queue::is_empty (void) const -{ - return queue_->is_empty (); -} - -ACE_INLINE ACE_Message_Queue * -ACE_Activation_Queue::queue (void) const -{ - return queue_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Active_Map_Manager.cpp b/ACE/ace/Active_Map_Manager.cpp deleted file mode 100644 index 6f4b66191c7..00000000000 --- a/ACE/ace/Active_Map_Manager.cpp +++ /dev/null @@ -1,9 +0,0 @@ -// $Id$ - -#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 deleted file mode 100644 index 1281302fdf8..00000000000 --- a/ACE/ace/Active_Map_Manager.h +++ /dev/null @@ -1,116 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Active_Map_Manager.h - * - * $Id$ - * - * @author Irfan Pyarali - */ -//============================================================================= - - -#ifndef ACE_ACTIVE_MAP_MANAGER_H -#define ACE_ACTIVE_MAP_MANAGER_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/Basic_Types.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Active_Map_Manager_Key - * - * @brief Key used in the Active Object Map. - * - * This key keeps information of the index and the generation - * count of the slot it represents. Since the index information - * is part of the key, lookups are super fast and predictable, - */ -class ACE_Export ACE_Active_Map_Manager_Key -{ -public: - /// Default constructor. - ACE_Active_Map_Manager_Key (void); - - /** - * Constructor given the @a slot_index and @a slot_generation number. - * This is useful once the user has somehow recovered the - * @a slot_index and @a slot_generation number from the client. - */ - ACE_Active_Map_Manager_Key (ACE_UINT32 slot_index, - ACE_UINT32 slot_generation); - - /// Get the slot_index. - ACE_UINT32 slot_index (void) const; - - /// Set the slot_index. - void slot_index (ACE_UINT32 i); - - /// Get the slot_generation number. - ACE_UINT32 slot_generation (void) const; - - /// Set the slot_generation number. - void slot_generation (ACE_UINT32 g); - - /// Size required to store information about active key. - static size_t size (void); - - /// Recover state of active key from @a data. User must make sure - /// that @a data encoded using the encode() method. - 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 . - void encode (void *data) const; - - /// Compare keys. - bool operator== (const ACE_Active_Map_Manager_Key &rhs) const; - bool operator!= (const ACE_Active_Map_Manager_Key &rhs) const; - - // = This really should be protected but because of template - // friends, they are not. - - /// Increment the number. - void increment_slot_generation_count (void); - -private: - - /** - * @brief Data for the Active Object Map Key. - * - * This separate structure makes it easier to manage copying - * the index and the generation to and from the user buffer. - * - */ - struct key_data - { - /// Slot index in the active map. - ACE_UINT32 slot_index_; - - /// Slot generation number of slot in the active map. - ACE_UINT32 slot_generation_; - }; - - /// Data for the Active Object Map Key. - key_data key_data_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Active_Map_Manager.inl" -#endif /* __ACE_INLINE__ */ - -// Include the templates here. -#include "ace/Active_Map_Manager_T.h" - -#include /**/ "ace/post.h" -#endif /* ACE_ACTIVE_MAP_MANAGER_H */ diff --git a/ACE/ace/Active_Map_Manager.inl b/ACE/ace/Active_Map_Manager.inl deleted file mode 100644 index 652cf7c1f71..00000000000 --- a/ACE/ace/Active_Map_Manager.inl +++ /dev/null @@ -1,95 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_string.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Active_Map_Manager_Key::ACE_Active_Map_Manager_Key (void) -{ - // If you change ~0, please change ACE_Map_Manager::free_list_id() - // accordingly. - this->key_data_.slot_index_ = (ACE_UINT32) ~0; - this->key_data_.slot_generation_ = 0; -} - -ACE_INLINE -ACE_Active_Map_Manager_Key::ACE_Active_Map_Manager_Key (ACE_UINT32 slot_index, - ACE_UINT32 slot_generation) -{ - this->key_data_.slot_index_ = slot_index; - this->key_data_.slot_generation_ = slot_generation; -} - -ACE_INLINE ACE_UINT32 -ACE_Active_Map_Manager_Key::slot_index (void) const -{ - return this->key_data_.slot_index_; -} - -ACE_INLINE ACE_UINT32 -ACE_Active_Map_Manager_Key::slot_generation (void) const -{ - return this->key_data_.slot_generation_; -} - -ACE_INLINE bool -ACE_Active_Map_Manager_Key::operator== (const ACE_Active_Map_Manager_Key &rhs) const -{ - return - this->key_data_.slot_index_ == rhs.key_data_.slot_index_ && - this->key_data_.slot_generation_ == rhs.key_data_.slot_generation_; -} - -ACE_INLINE bool -ACE_Active_Map_Manager_Key::operator!= (const ACE_Active_Map_Manager_Key &rhs) const -{ - return !this->operator== (rhs); -} - -ACE_INLINE void -ACE_Active_Map_Manager_Key::slot_index (ACE_UINT32 i) -{ - this->key_data_.slot_index_ = i; -} - -ACE_INLINE void -ACE_Active_Map_Manager_Key::slot_generation (ACE_UINT32 g) -{ - this->key_data_.slot_generation_ = g; -} - -ACE_INLINE void -ACE_Active_Map_Manager_Key::increment_slot_generation_count (void) -{ - ++this->key_data_.slot_generation_; -} - -/* static */ -ACE_INLINE size_t -ACE_Active_Map_Manager_Key::size (void) -{ - return sizeof (ACE_UINT32) + sizeof (ACE_UINT32); -} - -ACE_INLINE void -ACE_Active_Map_Manager_Key::decode (const void *data) -{ - // Copy the information from the user buffer into the key. - ACE_OS::memcpy (&this->key_data_, - data, - sizeof this->key_data_); -} - -ACE_INLINE void -ACE_Active_Map_Manager_Key::encode (void *data) const -{ - // Copy the key data to the user buffer. - ACE_OS::memcpy (data, - &this->key_data_, - sizeof this->key_data_); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Active_Map_Manager_T.cpp b/ACE/ace/Active_Map_Manager_T.cpp deleted file mode 100644 index b8cd14446ac..00000000000 --- a/ACE/ace/Active_Map_Manager_T.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// $Id$ - -#ifndef ACE_ACTIVE_MAP_MANAGER_T_CPP -#define ACE_ACTIVE_MAP_MANAGER_T_CPP - -#include "ace/Active_Map_Manager_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -#include "ace/Active_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Active_Map_Manager) - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_ACTIVE_MAP_MANAGER_T_CPP */ diff --git a/ACE/ace/Active_Map_Manager_T.h b/ACE/ace/Active_Map_Manager_T.h deleted file mode 100644 index 34b5a475652..00000000000 --- a/ACE/ace/Active_Map_Manager_T.h +++ /dev/null @@ -1,211 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Active_Map_Manager_T.h - * - * $Id$ - * - * @author Irfan Pyarali - */ -//============================================================================= - - -#ifndef ACE_ACTIVE_MAP_MANAGER_T_H -#define ACE_ACTIVE_MAP_MANAGER_T_H -#include /**/ "ace/pre.h" - -#include "ace/Map_Manager.h" -#include "ace/Active_Map_Manager.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Null_Mutex.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Active_Map_Manager - * - * @brief Define a map abstraction that associates system generated - * keys with user specified values. - * - * Since the key is system generated, searches are very fast and - * take a constant amount of time. - */ -template -class ACE_Active_Map_Manager : public ACE_Map_Manager -{ -public: - - // = Traits. - typedef ACE_Active_Map_Manager_Key key_type; - typedef T mapped_type; - - typedef ACE_Map_Entry ENTRY; - typedef ACE_Map_Iterator ITERATOR; - typedef ACE_Map_Reverse_Iterator REVERSE_ITERATOR; - - typedef ENTRY entry; - typedef ITERATOR iterator; - typedef REVERSE_ITERATOR reverse_iterator; - - // = Initialization and termination methods. - /// Initialize a with the ACE_DEFAULT_MAP_SIZE. - ACE_Active_Map_Manager (ACE_Allocator *alloc = 0); - - /// Initialize a with @a size entries. - ACE_Active_Map_Manager (size_t size, - ACE_Allocator *alloc = 0); - - /// Close down a and release dynamically - /// allocated resources. - ~ACE_Active_Map_Manager (void); - - /// Initialize a with size @a length. - int open (size_t length = ACE_DEFAULT_MAP_SIZE, - ACE_Allocator *alloc = 0); - - /// Close down a and release dynamically - /// allocated resources. - int close (void); - - /// Add @a value to the map, and the corresponding key produced by the - /// Active_Map_Manager is returned through @a key. - int bind (const T &value, - ACE_Active_Map_Manager_Key &key); - - /// Add @a value to the map. The user does not care about the - /// corresponding key produced by the Active_Map_Manager. - int bind (const T &value); - - /** - * Reserves a slot in the internal structure and returns the key and - * a pointer to the value. User should place their @a value into - * <*internal_value>. This method is useful in reducing the number - * of copies required in some cases. Note that is - * only a temporary pointer and will change when the map resizes. - * Therefore, the user should use the pointer immediately and not - * hold on to it. - */ - int bind (ACE_Active_Map_Manager_Key &key, - T *&internal_value); - - /// Reassociate @a key with @a value. The function fails if @a key is - /// not in the map. - int rebind (const ACE_Active_Map_Manager_Key &key, - const T &value); - - /** - * Reassociate @a key with @a value, storing the old value into the - * "out" parameter @a old_value. The function fails if @a key is not - * in the map. - */ - int rebind (const ACE_Active_Map_Manager_Key &key, - const T &value, - T &old_value); - - /** - * Reassociate @a key with @a value, storing the old key and value - * into the "out" parameter @a old_key and @a old_value. The function - * fails if @a key is not in the map. - */ - int rebind (const ACE_Active_Map_Manager_Key &key, - const T &value, - ACE_Active_Map_Manager_Key &old_key, - T &old_value); - - /// Locate @a value associated with @a key. - int find (const ACE_Active_Map_Manager_Key &key, - T &value) const; - - /// Is @a key in the map? - int find (const ACE_Active_Map_Manager_Key &key) const; - - /** - * Locate @a value associated with @a key. The value is returned via - * and hence a copy is saved. Note that - * is only a temporary pointer and will change when - * the map resizes. Therefore, the user should use the pointer - * immediately and not hold on to it. - */ - int find (const ACE_Active_Map_Manager_Key &key, - T *&internal_value) const; - - // Creates a key. User should place their @a value into - // <*internal_value>. This method is useful in reducing the number - // of copies required in some cases. - - /// Remove @a key from the map. - int unbind (const ACE_Active_Map_Manager_Key &key); - - /// Remove @a key from the map, and return the @a value associated with - /// @a key. - int unbind (const ACE_Active_Map_Manager_Key &key, - T &value); - - /** - * Locate @a value associated with @a key. The value is returned via - * and hence a copy is saved. Note that - * is only a temporary pointer and will change when - * the map resizes or when this slot is reused. Therefore, the user - * should use the pointer immediately and not hold on to it. - */ - int unbind (const ACE_Active_Map_Manager_Key &key, - T *&internal_value); - - /// Return the current size of the map. - size_t current_size (void) const; - - /// Return the total size of the map. - size_t total_size (void) const; - - /// Returns a key that cannot be found in the map. - static const ACE_Active_Map_Manager_Key npos (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iterator factory functions. - - /// Return forward iterator. - ACE_Map_Iterator begin (void); - ACE_Map_Iterator end (void); - - /// Return reverse iterator. - ACE_Map_Reverse_Iterator rbegin (void); - ACE_Map_Reverse_Iterator rend (void); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - - /// Private base class - typedef ACE_Map_Manager ACE_AMM_BASE; - -private: - - // = Disallow these operations. - ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Active_Map_Manager &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Active_Map_Manager (const ACE_Active_Map_Manager &)) -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Active_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Active_Map_Manager_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Active_Map_Manager_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_ACTIVE_MAP_MANAGER_T_H */ diff --git a/ACE/ace/Active_Map_Manager_T.inl b/ACE/ace/Active_Map_Manager_T.inl deleted file mode 100644 index 124f76c48c4..00000000000 --- a/ACE/ace/Active_Map_Manager_T.inl +++ /dev/null @@ -1,311 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE int -ACE_Active_Map_Manager::bind (ACE_Active_Map_Manager_Key &key, - T *&internal_value) -{ - ACE_UINT32 slot_index; - int result = this->next_free (slot_index); - - if (result == 0) - { - // Move from free list to occupied list - this->move_from_free_list_to_occupied_list (slot_index); - - // Reset the key. - this->search_structure_[slot_index].ext_id_.increment_slot_generation_count (); - this->search_structure_[slot_index].ext_id_.slot_index (slot_index); - - // Copy the key for the user. - key = this->search_structure_[slot_index].ext_id_; - - // This is where the user should place the value. - internal_value = &this->search_structure_[slot_index].int_id_; - - // Update the current size. - ++this->cur_size_; - } - - return result; -} - -template ACE_INLINE int -ACE_Active_Map_Manager::bind (const T &value, - ACE_Active_Map_Manager_Key &key) -{ - T *internal_value = 0; - int result = this->bind (key, - internal_value); - - if (result == 0) - { - // Store new value. - *internal_value = value; - } - - return result; -} - -template ACE_INLINE int -ACE_Active_Map_Manager::bind (const T &value) -{ - ACE_Active_Map_Manager_Key key; - return this->bind (value, key); -} - -template ACE_INLINE int -ACE_Active_Map_Manager::find (const ACE_Active_Map_Manager_Key &key, - T *&internal_value) const -{ - ACE_UINT32 slot_index = key.slot_index (); - ACE_UINT32 slot_generation = key.slot_generation (); - - if (slot_index > this->total_size_ || -#if defined (ACE_HAS_LAZY_MAP_MANAGER) - this->search_structure_[slot_index].free_ || -#endif /* ACE_HAS_LAZY_MAP_MANAGER */ - this->search_structure_[slot_index].ext_id_.slot_generation () != slot_generation || - this->search_structure_[slot_index].ext_id_.slot_index () == - (ACE_UINT32)this->free_list_id ()) - { - return -1; - } - else - { - // This is where the user value is. - internal_value = &this->search_structure_[slot_index].int_id_; - } - - return 0; -} - -template ACE_INLINE int -ACE_Active_Map_Manager::find (const ACE_Active_Map_Manager_Key &key) const -{ - T *internal_value = 0; - return this->find (key, - internal_value); -} - -template ACE_INLINE int -ACE_Active_Map_Manager::find (const ACE_Active_Map_Manager_Key &key, - T &value) const -{ - T *internal_value = 0; - int result = this->find (key, - internal_value); - - if (result == 0) - value = *internal_value; - - return result; -} - -template ACE_INLINE int -ACE_Active_Map_Manager::rebind (const ACE_Active_Map_Manager_Key &key, - const T &value) -{ - int result = this->find (key); - - if (result == 0) - { - // Store new value. - this->search_structure_[key.slot_index ()].int_id_ = value; - } - - return result; -} - -template ACE_INLINE int -ACE_Active_Map_Manager::rebind (const ACE_Active_Map_Manager_Key &key, - const T &value, - T &old_value) -{ - int result = this->find (key); - - if (result == 0) - { - // Copy old value. - old_value = this->search_structure_[key.slot_index ()].int_id_; - - // Store new value. - this->search_structure_[key.slot_index ()].int_id_ = value; - } - - return result; -} - -template ACE_INLINE int -ACE_Active_Map_Manager::rebind (const ACE_Active_Map_Manager_Key &key, - const T &value, - ACE_Active_Map_Manager_Key &old_key, - T &old_value) -{ - int result = this->find (key); - - if (result == 0) - { - // Copy old key. - old_key = this->search_structure_[key.slot_index ()].ext_id_; - - // Copy old value. - old_value = this->search_structure_[key.slot_index ()].int_id_; - - // Store new value. - this->search_structure_[key.slot_index ()].int_id_ = value; - } - - return result; -} - -template ACE_INLINE int -ACE_Active_Map_Manager::unbind (const ACE_Active_Map_Manager_Key &key, - T *&internal_value) -{ - int result = this->find (key, - internal_value); - - if (result == 0) - { - ACE_UINT32 slot_index = key.slot_index (); - -#if defined (ACE_HAS_LAZY_MAP_MANAGER) - - // - // In the case of lazy map managers, the movement of free slots - // from the occupied list to the free list is delayed until we - // run out of free slots in the free list. - // - - this->search_structure_[slot_index].free_ = 1; - -#else - - // Move from occupied list to free list. - this->move_from_occupied_list_to_free_list (slot_index); - -#endif /* ACE_HAS_LAZY_MAP_MANAGER */ - - // Reset the slot_index. This will tell us that this entry is free. - this->search_structure_[slot_index].ext_id_.slot_index (this->free_list_id ()); - - // Update the current size. - --this->cur_size_; - } - - return result; -} - -template ACE_INLINE int -ACE_Active_Map_Manager::unbind (const ACE_Active_Map_Manager_Key &key, - T &value) -{ - T *internal_value; - int result = this->unbind (key, - internal_value); - - if (result == 0) - { - // Copy old value. - value = *internal_value; - } - - return result; -} - -template ACE_INLINE int -ACE_Active_Map_Manager::unbind (const ACE_Active_Map_Manager_Key &key) -{ - T *internal_value; - return this->unbind (key, - internal_value); -} - -template ACE_INLINE -ACE_Active_Map_Manager::ACE_Active_Map_Manager (ACE_Allocator *alloc) - : ACE_AMM_BASE (alloc) -{ -} - -template ACE_INLINE -ACE_Active_Map_Manager::ACE_Active_Map_Manager (size_t size, - ACE_Allocator *alloc) - : ACE_AMM_BASE (size, - alloc) -{ -} - -template ACE_INLINE -ACE_Active_Map_Manager::~ACE_Active_Map_Manager (void) -{ -} - -template ACE_INLINE int -ACE_Active_Map_Manager::open (size_t length, - ACE_Allocator *alloc) -{ - return ACE_AMM_BASE::open (length, alloc); -} - -template ACE_INLINE int -ACE_Active_Map_Manager::close (void) -{ - return ACE_AMM_BASE::close (); -} - -template ACE_INLINE size_t -ACE_Active_Map_Manager::current_size (void) const -{ - return ACE_AMM_BASE::current_size (); -} - -template ACE_INLINE size_t -ACE_Active_Map_Manager::total_size (void) const -{ - return ACE_AMM_BASE::total_size (); -} - -/* static */ -template ACE_INLINE const ACE_Active_Map_Manager_Key -ACE_Active_Map_Manager::npos (void) -{ - return ACE_Active_Map_Manager_Key (~0, ~0); -} - -template ACE_INLINE void -ACE_Active_Map_Manager::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_AMM_BASE::dump (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_Map_Iterator -ACE_Active_Map_Manager::begin (void) -{ - return ACE_AMM_BASE::begin (); -} - -template ACE_INLINE ACE_Map_Iterator -ACE_Active_Map_Manager::end (void) -{ - return ACE_AMM_BASE::end (); -} - -template ACE_INLINE ACE_Map_Reverse_Iterator -ACE_Active_Map_Manager::rbegin (void) -{ - return ACE_AMM_BASE::rbegin (); -} - -template ACE_INLINE ACE_Map_Reverse_Iterator -ACE_Active_Map_Manager::rend (void) -{ - return ACE_AMM_BASE::rend (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Addr.cpp b/ACE/ace/Addr.cpp deleted file mode 100644 index f458e018eef..00000000000 --- a/ACE/ace/Addr.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// $Id$ - -#include "ace/Addr.h" - - -ACE_RCSID (ace, - Addr, - "$Id$") - - -#if !defined (__ACE_INLINE__) -#include "ace/Addr.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Log_Msg.h" -#include "ace/os_include/sys/os_socket.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Note: this object requires static construction and destruction. -/* static */ -const ACE_Addr ACE_Addr::sap_any (AF_ANY, -1); - -ACE_ALLOC_HOOK_DEFINE(ACE_Addr) - - -// Initializes instance variables. Note that 0 is an unspecified -// protocol family type... - -ACE_Addr::ACE_Addr (int type, int size) : - addr_type_ (type), - addr_size_ (size) -{ -} - -ACE_Addr::~ACE_Addr (void) -{ -} - -void * -ACE_Addr::get_addr (void) const -{ - return 0; -} - -void -ACE_Addr::set_addr (void *, int) -{ -} - -// Initializes instance variables. - -void -ACE_Addr::base_set (int type, int size) -{ - this->addr_type_ = type; - this->addr_size_ = size; -} - -void -ACE_Addr::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Addr::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("addr_type_ = %d"), this->addr_type_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\naddr_size_ = %d"), this->addr_size_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Addr.h b/ACE/ace/Addr.h deleted file mode 100644 index 530fb87c17f..00000000000 --- a/ACE/ace/Addr.h +++ /dev/null @@ -1,104 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Addr.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_ADDR_H -#define ACE_ADDR_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Addr - * - * @brief Defines the base class for the "address family independent" - * address format. - */ -class ACE_Export ACE_Addr -{ -public: - // = Initialization and termination methods. - /// Initializes instance variables. - ACE_Addr (int type = -1, - int size = -1); - - /// Destructor. - virtual ~ACE_Addr (void); - - // = Get/set the size of the address. - - /// Return the size of the address. - int get_size (void) const; - - /// Sets the size of the address. - void set_size (int size); - - // = Get/set the type of the address. - - /// Get the type of the address. - int get_type (void) const; - - /// Set the type of the address. - void set_type (int type); - - /// Return a pointer to the address. - virtual void *get_addr (void) const; - - /// Set a pointer to the address. - virtual void set_addr (void *, int len); - - // = Equality/inequality tests - /// Check for address equality. - bool operator == (const ACE_Addr &sap) const; - - /// Check for address inequality. - bool operator != (const ACE_Addr &sap) const; - - /// Initializes instance variables. - void base_set (int type, int size); - - /// Wild-card address. - static const ACE_Addr sap_any; - - /// Returns a hash value. This should be overwritten by a subclass - /// that can produce a better hash value. - virtual unsigned long hash (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// e.g., AF_UNIX, AF_INET, AF_SPIPE, etc. - int addr_type_; - - /// Number of bytes in the address. - int addr_size_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Addr.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ADDR_H */ diff --git a/ACE/ace/Addr.inl b/ACE/ace/Addr.inl deleted file mode 100644 index 3780e04b6aa..00000000000 --- a/ACE/ace/Addr.inl +++ /dev/null @@ -1,61 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// Return the address of the address. - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE bool -ACE_Addr::operator == (const ACE_Addr &sap) const -{ - return (sap.addr_type_ == this->addr_type_ && - sap.addr_size_ == this->addr_size_ ); -} - -ACE_INLINE bool -ACE_Addr::operator != (const ACE_Addr &sap) const -{ - return (sap.addr_type_ != this->addr_type_ || - sap.addr_size_ != this->addr_size_ ); -} - -// 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. - -ACE_INLINE void -ACE_Addr::set_size (int size) -{ - this->addr_size_ = size; -} - -// 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. - -ACE_INLINE void -ACE_Addr::set_type (int type) -{ - this->addr_type_ = type; -} - -ACE_INLINE unsigned long -ACE_Addr::hash (void) const -{ - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Arg_Shifter.cpp b/ACE/ace/Arg_Shifter.cpp deleted file mode 100644 index 36c265c6d5a..00000000000 --- a/ACE/ace/Arg_Shifter.cpp +++ /dev/null @@ -1,230 +0,0 @@ -#ifndef ACE_ARG_SHIFTER_T_CPP -#define ACE_ARG_SHIFTER_T_CPP - -#include "ace/Arg_Shifter.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_strings.h" -#include "ace/OS_Errno.h" -#include "ace/OS_Memory.h" - -ACE_RCSID (ace, - Arg_Shifter, - "$Id$") - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Arg_Shifter_T::ACE_Arg_Shifter_T (int& argc, - const CHAR_TYPE** argv, - const CHAR_TYPE** temp) - : argc_ (argc), - total_size_ (argc), - temp_ (temp), - argv_ (argv), - current_index_ (0), - back_ (argc - 1), - front_ (0) -{ - this->init (); -} - -template -ACE_Arg_Shifter_T::ACE_Arg_Shifter_T (int& argc, - CHAR_TYPE** argv, - CHAR_TYPE** temp) - : argc_ (argc), - total_size_ (argc), - temp_ ((const CHAR_TYPE **) temp), - argv_ ((const CHAR_TYPE **) argv), - current_index_ (0), - back_ (argc - 1), - front_ (0) -{ - this->init (); -} - -template -void -ACE_Arg_Shifter_T::init (void) -{ - // If not provided with one, allocate a temporary array. - if (this->temp_ == 0) - ACE_NEW (this->temp_, - const CHAR_TYPE *[this->total_size_]); - - if (this->temp_ != 0) - { - // Fill the temporary array. - this->argc_ = 0; - for (int i = 0; i < this->total_size_; i++) - { - this->temp_[i] = this->argv_[i]; - this->argv_[i] = 0; - } - } - else - { - // Allocation failed, prohibit iteration. - this->current_index_ = this->argc_; - this->front_ = this->argc_; - } -} - -template -ACE_Arg_Shifter_T::~ACE_Arg_Shifter_T (void) -{ - // Delete the temporary vector. - delete [] temp_; -} - -template -const CHAR_TYPE * -ACE_Arg_Shifter_T::get_current (void) const -{ - const CHAR_TYPE * retval = 0; - - if (this->is_anything_left ()) - retval = this->temp_[current_index_]; - - return retval; -} - -template -const CHAR_TYPE * -ACE_Arg_Shifter_T::get_the_parameter (const CHAR_TYPE *flag) -{ - // the return 0's abound because this method - // would otherwise be a deep if { } else { } - - // check to see if any arguments still exist - if (!this->is_anything_left()) - return 0; - - // check to see if the flag is the argument - int const offset = this->cur_arg_strncasecmp (flag); - if (offset == -1) - return 0; - - if (offset == 0) - { - this->consume_arg (); - - if (!this->is_parameter_next()) - { - return 0; - } - } - // the parameter is in the middle somewhere... - return this->temp_[current_index_] + offset; -} - -template -int -ACE_Arg_Shifter_T::cur_arg_strncasecmp (const CHAR_TYPE *flag) -{ - // Check for a current argument - if (this->is_anything_left()) - { - size_t const flag_length = ACE_OS::strlen (flag); - - // Check for presence of the flag - if (ACE_OS::strncasecmp(this->temp_[current_index_], - flag, - flag_length) == 0) - { - if (ACE_OS::strlen(temp_[current_index_]) == - flag_length) - { - // match and lengths are equal - return 0; - } - else - { - // matches, with more info to boot! - size_t const remaining = ACE_OS::strspn - (this->temp_[current_index_] + flag_length, - ACE_TEXT (" ")) + flag_length; - return static_cast (remaining); - } - } - } - // failure - return -1; -} - -template -int -ACE_Arg_Shifter_T::consume_arg (int number) -{ - int retval = 0; - - // Stick knowns at the end of the vector (consumed). - if (this->is_anything_left() >= number) - { - for (int i = 0, j = this->back_ - (number - 1); - i < number; - ++i, ++j, ++this->current_index_) - this->argv_[j] = this->temp_[this->current_index_]; - - this->back_ -= number; - retval = 1; - } - - return retval; -} - -template -int -ACE_Arg_Shifter_T::ignore_arg (int number) -{ - int retval = 0; - - // Keep unknowns at the head of the vector. - if (this->is_anything_left () >= number) - { - for (int i = 0; - i < number; - i++, this->current_index_++, this->front_++) - this->argv_[this->front_] = this->temp_[this->current_index_]; - - retval = 1; - this->argc_ += number; - } - - return retval; -} - -template -int -ACE_Arg_Shifter_T::is_anything_left (void) const -{ - return this->total_size_ - this->current_index_; -} - -template -int -ACE_Arg_Shifter_T::is_option_next (void) const -{ - return this->is_anything_left () && - this->temp_[this->current_index_][0] == '-'; -} - -template -int -ACE_Arg_Shifter_T::is_parameter_next (void) const -{ - return this->is_anything_left () - && this->temp_[this->current_index_][0] != '-'; -} - -template -int -ACE_Arg_Shifter_T::num_ignored_args (void) const -{ - return this->front_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_ATOMIC_OP_T_CPP */ diff --git a/ACE/ace/Arg_Shifter.h b/ACE/ace/Arg_Shifter.h deleted file mode 100644 index 409ffa03a88..00000000000 --- a/ACE/ace/Arg_Shifter.h +++ /dev/null @@ -1,221 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Arg_Shifter.h - * - * $Id$ - * - * @author Seth Widoff - */ -//============================================================================= - -#ifndef ACE_ARG_SHIFTER_H -#define ACE_ARG_SHIFTER_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/Global_Macros.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Arg_Shifter_T - * - * @brief This ADT operates on a specified set of arguments (@a argv). - * As known arguments are scanned, they are shifted to the back of the - * @a argv vector, so deeper levels of argument parsing can locate the yet - * unprocessed arguments at the beginning of the vector. - * - * 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. - */ -template -class ACE_Arg_Shifter_T -{ -public: - // = Initialization and termination methods. - /** - * Initialize the ACE_Arg_Shifter to the vector over which to - * iterate. Optionally, also provide the temporary array for - * use in shifting the arguments. If ACE_Arg_Shifter must allocate - * the temporary vector internally and dynamic allocation fails, the - * ACE_Arg_Shifter will set all indicators to end of the vector, - * forbidding iteration. Following iteration over @a argv, the - * @a argc value will be updated to contain the number of - * unconsumed arguments. - * @param argc The number of strings in @a argv. @a argc will be - * updated to reflect the number of unconsumed arguments. - * @param argv The argument vector to shift. The string pointers in - * the vector will be reordered to place the @a argc unconsumed - * arguments at the front of the vector. - * @param temp A vector of @c CHAR_TYPE pointers at least @a argc - * elements long. The vector will be used for argument shifting as - * the specified @a argv vector is consumed. The vector must not - * be modified while this object exists. If this argument is 0 - * (the default) the object will allocate and free the temporary - * vector transparently. - */ - ACE_Arg_Shifter_T (int& argc, - const CHAR_TYPE **argv, - const CHAR_TYPE **temp = 0); - - /// Same behavior as the preceding constructor, but without the - /// "const" qualifier. - ACE_Arg_Shifter_T (int& argc, - CHAR_TYPE **argv, - CHAR_TYPE **temp = 0); - - /// Destructor. - ~ACE_Arg_Shifter_T (void); - - /// Get the current head of the vector. - const CHAR_TYPE *get_current (void) const; - - /** - * If the @a flag matches the current_arg of arg shifter - * this method will attempt to return the associated - * parameter value - * - * Safe to call without checking that a current arg exists - * - * In the following examples, a pointer to the char* "value" is ret - * - * eg: main -foobar value, main -FooBar value - * main -FOOBARvalue - * - * all of the above will all match the @a flag == -FooBar - * and will return a char* to "value" - * - * main -foobar 4 would succeed and return a char* to "4" - * main -foobar -4 does not succeed (-4 is not a parameter) - * but instead, would return 0 - * - * 0 is returned: - * If the current argument does not match flag - * If there is no parameter found after a 'matched' flag - * - * If the flag is matched and the flag and paramter DO NOT RUN - * together, the flag is consumed, the parameter is returned, - * and the new current argument is the parameter value. - * ie '-foobarflag VALUE' leaves the new cur arg == "VALUE" - * - * If the flag is matched and the flag and parameter RUN - * together '-foobarflagVALUE', the flag is NOT consumed - * and the cur arg is left pointing to the entire flag/value pair - */ - const CHAR_TYPE *get_the_parameter (const CHAR_TYPE* flag); - - /** - * Check if the current argument matches (case insensitive) - * - * ------------------------------------------------------------ - * - * Case A: Perfect Match (case insensitive) - * 0 is returned. - * - * ie: when current_arg = "-foobar" or "-FOOBAR" or "-fooBAR" - * this->cur_arg_strncasecmp ("-FooBar); - * will return 0 - * - * ------------------------------------------------------------ - * - * Case B: Perfect Match (case insensitive) but the current_arg - * is longer than the flag. Returns a number equal to the index - * in the char* indicating the start of the extra characters - * - * ie: when current_arg = "-foobar98023" - * this->cur_arg_strncasecmp ("-FooBar); - * will return 7 - * - * Notice: this number will always be > 0 - * - * ------------------------------------------------------------ - * - * Case C: If neither of Case A or B is met (no match) - * then -1 is returned - */ - int cur_arg_strncasecmp (const CHAR_TYPE *flag); - - /// Consume @a number argument(s) by sticking them/it on the end of - /// the vector. - int consume_arg (int number = 1); - - /// Place @a number arguments in the same relative order ahead of the - /// known arguments in the vector. - int ignore_arg (int number = 1); - - /// Returns the number of args left to see in the vector. - int is_anything_left (void) const; - - /// Returns 1 if there's a next item in the vector and it begins with - /// '-'. - int is_option_next (void) const; - - /// Returns 1 if there's a next item in the vector and it doesn't - /// begin with '-'. - int is_parameter_next (void) const; - - /// Returns the number of irrelevant args seen. - int num_ignored_args (void) const; - -private: - /// Copy Constructor should not be used. - ACE_UNIMPLEMENTED_FUNC (ACE_Arg_Shifter_T (const ACE_Arg_Shifter_T&)) - - /// Assignment '=' operator should not be used. - ACE_UNIMPLEMENTED_FUNC (ACE_Arg_Shifter_T operator= (const ACE_Arg_Shifter_T&)) - - /// Refactor the constructor logic. - void init (void); - - /// The size of the argument vector. - int& argc_; - - /// The size of argv_. - int total_size_; - - /// The temporary array over which we traverse. - const CHAR_TYPE **temp_; - - /// The array in which the arguments are reordered. - const CHAR_TYPE **argv_; - - /// The element in we're currently examining. - int current_index_; - - /// The index of in which we'll stick the next unknown - /// argument. - int back_; - - /// The index of in which we'll stick the next known - /// argument. - int front_; -}; - -typedef ACE_Arg_Shifter_T ACE_Arg_Shifter; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Arg_Shifter.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Arg_Shifter.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ARG_SHIFTER_H */ diff --git a/ACE/ace/Argv_Type_Converter.cpp b/ACE/ace/Argv_Type_Converter.cpp deleted file mode 100644 index e16076818a4..00000000000 --- a/ACE/ace/Argv_Type_Converter.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// $Id$ - -#include "ace/Argv_Type_Converter.h" - -#if !defined (__ACE_INLINE__) -#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" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_USES_WCHAR) -ACE_Argv_Type_Converter::ACE_Argv_Type_Converter (int &argc, wchar_t** argv) - : saved_argc_ (argc), - char_argv_ (0), - wchar_argv_ (argv), - before_pass_argc_ (argc), - original_type_ (true), - wchar_passed_ (false), - char_passed_ (false) -{ - this->initialize (); - - for (int i = 0; i < argc; ++i) - this->char_argv_[i] = ACE_OS::strdup (ACE_TEXT_ALWAYS_CHAR (argv[i])); -} -#endif // ACE_USES_WCHAR - - -ACE_Argv_Type_Converter::ACE_Argv_Type_Converter (int &argc, char **argv) - : saved_argc_(argc), - char_argv_(argv) -#if defined (ACE_USES_WCHAR) - , wchar_argv_(0), - before_pass_argc_(argc), - original_type_(false), - wchar_passed_(false), - char_passed_(false) -{ - this->initialize(); - - for (int i = 0; i < argc; ++i) - this->wchar_argv_[i] = ACE_OS::strdup (ACE_TEXT_ANTI_TO_TCHAR (argv[i])); -} -#else -{ -} -#endif // ACE_USES_WCHAR - -ACE_Argv_Type_Converter::~ACE_Argv_Type_Converter (void) -{ -#if defined (ACE_USES_WCHAR) - // selectively delete the 'copy' of argv - if (this->original_type_) - { - // if original type is wchar_t - if (this->char_passed_) - this->align_wchar_with_char (); - - for (int i = 0; i < this->before_pass_argc_; ++i) - ACE_OS::free (this->char_argv_[i]); - - delete [] this->char_argv_; - } - else - { - // if original type is char - if (this->wchar_passed_) - this->align_char_with_wchar (); - - for (int i = 0; i < this->before_pass_argc_; ++i) - ACE_OS::free (this->wchar_argv_[i]); - - delete [] this->wchar_argv_; - } -#endif // ACE_USES_WCHAR -} - -#if defined (ACE_USES_WCHAR) -void -ACE_Argv_Type_Converter::initialize (void) -{ - if (this->original_type_) - { - // Make a copy of argv in 'char'. type Create one more argv entry - // than original argc for the NULL. - ACE_NEW (char_argv_, - char *[this->saved_argc_ + 1]); - this->char_argv_[saved_argc_] = 0; // last entry of argv is - // always a NULL - } - else - { - // make a copy of argv in 'wchar_t' type - ACE_NEW (this->wchar_argv_, - wchar_t*[this->saved_argc_ + 1]); - this->wchar_argv_[saved_argc_] = 0; - } -} - - -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_) - { - // 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) - { - // loop through the wchar argv list entries that are after - // wchar_argv_index - for (int i = wchar_argv_index + 1; i < before_pass_argc_; ++i) - { - if (ACE_OS::strcmp (this->char_argv_[i], - ACE_TEXT_ALWAYS_CHAR (match_argv)) == 0) - { - // swap the pointers in the char argv list - char *temp = this->char_argv_[wchar_argv_index]; - this->char_argv_[wchar_argv_index] = this->char_argv_[i]; - this->char_argv_[i] = temp; - break; - } - } - } - - // move to the next wchar argv list entry - match_argv = this->wchar_argv_[++wchar_argv_index]; - } - - this->cleanup (); -} - -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_) - { - // if n'th entries of both argv lists are different - if (ACE_OS::strcmp ( - ACE_TEXT_ALWAYS_CHAR (this->wchar_argv_[char_argv_index]), - match_argv) != 0) - { - // loop through the wchar argv list entries that are after - // wchar_argv_index - for (int i = char_argv_index + 1; i < this->before_pass_argc_; ++i) - { - if (ACE_OS::strcmp ( - ACE_TEXT_ALWAYS_CHAR(this->wchar_argv_[i]), - match_argv) == 0) { - // swap the pointers in the char argv list - wchar_t* temp = this->wchar_argv_[char_argv_index]; - this->wchar_argv_[char_argv_index] = this->wchar_argv_[i]; - this->wchar_argv_[i] = temp; - break; - } - } - } - - // move to the next wchar argv list entry - match_argv = this->char_argv_[++char_argv_index]; - } - - this->cleanup(); -} - -void -ACE_Argv_Type_Converter::cleanup (void) -{ - for (int i = this->saved_argc_; i < this->before_pass_argc_; ++i) - { - // Check whether it's ours to delete. - if (original_type_) - { - ACE_OS::free (this->char_argv_[i]); - this->char_argv_[i] = 0; - } - else - { - ACE_OS::free (this->wchar_argv_[i]); - this->wchar_argv_[i] = 0; - } - } - - this->before_pass_argc_ = this->saved_argc_; - - this->wchar_passed_ = false; - this->char_passed_ = false; -} -#endif // ACE_USES_WCHAR - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Argv_Type_Converter.h b/ACE/ace/Argv_Type_Converter.h deleted file mode 100644 index 205fa10c983..00000000000 --- a/ACE/ace/Argv_Type_Converter.h +++ /dev/null @@ -1,119 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Argv_Type_Converter.h - * - * $Id$ - * - * @author Si Mong Park - */ -//============================================================================= - -#ifndef ACE_ARGV_TYPE_CONVERTER_H -#define ACE_ARGV_TYPE_CONVERTER_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" -#include "ace/OS_Memory.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Argv_Type_Converter - * - * @brief To convert 'char' input/command line parameter to 'wchar_t'. - * - * This class is to convert 'char' type command line paramter to - * wide-character (wchar_t) format and stores the copy of it. - * This is useful for all classes that use 'char**' argv but cannot - * be converted into 'ACE_TCHAR**' version. - * Note that the converted data will be lost upon destruction, so - * classes should use this class as their data member. - */ -class ACE_Export ACE_Argv_Type_Converter -{ -public: - - ACE_Argv_Type_Converter (int &argc, char** argv); - -#if defined (ACE_USES_WCHAR) - ACE_Argv_Type_Converter (int &argc, wchar_t** argv); -#endif // ACE_USES_WCHAR - - ~ACE_Argv_Type_Converter (void); - - /// Returns the pointer of converted command line. - ACE_TCHAR** get_TCHAR_argv (void); - - /// Returns the pointer of ASCII (char) command line. - char** get_ASCII_argv (void); - - /// Returns the number of sub paramters (argc). - int& get_argc (void); - -private: - - /// Copy Constructor should not be used. - ACE_Argv_Type_Converter (const ACE_Argv_Type_Converter&); - - /// Assignment '=' operator should not be used. - ACE_Argv_Type_Converter operator= (const ACE_Argv_Type_Converter&); - -#if defined (ACE_USES_WCHAR) - - /// Perform common initialization for two Ctor's. - void initialize (void); - - /// Align all entries in the char type argv list with wchar_t type - /// argv list. - void align_char_with_wchar (void); - - /// Align all entries in the wchar_t type argv list with char type - /// argv list. - void align_wchar_with_char (void); - - /// Clean up removed (comsumed) argv entries and reset the pass flags. - void cleanup (void); -#endif // ACE_USES_WCHAR - -private: - /// Original number of input paramter, same as 'argc'. - int &saved_argc_; - - /// Data member pointer that contains converted argv in ACE_ANTI_TCHAR. - char** char_argv_; - -#if defined (ACE_USES_WCHAR) - /// Data member pointer that contains converted argv in ACE_TCHAR. - wchar_t** wchar_argv_; - - /// argc value before any argv has been passed. - int before_pass_argc_; - - /// false represents original argv passed in is char, and true - /// represents wchar_t. - bool const original_type_; - - /// true indicates wchar_t type argv has been passed. - bool wchar_passed_; - - /// true indicates char type argv has been passed. - bool char_passed_; -#endif /* ACE_USES_WCHAR */ -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Argv_Type_Converter.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ARGV_TYPE_CONVERTER_H */ diff --git a/ACE/ace/Argv_Type_Converter.inl b/ACE/ace/Argv_Type_Converter.inl deleted file mode 100644 index 5bb0bafd2db..00000000000 --- a/ACE/ace/Argv_Type_Converter.inl +++ /dev/null @@ -1,44 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE ACE_TCHAR** -ACE_Argv_Type_Converter::get_TCHAR_argv (void) -{ -#if defined (ACE_USES_WCHAR) - if (this->char_passed_) - { - this->align_wchar_with_char (); - } - - this->wchar_passed_ = true; - return this->wchar_argv_; -#else - return this->char_argv_; -#endif // ACE_USES_WCHAR -} - -ACE_INLINE char** -ACE_Argv_Type_Converter::get_ASCII_argv (void) -{ -#if defined (ACE_USES_WCHAR) - if (this->wchar_passed_) - { - this->align_char_with_wchar (); - } - - this->char_passed_ = true; -#endif // ACE_USES_WCHAR - - return this->char_argv_; -} - -ACE_INLINE int& -ACE_Argv_Type_Converter::get_argc (void) -{ - return this->saved_argc_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL 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 - */ -//============================================================================= - -#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.cpp b/ACE/ace/Array_Base.cpp deleted file mode 100644 index 280a12d8e17..00000000000 --- a/ACE/ace/Array_Base.cpp +++ /dev/null @@ -1,235 +0,0 @@ -// $Id$ - -#ifndef ACE_ARRAY_BASE_CPP -#define ACE_ARRAY_BASE_CPP - -#include "ace/Array_Base.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -#include "ace/Array_Base.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Malloc_Base.h" -#include "ace/os_include/os_errno.h" - -#include - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Dynamically initialize an array. -template -ACE_Array_Base::ACE_Array_Base (typename ACE_Array_Base::size_type size, - ACE_Allocator *alloc) - : max_size_ (size), - cur_size_ (size), - allocator_ (alloc) -{ - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); - - if (size != 0) - { - ACE_ALLOCATOR (this->array_, - (T *) this->allocator_->malloc (size * sizeof (T))); - for (size_type i = 0; i < size; ++i) - new (&array_[i]) T; - } - else - this->array_ = 0; -} - -template -ACE_Array_Base::ACE_Array_Base (typename ACE_Array_Base::size_type size, - const T &default_value, - ACE_Allocator *alloc) - : max_size_ (size), - cur_size_ (size), - allocator_ (alloc) -{ - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); - - if (size != 0) - { - ACE_ALLOCATOR (this->array_, - (T *) this->allocator_->malloc (size * sizeof (T))); - for (size_type i = 0; i < size; ++i) - new (&array_[i]) T (default_value); - } - else - this->array_ = 0; -} - -// The copy constructor (performs initialization). - -template -ACE_Array_Base::ACE_Array_Base (const ACE_Array_Base &s) - : max_size_ (s.size ()), - cur_size_ (s.size ()), - allocator_ (s.allocator_) -{ - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); - - ACE_ALLOCATOR (this->array_, - (T *) this->allocator_->malloc (s.size () * sizeof (T))); - for (size_type i = 0; i < this->size (); ++i) - new (&this->array_[i]) T (s.array_[i]); -} - -// Assignment operator (performs assignment). - -template void -ACE_Array_Base::operator= (const ACE_Array_Base &s) -{ - // Check for "self-assignment". - - if (this != &s) - { - if (this->max_size_ < s.size ()) - { - // Need to reallocate memory. - - // Strongly exception-safe assignment. - // - // Note that we're swapping the allocators here, too. - // Should we? Probably. "*this" should be a duplicate of - // the "right hand side". - ACE_Array_Base tmp (s); - this->swap (tmp); - } - else - { - // Underlying array is large enough. No need to reallocate - // memory. - // - // "*this" still owns the memory for the underlying array. - // Do not swap out the allocator. - // - // @@ Why don't we just drop the explicit destructor and - // placement operator new() calls with a straight - // element-by-element assignment? Is the existing - // approach more efficient? - // -Ossama - - ACE_DES_ARRAY_NOFREE (this->array_, - s.size (), - T); - - this->cur_size_ = s.size (); - - for (size_type i = 0; i < this->size (); ++i) - new (&this->array_[i]) T (s.array_[i]); - } - } -} - -// Set an item in the array at location slot. - -template int -ACE_Array_Base::set (const T &new_item, - typename ACE_Array_Base::size_type slot) -{ - if (this->in_range (slot)) - { - this->array_[slot] = new_item; - return 0; - } - else - return -1; -} - -// Get an item in the array at location slot. - -template int -ACE_Array_Base::get (T &item, - typename ACE_Array_Base::size_type slot) const -{ - if (this->in_range (slot)) - { - // Copies the item. If you don't want to copy, use operator [] - // instead (but then you'll be responsible for range checking). - item = this->array_[slot]; - return 0; - } - else - return -1; -} - -template int -ACE_Array_Base::max_size (typename ACE_Array_Base::size_type new_size) -{ - if (new_size > this->max_size_) - { - T *tmp = 0; - - ACE_ALLOCATOR_RETURN (tmp, - (T *) this->allocator_->malloc (new_size * sizeof (T)), - -1); - for (size_type i = 0; i < this->cur_size_; ++i) - new (&tmp[i]) T (this->array_[i]); - - // Initialize the new portion of the array that exceeds the - // previously allocated section. - for (size_type j = this->cur_size_; j < new_size; ++j) - new (&tmp[j]) T; - - ACE_DES_ARRAY_FREE (this->array_, - this->max_size_, - this->allocator_->free, - T); - this->array_ = tmp; - this->max_size_ = new_size; - this->cur_size_ = new_size; - } - - return 0; -} - -template int -ACE_Array_Base::size (typename ACE_Array_Base::size_type new_size) -{ - int const r = this->max_size (new_size); - - if (r == 0) - this->cur_size_ = new_size; - - return r; -} - -template -void -ACE_Array_Base::swap (ACE_Array_Base & rhs) -{ - std::swap (this->max_size_ , rhs.max_size_); - std::swap (this->cur_size_ , rhs.cur_size_); - std::swap (this->array_ , rhs.array_); - std::swap (this->allocator_, rhs.allocator_); -} - -// **************************************************************** - -template int -ACE_Array_Iterator::next (T *&item) -{ - // ACE_TRACE ("ACE_Array_Iterator::next"); - - if (this->done ()) - { - item = 0; - return 0; - } - else - { - item = &array_[current_]; - return 1; - } -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_ARRAY_BASE_CPP */ diff --git a/ACE/ace/Array_Base.h b/ACE/ace/Array_Base.h deleted file mode 100644 index 210bab6d46d..00000000000 --- a/ACE/ace/Array_Base.h +++ /dev/null @@ -1,256 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Array_Base.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_ARRAY_BASE_H -#define ACE_ARRAY_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/Global_Macros.h" -#include "ace/Malloc_Base.h" -#include /* For reverse_iterator adapters */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declaration. -template class ACE_Array_Iterator; - -/** - * @class ACE_Array_Base - * - * @brief Implement a simple dynamic array - * - * This parametric class implements a simple dynamic array; - * resizing must be controlled by the user. No comparison or find - * operations are implemented. - */ -template -class ACE_Array_Base -{ -public: - - // Old/ACE-style traits. - typedef T TYPE; - typedef ACE_Array_Iterator ITERATOR; - - // STL-style typedefs/traits. - typedef T value_type; - typedef value_type * iterator; - typedef value_type const * const_iterator; - typedef value_type & reference; - typedef value_type const & const_reference; - typedef value_type * pointer; - typedef value_type const * const_pointer; - typedef ptrdiff_t difference_type; - typedef ACE_Allocator::size_type size_type; - - ACE_DECLARE_STL_REVERSE_ITERATORS - - // = Initialization and termination methods. - - /// Dynamically create an uninitialized array. - ACE_Array_Base (size_type size = 0, - ACE_Allocator * the_allocator = 0); - - /// Dynamically initialize the entire array to the . - 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 , i.e., *this == s will - * return true. - */ - ACE_Array_Base (ACE_Array_Base const & s); - - /** - * Assignment operator performs an assignment by making an exact - * copy of the contents of parameter , i.e., *this == s will - * return true. Note that if the of is >= than - * we can copy it without reallocating. However, if - * is < we must delete the , - * reallocate a new , and then copy the contents of . - */ - void operator= (ACE_Array_Base const & s); - - /// Clean up the array (e.g., delete dynamically allocated memory). - ~ACE_Array_Base (void); - - // = Set/get methods. - - /// Set item in the array at location @a slot. Doesn't - /// perform range checking. - T & operator[] (size_type slot); - - /// Get item in the array at location @a slot. Doesn't - /// perform range checking. - T const & operator[] (size_type slot) const; - - /// Set an item in the array at location @a slot. Returns - /// -1 if @a slot is not in range, else returns 0. - int set (T const & new_item, size_type slot); - - /** - * Get an item in the array at location @a slot. Returns -1 if - * @a slot is not in range, else returns 0. Note that this function - * copies the item. If you want to avoid the copy, you can use - * the const operator [], but then you'll be responsible for range checking. - */ - int get (T & item, size_type slot) const; - - /// Returns the of the array. - size_type size (void) const; - - /** - * Changes the size of the array to match . - * It copies the old contents into the new array. - * Return -1 on failure. - */ - int size (size_type new_size); - - /// Returns the of the array. - size_type max_size (void) const; - - /** - * Changes the size of the array to match . - * It copies the old contents into the new array. - * Return -1 on failure. - * It does not affect new_size - */ - int max_size (size_type new_size); - - /** - * @name Forward Iterator Accessors - * - * Forward iterator accessors. - */ - //@{ - iterator begin (void); - iterator end (void); - const_iterator begin (void) const; - const_iterator end (void) const; - //@} - - /** - * @name Reverse Iterator Accessors - * - * Reverse iterator accessors. - */ - //@{ - reverse_iterator rbegin (void); - reverse_iterator rend (void); - const_reverse_iterator rbegin (void) const; - const_reverse_iterator rend (void) const; - //@} - - /// Swap the contents of this array with the given @a array in - /// an exception-safe manner. - void swap (ACE_Array_Base & array); - -protected: - - /// Returns 1 if @a slot is within range, i.e., 0 >= @a slot < - /// , else returns 0. - bool in_range (size_type slot) const; - - /// Maximum size of the array, i.e., the total number of elements - /// in . - size_type max_size_; - - /** - * Current size of the array. This starts out being == to - * . However, if we are assigned a smaller array, then - * will become less than . The purpose of - * keeping track of both sizes is to avoid reallocating memory if we - * don't have to. - */ - size_type cur_size_; - - /// Pointer to the array's storage buffer. - value_type * array_; - - /// Allocation strategy of the ACE_Array_Base. - ACE_Allocator * allocator_; - - friend class ACE_Array_Iterator; -}; - -// **************************************************************** - -/** - * @class ACE_Array_Iterator - * - * @brief Implement an iterator over an ACE_Array. - * - * This iterator is safe in the face of array element deletions. - * But it is NOT safe if the array is resized (via the ACE_Array - * assignment operator) during iteration. That would be very - * odd, and dangerous. - */ -template -class ACE_Array_Iterator -{ -public: - // = Initialization method. - ACE_Array_Iterator (ACE_Array_Base &); - - // = Iteration methods. - - /// Pass back the that hasn't been seen in the Array. - /// Returns 0 when all items have been seen, else 1. - int next (T *&next_item); - - /// Move forward by one element in the Array. Returns 0 when all the - /// items in the Array have been seen, else 1. - int advance (void); - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Pointer to the current item in the iteration. - size_t current_; - - /// Pointer to the Array we're iterating over. - ACE_Array_Base &array_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Array_Base.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Array_Base.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Array_Base.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ARRAY_BASE_H */ diff --git a/ACE/ace/Array_Base.inl b/ACE/ace/Array_Base.inl deleted file mode 100644 index 849bcc18de2..00000000000 --- a/ACE/ace/Array_Base.inl +++ /dev/null @@ -1,146 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Clean up the array (e.g., delete dynamically allocated memory). -template ACE_INLINE -ACE_Array_Base::~ACE_Array_Base (void) -{ - ACE_DES_ARRAY_FREE (this->array_, - this->max_size_, - this->allocator_->free, - T); -} - -template -ACE_INLINE typename ACE_Array_Base::iterator -ACE_Array_Base::begin (void) -{ - return this->array_; -} - -template -ACE_INLINE typename ACE_Array_Base::iterator -ACE_Array_Base::end (void) -{ - return this->array_ + this->cur_size_; -} - -template -ACE_INLINE typename ACE_Array_Base::const_iterator -ACE_Array_Base::begin (void) const -{ - return this->array_; -} - -template -ACE_INLINE typename ACE_Array_Base::const_iterator -ACE_Array_Base::end (void) const -{ - return this->array_ + this->cur_size_; -} - -template -ACE_INLINE typename ACE_Array_Base::reverse_iterator -ACE_Array_Base::rbegin (void) -{ - return reverse_iterator (this->end ()); -} - -template -ACE_INLINE typename ACE_Array_Base::reverse_iterator -ACE_Array_Base::rend (void) -{ - return reverse_iterator (this->begin ()); -} - -template -ACE_INLINE typename ACE_Array_Base::const_reverse_iterator -ACE_Array_Base::rbegin (void) const -{ - return const_reverse_iterator (this->end ()); -} - -template -ACE_INLINE typename ACE_Array_Base::const_reverse_iterator -ACE_Array_Base::rend (void) const -{ - return const_reverse_iterator (this->begin ()); -} - -template ACE_INLINE typename ACE_Array_Base::size_type -ACE_Array_Base::size (void) const -{ - return this->cur_size_; -} - -template ACE_INLINE typename ACE_Array_Base::size_type -ACE_Array_Base::max_size (void) const -{ - return this->max_size_; -} - -template ACE_INLINE bool -ACE_Array_Base::in_range (typename ACE_Array_Base::size_type index) const -{ - return index < this->cur_size_; -} - -template ACE_INLINE T & -ACE_Array_Base::operator[] (typename ACE_Array_Base::size_type index) -{ - return this->array_[index]; -} - -template ACE_INLINE const T & -ACE_Array_Base::operator[] (typename ACE_Array_Base::size_type index) const -{ - return this->array_[index]; -} - -// **************************************************************** - -template ACE_INLINE void -ACE_Array_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - // ACE_TRACE ("ACE_Array_Iterator::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Array_Iterator::ACE_Array_Iterator (ACE_Array_Base &a) - : current_ (0), - array_ (a) -{ - // ACE_TRACE ("ACE_Array_Iterator::ACE_Array_Iterator"); -} - -template ACE_INLINE int -ACE_Array_Iterator::advance (void) -{ - // ACE_TRACE ("ACE_Array_Iterator::advance"); - - if (this->current_ < array_.size ()) - { - ++this->current_; - return 1; - } - else - { - // Already finished iterating. - return 0; - } -} - -template ACE_INLINE int -ACE_Array_Iterator::done (void) const -{ - ACE_TRACE ("ACE_Array_Iterator::done"); - - return this->current_ >= array_.size (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Array_Map.cpp b/ACE/ace/Array_Map.cpp deleted file mode 100644 index 62c6f553292..00000000000 --- a/ACE/ace/Array_Map.cpp +++ /dev/null @@ -1,299 +0,0 @@ -// $Id$ - -#ifndef ACE_ARRAY_MAP_CPP -#define ACE_ARRAY_MAP_CPP - -#include "ace/Array_Map.h" - -#ifndef __ACE_INLINE__ -# include "ace/Array_Map.inl" -#endif /* !__ACE_INLINE__ */ - -#include "ace/checked_iterator.h" - -#include - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -#ifndef ACE_LACKS_MEMBER_TEMPLATES -template -template -ACE_Array_Map::ACE_Array_Map (InputIterator f, - InputIterator 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 (InputIterator i = f; i != l; ++i, ++n) -// *n = *i; -} -#else -template -ACE_Array_Map::ACE_Array_Map ( - typename ACE_Array_Map::const_iterator f, - typename ACE_Array_Map::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 -ACE_Array_Map::ACE_Array_Map ( - ACE_Array_Map const & map) - : size_ (map.size_) - , capacity_ (map.size_) - , nodes_ (size_ == 0 ? 0 : new value_type[size_]) -{ - std::copy (map.begin (), - map.end (), - ACE_make_checked_array_iterator (this->begin (), - this->size_)); - -// iterator f = map.begin (); -// iterator l = map.end (); -// iterator n = this->begin (); - -// for (iterator i = f; i != l; ++i, ++n) -// *n = *i; -} - -template -ACE_Array_Map::~ACE_Array_Map (void) -{ - delete[] this->nodes_; -} - -template -void -ACE_Array_Map::swap ( - ACE_Array_Map & map) -{ - std::swap (this->size_, map.size_); - std::swap (this->capacity_, map.capacity_); - std::swap (this->nodes_, map.nodes_); -} - -template -std::pair::iterator, bool> -ACE_Array_Map::insert ( - typename ACE_Array_Map::value_type const & x) -{ - // Linear insertion due to linear duplicate key search. - - bool inserted = false; - iterator i = this->find (x.first); - - if (i == this->end ()) - { - // Add the element to the array. - - size_type const old_size = this->size (); - this->grow (1); // Increase size by at least one. - - i = this->begin () + old_size; - *i = x; - - ++this->size_; - - inserted = true; - } - - return std::make_pair (i, inserted); -} - -#ifndef ACE_LACKS_MEMBER_TEMPLATES -template -template -void -ACE_Array_Map::insert (InputIterator f, InputIterator l) -{ - this->grow (l - f); // Preallocate storage. - - for (InputIterator i = f; i != l; ++i) - { - (void) this->insert (*i); - } -} -#else -template -void -ACE_Array_Map::insert ( - typename ACE_Array_Map::const_iterator f, - typename ACE_Array_Map::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 -void -ACE_Array_Map::erase ( - typename ACE_Array_Map::iterator pos) -{ - iterator const first = this->begin (); - iterator const last = this->end (); - - if (pos >= first && pos < last) - { - if (pos != last - 1) - { - // Relocate the tail element to the location of the erased - // element to prevent introduction of "holes" in the - // underlying array. - *pos = *(last - 1); - } - - // Explicitly destroy the tail element by assigning a default - // constructed instance to it. Note that this also works for - // the case of a map of size 1. - *(last - 1) = value_type (); - - --this->size_; - } -} - -template -typename ACE_Array_Map::size_type -ACE_Array_Map::erase ( - typename ACE_Array_Map::key_type const & k) -{ - iterator pos = this->find (k); - - size_type const old_size = this->size_; - - this->erase (pos); - - return old_size - this->size_; -} - -template -void -ACE_Array_Map::erase ( - typename ACE_Array_Map::iterator first, - typename ACE_Array_Map::iterator last) -{ - if (this->begin () <= first && first < last && last < this->end ()) - for (iterator i = first; i != last; ++i) - this->erase (i); -} - -template -void -ACE_Array_Map::clear (void) -{ - this->size_ = 0; // No need to deallocate array nor destroy elements. -} - -template -typename ACE_Array_Map::iterator -ACE_Array_Map::find ( - typename ACE_Array_Map::key_type const & k) -{ - iterator const the_end = this->end (); - - EqualTo eq; - - for (iterator i = this->begin (); i != the_end; ++i) - if (eq (k, i->first)) - return i; - - return this->end (); -} - -template -typename ACE_Array_Map::const_iterator -ACE_Array_Map::find ( - typename ACE_Array_Map::key_type const & k) const -{ - const_iterator const the_end = this->end (); - - EqualTo eq; - - for (const_iterator i = this->begin (); i != the_end; ++i) - if (eq (k, i->first)) - return i; - - return this->end (); -} - -template -void -ACE_Array_Map::grow ( - typename ACE_Array_Map::size_type s) -{ - if (this->size () + s > this->capacity_) - { - // This implementation focuses more on static footprint than - // speed. - - // Strongly exception safe. - - ACE_Array_Map temp (this->size () + s); - - std::copy (this->begin (), - this->end (), - ACE_make_checked_array_iterator (temp.begin (), - temp.capacity_)); - - size_type const n = this->size (); // Do not swap out the size - // since we bypassed the - // temporary map's element - // counting code. - this->swap (temp); - - this->size_ = n; - } -} - -// --------------------------------------------------------------- - -template -bool -operator== (ACE_Array_Map const & lhs, - ACE_Array_Map const & rhs) -{ - // Do not include Array_Map capacity in comparison. It isn't useful - // in this case. - - return (lhs.size () == rhs.size () - && std::equal (lhs.begin (), - lhs.end (), - ACE_make_checked_array_iterator (rhs.begin (), - rhs.size ()))); -} - -template -bool -operator< (ACE_Array_Map const & lhs, - ACE_Array_Map const & rhs) -{ - return std::lexicographical_compare (lhs.begin (), lhs.end (), - rhs.begin (), rhs.end ()); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_ARRAY_MAP_CPP */ diff --git a/ACE/ace/Array_Map.h b/ACE/ace/Array_Map.h deleted file mode 100644 index cd0ae3efea6..00000000000 --- a/ACE/ace/Array_Map.h +++ /dev/null @@ -1,300 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Array_Map.h - * - * $Id$ - * - * Light weight array-based map with fast iteration but linear - * (i.e. O(n)) search times. STL-style interface is exposed. - * - * @note This class requires the STL generic algorithms and - * reverse_iterator adapter. - * - * @author Ossama Othman - */ -//============================================================================= - - -#ifndef ACE_ARRAY_MAP_H -#define ACE_ARRAY_MAP_H - -#include /**/ "ace/pre.h" - -#include "ace/config-lite.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include -#include -#include - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Array_Map - * - * @brief Light weight array-based map with fast iteration, but linear - * (i.e. O(n)) search times. - * - * Map implementation that focuses on small footprint and fast - * iteration. Search times are, however, linear (O(n)) meaning that - * this map isn't suitable for large data sets that will be searched - * in performance critical areas of code. Iteration over large data - * sets, however, is faster than linked list-based maps, for example, - * since spatial locality is maximized through the use of contiguous - * arrays as the underlying storage. - * @par - * An @c ACE_Array_Map is a unique associative container, meaning that - * duplicate values may not be added to the map. It is also pair - * associative (value_type is a std::pair<>). It is not a sorted - * container. - * @par - * An STL @c std::map -like interface is exposed by this class - * portability. Furthermore, this map's iterators are compatible with - * STL algorithms. - * @par - * Requirements and Performance Characteristics - * - Internal Structure - * Array - * - Duplicates allowed? - * No - * - Random access allowed? - * Yes - * - Search speed - * O(n) - * - Insert/replace speed - * O(n), can be longer if the map has to resize - * - Iterator still valid after change to container? - * No - * - Frees memory for removed elements? - * Yes - * - Items inserted by - * Value - * - Requirements for key type - * -# Default constructor - * -# Copy constructor - * -# operator= - * -# operator== - * - Requirements for object type - * -# Default constructor - * -# Copy constructor - * -# operator= - */ -template > -class ACE_Array_Map -{ -public: - - // STL-style typedefs/traits. - typedef Key key_type; - typedef Value data_type; - typedef std::pair value_type; - typedef value_type * iterator; - typedef value_type const * const_iterator; - typedef value_type & reference; - typedef value_type const & const_reference; - typedef value_type * pointer; - typedef value_type const * const_pointer; - typedef ptrdiff_t difference_type; - typedef size_t size_type; - - ACE_DECLARE_STL_REVERSE_ITERATORS - - /// Default Constructor. - /** - * Create an empty map with a preallocated buffer of size @a s. - */ - ACE_Array_Map (size_type s = 0); - -#ifndef ACE_LACKS_MEMBER_TEMPLATES - template - 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); - - /// Destructor. - ~ACE_Array_Map (void); - - /** - * @name Forward Iterator Accessors - * - * Forward iterator accessors. - */ - //@{ - iterator begin (void); - iterator end (void); - const_iterator begin (void) const; - const_iterator end (void) const; - //@} - - /** - * @name Reverse Iterator Accessors - * - * Reverse iterator accessors. - */ - //@{ - reverse_iterator rbegin (void); - reverse_iterator rend (void); - const_reverse_iterator rbegin (void) const; - const_reverse_iterator rend (void) const; - //@} - - /// Return current size of map. - /** - * @return The number of elements in the map. - */ - size_type size (void) const; - - /// Maximum number of elements the map can hold. - size_type max_size (void) const; - - /// Return @c true if the map is empty, else @c false. - bool is_empty (void) const; // ACE style - - /** - * Return @c true if the map is empty, else @c false. We recommend - * using @c is_empty() instead since it's more consistent with the - * ACE container naming conventions. - */ - bool empty (void) const; // STL style - - /// Swap the contents of this map with the given @a map in an - /// exception-safe manner. - void swap (ACE_Array_Map & map); - - /// Insert the value @a x into the map. - /** - * STL-style map insertion method. - * - * @param x @c std::pair containing key and datum. - * - * @return @c std::pair::second will be @c false if the map already - * contains a value with the same key as @a x. - */ - std::pair insert (value_type const & x); - -#ifndef ACE_LACKS_MEMBER_TEMPLATES - /// Insert range of elements into map. - template - 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); - - /// Remove element corresponding to key @a k from the map. - /** - * @return Number of elements that were erased. - */ - size_type erase (key_type const & k); - - /// Remove range of elements [@a first, @a last) from the map. - /** - * @note [@a first, @a last) must be valid range within the map. - */ - void erase (iterator first, iterator last); - - /// Clear contents of map. - /** - * @note This a constant time (O(1)) operation. - */ - void clear (void); - - /** - * @name Search Operations - * - * Search the map for data corresponding to key @a k. - */ - //@{ - /** - * @return @c end() if data corresponding to key @a k is not in the - * map. - */ - iterator find (key_type const & k); - - /** - * @return @c end() if data corresponding to key @a k is not in the - * map. - */ - const_iterator find (key_type const & k) const; - //@} - - /// Count the number of elements corresponding to key @a k. - /** - * @return In the case of this map, the count will always be one if - * such exists in the map. - */ - size_type count (key_type const & k); - - /// Convenience array index operator. - /** - * Array index operator that allows insertion and retrieval of - * elements using an array index syntax, such as: - * @par - * map["Foo"] = 12; - */ - data_type & operator[] (key_type const & k); - -private: - - /// Increase size of underlying buffer by @a s. - void grow (size_type s); - -private: - - /// Number of elements in the map. - size_type size_; - - /// Current size of underlying array. - /** - * @note @c capacity_ is always greater than or equal to @c size_; - */ - size_type capacity_; - - /// Underlying array containing keys and data. - value_type * nodes_; - -}; - -// -------------------------------------------------------------- - -/// @c ACE_Array_Map equality operator. -template -bool operator== (ACE_Array_Map const & lhs, - ACE_Array_Map const & rhs); - -/// @c ACE_Array_Map lexicographical comparison operator. -template -bool operator< (ACE_Array_Map const & lhs, - ACE_Array_Map const & rhs); - -// -------------------------------------------------------------- - -ACE_END_VERSIONED_NAMESPACE_DECL - -#ifdef __ACE_INLINE__ -# include "ace/Array_Map.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -# include "ace/Array_Map.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Array_Map.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ARRAY_MAP_H */ diff --git a/ACE/ace/Array_Map.inl b/ACE/ace/Array_Map.inl deleted file mode 100644 index 86a26d3f3aa..00000000000 --- a/ACE/ace/Array_Map.inl +++ /dev/null @@ -1,133 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_INLINE -ACE_Array_Map::ACE_Array_Map ( - typename ACE_Array_Map::size_type s) - : size_ (0) - , capacity_ (s) - , nodes_ (s == 0 ? 0 : new value_type[s]) -{ -} - -template -ACE_INLINE ACE_Array_Map & -ACE_Array_Map::operator= ( - ACE_Array_Map const & map) -{ - // Strongly exception-safe assignment. - - ACE_Array_Map temp (map); - this->swap (temp); - return *this; -} - -template -ACE_INLINE typename ACE_Array_Map::iterator -ACE_Array_Map::begin (void) -{ - return this->nodes_; -} - -template -ACE_INLINE typename ACE_Array_Map::iterator -ACE_Array_Map::end (void) -{ - return this->nodes_ + this->size_; -} - -template -ACE_INLINE typename ACE_Array_Map::const_iterator -ACE_Array_Map::begin (void) const -{ - return this->nodes_; -} - -template -ACE_INLINE typename ACE_Array_Map::const_iterator -ACE_Array_Map::end (void) const -{ - return this->nodes_ + this->size_; -} - -template -ACE_INLINE typename ACE_Array_Map::reverse_iterator -ACE_Array_Map::rbegin (void) -{ - return reverse_iterator (this->end ()); -} - -template -ACE_INLINE typename ACE_Array_Map::reverse_iterator -ACE_Array_Map::rend (void) -{ - return reverse_iterator (this->begin ()); -} - -template -ACE_INLINE typename ACE_Array_Map::const_reverse_iterator -ACE_Array_Map::rbegin (void) const -{ - return const_reverse_iterator (this->end ()); -} - -template -ACE_INLINE typename ACE_Array_Map::const_reverse_iterator -ACE_Array_Map::rend (void) const -{ - return const_reverse_iterator (this->begin ()); -} - -template -ACE_INLINE typename ACE_Array_Map::size_type -ACE_Array_Map::size (void) const -{ - return this->size_; -} - -template -ACE_INLINE typename ACE_Array_Map::size_type -ACE_Array_Map::max_size (void) const -{ - return size_type (-1) / sizeof (value_type); -} - -template -ACE_INLINE bool -ACE_Array_Map::is_empty (void) const -{ - return this->size_ == 0; -} - -// The following method is deprecated. - -template -ACE_INLINE bool -ACE_Array_Map::empty (void) const -{ - return this->is_empty (); -} - -template -ACE_INLINE typename ACE_Array_Map::size_type -ACE_Array_Map::count ( - typename ACE_Array_Map::key_type const & k) -{ - return - (this->find (k) == this->end () ? 0 : 1); // Only one datum per key. -} - -template -ACE_INLINE typename ACE_Array_Map::data_type & -ACE_Array_Map::operator[] ( - typename ACE_Array_Map::key_type const & k) -{ - iterator i = (this->insert (value_type (k, data_type ()))).first; - return (*i).second; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Assert.cpp b/ACE/ace/Assert.cpp deleted file mode 100644 index 06e4f34d2ea..00000000000 --- a/ACE/ace/Assert.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// $Id$ - -#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 -// . -void -__ace_assert(const char *file, int line, const ACE_TCHAR *expression) -{ - int error = ACE_Log_Msg::last_error_adapter (); - ACE_Log_Msg *log = ACE_Log_Msg::instance (); - - log->set (file, line, -1, error, log->restart (), - log->msg_ostream (), log->msg_callback ()); - - log->log (LM_ERROR, ACE_TEXT ("ACE_ASSERT: file %N, line %l assertion failed for '%s'.%a\n"), expression, -1); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Assert.h b/ACE/ace/Assert.h deleted file mode 100644 index 70e9b0060c4..00000000000 --- a/ACE/ace/Assert.h +++ /dev/null @@ -1,38 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Assert.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_ASSERT_H -#define ACE_ASSERT_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#include /**/ "ace/config-all.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -ACE_Export void __ace_assert(const char *file, int line, const ACE_TCHAR *expression); -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_NDEBUG) -#define ACE_ASSERT(x) \ - (static_cast(0)) -#else -#define ACE_ASSERT(X) \ - ((X) \ - ? static_cast(0) \ - : ACE_VERSIONED_NAMESPACE_NAME::__ace_assert(__FILE__, __LINE__, ACE_TEXT_CHAR_TO_TCHAR (#X))) -#endif /* ACE_NDEBUG */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ASSERT */ diff --git a/ACE/ace/Asynch_Acceptor.cpp b/ACE/ace/Asynch_Acceptor.cpp deleted file mode 100644 index 7ded341609f..00000000000 --- a/ACE/ace/Asynch_Acceptor.cpp +++ /dev/null @@ -1,516 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#ifndef ACE_ASYNCH_ACCEPTOR_C -#define ACE_ASYNCH_ACCEPTOR_C - -#include "ace/Asynch_Acceptor.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# 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. - -#include "ace/OS_Errno.h" -#include "ace/OS_Memory.h" -#include "ace/OS_NS_sys_socket.h" -#include "ace/Log_Msg.h" -#include "ace/Message_Block.h" -#include "ace/INET_Addr.h" -#include "ace/SOCK_Stream.h" -#include "ace/Sock_Connect.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Asynch_Acceptor::ACE_Asynch_Acceptor (void) - : listen_handle_ (ACE_INVALID_HANDLE), - pass_addresses_ (false), - validate_new_connection_ (false), - reissue_accept_ (1), - bytes_to_read_ (0) -{ -} - -template -ACE_Asynch_Acceptor::~ACE_Asynch_Acceptor (void) -{ - // Close down the listen socket - if (this->listen_handle_ != ACE_INVALID_HANDLE) - { - ACE_OS::closesocket (this->listen_handle_); - this->listen_handle_ = ACE_INVALID_HANDLE; - } -} - -template int -ACE_Asynch_Acceptor::open (const ACE_INET_Addr &address, - size_t bytes_to_read, - bool pass_addresses, - int backlog, - int reuse_addr, - ACE_Proactor *proactor, - bool validate_new_connection, - int reissue_accept, - int number_of_initial_accepts) -{ - ACE_TRACE ("ACE_Asynch_Acceptor<>::open"); - - this->proactor (proactor); - this->pass_addresses_ = pass_addresses; - this->bytes_to_read_ = bytes_to_read; - this->validate_new_connection_ = validate_new_connection; - this->reissue_accept_ = reissue_accept; - this->addr_family_ = address.get_type (); - - // Create the listener socket - this->listen_handle_ = ACE_OS::socket (address.get_type (), SOCK_STREAM, 0); - if (this->listen_handle_ == ACE_INVALID_HANDLE) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_OS::socket")), - -1); - // Initialize the ACE_Asynch_Accept - if (this->asynch_accept_.open (*this, - this->listen_handle_, - 0, - this->proactor ()) == -1) - { - ACE_Errno_Guard g (errno); - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Asynch_Accept::open"))); - ACE_OS::closesocket (this->listen_handle_); - this->listen_handle_ = ACE_INVALID_HANDLE; - return -1; - } - - if (reuse_addr) - { - // Reuse the address - int one = 1; - if (ACE_OS::setsockopt (this->listen_handle_, - SOL_SOCKET, - SO_REUSEADDR, - (const char*) &one, - sizeof one) == -1) - { - ACE_Errno_Guard g (errno); - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_OS::setsockopt"))); - ACE_OS::closesocket (this->listen_handle_); - this->listen_handle_ = ACE_INVALID_HANDLE; - return -1; - } - } - - // If port is not specified, bind to any port. - static ACE_INET_Addr sa (ACE_sap_any_cast (const ACE_INET_Addr &)); - - if (address == sa && - ACE::bind_port (this->listen_handle_, - INADDR_ANY, - address.get_type()) == -1) - { - ACE_Errno_Guard g (errno); - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE::bind_port"))); - ACE_OS::closesocket (this->listen_handle_); - this->listen_handle_ = ACE_INVALID_HANDLE; - return -1; - } - - // Bind to the specified port. - if (ACE_OS::bind (this->listen_handle_, - reinterpret_cast (address.get_addr ()), - address.get_size ()) == -1) - { - ACE_Errno_Guard g (errno); - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_OS::bind"))); - ACE_OS::closesocket (this->listen_handle_); - this->listen_handle_ = ACE_INVALID_HANDLE; - return -1; - } - - // Start listening. - if (ACE_OS::listen (this->listen_handle_, backlog) == -1) - { - ACE_Errno_Guard g (errno); - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_OS::listen"))); - ACE_OS::closesocket (this->listen_handle_); - this->listen_handle_ = ACE_INVALID_HANDLE; - return -1; - } - - // For the number of . - if (number_of_initial_accepts == -1) - number_of_initial_accepts = backlog; - - for (int i = 0; i < number_of_initial_accepts; i++) - { - // Initiate accepts. - if (this->accept (bytes_to_read) == -1) - { - ACE_Errno_Guard g (errno); - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Asynch_Acceptor::accept"))); - ACE_OS::closesocket (this->listen_handle_); - this->listen_handle_ = ACE_INVALID_HANDLE; - return -1; - } - } - - return 0; -} - -template int -ACE_Asynch_Acceptor::set_handle (ACE_HANDLE listen_handle) -{ - ACE_TRACE ("ACE_Asynch_Acceptor<>::set_handle"); - - // Take ownership of the - this->listen_handle_ = listen_handle; - - // Reinitialize the ACE_Asynch_Accept - if (this->asynch_accept_.open (*this, - this->listen_handle_, - 0, - this->proactor ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Asynch_Accept::open")), - -1); - return 0; -} - -template ACE_HANDLE -ACE_Asynch_Acceptor::get_handle (void) const -{ - return this->listen_handle_; -} - -template int -ACE_Asynch_Acceptor::accept (size_t bytes_to_read, const void *act) -{ - ACE_TRACE ("ACE_Asynch_Acceptor<>::accept"); - - ACE_Message_Block *message_block = 0; - // The space_needed calculation is drive by needs of Windows. POSIX doesn't - // need to extra 16 bytes, but it doesn't hurt. - size_t space_needed = sizeof (sockaddr_in) + 16; -#if defined (ACE_HAS_IPV6) - if (PF_INET6 == this->addr_family_) - space_needed = sizeof (sockaddr_in6) + 16; -#endif /* ACE_HAS_IPV6 */ - space_needed = (2 * space_needed) + bytes_to_read; - - // Create a new message block big enough for the addresses and data - ACE_NEW_RETURN (message_block, - ACE_Message_Block (space_needed), - -1); - - // Initiate asynchronous accepts - if (this->asynch_accept_.accept (*message_block, - bytes_to_read, - ACE_INVALID_HANDLE, - act, - 0, - ACE_SIGRTMIN, - this->addr_family_) == -1) - { - // Cleanup on error - message_block->release (); - return -1; - } - return 0; -} - -template void -ACE_Asynch_Acceptor::handle_accept (const ACE_Asynch_Accept::Result &result) -{ - ACE_TRACE ("ACE_Asynch_Acceptor<>::handle_accept"); - - // Variable for error tracking - int error = 0; - - // If the asynchronous accept fails. - if (!result.success () || result.accept_handle () == ACE_INVALID_HANDLE) - { - error = 1; - } - -#if defined (ACE_WIN32) - // In order to use accept handle with other Window Sockets 1.1 - // functions, we call the setsockopt function with the - // SO_UPDATE_ACCEPT_CONTEXT option. This option initializes the - // socket so that other Windows Sockets routines to access the - // socket correctly. - if (!error && - ACE_OS::setsockopt (result.accept_handle (), - SOL_SOCKET, - SO_UPDATE_ACCEPT_CONTEXT, - (char *) &this->listen_handle_, - sizeof (this->listen_handle_)) == -1) - { - error = 1; - } -#endif /* ACE_WIN32 */ - - // Parse address. - ACE_INET_Addr local_address; - ACE_INET_Addr remote_address; - if (!error && - (this->validate_new_connection_ || this->pass_addresses_)) - // Parse the addresses. - this->parse_address (result, - remote_address, - local_address); - - // Validate remote address - if (!error && - this->validate_new_connection_ && - (this->validate_connection (result, remote_address, local_address) == -1)) - { - error = 1; - } - - HANDLER *new_handler = 0; - if (!error) - { - // The Template method - new_handler = this->make_handler (); - if (new_handler == 0) - { - error = 1; - } - } - - // If no errors - if (!error) - { - // Update the Proactor. - new_handler->proactor (this->proactor ()); - - // Pass the addresses - if (this->pass_addresses_) - new_handler->addresses (remote_address, - local_address); - - // Pass the ACT - if (result.act () != 0) - new_handler->act (result.act ()); - - // Set up the handler's new handle value - new_handler->handle (result.accept_handle ()); - - // Initiate the handler - new_handler->open (result.accept_handle (), - result.message_block ()); - } - - // On failure, no choice but to close the socket - if (error && - result.accept_handle() != ACE_INVALID_HANDLE ) - ACE_OS::closesocket (result.accept_handle ()); - - // Delete the dynamically allocated message_block - result.message_block ().release (); - - // Start off another asynchronous accept to keep the backlog going, - // unless we closed the listen socket already (from the destructor), - // or this callback is the result of a canceled/aborted accept. - if (this->should_reissue_accept () && - this->listen_handle_ != ACE_INVALID_HANDLE -#if defined (ACE_WIN32) - && result.error () != ERROR_OPERATION_ABORTED -#else - && result.error () != ECANCELED -#endif - ) - this->accept (this->bytes_to_read_); -} - -template int -ACE_Asynch_Acceptor::validate_connection - (const ACE_Asynch_Accept::Result& /* result */, - const ACE_INET_Addr& /* remote */, - const ACE_INET_Addr& /* local */) -{ - // Default implementation always validates the remote address. - return 0; -} - -template int -ACE_Asynch_Acceptor::cancel (void) -{ - ACE_TRACE ("ACE_Asynch_Acceptor<>::cancel"); - - // All I/O operations that are canceled will complete with the error - // ERROR_OPERATION_ABORTED. All completion notifications for the I/O - // operations will occur normally. -#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) && \ - (defined (_MSC_VER) || defined (__BORLANDC__)) - return (int) ::CancelIo (this->listen_handle_); -#else - // Supported now - return this->asynch_accept_.cancel(); - -#endif /* defined (ACE_HAS_WIN32_OVERLAPPED_IO) && (defined (_MSC_VER)) || defined (__BORLANDC__)) */ -} - -template void -ACE_Asynch_Acceptor::parse_address (const - ACE_Asynch_Accept::Result &result, - ACE_INET_Addr &remote_address, - ACE_INET_Addr &local_address) -{ - ACE_TRACE ("ACE_Asynch_Acceptor<>::parse_address"); - -#if defined (ACE_HAS_AIO_CALLS) - - // Use an ACE_SOCK to get the addresses - it knows how to deal with - // ACE_INET_Addr objects and get IPv4/v6 addresses. - ACE_SOCK_Stream str (result.accept_handle ()); - str.get_local_addr (local_address); - str.get_remote_addr (remote_address); - -#elif defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) - - ACE_Message_Block &message_block = result.message_block (); - - sockaddr *local_addr = 0; - sockaddr *remote_addr = 0; - int local_size = 0; - int remote_size = 0; - // This matches setup in accept(). - size_t addr_size = sizeof (sockaddr_in) + 16; -#if defined (ACE_HAS_IPV6) - if (this->addr_family_ == PF_INET6) - addr_size = sizeof (sockaddr_in6) + 16; -#endif /* ACE_HAS_IPV6 */ - - ::GetAcceptExSockaddrs (message_block.rd_ptr (), - static_cast (this->bytes_to_read_), - static_cast (addr_size), - static_cast (addr_size), - &local_addr, - &local_size, - &remote_addr, - &remote_size); - - local_address.set (reinterpret_cast (local_addr), - local_size); - remote_address.set (reinterpret_cast (remote_addr), - remote_size); -#else - // just in case - errno = ENOTSUP; -#endif /* defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) */ - return; -} - -template ACE_HANDLE -ACE_Asynch_Acceptor::handle (void) const -{ - return this->listen_handle_; -} - -template void -ACE_Asynch_Acceptor::handle (ACE_HANDLE h) -{ - ACE_Handler::handle (h); -} - -template ACE_Asynch_Accept & -ACE_Asynch_Acceptor::asynch_accept (void) -{ - return this->asynch_accept_; -} - -template HANDLER * -ACE_Asynch_Acceptor::make_handler (void) -{ - // Default behavior - HANDLER *handler = 0; - ACE_NEW_RETURN (handler, - HANDLER, - 0); - return handler; -} - -/* static */ -template size_t -ACE_Asynch_Acceptor::address_size (void) -{ - return sizeof (sockaddr) + sizeof (sockaddr_in); -} - -template bool -ACE_Asynch_Acceptor::pass_addresses (void) const -{ - return this->pass_addresses_; -} - -template void -ACE_Asynch_Acceptor::pass_addresses (bool new_value) -{ - this->pass_addresses_ = new_value; -} - -template bool -ACE_Asynch_Acceptor::validate_new_connection (void) const -{ - return this->validate_new_connection_; -} - -template void -ACE_Asynch_Acceptor::validate_new_connection (bool new_value) -{ - this->validate_new_connection_ = new_value; -} - -template int -ACE_Asynch_Acceptor::reissue_accept (void) const -{ - return this->reissue_accept_; -} - -template void -ACE_Asynch_Acceptor::reissue_accept (int new_value) -{ - this->reissue_accept_ = new_value; -} - -template size_t -ACE_Asynch_Acceptor::bytes_to_read (void) const -{ - return this->bytes_to_read_; -} - -template void -ACE_Asynch_Acceptor::bytes_to_read (size_t new_value) -{ - this->bytes_to_read_ = new_value; -} - -template int -ACE_Asynch_Acceptor::should_reissue_accept (void) -{ - return this->reissue_accept_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS */ -#endif /* ACE_ASYNCH_ACCEPTOR_C */ diff --git a/ACE/ace/Asynch_Acceptor.h b/ACE/ace/Asynch_Acceptor.h deleted file mode 100644 index af7944e4b58..00000000000 --- a/ACE/ace/Asynch_Acceptor.h +++ /dev/null @@ -1,281 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Asynch_Acceptor.h - * - * $Id$ - * - * @author Irfan Pyarali (irfan@cs.wustl.edu) - */ -//============================================================================= - -#ifndef ACE_ASYNCH_ACCEPTOR_H -#define ACE_ASYNCH_ACCEPTOR_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_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS) -// This only works on platforms that support async i/o. - -#include "ace/Default_Constants.h" -#include "ace/Asynch_IO.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declarations -class ACE_Message_Block; -class ACE_INET_Addr; - -/** - * @class ACE_Asynch_Acceptor - * - * @brief This class is an example of the Acceptor Pattern. This class - * will accept new connections and create new HANDLER to handle - * the new connections. - * - * Unlike the ACE_Acceptor, however, this class is designed to - * be used asynchronously. - */ -template -class ACE_Asynch_Acceptor : public ACE_Handler -{ -public: - /// A do nothing constructor. - ACE_Asynch_Acceptor (void); - - /// Virtual destruction - virtual ~ACE_Asynch_Acceptor (void); - - /** - * @c open starts one or more asynchronous accept requests on a - * @a address. Each accept operation may optionally read an - * initial buffer from the new connection when accepted. - * - * @param address The address to listen/accept connections on. - * If the address does not specify a port, a random - * port is selected and bound. - * @param bytes_to_read Optional, specifies the maximum number of bytes - * to read with the accept. The buffer for the initial - * data is allocated internally and passed to the - * @c ACE_Service_Handler::open() hook method. It is - * legitimate only during the @c open() method and must - * be copied if required after @c open() returns. - * This pre-read function works only on Windows. - * @param pass_addresses Optional, a non-zero value indicates that - * the local and peer addresses should be passed to the - * associated @c ACE_Service_Handler::addresses() method - * after any call to @c validate_new_connection() and prior - * to the @c open() hook method call. - * @param backlog Optional, defaulting to @c ACE_DEFAULT_ASYNCH_BACKLOG (which - * can be adjusted in your platform's @c config.h file). - * Specifies the listening backlog for the listening socket. - * @param reuse_addr Optional, indicates whether the @c SO_REUSEADDR - * option is set on the listening socket or not. - * @param proactor Optional, pointer to the @c ACE_Proactor to use for - * demultiplexing asynchronous accepts. If 0, the - * process's singleton @c ACE_Proactor is used. - * @param validate_new_connection Optional, if true, this object's - * @c validate_connection() method is called after - * the accept completes, but before the service handler's - * @c open() hook method is called. If @c - * validate_connection() returns -1, the newly-accepted - * socket is immediately closed, and the @c addresses() - * method is not called. - * @param reissue_accept Optional, if non-zero (the default), a new - * asynchronous accept operation is started after each - * completion, whether the completion is for success or - * failure, and whether or not a successfully-accepted - * connection is subsequently refused. - * @param number_of_initial_accepts Optional, the number of asynchronous - * accepts that are started immediately. If -1 (the - * default), the value of @a backlog is used. - * - * @note On Windows, the peer address is only available at the time - * the connection is accepted. Therefore, if you require the peer - * address on Windows, do not rely on the - * @c ACE_SOCK::get_remote_addr() method - it won't work. You must - * supply a non-zero value for @a pass_addresses and obtain the - * peer address in the @c ACE_Service_Handler::addresses() method. - * - * @see ACE_INET_Addr - * @see ACE_Service_Handler - */ - virtual int open (const ACE_INET_Addr &address, - size_t bytes_to_read = 0, - bool pass_addresses = false, - int backlog = ACE_DEFAULT_ASYNCH_BACKLOG, - int reuse_addr = 1, - ACE_Proactor *proactor = 0, - bool validate_new_connection = false, - int reissue_accept = 1, - int number_of_initial_accepts = -1); - - /// Get the underlying handle. - virtual ACE_HANDLE get_handle (void) const; - - /** - * Set the underlying listen handle. It is the user's responsibility - * to make sure that the old listen handle has been appropriately - * closed and the all outstanding asynchronous operations have - * either completed or have been canceled on the old listen handle. - */ - virtual int set_handle (ACE_HANDLE handle); - - /// This initiates a new asynchronous accept operation. - /** - * You need only call this method if the @a reissue_accept argument - * passed to @c open() was 0. - */ - virtual int accept (size_t bytes_to_read = 0, const void *act = 0); - - /** - * Cancels all pending accepts operations issued by this object. - * - * @note On Windows, only accept operations initiated by the calling thread - * are canceled. - */ - virtual int cancel (void); - - /** - * Template method to validate peer before service is opened. - * This method is called after a new connection is accepted if the - * @a validate_connection argument to @c open() was non-zero or - * the @c validate_new_connection() method is called to turn this - * feature on. The default implementation returns 0. Users can - * reimplement this method to perform validation of the peer - * using it's address, running an authentication procedure (such as - * SSL) or anything else necessary or desireable. The return value - * from this method determines whether or not ACE will continue - * opening the service or abort the connection. - * - * @param result Result of the connection acceptance. - * @param remote Peer's address. - * @param local Local address connection was accepted at. - * - * @retval -1 ACE_Asynch_Acceptor will close the connection, and - * the service will not be opened. - * @retval 0 Service opening will proceeed. - */ - virtual int validate_connection (const ACE_Asynch_Accept::Result& result, - const ACE_INET_Addr &remote, - const ACE_INET_Addr& local); - - /** - * Template method for deciding whether to reissue accept. - * - * This hook method is called after each accept completes to decide if - * another accept should be initiated. If the method returns a non-zero - * value, another accept is initiated. - * - * The default implemenation always returns the value passed as the - * @c open() method's @a reissue_accept argument. That value can also - * be changed using the @c reissue_accept() method. - */ - virtual int should_reissue_accept (void); - - // - // These are low level tweaking methods - // - - /// Get flag that indicates if parsing and passing of addresses to - /// the service_handler is necessary. - virtual bool pass_addresses (void) const; - - /// Set flag that indicates if parsing and passing of addresses to - /// the service_handler is necessary. - virtual void pass_addresses (bool new_value); - - /// Get flag that indicates if address validation is required. - virtual bool validate_new_connection (void) const; - - /// Set flag that indicates if address validation is required. - virtual void validate_new_connection (bool new_value); - - /// Get flag that indicates if a new accept should be reissued when a accept - /// completes. - virtual int reissue_accept (void) const; - - /// Set flag that indicates if a new accept should be reissued when a accept - /// completes. - virtual void reissue_accept (int new_value); - - /// Get bytes to be read with the call. - virtual size_t bytes_to_read (void) const; - - /// Set bytes to be read with the 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. - virtual void handle_accept (const ACE_Asynch_Accept::Result &result); - - /// Return the listen handle. - ACE_HANDLE handle (void) const; - /// Set the listen handle. - void handle (ACE_HANDLE h); - - /// This parses the address from read buffer. - void parse_address (const ACE_Asynch_Accept::Result &result, - ACE_INET_Addr &remote_address, - ACE_INET_Addr &local_address); - - /// Return the asynch accept object. - ACE_Asynch_Accept &asynch_accept (void); - - /** - * This is the template method used to create new handler. - * Subclasses must overwrite this method if a new handler creation - * strategy is required. - */ - virtual HANDLER *make_handler (void); - -private: - /// Handle used to listen for new connections. - ACE_HANDLE listen_handle_; - - /// Asynch_Accept used to make life easier :-) - ACE_Asynch_Accept asynch_accept_; - - /// Flag that indicates if parsing of addresses is necessary. - bool pass_addresses_; - - /// Flag that indicates if address validation is required. - bool validate_new_connection_; - - /// Flag that indicates if a new accept should be reissued when a - /// accept completes. - int reissue_accept_; - - /// Bytes to be read with the call. - size_t bytes_to_read_; - - /// Address family used to open this object. Obtained from @a address passed - /// to @c open(). - int addr_family_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Asynch_Acceptor.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Asynch_Acceptor.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif /* ACE_HAS_WIN32_OVERLAPPED_IO || ACE_HAS_AIO_CALLS */ -#include /**/ "ace/post.h" -#endif /* ACE_ASYNCH_ACCEPTOR_H */ diff --git a/ACE/ace/Asynch_Connector.cpp b/ACE/ace/Asynch_Connector.cpp deleted file mode 100644 index fd61fcfdb8a..00000000000 --- a/ACE/ace/Asynch_Connector.cpp +++ /dev/null @@ -1,296 +0,0 @@ -// $Id$ - -#ifndef ACE_ASYNCH_CONNECTOR_CPP -#define ACE_ASYNCH_CONNECTOR_CPP - -#include "ace/Asynch_Connector.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if (defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)) && !defined(ACE_HAS_WINCE) -// This only works on platforms that support async I/O. - -#include "ace/OS_NS_sys_socket.h" -#include "ace/OS_Memory.h" -#include "ace/Flag_Manip.h" -#include "ace/Log_Msg.h" -#include "ace/Message_Block.h" -#include "ace/INET_Addr.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Asynch_Connector::ACE_Asynch_Connector (void) - : pass_addresses_ (false), - validate_new_connection_ (false) -{ -} - -template -ACE_Asynch_Connector::~ACE_Asynch_Connector (void) -{ - //this->asynch_connect_.close (); -} - -template int -ACE_Asynch_Connector::open (bool pass_addresses, - ACE_Proactor *proactor, - bool validate_new_connection) -{ - this->proactor (proactor); - this->pass_addresses_ = pass_addresses; - this->validate_new_connection_ = validate_new_connection; - - // Initialize the ACE_Asynch_Connect - if (this->asynch_connect_.open (*this, - ACE_INVALID_HANDLE, - 0, - this->proactor ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Asynch_Connect::open")), - -1); - return 0; -} - -template int -ACE_Asynch_Connector::connect (const ACE_INET_Addr & remote_sap, - const ACE_INET_Addr & local_sap, - int reuse_addr, - const void *act) -{ - // Initiate asynchronous connect - if (this->asynch_connect_.connect (ACE_INVALID_HANDLE, - remote_sap, - local_sap, - reuse_addr, - act) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Asynch_Connect::connect")), - -1); - return 0; -} - -template void -ACE_Asynch_Connector::handle_connect (const ACE_Asynch_Connect::Result &result) -{ - // Variable for error tracking - int error = 0; - - // If the asynchronous connect fails. - if (!result.success () || - result.connect_handle () == ACE_INVALID_HANDLE) - { - error = 1; - } - - if (result.error () != 0) - { - error = 1; - } - - // set blocking mode - if (!error && - ACE::clr_flags - (result.connect_handle (), ACE_NONBLOCK) != 0) - { - error = 1; - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Asynch_Connector::handle_connect : Set blocking mode"))); - } - - // Parse the addresses. - ACE_INET_Addr local_address; - ACE_INET_Addr remote_address; - if (!error && - (this->validate_new_connection_ || this->pass_addresses_)) - this->parse_address (result, - remote_address, - local_address); - - // Call validate_connection even if there was an error - it's the only - // way the application can learn the connect disposition. - if (this->validate_new_connection_ && - this->validate_connection (result, remote_address, local_address) == -1) - { - error = 1; - } - - HANDLER *new_handler = 0; - if (!error) - { - // The Template method - new_handler = this->make_handler (); - if (new_handler == 0) - { - error = 1; - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Asynch_Connector::handle_connect : Making of new handler failed"))); - } - } - - // If no errors - if (!error) - { - // Update the Proactor. - new_handler->proactor (this->proactor ()); - - // Pass the addresses - if (this->pass_addresses_) - new_handler->addresses (remote_address, - local_address); - - // Pass the ACT - if (result.act () != 0) - new_handler->act (result.act ()); - - // Set up the handler's new handle value - new_handler->handle (result.connect_handle ()); - - ACE_Message_Block mb; - - // Initiate the handler with empty message block; - new_handler->open (result.connect_handle (), mb); - } - - // On failure, no choice but to close the socket - if (error && - result.connect_handle() != ACE_INVALID_HANDLE) - ACE_OS::closesocket (result.connect_handle ()); -} - -template int -ACE_Asynch_Connector::validate_connection - (const ACE_Asynch_Connect::Result &, - const ACE_INET_Addr & /* remote_address */, - const ACE_INET_Addr & /* local_address */) -{ - // Default implementation always validates the remote address. - return 0; -} - -template int -ACE_Asynch_Connector::cancel (void) -{ - return this->asynch_connect_.cancel (); -} - -template void -ACE_Asynch_Connector::parse_address (const ACE_Asynch_Connect::Result &result, - ACE_INET_Addr &remote_address, - ACE_INET_Addr &local_address) -{ -#if defined (ACE_HAS_IPV6) - // Getting the addresses. - sockaddr_in6 local_addr; - sockaddr_in6 remote_addr; -#else - // Getting the addresses. - sockaddr_in local_addr; - sockaddr_in remote_addr; -#endif /* ACE_HAS_IPV6 */ - - // Get the length. - int local_size = sizeof (local_addr); - int remote_size = sizeof (remote_addr); - - // Get the local address. - if (ACE_OS::getsockname (result.connect_handle (), - reinterpret_cast (&local_addr), - &local_size) < 0) - ACE_ERROR ((LM_ERROR, - ACE_TEXT("%p\n"), - ACE_TEXT("ACE_Asynch_Connector:: failed"))); - - // Get the remote address. - if (ACE_OS::getpeername (result.connect_handle (), - reinterpret_cast (&remote_addr), - &remote_size) < 0) - ACE_ERROR ((LM_ERROR, - ACE_TEXT("%p\n"), - ACE_TEXT("ACE_Asynch_Connector:: failed"))); - - // Set the addresses. - local_address.set (reinterpret_cast (&local_addr), - local_size); - remote_address.set (reinterpret_cast (&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::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::parse_address : " - "Remote address %s\n", - remote_address_buf)); -#endif /* 0 */ - - return; -} - - -template ACE_Asynch_Connect & -ACE_Asynch_Connector::asynch_connect (void) -{ - return this->asynch_connect_; -} - -template HANDLER * -ACE_Asynch_Connector::make_handler (void) -{ - // Default behavior - HANDLER *handler = 0; - ACE_NEW_RETURN (handler, HANDLER, 0); - return handler; -} - -template bool -ACE_Asynch_Connector::pass_addresses (void) const -{ - return this->pass_addresses_; -} - -template void -ACE_Asynch_Connector::pass_addresses (bool new_value) -{ - this->pass_addresses_ = new_value; -} - -template bool -ACE_Asynch_Connector::validate_new_connection (void) const -{ - return this->validate_new_connection_; -} - -template void -ACE_Asynch_Connector::validate_new_connection (bool new_value) -{ - this->validate_new_connection_ = new_value; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS */ -#endif /* ACE_ASYNCH_CONNECTOR_CPP */ diff --git a/ACE/ace/Asynch_Connector.h b/ACE/ace/Asynch_Connector.h deleted file mode 100644 index 4e049584d77..00000000000 --- a/ACE/ace/Asynch_Connector.h +++ /dev/null @@ -1,171 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Asynch_Connector.h - * - * $Id$ - * - * @author Alexander Libman - */ -//============================================================================= - -#ifndef ACE_ASYNCH_CONNECTOR_H -#define ACE_ASYNCH_CONNECTOR_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_WIN32) || defined (ACE_HAS_AIO_CALLS)) && !defined(ACE_HAS_WINCE) -// This only works on platforms that support async i/o. - -#include "ace/Asynch_IO.h" -#include "ace/INET_Addr.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declarations -class ACE_Message_Block; - -/** - * @class ACE_Asynch_Connector - * - * @brief This class is an example of the Connector pattern. This class - * will establish new connections and create new HANDLER objects to handle - * the new connections. - * - * Unlike the ACE_Connector, however, this class is designed to - * be used asynchronously with the ACE Proactor framework. - */ - -template -class ACE_Asynch_Connector : public ACE_Handler -{ -public: - /// A do nothing constructor. - ACE_Asynch_Connector (void); - - /// Virtual destruction - virtual ~ACE_Asynch_Connector (void); - - /** - * This opens asynch connector - */ - virtual int open (bool pass_addresses = false, - ACE_Proactor *proactor = 0, - bool validate_new_connection = true); - - /// This initiates a new asynchronous connect - virtual int connect (const ACE_INET_Addr &remote_sap, - const ACE_INET_Addr &local_sap = - (const ACE_INET_Addr &)ACE_Addr::sap_any, - int reuse_addr = 1, - const void *act = 0); - - /** - * This cancels all pending accepts operations that were issued by - * the calling thread. - * - * @note On Windows, this method does not cancel connect operations - * issued by other threads. - * - * @note On POSIX, delegates cancelation to ACE_POSIX_Asynch_Connect. - */ - virtual int cancel (void); - - - /** - * Template method to validate peer before service is opened. - * This method is called when the connection attempt completes, - * whether it succeeded or failed, if the @a validate_connection - * argument to @c open() was non-zero or the @c validate_new_connection() - * method is called to turn this feature on. The default implementation - * returns 0. Users can (and probably should) reimplement this method - * to learn about the success or failure of the connection attempt. - * If the connection completed successfully, this method can be used to - * perform validation of the peer using it's address, running an - * authentication procedure (such as SSL) or anything else necessary or - * desireable. The return value from this method determines whether or - * not ACE will continue opening the service or abort the connection. - * - * @param result Result of the connection acceptance. Use - * result.success() to determine success or failure of - * the connection attempt. - * @param remote Peer's address. If the connection failed, this object - * is undefined. - * @param local Local address connection was completed from. If the - * connection failed, this object is undefined. - * - * @retval -1 ACE_Asynch_Connector will close the connection, and - * the service will not be opened. - * @retval 0 Service opening will proceeed. - * @return Return value is ignored if the connection attempt failed. - */ - virtual int validate_connection (const ACE_Asynch_Connect::Result& result, - const ACE_INET_Addr &remote, - const ACE_INET_Addr& local); - - // - // These are low level tweaking methods - // - - /// Set and get flag that indicates if parsing and passing of - /// addresses to the service_handler is necessary. - virtual bool pass_addresses (void) const; - virtual void pass_addresses (bool new_value); - - /// Set and get flag that indicates if address validation is - /// required. - virtual bool validate_new_connection (void) const; - virtual void validate_new_connection (bool new_value); - -protected: - - /// This is called when an outstanding accept completes. - virtual void handle_connect (const ACE_Asynch_Connect::Result &result); - - - /// This parses the address from read buffer. - void parse_address (const ACE_Asynch_Connect::Result &result, - ACE_INET_Addr &remote_address, - ACE_INET_Addr &local_address); - - /// Return the asynch Connect object. - ACE_Asynch_Connect & asynch_connect (void); - - /** - * This is the template method used to create new handler. - * Subclasses must overwrite this method if a new handler creation - * strategy is required. - */ - virtual HANDLER *make_handler (void); - -private: - - /// Asynch_Connect used to make life easier :-) - ACE_Asynch_Connect asynch_connect_; - - /// Flag that indicates if parsing of addresses is necessary. - bool pass_addresses_; - - /// Flag that indicates if address validation is required. - bool validate_new_connection_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Asynch_Connector.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Asynch_Connector.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS */ -#include /**/ "ace/post.h" -#endif /* ACE_ASYNCH_CONNECTOR_H */ diff --git a/ACE/ace/Asynch_IO.cpp b/ACE/ace/Asynch_IO.cpp deleted file mode 100644 index 3ebf11eff5c..00000000000 --- a/ACE/ace/Asynch_IO.cpp +++ /dev/null @@ -1,1411 +0,0 @@ -// $Id$ - -#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 - -#include "ace/Proactor.h" -#include "ace/Message_Block.h" -#include "ace/INET_Addr.h" -#include "ace/Asynch_IO_Impl.h" -#include "ace/os_include/os_errno.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -size_t -ACE_Asynch_Result::bytes_transferred (void) const -{ - return this->implementation ()->bytes_transferred (); -} - -const void * -ACE_Asynch_Result::act (void) const -{ - return this->implementation ()->act (); -} - -int -ACE_Asynch_Result::success (void) const -{ - return this->implementation ()->success (); -} - -const void * -ACE_Asynch_Result::completion_key (void) const -{ - return this->implementation ()->completion_key (); -} - -unsigned long -ACE_Asynch_Result::error (void) const -{ - return this->implementation ()->error (); -} - -ACE_HANDLE -ACE_Asynch_Result::event (void) const -{ - return this->implementation ()->event (); -} - -unsigned long -ACE_Asynch_Result::offset (void) const -{ - return this->implementation ()->offset (); -} - -unsigned long -ACE_Asynch_Result::offset_high (void) const -{ - return this->implementation ()->offset_high (); -} - -int -ACE_Asynch_Result::priority (void) const -{ - return this->implementation ()->priority (); -} - -int -ACE_Asynch_Result::signal_number (void) const -{ - return this->implementation ()->signal_number (); -} - -ACE_Asynch_Result::ACE_Asynch_Result (ACE_Asynch_Result_Impl *implementation) - : implementation_ (implementation) -{ -} - -ACE_Asynch_Result::~ACE_Asynch_Result (void) -{ - // Proactor deletes the implementation when the finishes. -} - -ACE_Asynch_Result_Impl * -ACE_Asynch_Result::implementation (void) const -{ - return this->implementation_; -} - -// ********************************************************************* - -int -ACE_Asynch_Operation::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - return this->implementation ()->open (handler.proxy (), - handle, - completion_key, - proactor); -} - -int -ACE_Asynch_Operation::cancel (void) -{ - if (0 == this->implementation ()) - { - errno = EFAULT; - return -1; - } - return this->implementation ()->cancel (); -} - -ACE_Proactor * -ACE_Asynch_Operation::proactor (void) const -{ - if (0 == this->implementation ()) - { - errno = EFAULT; - return 0; - } - return this->implementation ()->proactor (); -} - -ACE_Asynch_Operation::ACE_Asynch_Operation (void) -{ -} - -ACE_Asynch_Operation::~ACE_Asynch_Operation (void) -{ -} - -ACE_Proactor * -ACE_Asynch_Operation::get_proactor (ACE_Proactor *user_proactor, - ACE_Handler &handler) const -{ - if (user_proactor == 0) - { - // Grab the singleton proactor if proactor> is zero - user_proactor = handler.proactor (); - if (user_proactor == 0) - user_proactor = ACE_Proactor::instance (); - } - - return user_proactor; -} - -// ************************************************************ - -ACE_Asynch_Read_Stream::ACE_Asynch_Read_Stream (void) - : implementation_ (0) -{ -} - -ACE_Asynch_Read_Stream::~ACE_Asynch_Read_Stream (void) -{ - // Delete the implementation. - delete this->implementation_; - this->implementation_ = 0; -} - -int -ACE_Asynch_Read_Stream::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - // Get a proactor for/from the user. - proactor = this->get_proactor (proactor, handler); - - // Now let us get the implementation initialized. - if ((this->implementation_ = proactor->create_asynch_read_stream ()) == 0) - return -1; - - // Call the method of the base class. - return ACE_Asynch_Operation::open (handler, - handle, - completion_key, - proactor); -} - -int -ACE_Asynch_Read_Stream::read (ACE_Message_Block &message_block, - size_t bytes_to_read, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->read (message_block, - bytes_to_read, - act, - priority, - signal_number); -} - -#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) -int -ACE_Asynch_Read_Stream::readv (ACE_Message_Block &message_block, - size_t bytes_to_read, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->readv (message_block, - bytes_to_read, - act, - priority, - signal_number); -} -#endif /* ACE_HAS_WIN32_OVERLAPPED_IO */ - -ACE_Asynch_Operation_Impl * -ACE_Asynch_Read_Stream::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -size_t -ACE_Asynch_Read_Stream::Result::bytes_to_read (void) const -{ - return this->implementation ()->bytes_to_read (); -} - -ACE_Message_Block & -ACE_Asynch_Read_Stream::Result::message_block (void) const -{ - return this->implementation ()->message_block (); -} - -ACE_HANDLE -ACE_Asynch_Read_Stream::Result::handle (void) const -{ - return this->implementation ()->handle (); -} - -ACE_Asynch_Read_Stream::Result::Result (ACE_Asynch_Read_Stream_Result_Impl *implementation) - : ACE_Asynch_Result (implementation), - implementation_ (implementation) -{ -} - -ACE_Asynch_Read_Stream::Result::~Result (void) -{ - // Proactor will delete the implementation after is - // finished. -} - -ACE_Asynch_Read_Stream_Result_Impl * -ACE_Asynch_Read_Stream::Result::implementation (void) const -{ - return this->implementation_; -} - -// *************************************************** - -ACE_Asynch_Write_Stream::ACE_Asynch_Write_Stream (void) - : implementation_ (0) -{ -} - -ACE_Asynch_Write_Stream::~ACE_Asynch_Write_Stream (void) -{ - // Delete the implementation. - delete this->implementation_; - this->implementation_ = 0; -} - -int -ACE_Asynch_Write_Stream::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - // Get a proactor for/from the user. - proactor = this->get_proactor (proactor, handler); - - // Now let us get the implementation initialized. - if ((this->implementation_ = proactor->create_asynch_write_stream ()) == 0) - return -1; - - // Call the method of the base class. - return ACE_Asynch_Operation::open (handler, - handle, - completion_key, - proactor); -} - -int -ACE_Asynch_Write_Stream::write (ACE_Message_Block &message_block, - size_t bytes_to_write, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->write (message_block, - bytes_to_write, - act, - priority, - signal_number); -} - -#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) -int -ACE_Asynch_Write_Stream::writev (ACE_Message_Block &message_block, - size_t bytes_to_write, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->writev (message_block, - bytes_to_write, - act, - priority, - signal_number); -} -#endif /* ACE_HAS_WIN32_OVERLAPPED_IO */ - -ACE_Asynch_Operation_Impl * -ACE_Asynch_Write_Stream::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -size_t -ACE_Asynch_Write_Stream::Result::bytes_to_write (void) const -{ - return this->implementation ()->bytes_to_write (); -} - -ACE_Message_Block & -ACE_Asynch_Write_Stream::Result::message_block (void) const -{ - return this->implementation ()->message_block (); -} - -ACE_HANDLE -ACE_Asynch_Write_Stream::Result::handle (void) const -{ - return this->implementation ()->handle (); -} - -ACE_Asynch_Write_Stream::Result::Result (ACE_Asynch_Write_Stream_Result_Impl *implementation) - : ACE_Asynch_Result (implementation), - implementation_ (implementation) -{ -} - -ACE_Asynch_Write_Stream::Result::~Result (void) -{ - // Proactor will delte the implementation when the call - // finishes. -} - -ACE_Asynch_Write_Stream_Result_Impl * -ACE_Asynch_Write_Stream::Result::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -ACE_Asynch_Read_File::ACE_Asynch_Read_File (void) - : implementation_ (0) -{ -} - -ACE_Asynch_Read_File::~ACE_Asynch_Read_File (void) -{ - // Delete the implementation. - delete this->implementation_; - this->implementation_ = 0; -} - -int -ACE_Asynch_Read_File::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - // Get a proactor for/from the user. - proactor = this->get_proactor (proactor, handler); - - // Now let us get the implementation initialized. - if ((this->implementation_ = proactor->create_asynch_read_file ()) == 0) - return -1; - - // Call the method of the base class. - return ACE_Asynch_Operation::open (handler, - handle, - completion_key, - proactor); -} - -int -ACE_Asynch_Read_File::read (ACE_Message_Block &message_block, - size_t bytes_to_read, - unsigned long offset, - unsigned long offset_high, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->read (message_block, - bytes_to_read, - offset, - offset_high, - act, - priority, - signal_number); -} - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) -int -ACE_Asynch_Read_File::readv (ACE_Message_Block &message_block, - size_t bytes_to_read, - unsigned long offset, - unsigned long offset_high, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->readv (message_block, - bytes_to_read, - offset, - offset_high, - act, - priority, - signal_number); -} -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - -ACE_Asynch_Operation_Impl * -ACE_Asynch_Read_File::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -ACE_Asynch_Read_File::Result::Result (ACE_Asynch_Read_File_Result_Impl *implementation) - : ACE_Asynch_Read_Stream::Result (implementation), - implementation_ (implementation) -{ -} - -ACE_Asynch_Read_File::Result::~Result (void) -{ - // Proactor will delete the implementation when call - // completes. -} - -ACE_Asynch_Read_File_Result_Impl * -ACE_Asynch_Read_File::Result::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -ACE_Asynch_Write_File::ACE_Asynch_Write_File (void) - : implementation_ (0) -{ -} - -ACE_Asynch_Write_File::~ACE_Asynch_Write_File (void) -{ - // Delete the implementation. - delete this->implementation_; - this->implementation_ = 0; -} - -int -ACE_Asynch_Write_File::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - // Get a proactor for/from the user. - proactor = this->get_proactor (proactor, handler); - - // Now let us get the implementation initialized. - if ((this->implementation_ = proactor->create_asynch_write_file ()) == 0) - return -1; - - // Call the method of the base class. - return ACE_Asynch_Operation::open (handler, - handle, - completion_key, - proactor); -} - -int -ACE_Asynch_Write_File::write (ACE_Message_Block &message_block, - size_t bytes_to_write, - unsigned long offset, - unsigned long offset_high, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->write (message_block, - bytes_to_write, - offset, - offset_high, - act, - priority, - signal_number); -} - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) -int -ACE_Asynch_Write_File::writev (ACE_Message_Block &message_block, - size_t bytes_to_write, - unsigned long offset, - unsigned long offset_high, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->writev (message_block, - bytes_to_write, - offset, - offset_high, - act, - priority, - signal_number); -} -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - -ACE_Asynch_Operation_Impl * -ACE_Asynch_Write_File::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -ACE_Asynch_Write_File::Result::Result (ACE_Asynch_Write_File_Result_Impl *implementation) - : ACE_Asynch_Write_Stream::Result (implementation), - implementation_ (implementation) -{ -} - -ACE_Asynch_Write_File::Result::~Result (void) -{ - // Proactor will delete the implementation when the call - // completes. -} - -ACE_Asynch_Write_File_Result_Impl * -ACE_Asynch_Write_File::Result::implementation (void) const -{ - return this->implementation_; -} - -// ********************************************************************* - -ACE_Asynch_Accept::ACE_Asynch_Accept (void) - : implementation_ (0) -{ -} - -ACE_Asynch_Accept::~ACE_Asynch_Accept (void) -{ - // Delete the implementation. - delete this->implementation_; - this->implementation_ = 0; -} - -int -ACE_Asynch_Accept::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - // Get a proactor for/from the user. - proactor = this->get_proactor (proactor, handler); - - // Now let us get the implementation initialized. - if ((this->implementation_ = proactor->create_asynch_accept ()) == 0) - return -1; - - // Call the method of the base class. - return ACE_Asynch_Operation::open (handler, - handle, - completion_key, - proactor); -} - -int -ACE_Asynch_Accept::accept (ACE_Message_Block &message_block, - size_t bytes_to_read, - ACE_HANDLE accept_handle, - const void *act, - int priority, - int signal_number, - int addr_family) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->accept (message_block, - bytes_to_read, - accept_handle, - act, - priority, - signal_number, - addr_family); -} - -ACE_Asynch_Operation_Impl * -ACE_Asynch_Accept::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -size_t -ACE_Asynch_Accept::Result::bytes_to_read (void) const -{ - return this->implementation ()->bytes_to_read (); -} - -ACE_Message_Block & -ACE_Asynch_Accept::Result::message_block (void) const -{ - return this->implementation ()->message_block (); -} - -ACE_HANDLE -ACE_Asynch_Accept::Result::listen_handle (void) const -{ - return this->implementation ()->listen_handle (); -} - -ACE_HANDLE -ACE_Asynch_Accept::Result::accept_handle (void) const -{ - return this->implementation ()->accept_handle (); -} - -ACE_Asynch_Accept::Result::Result (ACE_Asynch_Accept_Result_Impl *implementation) - : ACE_Asynch_Result (implementation), - implementation_ (implementation) -{ -} - -ACE_Asynch_Accept::Result::~Result (void) -{ - // Proactor will delete the implementation when the call - // completes. -} - -ACE_Asynch_Accept_Result_Impl * -ACE_Asynch_Accept::Result::implementation (void) const -{ - return this->implementation_; -} - - - -// ********************************************************************* - -ACE_Asynch_Connect::ACE_Asynch_Connect (void) - : implementation_ (0) -{ -} - -ACE_Asynch_Connect::~ACE_Asynch_Connect (void) -{ - // Delete the implementation. - delete this->implementation_; - this->implementation_ = 0; -} - -int -ACE_Asynch_Connect::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - // Get a proactor for/from the user. - proactor = this->get_proactor (proactor, handler); - - // Now let us get the implementation initialized. - if ((this->implementation_ = proactor->create_asynch_connect ()) == 0) - return -1; - - // Call the method of the base class. - return ACE_Asynch_Operation::open (handler, - handle, - completion_key, - proactor); -} - -int -ACE_Asynch_Connect::connect (ACE_HANDLE connect_handle, - const ACE_Addr & remote_sap, - const ACE_Addr & local_sap, - int reuse_addr, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->connect (connect_handle, - remote_sap, - local_sap, - reuse_addr, - act, - priority, - signal_number); -} - -ACE_Asynch_Operation_Impl * -ACE_Asynch_Connect::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -ACE_Asynch_Connect::Result::Result (ACE_Asynch_Connect_Result_Impl *implementation) - : ACE_Asynch_Result (implementation), - implementation_ (implementation) -{ -} - -ACE_Asynch_Connect::Result::~Result (void) -{ - // Proactor will delete the implementation when the call - // completes. -} - -ACE_HANDLE -ACE_Asynch_Connect::Result::connect_handle (void) const -{ - return this->implementation ()->connect_handle (); -} - - -ACE_Asynch_Connect_Result_Impl * -ACE_Asynch_Connect::Result::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -ACE_Asynch_Transmit_File::ACE_Asynch_Transmit_File (void) - : implementation_ (0) -{ -} - -ACE_Asynch_Transmit_File::~ACE_Asynch_Transmit_File (void) -{ - // Delete the implementation. - delete this->implementation_; - this->implementation_ = 0; -} - -int -ACE_Asynch_Transmit_File::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - // Get a proactor for/from the user. - proactor = this->get_proactor (proactor, handler); - - // Now let us get the implementation initialized. - if ((this->implementation_ = proactor->create_asynch_transmit_file ()) == 0) - return -1; - - // Call the method of the base class. - return ACE_Asynch_Operation::open (handler, - handle, - completion_key, - proactor); -} - -int -ACE_Asynch_Transmit_File::transmit_file (ACE_HANDLE file, - Header_And_Trailer *header_and_trailer, - size_t bytes_to_write, - unsigned long offset, - unsigned long offset_high, - size_t bytes_per_send, - unsigned long flags, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->transmit_file (file, - header_and_trailer, - bytes_to_write, - offset, - offset_high, - bytes_per_send, - flags, - act, - priority, - signal_number); -} - -ACE_Asynch_Operation_Impl * -ACE_Asynch_Transmit_File::implementation (void) const -{ - return this->implementation_; -} - -// **************************************************************************** - -ACE_HANDLE -ACE_Asynch_Transmit_File::Result::socket (void) const -{ - return this->implementation ()->socket (); -} - -ACE_HANDLE -ACE_Asynch_Transmit_File::Result::file (void) const -{ - return this->implementation ()->file (); -} - -ACE_Asynch_Transmit_File::Header_And_Trailer * -ACE_Asynch_Transmit_File::Result::header_and_trailer (void) const -{ - return this->implementation ()->header_and_trailer (); -} - -size_t -ACE_Asynch_Transmit_File::Result::bytes_to_write (void) const -{ - return this->implementation ()->bytes_to_write (); -} - -size_t -ACE_Asynch_Transmit_File::Result::bytes_per_send (void) const -{ - return this->implementation ()->bytes_per_send (); -} - -unsigned long -ACE_Asynch_Transmit_File::Result::flags (void) const -{ - return this->implementation ()->flags (); -} - -ACE_Asynch_Transmit_File::Result::Result (ACE_Asynch_Transmit_File_Result_Impl *implementation) - : ACE_Asynch_Result (implementation), - implementation_ (implementation) -{ -} - -ACE_Asynch_Transmit_File::Result::~Result (void) -{ -} - -ACE_Asynch_Transmit_File_Result_Impl * -ACE_Asynch_Transmit_File::Result::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -ACE_Asynch_Transmit_File::Header_And_Trailer::Header_And_Trailer (ACE_Message_Block *header, - size_t header_bytes, - ACE_Message_Block *trailer, - size_t trailer_bytes) - : header_ (header), - header_bytes_ (header_bytes), - trailer_ (trailer), - trailer_bytes_ (trailer_bytes) -{ -} - -ACE_Asynch_Transmit_File::Header_And_Trailer::~Header_And_Trailer (void) -{ -} - -void -ACE_Asynch_Transmit_File::Header_And_Trailer::header_and_trailer (ACE_Message_Block *header, - size_t header_bytes, - ACE_Message_Block *trailer, - size_t trailer_bytes) -{ - this->header (header); - this->header_bytes (header_bytes); - this->trailer (trailer); - this->trailer_bytes (trailer_bytes); -} - -ACE_Message_Block * -ACE_Asynch_Transmit_File::Header_And_Trailer::header (void) const -{ - return this->header_; -} - -void -ACE_Asynch_Transmit_File::Header_And_Trailer::header (ACE_Message_Block *message_block) -{ - this->header_ = message_block; -} - -size_t -ACE_Asynch_Transmit_File::Header_And_Trailer::header_bytes (void) const -{ - return this->header_bytes_; -} - -void -ACE_Asynch_Transmit_File::Header_And_Trailer::header_bytes (size_t bytes) -{ - this->header_bytes_ = bytes; -} - -ACE_Message_Block * -ACE_Asynch_Transmit_File::Header_And_Trailer::trailer (void) const -{ - return this->trailer_; -} - -void -ACE_Asynch_Transmit_File::Header_And_Trailer::trailer (ACE_Message_Block *message_block) -{ - this->trailer_ = message_block; -} - -size_t -ACE_Asynch_Transmit_File::Header_And_Trailer::trailer_bytes (void) const -{ - return this->trailer_bytes_; -} - -void -ACE_Asynch_Transmit_File::Header_And_Trailer::trailer_bytes (size_t bytes) -{ - this->trailer_bytes_ = bytes; -} - -ACE_LPTRANSMIT_FILE_BUFFERS -ACE_Asynch_Transmit_File::Header_And_Trailer::transmit_buffers (void) -{ - // If both are zero, return zero - if (this->header_ == 0 && this->trailer_ == 0) - return 0; - else - { - // Something is valid - - // If header is valid, set the fields - if (this->header_ != 0) - { - this->transmit_buffers_.Head = this->header_->rd_ptr (); -#if defined(ACE_WIN64) - this->transmit_buffers_.HeadLength = - static_cast (this->header_bytes_); -#else - this->transmit_buffers_.HeadLength = this->header_bytes_; -#endif /* ACE_WIN64 */ - } - else - { - this->transmit_buffers_.Head = 0; - this->transmit_buffers_.HeadLength = 0; - } - - // If trailer is valid, set the fields - if (this->trailer_ != 0) - { - this->transmit_buffers_.Tail = this->trailer_->rd_ptr (); -#if defined(ACE_WIN64) - this->transmit_buffers_.TailLength = - static_cast (this->trailer_bytes_); -#else - this->transmit_buffers_.TailLength = this->trailer_bytes_; -#endif /* ACE_WIN64 */ - } - else - { - this->transmit_buffers_.Tail = 0; - this->transmit_buffers_.TailLength = 0; - } - - // Return the transmit buffers - return &this->transmit_buffers_; - } -} - -// ********************************************************************* - -ACE_Handler::ACE_Handler (void) - : proactor_ (0), handle_ (ACE_INVALID_HANDLE) -{ - ACE_Handler::Proxy *p; - ACE_NEW (p, ACE_Handler::Proxy (this)); - this->proxy_.reset (p); -} - -ACE_Handler::ACE_Handler (ACE_Proactor *d) - : proactor_ (d), handle_ (ACE_INVALID_HANDLE) -{ - ACE_Handler::Proxy *p; - ACE_NEW (p, ACE_Handler::Proxy (this)); - this->proxy_.reset (p); -} - -ACE_Handler::~ACE_Handler (void) -{ - ACE_Handler::Proxy *p = this->proxy_.get (); - if (p) - p->reset (); -} - -void -ACE_Handler::handle_read_stream (const ACE_Asynch_Read_Stream::Result & /* result */) -{ -} - -void -ACE_Handler::handle_write_stream (const ACE_Asynch_Write_Stream::Result & /* result */) -{ -} - -void -ACE_Handler::handle_write_dgram (const ACE_Asynch_Write_Dgram::Result & /* result */) -{ -} - -void -ACE_Handler::handle_read_dgram (const ACE_Asynch_Read_Dgram::Result & /* result */) -{ -} - -void -ACE_Handler::handle_accept (const ACE_Asynch_Accept::Result & /* result */) -{ -} - -void -ACE_Handler::handle_connect (const ACE_Asynch_Connect::Result & /* result */) -{ -} - -void -ACE_Handler::handle_transmit_file (const ACE_Asynch_Transmit_File::Result & /* result */) -{ -} - -void -ACE_Handler::handle_read_file (const ACE_Asynch_Read_File::Result & /* result */) -{ -} - -void -ACE_Handler::handle_write_file (const ACE_Asynch_Write_File::Result & /* result */) -{ -} - -void -ACE_Handler::handle_time_out (const ACE_Time_Value & /* tv */, - const void * /* act */) -{ -} - -void -ACE_Handler::handle_wakeup (void) -{ -} - -ACE_Proactor * -ACE_Handler::proactor (void) -{ - return this->proactor_; -} - -void -ACE_Handler::proactor (ACE_Proactor *p) -{ - this->proactor_ = p; -} - -ACE_HANDLE -ACE_Handler::handle (void) const -{ - return this->handle_; -} - -void -ACE_Handler::handle (ACE_HANDLE h) -{ - this->handle_ = h; -} - -ACE_Refcounted_Auto_Ptr & -ACE_Handler::proxy (void) -{ - return this->proxy_; -} - -// ************************************************************ - -ACE_Service_Handler::ACE_Service_Handler (void) -{ -} - -ACE_Service_Handler::~ACE_Service_Handler (void) -{ -} - -void -ACE_Service_Handler::addresses (const ACE_INET_Addr & /* remote_address */, - const ACE_INET_Addr & /* local_address */ ) -{ -} - -void -ACE_Service_Handler::act (const void *) -{ -} - -void -ACE_Service_Handler::open (ACE_HANDLE, - ACE_Message_Block &) -{ -} - - -// ************************************************************ - -ACE_Asynch_Read_Dgram::ACE_Asynch_Read_Dgram (void) - : implementation_ (0) -{ -} - -ACE_Asynch_Read_Dgram::~ACE_Asynch_Read_Dgram (void) -{ - // Delete the implementation. - delete this->implementation_; - this->implementation_ = 0; -} - -int -ACE_Asynch_Read_Dgram::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - // Get a proactor for/from the user. - proactor = this->get_proactor (proactor, handler); - - // Now let us get the implementation initialized. - if ((this->implementation_ = proactor->create_asynch_read_dgram ()) == 0) - return -1; - - // Call the method of the base class. - return ACE_Asynch_Operation::open (handler, - handle, - completion_key, - proactor); -} - -ssize_t -ACE_Asynch_Read_Dgram::recv (ACE_Message_Block *message_block, - size_t &number_of_bytes_recvd, - int flags, - int protocol_family, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->recv (message_block, - number_of_bytes_recvd, - flags, - protocol_family, - act, - priority, - signal_number); -} - -ACE_Asynch_Operation_Impl * -ACE_Asynch_Read_Dgram::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -int -ACE_Asynch_Read_Dgram::Result::remote_address (ACE_Addr& addr) const -{ - return this->implementation ()->remote_address (addr); -} - -ACE_Message_Block* -ACE_Asynch_Read_Dgram::Result::message_block (void) const -{ - return this->implementation ()->message_block (); -} - -int -ACE_Asynch_Read_Dgram::Result::flags (void) const -{ - return this->implementation ()->flags (); -} - -size_t -ACE_Asynch_Read_Dgram::Result::bytes_to_read (void) const -{ - return this->implementation ()->bytes_to_read (); -} - -ACE_HANDLE -ACE_Asynch_Read_Dgram::Result::handle (void) const -{ - return this->implementation ()->handle(); -} - -ACE_Asynch_Read_Dgram::Result::Result (ACE_Asynch_Read_Dgram_Result_Impl *implementation) -: ACE_Asynch_Result (implementation), - implementation_ (implementation) -{ -} - -ACE_Asynch_Read_Dgram::Result::~Result (void) -{ -} - -ACE_Asynch_Read_Dgram_Result_Impl * -ACE_Asynch_Read_Dgram::Result::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - - -ACE_Asynch_Write_Dgram::ACE_Asynch_Write_Dgram (void) - : implementation_ (0) -{ -} - -ACE_Asynch_Write_Dgram::~ACE_Asynch_Write_Dgram (void) -{ - // Delete the implementation. - delete this->implementation_; - this->implementation_ = 0; -} - -int -ACE_Asynch_Write_Dgram::open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) -{ - // Get a proactor for/from the user. - proactor = this->get_proactor (proactor, handler); - - // Now let us get the implementation initialized. - if ((this->implementation_ = proactor->create_asynch_write_dgram ()) == 0) - return -1; - - // Call the method of the base class. - return ACE_Asynch_Operation::open (handler, - handle, - completion_key, - proactor); -} - -ssize_t -ACE_Asynch_Write_Dgram::send (ACE_Message_Block *message_block, - size_t &number_of_bytes_sent, - int flags, - const ACE_Addr& remote_addr, - const void *act, - int priority, - int signal_number) -{ - if (0 == this->implementation_) - { - errno = EFAULT; - return -1; - } - return this->implementation_->send (message_block, - number_of_bytes_sent, - flags, - remote_addr, - act, - priority, - signal_number); -} - -ACE_Asynch_Operation_Impl * -ACE_Asynch_Write_Dgram::implementation (void) const -{ - return this->implementation_; -} - -// ************************************************************ - -size_t -ACE_Asynch_Write_Dgram::Result::bytes_to_write (void) const -{ - return this->implementation ()->bytes_to_write (); -} - -ACE_Message_Block* -ACE_Asynch_Write_Dgram::Result::message_block () const -{ - return this->implementation ()->message_block (); -} - -int -ACE_Asynch_Write_Dgram::Result::flags (void) const -{ - return this->implementation ()->flags (); -} - -ACE_HANDLE -ACE_Asynch_Write_Dgram::Result::handle (void) const -{ - return this->implementation ()->handle (); -} - -ACE_Asynch_Write_Dgram_Result_Impl * -ACE_Asynch_Write_Dgram::Result::implementation (void) const -{ - return this->implementation_; -} - -ACE_Asynch_Write_Dgram::Result::Result (ACE_Asynch_Write_Dgram_Result_Impl *implementation) -: ACE_Asynch_Result (implementation), - implementation_ (implementation) -{ -} - -ACE_Asynch_Write_Dgram::Result::~Result (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_WIN32_OVERLAPPED_IO || ACE_HAS_AIO_CALLS */ diff --git a/ACE/ace/Asynch_IO.h b/ACE/ace/Asynch_IO.h deleted file mode 100644 index e71c16ca3ee..00000000000 --- a/ACE/ace/Asynch_IO.h +++ /dev/null @@ -1,1690 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Asynch_IO.h - * - * $Id$ - * - * This works on Win32 (defined (ACE_WIN32) && !defined - * (ACE_HAS_WINCE)) platforms and on POSIX4 platforms with {aio_*} - * routines (defined (ACE_HAS_AIO_CALLS)) - * - * On Win32 platforms, the implementation of - * {ACE_Asynch_Transmit_File} and {ACE_Asynch_Accept} are only - * supported if ACE_HAS_WINSOCK2 is defined or you are on WinNT 4.0 - * or higher. - * - * @author Irfan Pyarali - * @author Tim Harrison - * @author Alexander Babu Arulanthu - * @author Roger Tragin - * @author Alexander Libman - */ -//============================================================================= - -#ifndef ACE_ASYNCH_IO_H -#define ACE_ASYNCH_IO_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS) - -#include "ace/Synch_Traits.h" -#if defined (ACE_HAS_THREADS) -# include "ace/Thread_Mutex.h" -#else -# include "ace/Null_Mutex.h" -#endif /* ACE_HAS_THREADS */ -#include "ace/Refcounted_Auto_Ptr.h" - -#include "ace/os_include/os_signal.h" -#include "ace/os_include/sys/os_socket.h" -#include "ace/os_include/sys/os_types.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -# if defined (ACE_HAS_WIN32_OVERLAPPED_IO) -typedef TRANSMIT_FILE_BUFFERS ACE_TRANSMIT_FILE_BUFFERS; -typedef LPTRANSMIT_FILE_BUFFERS ACE_LPTRANSMIT_FILE_BUFFERS; -typedef PTRANSMIT_FILE_BUFFERS ACE_PTRANSMIT_FILE_BUFFERS; - -# define ACE_INFINITE INFINITE -# define ACE_STATUS_TIMEOUT STATUS_TIMEOUT -# define ACE_WAIT_FAILED WAIT_FAILED -# define ACE_WAIT_TIMEOUT WAIT_TIMEOUT -# else /* ACE_HAS_WIN32_OVERLAPPED_IO */ -struct ACE_TRANSMIT_FILE_BUFFERS -{ - void *Head; - size_t HeadLength; - void *Tail; - size_t TailLength; -}; -typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_PTRANSMIT_FILE_BUFFERS; -typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_LPTRANSMIT_FILE_BUFFERS; - -# if !defined (ACE_INFINITE) -# define ACE_INFINITE LONG_MAX -# endif /* ACE_INFINITE */ -# define ACE_STATUS_TIMEOUT LONG_MAX -# define ACE_WAIT_FAILED LONG_MAX -# define ACE_WAIT_TIMEOUT LONG_MAX -# endif /* ACE_HAS_WIN32_OVERLAPPED_IO */ - -// Forward declarations -class ACE_Proactor; -class ACE_Handler; -class ACE_Message_Block; -class ACE_INET_Addr; -class ACE_Addr; - -// Forward declarations -class ACE_Asynch_Result_Impl; -class ACE_Time_Value; - -/** - * @class ACE_Asynch_Result - * - * @brief An interface base class which allows users access to common - * information related to an asynchronous operation. - * - * An interface base class from which you can obtain some basic - * information like the number of bytes transferred, the ACT - * associated with the asynchronous operation, indication of - * success or failure, etc. Subclasses may want to store more - * information that is particular to the asynchronous operation - * it represents. - */ -class ACE_Export ACE_Asynch_Result -{ - -public: - /// Number of bytes transferred by the operation. - size_t bytes_transferred (void) const; - - /// ACT associated with the operation. - const void *act (void) const; - - /// Did the operation succeed? - int success (void) const; - - /** - * This is the ACT associated with the handle on which the - * Asynch_Operation takes place. - * - * On WIN32, this returns the ACT associated with the handle when it - * was registered with the I/O completion port. - * - * @@ This is not implemented for POSIX4 platforms. Returns 0. - */ - const void *completion_key (void) const; - - /// Error value if the operation fails. - unsigned long error (void) const; - - /** - * On WIN32, this returns the event associated with the OVERLAPPED - * structure. - * - * This returns ACE_INVALID_HANDLE on POSIX4-Unix platforms. - */ - ACE_HANDLE event (void) const; - - /** - * This really makes sense only when doing file I/O. - * - * On WIN32, these are represented in the OVERLAPPED datastructure. - * - * @@ On POSIX4-Unix, offset_high should be supported using - * aiocb64. - */ - unsigned long offset (void) const; - unsigned long offset_high (void) const; - - /** - * Priority of the operation. - * - * On POSIX4-Unix, this is supported. Priority works like {nice} in - * Unix. Negative values are not allowed. 0 means priority of the - * operation same as the process priority. 1 means priority of the - * operation is one less than process. And so forth. - * - * On Win32, this is a no-op. - */ - int priority (void) const; - - /** - * POSIX4 real-time signal number to be used for the - * operation. {signal_number} ranges from ACE_SIGRTMIN to ACE_SIGRTMAX. By - * default, ACE_SIGRTMIN is used to issue {aio_} calls. This is a no-op - * on non-POSIX4 systems and returns 0. - */ - int signal_number (void) const; - - - /// Destructor. - virtual ~ACE_Asynch_Result (void); - -protected: - /// Constructor. This implementation will not be deleted. The - /// implementation will be deleted by the Proactor. - ACE_Asynch_Result (ACE_Asynch_Result_Impl *implementation); - - /// Get the implementation class. - ACE_Asynch_Result_Impl *implementation (void) const; - - /// Implementation class. - ACE_Asynch_Result_Impl *implementation_; -}; - -// Forward declarations -class ACE_Asynch_Operation_Impl; - -/** - * @class ACE_Asynch_Operation - * - * @brief This is an interface base class for all asynch - * operations. The resposiblility of this class is to forward - * all methods to its delegation/implementation class, e.g., - * ACE_WIN32_Asynch_Operation or ACE_POSIX_Asynch_Operation. - * - * There are some attributes and functionality which is common - * to all asychronous operations. The delegation classes of this - * class will factor out this code. - */ -class ACE_Export ACE_Asynch_Operation -{ - -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 {handler} to get the - * correct handle. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor); - - /** - * (Attempts to) cancel the asynchronous operation pending against - * the {handle} registered with this Operation. - * - * All completion notifications for the I/O operations will occur - * normally. - * - * = Return Values: - * - * -1 : Operation failed. (can get only in POSIX). - * 0 : All the operations were cancelled. - * 1 : All the operations were already finished in this - * handle. Unable to cancel them. - * 2 : Atleast one of the requested operations cannot be - * cancelled. - * - * There is slight difference in the semantics between NT and POSIX - * platforms which is given below. - * - * = Win32 : - * - * cancels all pending accepts operations that were issued by the - * calling thread. The function does not cancel asynchronous - * operations issued by other threads. - * All I/O operations that are canceled will complete with the - * error ERROR_OPERATION_ABORTED. - * - * = POSIX: - * - * Attempts to cancel one or more asynchronous I/O requests - * currently outstanding against the {handle} registered in this - * operation. - * For requested operations that are successfully canceled, the - * associated error status is set to ECANCELED. - */ - int cancel (void); - - - // = Access methods. - - /// Return the underlying proactor. - ACE_Proactor* proactor (void) const; - - /// Destructor. - virtual ~ACE_Asynch_Operation (void); - -protected: - /// Constructor. - ACE_Asynch_Operation (void); - - /// Return the underlying implementation class. - virtual ACE_Asynch_Operation_Impl *implementation (void) const = 0; - - /// Get a proactor for/from the user - ACE_Proactor *get_proactor (ACE_Proactor *user_proactor, - ACE_Handler &handler) const; -}; - -// Forward declarations -class ACE_Asynch_Read_Stream_Result_Impl; -class ACE_Asynch_Read_Stream_Impl; - -/** - * @class ACE_Asynch_Read_Stream - * - * @brief This class is a factory for starting off asynchronous reads - * on a stream. This class forwards all methods to its - * implementation class. - * - * 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 {handler} when the asynchronous - * reads completes through the {ACE_Handler::handle_read_stream} - * callback. - */ -class ACE_Export ACE_Asynch_Read_Stream : public ACE_Asynch_Operation -{ - -public: - /// A do nothing constructor. - ACE_Asynch_Read_Stream (void); - - /// Destructor - virtual ~ACE_Asynch_Read_Stream (void); - - /** - * Initializes the factory with information which will be used with - * each asynchronous call. - * - * @arg handler The ACE_Handler that will be called to handle completions - * for operations initiated using this factory. - * @arg handle The handle that future read operations will use. - * If handle == @c ACE_INVALID_HANDLE, - * ACE_Handler::handle() will be called on @ handler - * to get the correct handle. - * - * @retval 0 for success. - * @retval -1 for failure; consult @c errno for further information. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle = ACE_INVALID_HANDLE, - const void *completion_key = 0, - ACE_Proactor *proactor = 0); - - /** - * Initiate an asynchronous read operation. - * - * @arg message_block The ACE_Message_Block to receive the data. - * Received bytes will be placed in the block - * beginning at its current write pointer. - * If data is read, the message block's write - * pointer will be advanced by the number of - * bytes read. - * @arg num_bytes_to_read The maximum number of bytes to read. - * @arg act Asynchronous Completion Token; passed through to - * the Result object corresponding to this operation. - * @arg priority Priority of the operation. On POSIX4-Unix, - * this is supported. Works like @c nice in Unix. - * Negative values are not allowed. 0 means - * priority of the operation same as the process - * priority. 1 means priority of the operation is - * one less than process priority, etc. - * @param is ignored on Windows. - * @arg signal_number The POSIX4 real-time signal number to be used - * to signal completion of the operation. Values - * range from ACE_SIGRTMIN to ACE_SIGRTMAX. - * This argument is ignored on non-POSIX4 systems. - */ - int read (ACE_Message_Block &message_block, - size_t num_bytes_to_read, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); - -#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) - /** - * Same as above but with scatter support, through chaining of composite - * message blocks using the continuation field. - */ - int readv (ACE_Message_Block &message_block, - size_t num_bytes_to_read, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); -#endif /* defined (ACE_HAS_WIN32_OVERLAPPED_IO) */ - - /// Return the underlying implementation class. - // (this should be protected...) - virtual ACE_Asynch_Operation_Impl *implementation (void) const; - -protected: - /// Implementation class that all methods will be forwarded to. - ACE_Asynch_Read_Stream_Impl *implementation_; - -public: -/** - * @class Result - * - * @brief This is the class which will be passed back to the - * {handler} when the asynchronous read completes. This class - * forwards all the methods to the implementation classes. - * - * This class has all the information necessary for the - * {handler} to uniquiely identify the completion of the - * asynchronous read. - */ - class ACE_Export Result : public ACE_Asynch_Result - { - - /// The concrete implementation result classes only construct this - /// class. - friend class ACE_POSIX_Asynch_Read_Stream_Result; - friend class ACE_WIN32_Asynch_Read_Stream_Result; - - public: - /// The number of bytes which were requested at the start of the - /// asynchronous read. - size_t bytes_to_read (void) const; - - /// Message block which contains the read data. - ACE_Message_Block &message_block (void) const; - - /// I/O handle used for reading. - ACE_HANDLE handle (void) const; - - /// Get the implementation class. - ACE_Asynch_Read_Stream_Result_Impl *implementation (void) const; - - protected: - /// Constructor. - Result (ACE_Asynch_Read_Stream_Result_Impl *implementation); - - /// Destructor. - virtual ~Result (void); - - /// The implementation class. - ACE_Asynch_Read_Stream_Result_Impl *implementation_; - }; -}; - -// Forward declarations -class ACE_Asynch_Write_Stream_Impl; -class ACE_Asynch_Write_Stream_Result_Impl; - -/** - * @class ACE_Asynch_Write_Stream - * - * @brief This class is a factory for starting off asynchronous writes - * on a stream. This class forwards all methods to its - * implementation class. - * - * Once {open} is called, multiple asynchronous {writes}s can - * started using this class. An ACE_Asynch_Write_Stream::Result - * will be passed back to the {handler} when the asynchronous - * write completes through the - * {ACE_Handler::handle_write_stream} callback. - */ -class ACE_Export ACE_Asynch_Write_Stream : public ACE_Asynch_Operation -{ - -public: - /// A do nothing constructor. - ACE_Asynch_Write_Stream (void); - - /// Destructor. - virtual ~ACE_Asynch_Write_Stream (void); - - /** - * 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 {handler} to get the - * correct handle. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle = ACE_INVALID_HANDLE, - const void *completion_key = 0, - ACE_Proactor *proactor = 0); - - /** - * This starts off an asynchronous write. Upto {bytes_to_write} - * will be written from the {message_block}. Upon successful completion - * of the write operation, {message_block}'s {rd_ptr} is updated to - * reflect the data that was written. Priority of the - * operation is specified by {priority}. On POSIX4-Unix, this is - * supported. Works like {nice} in Unix. Negative values are not - * allowed. 0 means priority of the operation same as the process - * priority. 1 means priority of the operation is one less than - * process. And so forth. On Win32, this argument is a no-op. - * {signal_number} is the POSIX4 real-time signal number to be used - * for the operation. {signal_number} ranges from ACE_SIGRTMIN to - * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems. - */ - int write (ACE_Message_Block &message_block, - size_t bytes_to_write, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); - -#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) - /** - * Same as above but with gather support, through chaining of composite - * message blocks using the continuation field. - */ - int writev (ACE_Message_Block &message_block, - size_t bytes_to_write, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); -#endif /* defined (ACE_HAS_WIN32_OVERLAPPED_IO) */ - - /// Return the underlying implementation class. - /// @todo (this should be protected...) - virtual ACE_Asynch_Operation_Impl *implementation (void) const; - -protected: - /// Implementation class that all methods will be forwarded to. - ACE_Asynch_Write_Stream_Impl *implementation_; - -public: -/** - * @class Result - * - * @brief This is that class which will be passed back to the - * {handler} when the asynchronous write completes. This class - * forwards all the methods to the implementation class. - * - * This class has all the information necessary for the - * {handler} to uniquiely identify the completion of the - * asynchronous write. - */ - class ACE_Export Result : public ACE_Asynch_Result - { - - /// The concrete implementation result classes only construct this - /// class. - friend class ACE_POSIX_Asynch_Write_Stream_Result; - friend class ACE_WIN32_Asynch_Write_Stream_Result; - - public: - /// The number of bytes which were requested at the start of the - /// asynchronous write. - size_t bytes_to_write (void) const; - - /// Message block that contains the data to be written. - ACE_Message_Block &message_block (void) const; - - /// I/O handle used for writing. - ACE_HANDLE handle (void) const; - - /// Get the implementation class. - ACE_Asynch_Write_Stream_Result_Impl *implementation (void) const; - - protected: - /// Constructor. - Result (ACE_Asynch_Write_Stream_Result_Impl *implementation); - - /// Destructor. - virtual ~Result (void); - - /// Implementation class. - ACE_Asynch_Write_Stream_Result_Impl *implementation_; - }; -}; - -// Forward declarations -class ACE_Asynch_Read_File_Impl; -class ACE_Asynch_Read_File_Result_Impl; - -/** - * @class ACE_Asynch_Read_File - * - * @brief This class is a factory for starting off asynchronous reads - * on a file. This class forwards all methods to its - * implementation class. - * - * Once {open} is called, multiple asynchronous {read}s can - * started using this class. An ACE_Asynch_Read_File::Result - * will be passed back to the {handler} when the asynchronous - * reads completes through the {ACE_Handler::handle_read_file} - * callback. - * This class differs slightly from ACE_Asynch_Read_Stream as it - * allows the user to specify an offset for the read. - */ -class ACE_Export ACE_Asynch_Read_File : public ACE_Asynch_Read_Stream -{ - -public: - /// A do nothing constructor. - ACE_Asynch_Read_File (void); - - /// Destructor. - virtual ~ACE_Asynch_Read_File (void); - - /** - * 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 {handler} to get the - * correct handle. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle = ACE_INVALID_HANDLE, - const void *completion_key = 0, - ACE_Proactor *proactor = 0); - - /** - * This starts off an asynchronous read. Upto {bytes_to_read} will - * be read and stored in the {message_block}. The read will start - * at {offset} from the beginning of the file. Priority of the - * operation is specified by {priority}. On POSIX4-Unix, this is - * supported. Works like {nice} in Unix. Negative values are not - * allowed. 0 means priority of the operation same as the process - * priority. 1 means priority of the operation is one less than - * process. And so forth. On Win32, this argument is a no-op. - * {signal_number} is the POSIX4 real-time signal number to be used - * for the operation. {signal_number} ranges from ACE_SIGRTMIN to - * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems. - */ - int read (ACE_Message_Block &message_block, - size_t bytes_to_read, - unsigned long offset = 0, - unsigned long offset_high = 0, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) - /** - * Same as above but with scatter support, through chaining of composite - * message blocks using the continuation field. - * @note In win32 Each data block payload must be at least the size of a system - * memory page and must be aligned on a system memory page size boundary - */ - int readv (ACE_Message_Block &message_block, - size_t bytes_to_read, - unsigned long offset = 0, - unsigned long offset_high = 0, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - - /// Return the underlying implementation class. - // (this should be protected...) - virtual ACE_Asynch_Operation_Impl *implementation (void) const; - -protected: - /// Delegation/implementation class that all methods will be - /// forwarded to. - ACE_Asynch_Read_File_Impl *implementation_; - -public: -/** - * @class Result - * - * @brief This is that class which will be passed back to the - * {handler} when the asynchronous read completes. This class - * forwards all the methods to the implementation class. - * - * This class has all the information necessary for the - * {handler} to uniquiely identify the completion of the - * asynchronous read. - * This class differs slightly from - * ACE_Asynch_Read_Stream::Result as it calls back - * {ACE_Handler::handle_read_file} on the {handler} instead of - * {ACE_Handler::handle_read_stream}. No additional state is - * required by this class as ACE_Asynch_Result can store the - * {offset}. - */ - class ACE_Export Result : public ACE_Asynch_Read_Stream::Result - { - - /// The concrete implementation result classes only construct this - /// class. - friend class ACE_POSIX_Asynch_Read_File_Result; - friend class ACE_WIN32_Asynch_Read_File_Result; - - public: - /// Get the implementation class. - ACE_Asynch_Read_File_Result_Impl *implementation (void) const; - - protected: - /// Constructor. This implementation will not be deleted. - Result (ACE_Asynch_Read_File_Result_Impl *implementation); - - /// Destructor. - virtual ~Result (void); - - /// The implementation class. - ACE_Asynch_Read_File_Result_Impl *implementation_; - - private: - /// Here just to provide an dummpy implementation, since the - /// one auto generated by MSVC is flagged as infinitely recursive - void operator= (Result &) {} - }; -}; - -// Forward declarations -class ACE_Asynch_Write_File_Impl; -class ACE_Asynch_Write_File_Result_Impl; - -/** - * @class ACE_Asynch_Write_File - * - * @brief This class is a factory for starting off asynchronous writes - * on a file. This class forwards all methods to its - * implementation class. - * - * Once {open} is called, multiple asynchronous {write}s can be - * started using this class. A ACE_Asynch_Write_File::Result - * will be passed back to the {handler} when the asynchronous - * writes completes through the {ACE_Handler::handle_write_file} - * callback. - * This class differs slightly from ACE_Asynch_Write_Stream as - * it allows the user to specify an offset for the write. - */ -class ACE_Export ACE_Asynch_Write_File : public ACE_Asynch_Write_Stream -{ - -public: - /// A do nothing constructor. - ACE_Asynch_Write_File (void); - - /// Destructor. - virtual ~ACE_Asynch_Write_File (void); - - /** - * 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 {handler} to get the - * correct handle. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle = ACE_INVALID_HANDLE, - const void *completion_key = 0, - ACE_Proactor *proactor = 0); - - /** - * This starts off an asynchronous write. Upto {bytes_to_write} - * will be written from the {message_block}, starting at the - * block's {rd_ptr}. The write will go to the file, starting - * {offset} bytes from the beginning of the file. Priority of the - * operation is specified by {priority}. On POSIX4-Unix, this is - * supported. Works like {nice} in Unix. Negative values are not - * allowed. 0 means priority of the operation same as the process - * priority. 1 means priority of the operation is one less than - * process. And so forth. On Win32, this is a no-op. - * {signal_number} is the POSIX4 real-time signal number to be used - * for the operation. {signal_number} ranges from ACE_SIGRTMIN to - * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems. - */ - int write (ACE_Message_Block &message_block, - size_t bytes_to_write, - unsigned long offset = 0, - unsigned long offset_high = 0, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) - /** - * Same as above but with gather support, through chaining of composite - * message blocks using the continuation field. - * @note In win32 Each data block payload must be at least the size of a system - * memory page and must be aligned on a system memory page size boundary - */ - int writev (ACE_Message_Block &message_block, - size_t bytes_to_write, - unsigned long offset = 0, - unsigned long offset_high = 0, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - - /// Return the underlying implementation class. - // (this should be protected...) - virtual ACE_Asynch_Operation_Impl *implementation (void) const; - -protected: - /// Implementation object. - ACE_Asynch_Write_File_Impl *implementation_; - -public: -/** - * @class Result - * - * @brief This is that class which will be passed back to the - * {handler} when the asynchronous write completes. This class - * forwards all the methods to the implementation class. - * - * This class has all the information necessary for the - * {handler} to uniquiely identify the completion of the - * asynchronous write. - * This class differs slightly from - * ACE_Asynch_Write_Stream::Result as it calls back - * {ACE_Handler::handle_write_file} on the {handler} instead - * of {ACE_Handler::handle_write_stream}. No additional state - * is required by this class as ACE_Asynch_Result can store - * the {offset}. - */ - class ACE_Export Result : public ACE_Asynch_Write_Stream::Result - { - - /// The concrete implementation result classes only construct this - /// class. - friend class ACE_POSIX_Asynch_Write_File_Result; - friend class ACE_WIN32_Asynch_Write_File_Result; - - public: - /// Get the implementation class. - ACE_Asynch_Write_File_Result_Impl *implementation (void) const; - - protected: - /// Constructor. This implementation will not be deleted. - Result (ACE_Asynch_Write_File_Result_Impl *implementation); - - /// Destructor. - virtual ~Result (void); - - /// The implementation class. - ACE_Asynch_Write_File_Result_Impl *implementation_; - - private: - /// Here just to provide an dummpy implementation, since the - /// one auto generated by MSVC is flagged as infinitely recursive - void operator= (Result &) {}; - }; -}; - -// Forward declarations -class ACE_Asynch_Accept_Result_Impl; -class ACE_Asynch_Accept_Impl; - -/** - * @class ACE_Asynch_Accept - * - * @brief This class is a factory for starting off asynchronous accepts - * on a listen handle. This class forwards all methods to its - * implementation class. - * - * Once {open} is called, multiple asynchronous {accept}s can - * started using this class. A ACE_Asynch_Accept::Result will - * be passed back to the {handler} when the asynchronous accept - * completes through the {ACE_Handler::handle_accept} - * callback. - */ -class ACE_Export ACE_Asynch_Accept : public ACE_Asynch_Operation -{ - -public: - /// A do nothing constructor. - ACE_Asynch_Accept (void); - - /// Destructor. - virtual ~ACE_Asynch_Accept (void); - - /** - * 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 {handler} to get the - * correct handle. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle = ACE_INVALID_HANDLE, - const void *completion_key = 0, - ACE_Proactor *proactor = 0); - - /** - * This starts off an asynchronous accept. The asynchronous accept - * call also allows any initial data to be returned to the - * handler specified to @c open(). - * @param message_block A message block to receive initial data, as well - * as the local and remote addresses when the - * connection is made. Since the block receives - * the addresses regardless of whether or not - * initial data is available or requested, the - * message block size must be at least - * @a bytes_to_read plus two times the size of - * the addresses used (IPv4 or IPv6). - * @param bytes_to_read The maximum number of bytes of initial data - * to read into @a message_block. - * @param accept_handle The handle that the new connection will be - * accepted on. If @c INVALID_HANDLE, a new - * handle will be created using @a addr_family. - * @param act Value to be passed in result when operation - * completes. - * @param priority Priority of the operation. On POSIX4-Unix, this - * is supported. Works like @c nice in Unix. - * Negative values are not allowed. 0 means - * priority of the operation same as the process - * priority. 1 means priority of the operation is - * one less than process. And so forth. - * On Win32, this argument is ignored. - * @param signal_number The POSIX4 real-time signal number to be used - * for the operation. Value range is from - * @c ACE_SIGRTMIN to @c ACE_SIGRTMAX. - * This argument is ignored on non-POSIX4 systems. - * @param addr_family The address family to use if @a accept_handle - * is @c ACE_INVALID_HANDLE and a new handle must - * be opened. Values are @c AF_INET and @c PF_INET6. - */ - int accept (ACE_Message_Block &message_block, - size_t bytes_to_read, - ACE_HANDLE accept_handle = ACE_INVALID_HANDLE, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN, - int addr_family = AF_INET); - - /// Return the underlying implementation class. - // (this should be protected...) - virtual ACE_Asynch_Operation_Impl *implementation (void) const; - -protected: - /// Delegation/implementation class that all methods will be - /// forwarded to. - ACE_Asynch_Accept_Impl *implementation_; - -public: -/** - * @class Result - * - * @brief This is that class which will be passed back to the - * {handler} when the asynchronous accept completes. - * - * This class has all the information necessary for the - * {handler} to uniquiely identify the completion of the - * asynchronous accept. - */ - class ACE_Export Result : public ACE_Asynch_Result - { - - /// The concrete implementation result classes only construct this - /// class. - friend class ACE_POSIX_Asynch_Accept_Result; - friend class ACE_WIN32_Asynch_Accept_Result; - - public: - /// The number of bytes which were requested at the start of the - /// asynchronous accept. - size_t bytes_to_read (void) const; - - /// Message block which contains the read data. - ACE_Message_Block &message_block (void) const; - - /// I/O handle used for accepting new connections. - ACE_HANDLE listen_handle (void) const; - - /// I/O handle for the new connection. - ACE_HANDLE accept_handle (void) const; - - /// Get the implementation. - ACE_Asynch_Accept_Result_Impl *implementation (void) const; - - protected: - /// Contructor. Implementation will not be deleted. - Result (ACE_Asynch_Accept_Result_Impl *implementation); - - /// Destructor. - virtual ~Result (void); - - /// Impelmentation class. - ACE_Asynch_Accept_Result_Impl *implementation_; - }; -}; -// Forward declarations -class ACE_Asynch_Connect_Result_Impl; -class ACE_Asynch_Connect_Impl; - -/** - * @class ACE_Asynch_Connect - * - * @brief This class is a factory for starting off asynchronous connects - * This class forwards all methods to its implementation class. - * - * Once @c open is called, multiple asynchronous connect operationss can - * started using this class. A ACE_Asynch_Connect::Result will - * be passed back to the associated ACE_Handler when the asynchronous connect - * completes through the ACE_Handler::handle_connect() callback. - */ -class ACE_Export ACE_Asynch_Connect : public ACE_Asynch_Operation -{ - -public: - /// A do nothing constructor. - ACE_Asynch_Connect (void); - - /// Destructor. - virtual ~ACE_Asynch_Connect (void); - - /** - * Initializes the factory with information which will be used with - * each asynchronous call. - * - * @note @arg handle is ignored and should be @c ACE_INVALID_HANDLE. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle = ACE_INVALID_HANDLE, - const void *completion_key = 0, - ACE_Proactor *proactor = 0); - - /** - * This starts off an asynchronous Connect. - */ - int connect (ACE_HANDLE connect_handle, - const ACE_Addr & remote_sap, - const ACE_Addr & local_sap, - int reuse_addr, - const void *act=0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); - - /// Return the underlying implementation class. - // (this should be protected...) - virtual ACE_Asynch_Operation_Impl *implementation (void) const; - -protected: - /// Delegation/implementation class that all methods will be - /// forwarded to. - ACE_Asynch_Connect_Impl *implementation_; - -public: -/** - * @class Result - * - * @brief This is that class which will be passed back to the - * handler when the asynchronous connect completes. - * - * This class has all the information necessary for the - * handler to uniquely identify the completion of the - * asynchronous connect. - */ - class ACE_Export Result : public ACE_Asynch_Result - { - - /// The concrete implementation result classes only construct this - /// class. - friend class ACE_POSIX_Asynch_Connect_Result; - friend class ACE_WIN32_Asynch_Connect_Result; - - public: - - /// I/O handle for the connection. - ACE_HANDLE connect_handle (void) const; - - /// Get the implementation. - ACE_Asynch_Connect_Result_Impl *implementation (void) const; - - protected: - /// Contructor. Implementation will not be deleted. - Result (ACE_Asynch_Connect_Result_Impl *implementation); - - /// Destructor. - virtual ~Result (void); - - /// Impelmentation class. - ACE_Asynch_Connect_Result_Impl *implementation_; - }; -}; - -// Forward declarations -class ACE_Asynch_Transmit_File_Result_Impl; -class ACE_Asynch_Transmit_File_Impl; - -/** - * @class ACE_Asynch_Transmit_File - * - * @brief This class is a factory for starting off asynchronous - * transmit files on a stream. - * - * Once {open} is called, multiple asynchronous {transmit_file}s - * can started using this class. A - * ACE_Asynch_Transmit_File::Result will be passed back to the - * {handler} when the asynchronous transmit file completes - * through the {ACE_Handler::handle_transmit_file} callback. - * The transmit_file function transmits file data over a - * connected network connection. The function uses the operating - * system's cache manager to retrieve the file data. This - * function provides high-performance file data transfer over - * network connections. This function would be of great use in - * a Web Server, Image Server, etc. - */ -class ACE_Export ACE_Asynch_Transmit_File : public ACE_Asynch_Operation -{ - -public: - // Forward declarations - class Header_And_Trailer; - - /// A do nothing constructor. - ACE_Asynch_Transmit_File (void); - - /// Destructor. - virtual ~ACE_Asynch_Transmit_File (void); - - /** - * 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 {handler} to get the - * correct handle. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle = ACE_INVALID_HANDLE, - const void *completion_key = 0, - ACE_Proactor *proactor = 0); - - /** - * This starts off an asynchronous transmit file. The {file} is a - * handle to an open file. {header_and_trailer} is a pointer to a - * data structure that contains pointers to data to send before and - * after the file data is sent. Set this parameter to 0 if you only - * want to transmit the file data. Upto {bytes_to_write} will be - * written to the {socket}. If you want to send the entire file, - * let {bytes_to_write} = 0. {bytes_per_send} is the size of each - * block of data sent per send operation. Please read the Win32 - * documentation on what the flags should be. Priority of the - * operation is specified by {priority}. On POSIX4-Unix, this is - * supported. Works like {nice} in Unix. Negative values are not - * allowed. 0 means priority of the operation same as the process - * priority. 1 means priority of the operation is one less than - * process. And so forth. On Win32, this is a no-op. - * {signal_number} is the POSIX4 real-time signal number to be used - * for the operation. {signal_number} ranges from ACE_SIGRTMIN to - * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems. - */ - int transmit_file (ACE_HANDLE file, - Header_And_Trailer *header_and_trailer = 0, - size_t bytes_to_write = 0, - unsigned long offset = 0, - unsigned long offset_high = 0, - size_t bytes_per_send = 0, - unsigned long flags = 0, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); - - /// Return the underlying implementation class. - // (this should be protected...) - virtual ACE_Asynch_Operation_Impl *implementation (void) const; - -protected: - /// The implementation class. - ACE_Asynch_Transmit_File_Impl *implementation_; - -public: -/** - * @class Result - * - * @brief This is that class which will be passed back to the - * {handler} when the asynchronous transmit file completes. - * - * This class has all the information necessary for the - * {handler} to uniquiely identify the completion of the - * asynchronous transmit file. - */ - class ACE_Export Result : public ACE_Asynch_Result - { - - /// The concrete implementation result classes only construct this - /// class. - friend class ACE_POSIX_Asynch_Transmit_File_Result; - friend class ACE_WIN32_Asynch_Transmit_File_Result; - - public: - /// Socket used for transmitting the file. - ACE_HANDLE socket (void) const; - - /// File from which the data is read. - ACE_HANDLE file (void) const; - - /// Header and trailer data associated with this transmit file. - Header_And_Trailer *header_and_trailer (void) const; - - /// The number of bytes which were requested at the start of the - /// asynchronous transmit file. - size_t bytes_to_write (void) const; - - /// Number of bytes per send requested at the start of the transmit - /// file. - size_t bytes_per_send (void) const; - - /// Flags which were passed into transmit file. - unsigned long flags (void) const; - - /// Get the implementation class. - ACE_Asynch_Transmit_File_Result_Impl *implementation (void) const; - - protected: - /// Constructor. - Result (ACE_Asynch_Transmit_File_Result_Impl *implementation); - - /// Destructor. - virtual ~Result (void); - - /// The implementation class. - ACE_Asynch_Transmit_File_Result_Impl *implementation_; - }; - -/** - * @class Header_And_Trailer - * - * @brief The class defines a data structure that contains pointers - * to data to send before and after the file data is sent. - * - * This class provides a wrapper over TRANSMIT_FILE_BUFFERS - * and provided a consistent use of ACE_Message_Blocks. - */ - class ACE_Export Header_And_Trailer - { - - public: - /// Constructor. - Header_And_Trailer (ACE_Message_Block *header = 0, - size_t header_bytes = 0, - ACE_Message_Block *trailer = 0, - size_t trailer_bytes = 0); - - /// Destructor - virtual ~Header_And_Trailer (void); - - /// This method allows all the member to be set in one fell swoop. - void header_and_trailer (ACE_Message_Block *header = 0, - size_t header_bytes = 0, - ACE_Message_Block *trailer = 0, - size_t trailer_bytes = 0); - - /// Get header which goes before the file data. - ACE_Message_Block *header (void) const; - - /// Set header which goes before the file data. - void header (ACE_Message_Block *message_block); - - /// Get size of the header data. - size_t header_bytes (void) const; - - /// Set size of the header data. - void header_bytes (size_t bytes); - - /// Get trailer which goes after the file data. - ACE_Message_Block *trailer (void) const; - - /// Set trailer which goes after the file data. - void trailer (ACE_Message_Block *message_block); - - /// Get size of the trailer data. - size_t trailer_bytes (void) const; - - /// Set size of the trailer data. - void trailer_bytes (size_t bytes); - - /// Conversion routine. - ACE_LPTRANSMIT_FILE_BUFFERS transmit_buffers (void); - - protected: - /// Header data. - ACE_Message_Block *header_; - - /// Size of header data. - size_t header_bytes_; - - /// Trailer data. - ACE_Message_Block *trailer_; - - /// Size of trailer data. - size_t trailer_bytes_; - - /// Target data structure. - ACE_TRANSMIT_FILE_BUFFERS transmit_buffers_; - }; -}; - - -// Forward declarations -class ACE_Asynch_Read_Dgram_Result_Impl; -class ACE_Asynch_Read_Dgram_Impl; -class ACE_Addr; - -/** - * @class ACE_Asynch_Read_Dgram - * - * @brief This class is a factory for starting off asynchronous reads - * on a UDP socket. This class forwards all methods to its - * implementation class. - * - * Once {open} is called, multiple asynchronous {read}s can be - * started using this class. An ACE_Asynch_Read_Dgram::Result - * will be passed back to the {handler} when the asynchronous - * reads completes through the {ACE_Handler::handle_read_dgram} - * callback. - */ -class ACE_Export ACE_Asynch_Read_Dgram : public ACE_Asynch_Operation -{ - -public: - /// A do nothing constructor. - ACE_Asynch_Read_Dgram (void); - - /// Destructor - virtual ~ACE_Asynch_Read_Dgram (void); - - /** - * 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 {handler} to get the - * correct handle. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle = ACE_INVALID_HANDLE, - const void *completion_key = 0, - ACE_Proactor *proactor = 0); - - /** This starts off an asynchronous read. Upto - * {message_block->total_size()} will be read and stored in the - * {message_block}. {message_block}'s {wr_ptr} will be updated to reflect - * the added bytes if the read operation is successfully completed. - * Return code of 1 means immediate success and {number_of_bytes_recvd} - * will contain number of bytes read. The {ACE_Handler::handle_read_dgram} - * method will still be called. Return code of 0 means the IO will - * complete proactively. Return code of -1 means there was an error, use - * errno to get the error code. - * - * Scatter/gather is supported on WIN32 by using the {message_block->cont()} - * method. Up to ACE_IOV_MAX {message_block}'s are supported. Upto - * {message_block->size()} bytes will be read into each {message block} for - * a total of {message_block->total_size()} bytes. All {message_block}'s - * {wr_ptr}'s will be updated to reflect the added bytes for each - * {message_block} - * - * Priority of the operation is specified by {priority}. On POSIX4-Unix, - * this is supported. Works like {nice} in Unix. Negative values are not - * allowed. 0 means priority of the operation same as the process - * priority. 1 means priority of the operation is one less than - * process. And so forth. On Win32, {priority} is a no-op. - * {signal_number} is the POSIX4 real-time signal number to be used - * for the operation. {signal_number} ranges from ACE_SIGRTMIN to - * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems. - */ - ssize_t recv (ACE_Message_Block *message_block, - size_t &number_of_bytes_recvd, - int flags, - int protocol_family = PF_INET, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); - - /// Return the underlying implementation class. - // (this should be protected...) - virtual ACE_Asynch_Operation_Impl *implementation (void) const; - -protected: - /// Implementation class that all methods will be forwarded to. - ACE_Asynch_Read_Dgram_Impl *implementation_; - -public: -/** - * @class Result - * - * @brief This is the class which will be passed back to the - * {handler} when the asynchronous read completes. This class - * forwards all the methods to the implementation classes. - * - * This class has all the information necessary for the - * {handler} to uniquiely identify the completion of the - * asynchronous read. - */ - class ACE_Export Result : public ACE_Asynch_Result - { - - /// The concrete implementation result classes only construct this - /// class. - friend class ACE_POSIX_Asynch_Read_Dgram_Result; - friend class ACE_WIN32_Asynch_Read_Dgram_Result; - - public: - - /// The number of bytes which were requested at the start of the - /// asynchronous read. - size_t bytes_to_read (void) const; - - /// Message block which contains the read data - ACE_Message_Block *message_block (void) const; - - /// The flags used in the read - int flags (void) const; - - /// The address of where the packet came from - int remote_address (ACE_Addr& addr) const; - - /// I/O handle used for reading. - ACE_HANDLE handle (void) const; - - /// Get the implementation class. - ACE_Asynch_Read_Dgram_Result_Impl *implementation (void) const; - - protected: - /// Constructor. - Result (ACE_Asynch_Read_Dgram_Result_Impl *implementation); - - /// Destructor. - virtual ~Result (void); - - /// The implementation class. - ACE_Asynch_Read_Dgram_Result_Impl *implementation_; - }; -}; - -// Forward declarations -class ACE_Asynch_Write_Dgram_Impl; -class ACE_Asynch_Write_Dgram_Result_Impl; - -/** - * @class ACE_Asynch_Write_Dgram - * - * @brief This class is a factory for starting off asynchronous writes - * on a UDP socket. This class forwards all methods to its - * implementation class. - * - * Once {open} is called, multiple asynchronous {writes}s can - * started using this class. An ACE_Asynch_Write_Dgram::Result - * will be passed back to the {handler} when the asynchronous - * write completes through the - * {ACE_Handler::handle_write_dgram} callback. - */ -class ACE_Export ACE_Asynch_Write_Dgram : public ACE_Asynch_Operation -{ - -public: - /// A do nothing constructor. - ACE_Asynch_Write_Dgram (void); - - /// Destructor. - virtual ~ACE_Asynch_Write_Dgram (void); - - /** - * 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 {handler} to get the - * correct handle. - */ - int open (ACE_Handler &handler, - ACE_HANDLE handle = ACE_INVALID_HANDLE, - const void *completion_key = 0, - ACE_Proactor *proactor = 0); - - /** This starts off an asynchronous send. Upto - * {message_block->total_length()} will be sent. {message_block}'s - * {rd_ptr} will be updated to reflect the sent bytes if the send operation - * is successfully completed. - * Return code of 1 means immediate success and {number_of_bytes_sent} - * is updated to number of bytes sent. The {ACE_Handler::handle_write_dgram} - * method will still be called. Return code of 0 means the IO will - * complete proactively. Return code of -1 means there was an error, use - * errno to get the error code. - * - * Scatter/gather is supported on WIN32 by using the {message_block->cont()} - * method. Up to ACE_IOV_MAX {message_block}'s are supported. Upto - * {message_block->length()} bytes will be sent from each {message block} - * for a total of {message_block->total_length()} bytes. All - * {message_block}'s {rd_ptr}'s will be updated to reflect the bytes sent - * from each {message_block}. - * - * Priority of the operation is specified by {priority}. On POSIX4-Unix, - * this is supported. Works like {nice} in Unix. Negative values are not - * allowed. 0 means priority of the operation same as the process - * priority. 1 means priority of the operation is one less than - * process. And so forth. On Win32, this argument is a no-op. - * {signal_number} is the POSIX4 real-time signal number to be used - * for the operation. {signal_number} ranges from ACE_SIGRTMIN to - * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems. - */ - ssize_t send (ACE_Message_Block *message_block, - size_t &number_of_bytes_sent, - int flags, - const ACE_Addr& remote_addr, - const void *act = 0, - int priority = 0, - int signal_number = ACE_SIGRTMIN); - - /// Return the underlying implementation class. - // (this should be protected...) - virtual ACE_Asynch_Operation_Impl *implementation (void) const; - -protected: - /// Implementation class that all methods will be forwarded to. - ACE_Asynch_Write_Dgram_Impl *implementation_; - -public: -/** - * @class Result - * - * @brief This is that class which will be passed back to the - * {handler} when the asynchronous write completes. This class - * forwards all the methods to the implementation class. - * - * This class has all the information necessary for the - * {handler} to uniquiely identify the completion of the - * asynchronous write. - */ - class ACE_Export Result : public ACE_Asynch_Result - { - - /// The concrete implementation result classes only construct this - /// class. - friend class ACE_POSIX_Asynch_Write_Dgram_Result; - friend class ACE_WIN32_Asynch_Write_Dgram_Result; - - public: - - /// The number of bytes which were requested at the start of the - /// asynchronous write. - size_t bytes_to_write (void) const; - - /// Message block which contains the sent data - ACE_Message_Block *message_block (void) const; - - /// The flags using in the write - int flags (void) const; - - /// I/O handle used for writing. - ACE_HANDLE handle (void) const; - - /// Get the implementation class. - ACE_Asynch_Write_Dgram_Result_Impl *implementation (void) const; - - protected: - /// Constructor. - Result (ACE_Asynch_Write_Dgram_Result_Impl *implementation); - - /// Destructor. - virtual ~Result (void); - - /// Implementation class. - ACE_Asynch_Write_Dgram_Result_Impl *implementation_; - }; -}; - - -/** - * @class ACE_Handler - * - * @brief This base class defines the interface for receiving the - * results of asynchronous operations. - * - * Subclasses of this class will fill in appropriate methods. - */ -class ACE_Export ACE_Handler -{ -public: - /// A do nothing constructor. - ACE_Handler (void); - - /// A do nothing constructor which allows proactor to be set to \. - ACE_Handler (ACE_Proactor *p); - - /// Virtual destruction. - virtual ~ACE_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 write completes - /// on a UDP socket. - virtual void handle_write_dgram (const ACE_Asynch_Write_Dgram::Result &result); - - /// This method will be called when an asynchronous read completes on - /// a UDP socket. - virtual void handle_read_dgram (const ACE_Asynch_Read_Dgram::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 read completes on - /// a file. - virtual void handle_read_file (const ACE_Asynch_Read_File::Result &result); - - /// This method will be called when an asynchronous write completes - /// on a file. - virtual void handle_write_file (const ACE_Asynch_Write_File::Result &result); - - /// 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 connect completes. - virtual void handle_connect (const ACE_Asynch_Connect::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); - - /// Called when timer expires. {tv} was the requested time value and - /// {act} is the ACT passed when scheduling the timer. - virtual void handle_time_out (const ACE_Time_Value &tv, - const void *act = 0); - - /** - * This is method works with the {run_event_loop} of the - * ACE_Proactor. A special {Wake_Up_Completion} is used to wake up - * all the threads that are blocking for completions. - */ - virtual void handle_wakeup (void); - - /// Get the proactor associated with this handler. - ACE_Proactor *proactor (void); - - /// Set the proactor. - void proactor (ACE_Proactor *p); - - /** - * 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; - - /// Set the ACE_HANDLE value for this Handler. - virtual void handle (ACE_HANDLE); - - /** - * @class Proxy - * - * @brief The Proxy class acts as a proxy for dispatch of completions - * to operations issued for the associated handler. It allows the handler - * to be deleted while operations are outstanding. The proxy must be used - * to get the ACE_Handler pointer for dispatching, and if it's 0, the - * handler is no longer valid and the result should not be dispatched. - */ - class ACE_Export Proxy - { - public: - Proxy (ACE_Handler *handler) : handler_ (handler) {}; - void reset (void) { this->handler_ = 0; }; - ACE_Handler *handler (void) { return this->handler_; }; - private: - ACE_Handler *handler_; - }; - typedef ACE_Refcounted_Auto_Ptr - Proxy_Ptr; - - Proxy_Ptr &proxy (void); - -protected: - /// The proactor associated with this handler. - ACE_Proactor *proactor_; - - /// The ACE_HANDLE in use with this handler. - ACE_HANDLE handle_; - - /// Refers to proxy for this handler. - ACE_Refcounted_Auto_Ptr proxy_; - - ACE_UNIMPLEMENTED_FUNC (ACE_Handler (const ACE_Handler &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Handler operator= (const ACE_Handler &)) -}; - -// Forward declarations -class ACE_INET_Addr; - -// Forward declarations -template -class ACE_Asynch_Acceptor; - -/** - * @class ACE_Service_Handler - * - * @brief This base class defines the interface for the - * ACE_Asynch_Acceptor to call into when new connection are - * accepted. - * - * Subclasses of this class will fill in appropriate methods to - * define application specific behavior. - */ -class ACE_Export ACE_Service_Handler : public ACE_Handler -{ - - /// The Acceptor is the factory and therefore should have special - /// privileges. - friend class ACE_Asynch_Acceptor; - -public: - /// A do nothing constructor. - ACE_Service_Handler (void); - - /// Virtual destruction. - virtual ~ACE_Service_Handler (void); - - /** - * {open} is called by ACE_Asynch_Acceptor to initialize a new - * instance of ACE_Service_Handler that has been created after the - * new connection is accepted. The handle for the new connection is - * passed along with the initial data that may have shown up. - */ - virtual void open (ACE_HANDLE new_handle, - ACE_Message_Block &message_block); - - // protected: - // This should be corrected after the correct semantics of the - // friend has been figured out. - - /// Called by ACE_Asynch_Acceptor to pass the addresses of the new - /// connections. - virtual void addresses (const ACE_INET_Addr &remote_address, - const ACE_INET_Addr &local_address); - - /// Called by ACE_Asynch_Acceptor to pass the act. - virtual void act (const void *); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_WIN32 || ACE_HAS_AIO_CALLS*/ -#include /**/ "ace/post.h" -#endif /* ACE_ASYNCH_IO_H */ diff --git a/ACE/ace/Asynch_IO_Impl.cpp b/ACE/ace/Asynch_IO_Impl.cpp deleted file mode 100644 index 5349f5e7ca1..00000000000 --- a/ACE/ace/Asynch_IO_Impl.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// $Id$ - -#include "ace/Asynch_IO_Impl.h" - -#if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS) -// This only works on Win32 platforms and on Unix platforms supporting -// aio calls. - -#if !defined (__ACE_INLINE__) -#include "ace/Asynch_IO_Impl.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Asynch_Result_Impl::~ACE_Asynch_Result_Impl (void) -{ -} - -ACE_Asynch_Operation_Impl::~ACE_Asynch_Operation_Impl (void) -{ -} - -ACE_Asynch_Read_Stream_Impl::~ACE_Asynch_Read_Stream_Impl (void) -{ -} - -ACE_Asynch_Read_Stream_Result_Impl::~ACE_Asynch_Read_Stream_Result_Impl (void) -{ -} - -ACE_Asynch_Write_Stream_Impl::~ACE_Asynch_Write_Stream_Impl (void) -{ -} - -ACE_Asynch_Write_Stream_Result_Impl::~ACE_Asynch_Write_Stream_Result_Impl (void) -{ -} - -ACE_Asynch_Read_File_Impl::~ACE_Asynch_Read_File_Impl (void) -{ -} - -ACE_Asynch_Write_File_Impl::~ACE_Asynch_Write_File_Impl (void) -{ -} - -ACE_Asynch_Read_File_Result_Impl::~ACE_Asynch_Read_File_Result_Impl (void) -{ -} - -ACE_Asynch_Write_File_Result_Impl::~ACE_Asynch_Write_File_Result_Impl (void) -{ -} - -ACE_Asynch_Accept_Result_Impl::~ACE_Asynch_Accept_Result_Impl (void) -{ -} - -ACE_Asynch_Connect_Result_Impl::~ACE_Asynch_Connect_Result_Impl (void) -{ -} - -ACE_Asynch_Accept_Impl::~ACE_Asynch_Accept_Impl (void) -{ -} - -ACE_Asynch_Connect_Impl::~ACE_Asynch_Connect_Impl (void) -{ -} - -ACE_Asynch_Transmit_File_Impl::~ACE_Asynch_Transmit_File_Impl (void) -{ -} - -ACE_Asynch_Transmit_File_Result_Impl::~ACE_Asynch_Transmit_File_Result_Impl (void) -{ -} - -ACE_Asynch_Read_Dgram_Impl::~ACE_Asynch_Read_Dgram_Impl (void) -{ -} - -ACE_Asynch_Read_Dgram_Impl::ACE_Asynch_Read_Dgram_Impl (void) -{ -} - -ACE_Asynch_Write_Dgram_Impl::~ACE_Asynch_Write_Dgram_Impl (void) -{ -} - -ACE_Asynch_Write_Dgram_Impl::ACE_Asynch_Write_Dgram_Impl (void) -{ -} - -//*********************************************** - -ACE_Asynch_Read_Dgram_Result_Impl::~ACE_Asynch_Read_Dgram_Result_Impl (void) -{ -} - -ACE_Asynch_Read_Dgram_Result_Impl::ACE_Asynch_Read_Dgram_Result_Impl (void) -{ -} - -//*********************************************** - -ACE_Asynch_Write_Dgram_Result_Impl::~ACE_Asynch_Write_Dgram_Result_Impl (void) -{ -} - -ACE_Asynch_Write_Dgram_Result_Impl::ACE_Asynch_Write_Dgram_Result_Impl (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_WIN32_OVERLAPPED_IO || ACE_HAS_AIO_CALLS */ diff --git a/ACE/ace/Asynch_IO_Impl.h b/ACE/ace/Asynch_IO_Impl.h deleted file mode 100644 index b2a308a7565..00000000000 --- a/ACE/ace/Asynch_IO_Impl.h +++ /dev/null @@ -1,816 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Asynch_IO_Impl.h - * - * $Id$ - * - * - * This class contains asbtract base classes for all the concrete - * implementation classes for the various asynchronous operations - * that are used with the Praoctor. - * - * - * @author Irfan Pyarali (irfan@cs.wustl.edu) - * @author Tim Harrison (harrison@cs.wustl.edu) - * @author Alexander Babu Arulanthu - * @author Roger Tragin - * @author Alexander Libman - */ -//============================================================================= - -#ifndef ACE_ASYNCH_IO_IMPL_H -#define ACE_ASYNCH_IO_IMPL_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_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS) -// This only works on Win32 platforms and on Unix platforms supporting -// aio calls. - -#include "ace/Asynch_IO.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declaration. -class ACE_Proactor_Impl; - -/** - * @class ACE_Asynch_Result_Impl - * - * @brief Abstract base class for the all the classes that provide - * concrete implementations for ACE_Asynch_Result. - * - */ -class ACE_Export ACE_Asynch_Result_Impl -{ -public: - virtual ~ACE_Asynch_Result_Impl (void); - - /// Number of bytes transferred by the operation. - virtual size_t bytes_transferred (void) const = 0; - - /// ACT associated with the operation. - virtual const void *act (void) const = 0; - - /// Did the operation succeed? - virtual int success (void) const = 0; - - /// This ACT is not the same as the ACT associated with the - /// asynchronous operation. - virtual const void *completion_key (void) const = 0; - - /// Error value if the operation fail. - virtual u_long error (void) const = 0; - - /// Event associated with the OVERLAPPED structure. - virtual ACE_HANDLE event (void) const = 0; - - /// This really make sense only when doing file I/O. - virtual u_long offset (void) const = 0; - virtual u_long offset_high (void) const = 0; - - /// Priority of the operation. - virtual int priority (void) const = 0; - - /** - * POSIX4 real-time signal number to be used for the - * operation. ranges from SIGRTMIN to SIGRTMAX. By - * default, SIGRTMIN is used to issue calls. This is a no-op - * on non-POSIX4 systems and returns 0. - */ - virtual int signal_number (void) const = 0; - - // protected: - // - // These two should really be protected. But sometimes it - // simplifies code to be able to "fake" a result. Use carefully. - /// This is called when the asynchronous operation completes. - virtual void complete (size_t bytes_transferred, - int success, - const void *completion_key, - u_long error = 0) = 0; - - /// Post @c this to the Proactor's completion port. - virtual int post_completion (ACE_Proactor_Impl *proactor) = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Result_Impl (void); -}; - -/** - * @class ACE_Asynch_Operation_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Operation. - */ -class ACE_Export ACE_Asynch_Operation_Impl -{ -public: - virtual ~ACE_Asynch_Operation_Impl (void); - - /** - * Initializes the factory with information which will be used with - * each asynchronous call. If @a handle == ACE_INVALID_HANDLE, - * ACE_Handler::handle() will be called on the proxied handler to get the - * correct handle. - */ - virtual int open (const ACE_Handler::Proxy_Ptr &handler_proxy, - ACE_HANDLE handle, - const void *completion_key, - ACE_Proactor *proactor) = 0; - - /** - * This cancels all pending accepts operations that were issued by - * the calling thread. The function does not cancel asynchronous - * operations issued by other threads. - */ - virtual int cancel (void) = 0; - - // = Access methods. - - /// Return the underlying proactor. - virtual ACE_Proactor* proactor (void) const = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Operation_Impl (void); -}; - -/** - * @class ACE_Asynch_Read_Stream_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Read_Stream - * - */ -class ACE_Export ACE_Asynch_Read_Stream_Impl : public virtual ACE_Asynch_Operation_Impl -{ -public: - virtual ~ACE_Asynch_Read_Stream_Impl (void); - - /// This starts off an asynchronous read. Upto @a bytes_to_read will - /// be read and stored in the @a message_block. - virtual int read (ACE_Message_Block &message_block, - size_t bytes_to_read, - const void *act, - int priority, - int signal_number) = 0; - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) - /** - * Same as above but with scatter support, through chaining of composite - * message blocks using the continuation field. - */ - virtual int readv (ACE_Message_Block &message_block, - size_t bytes_to_read, - const void *act, - int priority, - int signal_number) = 0; -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - -protected: - /// Do-nothing constructor. - ACE_Asynch_Read_Stream_Impl (void); -}; - -/** - * @class ACE_Asynch_Read_Stream_Result_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Read_Stream::Result class. - * - */ -class ACE_Export ACE_Asynch_Read_Stream_Result_Impl : public virtual ACE_Asynch_Result_Impl -{ -public: - virtual ~ACE_Asynch_Read_Stream_Result_Impl (void); - - /// The number of bytes which were requested at the start of the - /// asynchronous read. - virtual size_t bytes_to_read (void) const = 0; - - /// Message block which contains the read data. - virtual ACE_Message_Block &message_block (void) const = 0; - - /// I/O handle used for reading. - virtual ACE_HANDLE handle (void) const = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Read_Stream_Result_Impl (void); -}; - -/** - * @class ACE_Asynch_Write_Stream_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Write_Stream class. - * - */ -class ACE_Export ACE_Asynch_Write_Stream_Impl : public virtual ACE_Asynch_Operation_Impl -{ -public: - virtual ~ACE_Asynch_Write_Stream_Impl (void); - - /// This starts off an asynchronous write. Upto @a bytes_to_write - /// will be written from the @a message_block. - virtual int write (ACE_Message_Block &message_block, - size_t bytes_to_write, - const void *act, - int priority, - int signal_number) = 0; - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) - /** - * Same as above but with gather support, through chaining of composite - * message blocks using the continuation field. - */ - virtual int writev (ACE_Message_Block &message_block, - size_t bytes_to_write, - const void *act, - int priority, - int signal_number) = 0; -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - -protected: - /// Do-nothing constructor. - ACE_Asynch_Write_Stream_Impl (void); -}; - -/** - * @class ACE_Asynch_Write_Stream_Result_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Write_Stream::Result. - * - */ -class ACE_Export ACE_Asynch_Write_Stream_Result_Impl : public virtual ACE_Asynch_Result_Impl -{ -public: - virtual ~ACE_Asynch_Write_Stream_Result_Impl (void); - - /// The number of bytes which were requested at the start of the - /// asynchronous write. - virtual size_t bytes_to_write (void) const = 0; - - /// Message block that contains the data to be written. - virtual ACE_Message_Block &message_block (void) const = 0; - - /// I/O handle used for writing. - virtual ACE_HANDLE handle (void) const = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Write_Stream_Result_Impl (void); -}; - -/** - * @class ACE_Asynch_Read_File_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Read_File::Result. - * - */ -class ACE_Export ACE_Asynch_Read_File_Impl : public virtual ACE_Asynch_Read_Stream_Impl -{ -public: - virtual ~ACE_Asynch_Read_File_Impl (void); - - /** - * This starts off an asynchronous read. Upto @a bytes_to_read will - * be read and stored in the @a message_block. The read will start - * at @a offset from the beginning of the file. - */ - virtual int read (ACE_Message_Block &message_block, - size_t bytes_to_read, - u_long offset, - u_long offset_high, - const void *act, - int priority, - int signal_number) = 0; - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) - /** - * Same as above but with scatter support, through chaining of composite - * message blocks using the continuation field. - * @note In win32 Each data block payload must be at least the size of a system - * memory page and must be aligned on a system memory page size boundary - */ - virtual int readv (ACE_Message_Block &message_block, - size_t bytes_to_read, - u_long offset, - u_long offset_high, - const void *act, - int priority, - int signal_number) = 0; -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - - /// This starts off an asynchronous read. Upto @a bytes_to_read will - /// be read and stored in the @a message_block. - virtual int read (ACE_Message_Block &message_block, - size_t bytes_to_read, - const void *act, - int priority, - int signal_number) = 0; - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) - /** - * Same as above but with scatter support, through chaining of composite - * message blocks using the continuation field. - */ - virtual int readv (ACE_Message_Block &message_block, - size_t bytes_to_read, - const void *act, - int priority, - int signal_number) = 0; -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - -protected: - /// Do-nothing constructor. - ACE_Asynch_Read_File_Impl (void); -}; - -/** - * @class ACE_Asynch_Read_File_Result_Impl - * - * @brief This is the abstract base class for all the concrete - * implementation classes for ACE_Asynch_Read_File::Result. - * - */ -class ACE_Export ACE_Asynch_Read_File_Result_Impl : public virtual ACE_Asynch_Read_Stream_Result_Impl -{ -public: - /// Destructor. - virtual ~ACE_Asynch_Read_File_Result_Impl (void); - -protected: - /// Do-nothing constructor. - ACE_Asynch_Read_File_Result_Impl (void); -}; - -/** - * @class ACE_Asynch_Write_File_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Write_File. - * - */ -class ACE_Export ACE_Asynch_Write_File_Impl : public virtual ACE_Asynch_Write_Stream_Impl -{ -public: - virtual ~ACE_Asynch_Write_File_Impl (void); - - /** - * This starts off an asynchronous write. Upto @a bytes_to_write - * will be write and stored in the @a message_block. The write will - * start at @a offset from the beginning of the file. - */ - virtual int write (ACE_Message_Block &message_block, - size_t bytes_to_write, - u_long offset, - u_long offset_high, - const void *act, - int priority, - int signal_number) = 0; - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) - /** - * Same as above but with gather support, through chaining of composite - * message blocks using the continuation field. - * @note In win32 Each data block payload must be at least the size of a system - * memory page and must be aligned on a system memory page size boundary - */ - virtual int writev (ACE_Message_Block &message_block, - size_t bytes_to_write, - u_long offset, - u_long offset_high, - const void *act, - int priority, - int signal_number) = 0; -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - - /// This starts off an asynchronous write. Upto @a bytes_to_write - /// will be written from the @a message_block. - virtual int write (ACE_Message_Block &message_block, - size_t bytes_to_write, - const void *act, - int priority, - int signal_number) = 0; - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) - /** - * Same as above but with gather support, through chaining of composite - * message blocks using the continuation field. - */ - virtual int writev (ACE_Message_Block &message_block, - size_t bytes_to_write, - const void *act, - int priority, - int signal_number) = 0; -#endif /* (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) */ - -protected: - /// Do-nothing constructor. - ACE_Asynch_Write_File_Impl (void); -}; - -/** - * @class ACE_Asynch_Write_File_Result_Impl - * - * @brief This is the abstract base class for all the concrete - * implementation classes that provide different implementations - * for the ACE_Asynch_Write_File::Result. - * - */ -class ACE_Export ACE_Asynch_Write_File_Result_Impl : public virtual ACE_Asynch_Write_Stream_Result_Impl -{ -public: - virtual ~ACE_Asynch_Write_File_Result_Impl (void); - -protected: - /// Do-nothing constructor. - ACE_Asynch_Write_File_Result_Impl (void); -}; - -/** - * @class ACE_Asynch_Accept_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Accept. - * - */ -class ACE_Export ACE_Asynch_Accept_Impl : public virtual ACE_Asynch_Operation_Impl -{ -public: - virtual ~ACE_Asynch_Accept_Impl (void); - - /** - * This starts off an asynchronous accept. The asynchronous accept - * call also allows any initial data to be returned to the - * . Upto @a bytes_to_read will be read and stored in the - * @a message_block. The @a accept_handle will be used for the - * call. If (@a accept_handle == INVALID_HANDLE), a new - * handle will be created. - * - * @a message_block must be specified. This is because the address of - * the new connection is placed at the end of this buffer. - */ - virtual int accept (ACE_Message_Block &message_block, - size_t bytes_to_read, - ACE_HANDLE accept_handle, - const void *act, - int priority, - int signal_number, - int addr_family) = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Accept_Impl (void); -}; - -/** - * @class ACE_Asynch_Accept_Result_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Accept. - * - */ -class ACE_Export ACE_Asynch_Accept_Result_Impl : public virtual ACE_Asynch_Result_Impl -{ -public: - virtual ~ACE_Asynch_Accept_Result_Impl (void); - - /// The number of bytes which were requested at the start of the - /// asynchronous accept. - virtual size_t bytes_to_read (void) const = 0; - - /// Message block which contains the read data. - virtual ACE_Message_Block &message_block (void) const = 0; - - /// I/O handle used for accepting new connections. - virtual ACE_HANDLE listen_handle (void) const = 0; - - /// I/O handle for the new connection. - virtual ACE_HANDLE accept_handle (void) const = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Accept_Result_Impl (void); -}; - - -/** - * @class ACE_Asynch_Connect_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Connect. - * - */ -class ACE_Export ACE_Asynch_Connect_Impl : public virtual ACE_Asynch_Operation_Impl -{ -public: - virtual ~ACE_Asynch_Connect_Impl (void); - - /** - * This starts off an asynchronous connect - */ - virtual int connect (ACE_HANDLE connect_handle, - const ACE_Addr & remote_sap, - const ACE_Addr & local_sap, - int reuse_addr, - const void *act, - int priority, - int signal_number) = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Connect_Impl (void); -}; - -/** - * @class ACE_Asynch_Connect_Result_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Connect. - * - */ -class ACE_Export ACE_Asynch_Connect_Result_Impl : public virtual ACE_Asynch_Result_Impl -{ -public: - virtual ~ACE_Asynch_Connect_Result_Impl (void); - - /// I/O handle for the connection. - virtual ACE_HANDLE connect_handle (void) const = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Connect_Result_Impl (void); -}; - - -/** - * @class ACE_Asynch_Transmit_File_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Transmit_File. - * - */ -class ACE_Asynch_Transmit_File_Impl : public virtual ACE_Asynch_Operation_Impl -{ -public: - virtual ~ACE_Asynch_Transmit_File_Impl (void); - - /// This starts off an asynchronous transmit file. - virtual int transmit_file (ACE_HANDLE file, - ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer, - size_t bytes_to_write, - u_long offset, - u_long offset_high, - size_t bytes_per_send, - u_long flags, - const void *act, - int priority, - int signal_number) = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Transmit_File_Impl (void); -}; - -/** - * @class ACE_Asynch_Transmit_File_Result_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Transmit_File::Result. - * - */ -class ACE_Export ACE_Asynch_Transmit_File_Result_Impl : public virtual ACE_Asynch_Result_Impl -{ -public: - virtual ~ACE_Asynch_Transmit_File_Result_Impl (void); - - /// Socket used for transmitting the file. - virtual ACE_HANDLE socket (void) const = 0; - - /// File from which the data is read. - virtual ACE_HANDLE file (void) const = 0; - - /// Header and trailer data associated with this transmit file. - virtual ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer (void) const = 0; - - /// The number of bytes which were requested at the start of the - /// asynchronous transmit file. - virtual size_t bytes_to_write (void) const = 0; - - /// Number of bytes per send requested at the start of the transmit - /// file. - virtual size_t bytes_per_send (void) const = 0; - - /// Flags which were passed into transmit file. - virtual u_long flags (void) const = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Transmit_File_Result_Impl (void); -}; - - -/** - * @class ACE_Asynch_Read_Dgram_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Read_Dgram - * - */ -class ACE_Export ACE_Asynch_Read_Dgram_Impl : public virtual ACE_Asynch_Operation_Impl -{ -public: - virtual ~ACE_Asynch_Read_Dgram_Impl (void); - - /** This starts off an asynchronous read. Upto - * total_size()> will be read and stored in the - * @a message_block. @a message_block's will be updated to reflect - * the added bytes if the read operation is successful completed. - * Return code of 1 means immediate success and - * will contain number of bytes read. The - * method will still be called. Return code of 0 means the IO will - * complete proactively. Return code of -1 means there was an error, use - * errno to get the error code. - * - * Scatter/gather is supported on WIN32 by using the cont()> - * method. Up to ACE_IOV_MAX @a message_block's are supported. Upto - * size()> bytes will be read into each for - * a total of total_size()> bytes. All @a message_block's - * 's will be updated to reflect the added bytes for each - * @a message_block - * - * Priority of the operation is specified by @a priority. On POSIX4-Unix, - * this is supported. Works like in Unix. Negative values are not - * allowed. 0 means priority of the operation same as the process - * priority. 1 means priority of the operation is one less than - * process. And so forth. On Win32, @a priority is a no-op. - * @a signal_number is the POSIX4 real-time signal number to be used - * for the operation. @a signal_number ranges from ACE_SIGRTMIN to - * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems. - */ - virtual ssize_t recv (ACE_Message_Block *message_block, - size_t &number_of_bytes_recvd, - int flags, - int protocol_family, - const void *act, - int priority, - int signal_number) = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Read_Dgram_Impl (void); -}; - -/** - * @class ACE_Asynch_Read_Dgram_Result_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Read_Dgram::Result class. - * - */ -class ACE_Export ACE_Asynch_Read_Dgram_Result_Impl : public virtual ACE_Asynch_Result_Impl -{ -public: - virtual ~ACE_Asynch_Read_Dgram_Result_Impl (void); - - /// Message block which contains the read data - virtual ACE_Message_Block *message_block (void) const = 0; - - /// The number of bytes which were requested at the start of the - /// asynchronous read. - virtual size_t bytes_to_read (void) const = 0; - - /// The address of where the packet came from - virtual int remote_address (ACE_Addr& addr) const = 0; - - /// The flags used in the read - virtual int flags (void) const = 0; - - /// I/O handle used for reading. - virtual ACE_HANDLE handle (void) const = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Read_Dgram_Result_Impl (void); -}; - -/** - * @class ACE_Asynch_Write_Dgram_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Write_Dgram class. - * - */ -class ACE_Export ACE_Asynch_Write_Dgram_Impl : public virtual ACE_Asynch_Operation_Impl -{ -public: - virtual ~ACE_Asynch_Write_Dgram_Impl (void); - - /** This starts off an asynchronous send. Upto - * total_length()> will be sent. @a message_block's - * will be updated to reflect the sent bytes if the send operation - * is successful completed. - * Return code of 1 means immediate success and - * is updated to number of bytes sent. The - * method will still be called. Return code of 0 means the IO will - * complete proactively. Return code of -1 means there was an error, use - * errno to get the error code. - * - * Scatter/gather is supported on WIN32 by using the cont()> - * method. Up to ACE_IOV_MAX @a message_block's are supported. Upto - * length()> bytes will be sent from each - * for a total of total_length()> bytes. All - * @a message_block's 's will be updated to reflect the bytes sent - * from each @a message_block. - * - * Priority of the operation is specified by @a priority. On POSIX4-Unix, - * this is supported. Works like in Unix. Negative values are not - * allowed. 0 means priority of the operation same as the process - * priority. 1 means priority of the operation is one less than - * process. And so forth. On Win32, this argument is a no-op. - * @a signal_number is the POSIX4 real-time signal number to be used - * for the operation. @a signal_number ranges from ACE_SIGRTMIN to - * ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems. - */ - virtual ssize_t send (ACE_Message_Block *message_block, - size_t &number_of_bytes_sent, - int flags, - const ACE_Addr &addr, - const void *act, - int priority, - int signal_number) = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Write_Dgram_Impl (void); -}; - -/** - * @class ACE_Asynch_Write_Dgram_Result_Impl - * - * @brief Abstract base class for all the concrete implementation - * classes that provide different implementations for the - * ACE_Asynch_Write_Dgram::Result class. - * - */ -class ACE_Export ACE_Asynch_Write_Dgram_Result_Impl : public virtual ACE_Asynch_Result_Impl -{ -public: - virtual ~ACE_Asynch_Write_Dgram_Result_Impl (void); - - /// The number of bytes which were requested at the start of the - /// asynchronous write. - virtual size_t bytes_to_write (void) const = 0; - - /// Message block which contains the sent data - virtual ACE_Message_Block *message_block (void) const = 0; - - /// The flags using in the write - virtual int flags (void) const = 0; - - /// I/O handle used for writing. - virtual ACE_HANDLE handle (void) const = 0; - -protected: - /// Do-nothing constructor. - ACE_Asynch_Write_Dgram_Result_Impl (void); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Asynch_IO_Impl.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_HAS_WIN32_OVERLAPPED_IO || ACE_HAS_AIO_CALLS */ -#include /**/ "ace/post.h" -#endif /* ACE_ASYNCH_IO_IMPL_H */ diff --git a/ACE/ace/Asynch_IO_Impl.inl b/ACE/ace/Asynch_IO_Impl.inl deleted file mode 100644 index 495a768a972..00000000000 --- a/ACE/ace/Asynch_IO_Impl.inl +++ /dev/null @@ -1,106 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Asynch_Result_Impl::ACE_Asynch_Result_Impl (void) -{ -} - -ACE_INLINE -ACE_Asynch_Operation_Impl::ACE_Asynch_Operation_Impl (void) -{ -} - -ACE_INLINE -ACE_Asynch_Read_Stream_Impl::ACE_Asynch_Read_Stream_Impl (void) - : ACE_Asynch_Operation_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Read_Stream_Result_Impl::ACE_Asynch_Read_Stream_Result_Impl (void) - : ACE_Asynch_Result_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Write_Stream_Impl::ACE_Asynch_Write_Stream_Impl (void) - : ACE_Asynch_Operation_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Write_Stream_Result_Impl::ACE_Asynch_Write_Stream_Result_Impl (void) - : ACE_Asynch_Result_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Read_File_Impl::ACE_Asynch_Read_File_Impl (void) - : ACE_Asynch_Operation_Impl (), - ACE_Asynch_Read_Stream_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Read_File_Result_Impl::ACE_Asynch_Read_File_Result_Impl (void) - : ACE_Asynch_Result_Impl (), - ACE_Asynch_Read_Stream_Result_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Write_File_Impl::ACE_Asynch_Write_File_Impl (void) - : ACE_Asynch_Operation_Impl (), - ACE_Asynch_Write_Stream_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Write_File_Result_Impl::ACE_Asynch_Write_File_Result_Impl (void) - : ACE_Asynch_Result_Impl (), - ACE_Asynch_Write_Stream_Result_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Accept_Impl::ACE_Asynch_Accept_Impl (void) - : ACE_Asynch_Operation_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Accept_Result_Impl::ACE_Asynch_Accept_Result_Impl (void) - : ACE_Asynch_Result_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Connect_Impl::ACE_Asynch_Connect_Impl (void) - : ACE_Asynch_Operation_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Connect_Result_Impl::ACE_Asynch_Connect_Result_Impl (void) - : ACE_Asynch_Result_Impl () -{ -} - - -ACE_INLINE -ACE_Asynch_Transmit_File_Impl::ACE_Asynch_Transmit_File_Impl (void) - : ACE_Asynch_Operation_Impl () -{ -} - -ACE_INLINE -ACE_Asynch_Transmit_File_Result_Impl::ACE_Asynch_Transmit_File_Result_Impl (void) - : ACE_Asynch_Result_Impl () -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Asynch_Pseudo_Task.cpp b/ACE/ace/Asynch_Pseudo_Task.cpp deleted file mode 100644 index 6bc47866b6f..00000000000 --- a/ACE/ace/Asynch_Pseudo_Task.cpp +++ /dev/null @@ -1,130 +0,0 @@ -// $Id$ - -#include "ace/Asynch_Pseudo_Task.h" - -#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 () - : select_reactor_ (), // should be initialized before reactor_ - reactor_ (&select_reactor_, 0) // don't delete implementation -{ -} - -ACE_Asynch_Pseudo_Task::~ACE_Asynch_Pseudo_Task () -{ - this->stop (); -} - -int -ACE_Asynch_Pseudo_Task::start (void) -{ - if (this->reactor_.initialized () == 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%N:%l:%p\n"), - ACE_TEXT ("start reactor is not initialized")), - -1); - - return this->activate () == -1 ? -1 : 0; // If started, return 0 -} - -int -ACE_Asynch_Pseudo_Task::stop (void) -{ - if (this->thr_count () == 0) // already stopped - return 0; - - if (this->reactor_.end_reactor_event_loop () == -1) - return -1; - - this->wait (); - this->reactor_.close (); - return 0; -} - -int -ACE_Asynch_Pseudo_Task::svc (void) -{ -#if !defined (ACE_WIN32) - - sigset_t RT_signals; - - sigemptyset (&RT_signals); - for (int si = ACE_SIGRTMIN; si <= ACE_SIGRTMAX; si++) - sigaddset (&RT_signals, si); - - if (ACE_OS::pthread_sigmask (SIG_BLOCK, &RT_signals, 0) != 0) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Error:(%P | %t):%p\n"), - ACE_TEXT ("pthread_sigmask"))); -#endif - - reactor_.owner (ACE_Thread::self ()); - reactor_.run_reactor_event_loop (); - - return 0; -} - - - -int -ACE_Asynch_Pseudo_Task::register_io_handler (ACE_HANDLE handle, - ACE_Event_Handler *handler, - ACE_Reactor_Mask mask, - int flg_suspend) -{ - // Register the handler with the reactor. - if (-1 == this->reactor_.register_handler (handle, handler, mask)) - return -1; - - if (flg_suspend == 0) - return 0; - - // Suspend the handle now. Enable only when the accept is issued - // by the application. - if (this->reactor_.suspend_handler (handle) == -1) - { - ACE_ERROR - ((LM_ERROR, - ACE_TEXT ("%N:%l:%p\n"), - ACE_TEXT ("register_io_handler (suspended)"))); - this->reactor_.remove_handler (handle, ACE_Event_Handler::ALL_EVENTS_MASK - | ACE_Event_Handler::DONT_CALL); - return -1; - } - - return 0; -} - -int -ACE_Asynch_Pseudo_Task::remove_io_handler (ACE_HANDLE handle) -{ - return this->reactor_.remove_handler (handle, - ACE_Event_Handler::ALL_EVENTS_MASK - | ACE_Event_Handler::DONT_CALL); -} - -int -ACE_Asynch_Pseudo_Task::remove_io_handler (ACE_Handle_Set &set) -{ - return this->reactor_.remove_handler (set, ACE_Event_Handler::ALL_EVENTS_MASK - | ACE_Event_Handler::DONT_CALL); -} - -int -ACE_Asynch_Pseudo_Task::suspend_io_handler (ACE_HANDLE handle) -{ - return this->reactor_.suspend_handler (handle); -} - -int -ACE_Asynch_Pseudo_Task::resume_io_handler (ACE_HANDLE handle) -{ - return this->reactor_.resume_handler (handle); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Asynch_Pseudo_Task.h b/ACE/ace/Asynch_Pseudo_Task.h deleted file mode 100644 index 235d71411ba..00000000000 --- a/ACE/ace/Asynch_Pseudo_Task.h +++ /dev/null @@ -1,73 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Asynch_Pseudo_Task.h - * - * $Id$ - * - * @author Alexander Libman - */ -//============================================================================= - -#ifndef ACE_ASYNCH_PSEUDO_TASK_H -#define ACE_ASYNCH_PSEUDO_TASK_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/Reactor.h" -#include "ace/Select_Reactor.h" -#include "ace/Task.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/* - * Specialization hook to replace the Reactor with the - * concrete Reactor implementation, e.g., select_st, - * select_mt etc. - */ -//@@ REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK - -/** - * @class ACE_Asynch_Pseudo_Task - * - */ -class ACE_Export ACE_Asynch_Pseudo_Task : public ACE_Task -{ -public: - ACE_Asynch_Pseudo_Task(); - virtual ~ACE_Asynch_Pseudo_Task(); - - int start (void); - int stop (void); - - int register_io_handler (ACE_HANDLE handle, - ACE_Event_Handler *handler, - ACE_Reactor_Mask mask, - int flg_suspend); - - int remove_io_handler (ACE_HANDLE handle); - int remove_io_handler (ACE_Handle_Set &set); - int resume_io_handler (ACE_HANDLE handle); - int suspend_io_handler (ACE_HANDLE handle); - -protected: - virtual int svc (void); - - /// Should be initialized before reactor_ - ACE_Select_Reactor select_reactor_; - - ACE_Reactor reactor_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" - -#endif /* ACE_ASYNCH_PSEUDO_TASK_H */ diff --git a/ACE/ace/Atomic_Op.cpp b/ACE/ace/Atomic_Op.cpp deleted file mode 100644 index 9076b9f67ed..00000000000 --- a/ACE/ace/Atomic_Op.cpp +++ /dev/null @@ -1,310 +0,0 @@ -// $Id$ - -#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__ */ - -#if defined (ACE_HAS_BUILTIN_ATOMIC_OP) - -#if defined (ACE_INCLUDE_ATOMIC_OP_SPARC) -# include "ace/Atomic_Op_Sparc.h" -#endif /* ACE_INCLUDE_ATOMIC_OP_SPARC */ - -namespace { - -#if defined (_MSC_VER) -// Disable "no return value" warning, as we will be putting -// the return values directly into the EAX register. -#pragma warning (push) -#pragma warning (disable: 4035) -#endif /* _MSC_VER */ - -long -single_cpu_increment (volatile long *value) -{ -#if defined (ACE_HAS_INTEL_ASSEMBLY) - long tmp = 1; - unsigned long addr = reinterpret_cast (value); - asm( "xadd %0, (%1)" : "+r"(tmp) : "r"(addr) ); - return tmp + 1; -#elif defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))) - return ace_atomic_add_long ( - reinterpret_cast (value), 1); -#elif defined(__GNUC__) && defined(PPC) - long tmp; - asm("lwz %0,%1" : "=r" (tmp) : "m" (*value) ); - asm("addi %0,%0,1" : "+r" (tmp) ); - asm("stw %0,%1" : "+r" (tmp), "=m" (*value) ); - return tmp; -#else /* ACE_HAS_INTEL_ASSEMBLY*/ - ACE_UNUSED_ARG (value); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_INTEL_ASSEMBLY*/ -} - -long -single_cpu_decrement (volatile long *value) -{ -#if defined (ACE_HAS_INTEL_ASSEMBLY) - long tmp = -1; - unsigned long addr = reinterpret_cast (value); - asm( "xadd %0, (%1)" : "+r"(tmp) : "r"(addr) ); - return tmp - 1; -#elif defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))) - return ace_atomic_add_long ( - reinterpret_cast (value), -1); -#elif defined(__GNUC__) && defined(PPC) - long tmp; - asm("lwz %0,%1" : "=r" (tmp) : "m" (*value) ); - asm("addi %0,%0,-1" : "+r" (tmp) ); - asm("stw %0,%1" : "+r" (tmp), "=m" (*value) ); - return tmp; -#else /* ACE_HAS_INTEL_ASSEMBLY*/ - ACE_UNUSED_ARG (value); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_INTEL_ASSEMBLY*/ -} - -long -single_cpu_exchange (volatile long *value, long rhs) -{ -#if defined (ACE_HAS_INTEL_ASSEMBLY) - unsigned long addr = reinterpret_cast (value); - asm( "xchg %0, (%1)" : "+r"(rhs) : "r"(addr) ); - return rhs; -#elif defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))) - return ace_atomic_swap_long ( - reinterpret_cast (value), rhs); -#elif defined(__GNUC__) && defined(PPC) - long tmp; - asm("lwz %0,%1" : "=r" (tmp) : "m" (rhs) ); - asm("stw %0,%1" : "+r" (tmp), "=m" (*value) ); - return tmp; -#else /* ACE_HAS_INTEL_ASSEMBLY*/ - ACE_UNUSED_ARG (value); - ACE_UNUSED_ARG (rhs); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_INTEL_ASSEMBLY*/ -} - -long -single_cpu_exchange_add (volatile long *value, long rhs) -{ -#if defined (ACE_HAS_INTEL_ASSEMBLY) - unsigned long addr = reinterpret_cast (value); - asm( "xadd %0, (%1)" : "+r"(rhs) : "r"(addr) ); - return rhs; -#elif defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))) - return ace_atomic_swap_add_long ( - reinterpret_cast (value), rhs); -#elif defined(__GNUC__) && defined(PPC) - long tmp; - asm("add %0,%1,%2" : "=r" (tmp) : "r" (*value), "r" (rhs) ); - asm("stw %0,%1" : "+r" (tmp), "=m" (*value) ); - return tmp; -#elif defined (WIN32) && !defined (ACE_HAS_INTERLOCKED_EXCHANGEADD) -# if defined (_MSC_VER) - __asm - { - mov eax, rhs - mov edx, value - xadd [edx], eax - } - // Return value is already in EAX register. -# elif defined (__BORLANDC__) - _EAX = rhs; - _EDX = reinterpret_cast (value); - __emit__(0x0F, 0xC1, 0x02); // xadd [edx], eax - // Return value is already in EAX register. -# else /* _MSC_VER */ - ACE_UNUSED_ARG (value); - ACE_UNUSED_ARG (rhs); - ACE_NOTSUP_RETURN (-1); -# endif /* _MSC_VER */ -#else /* ACE_HAS_INTEL_ASSEMBLY*/ - ACE_UNUSED_ARG (value); - ACE_UNUSED_ARG (rhs); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_INTEL_ASSEMBLY*/ -} - -long -multi_cpu_increment (volatile long *value) -{ -#if defined (ACE_HAS_INTEL_ASSEMBLY) - long tmp = 1; - unsigned long addr = reinterpret_cast (value); - asm( "lock ; xadd %0, (%1)" : "+r"(tmp) : "r"(addr) ); - return tmp + 1; -#elif defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))) - return ace_atomic_add_long ( - reinterpret_cast (value), 1); -#else /* ACE_HAS_INTEL_ASSEMBLY*/ - ACE_UNUSED_ARG (value); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_INTEL_ASSEMBLY*/ -} - -long -multi_cpu_decrement (volatile long *value) -{ -#if defined (ACE_HAS_INTEL_ASSEMBLY) - long tmp = -1; - unsigned long addr = reinterpret_cast (value); - asm( "lock ; xadd %0, (%1)" : "+r"(tmp) : "r"(addr) ); - return tmp - 1; -#elif defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))) - return ace_atomic_add_long ( - reinterpret_cast (value), -1); -#else /* ACE_HAS_INTEL_ASSEMBLY*/ - ACE_UNUSED_ARG (value); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_INTEL_ASSEMBLY*/ -} - -long -multi_cpu_exchange (volatile long *value, long rhs) -{ -#if defined (ACE_HAS_INTEL_ASSEMBLY) - unsigned long addr = reinterpret_cast (value); - // 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))) - return ace_atomic_swap_long ( - reinterpret_cast (value), rhs); -#else /* ACE_HAS_INTEL_ASSEMBLY*/ - ACE_UNUSED_ARG (value); - ACE_UNUSED_ARG (rhs); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_INTEL_ASSEMBLY*/ -} - -long -multi_cpu_exchange_add (volatile long *value, long rhs) -{ -#if defined (ACE_HAS_INTEL_ASSEMBLY) - unsigned long addr = reinterpret_cast (value); - asm( "lock ; xadd %0, (%1)" : "+r"(rhs) : "r"(addr) ); - return rhs; -#elif defined (sun) || \ - (defined (__SUNPRO_CC) && (defined (__i386) || defined (__x86_64))) - return ace_atomic_swap_add_long ( - reinterpret_cast (value), rhs); -#elif defined (WIN32) && !defined (ACE_HAS_INTERLOCKED_EXCHANGEADD) -# if defined (_MSC_VER) - __asm - { - mov eax, rhs - mov edx, value - lock xadd [edx], eax - } - // Return value is already in EAX register. -# elif defined (__BORLANDC__) - _EAX = rhs; - _EDX = reinterpret_cast (value); - __emit__(0xF0, 0x0F, 0xC1, 0x02); // lock xadd [edx], eax - // Return value is already in EAX register. -# else /* _MSC_VER */ - ACE_UNUSED_ARG (value); - ACE_UNUSED_ARG (rhs); - ACE_NOTSUP_RETURN (-1); -# endif /* _MSC_VER */ -#else /* ACE_HAS_INTEL_ASSEMBLY*/ - ACE_UNUSED_ARG (value); - ACE_UNUSED_ARG (rhs); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_INTEL_ASSEMBLY*/ -} - -#if defined (_MSC_VER) -#pragma warning (pop) -#endif /* _MSC_VER */ - -} // end namespace - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -long (*ACE_Atomic_Op::increment_fn_) (volatile long *) = multi_cpu_increment; -long (*ACE_Atomic_Op::decrement_fn_) (volatile long *) = multi_cpu_decrement; -long (*ACE_Atomic_Op::exchange_fn_) (volatile long *, long) = multi_cpu_exchange; -long (*ACE_Atomic_Op::exchange_add_fn_) (volatile long *, long) = multi_cpu_exchange_add; - -void -ACE_Atomic_Op::init_functions (void) -{ - if (ACE_OS::num_processors () == 1) - { - increment_fn_ = single_cpu_increment; - decrement_fn_ = single_cpu_decrement; - exchange_fn_ = single_cpu_exchange; - exchange_add_fn_ = single_cpu_exchange_add; - } - else - { - increment_fn_ = multi_cpu_increment; - decrement_fn_ = multi_cpu_decrement; - exchange_fn_ = multi_cpu_exchange; - exchange_add_fn_ = multi_cpu_exchange_add; - } -} - -void -ACE_Atomic_Op::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 */ -} - -long (*ACE_Atomic_Op::increment_fn_) (volatile long *) = multi_cpu_increment; -long (*ACE_Atomic_Op::decrement_fn_) (volatile long *) = multi_cpu_decrement; -long (*ACE_Atomic_Op::exchange_fn_) (volatile long *, long) = multi_cpu_exchange; -long (*ACE_Atomic_Op::exchange_add_fn_) (volatile long *, long) = multi_cpu_exchange_add; - -void -ACE_Atomic_Op::init_functions (void) -{ - if (ACE_OS::num_processors () == 1) - { - increment_fn_ = single_cpu_increment; - decrement_fn_ = single_cpu_decrement; - exchange_fn_ = single_cpu_exchange; - exchange_add_fn_ = single_cpu_exchange_add; - } - else - { - increment_fn_ = multi_cpu_increment; - decrement_fn_ = multi_cpu_decrement; - exchange_fn_ = multi_cpu_exchange; - exchange_add_fn_ = multi_cpu_exchange_add; - } -} - -void -ACE_Atomic_Op::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_BUILTIN_ATOMIC_OP */ diff --git a/ACE/ace/Atomic_Op.h b/ACE/ace/Atomic_Op.h deleted file mode 100644 index 24abb64ef1d..00000000000 --- a/ACE/ace/Atomic_Op.h +++ /dev/null @@ -1,260 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Atomic_Op.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_ATOMIC_OP_H -#define ACE_ATOMIC_OP_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 the templates here. -#include "ace/Atomic_Op_T.h" - -// Determine whether builtin atomic op support is -// available on this platform. -#if defined (ACE_HAS_THREADS) -# if defined (WIN32) -# if defined (ACE_HAS_INTRINSIC_INTERLOCKED) -# define ACE_HAS_BUILTIN_ATOMIC_OP -# endif /* ACE_HAS_INTRINSIC_INTERLOCKED */ -# if defined (ACE_HAS_INTERLOCKED_EXCHANGEADD) -# define ACE_HAS_BUILTIN_ATOMIC_OP -# else /* ACE_HAS_INTERLOCKED_EXCHANGEADD */ - // Inline assembly emulation of InterlockedExchangeAdd - // is currently only implemented for MSVC (x86 only) and Borland. -# if (defined (_MSC_VER) && defined (_M_IX86)) || defined (__BORLANDC__) -# define ACE_HAS_BUILTIN_ATOMIC_OP -# endif /* _MSC_VER || __BORLANDC__ */ -# endif /* ACE_HAS_INTERLOCKED_EXCHANGEADD */ -# elif defined (ACE_HAS_INTEL_ASSEMBLY) -# define ACE_HAS_BUILTIN_ATOMIC_OP -# endif /* WIN32 */ -#endif /* ACE_HAS_THREADS */ - -#if defined (ACE_HAS_BUILTIN_ATOMIC_OP) - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Atomic_Op - * - * @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<> -class ACE_Export ACE_Atomic_Op -{ -public: - /// Initialize to 0. - ACE_Atomic_Op (void); - - /// Initialize to c. - ACE_Atomic_Op (long c); - - /// Manage copying... - ACE_Atomic_Op (const ACE_Atomic_Op &c); - - /// Atomically pre-increment . - long operator++ (void); - - /// Atomically post-increment . - long operator++ (int); - - /// Atomically increment by rhs. - long operator+= (long rhs); - - /// Atomically pre-decrement . - long operator-- (void); - - /// Atomically post-decrement . - long operator-- (int); - - /// Atomically decrement by rhs. - long operator-= (long rhs); - - /// Atomically compare with rhs. - bool operator== (long rhs) const; - - /// Atomically compare with rhs. - bool operator!= (long rhs) const; - - /// Atomically check if greater than or equal to rhs. - bool operator>= (long rhs) const; - - /// Atomically check if greater than rhs. - bool operator> (long rhs) const; - - /// Atomically check if less than or equal to rhs. - bool operator<= (long rhs) const; - - /// Atomically check if less than rhs. - bool operator< (long rhs) const; - - /// Atomically assign rhs to . - ACE_Atomic_Op &operator= (long rhs); - - /// Atomically assign to . - ACE_Atomic_Op &operator= (const ACE_Atomic_Op &rhs); - - /// Explicitly return . - long value (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Explicitly return (by reference). - volatile long &value_i (void); - - // ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - - /// Used during ACE object manager initialization to optimize the fast - /// atomic op implementation according to the number of CPUs. - static void init_functions (void); - -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 long value_; - - // 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); - static long (*exchange_add_fn_) (volatile long *, long); -}; - -/** - * @class ACE_Atomic_Op - * - * @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<> -class ACE_Export ACE_Atomic_Op -{ -public: - /// Initialize to 0. - ACE_Atomic_Op (void); - - /// Initialize to c. - ACE_Atomic_Op (unsigned long c); - - /// Manage copying... - ACE_Atomic_Op (const ACE_Atomic_Op &c); - - /// Atomically pre-increment . - unsigned long operator++ (void); - - /// Atomically post-increment . - unsigned long operator++ (int); - - /// Atomically increment by rhs. - unsigned long operator+= (unsigned long rhs); - - /// Atomically pre-decrement . - unsigned long operator-- (void); - - /// Atomically post-decrement . - unsigned long operator-- (int); - - /// Atomically decrement by rhs. - unsigned long operator-= (unsigned long rhs); - - /// Atomically compare with rhs. - bool operator== (unsigned long rhs) const; - - /// Atomically compare with rhs. - bool operator!= (unsigned long rhs) const; - - /// Atomically check if greater than or equal to rhs. - bool operator>= (unsigned long rhs) const; - - /// Atomically check if greater than rhs. - bool operator> (unsigned long rhs) const; - - /// Atomically check if less than or equal to rhs. - bool operator<= (unsigned long rhs) const; - - /// Atomically check if less than rhs. - bool operator< (unsigned long rhs) const; - - /// Atomically assign rhs to . - ACE_Atomic_Op &operator= (unsigned long rhs); - - /// Atomically assign to . - ACE_Atomic_Op &operator= (const ACE_Atomic_Op &rhs); - - /// Explicitly return . - unsigned long value (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Explicitly return (by reference). - volatile unsigned long &value_i (void); - - // ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - - /// Used during ACE object manager initialization to optimize the fast - /// atomic op implementation according to the number of CPUs. - static void init_functions (void); - -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 unsigned long value_; - - // 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); - static long (*exchange_add_fn_) (volatile long *, long); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */ - -#if defined (__ACE_INLINE__) -#include "ace/Atomic_Op.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /*ACE_ATOMIC_OP_H*/ diff --git a/ACE/ace/Atomic_Op.inl b/ACE/ace/Atomic_Op.inl deleted file mode 100644 index 4d55f05b091..00000000000 --- a/ACE/ace/Atomic_Op.inl +++ /dev/null @@ -1,335 +0,0 @@ -// -*- 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) -#endif /* ACE_HAS_INTRINSIC_INTERLOCKED */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Atomic_Op::ACE_Atomic_Op (void) - : value_ (0) -{ -} - -ACE_INLINE -ACE_Atomic_Op::ACE_Atomic_Op (long c) - : value_ (c) -{ -} - -ACE_INLINE -ACE_Atomic_Op::ACE_Atomic_Op ( - const ACE_Atomic_Op &rhs) - : value_ (rhs.value_) -{ -} - -ACE_INLINE long -ACE_Atomic_Op::operator++ (void) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - return ::_InterlockedIncrement (const_cast (&this->value_)); -#elif defined (WIN32) - return ::InterlockedIncrement (const_cast (&this->value_)); -#else /* WIN32 */ - return (*increment_fn_) (&this->value_); -#endif /* WIN32 */ -} - -ACE_INLINE long -ACE_Atomic_Op::operator++ (int) -{ - return ++*this - 1; -} - -ACE_INLINE long -ACE_Atomic_Op::operator-- (void) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - return ::_InterlockedDecrement (const_cast (&this->value_)); -#elif defined (WIN32) - return ::InterlockedDecrement (const_cast (&this->value_)); -#else /* WIN32 */ - return (*decrement_fn_) (&this->value_); -#endif /* WIN32 */ -} - -ACE_INLINE long -ACE_Atomic_Op::operator-- (int) -{ - return --*this + 1; -} - -ACE_INLINE long -ACE_Atomic_Op::operator+= (long rhs) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - return ::_InterlockedExchangeAdd (const_cast (&this->value_), - rhs) + rhs; -#elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD) - return ::InterlockedExchangeAdd (const_cast (&this->value_), - rhs) + rhs; -#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ - return (*exchange_add_fn_) (&this->value_, rhs) + rhs; -#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ -} - -ACE_INLINE long -ACE_Atomic_Op::operator-= (long rhs) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - return ::_InterlockedExchangeAdd (const_cast (&this->value_), - -rhs) - rhs; -#elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD) - return ::InterlockedExchangeAdd (const_cast (&this->value_), - -rhs) - rhs; -#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ - return (*exchange_add_fn_) (&this->value_, -rhs) - rhs; -#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ -} - -ACE_INLINE bool -ACE_Atomic_Op::operator== (long rhs) const -{ - return (this->value_ == rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator!= (long rhs) const -{ - return (this->value_ != rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator>= (long rhs) const -{ - return (this->value_ >= rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator> (long rhs) const -{ - return (this->value_ > rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator<= (long rhs) const -{ - return (this->value_ <= rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator< (long rhs) const -{ - return (this->value_ < rhs); -} - -ACE_INLINE ACE_Atomic_Op & -ACE_Atomic_Op::operator= (long rhs) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - ::_InterlockedExchange (const_cast (&this->value_), rhs); -#elif defined (WIN32) - ::InterlockedExchange (const_cast (&this->value_), rhs); -#else /* WIN32 */ - (*exchange_fn_) (&this->value_, rhs); -#endif /* WIN32 */ - return *this; -} - -ACE_INLINE ACE_Atomic_Op & -ACE_Atomic_Op::operator= ( - const ACE_Atomic_Op &rhs) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - ::_InterlockedExchange (const_cast (&this->value_), rhs.value_); -#elif defined (WIN32) - ::InterlockedExchange (const_cast (&this->value_), rhs.value_); -#else /* WIN32 */ - (*exchange_fn_) (&this->value_, rhs.value_); -#endif /* WIN32 */ - return *this; -} - -ACE_INLINE long -ACE_Atomic_Op::value (void) const -{ - return this->value_; -} - -ACE_INLINE volatile long & -ACE_Atomic_Op::value_i (void) -{ - return this->value_; -} - - -ACE_INLINE -ACE_Atomic_Op::ACE_Atomic_Op (void) - : value_ (0) -{ -} - -ACE_INLINE -ACE_Atomic_Op::ACE_Atomic_Op (unsigned long c) - : value_ (c) -{ -} - -ACE_INLINE -ACE_Atomic_Op::ACE_Atomic_Op ( - const ACE_Atomic_Op &rhs) - : value_ (rhs.value_) -{ -} - -ACE_INLINE unsigned long -ACE_Atomic_Op::operator++ (void) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - return static_cast (::_InterlockedIncrement (const_cast (reinterpret_cast(&this->value_)))); -#elif defined (WIN32) - return static_cast (::InterlockedIncrement (const_cast (reinterpret_cast(&this->value_)))); -#else /* WIN32 */ - return static_cast ((*increment_fn_) (reinterpret_cast (&this->value_))); -#endif /* WIN32 */ -} - -ACE_INLINE unsigned long -ACE_Atomic_Op::operator++ (int) -{ - return ++*this - 1; -} - -ACE_INLINE unsigned long -ACE_Atomic_Op::operator-- (void) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - return static_cast (::_InterlockedDecrement (const_cast (reinterpret_cast(&this->value_)))); -#elif defined (WIN32) - return static_cast (::InterlockedDecrement (const_cast (reinterpret_cast(&this->value_)))); -#else /* WIN32 */ - return static_cast ((*decrement_fn_) (reinterpret_cast (&this->value_))); -#endif /* WIN32 */ -} - -ACE_INLINE unsigned long -ACE_Atomic_Op::operator-- (int) -{ - return --*this + 1; -} - -ACE_INLINE unsigned long -ACE_Atomic_Op::operator+= (unsigned long rhs) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - return static_cast (::_InterlockedExchangeAdd (const_cast (reinterpret_cast (&this->value_)), - rhs)) + rhs; -#elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD) - return static_cast (::InterlockedExchangeAdd (const_cast (reinterpret_cast (&this->value_)), - rhs)) + rhs; -#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ - return static_cast ((*exchange_add_fn_) (reinterpret_cast (&this->value_), rhs)) + rhs; -#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ -} - -ACE_INLINE unsigned long -ACE_Atomic_Op::operator-= (unsigned long rhs) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - return static_cast (::_InterlockedExchangeAdd (const_cast (reinterpret_cast(&this->value_)), - -static_cast(rhs))) - rhs; -#elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD) - return static_cast (::InterlockedExchangeAdd (const_cast (reinterpret_cast(&this->value_)), - -static_cast(rhs))) - rhs; -#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ - long l_rhs = static_cast (rhs); - return static_cast ((*exchange_add_fn_) (reinterpret_cast (&this->value_), -l_rhs)) - rhs; -#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ -} - -ACE_INLINE bool -ACE_Atomic_Op::operator== (unsigned long rhs) const -{ - return (this->value_ == rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator!= (unsigned long rhs) const -{ - return (this->value_ != rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator>= (unsigned long rhs) const -{ - return (this->value_ >= rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator> (unsigned long rhs) const -{ - return (this->value_ > rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator<= (unsigned long rhs) const -{ - return (this->value_ <= rhs); -} - -ACE_INLINE bool -ACE_Atomic_Op::operator< (unsigned long rhs) const -{ - return (this->value_ < rhs); -} - -ACE_INLINE ACE_Atomic_Op & -ACE_Atomic_Op::operator= (unsigned long rhs) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - ::_InterlockedExchange (const_cast (reinterpret_cast (&this->value_)), rhs); -#elif defined (WIN32) - ::InterlockedExchange (const_cast (reinterpret_cast (&this->value_)), rhs); -#else /* WIN32 */ - (*exchange_fn_) (reinterpret_cast (&this->value_), rhs); -#endif /* WIN32 */ - return *this; -} - -ACE_INLINE ACE_Atomic_Op & -ACE_Atomic_Op::operator= ( - const ACE_Atomic_Op &rhs) -{ -#if defined (ACE_HAS_INTRINSIC_INTERLOCKED) - ::_InterlockedExchange (const_cast (reinterpret_cast (&this->value_)), rhs.value_); -#elif defined (WIN32) - ::InterlockedExchange (const_cast (reinterpret_cast (&this->value_)), rhs.value_); -#else /* WIN32 */ - (*exchange_fn_) (reinterpret_cast (&this->value_), rhs.value_); -#endif /* WIN32 */ - return *this; -} - -ACE_INLINE unsigned long -ACE_Atomic_Op::value (void) const -{ - return this->value_; -} - -ACE_INLINE volatile unsigned long & -ACE_Atomic_Op::value_i (void) -{ - return this->value_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */ diff --git a/ACE/ace/Atomic_Op_Sparc.c b/ACE/ace/Atomic_Op_Sparc.c deleted file mode 100644 index 75d64eb6ac5..00000000000 --- a/ACE/ace/Atomic_Op_Sparc.c +++ /dev/null @@ -1,187 +0,0 @@ -/* $Id$ - * - * This is a C file for a reason. The Sun C++ compiler does not accept - * inline assembler. - * - * Portions of this code are based on atomic operations found in the - * linux kernel source code. - */ - -#if defined (ACE_INCLUDE_ATOMIC_OP_SPARC) - -#if defined(__i386) && defined(__SUNPRO_C) -static void -__sunpro_asm_code() { - __asm("\n\ - .globl ace_atomic_add_long \n\ - .type ace_atomic_add_long,@function \n\ - .align 4 \n\ -ace_atomic_add_long: \n\ - movl 0x00000004(%esp), %edx \n\ - movl 0x00000008(%esp), %eax \n\ - lock; xadd %eax, (%edx) \n\ - addl 0x00000008(%esp), %eax \n\ - ret \n\ - "); - - __asm("\n\ - .globl ace_atomic_swap_long \n\ - .type ace_atomic_swap_long,@function \n\ - .align 4 \n\ -ace_atomic_swap_long: \n\ - movl 0x00000004(%esp), %edx \n\ - movl 0x00000008(%esp), %eax \n\ - xchg %eax, (%edx) \n\ - ret \n\ - "); - - __asm("\n\ - .globl ace_atomic_swap_add_long \n\ - .type ace_atomic_swap_add_long,@function \n\ - .align 4 \n\ -ace_atomic_swap_add_long: \n\ - movl 0x00000004(%esp), %edx \n\ - movl 0x00000008(%esp), %eax \n\ - lock; xadd %eax, (%edx) \n\ - ret \n\ - "); -} - -#elif defined(__x86_64) && defined(__SUNPRO_C) - -static void -__sunpro_asm_code() { - __asm("\n\ - .globl ace_atomic_add_long \n\ - .type ace_atomic_add_long,@function \n\ - .align 16 \n\ -ace_atomic_add_long: \n\ - movq %rsi, %rax \n\ - lock; xaddq %rax, (%rdi) \n\ - addq %rsi, %rax \n\ - ret \n\ - "); - - __asm("\n\ - .globl ace_atomic_swap_long \n\ - .type ace_atomic_swap_long,@function \n\ - .align 16 \n\ -ace_atomic_swap_long: \n\ - xchgq %rsi, (%rdi) \n\ - movq %rsi, %rax \n\ - ret \n\ - "); - - __asm("\n\ - .globl ace_atomic_swap_add_long \n\ - .type ace_atomic_swap_add_long,@function \n\ - .align 16 \n\ -ace_atomic_swap_add_long: \n\ - lock; xaddq %rsi, (%rdi) \n\ - movq %rsi, %rax \n\ - ret \n\ - "); -} - -#elif defined (__sparcv9) - -unsigned long -ace_atomic_add_long (volatile unsigned long *dest, long rhs) -{ - __asm ("restore\n" - "ldx [%o0], %o2\n" - ".again_add:\n" - "add %o2, %o1, %o3\n" - "casx [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %xcc, .again_add\n" - "mov %o3, %o2\n" - "retl\n" - "add %o2, %o1, %o0\n"); -} - -unsigned long -ace_atomic_swap_long (volatile unsigned long *dest, unsigned long rhs) -{ - __asm ("restore\n" - "ldx [%o0], %o2\n" - ".again_swap:\n" - "mov %o1, %o3\n" - "casx [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %xcc, .again_swap\n" - "mov %o3, %o2\n" - "retl\n" - "mov %o3, %o0\n"); -} - -unsigned long -ace_atomic_swap_add_long (volatile unsigned long *dest, long rhs) -{ - __asm ("restore\n" - "ldx [%o0], %o2\n" - ".again_swap_add:\n" - "mov %o2, %o4\n" - "add %o2, %o1, %o3\n" - "casx [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %xcc, .again_swap_add\n" - "mov %o3, %o2\n" - "retl\n" - "mov %o4, %o0\n"); -} - -#else - -unsigned long -ace_atomic_add_long (volatile unsigned long *dest, long rhs) -{ - __asm ("restore\n" - "ld [%o0], %o2\n" - ".again_add:\n" - "add %o2, %o1, %o3\n" - "cas [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %icc, .again_add\n" - "mov %o3, %o2\n" - "retl\n" - "add %o2, %o1, %o0\n"); -} - -unsigned long -ace_atomic_swap_long (volatile unsigned long *dest, unsigned long rhs) -{ - __asm ("restore\n" - "ld [%o0], %o2\n" - ".again_swap:\n" - "mov %o1, %o3\n" - "cas [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %icc, .again_swap\n" - "mov %o3, %o2\n" - "retl\n" - "mov %o3, %o0\n"); -} - -unsigned long -ace_atomic_swap_add_long (volatile unsigned long *dest, long rhs) -{ - __asm ("restore\n" - "ld [%o0], %o2\n" - ".again_swap_add:\n" - "mov %o2, %o4\n" - "add %o2, %o1, %o3\n" - "cas [%o0], %o2, %o3\n" - "cmp %o2, %o3\n" - "bne,pn %icc, .again_swap_add\n" - "mov %o3, %o2\n" - "retl\n" - "mov %o4, %o0\n"); -} - -# endif /* __sparcv9 */ - -#elif !defined (__GNUC__) && !defined (__INTEL_COMPILER) -/* Make compilers stop complaining about an empty translation unit */ -static int shut_up_compiler = 0; -#endif /* ACE_INCLUDE_ATOMIC_OP_SPARC */ diff --git a/ACE/ace/Atomic_Op_Sparc.h b/ACE/ace/Atomic_Op_Sparc.h deleted file mode 100644 index 6e238e5e909..00000000000 --- a/ACE/ace/Atomic_Op_Sparc.h +++ /dev/null @@ -1,14 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#ifndef ACE_ATOMIC_OP_SPARC_H -#define ACE_ATOMIC_OP_SPARC_H - -extern "C" -{ - unsigned long ace_atomic_add_long (volatile unsigned long *dest, long rhs); - unsigned long ace_atomic_swap_long (volatile unsigned long *dest, unsigned long rhs); - unsigned long ace_atomic_swap_add_long (volatile unsigned long *dest, long rhs); -} - -#endif /* ACE_ATOMIC_OP_SPARC_H */ diff --git a/ACE/ace/Atomic_Op_T.cpp b/ACE/ace/Atomic_Op_T.cpp deleted file mode 100644 index ad8f6b01059..00000000000 --- a/ACE/ace/Atomic_Op_T.cpp +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef ACE_ATOMIC_OP_T_CPP -#define ACE_ATOMIC_OP_T_CPP - -#include "ace/Atomic_Op_T.h" - -#ifdef ACE_HAS_DUMP -# include "ace/Log_Msg.h" -#endif /* ACE_HAS_DUMP */ - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -#include "ace/Atomic_Op_T.inl" -#endif /* __ACE_INLINE__ */ - -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 ACE_LOCK & -ACE_Atomic_Op_Ex::mutex (void) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::mutex"); - return this->mutex_; -} - -template -void -ACE_Atomic_Op_Ex::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - // ACE_TRACE ("ACE_Atomic_Op_Ex::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - this->mutex_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Atomic_Op_Ex::ACE_Atomic_Op_Ex (ACE_LOCK & mtx) - : mutex_ (mtx) - , value_ (0) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::ACE_Atomic_Op_Ex"); -} - -template -ACE_Atomic_Op_Ex::ACE_Atomic_Op_Ex ( - ACE_LOCK & mtx, - typename ACE_Atomic_Op_Ex::arg_type c) - : mutex_ (mtx) - , value_ (c) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::ACE_Atomic_Op_Ex"); -} - -// **************************************************************** - -template -ACE_Atomic_Op::ACE_Atomic_Op (void) - : impl_ (this->own_mutex_) -{ - // ACE_TRACE ("ACE_Atomic_Op::ACE_Atomic_Op"); -} - -template -ACE_Atomic_Op::ACE_Atomic_Op ( - typename ACE_Atomic_Op::arg_type c) - : impl_ (own_mutex_, c) -{ - // ACE_TRACE ("ACE_Atomic_Op::ACE_Atomic_Op"); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_ATOMIC_OP_T_CPP */ diff --git a/ACE/ace/Atomic_Op_T.h b/ACE/ace/Atomic_Op_T.h deleted file mode 100644 index cf9fbda184d..00000000000 --- a/ACE/ace/Atomic_Op_T.h +++ /dev/null @@ -1,369 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Atomic_Op_T.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_ATOMIC_OP_T_H -#define ACE_ATOMIC_OP_T_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -struct ACE_Type_Traits -{ - typedef TYPE const & parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef bool parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef char parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef signed char parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef unsigned char parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef short parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef unsigned short parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef int parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef unsigned int parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef long parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef unsigned long parameter_type; -}; - -#ifndef ACE_LACKS_LONGLONG_T -template<> -struct ACE_Type_Traits -{ - typedef long long parameter_type; -}; -#endif /* !ACE_LACKS_LONGLONG_T */ - -#if !defined (ACE_LACKS_LONGLONG_T) \ - && !defined (ACE_LACKS_UNSIGNEDLONGLONG_T) -template<> -struct ACE_Type_Traits -{ - typedef unsigned long long parameter_type; -}; -#endif /* !ACE_LACKS_LONGLONG_T && !ACE_LACKS_UNSIGNEDLONGLONG_T */ - -template<> -struct ACE_Type_Traits -{ - typedef float parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef double parameter_type; -}; - -template<> -struct ACE_Type_Traits -{ - typedef long double parameter_type; -}; - -template -struct ACE_Type_Traits -{ - typedef TYPE* parameter_type; -}; - -/** - * @class ACE_Atomic_Op_Ex - * - * @brief Transparently parameterizes synchronization into basic - * arithmetic operations. - * - * This class is described in an article in the July/August 1994 - * issue of the C++ Report magazine. It implements a - * templatized version of the Decorator pattern from the GoF book. - * - * ACE_Atomic_Op_Ex objects must be constructed with a reference - * to an existing lock. A single lock can be shared between - * multiple ACE_Atomic_Op_Ex objects. If you do not require this - * ability consider using the ACE_Atomic_Op class instead, which - * may be able to take advantage of platform-specific - * optimisations to provide atomic operations without requiring a - * lock. - */ -template -class ACE_Atomic_Op_Ex -{ -public: - - typedef typename ACE_Type_Traits::parameter_type arg_type; - - // = Initialization methods. - - /// Initialize @c value_ to 0. - ACE_Atomic_Op_Ex (ACE_LOCK & mtx); - - /// Initialize @c value_ to c. - ACE_Atomic_Op_Ex (ACE_LOCK & mtx, arg_type c); - - // = Accessors. - - /// Atomically pre-increment @c value_. - TYPE operator++ (void); - - /// Atomically post-increment @c value_. - TYPE operator++ (int); - - /// Atomically increment @c value_ by rhs. - TYPE operator+= (arg_type rhs); - - /// Atomically pre-decrement @c value_. - TYPE operator-- (void); - - /// Atomically post-decrement @c value_. - TYPE operator-- (int); - - /// Atomically decrement @c value_ by rhs. - TYPE operator-= (arg_type rhs); - - /// Atomically compare @c value_ with rhs. - bool operator== (arg_type rhs) const; - - /// Atomically compare @c value_ with rhs. - bool operator!= (arg_type rhs) const; - - /// Atomically check if @c value_ greater than or equal to rhs. - bool operator>= (arg_type rhs) const; - - /// Atomically check if @c value_ greater than rhs. - bool operator> (arg_type rhs) const; - - /// Atomically check if @c value_ less than or equal to rhs. - bool operator<= (arg_type rhs) const; - - /// Atomically check if @c value_ less than rhs. - bool operator< (arg_type rhs) const; - - /// Atomically assign rhs to @c value_. - ACE_Atomic_Op_Ex &operator= (arg_type rhs); - - /// Atomically assign to @c value_. - ACE_Atomic_Op_Ex &operator= ( - ACE_Atomic_Op_Ex const & rhs); - - /// Explicitly return @c value_. - TYPE value (void) const; - - /// Dump the state of an object. - void dump (void) const; - - // ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - - /// Manage copying... - ACE_Atomic_Op_Ex (ACE_Atomic_Op_Ex const &); - - /** - * Returns a reference to the underlying . This makes it - * possible to acquire the lock explicitly, which can be useful in - * some cases if you instantiate the 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); - - /** - * 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 - * lock. Use with care ;-) - */ - TYPE & value_i (void); - -private: - /// Type of synchronization mechanism. - ACE_LOCK & mutex_; - - /// Current object decorated by the atomic op. - TYPE value_; -}; - -/** - * @class ACE_Atomic_Op - * - * @brief Transparently parameterizes synchronization into basic - * arithmetic operations. - * - * This class is described in an article in the July/August 1994 - * issue of the C++ Report magazine. It implements a - * templatized version of the Decorator pattern from the GoF book. - * - * Certain platforms may provide a template specialization for - * ACE_Atomic_Op that provides optimized - * atomic integer operations without actually requiring a mutex. - */ -template -class ACE_Atomic_Op -{ -public: - - typedef typename ACE_Type_Traits::parameter_type arg_type; - - /// Initialize @c value_ to 0. - ACE_Atomic_Op (void); - - /// Initialize @c value_ to c. - ACE_Atomic_Op (arg_type c); - - /// Manage copying... - ACE_Atomic_Op (ACE_Atomic_Op const & c); - - /// Atomically assign rhs to @c value_. - ACE_Atomic_Op & operator= (arg_type rhs); - - /// Atomically assign to @c value_. - ACE_Atomic_Op & operator= ( - ACE_Atomic_Op const & rhs); - - /// Atomically pre-increment @c value_. - TYPE operator++ (void); - - /// Atomically post-increment @c value_. - TYPE operator++ (int); - - /// Atomically increment @c value_ by rhs. - TYPE operator+= (arg_type rhs); - - /// Atomically pre-decrement @c value_. - TYPE operator-- (void); - - /// Atomically post-decrement @c value_. - TYPE operator-- (int); - - /// Atomically decrement @c value_ by rhs. - TYPE operator-= (arg_type rhs); - - /// Atomically compare @c value_ with rhs. - bool operator== (arg_type rhs) const; - - /// Atomically compare @c value_ with rhs. - bool operator!= (arg_type rhs) const; - - /// Atomically check if @c value_ greater than or equal to rhs. - bool operator>= (arg_type rhs) const; - - /// Atomically check if @c value_ greater than rhs. - bool operator> (arg_type rhs) const; - - /// Atomically check if @c value_ less than or equal to rhs. - bool operator<= (arg_type rhs) const; - - /// Atomically check if @c value_ less than rhs. - bool operator< (arg_type rhs) const; - - /// Explicitly return @c value_. - TYPE value (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /** - * Returns a reference to the underlying . 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 - * lock. Use with care ;-) - */ - TYPE & value_i (void); - -private: - /// Type of synchronization mechanism. - ACE_LOCK own_mutex_; - - /// Underlying atomic op implementation. - ACE_Atomic_Op_Ex impl_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Atomic_Op_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Atomic_Op_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Atomic_Op_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /*ACE_ATOMIC_OP_T_H*/ diff --git a/ACE/ace/Atomic_Op_T.inl b/ACE/ace/Atomic_Op_T.inl deleted file mode 100644 index 3d09ba304fe..00000000000 --- a/ACE/ace/Atomic_Op_T.inl +++ /dev/null @@ -1,340 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Guard_T.h" - -#include - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// -// ACE_Atomic_Op_Ex inline functions -// - -template -ACE_INLINE TYPE -ACE_Atomic_Op_Ex::operator++ (void) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator++"); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_); - return ++this->value_; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op_Ex::operator+= ( - typename ACE_Atomic_Op_Ex::arg_type rhs) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator+="); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_); - return this->value_ += rhs; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op_Ex::operator-- (void) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator--"); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_); - return --this->value_; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op_Ex::operator-= ( - typename ACE_Atomic_Op_Ex::arg_type rhs) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator-="); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_); - return this->value_ -= rhs; -} - -template -ACE_INLINE -ACE_Atomic_Op_Ex::ACE_Atomic_Op_Ex ( - ACE_Atomic_Op_Ex const & rhs) - : mutex_ (rhs.mutex_) - , value_ (rhs.value ()) // rhs.value() returns atomically -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::ACE_Atomic_Op_Ex"); -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op_Ex::operator++ (int) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator++"); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_); - return this->value_++; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op_Ex::operator-- (int) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator--"); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_); - return this->value_--; -} - -template -ACE_INLINE bool -ACE_Atomic_Op_Ex::operator== ( - typename ACE_Atomic_Op_Ex::arg_type rhs) const -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator=="); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, false); - return this->value_ == rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op_Ex::operator!= ( - typename ACE_Atomic_Op_Ex::arg_type rhs) const -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator!="); - return !(*this == rhs); -} - -template -ACE_INLINE bool -ACE_Atomic_Op_Ex::operator>= ( - typename ACE_Atomic_Op_Ex::arg_type rhs) const -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator>="); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, false); - return this->value_ >= rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op_Ex::operator> ( - typename ACE_Atomic_Op_Ex::arg_type rhs) const -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator>"); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, false); - return this->value_ > rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op_Ex::operator<= ( - typename ACE_Atomic_Op_Ex::arg_type rhs) const -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator<="); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, false); - return this->value_ <= rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op_Ex::operator< ( - typename ACE_Atomic_Op_Ex::arg_type rhs) const -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator<"); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, false); - return this->value_ < rhs; -} - -template -ACE_INLINE ACE_Atomic_Op_Ex & -ACE_Atomic_Op_Ex::operator= ( - ACE_Atomic_Op_Ex const & rhs) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator="); - - ACE_Atomic_Op_Ex tmp (rhs); - - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, *this); - std::swap (this->value_, tmp.value_); - - return *this; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op_Ex::value (void) const -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::value"); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_); - return this->value_; -} - -template -ACE_INLINE TYPE & -ACE_Atomic_Op_Ex::value_i (void) -{ - // Explicitly return (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 - // lock. Use with care ;-) - return this->value_; -} - -template -ACE_INLINE ACE_Atomic_Op_Ex & -ACE_Atomic_Op_Ex::operator= ( - typename ACE_Atomic_Op_Ex::arg_type rhs) -{ - // ACE_TRACE ("ACE_Atomic_Op_Ex::operator="); - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, *this); - this->value_ = rhs; - return *this; -} - -// -// ACE_Atomic_Op inline functions -// - -template ACE_INLINE -ACE_Atomic_Op::ACE_Atomic_Op ( - ACE_Atomic_Op const & rhs) - : impl_ (own_mutex_, rhs.value ()) -{ - // ACE_TRACE ("ACE_Atomic_Op::ACE_Atomic_Op"); -} - - -template -ACE_INLINE ACE_Atomic_Op & -ACE_Atomic_Op::operator= ( - typename ACE_Atomic_Op::arg_type i) -{ - this->impl_ = i; - return *this; -} - -template -ACE_INLINE ACE_Atomic_Op & -ACE_Atomic_Op::operator= ( - ACE_Atomic_Op const & rhs) -{ - this->impl_ = rhs.impl_; - return *this; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op::operator++ (void) -{ - return ++this->impl_; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op::operator++ (int) -{ - return this->impl_++; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op::operator+= ( - typename ACE_Atomic_Op::arg_type rhs) -{ - return this->impl_ += rhs; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op::operator-- (void) -{ - return --this->impl_; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op::operator-- (int) -{ - return this->impl_--; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op::operator-= ( - typename ACE_Atomic_Op::arg_type rhs) -{ - return this->impl_ -= rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op::operator== ( - typename ACE_Atomic_Op::arg_type rhs) const -{ - return this->impl_ == rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op::operator!= ( - typename ACE_Atomic_Op::arg_type rhs) const -{ - return this->impl_ != rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op::operator>= ( - typename ACE_Atomic_Op::arg_type rhs) const -{ - return this->impl_ >= rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op::operator> ( - typename ACE_Atomic_Op::arg_type rhs) const -{ - return this->impl_ > rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op::operator<= ( - typename ACE_Atomic_Op::arg_type rhs) const -{ - return this->impl_ <= rhs; -} - -template -ACE_INLINE bool -ACE_Atomic_Op::operator< ( - typename ACE_Atomic_Op::arg_type rhs) const -{ - return this->impl_ < rhs; -} - -template -ACE_INLINE TYPE -ACE_Atomic_Op::value (void) const -{ - return this->impl_.value (); -} - -template -ACE_INLINE void -ACE_Atomic_Op::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - this->impl_.dump (); -#endif /* ACE_HAS_DUMP */ - return; -} - -template -ACE_INLINE ACE_LOCK & -ACE_Atomic_Op::mutex (void) -{ - return this->own_mutex_; -} - -template -ACE_INLINE TYPE & -ACE_Atomic_Op::value_i (void) -{ - return this->impl_.value_i (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Auto_Event.cpp b/ACE/ace/Auto_Event.cpp deleted file mode 100644 index 9e106ac8119..00000000000 --- a/ACE/ace/Auto_Event.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ - -#include "ace/Auto_Event.h" - -#if !defined (__ACE_INLINE__) -#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, - int type, - const char *name, - void *arg) - : ACE_Event (0, - initial_state, - type, - ACE_TEXT_CHAR_TO_TCHAR (name), - arg) -{ -} - -#if defined (ACE_HAS_WCHAR) -ACE_Auto_Event::ACE_Auto_Event (int initial_state, - int type, - const wchar_t *name, - void *arg) - : ACE_Event (0, - initial_state, - type, - ACE_TEXT_WCHAR_TO_TCHAR (name), - arg) -{ -} -#endif /* ACE_HAS_WCHAR */ - -void -ACE_Auto_Event::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_Event::dump (); -#endif /* ACE_HAS_DUMP */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Auto_Event.h b/ACE/ace/Auto_Event.h deleted file mode 100644 index c4ee11509bb..00000000000 --- a/ACE/ace/Auto_Event.h +++ /dev/null @@ -1,73 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Auto_Event.h - * - * $Id$ - * - * Moved from Synch.h. - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_AUTO_EVENT_H -#define ACE_AUTO_EVENT_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/Event.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Auto_Event - * - * @brief Auto Events. - * - * Specialization of Event mechanism which wakes up one waiting - * thread on . All platforms support process-scope locking - * support. However, only Win32 platforms support global naming and - * system-scope locking support. - */ -class ACE_Export ACE_Auto_Event : public ACE_Event -{ -public: - /// Constructor which will create auto event - ACE_Auto_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 auto event (wchar_t version) - ACE_Auto_Event (int initial_state, - int type, - const wchar_t *name, - void *arg = 0); -#endif /* ACE_HAS_WCHAR */ - - /// Default dtor. - ~ACE_Auto_Event (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks - ACE_ALLOC_HOOK_DECLARE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Auto_Event.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_AUTO_EVENT_H */ diff --git a/ACE/ace/Auto_Event.inl b/ACE/ace/Auto_Event.inl deleted file mode 100644 index 80048c29b99..00000000000 --- a/ACE/ace/Auto_Event.inl +++ /dev/null @@ -1,12 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Auto_Event::~ACE_Auto_Event (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Auto_Functor.cpp b/ACE/ace/Auto_Functor.cpp deleted file mode 100644 index 8d6e7f998bf..00000000000 --- a/ACE/ace/Auto_Functor.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// $Id$ - -#ifndef ACE_AUTO_FUNCTOR_CPP -#define ACE_AUTO_FUNCTOR_CPP - -#include "ace/Auto_Functor.h" - -#if !defined(__ACE_INLINE__) -# include "ace/Auto_Functor.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Utils::Auto_Functor::~Auto_Functor() -{ - reset(0); -} - -template void -ACE_Utils::Auto_Functor::reset(X * p) -{ - if(p_ != 0) - { - f_(p_); - } - p_ = p; -} - -templatevoid -ACE_Utils::Auto_Functor::reset(X * p, Functor f) -{ - reset(p); - f_ = f; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /*ACE_AUTO_FUNCTOR_CPP*/ diff --git a/ACE/ace/Auto_Functor.h b/ACE/ace/Auto_Functor.h deleted file mode 100644 index 4ca55184b9a..00000000000 --- a/ACE/ace/Auto_Functor.h +++ /dev/null @@ -1,127 +0,0 @@ -// -*- C++ -*- -//============================================================================= -/** - * @file Auto_Functor.h - * - * $Id$ - * - * @author Carlos O'Ryan - */ -//============================================================================= -#ifndef ACE_AUTO_FUNCTOR_H -#define ACE_AUTO_FUNCTOR_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/Global_Macros.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace ACE_Utils -{ -/** - * @class Auto_Functor_Ref - * - * @brief Helper class to implement assignment and copy-construction - * as expected - */ -template -struct Auto_Functor_Ref -{ - X * p_; - Functor f_; - - Auto_Functor_Ref(X * p, Functor f); -}; - -/** - * @class Auto_Functor - * - * @brief Helper template to implement auto_ptr<>-like classes, but - * executing a functor in the destructor, instead of always - * deleting things. - * - * The functor is called in the destructor, and it must implement: - * - * Functor() throw();
    - * Functor(Functor const &) throw();
    - * Functor & operator=(Functor const &) throw();
    - * void operator()(X * p) throw();
    - * - */ -template -class Auto_Functor -{ -public: - typedef X element_type; - typedef Functor functor_type; - - /// Constructor - explicit Auto_Functor (X * p = 0, - Functor functor = Functor()); // throw() - - Auto_Functor (Auto_Functor & rhs); // throw() - - Auto_Functor& operator= (Auto_Functor & rhs); // throw() - -#if !defined(ACE_LACKS_MEMBER_TEMPLATES) - template - Auto_Functor(Auto_Functor& rhs); // throw() - - template - Auto_Functor& operator= (Auto_Functor& rhs); // throw() -#endif /* ACE_LACKS_MEMBER_TEMPLATES */ - - ~Auto_Functor(); // throw() - - X & operator*() const; // throw() - - X * operator->() const; // throw() - - X * get(); // throw() - - X * release(); // throw() - - void reset (X * p = 0); // throw() - - void reset (X * p, Functor f); // throw() - - Functor const & functor() const; // throw() - - Auto_Functor(Auto_Functor_Ref rhs); // throw() - - Auto_Functor & operator=(Auto_Functor_Ref rhs); // throw() - -#if !defined(ACE_LACKS_MEMBER_TEMPLATES) - template operator Auto_Functor_Ref(); // throw() - - template operator Auto_Functor(); // throw() -#else - operator Auto_Functor_Ref(); // throw() -#endif /* ACE_LACKS_MEMBER_TEMPLATES */ - -private: - X * p_; - - Functor f_; -}; - -} // namespace ACE_Utils - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined(__ACE_INLINE__) -# include "ace/Auto_Functor.inl" -#endif /* __ACE_INLINE__ */ - -#if defined(ACE_TEMPLATES_REQUIRE_SOURCE) -# include "ace/Auto_Functor.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#include /**/ "ace/post.h" -#endif /* ACE_AUTO_FUNCTOR_H*/ diff --git a/ACE/ace/Auto_Functor.inl b/ACE/ace/Auto_Functor.inl deleted file mode 100644 index 01f35b87eb5..00000000000 --- a/ACE/ace/Auto_Functor.inl +++ /dev/null @@ -1,134 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE -ACE_Utils::Auto_Functor_Ref:: -Auto_Functor_Ref(X * p, Functor f) - : p_(p) - , f_(f) -{ -} - -template ACE_INLINE -ACE_Utils::Auto_Functor::Auto_Functor(X * p, Functor f) - : p_(p) - , f_(f) -{ -} - -template ACE_INLINE -ACE_Utils::Auto_Functor::Auto_Functor(Auto_Functor & rhs) - : p_(rhs.release()) - , f_(rhs.f_) -{ -} - -template -ACE_INLINE ACE_Utils::Auto_Functor& -ACE_Utils::Auto_Functor:: operator=(Auto_Functor & rhs) -{ - reset(rhs.release()); - f_ = rhs.f_; - return *this; -} - -#if !defined(ACE_LACKS_MEMBER_TEMPLATES) -template template ACE_INLINE -ACE_Utils::Auto_Functor::Auto_Functor(Auto_Functor& rhs) - : p_(rhs.release()) - , f_(rhs.f_) -{ -} - -template template -ACE_INLINE ACE_Utils::Auto_Functor& -ACE_Utils::Auto_Functor::operator=(Auto_Functor& rhs) -{ - reset(rhs.release()); - return *this; -} -#endif /* ACE_LACKS_MEMBER_TEMPLATES */ - -template ACE_INLINE X & -ACE_Utils::Auto_Functor::operator*() const -{ - return *p_; -} - -template -ACE_INLINE X * -ACE_Utils::Auto_Functor::operator->() const -{ - return p_; -} - -template -ACE_INLINE X * -ACE_Utils::Auto_Functor::get() -{ - return p_; -} - -template -ACE_INLINE X * -ACE_Utils::Auto_Functor::release() -{ - X * tmp = p_; - p_ = 0; - return tmp; -} - -template -ACE_INLINE Functor const & -ACE_Utils::Auto_Functor::functor() const -{ - return f_; -} - -template ACE_INLINE -ACE_Utils::Auto_Functor::Auto_Functor(Auto_Functor_Ref rhs) - : p_(rhs.p_) - , f_(rhs.f_) -{ -} - -template -ACE_INLINE ACE_Utils::Auto_Functor & -ACE_Utils::Auto_Functor::operator=(Auto_Functor_Ref rhs) -{ - if(rhs.p_ != p_) - { - reset(rhs.p_); - f_ = rhs.f_; - } - return *this; -} - -#if !defined(ACE_LACKS_MEMBER_TEMPLATES) - -template template ACE_INLINE -ACE_Utils::Auto_Functor::operator ACE_Utils::Auto_Functor_Ref() -{ - return ACE_Utils::Auto_Functor_Ref(release(), f_); -} - -template template ACE_INLINE -ACE_Utils::Auto_Functor::operator ACE_Utils::Auto_Functor() -{ - return ACE_Utils::Auto_Functor(release(), f_); -} - -#else - -templateACE_INLINE -ACE_Utils::Auto_Functor::operator ACE_Utils::Auto_Functor_Ref() -{ - return ACE_Utils::Auto_Functor_Ref(release(), f_); -} - -#endif /* ACE_LACKS_MEMBER_TEMPLATES */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Auto_IncDec_T.cpp b/ACE/ace/Auto_IncDec_T.cpp deleted file mode 100644 index cf33efd7d6e..00000000000 --- a/ACE/ace/Auto_IncDec_T.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// $Id$ - -#ifndef ACE_AUTO_INCDEC_T_CPP -#define ACE_AUTO_INCDEC_T_CPP - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Auto_IncDec_T.h" -#include "ace/Log_Msg.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Auto_IncDec_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Auto_IncDec) - -template void -ACE_Auto_IncDec::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Auto_IncDec::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_AUTO_INCDEC_T_CPP */ diff --git a/ACE/ace/Auto_IncDec_T.h b/ACE/ace/Auto_IncDec_T.h deleted file mode 100644 index 0f29f5c4f3f..00000000000 --- a/ACE/ace/Auto_IncDec_T.h +++ /dev/null @@ -1,91 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Auto_IncDec_T.h - * - * $Id$ - * - * @author Edan Ayal - */ -//============================================================================= - - -#ifndef ACE_AUTO_INCDEC_T_H -#define ACE_AUTO_INCDEC_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/Global_Macros.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Auto_IncDec - * - * @brief This class automatically increments and decrements a - * parameterized counter. - * - * This data structure is meant to be used within a method, - * function, or scope. The actual parameter given for the - * template parameter - * must provide at least operators ++ and --. - */ -template -class ACE_Auto_IncDec -{ -public: - - /// Implicitly increment the counter. - ACE_Auto_IncDec (ACE_SAFELY_INCREMENTABLE_DECREMENTABLE &counter); - - /// Implicitly decrement the counter. - ~ACE_Auto_IncDec (void); - - /// Dump the state of an object. - void dump (void) const; - -protected: - /// Reference to the 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_UNIMPLEMENTED_FUNC (ACE_Auto_IncDec (const - ACE_Auto_IncDec &)) -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Auto_IncDec_T.inl" -#endif /* __ACE_INLINE__ */ - -#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) -#pragma implementation ("Auto_IncDec_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_AUTO_INCDEC_T_H */ diff --git a/ACE/ace/Auto_IncDec_T.inl b/ACE/ace/Auto_IncDec_T.inl deleted file mode 100644 index 51daac0e84d..00000000000 --- a/ACE/ace/Auto_IncDec_T.inl +++ /dev/null @@ -1,25 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Implicitly and automatically increment the counter. - -template ACE_INLINE -ACE_Auto_IncDec::ACE_Auto_IncDec - (ACE_SAFELY_INCREMENTABLE_DECREMENTABLE &counter) - : counter_ (counter) -{ - ++this->counter_; -} - -// Implicitly and automatically decrement the counter. - -template ACE_INLINE -ACE_Auto_IncDec::~ACE_Auto_IncDec (void) -{ - --this->counter_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Auto_Ptr.cpp b/ACE/ace/Auto_Ptr.cpp deleted file mode 100644 index 081744ce316..00000000000 --- a/ACE/ace/Auto_Ptr.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// $Id$ - -#ifndef ACE_AUTO_PTR_CPP -#define ACE_AUTO_PTR_CPP - -#include "ace/Auto_Ptr.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Auto_Ptr.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, Auto_Ptr, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Auto_Basic_Ptr) -ACE_ALLOC_HOOK_DEFINE(ACE_Auto_Basic_Array_Ptr) - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_AUTO_PTR_CPP */ diff --git a/ACE/ace/Auto_Ptr.h b/ACE/ace/Auto_Ptr.h deleted file mode 100644 index ec955d30b21..00000000000 --- a/ACE/ace/Auto_Ptr.h +++ /dev/null @@ -1,242 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Auto_Ptr.h - * - * $Id$ - * - * @author Doug Schmidt - * @author Irfan Pyarali - * @author Jack Reeves - * @author Dr. Harald M. Mueller - */ -//============================================================================= - -#ifndef ACE_AUTO_PTR_H -#define ACE_AUTO_PTR_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 (_MSC_VER) -// Suppress warning e.g. "return type for -// 'ACE_Auto_Array_Pointer::operator ->' is 'type *' (i.e., not a UDT -// or reference to a UDT. Will produce errors if applied using infix -// notation)" -# pragma warning(push) -# pragma warning(disable: 4284) -#endif /* _MSC_VER */ - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Auto_Basic_Ptr - * - * @brief Implements the draft C++ standard auto_ptr abstraction. - * This class allows one to work on non-object (basic) types - */ -template -class ACE_Auto_Basic_Ptr -{ -public: - typedef X element_type; - - // = Initialization and termination methods - explicit ACE_Auto_Basic_Ptr (X * p = 0) : p_ (p) {} - - ACE_Auto_Basic_Ptr (ACE_Auto_Basic_Ptr & ap); - ACE_Auto_Basic_Ptr &operator= (ACE_Auto_Basic_Ptr & rhs); - ~ACE_Auto_Basic_Ptr (void); - - // = Accessor methods. - X &operator *() const; - X *get (void) const; - X *release (void); - void reset (X * p = 0); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - X *p_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if !defined (ACE_LACKS_AUTO_PTR) && \ - defined (ACE_HAS_STANDARD_CPP_LIBRARY) && \ - (ACE_HAS_STANDARD_CPP_LIBRARY != 0) -#include -#if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) && \ - (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB != 0) -using std::auto_ptr; -#endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */ -#else /* ACE_HAS_STANDARD_CPP_LIBRARY */ - -/** - * @class auto_ptr - * - * @brief Implements the draft C++ standard auto_ptr abstraction. - */ -template -class auto_ptr : public ACE_Auto_Basic_Ptr -{ -public: - typedef X element_type; - - // = Initialization and termination methods - explicit auto_ptr (X * p = 0) : ACE_Auto_Basic_Ptr (p) {} - auto_ptr (auto_ptr & ap) : ACE_Auto_Basic_Ptr (ap.release ()) {} - - X *operator-> () const; -}; - -#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @brief Implements the draft C++ standard auto_ptr abstraction. - * This version can be used instead of auto_ptr, and obviates - * the need for the ACE_AUTO_PTR_RESET macro on platforms like - * VC6 where the auto_ptr is broken. - */ -template -class ACE_Auto_Ptr : public ACE_Auto_Basic_Ptr -{ -public: - typedef X element_type; - - // = Initialization and termination methods - explicit ACE_Auto_Ptr (X * p = 0) : ACE_Auto_Basic_Ptr (p) {} - - X *operator-> () const; -}; - -/** - * @class ACE_Auto_Basic_Array_Ptr - * - * @brief Implements an extension to the draft C++ standard auto_ptr - * abstraction. This class allows one to work on non-object - * (basic) types that must be treated as an array, e.g., - * deallocated via "delete [] foo". - */ -template -class ACE_Auto_Basic_Array_Ptr -{ -public: - typedef X element_type; - - // = Initialization and termination methods. - explicit ACE_Auto_Basic_Array_Ptr (X * p = 0) : p_ (p) {} - - ACE_Auto_Basic_Array_Ptr (ACE_Auto_Basic_Array_Ptr & ap); - ACE_Auto_Basic_Array_Ptr &operator= (ACE_Auto_Basic_Array_Ptr & rhs); - ~ACE_Auto_Basic_Array_Ptr (void); - - // = Accessor methods. - X & operator* () const; - X & operator[] (int i) const; - X * get (void) const; - X * release (void); - void reset (X * p = 0); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - X * p_; -}; - -/** - * @class ACE_Auto_Array_Ptr - * - * @brief Implements an extension to the draft C++ standard auto_ptr - * abstraction. - */ -template -class ACE_Auto_Array_Ptr : public ACE_Auto_Basic_Array_Ptr -{ -public: - typedef X element_type; - - // = Initialization and termination methods. - explicit ACE_Auto_Array_Ptr (X *p = 0) - : ACE_Auto_Basic_Array_Ptr (p) {} - - X *operator-> () const; -}; - - -/** - * @brief Reset given @c auto_ptr element to new element. - * - * 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 this function template. This function - * template also works for the @c ACE_Auto_{Basic_}Array_Ptr class - * template, as well. - */ -template -inline void -ACE_auto_ptr_reset (AUTO_PTR_TYPE & ap, - PTR_TYPE * p) -{ -#if defined (ACE_AUTO_PTR_LACKS_RESET) - // Allow compiler to adjust pointer to potential base class pointer - // of element type found in auto_ptr. - typename AUTO_PTR_TYPE::element_type * const tp = p; - if (tp != ap.get ()) - { - ap = AUTO_PTR_TYPE (tp); - } -#else - ap.reset (p); -#endif /* ACE_AUTO_PTR_LACKS_RESET */ -} - -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__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Auto_Ptr.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Auto_Ptr.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#if defined (_MSC_VER) -// Restore the warning state to what it was before entry. -# pragma warning(pop) -#endif /* _MSC_VER */ - -#include /**/ "ace/post.h" -#endif /* ACE_AUTO_PTR_H */ diff --git a/ACE/ace/Auto_Ptr.inl b/ACE/ace/Auto_Ptr.inl deleted file mode 100644 index 57adb236261..00000000000 --- a/ACE/ace/Auto_Ptr.inl +++ /dev/null @@ -1,171 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Global_Macros.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE void -ACE_Auto_Basic_Ptr::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Auto_Basic_Ptr::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE void -ACE_Auto_Basic_Array_Ptr::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Auto_Basic_Ptr::ACE_Auto_Basic_Ptr (ACE_Auto_Basic_Ptr &rhs) - : p_ (rhs.release ()) -{ - ACE_TRACE ("ACE_Auto_Basic_Ptr::ACE_Auto_Basic_Ptr"); -} - -template ACE_INLINE X * -ACE_Auto_Basic_Ptr::get (void) const -{ - ACE_TRACE ("ACE_Auto_Basic_Ptr::get"); - return this->p_; -} - -template ACE_INLINE X * -ACE_Auto_Basic_Ptr::release (void) -{ - ACE_TRACE ("ACE_Auto_Basic_Ptr::release"); - X *old = this->p_; - this->p_ = 0; - return old; -} - -template ACE_INLINE void -ACE_Auto_Basic_Ptr::reset (X *p) -{ - ACE_TRACE ("ACE_Auto_Basic_Ptr::reset"); - if (this->get () != p) - delete this->get (); - this->p_ = p; -} - -template ACE_INLINE ACE_Auto_Basic_Ptr & -ACE_Auto_Basic_Ptr::operator= (ACE_Auto_Basic_Ptr &rhs) -{ - ACE_TRACE ("ACE_Auto_Basic_Ptr::operator="); - if (this != &rhs) - { - this->reset (rhs.release ()); - } - return *this; -} - -template ACE_INLINE -ACE_Auto_Basic_Ptr::~ACE_Auto_Basic_Ptr (void) -{ - ACE_TRACE ("ACE_Auto_Basic_Ptr::~ACE_Auto_Basic_Ptr"); - delete this->get (); -} - -template ACE_INLINE X & -ACE_Auto_Basic_Ptr::operator *() const -{ - ACE_TRACE ("ACE_Auto_Basic_Ptr::operator *()"); - return *this->get (); -} - -#if defined (ACE_LACKS_AUTO_PTR) || \ - !defined (ACE_HAS_STANDARD_CPP_LIBRARY) || \ - (ACE_HAS_STANDARD_CPP_LIBRARY == 0) - -template ACE_INLINE X * -auto_ptr::operator-> () const -{ - ACE_TRACE ("auto_ptr::operator->"); - return this->get (); -} - -#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ - -template ACE_INLINE X * -ACE_Auto_Ptr::operator-> () const -{ - ACE_TRACE ("ACE_Auto_Ptr::operator->"); - return this->get (); -} - -template ACE_INLINE X * -ACE_Auto_Basic_Array_Ptr::get (void) const -{ - ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::get"); - return this->p_; -} - -template ACE_INLINE X * -ACE_Auto_Basic_Array_Ptr::release (void) -{ - ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::release"); - X *old = this->p_; - this->p_ = 0; - return old; -} - -template ACE_INLINE void -ACE_Auto_Basic_Array_Ptr::reset (X *p) -{ - ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::reset"); - if (this->get () != p) - delete [] this->get (); - this->p_ = p; -} - -template ACE_INLINE -ACE_Auto_Basic_Array_Ptr::ACE_Auto_Basic_Array_Ptr (ACE_Auto_Basic_Array_Ptr &rhs) - : p_ (rhs.release ()) -{ - ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::ACE_Auto_Basic_Array_Ptr"); -} - -template ACE_INLINE ACE_Auto_Basic_Array_Ptr & -ACE_Auto_Basic_Array_Ptr::operator= (ACE_Auto_Basic_Array_Ptr &rhs) -{ - ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::operator="); - if (this != &rhs) - { - this->reset (rhs.release ()); - } - return *this; -} - -template ACE_INLINE -ACE_Auto_Basic_Array_Ptr::~ACE_Auto_Basic_Array_Ptr (void) -{ - ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::~ACE_Auto_Basic_Array_Ptr"); - delete [] this->get (); -} - -template ACE_INLINE X & -ACE_Auto_Basic_Array_Ptr::operator *() const -{ - return *this->get (); -} - -template ACE_INLINE X & -ACE_Auto_Basic_Array_Ptr::operator[](int i) const -{ - X *array = this->get (); - return array[i]; -} - -template ACE_INLINE X * -ACE_Auto_Array_Ptr::operator->() const -{ - return this->get (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Barrier.cpp b/ACE/ace/Barrier.cpp deleted file mode 100644 index 2cb82dba5b6..00000000000 --- a/ACE/ace/Barrier.cpp +++ /dev/null @@ -1,197 +0,0 @@ -// $Id$ - -#include "ace/Barrier.h" - -#if defined (ACE_HAS_THREADS) - -#if !defined (__ACE_INLINE__) -#include "ace/Barrier.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Guard_T.h" -#include "ace/OS_NS_errno.h" - -#if defined (ACE_HAS_DUMP) -# 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) - -void -ACE_Sub_Barrier::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Sub_Barrier::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - this->barrier_finished_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("running_threads_ = %d"), this->running_threads_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Sub_Barrier::ACE_Sub_Barrier (unsigned int count, - ACE_Thread_Mutex &lock, - const ACE_TCHAR *name, - void *arg) - : barrier_finished_ (lock, name, arg), - running_threads_ (count) -{ -// ACE_TRACE ("ACE_Sub_Barrier::ACE_Sub_Barrier"); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Barrier) - -void -ACE_Barrier::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Barrier::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - this->lock_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("current_generation_ = %d"), this->current_generation_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ncount_ = %d"), this->count_)); - this->sub_barrier_1_.dump (); - this->sub_barrier_2_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Barrier::ACE_Barrier (unsigned int count, - const ACE_TCHAR *name, - void *arg) - : lock_ (name, (ACE_mutexattr_t *) arg), - current_generation_ (0), - count_ (count), - sub_barrier_1_ (count, lock_, name, arg), - sub_barrier_2_ (count, lock_, name, arg) -{ - ACE_TRACE ("ACE_Barrier::ACE_Barrier"); - this->sub_barrier_[0] = &this->sub_barrier_1_; - this->sub_barrier_[1] = &this->sub_barrier_2_; -} - -int -ACE_Barrier::wait (void) -{ - ACE_TRACE ("ACE_Barrier::wait"); - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1); - - ACE_Sub_Barrier *sbp = - this->sub_barrier_[this->current_generation_]; - - // Check for shutdown... - if (sbp == 0) - { - errno = ESHUTDOWN; - return -1; - } - - int retval = 0; - - if (sbp->running_threads_ == 1) - { - // We're the last running thread, so swap generations and tell - // all the threads waiting on the barrier to continue on their - // way. - sbp->running_threads_ = this->count_; - // Swap generations. - this->current_generation_ = 1 - this->current_generation_; - sbp->barrier_finished_.broadcast (); - } - else - { - --sbp->running_threads_; - - // Block until all the other threads wait(). - while (sbp->running_threads_ != this->count_) - sbp->barrier_finished_.wait (); - - // We're awake and the count has completed. See if it completed - // because all threads hit the barrier, or because the barrier - // was shut down. - if (this->sub_barrier_[this->current_generation_] == 0) - { - errno = ESHUTDOWN; - retval = -1; - } - } - - return retval; -} - -int -ACE_Barrier::shutdown (void) -{ - ACE_TRACE ("ACE_Barrier::shutdown"); - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1); - - ACE_Sub_Barrier *sbp = - this->sub_barrier_[this->current_generation_]; - - // Check for shutdown... - if (sbp == 0) - { - errno = ESHUTDOWN; - return -1; - } - - // Flag the shutdown - this->sub_barrier_[0] = 0; - this->sub_barrier_[1] = 0; - // Tell all the threads waiting on the barrier to continue on their way. - sbp->running_threads_ = this->count_; - sbp->barrier_finished_.broadcast (); - - return 0; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Thread_Barrier) - -ACE_Thread_Barrier::ACE_Thread_Barrier (unsigned int count, - const ACE_TCHAR *name) - : ACE_Barrier (count, name) -{ -// ACE_TRACE ("ACE_Thread_Barrier::ACE_Thread_Barrier"); -} - -void -ACE_Thread_Barrier::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Thread_Barrier::dump"); - ACE_Barrier::dump (); -#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 deleted file mode 100644 index 00e22ec19f5..00000000000 --- a/ACE/ace/Barrier.h +++ /dev/null @@ -1,215 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Barrier.h - * - * $Id$ - * - * Moved from Synch.h. - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_BARRIER_H -#define ACE_BARRIER_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/config-all.h" - -// ACE platform supports some form of threading. -#if !defined (ACE_HAS_THREADS) - -#include "ace/OS_NS_errno.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Barrier - * - * @brief This is a no-op to make ACE "syntactically consistent." - */ -class ACE_Export ACE_Barrier -{ -public: - ACE_Barrier (unsigned int, const ACE_TCHAR * = 0, void * = 0) {} - ~ACE_Barrier (void) {} - int wait (void) { ACE_NOTSUP_RETURN (-1); } - void dump (void) const {} -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#else /* ACE_HAS_THREADS */ - -#include "ace/Condition_Thread_Mutex.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -struct ACE_Export ACE_Sub_Barrier -{ - // = Initialization. - ACE_Sub_Barrier (unsigned int count, - ACE_Thread_Mutex &lock, - const ACE_TCHAR *name = 0, - void *arg = 0); - - ~ACE_Sub_Barrier (void); - - /// True if this generation of the barrier is done. - ACE_Condition_Thread_Mutex barrier_finished_; - - /// Number of threads that are still running. - int running_threads_; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Barrier - * - * @brief Implements "barrier synchronization". - * - * This class allows number of threads to synchronize - * their completion of (one round of) a task, which is known as - * "barrier synchronization". After all the threads call - * on the barrier they are all atomically released and can begin a new - * round. - * - * This implementation uses a "sub-barrier generation numbering" - * scheme to avoid overhead and to ensure that all threads wait to - * leave the barrier correct. This code is based on an article from - * SunOpsis Vol. 4, No. 1 by Richard Marejka - * (Richard.Marejka@canada.sun.com). - */ -class ACE_Export ACE_Barrier -{ -public: - /// Initialize the barrier to synchronize @a count threads. - ACE_Barrier (unsigned int count, - const ACE_TCHAR *name = 0, - void *arg = 0); - - /// Default dtor. - ~ACE_Barrier (void); - - /// Block the caller until all @c count threads have called @c wait and - /// then allow all the caller threads to continue in parallel. - /// - /// @retval 0 after successfully waiting for all threads to wait. - /// @retval -1 if an error occurs or the barrier is shut - /// down (@sa shutdown ()). - int wait (void); - - /// Shut the barrier down, aborting the wait of all waiting threads. - /// Any threads waiting on the barrier when it is shut down will return with - /// value -1, errno ESHUTDOWN. - /// - /// @retval 0 for success, -1 if already shut down. - /// - /// @since ACE beta 5.4.9. - int shutdown (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Serialize access to the barrier state. - ACE_Thread_Mutex lock_; - - /// Either 0 or 1, depending on whether we are the first generation - /// of waiters or the next generation of waiters. - int current_generation_; - - /// Total number of threads that can be waiting at any one time. - int count_; - - /** - * We keep two @c sub_barriers, one for the first "generation" of - * waiters, and one for the next "generation" of waiters. This - * efficiently solves the problem of what to do if all the first - * generation waiters don't leave the barrier before one of the - * threads calls wait() again (i.e., starts up the next generation - * barrier). - */ - ACE_Sub_Barrier sub_barrier_1_; - ACE_Sub_Barrier sub_barrier_2_; - ACE_Sub_Barrier *sub_barrier_[2]; - -private: - // = Prevent assignment and initialization. - void operator= (const ACE_Barrier &); - 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 - * - * @brief Implements "barrier synchronization" using ACE_Thread_Mutexes! - * - * This class is just a simple wrapper for ACE_Barrier that - * selects the USYNC_THREAD variant for the locks. - */ -class ACE_Export ACE_Thread_Barrier : public ACE_Barrier -{ -public: - /// Create a Thread_Barrier, passing in the optional @a name. - ACE_Thread_Barrier (unsigned int count, const ACE_TCHAR *name = 0); - - /// Default dtor. - ~ACE_Thread_Barrier (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Barrier.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* !ACE_HAS_THREADS */ - -#include /**/ "ace/post.h" -#endif /* ACE_BARRIER_H */ diff --git a/ACE/ace/Barrier.inl b/ACE/ace/Barrier.inl deleted file mode 100644 index 9ab5c9fb111..00000000000 --- a/ACE/ace/Barrier.inl +++ /dev/null @@ -1,22 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Sub_Barrier::~ACE_Sub_Barrier (void) -{ -} - -ACE_INLINE -ACE_Barrier::~ACE_Barrier (void) -{ -} - -ACE_INLINE -ACE_Thread_Barrier::~ACE_Thread_Barrier (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Base_Thread_Adapter.cpp b/ACE/ace/Base_Thread_Adapter.cpp deleted file mode 100644 index 2ba31a4328e..00000000000 --- a/ACE/ace/Base_Thread_Adapter.cpp +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -#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 */ - -#if defined (ACE_HAS_TSS_EMULATION) -# include "ace/OS_NS_Thread.h" -#endif /* ACE_HAS_TSS_EMULATION */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INIT_LOG_MSG_HOOK ACE_Base_Thread_Adapter::init_log_msg_hook_ = 0; -ACE_INHERIT_LOG_MSG_HOOK ACE_Base_Thread_Adapter::inherit_log_msg_hook_ = 0; -ACE_CLOSE_LOG_MSG_HOOK ACE_Base_Thread_Adapter::close_log_msg_hook_ = 0; -ACE_SYNC_LOG_MSG_HOOK ACE_Base_Thread_Adapter::sync_log_msg_hook_ = 0; -ACE_THR_DESC_LOG_MSG_HOOK ACE_Base_Thread_Adapter::thr_desc_log_msg_hook_ = 0; - -ACE_Base_Thread_Adapter::ACE_Base_Thread_Adapter ( - ACE_THR_FUNC user_func, - void *arg, - ACE_THR_C_FUNC entry_point, - ACE_OS_Thread_Descriptor *td -#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) - , ACE_SEH_EXCEPT_HANDLER selector - , ACE_SEH_EXCEPT_HANDLER handler -#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ - ) - : user_func_ (user_func) - , arg_ (arg) - , entry_point_ (entry_point) - , thr_desc_ (td) -{ - ACE_OS_TRACE ("ACE_Base_Thread_Adapter::ACE_Base_Thread_Adapter"); - - if (ACE_Base_Thread_Adapter::init_log_msg_hook_ != 0) - (*ACE_Base_Thread_Adapter::init_log_msg_hook_) ( - this->log_msg_attributes_ -# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) - , selector - , handler -# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ - ); -#ifdef ACE_USES_GPROF - getitimer (ITIMER_PROF, &itimer_); -#endif // ACE_USES_GPROF -} - -ACE_Base_Thread_Adapter::~ACE_Base_Thread_Adapter (void) -{ -} - -void -ACE_Base_Thread_Adapter::inherit_log_msg (void) -{ - if (ACE_Base_Thread_Adapter::inherit_log_msg_hook_ != 0) - (*ACE_Base_Thread_Adapter::inherit_log_msg_hook_)( - this->thr_desc_, - this->log_msg_attributes_); -} - -void -ACE_Base_Thread_Adapter::close_log_msg (void) -{ - if (ACE_Base_Thread_Adapter::close_log_msg_hook_ != 0) - (*ACE_Base_Thread_Adapter::close_log_msg_hook_) (); -} - -void -ACE_Base_Thread_Adapter::sync_log_msg (const ACE_TCHAR *prg) -{ - if (ACE_Base_Thread_Adapter::sync_log_msg_hook_ != 0) - (*ACE_Base_Thread_Adapter::sync_log_msg_hook_) (prg); -} - -ACE_OS_Thread_Descriptor * -ACE_Base_Thread_Adapter::thr_desc_log_msg (void) -{ - if (ACE_Base_Thread_Adapter::thr_desc_log_msg_hook_ != 0) - return (*ACE_Base_Thread_Adapter::thr_desc_log_msg_hook_) (); - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -// Run the thread entry point for the . This must -// be an extern "C" to make certain compilers happy... - -extern "C" ACE_THR_FUNC_RETURN -ACE_THREAD_ADAPTER_NAME (void *args) -{ - ACE_OS_TRACE ("ACE_THREAD_ADAPTER_NAME"); - -#if defined (ACE_HAS_TSS_EMULATION) - // As early as we can in the execution of the new thread, allocate - // its local TS storage. Allocate it on the stack, to save dynamic - // allocation/dealloction. - void *ts_storage[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX]; - ACE_TSS_Emulation::tss_open (ts_storage); -#endif /* ACE_HAS_TSS_EMULATION */ - - ACE_Base_Thread_Adapter * const thread_args = - static_cast (args); - -#ifdef ACE_USES_GPROF - setitimer (ITIMER_PROF, thread_args->timerval (), 0); -#endif // ACE_USES_GPROF - - // Invoke the user-supplied function with the args. - ACE_THR_FUNC_RETURN status = thread_args->invoke (); - - return status; -} - diff --git a/ACE/ace/Base_Thread_Adapter.h b/ACE/ace/Base_Thread_Adapter.h deleted file mode 100644 index f33f0facd48..00000000000 --- a/ACE/ace/Base_Thread_Adapter.h +++ /dev/null @@ -1,186 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Base_Thread_Adapter.h - * - * $Id$ - * - * @author Nanbor Wang - */ -//============================================================================= - -#ifndef ACE_BASE_THREAD_ADAPTER_H -#define ACE_BASE_THREAD_ADAPTER_H -#include /**/ "ace/pre.h" - -#include "ace/OS_Log_Msg_Attributes.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include /**/ "ace/ACE_export.h" -#include "ace/OS_Log_Msg_Attributes.h" - -#ifdef ACE_USES_GPROF -#include "os_include/sys/os_time.h" -#endif // ACE_USES_GPROF - -#if (defined (ACE_HAS_VERSIONED_NAMESPACE) && ACE_HAS_VERSIONED_NAMESPACE == 1) -# define ACE_THREAD_ADAPTER_NAME ACE_PREPROC_CONCATENATE(ACE_VERSIONED_NAMESPACE_NAME, _ace_thread_adapter) -#else -# 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... - -extern "C" ACE_Export ACE_THR_FUNC_RETURN ACE_THREAD_ADAPTER_NAME (void *args); - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_OS_Thread_Descriptor - * - * @brief Parent class of all ACE_Thread_Descriptor classes. - * = - * Container for ACE_Thread_Descriptor members that are - * used in ACE_OS. - */ -class ACE_Export ACE_OS_Thread_Descriptor -{ -public: - /// Get the thread creation flags. - long flags (void) const; - -protected: - /// For use by ACE_Thread_Descriptor. - ACE_OS_Thread_Descriptor (long flags = 0); - - /** - * Keeps track of whether this thread was created "detached" or not. - * If a thread is *not* created detached then if someone calls - * , we need to join with that thread (and - * close down the handle). - */ - long flags_; -}; - -/** - * @class ACE_Base_Thread_Adapter - * - * @brief Base class for all the Thread_Adapters. - * - * Converts a C++ function into a function that can be - * called from a thread creation routine - * (e.g., pthread_create() or _beginthreadex()) that expects an - * extern "C" entry point. This class also makes it possible to - * transparently provide hooks to register a thread with an - * ACE_Thread_Manager. - * This class is used in ACE_OS::thr_create(). In general, the - * thread that creates an object of this class is different from - * the thread that calls @c invoke() on this object. Therefore, - * the @c invoke() method is responsible for deleting itself. - */ -class ACE_Export ACE_Base_Thread_Adapter -{ -public: - - virtual ~ACE_Base_Thread_Adapter (void); - - /// Virtual method invoked by the thread entry point. - virtual ACE_THR_FUNC_RETURN invoke (void) = 0; - - /// Accessor for the C entry point function to the OS thread creation - /// routine. - ACE_THR_C_FUNC entry_point (void); - -#ifdef ACE_USES_GPROF - /// Accessor to the itimer_ - /// followed http://sam.zoy.org/writings/programming/gprof.html - struct itimerval* timerval (void); -#endif // ACE_USES_PROF - - /// Invoke the close_log_msg_hook, if it is present - static void close_log_msg (void); - - /// Invoke the sync_log_msg_hook, if it is present - static void sync_log_msg (const ACE_TCHAR *prog_name); - - /// Invoke the thr_desc_log_msg_hook, if it is present - static ACE_OS_Thread_Descriptor *thr_desc_log_msg (void); - -protected: - /// Constructor. - ACE_Base_Thread_Adapter (ACE_THR_FUNC user_func, - void *arg, - ACE_THR_C_FUNC entry_point = (ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME, - ACE_OS_Thread_Descriptor *td = 0 -# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) - , ACE_SEH_EXCEPT_HANDLER selector = 0 - , ACE_SEH_EXCEPT_HANDLER handler = 0 -# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ - ); - /// Inherit the logging features if the parent thread has an - /// ACE_Log_Msg. - void inherit_log_msg (void); - -private: - /// The hooks to inherit and cleanup the Log_Msg attributes - static ACE_INIT_LOG_MSG_HOOK init_log_msg_hook_; - static ACE_INHERIT_LOG_MSG_HOOK inherit_log_msg_hook_; - static ACE_CLOSE_LOG_MSG_HOOK close_log_msg_hook_; - static ACE_SYNC_LOG_MSG_HOOK sync_log_msg_hook_; - static ACE_THR_DESC_LOG_MSG_HOOK thr_desc_log_msg_hook_; - - /// Set the Log_Msg hooks - static void set_log_msg_hooks (ACE_INIT_LOG_MSG_HOOK init_hook, - ACE_INHERIT_LOG_MSG_HOOK inherit_hook, - ACE_CLOSE_LOG_MSG_HOOK close_hook, - ACE_SYNC_LOG_MSG_HOOK sync_hook, - ACE_THR_DESC_LOG_MSG_HOOK thr_desc); - - /// Allow the ACE_Log_Msg class to set its hooks. - friend class ACE_Log_Msg; - -protected: - /// Thread startup function passed in by the user (C++ linkage). - ACE_THR_FUNC user_func_; - - /// Argument to thread startup function. - void *arg_; - - /// Entry point to the underlying OS thread creation call (C - /// linkage). - ACE_THR_C_FUNC entry_point_; - - /** - * Optional thread descriptor. Passing this pointer in will force - * the spawned thread to cache this location in and wait - * until fills in all information in thread - * descriptor. - */ - ACE_OS_Thread_Descriptor *thr_desc_; - - /// The ACE_Log_Msg attributes. - ACE_OS_Log_Msg_Attributes log_msg_attributes_; - /// That is usefull for gprof, define itimerval -#ifdef ACE_USES_GPROF - struct itimerval itimer_; -#endif // ACE_USES_GPROF - -}; - -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/Base_Thread_Adapter.inl" -# endif /* ACE_HAS_INLINED_OSCALLS */ - -#include /**/ "ace/post.h" -#endif /* ACE_BASE_THREAD_ADAPTER_H */ diff --git a/ACE/ace/Base_Thread_Adapter.inl b/ACE/ace/Base_Thread_Adapter.inl deleted file mode 100644 index 7fa3959034b..00000000000 --- a/ACE/ace/Base_Thread_Adapter.inl +++ /dev/null @@ -1,48 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE long -ACE_OS_Thread_Descriptor::flags (void) const -{ - return flags_; -} - -ACE_INLINE -ACE_OS_Thread_Descriptor::ACE_OS_Thread_Descriptor (long flags) - : flags_ (flags) -{ -} - -ACE_INLINE void -ACE_Base_Thread_Adapter::set_log_msg_hooks ( - ACE_INIT_LOG_MSG_HOOK init_hook, - ACE_INHERIT_LOG_MSG_HOOK inherit_hook, - ACE_CLOSE_LOG_MSG_HOOK close_hook, - ACE_SYNC_LOG_MSG_HOOK sync_hook, - ACE_THR_DESC_LOG_MSG_HOOK thr_desc_hook) -{ - ACE_Base_Thread_Adapter::init_log_msg_hook_ = init_hook; - ACE_Base_Thread_Adapter::inherit_log_msg_hook_ = inherit_hook; - ACE_Base_Thread_Adapter::close_log_msg_hook_ = close_hook; - ACE_Base_Thread_Adapter::sync_log_msg_hook_ = sync_hook; - ACE_Base_Thread_Adapter::thr_desc_log_msg_hook_ = thr_desc_hook; -} - -ACE_INLINE ACE_THR_C_FUNC -ACE_Base_Thread_Adapter::entry_point (void) -{ - return this->entry_point_; -} - -#ifdef ACE_USES_GPROF -ACE_INLINE itimerval* -ACE_Base_Thread_Adapter::timerval (void) -{ - return &(this->itimer_); -} -#endif // ACE_USES_GPROF - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Based_Pointer_Repository.cpp b/ACE/ace/Based_Pointer_Repository.cpp deleted file mode 100644 index a76d3dbcbd3..00000000000 --- a/ACE/ace/Based_Pointer_Repository.cpp +++ /dev/null @@ -1,119 +0,0 @@ -// $Id$ - -#include "ace/Map_Manager.h" -#include "ace/Based_Pointer_Repository.h" -#include "ace/Guard_T.h" -#include "ace/Null_Mutex.h" -#include "ace/Synch_Traits.h" -#include "ace/RW_Thread_Mutex.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Based_Pointer_Repository_Rep - * - * @brief Implementation for the ACE_Based_Pointer_Repository. - * - * Every memory pool in ACE binds it's mapping base address and - * the mapped size to this repository every time it maps/remaps a - * new chunk of memory successfully. - */ -class ACE_Based_Pointer_Repository_Rep -{ -public: - // Useful typedefs. - typedef ACE_Map_Manager MAP_MANAGER; - typedef ACE_Map_Iterator MAP_ITERATOR; - typedef ACE_Map_Entry MAP_ENTRY; - - /// Keeps track of the mapping between addresses and their associated - /// values. - MAP_MANAGER addr_map_; - - /// Synchronize concurrent access to the map. - ACE_SYNCH_MUTEX lock_; -}; - -ACE_Based_Pointer_Repository::ACE_Based_Pointer_Repository (void) -{ - ACE_TRACE ("ACE_Based_Pointer_Repository::ACE_Based_Pointer_Repository"); - ACE_NEW (this->rep_, - ACE_Based_Pointer_Repository_Rep); -} - -ACE_Based_Pointer_Repository::~ACE_Based_Pointer_Repository (void) -{ - ACE_TRACE ("ACE_Based_Pointer_Repository::~ACE_Based_Pointer_Repository"); - delete this->rep_; -} - -// Search for appropriate base address in repository - -int -ACE_Based_Pointer_Repository::find (void *addr, void *&base_addr) -{ - ACE_TRACE ("ACE_Based_Pointer_Repository::find"); - ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->rep_->lock_, -1); - ACE_Based_Pointer_Repository_Rep::MAP_ENTRY *ce = 0; - - for (ACE_Based_Pointer_Repository_Rep::MAP_ITERATOR iter (this->rep_->addr_map_); - iter.next (ce) != 0; - iter.advance ()) - // Check to see if is within any of the regions. - if (addr >= ce->ext_id_ - && addr < ((char *)ce->ext_id_ + ce->int_id_)) - { - // Assign the base address. - base_addr = ce->ext_id_; - return 1; - } - - // Assume base address 0 (e.g., if new'ed). - base_addr = 0; - return 0; -} - -// Bind a new entry to the repository or update the size of an -// existing entry. - -int -ACE_Based_Pointer_Repository::bind (void *addr, size_t size) -{ - ACE_TRACE ("ACE_Based_Pointer_Repository::bind"); - ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->rep_->lock_, -1); - - return this->rep_->addr_map_.rebind (addr, size); -} - -// Unbind a base from the repository. - -int -ACE_Based_Pointer_Repository::unbind (void *addr) -{ - ACE_TRACE ("ACE_Based_Pointer_Repository::unbind"); - ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, mon, this->rep_->lock_, -1); - ACE_Based_Pointer_Repository_Rep::MAP_ENTRY *ce = 0; - - // Search for service handlers that requested notification. - - for (ACE_Based_Pointer_Repository_Rep::MAP_ITERATOR iter (this->rep_->addr_map_); - iter.next (ce) != 0; - iter.advance ()) - { - // Check to see if is within any of the regions and if - // so, unbind the key from the map. - if (addr >= ce->ext_id_ - && addr < ((char *)ce->ext_id_ + ce->int_id_)) - // Unbind base address. - return this->rep_->addr_map_.unbind (ce->ext_id_); - } - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION) -template ACE_Singleton * - ACE_Singleton::singleton_; -#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Based_Pointer_Repository.h b/ACE/ace/Based_Pointer_Repository.h deleted file mode 100644 index f7d7ac64125..00000000000 --- a/ACE/ace/Based_Pointer_Repository.h +++ /dev/null @@ -1,91 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Based_Pointer_Repository.h - * - * $Id$ - * - * @author Dietrich Quehl - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_BASED_POINTER_REPOSITORY_H -#define ACE_BASED_POINTER_REPOSITORY_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/Singleton.h" -#include "ace/Synch_Traits.h" -#include "ace/os_include/os_stddef.h" - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward decl., using the "Cheshire Cat" technique. -class ACE_Based_Pointer_Repository_Rep; - -/** - * @class ACE_Based_Pointer_Repository - * - * @brief Maps pointers to the base address of the region to which each - * pointer belongs. - */ -class ACE_Export ACE_Based_Pointer_Repository -{ -public: - // = Use ACE_Null_Mutex to allow locking while iterating. - - // = Initialization and termination methods. - ACE_Based_Pointer_Repository (void); - ~ACE_Based_Pointer_Repository (void); - - // = Search structure methods. - /** - * Return the appropriate @a base_addr region that contains @a addr. - * Returns 1 on success and 0 if the @a addr isn't contained in any - * @a base_addr region. - */ - int find (void *addr, - void *&base_addr); - - /// Bind a new entry to the repository or update the size of an - /// existing entry. Returns 0 on success and -1 on failure. - int bind (void *addr, - size_t size); - - /// Unbind from the repository the that @a addr is - /// contained within. - int unbind (void *addr); - -private: - - /// Use the "Cheshire-Cat" technique to hide the implementation in - /// order to avoid circular #include dependencies. - ACE_Based_Pointer_Repository_Rep *rep_; - -}; - -// ---------------------------------- - -/// Declare a process wide singleton -ACE_SINGLETON_DECLARE (ACE_Singleton, - ACE_Based_Pointer_Repository, - ACE_SYNCH_RW_MUTEX) - -/// Provide a Singleton access point to the based pointer repository. -typedef ACE_Singleton - ACE_BASED_POINTER_REPOSITORY; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" - -#endif /* ACE_BASED_POINTER_REPOSITORY_H */ diff --git a/ACE/ace/Based_Pointer_T.cpp b/ACE/ace/Based_Pointer_T.cpp deleted file mode 100644 index 217e1634690..00000000000 --- a/ACE/ace/Based_Pointer_T.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// $Id$ - -#ifndef ACE_BASED_POINTER_T_CPP -#define ACE_BASED_POINTER_T_CPP - -#include "ace/Based_Pointer_T.h" -#include "ace/Based_Pointer_Repository.h" -#include "ace/Log_Msg.h" - -# define ACE_TRACEX(X) ACE_Trace ____ (ACE_TEXT (X), __LINE__, ACE_TEXT (__FILE__)) - -#if !defined (__ACE_INLINE__) -#include "ace/Based_Pointer_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Based_Pointer::ACE_Based_Pointer (void) -{ - ACE_TRACE ("ACE_Based_Pointer::ACE_Based_Pointer"); -} - -template void -ACE_Based_Pointer_Basic::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Based_Pointer_Basic::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ntarget_ = %d\n"), this->target_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("base_offset_ = %d\n"), this->base_offset_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("computed pointer = %x\n"), - (CONCRETE *)(ACE_COMPUTE_BASED_POINTER (this)))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Based_Pointer::ACE_Based_Pointer (CONCRETE *initial) - : ACE_Based_Pointer_Basic (initial) -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic"); -} - -template -ACE_Based_Pointer::ACE_Based_Pointer (const void* base_addr, int) - : ACE_Based_Pointer_Basic (base_addr, 0) -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic"); -} - -template -ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic (void) - : target_ (0), - base_offset_ (0) -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic"); - void *base_addr = 0; - - // Find the base address associated with our pointer. Note - // that it's ok for to return 0, which simply indicates that - // the address is not in memory-mapped virtual address space. - ACE_BASED_POINTER_REPOSITORY::instance ()->find (this, - base_addr); - this->base_offset_ = (char *) this - (char *) base_addr; -} - -template -ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic (const void *base_addr, int) - : target_ (0), - base_offset_ (0) -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic"); - this->base_offset_ = (char *) this - (char *) base_addr; -} - -template -ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic (CONCRETE *rhs) - : target_ (0), - base_offset_ (0) -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic"); - - if (rhs == 0) - // Store a value of that indicate "NULL" pointer. - this->target_ = -1; - else - { - void *base_addr = 0; - - // Find the base address associated with the pointer. - // Note that it's ok for to return 0, which simply - // indicates that the address is not in memory-mapped virtual - // address space. - ACE_BASED_POINTER_REPOSITORY::instance ()->find (this, - base_addr); - this->base_offset_ = (char *) this - (char *) base_addr; - this->target_ = ((char *) rhs - (char *) base_addr); - } -} - -template -ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic (const ACE_Based_Pointer_Basic &) -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::ACE_Based_Pointer_Basic"); - - ACE_ASSERT (0); // not implemented. -} - -template -ACE_Based_Pointer::ACE_Based_Pointer (const ACE_Based_Pointer &rhs) - : ACE_Based_Pointer_Basic (rhs) -{ - ACE_TRACE ("ACE_Based_Pointer::ACE_Based_Pointer"); - ACE_ASSERT (0); // not implemented. -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_BASED_POINTER_T_CPP */ diff --git a/ACE/ace/Based_Pointer_T.h b/ACE/ace/Based_Pointer_T.h deleted file mode 100644 index bb5874f002f..00000000000 --- a/ACE/ace/Based_Pointer_T.h +++ /dev/null @@ -1,205 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Based_Pointer_T.h - * - * $Id$ - * - * @author Dietrich Quehl - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_BASED_POINTER_T_H -#define ACE_BASED_POINTER_T_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" -#include "ace/Basic_Types.h" - -#if defined (_MSC_VER) -// Suppress warning e.g. "return type for -// 'ACE_Based_Pointer::operator ->' is 'long *' (i.e., not a UDT -// or reference to a UDT. Will produce errors if applied using infix -// notation)" -#pragma warning(disable: 4284) -#endif /* _MSC_VER */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Based_Pointer_Basic - * - * @brief A proxy that keeps track of the relative offset of a "pointer" - * from its base address. - * This class makes it possible to transparently use "pointers" in - * shared memory as easily as programming with pointers to local - * memory. In particular, we don't need to ensure that the base - * addresses of all the pointers are mapped into separate - * processes at the same absolute memory base address. - */ -template -class ACE_Based_Pointer_Basic -{ -public: - /** - * This constructor initializes the by asking the - * Singleton for the base address of - * the memory region within which it is instantiated. Two results - * are possible: - * - * 1. An has stored a base address/size pair and the - * new based-pointer instance is located between the base address and - * the base address + size - 1. In this case, the repository - * returns the base address. - * - * 2. No suitable address/size pair was found. The repository - * assumes an address in the regular (not mapped) virtual address - * space of the process and returns 0. In this case, the - * based-pointer uses its address as an offset to it's base - * address 0. - */ - ACE_Based_Pointer_Basic (void); - - /** - * Initialize this object using the pointer. This - * constructor initializes the by asking the - * Singleton for the base address of - * the memory region within which it is instantiated. Three results - * are possible: - * - * 1. An has stored a base address/size pair and the - * new based-pointer instance is located between the base address and - * the base address + size - 1. In this case, the repository - * returns the base address. - * - * 2. No suitable address/size pair was found. The repository - * assumes an address in the regular (not mapped) virtual address - * space of the process and returns 0. In this case, the - * based-pointer uses its address as an offset to its base - * address 0. - * - * 3. If is 0 then set the value of to -1, which - * indicates a "NULL" pointer. - */ - ACE_Based_Pointer_Basic (CONCRETE *initial); - - /// Copy constructor. - ACE_Based_Pointer_Basic (const ACE_Based_Pointer_Basic &); - - /// Constructor for know base address. is only used to - /// resolve overload ambiguity. - ACE_Based_Pointer_Basic (const void *base_addr, int o); - - /// Pseudo-assignment operator. - void operator = (CONCRETE *from); - - /// Pseudo-assignment operator. - void operator = (const ACE_Based_Pointer_Basic &); - - /// Dereference operator. - CONCRETE& operator * (void) const; - - /// Less than operator. - bool operator < (const ACE_Based_Pointer_Basic &) const; - - /// Less than or equal operator. - bool operator <= (const ACE_Based_Pointer_Basic &) const; - - /// Greater than operator. - bool operator > (const ACE_Based_Pointer_Basic &) const; - - /// Greater than or equal operator. - bool operator >= (const ACE_Based_Pointer_Basic &) const; - - /// Equality operator. - bool operator == (const ACE_Based_Pointer_Basic &) const; - - /// Inequality operator. - bool operator != (const ACE_Based_Pointer_Basic &) const; - - /// Subscript operator. - CONCRETE& operator [](int index) const; - - /// Increment operator. - void operator+= (int index); - - /// Returns the underlying memory address of the smart pointer. - operator CONCRETE *() const; - - /// Returns the underlying memory address of the smart pointer. - CONCRETE *addr (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - /// Dump the state of the object. - void dump (void) const; - -protected: - ptrdiff_t target_; - - /// Keep track of our offset from the base pointer. - ptrdiff_t base_offset_; -}; - -/** - * @class ACE_Based_Pointer - * - * @brief A smart proxy that keeps track of the relative offset of a - * "pointer" from its base address. - * - * This class makes it possible to transparently use "pointers" in - * shared memory as easily as programming with pointers to local - * memory by overloading the C++ delegation operator ->(). - */ -template -class ACE_Based_Pointer : public ACE_Based_Pointer_Basic -{ -public: - // = Initialization method. - /// Constructor. See constructor for ACE_Based_Pointer_Basic for - /// details. - ACE_Based_Pointer (void); - - /// Initialize this object using the pointer. See - /// constructor for ACE_Based_Pointer_Basic for details. - ACE_Based_Pointer (CONCRETE *initial); - - /// Initialize this object with known @a base_addr. @a dummy is - /// a dummy value used to resolve overload ambiguity and it - /// otherwise ignored. - ACE_Based_Pointer (const void *base_addr, int dummy); - - /// Copy constructor (not implemented yet). - ACE_Based_Pointer (const ACE_Based_Pointer &); - - /// Assignment operator. - void operator = (const ACE_Based_Pointer &); - - /// Pseudo-assignment operator. - void operator = (CONCRETE *from); - - /// The C++ "delegation operator". - CONCRETE *operator-> (void); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Based_Pointer_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Based_Pointer_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Based_Pointer_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_BASED_POINTER_T_H */ diff --git a/ACE/ace/Based_Pointer_T.inl b/ACE/ace/Based_Pointer_T.inl deleted file mode 100644 index 5fb2c985f40..00000000000 --- a/ACE/ace/Based_Pointer_T.inl +++ /dev/null @@ -1,139 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#define ACE_COMPUTE_BASED_POINTER(P) (((char *) (P) - (P)->base_offset_) + (P)->target_) -#include "ace/Global_Macros.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE CONCRETE * -ACE_Based_Pointer::operator->(void) -{ - ACE_TRACE ("ACE_Based_Pointer::operator->"); - return reinterpret_cast (ACE_COMPUTE_BASED_POINTER (this)); -} - -template ACE_INLINE void -ACE_Based_Pointer_Basic::operator = (CONCRETE *rhs) -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator ="); - if (rhs == 0) - // Store a value of that indicate "NULL" pointer. - this->target_ = -1; - else - this->target_ = ((char *) rhs - - ((char *) this - this->base_offset_)); -} - -template ACE_INLINE void -ACE_Based_Pointer::operator = (CONCRETE *rhs) -{ - ACE_TRACE ("ACE_Based_Pointer::operator ="); - if (rhs == 0) - // Store a value of that indicate "NULL" pointer. - this->target_ = -1; - else - this->target_ = ((char *) rhs - - ((char *) this - this->base_offset_)); -} - -template ACE_INLINE CONCRETE& -ACE_Based_Pointer_Basic::operator *(void) const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator *"); - return *reinterpret_cast (ACE_COMPUTE_BASED_POINTER (this)); -} - -template ACE_INLINE CONCRETE * -ACE_Based_Pointer_Basic::addr (void) const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::addr"); - - if (this->target_ == -1) - return 0; - else - return reinterpret_cast (ACE_COMPUTE_BASED_POINTER (this)); -} - -template ACE_INLINE -ACE_Based_Pointer_Basic::operator CONCRETE *() const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator CONCRETE *()"); - - return this->addr (); -} - -template ACE_INLINE CONCRETE& -ACE_Based_Pointer_Basic::operator [] (int index) const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator []"); - CONCRETE *c = - reinterpret_cast (ACE_COMPUTE_BASED_POINTER (this)); - return c[index]; -} - -template ACE_INLINE void -ACE_Based_Pointer_Basic::operator += (int index) -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator +="); - this->base_offset_ += (index * sizeof (CONCRETE)); -} - -template ACE_INLINE bool -ACE_Based_Pointer_Basic::operator == (const ACE_Based_Pointer_Basic &rhs) const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator =="); - return ACE_COMPUTE_BASED_POINTER (this) == ACE_COMPUTE_BASED_POINTER (&rhs); -} - -template ACE_INLINE bool -ACE_Based_Pointer_Basic::operator != (const ACE_Based_Pointer_Basic &rhs) const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator !="); - return !(*this == rhs); -} - -template ACE_INLINE bool -ACE_Based_Pointer_Basic::operator < (const ACE_Based_Pointer_Basic &rhs) const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator <"); - return ACE_COMPUTE_BASED_POINTER (this) < ACE_COMPUTE_BASED_POINTER (&rhs); -} - -template ACE_INLINE bool -ACE_Based_Pointer_Basic::operator <= (const ACE_Based_Pointer_Basic &rhs) const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator <="); - return ACE_COMPUTE_BASED_POINTER (this) <= ACE_COMPUTE_BASED_POINTER (&rhs); -} - -template ACE_INLINE bool -ACE_Based_Pointer_Basic::operator > (const ACE_Based_Pointer_Basic &rhs) const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator >"); - return ACE_COMPUTE_BASED_POINTER (this) > ACE_COMPUTE_BASED_POINTER (&rhs); -} - -template ACE_INLINE bool -ACE_Based_Pointer_Basic::operator >= (const ACE_Based_Pointer_Basic &rhs) const -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator >="); - return ACE_COMPUTE_BASED_POINTER (this) >= ACE_COMPUTE_BASED_POINTER (&rhs); -} - -template ACE_INLINE void -ACE_Based_Pointer_Basic::operator= (const ACE_Based_Pointer_Basic &rhs) -{ - ACE_TRACE ("ACE_Based_Pointer_Basic::operator="); - *this = rhs.addr (); -} - -template ACE_INLINE void -ACE_Based_Pointer::operator= (const ACE_Based_Pointer &rhs) -{ - ACE_TRACE ("ACE_Based_Pointer::operator="); - *this = rhs.addr (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Basic_Stats.cpp b/ACE/ace/Basic_Stats.cpp deleted file mode 100644 index 9c0b2a7c2f5..00000000000 --- a/ACE/ace/Basic_Stats.cpp +++ /dev/null @@ -1,78 +0,0 @@ -// $Id$ - -#include "ace/Basic_Stats.h" -#include "ace/Log_Msg.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Basic_Stats.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, - Basic_Stats, - "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -void -ACE_Basic_Stats::accumulate (const ACE_Basic_Stats &rhs) -{ - if (rhs.samples_count_ == 0) - return; - - if (this->samples_count_ == 0) - { - this->min_ = rhs.min_; - this->min_at_ = rhs.min_at_; - - this->max_ = rhs.max_; - this->max_at_ = rhs.max_at_; - } - else - { - if (this->min_ > rhs.min_) - { - this->min_ = rhs.min_; - this->min_at_ = rhs.min_at_; - } - if (this->max_ < rhs.max_) - { - this->max_ = rhs.max_; - this->max_at_ = rhs.max_at_; - } - } - - this->samples_count_ += rhs.samples_count_; - this->sum_ += rhs.sum_; -} - -void -ACE_Basic_Stats::dump_results (const ACE_TCHAR *msg, ACE_UINT32 sf) const -{ -#ifndef ACE_NLOGGING - if (this->samples_count () == 0u) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("%s : no data collected\n"), msg)); - return; - } - - ACE_UINT64 avg = this->sum_ / this->samples_count_; - - ACE_UINT64 l_min = this->min_ / sf; - ACE_UINT64 l_max = this->max_ / sf; - ACE_UINT64 l_avg = avg / sf; - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("%s latency : %Q[%d]/%Q/%Q[%d] (min/avg/max)\n"), - msg, - l_min, this->min_at_, - l_avg, - l_max, this->max_at_)); - -#else - ACE_UNUSED_ARG (msg); - ACE_UNUSED_ARG (sf); -#endif /* ACE_NLOGGING */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Basic_Stats.h b/ACE/ace/Basic_Stats.h deleted file mode 100644 index 11f24ca6bf8..00000000000 --- a/ACE/ace/Basic_Stats.h +++ /dev/null @@ -1,87 +0,0 @@ - -//============================================================================= -/** - * @file Basic_Stats.h - * - * $Id$ - * - * @author Carlos O'Ryan - */ -//============================================================================= - - -#ifndef ACE_BASIC_STATS_H -#define ACE_BASIC_STATS_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" -#include "ace/Basic_Types.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/// Collect basic stats about a series of samples -/** - * Compute the average and standard deviation (aka jitter) for an - * arbitrary number of samples, using constant space. - * Normally used for latency statistics. - */ -class ACE_Export ACE_Basic_Stats -{ -public: - /// Constructor - /** - * The number of samples is pre-allocated, and cannot changes once - * the class is initialized. - */ - ACE_Basic_Stats (void); - - /// The number of samples received so far - ACE_UINT32 samples_count (void) const; - - /// Record one sample. - void sample (ACE_UINT64 value); - - /// Update the values to reflect the stats in @a rhs. - void accumulate (const ACE_Basic_Stats &rhs); - - /// Dump all the samples - /** - * Prints out the results, using @a msg as a prefix for each message and - * scaling all the numbers by @a scale_factor. The latter is useful because - * high resolution timer samples are acquired in clock ticks, but often - * presented in microseconds. - */ - void dump_results (const ACE_TCHAR *msg, - ACE_UINT32 scale_factor) const; - - /// The number of samples - ACE_UINT32 samples_count_; - - /// The minimum value - ACE_UINT64 min_; - - /// The number of the sample that had the minimum value - ACE_UINT32 min_at_; - - /// The maximum value - ACE_UINT64 max_; - - /// The number of the sample that had the maximum value - ACE_UINT32 max_at_; - - /// The sum of all the values - ACE_UINT64 sum_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Basic_Stats.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_BASIC_STATS_H */ diff --git a/ACE/ace/Basic_Stats.inl b/ACE/ace/Basic_Stats.inl deleted file mode 100644 index bbdce099907..00000000000 --- a/ACE/ace/Basic_Stats.inl +++ /dev/null @@ -1,53 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Basic_Stats::ACE_Basic_Stats (void) - : samples_count_ (0) - , min_ (0) - , min_at_ (0) - , max_ (0) - , max_at_ (0) - , sum_ (0) -{ -} - -ACE_INLINE ACE_UINT32 -ACE_Basic_Stats::samples_count (void) const -{ - return this->samples_count_; -} - -ACE_INLINE void -ACE_Basic_Stats::sample (ACE_UINT64 value) -{ - ++this->samples_count_; - - if (this->samples_count_ == 1u) - { - this->min_ = value; - this->min_at_ = this->samples_count_; - this->max_ = value; - this->max_at_ = this->samples_count_; - } - else - { - if (this->min_ > value) - { - this->min_ = value; - this->min_at_ = this->samples_count_; - } - if (this->max_ < value) - { - this->max_ = value; - this->max_at_ = this->samples_count_; - } - } - - this->sum_ += value; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Basic_Types.cpp b/ACE/ace/Basic_Types.cpp deleted file mode 100644 index f2e055b991e..00000000000 --- a/ACE/ace/Basic_Types.cpp +++ /dev/null @@ -1,139 +0,0 @@ -#include "ace/Basic_Types.h" - -#if !defined (__ACE_INLINE__) -# include "ace/Basic_Types.inl" -#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" -# include "ace/OS_NS_string.h" -# if !defined (ACE_LACKS_IOSTREAM_TOTALLY) -// FUZZ: disable check_for_streams_include -# include "ace/streams.h" -# endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -void -ACE_U_LongLong::output (FILE *file) const -{ - if (h_ () > 0) - ACE_OS::fprintf (file, "0x%lx%0*lx", h_ (), 2 * sizeof l_ (), l_ ()); - else - ACE_OS::fprintf (file, "0x%lx", l_ ()); -} - - -ACE_TCHAR * -ACE_U_LongLong::as_string (ACE_TCHAR *output, - unsigned int base, - unsigned int uppercase) const -{ - if (*this == 0) - { - ACE_OS::strcpy(output, "0"); - } - else - { - switch(base) - { - case 8: - { - unsigned int index = 0; - int bshift = 31; - while(bshift >= 1) - { - unsigned int sval = (this->h_ () >> bshift) & 7; - if (sval > 0 || index != 0) - { - output[index] = sval + '0'; - ++index; - } - bshift -= 3; - } - bshift = 30; - while(bshift >= 0) - { - unsigned int sval = (this->l_ () >> bshift) & 7; - // Combine the last bit of hi with the first 3-bit digit - if (bshift == 30) - { - sval |= (this->h_ () & 1) << 2; - } - if (sval > 0 || index != 0) - { - output[index] = sval + '0'; - ++index; - } - bshift -= 3; - } - output[index] = '\0'; - break; - } - case 10: - { - ACE_OS::sprintf(output, "%.0f", *this / 1.0); - break; - } - case 16: - { - if (this->h_ () != 0) - { - ACE_OS::sprintf(output, - (uppercase ? "%lX%0*lX" : "%lx%0*lx"), - this->h_ (), 2 * sizeof this->l_ (), - this->l_ ()); - } - else - { - ACE_OS::sprintf(output, - (uppercase ? "%lX" : "%lx"), this->l_ ()); - - } - break; - } - default: - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Unsupported base = %u\n"), base)); - output[0] = '\0'; - } - } - } - - return output; -} - - -# if !defined (ACE_LACKS_IOSTREAM_TOTALLY) -ostream& -operator<< (ostream& os, const ACE_U_LongLong& ll) -{ -#ifdef __TANDEM && (__CPLUSPLUS_VERSION >= 3) - unsigned long flags = os.flags(); -#else - unsigned long flags = os.setf(0); -#endif - char buffer[32]; - - if ((flags & ios::oct) != 0) - os << ll.as_string (buffer, 8); - else if ((flags & ios::hex) != 0) - os << ll.as_string (buffer, 16, (flags & ios::uppercase)); - else - os << ll.as_string (buffer); - return os; -} -# endif - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LACKS_LONGLONG_T */ - diff --git a/ACE/ace/Basic_Types.h b/ACE/ace/Basic_Types.h deleted file mode 100644 index 2d6942bb511..00000000000 --- a/ACE/ace/Basic_Types.h +++ /dev/null @@ -1,890 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Basic_Types.h - * - * $Id$ - * - * @author David L. Levine - * - * #defines the list of preprocessor macros below. The config.h file can - * pre-define any of these to short-cut the definitions. This is usually - * only necessary if the preprocessor does all of its math using integers. - * - * Sizes of built-in types: - * - ACE_SIZEOF_CHAR - * - ACE_SIZEOF_WCHAR - * - ACE_SIZEOF_SHORT - * - ACE_SIZEOF_INT - * - ACE_SIZEOF_LONG - * - ACE_SIZEOF_LONG_LONG - * - ACE_SIZEOF_VOID_P - * - ACE_SIZEOF_FLOAT - * - ACE_SIZEOF_DOUBLE - * - 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 - * - ACE_UINT16 - * - ACE_INT32 - * - ACE_UINT32 - * - ACE_UINT64 - * (@note ACE_INT64 is partly defined, there is no ACE_LongLong for - * platforms that don't have a native 8-byte integer type.) - * - * Byte-order (endian-ness) determination: - * ACE_BYTE_ORDER, to either ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN - * - * - */ -//============================================================================= - -#include "ace/config-lite.h" - -#ifndef ACE_BASIC_TYPES_H -# define ACE_BASIC_TYPES_H - -# include /**/ "ace/pre.h" - -# if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -# endif /* ACE_LACKS_PRAGMA_ONCE */ - -// Pull in definitions -# include "ace/os_include/os_limits.h" // Integer limits -# include "ace/os_include/os_float.h" // Floating point limits -# include "ace/os_include/os_stdlib.h" // Other types -# include "ace/os_include/os_stddef.h" // Get ptrdiff_t - see further comments below - -# if defined(ACE_LACKS_LONGLONG_T) -# include "ace/os_include/os_stdio.h" // For long long emulation -# endif /* ACE_LACKS_LONGLONG_T */ - -# include "ace/os_include/sys/os_types.h" - -# if !defined (ACE_LACKS_SYS_PARAM_H) -# include /**/ -# endif /* ACE_LACKS_SYS_PARAM_H */ - -# include "ace/ACE_export.h" - -# if !defined (ACE_LACKS_STDINT_H) -# include -# endif -# if !defined (ACE_LACKS_INTTYPES_H) -# include -# endif - -#ifdef ACE_LACKS_INTPTR_T -# include "ace/If_Then_Else.h" - -// This intptr_t typedef is here instead of -// since it depends on the template -// metaprogramming in . - -// We could compare ACE_SIZEOF_VOID_P against ACE_SIZEOF_LONG, etc. -// However, that depends on the ACE preprocessor symbol definitions in -// the platform-specific configuration header being correct. -// The template meta-programming approach we take below, -// i.e. determining the type at compile-time rather than at -// preprocessing-time, will work for all platforms, and does not -// depend on ACE developer-defined configuration parameters. - -typedef ACE::If_Then_Else< - (sizeof (void*) == sizeof (signed int)), - signed int, - ACE::If_Then_Else< - (sizeof (void*) == sizeof (signed long)), - signed long, -#ifdef ACE_LACKS_LONGLONG_T - void /* Unknown. Force an invalid type */ -#else - ACE::If_Then_Else< - (sizeof (void*) == sizeof (signed long long)), - signed long long, - void /* Unknown. Force an invalid type */ - >::result_type -#endif /* ACE_LACKS_LONGLONG_T */ - >::result_type - >::result_type intptr_t; - -typedef ACE::If_Then_Else< - (sizeof (void*) == sizeof (unsigned int)), - unsigned int, - ACE::If_Then_Else< - (sizeof (void*) == sizeof (unsigned long)), - unsigned long, -#ifdef ACE_LACKS_UNSIGNEDLONGLONG_T - void /* Unknown. Force an invalid type */ -#else - ACE::If_Then_Else< - (sizeof (void*) == sizeof (unsigned long long)), - unsigned long long, - void /* Unknown. Force an invalid type */ - >::result_type -#endif /* ACE_LACKS_UNSIGNEDLONGLONG_T */ - >::result_type - >::result_type uintptr_t; - -#endif /* ACE_LACKS_INTPTR_T */ - -// A char always has 1 byte, by definition. -# define ACE_SIZEOF_CHAR 1 - -// Unfortunately, there isn't a portable way to determine the size of a wchar. -// So we just define them on a platform basis. If the platform doesn't -// define it and it's an XPG4 system, assume wchar_t is 4 bytes. Some code -// uses ACE_SIZEOF_WCHAR in preprocessor statements, so sizeof() isn't valid. -// If the platform config doesn't set this, and this guess is wrong, -// Basic_Types_Test should catch the inconsistency. -# if defined (ACE_HAS_WCHAR) -# if !defined (ACE_SIZEOF_WCHAR) -# if defined (ACE_HAS_XPG4_MULTIBYTE_CHAR) -# define ACE_SIZEOF_WCHAR 4 -# else -// 0 so the Basic_Types test will catch this. -# define ACE_SIZEOF_WCHAR 0 -# endif /* ACE_HAS_XPG4_MULTIBYTE_CHAR */ -# endif /* !ACE_SIZEOF_WCHAR */ -# endif /* ACE_HAS_WCHAR */ - -// The number of bytes in a short. -# if !defined (ACE_SIZEOF_SHORT) -# if (USHRT_MAX) == 255U -# define ACE_SIZEOF_SHORT 1 -# elif (USHRT_MAX) == 65535U -# define ACE_SIZEOF_SHORT 2 -# elif (USHRT_MAX) == 4294967295U -# define ACE_SIZEOF_SHORT 4 -# elif (USHRT_MAX) == 18446744073709551615U -# define ACE_SIZEOF_SHORT 8 -# else -# error: unsupported short size, must be updated for this platform! -# endif /* USHRT_MAX */ -# endif /* !defined (ACE_SIZEOF_SHORT) */ - -// The number of bytes in an int. -# if !defined (ACE_SIZEOF_INT) -# if (UINT_MAX) == 65535U -# define ACE_SIZEOF_INT 2 -# elif (UINT_MAX) == 4294967295U -# define ACE_SIZEOF_INT 4 -# elif (UINT_MAX) == 18446744073709551615U -# define ACE_SIZEOF_INT 8 -# else -# error: unsupported int size, must be updated for this platform! -# endif /* UINT_MAX */ -# endif /* !defined (ACE_SIZEOF_INT) */ - -// The number of bytes in a long. -# if !defined (ACE_SIZEOF_LONG) -# if (ULONG_MAX) == 65535UL -# define ACE_SIZEOF_LONG 2 -# elif ((ULONG_MAX) == 4294967295UL) -# define ACE_SIZEOF_LONG 4 -# elif ((ULONG_MAX) == 18446744073709551615UL) -# define ACE_SIZEOF_LONG 8 -# else -# error: unsupported long size, must be updated for this platform! -# endif /* ULONG_MAX */ -# endif /* !defined (ACE_SIZEOF_LONG) */ - -// The number of bytes in a long long. -# if !defined (ACE_SIZEOF_LONG_LONG) -# if defined (ACE_LACKS_LONGLONG_T) -# define ACE_SIZEOF_LONG_LONG 8 -# elif defined (ULLONG_MAX) -# if ((ULLONG_MAX) == 4294967295ULL) -# define ACE_SIZEOF_LONG_LONG 4 -# elif ((ULLONG_MAX) == 18446744073709551615ULL) -# define ACE_SIZEOF_LONG_LONG 8 -# endif -# elif defined (ULONGLONG_MAX) -# if ((ULONGLONG_MAX) == 4294967295ULL) -# define ACE_SIZEOF_LONG_LONG 4 -# elif ((ULONGLONG_MAX) == 18446744073709551615ULL) -# define ACE_SIZEOF_LONG_LONG 8 -# endif -# endif -# // If we can't determine the size of long long, assume it is 8 -# // instead of erroring out. (Either ULLONG_MAX and ULONGLONG_MAX -# // may not be supported; or an extended C/C++ dialect may need to -# // be selected. If this assumption is wrong, it can be addressed -# // in the platform-specific config header. -# if !defined (ACE_SIZEOF_LONG_LONG) -# define ACE_SIZEOF_LONG_LONG 8 -# endif -# endif /* !defined (ACE_SIZEOF_LONG_LONG) */ - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// The sizes of the commonly implemented types are now known. Set up -// typedefs for whatever we can. Some of these are needed for certain -// cases of ACE_UINT64, so do them before the 64-bit stuff. - -#if defined (ACE_INT8_TYPE) - typedef ACE_INT8_TYPE ACE_INT8; -#elif defined (ACE_HAS_INT8_T) - typedef int8_t ACE_INT8; -#elif !defined (ACE_LACKS_SIGNED_CHAR) - typedef signed char ACE_INT8; -#else - typedef char ACE_INT8; -#endif /* defined (ACE_INT8_TYPE) */ - -#if defined (ACE_UINT8_TYPE) - typedef ACE_UINT8_TYPE ACE_UINT8; -#elif defined (ACE_HAS_UINT8_T) - typedef uint8_t ACE_UINT8; -#else - typedef unsigned char ACE_UINT8; -#endif /* defined (ACE_UINT8_TYPE) */ - -#if defined (ACE_INT16_TYPE) - typedef ACE_INT16_TYPE ACE_INT16; -#elif defined (ACE_HAS_INT16_T) - typedef int16_t ACE_INT16; -#elif ACE_SIZEOF_SHORT == 2 - typedef short ACE_INT16; -#elif ACE_SIZEOF_INT == 2 - typedef int ACE_INT16; -#else -# error Have to add to the ACE_INT16 type setting -#endif /* defined (ACE_INT16_TYPE) */ - -#if defined (ACE_UINT16_TYPE) - typedef ACE_UINT16_TYPE ACE_UINT16; -#elif defined (ACE_HAS_UINT16_T) - typedef uint16_t ACE_UINT16; -#elif ACE_SIZEOF_SHORT == 2 - typedef unsigned short ACE_UINT16; -#elif ACE_SIZEOF_INT == 2 - typedef unsigned int ACE_UINT16; -#else -# error Have to add to the ACE_UINT16 type setting -#endif /* defined (ACE_UINT16_TYPE) */ - -#if defined (ACE_INT32_TYPE) - typedef ACE_INT32_TYPE ACE_INT32; -#elif defined (ACE_HAS_INT32_T) - typedef int32_t ACE_INT32; -#elif ACE_SIZEOF_INT == 4 - typedef int ACE_INT32; -#elif ACE_SIZEOF_LONG == 4 - typedef long ACE_INT32; -#else -# error Have to add to the ACE_INT32 type setting -#endif /* defined (ACE_INT32_TYPE) */ - -#if defined (ACE_UINT32_TYPE) - typedef ACE_UINT32_TYPE ACE_UINT32; -#elif defined (ACE_HAS_UINT32_T) - typedef uint32_t ACE_UINT32; -#elif ACE_SIZEOF_INT == 4 - typedef unsigned int ACE_UINT32; -#elif ACE_SIZEOF_LONG == 4 - typedef unsigned long ACE_UINT32; -#else -# error Have to add to the ACE_UINT32 type setting -#endif /* defined (ACE_UINT32_TYPE) */ - -#if defined (ACE_INT64_TYPE) - typedef ACE_INT64_TYPE ACE_INT64; -#elif defined (ACE_HAS_INT64_T) - typedef int64_t ACE_INT64; -#elif ACE_SIZEOF_LONG == 8 - typedef long ACE_INT64; -#elif !defined (ACE_LACKS_LONGLONG_T) && ACE_SIZEOF_LONG_LONG == 8 -# ifdef __GNUC__ - // Silence g++ "-pedantic" warnings regarding use of "long long" - // type. - __extension__ -# endif /* __GNUC__ */ - typedef long long ACE_INT64; -#endif /* defined (ACE_INT64_TYPE) */ - -#if !(defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T)) -/* See matching #if around ACE_U_LongLong class declaration below */ - -# if defined (ACE_UINT64_TYPE) - typedef ACE_UINT64_TYPE ACE_UINT64; -# elif defined (ACE_HAS_UINT64_T) - typedef uint64_t ACE_UINT64; -# elif ACE_SIZEOF_LONG == 8 - typedef unsigned long ACE_UINT64; -# elif ACE_SIZEOF_LONG_LONG == 8 -# ifdef __GNUC__ - // Silence g++ "-pedantic" warnings regarding use of "long long" - // type. - __extension__ -# endif /* __GNUC__ */ - typedef unsigned long long ACE_UINT64; -# 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 -typedef unsigned char ACE_Byte; - -// Define a pseudo wide character type when wchar is not supported so we -// can support basic wide character string operations. - -# if defined (ACE_HAS_WCHAR) || defined (ACE_HAS_XPG4_MULTIBYTE_CHAR) -# define ACE_WINT_T wint_t -# define ACE_WCHAR_T wchar_t -# else -# define ACE_WINT_T ACE_UINT16 -# define ACE_WCHAR_T ACE_UINT16 -# endif /* ACE_HAS_WCHAR */ - -// The number of bytes in a void *. -# ifndef ACE_SIZEOF_VOID_P -# 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. -# if defined (BYTE_ORDER) -# if (BYTE_ORDER == LITTLE_ENDIAN) -# define ACE_LITTLE_ENDIAN 0x0123 -# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN -# elif (BYTE_ORDER == BIG_ENDIAN) -# define ACE_BIG_ENDIAN 0x3210 -# define ACE_BYTE_ORDER ACE_BIG_ENDIAN -# else -# error: unknown BYTE_ORDER! -# endif /* BYTE_ORDER */ -# elif defined (_BYTE_ORDER) -# if (_BYTE_ORDER == _LITTLE_ENDIAN) -# define ACE_LITTLE_ENDIAN 0x0123 -# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN -# elif (_BYTE_ORDER == _BIG_ENDIAN) -# define ACE_BIG_ENDIAN 0x3210 -# define ACE_BYTE_ORDER ACE_BIG_ENDIAN -# else -# error: unknown _BYTE_ORDER! -# endif /* _BYTE_ORDER */ -# elif defined (__BYTE_ORDER) -# if (__BYTE_ORDER == __LITTLE_ENDIAN) -# define ACE_LITTLE_ENDIAN 0x0123 -# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN -# elif (__BYTE_ORDER == __BIG_ENDIAN) -# define ACE_BIG_ENDIAN 0x3210 -# define ACE_BYTE_ORDER ACE_BIG_ENDIAN -# else -# error: unknown __BYTE_ORDER! -# endif /* __BYTE_ORDER */ -# else /* ! BYTE_ORDER && ! __BYTE_ORDER */ - // We weren't explicitly told, so we have to figure it out . . . -# if defined (i386) || defined (__i386__) || defined (_M_IX86) || \ - defined (vax) || defined (__alpha) || defined (__LITTLE_ENDIAN__) || \ - defined (ARM) || defined (_M_IA64) || defined (__ia64__) || \ - defined (_M_AMD64) || defined (__amd64) - // We know these are little endian. -# define ACE_LITTLE_ENDIAN 0x0123 -# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN -# else - // Otherwise, we assume big endian. -# define ACE_BIG_ENDIAN 0x3210 -# define ACE_BYTE_ORDER ACE_BIG_ENDIAN -# endif -# endif /* ! BYTE_ORDER && ! __BYTE_ORDER */ - -// Byte swapping macros to deal with differences between little endian -// and big endian machines. Note that "long" here refers to 32 bit -// quantities. -# define ACE_SWAP_LONG(L) ((ACE_SWAP_WORD ((L) & 0xFFFF) << 16) \ - | ACE_SWAP_WORD(((L) >> 16) & 0xFFFF)) -# define ACE_SWAP_WORD(L) ((((L) & 0x00FF) << 8) | (((L) & 0xFF00) >> 8)) - -# if defined (ACE_LITTLE_ENDIAN) -# define ACE_HTONL(X) ACE_SWAP_LONG (X) -# define ACE_NTOHL(X) ACE_SWAP_LONG (X) -# define ACE_IDL_NCTOHL(X) (X) -# define ACE_IDL_NSTOHL(X) (X) -# else -# define ACE_HTONL(X) X -# define ACE_NTOHL(X) X -# define ACE_IDL_NCTOHL(X) (X << 24) -# define ACE_IDL_NSTOHL(X) ((X) << 16) -# endif /* ACE_LITTLE_ENDIAN */ - -# if defined (ACE_LITTLE_ENDIAN) -# define ACE_HTONS(x) ACE_SWAP_WORD(x) -# define ACE_NTOHS(x) ACE_SWAP_WORD(x) -# else -# define ACE_HTONS(x) x -# define ACE_NTOHS(x) x -# endif /* ACE_LITTLE_ENDIAN */ - -#if defined (ACE_LACKS_LONGLONG_T) - // This throws away the high 32 bits. It's very unlikely that a - // pointer will be more than 32 bits wide if the platform does not - // support 64-bit integers. -# define ACE_LONGLONG_TO_PTR(PTR_TYPE, L) \ - reinterpret_cast (L.lo ()) -#elif defined (ACE_OPENVMS) && (!defined (__INITIAL_POINTER_SIZE) || (__INITIAL_POINTER_SIZE < 64)) -# define ACE_LONGLONG_TO_PTR(PTR_TYPE, L) \ - reinterpret_cast (static_cast (L)) -#else /* ! ACE_LACKS_LONGLONG_T */ -# define ACE_LONGLONG_TO_PTR(PTR_TYPE, L) \ - reinterpret_cast (static_cast (L)) -#endif /* ! ACE_LACKS_LONGLONG_T */ - -// If the platform lacks an unsigned long long, define one. -#if defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T) -// Forward declaration for streams -# include "ace/iosfwd.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_U_LongLong - * - * @brief Unsigned long long for platforms that don't have one. - * - * Provide our own unsigned long long. This is intended to be - * use with ACE_High_Res_Timer, so the division operator assumes - * that the quotient fits into a u_long. - * Please note that the constructor takes (optionally) two values. - * The high one contributes 0x100000000 times its value. So, - * for example, (0, 2) is _not_ 20000000000, but instead - * 0x200000000. To emphasize this, the default values are expressed - * in hex, and output () dumps the value in hex. - */ - class ACE_Export ACE_U_LongLong - { - public: - // = Initialization and termination methods. -#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T) - ACE_U_LongLong (const long long value = 0x0); -#else - ACE_U_LongLong (const ACE_UINT32 lo = 0x0, const ACE_UINT32 hi = 0x0); -#endif - ACE_U_LongLong (const ACE_U_LongLong &); - ACE_U_LongLong &operator= (const ACE_U_LongLong &); - ACE_U_LongLong &operator= (const ACE_INT32 &); - ACE_U_LongLong &operator= (const ACE_UINT32 &); - ~ACE_U_LongLong (void); - - // = Overloaded relation operators. - bool operator== (const ACE_U_LongLong &) const; - bool operator== (const ACE_UINT32) const; - bool operator!= (const ACE_U_LongLong &) const; - bool operator!= (const ACE_UINT32) const; - bool operator< (const ACE_U_LongLong &) const; - bool operator< (const ACE_UINT32) const; - bool operator<= (const ACE_U_LongLong &) const; - bool operator<= (const ACE_UINT32) const; - bool operator> (const ACE_U_LongLong &) const; - bool operator> (const ACE_UINT32) const; - bool operator>= (const ACE_U_LongLong &) const; - bool operator>= (const ACE_UINT32) const; - - ACE_U_LongLong operator+ (const ACE_U_LongLong &) const; - ACE_U_LongLong operator+ (const ACE_UINT32) const; - ACE_U_LongLong operator- (const ACE_U_LongLong &) const; - ACE_U_LongLong operator- (const ACE_UINT32) const; - ACE_U_LongLong operator* (const ACE_UINT32) const; - ACE_U_LongLong &operator*= (const ACE_UINT32); - - ACE_U_LongLong operator<< (const unsigned int) const; - ACE_U_LongLong &operator<<= (const unsigned int); - ACE_U_LongLong operator>> (const unsigned int) const; - ACE_U_LongLong &operator>>= (const unsigned int); - - double operator/ (const double) const; - - ACE_U_LongLong &operator+= (const ACE_U_LongLong &); - ACE_U_LongLong &operator+= (const ACE_UINT32); - ACE_U_LongLong &operator-= (const ACE_U_LongLong &); - ACE_U_LongLong &operator-= (const ACE_UINT32); - ACE_U_LongLong &operator++ (); - ACE_U_LongLong &operator-- (); - const ACE_U_LongLong operator++ (int); - const ACE_U_LongLong operator-- (int); - ACE_U_LongLong &operator|= (const ACE_U_LongLong); - ACE_U_LongLong &operator|= (const ACE_UINT32); - ACE_U_LongLong &operator&= (const ACE_U_LongLong); - ACE_U_LongLong &operator&= (const ACE_UINT32); - - // Note that the following take ACE_UINT32 arguments. These are - // typical use cases, and easy to implement. But, they limit the - // return values to 32 bits as well. There are no checks for - // overflow. - ACE_UINT32 operator/ (const ACE_UINT32) const; - ACE_UINT32 operator% (const ACE_UINT32) const; - - // The following only operate on the lower 32 bits (they take only - // 32 bit arguments). - ACE_UINT32 operator| (const ACE_INT32) const; - ACE_UINT32 operator& (const ACE_INT32) const; - - // The following operators convert their arguments to - // ACE_UINT32. So, there may be information loss if they are - // used. - ACE_U_LongLong operator* (const ACE_INT32) const; - ACE_U_LongLong &operator*= (const ACE_INT32); - ACE_UINT32 operator/ (const ACE_INT32) const; -# if ACE_SIZEOF_INT == 4 - ACE_UINT32 operator/ (const unsigned long) const; - ACE_UINT32 operator/ (const long) const; -# else /* ACE_SIZEOF_INT != 4 */ - ACE_UINT32 operator/ (const unsigned int) const; - ACE_UINT32 operator/ (const int) const; -# endif /* ACE_SIZEOF_INT != 4 */ - - // = Helper methods. - /// Outputs the value to the FILE, in hex. - void output (FILE * = stdout) const; - - ACE_TCHAR *as_string (ACE_TCHAR *string, - unsigned int base = 10, - unsigned int uppercase = 0) const; - - ACE_UINT32 hi (void) const; - ACE_UINT32 lo (void) const; - - void hi (const ACE_UINT32 hi); - void lo (const ACE_UINT32 lo); - -#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T) - long long to_int64 (void) const; -# endif - - private: - -#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T) - long long data_; -#else - public: - struct ace_hi_lo_correct_endian - { -# if defined (ACE_BIG_ENDIAN) - /// High 32 bits. - ACE_UINT32 hi_; - /// Low 32 bits. - ACE_UINT32 lo_; - -# else - - /// Low 32 bits. - ACE_UINT32 lo_; - /// High 32 bits. - ACE_UINT32 hi_; -# endif /* ! ACE_BIG_ENDIAN */ - }; - private: - union - { - struct ace_hi_lo_correct_endian data_; - - /// To ensure alignment on 8-byte boundary. - double for_alignment_; - }; - - // @note the following four accessors are inlined here in - // order to minimize the extent of the data_ struct. It's - // only used here; the .i and .cpp files use the accessors. - - /// Internal utility function to hide access through struct. - const ACE_UINT32 &h_ () const { return data_.hi_; } - - /// Internal utility function to hide access through struct. - ACE_UINT32 &h_ () { return data_.hi_; } - - /// Internal utility function to hide access through struct. - const ACE_UINT32 &l_ () const { return data_.lo_; } - - /// Internal utility function to hide access through struct. - ACE_UINT32 &l_ () { return data_.lo_; } - - // @note the above four accessors are inlined here in - // order to minimize the extent of the data_ struct. It's - // only used here; the .inl and .cpp files use the accessors. - - /// These functions are used to implement multiplication. - ACE_UINT32 ul_shift (ACE_UINT32 a, - ACE_UINT32 c_in, - ACE_UINT32 *c_out) const; - ACE_U_LongLong ull_shift (ACE_U_LongLong a, - ACE_UINT32 c_in, - ACE_UINT32 *c_out) const; - ACE_U_LongLong ull_add (ACE_U_LongLong a, - ACE_U_LongLong b, - ACE_UINT32 *carry) const; - ACE_U_LongLong ull_mult (ACE_U_LongLong a, - ACE_UINT32 b, - ACE_UINT32 *carry) const; -#endif // ACE_LACKS_UNSIGNEDLONGLONG_T - }; - - typedef ACE_U_LongLong ACE_UINT64; - -#if !defined (ACE_LACKS_IOSTREAM_TOTALLY) - ostream &operator<< (ostream &, const ACE_U_LongLong &); -#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */ - -ACE_END_VERSIONED_NAMESPACE_DECL - -# endif /* ACE_LACKS_LONGLONG_T */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Conversions from ACE_UINT64 to ACE_UINT32. ACE_CU64_TO_CU32 should -// be used on const ACE_UINT64's. -# if defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T) -inline ACE_UINT32 -ACE_U64_TO_U32 (ACE_U_LongLong const & n) -{ - /** - * @note We could add a cast operator to ACE_U_LongLong but that may - * cause more problems than it solves. Force users to perform - * an explicit cast via ACE_{C}U64_TO_{C}U32. - */ - return n.lo (); -} - -inline ACE_UINT32 -ACE_CU64_TO_CU32 (ACE_U_LongLong const & n) -{ - return ACE_U64_TO_U32 (n); -} -# else /* ! ACE_LACKS_LONGLONG_T */ -inline ACE_UINT32 -ACE_U64_TO_U32 (ACE_UINT64 n) -{ - return static_cast (n); -} - -inline ACE_UINT32 -ACE_CU64_TO_CU32 (ACE_UINT64 n) -{ - return static_cast (n); -} -# endif /* ! ACE_LACKS_LONGLONG_T */ - -ACE_END_VERSIONED_NAMESPACE_DECL - -// 64-bit literals require special marking on some platforms. -# if defined (ACE_LACKS_LONGLONG_T) - // Can only specify 32-bit arguments. -# define ACE_UINT64_LITERAL(n) n ## UL - // This one won't really work, but it'll keep - // some compilers happy until we have better support -# define ACE_INT64_LITERAL(n) n ## L -# elif defined (ACE_WIN32) -# if defined (__MINGW32__) -# define ACE_UINT64_LITERAL(n) n ## ull -# define ACE_INT64_LITERAL(n) n ## ll -# else -# define ACE_UINT64_LITERAL(n) n ## ui64 -# define ACE_INT64_LITERAL(n) n ## i64 -# endif /* defined (__MINGW32__) */ -# elif defined (__TANDEM) -# define ACE_UINT64_LITERAL(n) n ## LL -# define ACE_INT64_LITERAL(n) n ## LL -# else /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */ -# define ACE_UINT64_LITERAL(n) n ## ull -# define ACE_INT64_LITERAL(n) n ## ll -# endif /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */ - -#if !defined (ACE_INT8_FORMAT_SPECIFIER) -# if defined (PRId8) -# define ACE_INT8_FORMAT_SPECIFIER ACE_TEXT ("%") ACE_TEXT (PRId8) -# else -# define ACE_INT8_FORMAT_SPECIFIER ACE_TEXT ("%d") -# endif /* defined (PRId8) */ -#endif /* ACE_INT8_FORMAT_SPECIFIER */ - -#if !defined (ACE_UINT8_FORMAT_SPECIFIER) -# if defined (PRIu8) -# define ACE_UINT8_FORMAT_SPECIFIER ACE_TEXT ("%") ACE_TEXT (PRIu8) -# else -# define ACE_UINT8_FORMAT_SPECIFIER ACE_TEXT ("%u") -# endif /* defined (PRIu8) */ -#endif /* ACE_UINT8_FORMAT_SPECIFIER */ - -#if !defined (ACE_INT16_FORMAT_SPECIFIER) -# if defined (PRId16) -# define ACE_INT16_FORMAT_SPECIFIER ACE_TEXT ("%") ACE_TEXT (PRId16) -# else -# define ACE_INT16_FORMAT_SPECIFIER ACE_TEXT ("%d") -# endif /* defined (PRId16) */ -#endif /* ACE_INT16_FORMAT_SPECIFIER */ - -#if !defined (ACE_UINT16_FORMAT_SPECIFIER) -# if defined (PRIu16) -# define ACE_UINT16_FORMAT_SPECIFIER ACE_TEXT ("%") ACE_TEXT (PRIu16) -# else -# define ACE_UINT16_FORMAT_SPECIFIER ACE_TEXT ("%u") -# endif /* defined (PRIu16) */ -#endif /* ACE_UINT16_FORMAT_SPECIFIER */ - -#if !defined (ACE_INT32_FORMAT_SPECIFIER) -# if defined (PRId32) -# define ACE_INT32_FORMAT_SPECIFIER ACE_TEXT ("%") ACE_TEXT (PRId32) -# elif ACE_SIZEOF_INT == 4 -# define ACE_INT32_FORMAT_SPECIFIER ACE_TEXT ("%d") -# else -# define ACE_INT32_FORMAT_SPECIFIER ACE_TEXT ("%ld") -# endif /* defined (PRId32) */ -#endif /* ACE_INT32_FORMAT_SPECIFIER */ - -#if !defined (ACE_UINT32_FORMAT_SPECIFIER) -# if defined (PRIu32) -# define ACE_UINT32_FORMAT_SPECIFIER ACE_TEXT ("%") ACE_TEXT (PRIu32) -# elif ACE_SIZEOF_INT == 4 -# define ACE_UINT32_FORMAT_SPECIFIER ACE_TEXT ("%u") -# else -# define ACE_UINT32_FORMAT_SPECIFIER ACE_TEXT ("%lu") -# endif /* defined (PRIu32) */ -#endif /* ACE_UINT32_FORMAT_SPECIFIER */ - -#if !defined (ACE_INT64_FORMAT_SPECIFIER) -# if defined (PRId64) -# define ACE_INT64_FORMAT_SPECIFIER ACE_TEXT ("%") ACE_TEXT (PRId64) -# elif ACE_SIZEOF_LONG == 8 -# define ACE_INT64_FORMAT_SPECIFIER ACE_TEXT ("%ld") -# else -# define ACE_INT64_FORMAT_SPECIFIER ACE_TEXT ("%lld") -# endif /* defined (PRId64) */ -#endif /* ACE_INT64_FORMAT_SPECIFIER */ - -#if !defined (ACE_UINT64_FORMAT_SPECIFIER) -# if defined (PRIu64) -# define ACE_UINT64_FORMAT_SPECIFIER ACE_TEXT ("%") ACE_TEXT (PRIu64) -# elif ACE_SIZEOF_LONG == 8 -# define ACE_UINT64_FORMAT_SPECIFIER ACE_TEXT ("%lu") -# else -# define ACE_UINT64_FORMAT_SPECIFIER ACE_TEXT ("%llu") -# endif /* defined (PRIu64) */ -#endif /* ACE_UINT64_FORMAT_SPECIFIER */ - -#if !defined (ACE_SSIZE_T_FORMAT_SPECIFIER) -# if defined (ACE_WIN64) -# define ACE_SSIZE_T_FORMAT_SPECIFIER ACE_TEXT ("%I64d") -# else -# define ACE_SSIZE_T_FORMAT_SPECIFIER ACE_TEXT ("%d") -# endif /* ACE_WIN64 */ -#endif /* ACE_SSIZE_T_FORMAT_SPECIFIER */ - -#if !defined (ACE_SIZE_T_FORMAT_SPECIFIER) -# if defined (ACE_WIN64) -# define ACE_SIZE_T_FORMAT_SPECIFIER ACE_TEXT ("%I64u") -# else -# define ACE_SIZE_T_FORMAT_SPECIFIER ACE_TEXT ("%u") -# endif /* ACE_WIN64 */ -#endif /* ACE_SIZE_T_FORMAT_SPECIFIER */ - -// Cast from UINT64 to a double requires an intermediate cast to INT64 -// on some platforms. -# if defined (ACE_LACKS_LONGLONG_T) - // Only use the low 32 bits. -# define ACE_UINT64_DBLCAST_ADAPTER(n) ACE_U64_TO_U32 (n) -# elif defined (ACE_LACKS_UNSIGNEDLONGLONG_T) -# define ACE_UINT64_DBLCAST_ADAPTER(n) ((n).to_int64 ()) -# elif defined (ACE_WIN32) -# define ACE_UINT64_DBLCAST_ADAPTER(n) static_cast<__int64> (n) -# else /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */ -# define ACE_UINT64_DBLCAST_ADAPTER(n) (n) -# endif /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */ - - -// The number of bytes in a float. -# ifndef ACE_SIZEOF_FLOAT -# if FLT_MAX_EXP == 128 -# define ACE_SIZEOF_FLOAT 4 -# elif FLT_MAX_EXP == 1024 -# define ACE_SIZEOF_FLOAT 8 -# else -# error: unsupported float size, must be updated for this platform! -# endif /* FLT_MAX_EXP */ -# endif /* ACE_SIZEOF_FLOAT */ - -// The number of bytes in a double. -# ifndef ACE_SIZEOF_DOUBLE -# if DBL_MAX_EXP == 128 -# define ACE_SIZEOF_DOUBLE 4 -# elif DBL_MAX_EXP == 1024 -# define ACE_SIZEOF_DOUBLE 8 -# else -# error: unsupported double size, must be updated for this platform! -# endif /* DBL_MAX_EXP */ -# endif /* ACE_SIZEOF_DOUBLE */ - -// The number of bytes in a long double. -# ifndef ACE_SIZEOF_LONG_DOUBLE -# if LDBL_MAX_EXP == 128 -# define ACE_SIZEOF_LONG_DOUBLE 4 -# elif LDBL_MAX_EXP == 1024 -# define ACE_SIZEOF_LONG_DOUBLE 8 -# 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 -# endif /* __ia64 */ -# else /* ! LDBL_DIG || LDBL_DIG != 18 */ -# define ACE_SIZEOF_LONG_DOUBLE 16 -# endif /* ! LDBL_DIG || LDBL_DIG != 18 */ -# else -# error: unsupported double size, must be updated for this platform! -# endif /* LDBL_MAX_EXP */ -# endif /* ACE_SIZEOF_LONG_DOUBLE */ - -// Max and min sizes for the ACE integer types. -#define ACE_CHAR_MAX 0x7F -#define ACE_CHAR_MIN -(ACE_CHAR_MAX)-1 -#define ACE_OCTET_MAX 0xFF -#define ACE_INT16_MAX 0x7FFF -#define ACE_INT16_MIN -(ACE_INT16_MAX)-1 -#define ACE_UINT16_MAX 0xFFFF -#define ACE_WCHAR_MAX ACE_UINT16_MAX -#define ACE_INT32_MAX 0x7FFFFFFF -#define ACE_INT32_MIN -(ACE_INT32_MAX)-1 -#define ACE_UINT32_MAX 0xFFFFFFFF -#define ACE_INT64_MAX ACE_INT64_LITERAL(0x7FFFFFFFFFFFFFFF) -#define ACE_INT64_MIN -(ACE_INT64_MAX)-1 - -#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T) -// ACE_U_LongLong's constructor accepts a "long long" in this -// case. Set it to ACE_U_LongLong (-1) since the bit pattern for long -// long (-1) is the same as the maximum unsigned long long value. -# define ACE_UINT64_MAX ACE_U_LongLong (ACE_INT64_LITERAL (0xFFFFFFFFFFFFFFFF)) -#elif defined (ACE_LACKS_LONGLONG_T) -// ACE_U_LongLong's constructor accepts an ACE_UINT32 low and high -// pair of parameters. -# define ACE_UINT64_MAX ACE_U_LongLong (0xFFFFFFFFu, 0xFFFFFFFFu) -#else -# define ACE_UINT64_MAX ACE_UINT64_LITERAL (0xFFFFFFFFFFFFFFFF) -#endif /* ACE_LACKS_UNSIGNEDLONGLONG_T */ - -// These use ANSI/IEEE format. -#define ACE_FLT_MAX 3.402823466e+38F -#define ACE_FLT_MIN 1.175494351e-38F -#define ACE_DBL_MAX 1.7976931348623158e+308 -#define ACE_DBL_MIN 2.2250738585072014e-308 - -# if defined (__ACE_INLINE__) -# include "ace/Basic_Types.inl" -# endif /* __ACE_INLINE__ */ - -# include /**/ "ace/post.h" -#endif /* ACE_BASIC_TYPES_H */ diff --git a/ACE/ace/Basic_Types.inl b/ACE/ace/Basic_Types.inl deleted file mode 100644 index 15f9a9a1ab6..00000000000 --- a/ACE/ace/Basic_Types.inl +++ /dev/null @@ -1,954 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -# if !defined (ACE_LACKS_LONGLONG_T) && defined (ACE_LACKS_UNSIGNEDLONGLONG_T) - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Implementation for ACE_U_LongLong when we have signed long long -// but no unsigned long long. - -ACE_INLINE -ACE_U_LongLong::ACE_U_LongLong (const long long value) - : data_ (value) -{ -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::hi (void) const -{ - return (data_ >> 32) & 0xFFFFFFFF; -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::lo (void) const -{ - return data_ & 0xFFFFFFFF; -} - -ACE_INLINE void -ACE_U_LongLong::hi (const ACE_UINT32 hi) -{ - data_ = hi; - data_ <<= 32; -} - -ACE_INLINE void -ACE_U_LongLong::lo (const ACE_UINT32 lo) -{ - data_ = lo; -} - -ACE_INLINE long long -ACE_U_LongLong::to_int64 (void) const -{ - return data_; -} - -ACE_INLINE -ACE_U_LongLong::~ACE_U_LongLong (void) -{ -} - -ACE_INLINE bool -ACE_U_LongLong::operator== (const ACE_U_LongLong &n) const -{ - return data_ == n.data_; -} - -ACE_INLINE bool -ACE_U_LongLong::operator== (const ACE_UINT32 n) const -{ - return data_ == n; -} - -ACE_INLINE bool -ACE_U_LongLong::operator!= (const ACE_U_LongLong &n) const -{ - return ! (*this == n); -} - -ACE_INLINE bool -ACE_U_LongLong::operator!= (const ACE_UINT32 n) const -{ - return ! (*this == n); -} - -ACE_INLINE bool -ACE_U_LongLong::operator< (const ACE_U_LongLong &n) const -{ - if (data_ > 0) - if (n.data_ > 0) - return data_ < n.data_; - else - return true; - else - if (n.data_ > 0) - return false; - else - return data_ < n.data_; -} - -ACE_INLINE bool -ACE_U_LongLong::operator< (const ACE_UINT32 n) const -{ - return operator< (static_cast (n)); -} - -ACE_INLINE bool -ACE_U_LongLong::operator<= (const ACE_U_LongLong &n) const -{ - if (data_ == n.data_) return true; - - return data_ < n.data_; -} - -ACE_INLINE bool -ACE_U_LongLong::operator<= (const ACE_UINT32 n) const -{ - return operator<= (static_cast (n)); -} - -ACE_INLINE bool -ACE_U_LongLong::operator> (const ACE_U_LongLong &n) const -{ - if (data_ > 0) - if (n.data_ > 0) - return data_ > n.data_; - else - return false; - else - if (n.data_ > 0) - return true; - else - return data_ > n.data_; -} - -ACE_INLINE bool -ACE_U_LongLong::operator> (const ACE_UINT32 n) const -{ - return operator> (static_cast (n)); -} - -ACE_INLINE bool -ACE_U_LongLong::operator>= (const ACE_U_LongLong &n) const -{ - if (data_ == n.data_) return true; - - return data_ > n.data_; -} - -ACE_INLINE bool -ACE_U_LongLong::operator>= (const ACE_UINT32 n) const -{ - return operator>= (static_cast (n)); -} - -ACE_INLINE -ACE_U_LongLong::ACE_U_LongLong (const ACE_U_LongLong &n) - : data_ (n.data_) -{ -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator= (const ACE_U_LongLong &n) -{ - data_ = n.data_; - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator= (const ACE_INT32 &rhs) -{ - if (rhs >= 0) - { - data_ = rhs; - data_ &= 0xFFFFFFFF; - } - else - { - // We do not handle the case where a negative 32 bit integer is - // assigned to this representation of a 64 bit unsigned integer. - // The "undefined behavior" behavior performed by this - // implementation is to simply set all bits to zero. - data_ = 0; - } - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator= (const ACE_UINT32 &rhs) -{ - data_ = rhs; - - return *this; -} - - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator+ (const ACE_U_LongLong &n) const -{ - return data_ + n.data_; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator+ (const ACE_UINT32 n) const -{ - return operator+ (static_cast (n)); -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator- (const ACE_U_LongLong &n) const -{ - return data_ - n.data_; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator- (const ACE_UINT32 n) const -{ - return operator- (static_cast (n)); -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator<< (const u_int n) const -{ - return data_ << n; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator<<= (const u_int n) -{ - data_ <<= n; - - return *this; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator>> (const u_int n) const -{ - return data_ >> n; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator>>= (const u_int n) -{ - data_ >>= n; - - return *this; -} - -ACE_INLINE double -ACE_U_LongLong::operator/ (const double n) const -{ - return data_ / n; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator+= (const ACE_U_LongLong &n) -{ - data_ += n.data_; - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator+= (const ACE_UINT32 n) -{ - return operator+= (static_cast (n)); -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator* (const ACE_UINT32 n) const -{ - return data_ * n; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator*= (const ACE_UINT32 n) -{ - data_ *= n; - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator-= (const ACE_U_LongLong &n) -{ - data_ -= n.data_; - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator-= (const ACE_UINT32 n) -{ - return operator-= (static_cast (n)); -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator++ () -{ - ++data_; - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator-- () -{ - --data_; - - return *this; -} - -ACE_INLINE const ACE_U_LongLong -ACE_U_LongLong::operator++ (int) -{ - // Post-increment operator should always be implemented in terms of - // the pre-increment operator to enforce consistent semantics. - ACE_U_LongLong temp (*this); - ++*this; - return temp; -} - -ACE_INLINE const ACE_U_LongLong -ACE_U_LongLong::operator-- (int) -{ - // Post-decrement operator should always be implemented in terms of - // the pre-decrement operator to enforce consistent semantics. - ACE_U_LongLong temp (*this); - --*this; - return temp; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator|= (const ACE_U_LongLong n) -{ - data_ |= n.data_; - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator|= (const ACE_UINT32 n) -{ - return operator|= (static_cast (n)); -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator&= (const ACE_U_LongLong n) -{ - data_ &= n.data_; - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator&= (const ACE_UINT32 n) -{ - return operator&= (static_cast (n)); -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const ACE_UINT32 n) const -{ - return data_ / n; -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator% (const ACE_UINT32 n) const -{ - return data_ % n; -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator| (const ACE_INT32 n) const -{ - return data_ | n; -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator& (const ACE_INT32 n) const -{ - return data_ & n; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator* (const ACE_INT32 n) const -{ - return operator* ((ACE_UINT32) n); -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator*= (const ACE_INT32 n) -{ - return operator*= ((ACE_UINT32) n); -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const ACE_INT32 n) const -{ - return operator/ ((ACE_UINT32) n); -} - -#if ACE_SIZEOF_INT == 4 -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const u_long n) const -{ - return operator/ ((ACE_UINT32) n); -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const long n) const -{ - return operator/ ((ACE_UINT32) n); -} - -#else /* ACE_SIZEOF_INT != 4 */ -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const u_int n) const -{ - return operator/ ((ACE_UINT32) n); -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const int n) const -{ - return operator/ ((ACE_UINT32) n); -} -#endif - -ACE_END_VERSIONED_NAMESPACE_DECL - -#elif defined (ACE_LACKS_LONGLONG_T) - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_U_LongLong::ACE_U_LongLong (const ACE_UINT32 lo, const ACE_UINT32 hi) -{ - h_ () = hi; - l_ () = lo; -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::hi (void) const -{ - return h_ (); -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::lo (void) const -{ - return l_ (); -} - -ACE_INLINE void -ACE_U_LongLong::hi (const ACE_UINT32 hi) -{ - h_ () = hi; -} - -ACE_INLINE void -ACE_U_LongLong::lo (const ACE_UINT32 lo) -{ - l_ () = lo; -} - -ACE_INLINE -ACE_U_LongLong::~ACE_U_LongLong (void) -{ -} - -ACE_INLINE bool -ACE_U_LongLong::operator== (const ACE_U_LongLong &n) const -{ - return h_ () == n.h_ () && l_ () == n.l_ (); -} - -ACE_INLINE bool -ACE_U_LongLong::operator== (const ACE_UINT32 n) const -{ - return h_ () == 0 && l_ () == n; -} - -ACE_INLINE bool -ACE_U_LongLong::operator!= (const ACE_U_LongLong &n) const -{ - return ! (*this == n); -} - -ACE_INLINE bool -ACE_U_LongLong::operator!= (const ACE_UINT32 n) const -{ - return ! (*this == n); -} - -ACE_INLINE bool -ACE_U_LongLong::operator< (const ACE_U_LongLong &n) const -{ - return h_ () < n.h_ () ? 1 - : h_ () > n.h_ () ? 0 - : l_ () < n.l_ (); -} - -ACE_INLINE bool -ACE_U_LongLong::operator< (const ACE_UINT32 n) const -{ - return operator< (static_cast (n)); -} - -ACE_INLINE bool -ACE_U_LongLong::operator<= (const ACE_U_LongLong &n) const -{ - return h_ () < n.h_ () ? 1 - : h_ () > n.h_ () ? 0 - : l_ () <= n.l_ (); -} - -ACE_INLINE bool -ACE_U_LongLong::operator<= (const ACE_UINT32 n) const -{ - return operator<= (static_cast (n)); -} - -ACE_INLINE bool -ACE_U_LongLong::operator> (const ACE_U_LongLong &n) const -{ - return h_ () > n.h_ () ? 1 - : h_ () < n.h_ () ? 0 - : l_ () > n.l_ (); -} - -ACE_INLINE bool -ACE_U_LongLong::operator> (const ACE_UINT32 n) const -{ - return operator> (static_cast (n)); -} - -ACE_INLINE bool -ACE_U_LongLong::operator>= (const ACE_U_LongLong &n) const -{ - return h_ () > n.h_ () ? 1 - : h_ () < n.h_ () ? 0 - : l_ () >= n.l_ (); -} - -ACE_INLINE bool -ACE_U_LongLong::operator>= (const ACE_UINT32 n) const -{ - return operator>= (static_cast (n)); -} - -ACE_INLINE -ACE_U_LongLong::ACE_U_LongLong (const ACE_U_LongLong &n) -{ - h_ () = n.h_ (); - l_ () = n.l_ (); -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator= (const ACE_U_LongLong &n) -{ - h_ () = n.h_ (); - l_ () = n.l_ (); - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator= (const ACE_INT32 &rhs) -{ - if (rhs >= 0) - { - l_ () = static_cast (rhs); - h_ () = 0; - } - else - { - // We do not handle the case where a negative 32 bit integer is - // assigned to this representation of a 64 bit unsigned integer. - // The "undefined behavior" behavior performed by this - // implementation is to simply set all bits to zero. - l_ () = 0; - h_ () = 0; - } - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator= (const ACE_UINT32 &rhs) -{ - l_ () = rhs; - h_ () = 0; - - return *this; -} - - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator+ (const ACE_U_LongLong &n) const -{ - ACE_U_LongLong ret (l_ () + n.l_ (), h_ () + n.h_ ()); - if (ret.l_ () < n.l_ ()) /* carry */ ++ret.h_ (); - - return ret; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator+ (const ACE_UINT32 n) const -{ - return operator+ (static_cast (n)); -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator- (const ACE_U_LongLong &n) const -{ - ACE_U_LongLong ret (l_ () - n.l_ (), h_ () - n.h_ ()); - if (l_ () < n.l_ ()) /* borrow */ --ret.h_ (); - - return ret; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator- (const ACE_UINT32 n) const -{ - return operator- (static_cast (n)); -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator<< (const u_int n) const -{ - const ACE_UINT32 carry_mask = l_ () >> (32 - n); - ACE_U_LongLong ret (n < 32 ? l_ () << n : 0, - n < 32 ? (h_ () << n) | carry_mask : carry_mask); - - return ret; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator<<= (const u_int n) -{ - const ACE_UINT32 carry_mask = l_ () >> (32 - n); - h_ () = n < 32 ? (h_ () << n) | carry_mask : carry_mask; - - // g++ 2.7.2.3/Solaris 2.5.1 doesn't modify l_ () if shifted by 32. - l_ () = n < 32 ? l_ () << n : 0; - - return *this; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator>> (const u_int n) const -{ - const ACE_UINT32 carry_mask = h_ () << (32 - n); - ACE_U_LongLong ret (n < 32 ? (l_ () >> n) | carry_mask : 0, - n < 32 ? h_ () >> n : 0); - - return ret; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator>>= (const u_int n) -{ - const ACE_UINT32 carry_mask = h_ () << (32 - n); - l_ () = n < 32 ? (l_ () >> n) | carry_mask : carry_mask; - h_ () = n < 32 ? h_ () >> n : 0; - - return *this; -} - -ACE_INLINE double -ACE_U_LongLong::operator/ (const double n) const -{ - // See the derivation above in operator/ (const ACE_UINT32). - - return ((double) 0xffffffffu - n + 1.0) / n * h_ () + - (double) h_ () + (double) l_ () / n; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator+= (const ACE_U_LongLong &n) -{ - h_ () += n.h_ (); - l_ () += n.l_ (); - if (l_ () < n.l_ ()) /* carry */ ++h_ (); - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator+= (const ACE_UINT32 n) -{ - return operator+= (static_cast (n)); -} - -#define ACE_HIGHBIT (~(~0UL >> 1)) - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::ul_shift (ACE_UINT32 a, ACE_UINT32 c_in, ACE_UINT32 *c_out) const -{ - const ACE_UINT32 b = (a << 1) | c_in; - *c_out = (*c_out << 1) + ((a & ACE_HIGHBIT) > 0); - - return b; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::ull_shift (ACE_U_LongLong a, - ACE_UINT32 c_in, - ACE_UINT32 *c_out) const -{ - ACE_U_LongLong b; - - b.l_ () = (a.l_ () << 1) | c_in; - c_in = ((a.l_ () & ACE_HIGHBIT) > 0); - b.h_ () = (a.h_ () << 1) | c_in; - *c_out = (*c_out << 1) + ((a.h_ () & ACE_HIGHBIT) > 0); - - return b; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::ull_add (ACE_U_LongLong a, ACE_U_LongLong b, ACE_UINT32 *carry) const -{ - ACE_U_LongLong r (0, 0); - ACE_UINT32 c1, c2, c3, c4; - - c1 = a.l_ () % 2; - c2 = b.l_ () % 2; - c3 = 0; - - r.l_ () = a.l_ ()/2 + b.l_ ()/2 + (c1+c2)/2; - r.l_ () = ul_shift (r.l_ (), (c1+c2)%2, &c3); - - c1 = a.h_ () % 2; - c2 = b.h_ () % 2; - c4 = 0; - - r.h_ () = a.h_ ()/2 + b.h_ ()/2 + (c1+c2+c3)/2; - r.h_ () = ul_shift (r.h_ (), (c1+c2+c3)%2, &c4); - - *carry = c4; - - return r; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::ull_mult (ACE_U_LongLong a, ACE_UINT32 b, ACE_UINT32 *carry) const -{ - register ACE_UINT32 mask = ACE_HIGHBIT; - const ACE_U_LongLong zero (0, 0); - ACE_U_LongLong accum (0, 0); - ACE_UINT32 c; - - *carry = 0; - if (b > 0) - do - { - accum = ull_shift (accum, 0U, carry); - if (b & mask) - accum = ull_add (accum, a, &c); - else - accum = ull_add (accum, zero, &c); - *carry += c; - mask >>= 1; - } - while (mask > 0); - - return accum; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator* (const ACE_UINT32 n) const -{ - ACE_UINT32 carry; // will throw the carry away - - return ull_mult (*this, n, &carry); -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator*= (const ACE_UINT32 n) -{ - ACE_UINT32 carry; // will throw the carry away - - return *this = ull_mult (*this, n, &carry); -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator-= (const ACE_U_LongLong &n) -{ - h_ () -= n.h_ (); - if (l_ () < n.l_ ()) /* borrow */ --h_ (); - l_ () -= n.l_ (); - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator-= (const ACE_UINT32 n) -{ - return operator-= (static_cast (n)); -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator++ () -{ - ++l_ (); - if (l_ () == 0) /* carry */ ++h_ (); - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator-- () -{ - if (l_ () == 0) /* borrow */ --h_ (); - --l_ (); - - return *this; -} - -ACE_INLINE const ACE_U_LongLong -ACE_U_LongLong::operator++ (int) -{ - // Post-increment operator should always be implemented in terms of - // the pre-increment operator to enforce consistent semantics. - ACE_U_LongLong temp (*this); - ++*this; - return temp; -} - -ACE_INLINE const ACE_U_LongLong -ACE_U_LongLong::operator-- (int) -{ - // Post-decrement operator should always be implemented in terms of - // the pre-decrement operator to enforce consistent semantics. - ACE_U_LongLong temp (*this); - --*this; - return temp; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator|= (const ACE_U_LongLong n) -{ - l_ () |= n.l_ (); - h_ () |= n.h_ (); - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator|= (const ACE_UINT32 n) -{ - return operator|= (static_cast (n)); -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator&= (const ACE_U_LongLong n) -{ - l_ () &= n.l_ (); - h_ () &= n.h_ (); - - return *this; -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator&= (const ACE_UINT32 n) -{ - return operator&= (static_cast (n)); -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const ACE_UINT32 n) const -{ - // This takes advantage of the fact that the return type has only 32 - // bits. Replace 0x100000000 with 0xffffffff + 1 because the former - // has 33 bits. - // Quotient = (0x100000000u * hi_ + lo_) / n - // = ((0x100000000u - n + n) * hi_ + lo_) / n - // = ((0x100000000u - n) / n * hi_ + hi_ * n / n + lo_ / n - // = (0x100000000u - n) / n * hi_ + hi_ + lo_ / n - // = (0xffffffffu - n + 1) / n * hi_ + hi_ + lo_ / n - - return (0xffffffffu - n + 1) / n * h_ () + h_ () + l_ () / n; -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator% (const ACE_UINT32 n) const -{ - // Because the argument is an ACE_UINT32, the result can never be - // bigger than 32 bits. Replace 0x100000000 with 0xffffffff + 1 - // because the former has 33 bits. - // Mod = (0x100000000u * hi_ + lo_) % n - // = (0x100000000u % n * hi_ + lo_ % n) % n - // = ((0x100000000u - n) % n * hi_ + lo_ % n) % n - // = ((0xffffffffu - n + 1) % n * hi_ + lo_ % n) % n - - return ((0xffffffff - n + 1) % n * h_ () + l_ () % n) % n; -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator| (const ACE_INT32 n) const -{ - return l_ () | n; -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator& (const ACE_INT32 n) const -{ - return l_ () & n; -} - -ACE_INLINE ACE_U_LongLong -ACE_U_LongLong::operator* (const ACE_INT32 n) const -{ - return operator* ((ACE_UINT32) n); -} - -ACE_INLINE ACE_U_LongLong & -ACE_U_LongLong::operator*= (const ACE_INT32 n) -{ - return operator*= ((ACE_UINT32) n); -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const ACE_INT32 n) const -{ - return operator/ ((ACE_UINT32) n); -} - -#if ACE_SIZEOF_INT == 4 -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const u_long n) const -{ - return operator/ ((ACE_UINT32) n); -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const long n) const -{ - return operator/ ((ACE_UINT32) n); -} - -#else /* ACE_SIZEOF_INT != 4 */ -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const u_int n) const -{ - return operator/ ((ACE_UINT32) n); -} - -ACE_INLINE ACE_UINT32 -ACE_U_LongLong::operator/ (const int n) const -{ - return operator/ ((ACE_UINT32) n); -} -#endif /* ACE_SIZEOF_INT != 4 */ - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LACKS_LONGLONG_T || ACE_LACKS_UNSIGNEDLONGLONG_T */ diff --git a/ACE/ace/Bound_Ptr.h b/ACE/ace/Bound_Ptr.h deleted file mode 100644 index a310e3b8a56..00000000000 --- a/ACE/ace/Bound_Ptr.h +++ /dev/null @@ -1,388 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Bound_Ptr.h - * - * $Id$ - * - * @author Christopher Kohlhoff - * @author Boris Kolpackov - */ -//============================================================================= - -#ifndef ACE_BOUND_PTR_H -#define ACE_BOUND_PTR_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" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Bound_Ptr_Counter - * - * @brief An ACE_Bound_Ptr_Counter object encapsulates an - * object reference count. - * - * Do not use this class directly, use ACE_Strong_Bound_Ptr or - * ACE_Weak_Bound_Ptr instead. - */ -template -class ACE_Bound_Ptr_Counter -{ -public: - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - ACE_Bound_Ptr_Counter (long init_obj_ref_count = 0); - ~ACE_Bound_Ptr_Counter (void); - - /// Create a ACE_Bound_Ptr_Counter and initialize the - /// reference count to indicate ownership by a strong pointer. - static ACE_Bound_Ptr_Counter *create_strong (void); - - /// Increase both the object and counter reference counts and return - /// the new object reference count. A return value of -1 indicates - /// that the object has already been destroyed. - static long attach_strong (ACE_Bound_Ptr_Counter *counter); - - /// Decreases both the object and counter reference counts and - /// deletes whichever has no more references. Returns the new object - /// reference count. - static long detach_strong (ACE_Bound_Ptr_Counter *counter); - - /// Create a ACE_Bound_Ptr_Counter and initialize the - /// reference count to indicate no ownership. - static ACE_Bound_Ptr_Counter *create_weak (void); - - /// Increase the counter reference count and return argument. - static void attach_weak (ACE_Bound_Ptr_Counter *counter); - - /// Decreases the counter reference count and deletes the counter if - /// it has no more references. - static void detach_weak (ACE_Bound_Ptr_Counter *counter); - - /// Determine whether the object has been deleted. - static bool object_was_deleted (ACE_Bound_Ptr_Counter *counter); - -private: - - /// Allocate a new ACE_Bound_Ptr_Counter instance, - /// returning NULL if it cannot be created. - static ACE_Bound_Ptr_Counter *internal_create (long init_obj_ref_count); - -private: - - /// Reference count of underlying object. Is set to -1 once the - /// object has been destroyed to indicate to all weak pointers that - /// it is no longer valid. - long obj_ref_count_; - - /// Reference count of this counter. - long self_ref_count_; - - /// Mutex variable to synchronize access to the reference counts. - ACE_LOCK lock_; -}; - -// Forward decl. -template class ACE_Weak_Bound_Ptr; - -/** - * @class ACE_Strong_Bound_Ptr - * - * @brief This class implements support for a reference counted - * pointer. - * - * Assigning or copying instances of an ACE_Strong_Bound_Ptr will - * automatically increment the reference count of the underlying object. - * When the last instance of an ACE_Strong_Bound_Ptr that references a - * particular object is destroyed or overwritten, it will invoke delete - * on its underlying pointer. - */ -template -class ACE_Strong_Bound_Ptr -{ -public: - /// Constructor that initializes an ACE_Strong_Bound_Ptr to point to the - /// object \ immediately. - explicit ACE_Strong_Bound_Ptr (X *p = 0); - - /// Constructor that initializes an ACE_Strong_Bound_Ptr by stealing - /// ownership of an object from an auto_ptr. - explicit ACE_Strong_Bound_Ptr (auto_ptr p); - - /// Copy constructor binds @c this and @a r to the same object. - ACE_Strong_Bound_Ptr (const ACE_Strong_Bound_Ptr &r); - - /// Constructor binds @c this and @a r to the same object. - ACE_Strong_Bound_Ptr (const ACE_Weak_Bound_Ptr &r); - - /// Copy constructor binds @c this and @a r to the same object if - /// Y* can be implicitly converted to X*. - template - ACE_Strong_Bound_Ptr (const ACE_Strong_Bound_Ptr &r) - : counter_ (r.counter_), - ptr_ (dynamic_cast(r.ptr_)) - { - // This ctor is temporarily defined here to increase our chances - // of being accepted by broken compilers. - // - COUNTER::attach_strong (this->counter_); - } - - /// Destructor. - ~ACE_Strong_Bound_Ptr (void); - - /// Assignment operator that binds @c this and @a r to the same object. - void operator = (const ACE_Strong_Bound_Ptr &r); - - /// Assignment operator that binds @c this and @a r to the same object. - void operator = (const ACE_Weak_Bound_Ptr &r); - - /// Assignment operator that binds @c this and @a r to the same object - /// if Y* can be implicitly converted to X*. - template - ACE_Weak_Bound_Ptr& - operator= (const ACE_Strong_Bound_Ptr &r) - { - // This operator is temporarily defined here to increase our chances - // of being accepted by broken compilers. - // - - // This will work if &r == this, by first increasing the ref count - - COUNTER *new_counter = r.counter_; - X* new_ptr = dynamic_cast (r.ptr_); - COUNTER::attach_strong (new_counter); - if (COUNTER::detach_strong (this->counter_) == 0) - delete this->ptr_; - this->counter_ = new_counter; - this->ptr_ = new_ptr; - - return *this; - } - - /// Equality operator that returns @c true if both - /// ACE_Strong_Bound_Ptr instances point to the same underlying - /// object. - /** - * @note It also returns @c true if both objects have just been - * instantiated and not used yet. - */ - bool operator == (const ACE_Strong_Bound_Ptr &r) const; - - /// Equality operator that returns true if the ACE_Strong_Bound_Ptr - /// and ACE_Weak_Bound_Ptr objects point to the same underlying - /// object. - /** - * @note It also returns @c true if both objects have just been - * instantiated and not used yet. - */ - bool operator == (const ACE_Weak_Bound_Ptr &r) const; - - /// Equality operator that returns @c true if the - /// ACE_Strong_Bound_Ptr and the raw pointer point to the same - /// underlying object. - bool operator == (X *p) const; - - /// Inequality operator, which is the opposite of equality. - bool operator != (const ACE_Strong_Bound_Ptr &r) const; - - /// Inequality operator, which is the opposite of equality. - bool operator != (const ACE_Weak_Bound_Ptr &r) const; - - /// Inequality operator, which is the opposite of equality. - bool operator != (X *p) const; - - /// Redirection operator - X *operator-> (void) const; - - /// Dereference operator - X &operator * (void) const; - - /// Get the pointer value. - X *get (void) const; - - /// Resets the ACE_Strong_Bound_Ptr to refer to a different - /// underlying object. - void reset (X *p = 0); - - /// Resets the ACE_Strong_Bound_Ptr to refer to a different - /// underlying object, ownership of which is stolen from the - /// auto_ptr. - void reset (auto_ptr p); - - /// Allows us to check for NULL on all ACE_Strong_Bound_Ptr - /// objects. - int null (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - typedef X X_t; // This indirection is for Borland C++. - - friend class ACE_Weak_Bound_Ptr; - - template - friend class ACE_Strong_Bound_Ptr; - - /// The ACE_Bound_Ptr_Counter type. - typedef ACE_Bound_Ptr_Counter COUNTER; - - /// The reference counter. - COUNTER *counter_; - - /// The underlying object. - X *ptr_; -}; - -/** - * @class ACE_Weak_Bound_Ptr - * - * @brief This class implements support for a weak pointer that complements - * ACE_Strong_Bound_Ptr. - * - * Unlike ACE_Strong_Bound_Ptr, assigning or copying instances of an - * ACE_Weak_Bound_Ptr will not automatically increment the reference - * count of the underlying object. What ACE_Weak_Bound_Ptr does is - * preserve the knowledge that the object is in fact reference - * counted, and thus provides an alternative to raw pointers where - * non-ownership associations must be maintained. When the last - * instance of an ACE_Strong_Bound_Ptr that references a particular - * object is destroyed or overwritten, the corresponding - * ACE_Weak_Bound_Ptr instances are set to NULL. - */ -template -class ACE_Weak_Bound_Ptr -{ -public: - /// Constructor that initializes an ACE_Weak_Bound_Ptr to point to - /// the object \ immediately. - explicit ACE_Weak_Bound_Ptr (X *p = 0); - - /// Copy constructor binds @c this and @a r to the same object. - ACE_Weak_Bound_Ptr (const ACE_Weak_Bound_Ptr &r); - - /// Constructor binds @c this and @a r to the same object. - ACE_Weak_Bound_Ptr (const ACE_Strong_Bound_Ptr &r); - - /// Destructor. - ~ACE_Weak_Bound_Ptr (void); - - /// Assignment operator that binds @c this and @a r to the same object. - void operator = (const ACE_Weak_Bound_Ptr &r); - - /// Assignment operator that binds @c this and @a r to the same object. - void operator = (const ACE_Strong_Bound_Ptr &r); - - /// Equality operator that returns @c true if both - /// ACE_Weak_Bound_Ptr objects point to the same underlying object. - /** - * @note It also returns @c true if both objects have just been - * instantiated and not used yet. - */ - bool operator == (const ACE_Weak_Bound_Ptr &r) const; - - /// Equality operator that returns @c true if the ACE_Weak_Bound_Ptr - /// and ACE_Strong_Bound_Ptr objects point to the same underlying - /// object. - /** - * @note It also returns @c true if both objects have just been - * instantiated and not used yet. - */ - bool operator == (const ACE_Strong_Bound_Ptr &r) const; - - /// Equality operator that returns @c true if the ACE_Weak_Bound_Ptr - /// and the raw pointer point to the same underlying object. - bool operator == (X *p) const; - - /// Inequality operator, which is the opposite of equality. - bool operator != (const ACE_Weak_Bound_Ptr &r) const; - - /// Inequality operator, which is the opposite of equality. - bool operator != (const ACE_Strong_Bound_Ptr &r) const; - - /// Inequality operator, which is the opposite of equality. - bool operator != (X *p) const; - - /// Redirection operator. - /** - * It returns a temporary strong pointer and makes use of the - * chaining properties of operator-> to ensure that the underlying - * object does not disappear while you are using it. If you are - * certain of the lifetimes of the object, and do not want to incur - * the locking overhead, then use the unsafe_get method instead. - */ - ACE_Strong_Bound_Ptr operator-> (void) const; - - /// Obtain a strong pointer corresponding to this weak pointer. This - /// function is useful to create a temporary strong pointer for - /// conversion to a reference. - ACE_Strong_Bound_Ptr strong (void) const; - - /// Get the pointer value. Warning: this does not affect the - /// reference count of the underlying object, so it may disappear on - /// you while you are using it if you are not careful. - X *unsafe_get (void) const; - - /// Resets the ACE_Weak_Bound_Ptr to refer to a different underlying - /// object. - void reset (X *p = 0); - - /// Increment the reference count on the underlying object. - /** - * Returns the new reference count on the object. This function may - * be used to integrate the bound pointers into an external - * reference counting mechanism such as those used by COM or CORBA - * servants. - */ - long add_ref (void); - - /// Decrement the reference count on the underlying object, which is deleted - /// if the count has reached zero. - /** - * Returns the new reference count on the object. This function may - * be used to integrate the bound pointers into an external - * reference counting mechanism such as those used by COM or CORBA - * servants. - */ - long remove_ref (void); - - /// Allows us to check for NULL on all ACE_Weak_Bound_Ptr objects. - int null (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - typedef X X_t; // This indirection is for Borland C++. - - friend class ACE_Strong_Bound_Ptr; - - /// The ACE_Bound_Ptr_Counter type. - typedef ACE_Bound_Ptr_Counter COUNTER; - - /// The reference counter. - COUNTER *counter_; - - /// The underlying object. - X *ptr_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include "ace/Bound_Ptr.inl" - -#include /**/ "ace/post.h" - -#endif /* ACE_BOUND_PTR_H */ diff --git a/ACE/ace/Bound_Ptr.inl b/ACE/ace/Bound_Ptr.inl deleted file mode 100644 index 52c100e16b0..00000000000 --- a/ACE/ace/Bound_Ptr.inl +++ /dev/null @@ -1,494 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// Bound_Ptr.i - -#include "ace/Guard_T.h" -#if !defined (ACE_NEW_THROWS_EXCEPTIONS) -# include "ace/Log_Msg.h" -#endif /* ACE_NEW_THROWS_EXCEPTIONS */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template inline ACE_Bound_Ptr_Counter * -ACE_Bound_Ptr_Counter::internal_create (long init_obj_ref_count) -{ - ACE_Bound_Ptr_Counter *temp = 0; - ACE_NEW_RETURN (temp, - ACE_Bound_Ptr_Counter (init_obj_ref_count), - 0); - return temp; -} - -template inline ACE_Bound_Ptr_Counter * -ACE_Bound_Ptr_Counter::create_strong (void) -{ - // Set initial object reference count to 1. - ACE_Bound_Ptr_Counter *temp = internal_create (1); -#if defined (ACE_NEW_THROWS_EXCEPTIONS) - if (temp == 0) - ACE_throw_bad_alloc; -#else - ACE_ASSERT (temp != 0); -#endif /* ACE_NEW_THROWS_EXCEPTIONS */ - return temp; -} - - - -template inline long -ACE_Bound_Ptr_Counter::attach_strong (ACE_Bound_Ptr_Counter* counter) -{ - ACE_GUARD_RETURN (ACE_LOCK, guard, counter->lock_, -1); - - // Can't attach a strong pointer to an object that has already been deleted. - if (counter->obj_ref_count_ == -1) - return -1; - - long new_obj_ref_count = ++counter->obj_ref_count_; - ++counter->self_ref_count_; - - return new_obj_ref_count; -} - -template inline long -ACE_Bound_Ptr_Counter::detach_strong (ACE_Bound_Ptr_Counter* counter) -{ - ACE_Bound_Ptr_Counter *counter_del = 0; - long new_obj_ref_count; - - { - ACE_GUARD_RETURN (ACE_LOCK, guard, counter->lock_, -1); - - if ((new_obj_ref_count = --counter->obj_ref_count_) == 0) - // Change the object reference count to -1 to indicate that the - // object has been deleted, as opposed to a weak pointer that - // simply hasn't had any strong pointers created from it yet. - counter->obj_ref_count_ = -1; - - if (--counter->self_ref_count_ == 0) - // Since counter contains the lock held by the ACE_Guard, the - // guard needs to be released before freeing the memory holding - // the lock. So save the pointer to free, then release, then - // free. - counter_del = counter; - - } // Release the lock - - delete counter_del; - - return new_obj_ref_count; -} - -template inline ACE_Bound_Ptr_Counter * -ACE_Bound_Ptr_Counter::create_weak (void) -{ - // Set initial object reference count to 0. - - ACE_Bound_Ptr_Counter *temp = internal_create (0); -#if defined (ACE_NEW_THROWS_EXCEPTIONS) - if (temp == 0) - ACE_throw_bad_alloc; -#else - ACE_ASSERT (temp != 0); -#endif /* ACE_NEW_THROWS_EXCEPTIONS */ - return temp; -} - -template inline void -ACE_Bound_Ptr_Counter::attach_weak (ACE_Bound_Ptr_Counter* counter) -{ - ACE_GUARD (ACE_LOCK, guard, counter->lock_); - - ++counter->self_ref_count_; -} - -template inline void -ACE_Bound_Ptr_Counter::detach_weak (ACE_Bound_Ptr_Counter* counter) -{ - ACE_Bound_Ptr_Counter *counter_del = 0; - - { - ACE_GUARD (ACE_LOCK, guard, counter->lock_); - - if (--counter->self_ref_count_ == 0) - // Since counter contains the lock held by the ACE_Guard, the - // guard needs to be released before freeing the memory holding - // the lock. So save the pointer to free, then release, then - // free. - counter_del = counter; - - } // Release the lock - - delete counter_del; -} - -template inline bool -ACE_Bound_Ptr_Counter::object_was_deleted (ACE_Bound_Ptr_Counter *counter) -{ - ACE_GUARD_RETURN (ACE_LOCK, guard, counter->lock_, 0); - - return counter->obj_ref_count_ == -1; -} - -template inline -ACE_Bound_Ptr_Counter::ACE_Bound_Ptr_Counter (long init_obj_ref_count) - : obj_ref_count_ (init_obj_ref_count), - self_ref_count_ (1) -{ -} - -template inline -ACE_Bound_Ptr_Counter::~ACE_Bound_Ptr_Counter (void) -{ -} - -template inline -ACE_Strong_Bound_Ptr::ACE_Strong_Bound_Ptr (X *p) - : counter_ (COUNTER::create_strong ()), - ptr_ (p) -{ -} - -template inline -ACE_Strong_Bound_Ptr::ACE_Strong_Bound_Ptr (auto_ptr p) - : counter_ (COUNTER::create_strong ()), - ptr_ (p.release()) -{ -} - -template inline -ACE_Strong_Bound_Ptr::ACE_Strong_Bound_Ptr (const ACE_Strong_Bound_Ptr &r) - : counter_ (r.counter_), - ptr_ (r.ptr_) -{ - COUNTER::attach_strong (this->counter_); -} - -template inline -ACE_Strong_Bound_Ptr::ACE_Strong_Bound_Ptr (const ACE_Weak_Bound_Ptr &r) - : counter_ (r.counter_), - ptr_ (r.ptr_) -{ - // When creating a strong pointer from a weak one we can't assume that the - // underlying object still exists. Therefore we must check for a return value - // of -1, which indicates that the object has been destroyed. - if (COUNTER::attach_strong (this->counter_) == -1) - { - // Underlying object has already been deleted, so set this pointer to null. - this->counter_ = COUNTER::create_strong (); - this->ptr_ = 0; - } -} - -template inline -ACE_Strong_Bound_Ptr::~ACE_Strong_Bound_Ptr (void) -{ - if (COUNTER::detach_strong (this->counter_) == 0) - delete this->ptr_; -} - -template inline void -ACE_Strong_Bound_Ptr::operator = (const ACE_Strong_Bound_Ptr &rhs) -{ - // This will work if &r == this, by first increasing the ref count, but - // why go through all that? - if (&rhs == this) - return; - - COUNTER *new_counter = rhs.counter_; - X_t *new_ptr = rhs.ptr_; - COUNTER::attach_strong (new_counter); - if (COUNTER::detach_strong (this->counter_) == 0) - delete this->ptr_; - this->counter_ = new_counter; - this->ptr_ = new_ptr; -} - -template inline void -ACE_Strong_Bound_Ptr::operator = (const ACE_Weak_Bound_Ptr &rhs) -{ - // This will work if &r == this, by first increasing the ref count, but - // why go through all that? - if (&rhs == this) - return; - - COUNTER *new_counter = rhs.counter_; - X_t *new_ptr = rhs.ptr_; - - // When creating a strong pointer from a weak one we can't assume that the - // underlying object still exists. Therefore we must check for a return value - // of -1, which indicates that the object has been destroyed. - if (COUNTER::attach_strong (new_counter) == -1) - { - // Underlying object has already been deleted, so set this pointer to null. - new_counter = COUNTER::create_strong (); - new_ptr = 0; - } - - if (COUNTER::detach_strong (this->counter_) == 0) - delete this->ptr_; - this->counter_ = new_counter; - this->ptr_ = new_ptr; -} - -template inline bool -ACE_Strong_Bound_Ptr::operator== (const ACE_Strong_Bound_Ptr &r) const -{ - return this->ptr_ == r.ptr_; -} - -template inline bool -ACE_Strong_Bound_Ptr::operator== (const ACE_Weak_Bound_Ptr &r) const -{ - // Use the weak pointer's operator== since it will check for null. - return r == *this; -} - -template inline bool -ACE_Strong_Bound_Ptr::operator== (X *p) const -{ - return this->ptr_ == p; -} - -template inline bool -ACE_Strong_Bound_Ptr::operator!= (const ACE_Strong_Bound_Ptr &r) const -{ - return this->ptr_ != r.ptr_; -} - -template inline bool -ACE_Strong_Bound_Ptr::operator!= (const ACE_Weak_Bound_Ptr &r) const -{ - // Use the weak pointer's operator!= since it will check for null. - return r != *this; -} - -template inline bool -ACE_Strong_Bound_Ptr::operator!= (X *p) const -{ - return this->ptr_ != p; -} - -template inline X * -ACE_Strong_Bound_Ptr::operator-> (void) const -{ - return this->ptr_; -} - -template inline X & -ACE_Strong_Bound_Ptr::operator *() const -{ - return *this->ptr_; -} - -template inline X* -ACE_Strong_Bound_Ptr::get (void) const -{ - return this->ptr_; -} - -template inline int -ACE_Strong_Bound_Ptr::null (void) const -{ - return this->ptr_ == 0; -} - -template inline void -ACE_Strong_Bound_Ptr::reset (X *p) -{ - COUNTER *old_counter = this->counter_; - X_t *old_ptr = this->ptr_; - this->counter_ = COUNTER::create_strong (); - this->ptr_ = p; - if (COUNTER::detach_strong (old_counter) == 0) - delete old_ptr; -} - -template inline void -ACE_Strong_Bound_Ptr::reset (auto_ptr p) -{ - COUNTER *old_counter = this->counter_; - X_t *old_ptr = this->ptr_; - this->counter_ = COUNTER::create_strong (); - this->ptr_ = p.release (); - if (COUNTER::detach_strong (old_counter) == 0) - delete old_ptr; -} - -template inline -ACE_Weak_Bound_Ptr::ACE_Weak_Bound_Ptr (X *p) - : counter_ (COUNTER::create_weak ()), - ptr_ (p) -{ -} - -template inline -ACE_Weak_Bound_Ptr::ACE_Weak_Bound_Ptr (const ACE_Weak_Bound_Ptr &r) - : counter_ (r.counter_), - ptr_ (r.ptr_) -{ - COUNTER::attach_weak (this->counter_); -} - -template inline -ACE_Weak_Bound_Ptr::ACE_Weak_Bound_Ptr (const ACE_Strong_Bound_Ptr &r) - : counter_ (r.counter_), - ptr_ (r.ptr_) -{ - COUNTER::attach_weak (this->counter_); -} - -template inline -ACE_Weak_Bound_Ptr::~ACE_Weak_Bound_Ptr (void) -{ - COUNTER::detach_weak (this->counter_); -} - -template inline void -ACE_Weak_Bound_Ptr::operator = (const ACE_Weak_Bound_Ptr &rhs) -{ - // This will work if &rhs == this, by first increasing the ref count - COUNTER *new_counter = rhs.counter_; - COUNTER::attach_weak (new_counter); - COUNTER::detach_weak (this->counter_); - this->counter_ = new_counter; - this->ptr_ = rhs.ptr_; -} - -template inline void -ACE_Weak_Bound_Ptr::operator = (const ACE_Strong_Bound_Ptr &rhs) -{ - // This will work if &rhs == this, by first increasing the ref count - COUNTER *new_counter = rhs.counter_; - COUNTER::attach_weak (new_counter); - COUNTER::detach_weak (this->counter_); - this->counter_ = new_counter; - this->ptr_ = rhs.ptr_; -} - -template inline bool -ACE_Weak_Bound_Ptr::operator== (const ACE_Weak_Bound_Ptr &r) const -{ - // A weak pointer must behave as though it is automatically set to null - // if the underlying object has been deleted. - if (COUNTER::object_was_deleted (this->counter_)) - return r.ptr_ == 0; - - return this->ptr_ == r.ptr_; -} - -template inline bool -ACE_Weak_Bound_Ptr::operator== (const ACE_Strong_Bound_Ptr &r) const -{ - // A weak pointer must behave as though it is automatically set to null - // if the underlying object has been deleted. - if (COUNTER::object_was_deleted (this->counter_)) - return r.ptr_ == 0; - - return this->ptr_ == r.ptr_; -} - -template inline bool -ACE_Weak_Bound_Ptr::operator== (X *p) const -{ - // A weak pointer must behave as though it is automatically set to null - // if the underlying object has been deleted. - if (COUNTER::object_was_deleted (this->counter_)) - return p == 0; - - return this->ptr_ == p; -} - -template inline bool -ACE_Weak_Bound_Ptr::operator!= (const ACE_Weak_Bound_Ptr &r) const -{ - // A weak pointer must behave as though it is automatically set to null - // if the underlying object has been deleted. - if (COUNTER::object_was_deleted (this->counter_)) - return r.ptr_ != 0; - - return this->ptr_ != r.ptr_; -} - -template inline bool -ACE_Weak_Bound_Ptr::operator!= (const ACE_Strong_Bound_Ptr &r) const -{ - // A weak pointer must behave as though it is automatically set to null - // if the underlying object has been deleted. - if (COUNTER::object_was_deleted (this->counter_)) - return r.ptr_ != 0; - - return this->ptr_ != r.ptr_; -} - -template inline bool -ACE_Weak_Bound_Ptr::operator!= (X *p) const -{ - // A weak pointer must behave as though it is automatically set to null - // if the underlying object has been deleted. - if (COUNTER::object_was_deleted (this->counter_)) - return p != 0; - - return this->ptr_ != p; -} - -template inline ACE_Strong_Bound_Ptr -ACE_Weak_Bound_Ptr::operator-> (void) const -{ - return ACE_Strong_Bound_Ptr (*this); -} - -template inline ACE_Strong_Bound_Ptr -ACE_Weak_Bound_Ptr::strong (void) const -{ - return ACE_Strong_Bound_Ptr (*this); -} - -template inline X* -ACE_Weak_Bound_Ptr::unsafe_get (void) const -{ - // We do not check if the object has been deleted, since this operation - // is defined to be unsafe! - return this->ptr_; -} - -template inline int -ACE_Weak_Bound_Ptr::null (void) const -{ - // A weak pointer must behave as though it is automatically set to null - // if the underlying object has been deleted. - if (COUNTER::object_was_deleted (this->counter_)) - return 1; - - return this->ptr_ == 0; -} - -template inline void -ACE_Weak_Bound_Ptr::reset (X *p) -{ - COUNTER *old_counter = this->counter_; - this->counter_ = COUNTER::create_weak (); - this->ptr_ = p; - COUNTER::detach_weak (old_counter); -} - -template inline long -ACE_Weak_Bound_Ptr::add_ref () -{ - return COUNTER::attach_strong (counter_); -} - -template inline long -ACE_Weak_Bound_Ptr::remove_ref () -{ - long new_obj_ref_count = COUNTER::detach_strong (counter_); - if (new_obj_ref_count == 0) - { - delete this->ptr_; - this->ptr_ = 0; - } - return new_obj_ref_count; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/CDR_Base.cpp b/ACE/ace/CDR_Base.cpp deleted file mode 100644 index eb6f0bb0514..00000000000 --- a/ACE/ace/CDR_Base.cpp +++ /dev/null @@ -1,799 +0,0 @@ -#include "ace/CDR_Base.h" - -#if !defined (__ACE_INLINE__) -# include "ace/CDR_Base.inl" -#endif /* ! __ACE_INLINE__ */ - -#include "ace/Message_Block.h" -#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) -static const ACE_INT16 max_eleven_bit = 0x3ff; -static const ACE_INT16 max_fifteen_bit = 0x3fff; -#endif /* NONNATIVE_LONGDOUBLE */ - -// -// See comments in CDR_Base.inl about optimization cases for swap_XX_array. -// - -void -ACE_CDR::swap_2_array (char const * orig, char* target, size_t n) -{ - // ACE_ASSERT(n > 0); The caller checks that n > 0 - - // We pretend that AMD64/GNU G++ systems have a Pentium CPU to - // take advantage of the inline assembly implementation. - - // Later, we try to read in 32 or 64 bit chunks, - // so make sure we don't do that for unaligned addresses. -#if ACE_SIZEOF_LONG == 8 && \ - !((defined(__amd64__) || defined (__x86_64__)) && defined(__GNUG__)) - char const * const o8 = ACE_ptr_align_binary (orig, 8); - while (orig < o8 && n > 0) - { - ACE_CDR::swap_2 (orig, target); - orig += 2; - target += 2; - --n; - } -#else - char const * const o4 = ACE_ptr_align_binary (orig, 4); - // this is an _if_, not a _while_. The mistmatch can only be by 2. - if (orig != o4) - { - ACE_CDR::swap_2 (orig, target); - orig += 2; - target += 2; - --n; - } -#endif - if (n == 0) - return; - - // - // Loop unrolling. Here be dragons. - // - - // (n & (~3)) is the greatest multiple of 4 not bigger than n. - // In the while loop ahead, orig will move over the array by 8 byte - // increments (4 elements of 2 bytes). - // end marks our barrier for not falling outside. - char const * const end = orig + 2 * (n & (~3)); - - // See if we're aligned for writting in 64 or 32 bit chunks... -#if ACE_SIZEOF_LONG == 8 && \ - !((defined(__amd64__) || defined (__x86_64__)) && defined(__GNUG__)) - if (target == ACE_ptr_align_binary (target, 8)) -#else - if (target == ACE_ptr_align_binary (target, 4)) -#endif - { - while (orig < end) - { -#if defined (ACE_HAS_INTEL_ASSEMBLY) - unsigned int a = - * reinterpret_cast (orig); - unsigned int b = - * reinterpret_cast (orig + 4); - asm ( "bswap %1" : "=r" (a) : "0" (a) ); - asm ( "bswap %1" : "=r" (b) : "0" (b) ); - asm ( "rol $16, %1" : "=r" (a) : "0" (a) ); - asm ( "rol $16, %1" : "=r" (b) : "0" (b) ); - * reinterpret_cast (target) = a; - * reinterpret_cast (target + 4) = b; -#elif defined(ACE_HAS_PENTIUM) \ - && (defined(_MSC_VER) || defined(__BORLANDC__)) \ - && !defined(ACE_LACKS_INLINE_ASSEMBLY) - __asm mov ecx, orig; - __asm mov edx, target; - __asm mov eax, [ecx]; - __asm mov ebx, 4[ecx]; - __asm bswap eax; - __asm bswap ebx; - __asm rol eax, 16; - __asm rol ebx, 16; - __asm mov [edx], eax; - __asm mov 4[edx], ebx; -#elif ACE_SIZEOF_LONG == 8 - // 64 bit architecture. - register unsigned long a = - * reinterpret_cast (orig); - - register unsigned long a1 = (a & 0x00ff00ff00ff00ffUL) << 8; - register unsigned long a2 = (a & 0xff00ff00ff00ff00UL) >> 8; - - a = (a1 | a2); - - * reinterpret_cast (target) = a; -#else - register ACE_UINT32 a = - * reinterpret_cast (orig); - register ACE_UINT32 b = - * reinterpret_cast (orig + 4); - - register ACE_UINT32 a1 = (a & 0x00ff00ffU) << 8; - register ACE_UINT32 b1 = (b & 0x00ff00ffU) << 8; - register ACE_UINT32 a2 = (a & 0xff00ff00U) >> 8; - register ACE_UINT32 b2 = (b & 0xff00ff00U) >> 8; - - a = (a1 | a2); - b = (b1 | b2); - - * reinterpret_cast (target) = a; - * reinterpret_cast (target + 4) = b; -#endif - orig += 8; - target += 8; - } - } - else - { - // We're out of luck. We have to write in 2 byte chunks. - while (orig < end) - { -#if defined (ACE_HAS_INTEL_ASSEMBLY) - unsigned int a = - * reinterpret_cast (orig); - unsigned int b = - * reinterpret_cast (orig + 4); - asm ( "bswap %1" : "=r" (a) : "0" (a) ); - asm ( "bswap %1" : "=r" (b) : "0" (b) ); - // We're little endian. - * reinterpret_cast (target + 2) - = (unsigned short) (a & 0xffff); - * reinterpret_cast (target + 6) - = (unsigned short) (b & 0xffff); - asm ( "shrl $16, %1" : "=r" (a) : "0" (a) ); - asm ( "shrl $16, %1" : "=r" (b) : "0" (b) ); - * reinterpret_cast (target + 0) - = (unsigned short) (a & 0xffff); - * reinterpret_cast (target + 4) - = (unsigned short) (b & 0xffff); -#elif defined (ACE_HAS_PENTIUM) \ - && (defined (_MSC_VER) || defined (__BORLANDC__)) \ - && !defined (ACE_LACKS_INLINE_ASSEMBLY) - __asm mov ecx, orig; - __asm mov edx, target; - __asm mov eax, [ecx]; - __asm mov ebx, 4[ecx]; - __asm bswap eax; - __asm bswap ebx; - // We're little endian. - __asm mov 2[edx], ax; - __asm mov 6[edx], bx; - __asm shr eax, 16; - __asm shr ebx, 16; - __asm mov 0[edx], ax; - __asm mov 4[edx], bx; -#elif ACE_SIZEOF_LONG == 8 - // 64 bit architecture. - register unsigned long a = - * reinterpret_cast (orig); - - register unsigned long a1 = (a & 0x00ff00ff00ff00ffUL) << 8; - register unsigned long a2 = (a & 0xff00ff00ff00ff00UL) >> 8; - - a = (a1 | a2); - - ACE_UINT16 b1 = static_cast (a >> 48); - ACE_UINT16 b2 = static_cast ((a >> 32) & 0xffff); - ACE_UINT16 b3 = static_cast ((a >> 16) & 0xffff); - ACE_UINT16 b4 = static_cast (a & 0xffff); - -#if defined(ACE_LITTLE_ENDIAN) - * reinterpret_cast (target) = b4; - * reinterpret_cast (target + 2) = b3; - * reinterpret_cast (target + 4) = b2; - * reinterpret_cast (target + 6) = b1; -#else - * reinterpret_cast (target) = b1; - * reinterpret_cast (target + 2) = b2; - * reinterpret_cast (target + 4) = b3; - * reinterpret_cast (target + 6) = b4; -#endif -#else - register ACE_UINT32 a = - * reinterpret_cast (orig); - register ACE_UINT32 b = - * reinterpret_cast (orig + 4); - - register ACE_UINT32 a1 = (a & 0x00ff00ff) << 8; - register ACE_UINT32 b1 = (b & 0x00ff00ff) << 8; - register ACE_UINT32 a2 = (a & 0xff00ff00) >> 8; - register ACE_UINT32 b2 = (b & 0xff00ff00) >> 8; - - a = (a1 | a2); - b = (b1 | b2); - - ACE_UINT32 c1 = static_cast (a >> 16); - ACE_UINT32 c2 = static_cast (a & 0xffff); - ACE_UINT32 c3 = static_cast (b >> 16); - ACE_UINT32 c4 = static_cast (b & 0xffff); - -#if defined(ACE_LITTLE_ENDIAN) - * reinterpret_cast (target) = c2; - * reinterpret_cast (target + 2) = c1; - * reinterpret_cast (target + 4) = c4; - * reinterpret_cast (target + 6) = c3; -#else - * reinterpret_cast (target) = c1; - * reinterpret_cast (target + 2) = c2; - * reinterpret_cast (target + 4) = c3; - * reinterpret_cast (target + 6) = c4; -#endif -#endif - - orig += 8; - target += 8; - } - } - - // (n & 3) == (n % 4). - switch (n&3) { - case 3: - ACE_CDR::swap_2 (orig, target); - orig += 2; - target += 2; - case 2: - ACE_CDR::swap_2 (orig, target); - orig += 2; - target += 2; - case 1: - ACE_CDR::swap_2 (orig, target); - } -} - -void -ACE_CDR::swap_4_array (char const * orig, char* target, size_t n) -{ - // ACE_ASSERT (n > 0); The caller checks that n > 0 - -#if ACE_SIZEOF_LONG == 8 - // Later, we read from *orig in 64 bit chunks, - // so make sure we don't generate unaligned readings. - char const * const o8 = ACE_ptr_align_binary (orig, 8); - // The mismatch can only be by 4. - if (orig != o8) - { - ACE_CDR::swap_4 (orig, target); - orig += 4; - target += 4; - --n; - } -#endif /* ACE_SIZEOF_LONG == 8 */ - - if (n == 0) - return; - - // - // Loop unrolling. Here be dragons. - // - - // (n & (~3)) is the greatest multiple of 4 not bigger than n. - // In the while loop, orig will move over the array by 16 byte - // increments (4 elements of 4 bytes). - // ends marks our barrier for not falling outside. - char const * const end = orig + 4 * (n & (~3)); - -#if ACE_SIZEOF_LONG == 8 - // 64 bits architecture. - // See if we can write in 8 byte chunks. - if (target == ACE_ptr_align_binary (target, 8)) - { - while (orig < end) - { - register unsigned long a = - * reinterpret_cast (orig); - register unsigned long b = - * reinterpret_cast (orig + 8); - -#if defined(ACE_HAS_INTEL_ASSEMBLY) - asm ("bswapq %1" : "=r" (a) : "0" (a)); - asm ("bswapq %1" : "=r" (b) : "0" (b)); - asm ("rol $32, %1" : "=r" (a) : "0" (a)); - asm ("rol $32, %1" : "=r" (b) : "0" (b)); -#else - register unsigned long a84 = (a & 0x000000ff000000ffL) << 24; - register unsigned long b84 = (b & 0x000000ff000000ffL) << 24; - register unsigned long a73 = (a & 0x0000ff000000ff00L) << 8; - register unsigned long b73 = (b & 0x0000ff000000ff00L) << 8; - register unsigned long a62 = (a & 0x00ff000000ff0000L) >> 8; - register unsigned long b62 = (b & 0x00ff000000ff0000L) >> 8; - register unsigned long a51 = (a & 0xff000000ff000000L) >> 24; - register unsigned long b51 = (b & 0xff000000ff000000L) >> 24; - - a = (a84 | a73 | a62 | a51); - b = (b84 | b73 | b62 | b51); -#endif - - * reinterpret_cast (target) = a; - * reinterpret_cast (target + 8) = b; - - orig += 16; - target += 16; - } - } - else - { - // We are out of luck, we have to write in 4 byte chunks. - while (orig < end) - { - register unsigned long a = - * reinterpret_cast (orig); - register unsigned long b = - * reinterpret_cast (orig + 8); - -#if defined(ACE_HAS_INTEL_ASSEMBLY) - asm ("bswapq %1" : "=r" (a) : "0" (a)); - asm ("bswapq %1" : "=r" (b) : "0" (b)); - asm ("rol $32, %1" : "=r" (a) : "0" (a)); - asm ("rol $32, %1" : "=r" (b) : "0" (b)); -#else - register unsigned long a84 = (a & 0x000000ff000000ffL) << 24; - register unsigned long b84 = (b & 0x000000ff000000ffL) << 24; - register unsigned long a73 = (a & 0x0000ff000000ff00L) << 8; - register unsigned long b73 = (b & 0x0000ff000000ff00L) << 8; - register unsigned long a62 = (a & 0x00ff000000ff0000L) >> 8; - register unsigned long b62 = (b & 0x00ff000000ff0000L) >> 8; - register unsigned long a51 = (a & 0xff000000ff000000L) >> 24; - register unsigned long b51 = (b & 0xff000000ff000000L) >> 24; - - a = (a84 | a73 | a62 | a51); - b = (b84 | b73 | b62 | b51); -#endif - - ACE_UINT32 c1 = static_cast (a >> 32); - ACE_UINT32 c2 = static_cast (a & 0xffffffff); - ACE_UINT32 c3 = static_cast (b >> 32); - ACE_UINT32 c4 = static_cast (b & 0xffffffff); - -#if defined (ACE_LITTLE_ENDIAN) - * reinterpret_cast (target + 0) = c2; - * reinterpret_cast (target + 4) = c1; - * reinterpret_cast (target + 8) = c4; - * reinterpret_cast (target + 12) = c3; -#else - * reinterpret_cast (target + 0) = c1; - * reinterpret_cast (target + 4) = c2; - * reinterpret_cast (target + 8) = c3; - * reinterpret_cast (target + 12) = c4; -#endif - orig += 16; - target += 16; - } - } - -#else /* ACE_SIZEOF_LONG != 8 */ - - while (orig < end) - { -#if defined (ACE_HAS_PENTIUM) && defined (__GNUG__) - register unsigned int a = - *reinterpret_cast (orig); - register unsigned int b = - *reinterpret_cast (orig + 4); - register unsigned int c = - *reinterpret_cast (orig + 8); - register unsigned int d = - *reinterpret_cast (orig + 12); - - asm ("bswap %1" : "=r" (a) : "0" (a)); - asm ("bswap %1" : "=r" (b) : "0" (b)); - asm ("bswap %1" : "=r" (c) : "0" (c)); - asm ("bswap %1" : "=r" (d) : "0" (d)); - - *reinterpret_cast (target) = a; - *reinterpret_cast (target + 4) = b; - *reinterpret_cast (target + 8) = c; - *reinterpret_cast (target + 12) = d; -#elif defined (ACE_HAS_PENTIUM) \ - && (defined (_MSC_VER) || defined (__BORLANDC__)) \ - && !defined (ACE_LACKS_INLINE_ASSEMBLY) - __asm mov eax, orig - __asm mov esi, target - __asm mov edx, [eax] - __asm mov ecx, 4[eax] - __asm mov ebx, 8[eax] - __asm mov eax, 12[eax] - __asm bswap edx - __asm bswap ecx - __asm bswap ebx - __asm bswap eax - __asm mov [esi], edx - __asm mov 4[esi], ecx - __asm mov 8[esi], ebx - __asm mov 12[esi], eax -#else - register ACE_UINT32 a = - * reinterpret_cast (orig); - register ACE_UINT32 b = - * reinterpret_cast (orig + 4); - register ACE_UINT32 c = - * reinterpret_cast (orig + 8); - register ACE_UINT32 d = - * reinterpret_cast (orig + 12); - - // Expect the optimizer reordering this A LOT. - // We leave it this way for clarity. - a = (a << 24) | ((a & 0xff00) << 8) | ((a & 0xff0000) >> 8) | (a >> 24); - b = (b << 24) | ((b & 0xff00) << 8) | ((b & 0xff0000) >> 8) | (b >> 24); - c = (c << 24) | ((c & 0xff00) << 8) | ((c & 0xff0000) >> 8) | (c >> 24); - d = (d << 24) | ((d & 0xff00) << 8) | ((d & 0xff0000) >> 8) | (d >> 24); - - * reinterpret_cast (target) = a; - * reinterpret_cast (target + 4) = b; - * reinterpret_cast (target + 8) = c; - * reinterpret_cast (target + 12) = d; -#endif - - orig += 16; - target += 16; - } - -#endif /* ACE_SIZEOF_LONG == 8 */ - - // (n & 3) == (n % 4). - switch (n & 3) { - case 3: - ACE_CDR::swap_4 (orig, target); - orig += 4; - target += 4; - case 2: - ACE_CDR::swap_4 (orig, target); - orig += 4; - target += 4; - case 1: - ACE_CDR::swap_4 (orig, target); - } -} - -// -// We don't benefit from unrolling in swap_8_array and swap_16_array -// (swap_8 and swap_16 are big enough). -// -void -ACE_CDR::swap_8_array (char const * orig, char* target, size_t n) -{ - // ACE_ASSERT(n > 0); The caller checks that n > 0 - - char const * const end = orig + 8*n; - while (orig < end) - { - swap_8 (orig, target); - orig += 8; - target += 8; - } -} - -void -ACE_CDR::swap_16_array (char const * orig, char* target, size_t n) -{ - // ACE_ASSERT(n > 0); The caller checks that n > 0 - - char const * const end = orig + 16*n; - while (orig < end) - { - swap_16 (orig, target); - orig += 16; - target += 16; - } -} - -void -ACE_CDR::mb_align (ACE_Message_Block *mb) -{ -#if !defined (ACE_CDR_IGNORE_ALIGNMENT) - char * const start = ACE_ptr_align_binary (mb->base (), - ACE_CDR::MAX_ALIGNMENT); -#else - char * const start = mb->base (); -#endif /* ACE_CDR_IGNORE_ALIGNMENT */ - mb->rd_ptr (start); - mb->wr_ptr (start); -} - -int -ACE_CDR::grow (ACE_Message_Block *mb, size_t minsize) -{ - size_t newsize = - ACE_CDR::first_size (minsize + ACE_CDR::MAX_ALIGNMENT); - - if (newsize <= mb->size ()) - return 0; - - ACE_Data_Block *db = - mb->data_block ()->clone_nocopy (0, newsize); - - if (db == 0) - return -1; - - // Do the equivalent of ACE_CDR::mb_align() here to avoid having - // to allocate an ACE_Message_Block on the stack thereby avoiding - // the manipulation of the data blocks reference count - size_t mb_len = mb->length (); - char *start = ACE_ptr_align_binary (db->base (), - ACE_CDR::MAX_ALIGNMENT); - - ACE_OS::memcpy (start, mb->rd_ptr (), mb_len); - mb->data_block (db); - - // Setting the data block on the mb resets the read and write - // pointers back to the beginning. We must set the rd_ptr to the - // aligned start and adjust the write pointer to the end - mb->rd_ptr (start); - mb->wr_ptr (start + mb_len); - - // Remove the DONT_DELETE flags from mb - mb->clr_self_flags (ACE_Message_Block::DONT_DELETE); - - return 0; -} - -size_t -ACE_CDR::total_length (const ACE_Message_Block* begin, - const ACE_Message_Block* end) -{ - size_t l = 0; - // Compute the total size. - for (const ACE_Message_Block *i = begin; - i != end; - i = i->cont ()) - l += i->length (); - return l; -} - -void -ACE_CDR::consolidate (ACE_Message_Block *dst, - const ACE_Message_Block *src) -{ - if (src == 0) - return; - - size_t newsize = - ACE_CDR::first_size (ACE_CDR::total_length (src, 0) - + ACE_CDR::MAX_ALIGNMENT); - dst->size (newsize); - -#if !defined (ACE_CDR_IGNORE_ALIGNMENT) - // We must copy the contents of into the new buffer, but - // respecting the alignment. - ptrdiff_t srcalign = - ptrdiff_t(src->rd_ptr ()) % ACE_CDR::MAX_ALIGNMENT; - ptrdiff_t dstalign = - ptrdiff_t(dst->rd_ptr ()) % ACE_CDR::MAX_ALIGNMENT; - ptrdiff_t offset = srcalign - dstalign; - if (offset < 0) - offset += ACE_CDR::MAX_ALIGNMENT; - dst->rd_ptr (static_cast (offset)); - dst->wr_ptr (dst->rd_ptr ()); -#endif /* ACE_CDR_IGNORE_ALIGNMENT */ - - for (const ACE_Message_Block* i = src; - i != 0; - i = i->cont ()) - { - // If the destination and source are the same, do not - // attempt to copy the data. Just update the write pointer. - if (dst->wr_ptr () != i->rd_ptr ()) - dst->copy (i->rd_ptr (), i->length ()); - else - dst->wr_ptr (i->length ()); - } -} - -#if defined (NONNATIVE_LONGLONG) -bool -ACE_CDR::LongLong::operator== (const ACE_CDR::LongLong &rhs) const -{ - return this->h == rhs.h && this->l == rhs.l; -} - -bool -ACE_CDR::LongLong::operator!= (const ACE_CDR::LongLong &rhs) const -{ - return this->l != rhs.l || this->h != rhs.h; -} - -#endif /* NONNATIVE_LONGLONG */ - -#if defined (NONNATIVE_LONGDOUBLE) -ACE_CDR::LongDouble& -ACE_CDR::LongDouble::assign (const ACE_CDR::LongDouble::NativeImpl& rhs) -{ - ACE_OS::memset (this->ld, 0, sizeof (this->ld)); - - if (sizeof (rhs) == 8) - { -#if defined (ACE_LITTLE_ENDIAN) - static const size_t byte_zero = 1; - static const size_t byte_one = 0; - char rhs_ptr[16]; - ACE_CDR::swap_8 (reinterpret_cast (&rhs), rhs_ptr); -#else - static const size_t byte_zero = 0; - static const size_t byte_one = 1; - const char* rhs_ptr = reinterpret_cast (&rhs); -#endif - ACE_INT16 sign = static_cast ( - static_cast (rhs_ptr[0])) & 0x8000; - ACE_INT16 exponent = ((rhs_ptr[0] & 0x7f) << 4) | - ((rhs_ptr[1] >> 4) & 0xf); - const char* exp_ptr = reinterpret_cast (&exponent); - - // Infinity and NaN have an exponent of 0x7ff in 64-bit IEEE - if (exponent == 0x7ff) - { - exponent = 0x7fff; - } - else - { - exponent = (exponent - max_eleven_bit) + max_fifteen_bit; - } - exponent |= sign; - - // Store the sign bit and exponent - this->ld[0] = exp_ptr[byte_zero]; - this->ld[1] = exp_ptr[byte_one]; - - // Store the mantissa. In an 8 byte double, it is split by - // 4 bits (because of the 12 bits for sign and exponent), so - // we have to shift and or the rhs to get the right bytes. - size_t li = 2; - bool direction = true; - for (size_t ri = 1; ri < sizeof (rhs);) - { - if (direction) - { - this->ld[li] |= ((rhs_ptr[ri] << 4) & 0xf0); - direction = false; - ++ri; - } - else - { - this->ld[li] |= ((rhs_ptr[ri] >> 4) & 0xf); - direction = true; - ++li; - } - } -#if defined (ACE_LITTLE_ENDIAN) - ACE_OS::memcpy (rhs_ptr, this->ld, sizeof (this->ld)); - ACE_CDR::swap_16 (rhs_ptr, this->ld); -#endif - } - else - { - ACE_OS::memcpy(this->ld, - reinterpret_cast (&rhs), sizeof (rhs)); - } - return *this; -} - -ACE_CDR::LongDouble& -ACE_CDR::LongDouble::assign (const ACE_CDR::LongDouble& rhs) -{ - if (this != &rhs) - *this = rhs; - return *this; -} - -bool -ACE_CDR::LongDouble::operator== (const ACE_CDR::LongDouble &rhs) const -{ - return ACE_OS::memcmp (this->ld, rhs.ld, 16) == 0; -} - -bool -ACE_CDR::LongDouble::operator!= (const ACE_CDR::LongDouble &rhs) const -{ - return ACE_OS::memcmp (this->ld, rhs.ld, 16) != 0; -} - -ACE_CDR::LongDouble::operator ACE_CDR::LongDouble::NativeImpl () const -{ - ACE_CDR::LongDouble::NativeImpl ret = 0.0; - char* lhs_ptr = reinterpret_cast (&ret); - - if (sizeof (ret) == 8) - { -#if defined (ACE_LITTLE_ENDIAN) - static const size_t byte_zero = 1; - static const size_t byte_one = 0; - char copy[16]; - ACE_CDR::swap_16 (this->ld, copy); -#else - static const size_t byte_zero = 0; - static const size_t byte_one = 1; - const char* copy = this->ld; -#endif - ACE_INT16 exponent = 0; - char* exp_ptr = reinterpret_cast (&exponent); - exp_ptr[byte_zero] = copy[0]; - exp_ptr[byte_one] = copy[1]; - - ACE_INT16 sign = (exponent & 0x8000); - exponent &= 0x7fff; - - // Infinity and NaN have an exponent of 0x7fff in 128-bit IEEE - if (exponent == 0x7fff) - { - exponent = 0x7ff; - } - else - { - exponent = (exponent - max_fifteen_bit) + max_eleven_bit; - } - exponent = (exponent << 4) | sign; - - // Store the sign and exponent - lhs_ptr[0] = exp_ptr[byte_zero]; - lhs_ptr[1] = exp_ptr[byte_one]; - - // Store the mantissa. In an 8 byte double, it is split by - // 4 bits (because of the 12 bits for sign and exponent), so - // we have to shift and or the rhs to get the right bytes. - size_t li = 1; - bool direction = true; - for (size_t ri = 2; li < sizeof (ret);) { - if (direction) - { - lhs_ptr[li] |= ((copy[ri] >> 4) & 0xf); - direction = false; - ++li; - } - else - { - lhs_ptr[li] |= ((copy[ri] & 0xf) << 4); - direction = true; - ++ri; - } - } - -#if defined (ACE_LITTLE_ENDIAN) - ACE_CDR::swap_8 (lhs_ptr, lhs_ptr); -#endif - } - else - { - ACE_OS::memcpy(lhs_ptr, this->ld, sizeof (ret)); - } - - // This bit of code is unnecessary. However, this code is - // necessary to work around a bug in the gcc 4.1.1 optimizer. - ACE_CDR::LongDouble tmp; - tmp.assign (ret); - - return ret; -} -#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 deleted file mode 100644 index afd278a5e59..00000000000 --- a/ACE/ace/CDR_Base.h +++ /dev/null @@ -1,353 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file CDR_Base.h - * - * $Id$ - * - * ACE Common Data Representation (CDR) basic types. - * - * 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 being - * the only known exception. - * - * - * @author TAO version by - * @author Aniruddha Gokhale - * @author Carlos O'Ryan - * @author ACE version by - * @author Jeff Parsons - * @author Istvan Buki - */ -//============================================================================= - - -#ifndef ACE_CDR_BASE_H -#define ACE_CDR_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/Basic_Types.h" -#include "ace/Default_Constants.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Message_Block; - -/** - * @class ACE_CDR - * - * @brief Keep constants and some routines common to both Output and - * Input CDR streams. - */ -class ACE_Export ACE_CDR -{ -public: - // = Constants defined by the CDR protocol. - // By defining as many of these constants as possible as enums we - // ensure they get inlined and avoid pointless static memory - // allocations. - - enum - { - // Note that some of these get reused as part of the standard - // binary format: unsigned is the same size as its signed cousin, - // float is LONG_SIZE, and double is LONGLONG_SIZE. - - OCTET_SIZE = 1, - SHORT_SIZE = 2, - LONG_SIZE = 4, - LONGLONG_SIZE = 8, - LONGDOUBLE_SIZE = 16, - - OCTET_ALIGN = 1, - SHORT_ALIGN = 2, - LONG_ALIGN = 4, - LONGLONG_ALIGN = 8, - /// @note the CORBA LongDouble alignment requirements do not - /// match its size... - LONGDOUBLE_ALIGN = 8, - - /// Maximal CDR 1.1 alignment: "quad precision" FP (i.e. "CDR::Long - /// double", size as above). - MAX_ALIGNMENT = 8, - - /// The default buffer size. - /** - * @todo We want to add options to control this - * default value, so this constant should be read as the default - * default value ;-) - */ - DEFAULT_BUFSIZE = ACE_DEFAULT_CDR_BUFSIZE, - - /// The buffer size grows exponentially until it reaches this size; - /// afterwards it grows linearly using the next constant - EXP_GROWTH_MAX = ACE_DEFAULT_CDR_EXP_GROWTH_MAX, - - /// Once exponential growth is ruled out the buffer size increases - /// in chunks of this size, note that this constants have the same - /// value right now, but it does not need to be so. - LINEAR_GROWTH_CHUNK = ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK - }; - - /** - * Do byte swapping for each basic IDL type size. There exist only - * routines to put byte, halfword (2 bytes), word (4 bytes), - * doubleword (8 bytes) and quadword (16 byte); because those are - * the IDL basic type sizes. - */ - static void swap_2 (char const *orig, char *target); - static void swap_4 (char const *orig, char *target); - static void swap_8 (char const *orig, char *target); - static void swap_16 (char const *orig, char *target); - static void swap_2_array (char const *orig, - char *target, - size_t length); - static void swap_4_array (char const *orig, - char *target, - size_t length); - static void swap_8_array (char const *orig, - char *target, - size_t length); - static void swap_16_array (char const *orig, - char *target, - size_t length); - - /// Align the message block to ACE_CDR::MAX_ALIGNMENT, - /// set by the CORBA spec at 8 bytes. - static void mb_align (ACE_Message_Block *mb); - - /** - * Compute the size of the smallest buffer that can contain at least - * @a minsize bytes. - * To understand how a "best fit" is computed look at the - * algorithm in the code. - * Basically the buffers grow exponentially, up to a certain point, - * then the buffer size grows linearly. - * The advantage of this algorithm is that is rapidly grows to a - * large value, but does not explode at the end. - */ - static size_t first_size (size_t minsize); - - /// Compute not the smallest, but the second smallest buffer that - /// will fir @a minsize bytes. - static size_t next_size (size_t minsize); - - /** - * Increase the capacity of mb to contain at least @a minsize bytes. - * If @a minsize is zero the size is increased by an amount at least - * large enough to contain any of the basic IDL types. - * @retval -1 Failure - * @retval 0 Success. - */ - 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, - const ACE_Message_Block *src); - - static size_t total_length (const ACE_Message_Block *begin, - const ACE_Message_Block *end); - - /** - * @name Basic OMG IDL Types - * - * These types are for use in the CDR classes. The cleanest way to - * avoid complaints from all compilers is to define them all. - */ - //@{ - typedef bool Boolean; - typedef unsigned char Octet; - typedef char Char; - typedef ACE_WCHAR_T WChar; - typedef ACE_INT16 Short; - typedef ACE_UINT16 UShort; - typedef ACE_INT32 Long; - typedef ACE_UINT32 ULong; - typedef ACE_UINT64 ULongLong; - -# if (defined (_MSC_VER)) || (defined (__BORLANDC__)) - typedef __int64 LongLong; -# elif ACE_SIZEOF_LONG == 8 && !defined(_CRAYMPP) - typedef long LongLong; -# elif defined(__TANDEM) - typedef long long LongLong; -# elif ACE_SIZEOF_LONG_LONG == 8 && !defined (ACE_LACKS_LONGLONG_T) -# if defined (sun) && !defined (ACE_LACKS_U_LONGLONG_T) - // sun #defines u_longlong_t, maybe other platforms do also. - // Use it, at least with g++, so that its -pedantic doesn't - // 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 */ -# define NONNATIVE_LONGLONG - struct ACE_Export LongLong - { -# if defined (ACE_BIG_ENDIAN) - ACE_CDR::Long h; - ACE_CDR::Long l; -# else - ACE_CDR::Long l; - ACE_CDR::Long h; -# endif /* ! ACE_BIG_ENDIAN */ - - /** - * @name Overloaded Relation Operators. - * - * The canonical comparison operators. - */ - //@{ - bool operator== (const LongLong &rhs) const; - bool operator!= (const LongLong &rhs) const; - //@} - }; -# endif /* no native 64 bit integer type */ - -# if defined (NONNATIVE_LONGLONG) -# define ACE_CDR_LONGLONG_INITIALIZER {0,0} -# else -# define ACE_CDR_LONGLONG_INITIALIZER 0 -# endif /* NONNATIVE_LONGLONG */ - -# if ACE_SIZEOF_FLOAT == 4 - typedef float Float; -# else /* ACE_SIZEOF_FLOAT != 4 */ - struct Float - { -# if ACE_SIZEOF_INT == 4 - // Use unsigned int to get word alignment. - unsigned int f; -# 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 */ - -# if ACE_SIZEOF_DOUBLE == 8 - typedef double Double; -# else /* ACE_SIZEOF_DOUBLE != 8 */ - struct Double - { -# if ACE_SIZEOF_LONG == 8 - // Use u long to get word alignment. - unsigned long f; -# else /* ACE_SIZEOF_INT != 8 */ - // Applications will probably have trouble with this. - char f[8]; -# endif /* ACE_SIZEOF_INT != 8 */ - }; -# endif /* ACE_SIZEOF_DOUBLE != 8 */ - - // 94-9-32 Appendix A defines a 128 bit floating point "long - // double" data type, with greatly extended precision and four - // more bits of exponent (compared to "double"). This is an IDL - // extension, not yet standard. - -# if ACE_SIZEOF_LONG_DOUBLE == 16 - typedef long double LongDouble; -# define ACE_CDR_LONG_DOUBLE_INITIALIZER 0 -# define ACE_CDR_LONG_DOUBLE_ASSIGNMENT(LHS, RHS) LHS = RHS -# else -# define NONNATIVE_LONGDOUBLE -# define ACE_CDR_LONG_DOUBLE_INITIALIZER {{0}} -# define ACE_CDR_LONG_DOUBLE_ASSIGNMENT(LHS, RHS) LHS.assign (RHS) - struct ACE_Export LongDouble - { - // VxWorks' compiler (gcc 2.96) gets confused by the operator long - // double, so we avoid using long double as the NativeImpl. - // Linux's x86 long double format (12 or 16 bytes) is incompatible - // with Windows, Solaris, AIX, MacOS X and HP-UX (and probably others) - // long double format (8 or 16 bytes). If you need 32-bit Linux to - // inter-operate with 64-bit Linux you will want to define this - // macro to 0 so that "long double" is used. Otherwise, do not define - // this macro. -# if defined (ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE) && \ - (ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE == 1) - typedef double NativeImpl; -# else - typedef long double NativeImpl; -# endif /* ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE==1 */ - - char ld[16]; - - LongDouble& assign (const NativeImpl& rhs); - LongDouble& assign (const LongDouble& rhs); - - bool operator== (const LongDouble &rhs) const; - bool operator!= (const LongDouble &rhs) const; - - LongDouble& operator*= (const NativeImpl rhs) { - return this->assign (static_cast (*this) * rhs); - } - LongDouble& operator/= (const NativeImpl rhs) { - return this->assign (static_cast (*this) / rhs); - } - LongDouble& operator+= (const NativeImpl rhs) { - return this->assign (static_cast (*this) + rhs); - } - LongDouble& operator-= (const NativeImpl rhs) { - return this->assign (static_cast (*this) - rhs); - } - LongDouble& operator++ () { - return this->assign (static_cast (*this) + 1); - } - LongDouble& operator-- () { - return this->assign (static_cast (*this) - 1); - } - LongDouble operator++ (int) { - LongDouble ldv = *this; - this->assign (static_cast (*this) + 1); - return ldv; - } - LongDouble operator-- (int) { - LongDouble ldv = *this; - this->assign (static_cast (*this) - 1); - return ldv; - } - - operator NativeImpl () const; - }; -# endif /* ACE_SIZEOF_LONG_DOUBLE != 16 */ - - //@} - -#if !defined (ACE_CDR_GIOP_MAJOR_VERSION) -# define ACE_CDR_GIOP_MAJOR_VERSION 1 -#endif /*ACE_CDR_GIOP_MAJOR_VERSION */ - -#if !defined (ACE_CDR_GIOP_MINOR_VERSION) -# define ACE_CDR_GIOP_MINOR_VERSION 2 -#endif /* ACE_CDR_GIOP_MINOR_VERSION */ -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -# include "ace/CDR_Base.inl" -#endif /* __ACE_INLINE__ */ - - -#include /**/ "ace/post.h" - -#endif /* ACE_CDR_BASE_H */ diff --git a/ACE/ace/CDR_Base.inl b/ACE/ace/CDR_Base.inl deleted file mode 100644 index b84470af87f..00000000000 --- a/ACE/ace/CDR_Base.inl +++ /dev/null @@ -1,255 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#if defined (ACE_HAS_INTRINSIC_BYTESWAP) -// Take advantage of MSVC++ byte swapping compiler intrinsics (found -// in ). -# pragma intrinsic (_byteswap_ushort, _byteswap_ulong, _byteswap_uint64) -#endif /* ACE_HAS_INTRINSIC_BYTESWAP */ - -#if defined (ACE_HAS_BSWAP_16) || defined (ACE_HAS_BSWAP_32) || defined (ACE_HAS_BSWAP_64) -# include "ace/os_include/os_byteswap.h" -#endif - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// -// The ACE_CDR::swap_X and ACE_CDR::swap_X_array routines are broken -// in 5 cases for optimization: -// -// * MSVC++ 7.1 or better -// => Compiler intrinsics -// -// * AMD64 CPU + gnu g++ -// => gcc amd64 inline assembly. -// -// * x86 Pentium CPU + gnu g++ -// (ACE_HAS_PENTIUM && __GNUG__) -// => gcc x86 inline assembly. -// -// * x86 Pentium CPU and (_MSC_VER) or BORLAND C++) -// (ACE_HAS_PENTIUM && ( _MSC_VER || __BORLANDC__ ) -// => MSC x86 inline assembly. -// -// * 64 bit architecture -// (ACE_SIZEOF_LONG == 8) -// => shift/masks using 64bit words. -// -// * default -// (none of the above) -// => shift/masks using 32bit words. -// -// -// Some things you could find useful to know if you intend to mess -// with this optimizations for swaps: -// -// * MSVC++ don't assume register values are conserved between -// statements. So you can clobber any register you want, -// whenever you want (well not *anyone* really, see manual). -// The MSVC++ optimizer will try to pick different registers -// for the C++ statements sorrounding your asm block, and if -// it's not possible will use the stack. -// -// * If you clobber registers with asm statements in gcc, you -// better do it in an asm-only function, or save/restore them -// before/after in the stack. If not, sorrounding C statements -// could end using the same registers and big-badda-bum (been -// there, done that...). The big-badda-bum could happen *even -// if you specify the clobbered register in your asm's*. -// Even better, use gcc asm syntax for detecting the register -// asigned to a certain variable so you don't have to clobber any -// register directly. -// - -ACE_INLINE void -ACE_CDR::swap_2 (const char *orig, char* target) -{ -#if defined (ACE_HAS_INTRINSIC_BYTESWAP) - // Take advantage of MSVC++ compiler intrinsic byte swapping - // function. - *reinterpret_cast (target) = - _byteswap_ushort (*reinterpret_cast (orig)); -#elif defined (ACE_HAS_BSWAP16) - *reinterpret_cast (target) = - bswap16 (*reinterpret_cast (orig)); -#elif defined (ACE_HAS_BSWAP_16) - *reinterpret_cast (target) = - bswap_16 (*reinterpret_cast (orig)); -#elif defined(ACE_HAS_INTEL_ASSEMBLY) - unsigned short a = - *reinterpret_cast (orig); - asm( "rolw $8, %0" : "=r" (a) : "0" (a) ); - *reinterpret_cast (target) = a; -#elif defined (ACE_HAS_PENTIUM) \ - && (defined(_MSC_VER) || defined(__BORLANDC__)) \ - && !defined(ACE_LACKS_INLINE_ASSEMBLY) - __asm mov ebx, orig; - __asm mov ecx, target; - __asm mov ax, [ebx]; - __asm rol ax, 8; - __asm mov [ecx], ax; -#else - register ACE_UINT16 usrc = * reinterpret_cast (orig); - register ACE_UINT16* udst = reinterpret_cast (target); - *udst = (usrc << 8) | (usrc >> 8); -#endif /* ACE_HAS_PENTIUM */ -} - -ACE_INLINE void -ACE_CDR::swap_4 (const char* orig, char* target) -{ -#if defined (ACE_HAS_INTRINSIC_BYTESWAP) - // Take advantage of MSVC++ compiler intrinsic byte swapping - // function. - *reinterpret_cast (target) = - _byteswap_ulong (*reinterpret_cast (orig)); -#elif defined (ACE_HAS_BSWAP32) - *reinterpret_cast (target) = - bswap32 (*reinterpret_cast (orig)); -#elif defined (ACE_HAS_BSWAP_32) - *reinterpret_cast (target) = - bswap_32 (*reinterpret_cast (orig)); -#elif defined(ACE_HAS_INTEL_ASSEMBLY) - // We have ACE_HAS_PENTIUM, so we know the sizeof's. - register unsigned int j = - *reinterpret_cast (orig); - asm ("bswap %1" : "=r" (j) : "0" (j)); - *reinterpret_cast (target) = j; -#elif defined(ACE_HAS_PENTIUM) \ - && (defined(_MSC_VER) || defined(__BORLANDC__)) \ - && !defined(ACE_LACKS_INLINE_ASSEMBLY) - __asm mov ebx, orig; - __asm mov ecx, target; - __asm mov eax, [ebx]; - __asm bswap eax; - __asm mov [ecx], eax; -#else - register ACE_UINT32 x = * reinterpret_cast (orig); - x = (x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24); - * reinterpret_cast (target) = x; -#endif /* ACE_HAS_INTRINSIC_BYTESWAP */ -} - -ACE_INLINE void -ACE_CDR::swap_8 (const char* orig, char* target) -{ -#if defined (ACE_HAS_INTRINSIC_BYTESWAP) - // Take advantage of MSVC++ compiler intrinsic byte swapping - // function. - *reinterpret_cast (target) = - _byteswap_uint64 (*reinterpret_cast (orig)); -#elif defined (ACE_HAS_BSWAP64) - *reinterpret_cast (target) = - bswap64 (*reinterpret_cast (orig)); -#elif defined (ACE_HAS_BSWAP_64) - *reinterpret_cast (target) = - bswap_64 (*reinterpret_cast (orig)); -#elif (defined (__amd64__) || defined (__x86_64__)) && defined(__GNUG__) - register unsigned long x = - * reinterpret_cast (orig); - asm ("bswapq %1" : "=r" (x) : "0" (x)); - *reinterpret_cast (target) = x; -#elif defined(ACE_HAS_PENTIUM) && defined(__GNUG__) - register unsigned int i = - *reinterpret_cast (orig); - register unsigned int j = - *reinterpret_cast (orig + 4); - asm ("bswap %1" : "=r" (i) : "0" (i)); - asm ("bswap %1" : "=r" (j) : "0" (j)); - *reinterpret_cast (target + 4) = i; - *reinterpret_cast (target) = j; -#elif defined(ACE_HAS_PENTIUM) \ - && (defined(_MSC_VER) || defined(__BORLANDC__)) \ - && !defined(ACE_LACKS_INLINE_ASSEMBLY) - __asm mov ecx, orig; - __asm mov edx, target; - __asm mov eax, [ecx]; - __asm mov ebx, 4[ecx]; - __asm bswap eax; - __asm bswap ebx; - __asm mov 4[edx], eax; - __asm mov [edx], ebx; -#elif ACE_SIZEOF_LONG == 8 - // 64 bit architecture. - register unsigned long x = - * reinterpret_cast (orig); - register unsigned long x84 = (x & 0x000000ff000000ffUL) << 24; - register unsigned long x73 = (x & 0x0000ff000000ff00UL) << 8; - register unsigned long x62 = (x & 0x00ff000000ff0000UL) >> 8; - register unsigned long x51 = (x & 0xff000000ff000000UL) >> 24; - x = (x84 | x73 | x62 | x51); - x = (x << 32) | (x >> 32); - *reinterpret_cast (target) = x; -#else - register ACE_UINT32 x = - * reinterpret_cast (orig); - register ACE_UINT32 y = - * reinterpret_cast (orig + 4); - x = (x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24); - y = (y << 24) | ((y & 0xff00) << 8) | ((y & 0xff0000) >> 8) | (y >> 24); - * reinterpret_cast (target) = y; - * reinterpret_cast (target + 4) = x; -#endif /* ACE_HAS_INTRINSIC_BYTESWAP */ -} - -ACE_INLINE void -ACE_CDR::swap_16 (const char* orig, char* target) -{ - swap_8 (orig + 8, target); - swap_8 (orig, target + 8); -} - -ACE_INLINE size_t -ACE_CDR::first_size (size_t minsize) -{ - if (minsize == 0) - return ACE_CDR::DEFAULT_BUFSIZE; - - size_t newsize = ACE_CDR::DEFAULT_BUFSIZE; - while (newsize < minsize) - { - if (newsize < ACE_CDR::EXP_GROWTH_MAX) - { - // We grow exponentially at the beginning, this is fast and - // reduces the number of allocations. - - // Quickly multiply by two using a bit shift. This is - // guaranteed to work since the variable is an unsigned - // integer. - newsize <<= 1; - } - else - { - // but continuing with exponential growth can result in over - // allocations and easily yield an allocation failure. - // So we grow linearly when the buffer is too big. - newsize += ACE_CDR::LINEAR_GROWTH_CHUNK; - } - } - return newsize; -} - -ACE_INLINE size_t -ACE_CDR::next_size (size_t minsize) -{ - size_t newsize = ACE_CDR::first_size (minsize); - - if (newsize == minsize) - { - // If necessary increment the size - if (newsize < ACE_CDR::EXP_GROWTH_MAX) - // Quickly multiply by two using a bit shift. This is - // guaranteed to work since the variable is an unsigned - // integer. - newsize <<= 1; - else - newsize += ACE_CDR::LINEAR_GROWTH_CHUNK; - } - - return newsize; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -// **************************************************************** diff --git a/ACE/ace/CDR_Size.cpp b/ACE/ace/CDR_Size.cpp deleted file mode 100644 index c737db786d9..00000000000 --- a/ACE/ace/CDR_Size.cpp +++ /dev/null @@ -1,244 +0,0 @@ -#include "ace/CDR_Size.h" -#include "ace/SString.h" -#include "ace/OS_Memory.h" - -#if !defined (__ACE_INLINE__) -# include "ace/CDR_Size.inl" -#endif /* ! __ACE_INLINE__ */ - -ACE_RCSID (ace, - CDR_Size, - "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_CDR::Boolean -ACE_SizeCDR::write_wchar (ACE_CDR::WChar x) -{ - // Note: translator framework is not supported. - // - if (ACE_OutputCDR::wchar_maxbytes () == 0) - { - errno = EACCES; - return (this->good_bit_ = false); - } - if (static_cast (major_version_) == 1 - && static_cast (minor_version_) == 2) - { - ACE_CDR::Octet len = - static_cast (ACE_OutputCDR::wchar_maxbytes ()); - if (this->write_1 (&len)) - { - if (ACE_OutputCDR::wchar_maxbytes () == sizeof(ACE_CDR::WChar)) - return - this->write_octet_array ( - reinterpret_cast (&x), - static_cast (len)); - else - if (ACE_OutputCDR::wchar_maxbytes () == 2) - { - ACE_CDR::Short sx = static_cast (x); - return - this->write_octet_array ( - reinterpret_cast (&sx), - static_cast (len)); - } - else - { - ACE_CDR::Octet ox = static_cast (x); - return - this->write_octet_array ( - reinterpret_cast (&ox), - static_cast (len)); - } - } - } - else if (static_cast (minor_version_) == 0) - { // wchar is not allowed with GIOP 1.0. - errno = EINVAL; - return (this->good_bit_ = false); - } - if (ACE_OutputCDR::wchar_maxbytes () == sizeof (ACE_CDR::WChar)) - { - const void *temp = &x; - return this->write_4 (reinterpret_cast (temp)); - } - else if (ACE_OutputCDR::wchar_maxbytes () == 2) - { - ACE_CDR::Short sx = static_cast (x); - return this->write_2 (reinterpret_cast (&sx)); - } - ACE_CDR::Octet ox = static_cast (x); - return this->write_1 (reinterpret_cast (&ox)); -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_string (ACE_CDR::ULong len, - const ACE_CDR::Char *x) -{ - // Note: translator framework is not supported. - // - if (len != 0) - { - if (this->write_ulong (len + 1)) - return this->write_char_array (x, len + 1); - } - else - { - // Be nice to programmers: treat nulls as empty strings not - // errors. (OMG-IDL supports languages that don't use the C/C++ - // notion of null v. empty strings; nulls aren't part of the OMG-IDL - // string model.) - if (this->write_ulong (1)) - return this->write_char (0); - } - - return (this->good_bit_ = false); -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_string (const ACE_CString &x) -{ - // @@ Leave this method in here, not the `.i' file so that we don't - // have to unnecessarily pull in the `ace/SString.h' header. - return this->write_string (static_cast (x.length ()), - x.c_str()); -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_wstring (ACE_CDR::ULong len, - const ACE_CDR::WChar *x) -{ - // Note: translator framework is not supported. - // - if (ACE_OutputCDR::wchar_maxbytes () == 0) - { - errno = EACCES; - return (this->good_bit_ = false); - } - - if (static_cast (this->major_version_) == 1 - && static_cast (this->minor_version_) == 2) - { - if (x != 0) - { - //In GIOP 1.2 the length field contains the number of bytes - //the wstring occupies rather than number of wchars - //Taking sizeof might not be a good way! This is a temporary fix. - if (this->write_ulong (ACE_OutputCDR::wchar_maxbytes () * len)) - return this->write_wchar_array (x, len); - } - else - //In GIOP 1.2 zero length wstrings are legal - return this->write_ulong (0); - } - - else - if (x != 0) - { - if (this->write_ulong (len + 1)) - return this->write_wchar_array (x, len + 1); - } - else if (this->write_ulong (1)) - return this->write_wchar (0); - return (this->good_bit_ = false); -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_1 (const ACE_CDR::Octet *) -{ - this->adjust (1); - return true; -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_2 (const ACE_CDR::UShort *) -{ - this->adjust (ACE_CDR::SHORT_SIZE); - return true; -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_4 (const ACE_CDR::ULong *) -{ - this->adjust (ACE_CDR::LONG_SIZE); - return true; -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_8 (const ACE_CDR::ULongLong *) -{ - this->adjust (ACE_CDR::LONGLONG_SIZE); - return true; -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_16 (const ACE_CDR::LongDouble *) -{ - this->adjust (ACE_CDR::LONGDOUBLE_SIZE, - ACE_CDR::LONGDOUBLE_ALIGN); - return true; -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_wchar_array_i (const ACE_CDR::WChar *, - ACE_CDR::ULong length) -{ - if (length == 0) - return true; - - size_t const align = (ACE_OutputCDR::wchar_maxbytes () == 2) ? - ACE_CDR::SHORT_ALIGN : - ACE_CDR::OCTET_ALIGN; - - this->adjust (ACE_OutputCDR::wchar_maxbytes () * length, align); - return true; -} - - -ACE_CDR::Boolean -ACE_SizeCDR::write_array (const void *, - size_t size, - size_t align, - ACE_CDR::ULong length) -{ - if (length == 0) - return true; - - this->adjust (size * length, align); - return true; -} - -ACE_CDR::Boolean -ACE_SizeCDR::write_boolean_array (const ACE_CDR::Boolean*, - ACE_CDR::ULong length) -{ - this->adjust (length, 1); - return true; -} - -void -ACE_SizeCDR::adjust (size_t size) -{ - adjust (size, size); -} - -void -ACE_SizeCDR::adjust (size_t size, - size_t align) -{ -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - const size_t offset = ACE_align_binary (size_, align) - size_; - size_ += offset; -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - size_ += size; -} - -ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, const ACE_CString &x) -{ - ss.write_string (x); - return ss.good_bit (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/CDR_Size.h b/ACE/ace/CDR_Size.h deleted file mode 100644 index a7ff689479b..00000000000 --- a/ACE/ace/CDR_Size.h +++ /dev/null @@ -1,241 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file CDR_Size.h - * - * $Id$ - * - * - * ACE Common Data Representation (CDR) size-calculating stream. - * - * - * 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 - * the only known exception. - * - * - * @author Boris Kolpackov - * - */ -//============================================================================= - -#ifndef ACE_CDR_SIZE_H -#define ACE_CDR_SIZE_H - -#include /**/ "ace/pre.h" - -#include "ace/CDR_Base.h" -#include "ace/CDR_Stream.h" // for ACE_OutputCDR::from_* - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/SStringfwd.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_SizeCDR - * - * @brief A CDR stream for calculating size of the representation. - * - */ -class ACE_Export ACE_SizeCDR -{ -public: - /// Default constructor. - ACE_SizeCDR (ACE_CDR::Octet major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet minor_version = ACE_CDR_GIOP_MINOR_VERSION); - - /// Returns @c false if an error has ocurred. - bool good_bit (void) const; - - - /// Reset current size. - void reset (void); - - - /// Return current size. - size_t total_length (void) const; - - - // Return 0 on failure and 1 on success. - //@{ @name Size-calculating pseudo-write operations - ACE_CDR::Boolean write_boolean (ACE_CDR::Boolean x); - ACE_CDR::Boolean write_char (ACE_CDR::Char x); - ACE_CDR::Boolean write_wchar (ACE_CDR::WChar x); - ACE_CDR::Boolean write_octet (ACE_CDR::Octet x); - ACE_CDR::Boolean write_short (ACE_CDR::Short x); - ACE_CDR::Boolean write_ushort (ACE_CDR::UShort x); - ACE_CDR::Boolean write_long (ACE_CDR::Long x); - ACE_CDR::Boolean write_ulong (ACE_CDR::ULong x); - ACE_CDR::Boolean write_longlong (const ACE_CDR::LongLong &x); - ACE_CDR::Boolean write_ulonglong (const ACE_CDR::ULongLong &x); - ACE_CDR::Boolean write_float (ACE_CDR::Float x); - ACE_CDR::Boolean write_double (const ACE_CDR::Double &x); - ACE_CDR::Boolean write_longdouble (const ACE_CDR::LongDouble &x); - - /// For string we offer methods that accept a precomputed length. - ACE_CDR::Boolean write_string (const ACE_CDR::Char *x); - ACE_CDR::Boolean write_string (ACE_CDR::ULong len, - const ACE_CDR::Char *x); - ACE_CDR::Boolean write_string (const ACE_CString &x); - ACE_CDR::Boolean write_wstring (const ACE_CDR::WChar *x); - ACE_CDR::Boolean write_wstring (ACE_CDR::ULong length, - const ACE_CDR::WChar *x); - //@} - - /// @note the portion written starts at and ends - /// at . - /// The length is *NOT* stored into the CDR stream. - //@{ @name Array write operations - ACE_CDR::Boolean write_boolean_array (const ACE_CDR::Boolean *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_char_array (const ACE_CDR::Char *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_wchar_array (const ACE_CDR::WChar* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_octet_array (const ACE_CDR::Octet* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_short_array (const ACE_CDR::Short *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_ushort_array (const ACE_CDR::UShort *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_long_array (const ACE_CDR::Long *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_ulong_array (const ACE_CDR::ULong *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_longlong_array (const ACE_CDR::LongLong* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_ulonglong_array (const ACE_CDR::ULongLong *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_float_array (const ACE_CDR::Float *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_double_array (const ACE_CDR::Double *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_longdouble_array (const ACE_CDR::LongDouble* x, - ACE_CDR::ULong length); - - /// - /// Adjust to @a size and count octets. - void adjust (size_t size); - - /// As above, but now the size and alignment requirements may be - /// different. - void adjust (size_t size, - size_t align); - -private: - /// disallow copying... - ACE_SizeCDR (const ACE_SizeCDR& rhs); - ACE_SizeCDR& operator= (const ACE_SizeCDR& rhs); - - ACE_CDR::Boolean write_1 (const ACE_CDR::Octet *x); - ACE_CDR::Boolean write_2 (const ACE_CDR::UShort *x); - ACE_CDR::Boolean write_4 (const ACE_CDR::ULong *x); - ACE_CDR::Boolean write_8 (const ACE_CDR::ULongLong *x); - ACE_CDR::Boolean write_16 (const ACE_CDR::LongDouble *x); - - /** - * write an array of @a length elements, each of @a size bytes and the - * start aligned at a multiple of . The elements are assumed - * to be packed with the right alignment restrictions. It is mostly - * designed for buffers of the basic types. - * - * This operation uses ; as explained above it is expected - * that using assignment is faster that for one element, - * but for several elements should be more efficient, it - * could be interesting to find the break even point and optimize - * for that case, but that would be too platform dependent. - */ - ACE_CDR::Boolean write_array (const void *x, - size_t size, - size_t align, - ACE_CDR::ULong length); - - - ACE_CDR::Boolean write_wchar_array_i (const ACE_CDR::WChar* x, - ACE_CDR::ULong length); - -private: - /// Set to false when an error ocurrs. - bool good_bit_; - - /// Current size. - size_t size_; - -protected: - /// GIOP version information - ACE_CDR::Octet major_version_; - ACE_CDR::Octet minor_version_; -}; - -// @@ This operator should not be inlined since they force SString.h -// to be included in this header. -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - const ACE_CString &x); - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -# include "ace/CDR_Size.inl" -#else /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Not used by CORBA or TAO -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_CDR::Char x); - -// CDR size-calculating output operators for primitive types - -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_CDR::Short x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_CDR::UShort x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_CDR::Long x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_CDR::ULong x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_CDR::LongLong x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_CDR::ULongLong x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR& ss, - ACE_CDR::LongDouble x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_CDR::Float x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_CDR::Double x); - -// CDR size-calculating output operator from helper classes - -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_OutputCDR::from_boolean x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_OutputCDR::from_char x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_OutputCDR::from_wchar x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_OutputCDR::from_octet x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_OutputCDR::from_string x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - ACE_OutputCDR::from_wstring x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - const ACE_CDR::Char* x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss, - const ACE_CDR::WChar* x); - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* __ACE_INLINE__ */ - - -#include /**/ "ace/post.h" - -#endif /* ACE_CDR_SIZE_H */ diff --git a/ACE/ace/CDR_Size.inl b/ACE/ace/CDR_Size.inl deleted file mode 100644 index 2527af22989..00000000000 --- a/ACE/ace/CDR_Size.inl +++ /dev/null @@ -1,424 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_string.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_SizeCDR::ACE_SizeCDR (ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version) - : good_bit_ (true), - size_ (0), - major_version_ (major_version), - minor_version_ (minor_version) -{ -} - -ACE_INLINE bool -ACE_SizeCDR::good_bit (void) const -{ - return this->good_bit_; -} - -ACE_INLINE void -ACE_SizeCDR::reset (void) -{ - this->size_ = 0; -} - -ACE_INLINE size_t -ACE_SizeCDR::total_length (void) const -{ - return this->size_; -} - - -// Encode the CDR stream. - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_octet (ACE_CDR::Octet x) -{ - return this->write_1 (reinterpret_cast (&x)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_boolean (ACE_CDR::Boolean x) -{ - return (ACE_CDR::Boolean) this->write_octet (x ? (ACE_CDR::Octet) 1 : (ACE_CDR::Octet) 0); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_char (ACE_CDR::Char x) -{ - // Note: translator framework is not supported. - // - return this->write_1 (reinterpret_cast (&x)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_short (ACE_CDR::Short x) -{ - return this->write_2 (reinterpret_cast (&x)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_ushort (ACE_CDR::UShort x) -{ - return this->write_2 (reinterpret_cast (&x)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_long (ACE_CDR::Long x) -{ - return this->write_4 (reinterpret_cast (&x)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_ulong (ACE_CDR::ULong x) -{ - return this->write_4 (reinterpret_cast (&x)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_longlong (const ACE_CDR::LongLong &x) -{ - return this->write_8 (reinterpret_cast (&x)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_ulonglong (const ACE_CDR::ULongLong &x) -{ - const void *temp = &x; - return this->write_8 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_float (ACE_CDR::Float x) -{ - const void *temp = &x; - return this->write_4 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_double (const ACE_CDR::Double &x) -{ - const void *temp = &x; - return this->write_8 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_longdouble (const ACE_CDR::LongDouble &x) -{ - const void *temp = &x; - return this->write_16 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_string (const ACE_CDR::Char *x) -{ - if (x != 0) - { - const ACE_CDR::ULong len = - static_cast (ACE_OS::strlen (x)); - return this->write_string (len, x); - } - return this->write_string (0, 0); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_wstring (const ACE_CDR::WChar *x) -{ - if (x != 0) - { - ACE_CDR::ULong len = - static_cast (ACE_OS::strlen (x)); - return this->write_wstring (len, x); - } - return this->write_wstring (0, 0); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_char_array (const ACE_CDR::Char *x, - ACE_CDR::ULong length) -{ - // Note: translator framework is not supported. - // - return this->write_array (x, - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_wchar_array (const ACE_CDR::WChar* x, - ACE_CDR::ULong length) -{ - // Note: translator framework is not supported. - // - if (ACE_OutputCDR::wchar_maxbytes () == 0) - { - errno = EACCES; - return (ACE_CDR::Boolean) (this->good_bit_ = false); - } - if (ACE_OutputCDR::wchar_maxbytes () == sizeof (ACE_CDR::WChar)) - return this->write_array (x, - sizeof (ACE_CDR::WChar), - sizeof (ACE_CDR::WChar) == 2 - ? ACE_CDR::SHORT_ALIGN - : ACE_CDR::LONG_ALIGN, - length); - return this->write_wchar_array_i (x,length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_octet_array (const ACE_CDR::Octet* x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_short_array (const ACE_CDR::Short *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::SHORT_SIZE, - ACE_CDR::SHORT_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_ushort_array (const ACE_CDR::UShort *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::SHORT_SIZE, - ACE_CDR::SHORT_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_long_array (const ACE_CDR::Long *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONG_SIZE, - ACE_CDR::LONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_ulong_array (const ACE_CDR::ULong *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONG_SIZE, - ACE_CDR::LONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_longlong_array (const ACE_CDR::LongLong *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONGLONG_SIZE, - ACE_CDR::LONGLONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_ulonglong_array (const ACE_CDR::ULongLong *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONGLONG_SIZE, - ACE_CDR::LONGLONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_float_array (const ACE_CDR::Float *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONG_SIZE, - ACE_CDR::LONG_ALIGN, - length); -} - - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_double_array (const ACE_CDR::Double *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONGLONG_SIZE, - ACE_CDR::LONGLONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_SizeCDR::write_longdouble_array (const ACE_CDR::LongDouble* x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONGDOUBLE_SIZE, - ACE_CDR::LONGDOUBLE_ALIGN, - length); -} - - -// **************************************************************** - - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::Char x) -{ - ss.write_char (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::Short x) -{ - ss.write_short (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::UShort x) -{ - ss.write_ushort (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::Long x) -{ - ss.write_long (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::ULong x) -{ - ss.write_ulong (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::LongLong x) -{ - ss.write_longlong (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::ULongLong x) -{ - ss.write_ulonglong (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::LongDouble x) -{ - ss.write_longdouble (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::Float x) -{ - ss.write_float (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_CDR::Double x) -{ - ss.write_double (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, const ACE_CDR::Char *x) -{ - ss.write_string (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, const ACE_CDR::WChar *x) -{ - ss.write_wstring (x); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -// The following use the helper classes -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_OutputCDR::from_boolean x) -{ - ss.write_boolean (x.val_); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_OutputCDR::from_char x) -{ - ss.write_char (x.val_); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_OutputCDR::from_wchar x) -{ - ss.write_wchar (x.val_); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_OutputCDR::from_octet x) -{ - ss.write_octet (x.val_); - return (ACE_CDR::Boolean) ss.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_OutputCDR::from_string x) -{ - ACE_CDR::ULong len = 0; - - if (x.val_ != 0) - { - len = static_cast (ACE_OS::strlen (x.val_)); - } - - ss.write_string (len, x.val_); - return - (ACE_CDR::Boolean) (ss.good_bit () && (!x.bound_ || len <= x.bound_)); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_SizeCDR &ss, ACE_OutputCDR::from_wstring x) -{ - ACE_CDR::ULong len = 0; - - if (x.val_ != 0) - { - len = static_cast (ACE_OS::strlen (x.val_)); - } - - ss.write_wstring (len, x.val_); - return - (ACE_CDR::Boolean) (ss.good_bit () && (!x.bound_ || len <= x.bound_)); -} - - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/CDR_Stream.cpp b/ACE/ace/CDR_Stream.cpp deleted file mode 100644 index 00af2b70940..00000000000 --- a/ACE/ace/CDR_Stream.cpp +++ /dev/null @@ -1,1892 +0,0 @@ -#include "ace/CDR_Stream.h" -#include "ace/SString.h" -#include "ace/Auto_Ptr.h" - -#if !defined (__ACE_INLINE__) -# include "ace/CDR_Stream.inl" -#endif /* ! __ACE_INLINE__ */ - -ACE_RCSID (ace, - CDR_Stream, - "$Id$") - -// **************************************************************** - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -size_t ACE_OutputCDR::wchar_maxbytes_ = sizeof (ACE_CDR::WChar); - -ACE_OutputCDR::ACE_OutputCDR (size_t size, - int byte_order, - ACE_Allocator *buffer_allocator, - ACE_Allocator *data_block_allocator, - ACE_Allocator *message_block_allocator, - size_t memcpy_tradeoff, - ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version) - : start_ ((size ? size : (size_t) ACE_CDR::DEFAULT_BUFSIZE) + ACE_CDR::MAX_ALIGNMENT, - ACE_Message_Block::MB_DATA, - 0, - 0, - buffer_allocator, - 0, - 0, - ACE_Time_Value::zero, - ACE_Time_Value::max_time, - data_block_allocator, - message_block_allocator), -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - current_alignment_ (0), -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - current_is_writable_ (true), - do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER), - good_bit_ (true), - memcpy_tradeoff_ (memcpy_tradeoff), - major_version_ (major_version), - minor_version_ (minor_version), - char_translator_ (0), - wchar_translator_ (0) - -{ - ACE_CDR::mb_align (&this->start_); - this->current_ = &this->start_; -} - -ACE_OutputCDR::ACE_OutputCDR (char *data, - size_t size, - int byte_order, - ACE_Allocator *buffer_allocator, - ACE_Allocator *data_block_allocator, - ACE_Allocator *message_block_allocator, - size_t memcpy_tradeoff, - ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version) - : start_ (size, - ACE_Message_Block::MB_DATA, - 0, - data, - buffer_allocator, - 0, - 0, - ACE_Time_Value::zero, - ACE_Time_Value::max_time, - data_block_allocator, - message_block_allocator), -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - current_alignment_ (0), -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - current_is_writable_ (true), - do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER), - good_bit_ (true), - memcpy_tradeoff_ (memcpy_tradeoff), - major_version_ (major_version), - minor_version_ (minor_version), - char_translator_ (0), - wchar_translator_ (0) -{ - // We cannot trust the buffer to be properly aligned - ACE_CDR::mb_align (&this->start_); - this->current_ = &this->start_; -} - -ACE_OutputCDR::ACE_OutputCDR (ACE_Data_Block *data_block, - int byte_order, - ACE_Allocator *message_block_allocator, - size_t memcpy_tradeoff, - ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version) - : start_ (data_block, - ACE_Message_Block::DONT_DELETE, - message_block_allocator), -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - current_alignment_ (0), -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - current_is_writable_ (true), - do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER), - good_bit_ (true), - memcpy_tradeoff_ (memcpy_tradeoff), - major_version_ (major_version), - minor_version_ (minor_version), - char_translator_ (0), - wchar_translator_ (0) -{ - // We cannot trust the buffer to be properly aligned - ACE_CDR::mb_align (&this->start_); - this->current_ = &this->start_; -} - -ACE_OutputCDR::ACE_OutputCDR (ACE_Message_Block *data, - int byte_order, - size_t memcpy_tradeoff, - ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version) - : start_ (data->data_block ()->duplicate ()), -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - current_alignment_ (0), -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - current_is_writable_ (true), - do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER), - good_bit_ (true), - memcpy_tradeoff_ (memcpy_tradeoff), - major_version_ (major_version), - minor_version_ (minor_version), - char_translator_ (0), - wchar_translator_ (0) -{ - // We cannot trust the buffer to be properly aligned - ACE_CDR::mb_align (&this->start_); - this->current_ = &this->start_; -} - -/*static*/ void -ACE_OutputCDR::wchar_maxbytes (size_t maxbytes) -{ - ACE_OutputCDR::wchar_maxbytes_ = maxbytes; -} - -/*static*/ size_t -ACE_OutputCDR::wchar_maxbytes () -{ - return ACE_OutputCDR::wchar_maxbytes_; -} - -int -ACE_OutputCDR::grow_and_adjust (size_t size, - size_t align, - char*& buf) -{ - if (!this->current_is_writable_ - || this->current_->cont () == 0 - || this->current_->cont ()->size () < size + ACE_CDR::MAX_ALIGNMENT) - { - // Calculate the new buffer's length; if growing for encode, we - // don't grow in "small" chunks because of the cost. - size_t cursize = this->current_->size (); - if (this->current_->cont () != 0) - cursize = this->current_->cont ()->size (); - size_t minsize = size; - -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - minsize += ACE_CDR::MAX_ALIGNMENT; -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - // Make sure that there is enough room for bytes, but - // also make it bigger than whatever our current size is. - if (minsize < cursize) - minsize = cursize; - - size_t const newsize = ACE_CDR::next_size (minsize); - - this->good_bit_ = false; - ACE_Message_Block* tmp = 0; - ACE_NEW_RETURN (tmp, - ACE_Message_Block (newsize, - ACE_Message_Block::MB_DATA, - 0, - 0, - this->current_->data_block ()->allocator_strategy (), - 0, - 0, - ACE_Time_Value::zero, - ACE_Time_Value::max_time, - this->current_->data_block ()->data_block_allocator ()), - -1); - - // Message block initialization may fail while the construction - // succeds. Since as a matter of policy, ACE may throw no - // exceptions, we have to do a separate check like this. - if (tmp != 0 && tmp->size () < newsize) - { - delete tmp; - errno = ENOMEM; - return -1; - } - - this->good_bit_ = true; - -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - // The new block must start with the same alignment as the - // previous block finished. - ptrdiff_t const tmpalign = - reinterpret_cast (tmp->rd_ptr ()) % ACE_CDR::MAX_ALIGNMENT; - ptrdiff_t const curalign = - static_cast (this->current_alignment_) % ACE_CDR::MAX_ALIGNMENT; - ptrdiff_t offset = curalign - tmpalign; - if (offset < 0) - offset += ACE_CDR::MAX_ALIGNMENT; - tmp->rd_ptr (static_cast (offset)); - tmp->wr_ptr (tmp->rd_ptr ()); -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - // grow the chain and set the current block. - tmp->cont (this->current_->cont ()); - this->current_->cont (tmp); - } - this->current_ = this->current_->cont (); - this->current_is_writable_ = true; - - return this->adjust (size, align, buf); -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_wchar (ACE_CDR::WChar x) -{ - if (this->wchar_translator_ != 0) - return (this->good_bit_ = this->wchar_translator_->write_wchar (*this, x)); - if (ACE_OutputCDR::wchar_maxbytes_ == 0) - { - errno = EACCES; - return (this->good_bit_ = false); - } - if (static_cast (major_version_) == 1 - && static_cast (minor_version_) == 2) - { - ACE_CDR::Octet len = - static_cast (ACE_OutputCDR::wchar_maxbytes_); - if (this->write_1 (&len)) - { - if (ACE_OutputCDR::wchar_maxbytes_ == sizeof(ACE_CDR::WChar)) - return - this->write_octet_array ( - reinterpret_cast (&x), - static_cast (len)); - else - if (ACE_OutputCDR::wchar_maxbytes_ == 2) - { - ACE_CDR::Short sx = static_cast (x); - return - this->write_octet_array ( - reinterpret_cast (&sx), - static_cast (len)); - } - else - { - ACE_CDR::Octet ox = static_cast (x); - return - this->write_octet_array ( - reinterpret_cast (&ox), - static_cast (len)); - } - } - } - else if (static_cast (minor_version_) == 0) - { // wchar is not allowed with GIOP 1.0. - errno = EINVAL; - return (this->good_bit_ = false); - } - if (ACE_OutputCDR::wchar_maxbytes_ == sizeof (ACE_CDR::WChar)) - { - void const * const temp = &x; - return - this->write_4 (reinterpret_cast (temp)); - } - else if (ACE_OutputCDR::wchar_maxbytes_ == 2) - { - ACE_CDR::Short sx = static_cast (x); - return this->write_2 (reinterpret_cast (&sx)); - } - ACE_CDR::Octet ox = static_cast (x); - return this->write_1 (reinterpret_cast (&ox)); -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_string (ACE_CDR::ULong len, - const ACE_CDR::Char *x) -{ - // @@ This is a slight violation of "Optimize for the common case", - // i.e. normally the translator will be 0, but OTOH the code is - // smaller and should be better for the cache ;-) ;-) - if (this->char_translator_ != 0) - return this->char_translator_->write_string (*this, len, x); - - if (len != 0) - { - if (this->write_ulong (len + 1)) - return this->write_char_array (x, len + 1); - } - else - { - // Be nice to programmers: treat nulls as empty strings not - // errors. (OMG-IDL supports languages that don't use the C/C++ - // notion of null v. empty strings; nulls aren't part of the OMG-IDL - // string model.) - if (this->write_ulong (1)) - return this->write_char (0); - } - - return (this->good_bit_ = false); -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_string (const ACE_CString &x) -{ - // @@ Leave this method in here, not the `.i' file so that we don't - // have to unnecessarily pull in the `ace/SString.h' header. - return this->write_string (static_cast (x.length ()), - x.c_str()); -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_wstring (ACE_CDR::ULong len, - const ACE_CDR::WChar *x) -{ - // @@ This is a slight violation of "Optimize for the common case", - // i.e. normally the translator will be 0, but OTOH the code is - // smaller and should be better for the cache ;-) ;-) - // What do we do for GIOP 1.2??? - if (this->wchar_translator_ != 0) - return this->wchar_translator_->write_wstring (*this, len, x); - if (ACE_OutputCDR::wchar_maxbytes_ == 0) - { - errno = EACCES; - return (this->good_bit_ = false); - } - - if (static_cast (this->major_version_) == 1 - && static_cast (this->minor_version_) == 2) - { - if (x != 0) - { - //In GIOP 1.2 the length field contains the number of bytes - //the wstring occupies rather than number of wchars - //Taking sizeof might not be a good way! This is a temporary fix. - if (this->write_ulong (ACE_OutputCDR::wchar_maxbytes_ * len)) - return this->write_wchar_array (x, len); - } - else - //In GIOP 1.2 zero length wstrings are legal - return this->write_ulong (0); - } - - else - if (x != 0) - { - if (this->write_ulong (len + 1)) - return this->write_wchar_array (x, len + 1); - } - else if (this->write_ulong (1)) - return this->write_wchar (0); - return (this->good_bit_ = false); -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_octet_array_mb (const ACE_Message_Block* mb) -{ - // If the buffer is small and it fits in the current message - // block it is be cheaper just to copy the buffer. - for (const ACE_Message_Block* i = mb; - i != 0; - i = i->cont ()) - { - size_t const length = i->length (); - - // If the mb does not own its data we are forced to make a copy. - if (ACE_BIT_ENABLED (i->flags (), - ACE_Message_Block::DONT_DELETE)) - { - if (! this->write_array (i->rd_ptr (), - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - static_cast (length))) - return (this->good_bit_ = false); - continue; - } - - if (length < this->memcpy_tradeoff_ - && this->current_->wr_ptr () + length < this->current_->end ()) - { - if (! this->write_array (i->rd_ptr (), - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - static_cast (length))) - return (this->good_bit_ = false); - continue; - } - - ACE_Message_Block* cont = 0; - this->good_bit_ = false; - ACE_NEW_RETURN (cont, - ACE_Message_Block (i->data_block ()->duplicate ()), - false); - this->good_bit_ = true; - - if (this->current_->cont () != 0) - ACE_Message_Block::release (this->current_->cont ()); - cont->rd_ptr (i->rd_ptr ()); - cont->wr_ptr (i->wr_ptr ()); - - this->current_->cont (cont); - this->current_ = cont; - this->current_is_writable_ = false; -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - this->current_alignment_ = - (this->current_alignment_ + cont->length ()) % ACE_CDR::MAX_ALIGNMENT; -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - } - - return true; -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_1 (const ACE_CDR::Octet *x) -{ - char *buf = 0; - if (this->adjust (1, buf) == 0) - { - *reinterpret_cast (buf) = *x; - return true; - } - - return false; -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_2 (const ACE_CDR::UShort *x) -{ - char *buf = 0; - if (this->adjust (ACE_CDR::SHORT_SIZE, buf) == 0) - { -#if !defined (ACE_ENABLE_SWAP_ON_WRITE) - *reinterpret_cast (buf) = *x; - return true; -#else - if (!this->do_byte_swap_) - { - *reinterpret_cast (buf) = *x; - return true; - } - else - { - ACE_CDR::swap_2 (reinterpret_cast (x), buf); - return true; - } -#endif /* ACE_ENABLE_SWAP_ON_WRITE */ - } - - return false; -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_4 (const ACE_CDR::ULong *x) -{ - char *buf = 0; - if (this->adjust (ACE_CDR::LONG_SIZE, buf) == 0) - { -#if !defined (ACE_ENABLE_SWAP_ON_WRITE) - *reinterpret_cast (buf) = *x; - return true; -#else - if (!this->do_byte_swap_) - { - *reinterpret_cast (buf) = *x; - return true; - } - else - { - ACE_CDR::swap_4 (reinterpret_cast (x), buf); - return true; - } -#endif /* ACE_ENABLE_SWAP_ON_WRITE */ - } - - return false; -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_8 (const ACE_CDR::ULongLong *x) -{ - char *buf = 0; - - if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0) - { -#if defined (__arm__) - // Convert to Intel format (12345678 => 56781234) - const char *orig = reinterpret_cast (x); - char *target = buf; - register ACE_UINT32 x = - *reinterpret_cast (orig); - register ACE_UINT32 y = - *reinterpret_cast (orig + 4); - *reinterpret_cast (target) = y; - *reinterpret_cast (target + 4) = x; - return true; -#else -# if !defined (ACE_ENABLE_SWAP_ON_WRITE) - *reinterpret_cast (buf) = *x; - return true; -# else - if (!this->do_byte_swap_) - { - *reinterpret_cast (buf) = *x; - return true; - } - else - { - ACE_CDR::swap_8 (reinterpret_cast (x), buf); - return true; - } -# endif /* ACE_ENABLE_SWAP_ON_WRITE */ -#endif /* !__arm__ */ - } - - return false; -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_16 (const ACE_CDR::LongDouble *x) -{ - char* buf = 0; - if (this->adjust (ACE_CDR::LONGDOUBLE_SIZE, - ACE_CDR::LONGDOUBLE_ALIGN, - buf) == 0) - { -#if !defined (ACE_ENABLE_SWAP_ON_WRITE) - *reinterpret_cast (buf) = *x; - return 1; -#else - if (!this->do_byte_swap_) - { - *reinterpret_cast (buf) = *x; - return true; - } - else - { - ACE_CDR::swap_16 (reinterpret_cast (x), buf); - return true; - } -#endif /* ACE_ENABLE_SWAP_ON_WRITE */ - } - - return false; -} - -ACE_CDR::Boolean -ACE_OutputCDR::write_wchar_array_i (const ACE_CDR::WChar *x, - ACE_CDR::ULong length) -{ - if (length == 0) - return true; - char* buf = 0; - size_t const align = (ACE_OutputCDR::wchar_maxbytes_ == 2) ? - ACE_CDR::SHORT_ALIGN : - ACE_CDR::OCTET_ALIGN; - - if (this->adjust (ACE_OutputCDR::wchar_maxbytes_ * length, align, buf) == 0) - { - if (ACE_OutputCDR::wchar_maxbytes_ == 2) - { - ACE_CDR::UShort *sb = reinterpret_cast (buf); - for (size_t i = 0; i < length; ++i) -#if !defined (ACE_ENABLE_SWAP_ON_WRITE) - sb[i] = static_cast (x[i]); -#else - if (!this->do_byte_swap_) - sb[i] = static_cast (x[i]); - else - { - ACE_CDR::UShort sx = static_cast (x[i]); - ACE_CDR::swap_2 (reinterpret_cast (&sx), &buf[i * 2]); - } -#endif /* ACE_ENABLE_SWAP_ON_WRITE */ - } - else - { - for (size_t i = 0; i < length; ++i) - buf[i] = static_cast (x[i]); - } - return this->good_bit_; - } - return false; -} - - -ACE_CDR::Boolean -ACE_OutputCDR::write_array (const void *x, - size_t size, - size_t align, - ACE_CDR::ULong length) -{ - if (length == 0) - return true; - char *buf = 0; - if (this->adjust (size * length, align, buf) == 0) - { -#if !defined (ACE_ENABLE_SWAP_ON_WRITE) - ACE_OS::memcpy (buf, x, size*length); - return true; -#else - if (!this->do_byte_swap_ || size == 1) - { - ACE_OS::memcpy (buf, x, size*length); - return true; - } - else - { - const char *source = reinterpret_cast (x); - switch (size) - { - case 2: - ACE_CDR::swap_2_array (source, buf, length); - return true; - case 4: - ACE_CDR::swap_4_array (source, buf, length); - return true; - case 8: - ACE_CDR::swap_8_array (source, buf, length); - return true; - case 16: - ACE_CDR::swap_16_array (source, buf, length); - return true; - default: - // TODO: print something? - this->good_bit_ = false; - return false; - } - } -#endif /* ACE_ENABLE_SWAP_ON_WRITE */ - } - this->good_bit_ = false; - return false; -} - - -ACE_CDR::Boolean -ACE_OutputCDR::write_boolean_array (const ACE_CDR::Boolean* x, - ACE_CDR::ULong length) -{ - // It is hard to optimize this, the spec requires that on the wire - // booleans be represented as a byte with value 0 or 1, but in - // memory it is possible (though very unlikely) that a boolean has - // a non-zero value (different from 1). - // We resort to a simple loop. - ACE_CDR::Boolean const * const end = x + length; - - for (ACE_CDR::Boolean const * i = x; - i != end && this->good_bit (); - ++i) - (void) this->write_boolean (*i); - - return this->good_bit (); -} - - -char * -ACE_OutputCDR::write_long_placeholder (void) -{ - this->align_write_ptr (ACE_CDR::LONG_SIZE); - char *pos = this->current_->wr_ptr (); - this->write_long (0); - return pos; -} - - -char * -ACE_OutputCDR::write_short_placeholder (void) -{ - this->align_write_ptr (ACE_CDR::SHORT_SIZE); - char *pos = this->current_->wr_ptr(); - this->write_short (0); - return pos; -} - - -ACE_CDR::Boolean -ACE_OutputCDR::replace (ACE_CDR::Long x, char* loc) -{ - if (this->find (loc) == 0) - return false; - -#if !defined (ACE_ENABLE_SWAP_ON_WRITE) - *reinterpret_cast (loc) = x; -#else - if (!this->do_byte_swap_) - { - *reinterpret_cast (loc) = x; - } - else - { - ACE_CDR::swap_4 (reinterpret_cast (&x), loc); - } -#endif /* ACE_ENABLE_SWAP_ON_WRITE */ - - return true; -} - - -ACE_CDR::Boolean -ACE_OutputCDR::replace (ACE_CDR::Short x, char* loc) -{ - if (this->find (loc) == 0) - return false; - -#if !defined (ACE_ENABLE_SWAP_ON_WRITE) - *reinterpret_cast (loc) = x; -#else - if (!this->do_byte_swap_) - { - *reinterpret_cast (loc) = x; - } - else - { - ACE_CDR::swap_2 (reinterpret_cast (&x), loc); - } -#endif /* ACE_ENABLE_SWAP_ON_WRITE */ - - return true; -} - - -int -ACE_OutputCDR::consolidate (void) -{ - // Optimize by only doing something if we need to - if (this->current_ != &this->start_) - { - // Set the number of bytes in the top-level block, reallocating - // if necessary. The rd_ptr and wr_ptr remain at the original offsets - // into the buffer, even if it is reallocated. - // Return an error if the allocation failed. - size_t const newsize = - ACE_CDR::first_size (this->total_length () - + ACE_CDR::MAX_ALIGNMENT); - if (this->start_.size (newsize) < 0) - { - return -1; - } - - // Consolidate the chain into the first block. NOTE that - // ACE_CDR::consolidate can not be used since we don't want to - // overwrite what is already in the first block. We just append it since - // the read and write pointers weren't affected by the resizing above. - // We also don't have to worry about alignment since the start block is - // already aligned. - // NOTE also we know there is a continuation since we checked for it - // above. There is therefore no reason to check for a 0 continuation - // field here. - ACE_Message_Block *cont = this->start_.cont (); - for (const ACE_Message_Block* i = cont; i != 0; i = i->cont ()) - { - this->start_.copy (i->rd_ptr (), i->length ()); - } - - // Release the old blocks that were consolidated and reset the - // current_ and current_is_writable_ to reflect the single used block. - ACE_Message_Block::release (cont); - this->start_.cont (0); - this->current_ = &this->start_; - this->current_is_writable_ = true; - } - - return 0; -} - - -ACE_Message_Block* -ACE_OutputCDR::find (char* loc) -{ - ACE_Message_Block* mb = 0; - for (mb = &this->start_; mb != 0; mb = mb->cont ()) - { - if (loc <= mb->wr_ptr () && loc >= mb->rd_ptr ()) - { - break; - } - } - - return mb; -} - - -// **************************************************************** - -ACE_InputCDR::ACE_InputCDR (const char *buf, - size_t bufsiz, - int byte_order, - ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version) - : start_ (buf, bufsiz), - do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER), - good_bit_ (true), - major_version_ (major_version), - minor_version_ (minor_version), - char_translator_ (0), - wchar_translator_ (0) -{ - this->start_.wr_ptr (bufsiz); -} - -ACE_InputCDR::ACE_InputCDR (size_t bufsiz, - int byte_order, - ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version) - : start_ (bufsiz), - do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER), - good_bit_ (true), - major_version_ (major_version), - minor_version_ (minor_version), - char_translator_ (0), - wchar_translator_ (0) -{ -} - -ACE_InputCDR::ACE_InputCDR (const ACE_Message_Block *data, - int byte_order, - ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version, - ACE_Lock* lock) -: start_ (0, ACE_Message_Block::MB_DATA, 0, 0, 0, lock), - good_bit_ (true), - major_version_ (major_version), - minor_version_ (minor_version), - char_translator_ (0), - wchar_translator_ (0) - -{ - this->reset (data, byte_order); -} - -ACE_InputCDR::ACE_InputCDR (ACE_Data_Block *data, - ACE_Message_Block::Message_Flags flag, - int byte_order, - ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version) - : start_ (data, flag), - do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER), - good_bit_ (true), - major_version_ (major_version), - minor_version_ (minor_version), - char_translator_ (0), - wchar_translator_ (0) - -{ -} - -ACE_InputCDR::ACE_InputCDR (ACE_Data_Block *data, - ACE_Message_Block::Message_Flags flag, - size_t rd_pos, - size_t wr_pos, - int byte_order, - ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version) - : start_ (data, flag), - do_byte_swap_ (byte_order != ACE_CDR_BYTE_ORDER), - good_bit_ (true), - major_version_ (major_version), - minor_version_ (minor_version), - char_translator_ (0), - wchar_translator_ (0) - -{ - // Set the read pointer - this->start_.rd_ptr (rd_pos); - - // Set the write pointer after doing a sanity check. - char* wrpos = this->start_.base () + wr_pos; - - if (this->start_.end () >= wrpos) - { - this->start_.wr_ptr (wr_pos); - } -} - - -ACE_InputCDR::ACE_InputCDR (const ACE_InputCDR& rhs, - size_t size, - ACE_CDR::Long offset) - : start_ (rhs.start_, - ACE_CDR::MAX_ALIGNMENT), - do_byte_swap_ (rhs.do_byte_swap_), - good_bit_ (true), - major_version_ (rhs.major_version_), - minor_version_ (rhs.minor_version_), - char_translator_ (rhs.char_translator_), - wchar_translator_ (rhs.wchar_translator_) - -{ -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - // Align the base pointer assuming that the incoming stream is also - // aligned the way we are aligned - char *incoming_start = ACE_ptr_align_binary (rhs.start_.base (), - ACE_CDR::MAX_ALIGNMENT); -#else - char *incoming_start = rhs.start_.base (); -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - const size_t newpos = - (rhs.start_.rd_ptr() - incoming_start) + offset; - - if (newpos <= this->start_.space () - && newpos + size <= this->start_.space ()) - { - this->start_.rd_ptr (newpos); - this->start_.wr_ptr (newpos + size); - } - else - this->good_bit_ = false; -} - -ACE_InputCDR::ACE_InputCDR (const ACE_InputCDR& rhs, - size_t size) - : start_ (rhs.start_, - ACE_CDR::MAX_ALIGNMENT), - do_byte_swap_ (rhs.do_byte_swap_), - good_bit_ (true), - major_version_ (rhs.major_version_), - minor_version_ (rhs.minor_version_), - char_translator_ (rhs.char_translator_), - wchar_translator_ (rhs.wchar_translator_) - -{ -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - // Align the base pointer assuming that the incoming stream is also - // aligned the way we are aligned - char *incoming_start = ACE_ptr_align_binary (rhs.start_.base (), - ACE_CDR::MAX_ALIGNMENT); -#else - char *incoming_start = rhs.start_.base (); -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - const size_t newpos = - rhs.start_.rd_ptr() - incoming_start; - - if (newpos <= this->start_.space () - && newpos + size <= this->start_.space ()) - { - // Notice that ACE_Message_Block::duplicate may leave the - // wr_ptr() with a higher value than what we actually want. - this->start_.rd_ptr (newpos); - this->start_.wr_ptr (newpos + size); - - ACE_CDR::Octet byte_order = 0; - (void) this->read_octet (byte_order); - this->do_byte_swap_ = (byte_order != ACE_CDR_BYTE_ORDER); - } - else - this->good_bit_ = false; -} - -ACE_InputCDR::ACE_InputCDR (const ACE_InputCDR& rhs) - : start_ (rhs.start_, - ACE_CDR::MAX_ALIGNMENT), - do_byte_swap_ (rhs.do_byte_swap_), - good_bit_ (true), - major_version_ (rhs.major_version_), - minor_version_ (rhs.minor_version_), - char_translator_ (rhs.char_translator_), - wchar_translator_ (rhs.wchar_translator_) -{ -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - char *buf = ACE_ptr_align_binary (rhs.start_.base (), - ACE_CDR::MAX_ALIGNMENT); -#else - char *buf = rhs.start_.base (); -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - size_t rd_offset = rhs.start_.rd_ptr () - buf; - size_t wr_offset = rhs.start_.wr_ptr () - buf; - this->start_.rd_ptr (rd_offset); - this->start_.wr_ptr (wr_offset); -} - -ACE_InputCDR::ACE_InputCDR (ACE_InputCDR::Transfer_Contents x) - : start_ (x.rhs_.start_.data_block ()), - do_byte_swap_ (x.rhs_.do_byte_swap_), - good_bit_ (true), - major_version_ (x.rhs_.major_version_), - minor_version_ (x.rhs_.minor_version_), - char_translator_ (x.rhs_.char_translator_), - wchar_translator_ (x.rhs_.wchar_translator_) -{ - - this->start_.rd_ptr (x.rhs_.start_.rd_ptr ()); - this->start_.wr_ptr (x.rhs_.start_.wr_ptr ()); - - ACE_Data_Block* db = this->start_.data_block ()->clone_nocopy (); - (void) x.rhs_.start_.replace_data_block (db); -} - -ACE_InputCDR& -ACE_InputCDR::operator= (const ACE_InputCDR& rhs) -{ - if (this != &rhs) - { - this->start_.data_block (rhs.start_.data_block ()->duplicate ()); - this->start_.rd_ptr (rhs.start_.rd_ptr ()); - this->start_.wr_ptr (rhs.start_.wr_ptr ()); - this->do_byte_swap_ = rhs.do_byte_swap_; - this->good_bit_ = true; - this->char_translator_ = rhs.char_translator_; - this->major_version_ = rhs.major_version_; - this->minor_version_ = rhs.minor_version_; - } - return *this; -} - -ACE_InputCDR::ACE_InputCDR (const ACE_OutputCDR& rhs, - ACE_Allocator* buffer_allocator, - ACE_Allocator* data_block_allocator, - ACE_Allocator* message_block_allocator) - : start_ (rhs.total_length () + ACE_CDR::MAX_ALIGNMENT, - ACE_Message_Block::MB_DATA, - 0, - 0, - buffer_allocator, - 0, - 0, - ACE_Time_Value::zero, - ACE_Time_Value::max_time, - data_block_allocator, - message_block_allocator), - do_byte_swap_ (rhs.do_byte_swap_), - good_bit_ (true), - major_version_ (rhs.major_version_), - minor_version_ (rhs.minor_version_), - char_translator_ (rhs.char_translator_), - wchar_translator_ (rhs.wchar_translator_) -{ - ACE_CDR::mb_align (&this->start_); - for (const ACE_Message_Block *i = rhs.begin (); - i != rhs.end (); - i = i->cont ()) - this->start_.copy (i->rd_ptr (), i->length ()); -} - -ACE_CDR::Boolean -ACE_InputCDR::skip_wchar (void) -{ - if (static_cast (major_version_) == 1 - && static_cast (minor_version_) == 2) - { - ACE_CDR::Octet len; - if (this->read_1 (&len)) - return this->skip_bytes (static_cast (len)); - } - else - { - ACE_CDR::WChar x; - void * const temp = &x; - if (ACE_OutputCDR::wchar_maxbytes_ == 2) - return this->read_2 (reinterpret_cast (temp)); - else - return this->read_4 (reinterpret_cast (temp)); - } - - return (this->good_bit_ = false); -} - -ACE_CDR::Boolean -ACE_InputCDR::read_wchar (ACE_CDR::WChar& x) -{ - if (this->wchar_translator_ != 0) - { - this->good_bit_ = this->wchar_translator_->read_wchar (*this,x); - return this->good_bit_; - } - if (ACE_OutputCDR::wchar_maxbytes_ == 0) - { - errno = EACCES; - return (this->good_bit_ = false); - } - - if (ACE_OutputCDR::wchar_maxbytes_ == sizeof (ACE_CDR::WChar)) - { - if (static_cast (major_version_) == 1 - && static_cast (minor_version_) == 2) - { - ACE_CDR::Octet len; - - if (this->read_1 (&len)) - return this->read_array - (reinterpret_cast (&x), - static_cast (len), - ACE_CDR::OCTET_ALIGN, - 1); - - else - return (this->good_bit_ = false); - } - - void * const temp = &x; - if (sizeof (ACE_CDR::WChar) == 2) - return this->read_2 (reinterpret_cast (temp)); - else - return this->read_4 (reinterpret_cast (temp)); - } - - if (static_cast (major_version_) == 1 - && static_cast (minor_version_) == 2) - { - ACE_CDR::Octet len; - - if (this->read_1 (&len)) - { - if (len == 2) - { - ACE_CDR::Short sx; - if (this->read_array - (reinterpret_cast (&sx), - static_cast (len), - ACE_CDR::OCTET_ALIGN, - 1)) - { - x = static_cast (sx); - return true; - } - } - else - { - ACE_CDR::Octet ox; - if (this->read_array - (reinterpret_cast (&ox), - static_cast (len), - ACE_CDR::OCTET_ALIGN, - 1)) - { - x = static_cast (ox); - return true; - } - } - } - } - else - { - if (ACE_OutputCDR::wchar_maxbytes_ == 2) - { - ACE_CDR::UShort sx; - if (this->read_2 (reinterpret_cast (&sx))) - { - x = static_cast (sx); - return true; - } - } - else - { - ACE_CDR::Octet ox; - if (this->read_1 (&ox)) - { - x = static_cast (ox); - return true; - } - - } - } - return (this->good_bit_ = false); -} - -ACE_CDR::Boolean -ACE_InputCDR::read_string (ACE_CDR::Char *&x) -{ - // @@ This is a slight violation of "Optimize for the common case", - // i.e. normally the translator will be 0, but OTOH the code is - // smaller and should be better for the cache ;-) ;-) - if (this->char_translator_ != 0) - { - this->good_bit_ = this->char_translator_->read_string (*this, x); - return this->good_bit_; - } - - ACE_CDR::ULong len = 0; - - if (!this->read_ulong (len)) - return false; - - // A check for the length being too great is done later in the - // call to read_char_array but we want to have it done before - // the memory is allocated. - if (len > 0 && len <= this->length()) - { - ACE_NEW_RETURN (x, - ACE_CDR::Char[len], - 0); - - ACE_Auto_Basic_Array_Ptr safe_data (x); - - if (this->read_char_array (x, len)) - { - (void) safe_data.release (); - return true; - } - } - else if (len == 0) - { - // Convert any null strings to empty strings since empty - // strings can cause crashes. (See bug 58.) - ACE_NEW_RETURN (x, - ACE_CDR::Char[1], - 0); - ACE_OS::strcpy (const_cast (x), ""); - return true; - } - - x = 0; - return (this->good_bit_ = false); -} - -ACE_CDR::Boolean -ACE_InputCDR::read_string (ACE_CString &x) -{ - ACE_CDR::Char * data = 0; - if (this->read_string (data)) - { - ACE_Auto_Basic_Array_Ptr safe_data (data); - x = data; - return true; - } - - x = ""; - return (this->good_bit_ = false); -} - -ACE_CDR::Boolean -ACE_InputCDR::read_wstring (ACE_CDR::WChar*& x) -{ - // @@ This is a slight violation of "Optimize for the common case", - // i.e. normally the translator will be 0, but OTOH the code is - // smaller and should be better for the cache ;-) ;-) - if (this->wchar_translator_ != 0) - { - this->good_bit_ = this->wchar_translator_->read_wstring (*this, x); - return this->good_bit_; - } - if (ACE_OutputCDR::wchar_maxbytes_ == 0) - { - errno = EACCES; - return (this->good_bit_ = false); - } - - ACE_CDR::ULong len = 0; - if (!this->read_ulong (len)) - return false; - - // A check for the length being too great is done later in the - // call to read_char_array but we want to have it done before - // the memory is allocated. - if (len > 0 && len <= this->length ()) - { - ACE_Auto_Basic_Array_Ptr safe_data; - - if (static_cast (this->major_version_) == 1 - && static_cast (this->minor_version_) == 2) - { - len /= ACE_OutputCDR::wchar_maxbytes_; - - //allocating one extra for the null character needed by applications - ACE_NEW_RETURN (x, - ACE_CDR::WChar [len + 1], - false); - - ACE_auto_ptr_reset (safe_data, x); - - if (this->read_wchar_array (x, len)) - { - - //Null character used by applications to find the end of - //the wstring - //Is this okay with the GIOP 1.2 spec?? - x[len] = '\x00'; - - (void) safe_data.release (); - - return true; - } - } - else - { - ACE_NEW_RETURN (x, - ACE_CDR::WChar [len], - false); - - ACE_auto_ptr_reset (safe_data, x); - - if (this->read_wchar_array (x, len)) - { - (void) safe_data.release (); - - return true; - } - } - } - else if (len == 0) - { - // Convert any null strings to empty strings since empty - // strings can cause crashes. (See bug 58.) - ACE_NEW_RETURN (x, - ACE_CDR::WChar[1], - false); - x[0] = '\x00'; - return true; - } - - this->good_bit_ = false; - x = 0; - return false; -} - -ACE_CDR::Boolean -ACE_InputCDR::read_array (void* x, - size_t size, - size_t align, - ACE_CDR::ULong length) -{ - if (length == 0) - return true; - char* buf = 0; - - if (this->adjust (size * length, align, buf) == 0) - { -#if defined (ACE_DISABLE_SWAP_ON_READ) - ACE_OS::memcpy (x, buf, size*length); -#else - if (!this->do_byte_swap_ || size == 1) - ACE_OS::memcpy (x, buf, size*length); - else - { - char *target = reinterpret_cast (x); - switch (size) - { - case 2: - ACE_CDR::swap_2_array (buf, target, length); - break; - case 4: - ACE_CDR::swap_4_array (buf, target, length); - break; - case 8: - ACE_CDR::swap_8_array (buf, target, length); - break; - case 16: - ACE_CDR::swap_16_array (buf, target, length); - break; - default: - // TODO: print something? - this->good_bit_ = false; - return false; - } - } -#endif /* ACE_DISABLE_SWAP_ON_READ */ - return this->good_bit_; - } - return false; -} - -ACE_CDR::Boolean -ACE_InputCDR::read_wchar_array_i (ACE_CDR::WChar* x, - ACE_CDR::ULong length) -{ - if (length == 0) - return true; - char* buf = 0; - size_t const align = (ACE_OutputCDR::wchar_maxbytes_ == 2) ? - ACE_CDR::SHORT_ALIGN : - ACE_CDR::OCTET_ALIGN; - - if (this->adjust (ACE_OutputCDR::wchar_maxbytes_ * length, align, buf) == 0) - { - if (ACE_OutputCDR::wchar_maxbytes_ == 2) - { - ACE_CDR::UShort *sb = reinterpret_cast (buf); - for (size_t i = 0; i < length; ++i) -#if defined (ACE_DISABLE_SWAP_ON_READ) - x[i] = static_cast (sb[i]); -#else - if (!this->do_byte_swap_) - x[i] = static_cast (sb[i]); - else - { - ACE_CDR::UShort sx; - ACE_CDR::swap_2 (&buf[i * 2], reinterpret_cast (&sx)); - x[i] = static_cast (sx); - } -#endif /* ACE_DISABLE_SWAP_ON_READ */ - } - else - { - for (size_t i = 0; i < length; ++i) - x[i] = static_cast (buf[i]); - } - return this->good_bit_; - } - return false; -} - - -ACE_CDR::Boolean -ACE_InputCDR::read_boolean_array (ACE_CDR::Boolean *x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length > this->length ()) - { - this->good_bit_ = false; - return false; - } - - // It is hard to optimize this, the spec requires that on the wire - // booleans be represented as a byte with value 0 or 1, but in - // memory it is possible (though very unlikely) that a boolean has - // a non-zero value (different from 1). - // We resort to a simple loop. - for (ACE_CDR::ULong i = 0; i != length && this->good_bit_; ++i) - (void) this->read_boolean (x[i]); - - return this->good_bit_; -} - -ACE_CDR::Boolean -ACE_InputCDR::read_1 (ACE_CDR::Octet *x) -{ - if (this->rd_ptr () < this->wr_ptr ()) - { - *x = *reinterpret_cast (this->rd_ptr ()); - this->start_.rd_ptr (1); - return true; - } - - this->good_bit_ = false; - return false; -} - -ACE_CDR::Boolean -ACE_InputCDR::read_2 (ACE_CDR::UShort *x) -{ - char *buf = 0; - if (this->adjust (ACE_CDR::SHORT_SIZE, buf) == 0) - { -#if !defined (ACE_DISABLE_SWAP_ON_READ) - if (!this->do_byte_swap_) - *x = *reinterpret_cast (buf); - else - ACE_CDR::swap_2 (buf, reinterpret_cast (x)); -#else - *x = *reinterpret_cast (buf); -#endif /* ACE_DISABLE_SWAP_ON_READ */ - return true; - } - this->good_bit_ = false; - return false; -} - -ACE_CDR::Boolean -ACE_InputCDR::read_4 (ACE_CDR::ULong *x) -{ - char *buf = 0; - if (this->adjust (ACE_CDR::LONG_SIZE, buf) == 0) - { -#if !defined (ACE_DISABLE_SWAP_ON_READ) - if (!this->do_byte_swap_) - *x = *reinterpret_cast (buf); - else - ACE_CDR::swap_4 (buf, reinterpret_cast (x)); -#else - *x = *reinterpret_cast (buf); -#endif /* ACE_DISABLE_SWAP_ON_READ */ - return true; - } - this->good_bit_ = false; - return false; -} - -ACE_CDR::Boolean -ACE_InputCDR::read_8 (ACE_CDR::ULongLong *x) -{ - char *buf = 0; - - if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0) - { -#if !defined (ACE_DISABLE_SWAP_ON_READ) -# if defined (__arm__) - if (!this->do_byte_swap_) - { - // Convert from Intel format (12345678 => 56781234) - const char *orig = buf; - char *target = reinterpret_cast (x); - register ACE_UINT32 x = - *reinterpret_cast (orig); - register ACE_UINT32 y = - *reinterpret_cast (orig + 4); - *reinterpret_cast (target) = y; - *reinterpret_cast (target + 4) = x; - } - else - { - // Convert from Sparc format (12345678 => 43218765) - const char *orig = buf; - char *target = reinterpret_cast (x); - register ACE_UINT32 x = - *reinterpret_cast (orig); - register ACE_UINT32 y = - *reinterpret_cast (orig + 4); - x = (x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24); - y = (y << 24) | ((y & 0xff00) << 8) | ((y & 0xff0000) >> 8) | (y >> 24); - *reinterpret_cast (target) = x; - *reinterpret_cast (target + 4) = y; - } -# else - if (!this->do_byte_swap_) - *x = *reinterpret_cast (buf); - else - ACE_CDR::swap_8 (buf, reinterpret_cast (x)); -# endif /* !__arm__ */ -#else - *x = *reinterpret_cast (buf); -#endif /* ACE_DISABLE_SWAP_ON_READ */ - return true; - } - - this->good_bit_ = false; - return false; -} - -ACE_CDR::Boolean -ACE_InputCDR::read_16 (ACE_CDR::LongDouble *x) -{ - char *buf = 0; - if (this->adjust (ACE_CDR::LONGDOUBLE_SIZE, - ACE_CDR::LONGDOUBLE_ALIGN, - buf) == 0) - { -#if !defined (ACE_DISABLE_SWAP_ON_READ) - if (!this->do_byte_swap_) - *x = *reinterpret_cast (buf); - else - ACE_CDR::swap_16 (buf, reinterpret_cast (x)); -#else - *x = *reinterpret_cast (buf); -#endif /* ACE_DISABLE_SWAP_ON_READ */ - return true; - } - - this->good_bit_ = false; - return false; -} - -ACE_CDR::Boolean -ACE_InputCDR::skip_string (void) -{ - ACE_CDR::ULong len = 0; - if (this->read_ulong (len)) - { - if (this->rd_ptr () + len <= this->wr_ptr ()) - { - this->rd_ptr (len); - return true; - } - this->good_bit_ = false; - } - return false; -} - -ACE_CDR::Boolean -ACE_InputCDR::skip_wstring (void) -{ - ACE_CDR::Boolean continue_skipping = true; - ACE_CDR::ULong len = 0; - - continue_skipping = read_ulong (len); - - if (continue_skipping && len != 0) - { - if (static_cast (this->major_version_) == 1 - && static_cast (this->minor_version_) == 2) - continue_skipping = this->skip_bytes ((size_t)len); - else - while (continue_skipping && len--) - continue_skipping = this->skip_wchar (); - } - return continue_skipping; -} - -ACE_CDR::Boolean -ACE_InputCDR::skip_bytes (size_t len) -{ - if (this->rd_ptr () + len <= this->wr_ptr ()) - { - this->rd_ptr (len); - return true; - } - this->good_bit_ = false; - return false; -} - -int -ACE_InputCDR::grow (size_t newsize) -{ - if (ACE_CDR::grow (&this->start_, newsize) == -1) - return -1; - - ACE_CDR::mb_align (&this->start_); - this->start_.wr_ptr (newsize); - return 0; -} - -void -ACE_InputCDR::reset (const ACE_Message_Block* data, - int byte_order) -{ - this->reset_byte_order (byte_order); - ACE_CDR::consolidate (&this->start_, data); -} - -void -ACE_InputCDR::steal_from (ACE_InputCDR &cdr) -{ - this->do_byte_swap_ = cdr.do_byte_swap_; - this->start_.data_block (cdr.start_.data_block ()->duplicate ()); - - // If the message block had a DONT_DELETE flags, just clear it off.. - this->start_.clr_self_flags (ACE_Message_Block::DONT_DELETE); - this->start_.rd_ptr (cdr.start_.rd_ptr ()); - - this->start_.wr_ptr (cdr.start_.wr_ptr ()); - this->major_version_ = cdr.major_version_; - this->minor_version_ = cdr.minor_version_; - cdr.reset_contents (); -} - -void -ACE_InputCDR::exchange_data_blocks (ACE_InputCDR &cdr) -{ - // Exchange byte orders - int const byte_order = cdr.do_byte_swap_; - cdr.do_byte_swap_ = this->do_byte_swap_; - this->do_byte_swap_ = byte_order; - - // Get the destination read and write pointers - size_t const drd_pos = - cdr.start_.rd_ptr () - cdr.start_.base (); - size_t const dwr_pos = - cdr.start_.wr_ptr () - cdr.start_.base (); - - // Get the source read & write pointers - size_t const srd_pos = - this->start_.rd_ptr () - this->start_.base (); - size_t const swr_pos = - this->start_.wr_ptr () - this->start_.base (); - - // Exchange data_blocks. Dont release any of the data blocks. - ACE_Data_Block *dnb = - this->start_.replace_data_block (cdr.start_.data_block ()); - cdr.start_.replace_data_block (dnb); - - // Exchange the flags information.. - ACE_Message_Block::Message_Flags df = cdr.start_.self_flags (); - ACE_Message_Block::Message_Flags sf = this->start_.self_flags (); - - cdr.start_.clr_self_flags (df); - this->start_.clr_self_flags (sf); - - cdr.start_.set_self_flags (sf); - this->start_.set_self_flags (df); - - // Reset the pointers to zero before it is set again. - cdr.start_.reset (); - this->start_.reset (); - - // Set the read and write pointers. - if (cdr.start_.size () >= srd_pos) - cdr.start_.rd_ptr (srd_pos); - - if (cdr.start_.size () >= swr_pos) - cdr.start_.wr_ptr (swr_pos); - - if (this->start_.size () >= drd_pos) - this->start_.rd_ptr (drd_pos); - - if (this->start_.size () >= dwr_pos) - this->start_.wr_ptr (dwr_pos); - - ACE_CDR::Octet const dmajor = cdr.major_version_; - ACE_CDR::Octet const dminor = cdr.minor_version_; - - // Exchange the GIOP version info - cdr.major_version_ = this->major_version_; - cdr.minor_version_ = this->minor_version_; - - this->major_version_ = dmajor; - this->minor_version_ = dminor; -} - -ACE_Data_Block * -ACE_InputCDR::clone_from (ACE_InputCDR &cdr) -{ - this->do_byte_swap_ = cdr.do_byte_swap_; - - // Get the read & write pointer positions in the incoming CDR - // streams - char *rd_ptr = cdr.start_.rd_ptr (); - char *wr_ptr = cdr.start_.wr_ptr (); - - // Now reset the incoming CDR stream - cdr.start_.reset (); - - // As we have reset the stream, try to align the underlying message - // block in the incoming stream - ACE_CDR::mb_align (&cdr.start_); - - // Get the read & write pointer positions again - char *nrd_ptr = cdr.start_.rd_ptr (); - char *nwr_ptr = cdr.start_.wr_ptr (); - - // Actual length of the stream is.. - // @todo: This will look idiotic, but we dont seem to have much of a - // choice. How do we calculate the length of the incoming stream? - // Calling the method before calling reset () would give us the - // wrong length of the stream that needs copying. So we do the - // calulation like this - // (1) We get the and positions of the incoming - // stream. - // (2) Then we reset the stream and then align it. - // (3) We get the and positions again. (Points #1 - // thru #3 has been done already) - // (4) The difference in the and positions gives - // us the following, the actual bytes traversed by the and - // . - // (5) The bytes traversed by the is the actual length of - // the stream. - - // Actual bytes traversed - size_t rd_bytes = rd_ptr - nrd_ptr; - size_t wr_bytes = wr_ptr - nwr_ptr; - - ACE_CDR::mb_align (&this->start_); - - ACE_Data_Block *db = - this->start_.data_block (); - - // If the size of the data that needs to be copied are higher than - // what is available, then do a reallocation. - if (wr_bytes > (this->start_.size () - ACE_CDR::MAX_ALIGNMENT)) - { - // @@NOTE: We need to probably add another method to the message - // block interface to simplify this - db = - cdr.start_.data_block ()->clone_nocopy (); - - if (db == 0 || db->size ((wr_bytes) + - ACE_CDR::MAX_ALIGNMENT) == -1) - return 0; - - // Replace our data block by using the incoming CDR stream. - db = this->start_.replace_data_block (db); - - // Align the start_ message block. - ACE_CDR::mb_align (&this->start_); - - // Clear the DONT_DELETE flag if it has been set - this->start_.clr_self_flags (ACE_Message_Block::DONT_DELETE); - } - - // Now do the copy - (void) ACE_OS::memcpy (this->start_.wr_ptr (), - cdr.start_.rd_ptr (), - wr_bytes); - - // Set the read pointer position to the same point as that was in - // cdr. - this->start_.rd_ptr (rd_bytes); - this->start_.wr_ptr (wr_bytes); - - // We have changed the read & write pointers for the incoming - // stream. Set them back to the positions that they were before.. - cdr.start_.rd_ptr (rd_bytes); - cdr.start_.wr_ptr (wr_bytes); - - this->major_version_ = cdr.major_version_; - this->minor_version_ = cdr.minor_version_; - - // Copy the char/wchar translators - this->char_translator_ = cdr.char_translator_; - this->wchar_translator_ = cdr.wchar_translator_; - - return db; -} - -ACE_Message_Block* -ACE_InputCDR::steal_contents (void) -{ - ACE_Message_Block* block = this->start_.clone (); - this->start_.data_block (block->data_block ()->clone ()); - - // If at all our message had a DONT_DELETE flag set, just clear it - // off. - this->start_.clr_self_flags (ACE_Message_Block::DONT_DELETE); - - ACE_CDR::mb_align (&this->start_); - - return block; -} - -void -ACE_InputCDR::reset_contents (void) -{ - this->start_.data_block (this->start_.data_block ()->clone_nocopy ()); - - // Reset the flags... - this->start_.clr_self_flags (ACE_Message_Block::DONT_DELETE); -} - -// -------------------------------------------------------------- - -ACE_Char_Codeset_Translator::~ACE_Char_Codeset_Translator (void) -{ -} - -// -------------------------------------------------------------- - -ACE_WChar_Codeset_Translator::~ACE_WChar_Codeset_Translator (void) -{ -} - -// -------------------------------------------------------------- - -ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, const ACE_CString &x) -{ - os.write_string (x); - return os.good_bit (); -} - -ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CString &x) -{ - is.read_string (x); - return is.good_bit (); -} - -#if defined (GEN_OSTREAM_OPS) - -std::ostream& -operator<< (std::ostream &os, ACE_OutputCDR::from_boolean x) -{ - return (x.val_ ? os << "true" : os << "false"); -} - -std::ostream& -operator<< (std::ostream &os, ACE_OutputCDR::from_char x) -{ - return os << '\'' << x.val_ << '\''; -} - -std::ostream& -operator<< (std::ostream &os, ACE_OutputCDR::from_wchar x) -{ - os.setf (ios_base::showbase); - os.setf (ios_base::hex, ios_base::basefield); - os << x.val_; - os.unsetf (ios_base::showbase); - os.setf (ios_base::dec, ios_base::basefield); - return os; -} - -std::ostream& -operator<< (std::ostream &os, ACE_OutputCDR::from_octet x) -{ - // Same format (hex) and no risk of overflow. - ACE_CDR::WChar w = static_cast (x.val_); - ACE_OutputCDR::from_wchar tmp (w); - return os << tmp; -} - -#endif /* GEN_OSTREAM_OPS */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/CDR_Stream.h b/ACE/ace/CDR_Stream.h deleted file mode 100644 index 58ddea442ed..00000000000 --- a/ACE/ace/CDR_Stream.h +++ /dev/null @@ -1,1364 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file CDR_Stream.h - * - * $Id$ - * - * ACE Common Data Representation (CDR) marshaling and demarshaling - * classes. - * - * This implementation was inspired in the CDR class in SunSoft's - * IIOP engine, but has a completely different implementation and a - * different interface too. - * - * 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 - * the only known exception. - * - * Optimizations - * ------------- - * ACE_LACKS_CDR_ALIGNMENT - * @author Arvind S. Krishna - * - * CDR stream ignores alignment when marshaling data. Use this option - * only when ACE_DISABLE_SWAP_ON_READ can be enabled. This option requires - * ACE CDR engine to do both marshaling and demarshaling. - * - * - * @author TAO version by Aniruddha Gokhale - * @author Carlos O'Ryan - * @author ACE version by Jeff Parsons - * @author Istvan Buki - * @author Codeset translation by Jim Rogers - */ -//============================================================================= - -#ifndef ACE_CDR_STREAM_H -#define ACE_CDR_STREAM_H - -#include /**/ "ace/pre.h" - -#include "ace/CDR_Base.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/SStringfwd.h" -#include "ace/Message_Block.h" - -#if defined (GEN_OSTREAM_OPS) -#include "ace/streams.h" -#endif /* GEN_OSTREAM_OPS */ - -// Stuff used by the ACE CDR classes. -#if defined ACE_LITTLE_ENDIAN -# define ACE_CDR_BYTE_ORDER 1 -// little endian encapsulation byte order has value = 1 -#else /* ! ACE_LITTLE_ENDIAN */ -# define ACE_CDR_BYTE_ORDER 0 -// big endian encapsulation byte order has value = 0 -#endif /* ! ACE_LITTLE_ENDIAN */ - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Char_Codeset_Translator; -class ACE_WChar_Codeset_Translator; - -class ACE_InputCDR; - -/** - * @class ACE_OutputCDR - * - * @brief A CDR stream for writing, i.e. for marshalling. - * - * This class is based on the the CORBA spec for Java (98-02-29), - * java class omg.org.CORBA.portable.OutputStream. It diverts in - * a few ways: - * + Operations taking arrays don't have offsets, because in C++ - * it is easier to describe an array starting from x+offset. - * + Operations return an error status, because exceptions are - * not widely available in C++ (yet). - */ -class ACE_Export ACE_OutputCDR -{ -public: - /** - * The Codeset translators need access to some private members to - * efficiently marshal arrays - * For reading from an output CDR stream. - */ - friend class ACE_Char_Codeset_Translator; - friend class ACE_WChar_Codeset_Translator; - friend class ACE_InputCDR; - - /// Default constructor, allocates @a size bytes in the internal - /// buffer, if @a size == 0 it allocates the default size. - ACE_OutputCDR (size_t size = 0, - int byte_order = ACE_CDR_BYTE_ORDER, - ACE_Allocator* buffer_allocator = 0, - ACE_Allocator* data_block_allocator = 0, - ACE_Allocator* message_block_allocator = 0, - size_t memcpy_tradeoff = ACE_DEFAULT_CDR_MEMCPY_TRADEOFF, - ACE_CDR::Octet major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet minor_version = ACE_CDR_GIOP_MINOR_VERSION); - - /// Build a CDR stream with an initial buffer, it will *not* remove - /// , since it did not allocated it. It's important to be careful - /// with the alignment of . - /** - * Create an output stream from an arbitrary buffer, care must be - * exercised with alignment, because this contructor will align if - * needed. In this case @a data will not point to the start of the - * output stream. @c begin()->rd_ptr() points to the start of the - * output stream. See @c ACE_ptr_align_binary() to properly align a - * pointer and use ACE_CDR::MAX_ALIGNMENT for the correct alignment. - */ - ACE_OutputCDR (char *data, - size_t size, - int byte_order = ACE_CDR_BYTE_ORDER, - ACE_Allocator* buffer_allocator = 0, - ACE_Allocator* data_block_allocator = 0, - ACE_Allocator* message_block_allocator = 0, - size_t memcpy_tradeoff = ACE_DEFAULT_CDR_MEMCPY_TRADEOFF, - ACE_CDR::Octet giop_major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet giop_minor_version = ACE_CDR_GIOP_MINOR_VERSION); - - /// Build a CDR stream with an initial data block, it will *not* remove - /// , since it did not allocated it. It's important to be - // careful with the alignment of . - /** - * Create an output stream from an arbitrary data block, care must be - * exercised with alignment, because this contructor will align if - * needed. In this case @a data_block will not point to the - * start of the output stream. begin()->rd_ptr() points to the start - * off the output stream. See ACE_ptr_align_binary() to properly align a - * pointer and use ACE_CDR::MAX_ALIGNMENT for the correct alignment. - */ - ACE_OutputCDR (ACE_Data_Block *data_block, - int byte_order = ACE_CDR_BYTE_ORDER, - ACE_Allocator* message_block_allocator = 0, - size_t memcpy_tradeoff = ACE_DEFAULT_CDR_MEMCPY_TRADEOFF, - ACE_CDR::Octet giop_major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet giop_minor_version = ACE_CDR_GIOP_MINOR_VERSION); - - /// Build a CDR stream with an initial Message_Block chain, it will - /// *not* remove @a data, since it did not allocate it. - ACE_OutputCDR (ACE_Message_Block *data, - int byte_order = ACE_CDR_BYTE_ORDER, - size_t memcpy_tradeoff = ACE_DEFAULT_CDR_MEMCPY_TRADEOFF, - ACE_CDR::Octet giop_major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet giop_minor_version = ACE_CDR_GIOP_MINOR_VERSION); - - /// destructor - ~ACE_OutputCDR (void); - - /** - * Disambiguate overload when inserting booleans, octets, chars, and - * bounded strings. - */ - //@{ @name Helper classes - - struct ACE_Export from_boolean - { - explicit from_boolean (ACE_CDR::Boolean b); - ACE_CDR::Boolean val_; - }; - - struct ACE_Export from_octet - { - explicit from_octet (ACE_CDR::Octet o); - ACE_CDR::Octet val_; - }; - - struct ACE_Export from_char - { - explicit from_char (ACE_CDR::Char c); - ACE_CDR::Char val_; - }; - - struct ACE_Export from_wchar - { - explicit from_wchar (ACE_CDR::WChar wc); - ACE_CDR::WChar val_; - }; - - struct ACE_Export from_string - { - from_string (ACE_CDR::Char* s, - ACE_CDR::ULong b, - ACE_CDR::Boolean nocopy = 0); - from_string (const ACE_CDR::Char* s, - ACE_CDR::ULong b, - ACE_CDR::Boolean nocopy = 0); - ACE_CDR::Char *val_; - ACE_CDR::ULong bound_; - ACE_CDR::Boolean nocopy_; - }; - - struct ACE_Export from_wstring - { - from_wstring (ACE_CDR::WChar* ws, - ACE_CDR::ULong b, - ACE_CDR::Boolean nocopy = 0); - from_wstring (const ACE_CDR::WChar* ws, - ACE_CDR::ULong b, - ACE_CDR::Boolean nocopy = 0); - ACE_CDR::WChar *val_; - ACE_CDR::ULong bound_; - ACE_CDR::Boolean nocopy_; - }; - //@} - - /** - * @{ @name Write operations - * Return 0 on failure and 1 on success. - */ - ACE_CDR::Boolean write_boolean (ACE_CDR::Boolean x); - ACE_CDR::Boolean write_char (ACE_CDR::Char x); - ACE_CDR::Boolean write_wchar (ACE_CDR::WChar x); - ACE_CDR::Boolean write_octet (ACE_CDR::Octet x); - ACE_CDR::Boolean write_short (ACE_CDR::Short x); - ACE_CDR::Boolean write_ushort (ACE_CDR::UShort x); - ACE_CDR::Boolean write_long (ACE_CDR::Long x); - ACE_CDR::Boolean write_ulong (ACE_CDR::ULong x); - ACE_CDR::Boolean write_longlong (const ACE_CDR::LongLong &x); - ACE_CDR::Boolean write_ulonglong (const ACE_CDR::ULongLong &x); - ACE_CDR::Boolean write_float (ACE_CDR::Float x); - ACE_CDR::Boolean write_double (const ACE_CDR::Double &x); - ACE_CDR::Boolean write_longdouble (const ACE_CDR::LongDouble &x); - - /// For string we offer methods that accept a precomputed length. - ACE_CDR::Boolean write_string (const ACE_CDR::Char *x); - ACE_CDR::Boolean write_string (ACE_CDR::ULong len, - const ACE_CDR::Char *x); - ACE_CDR::Boolean write_string (const ACE_CString &x); - ACE_CDR::Boolean write_wstring (const ACE_CDR::WChar *x); - ACE_CDR::Boolean write_wstring (ACE_CDR::ULong length, - const ACE_CDR::WChar *x); - //@} - - /// @note the portion written starts at and ends - /// at . - /// The length is *NOT* stored into the CDR stream. - //@{ @name Array write operations - ACE_CDR::Boolean write_boolean_array (const ACE_CDR::Boolean *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_char_array (const ACE_CDR::Char *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_wchar_array (const ACE_CDR::WChar* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_octet_array (const ACE_CDR::Octet* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_short_array (const ACE_CDR::Short *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_ushort_array (const ACE_CDR::UShort *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_long_array (const ACE_CDR::Long *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_ulong_array (const ACE_CDR::ULong *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_longlong_array (const ACE_CDR::LongLong* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_ulonglong_array (const ACE_CDR::ULongLong *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_float_array (const ACE_CDR::Float *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_double_array (const ACE_CDR::Double *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean write_longdouble_array (const ACE_CDR::LongDouble* x, - ACE_CDR::ULong length); - - /// Write an octet array contained inside a MB, this can be optimized - /// to minimize copies. - ACE_CDR::Boolean write_octet_array_mb (const ACE_Message_Block* mb); - //@} - - /** - * @{ @name Placeholder/replace operations - * Facilitates writing a placeholder into a CDR stream to be replaced - * later with a different value. - * - * @note An example use for this facility is: - * @code - ACE_OutputCDR strm; - ... // insert values... - char *pos = strm.write_long_placeholder (); - ... // insert more values - ACE_CDR::Long real_val; // Somehow assign the "correct" value - strm.replace (real_val, pos); // Replace earlier placeholder - @endcode - */ - - /** - * Write a placeholder into the stream. The placeholder's pointer - * is returned so it may later be passed as the @a loc argument to - * replace (). - * These methods align the stream's write pointer properly prior to - * writing the placeholder. - */ - char* write_long_placeholder (void); - char* write_short_placeholder (void); - - /** - * Writes a new value into a specific location. This is commonly - * used to update a prior "placeholder" location in the stream. - * The specified location is assumed to have proper CDR alignment for the - * type to insert. This requirement is satisfied by using one of the - * placeholder-writing methods to align the stream for the anticipated - * value and obtain the correct location. - * Treatment of @a x with repect to byte swapping is the same as for when - * any value is inserted. - * - * @param x The value to insert into the specified location. - * @param loc The location at which to insert @a x. @a loc must be a valid - * position within the stream's current set of message blocks. - * - * @sa write_long_placeholder(), write_short_placeholder () - */ - ACE_CDR::Boolean replace (ACE_CDR::Long x, char* loc); - ACE_CDR::Boolean replace (ACE_CDR::Short x, char* loc); - //@} - - /** - * Return 0 on failure and 1 on success. - */ - //@{ @name Append contents of own CDR stream to another - ACE_CDR::Boolean append_boolean (ACE_InputCDR &); - ACE_CDR::Boolean append_char (ACE_InputCDR &); - ACE_CDR::Boolean append_wchar (ACE_InputCDR &); - ACE_CDR::Boolean append_octet (ACE_InputCDR &); - ACE_CDR::Boolean append_short (ACE_InputCDR &); - ACE_CDR::Boolean append_ushort (ACE_InputCDR &); - ACE_CDR::Boolean append_long (ACE_InputCDR &); - ACE_CDR::Boolean append_ulong (ACE_InputCDR &); - ACE_CDR::Boolean append_longlong (ACE_InputCDR &); - ACE_CDR::Boolean append_ulonglong (ACE_InputCDR &); - ACE_CDR::Boolean append_float (ACE_InputCDR &); - ACE_CDR::Boolean append_double (ACE_InputCDR &); - ACE_CDR::Boolean append_longdouble (ACE_InputCDR &); - - ACE_CDR::Boolean append_wstring (ACE_InputCDR &); - ACE_CDR::Boolean append_string (ACE_InputCDR &); - //@} - - /// Returns @c false if an error has ocurred. - /** - * @note The only expected error is to run out of memory. - */ - bool good_bit (void) const; - - /// Reuse the CDR stream to write on the old buffer. - void reset (void); - - /// Add the length of each message block in the chain. - size_t total_length (void) const; - - /** - * Return the start of the message block chain for this CDR stream. - * @note The complete CDR stream is represented by a chain of - * message blocks. - */ - const ACE_Message_Block *begin (void) const; - - /// Return the last message in the chain that is is use. - const ACE_Message_Block *end (void) const; - - /// Return the message block in chain. - const ACE_Message_Block *current (void) const; - - /// Replace the message block chain with a single message block. - /** - * Upon successful completion, there will be a single message block - * containing the data from the complete message block chain. - * - * @note The only expected error is to run out of memory. - */ - int consolidate (void); - - /** - * Access the underlying buffer (read only). @note This - * method only returns a pointer to the first block in the - * chain. - */ - const char *buffer (void) const; - - /** - * Return the size of first message block in the block chain. @note This - * method only returns information about the first block in the - * chain. - */ - size_t length (void) const; - - /** - * Utility function to allow the user more flexibility. - * Pads the stream up to the nearest -byte boundary. - * Argument MUST be a power of 2. - * Returns 0 on success and -1 on failure. - */ - int align_write_ptr (size_t alignment); - - /// Access the codeset translators. They can be null! - ACE_Char_Codeset_Translator *char_translator (void) const; - ACE_WChar_Codeset_Translator *wchar_translator (void) const; - - /// Set the char codeset translator. - void char_translator (ACE_Char_Codeset_Translator *); - /// Set the wchar codeset translator. - void wchar_translator (ACE_WChar_Codeset_Translator *); - - /// set the global size of serialized wchars. This may be different - /// than the size of a wchar_t. - static void wchar_maxbytes (size_t max_bytes); - - /// access the serialized size of wchars. - static size_t wchar_maxbytes (void); - - /** - * Return alignment of the wr_ptr(), with respect to the start of - * the CDR stream. This is not the same as the alignment of - * current->wr_ptr()! - */ - size_t current_alignment (void) const; - - /** - * Returns (in @a buf) the next position in the buffer aligned to - * @a size, it advances the Message_Block wr_ptr past the data - * (i.e., @a buf + @a size). If necessary it grows the Message_Block - * buffer. Sets the good_bit to false and returns a -1 on failure. - */ - int adjust (size_t size, - char *&buf); - - /// As above, but now the size and alignment requirements may be - /// different. - int adjust (size_t size, - size_t align, - char *&buf); - - /// If non-zero then this stream is writing in non-native byte order, - /// this is only meaningful if ACE_ENABLE_SWAP_ON_WRITE is defined. - bool do_byte_swap (void) const; - - /// If returns 0, this returns ACE_CDR_BYTE_ORDER else - /// it returns !ACE_CDR_BYTE_ORDER. - int byte_order (void) const; - - /// For use by a gateway, which creates the output stream for the - /// reply to the client in its native byte order, but which must - /// send the reply in the byte order of the target's reply to the - /// gateway. - void reset_byte_order (int byte_order); - - /// set GIOP version info - void set_version (ACE_CDR::Octet major, ACE_CDR::Octet minor); - - /// Set the underlying GIOP version.. - void get_version (ACE_CDR::Octet &major, ACE_CDR::Octet &minor); - -private: - - // Find the message block in the chain of message blocks - // that the provide location locates. - ACE_Message_Block* find (char* loc); - - /// disallow copying... - ACE_OutputCDR (const ACE_OutputCDR& rhs); - ACE_OutputCDR& operator= (const ACE_OutputCDR& rhs); - - ACE_CDR::Boolean write_1 (const ACE_CDR::Octet *x); - ACE_CDR::Boolean write_2 (const ACE_CDR::UShort *x); - ACE_CDR::Boolean write_4 (const ACE_CDR::ULong *x); - ACE_CDR::Boolean write_8 (const ACE_CDR::ULongLong *x); - ACE_CDR::Boolean write_16 (const ACE_CDR::LongDouble *x); - - /** - * write an array of @a length elements, each of @a size bytes and the - * start aligned at a multiple of . The elements are assumed - * to be packed with the right alignment restrictions. It is mostly - * designed for buffers of the basic types. - * - * This operation uses ; as explained above it is expected - * that using assignment is faster that for one element, - * but for several elements should be more efficient, it - * could be interesting to find the break even point and optimize - * for that case, but that would be too platform dependent. - */ - ACE_CDR::Boolean write_array (const void *x, - size_t size, - size_t align, - ACE_CDR::ULong length); - - - ACE_CDR::Boolean write_wchar_array_i (const ACE_CDR::WChar* x, - ACE_CDR::ULong length); - - - /** - * Grow the CDR stream. When it returns @a buf contains a pointer to - * memory in the CDR stream, with at least @a size bytes ahead of it - * and aligned to an boundary. It moved the to . - */ - int grow_and_adjust (size_t size, - size_t align, - char *&buf); - -private: - /// The start of the chain of message blocks. - ACE_Message_Block start_; - - /// The current block in the chain where we are writing. - ACE_Message_Block *current_; - -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - /** - * The current alignment as measured from the start of the buffer. - * Usually this coincides with the alignment of the buffer in - * memory, but, when we chain another buffer this "quasi invariant" - * is broken. - * The current_alignment is used to readjust the buffer following - * the stolen message block. - */ - size_t current_alignment_; -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - /** - * Is the current block writable. When we steal a buffer from the - * user and just chain it into the message block we are not supposed - * to write on it, even if it is past the start and end of the - * buffer. - */ - bool current_is_writable_; - - /** - * If not zero swap bytes at writing so the created CDR stream byte - * order does *not* match the machine byte order. The motivation - * for such a beast is that in some setting a few (fast) machines - * can be serving hundreds of slow machines with the opposite byte - * order, so it makes sense (as a load balancing device) to put the - * responsibility in the writers. THIS IS NOT A STANDARD IN CORBA, - * USE AT YOUR OWN RISK - */ - bool do_byte_swap_; - - /// Set to false when an error ocurrs. - bool good_bit_; - - /// Break-even point for copying. - size_t const memcpy_tradeoff_; - -protected: - /// GIOP version information - ACE_CDR::Octet major_version_; - ACE_CDR::Octet minor_version_; - - /// If not nil, invoke for translation of character and string data. - ACE_Char_Codeset_Translator *char_translator_; - ACE_WChar_Codeset_Translator *wchar_translator_; - - /** - * Some wide char codesets may be defined with a maximum number - * of bytes that is smaller than the size of a wchar_t. This means - * that the CDR cannot simply memcpy a block of wchars to and from - * the stream, but must instead realign the bytes appropriately. - * In cases when wchar i/o is not allowed, such as with GIOP 1.0, - * or not having a native wchar codeset defined, the maxbytes is - * set to zero, indicating no wchar data is allowed. - */ - static size_t wchar_maxbytes_; -}; - - -// **************************************************************** - -/** - * @class ACE_InputCDR - * - * @brief A CDR stream for reading, i.e. for demarshalling. - * - * This class is based on the the CORBA spec for Java (98-02-29), - * java class omg.org.CORBA.portable.InputStream. It diverts in a - * few ways: - * + Operations to retrieve basic types take parameters by - * reference. - * + Operations taking arrays don't have offsets, because in C++ - * it is easier to describe an array starting from x+offset. - * + Operations return an error status, because exceptions are - * not widely available in C++ (yet). - */ -class ACE_Export ACE_InputCDR -{ -public: - /// The translator need privileged access to efficiently demarshal - /// arrays and the such - friend class ACE_Char_Codeset_Translator; - friend class ACE_WChar_Codeset_Translator; - - /** - * Create an input stream from an arbitrary buffer. The buffer must - * be properly aligned because this contructor will *not* work if - * the buffer is aligned unproperly.See ACE_ptr_align_binary() for - * instructions on how to align a pointer properly and use - * ACE_CDR::MAX_ALIGNMENT for the correct alignment. - */ - ACE_InputCDR (const char *buf, - size_t bufsiz, - int byte_order = ACE_CDR_BYTE_ORDER, - ACE_CDR::Octet major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet minor_version = ACE_CDR_GIOP_MINOR_VERSION); - - /// Create an empty input stream. The caller is responsible for - /// putting the right data and providing the right alignment. - ACE_InputCDR (size_t bufsiz, - int byte_order = ACE_CDR_BYTE_ORDER, - ACE_CDR::Octet major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet minor_version = ACE_CDR_GIOP_MINOR_VERSION); - - /// Create an input stream from an ACE_Message_Block - /** - * The alignment of the @arg data block is carried into the new - * ACE_InputCDR object. This constructor either increments the - * @arg data reference count, or copies the data (if it's a compound - * message block) so the caller can release the block immediately - * upon return. - */ - ACE_InputCDR (const ACE_Message_Block *data, - int byte_order = ACE_CDR_BYTE_ORDER, - ACE_CDR::Octet major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet minor_version = ACE_CDR_GIOP_MINOR_VERSION, - ACE_Lock* lock = 0); - - /// Create an input stream from an ACE_Data_Block. The - /// indicates whether the can be deleted by the CDR stream - /// or not - ACE_InputCDR (ACE_Data_Block *data, - ACE_Message_Block::Message_Flags flag = 0, - int byte_order = ACE_CDR_BYTE_ORDER, - ACE_CDR::Octet major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet minor_version = ACE_CDR_GIOP_MINOR_VERSION); - - /// Create an input stream from an ACE_Data_Block. It also sets the - /// read and write pointers at the desired positions. This would be - /// helpful if the applications desires to create a new CDR stream - /// from a semi-processed datablock. - ACE_InputCDR (ACE_Data_Block *data, - ACE_Message_Block::Message_Flags flag, - size_t read_pointer_position, - size_t write_pointer_position, - int byte_order = ACE_CDR_BYTE_ORDER, - ACE_CDR::Octet major_version = ACE_CDR_GIOP_MAJOR_VERSION, - ACE_CDR::Octet minor_version = ACE_CDR_GIOP_MINOR_VERSION); - - /** - * These make a copy of the current stream state, but do not copy - * the internal buffer, so the same stream can be read multiple - * times efficiently. - */ - ACE_InputCDR (const ACE_InputCDR& rhs); - - ACE_InputCDR& operator= (const ACE_InputCDR& rhs); - - /// When interpreting indirected TypeCodes it is useful to make a - /// "copy" of the stream starting in the new position. - ACE_InputCDR (const ACE_InputCDR& rhs, - size_t size, - ACE_CDR::Long offset); - - /// This creates an encapsulated stream, the first byte must be (per - /// the spec) the byte order of the encapsulation. - ACE_InputCDR (const ACE_InputCDR& rhs, - size_t size); - - /// Create an input CDR from an output CDR. - ACE_InputCDR (const ACE_OutputCDR& rhs, - ACE_Allocator* buffer_allocator = 0, - ACE_Allocator* data_block_allocator = 0, - ACE_Allocator* message_block_allocator = 0); - - /// Helper class to transfer the contents from one input CDR to - /// another without requiring any extra memory allocations, data - /// copies or too many temporaries. - struct ACE_Export Transfer_Contents - { - Transfer_Contents (ACE_InputCDR &rhs); - - ACE_InputCDR &rhs_; - }; - /// Transfer the contents from to a new CDR - ACE_InputCDR (Transfer_Contents rhs); - - /// Destructor - ~ACE_InputCDR (void); - - /// Disambiguate overloading when extracting octets, chars, - /// booleans, and bounded strings - //@{ @name Helper classes - - struct ACE_Export to_boolean - { - explicit to_boolean (ACE_CDR::Boolean &b); - ACE_CDR::Boolean &ref_; - }; - - struct ACE_Export to_char - { - explicit to_char (ACE_CDR::Char &c); - ACE_CDR::Char &ref_; - }; - - struct ACE_Export to_wchar - { - explicit to_wchar (ACE_CDR::WChar &wc); - ACE_CDR::WChar &ref_; - }; - - struct ACE_Export to_octet - { - explicit to_octet (ACE_CDR::Octet &o); - ACE_CDR::Octet &ref_; - }; - - struct ACE_Export to_string - { - /** - * @deprecated The constructor taking a non-const string is now - * deprecated (C++ mapping 00-01-02), but we keep it - * around for backward compatibility. - */ - to_string (ACE_CDR::Char *&s, - ACE_CDR::ULong b); - to_string (const ACE_CDR::Char *&s, - ACE_CDR::ULong b); - const ACE_CDR::Char *&val_; - ACE_CDR::ULong bound_; - }; - - struct ACE_Export to_wstring - { - /// The constructor taking a non-const wstring is - /// now deprecated (C++ mapping 00-01-02), but we - /// keep it around for backward compatibility. - to_wstring (ACE_CDR::WChar *&ws, - ACE_CDR::ULong b); - to_wstring (const ACE_CDR::WChar *&ws, - ACE_CDR::ULong b); - const ACE_CDR::WChar *&val_; - ACE_CDR::ULong bound_; - }; - //@} - - /** - * Return @c false on failure and @c true on success. - */ - //@{ @name Read basic IDL types - ACE_CDR::Boolean read_boolean (ACE_CDR::Boolean& x); - ACE_CDR::Boolean read_char (ACE_CDR::Char &x); - ACE_CDR::Boolean read_wchar (ACE_CDR::WChar& x); - ACE_CDR::Boolean read_octet (ACE_CDR::Octet& x); - ACE_CDR::Boolean read_short (ACE_CDR::Short &x); - ACE_CDR::Boolean read_ushort (ACE_CDR::UShort &x); - ACE_CDR::Boolean read_long (ACE_CDR::Long &x); - ACE_CDR::Boolean read_ulong (ACE_CDR::ULong &x); - ACE_CDR::Boolean read_longlong (ACE_CDR::LongLong& x); - ACE_CDR::Boolean read_ulonglong (ACE_CDR::ULongLong& x); - ACE_CDR::Boolean read_float (ACE_CDR::Float &x); - ACE_CDR::Boolean read_double (ACE_CDR::Double &x); - ACE_CDR::Boolean read_longdouble (ACE_CDR::LongDouble &x); - - ACE_CDR::Boolean read_string (ACE_CDR::Char *&x); - ACE_CDR::Boolean read_string (ACE_CString &x); - ACE_CDR::Boolean read_wstring (ACE_CDR::WChar*& x); - //@} - - /** - * The buffer @a x must be large enough to contain @a length - * elements. - * Return @c false on failure and @c true on success. - */ - //@{ @name Read basic IDL types arrays - ACE_CDR::Boolean read_boolean_array (ACE_CDR::Boolean* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_char_array (ACE_CDR::Char *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_wchar_array (ACE_CDR::WChar* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_octet_array (ACE_CDR::Octet* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_short_array (ACE_CDR::Short *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_ushort_array (ACE_CDR::UShort *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_long_array (ACE_CDR::Long *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_ulong_array (ACE_CDR::ULong *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_longlong_array (ACE_CDR::LongLong* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_ulonglong_array (ACE_CDR::ULongLong* x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_float_array (ACE_CDR::Float *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_double_array (ACE_CDR::Double *x, - ACE_CDR::ULong length); - ACE_CDR::Boolean read_longdouble_array (ACE_CDR::LongDouble* x, - ACE_CDR::ULong length); - //@} - - /** - * Return @c false on failure and @c true on success. - */ - //@{ @name Skip elements - ACE_CDR::Boolean skip_boolean (void); - ACE_CDR::Boolean skip_char (void); - ACE_CDR::Boolean skip_wchar (void); - ACE_CDR::Boolean skip_octet (void); - ACE_CDR::Boolean skip_short (void); - ACE_CDR::Boolean skip_ushort (void); - ACE_CDR::Boolean skip_long (void); - ACE_CDR::Boolean skip_ulong (void); - ACE_CDR::Boolean skip_longlong (void); - ACE_CDR::Boolean skip_ulonglong (void); - ACE_CDR::Boolean skip_float (void); - ACE_CDR::Boolean skip_double (void); - ACE_CDR::Boolean skip_longdouble (void); - //@} - - /** - * The next field must be a string, this method skips it. It is - * useful in parsing a TypeCode. - * @return @c false on failure and @c true on success. - */ - ACE_CDR::Boolean skip_wstring (void); - ACE_CDR::Boolean skip_string (void); - - /// Skip @a n bytes in the CDR stream. - /** - * @return @c false on failure and @c true on success. - */ - ACE_CDR::Boolean skip_bytes (size_t n); - - /// returns @c false if a problem has been detected. - bool good_bit (void) const; - - /** - * @return The start of the message block chain for this CDR - * stream. - * - * @note In the current implementation the chain has length 1, but - * we are planning to change that. - */ - const ACE_Message_Block* start (void) const; - - // = The following functions are useful to read the contents of the - // CDR stream from a socket or file. - - /** - * Grow the internal buffer, reset @c rd_ptr to the first byte in - * the new buffer that is properly aligned, and set @c wr_ptr to @c - * rd_ptr @c + @c newsize - */ - int grow (size_t newsize); - - /** - * After reading and partially parsing the contents the user can - * detect a change in the byte order, this method will let him/her - * change it. - */ - void reset_byte_order (int byte_order); - - /// Re-initialize the CDR stream, copying the contents of the chain - /// of message_blocks starting from @a data. - void reset (const ACE_Message_Block *data, - int byte_order); - - /// Steal the contents from the current CDR. - ACE_Message_Block *steal_contents (void); - - /// Steal the contents of @a cdr and make a shallow copy into this - /// stream. - void steal_from (ACE_InputCDR &cdr); - - /// Exchange data blocks with the caller of this method. The read - /// and write pointers are also exchanged. - /** - * @note We now do only with the start_ message block. - */ - void exchange_data_blocks (ACE_InputCDR &cdr); - - /// Copy the data portion from the @c cdr to this cdr and return the - /// data content (ie. the ACE_Data_Block) from this CDR to the - /// caller. - /** - * @note The caller is responsible for managing the memory of the - * returned ACE_Data_Block. - */ - ACE_Data_Block* clone_from (ACE_InputCDR &cdr); - - /// Re-initialize the CDR stream, forgetting about the old contents - /// of the stream and allocating a new buffer (from the allocators). - void reset_contents (void); - - /// Returns the current position for the @c rd_ptr. - char* rd_ptr (void); - - /// Returns the current position for the @c wr_ptr. - char* wr_ptr (void); - - /// Return how many bytes are left in the stream. - size_t length (void) const; - - /** - * Utility function to allow the user more flexibility. - * Skips up to the nearest @a alignment-byte boundary. - * Argument MUST be a power of 2. - * - * @return 0 on success and -1 on failure. - */ - int align_read_ptr (size_t alignment); - - /// If @c true then this stream is writing in non-native byte order. - /// This is only meaningful if ACE_ENABLE_SWAP_ON_WRITE is defined. - bool do_byte_swap (void) const; - - /// If @c do_byte_swap() returns @c false, this returns - /// ACE_CDR_BYTE_ORDER else it returns !ACE_CDR_BYTE_ORDER. - int byte_order (void) const; - - /// Access the codeset translators. They can be nil! - ACE_Char_Codeset_Translator *char_translator (void) const; - ACE_WChar_Codeset_Translator *wchar_translator (void) const; - - /// Set the codeset translators. - void char_translator (ACE_Char_Codeset_Translator *); - void wchar_translator (ACE_WChar_Codeset_Translator *); - - /** - * Returns (in @a buf) the next position in the buffer aligned to - * @a size. It advances the Message_Block @c rd_ptr past the data - * (i.e., @c buf @c + @c size). Sets the good_bit to @c false and - * returns a -1 on failure. - */ - int adjust (size_t size, - char *&buf); - - /// As above, but now the size and alignment requirements may be - /// different. - int adjust (size_t size, - size_t align, - char *&buf); - - /// Set the underlying GIOP version.. - void set_version (ACE_CDR::Octet major, ACE_CDR::Octet minor); - - /// Set the underlying GIOP version.. - void get_version (ACE_CDR::Octet &major, ACE_CDR::Octet &minor); - -protected: - - /// The start of the chain of message blocks, even though in the - /// current version the chain always has length 1. - ACE_Message_Block start_; - - /// The CDR stream byte order does not match the one on the machine, - /// swapping is needed while reading. - bool do_byte_swap_; - - /// set to @c false when an error occurs. - bool good_bit_; - - /// The GIOP versions for this stream - ACE_CDR::Octet major_version_; - ACE_CDR::Octet minor_version_; - - /// If not nil, invoke for translation of character and string data. - ACE_Char_Codeset_Translator *char_translator_; - ACE_WChar_Codeset_Translator *wchar_translator_; - -private: - - ACE_CDR::Boolean read_1 (ACE_CDR::Octet *x); - ACE_CDR::Boolean read_2 (ACE_CDR::UShort *x); - ACE_CDR::Boolean read_4 (ACE_CDR::ULong *x); - ACE_CDR::Boolean read_8 (ACE_CDR::ULongLong *x); - ACE_CDR::Boolean read_16 (ACE_CDR::LongDouble *x); - - // Several types can be read using the same routines, since TAO - // tries to use native types with known size for each CORBA type. - // We could use void* or char* to make the interface more - // consistent, but using native types let us exploit the strict - // alignment requirements of CDR streams and implement the - // operations using asignment. - - /** - * Read an array of @a length elements, each of @a size bytes and the - * start aligned at a multiple of . The elements are assumed - * to be packed with the right alignment restrictions. It is mostly - * designed for buffers of the basic types. - * - * This operation uses ; as explained above it is expected - * that using assignment is faster that for one element, - * but for several elements should be more efficient, it - * could be interesting to find the break even point and optimize - * for that case, but that would be too platform dependent. - */ - ACE_CDR::Boolean read_array (void* x, - size_t size, - size_t align, - ACE_CDR::ULong length); - - /** - * On those occasions when the native codeset for wchar is smaller than - * the size of a wchar_t, such as using UTF-16 with a 4-byte wchar_t, a - * special form of reading the array is needed. Actually, this should be - * a default translator. - */ - ACE_CDR::Boolean read_wchar_array_i (ACE_CDR::WChar * x, - ACE_CDR::ULong length); - - /// Move the rd_ptr ahead by @a offset bytes. - void rd_ptr (size_t offset); - - /// Points to the continuation field of the current message block. - char* end (void); -}; - -// **************************************************************** - -/** - * @class ACE_Char_Codeset_Translator - * - * @brief Codeset translation routines common to both Output and Input - * CDR streams. - * - * This class is a base class for defining codeset translation - * routines to handle the character set translations required by - * both CDR Input streams and CDR Output streams. - * - * Translators are reference counted. This allows for stateful as well - * as stateless translators. Stateless translators will be allocated - * once whereas CDR Streams own their own copy of a stateful translator. - */ -class ACE_Export ACE_Char_Codeset_Translator -{ -public: - virtual ~ACE_Char_Codeset_Translator (); - - /// Read a single character from the stream, converting from the - /// stream codeset to the native codeset - virtual ACE_CDR::Boolean read_char (ACE_InputCDR&, - ACE_CDR::Char&) = 0; - - /// Read a string from the stream, including the length, converting - /// the characters from the stream codeset to the native codeset - virtual ACE_CDR::Boolean read_string (ACE_InputCDR&, - ACE_CDR::Char *&) = 0; - - /// Read an array of characters from the stream, converting the - /// characters from the stream codeset to the native codeset. - virtual ACE_CDR::Boolean read_char_array (ACE_InputCDR&, - ACE_CDR::Char*, - ACE_CDR::ULong) = 0; - - /// Write a single character to the stream, converting from the - /// native codeset to the stream codeset - virtual ACE_CDR::Boolean write_char (ACE_OutputCDR&, - ACE_CDR::Char) = 0; - - /// Write a string to the stream, including the length, converting - /// from the native codeset to the stream codeset - virtual ACE_CDR::Boolean write_string (ACE_OutputCDR&, - ACE_CDR::ULong, - const ACE_CDR::Char*) = 0; - - /// Write an array of characters to the stream, converting from the - /// native codeset to the stream codeset - virtual ACE_CDR::Boolean write_char_array (ACE_OutputCDR&, - const ACE_CDR::Char*, - ACE_CDR::ULong) = 0; - - virtual ACE_CDR::ULong ncs () = 0; - virtual ACE_CDR::ULong tcs () = 0; -protected: - /// Children have access to low-level routines because they cannot - /// use read_char or something similar (it would recurse). - ACE_CDR::Boolean read_1 (ACE_InputCDR& input, - ACE_CDR::Octet *x); - ACE_CDR::Boolean write_1 (ACE_OutputCDR& output, - const ACE_CDR::Octet *x); - - /// Efficiently read @a length elements of size @a size each from - /// into ; the data must be aligned to . - ACE_CDR::Boolean read_array (ACE_InputCDR& input, - void* x, - size_t size, - size_t align, - ACE_CDR::ULong length); - - /** - * Efficiently write @a length elements of size @a size from into - * . Before inserting the elements enough padding is added - * to ensure that the elements will be aligned to in the - * stream. - */ - ACE_CDR::Boolean write_array (ACE_OutputCDR& output, - const void *x, - size_t size, - size_t align, - ACE_CDR::ULong length); - - /** - * Exposes the stream implementation of , this is useful in - * many cases to minimize memory allocations during marshaling. - * On success @a buf will contain a contiguous area in the CDR stream - * that can hold @a size bytes aligned to . - * Results - */ - int adjust (ACE_OutputCDR& out, - size_t size, - size_t align, - char *&buf); - - /// Used by derived classes to set errors in the CDR stream. - void good_bit (ACE_OutputCDR& out, bool bit); - - /// Obtain the CDR Stream's major & minor version values. - ACE_CDR::Octet major_version (ACE_InputCDR& input); - ACE_CDR::Octet minor_version (ACE_InputCDR& input); - ACE_CDR::Octet major_version (ACE_OutputCDR& output); - ACE_CDR::Octet minor_version (ACE_OutputCDR& output); -}; - -// **************************************************************** - -/** - * @class ACE_WChar_Codeset_Translator - * - * @brief Codeset translation routines common to both Output and Input - * CDR streams. - * - * This class is a base class for defining codeset translation - * routines to handle the character set translations required by - * both CDR Input streams and CDR Output streams. - */ -class ACE_Export ACE_WChar_Codeset_Translator -{ -public: - virtual ~ACE_WChar_Codeset_Translator (); - - virtual ACE_CDR::Boolean read_wchar (ACE_InputCDR&, - ACE_CDR::WChar&) = 0; - virtual ACE_CDR::Boolean read_wstring (ACE_InputCDR&, - ACE_CDR::WChar *&) = 0; - virtual ACE_CDR::Boolean read_wchar_array (ACE_InputCDR&, - ACE_CDR::WChar*, - ACE_CDR::ULong) = 0; - virtual ACE_CDR::Boolean write_wchar (ACE_OutputCDR&, - ACE_CDR::WChar) = 0; - virtual ACE_CDR::Boolean write_wstring (ACE_OutputCDR&, - ACE_CDR::ULong, - const ACE_CDR::WChar*) = 0; - virtual ACE_CDR::Boolean write_wchar_array (ACE_OutputCDR&, - const ACE_CDR::WChar*, - ACE_CDR::ULong) = 0; - - virtual ACE_CDR::ULong ncs () = 0; - virtual ACE_CDR::ULong tcs () = 0; -protected: - /// Children have access to low-level routines because they cannot - /// use read_char or something similar (it would recurse). - ACE_CDR::Boolean read_1 (ACE_InputCDR& input, - ACE_CDR::Octet *x); - ACE_CDR::Boolean read_2 (ACE_InputCDR& input, - ACE_CDR::UShort *x); - ACE_CDR::Boolean read_4 (ACE_InputCDR& input, - ACE_CDR::ULong *x); - ACE_CDR::Boolean write_1 (ACE_OutputCDR& output, - const ACE_CDR::Octet *x); - ACE_CDR::Boolean write_2 (ACE_OutputCDR& output, - const ACE_CDR::UShort *x); - ACE_CDR::Boolean write_4 (ACE_OutputCDR& output, - const ACE_CDR::ULong *x); - - /// Efficiently read @a length elements of size @a size each from - /// into ; the data must be aligned to . - ACE_CDR::Boolean read_array (ACE_InputCDR& input, - void* x, - size_t size, - size_t align, - ACE_CDR::ULong length); - - /** - * Efficiently write @a length elements of size @a size from into - * . Before inserting the elements enough padding is added - * to ensure that the elements will be aligned to in the - * stream. - */ - ACE_CDR::Boolean write_array (ACE_OutputCDR& output, - const void *x, - size_t size, - size_t align, - ACE_CDR::ULong length); - - /** - * Exposes the stream implementation of , this is useful in - * many cases to minimize memory allocations during marshaling. - * On success @a buf will contain a contiguous area in the CDR stream - * that can hold @a size bytes aligned to . - * Results - */ - int adjust (ACE_OutputCDR& out, - size_t size, - size_t align, - char *&buf); - - /// Used by derived classes to set errors in the CDR stream. - void good_bit (ACE_OutputCDR& out, bool bit); - - /// Obtain the CDR Stream's major & minor version values. - ACE_CDR::Octet major_version (ACE_InputCDR& input); - ACE_CDR::Octet minor_version (ACE_InputCDR& input); - ACE_CDR::Octet major_version (ACE_OutputCDR& output); - ACE_CDR::Octet minor_version (ACE_OutputCDR& output); - -}; - -// @@ These operators should not be inlined since they force SString.h -// to be included in this header. -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - const ACE_CString &x); - -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CString &x); - - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -# include "ace/CDR_Stream.inl" -#else /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Not used by CORBA or TAO -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_CDR::Char x); -// CDR output operators for primitive types - -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_CDR::Short x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_CDR::UShort x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_CDR::Long x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_CDR::ULong x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_CDR::LongLong x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_CDR::ULongLong x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR& os, - ACE_CDR::LongDouble x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_CDR::Float x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_CDR::Double x); - -// CDR output operator from helper classes - -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_OutputCDR::from_boolean x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_OutputCDR::from_char x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_OutputCDR::from_wchar x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_OutputCDR::from_octet x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_OutputCDR::from_string x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - ACE_OutputCDR::from_wstring x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - const ACE_CDR::Char* x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, - const ACE_CDR::WChar* x); - -// Not used by CORBA or TAO -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::Char &x); -// CDR input operators for primitive types - -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::Short &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::UShort &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::Long &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::ULong &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::LongLong &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::ULongLong &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::LongDouble &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::Float &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::Double &x); - -// CDR input operator from helper classes - -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_InputCDR::to_boolean x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_InputCDR::to_char x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_InputCDR::to_wchar x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_InputCDR::to_octet x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_InputCDR::to_string x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_InputCDR::to_wstring x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::Char*& x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, - ACE_CDR::WChar*& x); - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* __ACE_INLINE__ */ - -#if defined (GEN_OSTREAM_OPS) - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// ostream insertion operators for debugging code generated from IDL. All -// but these below are either in generated code itself or are unambiguous -// primitive types. - -ACE_Export std::ostream& operator<< (std::ostream &os, - ACE_OutputCDR::from_boolean x); - -ACE_Export std::ostream& operator<< (std::ostream &os, - ACE_OutputCDR::from_char x); - -ACE_Export std::ostream& operator<< (std::ostream &os, - ACE_OutputCDR::from_wchar x); - -ACE_Export std::ostream& operator<< (std::ostream &os, - ACE_OutputCDR::from_octet x); - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* GEN_OSTREAM_OPS */ - -#include /**/ "ace/post.h" - -#endif /* ACE_CDR_STREAM_H */ diff --git a/ACE/ace/CDR_Stream.inl b/ACE/ace/CDR_Stream.inl deleted file mode 100644 index 9f13889237f..00000000000 --- a/ACE/ace/CDR_Stream.inl +++ /dev/null @@ -1,1700 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_string.h" -#include "ace/OS_Memory.h" - -// **************************************************************** - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// implementing the special types -ACE_INLINE -ACE_OutputCDR::from_boolean::from_boolean (ACE_CDR::Boolean b) - : val_ (b) -{ -} - -ACE_INLINE -ACE_InputCDR::to_boolean::to_boolean (ACE_CDR::Boolean &b) - : ref_ (b) -{ -} - -ACE_INLINE -ACE_OutputCDR::from_octet::from_octet (ACE_CDR::Octet o) - : val_ (o) -{ -} - -ACE_INLINE -ACE_InputCDR::to_octet::to_octet (ACE_CDR::Octet &o) - : ref_ (o) -{ -} - -ACE_INLINE -ACE_OutputCDR::from_char::from_char (ACE_CDR::Char c) - : val_ (c) -{ -} - -ACE_INLINE -ACE_InputCDR::to_char::to_char (ACE_CDR::Char &c) - : ref_ (c) -{ -} - -ACE_INLINE -ACE_OutputCDR::from_wchar::from_wchar (ACE_CDR::WChar wc) - : val_ (wc) -{ -} - -ACE_INLINE -ACE_InputCDR::to_wchar::to_wchar (ACE_CDR::WChar &wc) - : ref_ (wc) -{ -} - -ACE_INLINE -ACE_OutputCDR::from_string::from_string (ACE_CDR::Char *s, - ACE_CDR::ULong b, - ACE_CDR::Boolean nocopy) - : val_ (s), - bound_ (b), - nocopy_ (nocopy) -{ -} - -ACE_INLINE -ACE_OutputCDR::from_string::from_string (const ACE_CDR::Char *s, - ACE_CDR::ULong b, - ACE_CDR::Boolean nocopy) - : val_ (const_cast (s)), - bound_ (b), - nocopy_ (nocopy) -{ -} - -ACE_INLINE -ACE_InputCDR::to_string::to_string (ACE_CDR::Char *&s, - ACE_CDR::ULong b) - : val_ (const_cast (s)), - bound_ (b) -{ -} - -ACE_INLINE -ACE_InputCDR::to_string::to_string (const ACE_CDR::Char *&s, - ACE_CDR::ULong b) - : val_ (s), - bound_ (b) -{ -} - -ACE_INLINE -ACE_OutputCDR::from_wstring::from_wstring (ACE_CDR::WChar *ws, - ACE_CDR::ULong b, - ACE_CDR::Boolean nocopy) - : val_ (ws), - bound_ (b), - nocopy_ (nocopy) -{ -} - -ACE_INLINE -ACE_OutputCDR::from_wstring::from_wstring (const ACE_CDR::WChar *ws, - ACE_CDR::ULong b, - ACE_CDR::Boolean nocopy) - : val_ (const_cast (ws)), - bound_ (b), - nocopy_ (nocopy) -{ -} - -ACE_INLINE -ACE_InputCDR::to_wstring::to_wstring (ACE_CDR::WChar *&ws, - ACE_CDR::ULong b) - : val_ (const_cast (ws)), - bound_ (b) -{ -} - -ACE_INLINE -ACE_InputCDR::to_wstring::to_wstring (const ACE_CDR::WChar *&ws, - ACE_CDR::ULong b) - : val_ (ws), - bound_ (b) -{ -} - -ACE_INLINE -ACE_InputCDR::Transfer_Contents::Transfer_Contents (ACE_InputCDR &rhs) - : rhs_ (rhs) -{ -} - -// **************************************************************** - -ACE_INLINE -ACE_OutputCDR::~ACE_OutputCDR (void) -{ - if (this->start_.cont () != 0) - { - ACE_Message_Block::release (this->start_.cont ()); - this->start_.cont (0); - } - this->current_ = 0; -} - -ACE_INLINE void -ACE_OutputCDR::reset (void) -{ - this->current_ = &this->start_; - this->current_is_writable_ = true; - ACE_CDR::mb_align (&this->start_); - -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - this->current_alignment_ = 0; -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - // It is tempting not to remove the memory, but we need to do so to - // release any potential user buffers chained in the continuation - // field. - - ACE_Message_Block * const cont = this->start_.cont (); - if (cont) - { - ACE_Message_Block::release (cont); - this->start_.cont (0); - } -} - -// Encode the CDR stream. - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_octet (ACE_CDR::Octet x) -{ - return this->write_1 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_boolean (ACE_CDR::Boolean x) -{ - return - static_cast ( - this->write_octet ( - x - ? static_cast (1) - : static_cast (0))); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_char (ACE_CDR::Char x) -{ - if (this->char_translator_ == 0) - { - ACE_CDR::Octet temp = static_cast (x); - return this->write_1 (&temp); - } - return this->char_translator_->write_char (*this, x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_short (ACE_CDR::Short x) -{ - ACE_CDR::UShort temp = static_cast (x); - return this->write_2 (&temp); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_ushort (ACE_CDR::UShort x) -{ - return this->write_2 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_long (ACE_CDR::Long x) -{ - ACE_CDR::ULong temp = static_cast (x); - return this->write_4 (&temp); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_ulong (ACE_CDR::ULong x) -{ - return this->write_4 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_longlong (const ACE_CDR::LongLong &x) -{ - void const * const temp = &x; - return this->write_8 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_ulonglong (const ACE_CDR::ULongLong &x) -{ - return this->write_8 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_float (ACE_CDR::Float x) -{ - void const * const temp = &x; - return this->write_4 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_double (const ACE_CDR::Double &x) -{ - void const * const temp = &x; - return this->write_8 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_longdouble (const ACE_CDR::LongDouble &x) -{ - return this->write_16 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_string (const ACE_CDR::Char *x) -{ - if (x) - { - ACE_CDR::ULong const len = - static_cast (ACE_OS::strlen (x)); - return this->write_string (len, x); - } - - return this->write_string (0, 0); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_wstring (const ACE_CDR::WChar *x) -{ - if (x) - { - ACE_CDR::ULong const len = - static_cast (ACE_OS::strlen (x)); - return this->write_wstring (len, x); - } - - return this->write_wstring (0, 0); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_char_array (const ACE_CDR::Char *x, - ACE_CDR::ULong length) -{ - if (this->char_translator_ == 0) - return this->write_array (x, - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - length); - return this->char_translator_->write_char_array (*this, x, length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_wchar_array (const ACE_CDR::WChar* x, - ACE_CDR::ULong length) -{ - if (this->wchar_translator_) - return this->wchar_translator_->write_wchar_array (*this, x, length); - - if (ACE_OutputCDR::wchar_maxbytes_ == 0) - { - errno = EACCES; - return (ACE_CDR::Boolean) (this->good_bit_ = false); - } - - if (ACE_OutputCDR::wchar_maxbytes_ == sizeof (ACE_CDR::WChar)) - return this->write_array (x, - sizeof (ACE_CDR::WChar), - sizeof (ACE_CDR::WChar) == 2 - ? ACE_CDR::SHORT_ALIGN - : ACE_CDR::LONG_ALIGN, - length); - return this->write_wchar_array_i (x,length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_octet_array (const ACE_CDR::Octet* x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_short_array (const ACE_CDR::Short *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::SHORT_SIZE, - ACE_CDR::SHORT_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_ushort_array (const ACE_CDR::UShort *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::SHORT_SIZE, - ACE_CDR::SHORT_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_long_array (const ACE_CDR::Long *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONG_SIZE, - ACE_CDR::LONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_ulong_array (const ACE_CDR::ULong *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONG_SIZE, - ACE_CDR::LONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_longlong_array (const ACE_CDR::LongLong *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONGLONG_SIZE, - ACE_CDR::LONGLONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_ulonglong_array (const ACE_CDR::ULongLong *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONGLONG_SIZE, - ACE_CDR::LONGLONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_float_array (const ACE_CDR::Float *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONG_SIZE, - ACE_CDR::LONG_ALIGN, - length); -} - - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_double_array (const ACE_CDR::Double *x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONGLONG_SIZE, - ACE_CDR::LONGLONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_longdouble_array (const ACE_CDR::LongDouble* x, - ACE_CDR::ULong length) -{ - return this->write_array (x, - ACE_CDR::LONGDOUBLE_SIZE, - ACE_CDR::LONGDOUBLE_ALIGN, - length); -} - -ACE_INLINE bool -ACE_OutputCDR::good_bit (void) const -{ - return this->good_bit_; -} - -ACE_INLINE int -ACE_OutputCDR::adjust (size_t size, - size_t align, - char*& buf) -{ - if (!this->current_is_writable_) - return this->grow_and_adjust (size, align, buf); - -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - size_t const offset = - ACE_align_binary (this->current_alignment_, align) - - this->current_alignment_; - - buf = this->current_->wr_ptr () + offset; -#else - buf = this->current_->wr_ptr (); -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - char * const end = buf + size; - - if (end <= this->current_->end () && - end >= buf) - { -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - this->current_alignment_ += offset + size; -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - this->current_->wr_ptr (end); - return 0; - } - - return this->grow_and_adjust (size, align, buf); -} - -ACE_INLINE int -ACE_OutputCDR::adjust (size_t size, char*& buf) -{ - return this->adjust (size, size, buf); -} - -ACE_INLINE void -ACE_OutputCDR::set_version (ACE_CDR::Octet major, ACE_CDR::Octet minor) -{ - this->major_version_ = major; - this->minor_version_ = minor; -} - -ACE_INLINE void -ACE_OutputCDR::get_version (ACE_CDR::Octet &major, ACE_CDR::Octet &minor) -{ - major = this->major_version_; - minor = this->minor_version_; -} - - -ACE_INLINE const ACE_Message_Block* -ACE_OutputCDR::begin (void) const -{ - return &this->start_; -} - -ACE_INLINE const ACE_Message_Block* -ACE_OutputCDR::end (void) const -{ - return this->current_->cont (); -} - -ACE_INLINE const ACE_Message_Block* -ACE_OutputCDR::current (void) const -{ - return this->current_; -} - -ACE_INLINE size_t -ACE_OutputCDR::total_length (void) const -{ - return ACE_CDR::total_length (this->begin (), this->end ()); -} - -ACE_INLINE const char* -ACE_OutputCDR::buffer (void) const -{ - return this->start_.rd_ptr (); -} - -ACE_INLINE size_t -ACE_OutputCDR::length (void) const -{ - return this->start_.length (); -} - -ACE_INLINE bool -ACE_OutputCDR::do_byte_swap (void) const -{ - return this->do_byte_swap_; -} - -ACE_INLINE int -ACE_OutputCDR::byte_order (void) const -{ - if (this->do_byte_swap ()) - return !ACE_CDR_BYTE_ORDER; - else - return ACE_CDR_BYTE_ORDER; -} - -ACE_INLINE void -ACE_OutputCDR::reset_byte_order (int byte_order) -{ - this->do_byte_swap_ = (byte_order != ACE_CDR_BYTE_ORDER); -} - -ACE_INLINE size_t -ACE_OutputCDR::current_alignment (void) const -{ -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - return this->current_alignment_; -#else - // Default value set to 0 - return 0; -#endif /* ACE_LACKS_CDR_ALIGNMENT */ -} - -ACE_INLINE int -ACE_OutputCDR::align_write_ptr (size_t alignment) -{ -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - char *dummy; - return this->adjust (0, alignment, dummy); -#else - ACE_UNUSED_ARG (alignment); - // A return value of -1 from this function is used - // to indicate failure, returning 0 - return 0; -#endif /* ACE_LACKS_CDR_ALIGNMENT */ -} - -ACE_INLINE ACE_Char_Codeset_Translator * -ACE_OutputCDR::char_translator (void) const -{ - return this->char_translator_; -} - -ACE_INLINE ACE_WChar_Codeset_Translator * -ACE_OutputCDR::wchar_translator (void) const -{ - return this->wchar_translator_; -} - -ACE_INLINE void -ACE_OutputCDR::char_translator (ACE_Char_Codeset_Translator * ctran) -{ - this->char_translator_ = ctran; -} - -ACE_INLINE void -ACE_OutputCDR::wchar_translator (ACE_WChar_Codeset_Translator * wctran) -{ - this->wchar_translator_ = wctran; -} - -// **************************************************************** - -ACE_INLINE -ACE_InputCDR::~ACE_InputCDR (void) -{ -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_octet (ACE_CDR::Octet& x) -{ - return this->read_1 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_boolean (ACE_CDR::Boolean& x) -{ - ACE_CDR::Octet tmp = 0; - (void) this->read_octet (tmp); - x = tmp ? true : false; - return (ACE_CDR::Boolean) this->good_bit_; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_char (ACE_CDR::Char &x) -{ - if (this->char_translator_ == 0) - { - void *temp = &x; - return this->read_1 (reinterpret_cast (temp)); - } - return this->char_translator_->read_char (*this, x); -} - - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_short (ACE_CDR::Short &x) -{ - void *temp = &x; - return this->read_2 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_ushort (ACE_CDR::UShort &x) -{ - return this->read_2 (&x); -} - - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_long (ACE_CDR::Long &x) -{ - void *temp = &x; - return this->read_4 (reinterpret_cast (temp)); -} - - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_ulong (ACE_CDR::ULong &x) -{ - return this->read_4 (&x); -} - - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_longlong (ACE_CDR::LongLong &x) -{ - void *temp = &x; - return this->read_8 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_ulonglong (ACE_CDR::ULongLong &x) -{ - return this->read_8 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_float (ACE_CDR::Float &x) -{ - void *temp = &x; - return this->read_4 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_double (ACE_CDR::Double &x) -{ - void *temp = &x; - return this->read_8 (reinterpret_cast (temp)); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_longdouble (ACE_CDR::LongDouble &x) -{ - return this->read_16 (&x); -} - -ACE_INLINE size_t -ACE_InputCDR::length (void) const -{ - return this->start_.length (); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_char_array (ACE_CDR::Char* x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length > this->length ()) - { - this->good_bit_ = false; - return false; - } - - if (this->char_translator_ == 0) - return this->read_array (x, - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - length); - return this->char_translator_->read_char_array (*this, x, length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_wchar_array (ACE_CDR::WChar* x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_OutputCDR::wchar_maxbytes_ > this->length ()) - { - this->good_bit_ = false; - return false; - } - - if (this->wchar_translator_ != 0) - return this->wchar_translator_->read_wchar_array (*this, x, length); - if (ACE_OutputCDR::wchar_maxbytes_ != sizeof (ACE_CDR::WChar)) - return this->read_wchar_array_i (x, length); - return this->read_array (x, - sizeof (ACE_CDR::WChar), - sizeof (ACE_CDR::WChar) == 2 - ? ACE_CDR::SHORT_ALIGN - : ACE_CDR::LONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_octet_array (ACE_CDR::Octet* x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::OCTET_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - - return this->read_array (x, - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_short_array (ACE_CDR::Short *x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::SHORT_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - - return this->read_array (x, - ACE_CDR::SHORT_SIZE, - ACE_CDR::SHORT_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_ushort_array (ACE_CDR::UShort *x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::SHORT_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - - return this->read_array (x, - ACE_CDR::SHORT_SIZE, - ACE_CDR::SHORT_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_long_array (ACE_CDR::Long *x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::LONG_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - - return this->read_array (x, - ACE_CDR::LONG_SIZE, - ACE_CDR::LONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_ulong_array (ACE_CDR::ULong *x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::LONG_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - - return this->read_array (x, - ACE_CDR::LONG_SIZE, - ACE_CDR::LONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_longlong_array (ACE_CDR::LongLong *x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::LONGLONG_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - - return this->read_array (x, - ACE_CDR::LONGLONG_SIZE, - ACE_CDR::LONGLONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_ulonglong_array (ACE_CDR::ULongLong *x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::LONGLONG_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - - return this->read_array (x, - ACE_CDR::LONGLONG_SIZE, - ACE_CDR::LONGLONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_float_array (ACE_CDR::Float *x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::LONG_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - - return this->read_array (x, - ACE_CDR::LONG_SIZE, - ACE_CDR::LONG_ALIGN, - length); -} - - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_double_array (ACE_CDR::Double *x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::LONGLONG_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - - return this->read_array (x, - ACE_CDR::LONGLONG_SIZE, - ACE_CDR::LONGLONG_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_longdouble_array (ACE_CDR::LongDouble* x, - ACE_CDR::ULong length) -{ - // Make sure the length of the array isn't greater than the length of - // the stream. - if (length * ACE_CDR::LONGDOUBLE_SIZE > this->length ()) - { - this->good_bit_ = false; - return false; - } - return this->read_array (x, - ACE_CDR::LONGDOUBLE_SIZE, - ACE_CDR::LONGDOUBLE_ALIGN, - length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_octet (void) -{ - ACE_CDR::Octet x; - return this->read_1 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_char (void) -{ - return this->skip_octet (); // sizeof (Char) == sizeof (Octet) -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_boolean (void) -{ - return this->skip_octet () && this->good_bit_; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_ushort (void) -{ - ACE_CDR::UShort x; - return this->read_2 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_short (void) -{ - return this->skip_ushort (); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_ulong (void) -{ - ACE_CDR::ULong x; - return this->read_4 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_long (void) -{ - return this->skip_ulong (); // sizeof (Long) == sizeof (ULong) -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_ulonglong (void) -{ - ACE_CDR::ULongLong x; - return this->read_8 (&x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_longlong (void) -{ - return this->skip_ulonglong (); // sizeof (LongLong) == sizeof (ULongLong) -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_float (void) -{ - return this->skip_ulong (); // sizeof(Float) == sizeof (ULong) -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_double (void) -{ - return this->skip_ulonglong (); // sizeof(Double) == sizeof (ULongLong) -} - -ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::skip_longdouble (void) -{ - ACE_CDR::LongDouble x; - return this->read_16 (&x); -} - -ACE_INLINE char* -ACE_InputCDR::end (void) -{ - return this->start_.end (); -} - -ACE_INLINE void -ACE_InputCDR::rd_ptr (size_t offset) -{ - this->start_.rd_ptr (offset); -} - -ACE_INLINE char* -ACE_InputCDR::rd_ptr (void) -{ - return this->start_.rd_ptr (); -} - -ACE_INLINE char* -ACE_InputCDR::wr_ptr (void) -{ - return this->start_.wr_ptr (); -} - -ACE_INLINE int -ACE_InputCDR::adjust (size_t size, - size_t align, - char*& buf) -{ -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - buf = ACE_ptr_align_binary (this->rd_ptr (), align); -#else - buf = this->rd_ptr (); -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - char * const end = buf + size; - if (end <= this->wr_ptr ()) - { - this->start_.rd_ptr (end); - return 0; - } - - this->good_bit_ = false; - return -1; -#if defined (ACE_LACKS_CDR_ALIGNMENT) - ACE_UNUSED_ARG (align); -#endif /* ACE_LACKS_CDR_ALIGNMENT */ -} - -ACE_INLINE int -ACE_InputCDR::adjust (size_t size, - char*& buf) -{ - return this->adjust (size, size, buf); -} - -ACE_INLINE const ACE_Message_Block* -ACE_InputCDR::start (void) const -{ - return &this->start_; -} - -ACE_INLINE bool -ACE_InputCDR::good_bit (void) const -{ - return this->good_bit_; -} - -// **************************************************************** - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::Char x) -{ - os.write_char (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::Short x) -{ - os.write_short (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::UShort x) -{ - os.write_ushort (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::Long x) -{ - os.write_long (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::ULong x) -{ - os.write_ulong (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::LongLong x) -{ - os.write_longlong (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::ULongLong x) -{ - os.write_ulonglong (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::LongDouble x) -{ - os.write_longdouble (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::Float x) -{ - os.write_float (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::Double x) -{ - os.write_double (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, const ACE_CDR::Char *x) -{ - os.write_string (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, const ACE_CDR::WChar *x) -{ - os.write_wstring (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -// The following use the helper classes -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_boolean x) -{ - (void) os.write_boolean (x.val_); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_char x) -{ - os.write_char (x.val_); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_wchar x) -{ - os.write_wchar (x.val_); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_octet x) -{ - os.write_octet (x.val_); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_string x) -{ - ACE_CDR::ULong len = 0; - - if (x.val_ != 0) - { - len = static_cast (ACE_OS::strlen (x.val_)); - } - - os.write_string (len, x.val_); - return - (ACE_CDR::Boolean) (os.good_bit () && (!x.bound_ || len <= x.bound_)); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_wstring x) -{ - ACE_CDR::ULong len = 0; - - if (x.val_ != 0) - { - len = static_cast (ACE_OS::strlen (x.val_)); - } - - os.write_wstring (len, x.val_); - return - (ACE_CDR::Boolean) (os.good_bit () && (!x.bound_ || len <= x.bound_)); -} - -// **************************************************************** - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::Char &x) -{ - return is.read_char (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::Short &x) -{ - return is.read_short (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::UShort &x) -{ - return is.read_ushort (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>>(ACE_InputCDR &is, ACE_CDR::Long &x) -{ - return is.read_long (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::ULong &x) -{ - return is.read_ulong (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR& is, ACE_CDR::LongLong &x) -{ - return is.read_longlong (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR& is, ACE_CDR::ULongLong &x) -{ - return is.read_ulonglong (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR& is, ACE_CDR::LongDouble &x) -{ - return is.read_longdouble (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::Float &x) -{ - return is.read_float (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::Double &x) -{ - return is.read_double (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::Char *&x) -{ - return is.read_string (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::WChar *&x) -{ - return is.read_wstring (x) && is.good_bit (); -} - -// The following use the helper classes -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_InputCDR::to_boolean x) -{ - return is.read_boolean (x.ref_); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_InputCDR::to_char x) -{ - return is.read_char (x.ref_) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_InputCDR::to_wchar x) -{ - return is.read_wchar (x.ref_) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_InputCDR::to_octet x) -{ - return is.read_octet (x.ref_) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_InputCDR::to_string x) -{ - // check if the bounds are satisfied - return - (is.read_string (const_cast (x.val_)) - && is.good_bit () - && (!x.bound_ - || ACE_OS::strlen (x.val_) <= x.bound_)); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_InputCDR::to_wstring x) -{ - // check if the bounds are satisfied - return - (is.read_wstring (const_cast (x.val_)) - && is.good_bit () - && (!x.bound_ - || ACE_OS::strlen (x.val_) <= x.bound_)); -} - -// *************************************************************************** -// We must define these methods here because they use the "read_*" inlined -// methods of the ACE_InputCDR class -// *************************************************************************** - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_boolean (ACE_InputCDR &stream) -{ - ACE_CDR::Boolean x; - return stream.read_boolean (x) ? this->write_boolean (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_char (ACE_InputCDR &stream) -{ - ACE_CDR::Char x; - return stream.read_char (x) ? this->write_char (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_wchar (ACE_InputCDR &stream) -{ - ACE_CDR::WChar x; - return stream.read_wchar (x) ? this->write_wchar (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_octet (ACE_InputCDR &stream) -{ - ACE_CDR::Octet x; - return stream.read_octet (x) ? this->write_octet (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_short (ACE_InputCDR &stream) -{ - ACE_CDR::Short x; - return stream.read_short (x) ? this->write_short (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_ushort (ACE_InputCDR &stream) -{ - ACE_CDR::UShort x; - return stream.read_ushort (x) ? this->write_ushort (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_long (ACE_InputCDR &stream) -{ - ACE_CDR::Long x; - return stream.read_long (x) ? this->write_long (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_ulong (ACE_InputCDR &stream) -{ - ACE_CDR::ULong x; - return stream.read_ulong (x) ? this->write_ulong (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_longlong (ACE_InputCDR &stream) -{ - ACE_CDR::LongLong x; - return stream.read_longlong (x) ? this->write_longlong (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_ulonglong (ACE_InputCDR &stream) -{ - ACE_CDR::ULongLong x; - return stream.read_ulonglong (x) ? this->write_ulonglong (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_float (ACE_InputCDR &stream) -{ - ACE_CDR::Float x; - return stream.read_float (x) ? this->write_float (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_double (ACE_InputCDR &stream) -{ - ACE_CDR::Double x; - return stream.read_double (x) ? this->write_double (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_longdouble (ACE_InputCDR &stream) -{ - ACE_CDR::LongDouble x; - return stream.read_longdouble (x) ? this->write_longdouble (x) : false; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_string (ACE_InputCDR &stream) -{ - ACE_CDR::Char *x; - const ACE_CDR::Boolean flag = - (stream.read_string (x) ? this->write_string (x) : false); - delete [] x; - return flag; -} - -ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::append_wstring (ACE_InputCDR &stream) -{ - ACE_CDR::WChar *x; - const ACE_CDR::Boolean flag = - (stream.read_wstring (x) ? this->write_wstring (x) : false); - delete [] x; - return flag; -} - -ACE_INLINE void -ACE_InputCDR::reset_byte_order (int byte_order) -{ - this->do_byte_swap_ = (byte_order != ACE_CDR_BYTE_ORDER); -} - -ACE_INLINE bool -ACE_InputCDR::do_byte_swap (void) const -{ - return this->do_byte_swap_; -} - -ACE_INLINE int -ACE_InputCDR::byte_order (void) const -{ - return this->do_byte_swap () ? !ACE_CDR_BYTE_ORDER : ACE_CDR_BYTE_ORDER; -} - -ACE_INLINE int -ACE_InputCDR::align_read_ptr (size_t alignment) -{ -#if !defined (ACE_LACKS_CDR_ALIGNMENT) - char *buf = ACE_ptr_align_binary (this->rd_ptr (), - alignment); -#else - char *buf = this->rd_ptr (); -#endif /* ACE_LACKS_CDR_ALIGNMENT */ - - if (buf <= this->wr_ptr ()) - { - this->start_.rd_ptr (buf); - return 0; - } - - this->good_bit_ = false; - return -1; -} - -ACE_INLINE void -ACE_InputCDR::set_version (ACE_CDR::Octet major, ACE_CDR::Octet minor) -{ - this->major_version_ = major; - this->minor_version_ = minor; -} - -ACE_INLINE void -ACE_InputCDR::get_version (ACE_CDR::Octet &major, ACE_CDR::Octet &minor) -{ - major = this->major_version_; - minor = this->minor_version_; -} - -ACE_INLINE ACE_Char_Codeset_Translator * -ACE_InputCDR::char_translator (void) const -{ - return this->char_translator_; -} - -ACE_INLINE ACE_WChar_Codeset_Translator * -ACE_InputCDR::wchar_translator (void) const -{ - return this->wchar_translator_; -} - - -ACE_INLINE void -ACE_InputCDR::char_translator (ACE_Char_Codeset_Translator * ctran) -{ - this->char_translator_ = ctran; -} - -ACE_INLINE void -ACE_InputCDR::wchar_translator (ACE_WChar_Codeset_Translator * wctran) -{ - this->wchar_translator_ = wctran; -} - -// **************************************************************** - -ACE_INLINE ACE_CDR::Boolean -ACE_Char_Codeset_Translator::read_1 (ACE_InputCDR& input, - ACE_CDR::Octet *x) -{ - return input.read_1 (x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_Char_Codeset_Translator::write_1 (ACE_OutputCDR& output, - const ACE_CDR::Octet *x) -{ - return output.write_1 (x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_Char_Codeset_Translator::read_array (ACE_InputCDR& in, - void* x, - size_t size, - size_t align, - ACE_CDR::ULong length) -{ - return in.read_array (x, size, align, length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_Char_Codeset_Translator::write_array (ACE_OutputCDR& out, - const void *x, - size_t size, - size_t align, - ACE_CDR::ULong length) -{ - return out.write_array(x, size, align, length); -} - -ACE_INLINE int -ACE_Char_Codeset_Translator::adjust (ACE_OutputCDR& out, - size_t size, - size_t align, - char *&buf) -{ - return out.adjust(size, align, buf); -} - -ACE_INLINE void -ACE_Char_Codeset_Translator::good_bit (ACE_OutputCDR& out, bool bit) -{ - out.good_bit_ = bit; -} - -ACE_INLINE ACE_CDR::Octet -ACE_Char_Codeset_Translator::major_version (ACE_InputCDR& input) -{ - return input.major_version_; -} - -ACE_INLINE ACE_CDR::Octet -ACE_Char_Codeset_Translator::minor_version (ACE_InputCDR& input) -{ - return input.minor_version_; -} - -ACE_INLINE ACE_CDR::Octet -ACE_Char_Codeset_Translator::major_version (ACE_OutputCDR& output) -{ - return output.major_version_; -} - -ACE_INLINE ACE_CDR::Octet -ACE_Char_Codeset_Translator::minor_version (ACE_OutputCDR& output) -{ - return output.minor_version_; -} - -// **************************************************************** - -ACE_INLINE ACE_CDR::Boolean -ACE_WChar_Codeset_Translator::read_1 (ACE_InputCDR& input, - ACE_CDR::Octet *x) -{ - return input.read_1 (x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_WChar_Codeset_Translator::read_2 (ACE_InputCDR& input, - ACE_CDR::UShort *x) -{ - return input.read_2 (x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_WChar_Codeset_Translator::read_4 (ACE_InputCDR& input, - ACE_CDR::ULong *x) -{ - return input.read_4 (x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_WChar_Codeset_Translator::write_1 (ACE_OutputCDR& output, - const ACE_CDR::Octet *x) -{ - return output.write_1 (x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_WChar_Codeset_Translator::write_2 (ACE_OutputCDR& output, - const ACE_CDR::UShort *x) -{ - return output.write_2 (x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_WChar_Codeset_Translator::write_4 (ACE_OutputCDR& output, - const ACE_CDR::ULong *x) -{ - return output.write_4 (x); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_WChar_Codeset_Translator::read_array (ACE_InputCDR& in, - void* x, - size_t size, - size_t align, - ACE_CDR::ULong length) -{ - return in.read_array (x, size, align, length); -} - -ACE_INLINE ACE_CDR::Boolean -ACE_WChar_Codeset_Translator::write_array (ACE_OutputCDR& out, - const void *x, - size_t size, - size_t align, - ACE_CDR::ULong length) -{ - return out.write_array(x, size, align, length); -} - -ACE_INLINE int -ACE_WChar_Codeset_Translator::adjust (ACE_OutputCDR& out, - size_t size, - size_t align, - char *&buf) -{ - return out.adjust(size, align, buf); -} - -ACE_INLINE void -ACE_WChar_Codeset_Translator::good_bit (ACE_OutputCDR& out, bool bit) -{ - out.good_bit_ = bit; -} - -ACE_INLINE ACE_CDR::Octet -ACE_WChar_Codeset_Translator::major_version (ACE_InputCDR& input) -{ - return input.major_version_; -} - -ACE_INLINE ACE_CDR::Octet -ACE_WChar_Codeset_Translator::minor_version (ACE_InputCDR& input) -{ - return input.minor_version_; -} - -ACE_INLINE ACE_CDR::Octet -ACE_WChar_Codeset_Translator::major_version (ACE_OutputCDR& output) -{ - return output.major_version_; -} - -ACE_INLINE ACE_CDR::Octet -ACE_WChar_Codeset_Translator::minor_version (ACE_OutputCDR& output) -{ - return output.minor_version_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/CE_Screen_Output.cpp b/ACE/ace/CE_Screen_Output.cpp deleted file mode 100644 index 800cc1c0926..00000000000 --- a/ACE/ace/CE_Screen_Output.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// $Id$ - -#include "ace/CE_Screen_Output.h" -#if defined (ACE_HAS_WINCE) - -#include "ace/Log_Msg.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_CE_Screen_Output::ACE_CE_Screen_Output(HWND hEdit) -: handler_(hEdit) -, pFile_(0) -{ -} - -ACE_CE_Screen_Output::ACE_CE_Screen_Output() -: handler_(0) -, pFile_(0) -{ -} - -ACE_CE_Screen_Output::~ACE_CE_Screen_Output() -{ - if (pFile_ != 0) { - fclose(pFile_); - } -} - -void ACE_CE_Screen_Output::log(ACE_Log_Record &log_record) -{ - ACE_TCHAR verbose_msg[ACE_Log_Record::MAXVERBOSELOGMSGLEN]; - int result = log_record.format_msg (ACE_TEXT("WindozeCE"), // host name - 0, // verbose flag - verbose_msg); - - if (result == 0) - { - verbose_msg[ ACE_OS::strlen(verbose_msg) - 1 ] = 0; // CE does not like '\n' by itself. - *this << verbose_msg << endl; - } -} - -void ACE_CE_Screen_Output::SetOutputWindow(HWND hEdit) -{ - handler_ = hEdit; -} - -void ACE_CE_Screen_Output::clear() -{ - SetWindowText(handler_, 0); -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (ACE_TCHAR* output) -{ - int length = GetWindowTextLength(handler_); - SendMessage(handler_, EM_SETSEL, length, length); - SendMessage(handler_, EM_REPLACESEL, 0, (LPARAM)output); - - if (pFile_ != 0) - { - fwprintf(pFile_, L"%s", output); - } - - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (const ACE_TCHAR* output) -{ - ACE_TCHAR* buffer = ACE_OS::strdup(output); - if (buffer != 0) - { - *this << buffer; - delete buffer; - } - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (ACE_ANTI_TCHAR* output) -{ - *this << ACE_TEXT_CHAR_TO_TCHAR(output); - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (const ACE_ANTI_TCHAR* output) -{ - *this << ACE_TEXT_CHAR_TO_TCHAR(output); - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (char output) -{ - *this << (int)output; - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (unsigned char output) -{ - *this << (int)output; - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (unsigned short output) -{ - ACE_TCHAR buffer[20]; - wsprintf(buffer, ACE_TEXT("%u"), output); - *this << buffer; - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (int output) -{ - ACE_TCHAR buffer[20]; - wsprintf(buffer, ACE_TEXT("%d"), output); - *this << buffer; - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (unsigned int output) -{ - ACE_TCHAR buffer[20]; - wsprintf(buffer, ACE_TEXT("%du"), output); - *this << buffer; - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (float output) -{ - ACE_TCHAR buffer[20]; - swprintf(buffer, ACE_TEXT("%f"), output); - *this << buffer; - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (long output) -{ - ACE_TCHAR buffer[20]; - wsprintf(buffer, ACE_TEXT("%l"), output); - *this << buffer; - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (unsigned long output) -{ - ACE_TCHAR buffer[20]; - wsprintf(buffer, ACE_TEXT("%lu"), output); - *this << buffer; - return *this; -} - -ACE_CE_Screen_Output& ACE_CE_Screen_Output::operator << (FILE* pFile) -{ - pFile_ = pFile; - return *this; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif // ACE_HAS_WINCE diff --git a/ACE/ace/CE_Screen_Output.h b/ACE/ace/CE_Screen_Output.h deleted file mode 100644 index e3ca13de295..00000000000 --- a/ACE/ace/CE_Screen_Output.h +++ /dev/null @@ -1,109 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file CE_Screen_Output.h - * - * $Id$ - * - * @author Si Mong Park - */ -//============================================================================= - -#ifndef ACE_CE_SCREEN_OUTPUT_H -#define ACE_CE_SCREEN_OUTPUT_H - -#include /**/ "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_WINCE) - -#include "ace/Log_Msg_Callback.h" -#include "ace/Log_Record.h" - -namespace -{ - const ACE_TCHAR endl[] = ACE_TEXT("\r\n"); - const ACE_TCHAR tab[] = ACE_TEXT("\t"); -} - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_CE_Screen_Output - * - * @brief Replacement of text output for Windows CE. - * - * 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 - * 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() - * and then can be used directly by user just like cout stream. - */ -class ACE_Export ACE_CE_Screen_Output : public ACE_Log_Msg_Callback -{ -public: - - ACE_CE_Screen_Output (HWND hEdit); - - ACE_CE_Screen_Output (void); - - virtual ~ACE_CE_Screen_Output(); - - /// Implementation of pure virtual function from ACE_Log_Msg_Callback. - virtual void log (ACE_Log_Record &log_record); - - /// Interface to specify active window handle. - void SetOutputWindow (HWND hWnd); - - void clear (void); - - /// Stream insertion operator that performs actual print out. - /** - * @note This is the only one operator that performs output. All - * other perators convert the type and use this operator - * underneath. - */ - ACE_CE_Screen_Output& operator << (ACE_TCHAR*); - ACE_CE_Screen_Output& operator << (const ACE_TCHAR*); - - ACE_CE_Screen_Output& operator << (ACE_ANTI_TCHAR* output); - ACE_CE_Screen_Output& operator << (const ACE_ANTI_TCHAR* output); - - ACE_CE_Screen_Output& operator << (char output); - ACE_CE_Screen_Output& operator << (unsigned char output); - - ACE_CE_Screen_Output& operator << (unsigned short output); - - ACE_CE_Screen_Output& operator << (int output); - ACE_CE_Screen_Output& operator << (unsigned int output); - - ACE_CE_Screen_Output& operator << (float output); - - ACE_CE_Screen_Output& operator << (long output); - ACE_CE_Screen_Output& operator << (unsigned long output); - - ACE_CE_Screen_Output& operator << (FILE* pFile); - -private: - - ACE_CE_Screen_Output (ACE_CE_Screen_Output&); - -private: - - HWND handler_; - - /// FILE pointer that used to save output to file. This class does - /// not own the file handler pointer. - FILE* pFile_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif // ACE_HAS_WINCE -#endif // ACE_CE_SCREEN_OUTPUT_H diff --git a/ACE/ace/CORBA_macros.h b/ACE/ace/CORBA_macros.h deleted file mode 100644 index 22ded9a54b3..00000000000 --- a/ACE/ace/CORBA_macros.h +++ /dev/null @@ -1,575 +0,0 @@ -// -*- C++ -*- - -// ============================================================================ -/** - * @file CORBA_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, mostly oriented to making the ORB code and the - * IDL generated code portable. - * - * @author Nanbor Wang - * @author Aniruddha Gokhale - * @author Carlos O'Ryan , et al. - */ -// ============================================================================ - -// Macros for handling CORBA exceptions. - -#ifndef ACE_CORBA_MACROS_H -#define ACE_CORBA_MACROS_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" - -# if !defined (ACE_LACKS_PRAGMA_ONCE) -# 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 -// 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 - -#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) - -# if defined (ACE_HAS_NEW_NOTHROW) - -# define ACE_NEW_THROW_EX(POINTER,CONSTRUCTOR,EXCEPTION) \ - do { POINTER = new (ACE_nothrow) CONSTRUCTOR; \ - if (POINTER == 0) { throw EXCEPTION; } \ - } while (0) - -# else - -# define ACE_NEW_THROW_EX(POINTER,CONSTRUCTOR,EXCEPTION) \ - do { try { POINTER = new CONSTRUCTOR; } \ - catch (ACE_bad_alloc) { ACE_del_bad_alloc throw EXCEPTION; } \ - } while (0) - -# endif /* ACE_HAS_NEW_NOTHROW */ - -#else /* ! ACE_NEW_THROWS_EXCEPTIONS */ - -# define ACE_NEW_THROW_EX(POINTER,CONSTRUCTOR,EXCEPTION) \ - do { POINTER = new CONSTRUCTOR; \ - if (POINTER == 0) { throw EXCEPTION; } \ - } while (0) - -#endif /* ACE_NEW_THROWS_EXCEPTIONS */ - -# define ACE_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \ - ACE_Guard< MUTEX > OBJ (LOCK); \ - if (OBJ.locked () == 0) throw EXCEPTION; - -# define ACE_READ_GUARD_THROW_EX(MUTEX,OBJ,LOCK,EXCEPTION) \ - ACE_Read_Guard< MUTEX > OBJ (LOCK); \ - if (OBJ.locked () == 0) throw EXCEPTION; - -# 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: - * - * void my_funct (int x, int y ACE_ENV_ARG_DECL); - * - * 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 */ - -#include /**/ "ace/post.h" - -#endif /* ACE_CORBA_MACROS_H */ diff --git a/ACE/ace/Cache_Map_Manager_T.cpp b/ACE/ace/Cache_Map_Manager_T.cpp deleted file mode 100644 index b2526fcfa99..00000000000 --- a/ACE/ace/Cache_Map_Manager_T.cpp +++ /dev/null @@ -1,420 +0,0 @@ -// $Id$ - -#ifndef ACE_CACHE_MAP_MANAGER_T_CPP -#define ACE_CACHE_MAP_MANAGER_T_CPP - -#include "ace/Cache_Map_Manager_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Log_Msg.h" -#include "ace/Malloc_Base.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Cache_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Cache_Map_Manager) - -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_Cache_Map_Manager::ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_s, - size_t size, - ACE_Allocator *alloc) - : caching_strategy_ (caching_s) -{ - if (this->open (size, alloc) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Cache_Map_Manager::ACE_Cache_Map_Manager"))); - -} - -template -ACE_Cache_Map_Manager::~ACE_Cache_Map_Manager (void) -{ - this->close (); -} - -template int -ACE_Cache_Map_Manager::open (size_t length, - ACE_Allocator *alloc) -{ - return this->map_.open (length, - alloc); -} - -template int -ACE_Cache_Map_Manager::close (void) -{ - return this->map_.close (); -} - -template int -ACE_Cache_Map_Manager::bind (const KEY &key, - const VALUE &value) -{ - // Insert an entry which has the and the which - // is the combination of the and the attributes of the - // caching strategy. - CACHE_VALUE cache_value (value, - this->caching_strategy_.attributes ()); - - int bind_result = this->map_.bind (key, - cache_value); - - if (bind_result != -1) - { - - int result = this->caching_strategy_.notify_bind (bind_result, - cache_value.second ()); - - if (result == -1) - { - - this->map_.unbind (key); - - // Unless the notification goes thru the bind operation is - // not complete. - bind_result = -1; - - } - - } - - return bind_result; -} - - -template int -ACE_Cache_Map_Manager::rebind (const KEY &key, - const VALUE &value) -{ - CACHE_VALUE cache_value (value, - this->caching_strategy_.attributes ()); - - int rebind_result = this->map_.rebind (key, - cache_value); - - if (rebind_result != -1) - { - - int result = this->caching_strategy_.notify_rebind (rebind_result, - cache_value.second ()); - - if (result == -1) - { - - // Make sure the unbind operation is done only when the - // notification fails after a bind which is denoted by - // rebind_result = 0 - if (rebind_result == 0) - this->map_.unbind (key); - - // Unless the notification goes thru the rebind operation is - // not complete. - rebind_result = -1; - - } - - } - - return rebind_result; -} - - -template int -ACE_Cache_Map_Manager::rebind (const KEY &key, - const VALUE &value, - VALUE &old_value) -{ - CACHE_VALUE cache_value (value, - this->caching_strategy_.attributes ()); - - CACHE_VALUE old_cache_value (old_value, - this->caching_strategy_.attributes ()); - - int rebind_result = this->map_.rebind (key, - cache_value, - old_cache_value); - - if (rebind_result != -1) - { - - int result = this->caching_strategy_.notify_rebind (rebind_result, - cache_value.second ()); - - if (result == -1) - { - - // Make sure the unbind operation is done only when the - // notification fails after a bind which is denoted by - // rebind_result = 0 - if (rebind_result == 0) - this->map_.unbind (key); - - // Unless the notification goes thru the rebind operation is - // not complete. - rebind_result = -1; - - } - else - { - - old_value = old_cache_value.first (); - - } - - } - - return rebind_result; -} - -template int -ACE_Cache_Map_Manager::rebind (const KEY &key, - const VALUE &value, - KEY &old_key, - VALUE &old_value) -{ - CACHE_VALUE cache_value (value, - this->caching_strategy_.attributes ()); - - CACHE_VALUE old_cache_value (old_value, - this->caching_strategy_.attributes ()); - - int rebind_result = this->map_.rebind (key, - cache_value, - old_key, - old_cache_value); - - if (rebind_result != -1) - { - - int result = this->caching_strategy_.notify_rebind (rebind_result, - cache_value.second ()); - - if (result == -1) - { - - // Make sure the unbind operation is done only when the - // notification fails after a bind which is denoted by - // rebind_result = 0 - if (rebind_result == 0) - this->map_.unbind (key); - - // Unless the notification goes thru the rebind operation is - // not complete. - rebind_result = -1; - - } - else - { - - old_value = old_cache_value.first (); - - } - - } - - return rebind_result; -} - -template int -ACE_Cache_Map_Manager::trybind (const KEY &key, - VALUE &value) -{ - CACHE_VALUE cache_value (value, - this->caching_strategy_.attributes ()); - - int trybind_result = this->map_.trybind (key, - cache_value); - - if (trybind_result != -1) - { - - int result = this->caching_strategy_.notify_trybind (trybind_result, - cache_value.second ()); - - if (result == -1) - { - - // If the entry has got inserted into the map, it is removed - // due to failure. - if (trybind_result == 0) - this->map_.unbind (key); - - trybind_result = -1; - - } - else - { - - // If an attempt is made to bind an existing entry the value - // is overwritten with the value from the map. - if (trybind_result == 1) - value = cache_value.first (); - - } - - } - - return trybind_result; -} - -template int -ACE_Cache_Map_Manager::find (const KEY &key, - VALUE &value) -{ - // Lookup the key and populate the . - CACHE_VALUE cache_value; - - int find_result = this->map_.find (key, - cache_value); - - if (find_result != -1) - { - - int result = this->caching_strategy_.notify_find (find_result, - cache_value.second ()); - - // Unless the find and notification operations go thru, this - // method is not successful. - if (result == -1) - find_result = -1; - else - { - - // Since the has now changed after the - // notification, we need to bind to the map again. - int rebind_result = this->map_.rebind (key, - cache_value); - if (rebind_result == -1) - find_result = -1; - else - value = cache_value.first (); - - } - - } - - return find_result; -} - -template int -ACE_Cache_Map_Manager::find (const KEY &key) -{ - // Lookup the key and populate the . - CACHE_VALUE cache_value; - - int find_result = this->map_.find (key, - cache_value); - - if (find_result != -1) - { - - int result = this->caching_strategy_.notify_find (find_result, - cache_value.second ()); - - // Unless the find and notification operations go thru, this - // method is not successful. - if (result == -1) - find_result = -1; - else - { - - // Since the has now changed after the - // notification, we need to bind to the map again. - int rebind_result = this->map_.rebind (key, - cache_value); - - if (rebind_result == -1) - find_result = -1; - - } - - } - - return find_result; -} - - -template int -ACE_Cache_Map_Manager::unbind (const KEY &key) -{ - // Remove the entry from the cache. - CACHE_VALUE cache_value; - - int unbind_result = this->map_.unbind (key, - cache_value); - - if (unbind_result != -1) - { - - int result = this->caching_strategy_.notify_unbind (unbind_result, - cache_value.second ()); - - if (result == -1) - unbind_result = -1; - - } - - return unbind_result; -} - -template int -ACE_Cache_Map_Manager::unbind (const KEY &key, - VALUE &value) -{ - // Remove the entry from the cache. - CACHE_VALUE cache_value; - - int unbind_result = this->map_.unbind (key, - cache_value); - - if (unbind_result != -1) - { - - int result = this->caching_strategy_.notify_unbind (unbind_result, - cache_value.second ()); - - if (result == -1) - unbind_result = -1; - else - value = cache_value.first (); - - } - - return unbind_result; -} - -template void -ACE_Cache_Map_Manager::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - this->map_.dump (); - - this->caching_strategy_.dump (); -#endif /* ACE_HAS_DUMP */ -} - -#undef ACE_T1 -#undef ACE_T2 - -template -ACE_Cache_Map_Iterator::~ACE_Cache_Map_Iterator (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_CACHE_MAP_MANAGER_T_CPP */ diff --git a/ACE/ace/Cache_Map_Manager_T.h b/ACE/ace/Cache_Map_Manager_T.h deleted file mode 100644 index 0c533f7a0ae..00000000000 --- a/ACE/ace/Cache_Map_Manager_T.h +++ /dev/null @@ -1,405 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Cache_Map_Manager_T.h - * - * $Id$ - * - * @author Kirthika Parameswaran - */ -//============================================================================= - -#ifndef ACE_CACHE_MAP_MANAGER_T_H -#define ACE_CACHE_MAP_MANAGER_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/Default_Constants.h" -#include "ace/Global_Macros.h" -#include "ace/Pair_T.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declaration. -class ACE_Allocator; - -#define ACE_Cache_Map_Iterator ACMI -#define ACE_Cache_Map_Reverse_Iterator ACMRI - -template -class ACE_Cache_Map_Iterator; - -template -class ACE_Cache_Map_Reverse_Iterator; - -// For linkers that cant grok long names. -#define ACE_Cache_Map_Manager ACMM - -/** - * @class ACE_Cache_Map_Manager - * - * @brief Defines a abstraction that will purge entries from a map. - * - * The will manage the map it contains - * and provide purging on demand from the map. The strategy for - * caching is decided by the user and provided to the Cache - * Manager. The Cache Manager acts as a agent and communicates - * between the Map and the Strategy for purging entries from the - * map. - * No locking mechanism provided since locking at this level - * isn't efficient. Locking has to be provided by the - * application. - */ -template -class ACE_Cache_Map_Manager -{ -public: - - // = Traits. - typedef KEY key_type; - typedef VALUE mapped_type; - typedef CMAP_TYPE map_type; - typedef CACHING_STRATEGY caching_strategy_type; - - typedef ITERATOR_IMPL ITERATOR_IMPLEMENTATION; - typedef REVERSE_ITERATOR_IMPL REVERSE_ITERATOR_IMPLEMENTATION; - - friend class ACE_Cache_Map_Iterator; - friend class ACE_Cache_Map_Reverse_Iterator; - - // = ACE-style iterator typedefs. - typedef ACE_Cache_Map_Iterator - ITERATOR; - typedef ACE_Cache_Map_Reverse_Iterator - REVERSE_ITERATOR; - - // = STL-style iterator typedefs. - typedef ITERATOR - iterator; - typedef REVERSE_ITERATOR - reverse_iterator; - - /** - * The actual value mapped to the key in the map. The - * are used by the strategy and is transparent to the user of this - * class. - */ - typedef ACE_Pair CACHE_VALUE; - - // = Initialization and termination methods. - - /// Initialize a with and - /// @a size entries. - ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_strategy, - size_t size = ACE_DEFAULT_MAP_SIZE, - ACE_Allocator *alloc = 0); - - /// Close down a and release dynamically allocated - /// resources. - virtual ~ACE_Cache_Map_Manager (void); - - /// Initialize a cache with size @a length. - int open (size_t length = ACE_DEFAULT_MAP_SIZE, - ACE_Allocator *alloc = 0); - - /// Close down a cache and release dynamically allocated resources. - int close (void); - - /** - * Associate @a key with @a value. If @a key is already in the CMAP_TYPE - * then the ENTRY is not changed. Returns 0 if a new entry is bound - * successfully, returns 1 if an attempt is made to bind an existing - * entry, and returns -1 if failures occur. - */ - int bind (const KEY &key, - const VALUE &value); - - /** - * Lookup entry in the cache. If it is not found, returns -1. - * If the @a key is located in the CMAP_TYPE object, the CACHING_STRATEGY is - * notified of it via notify_find (int result, ATTRIBUTES &attribute). - * If notify_find also returns 0 (success), then this function returns - * 0 (success) and sets the cached value in @a value. - */ - int find (const KEY &key, - VALUE &value); - - /** - * Lookup entry in the cache. If it is not found, returns -1. - * If the @a key is located in the CMAP_TYPE object, the CACHING_STRATEGY is - * notified of it via notify_find (int result, ATTRIBUTES &attribute). - * If notify_find also returns 0 (success), then this function returns - * 0 (success). - */ - int find (const KEY &key); - - /** - * Reassociate the @a key with @a value. If the @a key already exists - * in the cache then returns 1, on a new bind returns 0 and returns - * -1 in case of any failures. - */ - int rebind (const KEY &key, - const VALUE &value); - - /** - * Reassociate @a key with @a value, storing the old value into the - * "out" parameter @a old_value. The function fails if @a key is not - * in the cache for caches that do not allow user specified keys. - * However, for caches that allow user specified keys, if the key is - * not in the cache, a new @a key / @a value association is created. - */ - int rebind (const KEY &key, - const VALUE &value, - VALUE &old_value); - - /** - * Reassociate @a key with @a value, storing the old key and value - * into the "out" parameters @a old_key and @a old_value. The - * function fails if @a key is not in the cache for caches that do - * not allow user specified keys. However, for caches that allow - * user specified keys, if the key is not in the cache, a new - * @a key / @a value association is created. - */ - int rebind (const KEY &key, - const VALUE &value, - KEY &old_key, - VALUE &old_value); - - /** - * Associate @a key with @a value if and only if @a key is not in the - * cache. If @a key is already in the cache, then the @a value - * parameter is overwritten with the existing value in the - * cache. Returns 0 if a new @a key / @a value association is created. - * Returns 1 if an attempt is made to bind an existing entry. This - * function fails for maps that do not allow user specified keys. - */ - int trybind (const KEY &key, - VALUE &value); - - /// Remove @a key from the cache. - int unbind (const KEY &key); - - /// Remove @a key from the cache, and return the @a value associated with - /// @a key. - int unbind (const KEY &key, - VALUE &value); - - /// Remove entries from the cache depending upon the strategy. - int purge (void); - - /// Return the current size of the cache. - size_t current_size (void) const; - - /// Return the total size of the cache. - size_t total_size (void) const; - - /// Dumps the state of the object. - void dump (void) const; - - // = STL styled iterator factory functions. - - /// Return forward iterator. - ITERATOR begin (void); - ITERATOR end (void); - - /// Return reverse iterator. - REVERSE_ITERATOR rbegin (void); - REVERSE_ITERATOR rend (void); - - /// The map managed by the Cache_Map_Manager. - CMAP_TYPE &map (void); - - /// The caching strategy used on the cache. - CACHING_STRATEGY &caching_strategy (void); - -protected: - - /// The underlying map which needs to be cached. - CMAP_TYPE map_; - - /// The strategy to be followed for caching entries in the map. - CACHING_STRATEGY &caching_strategy_; - -private: - - // = Disallow these operations. - ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Cache_Map_Manager &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Cache_Map_Manager (const ACE_Cache_Map_Manager &)) - -}; - -/** - * @class ACE_Cache_Map_Iterator - * - * @brief Defines a iterator for the Cache_Map_Manager. - * - * Implementation to be provided by the iterator of the map - * managed by the ACE_Cache_Map_Manager. - */ -template -class ACE_Cache_Map_Iterator -{ - -public: - - // = Traits. - /// The actual value mapped to the key in the cache. The - /// are used by the strategy and is transperant to the cache user. - typedef ACE_Reference_Pair - value_type; - typedef ACE_Pair - CACHE_VALUE; - - // = Initialisation and termination methods. - - ACE_Cache_Map_Iterator (const IMPLEMENTATION &iterator_impl); - - /// Copy constructor. - ACE_Cache_Map_Iterator (const ACE_Cache_Map_Iterator &rhs); - - virtual ~ACE_Cache_Map_Iterator (void); - - // = Iteration methods. - - /// assignment operator. - ACE_Cache_Map_Iterator &operator= - (const ACE_Cache_Map_Iterator &rhs); - - /// Comparision operators. - bool operator== (const ACE_Cache_Map_Iterator &rhs) const; - bool operator!= (const ACE_Cache_Map_Iterator &rhs) const; - - /// Returns a reference to the internal element @c this is pointing - /// to. - ACE_Reference_Pair operator* (void) const; - - // = STL styled iteration, compare, and reference functions. - - /// Prefix advance - ACE_Cache_Map_Iterator &operator++ (void); - - /// Postfix advance. - ACE_Cache_Map_Iterator operator++ (int); - - /// Prefix reverse. - ACE_Cache_Map_Iterator &operator-- (void); - - /// Postfix reverse. - ACE_Cache_Map_Iterator operator-- (int); - - /// Returns the iterator of the internal map in the custody of the - /// Cache_Map_Manager. - IMPLEMENTATION &iterator_implementation (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// The actual iterator which iterates internally on the map - /// belonging to the Cache_Map_Manager. - IMPLEMENTATION iterator_implementation_; -}; - -/** - * @class ACE_Cache_Map_Reverse_Iterator - * - * @brief Defines a reverse iterator for the Cache_Map_Manager. - * - * Implementation to be provided by the reverse iterator of the map - * managed by thr Cache_Map_manager. - */ -template -class ACE_Cache_Map_Reverse_Iterator -{ -public: - - // = Traits. - /// The actual value mapped to the key in the cache. The - /// are used by the strategy and is transperant to the cache user. - typedef ACE_Reference_Pair value_type; - typedef ACE_Pair CACHE_VALUE; - - // = Initialisation and termination methods. - - ACE_Cache_Map_Reverse_Iterator (const REVERSE_IMPLEMENTATION &iterator_impl); - - /// Copy constructor. - ACE_Cache_Map_Reverse_Iterator (const ACE_Cache_Map_Reverse_Iterator &rhs); - - ~ACE_Cache_Map_Reverse_Iterator (void); - - // = Iteration methods. - - /// Assignment operator. - ACE_Cache_Map_Reverse_Iterator &operator= - (const ACE_Cache_Map_Reverse_Iterator &rhs); - - /// Comparision operators. - bool operator== (const ACE_Cache_Map_Reverse_Iterator &rhs) const; - bool operator!= (const ACE_Cache_Map_Reverse_Iterator &rhs) const; - - /// Returns a reference to the internal element @c this is pointing - /// to. - ACE_Reference_Pair operator* (void) const; - - // = STL styled iteration, compare, and reference functions. - - /// Prefix advance - ACE_Cache_Map_Reverse_Iterator &operator++ (void); - - /// Postfix advance. - ACE_Cache_Map_Reverse_Iterator operator++ (int); - - /// Prefix reverse. - ACE_Cache_Map_Reverse_Iterator &operator-- (void); - - /// Postfix reverse. - ACE_Cache_Map_Reverse_Iterator operator-- (int); - - /// Returns the iterator of the internal map in the custody of the - /// Cache_Map_Manager. - REVERSE_IMPLEMENTATION &iterator_implementation (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// The actual iterator which iterates internally on the map - /// belonging to the Cache_Map_Manager. - REVERSE_IMPLEMENTATION reverse_iterator_implementation_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Cache_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Cache_Map_Manager_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Cache_Map_Manager_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_CACHE_MAP_MANAGER_T_H */ diff --git a/ACE/ace/Cache_Map_Manager_T.inl b/ACE/ace/Cache_Map_Manager_T.inl deleted file mode 100644 index ba30c528dd6..00000000000 --- a/ACE/ace/Cache_Map_Manager_T.inl +++ /dev/null @@ -1,245 +0,0 @@ -// -*- C++ -*- -// -//$Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE int -ACE_Cache_Map_Manager::purge (void) -{ - return this->caching_strategy ().caching_utility ().clear_cache (this->map_, - this->caching_strategy ().purge_percent ()); -} - -template ACE_INLINE size_t -ACE_Cache_Map_Manager::current_size (void) const -{ - return this->map_.current_size (); -} - -template ACE_INLINE size_t -ACE_Cache_Map_Manager::total_size (void) const -{ - return this->map_.total_size (); -} - -template ACE_INLINE CMAP_TYPE & -ACE_Cache_Map_Manager::map (void) -{ - return this->map_; -} - -template ACE_INLINE CACHING_STRATEGY & -ACE_Cache_Map_Manager::caching_strategy (void) -{ - return this->caching_strategy_; -} - -template ACE_INLINE ACE_Cache_Map_Iterator -ACE_Cache_Map_Manager::begin (void) -{ - return ITERATOR (this->map_.begin ()); -} - -template ACE_INLINE ACE_Cache_Map_Iterator -ACE_Cache_Map_Manager::end (void) -{ - return ITERATOR (this->map_.end ()); -} - -template ACE_INLINE ACE_Cache_Map_Reverse_Iterator -ACE_Cache_Map_Manager::rbegin (void) -{ - return REVERSE_ITERATOR (this->map_.rbegin ()); -} -template ACE_INLINE ACE_Cache_Map_Reverse_Iterator -ACE_Cache_Map_Manager::rend (void) -{ - return REVERSE_ITERATOR (this->map_.rend ()); -} - -//////////////////////////////////////////////////////////////////////////////// - -template ACE_INLINE -ACE_Cache_Map_Iterator::ACE_Cache_Map_Iterator (const ACE_Cache_Map_Iterator &rhs) - : iterator_implementation_ (rhs.iterator_implementation_) -{ -} - -template ACE_INLINE ACE_Cache_Map_Iterator & -ACE_Cache_Map_Iterator::operator= (const ACE_Cache_Map_Iterator &rhs) -{ - this->iterator_implementation_ = rhs.iterator_implementation_; - return *this; -} - -template ACE_INLINE bool -ACE_Cache_Map_Iterator::operator== (const ACE_Cache_Map_Iterator &rhs) const -{ - return this->iterator_implementation_ == rhs.iterator_implementation_; -} - -template ACE_INLINE bool -ACE_Cache_Map_Iterator::operator!= (const ACE_Cache_Map_Iterator &rhs) const -{ - return this->iterator_implementation_ != rhs.iterator_implementation_; -} - -template ACE_INLINE ACE_Reference_Pair -ACE_Cache_Map_Iterator::operator* (void) const -{ - value_type retn ((*this->iterator_implementation_).ext_id_, - (*this->iterator_implementation_).int_id_.first ()); - return retn; -} - -template ACE_INLINE -ACE_Cache_Map_Iterator & -ACE_Cache_Map_Iterator::operator++ (void) -{ - ++this->iterator_implementation_; - return *this; -} - -template ACE_INLINE -ACE_Cache_Map_Iterator -ACE_Cache_Map_Iterator::operator++ (int) -{ - ACE_Cache_Map_Iterator retn = *this; - ++this->iterator_implementation_; - return retn; -} - -template ACE_INLINE -ACE_Cache_Map_Iterator & -ACE_Cache_Map_Iterator::operator-- (void) -{ - --this->iterator_implementation_; - return *this; -} - -template ACE_INLINE -ACE_Cache_Map_Iterator -ACE_Cache_Map_Iterator::operator-- (int) -{ - ACE_Cache_Map_Iterator retn = *this; - --this->iterator_implementation_; - return retn; -} - -template ACE_INLINE void -ACE_Cache_Map_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - this->iterator_implementation_.dump (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Cache_Map_Iterator::ACE_Cache_Map_Iterator (const IMPLEMENTATION &iterator_impl) - : iterator_implementation_ (iterator_impl) -{ -} - -template ACE_INLINE IMPLEMENTATION & -ACE_Cache_Map_Iterator::iterator_implementation (void) -{ - return this->iterator_implementation_; -} - -//////////////////////////////////////////////////////////////////////////////// - -template ACE_INLINE -ACE_Cache_Map_Reverse_Iterator::ACE_Cache_Map_Reverse_Iterator (const ACE_Cache_Map_Reverse_Iterator &rhs) - : reverse_iterator_implementation_ (rhs.reverse_iterator_implementation_) -{ -} - -template ACE_INLINE -ACE_Cache_Map_Reverse_Iterator::~ACE_Cache_Map_Reverse_Iterator (void) -{ -} - -template ACE_INLINE ACE_Cache_Map_Reverse_Iterator & -ACE_Cache_Map_Reverse_Iterator::operator= (const ACE_Cache_Map_Reverse_Iterator &rhs) -{ - this->reverse_iterator_implementation_ = rhs.reverse_iterator_implementation_; - return *this; -} - -template ACE_INLINE bool -ACE_Cache_Map_Reverse_Iterator::operator== (const ACE_Cache_Map_Reverse_Iterator &rhs) const -{ - return this->reverse_iterator_implementation_ == rhs.reverse_iterator_implementation_; -} - -template ACE_INLINE bool -ACE_Cache_Map_Reverse_Iterator::operator!= (const ACE_Cache_Map_Reverse_Iterator &rhs) const -{ - return this->reverse_iterator_implementation_ != rhs.reverse_iterator_implementation_; -} - -template ACE_INLINE ACE_Reference_Pair -ACE_Cache_Map_Reverse_Iterator::operator* (void) const -{ - value_type retv ((*this->reverse_iterator_implementation_).ext_id_, - (*this->reverse_iterator_implementation_).int_id_.first ()); - return retv; -} - -template ACE_INLINE -ACE_Cache_Map_Reverse_Iterator & -ACE_Cache_Map_Reverse_Iterator::operator++ (void) -{ - ++this->reverse_iterator_implementation_; - return *this; -} - -template ACE_INLINE -ACE_Cache_Map_Reverse_Iterator -ACE_Cache_Map_Reverse_Iterator::operator++ (int) -{ - ACE_Cache_Map_Reverse_Iterator retn = *this; - ++this->reverse_iterator_implementation_; - return retn; -} - -template ACE_INLINE -ACE_Cache_Map_Reverse_Iterator & -ACE_Cache_Map_Reverse_Iterator::operator-- (void) -{ - --this->reverse_iterator_implementation_; - return *this; -} - -template ACE_INLINE -ACE_Cache_Map_Reverse_Iterator -ACE_Cache_Map_Reverse_Iterator::operator-- (int) -{ - ACE_Cache_Map_Reverse_Iterator retn = *this; - --this->reverse_iterator_implementation_; - return retn; -} - - -template ACE_INLINE void -ACE_Cache_Map_Reverse_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - this->reverse_iterator_implementation_.dump (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Cache_Map_Reverse_Iterator::ACE_Cache_Map_Reverse_Iterator (const REVERSE_IMPLEMENTATION &iterator_impl) - : reverse_iterator_implementation_(iterator_impl) -{ -} - -template ACE_INLINE REVERSE_IMPLEMENTATION & -ACE_Cache_Map_Reverse_Iterator::iterator_implementation (void) -{ - return this->reverse_iterator_implementation_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Cached_Connect_Strategy_T.cpp b/ACE/ace/Cached_Connect_Strategy_T.cpp deleted file mode 100644 index 5c4720b2085..00000000000 --- a/ACE/ace/Cached_Connect_Strategy_T.cpp +++ /dev/null @@ -1,734 +0,0 @@ -//$Id$ - -#ifndef ACE_CACHED_CONNECT_STRATEGY_T_CPP -#define ACE_CACHED_CONNECT_STRATEGY_T_CPP - -#include "ace/Cached_Connect_Strategy_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/ACE.h" -#include "ace/Service_Repository.h" -#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_Cached_Connect_Strategy_Ex::ACE_Cached_Connect_Strategy_Ex -(CACHING_STRATEGY &caching_s, - ACE_Creation_Strategy *cre_s, - ACE_Concurrency_Strategy *con_s, - ACE_Recycling_Strategy *rec_s, - MUTEX *lock, - int delete_lock) - : CCSBASE (cre_s, con_s, rec_s, lock, delete_lock), - connection_cache_ (caching_s) -{ - 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\n"))); -} - -template -ACE_Cached_Connect_Strategy_Ex::~ACE_Cached_Connect_Strategy_Ex (void) -{ - cleanup (); -} - - -template int -ACE_Cached_Connect_Strategy_Ex::check_hint_i -(SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms, - ACE_Hash_Map_Entry, ACE_Pair > *&entry, - int &found) -{ - ACE_UNUSED_ARG (remote_addr); - ACE_UNUSED_ARG (timeout); - ACE_UNUSED_ARG (local_addr); - ACE_UNUSED_ARG (reuse_addr); - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (perms); - - found = 0; - - // Get the recycling act for the svc_handler - CONNECTION_CACHE_ENTRY *possible_entry = - (CONNECTION_CACHE_ENTRY *) sh->recycling_act (); - - // Check to see if the hint svc_handler has been closed down - if (possible_entry->ext_id_.recycle_state () == ACE_RECYCLABLE_CLOSED) - { - // If close, decrement refcount - 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 (); - this->purge_i (possible_entry); - } - - // Hint not successful - found = 0; - - // Reset hint - sh = 0; - } - - // If hint is not closed, see if it is connected to the correct - // address and is recyclable - else if ((possible_entry->ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_AND_PURGABLE || - possible_entry->ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_BUT_NOT_PURGABLE) && - possible_entry->ext_id_.subject () == remote_addr) - { - // Hint successful - found = 1; - - // Tell the that it should prepare itself for - // being recycled. - this->prepare_for_recycling (sh); - - // - // Update the caching attributes directly since we don't do a - // find() on the cache map. - // - - // Indicates successful find. - int find_result = 0; - - int result = this->caching_strategy ().notify_find (find_result, - possible_entry->int_id_.second ()); - - if (result == -1) - return result; - } - else - { - // This hint will not be used. - possible_entry->ext_id_.decrement (); - - // Hint not successful - found = 0; - - // If is not connected to the correct address or is busy, - // we will not use it. - sh = 0; - } - - if (found) - entry = possible_entry; - - return 0; -} - -template int -ACE_Cached_Connect_Strategy_Ex::find_or_create_svc_handler_i -(SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms, - ACE_Hash_Map_Entry, ACE_Pair > *&entry, - int &found) -{ - REFCOUNTED_HASH_RECYCLABLE_ADDRESS search_addr (remote_addr); - - // Try to find the address in the cache. Only if we don't find it - // do we create a new and connect it with the server. - while (this->find (search_addr, entry) != -1) - { - // We found a cached svc_handler. - // Get the cached - sh = entry->int_id_.first (); - - // Is the connection clean? - int state_result = - ACE::handle_ready (sh->peer ().get_handle (), - &ACE_Time_Value::zero, - 1, // read ready - 0, // write ready - 1);// exception ready - - if (state_result == 1) - { - - if (sh->close () == -1) - return -1; - - sh = 0; - - // Cycle it once again.. - } - else if ((state_result == -1) && (errno == ETIME)) - { - // Found!!! - // Set the flag - found = 1; - - // Tell the that it should prepare itself for - // being recycled. - if (this->prepare_for_recycling (sh) == -1) - return -1; - - return 0; - } - else - { - return -1; - } - } - - // Not found... - - // Set the flag - found = 0; - - // We need to use a temporary variable here since we are not - // allowed to change because other threads may use this - // when we let go of the lock during the OS level connect. - // - // Note that making a new svc_handler, connecting remotely, - // binding to the map, and assigning of the hint and recycler - // should be atomic to the outside world. - SVC_HANDLER *potential_handler = 0; - - // Create a new svc_handler - if (this->make_svc_handler (potential_handler) == -1) - return -1; - - // Connect using the svc_handler. - if (this->cached_connect (potential_handler, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms) == -1) - { - // Close the svc handler. - potential_handler->close (0); - - return -1; - } - else - { - // Insert the new SVC_HANDLER instance into the cache. - if (this->connection_cache_.bind (search_addr, - potential_handler, - entry) == -1) - { - // Close the svc handler and reset . - potential_handler->close (0); - - return -1; - } - - // Everything succeeded as planned. Assign to - // . - sh = potential_handler; - - // Set the recycler and the recycling act - - this->assign_recycler (sh, this, entry); - } - - return 0; -} - -template int -ACE_Cached_Connect_Strategy_Ex::cached_connect (SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms) -{ - // Actively establish the connection. This is a timed blocking - // connect. - if (this->new_connection (sh, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms) == -1) - { - // If connect() failed because of timeouts, we have to reject - // the connection entirely. This is necessary since currently - // there is no way for the non-blocking connects to complete and - // for the to notify the cache of the completion of - // connect(). - - if (errno == EWOULDBLOCK || errno == ETIMEDOUT) - errno = ENOTSUP; - else if (ACE::out_of_handles (errno) || errno == EADDRINUSE) - { - // If the connect failed due to the process running out of - // file descriptors then, auto_purging of some connections - // are done from the CONNECTION_CACHE. This frees the - // descriptors which get used in the connect process and - // hence the same method is called again! - if (this->purge_connections () == -1) - return -1; - - // Try connecting again. - if (this->new_connection (sh, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms) == -1) - { - if (errno == EWOULDBLOCK || errno == ETIMEDOUT) - errno = ENOTSUP; - return -1; - } - } - else - { - return -1; - } - } - - return 0; - -} - - -template int -ACE_Cached_Connect_Strategy_Ex::connect_svc_handler_i -(SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms, - int& found) -{ - CONNECTION_CACHE_ENTRY *entry = 0; - - // Check if the user passed a hint svc_handler - if (sh != 0) - { - int result = this->check_hint_i (sh, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms, - entry, - found); - if (result != 0) - return result; - } - - // If not found - if (!found) - { - int result = this->find_or_create_svc_handler_i (sh, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms, - entry, - found); - - if (result != 0) - return result; - - // Increment the refcount - entry->ext_id_.increment (); - } - - // For all successful cases: mark the in the cache - // as being . Therefore recyclable is BUSY. - entry->ext_id_.recycle_state (ACE_RECYCLABLE_BUSY); - - return 0; -} - - -template int -ACE_Cached_Connect_Strategy_Ex::cache_i (const void *recycling_act) -{ - // The wonders and perils of ACT - CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act; - - // Mark the in the cache as not being . - // Therefore recyclable is IDLE. - entry->ext_id_.recycle_state (ACE_RECYCLABLE_IDLE_AND_PURGABLE); - - return 0; -} - -template int -ACE_Cached_Connect_Strategy_Ex::recycle_state_i (const void *recycling_act, - ACE_Recyclable_State new_state) -{ - // The wonders and perils of ACT - CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act; - - // Mark the in the cache as not being . - // Therefore recyclable is IDLE. - entry->ext_id_.recycle_state (new_state); - - return 0; -} - -template ACE_Recyclable_State -ACE_Cached_Connect_Strategy_Ex::recycle_state_i (const void *recycling_act) const -{ - // The wonders and perils of ACT - CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act; - - // Mark the in the cache as not being . - // Therefore recyclable is IDLE. - return entry->ext_id_.recycle_state (); -} - -template int -ACE_Cached_Connect_Strategy_Ex::purge_i (const void *recycling_act) -{ - // The wonders and perils of ACT - CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act; - - return this->connection_cache_.unbind (entry); -} - - -template int -ACE_Cached_Connect_Strategy_Ex::mark_as_closed_i (const void *recycling_act) -{ - // The wonders and perils of ACT - CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act; - - // Mark the in the cache as CLOSED. - entry->ext_id_.recycle_state (ACE_RECYCLABLE_CLOSED); - - return 0; -} - -template int -ACE_Cached_Connect_Strategy_Ex::cleanup_hint_i (const void *recycling_act, - void **act_holder) -{ - // Reset the <*act_holder> in the confines and protection of the - // lock. - if (act_holder) - *act_holder = 0; - - // The wonders and perils of ACT - CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act; - - // Decrement the refcount on the . - int refcount = entry->ext_id_.decrement (); - - // If the svc_handler state is closed and the refcount == 0, call - // close() on svc_handler. - if (entry->ext_id_.recycle_state () == ACE_RECYCLABLE_CLOSED && - refcount == 0) - { - entry->int_id_.first ()->recycler (0, 0); - entry->int_id_.first ()->close (); - this->purge_i (entry); - } - - return 0; -} - -template int -ACE_Cached_Connect_Strategy_Ex::purge_connections (void) -{ - return this->connection_cache_.purge (); -} - -template CACHING_STRATEGY & -ACE_Cached_Connect_Strategy_Ex::caching_strategy (void) -{ - return this->connection_cache_.caching_strategy (); -} - -template int -ACE_Cached_Connect_Strategy_Ex::find (ACE_Refcounted_Hash_Recyclable &search_addr, - ACE_Hash_Map_Entry, ACE_Pair > *&entry) -{ - typedef ACE_Hash_Map_Bucket_Iterator, - ACE_Hash, - ACE_Equal_To, - ACE_Null_Mutex> - CONNECTION_CACHE_BUCKET_ITERATOR; - - CONNECTION_CACHE_BUCKET_ITERATOR iterator (this->connection_cache_.map (), - search_addr); - - CONNECTION_CACHE_BUCKET_ITERATOR end (this->connection_cache_.map (), - search_addr, - 1); - - for (; - iterator != end; - ++iterator) - { - REFCOUNTED_HASH_RECYCLABLE_ADDRESS &addr = (*iterator).ext_id_; - - if (addr.recycle_state () != ACE_RECYCLABLE_IDLE_AND_PURGABLE && - addr.recycle_state () != ACE_RECYCLABLE_IDLE_BUT_NOT_PURGABLE) - continue; - - if (addr.subject () != search_addr.subject ()) - continue; - - entry = &(*iterator); - - // - // Update the caching attributes directly since we don't do a - // find() on the cache map. - // - - // Indicates successful find. - int find_result = 0; - - int result = this->caching_strategy ().notify_find (find_result, - entry->int_id_.second ()); - - if (result == -1) - return result; - - return 0; - } - - return -1; -} - -template void -ACE_Cached_Connect_Strategy_Ex::cleanup (void) -{ - // Excluded other threads from changing the cache while we cleanup - ACE_GUARD (MUTEX, ace_mon, *this->lock_); - - // Close down all cached service handlers. - typename CONNECTION_CACHE::ITERATOR iter = this->connection_cache_.begin (); - while (iter != this->connection_cache_.end ()) - { - if ((*iter).second () != 0) - { - // save entry for future use - CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) - (*iter).second ()->recycling_act (); - - // close handler - (*iter).second ()->recycler (0, 0); - (*iter).second ()->close (); - - // remember next iter - typename CONNECTION_CACHE::ITERATOR next_iter = iter; - ++next_iter; - - // purge the item from the hash - this->purge_i (entry); - - // assign next iter - iter = next_iter; - } - else - ++iter; - } -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Cached_Connect_Strategy_Ex) -///////////////////////////////////////////////////////////////////////// - -template -ACE_Bounded_Cached_Connect_Strategy::ACE_Bounded_Cached_Connect_Strategy -(size_t max_size, - CACHING_STRATEGY &caching_s, - ACE_Creation_Strategy *cre_s, - ACE_Concurrency_Strategy *con_s, - ACE_Recycling_Strategy *rec_s, - MUTEX *lock, - int delete_lock) - : CCSEBASE (caching_s, cre_s, con_s, rec_s, lock, delete_lock), - max_size_ (max_size) -{ -} - -template -ACE_Bounded_Cached_Connect_Strategy::~ACE_Bounded_Cached_Connect_Strategy(void) -{ -} - -template -int -ACE_Bounded_Cached_Connect_Strategy::find_or_create_svc_handler_i -(SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms, - ACE_Hash_Map_Entry, - ACE_Pair > *&entry, - int &found) -{ - - REFCOUNTED_HASH_RECYCLABLE_ADDRESS search_addr (remote_addr); - - // Try to find the address in the cache. Only if we don't find it - // do we create a new and connect it with the server. - while (this->find (search_addr, entry) != -1) - { - // We found a cached svc_handler. - // Get the cached - sh = entry->int_id_.first (); - - // Is the connection clean? - int state_result= ACE::handle_ready (sh->peer ().get_handle (), - &ACE_Time_Value::zero, - 1, // read ready - 0, // write ready - 1);// exception ready - - if (state_result == 1) - { - // The connection was disconnected during idle. - // close the svc_handler down. - if (sh->close () == -1) - { - ACE_ASSERT (0); - return -1; - } - sh = 0; - // and rotate once more... - } - else if ((state_result == -1) && (errno == ETIME)) - { - // Found!!! - // Set the flag - found = 1; - - // Tell the that it should prepare itself for - // being recycled. - if (this->prepare_for_recycling (sh) == -1) - { - ACE_ASSERT (0); - return -1; - } - - return 0; - } - else // some other return value or error... - { - ACE_ASSERT (0); // just to see it coming - - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("(%t)ACE_Bounded_Cached_Connect_Strategy<>::") - ACE_TEXT ("find_or_create_svc_handler_i - ") - ACE_TEXT ("error polling server socket state.\n"))); - - return -1; - } - } - - // Not found... - - // Set the flag - found = 0; - - // Check the limit of handlers... - if ((this->max_size_ > 0) && - (this->connection_cache_.current_size () >= this->max_size_)) - { - // Try to purge idle connections - if (this->purge_connections () == -1) - return -1; - - // Check limit again. - if (this->connection_cache_.current_size () >= this->max_size_) - // still too much! - return -1; - - // OK, we have room now... - } - - // We need to use a temporary variable here since we are not - // allowed to change because other threads may use this - // when we let go of the lock during the OS level connect. - // - // Note that making a new svc_handler, connecting remotely, - // binding to the map, and assigning of the hint and recycler - // should be atomic to the outside world. - SVC_HANDLER *potential_handler = 0; - - // Create a new svc_handler - if (this->make_svc_handler (potential_handler) == -1) - return -1; - - // Connect using the svc_handler. - if (this->cached_connect (potential_handler, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms) == -1) - { - // Close the svc handler. - potential_handler->close (0); - return -1; - } - else - { - // Insert the new SVC_HANDLER instance into the cache. - if (this->connection_cache_.bind (search_addr, - potential_handler, - entry) == -1) - { - // Close the svc handler and reset . - potential_handler->close (0); - - return -1; - } - - // Everything succeeded as planned. Assign to - // . - sh = potential_handler; - - // Set the recycler and the recycling act - this->assign_recycler (sh, this, entry); - } - - return 0; -} - -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 deleted file mode 100644 index f5543727824..00000000000 --- a/ACE/ace/Cached_Connect_Strategy_T.h +++ /dev/null @@ -1,262 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Cached_Connect_Strategy_T.h - * - * $Id$ - * - * @author Kirthika Parameswaran - */ -//============================================================================= - -#ifndef CACHED_CONNECT_STRATEGY_T_H -#define CACHED_CONNECT_STRATEGY_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/Strategies_T.h" -#include "ace/Hash_Cache_Map_Manager_T.h" -#include "ace/Caching_Strategies_T.h" -#include "ace/Functor_T.h" -#include "ace/Pair_T.h" - -// For linkers which cant grok long names... -#define ACE_Cached_Connect_Strategy_Ex ACCSE - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Cached_Connect_Strategy_Ex - * - * @brief A connection strategy which caches connections to peers - * (represented by SVC_HANDLER instances), thereby allowing - * subsequent re-use of unused, but available, connections. - * - * 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. - */ -template -class ACE_Cached_Connect_Strategy_Ex - : public ACE_Cached_Connect_Strategy -{ -public: - /// Constructor - ACE_Cached_Connect_Strategy_Ex ( - CACHING_STRATEGY &caching_s, - ACE_Creation_Strategy *cre_s = 0, - ACE_Concurrency_Strategy *con_s = 0, - ACE_Recycling_Strategy *rec_s = 0, - MUTEX *lock = 0, - int delete_lock = 0); - - /// Destructor - virtual ~ACE_Cached_Connect_Strategy_Ex (void); - - /// Explicit purging of connection entries from the connection cache. - virtual int purge_connections (void); - - /// Mark as closed (non-locking version). This is used during the cleanup of the - /// connections purged. - virtual int mark_as_closed_i (const void *recycling_act); - - /** - * Since g++ version < 2.8 arent happy with templates, this special - * method had to be devised to avoid memory leaks and perform - * cleanup of the . - */ - void cleanup (void); - - // = Typedefs for managing the map - typedef ACE_Refcounted_Hash_Recyclable - REFCOUNTED_HASH_RECYCLABLE_ADDRESS; - typedef ACE_Hash_Cache_Map_Manager, - ACE_Equal_To, - CACHING_STRATEGY, - ATTRIBUTES> - CONNECTION_CACHE; - typedef typename CONNECTION_CACHE::CACHE_ENTRY CONNECTION_CACHE_ENTRY; - typedef typename CONNECTION_CACHE::key_type KEY; - typedef typename CONNECTION_CACHE::mapped_type VALUE; - - typedef ACE_Recyclable_Handler_Cleanup_Strategy, - ACE_Hash_Map_Manager_Ex, - ACE_Hash, - ACE_Equal_To, - MUTEX> > - CLEANUP_STRATEGY; - - typedef ACE_Cached_Connect_Strategy - CCSBASE; - - // = Accessor. - CACHING_STRATEGY &caching_strategy (void); - -protected: - - /// Find an idle handle. - int find (ACE_Refcounted_Hash_Recyclable &search_addr, - ACE_Hash_Map_Entry, ACE_Pair > *&entry); - - /// Remove from cache (non-locking version). - virtual int purge_i (const void *recycling_act); - - /// Add to cache (non-locking version). - virtual int cache_i (const void *recycling_act); - - /// Get/Set (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 . - virtual int cleanup_hint_i (const void *recycling_act, - void **act_holder); - - // = Helpers - int check_hint_i (SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms, - ACE_Hash_Map_Entry, ACE_Pair > *&entry, - int &found); - - virtual int find_or_create_svc_handler_i (SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms, - ACE_Hash_Map_Entry, ACE_Pair > *&entry, - int &found); - - virtual int connect_svc_handler_i (SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms, - int &found); - - /** - * Connection of the svc_handler with the remote host. This method - * also encapsulates the connection done with auto_purging under the - * hood. If the connect failed due to the process running out of - * file descriptors then, auto_purging of some connections are done - * from the CONNECTION_CACHE. This frees the descriptors which get - * used in the connect process and hence the connect operation can - * succeed. - */ - virtual int cached_connect (SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms); - - /// Table that maintains the cache of connected SVC_HANDLERs. - CONNECTION_CACHE connection_cache_; -}; - -///////////////////////////////////////////////////////////////////////////// - -// For linkers which cant grok long names... -#define ACE_Bounded_Cached_Connect_Strategy ABCCS - -/** - * @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. - * - * 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 for contributing this - * class and Susan Liebeskind for - * brainstorming about it. - */ -template -class ACE_Bounded_Cached_Connect_Strategy - : public ACE_Cached_Connect_Strategy_Ex -{ - - typedef ACE_Cached_Connect_Strategy_Ex - CCSEBASE; - - // = Typedefs for managing the map - typedef ACE_Refcounted_Hash_Recyclable - REFCOUNTED_HASH_RECYCLABLE_ADDRESS; - -public: - - /// Constructor - ACE_Bounded_Cached_Connect_Strategy (size_t max_size, - CACHING_STRATEGY &caching_s, - ACE_Creation_Strategy *cre_s = 0, - ACE_Concurrency_Strategy *con_s = 0, - ACE_Recycling_Strategy *rec_s = 0, - MUTEX *lock = 0, - int delete_lock = 0); - - /// Destructor - virtual ~ACE_Bounded_Cached_Connect_Strategy (void); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - - virtual int find_or_create_svc_handler_i (SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms, - ACE_Hash_Map_Entry, - ACE_Pair > *&entry, - int &found); - -protected: - - /// max items in the cache, used as a bound for the creation of svc_handlers. - size_t max_size_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Cached_Connect_Strategy_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Cached_Connect_Strategy_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* CACHED_CONNECT_STRATEGY_T_H */ diff --git a/ACE/ace/Caching_Strategies_T.cpp b/ACE/ace/Caching_Strategies_T.cpp deleted file mode 100644 index db2f9067ec9..00000000000 --- a/ACE/ace/Caching_Strategies_T.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//$Id$ - -#ifndef ACE_CACHING_STRATEGIES_T_CPP -#define ACECACHING_STRATEGIES_T_CPP - -#include "ace/Caching_Strategies_T.h" -#include "ace/Log_Msg.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Caching_Strategies_T.inl" -#endif /* __ACE_INLINE__ */ - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Caching_Strategy::~ACE_Caching_Strategy (void) -{ -} - -////////////////////////////////////////////////////////////////////////////////// - -template -ACE_LRU_Caching_Strategy::ACE_LRU_Caching_Strategy (void) - : timer_ (0), - purge_percent_ (10) -{ -} - -//////////////////////////////////////////////////////////////////////////////////////////////// - -template -ACE_LFU_Caching_Strategy::ACE_LFU_Caching_Strategy (void) - : purge_percent_ (10) -{ -} - -//////////////////////////////////////////////////////////////////////////////////////////////// - -template -ACE_FIFO_Caching_Strategy::ACE_FIFO_Caching_Strategy (void) - : order_ (0), - purge_percent_ (10) -{ -} - -//////////////////////////////////////////////////////////////////////////////////////////////// - -ACE_ALLOC_HOOK_DEFINE(ACE_LRU_Caching_Strategy) -ACE_ALLOC_HOOK_DEFINE(ACE_LFU_Caching_Strategy) -ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Caching_Strategy) -ACE_ALLOC_HOOK_DEFINE(ACE_Null_Caching_Strategy) - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_CACHING_STRATEGIES_T_CPP */ diff --git a/ACE/ace/Caching_Strategies_T.h b/ACE/ace/Caching_Strategies_T.h deleted file mode 100644 index 6d23824ba31..00000000000 --- a/ACE/ace/Caching_Strategies_T.h +++ /dev/null @@ -1,552 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Caching_Strategies_T.h - * - * $Id$ - * - * @author Kirthika Parameswaran - */ -//============================================================================= - -#ifndef ACE_CACHING_STRATEGIES_H -#define ACE_CACHING_STRATEGIES_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" -#include "ace/Caching_Utility_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined(_MSC_VER) -#pragma warning(disable:4503) -#endif /* _MSC_VER */ - -// For linkers that cant grok long names. -#define ACE_Caching_Strategy ACS - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Caching_Strategy - * - * @brief This class is an abstract base class for a caching strategy. - * - * This class consists of all the interfaces a caching strategy should - * have and is used in association with the - * ACE_Caching_Strategy_Adaptor. - */ -template -class ACE_Caching_Strategy -{ -public: - /// Destructor. - virtual ~ACE_Caching_Strategy (void); - - /// Accessor method for the timer attributes. - virtual ATTRIBUTES attributes (void) = 0; - - /// Get the percentage of entries to purge. - virtual double purge_percent (void) = 0; - - /// Set the percentage of entries to purge. - virtual void purge_percent (double percentage) = 0; - - // = Strategy related Operations - - /// This method acts as a notification about the CONTAINERs bind - /// method call. - virtual int notify_bind (int result, - const ATTRIBUTES &attr) = 0; - - /// This method acts as a notification about the CONTAINERs find - /// method call - virtual int notify_find (int result, - ATTRIBUTES &attr) = 0; - - /// This method acts as a notification about the CONTAINERs unbind - /// method call - virtual int notify_unbind (int result, - const ATTRIBUTES &attr) = 0; - - /// This method acts as a notification about the CONTAINERs trybind - /// method call - virtual int notify_trybind (int result, - ATTRIBUTES &attr) = 0; - - /// This method acts as a notification about the CONTAINERs rebind - /// method call - virtual int notify_rebind (int result, - const ATTRIBUTES &attr) = 0; - - /// Purge the cache. - virtual CACHING_UTILITY &caching_utility (void) = 0; - - /// Dumps the state of the object. - virtual void dump (void) const = 0; -}; - -////////////////////////////////////////////////////////////////////////// - -#define ACE_Caching_Strategy_Adapter ACSA - -/** - * @class ACE_Caching_Strategy_Adapter - * - * @brief This class follows the Adaptor pattern and is used to provide - * External Polymorphism by deriving from ACE_Caching_Strategy. - * - * This class simply delegates all requests to the - * IMPLEMNETATION object within. This class should be passed in - * place of the the abstract base ACE_Caching_Strategy class as - * part of the External Polymorphism pattern. - */ -template -class ACE_Caching_Strategy_Adapter - : public ACE_Caching_Strategy -{ - -public: - - /// Constructor. - ACE_Caching_Strategy_Adapter (IMPLEMENTATION *implementation = 0, - bool delete_implementation = false); - - /// Destructor. - ~ACE_Caching_Strategy_Adapter (void); - - /// Accessor method for the timer attributes. - ATTRIBUTES attributes (void); - - /// Get the percentage of entries to purge. - double purge_percent (void); - - /// Set the percentage of entries to purge. - void purge_percent (double percentage); - - // = Strategy related Operations - - /// This method acts as a notification about the CONTAINERs bind - /// method call. - int notify_bind (int result, - const ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs find - /// method call - int notify_find (int result, - ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs unbind - /// method call - int notify_unbind (int result, - const ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs trybind - /// method call - int notify_trybind (int result, - ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs rebind - /// method call - int notify_rebind (int result, - const ATTRIBUTES &attr); - - /// Accessor to the implementation. - IMPLEMENTATION &implementation (void); - - /// Purge the cache. - CACHING_UTILITY &caching_utility (void); - - /// Dumps the state of the object. - void dump (void) const; - -private: - - /// Implementation class. - IMPLEMENTATION *implementation_; - - /// Do we need to delete the implementation? - bool delete_implementation_; -}; - -////////////////////////////////////////////////////////////////////////// -#define ACE_LRU_Caching_Strategy ALRU - -/** - * @class ACE_LRU_Caching_Strategy - * - * @brief Defines a Least Recently Used strategy which will decide on - * the item to be removed from the cache. - * - * This is a strategy which makes use of a virtual timer which - * is updated whenever an item is inserted or looked up in the - * container. When the need of purging entries arises, the items - * with the lowest timer values are removed. - * Explanation of the template parameter list: - * CONTAINER is any map with entries of type . - * 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. The CACHING_UTILITY is the - * class which can be plugged in and which decides the entries - * to purge. - */ -template -class ACE_LRU_Caching_Strategy -{ -public: - - // Traits. - typedef ATTRIBUTES CACHING_ATTRIBUTES; - - // = Initialisation and termination. - - /** - * The is the map in which the entries reside. The - * timer attribute is initialed to zero in this constructor. And - * the field denotes the percentage of the entries - * in the cache which can be purged automagically and by default is - * set to 10%. - */ - ACE_LRU_Caching_Strategy (void); - - // = Operations of the strategy. - - /// Accessor method for the timer attributes. - ATTRIBUTES attributes (void); - - /// Get the percentage of entries to purge. - double purge_percent (void); - - /// Set the percentage of entries to purge. - void purge_percent (double percentage); - - // = Strategy related Operations - - /// This method acts as a notification about the CONTAINERs bind - /// method call. - int notify_bind (int result, - const ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs find - /// method call - int notify_find (int result, - ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs unbind - /// method call - int notify_unbind (int result, - const ATTRIBUTES &attr); - - - /// This method acts as a notification about the CONTAINERs trybind - /// method call - int notify_trybind (int result, - ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs rebind - /// method call - int notify_rebind (int result, - const ATTRIBUTES &attr); - - /// Purge the cache. - CACHING_UTILITY &caching_utility (void); - - /// Dumps the state of the object. - void dump (void) const; - -private: - - /// This element is the one which is the deciding factor for purging - /// of an ITEM. - ATTRIBUTES timer_; - - /// The level about which the purging will happen automagically. - double purge_percent_; - - /// This is the helper class which will decide and expunge entries - /// from the cache. - CACHING_UTILITY caching_utility_; -}; - -////////////////////////////////////////////////////////////////////////// -#define ACE_LFU_Caching_Strategy ALFU - -/** - * @class ACE_LFU_Caching_Strategy - * - * @brief Defines a Least Frequently Used strategy for which will decide on - * the item to be removed from the cache. - * - * A attribute is tagged to each item which increments whenever - * the item is bound or looked up in the cache. Thus it denotes - * the frequency of use. According to the value of the attribute - * the item is removed from the CONTAINER i.e cache. - * Explanation of the template parameter list: - * CONTAINER is any map with entries of type . - * 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. The CACHING_UTILITY is the - * class which can be plugged in and which decides the entries - * to purge. - */ -template -class ACE_LFU_Caching_Strategy -{ - -public: - - // Traits. - typedef ATTRIBUTES CACHING_ATTRIBUTES; - - // = Initialisation and termination methods. - - /** - * The is the map in which the entries reside. The - * timer attribute is initialed to zero in this constructor. And - * the field denotes the percentage of the entries - * in the cache which can be purged automagically and by default is - * set to 10%. - */ - ACE_LFU_Caching_Strategy (void); - - // = Strategy methods. - - /// Access the attributes. - ATTRIBUTES attributes (void); - - /// Get the percentage of entries to purge. - double purge_percent (void); - - /// Set the percentage of entries to purge. - void purge_percent (double percentage); - - // = Strategy related Operations - - /// This method acts as a notification about the CONTAINERs bind - /// method call. - int notify_bind (int result, - const ATTRIBUTES &attr); - - /// Lookup notification. - int notify_find (int result, - ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs unbind - /// method call - int notify_unbind (int result, - const ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs trybind - /// method call - int notify_trybind (int result, - ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs rebind - /// method call - int notify_rebind (int result, - const ATTRIBUTES &attr); - - /// Purge the cache. - CACHING_UTILITY &caching_utility (void); - - /// Dumps the state of the object. - void dump (void) const; - -private: - - /// The level about which the purging will happen automagically. - double purge_percent_; - - /// This is the helper class which will decide and expunge entries - /// from the cache. - CACHING_UTILITY caching_utility_; -}; - -///////////////////////////////////////////////////////////// -#define ACE_FIFO_Caching_Strategy AFIFO - -/** - * @class ACE_FIFO_Caching_Strategy - * - * @brief The First In First Out strategy is implemented wherein each - * item is ordered. - * - * The order tag of each item is used to decide the item to be - * removed from the cache. The items with least order are removed. - * Explanation of the template parameter list: - * CONTAINER is any map with entries of type . - * 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. The CACHING_UTILITY is the - * class which can be plugged in and which decides the entries - * to purge. - */ -template -class ACE_FIFO_Caching_Strategy -{ - -public: - - typedef ATTRIBUTES CACHING_ATTRIBUTES; - - // = Initialisation and termination. - - /** - * The is the map in which the entries reside. The - * timer attribute is initialed to zero in this constructor. And - * the field denotes the percentage of the entries - * in the cache which can be purged automagically and by default is - * set to 10%. - */ - ACE_FIFO_Caching_Strategy (void); - - // = Strategy methods. - - /// Accessor method. - ATTRIBUTES attributes (void); - - /// Get the percentage of entries to purge. - double purge_percent (void); - - /// Set the percentage of entries to purge. - void purge_percent (double percentage); - - // = Strategy related Operations - - /// Notification for an item getting bound into the cache. - int notify_bind (int result, - const ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs find - /// method call - int notify_find (int result, - ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs unbind - /// method call - int notify_unbind (int result, - const ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs trybind - /// method call - int notify_trybind (int result, - ATTRIBUTES &attr); - - /// Notification for an item getting bound again into the cache. - int notify_rebind (int result, - const ATTRIBUTES &attr); - - /// Purge the cache. - CACHING_UTILITY &caching_utility (void); - - /// Dumps the state of the object. - void dump (void) const; - -private: - - /// The order is the deciding factor for the item to be removed from - /// the cache. - ATTRIBUTES order_; - - /// The level about which the purging will happen automagically. - double purge_percent_; - - /// This is the helper class which will decide and expunge entries - /// from the cache. - CACHING_UTILITY caching_utility_; -}; - -////////////////////////////////////////////////////////////////////// -#define ACE_Null_Caching_Strategy ANULL - -/** - * @class ACE_Null_Caching_Strategy - * - * @brief The is a special caching strategy which doesnt have the purging - * feature. - * - * No purging provided. To be used when purging might be too expensive - * an operation. - */ -template -class ACE_Null_Caching_Strategy -{ - -public: - - // = Traits. - typedef ATTRIBUTES CACHING_ATTRIBUTES; - - // = Strategy methods. All are NO_OP methods!!! - - /// Accessor method. - ATTRIBUTES attributes (void); - - /// Get the percentage of entries to purge. - double purge_percent (void); - - /// Set the percentage of entries to purge. - void purge_percent (double percentage); - - // = Strategy related Operations - - /// Notification for an item getting bound into the cache. - int notify_bind (int result, - const ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs find - /// method call - int notify_find (int result, - ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs unbind - /// method call - int notify_unbind (int result, - const ATTRIBUTES &attr); - - /// This method acts as a notification about the CONTAINERs trybind - /// method call - int notify_trybind (int result, - ATTRIBUTES &attr); - - /// Notification for an item getting bound again into the cache. - int notify_rebind (int result, - const ATTRIBUTES &attr); - - /// Purge the cache. - CACHING_UTILITY &caching_utility (void); - - /// Dumps the state of the object. - void dump (void) const; - -private: - - /// This is the helper class which will decide and expunge entries - /// from the cache. - CACHING_UTILITY caching_utility_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Caching_Strategies_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Caching_Strategies_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Caching_Strategies_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_CACHING_STRATEGIES_H */ diff --git a/ACE/ace/Caching_Strategies_T.inl b/ACE/ace/Caching_Strategies_T.inl deleted file mode 100644 index 69f1ac99807..00000000000 --- a/ACE/ace/Caching_Strategies_T.inl +++ /dev/null @@ -1,456 +0,0 @@ -// -*-C++-*- -// -//$Id$ - -////////////////////////////////////////////////////////////////////////////////// - -#include "ace/OS_Memory.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE -ACE_Caching_Strategy_Adapter::ACE_Caching_Strategy_Adapter (IMPLEMENTATION *implementation, - bool delete_implementation) - : implementation_ (implementation), - delete_implementation_ (delete_implementation) -{ - if (this->implementation_ == 0) - { - ACE_NEW (this->implementation_, - IMPLEMENTATION); - this->delete_implementation_ = true; - } -} - -template ACE_INLINE -ACE_Caching_Strategy_Adapter::~ACE_Caching_Strategy_Adapter (void) -{ - if (this->delete_implementation_) - { - delete this->implementation_; - this->delete_implementation_ = false; - this->implementation_ = 0; - } -} - -template ACE_INLINE ATTRIBUTES -ACE_Caching_Strategy_Adapter::attributes (void) -{ - return this->implementation_->attributes (); -} - -template ACE_INLINE double -ACE_Caching_Strategy_Adapter::purge_percent (void) -{ - return this->implementation_->purge_percent (); -} - -template ACE_INLINE void -ACE_Caching_Strategy_Adapter::purge_percent (double percentage) -{ - this->implementation_->purge_percent (percentage); -} - -template ACE_INLINE int -ACE_Caching_Strategy_Adapter::notify_bind (int result, - const ATTRIBUTES &attr) -{ - return this->implementation_->notify_bind (result, - attr); -} - -template ACE_INLINE int -ACE_Caching_Strategy_Adapter::notify_find (int result, - ATTRIBUTES &attr) -{ - return this->implementation_->notify_find (result, - attr); -} - -template ACE_INLINE int -ACE_Caching_Strategy_Adapter::notify_unbind (int result, - const ATTRIBUTES &attr) -{ - return this->implementation_->notify_unbind (result, - attr); -} - -template ACE_INLINE int -ACE_Caching_Strategy_Adapter::notify_trybind (int result, - ATTRIBUTES &attr) -{ - return this->implementation_->notify_trybind (result, - attr); -} - -template ACE_INLINE int -ACE_Caching_Strategy_Adapter::notify_rebind (int result, - const ATTRIBUTES &attr) -{ - return this->implementation_->notify_rebind (result, - attr); -} - -template ACE_INLINE IMPLEMENTATION & -ACE_Caching_Strategy_Adapter::implementation (void) -{ - return *this->implementation_; -} - -template ACE_INLINE CACHING_UTILITY & -ACE_Caching_Strategy_Adapter::caching_utility (void) -{ - return this->implementation_->caching_utility (); -} - -template ACE_INLINE void -ACE_Caching_Strategy_Adapter::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Caching_Strategy_Adapter::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -////////////////////////////////////////////////////////////////////////////////// - -template ACE_INLINE ATTRIBUTES -ACE_LRU_Caching_Strategy::attributes (void) -{ - return this->timer_; -} - -template ACE_INLINE double -ACE_LRU_Caching_Strategy::purge_percent (void) -{ - return this->purge_percent_; -} - -template ACE_INLINE void -ACE_LRU_Caching_Strategy::purge_percent (double percentage) -{ - this->purge_percent_ = percentage; -} - -template ACE_INLINE int -ACE_LRU_Caching_Strategy::notify_bind ( - int result, - const ATTRIBUTES & /* attr */) -{ - if (result == 0) - ++this->timer_; - - return result; -} - -template ACE_INLINE int -ACE_LRU_Caching_Strategy::notify_find ( - int result, - ATTRIBUTES &attr) -{ - if (result == 0) - { - attr = this->timer_; - ++this->timer_; - } - - return result; -} - -template ACE_INLINE int -ACE_LRU_Caching_Strategy::notify_unbind ( - int result, - const ATTRIBUTES & /* attr */) -{ - return result; -} - -template ACE_INLINE int -ACE_LRU_Caching_Strategy::notify_trybind ( - int result, - ATTRIBUTES & /* attr */) -{ - return result; -} - -template ACE_INLINE int -ACE_LRU_Caching_Strategy::notify_rebind ( - int result, - const ATTRIBUTES & /* attr */) -{ - if (result == 0) - ++this->timer_; - - return result; -} - -template ACE_INLINE CACHING_UTILITY & -ACE_LRU_Caching_Strategy::caching_utility (void) -{ - return this->caching_utility_; -} - -template ACE_INLINE void -ACE_LRU_Caching_Strategy::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_LRU_Caching_Strategy::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("timer_ = %d "), this->timer_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -////////////////////////////////////////////////////////////////////////////////// - -template ACE_INLINE ATTRIBUTES -ACE_LFU_Caching_Strategy::attributes (void) -{ - return 0; -} - -template ACE_INLINE double -ACE_LFU_Caching_Strategy::purge_percent (void) -{ - return this->purge_percent_; -} - -template ACE_INLINE void -ACE_LFU_Caching_Strategy::purge_percent (double percentage) -{ - this->purge_percent_ = percentage; -} - -template ACE_INLINE int -ACE_LFU_Caching_Strategy::notify_bind (int result, - const ATTRIBUTES & /* attr */) -{ - - return result; -} - -template ACE_INLINE int -ACE_LFU_Caching_Strategy::notify_find (int result, - ATTRIBUTES &attr) -{ - if (result == 0) - ++attr; - - return result; -} - -template ACE_INLINE int -ACE_LFU_Caching_Strategy::notify_trybind (int result, - ATTRIBUTES & /* attr */) -{ - return result; -} - -template ACE_INLINE int -ACE_LFU_Caching_Strategy::notify_rebind (int result, - const ATTRIBUTES & /* attr */) -{ - return result; -} - -template ACE_INLINE int -ACE_LFU_Caching_Strategy::notify_unbind (int result, - const ATTRIBUTES & /* attr */) -{ - return result; -} - -template ACE_INLINE CACHING_UTILITY & -ACE_LFU_Caching_Strategy::caching_utility (void) -{ - return this->caching_utility_; -} - -template ACE_INLINE void -ACE_LFU_Caching_Strategy::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_LFU_Caching_Strategy::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -////////////////////////////////////////////////////////////////////////////////////// - -template ACE_INLINE ATTRIBUTES -ACE_FIFO_Caching_Strategy::attributes (void) -{ - return this->order_; -} - -template ACE_INLINE double -ACE_FIFO_Caching_Strategy::purge_percent (void) -{ - return this->purge_percent_; -} - -template ACE_INLINE void -ACE_FIFO_Caching_Strategy::purge_percent (double percentage) -{ - this->purge_percent_ = percentage; -} - -template ACE_INLINE int -ACE_FIFO_Caching_Strategy::notify_bind (int result, - const ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - if (result == 0) - ++this->order_; - - return result; -} - -template ACE_INLINE int -ACE_FIFO_Caching_Strategy::notify_find (int result, - ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - return result; -} - -template ACE_INLINE int -ACE_FIFO_Caching_Strategy::notify_unbind (int result, - const ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - return result; -} - -template ACE_INLINE int -ACE_FIFO_Caching_Strategy::notify_trybind (int result, - ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - return result; -} - -template ACE_INLINE int -ACE_FIFO_Caching_Strategy::notify_rebind (int result, - const ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - if (result == 0) - ++this->order_; - - return result; -} - -template ACE_INLINE CACHING_UTILITY & -ACE_FIFO_Caching_Strategy::caching_utility (void) -{ - return this->caching_utility_; -} - -template ACE_INLINE void -ACE_FIFO_Caching_Strategy::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FIFO_Caching_Strategy::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("order_ = %d "), this->order_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -////////////////////////////////////////////////////////////////////////////////// - -template ACE_INLINE ATTRIBUTES -ACE_Null_Caching_Strategy::attributes (void) -{ - return 0; -} - -template ACE_INLINE double -ACE_Null_Caching_Strategy::purge_percent (void) -{ - return 0; -} - -template ACE_INLINE void -ACE_Null_Caching_Strategy::purge_percent (double percentage) -{ - ACE_UNUSED_ARG (percentage); -} - -template ACE_INLINE int -ACE_Null_Caching_Strategy::notify_bind (int result, - const ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - return result; -} - -template ACE_INLINE int -ACE_Null_Caching_Strategy::notify_find (int result, - ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - return result; -} - -template ACE_INLINE int -ACE_Null_Caching_Strategy::notify_unbind (int result, - const ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - return result; -} - -template ACE_INLINE int -ACE_Null_Caching_Strategy::notify_trybind (int result, - ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - return result; -} - -template ACE_INLINE int -ACE_Null_Caching_Strategy::notify_rebind (int result, - const ATTRIBUTES &attr) -{ - ACE_UNUSED_ARG (attr); - - return result; -} - -template ACE_INLINE CACHING_UTILITY & -ACE_Null_Caching_Strategy::caching_utility (void) -{ - return this->caching_utility_; -} - -template ACE_INLINE void -ACE_Null_Caching_Strategy::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Null_Caching_Strategy::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 - -////////////////////////////////////////////////////////////////////////////////// diff --git a/ACE/ace/Caching_Utility_T.cpp b/ACE/ace/Caching_Utility_T.cpp deleted file mode 100644 index c8b7a48e807..00000000000 --- a/ACE/ace/Caching_Utility_T.cpp +++ /dev/null @@ -1,499 +0,0 @@ -// $Id$ - -#ifndef ACE_CACHING_UTILITY_T_CPP -#define ACE_CACHING_UTILITY_T_CPP - -#include "ace/Caching_Utility_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Min_Max.h" -#include "ace/OS_Memory.h" -#include "ace/Recyclable.h" - -////////////////////////////////////////////////////////////////////////////// - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Pair_Caching_Utility::ACE_Pair_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy, - int delete_cleanup_strategy) - : cleanup_strategy_ (cleanup_strategy), - delete_cleanup_strategy_ (delete_cleanup_strategy) -{ - if (cleanup_strategy == 0) - { - ACE_NEW (this->cleanup_strategy_, - CLEANUP_STRATEGY); - this->delete_cleanup_strategy_ = 1; - } -} - -template -ACE_Pair_Caching_Utility::~ACE_Pair_Caching_Utility (void) -{ - if (this->delete_cleanup_strategy_) - delete this->cleanup_strategy_; -} - -template int -ACE_Pair_Caching_Utility::clear_cache (CONTAINER &container, - double purge_percent) -{ - // Check that the purge_percent is non-zero. - if (purge_percent == 0) - return 0; - - // Get the number of entries in the container. - size_t current_map_size = container.current_size (); - - // Also whether the number of entries in the cache! - // Oops! then there is no way out but exiting. So return an error. - if (current_map_size == 0) - return 0; - - // Calculate the no of entries to remove from the cache depending - // upon the . - size_t const entries_to_remove - = ACE_MAX (static_cast (1), - static_cast (static_cast (purge_percent) - / 100 * current_map_size)); - KEY *key_to_remove = 0; - VALUE *value_to_remove = 0; - - for (size_t i = 0; i < entries_to_remove ; ++i) - { - this->minimum (container, - key_to_remove, - value_to_remove); - - // Simply verifying that the key is non-zero. - // This is important for strategies where the minimum - // entry cant be found due to constraints on the type of entry - // to remove. - if (key_to_remove == 0) - return 0; - - if (this->cleanup_strategy_->cleanup (container, - key_to_remove, - value_to_remove) == -1) - return -1; - - } - - return 0; -} - -template void -ACE_Pair_Caching_Utility::minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove) -{ - // Starting values. - ITERATOR iter = container.begin (); - ITERATOR end = container.end (); - ATTRIBUTES min = (*iter).int_id_.second (); - key_to_remove = &(*iter).ext_id_; - value_to_remove = &(*iter).int_id_; - - // The iterator moves thru the container searching for the entry - // with the lowest ATTRIBUTES. - for (++iter; - iter != end; - ++iter) - { - if (min > (*iter).int_id_.second ()) - { - // Ah! an item with lower ATTTRIBUTES... - min = (*iter).int_id_.second (); - key_to_remove = &(*iter).ext_id_; - value_to_remove = &(*iter).int_id_; - } - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////// - -template -ACE_Recyclable_Handler_Caching_Utility::ACE_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy, - int delete_cleanup_strategy) - : cleanup_strategy_ (cleanup_strategy), - delete_cleanup_strategy_ (delete_cleanup_strategy) -{ - if (cleanup_strategy == 0) - { - ACE_NEW (this->cleanup_strategy_, - CLEANUP_STRATEGY); - this->delete_cleanup_strategy_ = 1; - } -} - -template -ACE_Recyclable_Handler_Caching_Utility::~ACE_Recyclable_Handler_Caching_Utility (void) -{ - if (this->delete_cleanup_strategy_) - delete this->cleanup_strategy_; -} - -template int -ACE_Recyclable_Handler_Caching_Utility::clear_cache (CONTAINER &container, - double purge_percent) -{ - // Check that the purge_percent is non-zero. - if (purge_percent == 0) - return 0; - - // Get the number of entries in the container. - size_t current_map_size = container.current_size (); - - // Also whether the number of entries in the cache is just one! - // Oops! then there is no way out but exiting. So return an error. - // if (current_map_size <= 1) - if (current_map_size == 0) - return 0; - - // Calculate the no of entries to remove from the cache depending - // upon the . - size_t const entries_to_remove - = ACE_MAX (static_cast (1), - static_cast (static_cast (purge_percent) - / 100 * current_map_size)); - - KEY *key_to_remove = 0; - VALUE *value_to_remove = 0; - - for (size_t i = 0; i < entries_to_remove ; ++i) - { - this->minimum (container, - key_to_remove, - value_to_remove); - - // Simply verifying that the key is non-zero. - // This is important for strategies where the minimum - // entry cant be found due to constraints on the type of entry - // to remove. - if (key_to_remove == 0) - return 0; - - if (this->cleanup_strategy_->cleanup (container, - key_to_remove, - value_to_remove) == -1) - return -1; - } - - return 0; -} - -template void -ACE_Recyclable_Handler_Caching_Utility::minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove) -{ - // Starting values. - ITERATOR end = container.end (); - ITERATOR iter = container.begin (); - ATTRIBUTES min = (*iter).int_id_.second (); - key_to_remove = 0; - value_to_remove = 0; - // Found the minimum entry to be purged? - int found = 0; - - // The iterator moves thru the container searching for the entry - // with the lowest ATTRIBUTES. - for (; - iter != end; - ++iter) - { - // If the entry isnt IDLE_AND_PURGABLE continue until you reach - // the first entry which can be purged. This is the minimum with - // which you will compare the rest of the purgable entries. - if ((*iter).ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_AND_PURGABLE || - (*iter).ext_id_.recycle_state () == ACE_RECYCLABLE_PURGABLE_BUT_NOT_IDLE) - { - if (found == 0) - { - min = (*iter).int_id_.second (); - key_to_remove = &(*iter).ext_id_; - value_to_remove = &(*iter).int_id_; - found = 1; - } - else - { - // Ah! an entry with lower ATTTRIBUTES... - if (min > (*iter).int_id_.second ()) - { - min = (*iter).int_id_.second (); - key_to_remove = &(*iter).ext_id_; - value_to_remove = &(*iter).int_id_; - } - } - } - } -} - -//////////////////////////////////////////////////////////////////////////////// - -template -ACE_Refcounted_Recyclable_Handler_Caching_Utility::ACE_Refcounted_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy, - int delete_cleanup_strategy) - : cleanup_strategy_ (cleanup_strategy), - delete_cleanup_strategy_ (delete_cleanup_strategy), - marked_as_closed_entries_ (0) -{ - if (cleanup_strategy == 0) - { - ACE_NEW (this->cleanup_strategy_, - CLEANUP_STRATEGY); - this->delete_cleanup_strategy_ = 1; - } -} - -template -ACE_Refcounted_Recyclable_Handler_Caching_Utility::~ACE_Refcounted_Recyclable_Handler_Caching_Utility (void) -{ - if (this->delete_cleanup_strategy_) - delete this->cleanup_strategy_; -} - -template int -ACE_Refcounted_Recyclable_Handler_Caching_Utility::clear_cache (CONTAINER &container, - double purge_percent) -{ - // Check that the purge_percent is non-zero. - if (purge_percent == 0) - return 0; - - // Get the number of entries in the container which can be considered for purging. - size_t const available_entries = - container.current_size () - this->marked_as_closed_entries_; - - // Also whether the number of entries in the cache zero. - // Oops! then there is no way out but exiting. - if (available_entries <= 0) - return 0; - - // Calculate the no of entries to remove from the cache depending - // upon the . - size_t entries_to_remove - = ACE_MAX (static_cast (1), - static_cast (static_cast (purge_percent) - / 100 * available_entries)); - - if (entries_to_remove >= available_entries || entries_to_remove == 0) - entries_to_remove = available_entries - 1; - - KEY *key_to_remove = 0; - VALUE *value_to_remove = 0; - - for (size_t i = 0; i < entries_to_remove ; ++i) - { - this->minimum (container, - key_to_remove, - value_to_remove); - - // Simply verifying that the key is non-zero. - // This is important for strategies where the minimum - // entry cant be found due to constraints on the type of entry - // to remove. - if (key_to_remove == 0) - return 0; - - if (this->cleanup_strategy_->cleanup (container, - key_to_remove, - value_to_remove) == -1) - return -1; - - ++this->marked_as_closed_entries_; - } - - return 0; -} - -template void -ACE_Refcounted_Recyclable_Handler_Caching_Utility::minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove) -{ - // Starting values. - ITERATOR end = container.end (); - ITERATOR iter = container.begin (); - ATTRIBUTES min = (*iter).int_id_.second (); - key_to_remove = 0; - value_to_remove = 0; - // Found the minimum entry to be purged? - int found = 0; - - // The iterator moves thru the container searching for the entry - // with the lowest ATTRIBUTES. - for (; - iter != end; - ++iter) - { - // If the entry isnt IDLE_AND_PURGABLE continue until you reach - // the first entry which can be purged. This is the minimum with - // which you will compare the rest of the purgable entries. - if ((*iter).ext_id_.recycle_state () == ACE_RECYCLABLE_IDLE_AND_PURGABLE || - (*iter).ext_id_.recycle_state () == ACE_RECYCLABLE_PURGABLE_BUT_NOT_IDLE) - { - if (found == 0) - { - min = (*iter).int_id_.second (); - key_to_remove = &(*iter).ext_id_; - value_to_remove = &(*iter).int_id_; - found = 1; - } - else - { - // Ah! an entry with lower ATTTRIBUTES... - if (min > (*iter).int_id_.second ()) - { - min = (*iter).int_id_.second (); - key_to_remove = &(*iter).ext_id_; - value_to_remove = &(*iter).int_id_; - } - } - } - } -} - -//////////////////////////////////////////////////////////////////////////////// - -template -ACE_Handler_Caching_Utility::ACE_Handler_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy, - int delete_cleanup_strategy) - : cleanup_strategy_ (cleanup_strategy), - delete_cleanup_strategy_ (delete_cleanup_strategy) -{ - if (cleanup_strategy == 0) - { - ACE_NEW (this->cleanup_strategy_, - CLEANUP_STRATEGY); - this->delete_cleanup_strategy_ = 1; - } -} - -template -ACE_Handler_Caching_Utility::~ACE_Handler_Caching_Utility (void) -{ - if (this->delete_cleanup_strategy_) - delete this->cleanup_strategy_; -} - -template int -ACE_Handler_Caching_Utility::clear_cache (CONTAINER &container, - double purge_percent) -{ - // Check that the purge_percent is non-zero. - if (purge_percent == 0) - return 0; - - // Get the number of entries in the container. - size_t current_map_size = container.current_size (); - - // Also whether the number of entries in the cache is just one! - // Oops! then there is no way out but exiting. So return an error. - if (current_map_size == 0) - return 0; - - // Calculate the no of entries to remove from the cache depending - // upon the . - size_t entries_to_remove - = ACE_MAX (static_cast (1), - static_cast (static_cast (purge_percent) - / 100 * current_map_size)); - - KEY *key_to_remove = 0; - VALUE *value_to_remove = 0; - - for (size_t i = 0; i < entries_to_remove ; ++i) - { - this->minimum (container, - key_to_remove, - value_to_remove); - - if (this->cleanup_strategy_->cleanup (container, - key_to_remove, - value_to_remove) == -1) - return -1; - } - - return 0; -} - -template void -ACE_Handler_Caching_Utility::minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove) -{ - // Starting values. - ITERATOR iter = container.begin (); - ITERATOR end = container.end (); - ATTRIBUTES min = (*iter).int_id_->caching_attributes (); - key_to_remove = &(*iter).ext_id_; - value_to_remove = &(*iter).int_id_; - - // The iterator moves thru the container searching for the entry - // with the lowest ATTRIBUTES. - for (++iter; - iter != end; - ++iter) - { - if (min > (*iter).int_id_->caching_attributes () && - (*iter).int_id_->active () != 1) - { - // Ah! an item with lower ATTTRIBUTES... - min = (*iter).int_id_->caching_attributes (); - key_to_remove = &(*iter).ext_id_; - value_to_remove = &(*iter).int_id_; - } - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////// - -template -ACE_Null_Caching_Utility::ACE_Null_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy, - int delete_cleanup_strategy) - : cleanup_strategy_ (cleanup_strategy), - delete_cleanup_strategy_ (delete_cleanup_strategy) -{ - if (cleanup_strategy == 0) - { - ACE_NEW (this->cleanup_strategy_, - CLEANUP_STRATEGY); - this->delete_cleanup_strategy_ = 1; - } -} - -template -ACE_Null_Caching_Utility::~ACE_Null_Caching_Utility (void) -{ - if (this->delete_cleanup_strategy_) - delete this->cleanup_strategy_; -} - -template int -ACE_Null_Caching_Utility::clear_cache (CONTAINER &container, - double purge_percent) -{ - ACE_UNUSED_ARG (container); - ACE_UNUSED_ARG (purge_percent); - - return 0; -} - -template void -ACE_Null_Caching_Utility::minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove) -{ - ACE_UNUSED_ARG (container); - ACE_UNUSED_ARG (key_to_remove); - ACE_UNUSED_ARG (value_to_remove); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_CACHING_UTILITY_T_CPP */ diff --git a/ACE/ace/Caching_Utility_T.h b/ACE/ace/Caching_Utility_T.h deleted file mode 100644 index 1c1ce48894a..00000000000 --- a/ACE/ace/Caching_Utility_T.h +++ /dev/null @@ -1,347 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Caching_Utility_T.h - * - * $Id$ - * - * @author Kirthika Parameswaran - */ -//============================================================================= - -#ifndef ACE_CACHING_UTILITY_H -#define ACE_CACHING_UTILITY_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/Global_Macros.h" -#include "ace/Cleanup_Strategies_T.h" - -// For linkers that cant grok long names. -#define ACE_Pair_Caching_Utility APUTIL - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Pair_Caching_Utility - * - * @brief Defines a helper class for the Caching Strategies. - * - * This class defines the methods commonly used by the different - * caching strategies. For instance: method which - * decides and purges the entry from the container. @note This - * class helps in the caching_strategies using a container - * containing entries of > - * kind. The attributes helps in deciding the entries to be - * purged. The Cleanup_Strategy is the callback class to which the - * entries to be cleaned up will be delegated. - */ -template -class ACE_Pair_Caching_Utility -{ -public: - - typedef ACE_Cleanup_Strategy CLEANUP_STRATEGY; - - /// Constructor. - ACE_Pair_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy = 0, - int delete_cleanup_strategy = 0); - - /// Destructor. - ~ACE_Pair_Caching_Utility (void); - - /** - * 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); - -protected: - - /// Find the entry with minimum caching attributes. - void minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove); - - /// The cleanup strategy which can be used to destroy the entries of - /// the container. - 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 &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Pair_Caching_Utility (const ACE_Pair_Caching_Utility &)) -}; - -//////////////////////////////////////////////////////////////////////////////// -#define ACE_Recyclable_Handler_Caching_Utility ARHUTIL - -/** - * @class ACE_Recyclable_Handler_Caching_Utility - * - * @brief Defines a helper class for the Caching Strategies. - * - * This class defines the methods commonly used by the different - * caching strategies. For instance: method which - * decides and purges the entry from the container. @note This - * class helps in the caching_strategies using a container - * containing entries of kind. The attributes - * helps in deciding the entries to be purged. The - * Cleanup_Strategy is the callback class to which the entries to - * be cleaned up will be delegated. - */ -template -class ACE_Recyclable_Handler_Caching_Utility -{ - -public: - - typedef ACE_Recyclable_Handler_Cleanup_Strategy CLEANUP_STRATEGY; - typedef ACE_Cleanup_Strategy CLEANUP_STRATEGY_BASE; - - /// Constructor. - ACE_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy = 0, - int delete_cleanup_strategy = 0); - - /// Destructor. - ~ACE_Recyclable_Handler_Caching_Utility (void); - - /** - * Purge entries from the . 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); - -protected: - - /// Find the entry with minimum caching attributes. - void minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove); - - /// This is the default Cleanup Strategy for this utility. - 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 &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Recyclable_Handler_Caching_Utility (const ACE_Recyclable_Handler_Caching_Utility &)) -}; - -/////////////////////////////////////////////////////////////////////////// -#define ACE_Refcounted_Recyclable_Handler_Caching_Utility ARRHUTIL - -/** - * @class ACE_Refcounted_Recyclable_Handler_Caching_Utility - * - * @brief Defines a helper class for the Caching Strategies. - * - * This class defines the methods commonly used by the different - * caching strategies. For instance: clear_cache () method which - * decides and purges the entry from the container. @note This - * class helps in the caching_strategies using a container - * containing entries of kind. The attributes helps in - * deciding the entries to be purged. The Cleanup_Strategy is the - * callback class to which the entries to be cleaned up will be - * delegated. - */ -template -class ACE_Refcounted_Recyclable_Handler_Caching_Utility -{ - -public: - - typedef ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy CLEANUP_STRATEGY; - typedef ACE_Cleanup_Strategy CLEANUP_STRATEGY_BASE; - - /// Constructor. - ACE_Refcounted_Recyclable_Handler_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy = 0, - int delete_cleanup_strategy = 0); - - /// Destructor. - ~ACE_Refcounted_Recyclable_Handler_Caching_Utility (void); - - /** - * Purge entries from the . 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); - -protected: - - /// Find the entry with minimum caching attributes. - void minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove); - - /// This is the default Cleanup Strategy for this utility. - CLEANUP_STRATEGY_BASE *cleanup_strategy_; - - /// Whether the cleanup_strategy should be destroyed or not. - int delete_cleanup_strategy_; - - /** - * This figure denotes the number of entries are there in the - * container which have been marked as closed already but might - * 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 &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Refcounted_Recyclable_Handler_Caching_Utility (const ACE_Refcounted_Recyclable_Handler_Caching_Utility &)) -}; - -//////////////////////////////////////////////////////////////////////////////////////// - -/** - * @class ACE_Handler_Caching_Utility - * - * @brief Defines a helper class for the Caching Strategies. - * - * This class defines the methods commonly used by the different - * caching strategies. For instance: method which - * decides and purges the entry from the container. @note This - * class helps in the caching_strategies using a container - * containing entries of kind where the HANDLER - * contains the caching attributes which help in deciding the - * entries to be purged. The Cleanup_Strategy is the callback - * class to which the entries to be cleaned up will be delegated. - */ -template -class ACE_Handler_Caching_Utility -{ -public: - - typedef ACE_Handler_Cleanup_Strategy CLEANUP_STRATEGY; - typedef ACE_Cleanup_Strategy CLEANUP_STRATEGY_BASE; - - /// Constructor. - ACE_Handler_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy = 0, - int delete_cleanup_strategy = 0); - - /// Destructor. - ~ACE_Handler_Caching_Utility (void); - - /** - * Purge entries from the . 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); - -protected: - - /** - * Find the entry with minimum caching attributes. This is handler - * specific since this utility is to be used very specifically for - * handler who have caching_attributes for server side acched - * connection management. - */ - void minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove); - - /// The cleanup strategy which can be used to destroy the entries of - /// the container. - 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 &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Handler_Caching_Utility (const ACE_Handler_Caching_Utility &)) -}; - -/////////////////////////////////////////////////////////////////////////// -#define ACE_Null_Caching_Utility ANUTIL -/** - * @class ACE_Null_Caching_Utility - * - * @brief Defines a dummy helper class for the Caching Strategies. - * - * This class defines the methods commonly used by the different - * caching strategies. For instance: method which - * decides and purges the entry from the container. @note This - * class is be used with the Null_Caching_Strategy. The - * Cleanup_Strategy is the callback class to which the entries to - * be cleaned up will be delegated. - */ -template -class ACE_Null_Caching_Utility -{ -public: - - typedef ACE_Null_Cleanup_Strategy CLEANUP_STRATEGY; - typedef ACE_Cleanup_Strategy CLEANUP_STRATEGY_BASE; - - /// Constructor. - ACE_Null_Caching_Utility (ACE_Cleanup_Strategy *cleanup_strategy = 0, - int delete_cleanup_strategy = 0); - - /// Destructor. - ~ACE_Null_Caching_Utility (void); - - /** - * Purge entries from the . The Cleanup_Strategy will do - * the actual job of cleanup once the entries to be cleaned up are - * decided. @note Here it is a no-op. - */ - int clear_cache (CONTAINER &container, - double purge_percent); - -protected: - - /** - * Find the entry with minimum caching attributes. This is handler - * specific since this utility is to be used very specifically for - * handler who have caching_attributes for server side acched - * connection management.@note Here it is a no-op. - */ - void minimum (CONTAINER &container, - KEY *&key_to_remove, - VALUE *&value_to_remove); - - /// The cleanup strategy which can be used to destroy the entries of - /// the container. - 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 &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Null_Caching_Utility (const ACE_Null_Caching_Utility &)) -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Caching_Utility_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Caching_Utility_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_CACHING_UTILITY_H */ diff --git a/ACE/ace/Capabilities.cpp b/ACE/ace/Capabilities.cpp deleted file mode 100644 index 04587194a77..00000000000 --- a/ACE/ace/Capabilities.cpp +++ /dev/null @@ -1,355 +0,0 @@ -#include "ace/Capabilities.h" -#include "ace/OS_NS_ctype.h" -#include "ace/OS_Memory.h" -#include "ace/OS_NS_string.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Capabilities.inl" -#endif /* !__ACE_INLINE__ */ - -#include "ace/OS_NS_stdio.h" - -ACE_RCSID (ace, - Capabilities, - "$Id$") - - -#define ACE_ESC ((ACE_TCHAR)0x1b) - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_CapEntry::~ACE_CapEntry (void) -{ -} - -ACE_Capabilities::ACE_Capabilities (void) - : caps_ () -{ -} - -ACE_Capabilities::~ACE_Capabilities (void) -{ - this->resetcaps (); -} - -const ACE_TCHAR * -ACE_Capabilities::parse (const ACE_TCHAR *buf, ACE_TString &cap) -{ - while (*buf != ACE_TEXT ('\0') && *buf != ACE_TEXT (',')) - { - if (*buf == ACE_TEXT ('\\')) - { - ++buf; - if (*buf == ACE_TEXT ('E') || *buf == ACE_TEXT ('e')) - { - cap += ACE_ESC; - ++buf; - continue; - } - else if (*buf == ACE_TEXT ('r')) - { - cap += ACE_TEXT ('\r'); - ++buf; - continue; - } - else if (*buf == ACE_TEXT ('n')) - { - cap += ACE_TEXT ('\n'); - ++buf; - continue; - } - else if (*buf == ACE_TEXT ('t')) - { - cap += ACE_TEXT ('\t'); - ++buf; - continue; - } - else if (*buf == ACE_TEXT ('\\')) - { - cap += *buf++; - continue; - } - if (ACE_OS::ace_isdigit(*buf)) - { - // @@ UNICODE Does this work with unicode? - int oc = 0; - for (int i = 0; - i < 3 && *buf && ACE_OS::ace_isdigit (*buf); - i++) - oc = oc * 8 + (*buf++ - ACE_TEXT ('0')); - - cap += (ACE_TCHAR) oc; - continue; - } - } - cap += *buf++; - } - return buf; -} - -const ACE_TCHAR * -ACE_Capabilities::parse (const ACE_TCHAR *buf, int &cap) -{ - int n = 0; - - while (*buf && ACE_OS::ace_isdigit (*buf)) - n = n * 10 + (*buf++ - ACE_TEXT ('0')); - - cap = n; - - return buf; -} - -void -ACE_Capabilities::resetcaps (void) -{ - for (CAPABILITIES_MAP::ITERATOR iter (this->caps_); - !iter.done (); - iter.advance ()) - { - CAPABILITIES_MAP::ENTRY *entry = 0; - iter.next (entry); - delete entry->int_id_; - } - - this->caps_.close (); - this->caps_.open (); -} - -int -ACE_Capabilities::fillent (const ACE_TCHAR *buf) -{ - this->resetcaps (); - while (*buf) - { - ACE_TString s; - int n; - ACE_TString name; - ACE_CapEntry *ce; - - // Skip blanks - while (*buf && ACE_OS::ace_isspace(*buf)) buf++; - // If we get end of line return - - if (*buf == ACE_TEXT ('\0')) - break; - - if (*buf == ACE_TEXT ('#')) - { - while (*buf && *buf != ACE_TEXT ('\n')) - buf++; - if (*buf == ACE_TEXT ('\n')) - buf++; - continue; - } - while(*buf && *buf != ACE_TEXT ('=') - && *buf!= ACE_TEXT ('#') - && *buf != ACE_TEXT (',')) - name += *buf++; - - // If name is null. - switch (*buf) - { - case ACE_TEXT ('='): - // String property - buf = this->parse (buf + 1, s); - ACE_NEW_RETURN (ce, - ACE_StringCapEntry (s), - -1); - if (this->caps_.bind (name, ce) == -1) - { - delete ce; - return -1; - } - break; - case ACE_TEXT ('#'): - // Integer property - buf = this->parse (buf + 1, n); - ACE_NEW_RETURN (ce, - ACE_IntCapEntry (n), - -1); - if (this->caps_.bind (name, ce) == -1) - { - delete ce; - return -1; - } - break; - case ACE_TEXT (','): - // Boolean - ACE_NEW_RETURN (ce, - ACE_BoolCapEntry (1), - -1); - if (this->caps_.bind (name, ce) == -1) - { - delete ce; - return -1; - } - break; - default: - return 0; - } - - if (*buf++ != ACE_TEXT (',')) - return -1; - } - - return 0; -} - -int -ACE_Capabilities::is_entry (const ACE_TCHAR *name, const ACE_TCHAR *line) -{ - for (;;) - { - // Skip blanks or irrelevant characters - while (*line && ACE_OS::ace_isspace(*line)) - ++line; - - // End of line reached - if (*line == ACE_TEXT ('\0')) - break; - - // Build the entry name - ACE_TString nextname; - while (*line && *line != ACE_TEXT ('|') && *line != ACE_TEXT (',')) - nextname += *line++; - - // We have found the required entry? - if (ACE_OS::strcmp (nextname.c_str (), name) == 0) - return 1; - - // Skip puntuaction char if neccesary. - if (*line == ACE_TEXT ('|') || *line == ACE_TEXT (',')) - ++line; - else - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Invalid entry\n"))); - break; - } - } - return 0; -} - -int -ACE_Capabilities::getline (FILE *fp, ACE_TString &line) -{ - int ch; - - line.set (0, 0); - - while ((ch = ACE_OS::fgetc (fp)) != EOF && ch != ACE_TEXT ('\n')) - line += (ACE_TCHAR) ch; - - if (ch == EOF && line.length () == 0) - return -1; - else - return 0; -} - -int -ACE_Capabilities::getval (const ACE_TCHAR *keyname, ACE_TString &val) -{ - ACE_CapEntry* cap = 0; - if (this->caps_.find (keyname, cap) == -1) - return -1; - - ACE_StringCapEntry *scap = - dynamic_cast (cap); - if (scap == 0) - return -1; - - val = scap->getval (); - return 0; -} - -int -ACE_Capabilities::getval (const ACE_TCHAR *keyname, int &val) -{ - ACE_CapEntry *cap = 0; - if (this->caps_.find (keyname, cap) == -1) - return -1; - - ACE_IntCapEntry *icap = - dynamic_cast (cap); - if (icap != 0) - { - val = icap->getval (); - return 0; - } - - ACE_BoolCapEntry *bcap = - dynamic_cast (cap); - - if (bcap == 0) - return -1; - - val = bcap->getval (); - return 0; -} - -#if !defined (ACE_IS_SPLITTING) -static int -is_empty (const ACE_TCHAR *line) -{ - while (*line && ACE_OS::ace_isspace (*line)) - ++line; - - return *line == ACE_TEXT ('\0') || *line == ACE_TEXT ('#'); -} - -static int -is_line (const ACE_TCHAR *line) -{ - while (*line && ACE_OS::ace_isspace (*line)) - ++line; - - return *line != ACE_TEXT ('\0'); -} -#endif /* !ACE_IS_SPLITTING */ - -int -ACE_Capabilities::getent (const ACE_TCHAR *fname, const ACE_TCHAR *name) -{ - FILE *fp = ACE_OS::fopen (fname, ACE_TEXT ("r")); - - if (fp == 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Can't open %s file\n"), - fname), - -1); - - int done; - ACE_TString line; - - while (0 == (done = (this->getline (fp, line) == -1)) - && is_empty (line.c_str ())) - continue; - - while (!done) - { - ACE_TString newline; - ACE_TString description; - - while (0 == (done = (this->getline (fp, newline) == -1))) - if (is_line (newline.c_str ())) - description += newline; - else - break; - - if (this->is_entry (name, line.c_str())) - { - ACE_OS::fclose (fp); - return this->fillent (description.c_str ()); - } - - line = newline; - while (!done && is_empty (line.c_str ())) - done = this->getline (fp, line) == -1; - } - - ACE_OS::fclose (fp); - return -1; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Capabilities.h b/ACE/ace/Capabilities.h deleted file mode 100644 index 4c26b9cb83a..00000000000 --- a/ACE/ace/Capabilities.h +++ /dev/null @@ -1,221 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Capabilities.h - * - * $Id$ - * - * @author Arturo Montes - */ -//============================================================================= - - -#ifndef ACE_CAPABILITIES_H -#define ACE_CAPABILITIES_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/Null_Mutex.h" -#include "ace/Hash_Map_Manager_T.h" -#include "ace/Containers.h" -#include "ace/SString.h" -#include "ace/Functor_String.h" - -#if defined (ACE_IS_SPLITTING) -# include "ace/OS_NS_ctype.h" -#endif /* ACE_IS_SPLITTING */ - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_CapEntry - * - * @brief This class is the base class for all ACE Capabilities entry - * subclasses. - * - * This class is not instantiable and does not provide accessors - * or methods. If you want to add a new kind of attribute subclass - * this class and dynamic_cast to proper subclass. - */ -class ACE_Export ACE_CapEntry -{ -public: - - virtual ~ACE_CapEntry (void); - -protected: - - enum - { - ACE_INTCAP = 0, - ACE_STRINGCAP = 1, - ACE_BOOLCAP = 2 - }; - - ACE_CapEntry (int captype); - -protected: - - int captype_; - -}; - -/** - * @class ACE_IntCapEntry - * - * @brief This class implement the ACE Integer Capability subclass. - * - * This is a container class for ACE Capabilities integer container - * values. - */ -class ACE_Export ACE_IntCapEntry : public ACE_CapEntry -{ -public: - ACE_IntCapEntry (int val); - int getval (void) const; - -protected: - int val_; -}; - -/** - * @class ACE_StringCapEntry - * - * @brief This class implement the ACE String Capability subclass. - * - * This is a container class for ACE Capabilities String container - * values. - */ -class ACE_Export ACE_StringCapEntry : public ACE_CapEntry -{ -public: - ACE_StringCapEntry (const ACE_TString &val); - ACE_TString getval (void) const; - -protected: - ACE_TString val_; -}; - -/** - * @class ACE_BoolCapEntry - * - * @brief This class implement the ACE Bool Capability subclass. - * - * This is a container class for ACE Capabilities bool container - * values. - */ -class ACE_Export ACE_BoolCapEntry : public ACE_CapEntry -{ -public: - ACE_BoolCapEntry (int val); - int getval (void) const; - -protected: - int val_; -}; - -/** - * @class ACE_Capabilities - * - * @brief This class implement the ACE Capabilities. - * - * This is a container class for ACE Capabilities - * values. Currently exist three different capability values: - * (integer), (bool) and - * (String). An ACE_Capabilities is a - * unordered set of pair = (, *). Where - * the first component is the name of capability and the second - * component is a pointer to the capability value container. A - * is a container for ACE_Capabilities, the - * ACE_Capabilities has a name in the file, as a termcap file. - */ -class ACE_Export ACE_Capabilities -{ -public: - - typedef ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex> CAPABILITIES_MAP; - - /// The Constructor - ACE_Capabilities (void); - - /// The Destructor - ~ACE_Capabilities(void); - -public: - - /// Get a string entry. - int getval (const ACE_TCHAR *ent, ACE_TString &val); - - /// Get an integer entry. - int getval (const ACE_TCHAR *ent, int &val); - - /// Get the ACE_Capabilities name from FILE fname and load the - /// associated capabitily entries in map. - int getent (const ACE_TCHAR *fname, const ACE_TCHAR *name); - -protected: - - /// Parse an integer property - const ACE_TCHAR *parse (const ACE_TCHAR *buf, int &cap); - - /// Parse a string property - const ACE_TCHAR *parse (const ACE_TCHAR *buf, ACE_TString &cap); - - /// Fill the ACE_Capabilities with description in ent. - int fillent(const ACE_TCHAR *ent); - - /// Parse a cap entry - int parseent (const ACE_TCHAR *name, ACE_TCHAR *line); - - /// Get a line from FILE input stream - int getline (FILE* fp, - ACE_TString &line); - - /// Is a valid entry - int is_entry (const ACE_TCHAR *name, const ACE_TCHAR *line); - - /// Reset the set of capabilities - void resetcaps (void); - -private: - - /// This is the set of ACE_CapEntry. - CAPABILITIES_MAP caps_; - -}; - -#if defined (ACE_IS_SPLITTING) -int -is_empty (const ACE_TCHAR *line) -{ - while (*line && ACE_OS::ace_isspace (*line)) - ++line; - - return *line == ACE_TEXT ('\0') || *line == ACE_TEXT ('#'); -} - -int -is_line (const ACE_TCHAR *line) -{ - while (*line && ACE_OS::ace_isspace (*line)) - ++line; - - return *line != ACE_TEXT ('\0'); -} -#endif /* ACE_IS_SPLITTING */ - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Capabilities.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* __ACE_CAPABILITIES_H__ */ diff --git a/ACE/ace/Capabilities.inl b/ACE/ace/Capabilities.inl deleted file mode 100644 index 053e0ecf7b6..00000000000 --- a/ACE/ace/Capabilities.inl +++ /dev/null @@ -1,52 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_CapEntry::ACE_CapEntry (int captype) - : captype_ (captype) -{ -} - -ACE_INLINE -ACE_IntCapEntry::ACE_IntCapEntry (int val) - : ACE_CapEntry (ACE_INTCAP), - val_ (val) -{ -} - -ACE_INLINE int -ACE_IntCapEntry::getval (void) const -{ - return val_; -} - -ACE_INLINE -ACE_StringCapEntry::ACE_StringCapEntry (const ACE_TString &val) - : ACE_CapEntry (ACE_STRINGCAP), - val_ (val) -{ -} - -ACE_INLINE ACE_TString -ACE_StringCapEntry::getval (void) const -{ - return val_; -} - -ACE_INLINE -ACE_BoolCapEntry::ACE_BoolCapEntry (int val) - : ACE_CapEntry (ACE_BOOLCAP), - val_(val) -{ -} - -ACE_INLINE int -ACE_BoolCapEntry::getval (void) const -{ - return val_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Cleanup.cpp b/ACE/ace/Cleanup.cpp deleted file mode 100644 index a6fc5de6a78..00000000000 --- a/ACE/ace/Cleanup.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// $Id$ - -#include "ace/Cleanup.h" - -ACE_RCSID (ace, - Cleanup, - "$Id$") - -#if !defined (ACE_HAS_INLINED_OSCALLS) -# include "ace/Cleanup.inl" -#endif /* ACE_HAS_INLINED_OSCALLS */ - -#include "ace/OS_Memory.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -void -ACE_Cleanup::cleanup (void *) -{ - delete this; -} - - -ACE_Cleanup::~ACE_Cleanup (void) -{ -} - -/*****************************************************************************/ - -extern "C" void -ACE_CLEANUP_DESTROYER_NAME (ACE_Cleanup *object, void *param) -{ - object->cleanup (param); -} - -/*****************************************************************************/ - -ACE_Cleanup_Info::ACE_Cleanup_Info (void) - : object_ (0), - cleanup_hook_ (0), - param_ (0) -{ -} - -bool -ACE_Cleanup_Info::operator== (const ACE_Cleanup_Info &o) const -{ - return o.object_ == this->object_ - && o.cleanup_hook_ == this->cleanup_hook_ - && o.param_ == this->param_; -} - -bool -ACE_Cleanup_Info::operator!= (const ACE_Cleanup_Info &o) const -{ - return !(*this == o); -} - -/*****************************************************************************/ - -/** - * @class ACE_Cleanup_Info_Node - * - * @brief For maintaining a list of ACE_Cleanup_Info items. - * - * For internal use by ACE_Object_Manager. - */ -class ACE_Cleanup_Info_Node -{ -public: - ACE_Cleanup_Info_Node (void); - ACE_Cleanup_Info_Node (const ACE_Cleanup_Info &new_info, - ACE_Cleanup_Info_Node *next); - ~ACE_Cleanup_Info_Node (void); - ACE_Cleanup_Info_Node *insert (const ACE_Cleanup_Info &); -private: - ACE_Cleanup_Info cleanup_info_; - ACE_Cleanup_Info_Node *next_; - - friend class ACE_OS_Exit_Info; -}; - -ACE_Cleanup_Info_Node::ACE_Cleanup_Info_Node (void) - : cleanup_info_ (), - next_ (0) -{ -} - -ACE_Cleanup_Info_Node::ACE_Cleanup_Info_Node (const ACE_Cleanup_Info &new_info, - ACE_Cleanup_Info_Node *next) - : cleanup_info_ (new_info), - next_ (next) -{ -} - -ACE_Cleanup_Info_Node::~ACE_Cleanup_Info_Node (void) -{ - delete next_; -} - -ACE_Cleanup_Info_Node * -ACE_Cleanup_Info_Node::insert (const ACE_Cleanup_Info &new_info) -{ - ACE_Cleanup_Info_Node *new_node = 0; - - ACE_NEW_RETURN (new_node, - ACE_Cleanup_Info_Node (new_info, this), - 0); - - return new_node; -} - -/*****************************************************************************/ - -ACE_OS_Exit_Info::ACE_OS_Exit_Info (void) -{ - ACE_NEW (registered_objects_, ACE_Cleanup_Info_Node); -} - -ACE_OS_Exit_Info::~ACE_OS_Exit_Info (void) -{ - delete registered_objects_; - registered_objects_ = 0; -} - -int -ACE_OS_Exit_Info::at_exit_i (void *object, - ACE_CLEANUP_FUNC cleanup_hook, - void *param) -{ - ACE_Cleanup_Info new_info; - new_info.object_ = object; - new_info.cleanup_hook_ = cleanup_hook; - new_info.param_ = param; - - // Return -1 and sets errno if unable to allocate storage. Enqueue - // at the head and dequeue from the head to get LIFO ordering. - - ACE_Cleanup_Info_Node *new_node = 0; - - if ((new_node = registered_objects_->insert (new_info)) == 0) - return -1; - else - { - registered_objects_ = new_node; - return 0; - } -} - -int -ACE_OS_Exit_Info::find (void *object) -{ - // Check for already in queue, and return 1 if so. - for (ACE_Cleanup_Info_Node *iter = registered_objects_; - iter && iter->next_ != 0; - iter = iter->next_) - { - if (iter->cleanup_info_.object_ == object) - { - // The object has already been registered. - return 1; - } - } - - return 0; -} - -void -ACE_OS_Exit_Info::call_hooks (void) -{ - // Call all registered cleanup hooks, in reverse order of - // registration. - for (ACE_Cleanup_Info_Node *iter = registered_objects_; - iter && iter->next_ != 0; - iter = iter->next_) - { - ACE_Cleanup_Info &info = iter->cleanup_info_; - if (info.cleanup_hook_ == reinterpret_cast ( - ACE_CLEANUP_DESTROYER_NAME)) - // The object is an ACE_Cleanup. - ACE_CLEANUP_DESTROYER_NAME ( - reinterpret_cast (info.object_), - info.param_); - else if (info.object_ == &ace_exit_hook_marker) - // The hook is an ACE_EXIT_HOOK. - (* reinterpret_cast (info.cleanup_hook_)) (); - else - (*info.cleanup_hook_) (info.object_, info.param_); - } -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Cleanup.h b/ACE/ace/Cleanup.h deleted file mode 100644 index 7acff23ab79..00000000000 --- a/ACE/ace/Cleanup.h +++ /dev/null @@ -1,137 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Cleanup.h - * - * $Id$ - * - * @author Douglas C. Schmidt - * @author Jesper S. M|ller - * @author and a cast of thousands... - * - * Originally in OS.h. - */ -//============================================================================= - -#ifndef ACE_CLEANUP_H -# define ACE_CLEANUP_H - -# include /**/ "ace/pre.h" - -# include "ace/config-lite.h" - -# if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -# endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include /**/ "ace/ACE_export.h" - -#if (defined (ACE_HAS_VERSIONED_NAMESPACE) && ACE_HAS_VERSIONED_NAMESPACE == 1) -# include "ace/Global_Macros.h" -# define ACE_CLEANUP_DESTROYER_NAME ACE_PREPROC_CONCATENATE(ACE_VERSIONED_NAMESPACE_NAME, _ace_cleanup_destroyer) -#else -# define ACE_CLEANUP_DESTROYER_NAME ace_cleanup_destroyer -#endif /* ACE_HAS_VERSIONED_NAMESPACE == 1 */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Cleanup - * - * @brief Base class for objects that are cleaned by ACE_Object_Manager. - */ -class ACE_Export ACE_Cleanup -{ -public: - /// No-op constructor. - ACE_Cleanup (void); - - /// Destructor. - virtual ~ACE_Cleanup (void); - - /// Cleanup method that, by default, simply deletes itself. - virtual void cleanup (void *param = 0); -}; - -// Adapter for cleanup, used by ACE_Object_Manager. -extern "C" ACE_Export -void ACE_CLEANUP_DESTROYER_NAME (ACE_Cleanup *, void *param = 0); - -/** - * @class ACE_Cleanup_Info - * - * @brief Hold cleanup information for thread/process - */ -class ACE_Export ACE_Cleanup_Info -{ -public: - /// Default constructor. - ACE_Cleanup_Info (void); - - /// Equality operator. - bool operator== (const ACE_Cleanup_Info &o) const; - - /// Inequality operator. - bool operator!= (const ACE_Cleanup_Info &o) const; - - /// Point to object that gets passed into the . - void *object_; - - /// Cleanup hook that gets called back. - ACE_CLEANUP_FUNC cleanup_hook_; - - /// Parameter passed to the . - void *param_; -}; - -class ACE_Cleanup_Info_Node; - -/** - * @class ACE_OS_Exit_Info - * - * @brief Hold Object Manager cleanup (exit) information. - * - * For internal use by the ACE library, only. - */ -class ACE_Export ACE_OS_Exit_Info -{ -public: - /// Default constructor. - ACE_OS_Exit_Info (void); - - /// Destructor. - ~ACE_OS_Exit_Info (void); - - /// Use to register a cleanup hook. - int at_exit_i (void *object, ACE_CLEANUP_FUNC cleanup_hook, void *param); - - /// Look for a registered cleanup hook object. Returns 1 if already - /// registered, 0 if not. - int find (void *object); - - /// Call all registered cleanup hooks, in reverse order of - /// registration. - void call_hooks (); - -private: - /** - * Keeps track of all registered objects. The last node is only - * used to terminate the list (it doesn't contain a valid - * ACE_Cleanup_Info). - */ - ACE_Cleanup_Info_Node *registered_objects_; -}; - -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/Cleanup.inl" -# endif /* ACE_HAS_INLINED_OSCALLS */ - -# include /**/ "ace/post.h" -#endif /* ACE_CLEANUP_H */ diff --git a/ACE/ace/Cleanup.inl b/ACE/ace/Cleanup.inl deleted file mode 100644 index 02d3c223f8d..00000000000 --- a/ACE/ace/Cleanup.inl +++ /dev/null @@ -1,12 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Cleanup::ACE_Cleanup (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Cleanup_Strategies_T.cpp b/ACE/ace/Cleanup_Strategies_T.cpp deleted file mode 100644 index 10804ba21ca..00000000000 --- a/ACE/ace/Cleanup_Strategies_T.cpp +++ /dev/null @@ -1,95 +0,0 @@ -//$Id$ - -#ifndef ACE_CLEANUP_STRATEGIES_T_CPP -#define ACE_CLEANUP_STRATEGIES_T_CPP - -#include "ace/Cleanup_Strategies_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -//////////////////////////////////////////////////////////////////////////// - -template -ACE_Cleanup_Strategy::~ACE_Cleanup_Strategy (void) -{ -} - -template int -ACE_Cleanup_Strategy::cleanup (CONTAINER &container, - KEY *key, - VALUE *) -{ - return container.unbind (*key); -} - -//////////////////////////////////////////////////////////////////////////// - -template int -ACE_Recyclable_Handler_Cleanup_Strategy::cleanup ( - CONTAINER &container, - KEY *key, - VALUE *) -{ - VALUE value; - - if (container.unbind (*key, value) == -1) - return -1; - - value.first ()->recycler (0, 0); - - value.first ()->close (); - - return 0; -} - -///////////////////////////////////////////////////////////////////////////// - -template int -ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy::cleanup ( - CONTAINER &, - KEY *, - VALUE *value) -{ - return value->first ()->handle_close_i (); -} - -//////////////////////////////////////////////////////////////////////////// - -template int -ACE_Handler_Cleanup_Strategy::cleanup ( - CONTAINER &container, - KEY *key, - VALUE *value) -{ - // Remove the item from cache only if the handler isnt in use. - if ((*value)->active () == 0) - { - (*value)->close (); - - if (container.unbind (*key) == -1) - return -1; - - } - - return 0; -} - -//////////////////////////////////////////////////////////////////////////// - -template int -ACE_Null_Cleanup_Strategy::cleanup (CONTAINER &, - KEY *, - VALUE *) -{ - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_CLEANUP_STRATEGIES_T_CPP */ diff --git a/ACE/ace/Cleanup_Strategies_T.h b/ACE/ace/Cleanup_Strategies_T.h deleted file mode 100644 index 9a574ed2bcd..00000000000 --- a/ACE/ace/Cleanup_Strategies_T.h +++ /dev/null @@ -1,155 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Cleanup_Strategies_T.h - * - * $Id$ - * - * @author Kirthika Parameswaran - */ -//============================================================================= - - -#ifndef CLEANUP_STRATEGIES_H -#define CLEANUP_STRATEGIES_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// For linkers that cant grok long names. -#define ACE_Cleanup_Strategy ACLE - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Cleanup_Strategy - * - * @brief Defines a default strategy to be followed for cleaning up - * entries from a map which is the container. - * - * By default the entry to be cleaned up is removed from the - * container. - */ -template -class ACE_Cleanup_Strategy -{ - -public: - - /// Destructor. - virtual ~ACE_Cleanup_Strategy (void); - - /// The method which will do the cleanup of the entry in the container. - virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value); -}; - -////////////////////////////////////////////////////////////////////// -#define ACE_Recyclable_Handler_Cleanup_Strategy ARHCLE - -/** - * @class ACE_Recyclable_Handler_Cleanup_Strategy - * - * @brief Defines a strategy to be followed for cleaning up - * entries which are svc_handlers from a container. - * - * The entry to be cleaned up is removed from the container. - * Here, since we are dealing with svc_handlers specifically, we - * perform a couple of extra operations. @note To be used when - * the handler is recyclable. - */ -template -class ACE_Recyclable_Handler_Cleanup_Strategy : public ACE_Cleanup_Strategy -{ - -public: - - /// The method which will do the cleanup of the entry in the container. - virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value); -}; - -////////////////////////////////////////////////////////////////////// -#define ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy ARRHCLE - -/** - * @class ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy - * - * @brief Defines a strategy to be followed for cleaning up - * entries which are svc_handlers from a container. - * - * The entry to be cleaned up is removed from the container. - * Here, since we are dealing with recyclable svc_handlers with - * addresses which are refcountable specifically, we perform a - * couple of extra operations and do so without any locking. - */ -template -class ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy : public ACE_Cleanup_Strategy -{ - -public: - - /// The method which will do the cleanup of the entry in the container. - virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value); -}; - -////////////////////////////////////////////////////////////////////// - -/** - * @class ACE_Handler_Cleanup_Strategy - * - * @brief Defines a strategy to be followed for cleaning up - * entries which are svc_handlers from a container. - * - * The entry to be cleaned up is removed from the container. - * Here, since we are dealing with svc_handlers specifically, we - * perform a couple of extra operations. @note This cleanup strategy - * should be used in the case when the handler has the caching - * attributes. - */ -template -class ACE_Handler_Cleanup_Strategy : public ACE_Cleanup_Strategy -{ - -public: - - /// The method which will do the cleanup of the entry in the container. - virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value); -}; - -////////////////////////////////////////////////////////////////////// -#define ACE_Null_Cleanup_Strategy ANCLE - -/** - * @class ACE_Null_Cleanup_Strategy - * - * @brief Defines a do-nothing implementation of the cleanup strategy. - * - * This class simply does nothing at all! Can be used to nullify - * the effect of the Cleanup Strategy. - */ -template -class ACE_Null_Cleanup_Strategy : public ACE_Cleanup_Strategy -{ - -public: - - /// The dummy cleanup method. - virtual int cleanup (CONTAINER &container, KEY *key, VALUE *value); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Cleanup_Strategies_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Cleanup_Strategies_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* CLEANUP_STRATEGIES_H */ diff --git a/ACE/ace/Codecs.cpp b/ACE/ace/Codecs.cpp deleted file mode 100644 index 505c5fc9916..00000000000 --- a/ACE/ace/Codecs.cpp +++ /dev/null @@ -1,234 +0,0 @@ -#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 ... -#undef alphabet -#undef pad -#undef max_columns - - // Symbols which form the Base64 alphabet (Defined as per RFC 2045) - ACE_Byte const alphabet[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - - // The padding character used in the encoding - ACE_Byte const pad = '='; - - // Number of columns per line of encoded output (Can have a maximum - // value of 76). - int const max_columns = 72; -} - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -bool ACE_Base64::init_ = false; - -ACE_Byte ACE_Base64::decoder_[256]; - -ACE_Byte ACE_Base64::member_[256]; - -ACE_Byte* -ACE_Base64::encode (const ACE_Byte* input, - const size_t input_len, - size_t* output_len, - bool is_chunked) -{ - if (!ACE_Base64::init_) - ACE_Base64::init(); - - if (!input) - return 0; - - ACE_Byte* result = 0; - - size_t length = ((input_len + 2) / 3) * 4; - size_t num_lines = length / max_columns + 1; - length += num_lines + 1; - ACE_NEW_RETURN (result, ACE_Byte[length], 0); - - int char_count = 0; - int bits = 0; - size_t pos = 0; - int cols = 0; - - for (size_t i = 0; i < input_len; ++i) - { - bits += input[i]; - ++char_count; - - if (char_count == 3) - { - result[pos++] = alphabet[bits >> 18]; - result[pos++] = alphabet[(bits >> 12) & 0x3f]; - result[pos++] = alphabet[(bits >> 6) & 0x3f]; - result[pos++] = alphabet[bits & 0x3f]; - cols += 4; - if (cols == max_columns) { - if (is_chunked) - result[pos++] = '\n'; - cols = 0; - } - bits = 0; - char_count = 0; - } - else - { - bits <<= 8; - } - } - - if (char_count != 0) - { - bits <<= (16 - (8 * char_count)); - result[pos++] = alphabet[bits >> 18]; - result[pos++] = alphabet[(bits >> 12) & 0x3f]; - cols += 2; - if (char_count == 1) - { - result[pos++] = pad; - result[pos++] = pad; - cols += 2; - } - else - { - result[pos++] = alphabet[(bits >> 6) & 0x3f]; - result[pos++] = pad; - cols += 2; - } - } - - if (cols > 0 && is_chunked) - result[pos++] = '\n'; - - result[pos] = 0; - *output_len = pos; - return result; -} - -size_t -ACE_Base64::length (const ACE_Byte* input) -{ - if (!ACE_Base64::init_) - ACE_Base64::init(); - - ACE_Byte* ptr = const_cast (input); - while (*ptr != 0 && - (member_[*(ptr)] == 1 || *ptr == pad - || ACE_OS::ace_isspace (*ptr))) - ++ptr; - size_t len = ptr - input; - len = ((len + 3) / 4) * 3 + 1 ; - return len; -} - -ACE_Byte* -ACE_Base64::decode (const ACE_Byte* input, size_t* output_len) -{ - if (!ACE_Base64::init_) - ACE_Base64::init(); - - if (!input) - return 0; - - size_t result_len = ACE_Base64::length (input); - ACE_Byte* result = 0; - ACE_NEW_RETURN (result, ACE_Byte[result_len], 0); - - ACE_Byte* ptr = const_cast (input); - while (*ptr != 0 && - (member_[*(ptr)] == 1 || *ptr == pad - || ACE_OS::ace_isspace (*ptr))) - ++ptr; - size_t input_len = ptr - input; - - int char_count = 0; - int bits = 0; - size_t pos = 0; - - size_t i = 0; - for (; i < input_len; ++i) - { - if (input[i] == pad) - break; - if (!ACE_Base64::member_[input[i]]) - continue; - bits += decoder_[input[i]]; - ++char_count; - - if (char_count == 4) - { - result[pos++] = static_cast (bits >> 16); - result[pos++] = static_cast ((bits >> 8) & 0xff); - result[pos++] = static_cast (bits & 0xff); - bits = 0; - char_count = 0; - } - else - { - bits <<= 6; - } - } - - int errors = 0; - if ( i == input_len) - { - if (char_count) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Decoding incomplete: atleast %d bits truncated\n"), - (4 - char_count) * 6)); - ++errors; - } - } - else - { - switch (char_count) - { - case 1: - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Decoding incomplete: atleast 2 bits missing\n"))); - ++errors; - break; - case 2: - result[pos++] = static_cast (bits >> 10); - break; - case 3: - result[pos++] = static_cast (bits >> 16); - result[pos++] = static_cast ((bits >> 8) & 0xff); - break; - } - } - - if (errors) - { - delete[] result; - return 0; - } - result[pos] = 0; - *output_len = pos; - return result; -} - -void -ACE_Base64::init () -{ - if (!ACE_Base64::init_) - { - for (ACE_Byte i = 0; i < sizeof (alphabet); ++i) - { - ACE_Base64::decoder_[alphabet[i]] = i; - ACE_Base64::member_ [alphabet[i]] = 1; - } - ACE_Base64::init_ = true; - } - return; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Codecs.h b/ACE/ace/Codecs.h deleted file mode 100644 index 85447b75e06..00000000000 --- a/ACE/ace/Codecs.h +++ /dev/null @@ -1,121 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Codecs.h - * - * $Id$ - * - * @author Krishnakumar B - * - * Codecs is a generic wrapper for various encoding and decoding - * mechanisms. Currently it includes Base64 content transfer-encoding as - * specified by RFC 2045, Multipurpose Internet Mail Extensions (MIME) Part - * One: Format of Internet Message Bodies. - * - */ -//============================================================================= - -#ifndef ACE_CODECS_H -#define ACE_CODECS_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/Basic_Types.h" -#include "ace/Global_Macros.h" - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Base64 - * - * @brief Encode/Decode a stream of bytes according to Base64 encoding. - * - * This class provides methods to encode or decode a stream of bytes - * to/from Base64 encoding. It doesn't convert the input stream to a - * canonical form before encoding. - * - */ -class ACE_Export ACE_Base64 -{ -public: - - //@{ - - /** - * Encodes a stream of bytes to Base64 data - * - * @param input Binary data in byte stream. - * @param input_len Length of the byte stream. - * @param output_len Length of the encoded Base64 byte stream. - * @param is_chunked If true, terminate 72 character blocks with newline - * @return Encoded Base64 data in byte stream or NULL if input data cannot - * be encoded. - */ - - static ACE_Byte* encode (const ACE_Byte* input, - const size_t input_len, - size_t* output_len, - bool is_chunked = true); - /** - * Decodes a stream of Base64 to bytes data - * - * @param input Encoded Base64 data in byte stream. - * @param output_len Length of the binary byte stream. - * @return Binary data in byte stream or NULL if input data cannot - * be encoded. - */ - static ACE_Byte* decode (const ACE_Byte* input, - size_t* output_len); - - /** - * Return the length of the encoded input data - * - * @param input Encoded Base64 data in byte stream. - * @return Length of the encoded Base64 data. - * - */ - static size_t length (const ACE_Byte* input); - - //@} - -protected: - - // Prevent default construction. - ACE_Base64 (void) {} - -private: - - // Preventing copying and assignment. - ACE_Base64 (ACE_Base64 const &); - ACE_Base64 & operator= (ACE_Base64 const &); - - /// Initialize the tables for encoding/decoding. - static void init (void); - -private: - - /// Alphabet used for decoding i.e decoder_[alphabet_[i = 0..63]] = i - static ACE_Byte decoder_[]; - - /// Alphabet used to check valid range of encoded input i.e - /// member_[alphabet_[0..63]] = 1 - static ACE_Byte member_[]; - - /// Boolean to denote whether initialization is complete - static bool init_; - -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" - -#endif /* ACE_CODECS_H */ diff --git a/ACE/ace/Codeset_IBM1047.cpp b/ACE/ace/Codeset_IBM1047.cpp deleted file mode 100644 index 5e208fd373f..00000000000 --- a/ACE/ace/Codeset_IBM1047.cpp +++ /dev/null @@ -1,312 +0,0 @@ - -//============================================================================= -/** - * @file Codeset_IBM1047.cpp - * - * $Id$ - * - * Defines the arrays required to convert between ISO8859 (aka - * Latin/1) and IBM1047 (aka EBCDIC). - * - * - * @author Jim Rogers (jrogers@viasoft.com) - */ -//============================================================================= - - -#include "ace/Codeset_IBM1047.h" - -#if defined (ACE_HAS_EBCDIC) - -ACE_RCSID (ace, - Codeset_IBM1047, - "$Id$") - -#include "ace/OS_Memory.h" -#include "ace/OS_NS_string.h" - -namespace -{ - char const to_IBM1047[] = - { - "\x00\x01\x02\x03\x37\x2D\x2E\x2F\x16\x05\x25\x0B\x0C\x0D\x0E\x0F" // 00-0F - "\x10\x11\x12\x13\x3C\x3D\x32\x26\x18\x19\x3F\x27\x22\x1D\x35\x1F" // 10-1F - "\x40\x5A\x7F\x7B\x5B\x6C\x50\x7D\x4D\x5D\x5C\x4E\x6B\x60\x4B\x61" // 20-2F - "\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\x7A\x5E\x4C\x7E\x6E\x6F" // 30-3F - "\x7C\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xD1\xD2\xD3\xD4\xD5\xD6" // 40-4F - "\xD7\xD8\xD9\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xAD\xE0\xBD\x5F\x6D" // 50-5F - "\x79\x81\x82\x83\x84\x85\x86\x87\x88\x89\x91\x92\x93\x94\x95\x96" // 60-6F - "\x97\x98\x99\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xC0\x4F\xD0\xA1\x07" // 70-7F - "\x43\x20\x21\x1C\x23\xEB\x24\x9B\x71\x28\x38\x49\x90\xBA\xEC\xDF" // 80-8F - "\x45\x29\x2A\x9D\x72\x2B\x8A\x9A\x67\x56\x64\x4A\x53\x68\x59\x46" // 90-9F - "\xEA\xDA\x2C\xDE\x8B\x55\x41\xFE\x58\x51\x52\x48\x69\xDB\x8E\x8D" // A0-AF - "\x73\x74\x75\xFA\x15\xB0\xB1\xB3\xB4\xB5\x6A\xB7\xB8\xB9\xCC\xBC" // B0-BF - "\xAB\x3E\x3B\x0A\xBF\x8F\x3A\x14\xA0\x17\xCB\xCA\x1A\x1B\x9C\x04" // C0-CF - "\x34\xEF\x1E\x06\x08\x09\x77\x70\xBE\xBB\xAC\x54\x63\x65\x66\x62" // D0-DF - "\x30\x42\x47\x57\xEE\x33\xB6\xE1\xCD\xED\x36\x44\xCE\xCF\x31\xAA" // E0-EF - "\xFC\x9E\xAE\x8C\xDD\xDC\x39\xFB\x80\xAF\xFD\x78\x76\xB2\x9F\xFF" // F0-FF -}; - - char const from_IBM1047[] = - { - "\x00\x01\x02\x03\xCF\x09\xD3\x7F\xD4\xD5\xC3\x0B\x0C\x0D\x0E\x0F" // 00-0F - "\x10\x11\x12\x13\xC7\xB4\x08\xC9\x18\x19\xCC\xCD\x83\x1D\xD2\x1F" // 10-1F - "\x81\x82\x1C\x84\x86\x0A\x17\x1B\x89\x91\x92\x95\xA2\x05\x06\x07" // 20-2F - "\x20\xEE\x16\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\xC1\x1A" // 30-3F - "\x20\xA6\xE1\x80\xEB\x90\x9F\xE2\xAB\x8B\x9B\x2E\x3C\x28\x2B\x7C" // 40-4F - "\x26\xA9\xAA\x9C\xDB\xA5\x99\xE3\xA8\x9E\x21\x24\x2A\x29\x3B\x5E" // 50-5F - "\x2D\x2F\xDF\xDC\x9A\xDD\xDE\x98\x9D\xAC\xBA\x2C\x25\x5F\x3E\x3F" // 60-6F - "\xD7\x88\x94\xB0\xB1\xB2\xFC\xD6\xFB\x60\x3A\x23\x40\x27\x3D\x22" // 70-7F - "\xF8\x61\x62\x63\x64\x65\x66\x67\x68\x69\x96\xA4\xF3\xAF\xAE\xC5" // 80-8F - "\x8C\x6A\x6B\x6C\x6D\x6E\x6F\x70\x71\x72\x97\x87\xCE\x93\xF1\xFE" // 90-9F - "\xC8\x7E\x73\x74\x75\x76\x77\x78\x79\x7A\xEF\xC0\xDA\x5B\xF2\xF9" // A0-AF - "\xB5\xB6\xFD\xB7\xB8\xB9\xE6\xBB\xBC\xBD\x8D\xD9\xBF\x5D\xD8\xC4" // B0-BF - "\x7B\x41\x42\x43\x44\x45\x46\x47\x48\x49\xCB\xCA\xBE\xE8\xEC\xED" // C0-CF - "\x7D\x4A\x4B\x4C\x4D\x4E\x4F\x50\x51\x52\xA1\xAD\xF5\xF4\xA3\x8F" // D0-DF - "\x5C\xE7\x53\x54\x55\x56\x57\x58\x59\x5A\xA0\x85\x8E\xE9\xE4\xD1" // E0-EF - "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\xB3\xF7\xF0\xFA\xA7\xFF" // F0-FF - }; -} - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_IBM1047_ISO8859::ACE_IBM1047_ISO8859 (void) -{ -} - -ACE_IBM1047_ISO8859::~ACE_IBM1047_ISO8859 (void) -{ -} - -ACE_CDR::ULong -ACE_IBM1047_ISO8859::ncs () -{ - return 0x10020417; -} - -ACE_CDR::ULong -ACE_IBM1047_ISO8859::tcs () -{ - return 0x00010001; -} - -ACE_CDR::Boolean -ACE_IBM1047_ISO8859::read_char (ACE_InputCDR &in, - ACE_CDR::Char &x) -{ - if (this->read_1 (in, reinterpret_cast (&x))) - { - x = to_IBM1047[x]; - return 1; - } - return 0; -} - -ACE_CDR::Boolean -ACE_IBM1047_ISO8859::read_string (ACE_InputCDR& in, - ACE_CDR::Char *& x) -{ - ACE_CDR::ULong len; - - in.read_ulong (len); - - if (len > 0) - { - ACE_NEW_RETURN (x, - ACE_CDR::Char[len], - 0); - - if (this->read_char_array (in, x, len)) - return 1; - - delete [] x; - } - - x = 0; - return 0; -} - -ACE_CDR::Boolean -ACE_IBM1047_ISO8859::read_char_array (ACE_InputCDR& in, - ACE_CDR::Char* x, - ACE_CDR::ULong len) -{ - if (this->read_array (in, - x, - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - len)) - { - for (ACE_CDR::ULong i = 0; i != len; ++i) - x[i] = to_IBM1047[x[i]]; - - return 1; - } - - return 0; -} - -ACE_CDR::Boolean -ACE_IBM1047_ISO8859::write_char (ACE_OutputCDR& out, - ACE_CDR::Char x) -{ - return - this->write_1 (out, - reinterpret_cast (&from_IBM1047[x])); -} - -ACE_CDR::Boolean -ACE_IBM1047_ISO8859::write_string (ACE_OutputCDR& out, - ACE_CDR::ULong len, - const ACE_CDR::Char* x) -{ - if (out.write_ulong (len + 1)) - return this->write_char_array (out, x, len + 1); - return 0; -} - -ACE_CDR::Boolean -ACE_IBM1047_ISO8859::write_char_array (ACE_OutputCDR& out, - const ACE_CDR::Char* x, - ACE_CDR::ULong len) -{ - char *buf = 0; - if (this->adjust (out, len, 1, buf) == 0) - { - ACE_OS::memcpy (buf, x, len); - - for (ACE_CDR::ULong i = 0; i != len; ++i) - buf[i] = from_IBM1047[buf[i]]; - - return 1; - } - - this->good_bit(out, 0); - return 0; -} - -// **************************************************************** - -ACE_ISO8859_IBM1047::ACE_ISO8859_IBM1047 (void) -{ -} - -ACE_ISO8859_IBM1047::~ACE_ISO8859_IBM1047 (void) -{ -} - -ACE_CDR::ULong -ACE_ISO8859_IBM1047::ncs () -{ - return 0x00010001; -} - -ACE_CDR::ULong -ACE_ISO8859_IBM1047::tcs () -{ - return 0x10020417; -} - -ACE_CDR::Boolean -ACE_ISO8859_IBM1047::read_char (ACE_InputCDR& in, - ACE_CDR::Char& x) -{ - if (this->read_1 (in, reinterpret_cast (&x))) - { - x = from_IBM1047[x]; - return 1; - } - return 0; -} - -ACE_CDR::Boolean -ACE_ISO8859_IBM1047::read_string (ACE_InputCDR &in, - ACE_CDR::Char *&x) -{ - ACE_CDR::ULong len; - - in.read_ulong (len); - - if (len > 0) - { - ACE_NEW_RETURN (x, - ACE_CDR::Char[len], - 0); - - if (this->read_char_array (in, x, len)) - return 1; - - delete [] x; - } - - x = 0; - return 0; -} - -ACE_CDR::Boolean -ACE_ISO8859_IBM1047::read_char_array (ACE_InputCDR &in, - ACE_CDR::Char *x, - ACE_CDR::ULong len) -{ - if (this->read_array (in, - x, - ACE_CDR::OCTET_SIZE, - ACE_CDR::OCTET_ALIGN, - len)) - { - for (ACE_CDR::ULong i = 0; i != len; ++i) - x[i] = from_IBM1047[x[i]]; - - return 1; - } - - return 0; -} - -ACE_CDR::Boolean -ACE_ISO8859_IBM1047::write_char (ACE_OutputCDR &out, - ACE_CDR::Char x) -{ - return - this->write_1 (out, - reinterpret_cast (&to_IBM1047[x])); -} - -ACE_CDR::Boolean -ACE_ISO8859_IBM1047::write_string (ACE_OutputCDR& out, - ACE_CDR::ULong len, - const ACE_CDR::Char* x) -{ - if (out.write_ulong (len + 1)) - return this->write_char_array (out, x, len + 1); - else - return 0; -} - -ACE_CDR::Boolean -ACE_ISO8859_IBM1047::write_char_array (ACE_OutputCDR &out, - const ACE_CDR::Char *x, - ACE_CDR::ULong len) -{ - char *buf = 0; - - if (this->adjust (out, len, 1, buf) == 0) - { - ACE_OS::memcpy (buf, x, len); - - for (ACE_CDR::ULong i = 0; i != len; ++i) - buf[i] = to_IBM1047[buf[i]]; - - return 1; - } - - this->good_bit (out, 0); - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#elif defined (__HP_aCC) -// Make aC++ stop complaining about an empty translation unit -static int const shut_up_aCC = 0; -#endif /* ACE_HAS_EBCDIC */ diff --git a/ACE/ace/Codeset_IBM1047.h b/ACE/ace/Codeset_IBM1047.h deleted file mode 100644 index c5bfdafcd49..00000000000 --- a/ACE/ace/Codeset_IBM1047.h +++ /dev/null @@ -1,128 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Codeset_IBM1047.h - * - * $Id$ - * - * Declares the arrays required to convert between ISO8859 (aka - * Latin/1) and IBM1047 (aka EBCDIC). - * - * - * @author Jim Rogers (jrogers@viasoft.com) - */ -//============================================================================= - - -#ifndef ACE_CODESET_IMB1047_H -#define ACE_CODESET_IMB1047_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_HAS_EBCDIC) - -#include "ace/CDR_Stream.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// **************************************************************** - -/** - * @class ACE_IBM1047_ISO8859 - * - * @brief Codeset translation specialization. - * - * This class performs the codeset translation: - * - Native: IBM_1047 (i.e. EBCDIC) - * - Stream: ISO-8859 (i.e. Latin/1) - */ -class ACE_Export ACE_IBM1047_ISO8859 : public ACE_Char_Codeset_Translator -{ -public: - /// A do nothing constructor. - ACE_IBM1047_ISO8859 (void); - - /// Virtual destruction - virtual ~ACE_IBM1047_ISO8859 (void); - - // = Documented in $ACE_ROOT/ace/CDR_Stream.h - virtual ACE_CDR::Boolean read_char (ACE_InputCDR &, - ACE_CDR::Char &); - virtual ACE_CDR::Boolean read_string (ACE_InputCDR &, - ACE_CDR::Char *&); - virtual ACE_CDR::Boolean read_char_array (ACE_InputCDR &, - ACE_CDR::Char *, - ACE_CDR::ULong); - virtual ACE_CDR::Boolean write_char (ACE_OutputCDR &, - ACE_CDR::Char); - virtual ACE_CDR::Boolean write_string (ACE_OutputCDR &, - ACE_CDR::ULong, - const ACE_CDR::Char *); - virtual ACE_CDR::Boolean write_char_array (ACE_OutputCDR &, - const ACE_CDR::Char *, - ACE_CDR::ULong); - - /// return the native codeset ID as defined in the OSF code and character - /// set registry, 0x10020417 - virtual ACE_CDR::ULong ncs (); - /// return the translated codeset ID as defined in the OSF code and character - /// set registry, 0x00010001 - virtual ACE_CDR::ULong tcs (); -}; - -/** - * @class ACE_ISO8859_IBM1047 - * - * @brief Codeset translation specialization. - * - * This class performs the codeset translation: - * - Native: ISO-8859 (i.e. Latin/1) - * - Stream: IBM-1047 (i.e. EBCDIC) - */ -class ACE_Export ACE_ISO8859_IBM1047 : public ACE_Char_Codeset_Translator -{ -public: - /// A do nothing constructor. - ACE_ISO8859_IBM1047 (void); - - /// Virtual destruction - virtual ~ACE_ISO8859_IBM1047 (void); - - // = Documented in $ACE_ROOT/ace/CDR_Stream.h - virtual ACE_CDR::Boolean read_char (ACE_InputCDR &, - ACE_CDR::Char &); - virtual ACE_CDR::Boolean read_string (ACE_InputCDR &, - ACE_CDR::Char *&); - virtual ACE_CDR::Boolean read_char_array (ACE_InputCDR &, - ACE_CDR::Char *, - ACE_CDR::ULong); - virtual ACE_CDR::Boolean write_char (ACE_OutputCDR &, - ACE_CDR::Char); - virtual ACE_CDR::Boolean write_string (ACE_OutputCDR &, - ACE_CDR::ULong, - const ACE_CDR::Char *); - virtual ACE_CDR::Boolean write_char_array (ACE_OutputCDR &, - const ACE_CDR::Char *, - ACE_CDR::ULong); - - /// return the native codeset ID as defined in the OSF code and character - /// set registry, 0x00010001 - virtual ACE_CDR::ULong ncs (); - /// return the translated codeset ID as defined in the OSF code and character - /// set registry, 0x10020417 - virtual ACE_CDR::ULong tcs (); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_EBCDIC */ - -#include /**/ "ace/post.h" - -#endif /* ACE_CODESET_IMB1047_H */ diff --git a/ACE/ace/Codeset_Registry.cpp b/ACE/ace/Codeset_Registry.cpp deleted file mode 100644 index b98a1dd7e89..00000000000 --- a/ACE/ace/Codeset_Registry.cpp +++ /dev/null @@ -1,111 +0,0 @@ -//============================================================================= -/** - * @file Codeset_Registry.cpp - * - * $Id$ - * - * emulated codset regstry functions - * - * - * @author Phil Mesnier - */ -//============================================================================= - -#include "ace/Codeset_Registry.h" -#include "ace/OS_Memory.h" -#include "ace/OS_NS_string.h" - -// $Id$ - -#if !defined (__ACE_INLINE__) -#include "ace/Codeset_Registry.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID (ace, - Codeset_Registry, - "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -int -ACE_Codeset_Registry::locale_to_registry_i (const ACE_CString &locale, - ACE_CDR::ULong &codeset_id, - ACE_CDR::UShort *num_sets, - ACE_CDR::UShort **char_sets) -{ - registry_entry const *element = 0; - for (size_t i = 0; element == 0 && i < num_registry_entries_; i++) - if (ACE_OS::strcmp (registry_db_[i].loc_name_, locale.c_str ()) == 0) - element = ®istry_db_[i]; - if (element == 0) - return 0; - codeset_id = element->codeset_id_; - if (num_sets != 0) - *num_sets = element->num_sets_; - if (char_sets != 0) - { - ACE_NEW_RETURN (*char_sets,ACE_CDR::UShort[element->num_sets_],0); - ACE_OS::memcpy (*char_sets, element->char_sets_, - element->num_sets_ * sizeof (ACE_CDR::UShort)); - } - return 1; -} - -int -ACE_Codeset_Registry::registry_to_locale_i (ACE_CDR::ULong codeset_id, - ACE_CString &locale, - ACE_CDR::UShort *num_sets, - ACE_CDR::UShort **char_sets) -{ - registry_entry const *element = 0; - for (size_t i = 0; element == 0 && i < num_registry_entries_; i++) - if (codeset_id == registry_db_[i].codeset_id_) - element = ®istry_db_[i]; - if (element == 0) - return 0; - locale.set (element->loc_name_); - if (num_sets != 0) - *num_sets = element->num_sets_; - if (char_sets != 0) - { - ACE_NEW_RETURN (*char_sets,ACE_CDR::UShort[element->num_sets_],0); - ACE_OS::memcpy (*char_sets, element->char_sets_, - element->num_sets_ * sizeof (ACE_CDR::UShort)); - } - return 1; -} - -int -ACE_Codeset_Registry::is_compatible_i (ACE_CDR::ULong codeset_id, - ACE_CDR::ULong other) -{ - registry_entry const *lhs = 0; - registry_entry const *rhs = 0; - for (size_t i = 0; (lhs == 0 || rhs == 0) && i < num_registry_entries_; i++) - { - if (codeset_id == registry_db_[i].codeset_id_) - lhs = ®istry_db_[i]; - if (other == registry_db_[i].codeset_id_) - rhs = ®istry_db_[i]; - } - - if (lhs == 0 || rhs == 0) - return 0; - - for (ACE_CDR::UShort l = 0; l < lhs->num_sets_; l++) - for (ACE_CDR::UShort r = 0; r < rhs->num_sets_; r++) - if (rhs->char_sets_[r] == lhs->char_sets_[l]) - return 1; - return 0; -} - -ACE_CDR::Short -ACE_Codeset_Registry::get_max_bytes_i (ACE_CDR::ULong codeset_id) -{ - for (size_t i = 0; i < num_registry_entries_; i++) - if (codeset_id == registry_db_[i].codeset_id_) - return registry_db_[i].max_bytes_; - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Codeset_Registry.h b/ACE/ace/Codeset_Registry.h deleted file mode 100644 index eb8d013d4af..00000000000 --- a/ACE/ace/Codeset_Registry.h +++ /dev/null @@ -1,104 +0,0 @@ -// -*- C++ -*- -//============================================================================= -/** - * @file Codeset_Registry.h - * - * $Id$ - * - * ACE wrapper around access functions for the OSF's DCE codeset registry - * access functions - * - * For environments that intrinsicly support the DCE defined access functions, - * the methods in this class are simply wrappers. On other platforms, emulation - * is provided. The motivation for this class is to support interoperability - * via translators and the CDR streams, primarily in TAO, but this capability - * is not restricted to CORBA. - * - * The emulated functionalty supports Open Group RFC #40, currently RFC 40.2, - * www.opengroup.org/tech/rfc/rfc40.2.html - * - * @author Phil Mesnier - */ -//============================================================================= - -#ifndef ACE_CODESET_REGISTRY_H -#define ACE_CODESET_REGISTRY_H - -#include /**/ "ace/pre.h" -#include "ace/SString.h" -#include "ace/CDR_Base.h" -#include "ace/Codeset_Symbols.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_DCE_CODESET_REGISTRY) -#include /**/ -#endif /* ACE_HAS_DCE_CODESET_REGISTRY */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Export ACE_Codeset_Registry -{ -public: - - /// Based on a locale string, find the registry value and optional codeset - /// collection. This wraps the dce_cs_loc_to_rgy function, or emulates it. - static int locale_to_registry (const ACE_CString &locale, - ACE_CDR::ULong &codeset_id, - ACE_CDR::UShort * = 0, - ACE_CDR::UShort ** = 0); - - /// Based on a registry value, find the locale string and optional codeset - /// collection. This wraps the dce_cs_rgy_to_loc function, or emulates it. - static int registry_to_locale (ACE_CDR::ULong codeset_id, - ACE_CString &locale, - ACE_CDR::UShort * = 0, - ACE_CDR::UShort ** = 0); - - /// Tell if two codesets are compatible. This wraps the - /// rpc_cs_char_set_compat_check function. - static int is_compatible (ACE_CDR::ULong codeset_id, - ACE_CDR::ULong other); - - /// Return the max number of bytes required to represent a single character. - /// This wraps the rpc_rgy_get_max_bytes function. - static ACE_CDR::Short get_max_bytes (ACE_CDR::ULong codeset_id); - - enum {max_charsets_ = 5}; -protected: - typedef struct { - const char * desc_; - const char * loc_name_; - ACE_CDR::ULong codeset_id_; - ACE_CDR::UShort num_sets_; - ACE_CDR::UShort char_sets_[max_charsets_]; - ACE_CDR::UShort max_bytes_; - } registry_entry; - -private: - static size_t const num_registry_entries_; - static registry_entry const registry_db_[]; - - static int locale_to_registry_i (const ACE_CString &locale, - ACE_CDR::ULong &codeset_id, - ACE_CDR::UShort * = 0, - ACE_CDR::UShort ** = 0); - static int registry_to_locale_i (ACE_CDR::ULong codeset_id, - ACE_CString &locale, - ACE_CDR::UShort * = 0, - ACE_CDR::UShort ** = 0); - static int is_compatible_i (ACE_CDR::ULong codeset_id, - ACE_CDR::ULong other); - static ACE_CDR::Short get_max_bytes_i (ACE_CDR::ULong codeset_id); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Codeset_Registry.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_CODESET_REGISTRY_H */ diff --git a/ACE/ace/Codeset_Registry.inl b/ACE/ace/Codeset_Registry.inl deleted file mode 100644 index d24e07cc83b..00000000000 --- a/ACE/ace/Codeset_Registry.inl +++ /dev/null @@ -1,102 +0,0 @@ -// -*- C++ -*- -//============================================================================= -/** - * @file Codeset_Registry.inl - * - * $Id$ - * - * ACE wrapper around access functions for the OSF's DCE codeset registry - * access functions - the inline functions either call the system supplied - * DCE based codeset regsitry function, or calls the emulation - * - * - * @author Phil Mesnier - */ -//============================================================================= - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -int -ACE_Codeset_Registry::locale_to_registry(const ACE_CString &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; - 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 -// collection. This wraps the dce_cs_rgy_to_loc function, or emulates it. -ACE_INLINE -int -ACE_Codeset_Registry::registry_to_locale(ACE_CDR::ULong codeset_id, - ACE_CString &locale, - 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 -// rpc_cs_char_set_compat_check function. -ACE_INLINE -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. -// This wraps the rpc_rgy_get_max_bytes function. -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/Codeset_Registry_db.cpp b/ACE/ace/Codeset_Registry_db.cpp deleted file mode 100644 index 8b1ef176576..00000000000 --- a/ACE/ace/Codeset_Registry_db.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* $Id$ - * Codeset registry DB, generated Fri Feb 28 21:01:30 2003 - * source: code_set_registry1.2g.txt - * - * To populate the registry_db, construct a codeset registry text file based - * on the OSF's Character and Code Set Registry. See DCE RFC 40.1 for details - * on obtaining the full text for the current registry. Once you have composed - * a text file containing all the desired codeset information, build and run - * mkcsregdb. The source is in $ACE_ROOT/apps/mkcsregdb. It will generate a new - * copy of this file, with the registry_db_ array properly initialized. - */ - -#include "ace/Codeset_Registry.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Codeset_Registry::registry_entry const -ACE_Codeset_Registry::registry_db_[] = -{ - {"ISO 8859-1:1987; Latin Alphabet No. 1","ASCII",0x00010001,1,{0x0011},1}, - {"IBM-1047 (CCSID 01047); Latin-1 Open System","EBCDIC",0x10020417,1,{0x0011},1}, - {"ISO/IEC 10646-1:1993; UCS-4, Level 1","UCS-4",0x00010104,1,{0x1000},4}, - {"ISO/IEC 10646-1:1993; UTF-16, UCS Transformation Format 16-bit form","Unicode",0x00010109,1,{0x1000},2}, - {"X/Open UTF-8; UCS Transformation Format 8 (UTF-8)","UTF-8",0x05010001,1,{0x1000},6} -}; - -size_t const ACE_Codeset_Registry::num_registry_entries_ = 5; - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Codeset_Symbols.h b/ACE/ace/Codeset_Symbols.h deleted file mode 100644 index d2d20ce036b..00000000000 --- a/ACE/ace/Codeset_Symbols.h +++ /dev/null @@ -1,220 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Codeset_Symbols.h - * - * $Id$ - * - * Symbolic names for codeset ids. - * - * @author Dale Wilson (wilson_d@ociweb.com) - */ -//============================================================================= -#ifndef CODESET_SYMBOLS_H -#define CODESET_SYMBOLS_H - -// These numbers are assigned by the OpenGroup, a database is -// available at -// -// ftp://ftp.opengroup.org/pub/code_set_registry/ -// -// Alas, the database is in a semi-regular text file -- difficult to use. -// The following C/C++-friendly version of the codeset ids was captured -// from Version 1.2g of the registry. -// -#define ACE_CODESET_ID_ISO_8859_1 0x00010001U -#define ACE_CODESET_ID_ISO_8859_2 0x00010002U -#define ACE_CODESET_ID_ISO_8859_3 0x00010003U -#define ACE_CODESET_ID_ISO_8859_4 0x00010004U -#define ACE_CODESET_ID_ISO_8859_5 0x00010005U -#define ACE_CODESET_ID_ISO_8859_6 0x00010006U -#define ACE_CODESET_ID_ISO_8859_7 0x00010007U -#define ACE_CODESET_ID_ISO_8859_8 0x00010008U -#define ACE_CODESET_ID_ISO_8859_9 0x00010009U -#define ACE_CODESET_ID_ISO_8859_10 0x0001000AU -#define ACE_CODESET_ID_ISO_8859_15 0x0001000FU -#define ACE_CODESET_ID_ISO_646 0x00010020U -#define ACE_CODESET_ID_ISO_UCS_2_LEVEL_1 0x00010100U -#define ACE_CODESET_ID_ISO_UCS_2_LEVEL_2 0x00010101U -#define ACE_CODESET_ID_ISO_UCS_2_LEVEL_3 0x00010102U -#define ACE_CODESET_ID_ISO_UCS_4_LEVEL_1 0x00010104U -#define ACE_CODESET_ID_ISO_UCS_4_LEVEL_2 0x00010105U -#define ACE_CODESET_ID_ISO_UCS_4_LEVEL_3 0x00010106U -#define ACE_CODESET_ID_ISO_UTF_8 0x00010108U -#define ACE_CODESET_ID_ISO_UTF_16 0x00010109U -#define ACE_CODESET_ID_JIS_X0201 0x00030001U -#define ACE_CODESET_ID_JIS_X0208_1978 0x00030004U -#define ACE_CODESET_ID_JIS_X0208_1983 0x00030005U -#define ACE_CODESET_ID_JIS_X0208_1990 0x00030006U -#define ACE_CODESET_ID_JIS_X0212 0x0003000AU -#define ACE_CODESET_ID_JIS_EUCJP 0x00030010U -#define ACE_CODESET_ID_KS_C5601 0x00040001U -#define ACE_CODESET_ID_KS_C5657 0x00040002U -#define ACE_CODESET_ID_KS_EUCKR 0x0004000AU -#define ACE_CODESET_ID_CNS_11643_1986 0x00050001U -#define ACE_CODESET_ID_CNS_11643_1992 0x00050002U -#define ACE_CODESET_ID_CNS_EUCTW_1991 0x0005000AU -#define ACE_CODESET_ID_CNS_EUCTW_1993 0x00050010U -#define ACE_CODESET_ID_TIS_620_25290X000B0001U -#define ACE_CODESET_ID_TTB_CCDC 0x000D0001U -#define ACE_CODESET_ID_OSF_JAPANESE_UJIS 0x05000010U -#define ACE_CODESET_ID_OSF_JAPANESE_SJIS_1 0x05000011U -#define ACE_CODESET_ID_OSF_JAPANESE_SJIS_2 0x05000012U -#define ACE_CODESET_ID_XOPEN_UTF_8 0x05010001U -#define ACE_CODESET_ID_JVC_EUCJP 0x05020001U -#define ACE_CODESET_ID_JVC_SJIS 0x05020002U -#define ACE_CODESET_ID_DEC_KANJI 0x10000001U -#define ACE_CODESET_ID_SUPER_DEC_KANJI 0x10000002U -#define ACE_CODESET_ID_DEC_SHIFT_JIS 0x10000003U -#define ACE_CODESET_ID_HP_ROMAN8 0x10010001U -#define ACE_CODESET_ID_HP_KANA8 0x10010002U -#define ACE_CODESET_ID_HP_ARABIC8 0x10010003U -#define ACE_CODESET_ID_HP_GREEK8 0x10010004U -#define ACE_CODESET_ID_HP_HEBREW8 0x10010005U -#define ACE_CODESET_ID_HP_TURKISH8 0x10010006U -#define ACE_CODESET_ID_HP15CN 0x10010007U -#define ACE_CODESET_ID_HP_BIG5 0x10010008U -#define ACE_CODESET_ID_HP_JAPANESE15__SJIS_ 0x10010009U -#define ACE_CODESET_ID_HP_SJISHI 0x1001000AU -#define ACE_CODESET_ID_HP_SJISPC 0x1001000BU -#define ACE_CODESET_ID_HP_UJIS 0x1001000CU -#define ACE_CODESET_ID_IBM_037 0x10020025U -#define ACE_CODESET_ID_IBM_273 0x10020111U -#define ACE_CODESET_ID_IBM_277 0x10020115U -#define ACE_CODESET_ID_IBM_278 0x10020116U -#define ACE_CODESET_ID_IBM_280 0x10020118U -#define ACE_CODESET_ID_IBM_282 0x1002011AU -#define ACE_CODESET_ID_IBM_284 0x1002011CU -#define ACE_CODESET_ID_IBM_285 0x1002011DU -#define ACE_CODESET_ID_IBM_290 0x10020122U -#define ACE_CODESET_ID_IBM_297 0x10020129U -#define ACE_CODESET_ID_IBM_300 0x1002012CU -#define ACE_CODESET_ID_IBM_301 0x1002012DU -#define ACE_CODESET_ID_IBM_420 0x100201A4U -#define ACE_CODESET_ID_IBM_424 0x100201A8U -#define ACE_CODESET_ID_IBM_437 0x100201B5U -#define ACE_CODESET_ID_IBM_500 0x100201F4U -#define ACE_CODESET_ID_IBM_833 0x10020341U -#define ACE_CODESET_ID_IBM_834 0x10020342U -#define ACE_CODESET_ID_IBM_835 0x10020343U -#define ACE_CODESET_ID_IBM_836 0x10020344U -#define ACE_CODESET_ID_IBM_837 0x10020345U -#define ACE_CODESET_ID_IBM_838 0x10020346U -#define ACE_CODESET_ID_IBM_839 0x10020347U -#define ACE_CODESET_ID_IBM_850 0x10020352U -#define ACE_CODESET_ID_IBM_852 0x10020354U -#define ACE_CODESET_ID_IBM_855 0x10020357U -#define ACE_CODESET_ID_IBM_856 0x10020358U -#define ACE_CODESET_ID_IBM_857 0x10020359U -#define ACE_CODESET_ID_IBM_861 0x1002035DU -#define ACE_CODESET_ID_IBM_862 0x1002035EU -#define ACE_CODESET_ID_IBM_863 0x1002035FU -#define ACE_CODESET_ID_IBM_864 0x10020360U -#define ACE_CODESET_ID_IBM_866 0x10020362U -#define ACE_CODESET_ID_IBM_868 0x10020364U -#define ACE_CODESET_ID_IBM_869 0x10020365U -#define ACE_CODESET_ID_IBM_870 0x10020366U -#define ACE_CODESET_ID_IBM_871 0x10020367U -#define ACE_CODESET_ID_IBM_874 0x1002036AU -#define ACE_CODESET_ID_IBM_875 0x1002036BU -#define ACE_CODESET_ID_IBM_880 0x10020370U -#define ACE_CODESET_ID_IBM_891 0x1002037BU -#define ACE_CODESET_ID_IBM_896 0x10020380U -#define ACE_CODESET_ID_IBM_897 0x10020381U -#define ACE_CODESET_ID_IBM_903 0x10020387U -#define ACE_CODESET_ID_IBM_904 0x10020388U -#define ACE_CODESET_ID_IBM_918 0x10020396U -#define ACE_CODESET_ID_IBM_921 0x10020399U -#define ACE_CODESET_ID_IBM_922 0x1002039AU -#define ACE_CODESET_ID_IBM_926 0x1002039EU -#define ACE_CODESET_ID_IBM_927 0x1002039FU -#define ACE_CODESET_ID_IBM_928 0x100203A0U -#define ACE_CODESET_ID_IBM_929 0x100203A1U -#define ACE_CODESET_ID_IBM_930 0x100203A2U -#define ACE_CODESET_ID_IBM_932 0x100203A4U -#define ACE_CODESET_ID_IBM_933 0x100203A5U -#define ACE_CODESET_ID_IBM_934 0x100203A6U -#define ACE_CODESET_ID_IBM_935 0x100203A7U -#define ACE_CODESET_ID_IBM_936 0x100203A8U -#define ACE_CODESET_ID_IBM_937 0x100203A9U -#define ACE_CODESET_ID_IBM_938 0x100203AAU -#define ACE_CODESET_ID_IBM_939 0x100203ABU -#define ACE_CODESET_ID_IBM_941 0x100203ADU -#define ACE_CODESET_ID_IBM_942 0x100203AEU -#define ACE_CODESET_ID_IBM_943 0x100203AFU -#define ACE_CODESET_ID_IBM_946 0x100203B2U -#define ACE_CODESET_ID_IBM_947 0x100203B3U -#define ACE_CODESET_ID_IBM_948 0x100203B4U -#define ACE_CODESET_ID_IBM_949 0x100203B5U -#define ACE_CODESET_ID_IBM_950 0x100203B6U -#define ACE_CODESET_ID_IBM_951 0x100203B7U -#define ACE_CODESET_ID_IBM_955 0x100203BBU -#define ACE_CODESET_ID_IBM_964 0x100203C4U -#define ACE_CODESET_ID_IBM_970 0x100203CAU -#define ACE_CODESET_ID_IBM_1006 0x100203EEU -#define ACE_CODESET_ID_IBM_1025 0x10020401U -#define ACE_CODESET_ID_IBM_1026 0x10020402U -#define ACE_CODESET_ID_IBM_1027 0x10020403U -#define ACE_CODESET_ID_IBM_1040 0x10020410U -#define ACE_CODESET_ID_IBM_1041 0x10020411U -#define ACE_CODESET_ID_IBM_1043 0x10020413U -#define ACE_CODESET_ID_IBM_1046 0x10020416U -#define ACE_CODESET_ID_IBM_1047 0x10020417U -#define ACE_CODESET_ID_IBM_1088 0x10020440U -#define ACE_CODESET_ID_IBM_1097 0x10020449U -#define ACE_CODESET_ID_IBM_1098 0x1002044AU -#define ACE_CODESET_ID_IBM_1112 0x10020458U -#define ACE_CODESET_ID_IBM_1114 0x1002045AU -#define ACE_CODESET_ID_IBM_1115 0x1002045BU -#define ACE_CODESET_ID_IBM_1122 0x10020462U -#define ACE_CODESET_ID_IBM_1250 0x100204E2U -#define ACE_CODESET_ID_IBM_1251 0x100204E3U -#define ACE_CODESET_ID_IBM_1252 0x100204E4U -#define ACE_CODESET_ID_IBM_1253 0x100204E5U -#define ACE_CODESET_ID_IBM_1254 0x100204E6U -#define ACE_CODESET_ID_IBM_1255 0x100204E7U -#define ACE_CODESET_ID_IBM_1256 0x100204E8U -#define ACE_CODESET_ID_IBM_1257 0x100204E9U -#define ACE_CODESET_ID_IBM_1380 0x10020564U -#define ACE_CODESET_ID_IBM_1381 0x10020565U -#define ACE_CODESET_ID_IBM_1383 0x10020567U -#define ACE_CODESET_ID_IBM_4396 0x1002112CU -#define ACE_CODESET_ID_IBM_4946 0x10021352U -#define ACE_CODESET_ID_IBM_4948 0x10021354U -#define ACE_CODESET_ID_IBM_4951 0x10021357U -#define ACE_CODESET_ID_IBM_4952 0x10021358U -#define ACE_CODESET_ID_IBM_4953 0x10021359U -#define ACE_CODESET_ID_IBM_4960 0x10021360U -#define ACE_CODESET_ID_IBM_4964 0x10021364U -#define ACE_CODESET_ID_IBM_4965 0x10021365U -#define ACE_CODESET_ID_IBM_5026 0x100213A2U -#define ACE_CODESET_ID_IBM_5031 0x100213A7U -#define ACE_CODESET_ID_IBM_5035 0x100213ABU -#define ACE_CODESET_ID_IBM_5048 0x100213B8U -#define ACE_CODESET_ID_IBM_5049 0x100213B9U -#define ACE_CODESET_ID_IBM_5067 0x100213CBU -#define ACE_CODESET_ID_IBM_8612 0x100221A4U -#define ACE_CODESET_ID_IBM_9025 0x10022341U -#define ACE_CODESET_ID_IBM_9026 0x10022342U -#define ACE_CODESET_ID_IBM_9030 0x10022346U -#define ACE_CODESET_ID_IBM_9056 0x10022360U -#define ACE_CODESET_ID_IBM_9066 0x1002236AU -#define ACE_CODESET_ID_IBM_9125 0x100223A5U -#define ACE_CODESET_ID_IBM_25426 0x10026352U -#define ACE_CODESET_ID_IBM_25432 0x10026358U -#define ACE_CODESET_ID_IBM_1042 0x10026412U -#define ACE_CODESET_ID_IBM_28709 0x10027025U -#define ACE_CODESET_ID_IBM_33624 0x10028358U -#define ACE_CODESET_ID_IBM_33722 0x100283BAU -#define ACE_CODESET_ID_HTCSJIS 0x10030001U -#define ACE_CODESET_ID_HTCUJIS 0x10030002U -#define ACE_CODESET_ID_FUJITSU_U90 0x10040001U -#define ACE_CODESET_ID_FUJITSU_S90 0x10040002U -#define ACE_CODESET_ID_FUJITSU_R90 0x10040003U -#define ACE_CODESET_ID_EBCDIC_ASCII_AND_JEF 0x10040004U -#define ACE_CODESET_ID_EBCDIC_KATAKANA_AND_JEF 0x10040005U -#define ACE_CODESET_ID_EBCDIC_JAPANESE_ENGLISH_AND_JEF 0x10040006U - -#define ACE_CODESET_ID_TAO_BACKWARD_COMPATIBLE 0xf54414F0U -#endif // CODESET_SYMBOLS_H diff --git a/ACE/ace/Condition_Recursive_Thread_Mutex.cpp b/ACE/ace/Condition_Recursive_Thread_Mutex.cpp deleted file mode 100644 index af80f4bfbfd..00000000000 --- a/ACE/ace/Condition_Recursive_Thread_Mutex.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// -*- C++ -*- - -/** - * @file Condition_Recursive_Thread_Mutex.cpp - * - * $Id$ - * - * Originally in Synch.cpp - * - * @author Douglas C. Schmidt - */ - -#include "ace/Condition_Recursive_Thread_Mutex.h" - -#if defined (ACE_HAS_THREADS) - -#if defined (ACE_HAS_DUMP) -# include "ace/Log_Msg.h" -#endif /* ACE_HAS_DUMP */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -int -ACE_Condition::remove (void) -{ - return ACE_OS::cond_destroy (&this->cond_); -} - -void -ACE_Condition::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Condition::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - // No dump method for ACE_cond_t even in emulated mode. - // cond_.dump (); - this->mutex_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Condition::~ACE_Condition (void) -{ - this->remove (); -} - -ACE_Condition::ACE_Condition (ACE_Recursive_Thread_Mutex &m) - : mutex_ (m) -{ - ACE_OS::cond_init (&this->cond_); -} - -int -ACE_Condition::wait (const ACE_Time_Value *abstime) -{ - return this->wait (this->mutex_, abstime); -} - -int -ACE_Condition::wait (ACE_Recursive_Thread_Mutex &mutex, - const ACE_Time_Value *abstime) -{ - ACE_recursive_mutex_state mutex_state_holder; - ACE_recursive_thread_mutex_t &recursive_mutex = mutex.mutex (); - - if (ACE_OS::recursive_mutex_cond_unlock (&recursive_mutex, - mutex_state_holder) == -1) - return -1; - - // We wait on the condition, specifying the nesting mutex. For platforms - // with ACE_HAS_RECURSIVE_MUTEXES, this is the recursive mutex itself, - // and is the same as recursive_mutex, above. The caller should have been - // holding the lock on entry to this method, and it is still held. - // For other platforms, this is the nesting mutex that guards the - // ACE_recursive_mutex_t internals, and recursive_mutex_cond_unlock() - // 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 - ? ACE_OS::cond_wait (&this->cond_, - &mutex.get_nesting_mutex ()) - : ACE_OS::cond_timedwait (&this->cond_, - &mutex.get_nesting_mutex (), - const_cast (abstime)); - // We are holding the mutex, whether the wait succeeded or failed. - // Stash errno (in case it failed) and then we need to reset the - // recursive mutex state to what it was on entry to this method. - // Resetting it may require a wait for another thread to release - // the ACE_recursive_thread_mutex_t if this is a platform without - // ACE_HAS_RECURSIVE_MUTEXES, and recursive_mutex_cond_relock() takes - // care of that. - { - ACE_Errno_Guard error (errno); - ACE_OS::recursive_mutex_cond_relock (&recursive_mutex, - mutex_state_holder); - } - - return result; -} - -int -ACE_Condition::signal (void) -{ - return ACE_OS::cond_signal (&this->cond_); -} - -int -ACE_Condition::broadcast (void) -{ - return ACE_OS::cond_broadcast (&this->cond_); -} - -ACE_Recursive_Thread_Mutex & -ACE_Condition::mutex (void) -{ - return this->mutex_; -} - -ACE_Condition_Recursive_Thread_Mutex::ACE_Condition_Recursive_Thread_Mutex ( - ACE_Recursive_Thread_Mutex &m) : - ACE_Condition (m) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_THREADS */ diff --git a/ACE/ace/Condition_Recursive_Thread_Mutex.h b/ACE/ace/Condition_Recursive_Thread_Mutex.h deleted file mode 100644 index cfcd46a9551..00000000000 --- a/ACE/ace/Condition_Recursive_Thread_Mutex.h +++ /dev/null @@ -1,118 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Condition_Recursive_Thread_Mutex.h - * - * $Id$ - * - * Moved from Synch.h. - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_CONDITION_RECURSIVE_THREAD_MUTEX_H -#define ACE_CONDITION_RECURSIVE_THREAD_MUTEX_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (ACE_HAS_THREADS) -# include "ace/Null_Condition.h" -#else /* ACE_HAS_THREADS */ -#include "ace/Recursive_Thread_Mutex.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template class ACE_Condition; - -/** - * @class ACE_Condition - * - * @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. - */ -template<> -class ACE_Export ACE_Condition -{ -public: - /// Initialize the condition variable with a recursive mutex. - ACE_Condition (ACE_Recursive_Thread_Mutex &m); - - /// Implicitly destroy the condition variable. - ~ACE_Condition (void); - - /** - * Explicitly destroy the condition variable. Note that only one - * thread should call this method since it doesn't protect against - * race conditions. - */ - int remove (void); - - /** - * Block on condition, or until absolute time-of-day has passed. If - * abstime == 0 use "blocking" semantics. Else, if - * != 0 and the call times out before the condition is signaled - * returns -1 and sets errno to ETIME. - */ - int wait (const ACE_Time_Value *abstime = 0); - - /** - * Block on condition or until absolute time-of-day has passed. If - * abstime == 0 use "blocking" wait() semantics on the recursive @a mutex - * passed as a parameter (this is useful if you need to store the - * in shared memory). Else, if != 0 and the - * call times out before the condition is signaled returns -1 - * and sets errno to ETIME. - */ - int wait (ACE_Recursive_Thread_Mutex &mutex, - const ACE_Time_Value *abstime = 0); - - /// Signal one waiting thread. - int signal (void); - - /// Signal *all* waiting threads. - int broadcast (void); - - /// Returns a reference to the underlying mutex; - ACE_Recursive_Thread_Mutex &mutex (void); - - /// Dump the state of an object. - void dump (void) const; - -private: - - // = Prevent assignment and copying. - void operator= (const ACE_Condition &); - ACE_Condition (const ACE_Condition &); - -private: - - /// A normal (i.e., non-recursive) condition variable. - ACE_cond_t cond_; - - /// Reference to the recursive mutex. - ACE_Recursive_Thread_Mutex &mutex_; - -}; - -class ACE_Export ACE_Condition_Recursive_Thread_Mutex - : public ACE_Condition -{ -public: - /// Initialize the condition variable with a recursive mutex. - ACE_Condition_Recursive_Thread_Mutex (ACE_Recursive_Thread_Mutex &m); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* !ACE_HAS_THREADS */ - -#include /**/ "ace/post.h" -#endif /* ACE_CONDITION_RECURSIVE_THREAD_MUTEX_H */ diff --git a/ACE/ace/Condition_T.cpp b/ACE/ace/Condition_T.cpp deleted file mode 100644 index fa0dab4e80a..00000000000 --- a/ACE/ace/Condition_T.cpp +++ /dev/null @@ -1,123 +0,0 @@ -// $Id$ - -#ifndef ACE_CONDITION_T_CPP -#define ACE_CONDITION_T_CPP - -#include "ace/Condition_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_THREADS) - -#include "ace/Log_Msg.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Condition_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Condition) - -template void -ACE_Condition::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Condition::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Thread_Condition::ACE_Thread_Condition (MUTEX &m, - const ACE_TCHAR *name, - void *arg) - : ACE_Condition (m, USYNC_THREAD, name, arg) -{ -// ACE_TRACE ("ACE_Thread_Condition::ACE_Thread_Condition"); -} - -template void -ACE_Thread_Condition::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Thread_Condition::dump"); - - ACE_Condition::dump (); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Condition::ACE_Condition (MUTEX &m, - int type, - const ACE_TCHAR *name, - void *arg) - : - mutex_ (m) -{ - // ACE_TRACE ("ACE_Condition::ACE_Condition"); - - if (ACE_OS::cond_init (&this->cond_, - (short) type, - name, - arg) != 0) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Condition::ACE_Condition"))); -} - -template -ACE_Condition::~ACE_Condition (void) -{ - // ACE_TRACE ("ACE_Condition::~ACE_Condition"); - - if (this->remove () == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Condition::~ACE_Condition"))); -} - -template int -ACE_Condition::wait (void) -{ - // ACE_TRACE ("ACE_Condition::wait"); - return ACE_OS::cond_wait (&this->cond_, - &this->mutex_.lock_); -} - -template int -ACE_Condition::wait (MUTEX &mutex, - const ACE_Time_Value *abstime) -{ -// ACE_TRACE ("ACE_Condition::wait"); - if (abstime == 0) - return this->wait (); - else - { - return ACE_OS::cond_timedwait (&this->cond_, - &mutex.lock_, - (ACE_Time_Value *) abstime); - } -} - -// Peform an "alertable" timed wait. If the argument ABSTIME == 0 -// then we do a regular cond_wait(), else we do a timed wait for up to -// ABSTIME using the Solaris cond_timedwait() function. - -template int -ACE_Condition::wait (const ACE_Time_Value *abstime) -{ -// ACE_TRACE ("ACE_Condition::wait"); - return this->wait (this->mutex_, abstime); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_THREADS */ - -#endif /* ACE_CONDITION_T_CPP */ diff --git a/ACE/ace/Condition_T.h b/ACE/ace/Condition_T.h deleted file mode 100644 index 535642a77e8..00000000000 --- a/ACE/ace/Condition_T.h +++ /dev/null @@ -1,167 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Condition_T.h - * - * $Id$ - * - * Moved from Synch.h. - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_CONDITION_T_H -#define ACE_CONDITION_T_H - -#include /**/ "ace/pre.h" - -#include "ace/OS_NS_Thread.h" -#include "ace/Lock.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_THREADS) /* ACE platform supports some form of threading. */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Time_Value; - -/** - * @class ACE_Condition - * - * @brief ACE_Condition variable wrapper, which allows threads to block - * 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, - * 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 - * releases the mutex that is waiting for the condition to - * change. If another thread changes the condition, it may wake - * up waiting threads by signaling the associated condition - * variable. The waiting threads, upon awakening, reacquire the - * mutex and re-evaluate the condition. - * Note, you can only parameterize with - * @a ACE_Thread_Mutex, @a ACE_Recursive_Thread_Mutex, or @a ACE_Null_Mutex. - */ -template -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); - - /// Implicitly destroy the condition variable. - ~ACE_Condition (void); - - // = Lock accessors. - /** - * Block on condition, or until absolute time-of-day has passed. If - * abstime == 0 use "blocking" semantics. Else, if - * != 0 and the call times out before the condition is signaled - * returns -1 and sets errno to ETIME. - */ - int wait (const ACE_Time_Value *abstime); - - /// Block on condition. - int wait (void); - - /** - * Block on condition or until absolute time-of-day has passed. If - * abstime == 0 use "blocking" wait() semantics on the - * passed as a parameter (this is useful if you need to store the - * in shared memory). Else, if != 0 and the - * call times out before the condition is signaled returns -1 - * and sets errno to ETIME. - */ - int wait (MUTEX &mutex, const ACE_Time_Value *abstime = 0); - - /// Signal one waiting thread. - int signal (void); - - /// Signal *all* waiting threads. - int broadcast (void); - - // = Utility methods. - /// Explicitly destroy the condition variable. - int remove (void); - - /// Returns a reference to the underlying mutex_; - MUTEX &mutex (void); - - /// Dump the state of an object. - void dump (void) const; - - // ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -protected: - /// Condition variable. - ACE_cond_t cond_; - - /// Reference to mutex lock. - MUTEX &mutex_; - -private: - // = Prevent assignment and initialization. - ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Condition &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Condition (const ACE_Condition &)) -}; - -/** - * @class ACE_Thread_Condition - * - * @brief ACE_Condition variable wrapper that works within processes. - * - * 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, - * 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 - * releases the mutex that is waiting for the condition to - * change. If another thread changes the condition, it may wake - * up waiting threads by signaling the associated condition - * variable. The waiting threads, upon awakening, reacquire the - * mutex and re-evaluate the condition. - */ -template -class ACE_Thread_Condition : public ACE_Condition -{ -public: - // = Initialization method. - ACE_Thread_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. -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Condition_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Condition_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Condition_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif /* ACE_HAS_THREADS */ - -#include /**/ "ace/post.h" -#endif /* ACE_CONDITION_T_H */ diff --git a/ACE/ace/Condition_T.inl b/ACE/ace/Condition_T.inl deleted file mode 100644 index fd7bdb7abdc..00000000000 --- a/ACE/ace/Condition_T.inl +++ /dev/null @@ -1,51 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE int -ACE_Condition::remove (void) -{ - // ACE_TRACE ("ACE_Condition::remove"); - - // cond_destroy() is called in a loop if the condition variable is - // BUSY. This avoids a condition where a condition is signaled and - // because of some timing problem, the thread that is to be signaled - // has called the cond_wait routine after the signal call. Since - // the condition signal is not queued in any way, deadlock occurs. - - int result = 0; - - while ((result = ACE_OS::cond_destroy (&this->cond_)) == -1 - && errno == EBUSY) - { - ACE_OS::cond_broadcast (&this->cond_); - ACE_OS::thr_yield (); - } - - return result; -} - -template ACE_INLINE MUTEX & -ACE_Condition::mutex (void) -{ - // ACE_TRACE ("ACE_Condition::mutex"); - return this->mutex_; -} - -template ACE_INLINE int -ACE_Condition::signal (void) -{ -// ACE_TRACE ("ACE_Condition::signal"); - return ACE_OS::cond_signal (&this->cond_); -} - -template ACE_INLINE int -ACE_Condition::broadcast (void) -{ -// ACE_TRACE ("ACE_Condition::broadcast"); - return ACE_OS::cond_broadcast (&this->cond_); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Condition_Thread_Mutex.cpp b/ACE/ace/Condition_Thread_Mutex.cpp deleted file mode 100644 index 1535b4c87f3..00000000000 --- a/ACE/ace/Condition_Thread_Mutex.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Condition_Thread_Mutex.cpp - * - * $Id$ - * - * Originally in Synch.cpp - * - * @author Douglas C. Schmidt - */ - -#include "ace/Condition_Thread_Mutex.h" - -#if defined (ACE_HAS_THREADS) - -#if !defined (__ACE_INLINE__) -#include "ace/Condition_Thread_Mutex.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Log_Msg.h" - -ACE_RCSID(ace, Condition_Thread_Mutex, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Condition_Thread_Mutex) - -void -ACE_Condition_Thread_Mutex::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Condition_Thread_Mutex::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); -#if defined (ACE_WIN32) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("waiters = %d\n"), - this->cond_.waiters ())); -#endif /* ACE_WIN32 */ - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex (ACE_Thread_Mutex &m, - const ACE_TCHAR *name, - void *arg) - : mutex_ (m), - removed_ (false) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex"); - if (ACE_OS::cond_init (&this->cond_, - (short) USYNC_THREAD, - name, - arg) != 0) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex"))); -} - -ACE_Condition_Thread_Mutex:: -ACE_Condition_Thread_Mutex (ACE_Thread_Mutex &m, - ACE_Condition_Attributes &attributes, - const ACE_TCHAR *name, - void *arg) - : mutex_ (m), - removed_ (false) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex"); - if (ACE_OS::cond_init (&this->cond_, attributes.attributes_, - name, arg) != 0) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex"))); -} - -ACE_Condition_Thread_Mutex::~ACE_Condition_Thread_Mutex (void) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::~ACE_Condition_Thread_Mutex"); - this->remove (); -} - -// Peform an "alertable" timed wait. If the argument == 0 -// then we do a regular , else we do a timed wait for up to -// using the function. - -int -ACE_Condition_Thread_Mutex::wait (void) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::wait"); - return ACE_OS::cond_wait (&this->cond_, &this->mutex_.lock_); -} - -int -ACE_Condition_Thread_Mutex::wait (ACE_Thread_Mutex &mutex, - const ACE_Time_Value *abstime) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::wait"); - return ACE_OS::cond_timedwait (&this->cond_, - &mutex.lock_, - const_cast (abstime)); -} - -int -ACE_Condition_Thread_Mutex::wait (const ACE_Time_Value *abstime) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::wait"); - return this->wait (this->mutex_, abstime); -} - -int -ACE_Condition_Thread_Mutex::signal (void) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::signal"); - return ACE_OS::cond_signal (&this->cond_); -} - -int -ACE_Condition_Thread_Mutex::broadcast (void) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::broadcast"); - return ACE_OS::cond_broadcast (&this->cond_); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_THREADS */ diff --git a/ACE/ace/Condition_Thread_Mutex.h b/ACE/ace/Condition_Thread_Mutex.h deleted file mode 100644 index 2806f03691e..00000000000 --- a/ACE/ace/Condition_Thread_Mutex.h +++ /dev/null @@ -1,190 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Condition_Thread_Mutex.h - * - * $Id$ - * - * Moved from Synch.h. - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_CONDITION_THREAD_MUTEX_H -#define ACE_CONDITION_THREAD_MUTEX_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (ACE_HAS_THREADS) -# include "ace/Null_Condition.h" -#else /* ACE_HAS_THREADS */ -// ACE platform supports some form of threading. - -#include "ace/Thread_Mutex.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Time_Value; - -class ACE_Export ACE_Condition_Attributes -{ -public: - /// Constructor - ACE_Condition_Attributes (int type = ACE_DEFAULT_SYNCH_TYPE); - - /// Destructor - ~ACE_Condition_Attributes (void); - -private: - friend class ACE_Condition_Thread_Mutex; - - /// The attributes - ACE_condattr_t attributes_; - -private: - // = Prevent assignment and initialization. - void operator= (const ACE_Condition_Attributes &); - ACE_Condition_Attributes (const ACE_Condition_Attributes &); -}; - -/** - * @class ACE_Condition_Thread_Mutex - * - * @brief ACE_Condition variable wrapper written using ACE_Mutexes This - * allows threads to block 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, - * 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 - * releases the mutex that is waiting for the condition to - * change. If another thread changes the condition, it may wake - * up waiting threads by signaling the associated condition - * variable. The waiting threads, upon awakening, reacquire the - * mutex and re-evaluate the condition. - * - * This should be an instantiation of ACE_Condition but problems - * with compilers precludes this... - */ -class ACE_Export ACE_Condition_Thread_Mutex -{ -public: - /// Initialize the condition variable. - ACE_Condition_Thread_Mutex (ACE_Thread_Mutex &m, - const ACE_TCHAR *name = 0, - void *arg = 0); - - /// Initialize the condition variable. - ACE_Condition_Thread_Mutex (ACE_Thread_Mutex &m, - ACE_Condition_Attributes &attributes, - const ACE_TCHAR *name = 0, - void *arg = 0); - - /// Implicitly destroy the condition variable. - ~ACE_Condition_Thread_Mutex (void); - - /** - * Explicitly destroy the condition variable. Note that only one - * thread should call this method since it doesn't protect against - * race conditions. - */ - int remove (void); - - /** - * Block on condition, or until absolute time-of-day has passed. If - * abstime == 0 use "blocking" semantics. Else, if @a abstime - * != 0 and the call times out before the condition is signaled - * returns -1 and sets errno to ETIME. - */ - int wait (const ACE_Time_Value *abstime); - - /// Block on condition. - int wait (void); - - /** - * Block on condition or until absolute time-of-day has passed. If - * abstime == 0 use "blocking" wait() semantics on the - * passed as a parameter (this is useful if you need to store the - * in shared memory). Else, if @a abstime != 0 and the - * call times out before the condition is signaled returns -1 - * and sets errno to ETIME. - */ - int wait (ACE_Thread_Mutex &mutex, const ACE_Time_Value *abstime = 0); - - /// Signal one waiting thread. - int signal (void); - - /// Signal *all* waiting threads. - int broadcast (void); - - /// Returns a reference to the underlying mutex; - ACE_Thread_Mutex &mutex (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Condition variable. - ACE_cond_t cond_; - - /// Reference to mutex lock. - ACE_Thread_Mutex &mutex_; - - /// Keeps track of whether has been called yet to avoid - /// multiple 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 - /// on the same object, which is a bad idea anyway... - bool removed_; - -private: - // = Prevent assignment and initialization. - void operator= (const ACE_Condition_Thread_Mutex &); - 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__) -#include "ace/Condition_Thread_Mutex.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* !ACE_HAS_THREADS */ - -#include /**/ "ace/post.h" -#endif /* ACE_CONDITION_THREAD_MUTEX_H */ diff --git a/ACE/ace/Condition_Thread_Mutex.inl b/ACE/ace/Condition_Thread_Mutex.inl deleted file mode 100644 index 12cc18a1bad..00000000000 --- a/ACE/ace/Condition_Thread_Mutex.inl +++ /dev/null @@ -1,74 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Condition_Attributes::ACE_Condition_Attributes (int type) -{ - (void) ACE_OS::condattr_init (this->attributes_, type); -} - -ACE_INLINE -ACE_Condition_Attributes::~ACE_Condition_Attributes (void) -{ - ACE_OS::condattr_destroy (this->attributes_); -} - -ACE_INLINE int -ACE_Condition_Thread_Mutex::remove (void) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::remove"); - - // is called in a loop if the condition variable is - // BUSY. This avoids a condition where a condition is signaled and - // because of some timing problem, the thread that is to be signaled - // has called the cond_wait routine after the signal call. Since - // the condition signal is not queued in any way, deadlock occurs. - - int result = 0; - - if (!this->removed_) - { - this->removed_ = true; - - while ((result = ACE_OS::cond_destroy (&this->cond_)) == -1 - && errno == EBUSY) - { - ACE_OS::cond_broadcast (&this->cond_); - ACE_OS::thr_yield (); - } - } - return result; -} - -ACE_INLINE ACE_Thread_Mutex & -ACE_Condition_Thread_Mutex::mutex (void) -{ -// ACE_TRACE ("ACE_Condition_Thread_Mutex::mutex"); - return this->mutex_; -} - -#if 0 -template void -ACE_Process_Condition::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Process_Condition::dump"); - - ACE_Condition::dump (); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Process_Condition::ACE_Process_Condition (MUTEX &m, - const ACE_TCHAR *name, - void *arg) - : ACE_Condition (m, USYNC_PROCESS, name, arg) -{ -// ACE_TRACE ("ACE_Process_Condition::ACE_Process_Condition"); -} -#endif /* 0 */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Configuration.cpp b/ACE/ace/Configuration.cpp deleted file mode 100644 index b54308ade7d..00000000000 --- a/ACE/ace/Configuration.cpp +++ /dev/null @@ -1,2148 +0,0 @@ -// $Id$ -#include "ace/Configuration.h" -#include "ace/Auto_Ptr.h" -#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" - -#if !defined (ACE_LACKS_ACCESS) -# include "ace/OS_NS_unistd.h" -#endif /* ACE_LACKS_ACCESS */ - -#if !defined (__ACE_INLINE__) -#include "ace/Configuration.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Section_Key_Internal::ACE_Section_Key_Internal (void) - : ref_count_ (0) -{ -} - -ACE_Section_Key_Internal::~ACE_Section_Key_Internal (void) -{ -} - -int -ACE_Section_Key_Internal::add_ref (void) -{ - ++ref_count_; - return 0; -} - -int -ACE_Section_Key_Internal::dec_ref (void) -{ - if (!--ref_count_) - delete this; - return 0; -} - -ACE_Configuration_Section_Key::ACE_Configuration_Section_Key (void) - : key_ (0) -{ -} - -ACE_Configuration_Section_Key::~ACE_Configuration_Section_Key (void) -{ - if (key_) - key_->dec_ref (); -} - -ACE_Configuration_Section_Key::ACE_Configuration_Section_Key (ACE_Section_Key_Internal* key) - : key_ (key) -{ - if (key_) - key_->add_ref (); -} - -ACE_Configuration_Section_Key::ACE_Configuration_Section_Key (const ACE_Configuration_Section_Key& rhs) - : key_ (rhs.key_) -{ - if (key_) - key_->add_ref (); -} - -ACE_Configuration_Section_Key& -ACE_Configuration_Section_Key::operator= (const ACE_Configuration_Section_Key& rhs) -{ - if (this != &rhs) - { - if (key_) - key_->dec_ref (); - - key_ = rhs.key_; - - if (key_) - key_->add_ref (); - } - return *this; -} - -////////////////////////////////////////////////////////////////////////////// - -ACE_TCHAR ACE_Configuration::NULL_String_ = '\0'; - -ACE_Configuration::ACE_Configuration (void) - : root_ () -{ -} - -ACE_Configuration::~ACE_Configuration (void) -{ -} - -ACE_Section_Key_Internal* -ACE_Configuration::get_internal_key (const ACE_Configuration_Section_Key& key) -{ - return key.key_; -} - -int -ACE_Configuration::expand_path (const ACE_Configuration_Section_Key& key, - const ACE_TString& path_in, - ACE_Configuration_Section_Key& key_out, - int create) -{ - // Make a copy of key - ACE_Configuration_Section_Key current_section = key; - ACE_Auto_Basic_Array_Ptr pData (path_in.rep ()); - ACE_Tokenizer parser (pData.get ()); - parser.delimiter_replace ('\\', '\0'); - parser.delimiter_replace ('/', '\0'); - - for (ACE_TCHAR *temp = parser.next (); - temp != 0; - temp = parser.next ()) - { - // Open the section - if (open_section (current_section, - temp, - create, - key_out)) - return -1; - - current_section = key_out; - } - - return 0; - -} - -// 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) -{ - // Invalid character set - const ACE_TCHAR* reject = - allow_path ? ACE_TEXT ("][") : ACE_TEXT ("\\]["); - - // Position of the first invalid character or terminating null. - size_t const pos = ACE_OS::strcspn (name, reject); - - // Check if it is an invalid character. - if (name[pos] != ACE_TEXT ('\0')) - { - errno = EINVAL; - return -1; - } - - // The first character can never be a path separator. - if (name[0] == ACE_TEXT ('\\')) - { - errno = EINVAL; - return -1; - } - - // Validate length. - if (pos == 0 || pos > 255) - { - errno = ENAMETOOLONG; - return -1; - } - - return 0; -} - -int -ACE_Configuration::validate_value_name (const ACE_TCHAR* name) -{ - if (name == 0 || *name == this->NULL_String_) - return 0; - - return this->validate_name (name); -} - -const ACE_Configuration_Section_Key& -ACE_Configuration::root_section (void) const -{ - return root_; -} - -/** - * Determine if the contents of this object is the same as the - * contents of the object on the right hand side. - * Returns 1 (True) if they are equal and 0 (False) if they are not equal - */ -bool -ACE_Configuration::operator== (const ACE_Configuration& rhs) const -{ - bool rc = true; - int sectionIndex = 0; - ACE_TString sectionName; - ACE_Configuration *nonconst_this = const_cast (this); - ACE_Configuration &nonconst_rhs = const_cast (rhs); - - const ACE_Configuration_Section_Key& rhsRoot = rhs.root_section (); - ACE_Configuration_Section_Key rhsSection; - ACE_Configuration_Section_Key thisSection; - - // loop through each section in this object - while ((rc) && (nonconst_this->enumerate_sections (this->root_, - sectionIndex, - sectionName) == 0)) - { - // find that section in the rhs object - if (nonconst_rhs.open_section (rhsRoot, - sectionName.c_str (), - 0, - rhsSection) != 0) - { - // If the rhs object does not contain the section then we are - // not equal. - rc = false; - } - else if (nonconst_this->open_section (this->root_, - sectionName.c_str (), - 0, - thisSection) != 0) - { - // if there is some error opening the section in this object - rc = false; - } - else - { - // Well the sections match - int valueIndex = 0; - ACE_TString valueName; - VALUETYPE valueType; - VALUETYPE rhsType; - - // Enumerate each value in this section - while ((rc) && nonconst_this->enumerate_values (thisSection, - valueIndex, - valueName, - valueType) == 0) - { - // look for the same value in the rhs section - if (nonconst_rhs.find_value (rhsSection, - valueName.c_str (), - rhsType) != 0) - { - // We're not equal if the same value cannot - // be found in the rhs object. - rc = false; - } - else if (valueType != rhsType) - { - // we're not equal if the types do not match. - rc = false; - } - else - { - // finally compare values. - if (valueType == STRING) - { - ACE_TString thisString, rhsString; - if (nonconst_this->get_string_value (thisSection, - valueName.c_str (), - thisString) != 0) - { - // we're not equal if we cannot get this string - rc = false; - } - else if (nonconst_rhs.get_string_value ( - rhsSection, - valueName.c_str (), - rhsString) != 0) - { - // we're not equal if we cannot get rhs string - rc = false; - } - rc = (thisString == rhsString); - } - else if (valueType == INTEGER) - { - u_int thisInt = 0; - u_int rhsInt = 0; - if (nonconst_this->get_integer_value ( - thisSection, - valueName.c_str (), - thisInt) != 0) - { - // we're not equal if we cannot get this int - rc = false; - } - else if (nonconst_rhs.get_integer_value ( - rhsSection, - valueName.c_str (), - rhsInt) != 0) - { - // we're not equal if we cannot get rhs int - rc = false; - } - rc = (thisInt == rhsInt); - } - else if (valueType == BINARY) - { - void* thisData = 0; - void* rhsData = 0; - size_t thisLength = 0; - size_t rhsLength = 0; - if (nonconst_this->get_binary_value (thisSection, - valueName.c_str (), - thisData, - thisLength) != 0) - { - // we're not equal if we cannot get this data - rc = false; - } - else if (nonconst_rhs.get_binary_value ( - rhsSection, - valueName.c_str (), - rhsData, - rhsLength) != 0) - { - // we're not equal if we cannot get this data - rc = false; - } - - rc = (thisLength == rhsLength); - // are the length's the same? - - if (rc) - { - unsigned char* thisCharData = - (unsigned char*)thisData; - unsigned char* rhsCharData = (unsigned char*)rhsData; - // yes, then check each element - for (size_t count = 0; - (rc) && (count < thisLength); - count++) - { - rc = (* (thisCharData + count) == * (rhsCharData + count)); - } - - delete [] thisCharData; - delete [] rhsCharData; - }// end if the length's match - } - // We should never have valueTypes of INVALID, therefore - // we're not comparing them. How would we since we have - // no get operation for invalid types. - // So, if we have them, we guess they are equal. - - }// end else if values match. - - ++valueIndex; - - }// end value while loop - - // look in the rhs for values not in this - valueIndex = 0; - while ((rc) && (nonconst_rhs.enumerate_values (rhsSection, - valueIndex, - valueName, - rhsType) == 0)) - { - // look for the same value in this section - if (nonconst_this->find_value (thisSection, - valueName.c_str (), - valueType) != 0) - { - // We're not equal if the same value cannot - // be found in the rhs object. - rc = false; - } - ++valueIndex; - }// end while for rhs values not in this. - - }// end else if sections match. - - ++sectionIndex; - - }// end section while loop - - // Finally, make sure that there are no sections in rhs that do not - // exist in this - sectionIndex = 0; - while ((rc) - && (nonconst_rhs.enumerate_sections (rhsRoot, - sectionIndex, - sectionName) == 0)) - { - // find the section in this - if (nonconst_this->open_section (this->root_, - sectionName.c_str (), - 0, - thisSection) != 0) - { - // if there is some error opening the section in this object - rc = false; - } - else if (nonconst_rhs.open_section (rhsRoot, - sectionName.c_str (), - 0, - rhsSection) != 0) - { - // If the rhs object does not contain the section then we - // are not equal. - rc = false; - } - ++sectionIndex; - } - return rc; -} - -bool -ACE_Configuration::operator!= (const ACE_Configuration& rhs) const -{ - return !(*this == rhs); -} - -////////////////////////////////////////////////////////////////////////////// - -#if defined (ACE_WIN32) && !defined (ACE_LACKS_WIN32_REGISTRY) - -static const int ACE_DEFAULT_BUFSIZE = 256; - -static const ACE_TCHAR *temp_name (const ACE_TCHAR *name) -{ - if (name && *name == ACE_Configuration::NULL_String_) - return 0; - return name; -} - -ACE_Section_Key_Win32::ACE_Section_Key_Win32 (HKEY hKey) - : hKey_ (hKey) -{ -} - -ACE_Section_Key_Win32::~ACE_Section_Key_Win32 (void) -{ - ::RegCloseKey (hKey_); -} - -////////////////////////////////////////////////////////////////////////////// - -bool -ACE_Configuration_Win32Registry::operator== (const ACE_Configuration_Win32Registry &rhs) const -{ - ACE_UNUSED_ARG (rhs); - return true; -} - -bool -ACE_Configuration_Win32Registry::operator!= (const ACE_Configuration_Win32Registry &rhs) const -{ - ACE_UNUSED_ARG (rhs); - return true; -} - -ACE_Configuration_Win32Registry::ACE_Configuration_Win32Registry (HKEY hKey) -{ - ACE_Section_Key_Win32 *temp = 0; - - ACE_NEW (temp, ACE_Section_Key_Win32 (hKey)); - - root_ = ACE_Configuration_Section_Key (temp); -} - - -ACE_Configuration_Win32Registry::~ACE_Configuration_Win32Registry (void) -{ -} - -int -ACE_Configuration_Win32Registry::open_section (const ACE_Configuration_Section_Key& base, - const ACE_TCHAR* sub_section, - int create, - ACE_Configuration_Section_Key& result) -{ - if (validate_name (sub_section, 1)) - return -1; - - HKEY base_key; - if (load_key (base, base_key)) - return -1; - - int errnum; - HKEY result_key; - if ((errnum = ACE_TEXT_RegOpenKeyEx (base_key, - sub_section, - 0, - KEY_ALL_ACCESS, - &result_key)) != ERROR_SUCCESS) - { - if (!create) - { - errno = errnum; - return -1; - } - - if ((errnum = ACE_TEXT_RegCreateKeyEx (base_key, - sub_section, - 0, - 0, - REG_OPTION_NON_VOLATILE, - KEY_ALL_ACCESS, - 0, - &result_key, -#if defined (__MINGW32__) - (PDWORD) 0 -#else - 0 -#endif /* __MINGW32__ */ - )) != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - } - - ACE_Section_Key_Win32 *temp; - - ACE_NEW_RETURN (temp, ACE_Section_Key_Win32 (result_key), -1); - result = ACE_Configuration_Section_Key (temp); - return 0; -} - -int -ACE_Configuration_Win32Registry::remove_section (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* sub_section, - int recursive) -{ - if (validate_name (sub_section)) - return -1; - - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - if (recursive) - { - ACE_Configuration_Section_Key section; - if (open_section (key, sub_section, 0, section)) - return -1; - - HKEY sub_key; - if (load_key (section, sub_key)) - return -1; - - ACE_TCHAR name_buffer[ACE_DEFAULT_BUFSIZE]; - DWORD buffer_size = ACE_DEFAULT_BUFSIZE; - // Note we don't increment the index because the - // enumeration becomes invalid if we change the - // subkey, which we do when we delete it. By leaving - // it 0, we always delete the top entry - while (ACE_TEXT_RegEnumKeyEx (sub_key, - 0, - name_buffer, - &buffer_size, - 0, - 0, - 0, - 0) == ERROR_SUCCESS) - { - remove_section (section, name_buffer, 1); - buffer_size = ACE_DEFAULT_BUFSIZE; - } - } - - int errnum; - errnum = ACE_TEXT_RegDeleteKey (base_key, sub_section); - if (errnum != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - - return 0; -} - -int -ACE_Configuration_Win32Registry::enumerate_values (const ACE_Configuration_Section_Key& key, - int index, - ACE_TString& name, - VALUETYPE& type) -{ - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - ACE_TCHAR name_buffer[ACE_DEFAULT_BUFSIZE]; - DWORD buffer_size = ACE_DEFAULT_BUFSIZE; - DWORD value_type; - - int rc = ACE_TEXT_RegEnumValue (base_key, - index, - name_buffer, - &buffer_size, - 0, - &value_type, - 0, - 0); - if (rc == ERROR_NO_MORE_ITEMS) - return 1; - else if (rc != ERROR_SUCCESS) - { - errno = rc; - return -1; - } - - name = name_buffer; - - switch (value_type) - { - case REG_BINARY: - type = BINARY; - break; - case REG_SZ: - type = STRING; - break; - case REG_DWORD: - type = INTEGER; - break; - default: - type = INVALID; - } - - return 0; -} - -int -ACE_Configuration_Win32Registry::enumerate_sections (const ACE_Configuration_Section_Key& key, - int index, - ACE_TString& name) -{ - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - ACE_TCHAR name_buffer[ACE_DEFAULT_BUFSIZE]; - DWORD buffer_size = ACE_DEFAULT_BUFSIZE; - int rc = ACE_TEXT_RegEnumKeyEx (base_key, - index, - name_buffer, - &buffer_size, - 0, - 0, - 0, - 0); - if (rc == ERROR_NO_MORE_ITEMS) - return 1; - else if (rc != ERROR_MORE_DATA && rc != ERROR_SUCCESS) - { - errno = rc; - return -1; - } - - name = name_buffer; - - return 0; -} - -int -ACE_Configuration_Win32Registry::set_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const ACE_TString& value) -{ - const ACE_TCHAR *t_name = temp_name (name); - if (validate_value_name (t_name)) - return -1; - - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - int errnum; - DWORD len = static_cast (value.length () + 1); - len *= sizeof (ACE_TCHAR); - if ((errnum = ACE_TEXT_RegSetValueEx (base_key, - t_name, - 0, - REG_SZ, - (BYTE *) value.fast_rep (), - len)) - != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - - return 0; -} - -int -ACE_Configuration_Win32Registry::set_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int value) -{ - const ACE_TCHAR *t_name = temp_name (name); - if (validate_value_name (t_name)) - return -1; - - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - int errnum; - if ((errnum = ACE_TEXT_RegSetValueEx (base_key, - t_name, - 0, - REG_DWORD, - (BYTE *) &value, - sizeof (value))) != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - - return 0; -} - -int -ACE_Configuration_Win32Registry::set_binary_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const void* data, - size_t length) -{ - const ACE_TCHAR *t_name = temp_name (name); - if (validate_value_name (t_name)) - return -1; - - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - int errnum; - if ((errnum = ACE_TEXT_RegSetValueEx (base_key, - t_name, - 0, - REG_BINARY, - (BYTE *) data, - static_cast (length))) - != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - - return 0; -} - -int -ACE_Configuration_Win32Registry::get_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - ACE_TString& value) -{ - const ACE_TCHAR *t_name = temp_name (name); - if (validate_value_name (t_name)) - return -1; - - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - // Get the size of the binary data from windows - int errnum; - DWORD buffer_length = 0; - DWORD type; - if ((errnum = ACE_TEXT_RegQueryValueEx (base_key, - t_name, - 0, - &type, - (BYTE *) 0, - &buffer_length)) != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - - if (type != REG_SZ) - { - errno = ERROR_INVALID_DATATYPE; - return -1; - } - - ACE_TCHAR *temp = 0; - ACE_NEW_RETURN (temp, - ACE_TCHAR[buffer_length], - -1); - - ACE_Auto_Basic_Array_Ptr buffer (temp); - - if ((errnum = ACE_TEXT_RegQueryValueEx (base_key, - t_name, - 0, - &type, - (BYTE *) buffer.get (), - &buffer_length)) != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - - value = buffer.get (); - return 0; -} - -int -ACE_Configuration_Win32Registry::get_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int& value) -{ - const ACE_TCHAR *t_name = temp_name (name); - if (validate_value_name (t_name)) - return -1; - - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - int errnum; - DWORD length = sizeof (value); - DWORD type; - if ((errnum = ACE_TEXT_RegQueryValueEx (base_key, - t_name, - 0, - &type, - (BYTE *) &value, - &length)) != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - - if (type != REG_DWORD) - { - errno = ERROR_INVALID_DATATYPE; - return -1; - } - - return 0; -} - -int -ACE_Configuration_Win32Registry::get_binary_value ( - const ACE_Configuration_Section_Key &key, - const ACE_TCHAR *name, - void *&data, - size_t &length) -{ - const ACE_TCHAR *t_name = temp_name (name); - if (validate_value_name (t_name)) - return -1; - - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - // Get the size of the binary data from windows - int errnum; - DWORD buffer_length = 0; - DWORD type; - if ((errnum = ACE_TEXT_RegQueryValueEx (base_key, - t_name, - 0, - &type, - (BYTE *) 0, - &buffer_length)) != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - - if (type != REG_BINARY) - { - errno = ERROR_INVALID_DATATYPE; - return -1; - } - - length = buffer_length; - - BYTE * the_data = 0; - ACE_NEW_RETURN (the_data, BYTE[length], -1); - ACE_Auto_Basic_Array_Ptr safe_data (the_data); - - if ((errnum = ACE_TEXT_RegQueryValueEx (base_key, - t_name, - 0, - &type, - the_data, - &buffer_length)) != ERROR_SUCCESS) - { - data = 0; - errno = errnum; - return -1; - } - - data = safe_data.release (); - - return 0; -} - -int -ACE_Configuration_Win32Registry::find_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - VALUETYPE& type_out) -{ - const ACE_TCHAR *t_name = temp_name (name); - if (validate_value_name (t_name)) - return -1; - - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - DWORD buffer_length=0; - DWORD type; - int result=ACE_TEXT_RegQueryValueEx (base_key, - t_name, - 0, - &type, - 0, - &buffer_length); - if (result != ERROR_SUCCESS) - { - errno = result; - return -1; - } - - switch (type) - { - case REG_SZ: - type_out = STRING; - break; - case REG_DWORD: - type_out = INTEGER; - break; - case REG_BINARY: - type_out = BINARY; - break; - default: - return -1; // unknown type - } - - return 0; -} - -int -ACE_Configuration_Win32Registry::remove_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name) -{ - const ACE_TCHAR *t_name = temp_name (name); - if (validate_value_name (t_name)) - return -1; - - HKEY base_key; - if (load_key (key, base_key)) - return -1; - - int errnum; - if ((errnum = ACE_TEXT_RegDeleteValue (base_key, t_name)) != ERROR_SUCCESS) - { - errno = errnum; - return -1; - } - - return 0; -} - - -int -ACE_Configuration_Win32Registry::load_key (const ACE_Configuration_Section_Key& key, - HKEY& hKey) -{ - ACE_Section_Key_Win32* pKey = dynamic_cast (get_internal_key (key)); - if (!pKey) - return -1; - - hKey = pKey->hKey_; - return 0; -} - -HKEY -ACE_Configuration_Win32Registry::resolve_key (HKEY hKey, - const ACE_TCHAR* path, - int create) -{ - HKEY result = 0; - // Make a copy of hKey - int errnum; -#if defined (ACE_HAS_WINCE) - if ((errnum = RegOpenKeyEx (hKey, 0, 0, 0, &result)) != ERROR_SUCCESS) -#else - if ((errnum = RegOpenKey (hKey, 0, &result)) != ERROR_SUCCESS) -#endif // ACE_HAS_WINCE - { - errno = errnum; - return 0; - } - - // recurse through the path - ACE_TCHAR *temp_path = 0; - ACE_NEW_RETURN (temp_path, - ACE_TCHAR[ACE_OS::strlen (path) + 1], - 0); - ACE_Auto_Basic_Array_Ptr pData (temp_path); - ACE_OS::strcpy (pData.get (), path); - ACE_Tokenizer parser (pData.get ()); - parser.delimiter_replace ('\\', '\0'); - parser.delimiter_replace ('/', '\0'); - - for (ACE_TCHAR *temp = parser.next (); - temp != 0; - temp = parser.next ()) - { - // Open the key - HKEY subkey; - -#if defined (ACE_HAS_WINCE) - if ((errnum = ACE_TEXT_RegOpenKeyEx (result, - temp, - 0, - 0, - &subkey)) != ERROR_SUCCESS) -#else - if ((errnum = ACE_TEXT_RegOpenKey (result, - temp, - &subkey)) != ERROR_SUCCESS) -#endif // ACE_HAS_WINCE - { - // try creating it - if (!create || (errnum = ACE_TEXT_RegCreateKeyEx (result, - temp, - 0, - 0, - 0, - KEY_ALL_ACCESS, - 0, - &subkey, -#if defined (__MINGW32__) - (PDWORD) 0 -#else - 0 -#endif /* __MINGW32__ */ - )) !=ERROR_SUCCESS) - { - errno = errnum; - // error - ::RegCloseKey (result); - return 0; - } - } - // release our open key handle - ::RegCloseKey (result); - result = subkey; - } - - return result; -} - -#endif /* ACE_WIN32 && !ACE_LACKS_WIN32_REGISTRY */ - -/////////////////////////////////////////////////////////////// - -ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (void) - : type_ (ACE_Configuration::INVALID), - length_ (0) -{ - this->data_.ptr_ = 0; -} - -ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (ACE_TCHAR* string) - : type_ (ACE_Configuration::STRING), - length_ (0) -{ - this->data_.ptr_ = string; -} - -ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (u_int integer) - : type_ (ACE_Configuration::INTEGER), - length_ (0) -{ - this->data_.int_ = integer; -} - -ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (void* data, size_t length) - : type_ (ACE_Configuration::BINARY), - length_ (length) -{ - this->data_.ptr_ = data; -} - -ACE_Configuration_Value_IntId::ACE_Configuration_Value_IntId (const ACE_Configuration_Value_IntId& rhs) - : type_ (rhs.type_), - data_ (rhs.data_), - length_ (rhs.length_) -{ -} - -ACE_Configuration_Value_IntId::~ACE_Configuration_Value_IntId (void) -{ -} - -ACE_Configuration_Value_IntId& ACE_Configuration_Value_IntId::operator= (const ACE_Configuration_Value_IntId& rhs) -{ - if (this != &rhs) - { - type_ = rhs.type_; - data_ = rhs.data_; - length_ = rhs.length_; - } - return *this; -} - -void -ACE_Configuration_Value_IntId::free (ACE_Allocator *alloc) -{ - if (this->type_ == ACE_Configuration::STRING - || this->type_ == ACE_Configuration::BINARY) - alloc->free (data_.ptr_); - // Do nothing in other cases... -} - -ACE_Configuration_ExtId::ACE_Configuration_ExtId (void) - : name_ (0) -{ -} - -ACE_Configuration_ExtId::ACE_Configuration_ExtId (const ACE_TCHAR* name) - : name_ (name) -{ -} - -ACE_Configuration_ExtId::ACE_Configuration_ExtId (const ACE_Configuration_ExtId& rhs) - : name_ (rhs.name_) -{ -} - -ACE_Configuration_ExtId::~ACE_Configuration_ExtId (void) -{ -} - -ACE_Configuration_ExtId& ACE_Configuration_ExtId::operator= (const ACE_Configuration_ExtId& rhs) -{ - if (this != &rhs) - name_ = rhs.name_; - - return *this; -} - -bool -ACE_Configuration_ExtId::operator== (const ACE_Configuration_ExtId& rhs) const -{ - return (ACE_OS::strcasecmp (name_, rhs.name_) == 0); -} - -bool -ACE_Configuration_ExtId::operator!= (const ACE_Configuration_ExtId& rhs) const -{ - return !this->operator== (rhs); -} - -u_long -ACE_Configuration_ExtId::hash (void) const -{ - ACE_TString temp (name_, 0, false); - return temp.hash (); -} - -void -ACE_Configuration_ExtId::free (ACE_Allocator *alloc) -{ - alloc->free ((void *) (name_)); -} - -/////////////////////////////////////////////////////////////////////// - -ACE_Configuration_Section_IntId::ACE_Configuration_Section_IntId (void) - : value_hash_map_ (0), - section_hash_map_ (0) -{ -} - -ACE_Configuration_Section_IntId::ACE_Configuration_Section_IntId (VALUE_MAP* value_hash_map, SUBSECTION_MAP* section_hash_map) - : value_hash_map_ (value_hash_map), - section_hash_map_ (section_hash_map) -{ -} - -ACE_Configuration_Section_IntId::ACE_Configuration_Section_IntId (const ACE_Configuration_Section_IntId& rhs) - : value_hash_map_ (rhs.value_hash_map_), - section_hash_map_ (rhs.section_hash_map_) -{ - -} - -ACE_Configuration_Section_IntId::~ACE_Configuration_Section_IntId () -{ -} - -ACE_Configuration_Section_IntId& -ACE_Configuration_Section_IntId::operator= (const ACE_Configuration_Section_IntId& rhs) -{ - if (this != &rhs) - { - value_hash_map_ = rhs.value_hash_map_; - section_hash_map_ = rhs.section_hash_map_; - } - return *this; -} - -void -ACE_Configuration_Section_IntId::free (ACE_Allocator *alloc) -{ - alloc->free ((void *) (value_hash_map_)); - alloc->free ((void *) (section_hash_map_)); -} - -ACE_Configuration_Section_Key_Heap::ACE_Configuration_Section_Key_Heap (const ACE_TCHAR* path) - : path_ (0), - value_iter_ (0), - section_iter_ (0) -{ - path_ = ACE_OS::strdup (path); -} - -ACE_Configuration_Section_Key_Heap::~ACE_Configuration_Section_Key_Heap () -{ - delete value_iter_; - delete section_iter_; - ACE_OS::free (path_); -} - -////////////////////////////////////////////////////////////////////////////// - -ACE_Configuration_Heap::ACE_Configuration_Heap (void) - : allocator_ (0), - index_ (0), - default_map_size_ (0) -{ - ACE_Configuration_Section_Key_Heap *temp = 0; - - ACE_NEW (temp, ACE_Configuration_Section_Key_Heap (ACE_TEXT (""))); - root_ = ACE_Configuration_Section_Key (temp); -} - -ACE_Configuration_Heap::~ACE_Configuration_Heap (void) -{ - if (allocator_) - allocator_->sync (); - - delete allocator_; -} - -int -ACE_Configuration_Heap::open (size_t default_map_size) -{ - 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 - // for the file. - ACE_NEW_RETURN (this->allocator_, - HEAP_ALLOCATOR (), - -1); - return create_index (); -} - - -int -ACE_Configuration_Heap::open (const ACE_TCHAR* file_name, - void* base_address, - size_t default_map_size) -{ - default_map_size_ = default_map_size; - - // Make sure that the file name is of the legal length. - if (ACE_OS::strlen (file_name) >= MAXNAMELEN + MAXPATHLEN) - { - errno = ENAMETOOLONG; - return -1; - } - - ACE_MMAP_Memory_Pool::OPTIONS options (base_address); - - // Create the allocator with the appropriate options. The name used - // for the lock is the same as one used for the file. - ACE_NEW_RETURN (this->allocator_, - PERSISTENT_ALLOCATOR (file_name, - file_name, - &options), - -1); - -#if !defined (ACE_LACKS_ACCESS) - // Now check if the backing store has been created successfully. - if (ACE_OS::access (file_name, F_OK) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("create_index\n")), - -1); -#endif /* ACE_LACKS_ACCESS */ - - return create_index (); -} - -int -ACE_Configuration_Heap::create_index (void) -{ - void *section_index = 0; - - // This is the easy case since if we find hash table in the - // memory-mapped file we know it's already initialized. - if (this->allocator_->find (ACE_CONFIG_SECTION_INDEX, section_index) == 0) - this->index_ = (SECTION_MAP *) section_index; - - // Create a new (because we've just created a new - // memory-mapped file). - else - { - size_t index_size = sizeof (SECTION_MAP); - section_index = this->allocator_->malloc (index_size); - - if (section_index == 0 - || create_index_helper (section_index) == -1 - || this->allocator_->bind (ACE_CONFIG_SECTION_INDEX, - section_index) == -1) - { - // Attempt to clean up. - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("create_index failed\n"))); - this->allocator_->remove (); - return -1; - } - // Add the root section - return new_section (ACE_TEXT (""), root_); - } - return 0; -} - -int -ACE_Configuration_Heap::create_index_helper (void *buffer) -{ - ACE_ASSERT (this->allocator_); - this->index_ = new (buffer) SECTION_MAP (this->allocator_); - return 0; -} - -int -ACE_Configuration_Heap::load_key (const ACE_Configuration_Section_Key& key, - ACE_TString& name) -{ - ACE_ASSERT (this->allocator_); - ACE_Configuration_Section_Key_Heap* pKey = - dynamic_cast (get_internal_key (key)); - - if (!pKey) - { - return -1; - } - - ACE_TString temp (pKey->path_, 0, false); - name.assign_nocopy (temp); - return 0; -} - - -int -ACE_Configuration_Heap::add_section (const ACE_Configuration_Section_Key& base, - const ACE_TCHAR* sub_section, - ACE_Configuration_Section_Key& result) -{ - ACE_ASSERT (this->allocator_); - ACE_TString section; - if (load_key (base, section)) - return -1; - - // Find the base section - ACE_Configuration_ExtId ExtId (section.fast_rep ()); - ACE_Configuration_Section_IntId IntId; - if (index_->find (ExtId, IntId, allocator_)) - return -1; - - // See if this section already exists - ACE_Configuration_ExtId SubSectionExtId (sub_section); - int ignored = 0; - - if (!IntId.section_hash_map_->find (SubSectionExtId, ignored, allocator_)) - { - // already exists! - errno = EEXIST; - return -1; - } - - // Create the new section name - // only prepend a separater if were not at the root - if (section.length ()) - section += ACE_TEXT ("\\"); - - section += sub_section; - - // Add it to the base section - ACE_TCHAR* pers_name = (ACE_TCHAR *) allocator_->malloc ((ACE_OS::strlen (sub_section) + 1) * sizeof (ACE_TCHAR)); - ACE_OS::strcpy (pers_name, sub_section); - ACE_Configuration_ExtId SSExtId (pers_name); - if (IntId.section_hash_map_->bind (SSExtId, ignored, allocator_)) - { - allocator_->free (pers_name); - return -1; - } - return (new_section (section, result)); -} - -int -ACE_Configuration_Heap::new_section (const ACE_TString& section, - ACE_Configuration_Section_Key& result) -{ - ACE_ASSERT (this->allocator_); - // Create a new section and add it to the global list - - // Allocate memory for items to be stored in the table. - size_t section_len = section.length () + 1; - ACE_TCHAR *ptr = (ACE_TCHAR*) this->allocator_->malloc (section_len * sizeof (ACE_TCHAR)); - - int return_value = -1; - - if (ptr == 0) - return -1; - else - { - // Populate memory with data. - ACE_OS::strcpy (ptr, section.fast_rep ()); - - void *value_hash_map = 0; - size_t map_size = sizeof (VALUE_MAP); - value_hash_map = this->allocator_->malloc (map_size); - - // If allocation failed ... - if (value_hash_map == 0) - return -1; - - // Initialize allocated hash map through placement new. - if (value_open_helper (default_map_size_, value_hash_map ) == -1) - { - this->allocator_->free (value_hash_map ); - return -1; - } - - // create the section map - void* section_hash_map = 0; - map_size = sizeof (SUBSECTION_MAP); - section_hash_map = this->allocator_->malloc (map_size); - - // If allocation failed - if (section_hash_map == 0) - return -1; - - // initialize allocated hash map through placement new - if (section_open_helper (default_map_size_, section_hash_map) == -1) - { - this->allocator_->free (value_hash_map ); - this->allocator_->free (section_hash_map); - return -1; - } - - ACE_Configuration_ExtId name (ptr); - ACE_Configuration_Section_IntId entry ((VALUE_MAP*) value_hash_map, - (SUBSECTION_MAP*) section_hash_map); - - // Do a normal bind. This will fail if there's already an - // entry with the same name. - return_value = this->index_->bind (name, entry, this->allocator_); - - if (return_value == 1 /* Entry already existed so bind failed. */ - || return_value == -1 /* Unable to bind for other reasons. */) - { - // Free our dynamically allocated memory. - this->allocator_->free (static_cast (ptr)); - return return_value; - } - - // If bind () succeed, it will automatically sync - // up the map manager entry. However, we must sync up our - // name/value memory. - this->allocator_->sync (ptr, section_len); - } - - // set the result - ACE_Configuration_Section_Key_Heap *temp; - ACE_NEW_RETURN (temp, - ACE_Configuration_Section_Key_Heap (ptr), - -1); - result = ACE_Configuration_Section_Key (temp); - return return_value; -} - -int -ACE_Configuration_Heap::value_open_helper (size_t hash_table_size, - void *buffer) -{ - ACE_ASSERT (this->allocator_); - new (buffer) VALUE_MAP (hash_table_size, this->allocator_); - return 0; -} - -int -ACE_Configuration_Heap::section_open_helper (size_t hash_table_size, - void *buffer) -{ - ACE_ASSERT (this->allocator_); - new (buffer) SUBSECTION_MAP (hash_table_size, this->allocator_); - return 0; -} - -int -ACE_Configuration_Heap::open_section (const ACE_Configuration_Section_Key& base, - const ACE_TCHAR* sub_section, - int create, - ACE_Configuration_Section_Key& result) -{ - ACE_ASSERT (this->allocator_); - if (validate_name (sub_section, 1)) // 1 == allow_path - return -1; - - result = base; - - for (const ACE_TCHAR* separator; - (separator = ACE_OS::strchr (sub_section, ACE_TEXT ('\\'))) != 0; - ) - { - ACE_TString simple_section (sub_section, separator - sub_section); - int ret_val = - open_simple_section (result, simple_section.c_str (), create, result); - if (ret_val) - return ret_val; - sub_section = separator + 1; - } - - return open_simple_section (result, sub_section, create, result); -} - -int -ACE_Configuration_Heap::open_simple_section (const ACE_Configuration_Section_Key& base, - const ACE_TCHAR* sub_section, - int create, - ACE_Configuration_Section_Key& result) -{ - ACE_TString section (0, 0, false); - - if (load_key (base, section)) - { - return -1; - } - - // Only add the \\ if were not at the root - if (section.length ()) - { - section += ACE_TEXT ("\\"); - } - - section += sub_section; - - // resolve the section - ACE_Configuration_ExtId ExtId (section.fast_rep ()); - ACE_Configuration_Section_IntId IntId; - - if (index_->find (ExtId, IntId, allocator_)) - { - if (!create) - { - errno = ENOENT; - return -1; - } - - return add_section (base, sub_section, result); - } - - ACE_Configuration_Section_Key_Heap *temp; - ACE_NEW_RETURN (temp, - ACE_Configuration_Section_Key_Heap (section.fast_rep ()), - -1); - result = ACE_Configuration_Section_Key (temp); - return 0; -} - -int -ACE_Configuration_Heap::remove_section (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* sub_section, - int recursive) -{ - ACE_ASSERT (this->allocator_); - if (validate_name (sub_section)) - return -1; - - ACE_TString section; - if (load_key (key, section)) - return -1; - - // Find this key - ACE_Configuration_ExtId ParentExtId (section.fast_rep ()); - ACE_Configuration_Section_IntId ParentIntId; - if (index_->find (ParentExtId, ParentIntId, allocator_)) - return -1;// no parent key - - // Find this subkey - if (section.length ()) - section += ACE_TEXT ("\\"); - - section += sub_section; - ACE_Configuration_ExtId SectionExtId (section.fast_rep ()); - SECTION_HASH::ENTRY* section_entry; - SECTION_HASH* hashmap = index_; - if (hashmap->find (SectionExtId, section_entry)) - return -1; - - if (recursive) - { - ACE_Configuration_Section_Key section; - if (open_section (key, sub_section, 0, section)) - return -1; - - int index = 0; - ACE_TString name; - while (!enumerate_sections (section, index, name)) - { - if (remove_section (section, name.fast_rep (), 1)) - return -1; - - ++index; - } - } - - // Now make sure we dont have any subkeys - if (section_entry->int_id_.section_hash_map_->current_size ()) - { - errno = ENOTEMPTY; - return -1; - } - - // Now remove subkey from parent key - ACE_Configuration_ExtId SubSExtId (sub_section); - SUBSECTION_HASH::ENTRY* subsection_entry; - if (((SUBSECTION_HASH*)ParentIntId.section_hash_map_)-> - find (SubSExtId, subsection_entry)) - return -1; - - if (ParentIntId.section_hash_map_->unbind (SubSExtId, allocator_)) - return -1; - - subsection_entry->ext_id_.free (allocator_); - - // Remember the pointers so we can free them after we unbind - ACE_Configuration_ExtId ExtIdToFree (section_entry->ext_id_); - ACE_Configuration_Section_IntId IntIdToFree (section_entry->int_id_); - - // iterate over all values and free memory - VALUE_HASH* value_hash_map = section_entry->int_id_.value_hash_map_; - VALUE_HASH::ITERATOR value_iter = value_hash_map->begin (); - while (!value_iter.done ()) - { - VALUE_HASH::ENTRY* value_entry = 0; - if (!value_iter.next (value_entry)) - return 1; - - value_entry->ext_id_.free (allocator_); - value_entry->int_id_.free (allocator_); - - value_iter.advance (); - } - - // remove it - if (index_->unbind (SectionExtId, allocator_)) - return -1; - - value_hash_map->close (); - section_entry->int_id_.section_hash_map_->close (allocator_); - - // Free the memory - ExtIdToFree.free (allocator_); - IntIdToFree.free (allocator_); - - return 0; -} - -int -ACE_Configuration_Heap::enumerate_values (const ACE_Configuration_Section_Key& key, - int index, - ACE_TString& name, - VALUETYPE& type) -{ - ACE_ASSERT (this->allocator_); - ACE_Configuration_Section_Key_Heap* pKey = - dynamic_cast (get_internal_key (key)); - if (!pKey) - return -1; - - name = pKey->path_; - - // resolve the section - ACE_Configuration_ExtId ExtId (pKey->path_); - ACE_Configuration_Section_IntId IntId; - if (index_->find (ExtId, IntId, allocator_)) - return -1; - - // Handle iterator resets - if (index == 0) - { - ACE_Hash_Map_Manager_Ex, - ACE_Equal_To, - ACE_Null_Mutex>* hash_map = IntId.value_hash_map_; - delete pKey->value_iter_; - - ACE_NEW_RETURN (pKey->value_iter_, - VALUE_HASH::ITERATOR (hash_map->begin ()), - -1); - } - - // Get the next entry - ACE_Hash_Map_Entry* entry = 0; - - if (!pKey->value_iter_->next (entry)) - return 1; - - // Return the value of the iterator and advance it - name = entry->ext_id_.name_; - type = entry->int_id_.type_; - pKey->value_iter_->advance (); - - return 0; -} - -int -ACE_Configuration_Heap::enumerate_sections (const ACE_Configuration_Section_Key& key, - int index, - ACE_TString& name) -{ - ACE_ASSERT (this->allocator_); - // cast to a heap section key - ACE_Configuration_Section_Key_Heap* pKey = - dynamic_cast (get_internal_key (key)); - if (!pKey) - return -1; // not a heap key! - - // resolve the section - ACE_Configuration_ExtId ExtId (pKey->path_); - ACE_Configuration_Section_IntId IntId; - if (index_->find (ExtId, IntId, allocator_)) - return -1; // unknown section - - // Handle iterator resets - if (index == 0) - { - if (pKey->section_iter_) - delete pKey->section_iter_; - - ACE_NEW_RETURN (pKey->section_iter_, - SUBSECTION_HASH::ITERATOR (IntId.section_hash_map_->begin ()), - -1); - } - - // Get the next entry - ACE_Hash_Map_Entry* entry = 0; - if (!pKey->section_iter_->next (entry)) - return 1; - - // Return the value of the iterator and advance it - pKey->section_iter_->advance (); - name = entry->ext_id_.name_; - - return 0; -} - -int -ACE_Configuration_Heap::set_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const ACE_TString& value) -{ - ACE_ASSERT (this->allocator_); - const ACE_TCHAR *t_name = name ? name : &this->NULL_String_; - if (validate_value_name (t_name)) - return -1; - - ACE_TString section; - if (load_key (key, section)) - return -1; - - ACE_Configuration_ExtId section_ext (section.fast_rep ()); - ACE_Configuration_Section_IntId section_int; - if (index_->find (section_ext, section_int, allocator_)) - return -1; - - // Get the entry for this item (if it exists) - VALUE_HASH::ENTRY* entry; - ACE_Configuration_ExtId item_name (t_name); - if (section_int.value_hash_map_->VALUE_HASH::find (item_name, entry) == 0) - { - // found item, replace it - // Free the old value - entry->int_id_.free (allocator_); - // Allocate the new value in this heap - ACE_TCHAR* pers_value = - (ACE_TCHAR *) allocator_->malloc ((value.length () + 1) * sizeof (ACE_TCHAR)); - ACE_OS::strcpy (pers_value, value.fast_rep ()); - ACE_Configuration_Value_IntId new_value_int (pers_value); - entry->int_id_ = new_value_int; - } - else - { - // it doesn't exist, bind it - ACE_TCHAR* pers_name = - (ACE_TCHAR *) allocator_->malloc ((ACE_OS::strlen (t_name) + 1) * sizeof (ACE_TCHAR)); - ACE_OS::strcpy (pers_name, t_name); - ACE_TCHAR* pers_value = - (ACE_TCHAR *) allocator_->malloc ((value.length () + 1) * sizeof (ACE_TCHAR)); - ACE_OS::strcpy (pers_value, value.fast_rep ()); - ACE_Configuration_ExtId item_name (pers_name); - ACE_Configuration_Value_IntId item_value (pers_value); - if (section_int.value_hash_map_->bind (item_name, item_value, allocator_)) - { - allocator_->free (pers_value); - allocator_->free (pers_name); - return -1; - } - return 0; - } - - return 0; -} - -int -ACE_Configuration_Heap::set_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int value) -{ - ACE_ASSERT (this->allocator_); - const ACE_TCHAR *t_name = name ? name : &this->NULL_String_; - if (validate_value_name (t_name)) - return -1; - - // Get the section name from the key - ACE_TString section; - if (load_key (key, section)) - return -1; - - // Find this section - ACE_Configuration_ExtId section_ext (section.fast_rep ()); - ACE_Configuration_Section_IntId section_int; - if (index_->find (section_ext, section_int, allocator_)) - return -1; // section does not exist - - // Get the entry for this item (if it exists) - VALUE_HASH::ENTRY* entry; - ACE_Configuration_ExtId item_name (t_name); - if (section_int.value_hash_map_->VALUE_HASH::find (item_name, entry) == 0) - { - // found item, replace it - ACE_Configuration_Value_IntId new_value_int (value); - entry->int_id_ = new_value_int; - } - else - { - // it doesn't exist, bind it - ACE_TCHAR* pers_name = - (ACE_TCHAR *) allocator_->malloc ((ACE_OS::strlen (t_name) + 1) * sizeof (ACE_TCHAR)); - ACE_OS::strcpy (pers_name, t_name); - ACE_Configuration_ExtId item_name (pers_name); - ACE_Configuration_Value_IntId item_value (value); - if (section_int.value_hash_map_->bind (item_name, item_value, allocator_)) - { - allocator_->free (pers_name); - return -1; - } - return 0; - } - - return 0; -} - -int -ACE_Configuration_Heap::set_binary_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const void* data, - size_t length) -{ - ACE_ASSERT (this->allocator_); - const ACE_TCHAR *t_name = name ? name : &this->NULL_String_; - if (validate_value_name (t_name)) - return -1; - - // Get the section name from the key - ACE_TString section; - if (load_key (key, section)) - return -1; - - // Find this section - ACE_Configuration_ExtId section_ext (section.fast_rep ()); - ACE_Configuration_Section_IntId section_int; - if (index_->find (section_ext, section_int, allocator_)) - return -1; // section does not exist - - // Get the entry for this item (if it exists) - VALUE_HASH::ENTRY* entry; - ACE_Configuration_ExtId item_name (t_name); - if (section_int.value_hash_map_->VALUE_HASH::find (item_name, entry) == 0) - { - // found item, replace it - // Free the old value - entry->int_id_.free (allocator_); - // Allocate the new value in this heap - ACE_TCHAR* pers_value = (ACE_TCHAR *) allocator_->malloc (length); - ACE_OS::memcpy (pers_value, data, length); - ACE_Configuration_Value_IntId new_value_int (pers_value, length); - entry->int_id_ = new_value_int; - } - else - { - // it doesn't exist, bind it - ACE_TCHAR* pers_name = - (ACE_TCHAR *) allocator_->malloc ((ACE_OS::strlen (t_name) + 1) * sizeof (ACE_TCHAR)); - ACE_OS::strcpy (pers_name, t_name); - ACE_TCHAR* pers_value = (ACE_TCHAR *) allocator_->malloc (length); - ACE_OS::memcpy (pers_value, data, length); - ACE_Configuration_ExtId item_name (pers_name); - ACE_Configuration_Value_IntId item_value (pers_value, length); - if (section_int.value_hash_map_->bind (item_name, item_value, allocator_)) - { - allocator_->free (pers_value); - allocator_->free (pers_name); - return -1; - } - return 0; - } - - return 0; -} - -int -ACE_Configuration_Heap::get_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - ACE_TString& value) -{ - ACE_ASSERT (this->allocator_); - const ACE_TCHAR *t_name = name ? name : &this->NULL_String_; - if (validate_value_name (t_name)) - return -1; - - // Get the section name from the key - ACE_TString section; - if (load_key (key, section)) - return -1; - - // Find this section - ACE_Configuration_ExtId ExtId (section.fast_rep ()); - ACE_Configuration_Section_IntId IntId; - if (index_->find (ExtId, IntId, allocator_)) - return -1; // section does not exist - - // See if it exists first - ACE_Configuration_ExtId VExtId (t_name); - ACE_Configuration_Value_IntId VIntId; - if (IntId.value_hash_map_->find (VExtId, VIntId, allocator_)) - return -1; // unknown value - - // Check type - if (VIntId.type_ != ACE_Configuration::STRING) - { - errno = ENOENT; - return -1; - } - - // everythings ok, return the data - value = static_cast (VIntId.data_.ptr_); - return 0; -} - -int -ACE_Configuration_Heap::get_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int& value) -{ - ACE_ASSERT (this->allocator_); - - const ACE_TCHAR *t_name = name ? name : &this->NULL_String_; - if (validate_value_name (t_name)) - return -1; - - // Get the section name from the key - ACE_TString section (0, 0, false); - - if (this->load_key (key, section) != 0) - { - return -1; - } - - // Find this section - ACE_Configuration_ExtId ExtId (section.fast_rep ()); - ACE_Configuration_Section_IntId IntId; - - if (index_->find (ExtId, IntId, allocator_) != 0) - { - return -1; // section does not exist - } - - - // See if it exists first - ACE_Configuration_ExtId VExtId (t_name); - ACE_Configuration_Value_IntId VIntId; - - if (IntId.value_hash_map_->find (VExtId, VIntId, allocator_) != 0) - { - return -1; // unknown value - } - - // Check type - if (VIntId.type_ != ACE_Configuration::INTEGER) - { - errno = ENOENT; - return -1; - } - - // Everythings ok, return the data - value = VIntId.data_.int_; - return 0; -} - -int -ACE_Configuration_Heap::get_binary_value ( - const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - void*& data, - size_t& length) -{ - ACE_ASSERT (this->allocator_); - const ACE_TCHAR *t_name = name ? name : &this->NULL_String_; - if (validate_value_name (t_name)) - return -1; - - // Get the section name from the key - ACE_TString section; - if (load_key (key, section)) - return -1; - - // Find this section - ACE_Configuration_ExtId ExtId (section.fast_rep ()); - ACE_Configuration_Section_IntId IntId; - if (index_->find (ExtId, IntId, allocator_)) - return -1; // section does not exist - - ACE_Configuration_ExtId VExtId (t_name); - ACE_Configuration_Value_IntId VIntId; - // See if it exists first - if (IntId.value_hash_map_->find (VExtId, VIntId, allocator_)) - return -1; // unknown value - - // Check type - if (VIntId.type_ != ACE_Configuration::BINARY) - { - errno = ENOENT; - return -1; - } - - // Make a copy - ACE_NEW_RETURN (data, char[VIntId.length_], -1); - ACE_OS::memcpy (data, VIntId.data_.ptr_, VIntId.length_); - length = VIntId.length_; - return 0; -} - -int -ACE_Configuration_Heap::find_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - VALUETYPE& type_out) -{ - ACE_ASSERT (this->allocator_); - const ACE_TCHAR *t_name = name ? name : &this->NULL_String_; - if (validate_value_name (t_name)) - return -1; - - // Get the section name from the key - ACE_TString section; - if (load_key (key, section)) - return -1; - - // Find this section - ACE_Configuration_ExtId ExtId (section.fast_rep ()); - ACE_Configuration_Section_IntId IntId; - if (index_->find (ExtId, IntId, allocator_)) - return -1; // section does not exist - - // Find it - ACE_Configuration_ExtId ValueExtId (t_name); - VALUE_HASH::ENTRY* value_entry; - if (((VALUE_HASH *) IntId.value_hash_map_)->find (ValueExtId, value_entry)) - return -1; // value does not exist - - type_out = value_entry->int_id_.type_; - return 0; -} - -int -ACE_Configuration_Heap::remove_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name) -{ - ACE_ASSERT (this->allocator_); - const ACE_TCHAR *t_name = name ? name : &this->NULL_String_; - if (validate_value_name (t_name)) - return -1; - - // Get the section name from the key - ACE_TString section; - if (load_key (key, section)) - return -1; - - // Find this section - ACE_Configuration_ExtId ExtId (section.fast_rep ()); - ACE_Configuration_Section_IntId IntId; - if (index_->find (ExtId, IntId, allocator_)) - return -1; // section does not exist - - // Find it - ACE_Configuration_ExtId ValueExtId (t_name); - VALUE_HASH::ENTRY* value_entry; - if (((VALUE_HASH *) IntId.value_hash_map_)->find (ValueExtId, value_entry)) - return -1; - - // free it - value_entry->ext_id_.free (allocator_); - value_entry->int_id_.free (allocator_); - - // Unbind it - if (IntId.value_hash_map_->unbind (ValueExtId, allocator_)) - return -1; - - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Configuration.h b/ACE/ace/Configuration.h deleted file mode 100644 index 199d7ac166b..00000000000 --- a/ACE/ace/Configuration.h +++ /dev/null @@ -1,896 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Configuration.h - * - * $Id$ - * - * @author Chris Hafey - * - * The ACE configuration API provides a portable abstraction for - * program configuration similar to the Microsoft Windows registry. - * The API supports a tree based hierarchy of configuration sections. Each - * section contains other sections or values. Values may contain string, - * unsigned integer and binary data. - * - * @note These classes are not thread safe, if multiple threads use these - * classes, you are responsible for serializing access. - * - * For examples of using this class, see: - * -# The test code in ACE_wrappers/test - * -# wxConfigViewer, a Windows like Registry Editor for ACE_Configuration - * -# TAO's IFR, it makes extensive use of ACE_Configuration - * - * @todo Templatize this class with an ACE_LOCK to provide thread safety - * - */ -//============================================================================= - -#ifndef ACE_CONFIGURATION_H -#define ACE_CONFIGURATION_H -#include /**/ "ace/pre.h" - -#include "ace/SStringfwd.h" -#include "ace/Hash_Map_With_Allocator_T.h" -#include "ace/Malloc_T.h" -#include "ace/MMAP_Memory_Pool.h" -#include "ace/Local_Memory_Pool.h" -#include "ace/Synch_Traits.h" - - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// configurable parameters - -#if !defined (ACE_CONFIG_SECTION_INDEX) -# define ACE_CONFIG_SECTION_INDEX "Config_Section_Index" -#endif /* ! ACE_CONFIG_SECTION_INDEX */ - -#if !defined (ACE_DEFAULT_CONFIG_SECTION_SIZE) -#define ACE_DEFAULT_CONFIG_SECTION_SIZE 16 -#endif /* ACE_DEFAULT_CONFIG_SECTION_SIZE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Section_Key_Internal - * - * @internal - * - * @brief A base class for internal handles to section keys for - * configuration implementations - * - * Implementations subclass this base class to represent a - * section key. - * - */ -class ACE_Export ACE_Section_Key_Internal -{ -public: - /// Virtual destructor, make sure descendants are virtual! - virtual ~ACE_Section_Key_Internal (void); - - /// Increment reference count - virtual int add_ref (void); - - /// Decrement reference count. Will delete this if count gets to 0 - virtual int dec_ref (void); -protected: - ACE_Section_Key_Internal (void); - ACE_Section_Key_Internal (const ACE_Section_Key_Internal& rhs); - ACE_Section_Key_Internal& operator= (ACE_Section_Key_Internal& rhs); - - u_int ref_count_; -}; - -/** - * @class ACE_Configuration_Section_Key - * - * @brief Reference counted wrapper for ACE_Section_Key_Internal. - * - * Reference counted wrapper class for the abstract internal - * section key. A user gets one of these to represent a section - * in the configuration database. - */ -class ACE_Export ACE_Configuration_Section_Key -{ - friend class ACE_Configuration; -public: - /// Default constructor. - ACE_Configuration_Section_Key (void); - - /// Constructor that initializes to a pointer to a concrete internal key. - /** - * @param key The section key to reference. Calls add_ref() with @a key. - */ - explicit ACE_Configuration_Section_Key (ACE_Section_Key_Internal *key); - - /// Copy constructor, increments the reference count on the key. - ACE_Configuration_Section_Key (const ACE_Configuration_Section_Key &rhs); - - /// Destructor, decrements reference count on the referenced key. - ~ACE_Configuration_Section_Key (void); - - /// Assignment operator, increments reference count for this object - /// and decrements it on @a rhs. - ACE_Configuration_Section_Key & - operator= (const ACE_Configuration_Section_Key &rhs); -private: - ACE_Section_Key_Internal *key_; -}; - -/** - * @class ACE_Configuration - * - * @internal - * - * @brief Base class for configuration databases - * - * This class provides an interface for configuration databases. A concrete - * class is required that implements the interface. - * - * @sa ACE_Configuration_Heap - * @sa ACE_Configuration_Win32Registry - */ -class ACE_Export ACE_Configuration -{ -public: - /// Enumeration for the various types of values we can store. - enum VALUETYPE - { - STRING, - INTEGER, - BINARY, - INVALID - }; - - /// Destructor - virtual ~ACE_Configuration (void); - - /// Obtain a reference to the root section of this configuration. - /* - * @return Reference to the configuration's root section. Note that - * it is a const reference. - */ - virtual const ACE_Configuration_Section_Key& root_section (void) const; - - /** - * Opens a named section in an existing section. - * - * @param base Existing section in which to open the named section. - * @param sub_section Name of the section to open. - * @param create If zero, the named section must exist. If non-zero, - * the named section will be created if it does not exist. - * @param result Reference; receives the section key for the new - * section. - * - * @retval 0 for success. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int open_section (const ACE_Configuration_Section_Key &base, - const ACE_TCHAR *sub_section, - int create, - ACE_Configuration_Section_Key& result) = 0; - - /// Removes a named section. - /** - * @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 - * removed as well. - * - * @retval 0 for success. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int remove_section (const ACE_Configuration_Section_Key &key, - const ACE_TCHAR *sub_section, - int recursive) = 0; - - /** - * Enumerates through the values in a section. - * - * @param key Section key to iterate through. - * @param index Iteration position. Must be zero on the first call to - * iterate through @a key. Increment @a index by one on each - * successive call to this method. - * @param name Receives the value's name. - * @param type Receives the value's data type. - * - * @note You may not delete or add values while enumerating. If the - * section is modified during enumeration, results are undefined; - * you must restart the enumeration from index 0. - * - * @retval 0 for success, @a name and @a type are valid. - * @retval 1 there are no more values in the section. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int enumerate_values (const ACE_Configuration_Section_Key& key, - int index, - ACE_TString& name, - VALUETYPE& type) = 0; - - /** - * Enumerates through the subsections in a section. - * - * @param key Section key to iterate through. - * @param index Iteration position. Must be zero on the first call to - * iterate through @a key. Increment @a index by one on each - * successive call to this method. - * @param name Receives the subsection's name. - * - * @note You may not modify the @a key section while enumerating. If the - * section is modified during enumeration, results are undefined; - * you must restart the enumeration from index 0. - * - * @retval 0 for success, @a name has a valid name. - * @retval 1 there are no more subsections in the section. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int enumerate_sections (const ACE_Configuration_Section_Key& key, - int index, ACE_TString& name) = 0; - - /// Sets a string-typed value. - /** - * @param key Configuration section to set the value in. - * @param name Name of the configuration value to set. If a value with - * the specified name exists, it is replaced. - * @param value The string to set the configuration value to. - * - * @retval 0 for success. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int set_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const ACE_TString& value) = 0; - - /// Sets a integer-typed value. - /** - * @param key Configuration section to set the value in. - * @param name Name of the configuration value to set. If a value with - * the specified name exists, it is replaced. - * @param value The integer to set the configuration value to. - * - * @retval 0 for success. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int set_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int value) = 0; - - /// Sets a binary-typed value. - /** - * @param key Configuration section to set the value in. - * @param name Name of the configuration value to set. If a value with - * the specified name exists, it is replaced. - * @param data Pointer to the binary data for the value. - * @param length Number of bytes for the new value. - * - * @retval 0 for success. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int set_binary_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const void* data, - size_t length) = 0; - - /// Gets a string-typed value. - /** - * @param key Configuration section to get the value from. - * @param name Name of the configuration value to get. - * @param value Receives the configuration value if it exists and - * has type STRING. - * - * @retval 0 for success. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int get_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - ACE_TString& value) = 0; - - /// Gets an integer-typed value. - /** - * @param key Configuration section to get the value from. - * @param name Name of the configuration value to get. - * @param value Receives the configuration value if it exists and - * has type INTEGER. - * - * @retval 0 for success. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int get_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int& value) = 0; - - /// Gets a binary-typed value. - /** - * @param key Configuration section to get the value from. - * @param name Name of the configuration value to get. - * @param data Receives a pointer to memory holding the binary data - * for the value. This method allocates the memory pointed - * to using operator new[]. The caller is responsible for - * freeing the memory using operator delete[]. - * @param length Receives the number of bytes in the value. - * - * @retval 0 for success; caller is responsible for freeing the - * returned memory. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int get_binary_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - void*& data, - size_t& length) = 0; - - /** - * Retrieves the type of a named configuration value. - * - * @param key Configuration section to look up the name in. - * @param name Name of the configuration value to get the type of. - * @param type Receives the data type of the named value, if it exists. - * - * @retval 0 for success. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int find_value(const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - VALUETYPE& type) = 0; - - /// Removes a named value. - /** - * @param key Configuration section to remove the named value from. - * @param name Name of the configuration value to remove. - * - * @retval 0 for success. - * @retval -1 for error; ACE_OS::last_error() retrieves error code. - */ - virtual int remove_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name) = 0; - - /** - * Expands to from @a key. If create is true, - * the subsections are created. Returns 0 on success, non zero on - * error The path consists of sections separated by the backslash - * '\' or forward slash '/'. - * Returns 0 on success, -1 if - virtual ~ACE_Section_Key_Win32 (void); - - // Not used - ACE_Section_Key_Win32 (const ACE_Section_Key_Win32& rhs); - ACE_Section_Key_Win32& operator= (const ACE_Section_Key_Win32& rhs); -}; - -/** - * @class ACE_Configuration_Win32Registry - * - * @brief The win32 registry implementation of a configuration database - * - * The win32 implementation basically makes calls through to the - * registry functions. The API is very similar so very little - * work must be done - */ -class ACE_Export ACE_Configuration_Win32Registry : public ACE_Configuration -{ -public: - - /** - * Constructor for registry configuration database. hKey is the - * base registry key to attach to. This class takes ownership of - * hKey, it will invoke on it upon destruction. - */ - explicit ACE_Configuration_Win32Registry (HKEY hKey); - - /// Destructor - virtual ~ACE_Configuration_Win32Registry (void); - - virtual int open_section (const ACE_Configuration_Section_Key& base, - const ACE_TCHAR* sub_section, - int create, - ACE_Configuration_Section_Key& result); - - virtual int remove_section (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* sub_section, - int recursive); - - virtual int enumerate_values (const ACE_Configuration_Section_Key& key, - int index, - ACE_TString& name, - VALUETYPE& type); - - virtual int enumerate_sections (const ACE_Configuration_Section_Key& key, - int index, - ACE_TString& name); - - virtual int set_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const ACE_TString& value); - - virtual int set_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int value); - - virtual int set_binary_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const void* data, - size_t length); - - virtual int get_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - ACE_TString& value); - - virtual int get_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int& value); - - virtual int get_binary_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - void*& data, - size_t& length); - - virtual int find_value(const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - VALUETYPE& type); - - /// Removes the the value @a name from @a key. returns non zero on error - virtual int remove_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name); - - /** - * This method traverses through . It is useful when - * you want the HKEY for a specific registry key, especially when - * initializing this implementation. Caller is responsible for - * closeing this key when it is no longer used. If create is 1 - * (default) the keys are create if they don't already exist. - * Returns 0 on error - */ - static HKEY resolve_key (HKEY hKey, - const ACE_TCHAR* path, - int create = 1); - virtual bool operator== (const ACE_Configuration_Win32Registry &rhs) const; - virtual bool operator!= (const ACE_Configuration_Win32Registry &rhs) const; - -protected: - - /// Gets the HKEY for a configuration section - int load_key (const ACE_Configuration_Section_Key& key, HKEY& hKey); - - // Not used - ACE_Configuration_Win32Registry (void); - ACE_Configuration_Win32Registry (const ACE_Configuration_Win32Registry& rhs); - ACE_Configuration_Win32Registry& operator= (const ACE_Configuration_Win32Registry& rhs); -}; -#endif /* ACE_WIN32 && !ACE_LACKS_WIN32_REGISTRY */ - -// ACE_Allocator version - -typedef ACE_Allocator_Adapter > - PERSISTENT_ALLOCATOR; -typedef ACE_Allocator_Adapter > - HEAP_ALLOCATOR; - -/** - * @class ACE_Configuration_ExtId - * - * @brief External ID for the section and value hash - * - * Contains a pointer to the section or value name. - */ -class ACE_Export ACE_Configuration_ExtId -{ -public: - /// Defeault ctor - ACE_Configuration_ExtId (void); - - /// Named constructor - explicit ACE_Configuration_ExtId (const ACE_TCHAR* name); - - /// Copy ctor - ACE_Configuration_ExtId (const ACE_Configuration_ExtId& rhs); - - /// destructor - ~ACE_Configuration_ExtId (void); - - /// Assignment operator - ACE_Configuration_ExtId& operator= (const ACE_Configuration_ExtId& rhs); - - /// Equality comparison operator (must match name_). - bool operator== (const ACE_Configuration_ExtId &rhs) const; - - /// Inequality comparison operator. - bool operator!= (const ACE_Configuration_ExtId &rhs) const; - - /// Frees the name of the value. needed since we don't know the - /// allocator name_ was created in - void free (ACE_Allocator *alloc); - - /// function is required in order for this class to be usable by - /// ACE_Hash_Map_Manager. - u_long hash (void) const; - - // = Data members. - - const ACE_TCHAR * name_; - - // Accessors - const ACE_TCHAR *name (void); -}; - -typedef ACE_Hash_Map_With_Allocator - SUBSECTION_MAP; -typedef ACE_Hash_Map_Manager_Ex, - ACE_Equal_To, - 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 - * - * @brief The section hash table internal value class - * - * This class is present as the internal portion of a section's - * value hash table It may store string, integer or binary data. - */ -class ACE_Export ACE_Configuration_Value_IntId -{ -public: - /// Default constructor - ACE_Configuration_Value_IntId (void); - - /// String constructor, takes ownership of string - explicit ACE_Configuration_Value_IntId (ACE_TCHAR* string); - - /// Integer constructor - explicit ACE_Configuration_Value_IntId (u_int integer); - - /// Binary constructor, takes ownership of data - ACE_Configuration_Value_IntId (void* data, size_t length); - - /// Copy ctor - ACE_Configuration_Value_IntId (const ACE_Configuration_Value_IntId& rhs); - - /// Destructor - ~ACE_Configuration_Value_IntId (void); - - /// Assignment operator - ACE_Configuration_Value_IntId& operator= ( - const ACE_Configuration_Value_IntId& rhs); - - void free (ACE_Allocator *alloc); - - // = Data members. - - /** - * Points to the string value or binary data or IS the integer - * Length is only used when type_ == BINARY - */ - ACE_Configuration::VALUETYPE type_; - union { - void * ptr_; - u_int int_; - } data_; - size_t length_; -}; - -typedef ACE_Hash_Map_With_Allocator - VALUE_MAP; -typedef ACE_Hash_Map_Manager_Ex, - ACE_Equal_To, - ACE_Null_Mutex> - VALUE_HASH; - -// Deprecated typedef. Use the VALUE_HASH::ENTRY trait instead. -typedef VALUE_HASH::ENTRY VALUE_ENTRY; - -/** - * @class ACE_Configuration_Section_IntId - * - * @brief The internal ID for a section hash table - * - * Contains a hash table containing value name/values - */ -class ACE_Export ACE_Configuration_Section_IntId -{ -public: - /// Default ctor - ACE_Configuration_Section_IntId (void); - - /// Named ctor - ACE_Configuration_Section_IntId (VALUE_MAP* value_hash_map, - SUBSECTION_MAP* section_hash_map); - - /// Copy ctor - ACE_Configuration_Section_IntId (const ACE_Configuration_Section_IntId& rhs); - - /// Destructor - ~ACE_Configuration_Section_IntId (void); - - /// Assignment operator - ACE_Configuration_Section_IntId& operator= ( - const ACE_Configuration_Section_IntId& rhs); - - /// Frees the hash table and all its values - void free (ACE_Allocator *alloc); - - // = Data Members. - VALUE_MAP* value_hash_map_; - - SUBSECTION_MAP* section_hash_map_; -}; - -typedef ACE_Hash_Map_With_Allocator - SECTION_MAP; -typedef ACE_Hash_Map_Manager_Ex, - ACE_Equal_To, - ACE_Null_Mutex> - SECTION_HASH; - -// Deprecated typedef. Use the SECTION_HASH::ENTRY trait instead. -typedef SECTION_HASH::ENTRY SECTION_ENTRY; - -/** - * @class ACE_Configuration_Section_Key_Heap - * - * @brief Internal section key class for heap based configuration - * database. - * - * Contains a value iterator and full path name of section. - */ -class ACE_Export ACE_Configuration_Section_Key_Heap - : public ACE_Section_Key_Internal -{ -public: - /// Constructor based on the full path of the section - ACE_Configuration_Section_Key_Heap (const ACE_TCHAR* path); - - /// The path itself - ACE_TCHAR* path_; - - /// The value iterator - VALUE_HASH::ITERATOR* value_iter_; - - /// The sub section iterator - SUBSECTION_HASH::ITERATOR* section_iter_; -protected: - /// Destructor - will delete the iterators - virtual ~ACE_Configuration_Section_Key_Heap (void); - - // Not used - ACE_Configuration_Section_Key_Heap (const ACE_Configuration_Section_Key_Heap& rhs); - ACE_Configuration_Section_Key_Heap& operator= (const ACE_Configuration_Section_Key_Heap& rhs); -}; - -/** - * @class ACE_Configuration_Heap - * - * @brief The concrete implementation of a allocator based - * configuration database - * - * This class uses ACE's Allocators to manage a memory - * representation of a configuraiton database. A persistent heap - * may be used to store configurations persistently - * - * @note Before using this class you must call one of the open methods. - * - * @todo - * - Need to investigate what happens if memory mapped file gets mapped to - * a location different than it was created with. - */ -class ACE_Export ACE_Configuration_Heap : public ACE_Configuration -{ -public: - - /// Default ctor - ACE_Configuration_Heap (void); - - /// Destructor - virtual ~ACE_Configuration_Heap (void); - - /// Opens a configuration based on a file name - 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 - int open (size_t default_map_size = ACE_DEFAULT_CONFIG_SECTION_SIZE); - - virtual int open_section (const ACE_Configuration_Section_Key& base, - const ACE_TCHAR* sub_section, - int create, ACE_Configuration_Section_Key& result); - - virtual int remove_section (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* sub_section, - int recursive); - - virtual int enumerate_values (const ACE_Configuration_Section_Key& key, - int index, - ACE_TString& name, - VALUETYPE& type); - - virtual int enumerate_sections (const ACE_Configuration_Section_Key& key, - int index, - ACE_TString& name); - - virtual int set_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const ACE_TString& value); - - virtual int set_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int value); - - virtual int set_binary_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - const void* data, - size_t length); - - virtual int get_string_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - ACE_TString& value); - - virtual int get_integer_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - u_int& value); - - virtual int get_binary_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - void* &data, - size_t &length); - - virtual int find_value(const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name, - VALUETYPE& type); - - /// Removes the the value @a name from @a key. returns non zero on error - virtual int remove_value (const ACE_Configuration_Section_Key& key, - const ACE_TCHAR* name); - -private: - /// may not contain path separators - int open_simple_section (const ACE_Configuration_Section_Key &base, - const ACE_TCHAR *sub_section, - int create, ACE_Configuration_Section_Key &result); - /// Adds a new section - int add_section (const ACE_Configuration_Section_Key &base, - const ACE_TCHAR *sub_section, - ACE_Configuration_Section_Key &result); - - /// Helper for the method. - int create_index (void); - - /// Helper for create_index() method: places hash table into an - /// allocated space. - int create_index_helper (void *buffer); - - int value_open_helper (size_t hash_table_size, void *buffer); - - int section_open_helper (size_t hash_table_size, void *buffer); - - int load_key (const ACE_Configuration_Section_Key& key, ACE_TString& name); - - int new_section (const ACE_TString& section, - ACE_Configuration_Section_Key& result); - - ACE_Configuration_Heap (const ACE_Configuration_Heap& rhs); - ACE_Configuration_Heap& operator= (const ACE_Configuration_Heap& rhs); - - ACE_Allocator *allocator_; - SECTION_MAP *index_; - size_t default_map_size_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Configuration.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_CONFIGURATION_H */ diff --git a/ACE/ace/Configuration.inl b/ACE/ace/Configuration.inl deleted file mode 100644 index b7c9af26f5c..00000000000 --- a/ACE/ace/Configuration.inl +++ /dev/null @@ -1,13 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE const ACE_TCHAR* -ACE_Configuration_ExtId::name (void) -{ - return name_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Configuration_Import_Export.cpp b/ACE/ace/Configuration_Import_Export.cpp deleted file mode 100644 index ce4cbac84c1..00000000000 --- a/ACE/ace/Configuration_Import_Export.cpp +++ /dev/null @@ -1,670 +0,0 @@ -// $Id$ - -#include "ace/Configuration_Import_Export.h" -#include "ace/OS_Errno.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_ctype.h" -#include "ace/OS_NS_string.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Config_ImpExp_Base::ACE_Config_ImpExp_Base (ACE_Configuration& config) - : config_ (config) -{ -} - -ACE_Config_ImpExp_Base::~ACE_Config_ImpExp_Base (void) -{ -} - -ACE_Registry_ImpExp::ACE_Registry_ImpExp (ACE_Configuration& config) - : ACE_Config_ImpExp_Base (config) -{ -} - -ACE_Registry_ImpExp::~ACE_Registry_ImpExp (void) -{ -} - -// Imports the configuration database from filename. -// No existing data is removed. -int -ACE_Registry_ImpExp::import_config (const ACE_TCHAR* filename) -{ - if (0 == filename) - { - errno = EINVAL; - return -1; - } - FILE* in = ACE_OS::fopen (filename, ACE_TEXT ("r")); - if (!in) - return -1; - - u_int buffer_size = 4096; - u_int read_pos = 0; - ACE_TCHAR *buffer = 0; - ACE_NEW_NORETURN (buffer, ACE_TCHAR[buffer_size]); - if (!buffer) - { - ACE_Errno_Guard guard (errno); - (void) ACE_OS::fclose (in); - return -1; - } - ACE_Configuration_Section_Key section; - ACE_TCHAR *end = 0; - - while (ACE_OS::fgets (buffer+read_pos, buffer_size - read_pos, in)) - { - // Check if we got all the line. - end = ACE_OS::strrchr (buffer + read_pos, - ACE_TEXT ('\n')); // look for end of line - if (!end) // we havn't reach the end of the line yet - { - // allocate a new buffer - double size the previous one - ACE_TCHAR *temp_buffer; - ACE_NEW_NORETURN (temp_buffer, ACE_TCHAR[buffer_size * 2]); - if (!temp_buffer) - { - ACE_Errno_Guard guard (errno); - delete [] buffer; - (void) ACE_OS::fclose (in); - return -1; - } - - // copy the beginnning of the line - ACE_OS::memcpy (temp_buffer, buffer, buffer_size); - read_pos = buffer_size - 1; - buffer_size *= 2; - delete [] buffer; - buffer = temp_buffer; - continue; - } - read_pos = 0; - - // Check for a comment - if (buffer[0] == ACE_TEXT (';') || buffer[0] == ACE_TEXT ('#')) - continue; - - if (buffer[0] == ACE_TEXT ('[')) - { - // We have a new section here, strip out the section name - end = ACE_OS::strrchr (buffer, ACE_TEXT (']')); - if (!end) - { - ACE_OS::fclose (in); - delete [] buffer; - return -3; - } - *end = 0; - - if (config_.expand_path (config_.root_section (), buffer + 1, section, 1)) - { - ACE_OS::fclose (in); - delete [] buffer; - return -3; - } - continue; - } // end if firs char is a [ - - if (buffer[0] == ACE_TEXT ('"')) - { - // we have a value - end = ACE_OS::strchr (buffer+1, '"'); - if (!end) // no closing quote, not a value so just skip it - continue; - - // null terminate the name - *end = 0; - ACE_TCHAR* name = buffer + 1; - end+=2; - // determine the type - if (*end == '\"') - { - // string type - // truncate trailing " - ++end; - ACE_TCHAR* trailing = ACE_OS::strrchr (end, '"'); - if (trailing) - *trailing = 0; - if (config_.set_string_value (section, name, end)) - { - ACE_OS::fclose (in); - delete [] buffer; - return -4; - } - } - else if (ACE_OS::strncmp (end, ACE_TEXT ("dword:"), 6) == 0) - { - // number type - ACE_TCHAR* endptr = 0; - unsigned long value = ACE_OS::strtoul (end + 6, &endptr, 16); - if (config_.set_integer_value (section, name, value)) - { - ACE_OS::fclose (in); - delete [] buffer; - return -4; - } - } - else if (ACE_OS::strncmp (end, ACE_TEXT ("hex:"), 4) == 0) - { - // binary type - size_t string_length = ACE_OS::strlen (end + 4); - // divide by 3 to get the actual buffer length - size_t length = string_length / 3; - size_t remaining = length; - u_char* data = 0; - ACE_NEW_RETURN (data, - u_char[length], - -1); - u_char* out = data; - ACE_TCHAR* inb = end + 4; - ACE_TCHAR* endptr = 0; - while (remaining) - { - u_char charin = (u_char) ACE_OS::strtoul (inb, &endptr, 16); - *out = charin; - ++out; - --remaining; - inb += 3; - } - if (config_.set_binary_value (section, name, data, length)) - { - ACE_OS::fclose (in); - delete [] data; - delete [] buffer; - return -4; - } - else - delete [] data; - } - else - { - // invalid type, ignore - continue; - } - }// end if first char is a " - else - { - // if the first character is not a ", [, ;, or # we may be - // processing a file in the old format. - // Try and process the line as such and if it fails, - // return an error - int rc = process_previous_line_format (buffer, section); - if (rc != 0) - { - ACE_OS::fclose (in); - delete [] buffer; - return rc; - } - } // end if maybe old format - } // end while fgets - - if (ferror (in)) - { - ACE_OS::fclose (in); - delete [] buffer; - return -1; - } - - ACE_OS::fclose (in); - delete [] buffer; - return 0; -} - -// This method exports the entire configuration database to . -// Once the file is opened this method calls 'export_section' passing -// the root section. -int -ACE_Registry_ImpExp::export_config (const ACE_TCHAR* filename) -{ - if (0 == filename) - { - errno = EINVAL; - return -1; - } - int result = -1; - - FILE* out = ACE_OS::fopen (filename, ACE_TEXT ("w")); - if (out) - { - result = this->export_section (config_.root_section (), - ACE_TEXT (""), - out); - // The data may have been buffered and will be flush on close, - // so we need to check that the close succeeds. - if (ACE_OS::fclose (out) < 0) - result = -7; - } - return result; -} - -// Method provided by derived classes in order to write one section -// to the file specified. Called by export_config when exporting -// the entire configuration object. - -int -ACE_Registry_ImpExp::export_section (const ACE_Configuration_Section_Key& section, - const ACE_TString& path, - FILE* out) -{ - // don't export the root - if (path.length ()) - { - // Write out the section header - ACE_TString header = ACE_TEXT ("["); - header += path; - header += ACE_TEXT ("]"); - header += ACE_TEXT (" \n"); - if (ACE_OS::fputs (header.fast_rep (), out) < 0) - return -1; - // Write out each value - int index = 0; - ACE_TString name; - ACE_Configuration::VALUETYPE type; - ACE_TString line; - ACE_TCHAR int_value[32]; - ACE_TCHAR bin_value[3]; - void* binary_data; - size_t binary_length; - ACE_TString string_value; - while (!config_.enumerate_values (section, index, name, type)) - { - line = ACE_TEXT ("\"") + name + ACE_TEXT ("\"="); - switch (type) - { - case ACE_Configuration::INTEGER: - { - u_int value; - if (config_.get_integer_value (section, name.fast_rep (), value)) - return -2; - ACE_OS::sprintf (int_value, ACE_TEXT ("%08x"), value); - line += ACE_TEXT ("dword:"); - line += int_value; - break; - } - case ACE_Configuration::STRING: - { - if (config_.get_string_value (section, - name.fast_rep (), - string_value)) - return -2; - line += ACE_TEXT ("\""); - line += string_value + ACE_TEXT ("\""); - break; - } -#ifdef _WIN32 - case ACE_Configuration::INVALID: - break; // JDO added break. Otherwise INVALID is processed - // like BINARY. If that's correct, please remove the - // break and these comments -#endif - case ACE_Configuration::BINARY: - { - // not supported yet - maybe use BASE64 codeing? - if (config_.get_binary_value (section, - name.fast_rep (), - binary_data, - binary_length)) - return -2; - line += ACE_TEXT ("hex:"); - unsigned char* ptr = (unsigned char*)binary_data; - while (binary_length) - { - if (ptr != binary_data) - { - line += ACE_TEXT (","); - } - ACE_OS::sprintf (bin_value, ACE_TEXT ("%02x"), *ptr); - line += bin_value; - --binary_length; - ++ptr; - } - delete [] (char*) binary_data; - break; - } - default: - return -3; - } - line += ACE_TEXT ("\n"); - if (ACE_OS::fputs (line.fast_rep (), out) < 0) - return -4; - ++index; - } - } - // Export all sub sections - int index = 0; - ACE_TString name; - ACE_Configuration_Section_Key sub_key; - ACE_TString sub_section; - while (!config_.enumerate_sections (section, index, name)) - { - ACE_TString sub_section (path); - if (path.length ()) - sub_section += ACE_TEXT ("\\"); - sub_section += name; - if (config_.open_section (section, name.fast_rep (), 0, sub_key)) - return -5; - if (export_section (sub_key, sub_section.fast_rep (), out)) - return -6; - ++index; - } - return 0; -} - -// -// This method read the line format origionally used in ACE 5.1 -// -int -ACE_Registry_ImpExp::process_previous_line_format (ACE_TCHAR* buffer, - ACE_Configuration_Section_Key& section) -{ - // Chop any cr/lf at the end of the line. - ACE_TCHAR *endp = ACE_OS::strpbrk (buffer, ACE_TEXT ("\r\n")); - if (endp != 0) - *endp = '\0'; - - // assume this is a value, read in the value name - ACE_TCHAR* end = ACE_OS::strchr (buffer, '='); - if (end) // no =, not a value so just skip it - { - // null terminate the name - *end = 0; - ++end; - // determine the type - if (*end == '\"') - { - // string type - if(config_.set_string_value (section, buffer, end + 1)) - return -4; - } - else if (*end == '#') - { - // number type - u_int value = ACE_OS::atoi (end + 1); - if (config_.set_integer_value (section, buffer, value)) - return -4; - } - } - return 0; -} // end read_previous_line_format - - -ACE_Ini_ImpExp::ACE_Ini_ImpExp (ACE_Configuration& config) - : ACE_Config_ImpExp_Base (config) -{ -} - -ACE_Ini_ImpExp::~ACE_Ini_ImpExp (void) -{ -} - -// Method to read file and populate object. -int -ACE_Ini_ImpExp::import_config (const ACE_TCHAR* filename) -{ - if (0 == filename) - { - errno = EINVAL; - return -1; - } - FILE* in = ACE_OS::fopen (filename, ACE_TEXT ("r")); - if (!in) - return -1; - - // @@ Make this a dynamic size! - ACE_TCHAR buffer[4096]; - ACE_Configuration_Section_Key section; - while (ACE_OS::fgets (buffer, sizeof buffer, in)) - { - ACE_TCHAR *line = this->squish (buffer); - // Check for a comment and blank line - if (line[0] == ACE_TEXT (';') || - line[0] == ACE_TEXT ('#') || - line[0] == '\0') - continue; - - if (line[0] == ACE_TEXT ('[')) - { - // We have a new section here, strip out the section name - ACE_TCHAR* end = ACE_OS::strrchr (line, ACE_TEXT (']')); - if (!end) - { - ACE_OS::fclose (in); - return -3; - } - *end = 0; - - if (config_.expand_path (config_.root_section (), - line + 1, - section, - 1)) - { - ACE_OS::fclose (in); - return -3; - } - - continue; - } - - // We have a line; name ends at equal sign. - ACE_TCHAR *end = ACE_OS::strchr (line, ACE_TEXT ('=')); - if (end == 0) // No '=' - { - ACE_OS::fclose (in); - return -3; - } - *end++ = '\0'; - ACE_TCHAR *name = this->squish (line); -#if 0 - if (ACE_OS::strlen (name) == 0) // No name; just an '=' - { - ACE_OS::fclose (in); - return -3; - } -#endif - // Now find the start of the value - ACE_TCHAR *value = this->squish (end); - size_t value_len = ACE_OS::strlen (value); - if (value_len > 0) - { - // ACE 5.2 (and maybe earlier) exported strings may be enclosed - // in quotes. If string is quote-delimited, strip the quotes. - // Newer exported files don't have quote delimiters. - if (value[0] == ACE_TEXT ('"') && - value[value_len - 1] == ACE_TEXT ('"')) - { - // Strip quotes off both ends. - value[value_len - 1] = '\0'; - ++value; - } - } - - if (config_.set_string_value (section, name, value)) - { - ACE_OS::fclose (in); - return -4; - } - } // end while fgets - - if (ferror (in)) - { - ACE_OS::fclose (in); - return -1; - } - - ACE_OS::fclose (in); - return 0; -} - -// This method exports the entire configuration database to . -// Once the file is opened this method calls 'export_section' passing -// the root section. -int -ACE_Ini_ImpExp::export_config (const ACE_TCHAR* filename) -{ - if (0 == filename) - { - errno = EINVAL; - return -1; - } - int result = -1; - - FILE* out = ACE_OS::fopen (filename, ACE_TEXT ("w")); - if (out) - { - result = this->export_section (config_.root_section (), - ACE_TEXT (""), - out); - // The data may have been buffered and will be flush on close, - // so we need to check that the close succeeds. - if (ACE_OS::fclose (out) < 0) - result = -7; - } - return result; -} - -// Method provided by derived classes in order to write one section to the -// file specified. Called by export_config when exporting the entire -// configuration objet - -int -ACE_Ini_ImpExp::export_section (const ACE_Configuration_Section_Key& section, - const ACE_TString& path, - FILE* out) -{ - // don't export the root - if (path.length ()) - { - // Write out the section header - ACE_TString header = ACE_TEXT ("["); - header += path; - header += ACE_TEXT ("]\n"); - if (ACE_OS::fputs (header.fast_rep (), out) < 0) - return -1; - // Write out each value - int index = 0; - ACE_TString name; - ACE_Configuration::VALUETYPE type; - ACE_TString line; - ACE_TCHAR int_value[32]; - ACE_TCHAR bin_value[3]; - void* binary_data; - size_t binary_length; - ACE_TString string_value; - while (!config_.enumerate_values (section, index, name, type)) - { - line = name + ACE_TEXT ("="); - switch (type) - { - case ACE_Configuration::INTEGER: - { - u_int value; - if (config_.get_integer_value (section, name.fast_rep (), value)) - return -2; - ACE_OS::sprintf (int_value, ACE_TEXT ("%08x"), value); - line += int_value; - break; - } - case ACE_Configuration::STRING: - { - if (config_.get_string_value (section, - name.fast_rep (), - string_value)) - return -2; - line += string_value; - break; - } -#ifdef _WIN32 - case ACE_Configuration::INVALID: - break; // JDO added break. Otherwise INVALID is processed - // like BINARY. If that's correct, please remove the - // break and these comments -#endif - case ACE_Configuration::BINARY: - { - // not supported yet - maybe use BASE64 codeing? - if (config_.get_binary_value (section, - name.fast_rep (), - binary_data, - binary_length)) - return -2; - line += ACE_TEXT ("\""); - unsigned char* ptr = (unsigned char*)binary_data; - while (binary_length) - { - if (ptr != binary_data) - { - line += ACE_TEXT (","); - } - ACE_OS::sprintf (bin_value, ACE_TEXT ("%02x"), *ptr); - line += bin_value; - --binary_length; - ++ptr; - } - line += ACE_TEXT ("\""); - delete [] (char *) binary_data; - break; - } - default: - return -3; - - }// end switch on type - - line += ACE_TEXT ("\n"); - if (ACE_OS::fputs (line.fast_rep (), out) < 0) - return -4; - ++index; - }// end while enumerating values - } - // Export all sub sections - int index = 0; - ACE_TString name; - ACE_Configuration_Section_Key sub_key; - ACE_TString sub_section; - while (!config_.enumerate_sections (section, index, name)) - { - ACE_TString sub_section (path); - if (path.length ()) - sub_section += ACE_TEXT ("\\"); - sub_section += name; - if (config_.open_section (section, name.fast_rep (), 0, sub_key)) - return -5; - if (export_section (sub_key, sub_section.fast_rep (), out)) - return -6; - ++index; - } - return 0; - -} - -// Method to squish leading and trailing whitespaces from a string. -// Whitespace is defined as: spaces (' '), tabs ('\t') or end-of-line -// (cr/lf). The terminating nul is moved up to expunge trailing -// whitespace and the returned pointer points at the first -// non-whitespace character in the string, which may be the nul -// terminator if the string is all whitespace. - -ACE_TCHAR * -ACE_Ini_ImpExp::squish (ACE_TCHAR *src) -{ - ACE_TCHAR *cp = 0; - - if (src == 0) - return 0; - - // Start at the end and work backwards over all whitespace. - for (cp = src + ACE_OS::strlen (src) - 1; - cp != src; - --cp) - if (!ACE_OS::ace_isspace (*cp)) - break; - cp[1] = '\0'; // Chop trailing whitespace - - // Now start at the beginning and move over all whitespace. - for (cp = src; ACE_OS::ace_isspace (*cp); ++cp) - continue; - - return cp; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Configuration_Import_Export.h b/ACE/ace/Configuration_Import_Export.h deleted file mode 100644 index 41dc401e0c7..00000000000 --- a/ACE/ace/Configuration_Import_Export.h +++ /dev/null @@ -1,215 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Configuration_Import_Export.h - * - * $Id$ - * - * @author Jerry D. Odenwelder Jr. - * Chris Hafey - * - * Classes defined in this file provide the ability to import and export - * ACE Configuration objects to/from disk files. The base class - * ACE_Config_ImpExp_Base provides the common functionality and the derived - * classes implement the import/export functionality for the specific format. - * - * @todo - * - Add locking for thread safety. - * - Provide ability to read file in one format and write in another. - * - See todo's in each class - */ -//============================================================================= - -#ifndef ACE_CONFIGURATION_IMPORT_EXPORT_H -#define ACE_CONFIGURATION_IMPORT_EXPORT_H -#include /**/ "ace/pre.h" - -#include "ace/Configuration.h" -#include "ace/SString.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Config_ImpExp_Base - * - * @brief Base class for file import/export configuration. - * - * This class provides base functionality for configuration objects - * that are persisted in files. It takes an ACE_Configuration - * object that it populates with the data read. - * - */ -class ACE_Export ACE_Config_ImpExp_Base -{ -public: - /// Constructor taking the ACE_Configuration to import/export to - ACE_Config_ImpExp_Base (ACE_Configuration& config); - - /** - * Destructor - */ - virtual ~ACE_Config_ImpExp_Base (void); - - /** - * Imports the configuration database from @a filename. - * No existing data is removed. - */ - virtual int import_config (const ACE_TCHAR* filename) = 0; - - /** - * This method exports the entire configuration database to @a filename. - * Once the file is opened this method calls 'export_section' passing - * the root section. - */ - virtual int export_config (const ACE_TCHAR* filename) = 0; - -protected: - ACE_Configuration &config_; - -private: - ACE_Config_ImpExp_Base (const ACE_Config_ImpExp_Base&); - ACE_Config_ImpExp_Base& operator= (const ACE_Config_ImpExp_Base&); -}; - -/** - * @class ACE_Registry_ImpExp - * - * @brief Configuration object that imports/exports data to a file formatted - * using the Win32 Registry file export format. This format looks like - * [Section] - * "key"="String Data" - * "key"=dword: numeric data in hexidecimal 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) - * - */ -class ACE_Export ACE_Registry_ImpExp : public ACE_Config_ImpExp_Base -{ -public: - /// Construction - ACE_Registry_ImpExp (ACE_Configuration&); - - /// Destruction. - virtual ~ACE_Registry_ImpExp (void); - - /** - * Imports the configuration database from filename. - * No existing data is removed. - */ - virtual int import_config (const ACE_TCHAR* filename); - - /** - * This method exports the entire configuration database to @a filename. - * Once the file is opened this method calls export_section() passing - * the root section. - */ - virtual int export_config (const ACE_TCHAR* filename); - -private: - int export_section (const ACE_Configuration_Section_Key& section, - const ACE_TString& path, - FILE* out); - - int process_previous_line_format (ACE_TCHAR* buffer, - ACE_Configuration_Section_Key& section); - - ACE_Registry_ImpExp ( const ACE_Registry_ImpExp&); - ACE_Registry_ImpExp& operator= ( const ACE_Registry_ImpExp&); -}; - -/** - * @class ACE_Ini_ImpExp - * - * @brief Imports the configuration database from filename as strings. - * Allows non-typed values. (no #, dword: hex:, etc. prefixes) and - * skips whitespace (tabs and spaces) as in standard .ini and .conf - * files. Values (to right of equal sign) can be double quote - * delimited to embed tabs and spaces in the string. - * Caller must convert string to type. - * - * This method allows for lines in the .ini or .conf file like this: - * - * TimeToLive = 100 - * Delay = FALSE - * Flags = FF34 - * Heading = "ACE - Adaptive Communication Environment" - * - * (note leading whitespace (tabs) in examples below) - * - * SeekIndex = 14 - * TraceLevel = 6 # Can comment lines like this - * Justification = left_justified - * - * The caller can then retrieve the string with the regular - * function and convert the string to the - * desired data type. - * - * @todo - * - Strings with embedded newlines cause the import to fail - * - 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) -*/ -class ACE_Export ACE_Ini_ImpExp : public ACE_Config_ImpExp_Base -{ -public: - /** - * Construction - */ - ACE_Ini_ImpExp (ACE_Configuration&); - - /** - * Destructor - */ - virtual ~ACE_Ini_ImpExp (void); - - /** - * Imports the configuration database from filename. - * No existing data is removed. - */ - virtual int import_config (const ACE_TCHAR* filename); - - /** - * This method exports the entire configuration database to @a filename. - * Once the file is opened this method calls export_section() passing - * the root section. - */ - virtual int export_config (const ACE_TCHAR* filename); - -private: - /** - * Method provided by derived classes in order to write one section - * to the file specified. Called by export_config() when exporting - * the entire configuration object. - */ - int export_section (const ACE_Configuration_Section_Key& section, - const ACE_TString& path, - FILE* out); - - /** - * Method to squish leading and trailing whitespaces in a string. - * Whitespace is defined as: spaces (' '), tabs ('\\t') or cr/lf. - * Returns a pointer to the first non-whitespace character in the - * buffer provided, or a pointer to the terminating null if the string - * is all whitespace. The terminating null is moved forward to the - * first character past the last non-whitespace. - */ - ACE_TCHAR *squish (ACE_TCHAR *src); - - ACE_Ini_ImpExp (const ACE_Ini_ImpExp&); - ACE_Ini_ImpExp& operator= (const ACE_Ini_ImpExp&); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* ACE_CONFIGURATION_IMPORT_EXPORT_H */ diff --git a/ACE/ace/Connection_Recycling_Strategy.cpp b/ACE/ace/Connection_Recycling_Strategy.cpp deleted file mode 100644 index c5bc6910d21..00000000000 --- a/ACE/ace/Connection_Recycling_Strategy.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include "ace/Connection_Recycling_Strategy.h" - - -ACE_RCSID(ace, Connection_Recycling_Strategy, "$Id$") - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Connection_Recycling_Strategy::~ACE_Connection_Recycling_Strategy (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Connection_Recycling_Strategy.h b/ACE/ace/Connection_Recycling_Strategy.h deleted file mode 100644 index fa9599f678c..00000000000 --- a/ACE/ace/Connection_Recycling_Strategy.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Connection_Recycling_Strategy.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= -#ifndef ACE_CONNECTION_RECYCLING_STRATEGY_H -#define ACE_CONNECTION_RECYCLING_STRATEGY_H -#include /**/ "ace/pre.h" - -#include "ace/Recyclable.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Connection_Recycling_Strategy - * - * @brief Defines the interface for a connection recycler. - */ -class ACE_Export ACE_Connection_Recycling_Strategy -{ -public: - /// Virtual Destructor - virtual ~ACE_Connection_Recycling_Strategy (void); - - /// Remove from cache. - virtual int purge (const void *recycling_act) = 0; - - /// Add to cache. - virtual int cache (const void *recycling_act) = 0; - - virtual int recycle_state (const void *recycling_act, - ACE_Recyclable_State new_state) = 0; - - /// Get/Set recycle_state. - virtual ACE_Recyclable_State recycle_state (const void *recycling_act) const = 0; - - /// Mark as closed. - virtual int mark_as_closed (const void *recycling_act) = 0; - - /// Mark as closed.(non-locking version) - virtual int mark_as_closed_i (const void *recycling_act) = 0; - - /// Cleanup hint and reset @a act_holder to zero if @a act_holder != 0. - virtual int cleanup_hint (const void *recycling_act, - void **act_holder = 0) = 0; - -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" - -#endif /*ACE_CONNECTION_RECYCLING_STRATEGY*/ diff --git a/ACE/ace/Connector.cpp b/ACE/ace/Connector.cpp deleted file mode 100644 index 112fbca4003..00000000000 --- a/ACE/ace/Connector.cpp +++ /dev/null @@ -1,964 +0,0 @@ -// $Id$ - -#ifndef ACE_CONNECTOR_CPP -#define ACE_CONNECTOR_CPP - -#include "ace/Connector.h" -#include "ace/ACE.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_string.h" -#include "ace/os_include/os_fcntl.h" /* Has ACE_NONBLOCK */ - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Connector) - -template -ACE_NonBlocking_Connect_Handler::ACE_NonBlocking_Connect_Handler -(ACE_Connector_Base &connector, - SVC_HANDLER *sh, - long id) - : connector_ (connector) - , svc_handler_ (sh) - , timer_id_ (id) -{ - ACE_TRACE ("ACE_NonBlocking_Connect_Handler::ACE_NonBlocking_Connect_Handler"); - - this->reference_counting_policy ().value - (ACE_Event_Handler::Reference_Counting_Policy::ENABLED); -} - -template SVC_HANDLER * -ACE_NonBlocking_Connect_Handler::svc_handler (void) -{ - ACE_TRACE ("ACE_NonBlocking_Connect_Handler::svc_handler"); - return this->svc_handler_; -} - -template long -ACE_NonBlocking_Connect_Handler::timer_id (void) -{ - ACE_TRACE ("ACE_NonBlocking_Connect_Handler::timer_id"); - return this->timer_id_; -} - -template void -ACE_NonBlocking_Connect_Handler::timer_id (long id) -{ - ACE_TRACE ("ACE_NonBlocking_Connect_Handler::timer_id"); - this->timer_id_ = id; -} - -template void -ACE_NonBlocking_Connect_Handler::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_NonBlocking_Connect_Handler::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("svc_handler_ = %x"), this->svc_handler_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ntimer_id_ = %d"), this->timer_id_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template bool -ACE_NonBlocking_Connect_Handler::close (SVC_HANDLER *&sh) -{ - // Make sure that we haven't already initialized the Svc_Handler. - if (!this->svc_handler_) - return false; - - { - // Exclusive access to the Reactor. - ACE_GUARD_RETURN (ACE_Lock, - ace_mon, - this->reactor ()->lock (), - 0); - - // Double check. - if (!this->svc_handler_) - return false; - - // Remember the Svc_Handler. - sh = this->svc_handler_; - ACE_HANDLE h = sh->get_handle (); - this->svc_handler_ = 0; - - // Remove this handle from the set of non-blocking handles - // in the Connector. - this->connector_.non_blocking_handles ().remove (h); - - // Cancel timer. - if (this->reactor ()->cancel_timer (this->timer_id (), - 0, - 0) == -1) - return false; - - // Remove from Reactor. - if (this->reactor ()->remove_handler ( - h, - ACE_Event_Handler::ALL_EVENTS_MASK) == -1) - return false; - } - - return true; -} - - -template int -ACE_NonBlocking_Connect_Handler::handle_timeout -(const ACE_Time_Value &tv, - const void *arg) -{ - // This method is called if a connection times out before completing. - ACE_TRACE ("ACE_NonBlocking_Connect_Handler::handle_timeout"); - - SVC_HANDLER *svc_handler = 0; - int retval = this->close (svc_handler) ? 0 : -1; - - // Forward to the SVC_HANDLER the that was passed in as a - // magic cookie during ACE_Connector::connect(). This gives the - // SVC_HANDLER an opportunity to take corrective action (e.g., wait - // a few milliseconds and try to reconnect again. - if (svc_handler != 0 && svc_handler->handle_timeout (tv, arg) == -1) - svc_handler->handle_close (svc_handler->get_handle (), - ACE_Event_Handler::TIMER_MASK); - - return retval; -} - - -template int -ACE_NonBlocking_Connect_Handler::handle_input (ACE_HANDLE) -{ - // Called when a failure occurs during asynchronous connection - // establishment. - ACE_TRACE ("ACE_NonBlocking_Connect_Handler::handle_input"); - - SVC_HANDLER *svc_handler = 0; - int const retval = this->close (svc_handler) ? 0 : -1; - - // Close Svc_Handler. - if (svc_handler != 0) - svc_handler->close (0); - - return retval; -} - -template int -ACE_NonBlocking_Connect_Handler::handle_output (ACE_HANDLE handle) -{ - // Called when a connection is establishment asynchronous. - ACE_TRACE ("ACE_NonBlocking_Connect_Handler::handle_output"); - - // Grab the connector ref before smashing ourselves in close(). - ACE_Connector_Base &connector = this->connector_; - SVC_HANDLER *svc_handler = 0; - int const retval = this->close (svc_handler) ? 0 : -1; - - if (svc_handler != 0) - connector.initialize_svc_handler (handle, svc_handler); - - return retval; -} - -template int -ACE_NonBlocking_Connect_Handler::handle_exception (ACE_HANDLE h) -{ - // On Win32, the except mask must also be set for asynchronous - // connects. - ACE_TRACE ("ACE_NonBlocking_Connect_Handler::handle_exception"); - return this->handle_output (h); -} - -template int -ACE_NonBlocking_Connect_Handler::resume_handler (void) -{ - return ACE_Event_Handler::ACE_EVENT_HANDLER_NOT_RESUMED; -} - -template void -ACE_Connector::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Connector::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nflags_ = %d"), this->flags_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template int -ACE_Connector::make_svc_handler (SVC_HANDLER *&sh) -{ - ACE_TRACE ("ACE_Connector::make_svc_handler"); - - if (sh == 0) - ACE_NEW_RETURN (sh, - SVC_HANDLER, - -1); - - // Set the reactor of the newly created to the same - // reactor that this is using. - sh->reactor (this->reactor ()); - return 0; -} - -template int -ACE_Connector::activate_svc_handler (SVC_HANDLER *svc_handler) -{ - ACE_TRACE ("ACE_Connector::activate_svc_handler"); - // No errors initially - int error = 0; - - // See if we should enable non-blocking I/O on the 's - // peer. - if (ACE_BIT_ENABLED (this->flags_, ACE_NONBLOCK) != 0) - { - if (svc_handler->peer ().enable (ACE_NONBLOCK) == -1) - error = 1; - } - // Otherwise, make sure it's disabled by default. - else if (svc_handler->peer ().disable (ACE_NONBLOCK) == -1) - error = 1; - - // We are connected now, so try to open things up. - if (error || svc_handler->open ((void *) this) == -1) - { - // Make sure to close down the to avoid descriptor - // leaks. - svc_handler->close (0); - return -1; - } - else - return 0; -} - -template ACE_PEER_CONNECTOR & -ACE_Connector::connector (void) const -{ - return const_cast (this->connector_); -} - -template int -ACE_Connector::connect_svc_handler -(SVC_HANDLER *&svc_handler, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms) -{ - ACE_TRACE ("ACE_Connector::connect_svc_handler"); - - return this->connector_.connect (svc_handler->peer (), - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms); -} - -template int -ACE_Connector::connect_svc_handler -(SVC_HANDLER *&svc_handler, - SVC_HANDLER *&sh_copy, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms) -{ - ACE_TRACE ("ACE_Connector::connect_svc_handler"); - - sh_copy = svc_handler; - return this->connector_.connect (svc_handler->peer (), - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms); -} - -template int -ACE_Connector::open (ACE_Reactor *r, int flags) -{ - ACE_TRACE ("ACE_Connector::open"); - this->reactor (r); - this->flags_ = flags; - return 0; -} - -template -ACE_Connector::ACE_Connector (ACE_Reactor *r, - int flags) -{ - ACE_TRACE ("ACE_Connector::ACE_Connector"); - (void) this->open (r, flags); -} - -template int -ACE_Connector::connect -(SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - const ACE_Synch_Options &synch_options, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms) -{ - // Initiate connection to peer. - return this->connect_i (sh, - 0, - remote_addr, - synch_options, - local_addr, - reuse_addr, - flags, - perms); -} - -template int -ACE_Connector::connect -(SVC_HANDLER *&sh, - SVC_HANDLER *&sh_copy, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - const ACE_Synch_Options &synch_options, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms) -{ - // Initiate connection to peer. - return this->connect_i (sh, - &sh_copy, - remote_addr, - synch_options, - local_addr, - reuse_addr, - flags, - perms); -} - -template int -ACE_Connector::connect_i -(SVC_HANDLER *&sh, - SVC_HANDLER **sh_copy, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - const ACE_Synch_Options &synch_options, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms) -{ - ACE_TRACE ("ACE_Connector::connect_i"); - - // If the user hasn't supplied us with a we'll use the - // factory method to create one. Otherwise, things will remain as - // they are... - if (this->make_svc_handler (sh) == -1) - return -1; - - ACE_Time_Value *timeout = 0; - int const use_reactor = synch_options[ACE_Synch_Options::USE_REACTOR]; - - if (use_reactor) - timeout = const_cast (&ACE_Time_Value::zero); - else - timeout = const_cast (synch_options.time_value ()); - - int result; - if (sh_copy == 0) - result = this->connect_svc_handler (sh, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms); - else - result = this->connect_svc_handler (sh, - *sh_copy, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms); - - // Activate immediately if we are connected. - if (result != -1) - return this->activate_svc_handler (sh); - - // Delegate to connection strategy. - if (use_reactor && ACE_OS::last_error () == EWOULDBLOCK) - { - // If the connection hasn't completed and we are using - // non-blocking semantics then register - // ACE_NonBlocking_Connect_Handler with the ACE_Reactor so that - // it will call us back when the connection is complete or we - // timeout, whichever comes first... - int result; - - if (sh_copy == 0) - result = this->nonblocking_connect (sh, synch_options); - else - result = this->nonblocking_connect (*sh_copy, synch_options); - - // If for some reason the call failed, then - // will be set to the new error. If the call succeeds, however, - // we need to make sure that remains set to - // . - if (result == 0) - errno = EWOULDBLOCK; - } - else - { - // Save/restore errno. - ACE_Errno_Guard error (errno); - // Make sure to close down the service handler to avoid handle - // leaks. - if (sh_copy == 0) - { - if (sh) - sh->close (0); - } - else if (*sh_copy) - (*sh_copy)->close (0); - } - - return -1; -} - -template int -ACE_Connector::connect_n -(size_t n, - SVC_HANDLER *sh[], - ACE_PEER_CONNECTOR_ADDR remote_addrs[], - ACE_TCHAR *failed_svc_handlers, - const ACE_Synch_Options &synch_options) -{ - int result = 0; - - for (size_t i = 0; i < n; i++) - { - if (this->connect (sh[i], remote_addrs[i], synch_options) == -1 - && !(synch_options[ACE_Synch_Options::USE_REACTOR] - && errno == EWOULDBLOCK)) - { - result = -1; - if (failed_svc_handlers != 0) - // Mark this entry as having failed. - failed_svc_handlers[i] = 1; - } - else if (failed_svc_handlers != 0) - // Mark this entry as having succeeded. - failed_svc_handlers[i] = 0; - } - - return result; -} - -// Cancel a that was started asynchronously. -template int -ACE_Connector::cancel (SVC_HANDLER *sh) -{ - ACE_TRACE ("ACE_Connector::cancel"); - - ACE_Event_Handler *handler = - this->reactor ()->find_handler (sh->get_handle ()); - - if (handler == 0) - return -1; - - // find_handler() increments handler's refcount; ensure we decrement it. - ACE_Event_Handler_var safe_handler (handler); - - NBCH *nbch = - dynamic_cast (handler); - - if (nbch == 0) - return -1; - - SVC_HANDLER *tmp_sh = 0; - - if (nbch->close (tmp_sh) == false) - return -1; - - return 0; -} - -template int -ACE_Connector::nonblocking_connect -(SVC_HANDLER *sh, - const ACE_Synch_Options &synch_options) -{ - ACE_TRACE ("ACE_Connector::nonblocking_connect"); - - // Must have a valid Reactor for non-blocking connects to work. - if (this->reactor () == 0) - return -1; - - // Register the pending SVC_HANDLER so that it can be activated - // later on when the connection completes. - - ACE_HANDLE handle = sh->get_handle (); - long timer_id = -1; - ACE_Time_Value *tv = 0; - NBCH *nbch = 0; - - ACE_NEW_RETURN (nbch, - NBCH (*this, - sh, - -1), - -1); - - ACE_Event_Handler_var safe_nbch (nbch); - - // Exclusive access to the Reactor. - ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->reactor ()->lock (), -1); - - // Register handle with the reactor for connection events. - ACE_Reactor_Mask mask = ACE_Event_Handler::CONNECT_MASK; - if (this->reactor ()->register_handler (handle, - nbch, - mask) == -1) - goto reactor_registration_failure; - - // Add handle to non-blocking handle set. - this->non_blocking_handles ().insert (handle); - - // If we're starting connection under timer control then we need to - // schedule a timeout with the ACE_Reactor. - tv = const_cast (synch_options.time_value ()); - if (tv != 0) - { - timer_id = - this->reactor ()->schedule_timer (nbch, - synch_options.arg (), - *tv); - if (timer_id == -1) - goto timer_registration_failure; - - // Remember timer id. - nbch->timer_id (timer_id); - } - - return 0; - - // Undo previous actions using the ol' "goto label and fallthru" - // trick... - timer_registration_failure: - - // Remove from Reactor. - this->reactor ()->remove_handler (handle, mask); - - // Remove handle from the set of non-blocking handles. - this->non_blocking_handles ().remove (handle); - - /* FALLTHRU */ - - reactor_registration_failure: - // Close the svc_handler - - sh->close (0); - - return -1; -} - -template -ACE_Connector::~ACE_Connector (void) -{ - ACE_TRACE ("ACE_Connector::~ACE_Connector"); - - this->close (); -} - -template void -ACE_Connector::initialize_svc_handler -(ACE_HANDLE handle, - SVC_HANDLER *svc_handler) -{ - // Try to find out if the reactor uses event associations for the - // handles it waits on. If so we need to reset it. - int reset_new_handle = - this->reactor ()->uses_event_associations (); - - if (reset_new_handle) - this->connector_.reset_new_handle (handle); - - // Transfer ownership of the ACE_HANDLE to the SVC_HANDLER. - svc_handler->set_handle (handle); - - ACE_PEER_CONNECTOR_ADDR raddr; - - // Check to see if we're connected. - if (svc_handler->peer ().get_remote_addr (raddr) != -1) - this->activate_svc_handler (svc_handler); - else // Somethings gone wrong, so close down... - { -#if defined (ACE_WIN32) - // Win32 (at least prior to Windows 2000) has a timing problem. - // If you check to see if the connection has completed too fast, - // it will fail - so wait 35 milliseconds to let it catch up. - ACE_Time_Value tv (0, ACE_NON_BLOCKING_BUG_DELAY); - ACE_OS::sleep (tv); - if (svc_handler->peer ().get_remote_addr (raddr) != -1) - this->activate_svc_handler (svc_handler); - else // do the svc handler close below... -#endif /* ACE_WIN32 */ - svc_handler->close (0); - } -} - -template void -ACE_Connector::reactor (ACE_Reactor *reactor) -{ - this->reactor_ = reactor; -} - -template ACE_Reactor * -ACE_Connector::reactor (void) const -{ - return this->reactor_; -} - -template ACE_Unbounded_Set & -ACE_Connector::non_blocking_handles (void) -{ - return this->non_blocking_handles_; -} - -template int -ACE_Connector::close (void) -{ - // If there are no non-blocking handle pending, return immediately. - if (this->non_blocking_handles ().size () == 0) - return 0; - - // Exclusive access to the Reactor. - ACE_GUARD_RETURN (ACE_Lock, ace_mon, this->reactor ()->lock (), -1); - - // Go through all the non-blocking handles. It is necessary to - // create a new iterator each time because we remove from the handle - // set when we cancel the Svc_Handler. - ACE_HANDLE *handle = 0; - while (1) - { - ACE_Unbounded_Set_Iterator - iterator (this->non_blocking_handles ()); - if (!iterator.next (handle)) - break; - - ACE_Event_Handler *handler = - this->reactor ()->find_handler (*handle); - if (handler == 0) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%t: Connector::close h %d, no handler\n"), - *handle)); - // Remove handle from the set of non-blocking handles. - this->non_blocking_handles ().remove (*handle); - continue; - } - - // find_handler() incremented handler's refcount; ensure it's decremented - ACE_Event_Handler_var safe_handler (handler); - NBCH *nbch = dynamic_cast (handler); - if (nbch == 0) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%t: Connector::close h %d handler %@ ") - ACE_TEXT ("not a legit handler\n"), - *handle, - handler)); - // Remove handle from the set of non-blocking handles. - this->non_blocking_handles ().remove (*handle); - continue; - } - SVC_HANDLER *svc_handler = nbch->svc_handler (); - - // Cancel the non-blocking connection. - this->cancel (svc_handler); - - // Close the associated Svc_Handler. - svc_handler->close (0); - } - - return 0; -} - -template int -ACE_Connector::fini (void) -{ - ACE_TRACE ("ACE_Connector::fini"); - - return this->close (); -} - -// Hook called by the explicit dynamic linking facility. - -template int -ACE_Connector::init (int, ACE_TCHAR *[]) -{ - ACE_TRACE ("ACE_Connector::init"); - return -1; -} - -template int -ACE_Connector::suspend (void) -{ - ACE_TRACE ("ACE_Connector::suspend"); - return -1; -} - -template int -ACE_Connector::resume (void) -{ - ACE_TRACE ("ACE_Connector::resume"); - return -1; -} - -template int -ACE_Connector::info (ACE_TCHAR **strp, size_t length) const -{ - ACE_TRACE ("ACE_Connector::info"); - ACE_TCHAR buf[BUFSIZ]; - - ACE_OS::sprintf (buf, - ACE_TEXT ("%s\t %s"), - ACE_TEXT ("ACE_Connector"), - ACE_TEXT ("# connector factory\n")); - - if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0) - return -1; - else - ACE_OS::strsncpy (*strp, buf, length); - return static_cast (ACE_OS::strlen (buf)); -} - -template int -ACE_Strategy_Connector::open (ACE_Reactor *r, - int flags) -{ - ACE_TRACE ("ACE_Strategy_Connector::open"); - return this->open (r, 0, 0, 0, flags); -} - -template int -ACE_Strategy_Connector::open -(ACE_Reactor *r, - ACE_Creation_Strategy *cre_s, - ACE_Connect_Strategy *conn_s, - ACE_Concurrency_Strategy *con_s, - int flags) -{ - ACE_TRACE ("ACE_Strategy_Connector::open"); - - this->reactor (r); - - // @@ Not implemented yet. - // this->flags_ = flags; - ACE_UNUSED_ARG (flags); - - // Initialize the creation strategy. - - // First we decide if we need to clean up. - if (this->creation_strategy_ != 0 && - this->delete_creation_strategy_ && - cre_s != 0) - { - delete this->creation_strategy_; - this->creation_strategy_ = 0; - this->delete_creation_strategy_ = false; - } - - if (cre_s != 0) - this->creation_strategy_ = cre_s; - else if (this->creation_strategy_ == 0) - { - ACE_NEW_RETURN (this->creation_strategy_, - CREATION_STRATEGY, - -1); - this->delete_creation_strategy_ = true; - } - - - // Initialize the accept strategy. - - if (this->connect_strategy_ != 0 && - this->delete_connect_strategy_ && - conn_s != 0) - { - delete this->connect_strategy_; - this->connect_strategy_ = 0; - this->delete_connect_strategy_ = false; - } - - if (conn_s != 0) - this->connect_strategy_ = conn_s; - else if (this->connect_strategy_ == 0) - { - ACE_NEW_RETURN (this->connect_strategy_, - CONNECT_STRATEGY, - -1); - this->delete_connect_strategy_ = true; - } - - // Initialize the concurrency strategy. - - if (this->concurrency_strategy_ != 0 && - this->delete_concurrency_strategy_ && - con_s != 0) - { - delete this->concurrency_strategy_; - this->concurrency_strategy_ = 0; - this->delete_concurrency_strategy_ = false; - } - - if (con_s != 0) - this->concurrency_strategy_ = con_s; - else if (this->concurrency_strategy_ == 0) - { - ACE_NEW_RETURN (this->concurrency_strategy_, - CONCURRENCY_STRATEGY, - -1); - this->delete_concurrency_strategy_ = true; - } - - return 0; -} - -template -ACE_Strategy_Connector::ACE_Strategy_Connector -(ACE_Reactor *reactor, - ACE_Creation_Strategy *cre_s, - ACE_Connect_Strategy *conn_s, - ACE_Concurrency_Strategy *con_s, - int flags) - : creation_strategy_ (0), - delete_creation_strategy_ (false), - connect_strategy_ (0), - delete_connect_strategy_ (false), - concurrency_strategy_ (0), - delete_concurrency_strategy_ (false) -{ - ACE_TRACE ("ACE_Connector::ACE_Strategy_Connector"); - - if (this->open (reactor, cre_s, conn_s, con_s, flags) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_Strategy_Connector::ACE_Strategy_Connector"))); -} - -template -ACE_Strategy_Connector::~ACE_Strategy_Connector (void) -{ - ACE_TRACE ("ACE_Strategy_Connector::~ACE_Strategy_Connector"); - - // Close down - this->close (); -} - -template int -ACE_Strategy_Connector::close (void) -{ - if (this->delete_creation_strategy_) - delete this->creation_strategy_; - this->delete_creation_strategy_ = false; - this->creation_strategy_ = 0; - - if (this->delete_connect_strategy_) - delete this->connect_strategy_; - this->delete_connect_strategy_ = false; - this->connect_strategy_ = 0; - - if (this->delete_concurrency_strategy_) - delete this->concurrency_strategy_; - this->delete_concurrency_strategy_ = false; - this->concurrency_strategy_ = 0; - - return SUPER::close (); -} - -template int -ACE_Strategy_Connector::make_svc_handler (SVC_HANDLER *&sh) -{ - return this->creation_strategy_->make_svc_handler (sh); -} - -template int -ACE_Strategy_Connector::connect_svc_handler -(SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms) -{ - return this->connect_strategy_->connect_svc_handler (sh, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms); -} - -template int -ACE_Strategy_Connector::connect_svc_handler -(SVC_HANDLER *&sh, - SVC_HANDLER *&sh_copy, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms) -{ - return this->connect_strategy_->connect_svc_handler (sh, - sh_copy, - remote_addr, - timeout, - local_addr, - reuse_addr, - flags, - perms); -} - -template int -ACE_Strategy_Connector::activate_svc_handler (SVC_HANDLER *svc_handler) -{ - return this->concurrency_strategy_->activate_svc_handler (svc_handler, this); -} - -template ACE_Creation_Strategy * -ACE_Strategy_Connector::creation_strategy (void) const -{ - return this->creation_strategy_; -} - -template ACE_Connect_Strategy * -ACE_Strategy_Connector::connect_strategy (void) const -{ - return this->connect_strategy_; -} - -template ACE_Concurrency_Strategy * -ACE_Strategy_Connector::concurrency_strategy (void) const -{ - return this->concurrency_strategy_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_CONNECTOR_C */ diff --git a/ACE/ace/Connector.h b/ACE/ace/Connector.h deleted file mode 100644 index 0b92d55efcd..00000000000 --- a/ACE/ace/Connector.h +++ /dev/null @@ -1,563 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Connector.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_CONNECTOR_H -#define ACE_CONNECTOR_H - -#include /**/ "ace/pre.h" - -#include "ace/Service_Object.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Strategies_T.h" -#include "ace/Synch_Options.h" -#include "ace/Unbounded_Set.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Connector_Base - * - * @brief This base interface allows ACE_NonBlocking_Connect_Handler - * to only care about the SVC_HANDLER template parameter of the - * ACE_Connector. Otherwise, ACE_NonBlocking_Connect_Handler would - * have to be configured with all the template parameters that - * ACE_Connector is configured with. - */ -template -class ACE_Connector_Base -{ -public: - - virtual ~ACE_Connector_Base (void) {} - - /// Initialize the Svc_Handler. - virtual void initialize_svc_handler (ACE_HANDLE handle, - SVC_HANDLER *svc_handler) = 0; - - /// Return the handle set representing the non-blocking connects in - /// progress. - virtual ACE_Unbounded_Set &non_blocking_handles (void) = 0; -}; - -/** - * @class ACE_NonBlocking_Connect_Handler - * - * @brief Performs non-blocking connects on behalf of the Connector. - */ -template -class ACE_NonBlocking_Connect_Handler : public ACE_Event_Handler -{ -public: - - /// Constructor. - ACE_NonBlocking_Connect_Handler (ACE_Connector_Base &connector, - SVC_HANDLER *, - long timer_id); - - /// Close up and return underlying SVC_HANDLER through @c sh. - /** - * If the return value is true the close was performed succesfully, - * implying that this object was removed from the reactor and thereby - * (by means of reference counting decremented to 0) deleted. - * If the return value is false, the close was not successful. - * The @c sh does not have any connection to the return - * value. The argument will return a valid svc_handler object if a - * valid one exists within the object. Returning a valid svc_handler - * pointer also invalidates the svc_handler contained in this - * object. - */ - bool close (SVC_HANDLER *&sh); - - /// Get SVC_HANDLER. - SVC_HANDLER *svc_handler (void); - - /// Get handle. - ACE_HANDLE handle (void); - - /// Set handle. - void handle (ACE_HANDLE); - - /// Get timer id. - long timer_id (void); - - /// Set timer id. - void timer_id (long timer_id); - - /// Called by ACE_Reactor when asynchronous connections fail. - virtual int handle_input (ACE_HANDLE); - - /// Called by ACE_Reactor when asynchronous connections succeed. - virtual int handle_output (ACE_HANDLE); - - /// Called by ACE_Reactor when asynchronous connections suceeds (on - /// some platforms only). - virtual int handle_exception (ACE_HANDLE fd); - - /// This method is called if a connection times out before - /// completing. - virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg); - - /// Should Reactor resume us if we have been suspended before the upcall? - virtual int resume_handler (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - - /// Connector base. - ACE_Connector_Base &connector_; - - /// Associated SVC_HANDLER. - SVC_HANDLER *svc_handler_; - - /// Associated timer id. - long timer_id_; -}; - -/** - * @class ACE_Connector - * - * @brief Generic factory for actively connecting clients and creating - * service handlers (SVC_HANDLERs). - * - * Implements the strategy for actively establishing connections with - * clients. An ACE_Connector is parameterized by concrete types that - * conform to the interfaces of PEER_CONNECTOR and SVC_HANDLER. The - * PEER_CONNECTOR is instantiated with a transport mechanism that - * actively establishes connections. The SVC_HANDLER is instantiated - * with a concrete type that performs the application-specific - * service. Both blocking and non-blocking connects are supported. - * Further, non-blocking connects support timeouts. - */ -template -class ACE_Connector : public ACE_Connector_Base, public ACE_Service_Object -{ -public: - - // Useful STL-style traits. - typedef typename SVC_HANDLER::addr_type addr_type; - typedef ACE_PEER_CONNECTOR connector_type; - typedef SVC_HANDLER handler_type; - typedef typename SVC_HANDLER::stream_type stream_type; - typedef typename ACE_PEER_CONNECTOR::PEER_ADDR peer_addr_type; - typedef ACE_PEER_CONNECTOR_ADDR ACE_PEER_ADDR_TYPEDEF; - - /** - * 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. - */ - ACE_Connector (ACE_Reactor *r = ACE_Reactor::instance (), - int flags = 0); - - /** - * 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. - */ - virtual int open (ACE_Reactor *r = ACE_Reactor::instance (), - int flags = 0); - - /// Shutdown a connector and release resources. - virtual ~ACE_Connector (void); - - // = Connection establishment methods. - - /** - * Initiate connection of @a svc_handler to peer at @a remote_addr - * using @a synch_options. If the caller wants to designate the - * selected @a local_addr they can (and can also insist that the - * @a local_addr be reused by passing a value @a reuse_addr == - * 1). @a flags and @a perms can be used to pass any flags that are - * needed to perform specific operations such as opening a file - * within connect with certain permissions. If the connection fails - * the hook on the will be called - * automatically to prevent resource leaks. - */ - virtual int connect (SVC_HANDLER *&svc_handler, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - const ACE_Synch_Options &synch_options = ACE_Synch_Options::defaults, - const ACE_PEER_CONNECTOR_ADDR &local_addr - = (peer_addr_type &) ACE_PEER_CONNECTOR_ADDR_ANY, - int reuse_addr = 0, - int flags = O_RDWR, - int perms = 0); - - /** - * This is a variation on the previous method. On cached - * connectors the @a svc_handler_hint variable can be used as a hint - * for future lookups. Since this variable is modified in the - * context of the internal cache its use is thread-safe. But the - * actual svc_handler for the current connection is returned in the - * second parameter @a svc_handler. If the connection fails the - * hook on the will be called automatically to - * prevent resource leaks. - */ - virtual int connect (SVC_HANDLER *&svc_handler_hint, - SVC_HANDLER *&svc_handler, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - const ACE_Synch_Options &synch_options = ACE_Synch_Options::defaults, - const ACE_PEER_CONNECTOR_ADDR &local_addr - = (peer_addr_type &) ACE_PEER_CONNECTOR_ADDR_ANY, - int reuse_addr = 0, - int flags = O_RDWR, - int perms = 0); - - /** - * Initiate connection of @a n @a svc_handlers to peers at - * @a remote_addrs using @a synch_options. Returns -1 if failure - * occurs and 0 otherwise. If @a failed_svc_handlers is non-NULL, a - * 1 is placed in the corresponding index of @a failed_svc_handlers - * for each that failed to connect, else a 0 is - * placed in that index. - */ - virtual int connect_n (size_t n, - SVC_HANDLER *svc_handlers[], - ACE_PEER_CONNECTOR_ADDR remote_addrs[], - ACE_TCHAR *failed_svc_handlers = 0, - const ACE_Synch_Options &synch_options = - ACE_Synch_Options::defaults); - - /** - * Cancel the @a svc_handler that was started asynchronously. Note that - * this is the only case when the Connector does not actively close - * the @a svc_handler. It is left up to the caller of to - * decide the fate of the @a svc_handler. - */ - virtual int cancel (SVC_HANDLER *svc_handler); - - /// Close down the Connector. All pending non-blocking connects are - /// canceled and the corresponding svc_handler is closed. - virtual int close (void); - - /// Return the underlying PEER_CONNECTOR object. - virtual ACE_PEER_CONNECTOR &connector (void) const; - - /// Initialize Svc_Handler. - virtual void initialize_svc_handler (ACE_HANDLE handle, - SVC_HANDLER *svc_handler); - - /// Set Reactor. - virtual void reactor (ACE_Reactor *reactor); - - /// Get Reactor. - virtual ACE_Reactor *reactor (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - // = Helpful typedefs. - typedef ACE_NonBlocking_Connect_Handler NBCH; - - // = The following two methods define the Connector's strategies for - // creating, connecting, and activating SVC_HANDLER's, respectively. - - /** - * Bridge method for creating a SVC_HANDLER. The default is to - * create a new SVC_HANDLER only if @a sh == 0, else @a sh is - * unchanged. However, subclasses can override this policy to - * perform SVC_HANDLER creation in any way that they like (such as - * creating subclass instances of SVC_HANDLER, using a singleton, - * dynamically linking the handler, etc.). Returns -1 if failure, - * else 0. - */ - virtual int make_svc_handler (SVC_HANDLER *&sh); - - /** - * Bridge method for connecting the @a svc_handler to the - * @a remote_addr. The default behavior delegates to the - * . - */ - virtual int connect_svc_handler (SVC_HANDLER *&svc_handler, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms); - virtual int connect_svc_handler (SVC_HANDLER *&svc_handler, - SVC_HANDLER *&sh_copy, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms); - - /** - * 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 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 creating the - * SVC_HANDLER as an "active object" via multi-threading or - * multi-processing). - */ - virtual int activate_svc_handler (SVC_HANDLER *svc_handler); - - /// Creates and registers ACE_NonBlocking_Connect_Handler. - int nonblocking_connect (SVC_HANDLER *, - const ACE_Synch_Options &); - - /// Implementation of the connect methods. - virtual int connect_i (SVC_HANDLER *&svc_handler, - SVC_HANDLER **sh_copy, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - const ACE_Synch_Options &synch_options, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms); - - /// Return the handle set representing the non-blocking connects in - /// progress. - ACE_Unbounded_Set &non_blocking_handles (void); - - // = Dynamic linking hooks. - /// Default version does no work and returns -1. Must be overloaded - /// by application developer to do anything meaningful. - virtual int init (int argc, ACE_TCHAR *argv[]); - - /// Calls handle_close() to shutdown the Connector gracefully. - virtual int fini (void); - - /// Default version returns address info in @a buf. - virtual int info (ACE_TCHAR **strp, size_t length) const; - - // = Service management hooks. - /// Default version does no work and returns -1. Must be overloaded - /// by application developer to do anything meaningful. - virtual int suspend (void); - - /// Default version does no work and returns -1. Must be overloaded - /// by application developer to do anything meaningful. - virtual int resume (void); - -private: - /// This is the peer connector factory. - ACE_PEER_CONNECTOR connector_; - - /** - * Flags that indicate 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. - */ - int flags_; - - /// Pointer to the Reactor. - ACE_Reactor *reactor_; - - /// Handle set representing the non-blocking connects in progress. - ACE_Unbounded_Set non_blocking_handles_; - -}; - -/** - * @class ACE_Strategy_Connector - * - * @brief Abstract factory for creating a service handler - * (SVC_HANDLER), connecting the SVC_HANDLER, and activating the - * SVC_HANDLER. - * - * Implements a flexible and extensible set of strategies for - * actively establishing connections with clients. There are - * three main strategies: (1) creating a SVC_HANDLER, (2) - * actively initiating a new connection from the client, - * and (3) activating the SVC_HANDLER with a - * particular concurrency mechanism after the connection is established. - */ -template -class ACE_Strategy_Connector - : public ACE_Connector -{ -public: - - // Useful STL-style traits. - typedef ACE_Creation_Strategy - creation_strategy_type; - typedef ACE_Connect_Strategy - connect_strategy_type; - typedef ACE_Concurrency_Strategy - concurrency_strategy_type; - typedef ACE_Connector - base_type; - - // = Define some useful (old style) traits. - typedef ACE_Creation_Strategy - CREATION_STRATEGY; - typedef ACE_Connect_Strategy - CONNECT_STRATEGY; - typedef ACE_Concurrency_Strategy - CONCURRENCY_STRATEGY; - typedef ACE_Connector - SUPER; - - /** - * Initialize a connector. @a flags indicates how '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. - */ - ACE_Strategy_Connector (ACE_Reactor *r = ACE_Reactor::instance (), - ACE_Creation_Strategy * = 0, - ACE_Connect_Strategy * = 0, - ACE_Concurrency_Strategy * = 0, - int flags = 0); - - /** - * 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. - * Default strategies would be created and used. - */ - virtual int open (ACE_Reactor *r, - int flags); - - /** - * 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. - */ - virtual int open (ACE_Reactor *r = ACE_Reactor::instance (), - ACE_Creation_Strategy * = 0, - ACE_Connect_Strategy * = 0, - ACE_Concurrency_Strategy * = 0, - int flags = 0); - - /// Shutdown a connector and release resources. - virtual ~ACE_Strategy_Connector (void); - - /// Close down the Connector - virtual int close (void); - - // = Strategies accessors - virtual ACE_Creation_Strategy *creation_strategy (void) const; - virtual ACE_Connect_Strategy *connect_strategy (void) const; - virtual ACE_Concurrency_Strategy *concurrency_strategy (void) const; - -protected: - // = The following three methods define the 's strategies - // for creating, connecting, and activating SVC_HANDLER's, - // respectively. - - /** - * Bridge method for creating a SVC_HANDLER. The strategy for - * creating a SVC_HANDLER are configured into the Connector via - * it's . The default is to create a new - * SVC_HANDLER only if @a sh == 0, else @a sh is unchanged. - * However, subclasses can override this policy to perform - * SVC_HANDLER creation in any way that they like (such as - * creating subclass instances of SVC_HANDLER, using a singleton, - * dynamically linking the handler, etc.). Returns -1 if failure, - * else 0. - */ - virtual int make_svc_handler (SVC_HANDLER *&sh); - - /** - * Bridge method for connecting the new connection into the - * SVC_HANDLER. The default behavior delegates to the - * in the . - */ - virtual int connect_svc_handler (SVC_HANDLER *&sh, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms); - - /** - * Bridge method for connecting the new connection into the - * SVC_HANDLER. The default behavior delegates to the - * in the . - * @a sh_copy is used to obtain a copy of the @a sh pointer, but that - * can be kept in the stack; the motivation is a bit too long to - * include here, but basically we want to modify @a sh safely, using - * the internal locks in the Connect_Strategy, while saving a TSS - * copy in @a sh_copy, usually located in the stack. - */ - virtual int connect_svc_handler (SVC_HANDLER *&sh, - SVC_HANDLER *&sh_copy, - const ACE_PEER_CONNECTOR_ADDR &remote_addr, - ACE_Time_Value *timeout, - const ACE_PEER_CONNECTOR_ADDR &local_addr, - int reuse_addr, - int flags, - int perms); - - /** - * Bridge method for activating a SVC_HANDLER with the appropriate - * concurrency strategy. The default behavior of this method is to - * activate the SVC_HANDLER by calling its 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 creating the - * SVC_HANDLER as an "active object" via multi-threading or - * multi-processing). - */ - virtual int activate_svc_handler (SVC_HANDLER *svc_handler); - - // = Strategy objects. - - /// Creation strategy for an Connector. - CREATION_STRATEGY *creation_strategy_; - - /// 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 - /// delete it, else false. - bool delete_connect_strategy_; - - /// Concurrency strategy for an . - CONCURRENCY_STRATEGY *concurrency_strategy_; - - /// true if Connector created the concurrency strategy and thus should - /// delete it, else false. - bool delete_concurrency_strategy_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Connector.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Connector.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_CONNECTOR_H */ diff --git a/ACE/ace/Containers.cpp b/ACE/ace/Containers.cpp deleted file mode 100644 index 2904225a3c9..00000000000 --- a/ACE/ace/Containers.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#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.h b/ACE/ace/Containers.h deleted file mode 100644 index 8fd886394b0..00000000000 --- a/ACE/ace/Containers.h +++ /dev/null @@ -1,71 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Containers.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_CONTAINERS_H -#define ACE_CONTAINERS_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template class ACE_Double_Linked_List; -template class ACE_Double_Linked_List_Iterator_Base; -template class ACE_Double_Linked_List_Iterator; -template class ACE_Double_Linked_List_Reverse_Iterator; - -/** - * @class ACE_DLList_Node - * - * @brief Base implementation of element in a DL list. Needed for - * ACE_Double_Linked_List. - */ -class ACE_Export ACE_DLList_Node -{ -public: - friend class ACE_Double_Linked_List; - friend class ACE_Double_Linked_List_Iterator_Base; - friend class ACE_Double_Linked_List_Iterator; - friend class ACE_Double_Linked_List_Reverse_Iterator; - - ACE_DLList_Node (void *i, - ACE_DLList_Node *n = 0, - ACE_DLList_Node *p = 0); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - void *item_; - - ACE_DLList_Node *next_; - ACE_DLList_Node *prev_; - -protected: - ACE_DLList_Node (void); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Containers.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Containers_T.h" - -#include /**/ "ace/post.h" - -#endif /* ACE_CONTAINERS_H */ diff --git a/ACE/ace/Containers.inl b/ACE/ace/Containers.inl deleted file mode 100644 index 01b7a243891..00000000000 --- a/ACE/ace/Containers.inl +++ /dev/null @@ -1,25 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_DLList_Node::ACE_DLList_Node (void) - : item_ (0), - next_ (0), - prev_ (0) -{ -} - -ACE_INLINE -ACE_DLList_Node::ACE_DLList_Node (void *i, - ACE_DLList_Node *n, - ACE_DLList_Node *p) - : item_ (i), - next_ (n), - prev_ (p) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Containers_T.cpp b/ACE/ace/Containers_T.cpp deleted file mode 100644 index c28e3e1fc41..00000000000 --- a/ACE/ace/Containers_T.cpp +++ /dev/null @@ -1,1930 +0,0 @@ -// $Id$ - -#ifndef ACE_CONTAINERS_T_CPP -#define ACE_CONTAINERS_T_CPP - -#include "ace/Log_Msg.h" -#include "ace/Malloc_Base.h" -#include "ace/OS_Memory.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Containers.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Containers_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Bounded_Stack) - -template void -ACE_Bounded_Stack::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Bounded_Stack::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Bounded_Stack::ACE_Bounded_Stack (size_t size) - : size_ (size), - top_ (0) -{ - ACE_NEW (this->stack_, - T[size]); - ACE_TRACE ("ACE_Bounded_Stack::ACE_Bounded_Stack"); -} - -template -ACE_Bounded_Stack::ACE_Bounded_Stack (const ACE_Bounded_Stack &s) - : size_ (s.size_), - top_ (s.top_) -{ - ACE_NEW (this->stack_, - T[s.size_]); - - ACE_TRACE ("ACE_Bounded_Stack::ACE_Bounded_Stack"); - - for (size_t i = 0; i < this->top_; i++) - this->stack_[i] = s.stack_[i]; -} - -template void -ACE_Bounded_Stack::operator= (const ACE_Bounded_Stack &s) -{ - ACE_TRACE ("ACE_Bounded_Stack::operator="); - - if (&s != this) - { - if (this->size_ < s.size_) - { - delete [] this->stack_; - ACE_NEW (this->stack_, - T[s.size_]); - this->size_ = s.size_; - } - this->top_ = s.top_; - - for (size_t i = 0; i < this->top_; i++) - this->stack_[i] = s.stack_[i]; - } -} - -template -ACE_Bounded_Stack::~ACE_Bounded_Stack (void) -{ - ACE_TRACE ("ACE_Bounded_Stack::~ACE_Bounded_Stack"); - delete [] this->stack_; -} - -// ---------------------------------------- - -ACE_ALLOC_HOOK_DEFINE(ACE_Fixed_Stack) - -template void -ACE_Fixed_Stack::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Fixed_Stack::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Fixed_Stack::ACE_Fixed_Stack (void) - : size_ (ACE_SIZE), - top_ (0) -{ - ACE_TRACE ("ACE_Fixed_Stack::ACE_Fixed_Stack"); -} - -template -ACE_Fixed_Stack::ACE_Fixed_Stack (const ACE_Fixed_Stack &s) - : size_ (s.size_), - top_ (s.top_) -{ - ACE_TRACE ("ACE_Fixed_Stack::ACE_Fixed_Stack"); - for (size_t i = 0; i < this->top_; i++) - this->stack_[i] = s.stack_[i]; -} - -template void -ACE_Fixed_Stack::operator= (const ACE_Fixed_Stack &s) -{ - ACE_TRACE ("ACE_Fixed_Stack::operator="); - - if (&s != this) - { - this->top_ = s.top_; - - for (size_t i = 0; i < this->top_; i++) - this->stack_[i] = s.stack_[i]; - } -} - -template -ACE_Fixed_Stack::~ACE_Fixed_Stack (void) -{ - ACE_TRACE ("ACE_Fixed_Stack::~ACE_Fixed_Stack"); -} - -//---------------------------------------- - -ACE_ALLOC_HOOK_DEFINE(ACE_Unbounded_Stack) - -template void -ACE_Unbounded_Stack::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - // ACE_TRACE ("ACE_Unbounded_Stack::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Unbounded_Stack::ACE_Unbounded_Stack (ACE_Allocator *alloc) - : head_ (0), - cur_size_ (0), - allocator_ (alloc) -{ - // ACE_TRACE ("ACE_Unbounded_Stack::ACE_Unbounded_Stack"); - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); - - ACE_NEW_MALLOC (this->head_, - (ACE_Node *) this->allocator_->malloc (sizeof (ACE_Node)), - ACE_Node); - this->head_->next_ = this->head_; -} - -template void -ACE_Unbounded_Stack::delete_all_nodes (void) -{ - // ACE_TRACE ("ACE_Unbounded_Stack::delete_all_nodes"); - - while (this->is_empty () == 0) - { - ACE_Node *temp = this->head_->next_; - this->head_->next_ = temp->next_; - ACE_DES_FREE_TEMPLATE (temp, this->allocator_->free, - ACE_Node, ); - } - - this->cur_size_ = 0; - - ACE_ASSERT (this->head_ == this->head_->next_ - && this->is_empty ()); -} - -template void -ACE_Unbounded_Stack::copy_all_nodes (const ACE_Unbounded_Stack &s) -{ - // ACE_TRACE ("ACE_Unbounded_Stack::copy_all_nodes"); - - ACE_ASSERT (this->head_ == this->head_->next_); - - ACE_Node *temp = this->head_; - - for (ACE_Node *s_temp = s.head_->next_; - s_temp != s.head_; - s_temp = s_temp->next_) - { - ACE_Node *nptr = temp->next_; - ACE_NEW_MALLOC (temp->next_, - (ACE_Node *) this->allocator_->malloc (sizeof (ACE_Node)), - ACE_Node (s_temp->item_, nptr)); - temp = temp->next_; - } - this->cur_size_ = s.cur_size_; -} - -template -ACE_Unbounded_Stack::ACE_Unbounded_Stack (const ACE_Unbounded_Stack &s) - : head_ (0), - cur_size_ (0), - allocator_ (s.allocator_) -{ - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); - - ACE_NEW_MALLOC (this->head_, - (ACE_Node *) this->allocator_->malloc (sizeof (ACE_Node)), - ACE_Node); - this->head_->next_ = this->head_; - - // ACE_TRACE ("ACE_Unbounded_Stack::ACE_Unbounded_Stack"); - this->copy_all_nodes (s); -} - -template void -ACE_Unbounded_Stack::operator= (const ACE_Unbounded_Stack &s) -{ - // ACE_TRACE ("ACE_Unbounded_Stack::operator="); - - if (this != &s) - { - this->delete_all_nodes (); - this->copy_all_nodes (s); - } -} - -template -ACE_Unbounded_Stack::~ACE_Unbounded_Stack (void) -{ - // ACE_TRACE ("ACE_Unbounded_Stack::~ACE_Unbounded_Stack"); - - this->delete_all_nodes (); - ACE_DES_FREE_TEMPLATE (head_, - this->allocator_->free, - ACE_Node, - ); -} - -template int -ACE_Unbounded_Stack::push (const T &new_item) -{ - // ACE_TRACE ("ACE_Unbounded_Stack::push"); - - ACE_Node *temp = 0; - - ACE_NEW_MALLOC_RETURN (temp, - static_cast *> (this->allocator_->malloc (sizeof (ACE_Node))), - ACE_Node (new_item, this->head_->next_), - -1); - this->head_->next_ = temp; - ++this->cur_size_; - return 0; -} - -template int -ACE_Unbounded_Stack::pop (T &item) -{ - // ACE_TRACE ("ACE_Unbounded_Stack::pop"); - - if (this->is_empty ()) - return -1; - else - { - ACE_Node *temp = this->head_->next_; - item = temp->item_; - this->head_->next_ = temp->next_; - - ACE_DES_FREE_TEMPLATE (temp, - this->allocator_->free, - ACE_Node, - ); - --this->cur_size_; - return 0; - } -} - -template int -ACE_Unbounded_Stack::find (const T &item) const -{ - // ACE_TRACE ("ACE_Unbounded_Stack::find"); - // Set into the dummy node. - this->head_->item_ = item; - - ACE_Node *temp = this->head_->next_; - - // Keep looping until we find the item. - while (!(temp->item_ == item)) - temp = temp->next_; - - // If we found the dummy node then it's not really there, otherwise, - // it is there. - return temp == this->head_ ? -1 : 0; -} - -template int -ACE_Unbounded_Stack::insert (const T &item) -{ - // ACE_TRACE ("ACE_Unbounded_Stack::insert"); - - if (this->find (item) == 0) - return 1; - else - return this->push (item); -} - -template int -ACE_Unbounded_Stack::remove (const T &item) -{ - // ACE_TRACE ("ACE_Unbounded_Stack::remove"); - - // Insert the item to be founded into the dummy node. - this->head_->item_ = item; - - ACE_Node *curr = this->head_; - - while (!(curr->next_->item_ == item)) - curr = curr->next_; - - if (curr->next_ == this->head_) - return -1; // Item was not found. - else - { - ACE_Node *temp = curr->next_; - // Skip over the node that we're deleting. - curr->next_ = temp->next_; - --this->cur_size_; - ACE_DES_FREE_TEMPLATE (temp, - this->allocator_->free, - ACE_Node, - ); - return 0; - } -} - -//-------------------------------------------------- -ACE_ALLOC_HOOK_DEFINE(ACE_Double_Linked_List_Iterator_Base) - -template -ACE_Double_Linked_List_Iterator_Base::ACE_Double_Linked_List_Iterator_Base (const ACE_Double_Linked_List &dll) - : current_ (0), dllist_ (&dll) -{ - // Do nothing -} - -template -ACE_Double_Linked_List_Iterator_Base::ACE_Double_Linked_List_Iterator_Base (const ACE_Double_Linked_List_Iterator_Base &iter) - : current_ (iter.current_), - dllist_ (iter.dllist_) -{ - // Do nothing -} - - -template T * -ACE_Double_Linked_List_Iterator_Base::next (void) const -{ - return this->not_done (); -} - -template int -ACE_Double_Linked_List_Iterator_Base::next (T *&ptr) const -{ - ptr = this->not_done (); - return ptr ? 1 : 0; -} - - -template int -ACE_Double_Linked_List_Iterator_Base::done (void) const -{ - return this->not_done () ? 0 : 1; -} - -template T & -ACE_Double_Linked_List_Iterator_Base::operator* (void) const -{ - return *(this->not_done ()); -} - -// @@ Is this a valid retasking? Make sure to check with Purify and -// whatnot that we're not leaking memory or doing any other screwing things. -template void -ACE_Double_Linked_List_Iterator_Base::reset (ACE_Double_Linked_List &dll) -{ - current_ = 0; - dllist_ = &dll; -} - - template int -ACE_Double_Linked_List_Iterator_Base::go_head (void) -{ - this->current_ = static_cast (dllist_->head_->next_); - return this->current_ ? 1 : 0; -} - -template int -ACE_Double_Linked_List_Iterator_Base::go_tail (void) -{ - this->current_ = static_cast (dllist_->head_->prev_); - return this->current_ ? 1 : 0; -} - -template T * -ACE_Double_Linked_List_Iterator_Base::not_done (void) const -{ - if (this->current_ != this->dllist_->head_) - return this->current_; - else - return 0; -} - -template T * -ACE_Double_Linked_List_Iterator_Base::do_advance (void) -{ - if (this->not_done ()) - { - this->current_ = static_cast (this->current_->next_); - return this->not_done (); - } - else - return 0; -} - -template T * -ACE_Double_Linked_List_Iterator_Base::do_retreat (void) -{ - if (this->not_done ()) - { - this->current_ = static_cast (this->current_->prev_); - return this->not_done (); - } - else - return 0; -} - -template void -ACE_Double_Linked_List_Iterator_Base::dump_i (void) const -{ - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("current_ = %x"), this->current_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -//-------------------------------------------------- -ACE_ALLOC_HOOK_DEFINE(ACE_Double_Linked_List_Iterator) - -template -ACE_Double_Linked_List_Iterator::ACE_Double_Linked_List_Iterator (const ACE_Double_Linked_List &dll) - : ACE_Double_Linked_List_Iterator_Base (dll) -{ - this->current_ = static_cast (dll.head_->next_); - // Advance current_ out of the null area and onto the first item in - // the list -} - -template void -ACE_Double_Linked_List_Iterator::reset (ACE_Double_Linked_List &dll) -{ - this->ACE_Double_Linked_List_Iterator_Base ::reset (dll); - this->current_ = static_cast (dll.head_->next_); - // Advance current_ out of the null area and onto the first item in - // the list -} - -template int -ACE_Double_Linked_List_Iterator::first (void) -{ - return this->go_head (); -} - -template int -ACE_Double_Linked_List_Iterator::advance (void) -{ - return this->do_advance () ? 1 : 0; -} - -template T* -ACE_Double_Linked_List_Iterator::advance_and_remove (int dont_remove) -{ - T* item = 0; - if (dont_remove) - this->do_advance (); - else - { - item = this->next (); - this->do_advance (); - // It seems dangerous to remove nodes in an iterator, but so it goes... - ACE_Double_Linked_List *dllist = - const_cast *> (this->dllist_); - dllist->remove (item); - } - return item; -} - -template void -ACE_Double_Linked_List_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -// Prefix advance. - -template -ACE_Double_Linked_List_Iterator & -ACE_Double_Linked_List_Iterator::operator++ (void) -{ - this->do_advance (); - return *this; -} - - -// Postfix advance. - -template -ACE_Double_Linked_List_Iterator -ACE_Double_Linked_List_Iterator::operator++ (int) -{ - ACE_Double_Linked_List_Iterator retv (*this); - this->do_advance (); - return retv; -} - - -// Prefix reverse. - -template -ACE_Double_Linked_List_Iterator & -ACE_Double_Linked_List_Iterator::operator-- (void) -{ - this->do_retreat (); - return *this; -} - - -// Postfix reverse. - -template -ACE_Double_Linked_List_Iterator -ACE_Double_Linked_List_Iterator::operator-- (int) -{ - ACE_Double_Linked_List_Iterator retv (*this); - this->do_retreat (); - return retv; -} - - -//-------------------------------------------------- -ACE_ALLOC_HOOK_DEFINE(ACE_Double_Linked_List_Reverse_Iterator) - - template -ACE_Double_Linked_List_Reverse_Iterator::ACE_Double_Linked_List_Reverse_Iterator (ACE_Double_Linked_List &dll) - : ACE_Double_Linked_List_Iterator_Base (dll) -{ - this->current_ = static_cast (dll.head_->prev_); - // Advance current_ out of the null area and onto the last item in - // the list -} - -template void -ACE_Double_Linked_List_Reverse_Iterator::reset (ACE_Double_Linked_List &dll) -{ - this->ACE_Double_Linked_List_Iterator_Base ::reset (dll); - this->current_ = static_cast (dll.head_->prev_); - // Advance current_ out of the null area and onto the last item in - // the list -} - -template int -ACE_Double_Linked_List_Reverse_Iterator::first (void) -{ - return this->go_tail (); -} - -template int -ACE_Double_Linked_List_Reverse_Iterator::advance (void) -{ - return this->do_retreat () ? 1 : 0; -} - -template T* -ACE_Double_Linked_List_Reverse_Iterator::advance_and_remove (int dont_remove) -{ - T* item = 0; - if (dont_remove) - this->do_retreat (); - else - { - item = this->next (); - this->do_retreat (); - // It seems dangerous to remove nodes in an iterator, but so it goes... - ACE_Double_Linked_List *dllist = - const_cast *> (this->dllist_); - dllist->remove (item); - } - return item; -} - -template void -ACE_Double_Linked_List_Reverse_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -// Prefix advance. - -template -ACE_Double_Linked_List_Reverse_Iterator & -ACE_Double_Linked_List_Reverse_Iterator::operator++ (void) -{ - this->do_retreat (); - return *this; -} - - -// Postfix advance. - -template -ACE_Double_Linked_List_Reverse_Iterator -ACE_Double_Linked_List_Reverse_Iterator::operator++ (int) -{ - ACE_Double_Linked_List_Reverse_Iterator retv (*this); - this->do_retreat (); - return retv; -} - - -// Prefix reverse. - -template -ACE_Double_Linked_List_Reverse_Iterator & -ACE_Double_Linked_List_Reverse_Iterator::operator-- (void) -{ - this->do_advance (); - return *this; -} - - -// Postfix reverse. - -template -ACE_Double_Linked_List_Reverse_Iterator -ACE_Double_Linked_List_Reverse_Iterator::operator-- (int) -{ - ACE_Double_Linked_List_Reverse_Iterator retv (*this); - this->do_advance (); - return retv; -} - - -ACE_ALLOC_HOOK_DEFINE(ACE_Double_Linked_List) - - template -ACE_Double_Linked_List:: ACE_Double_Linked_List (ACE_Allocator *alloc) - : size_ (0), allocator_ (alloc) -{ - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); - - ACE_NEW_MALLOC (this->head_, - (T *) this->allocator_->malloc (sizeof (T)), - T); - this->init_head (); -} - -template -ACE_Double_Linked_List::ACE_Double_Linked_List (const ACE_Double_Linked_List &cx) - : allocator_ (cx.allocator_) -{ - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); - - ACE_NEW_MALLOC (this->head_, - (T *) this->allocator_->malloc (sizeof (T)), - T); - this->init_head (); - this->copy_nodes (cx); - this->size_ = cx.size_; -} - -template void -ACE_Double_Linked_List::operator= (const ACE_Double_Linked_List &cx) -{ - if (this != &cx) - { - this->delete_nodes (); - this->copy_nodes (cx); - } -} - -template -ACE_Double_Linked_List::~ACE_Double_Linked_List (void) -{ - this->delete_nodes (); - - ACE_DES_FREE (head_, - this->allocator_->free, - T); - - this->head_ = 0; -} - -template int -ACE_Double_Linked_List::is_empty (void) const -{ - return this->size () ? 0 : 1; -} - -template int -ACE_Double_Linked_List::is_full (void) const -{ - return 0; // We have no bound. -} - -template T * -ACE_Double_Linked_List::insert_tail (T *new_item) -{ - // Insert it before , i.e., at tail. - this->insert_element (new_item, 1); - return new_item; -} - -template T * -ACE_Double_Linked_List::insert_head (T *new_item) -{ - this->insert_element (new_item); // Insert it after , i.e., at head. - return new_item; -} - -template T * -ACE_Double_Linked_List::delete_head (void) -{ - if (this->is_empty ()) - return 0; - - T *temp = static_cast (this->head_->next_); - // Detach it from the list. - this->remove_element (temp); - return temp; -} - -template T * -ACE_Double_Linked_List::delete_tail (void) -{ - if (this->is_empty ()) - return 0; - - T *temp = static_cast (this->head_->prev_); - // Detach it from the list. - this->remove_element (temp); - return temp; -} - -template void -ACE_Double_Linked_List::reset (void) -{ - this->delete_nodes (); -} - -template int -ACE_Double_Linked_List::get (T *&item, size_t slot) -{ - ACE_Double_Linked_List_Iterator iter (*this); - - for (size_t i = 0; - i < slot && !iter.done (); - i++) - iter.advance (); - - item = iter.next (); - return item ? 0 : -1; -} - -template size_t -ACE_Double_Linked_List::size (void) const -{ - return this->size_; -} - -template void -ACE_Double_Linked_List::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - // Dump the state of an object. -#endif /* ACE_HAS_DUMP */ -} - -#if 0 -template T * -ACE_Double_Linked_List::find (const T &item) -{ - for (ACE_Double_Linked_List_Iterator iter (*this); - !iter.done (); - iter.advance ()) - { - T *temp = iter.next (); - - if (*temp == item) - return temp; - } - - return 0; -} - -template int -ACE_Double_Linked_List::remove (const T &item) -{ - T *temp = this->find (item); - - if (temp != 0) - return this->remove (temp); - else - return -1; -} -#endif /* 0 */ - -template int -ACE_Double_Linked_List::remove (T *n) -{ - return this->remove_element (n); -} - -template void -ACE_Double_Linked_List::delete_nodes (void) -{ - while (! this->is_empty ()) - { - T * temp = static_cast (this->head_->next_); - this->remove_element (temp); - ACE_DES_FREE (temp, - this->allocator_->free, - T); - } -} - -template void -ACE_Double_Linked_List::copy_nodes (const ACE_Double_Linked_List &c) -{ - for (ACE_Double_Linked_List_Iterator iter (c); - !iter.done (); - iter.advance ()) - { - T* temp = 0; - ACE_NEW_MALLOC (temp, - (T *)this->allocator_->malloc (sizeof (T)), - T (*iter.next ())); - this->insert_tail (temp); - } -} - -template void -ACE_Double_Linked_List::init_head (void) -{ - this->head_->next_ = this->head_; - this->head_->prev_ = this->head_; -} - -template int -ACE_Double_Linked_List::insert_element (T *new_item, - int before, - T *old_item) -{ - if (old_item == 0) - old_item = this->head_; - - if (before) - old_item = static_cast (old_item->prev_); - - new_item->next_ = old_item->next_; - new_item->next_->prev_ = new_item; - new_item->prev_ = old_item; - old_item->next_ = new_item; - ++this->size_; - return 0; // Well, what will cause errors here? -} - -template int -ACE_Double_Linked_List::remove_element (T *item) -{ - // Notice that you have to ensure that item is an element of this - // list. We can't do much checking here. - - if (item == this->head_ || item->next_ == 0 - || item->prev_ == 0 || this->size () == 0) // Can't remove head - return -1; - - item->prev_->next_ = item->next_; - item->next_->prev_ = item->prev_; - item->next_ = item->prev_ = 0; // reset pointers to prevent double removal. - --this->size_; - return 0; -} - -//-------------------------------------------------- -ACE_ALLOC_HOOK_DEFINE(ACE_Fixed_Set) - -template size_t -ACE_Fixed_Set::size (void) const -{ - ACE_TRACE ("ACE_Fixed_Set::size"); - return this->cur_size_; -} - -template void -ACE_Fixed_Set::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Fixed_Set::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Fixed_Set::~ACE_Fixed_Set (void) -{ - ACE_TRACE ("ACE_Fixed_Set::~ACE_Fixed_Set"); - this->cur_size_ = 0; -} - -template -ACE_Fixed_Set::ACE_Fixed_Set (const ACE_Fixed_Set &fs) - : cur_size_ (fs.cur_size_) -{ - ACE_TRACE ("ACE_Fixed_Set::ACE_Fixed_Set"); - - for (size_t i = 0, j = 0; i < fs.max_size_ && j < this->cur_size_; ++i) - if (fs.search_structure_[i].is_free_ == 0) - this->search_structure_[j++] = fs.search_structure_[i]; -} - -template void -ACE_Fixed_Set::operator= (const ACE_Fixed_Set &fs) -{ - ACE_TRACE ("ACE_Fixed_Set::operator="); - - if (this != &fs) - { - this->cur_size_ = fs.cur_size_; - - for (size_t i = 0, j = 0; i < fs.max_size_ && j < this->cur_size_; ++i) - if (fs.search_structure_[i].is_free_ == 0) - this->search_structure_[j++] = fs.search_structure_[i]; - } -} - -template -ACE_Fixed_Set::ACE_Fixed_Set (void) - : cur_size_ (0), - max_size_ (ACE_SIZE) -{ - ACE_TRACE ("ACE_Fixed_Set::ACE_Fixed_Set"); - for (size_t i = 0; i < this->max_size_; i++) - this->search_structure_[i].is_free_ = 1; -} - -template int -ACE_Fixed_Set::find (const T &item) const -{ - ACE_TRACE ("ACE_Fixed_Set::find"); - - for (size_t i = 0, j = 0; i < this->max_size_ && j < this->cur_size_; ++i) - if (this->search_structure_[i].is_free_ == 0) - { - if (this->search_structure_[i].item_ == item) - return 0; - ++j; - } - - return -1; -} - -template int -ACE_Fixed_Set::insert (const T &item) -{ - ACE_TRACE ("ACE_Fixed_Set::insert"); - ssize_t first_free = -1; // Keep track of first free slot. - size_t i; - - for (i = 0; - i < this->max_size_ && first_free == -1; - ++i) - - // First, make sure we don't allow duplicates. - - if (this->search_structure_[i].is_free_ == 0) - { - if (this->search_structure_[i].item_ == item) - return 1; - } - else - first_free = static_cast (i); - - // If we found a free spot let's reuse it. - - if (first_free > -1) - { - this->search_structure_[first_free].item_ = item; - this->search_structure_[first_free].is_free_ = 0; - this->cur_size_++; - return 0; - } - else /* No more room! */ - { - errno = ENOMEM; - return -1; - } -} - -template int -ACE_Fixed_Set::remove (const T &item) -{ - ACE_TRACE ("ACE_Fixed_Set::remove"); - - for (size_t i = 0, j = 0; - i < this->max_size_ && j < this->cur_size_; - ++i) - if (this->search_structure_[i].is_free_ == 0) - { - if (this->search_structure_[i].item_ == item) - { - // Mark this entry as being free. - this->search_structure_[i].is_free_ = 1; - - --this->cur_size_; - return 0; - } - else - ++j; - } - - return -1; -} - -//-------------------------------------------------- -ACE_ALLOC_HOOK_DEFINE(ACE_Fixed_Set_Iterator_Base) - -template void -ACE_Fixed_Set_Iterator_Base::dump_i (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Fixed_Set_Iterator_Base::dump_i"); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Fixed_Set_Iterator_Base::ACE_Fixed_Set_Iterator_Base (ACE_Fixed_Set &s) - : s_ (s), - next_ (-1), - iterated_items_ (0) -{ - ACE_TRACE ("ACE_Fixed_Set_Iterator_Base::ACE_Fixed_Set_Iterator_Base"); - this->advance (); -} - -template int -ACE_Fixed_Set_Iterator_Base::advance (void) -{ - ACE_TRACE ("ACE_Fixed_Set_Iterator_Base::advance"); - - if (this->iterated_items_ < this->s_.cur_size_) - { - for (++this->next_; - static_cast (this->next_) < this->s_.max_size_; - ++this->next_) - if (this->s_.search_structure_[this->next_].is_free_ == 0) - { - ++this->iterated_items_; - return 1; - } - } - else - ++this->next_; - - return 0; -} - -template int -ACE_Fixed_Set_Iterator_Base::first (void) -{ - ACE_TRACE ("ACE_Fixed_Set_Iterator_Base::first"); - - next_ = -1; - iterated_items_ = 0; - return this->advance (); -} - -template int -ACE_Fixed_Set_Iterator_Base::done (void) const -{ - ACE_TRACE ("ACE_Fixed_Set_Iterator_Base::done"); - - return ! (this->iterated_items_ < this->s_.cur_size_); -} - -template int -ACE_Fixed_Set_Iterator_Base::next_i (T *&item) -{ - ACE_TRACE ("ACE_Fixed_Set_Iterator_Base::next_i"); - - if (static_cast (this->next_) < this->s_.max_size_) - do - { - if (this->s_.search_structure_[this->next_].is_free_ == 0) - { - item = &this->s_.search_structure_[this->next_].item_; - this->advance (); - return 1; - } - } - while (this->advance () == 1); - - return 0; -} - -//-------------------------------------------------- -ACE_ALLOC_HOOK_DEFINE(ACE_Fixed_Set_Iterator) - -template void -ACE_Fixed_Set_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Fixed_Set_Iterator::ACE_Fixed_Set_Iterator (ACE_Fixed_Set &s) - : ACE_Fixed_Set_Iterator_Base (s) -{ - ACE_TRACE ("ACE_Fixed_Set_Iterator::ACE_Fixed_Set_Iterator"); -} - -template int -ACE_Fixed_Set_Iterator::next (T *&item) -{ - ACE_TRACE ("ACE_Fixed_Set_Iterator::next"); - return this->next_i (item); -} - -template int -ACE_Fixed_Set_Iterator::remove (T *&item) -{ - ACE_TRACE ("ACE_Fixed_Set_Iterator::remove"); - - if (this->s_.search_structure_[this->next_].is_free_ == 0) - { - item = &this->s_.search_structure_[this->next_].item_; - this->s_.remove (*item); - --(this->iterated_items_); - return 1; - } - - return 0; -} - -template T& -ACE_Fixed_Set_Iterator::operator* (void) -{ - T *retv = 0; - - if (this->s_.search_structure_[this->next_].is_free_ == 0) - retv = &this->s_.search_structure_[this->next_].item_; - - ACE_ASSERT (retv != 0); - - return *retv; -} - -//-------------------------------------------------- -ACE_ALLOC_HOOK_DEFINE(ACE_Fixed_Set_Const_Iterator) - -template void -ACE_Fixed_Set_Const_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Fixed_Set_Const_Iterator::ACE_Fixed_Set_Const_Iterator (const ACE_Fixed_Set &s) - : ACE_Fixed_Set_Iterator_Base (s) -{ - ACE_TRACE ("ACE_Fixed_Set_Const_Iterator::ACE_Fixed_Set_Const_Iterator"); -} - -template int -ACE_Fixed_Set_Const_Iterator::next (const T *&item) -{ - ACE_TRACE ("ACE_Fixed_Set_Const_Iterator::next"); - - return this->next_i (item); -} - -template const T& -ACE_Fixed_Set_Const_Iterator::operator* (void) const -{ - const T *retv = 0; - - if (this->s_.search_structure_[this->next_].is_free_ == 0) - retv = &this->s_.search_structure_[this->next_].item_; - - ACE_ASSERT (retv != 0); - - return *retv; -} - -//-------------------------------------------------- -ACE_ALLOC_HOOK_DEFINE(ACE_Bounded_Set) - -template void -ACE_Bounded_Set::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Bounded_Set::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Bounded_Set::~ACE_Bounded_Set (void) -{ - ACE_TRACE ("ACE_Bounded_Set::~ACE_Bounded_Set"); - delete [] this->search_structure_; -} - -template -ACE_Bounded_Set::ACE_Bounded_Set (void) - : cur_size_ (0), - max_size_ (static_cast (ACE_Bounded_Set::DEFAULT_SIZE)) -{ - ACE_TRACE ("ACE_Bounded_Set::ACE_Bounded_Set"); - - ACE_NEW (this->search_structure_, - typename ACE_Bounded_Set::Search_Structure[this->max_size_]); - - for (size_t i = 0; i < this->max_size_; ++i) - this->search_structure_[i].is_free_ = 1; -} - -template size_t -ACE_Bounded_Set::size (void) const -{ - ACE_TRACE ("ACE_Bounded_Set::size"); - return this->cur_size_; -} - -template -ACE_Bounded_Set::ACE_Bounded_Set (const ACE_Bounded_Set &bs) - : cur_size_ (bs.cur_size_), - max_size_ (bs.max_size_) -{ - ACE_TRACE ("ACE_Bounded_Set::ACE_Bounded_Set"); - - ACE_NEW (this->search_structure_, - typename ACE_Bounded_Set::Search_Structure[this->max_size_]); - - for (size_t i = 0; i < this->cur_size_; i++) - this->search_structure_[i] = bs.search_structure_[i]; -} - -template void -ACE_Bounded_Set::operator= (const ACE_Bounded_Set &bs) -{ - ACE_TRACE ("ACE_Bounded_Set::operator="); - - if (this != &bs) - { - if (this->max_size_ < bs.cur_size_) - { - delete [] this->search_structure_; - ACE_NEW (this->search_structure_, - typename ACE_Bounded_Set::Search_Structure[bs.cur_size_]); - this->max_size_ = bs.cur_size_; - } - - this->cur_size_ = bs.cur_size_; - - for (size_t i = 0; i < this->cur_size_; i++) - this->search_structure_[i] = bs.search_structure_[i]; - } -} - -template -ACE_Bounded_Set::ACE_Bounded_Set (size_t size) - : cur_size_ (0), - max_size_ (size) -{ - ACE_TRACE ("ACE_Bounded_Set::ACE_Bounded_Set"); - ACE_NEW (this->search_structure_, - typename ACE_Bounded_Set::Search_Structure[size]); - - for (size_t i = 0; i < this->max_size_; i++) - this->search_structure_[i].is_free_ = 1; -} - -template int -ACE_Bounded_Set::find (const T &item) const -{ - ACE_TRACE ("ACE_Bounded_Set::find"); - - for (size_t i = 0; i < this->cur_size_; i++) - if (this->search_structure_[i].item_ == item - && this->search_structure_[i].is_free_ == 0) - return 0; - - return -1; -} - -template int -ACE_Bounded_Set::insert (const T &item) -{ - ACE_TRACE ("ACE_Bounded_Set::insert"); - int first_free = -1; // Keep track of first free slot. - size_t i; - - for (i = 0; i < this->cur_size_; i++) - // First, make sure we don't allow duplicates. - - if (this->search_structure_[i].item_ == item - && this->search_structure_[i].is_free_ == 0) - return 1; - else if (this->search_structure_[i].is_free_ && first_free == -1) - first_free = static_cast (i); - - if (first_free > -1) // If we found a free spot let's reuse it. - { - this->search_structure_[first_free].item_ = item; - this->search_structure_[first_free].is_free_ = 0; - return 0; - } - else if (i < this->max_size_) // Insert at the end of the active portion. - { - this->search_structure_[i].item_ = item; - this->search_structure_[i].is_free_ = 0; - this->cur_size_++; - return 0; - } - else /* No more room! */ - { - errno = ENOMEM; - return -1; - } -} - -template int -ACE_Bounded_Set::remove (const T &item) -{ - ACE_TRACE ("ACE_Bounded_Set::remove"); - for (size_t i = 0; i < this->cur_size_; i++) - if (this->search_structure_[i].item_ == item) - { - // Mark this entry as being free. - this->search_structure_[i].is_free_ = 1; - - // If we just unbound the highest entry, then we need to - // figure out where the next highest active entry is. - if (i + 1 == this->cur_size_) - { - while (i > 0 && this->search_structure_[--i].is_free_) - continue; - - if (i == 0 && this->search_structure_[i].is_free_) - this->cur_size_ = 0; - else - this->cur_size_ = i + 1; - } - return 0; - } - - return -1; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Bounded_Set_Iterator) - - template void -ACE_Bounded_Set_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Bounded_Set_Iterator::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Bounded_Set_Iterator::ACE_Bounded_Set_Iterator (ACE_Bounded_Set &s) - : s_ (s), - next_ (-1) -{ - ACE_TRACE ("ACE_Bounded_Set_Iterator::ACE_Bounded_Set_Iterator"); - this->advance (); -} - -template int -ACE_Bounded_Set_Iterator::advance (void) -{ - ACE_TRACE ("ACE_Bounded_Set_Iterator::advance"); - - for (++this->next_; - static_cast (this->next_) < this->s_.cur_size_ - && this->s_.search_structure_[this->next_].is_free_; - ++this->next_) - continue; - - return static_cast (this->next_) < this->s_.cur_size_; -} - -template int -ACE_Bounded_Set_Iterator::first (void) -{ - ACE_TRACE ("ACE_Bounded_Set_Iterator::first"); - - next_ = -1; - return this->advance (); -} - -template int -ACE_Bounded_Set_Iterator::done (void) const -{ - ACE_TRACE ("ACE_Bounded_Set_Iterator::done"); - - return static_cast (this->next_) >= - this->s_.cur_size_; -} - -template int -ACE_Bounded_Set_Iterator::next (T *&item) -{ - ACE_TRACE ("ACE_Bounded_Set_Iterator::next"); - if (static_cast (this->next_) < this->s_.cur_size_) - { - item = &this->s_.search_structure_[this->next_].item_; - return 1; - } - else - return 0; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_DNode) - - template -ACE_DNode::ACE_DNode (const T &i, ACE_DNode *n, ACE_DNode *p) - : next_ (n), prev_ (p), item_ (i) -{ -} - -template -ACE_DNode::~ACE_DNode (void) -{ -} - -// **************************************************************** - -template void -ACE_Unbounded_Stack_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - // ACE_TRACE ("ACE_Unbounded_Stack_Iterator::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Unbounded_Stack_Iterator::ACE_Unbounded_Stack_Iterator (ACE_Unbounded_Stack &q) - : current_ (q.head_->next_), - stack_ (q) -{ - // ACE_TRACE ("ACE_Unbounded_Stack_Iterator::ACE_Unbounded_Stack_Iterator"); -} - -template int -ACE_Unbounded_Stack_Iterator::advance (void) -{ - // ACE_TRACE ("ACE_Unbounded_Stack_Iterator::advance"); - this->current_ = this->current_->next_; - return this->current_ != this->stack_.head_; -} - -template int -ACE_Unbounded_Stack_Iterator::first (void) -{ - // ACE_TRACE ("ACE_Unbounded_Stack_Iterator::first"); - this->current_ = this->stack_.head_->next_; - return this->current_ != this->stack_.head_; -} - -template int -ACE_Unbounded_Stack_Iterator::done (void) const -{ - ACE_TRACE ("ACE_Unbounded_Stack_Iterator::done"); - - return this->current_ == this->stack_.head_; -} - -template int -ACE_Unbounded_Stack_Iterator::next (T *&item) -{ - // ACE_TRACE ("ACE_Unbounded_Stack_Iterator::next"); - if (this->current_ == this->stack_.head_) - return 0; - else - { - item = &this->current_->item_; - return 1; - } -} - - -ACE_ALLOC_HOOK_DEFINE(ACE_Ordered_MultiSet) - - - template -ACE_Ordered_MultiSet::ACE_Ordered_MultiSet (ACE_Allocator *alloc) - : head_ (0) - , tail_ (0) - , cur_size_ (0) - , allocator_ (alloc) -{ - // ACE_TRACE ("ACE_Ordered_MultiSet::ACE_Ordered_MultiSet"); - - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); -} - -template -ACE_Ordered_MultiSet::ACE_Ordered_MultiSet (const ACE_Ordered_MultiSet &us) - : head_ (0) - , tail_ (0) - , cur_size_ (0) - , allocator_ (us.allocator_) -{ - ACE_TRACE ("ACE_Ordered_MultiSet::ACE_Ordered_MultiSet"); - - if (this->allocator_ == 0) - this->allocator_ = ACE_Allocator::instance (); - - this->copy_nodes (us); -} - -template -ACE_Ordered_MultiSet::~ACE_Ordered_MultiSet (void) -{ - // ACE_TRACE ("ACE_Ordered_MultiSet::~ACE_Ordered_MultiSet"); - - this->delete_nodes (); -} - - -template void -ACE_Ordered_MultiSet::operator= (const ACE_Ordered_MultiSet &us) -{ - ACE_TRACE ("ACE_Ordered_MultiSet::operator="); - - if (this != &us) - { - this->delete_nodes (); - this->copy_nodes (us); - } -} - - -template int -ACE_Ordered_MultiSet::insert (const T &item) -{ - // ACE_TRACE ("ACE_Ordered_MultiSet::insert"); - - return this->insert_from (item, this->head_, 0); -} - -template int -ACE_Ordered_MultiSet::insert (const T &new_item, - ITERATOR &iter) -{ - // ACE_TRACE ("ACE_Ordered_MultiSet::insert using iterator"); - - return this->insert_from (new_item, iter.current_, &iter.current_); -} - -template int -ACE_Ordered_MultiSet::remove (const T &item) -{ - // ACE_TRACE ("ACE_Ordered_MultiSet::remove"); - - ACE_DNode *node = 0; - - int result = locate (item, 0, node); - - // if we found the node, remove from list and free it - if (node && (result == 0)) - { - if (node->prev_) - node->prev_->next_ = node->next_; - else - head_ = node->next_; - - if (node->next_) - node->next_->prev_ = node->prev_; - else - tail_ = node->prev_; - - --this->cur_size_; - - ACE_DES_FREE_TEMPLATE (node, - this->allocator_->free, - ACE_DNode, - ); - return 0; - } - - return -1; -} - -template int -ACE_Ordered_MultiSet::find (const T &item, - ITERATOR &iter) const -{ - // search an occurance of item, using iterator's current position as a hint - ACE_DNode *node = iter.current_; - int const result = locate (item, node, node); - - // if we found the node, update the iterator and indicate success - if (node && (result == 0)) - { - iter.current_ = node; - return 0; - } - - return -1; -} - - - -template void -ACE_Ordered_MultiSet::reset (void) -{ - ACE_TRACE ("reset"); - - this->delete_nodes (); -} - -template void -ACE_Ordered_MultiSet::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - // ACE_TRACE ("ACE_Ordered_MultiSet::dump"); - // - // ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nhead_ = %u"), this->head_)); - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nhead_->next_ = %u"), this->head_->next_)); - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ncur_size_ = %d\n"), this->cur_size_)); - // - // T *item = 0; - // size_t count = 1; - // - // for (ACE_Ordered_MultiSet_Iterator iter (*(ACE_Ordered_MultiSet *) this); - // iter.next (item) != 0; - // iter.advance ()) - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("count = %d\n"), count++)); - // - // ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template int -ACE_Ordered_MultiSet::insert_from (const T &item, ACE_DNode *position, - ACE_DNode **new_position) -{ - // ACE_TRACE ("ACE_Ordered_MultiSet::insert_from"); - - // create a new node - ACE_DNode *temp = 0; - ACE_NEW_MALLOC_RETURN (temp, - static_cast*> (this->allocator_->malloc (sizeof (ACE_DNode))), - ACE_DNode (item), - -1); - // obtain approximate location of the node - int result = locate (item, position, position); - - // if there are nodes in the multiset - if (position) - { - switch (result) - { - // insert after the approximate position - case -1: - - // if there is a following node - if (position->next_) - { - // link up with the following node - position->next_->prev_ = temp; - temp->next_ = position->next_; - } - else - // appending to the end of the set - tail_ = temp; - - // link up with the preceeding node - temp->prev_ = position; - position->next_ = temp; - - break; - - // insert before the position - case 0: - case 1: - - // if there is a preceeding node - if (position->prev_) - { - // link up with the preceeding node - position->prev_->next_ = temp; - temp->prev_ = position->prev_; - } - else - // prepending to the start of the set - head_ = temp; - - // link up with the preceeding node - temp->next_ = position; - position->prev_ = temp; - - break; - - default: - return -1; - } - } - else - { - // point the head and tail to the new node. - this->head_ = temp; - this->tail_ = temp; - } - - ++this->cur_size_; - if (new_position) - *new_position = temp; - - return 0; -} - -template int -ACE_Ordered_MultiSet::locate (const T &item, ACE_DNode *start_position, - ACE_DNode *&new_position) const -{ - if (! start_position) - start_position = this->head_; - - // If starting before the item, move forward until at or just before - // item. - while (start_position && start_position->item_ < item && - start_position->next_) - start_position = start_position->next_; - - // If starting after the item, move back until at or just after item - while (start_position && item < start_position->item_ && - start_position->prev_) - start_position = start_position->prev_; - - // Save the (approximate) location in the passed pointer. - new_position = start_position; - - // Show the location is after (1), before (-1) , or at (0) the item - if (!new_position) - return 1; - else if (item < new_position->item_) - return 1; - else if (new_position->item_ < item) - return -1; - else - return 0; -} - -// Looks for first occurance of 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 -// where the item would have been, it updates the new_position pointer -// to point to this node and returns -1; if there is no such node, -// then if there is a node after where the item would have been, it -// updates the new_position pointer to point to this node (or 0 if -// there is no such node) and returns 1; - -template void -ACE_Ordered_MultiSet::copy_nodes (const ACE_Ordered_MultiSet &us) -{ - ACE_DNode *insertion_point = this->head_; - - for (ACE_DNode *curr = us.head_; - curr != 0; - curr = curr->next_) - this->insert_from (curr->item_, insertion_point, &insertion_point); -} - -template void -ACE_Ordered_MultiSet::delete_nodes (void) -{ - // iterate through list, deleting nodes - for (ACE_DNode *curr = this->head_; - curr != 0; - ) - { - ACE_DNode *temp = curr; - curr = curr->next_; - ACE_DES_FREE_TEMPLATE (temp, - this->allocator_->free, - ACE_DNode, - ); - } - - this->head_ = 0; - this->tail_ = 0; - this->cur_size_ = 0; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Ordered_MultiSet_Iterator) - -template -ACE_Ordered_MultiSet_Iterator::ACE_Ordered_MultiSet_Iterator (ACE_Ordered_MultiSet &s) - : current_ (s.head_), - set_ (s) -{ - // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator::ACE_Ordered_MultiSet_Iterator"); -} - -template int -ACE_Ordered_MultiSet_Iterator::next (T *&item) const -{ - // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator::next"); - if (this->current_) - { - item = &this->current_->item_; - return 1; - } - - return 0; -} - -template T& -ACE_Ordered_MultiSet_Iterator::operator* (void) -{ - //ACE_TRACE ("ACE_Ordered_MultiSet_Iterator::operator*"); - T *retv = 0; - - int const result = this->next (retv); - ACE_ASSERT (result != 0); - ACE_UNUSED_ARG (result); - - return *retv; -} - -ACE_ALLOC_HOOK_DEFINE (ACE_DLList_Node) - -template T * -ACE_DLList::insert_tail (T *new_item) -{ - ACE_DLList_Node *temp1 = 0; - ACE_NEW_MALLOC_RETURN (temp1, - static_cast (this->allocator_->malloc (sizeof (ACE_DLList_Node))), - ACE_DLList_Node (new_item), - 0); - ACE_DLList_Node *temp2 = ACE_DLList_Base::insert_tail (temp1); - return (T *) (temp2 ? temp2->item_ : 0); -} - -template T * -ACE_DLList::insert_head (T *new_item) -{ - ACE_DLList_Node *temp1 = 0; - ACE_NEW_MALLOC_RETURN (temp1, - (ACE_DLList_Node *) this->allocator_->malloc (sizeof (ACE_DLList_Node)), - ACE_DLList_Node (new_item), 0); - ACE_DLList_Node *temp2 = ACE_DLList_Base::insert_head (temp1); - return (T *) (temp2 ? temp2->item_ : 0); -} - -template T * -ACE_DLList::delete_head (void) -{ - ACE_DLList_Node *temp1 = ACE_DLList_Base::delete_head (); - T *temp2 = (T *) (temp1 ? temp1->item_ : 0); - ACE_DES_FREE (temp1, - this->allocator_->free, - ACE_DLList_Node); - - return temp2; -} - -template T * -ACE_DLList::delete_tail (void) -{ - ACE_DLList_Node *temp1 = ACE_DLList_Base::delete_tail (); - T *temp2 = (T *) (temp1 ? temp1->item_ : 0); - ACE_DES_FREE (temp1, - this->allocator_->free, - ACE_DLList_Node); - return temp2; -} - -// **************************************************************** - -// Compare this array with for equality. - -template bool -ACE_Array::operator== (const ACE_Array &s) const -{ - if (this == &s) - return true; - else if (this->size () != s.size ()) - return false; - - const size_t len = s.size (); - for (size_t slot = 0; slot < len; ++slot) - if ((*this)[slot] != s[slot]) - return false; - - return true; -} - -// **************************************************************** - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_CONTAINERS_T_CPP */ diff --git a/ACE/ace/Containers_T.h b/ACE/ace/Containers_T.h deleted file mode 100644 index fe0ec6e9cc0..00000000000 --- a/ACE/ace/Containers_T.h +++ /dev/null @@ -1,2024 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Containers_T.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_CONTAINERS_T_H -#define ACE_CONTAINERS_T_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// Need by ACE_DLList_Node. -#include "ace/Containers.h" - -// Shared with "ace/Unbounded_Set.h" -#include "ace/Node.h" - -// Backwards compatibility, please include "ace/Array_Base.h" directly. -#include "ace/Array_Base.h" - -// Backwards compatibility, please include "ace/Unbounded_Set.h" directly. -#include "ace/Unbounded_Set.h" - -// Backwards compatibility, please include "ace/Unbounded_Queue.h" directly. -#include "ace/Unbounded_Queue.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Allocator; - - -/** - * @class ACE_Bounded_Stack - * - * @brief Implement a generic LIFO abstract data type. - * - * This implementation of a Stack uses a bounded array - * that is allocated dynamically. The Stack interface - * provides the standard constant time push, pop, and top - * operations. - * - * Requirements and Performance Characteristics - * - Internal Structure - * Dynamic array - * - Duplicates allowed? - * Yes - * - Random access allowed? - * No - * - Search speed - * N/A - * - Insert/replace speed - * N/A - * - Iterator still valid after change to container? - * N/A - * - Frees memory for removed elements? - * No - * - Items inserted by - * Value - * - Requirements for contained type - * -# Default constructor - * -# Copy constructor - * -# operator= - * - */ -template -class ACE_Bounded_Stack -{ -public: - // = Initialization, assignment, and termination methods. - - /// Initialize a new empty stack with the provided size.. - /** - * Initialize and allocate space for a new Bounded_Stack with the provided - * size. - */ - ACE_Bounded_Stack (size_t size); - - /// Initialize the stack to be a copy of the stack provided. - /** - * Initialize the stack to be an exact copy of the Bounded_Stack provided - * as a parameter. - */ - ACE_Bounded_Stack (const ACE_Bounded_Stack &s); - - /// Assignment operator - /** - * Perform a deep copy operation using the Bounded_Stack parameter. If the - * capacity of the lhs isn't sufficient for the rhs, then the underlying data - * structure will be reallocated to accomadate the larger number of elements. - */ - void operator= (const ACE_Bounded_Stack &s); - - /// Perform actions needed when stack goes out of scope. - /** - * Deallocate the memory used by the Bounded_Stack. - */ - ~ACE_Bounded_Stack (void); - - // = Classic Stack operations. - - ///Add an element to the top of the stack. - /** - * Place a new item on top of the stack. Returns -1 if the stack - * is already full, 0 if the stack is not already full, and -1 if - * failure occurs. - */ - int push (const T &new_item); - - ///Remove an item from the top of stack. - /** - * Remove and return the top stack item. Returns -1 if the stack is - * already empty, 0 if the stack is not already empty, and -1 if - * failure occurs. - */ - int pop (T &item); - - ///Examine the contents of the top of stack. - /** - * Return top stack item without removing it. Returns -1 if the - * stack is already empty, 0 if the stack is not already empty, and - * -1 if failure occurs. - */ - int top (T &item) const; - - // = Check boundary conditions. - - /// Returns 1 if the container is empty, otherwise returns 0. - /** - * Performs constant time check to determine if the stack is empty. - */ - int is_empty (void) const; - - /// Returns 1 if the container is full, otherwise returns 0. - /** - * Performs constant time check to determine if the stack is at capacity. - */ - int is_full (void) const; - - /// The number of items in the stack. - /** - * Return the number of items currently in the stack. - */ - 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: - /// Size of the dynamically allocated data. - size_t size_; - - /// Keeps track of the current top of stack. - size_t top_; - - /// Holds the stack's contents. - T *stack_; -}; - -//---------------------------------------- - - -/** - * @class ACE_Fixed_Stack - * - * @brief Implement a generic LIFO abstract data type. - * - * This implementation of a Stack uses a fixed array - * with the size fixed at instantiation time. - * - * Requirements and Performance Characteristics - * - Internal Structure - * Fixed array - * - Duplicates allowed? - * Yes - * - Random access allowed? - * No - * - Search speed - * N/A - * - Insert/replace speed - * N/A - * - Iterator still valid after change to container? - * N/A - * - Frees memory for removed elements? - * No - * - Items inserted by - * Value - * - Requirements for contained type - * -# Default constructor - * -# Copy constructor - * -# operator= - * - */ -template -class ACE_Fixed_Stack -{ -public: - // = Initialization, assignment, and termination methods. - /// Initialize a new stack so that it is empty. - /** - * Initialize an empty stack. - */ - ACE_Fixed_Stack (void); - - /// The copy constructor (performs initialization). - /** - * Initialize the stack and copy the provided stack into the current stack. - */ - ACE_Fixed_Stack (const ACE_Fixed_Stack &s); - - /// Assignment operator (performs assignment). - /** - * Perform a deep copy of the provided stack. - */ - void operator= (const ACE_Fixed_Stack &s); - - /// Perform actions needed when stack goes out of scope. - /** - * Destroy the stack. - */ - ~ACE_Fixed_Stack (void); - - // = Classic Stack operations. - - ///Constant time placement of element on top of stack. - /** - * Place a new item on top of the stack. Returns -1 if the stack - * is already full, 0 if the stack is not already full, and -1 if - * failure occurs. - */ - int push (const T &new_item); - - ///Constant time removal of top of stack. - /** - * Remove and return the top stack item. Returns -1 if the stack is - * already empty, 0 if the stack is not already empty, and -1 if - * failure occurs. - */ - int pop (T &item); - - ///Constant time examination of top of stack. - /** - * Return top stack item without removing it. Returns -1 if the - * stack is already empty, 0 if the stack is not already empty, and - * -1 if failure occurs. - */ - int top (T &item) const; - - // = Check boundary conditions. - - /// Returns 1 if the container is empty, otherwise returns 0. - /** - * Performs constant time check to see if stack is empty. - */ - int is_empty (void) const; - - /// Returns 1 if the container is full, otherwise returns 0. - /** - * Performs constant time check to see if stack is full. - */ - int is_full (void) const; - - /// The number of items in the stack. - /** - * Constant time access to the current size of the stack. - */ - 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: - /// Size of the allocated data. - size_t size_; - - /// Keeps track of the current top of stack. - size_t top_; - - /// Holds the stack's contents. - T stack_[ACE_SIZE]; -}; - -//---------------------------------------- - -template class ACE_Ordered_MultiSet; -template class ACE_Ordered_MultiSet_Iterator; - -/** - * @class ACE_DNode - * - * @brief Implementation element in a bilinked list. - */ -template -class ACE_DNode -{ - friend class ACE_Ordered_MultiSet; - friend class ACE_Ordered_MultiSet_Iterator; - -public: - - /// This isn't necessary, but it keeps some compilers happy. - ~ACE_DNode (void); - -private: - - // = Initialization methods - ACE_DNode (const T &i, ACE_DNode *n = 0, ACE_DNode *p = 0); - - /// Pointer to next element in the list of {ACE_DNode}s. - ACE_DNode *next_; - - /// Pointer to previous element in the list of {ACE_DNode}s. - ACE_DNode *prev_; - - /// Current value of the item in this node. - T item_; -}; - - - -/** - * @class ACE_Unbounded_Stack - * - * @brief Implement a generic LIFO abstract data type. - * - * This implementation of an unbounded Stack uses a linked list. - * If you use the {insert} or {remove} methods you should keep - * in mind that duplicate entries aren't allowed. In general, - * therefore, you should avoid the use of these methods since - * they aren't really part of the ADT stack. The stack is implemented - * as a doubly linked list. - * - * Requirements and Performance Characteristics - * - Internal Structure - * Double linked list - * - Duplicates allowed? - * No - * - Random access allowed? - * No - * - Search speed - * Linear - * - Insert/replace speed - * Linear - * - Iterator still valid after change to container? - * Yes - * - Frees memory for removed elements? - * Yes - * - Items inserted by - * Value - * - Requirements for contained type - * -# Default constructor - * -# Copy constructor - * -# operator= - * - */ -template -class ACE_Unbounded_Stack -{ -public: - friend class ACE_Unbounded_Stack_Iterator; - - // Trait definition. - typedef ACE_Unbounded_Stack_Iterator ITERATOR; - - // = Initialization, assignment, and termination methods. - /// Initialize a new stack so that it is empty. Use user defined - /// allocation strategy if specified. - /** - * Initialize an empty stack using the user specified allocation strategy - * if provided. - */ - ACE_Unbounded_Stack (ACE_Allocator *the_allocator = 0); - - /// The copy constructor (performs initialization). - /** - * Initialize this stack to be an exact copy of {s}. - */ - ACE_Unbounded_Stack (const ACE_Unbounded_Stack &s); - - /// Assignment operator (performs assignment). - /** - * Perform a deep copy of the rhs into the lhs. - */ - void operator= (const ACE_Unbounded_Stack &s); - - /// Perform actions needed when stack goes out of scope. - /** - * Destroy the underlying list for the stack. - */ - ~ACE_Unbounded_Stack (void); - - // = Classic Stack operations. - - - ///Push an element onto the top of stack. - /** - * Place a new item on top of the stack. Returns -1 if the stack - * is already full, 0 if the stack is not already full, and -1 if - * failure occurs. - */ - int push (const T &new_item); - - ///Pop the top element of the stack. - /** - * Remove and return the top stack item. Returns -1 if the stack is - * already empty, 0 if the stack is not already empty, and -1 if - * failure occurs. - */ - int pop (T &item); - - ///Examine the top of the stack. - /** - * Return top stack item without removing it. Returns -1 if the - * stack is already empty, 0 if the stack is not already empty, and - * -1 if failure occurs. - */ - int top (T &item) const; - - // = Check boundary conditions. - - /// Returns 1 if the container is empty, otherwise returns 0. - /** - * Constant time check to see if the stack is empty. - */ - int is_empty (void) const; - - /// Returns 1 if the container is full, otherwise returns 0. - /** - * Always resturns 0 since the stack is unbounded. - */ - int is_full (void) const; - - // = Auxiliary methods (not strictly part of the Stack ADT). - - ///Linear Insert of an item. - /** - * Insert {new_item} into the Stack at the head (but doesn't allow - * duplicates). Returns -1 if failures occur, 1 if item is already - * present (i.e., no duplicates are allowed), else 0. - */ - int insert (const T &new_item); - - /// Remove @a item from the Stack. Returns 0 if it removes the item, - /// -1 if it can't find the item, and -1 if a failure occurs. - /** - * Linear remove operation. - */ - int remove (const T &item); - - /// Finds if @a item occurs the set. Returns 0 if finds, else -1. - /** - * Linear find operation. - */ - int find (const T &item) const; - - /// The number of items in the stack. - /** - * Constant time access to the current stack 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: - /// Delete all the nodes in the stack. - void delete_all_nodes (void); - - /// Copy all nodes from {s} to {this}. - void copy_all_nodes (const ACE_Unbounded_Stack &s); - - /// Head of the linked list of Nodes. - ACE_Node *head_; - - /// Current size of the stack. - size_t cur_size_; - - /// Allocation strategy of the stack. - ACE_Allocator *allocator_; -}; - -/** - * @class ACE_Unbounded_Stack_Iterator - * - * @brief Implement an iterator over an unbounded Stack. - */ -template -class ACE_Unbounded_Stack_Iterator -{ -public: - // = Initialization method. - /// Move to the first element in the {stack}. - ACE_Unbounded_Stack_Iterator (ACE_Unbounded_Stack &stack); - - // = Iteration methods. - - /// Pass back the @a next_item that hasn't been seen in the Stack. - /// Returns 0 when all items have been seen, else 1. - int next (T *&next_item); - - /// Move forward by one element in the Stack. Returns 0 when all the - /// items in the Stack have been seen, else 1. - int advance (void); - - /// Move to the first element in the Stack. Returns 0 if the - /// Stack is empty, else 1. - int first (void); - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Pointer to the current node in the iteration. - ACE_Node *current_; - - /// Pointer to the Stack we're iterating over. - ACE_Unbounded_Stack &stack_; -}; - -template -class ACE_Double_Linked_List; - -/** - * @class ACE_Double_Linked_List_Iterator_Base - * - * @brief Implements a common base class for iterators for a double - * linked list ADT - */ -template -class ACE_Double_Linked_List_Iterator_Base -{ -public: - // = Iteration methods. - - /// Passes back the {entry} under the iterator. Returns 0 if the - /// iteration has completed, otherwise 1 - int next (T *&) const; - - /** - * @deprecated Return the address of next (current) unvisited item in - * the list. 0 if there is no more element available. - */ - T *next (void) const; - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// STL-like iterator dereference operator: returns a reference - /// to the node underneath the iterator. - T & operator* (void) const ; - - /** - * Retasks the iterator to iterate over a new - * Double_Linked_List. This allows clients to reuse an iterator - * without incurring the constructor overhead. If you do use this, - * be aware that if there are more than one reference to this - * iterator, the other "clients" may be very bothered when their - * iterator changes. @@ Here be dragons. Comments? - */ - void reset (ACE_Double_Linked_List &); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - // = Initialization methods. - - /// Constructor - ACE_Double_Linked_List_Iterator_Base (const ACE_Double_Linked_List &); - - /// Copy constructor. - ACE_Double_Linked_List_Iterator_Base (const - ACE_Double_Linked_List_Iterator_Base - &iter); - - // = Iteration methods. - /** - * Move to the first element of the list. Returns 0 if the list is - * empty, else 1. - * @note the head of the ACE_DLList is actually a null entry, so the - * first element is actually the 2n'd entry - */ - int go_head (void); - - /// Move to the last element of the list. Returns 0 if the list is - /// empty, else 1. - int go_tail (void); - - /** - * Check if we reach the end of the list. Can also be used to get - * the *current* element in the list. Return the address of the - * current item if there are still elements left , 0 if we run out - * of element. - */ - T *not_done (void) const ; - - /// Advance to the next element in the list. Return the address of the - /// next element if there are more, 0 otherwise. - T *do_advance (void); - - /// Retreat to the previous element in the list. Return the address - /// of the previous element if there are more, 0 otherwise. - T *do_retreat (void); - - /// Dump the state of an object. - void dump_i (void) const; - - /// Remember where we are. - T *current_; - - const ACE_Double_Linked_List *dllist_; -}; - -/** - * @class ACE_Double_Linked_List_Iterator - * - * @brief Implements an iterator for a double linked list ADT - * - * Iterate thru the double-linked list. This class provides - * an interface that let users access the internal element - * addresses directly. Notice {class T} must declare - * ACE_Double_Linked_List<T>, - * ACE_Double_Linked_List_Iterator_Base <T> and - * ACE_Double_Linked_List_Iterator as friend classes and class T - * should also have data members T* next_ and T* prev_. - */ -template -class ACE_Double_Linked_List_Iterator : public ACE_Double_Linked_List_Iterator_Base -{ -public: - // = Initialization method. - ACE_Double_Linked_List_Iterator (const ACE_Double_Linked_List &); - - /** - * Retasks the iterator to iterate over a new - * Double_Linked_List. This allows clients to reuse an iterator - * without incurring the constructor overhead. If you do use this, - * be aware that if there are more than one reference to this - * iterator, the other "clients" may be very bothered when their - * iterator changes. - * @@ Here be dragons. Comments? - */ - void reset (ACE_Double_Linked_List &); - - /// Move to the first element in the list. Returns 0 if the - /// list is empty, else 1. - int first (void); - - /// Move forward by one element in the list. Returns 0 when all the - /// items in the list have been seen, else 1. - int advance (void); - - /** - * Advance the iterator while removing the original item from the - * list. Return a pointer points to the original (removed) item. - * If {dont_remove} equals 0, this function behaves like {advance} - * but return 0 (NULL) instead. - */ - T* advance_and_remove (int dont_remove); - - // = STL-style iteration methods - - /// Prefix advance. - ACE_Double_Linked_List_Iterator & operator++ (void); - - /// Postfix advance. - ACE_Double_Linked_List_Iterator operator++ (int); - - /// Prefix reverse. - ACE_Double_Linked_List_Iterator & operator-- (void); - - /// Postfix reverse. - ACE_Double_Linked_List_Iterator operator-- (int); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Double_Linked_List_Reverse_Iterator - * - * @brief Implements a reverse iterator for a double linked list ADT - * - * Iterate backwards over the double-linked list. This class - * provide an interface that let users access the internal - * element addresses directly, which seems to break the - * encapsulation. Notice {class T} must declare - * ACE_Double_Linked_List<T>, - * ACE_Double_Linked_List_Iterator_Base <T> and - * ACE_Double_Linked_List_Iterator as friend classes and class T - * should also have data members T* next_ and T* prev_. - */ -template -class ACE_Double_Linked_List_Reverse_Iterator : public ACE_Double_Linked_List_Iterator_Base -{ -public: - // = Initialization method. - ACE_Double_Linked_List_Reverse_Iterator (ACE_Double_Linked_List &); - - /** - * Retasks the iterator to iterate over a new - * Double_Linked_List. This allows clients to reuse an iterator - * without incurring the constructor overhead. If you do use this, - * be aware that if there are more than one reference to this - * iterator, the other "clients" may be very bothered when their - * iterator changes. - * @@ Here be dragons. Comments? - */ - void reset (ACE_Double_Linked_List &); - - /// Move to the first element in the list. Returns 0 if the - /// list is empty, else 1. - int first (void); - - /// Move forward by one element in the list. Returns 0 when all the - /// items in the list have been seen, else 1. - int advance (void); - - /** - * Advance the iterator while removing the original item from the - * list. Return a pointer points to the original (removed) item. - * If {dont_remove} equals 0, this function behaves like {advance} - * but return 0 (NULL) instead. - */ - T* advance_and_remove (int dont_remove); - - // = STL-style iteration methods - - /// Prefix advance. - ACE_Double_Linked_List_Reverse_Iterator & operator++ (void); - - /// Postfix advance. - ACE_Double_Linked_List_Reverse_Iterator operator++ (int); - - /// Prefix reverse. - ACE_Double_Linked_List_Reverse_Iterator & operator-- (void); - - /// Postfix reverse. - ACE_Double_Linked_List_Reverse_Iterator operator-- (int); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - - -/** - * @class ACE_Double_Linked_List - * - * @brief A double-linked list implementation. - * - * This implementation of an unbounded double-linked list uses a - * circular linked list with a dummy node. It is pretty much - * like the {ACE_Unbounded_Queue} except that it allows removing - * of a specific element from a specific location. - * Notice that this class is an implementation of a very simple - * data structure. This is *NOT* a container class. You can use the - * class to implement other contains classes but it is *NOT* a - * general purpose container class. - * The parameter class *MUST* have members T* prev and T* next - * and users of this class are responsible to follow the general - * rules of using double-linked lists to maintaining the list - * integrity. - * If you need a double linked container class, use the DLList - * class which is a container but delegates to the Double_Linked_List - * class. - * - * Requirements and Performance Characteristics - * - Internal Structure - * Double Linked List - * - Duplicates allowed? - * Yes - * - Random access allowed? - * No - * - Search speed - * N/A - * - Insert/replace speed - * Linear - * - Iterator still valid after change to container? - * Yes - * - Frees memory for removed elements? - * No - * - Items inserted by - * Value - * - Requirements for contained type - * -# Default constructor - * -# Copy constructor - * -# operator= - * - */ -template -class ACE_Double_Linked_List -{ -public: - friend class ACE_Double_Linked_List_Iterator_Base; - friend class ACE_Double_Linked_List_Iterator; - friend class ACE_Double_Linked_List_Reverse_Iterator; - - // Trait definition. - typedef ACE_Double_Linked_List_Iterator ITERATOR; - typedef ACE_Double_Linked_List_Reverse_Iterator REVERSE_ITERATOR; - - // = Initialization and termination methods. - /// construction. Use user specified allocation strategy - /// if specified. - /** - * Initialize an empy list using the allocation strategy specified by the user. - * If none is specified, then use default allocation strategy. - */ - ACE_Double_Linked_List (ACE_Allocator *the_allocator = 0); - - /// Copy constructor. - /** - * Create a double linked list that is a copy of the provided - * parameter. - */ - ACE_Double_Linked_List (const ACE_Double_Linked_List &); - - /// Assignment operator. - /** - * Perform a deep copy of the provided list by first deleting the nodes of the - * lhs and then copying the nodes of the rhs. - */ - void operator= (const ACE_Double_Linked_List &); - - /// Destructor. - /** - * Clean up the memory allocated for the nodes of the list. - */ - ~ACE_Double_Linked_List (void); - - // = Check boundary conditions. - - /// Returns 1 if the container is empty, 0 otherwise. - /** - * Performs constant time check to determine if the list is empty. - */ - int is_empty (void) const; - - /// The list is unbounded, so this always returns 0. - /** - * Since the list is unbounded, the method simply returns 0. - */ - int is_full (void) const; - - // = Classic queue operations. - - /// Adds @a new_item to the tail of the list. Returns the new item - /// that was inserted. - /** - * Provides constant time insertion at the end of the list structure. - */ - T *insert_tail (T *new_item); - - /// Adds @a new_item to the head of the list.Returns the new item that - /// was inserted. - /** - * Provides constant time insertion at the head of the list. - */ - T *insert_head (T *new_item); - - /// Removes the head of the list and returns a pointer to that item. - /** - * Removes and returns the first {item} in the list. Returns - * internal node's address on success, 0 if the queue was empty. - * This method will *not* free the internal node. - */ - T* delete_head (void); - - /// Removes the tail of the list and returns a pointer to that item. - /** - * Removes and returns the last {item} in the list. Returns - * internal nodes's address on success, 0 if the queue was - * empty. This method will *not* free the internal node. - */ - T *delete_tail (void); - - // = Additional utility methods. - - ///Empty the list. - /** - * Reset the {ACE_Double_Linked_List} to be empty. - * Notice that since no one is interested in the items within, - * This operation will delete all items. - */ - void reset (void); - - /// Get the {slot}th element in the set. Returns -1 if the element - /// isn't in the range {0..{size} - 1}, else 0. - /** - * Iterates through the list to the desired index and assigns the provides pointer - * with the address of the node occupying that index. - */ - int get (T *&item, size_t slot = 0); - - /// The number of items in the queue. - /** - * Constant time call to return the current size of the list. - */ - size_t size (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Use DNode address directly. - /** - * Constant time removal of an item from the list using it's address. - */ - int remove (T *n); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Delete all the nodes in the list. - /** - * Removes and deallocates memory for all of the list nodes. - */ - void delete_nodes (void); - - /// Copy nodes from {rhs} into this list. - /** - * Copy the elements of the provided list by allocated new nodes and assigning - * them with the proper data. - */ - void copy_nodes (const ACE_Double_Linked_List &rhs); - - /// Setup header pointer. Called after we create the head node in ctor. - /** - * Initialize the head pointer so that the list has a dummy node. - */ - void init_head (void); - - ///Constant time insert a new item into the list structure. - /** - * Insert a @a new_item into the list. It will be added before - * or after @a old_item. Default is to insert the new item *after* - * {head_}. Return 0 if succeed, -1 if error occured. - */ - int insert_element (T *new_item, - int before = 0, - T *old_item = 0); - - ///Constant time delete an item from the list structure. - /** - * Remove @a item from the list. Return 0 if succeed, -1 otherwise. - * Notice that this function checks if item is {head_} and either its - * {next_} or {prev_} is NULL. The function resets item's {next_} and - * {prev_} to 0 to prevent clobbering the double-linked list if a user - * tries to remove the same node again. - */ - int remove_element (T *item); - - /// Head of the circular double-linked list. - T *head_; - - /// Size of this list. - size_t size_; - - /// Allocation Strategy of the queue. - ACE_Allocator *allocator_; -}; - - -template class ACE_DLList; -template class ACE_DLList_Iterator; -template class ACE_DLList_Reverse_Iterator; - -typedef ACE_Double_Linked_List ACE_DLList_Base; - -//typedef ACE_Double_Linked_List_Iterator -// ACE_DLList_Iterator_Base; -//typedef ACE_Double_Linked_List_Reverse_Iterator -// ACE_DLList_Reverse_Iterator_Base; -//@@ These two typedefs (inherited from James Hu's original design) -// have been removed because Sun CC 4.2 had problems with it. I guess -// having the DLList_Iterators inheriting from a class which is -// actually a typedef leads to problems. #define'ing rather than -// typedef'ing worked, but as per Carlos's reccomendation, I'm just -// replacing all references to the base classes with their actual -// type. Matt Braun (6/15/99) - -/** - * @class ACE_DLList - * - * @brief A double-linked list container class. - * - * This implementation uses ACE_Double_Linked_List to perform - * the logic behind this container class. It delegates all of its - * calls to ACE_Double_Linked_List. - */ -template -class ACE_DLList : public ACE_DLList_Base -{ - friend class ACE_DLList_Node; - friend class ACE_Double_Linked_List_Iterator; - friend class ACE_DLList_Iterator; - friend class ACE_DLList_Reverse_Iterator; - -public: - - /// Delegates to ACE_Double_Linked_List. - void operator= (const ACE_DLList &l); - - // = Classic queue operations. - - /// Delegates to ACE_Double_Linked_List. - T *insert_tail (T *new_item); - - /// Delegates to ACE_Double_Linked_List. - T *insert_head (T *new_item); - - /// Delegates to ACE_Double_Linked_List. - T *delete_head (void); - - /// Delegates to ACE_Double_Linked_List. - T *delete_tail (void); - - // = Additional utility methods. - - /** - * Delegates to {ACE_Double_Linked_List}, but where - * {ACE_Double_Linked_List} returns the node as the item, this get - * returns the contents of the node in item. - */ - int get (T *&item, size_t slot = 0); - - /// Delegates to ACE_Double_Linked_List. - void dump (void) const; - - /// Delegates to ACE_Double_Linked_List. - int remove (ACE_DLList_Node *n); - - // = Initialization and termination methods. - - /// Delegates to ACE_Double_Linked_List. - ACE_DLList (ACE_Allocator *the_allocator = 0); - - /// Delegates to ACE_Double_Linked_List. - ACE_DLList (const ACE_DLList &l); - - /// Deletes the list starting from the head. - ~ACE_DLList (void); -}; - -/** - * @class ACE_DLList_Iterator - * - * @brief A double-linked list container class iterator. - * - * This implementation uses ACE_Double_Linked_List_Iterator to - * perform the logic behind this container class. It delegates - * all of its calls to ACE_Double_Linked_List_Iterator. - */ -template -class ACE_DLList_Iterator : public ACE_Double_Linked_List_Iterator -{ - - friend class ACE_DLList; - friend class ACE_DLList_Node; - -public: - - // = Initialization method. - ACE_DLList_Iterator (ACE_DLList &l); - - /** - * Retasks the iterator to iterate over a new - * Double_Linked_List. This allows clients to reuse an iterator - * without incurring the constructor overhead. If you do use this, - * be aware that if there are more than one reference to this - * iterator, the other "clients" may be very bothered when their - * iterator changes. - * @@ Here be dragons. Comments? - */ - void reset (ACE_DLList &l); - - // = Iteration methods. - /// Move forward by one element in the list. Returns 0 when all the - /// items in the list have been seen, else 1. - int advance (void); - - /// Pass back the {next_item} that hasn't been seen in the list. - /// Returns 0 when all items have been seen, else 1. - int next (T *&); - - /** - * @deprecated Delegates to ACE_Double_Linked_List_Iterator, except that - * whereas the Double_Linked_List version of next returns the node, this next - * returns the contents of the node - */ - T *next (void) const; - - /** - * Removes the current item (i.e., {next}) from the list. - * Note that DLList iterators do not support {advance_and_remove} - * directly (defined in its base class) and you will need to - * release the element returned by it. - */ - int remove (void); - - /// Delegates to ACE_Double_Linked_List_Iterator. - void dump (void) const; - -private: - ACE_DLList *list_; -}; - -/** - * @class ACE_DLList_Reverse_Iterator - * - * @brief A double-linked list container class iterator. - * - * This implementation uses ACE_Double_Linked_List_Iterator to - * perform the logic behind this container class. It delegates - * all of its calls to ACE_Double_Linked_List_Iterator. - */ -template -class ACE_DLList_Reverse_Iterator : public ACE_Double_Linked_List_Reverse_Iterator -{ - - friend class ACE_DLList; - friend class ACE_DLList_Node; - -public: - - // = Initialization method. - ACE_DLList_Reverse_Iterator (ACE_DLList &l); - - /** - * Retasks the iterator to iterate over a new - * Double_Linked_List. This allows clients to reuse an iterator - * without incurring the constructor overhead. If you do use this, - * be aware that if there are more than one reference to this - * iterator, the other "clients" may be very bothered when their - * iterator changes. - * @@ Here be dragons. Comments? - */ - void reset (ACE_DLList &l); - - // = Iteration methods. - /// Move forward by one element in the list. Returns 0 when all the - /// items in the list have been seen, else 1. - int advance (void); - - /// Pass back the {next_item} that hasn't been seen in the list. - /// Returns 0 when all items have been seen, else 1. - int next (T *&); - - /// @deprecated Delegates to ACE_Double_Linked_List_Iterator. - T *next (void) const; - - /// Removes the current item (i.e., {next}) from the list. - /// Note that DLList iterators do not support {advance_and_remove} - /// directly (defined in its base class) and you will need to - /// release the element returned by it. - int remove (void); - - /// Delegates to ACE_Double_Linked_List_Iterator. - void dump (void) const; - -private: - ACE_DLList *list_; -}; - -// Forward declaration. -template -class ACE_Fixed_Set; - -/** - * @class ACE_Fixed_Set_Iterator_Base - * - * @brief Implements a common base class for iterators for a unordered set. - */ -template -class ACE_Fixed_Set_Iterator_Base -{ -public: - // = Iteration methods. - - /// Pass back the {next_item} that hasn't been seen in the Set. - /// Returns 0 when all items have been seen, else 1. - int next (T *&next_item); - - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Move to the first element in the set. Returns 0 if the - /// set is empty, else 1. - int first (void); - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - // = Initialization method. - ACE_Fixed_Set_Iterator_Base (ACE_Fixed_Set &s); - - /// Set we are iterating over. - ACE_Fixed_Set &s_; - - /// How far we've advanced over the set. - ssize_t next_; - - /// The number of non free items that the iterator had pointed at. - size_t iterated_items_; - - /// Dump the state of an object. - void dump_i (void) const; - - /// Pass back the {next_item} that hasn't been seen in the Set. - /// Returns 0 when all items have been seen, else 1. - int next_i (T *&next_item); -}; - -/** - * @class ACE_Fixed_Set_Iterator - * - * @brief Iterates through an unordered set. - * - * This implementation of an unordered set uses a fixed array. - * Allows deletions while iteration is occurring. - */ -template -class ACE_Fixed_Set_Iterator : public ACE_Fixed_Set_Iterator_Base -{ -public: - // = Initialization method. - ACE_Fixed_Set_Iterator (ACE_Fixed_Set &s); - - // = Iteration methods. - - /// Pass back the {next_item} that hasn't been seen in the Set. - /// Returns 0 when all items have been seen, else 1. - int next (T *&next_item); - - /// Dump the state of an object. - void dump (void) const; - - /// Remove the item where the itearetor is located at. - /// Returns 1 if it removes a item, else 0. - /// Pass back the removed {item}. - int remove (T *&item); - - /// STL-like iterator dereference operator: returns a reference - /// to the node underneath the iterator. - T & operator* (void); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Fixed_Set_Const_Iterator - * - * @brief Iterates through a const unordered set. - * - * This implementation of an unordered set uses a fixed array. - */ -template -class ACE_Fixed_Set_Const_Iterator : public ACE_Fixed_Set_Iterator_Base -{ -public: - // = Initialization method. - ACE_Fixed_Set_Const_Iterator (const ACE_Fixed_Set &s); - - // = Iteration methods. - - /// Pass back the {next_item} that hasn't been seen in the Set. - /// Returns 0 when all items have been seen, else 1. - int next (const T *&next_item); - - /// Dump the state of an object. - void dump (void) const; - - /// STL-like iterator dereference operator: returns a reference - /// to the node underneath the iterator. - const T & operator* (void) const ; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Fixed_Set - * - * @brief Implement a simple unordered set of {T} with maximum {ACE_SIZE}. - * - * This implementation of an unordered set uses a fixed array. - * It does not allow duplicate members. The set provides linear insertion/deletion - * operations. - * - * Requirements and Performance Characteristics - * - Internal Structure - * Fixed array - * - Duplicates allowed? - * No - * - Random access allowed? - * No - * - Search speed - * Linear - * - Insert/replace speed - * Linear - * - Iterator still valid after change to container? - * Yes - * - Frees memory for removed elements? - * No - * - Items inserted by - * Value - * - Requirements for contained type - * -# Default constructor - * -# Copy constructor - * -# operator= - * -# operator== - * - */ -template -class ACE_Fixed_Set -{ -public: - friend class ACE_Fixed_Set_Iterator_Base; - friend class ACE_Fixed_Set_Iterator; - friend class ACE_Fixed_Set_Const_Iterator; - - // Trait definitions. - typedef ACE_Fixed_Set_Iterator ITERATOR; - typedef ACE_Fixed_Set_Const_Iterator CONST_ITERATOR; - - // = Initialization and termination methods. - /// Default Constructor. - /** - * Creates an empy set - */ - ACE_Fixed_Set (void); - - /// Copy constructor. - /** - * Initializes a set to be a copy of the set parameter. - */ - ACE_Fixed_Set (const ACE_Fixed_Set &); - - /// Assignment operator. - /** - * Deep copy of one set to another. - */ - void operator= (const ACE_Fixed_Set &); - - /// Destructor. - /** - * Destroys a set. - */ - ~ACE_Fixed_Set (void); - - // = Check boundary conditions. - - /// Returns 1 if the container is empty, otherwise returns 0. - /** - * Performs constant time check to determine if a set is empty. - */ - int is_empty (void) const; - - /// Returns 1 if the container is full, otherwise returns 0. - /** - * Performs a constant time check to see if the set is full. - */ - int is_full (void) const; - - // = Classic unordered set operations. - - ///Linear time insertion of an item unique to the set. - /** - * Insert @a new_item into the set (doesn't allow duplicates). - * Returns -1 if failures occur, 1 if item is already present, else - * 0. - */ - int insert (const T &new_item); - - ///Linear time removal operation of an item. - /** - * Remove first occurrence of {item} from the set. Returns 0 if - * it removes the item, -1 if it can't find the item, and -1 if a - * failure occurs. Removal doesn't reclaim memory for the @a item. - */ - int remove (const T &item); - - /// Finds if @a item occurs in the set. Returns 0 if finds, else -1. - /** - * Performs a linear find operation for the specified @a item. - */ - int find (const T &item) const; - - /// Size of the set. - /** - * Returns the current size of the set. - */ - 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: - /// Holds the contents of the set. - struct - { - /// Item in the set. - T item_; - - /// Keeps track of whether this item is in use or not. - int is_free_; - } search_structure_[ACE_SIZE]; - - /// Current size of the set. - size_t cur_size_; - - /// Maximum size of the set. - size_t max_size_; -}; - -// Forward declaration. -template -class ACE_Bounded_Set; - -/** - * @class ACE_Bounded_Set_Iterator - * - * @brief Iterates through an unordered set. - * - * This implementation of an unordered set uses a Bounded array. - * Allows deletions while iteration is occurring. - */ -template -class ACE_Bounded_Set_Iterator -{ -public: - // = Initialization method. - ACE_Bounded_Set_Iterator (ACE_Bounded_Set &s); - - // = Iteration methods. - - /// Pass back the {next_item} that hasn't been seen in the Set. - /// Returns 0 when all items have been seen, else 1. - int next (T *&next_item); - - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Move to the first element in the set. Returns 0 if the - /// set is empty, else 1. - int first (void); - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Set we are iterating over. - ACE_Bounded_Set &s_; - - /// How far we've advanced over the set. - ssize_t next_; -}; - - -/** - * @class ACE_Bounded_Set - * - * @brief Implement a simple unordered set of {T} with maximum - * set at creation time. - * - * This implementation of an unordered set uses a Bounded array. - * This implementation does not allow duplicates. It provides - * linear insert/remove/find operations. Insertion/removal does not - * invalidate iterators, but caution should be taken to ensure - * expected behavior. Once initialized, the object has a maximum size - * which can only be increased by the assignment of another larger Bounded_Set. - * - * Requirements and Performance Characteristics - * - Internal Structure - * Bounded array which can grow via assignment - * - Duplicates allowed? - * No - * - Random access allowed? - * No - * - Search speed - * Linear - * - Insert/replace speed - * Linear - * - Iterator still valid after change to container? - * Yes - * - Frees memory for removed elements? - * No - * - Items inserted by - * Value - * - Requirements for contained type - * -# Default constructor - * -# Copy constructor - * -# operator= - * -# operator== - * - */ -template -class ACE_Bounded_Set -{ -public: - friend class ACE_Bounded_Set_Iterator; - - // Trait definition. - typedef ACE_Bounded_Set_Iterator ITERATOR; - - enum - { - DEFAULT_SIZE = 10 - }; - - // = Initialization and termination methods. - /// Construct a Bounded_Set using the default size. - /** - * The default constructor initializes the Bounded_Set to a maximum size - * specified by the DEFAULT_SIZE. - */ - ACE_Bounded_Set (void); - - /// Construct a Bounded_Set with the provided sizeB. - /** - * Initialize the Bounded_Set to have a maximum size equal to the size - * parameter specified. - */ - ACE_Bounded_Set (size_t size); - - /// Construct a Bounded_Set that is a copy of the provides Bounded_Set. - /** - * Initialize the Bounded_Set to be a copy of the Bounded_Set parameter. - */ - ACE_Bounded_Set (const ACE_Bounded_Set &); - - /// Assignment operator. - /** - * The assignment will make a deep copy of the Bounded_Set provided. If the - * rhs has more elements than the capacity of the lhs, then the lhs will be - * deleted and reallocated to accomadate the larger number of elements. - */ - void operator= (const ACE_Bounded_Set &); - - /// Destructor - /** - * Clean up the underlying dynamically allocated memory that is used by - * the Bounded_Set. - */ - ~ACE_Bounded_Set (void); - - // = Check boundary conditions. - - /// Returns 1 if the container is empty, otherwise returns 0. - /** - * A constant time check is performed to determine if the Bounded_Set is - * empty. - */ - int is_empty (void) const; - - /// Returns 1 if the container is full, otherwise returns 0. - /** - * Performs a constant time check to determine if the Bounded_Set is at - * capacity. - */ - int is_full (void) const; - - // = Classic unordered set operations. - - ///Inserts a new element unique to the set. - /** - * Insert @a new_item into the set (doesn't allow duplicates) in linear - * time. - * Returns -1 if failures occur, 1 if item is already present, else - * 0. - */ - int insert (const T &new_item); - - ///Finds the specified element and removes it from the set. - /** - * Remove first occurrence of @a item from the set. Returns 0 if it - * removes the item, -1 if it can't find the item, and -1 if a - * failure occurs. The linear remove operation does not reclaim the - * memory associated with the removed item. - */ - int remove (const T &item); - - /// Finds if @a item occurs in the set. Returns 0 if finds, else -1. - /** - * find preforms a linear search for {item} and returns 0 on successful - * find and -1 otherwise. - */ - int find (const T &item) const; - - /// Size of the set. - /** - * Returns a size_t representing the current size of the set. - */ - 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: - struct Search_Structure - { - /// Item in the set. - T item_; - - /// Keeps track of whether this item is in use or not. - int is_free_; - }; - - /// Holds the contents of the set. - Search_Structure *search_structure_; - - /// Current size of the set. - size_t cur_size_; - - /// Maximum size of the set. - size_t max_size_; -}; - -/** - * @class ACE_Ordered_MultiSet_Iterator - * - * @brief Implement a bidirectional iterator over an ordered multiset. - * This class template requires that < operator semantics be - * defined for the parameterized type {T}, but does not impose - * any restriction on how that ordering operator is implemented. - */ -template -class ACE_Ordered_MultiSet_Iterator -{ -public: - friend class ACE_Ordered_MultiSet; - - // = Initialization method. - ACE_Ordered_MultiSet_Iterator (ACE_Ordered_MultiSet &s); - - // = Iteration methods. - - /// Pass back the {next_item} that hasn't been seen in the ordered multiset. - /// Returns 0 when all items have been seen, else 1. - int next (T *&next_item) const; - - /// Repositions the iterator at the first item in the ordered multiset - /// Returns 0 if the list is empty else 1. - int first (void); - - /// Repositions the iterator at the last item in the ordered multiset - /// Returns 0 if the list is empty else 1. - int last (void); - - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Move backward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int retreat (void); - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Returns a reference to the internal element {this} is pointing to. - T& operator* (void); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - - /// Pointer to the current node in the iteration. - ACE_DNode *current_; - - /// Pointer to the set we're iterating over. - ACE_Ordered_MultiSet &set_; -}; - - -/** - * @class ACE_Ordered_MultiSet - * - * @brief Implement a simple ordered multiset of {T} of unbounded size - * that allows duplicates. This class template requires that < - * operator semantics be defined for the parameterized type {T}, but - * does not impose any restriction on how that ordering operator is - * implemented. The set is implemented as a linked list. - * - * - * Requirements and Performance Characteristics - * - Internal Structure - * Double linked list - * - Duplicates allowed? - * Yes - * - Random access allowed? - * No - * - Search speed - * Linear - * - Insert/replace speed - * Linear - * - Iterator still valid after change to container? - * Yes - * - Frees memory for removed elements? - * Yes - * - Items inserted by - * Value - * - Requirements for contained type - * -# Default constructor - * -# Copy constructor - * -# operator= - * -# operator== - * -# operator< - * - * - */ -template -class ACE_Ordered_MultiSet -{ -public: - friend class ACE_Ordered_MultiSet_Iterator; - - // Trait definition. - typedef ACE_Ordered_MultiSet_Iterator ITERATOR; - - // = Initialization and termination methods. - /// Constructor. Use user specified allocation strategy - /// if specified. - /** - * Initialize the set using the allocation strategy specified. If none, use the - * default strategy. - */ - ACE_Ordered_MultiSet (ACE_Allocator *the_allocator = 0); - - /// Copy constructor. - /** - * Initialize the set to be a copy of the provided set. - */ - ACE_Ordered_MultiSet (const ACE_Ordered_MultiSet &); - - /// Destructor. - /** - * Delete the nodes of the set. - */ - ~ACE_Ordered_MultiSet (void); - - /// Assignment operator. - /** - * Delete the nodes in lhs, and copy the nodes from the rhs. - */ - void operator= (const ACE_Ordered_MultiSet &); - - // = Check boundary conditions. - - /// Returns 1 if the container is empty, otherwise returns 0. - /** - * Constant time check to determine if the set is empty. - */ - int is_empty (void) const; - - /// Size of the set. - /** - * Constant time check to determine the size of the set. - */ - size_t size (void) const; - - // = Classic unordered set operations. - - /// Insert @a new_item into the ordered multiset. - /// Returns -1 if failures occur, else 0. - /** - * Linear time, order preserving insert into the set beginning at the head. - */ - int insert (const T &new_item); - - ///Linear time insert beginning at the point specified by the provided iterator. - /** - * Insert @a new_item into the ordered multiset, starting its search at - * the node pointed to by the iterator, and if insertion was successful, - * updates the iterator to point to the newly inserted node. - * Returns -1 if failures occur, else 0. - */ - int insert (const T &new_item, ITERATOR &iter); - - /// Remove first occurrence of @a item from the set. Returns 0 if - /// it removes the item, -1 if it can't find the item. - /** - * Linear time search operation which removes the item from the set if found . - */ - int remove (const T &item); - - ///Linear find operation. - /** - * Finds first occurrence of @a item in the multiset, using the iterator's - * current position as a hint to improve performance. If find succeeds, - * it positions the iterator at that node and returns 0, or if it cannot - * locate the node, it leaves the iterator alone and just returns -1. - */ - int find (const T &item, ITERATOR &iter) const; - - /// Reset the ACE_Ordered_MultiSet to be empty. - /** - * Delete the nodes inside the set. - */ - void reset (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - - /** - * Insert @a item, starting its search at the position given, - * and if successful updates the passed pointer to point to - * the newly inserted item's node. - */ - int insert_from (const T &item, ACE_DNode *start_position, - ACE_DNode **new_position); - - /** - * Looks for first occurance 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 - * item would have been, it updates the new_position pointer to point - * to this node and returns -1; if there is no such node, then if there - * is a node after where the item would have been, it updates the - * new_position pointer to point to this node (or 0 if there is no such - * node) and returns 1; - */ - int locate (const T &item, ACE_DNode *start_position, - ACE_DNode *&new_position) const; - - /// Delete all the nodes in the Set. - void delete_nodes (void); - - /// Copy nodes into this set. - void copy_nodes (const ACE_Ordered_MultiSet &); - - /// Head of the bilinked list of Nodes. - ACE_DNode *head_; - - /// Head of the bilinked list of Nodes. - ACE_DNode *tail_; - - /// Current size of the set. - size_t cur_size_; - - /// Allocation strategy of the set. - ACE_Allocator *allocator_; -}; - -// **************************************************************** - -/** - * @class ACE_Array - * - * @brief A dynamic array class. - * - * This class extends ACE_Array_Base, adding comparison operators. - * - * Requirements and Performance Characteristics - * - Internal Structure - * Dynamic array - * - Duplicates allowed? - * Yes - * - Random access allowed? - * Yes - * - Search speed - * N/A - * - Insert/replace speed - * O(1) - * - Iterator still valid after change to container? - * - In general, yes. - * - If array size is changed during iteration, no. - * - Frees memory for removed elements? - * No - * - Items inserted by - * Value - * - Requirements for contained type - * -# Default constructor - * -# Copy constructor - * -# operator= - * -# operator!= - * - * @sa ACE_Array_Base. This class inherits its operations and requirements. - */ -template -class ACE_Array : public ACE_Array_Base -{ -public: - // Define a "trait" - typedef T TYPE; - - typedef ACE_Array_Iterator ITERATOR; - - // = Exceptions. - - // = Initialization and termination methods. - - /// Dynamically create an uninitialized array. - /** - * Initialize an empty array of the specified size using the provided - * allocation strategy. - */ - ACE_Array (size_t size = 0, - ACE_Allocator* alloc = 0); - - /// Dynamically initialize the entire array to the {default_value}. - /** - * Initialize an array the given size placing the default_value in each index. - */ - ACE_Array (size_t size, - const T &default_value, - ACE_Allocator* alloc = 0); - - ///Copy constructor. - /** - * The copy constructor performs initialization by making an exact - * copy of the contents of parameter {s}, i.e., *this == s will - * return true. - */ - ACE_Array (const ACE_Array &s); - - ///Assignment operator - /** - * Assignment operator performs an assignment by making an exact - * copy of the contents of parameter {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_}, - * reallocate a new {array_}, and then copy the contents of {s}. - */ - void operator= (const ACE_Array &s); - - // = Compare operators - - ///Equality comparison operator. - /** - * Compare this array with {s} for equality. Two arrays are equal - * if their {size}'s are equal and all the elements from 0 .. {size} - * are equal. - */ - bool operator== (const ACE_Array &s) const; - - ///Inequality comparison operator. - /** - * Compare this array with {s} for inequality such that {*this} != - * {s} is always the complement of the boolean return value of - * {*this} == {s}. - */ - bool operator!= (const ACE_Array &s) const; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Containers_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Containers_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Containers_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_CONTAINERS_T_H */ diff --git a/ACE/ace/Containers_T.inl b/ACE/ace/Containers_T.inl deleted file mode 100644 index 425d6e167e8..00000000000 --- a/ACE/ace/Containers_T.inl +++ /dev/null @@ -1,479 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE int -ACE_Bounded_Stack::is_empty (void) const -{ - ACE_TRACE ("ACE_Bounded_Stack::is_empty"); - return this->top_ == 0; -} - -template ACE_INLINE int -ACE_Bounded_Stack::is_full (void) const -{ - ACE_TRACE ("ACE_Bounded_Stack::is_full"); - return this->top_ >= this->size_; -} - -template ACE_INLINE int -ACE_Bounded_Stack::push (const T &new_item) -{ - ACE_TRACE ("ACE_Bounded_Stack::push"); - if (this->is_full () == 0) - { - this->stack_[this->top_++] = new_item; - return 0; - } - else - return -1; -} - -template ACE_INLINE int -ACE_Bounded_Stack::pop (T &item) -{ - ACE_TRACE ("ACE_Bounded_Stack::pop"); - if (this->is_empty () == 0) - { - item = this->stack_[--this->top_]; - return 0; - } - else - return -1; -} - -template ACE_INLINE int -ACE_Bounded_Stack::top (T &item) const -{ - ACE_TRACE ("ACE_Bounded_Stack::top"); - if (this->is_empty () == 0) - { - item = this->stack_[this->top_ - 1]; - return 0; - } - else - return -1; -} - -template ACE_INLINE size_t -ACE_Bounded_Stack::size (void) const -{ - return this->size_; -} - -//---------------------------------------- - -template ACE_INLINE int -ACE_Fixed_Stack::is_empty (void) const -{ - ACE_TRACE ("ACE_Fixed_Stack::is_empty"); - return this->top_ == 0; -} - -template ACE_INLINE int -ACE_Fixed_Stack::is_full (void) const -{ - ACE_TRACE ("ACE_Fixed_Stack::is_full"); - return this->top_ >= this->size_; -} - -template ACE_INLINE int -ACE_Fixed_Stack::push (const T &new_item) -{ - ACE_TRACE ("ACE_Fixed_Stack::push"); - if (this->is_full () == 0) - { - this->stack_[this->top_++] = new_item; - return 0; - } - else - return -1; -} - -template ACE_INLINE int -ACE_Fixed_Stack::pop (T &item) -{ - ACE_TRACE ("ACE_Fixed_Stack::pop"); - if (this->is_empty () == 0) - { - item = this->stack_[--this->top_]; - return 0; - } - else - return -1; -} - -template ACE_INLINE int -ACE_Fixed_Stack::top (T &item) const -{ - ACE_TRACE ("ACE_Fixed_Stack::top"); - if (this->is_empty () == 0) - { - item = this->stack_[this->top_ - 1]; - return 0; - } - else - return -1; -} - -template ACE_INLINE size_t -ACE_Fixed_Stack::size (void) const -{ - return this->size_; -} - -template ACE_INLINE int -ACE_Unbounded_Stack::is_empty (void) const -{ - // ACE_TRACE ("ACE_Unbounded_Stack::is_empty"); - return this->head_ == this->head_->next_; -} - -template ACE_INLINE int -ACE_Unbounded_Stack::top (T &item) const -{ - ACE_TRACE ("ACE_Unbounded_Stack::top"); - if (this->is_empty () == 0) - { - item = this->head_->next_->item_; - return 0; - } - else - return -1; -} - -template ACE_INLINE int -ACE_Unbounded_Stack::is_full (void) const -{ - ACE_TRACE ("ACE_Unbounded_Stack::is_full"); - return 0; // ??? -} - -template ACE_INLINE size_t -ACE_Unbounded_Stack::size (void) const -{ - return this->cur_size_; -} - -// --- - - -// --- - -template ACE_INLINE int -ACE_Fixed_Set::is_empty (void) const -{ - ACE_TRACE ("ACE_Fixed_Set::is_empty"); - return this->cur_size_ == 0; -} - -template ACE_INLINE int -ACE_Fixed_Set::is_full (void) const -{ - ACE_TRACE ("ACE_Fixed_Set::is_full"); - return this->cur_size_ == this->max_size_; -} - -// --- - -template ACE_INLINE int -ACE_Bounded_Set::is_empty (void) const -{ - ACE_TRACE ("ACE_Bounded_Set::is_empty"); - return this->cur_size_ == 0; -} - -template ACE_INLINE int -ACE_Bounded_Set::is_full (void) const -{ - ACE_TRACE ("ACE_Bounded_Set::is_full"); - return this->cur_size_ == this->max_size_; -} - -// -- - -template ACE_INLINE int -ACE_Ordered_MultiSet_Iterator::first (void) -{ - ACE_TRACE ("ACE_Ordered_MultiSet_Iterator::first"); - current_ = set_.head_; - - return (current_ ? 1 : 0); -} - -template ACE_INLINE int -ACE_Ordered_MultiSet_Iterator::last (void) -{ - ACE_TRACE ("ACE_Ordered_MultiSet_Iterator::last"); - current_ = set_.tail_; - - return (current_ ? 1 : 0); -} - -template ACE_INLINE int -ACE_Ordered_MultiSet_Iterator::advance (void) -{ - ACE_TRACE ("ACE_Ordered_MultiSet_Iterator::advance"); - - current_ = current_ ? current_->next_ : 0; - - return (current_ ? 1 : 0); -} - -template ACE_INLINE int -ACE_Ordered_MultiSet_Iterator::retreat (void) -{ - ACE_TRACE ("ACE_Ordered_MultiSet_Iterator::retreat"); - - current_ = current_ ? current_->prev_ : 0; - - return (current_ ? 1 : 0); -} - -template ACE_INLINE int -ACE_Ordered_MultiSet_Iterator::done (void) const -{ - ACE_TRACE ("ACE_Ordered_MultiSet_Iterator::done"); - - return (current_ ? 0 : 1); -} - -template ACE_INLINE void -ACE_Ordered_MultiSet_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_Ordered_MultiSet_Iterator::dump"); -#endif /* ACE_HAS_DUMP */ -} - - - -// -- - -template ACE_INLINE int -ACE_Ordered_MultiSet::is_empty (void) const -{ - ACE_TRACE ("ACE_Ordered_MultiSet::is_empty"); - return this->cur_size_ > 0 ? 0 : 1; -} - -template ACE_INLINE size_t -ACE_Ordered_MultiSet::size (void) const -{ -// ACE_TRACE ("ACE_Ordered_MultiSet::size"); - return this->cur_size_; -} - -// **************************************************************** - -template ACE_INLINE -ACE_Array::ACE_Array (size_t size, - ACE_Allocator *alloc) - : ACE_Array_Base (size, alloc) -{ -} - -template ACE_INLINE -ACE_Array::ACE_Array (size_t size, - const T &default_value, - ACE_Allocator *alloc) - : ACE_Array_Base (size, default_value, alloc) -{ -} - -// The copy constructor (performs initialization). - -template ACE_INLINE -ACE_Array::ACE_Array (const ACE_Array &s) - : ACE_Array_Base (s) -{ -} - -// Assignment operator (performs assignment). - -template ACE_INLINE void -ACE_Array::operator= (const ACE_Array &s) -{ - // Check for "self-assignment". - - if (this != &s) - this->ACE_Array_Base::operator= (s); -} - -// Compare this array with for inequality. - -template ACE_INLINE bool -ACE_Array::operator!= (const ACE_Array &s) const -{ - return !(*this == s); -} - -// **************************************************************** - - -// **************************************************************** - -template ACE_INLINE void -ACE_DLList::operator= (const ACE_DLList &l) -{ - *(ACE_DLList_Base *) this = l; -} - -template ACE_INLINE int -ACE_DLList::get (T *&item, size_t index) -{ - ACE_DLList_Node *node; - int result = ACE_DLList_Base::get (node, index); - if (result != -1) - item = (T *) node->item_; - return result; -} - -template ACE_INLINE void -ACE_DLList::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_DLList_Base::dump (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE int -ACE_DLList::remove (ACE_DLList_Node *n) -{ - int result = ACE_DLList_Base::remove (n); - ACE_DES_FREE (n, - this->allocator_->free, - ACE_DLList_Node); - return result; -} - -template ACE_INLINE -ACE_DLList::ACE_DLList (ACE_Allocator *alloc) - : ACE_DLList_Base (alloc) -{ -} - -template ACE_INLINE -ACE_DLList::ACE_DLList (const ACE_DLList &l) - : ACE_DLList_Base ((ACE_DLList &) l) -{ -} - -template ACE_INLINE -ACE_DLList::~ACE_DLList (void) -{ - while (this->delete_head ()) ; -} - -template ACE_INLINE int -ACE_DLList_Iterator::remove (void) -{ - ACE_DLList_Node *temp = this->ACE_Double_Linked_List_Iterator ::next (); - this->ACE_Double_Linked_List_Iterator ::advance (); - return list_->remove (temp); -} - -template ACE_INLINE -ACE_DLList_Iterator::ACE_DLList_Iterator (ACE_DLList &l) - : ACE_Double_Linked_List_Iterator ((ACE_DLList_Base &)l), - list_ (&l) -{ -} - -template ACE_INLINE void -ACE_DLList_Iterator::reset (ACE_DLList &l) -{ - list_ = &l; - this->ACE_Double_Linked_List_Iterator ::reset ((ACE_DLList_Base &)l); -} - -template ACE_INLINE int -ACE_DLList_Iterator::next (T *&ptr) -{ - ACE_DLList_Node *temp = - ACE_Double_Linked_List_Iterator ::next (); - if (temp) - ptr = (T *) temp->item_; - return temp ? 1 : 0; -} - -template ACE_INLINE T * -ACE_DLList_Iterator::next (void) const -{ - ACE_DLList_Node *temp = ACE_Double_Linked_List_Iterator ::next (); - return (T *) (temp ? temp->item_ : 0); -} - -template ACE_INLINE int -ACE_DLList_Iterator::advance (void) -{ - return this->ACE_Double_Linked_List_Iterator ::advance (); -} - -template ACE_INLINE void -ACE_DLList_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_Double_Linked_List_Iterator ::dump (); -#endif /* ACE_HAS_DUMP */ -} - - -template ACE_INLINE int -ACE_DLList_Reverse_Iterator::remove (void) -{ - ACE_DLList_Node *temp = ACE_Double_Linked_List_Reverse_Iterator ::next (); - this->ACE_Double_Linked_List_Reverse_Iterator ::advance (); - return list_->remove (temp); -} - -template ACE_INLINE -ACE_DLList_Reverse_Iterator::ACE_DLList_Reverse_Iterator (ACE_DLList &l) - : ACE_Double_Linked_List_Reverse_Iterator ((ACE_DLList_Base &)l), - list_ (&l) -{ -} - -template ACE_INLINE void -ACE_DLList_Reverse_Iterator::reset (ACE_DLList &l) -{ - list_ = &l; - this->ACE_Double_Linked_List_Reverse_Iterator ::reset ((ACE_DLList_Base &)l); -} - -template ACE_INLINE int -ACE_DLList_Reverse_Iterator::advance (void) -{ - return ACE_Double_Linked_List_Reverse_Iterator ::advance (); -} - -template ACE_INLINE int -ACE_DLList_Reverse_Iterator::next (T *&ptr) -{ - ACE_DLList_Node *temp = - ACE_Double_Linked_List_Reverse_Iterator ::next (); - if (temp == 0) - return 0; - ptr = (T *) temp->item_; - return 1; -} - -template ACE_INLINE T * -ACE_DLList_Reverse_Iterator::next (void) const -{ - ACE_DLList_Node *temp = ACE_Double_Linked_List_Reverse_Iterator ::next (); - return (T *) (temp ? temp->item_ : 0); -} - - -template ACE_INLINE void -ACE_DLList_Reverse_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_Double_Linked_List_Reverse_Iterator ::dump (); -#endif /* ACE_HAS_DUMP */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Copy_Disabled.cpp b/ACE/ace/Copy_Disabled.cpp deleted file mode 100644 index d2fb124a182..00000000000 --- a/ACE/ace/Copy_Disabled.cpp +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @file Copy_Disabled.cpp - * - * $Id$ - * - * @author Carlos O'Ryan - */ - -#include "ace/Copy_Disabled.h" - - -ACE_RCSID (ace, - Copy_Disabled, - "$Id$") - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Copy_Disabled::ACE_Copy_Disabled (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Copy_Disabled.h b/ACE/ace/Copy_Disabled.h deleted file mode 100644 index 835b3c20f91..00000000000 --- a/ACE/ace/Copy_Disabled.h +++ /dev/null @@ -1,65 +0,0 @@ -// -*- C++ -*- - -//=========================================================================== -/** - * @file Copy_Disabled.h - * - * $Id$ - * - * @author Carlos O'Ryan - */ -//=========================================================================== - -#ifndef ACE_COPY_DISABLED_H -#define ACE_COPY_DISABLED_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Copy_Disabled - * - * @brief Helper class to disable copy construction and assignment - * - * Classes used to control OS and other resources are not "canonical", - * i.e. they have their copy constructor and assignment operators - * disabled. - * This is often done by making the copy constructor and assignment - * operators private, effectively disallowing copying by clients of - * the class (including derived classes). If the copy constructor and - * assingment operators are left unimplemented then the class itself - * cannot make any copies of its instances, because it would result in - * link errors. - * - * To use this class simply use private inheritance: - * - * class Foo : private ACE_Copy_Disabled - * { - * // code here - * }; - * - */ -class ACE_Export ACE_Copy_Disabled -{ -public: - - /// Default constructor - ACE_Copy_Disabled (void); - -private: - ACE_Copy_Disabled (const ACE_Copy_Disabled &); - ACE_Copy_Disabled &operator= (const ACE_Copy_Disabled &); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" - -#endif /* ACE_COPY_DISABLED_H */ diff --git a/ACE/ace/Countdown_Time.cpp b/ACE/ace/Countdown_Time.cpp deleted file mode 100644 index 4c95e2acfa1..00000000000 --- a/ACE/ace/Countdown_Time.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "ace/Countdown_Time.h" -#include "ace/OS_NS_sys_time.h" - -ACE_RCSID (ace, - Countdown_Time, - "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Countdown_Time::ACE_Countdown_Time (ACE_Time_Value *max_wait_time) - : max_wait_time_ (max_wait_time), - stopped_ (false) -{ - this->start (); -} - -ACE_Countdown_Time::~ACE_Countdown_Time (void) -{ - this->stop (); -} - -void -ACE_Countdown_Time::start (void) -{ - if (this->max_wait_time_ != 0) - { - this->start_time_ = ACE_OS::gettimeofday (); - this->stopped_ = false; - } -} - -bool -ACE_Countdown_Time::stopped (void) const -{ - return stopped_; -} - -void -ACE_Countdown_Time::stop (void) -{ - if (this->max_wait_time_ != 0 && this->stopped_ == false) - { - ACE_Time_Value elapsed_time = ACE_OS::gettimeofday () - this->start_time_; - - if (*this->max_wait_time_ > elapsed_time) - { - *this->max_wait_time_ -= elapsed_time; - } - else - { - // Used all of timeout. - *this->max_wait_time_ = ACE_Time_Value::zero; - // errno = ETIME; - } - this->stopped_ = true; - } -} - -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 deleted file mode 100644 index 207b9045fcc..00000000000 --- a/ACE/ace/Countdown_Time.h +++ /dev/null @@ -1,80 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Countdown_Time.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_COUNTDOWN_TIME_H -#define ACE_COUNTDOWN_TIME_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/Time_Value.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Countdown_Time - * - * @brief Keeps track of the amount of elapsed time. - * - * This class has a side-effect on the @c max_wait_time -- every - * time the stop() method is called the @c max_wait_time is - * updated. - */ -class ACE_Export ACE_Countdown_Time -{ -public: - /// Cache the @a max_wait_time and call @c start(). - ACE_Countdown_Time (ACE_Time_Value *max_wait_time); - - /// Destructor, makes sure the max_wait_time that got passed as pointer - /// to the constructor is updated with the time elapsed. - ~ACE_Countdown_Time (void); - - /// Cache the current time and enter a start state. - void start (void); - - /// Subtract the elapsed time from max_wait_time_ and enter a stopped - /// state. - void stop (void); - - /// Calls stop and then start. max_wait_time_ is modified by the - /// call to stop. - void update (void); - - /// Returns true if we've already been stopped, else false. - bool stopped (void) const; - -private: - /// Maximum time we were willing to wait. - ACE_Time_Value *max_wait_time_; - - /// Beginning of the start time. - ACE_Time_Value start_time_; - - /// 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" - -#endif /* ACE_COUNTDOWN_TIME_H */ diff --git a/ACE/ace/DEV.cpp b/ACE/ace/DEV.cpp deleted file mode 100644 index 1ae27fc558e..00000000000 --- a/ACE/ace/DEV.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// $Id$ - -#include "ace/DEV.h" - -#include "ace/OS_NS_unistd.h" - -#if !defined (__ACE_INLINE__) -#include "ace/DEV.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, DEV, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_DEV) - -void -ACE_DEV::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_DEV::dump"); -#endif /* ACE_HAS_DUMP */ -} - -// This is the do-nothing constructor. - -ACE_DEV::ACE_DEV (void) -{ - ACE_TRACE ("ACE_DEV::ACE_DEV"); -} - -// Close the device - -int -ACE_DEV::close (void) -{ - ACE_TRACE ("ACE_DEV::close"); - int result = ACE_OS::close (this->get_handle ()); - this->set_handle (ACE_INVALID_HANDLE); - return result; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DEV.h b/ACE/ace/DEV.h deleted file mode 100644 index 8b0c585ddf7..00000000000 --- a/ACE/ace/DEV.h +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file DEV.h - * - * $Id$ - * - * @author Gerhard Lenzer - */ -//============================================================================= - - -#ifndef ACE_DEV_H -#define ACE_DEV_H -#include /**/ "ace/pre.h" - -#include "ace/IO_SAP.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#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 - -/** - * @class ACE_DEV - * - * @brief Defines the member functions for the base class of the - * ACE_DEV abstraction. - */ -class ACE_Export ACE_DEV : public ACE_IO_SAP -{ -public: - /// Close down the DEVICE - int close (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - /** - * Disable signal @a signum - * This is here to prevent Win32 from - * disabling SPIPE using socket calls - */ - int disable (int signum) const ; - -protected: - /// Ensure that this class is an abstract base class - ACE_DEV (void); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/DEV.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_DEV_H */ diff --git a/ACE/ace/DEV.inl b/ACE/ace/DEV.inl deleted file mode 100644 index e00f4fc705e..00000000000 --- a/ACE/ace/DEV.inl +++ /dev/null @@ -1,18 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE int -ACE_DEV::disable (int signum) const -{ -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (signum) ; - return 0 ; -#else /* ACE_WIN32 */ - return ACE_IO_SAP::disable (signum) ; -#endif /* ACE_WIN32 */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DEV_Addr.cpp b/ACE/ace/DEV_Addr.cpp deleted file mode 100644 index 39d1768051f..00000000000 --- a/ACE/ace/DEV_Addr.cpp +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ - -#include "ace/DEV_Addr.h" -#if !defined (__ACE_INLINE__) -#include "ace/DEV_Addr.inl" -#endif /* __ACE_INLINE__ */ - -#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) - -// Transform the current address into string format. - -int -ACE_DEV_Addr::addr_to_string (ACE_TCHAR *s, size_t len) const -{ - ACE_TRACE ("ACE_DEV_Addr::addr_to_string"); - - ACE_OS::strsncpy (s, this->devname_, len); - return 0; -} - -// Return a pointer to the address. - -void * -ACE_DEV_Addr::get_addr (void) const -{ - ACE_TRACE ("ACE_DEV_Addr::get_addr"); - - return (void *) &this->devname_; -} - -void -ACE_DEV_Addr::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_DEV_Addr::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("devname_ = %s"), this->devname_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// Do nothing constructor. - -ACE_DEV_Addr::ACE_DEV_Addr (void) - : ACE_Addr (AF_DEV, sizeof this->devname_) -{ - ACE_TRACE ("ACE_DEV_Addr::ACE_DEV_Addr"); - - (void) ACE_OS::memset ((void *) &this->devname_, - 0, sizeof this->devname_); -} - -int -ACE_DEV_Addr::set (const ACE_DEV_Addr &sa) -{ - this->base_set (sa.get_type (), sa.get_size ()); - - if (sa.get_type () == AF_ANY) - (void) ACE_OS::memset ((void *) &this->devname_, - 0, - sizeof this->devname_); - else - (void) ACE_OS::strsncpy (this->devname_, - sa.devname_, - ACE_DEV_Addr::DEVNAME_LENGTH); - return 0; -} - -// Copy constructor. - -ACE_DEV_Addr::ACE_DEV_Addr (const ACE_DEV_Addr &sa) - : ACE_Addr (AF_DEV, sizeof this->devname_) -{ - ACE_TRACE ("ACE_DEV_Addr::ACE_DEV_Addr"); - - this->set (sa); -} - -ACE_DEV_Addr::ACE_DEV_Addr (const ACE_TCHAR *devname) - : ACE_Addr (AF_DEV, sizeof this->devname_) -{ - ACE_TRACE ("ACE_DEV_Addr::ACE_DEV_Addr"); - - this->set (devname); -} - -ACE_DEV_Addr & -ACE_DEV_Addr::operator= (const ACE_DEV_Addr &sa) -{ - ACE_TRACE ("ACE_DEV_Addr::operator="); - - if (this != &sa) - this->set (sa); - - return *this; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DEV_Addr.h b/ACE/ace/DEV_Addr.h deleted file mode 100644 index 0646260c8f9..00000000000 --- a/ACE/ace/DEV_Addr.h +++ /dev/null @@ -1,90 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file DEV_Addr.h - * - * $Id$ - * - * @author Gerhard Lenzer and Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_DEV_ADDR_H -#define ACE_DEV_ADDR_H - -#include /**/ "ace/pre.h" - -#include "ace/Addr.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/os_include/os_dirent.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_DEV_Addr - * - * @brief Defines device address family address format. - */ -class ACE_Export ACE_DEV_Addr : public ACE_Addr -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_DEV_Addr (void); - - /// Copy constructor. - ACE_DEV_Addr (const ACE_DEV_Addr &sa); - - /// Acts like a copy constructor. - int set (const ACE_DEV_Addr &sa); - - /// Create a ACE_DEV_Addr from a device name. - explicit ACE_DEV_Addr (const ACE_TCHAR *devname); - - /// Create a ACE_Addr from a ACE_DEV pathname. - void set (const ACE_TCHAR *devname); - - /// Assignment operator. - ACE_DEV_Addr &operator= (const ACE_DEV_Addr &); - - /// Return a pointer to the address. - virtual void *get_addr (void) const; - - /// Transform the current address into string format. - virtual int addr_to_string (ACE_TCHAR *addr, size_t) const; - - /// Compare two addresses for equality. - bool operator == (const ACE_DEV_Addr &SAP) const; - - /// Compare two addresses for inequality. - bool operator != (const ACE_DEV_Addr &SAP) const; - - /// Return the path name used for the rendezvous point. - const ACE_TCHAR *get_path_name (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - enum { DEVNAME_LENGTH = MAXPATHLEN + 1 }; - /// Name of the device. - ACE_TCHAR devname_[DEVNAME_LENGTH]; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/DEV_Addr.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACE_DEV_ADDR_H */ diff --git a/ACE/ace/DEV_Addr.inl b/ACE/ace/DEV_Addr.inl deleted file mode 100644 index 820b961d1d0..00000000000 --- a/ACE/ace/DEV_Addr.inl +++ /dev/null @@ -1,51 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_string.h" -#include "ace/Global_Macros.h" -#include "ace/os_include/sys/os_socket.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE void -ACE_DEV_Addr::set (const ACE_TCHAR *devname) -{ - ACE_TRACE ("ACE_DEV_Addr::set"); - - this->ACE_Addr::base_set - (AF_DEV, static_cast (ACE_OS::strlen (devname))); - ACE_OS::strsncpy (this->devname_, devname, ACE_DEV_Addr::DEVNAME_LENGTH); -} - -// Compare two addresses for equality. - -ACE_INLINE bool -ACE_DEV_Addr::operator == (const ACE_DEV_Addr &sap) const -{ - ACE_TRACE ("ACE_DEV_Addr::operator =="); - - return ACE_OS::strcmp (this->devname_, sap.devname_) == 0; -} - -// Compare two addresses for inequality. - -ACE_INLINE bool -ACE_DEV_Addr::operator != (const ACE_DEV_Addr &sap) const -{ - ACE_TRACE ("ACE_DEV_Addr::operator !="); - - return !((*this) == sap); // This is lazy, of course... ;-). -} - -// Return the path name used for the rendezvous point. - -ACE_INLINE const ACE_TCHAR * -ACE_DEV_Addr::get_path_name (void) const -{ - ACE_TRACE ("ACE_DEV_Addr::get_path_name"); - - return this->devname_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DEV_Connector.cpp b/ACE/ace/DEV_Connector.cpp deleted file mode 100644 index a1fef807057..00000000000 --- a/ACE/ace/DEV_Connector.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// $Id$ - -#include "ace/DEV_Connector.h" - -#include "ace/Handle_Ops.h" - -#if !defined (__ACE_INLINE__) -#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) - -void -ACE_DEV_Connector::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_DEV_Connector::dump"); -#endif /* ACE_HAS_DUMP */ -} - -ACE_DEV_Connector::ACE_DEV_Connector (void) -{ - ACE_TRACE ("ACE_DEV_Connector::ACE_DEV_Connector"); -} - -int -ACE_DEV_Connector::connect (ACE_DEV_IO &new_io, - const ACE_DEV_Addr &remote_sap, - ACE_Time_Value *timeout, - const ACE_Addr &, - int, - int flags, - int perms) -{ - ACE_TRACE ("ACE_DEV_Connector::connect"); - - ACE_HANDLE handle = ACE::handle_timed_open (timeout, - remote_sap.get_path_name (), - flags, perms); - new_io.set_handle (handle); - new_io.addr_ = remote_sap; // class copy. - return handle == ACE_INVALID_HANDLE ? -1 : 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DEV_Connector.h b/ACE/ace/DEV_Connector.h deleted file mode 100644 index 9e001c412f4..00000000000 --- a/ACE/ace/DEV_Connector.h +++ /dev/null @@ -1,110 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file DEV_Connector.h - * - * $Id$ - * - * @author Gerhard Lenzer and Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_DEV_CONNECTOR_H -#define ACE_DEV_CONNECTOR_H -#include /**/ "ace/pre.h" - -#include "ace/DEV_IO.h" -#include "ace/Log_Msg.h" -#include "ace/os_include/os_fcntl.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_DEV_Connector - * - * @brief Defines an active connection factory for the ACE_DEV wrappers. - */ -class ACE_Export ACE_DEV_Connector -{ -public: - /// Default constructor. - ACE_DEV_Connector (void); - - /** - * Actively connect and produce a @a new_io if things go well. - * The @a remote_sap is the address that we are trying to connect - * with. The @a timeout is the amount of time to wait to connect. - * If it's 0 then we block indefinitely. If *timeout == {0, 0} then - * the connection is done using non-blocking mode. In this case, if - * the connection can't be made immediately the value of -1 is - * returned with @c errno == EWOULDBLOCK. If *timeout > {0, 0} then - * this is the maximum amount of time to wait before timing out. If the - * time expires before the connection is made @c errno == ETIME. The - * @a local_sap is the value of local address to bind to. If it's - * the default value of ACE_Addr::sap_any then the user is letting - * the OS do the binding. If @a reuse_addr == 1 then the - * is reused, even if it hasn't been cleanedup yet. - * The @a flags and @a perms arguments are passed down to the - * method. - */ - ACE_DEV_Connector (ACE_DEV_IO &new_io, - const ACE_DEV_Addr &remote_sap, - ACE_Time_Value *timeout = 0, - const ACE_Addr &local_sap = ACE_Addr::sap_any, - int reuse_addr = 0, - int flags = O_RDWR, - int perms = 0); - - /** - * Actively connect and produce a @a new_io if things go well. - * The @a remote_sap is the address that we are trying to connect - * with. The @a timeout is the amount of time to wait to connect. - * If it's 0 then we block indefinitely. If *timeout == {0, 0} then - * the connection is done using non-blocking mode. In this case, if - * the connection can't be made immediately the value of -1 is - * returned with @c errno == EWOULDBLOCK. If *timeout > {0, 0} then - * this is the maximum amount of time to wait before timing out. If the - * time expires before the connection is made @c errno == ETIME. The - * @a local_sap is the value of local address to bind to. If it's - * the default value of ACE_Addr::sap_any then the user is letting - * the OS do the binding. If @a reuse_addr == 1 then the - * is reused, even if it hasn't been cleanedup yet. - * The @a flags and @a perms arguments are passed down to the - * method. - */ - int connect (ACE_DEV_IO &new_io, - const ACE_DEV_Addr &remote_sap, - ACE_Time_Value *timeout = 0, - const ACE_Addr &local_sap = ACE_Addr::sap_any, - int reuse_addr = 0, - int flags = O_RDWR, - int perms = 0); - - /// Resets any event associations on this handle - int reset_new_handle (ACE_HANDLE handle); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - // = Meta-type info - typedef ACE_DEV_Addr PEER_ADDR; - typedef ACE_DEV_IO PEER_STREAM; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/DEV_Connector.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_DEV_CONNECTOR_H */ diff --git a/ACE/ace/DEV_Connector.inl b/ACE/ace/DEV_Connector.inl deleted file mode 100644 index 314952699de..00000000000 --- a/ACE/ace/DEV_Connector.inl +++ /dev/null @@ -1,34 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Creates a Local ACE_DEV. - -ACE_INLINE -ACE_DEV_Connector::ACE_DEV_Connector (ACE_DEV_IO &new_io, - const ACE_DEV_Addr &remote_sap, - ACE_Time_Value *timeout, - const ACE_Addr &local_sap, - int reuse_addr, - int flags, - int perms) -{ - ACE_TRACE ("ACE_DEV_Connector::ACE_DEV_Connector"); - if (this->connect (new_io, remote_sap, timeout, local_sap, - reuse_addr, flags, perms) == ACE_IO_SAP::INVALID_HANDLE - && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME)) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("address %s, %p\n"), - remote_sap.get_path_name (), ACE_TEXT ("ACE_DEV_IO"))); -} - -ACE_INLINE int -ACE_DEV_Connector::reset_new_handle (ACE_HANDLE handle) -{ - ACE_UNUSED_ARG (handle); - // Nothing to do here since the handle is not a socket - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DEV_IO.cpp b/ACE/ace/DEV_IO.cpp deleted file mode 100644 index f5367d1d5cd..00000000000 --- a/ACE/ace/DEV_IO.cpp +++ /dev/null @@ -1,131 +0,0 @@ -// $Id$ - -#include "ace/DEV_IO.h" -#include "ace/Log_Msg.h" - -#if !defined (__ACE_INLINE__) -#include "ace/DEV_IO.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, DEV_IO, "$Id$") - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_DEV_IO) - -// Return the local endpoint address. - -int -ACE_DEV_IO::get_local_addr (ACE_DEV_Addr &addr) const -{ - ACE_TRACE ("ACE_DEV_IO::get_local_addr"); - - addr = this->addr_; - return 0; -} - -// Return the address of the remotely connected peer (if there is -// one). - -int -ACE_DEV_IO::get_remote_addr (ACE_DEV_Addr &addr) const -{ - ACE_TRACE ("ACE_DEV_IO::get_remote_addr"); - addr = this->addr_; - return 0; -} - -void -ACE_DEV_IO::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_DEV_IO::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - this->addr_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// Simple-minded do nothing constructor. - -ACE_DEV_IO::ACE_DEV_IO (void) -{ - ACE_TRACE ("ACE_DEV_IO::ACE_DEV_IO"); -} - -// 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_DEV_IO::send (size_t n, ...) const -{ - ACE_TRACE ("ACE_DEV_IO::send"); - va_list argp; - int total_tuples = static_cast (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 (int i = 0; i < total_tuples; i++) - { - iovp[i].iov_base = va_arg (argp, char *); - iovp[i].iov_len = va_arg (argp, int); - } - - ssize_t result = ACE_OS::writev (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 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_DEV_IO::recv (size_t n, ...) const -{ - ACE_TRACE ("ACE_DEV_IO::recv"); - va_list argp; - int total_tuples = static_cast (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 (int i = 0; i < total_tuples; i++) - { - iovp[i].iov_base = va_arg (argp, char *); - iovp[i].iov_len = va_arg (argp, int); - } - - ssize_t result = ACE_OS::readv (this->get_handle (), iovp, total_tuples); -#if !defined (ACE_HAS_ALLOCA) - delete [] iovp; -#endif /* !defined (ACE_HAS_ALLOCA) */ - va_end (argp); - return result; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DEV_IO.h b/ACE/ace/DEV_IO.h deleted file mode 100644 index d3b1aadaa2f..00000000000 --- a/ACE/ace/DEV_IO.h +++ /dev/null @@ -1,185 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file DEV_IO.h - * - * $Id$ - * - * @author Gerhard Lenzer - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_DEV_IO_H -#define ACE_DEV_IO_H -#include /**/ "ace/pre.h" - -#include "ace/DEV.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_STREAM_PIPES) -# include "ace/OS_NS_stropts.h" -#endif /* ACE_HAS_STREAM_PIPES */ - -#include "ace/os_include/os_stdio.h" -#include "ace/os_include/sys/os_uio.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Time_Value; - -/** - * @class ACE_DEV_IO - * - * @brief Read/Write operations on Devices. - */ -class ACE_Export ACE_DEV_IO : public ACE_DEV -{ -public: - friend class ACE_DEV_Connector; - - /// Default constructor. - ACE_DEV_IO (void); - - // = Various send operations. - /// send upto @a n bytes in @a buf. - ssize_t send (const void *buf, size_t n) const; - - /// Recv upto @a n bytes in @a buf. - ssize_t recv (void *buf, size_t n) const; - - /// Send n bytes, keep trying until n are sent. - ssize_t send_n (const void *buf, - size_t n) const; - - /** - * @name I/O operations - * - * Notes on common parameters: - * - * @a buf is the buffer to write from or receive into. - * - * @a len is the number of bytes to transfer. - * - * The @a timeout parameter in the following methods indicates how - * long to blocking trying to transfer data. If @a timeout == 0, - * then the call behaves as a normal send/recv call, i.e., for - * blocking sockets, the call will block until action is possible; - * for non-blocking sockets, EWOULDBLOCK will be returned if no - * action is immediately possible. - * - * If @a timeout != 0, the call will wait until the relative time - * specified in *@a timeout elapses. - * - * The "_n()" I/O methods keep looping until all the data has been - * transferred. These methods also work for sockets in non-blocking - * mode i.e., they keep looping on EWOULDBLOCK. @a timeout is used - * to make sure we keep making progress, i.e., the same timeout - * value is used for every I/O operation in the loop and the timeout - * is not counted down. - * - * The return values for the "*_n()" methods match the return values - * from the non "_n()" methods and are specified as follows: - * - * - On complete transfer, the number of bytes transferred is returned. - * - On timeout, -1 is returned, errno == ETIME. - * - On error, -1 is returned, errno is set to appropriate error. - * - On EOF, 0 is returned, errno is irrelevant. - * - * On partial transfers, i.e., if any data is transferred before - * timeout/error/EOF, @a bytes_transferred will contain the number of - * bytes transferred. - */ - ssize_t recv_n (void *buf, - size_t n, - const ACE_Time_Value *timeout = 0, - size_t *bytes_transferred = 0) const; - -#if defined (ACE_HAS_STREAM_PIPES) - /// Recv bytes via STREAM pipes using "band" mode. - ssize_t recv (ACE_Str_Buf *cntl, - ACE_Str_Buf *data, - int *band, - int *flags) const; - - /// Send bytes via STREAM pipes using "band" mode. - ssize_t send (const ACE_Str_Buf *cntl, - const ACE_Str_Buf *data, - int band, - int flags) const; - - /// Recv @a cntl and @a data via STREAM pipes. - ssize_t recv (ACE_Str_Buf *cntl, - ACE_Str_Buf *data, - int *flags) const; - - /// Send @a cntl and @a data via STREAM pipes. - ssize_t send (const ACE_Str_Buf *cntl, - const ACE_Str_Buf *data, - int flags = 0) const; -#endif /* ACE_HAS_STREAM_PIPES */ - - /// Send iovecs via <::writev>. - ssize_t send (const iovec iov[], size_t n) const; - - /// Recv iovecs via <::readv>. - ssize_t recv (iovec iov[], size_t n) const; - - /** - * 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 send (size_t n, ...) const; - - /** - * 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 - * number of tuple pairs! - */ - ssize_t recv (size_t n, ...) const; - - /// Send @a n bytes via Win32 WriteFile using overlapped I/O. - ssize_t send (const void *buf, size_t n, ACE_OVERLAPPED *overlapped) const; - - /// Recv @a n bytes via Win32 ReadFile using overlapped I/O. - ssize_t recv (void *buf, size_t n, ACE_OVERLAPPED *overlapped) const; - - /// Dump the state of an object. - void dump (void) const; - - // = The following two methods are no-ops to keep the - // ACE_Connector happy. - /// Return the local endpoint address. - int get_local_addr (ACE_DEV_Addr &) const; - - /// Return the address of the remotely connected peer (if there is - /// one). - int get_remote_addr (ACE_DEV_Addr &) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - // = Meta-type info - typedef ACE_DEV_Addr PEER_ADDR; - -private: - /// Address of device we are connected to. - ACE_DEV_Addr addr_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/DEV_IO.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_DEV_IO_H */ diff --git a/ACE/ace/DEV_IO.inl b/ACE/ace/DEV_IO.inl deleted file mode 100644 index cb9392e2bf3..00000000000 --- a/ACE/ace/DEV_IO.inl +++ /dev/null @@ -1,126 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_sys_uio.h" -#include "ace/OS_NS_unistd.h" -#include "ace/OS_Memory.h" - -#include "ace/ACE.h" - -// Send exactly N bytes from BUF to this device. Keeping trying until -// this many bytes are sent. - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE ssize_t -ACE_DEV_IO::send_n (const void *buf, size_t n) const -{ - ACE_TRACE ("ACE_DEV_IO::send_n"); - return ACE::write_n (this->get_handle (), buf, n); -} - -// Receive exactly N bytes from this file into BUF. Keep trying until -// this many bytes are received. - -ACE_INLINE ssize_t -ACE_DEV_IO::recv_n (void *buf, - size_t n, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) const -{ - ACE_TRACE ("ACE_DEV_IO::recv_n"); -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (timeout); - - return ACE::read_n (this->get_handle (), - buf, - n, - bytes_transferred); -#else - return ACE::recv_n (this->get_handle (), - buf, - n, - timeout, - bytes_transferred); -#endif /*ACE_WIN32*/ -} - -ACE_INLINE ssize_t -ACE_DEV_IO::send (const void *buf, size_t n) const -{ - ACE_TRACE ("ACE_DEV_IO::send"); - return ACE_OS::write (this->get_handle (), (const char *) buf, n); -} - -ACE_INLINE ssize_t -ACE_DEV_IO::recv (void *buf, size_t n) const -{ - ACE_TRACE ("ACE_DEV_IO::recv"); - return ACE_OS::read (this->get_handle (), (char *) buf, n); -} - -ACE_INLINE ssize_t -ACE_DEV_IO::send (const iovec iov[], size_t n) const -{ - ACE_TRACE ("ACE_DEV_IO::send"); - return ACE_OS::writev (this->get_handle (), iov, static_cast (n)); -} - -ACE_INLINE ssize_t -ACE_DEV_IO::recv (iovec iov[], size_t n) const -{ - ACE_TRACE ("ACE_DEV_IO::recv"); - return ACE_OS::readv (this->get_handle (), iov, static_cast (n)); -} - -ACE_INLINE ssize_t -ACE_DEV_IO::send (const void *buf, size_t n, - ACE_OVERLAPPED *overlapped) const -{ - ACE_TRACE ("ACE_DEV_IO::send"); - return ACE_OS::write (this->get_handle (), - (const char *) buf, n, - overlapped); -} - -ACE_INLINE ssize_t -ACE_DEV_IO::recv (void *buf, size_t n, - ACE_OVERLAPPED *overlapped) const -{ - ACE_TRACE ("ACE_DEV_IO::recv"); - return ACE_OS::read (this->get_handle (), (char *) buf, n, - overlapped); -} - -#if defined (ACE_HAS_STREAM_PIPES) -ACE_INLINE ssize_t -ACE_DEV_IO::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *band, int *flags) const -{ - ACE_TRACE ("ACE_DEV_IO::recv"); - return ACE_OS::getpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags); -} - -ACE_INLINE ssize_t -ACE_DEV_IO::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int band, int flags) const -{ - ACE_TRACE ("ACE_DEV_IO::send"); - return ACE_OS::putpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags); -} - -ACE_INLINE ssize_t -ACE_DEV_IO::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *flags) const -{ - ACE_TRACE ("ACE_DEV_IO::recv"); - return ACE_OS::getmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags); -} - -ACE_INLINE ssize_t -ACE_DEV_IO::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int flags) const -{ - ACE_TRACE ("ACE_DEV_IO::send"); - return ACE_OS::putmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags); -} -#endif /* ACE_HAS_STREAM_PIPES */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DLL.cpp b/ACE/ace/DLL.cpp deleted file mode 100644 index cdee3c6bd24..00000000000 --- a/ACE/ace/DLL.cpp +++ /dev/null @@ -1,267 +0,0 @@ -// $Id$ - -#include "ace/DLL.h" - -#include "ace/Log_Msg.h" -#include "ace/ACE.h" -#include "ace/DLL_Manager.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_dlfcn.h" -#include "ace/OS_NS_Thread.h" - -#include - -ACE_RCSID(ace, DLL, "$Id$") - - ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Default constructor. Also, by default, the object will be closed -// before it is destroyed. - -ACE_DLL::ACE_DLL (bool close_handle_on_destruction) - : open_mode_ (0), - dll_name_ (0), - close_handle_on_destruction_ (close_handle_on_destruction), - dll_handle_ (0), - error_ (0) -{ - ACE_TRACE ("ACE_DLL::ACE_DLL (int)"); -} - -ACE_DLL::ACE_DLL (const ACE_DLL &rhs) - : open_mode_ (0), - dll_name_ (0), - close_handle_on_destruction_ (false), - dll_handle_ (0), - error_ (0) -{ - ACE_TRACE ("ACE_DLL::ACE_DLL (const ACE_DLL &)"); - - if (rhs.dll_name_ - // This will automatically up the refcount. - && this->open (rhs.dll_name_, - rhs.open_mode_, - rhs.close_handle_on_destruction_) != 0 - && ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_DLL::copy_ctor: error: %s\n"), - this->error ())); -} - -// Assignment operator - -ACE_DLL & -ACE_DLL::operator= (const ACE_DLL &rhs) -{ - ACE_TRACE ("ACE_DLL::operator= (const ACE_DLL &)"); - - ACE_DLL tmp (rhs); - - std::swap (this->open_mode_, tmp.open_mode_); - std::swap (this->dll_name_, tmp.dll_name_); - std::swap (this->close_handle_on_destruction_, - tmp.close_handle_on_destruction_); - std::swap (this->dll_handle_, tmp.dll_handle_); - std::swap (this->error_, tmp.error_); - - return *this; -} - - -// If the library name and the opening mode are specified than on -// object creation the library is implicitly opened. - -ACE_DLL::ACE_DLL (const ACE_TCHAR *dll_name, - int open_mode, - bool close_handle_on_destruction) - : open_mode_ (open_mode), - dll_name_ (0), - close_handle_on_destruction_ (close_handle_on_destruction), - dll_handle_ (0), - error_ (0) -{ - ACE_TRACE ("ACE_DLL::ACE_DLL"); - - if (this->open (dll_name, this->open_mode_, close_handle_on_destruction) != 0 - && ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_DLL::open: error calling open: %s\n"), - this->error ())); -} - -// The library is closed before the class gets destroyed depending on -// the close_handle_on_destruction value specified which is stored in -// close_handle_on_destruction_. - -ACE_DLL::~ACE_DLL (void) -{ - ACE_TRACE ("ACE_DLL::~ACE_DLL"); - - this->close (); - - // Normally delete()d in ACE_DLL::close(). However, that may not - // occur if full ACE_DLL initialization is interrupted due to errors - // (e.g. attempting to open a DSO/DLL that does not exist). Make - // sure this->dll_name_ is deallocated. - delete [] this->dll_name_; -} - -// This method opens the library based on the mode specified using the -// ACE_SHLIB_HANDLE which is obtained on making the ACE_OS::dlopen call. -// The default mode is: -// RTLD_LAZY Only references to data symbols are relocate when the -// object is first loaded. -// The other modes include: -// RTLD_NOW All necessary relocations are performed when the -// object is first loaded. -// RTLD_GLOBAL The object symbols are made available for the -// relocation processing of any other object. - -int -ACE_DLL::open (const ACE_TCHAR *dll_filename, - int open_mode, - bool close_handle_on_destruction) -{ - ACE_TRACE ("ACE_DLL::open"); - - return open_i (dll_filename, open_mode, close_handle_on_destruction); -} - -int -ACE_DLL::open_i (const ACE_TCHAR *dll_filename, - int open_mode, - bool close_handle_on_destruction, - ACE_SHLIB_HANDLE handle) -{ - ACE_TRACE ("ACE_DLL::open_i"); - - this->error_ = 0; - - if (!dll_filename) - { - if (ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_DLL::open_i: dll_name is %s\n"), - this->dll_name_ == 0 ? ACE_TEXT ("(null)") - : this->dll_name_)); - return -1; - } - - if (this->dll_handle_) - { - // If we have a good handle and its the same name, just return. - if (ACE_OS::strcmp (this->dll_name_, dll_filename) == 0) - return 0; - else - this->close (); - } - - if (!this->dll_name_) - this->dll_name_ = ACE::strnew (dll_filename); - - this->open_mode_ = open_mode; - this->close_handle_on_destruction_ = close_handle_on_destruction; - - this->dll_handle_ = ACE_DLL_Manager::instance()->open_dll (this->dll_name_, - this->open_mode_, - handle); - - if (!this->dll_handle_) - this->error_ = 1; - - return this->error_ ? -1 : 0; -} - -// The symbol refernce of the name specified is obtained. - -void * -ACE_DLL::symbol (const ACE_TCHAR *sym_name, int ignore_errors) -{ - ACE_TRACE ("ACE_DLL::symbol"); - - this->error_ = 0; - - void *sym = 0; - if (this->dll_handle_) - sym = this->dll_handle_->symbol (sym_name, ignore_errors); - - if (!sym) - this->error_ = 1; - - return sym; -} - -// The library is closed using the ACE_SHLIB_HANDLE object, i.e., the -// shared object is now disassociated form the current process. - -int -ACE_DLL::close (void) -{ - ACE_TRACE ("ACE_DLL::close"); - - int retval = 0; - - if (this->dll_handle_ - && this->close_handle_on_destruction_ - && this->dll_name_ - && (retval = ACE_DLL_Manager::instance ()->close_dll (this->dll_name_)) != 0) - this->error_ = 1; - - // Even if close_dll() failed, go ahead and cleanup. - this->dll_handle_ = 0; - delete [] this->dll_name_; - this->dll_name_ = 0; - this->close_handle_on_destruction_ = false; - - return retval; -} - -// This method is used return the last error of a library operation. - -ACE_TCHAR * -ACE_DLL::error (void) const -{ - ACE_TRACE ("ACE_DLL::error"); - if (this->error_) - { - return ACE_OS::dlerror (); - } - - return 0; -} - -// Return the handle to the user either temporarily or forever, thus -// orphaning it. If 0 means the user wants the handle forever and if 1 -// means the user temporarily wants to take the handle. - -ACE_SHLIB_HANDLE -ACE_DLL::get_handle (int become_owner) const -{ - ACE_TRACE ("ACE_DLL::get_handle"); - - ACE_SHLIB_HANDLE handle = ACE_SHLIB_INVALID_HANDLE; - - if (this->dll_handle_) - handle = this->dll_handle_->get_handle (become_owner); - - return handle; -} - -// Set the handle for the DLL. By default, the object will be closed -// before it is destroyed. - -int -ACE_DLL::set_handle (ACE_SHLIB_HANDLE handle, - bool close_handle_on_destruction) -{ - ACE_TRACE ("ACE_DLL::set_handle"); - - // Create a unique name. Note that this name is only quaranteed - // to be unique for the life of this object. - ACE_TCHAR temp[ACE_UNIQUE_NAME_LEN]; - ACE_OS::unique_name (this, temp, ACE_UNIQUE_NAME_LEN); - - return this->open_i (temp, 1, close_handle_on_destruction, handle); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DLL.h b/ACE/ace/DLL.h deleted file mode 100644 index 64cb646576a..00000000000 --- a/ACE/ace/DLL.h +++ /dev/null @@ -1,196 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file DLL.h - * - * $Id$ - * - * @author Kirthika Parameswaran - */ -//============================================================================= - -#ifndef ACE_DLL_H -#define ACE_DLL_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/Global_Macros.h" -#include "ace/os_include/os_dlfcn.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_DLL_Handle; - -/** - * @class ACE_DLL - * - * @brief Provides an abstract interface for handling various DLL - * operations. - * - * This class is a wrapper over the various methods for utilizing - * a dynamically linked library (DLL), which is called a shared - * library on some platforms. Operations @c open(), @c close(), and - * @c symbol() have been implemented to help opening/closing and - * extracting symbol information from a DLL, respectively. - */ -class ACE_Export ACE_DLL -{ -public: - // = Initialization and termination methods. - - /** - * Default constructor. By default, the close() operation on the - * object will be invoked before it is destroyed. - * @param close_handle_on_destruction Indicates whether or not the - * close() method will be called to close an open DLL when this - * object is destroyed. By default, close() will be called. - * Set this parameter to 0 for situations where the DLL's lifetime - * is controlled in a scope other than that of this ACE_DLL object. - * For example, termination by ACE_DLL_Manager via ACE::fini(). - */ - explicit ACE_DLL (bool close_handle_on_destruction = true); - - /// Allow assignment - ACE_DLL& operator= (const ACE_DLL &rhs); - - - /** - * This constructor performs the actions of open() during construction. - * @param dll_name The name or path of the DLL to load. - * @param open_mode Flags to alter the actions taken when loading the DLL. - * The possible values are: - * @li @c RTLD_LAZY (this the default): loads identifier symbols but - * not the symbols for functions, which are loaded dynamically - * on-demand. - * @li @c RTLD_NOW: performs all necessary relocations when - * @a dll_name is first loaded - * @li RTLD_GLOBAL: makes symbols available for relocation - * processing of any other DLLs. - * @param close_handle_on_destruction Indicates whether or not the - * close() method will be called to close an open DLL when this - * object is destroyed. By default, close() will be called. - * Set this parameter to 0 for situations where the DLL's lifetime - * is controlled in a scope other than that of this ACE_DLL object. - * For example, termination by ACE_DLL_Manager via ACE::fini(). - */ - explicit ACE_DLL (const ACE_TCHAR *dll_name, - int open_mode = ACE_DEFAULT_SHLIB_MODE, - bool close_handle_on_destruction = true); - - /// Copy constructor. - ACE_DLL (const ACE_DLL &); - - /** - * This method opens and dynamically links a specified DLL. - * @param dll_name The filename or path of the DLL to load. - * If a filename is given to @c open(), the @c ACE::ldfind() is used - * to locate DLLs via the following algorithms: (1) DLL filename - * expansion: @c ACE::ldfind() determines the name of the DLL by - * adding the appropriate prefix and suffix, e.g., it adds the @c lib - * prefix and @c .so suffix for Solaris and the @c .dll suffix for - * Windows and (2) DLL search path: @c ACE::ldfind() will also search - * for the designated DLL using the platform's DLL search path - * environment variable, e.g., it searches for DLLs using @c - * LD_LIBRARY_PATH on many UNIX systems and @c PATH on Windows. - * @param open_mode Flags to alter the actions taken when loading the DLL. - * The possible values are: - * @li @c RTLD_LAZY (this the default): loads identifier symbols but - * not the symbols for functions, which are loaded dynamically - * on-demand. - * @li @c RTLD_NOW: performs all necessary relocations when - * @a dll_name is first loaded - * @li RTLD_GLOBAL: makes symbols available for relocation - * processing of any other DLLs. - * @param close_handle_on_destruction Indicates whether or not the - * close() method will be called to close an open DLL when this - * object is destroyed. By default, close() will be called. - * Set this parameter to 0 for situations where the DLL's lifetime - * is controlled in a scope other than that of this ACE_DLL object. - * For example, termination by ACE_DLL_Manager via ACE::fini(). - * @retval -1 On failure - * @retval 0 On success. - */ - int open (const ACE_TCHAR *dll_name, - int open_mode = ACE_DEFAULT_SHLIB_MODE, - bool close_handle_on_destruction = true); - - /// Call to close the DLL object. - int close (void); - - /** - * Called when the DLL object is destroyed -- invokes close() if the - * @a close_handle_on_destruction flag was set to non-zero in the - * constructor or open() method. - */ - ~ACE_DLL (void); - - /** - * Look up a named symbol in the DLL. DLL must be successfully opened - * before calling symbol(). - * @param symbol_name The symbol name to look up. - * @param ignore_errors If set to 1, allows you to probe a dll without - * generating error messages in the log. Handy for determining - * the capabilities of a library. - * @return Returns the value of @a symbol_name if it is a valid symbol - * in the DLL. Otherwise, returns 0. - */ - void *symbol (const ACE_TCHAR *symbol_name, int ignore_errors = 0); - - /// Returns a pointer to a string explaining that an error occured. You - /// will need to consult the error log for the actual error string - /// returned by the OS. - ACE_TCHAR *error (void) const; - - /** - * 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 - * 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. - int set_handle (ACE_SHLIB_HANDLE handle, - bool close_handle_on_destruction = true); - -private: - - int open_i (const ACE_TCHAR *dll_name, - int open_mode = ACE_DEFAULT_SHLIB_MODE, - bool close_handle_on_destruction = true, - ACE_SHLIB_HANDLE handle = 0); - - - //private: -public: - - /// Open mode. - int open_mode_; - - /// Keep track of the name of the loaded dll, so it can be used - /// to remove framework components, singletons that live in the dll, - /// prior to unloading the dll in the close() method. - ACE_TCHAR *dll_name_; - - /// This flag keeps track of whether we should close the handle - /// automatically when the object is destroyed. - bool close_handle_on_destruction_; - - ACE_DLL_Handle *dll_handle_; - - /// Flag to record if the last operation had an error. - bool error_; - -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* ACE_DLL_H */ diff --git a/ACE/ace/DLL_Manager.cpp b/ACE/ace/DLL_Manager.cpp deleted file mode 100644 index 83c07cd125d..00000000000 --- a/ACE/ace/DLL_Manager.cpp +++ /dev/null @@ -1,787 +0,0 @@ -// $Id$ - -#include "ace/DLL_Manager.h" - -#include "ace/Log_Msg.h" -#include "ace/ACE.h" -#include "ace/Framework_Component.h" - -#include "ace/Lib_Find.h" -#include "ace/Object_Manager.h" -#include "ace/SString.h" -#include "ace/Recursive_Thread_Mutex.h" -#include "ace/Guard_T.h" -#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 - -sig_atomic_t ACE_DLL_Handle::open_called_ = 0; - -ACE_DLL_Handle::ACE_DLL_Handle (void) - : refcount_ (0), - dll_name_ (0), - handle_ (ACE_SHLIB_INVALID_HANDLE) -{ - ACE_TRACE ("ACE_DLL_Handle::ACE_DLL_Handle"); -} - -ACE_DLL_Handle::~ACE_DLL_Handle (void) -{ - ACE_TRACE ("ACE_DLL_Handle::~ACE_DLL_Handle"); - this->close (1); - delete[] this->dll_name_; -} - -const ACE_TCHAR * -ACE_DLL_Handle::dll_name (void) const -{ - ACE_TRACE ("ACE_DLL_Handle::dll_name"); - return this->dll_name_; -} - -int -ACE_DLL_Handle::open (const ACE_TCHAR *dll_name, - int open_mode, - ACE_SHLIB_HANDLE handle) -{ - ACE_TRACE ("ACE_DLL_Handle::open"); - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0)); - - if (this->dll_name_) - { - // Once dll_name_ has been set, it can't be changed.. - if (ACE_OS::strcmp (this->dll_name_, dll_name) != 0) - { - if (ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("(%P|%t) DLL_Handle::open: error, ") - ACE_TEXT ("tried to reopen %s with name %s\n"), - this->dll_name_, - dll_name)); - - return -1; - } - } - else - this->dll_name_ = ACE::strnew (dll_name); - - if (!this->open_called_) - this->open_called_ = 1; - - // If it hasn't been loaded yet, go ahead and do that now. - if (this->handle_ == ACE_SHLIB_INVALID_HANDLE) - { - if (handle) - this->handle_ = handle; - else - { - /* - ** Get the set of names to try loading. We need to do this to - ** properly support the ability for a user to specify a simple, - ** unadorned name (for example, "ACE") that will work across - ** platforms. We apply platform specifics to get a name that will - ** work (e.g. libACE, ACEd.dll, ACE.dll, etc.) We rely on the - ** underlying dlopen() implementation to "Do The Right Thing" in - ** terms of using relative paths, LD_LIBRARY_PATH, system security - ** rules, etc. except when ACE_MUST_HELP_DLOPEN_SEARCH_PATH is set. - ** If it is set, then ACE::ldfind() scans the configured path - ** looking for a match on the name and prefix/suffix applications. - ** NOTE: having ACE scan for a file and then pass a fully-qualified - ** pathname to dlopen() is a potential security hole; therefore, - ** do not use ACE_MUST_HELP_DLOPEN_SEARCH_PATH unless necessary - ** and only after considering the risks. - */ - ACE_Array dll_names; - dll_names.max_size (10); // Decent guess to avoid realloc later - -#if defined (ACE_MUST_HELP_DLOPEN_SEARCH_PATH) - // Find out where the library is - ACE_TCHAR dll_pathname[MAXPATHLEN + 1]; - - // Transform the pathname into the appropriate dynamic link library - // by searching the ACE_LD_SEARCH_PATH. - ACE::ldfind (dll_name, - dll_pathname, - (sizeof dll_pathname / sizeof (ACE_TCHAR))); - ACE_TString dll_str (dll_pathname); - dll_names.size (1); - dll_names.set (dll_str, 0); -#else - this->get_dll_names (dll_name, dll_names); -#endif - - ACE_Array_Iterator name_iter (dll_names); - ACE_TString *name = 0; - while (name_iter.next (name)) - { - // The ACE_SHLIB_HANDLE object is obtained. - this->handle_ = ACE_OS::dlopen (name->c_str (), - open_mode); - - if (ACE::debug ()) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::open ") - ACE_TEXT ("(\"%s\", 0x%x) -> %s: %s\n"), - name->c_str (), - open_mode, - ((this->handle_ != ACE_SHLIB_INVALID_HANDLE) - ? ACE_TEXT ("succeeded") - : ACE_TEXT ("failed")), - this->error()->c_str())); - } - - if (this->handle_ != ACE_SHLIB_INVALID_HANDLE) // Good one? - break; - - // If errno is ENOENT we just skip over this one, - // anything else - like an undefined symbol, for - // instance must be flagged here or the next error will - // mask it. - // @TODO: If we've found our DLL _and_ it's - // broken, should we continue at all? - if ((errno != 0) && (errno != ENOENT) && ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::open ") - ACE_TEXT ("(\'%s\') failed, errno=") - ACE_TEXT ("%d: %s\n"), - name->c_str (), - errno, - this->error ()->c_str ())); - -#if defined (AIX) - // AIX often puts the shared library file (most often named - // shr.o) inside an archive library. If this is an archive - // library name, then try appending [shr.o] and retry. - if (ACE_TString::npos != name->strstr (ACE_TEXT (".a"))) - { - ACE_TCHAR aix_pathname[MAXPATHLEN + 1]; - ACE_OS::strncpy (aix_pathname, - name->c_str (), - name->length ()); - aix_pathname[name->length ()] = '\0'; - ACE_OS::strcat (aix_pathname, ACE_TEXT ("(shr.o)")); - open_mode |= RTLD_MEMBER; - - if (ACE::debug ()) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::open ") - ACE_TEXT ("(\"%s\", 0x%x) -> %s: %s\n"), - aix_pathname, - open_mode, - ACE_TEXT ((this->handle_ != ACE_SHLIB_INVALID_HANDLE) - ? "succeeded" - : "failed"), - this->error()->c_str())); - } - - this->handle_ = ACE_OS::dlopen (aix_pathname, open_mode); - if (this->handle_ != ACE_SHLIB_INVALID_HANDLE) - break; - - // If errno is ENOENT we just skip over this one, anything - // else - like an undefined symbol, for instance - // must be flagged here or the next error will mask it. - // - // @TODO: If we've found our DLL _and_ it's broken, - // should we continue at all? - if (ACE::debug () && (errno != 0) && (errno != ENOENT)) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::open ") - ACE_TEXT ("(\'%s\') failed, errno=") - ACE_TEXT ("%d: %s\n"), - name->c_str (), - errno, - this->error ()->c_str ())); - - } -#endif /* AIX */ - - name_iter.advance (); - } - - if (this->handle_ == ACE_SHLIB_INVALID_HANDLE) - { - if (ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::open (\"%s\"): ") - ACE_TEXT ("Invalid handle error: %s\n"), - this->dll_name_, - this->error ()->c_str ())); - - return -1; - } - } - } - - ++this->refcount_; - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::open - %s (%d), refcount=%d\n"), - this->dll_name_, - this->handle_, - this->refcount_)); - return 0; -} - - -int -ACE_DLL_Handle::close (int unload) -{ - ACE_TRACE ("ACE_DLL_Handle::close"); - - int retval = 0; - ACE_SHLIB_HANDLE h = ACE_SHLIB_INVALID_HANDLE; - - // Only hold the lock until it comes time to dlclose() the DLL. Closing - // the DLL can cause further shutdowns as DLLs and their dependents are - // unloaded. - { - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0)); - - // Since we don't actually unload the dll as soon as the refcount - // reaches zero, we need to make sure we don't decrement it below - // zero. - if (this->refcount_ > 0) - --this->refcount_; - else - this->refcount_ = 0; - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::close - ") - ACE_TEXT ("%s (handle=%d, refcount=%d)\n"), - this->dll_name_, - this->handle_, - this->refcount_)); - - if (this->refcount_ == 0 && - this->handle_ != ACE_SHLIB_INVALID_HANDLE && - unload == 1) - { - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::close: ") - ACE_TEXT ("Unloading %s (handle=%d)\n"), - this->dll_name_, - this->handle_)); - - // First remove any associated Framework Components. - ACE_Framework_Repository *frPtr= ACE_Framework_Repository::instance (); - if (frPtr) - { - frPtr->remove_dll_components (this->dll_name_); - } - - h = this->handle_; - this->handle_ = ACE_SHLIB_INVALID_HANDLE; - } - } // Release lock_ here - - if (h != ACE_SHLIB_INVALID_HANDLE) - { - retval = ACE_OS::dlclose (h); - - if (retval != 0 && ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::close - ") - ACE_TEXT ("Failed with: \"%s\".\n"), - this->error ()->c_str ())); - } - - return retval; -} - -sig_atomic_t -ACE_DLL_Handle::refcount (void) const -{ - return this->refcount_; -} - -void * -ACE_DLL_Handle::symbol (const ACE_TCHAR *sym_name, int ignore_errors) -{ - ACE_TRACE ("ACE_DLL_Handle::symbol"); - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0)); - - ACE_Auto_Array_Ptr auto_name (ACE::ldname (sym_name)); - // handle_ can be invalid especially when ACE_DLL_Handle resigned ownership - // BTW. Handle lifecycle management is a little crazy in ACE - if (this->handle_ != ACE_SHLIB_INVALID_HANDLE) - { -#if defined (ACE_OPENVMS) - void *sym = ACE::ldsymbol (this->handle_, auto_name.get ()); -#else - void *sym = ACE_OS::dlsym (this->handle_, auto_name.get ()); -#endif - - // Linux says that the symbol could be null and that it isn't an - // error. So you should check the error message also, but since - // null symbols won't do us much good anyway, let's still report - // an error. - if (!sym && ignore_errors != 1) - { - if (ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::symbol (\"%s\") ") - ACE_TEXT (" failed with \"%s\".\n"), - auto_name.get (), - this->error ()->c_str ())); - - return 0; - } - return sym; - } - return 0; -} - -ACE_SHLIB_HANDLE -ACE_DLL_Handle::get_handle (int become_owner) -{ - ACE_TRACE ("ACE_DLL_Handle::get_handle"); - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0)); - - if (this->refcount_ == 0 && become_owner != 0) - { - if (ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE (%P|%t) DLL_Handle::get_handle: ") - ACE_TEXT ("cannot become owner, refcount == 0.\n"))); - - return ACE_SHLIB_INVALID_HANDLE; - } - - ACE_SHLIB_HANDLE handle = this->handle_; - - if (become_owner != 0) - { - if (--this->refcount_ == 0) - this->handle_ = ACE_SHLIB_INVALID_HANDLE; - } - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE (%P|%t) ACE_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"), - this->refcount_)); - - return handle; -} - -// This method is used return the last error of a library operation. - -auto_ptr -ACE_DLL_Handle::error (void) -{ - ACE_TRACE ("ACE_DLL_Handle::error"); - const ACE_TCHAR *error = ACE_OS::dlerror (); - auto_ptr str - (new ACE_TString (error ? error : ACE_TEXT ("no error"))); - return str; -} - -void -ACE_DLL_Handle::get_dll_names (const ACE_TCHAR *dll_name, - ACE_Array &try_names) -{ - // Build the array of DLL names to try on this platform by applying the - // proper prefixes and/or suffixes to the specified dll_name. - ACE_TString base (dll_name); - ACE_TString base_dir, base_file, base_suffix; - - // 1. Separate the dll_name into the dir part and the file part. We - // only decorate the file part to determine the names to try loading. - ACE_TString::size_type pos = base.rfind (ACE_DIRECTORY_SEPARATOR_CHAR); - if (pos != ACE_TString::npos) - { - base_dir = base.substr (0, pos + 1); - base_file = base.substr (pos + 1); - } - else - base_file = base; - - // 2. Locate the file suffix, if there is one. Move the '.' and the - // suffix to base_suffix. - if ((pos = base_file.rfind (ACE_TEXT ('.'))) != ACE_TString::npos) - { - base_suffix = base_file.substr (pos); - base_file = base_file.substr (0, pos); - } - - // 3. Build the combinations to try for this platform. - // Try these combinations: - // - name with decorator and platform's suffix appended (if not supplied) - // - name with platform's suffix appended (if not supplied) - // - name with platform's dll prefix (if it has one) and suffix - // - name with platform's dll prefix, decorator, and suffix. - // - name as originally given - // We first try to find the file using the decorator so that when a - // filename with and without decorator is used, we get the file with - // the same decorator as the ACE dll has and then as last resort - // the one without. For example with msvc, the debug build has a "d" - // decorator, but the release build has none and we really want to get - // the debug version of the library in a debug application instead - // of the release one. - // So we need room for 5 entries in try_names. - try_names.size (0); - if ((try_names.max_size () - try_names.size ()) < 5) - try_names.max_size (try_names.max_size () + 5); -#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) - ACE_TString decorator (ACE_LD_DECORATOR_STR); -#endif - ACE_TString suffix (ACE_DLL_SUFFIX); - ACE_TString prefix (ACE_DLL_PREFIX); - - for (size_t i = 0; i < 5 && try_names.size () < try_names.max_size (); ++i) - { - ACE_TString try_this; - size_t j = try_names.size (); - switch (i) - { - case 0: // Name + decorator + suffix - case 1: // Name + suffix - case 2: // Prefix + name + decorator + suffix - case 3: // Prefix + name + suffix - if ( - base_suffix.length () > 0 -#if !(defined(ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK)) - || (i == 1 || i == 3) // No decorator desired; skip -#endif - ) - break; - try_this = base_dir; - if (i > 1) - try_this += prefix; - try_this += base_file; - if (base_suffix.length () > 0) - try_this += base_suffix; - else - { -#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) - try_this += decorator; -#endif - try_this += suffix; - } - break; - case 4: - try_this = dll_name; - break; - } - - if (try_this.length ()) - { - try_names.size (j + 1); - try_names.set (try_this, j); - } - } - return; -} - -/******************************************************************/ - -// Pointer to the Singleton instance. -ACE_DLL_Manager *ACE_DLL_Manager::instance_ = 0; - - -ACE_DLL_Manager * -ACE_DLL_Manager::instance (int size) -{ - ACE_TRACE ("ACE_DLL_Manager::instance"); - - if (ACE_DLL_Manager::instance_ == 0) - { - // Perform Double-Checked Locking Optimization. - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Static_Object_Lock::instance (), 0)); - if (ACE_DLL_Manager::instance_ == 0) - { - ACE_NEW_RETURN (ACE_DLL_Manager::instance_, - ACE_DLL_Manager (size), - 0); - } - } - - return ACE_DLL_Manager::instance_; -} - -void -ACE_DLL_Manager::close_singleton (void) -{ - ACE_TRACE ("ACE_DLL_Manager::close_singleton"); - - ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Static_Object_Lock::instance ())); - - delete ACE_DLL_Manager::instance_; - ACE_DLL_Manager::instance_ = 0; -} - -ACE_DLL_Manager::ACE_DLL_Manager (int size) - : handle_vector_ (0), - current_size_ (0), - total_size_ (0), - unload_policy_ (ACE_DLL_UNLOAD_POLICY_PER_DLL) -{ - ACE_TRACE ("ACE_DLL_Manager::ACE_DLL_Manager"); - - if (this->open (size) != 0 && ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_DLL_Manager ctor failed to allocate ") - ACE_TEXT ("handle_vector_.\n"))); -} - -ACE_DLL_Manager::~ACE_DLL_Manager (void) -{ - ACE_TRACE ("ACE_DLL_Manager::~ACE_DLL_Manager"); - - if (this->close () != 0 && ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_DLL_Manager dtor failed to close ") - ACE_TEXT ("properly.\n"))); -} - -ACE_DLL_Handle * -ACE_DLL_Manager::open_dll (const ACE_TCHAR *dll_name, - int open_mode, - ACE_SHLIB_HANDLE handle) -{ - ACE_TRACE ("ACE_DLL_Manager::open_dll"); - - ACE_DLL_Handle *temp_handle = 0; - ACE_DLL_Handle *dll_handle = 0; - { - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0)); - dll_handle = this->find_dll (dll_name); - if (!dll_handle) - { - if (this->current_size_ < this->total_size_) - { - ACE_NEW_RETURN (temp_handle, - ACE_DLL_Handle, - 0); - - dll_handle = temp_handle; - } - } - } - - if (dll_handle) - { - if (dll_handle->open (dll_name, open_mode, handle) != 0) - { - // 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 ("open dll %s.\n"), - dll_name)); - - delete temp_handle; - return 0; - } - - // Add the handle to the vector only if the dll is successfully - // opened. - if (temp_handle != 0) - { - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0)); - this->handle_vector_[this->current_size_] = dll_handle; - ++this->current_size_; - } - } - - return dll_handle; -} - -int -ACE_DLL_Manager::close_dll (const ACE_TCHAR *dll_name) -{ - ACE_TRACE ("ACE_DLL_Manager::close_dll"); - ACE_DLL_Handle *handle = 0; - - { - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0)); - handle = this->find_dll (dll_name); - } - - if (handle) - { - return this->unload_dll (handle, 0); - } - - return -1; -} - -u_long -ACE_DLL_Manager::unload_policy (void) const -{ - ACE_TRACE ("ACE_DLL_Manager::unload_policy"); - return this->unload_policy_; -} - -void -ACE_DLL_Manager::unload_policy (u_long unload_policy) -{ - ACE_TRACE ("ACE_DLL_Manager::unload_policy"); - ACE_MT (ACE_GUARD (ACE_Thread_Mutex, ace_mon, this->lock_)); - - u_long old_policy = this->unload_policy_; - this->unload_policy_ = unload_policy; - - // If going from LAZY to EAGER or from PER_DLL to PER_PROCESS|EAGER, - // call close(1) on all the ACE_DLL_Handle objects with refcount == 0 - // which will force those that are still loaded to be unloaded. - if (this->handle_vector_) - if (( ACE_BIT_ENABLED (old_policy, ACE_DLL_UNLOAD_POLICY_LAZY) && - ACE_BIT_DISABLED (this->unload_policy_, ACE_DLL_UNLOAD_POLICY_LAZY) ) || - ( ACE_BIT_DISABLED (this->unload_policy_, ACE_DLL_UNLOAD_POLICY_LAZY) && - ACE_BIT_ENABLED (old_policy, ACE_DLL_UNLOAD_POLICY_PER_DLL) && - ACE_BIT_DISABLED (this->unload_policy_, ACE_DLL_UNLOAD_POLICY_PER_DLL) )) - { - for (int i = this->current_size_ - 1; i >= 0; i--) - { - if (this->handle_vector_[i] && - this->handle_vector_[i]->refcount () == 0) - this->handle_vector_[i]->close (1); - } - } -} - -int -ACE_DLL_Manager::open (int size) -{ - ACE_TRACE ("ACE_DLL_Manager::open"); - - ACE_DLL_Handle **temp = 0; - - ACE_NEW_RETURN (temp, - ACE_DLL_Handle *[size], - -1); - - this->handle_vector_ = temp; - this->total_size_ = size; - return 0; -} - -int -ACE_DLL_Manager::close (void) -{ - ACE_TRACE ("ACE_DLL_Manager::close"); - - int force_close = 1; - - if (this->handle_vector_ != 0) - { - // Delete components in reverse order. - for (int i = this->current_size_ - 1; i >= 0; i--) - { - if (this->handle_vector_[i]) - { - ACE_DLL_Handle *s = - const_cast (this->handle_vector_[i]); - this->handle_vector_[i] = 0; - this->unload_dll (s, force_close); - delete s; - } - } - - delete [] this->handle_vector_; - this->handle_vector_ = 0; - this->current_size_ = 0; - } - return 0; -} - -ACE_DLL_Handle * -ACE_DLL_Manager::find_dll (const ACE_TCHAR *dll_name) const -{ - ACE_TRACE ("ACE_DLL_Manager::find_dll"); - - for (int i = 0; i < this->current_size_; i++) - if (this->handle_vector_[i] && - ACE_OS::strcmp (this->handle_vector_[i]->dll_name (), dll_name) == 0) - { - return this->handle_vector_[i]; - } - - return 0; -} - -int -ACE_DLL_Manager::unload_dll (ACE_DLL_Handle *dll_handle, int force_unload) -{ - ACE_TRACE ("ACE_DLL_Manager::unload_dll"); - - if (dll_handle) - { - int unload = force_unload; - if (unload == 0) - { - // apply strategy - if (ACE_BIT_DISABLED (this->unload_policy_, - ACE_DLL_UNLOAD_POLICY_PER_DLL)) - { - unload = ACE_BIT_DISABLED (this->unload_policy_, - ACE_DLL_UNLOAD_POLICY_LAZY); - } - else - { - // Declare the type of the symbol: - typedef int (*dll_unload_policy)(void); - - void * const unload_policy_ptr = - dll_handle->symbol (ACE_TEXT ("_get_dll_unload_policy"), 1); -#if defined (ACE_OPENVMS) && (!defined (__INITIAL_POINTER_SIZE) || (__INITIAL_POINTER_SIZE < 64)) - int const temp_p = - reinterpret_cast (unload_policy_ptr); -#else - intptr_t const temp_p = - reinterpret_cast (unload_policy_ptr); -#endif - - dll_unload_policy const the_policy = - reinterpret_cast (temp_p); - - if (the_policy != 0) - unload = ACE_BIT_DISABLED (the_policy (), - ACE_DLL_UNLOAD_POLICY_LAZY); - else - unload = ACE_BIT_DISABLED (this->unload_policy_, - ACE_DLL_UNLOAD_POLICY_LAZY); - } - } - - if (dll_handle->close (unload) != 0) - { - if (ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_DLL_Manager::unload error.\n"))); - - return -1; - } - } - else - { - if (ACE::debug ()) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_DLL_Manager::unload_dll called with ") - ACE_TEXT ("null pointer.\n"))); - - return -1; - } - - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/DLL_Manager.h b/ACE/ace/DLL_Manager.h deleted file mode 100644 index a59636696ba..00000000000 --- a/ACE/ace/DLL_Manager.h +++ /dev/null @@ -1,269 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file DLL_Manager.h - * - * $Id$ - * - * @author Don Hinton - */ -//============================================================================= - -#ifndef ACE_DLL_MANAGER_H -#define ACE_DLL_MANAGER_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/Auto_Ptr.h" -#include "ace/Containers_T.h" -#include "ace/SStringfwd.h" -#include "ace/os_include/os_dlfcn.h" - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -# include "ace/Thread_Mutex.h" -#endif /* ACE_MT_SAFE */ - -#define ACE_DEFAULT_DLL_MANAGER_SIZE 1024 - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_DLL_Handle - * - * @brief Provides an abstract interface for handling various DLL - * operations. - * - * This class is an wrapper over the various methods for utilizing a - * dynamically linked library (DLL), which is called a shared library - * 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 , , and - * have been implemented to help opening/closing and extracting symbol - * information from a DLL, respectively. - * - * Most of this class came from the original ACE_DLL class. ACE_DLL - * is now just an interface that passed all it's calls either directly - * or via ACE_DLL_Manager to this class for execution. - * - */ -class ACE_Export ACE_DLL_Handle -{ -public: - - /// Default construtor. - ACE_DLL_Handle (void); - - /// Destructor. - ~ACE_DLL_Handle (void); - - /// Returns the name of the shared library (without prefixes or suffixes). - const ACE_TCHAR *dll_name () const; - - /** - * This method opens and dynamically links @a dll_name. The default - * mode is , which loads identifier symbols but not the - * symbols for functions, which are loaded dynamically on-demand. - * Other supported modes include: , which performs all - * necessary relocations when @a dll_name is first loaded and - * , which makes symbols available for relocation - * processing of any other DLLs. Returns -1 on failure and 0 on - * success. - */ - int open (const ACE_TCHAR *dll_name, - int open_mode, - ACE_SHLIB_HANDLE handle); - - /// Call to close the DLL object. If unload = 0, it only decrements - /// the refcount, but if unload = 1, then it will actually unload - /// the library when the refcount == 0; - int close (int unload = 0); - - /// Return the current refcount. - sig_atomic_t refcount (void) const; - - /// If @a symbol_name is in the symbol table of the DLL a pointer to - /// the @a symbol_name is returned. Otherwise, returns 0. Set the - /// ignore_errors flag to supress logging errors if symbol_name isn't - /// found. This is nice if you just want to probe a dll to see what's - /// available, since missing functions in that case aren't really errors. - void *symbol (const ACE_TCHAR *symbol_name, int ignore_errors = 0); - - /** - * Return the handle to the caller. If @a become_owner is non-0 then - * caller assumes ownership of the handle so we decrement the retcount. - */ - ACE_SHLIB_HANDLE get_handle (int become_owner = 0); - -private: - - /// Returns a pointer to a string explaining why or - /// failed. This is used internal to print out the error to the log, - /// but since this object is shared, we can't store or return the error - /// to the caller. - auto_ptr 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. - void get_dll_names (const ACE_TCHAR *dll_name, - ACE_Array &try_names); - - // 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. - sig_atomic_t refcount_; - - /// Name of the shared library. - ACE_TCHAR *dll_name_; - - /// Handle to the actual library loaded by the OS. - ACE_SHLIB_HANDLE handle_; - - /// Keeps track of whether or not open() has ever been called. This - /// helps get around problem on Linux, and perhaps other OS's, that - /// seg-fault if dlerror() is called before the ld library has been - /// initialized by a call to dlopen(). - static sig_atomic_t open_called_; - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - /// Synchronization variable for the MT_SAFE Repository - ACE_Thread_Mutex lock_; -#endif /* ACE_MT_SAFE */ -}; - -class ACE_Framework_Repository; - -/** - * @class ACE_DLL_Manager - * - * @brief This class is a singleton and serves as a factory and - * repository for instances of ACE_DLL_Handle. - * - * This class is a singleton whose lifetime is managed by the - * ACE_Framework_Repository. Although it is normally meant to be - * used directly only by ACE_DLL, applications can call the unload_policy() - * methods in order get/set the the dll unload policy. Unload policies include - * per_process/per-dll and eager/lazy. Dlls can export set their own policy - * by using the ACE_DLL_UNLOAD_POLICY macro found in config-all.h. If a dll - * choses to set an unload policy, it will be used when the per-dll policy - * (the default) is in effect. If the per-dll policy is in effect and a dll - * has not chosen to set a policy, the current per-process policy will be - * used. - * - * The following policy macros are provided in config-all.h: - * - * ACE_DLL_UNLOAD_POLICY_PER_PROCESS - Per-process policy that unloads dlls - * eagerly. - * - * ACE_DLL_UNLOAD_POLICY_PER_DLL - Apply policy on a per-dll basis. If the - * dll doesn't use one of the macros below, the current per-process policy - * will be used. - * - * ACE_DLL_UNLOAD_POLICY_LAZY - Don't unload dll when refcount reaches - * zero, i.e., wait for either an explicit unload request or program exit. - * - * ACE_DLL_UNLOAD_POLICY_DEFAULT - Default policy allows dlls to control - * their own destinies, but will unload those that don't make a choice eagerly. - * - */ -class ACE_Export ACE_DLL_Manager -{ -public: - friend class ACE_Framework_Repository; - friend class ACE_Object_Manager; - - enum - { - DEFAULT_SIZE = ACE_DEFAULT_DLL_MANAGER_SIZE - }; - - /// Return a unique instance - static ACE_DLL_Manager *instance (int size = ACE_DLL_Manager::DEFAULT_SIZE); - - /// Factory for ACE_DLL_Handle objects. If one already exits, - /// its refcount is incremented. - ACE_DLL_Handle *open_dll (const ACE_TCHAR *dll_name, - int openmode, - ACE_SHLIB_HANDLE handle); - - /// Close the underlying dll. Decrements the refcount. - int close_dll (const ACE_TCHAR *dll_name); - - /// Returns the current per-process UNLOAD_POLICY. - u_long unload_policy (void) const; - - /// Set the per-process UNLOAD_POLICY. If the policy is changed from - /// LAZY to EAGER, then it will also unload any dlls with zero - /// refcounts. - void unload_policy (u_long unload_policy); - -protected: - - /// Default constructor. - ACE_DLL_Manager (int size = ACE_DLL_Manager::DEFAULT_SIZE); - - /// Destructor. - ~ACE_DLL_Manager (void); - - // Allocate handle_vector_. - int open (int size); - - // Close all open dlls and deallocate memory. - int close (void); - - // Find dll in handle_vector_. - ACE_DLL_Handle *find_dll (const ACE_TCHAR *dll_name) const; - - // Applies strategy for unloading dll. - int unload_dll (ACE_DLL_Handle *dll_handle, int force_unload = 0); - -private: - - /// Close the singleton instance. - static void close_singleton (void); - - // Disallow copying and assignment since we don't handle these. - ACE_DLL_Manager (const ACE_DLL_Manager &); - void operator= (const ACE_DLL_Manager &); - -private: - - /// Vector containing all loaded handle objects. - ACE_DLL_Handle **handle_vector_; - - /// Current number of handles. - int current_size_; - - /// Maximum number of handles. - int total_size_; - - /// Unload strategy. - u_long unload_policy_; - - /// Pointer to a process-wide ACE_DLL_Manager. - static ACE_DLL_Manager *instance_; - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - /// Synchronization variable for the MT_SAFE Repository - ACE_Thread_Mutex lock_; -#endif /* ACE_MT_SAFE */ - -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* ACE_DLL_MANAGER_H */ diff --git a/ACE/ace/Date_Time.cpp b/ACE/ace/Date_Time.cpp deleted file mode 100644 index 85abf562c47..00000000000 --- a/ACE/ace/Date_Time.cpp +++ /dev/null @@ -1,10 +0,0 @@ -// Date_Time.cpp -// $Id$ - -#include "ace/Date_Time.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Date_Time.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, Date_Time, "$Id$") diff --git a/ACE/ace/Date_Time.h b/ACE/ace/Date_Time.h deleted file mode 100644 index 9204e23a1b8..00000000000 --- a/ACE/ace/Date_Time.h +++ /dev/null @@ -1,125 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Date_Time.h - * - * $Id$ - * - * @author Tim Harrison (harrison@cs.wustl.edu) (and he's darn proud of this ;-)) - * - */ -//========================================================================== - -#ifndef ACE_DATE_TIME_H -#define ACE_DATE_TIME_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Time_Value; - -/** - * @class ACE_Date_Time - * - * @brief System independent representation of date and time. - */ -class ACE_Export ACE_Date_Time -{ -public: - /// Constructor initializes current time/date info. - ACE_Date_Time (void); - - /// Constructor initializes with the given ACE_Time_Value - explicit ACE_Date_Time (const ACE_Time_Value& timevalue); - - /// Constructor with init values, no check for validy - /// Set/get portions of ACE_Date_Time, no check for validity. - ACE_Date_Time (long day, - long month = 0, - long year = 0, - long hour = 0, - long minute = 0, - long second = 0, - long microsec = 0, - long wday = 0); - - /// Update to the current time/date. - void update (void); - - /// Update to the given ACE_Time_Value - void update (const ACE_Time_Value& timevalue); - - /// Get day. - long day (void) const; - - /// Set day. - void day (long day); - - /// Get month. - long month (void) const; - - /// Set month. - void month (long month); - - /// Get year. - long year (void) const; - - /// Set year. - void year (long year); - - /// Get hour. - long hour (void) const; - - /// Set hour. - void hour (long hour); - - /// Get minute. - long minute (void) const; - - /// Set minute. - void minute (long minute); - - /// Get second. - long second (void) const; - - /// Set second. - void second (long second); - - /// Get microsec. - long microsec (void) const; - - /// Set microsec. - void microsec (long microsec); - - /// Get weekday. - long weekday (void) const; - - /// Set weekday. - void weekday (long wday); - -private: - long day_; - long month_; - long year_; - long hour_; - long minute_; - long second_; - long microsec_; - long wday_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Date_Time.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_DATE_TIME_H */ diff --git a/ACE/ace/Date_Time.inl b/ACE/ace/Date_Time.inl deleted file mode 100644 index dfb0d239bc3..00000000000 --- a/ACE/ace/Date_Time.inl +++ /dev/null @@ -1,219 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Global_Macros.h" -#include "ace/Time_Value.h" -#include "ace/OS_NS_sys_time.h" -#include "ace/OS_NS_time.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE void -ACE_Date_Time::update (const ACE_Time_Value& timevalue) -{ -#if defined (ACE_HAS_WINCE) - // CE doesn't do localtime(). - FILETIME file_time = timevalue; - FILETIME local_file_time; - SYSTEMTIME sys_time; - ::FileTimeToLocalFileTime (&file_time, &local_file_time); - ::FileTimeToSystemTime (&local_file_time, &sys_time); - this->day_ = sys_time.wDay; - this->month_ = sys_time.wMonth; - this->year_ = sys_time.wYear; - this->hour_ = sys_time.wHour; - this->minute_ = sys_time.wMinute; - this->second_ = sys_time.wSecond; - this->microsec_ = sys_time.wMilliseconds * 1000; - this->wday_ = sys_time.wDayOfWeek; -#else - time_t time = timevalue.sec (); - struct tm tm_time; - ACE_OS::localtime_r (&time, &tm_time); - this->day_ = tm_time.tm_mday; - this->month_ = tm_time.tm_mon + 1; // localtime's months are 0-11 - this->year_ = tm_time.tm_year + 1900; // localtime reports years since 1900 - this->hour_ = tm_time.tm_hour; - this->minute_ = tm_time.tm_min; - this->second_ = tm_time.tm_sec; - this->microsec_ = timevalue.usec (); - this->wday_ = tm_time.tm_wday; -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE void -ACE_Date_Time::update (void) -{ - ACE_TRACE ("ACE_Date_Time::update"); - - update(ACE_OS::gettimeofday ()); -} - -ACE_INLINE -ACE_Date_Time::ACE_Date_Time (void) -{ - ACE_TRACE ("ACE_Date_Time::ACE_Date_Time"); - this->update (); -} - -ACE_INLINE -ACE_Date_Time::ACE_Date_Time (const ACE_Time_Value& timevalue) -{ - ACE_TRACE ("ACE_Date_Time::ACE_Date_Time: timevalue"); - this->update (timevalue); -} - -// Constructor with init values, no check for validy -ACE_INLINE -ACE_Date_Time::ACE_Date_Time (long day, - long month, - long year, - long hour, - long minute, - long second, - long microsec, - long wday) - : day_ (day), - month_ (month), - year_ (year), - hour_ (hour), - minute_ (minute), - second_ (second), - microsec_ (microsec), - wday_ (wday) -{ - ACE_TRACE ("ACE_Date_Time::ACE_Date_Time"); -} - -// set/get portions of ACE_Date_Time, no check for validy - -// get day -ACE_INLINE long -ACE_Date_Time::day (void) const -{ - ACE_TRACE ("ACE_Date_Time::day"); - return day_; -} - -// set day -ACE_INLINE void -ACE_Date_Time::day (long day) -{ - ACE_TRACE ("ACE_Date_Time::day"); - day_ = day; -} - -// get month -ACE_INLINE long -ACE_Date_Time::month (void) const -{ - ACE_TRACE ("ACE_Date_Time::month"); - return month_; -} - -// set month -ACE_INLINE void -ACE_Date_Time::month (long month) -{ - ACE_TRACE ("ACE_Date_Time::month"); - month_ = month; -} - -// get year -ACE_INLINE long -ACE_Date_Time::year (void) const -{ - ACE_TRACE ("ACE_Date_Time::year"); - return year_; -} - -// set year -ACE_INLINE void -ACE_Date_Time::year (long year) -{ - ACE_TRACE ("ACE_Date_Time::year"); - year_ = year; -} - -// get hour -ACE_INLINE long -ACE_Date_Time::hour (void) const -{ - ACE_TRACE ("ACE_Date_Time::hour"); - return hour_; -} - -// set hour -ACE_INLINE void -ACE_Date_Time::hour (long hour) -{ - ACE_TRACE ("ACE_Date_Time::hour"); - hour_ = hour; -} - -// get minute -ACE_INLINE long -ACE_Date_Time::minute (void) const -{ - ACE_TRACE ("ACE_Date_Time::minute"); - return minute_; -} - -// set minute -ACE_INLINE void -ACE_Date_Time::minute (long minute) -{ - ACE_TRACE ("ACE_Date_Time::minute"); - minute_ = minute; -} - -// get second -ACE_INLINE long -ACE_Date_Time::second (void) const -{ - ACE_TRACE ("ACE_Date_Time::second"); - return second_; -} - -// set second -ACE_INLINE void -ACE_Date_Time::second (long second) -{ - ACE_TRACE ("ACE_Date_Time::second"); - second_ = second; -} - -// get microsec -ACE_INLINE long -ACE_Date_Time::microsec (void) const -{ - ACE_TRACE ("ACE_Date_Time::microsec"); - return microsec_; -} - -// set microsec -ACE_INLINE void -ACE_Date_Time::microsec (long microsec) -{ - ACE_TRACE ("ACE_Date_Time::microsec"); - microsec_ = microsec; -} - -// get wday -ACE_INLINE long -ACE_Date_Time::weekday (void) const -{ - ACE_TRACE ("ACE_Date_Time::weekday"); - return wday_; -} - -// set wday -ACE_INLINE void -ACE_Date_Time::weekday (long wday) -{ - ACE_TRACE ("ACE_Date_Time::weekday"); - wday_ = wday; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Default_Constants.h b/ACE/ace/Default_Constants.h deleted file mode 100644 index ce435121681..00000000000 --- a/ACE/ace/Default_Constants.h +++ /dev/null @@ -1,573 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Default_Constants.h - * - * $Id$ - * - * @author Douglas C. Schmidt - * @author Jesper S. M|ller - * @author and a cast of thousands... - * - * This one is split from the famous OS.h - */ -//============================================================================= - -#ifndef ACE_DEFAULT_CONSTANTS_H -#define ACE_DEFAULT_CONSTANTS_H -#include /**/ "ace/pre.h" - -// Included just keep compilers that see #pragma dierctive first -// happy. -#include /**/ "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// 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. -# if !defined (ACE_DEFAULT_CLOSE_ALL_HANDLES) -# define ACE_DEFAULT_CLOSE_ALL_HANDLES true -# endif /* ACE_DEFAULT_CLOSE_ALL_HANDLES */ - -// The maximum length for a fully qualified Internet name. -# if !defined(ACE_MAX_FULLY_QUALIFIED_NAME_LEN) -# define ACE_MAX_FULLY_QUALIFIED_NAME_LEN 256 -# endif /* ACE_MAX_FULLY_QUALIFIED_NAME_LEN */ - -#if !defined (ACE_DEFAULT_PAGEFILE_POOL_BASE) -#define ACE_DEFAULT_PAGEFILE_POOL_BASE (void *) 0 -#endif /* ACE_DEFAULT_PAGEFILE_POOL_BASE */ - -#if !defined (ACE_DEFAULT_PAGEFILE_POOL_SIZE) -#define ACE_DEFAULT_PAGEFILE_POOL_SIZE (size_t) 0x01000000 -#endif /* ACE_DEFAULT_PAGEFILE_POOL_SIZE */ - -#if !defined (ACE_DEFAULT_PAGEFILE_POOL_CHUNK) -#define ACE_DEFAULT_PAGEFILE_POOL_CHUNK (size_t) 0x00010000 -#endif /* ACE_DEFAULT_PAGEFILE_POOL_CHUNK */ - -#if !defined (ACE_DEFAULT_PAGEFILE_POOL_NAME) -#define ACE_DEFAULT_PAGEFILE_POOL_NAME ACE_TEXT ("Default_ACE_Pagefile_Memory_Pool") -#endif /* ACE_DEFAULT_PAGEFILE_POOL_NAME */ - -#if !defined (ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY) -#define ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY 0 -#endif /* ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY */ - -#if !defined (ACE_DEFAULT_SERVICE_REPOSITORY_SIZE) -#define ACE_DEFAULT_SERVICE_REPOSITORY_SIZE 1024 -#endif /* ACE_DEFAULT_SERVICE_REPOSITORY_SIZE */ - -#if !defined (ACE_REACTOR_NOTIFICATION_ARRAY_SIZE) -#define ACE_REACTOR_NOTIFICATION_ARRAY_SIZE 1024 -#endif /* ACE_REACTOR_NOTIFICATION_ARRAY_SIZE */ - -# if !defined (ACE_DEFAULT_TIMEOUT) -# define ACE_DEFAULT_TIMEOUT 5 -# endif /* ACE_DEFAULT_TIMEOUT */ - -# if !defined (ACE_DEFAULT_BACKLOG) -# define ACE_DEFAULT_BACKLOG 5 -# endif /* ACE_DEFAULT_BACKLOG */ - -# if !defined (ACE_DEFAULT_ASYNCH_BACKLOG) -# define ACE_DEFAULT_ASYNCH_BACKLOG 5 -# endif /* ACE_DEFAULT_ASYNCH_BACKLOG */ - -# if !defined (ACE_DEFAULT_THREADS) -# define ACE_DEFAULT_THREADS 1 -# endif /* ACE_DEFAULT_THREADS */ - -// The following 3 defines are used in the IP multicast and broadcast tests. -# if !defined (ACE_DEFAULT_BROADCAST_PORT) -# define ACE_DEFAULT_BROADCAST_PORT 20000 -# endif /* ACE_DEFAULT_BROADCAST_PORT */ - -# if !defined (ACE_DEFAULT_MULTICAST_PORT) -# define ACE_DEFAULT_MULTICAST_PORT 20001 -# endif /* ACE_DEFAULT_MULTICAST_PORT */ - -# if !defined (ACE_DEFAULT_MULTICAST_ADDR) -// This address MUST be within the range for host group addresses: -// 224.0.0.0 to 239.255.255.255. -# define ACE_DEFAULT_MULTICAST_ADDR "224.9.9.2" -# endif /* ACE_DEFAULT_MULTICAST_ADDR */ - -# if defined (ACE_HAS_IPV6) -# if !defined (ACE_DEFAULT_MULTICASTV6_ADDR) -// This address should be within the range for site-local addresses: -// ff05::0/16 . -# define ACE_DEFAULT_MULTICASTV6_ADDR "ff05:0::ff01:1" -# endif /* ACE_DEFAULT_MULTICASTV6_ADDR */ -# endif - -// Default port number for HTTP. -# if !defined (ACE_DEFAULT_HTTP_SERVER_PORT) -# define ACE_DEFAULT_HTTP_SERVER_PORT 80 -# endif /* ACE_DEFAULT_HTTP_SERVER_PORT */ - -// Used in many IPC_SAP tests -# if !defined (ACE_DEFAULT_SERVER_PORT) -# define ACE_DEFAULT_SERVER_PORT 20002 -# endif /* ACE_DEFAULT_SERVER_PORT */ - -# if !defined (ACE_DEFAULT_HTTP_PORT) -# define ACE_DEFAULT_HTTP_PORT 80 -# endif /* ACE_DEFAULT_HTTP_PORT */ - -# if !defined (ACE_DEFAULT_MAX_SOCKET_BUFSIZ) -# define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65536 -# endif /* ACE_DEFAULT_MAX_SOCKET_BUFSIZ */ - -# if !defined (ACE_DEFAULT_SERVER_PORT_STR) -# define ACE_DEFAULT_SERVER_PORT_STR ACE_TEXT("20002") -# endif /* ACE_DEFAULT_SERVER_PORT_STR */ - -// Used for the Service_Directory test -# if !defined (ACE_DEFAULT_SERVICE_PORT) -# define ACE_DEFAULT_SERVICE_PORT 20003 -# endif /* ACE_DEFAULT_SERVICE_PORT */ - -// Used for the ACE_Thread_Spawn test -# if !defined (ACE_DEFAULT_THR_PORT ) -# define ACE_DEFAULT_THR_PORT 20004 -# endif /* ACE_DEFAULT_THR_PORT */ - -// Used for tests -# if !defined (ACE_DEFAULT_LOCAL_PORT) -# define ACE_DEFAULT_LOCAL_PORT 20005 -# endif /* ACE_DEFAULT_LOCAL_PORT */ - -// Used for Connector tests -# if !defined (ACE_DEFAULT_LOCAL_PORT_STR) -# define ACE_DEFAULT_LOCAL_PORT_STR "20005" -# endif /* ACE_DEFAULT_LOCAL_PORT_STR */ - -// Used for the name server. -# if !defined (ACE_DEFAULT_NAME_SERVER_PORT) -# define ACE_DEFAULT_NAME_SERVER_PORT 20006 -# endif /* ACE_DEFAULT_NAME_SERVER_PORT */ - -# if !defined (ACE_DEFAULT_NAME_SERVER_PORT_STR) -# define ACE_DEFAULT_NAME_SERVER_PORT_STR "20006" -# endif /* ACE_DEFAULT_NAME_SERVER_PORT_STR */ - -// Used for the token server. -# if !defined (ACE_DEFAULT_TOKEN_SERVER_PORT) -# define ACE_DEFAULT_TOKEN_SERVER_PORT 20007 -# endif /* ACE_DEFAULT_TOKEN_SERVER_PORT */ - -# if !defined (ACE_DEFAULT_TOKEN_SERVER_PORT_STR) -# define ACE_DEFAULT_TOKEN_SERVER_PORT_STR "20007" -# endif /* ACE_DEFAULT_TOKEN_SERVER_PORT_STR */ - -// Used for the logging server. -# if !defined (ACE_DEFAULT_LOGGING_SERVER_PORT) -# define ACE_DEFAULT_LOGGING_SERVER_PORT 20008 -# endif /* ACE_DEFAULT_LOGGING_SERVER_PORT */ - -# if !defined (ACE_DEFAULT_LOGGING_SERVER_PORT_STR) -# define ACE_DEFAULT_LOGGING_SERVER_PORT_STR "20008" -# endif /* ACE_DEFAULT_LOGGING_SERVER_PORT_STR */ - -// Used for the logging server. -# if !defined (ACE_DEFAULT_THR_LOGGING_SERVER_PORT) -# define ACE_DEFAULT_THR_LOGGING_SERVER_PORT 20008 -# endif /* ACE_DEFAULT_THR_LOGGING_SERVER_PORT */ - -# if !defined (ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR) -# define ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR "20008" -# endif /* ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR */ - -// Used for the time server. -# if !defined (ACE_DEFAULT_TIME_SERVER_PORT) -# define ACE_DEFAULT_TIME_SERVER_PORT 20009 -# endif /* ACE_DEFAULT_TIME_SERVER_PORT */ - -# if !defined (ACE_DEFAULT_TIME_SERVER_PORT_STR) -# define ACE_DEFAULT_TIME_SERVER_PORT_STR "20009" -# endif /* ACE_DEFAULT_TIME_SERVER_PORT_STR */ - -# if !defined (ACE_DEFAULT_TIME_SERVER_STR) -# define ACE_DEFAULT_TIME_SERVER_STR "ACE_TS_TIME" -# endif /* ACE_DEFAULT_TIME_SERVER_STR */ - -// Used by the FIFO tests and the Client_Logging_Handler netsvc. -# if !defined (ACE_DEFAULT_RENDEZVOUS) -# if defined (ACE_HAS_STREAM_PIPES) -# define ACE_DEFAULT_RENDEZVOUS ACE_TEXT("/tmp/fifo.ace") -# else -# define ACE_DEFAULT_RENDEZVOUS ACE_TEXT("localhost:20010") -# endif /* ACE_HAS_STREAM_PIPES */ -# endif /* ACE_DEFAULT_RENDEZVOUS */ - -// Used for the UNIX syslog logging interface to ACE_Log_Msg. -# ifndef ACE_DEFAULT_SYSLOG_FACILITY -# define ACE_DEFAULT_SYSLOG_FACILITY LOG_USER -# endif /* ACE_DEFAULT_SYSLOG_FACILITY */ - -# if !defined (ACE_DEFAULT_LOGGER_KEY) - -# if defined (ACE_HAS_STREAM_PIPES) -# define ACE_DEFAULT_LOGGER_KEY ACE_TEXT ("/tmp/server_daemon") -# else -# define ACE_DEFAULT_LOGGER_KEY ACE_TEXT ("localhost:20012") -# endif /* ACE_HAS_STREAM_PIPES */ -# endif /* ACE_DEFAULT_LOGGER_KEY */ - -// The way to specify the local host for loopback IP. This is usually -// "localhost" but it may need changing on some platforms. -# if !defined (ACE_LOCALHOST) -# define ACE_LOCALHOST ACE_TEXT ("localhost") -# endif - -// This specification for an IPv6 localhost should work on all platforms -// supporting IPv6 -# if defined (ACE_HAS_IPV6) -# if !defined (ACE_IPV6_LOCALHOST) -# define ACE_IPV6_LOCALHOST ACE_TEXT ("::1") -# endif /* ACE_IPV6_LOCALHOST*/ -#endif /* ACE_HAS_IPV6 */ - -// This specification for an IPv6 ANY address should work on all platforms -// supporting IPv6 -# if defined (ACE_HAS_IPV6) -# if !defined (ACE_IPV6_ANY) -# define ACE_IPV6_ANY ACE_TEXT ("::") -# endif /* ACE_IPV6_ANY*/ -#endif /* ACE_HAS_IPV6 */ - -# if !defined (ACE_DEFAULT_SERVER_HOST) -# if defined (ACE_HAS_IPV6) -# define ACE_DEFAULT_SERVER_HOST ACE_IPV6_LOCALHOST -# else /*ACE_HAS_IPV6*/ -# define ACE_DEFAULT_SERVER_HOST ACE_LOCALHOST -# endif /*ACE_HAS_IPV6*/ -# endif /* ACE_DEFAULT_SERVER_HOST */ - -// Default shared memory key -# if !defined (ACE_DEFAULT_SHM_KEY) -# define ACE_DEFAULT_SHM_KEY 1234 -# endif /* ACE_DEFAULT_SHM_KEY */ - -// Default address for shared memory mapped files and SYSV shared memory -// (defaults to 64 M). -# if !defined (ACE_DEFAULT_BASE_ADDR) -# define ACE_DEFAULT_BASE_ADDR ((char *) (64 * 1024 * 1024)) -# endif /* ACE_DEFAULT_BASE_ADDR */ - -// Default segment size used by SYSV shared memory (128 K) -# if !defined (ACE_DEFAULT_SEGMENT_SIZE) -# define ACE_DEFAULT_SEGMENT_SIZE 1024 * 128 -# endif /* ACE_DEFAULT_SEGMENT_SIZE */ - -// Maximum number of SYSV shared memory segments -// (does anyone know how to figure out the right values?!) -# if !defined (ACE_DEFAULT_MAX_SEGMENTS) -# define ACE_DEFAULT_MAX_SEGMENTS 6 -# endif /* ACE_DEFAULT_MAX_SEGMENTS */ - -// Name of the map that's stored in shared memory. -# if !defined (ACE_NAME_SERVER_MAP) -# define ACE_NAME_SERVER_MAP "Name Server Map" -# endif /* ACE_NAME_SERVER_MAP */ - -// Default file permissions. -# if !defined (ACE_DEFAULT_FILE_PERMS) -# if defined (ACE_VXWORKS) -# define ACE_DEFAULT_FILE_PERMS (S_IRUSR | S_IWUSR| S_IRGRP| S_IROTH) -# else -# define ACE_DEFAULT_FILE_PERMS 0644 -# endif /* ACE_VXWORKS */ -# endif /* ACE_DEFAULT_FILE_PERMS */ - -// Default directory permissions. -# if !defined (ACE_DEFAULT_DIR_PERMS) -# define ACE_DEFAULT_DIR_PERMS 0755 -# endif /* ACE_DEFAULT_DIR_PERMS */ - -# if !defined (ACE_DEFAULT_TIMEPROBE_TABLE_SIZE) -# define ACE_DEFAULT_TIMEPROBE_TABLE_SIZE 8 * 1024 -# endif /* ACE_DEFAULT_TIMEPROBE_TABLE_SIZE */ - -// Default size of the ACE Map_Manager. -# if !defined (ACE_DEFAULT_MAP_SIZE) -# define ACE_DEFAULT_MAP_SIZE 1024 -# endif /* ACE_DEFAULT_MAP_SIZE */ - -// Defaults for ACE Timer Wheel -# if !defined (ACE_DEFAULT_TIMER_WHEEL_SIZE) -# define ACE_DEFAULT_TIMER_WHEEL_SIZE 1024 -# endif /* ACE_DEFAULT_TIMER_WHEEL_SIZE */ - -# if !defined (ACE_DEFAULT_TIMER_WHEEL_RESOLUTION) -# define ACE_DEFAULT_TIMER_WHEEL_RESOLUTION 100 -# endif /* ACE_DEFAULT_TIMER_WHEEL_RESOLUTION */ - -// Default size for ACE Timer Hash table -# if !defined (ACE_DEFAULT_TIMER_HASH_TABLE_SIZE) -# define ACE_DEFAULT_TIMER_HASH_TABLE_SIZE 1024 -# endif /* ACE_DEFAULT_TIMER_HASH_TABLE_SIZE */ - -// Defaults for the ACE Free List -# if !defined (ACE_DEFAULT_FREE_LIST_PREALLOC) -# define ACE_DEFAULT_FREE_LIST_PREALLOC 0 -# endif /* ACE_DEFAULT_FREE_LIST_PREALLOC */ - -# if !defined (ACE_DEFAULT_FREE_LIST_LWM) -# define ACE_DEFAULT_FREE_LIST_LWM 0 -# endif /* ACE_DEFAULT_FREE_LIST_LWM */ - -# if !defined (ACE_DEFAULT_FREE_LIST_HWM) -# define ACE_DEFAULT_FREE_LIST_HWM 25000 -# endif /* ACE_DEFAULT_FREE_LIST_HWM */ - -# if !defined (ACE_DEFAULT_FREE_LIST_INC) -# define ACE_DEFAULT_FREE_LIST_INC 100 -# endif /* ACE_DEFAULT_FREE_LIST_INC */ - -# if !defined (ACE_UNIQUE_NAME_LEN) -# define ACE_UNIQUE_NAME_LEN 100 -# endif /* ACE_UNIQUE_NAME_LEN */ - -# if !defined (ACE_MAX_DGRAM_SIZE) - // This is just a guess. 8k is the normal limit on - // most machines because that's what NFS expects. -# define ACE_MAX_DGRAM_SIZE 8192 -# endif /* ACE_MAX_DGRAM_SIZE */ - -# if !defined (ACE_DEFAULT_ARGV_BUFSIZ) -# define ACE_DEFAULT_ARGV_BUFSIZ 1024 * 4 -# endif /* ACE_DEFAULT_ARGV_BUFSIZ */ - -// A free list which create more elements when there aren't enough -// elements. -# define ACE_FREE_LIST_WITH_POOL 1 - -// A simple free list which doen't allocate/deallocate elements. -# define ACE_PURE_FREE_LIST 2 - -# if defined (ACE_WIN32) - -// This is necessary to work around bugs with Win32 non-blocking -// connects... -# if !defined (ACE_NON_BLOCKING_BUG_DELAY) -# define ACE_NON_BLOCKING_BUG_DELAY 35000 -# endif /* ACE_NON_BLOCKING_BUG_DELAY */ -# endif /*ACE_WIN32*/ - -// Max size of an ACE Log Record data buffer. This can be reset in -// the config.h file if you'd like to increase or decrease the size. -# if !defined (ACE_MAXLOGMSGLEN) -# define ACE_MAXLOGMSGLEN 4 * 1024 -# endif /* ACE_MAXLOGMSGLEN */ - -// Max size of an ACE Token. -# define ACE_MAXTOKENNAMELEN 40 - -// Max size of an ACE Token client ID. -# define ACE_MAXCLIENTIDLEN MAXHOSTNAMELEN + 20 - -/// Max udp packet size -#if !defined (ACE_MAX_UDP_PACKET_SIZE) -#define ACE_MAX_UDP_PACKET_SIZE 65536 -#endif - -/** - * @name Default values to control CDR classes memory allocation strategies - */ -//@{ - -/// Control the initial size of all CDR buffers, application -/// developers may want to optimize this value to fit their request -/// size -#if !defined (ACE_DEFAULT_CDR_BUFSIZE) -# define ACE_DEFAULT_CDR_BUFSIZE 512 -#endif /* ACE_DEFAULT_CDR_BUFSIZE */ - -#if (ACE_DEFAULT_CDR_BUFSIZE == 0) -# error: ACE_DEFAULT_CDR_BUFSIZE should be bigger then 0 -#endif - -/// Stop exponential growth of CDR buffers to avoid overallocation -#if !defined (ACE_DEFAULT_CDR_EXP_GROWTH_MAX) -# define ACE_DEFAULT_CDR_EXP_GROWTH_MAX 65536 -#endif /* ACE_DEFAULT_CDR_EXP_GROWTH_MAX */ - -/// Control CDR buffer growth after maximum exponential growth is -/// reached -#if !defined (ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK) -# define ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK 65536 -#endif /* ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK */ -//@} - -/// Control the zero-copy optimizations for octet sequences -/** - * Large octet sequences can be sent without any copies by chaining - * them in the list of message blocks that represent a single CDR - * stream. However, if the octet sequence is too small the zero copy - * optimizations actually hurt performance. Octet sequences smaller - * than this value will be copied. - */ -#if !defined (ACE_DEFAULT_CDR_MEMCPY_TRADEOFF) -#define ACE_DEFAULT_CDR_MEMCPY_TRADEOFF 256 -#endif /* ACE_DEFAULT_CDR_MEMCPY_TRADEOFF */ - -#if defined (ACE_WIN32) - // Define the pathname separator characters for Win32 (ugh). -# define ACE_DIRECTORY_SEPARATOR_STR_A "\\" -# define ACE_DIRECTORY_SEPARATOR_CHAR_A '\\' -#else - // Define the pathname separator characters for UNIX. -# define ACE_DIRECTORY_SEPARATOR_STR_A "/" -# define ACE_DIRECTORY_SEPARATOR_CHAR_A '/' -#endif /* ACE_WIN32 */ - -// Define the Wide character and normal versions of some of the string macros -#if defined (ACE_HAS_WCHAR) -# define ACE_DIRECTORY_SEPARATOR_STR_W ACE_TEXT_WIDE(ACE_DIRECTORY_SEPARATOR_STR_A) -# define ACE_DIRECTORY_SEPARATOR_CHAR_W ACE_TEXT_WIDE(ACE_DIRECTORY_SEPARATOR_CHAR_A) -#endif /* ACE_HAS_WCHAR */ - -#define ACE_DIRECTORY_SEPARATOR_STR ACE_TEXT (ACE_DIRECTORY_SEPARATOR_STR_A) -#define ACE_DIRECTORY_SEPARATOR_CHAR ACE_TEXT (ACE_DIRECTORY_SEPARATOR_CHAR_A) - -#if !defined (ACE_DEFAULT_THREAD_PRIORITY) -# define ACE_DEFAULT_THREAD_PRIORITY (-0x7fffffffL - 1L) -#endif /* ACE_DEFAULT_THREAD_PRIORITY */ - -#if !defined (ACE_DEFAULT_THREAD_STACKSIZE) -# define ACE_DEFAULT_THREAD_STACKSIZE 0 -#endif /* ACE_DEFAULT_THREAD_STACKSIZE */ - -#if !defined (ACE_MAX_DEFAULT_PORT) -# define ACE_MAX_DEFAULT_PORT 65535 -#endif /* ACE_MAX_DEFAULT_PORT */ - -// 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_WIN32) -# define ACE_PLATFORM_A "Win32" -# define ACE_PLATFORM_EXE_SUFFIX_A ".exe" -#elif defined (ACE_VXWORKS) -# define ACE_PLATFORM_A "VxWorks" -# if defined (__RTP__) -# define ACE_PLATFORM_EXE_SUFFIX_A ".vxe" -# else -# define ACE_PLATFORM_EXE_SUFFIX_A ".out" -# endif -#else /* !ACE_WIN32 && !ACE_VXWORKS */ -# define ACE_PLATFORM_A "UNIX" -# define ACE_PLATFORM_EXE_SUFFIX_A "" -#endif /* ACE_WIN32 */ - -// Define the Wide character and normal versions of some of the string macros -#if defined (ACE_HAS_WCHAR) -# define ACE_PLATFORM_W ACE_TEXT_WIDE(ACE_PLATFORM_A) -# define ACE_PLATFORM_EXE_SUFFIX_W ACE_TEXT_WIDE(ACE_PLATFORM_EXE_SUFFIX_A) -#endif /* ACE_HAS_WCHAR */ - -#define ACE_PLATFORM ACE_TEXT (ACE_PLATFORM_A) -#define ACE_PLATFORM_EXE_SUFFIX ACE_TEXT (ACE_PLATFORM_EXE_SUFFIX_A) - -#if defined (ACE_WIN32) -# 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__ */ -# define ACE_DLL_PREFIX ACE_TEXT ("") -# endif /* __MINGW32__ */ -#else /* !ACE_WIN32 */ -# if !defined (ACE_LD_SEARCH_PATH) -# define ACE_LD_SEARCH_PATH ACE_TEXT ("LD_LIBRARY_PATH") -# endif /* ACE_LD_SEARCH_PATH */ -# if !defined (ACE_LD_SEARCH_PATH_SEPARATOR_STR) -# define ACE_LD_SEARCH_PATH_SEPARATOR_STR ACE_TEXT (":") -# endif /* ACE_LD_SEARCH_PATH_SEPARATOR_STR */ -#endif /* ACE_WIN32 */ - -#if !defined (ACE_DLL_SUFFIX) -# define ACE_DLL_SUFFIX ACE_TEXT (".so") -#endif /* ACE_DLL_SUFFIX */ - -#if !defined (ACE_DLL_PREFIX) -# define ACE_DLL_PREFIX ACE_TEXT ("lib") -#endif /* ACE_DLL_PREFIX */ - -#if defined (ACE_WIN32) -// Used for dynamic linking -# if !defined (ACE_DEFAULT_SVC_CONF) -# if (ACE_USES_CLASSIC_SVC_CONF == 1) -# define ACE_DEFAULT_SVC_CONF ACE_TEXT (".\\svc.conf") -# else -# define ACE_DEFAULT_SVC_CONF ACE_TEXT (".\\svc.conf.xml") -# endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */ -# endif /* ACE_DEFAULT_SVC_CONF */ -#endif /* ACE_WIN32 */ - - // Used for dynamic linking. -#if !defined (ACE_DEFAULT_SVC_CONF) -# if (ACE_USES_CLASSIC_SVC_CONF == 1) -# define ACE_DEFAULT_SVC_CONF ACE_TEXT ("./svc.conf") -# else -# define ACE_DEFAULT_SVC_CONF ACE_TEXT ("./svc.conf.xml") -# endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */ -#endif /* ACE_DEFAULT_SVC_CONF */ - -#if !defined (ACE_LOGGER_KEY) -# define ACE_LOGGER_KEY ACE_TEXT ("/tmp/server_daemon") -#endif /* ACE_LOGGER_KEY */ - -// Theses defines are used by the ACE Name Server. -#if !defined (ACE_DEFAULT_LOCALNAME_A) -# define ACE_DEFAULT_LOCALNAME_A "localnames" -#endif /* ACE_DEFAULT_LOCALNAME_A */ -#if !defined (ACE_DEFAULT_GLOBALNAME_A) -# 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) -#endif /* ACE_HAS_WCHAR */ - -#define ACE_DEFAULT_LOCALNAME ACE_TEXT (ACE_DEFAULT_LOCALNAME_A) -#define ACE_DEFAULT_GLOBALNAME ACE_TEXT (ACE_DEFAULT_GLOBALNAME_A) - -# if defined (ACE_WIN32) - // The "null" device on Win32. -# define ACE_DEV_NULL "nul" -# define ACE_SYSCALL_FAILED 0xFFFFFFFF -# else /* !ACE_WIN32 */ - // The "null" device on UNIX. -# define ACE_DEV_NULL "/dev/null" -# define ACE_SYSCALL_FAILED -1 -# endif /* ACE_WIN32 */ - -#include /**/ "ace/post.h" -#endif /*ACE_DEFAULT_CONSTANTS_H*/ diff --git a/ACE/ace/Dev_Poll_Reactor.cpp b/ACE/ace/Dev_Poll_Reactor.cpp deleted file mode 100644 index cfa87d00650..00000000000 --- a/ACE/ace/Dev_Poll_Reactor.cpp +++ /dev/null @@ -1,2513 +0,0 @@ -// $Id$ - -#include "ace/OS_NS_errno.h" -#include "ace/Dev_Poll_Reactor.h" -#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 /**/ -# elif defined (ACE_HAS_DEV_POLL) -# if defined (linux) -# include /**/ -# elif defined (HPUX_VERS) && HPUX_VERS < 1123 -# include /**/ -# else -# include /**/ -# endif /* linux */ -# endif /* ACE_HAS_DEV_POLL */ - -#if !defined (__ACE_INLINE__) -# include "ace/Dev_Poll_Reactor.inl" -#endif /* __ACE_INLINE__ */ - - -#include "ace/Handle_Set.h" -#include "ace/Reactor.h" -#include "ace/Timer_Heap.h" -#include "ace/Timer_Queue.h" -#include "ace/ACE.h" -#include "ace/Reverse_Lock_T.h" -#include "ace/Recursive_Thread_Mutex.h" -#include "ace/Null_Mutex.h" -#include "ace/os_include/os_poll.h" -#include "ace/OS_NS_sys_mman.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Dev_Poll_Reactor_Notify::ACE_Dev_Poll_Reactor_Notify (void) - : dp_reactor_ (0) - , notification_pipe_ () - , max_notify_iterations_ (-1) -#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) - , notification_queue_ () -#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */ -{ -} - -int -ACE_Dev_Poll_Reactor_Notify::open (ACE_Reactor_Impl *r, - ACE_Timer_Queue * /* timer_queue */, - int disable_notify_pipe) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::open"); - - if (disable_notify_pipe == 0) - { - this->dp_reactor_ = dynamic_cast (r); - - if (this->dp_reactor_ == 0) - { - errno = EINVAL; - return -1; - } - - if (this->notification_pipe_.open () == -1) - return -1; - -#if defined (F_SETFD) - // close-on-exec - ACE_OS::fcntl (this->notification_pipe_.read_handle (), F_SETFD, 1); - ACE_OS::fcntl (this->notification_pipe_.write_handle (), F_SETFD, 1); -#endif /* F_SETFD */ - -#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) - if (notification_queue_.open () == -1) - { - return -1; - } - - if (ACE::set_flags (this->notification_pipe_.write_handle (), - ACE_NONBLOCK) == -1) - return -1; -#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */ - - // Set the read handle into non-blocking mode since we need to - // perform a "speculative" read when determining if there are - // notifications to dispatch. - if (ACE::set_flags (this->notification_pipe_.read_handle (), - ACE_NONBLOCK) == -1) - return -1; - } - - return 0; -} - -int -ACE_Dev_Poll_Reactor_Notify::close (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::close"); - -#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) - notification_queue_.reset (); -#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */ - - return this->notification_pipe_.close (); -} - -int -ACE_Dev_Poll_Reactor_Notify::notify (ACE_Event_Handler *eh, - ACE_Reactor_Mask mask, - ACE_Time_Value *timeout) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::notify"); - - // Just consider this method a "no-op" if there's no - // ACE_Dev_Poll_Reactor configured. - if (this->dp_reactor_ == 0) - return 0; - - ACE_Notification_Buffer buffer (eh, mask); - -#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) - 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) - 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. - 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)) - return -1; - - return 0; -#else - - ACE_Dev_Poll_Handler_Guard eh_guard (eh); - - ssize_t n = ACE::send (this->notification_pipe_.write_handle (), - (char *) &buffer, - sizeof buffer, - timeout); - if (n == -1) - return -1; - - eh_guard.release (); - - return 0; -#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */ -} - -int -ACE_Dev_Poll_Reactor_Notify::dispatch_notifications ( - int & /* number_of_active_handles */, - ACE_Handle_Set & /* rd_mask */) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::dispatch_notifications"); - - // This method is unimplemented in the ACE_Dev_Poll_Reactor. - // Instead, the notification handler is invoked as part of the IO - // event set. Doing so alters the some documented semantics that - // state that the notifications are handled before IO events. - // Enforcing such semantics does not appear to be beneficial, and - // also serves to slow down event dispatching particularly with this - // ACE_Dev_Poll_Reactor. - - ACE_NOTSUP_RETURN (-1); -} - -int -ACE_Dev_Poll_Reactor_Notify::read_notify_pipe (ACE_HANDLE handle, - ACE_Notification_Buffer &buffer) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::read_notify_pipe"); - - // This is a (non-blocking) "speculative" read, i.e., we attempt to - // read even if no event was polled on the read handle. A - // speculative read is necessary since notifications must be - // dispatched before IO events. We can avoid the speculative read - // by "walking" the array of pollfd structures returned from - // `/dev/poll' or `/dev/epoll' but that is potentially much more - // 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. - bool more_messages_queued = false; - ACE_Notification_Buffer next; - - int 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 == -1) - return -1; - - if (more_messages_queued) - (void) ACE::send (this->notification_pipe_.write_handle (), - (char *)&next, - 1 /* one byte is enough */, - &ACE_Time_Value::zero); -#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); - - if (n > 0) - { - // Check to see if we've got a short read. - if (static_cast (n) != to_read) - { - size_t remainder = to_read - n; - - // If so, try to recover by reading the remainder. If this - // 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, &read_p[n], remainder) <= 0) - return -1; - } - - return 1; - } - - // Return -1 if things have gone seriously wrong. - if (n <= 0 && (errno != EWOULDBLOCK && errno != EAGAIN)) - return -1; - - return have_one ? 1 : 0; -} - - -int -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 . Note that - // by default 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 - // == . - //this->select_reactor_->renew (); - - return number_dispatched; -} - -ACE_HANDLE -ACE_Dev_Poll_Reactor_Notify::notify_handle (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::notify_handle"); - - return this->notification_pipe_.read_handle (); -} - -int -ACE_Dev_Poll_Reactor_Notify::is_dispatchable (ACE_Notification_Buffer &) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::is_dispatchable"); - - ACE_NOTSUP_RETURN (-1); -} - -int -ACE_Dev_Poll_Reactor_Notify::dispatch_notify (ACE_Notification_Buffer &buffer) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::dispatch_notify"); - - // If eh == 0 then another thread is unblocking the - // ACE_Dev_Poll_Reactor to update the ACE_Dev_Poll_Reactor's - // internal structures. Otherwise, we need to dispatch the - // appropriate handle_* method on the ACE_Event_Handler - // pointer we've been passed. - if (buffer.eh_ != 0) - { - int result = 0; - - // Guard the handler's refcount. Recall that when the notify - // was queued, the refcount was incremented, so it need not be - // now. The guard insures that it is decremented properly. - ACE_Dev_Poll_Handler_Guard eh_guard (buffer.eh_, false); - - switch (buffer.mask_) - { - case ACE_Event_Handler::READ_MASK: - case ACE_Event_Handler::ACCEPT_MASK: - result = buffer.eh_->handle_input (ACE_INVALID_HANDLE); - break; - case ACE_Event_Handler::WRITE_MASK: - result = buffer.eh_->handle_output (ACE_INVALID_HANDLE); - break; - case ACE_Event_Handler::EXCEPT_MASK: - result = buffer.eh_->handle_exception (ACE_INVALID_HANDLE); - break; - default: - // Should we bail out if we get an invalid mask? - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("dispatch_notify invalid mask = %d\n"), - buffer.mask_)); - } - if (result == -1) - buffer.eh_->handle_close (ACE_INVALID_HANDLE, buffer.mask_); - } - - return 1; -} - -void -ACE_Dev_Poll_Reactor_Notify::max_notify_iterations (int iterations) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::max_notify_iterations"); - - // Must always be > 0 or < 0 to optimize the loop exit condition. - if (iterations == 0) - iterations = 1; - - this->max_notify_iterations_ = iterations; -} - -int -ACE_Dev_Poll_Reactor_Notify::max_notify_iterations (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::max_notify_iterations"); - - return this->max_notify_iterations_; -} - -int -ACE_Dev_Poll_Reactor_Notify::purge_pending_notifications ( - ACE_Event_Handler *eh, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::purge_pending_notifications"); - -#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) - - return notification_queue_.purge_pending_notifications (eh, mask); - -#else /* defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) */ - ACE_UNUSED_ARG (eh); - ACE_UNUSED_ARG (mask); - ACE_NOTSUP_RETURN (-1); -#endif /* defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) */ -} - -void -ACE_Dev_Poll_Reactor_Notify::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Dev_Poll_Reactor_Notify::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("dp_reactor_ = %@"), - this->dp_reactor_)); - this->notification_pipe_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// ----------------------------------------------------------------- - -ACE_Dev_Poll_Reactor_Handler_Repository:: -ACE_Dev_Poll_Reactor_Handler_Repository (void) - : max_size_ (0), - handlers_ (0) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::ACE_Dev_Poll_Reactor_Handler_Repository"); -} - -int -ACE_Dev_Poll_Reactor_Handler_Repository::invalid_handle ( - ACE_HANDLE handle) const -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::invalid_handle"); - - if (handle < 0 || handle >= this->max_size_) - { - errno = EINVAL; - return 1; - } - else - return 0; -} - -int -ACE_Dev_Poll_Reactor_Handler_Repository::handle_in_range ( - ACE_HANDLE handle) const -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::handle_in_range"); - - if (handle >= 0 && handle < this->max_size_) - return 1; - else - { - errno = EINVAL; - return 0; - } -} - -int -ACE_Dev_Poll_Reactor_Handler_Repository::open (size_t size) -{ - 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); - - // Try to increase the number of handles if is greater than - // the current limit. - return ACE::set_handle_limit (size); -} - -int -ACE_Dev_Poll_Reactor_Handler_Repository::unbind_all (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::unbind_all"); - - // Unbind all of the event handlers. - for (int handle = 0; - handle < this->max_size_; - ++handle) - this->unbind (handle); - - return 0; -} - -int -ACE_Dev_Poll_Reactor_Handler_Repository::close (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::close"); - - if (this->handlers_ != 0) - { - this->unbind_all (); - - delete [] this->handlers_; - this->handlers_ = 0; - } - - return 0; -} - -ACE_Event_Handler * -ACE_Dev_Poll_Reactor_Handler_Repository::find (ACE_HANDLE handle, - size_t *index_p) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::find"); - - ACE_Event_Handler *eh = 0; - - // Only bother to search for the if it's in range. - 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; - } - - return eh; -} - -int -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"); - - if (event_handler == 0) - return -1; - - if (handle == ACE_INVALID_HANDLE) - handle = event_handler->get_handle (); - - if (this->invalid_handle (handle)) - return -1; - - this->handlers_[handle].event_handler = event_handler; - this->handlers_[handle].mask = mask; - event_handler->add_reference (); - - return 0; -} - -int -ACE_Dev_Poll_Reactor_Handler_Repository::unbind (ACE_HANDLE handle, - bool decr_refcnt) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::unbind"); - - if (this->find (handle) == 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; - - return 0; -} - -// ----------------------------------------------------------------- - -ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor (ACE_Sig_Handler *sh, - ACE_Timer_Queue *tq, - int disable_notify_pipe, - ACE_Reactor_Notify *notify, - int mask_signals, - 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 - , dp_fds_ (0) - , start_pfds_ (0) - , end_pfds_ (0) -#endif /* ACE_HAS_EVENT_POLL */ - , deactivated_ (0) - , token_ (*this, s_queue) - , lock_adapter_ (token_) - , timer_queue_ (0) - , delete_timer_queue_ (false) - , signal_handler_ (0) - , delete_signal_handler_ (false) - , notify_handler_ (0) - , delete_notify_handler_ (false) - , mask_signals_ (mask_signals) - , restart_ (0) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor"); - - if (this->open (ACE::max_handles (), - 0, - sh, - tq, - disable_notify_pipe, - notify) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Dev_Poll_Reactor::open ") - ACE_TEXT ("failed inside ") - ACE_TEXT ("ACE_Dev_Poll_Reactor::CTOR"))); -} - -ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor (size_t size, - int rs, - ACE_Sig_Handler *sh, - ACE_Timer_Queue *tq, - int disable_notify_pipe, - ACE_Reactor_Notify *notify, - int mask_signals, - 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 - , dp_fds_ (0) - , start_pfds_ (0) - , end_pfds_ (0) -#endif /* ACE_HAS_EVENT_POLL */ - , deactivated_ (0) - , token_ (*this, s_queue) - , lock_adapter_ (token_) - , timer_queue_ (0) - , delete_timer_queue_ (false) - , signal_handler_ (0) - , delete_signal_handler_ (false) - , notify_handler_ (0) - , delete_notify_handler_ (false) - , mask_signals_ (mask_signals) - , restart_ (0) -{ - if (this->open (size, - rs, - sh, - tq, - disable_notify_pipe, - notify) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Dev_Poll_Reactor::open ") - ACE_TEXT ("failed inside ACE_Dev_Poll_Reactor::CTOR"))); -} - -ACE_Dev_Poll_Reactor::~ACE_Dev_Poll_Reactor (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::~ACE_Dev_Poll_Reactor"); - - (void) this->close (); -} - -int -ACE_Dev_Poll_Reactor::open (size_t size, - int restart, - ACE_Sig_Handler *sh, - ACE_Timer_Queue *tq, - int disable_notify_pipe, - ACE_Reactor_Notify *notify) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::open"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - // Can't initialize ourselves more than once. - if (this->initialized_) - return -1; - - this->restart_ = restart; - this->signal_handler_ = sh; - this->timer_queue_ = tq; - this->notify_handler_ = notify; - - int result = 0; - - // Allows the signal handler to be overridden. - if (this->signal_handler_ == 0) - { - ACE_NEW_RETURN (this->signal_handler_, - ACE_Sig_Handler, - -1); - - if (this->signal_handler_ == 0) - result = -1; - else - this->delete_signal_handler_ = true; - } - - // Allows the timer queue to be overridden. - if (result != -1 && this->timer_queue_ == 0) - { - ACE_NEW_RETURN (this->timer_queue_, - ACE_Timer_Heap, - -1); - - if (this->timer_queue_ == 0) - result = -1; - else - this->delete_timer_queue_ = true; - } - - // Allows the Notify_Handler to be overridden. - if (result != -1 && this->notify_handler_ == 0) - { - ACE_NEW_RETURN (this->notify_handler_, - ACE_Dev_Poll_Reactor_Notify, - -1); - - if (this->notify_handler_ == 0) - result = -1; - else - this->delete_notify_handler_ = true; - } - -#if defined (ACE_HAS_EVENT_POLL) - - // Allocating event table: - ACE_NEW_RETURN (this->events_, epoll_event[size], -1); - - // Initializing epoll: - this->poll_fd_ = ::epoll_create (size); - if (this->poll_fd_ == -1) - result = -1; - -#else - - // Allocate the array before opening the device to avoid a potential - // resource leak if allocation fails. - ACE_NEW_RETURN (this->dp_fds_, - pollfd[size], - -1); - - // Open the `/dev/poll' character device. - this->poll_fd_ = ACE_OS::open ("/dev/poll", O_RDWR); - if (this->poll_fd_ == ACE_INVALID_HANDLE) - result = -1; - -#endif /* ACE_HAS_EVENT_POLL */ - - if (result != -1 && this->handler_rep_.open (size) == -1) - result = -1; - - // Registration of the notification handler must be done after the - // /dev/poll device has been fully initialized. - else if (this->notify_handler_->open (this, - 0, - disable_notify_pipe) == -1 - || (disable_notify_pipe == 0 - && this->register_handler_i ( - this->notify_handler_->notify_handle (), - this->notify_handler_, - 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 (); - - return result; -} - -int -ACE_Dev_Poll_Reactor::current_info (ACE_HANDLE, size_t & /* size */) -{ - ACE_NOTSUP_RETURN (-1); -} - - -int -ACE_Dev_Poll_Reactor::set_sig_handler (ACE_Sig_Handler *signal_handler) -{ - if (this->delete_signal_handler_) - delete this->signal_handler_; - - this->signal_handler_ = signal_handler; - this->delete_signal_handler_ = false; - - return 0; -} - -int -ACE_Dev_Poll_Reactor::timer_queue (ACE_Timer_Queue *tq) -{ - if (this->delete_timer_queue_) - delete this->timer_queue_; - - this->timer_queue_ = tq; - this->delete_timer_queue_ = false; - - return 0; - -} - -ACE_Timer_Queue * -ACE_Dev_Poll_Reactor::timer_queue (void) const -{ - return this->timer_queue_; -} - -int -ACE_Dev_Poll_Reactor::close (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::close"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - int result = 0; - - if (this->poll_fd_ != ACE_INVALID_HANDLE) - { - result = ACE_OS::close (this->poll_fd_); - } - -#if defined (ACE_HAS_EVENT_POLL) - - delete [] this->events_; - this->events_ = 0; - -#else - - delete [] this->dp_fds_; - this->dp_fds_ = 0; - -#endif /* ACE_HAS_EVENT_POLL */ - - if (this->delete_signal_handler_) - { - delete this->signal_handler_; - this->signal_handler_ = 0; - this->delete_signal_handler_ = false; - } - - (void) this->handler_rep_.close (); - - if (this->delete_timer_queue_) - { - delete this->timer_queue_; - this->timer_queue_ = 0; - this->delete_timer_queue_ = false; - } - - if (this->notify_handler_ != 0) - this->notify_handler_->close (); - - if (this->delete_notify_handler_) - { - delete this->notify_handler_; - this->notify_handler_ = 0; - this->delete_notify_handler_ = false; - } - - 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; -} - -int -ACE_Dev_Poll_Reactor::work_pending (const ACE_Time_Value & max_wait_time) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::work_pending"); - - // Stash the current time - // - // The destructor of this object will automatically compute how much - // time elapsed since this method was called. - ACE_Time_Value mwt (max_wait_time); - ACE_MT (ACE_Countdown_Time countdown (&mwt)); - - Token_Guard guard (this->token_); - int const result = guard.acquire_quietly (&mwt); - - // If the guard is NOT the owner just return the retval - if (!guard.is_owner ()) - return result; - - // Update the countdown to reflect time waiting for the mutex. - ACE_MT (countdown.update ()); - - return this->work_pending_i (&mwt); -} - -int -ACE_Dev_Poll_Reactor::work_pending_i (ACE_Time_Value * max_wait_time) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::work_pending_i"); - - if (this->deactivated_) - return 0; - -#if defined (ACE_HAS_EVENT_POLL) - if (this->start_pevents_ != this->end_pevents_) -#else - if (this->start_pfds_ != this->end_pfds_) -#endif /* ACE_HAS_EVENT_POLL */ - return 1; // We still have work_pending (). Do not poll for - // additional events. - - ACE_Time_Value timer_buf (0); - ACE_Time_Value *this_timeout = - this->timer_queue_->calculate_timeout (max_wait_time, &timer_buf); - - // 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 != *max_wait_time) ? 1 : 0); - - long const timeout = - (this_timeout == 0 - ? -1 /* Infinity */ - : static_cast (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 (timeout)); - - if (nfds > 0) - { - this->start_pevents_ = this->events_; - this->end_pevents_ = this->start_pevents_ + nfds; - } - -#else - - struct dvpoll dvp; - - dvp.dp_fds = this->dp_fds_; - dvp.dp_nfds = this->size_; - dvp.dp_timeout = timeout; // Milliseconds - - // Poll for events - int const nfds = ACE_OS::ioctl (this->poll_fd_, DP_POLL, &dvp); - - // Retrieve the results from the pollfd array. - this->start_pfds_ = dvp.dp_fds; - - // If nfds == 0 then end_pfds_ == start_pfds_ meaning that there is - // no work pending. If nfds > 0 then there is work pending. - // Otherwise an error occurred. - if (nfds > -1) - this->end_pfds_ = this->start_pfds_ + nfds; -#endif /* ACE_HAS_EVENT_POLL */ - - // If timers are pending, override any timeout from the poll. - return (nfds == 0 && timers_pending != 0 ? 1 : nfds); -} - - -int -ACE_Dev_Poll_Reactor::handle_events (ACE_Time_Value *max_wait_time) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::handle_events"); - - // Stash the current 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)); - - Token_Guard guard (this->token_); - int const result = guard.acquire_quietly (max_wait_time); - - // If the guard is NOT the owner just return the retval - if (!guard.is_owner ()) - return result; - - if (this->deactivated_) - return -1; - - // Update the countdown to reflect time waiting for the mutex. - ACE_MT (countdown.update ()); - - return this->handle_events_i (max_wait_time, guard); -} - -int -ACE_Dev_Poll_Reactor::handle_events_i (ACE_Time_Value *max_wait_time, - Token_Guard &guard) -{ - 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 - // 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) - ACE_ERROR ((LM_ERROR, "%t: %p\n", "work_pending_i")); - } - while (result == -1 && this->restart_ != 0 && errno == EINTR); - - if (result == 0 || (result == -1 && errno == ETIME)) - return 0; - else if (result == -1) - { - if (errno != EINTR) - return -1; - - // Bail out -- we got here since the poll was interrupted. - // If it was due to a signal registered through our ACE_Sig_Handler, - // then it was dispatched, so we count it in the number of events - // handled rather than cause an error return. - if (ACE_Sig_Handler::sig_pending () != 0) - { - ACE_Sig_Handler::sig_pending (0); - return 1; - } - return -1; - } - - // Dispatch an event. - return this->dispatch (guard); -} - -// Dispatch an event. On entry, the token is held by the caller. If an -// event is found to dispatch, the token is released before dispatching it. -int -ACE_Dev_Poll_Reactor::dispatch (Token_Guard &guard) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::dispatch"); - - // Perform the Template Method for dispatching the first located event. - // We dispatch only one to effectively dispatch events concurrently. - // As soon as an event is located, the token is released, allowing the - // next waiter to begin getting an event while we dispatch one here. - int result = 0; - - // Handle timers early since they may have higher latency - // constraints than I/O handlers. Ideally, the order of - // dispatching should be a strategy... - 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. - result = this->dispatch_io_event (guard); - - return result; -} - -int -ACE_Dev_Poll_Reactor::dispatch_timer_handler (Token_Guard &guard) -{ - if (this->timer_queue_->is_empty ()) - return 0; // Empty timer queue so cannot have any expired timers. - - // Get the current time - ACE_Time_Value cur_time (this->timer_queue_->gettimeofday () + - this->timer_queue_->timer_skew ()); - - // Look for a node in the timer queue whose timer <= the present - // time. - ACE_Timer_Node_Dispatch_Info info; - if (this->timer_queue_->dispatch_info (cur_time, info)) - { - const void *upcall_act = 0; - - // Preinvoke (handles refcount if needed, etc.) - this->timer_queue_->preinvoke (info, cur_time, upcall_act); - - // Release the token before expiration upcall. - guard.release_token (); - - // call the functor - this->timer_queue_->upcall (info, cur_time); - - // Postinvoke (undo refcount if needed, etc.) - this->timer_queue_->postinvoke (info, cur_time, upcall_act); - - // We have dispatched a timer - return 1; - } - - return 0; -} - -#if 0 -int -ACE_Dev_Poll_Reactor::dispatch_notification_handlers ( - ACE_Select_Reactor_Handle_Set &dispatch_set, - int &number_of_active_handles, - int &number_of_handlers_dispatched) -{ - // Check to see if the ACE_HANDLE associated with the - // Dev_Poll_Reactor's notify hook is enabled. If so, it means that - // one or more other threads are trying to update the - // ACE_Dev_Poll_Reactor's internal tables or the notify pipe is - // enabled. We'll handle all these threads and notifications, and - // then break out to continue the event loop. - - const int n = - this->notify_handler_->dispatch_notifications (number_of_active_handles, - dispatch_set.rd_mask_); - - if (n == -1) - return -1; - else - number_of_handlers_dispatched += n; - - return /* this->state_changed_ ? -1 : */ 0; -} -#endif /* 0 */ - -int -ACE_Dev_Poll_Reactor::dispatch_io_event (Token_Guard &guard) -{ - - // Define bits to check for while dispatching. -#if defined (ACE_HAS_EVENT_POLL) - const __uint32_t out_event = EPOLLOUT; - const __uint32_t exc_event = EPOLLPRI; - const __uint32_t in_event = EPOLLIN; - const __uint32_t err_event = EPOLLHUP | EPOLLERR; -#else - const short out_event = POLLOUT; - const short exc_event = POLLPRI; - const short in_event = POLLIN; - const short err_event = 0; // No known bits for this -#endif /* ACE_HAS_EVENT_POLL */ - - // 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 - // poll) must be dispatched before any additional event can be - // 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 - // are no more events for the handle, also increment the pfds pointer - // to move to the next handle ready. - // - // Notice that pfds only contains file descriptors that have - // received events. -#if defined (ACE_HAS_EVENT_POLL) - struct epoll_event *& pfds = this->start_pevents_; - if (pfds < this->end_pevents_) -#else - struct pollfd *& pfds = this->start_pfds_; - if (pfds < this->end_pfds_) -#endif /* ACE_HAS_EVENT_POLL */ - { -#if defined (ACE_HAS_EVENT_POLL) - const ACE_HANDLE handle = pfds->data.fd; - __uint32_t &revents = pfds->events; -#else - const ACE_HANDLE handle = pfds->fd; - short &revents = pfds->revents; -#endif /* ACE_HAS_EVENT_POLL */ - - // Figure out what to do first in order to make it easier to manage - // the bit twiddling and possible pfds increment before releasing - // the token for dispatch. - // 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; - if (ACE_BIT_ENABLED (revents, out_event)) - { - disp_out = true; - ACE_CLR_BITS (revents, out_event); - } - else if (ACE_BIT_ENABLED (revents, exc_event)) - { - disp_exc = true; - ACE_CLR_BITS (revents, exc_event); - } - else if (ACE_BIT_ENABLED (revents, in_event)) - { - disp_in = true; - 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); - ++pfds; - return 1; - } - else - { - ACE_ERROR ((LM_ERROR, ACE_TEXT (" (%t) dispatch_io h %d unknown events 0x%x\n"), handle, revents)); - // ACE_ASSERT (0); - } - - // 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; - - /* When using sys_epoll, we can attach arbitrary user - data to the descriptor, so it can be delivered when - activity is detected. Perhaps we should store event - handler together with descriptor, instead of looking - it up in a repository ? Could it boost performance ? - */ - ACE_Event_Handler *eh = this->handler_rep_.find (handle); - - if (eh) - { - // Modify the reference count in an exception-safe way. - // Note that eh could be the notify handler. It's not strictly - // necessary to manage its refcount, but since we don't enable - // the counting policy, it won't do much. Management of the - // notified handlers themselves is done in the notify handler. - ACE_Dev_Poll_Handler_Guard eh_guard (eh); - - // Release the reactor token before upcall. - guard.release_token (); - - // Dispatch the detected event - if (disp_out) - { - const int status = - this->upcall (eh, &ACE_Event_Handler::handle_output, handle); - - if (status < 0) - // Note that the token is reacquired in remove_handler (). - this->remove_handler (handle, ACE_Event_Handler::WRITE_MASK); - return 1; - } - - if (disp_exc) - { - const int status = - this->upcall (eh, &ACE_Event_Handler::handle_exception, handle); - - if (status < 0) - // Note that the token is reacquired in remove_handler (). - this->remove_handler (handle, ACE_Event_Handler::EXCEPT_MASK); - return 1; - } - - if (disp_in) - { - const int status = - this->upcall (eh, &ACE_Event_Handler::handle_input, handle); - - if (status < 0) - // Note that the token is reacquired in remove_handler (). - this->remove_handler (handle, ACE_Event_Handler::READ_MASK); - return 1; - } - } // The reactor token is reacquired upon leaving this scope. - } - - return 0; -} - -int -ACE_Dev_Poll_Reactor::alertable_handle_events (ACE_Time_Value *max_wait_time) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::alertable_handle_events"); - - return this->handle_events (max_wait_time); -} - -int -ACE_Dev_Poll_Reactor::handle_events (ACE_Time_Value &max_wait_time) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::handle_events"); - - return this->handle_events (&max_wait_time); -} - -int -ACE_Dev_Poll_Reactor::alertable_handle_events (ACE_Time_Value &max_wait_time) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::alertable_handle_events"); - - return this->handle_events (max_wait_time); -} - -int -ACE_Dev_Poll_Reactor::deactivated (void) -{ - return this->deactivated_; -} - -void -ACE_Dev_Poll_Reactor::deactivate (int do_stop) -{ - this->deactivated_ = do_stop; - this->wakeup_all_threads (); -} - -int -ACE_Dev_Poll_Reactor::register_handler (ACE_Event_Handler *handler, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->register_handler_i (handler->get_handle (), - handler, - mask); -} - -int -ACE_Dev_Poll_Reactor::register_handler (ACE_HANDLE handle, - ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->register_handler_i (handle, - event_handler, - mask); -} - -int -ACE_Dev_Poll_Reactor::register_handler_i (ACE_HANDLE handle, - ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler_i"); - - if (handle == ACE_INVALID_HANDLE - || mask == ACE_Event_Handler::NULL_MASK) - { - errno = EINVAL; - return -1; - } - - if (this->handler_rep_.find (handle) == 0) - { - // Handler not present in the repository. Bind it. - if (this->handler_rep_.bind (handle, event_handler, mask) != 0) - return -1; - -#if defined (ACE_HAS_EVENT_POLL) - - 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; - - if (::epoll_ctl (this->poll_fd_, op, handle, &epev) == -1) - { - ACE_ERROR ((LM_ERROR, "%p\n", "epoll_ctl")); - (void) this->handler_rep_.unbind (handle); - return -1; - } - -#endif /* ACE_HAS_EVENT_POLL */ - } - else - { - // Handler is already present in the repository, so register it - // 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, "%p\n", "mask_ops_i"), -1); - } - -#ifndef ACE_HAS_EVENT_POLL - - struct pollfd pfd; - - pfd.fd = handle; - pfd.events = this->reactor_mask_to_poll_event (mask); - pfd.revents = 0; - - // 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); - return -1; - } -#endif /*ACE_HAS_EVENT_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 - // keep going or if it needs to reconsult select (). - // this->state_changed_ = 1; - - return 0; -} - -int -ACE_Dev_Poll_Reactor::register_handler ( - ACE_HANDLE /* event_handle */, - ACE_HANDLE /* io_handle */, - ACE_Event_Handler * /* event_handler */, - ACE_Reactor_Mask /* mask */) -{ - ACE_NOTSUP_RETURN (-1); -} - -int -ACE_Dev_Poll_Reactor::register_handler (const ACE_Handle_Set &handle_set, - ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler"); - - ACE_Handle_Set_Iterator handle_iter (handle_set); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - // @@ It might be more efficient to construct a pollfd array and - // pass it to the write () call in register_handler_i () only once, - // instead of calling write () (a system call) once for each file - // descriptor. - - for (ACE_HANDLE h = handle_iter (); - h != ACE_INVALID_HANDLE; - h = handle_iter ()) - if (this->register_handler_i (h, event_handler, mask) == -1) - return -1; - - return 0; -} - -int -ACE_Dev_Poll_Reactor::register_handler (int signum, - ACE_Event_Handler *new_sh, - ACE_Sig_Action *new_disp, - ACE_Event_Handler **old_sh, - ACE_Sig_Action *old_disp) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler"); - - return this->signal_handler_->register_handler (signum, - new_sh, - new_disp, - old_sh, - old_disp); -} - -int -ACE_Dev_Poll_Reactor::register_handler (const ACE_Sig_Set &sigset, - ACE_Event_Handler *new_sh, - ACE_Sig_Action *new_disp) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::register_handler"); - - int result = 0; - -#if (ACE_NSIG > 0) - - for (int s = 1; s < ACE_NSIG; ++s) - if ((sigset.is_member (s) == 1) - && this->signal_handler_->register_handler (s, - new_sh, - new_disp) == -1) - result = -1; - -#else /* ACE_NSIG <= 0 */ - - ACE_UNUSED_ARG (sigset); - ACE_UNUSED_ARG (new_sh); - ACE_UNUSED_ARG (new_disp); - -#endif /* ACE_NSIG <= 0 */ - - return result; -} - -int -ACE_Dev_Poll_Reactor::remove_handler (ACE_Event_Handler *handler, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->remove_handler_i (handler->get_handle (), mask); -} - -int -ACE_Dev_Poll_Reactor::remove_handler (ACE_HANDLE handle, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->remove_handler_i (handle, mask); -} - -int -ACE_Dev_Poll_Reactor::remove_handler_i (ACE_HANDLE handle, - ACE_Reactor_Mask mask) -{ - 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) - return -1; - - // Check for ref counting now - handle_close () may delete eh. - bool const requires_reference_counting = - eh->reference_counting_policy ().value () == - ACE_Event_Handler::Reference_Counting_Policy::ENABLED; - - if (ACE_BIT_DISABLED (mask, ACE_Event_Handler::DONT_CALL)) - (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) - 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; -} - -int -ACE_Dev_Poll_Reactor::remove_handler (const ACE_Handle_Set &handle_set, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler"); - - ACE_Handle_Set_Iterator handle_iter (handle_set); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - // @@ It might be more efficient to construct a pollfd array and - // pass it to the write () call in register_handler_i () only once, - // instead of calling write () (a system call) once for each file - // descriptor. - - for (ACE_HANDLE h = handle_iter (); - h != ACE_INVALID_HANDLE; - h = handle_iter ()) - if (this->remove_handler_i (h, mask) == -1) - return -1; - - return 0; -} - -int -ACE_Dev_Poll_Reactor::remove_handler (int signum, - ACE_Sig_Action *new_disp, - ACE_Sig_Action *old_disp, - int sigkey) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler"); - - return this->signal_handler_->remove_handler (signum, - new_disp, - old_disp, - sigkey); -} - -int -ACE_Dev_Poll_Reactor::remove_handler (const ACE_Sig_Set &sigset) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler"); - - int result = 0; - -#if (ACE_NSIG > 0) - - for (int s = 1; s < ACE_NSIG; ++s) - if ((sigset.is_member (s) == 1) - && this->signal_handler_->remove_handler (s) == -1) - result = -1; - -#else /* ACE_NSIG <= 0 */ - - ACE_UNUSED_ARG (sigset); - -#endif /* ACE_NSIG <= 0 */ - - return result; -} - -int -ACE_Dev_Poll_Reactor::suspend_handler (ACE_Event_Handler *event_handler) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handler"); - - if (event_handler == 0) - { - errno = EINVAL; - return -1; - } - - ACE_HANDLE handle = event_handler->get_handle (); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->suspend_handler_i (handle); -} - -int -ACE_Dev_Poll_Reactor::suspend_handler (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handler"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->suspend_handler_i (handle); -} - -int -ACE_Dev_Poll_Reactor::suspend_handler (const ACE_Handle_Set &handles) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handler"); - - ACE_Handle_Set_Iterator handle_iter (handles); - ACE_HANDLE h; - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - while ((h = handle_iter ()) != ACE_INVALID_HANDLE) - if (this->suspend_handler_i (h) == -1) - return -1; - - return 0; -} - -int -ACE_Dev_Poll_Reactor::suspend_handlers (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handlers"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - size_t const len = this->handler_rep_.size (); - - for (size_t i = 0; i < len; ++i) - if (this->handler_rep_.suspended (i) == 0 - && this->suspend_handler_i (i) != 0) - return -1; - - return 0; -} - -int -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) - return -1; - - if (this->handler_rep_.suspended (handle)) - return 0; // Already suspended. @@ Should this be an error? - - // Remove the handle from the "interest set." - // - // Note that the associated event handler is still in the handler - // repository, but no events will be polled on the given handle thus - // no event will be dispatched to the event handler. - -#if defined (ACE_HAS_EVENT_POLL) - - struct epoll_event epev; - ACE_OS::memset (&epev, 0, sizeof (epev)); - static const int op = EPOLL_CTL_DEL; - - epev.events = 0; - epev.data.fd = handle; - - if (::epoll_ctl (this->poll_fd_, op, handle, &epev) == -1) - return -1; - -#else - - struct pollfd pfd[1]; - - pfd[0].fd = handle; - pfd[0].events = POLLREMOVE; - pfd[0].revents = 0; - - if (ACE_OS::write (this->poll_fd_, pfd, sizeof (pfd)) != sizeof (pfd)) - return -1; - -#endif /* ACE_HAS_EVENT_POLL */ - - this->handler_rep_.suspend (handle); - - return 0; -} - -int -ACE_Dev_Poll_Reactor::resume_handler (ACE_Event_Handler *event_handler) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handler"); - - if (event_handler == 0) - { - errno = EINVAL; - return -1; - } - - ACE_HANDLE handle = event_handler->get_handle (); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->resume_handler_i (handle); -} - -int -ACE_Dev_Poll_Reactor::resume_handler (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handler"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->resume_handler_i (handle); -} - -int -ACE_Dev_Poll_Reactor::resume_handler (const ACE_Handle_Set &handles) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handler"); - - ACE_Handle_Set_Iterator handle_iter (handles); - ACE_HANDLE h; - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - while ((h = handle_iter ()) != ACE_INVALID_HANDLE) - if (this->resume_handler_i (h) == -1) - return -1; - - return 0; -} - -int -ACE_Dev_Poll_Reactor::resume_handlers (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handlers"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - size_t const len = this->handler_rep_.size (); - - for (size_t i = 0; i < len; ++i) - if (this->handler_rep_.suspended (i) - && this->resume_handler_i (i) != 0) - return -1; - - return 0; -} - -int -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) - return -1; - - ACE_Reactor_Mask mask = this->handler_rep_.mask (handle); - - if (mask == ACE_Event_Handler::NULL_MASK) - return -1; - - // Place the handle back in to the "interest set." - // - // Events for the given handle will once again be polled. - -#if defined (ACE_HAS_EVENT_POLL) - - 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; - - if (::epoll_ctl (this->poll_fd_, op, handle, &epev) == -1) - return -1; - -#else - - struct pollfd pfd[1]; - - pfd[0].fd = handle; - pfd[0].events = this->reactor_mask_to_poll_event (mask); - pfd[0].revents = 0; - - if (ACE_OS::write (this->poll_fd_, pfd, sizeof (pfd)) != sizeof (pfd)) - return -1; - -#endif /* ACE_HAS_EVENT_POLL */ - - this->handler_rep_.resume (handle); - - return 0; -} - -int -ACE_Dev_Poll_Reactor::resumable_handler (void) -{ - // @@ Is this correct? - - return 0; -} - -int -ACE_Dev_Poll_Reactor::uses_event_associations (void) -{ - // Since the Dev_Poll_Reactor does not do any event associations, - // this method always return zero. - return 0; -} - -long -ACE_Dev_Poll_Reactor::schedule_timer (ACE_Event_Handler *event_handler, - const void *arg, - const ACE_Time_Value &delay, - const ACE_Time_Value &interval) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::schedule_timer"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - if (0 != this->timer_queue_) - return this->timer_queue_->schedule - (event_handler, - arg, - this->timer_queue_->gettimeofday () + delay, - interval); - - errno = ESHUTDOWN; - return -1; -} - -int -ACE_Dev_Poll_Reactor::reset_timer_interval (long timer_id, - const ACE_Time_Value &interval) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::reset_timer_interval"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - if (0 != this->timer_queue_) - return this->timer_queue_->reset_interval (timer_id, interval); - - errno = ESHUTDOWN; - return -1; -} - -int -ACE_Dev_Poll_Reactor::cancel_timer (ACE_Event_Handler *event_handler, - int dont_call_handle_close) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::cancel_timer"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return (this->timer_queue_ == 0 - ? 0 - : this->timer_queue_->cancel (event_handler, - dont_call_handle_close)); -} - -int -ACE_Dev_Poll_Reactor::cancel_timer (long timer_id, - const void **arg, - int dont_call_handle_close) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::cancel_timer"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return (this->timer_queue_ == 0 - ? 0 - : this->timer_queue_->cancel (timer_id, - arg, - dont_call_handle_close)); -} - -int -ACE_Dev_Poll_Reactor::schedule_wakeup (ACE_Event_Handler *eh, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::schedule_wakeup"); - - return this->mask_ops (eh->get_handle (), mask, ACE_Reactor::ADD_MASK); -} - -int -ACE_Dev_Poll_Reactor::schedule_wakeup (ACE_HANDLE handle, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::schedule_wakeup"); - - return this->mask_ops (handle, mask, ACE_Reactor::ADD_MASK); -} - -int -ACE_Dev_Poll_Reactor::cancel_wakeup (ACE_Event_Handler *eh, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::cancel_wakeup"); - - return this->mask_ops (eh->get_handle (), mask, ACE_Reactor::CLR_MASK); -} - -int -ACE_Dev_Poll_Reactor::cancel_wakeup (ACE_HANDLE handle, - ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::cancel_wakeup"); - - return this->mask_ops (handle, mask, ACE_Reactor::CLR_MASK); -} - -int -ACE_Dev_Poll_Reactor::notify (ACE_Event_Handler *eh, - ACE_Reactor_Mask mask, - ACE_Time_Value *timeout) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::notify"); - - ssize_t n = 0; - - // 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. - - n = this->notify_handler_->notify (eh, mask, timeout); - - return n == -1 ? -1 : 0; -} - -void -ACE_Dev_Poll_Reactor::max_notify_iterations (int iterations) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::max_notify_iterations"); - - ACE_MT (ACE_GUARD (ACE_Dev_Poll_Reactor_Token, mon, this->token_)); - - this->notify_handler_->max_notify_iterations (iterations); -} - -int -ACE_Dev_Poll_Reactor::max_notify_iterations (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::max_notify_iterations"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->notify_handler_->max_notify_iterations (); -} - -int -ACE_Dev_Poll_Reactor::purge_pending_notifications (ACE_Event_Handler * eh, - ACE_Reactor_Mask mask) -{ - if (this->notify_handler_ == 0) - return 0; - - return this->notify_handler_->purge_pending_notifications (eh, mask); -} - -ACE_Event_Handler * -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; -} - -int -ACE_Dev_Poll_Reactor::handler (ACE_HANDLE handle, - ACE_Reactor_Mask mask, - ACE_Event_Handler **event_handler) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::handler"); - - ACE_MT (ACE_READ_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - ACE_Event_Handler *h = this->handler_rep_.find (handle); - - if (h != 0 - && ACE_BIT_CMP_MASK (this->handler_rep_.mask (handle), - mask, // Compare all bits in the mask - mask)) - { - if (event_handler != 0) - *event_handler = h; - - return 0; - } - - return -1; -} - -int -ACE_Dev_Poll_Reactor::handler (int signum, - ACE_Event_Handler **eh) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::handler"); - - ACE_Event_Handler *handler = this->signal_handler_->handler (signum); - - if (handler == 0) - return -1; - else if (eh != 0) - *eh = handler; - - return 0; -} - -bool -ACE_Dev_Poll_Reactor::initialized (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::initialized"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, false)); - - return this->initialized_; -} - -size_t -ACE_Dev_Poll_Reactor::size (void) const -{ - return this->size_; -} - -ACE_Lock & -ACE_Dev_Poll_Reactor::lock (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::lock"); - - return this->lock_adapter_; -} - -void -ACE_Dev_Poll_Reactor::wakeup_all_threads (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::wakeup_all_threads"); - - // Send a notification, but don't block if there's no one to receive - // it. - this->notify (0, - ACE_Event_Handler::NULL_MASK, - (ACE_Time_Value *) &ACE_Time_Value::zero); -} - -int -ACE_Dev_Poll_Reactor::owner (ACE_thread_t /* new_owner */, - ACE_thread_t * /* old_owner */) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::owner"); - - // There is no need to set the owner of the event loop. Multiple - // threads may invoke the event loop simulataneously. - - return 0; -} - -int -ACE_Dev_Poll_Reactor::owner (ACE_thread_t * /* owner */) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::owner"); - - // There is no need to set the owner of the event loop. Multiple - // threads may invoke the event loop simulataneously. - - return 0; -} - -int -ACE_Dev_Poll_Reactor::restart (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::restart"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->restart_; -} - -int -ACE_Dev_Poll_Reactor::restart (int r) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::restart"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - int current_value = this->restart_; - this->restart_ = r; - return current_value; -} - -void -ACE_Dev_Poll_Reactor::requeue_position (int) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::requeue_position"); -} - -int -ACE_Dev_Poll_Reactor::requeue_position (void) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::requeue_position"); - - ACE_NOTSUP_RETURN (-1); -} - -int -ACE_Dev_Poll_Reactor::mask_ops (ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask, - int ops) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::mask_ops"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->mask_ops_i (event_handler->get_handle (), mask, ops); -} - -int -ACE_Dev_Poll_Reactor::mask_ops (ACE_HANDLE handle, - ACE_Reactor_Mask mask, - int ops) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::mask_ops"); - - ACE_MT (ACE_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1)); - - return this->mask_ops_i (handle, mask, ops); -} - -int -ACE_Dev_Poll_Reactor::mask_ops_i (ACE_HANDLE handle, - ACE_Reactor_Mask mask, - int ops) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::mask_ops_i"); - - if (this->handler_rep_.handle_in_range (handle) == 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 new_mask = old_mask; - - // Perform GET, CLR, SET, and ADD operations on the interest/wait - // set and the suspend set (if necessary). - // - // GET = 1, Retrieve current value - // SET = 2, Set value of bits to new mask (changes the entire mask) - // ADD = 3, Bitwise "or" the value into the mask (only changes - // enabled bits) - // CLR = 4 Bitwise "and" the negation of the value out of the mask - // (only changes enabled bits) - // - // Returns the original mask. - - switch (ops) - { - case ACE_Reactor::GET_MASK: - // The work for this operation is done in all cases at the - // begining of the function. - return old_mask; - - case ACE_Reactor::CLR_MASK: - ACE_CLR_BITS (new_mask, mask); - break; - - case ACE_Reactor::SET_MASK: - new_mask = mask; - break; - - case ACE_Reactor::ADD_MASK: - ACE_SET_BITS (new_mask, mask); - break; - - default: - return -1; - } - - /// Reset the mask for the given handle. - this->handler_rep_.mask (handle, new_mask); - - if (this->handler_rep_.suspended (handle) == 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); - -#if defined (sun) - // Apparently events cannot be updated on-the-fly on Solaris so - // remove the existing events, and then add the new ones. - struct pollfd pfd[2]; - - pfd[0].fd = handle; - pfd[0].events = POLLREMOVE; - pfd[0].revents = 0; - pfd[1].fd = (events == POLLREMOVE ? ACE_INVALID_HANDLE : handle); - pfd[1].events = events; - pfd[1].revents = 0; - - // Change the events associated with the given file descriptor. - if (ACE_OS::write (this->poll_fd_, - pfd, - sizeof (pfd)) != sizeof (pfd)) - return -1; -#elif defined (ACE_HAS_EVENT_POLL) - - struct epoll_event epev; - ACE_OS::memset (&epev, 0, sizeof (epev)); - int op; - - // ACE_Event_Handler::NULL_MASK ??? - if (new_mask == 0) - { - op = EPOLL_CTL_DEL; - epev.events = 0; - } - else - { - op = EPOLL_CTL_MOD; - epev.events = events; - } - - epev.data.fd = handle; - - if (::epoll_ctl (this->poll_fd_, op, handle, &epev) == -1) - { - // If a handle is closed, epoll removes it from the poll set - // automatically - we may not know about it yet. If that's the - // case, a mod operation will fail with ENOENT. Retry it as - // an add. - if (op == EPOLL_CTL_MOD && errno == ENOENT && - ::epoll_ctl (this->poll_fd_, EPOLL_CTL_ADD, handle, &epev) == -1) - return -1; - } - -#else - pollfd pfd[1]; - - pfd[0].fd = handle; - pfd[0].events = events; - pfd[0].revents = 0; - - // Change the events associated with the given file descriptor. - if (ACE_OS::write (this->poll_fd_, - pfd, - sizeof (pfd)) != sizeof (pfd)) - return -1; -#endif /*ACE_HAS_EVENT_POLL */ - } - - return old_mask; -} - -int -ACE_Dev_Poll_Reactor::ready_ops (ACE_Event_Handler * /* event_handler */, - ACE_Reactor_Mask /* mask */, - int /* ops */) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::ready_ops"); - - // Since the Dev_Poll_Reactor uses the poll result buffer, the - // ready_set cannot be directly manipulated outside of the event - // loop. - ACE_NOTSUP_RETURN (-1); -} - -int -ACE_Dev_Poll_Reactor::ready_ops (ACE_HANDLE /* handle */, - ACE_Reactor_Mask /* mask */, - int /* ops */) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::ready_ops"); - - // Since the Dev_Poll_Reactor uses the poll result buffer, the - // ready_set cannot be directly manipulated outside of the event - // loop. - ACE_NOTSUP_RETURN (-1); -} - -void -ACE_Dev_Poll_Reactor::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Dev_Poll_Reactor::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("restart_ = %d\n"), this->restart_)); - ACE_DEBUG ((LM_DEBUG, - 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 ("deactivated_ = %d"), - this->deactivated_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -short -ACE_Dev_Poll_Reactor::reactor_mask_to_poll_event (ACE_Reactor_Mask mask) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::reactor_mask_to_poll_event"); - - if (mask == ACE_Event_Handler::NULL_MASK) - // No event. Remove from interest set. -#if defined (ACE_HAS_EVENT_POLL) - return EPOLL_CTL_DEL; -#else - return POLLREMOVE; -#endif /* ACE_HAS_EVENT_POLL */ - - short events = 0; - - // READ, ACCEPT, and CONNECT flag will place the handle in the - // read set. - if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK) - || ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK) - || ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK)) - { -#if defined (ACE_HAS_EVENT_POLL) - ACE_SET_BITS (events, EPOLLIN); -#else - ACE_SET_BITS (events, POLLIN); -#endif /*ACE_HAS_EVENT_POLL*/ - } - - // WRITE and CONNECT flag will place the handle in the write set. - if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK) - || ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK)) - { -#if defined (ACE_HAS_EVENT_POLL) - ACE_SET_BITS (events, EPOLLOUT); -#else - ACE_SET_BITS (events, POLLOUT); -#endif /*ACE_HAS_EVENT_POLL*/ - } - - // EXCEPT flag will place the handle in the except set. - if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK)) - { -#if defined (ACE_HAS_EVENT_POLL) - ACE_SET_BITS (events, EPOLLPRI); -#else - ACE_SET_BITS (events, POLLPRI); -#endif /*ACE_HAS_EVENT_POLL*/ - } - - return events; -} - -namespace { - void polite_sleep_hook (void *) { } -} - -int -ACE_Dev_Poll_Reactor::Token_Guard::acquire_quietly (ACE_Time_Value *max_wait) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::Token_Guard::acquire_quietly"); - - // Acquire the token but don't ping any waiters; just queue up politely. - int result = 0; - if (max_wait) - { - ACE_Time_Value tv = ACE_OS::gettimeofday (); - tv += *max_wait; - - ACE_MT (result = this->token_.acquire_read (&polite_sleep_hook, - 0, - &tv)); - } - else - { - ACE_MT (result = this->token_.acquire_read (&polite_sleep_hook)); - } - - // Check for timeouts and errors. - if (result == -1) - { - if (errno == ETIME) - return 0; - else - { - ACE_ERROR ((LM_ERROR, "%t: %p\n", "token acquire_read")); - return -1; - } - } - - // We got the token and so let us mark ourselves as owner - this->owner_ = 1; - - return result; -} - -int -ACE_Dev_Poll_Reactor::Token_Guard::acquire (ACE_Time_Value *max_wait) -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor::Token_Guard::acquire"); - - // Try to grab the token. If someone if already there, don't wake - // them up, just queue up in the thread pool. - int result = 0; - if (max_wait) - { - ACE_Time_Value tv = ACE_OS::gettimeofday (); - tv += *max_wait; - - ACE_MT (result = this->token_.acquire (0, 0, &tv)); - } - else - { - ACE_MT (result = this->token_.acquire ()); - } - - // Check for timeouts and errors. - if (result == -1) - { - if (errno == ETIME) - return 0; - else - return -1; - } - - // We got the token and so let us mark ourseleves as owner - this->owner_ = 1; - - return result; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_EVENT_POLL || ACE_HAS_DEV_POLL */ diff --git a/ACE/ace/Dev_Poll_Reactor.h b/ACE/ace/Dev_Poll_Reactor.h deleted file mode 100644 index b6af574ae3e..00000000000 --- a/ACE/ace/Dev_Poll_Reactor.h +++ /dev/null @@ -1,1252 +0,0 @@ -// -*- C++ -*- - -// ========================================================================= -/** - * @file Dev_Poll_Reactor.h - * - * $Id$ - * - * @c /dev/poll (or Linux @c sys_epoll) based Reactor implementation. - * - * @author Ossama Othman - */ -// ========================================================================= - - -#ifndef ACE_DEV_POLL_REACTOR_H -#define ACE_DEV_POLL_REACTOR_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_EVENT_POLL) && defined (ACE_HAS_DEV_POLL) -# error ACE_HAS_EVENT_POLL and ACE_HAS_DEV_POLL are mutually exclusive. -#endif /* ACE_HAS_EVENT_POLL && defined ACE_HAS_DEV_POLL */ - -#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL) - -#include "ace/Pipe.h" -#include "ace/Lock_Adapter_T.h" -#include "ace/Reactor_Impl.h" -#include "ace/Reactor_Token_T.h" -#include "ace/Token.h" - -#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) -# include "ace/Notification_Queue.h" -#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */ - -#if defined (ACE_HAS_DEV_POLL) -struct pollfd; -#elif defined (ACE_HAS_EVENT_POLL) -struct epoll_event; -#endif - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declarations -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 */ - -// --------------------------------------------------------------------- - -/** - * @class ACE_Dev_Poll_Reactor_Notify - * - * @brief Event handler used for unblocking the ACE_Dev_Poll_Reactor - * from its event loop. - * - * This event handler is used internally by the ACE_Dev_Poll_Reactor - * as a means to allow a thread other then the one running the event - * loop to unblock the event loop. - */ -class ACE_Dev_Poll_Reactor_Notify : public ACE_Reactor_Notify -{ -public: - - /// Constructor - ACE_Dev_Poll_Reactor_Notify (void); - - /** - * @name Initialization and Termination Methods - * - * Methods called when initializing and terminating this event - * handler. - */ - virtual int open (ACE_Reactor_Impl *, - ACE_Timer_Queue *timer_queue = 0, - int disable_notify = 0); - virtual int close (void); - - /** - * Called by a thread when it wants to unblock the Reactor_Impl. - * This wakes up the Reactor_Impl if currently blocked. Pass over - * both the Event_Handler and the mask to allow the caller to - * dictate which Event_Handler method the Reactor_Impl will - * invoke. The ACE_Time_Value indicates how long to block - * trying to notify the Reactor_Impl. If timeout == 0, the - * caller will block until action is possible, else will wait until - * the relative time specified in *timeout elapses). - */ - virtual int notify (ACE_Event_Handler *eh = 0, - ACE_Reactor_Mask mask = ACE_Event_Handler::EXCEPT_MASK, - ACE_Time_Value *timeout = 0); - - /// Unimplemented method required by pure virtual method in abstract - /// base class. - /** - * This method's interface is not very compatibile with this - * Reactor's design. It's not clear why this method is pure virtual - * either. - */ - virtual int dispatch_notifications (int &number_of_active_handles, - ACE_Handle_Set &rd_mask); - - /// Returns the ACE_HANDLE of the notify pipe on which the reactor - /// is listening for notifications so that other threads can unblock - /// the Reactor_Impl. - virtual ACE_HANDLE notify_handle (void); - - /// Verify whether the buffer has dispatchable info or not. - virtual int is_dispatchable (ACE_Notification_Buffer &buffer); - - /// Handle one notify call represented in @a buffer. This could be - /// because of a thread trying to unblock the Reactor_Impl. - virtual int dispatch_notify (ACE_Notification_Buffer &buffer); - - /// Read one notify call on the handle into @a buffer. - /// This could be because of a thread trying to unblock the Reactor_Impl. - virtual int read_notify_pipe (ACE_HANDLE handle, - ACE_Notification_Buffer &buffer); - - /// Called back by the ACE_Dev_Poll_Reactor when a thread wants to - /// unblock us. - virtual int handle_input (ACE_HANDLE handle); - - /** - * Set the maximum number of times that the handle_input method - * will iterate and dispatch the ACE_Event_Handlers that are - * passed in via the notify queue before breaking out of the event - * 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 overhead. - */ - virtual void max_notify_iterations (int); - - /** - * Get the maximum number of times that the handle_input method - * will iterate and dispatch the ACE_Event_Handlers that are - * passed in via the notify queue before breaking out of its event - * loop. - */ - virtual int max_notify_iterations (void); - - /** - * Purge any notifications pending in this reactor for the specified - * ACE_Event_Handler object. Returns the number of notifications - * purged. Returns -1 on error. - */ - virtual int purge_pending_notifications ( - ACE_Event_Handler * = 0, - ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); - - /// Dump the state of an object. - virtual void dump (void) const; - -protected: - - /** - * Keep a back pointer to the ACE_Dev_Poll_Reactor. If this value - * if NULL then the ACE_Dev_Poll_Reactor has been initialized with - * disable_notify_pipe. - */ - ACE_Dev_Poll_Reactor *dp_reactor_; - - /** - * Contains the ACE_HANDLE the ACE_Dev_Poll_Reactor is listening - * on, as well as the ACE_HANDLE that threads wanting the attention - * of the ACE_Dev_Poll_Reactor will write to. - */ - ACE_Pipe notification_pipe_; - - /** - * Keeps track of the maximum number of times that the - * ACE_Dev_Poll_Reactor_Notify::handle_input method will iterate and - * dispatch the ACE_Event_Handlers that are passed in via the - * notify pipe before breaking out of its recv loop. By default, - * this is set to -1, which means "iterate until the pipe is empty." - */ - int max_notify_iterations_; - -#if defined (ACE_HAS_REACTOR_NOTIFICATION_QUEUE) - /** - * @brief A user-space queue to store the notifications. - * - * The notification pipe has OS-specific size restrictions. That - * is, no more than a certain number of bytes may be stored in the - * pipe without blocking. This limit may be too small for certain - * applications. In this case, ACE can be configured to store all - * the events in user-space. The pipe is still needed to wake up - * the reactor thread, but only one event is sent through the pipe - * at a time. - */ - 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_; - -}; - -// --------------------------------------------------------------------- - -/** - * @class ACE_Dev_Poll_Reactor - * - * @brief A `/dev/poll' or `/dev/epoll' based Reactor implemenatation. - * - * @attention The Linux epoll implementation works quite well and is - * fully supported; however, the /dev/poll implementation is @em experimental. - * - * The ACE_Dev_Poll_Reactor uses the `/dev/poll' or '/dev/epoll' - * character devices to demultiplex events on a given set of file - * descriptors. Unlike @c select(), `/dev/poll' and `/dev/epoll' have - * no hard-coded limit on the number of file descriptors that may be - * handled at any given time. As such, the ACE_Dev_Poll_Reactor can - * generally handle a much larger number of file descriptors than - * @c select() -based reactors. Furthermore, since `/dev/poll' and - * `/dev/epoll' both return a set of file descriptors that are active, - * there is no need to "walk" the set of file descriptors to determine - * which ones are active, such as what is done with the @c select() and - * @c poll() system calls. All returned file descriptors are active. - * This makes event dispatching very efficient. - * - * @note In general, this reactor may only be used to demultiplex - * events on sockets. Demultiplexing events on pipes, for - * example may not work. This is due to a limitation in the - * underlying `/dev/poll' device driver. - * - * @note It is only possible to achieve millisecond timeout - * resolutions with the @c ACE_Dev_Poll_Reactor. However, the - * timeout resolution for timers is independent of the reactors - * timeout resolution. As such, it may be possible to achieve - * sub-millisecond timeout resolutions for timers but that is - * entirely platform dependent. - */ - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -typedef ACE_Token ACE_DEV_POLL_TOKEN; -#else -typedef ACE_Noop_Token ACE_DEV_POLL_TOKEN; -#endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */ -typedef ACE_Reactor_Token_T ACE_Dev_Poll_Reactor_Token; - -class ACE_Export ACE_Dev_Poll_Reactor : public ACE_Reactor_Impl -{ -public: - - /// Initialize @c ACE_Dev_Poll_Reactor with the default size. - /** - * The default size for the @c ACE_Dev_Poll_Reactor is the maximum - * number of open file descriptors for the process. - */ - ACE_Dev_Poll_Reactor (ACE_Sig_Handler * = 0, - ACE_Timer_Queue * = 0, - int disable_notify_pipe = 0, - ACE_Reactor_Notify *notify = 0, - int mask_signals = 1, - int s_queue = ACE_DEV_POLL_TOKEN::FIFO); - - /// Initialize ACE_Dev_Poll_Reactor with size @a size. - /** - * @note On Unix platforms, the @a size 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 of event handlers - * maintained by the Reactor's handler repository. Direct - * indexing is used for efficiency reasons. If the size - * parameter is less than the process maximum, the process - * maximum will be decreased in order to prevent potential - * access violations. - */ - ACE_Dev_Poll_Reactor (size_t size, - int restart = 0, - ACE_Sig_Handler * = 0, - ACE_Timer_Queue * = 0, - int disable_notify_pipe = 0, - ACE_Reactor_Notify *notify = 0, - int mask_signals = 1, - int s_queue = ACE_DEV_POLL_TOKEN::FIFO); - - /// Close down and release all resources. - virtual ~ACE_Dev_Poll_Reactor (void); - - /// Initialization. - virtual int open (size_t size, - int restart = 0, - ACE_Sig_Handler * = 0, - ACE_Timer_Queue * = 0, - int disable_notify_pipe = 0, - ACE_Reactor_Notify * = 0); - - /** - * @param handle allows the reactor to check if the caller is - * valid. - * - * @return 0 if the size of the current message has been put in - * size. -1 if not. - */ - virtual int current_info (ACE_HANDLE handle, size_t & /* size */); - - /// Use a user specified signal handler instead. - virtual int set_sig_handler (ACE_Sig_Handler *signal_handler); - - /// Set a user-specified timer queue. - virtual int timer_queue (ACE_Timer_Queue *tq); - - /// Get the timer queue - /// @return The current @c ACE_Timer_Queue. - virtual ACE_Timer_Queue *timer_queue (void) const; - - /// Close down and release all resources. - virtual int close (void); - - // = Event loop drivers. - /** - * Returns non-zero if there are I/O events "ready" for dispatching, - * but does not actually dispatch the event handlers. By default, - * don't block while checking this, i.e., "poll". - * - * @note It is only possible to achieve millisecond timeout - * resolutions with the @c ACE_Dev_Poll_Reactor. - */ - virtual int work_pending ( - const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero); - - /** - * This event loop driver blocks for up to @a max_wait_time before - * returning. It will return earlier if events occur. Note that - * @a max_wait_time can be 0, in which case this method blocks - * indefinitely until events occur. - * @par - * @a max_wait_time is decremented to reflect how much time this - * call took. For instance, if a time value of 3 seconds is passed - * to @c handle_events() and an event occurs after 2 seconds, - * @a max_wait_time will equal 1 second. This can be used if an - * application wishes to handle events for some fixed amount of - * time. - * @par - * The only difference between @c alertable_handle_events() and - * handle_events() is that in the alertable case, the event loop - * will return when the system queues an I/O completion routine or - * an Asynchronous Procedure Call. - * - * @return The total number of @c ACE_Event_Handlers that were - * dispatched, 0 if the @a max_wait_time elapsed without - * dispatching any handlers, or -1 if an error occurs. - - * @note It is only possible to achieve millisecond timeout - * resolutions with the @c ACE_Dev_Poll_Reactor. - */ - 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 - * @c NULL. - * - * @note It is only possible to achieve millisecond timeout - * resolutions with the @c ACE_Dev_Poll_Reactor. - */ - virtual int handle_events (ACE_Time_Value &max_wait_time); - virtual int alertable_handle_events (ACE_Time_Value &max_wait_time); - - // = Event handling control. - - /** - * @return The status of Reactor. If this function returns 0, the - * reactor is actively handling events. If it returns - * non-zero, @c handle_events() and - * @c handle_alertable_events() return -1 immediately. - */ - virtual int deactivated (void); - - /** - * Control whether the Reactor will handle any more incoming events - * or not. If @a do_stop == 1, the Reactor will be disabled. By - * default, a reactor is in active state and can be - * deactivated/reactived as desired. - */ - virtual void deactivate (int do_stop); - - // = Register and remove Handlers. - - /// Register @a event_handler with @a mask. The I/O handle will - /// always come from get_handle on the event_handler. - virtual int register_handler (ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask); - - /// Register @a event_handler with @a mask. The I/O handle is - /// provided through the @a io_handle parameter. - virtual int register_handler (ACE_HANDLE io_handle, - ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask); - - /** - * Register an @a event_handler that will be notified when - * @a event_handle is signaled. @a mask specifies the network - * events that the @a event_handler is interested in. - */ - virtual int register_handler (ACE_HANDLE event_handle, - ACE_HANDLE io_handle, - ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask); - - /// Register @a event_handler> with all the @a handles> in the @c - /// Handle_Set. - virtual int register_handler (const ACE_Handle_Set &handles, - ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask); - - /** - * Register @a new_sh to handle the signal @a signum using the - * @a new_disp. Returns the @a old_sh that was previously - * registered (if any), along with the @a old_disp of the signal - * handler. - */ - virtual int register_handler (int signum, - ACE_Event_Handler *new_sh, - ACE_Sig_Action *new_disp = 0, - ACE_Event_Handler **old_sh = 0, - ACE_Sig_Action *old_disp = 0); - - /// Registers to handle a set of signals using the - /// . - virtual int register_handler (const ACE_Sig_Set &sigset, - ACE_Event_Handler *new_sh, - ACE_Sig_Action *new_disp = 0); - - /// Removes @a event_handler. - /** - * @note The I/O handle will be obtained using @c get_handle() - * method of @a event_handler . If @a mask == - * @c ACE_Event_Handler::DONT_CALL then the @c handle_close() - * method of the @a event_handler is not invoked. - */ - virtual int remove_handler (ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask); - - /** - * Removes @a handle. If @a mask == ACE_Event_Handler::DONT_CALL - * then the method of the associated - * is not invoked. - */ - virtual int remove_handler (ACE_HANDLE handle, - ACE_Reactor_Mask mask); - - /** - * Removes all handles in . If @a mask == - * ACE_Event_Handler::DONT_CALL then the method of - * the associated s is not invoked. - */ - virtual int remove_handler (const ACE_Handle_Set &handle_set, - ACE_Reactor_Mask mask); - - /** - * Remove the ACE_Event_Handler currently associated with @a signum. - * Install the new disposition (if given) and return the previous - * disposition (if desired by the caller). Returns 0 on success and - * -1 if @a signum is invalid. - */ - virtual int remove_handler (int signum, - ACE_Sig_Action *new_disp, - ACE_Sig_Action *old_disp = 0, - int sigkey = -1); - - /// Calls for every signal in . - virtual int remove_handler (const ACE_Sig_Set &sigset); - - // = Suspend and resume Handlers. - - /// Suspend event_handler temporarily. Use - /// ACE_Event_Handler::get_handle() to get the handle. - virtual int suspend_handler (ACE_Event_Handler *event_handler); - - /// Suspend handle temporarily. - virtual int suspend_handler (ACE_HANDLE handle); - - /// Suspend all handles in handle set temporarily. - virtual int suspend_handler (const ACE_Handle_Set &handles); - - /// Suspend all handles temporarily. - virtual int suspend_handlers (void); - - /// Resume event_handler. Use ACE_Event_Handler::get_handle() to - /// get the handle. - virtual int resume_handler (ACE_Event_Handler *event_handler); - - /// Resume handle. - virtual int resume_handler (ACE_HANDLE handle); - - /// Resume all handles in handle set. - virtual int resume_handler (const ACE_Handle_Set &handles); - - /// Resume all handles. - virtual int resume_handlers (void); - - /// Does the reactor allow the application to resume the handle on - /// its own, i.e., can it pass on the control of handle resumption to - /// the application. - virtual int resumable_handler (void); - - /// Return 1 if we any event associations were made by the reactor - /// for the handles that it waits on, 0 otherwise. - virtual int uses_event_associations (void); - - // = Timer management. - - /** - * Schedule an ACE_Event_Handler that will expire after an amount - * of time. The return value of this method, a timer_id value, - * uniquely identifies the event_handler in the ACE_Reactor's - * internal list of timers. - * This timer_id value can be used to cancel the timer - * with the cancel_timer() call. - * - * @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 for which the timer will be - * automatically rescheduled. - * @return -1 on failure, a timer_id value on success - */ - virtual long schedule_timer (ACE_Event_Handler *event_handler, - const void *arg, - const ACE_Time_Value &delay, - const ACE_Time_Value &interval = ACE_Time_Value::zero); - - /** - * Resets the interval of the timer represented by @a timer_id to - * @a interval, which is specified in relative time to the current - * . 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. - */ - virtual int reset_timer_interval (long timer_id, - const ACE_Time_Value &interval); - - /// Cancel all Event_Handlers that match the address of - /// @a event_handler. Returns number of handlers cancelled. - virtual int cancel_timer (ACE_Event_Handler *event_handler, - int dont_call_handle_close = 1); - - /** - * Cancel the single event handler that matches the @a timer_id value - * (which was returned from the schedule method). If @a arg is - * non-NULL then it will be set to point to the ``magic cookie'' - * argument passed in when the event handler was registered. This - * makes it possible to free up the memory and avoid memory leaks. - * Returns 1 if cancellation succeeded and 0 if the @a timer_id - * wasn't found. - */ - virtual int cancel_timer (long timer_id, - const void **arg = 0, - int dont_call_handle_close = 1); - - // = High-level event handler scheduling operations - - /// Add @a masks_to_be_added to the @a event_handler's entry. - /// @a event_handler must already have been registered. - virtual int schedule_wakeup (ACE_Event_Handler *event_handler, - ACE_Reactor_Mask masks_to_be_added); - - /// Add @a masks_to_be_added to the @a handle's entry. - /// associated with @a handle must already have been registered. - virtual int schedule_wakeup (ACE_HANDLE handle, - ACE_Reactor_Mask masks_to_be_added); - - /// Clear @a masks_to_be_cleared from the @a event_handler's entry. - virtual int cancel_wakeup (ACE_Event_Handler *event_handler, - ACE_Reactor_Mask masks_to_be_cleared); - - /// Clear @a masks_to_be_cleared from the @a handle's entry. - virtual int cancel_wakeup (ACE_HANDLE handle, - ACE_Reactor_Mask masks_to_be_cleared); - - // = Notification methods. - - /** - * Notify @a event_handler of @a mask event. The ACE_Time_Value - * indicates how long to blocking trying to notify. If @a timeout == - * 0, the caller will block until action is possible, else will wait - * until the relative time specified in @a timeout elapses). - */ - virtual int notify (ACE_Event_Handler *event_handler = 0, - ACE_Reactor_Mask mask = ACE_Event_Handler::EXCEPT_MASK, - ACE_Time_Value * = 0); - - /** - * Set the maximum number of times that ACE_Reactor_Impl will - * iterate and dispatch the that are passed in - * via the notify queue before breaking out of its - * 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 - * overhead. - */ - virtual void max_notify_iterations (int); - - /** - * Get the maximum number of times that the ACE_Reactor_Impl will - * iterate and dispatch the that are passed in - * via the notify queue before breaking out of its - * loop. - */ - virtual int max_notify_iterations (void); - - /** - * Purge any notifications pending in this reactor for the specified - * ACE_Event_Handler object. Returns the number of notifications - * purged. Returns -1 on error. - */ - virtual int purge_pending_notifications (ACE_Event_Handler * = 0, - ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); - - /** - * Return the Event_Handler associated with @a handle. Return 0 if - * @a handle is not registered. - */ - virtual ACE_Event_Handler *find_handler (ACE_HANDLE handle); - - /** - * Check to see if @a handle is associated with a valid Event_Handler - * bound to @a mask. Return the @a event_handler associated with this - * @c handler if @a event_handler != 0. - */ - virtual int handler (ACE_HANDLE handle, - ACE_Reactor_Mask mask, - ACE_Event_Handler **event_handler = 0); - - /** - * Check to see if @a signum is associated with a valid Event_Handler - * bound to a signal. Return the @a event_handler associated with - * this @c handler if @a event_handler != 0. - */ - virtual int handler (int signum, - ACE_Event_Handler ** = 0); - - /// Returns true if Reactor has been successfully initialized, else - /// false. - virtual bool initialized (void); - - /// Returns the current size of the Reactor's internal descriptor - /// table. - virtual size_t size (void) const; - - /// Returns a reference to the Reactor's internal lock. - virtual ACE_Lock &lock (void); - - /// Wake up all threads waiting in the event loop. - virtual void wakeup_all_threads (void); - - /// Transfers ownership of Reactor_Impl to the new_owner. - /** - * @note There is no need to set the owner of the event loop for the - * ACE_Dev_Poll_Reactor. Multiple threads may invoke the - * event loop simulataneously. As such, this method is a - * no-op. - */ - virtual int owner (ACE_thread_t new_owner, ACE_thread_t *old_owner = 0); - - /// Return the ID of the "owner" thread. - /** - * @note There is no need to set the owner of the event loop for the - * ACE_Dev_Poll_Reactor. Multiple threads may invoke the - * event loop simulataneously. As such, this method is a - * no-op. - */ - virtual int owner (ACE_thread_t *owner); - - /// Get the existing restart value. - virtual int restart (void); - - /// Set a new value for restart and return the original value. - /** - * @param r If zero, then the event loop will not be automatically - * restarted if the underlying poll is interrupted via the - * INTR (interrupt) signal. - * - * @return Returns the previous "restart" value. - */ - virtual int restart (int r); - - /// Set position of the owner thread. - /** - * @note This is currently a no-op. - */ - virtual void requeue_position (int); - - /// Get position of the owner thread. - /** - * @note This is currently a no-op. - */ - virtual int requeue_position (void); - - /** - * @name Low-level wait_set mask manipulation methods - * - * Low-level methods to manipulate the event/reactor mask associated - * with a handle and event handler when polling for events. - * @par - * The "interest set," i.e. the wait set, can be directly - * manipulated with these methods. - */ - //@{ - - /// GET/SET/ADD/CLR the dispatch mask "bit" bound with the - /// event_handler and mask. - /** - * @return Old mask on success, -1 on error. - */ - virtual int mask_ops (ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask, - int ops); - - /// GET/SET/ADD/CLR the dispatch MASK "bit" bound with the handle - /// and mask. - /** - * @return Old mask on success, -1 on error. - */ - virtual int mask_ops (ACE_HANDLE handle, - ACE_Reactor_Mask mask, - int ops); - - //@} - - /** - * @name Low-level ready_set mask manipulation methods - * - * These methods are unimplemented. - */ - //@{ - - /// GET/SET/ADD/CLR the ready "bit" bound with the event_handler - /// and mask. - virtual int ready_ops (ACE_Event_Handler *event_handler, - ACE_Reactor_Mask mask, - int ops); - - /// GET/SET/ADD/CLR the ready "bit" bound with the handle and mask. - virtual int ready_ops (ACE_HANDLE handle, - ACE_Reactor_Mask, - int ops); - - //@} - - /// Dump the state of an object. - virtual void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - - class Token_Guard; - - /// Non-locking version of wait_pending(). - /** - * Returns non-zero if there are I/O events "ready" for dispatching, - * but does not actually dispatch the event handlers. By default, - * don't block while checking this, i.e., "poll". - * - * @note It is only possible to achieve millisecond timeout - * resolutions with the ACE_Dev_Poll_Reactor. - */ - int work_pending_i (ACE_Time_Value *max_wait_time); - - /// Poll for events and return the number of event handlers that - /// were dispatched. - /** - * This is a helper method called by all handle_events() methods. - */ - int handle_events_i (ACE_Time_Value *max_wait_time, Token_Guard &guard); - - /// Perform the upcall with the given event handler method. - int upcall (ACE_Event_Handler *event_handler, - int (ACE_Event_Handler::*callback)(ACE_HANDLE), - ACE_HANDLE handle); - - /** - * Dispatch ACE_Event_Handlers for time events, I/O events, and - * signal events. Returns the total number of ACE_Event_Handlers - * that were dispatched or -1 if something goes wrong. - */ - int dispatch (Token_Guard &guard); - - /// Dispatch a single timer, if ready. - /// Returns: 0 if no timers ready (token still held), - /// 1 if a timer was expired (token released), - /// -1 on error (token still held). - int dispatch_timer_handler (Token_Guard &guard); - - /// Dispatch an IO event to the corresponding event handler. Returns - /// Returns: 0 if no events ready (token still held), - /// 1 if an event was expired (token released), - /// -1 on error (token still held). - int dispatch_io_event (Token_Guard &guard); - - /// Register the given event handler with the reactor. - int register_handler_i (ACE_HANDLE handle, - ACE_Event_Handler *eh, - 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); - - /// Temporarily remove the given handle from the "interest set." - int suspend_handler_i (ACE_HANDLE handle); - - /// Place the given handle that was temporarily removed from the - /// "interest set," i.e that was suspended, back in to the interest - /// set. The given handle will once again be polled for events. - int resume_handler_i (ACE_HANDLE handle); - - /// GET/SET/ADD/CLR the dispatch MASK "bit" bound with the handle - /// and mask. This internal helper method acquires no lock. - /** - * @return Old mask on success, -1 on error. - */ - int mask_ops_i (ACE_HANDLE handle, - ACE_Reactor_Mask mask, - int ops); - - /// Convert a reactor mask to its corresponding poll() event mask. - short reactor_mask_to_poll_event (ACE_Reactor_Mask mask); - -protected: - - /// Has the reactor been initialized. - bool initialized_; - - /// The file descriptor associated with the open `/dev/poll' or - /// `/dev/epoll' device. - /** - * All interactions with the `/dev/poll' or `/dev/epoll' device are - * done through this file descriptor. - */ - 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_; - -#else - /// The pollfd array that `/dev/poll' will feed its results to. - struct pollfd *dp_fds_; - - - /// Pointer to the next pollfd array element that contains the next - /// event to be dispatched. - struct pollfd *start_pfds_; - - /// The last element in the pollfd array plus one. - /** - * The loop that dispatches IO events stops when this->start_pfds == - * this->end_pfds_. - */ - struct pollfd *end_pfds_; -#endif /* ACE_HAS_EVENT_POLL */ - - /// This flag is used to keep track of whether we are actively handling - /// events or not. - sig_atomic_t deactivated_; - - /// Lock used for synchronization of reactor state. - ACE_Dev_Poll_Reactor_Token token_; - - /// Adapter used to return internal lock to outside world. - ACE_Lock_Adapter lock_adapter_; - - /// The repository that contains all registered event handlers. - ACE_Dev_Poll_Reactor_Handler_Repository handler_rep_; - - /// Defined as a pointer to allow overriding by derived classes... - ACE_Timer_Queue *timer_queue_; - - /// Keeps track of whether we should delete the timer queue (if we - /// didn't create it, then we don't delete it). - bool delete_timer_queue_; - - /// Handle signals without requiring global/static variables. - ACE_Sig_Handler *signal_handler_; - - /// Keeps track of whether we should delete the signal handler (if we - /// didn't create it, then we don't delete it). - bool delete_signal_handler_; - - /// Callback object that unblocks the if it's - /// sleeping. - ACE_Reactor_Notify *notify_handler_; - - /// Keeps track of whether we need to delete the notify handler (if - /// we didn't create it, then we don't delete it). - bool delete_notify_handler_; - - /// Flag that determines if signals are masked during event - /// dispatching. - /** - * If 0 then the Reactor will not mask the signals during the event - * dispatching. This is useful for applications that do not - * register any signal handlers and want to reduce the overhead - * introduce by the kernel level locks required to change the mask. - */ - int mask_signals_; - - /// Restart the handle_events event loop method automatically when - /// polling function in use (ioctl() in this case) is interrupted - /// via an EINTR signal. - int restart_; - -protected: - - /** - * @class Token_Guard - * - * @brief A helper class that helps grabbing, releasing and waiting - * on tokens for a thread that needs access to the reactor's token. - */ - class ACE_Export Token_Guard - { - public: - - /// Constructor that will grab the token for us - Token_Guard (ACE_Dev_Poll_Reactor_Token &token); - - /// Destructor. This will release the token if it hasn't been - /// released till this point - ~Token_Guard (void); - - /// Release the token .. - void release_token (void); - - /// Returns whether the thread that created this object owns the - /// token or not. - int is_owner (void); - - /// A helper method that acquires the token 1) at a low priority, and - /// 2) wait quietly for the token, not waking another thread. This - /// is appropriate for cases where a thread wants to wait for and - /// dispatch an event, not causing an existing waiter to relinquish the - /// token, and also queueing up behind other threads waiting to modify - /// event records. - int acquire_quietly (ACE_Time_Value *max_wait = 0); - - /// A helper method that acquires the token at a high priority, and - /// does wake the current token holder. - int acquire (ACE_Time_Value *max_wait = 0); - - private: - - Token_Guard (void); - - private: - - /// The Reactor token. - ACE_Dev_Poll_Reactor_Token &token_; - - /// Flag that indicate whether the thread that created this object - /// owns the token or not. A value of 0 indicates that this class - /// hasn't got the token (and hence the thread) and a value of 1 - /// vice-versa. - int owner_; - - }; - -}; - - -/** - * @class ACE_Dev_Poll_Handler_Guard - * - * @brief Class used to make event handler reference count - * manipulation exception-safe. - * - * This class makes the reference count manipulation that occurs - * during an upcall exception-safe. Prior to dispatching the event - * handler, the reference count is increased. Once the upcall for the - * given event handler is complete, its reference count will be decreased. - */ -class ACE_Dev_Poll_Handler_Guard -{ -public: - - /// Constructor - /** - * The constructor checks to see if @a eh is a reference-counted handler and - * remember that for later. If @a eh is reference counted, its reference - * count is incremented unless @a do_incr is false. - * @a do_incr should be false if the reference count was incremented - * independently of this guard, for example, on a notify handler since - * the reference count is incremented when the notify is queued. - */ - ACE_Dev_Poll_Handler_Guard (ACE_Event_Handler *eh, bool do_incr = true); - - /// Destructor - /** - * The destructor decrements the reference count on the event - * handler corresponding to the given handle. - */ - ~ACE_Dev_Poll_Handler_Guard (void); - - /// Release the event handler from this guard; when the destructor is - /// called, the handler's reference count will not be decremented. - void release (void); - -private: - - /// The event handler being managed. - ACE_Event_Handler *eh_; - - /// true if eh_ is a reference-counted handler. - bool refcounted_; - -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -# include "ace/Dev_Poll_Reactor.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_HAS_EVENT_POLL || ACE_HAS_DEV_POLL */ - -#include /**/ "ace/post.h" - -#endif /* ACE_DEV_POLL_REACTOR_H */ diff --git a/ACE/ace/Dev_Poll_Reactor.inl b/ACE/ace/Dev_Poll_Reactor.inl deleted file mode 100644 index b7034e07333..00000000000 --- a/ACE/ace/Dev_Poll_Reactor.inl +++ /dev/null @@ -1,228 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Log_Msg.h" - -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) -{ -} - -// --------------------------------------------------------------------- - -#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_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::suspended"); - - if (this->handle_in_range (handle)) - return this->handlers_[handle].suspended; - - return -1; -} - -ACE_INLINE size_t -ACE_Dev_Poll_Reactor_Handler_Repository::size (void) const -{ - ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::size"); - - return this->max_size_; -} - -// ----------------------------------------------------------------- - -ACE_INLINE -ACE_Dev_Poll_Handler_Guard::ACE_Dev_Poll_Handler_Guard - (ACE_Event_Handler *eh, - bool do_incr) - : eh_ (eh), - refcounted_ (false) -{ - if (eh == 0) - return; - - this->refcounted_ = - eh->reference_counting_policy ().value () == - ACE_Event_Handler::Reference_Counting_Policy::ENABLED; - - 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 -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 -ACE_Dev_Poll_Handler_Guard::release (void) -{ - this->eh_ = 0; -} - -// --------------------------------------------------------------------- - -ACE_INLINE int -ACE_Dev_Poll_Reactor::upcall (ACE_Event_Handler *event_handler, - int (ACE_Event_Handler::*callback)(ACE_HANDLE), - ACE_HANDLE handle) -{ - // 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. - int status = 0; - - do - { - status = (event_handler->*callback) (handle); - } - while (status > 0); - - return status; -} - - -/************************************************************************/ -// Methods for ACE_Dev_Poll_Reactor::Token_Guard -/************************************************************************/ - -ACE_INLINE -ACE_Dev_Poll_Reactor::Token_Guard::Token_Guard (ACE_Dev_Poll_Reactor_Token &token) - - : token_ (token), - owner_ (0) -{ -} - -ACE_INLINE -ACE_Dev_Poll_Reactor::Token_Guard::~Token_Guard (void) -{ - if (this->owner_ == 1) - { - ACE_MT (this->token_.release ()); - this->owner_ = 0; - } -} - -ACE_INLINE void -ACE_Dev_Poll_Reactor::Token_Guard::release_token (void) -{ - if (this->owner_) - { - ACE_MT (this->token_.release ()); - - // We are not the owner anymore.. - this->owner_ = 0; - } -} - -ACE_INLINE int -ACE_Dev_Poll_Reactor::Token_Guard::is_owner (void) -{ - return this->owner_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dirent.cpp b/ACE/ace/Dirent.cpp deleted file mode 100644 index 50aab1ac5f3..00000000000 --- a/ACE/ace/Dirent.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - -#include "ace/Dirent.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Dirent.inl" -#endif /* __ACE_INLINE__ */ diff --git a/ACE/ace/Dirent.h b/ACE/ace/Dirent.h deleted file mode 100644 index 823b28d747c..00000000000 --- a/ACE/ace/Dirent.h +++ /dev/null @@ -1,122 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Dirent.h - * - * $Id$ - * - * Define a portable C++ interface to ACE_OS_Dirent directory-entry - * manipulation. - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_DIRENT_H -#define ACE_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_NS_dirent.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Dirent - * - * @brief Define a portable C++ directory-entry iterator based on the POSIX API. - */ -class ACE_Export ACE_Dirent -{ -public: - // = Initialization and termination methods. - /// Default constructor. - ACE_Dirent (void); - - /// Constructor calls - explicit ACE_Dirent (const ACE_TCHAR *dirname); - - /// Opens the directory named by filename and associates a directory - /// stream with it. - int open (const ACE_TCHAR *filename); - - /// Destructor calls . - ~ACE_Dirent (void); - - /// Closes the directory stream and frees the structure. - void close (void); - - // = Iterator methods. - /** - * Returns a pointer to a structure representing the directory entry - * at the current position in the directory stream to which dirp - * 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. shall not return - * directory entries containing empty names. It is unspecified - * whether entries are returned for dot or dot-dot. The pointer - * returned by points to data that may be overwritten by - * another call to on the same directory stream. This - * data shall not be overwritten by another call to on a - * different directory stream. may buffer several - * directory entries per actual read operation; 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 except that an - * @a entry and @a result buffer must be supplied by the caller to - * store the result. - */ - int read (struct ACE_DIRENT *entry, - struct ACE_DIRENT **result); - - // = Manipulators. - /// Returns the current location associated with the directory - /// stream. - long tell (void); - - /** - * Sets the position of the next operation on the - * directory stream. The new position reverts to the position - * associated with the directory stream at the time the - * operation that provides loc was performed. Values returned by - * are good only for the lifetime of the pointer from - * which they are derived. If the directory is closed and then - * reopened, the value may be invalidated due to - * undetected directory compaction. It is safe to use a previous - * value immediately after a call to and before - * any calls to readdir. - */ - void seek (long loc); - - /** - * 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 - * would. - */ - void rewind (void); - -private: - /// Pointer to the directory stream. - ACE_DIR *dirp_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Dirent.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_DIRENT_H */ diff --git a/ACE/ace/Dirent.inl b/ACE/ace/Dirent.inl deleted file mode 100644 index 5f6af5a3218..00000000000 --- a/ACE/ace/Dirent.inl +++ /dev/null @@ -1,99 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Log_Msg.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE int -ACE_Dirent::open (const ACE_TCHAR *dirname) -{ - // If the directory stream is already open, close it to prevent - // possible resource leaks. - - if (this->dirp_ != 0) - { - ACE_OS::closedir (this->dirp_); - this->dirp_ = 0; - } - - this->dirp_ = ACE_OS::opendir (dirname); - - if (this->dirp_ == 0) - return -1; - else - return 0; -} - -ACE_INLINE -ACE_Dirent::ACE_Dirent (void) - : dirp_ (0) -{ -} - -ACE_INLINE -ACE_Dirent::ACE_Dirent (const ACE_TCHAR *dirname) - : dirp_ (0) -{ - if (this->open (dirname) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Dirent::ACE_Dirent"))); -} - -ACE_INLINE -ACE_Dirent::~ACE_Dirent (void) -{ - if (this->dirp_ != 0) - ACE_OS::closedir (this->dirp_); -} - -ACE_INLINE ACE_DIRENT * -ACE_Dirent::read (void) -{ - return this->dirp_ ? ACE_OS::readdir (this->dirp_) : 0; -} - -ACE_INLINE int -ACE_Dirent::read (struct ACE_DIRENT *entry, - struct ACE_DIRENT **result) -{ - return this->dirp_ - ? ACE_OS::readdir_r (this->dirp_, entry, result) - : 0; -} - -ACE_INLINE void -ACE_Dirent::close (void) -{ - if (this->dirp_ != 0) - { - ACE_OS::closedir (this->dirp_); - - // Prevent double closure - this->dirp_ = 0; - } -} - -ACE_INLINE void -ACE_Dirent::rewind (void) -{ - if (this->dirp_) - ACE_OS::rewinddir (this->dirp_); -} - -ACE_INLINE void -ACE_Dirent::seek (long loc) -{ - if (this->dirp_) - ACE_OS::seekdir (this->dirp_, loc); -} - -ACE_INLINE long -ACE_Dirent::tell (void) -{ - return this->dirp_ ? ACE_OS::telldir (this->dirp_) : 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dirent_Selector.cpp b/ACE/ace/Dirent_Selector.cpp deleted file mode 100644 index 288fc6deacf..00000000000 --- a/ACE/ace/Dirent_Selector.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// $Id$ - -#include "ace/Dirent_Selector.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Dirent_Selector.inl" -#endif /* __ACE_INLINE__ */ - -#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 - -ACE_Dirent_Selector::ACE_Dirent_Selector (void) - : namelist_ (0), - n_ (0) -{ -} - -ACE_Dirent_Selector::~ACE_Dirent_Selector (void) -{ - // Free up any allocated resources. - this->close(); -} - -int -ACE_Dirent_Selector::open (const ACE_TCHAR *dir, - ACE_SCANDIR_SELECTOR sel, - ACE_SCANDIR_COMPARATOR cmp) -{ - n_ = ACE_OS::scandir (dir, &this->namelist_, sel, cmp); - return n_; -} - -int -ACE_Dirent_Selector::close (void) -{ - for (--n_; n_ >= 0; --n_) - { -#if defined (ACE_LACKS_STRUCT_DIR) - // Only the lacking-struct-dir emulation allocates this. Native - // scandir includes d_name in the dirent struct itself. - ACE_OS::free (this->namelist_[n_]->d_name); -#endif - ACE_OS::free (this->namelist_[n_]); - } - - ACE_OS::free (this->namelist_); - this->namelist_ = 0; - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dirent_Selector.h b/ACE/ace/Dirent_Selector.h deleted file mode 100644 index 72b1b176c03..00000000000 --- a/ACE/ace/Dirent_Selector.h +++ /dev/null @@ -1,75 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Dirent_Selector.h - * - * $Id$ - * - * Define a portable C++ interface to the method. - * - * @author Rich Newman - */ -//============================================================================= - -#ifndef ACE_DIRENT_SELECTOR_H -#define ACE_DIRENT_SELECTOR_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_dirent.h" /* Need ACE_SCANDIR_SELECTOR, COMPARATOR */ -#include "ace/os_include/os_dirent.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Dirent_Selector - * - * @brief Define a portable C++ directory-entry iterator based on the - * POSIX scandir API. - */ -class ACE_Export ACE_Dirent_Selector -{ -public: - /// Constructor - ACE_Dirent_Selector (void); - - /// Destructor. - virtual ~ACE_Dirent_Selector (void); - - /// Return the length of the list of matching directory entries. - int length (void) const; - - /// Return the entry at @a index. - ACE_DIRENT *operator[] (const int index) const; - - /// Free up resources. - int close (void); - - /// Open the directory @a dir and populate the current list of names with - /// directory entries that match the @a selector and @a comparator. - int open (const ACE_TCHAR *dir, - ACE_SCANDIR_SELECTOR selector = 0, - ACE_SCANDIR_COMPARATOR comparator = 0); - -protected: - /// Ptr to the namelist array. - ACE_DIRENT **namelist_; - - /// Number of entries in the array. - int n_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Dirent_Selector.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_DIRENT_SELECTOR_H */ diff --git a/ACE/ace/Dirent_Selector.inl b/ACE/ace/Dirent_Selector.inl deleted file mode 100644 index 7c42f46b9be..00000000000 --- a/ACE/ace/Dirent_Selector.inl +++ /dev/null @@ -1,19 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE int -ACE_Dirent_Selector::length (void) const -{ - return n_; -} - -ACE_INLINE ACE_DIRENT * -ACE_Dirent_Selector::operator[] (const int n) const -{ - return this->namelist_[n]; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dump.cpp b/ACE/ace/Dump.cpp deleted file mode 100644 index b601496f3b6..00000000000 --- a/ACE/ace/Dump.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// $Id$ - -#include "ace/Dump.h" -#include "ace/Guard_T.h" -#include "ace/Thread_Mutex.h" -#include "ace/Object_Manager.h" -#include "ace/Log_Msg.h" - -ACE_RCSID(ace, Dump, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Implementations (very simple for now...) - -ACE_Dumpable::~ACE_Dumpable (void) -{ - ACE_TRACE ("ACE_Dumpable::~ACE_Dumpable"); -} - -ACE_Dumpable::ACE_Dumpable (const void *this_ptr) - : this_ (this_ptr) -{ - ACE_TRACE ("ACE_Dumpable::ACE_Dumpable"); -} - -ACE_Dumpable_Ptr::ACE_Dumpable_Ptr (const ACE_Dumpable *dumper) - : dumper_ (dumper) -{ - ACE_TRACE ("ACE_Dumpable_Ptr::ACE_Dumpable_Ptr"); -} - -const ACE_Dumpable * -ACE_Dumpable_Ptr::operator->() const -{ - ACE_TRACE ("ACE_Dumpable_Ptr::operator->"); - return this->dumper_; -} - -void -ACE_Dumpable_Ptr::operator= (const ACE_Dumpable *dumper) const -{ - ACE_TRACE ("ACE_Dumpable_Ptr::operator="); - if (this->dumper_ != dumper) - { - delete const_cast (this->dumper_); - (const_cast (this))->dumper_ = dumper; - } -} - -ACE_ODB::ACE_ODB (void) - // Let the Tuple default constructor initialize object_table_ - : current_size_ (0) -{ - ACE_TRACE ("ACE_ODB::ACE_ODB"); -} - -ACE_ODB * -ACE_ODB::instance (void) -{ - ACE_TRACE ("ACE_ODB::instance"); - - if (ACE_ODB::instance_ == 0) - { - ACE_MT (ACE_Thread_Mutex *lock = - ACE_Managed_Object::get_preallocated_object - (ACE_Object_Manager::ACE_DUMP_LOCK); - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, *lock, 0)); - - if (ACE_ODB::instance_ == 0) - ACE_NEW_RETURN (ACE_ODB::instance_, - ACE_ODB, - 0); - } - - return ACE_ODB::instance_; -} - -void -ACE_ODB::dump_objects (void) -{ - ACE_TRACE ("ACE_ODB::dump_objects"); - for (int i = 0; i < this->current_size_; i++) - { - if (this->object_table_[i].this_ != 0) - // Dump the state of the object. - this->object_table_[i].dumper_->dump (); - } -} - -// This method registers a new . It detects -// duplicates and simply overwrites them. - -void -ACE_ODB::register_object (const ACE_Dumpable *dumper) -{ - ACE_TRACE ("ACE_ODB::register_object"); - int i; - int slot = 0; - - for (i = 0; i < this->current_size_; i++) - { - if (this->object_table_[i].this_ == 0) - slot = i; - else if (this->object_table_[i].this_ == dumper->this_) - { - slot = i; - break; - } - } - - if (i == this->current_size_) - { - slot = this->current_size_++; - ACE_ASSERT (this->current_size_ < ACE_ODB::MAX_TABLE_SIZE); - } - this->object_table_[slot].this_ = dumper->this_; - this->object_table_[slot].dumper_ = dumper; -} - -void -ACE_ODB::remove_object (const void *this_ptr) -{ - ACE_TRACE ("ACE_ODB::remove_object"); - int i; - - for (i = 0; i < this->current_size_; i++) - { - if (this->object_table_[i].this_ == this_ptr) - break; - } - - if (i < this->current_size_) - { - this->object_table_[i].this_ = 0; - this->object_table_[i].dumper_ = 0; - } -} - -ACE_ODB *ACE_ODB::instance_ = 0; - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dump.h b/ACE/ace/Dump.h deleted file mode 100644 index 97f0bac7966..00000000000 --- a/ACE/ace/Dump.h +++ /dev/null @@ -1,172 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Dump.h - * - * $Id$ - * - * - * A prototype mechanism that allow all ACE objects to be registered - * with a central in-memory "database" that can dump the state of all - * live ACE objects (e.g., from within a debugger). - * - * The macros which allow easy registration and removal of objects to be - * dumped (ACE_REGISTER_OBJECT and ACE_REMOVE_OBJECT) are turned into - * no-ops by compiling with the ACE_NDEBUG macro defined. This allows - * usage to be removed in "release mode" builds without changing code. - * - * There are several interesting aspects to this design: - * - * 1. It uses the External Polymorphism pattern to avoid having to - * derive all ACE classes from a common base class that has virtual - * methods (this is crucial to avoid unnecessary overhead). In - * addition, there is no additional space added to ACE objects - * (this is crucial to maintain binary layout compatibility). - * - * 2. This mechanism can be conditionally compiled in order to - * completely disable this feature entirely. Moreover, by - * using macros there are relatively few changes to ACE code. - * - * 3. This mechanism copes with single-inheritance hierarchies of - * dumpable classes. In such cases we typically want only one - * dump, corresponding to the most derived instance. Thanks to - * Christian Millour (chris@etca.fr) for illustrating how to do - * this. Note, however, that this scheme doesn't generalize to - * work with multiple-inheritance or virtual base classes. - * - * Future work includes: - * - * 1. Using a dynamic object table rather than a static table - * - * 2. Adding support to allow particular classes of objects to - * be selectively dumped. - * - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_DUMP_H -#define ACE_DUMP_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Dumpable - * - * @brief Base class that defines a uniform interface for all object - * dumping. - */ -class ACE_Export ACE_Dumpable -{ -public: - friend class ACE_ODB; - friend class ACE_Dumpable_Ptr; - - /// Constructor. - ACE_Dumpable (const void *); - - /// This pure virtual method must be filled in by a subclass. - virtual void dump (void) const = 0; - -protected: - virtual ~ACE_Dumpable (void); - -private: - /// Pointer to the object that is being stored. - const void *this_; -}; - -/** - * @class ACE_Dumpable_Ptr - * - * @brief A smart pointer stored in the in-memory object database - * ACE_ODB. The pointee (if any) is deleted when reassigned. - */ -class ACE_Export ACE_Dumpable_Ptr -{ -public: - ACE_Dumpable_Ptr (const ACE_Dumpable *dumper = 0); - const ACE_Dumpable *operator->() const; - void operator= (const ACE_Dumpable *dumper) const; - -private: - /// "Real" pointer to the underlying abstract base class - /// pointer that does the real work. - const ACE_Dumpable *dumper_; -}; - -/** - * @class ACE_ODB - * - * @brief This is the object database (ODB) that keeps track of all - * live ACE objects. - */ -class ACE_Export ACE_ODB -{ -public: - /// @todo This is clearly inadequate and should be dynamic... - enum {MAX_TABLE_SIZE = 100000}; - - /// Iterates through the entire set of registered objects and - /// dumps their state. - void dump_objects (void); - - /// Add the tuple to the list of registered ACE objects. - void register_object (const ACE_Dumpable *dumper); - - /// Use to locate and remove the associated from the - /// list of registered ACE objects. - void remove_object (const void *this_); - - /// Interface to the Singleton instance of the object database. - static ACE_ODB *instance (void); - -private: - ACE_ODB (void); // Ensure we have a Singleton... - - struct Tuple - { - /// Pointer to the object that is registered. - const void *this_; - - /// Smart pointer to the ACE_Dumpable object associated with this_. - /// This uses an ACE_Dumpable_Ptr, instead of a bare pointer, to - /// cope with hierarchies of dumpable classes. In such cases we - /// typically want only one dump, corresponding to the most derived - /// instance. To achieve this, the handle registered for the - /// subobject corresponding to the base class is destroyed (hence - /// on destruction of the subobject its handle won't exist anymore - /// and we'll have to check for that). - const ACE_Dumpable_Ptr dumper_; - - Tuple (void) : dumper_(0) {} - }; - - /// Singleton instance of this class. - static ACE_ODB *instance_; - - /// The current implementation is very simple-minded and will be - /// changed to be dynamic. - Tuple object_table_[ACE_ODB::MAX_TABLE_SIZE]; - - /// Current size of . - int current_size_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -// Include the templates classes at this point. -#include "ace/Dump_T.h" - -#include /**/ "ace/post.h" -#endif /* ACE_DUMP_H */ diff --git a/ACE/ace/Dump_T.cpp b/ACE/ace/Dump_T.cpp deleted file mode 100644 index 3c789497eee..00000000000 --- a/ACE/ace/Dump_T.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// Dump_T.cpp -// -// $Id$ - -#ifndef ACE_DUMP_T_CPP -#define ACE_DUMP_T_CPP - -#include "ace/Dump_T.h" -#include "ace/Global_Macros.h" -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Dumpable_Adapter::~ACE_Dumpable_Adapter (void) -{ - ACE_TRACE ("ACE_Dumpable_Adapter::~ACE_Dumpable_Adapter"); -} - -template -ACE_Dumpable_Adapter::ACE_Dumpable_Adapter (const Concrete *t) - : ACE_Dumpable ((const void *) t), this_ (t) -{ - ACE_TRACE ("ACE_Dumpable_Adapter::ACE_Dumpable_Adapter"); -} - -template Concrete * -ACE_Dumpable_Adapter::operator->() const -{ - return (Concrete *) this->this_; -} - -template void -ACE_Dumpable_Adapter::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Dumpable_Adapter::dump"); - this->this_->dump (); -#endif /* ACE_HAS_DUMP */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_DUMP_T_CPP */ diff --git a/ACE/ace/Dump_T.h b/ACE/ace/Dump_T.h deleted file mode 100644 index 33249fb1fa9..00000000000 --- a/ACE/ace/Dump_T.h +++ /dev/null @@ -1,82 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Dump_T.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_DUMP_T_H -#define ACE_DUMP_T_H -#include /**/ "ace/pre.h" - -#include "ace/Dump.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Dumpable_Adapter - * - * @brief This class inherits the interface of the abstract ACE_Dumpable - * class and is instantiated with the implementation of the - * concrete component class . - * - * This design is similar to the Adapter and Decorator patterns - * from the ``Gang of Four'' book. Note that - * need not inherit from a common class since ACE_Dumpable - * provides the uniform virtual interface! - */ -template -class ACE_Dumpable_Adapter : public ACE_Dumpable -{ -public: - // = Initialization and termination methods. - ACE_Dumpable_Adapter (const Concrete *t); - ~ACE_Dumpable_Adapter (void); - - /// Concrete dump method (simply delegates to the method of - /// ). - virtual void dump (void) const; - - /// Delegate to methods in the Concrete class. - Concrete *operator->() const; - -private: - /// Pointer to @c this of . - const Concrete *this_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -// Some useful macros for conditionally compiling this feature... -#if defined (ACE_NDEBUG) -#define ACE_REGISTER_OBJECT(CLASS) -#define ACE_REMOVE_OBJECT -#else -#define ACE_REGISTER_OBJECT(CLASS) \ - ACE_ODB::instance ()->register_object \ - (new ACE_Dumpable_Adapter (this)); -#define ACE_REMOVE_OBJECT \ - ACE_ODB::instance ()->remove_object \ - ((void *) this); -#endif /* ACE_NDEBUG */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Dump_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Dump_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_DUMP_T_H */ diff --git a/ACE/ace/Dynamic.cpp b/ACE/ace/Dynamic.cpp deleted file mode 100644 index adeae242579..00000000000 --- a/ACE/ace/Dynamic.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// $Id$ - -#include "ace/Dynamic.h" -#include "ace/Singleton.h" -#include "ace/TSS_T.h" -#include "ace/Synch_Traits.h" -#include "ace/Null_Mutex.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Dynamic.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, Dynamic, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Dynamic::ACE_Dynamic (void) - : is_dynamic_ (false) -{ - ACE_TRACE ("ACE_Dynamic::ACE_Dynamic"); -} - -/* static */ ACE_Dynamic * -ACE_Dynamic::instance (void) -{ - return ACE_TSS_Singleton::instance (); -} - -#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION) -template ACE_TSS_Singleton * - ACE_TSS_Singleton::singleton_; -#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dynamic.h b/ACE/ace/Dynamic.h deleted file mode 100644 index 4d52b67673f..00000000000 --- a/ACE/ace/Dynamic.h +++ /dev/null @@ -1,75 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Dynamic.h - * - * $Id$ - * - * @author Doug Schmidt - * @author Irfan Pyarali. - */ -//========================================================================== - -#ifndef ACE_DYNAMIC_H -#define ACE_DYNAMIC_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Dynamic - * - * @brief Checks to see if an object was dynamically allocated. - * - * This class holds the pointer in a thread-safe manner between - * the call to operator new and the call to the constructor. - */ -class ACE_Export ACE_Dynamic -{ -public: - // = Initialization and termination method. - /// Constructor. - ACE_Dynamic (void); - - /// Destructor. - ~ACE_Dynamic (void); - - /** - * Sets a flag that indicates that the object was dynamically - * created. This method is usually called in operator new and then - * checked and reset in the constructor. - */ - void set (void); - - /// @c true if we were allocated dynamically, else @c false. - bool is_dynamic (void); - - /// Resets state flag. - void reset (void); - - static ACE_Dynamic *instance (void); - -private: - /** - * Flag that indicates that the object was dynamically created. This - * method is usually called in operator new and then checked and - * reset in the constructor. - */ - bool is_dynamic_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Dynamic.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_DYNAMIC_H */ diff --git a/ACE/ace/Dynamic.inl b/ACE/ace/Dynamic.inl deleted file mode 100644 index 3f506bc51f4..00000000000 --- a/ACE/ace/Dynamic.inl +++ /dev/null @@ -1,34 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Dynamic::~ACE_Dynamic (void) -{ - // ACE_TRACE ("ACE_Dynamic::~ACE_Dynamic"); -} - -ACE_INLINE void -ACE_Dynamic::set (void) -{ - // ACE_TRACE ("ACE_Dynamic::set"); - this->is_dynamic_ = true; -} - -ACE_INLINE bool -ACE_Dynamic::is_dynamic (void) -{ - // ACE_TRACE ("ACE_Dynamic::is_dynamic"); - return this->is_dynamic_; -} - -ACE_INLINE void -ACE_Dynamic::reset (void) -{ - // ACE_TRACE ("ACE_Dynamic::reset"); - this->is_dynamic_ = false; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dynamic_Message_Strategy.cpp b/ACE/ace/Dynamic_Message_Strategy.cpp deleted file mode 100644 index 060aef6f5b5..00000000000 --- a/ACE/ace/Dynamic_Message_Strategy.cpp +++ /dev/null @@ -1,205 +0,0 @@ -#include "ace/Dynamic_Message_Strategy.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Dynamic_Message_Strategy.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Guard_T.h" -#include "ace/Log_Msg.h" -#include "ace/Malloc_Base.h" -#include "ace/OS_NS_string.h" - -ACE_RCSID (ace, - Dynamic_Message_Strategy, - "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// ctor - -ACE_Dynamic_Message_Strategy::ACE_Dynamic_Message_Strategy (unsigned long static_bit_field_mask, - unsigned long static_bit_field_shift, - unsigned long dynamic_priority_max, - unsigned long dynamic_priority_offset) - : static_bit_field_mask_ (static_bit_field_mask), - static_bit_field_shift_ (static_bit_field_shift), - dynamic_priority_max_ (dynamic_priority_max), - dynamic_priority_offset_ (dynamic_priority_offset), - max_late_ (0, dynamic_priority_offset - 1), - min_pending_ (0, dynamic_priority_offset), - pending_shift_ (0, dynamic_priority_max) -{ -} - -// dtor - -ACE_Dynamic_Message_Strategy::~ACE_Dynamic_Message_Strategy (void) -{ -} - -ACE_Dynamic_Message_Strategy::Priority_Status -ACE_Dynamic_Message_Strategy::priority_status (ACE_Message_Block & mb, - const ACE_Time_Value & tv) -{ - // default the message to have pending priority status - Priority_Status status = ACE_Dynamic_Message_Strategy::PENDING; - - // start with the passed absolute time as the message's priority, then - // call the polymorphic hook method to (at least partially) convert - // the absolute time and message attributes into the message's priority - ACE_Time_Value priority (tv); - convert_priority (priority, mb); - - // if the priority is negative, the message is pending - if (priority < ACE_Time_Value::zero) - { - // priority for pending messages must be shifted - // upward above the late priority range - priority += pending_shift_; - if (priority < min_pending_) - priority = min_pending_; - } - // otherwise, if the priority is greater than the maximum late - // priority value that can be represented, it is beyond late - else if (priority > max_late_) - { - // all messages that are beyond late are assigned lowest priority (zero) - mb.msg_priority (0); - return ACE_Dynamic_Message_Strategy::BEYOND_LATE; - } - // otherwise, the message is late, but its priority is correct - else - status = ACE_Dynamic_Message_Strategy::LATE; - - // use (fast) bitwise operators to isolate and replace - // the dynamic portion of the message's priority - mb.msg_priority((mb.msg_priority() & static_bit_field_mask_) | - ((priority.usec () + - ACE_ONE_SECOND_IN_USECS * (suseconds_t)(priority.sec())) << - static_bit_field_shift_)); - - // returns the priority status of the message - return status; -} - - -// Dump the state of the strategy. - -void -ACE_Dynamic_Message_Strategy::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Dynamic_Message_Strategy::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("static_bit_field_mask_ = %u\n") - ACE_TEXT ("static_bit_field_shift_ = %u\n") - ACE_TEXT ("dynamic_priority_max_ = %u\n") - ACE_TEXT ("dynamic_priority_offset_ = %u\n") - ACE_TEXT ("max_late_ = [%d sec, %d usec]\n") - ACE_TEXT ("min_pending_ = [%d sec, %d usec]\n") - ACE_TEXT ("pending_shift_ = [%d sec, %d usec]\n"), - this->static_bit_field_mask_, - this->static_bit_field_shift_, - this->dynamic_priority_max_, - this->dynamic_priority_offset_, - this->max_late_.sec (), - this->max_late_.usec (), - this->min_pending_.sec (), - this->min_pending_.usec (), - this->pending_shift_.sec (), - this->pending_shift_.usec ())); - - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Deadline_Message_Strategy::ACE_Deadline_Message_Strategy (unsigned long static_bit_field_mask, - unsigned long static_bit_field_shift, - unsigned long dynamic_priority_max, - unsigned long dynamic_priority_offset) - : ACE_Dynamic_Message_Strategy (static_bit_field_mask, - static_bit_field_shift, - dynamic_priority_max, - dynamic_priority_offset) -{ -} - -ACE_Deadline_Message_Strategy::~ACE_Deadline_Message_Strategy (void) -{ -} - -void -ACE_Deadline_Message_Strategy::convert_priority (ACE_Time_Value & priority, - const ACE_Message_Block & mb) -{ - // Convert absolute time passed in tv to negative time - // to deadline of mb with respect to that absolute time. - priority -= mb.msg_deadline_time (); -} - // dynamic priority conversion function based on time to deadline - -void -ACE_Deadline_Message_Strategy::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Deadline_Message_Strategy::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Dynamic_Message_Strategy base class: \n"))); - this->ACE_Dynamic_Message_Strategy::dump (); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nderived class: ACE_Deadline_Message_Strategy\n"))); - - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Laxity_Message_Strategy::ACE_Laxity_Message_Strategy (unsigned long static_bit_field_mask, - unsigned long static_bit_field_shift, - unsigned long dynamic_priority_max, - unsigned long dynamic_priority_offset) - : ACE_Dynamic_Message_Strategy (static_bit_field_mask, - static_bit_field_shift, - dynamic_priority_max, - dynamic_priority_offset) -{ -} - -ACE_Laxity_Message_Strategy::~ACE_Laxity_Message_Strategy (void) -{ -} - -void -ACE_Laxity_Message_Strategy::convert_priority (ACE_Time_Value & priority, - const ACE_Message_Block & mb) -{ - // Convert absolute time passed in tv to negative - // laxity of mb with respect to that absolute time. - priority += mb.msg_execution_time (); - priority -= mb.msg_deadline_time (); -} - // dynamic priority conversion function based on laxity - -void -ACE_Laxity_Message_Strategy::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Laxity_Message_Strategy::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Dynamic_Message_Strategy base class: \n"))); - this->ACE_Dynamic_Message_Strategy::dump (); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nderived class: ACE_Laxity_Message_Strategy\n"))); - - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - // Dump the state of the strategy. - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dynamic_Message_Strategy.h b/ACE/ace/Dynamic_Message_Strategy.h deleted file mode 100644 index 66448a8247b..00000000000 --- a/ACE/ace/Dynamic_Message_Strategy.h +++ /dev/null @@ -1,217 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Dynamic_Message_Strategy.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_DYNAMIC_MESSAGE_STRATEGY_H -#define ACE_DYNAMIC_MESSAGE_STRATEGY_H - -#include /**/ "ace/pre.h" - -#include "ace/config-lite.h" -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Message_Block.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Dynamic_Message_Strategy - * - * @brief An abstract base class which provides dynamic priority - * evaluation methods for use by the ACE_Dynamic_Message_Queue - * class or any other class which needs to manage the priorities - * of a collection of ACE_Message_Blocks dynamically. - * - * Methods for deadline and laxity based priority evaluation are - * provided. These methods assume a specific partitioning of - * the message priority number into a higher order dynamic bit - * field and a lower order static priority bit field. The - * default partitioning assumes an unsigned dynamic message - * priority field of 22 bits and an unsigned static message - * priority field of 10 bits. This corresponds to the initial - * values of the static class members. To provide a different - * partitioning, assign a different set of values to the static - * class memebers before using the static member functions. - */ -class ACE_Export ACE_Dynamic_Message_Strategy -{ -public: - - // = Message priority status - - // Values are defined as bit flags so that status combinations may - // be specified easily. - - enum Priority_Status - { - /// Message can still make its deadline - PENDING = 0x01, - /// Message cannot make its deadline - LATE = 0x02, - /// Message is so late its priority is undefined - BEYOND_LATE = 0x04, - /// Mask to match any priority status - ANY_STATUS = 0x07 - }; - - /// Constructor. - ACE_Dynamic_Message_Strategy (unsigned long static_bit_field_mask, - unsigned long static_bit_field_shift, - unsigned long dynamic_priority_max, - unsigned long dynamic_priority_offset); - - /// Virtual destructor. - virtual ~ACE_Dynamic_Message_Strategy (void); - - /// Updates the message's priority and returns its priority status. - Priority_Status priority_status (ACE_Message_Block &mb, - const ACE_Time_Value &tv); - - /// Get static bit field mask. - unsigned long static_bit_field_mask (void) const; - - /// Set static bit field mask. - void static_bit_field_mask (unsigned long); - - /// Get left shift value to make room for static bit field. - unsigned long static_bit_field_shift (void) const; - - /// Set left shift value to make room for static bit field. - void static_bit_field_shift (unsigned long); - - /// Get maximum supported priority value. - unsigned long dynamic_priority_max (void) const; - - /// Set maximum supported priority value. - void dynamic_priority_max (unsigned long); - - /// Get offset to boundary between signed range and unsigned range. - unsigned long dynamic_priority_offset (void) const; - - /// Set offset to boundary between signed range and unsigned range. - void dynamic_priority_offset (unsigned long); - - /// Dump the state of the strategy. - virtual void dump (void) const; - -protected: - /// Hook method for dynamic priority conversion. - virtual void convert_priority (ACE_Time_Value &priority, - const ACE_Message_Block &mb) = 0; - - /// This is a bit mask with all ones in the static bit field. - unsigned long static_bit_field_mask_; - - /** - * This is a left shift value to make room for static bit field: - * this value should be the logarithm base 2 of - * (static_bit_field_mask_ + 1). - */ - unsigned long static_bit_field_shift_; - - /// Maximum supported priority value. - unsigned long dynamic_priority_max_; - - /// Offset to boundary between signed range and unsigned range. - unsigned long dynamic_priority_offset_; - - /// Maximum late time value that can be represented. - ACE_Time_Value max_late_; - - /// Minimum pending time value that can be represented. - ACE_Time_Value min_pending_; - - /// Time value by which to shift pending priority. - ACE_Time_Value pending_shift_; -}; - -/** - * @class ACE_Deadline_Message_Strategy - * - * @brief Deadline based message priority strategy. - * - * Assigns dynamic message priority according to time to deadline. The - * message priority is divided into high and low order bit fields. The - * high order bit field is used for dynamic message priority, which is - * updated whenever the convert_priority() method is called. The - * low order bit field is used for static message priority and is left - * unchanged. The partitioning of the priority value into high and low - * order bit fields is done according to the arguments passed to the - * strategy object's constructor. - */ -class ACE_Export ACE_Deadline_Message_Strategy : public ACE_Dynamic_Message_Strategy -{ -public: - /// Ctor, with all arguments defaulted. - ACE_Deadline_Message_Strategy (unsigned long static_bit_field_mask = 0x3FFUL, // 2^(10) - 1 - unsigned long static_bit_field_shift = 10, // 10 low order bits - unsigned long dynamic_priority_max = 0x3FFFFFUL, // 2^(22)-1 - unsigned long dynamic_priority_offset = 0x200000UL); // 2^(22-1) - - /// Virtual dtor. - virtual ~ACE_Deadline_Message_Strategy (void); - - /// Dynamic priority conversion function based on time to deadline. - virtual void convert_priority (ACE_Time_Value &priority, - const ACE_Message_Block &mb); - - /// Dump the state of the strategy. - virtual void dump (void) const; -}; - -/** - * @class ACE_Laxity_Message_Strategy - * - * @brief Laxity based message priority strategy. - * - * Assigns dynamic message priority according to laxity (time to - * deadline minus worst case execution time). The message priority is - * divided into high and low order bit fields. The high order - * bit field is used for dynamic message priority, which is - * updated whenever the convert_priority() method is called. The - * low order bit field is used for static message priority and is left - * unchanged. The partitioning of the priority value into high and low - * order bit fields is done according to the arguments passed to the - * strategy object's constructor. - */ -class ACE_Export ACE_Laxity_Message_Strategy : public ACE_Dynamic_Message_Strategy -{ -public: - /// Ctor, with all arguments defaulted. - ACE_Laxity_Message_Strategy (unsigned long static_bit_field_mask = 0x3FFUL, // 2^(10) - 1 - unsigned long static_bit_field_shift = 10, // 10 low order bits - unsigned long dynamic_priority_max = 0x3FFFFFUL, // 2^(22)-1 - unsigned long dynamic_priority_offset = 0x200000UL); // 2^(22-1) - - /// virtual dtor. - virtual ~ACE_Laxity_Message_Strategy (void); - - /// Dynamic priority conversion function based on laxity. - virtual void convert_priority (ACE_Time_Value &priority, - const ACE_Message_Block &mb); - - /// Dump the state of the strategy. - virtual void dump (void) const; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Dynamic_Message_Strategy.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACE_DYNAMIC_MESSAGE_STRATEGY_H */ diff --git a/ACE/ace/Dynamic_Message_Strategy.inl b/ACE/ace/Dynamic_Message_Strategy.inl deleted file mode 100644 index b855acef597..00000000000 --- a/ACE/ace/Dynamic_Message_Strategy.inl +++ /dev/null @@ -1,75 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE unsigned long -ACE_Dynamic_Message_Strategy::static_bit_field_mask (void) const -{ - return static_bit_field_mask_; -} - // get static bit field mask - -ACE_INLINE void -ACE_Dynamic_Message_Strategy::static_bit_field_mask (unsigned long ul) -{ - static_bit_field_mask_ = ul; -} - // set static bit field mask - -ACE_INLINE unsigned long -ACE_Dynamic_Message_Strategy::static_bit_field_shift (void) const -{ - return static_bit_field_shift_; -} - // get left shift value to make room for static bit field - -ACE_INLINE void -ACE_Dynamic_Message_Strategy::static_bit_field_shift (unsigned long ul) -{ - static_bit_field_shift_ = ul; -} - // set left shift value to make room for static bit field - -ACE_INLINE unsigned long -ACE_Dynamic_Message_Strategy::dynamic_priority_max (void) const -{ - return dynamic_priority_max_; -} - // get maximum supported priority value - -ACE_INLINE void -ACE_Dynamic_Message_Strategy::dynamic_priority_max (unsigned long ul) -{ - // pending_shift_ depends on dynamic_priority_max_: for performance - // reasons, the value in pending_shift_ is (re)calculated only when - // dynamic_priority_max_ is initialized or changes, and is stored - // as a class member rather than being a derived value. - dynamic_priority_max_ = ul; - pending_shift_ = ACE_Time_Value (0, ul); -} - // set maximum supported priority value - -ACE_INLINE unsigned long -ACE_Dynamic_Message_Strategy::dynamic_priority_offset (void) const -{ - return dynamic_priority_offset_; -} - // get offset for boundary between signed range and unsigned range - -ACE_INLINE void -ACE_Dynamic_Message_Strategy::dynamic_priority_offset (unsigned long ul) -{ - // max_late_ and min_pending_ depend on dynamic_priority_offset_: - // for performance reasons, the values in max_late_ and min_pending_ - // are (re)calculated only when dynamic_priority_offset_ is - // initialized or changes, and are stored as a class member rather - // than being derived each time one of their values is needed. - dynamic_priority_offset_ = ul; - max_late_ = ACE_Time_Value (0, ul - 1); - min_pending_ = ACE_Time_Value (0, ul); -} - // set offset for boundary between signed range and unsigned range - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dynamic_Service.cpp b/ACE/ace/Dynamic_Service.cpp deleted file mode 100644 index 53d762dc364..00000000000 --- a/ACE/ace/Dynamic_Service.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// $Id$ - -#ifndef ACE_DYNAMIC_SERVICE_CPP -#define ACE_DYNAMIC_SERVICE_CPP - -#include "ace/Dynamic_Service.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Service_Object.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Dynamic_Service.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - - -template TYPE * -ACE_Dynamic_Service::instance (const ACE_TCHAR *name) -{ - ACE_Service_Object * svc_obj = - static_cast - (ACE_Dynamic_Service_Base::instance (name,false)); - return dynamic_cast (svc_obj); -} - -template TYPE * -ACE_Dynamic_Service::instance (const ACE_TCHAR *name, - bool no_global) -{ - ACE_Service_Object * svc_obj = - static_cast - (ACE_Dynamic_Service_Base::instance (name, no_global)); - return dynamic_cast (svc_obj); -} - -template TYPE * -ACE_Dynamic_Service::instance (const ACE_Service_Gestalt* conf, - const ACE_TCHAR *name) -{ - ACE_Service_Object * svc_obj = - static_cast - (ACE_Dynamic_Service_Base::instance (conf, name, false)); - return dynamic_cast (svc_obj); -} - -template TYPE * -ACE_Dynamic_Service::instance (const ACE_Service_Gestalt* conf, - const ACE_TCHAR *name, - bool no_global) -{ - ACE_Service_Object * svc_obj = - static_cast - (ACE_Dynamic_Service_Base::instance (conf, name, no_global)); - return dynamic_cast (svc_obj); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_DYNAMIC_SERVICE_CPP */ diff --git a/ACE/ace/Dynamic_Service.h b/ACE/ace/Dynamic_Service.h deleted file mode 100644 index ed7317ef562..00000000000 --- a/ACE/ace/Dynamic_Service.h +++ /dev/null @@ -1,89 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Dynamic_Service.h - * - * $Id$ - * - * @author Prashant Jain - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_DYNAMIC_SERVICE_H -#define ACE_DYNAMIC_SERVICE_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" -#include "ace/Global_Macros.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Dynamic_Service_Base.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Service_Object; - -/** - * @class ACE_Dynamic_Service - * - * @brief Provides a general interface to retrieve arbitrary objects - * from the ACE service repository. - * - * Uses "name" for lookup in the ACE service repository. Obtains - * the object and returns it as the appropriate type. - */ -template -class ACE_Dynamic_Service : public ACE_Dynamic_Service_Base -{ -public: - /// Return instance using @a name to search the Service_Repository. - static TYPE* instance (const ACE_TCHAR *name); - static TYPE* instance (const ACE_TCHAR *name, bool no_global); - - static TYPE* instance (const ACE_Service_Gestalt* repo, - const ACE_TCHAR *name); - static TYPE* instance (const ACE_Service_Gestalt* repo, - const ACE_TCHAR *name, bool no_global); - -#if defined (ACE_USES_WCHAR) - - /// Return instance using @a name to search the Service_Repository. - static TYPE* instance (const ACE_ANTI_TCHAR *name); - - static TYPE* instance (const ACE_ANTI_TCHAR *name, bool no_global); - - static TYPE* instance (const ACE_Service_Gestalt* repo, - const ACE_ANTI_TCHAR *name); - static TYPE* instance (const ACE_Service_Gestalt* repo, - const ACE_ANTI_TCHAR *name, bool no_global); -#endif // ACE_USES_WCHAR - -private: - ACE_UNIMPLEMENTED_FUNC (ACE_Dynamic_Service ()) - ACE_UNIMPLEMENTED_FUNC (ACE_Dynamic_Service (const ACE_Dynamic_Service&)) - ACE_UNIMPLEMENTED_FUNC (ACE_Dynamic_Service& operator= (const ACE_Dynamic_Service&)) -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Dynamic_Service.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -# include "ace/Dynamic_Service.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -# pragma implementation ("Dynamic_Service.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* ACE_DYNAMIC_SERVICE_H */ diff --git a/ACE/ace/Dynamic_Service.inl b/ACE/ace/Dynamic_Service.inl deleted file mode 100644 index 48978c595ed..00000000000 --- a/ACE/ace/Dynamic_Service.inl +++ /dev/null @@ -1,40 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_USES_WCHAR) - -template ACE_INLINE TYPE * -ACE_Dynamic_Service::instance (const ACE_ANTI_TCHAR *name) -{ - return instance (ACE_TEXT_CHAR_TO_TCHAR (name),false); -} - -template ACE_INLINE TYPE * -ACE_Dynamic_Service::instance (const ACE_ANTI_TCHAR *name, - bool no_global) -{ - return instance (ACE_TEXT_CHAR_TO_TCHAR (name),no_global); -} - -template ACE_INLINE TYPE * -ACE_Dynamic_Service::instance (const ACE_Service_Gestalt* repo, - const ACE_ANTI_TCHAR *name) -{ - return instance (repo, ACE_TEXT_CHAR_TO_TCHAR (name),false); -} - -template ACE_INLINE TYPE * -ACE_Dynamic_Service::instance (const ACE_Service_Gestalt* repo, - const ACE_ANTI_TCHAR *name, - bool no_global) -{ - return instance (repo, ACE_TEXT_CHAR_TO_TCHAR (name),no_global); -} - - -#endif // ACE_USES_WCHAR - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dynamic_Service_Base.cpp b/ACE/ace/Dynamic_Service_Base.cpp deleted file mode 100644 index e93dde6e905..00000000000 --- a/ACE/ace/Dynamic_Service_Base.cpp +++ /dev/null @@ -1,101 +0,0 @@ -#include "ace/Dynamic_Service_Base.h" -#include "ace/ACE.h" -#include "ace/Service_Config.h" -#include "ace/Service_Repository.h" -#include "ace/Service_Types.h" -#include "ace/Log_Msg.h" - - -ACE_RCSID (ace, - Dynamic_Service_Base, - "$Id$") - - ACE_BEGIN_VERSIONED_NAMESPACE_DECL - - -void -ACE_Dynamic_Service_Base::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Dynamic_Service_Base::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// Get the instance using for the current global -// service configuration repository. - -void * -ACE_Dynamic_Service_Base::instance (const ACE_TCHAR *name, bool no_global) -{ - ACE_TRACE ("ACE_Dynamic_Service_Base::instance"); - return instance (ACE_Service_Config::current (), name, no_global); -} - -// Find a service registration - -const ACE_Service_Type * -ACE_Dynamic_Service_Base::find_i (const ACE_Service_Gestalt* &repo, - const ACE_TCHAR *name, - bool no_global) -{ - ACE_TRACE ("ACE_Dynamic_Service_Base::find_i"); - const ACE_Service_Type *svc_rec = 0; - - ACE_Service_Gestalt* global = ACE_Service_Config::global (); - - for ( ; (repo->find (name, &svc_rec) == -1) && !no_global; repo = global) - { - // Check the static repo, too if different - if (repo == global) - break; - } - - return svc_rec; -} - - -// Get the instance using for specific configuration repository. -void * -ACE_Dynamic_Service_Base::instance (const ACE_Service_Gestalt* repo, - const ACE_TCHAR *name, - bool no_global) -{ - ACE_TRACE ("ACE_Dynamic_Service_Base::instance"); - - void *obj = 0; - const ACE_Service_Type_Impl *type = 0; - - const ACE_Service_Gestalt* repo_found = repo; - const ACE_Service_Type *svc_rec = find_i (repo_found, name, no_global); - if (svc_rec != 0) - { - type = svc_rec->type (); - if (type != 0) - obj = type->object (); - } - - if (ACE::debug ()) - { - ACE_Guard log_guard (*ACE_Log_Msg::instance ()); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE (%P|%t) DSB::instance, repo=%@, name=%s") - ACE_TEXT (" type=%@ => %@"), - repo->repo_, name, type, obj)); - - if (repo->repo_ != repo_found->repo_) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" [in repo=%@]\n"), - repo_found->repo_)); - else - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); - } - - return obj; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dynamic_Service_Base.h b/ACE/ace/Dynamic_Service_Base.h deleted file mode 100644 index 7a039a1a6b2..00000000000 --- a/ACE/ace/Dynamic_Service_Base.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Dynamic_Service_Base.h - * - * $Id$ - * - * @author Prashant Jain - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_DYNAMIC_SERVICE_BASE_H -#define ACE_DYNAMIC_SERVICE_BASE_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Service_Gestalt; -class ACE_Service_Type; - -/** - * @class ACE_Dynamic_Service_Base - * - * @brief Base class for all ACE_Dynamic_Service instantiations. - * - * Factors out common code shared by all ACE_Dynamic_Service - * instantiations, this avoid code bloat. - */ -class ACE_Export ACE_Dynamic_Service_Base -{ - -public: - /// Dump the current static of the object - void dump (void) const; - -protected: - /// Perform the default repo search, but optionally skip searching the global - /// repo. - static void* instance (const ACE_TCHAR *name, bool no_global = false); - - static void* instance (const ACE_Service_Gestalt* repo, - const ACE_TCHAR *name, - bool no_global = false); - - /// No need to create, or assign instances of this class - ACE_Dynamic_Service_Base (void); - ~ACE_Dynamic_Service_Base (void); - const ACE_Dynamic_Service_Base& operator= (const ACE_Dynamic_Service_Base&); - -private: - /// Implement the service search policy, i.e. "look for the service first - /// locally and then globally" - static const ACE_Service_Type *find_i (const ACE_Service_Gestalt* &repo, - const ACE_TCHAR *name, - bool no_global); - - /// The dependency declaration class needs access to the service search - /// policy, implemented by find_i() - friend class ACE_Dynamic_Service_Dependency; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* ACE_DYNAMIC_SERVICE_BASE_H */ diff --git a/ACE/ace/Dynamic_Service_Dependency.cpp b/ACE/ace/Dynamic_Service_Dependency.cpp deleted file mode 100644 index f2a9b45d61c..00000000000 --- a/ACE/ace/Dynamic_Service_Dependency.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#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_Dynamic_Service_Dependency::ACE_Dynamic_Service_Dependency (const ACE_TCHAR *principal) -{ - this->init (ACE_Service_Config::current (), principal); -} - -ACE_Dynamic_Service_Dependency::ACE_Dynamic_Service_Dependency (const ACE_Service_Gestalt *cfg, - const ACE_TCHAR *principal) -{ - this->init (cfg, principal); -} - - -ACE_Dynamic_Service_Dependency::~ACE_Dynamic_Service_Dependency (void) -{ - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%P|%t) DSD, this=%@ - destroying\n"), - this)); -} - -void -ACE_Dynamic_Service_Dependency::init (const ACE_Service_Gestalt *cfg, - const ACE_TCHAR *principal) -{ - const ACE_Service_Type* st = - ACE_Dynamic_Service_Base::find_i (cfg, principal,false); - if (ACE::debug ()) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%P|%t) DSD, this=%@ - creating dependency on "), this)); - st->dump (); - } - this->tracker_ = st->dll (); -} - - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Dynamic_Service_Dependency.h b/ACE/ace/Dynamic_Service_Dependency.h deleted file mode 100644 index 3eb4e0df7c7..00000000000 --- a/ACE/ace/Dynamic_Service_Dependency.h +++ /dev/null @@ -1,70 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Dynamic_Service_Dependency.h - * - * $Id$ - * - * @author Iliyan Jeliazkov - */ -//============================================================================= - -#ifndef ACE_DYNAMIC_SERVICE_DEPENDENCY_H -#define ACE_DYNAMIC_SERVICE_DEPENDENCY_H - -#include /**/ "ace/pre.h" - - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Dynamic_Service_Base.h" -#include "ace/Service_Object.h" -#include "ace/DLL.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Dynamic_Service_Dependency - * - * @brief Provides a way to declare dependency on specific service, - * thus helping to avoid order of initialization issues with instances - * of an objects whose implementation code resides in dynamically loaded - * services. - * - * It is disastrous to have dynamically loadable services create and give away - * ownership of objects and then ending up being unloaded before all those - * instances have been deleted. Normally the code for such objects classes - * resides within the TEXT segment of the DLL, which implements the service. - * If a service gets removed, its DLL may be unmapped from memory and then - * any attempt to invoke a method on the said objects will cause SEGV. - * - * Such instances must contain a member of ACE_Dynamic_Service_Dependency - * initialized with the service they depend on. - * ACE_Dynamic_Service_Dependency's constructor and destructor are - * "magical" - they work by maintaining the underlying dynamic service's - * DLL reference count. - */ -class ACE_Export ACE_Dynamic_Service_Dependency -{ -public: - ACE_Dynamic_Service_Dependency (const ACE_Service_Gestalt *cfg, - const ACE_TCHAR *principal); - ACE_Dynamic_Service_Dependency (const ACE_TCHAR *principal); - ~ACE_Dynamic_Service_Dependency (void); - -private: - void init (const ACE_Service_Gestalt *cfg, const ACE_TCHAR *principal); - -private: - ACE_DLL tracker_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - - -#include /**/ "ace/post.h" - -#endif /* ACE_DYNAMIC_SERVICE_DEPENDENCY_H */ diff --git a/ACE/ace/Encoding_Converter.cpp b/ACE/ace/Encoding_Converter.cpp deleted file mode 100644 index 60e561ea534..00000000000 --- a/ACE/ace/Encoding_Converter.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ -#include "ace/Encoding_Converter.h" - -#if defined (ACE_USES_WCHAR) -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Encoding_Converter::~ACE_Encoding_Converter (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL -#endif /* ACE_USES_WCHAR */ diff --git a/ACE/ace/Encoding_Converter.h b/ACE/ace/Encoding_Converter.h deleted file mode 100644 index 7d5bd39b512..00000000000 --- a/ACE/ace/Encoding_Converter.h +++ /dev/null @@ -1,70 +0,0 @@ -// -*- C++ -*- - -//========================================================================= -/** - * @file Encoding_Converter.h - * - * $Id$ - * - * This class is the base class for all encoding converters that convert - * to and from UTF-8. - * - * @author Chad Elliott - */ -//========================================================================= - -#ifndef ACE_ENCODING_CONVERTER_H -#define ACE_ENCODING_CONVERTER_H - -#include /**/ "ace/pre.h" - -#include "ace/Basic_Types.h" - -#if defined (ACE_USES_WCHAR) -#include /**/ "ace/ACE_export.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** The base class for all ACE UTF Encoding Converters. - * This class provides a generic interface that is used to implement - * various UTF encoding conversion classes. - */ -class ACE_Export ACE_Encoding_Converter -{ -public: - /// This enum describes the various states that can be returned - /// from the to_utf8() and from_utf8() methods which depends on - /// both the source buffer and the size of the target buffer. - enum Result {CONVERSION_OK, - SOURCE_EXHAUSTED, - TARGET_EXHAUSTED, - SOURCE_ILLEGAL - }; - - /// This destructor is here (and virtual) because we have virtual - /// functions. - virtual ~ACE_Encoding_Converter (void); - - /// Convert the source (which can be in any encoding) to UTF-8 and - /// store it in the provided target buffer. - virtual Result to_utf8 (const void* source, - size_t source_size, - ACE_Byte* target, - size_t target_size, - bool strict = true) = 0; - - /// Convert the UTF-8 source into an alternate encoding and store it - /// in the provided target buffer. - virtual Result from_utf8 (const ACE_Byte* source, - size_t source_size, - void* target, - size_t target_size, - bool strict = true) = 0; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL -#endif /* ACE_USES_WCHAR */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ENCODING_CONVERTER_H */ diff --git a/ACE/ace/Encoding_Converter_Factory.cpp b/ACE/ace/Encoding_Converter_Factory.cpp deleted file mode 100644 index 8cf1ed22c3f..00000000000 --- a/ACE/ace/Encoding_Converter_Factory.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// $Id$ -#include "ace/Encoding_Converter_Factory.h" - -#if defined (ACE_USES_WCHAR) -#include "ace/UTF32_Encoding_Converter.h" -#include "ace/UTF16_Encoding_Converter.h" -#include "ace/UTF8_Encoding_Converter.h" -#include "ace/OS_Memory.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Encoding_Converter* -ACE_Encoding_Converter_Factory::create ( - const ACE_Byte* source, - size_t source_size, - ACE_Encoding_Converter_Factory::Encoding_Hint hint) -{ -#if defined (ACE_BIG_ENDIAN) - bool const convert_for_bigendian = true; -#else - bool const convert_for_bigendian = false; -#endif /* ACE_BIG_ENDIAN */ - ACE_Encoding_Converter* converter = 0; - - switch (hint) - { - case ACE_UTF_32BE: - ACE_NEW_RETURN (converter, - ACE_UTF32_Encoding_Converter (!convert_for_bigendian), - 0); - break; - case ACE_UTF_32LE: - ACE_NEW_RETURN (converter, - ACE_UTF32_Encoding_Converter (convert_for_bigendian), - 0); - break; - case ACE_UTF_16BE: - ACE_NEW_RETURN (converter, - ACE_UTF16_Encoding_Converter (!convert_for_bigendian), - 0); - break; - case ACE_UTF_16LE: - ACE_NEW_RETURN (converter, - ACE_UTF16_Encoding_Converter (convert_for_bigendian), - 0); - break; - case ACE_UTF_8: - ACE_NEW_RETURN (converter, - ACE_UTF8_Encoding_Converter, - 0); - break; - default: - // First check for ASCII since much of ASCII text will appear to - // convert from UTF-16 to UTF-8. - converter = ACE_UTF8_Encoding_Converter::encoded (source, source_size); - if (converter != 0) - return converter; - - // Check for UTF-32 - converter = ACE_UTF32_Encoding_Converter::encoded (source, source_size); - if (converter != 0) - return converter; - - // Check for UTF-16 - converter = ACE_UTF16_Encoding_Converter::encoded (source, source_size); - if (converter != 0) - return converter; - } - - return converter; -} - -ACE_END_VERSIONED_NAMESPACE_DECL -#endif /* ACE_USES_WCHAR */ diff --git a/ACE/ace/Encoding_Converter_Factory.h b/ACE/ace/Encoding_Converter_Factory.h deleted file mode 100644 index 11ec541ebae..00000000000 --- a/ACE/ace/Encoding_Converter_Factory.h +++ /dev/null @@ -1,54 +0,0 @@ -// -*- C++ -*- - -//========================================================================= -/** - * @file Encoding_Converter_Factory.h - * - * $Id$ - * - * This class can be used to create encoding converters of various types. - * - * @author Chad Elliott - */ -//========================================================================= - -#ifndef ACE_ENCODING_CONVERTER_FACTORY_H -#define ACE_ENCODING_CONVERTER_FACTORY_H - -#include /**/ "ace/pre.h" - -#include "ace/Basic_Types.h" - -#if defined (ACE_USES_WCHAR) -#include /**/ "ace/ACE_export.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Encoding_Converter; - -/** Create an encoding converter based on the source or hint. - * This class allows users to avoid knowing any concrete converter types. - */ -class ACE_Export ACE_Encoding_Converter_Factory -{ -public: - /// This enum is used to tell what type of converter to create. - enum Encoding_Hint { ACE_UTF_32BE, ACE_UTF_32LE, - ACE_UTF_16BE, ACE_UTF_16LE, - ACE_UTF_8, ACE_NONE - }; - - /// Create an encoding converter based on the source. If a hint is - /// given, it just creates the specified type of converter without looking - /// at the source. - static ACE_Encoding_Converter* create (const ACE_Byte* source, - size_t source_size, - Encoding_Hint hint = ACE_NONE); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL -#endif /* ACE_USES_WCHAR */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ENCODING_CONVERTER_FACTORY_H */ diff --git a/ACE/ace/Env_Value_T.cpp b/ACE/ace/Env_Value_T.cpp deleted file mode 100644 index 788bf125fc5..00000000000 --- a/ACE/ace/Env_Value_T.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#ifndef ACE_ENV_VALUE_T_CPP -#define ACE_ENV_VALUE_T_CPP - -#include "ace/Env_Value_T.h" - -#if ! defined (__ACE_INLINE__) -#include "ace/Env_Value_T.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_ENV_VALUE_T_CPP */ diff --git a/ACE/ace/Env_Value_T.h b/ACE/ace/Env_Value_T.h deleted file mode 100644 index 01f4fcc5e8d..00000000000 --- a/ACE/ace/Env_Value_T.h +++ /dev/null @@ -1,166 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Env_Value_T.h - * - * $Id$ - * - * Template to encapsulate getting a value from an environment variable - * and using a supplied default value if not in the environment. - * - * - * @author Chris Cleeland (derived from work by Carlos O'Ryan) - */ -//============================================================================= - -#ifndef ACE_ENV_VALUE_T_H -#define ACE_ENV_VALUE_T_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" -#include "ace/Global_Macros.h" -#include "ace/OS_NS_stdlib.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Env_Value - * - * @brief Environment Variable Value - * - * Reads a variable from the user environment, providing a default - * value. - */ -template -class ACE_Env_Value -{ -public: - /** - * Default constructor which isn't bound to a specific environment - * variable name or a default value. Before being useful it must - * 'd. - */ - ACE_Env_Value (void); - - /// Constructor that calls . - ACE_Env_Value (const ACE_TCHAR *varname, - const T &vardefault); - - /// Destroy the value. - ~ACE_Env_Value (void); - - /// Returns the value as type T. - operator T (void); - - /// The constructor, read @a varname from the environment, using - /// @a defval as its value if it is not defined. - void open (const ACE_TCHAR *varname, const T &defval); - - /// Returns the name of the variable being tracked. - const ACE_TCHAR *varname (void) const; - -private: - /// Disallow copying and assignment. - ACE_UNIMPLEMENTED_FUNC (ACE_Env_Value(const ACE_Env_Value &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Env_Value operator=(const ACE_Env_Value &)) - - void fetch_value (void); - - const ACE_TCHAR *varname_; - T value_; -}; - -/// Function to convert a string @a s into type @c T. -template void ACE_Convert (const ACE_TCHAR *s, T &t); - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Env_Value_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Env_Value_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template <> inline void -ACE_Convert (const ACE_TCHAR *s, ACE_TCHAR *&v) -{ - v = (ACE_TCHAR *) s; -} - -template <> inline void -ACE_Convert (const ACE_TCHAR *s, const ACE_TCHAR *&v) -{ - v = (const ACE_TCHAR *) s; -} - -template <> inline void -ACE_Convert (const ACE_TCHAR *s, short &si) -{ - si = static_cast (ACE_OS::strtol (s, 0, 10)); -} - -template <> inline void -ACE_Convert (const ACE_TCHAR *s, u_short &us) -{ - us = static_cast (ACE_OS::strtol (s, 0, 10)); -} - -template <> inline void -ACE_Convert (const ACE_TCHAR *s, u_int &i) -{ - i = static_cast (ACE_OS::strtol (s, 0, 10)); -} - -template <> inline void -ACE_Convert (const ACE_TCHAR *s, long &l) -{ - l = ACE_OS::strtol (s, 0, 10); -} - -template <> inline void -ACE_Convert (const ACE_TCHAR *s, int &i) -{ - i = static_cast (ACE_OS::strtol (s, 0, 10)); -} - -template <> inline void -ACE_Convert (const ACE_TCHAR *s, u_long &ul) -{ - ul = ACE_OS::strtoul (s, 0, 10); -} - -template <> inline void -ACE_Convert (const ACE_TCHAR *s, double &d) -{ - d = ACE_OS::strtod (s, 0); -} - -// Default calls a CTOR on type T of the form 'T::T(const char*)', but -// users can feel free to create their own specialized conversion -// functions if necessary, as shown above. Note that for 'char*' the -// default is used because a simple cast will be performed and no -// conversion will be necessary. -template inline void -ACE_Convert (const ACE_TCHAR *s, T &t) -{ - t = T (s); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Env_Value_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_ENV_VALUE_T_H */ diff --git a/ACE/ace/Env_Value_T.inl b/ACE/ace/Env_Value_T.inl deleted file mode 100644 index 63fe8df1f29..00000000000 --- a/ACE/ace/Env_Value_T.inl +++ /dev/null @@ -1,60 +0,0 @@ -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE -ACE_Env_Value::operator T (void) -{ - return value_; -} - -template ACE_INLINE -ACE_Env_Value::ACE_Env_Value (void) - : varname_ (0) -{ -} - -template ACE_INLINE -ACE_Env_Value::ACE_Env_Value (const ACE_TCHAR *varname, - const T &defval) - : varname_ (varname), - value_(defval) -{ - this->fetch_value (); -} - -template ACE_INLINE void -ACE_Env_Value::open (const ACE_TCHAR *varname, - const T &defval) -{ - this->varname_ = varname; - this->value_ = defval; - this->fetch_value (); -} - -template ACE_INLINE void -ACE_Env_Value::fetch_value (void) -{ -#if defined (ACE_WIN32) - const ACE_TCHAR *env = ACE_OS::getenv (this->varname_); - if (env != 0) - ACE_Convert (env, value_); -#else - char *nenv = ACE_OS::getenv (ACE_TEXT_ALWAYS_CHAR (this->varname_)); - if (nenv != 0) - ACE_Convert (ACE_TEXT_CHAR_TO_TCHAR (nenv), this->value_); -#endif -} - -template ACE_INLINE const ACE_TCHAR* -ACE_Env_Value::varname (void) const -{ - return this->varname_; -} - -template ACE_INLINE -ACE_Env_Value::~ACE_Env_Value (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Event.cpp b/ACE/ace/Event.cpp deleted file mode 100644 index e185ec37117..00000000000 --- a/ACE/ace/Event.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// $Id$ - -#include "ace/Event.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Event.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Log_Msg.h" - -ACE_RCSID(ace, Event, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Event::ACE_Event (int manual_reset, - int initial_state, - int type, - const ACE_TCHAR *name, - void *arg, - LPSECURITY_ATTRIBUTES sa) - : removed_ (false) -{ - if (ACE_OS::event_init (&this->handle_, - manual_reset, - initial_state, - type, - name, - arg, - sa) != 0) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Event::ACE_Event"))); -} - -ACE_Event::~ACE_Event (void) -{ - this->remove (); -} - -int -ACE_Event::remove (void) -{ - int result = 0; - if (!this->removed_) - { - this->removed_ = true; - result = ACE_OS::event_destroy (&this->handle_); - } - return result; -} - -int -ACE_Event::wait (void) -{ - return ACE_OS::event_wait (&this->handle_); -} - -int -ACE_Event::wait (const ACE_Time_Value *abstime, int use_absolute_time) -{ - return ACE_OS::event_timedwait (&this->handle_, - const_cast (abstime), - use_absolute_time); -} - -int -ACE_Event::signal (void) -{ - return ACE_OS::event_signal (&this->handle_); -} - -int -ACE_Event::pulse (void) -{ - return ACE_OS::event_pulse (&this->handle_); -} - -int -ACE_Event::reset (void) -{ - return ACE_OS::event_reset (&this->handle_); -} - -void -ACE_Event::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 diff --git a/ACE/ace/Event.h b/ACE/ace/Event.h deleted file mode 100644 index 177c0039df1..00000000000 --- a/ACE/ace/Event.h +++ /dev/null @@ -1,143 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Event.h - * - * $Id$ - * - * Moved from Synch.h. - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_EVENT_H -#define ACE_EVENT_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_Thread.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Event - * - * @brief A wrapper around the Win32 event locking mechanism. - * - * Portable implementation of an Event mechanism, which is native to - * Win32, but must be emulated on UNIX. All platforms support - * process-scope locking support. However, only Win32 platforms - * support global naming and system-scope locking support. - */ -class ACE_Export ACE_Event -{ -public: - /// Constructor that creates event. - ACE_Event (int manual_reset = 0, - int initial_state = 0, - int type = USYNC_THREAD, - const ACE_TCHAR *name = 0, - void *arg = 0, - LPSECURITY_ATTRIBUTES sa = 0); - - /// Implicitly destroy the event variable. - ~ACE_Event (void); - - /** - * Explicitly destroy the event variable. Note that only one thread - * should call this method since it doesn't protect against race - * conditions. - */ - int remove (void); - - /// Underlying handle to event. - ACE_event_t handle (void) const; - - /** - * Set the underlying handle to event. Note that this method assumes - * ownership of the and will close it down in . If - * you want the to stay open when is called make - * sure to call on the before closing it. You are - * responsible for the closing the existing before - * overwriting it. - */ - void handle (ACE_event_t new_handle); - - /** - * if MANUAL reset - * sleep till the event becomes signaled - * event remains signaled after wait() completes. - * else AUTO reset - * sleep till the event becomes signaled - * event resets wait() completes. - */ - int wait (void); - - /// Same as wait() above, but this one can be timed - /// @a abstime is absolute time-of-day if if @a use_absolute_time - /// is non-0, else it is relative time. - int wait (const ACE_Time_Value *abstime, - int use_absolute_time = 1); - - /** - * if MANUAL reset - * wake up all waiting threads - * set to signaled state - * else AUTO reset - * if no thread is waiting, set to signaled state - * if thread(s) are waiting, wake up one waiting thread and - * reset event - */ - int signal (void); - - /** - * if MANUAL reset - * wakeup all waiting threads and - * reset event - * else AUTO reset - * wakeup one waiting thread (if present) and - * reset event - */ - int pulse (void); - - /// Set to nonsignaled state. - int reset (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// The underlying handle. - ACE_event_t handle_; - - /// Keeps track of whether has been called yet to avoid - /// multiple 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 - /// on the same object, which is a bad idea anyway... - bool removed_; - -private: - // = Prevent copying. - ACE_Event (const ACE_Event& event); - const ACE_Event &operator= (const ACE_Event &rhs); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Event.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_EVENT_H */ diff --git a/ACE/ace/Event.inl b/ACE/ace/Event.inl deleted file mode 100644 index 188d7c202cf..00000000000 --- a/ACE/ace/Event.inl +++ /dev/null @@ -1,18 +0,0 @@ -// -*- C++ -*- -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE ACE_event_t -ACE_Event::handle (void) const -{ - return this->handle_; -} - -ACE_INLINE void -ACE_Event::handle (ACE_event_t new_handle) -{ - this->handle_ = new_handle; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Event_Handler.cpp b/ACE/ace/Event_Handler.cpp deleted file mode 100644 index d4542b61349..00000000000 --- a/ACE/ace/Event_Handler.cpp +++ /dev/null @@ -1,396 +0,0 @@ -// Event_Handler.cpp -// $Id$ - -#include "ace/Event_Handler.h" -#include "ace/OS_Errno.h" -#include "ace/Reactor.h" -#include "ace/Thread_Manager.h" -/* Need to see if ACE_HAS_BUILTIN_ATOMIC_OP defined */ -#include "ace/Atomic_Op.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Event_Handler.inl" -#endif /* __ACE_INLINE__ */ - -#include - -ACE_RCSID(ace, Event_Handler, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Implement conceptually abstract virtual functions in the base class -// so derived classes don't have to implement unused ones. - -ACE_Event_Handler::ACE_Event_Handler (ACE_Reactor *r, - int p) - : reference_count_ (1), - priority_ (p), - reactor_ (r), - reference_counting_policy_ (Reference_Counting_Policy::DISABLED) -{ - // ACE_TRACE ("ACE_Event_Handler::ACE_Event_Handler"); -} - -ACE_Event_Handler::~ACE_Event_Handler (void) -{ - // ACE_TRACE ("ACE_Event_Handler::~ACE_Event_Handler"); -} - -// Gets the file descriptor associated with this I/O device. - -ACE_HANDLE -ACE_Event_Handler::get_handle (void) const -{ - ACE_TRACE ("ACE_Event_Handler::get_handle"); - return ACE_INVALID_HANDLE; -} - -// Sets the file descriptor associated with this I/O device. - -void -ACE_Event_Handler::set_handle (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Event_Handler::set_handle"); -} - -// Gets the priority of this handler. - -int -ACE_Event_Handler::priority (void) const -{ - ACE_TRACE ("ACE_Event_Handler::priority"); - return this->priority_; -} - -// Sets the priority - -void -ACE_Event_Handler::priority (int priority) -{ - ACE_TRACE ("ACE_Event_Handler::priority"); - this->priority_ = priority; -} - -// Called when the object is about to be removed from the Dispatcher -// tables. - -int -ACE_Event_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_TRACE ("ACE_Event_Handler::handle_close"); - return -1; -} - -// Called when input becomes available on fd. - -int -ACE_Event_Handler::handle_input (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Event_Handler::handle_input"); - return -1; -} - -// Called when output is possible on fd. - -int -ACE_Event_Handler::handle_output (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Event_Handler::handle_output"); - return -1; -} - -// Called when urgent data is available on fd. - -int -ACE_Event_Handler::handle_exception (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Event_Handler::handle_exception"); - return -1; -} - -// Called when timer expires, TV stores the current time. - -int -ACE_Event_Handler::handle_timeout (const ACE_Time_Value &, const void *) -{ - ACE_TRACE ("ACE_Event_Handler::handle_timeout"); - return -1; -} - -// Called when a monitored Process exits - -int -ACE_Event_Handler::handle_exit (ACE_Process *) -{ - ACE_TRACE ("ACE_Event_Handler::handle_exit"); - return -1; -} - -// Called when a registered signal occurs. - -int -ACE_Event_Handler::handle_signal (int, siginfo_t *, ucontext_t *) -{ - ACE_TRACE ("ACE_Event_Handler::handle_signal"); - return -1; -} - -int -ACE_Event_Handler::resume_handler (void) -{ - ACE_TRACE ("ACE_Event_Handler::resume_handler"); - - // Return a default value and allow the reactor to take care of - // resuming the handler - return ACE_Event_Handler::ACE_REACTOR_RESUMES_HANDLER; -} - - -int -ACE_Event_Handler::handle_qos (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Event_Handler::handle_qos"); - return -1; -} - -int -ACE_Event_Handler::handle_group_qos (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Event_Handler::handle_group_qos"); - return -1; -} - -void -ACE_Event_Handler::reactor (ACE_Reactor *reactor) -{ - ACE_TRACE ("ACE_Event_Handler::reactor"); - this->reactor_ = reactor; -} - -ACE_Reactor * -ACE_Event_Handler::reactor (void) const -{ - ACE_TRACE ("ACE_Event_Handler::reactor"); - return this->reactor_; -} - -ACE_Reactor_Timer_Interface * -ACE_Event_Handler::reactor_timer_interface (void) const -{ - ACE_TRACE ("ACE_Event_Handler::reactor_timer_interface"); - return this->reactor_; -} - -ACE_Event_Handler::Reference_Count -ACE_Event_Handler::add_reference (void) -{ - bool const reference_counting_required = - this->reference_counting_policy ().value () == - ACE_Event_Handler::Reference_Counting_Policy::ENABLED; - - if (reference_counting_required) - return ++this->reference_count_; - else - return 1; -} - -ACE_Event_Handler::Reference_Count -ACE_Event_Handler::remove_reference (void) -{ - bool const reference_counting_required = - this->reference_counting_policy ().value () == - ACE_Event_Handler::Reference_Counting_Policy::ENABLED; - - if (reference_counting_required) - { - Reference_Count result = - --this->reference_count_; - - if (result == 0) - delete this; - - return result; - } - else - { - return 1; - } -} - -ACE_Event_Handler::Policy::~Policy (void) -{ -} - -ACE_Event_Handler::Reference_Counting_Policy::Reference_Counting_Policy (Reference_Counting_Policy::Value value) - : value_ (value) -{ -} - -ACE_Event_Handler::Reference_Counting_Policy::Value -ACE_Event_Handler::Reference_Counting_Policy::value (void) const -{ - return this->value_; -} - -void -ACE_Event_Handler::Reference_Counting_Policy::value (ACE_Event_Handler::Reference_Counting_Policy::Value value) -{ - this->value_ = value; -} - -ACE_Event_Handler::Reference_Counting_Policy & -ACE_Event_Handler::reference_counting_policy (void) -{ - return this->reference_counting_policy_; -} - -//#if !defined (ACE_HAS_WINCE) - -ACE_THR_FUNC_RETURN -ACE_Event_Handler::read_adapter (void *args) -{ - ACE_Event_Handler *this_ptr = static_cast (args); - ACE_Reactor *r = this_ptr->reactor (); - - while (this_ptr->handle_input (ACE_STDIN) != -1) - continue; - - this_ptr->handle_close (ACE_STDIN, ACE_Event_Handler::READ_MASK); - // It's possible for handle_close() to "delete this" so we need to - // cache the reactor pointer and use it here. - r->notify (); - - return 0; -} - -int -ACE_Event_Handler::register_stdin_handler (ACE_Event_Handler *eh, - ACE_Reactor *reactor, - ACE_Thread_Manager *thr_mgr, - int flags) -{ -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (reactor); - - eh->reactor (reactor); - return thr_mgr->spawn (&read_adapter, static_cast (eh), flags); -#else - // Keep compilers happy. - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (thr_mgr); - return reactor->register_handler (ACE_STDIN, - eh, - ACE_Event_Handler::READ_MASK); -#endif /* ACE_WIN32 */ -} - -int -ACE_Event_Handler::remove_stdin_handler (ACE_Reactor *reactor, - ACE_Thread_Manager * /* thr_mgr */) -{ -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (reactor); - - // What should we do here? - ACE_NOTSUP_RETURN (-1); -#else - return reactor->remove_handler (ACE_STDIN, - ACE_Event_Handler::READ_MASK); -#endif /* ACE_WIN32 */ -} - -//#endif /* ACE_HAS_WINCE */ - -// --------------------------------------------------------------------- - -ACE_Event_Handler_var::ACE_Event_Handler_var (void) - : ptr_ (0) -{ -} - -ACE_Event_Handler_var::ACE_Event_Handler_var (ACE_Event_Handler *p) - : ptr_ (p) -{ -} - -ACE_Event_Handler_var::ACE_Event_Handler_var (const ACE_Event_Handler_var &b) - : ptr_ (b.ptr_) -{ - if (this->ptr_ != 0) - { - this->ptr_->add_reference (); - } -} - -ACE_Event_Handler_var::~ACE_Event_Handler_var (void) -{ - if (this->ptr_ != 0) - { - ACE_Errno_Guard eguard (errno); - this->ptr_->remove_reference (); - } -} - -ACE_Event_Handler_var & -ACE_Event_Handler_var::operator= (ACE_Event_Handler *p) -{ - if (this->ptr_ != p) - { - ACE_Event_Handler_var tmp (p); - std::swap (this->ptr_, tmp.ptr_); - } - - return *this; -} - -ACE_Event_Handler_var & -ACE_Event_Handler_var::operator= (const ACE_Event_Handler_var &b) -{ - ACE_Event_Handler_var tmp (b); - std::swap (this->ptr_, tmp.ptr_); - - return *this; -} - -ACE_Event_Handler * -ACE_Event_Handler_var::operator->() const -{ - return this->ptr_; -} - -ACE_Event_Handler * -ACE_Event_Handler_var::handler (void) const -{ - return this->ptr_; -} - -ACE_Event_Handler * -ACE_Event_Handler_var::release (void) -{ - ACE_Event_Handler * const old = this->ptr_; - this->ptr_ = 0; - return old; -} - -void -ACE_Event_Handler_var::reset (ACE_Event_Handler *p) -{ - *this = p; -} - -// --------------------------------------------------------------------- - -ACE_Notification_Buffer::ACE_Notification_Buffer (void) -{ - ACE_TRACE ("ACE_Notification_Buffer::ACE_Notification_Buffer"); -} - -ACE_Notification_Buffer::ACE_Notification_Buffer (ACE_Event_Handler *eh, - ACE_Reactor_Mask mask) - : eh_ (eh), - mask_ (mask) -{ - ACE_TRACE ("ACE_Notification_Buffer::ACE_Notification_Buffer"); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Event_Handler.h b/ACE/ace/Event_Handler.h deleted file mode 100644 index 3ccaf1d1aa0..00000000000 --- a/ACE/ace/Event_Handler.h +++ /dev/null @@ -1,388 +0,0 @@ -/* -*- C++ -*- */ - -//========================================================================== -/** - * @file Event_Handler.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_EVENT_HANDLER_H -#define ACE_EVENT_HANDLER_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_include/os_signal.h" -#include "ace/Atomic_Op.h" -#include "ace/Synch_Traits.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declaration. -class ACE_Message_Block; -class ACE_Reactor; -class ACE_Reactor_Timer_Interface; -class ACE_Thread_Manager; -class ACE_Process; - -typedef unsigned long ACE_Reactor_Mask; - -/** - * @class ACE_Event_Handler - * - * @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, - * handle an exception raised on an I/O descriptor, handle a - * timer's expiration, or handle a signal. - */ -class ACE_Export ACE_Event_Handler -{ -public: - enum - { - LO_PRIORITY = 0, - HI_PRIORITY = 10, - NULL_MASK = 0, -#if defined (ACE_USE_POLL) - READ_MASK = POLLIN, - WRITE_MASK = POLLOUT, - EXCEPT_MASK = POLLPRI, -#else /* USE SELECT */ - READ_MASK = (1 << 0), - WRITE_MASK = (1 << 1), - EXCEPT_MASK = (1 << 2), -#endif /* ACE_USE_POLL */ - ACCEPT_MASK = (1 << 3), - CONNECT_MASK = (1 << 4), - TIMER_MASK = (1 << 5), - QOS_MASK = (1 << 6), - GROUP_QOS_MASK = (1 << 7), - SIGNAL_MASK = (1 << 8), - ALL_EVENTS_MASK = READ_MASK | - WRITE_MASK | - EXCEPT_MASK | - ACCEPT_MASK | - CONNECT_MASK | - TIMER_MASK | - QOS_MASK | - GROUP_QOS_MASK | - SIGNAL_MASK, - RWE_MASK = READ_MASK | - WRITE_MASK | - EXCEPT_MASK, - DONT_CALL = (1 << 9) - }; - - /// Destructor is virtual to enable proper cleanup. - virtual ~ACE_Event_Handler (void); - - /// Get the I/O handle. - virtual ACE_HANDLE get_handle (void) const; - - /// Set the I/O handle. - virtual void set_handle (ACE_HANDLE); - - // = 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. - virtual int priority (void) const; - - /// Set the priority of the Event_Handler. - virtual void priority (int priority); - - /// Called when input events occur (e.g., connection or data). - virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE); - - /// Called when output events are possible (e.g., when flow control - /// abates or non-blocking connection completes). - virtual int handle_output (ACE_HANDLE fd = ACE_INVALID_HANDLE); - - /// Called when an exceptional events occur (e.g., SIGURG). - virtual int handle_exception (ACE_HANDLE fd = ACE_INVALID_HANDLE); - - /** - * Called when timer expires. @a current_time represents the current - * time that the was selected for timeout - * dispatching and @a act is the asynchronous completion token that - * was passed in when was invoked. - */ - virtual int handle_timeout (const ACE_Time_Value ¤t_time, - const void *act = 0); - - /// Called when a process exits. - virtual int handle_exit (ACE_Process *); - - /// Called when a method returns -1 or when the - /// method is called on an ACE_Reactor. The - /// @a close_mask indicates which event has triggered the - /// method callback on a particular @a handle. - virtual int handle_close (ACE_HANDLE handle, - ACE_Reactor_Mask close_mask); - - /// Called when object is signaled by OS (either via UNIX signals or - /// when a Win32 object becomes signaled). - virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0); - - enum - { - /// The handler is not resumed at all. Could lead to deadlock.. - ACE_EVENT_HANDLER_NOT_RESUMED = -1, - /// The reactor takes responsibility of resuming the handler and - /// is the default - ACE_REACTOR_RESUMES_HANDLER = 0, - /// 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. - * - * @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. - */ - virtual int resume_handler (void); - - virtual int handle_qos (ACE_HANDLE = ACE_INVALID_HANDLE); - virtual int handle_group_qos (ACE_HANDLE = ACE_INVALID_HANDLE); - - // = Accessors to set/get the various event demultiplexors. - /// Set the event demultiplexors. - virtual void reactor (ACE_Reactor *reactor); - - /// Get the event demultiplexors. - virtual ACE_Reactor *reactor (void) const; - - /// Get only the reactor's timer related interface. - virtual ACE_Reactor_Timer_Interface *reactor_timer_interface (void) const; - - /** - * Used to read from non-socket ACE_HANDLEs in our own thread to - * work around Win32 limitations that don't allow us to 'able on - * Win32. - */ - static int register_stdin_handler (ACE_Event_Handler *eh, - ACE_Reactor *reactor, - ACE_Thread_Manager *thr_mgr, - int flags = THR_DETACHED); - - /// Performs the inverse of the method. - static int remove_stdin_handler (ACE_Reactor *reactor, - ACE_Thread_Manager *thr_mgr); - - /// Reference count type. - typedef long Reference_Count; - - /// Increment reference count on the handler. - /** - * This method is called when the handler is registered with the - * Reactor and when the Reactor makes an upcall on the handler. - * Reference count is 1 when the handler is created. - * - * @return Current reference count. - */ - virtual Reference_Count add_reference (void); - - /// Decrement reference count on the handler. - /** - * This method is called when the handler is removed from the - * Reactor and when an upcall made on the handler by the Reactor - * completes. Handler is deleted when the reference count reaches - * 0. - * - * @return Current reference count. - */ - virtual Reference_Count remove_reference (void); - - /** - * @class Policy - * - * @brief Base class for all handler policies. - */ - class ACE_Export Policy - { - - public: - - /// Virtual destructor. - virtual ~Policy (void); - }; - - /** - * @class Reference_Counting_Policy - * - * @brief This policy dictates the reference counting requirements - * for the handler. - * - * This policy allows applications to configure whether it wants the - * Reactor to call add_reference() and remove_reference() during - * registrations, removals, and upcalls. - * - * Default: DISABLED. - */ - class ACE_Export Reference_Counting_Policy : public Policy - { - /// This policy can only be created by the handler. - friend class ACE_Event_Handler; - - public: - - enum Value - { - /// Perform reference counting. - ENABLED, - /// Don't perform reference counting. - DISABLED - }; - - /// Current Reference_Counting_Policy. - Value value (void) const; - - /// Update Reference_Counting_Policy. - void value (Value value); - - private: - - /// Private constructor. - Reference_Counting_Policy (Value value); - - /// The value of the policy. - Value value_; - }; - - /// Current Reference_Counting_Policy. - Reference_Counting_Policy &reference_counting_policy (void); - -protected: - /// Force ACE_Event_Handler to be an abstract base class. - ACE_Event_Handler (ACE_Reactor * = 0, - int priority = ACE_Event_Handler::LO_PRIORITY); - - /// Typedef for implementation of reference counting. - typedef ACE_Atomic_Op Atomic_Reference_Count; - - /// Reference count. - Atomic_Reference_Count reference_count_; - -private: - - /// Priority of this Event_Handler. - int priority_; - - /// Pointer to the various event demultiplexors. - ACE_Reactor *reactor_; - - /// Reference counting requirements. - Reference_Counting_Policy reference_counting_policy_; -}; - -/** - * @class ACE_Event_Handler_var - * - * @brief Auto pointer like class for Event Handlers. - * - * Used to manage lifecycle of handlers. This class calls - * ACE_Event_Handler::remove_reference() in its destructor. - */ -class ACE_Export ACE_Event_Handler_var -{ - -public: - - /// Default constructor. - ACE_Event_Handler_var (void); - - /// Construct with a handler. - ACE_Event_Handler_var (ACE_Event_Handler *p); - - /// Copy constructor. - ACE_Event_Handler_var (const ACE_Event_Handler_var &b); - - /// Destructor. - ~ACE_Event_Handler_var (void); - - /// Assignment to a handler. - ACE_Event_Handler_var &operator= (ACE_Event_Handler *p); - - /// Assignment to a ACE_Event_Handler_var. - ACE_Event_Handler_var &operator= (const ACE_Event_Handler_var &b); - - /// Overloaded "->". - ACE_Event_Handler *operator-> () const; - - /// Access the handler. - ACE_Event_Handler *handler (void) const; - - /// Release the handler. - ACE_Event_Handler *release (void); - - /// Reset the handler. - void reset (ACE_Event_Handler *p = 0); - -private: - - /// Handler. - ACE_Event_Handler *ptr_; -}; - -/** - * @class ACE_Notification_Buffer - * - * @brief Simple wrapper for passing s and - * ACE_Reactor_Masks between threads. - */ -class ACE_Export ACE_Notification_Buffer -{ -public: - ACE_Notification_Buffer (void); - - ACE_Notification_Buffer (ACE_Event_Handler *eh, - ACE_Reactor_Mask mask); - - /// Default dtor. - ~ACE_Notification_Buffer (void); - - /// Pointer to the Event_Handler that will be dispatched - /// by the main event loop. - ACE_Event_Handler *eh_; - - /// Mask that indicates which method to call. - ACE_Reactor_Mask mask_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Event_Handler.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_EVENT_HANDLER_H */ diff --git a/ACE/ace/Event_Handler.inl b/ACE/ace/Event_Handler.inl deleted file mode 100644 index 75f2cd12aa5..00000000000 --- a/ACE/ace/Event_Handler.inl +++ /dev/null @@ -1,12 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Notification_Buffer::~ACE_Notification_Buffer (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Event_Handler_T.cpp b/ACE/ace/Event_Handler_T.cpp deleted file mode 100644 index 51a03f62310..00000000000 --- a/ACE/ace/Event_Handler_T.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// Event_Handler_T.cpp -// -// $Id$ - -#ifndef ACE_EVENT_HANDLER_T_CPP -#define ACE_EVENT_HANDLER_T_CPP - -#include "ace/Event_Handler_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# 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__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Event_Handler_T) - -template void -ACE_Event_Handler_T::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Event_Handler_T::dump"); -#endif /* ACE_HAS_DUMP */ -} - -template -ACE_Event_Handler_T::~ACE_Event_Handler_T (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::~ACE_Event_Handler_T"); - if (this->delete_handler_) - delete this->op_handler_; -} - -template -ACE_Event_Handler_T::ACE_Event_Handler_T (T *op_handler, int delete_handler, - GET_HANDLE get_handle, - IO_HANDLER input_h, - CL_HANDLER close_h, - SIG_HANDLER sig_h, - TO_HANDLER timeout_h, - IO_HANDLER output_h, - SET_HANDLE set_handle, - IO_HANDLER except_h) - : op_handler_ (op_handler), - input_handler_ (input_h), - output_handler_ (output_h), - except_handler_ (except_h), - to_handler_ (timeout_h), - cl_handler_ (close_h), - sig_handler_ (sig_h), - delete_handler_ (delete_handler), - set_handle_ (set_handle), - get_handle_ (get_handle) -{ - ACE_TRACE ("ACE_Event_Handler_T::ACE_Event_Handler_T"); -} - -template ACE_HANDLE -ACE_Event_Handler_T::get_handle (void) const -{ - ACE_TRACE ("ACE_Event_Handler_T::get_handle"); - return this->get_handle_ == 0 ? ACE_INVALID_HANDLE : (this->op_handler_->*get_handle_) (); -} - -template void -ACE_Event_Handler_T::set_handle (ACE_HANDLE h) -{ - ACE_TRACE ("ACE_Event_Handler_T::set_handle"); - if (this->set_handle_ != 0) - (this->op_handler_->*set_handle_) (h); -} - -template int -ACE_Event_Handler_T::handle_input (ACE_HANDLE fd) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_input"); - return this->input_handler_ == 0 ? 0 : (this->op_handler_->*input_handler_) (fd); -} - -template int -ACE_Event_Handler_T::handle_output (ACE_HANDLE fd) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_output"); - return this->output_handler_ == 0 ? 0 : (this->op_handler_->*output_handler_) (fd); -} - -template int -ACE_Event_Handler_T::handle_exception (ACE_HANDLE fd) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_exception"); - return this->except_handler_ == 0 ? 0 : (this->op_handler_->*except_handler_) (fd); -} - -template int -ACE_Event_Handler_T::handle_timeout (const ACE_Time_Value &tv, const void *arg) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_timeout"); - return this->to_handler_ == 0 ? 0 : (this->op_handler_->*to_handler_) (tv, arg); -} - -template int -ACE_Event_Handler_T::handle_close (ACE_HANDLE fd, ACE_Reactor_Mask close_mask) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_close"); - return this->cl_handler_ == 0 ? 0 : (this->op_handler_->*cl_handler_) (fd, close_mask); -} - -template int -ACE_Event_Handler_T::handle_signal (int signum, siginfo_t *s, ucontext_t *u) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_signal"); - return this->sig_handler_ == 0 ? 0 : (this->op_handler_->*sig_handler_) (signum, s, 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 deleted file mode 100644 index 71c97bcf4a8..00000000000 --- a/ACE/ace/Event_Handler_T.h +++ /dev/null @@ -1,191 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Event_Handler_T.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_EVENT_HANDLER_T_H -#define ACE_EVENT_HANDLER_T_H -#include /**/ "ace/pre.h" - -#include "ace/Event_Handler.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_TEMPLATE_TYPEDEFS) - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Event_Handler_T - * - * @brief Enable a class that doesn't inherit from the - * ACE_Event_Handler to be incorporated into the ACE_Reactor - * framework. Thanks to Greg Lavender (g.lavender@isode.com) - * for sharing this idea. - * - * It is sometimes the case that an application has a hierarchy - * of operation dispatcher classes that have their own - * inheritance hierarchy but also would like to integrate with - * the ACE_Reactor. Rather than adopt a "mixin" approach, it is - * often cleaner to define a template as a subclass of - * ACE_Event_Handler and paramterize it with an operation - * dispatcher type. - * When constructing an instantiation of the ACE_Event_Handler_T - * object, a set of pointers to member functions must be - * provided so that when one of the handle_* methods is called - * by the ACE_Reactor, the appropriate method is called on the - * underlying operations object. This is done since in some - * cases it is useful to map any event that happens to the same - * method on an object. - * The ACE_Event_Handler_T template is instantiated by an - * operations object and registered with the ACE_Reactor, and it - * then calls the appropriate op_handler. So, it's basically - * just another level of indirection in event dispatching. The - * coupling betweent the ultimate handler of the event and the - * ACE_Event_Handler class is relaxed a bit by have this - * intermediate object of type around. The - * client object can then dynamically change the bindings for - * the various handlers so that during the life of one of the - * operation objects, it can change how it wants events to be - * handled. It just instantiates a new instance of the template - * with different bindings and reregisters this new object with - * the ACE_Reactor. - */ -template -class ACE_Event_Handler_T : public ACE_Event_Handler -{ -public: - // = Typedefs to simplify pointer-to-member-function registration. - - // Get/set the underlying handle. - typedef ACE_HANDLE (T::*GET_HANDLE) (void) const; - typedef void (T::*SET_HANDLE) (ACE_HANDLE); - - /// Handle I/O events. - typedef int (T::*IO_HANDLER) (ACE_HANDLE); - - /// Handle timeout events. - typedef int (T::*TO_HANDLER) (const ACE_Time_Value &, const void *); - - /// Handle close events. - typedef int (T::*CL_HANDLER) (ACE_HANDLE, ACE_Reactor_Mask); - - /// = Initialization and termination methods. - typedef int (T::*SIG_HANDLER) (int, siginfo_t*, ucontext_t*); - - /// Initialize the op_handler. - ACE_Event_Handler_T (T *op_handler, - int delete_handler, - GET_HANDLE get_handle = 0, - IO_HANDLER input = 0, - CL_HANDLER close = 0, - SIG_HANDLER sig = 0, - TO_HANDLER timeout = 0, - IO_HANDLER output = 0, - SET_HANDLE set_handle = 0, - IO_HANDLER except = 0); - - /// Close down and delete the - ~ACE_Event_Handler_T (void); - - // = Override all the ACE_Event_Handler methods. - - // These methods all delegate down to the operations handler. - virtual ACE_HANDLE get_handle (void) const; - virtual void set_handle (ACE_HANDLE); - virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE); - virtual int handle_output (ACE_HANDLE fd = ACE_INVALID_HANDLE); - virtual int handle_exception (ACE_HANDLE fd = ACE_INVALID_HANDLE); - virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg = 0); - virtual int handle_close (ACE_HANDLE fd, ACE_Reactor_Mask close_mask); - virtual int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0); - - // = Get/set the operations handler. - T *op_handler (void); - void op_handler (T *); - - // = Get/set the target pointer-to-method used for dispatching. - - GET_HANDLE handle_get (void); - void handle_get (GET_HANDLE); - - SET_HANDLE handle_set (void); - void handle_set (SET_HANDLE); - - IO_HANDLER input_handler (void); - void input_handler (IO_HANDLER); - - IO_HANDLER output_handler (void); - void output_handler (IO_HANDLER); - - IO_HANDLER except_handler (void); - void except_handler (IO_HANDLER); - - TO_HANDLER to_handler (void); - void to_handler (TO_HANDLER); - - CL_HANDLER cl_handler (void); - void cl_handler (CL_HANDLER); - - SIG_HANDLER sig_handler (void); - void sig_handler (SIG_HANDLER); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Pointer to the object that handles all the delegated operations. - T *op_handler_; - - // = Handle input, output, and exception events. - IO_HANDLER input_handler_; - IO_HANDLER output_handler_; - IO_HANDLER except_handler_; - - /// Handle timeout events. - TO_HANDLER to_handler_; - - /// Handle close events. - CL_HANDLER cl_handler_; - - /// Handle signal events. - SIG_HANDLER sig_handler_; - - /// Keeps track of whether we need to delete the handler in the - /// destructor. - int delete_handler_; - - // = Get/set underlying handle. - SET_HANDLE set_handle_; - GET_HANDLE get_handle_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Event_Handler_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Event_Handler_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#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 deleted file mode 100644 index c3facd7e25f..00000000000 --- a/ACE/ace/Event_Handler_T.inl +++ /dev/null @@ -1,135 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Global_Macros.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE void -ACE_Event_Handler_T::op_handler (T *op) -{ - ACE_TRACE ("ACE_Event_Handler_T::op_handler"); - this->op_handler_ = op; -} - -template ACE_INLINE T * -ACE_Event_Handler_T::op_handler (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::op_handler"); - return this->op_handler_; -} - -template ACE_INLINE typename ACE_Event_Handler_T::GET_HANDLE -ACE_Event_Handler_T::handle_get (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_get"); - return this->get_handle_; -} - -template ACE_INLINE void -ACE_Event_Handler_T::handle_get (typename ACE_Event_Handler_T::GET_HANDLE h) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_get"); - this->get_handle_ = h; -} - -template ACE_INLINE typename ACE_Event_Handler_T::SET_HANDLE -ACE_Event_Handler_T::handle_set (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_set"); - return this->set_handle_; -} - -template ACE_INLINE void -ACE_Event_Handler_T::handle_set (typename ACE_Event_Handler_T::SET_HANDLE h) -{ - ACE_TRACE ("ACE_Event_Handler_T::handle_set"); - this->set_handle_ = h; -} - -template ACE_INLINE typename ACE_Event_Handler_T::IO_HANDLER -ACE_Event_Handler_T::input_handler (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::input_handler"); - return this->input_handler_; -} - -template ACE_INLINE void -ACE_Event_Handler_T::input_handler (typename ACE_Event_Handler_T::IO_HANDLER h) -{ - ACE_TRACE ("ACE_Event_Handler_T::input_handler"); - this->input_handler_ = h; -} - -template ACE_INLINE typename ACE_Event_Handler_T::IO_HANDLER -ACE_Event_Handler_T::output_handler (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::output_handler"); - return this->output_handler_; -} - -template ACE_INLINE void -ACE_Event_Handler_T::output_handler (typename ACE_Event_Handler_T::IO_HANDLER h) -{ - ACE_TRACE ("ACE_Event_Handler_T::output_handler"); - this->output_handler_ = h; -} - -template ACE_INLINE typename ACE_Event_Handler_T::IO_HANDLER -ACE_Event_Handler_T::except_handler (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::except_handler"); - return this->except_handler_; -} - -template ACE_INLINE void -ACE_Event_Handler_T::except_handler (typename ACE_Event_Handler_T::IO_HANDLER h) -{ - ACE_TRACE ("ACE_Event_Handler_T::except_handler"); - this->except_handler_ = h; -} - -template ACE_INLINE typename ACE_Event_Handler_T::TO_HANDLER -ACE_Event_Handler_T::to_handler (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::to_handler"); - return this->to_handler_; -} - -template ACE_INLINE void -ACE_Event_Handler_T::to_handler (typename ACE_Event_Handler_T::TO_HANDLER h) -{ - ACE_TRACE ("ACE_Event_Handler_T::to_handler"); - this->to_handler_ = h; -} - -template ACE_INLINE typename ACE_Event_Handler_T::CL_HANDLER -ACE_Event_Handler_T::cl_handler (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::cl_handler"); - return this->cl_handler_; -} - -template ACE_INLINE void -ACE_Event_Handler_T::cl_handler (typename ACE_Event_Handler_T::CL_HANDLER h) -{ - ACE_TRACE ("ACE_Event_Handler_T::cl_handler"); - this->cl_handler_ = h; -} - -template ACE_INLINE typename ACE_Event_Handler_T::SIG_HANDLER -ACE_Event_Handler_T::sig_handler (void) -{ - ACE_TRACE ("ACE_Event_Handler_T::sig_handler"); - return this->sig_handler_; -} - -template ACE_INLINE void -ACE_Event_Handler_T::sig_handler (typename ACE_Event_Handler_T::SIG_HANDLER h) -{ - ACE_TRACE ("ACE_Event_Handler_T::sig_handler"); - this->sig_handler_ = h; -} - -ACE_END_VERSIONED_NAMESPACE_DECL 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 - * @author Aniruddha Gokhale - * @author Carlos O'Ryan - * @author Krishnakumar B , 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 deleted file mode 100644 index 22172e376f7..00000000000 --- a/ACE/ace/FIFO.cpp +++ /dev/null @@ -1,78 +0,0 @@ -// $Id$ - -#include "ace/FIFO.h" - -#if !defined (__ACE_INLINE__) -#include "ace/FIFO.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Log_Msg.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_errno.h" -#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) - -void -ACE_FIFO::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FIFO::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("rendezvous_ = %s"), this->rendezvous_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -int -ACE_FIFO::open (const ACE_TCHAR *r, int flags, mode_t perms, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_FIFO::open"); - ACE_OS::strsncpy (this->rendezvous_, r, MAXPATHLEN); - - if ((flags & O_CREAT) != 0 - && ACE_OS::mkfifo (this->rendezvous_, perms) == -1 - && !(errno == EEXIST)) - return -1; - - this->set_handle (ACE_OS::open (this->rendezvous_, flags, 0, sa)); - return this->get_handle () == ACE_INVALID_HANDLE ? -1 : 0; -} - -ACE_FIFO::ACE_FIFO (const ACE_TCHAR *fifo_name, - int flags, - mode_t perms, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_FIFO::ACE_FIFO"); - if (this->open (fifo_name, flags, perms, sa) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_FIFO"))); -} - -ACE_FIFO::ACE_FIFO (void) -{ -// ACE_TRACE ("ACE_FIFO::ACE_FIFO"); -} - -int -ACE_FIFO::close (void) -{ - ACE_TRACE ("ACE_FIFO::close"); - int result = 0; - - if (this->get_handle () != ACE_INVALID_HANDLE) - { - result = ACE_OS::close (this->get_handle ()); - this->set_handle (ACE_INVALID_HANDLE); - } - return result; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FIFO.h b/ACE/ace/FIFO.h deleted file mode 100644 index 3866b0e4eb8..00000000000 --- a/ACE/ace/FIFO.h +++ /dev/null @@ -1,85 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file FIFO.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//========================================================================== - - -#ifndef ACE_FIFO_H -#define ACE_FIFO_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/IPC_SAP.h" -#include "ace/os_include/os_limits.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_FIFO - * - * @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 classes. - */ -class ACE_Export ACE_FIFO : public ACE_IPC_SAP -{ -public: - /// Open up the named pipe on the in accordance with the - /// flags. - int open (const ACE_TCHAR *rendezvous, int flags, mode_t perms, - LPSECURITY_ATTRIBUTES sa = 0); - - /// Close down the ACE_FIFO without removing the rendezvous point. - int close (void); - - /// Close down the ACE_FIFO and remove the rendezvous point from the - /// file system. - int remove (void); - - /// Return the local address of this endpoint. - int get_local_addr (const ACE_TCHAR *&rendezvous) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - // = Make these protected to ensure that the class is "abstract." - /// Default constructor. - ACE_FIFO (void); - - /// Open up the named pipe on the 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. - ACE_TCHAR rendezvous_[MAXPATHLEN + 1]; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/FIFO.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_FIFO_H */ diff --git a/ACE/ace/FIFO.inl b/ACE/ace/FIFO.inl deleted file mode 100644 index 149ed11318b..00000000000 --- a/ACE/ace/FIFO.inl +++ /dev/null @@ -1,25 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_unistd.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE int -ACE_FIFO::get_local_addr (const ACE_TCHAR *&r) const -{ - ACE_TRACE ("ACE_FIFO::get_local_addr"); - r = this->rendezvous_; - return 0; -} - -ACE_INLINE int -ACE_FIFO::remove (void) -{ - ACE_TRACE ("ACE_FIFO::remove"); - int const result = this->close (); - return ACE_OS::unlink (this->rendezvous_) == -1 || result == -1 ? -1 : 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FIFO_Recv.cpp b/ACE/ace/FIFO_Recv.cpp deleted file mode 100644 index ca1305cf71a..00000000000 --- a/ACE/ace/FIFO_Recv.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// $Id$ - -#include "ace/FIFO_Recv.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_fcntl.h" - -#if !defined (__ACE_INLINE__) -#include "ace/FIFO_Recv.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, FIFO_Recv, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Recv) - -void -ACE_FIFO_Recv::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FIFO_Recv::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_FIFO::dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("aux_handle_ = %d"), this->aux_handle_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -int -ACE_FIFO_Recv::close (void) -{ - ACE_TRACE ("ACE_FIFO_Recv::close"); - int result = ACE_FIFO::close (); - - if (this->aux_handle_ != ACE_INVALID_HANDLE) - return ACE_OS::close (this->aux_handle_); - else - return result; -} - -// Note that 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! - -int -ACE_FIFO_Recv::open (const ACE_TCHAR *fifo_name, - int flags, - mode_t perms, - int persistent, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_FIFO_Recv::open"); - - if (ACE_FIFO::open (fifo_name, ACE_NONBLOCK | flags, perms, sa) == -1) - return -1; - else if (this->disable (ACE_NONBLOCK) == -1) - return -1; - else if (persistent - && (this->aux_handle_ = ACE_OS::open (fifo_name, O_WRONLY, 0, sa)) == ACE_INVALID_HANDLE) - return -1; - else - return this->get_handle () == ACE_INVALID_HANDLE ? -1 : 0; -} - -ACE_FIFO_Recv::ACE_FIFO_Recv (void) - : aux_handle_ (ACE_INVALID_HANDLE) -{ - ACE_TRACE ("ACE_FIFO_Recv::ACE_FIFO_Recv"); -} - -ACE_FIFO_Recv::ACE_FIFO_Recv (const ACE_TCHAR *fifo_name, - int flags, - mode_t perms, - int persistent, - LPSECURITY_ATTRIBUTES sa) - : aux_handle_ (ACE_INVALID_HANDLE) -{ - ACE_TRACE ("ACE_FIFO_Recv::ACE_FIFO_Recv"); - - if (this->ACE_FIFO_Recv::open (fifo_name, - flags, - perms, - persistent, - sa) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_FIFO_Recv"))); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FIFO_Recv.h b/ACE/ace/FIFO_Recv.h deleted file mode 100644 index fa18cf291a5..00000000000 --- a/ACE/ace/FIFO_Recv.h +++ /dev/null @@ -1,85 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file FIFO_Recv.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//========================================================================== - - -#ifndef ACE_FIFO_RECV_H -#define ACE_FIFO_RECV_H - -#include /**/ "ace/pre.h" - -#include "ace/FIFO.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/os_include/os_fcntl.h" -#include "ace/Default_Constants.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_FIFO_Recv - * - * @brief Receiver side of the bytestream C++ wrapper for UNIX - * FIFOs. - */ -class ACE_Export ACE_FIFO_Recv : public ACE_FIFO -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_FIFO_Recv (void); - - /// Open up a bytestream named pipe for reading. - ACE_FIFO_Recv (const ACE_TCHAR *rendezvous, - int flags = O_CREAT | O_RDONLY, - mode_t perms = ACE_DEFAULT_FILE_PERMS, - int persistent = 1, - LPSECURITY_ATTRIBUTES sa = 0); - - /// Open up a bytestream named pipe for reading. - int open (const ACE_TCHAR *rendezvous, - int flags = O_CREAT | O_RDONLY, - mode_t perms = ACE_DEFAULT_FILE_PERMS, - int persistent = 1, - LPSECURITY_ATTRIBUTES sa = 0); - - /// Close down the named pipe. - int close (void); - - /// Recv @a buf of up to @a len bytes. - ssize_t recv (void *buf, size_t len); - - /// Recv @a buf of exactly @a len bytes (block until done). - ssize_t recv_n (void *buf, size_t len); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Auxiliary handle that is used to implement persistent FIFOs. - ACE_HANDLE aux_handle_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/FIFO_Recv.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACE_FIFO_RECV_H */ diff --git a/ACE/ace/FIFO_Recv.inl b/ACE/ace/FIFO_Recv.inl deleted file mode 100644 index b5cf96cb56d..00000000000 --- a/ACE/ace/FIFO_Recv.inl +++ /dev/null @@ -1,24 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/ACE.h" -#include "ace/OS_NS_unistd.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE ssize_t -ACE_FIFO_Recv::recv (void *buf, size_t len) -{ - ACE_TRACE ("ACE_FIFO_Recv::recv"); - return ACE_OS::read (this->get_handle (), (char *) buf, len); -} - -ACE_INLINE ssize_t -ACE_FIFO_Recv::recv_n (void *buf, size_t n) -{ - ACE_TRACE ("ACE_FIFO_Recv::recv_n"); - return ACE::recv_n (this->get_handle (), buf, n); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FIFO_Recv_Msg.cpp b/ACE/ace/FIFO_Recv_Msg.cpp deleted file mode 100644 index 68d77af8a78..00000000000 --- a/ACE/ace/FIFO_Recv_Msg.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// $Id$ - -#include "ace/FIFO_Recv_Msg.h" - -#include "ace/Log_Msg.h" - -#if !defined (__ACE_INLINE__) -#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) - -void -ACE_FIFO_Recv_Msg::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FIFO_Recv_Msg::dump"); - ACE_FIFO_Recv::dump (); -#endif /* ACE_HAS_DUMP */ -} - -// Note that 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! - -int -ACE_FIFO_Recv_Msg::open (const ACE_TCHAR *fifo_name, - int flags, - mode_t perms, - int persistent, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_FIFO_Recv_Msg::open"); - - return ACE_FIFO_Recv::open (fifo_name, - flags, - perms, - persistent, - sa); -} - -ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg (void) -{ - ACE_TRACE ("ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg"); -} - -ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg (const ACE_TCHAR *fifo_name, - int flags, - mode_t perms, - int persistent, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_FIFO_Recv_Msg::ACE_FIFO_Recv_Msg"); - - if (this->ACE_FIFO_Recv_Msg::open (fifo_name, - flags, - perms, - persistent, - sa) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_FIFO_Recv_Msg"))); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FIFO_Recv_Msg.h b/ACE/ace/FIFO_Recv_Msg.h deleted file mode 100644 index b1c7afe3eb3..00000000000 --- a/ACE/ace/FIFO_Recv_Msg.h +++ /dev/null @@ -1,138 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FIFO_Recv_Msg.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_FIFO_RECV_MSG_H -#define ACE_FIFO_RECV_MSG_H -#include /**/ "ace/pre.h" - -#include "ace/FIFO_Recv.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward decls -class ACE_Str_Buf; - -/** - * @class ACE_FIFO_Recv_Msg - * - * @brief Receiver side for the record oriented C++ wrapper for UNIX FIFOs. - * - * This method works slightly differently on platforms with the - * @c ACE_HAS_STREAM_PIPES configuration setting than those without. - * With ACE_HAS_STREAM_PIPES, the @c getmsg() system function is used - * and it preserves message boundaries internally. Without - * @c ACE_HAS_STREAM_PIPES, the message boundaries are emulated by - * this class and ACE_FIFO_Send_Msg cooperating. The sending class - * first writes an integer number of bytes in the message, then the - * message. ACE_FIFO_Recv_Msg reads the count, then the data. - * The operational differences occur primarily when a message is larger - * than what a caller of this class requests. See recv() for details. - */ -class ACE_Export ACE_FIFO_Recv_Msg : public ACE_FIFO_Recv -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_FIFO_Recv_Msg (void); - - /// Open up a record-oriented named pipe for reading. - ACE_FIFO_Recv_Msg (const ACE_TCHAR *rendezvous, - int flags = O_CREAT | O_RDONLY, - mode_t perms = ACE_DEFAULT_FILE_PERMS, - int persistent = 1, - LPSECURITY_ATTRIBUTES sa = 0); - - /// Open up a record-oriented named pipe for reading. - int open (const ACE_TCHAR *rendezvous, - int flags = O_CREAT | O_RDONLY, - mode_t perms = ACE_DEFAULT_FILE_PERMS, - int persistent = 1, - LPSECURITY_ATTRIBUTES sa = 0); - - /// Receive a message based on attributes in an ACE_Str_Buf. - /** - * @param msg Reference to an ACE_Str_Buf whose @c buf member points - * to the memory to receive the data and @c maxlen member - * contains the maximum number of bytes to receive. - * On return after successfully reading data, the - * @c len member contains the number of bytes received and - * placed in the buffer pointed to by @c msg.buf. - * - * @retval -1 Error; consult @c errno for specific error number. - * @return If the @c ACE_HAS_STREAM_PIPES configuration setting is - * defined, the return value is the number of bytes received - * in the message and will be the same as @c buf.len. - * The return value from the @c getmsg() system function - * is discarded. - * If @c ACE_HAS_STREAM_PIPES is not defined, the number - * of bytes in the message read from the FIFO is returned. - * If the message is larger than the maximum length - * requested in @c msg.maxlen, the return value reflects - * the entire message length, and the @c msg.len member - * reflects how many bytes were actually placed in the - * caller's buffer. Any part of the message longer than - * @c msg.maxlen is discarded. - */ - ssize_t recv (ACE_Str_Buf &msg); - - /// Receive a message based on buffer pointer and maximum size. - /** - * @param buf Pointer to the memory to receive the data. - * @param len The maximum number of bytes to receive. - * - * @retval -1 Error; consult @c errno for specific error number. - * @return The number of bytes received in the message. For messages - * that are larger than the requested maximum size, the - * behavior is different depending on the @c ACE_HAS_STREAM_PIPES - * configuration setting. With @c ACE_HAS_STREAM_PIPES, - * the return value will be the same as @arg len (this is - * also possible if the message is exactly the same length - * as @arg len, and the two cases are indistinguishable). - * Without @c ACE_HAS_STREAM_PIPES, the return value is - * the total length of the message, including bytes in - * excess of @arg len. The excess bytes are discarded. - */ - ssize_t recv (void *buf, size_t len); - -#if defined (ACE_HAS_STREAM_PIPES) - /// Recv and message via Stream pipes. - ssize_t recv (ACE_Str_Buf *data, - ACE_Str_Buf *cntl, - int *flags); - - /// Recv and message via Stream pipes in "band" mode. - ssize_t recv (int *band, - ACE_Str_Buf *data, - ACE_Str_Buf *cntl, - int *flags); -#endif /* ACE_HAS_STREAM_PIPES */ - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/FIFO_Recv_Msg.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_FIFO_RECV_MSG_H */ diff --git a/ACE/ace/FIFO_Recv_Msg.inl b/ACE/ace/FIFO_Recv_Msg.inl deleted file mode 100644 index bab21a7e20e..00000000000 --- a/ACE/ace/FIFO_Recv_Msg.inl +++ /dev/null @@ -1,111 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Min_Max.h" -#include "ace/OS_NS_stropts.h" - -#if !defined (ACE_HAS_STREAM_PIPES) -#include "ace/OS_NS_unistd.h" -#endif - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE ssize_t -ACE_FIFO_Recv_Msg::recv (ACE_Str_Buf &recv_msg) -{ - ACE_TRACE ("ACE_FIFO_Recv_Msg::recv"); -#if defined (ACE_HAS_STREAM_PIPES) - int i = 0; - if (ACE_OS::getmsg (this->get_handle (), - (strbuf *) 0, - (strbuf *) &recv_msg, - &i) == -1) - return -1; - else - return recv_msg.len; -#else /* Do the ol' 2-read trick... */ - if (ACE_OS::read (this->get_handle (), - (char *) &recv_msg.len, - sizeof recv_msg.len) != sizeof recv_msg.len) - return -1; - else - { - size_t remaining = static_cast (recv_msg.len); - size_t requested = static_cast (recv_msg.maxlen); - 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 (recv_len); - - // If there are more bytes remaining in the message, read them and - // throw them away. Leaving them in the FIFO would make it difficult - // to find the start of the next message in the fifo. - // Since the ACE_HAS_STREAM_PIPES version of this method doesn't - // return getmsg()'s indication of "data remaining", don't worry about - // 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; - char dev_null[throw_away]; - recv_len = ACE_OS::read (this->get_handle (), - dev_null, - ACE_MIN (remaining, throw_away)); - if (recv_len == -1) - break; - remaining -= recv_len; - } - return total_msg_size; - } -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_INLINE ssize_t -ACE_FIFO_Recv_Msg::recv (void *buf, size_t max_len) -{ - ACE_TRACE ("ACE_FIFO_Recv_Msg::recv"); - ACE_Str_Buf recv_msg ((char *) buf, 0, static_cast (max_len)); - - return this->recv (recv_msg); -} - -#if defined (ACE_HAS_STREAM_PIPES) -ACE_INLINE ssize_t -ACE_FIFO_Recv_Msg::recv (ACE_Str_Buf *data, - ACE_Str_Buf *cntl, - int *flags) -{ - ACE_TRACE ("ACE_FIFO_Recv_Msg::recv"); - if (ACE_OS::getmsg (this->get_handle (), - (strbuf *) cntl, - (strbuf *) data, - flags) == -1) - return -1; - else - return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len); -} - -ACE_INLINE ssize_t -ACE_FIFO_Recv_Msg::recv (int *band, - ACE_Str_Buf *data, - ACE_Str_Buf *cntl, - int *flags) -{ - ACE_TRACE ("ACE_FIFO_Recv_Msg::recv"); - if (ACE_OS::getpmsg (this->get_handle (), - (strbuf *) cntl, - (strbuf *) data, - band, - flags) == -1) - return -1; - else - return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len); -} -#endif /* ACE_HAS_STREAM_PIPES */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FIFO_Send.cpp b/ACE/ace/FIFO_Send.cpp deleted file mode 100644 index 47a3c90e814..00000000000 --- a/ACE/ace/FIFO_Send.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// $Id$ - -#include "ace/FIFO_Send.h" -#include "ace/Log_Msg.h" - -#if !defined (__ACE_INLINE__) -#include "ace/FIFO_Send.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, FIFO_Send, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Send) - -void -ACE_FIFO_Send::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FIFO_Send::dump"); - ACE_FIFO::dump (); -#endif /* ACE_HAS_DUMP */ -} - -ACE_FIFO_Send::ACE_FIFO_Send (void) -{ -// ACE_TRACE ("ACE_FIFO_Send::ACE_FIFO_Send"); -} - -int -ACE_FIFO_Send::open (const ACE_TCHAR *rendezvous_name, - int flags, - mode_t perms, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_FIFO_Send::open"); - return ACE_FIFO::open (rendezvous_name, - flags | O_WRONLY, - perms, - sa); -} - -ACE_FIFO_Send::ACE_FIFO_Send (const ACE_TCHAR *fifo_name, - int flags, - mode_t perms, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_FIFO_Send::ACE_FIFO_Send"); - if (this->ACE_FIFO_Send::open (fifo_name, - flags, - perms, - sa) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_FIFO_Send::ACE_FIFO_Send"))); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FIFO_Send.h b/ACE/ace/FIFO_Send.h deleted file mode 100644 index 51a14508114..00000000000 --- a/ACE/ace/FIFO_Send.h +++ /dev/null @@ -1,75 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file FIFO_Send.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//========================================================================== - - -#ifndef ACE_FIFO_SEND_H -#define ACE_FIFO_SEND_H - -#include /**/ "ace/pre.h" - -#include "ace/FIFO.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/os_include/os_fcntl.h" -#include "ace/Default_Constants.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_FIFO_Send - * - * @brief Sender side for the bytestream C++ wrapper for UNIX FIFOs - */ -class ACE_Export ACE_FIFO_Send : public ACE_FIFO -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_FIFO_Send (void); - - /// Open up a bytestream named pipe for writing. - ACE_FIFO_Send (const ACE_TCHAR *rendezvous, - int flags = O_WRONLY, - mode_t perms = ACE_DEFAULT_FILE_PERMS, - LPSECURITY_ATTRIBUTES sa = 0); - - /// Open up a bytestream named pipe for writing. - int open (const ACE_TCHAR *rendezvous, - 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); - - /// Send @a buf of exactly @a len bytes (block until done). - ssize_t send_n (const void *buf, size_t len); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/FIFO_Send.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACE_FIFO_SEND_H */ diff --git a/ACE/ace/FIFO_Send.inl b/ACE/ace/FIFO_Send.inl deleted file mode 100644 index 12491058e2c..00000000000 --- a/ACE/ace/FIFO_Send.inl +++ /dev/null @@ -1,24 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/ACE.h" -#include "ace/OS_NS_unistd.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE ssize_t -ACE_FIFO_Send::send (const void *buf, size_t len) -{ - ACE_TRACE ("ACE_FIFO_Send::send"); - return ACE_OS::write (this->get_handle (), (const char *) buf, len); -} - -ACE_INLINE ssize_t -ACE_FIFO_Send::send_n (const void *buf, size_t n) -{ - ACE_TRACE ("ACE_FIFO_Send::send_n"); - return ACE::send_n (this->get_handle (), buf, n); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FIFO_Send_Msg.cpp b/ACE/ace/FIFO_Send_Msg.cpp deleted file mode 100644 index c06b737a6bb..00000000000 --- a/ACE/ace/FIFO_Send_Msg.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// $Id$ - -#include "ace/FIFO_Send_Msg.h" - -#include "ace/Log_Msg.h" -#include "ace/OS_NS_sys_uio.h" - -#if !defined (__ACE_INLINE__) -#include "ace/FIFO_Send_Msg.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, FIFO_Send_Msg, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Send_Msg) - -void -ACE_FIFO_Send_Msg::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FIFO_Send_Msg::dump"); - ACE_FIFO_Send::dump (); -#endif /* ACE_HAS_DUMP */ -} - -ssize_t -ACE_FIFO_Send_Msg::send (const ACE_Str_Buf &send_msg) -{ - // ACE_TRACE ("ACE_FIFO_Send_Msg::send"); -#if defined (ACE_HAS_STREAM_PIPES) - if (ACE_OS::putmsg (this->get_handle (), - (strbuf *) 0, - (strbuf *) &send_msg, - 0) == -1) - return -1; - else - return send_msg.len; -#else - iovec iov[2]; - - iov[0].iov_base = (char *) &send_msg.len; - iov[0].iov_len = sizeof send_msg.len; - - iov[1].iov_base = (char *) send_msg.buf; - iov[1].iov_len = static_cast (send_msg.len); - - ssize_t sent = ACE_OS::writev (this->get_handle (), iov, 2); - if (sent > 0) - sent -= iov[0].iov_len; // Don't count the length we added. - return sent; -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_FIFO_Send_Msg::ACE_FIFO_Send_Msg (void) -{ -// ACE_TRACE ("ACE_FIFO_Send_Msg::ACE_FIFO_Send_Msg"); -} - -int -ACE_FIFO_Send_Msg::open (const ACE_TCHAR *fifo_name, - int flags, - mode_t perms, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_FIFO_Send_Msg::open"); - return ACE_FIFO_Send::open (fifo_name, flags | O_WRONLY, perms, sa); -} - -ACE_FIFO_Send_Msg::ACE_FIFO_Send_Msg (const ACE_TCHAR *fifo_name, - int flags, - mode_t perms, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_TRACE ("ACE_FIFO_Send_Msg::ACE_FIFO_Send_Msg"); - if (this->ACE_FIFO_Send_Msg::open (fifo_name, flags, perms, sa) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_FIFO_Send_Msg"))); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FIFO_Send_Msg.h b/ACE/ace/FIFO_Send_Msg.h deleted file mode 100644 index a2e0affce8a..00000000000 --- a/ACE/ace/FIFO_Send_Msg.h +++ /dev/null @@ -1,91 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file FIFO_Send_Msg.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_FIFO_SEND_MSG_H -#define ACE_FIFO_SEND_MSG_H -#include /**/ "ace/pre.h" - -#include "ace/FIFO_Send.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_STREAM_PIPES) -# include "ace/OS_NS_stropts.h" -#endif /* ACE_HAS_STREAM_PIPES */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward Decls -class ACE_Str_Buf; - -/** - * @class ACE_FIFO_Send_Msg - * - * @brief Sender side for the Record oriented C++ wrapper for UNIX - * FIFOs. - */ -class ACE_Export ACE_FIFO_Send_Msg : public ACE_FIFO_Send -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_FIFO_Send_Msg (void); - - /// Open up a record-oriented named pipe for writing. - ACE_FIFO_Send_Msg (const ACE_TCHAR *rendezvous, - int flags = O_WRONLY, - mode_t perms = ACE_DEFAULT_FILE_PERMS, - LPSECURITY_ATTRIBUTES sa = 0); - - /// Open up a record-oriented named pipe for writing. - int open (const ACE_TCHAR *rendezvous, - 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 ACE_Str_Buf &msg); - - /// Send @a buf of exactly @a len bytes (block until done). - ssize_t send (const void *buf, size_t len); - -#if defined (ACE_HAS_STREAM_PIPES) - /// Send and message via Stream pipes. - ssize_t send (const ACE_Str_Buf *data, - const ACE_Str_Buf *cntl = 0, - int flags = 0); - - /// Send and message via Stream pipes in "band" mode. - ssize_t send (int band, - const ACE_Str_Buf *data, - const ACE_Str_Buf *cntl = 0, - int flags = MSG_BAND); -#endif /* ACE_HAS_STREAM_PIPES */ - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/FIFO_Send_Msg.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_FIFO_SEND_MSG_H */ diff --git a/ACE/ace/FIFO_Send_Msg.inl b/ACE/ace/FIFO_Send_Msg.inl deleted file mode 100644 index 74392656597..00000000000 --- a/ACE/ace/FIFO_Send_Msg.inl +++ /dev/null @@ -1,53 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_stropts.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE ssize_t -ACE_FIFO_Send_Msg::send (const void *buf, size_t len) -{ - ACE_TRACE ("ACE_FIFO_Send_Msg::send"); - ACE_Str_Buf send_msg ((char *) buf, static_cast (len)); - - return this->send (send_msg); -} - -#if defined (ACE_HAS_STREAM_PIPES) -ACE_INLINE ssize_t -ACE_FIFO_Send_Msg::send (const ACE_Str_Buf *data, - const ACE_Str_Buf *cntl, - int flags) -{ - ACE_TRACE ("ACE_FIFO_Send_Msg::send"); - if (ACE_OS::putmsg (this->get_handle (), - (strbuf *) cntl, - (strbuf *) data, - flags) == -1) - return-1; - else - return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len); -} - -ACE_INLINE ssize_t -ACE_FIFO_Send_Msg::send (int band, - const ACE_Str_Buf *data, - const ACE_Str_Buf *cntl, - int flags) -{ - ACE_TRACE ("ACE_FIFO_Send_Msg::send"); - - if (ACE_OS::putpmsg (this->get_handle (), - (strbuf *) cntl, - (strbuf *) data, - band, - flags) == -1) - return -1; - else - return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len); -} -#endif /* ACE_HAS_STREAM_PIPES */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FILE.cpp b/ACE/ace/FILE.cpp deleted file mode 100644 index 8b3015524e3..00000000000 --- a/ACE/ace/FILE.cpp +++ /dev/null @@ -1,147 +0,0 @@ -// $Id$ - -/* Defines the member functions for the base class of the ACE_IO_SAP - ACE_FILE abstraction. */ - -#include "ace/FILE.h" - -#include "ace/OS_NS_unistd.h" -#include "ace/OS_NS_sys_stat.h" - -#if !defined (__ACE_INLINE__) -#include "ace/FILE.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, FILE, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_FILE) - -void -ACE_FILE::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FILE::dump"); - ACE_IO_SAP::dump (); -#endif /* ACE_HAS_DUMP */ -} - -// This is the do-nothing constructor. - -ACE_FILE::ACE_FILE (void) -{ - ACE_TRACE ("ACE_FILE::ACE_FILE"); -} - -// Close the file - -int -ACE_FILE::close (void) -{ - ACE_TRACE ("ACE_FILE::close"); - int result = 0; - - if (this->get_handle () != ACE_INVALID_HANDLE) - { - result = ACE_OS::close (this->get_handle ()); - this->set_handle (ACE_INVALID_HANDLE); - } - return result; -} - -int -ACE_FILE::get_info (ACE_FILE_Info *finfo) -{ - ACE_TRACE ("ACE_FILE::get_info"); - ACE_stat filestatus; - - int const result = ACE_OS::fstat (this->get_handle (), &filestatus); - - if (result == 0) - { - finfo->mode_ = filestatus.st_mode; - finfo->nlink_ = filestatus.st_nlink; - finfo->size_ = filestatus.st_size; - } - - return result; -} - -int -ACE_FILE::get_info (ACE_FILE_Info &finfo) -{ - ACE_TRACE ("ACE_FILE::get_info"); - - return this->get_info (&finfo); -} - -int -ACE_FILE::truncate (ACE_OFF_T length) -{ - ACE_TRACE ("ACE_FILE::truncate"); - return ACE_OS::ftruncate (this->get_handle (), length); -} - -ACE_OFF_T -ACE_FILE::seek (ACE_OFF_T offset, int startpos) -{ - return ACE_OS::lseek (this->get_handle (), offset, startpos); -} - -ACE_OFF_T -ACE_FILE::tell (void) -{ - ACE_TRACE ("ACE_FILE::tell"); - return ACE_OS::lseek (this->get_handle (), 0, SEEK_CUR); -} - -// Return the local endpoint address. - -int -ACE_FILE::get_local_addr (ACE_Addr &addr) const -{ - ACE_TRACE ("ACE_FILE::get_local_addr"); - - // Perform the downcast since had better be an - // . - ACE_FILE_Addr *file_addr = - dynamic_cast (&addr); - - if (file_addr == 0) - return -1; - else - { - *file_addr = this->addr_; - return 0; - } -} - -// Return the same result as . - -int -ACE_FILE::get_remote_addr (ACE_Addr &addr) const -{ - ACE_TRACE ("ACE_FILE::get_remote_addr"); - - return this->get_local_addr (addr); -} - -int -ACE_FILE::remove (void) -{ - ACE_TRACE ("ACE_FILE::remove"); - - this->close (); - return ACE_OS::unlink (this->addr_.get_path_name ()); -} - -int -ACE_FILE::unlink (void) -{ - ACE_TRACE ("ACE_FILE::unlink"); - - return ACE_OS::unlink (this->addr_.get_path_name ()); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FILE.h b/ACE/ace/FILE.h deleted file mode 100644 index bf8f4561d4f..00000000000 --- a/ACE/ace/FILE.h +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file FILE.h - * - * $Id$ - * - * @author Gerhard Lenzer - */ -//============================================================================= - -#ifndef ACE_FILE_H -#define ACE_FILE_H -#include /**/ "ace/pre.h" - -#include "ace/IO_SAP.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#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 - -/** - * @class ACE_FILE_Info - * - * @brief Abstracts basic OS FILE information. - */ -class ACE_Export ACE_FILE_Info -{ -public: - /// Mode of file - mode_t mode_; - - /// No of links - nlink_t nlink_; - - /// Size of file - ACE_OFF_T size_; -}; - -/** - * @class ACE_FILE - * - * @brief Defines the core methods of the ACE_FILE abstraction. - */ -class ACE_Export ACE_FILE : public ACE_IO_SAP -{ -public: - /// Close the ACE_FILE handle without removing the ACE_FILE from - /// the file system. - int close (void); - - /// Close and remove the ACE_FILE from the file system. - int remove (void); - - /// Remove the ACE_FILE from the file system without closing the - /// ACE_FILE handle. - int unlink (void); - - /// Get information on this ACE_FILE. - int get_info (ACE_FILE_Info *finfo); - - /// Get information on this ACE_FILE. - int get_info (ACE_FILE_Info &finfo); - - /// Set filesize to length byte. - int truncate (ACE_OFF_T length); - - /** - * Sets the file pointer as follows: - * o If is , the pointer is set to @a offset - * bytes. - * - * o If is , the pointer is set to its - * current location plus @a offset. - * - * o If is , the pointer is set to the size - * of the file plus offset. - */ - ACE_OFF_T seek (ACE_OFF_T offset, - int whence = SEEK_CUR); - - /// Return an offset for the file handle. - ACE_OFF_T tell (void); - - /** - * Disable signal @a signum - * This is here to prevent Win32 from - * disabling SPIPE using socket calls - */ - int disable (int signum) const ; - - /// Return the local endpoint address in the referenced ACE_Addr. - /// Returns 0 if successful, else -1. - int get_local_addr (ACE_Addr &) const; - - /// Return the same thing as get_local_addr(). - int get_remote_addr (ACE_Addr &) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Ensure that this class is only created by the - /// ACE_FILE_Connector. - ACE_FILE (void); - - /// File we are "connected" with... - ACE_FILE_Addr addr_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/FILE.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_FILE_H */ diff --git a/ACE/ace/FILE.inl b/ACE/ace/FILE.inl deleted file mode 100644 index fdd65029d3a..00000000000 --- a/ACE/ace/FILE.inl +++ /dev/null @@ -1,18 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE int -ACE_FILE::disable (int signum) const -{ -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (signum) ; - return 0 ; -#else /* ACE_WIN32 */ - return ACE_IO_SAP::disable (signum) ; -#endif /* ACE_WIN32 */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FILE_Addr.cpp b/ACE/ace/FILE_Addr.cpp deleted file mode 100644 index 79d9db6e296..00000000000 --- a/ACE/ace/FILE_Addr.cpp +++ /dev/null @@ -1,124 +0,0 @@ -// $Id$ - -#include "ace/FILE_Addr.h" -#include "ace/Lib_Find.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_stdlib.h" -#include "ace/OS_NS_string.h" -#include "ace/os_include/sys/os_socket.h" - -#if !defined (__ACE_INLINE__) -#include "ace/FILE_Addr.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, FILE_Addr, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_FILE_Addr) - -ACE_FILE_Addr::ACE_FILE_Addr (void) - : ACE_Addr (AF_FILE, sizeof this->filename_ / sizeof (ACE_TCHAR)) -{ - this->filename_[0] = '\0'; -} - -int -ACE_FILE_Addr::set (const ACE_FILE_Addr &sa) -{ - if (sa.get_type () == AF_ANY) - { -#if defined (ACE_DEFAULT_TEMP_FILE) - // Create a temporary file. - ACE_OS::strcpy (this->filename_, - ACE_DEFAULT_TEMP_FILE); -#else /* ACE_DEFAULT_TEMP_FILE */ - if (ACE::get_temp_dir (this->filename_, MAXPATHLEN - 15) == -1) - // -15 for ace-file-XXXXXX - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Temporary path too long, ") - ACE_TEXT ("defaulting to current directory\n"))); - this->filename_[0] = 0; - } - - // Add the filename to the end - ACE_OS::strcat (this->filename_, ACE_TEXT ("ace-fileXXXXXX")); - -#endif /* ACE_DEFAULT_TEMP_FILE */ - - if (ACE_OS::mktemp (this->filename_) == 0) - return -1; - this->base_set (AF_FILE, - static_cast (ACE_OS::strlen (this->filename_) + 1)); - } - else - { - (void)ACE_OS::strsncpy (this->filename_, sa.filename_, sa.get_size ()); - - this->base_set (sa.get_type (), sa.get_size ()); - } - return 0; -} - -// Copy constructor. - -ACE_FILE_Addr::ACE_FILE_Addr (const ACE_FILE_Addr &sa) - : ACE_Addr (AF_FILE, sizeof this->filename_) -{ - this->set (sa); -} - -int -ACE_FILE_Addr::set (const ACE_TCHAR *filename) -{ - this->ACE_Addr::base_set (AF_FILE, - static_cast (ACE_OS::strlen (filename) + 1)); - (void) ACE_OS::strsncpy (this->filename_, - filename, - sizeof this->filename_ / sizeof (ACE_TCHAR)); - return 0; -} - -ACE_FILE_Addr & -ACE_FILE_Addr::operator= (const ACE_FILE_Addr &sa) -{ - if (this != &sa) - this->set (sa); - return *this; -} - -// Create a ACE_Addr from a ACE_FILE pathname. - -ACE_FILE_Addr::ACE_FILE_Addr (const ACE_TCHAR *filename) -{ - this->set (filename); -} - -int -ACE_FILE_Addr::addr_to_string (ACE_TCHAR *s, size_t len) const -{ - ACE_OS::strsncpy (s, this->filename_, len); - return 0; -} - -// Return the address. - -void * -ACE_FILE_Addr::get_addr (void) const -{ - return (void *)&this->filename_; -} - -void -ACE_FILE_Addr::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FILE_Addr::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("filename_ = %s"), this->filename_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FILE_Addr.h b/ACE/ace/FILE_Addr.h deleted file mode 100644 index 2fa9e0f4ae4..00000000000 --- a/ACE/ace/FILE_Addr.h +++ /dev/null @@ -1,89 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FILE_Addr.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_FILE_ADDR_H -#define ACE_FILE_ADDR_H -#include /**/ "ace/pre.h" - -#include "ace/Addr.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Flag_Manip.h" -#include "ace/os_include/os_dirent.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_FILE_Addr - * - * @brief Defines the FILE address family address format. - */ -class ACE_Export ACE_FILE_Addr : public ACE_Addr -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_FILE_Addr (void); - - /// Copy constructor. - ACE_FILE_Addr (const ACE_FILE_Addr &sa); - - /// Acts like a copy constructor. If @a sa == ACE_Addr::sap_any then - /// create a temporary filename using ACE_OS::mktemp. - int set (const ACE_FILE_Addr &sa); - - /// Create a ACE_FILE_Addr from a pathname. - explicit ACE_FILE_Addr (const ACE_TCHAR *filename); - - /// Create a ACE_FILE_Addr from a pathname. - int set (const ACE_TCHAR *filename); - - /// Assignment operator. - ACE_FILE_Addr &operator= (const ACE_FILE_Addr &); - - /// Return a pointer to the address. - virtual void *get_addr (void) const; - - /// Transform the current address into string format. - virtual int addr_to_string (ACE_TCHAR *addr, size_t) const; - - /// Compare two addresses for equality. - bool operator == (const ACE_FILE_Addr &SAP) const; - - /// Compare two addresses for inequality. - bool operator != (const ACE_FILE_Addr &SAP) const; - - /// Return the path name used for the rendezvous point. - const ACE_TCHAR *get_path_name (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Name of the file. - ACE_TCHAR filename_[MAXPATHLEN + 1]; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/FILE_Addr.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_FILE_ADDR_H */ diff --git a/ACE/ace/FILE_Addr.inl b/ACE/ace/FILE_Addr.inl deleted file mode 100644 index e03cd2ab156..00000000000 --- a/ACE/ace/FILE_Addr.inl +++ /dev/null @@ -1,34 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - - -#include "ace/SString.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Compare two addresses for equality. - -ACE_INLINE bool -ACE_FILE_Addr::operator == (const ACE_FILE_Addr &sap) const -{ - return ACE_OS::strcmp (this->filename_, sap.filename_) == 0; -} - -// Compare two addresses for inequality. - -ACE_INLINE bool -ACE_FILE_Addr::operator != (const ACE_FILE_Addr &sap) const -{ - return !((*this) == sap); // This is lazy, of course... ;-) -} - -// Return the path name used for the rendezvous point. - -ACE_INLINE const ACE_TCHAR * -ACE_FILE_Addr::get_path_name (void) const -{ - return this->filename_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FILE_Connector.cpp b/ACE/ace/FILE_Connector.cpp deleted file mode 100644 index c136b0b47eb..00000000000 --- a/ACE/ace/FILE_Connector.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// $Id$ - -#include "ace/FILE_Connector.h" -#include "ace/Handle_Ops.h" -#include "ace/OS_NS_stdlib.h" - -#if !defined (__ACE_INLINE__) -#include "ace/FILE_Connector.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, FILE_Connector, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_FILE_Connector) - -void -ACE_FILE_Connector::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FILE_Connector::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_FILE_Connector::ACE_FILE_Connector (void) -{ - ACE_TRACE ("ACE_FILE_Connector::ACE_FILE_Connector"); -} - -int -ACE_FILE_Connector::connect (ACE_FILE_IO &new_io, - const ACE_FILE_Addr &remote_sap, - ACE_Time_Value *timeout, - const ACE_Addr &, - int, - int flags, - int perms) -{ - ACE_TRACE ("ACE_FILE_Connector::connect"); - ACE_ASSERT (new_io.get_handle () == ACE_INVALID_HANDLE); - - ACE_HANDLE handle = ACE_INVALID_HANDLE; - - // Check to see if caller has requested that we create the filename. - if (reinterpret_cast ( - const_cast (remote_sap)) == ACE_Addr::sap_any) - { - // Create a new temporary file. - // Use ACE_OS::mkstemp() if it is available since it avoids a - // race condition, and subsequently a security hole due to that - // race condition (specifically, a denial-of-service attack). - // - // However, using mkstemp() prevents us from doing a timed open - // since it opens the file for us. Better to avoid the race - // condition. - char filename[] = "ace-file-XXXXXX"; - - handle = ACE_OS::mkstemp (filename); // mkstemp() replaces "XXXXXX" - - if (handle == ACE_INVALID_HANDLE - || new_io.addr_.set (ACE_TEXT_CHAR_TO_TCHAR (filename)) != 0) - return -1; - - new_io.set_handle (handle); - - return 0; - } - else - new_io.addr_ = remote_sap; // class copy. - - handle = ACE::handle_timed_open (timeout, - new_io.addr_.get_path_name (), - flags, - perms); - - new_io.set_handle (handle); - return handle == ACE_INVALID_HANDLE ? -1 : 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FILE_Connector.h b/ACE/ace/FILE_Connector.h deleted file mode 100644 index b02b01e7dbb..00000000000 --- a/ACE/ace/FILE_Connector.h +++ /dev/null @@ -1,113 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file FILE_Connector.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - -#ifndef ACE_FILE_CONNECTOR_H -#define ACE_FILE_CONNECTOR_H -#include /**/ "ace/pre.h" - -#include "ace/FILE_IO.h" -#include "ace/Log_Msg.h" -#include "ace/os_include/os_fcntl.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_FILE_Connector - * - * @brief Defines an active connection factory for the ACE_FILE wrappers. - * - * Note that 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 the end prior to each write, as specified by - * POSIX. This is generally good enough for typical situations, but - * it is ``not quite right'' in its semantics. - */ -class ACE_Export ACE_FILE_Connector -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_FILE_Connector (void); - - /** - * Actively ``connect'' and produce a @a new_io ACE_FILE_IO object - * if things go well. The @a remote_sap is the file that we are - * trying to create/open. If it's the default value of - * ACE_Addr::sap_any then the user is letting the OS create the - * filename (via ). The @a timeout is the amount of - * time to wait to create/open the file. If it's 0 then we block - * indefinitely. If *timeout == {0, 0} then the file is created - * using non-blocking mode. If *timeout > {0, 0} then this is the - * maximum amount of time to wait before timing out. The - * @a local_sap and @a reuse_addr parameters are ignored. The @a flags - * and @a perms arguments are passed down to the - * method. - */ - ACE_FILE_Connector (ACE_FILE_IO &new_io, - const ACE_FILE_Addr &remote_sap, - ACE_Time_Value *timeout = 0, - const ACE_Addr &local_sap = ACE_Addr::sap_any, - int reuse_addr = 0, - int flags = O_RDWR | O_CREAT, - int perms = ACE_DEFAULT_FILE_PERMS); - - /** - * Actively ``connect'' and produce a @a new_io object - * if things go well. The @a remote_sap is the file that we are - * trying to create/open. If it's the default value of - * ACE_Addr::sap_any then the user is letting the OS create the - * filename (via ). The @a timeout is the amount of - * time to wait to create/open the file. If it's 0 then we block - * indefinitely. If *timeout == {0, 0} then the file is created - * using non-blocking mode. In this case, if the create/open can't - * be done immediately the value of -1 is returned with . If *timeout > {0, 0} then this is the maximum amount of - * time to wait before timing out. If the time expires before the - * connection is made @c errno == ETIME. The @a local_sap and - * @a reuse_addr parameters are ignored. The @a flags and @a perms - * arguments are passed down to the method. - */ - int connect (ACE_FILE_IO &new_io, - const ACE_FILE_Addr &remote_sap, - ACE_Time_Value *timeout = 0, - const ACE_Addr &local_sap = ACE_Addr::sap_any, - int reuse_addr = 0, - int flags = O_RDWR | O_CREAT, - int perms = ACE_DEFAULT_FILE_PERMS); - - /// Resets any event associations on this handle - int reset_new_handle (ACE_HANDLE handle); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - // = Meta-type "trait" information. - typedef ACE_FILE_Addr PEER_ADDR; - typedef ACE_FILE_IO PEER_STREAM; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/FILE_Connector.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_FILE_CONNECTOR_H */ diff --git a/ACE/ace/FILE_Connector.inl b/ACE/ace/FILE_Connector.inl deleted file mode 100644 index d598341ba8d..00000000000 --- a/ACE/ace/FILE_Connector.inl +++ /dev/null @@ -1,36 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// Creates a Local ACE_FILE. - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_FILE_Connector::ACE_FILE_Connector (ACE_FILE_IO &new_io, - const ACE_FILE_Addr &remote_sap, - ACE_Time_Value *timeout, - const ACE_Addr &local_sap, - int reuse_addr, - int flags, - int perms) -{ - ACE_TRACE ("ACE_FILE_Connector::ACE_FILE_Connector"); - if (this->connect (new_io, remote_sap, timeout, local_sap, - reuse_addr, flags, perms) == ACE_IO_SAP::INVALID_HANDLE - && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME)) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("address %s, %p\n"), - remote_sap.get_path_name (), - ACE_TEXT ("ACE_FILE_IO"))); -} - -ACE_INLINE int -ACE_FILE_Connector::reset_new_handle (ACE_HANDLE handle) -{ - ACE_UNUSED_ARG (handle); - // Nothing to do here since the handle is not a socket - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FILE_IO.cpp b/ACE/ace/FILE_IO.cpp deleted file mode 100644 index bf0c41bf418..00000000000 --- a/ACE/ace/FILE_IO.cpp +++ /dev/null @@ -1,142 +0,0 @@ -// $Id$ - -#include "ace/FILE_IO.h" - -#include "ace/Log_Msg.h" -#include "ace/OS_NS_sys_stat.h" -#include "ace/OS_Memory.h" -#include "ace/Truncate.h" - -#if !defined (__ACE_INLINE__) -#include "ace/FILE_IO.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, FILE_IO, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_FILE_IO) - -void -ACE_FILE_IO::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_FILE_IO::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - this->addr_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// Simple-minded do nothing constructor. - -ACE_FILE_IO::ACE_FILE_IO (void) -{ - ACE_TRACE ("ACE_FILE_IO::ACE_FILE_IO"); -} - -// 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_FILE_IO::send (size_t n, ...) const -{ - ACE_TRACE ("ACE_FILE_IO::send"); - va_list argp; - int total_tuples = ACE_Utils::truncate_cast (n / 2); - iovec *iovp = 0; -#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 (int i = 0; i < total_tuples; i++) - { - iovp[i].iov_base = va_arg (argp, char *); - iovp[i].iov_len = va_arg (argp, int); - } - - ssize_t result = ACE_OS::writev (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 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_FILE_IO::recv (size_t n, ...) const -{ - ACE_TRACE ("ACE_FILE_IO::recv"); - va_list argp; - int total_tuples = ACE_Utils::truncate_cast (n / 2); - iovec *iovp = 0; -#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 (int i = 0; i < total_tuples; i++) - { - iovp[i].iov_base = va_arg (argp, char *); - iovp[i].iov_len = va_arg (argp, int); - } - - ssize_t const result = ACE_OS::readv (this->get_handle (), - iovp, - total_tuples); -#if !defined (ACE_HAS_ALLOCA) - delete [] iovp; -#endif /* !defined (ACE_HAS_ALLOCA) */ - va_end (argp); - return result; -} - -// Allows a client to read from a file without having to provide a -// buffer to read. This method determines how much data is in the -// file, allocates a buffer of this size, reads in the data, and -// returns the number of bytes read. - -ssize_t -ACE_FILE_IO::recvv (iovec *io_vec) -{ - ACE_TRACE ("ACE_FILE_IO::recvv"); - - io_vec->iov_base = 0; - size_t const length = static_cast (ACE_OS::filesize (this->get_handle ())); - - if (length > 0) - { - ACE_NEW_RETURN (io_vec->iov_base, - char[length], - -1); - io_vec->iov_len = this->recv_n (io_vec->iov_base, - length); - return io_vec->iov_len; - } - else - return length; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/FILE_IO.h b/ACE/ace/FILE_IO.h deleted file mode 100644 index e975c0cc2c9..00000000000 --- a/ACE/ace/FILE_IO.h +++ /dev/null @@ -1,170 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file FILE_IO.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_FILE_IO_H -#define ACE_FILE_IO_H -#include /**/ "ace/pre.h" - -#include "ace/FILE.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/FILE_Addr.h" - -// Used in the FILE_IO.h file... -#include "ace/os_include/os_stdio.h" -#include "ace/os_include/sys/os_uio.h" - -#if defined (ACE_HAS_STREAM_PIPES) -# include "ace/OS_NS_stropts.h" -#endif /* ACE_HAS_STREAM_PIPES */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward decl. -class ACE_Message_Block; -class ACE_Time_Value; - -/** - * @class ACE_FILE_IO - * - * @brief Read/Write operations on Files - */ -class ACE_Export ACE_FILE_IO : public ACE_FILE -{ -public: - friend class ACE_FILE_Connector; - - // = Initialization method. - /// Default constructor. - ACE_FILE_IO (void); - - /// send upto @a n bytes in @a buf. - ssize_t send (const void *buf, size_t n) const; - - /// Recv upto @a n bytes in @a buf. - ssize_t recv (void *buf, size_t n) const; - - /// 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 and - /// 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, - size_t *bytes_transferred = 0); - - /// Recv n bytes, keep trying until n are received. - ssize_t recv_n (void *buf, size_t n) const; - -#if defined (ACE_HAS_STREAM_PIPES) - /// Send bytes via STREAM pipes. - ssize_t send (const ACE_Str_Buf *cntl, - const ACE_Str_Buf *data, - int flags = 0) const; - - /// Recv bytes via STREAM pipes. - ssize_t recv (ACE_Str_Buf *cntl, - ACE_Str_Buf *data, - int *flags) const; - - /// Send bytes via STREAM pipes using "band" mode. - ssize_t send (const ACE_Str_Buf *cntl, - const ACE_Str_Buf *data, - int band, - int flags) const; - - /// Recv bytes via STREAM pipes using "band" mode. - ssize_t recv (ACE_Str_Buf *cntl, - ACE_Str_Buf *data, - int *band, - int *flags) const; - -#endif /* ACE_HAS_STREAM_PIPES */ - - /// Send iovecs via <::writev>. - ssize_t send (const iovec iov[], int n) const; - - /// Recv iovecs via <::readv>. - ssize_t recv (iovec iov[], int n) const; - - /** - * 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 send (size_t n, ...) const; - - /** - * 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 - * number of tuple pairs! - */ - ssize_t recv (size_t n, ...) const; - - /// Send @a n bytes via Win32 WriteFile using overlapped I/O. - ssize_t send (const void *buf, - size_t n, - ACE_OVERLAPPED *overlapped) const; - - /// Recv @a n bytes via Win32 ReadFile using overlapped I/O. - ssize_t recv (void *buf, - size_t n, - ACE_OVERLAPPED *overlapped) const; - - /// Send an @c iovec of size @a n to the file. - ssize_t sendv (const iovec iov[], - int n) const; - - /** - * Allows a client to read from a file without having to provide a - * buffer to read. This method determines how much data is in the - * file, allocates a buffer of this size, reads in the data, and - * returns the number of bytes read. The caller is responsible for - * deleting the member in the field of using - * delete [] io_vec->iov_base. - */ - ssize_t recvv (iovec *io_vec); - - /// Send an of size @a n to the file. Will block until all - /// bytes are sent or an error occurs. - ssize_t sendv_n (const iovec iov[], - int n) const; - - /// Receive an of size @a n to the file. - ssize_t recvv_n (iovec iov[], - int n) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - // = Meta-type info - typedef ACE_FILE_Addr PEER_ADDR; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/FILE_IO.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_FILE_IO_H */ diff --git a/ACE/ace/FILE_IO.inl b/ACE/ace/FILE_IO.inl deleted file mode 100644 index 7db33a0c717..00000000000 --- a/ACE/ace/FILE_IO.inl +++ /dev/null @@ -1,152 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/ACE.h" -#include "ace/OS_NS_sys_uio.h" -#include "ace/OS_NS_unistd.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE ssize_t -ACE_FILE_IO::sendv_n (const iovec iov[], int n) const -{ - ACE_TRACE ("ACE_FILE_IO::sendv_n"); - return ACE::writev_n (this->get_handle (), - iov, - n); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::send_n (const ACE_Message_Block *message_block, - const ACE_Time_Value *timeout, - size_t *bytes_transferred) -{ - ACE_TRACE ("ACE_FILE_IO::send_n"); - ACE_UNUSED_ARG (timeout); - return ACE::write_n (this->get_handle (), - message_block, - bytes_transferred); -} - -// Recv an n byte message from the file. - -ACE_INLINE ssize_t -ACE_FILE_IO::recvv_n (iovec iov[], int n) const -{ - ACE_TRACE ("ACE_FILE_IO::recvv_n"); - // @@ Carlos, can you please update this to call the - // new ACE::recvv_n() method that you write? - return ACE_OS::readv (this->get_handle (), - iov, - n); -} - -// Send an of size to the file. - -ACE_INLINE ssize_t -ACE_FILE_IO::sendv (const iovec iov[], int n) const -{ - ACE_TRACE ("ACE_FILE_IO::sendv"); - return ACE_OS::writev (this->get_handle (), iov, n); -} - -// Send exactly N bytes from BUF to this file. Keeping trying until -// this many bytes are sent. - -ACE_INLINE ssize_t -ACE_FILE_IO::send_n (const void *buf, size_t n) const -{ - ACE_TRACE ("ACE_FILE_IO::send_n"); - return ACE::write_n (this->get_handle (), buf, n); -} - -// Receive exactly N bytes from this file into BUF. Keep trying until -// this many bytes are received. - -ACE_INLINE ssize_t -ACE_FILE_IO::recv_n (void *buf, size_t n) const -{ - ACE_TRACE ("ACE_FILE_IO::recv_n"); - return ACE::read_n (this->get_handle (), buf, n); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::send (const void *buf, size_t n) const -{ - ACE_TRACE ("ACE_FILE_IO::send"); - return ACE_OS::write (this->get_handle (), buf, n); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::recv (void *buf, size_t n) const -{ - ACE_TRACE ("ACE_FILE_IO::recv"); - return ACE_OS::read (this->get_handle (), buf, n); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::send (const iovec iov[], int n) const -{ - ACE_TRACE ("ACE_FILE_IO::send"); - return ACE_OS::writev (this->get_handle (), iov, n); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::recv (iovec iov[], int n) const -{ - ACE_TRACE ("ACE_FILE_IO::recv"); - return ACE_OS::readv (this->get_handle (), iov, n); -} - -#if defined (ACE_HAS_STREAM_PIPES) -ACE_INLINE ssize_t -ACE_FILE_IO::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *band, int *flags) const -{ - ACE_TRACE ("ACE_FILE_IO::recv"); - return ACE_OS::getpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int band, int flags) const -{ - ACE_TRACE ("ACE_FILE_IO::send"); - return ACE_OS::putpmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, band, flags); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *flags) const -{ - ACE_TRACE ("ACE_FILE_IO::recv"); - return ACE_OS::getmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::send (const ACE_Str_Buf *cntl, const ACE_Str_Buf *data, int flags) const -{ - ACE_TRACE ("ACE_FILE_IO::send"); - return ACE_OS::putmsg (this->get_handle (), (strbuf *) cntl, (strbuf *) data, flags); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::send (const void *buf, size_t n, - ACE_OVERLAPPED *overlapped) const -{ - ACE_TRACE ("ACE_FILE_IO::send"); - return ACE_OS::write (this->get_handle (), - buf, n, - overlapped); -} - -ACE_INLINE ssize_t -ACE_FILE_IO::recv (void *buf, size_t n, - ACE_OVERLAPPED *overlapped) const -{ - ACE_TRACE ("ACE_FILE_IO::recv"); - return ACE_OS::read (this->get_handle (), buf, n, - overlapped); -} - -#endif /* ACE_HAS_STREAM_PIPES */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/File_Lock.cpp b/ACE/ace/File_Lock.cpp deleted file mode 100644 index 88935c3a5d7..00000000000 --- a/ACE/ace/File_Lock.cpp +++ /dev/null @@ -1,72 +0,0 @@ -// $Id$ - -#include "ace/File_Lock.h" -#include "ace/Log_Msg.h" - -#if !defined (__ACE_INLINE__) -#include "ace/File_Lock.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, File_Lock, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_File_Lock) - -void -ACE_File_Lock::dump (void) const -{ -#if defined (ACE_HAS_DUMP) -// ACE_TRACE ("ACE_File_Lock::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - this->lock_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_File_Lock::ACE_File_Lock (ACE_HANDLE h, - int unlink_in_destructor) - : removed_ (0), - unlink_in_destructor_ (unlink_in_destructor) -{ -// ACE_TRACE ("ACE_File_Lock::ACE_File_Lock"); - if (ACE_OS::flock_init (&this->lock_) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_File_Lock::ACE_File_Lock"))); - this->set_handle (h); -} - -ACE_File_Lock::ACE_File_Lock (const ACE_TCHAR *name, - int flags, - mode_t perms, - int unlink_in_destructor) - : unlink_in_destructor_ (unlink_in_destructor) -{ -// ACE_TRACE ("ACE_File_Lock::ACE_File_Lock"); - - if (this->open (name, flags, perms) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p %s\n"), - ACE_TEXT ("ACE_File_Lock::ACE_File_Lock"), - name)); -} - -int -ACE_File_Lock::open (const ACE_TCHAR *name, - int flags, - mode_t perms) -{ -// ACE_TRACE ("ACE_File_Lock::open"); - this->removed_ = 0; - return ACE_OS::flock_init (&this->lock_, flags, name, perms); -} - -ACE_File_Lock::~ACE_File_Lock (void) -{ -// ACE_TRACE ("ACE_File_Lock::~ACE_File_Lock"); - this->remove (this->unlink_in_destructor_); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/File_Lock.h b/ACE/ace/File_Lock.h deleted file mode 100644 index eec103e1fe0..00000000000 --- a/ACE/ace/File_Lock.h +++ /dev/null @@ -1,170 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file File_Lock.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_FILE_LOCK_H -#define ACE_FILE_LOCK_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_stdio.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_File_Lock - * - * @brief A wrapper around the UNIX file locking mechanism. - * - * Allows us to "adapt" the UNIX file locking mechanisms to work - * with all of our Guard stuff... - */ -class ACE_Export ACE_File_Lock -{ -public: - /** - * Set the of the File_Lock to @a handle. Note that this - * constructor assumes ownership of the @a handle and will close it - * down in . If you want the @a handle to stay open when - * is called make sure to call on the @a handle. - * If you don't want the file unlinked in the destructor pass a - * zero value for . - */ - ACE_File_Lock (ACE_HANDLE handle = ACE_INVALID_HANDLE, - int unlink_in_destructor = 1); - - /// Open the @a filename with @a flags and @a mode and set the result - /// to . If you don't want the file unlinked in the - /// destructor pass a zero value for . - ACE_File_Lock (const ACE_TCHAR *filename, - int flags, - mode_t mode = 0, - int unlink_in_destructor = 1); - - /// Open the @a filename with @a flags and @a mode and set the result to - /// . - int open (const ACE_TCHAR *filename, - int flags, - mode_t mode = 0); - - /// Remove a File lock by releasing it and closing down the . - ~ACE_File_Lock (void); - - /// Remove a File lock by releasing it and closing down the - /// . If is non-0 then we unlink the file. - int remove (int unlink_file = 1); - - /** - * Note, for interface uniformity with other synchronization - * wrappers we include the 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); - - /** - * Note, for interface uniformity with other synchronization - * wrappers we include the method. This is implemented - * as a write-lock to be on the safe-side... Returns -1 on failure. - * If we "failed" because someone else already had the lock, @c errno - * is set to @c EBUSY. - */ - int tryacquire (short whence = 0, ACE_OFF_T start = 0, ACE_OFF_T len = 1); - - /// Unlock a readers/writer lock. - int release (short whence = 0, ACE_OFF_T start = 0, ACE_OFF_T len = 1); - - /// Acquire a write lock, but block if any readers or a - /// writer hold the lock. - int acquire_write (short whence = 0, ACE_OFF_T start = 0, ACE_OFF_T len = 1); - - /** - * Conditionally acquire a write lock (i.e., won't block). Returns - * -1 on failure. If we "failed" because someone else already had - * the lock, @c errno is set to @c EBUSY. - */ - int tryacquire_write (short whence = 0, ACE_OFF_T start = 0, ACE_OFF_T len = 1); - - /** - * Conditionally upgrade to a write lock (i.e., won't block). Returns - * -1 on failure. If we "failed" because someone else already had - * the lock, @c errno is set to @c EBUSY. - */ - int tryacquire_write_upgrade (short whence = 0, - ACE_OFF_T start = 0, - ACE_OFF_T len = 1); - - /** - * Acquire a read lock, but block if a writer hold the lock. - * Returns -1 on failure. If we "failed" because someone else - * already had the lock, @c errno is set to @c EBUSY. - */ - int acquire_read (short whence = 0, ACE_OFF_T start = 0, ACE_OFF_T len = 1); - - /** - * Conditionally acquire a read lock (i.e., won't block). Returns - * -1 on failure. If we "failed" because someone else already had - * the lock, @c errno is set to @c EBUSY. - */ - int tryacquire_read (short whence = 0, ACE_OFF_T start = 0, ACE_OFF_T len = 1); - - /// Get underlying ACE_HANDLE for the file. - ACE_HANDLE get_handle (void) const; - - /** - * Set underlying ACE_HANDLE. Note that this method assumes - * ownership of the and will close it down in . If - * you want the to stay open when is called make - * sure to call on the before closing it. You are - * responsible for the closing the existing before - * overwriting it. - */ - void set_handle (ACE_HANDLE); - - /// Dump state of the object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Locking structure for OS record locks. - ACE_OS::ace_flock_t lock_; - - /// Keeps track of whether has been called yet to avoid - /// multiple 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 - /// on the same object, which is a bad idea anyway... - int removed_; - - /// Keeps track of whether to unlink the underlying file in the - /// destructor. - int unlink_in_destructor_; - -private: - // = Prevent assignment and initialization. - void operator= (const ACE_File_Lock &); - ACE_File_Lock (const ACE_File_Lock &); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/File_Lock.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_FILE_LOCK_H */ diff --git a/ACE/ace/File_Lock.inl b/ACE/ace/File_Lock.inl deleted file mode 100644 index bef9de9d063..00000000000 --- a/ACE/ace/File_Lock.inl +++ /dev/null @@ -1,96 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE int -ACE_File_Lock::acquire_read (short whence, ACE_OFF_T start, ACE_OFF_T len) -{ -// ACE_TRACE ("ACE_File_Lock::acquire_read"); - return ACE_OS::flock_rdlock (&this->lock_, whence, start, len); -} - -ACE_INLINE int -ACE_File_Lock::tryacquire_read (short whence, ACE_OFF_T start, ACE_OFF_T len) -{ -// ACE_TRACE ("ACE_File_Lock::tryacquire_read"); - return ACE_OS::flock_tryrdlock (&this->lock_, whence, start, len); -} - -ACE_INLINE int -ACE_File_Lock::tryacquire_write (short whence, ACE_OFF_T start, ACE_OFF_T len) -{ -// ACE_TRACE ("ACE_File_Lock::tryacquire_write"); - return ACE_OS::flock_trywrlock (&this->lock_, whence, start, len); -} - -ACE_INLINE int -ACE_File_Lock::tryacquire_write_upgrade (short whence, - ACE_OFF_T start, - ACE_OFF_T len) -{ -// ACE_TRACE ("ACE_File_Lock::tryacquire_write_upgrade"); - return ACE_OS::flock_trywrlock (&this->lock_, whence, start, len); -} - -ACE_INLINE int -ACE_File_Lock::tryacquire (short whence, ACE_OFF_T start, ACE_OFF_T len) -{ -// ACE_TRACE ("ACE_File_Lock::tryacquire"); - return this->tryacquire_write (whence, start, len); -} - -ACE_INLINE int -ACE_File_Lock::acquire_write (short whence, ACE_OFF_T start, ACE_OFF_T len) -{ -// ACE_TRACE ("ACE_File_Lock::acquire_write"); - return ACE_OS::flock_wrlock (&this->lock_, whence, start, len); -} - -ACE_INLINE int -ACE_File_Lock::acquire (short whence, ACE_OFF_T start, ACE_OFF_T len) -{ -// ACE_TRACE ("ACE_File_Lock::acquire"); - return this->acquire_write (whence, start, len); -} - -ACE_INLINE int -ACE_File_Lock::release (short whence, ACE_OFF_T start, ACE_OFF_T len) -{ -// ACE_TRACE ("ACE_File_Lock::release"); - return ACE_OS::flock_unlock (&this->lock_, whence, start, len); -} - -ACE_INLINE int -ACE_File_Lock::remove (int unlink_file) -{ -// ACE_TRACE ("ACE_File_Lock::remove"); - - int result = 0; - - if (this->removed_ == 0) - { - this->removed_ = 1; - result = ACE_OS::flock_destroy (&this->lock_, - unlink_file); - } - return result; -} - -ACE_INLINE ACE_HANDLE -ACE_File_Lock::get_handle (void) const -{ -// ACE_TRACE ("ACE_File_Lock::get_handle"); - return this->lock_.handle_; -} - -ACE_INLINE void -ACE_File_Lock::set_handle (ACE_HANDLE h) -{ -// ACE_TRACE ("ACE_File_Lock::set_handle"); - this->lock_.handle_ = h; - this->removed_ = 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Filecache.cpp b/ACE/ace/Filecache.cpp deleted file mode 100644 index 5122cb6fdc8..00000000000 --- a/ACE/ace/Filecache.cpp +++ /dev/null @@ -1,754 +0,0 @@ -// $Id$ - -#include "ace/Filecache.h" -#include "ace/Object_Manager.h" -#include "ace/Log_Msg.h" -#include "ace/ACE.h" -#include "ace/Guard_T.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_time.h" -#include "ace/OS_NS_unistd.h" -#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 -#define W_MASK 0 -#else -#define R_MASK S_IRUSR|S_IRGRP|S_IROTH -#define W_MASK S_IRUSR|S_IRGRP|S_IROTH|S_IWUSR|S_IWGRP|S_IWOTH -#endif /* ACE_WIN32 */ - -#if defined (ACE_WIN32) -// See if you can get rid of some of these. -#define READ_FLAGS (FILE_FLAG_SEQUENTIAL_SCAN | \ - FILE_FLAG_OVERLAPPED | \ - O_RDONLY) -// static const int RCOPY_FLAGS = (FILE_FLAG_SEQUENTIAL_SCAN | -// O_RDONLY); -#define WRITE_FLAGS (FILE_FLAG_SEQUENTIAL_SCAN | \ - FILE_FLAG_OVERLAPPED | \ - O_RDWR | O_CREAT | O_TRUNC) -// static const int WCOPY_FLAGS = (FILE_FLAG_SEQUENTIAL_SCAN | -// O_RDWR | O_CREAT | O_TRUNC); -#else -#define READ_FLAGS O_RDONLY -// static const int RCOPY_FLAGS = O_RDONLY; -#define WRITE_FLAGS (O_RDWR | O_CREAT | O_TRUNC) -// static const int WCOPY_FLAGS = O_RDWR | O_CREAT | O_TRUNC; -#endif /* ACE_WIN32 */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// static data members -ACE_Filecache *ACE_Filecache::cvf_ = 0; - -void -ACE_Filecache_Handle::init (void) -{ - this->file_ = 0; - this->handle_ = ACE_INVALID_HANDLE; -} - -ACE_Filecache_Handle::ACE_Filecache_Handle (void) - : file_ (0), handle_ (0), mapit_ (0) -{ - this->init (); -} - -ACE_Filecache_Handle::ACE_Filecache_Handle (const ACE_TCHAR *filename, - ACE_Filecache_Flag mapit) - : file_ (0), handle_ (0), mapit_ (mapit) -{ - this->init (); - // Fetch the file from the Virtual_Filesystem let the - // Virtual_Filesystem do the work of cache coherency. - - // Filecache will also do the acquire, since it holds the lock at - // that time. - this->file_ = ACE_Filecache::instance ()->fetch (filename, mapit); -} - -ACE_Filecache_Handle::ACE_Filecache_Handle (const ACE_TCHAR *filename, - int size, - ACE_Filecache_Flag mapit) - : file_ (0), handle_ (0), mapit_ (mapit) -{ - this->init (); - - if (size == 0) - ACE_Filecache::instance ()->remove (filename); - else - { - // Since this is being opened for a write, simply create a new - // ACE_Filecache_Object now, and let the destructor add it into CVF - // later - - // Filecache will also do the acquire, since it holds the lock at - // that time. - this->file_ = ACE_Filecache::instance ()->create (filename, size); - } -} - -ACE_Filecache_Handle::~ACE_Filecache_Handle (void) -{ - if (this->handle_ != ACE_INVALID_HANDLE) - // this was dup ()'d - ACE_OS::close (this->handle_); - - ACE_Filecache::instance ()->finish (this->file_); -} - -void * -ACE_Filecache_Handle::address (void) const -{ - return this->file_ == 0 ? 0 : this->file_->address (); -} - -ACE_HANDLE -ACE_Filecache_Handle::handle (void) const -{ - if (this->handle_ == ACE_INVALID_HANDLE && this->file_ != 0) - { - ACE_Filecache_Handle *mutable_this = - const_cast (this); - mutable_this->handle_ = ACE_OS::dup (this->file_->handle ()); - } - return this->handle_; -} - -int -ACE_Filecache_Handle::error (void) const -{ - if (this->file_ == 0) - return -1; - else - return this->file_->error (); -} - -ACE_OFF_T -ACE_Filecache_Handle::size (void) const -{ - if (this->file_ == 0) - return -1; - else - return this->file_->size (); -} - -// ------------------ -// ACE_Filecache_Hash -// ------------------ - -#define ACE_Filecache_Hash \ - ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex> -#define ACE_Filecache_Hash_Entry \ - ACE_Hash_Map_Entry - -template <> -ACE_Filecache_Hash_Entry::ACE_Hash_Map_Entry ( - const ACE_TCHAR *const &ext_id, - ACE_Filecache_Object *const &int_id, - ACE_Filecache_Hash_Entry *next, - ACE_Filecache_Hash_Entry *prev) - : ext_id_ (ext_id - ? ACE_OS::strdup (ext_id) - : ACE_OS::strdup (ACE_TEXT (""))), - int_id_ (int_id), - next_ (next), - prev_ (prev) -{ -} - -template <> -ACE_Filecache_Hash_Entry::ACE_Hash_Map_Entry (ACE_Filecache_Hash_Entry *next, - ACE_Filecache_Hash_Entry *prev) - : ext_id_ (0), - next_ (next), - prev_ (prev) -{ -} - -template <> -ACE_Filecache_Hash_Entry::~ACE_Hash_Map_Entry (void) -{ - ACE_OS::free ((void *) ext_id_); -} - -// We need these template specializations since KEY is defined as a -// ACE_TCHAR*, which doesn't have a hash() or equal() method defined on it. - -template <> -unsigned long -ACE_Filecache_Hash::hash (const ACE_TCHAR *const &ext_id) -{ - return ACE::hash_pjw (ext_id); -} - -template <> -int -ACE_Filecache_Hash::equal (const ACE_TCHAR *const &id1, - const ACE_TCHAR *const &id2) -{ - return ACE_OS::strcmp (id1, id2) == 0; -} - -#undef ACE_Filecache_Hash -#undef ACE_Filecache_Hash_Entry - - -// ------------- -// ACE_Filecache -// ------------- - -ACE_Filecache * -ACE_Filecache::instance (void) -{ - // Double check locking pattern. - if (ACE_Filecache::cvf_ == 0) - { - ACE_SYNCH_RW_MUTEX &lock = - *ACE_Managed_Object::get_preallocated_object - (ACE_Object_Manager::ACE_FILECACHE_LOCK); - ACE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, ace_mon, lock, 0); - - // @@ James, please check each of the ACE_NEW_RETURN calls to - // make sure that it is safe to return if allocation fails. - if (ACE_Filecache::cvf_ == 0) - ACE_NEW_RETURN (ACE_Filecache::cvf_, - ACE_Filecache, - 0); - } - - return ACE_Filecache::cvf_; -} - -ACE_Filecache::ACE_Filecache (void) - : size_ (ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE), - hash_ (size_) -{ -} - -ACE_Filecache::~ACE_Filecache (void) -{ -} - -ACE_Filecache_Object * -ACE_Filecache::insert_i (const ACE_TCHAR *filename, - ACE_SYNCH_RW_MUTEX &filelock, - int mapit) -{ - ACE_Filecache_Object *handle = 0; - - if (this->hash_.find (filename, handle) == -1) - { - ACE_NEW_RETURN (handle, - ACE_Filecache_Object (filename, filelock, 0, mapit), - 0); - - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" (%t) CVF: creating %s\n"), filename)); - - if (this->hash_.bind (filename, handle) == -1) - { - delete handle; - handle = 0; - } - } - else - handle = 0; - - return handle; -} - -ACE_Filecache_Object * -ACE_Filecache::remove_i (const ACE_TCHAR *filename) -{ - ACE_Filecache_Object *handle = 0; - - // Disassociate file from the cache. - if (this->hash_.unbind (filename, handle) == 0) - { - handle->stale_ = 1; - - // Try a lock. If it succeeds, we can delete it now. - // Otherwise, it will clean itself up later. - if (handle->lock_.tryacquire_write () == 0) - { - delete handle; - handle = 0; - } - } - else - handle = 0; - - return handle; -} - -ACE_Filecache_Object * -ACE_Filecache::update_i (const ACE_TCHAR *filename, - ACE_SYNCH_RW_MUTEX &filelock, - int mapit) -{ - ACE_Filecache_Object *handle = 0; - - handle = this->remove_i (filename); - handle = this->insert_i (filename, filelock, mapit); - - return handle; -} - -int -ACE_Filecache::find (const ACE_TCHAR *filename) -{ - return this->hash_.find (filename); -} - - -ACE_Filecache_Object * -ACE_Filecache::remove (const ACE_TCHAR *filename) -{ - ACE_Filecache_Object *handle = 0; - - ACE_OFF_T loc = ACE::hash_pjw (filename) % this->size_; - ACE_SYNCH_RW_MUTEX &hashlock = this->hash_lock_[loc]; - // ACE_SYNCH_RW_MUTEX &filelock = this->file_lock_[loc]; - - if (this->hash_.find (filename, handle) != -1) - { - ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, - ace_mon, - hashlock, - 0); - - return this->remove_i (filename); - } - - return 0; -} - - -ACE_Filecache_Object * -ACE_Filecache::fetch (const ACE_TCHAR *filename, int mapit) -{ - ACE_Filecache_Object *handle = 0; - - ACE_OFF_T loc = ACE::hash_pjw (filename) % this->size_; - ACE_SYNCH_RW_MUTEX &hashlock = this->hash_lock_[loc]; - ACE_SYNCH_RW_MUTEX &filelock = this->file_lock_[loc]; - - filelock.acquire_read (); - - if (this->hash_.find (filename, handle) == -1) - { - ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, - ace_mon, - hashlock, - 0); - - // Second check in the method call - handle = this->insert_i (filename, filelock, mapit); - - if (handle == 0) - filelock.release (); - } - else - { - if (handle->update ()) - { - { - // Double check locking pattern - ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, - ace_mon, - hashlock, - 0); - - // Second check in the method call - handle = this->update_i (filename, filelock, mapit); - - if (handle == 0) - filelock.release (); - } - } - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" (%t) CVF: found %s\n"), filename)); - } - - return handle; -} - -ACE_Filecache_Object * -ACE_Filecache::create (const ACE_TCHAR *filename, int size) -{ - ACE_Filecache_Object *handle = 0; - - ACE_OFF_T loc = ACE::hash_pjw (filename) % this->size_; - ACE_SYNCH_RW_MUTEX &filelock = this->file_lock_[loc]; - - ACE_NEW_RETURN (handle, - ACE_Filecache_Object (filename, size, filelock), - 0); - handle->acquire (); - - return handle; -} - -ACE_Filecache_Object * -ACE_Filecache::finish (ACE_Filecache_Object *&file) -{ - if (file == 0) - return file; - - ACE_OFF_T loc = ACE::hash_pjw (file->filename_) % this->size_; - ACE_SYNCH_RW_MUTEX &hashlock = this->hash_lock_[loc]; - - if (file != 0) - switch (file->action_) - { - case ACE_Filecache_Object::ACE_WRITING: - { - ACE_WRITE_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, - ace_mon, - hashlock, - 0); - - file->release (); - - this->remove_i (file->filename_); -#if 0 - int result = this->hash_.bind (file->filename (), file); - - if (result == 0) - file->acquire (); -#else - // Last one using a stale file is resposible for deleting it. - if (file->stale_) - { - // Try a lock. If it succeds, we can delete it now. - // Otherwise, it will clean itself up later. - if (file->lock_.tryacquire_write () == 0) - { - delete file; - file = 0; - } - } -#endif - } - - break; - default: - file->release (); - - // Last one using a stale file is resposible for deleting it. - if (file->stale_) - { - // Try a lock. If it succeds, we can delete it now. - // Otherwise, it will clean itself up later. - if (file->lock_.tryacquire_write () == 0) - { - delete file; - file = 0; - } - } - - break; - } - - return file; -} - -void -ACE_Filecache_Object::init (void) -{ - this->filename_[0] = '\0'; - this->handle_ = ACE_INVALID_HANDLE; - this->error_ = ACE_SUCCESS; - this->tempname_ = 0; - this->size_ = 0; - - ACE_OS::memset (&(this->stat_), 0, sizeof (this->stat_)); -} - -ACE_Filecache_Object::ACE_Filecache_Object (void) - : tempname_ (0), - mmap_ (), - handle_ (0), - // stat_ (), - size_ (0), - action_ (0), - error_ (0), - stale_ (0), - // sa_ (), - junklock_ (), - lock_ (junklock_) -{ - this->init (); -} - -ACE_Filecache_Object::ACE_Filecache_Object (const ACE_TCHAR *filename, - ACE_SYNCH_RW_MUTEX &lock, - LPSECURITY_ATTRIBUTES sa, - int mapit) - : tempname_ (0), - mmap_ (), - handle_ (0), - // stat_ (), - size_ (0), - action_ (0), - error_ (0), - stale_ (0), - sa_ (sa), - junklock_ (), - lock_ (lock) -{ - this->init (); - - // ASSERT strlen(filename) < sizeof (this->filename_) - ACE_OS::strcpy (this->filename_, filename); - this->action_ = ACE_Filecache_Object::ACE_READING; - // place ourselves into the READING state - - // Can we access the file? - if (ACE_OS::access (this->filename_, R_OK) == -1) - { - this->error_i (ACE_Filecache_Object::ACE_ACCESS_FAILED); - return; - } - - // Can we stat the file? - if (ACE_OS::stat (this->filename_, &this->stat_) == -1) - { - this->error_i (ACE_Filecache_Object::ACE_STAT_FAILED); - return; - } - - this->size_ = ACE_Utils::truncate_cast (this->stat_.st_size); - this->tempname_ = this->filename_; - - // Can we open the file? - this->handle_ = ACE_OS::open (this->tempname_, - READ_FLAGS, R_MASK, this->sa_); - if (this->handle_ == ACE_INVALID_HANDLE) - { - this->error_i (ACE_Filecache_Object::ACE_OPEN_FAILED, - ACE_TEXT ("ACE_Filecache_Object::ctor: open")); - return; - } - - if (mapit) - { - // Can we map the file? - if (this->mmap_.map (this->handle_, static_cast (-1), - PROT_READ, ACE_MAP_PRIVATE, 0, 0, this->sa_) != 0) - { - this->error_i (ACE_Filecache_Object::ACE_MEMMAP_FAILED, - ACE_TEXT ("ACE_Filecache_Object::ctor: map")); - ACE_OS::close (this->handle_); - this->handle_ = ACE_INVALID_HANDLE; - return; - } - } - - // Ok, finished! - this->action_ = ACE_Filecache_Object::ACE_READING; -} - -ACE_Filecache_Object::ACE_Filecache_Object (const ACE_TCHAR *filename, - ACE_OFF_T size, - ACE_SYNCH_RW_MUTEX &lock, - LPSECURITY_ATTRIBUTES sa) - : stale_ (0), - sa_ (sa), - lock_ (lock) -{ - this->init (); - - this->size_ = size; - ACE_OS::strcpy (this->filename_, filename); - this->action_ = ACE_Filecache_Object::ACE_WRITING; - - // Can we access the file? - if (ACE_OS::access (this->filename_, R_OK|W_OK) == -1 - // Does it exist? - && ACE_OS::access (this->filename_, F_OK) != -1) - { - // File exists, but we cannot access it. - this->error_i (ACE_Filecache_Object::ACE_ACCESS_FAILED); - return; - } - - this->tempname_ = this->filename_; - - // Can we open the file? - this->handle_ = ACE_OS::open (this->tempname_, WRITE_FLAGS, W_MASK, this->sa_); - if (this->handle_ == ACE_INVALID_HANDLE) - { - this->error_i (ACE_Filecache_Object::ACE_OPEN_FAILED, - ACE_TEXT ("ACE_Filecache_Object::acquire: open")); - return; - } - - // Can we write? - if (ACE_OS::pwrite (this->handle_, "", 1, this->size_ - 1) != 1) - { - this->error_i (ACE_Filecache_Object::ACE_WRITE_FAILED, - ACE_TEXT ("ACE_Filecache_Object::acquire: write")); - ACE_OS::close (this->handle_); - return; - } - - // Can we map? - if (this->mmap_.map (this->handle_, this->size_, PROT_RDWR, MAP_SHARED, - 0, 0, this->sa_) != 0) - { - this->error_i (ACE_Filecache_Object::ACE_MEMMAP_FAILED, - ACE_TEXT ("ACE_Filecache_Object::acquire: map")); - ACE_OS::close (this->handle_); - } - - // Ok, done! -} - -ACE_Filecache_Object::~ACE_Filecache_Object (void) -{ - if (this->error_ == ACE_SUCCESS) - { - this->mmap_.unmap (); - ACE_OS::close (this->handle_); - this->handle_ = ACE_INVALID_HANDLE; - } - - this->lock_.release (); -} - -int -ACE_Filecache_Object::acquire (void) -{ - return this->lock_.tryacquire_read (); -} - -int -ACE_Filecache_Object::release (void) -{ - if (this->action_ == ACE_WRITING) - { - // We are safe since only one thread has a writable Filecache_Object - -#if 0 - ACE_HANDLE original = ACE_OS::open (this->filename_, WRITE_FLAGS, W_MASK, - this->sa_); - if (original == ACE_INVALID_HANDLE) - this->error_ = ACE_Filecache_Object::ACE_OPEN_FAILED; - else if (ACE_OS::write (original, this->mmap_.addr (), - this->size_) == -1) - { - this->error_ = ACE_Filecache_Object::ACE_WRITE_FAILED; - ACE_OS::close (original); - ACE_OS::unlink (this->filename_); - } - else if (ACE_OS::stat (this->filename_, &this->stat_) == -1) - this->error_ = ACE_Filecache_Object::ACE_STAT_FAILED; -#endif - - this->mmap_.unmap (); - ACE_OS::close (this->handle_); - this->handle_ = ACE_INVALID_HANDLE; - -#if 0 - // Leave the file in an acquirable state. - this->handle_ = ACE_OS::open (this->tempname_, READ_FLAGS, R_MASK); - if (this->handle_ == ACE_INVALID_HANDLE) - { - this->error_i (ACE_Filecache_Object::ACE_OPEN_FAILED, - "ACE_Filecache_Object::acquire: open"); - } - else if (this->mmap_.map (this->handle_, -1, - PROT_READ, - ACE_MAP_PRIVATE, - 0, - 0, - this->sa_) != 0) - { - this->error_i (ACE_Filecache_Object::ACE_MEMMAP_FAILED, - "ACE_Filecache_Object::acquire: map"); - ACE_OS::close (this->handle_); - this->handle_ = ACE_INVALID_HANDLE; - } - - this->action_ = ACE_Filecache_Object::ACE_READING; -#endif - } - - return this->lock_.release (); -} - -int -ACE_Filecache_Object::error (void) const -{ - // The existence of the object means a read lock is being held. - return this->error_; -} - -int -ACE_Filecache_Object::error_i (int error_value, const ACE_TCHAR *s) -{ - s = s; - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p.\n"), s)); - this->error_ = error_value; - return error_value; -} - -const ACE_TCHAR * -ACE_Filecache_Object::filename (void) const -{ - // The existence of the object means a read lock is being held. - return this->filename_; -} - -ACE_OFF_T -ACE_Filecache_Object::size (void) const -{ - // The existence of the object means a read lock is being held. - return this->size_; -} - -ACE_HANDLE -ACE_Filecache_Object::handle (void) const -{ - // The existence of the object means a read lock is being held. - return this->handle_; -} - -void * -ACE_Filecache_Object::address (void) const -{ - // The existence of the object means a read lock is being held. - return this->mmap_.addr (); -} - -int -ACE_Filecache_Object::update (void) const -{ - // The existence of the object means a read lock is being held. - int result; - ACE_stat statbuf; - - if (ACE_OS::stat (this->filename_, &statbuf) == -1) - result = 1; - else - // non-portable code may follow -#if defined (ACE_HAS_WINCE) - // Yup, non-portable... there's probably a way to safely implement - // difftime() on WinCE, but for now, this will have to do. It flags - // every file as having changed since cached. - result = 1; -#else - result = ACE_OS::difftime (this->stat_.st_mtime, statbuf.st_mtime) < 0; -#endif /* ACE_HAS_WINCE */ - - return result; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Filecache.h b/ACE/ace/Filecache.h deleted file mode 100644 index df1835b9372..00000000000 --- a/ACE/ace/Filecache.h +++ /dev/null @@ -1,353 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Filecache.h - * - * $Id$ - * - * @author James Hu - */ -//============================================================================= - - -#ifndef ACE_FILECACHE_H -#define ACE_FILECACHE_H - -#include /**/ "ace/pre.h" - -#include "ace/Mem_Map.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Hash_Map_Manager_T.h" -#include "ace/Null_Mutex.h" -#include "ace/Synch_Traits.h" -#include "ace/RW_Thread_Mutex.h" -#include "ace/OS_NS_sys_stat.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -enum ACE_Filecache_Flag -{ - ACE_NOMAP = 0, - ACE_MAPIT = 1 -}; - -class ACE_Filecache_Object; - -/** - * @class ACE_Filecache_Handle - * - * @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 - * implementation of JAWS_File. The interfaces will be nearly the - * same. The under-the-hood implementation should hopefully be a - * much faster thing. - * These will be given their own implementations later. For now, we - * borrow the implementation provided by JAWS. - * On creation, the cache is checked, and reference count is - * incremented. On destruction, reference count is decremented. If - * the reference count is 0, the file is removed from the cache. - * E.g. 1, - * { - * ACE_Filecache_Handle foo("foo.html"); - * this->peer ().send (foo.address (), foo.size ()); - * } - * E.g. 2, - * { - * ACE_Filecache_Handle foo("foo.html"); - * io->transmitfile (foo.handle (), this->peer ().handle ()); - * } - * E.g. 3, - * { - * ACE_Filecache_Handle foo("foo.html", content_length); - * this->peer ().recv (foo.address (), content_length); - * } - * TODO: - */ -class ACE_Export ACE_Filecache_Handle -{ - // (1) Get rid of the useless copying of files when reading. - // Although it does make sure the file you send isn't being changed, - // it doesn't make sure the file is in a sensible state before - // sending it. - // - // Alternative: if the file get's trashed while it is being shipped, - // let the client request the file again. The cache should have an - // updated copy by that point. - // - // (2) Use hashing for locating files. This means I need a hastable - // implementation with buckets. - // - // (3) Only lock when absolutely necessary. JAWS_Virtual_Filesystem was - // rather conservative, but for some reason it still ran into problems. - // Since this design should be simpler, problems should be easier to spot. - // -public: - - /// Query cache for file, and acquire it. Assumes the file is being - /// opened for reading. - ACE_Filecache_Handle (const ACE_TCHAR *filename, - ACE_Filecache_Flag mapit = ACE_MAPIT); - - /** - * Create new entry, and acquire it. Presence of SIZE assumes the - * file is being opened for writing. If SIZE is zero, assumes the - * file is to be removed from the cache. - */ - ACE_Filecache_Handle (const ACE_TCHAR *filename, - int size, - ACE_Filecache_Flag mapit = ACE_MAPIT); - - /// Closes any open handles, release acquired file. - ~ACE_Filecache_Handle (void); - - /// Base address of memory mapped file. - void *address (void) const; - - /// A handle (e.g., UNIX file descriptor, or NT file handle). - ACE_HANDLE handle (void) const; - - /// Any associated error in handle creation and acquisition. - int error (void) const; - - /// The size of the file. - ACE_OFF_T size (void) const; - -protected: - /// Default do nothing constructor. Prevent it from being called. - ACE_Filecache_Handle (void); - - /// Common initializations for constructors. - void init (void); - -public: - /// These come from ACE_Filecache_Object, which is an internal class. - enum - { - ACE_SUCCESS = 0, - ACE_ACCESS_FAILED, - ACE_OPEN_FAILED, - ACE_COPY_FAILED, - ACE_STAT_FAILED, - ACE_MEMMAP_FAILED, - ACE_WRITE_FAILED - }; - -private: - /// A reference to the low level instance. - ACE_Filecache_Object *file_; - - /// A 'd version of the one from . - ACE_HANDLE handle_; - - int mapit_; -}; - -typedef ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex> - ACE_Filecache_Hash; - -typedef ACE_Hash_Map_Entry ACE_Filecache_Hash_Entry; - -/** - * @class ACE_Filecache - * - * @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. - */ -class ACE_Export ACE_Filecache -{ -public: - /// Singleton pattern. - static ACE_Filecache *instance (void); - - ~ACE_Filecache (void); - - /// Returns 0 if the file associated with ``filename'' is in the cache, - /// or -1 if not. - int find (const ACE_TCHAR *filename); - - /// Return the file associated with ``filename'' if it is in the cache, - /// or create if not. - ACE_Filecache_Object *fetch (const ACE_TCHAR *filename, int mapit = 1); - - /// Remove the file associated with ``filename'' from the cache. - ACE_Filecache_Object *remove (const ACE_TCHAR *filename); - - /// Create a new Filecache_Object, returns it. - ACE_Filecache_Object *create (const ACE_TCHAR *filename, int size); - - /// Release an acquired Filecache_Object, returns it again or NULL if it - /// was deleted. - ACE_Filecache_Object *finish (ACE_Filecache_Object *&new_file); - -protected: - ACE_Filecache_Object *insert_i (const ACE_TCHAR *filename, - ACE_SYNCH_RW_MUTEX &filelock, - int mapit); - ACE_Filecache_Object *remove_i (const ACE_TCHAR *filename); - ACE_Filecache_Object *update_i (const ACE_TCHAR *filename, - ACE_SYNCH_RW_MUTEX &filelock, - int mapit); - -public: - - enum - { - /// For this stupid implementation, use an array. Someday, use a - /// balanced search tree, or real hash table. - ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE = 512, - - /// This determines the highwater mark in megabytes for the cache. - /// This will be ignored for now. - ACE_DEFAULT_VIRTUAL_FILESYSTEM_CACHE_SIZE = 20 - }; - -protected: - /// Prevent it from being called. - ACE_Filecache (void); - -private: - ACE_OFF_T size_; - - /// The hash table - ACE_Filecache_Hash hash_; - - /// The reference to the instance - static ACE_Filecache *cvf_; - - // = Synchronization variables. - ACE_SYNCH_RW_MUTEX hash_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE]; - ACE_SYNCH_RW_MUTEX file_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE]; -}; - -/** - * @class ACE_Filecache_Object - * - * @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. - */ -class ACE_Export ACE_Filecache_Object -{ -public: - friend class ACE_Filecache; - - /// Creates a file for reading. - ACE_Filecache_Object (const ACE_TCHAR *filename, - ACE_SYNCH_RW_MUTEX &lock, - LPSECURITY_ATTRIBUTES sa = 0, - int mapit = 1); - - /// Creates a file for writing. - ACE_Filecache_Object (const ACE_TCHAR *filename, - ACE_OFF_T size, - ACE_SYNCH_RW_MUTEX &lock, - LPSECURITY_ATTRIBUTES sa = 0); - - /// Only if reference count is zero should this be called. - ~ACE_Filecache_Object (void); - - /// Increment the reference_count_. - int acquire (void); - - /// Decrement the reference_count_. - int release (void); - - // = error_ accessors - int error (void) const; - int error (int error_value, - const ACE_TCHAR *s = ACE_TEXT ("ACE_Filecache_Object")); - - /// filename_ accessor - const ACE_TCHAR *filename (void) const; - - /// handle_ accessor. - ACE_HANDLE handle (void) const; - - /// Base memory address for memory mapped file. - void *address (void) const; - - /// size_ accessor. - ACE_OFF_T size (void) const; - - /// True if file on disk is newer than cached file. - int update (void) const; - -protected: - /// Prevent from being called. - ACE_Filecache_Object (void); - - /// Common initialization code, - void init (void); - -private: - /// Internal error logging method, no locking. - int error_i (int error_value, - const ACE_TCHAR *s = ACE_TEXT ("ACE_Filecache_Object")); - -public: - - enum Creation_States - { - ACE_READING = 1, - ACE_WRITING = 2 - }; - - enum Error_Conditions - { - ACE_SUCCESS = 0, - ACE_ACCESS_FAILED, - ACE_OPEN_FAILED, - ACE_COPY_FAILED, - ACE_STAT_FAILED, - ACE_MEMMAP_FAILED, - ACE_WRITE_FAILED - }; - -private: - /// The temporary file name and the real file name. The real file is - /// copied into the temporary file for safety reasons. - ACE_TCHAR *tempname_; - ACE_TCHAR filename_[MAXPATHLEN + 1]; - - /// Holds the memory mapped version of the temporary file. - ACE_Mem_Map mmap_; - - /// The descriptor to the temporary file. - ACE_HANDLE handle_; - - /// Used to compare against the real file to test if an update is needed. - ACE_stat stat_; - ACE_OFF_T size_; - - /// Status indicators. - int action_; - int error_; - - /// If set to 1, means the object is flagged for removal. - int stale_; - - /// Security attribute object. - LPSECURITY_ATTRIBUTES sa_; - - /// The default initializer - ACE_SYNCH_RW_MUTEX junklock_; - - /// Provides a bookkeeping mechanism for users of this object. - ACE_SYNCH_RW_MUTEX &lock_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" - -#endif /* ACE_FILECACHE_H */ diff --git a/ACE/ace/FlReactor/ACE_FlReactor.pc.in b/ACE/ace/FlReactor/ACE_FlReactor.pc.in deleted file mode 100644 index c284481585d..00000000000 --- a/ACE/ace/FlReactor/ACE_FlReactor.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: ACE_FlReactor -Description: ACE FlReactor Library -Requires: ACE -Version: @VERSION@ -Libs: -L${libdir} -lACE_FlReactor -Cflags: -I${includedir} diff --git a/ACE/ace/FlReactor/ACE_FlReactor_export.h b/ACE/ace/FlReactor/ACE_FlReactor_export.h deleted file mode 100644 index f46b66cb3f7..00000000000 --- a/ACE/ace/FlReactor/ACE_FlReactor_export.h +++ /dev/null @@ -1,58 +0,0 @@ - -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl -s ACE_FlReactor -// ------------------------------ -#ifndef ACE_FLREACTOR_EXPORT_H -#define ACE_FLREACTOR_EXPORT_H - -#include /**/ "ace/config-all.h" - -#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_FLREACTOR_HAS_DLL) -# define ACE_FLREACTOR_HAS_DLL 0 -#endif /* ACE_AS_STATIC_LIBS && ACE_FLREACTOR_HAS_DLL */ - -#if !defined (ACE_FLREACTOR_HAS_DLL) -# define ACE_FLREACTOR_HAS_DLL 1 -#endif /* ! ACE_FLREACTOR_HAS_DLL */ - -#if defined (ACE_FLREACTOR_HAS_DLL) && (ACE_FLREACTOR_HAS_DLL == 1) -# if defined (ACE_FLREACTOR_BUILD_DLL) -# define ACE_FlReactor_Export ACE_Proper_Export_Flag -# define ACE_FLREACTOR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define ACE_FLREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* ACE_FLREACTOR_BUILD_DLL */ -# define ACE_FlReactor_Export ACE_Proper_Import_Flag -# define ACE_FLREACTOR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define ACE_FLREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* ACE_FLREACTOR_BUILD_DLL */ -#else /* ACE_FLREACTOR_HAS_DLL == 1 */ -# define ACE_FlReactor_Export -# define ACE_FLREACTOR_SINGLETON_DECLARATION(T) -# define ACE_FLREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* ACE_FLREACTOR_HAS_DLL == 1 */ - -// Set ACE_FLREACTOR_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined (ACE_FLREACTOR_NTRACE) -# if (ACE_NTRACE == 1) -# define ACE_FLREACTOR_NTRACE 1 -# else /* (ACE_NTRACE == 1) */ -# define ACE_FLREACTOR_NTRACE 0 -# endif /* (ACE_NTRACE == 1) */ -#endif /* !ACE_FLREACTOR_NTRACE */ - -#if (ACE_FLREACTOR_NTRACE == 1) -# define ACE_FLREACTOR_TRACE(X) -#else /* (ACE_FLREACTOR_NTRACE == 1) */ -# if !defined (ACE_HAS_TRACE) -# define ACE_HAS_TRACE -# endif /* ACE_HAS_TRACE */ -# define ACE_FLREACTOR_TRACE(X) ACE_TRACE_IMPL(X) -# include "ace/Trace.h" -#endif /* (ACE_FLREACTOR_NTRACE == 1) */ - -#endif /* ACE_FLREACTOR_EXPORT_H */ - -// End of auto generated file. diff --git a/ACE/ace/FlReactor/FlReactor.cpp b/ACE/ace/FlReactor/FlReactor.cpp deleted file mode 100644 index 611b9a14a19..00000000000 --- a/ACE/ace/FlReactor/FlReactor.cpp +++ /dev/null @@ -1,330 +0,0 @@ -// $Id$ - -#include "ace/FlReactor/FlReactor.h" - -ACE_RCSID(ace, FlReactor, "$Id$") - -#include /**/ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE (ACE_FlReactor) - -// Must be called with lock held -ACE_FlReactor::ACE_FlReactor (size_t size, - int restart, - ACE_Sig_Handler *h) - : ACE_Select_Reactor (size, restart, h) -{ - // When the ACE_Select_Reactor is constructed it creates the notify - // pipe and registers it with the register_handler_i() method. The - // FlReactor overloads this method BUT because the - // register_handler_i occurs when constructing the base class - // ACE_Select_Reactor, the ACE_Select_Reactor register_handler_i() - // is called not the FlReactor register_handler_i(). This means - // that the notify pipe is registered with the ACE_Select_Reactor - // event handling code not the FlReactor and so notfications don't - // work. To get around this we simply close and re-opened the - // notification handler in the constructor of the FlReactor. - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - this->notify_handler_->close (); - this->notify_handler_->open (this, 0); -#endif /* ACE_MT_SAFE */ -} - -ACE_FlReactor::~ACE_FlReactor (void) -{ -} - -// This is just the from ace/Reactor.cpp -// but we use the Fl functions to wait for an event, not , just use the Fl mechanism - // to wait for one or more events... - - // Wait for something to happen. - double t = 0; - if (max_wait_time != 0) - t = max_wait_time->sec () + max_wait_time->usec () / 1000000.0F; - - while (t > 0) { - t = Fl::wait (t); - } - - // Reset the width, in case it changed during the upcalls. - width = this->handler_rep_.max_handlep1 (); - - // Now actually read the result needed by the - // using - -int -ACE_FoxReactor::wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &handle_set, - ACE_Time_Value *max_wait_time) -{ - ACE_TRACE( "ACE_FoxReactor::wait_for_multiple_events" ); - - int nfound = 0; - do - { - max_wait_time = this->timer_queue_->calculate_timeout (max_wait_time); - size_t width = this->handler_rep_.max_handlep1 (); - handle_set.rd_mask_ = this->wait_set_.rd_mask_; - handle_set.wr_mask_ = this->wait_set_.wr_mask_; - handle_set.ex_mask_ = this->wait_set_.ex_mask_; - - nfound = FoxWaitForMultipleEvents (width, - handle_set, - max_wait_time); - - } while( nfound == -1 && this->handle_error () > 0 ); - - if (nfound > 0) - { -#if !defined (ACE_WIN32) - handle_set.rd_mask_.sync (this->handler_rep_.max_handlep1 ()); - handle_set.wr_mask_.sync (this->handler_rep_.max_handlep1 ()); - handle_set.ex_mask_.sync (this->handler_rep_.max_handlep1 ()); -#endif /* ACE_WIN32 */ - } - - return nfound; - // Timed out or input available -} - -int -ACE_FoxReactor::FoxWaitForMultipleEvents (int width, - ACE_Select_Reactor_Handle_Set &wait_set, - ACE_Time_Value */*max_wait_time*/) -{ - // Check to make sure our handle's are all usable. - ACE_Select_Reactor_Handle_Set temp_set = wait_set; - - if (ACE_OS::select (width, - temp_set.rd_mask_, - temp_set.wr_mask_, - temp_set.ex_mask_, - (ACE_Time_Value *) &ACE_Time_Value::zero ) == -1) - return -1; // Bad file arguments... - - // Qt processing. - this->fxapp->runOneEvent () ; - - // Reset the width, in case it changed during the upcalls. - width = handler_rep_.max_handlep1 (); - - // Now actually read the result needed by the using - // modifies the @c fd_set. - */ - void sync (ACE_HANDLE max); - - /// Returns a pointer to the underlying @c fd_set. Returns 0 if - /// there are no handle bits set ( == 0). - operator fd_set *(); - - /// Returns a pointer to the underlying @c fd_set. Returns 0 if - /// there are no handle bits set ( == 0). - fd_set *fdset (void); - -#if defined (ACE_HAS_BIG_FD_SET) - /// Assignment operator optimizes for cases where == 0. - ACE_Handle_Set & operator= (const ACE_Handle_Set &); -#endif /* ACE_HAS_BIG_FD_SET */ - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Size of the set, i.e., a count of the number of enabled bits. - int size_; - - /// Current max handle. - ACE_HANDLE max_handle_; - -#if defined (ACE_HAS_BIG_FD_SET) - /// Current min handle. - ACE_HANDLE min_handle_; -#endif /* ACE_HAS_BIG_FD_SET */ - - /// Bitmask. - fd_set mask_; - - enum - { - WORDSIZE = NFDBITS, -#if !defined (ACE_WIN32) - NUM_WORDS = howmany (MAXSIZE, NFDBITS), -#endif /* ACE_WIN32 */ - NBITS = 256 - }; - - /// Counts the number of bits enabled in N. Uses a table lookup to - /// speed up the count. - static int count_bits (u_long n); - -#if defined (ACE_HAS_BIG_FD_SET) - /// Find the position of the bit counting from right to left. - static int bitpos (u_long bit); -#endif /* ACE_HAS_BIG_FD_SET */ - - /// Resets the after a clear of the original - /// . - void set_max (ACE_HANDLE max); - - /// Table that maps bytes to counts of the enabled bits in each value - /// from 0 to 255. - static const char nbits_[NBITS]; -}; - -/** - * @class ACE_Handle_Set_Iterator - * - * @brief Iterator for the ACE_Handle_Set abstraction. - */ -class ACE_Export ACE_Handle_Set_Iterator -{ -public: - /// Constructor. - ACE_Handle_Set_Iterator (const ACE_Handle_Set &hs); - - /// Default dtor. - ~ACE_Handle_Set_Iterator (void); - - /// Reset the state of the iterator by reinitializing the state - /// that we maintain. - void reset_state (void); - - /** - * "Next" operator. Returns the next unseen ACE_HANDLE in the - * up to ). When all the - * handles have been seen returns . Advances - * the iterator automatically, so you need not call - * (which is now obsolete). - */ - ACE_HANDLE operator () (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// The we are iterating through. - const ACE_Handle_Set &handles_; - - /// Index of the bit we're examining in the current word. -#if defined (ACE_WIN32) - u_int handle_index_; -#elif !defined (ACE_HAS_BIG_FD_SET) - int handle_index_; -#elif defined (ACE_HAS_BIG_FD_SET) - int handle_index_; - u_long oldlsb_; -#endif /* ACE_WIN32 */ - - /// Number of the word we're iterating over (typically between 0..7). - int word_num_; - -#if defined (ACE_HAS_BIG_FD_SET) - /// Number max of the words with a possible bit on. - int word_max_; -#endif /* ACE_HAS_BIG_FD_SET */ - -#if !defined (ACE_WIN32) && !defined (ACE_HAS_BIG_FD_SET) - /// Value of the bits in the word we're iterating on. - fd_mask word_val_; -#elif !defined (ACE_WIN32) && defined (ACE_HAS_BIG_FD_SET) - /// Value of the bits in the word we're iterating on. - u_long word_val_; -#endif /* !ACE_WIN32 && !ACE_HAS_BIG_FD_SET */ -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Handle_Set.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_HANDLE_SET */ diff --git a/ACE/ace/Handle_Set.inl b/ACE/ace/Handle_Set.inl deleted file mode 100644 index a4b1fccaebb..00000000000 --- a/ACE/ace/Handle_Set.inl +++ /dev/null @@ -1,193 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#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 /**/ -#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" -#endif /* ACE_HAS_STRINGS */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Initialize the bitmask to all 0s and reset the associated fields. - -ACE_INLINE void -ACE_Handle_Set::reset (void) -{ - ACE_TRACE ("ACE_Handle_Set::reset"); - this->max_handle_ = - ACE_INVALID_HANDLE; -#if defined (ACE_HAS_BIG_FD_SET) - this->min_handle_ = - NUM_WORDS * WORDSIZE; -#endif /* ACE_HAS_BIG_FD_SET */ - this->size_ = 0; - // #if !defined (ACE_HAS_BIG_FD_SET) Why is this here? -Steve Huston - FD_ZERO (&this->mask_); - // #endif /* ACE_HAS_BIG_FD_SET */ -} - -#if defined (ACE_HAS_BIG_FD_SET) -ACE_INLINE ACE_Handle_Set & -ACE_Handle_Set::operator = (const ACE_Handle_Set &rhs) -{ - ACE_TRACE ("ACE_Handle_Set::operator ="); - - if (rhs.size_ > 0) - { - this->size_ = - rhs.size_; - this->max_handle_ = - rhs.max_handle_; - this->min_handle_ = - rhs.min_handle_; - this->mask_ = - rhs.mask_; - } - else - this->reset (); - - return *this; -} -#endif /* ACE_HAS_BIG_FD_SET */ - -// Returns the number of the large bit. - -ACE_INLINE ACE_HANDLE -ACE_Handle_Set::max_set (void) const -{ - ACE_TRACE ("ACE_Handle_Set::max_set"); - return this->max_handle_; -} - -// Checks whether handle is enabled. - -ACE_INLINE int -ACE_Handle_Set::is_set (ACE_HANDLE handle) const -{ - ACE_TRACE ("ACE_Handle_Set::is_set"); -#if defined (ACE_HAS_BIG_FD_SET) - return FD_ISSET (handle, - &this->mask_) - && this->size_ > 0; -#elif defined (ACE_HAS_NONCONST_FD_ISSET) - return FD_ISSET (handle, - const_cast (&this->mask_)); -#else - return FD_ISSET (handle, - &this->mask_); -#endif /* ACE_HAS_BIG_FD_SET */ -} - -// Enables the handle. - -ACE_INLINE void -ACE_Handle_Set::set_bit (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_Handle_Set::set_bit"); - if ((handle != ACE_INVALID_HANDLE) - && (!this->is_set (handle))) - { -#if defined (ACE_WIN32) - FD_SET ((SOCKET) handle, - &this->mask_); - ++this->size_; -#else /* ACE_WIN32 */ -#if defined (ACE_HAS_BIG_FD_SET) - if (this->size_ == 0) - FD_ZERO (&this->mask_); - - if (handle < this->min_handle_) - this->min_handle_ = handle; -#endif /* ACE_HAS_BIG_FD_SET */ - - FD_SET (handle, - &this->mask_); - ++this->size_; - - if (handle > this->max_handle_) - this->max_handle_ = handle; -#endif /* ACE_WIN32 */ - } -} - -// Disables the handle. - -ACE_INLINE void -ACE_Handle_Set::clr_bit (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_Handle_Set::clr_bit"); - - if ((handle != ACE_INVALID_HANDLE) && - (this->is_set (handle))) - { - FD_CLR ((ACE_SOCKET) handle, - &this->mask_); - --this->size_; - -#if !defined (ACE_WIN32) - if (handle == this->max_handle_) - this->set_max (this->max_handle_); -#endif /* !ACE_WIN32 */ - } -} - -// Returns a count of the number of enabled bits. - -ACE_INLINE int -ACE_Handle_Set::num_set (void) const -{ - ACE_TRACE ("ACE_Handle_Set::num_set"); -#if defined (ACE_WIN32) - return this->mask_.fd_count; -#else /* !ACE_WIN32 */ - return this->size_; -#endif /* ACE_WIN32 */ -} - -// Returns a pointer to the underlying fd_set. - -ACE_INLINE -ACE_Handle_Set::operator fd_set *() -{ - ACE_TRACE ("ACE_Handle_Set::operator fd_set *"); - - if (this->size_ > 0) - return (fd_set *) &this->mask_; - else - return (fd_set *) 0; -} - -// Returns a pointer to the underlying fd_set. - -ACE_INLINE fd_set * -ACE_Handle_Set::fdset (void) -{ - ACE_TRACE ("ACE_Handle_Set::fdset"); - - if (this->size_ > 0) - return (fd_set *) &this->mask_; - else - return (fd_set *) 0; -} - -ACE_INLINE -ACE_Handle_Set_Iterator::~ACE_Handle_Set_Iterator (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Hash_Cache_Map_Manager_T.cpp b/ACE/ace/Hash_Cache_Map_Manager_T.cpp deleted file mode 100644 index 86af4960a85..00000000000 --- a/ACE/ace/Hash_Cache_Map_Manager_T.cpp +++ /dev/null @@ -1,232 +0,0 @@ -// $Id$ - -#ifndef ACE_HASH_CACHE_MAP_MANAGER_T_CPP -#define ACE_HASH_CACHE_MAP_MANAGER_T_CPP - -#include "ace/Hash_Cache_Map_Manager_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -#include "ace/Hash_Cache_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -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_Hash_Cache_Map_Manager::ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY &caching_s, - size_t size, - ACE_Allocator *alloc) - : ACE_HCMM_BASE (caching_s, - size, - alloc) -{ -} - -template -ACE_Hash_Cache_Map_Manager::~ACE_Hash_Cache_Map_Manager (void) -{ -} - -template int -ACE_Hash_Cache_Map_Manager::bind (const KEY &key, - const VALUE &value, - CACHE_ENTRY *&entry) -{ - // Insert a entry which has the and the which is - // the combination of the and the attributes of the caching - // strategy. - CACHE_VALUE cache_value (value, - this->caching_strategy_.attributes ()); - - int bind_result = this->map_.bind (key, - cache_value, - entry); - - if (bind_result != -1) - { - - int result = this->caching_strategy_.notify_bind (bind_result, - cache_value.second ()); - - if (result == -1) - { - - this->map_.unbind (key); - - // Unless the notification goes thru the bind operation is - // not complete. - bind_result = -1; - - } - } - - return bind_result; -} - -template int -ACE_Hash_Cache_Map_Manager::rebind (const KEY &key, - const VALUE &value, - CACHE_ENTRY *&entry) -{ - CACHE_VALUE cache_value (value, - this->caching_strategy_.attributes ()); - - int rebind_result = this->map_.rebind (key, - cache_value, - entry); - - if (rebind_result != -1) - { - - int result = this->caching_strategy_.notify_rebind (rebind_result, - cache_value.second ()); - - if (result == -1) - { - - // Make sure the unbind operation is done only when the - // notification fails after a bind which is denoted by - // rebind_result = 0 - if (rebind_result == 0) - this->map_.unbind (key); - - // Unless the notification goes thru the rebind operation is - // not complete. - rebind_result = -1; - - } - - } - - return rebind_result; -} - -template int -ACE_Hash_Cache_Map_Manager::trybind (const KEY &key, - VALUE &value, - CACHE_ENTRY *&entry) -{ - CACHE_VALUE cache_value (value, - this->caching_strategy_.attributes ()); - - int trybind_result = this->map_.trybind (key, - cache_value, - entry); - - if (trybind_result != -1) - { - int result = this->caching_strategy_.notify_trybind (trybind_result, - cache_value.second ()); - - if (result == -1) - { - - // If the entry has got inserted into the map, it is removed - // due to failure. - if (trybind_result == 0) - this->map_.unbind (key); - - trybind_result = -1; - - } - else - { - - // If an attempt is made to bind an existing entry the value - // is overwritten with the value from the map. - if (trybind_result == 1) - value = cache_value.first (); - - } - - } - - return trybind_result; -} - -template int -ACE_Hash_Cache_Map_Manager::find (const KEY &key, - CACHE_ENTRY *&entry) -{ - // Lookup the key and populate the . - int find_result = this->map_.find (key, - entry); - - if (find_result != -1) - { - - int result = this->caching_strategy_.notify_find (find_result, - entry->int_id_.second ()); - - // Unless the find and notification operations go thru, this - // method is not successful. - if (result == -1) - find_result = -1; - else - find_result = 0; - - } - - return find_result; -} - -template int -ACE_Hash_Cache_Map_Manager::find (const KEY &key, - VALUE &value) -{ - CACHE_ENTRY *entry = 0; - - int result = this->find (key, - entry); - - if (result != -1) - { - value = entry->int_id_.first (); - } - - return result; -} - -template int -ACE_Hash_Cache_Map_Manager::find (const KEY &key) -{ - CACHE_ENTRY *entry = 0; - - return this->find (key, - entry); -} - -template int -ACE_Hash_Cache_Map_Manager::unbind (CACHE_ENTRY *entry) -{ - // Remove the entry from the cache. - int unbind_result = this->map_.unbind (entry); - - if (unbind_result != -1) - { - - int result = this->caching_strategy_.notify_unbind (unbind_result, - entry->int_id_.second ()); - - if (result == -1) - unbind_result = -1; - - } - - return unbind_result; -} - -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 deleted file mode 100644 index 66cc3b83b53..00000000000 --- a/ACE/ace/Hash_Cache_Map_Manager_T.h +++ /dev/null @@ -1,214 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Hash_Cache_Map_Manager_T.h - * - * $Id$ - * - * @author Kirthika Parameswaran - */ -//============================================================================= - - -#ifndef HASH_CACHE_MAP_MANAGER_T_H -#define HASH_CACHE_MAP_MANAGER_T_H - -#include /**/ "ace/pre.h" - -#include "ace/Hash_Map_Manager_T.h" -#include "ace/Cache_Map_Manager_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Null_Mutex.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward declaration. -class ACE_Allocator; - -#define ACE_CACHE_MAP_MANAGER \ - ACE_Cache_Map_Manager, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \ - ACE_Hash_Map_Iterator_Ex, HASH_KEY, COMPARE_KEYS, ACE_Null_Mutex>, \ - ACE_Hash_Map_Reverse_Iterator_Ex, 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 - * - * @brief Defines a abstraction which will purge entries from a map. - * The map considered is the ACE_Hash_Map_Manager_Ex. - * - * The Hash_Cache_Map_Manager will manage the map it contains - * and provide purging on demand from the map. The strategy for - * caching is decided by the user and provided to the Cache - * Manager. The Cache Manager acts as a agent and communicates - * between the Map and the Strategy for purging entries from the - * map. To tap the optimal methods like find(key,value,entry) - * present in the ACE_Hash_Map_Manager, - * 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 - * application. - */ -template -class ACE_Hash_Cache_Map_Manager : public ACE_CACHE_MAP_MANAGER -{ - public: - - /** - * The actual value mapped to the key in the map. The - * are used by the strategy and is transparent to the user of this - * class. - */ - typedef ACE_Pair CACHE_VALUE; - typedef ACE_Hash_Map_Manager_Ex HASH_MAP; - typedef ACE_Hash_Map_Entry CACHE_ENTRY; - typedef KEY key_type; - typedef VALUE mapped_type; - - // = Initialization and termination methods. - /// Initialize a with @a size entries. - ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY &caching_s, - size_t size = ACE_DEFAULT_MAP_SIZE, - ACE_Allocator *alloc = 0); - - /// Close down a and release dynamically allocated - /// resources. - ~ACE_Hash_Cache_Map_Manager (void); - - /** - * Associate @a key with @a value. If @a key is already in the - * MAP then the ENTRY is not changed. Returns 0 if a new entry is - * bound successfully, returns 1 if an attempt is made to bind an - * existing entry, and returns -1 if failures occur. - */ - int bind (const KEY &key, - const VALUE &value); - - /** - * Same as a normal bind, except the cache entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int bind (const KEY &key, - const VALUE &value, - CACHE_ENTRY *&entry); - - /// Loopkup entry in the cache. - int find (const KEY &key, - VALUE &value); - - /// Is @a key in the cache? - int find (const KEY &key); - - /// Obtain the entry when the find succeeds. - int find (const KEY &key, - CACHE_ENTRY *&entry); - - /** - * Reassociate the @a key with @a value. If the @a key already exists - * in the cache then returns 1, on a new bind returns 0 and returns - * -1 in case of any failures. - */ - int rebind (const KEY &key, - const VALUE &value); - - /** - * Reassociate @a key with @a value, storing the old value into the - * "out" parameter @a old_value. The function fails if @a key is not - * in the cache for caches that do not allow user specified keys. - * However, for caches that allow user specified keys, if the key is - * not in the cache, a new @a key / @a value association is created. - */ - int rebind (const KEY &key, - const VALUE &value, - VALUE &old_value); - - /** - * Reassociate @a key with @a value, storing the old key and value - * into the "out" parameters @a old_key and @a old_value. The - * function fails if @a key is not in the cache for caches that do not - * allow user specified keys. However, for caches that allow user - * specified keys, if the key is not in the cache, a new @a key / @a value - * association is created. - */ - int rebind (const KEY &key, - const VALUE &value, - KEY &old_key, - VALUE &old_value); - - /** - * Same as a normal rebind, except the cache entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int rebind (const KEY &key, - const VALUE &value, - CACHE_ENTRY *&entry); - - /** - * Associate @a key with @a value if and only if @a key is not in the - * cache. If @a key is already in the cache, then the @a value parameter - * is overwritten with the existing value in the cache. Returns 0 if a - * new @a key / @a value association is created. Returns 1 if an - * attempt is made to bind an existing entry. This function fails - * for maps that do not allow user specified keys. - */ - int trybind (const KEY &key, - VALUE &value); - - /** - * Same as a normal trybind, except the cache entry is also passed - * back to the caller. The entry in this case will either be the - * newly created entry, or the existing one. - */ - int trybind (const KEY &key, - VALUE &value, - CACHE_ENTRY *&entry); - - /// Remove @a key from the cache. - int unbind (const KEY &key); - - /// Remove @a key from the cache, and return the @a value associated with - /// @a key. - int unbind (const KEY &key, - VALUE &value); - - /// Remove entry from map. - int unbind (CACHE_ENTRY *entry); - -protected: - - /// Base class. - typedef ACE_CACHE_MAP_MANAGER ACE_HCMM_BASE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - - -#if defined (__ACE_INLINE__) -#include "ace/Hash_Cache_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Hash_Cache_Map_Manager_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Hash_Cache_Map_Manager_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* HASH_CACHE_MAP_MANAGER_T_H */ diff --git a/ACE/ace/Hash_Cache_Map_Manager_T.inl b/ACE/ace/Hash_Cache_Map_Manager_T.inl deleted file mode 100644 index 0388abd6c6e..00000000000 --- a/ACE/ace/Hash_Cache_Map_Manager_T.inl +++ /dev/null @@ -1,73 +0,0 @@ -// -*- 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_INLINE int -ACE_Hash_Cache_Map_Manager::bind (const KEY &key, - const VALUE &value) -{ - return ACE_HCMM_BASE::bind (key, - value); -} - -template ACE_INLINE int -ACE_Hash_Cache_Map_Manager::rebind (const KEY &key, - const VALUE &value) -{ - return ACE_HCMM_BASE::rebind (key, - value); -} - -template ACE_INLINE int -ACE_Hash_Cache_Map_Manager::rebind (const KEY &key, - const VALUE &value, - VALUE &old_value) -{ - return ACE_HCMM_BASE::rebind (key, - value, - old_value); -} - -template ACE_INLINE int -ACE_Hash_Cache_Map_Manager::rebind (const KEY &key, - const VALUE &value, - KEY &old_key, - VALUE &old_value) -{ - return ACE_HCMM_BASE::rebind (key, - value, - old_key, - old_value); -} - -template ACE_INLINE int -ACE_Hash_Cache_Map_Manager::trybind (const KEY &key, - VALUE &value) -{ - return ACE_HCMM_BASE::trybind (key, - value); -} - -template ACE_INLINE int -ACE_Hash_Cache_Map_Manager::unbind (const KEY &key) -{ - return ACE_HCMM_BASE::unbind (key); -} - -template ACE_INLINE int -ACE_Hash_Cache_Map_Manager::unbind (const KEY &key, - VALUE &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.h b/ACE/ace/Hash_Map_Manager.h deleted file mode 100644 index ed34b24f5b5..00000000000 --- a/ACE/ace/Hash_Map_Manager.h +++ /dev/null @@ -1,31 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Hash_Map_Manager.h - * - * $Id$ - * - * Backward compatibility header. - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_HASH_MAP_MANAGER_H -#define ACE_HASH_MAP_MANAGER_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/Hash_Map_Manager_T.h" - -#include /**/ "ace/post.h" - -#endif /* ACE_HASH_MAP_MANAGER_H */ diff --git a/ACE/ace/Hash_Map_Manager_T.cpp b/ACE/ace/Hash_Map_Manager_T.cpp deleted file mode 100644 index 3119c109cd2..00000000000 --- a/ACE/ace/Hash_Map_Manager_T.cpp +++ /dev/null @@ -1,530 +0,0 @@ - -//============================================================================= -/** - * @file Hash_Map_Manager_T.cpp - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - - -#ifndef ACE_HASH_MAP_MANAGER_T_CPP -#define ACE_HASH_MAP_MANAGER_T_CPP - -#include "ace/Hash_Map_Manager_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -# include "ace/Hash_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Malloc_Base.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Hash_Map_Entry::ACE_Hash_Map_Entry (ACE_Hash_Map_Entry *next, - ACE_Hash_Map_Entry *prev) - : next_ (next), - prev_ (prev) -{ -} - -template -ACE_Hash_Map_Entry::ACE_Hash_Map_Entry (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *next, - ACE_Hash_Map_Entry *prev) - : ext_id_ (ext_id), - int_id_ (int_id), - next_ (next), - prev_ (prev) -{ -} - -template -ACE_Hash_Map_Entry::~ACE_Hash_Map_Entry (void) -{ -} - -template EXT_ID & -ACE_Hash_Map_Entry::key () -{ - return ext_id_; -} - -template INT_ID & -ACE_Hash_Map_Entry::item () -{ - return int_id_; -} - -template void -ACE_Hash_Map_Entry::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("next_ = %d"), this->next_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prev_ = %d"), this->prev_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template void -ACE_Hash_Map_Manager_Ex::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("total_size_ = %d"), this->total_size_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ncur_size_ = %d"), this->cur_size_)); - this->table_allocator_->dump (); - this->entry_allocator_->dump (); - this->lock_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template int -ACE_Hash_Map_Manager_Ex::create_buckets (size_t size) -{ - size_t bytes = size * sizeof (ACE_Hash_Map_Entry); - void *ptr; - - ACE_ALLOCATOR_RETURN (ptr, - this->table_allocator_->malloc (bytes), - -1); - - this->table_ = (ACE_Hash_Map_Entry *) ptr; - - this->total_size_ = size; - - // Initialize each entry in the hash table to be a circular linked - // list with the dummy node in the front serving as the anchor of - // the list. - for (size_t i = 0; i < size; i++) - new (&this->table_[i]) ACE_Hash_Map_Entry (&this->table_[i], - &this->table_[i]); - return 0; -} - -template int -ACE_Hash_Map_Manager_Ex::open (size_t size, - ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - // Calling this->close_i () to ensure we release previous allocated - // memory before allocating new one. - this->close_i (); - - if (table_alloc == 0) - table_alloc = ACE_Allocator::instance (); - - this->table_allocator_ = table_alloc; - - if (entry_alloc == 0) - entry_alloc = table_alloc; - - this->entry_allocator_ = entry_alloc; - - // This assertion is here to help track a situation that shouldn't - // happen, but did with Sun C++ 4.1 (before a change to this class - // was made: it used to have an enum that was supposed to be defined - // to be ACE_DEFAULT_MAP_SIZE, but instead was defined to be 0). - if (size == 0) - return -1; - - return this->create_buckets (size); -} - -template int -ACE_Hash_Map_Manager_Ex::close_i (void) -{ - // Protect against "double-deletion" in case the destructor also - // gets called. - if (this->table_ != 0) - { - // Remove all the entries. - this->unbind_all_i (); - - // Iterate through the buckets cleaning up the sentinels. - for (size_t i = 0; i < this->total_size_; i++) - { - // Destroy the dummy entry. - ACE_Hash_Map_Entry *entry = &this->table_[i]; - - // The second argument results in a no-op instead of - // deallocation. - ACE_DES_FREE_TEMPLATE2 (entry, ACE_NOOP, - ACE_Hash_Map_Entry, EXT_ID, INT_ID); - } - - // Reset size. - this->total_size_ = 0; - - // Free table memory. - this->table_allocator_->free (this->table_); - - // Should be done last... - this->table_ = 0; - } - - return 0; -} - -template int -ACE_Hash_Map_Manager_Ex::unbind_all_i (void) -{ - // Iterate through the entire map calling the destuctor of each - // . - for (size_t i = 0; i < this->total_size_; i++) - { - for (ACE_Hash_Map_Entry *temp_ptr = this->table_[i].next_; - temp_ptr != &this->table_[i]; - ) - { - ACE_Hash_Map_Entry *hold_ptr = temp_ptr; - temp_ptr = temp_ptr->next_; - - // Explicitly call the destructor. - ACE_DES_FREE_TEMPLATE2 (hold_ptr, this->entry_allocator_->free, - ACE_Hash_Map_Entry, EXT_ID, INT_ID); - } - - // Restore the sentinel. - this->table_[i].next_ = &this->table_[i]; - this->table_[i].prev_ = &this->table_[i]; - } - - this->cur_size_ = 0; - - return 0; -} - -template int -ACE_Hash_Map_Manager_Ex::bind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *&entry) -{ - size_t loc; - int result = this->shared_find (ext_id, entry, loc); - - if (result == -1) - { - void *ptr; - // Not found. - ACE_ALLOCATOR_RETURN (ptr, - this->entry_allocator_->malloc (sizeof (ACE_Hash_Map_Entry)), - -1); - - entry = new (ptr) ACE_Hash_Map_Entry (ext_id, - int_id, - this->table_[loc].next_, - &this->table_[loc]); - this->table_[loc].next_ = entry; - entry->next_->prev_ = entry; - this->cur_size_++; - return 0; - } - else - return 1; -} - -template int -ACE_Hash_Map_Manager_Ex::trybind_i (const EXT_ID &ext_id, - INT_ID &int_id, - ACE_Hash_Map_Entry *&entry) -{ - size_t loc; - int result = this->shared_find (ext_id, entry, loc); - - if (result == -1) - { - // Not found. - void *ptr; - ACE_ALLOCATOR_RETURN (ptr, - this->entry_allocator_->malloc (sizeof (ACE_Hash_Map_Entry)), - -1); - - entry = new (ptr) ACE_Hash_Map_Entry (ext_id, - int_id, - this->table_[loc].next_, - &this->table_[loc]); - this->table_[loc].next_ = entry; - entry->next_->prev_ = entry; - this->cur_size_++; - return 0; - } - else - return 1; -} - -template int -ACE_Hash_Map_Manager_Ex::unbind_i (const EXT_ID &ext_id, - INT_ID &int_id) -{ - ACE_Hash_Map_Entry *temp; - - size_t loc; - int result = this->shared_find (ext_id, temp, loc); - - if (result == -1) - { - errno = ENOENT; - return -1; - } - - int_id = temp->int_id_; - - return this->unbind_i (temp); -} - -template int -ACE_Hash_Map_Manager_Ex::unbind_i (ACE_Hash_Map_Entry *entry) -{ - entry->next_->prev_ = entry->prev_; - entry->prev_->next_ = entry->next_; - - // Explicitly call the destructor. - ACE_DES_FREE_TEMPLATE2 (entry, this->entry_allocator_->free, - ACE_Hash_Map_Entry, EXT_ID, INT_ID); - - this->cur_size_--; - return 0; -} - -template int -ACE_Hash_Map_Manager_Ex::shared_find (const EXT_ID &ext_id, - ACE_Hash_Map_Entry *&entry, - size_t &loc) -{ - loc = this->hash (ext_id) % this->total_size_; - - ACE_Hash_Map_Entry *temp = this->table_[loc].next_; - - while (temp != &this->table_[loc] && this->equal (temp->ext_id_, ext_id) == 0) - temp = temp->next_; - - if (temp == &this->table_[loc]) - { - errno = ENOENT; - return -1; - } - else - { - entry = temp; - return 0; - } -} - -template int -ACE_Hash_Map_Manager_Ex::rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *&entry) -{ - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return this->bind_i (ext_id, int_id); - else - { - entry->ext_id_ = ext_id; - entry->int_id_ = int_id; - return 1; - } -} - -template int -ACE_Hash_Map_Manager_Ex::rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - INT_ID &old_int_id, - ACE_Hash_Map_Entry *&entry) -{ - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return this->bind_i (ext_id, int_id); - else - { - old_int_id = entry->int_id_; - entry->ext_id_ = ext_id; - entry->int_id_ = int_id; - return 1; - } -} - -template int -ACE_Hash_Map_Manager_Ex::rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - EXT_ID &old_ext_id, - INT_ID &old_int_id, - ACE_Hash_Map_Entry *&entry) -{ - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return this->bind_i (ext_id, int_id); - else - { - old_ext_id = entry->ext_id_; - old_int_id = entry->int_id_; - entry->ext_id_ = ext_id; - entry->int_id_ = int_id; - return 1; - } -} - -// ------------------------------------------------------------ - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Iterator_Base_Ex) - -template void -ACE_Hash_Map_Iterator_Base_Ex::dump_i (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::dump_i"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("index_ = %d "), this->index_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("next_ = %x"), this->next_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -template int -ACE_Hash_Map_Iterator_Base_Ex::forward_i (void) -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::forward_i"); - - if (this->map_man_->table_ == 0) - return -1; - // Handle initial case specially. - else if (this->index_ == -1) - { - this->index_++; - return this->forward_i (); - } - else if (this->index_ >= static_cast (this->map_man_->total_size_)) - return 0; - - this->next_ = this->next_->next_; - if (this->next_ == &this->map_man_->table_[this->index_]) - { - while (++this->index_ < static_cast (this->map_man_->total_size_)) - { - this->next_ = this->map_man_->table_[this->index_].next_; - if (this->next_ != &this->map_man_->table_[this->index_]) - break; - } - } - - return this->index_ < static_cast (this->map_man_->total_size_); -} - -template int -ACE_Hash_Map_Iterator_Base_Ex::reverse_i (void) -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::reverse_i"); - - if (this->map_man_->table_ == 0) - return -1; - else if (this->index_ == static_cast (this->map_man_->total_size_)) - { - this->index_--; - return this->reverse_i (); - } - else if (this->index_ < 0) - return 0; - - this->next_ = this->next_->prev_; - if (this->next_ == &this->map_man_->table_[this->index_]) - { - while (--this->index_ >= 0) - { - this->next_ = this->map_man_->table_[this->index_].prev_; - if (this->next_ != &this->map_man_->table_[this->index_]) - break; - } - } - - return this->index_ >= 0; -} - -// ------------------------------------------------------------ - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Const_Iterator_Base_Ex) - -template void -ACE_Hash_Map_Const_Iterator_Base_Ex::dump_i (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::dump_i"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("index_ = %d "), this->index_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("next_ = %x"), this->next_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -template int -ACE_Hash_Map_Const_Iterator_Base_Ex::forward_i (void) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::forward_i"); - - if (this->map_man_->table_ == 0) - return -1; - // Handle initial case specially. - else if (this->index_ == -1) - { - this->index_++; - return this->forward_i (); - } - else if (this->index_ >= (ssize_t) this->map_man_->total_size_) - return 0; - - this->next_ = this->next_->next_; - if (this->next_ == &this->map_man_->table_[this->index_]) - { - while (++this->index_ < (ssize_t) this->map_man_->total_size_) - { - this->next_ = this->map_man_->table_[this->index_].next_; - if (this->next_ != &this->map_man_->table_[this->index_]) - break; - } - } - - return this->index_ < (ssize_t) this->map_man_->total_size_; -} - -template int -ACE_Hash_Map_Const_Iterator_Base_Ex::reverse_i (void) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::reverse_i"); - - if (this->map_man_->table_ == 0) - return -1; - else if (this->index_ == (ssize_t) this->map_man_->total_size_) - { - this->index_--; - return this->reverse_i (); - } - else if (this->index_ < 0) - return 0; - - this->next_ = this->next_->prev_; - if (this->next_ == &this->map_man_->table_[this->index_]) - { - while (--this->index_ >= 0) - { - this->next_ = this->map_man_->table_[this->index_].prev_; - if (this->next_ != &this->map_man_->table_[this->index_]) - break; - } - } - - return this->index_ >= 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HASH_MAP_MANAGER_T_CPP */ diff --git a/ACE/ace/Hash_Map_Manager_T.h b/ACE/ace/Hash_Map_Manager_T.h deleted file mode 100644 index 7d4f270584f..00000000000 --- a/ACE/ace/Hash_Map_Manager_T.h +++ /dev/null @@ -1,1274 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Hash_Map_Manager_T.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_HASH_MAP_MANAGER_T_H -#define ACE_HASH_MAP_MANAGER_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/Default_Constants.h" -#include "ace/Functor_T.h" -#include "ace/Log_Msg.h" -#include - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Hash_Map_Entry - * - * @brief Define an entry in the hash table. - */ -template -class ACE_Hash_Map_Entry -{ -public: - // = Initialization and termination methods. - /// Constructor. - ACE_Hash_Map_Entry (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *next = 0, - ACE_Hash_Map_Entry *prev = 0); - - /// Constructor. - ACE_Hash_Map_Entry (ACE_Hash_Map_Entry *next, - ACE_Hash_Map_Entry *prev); - - /// Destructor. - ~ACE_Hash_Map_Entry (void); - - /// Key accessor. - EXT_ID& key (void); - - /// Item accessor. - INT_ID& item (void); - - /// Key used to look up an entry. - /// @deprecated Use key() - EXT_ID ext_id_; - - /// The contents of the entry itself. - /// @deprecated Use item() - INT_ID int_id_; - - /// Pointer to the next item in the bucket of overflow nodes. - ACE_Hash_Map_Entry *next_; - - /// Pointer to the prev item in the bucket of overflow nodes. - ACE_Hash_Map_Entry *prev_; - - /// Dump the state of an object. - void dump (void) const; -}; - -// Forward decl. -template -class ACE_Hash_Map_Iterator_Base_Ex; - -// Forward decl. -template -class ACE_Hash_Map_Const_Iterator_Base_Ex; - -// Forward decl. -template -class ACE_Hash_Map_Iterator_Ex; - -// Forward decl. -template -class ACE_Hash_Map_Const_Iterator_Ex; - -// Forward decl. -template -class ACE_Hash_Map_Reverse_Iterator_Ex; - -// Forward decl. -template -class ACE_Hash_Map_Const_Reverse_Iterator_Ex; - -// Forward decl. -template -class ACE_Hash_Map_Bucket_Iterator; - -// Forward decl. -class ACE_Allocator; - -/** - * @class ACE_Hash_Map_Manager_Ex - * - * @brief Define a map abstraction that efficiently associates - * @c EXT_ID type objects with @c INT_ID type objects. - * - * This implementation of a map uses a hash table. Key hashing - * is achieved through the @c HASH_KEY object and key comparison is - * achieved through the @c COMPARE_KEYS object. - * This class uses an ACE_Allocator to allocate memory. The - * user can make this a persistent class by providing an - * ACE_Allocator with a persistable memory pool. - */ - -template -class ACE_Hash_Map_Manager_Ex -{ -public: - friend class ACE_Hash_Map_Iterator_Base_Ex; - friend class ACE_Hash_Map_Iterator_Ex; - friend class ACE_Hash_Map_Const_Iterator_Base_Ex; - friend class ACE_Hash_Map_Const_Iterator_Ex; - friend class ACE_Hash_Map_Reverse_Iterator_Ex; - friend class ACE_Hash_Map_Const_Reverse_Iterator_Ex; - friend class ACE_Hash_Map_Bucket_Iterator; - - typedef EXT_ID - KEY; - typedef INT_ID - VALUE; - typedef ACE_LOCK lock_type; - typedef ACE_Hash_Map_Entry - ENTRY; - - // = ACE-style iterator typedefs. - typedef ACE_Hash_Map_Iterator_Ex - ITERATOR; - typedef ACE_Hash_Map_Const_Iterator_Ex - CONST_ITERATOR; - typedef ACE_Hash_Map_Reverse_Iterator_Ex - REVERSE_ITERATOR; - typedef ACE_Hash_Map_Const_Reverse_Iterator_Ex - CONST_REVERSE_ITERATOR; - - // = STL-style iterator typedefs. - typedef ACE_Hash_Map_Iterator_Ex - iterator; - typedef ACE_Hash_Map_Const_Iterator_Ex - const_iterator; - typedef ACE_Hash_Map_Reverse_Iterator_Ex - reverse_iterator; - typedef ACE_Hash_Map_Const_Reverse_Iterator_Ex - const_reverse_iterator; - - // = STL-style typedefs/traits. - typedef EXT_ID key_type; - typedef INT_ID data_type; - typedef ACE_Hash_Map_Entry value_type; - typedef value_type & reference; - typedef value_type const & const_reference; - typedef value_type * pointer; - typedef value_type const * const_pointer; - typedef ptrdiff_t difference_type; - typedef size_t size_type; - - // = Initialization and termination methods. - - /** - * Initialize an ACE_Hash_Map_Manager_Ex with a default number of elements. - * - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_Map_Entry). - * If @a table_alloc is 0 it defaults to ACE_Allocator::instance(). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_Map_Entry) bytes each. - * If @a entry_alloc is 0 it defaults to the same allocator as - * @a table_alloc. - */ - ACE_Hash_Map_Manager_Ex (ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - /** - * Initialize an ACE_Hash_Map_Manager_Ex with @a size elements. - * - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_Map_Entry). - * If @a table_alloc is 0 it defaults to ACE_Allocator::instance(). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_Map_Entry) bytes each. - * If @a entry_alloc is 0 it defaults to the same allocator as - * @a table_alloc. - */ - ACE_Hash_Map_Manager_Ex (size_t size, - ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - /** - * Initialize an ACE_Hash_Map_Manager_Ex with @a size elements. - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_Map_Entry). - * If @a table_alloc is 0 it defaults to ACE_Allocator::instance(). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_Map_Entry) bytes each. - * If @a entry_alloc is 0 then it defaults to the same allocator as - * @a table_alloc. - * @return -1 on failure, 0 on success - */ - - int open (size_t size = ACE_DEFAULT_MAP_SIZE, - ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - /// Close down the ACE_Hash_Map_Manager_Ex and release dynamically allocated - /// resources. - int close (void); - - /// Removes all the entries in the ACE_Hash_Map_Manager_Ex. - int unbind_all (void); - - /// Cleanup the ACE_Hash_Map_Manager_Ex. - ~ACE_Hash_Map_Manager_Ex (void); - - /** - * Associate @a item with @a int_id. If @a item is already in the - * map then the map is not changed. - * - * @retval 0 if a new entry is bound successfully. - * @retval 1 if an attempt is made to bind an existing entry. - * @retval -1 if a failure occurs; check @c errno for more information. - */ - int bind (const EXT_ID &item, - const INT_ID &int_id); - - /** - * Same as a normal bind, except the map entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int bind (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *&entry); - - /** - * Associate @a ext_id with @a int_id if and only if @a ext_id is not - * in the map. If @a ext_id is already in the map then the @a int_id - * parameter is assigned the existing value in the map. Returns 0 - * if a new entry is bound successfully, returns 1 if an attempt is - * made to bind an existing entry, and returns -1 if failures occur. - */ - int trybind (const EXT_ID &ext_id, - INT_ID &int_id); - - /** - * Same as a normal trybind, except the map entry is also passed - * back to the caller. The entry in this case will either be the - * newly created entry, or the existing one. - */ - int trybind (const EXT_ID &ext_id, - INT_ID &int_id, - ACE_Hash_Map_Entry *&entry); - - /** - * Reassociate @a ext_id with @a int_id. If @a ext_id is not in the - * map then behaves just like . Returns 0 if a new entry is - * bound successfully, returns 1 if an existing entry was rebound, - * and returns -1 if failures occur. - */ - int rebind (const EXT_ID &ext_id, - const INT_ID &int_id); - - /** - * Same as a normal rebind, except the map entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int rebind (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *&entry); - - /** - * Associate @a ext_id with @a int_id. If @a ext_id is not in the map - * then behaves just like . Otherwise, store the old value of - * @a int_id into the "out" parameter and rebind the new parameters. - * Returns 0 if a new entry is bound successfully, returns 1 if an - * existing entry was rebound, and returns -1 if failures occur. - */ - int rebind (const EXT_ID &ext_id, - const INT_ID &int_id, - INT_ID &old_int_id); - - /** - * Same as a normal rebind, except the map entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int rebind (const EXT_ID &ext_id, - const INT_ID &int_id, - INT_ID &old_int_id, - ACE_Hash_Map_Entry *&entry); - - /** - * Associate @a ext_id with @a int_id. If @a ext_id is not in the map - * then behaves just like . Otherwise, store the old values - * of @a ext_id and @a int_id into the "out" parameters and rebind the - * new parameters. This is very useful if you need to have an - * atomic way of updating ACE_Hash_Map_Entrys and you also need - * full control over memory allocation. Returns 0 if a new entry is - * bound successfully, returns 1 if an existing entry was rebound, - * and returns -1 if failures occur. - */ - int rebind (const EXT_ID &ext_id, - const INT_ID &int_id, - EXT_ID &old_ext_id, - INT_ID &old_int_id); - - /** - * Same as a normal rebind, except the map entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int rebind (const EXT_ID &ext_id, - const INT_ID &int_id, - EXT_ID &old_ext_id, - INT_ID &old_int_id, - ACE_Hash_Map_Entry *&entry); - - /// Locate @a ext_id and pass out parameter via @a int_id. - /// Return 0 if found, returns -1 if not found. - int find (const EXT_ID &ext_id, - INT_ID &int_id) const; - - /// Returns 0 if the @a ext_id is in the mapping, otherwise -1. - int find (const EXT_ID &ext_id) const; - - /// Locate @a ext_id and pass out parameter via @a entry. If found, - /// return 0, returns -1 if not found. - int find (const EXT_ID &ext_id, - ACE_Hash_Map_Entry *&entry) const; - - /// Locate @a ext_id and pass out an iterator that points to its - /// corresponding value. - /** - * @param pos @a pos will be set to @c end() if not found. - */ - void find (EXT_ID const & ext_id, iterator & pos) const; - - /** - * Unbind (remove) the @a ext_id from the map. Don't return the - * @a int_id to the caller (this is useful for collections where the - * @a int_ids are *not* dynamically allocated...) - */ - int unbind (const EXT_ID &ext_id); - - /// Break any association of @a ext_id. Returns the value of @a int_id - /// in case the caller needs to deallocate memory. Return 0 if the - /// unbind was successful, and returns -1 if failures occur. - int unbind (const EXT_ID &ext_id, - INT_ID &int_id); - - /// Remove entry from map. - /** - * This unbind operation is fast relative to those that accept an - * external ID parameter since no map lookup is performed. - * - * @return 0 if the unbind was successful, and -1 if failures - * occur. - */ - int unbind (ACE_Hash_Map_Entry *entry); - - /// Remove entry from map pointed to by @c iterator @a pos. - /** - * This unbind operation is fast relative to those that accept an - * external ID parameter since no map lookup is performed. - * - * @return 0 if the unbind was successful, and -1 if failures - * occur. - */ - int unbind (iterator pos); - - /// Returns the current number of ACE_Hash_Map_Entry objects in the - /// hash table. - size_t current_size (void) const; - - /// Return the size of the array that's used to point to the - /// linked lists of ACE_Hash_Map_Entry objects in the hash table. - size_t total_size (void) const; - - /** - * Returns a reference to the underlying . 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 , but HP/C++ will choke on that! - */ - ACE_LOCK &mutex (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iterator factory functions. - - /// Return forward iterator. - iterator begin (void); - iterator end (void); - const_iterator begin (void) const; - const_iterator end (void) const; - - /// Return reverse iterator. - reverse_iterator rbegin (void); - reverse_iterator rend (void); - const_reverse_iterator rbegin (void) const; - const_reverse_iterator rend (void) const; - -protected: - // = The following methods do the actual work. - - /// Returns 1 if == , else 0. This is defined as a - /// separate method to facilitate template specialization. - int equal (const EXT_ID &id1, const EXT_ID &id2); - - /// Compute the hash value of the @a ext_id. This is defined as a - /// separate method to facilitate template specialization. - u_long hash (const EXT_ID &ext_id); - - // = These methods assume locks are held by private methods. - - /// Performs bind. Must be called with locks held. - int bind_i (const EXT_ID &ext_id, - const INT_ID &int_id); - - /// Performs bind. Must be called with locks held. - int bind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *&entry); - - /// Performs trybind. Must be called with locks held. - int trybind_i (const EXT_ID &ext_id, - INT_ID &int_id); - - /// Performs trybind. Must be called with locks held. - int trybind_i (const EXT_ID &ext_id, - INT_ID &int_id, - ACE_Hash_Map_Entry *&entry); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *&entry); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - INT_ID &old_int_id); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - INT_ID &old_int_id, - ACE_Hash_Map_Entry *&entry); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - EXT_ID &old_ext_id, - INT_ID &old_int_id); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - EXT_ID &old_ext_id, - INT_ID &old_int_id, - ACE_Hash_Map_Entry *&entry); - - /// Performs a find of @a int_id using @a ext_id as the key. Must be - /// called with locks held. - int find_i (const EXT_ID &ext_id, - INT_ID &int_id); - - /// Performs a find using @a ext_id as the key. Must be called with - /// locks held. - int find_i (const EXT_ID &ext_id); - - /// Performs a find using @a ext_id as the key. Must be called with - /// locks held. - int find_i (const EXT_ID &ext_id, - ACE_Hash_Map_Entry *&entry); - - /// Performs unbind. Must be called with locks held. - int unbind_i (const EXT_ID &ext_id, - INT_ID &int_id); - - /// Performs unbind. Must be called with locks held. - int unbind_i (const EXT_ID &ext_id); - - /// Performs unbind. Must be called with locks held. - int unbind_i (ACE_Hash_Map_Entry *entry); - - /** - * Resize the map. Must be called with locks held. - * @note This method should never be called more than once or else all the - * hashing will get screwed up as the size will change. - */ - int create_buckets (size_t size); - - /// Close down a . Must be called with - /// locks held. - int close_i (void); - - /// Removes all the entries in . Must be called with - /// locks held. - int unbind_all_i (void); - - /// Pointer to a memory allocator used for table_, so it should - /// supply size*sizeof (ACE_Hash_Map_Entry), - ACE_Allocator *table_allocator_; - - /// Addidtional allocator for entries, so it should be able to - /// allocate 'size' / chunks of sizeof(ACE_Hash_Map_Entry) bytes each. - ACE_Allocator *entry_allocator_; - - /// Synchronization variable for the MT_SAFE - /// @c ACE_Hash_Map_Manager_Ex. - mutable ACE_LOCK lock_; - - /// Function object used for hashing keys. - HASH_KEY hash_key_; - - /// Function object used for comparing keys. - COMPARE_KEYS compare_keys_; - -protected: - /// Returns the that corresponds to @a ext_id. - int shared_find (const EXT_ID &ext_id, - ACE_Hash_Map_Entry *&entry, - size_t &loc); - - /// Accessor of the underlying table - ACE_Hash_Map_Entry *table (void); - - /// Accessor of the current size attribute - size_t cur_size (void) const; - -private: - /** - * Array of *s, each of which points to an - * that serves as the beginning of a linked - * list of s that hash to that bucket. - */ - ACE_Hash_Map_Entry *table_; - - /// Total size of the hash table. - size_t total_size_; - - /// Current number of entries in the table - /// @note That this can be larger than due to the - /// bucket chaining). - size_t cur_size_; - - // = Disallow these operations. - ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Hash_Map_Manager_Ex &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Hash_Map_Manager_Ex (const ACE_Hash_Map_Manager_Ex &)) -}; - -/** - * @class ACE_Hash_Map_Iterator_Base_Ex - * - * @brief Base iterator for the ACE_Hash_Map_Manager_Ex - * - * This class factors out common code from its templatized - * subclasses. - */ -template -class ACE_Hash_Map_Iterator_Base_Ex -{ -public: - // = STL-style typedefs/traits. - typedef ACE_Hash_Map_Manager_Ex - container_type; - - // = std::iterator_traits typedefs/traits. - 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. - /// Contructor. - /** - * If @a head != @c false, the iterator constructed is positioned - * at the head of the map. It is positioned at the end otherwise. - * @par - */ - ACE_Hash_Map_Iterator_Base_Ex ( - ACE_Hash_Map_Manager_Ex &mm, - bool head); - - /// Contructor. - /** - * This constructor positions the iterator to the given @a entry. - */ - ACE_Hash_Map_Iterator_Base_Ex ( - ACE_Hash_Map_Manager_Ex & mm, - ACE_Hash_Map_Entry * entry, - size_t index); - - // = ITERATION methods. - - /// Pass back the next that hasn't been seen in the Set. - /// Returns 0 when all items have been seen, else 1. - int next (ACE_Hash_Map_Entry *&next_entry) const; - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Returns a reference to the interal element @c this is pointing to. - ACE_Hash_Map_Entry& operator* (void) const; - - /// Returns a pointer to the interal element @c this is pointing to. - ACE_Hash_Map_Entry* operator-> (void) const; - - /// Returns reference the Hash_Map_Manager_Ex that is being iterated - /// over. - ACE_Hash_Map_Manager_Ex& map (void); - - /// Check if two iterators point to the same position - bool operator== (const ACE_Hash_Map_Iterator_Base_Ex &) const; - bool operator!= (const ACE_Hash_Map_Iterator_Base_Ex &) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Move forward by one element in the set. Returns 0 when there's - /// no more item in the set after the current items, else 1. - int forward_i (void); - - /// Move backward by one element in the set. Returns 0 when there's - /// no more item in the set before the current item, else 1. - int reverse_i (void); - - /// Dump the state of an object. - void dump_i (void) const; - - /// Map we are iterating over. - ACE_Hash_Map_Manager_Ex *map_man_; - - /// Keeps track of how far we've advanced in the table. - ssize_t index_; - - /// Keeps track of how far we've advanced in a linked list in each - /// table slot. - ACE_Hash_Map_Entry *next_; -}; - -/** - * @class ACE_Hash_Map_Const_Iterator_Base_Ex - * - * @brief Base const iterator for the ACE_Hash_Map_Manager_Ex - * - * This class factors out common code from its templatized - * subclasses. - */ -template -class ACE_Hash_Map_Const_Iterator_Base_Ex -{ -public: - // = STL-style typedefs/traits. - typedef ACE_Hash_Map_Manager_Ex - container_type; - - // = std::iterator_traits typedefs/traits. - typedef typename container_type::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. - /// Contructor. If head != 0, the iterator constructed is positioned - /// at the head of the map, it is positioned at the end otherwise. - ACE_Hash_Map_Const_Iterator_Base_Ex (const ACE_Hash_Map_Manager_Ex &mm, - int head); - - // = ITERATION methods. - - /// Pass back the next that hasn't been seen in the Set. - /// Returns 0 when all items have been seen, else 1. - int next (ACE_Hash_Map_Entry *&next_entry) const; - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Returns a reference to the interal element @c this is pointing to. - ACE_Hash_Map_Entry& operator* (void) const; - - /// Returns a pointer to the interal element @c this is pointing to. - ACE_Hash_Map_Entry* operator-> (void) const; - - /// Returns reference the Hash_Map_Manager_Ex that is being iterated - /// over. - const ACE_Hash_Map_Manager_Ex& map (void); - - /// Check if two iterators point to the same position - bool operator== (const ACE_Hash_Map_Const_Iterator_Base_Ex &) const; - bool operator!= (const ACE_Hash_Map_Const_Iterator_Base_Ex &) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Move forward by one element in the set. Returns 0 when there's - /// no more item in the set after the current items, else 1. - int forward_i (void); - - /// Move backward by one element in the set. Returns 0 when there's - /// no more item in the set before the current item, else 1. - int reverse_i (void); - - /// Dump the state of an object. - void dump_i (void) const; - - /// Map we are iterating over. - const ACE_Hash_Map_Manager_Ex *map_man_; - - /// Keeps track of how far we've advanced in the table. - ssize_t index_; - - /// Keeps track of how far we've advanced in a linked list in each - /// table slot. - ACE_Hash_Map_Entry *next_; -}; - -/** - * @class ACE_Hash_Map_Iterator_Ex - * - * @brief Forward iterator for the ACE_Hash_Map_Manager_Ex. - * - * This class does not perform any internal locking of the - * 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 method. - */ -template -class ACE_Hash_Map_Iterator_Ex : public ACE_Hash_Map_Iterator_Base_Ex -{ -public: - // = STL-style traits/typedefs - typedef typename ACE_Hash_Map_Iterator_Base_Ex::container_type - container_type; - - // = STL-style traits/typedefs - typedef std::bidirectional_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_Hash_Map_Iterator_Ex (ACE_Hash_Map_Manager_Ex &mm, - int tail = 0); - - /// Contructor. - /** - * This constructor positions the iterator to the given @a entry. - */ - ACE_Hash_Map_Iterator_Ex ( - ACE_Hash_Map_Manager_Ex & mm, - ACE_Hash_Map_Entry * entry, - size_t index); - - // = Iteration methods. - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iteration, compare, and reference functions. - - /// Prefix advance. - ACE_Hash_Map_Iterator_Ex &operator++ (void); - - /// Postfix advance. - ACE_Hash_Map_Iterator_Ex operator++ (int); - - /// Prefix reverse. - ACE_Hash_Map_Iterator_Ex &operator-- (void); - - /// Postfix reverse. - ACE_Hash_Map_Iterator_Ex operator-- (int); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Hash_Map_Const_Iterator_Ex - * - * @brief Const forward iterator for the ACE_Hash_Map_Manager_Ex. - * - * This class does not perform any internal locking of the - * 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 method. - */ -template -class ACE_Hash_Map_Const_Iterator_Ex : public ACE_Hash_Map_Const_Iterator_Base_Ex -{ -public: - // = STL-style traits/typedefs - typedef typename ACE_Hash_Map_Const_Iterator_Base_Ex::container_type - container_type; - - // = std::iterator_trait traits/typedefs - typedef std::bidirectional_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_Hash_Map_Const_Iterator_Ex (const ACE_Hash_Map_Manager_Ex &mm, - int tail = 0); - - // = Iteration methods. - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iteration, compare, and reference functions. - - /// Prefix advance. - ACE_Hash_Map_Const_Iterator_Ex &operator++ (void); - - /// Postfix advance. - ACE_Hash_Map_Const_Iterator_Ex operator++ (int); - - /// Prefix reverse. - ACE_Hash_Map_Const_Iterator_Ex &operator-- (void); - - /// Postfix reverse. - ACE_Hash_Map_Const_Iterator_Ex operator-- (int); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Hash_Map_Bucket_Iterator - * - * @brief Forward iterator for the ACE_Hash_Map_Manager_Ex which - * only traverses a particular bucket. The particular bucket is - * specified by the parameter specified in the constructor. - * - * This class does not perform any internal locking of the - * 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 method. - * - * Note that a creation method for this new iterator cannot be added - * to the hash map, since this would require adding explicit template - * instantiations for bucket iterators on platforms with broken - * templates. - */ -template -class ACE_Hash_Map_Bucket_Iterator -{ -public: - // = STL-style traits/typedefs - typedef ACE_Hash_Map_Manager_Ex - container_type; - - // = std::iterator traits/typedefs - typedef std::bidirectional_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_Hash_Map_Bucket_Iterator (ACE_Hash_Map_Manager_Ex &mm, - const EXT_ID &ext_id, - int tail = 0); - - // = STL styled iteration, compare, and reference functions. - - /// Prefix advance. - ACE_Hash_Map_Bucket_Iterator &operator++ (void); - - /// Postfix advance. - ACE_Hash_Map_Bucket_Iterator operator++ (int); - - /// Prefix reverse. - ACE_Hash_Map_Bucket_Iterator &operator-- (void); - - /// Postfix reverse. - ACE_Hash_Map_Bucket_Iterator operator-- (int); - - /// Returns a reference to the interal element @c this is pointing to. - ACE_Hash_Map_Entry& operator* (void) const; - - /// Returns a pointer to the interal element @c this is pointing to. - ACE_Hash_Map_Entry* operator-> (void) const; - - /// Returns reference the Hash_Map_Manager_Ex that is being iterated - /// over. - ACE_Hash_Map_Manager_Ex& map (void); - - /// Check if two iterators point to the same position - bool operator== (const ACE_Hash_Map_Bucket_Iterator &) const; - bool operator!= (const ACE_Hash_Map_Bucket_Iterator &) const; - -protected: - /// Move forward by one element in the set. Returns 0 when there's - /// no more item in the set after the current items, else 1. - int forward_i (void); - - /// Move backward by one element in the set. Returns 0 when there's - /// no more item in the set before the current item, else 1. - int reverse_i (void); - - /// Map we are iterating over. - ACE_Hash_Map_Manager_Ex *map_man_; - - /// Keeps track of how far we've advanced in the table. - ssize_t index_; - - /// Keeps track of how far we've advanced in a linked list in each - /// table slot. - ACE_Hash_Map_Entry *next_; -}; - -/** - * @class ACE_Hash_Map_Reverse_Iterator_Ex - * - * @brief Reverse iterator for the ACE_Hash_Map_Manager_Ex. - * - * This class does not perform any internal locking of the - * 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 method. - */ -template -class ACE_Hash_Map_Reverse_Iterator_Ex : public ACE_Hash_Map_Iterator_Base_Ex -{ -public: - // = STL-style traits/typedefs - typedef typename ACE_Hash_Map_Iterator_Base_Ex::container_type - container_type; - - // = std::iterator_traits typedefs - typedef std::bidirectional_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_Hash_Map_Reverse_Iterator_Ex (ACE_Hash_Map_Manager_Ex &mm, - int head = 0); - - // = Iteration methods. - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iteration, compare, and reference functions. - - /// Prefix reverse. - ACE_Hash_Map_Reverse_Iterator_Ex &operator++ (void); - - /// Postfix reverse. - ACE_Hash_Map_Reverse_Iterator_Ex operator++ (int); - - /// Prefix advance. - ACE_Hash_Map_Reverse_Iterator_Ex &operator-- (void); - - /// Postfix advance. - ACE_Hash_Map_Reverse_Iterator_Ex operator-- (int); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Hash_Map_Const_Reverse_Iterator_Ex - * - * @brief Const reverse iterator for the ACE_Hash_Map_Manager_Ex. - * - * This class does not perform any internal locking of the - * 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 method. - */ -template -class ACE_Hash_Map_Const_Reverse_Iterator_Ex : public ACE_Hash_Map_Const_Iterator_Base_Ex -{ -public: - // = STL-style traits/typedefs - typedef typename ACE_Hash_Map_Const_Iterator_Base_Ex::container_type - container_type; - - // = std::iterator_traits typedefs - typedef std::bidirectional_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_Hash_Map_Const_Reverse_Iterator_Ex (const ACE_Hash_Map_Manager_Ex &mm, - int head = 0); - - // = Iteration methods. - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iteration, compare, and reference functions. - - /// Prefix reverse. - ACE_Hash_Map_Const_Reverse_Iterator_Ex &operator++ (void); - - /// Postfix reverse. - ACE_Hash_Map_Const_Reverse_Iterator_Ex operator++ (int); - - /// Prefix advance. - ACE_Hash_Map_Const_Reverse_Iterator_Ex &operator-- (void); - - /// Postfix advance. - ACE_Hash_Map_Const_Reverse_Iterator_Ex operator-- (int); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Hash_Map_Manager - * - * @brief Wrapper for backward compatibility. - * - * This implementation of a map uses a hash table. This class - * expects that the contains a method called . - * In addition, the must support . Both of - * these constraints can be alleviated via template - * specialization, as shown in the $ACE_ROOT/tests/Conn_Test.cpp - * test. - * - * Requirements and Performance Characteristics - * - Internal Structure - * Hash Table - * - Duplicates allowed? - * No - * - Random access allowed? - * Yes - * - Search speed - * O(1) - * - Insert/replace speed - * O(1), can be longer if the hash map has to resize - * - Iterator still valid after change to container? - * Yes - * - Frees memory for removed elements? - * Yes - * - Items inserted by - * Value - * - Requirements for key type - * -# Default constructor - * -# Copy constructor - * -# operator= - * -# operator== - * - Requirements for object type - * -# Default constructor - * -# Copy constructor - * -# operator= - * -# operator< - */ -template -class ACE_Hash_Map_Manager : public ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_LOCK> -{ -public: - - /** - * Initialize a @c Hash_Map_Manager with default size elements. - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_Map_Entry). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_Map_Entry) bytes each. - * If @c table_alloc is 0 it defaults to @c ACE_Allocator::instance(). - * If @c entry_alloc is 0 then it defaults to the same allocator as - * @c table_alloc. - */ - ACE_Hash_Map_Manager (ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - /** - * Initialize a @c Hash_Map_Manager with @c size elements. - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_Map_Entry). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_Map_Entry) bytes each. - * If @c table_alloc is 0 it defaults to @c ACE_Allocator::instance(). - * If @c entry_alloc is 0 then it defaults to the same allocator as - * @c table_alloc. - */ - ACE_Hash_Map_Manager (size_t size, - ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - // = The following two are necessary for template specialization of - // ACE_Hash_Map_Manager to work. - int equal (const EXT_ID &id1, const EXT_ID &id2); - u_long hash (const EXT_ID &ext_id); -}; - -/** - * @class ACE_Hash_Map_Iterator - * - * @brief Wrapper for backward compatibility. - */ -template -class ACE_Hash_Map_Iterator : public ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK> -{ -public: -#if defined (ACE_HAS_STL_ITERATOR_TRAITS) - typedef typename ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK>::iterator_category iterator_category; - typedef typename ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK>::value_type value_type; - typedef typename ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK>::reference reference; - typedef typename ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK>::pointer pointer; - typedef typename ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK>::difference_type difference_type; -#endif - - // = Initialization method. - /// Construct from map - ACE_Hash_Map_Iterator (ACE_Hash_Map_Manager &mm, - int tail = 0); - - /// Construct from base - ACE_Hash_Map_Iterator (const ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base); - - /// Assignment from base - ACE_Hash_Map_Iterator & - operator= (const ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base); -}; - -/** - * @class ACE_Hash_Map_Const_Iterator - * - * @brief Wrapper for backward compatibility. - */ -template -class ACE_Hash_Map_Const_Iterator : public ACE_Hash_Map_Const_Iterator_Ex, ACE_Equal_To, ACE_LOCK> -{ -public: - // = STL-style traits/typedefs - typedef typename ACE_Hash_Map_Const_Iterator_Ex, ACE_Equal_To, ACE_LOCK>::container_type - container_type; - - // = std::iterator_traits typedefs - typedef typename container_type::iterator_category 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. - /// Construct from map - ACE_Hash_Map_Const_Iterator (const ACE_Hash_Map_Manager &mm, - int tail = 0); - - /// Construct from base - ACE_Hash_Map_Const_Iterator (const ACE_Hash_Map_Const_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base); - - /// Assignment from base - ACE_Hash_Map_Const_Iterator & - operator= (const ACE_Hash_Map_Const_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base); -}; - -/** - * @class ACE_Hash_Map_Reverse_Iterator - * - * @brief Wrapper for backward compatibility. - */ -template -class ACE_Hash_Map_Reverse_Iterator : public ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_LOCK> -{ -public: - // = STL-style traits/typedefs - typedef typename ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_LOCK>::container_type - container_type; - - // = std::iterator_traits typedefs - typedef typename container_type::iterator_category 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_Hash_Map_Reverse_Iterator (ACE_Hash_Map_Manager &mm, - int head = 0); - - /// Construct from base - ACE_Hash_Map_Reverse_Iterator (const ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base); - - /// Assignment from base - ACE_Hash_Map_Reverse_Iterator & - operator= (const ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -# include "ace/Hash_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Hash_Map_Manager_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Hash_Map_Manager_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_HASH_MAP_MANAGER_T_H */ diff --git a/ACE/ace/Hash_Map_Manager_T.inl b/ACE/ace/Hash_Map_Manager_T.inl deleted file mode 100644 index 1385ea3e5b2..00000000000 --- a/ACE/ace/Hash_Map_Manager_T.inl +++ /dev/null @@ -1,1253 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Guard_T.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE -ACE_Hash_Map_Manager_Ex::ACE_Hash_Map_Manager_Ex (size_t size, - ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : table_allocator_ (table_alloc), - entry_allocator_ (entry_alloc), - table_ (0), - total_size_ (0), - cur_size_ (0) -{ - if (this->open (size, table_alloc, entry_alloc) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("ACE_Hash_Map_Manager_Ex\n"))); -} - -template ACE_INLINE -ACE_Hash_Map_Manager_Ex::ACE_Hash_Map_Manager_Ex (ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : table_allocator_ (table_alloc), - entry_allocator_ (entry_alloc), - table_ (0), - total_size_ (0), - cur_size_ (0) -{ - if (this->open (ACE_DEFAULT_MAP_SIZE, table_alloc, entry_alloc) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_Hash_Map_Manager_Ex open"))); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::close (void) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->close_i (); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::unbind_all (void) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_all_i (); -} - -template ACE_INLINE -ACE_Hash_Map_Manager_Ex::~ACE_Hash_Map_Manager_Ex (void) -{ - this->close (); -} - -template ACE_INLINE size_t -ACE_Hash_Map_Manager_Ex::current_size (void) const -{ - return this->cur_size_; -} - -template ACE_INLINE size_t -ACE_Hash_Map_Manager_Ex::total_size (void) const -{ - return this->total_size_; -} - -template ACE_INLINE ACE_LOCK & -ACE_Hash_Map_Manager_Ex::mutex (void) -{ - ACE_TRACE ("ACE_Hash_Map_Manager_Ex::mutex"); - return this->lock_; -} - -template ACE_INLINE u_long -ACE_Hash_Map_Manager_Ex::hash (const EXT_ID &ext_id) -{ - return this->hash_key_ (ext_id); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::equal (const EXT_ID &id1, - const EXT_ID &id2) -{ - return this->compare_keys_ (id1, id2); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::bind_i (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_Hash_Map_Entry *temp; - - return this->bind_i (ext_id, int_id, temp); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::bind (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::bind (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id, entry); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::trybind_i (const EXT_ID &ext_id, - INT_ID &int_id) -{ - ACE_Hash_Map_Entry *temp; - - int result = this->trybind_i (ext_id, int_id, temp); - if (result == 1) - int_id = temp->int_id_; - return result; -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::trybind (const EXT_ID &ext_id, - INT_ID &int_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->trybind_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::trybind (const EXT_ID &ext_id, - INT_ID &int_id, - ACE_Hash_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->trybind_i (ext_id, int_id, entry); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::unbind_i (const EXT_ID &ext_id) -{ - INT_ID int_id; - - return this->unbind_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::unbind (const EXT_ID &ext_id, - INT_ID &int_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (ext_id, int_id); -} - -template -ACE_INLINE int -ACE_Hash_Map_Manager_Ex::unbind ( - typename ACE_Hash_Map_Manager_Ex::iterator pos) -{ - return this->unbind (&(*pos)); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::unbind (const EXT_ID &ext_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (ext_id) == -1 ? -1 : 0; -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::unbind (ACE_Hash_Map_Entry *entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (entry) == -1 ? -1 : 0; -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::find_i (const EXT_ID &ext_id, - INT_ID &int_id) -{ - ACE_Hash_Map_Entry *entry; - - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return -1; - else - { - int_id = entry->int_id_; - return 0; - } -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::find_i (const EXT_ID &ext_id) -{ - ACE_Hash_Map_Entry *entry; - - size_t dummy; - return this->shared_find (ext_id, entry, dummy); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::find (const EXT_ID &ext_id, - INT_ID &int_id) const -{ - ACE_Hash_Map_Manager_Ex *nc_this = - const_cast *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return nc_this->find_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::find (const EXT_ID &ext_id) const -{ - ACE_Hash_Map_Manager_Ex *nc_this = - const_cast *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return nc_this->find_i (ext_id); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::find_i (const EXT_ID &ext_id, - ACE_Hash_Map_Entry *&entry) -{ - size_t dummy; - return this->shared_find (ext_id, entry, dummy); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::find (const EXT_ID &ext_id, - ACE_Hash_Map_Entry *&entry) const -{ - ACE_Hash_Map_Manager_Ex *nc_this = - const_cast *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return nc_this->find_i (ext_id, entry); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_Hash_Map_Entry *node; - - return this->rebind_i (ext_id, - int_id, - node); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - INT_ID &old_int_id) -{ - ACE_Hash_Map_Entry *node; - - return this->rebind_i (ext_id, - int_id, - old_int_id, - node); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::rebind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - EXT_ID &old_ext_id, - INT_ID &old_int_id) -{ - ACE_Hash_Map_Entry *node; - - return this->rebind_i (ext_id, - int_id, - old_ext_id, - old_int_id, - node); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::rebind (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::rebind (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id, entry); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::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); - - return this->rebind_i (ext_id, int_id, old_int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::rebind (const EXT_ID &ext_id, - const INT_ID &int_id, - INT_ID &old_int_id, - ACE_Hash_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id, old_int_id, entry); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::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); - - return this->rebind_i (ext_id, int_id, old_ext_id, old_int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_Manager_Ex::rebind (const EXT_ID &ext_id, - const INT_ID &int_id, - EXT_ID &old_ext_id, - INT_ID &old_int_id, - ACE_Hash_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id, old_ext_id, old_int_id, entry); -} - -template ACE_INLINE -typename ACE_Hash_Map_Manager_Ex::iterator -ACE_Hash_Map_Manager_Ex::begin (void) -{ - return iterator (*this); -} - -template ACE_INLINE -typename ACE_Hash_Map_Manager_Ex::iterator -ACE_Hash_Map_Manager_Ex::end (void) -{ - return iterator (*this, 1); -} - -template ACE_INLINE -typename ACE_Hash_Map_Manager_Ex::const_iterator -ACE_Hash_Map_Manager_Ex::begin (void) const -{ - return const_iterator (*this); -} - -template ACE_INLINE -typename ACE_Hash_Map_Manager_Ex::const_iterator -ACE_Hash_Map_Manager_Ex::end (void) const -{ - return const_iterator (*this, 1); -} - -template ACE_INLINE -typename ACE_Hash_Map_Manager_Ex::reverse_iterator -ACE_Hash_Map_Manager_Ex::rbegin (void) -{ - return reverse_iterator (*this); -} - -template ACE_INLINE -typename ACE_Hash_Map_Manager_Ex::reverse_iterator -ACE_Hash_Map_Manager_Ex::rend (void) -{ - return reverse_iterator (*this, 1); -} - - template ACE_INLINE - typename ACE_Hash_Map_Manager_Ex::const_reverse_iterator - ACE_Hash_Map_Manager_Ex::rbegin (void) const - { - return const_reverse_iterator (*this); - } - - template ACE_INLINE - typename ACE_Hash_Map_Manager_Ex::const_reverse_iterator - ACE_Hash_Map_Manager_Ex::rend (void) const - { - return const_reverse_iterator (*this, 1); - } - -template ACE_INLINE -ACE_Hash_Map_Entry * -ACE_Hash_Map_Manager_Ex::table (void) -{ - return this->table_; -} - -template ACE_INLINE -size_t -ACE_Hash_Map_Manager_Ex::cur_size (void) const -{ - return this->cur_size_; -} - -template -ACE_INLINE void -ACE_Hash_Map_Manager_Ex::find ( - EXT_ID const &ext_id, - typename ACE_Hash_Map_Manager_Ex::iterator & pos) const -{ - ENTRY * entry = 0; - size_t index = 0; - - ACE_Hash_Map_Manager_Ex *nc_this = - const_cast *> - (this); - - ACE_READ_GUARD (ACE_LOCK, ace_mon, this->lock_); - - if (nc_this->shared_find (ext_id, entry, index) != -1) - pos = iterator (*nc_this, entry, index); - else - pos = nc_this->end (); -} - -// --------------------------------------------------------------------- - -template -ACE_INLINE -ACE_Hash_Map_Iterator_Base_Ex::ACE_Hash_Map_Iterator_Base_Ex ( - ACE_Hash_Map_Manager_Ex &mm, - bool head) - : map_man_ (&mm), - index_ (head ? -1 : (ssize_t) mm.total_size_), - next_ (0) -{ - if (mm.table_ != 0) - this->next_ = &mm.table_[head ? 0 : mm.total_size_ - 1]; -} - -template -ACE_INLINE -ACE_Hash_Map_Iterator_Base_Ex::ACE_Hash_Map_Iterator_Base_Ex ( - ACE_Hash_Map_Manager_Ex & mm, - ACE_Hash_Map_Entry * entry, - size_t index) - : map_man_ (&mm) - , index_ (static_cast (index)) - , next_ (entry) -{ -} - -template ACE_INLINE int -ACE_Hash_Map_Iterator_Base_Ex::next (ACE_Hash_Map_Entry *&entry) const -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::next"); - - if (this->map_man_->table_ != 0 - && this->index_ < static_cast (this->map_man_->total_size_) - && this->index_ >= 0 - && this->next_ != &this->map_man_->table_[this->index_]) - { - entry = this->next_; - return 1; - } - else - return 0; -} - -template ACE_INLINE int -ACE_Hash_Map_Iterator_Base_Ex::done (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::done"); - - return this->map_man_->table_ == 0 - || this->index_ >= static_cast (this->map_man_->total_size_) - || this->index_ < 0; -} - -template ACE_INLINE -ACE_Hash_Map_Entry & -ACE_Hash_Map_Iterator_Base_Ex::operator* (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::operator*"); - ACE_Hash_Map_Entry *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return *retv; -} - -template ACE_INLINE -ACE_Hash_Map_Entry * -ACE_Hash_Map_Iterator_Base_Ex::operator-> (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::operator->"); - ACE_Hash_Map_Entry *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return retv; -} - -// Returns the reference to the hash_map_manager_ex that is being -// iterated over. -template ACE_INLINE -ACE_Hash_Map_Manager_Ex& -ACE_Hash_Map_Iterator_Base_Ex::map (void) -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::map"); - return *this->map_man_; -} - -template ACE_INLINE bool -ACE_Hash_Map_Iterator_Base_Ex::operator== (const ACE_Hash_Map_Iterator_Base_Ex &rhs) const -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::operator=="); - return this->map_man_ == rhs.map_man_ - && this->index_ == rhs.index_ - && this->next_ == rhs.next_; -} - -template ACE_INLINE bool -ACE_Hash_Map_Iterator_Base_Ex::operator!= (const ACE_Hash_Map_Iterator_Base_Ex &rhs) const -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex::operator!="); - return this->next_ != rhs.next_ - || this->index_ != rhs.index_ - || this->map_man_ != rhs.map_man_; -} - -template ACE_INLINE -ACE_Hash_Map_Const_Iterator_Base_Ex::ACE_Hash_Map_Const_Iterator_Base_Ex (const ACE_Hash_Map_Manager_Ex &mm, - int head) - : map_man_ (&mm), - index_ (head != 0 ? -1 : (ssize_t) mm.total_size_), - next_ (0) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::ACE_Hash_Map_Const_Iterator_Base_Ex"); - - if (mm.table_ != 0) - this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1]; -} - -template ACE_INLINE int -ACE_Hash_Map_Const_Iterator_Base_Ex::next (ACE_Hash_Map_Entry *&entry) const -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::next"); - - if (this->map_man_->table_ != 0 - && this->index_ < (ssize_t) this->map_man_->total_size_ - && this->index_ >= 0 - && this->next_ != &this->map_man_->table_[this->index_]) - { - entry = this->next_; - return 1; - } - else - return 0; -} - -template ACE_INLINE int -ACE_Hash_Map_Const_Iterator_Base_Ex::done (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::done"); - - return this->map_man_->table_ == 0 - || this->index_ >= (ssize_t) this->map_man_->total_size_ - || this->index_ < 0; -} - -template ACE_INLINE -ACE_Hash_Map_Entry & -ACE_Hash_Map_Const_Iterator_Base_Ex::operator* (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::operator*"); - ACE_Hash_Map_Entry *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return *retv; -} - -template ACE_INLINE -ACE_Hash_Map_Entry * -ACE_Hash_Map_Const_Iterator_Base_Ex::operator-> (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::operator->"); - ACE_Hash_Map_Entry *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return retv; -} - -// Returns the reference to the hash_map_manager_ex that is being -// iterated over. -template ACE_INLINE -const ACE_Hash_Map_Manager_Ex& -ACE_Hash_Map_Const_Iterator_Base_Ex::map (void) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::map"); - return *this->map_man_; -} - -template ACE_INLINE bool -ACE_Hash_Map_Const_Iterator_Base_Ex::operator== (const ACE_Hash_Map_Const_Iterator_Base_Ex &rhs) const -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::operator=="); - return this->map_man_ == rhs.map_man_ - && this->index_ == rhs.index_ - && this->next_ == rhs.next_; -} - -template ACE_INLINE bool -ACE_Hash_Map_Const_Iterator_Base_Ex::operator!= (const ACE_Hash_Map_Const_Iterator_Base_Ex &rhs) const -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex::operator!="); - return this->next_ != rhs.next_ - || this->index_ != rhs.index_ - || this->map_man_ != rhs.map_man_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Iterator_Ex) - -template ACE_INLINE void -ACE_Hash_Map_Iterator_Ex::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_Map_Iterator_Ex::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Hash_Map_Iterator_Ex::ACE_Hash_Map_Iterator_Ex (ACE_Hash_Map_Manager_Ex &mm, - int tail) - : ACE_Hash_Map_Iterator_Base_Ex (mm, - tail == 0 ? 1 : 0) -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Ex::ACE_Hash_Map_Iterator_Ex"); - if (tail == 0) - this->forward_i (); -} - -template -ACE_INLINE -ACE_Hash_Map_Iterator_Ex::ACE_Hash_Map_Iterator_Ex ( - ACE_Hash_Map_Manager_Ex & mm, - ACE_Hash_Map_Entry * entry, - size_t index) - : ACE_Hash_Map_Iterator_Base_Ex (mm, - entry, - index) -{ -} - -template ACE_INLINE int -ACE_Hash_Map_Iterator_Ex::advance (void) -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Ex::advance"); - return this->forward_i (); -} - -template ACE_INLINE -ACE_Hash_Map_Iterator_Ex & -ACE_Hash_Map_Iterator_Ex::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Ex::operator++ (void)"); - - this->forward_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Iterator_Ex -ACE_Hash_Map_Iterator_Ex::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Ex::operator++ (int)"); - - ACE_Hash_Map_Iterator_Ex retv (*this); - ++*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Map_Iterator_Ex & -ACE_Hash_Map_Iterator_Ex::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Ex::operator-- (void)"); - - this->reverse_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Iterator_Ex -ACE_Hash_Map_Iterator_Ex::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_Map_Iterator_Ex::operator-- (int)"); - - ACE_Hash_Map_Iterator_Ex retv (*this); - --*this; - return retv; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Const_Iterator_Ex) - -template ACE_INLINE void -ACE_Hash_Map_Const_Iterator_Ex::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Hash_Map_Const_Iterator_Ex::ACE_Hash_Map_Const_Iterator_Ex (const ACE_Hash_Map_Manager_Ex &mm, - int tail) - : ACE_Hash_Map_Const_Iterator_Base_Ex (mm, - tail == 0 ? 1 : 0) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex::ACE_Hash_Map_Const_Iterator_Ex"); - if (tail == 0) - this->forward_i (); -} - -template ACE_INLINE int -ACE_Hash_Map_Const_Iterator_Ex::advance (void) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex::advance"); - return this->forward_i (); -} - -template ACE_INLINE -ACE_Hash_Map_Const_Iterator_Ex & -ACE_Hash_Map_Const_Iterator_Ex::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex::operator++ (void)"); - - this->forward_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Const_Iterator_Ex -ACE_Hash_Map_Const_Iterator_Ex::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex::operator++ (int)"); - - ACE_Hash_Map_Const_Iterator_Ex retv (*this); - ++*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Map_Const_Iterator_Ex & -ACE_Hash_Map_Const_Iterator_Ex::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex::operator-- (void)"); - - this->reverse_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Const_Iterator_Ex -ACE_Hash_Map_Const_Iterator_Ex::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Ex::operator-- (int)"); - - ACE_Hash_Map_Const_Iterator_Ex retv (*this); - --*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Map_Bucket_Iterator::ACE_Hash_Map_Bucket_Iterator (ACE_Hash_Map_Manager_Ex &mm, - const EXT_ID &ext_id, - int tail) - : map_man_ (&mm) -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::ACE_Hash_Map_Bucket_Iterator"); - - this->index_ = this->map_man_->hash (ext_id) % this->map_man_->total_size_; - this->next_ = &this->map_man_->table_[this->index_]; - - if (tail == 0) - this->forward_i (); -} - -template ACE_INLINE -ACE_Hash_Map_Bucket_Iterator & -ACE_Hash_Map_Bucket_Iterator::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::operator++ (void)"); - - this->forward_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Bucket_Iterator -ACE_Hash_Map_Bucket_Iterator::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::operator++ (int)"); - - ACE_Hash_Map_Bucket_Iterator retv (*this); - ++*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Map_Bucket_Iterator & -ACE_Hash_Map_Bucket_Iterator::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::operator-- (void)"); - - this->reverse_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Bucket_Iterator -ACE_Hash_Map_Bucket_Iterator::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::operator-- (int)"); - - ACE_Hash_Map_Bucket_Iterator retv (*this); - --*this; - return retv; -} - -template int -ACE_Hash_Map_Bucket_Iterator::forward_i (void) -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::forward_i"); - - this->next_ = this->next_->next_; - return this->next_ != &this->map_man_->table_[this->index_]; -} - -template int -ACE_Hash_Map_Bucket_Iterator::reverse_i (void) -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::reverse_i"); - - this->next_ = this->next_->prev_; - return this->next_ != &this->map_man_->table_[this->index_]; -} - -template ACE_INLINE -ACE_Hash_Map_Entry & -ACE_Hash_Map_Bucket_Iterator::operator* (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::operator*"); - - return *this->next_; -} - -template ACE_INLINE -ACE_Hash_Map_Entry * -ACE_Hash_Map_Bucket_Iterator::operator-> (void) const -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::operator->"); - - return this->next_; -} - -template ACE_INLINE -ACE_Hash_Map_Manager_Ex & -ACE_Hash_Map_Bucket_Iterator::map (void) -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::map"); - return *this->map_man_; -} - -template ACE_INLINE bool -ACE_Hash_Map_Bucket_Iterator::operator== (const ACE_Hash_Map_Bucket_Iterator &rhs) const -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::operator=="); - return this->map_man_ == rhs.map_man_ - && this->index_ == rhs.index_ - && this->next_ == rhs.next_; -} - -template ACE_INLINE bool -ACE_Hash_Map_Bucket_Iterator::operator!= (const ACE_Hash_Map_Bucket_Iterator &rhs) const -{ - ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator::operator!="); - return this->next_ != rhs.next_ - || this->index_ != rhs.index_ - || this->map_man_ != rhs.map_man_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Reverse_Iterator_Ex) - -template ACE_INLINE void -ACE_Hash_Map_Reverse_Iterator_Ex::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Hash_Map_Reverse_Iterator_Ex::ACE_Hash_Map_Reverse_Iterator_Ex (ACE_Hash_Map_Manager_Ex &mm, int head) - : ACE_Hash_Map_Iterator_Base_Ex (mm, head) -{ - ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex::ACE_Hash_Map_Reverse_Iterator_Ex"); - if (head == 0) - this->reverse_i (); -} - -template ACE_INLINE int -ACE_Hash_Map_Reverse_Iterator_Ex::advance (void) -{ - ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex::advance"); - return this->reverse_i (); -} - -template ACE_INLINE -ACE_Hash_Map_Reverse_Iterator_Ex & -ACE_Hash_Map_Reverse_Iterator_Ex::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex::operator++ (void)"); - - this->reverse_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Reverse_Iterator_Ex -ACE_Hash_Map_Reverse_Iterator_Ex::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex::operator++ (int)"); - - ACE_Hash_Map_Reverse_Iterator_Ex retv (*this); - ++*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Map_Reverse_Iterator_Ex & -ACE_Hash_Map_Reverse_Iterator_Ex::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex::operator-- (void)"); - - this->forward_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Reverse_Iterator_Ex -ACE_Hash_Map_Reverse_Iterator_Ex::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_Map_Reverse_Iterator_Ex::operator-- (int)"); - - ACE_Hash_Map_Reverse_Iterator_Ex retv (*this); - --*this; - return retv; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Map_Const_Reverse_Iterator_Ex) - -template ACE_INLINE void -ACE_Hash_Map_Const_Reverse_Iterator_Ex::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_Map_Const_Reverse_Iterator_Ex::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Hash_Map_Const_Reverse_Iterator_Ex::ACE_Hash_Map_Const_Reverse_Iterator_Ex (const ACE_Hash_Map_Manager_Ex &mm, int head) - : ACE_Hash_Map_Const_Iterator_Base_Ex (mm, head) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Reverse_Iterator_Ex::ACE_Hash_Map_Const_Reverse_Iterator_Ex"); - if (head == 0) - this->reverse_i (); -} - -template ACE_INLINE int -ACE_Hash_Map_Const_Reverse_Iterator_Ex::advance (void) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Reverse_Iterator_Ex::advance"); - return this->reverse_i (); -} - -template ACE_INLINE -ACE_Hash_Map_Const_Reverse_Iterator_Ex & -ACE_Hash_Map_Const_Reverse_Iterator_Ex::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Reverse_Iterator_Ex::operator++ (void)"); - - this->reverse_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Const_Reverse_Iterator_Ex -ACE_Hash_Map_Const_Reverse_Iterator_Ex::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Reverse_Iterator_Ex::operator++ (int)"); - - ACE_Hash_Map_Const_Reverse_Iterator_Ex retv (*this); - ++*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Map_Const_Reverse_Iterator_Ex & -ACE_Hash_Map_Const_Reverse_Iterator_Ex::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Reverse_Iterator_Ex::operator-- (void)"); - - this->forward_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Map_Const_Reverse_Iterator_Ex -ACE_Hash_Map_Const_Reverse_Iterator_Ex::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_Map_Const_Reverse_Iterator_Ex::operator-- (int)"); - - ACE_Hash_Map_Const_Reverse_Iterator_Ex retv (*this); - --*this; - return retv; -} - -template -ACE_Hash_Map_Manager::ACE_Hash_Map_Manager (ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_LOCK> (table_alloc, - entry_alloc) -{ -} - -template -ACE_Hash_Map_Manager::ACE_Hash_Map_Manager (size_t size, - ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_LOCK> (size, - table_alloc, - entry_alloc) -{ -} - -template int -ACE_Hash_Map_Manager::equal (const EXT_ID &id1, const EXT_ID &id2) -{ - return ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_LOCK>::equal (id1, id2); -} - -template u_long -ACE_Hash_Map_Manager::hash (const EXT_ID &ext_id) -{ - return ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_LOCK>::hash (ext_id); -} - -template -ACE_Hash_Map_Iterator::ACE_Hash_Map_Iterator (ACE_Hash_Map_Manager &mm, - int tail) - : ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK> (mm, - tail) -{ -} - -template -ACE_Hash_Map_Iterator::ACE_Hash_Map_Iterator (const ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base) - : ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK> (base) -{ -} - -template ACE_Hash_Map_Iterator & -ACE_Hash_Map_Iterator::operator= (const ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &rhs) -{ - if (this != &rhs) - { - ACE_Hash_Map_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base = *this; - - base = rhs; - } - - return *this; -} - -template -ACE_Hash_Map_Const_Iterator::ACE_Hash_Map_Const_Iterator (const ACE_Hash_Map_Manager &mm, - int tail) - : ACE_Hash_Map_Const_Iterator_Ex, ACE_Equal_To, ACE_LOCK> (mm, - tail) -{ -} - -template -ACE_Hash_Map_Const_Iterator::ACE_Hash_Map_Const_Iterator (const ACE_Hash_Map_Const_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base) - : ACE_Hash_Map_Const_Iterator_Ex, ACE_Equal_To, ACE_LOCK> (base) -{ -} - -template ACE_Hash_Map_Const_Iterator & -ACE_Hash_Map_Const_Iterator::operator= (const ACE_Hash_Map_Const_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &rhs) -{ - if (this != &rhs) - { - ACE_Hash_Map_Const_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base = *this; - - base = rhs; - } - - return *this; -} - -template -ACE_Hash_Map_Reverse_Iterator::ACE_Hash_Map_Reverse_Iterator (ACE_Hash_Map_Manager &mm, - int head) - : ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_LOCK> (mm, - head) -{ -} - -template -ACE_Hash_Map_Reverse_Iterator::ACE_Hash_Map_Reverse_Iterator (const ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base) - : ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_LOCK> (base) -{ -} - -template ACE_Hash_Map_Reverse_Iterator & -ACE_Hash_Map_Reverse_Iterator::operator= (const ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &rhs) -{ - ACE_Hash_Map_Reverse_Iterator_Ex, ACE_Equal_To, ACE_LOCK> &base = *this; - - base = rhs; - - return *this; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Hash_Map_With_Allocator_T.cpp b/ACE/ace/Hash_Map_With_Allocator_T.cpp deleted file mode 100644 index 9927147e865..00000000000 --- a/ACE/ace/Hash_Map_With_Allocator_T.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - -#ifndef ACE_HASH_MAP_WITH_ALLOCATOR_T_CPP -#define ACE_HASH_MAP_WITH_ALLOCATOR_T_CPP - -#include "ace/Hash_Map_With_Allocator_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -#include "ace/Hash_Map_With_Allocator_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Hash_Map_With_Allocator::ACE_Hash_Map_With_Allocator (ACE_Allocator *alloc) - : ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex> (alloc) -{ - ACE_TRACE ("ACE_Hash_Map_With_Allocator::ACE_Hash_Map_With_Allocator"); -} - -template -ACE_Hash_Map_With_Allocator::ACE_Hash_Map_With_Allocator (size_t size, - ACE_Allocator *alloc) - : ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex> (size, alloc) -{ - ACE_TRACE ("ACE_Hash_Map_With_Allocator::ACE_Hash_Map_With_Allocator"); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HASH_MAP_WITH_ALLOCATOR_T_CPP */ diff --git a/ACE/ace/Hash_Map_With_Allocator_T.h b/ACE/ace/Hash_Map_With_Allocator_T.h deleted file mode 100644 index 1c2413ba3f2..00000000000 --- a/ACE/ace/Hash_Map_With_Allocator_T.h +++ /dev/null @@ -1,112 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Hash_Map_With_Allocator_T.h - * - * $Id$ - * - * @author Marina Spivak - * @author Irfan Pyarali - */ -//============================================================================= - -#ifndef ACE_HASH_MAP_WITH_ALLOCATOR_T_H -#define ACE_HASH_MAP_WITH_ALLOCATOR_T_H -#include /**/ "ace/pre.h" - -#include "ace/Hash_Map_Manager_T.h" -#include "ace/Null_Mutex.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Hash_Map_With_Allocator - * - * @brief This class is a thin wrapper around ACE_Hash_Map_Manager, - * which comes handy when ACE_Hash_Map_Manager is to be used with a - * non-nil ACE_Allocator. This wrapper insures that the appropriate - * allocator is in place for every operation that accesses or - * updates the hash map. - * - * If we use ACE_Hash_Map_Manager with a shared memory allocator - * (or memory-mapped file allocator, for example), the allocator - * pointer used by ACE_Hash_Map_Manager gets stored with it, in - * shared memory (or memory-mapped file). Naturally, this will - * cause horrible problems, since only the first process to set - * that pointer will be guaranteed the address of the allocator - * 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. - */ -template -class ACE_Hash_Map_With_Allocator : - public ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex> -{ -public: - /// Constructor. - ACE_Hash_Map_With_Allocator (ACE_Allocator *alloc); - - /// Constructor that specifies hash table size. - ACE_Hash_Map_With_Allocator (size_t size, - ACE_Allocator *alloc); - - // = The following methods are Proxies to the corresponding methods - // in ACE_Hash_Map_Manager. Each method sets the allocator to - // the one specified by the invoking entity, and then calls the - // corresponding method in ACE_Hash_Map_Manager to do the - // actual work. - - int bind (const EXT_ID &, - const INT_ID &, - ACE_Allocator *alloc); - - int unbind (const EXT_ID &, - INT_ID &, - ACE_Allocator *alloc); - - int unbind (const EXT_ID &, - ACE_Allocator *alloc); - - int rebind (const EXT_ID &, - const INT_ID &, - EXT_ID &, - INT_ID &, - ACE_Allocator *alloc); - - int find (const EXT_ID &, - INT_ID &, - ACE_Allocator *alloc); - - /// Returns 0 if the @a ext_id is in the mapping, otherwise -1. - int find (const EXT_ID &ext_id, - ACE_Allocator *alloc); - - int close (ACE_Allocator *alloc); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Hash_Map_With_Allocator_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Hash_Map_With_Allocator_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Hash_Map_With_Allocator_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - - -#include /**/ "ace/post.h" -#endif /* ACE_HASH_MAP_WITH_ALLOCATOR_T_H */ diff --git a/ACE/ace/Hash_Map_With_Allocator_T.inl b/ACE/ace/Hash_Map_With_Allocator_T.inl deleted file mode 100644 index 4ba51437abf..00000000000 --- a/ACE/ace/Hash_Map_With_Allocator_T.inl +++ /dev/null @@ -1,82 +0,0 @@ -// -*- C++ -*- - -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE int -ACE_Hash_Map_With_Allocator::close (ACE_Allocator *alloc) -{ - ACE_TRACE ("ACE_Hash_Map_With_Allocator::close"); - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->close_i (); -} - -template ACE_INLINE int -ACE_Hash_Map_With_Allocator::bind (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Allocator *alloc) -{ - ACE_TRACE ("ACE_Hash_Map_With_Allocator::bind"); - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->bind_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_With_Allocator::unbind (const EXT_ID &ext_id, - INT_ID &int_id, - ACE_Allocator *alloc) -{ - ACE_TRACE ("ACE_Hash_Map_With_Allocator::unbind"); - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->unbind_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_With_Allocator::unbind (const EXT_ID &ext_id, - ACE_Allocator *alloc) -{ - ACE_TRACE ("ACE_Hash_Map_With_Allocator::unbind"); - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->unbind_i (ext_id); -} - -template ACE_INLINE int -ACE_Hash_Map_With_Allocator::rebind (const EXT_ID &ext_id, - const INT_ID &int_id, - EXT_ID &old_ext_id, - INT_ID &old_int_id, - ACE_Allocator *alloc) -{ - ACE_TRACE ("ACE_Hash_Map_With_Allocator::rebind"); - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->rebind_i (ext_id, int_id, old_ext_id, old_int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_With_Allocator::find (const EXT_ID &ext_id, - INT_ID &int_id, - ACE_Allocator *alloc) -{ - ACE_TRACE ("ACE_Hash_Map_With_Allocator::find"); - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->find_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Map_With_Allocator::find (const EXT_ID &ext_id, - ACE_Allocator *alloc) -{ - ACE_TRACE ("ACE_Hash_Map_With_Allocator::find"); - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->find_i (ext_id); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Hash_Multi_Map_Manager_T.cpp b/ACE/ace/Hash_Multi_Map_Manager_T.cpp deleted file mode 100644 index 34e8b0406be..00000000000 --- a/ACE/ace/Hash_Multi_Map_Manager_T.cpp +++ /dev/null @@ -1,605 +0,0 @@ - -//============================================================================= -/** - * @file Hash_Multi_Map_Manager_T.cpp - * - * $Id$ - * - * @author Shanshan Jiang - */ -//============================================================================= - - -#ifndef ACE_Hash_Multi_Map_Manager_T_CPP -#define ACE_Hash_Multi_Map_Manager_T_CPP - -#include "ace/Hash_Multi_Map_Manager_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -# include "ace/Hash_Multi_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Malloc_Base.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - - -template -ACE_Hash_Multi_Map_Entry::ACE_Hash_Multi_Map_Entry (ACE_Hash_Multi_Map_Entry *next, - ACE_Hash_Multi_Map_Entry *prev) - : next_ (next), - prev_ (prev) -{ -} - -template -ACE_Hash_Multi_Map_Entry::ACE_Hash_Multi_Map_Entry (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *next, - ACE_Hash_Multi_Map_Entry *prev) - : ext_id_ (ext_id), - int_id_set_ (int_id_set), - next_ (next), - prev_ (prev) -{ -} - -# if ! defined (ACE_HAS_BROKEN_NOOP_DTORS) -template -ACE_Hash_Multi_Map_Entry::~ACE_Hash_Multi_Map_Entry (void) -{ -} -# endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */ - -template EXT_ID & -ACE_Hash_Multi_Map_Entry::key () -{ - return ext_id_; -} - -template ACE_Unbounded_Set & -ACE_Hash_Multi_Map_Entry::item () -{ - return int_id_set_; -} - -template void -ACE_Hash_Multi_Map_Entry::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("next_ = %d"), this->next_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prev_ = %d"), this->prev_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template void -ACE_Hash_Multi_Map_Manager::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("total_size_ = %d"), this->total_size_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ncur_size_ = %d"), this->cur_size_)); - this->table_allocator_->dump (); - this->entry_allocator_->dump (); - this->lock_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -template int -ACE_Hash_Multi_Map_Manager::create_buckets (size_t size) -{ - size_t bytes = size * sizeof (ACE_Hash_Multi_Map_Entry); - void *ptr; - - ACE_ALLOCATOR_RETURN (ptr, - this->table_allocator_->malloc (bytes), - -1); - - this->table_ = (ACE_Hash_Multi_Map_Entry *) ptr; - - this->total_size_ = size; - - // Initialize each entry in the hash table to be a circular linked - // list with the dummy node in the front serving as the anchor of - // the list. - for (size_t i = 0; i < size; i++) - new (&this->table_[i]) ACE_Hash_Multi_Map_Entry (&this->table_[i], - &this->table_[i]); - return 0; -} - -template int -ACE_Hash_Multi_Map_Manager::open (size_t size, - ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - // Calling this->close_i () to ensure we release previous allocated - // memory before allocating new one. - this->close_i (); - - if (table_alloc == 0) - table_alloc = ACE_Allocator::instance (); - - this->table_allocator_ = table_alloc; - - if (entry_alloc == 0) - entry_alloc = table_alloc; - - this->entry_allocator_ = entry_alloc; - - // This assertion is here to help track a situation that shouldn't - // happen, but did with Sun C++ 4.1 (before a change to this class - // was made: it used to have an enum that was supposed to be defined - // to be ACE_DEFAULT_MAP_SIZE, but instead was defined to be 0). - if (size == 0) - return -1; - - return this->create_buckets (size); -} - -template int -ACE_Hash_Multi_Map_Manager::close_i (void) -{ - // Protect against "double-deletion" in case the destructor also - // gets called. - if (this->table_ != 0) - { - // Remove all the entries. - this->unbind_all_i (); - - // Iterate through the buckets cleaning up the sentinels. - for (size_t i = 0; i < this->total_size_; i++) - { - // Destroy the dummy entry. - ACE_Hash_Multi_Map_Entry *entry = &this->table_[i]; - - // The second argument results in a no-op instead of - // deallocation. - ACE_DES_FREE_TEMPLATE2 (entry, ACE_NOOP, - ACE_Hash_Multi_Map_Entry, EXT_ID, INT_ID); - } - - // Reset size. - this->total_size_ = 0; - - // Free table memory. - this->table_allocator_->free (this->table_); - - // Should be done last... - this->table_ = 0; - } - - return 0; -} - -template int -ACE_Hash_Multi_Map_Manager::unbind_all_i (void) -{ - // Iterate through the entire map calling the destuctor of each - // . - for (size_t i = 0; i < this->total_size_; i++) - { - for (ACE_Hash_Multi_Map_Entry *temp_ptr = this->table_[i].next_; - temp_ptr != &this->table_[i]; - ) - { - ACE_Hash_Multi_Map_Entry *hold_ptr = temp_ptr; - temp_ptr = temp_ptr->next_; - - // Explicitly call the destructor. - ACE_DES_FREE_TEMPLATE2 (hold_ptr, this->entry_allocator_->free, - ACE_Hash_Multi_Map_Entry, EXT_ID, INT_ID); - } - - // Restore the sentinel. - this->table_[i].next_ = &this->table_[i]; - this->table_[i].prev_ = &this->table_[i]; - } - - this->cur_size_ = 0; - - return 0; -} - -template int -ACE_Hash_Multi_Map_Manager::bind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Multi_Map_Entry *&entry) -{ - size_t loc; - int result = this->shared_find (ext_id, entry, loc); - - ACE_Unbounded_Set int_id_set; - if (result == -1) - { - void *ptr; - // Not found. - ACE_ALLOCATOR_RETURN (ptr, - this->entry_allocator_->malloc (sizeof (ACE_Hash_Multi_Map_Entry)), - -1); - - int_id_set.insert (int_id); - - entry = new (ptr) ACE_Hash_Multi_Map_Entry (ext_id, - int_id_set, - this->table_[loc].next_, - &this->table_[loc]); - this->table_[loc].next_ = entry; - entry->next_->prev_ = entry; - this->cur_size_++; - return 0; - } - else - { - int_id_set = (*entry).int_id_set_; - - if (0 == int_id_set.insert (int_id)) - { - this->unbind_i (entry); - return this->bind_i (ext_id, int_id_set); - } - else - return 1; - } -} - -template int -ACE_Hash_Multi_Map_Manager::bind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - size_t loc; - int result = this->shared_find (ext_id, entry, loc); - - if (result == -1) - { - void *ptr; - // Not found. - ACE_ALLOCATOR_RETURN (ptr, - this->entry_allocator_->malloc (sizeof (ACE_Hash_Multi_Map_Entry)), - -1); - - entry = new (ptr) ACE_Hash_Multi_Map_Entry (ext_id, - int_id_set, - this->table_[loc].next_, - &this->table_[loc]); - this->table_[loc].next_ = entry; - entry->next_->prev_ = entry; - this->cur_size_++; - return 0; - } - else - return 1; -} - -template int -ACE_Hash_Multi_Map_Manager::trybind_i (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - size_t loc; - int result = this->shared_find (ext_id, entry, loc); - - if (result == -1) - { - // Not found. - void *ptr; - ACE_ALLOCATOR_RETURN (ptr, - this->entry_allocator_->malloc (sizeof (ACE_Hash_Multi_Map_Entry)), - -1); - - entry = new (ptr) ACE_Hash_Multi_Map_Entry (ext_id, - int_id_set, - this->table_[loc].next_, - &this->table_[loc]); - this->table_[loc].next_ = entry; - entry->next_->prev_ = entry; - this->cur_size_++; - return 0; - } - else - return 1; -} - -template int -ACE_Hash_Multi_Map_Manager::unbind_i (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set) -{ - ACE_Hash_Multi_Map_Entry *temp; - - size_t loc; - int result = this->shared_find (ext_id, temp, loc); - - if (result == -1) - { - errno = ENOENT; - return -1; - } - - int_id_set = temp->int_id_set_; - - return this->unbind_i (temp); -} - -template int -ACE_Hash_Multi_Map_Manager::unbind_i (ACE_Hash_Multi_Map_Entry *entry) -{ - entry->next_->prev_ = entry->prev_; - entry->prev_->next_ = entry->next_; - - // Explicitly call the destructor. - ACE_DES_FREE_TEMPLATE2 (entry, this->entry_allocator_->free, - ACE_Hash_Multi_Map_Entry, EXT_ID, INT_ID); - - this->cur_size_--; - return 0; -} - -template int -ACE_Hash_Multi_Map_Manager::unbind_i (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_Hash_Multi_Map_Entry *temp; - - size_t loc; - int result = this->shared_find (ext_id, temp, loc); - - if (result == -1) - { - errno = ENOENT; - return -1; - } - - ACE_Unbounded_Set int_id_set = (*temp).int_id_set_; - if (0 == int_id_set.remove (int_id)) - { - this->unbind_i (temp); - - if (0 != int_id_set.size ()) - return this->bind_i (ext_id, int_id_set); - else - return 0; - } - else - return -1; -} - - -template int -ACE_Hash_Multi_Map_Manager::shared_find (const EXT_ID &ext_id, - ACE_Hash_Multi_Map_Entry *&entry, - size_t &loc) -{ - loc = this->hash (ext_id) % this->total_size_; - - ACE_Hash_Multi_Map_Entry *temp = this->table_[loc].next_; - - while (temp != &this->table_[loc] && this->equal (temp->ext_id_, ext_id) == 0) - temp = temp->next_; - - if (temp == &this->table_[loc]) - { - errno = ENOENT; - return -1; - } - else - { - entry = temp; - return 0; - } -} - -template int -ACE_Hash_Multi_Map_Manager::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return this->bind_i (ext_id, int_id_set); - else - { - entry->ext_id_ = ext_id; - entry->int_id_set_ = int_id_set; - return 1; - } -} - -template int -ACE_Hash_Multi_Map_Manager::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Unbounded_Set &old_int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return this->bind_i (ext_id, int_id_set); - else - { - old_int_id_set = entry->int_id_set_; - entry->ext_id_ = ext_id; - entry->int_id_set_ = int_id_set; - return 1; - } -} - -template int -ACE_Hash_Multi_Map_Manager::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set &old_int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return this->bind_i (ext_id, int_id_set); - else - { - old_ext_id = entry->ext_id_; - old_int_id_set = entry->int_id_set_; - entry->ext_id_ = ext_id; - entry->int_id_set_ = int_id_set; - return 1; - } -} - -// ------------------------------------------------------------ - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Iterator_Base) - -template void -ACE_Hash_Multi_Map_Iterator_Base::dump_i (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::dump_i"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("index_ = %d "), this->index_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("next_ = %x"), this->next_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -template int -ACE_Hash_Multi_Map_Iterator_Base::forward_i (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::forward_i"); - - if (this->map_man_->table_ == 0) - return -1; - // Handle initial case specially. - else if (this->index_ == -1) - { - this->index_++; - return this->forward_i (); - } - else if (this->index_ >= static_cast (this->map_man_->total_size_)) - return 0; - - this->next_ = this->next_->next_; - if (this->next_ == &this->map_man_->table_[this->index_]) - { - while (++this->index_ < static_cast (this->map_man_->total_size_)) - { - this->next_ = this->map_man_->table_[this->index_].next_; - if (this->next_ != &this->map_man_->table_[this->index_]) - break; - } - } - - return this->index_ < static_cast (this->map_man_->total_size_); -} - -template int -ACE_Hash_Multi_Map_Iterator_Base::reverse_i (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::reverse_i"); - - if (this->map_man_->table_ == 0) - return -1; - else if (this->index_ == static_cast (this->map_man_->total_size_)) - { - this->index_--; - return this->reverse_i (); - } - else if (this->index_ < 0) - return 0; - - this->next_ = this->next_->prev_; - if (this->next_ == &this->map_man_->table_[this->index_]) - { - while (--this->index_ >= 0) - { - this->next_ = this->map_man_->table_[this->index_].prev_; - if (this->next_ != &this->map_man_->table_[this->index_]) - break; - } - } - - return this->index_ >= 0; -} - -// ------------------------------------------------------------ - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Const_Iterator_Base) - -template void -ACE_Hash_Multi_Map_Const_Iterator_Base::dump_i (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::dump_i"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("index_ = %d "), this->index_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("next_ = %x"), this->next_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -template int -ACE_Hash_Multi_Map_Const_Iterator_Base::forward_i (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::forward_i"); - - if (this->map_man_->table_ == 0) - return -1; - // Handle initial case specially. - else if (this->index_ == -1) - { - this->index_++; - return this->forward_i (); - } - else if (this->index_ >= (ssize_t) this->map_man_->total_size_) - return 0; - - this->next_ = this->next_->next_; - if (this->next_ == &this->map_man_->table_[this->index_]) - { - while (++this->index_ < (ssize_t) this->map_man_->total_size_) - { - this->next_ = this->map_man_->table_[this->index_].next_; - if (this->next_ != &this->map_man_->table_[this->index_]) - break; - } - } - - return this->index_ < (ssize_t) this->map_man_->total_size_; -} - -template int -ACE_Hash_Multi_Map_Const_Iterator_Base::reverse_i (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::reverse_i"); - - if (this->map_man_->table_ == 0) - return -1; - else if (this->index_ == (ssize_t) this->map_man_->total_size_) - { - this->index_--; - return this->reverse_i (); - } - else if (this->index_ < 0) - return 0; - - this->next_ = this->next_->prev_; - if (this->next_ == &this->map_man_->table_[this->index_]) - { - while (--this->index_ >= 0) - { - this->next_ = this->map_man_->table_[this->index_].prev_; - if (this->next_ != &this->map_man_->table_[this->index_]) - break; - } - } - - return this->index_ >= 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_Hash_Multi_Map_Manager_T_CPP */ diff --git a/ACE/ace/Hash_Multi_Map_Manager_T.h b/ACE/ace/Hash_Multi_Map_Manager_T.h deleted file mode 100644 index 11e54292477..00000000000 --- a/ACE/ace/Hash_Multi_Map_Manager_T.h +++ /dev/null @@ -1,967 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Hash_Multi_Map_Manager_T.h - * - * $Id$ - * - * The code in Hash_Multi_Map_Manager_T.* was based on the code in - * Hash_Map_Manager_T.*. - * - * ACE_Hash_Multi_Map_Manager maps a key type to more than one value types. - * The template takes the key and value types as parameters. The bind and - * unbind operations can take a key and the value or the set of the values that - * is to be associated with that key. The find operation can take a key or a - * key and the value that is associated with the key. - * - * ACE_Hash_Multi_Map_Manager uses @c ACE_Unbounded_Set to store differet values - * with the same key. - * - * @author Shanshan Jiang - */ -//============================================================================= - -#ifndef ACE_HASH_MULTI_MAP_MANAGER_T_H -#define ACE_HASH_MULTI_MAP_MANAGER_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/Default_Constants.h" -#include "ace/Functor_T.h" -#include "ace/Log_Msg.h" - -#include "ace/Unbounded_Set.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Hash_Multi_Map_Entry - * - * @brief Define an entry in the hash table. - */ -template -class ACE_Hash_Multi_Map_Entry -{ -public: - friend class ACE_Unbounded_Set; - - typedef ACE_Unbounded_Set VALUE_SET; - typedef ACE_Unbounded_Set_Iterator VALUE_SET_ITERATOR; - - // = Initialization and termination methods. - /// Constructor. - ACE_Hash_Multi_Map_Entry (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *next = 0, - ACE_Hash_Multi_Map_Entry *prev = 0); - - /// Constructor. - ACE_Hash_Multi_Map_Entry (ACE_Hash_Multi_Map_Entry *next, - ACE_Hash_Multi_Map_Entry *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); - - /// Item accessor. - ACE_Unbounded_Set& item (void); - - /// Key used to look up an entry. - /// @deprecated Use key() - EXT_ID ext_id_; - - /// The contents of the entry itself. - /// @deprecated Use item() - ACE_Unbounded_Set int_id_set_; - - /// Pointer to the next item in the bucket of overflow nodes. - ACE_Hash_Multi_Map_Entry *next_; - - /// Pointer to the prev item in the bucket of overflow nodes. - ACE_Hash_Multi_Map_Entry *prev_; - - /// Dump the state of an object. - void dump (void) const; -}; - -// Forward decl. -template -class ACE_Hash_Multi_Map_Iterator_Base; - -// Forward decl. -template -class ACE_Hash_Multi_Map_Const_Iterator_Base; - -// Forward decl. -template -class ACE_Hash_Multi_Map_Iterator; - -// Forward decl. -template -class ACE_Hash_Multi_Map_Const_Iterator; - -// Forward decl. -template -class ACE_Hash_Multi_Map_Reverse_Iterator; - -// Forward decl. -template -class ACE_Hash_Multi_Map_Bucket_Iterator; - -// Forward decl. -class ACE_Allocator; - -/** - * @class ACE_Hash_Multi_Map_Manager - * - * @brief Define a multi-map abstraction that efficiently associates the keys - * with their different values. - * - * This implementation of a multi-map uses a hash table. Key hashing - * is achieved through the @c HASH_KEY object and key comparison is - * achieved through the @c COMPARE_KEYS object. - * This class uses an @c ACE_Allocator to allocate memory. The - * user can make this a persistent class by providing an - * @c ACE_Allocator with a persistable memory pool. - */ - -template -class ACE_Hash_Multi_Map_Manager -{ -public: - friend class ACE_Hash_Multi_Map_Iterator_Base; - friend class ACE_Hash_Multi_Map_Iterator; - friend class ACE_Hash_Multi_Map_Const_Iterator_Base; - friend class ACE_Hash_Multi_Map_Const_Iterator; - friend class ACE_Hash_Multi_Map_Reverse_Iterator; - friend class ACE_Hash_Multi_Map_Bucket_Iterator; - - typedef EXT_ID - KEY; - typedef INT_ID - VALUE; - typedef ACE_LOCK lock_type; - typedef ACE_Hash_Multi_Map_Entry - ENTRY; - - // = ACE-style iterator typedefs. - typedef ACE_Hash_Multi_Map_Iterator - ITERATOR; - typedef ACE_Hash_Multi_Map_Const_Iterator - CONST_ITERATOR; - typedef ACE_Hash_Multi_Map_Reverse_Iterator - REVERSE_ITERATOR; - - // = STL-style iterator typedefs. - typedef ACE_Hash_Multi_Map_Iterator - iterator; - typedef ACE_Hash_Multi_Map_Const_Iterator - const_iterator; - typedef ACE_Hash_Multi_Map_Reverse_Iterator - reverse_iterator; - - // = Initialization and termination methods. - - /** - * Initialize a @c Hash_Multi_Map_Manager with default size elements. - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof ( - * ACE_Hash_Multi_Map_Entry<@c EXT_ID, @c INT_ID>). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof (ACE_Hash_Multi_Map_Entry<@c EXT_ID, @c INT_ID>) bytes - * each. - * If @a table_alloc is 0 it defaults to @c ACE_Allocator::instance(). - * If @a entry_alloc is 0 then it defaults to the same allocator as - * @a table_alloc. - */ - ACE_Hash_Multi_Map_Manager (ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - /** - * Initialize a @c Hash_Multi_Map_Manager with @a size elements. - * @param size is the number of elements in a Hash_Multi_Map_Manager. - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof ( - * ACE_Hash_Multi_Map_Entry<@c EXT_ID, <@c INT_ID>). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof (ACE_Hash_Multi_Map_Entry<@c EXT_ID, @c INT_ID>) bytes - * each. - * If @a table_alloc is 0 it defaults to @c ACE_Allocator::instance(). - * If @a entry_alloc is 0 then it defaults to the same allocator as - * @a table_alloc. - */ - ACE_Hash_Multi_Map_Manager (size_t size, - ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - /** - * Initialize a @c Hash_Multi_Map_Manager with @a size elements. - * @param size is the number of elements in a Hash_Multi_Map_Manager. - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof - * (ACE_Hash_Multi_Map_Entry<@c EXT_ID, <@c INT_ID>). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof (ACE_Hash_Multi_Map_Entry<@c EXT_ID, <@c INT_ID>) bytes - * each. - * If @a table_alloc is 0 it defaults to @c ACE_Allocator::instance(). - * If @a entry_alloc is 0 then it defaults to the same allocator as - * @a table_alloc. - * @return -1 on failure, 0 on success - */ - - int open (size_t size = ACE_DEFAULT_MAP_SIZE, - ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - /// Close down a Hash_Multi_Map_Manager and release dynamically allocated - /// resources. - int close (void); - - /// Removes all the entries in Hash_Multi_Map_Manager. - int unbind_all (void); - - /// Cleanup the Hash_Multi_Map_Manager. - ~ACE_Hash_Multi_Map_Manager (void); - - /** - * Associate @a ext_id with @a int_id. If @a ext_id and @a int_id is already - * in the map then the @c ACE_Hash_Multi_Map_Entry is not changed. Returns 0 if - * a new entry is bound successfully, returns 1 if an attempt is made - * to bind an existing entry, and returns -1 if failures occur. - */ - int bind (const EXT_ID &ext_id, - const INT_ID &int_id); - - /** - * Same as a normal bind, except the map entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int bind (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Multi_Map_Entry *&entry); - - /** - * Associate @a ext_id with @a int_id_set. If @a ext_id is already in the - * map then the @c ACE_Hash_Multi_Map_Entry is not changed. Returns 0 if a - * new entry is bound successfully, returns 1 if an attempt is made - * to bind an existing entry, and returns -1 if failures occur. - */ - int bind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set); - - /** - * Same as a normal bind, except the map entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int bind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /** - * Associate @a ext_id with @a int_id_set if and only if @a ext_id is - * not in the map. If @a ext_id is already in the map then the @a int_id_set - * parameter is assigned the existing value in the map. Returns 0 - * if a new entry is bound successfully, returns 1 if an attempt is - * made to bind an existing entry, and returns -1 if failures occur. - */ - int trybind (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set); - - /** - * Same as a normal trybind, except the map entry is also passed - * back to the caller. The entry in this case will either be the - * newly created entry, or the existing one. - */ - int trybind (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /** - * Reassociate @a ext_id with @a int_id_set. If @a ext_id is not in - * the map then behaves just like bind. Returns 0 if a new entry is - * bound successfully, returns 1 if an existing entry was rebound, - * and returns -1 if failures occur. - */ - int rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set); - - /** - * Same as a normal rebind, except the map entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /** - * Associate @a ext_id with @a int_id_set. If @a ext_id is not in the map - * then behaves just like bind. Otherwise, store the old value of - * @a int_id_set into the "out" parameter and rebind the new parameters. - * Returns 0 if a new entry is bound successfully, returns 1 if an - * existing entry was rebound, and returns -1 if failures occur. - */ - int rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Unbounded_Set &old_int_id_set); - - /** - * Same as a normal rebind, except the map entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Unbounded_Set &old_int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /** - * Associate @a ext_id with @a int_id_set. If @a ext_id is not in the map - * then behaves just like bind. Otherwise, store the old values - * of @a ext_id and @a int_id_set into the "out" parameters and rebind the - * new parameters. This is very useful if you need to have an - * atomic way of updating @c ACE_Hash_Multi_Map_Entry objects and you also - * need full control over memory allocation. Returns 0 if a new entry - * is bound successfully, returns 1 if an existing entry was rebound, - * and returns -1 if failures occur. - */ - int rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set &old_int_id_set); - - /** - * Same as a normal rebind, except the map entry is also passed back - * to the caller. The entry in this case will either be the newly - * created entry, or the existing one. - */ - int rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set &old_int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /// Locate @a ext_id and pass out parameter via @a int_id_set. - /// Return 0 if found, returns -1 if not found. - int find (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set) const; - - /// Locate @a ext_id and @a int_id. - /// Return 0 if found, returns -1 if not found. - int find (const EXT_ID &ext_id, - const INT_ID &int_id) const; - - /// Returns 0 if the @a ext_id is in the mapping, otherwise -1. - int find (const EXT_ID &ext_id) const; - - /// Locate @a ext_id and pass out parameter via @a entry. If found, - /// return 0, returns -1 if not found. - int find (const EXT_ID &ext_id, - ACE_Hash_Multi_Map_Entry *&entry) const; - - /** - * Unbind (remove) the @a ext_id from the map. Don't return the - * int_id to the caller (this is useful for collections where the - * int_ids are *not* dynamically allocated...) - */ - int unbind (const EXT_ID &ext_id); - - /// Break any association of @a ext_id. Returns the value of @a int_id_set - /// in case the caller needs to deallocate memory. Return 0 if the - /// unbind was successfully, and returns -1 if failures occur. - int unbind (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set); - - /// Break any association of @a ext_id and @a int_id. Return 0 if the - /// unbind was successfully, and returns -1 if failures occur. - int unbind (const EXT_ID &ext_id, - const INT_ID &int_id); - - /// Remove @a entry from map. Return 0 if the unbind was successfully, - /// and returns -1 if failures occur. - int unbind (ACE_Hash_Multi_Map_Entry *entry); - - /// Returns the current number of @c ACE_Hash_Multi_Map_Entry objects in the - /// hash table. - size_t current_size (void) const; - - /// Return the size of the array that's used to point to the - /// linked lists of @c ACE_Hash_Multi_Map_Entry objects in the hash table. - size_t total_size (void) const; - - /** - * Returns a reference to the underlying @c ACE_LOCK. This makes it - * possible to acquire the lock explicitly, which can be useful in - * some cases if you instantiate the @c ACE_Atomic_Op with an - * @c ACE_Recursive_Mutex or @c 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! - */ - ACE_LOCK &mutex (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iterator factory functions. - - /// Return forward iterator. - ACE_Hash_Multi_Map_Iterator begin (void); - ACE_Hash_Multi_Map_Iterator end (void); - - /// Return reverse iterator. - ACE_Hash_Multi_Map_Reverse_Iterator rbegin (void); - ACE_Hash_Multi_Map_Reverse_Iterator rend (void); - -protected: - // = The following methods do the actual work. - - /// Returns 1 if @a id1 == @a id2, else 0. This is defined as a - /// separate method to facilitate template specialization. - int equal (const EXT_ID &id1, const EXT_ID &id2); - - /// Compute the hash value of the @a ext_id. This is defined as a - /// separate method to facilitate template specialization. - u_long hash (const EXT_ID &ext_id); - - // = These methods assume locks are held by private methods. - - /// Performs bind. Must be called with locks held. - int bind_i (const EXT_ID &ext_id, - const INT_ID &int_id); - - /// Performs bind. Must be called with locks held. - int bind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Multi_Map_Entry *&entry); - - /// Performs bind. Must be called with locks held. - int bind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set); - - /// Performs bind. Must be called with locks held. - int bind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /// Performs trybind. Must be called with locks held. - int trybind_i (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set); - - /// Performs trybind. Must be called with locks held. - int trybind_i (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Unbounded_Set &old_int_id); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Unbounded_Set &old_int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set &old_int_id_set); - - /// Performs rebind. Must be called with locks held. - int rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set &old_int_id_set, - ACE_Hash_Multi_Map_Entry *&entry); - - /// Performs a find of @a int_id_set using @a ext_id as the key. Must be - /// called with locks held. - int find_i (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set); - - /// Performs a find of @a ext_id and @a int_id. Must be - /// called with locks held. - int find_i (const EXT_ID &ext_id, - const INT_ID &int_id); - - /// Performs a find using @a ext_id as the key. Must be called with - /// locks held. - int find_i (const EXT_ID &ext_id); - - /// Performs a find using @a ext_id as the key. Must be called with - /// locks held. - int find_i (const EXT_ID &ext_id, - ACE_Hash_Multi_Map_Entry *&entry); - - /// Performs unbind. Must be called with locks held. - int unbind_i (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set); - - /// Performs unbind. Must be called with locks held. - int unbind_i (const EXT_ID &ext_id, - const INT_ID &int_id); - - /// Performs unbind. Must be called with locks held. - int unbind_i (const EXT_ID &ext_id); - - /// Performs unbind. Must be called with locks held. - int unbind_i (ACE_Hash_Multi_Map_Entry *entry); - - /** - * Resize the map. Must be called with locks held. - * @note This method should never be called more than once or else all the - * hashing will get screwed up as the size will change. - */ - int create_buckets (size_t size); - - /// Close down a Map_Manager. Must be called with - /// locks held. - int close_i (void); - - /// Removes all the entries in Map_Manager. Must be called with - /// locks held. - int unbind_all_i (void); - - /// Pointer to a memory allocator used for table_, so it should - /// supply size*sizeof (@c ACE_Hash_Multi_Map_Entry<@c EXT_ID, @c INT_ID>), - ACE_Allocator *table_allocator_; - - /// Addidtional allocator for entries, so it should be able to - /// allocate 'size' / chunks of sizeof - /// (@c ACE_Hash_Multi_Map_Entry<@c EXT_ID, @c INT_ID>) bytes each. - ACE_Allocator *entry_allocator_; - - /// Synchronization variable for the MT_SAFE - /// @c ACE_Hash_Multi_Map_Manager. - ACE_LOCK lock_; - - /// Function object used for hashing keys. - HASH_KEY hash_key_; - - /// Function object used for comparing keys. - COMPARE_KEYS compare_keys_; - -protected: - /// Returns the @c ACE_Hash_Multi_Map_Entry object that corresponds to - /// @a ext_id. - int shared_find (const EXT_ID &ext_id, - ACE_Hash_Multi_Map_Entry *&entry, - size_t &loc); - - /// Accessor of the underlying table - ACE_Hash_Multi_Map_Entry *table (void); - - /// Accessor of the current size attribute - size_t cur_size (void) const; - -private: - /** - * Array of the pointers to @c ACE_Hash_Multi_Map_Entry objects, each of - * which points to an @c ACE_Hash_Multi_Map_Entry that serves as the - * beginning of a linked list of @c EXT_ID that hash to that bucket. - */ - ACE_Hash_Multi_Map_Entry *table_; - - /// Total size of the hash table. - size_t total_size_; - - /// Current number of entries in the table - /// @note That this can be larger than total_size_ due to the - /// bucket chaining). - size_t cur_size_; - - // = Disallow these operations. - ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Hash_Multi_Map_Manager &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Hash_Multi_Map_Manager (const ACE_Hash_Multi_Map_Manager &)) -}; - -/** - * @class ACE_Hash_Multi_Map_Iterator_Base - * - * @brief Base iterator for the @c ACE_Hash_Multi_Map_Manager - * - * This class factors out common code from its templatized - * subclasses. - */ -template -class ACE_Hash_Multi_Map_Iterator_Base -{ -public: - // = Initialization method. - /// Contructor. If @a head != 0, the iterator constructed is positioned - /// at the head of the map, it is positioned at the end otherwise. - ACE_Hash_Multi_Map_Iterator_Base (ACE_Hash_Multi_Map_Manager &mm, - int head); - - // = ITERATION methods. - - /// Pass back the @a next_entry that hasn't been seen in the Set. - /// Returns 0 when all items have been seen, else 1. - int next (ACE_Hash_Multi_Map_Entry *&next_entry) const; - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Returns a reference to the interal element this object is pointing to. - ACE_Hash_Multi_Map_Entry& operator* (void) const; - - /// Returns a pointer to the interal element this object is pointing to. - ACE_Hash_Multi_Map_Entry* operator-> (void) const; - - /// Returns reference the @c Hash_Multi_Map_Manager that is being iterated - /// over. - ACE_Hash_Multi_Map_Manager& map (void); - - /// Check if two iterators point to the same position - bool operator== (const ACE_Hash_Multi_Map_Iterator_Base &) const; - bool operator!= (const ACE_Hash_Multi_Map_Iterator_Base &) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Move forward by one element in the set. Returns 0 when there's - /// no more item in the set after the current items, else 1. - int forward_i (void); - - /// Move backward by one element in the set. Returns 0 when there's - /// no more item in the set before the current item, else 1. - int reverse_i (void); - - /// Dump the state of an object. - void dump_i (void) const; - - /// Map we are iterating over. - ACE_Hash_Multi_Map_Manager *map_man_; - - /// Keeps track of how far we've advanced in the table. - ssize_t index_; - - /// Keeps track of how far we've advanced in a linked list in each - /// table slot. - ACE_Hash_Multi_Map_Entry *next_; -}; - -/** - * @class ACE_Hash_Multi_Map_Const_Iterator_Base - * - * @brief Base const iterator for the @c ACE_Hash_Multi_Map_Manager - * - * This class factors out common code from its templatized - * subclasses. - */ -template -class ACE_Hash_Multi_Map_Const_Iterator_Base -{ -public: - // = Initialization method. - /// Contructor. If @a head != 0, the iterator constructed is positioned - /// at the head of the map, it is positioned at the end otherwise. - ACE_Hash_Multi_Map_Const_Iterator_Base (const ACE_Hash_Multi_Map_Manager &mm, - int head); - - // = ITERATION methods. - - /// Pass back the @a next_entry that hasn't been seen in the Set. - /// Returns 0 when all items have been seen, else 1. - int next (ACE_Hash_Multi_Map_Entry *&next_entry) const; - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Returns a reference to the interal element this object is pointing to. - ACE_Hash_Multi_Map_Entry& operator* (void) const; - - /// Returns a pointer to the interal element this object is pointing to. - ACE_Hash_Multi_Map_Entry* operator-> (void) const; - - /// Returns reference the @c Hash_Multi_Map_Manager that is being iterated - /// over. - const ACE_Hash_Multi_Map_Manager& map (void); - - /// Check if two iterators point to the same position - bool operator== (const ACE_Hash_Multi_Map_Const_Iterator_Base &) const; - bool operator!= (const ACE_Hash_Multi_Map_Const_Iterator_Base &) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Move forward by one element in the set. Returns 0 when there's - /// no more item in the set after the current items, else 1. - int forward_i (void); - - /// Move backward by one element in the set. Returns 0 when there's - /// no more item in the set before the current item, else 1. - int reverse_i (void); - - /// Dump the state of an object. - void dump_i (void) const; - - /// Map we are iterating over. - const ACE_Hash_Multi_Map_Manager *map_man_; - - /// Keeps track of how far we've advanced in the table. - ssize_t index_; - - /// Keeps track of how far we've advanced in a linked list in each - /// table slot. - ACE_Hash_Multi_Map_Entry *next_; -}; - -/** - * @class ACE_Hash_Multi_Map_Iterator - * - * @brief Forward iterator for the @c ACE_Hash_Multi_Map_Manager. - * - * This class does not perform any internal locking of the - * @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. - */ -template -class ACE_Hash_Multi_Map_Iterator : public ACE_Hash_Multi_Map_Iterator_Base -{ -public: - // = Initialization method. - ACE_Hash_Multi_Map_Iterator (ACE_Hash_Multi_Map_Manager &mm, - int tail = 0); - - // = Iteration methods. - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iteration, compare, and reference functions. - - /// Prefix advance. - ACE_Hash_Multi_Map_Iterator &operator++ (void); - - /// Postfix advance. - ACE_Hash_Multi_Map_Iterator operator++ (int); - - /// Prefix reverse. - ACE_Hash_Multi_Map_Iterator &operator-- (void); - - /// Postfix reverse. - ACE_Hash_Multi_Map_Iterator operator-- (int); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Hash_Multi_Map_Const_Iterator - * - * @brief Const forward iterator for the @c ACE_Hash_Multi_Map_Manager. - * - * This class does not perform any internal locking of the - * @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. - */ -template -class ACE_Hash_Multi_Map_Const_Iterator : public ACE_Hash_Multi_Map_Const_Iterator_Base -{ -public: - // = Initialization method. - ACE_Hash_Multi_Map_Const_Iterator (const ACE_Hash_Multi_Map_Manager &mm, - int tail = 0); - - // = Iteration methods. - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iteration, compare, and reference functions. - - /// Prefix advance. - ACE_Hash_Multi_Map_Const_Iterator &operator++ (void); - - /// Postfix advance. - ACE_Hash_Multi_Map_Const_Iterator operator++ (int); - - /// Prefix reverse. - ACE_Hash_Multi_Map_Const_Iterator &operator-- (void); - - /// Postfix reverse. - ACE_Hash_Multi_Map_Const_Iterator operator-- (int); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -/** - * @class ACE_Hash_Multi_Map_Bucket_Iterator - * - * @brief Forward iterator for the @c ACE_Hash_Multi_Map_Manager which - * only traverses a particular bucket. The particular bucket is - * specified by the @c EXT_ID parameter specified in the constructor. - * - * This class does not perform any internal locking of the - * @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. - * - * Note that a creation method for this new iterator cannot be added - * to the hash map, since this would require adding explicit template - * instantiations for bucket iterators on platforms with broken - * templates. - */ -template -class ACE_Hash_Multi_Map_Bucket_Iterator -{ -public: - // = Initialization method. - ACE_Hash_Multi_Map_Bucket_Iterator (ACE_Hash_Multi_Map_Manager &mm, - const EXT_ID &ext_id, - int tail = 0); - - // = STL styled iteration, compare, and reference functions. - - /// Prefix advance. - ACE_Hash_Multi_Map_Bucket_Iterator &operator++ (void); - - /// Postfix advance. - ACE_Hash_Multi_Map_Bucket_Iterator operator++ (int); - - /// Prefix reverse. - ACE_Hash_Multi_Map_Bucket_Iterator &operator-- (void); - - /// Postfix reverse. - ACE_Hash_Multi_Map_Bucket_Iterator operator-- (int); - - /// Returns a reference to the interal element this object is pointing to. - ACE_Hash_Multi_Map_Entry& operator* (void) const; - - /// Returns a pointer to the interal element this object is pointing to. - ACE_Hash_Multi_Map_Entry* operator-> (void) const; - - /// Returns reference the Hash_Multi_Map_Manager that is being iterated - /// over. - ACE_Hash_Multi_Map_Manager& map (void); - - /// Check if two iterators point to the same position - bool operator== (const ACE_Hash_Multi_Map_Bucket_Iterator &) const; - bool operator!= (const ACE_Hash_Multi_Map_Bucket_Iterator &) const; - -protected: - /// Move forward by one element in the set. Returns 0 when there's - /// no more item in the set after the current items, else 1. - int forward_i (void); - - /// Move backward by one element in the set. Returns 0 when there's - /// no more item in the set before the current item, else 1. - int reverse_i (void); - - /// Map we are iterating over. - ACE_Hash_Multi_Map_Manager *map_man_; - - /// Keeps track of how far we've advanced in the table. - ssize_t index_; - - /// Keeps track of how far we've advanced in a linked list in each - /// table slot. - ACE_Hash_Multi_Map_Entry *next_; -}; - -/** - * @class ACE_Hash_Multi_Map_Reverse_Iterator - * - * @brief Reverse iterator for the @c ACE_Hash_Multi_Map_Manager. - * - * This class does not perform any internal locking of the - * @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. - */ -template -class ACE_Hash_Multi_Map_Reverse_Iterator : public ACE_Hash_Multi_Map_Iterator_Base -{ -public: - // = Initialization method. - ACE_Hash_Multi_Map_Reverse_Iterator (ACE_Hash_Multi_Map_Manager &mm, - int head = 0); - - // = Iteration methods. - /// Move forward by one element in the set. Returns 0 when all the - /// items in the set have been seen, else 1. - int advance (void); - - /// Dump the state of an object. - void dump (void) const; - - // = STL styled iteration, compare, and reference functions. - - /// Prefix reverse. - ACE_Hash_Multi_Map_Reverse_Iterator &operator++ (void); - - /// Postfix reverse. - ACE_Hash_Multi_Map_Reverse_Iterator operator++ (int); - - /// Prefix advance. - ACE_Hash_Multi_Map_Reverse_Iterator &operator-- (void); - - /// Postfix advance. - ACE_Hash_Multi_Map_Reverse_Iterator operator-- (int); - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -# include "ace/Hash_Multi_Map_Manager_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Hash_Multi_Map_Manager_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Hash_Multi_Map_Manager_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_HASH_MULTI_MAP_MANAGER_T_H */ diff --git a/ACE/ace/Hash_Multi_Map_Manager_T.inl b/ACE/ace/Hash_Multi_Map_Manager_T.inl deleted file mode 100644 index f0cbcabe599..00000000000 --- a/ACE/ace/Hash_Multi_Map_Manager_T.inl +++ /dev/null @@ -1,994 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Guard_T.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE -ACE_Hash_Multi_Map_Manager::ACE_Hash_Multi_Map_Manager (size_t size, - ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : table_allocator_ (table_alloc), - entry_allocator_ (entry_alloc), - table_ (0), - total_size_ (0), - cur_size_ (0) -{ - if (this->open (size, table_alloc, entry_alloc) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("ACE_Hash_Multi_Map_Manager\n"))); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Manager::ACE_Hash_Multi_Map_Manager (ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : table_allocator_ (table_alloc), - entry_allocator_ (entry_alloc), - table_ (0), - total_size_ (0), - cur_size_ (0) -{ - if (this->open (ACE_DEFAULT_MAP_SIZE, table_alloc, entry_alloc) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("ACE_Hash_Multi_Map_Manager\n"))); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::close (void) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->close_i (); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::unbind_all (void) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_all_i (); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Manager::~ACE_Hash_Multi_Map_Manager (void) -{ - this->close (); -} - -template ACE_INLINE size_t -ACE_Hash_Multi_Map_Manager::current_size (void) const -{ - return this->cur_size_; -} - -template ACE_INLINE size_t -ACE_Hash_Multi_Map_Manager::total_size (void) const -{ - return this->total_size_; -} - -template ACE_INLINE ACE_LOCK & -ACE_Hash_Multi_Map_Manager::mutex (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Manager::mutex"); - return this->lock_; -} - -template ACE_INLINE u_long -ACE_Hash_Multi_Map_Manager::hash (const EXT_ID &ext_id) -{ - return this->hash_key_ (ext_id); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::equal (const EXT_ID &id1, - const EXT_ID &id2) -{ - return this->compare_keys_ (id1, id2); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::bind_i (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_Hash_Multi_Map_Entry *temp; - - return this->bind_i (ext_id, int_id, temp); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::bind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set) -{ - ACE_Hash_Multi_Map_Entry *temp; - - return this->bind_i (ext_id, int_id_set, temp); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::bind (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::bind (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_Multi_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id, entry); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::bind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id_set); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::bind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id_set, entry); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::trybind_i (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set) -{ - ACE_Hash_Multi_Map_Entry *temp; - - int result = this->trybind_i (ext_id, int_id_set, temp); - if (result == 1) - int_id_set = temp->int_id_set_; - return result; -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::trybind (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->trybind_i (ext_id, int_id_set); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::trybind (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->trybind_i (ext_id, int_id_set, entry); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::unbind_i (const EXT_ID &ext_id) -{ - ACE_Unbounded_Set int_id_set; - - return this->unbind_i (ext_id, int_id_set); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::unbind (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (ext_id, int_id_set); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::unbind (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::unbind (const EXT_ID &ext_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (ext_id) == -1 ? -1 : 0; -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::unbind (ACE_Hash_Multi_Map_Entry *entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (entry) == -1 ? -1 : 0; -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::find_i (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set) -{ - ACE_Hash_Multi_Map_Entry *entry; - - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return -1; - else - { - int_id_set = entry->int_id_set_; - return 0; - } -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::find_i (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_Hash_Multi_Map_Entry *entry; - - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return -1; - else - { - if (0 == entry->int_id_set_.find (int_id)) - return 0; - else - return -1; - } -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::find_i (const EXT_ID &ext_id) -{ - ACE_Hash_Multi_Map_Entry *entry; - - size_t dummy; - return this->shared_find (ext_id, entry, dummy); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::find (const EXT_ID &ext_id, - ACE_Unbounded_Set &int_id_set) const -{ - ACE_Hash_Multi_Map_Manager *nc_this = - const_cast *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); - - return nc_this->find_i (ext_id, int_id_set); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::find (const EXT_ID &ext_id, - const INT_ID &int_id) const -{ - ACE_Hash_Multi_Map_Manager *nc_this = - const_cast *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); - - return nc_this->find_i (ext_id, int_id); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::find (const EXT_ID &ext_id) const -{ - ACE_Hash_Multi_Map_Manager *nc_this = - const_cast *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); - - return nc_this->find_i (ext_id); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::find_i (const EXT_ID &ext_id, - ACE_Hash_Multi_Map_Entry *&entry) -{ - size_t dummy; - return this->shared_find (ext_id, entry, dummy); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::find (const EXT_ID &ext_id, - ACE_Hash_Multi_Map_Entry *&entry) const -{ - ACE_Hash_Multi_Map_Manager *nc_this = - const_cast *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); - - return nc_this->find_i (ext_id, entry); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set) -{ - ACE_Hash_Multi_Map_Entry *node; - - return this->rebind_i (ext_id, - int_id_set, - node); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Unbounded_Set &old_int_id_set) -{ - ACE_Hash_Multi_Map_Entry *node; - - return this->rebind_i (ext_id, - int_id_set, - old_int_id_set, - node); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set &old_int_id_set) -{ - ACE_Hash_Multi_Map_Entry *node; - - return this->rebind_i (ext_id, - int_id_set, - old_ext_id, - old_int_id_set, - node); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, entry); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Unbounded_Set &old_int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, old_int_id_set); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - ACE_Unbounded_Set &old_int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, old_int_id_set, entry); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set &old_int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, old_ext_id, old_int_id_set); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Manager::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set &old_int_id_set, - ACE_Hash_Multi_Map_Entry *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, old_ext_id, old_int_id_set, entry); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Iterator -ACE_Hash_Multi_Map_Manager::begin (void) -{ - return ACE_Hash_Multi_Map_Iterator (*this); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Iterator -ACE_Hash_Multi_Map_Manager::end (void) -{ - return ACE_Hash_Multi_Map_Iterator (*this, 1); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Reverse_Iterator -ACE_Hash_Multi_Map_Manager::rbegin (void) -{ - return ACE_Hash_Multi_Map_Reverse_Iterator (*this); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Reverse_Iterator -ACE_Hash_Multi_Map_Manager::rend (void) -{ - return ACE_Hash_Multi_Map_Reverse_Iterator (*this, 1); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Entry * -ACE_Hash_Multi_Map_Manager::table (void) -{ - return this->table_; -} - -template ACE_INLINE -size_t -ACE_Hash_Multi_Map_Manager::cur_size (void) const -{ - return this->cur_size_; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Iterator_Base::ACE_Hash_Multi_Map_Iterator_Base (ACE_Hash_Multi_Map_Manager &mm, - int head) - : map_man_ (&mm), - index_ (head != 0 ? -1 : (ssize_t) mm.total_size_), - next_ (0) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::ACE_Hash_Multi_Map_Iterator_Base"); - - if (mm.table_ != 0) - this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1]; -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Iterator_Base::next (ACE_Hash_Multi_Map_Entry *&entry) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::next"); - - if (this->map_man_->table_ != 0 - && this->index_ < static_cast (this->map_man_->total_size_) - && this->index_ >= 0 - && this->next_ != &this->map_man_->table_[this->index_]) - { - entry = this->next_; - return 1; - } - else - return 0; -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Iterator_Base::done (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::done"); - - return this->map_man_->table_ == 0 - || this->index_ >= static_cast (this->map_man_->total_size_) - || this->index_ < 0; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Entry & -ACE_Hash_Multi_Map_Iterator_Base::operator* (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::operator*"); - ACE_Hash_Multi_Map_Entry *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return *retv; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Entry * -ACE_Hash_Multi_Map_Iterator_Base::operator-> (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::operator->"); - ACE_Hash_Multi_Map_Entry *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return retv; -} - -// Returns the reference to the Hash_Multi_Map_manager_ex that is being -// iterated over. -template ACE_INLINE -ACE_Hash_Multi_Map_Manager& -ACE_Hash_Multi_Map_Iterator_Base::map (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::map"); - return *this->map_man_; -} - -template ACE_INLINE bool -ACE_Hash_Multi_Map_Iterator_Base::operator== (const ACE_Hash_Multi_Map_Iterator_Base &rhs) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::operator=="); - return this->map_man_ == rhs.map_man_ - && this->index_ == rhs.index_ - && this->next_ == rhs.next_; -} - -template ACE_INLINE bool -ACE_Hash_Multi_Map_Iterator_Base::operator!= (const ACE_Hash_Multi_Map_Iterator_Base &rhs) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base::operator!="); - return this->next_ != rhs.next_ - || this->index_ != rhs.index_ - || this->map_man_ != rhs.map_man_; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Const_Iterator_Base::ACE_Hash_Multi_Map_Const_Iterator_Base (const ACE_Hash_Multi_Map_Manager &mm, - int head) - : map_man_ (&mm), - index_ (head != 0 ? -1 : (ssize_t) mm.total_size_), - next_ (0) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::ACE_Hash_Multi_Map_Const_Iterator_Base"); - - if (mm.table_ != 0) - this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1]; -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Const_Iterator_Base::next (ACE_Hash_Multi_Map_Entry *&entry) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::next"); - - if (this->map_man_->table_ != 0 - && this->index_ < (ssize_t) this->map_man_->total_size_ - && this->index_ >= 0 - && this->next_ != &this->map_man_->table_[this->index_]) - { - entry = this->next_; - return 1; - } - else - return 0; -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Const_Iterator_Base::done (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::done"); - - return this->map_man_->table_ == 0 - || this->index_ >= (ssize_t) this->map_man_->total_size_ - || this->index_ < 0; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Entry & -ACE_Hash_Multi_Map_Const_Iterator_Base::operator* (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::operator*"); - ACE_Hash_Multi_Map_Entry *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return *retv; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Entry * -ACE_Hash_Multi_Map_Const_Iterator_Base::operator-> (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::operator->"); - ACE_Hash_Multi_Map_Entry *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return retv; -} - -// Returns the reference to the Hash_Multi_Map_manager_ex that is being -// iterated over. -template ACE_INLINE -const ACE_Hash_Multi_Map_Manager& -ACE_Hash_Multi_Map_Const_Iterator_Base::map (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::map"); - return *this->map_man_; -} - -template ACE_INLINE bool -ACE_Hash_Multi_Map_Const_Iterator_Base::operator== (const ACE_Hash_Multi_Map_Const_Iterator_Base &rhs) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::operator=="); - return this->map_man_ == rhs.map_man_ - && this->index_ == rhs.index_ - && this->next_ == rhs.next_; -} - -template ACE_INLINE bool -ACE_Hash_Multi_Map_Const_Iterator_Base::operator!= (const ACE_Hash_Multi_Map_Const_Iterator_Base &rhs) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base::operator!="); - return this->next_ != rhs.next_ - || this->index_ != rhs.index_ - || this->map_man_ != rhs.map_man_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Iterator) - -template ACE_INLINE void -ACE_Hash_Multi_Map_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Iterator::ACE_Hash_Multi_Map_Iterator (ACE_Hash_Multi_Map_Manager &mm, - int tail) - : ACE_Hash_Multi_Map_Iterator_Base (mm, - tail == 0 ? 1 : 0) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator::ACE_Hash_Multi_Map_Iterator"); - if (tail == 0) - this->forward_i (); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Iterator::advance (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator::advance"); - return this->forward_i (); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Iterator & -ACE_Hash_Multi_Map_Iterator::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator::operator++ (void)"); - - this->forward_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Iterator -ACE_Hash_Multi_Map_Iterator::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator::operator++ (int)"); - - ACE_Hash_Multi_Map_Iterator retv (*this); - ++*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Iterator & -ACE_Hash_Multi_Map_Iterator::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator::operator-- (void)"); - - this->reverse_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Iterator -ACE_Hash_Multi_Map_Iterator::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Iterator::operator-- (int)"); - - ACE_Hash_Multi_Map_Iterator retv (*this); - --*this; - return retv; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Const_Iterator) - -template ACE_INLINE void -ACE_Hash_Multi_Map_Const_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Const_Iterator::ACE_Hash_Multi_Map_Const_Iterator (const ACE_Hash_Multi_Map_Manager &mm, - int tail) - : ACE_Hash_Multi_Map_Const_Iterator_Base (mm, - tail == 0 ? 1 : 0) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator::ACE_Hash_Multi_Map_Const_Iterator"); - if (tail == 0) - this->forward_i (); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Const_Iterator::advance (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator::advance"); - return this->forward_i (); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Const_Iterator & -ACE_Hash_Multi_Map_Const_Iterator::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator::operator++ (void)"); - - this->forward_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Const_Iterator -ACE_Hash_Multi_Map_Const_Iterator::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator::operator++ (int)"); - - ACE_Hash_Multi_Map_Const_Iterator retv (*this); - ++*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Const_Iterator & -ACE_Hash_Multi_Map_Const_Iterator::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator::operator-- (void)"); - - this->reverse_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Const_Iterator -ACE_Hash_Multi_Map_Const_Iterator::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator::operator-- (int)"); - - ACE_Hash_Multi_Map_Const_Iterator retv (*this); - --*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Bucket_Iterator::ACE_Hash_Multi_Map_Bucket_Iterator (ACE_Hash_Multi_Map_Manager &mm, - const EXT_ID &ext_id, - int tail) - : map_man_ (&mm) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::ACE_Hash_Multi_Map_Bucket_Iterator"); - - this->index_ = this->map_man_->hash (ext_id) % this->map_man_->total_size_; - this->next_ = &this->map_man_->table_[this->index_]; - - if (tail == 0) - this->forward_i (); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Bucket_Iterator & -ACE_Hash_Multi_Map_Bucket_Iterator::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::operator++ (void)"); - - this->forward_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Bucket_Iterator -ACE_Hash_Multi_Map_Bucket_Iterator::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::operator++ (int)"); - - ACE_Hash_Multi_Map_Bucket_Iterator retv (*this); - ++*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Bucket_Iterator & -ACE_Hash_Multi_Map_Bucket_Iterator::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::operator-- (void)"); - - this->reverse_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Bucket_Iterator -ACE_Hash_Multi_Map_Bucket_Iterator::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::operator-- (int)"); - - ACE_Hash_Multi_Map_Bucket_Iterator retv (*this); - --*this; - return retv; -} - -template int -ACE_Hash_Multi_Map_Bucket_Iterator::forward_i (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::forward_i"); - - this->next_ = this->next_->next_; - return this->next_ != &this->map_man_->table_[this->index_]; -} - -template int -ACE_Hash_Multi_Map_Bucket_Iterator::reverse_i (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::reverse_i"); - - this->next_ = this->next_->prev_; - return this->next_ != &this->map_man_->table_[this->index_]; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Entry & -ACE_Hash_Multi_Map_Bucket_Iterator::operator* (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::operator*"); - - return *this->next_; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Entry * -ACE_Hash_Multi_Map_Bucket_Iterator::operator-> (void) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::operator->"); - - return this->next_; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Manager & -ACE_Hash_Multi_Map_Bucket_Iterator::map (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::map"); - return *this->map_man_; -} - -template ACE_INLINE bool -ACE_Hash_Multi_Map_Bucket_Iterator::operator== (const ACE_Hash_Multi_Map_Bucket_Iterator &rhs) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::operator=="); - return this->map_man_ == rhs.map_man_ - && this->index_ == rhs.index_ - && this->next_ == rhs.next_; -} - -template ACE_INLINE bool -ACE_Hash_Multi_Map_Bucket_Iterator::operator!= (const ACE_Hash_Multi_Map_Bucket_Iterator &rhs) const -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator::operator!="); - return this->next_ != rhs.next_ - || this->index_ != rhs.index_ - || this->map_man_ != rhs.map_man_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Reverse_Iterator) - -template ACE_INLINE void -ACE_Hash_Multi_Map_Reverse_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Reverse_Iterator::ACE_Hash_Multi_Map_Reverse_Iterator (ACE_Hash_Multi_Map_Manager &mm, int head) - : ACE_Hash_Multi_Map_Iterator_Base (mm, head) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator::ACE_Hash_Multi_Map_Reverse_Iterator"); - if (head == 0) - this->reverse_i (); -} - -template ACE_INLINE int -ACE_Hash_Multi_Map_Reverse_Iterator::advance (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator::advance"); - return this->reverse_i (); -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Reverse_Iterator & -ACE_Hash_Multi_Map_Reverse_Iterator::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator::operator++ (void)"); - - this->reverse_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Reverse_Iterator -ACE_Hash_Multi_Map_Reverse_Iterator::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator::operator++ (int)"); - - ACE_Hash_Multi_Map_Reverse_Iterator retv (*this); - ++*this; - return retv; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Reverse_Iterator & -ACE_Hash_Multi_Map_Reverse_Iterator::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator::operator-- (void)"); - - this->forward_i (); - return *this; -} - -template ACE_INLINE -ACE_Hash_Multi_Map_Reverse_Iterator -ACE_Hash_Multi_Map_Reverse_Iterator::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator::operator-- (int)"); - - ACE_Hash_Multi_Map_Reverse_Iterator retv (*this); - --*this; - return retv; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Hashable.cpp b/ACE/ace/Hashable.cpp deleted file mode 100644 index cab51f7aa26..00000000000 --- a/ACE/ace/Hashable.cpp +++ /dev/null @@ -1,36 +0,0 @@ -//$Id$ - -#include "ace/Hashable.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Hashable.inl" -#endif /* __ACE_INLINE __ */ - - -ACE_RCSID (ace, - Hashable, - "$Id$") - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Hashable::~ACE_Hashable (void) -{ -} - -unsigned long -ACE_Hashable::hash (void) const -{ - // In doing the check below, we take chance of paying a performance - // price when the hash value is zero. But, that will (hopefully) - // happen far less often than a non-zero value, so this caching - // strategy should pay off, esp. if hash computation is expensive - // relative to the simple comparison. - - if (this->hash_value_ == 0) - this->hash_value_ = this->hash_i (); - - return this->hash_value_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Hashable.h b/ACE/ace/Hashable.h deleted file mode 100644 index d20bb2da1aa..00000000000 --- a/ACE/ace/Hashable.h +++ /dev/null @@ -1,65 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Hashable.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - -#ifndef ACE_HASHABLE_H -#define ACE_HASHABLE_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Hashable - * - * @brief ACE_Hashable - */ -class ACE_Export ACE_Hashable -{ -public: - - /// Destructor. - virtual ~ACE_Hashable (void); - - /// Computes and returns hash value. This "caches" the hash value to - /// improve performance. - virtual unsigned long hash (void) const; - -protected: - /// Protected constructor. - ACE_Hashable (void); - - /// This is the method that actually performs the non-cached hash - /// computation. - virtual unsigned long hash_i (void) const = 0; - -protected: - - /// Pre-computed hash-value. - mutable unsigned long hash_value_; - -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Hashable.inl" -#endif /* __ACE_INLINE __ */ - -#include /**/ "ace/post.h" - -#endif /*ACE_HASHABLE_H*/ diff --git a/ACE/ace/Hashable.inl b/ACE/ace/Hashable.inl deleted file mode 100644 index 7ec54ea1337..00000000000 --- a/ACE/ace/Hashable.inl +++ /dev/null @@ -1,14 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Hashable::ACE_Hashable (void) - : hash_value_ (0) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/High_Res_Timer.cpp b/ACE/ace/High_Res_Timer.cpp deleted file mode 100644 index f71b7ebc7d7..00000000000 --- a/ACE/ace/High_Res_Timer.cpp +++ /dev/null @@ -1,537 +0,0 @@ -// $Id$ - -// Be very carefull before changing the calculations inside -// ACE_High_Res_Timer. The precision matters and we are using integer -// calculations not floating point. Also look good at the emulated 64 -// bit int class (inside Basic_Types{h,i,cpp} before changing -// anything. It's operator/ only returns 32 bits not 64 bits, among -// other things. - -#include "ace/High_Res_Timer.h" - -#if !defined (__ACE_INLINE__) -#include "ace/High_Res_Timer.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Stats.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_sys_time.h" -#include "ace/OS_NS_time.h" -#include "ace/OS_NS_unistd.h" -#include "ace/OS_NS_stdlib.h" -#include "ace/Truncate.h" - -ACE_RCSID(ace, High_Res_Timer, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_High_Res_Timer) - -ACE_END_VERSIONED_NAMESPACE_DECL - -// For Intel platforms, a scale factor is required for -// ACE_OS::gethrtime. We'll still set this to one to prevent division -// by zero errors. -#if (defined (ACE_WIN32) || defined (ACE_HAS_POWERPC_TIMER) || \ - defined (ACE_HAS_PENTIUM) || defined (ACE_HAS_ALPHA_TIMER)) && \ - !defined (ACE_HAS_HI_RES_TIMER) - -# include "ace/Guard_T.h" -# include "ace/Recursive_Thread_Mutex.h" -# include "ace/Object_Manager.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - - // Initialize the global_scale_factor_ to 1. The first - // ACE_High_Res_Timer instance construction will override this - // value. - /* static */ - ACE_UINT32 ACE_High_Res_Timer::global_scale_factor_ = 1u; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#else /* ! (ACE_WIN32 || ACE_HAS_POWERPC_TIMER || \ - ACE_HAS_PENTIUM || ACE_HAS_ALPHA_TIMER) || - ACE_HAS_HI_RES_TIMER */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - - // A scale_factor of 1000 converts nanosecond ticks to microseconds. - // That is, on these platforms, 1 tick == 1 nanosecond. - /* static */ - ACE_UINT32 ACE_High_Res_Timer::global_scale_factor_ = 1000u; - -ACE_END_VERSIONED_NAMESPACE_DECL -#endif /* ! (ACE_WIN32 || ACE_HAS_POWERPC_TIMER || \ - ACE_HAS_PENTIUM || ACE_HAS_ALPHA_TIMER) || - ACE_HAS_HI_RES_TIMER */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// This is used to tell if the global_scale_factor_ has been -// set, and if high resolution timers are supported. -/* static */ -int ACE_High_Res_Timer::global_scale_factor_status_ = 0; - - -#if defined (linux) -// Determine the apparent CPU clock speed from /proc/cpuinfo -ACE_UINT32 -ACE_High_Res_Timer::get_cpuinfo (void) -{ - ACE_UINT32 scale_factor = 1u; - - // Get the BogoMIPS from /proc/cpuinfo. It works fine on Alpha and - // Pentium Pro. For other CPUs, it will be necessary to interpret - // the BogoMips, as described in the BogoMips mini-HOWTO. Note that - // this code assumes an order to the /proc/cpuinfo contents. The - // BogoMips rating had better come after CPU type and model info. -#if !defined (__alpha__) - int supported = 0; -#endif /* __alpha__ */ - - FILE *cpuinfo = ACE_OS::fopen (ACE_TEXT ("/proc/cpuinfo"), - ACE_TEXT ("r")); - - if (cpuinfo != 0) - { - char buf[128]; - - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nReading /proc/cpuinfo..."))); - - while (ACE_OS::fgets (buf, sizeof buf, cpuinfo)) - { -#if defined (__alpha__) - ACE_UINT32 whole; - ACE_UINT32 fractional; - if (::sscanf (buf, - "BogoMIPS : %d.%d\n", - &whole, - &fractional) == 2 - || ::sscanf (buf, - "bogomips : %d.%d\n", - &whole, - &fractional) == 2) - { - scale_factor = whole; - break; - } -#else - double mhertz = 1; - double bmips = 1; - char arg[128]; - - // CPU type? - if (::sscanf (buf, "cpu : %s\n", arg) == 1) - { - // If this is an Alpha chip, then the BogoMips rating is - // usable... - if (ACE_OS::strncmp (arg, - "Alpha", - 5) == 0) - { - supported = 1; - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" recognized Alpha chip..."))); - } - } - // Pentium CPU model? - else if (supported == 0 - && ::sscanf (buf, "model name : Pentium %s\n", arg) == 1) - { - // But if we don't have the right kind of Intel chip, - // just quit. - if (ACE_OS::strcmp (arg, "II") == 0 - || ACE_OS::strcmp (arg, "III") == 0 - || ACE_OS::strcmp (arg, "IV") == 0 - || ACE_OS::strcmp (arg, "Pro") == 0) - { - supported = 1; - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" recognized Pentium Pro/II chip..."))); - } - } - else if (::sscanf (buf, "cpu MHz : %lf\n", &mhertz) == 1) - { - // 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; - } - else if (::sscanf (buf, "bogomips : %lf\n", &bmips) == 1 - || ::sscanf (buf, "BogoMIPS : %lf\n", &bmips) == 1) - { - if (supported) - { - scale_factor = (ACE_UINT32) (bmips + 0.5); - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" setting the clock scale factor to %u"), scale_factor)); - } -#if 0 - else - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("\nThe BogoMIPS metric is not supported on this platform" - "\n\tReport the results of the clock calibration and" - "\n\tthe contents of /proc/cpuinfo to the ace-users mailing list"))); - } -#endif /* 0 */ - break; - } -#endif /* __alpha__ */ - } - - // ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" (done)\n"))); - - ACE_OS::fclose (cpuinfo); - } - - return scale_factor; -} -#endif /* linux */ - -ACE_UINT32 -ACE_High_Res_Timer::global_scale_factor (void) -{ -#if (defined (ACE_WIN32) || defined (ACE_HAS_POWERPC_TIMER) || \ - defined (ACE_HAS_PENTIUM) || defined (ACE_HAS_ALPHA_TIMER)) && \ - !defined (ACE_HAS_HI_RES_TIMER) && \ - ((defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || \ - defined (ghs) || defined (__GNUG__) || \ - defined (__INTEL_COMPILER)) - // Check if the global scale factor needs to be set, and do if so. - if (ACE_High_Res_Timer::global_scale_factor_status_ == 0) - { - // Grab ACE's static object lock. This doesn't have anything to - // do with static objects; it's just a convenient lock to use. - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Static_Object_Lock::instance (), 0)); - - // Double check - if (ACE_High_Res_Timer::global_scale_factor_status_ == 0) - { -# if defined (ACE_WIN32) - LARGE_INTEGER freq; - if (::QueryPerformanceFrequency (&freq)) - { - // We have a high-res timer -# if defined (ACE_LACKS_LONGLONG_T) - ACE_UINT64 uint64_freq(freq.u.LowPart, (ACE_UINT32) freq.u.HighPart); - ACE_High_Res_Timer::global_scale_factor - (uint64_freq / (ACE_UINT32) ACE_ONE_SECOND_IN_USECS); -# else - ACE_High_Res_Timer::global_scale_factor - (static_cast (freq.QuadPart / ACE_HR_SCALE_CONVERSION)); -# endif // (ACE_LACKS_LONGLONG_T) - - ACE_High_Res_Timer::global_scale_factor_status_ = 1; - } - else - // High-Res timers not supported - ACE_High_Res_Timer::global_scale_factor_status_ = -1; - - return ACE_High_Res_Timer::global_scale_factor_; - -# elif defined (linux) - ACE_High_Res_Timer::global_scale_factor (ACE_High_Res_Timer::get_cpuinfo ()); -# endif /* ! ACE_WIN32 && ! (linux && __alpha__) */ - -# if !defined (ACE_WIN32) - if (ACE_High_Res_Timer::global_scale_factor_ == 1u) - // Failed to retrieve CPU speed from system, so calculate it. - ACE_High_Res_Timer::calibrate (); -# endif // (ACE_WIN32) - } - } - - ACE_High_Res_Timer::global_scale_factor_status_ = 1; -#endif /* (ACE_WIN32 || ACE_HAS_POWERPC_TIMER || \ - ACE_HAS_PENTIUM || ACE_HAS_ALPHA_TIMER) && \ - ! ACE_HAS_HI_RES_TIMER && - ((WIN32 && ! WINCE) || ghs || __GNUG__) */ - - return ACE_High_Res_Timer::global_scale_factor_; -} - -ACE_High_Res_Timer::ACE_High_Res_Timer (void) -{ - ACE_TRACE ("ACE_High_Res_Timer::ACE_High_Res_Timer"); - - this->reset (); - - // Make sure that the global scale factor is set. - (void) global_scale_factor (); -} - -ACE_UINT32 -ACE_High_Res_Timer::calibrate (const ACE_UINT32 usec, - const u_int iterations) -{ - const ACE_Time_Value sleep_time (0, usec); - ACE_Stats delta_hrtime; - // In units of 100 usec, to avoid overflow. - ACE_Stats actual_sleeps; - - for (u_int i = 0; - i < iterations; - ++i) - { - const ACE_Time_Value actual_start = - ACE_OS::gettimeofday (); - const ACE_hrtime_t start = - ACE_OS::gethrtime (); - ACE_OS::sleep (sleep_time); - const ACE_hrtime_t stop = - ACE_OS::gethrtime (); - const ACE_Time_Value actual_delta = - ACE_OS::gettimeofday () - actual_start; - - // Store the sample. - delta_hrtime.sample (ACE_Utils::truncate_cast (stop - start)); - actual_sleeps.sample (actual_delta.msec () * 100u); - } - - // Calculate the mean value of the samples, with no fractional - // precision. Use it for the global scale factor. - ACE_Stats_Value ticks (0); - delta_hrtime.mean (ticks); - - ACE_Stats_Value actual_sleep (0); - actual_sleeps.mean (actual_sleep); - - // The addition of 5 below rounds instead of truncates. - const ACE_UINT32 scale_factor = - (ticks.whole () / actual_sleep.whole () + 5) / - 10u /* usec/100 usec */; - ACE_High_Res_Timer::global_scale_factor (scale_factor); - - return scale_factor; -} - -void -ACE_High_Res_Timer::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_High_Res_Timer::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nglobal_scale_factor_: %u\n"), - global_scale_factor ())); -#if defined (ACE_LACKS_LONGLONG_T) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (":\nstart_.hi (): %8x; start_.lo (): %8x;\n") - ACE_TEXT ("end_.hi (): %8x; end_.lo (): %8x;\n") - ACE_TEXT ("total_.hi (): %8x; total_.lo (): %8x;\n") - ACE_TEXT ("start_incr_.hi () %8x; start_incr_.lo (): %8x;\n"), - start_.hi (), start_.lo (), - end_.hi (), end_.lo (), - total_.hi (), total_.lo (), - start_incr_.hi (), start_incr_.lo ())); -#else /* ! ACE_LACKS_LONGLONG_T */ - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (":\nstart_.hi (): %8x; start_.lo (): %8x;\n") - ACE_TEXT ("end_.hi (): %8x; end_.lo (): %8x;\n") - ACE_TEXT ("total_.hi (): %8x; total_.lo (): %8x;\n") - ACE_TEXT ("start_incr_.hi () %8x; start_incr_.lo (): %8x;\n"), - static_cast (start_ >> 32), - static_cast (start_ & 0xfffffffful), - static_cast (end_ >> 32), - static_cast (end_ & 0xfffffffful), - static_cast (total_ >> 32), - static_cast (total_ & 0xfffffffful), - static_cast (start_incr_ >> 32), - static_cast (start_incr_ & 0xfffffffful))); -#endif /* ! ACE_LACKS_LONGLONG_T */ - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -void -ACE_High_Res_Timer::reset (void) -{ - ACE_TRACE ("ACE_High_Res_Timer::reset"); - - this->start_ = 0; - this->end_ = 0; - this->total_ = 0; - this->start_incr_ = 0; -} - -void -ACE_High_Res_Timer::elapsed_time (ACE_Time_Value &tv) const -{ - hrtime_to_tv (tv, - ACE_High_Res_Timer::elapsed_hrtime (this->end_, this->start_)); -} - -#if defined (ACE_HAS_POSIX_TIME) -// Note... Win32 does not have ACE_HAS_POSIX_TIME, so the scale factor -// does not need to take into account the different units on Win32. - -void -ACE_High_Res_Timer::elapsed_time (struct timespec &elapsed_time) const -{ - // This implementation should be cleaned up. - - // Just grab the nanoseconds. That is, leave off all values above - // microsecond. This equation is right! Don't mess with me! (It - // first strips off everything but the portion less than 1 usec. - // Then it converts that to nanoseconds by dividing by the scale - // factor to convert to usec, and multiplying by 1000.) The cast - // avoids a MSVC 4.1 compiler warning about narrowing. - ACE_hrtime_t elapsed = - ACE_High_Res_Timer::elapsed_hrtime (this->end_, this->start_); - u_long nseconds = static_cast (elapsed % - global_scale_factor () * 1000u / - global_scale_factor ()); - - // Get just the microseconds (dropping any left over nanoseconds). - ACE_UINT32 useconds = (ACE_UINT32) (elapsed / global_scale_factor ()); - - elapsed_time.tv_sec = (time_t) (useconds / ACE_ONE_SECOND_IN_USECS); - // Transforms one second in microseconds into nanoseconds. - elapsed_time.tv_nsec = (time_t) ((useconds % ACE_ONE_SECOND_IN_USECS) * 1000u + nseconds); -} -#endif /* ACE_HAS_POSIX_TIME */ - -void -ACE_High_Res_Timer::elapsed_time_incr (ACE_Time_Value &tv) const -{ - hrtime_to_tv (tv, total_); -} - -void -ACE_High_Res_Timer::elapsed_time (ACE_hrtime_t &nanoseconds) const -{ - // Please do _not_ rearrange this equation. It is carefully - // designed and tested to avoid overflow on machines that don't have - // native 64-bit ints. In particular, division can be a problem. - // For more background on this, please see bugzilla #1024. - nanoseconds = ACE_High_Res_Timer::elapsed_hrtime (this->end_, this->start_) - * (1024000u / ACE_High_Res_Timer::global_scale_factor ()); - // Caution - Borland has a problem with >>=, so resist the temptation. - nanoseconds = nanoseconds >> 10; - // Right shift is implemented for non native 64-bit ints - // operator/ only for a 32 bit result ! -} - -void -ACE_High_Res_Timer::elapsed_time_incr (ACE_hrtime_t &nanoseconds) const -{ - // Same as above. - nanoseconds = this->total_ - * (1024000u / ACE_High_Res_Timer::global_scale_factor ()); - // Caution - Borland has a problem with >>=, so resist the temptation. - nanoseconds = nanoseconds >> 10; -} - -#if !defined (ACE_HAS_WINCE) -void -ACE_High_Res_Timer::print_ave (const ACE_TCHAR *str, - const int count, - ACE_HANDLE handle) const -{ - ACE_TRACE ("ACE_High_Res_Timer::print_ave"); - - // Get the total number of nanoseconds elapsed. - ACE_hrtime_t total_nanoseconds; - this->elapsed_time (total_nanoseconds); - - // Separate to seconds and nanoseconds. - u_long total_secs = - static_cast (total_nanoseconds / (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS); - ACE_UINT32 extra_nsecs = - static_cast (total_nanoseconds % (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS); - - ACE_TCHAR buf[100]; - if (count > 1) - { - ACE_hrtime_t avg_nsecs = total_nanoseconds / (ACE_UINT32) count; - ACE_OS::sprintf (buf, - ACE_TEXT (" count = %d, total (secs %lu, usecs %u), avg usecs = %lu\n"), - count, - total_secs, - (extra_nsecs + 500u) / 1000u, - (u_long) ((avg_nsecs + 500u) / 1000u)); - } - else - ACE_OS::sprintf (buf, - ACE_TEXT (" total %3lu.%06lu secs\n"), - total_secs, - (extra_nsecs + 500lu) / 1000lu); - - ACE_OS::write (handle, - str, - ACE_OS::strlen (str)); - ACE_OS::write (handle, - buf, - ACE_OS::strlen (buf)); -} - -void -ACE_High_Res_Timer::print_total (const ACE_TCHAR *str, - const int count, - ACE_HANDLE handle) const -{ - ACE_TRACE ("ACE_High_Res_Timer::print_total"); - - // Get the total number of nanoseconds elapsed. - ACE_hrtime_t total_nanoseconds; - this->elapsed_time (total_nanoseconds); - - // Separate to seconds and nanoseconds. - u_long total_secs = - (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); - - ACE_TCHAR buf[100]; - if (count > 1) - { - ACE_hrtime_t avg_nsecs = this->total_ / (ACE_UINT32) count; - - ACE_OS::sprintf (buf, - ACE_TEXT (" count = %d, total (secs %lu, usecs %u), avg usecs = %lu\n"), - count, - total_secs, - (extra_nsecs + 500u) / 1000u, - (u_long) ((avg_nsecs + 500u) / 1000u)); - } - else - ACE_OS::sprintf (buf, - ACE_TEXT (" total %3lu.%06u secs\n"), - total_secs, - (extra_nsecs + 500u) / 1000u); - - ACE_OS::write (handle, - str, - ACE_OS::strlen (str)); - ACE_OS::write (handle, - buf, - ACE_OS::strlen (buf)); -} -#endif /* !ACE_HAS_WINCE */ - -int -ACE_High_Res_Timer::get_env_global_scale_factor (const ACE_TCHAR *env) -{ -#if !defined (ACE_HAS_WINCE) - if (env != 0) - { - const char *env_value = ACE_OS::getenv (ACE_TEXT_ALWAYS_CHAR (env)); - if (env_value != 0) - { - int const value = ACE_OS::atoi (env_value); - if (value > 0) - { - ACE_High_Res_Timer::global_scale_factor (value); - return 0; - } - } - } -#else - ACE_UNUSED_ARG (env); -#endif /* !ACE_HAS_WINCE */ - return -1; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/High_Res_Timer.h b/ACE/ace/High_Res_Timer.h deleted file mode 100644 index 249d38078b9..00000000000 --- a/ACE/ace/High_Res_Timer.h +++ /dev/null @@ -1,315 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file High_Res_Timer.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_HIGH_RES_TIMER_H -#define ACE_HIGH_RES_TIMER_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/Basic_Types.h" -#include "ace/OS_NS_time.h" -#include "ace/Time_Value.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_High_Res_Timer - * - * @brief A high resolution timer class wrapper that encapsulates - * OS-specific high-resolution timers, such as those found on - * Solaris, AIX, Win32/Pentium, and VxWorks. - * - * Most of the member functions don't return values. The only - * reason that one would fail is if high-resolution time isn't - * supported on the platform. To avoid impacting performance - * and complicating the interface, in that case, - * is used instead. - * The global scale factor is required for platforms that have - * high-resolution timers that return units other than - * microseconds, such as clock ticks. It is represented as a - * static u_long, can only be accessed through static methods, - * and is used by all instances of High Res Timer. The member - * functions that return or print times use the global scale - * factor. They divide the "time" that they get from - * by global_scale_factor_ to obtain the - * time in microseconds. Its units are therefore 1/microsecond. - * On Windows the global_scale_factor_ units are 1/millisecond. - * There's a macro which gives the - * units/second. Because it's possible that the units/second - * changes in the future, it's recommended to use it instead - * of a "hard coded" solution. - * Dependend on the platform and used class members, there's a - * maximum elapsed period before overflow (which is not checked). - * Look at the documentation with some members functions. - * On some (most?) implementations it's not recommended to measure - * "long" timeperiods, because the error's can accumulate fast. - * This is probably not a problem profiling code, but could be - * on if the high resolution timer class is used to initiate - * actions after a "long" timeout. - * On Solaris, a scale factor of 1000 should be used because its - * high-resolution timer returns nanoseconds. However, on Intel - * platforms, we use RDTSC which returns the number of clock - * ticks since system boot. For a 200MHz cpu, each clock tick - * is 1/200 of a microsecond; the global_scale_factor_ should - * therefore be 200 or 200000 if it's in unit/millisecond. - * On Windows ::QueryPerformanceCounter() is used, which can be a - * different implementation depending on the used windows HAL - * (Hardware Abstraction Layer). On some it uses the PC "timer chip" - * while it uses RDTSC on others. - * @note The elapsed time calculations in the print methods use - * ACE_hrtime_t values. Those methods do _not_ check for overflow! - * @note Gabe raises this issue regarding - * : on multi-processors, the processor that - * you query for your value might not be the one - * you queried for . Its not clear how much - * divergence there would be, if any. - * This issue is not mentioned in the Solaris 2.5.1 gethrtime - * man page. - * A RDTSC NOTE: RDTSC is the Intel Pentium read-time stamp counter - * and is actualy a 64 bit clock cycle counter, which is increased - * with every cycle. It has a low overhead and can be read within - * 16 (pentium) or 32 (pentium II,III,...) cycles, but it doesn't - * serialize the processor, which could give wrong timings when - * profiling very short code fragments. - * Problematic is that some power sensitive devices - * (laptops for example, but probably also embedded devices), - * do change the cycle rate while running. - * Some pentiums can run on (at least) two clock frequency's. - * Another problem arises with multiprocessor computers, there - * are reports that the different RDTSC's are not always kept - * in sync. - * A windows "timer chip" NOTE: (8254-compatible real-time clock) - * When ::QueryPerformanceCounter() uses the 8254 it has a - * frequency off about 1.193 Mhz (or sometimes 3.579 Mhz?) and - * reading it requires some time (several thousand cycles). - */ -class ACE_Export ACE_High_Res_Timer -{ -public: - // = Initialization method. - - /** - * global_scale_factor_ is set to @a gsf. All High_Res_Timers use - * global_scale_factor_. This allows applications to set the scale - * factor just once for all High_Res_Timers. Check - * High_Res_Timer.cpp for the default global_scale_factors for - * several platforms. For many platforms (e.g., Solaris), the - * global_scale_factor_ is set to 1000 so that need - * not be set. Careful, a of 0 will cause division - * by zero exceptions. - * Depending on the platform its units are 1/microsecond or - * 1/millisecond. Use inside calculations - * instead a hardcoded value. - */ - static void global_scale_factor (ACE_UINT32 gsf); - - /// Returns the global_scale_factor. - static ACE_UINT32 global_scale_factor (void); - -#ifndef ACE_HR_SCALE_CONVERSION -# define ACE_HR_SCALE_CONVERSION (ACE_ONE_SECOND_IN_USECS) -#endif /* ACE_HR_SCALE_CONVERSION */ - - /** - * Sets the global_scale_factor to the value in the - * environment variable. Returns 0 on success, -1 on failure. - * @note If @a env points to string "0" (value zero), this call will fail. - * This is basically a no-op on CE because there is no concept of - * environment variable on CE. - */ - static int get_env_global_scale_factor (const ACE_TCHAR *env - = ACE_TEXT ("ACE_SCALE_FACTOR")); - - /** - * Set (and return, for info) the global scale factor by sleeping - * for @a usec and counting the number of intervening clock cycles. - * Average over @a iterations of @a usec each. On some platforms, - * such as Pentiums, this is called automatically during the first - * ACE_High_Res_Timer construction with the default parameter - * values. An application can override that by calling calibrate - * with any desired parameter values _prior_ to constructing the - * first ACE_High_Res_Timer instance. - * Beware for platforms that can change the cycle rate on the fly. - */ - static ACE_UINT32 calibrate (const ACE_UINT32 usec = 500000, - const u_int iterations = 10); - - /// Initialize the timer. - ACE_High_Res_Timer (void); - - /// Destructor. - ~ACE_High_Res_Timer (void); - - /// Reinitialize the timer. - void reset (void); - - /// Start timing. - void start (const ACE_OS::ACE_HRTimer_Op = ACE_OS::ACE_HRTIMER_GETTIME); - - /// Stop timing. - void stop (const ACE_OS::ACE_HRTimer_Op = ACE_OS::ACE_HRTIMER_GETTIME); - - /// Set @a tv to the number of microseconds elapsed. - /** - * Could overflow within hours on windows with emulated 64 bit int's - * and a fast counter. VC++ and Borland normaly use __int64 and - * so normaly don't have this problem. - */ - void elapsed_time (ACE_Time_Value &tv) const; - - /// Set @a nanoseconds to the number of nanoseconds elapsed. - /** - * Will overflow when measuring more than 194 day's. - */ - void elapsed_time (ACE_hrtime_t &nanoseconds) const; - -#if defined (ACE_HAS_POSIX_TIME) - /// Returns the elapsed (stop - start) time in a struct timespec - /// (sec, nsec). - void elapsed_time (struct timespec &) const; -#endif /* ACE_HAS_POSIX_TIME */ - - /// Sets @a usecs to the elapsed (stop - start) time in microseconds. - /** - * Will overflow on windows when measuring more than appox. 2^^54 ticks. - * Is still more than 48 days with a 4 Ghz counter. - */ - void elapsed_microseconds (ACE_hrtime_t &usecs) const; - - /// Start incremental timing. - void start_incr (const ACE_OS::ACE_HRTimer_Op = ACE_OS::ACE_HRTIMER_GETTIME); - - /// Stop incremental timing. - void stop_incr (const ACE_OS::ACE_HRTimer_Op = ACE_OS::ACE_HRTIMER_GETTIME); - - /// Set @a tv to the number of microseconds elapsed between all calls - /// to start_incr and stop_incr. - void elapsed_time_incr (ACE_Time_Value &tv) const; - - /// Set to the number of nanoseconds elapsed between all calls - /// to start_incr and stop_incr. - void elapsed_time_incr (ACE_hrtime_t &nanoseconds) const; - -#if !defined (ACE_HAS_WINCE) - // @@ WINCE These two functions are currently not supported on Windows CE. - // However, we should probably use the handle and ACE_Log_Msg to - // print out the result. - /// Print total time. - /// @note only use if incremental timings had been used! - void print_total (const ACE_TCHAR *message, - const int iterations = 1, - ACE_HANDLE handle = ACE_STDOUT) const; - - /// Print average time. - void print_ave (const ACE_TCHAR *message, - const int iterations = 1, - ACE_HANDLE handle = ACE_STDOUT) const; -#endif /* !ACE_HAS_WINCE */ - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - /** - * Get the current "time" as the high resolution counter at this time. - * This is intended to be useful for supplying to a ACE_Timer_Queue - * as the gettimeofday function, thereby basing the timer calculations - * on the high res timer rather than wall clock time. - */ - static ACE_Time_Value gettimeofday_hr (void); - - /** - * @deprecated THIS FUNCTION IS DEPRECATED. PLEASE USE - * INSTEAD! Calls - * passing . This function can be used to parameterize - * objects such as . If - * is not set, and we're on a platform that - * requires (e.g., Win32), - * ACE_OS::gettimeofday will be used instead of . - * This allows applications on Intel to use even - * when is not set. However, setting the - * appropriately will result in the finest - * resolution possible. - */ - static ACE_Time_Value gettimeofday (const ACE_OS::ACE_HRTimer_Op = - ACE_OS::ACE_HRTIMER_GETTIME); - - /// Converts an to @a tv using global_scale_factor_. - static void hrtime_to_tv (ACE_Time_Value &tv, - const ACE_hrtime_t hrt); - -#if defined (linux) - /** - * This is used to find out the Mhz of the machine for the scale - * factor. If there are any problems getting it, we just return 1 - * (the default). - */ - static ACE_UINT32 get_cpuinfo (void); -#endif /* defined (linux) */ - -private: - /** - * For internal use: gets the high-resolution time using - * . Except on platforms that require that the - * be set, such as ACE_WIN32, uses the - * low-resolution clock if the has not been - * set. - */ - static ACE_hrtime_t gettime (const ACE_OS::ACE_HRTimer_Op = - ACE_OS::ACE_HRTIMER_GETTIME); - - /// Calculate the difference between two ACE_hrtime_t values. It is assumed - /// that the end time is later than start time, so if end is a smaller - /// value, the time counter has wrapped around. - static ACE_hrtime_t elapsed_hrtime (const ACE_hrtime_t end, - const ACE_hrtime_t start); - - /// Starting time. - ACE_hrtime_t start_; - - /// Ending time. - ACE_hrtime_t end_; - - /// Total elapsed time. - ACE_hrtime_t total_; - - /// Start time of incremental timing. - ACE_hrtime_t start_incr_; - - /// Converts ticks to microseconds. That is, ticks / - /// global_scale_factor_ == microseconds. - static ACE_UINT32 global_scale_factor_; - - /** - * Indicates the status of the global scale factor, - * 0 = hasn't been set - * 1 = been set - * -1 = HR timer not supported - */ - static int global_scale_factor_status_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/High_Res_Timer.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_HIGH_RES_TIMER_H */ diff --git a/ACE/ace/High_Res_Timer.inl b/ACE/ace/High_Res_Timer.inl deleted file mode 100644 index 2d089d1520c..00000000000 --- a/ACE/ace/High_Res_Timer.inl +++ /dev/null @@ -1,154 +0,0 @@ -// -*- C++ -*- */ -// -// $Id$ - -#include "ace/Global_Macros.h" - -#if defined (ACE_WIN32) -# include "ace/OS_NS_sys_time.h" -#endif /* ACE_WIN32 */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Be very careful before changing the calculations inside -// ACE_High_Res_Timer. The precision matters and we are using integer -// calculations not floating point. Also look closely at the emulated 64 -// bit int class (inside Basic_Types{h,i,cpp} before changing -// anything. It's operator/ only returns 32 bits not 64 bits, among -// other things. - -ACE_INLINE void -ACE_High_Res_Timer::hrtime_to_tv (ACE_Time_Value &tv, - const ACE_hrtime_t hrt) -{ - // The following are based on the units of global_scale_factor_ - // being 1/microsecond. Therefore, dividing by it converts - // clock ticks to microseconds. - tv.sec ((long) (hrt / (ACE_UINT32) ACE_HR_SCALE_CONVERSION / - global_scale_factor ())); - - // Calculate usec in a manner that's compatible with ACE_U_LongLong. - // hrt = (tv.sec * ACE_ONE_SECOND_IN_USECS + tv.usec) * global_scale_factor_ - // tv.usec = hrt / global_scale_factor_ - tv.sec * ACE_ONE_SECOND_IN_USECS - // That first term will be lossy, so factor out global_scale_factor_: - // tv.usec = (hrt - tv.sec * ACE_ONE_SECOND_IN_USECS * global_scale_factor_)/ - // global_scale_factor - ACE_hrtime_t tmp = tv.sec (); - tmp *= ((ACE_UINT32) ACE_HR_SCALE_CONVERSION * global_scale_factor ()); - tv.usec ((long) ((hrt - tmp) / global_scale_factor ())); -} - - -ACE_INLINE ACE_Time_Value -ACE_High_Res_Timer::gettimeofday (const ACE_OS::ACE_HRTimer_Op op) -{ -#if defined (ACE_WIN32) - // Get the global scale factor if there isn't one yet. - if (ACE_High_Res_Timer::global_scale_factor_status_ == 0) - ACE_High_Res_Timer::global_scale_factor (); - - // If there isn't a high-res timer, use gettimeofday (); - if (ACE_High_Res_Timer::global_scale_factor_status_ == -1) - return ACE_OS::gettimeofday (); -#endif /* ACE_WIN32 */ - - ACE_Time_Value tv; - ACE_High_Res_Timer::hrtime_to_tv (tv, - ACE_OS::gethrtime (op)); - return tv; -} - - -// Get the current high res timer as the time of day. This is intended -// to be used for a gettimeofday replacement in ACE_Timer_Queue and -// derived classes so the timers will bebased on high res timers rather -// than wall clock time. It uses the ACE_High_Res_Timer::gettimeofday -// function, which is deprecated. If it gets removed, please move the -// code down here, intact. -ACE_INLINE ACE_Time_Value -ACE_High_Res_Timer::gettimeofday_hr (void) -{ - return ACE_High_Res_Timer::gettimeofday (); -} - - -ACE_INLINE ACE_hrtime_t -ACE_High_Res_Timer::gettime (const ACE_OS::ACE_HRTimer_Op op) -{ -#if defined (ACE_WIN32) - // Get the global scale factor if there isn't one yet. - if (ACE_High_Res_Timer::global_scale_factor_status_ == 0) - ACE_High_Res_Timer::global_scale_factor (); - - // 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 (); - // Return the time in microseconds because the global_scale_factor_ - // is 1. - return tv.sec () * ACE_ONE_SECOND_IN_USECS + tv.usec (); - } -#endif /* ACE_WIN32 */ - - return ACE_OS::gethrtime (op); -} - -ACE_INLINE ACE_hrtime_t -ACE_High_Res_Timer::elapsed_hrtime (const ACE_hrtime_t end, - const ACE_hrtime_t start) -{ - if (end > start) - return end - start; - return (~start + 1 + end); // Wrapped-around counter diff -} - -ACE_INLINE -ACE_High_Res_Timer::~ACE_High_Res_Timer (void) -{ -} - -ACE_INLINE void -ACE_High_Res_Timer::start (const ACE_OS::ACE_HRTimer_Op op) -{ - ACE_TRACE ("ACE_High_Res_Timer::start"); - this->start_ = ACE_High_Res_Timer::gettime (op); -} - -ACE_INLINE void -ACE_High_Res_Timer::stop (const ACE_OS::ACE_HRTimer_Op op) -{ - ACE_TRACE ("ACE_High_Res_Timer::stop"); - this->end_ = ACE_High_Res_Timer::gettime (op); -} - -ACE_INLINE void -ACE_High_Res_Timer::start_incr (const ACE_OS::ACE_HRTimer_Op op) -{ - ACE_TRACE ("ACE_High_Res_Timer::start_incr"); - this->start_incr_ = ACE_High_Res_Timer::gettime (op); -} - -ACE_INLINE void -ACE_High_Res_Timer::stop_incr (const ACE_OS::ACE_HRTimer_Op op) -{ - ACE_TRACE ("ACE_High_Res_Timer::stop_incr"); - this->total_ += - ACE_High_Res_Timer::elapsed_hrtime (ACE_High_Res_Timer::gettime (op), - this->start_incr_); -} - -ACE_INLINE void -ACE_High_Res_Timer::elapsed_microseconds (ACE_hrtime_t &usecs) const -{ - ACE_hrtime_t elapsed = ACE_High_Res_Timer::elapsed_hrtime (this->end_, - this->start_); - usecs = (ACE_hrtime_t) (elapsed / global_scale_factor ()); -} - -ACE_INLINE void -ACE_High_Res_Timer::global_scale_factor (ACE_UINT32 gsf) -{ - global_scale_factor_ = gsf; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ICMP_Socket.cpp b/ACE/ace/ICMP_Socket.cpp deleted file mode 100644 index d3d07c80f36..00000000000 --- a/ACE/ace/ICMP_Socket.cpp +++ /dev/null @@ -1,186 +0,0 @@ -// $Id$ - -#include "ace/ICMP_Socket.h" - -#if defined (ACE_HAS_ICMP_SUPPORT) && (ACE_HAS_ICMP_SUPPORT == 1) - -#include "ace/ACE.h" -#include "ace/Log_Msg.h" -#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) - - -void -ACE_ICMP_Socket::dump (void) const -{ - ACE_TRACE ("ACE_ICMP_Socket::dump"); -} - -ACE_ICMP_Socket::ACE_ICMP_Socket (void) -{ - ACE_TRACE ("ACE_ICMP_Socket::ACE_ICMP_Socket"); -} - -ssize_t -ACE_ICMP_Socket::send (void const * buf, - size_t n, - ACE_Addr const & addr, - int flags) const -{ - ACE_TRACE ("ACE_ICMP_Socket::send"); - - return ACE_OS::sendto (this->get_handle (), - (char const *) buf, - n, - flags, - (sockaddr const *) addr.get_addr (), - addr.get_size ()); -} - -ssize_t -ACE_ICMP_Socket::recv (void * buf, - size_t n, - ACE_Addr & addr, - int flags) const -{ - ACE_TRACE ("ACE_ICMP_Socket::recv"); - - int addr_len = addr.get_size (); - ssize_t status = ACE_OS::recvfrom (this->get_handle (), - (char *) buf, - n, - flags, - (sockaddr *) addr.get_addr (), - (int*) &addr_len); - addr.set_size (addr_len); - - return status; -} - -ssize_t -ACE_ICMP_Socket::recv (void * buf, - size_t n, - int flags, - ACE_Time_Value const * timeout) const -{ - ACE_TRACE ("ACE_ICMP_Socket::recv"); - - return ACE::recv (this->get_handle (), - buf, - n, - flags, - timeout); -} - -int -ACE_ICMP_Socket::open (ACE_Addr const & local, - int protocol, - int reuse_addr) -{ - ACE_TRACE ("ACE_ICMP_Socket::open"); - - // Check if icmp protocol is supported on this host - int proto_number = -1; - protoent *proto; - - if (! (proto = getprotobyname ("icmp"))) - { - ACE_ERROR_RETURN - ((LM_ERROR, - ACE_TEXT ("(%P|%t) ACE_ICMP_Socket::open: %p; %s\n"), - ACE_TEXT ("getprotobyname"), - ACE_TEXT ("ICMP protocol is not properly configured ") - ACE_TEXT ("or not supported.")), - -1); - } - proto_number = proto->p_proto; - - if (proto_number != IPPROTO_ICMP || proto_number != protocol) - { - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("(%P|%t) ACE::ICMP_Socket::open - ") - ACE_TEXT ("only IPPROTO_ICMP protocol is ") - ACE_TEXT ("currently supported.\n")), - -1); - } - - if (ACE_SOCK::open (SOCK_RAW, - AF_INET, - protocol, - reuse_addr) == -1) - { - return -1; - } - - return this->shared_open (local); -} - -int -ACE_ICMP_Socket::shared_open (ACE_Addr const & local) -{ - ACE_TRACE ("ACE_ICMP_Socket::shared_open"); - - int error = 0; - if (local == ACE_Addr::sap_any) - { - if (ACE::bind_port (this->get_handle ()) == -1) - { - error = 1; - } - } - else if (ACE_OS::bind (this->get_handle (), - reinterpret_cast (local.get_addr ()), - local.get_size ()) == -1) - { - error = 1; - } - - if (error != 0) - { - this->close (); - } - - return error ? -1 : 0; -} - -unsigned short -ACE_ICMP_Socket::calculate_checksum (unsigned short * paddress, - int len) -{ - int nleft = len; - int sum = 0; - unsigned short * w = paddress; - unsigned short answer = 0; - while (nleft > 1) - { - sum += *w++; - nleft -= 2; - } - - if (nleft == 1) - { - *((unsigned char *) &answer) = *((unsigned char *) w); - sum += answer; - } - - // add back carry outs from top 16 bits to low 16 bits - sum = (sum >> 16) + (sum & 0xffff); // add hi 16 to low 16 - sum += (sum >> 16); // add carry - answer = ~sum; // truncate to 16 bits - - return (answer); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_ICMP_SUPPORT == 1 */ diff --git a/ACE/ace/ICMP_Socket.h b/ACE/ace/ICMP_Socket.h deleted file mode 100644 index 104ca3ccbc3..00000000000 --- a/ACE/ace/ICMP_Socket.h +++ /dev/null @@ -1,110 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ICMP_Socket.h - * - * $Id$ - * - * @author Robert S. Iakobashvili - * @author Gonzalo A. Diethelm - */ -//============================================================================= - -#ifndef ACE_ICMP_SOCKET_H -#define ACE_ICMP_SOCKET_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_ICMP_SUPPORT) && (ACE_HAS_ICMP_SUPPORT == 1) - -#include "ace/SOCK.h" -#include "ace/Time_Value.h" -#include "ace/os_include/netinet/os_in.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_ICMP_Socket - * - * @brief An abstract class that forms the basis for usage of the ICMP - * protocol (that is, support for things such as ping). - */ -class ACE_Export ACE_ICMP_Socket : public ACE_SOCK -{ -public: - // = Initialization methods. - - /** - * @name Data transfer routines. - * - * Data transfer routines. - */ - //@{ - - /// Send an @a n byte @a buf to the datagram socket (uses - /// @c sendto(3) ). - ssize_t send (void const * buf, - size_t n, - ACE_Addr const & addr, - int flags = 0) const; - - /// Receive an @a n byte @a buf from the datagram socket - /// (uses @c recvfrom(3) ). - ssize_t recv (void * buf, - size_t n, - ACE_Addr & addr, - int flags = 0) const; - - /// TODO: comment - ssize_t recv (void * buf, - size_t n, - int flags, - ACE_Time_Value const * timeout) const; - - //@} - - /// Wrapper around the BSD-style @c socket system call (no QoS). - int open (ACE_Addr const & local = ACE_Addr::sap_any, - int protocol = IPPROTO_ICMP, - int reuse_addr = 0); - - /// Dump the state of object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - - // Protected constructors, so the class can only be derived from. - - /// Default constructor. - ACE_ICMP_Socket (void); - - /// Constructor that takes a local listening address. - ACE_ICMP_Socket (ACE_Addr const & local, - int protocol = IPPROTO_ICMP, - int reuse_addr = 0); - - /// Wrapper around BSD-style @c bind system call. - int shared_open (ACE_Addr const & local); - - /// Calculates check-sum. - unsigned short calculate_checksum (unsigned short* paddress, - int len); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_ICMP_SUPPORT == 1 */ - -#include /**/ "ace/post.h" - -#endif /* ACE_ICMP_SOCKET_H */ diff --git a/ACE/ace/INET_Addr.cpp b/ACE/ace/INET_Addr.cpp deleted file mode 100644 index 76c64ce8b74..00000000000 --- a/ACE/ace/INET_Addr.cpp +++ /dev/null @@ -1,1168 +0,0 @@ -// $Id$ - -// Defines the Internet domain address family address format. - -#include "ace/INET_Addr.h" - -#if !defined (__ACE_INLINE__) -#include "ace/INET_Addr.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/Log_Msg.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_errno.h" -#include "ace/OS_NS_stdlib.h" -#include "ace/OS_Memory.h" -#include "ace/OS_NS_arpa_inet.h" -#include "ace/OS_NS_netdb.h" -#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) - -// Transform the current address into string format. - -int -ACE_INET_Addr::addr_to_string (ACE_TCHAR s[], - size_t size, - int ipaddr_format) const -{ - ACE_TRACE ("ACE_INET_Addr::addr_to_string"); - - // XXX Can we (should we) include the scope id for IPv6 addresses? - char hoststr[MAXHOSTNAMELEN+1]; - - bool result = false; - if (ipaddr_format == 0) - result = (this->get_host_name (hoststr, MAXHOSTNAMELEN+1) == 0); - else - result = (this->get_host_addr (hoststr, MAXHOSTNAMELEN+1) != 0); - - if (!result) - return -1; - - size_t total_len = - ACE_OS::strlen (hoststr) - + 5 // ACE_OS::strlen ("65535"), Assuming the max port number. - + 1 // sizeof (':'), addr/port sep - + 1; // sizeof ('\0'), terminating NUL -#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR) - ACE_TCHAR const *format = ACE_TEXT("%ls:%d"); -#else - ACE_TCHAR const *format = ACE_TEXT("%s:%d"); -#endif /* !ACE_WIN32 && ACE_USES_WCHAR */ -#if defined (ACE_HAS_IPV6) - if (ACE_OS::strchr (hoststr, ACE_TEXT (':')) != 0) - { - total_len += 2; // ACE_OS::strlen ("[]") IPv6 addr frames -# if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR) - format = ACE_TEXT("[%ls]:%d"); -# else - format = ACE_TEXT("[%s]:%d"); -# endif /* !ACE_WIN32 && ACE_USES_WCHAR */ - } -#endif // ACE_HAS_IPV6 - - if (size < total_len) - return -1; - else - ACE_OS::sprintf (s, format, - ACE_TEXT_CHAR_TO_TCHAR (hoststr), - this->get_port_number ()); - return 0; -} - -void -ACE_INET_Addr::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_INET_Addr::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - - ACE_TCHAR s[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 16]; - this->addr_to_string(s, ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 16); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%s"), s)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// Compare two addresses for inequality. - -bool -ACE_INET_Addr::operator != (const ACE_INET_Addr &sap) const -{ - ACE_TRACE ("ACE_INET_Addr::operator !="); - return !((*this) == sap); -} - -// Compare two addresses for equality. - -bool -ACE_INET_Addr::operator == (const ACE_INET_Addr &sap) const -{ - ACE_TRACE ("ACE_INET_Addr::operator =="); - - if (this->get_type () != sap.get_type () - || this->get_size () != sap.get_size ()) - return false; - - return (ACE_OS::memcmp (&this->inet_addr_, - &sap.inet_addr_, - this->get_size ()) == 0); -} - -bool -ACE_INET_Addr::is_ip_equal (const ACE_INET_Addr &sap) const -{ - if (this->get_type () != sap.get_type () - || this->get_size () != sap.get_size ()) - return false; - -#if defined (ACE_HAS_IPV6) - if (this->get_type () == PF_INET6) - { - const unsigned int *addr = - reinterpret_cast(this->ip_addr_pointer()); - const unsigned int *saddr = - reinterpret_cast(sap.ip_addr_pointer()); - return (addr[0] == saddr[0] && - addr[1] == saddr[1] && - addr[2] == saddr[2] && - addr[3] == saddr[3]); - } - else -#endif /* ACE_HAS_IPV6 */ - return this->get_ip_address () == sap.get_ip_address(); -} - - -u_long -ACE_INET_Addr::hash (void) const -{ -#if defined (ACE_HAS_IPV6) - if (this->get_type () == PF_INET6) - { - const unsigned int *addr = (const unsigned int*)this->ip_addr_pointer(); - return addr[0] + addr[1] + addr[2] + addr[3] + this->get_port_number(); - } - else -#endif /* ACE_HAS_IPV6 */ - return this->get_ip_address () + this->get_port_number (); -} - -ACE_INET_Addr::ACE_INET_Addr (void) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - // ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - this->reset (); -} - -int -ACE_INET_Addr::set (const ACE_INET_Addr &sa) -{ - ACE_TRACE ("ACE_INET_Addr::set"); - - if (sa.get_type () == AF_ANY) - // Ugh, this is really a base class, so don't copy it. - ACE_OS::memset (&this->inet_addr_, 0, sizeof (this->inet_addr_)); - else - { - // It's ok to make the copy. - ACE_OS::memcpy (&this->inet_addr_, - &sa.inet_addr_, - sa.get_size ()); - - this->set_type (sa.get_type()); - this->set_size (sa.get_size()); - } - - return 0; -} - -// Transform the string into the current addressing format. - -int -ACE_INET_Addr::string_to_addr (const char s[], int address_family) -{ - ACE_TRACE ("ACE_INET_Addr::string_to_addr"); - int result; - char *ip_buf = 0; - char *ip_addr = 0; - - // Need to make a duplicate since we'll be overwriting the string. - ACE_ALLOCATOR_RETURN (ip_buf, - ACE_OS::strdup (s), - -1); - ip_addr = ip_buf; - // We use strrchr because of IPv6 addresses. - char *port_p = ACE_OS::strrchr (ip_addr, ':'); -#if defined (ACE_HAS_IPV6) - // Check for extended IPv6 format : '[' ']' ':' - if (ip_addr[0] == '[') - { - // find closing bracket - char *cp_pos = ACE_OS::strchr (ip_addr, ']'); - // check for port separator after closing bracket - // if not found leave it, error will come later - if (cp_pos) - { - *cp_pos = '\0'; // blank out ']' - ++ip_addr; // skip over '[' - if (cp_pos[1] == ':') - port_p = cp_pos + 1; - else - port_p = cp_pos; // leads to error on missing port - } - } -#endif /* ACE_HAS_IPV6 */ - - if (port_p == 0) // Assume it's a port number. - { - char *endp = 0; - u_short port = - static_cast (ACE_OS::strtol (ip_addr, &endp, 10)); - if (*endp == '\0') // strtol scanned the entire string - all digits - result = this->set (port, ACE_UINT32 (INADDR_ANY)); - else // port name - result = this->set (ip_addr, ACE_UINT32 (INADDR_ANY)); - } - else - { - *port_p = '\0'; ++port_p; // skip over ':' - - char *endp = 0; - u_short port = static_cast (ACE_OS::strtol (port_p, &endp, 10)); - if (*endp == '\0') // strtol scanned the entire string - all digits - result = this->set (port, ip_addr, 1, address_family); - else - result = this->set (port_p, ip_addr); - } - - ACE_OS::free (ACE_MALLOC_T (ip_buf)); - return result; -} - -int -ACE_INET_Addr::set (const char address[], int address_family) -{ - ACE_TRACE ("ACE_INET_Addr::set"); - return this->string_to_addr (address, address_family); -} - -ACE_INET_Addr::ACE_INET_Addr (const char address[], int address_family) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - this->reset (); - this->set (address, address_family); -} - -#if defined (ACE_HAS_WCHAR) -ACE_INET_Addr::ACE_INET_Addr (const wchar_t address[], int address_family) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - this->reset (); - this->set (address, address_family); -} - -#endif /* ACE_HAS_WCHAR */ - -// Copy constructor. - -ACE_INET_Addr::ACE_INET_Addr (const ACE_INET_Addr &sa) - : ACE_Addr (sa.get_type (), sa.get_size()) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - this->reset (); - this->set (sa); -} - -// Initializes a ACE_INET_Addr from a PORT_NUMBER and a 32 bit Internet -// address. - -int -ACE_INET_Addr::set (u_short port_number, - ACE_UINT32 inet_address, - int encode, - int map) -{ - ACE_TRACE ("ACE_INET_Addr::set"); - this->set_address (reinterpret_cast (&inet_address), - sizeof inet_address, - encode, map); - this->set_port_number (port_number, encode); - - return 0; -} - - -// Initializes a ACE_INET_Addr from a PORT_NUMBER and the remote -// HOST_NAME. - -int -ACE_INET_Addr::set (u_short port_number, - const char host_name[], - int encode, - int address_family) -{ - ACE_TRACE ("ACE_INET_Addr::set"); - - // Yow, someone gave us a NULL host_name! - if (host_name == 0) - { - errno = EINVAL; - return -1; - } - - ACE_OS::memset ((void *) &this->inet_addr_, - 0, - 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()) - address_family = AF_INET; -# endif /* ACE_USES_IPV4_IPV6_MIGRATION */ - if (address_family == AF_UNSPEC || address_family == AF_INET6) - { - hints.ai_family = AF_INET6; - error = ::getaddrinfo (host_name, 0, &hints, &res); - if (error) - { - if (address_family == AF_INET6) - { - if (res) - ::freeaddrinfo(res); - errno = error; - return -1; - } - address_family = AF_INET; - } - } - if (address_family == AF_INET) - { - hints.ai_family = AF_INET; - error = ::getaddrinfo (host_name, 0, &hints, &res); - if (error) - { - if (res) - ::freeaddrinfo(res); - errno = error; - return -1; - } - } - 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 */ - - // IPv6 not supported... insure the family is set to IPv4 - address_family = AF_INET; - this->set_type (address_family); - this->inet_addr_.in4_.sin_family = static_cast (address_family); -#ifdef ACE_HAS_SOCKADDR_IN_SIN_LEN - this->inet_addr_.in4_.sin_len = sizeof (this->inet_addr_.in4_); -#endif - struct in_addr addrv4; - if (ACE_OS::inet_aton (host_name, - &addrv4) == 1) - return this->set (port_number, - encode ? ACE_NTOHL (addrv4.s_addr) : addrv4.s_addr, - 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; // Not the same as errno! - - hostent *hp = ACE_OS::gethostbyname_r (host_name, &hentry, - buf, &h_error); - if (hp == 0) - errno = h_error; -# endif /* ACE_VXWORKS */ - - if (hp == 0) - { - return -1; - } - else - { - (void) ACE_OS::memcpy ((void *) &addrv4.s_addr, - hp->h_addr, - hp->h_length); - return this->set (port_number, - encode ? ACE_NTOHL (addrv4.s_addr) : addrv4.s_addr, - encode); - } - } -#endif /* ACE_HAS_IPV6 */ -} - -// Helper function to get a port number from a port name. - -static int get_port_number_from_name (const char port_name[], - const char protocol[]) -{ - // Maybe port_name is directly a port number? - char *endp = 0; - int port_number = static_cast (ACE_OS::strtol (port_name, &endp, 10)); - - if (port_number >= 0 && *endp == '\0') - { - // Ok, port_name was really a number, and nothing else. We - // store that value as the port number. NOTE: this number must - // be returned in network byte order! - u_short n = static_cast (port_number); - n = ACE_HTONS (n); - return n; - } - - // We try to resolve port number from its name. - -#if defined (ACE_LACKS_GETSERVBYNAME) - port_number = 0; - ACE_UNUSED_ARG (port_name); - ACE_UNUSED_ARG (protocol); -#else - port_number = -1; - servent sentry; - ACE_SERVENT_DATA buf; - servent *sp = ACE_OS::getservbyname_r (port_name, - protocol, - &sentry, - buf); - if (sp != 0) - port_number = sp->s_port; -#endif /* ACE_LACKS_GETSERVBYNAME */ - - return port_number; -} - -// Initializes a ACE_INET_Addr from a and the remote -// . - -int -ACE_INET_Addr::set (const char port_name[], - const char host_name[], - const char protocol[]) -{ - ACE_TRACE ("ACE_INET_Addr::set"); - - int const port_number = get_port_number_from_name (port_name, protocol); - if (port_number == -1) - { - ACE_NOTSUP_RETURN (-1); - } - - int address_family = PF_UNSPEC; -# if defined (ACE_HAS_IPV6) - if (ACE_OS::strcmp (ACE_TEXT_CHAR_TO_TCHAR(protocol), ACE_TEXT ("tcp6")) == 0) - address_family = AF_INET6; -# endif /* ACE_HAS_IPV6 */ - - return this->set (static_cast (port_number), - host_name, 0, address_family); -} - -// Initializes a ACE_INET_Addr from a and a 32 bit -// Internet address. - -int -ACE_INET_Addr::set (const char port_name[], - ACE_UINT32 inet_address, - const char protocol[]) -{ - ACE_TRACE ("ACE_INET_Addr::set"); - - int const port_number = get_port_number_from_name (port_name, protocol); - if (port_number == -1) - { - ACE_NOTSUP_RETURN (-1); - } - - return this->set (static_cast (port_number), - inet_address, 0); -} - -// Creates a ACE_INET_Addr from a PORT_NUMBER and the remote -// HOST_NAME. - -ACE_INET_Addr::ACE_INET_Addr (u_short port_number, - const char host_name[], - int address_family) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - ACE_OS::memset (&this->inet_addr_, 0, sizeof (this->inet_addr_)); - if (this->set (port_number, - host_name, - 1, - address_family) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_INET_Addr::ACE_INET_Addr: %p\n"), - ACE_TEXT_CHAR_TO_TCHAR ((host_name == 0) ? - "" : host_name))); -} - -#if defined (ACE_HAS_WCHAR) -ACE_INET_Addr::ACE_INET_Addr (u_short port_number, - const wchar_t host_name[], - int address_family) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - ACE_OS::memset (&this->inet_addr_, 0, sizeof (this->inet_addr_)); - if (this->set (port_number, - host_name, - 1, - address_family) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_INET_Addr::ACE_INET_Addr: %p\n"), - ACE_TEXT_WCHAR_TO_TCHAR ((host_name == 0) ? - ACE_TEXT_WIDE ("") : - host_name))); -} -#endif /* ACE_HAS_WCHAR */ - -// Creates a ACE_INET_Addr from a sockaddr_in structure. - -int -ACE_INET_Addr::set (const sockaddr_in *addr, int len) -{ - ACE_TRACE ("ACE_INET_Addr::set"); - - if (addr->sin_family == AF_INET) - { - int maxlen = static_cast (sizeof (this->inet_addr_.in4_)); - if (len > maxlen) - len = maxlen; - ACE_OS::memcpy (&this->inet_addr_.in4_, addr, len); - this->base_set (AF_INET, len); - return 0; - } -#if defined (ACE_HAS_IPV6) - else if (addr->sin_family == AF_INET6) - { - int maxlen = static_cast (sizeof (this->inet_addr_.in6_)); - if (len > maxlen) - len = maxlen; - ACE_OS::memcpy (&this->inet_addr_.in6_, addr, len); - this->base_set (AF_INET6, len); - return 0; - } -#endif /* ACE_HAS_IPV6 */ - - errno = EAFNOSUPPORT; - return -1; -} - -// Return the address. - -void * -ACE_INET_Addr::get_addr (void) const -{ - ACE_TRACE ("ACE_INET_Addr::get_addr"); - return (void*)&this->inet_addr_; -} - -void -ACE_INET_Addr::set_addr (void *addr, int len) -{ - this->set_addr (addr, len, 0); -} - -// Set a pointer to the address. -void -ACE_INET_Addr::set_addr (void *addr, int /* len */, int map) -{ - ACE_TRACE ("ACE_INET_Addr::set_addr"); - struct sockaddr_in *getfamily = static_cast (addr); - - if (getfamily->sin_family == AF_INET) - { -#if defined (ACE_HAS_IPV6) - if (map) - this->set_type (AF_INET6); - else -#endif /* ACE_HAS_IPV6 */ - this->set_type (AF_INET); - this->set_port_number (getfamily->sin_port, 0); - this->set_address (reinterpret_cast (&getfamily->sin_addr), - sizeof (getfamily->sin_addr), - 0, map); - } -#if defined (ACE_HAS_IPV6) - else if (getfamily->sin_family == AF_INET6) - { - struct sockaddr_in6 *in6 = static_cast (addr); - this->set_port_number (in6->sin6_port, 0); - this->set_address (reinterpret_cast (&in6->sin6_addr), - sizeof (in6->sin6_addr), - 0); - this->inet_addr_.in6_.sin6_scope_id = in6->sin6_scope_id; - } -#endif // ACE_HAS_IPV6 -} - -// Creates a ACE_INET_Addr from a sockaddr_in structure. - -ACE_INET_Addr::ACE_INET_Addr (const sockaddr_in *addr, int len) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - this->reset (); - this->set (addr, len); -} - -// Creates a ACE_INET_Addr from a PORT_NUMBER and an Internet address. - -ACE_INET_Addr::ACE_INET_Addr (u_short port_number, - ACE_UINT32 inet_address) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - this->reset (); - if (this->set (port_number, inet_address) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_INET_Addr::ACE_INET_Addr"))); -} - -// Creates a ACE_INET_Addr from a PORT_NAME and the remote -// HOST_NAME. - -ACE_INET_Addr::ACE_INET_Addr (const char port_name[], - const char host_name[], - const char protocol[]) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - this->reset (); - if (this->set (port_name, - host_name, - protocol) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_INET_Addr::ACE_INET_Addr"))); -} - -#if defined (ACE_HAS_WCHAR) -ACE_INET_Addr::ACE_INET_Addr (const wchar_t port_name[], - const wchar_t host_name[], - const wchar_t protocol[]) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); - this->reset (); - if (this->set (port_name, - host_name, - protocol) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_INET_Addr::ACE_INET_Addr"))); -} -#endif /* ACE_HAS_WCHAR */ - -// Creates a ACE_INET_Addr from a PORT_NAME and an Internet address. - -ACE_INET_Addr::ACE_INET_Addr (const char port_name[], - ACE_UINT32 inet_address, - const char protocol[]) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); -#if !defined (ACE_LACKS_HTONL) - this->reset (); - if (this->set (port_name, - htonl (inet_address), - protocol) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_INET_Addr::ACE_INET_Addr"))); -#else - ACE_UNUSED_ARG (port_name); - ACE_UNUSED_ARG (inet_address); - ACE_UNUSED_ARG (protocol); -#endif -} - -#if defined (ACE_HAS_WCHAR) -ACE_INET_Addr::ACE_INET_Addr (const wchar_t port_name[], - ACE_UINT32 inet_address, - const wchar_t protocol[]) - : ACE_Addr (determine_type (), sizeof (inet_addr_)) -{ - ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr"); -#if !defined (ACE_LACKS_HTONL) - this->reset (); - if (this->set (port_name, - htonl (inet_address), - protocol) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_INET_Addr::ACE_INET_Addr"))); -#else - ACE_UNUSED_ARG (port_name); - ACE_UNUSED_ARG (inet_address); - ACE_UNUSED_ARG (protocol); -#endif -} -#endif /* ACE_HAS_WCHAR */ - -ACE_INET_Addr::~ACE_INET_Addr (void) -{ -} - -int -ACE_INET_Addr::get_host_name (char hostname[], - size_t len) const -{ - ACE_TRACE ("ACE_INET_Addr::get_host_name"); - - int result; - if (len > 1) - { - result = this->get_host_name_i (hostname,len); - if (result < 0) - { - if (result == -2) - // We know that hostname is nul-terminated - result = -1; - else - { - //result == -1; - // This could be worse than hostname[len -1] = '\0'? - hostname[0] = '\0'; - } - } - } - else - { - if (len == 1) - hostname[0] = '\0'; - result = -1; - } - - return result; -} - -#if defined (ACE_HAS_WCHAR) -int -ACE_INET_Addr::get_host_name (wchar_t hostname[], - size_t len) const -{ - ACE_TRACE ("ACE_INET_Addr::get_host_name"); - - char char_hostname [MAXHOSTNAMELEN + 1]; - - // We have a build in limitation of MAXHOSTNAMELEN - if (len > MAXHOSTNAMELEN + 1) - len = MAXHOSTNAMELEN + 1; - - // Call the char version - int result = this->get_host_name (char_hostname, len); - - // And copy it over, if successful - if (result == 0) - ACE_OS::strcpy (hostname, - ACE_Ascii_To_Wide (char_hostname).wchar_rep ()); - - return result; -} -#endif /* ACE_HAS_WCHAR */ - -// Return the character representation of the hostname. - -const char * -ACE_INET_Addr::get_host_name (void) const -{ - ACE_TRACE ("ACE_INET_Addr::get_host_name"); - - static char name[MAXHOSTNAMELEN + 1]; - if (this->get_host_name (name, MAXHOSTNAMELEN + 1) == -1) - ACE_OS::strcpy (name, ""); - return name; -} - -void -ACE_INET_Addr::set_port_number (u_short port_number, - int encode) -{ - ACE_TRACE ("ACE_INET_Addr::set_port_number"); - - if (encode) - port_number = ACE_HTONS (port_number); - -#if defined (ACE_HAS_IPV6) - if (this->get_type () == AF_INET6) - this->inet_addr_.in6_.sin6_port = port_number; - else -#endif /* ACE_HAS_IPV6 */ - this->inet_addr_.in4_.sin_port = port_number; -} - -// returns -2 when the hostname is truncated -int -ACE_INET_Addr::get_host_name_i (char hostname[], size_t len) const -{ - ACE_TRACE ("ACE_INET_Addr::get_host_name_i"); - -#if defined (ACE_HAS_IPV6) - if ((this->get_type () == PF_INET6 && - 0 == ACE_OS::memcmp (&this->inet_addr_.in6_.sin6_addr, - &in6addr_any, - sizeof (this->inet_addr_.in6_.sin6_addr))) - || - (this->get_type () == PF_INET && - this->inet_addr_.in4_.sin_addr.s_addr == INADDR_ANY)) -#else - if (this->inet_addr_.in4_.sin_addr.s_addr == INADDR_ANY) -#endif /* ACE_HAS_IPV6 */ - { - if (ACE_OS::hostname (hostname, len) == -1) - return -1; - else - return 0; - } - 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 (); - -# if defined (ACE_HAS_IPV6) && defined (ACE_HAS_BROKEN_GETHOSTBYADDR_V4MAPPED) - // Most OS can not handle IPv6-mapped-IPv4 addresses (even - // though they are meant to) so map them back to IPv4 addresses - // before trying to resolve them - in_addr demapped_addr; - if (type == PF_INET6 && - (this->is_ipv4_mapped_ipv6 () || this->is_ipv4_compat_ipv6 ())) - { - ACE_OS::memcpy (&demapped_addr.s_addr, &this->inet_addr_.in6_.sin6_addr.s6_addr[12], 4); - addr = &demapped_addr; - size = sizeof(demapped_addr); - type = PF_INET; - } -# endif /* ACE_HAS_IPV6 */ - -# if defined (DIGITAL_UNIX) && defined (__GNUC__) - hostent * const hp = - ACE_OS::gethostbyaddr (static_cast (addr), size, type); -# else - int h_error; // Not the same as errno! - hostent hentry; - ACE_HOSTENT_DATA buf; - hostent * const hp = - ACE_OS::gethostbyaddr_r (static_cast (addr), - size, - type, - &hentry, - buf, - &h_error); -# endif /* DIGITAL_UNIX */ - - if (hp == 0 || hp->h_name == 0) - return -1; - - if (ACE_OS::strlen (hp->h_name) >= len) - { - // We know the length, so use memcpy - if (len > 0) - { - ACE_OS::memcpy (hostname, hp->h_name, len - 1); - hostname[len-1]= '\0'; - } - errno = ENOSPC; - return -2; // -2 Means that we have a good string - // Using errno looks ok, but ENOSPC could be set on - // other places. - } - - ACE_OS::strcpy (hostname, hp->h_name); - return 0; -#endif /* ACE_VXWORKS */ - } -} - -int ACE_INET_Addr::set_address (const char *ip_addr, - int len, - int encode /* = 1 */, - int map /* = 0 */) -{ - ACE_TRACE ("ACE_INET_Addr::set_address"); - // This is really intended for IPv4. If the object is IPv4, or the type - // hasn't been set but it's a 4-byte address, go ahead. If this is an - // IPv6 object and is requested, refuse. - if (encode && len != 4) - { - errno = EAFNOSUPPORT; - return -1; - } - - if (len == 4) - { - ACE_UINT32 ip4 = *reinterpret_cast (ip_addr); - if (encode) - ip4 = ACE_HTONL (ip4); - - - if (this->get_type () == AF_INET && map == 0) { - this->base_set (AF_INET, sizeof (this->inet_addr_.in4_)); -#ifdef ACE_HAS_SOCKADDR_IN_SIN_LEN - this->inet_addr_.in4_.sin_len = sizeof (this->inet_addr_.in4_); -#endif - this->inet_addr_.in4_.sin_family = AF_INET; - this->set_size (sizeof (this->inet_addr_.in4_)); - ACE_OS::memcpy (&this->inet_addr_.in4_.sin_addr, - &ip4, - len); - } -#if defined (ACE_HAS_IPV6) - else if (map == 0) - { - // this->set_type (AF_INET); - this->base_set (AF_INET, sizeof (this->inet_addr_.in4_)); -#ifdef ACE_HAS_SOCKADDR_IN_SIN_LEN - this->inet_addr_.in4_.sin_len = sizeof (this->inet_addr_.in4_); -#endif - this->inet_addr_.in4_.sin_family = AF_INET; - this->set_size (sizeof (this->inet_addr_.in4_)); - ACE_OS::memcpy (&this->inet_addr_.in4_.sin_addr, - &ip4, len); - } - // If given an IPv4 address to copy to an IPv6 object, map it to - // an IPv4-mapped IPv6 address. - else - { - this->base_set (AF_INET6, sizeof (this->inet_addr_.in6_)); -#ifdef ACE_HAS_SOCKADDR_IN6_SIN6_LEN - this->inet_addr_.in6_.sin6_len = sizeof (this->inet_addr_.in6_); -#endif - this->inet_addr_.in6_.sin6_family = AF_INET6; - this->set_size (sizeof (this->inet_addr_.in6_)); - if (ip4 == ACE_HTONL (INADDR_ANY)) - { - in6_addr const ip6 = in6addr_any; - ACE_OS::memcpy (&this->inet_addr_.in6_.sin6_addr, - &ip6, - sizeof (ip6)); - return 0; - } - - // Build up a 128 bit address. An IPv4-mapped IPv6 address - // is defined as 0:0:0:0:0:ffff:IPv4_address. This is defined - // in RFC 1884 */ - ACE_OS::memset (&this->inet_addr_.in6_.sin6_addr, 0, 16); - this->inet_addr_.in6_.sin6_addr.s6_addr[10] = - this->inet_addr_.in6_.sin6_addr.s6_addr[11] = 0xff; - ACE_OS::memcpy - (&this->inet_addr_.in6_.sin6_addr.s6_addr[12], &ip4, 4); - } -#endif /* ACE_HAS_IPV6 */ - return 0; - } /* end if (len == 4) */ -#if defined (ACE_HAS_IPV6) - else if (len == 16) - { - if (this->get_type () != PF_INET6) - { - errno = EAFNOSUPPORT; - return -1; - } - // We protect ourselves up above so IPv6 must be possible here. - this->base_set (AF_INET6, sizeof (this->inet_addr_.in6_)); - this->inet_addr_.in6_.sin6_family = AF_INET6; -#ifdef ACE_HAS_SOCKADDR_IN6_SIN6_LEN - this->inet_addr_.in6_.sin6_len = sizeof (this->inet_addr_.in6_); -#endif - ACE_OS::memcpy (&this->inet_addr_.in6_.sin6_addr, ip_addr, len); - - return 0; - } /* end len == 16 */ -#endif /* ACE_HAS_IPV6 */ - - // Here with an unrecognized length. - errno = EAFNOSUPPORT; - return -1; - -} - -#if (defined (__linux__) || defined (ACE_WIN32)) && defined (ACE_HAS_IPV6) -int -ACE_INET_Addr::set_interface (const char *intf_name) -{ - if (this->get_type () == PF_INET6 && - (IN6_IS_ADDR_LINKLOCAL (&this->inet_addr_.in6_.sin6_addr) || - IN6_IS_ADDR_MC_LINKLOCAL (&this->inet_addr_.in6_.sin6_addr))) - { -#if defined (__linux__) - this->inet_addr_.in6_.sin6_scope_id = - ACE_OS::if_nametoindex (intf_name); -#else - this->inet_addr_.in6_.sin6_scope_id = - intf_name ? ACE_OS::atoi (intf_name) : 0; -#endif - // check to see if the interface lookup succeeded - if (this->inet_addr_.in6_.sin6_scope_id != 0) - return 0; - else - return -1; - } - else - return 0; - -} -#endif /* __linux && ACE_HAS_IPV6 */ - -const char * -ACE_INET_Addr::get_host_addr (char *dst, int size) const -{ -#if defined (ACE_HAS_IPV6) - if (this->get_type () == AF_INET6) - { - // mcorino@remedy.nl - Aug-26, 2005 - // I don't think this should be done because it results in a decimal address - // representation which is not distinguishable from the IPv4 form which makes - // it impossible to resolve back to an IPv6 INET_Addr without prior knowledge - // that this was such an address to begin with. - - //if (IN6_IS_ADDR_V4MAPPED (&this->inet_addr_.in6_.sin6_addr)) - //{ - // ACE_UINT32 addr; - // addr = this->get_ip_address(); - // addr = ACE_HTONL (addr); - // return ACE_OS::inet_ntop (AF_INET, &addr, dst, size); - //} - -# if defined (ACE_WIN32) - if (0 == ::getnameinfo (reinterpret_cast (&this->inet_addr_.in6_), - this->get_size (), - dst, - size, - 0, 0, // Don't want service name - NI_NUMERICHOST)) - return dst; - ACE_OS::set_errno_to_wsa_last_error (); - return 0; -# else - const char *ch = ACE_OS::inet_ntop (AF_INET6, - &this->inet_addr_.in6_.sin6_addr, - dst, - size); -#if defined (__linux__) - if ((IN6_IS_ADDR_LINKLOCAL (&this->inet_addr_.in6_.sin6_addr) || - IN6_IS_ADDR_MC_LINKLOCAL (&this->inet_addr_.in6_.sin6_addr)) && - this->inet_addr_.in6_.sin6_scope_id != 0) - { - char scope_buf[32]; - ACE_OS::sprintf (scope_buf, "%%%u", this->inet_addr_.in6_.sin6_scope_id); - if ((ACE_OS::strlen (ch)+ACE_OS::strlen (scope_buf)) < (size_t)size) - { - ACE_OS::strcat (dst, scope_buf); - } - } -#endif - return ch; -# endif /* ACE_WIN32 */ - } -#endif /* ACE_HAS_IPV6 */ - -#if defined (ACE_VXWORKS) - ACE_UNUSED_ARG (dst); - ACE_UNUSED_ARG (size); - - // It would be nice to be able to encapsulate this into - // ACE_OS::inet_ntoa(), but that would lead to either inefficiencies - // on vxworks or lack of thread safety. - // - // So, we use the way that vxworks suggests. - ACE_INET_Addr *ncthis = const_cast (this); - inet_ntoa_b(this->inet_addr_.in4_.sin_addr, ncthis->buf_); - ACE_OS::strsncpy (dst, &buf_[0], size); - return &buf_[0]; -#else /* ACE_VXWORKS */ - char *ch = ACE_OS::inet_ntoa (this->inet_addr_.in4_.sin_addr); - ACE_OS::strsncpy (dst, ch, size); - return ch; -#endif -} - -// Return the dotted Internet address. -const char * -ACE_INET_Addr::get_host_addr (void) const -{ - ACE_TRACE ("ACE_INET_Addr::get_host_addr"); -#if defined (ACE_HAS_IPV6) - static char buf[INET6_ADDRSTRLEN]; - return this->get_host_addr (buf, INET6_ADDRSTRLEN); -#else /* ACE_HAS_IPV6 */ -# if defined (ACE_VXWORKS) - // It would be nice to be able to encapsulate this into - // ACE_OS::inet_ntoa(), but that would lead to either inefficiencies - // on vxworks or lack of thread safety. - // - // So, we use the way that vxworks suggests. - ACE_INET_Addr *ncthis = const_cast (this); - inet_ntoa_b (this->inet_addr_.in4_.sin_addr, ncthis->buf_); - return &buf_[0]; -# else /* ACE_VXWORKS */ - return ACE_OS::inet_ntoa (this->inet_addr_.in4_.sin_addr); -# endif /* !ACE_VXWORKS */ -#endif /* !ACE_HAS_IPV6 */ -} - -// Return the 4-byte IP address, converting it into host byte order. -ACE_UINT32 -ACE_INET_Addr::get_ip_address (void) const -{ - ACE_TRACE ("ACE_INET_Addr::get_ip_address"); -#if defined (ACE_HAS_IPV6) - if (this->get_type () == AF_INET6) - { - if (IN6_IS_ADDR_V4MAPPED (&this->inet_addr_.in6_.sin6_addr) || - IN6_IS_ADDR_V4COMPAT (&this->inet_addr_.in6_.sin6_addr) ) - { - ACE_UINT32 addr; - // Return the last 32 bits of the address - char *thisaddrptr = (char*)this->ip_addr_pointer (); - thisaddrptr += 128/8 - 32/8; - ACE_OS::memcpy (&addr, thisaddrptr, sizeof (addr)); - return ACE_NTOHL (addr); - } - - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("ACE_INET_Addr::get_ip_address: address is a IPv6 address not IPv4\n"))); - errno = EAFNOSUPPORT; - return 0; - } -#endif /* ACE_HAS_IPV6 */ - return ACE_NTOHL (ACE_UINT32 (this->inet_addr_.in4_.sin_addr.s_addr)); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/INET_Addr.h b/ACE/ace/INET_Addr.h deleted file mode 100644 index 7098314ad37..00000000000 --- a/ACE/ace/INET_Addr.h +++ /dev/null @@ -1,399 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file INET_Addr.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_INET_ADDR_H -#define ACE_INET_ADDR_H -#include /**/ "ace/pre.h" - -#include "ace/Sock_Connect.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Addr.h" - -#if defined(ACE_VXWORKS) - // Needed to get INET_ADDR_LEN -# include /**/ "inetLib.h" -#endif /* ACE_VXWORKS */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_INET_Addr - * - * @brief Defines a C++ wrapper facade for the Internet domain address - * family format. - */ -class ACE_Export ACE_INET_Addr : public ACE_Addr -{ -public: - // = Initialization methods. - - /// Default constructor. - ACE_INET_Addr (void); - - /// Copy constructor. - ACE_INET_Addr (const ACE_INET_Addr &); - - /// Creates an ACE_INET_Addr from a sockaddr_in structure. - ACE_INET_Addr (const sockaddr_in *addr, int len); - - /// Creates an ACE_INET_Addr from a @a port_number and the remote - /// @a host_name. The port number is assumed to be in host byte order. - /// To set a port already in network byte order, please @see set(). - /// Use address_family to select IPv6 (PF_INET6) vs. IPv4 (PF_INET). - ACE_INET_Addr (u_short port_number, - const char host_name[], - int address_family = AF_UNSPEC); - - /** - * Initializes an ACE_INET_Addr from the @a address, which can be - * "ip-number:port-number" (e.g., "tango.cs.wustl.edu:1234" or - * "128.252.166.57:1234"). If there is no ':' in the @a address it - * is assumed to be a port number, with the IP address being - * INADDR_ANY. - */ - explicit ACE_INET_Addr (const char address[], - int address_family = AF_UNSPEC); - - /** - * Creates an ACE_INET_Addr from a @a port_number and an Internet - * . This method assumes that @a port_number and - * are in host byte order. If you have addressing information in - * network byte order, @see set(). - */ - explicit ACE_INET_Addr (u_short port_number, - ACE_UINT32 ip_addr = INADDR_ANY); - - /// Uses to create an ACE_INET_Addr from a - /// , 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 to create an ACE_INET_Addr from a - * , an Internet , and the @a protocol. This - * method assumes that is in host byte order. - */ - ACE_INET_Addr (const char port_name[], - ACE_UINT32 ip_addr, - const char protocol[] = "tcp"); - -#if defined (ACE_HAS_WCHAR) - ACE_INET_Addr (u_short port_number, - const wchar_t host_name[], - int address_family = AF_UNSPEC); - - explicit ACE_INET_Addr (const wchar_t address[], - int address_family = AF_UNSPEC); - - ACE_INET_Addr (const wchar_t port_name[], - const wchar_t host_name[], - const wchar_t protocol[] = ACE_TEXT_WIDE ("tcp")); - - ACE_INET_Addr (const wchar_t port_name[], - ACE_UINT32 ip_addr, - const wchar_t protocol[] = ACE_TEXT_WIDE ("tcp")); -#endif /* ACE_HAS_WCHAR */ - - /// Default dtor. - ~ACE_INET_Addr (void); - - // = Direct initialization methods. - - // These methods are useful after the object has been constructed. - - /// Initializes from another ACE_INET_Addr. - int set (const ACE_INET_Addr &); - - /** - * Initializes an ACE_INET_Addr from a @a port_number and the - * remote @a host_name. 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 already and are passed straight through. - * address_family can be used to select IPv4/IPv6 if the OS has - * IPv6 capability (ACE_HAS_IPV6 is defined). To specify IPv6, use - * the value AF_INET6. To specify IPv4, use AF_INET. - */ - int set (u_short port_number, - const char host_name[], - int encode = 1, - int address_family = AF_UNSPEC); - - /** - * Initializes an ACE_INET_Addr from a @a port_number and an Internet - * @a ip_addr. If @a encode is non-zero then the port number and IP address - * are converted into network byte order, otherwise they are assumed to be - * in network byte order already and are passed straight through. - * - * If 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, - ACE_UINT32 ip_addr = INADDR_ANY, - int encode = 1, - int map = 0); - - /// Uses to initialize an ACE_INET_Addr from a - /// , the remote @a host_name, and the @a protocol. - int set (const char port_name[], - const char host_name[], - const char protocol[] = "tcp"); - - /** - * Uses to initialize an ACE_INET_Addr from a - * , an , and the @a protocol. This assumes that - * is already in network byte order. - */ - int set (const char port_name[], - ACE_UINT32 ip_addr, - const char protocol[] = "tcp"); - - /** - * Initializes an ACE_INET_Addr from the @a addr, which can be - * "ip-number:port-number" (e.g., "tango.cs.wustl.edu:1234" or - * "128.252.166.57:1234"). If there is no ':' in the @a address it - * is assumed to be a port number, with the IP address being - * INADDR_ANY. - */ - int set (const char addr[], int address_family = AF_UNSPEC); - - /// Creates an ACE_INET_Addr from a sockaddr_in structure. - int set (const sockaddr_in *, - int len); - -#if defined (ACE_HAS_WCHAR) - int set (u_short port_number, - const wchar_t host_name[], - int encode = 1, - int address_family = AF_UNSPEC); - - int set (const wchar_t port_name[], - const wchar_t host_name[], - const wchar_t protocol[] = ACE_TEXT_WIDE ("tcp")); - - int set (const wchar_t port_name[], - ACE_UINT32 ip_addr, - const wchar_t protocol[] = ACE_TEXT_WIDE ("tcp")); - - int set (const wchar_t addr[], int address_family = AF_UNSPEC); -#endif /* ACE_HAS_WCHAR */ - - /// Return a pointer to the underlying network address. - virtual void *get_addr (void) const; - int get_addr_size(void) const; - - /// Set a pointer to the address. - virtual void set_addr (void *, int len); - - /// Set a pointer to the address. - virtual void set_addr (void *, int len, int map); - - /** - * Transform the current ACE_INET_Addr address into string format. - * If is non-0 this produces "ip-number:port-number" - * (e.g., "128.252.166.57:1234"), whereas if is 0 - * this produces "ip-name:port-number" (e.g., - * "tango.cs.wustl.edu:1234"). Returns -1 if the @a size of the - * is too small, else 0. - */ - virtual int addr_to_string (ACE_TCHAR buffer[], - size_t size, - int ipaddr_format = 1) const; - - /** - * Initializes an ACE_INET_Addr from the @a address, which can be - * "ip-addr:port-number" (e.g., "tango.cs.wustl.edu:1234"), - * "ip-addr:port-name" (e.g., "tango.cs.wustl.edu:telnet"), - * "ip-number:port-number" (e.g., "128.252.166.57:1234"), or - * "ip-number:port-name" (e.g., "128.252.166.57:telnet"). If there - * is no ':' in the @a address it is assumed to be a port number, - * with the IP address being INADDR_ANY. - */ - virtual int string_to_addr (const char address[], - int address_family = AF_UNSPEC); - -#if defined (ACE_HAS_WCHAR) - /* - virtual int string_to_addr (const char address[]); - */ -#endif /* ACE_HAS_WCHAR */ - - /** - * Sets the port number without affecting the host name. If - * @a encode is enabled then @a port_number is converted into network - * byte order, otherwise it is assumed to be in network byte order - * already and are passed straight through. - */ - void set_port_number (u_short, - int encode = 1); - - /** - * Sets the address without affecting the port number. If - * @a encode is enabled then is converted into network - * byte order, otherwise it is assumed to be in network byte order - * already and are passed straight through. The size of the address - * is specified in the @a len parameter. - * If is non-zero, IPv6 support has been compiled in, and - * is an IPv4 address, then this address is set to the IPv4-mapped - * IPv6 address of it. - */ - int set_address (const char *ip_addr, - int len, - int encode = 1, - int map = 0); - -#if (defined (__linux__) || defined (ACE_WIN32)) && defined (ACE_HAS_IPV6) - /** - * Sets the interface that should be used for this address. This only has - * an effect when the address is link local, otherwise it does nothing. - */ - int set_interface (const char *intf_name); -#endif /* (__linux__ || ACE_WIN32) && ACE_HAS_IPV6 */ - - /// Return the port number, converting it into host byte-order. - u_short get_port_number (void) const; - - /** - * Return the character representation of the name of the host, - * storing it in the (which is assumed to be - * bytes long). This version is reentrant. If - * is greater than 0 then will be - * NUL-terminated even if -1 is returned. - */ - int get_host_name (char hostname[], - size_t hostnamelen) const; - -#if defined (ACE_HAS_WCHAR) - int get_host_name (wchar_t hostname[], - size_t hostnamelen) const; -#endif /* ACE_HAS_WCHAR */ - - /** - * Return the character representation of the hostname. This - * version is non-reentrant since it returns a pointer to a static - * data area. You should therefore either (1) do a "deep copy" of - * the address returned by get_host_name(), e.g., using strdup() or - * (2) use the "reentrant" version of get_host_name() described - * above. - */ - const char *get_host_name (void) const; - - /** - * Return the "dotted decimal" Internet address representation of - * the hostname storing it in the @a addr (which is assumed to be - * bytes long). This version is reentrant. - */ - const char *get_host_addr (char *addr, int addr_size) const; - - /** - * Return the "dotted decimal" Internet address representation of - * the hostname. This version is non-reentrant since it returns a - * pointer to a static data area. You should therefore either - * (1) do a "deep copy" of the address returned by get_host_addr(), e.g., - * using strdup() or (2) use the "reentrant" version of - * get_host_addr() described above. - */ - const char *get_host_addr (void) const; - - /// Return the 4-byte IP address, converting it into host byte - /// order. - ACE_UINT32 get_ip_address (void) const; - - /// Return @c true if the IP address is INADDR_ANY or IN6ADDR_ANY. - bool is_any (void) const; - - /// Return @c true if the IP address is IPv4/IPv6 loopback address. - bool is_loopback (void) const; - - /// Return @c true if the IP address is IPv4/IPv6 multicast address. - bool is_multicast (void) const; - -#if defined (ACE_HAS_IPV6) - /// Return @c true if the IP address is IPv6 linklocal address. - bool is_linklocal (void) const; - - /// Return @c true if the IP address is IPv4-mapped IPv6 address. - bool is_ipv4_mapped_ipv6 (void) const; - - /// Return @c true if the IP address is IPv4-compatible IPv6 address. - bool is_ipv4_compat_ipv6 (void) const; -#endif /* ACE_HAS_IPV6 */ - - /** - * Returns @c true if @c this is less than @a rhs. In this context, - * "less than" is defined in terms of IP address and TCP port - * number. This operator makes it possible to use @c ACE_INET_Addrs - * in STL maps. - */ - bool operator < (const ACE_INET_Addr &rhs) const; - - /// Compare two addresses for equality. The addresses are considered - /// equal if they contain the same IP address and port number. - bool operator == (const ACE_INET_Addr &SAP) const; - - /// Compare two addresses for inequality. - bool operator != (const ACE_INET_Addr &SAP) const; - - /// A variation of the equality operator, this method only compares the - /// IP address and ignores the port number. - bool is_ip_equal (const ACE_INET_Addr &SAP) const; - - /// Computes and returns hash value. - virtual u_long hash (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Insure that @a hostname is properly null-terminated. - int get_host_name_i (char hostname[], size_t hostnamelen) const; - - // Methods to gain access to the actual address of - // the underlying internet address structure. - void *ip_addr_pointer (void) const; - int ip_addr_size (void) const; - int determine_type (void) const; - - /// Initialize underlying inet_addr_ to default values - void reset (void); - - /// Underlying representation. - /// This union uses the knowledge that the two structures share the - /// first member, sa_family (as all sockaddr structures do). - union - { - sockaddr_in in4_; -#if defined (ACE_HAS_IPV6) - sockaddr_in6 in6_; -#endif /* ACE_HAS_IPV6 */ - } inet_addr_; - -#if defined (ACE_VXWORKS) - char buf_[INET_ADDR_LEN]; -#endif -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/INET_Addr.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_INET_ADDR_H */ diff --git a/ACE/ace/INET_Addr.inl b/ACE/ace/INET_Addr.inl deleted file mode 100644 index a05a80db7fb..00000000000 --- a/ACE/ace/INET_Addr.inl +++ /dev/null @@ -1,257 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - - -#include "ace/OS_NS_string.h" -#include "ace/Global_Macros.h" -#include "ace/OS_NS_arpa_inet.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE void -ACE_INET_Addr::reset (void) -{ - ACE_OS::memset (&this->inet_addr_, 0, sizeof (this->inet_addr_)); - if (this->get_type() == AF_INET) - { -#ifdef ACE_HAS_SOCKADDR_IN_SIN_LEN - this->inet_addr_.in4_.sin_len = sizeof (this->inet_addr_.in4_); -#endif - this->inet_addr_.in4_.sin_family = AF_INET; - } -#if defined (ACE_HAS_IPV6) - else if (this->get_type() == AF_INET6) - { -#ifdef ACE_HAS_SOCKADDR_IN6_SIN6_LEN - this->inet_addr_.in6_.sin6_len = sizeof (this->inet_addr_.in6_); -#endif - this->inet_addr_.in6_.sin6_family = AF_INET6; - } -#endif /* ACE_HAS_IPV6 */ -} - -ACE_INLINE int -ACE_INET_Addr::determine_type (void) const -{ -#if defined (ACE_HAS_IPV6) -# if defined (ACE_USES_IPV4_IPV6_MIGRATION) - return ACE::ipv6_enabled () ? AF_INET6 : AF_INET; -# else - return AF_INET6; -# endif /* ACE_USES_IPV4_IPV6_MIGRATION */ -#else - return AF_INET; -#endif /* ACE_HAS_IPV6 */ -} - -ACE_INLINE void * -ACE_INET_Addr::ip_addr_pointer (void) const -{ -#if defined (ACE_HAS_IPV6) - if (this->get_type () == PF_INET) - return (void*)&this->inet_addr_.in4_.sin_addr; - else - return (void*)&this->inet_addr_.in6_.sin6_addr; -#else - return (void*)&this->inet_addr_.in4_.sin_addr; -#endif -} - -ACE_INLINE int -ACE_INET_Addr::ip_addr_size (void) const -{ - // Since this size value is used to pass to other host db-type - // functions (gethostbyaddr, etc.) the length is of int type. - // Thus, cast all these sizes back to int. They're all well - // within the range of an int anyway. -#if defined (ACE_HAS_IPV6) - if (this->get_type () == PF_INET) - return static_cast (sizeof this->inet_addr_.in4_.sin_addr); - else - return static_cast (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 (sizeof this->inet_addr_.in4_.sin_addr.s_addr); -# else /* _UNICOS */ - return static_cast (sizeof this->inet_addr_.in4_.sin_addr); -# endif /* ! _UNICOS */ -#endif /* ACE_HAS_IPV6 */ -} - -// Return the port number, converting it into host byte order... - -ACE_INLINE u_short -ACE_INET_Addr::get_port_number (void) const -{ - ACE_TRACE ("ACE_INET_Addr::get_port_number"); -#if defined (ACE_LACKS_NTOHS) - ACE_NOTSUP_RETURN (0); -#elif defined (ACE_HAS_IPV6) - if (this->get_type () == PF_INET) - return ntohs (this->inet_addr_.in4_.sin_port); - else - return ntohs (this->inet_addr_.in6_.sin6_port); -#else - return ntohs (this->inet_addr_.in4_.sin_port); -#endif /* ACE_HAS_IPV6 */ -} - -ACE_INLINE int -ACE_INET_Addr::get_addr_size (void) const -{ - ACE_TRACE ("ACE_INET_Addr::get_addr_size"); -#if defined (ACE_HAS_IPV6) - if (this->get_type () == PF_INET) - return sizeof this->inet_addr_.in4_; - else - return sizeof this->inet_addr_.in6_; -#else - return sizeof this->inet_addr_.in4_; -#endif /* ACE_HAS_IPV6 */ -} - -ACE_INLINE bool -ACE_INET_Addr::operator < (const ACE_INET_Addr &rhs) const -{ -#if defined (ACE_HAS_IPV6) - if (this->get_type() != rhs.get_type()) - { - return this->get_type() < rhs.get_type(); - } - - if (this->get_type() == PF_INET6) - { - int memval = ACE_OS::memcmp (this->ip_addr_pointer(), - rhs.ip_addr_pointer(), - this->ip_addr_size()); - - return memval < 0 - || (memval == 0 - && (this->get_port_number() < rhs.get_port_number() - || (this->get_port_number() == rhs.get_port_number() - && this->inet_addr_.in6_.sin6_scope_id < - rhs.inet_addr_.in6_.sin6_scope_id))); - } -#endif - - return this->get_ip_address () < rhs.get_ip_address () - || (this->get_ip_address () == rhs.get_ip_address () - && this->get_port_number () < rhs.get_port_number ()); -} - -#if defined (ACE_HAS_WCHAR) -ACE_INLINE int -ACE_INET_Addr::set (u_short port_number, - const wchar_t host_name[], - int encode, - int address_family) -{ - return this->set (port_number, - ACE_Wide_To_Ascii (host_name).char_rep (), - encode, - address_family); -} - -ACE_INLINE int -ACE_INET_Addr::set (const wchar_t port_name[], - const wchar_t host_name[], - const wchar_t protocol[]) -{ - return this->set (ACE_Wide_To_Ascii (port_name).char_rep (), - ACE_Wide_To_Ascii (host_name).char_rep (), - ACE_Wide_To_Ascii (protocol).char_rep ()); -} - -ACE_INLINE int -ACE_INET_Addr::set (const wchar_t port_name[], - ACE_UINT32 ip_addr, - const wchar_t protocol[]) -{ - return this->set (ACE_Wide_To_Ascii (port_name).char_rep (), - ip_addr, - ACE_Wide_To_Ascii (protocol).char_rep ()); -} - -ACE_INLINE int -ACE_INET_Addr::set (const wchar_t addr[], int address_family) -{ - return this->set (ACE_Wide_To_Ascii (addr).char_rep (), address_family); -} - -#endif /* ACE_HAS_WCHAR */ - -// Return @c true if the IP address is INADDR_ANY or IN6ADDR_ANY. -ACE_INLINE bool -ACE_INET_Addr::is_any (void) const -{ -#if defined (ACE_HAS_IPV6) - if (this->get_type () == AF_INET6) - return IN6_IS_ADDR_UNSPECIFIED (&this->inet_addr_.in6_.sin6_addr); -#endif /* ACE_HAS_IPV6 */ - - return (this->inet_addr_.in4_.sin_addr.s_addr == INADDR_ANY); -} - -// Return @c true if the IP address is IPv4/IPv6 loopback address. -ACE_INLINE bool -ACE_INET_Addr::is_loopback (void) const -{ -#if defined (ACE_HAS_IPV6) - if (this->get_type () == AF_INET6) - return IN6_IS_ADDR_LOOPBACK (&this->inet_addr_.in6_.sin6_addr); -#endif /* ACE_HAS_IPV6 */ - - // RFC 3330 defines loopback as any address with 127.x.x.x - return ((this->get_ip_address () & 0XFF000000) == (INADDR_LOOPBACK & 0XFF000000)); -} - -// Return @c true if the IP address is IPv4/IPv6 multicast address. -ACE_INLINE bool -ACE_INET_Addr::is_multicast (void) const -{ -#if defined (ACE_HAS_IPV6) - if (this->get_type() == AF_INET6) - 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 -} - -#if defined (ACE_HAS_IPV6) -// Return @c true if the IP address is IPv6 linklocal address. -ACE_INLINE bool -ACE_INET_Addr::is_linklocal (void) const -{ - if (this->get_type () == AF_INET6) - return IN6_IS_ADDR_LINKLOCAL (&this->inet_addr_.in6_.sin6_addr); - - return false; -} - -// Return @c true if the IP address is IPv4 mapped IPv6 address. -ACE_INLINE bool -ACE_INET_Addr::is_ipv4_mapped_ipv6 (void) const -{ - if (this->get_type () == AF_INET6) - return IN6_IS_ADDR_V4MAPPED (&this->inet_addr_.in6_.sin6_addr); - - return false; -} - -// Return @c true if the IP address is IPv4-compatible IPv6 address. -ACE_INLINE bool -ACE_INET_Addr::is_ipv4_compat_ipv6 (void) const -{ - if (this->get_type () == AF_INET6) - return IN6_IS_ADDR_V4COMPAT (&this->inet_addr_.in6_.sin6_addr); - - return false; -} -#endif /* ACE_HAS_IPV6 */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/IOStream.cpp b/ACE/ace/IOStream.cpp deleted file mode 100644 index 23790425eeb..00000000000 --- a/ACE/ace/IOStream.cpp +++ /dev/null @@ -1,665 +0,0 @@ -// $Id$ - -#ifndef ACE_IOSTREAM_CPP -#define ACE_IOSTREAM_CPP - -#include "ace/IOStream.h" - -ACE_RCSID(ace, IOStream, "$Id$") - -#if !defined (ACE_LACKS_ACE_IOSTREAM) - -# include "ace/OS_NS_errno.h" -# include "ace/OS_Memory.h" - -/////////////////////////////////////////////////////////////////////////// - -/* Here's a simple example of how iostream's non-virtual operators can - get you in a mess: - - class myiostream : public iostream - { - public: - myiostream& operator>> (String & s) - { - ... - } - }; - - ... - - int i; - String s; - myiostream foo (...); - - foo >> s; - // OK - // invokes myiostream::operator>> (String&) returning myiostream& - - foo >> i; - // OK - // invokes iostream::operator>> (int&) returning iostream& - - foo >> i >> s; - // BAD - // invokes iostream::operator>> (int&) then iostream::operator>> (String&) - // - // What has happened is that the first >> is invoked on the base class and returns - // a reference to iostream. The second >> has no idea of the ACE_IOStream and - // gets invoked on iostream. Probably NOT what you wanted! - - - // In order to make all of this work the way you want, you have to do this: - - class myiostream : public iostream - { - public: - myiostream& operator>> (int & i) - { - return ((myiostream&)iostream::operator>> (i)); - } - - myiostream& operator>> (String & s) - { - ... - } - }; - - ... - - int i; - String s; - myiostream foo (...); - - foo >> s; - // OK - // invokes myiostream::operator>> (String&) returning myiostream& - - foo >> i; - // OK - // invokes myiostream::operator>> (int&) returning myiostream& - - - foo >> i >> s; - // OK - // Because you provided operator>> (int&) in class myiostream, that - // function will be invoked by the first >>. Since it returns - // a myiostream&, the second >> will be invoked as desired. */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_HANDLE -ACE_Streambuf::get_handle (void) -{ - return 0; -} - -ACE_Time_Value * -ACE_Streambuf::recv_timeout (ACE_Time_Value *tv) -{ - ACE_Time_Value * rval = recv_timeout_; - if (tv) - { - recv_timeout_value_ = *tv; - recv_timeout_ = &recv_timeout_value_; - } - else - recv_timeout_ = 0; - - return rval; -} - -int -ACE_Streambuf::underflow (void) -{ - // If input mode is not set, any attempt to read from the stream is - // a failure. - - if (ACE_BIT_DISABLED (mode_, ios::in)) - return EOF; - - // If base () is empty then this is the first time any get/put - // operation has been attempted on the stream. - - if (!this->base ()) - { - // Set base () to use our private read buffer. The arguments are: - // beginning of the buffer (base ()) - // one-beyond the end of the buffer (ebase ()) - // should base () be deleted on destruction - // - // We have to say "no" to the third parameter because we want to - // explicitly handle deletion of the TWO buffers at destruction. - - setb (this->eback_saved_, - this->eback_saved_ + streambuf_size_, 0); - - // Remember that we are now in getMode. This will help us if - // we're called prior to a mode change as well as helping us - // when the mode does change. - this->cur_mode_ = this->get_mode_; - // Using the new values for base (), initialize the get area. - // This simply sets eback (), gptr () and egptr () described - // earlier. - setg (base (), base (), base ()); - - // Set the put buffer such that puts will be disabled. Any - // attempt to put data will now cause overflow to be invoked. - setp (0, 0); - } - else // base () has been initialized already... - { - // If we are in put_mode_ now, then it is time to switch to get_mode_ - // - // 1. get rid of any pending output - // 2. rearrange base () to use our half of the buffer - // 3. reset the mode - // - if (this->cur_mode_ == this->put_mode_) - { - // Dump any pending output to the peer. This is not really - // necessary because of the dual-buffer arrangement we've - // set up but intuitively it makes sense to send the pending - // data before we request data since the peer will probably - // need what we're sending before it can respond. - if (out_waiting () && syncout () == EOF) - return EOF; - - if( ! pbase() ) - { - delete [] pbase_saved_; - (void) reset_put_buffer(); - } - else - { - // We're about to disable put mode but before we do - // that, we want to preserve it's state. - this->pbase_saved_ = pbase (); - this->pptr_saved_ = pptr (); - this->epptr_saved_ = epptr (); - } - - // Disable put mode as described in the constructor. - setp (0, 0); - - // Like the case where base () is false, we now point base - // () to use our private get buffer. - setb (this->eback_saved_, - this->eback_saved_ + streambuf_size_, - 0); - - // And restore the previous state of the get pointers. - - setg (this->eback_saved_, this->gptr_saved_, - this->egptr_saved_); - - // Finally, set our mode so that we don't get back into this - // if () and so that overflow can operate correctly. - cur_mode_ = get_mode_; - } - - // There could be data in the input buffer if we switched to put - // mode before reading everything. In that case, we take this - // opportunity to feed it back to the iostream. - if (in_avail ()) - // Remember that we return an int so that we can give back - // EOF. The explicit cast prevents us from returning a signed - // char when we're not returning EOF. - return (u_char) *gptr (); - } - - // We really shouldn't be here unless there is a lack of data in the - // read buffer. So... go get some more data from the peer. - - int result = fillbuf (); - - // Fillbuf will give us EOF if there was an error with the peer. In - // that case, we can do no more input. - - if (EOF == result) - { - // Disable ourselves and return failure to the iostream. That - // should result in a call to have oursleves closed. - setg (0, 0, 0); - return EOF; - } - - // Return the next available character in the input buffer. Again, - // we protect against sign extension. - - return (u_char) *gptr (); -} - -// Much of this is similar to underflow. I'll just hit the highlights -// rather than repeating a lot of what you've already seen. - -int -ACE_Streambuf::overflow (int c) -{ - // Check to see if output is allowed at all. - if (! (mode_ & ios::out)) - return EOF; - - if (!base ()) - { - // Set base () to use put's private buffer. - // - setb (this->pbase_saved_, - this->pbase_saved_ + streambuf_size_, 0); - - // Set the mode for optimization. - this->cur_mode_ = this->put_mode_; - // Set the put area using the new base () values. - setp (base (), ebuf ()); - - // Disable the get area. - setg (0, 0, 0); - } - else // We're already reading or writing - { - // If we're coming out of get mode... - if (this->cur_mode_ == this->get_mode_) - { - // --> JCEJ 6/6/98 - if (! eback()) - { - /* Something has happened to cause the streambuf - to get rid of our get area. - We could probably do this a bit cleaner but - this method is sure to cleanup the bits and - pieces. - */ - delete [] eback_saved_; - (void) reset_get_buffer(); - } - else - { - // Save the current get mode values - this->eback_saved_ = eback (); - this->gptr_saved_ = gptr (); - this->egptr_saved_ = egptr (); - } - // <-- JCEJ 6/6/98 - - // then disable the get buffer - setg (0, 0, 0); - - // Reconfigure base () and restore the put pointers. - setb (pbase_saved_, pbase_saved_ + streambuf_size_, 0); - setp (base (), ebuf ()); - - // Save the new mode. - this->cur_mode_ = this->put_mode_; - } - - // If there is output to be flushed, do so now. We shouldn't - // get here unless this is the case... - - if (out_waiting () && EOF == syncout ()) - return EOF; - } - - // If we're not putting EOF, then we have to deal with the character - // that is being put. Perhaps we should do something special with EOF??? - - if (c != EOF) - { - // We've already written any data that may have been in the - // buffer, so we're guaranteed to have room in the buffer for - // this new information. So... we add it to the buffer and - // adjust our 'next' pointer acordingly. - *pptr () = (char) c; - pbump (1); - } - - return 0; -} - -// syncin - -int -ACE_Streambuf::syncin (void) -{ - // As discussed, there really isn't any way to sync input from a - // socket-like device. We specifially override this base-class - // function so that it won't do anything evil to us. - return 0; -} - -// syncout - -int -ACE_Streambuf::syncout (void) -{ - // Unlike syncin, syncout is a doable thing. All we have to do is - // write whatever is in the output buffer to the peer. flushbuf () - // is how we do it. - - if (flushbuf () == EOF) - return EOF; - else - return 0; -} - -int -ACE_Streambuf::sync (void) -{ - // sync () is fairly traditional in that it syncs both input and - // output. We could have omitted the call to syncin () but someday, - // we may want it to do something. - - syncin (); - - // Don't bother syncing the output unless there is data to be - // sent... - - if (out_waiting ()) - return syncout (); - else - return 0; -} - -// flushbuf - -int -ACE_Streambuf::flushbuf (void) -{ - // pptr () is one character beyond the last character put into the - // buffer. pbase () points to the beginning of the put buffer. - // Unless pptr () is greater than pbase () there is nothing to be - // sent to the peer. - - if (pptr () <= pbase ()) - return 0; - - // 4/12/97 -- JCEJ - // Kludge!!! - // If the remote side shuts down the connection, an attempt to send - // () to the remote will result in the message 'Broken Pipe' I think - // this is an OS message, I've tracked it down to the ACE_OS::write - // () function. That's the last one to be called before the - // message. I can only test this on Linux though, so I don't know - // how other systems will react. - // - // To get around this gracefully, I do a PEEK recv () with an - // immediate (nearly) timeout. recv () is much more graceful on - // it's failure. If we get -1 from recv () not due to timeout then - // we know we're SOL. - // - // Q: Is 'errno' threadsafe? Should the section below be a - // critical section? - // - // char tbuf[1]; - // ACE_Time_Value to (0,1); - // if (this->recv (tbuf, 1, MSG_PEEK, &to) == -1) - // { - // if (errno != ETIME) - // { - // perror ("OOPS preparing to send to peer"); - // return EOF; - // } - // } - // - // The correct way to handle this is for the application to trap - // (and ignore?) SIGPIPE. Thanks to Amos Shapira for reminding me - // of this. - - // Starting at the beginning of the buffer, send as much data as - // there is waiting. send guarantees that all of the data will be - // sent or an error will be returned. - - if (this->send (pbase (), pptr () - pbase ()) == -1) - return EOF; - - // Now that we've sent everything in the output buffer, we reset the - // buffer pointers to appear empty. - setp (base (), ebuf ()); - - return 0; -} - -int -ACE_Streambuf::get_one_byte (void) -{ - this->timeout_ = 0; - - // The recv function will return immediately if there is no data - // waiting. So, we use recv_n to wait for exactly one byte to come - // from the peer. Later, we can use recv to see if there is - // anything else in the buffer. (Ok, we could use flags to tell it - // to block but I like this better.) - - if (this->recv_n (base (), 1, MSG_PEEK, this->recv_timeout_) != 1) - { - if (errno == ETIME) - this->timeout_ = 1; - return EOF; - } - else - return 1; -} - -// This will be called when the read (get) buffer has been exhausted -// (ie -- gptr == egptr). - -int -ACE_Streambuf::fillbuf (void) -{ - // Invoke recv_n to get exactly one byte from the remote. This will - // block until something shows up. - - if (get_one_byte () == EOF) - return EOF; - - // Now, get whatever else may be in the buffer. This will return if - // there is nothing in the buffer. - - int bc = this->recv (base (), blen (), this->recv_timeout_); - - // recv will give us -1 if there was a problem. If there was - // nothing waiting to be read, it will give us 0. That isn't an - // error. - - if (bc < 0) - { - if (errno == ETIME) - this->timeout_ = 1; - return EOF; - } - - // Move the get pointer to reflect the number of bytes we just read. - - setg (base (), base (), base () + bc); - - // Return the byte-read-count including the one from . - return bc; -} - -ACE_Streambuf::ACE_Streambuf (u_int streambuf_size, int io_mode) - : eback_saved_ (0), // to avoid Purify UMR - pbase_saved_ (0), // to avoid Purify UMR - get_mode_ (1), - put_mode_ (2), - mode_ (io_mode), - streambuf_size_ (streambuf_size), - recv_timeout_ (0) -{ - (void)reset_get_buffer (); - (void)reset_put_buffer (); -} - -u_int -ACE_Streambuf::streambuf_size (void) -{ - return streambuf_size_; -} - -// Return the number of bytes not yet gotten. eback + get_waiting = -// gptr. - -u_int -ACE_Streambuf::get_waiting (void) -{ - return this->gptr_saved_ - this->eback_saved_; -} - -// Return the number of bytes in the get area (includes some already -// gotten); eback + get_avail = egptr. - -u_int -ACE_Streambuf::get_avail (void) -{ - return this->egptr_saved_ - this->eback_saved_; -} - -// Return the number of bytes to be 'put' onto the stream media. -// pbase + put_avail = pptr. - -u_int -ACE_Streambuf::put_avail (void) -{ - return this->pptr_saved_ - this->pbase_saved_; -} - -// Typical usage: -// -// u_int newGptr = otherStream->get_waiting (); -// u_int newEgptr = otherStream->get_avail (); -// char * newBuf = otherStream->reset_get_buffer (); -// char * oldgetbuf = myStream->reset_get_buffer (newBuf, otherStream->streambuf_size (), newGptr, newEgptr); -// -// 'myStream' now has the get buffer of 'otherStream' and can use it in any way. -// 'otherStream' now has a new, empty get buffer. - -char * -ACE_Streambuf::reset_get_buffer (char *newBuffer, - u_int _streambuf_size, - u_int _gptr, - u_int _egptr) -{ - char * rval = this->eback_saved_; - - // The get area is where the iostream will get data from. This is - // our read buffer. There are three pointers which describe the - // read buffer: - // - // eback () - The beginning of the buffer. Also the furthest - // point at which putbacks can be done. Hence the name. - // - // gptr () - Where the next character is to be got from. - // - // egptr () - One position beyond the last get-able character. - // - // So that we can switch quicky from read to write mode without - // any data copying, we keep copies of these three pointers in - // the variables below. Initially, they all point to the beginning - // of our read-dedicated buffer. - // - if (newBuffer) - { - if (streambuf_size_ != _streambuf_size) - return 0; - this->eback_saved_ = newBuffer; - } - else - ACE_NEW_RETURN (this->eback_saved_, - char[streambuf_size_], - 0); - - this->gptr_saved_ = this->eback_saved_ + _gptr; - this->egptr_saved_ = this->eback_saved_ + _egptr; - - // Disable the get area initially. This will cause underflow to be - // invoked on the first get operation. - setg (0, 0, 0); - - reset_base (); - - return rval; -} - -// Typical usage: -// -// u_int newPptr = otherStream->put_avail (); -// char * newBuf = otherStream->reset_put_buffer (); -// char * oldputbuf = otherStream->reset_put_buffer (newBuf, otherStream->streambuf_size (), newPptr); - -char * -ACE_Streambuf::reset_put_buffer (char *newBuffer, - u_int _streambuf_size, - u_int _pptr) -{ - char *rval = this->pbase_saved_; - - // The put area is where the iostream will put data that needs to be - // sent to the peer. This becomes our write buffer. The three - // pointers which maintain this area are: - // - // pbase () - The beginning of the put area. - // - // pptr () - Where the next character is to be put. - // - // epptr () - One beyond the last valid position for putting. - // - // Again to switch quickly between modes, we keep copies of - // these three pointers. - // - if (newBuffer) - { - if (streambuf_size_ != _streambuf_size) - return 0; - this->pbase_saved_ = newBuffer; - } - else - ACE_NEW_RETURN (this->pbase_saved_, - char[streambuf_size_], - 0); - - this->pptr_saved_ = this->pbase_saved_ + _pptr; - this->epptr_saved_ = this->pbase_saved_ + streambuf_size_; - - // Disable the put area. Overflow will be called by the first call - // to any put operator. - setp (0, 0); - - reset_base (); - - return rval; -} - -void -ACE_Streambuf::reset_base (void) -{ - // Until we experience the first get or put operation, we do not - // know what our current IO mode is. - this->cur_mode_ = 0; - - // The common area used for reading and writting is called "base". - // We initialize it this way so that the first get/put operation - // will have to "allocate" base. This allocation will set base to - // the appropriate specific buffer and set the mode to the correct - // value. - setb (0, 0); -} - -// If the default allocation strategey 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. - -ACE_Streambuf::~ACE_Streambuf (void) -{ - delete [] this->eback_saved_; - delete [] this->pbase_saved_; -} - -u_char ACE_Streambuf::timeout (void) -{ - u_char rval = this->timeout_; - this->timeout_ = 0; - return rval; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* !ACE_LACKS_ACE_IOSTREAM */ -#endif /* ACE_IOSTREAM_CPP */ diff --git a/ACE/ace/IOStream.h b/ACE/ace/IOStream.h deleted file mode 100644 index c8b3f00c541..00000000000 --- a/ACE/ace/IOStream.h +++ /dev/null @@ -1,512 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file IOStream.h - * - * $Id$ - * - * @author James CE Johnson - * @author Jim Crossley - */ -//============================================================================= - -#ifndef ACE_IOSTREAM_H -#define ACE_IOSTREAM_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// Needed on Windows for streambuf -// FUZZ: disable check_for_streams_include -#include "ace/streams.h" - -// This is a temporary restriction - ACE_IOStream is only enabled if the -// compiler does not supply the standard C++ library (and standard iostreams) -// or, if it does, the platform is explicitly set to use old iostreams -// by its config.h file. -// This restriction is recorded in Bugzilla entry 857. -#if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY == 1) -# if !defined (ACE_USES_OLD_IOSTREAMS) && !defined (ACE_LACKS_ACE_IOSTREAM) -# define ACE_LACKS_ACE_IOSTREAM -# endif /* !ACE_USES_OLD_IOSTREAMS && !ACE_LACKS_ACE_IOSTREAM */ -#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ - -#if !defined (ACE_LACKS_ACE_IOSTREAM) - -# if defined (ACE_HAS_STRING_CLASS) -# if defined (ACE_WIN32) && defined (_MSC_VER) -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef CString ACE_IOStream_String; -ACE_END_VERSIONED_NAMESPACE_DECL -# else -# if !defined (ACE_HAS_STDCPP_STL_INCLUDES) -#include /**/ -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef String ACE_IOStream_String; -ACE_END_VERSIONED_NAMESPACE_DECL -# else -# include /**/ - -# if defined(ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef std::string ACE_IOStream_String; -ACE_END_VERSIONED_NAMESPACE_DECL -# else -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef string ACE_IOStream_String; -ACE_END_VERSIONED_NAMESPACE_DECL -# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */ -# endif /* ! ACE_HAS_STDCPP_STL_INCLUDES */ -# endif /* ACE_WIN32 && defined (_MSC_VER) */ - -# if defined (__DECCXX_VER) -# if __DECCXX_VER < 50700000 -# include /**/ -# else -# include /**/ -# endif /* __DECCXX_VER < 50700000 */ -# endif /* __DECCXX_VER */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Export ACE_Quoted_String : public ACE_IOStream_String -{ -public: - inline ACE_Quoted_String (void) { *this = ""; } - inline ACE_Quoted_String (const char *c) { *this = ACE_IOStream_String (c); } - inline ACE_Quoted_String (const ACE_IOStream_String &s) { *this = s; } - inline ACE_Quoted_String &operator= (const ACE_IOStream_String& s) - { - return (ACE_Quoted_String &) ACE_IOStream_String::operator= (s); - } - inline ACE_Quoted_String &operator = (const char c) { - return (ACE_Quoted_String &) ACE_IOStream_String::operator= (c); - } - inline ACE_Quoted_String &operator = (const char *c) { - return (ACE_Quoted_String &) ACE_IOStream_String::operator= (c); - } - inline bool operator < (const ACE_Quoted_String &s) const { - return *(ACE_IOStream_String *) this < (ACE_IOStream_String) s; - } -# if defined (ACE_WIN32) && defined (_MSC_VER) - inline int length (void) { return this->GetLength (); } -# endif /* ACE_WIN32 && defined (_MSC_VER) */ -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -# endif /* ACE_HAS_STRING_CLASS */ - -# include "ace/Time_Value.h" -# include "ace/os_include/sys/os_types.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Streambuf - * - * @brief Create your custom streambuf by providing and ACE_*_Stream - * object to this template. I have tested it with - * ACE_SOCK_Stream and it should work fine for others as well. - * - * For any iostream object, the real work is done by the - * underlying streambuf class. That is what we create here. - * A streambuf has an internal buffer area into which data is - * read and written as the iostream requests and provides data. - * At some point during the read process, the iostream will - * realize that the streambuf has no more data. The underflow - * function of the streambuf is then called. - * Likewise, during the write process, the iostream will - * eventually notice that the streabuf's buffer has become full - * and will invoke the overflow function. - * The empty/full state of the read/write "buffers" are - * controled by two sets pointers. One set is dedicated to - * read, the other to write. These pointers, in turn, reference - * a common buffer that is to be shared by both read and write - * operations. It is this common buffer to which data is - * written and from which it is read. - * The common buffer is used by functions of the streambuf as - * well as the iostream. Because of this and the fact that it - * is "shared" by both read and write operators, there is a - * danger of data corruption if read and write operations are - * allowed to take place "at the same time". - * To prevent data corruption, we manipulate the read and write - * pointer sets so that the streambuf is in either a read-mode - * or write-mode at all times and can never be in both modes at - * the same time. - * In the constructor: set the read and write sets to NULL This - * causes the underflow or overflow operators to be invoked at - * the first IO activity of the iostream. - * In the underflow function we arrange for the common buffer to - * reference our read buffer and for the write pointer set to be - * disabled. If a write operation is performed by the iostream - * this will cause the overflow function to be invoked. - * In the overflow function we arrange for the common buffer to - * reference our write buffer and for the read pointer set to be - * disabled. This causes the underflow function to be invoked - * when the iostream "changes our mode". - * The overflow function will also invoke the send_n function to - * flush the buffered data to our peer. Similarly, the sync and - * syncout functions will cause send_n to be invoked to send the - * data. - * Since socket's and the like do not support seeking, there can - * be no method for "syncing" the input. However, since we - * maintain separate read/write buffers, no data is lost by - * "syncing" the input. It simply remains buffered. - */ -class ACE_Export ACE_Streambuf : public streambuf -{ -public: - - /** - * If the default allocation strategey 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. - */ - virtual ~ACE_Streambuf (void); - - /// Get the current Time_Value pointer and provide a new one. - ACE_Time_Value *recv_timeout (ACE_Time_Value *tv = 0); - - /** - * Use this to allocate a new/different buffer for put operations. - * If you do not provide a buffer pointer, one will be allocated. - * That is the preferred method. If you do provide a buffer, the - * size must match that being used by the get buffer. If - * successful, you will receive a pointer to the current put buffer. - * It is your responsibility to delete this memory when you are done - * with it. - */ - char *reset_put_buffer (char *newBuffer = 0, - u_int _streambuf_size = 0, - u_int _pptr = 0 ); - - /// Return the number of bytes to be 'put' onto the stream media. - /// pbase + put_avail = pptr - u_int put_avail (void); - - /** - * Use this to allocate a new/different buffer for get operations. - * If you do not provide a buffer pointer, one will be allocated. - * That is the preferred method. If you do provide a buffer, the - * size must match that being used by the put buffer. If - * successful, you will receive a pointer to the current get buffer. - * It is your responsibility to delete this memory when you are done - * with it. - */ - char *reset_get_buffer (char *newBuffer = 0, - u_int _streambuf_size = 0, - u_int _gptr = 0, - u_int _egptr = 0); - - /// Return the number of bytes not yet gotten. eback + get_waiting = - /// gptr - u_int get_waiting (void); - - /// Return the number of bytes in the get area (includes some already - /// gotten); eback + get_avail = egptr - u_int get_avail (void); - - /// Query the streambuf for the size of its buffers. - u_int streambuf_size (void); - - /// Did we take an error because of an IO operation timeout? - /// @note Invoking this resets the flag. - u_char timeout (void); - -protected: - ACE_Streambuf (u_int streambuf_size, - int io_mode); - - /// Sync both input and output. See syncin/syncout below for - /// descriptions. - virtual int sync (void); - - // = Signatures for the underflow/overflow discussed above. - virtual int underflow (void); - - /// The overflow function receives the character which caused the - /// overflow. - virtual int overflow (int c = EOF); - - /// Resets the pointer and streambuf mode. This is used - /// internally when get/put buffers are allocatd. - void reset_base (void); - -protected: - // = Two pointer sets for manipulating the read/write areas. - char *eback_saved_; - char *gptr_saved_; - char *egptr_saved_; - char *pbase_saved_; - char *pptr_saved_; - char *epptr_saved_; - - // = With cur_mode_ we keep track of our current IO mode. - - // This helps us to optimize the underflow/overflow functions. - u_char cur_mode_; - const u_char get_mode_; - const u_char put_mode_; - - /// mode tells us if we're working for an istream, ostream, or - /// iostream. - int mode_; - - /// This defines the size of the input and output buffers. It can be - /// set by the object constructor. - const u_int streambuf_size_; - - /// Did we take an error because of an IO operation timeout? - u_char timeout_; - - /// We want to allow the user to provide Time_Value pointers to - /// prevent infinite blocking while waiting to receive data. - ACE_Time_Value recv_timeout_value_; - ACE_Time_Value *recv_timeout_; - - /** - * syncin is called when the input needs to be synced with the - * source file. In a filebuf, this results in the system - * call being used. We can't do that on socket-like connections, so - * this does basically nothing. That's safe because we have a - * separate read buffer to maintain the already-read data. In a - * filebuf, the single common buffer is used forcing the - * call. - */ - int syncin (void); - - /// 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 - /// because it gets used sometimes in different context. - int flushbuf (void); - - /** - * fillbuf is called in a couple of places. This is the worker of - * underflow. It will attempt to fill the read buffer from the - * peer. - */ - int fillbuf (void); - - /** - * Used by fillbuf and others to get exactly one byte from the peer. - * recv_n is used to be sure we block until something is available. - * It is virtual because we really need to override it for - * datagram-derived objects. - */ - virtual int get_one_byte (void); - - /** - * Stream connections and "unconnected connections" (ie -- - * datagrams) need to work just a little differently. We derive - * custom Streambuf objects for them and provide these functions at - * that time. - */ - virtual ssize_t send (char *buf, - ssize_t len) = 0; - virtual ssize_t recv (char *buf, - ssize_t len, - ACE_Time_Value *tv = 0) = 0; - virtual ssize_t recv (char *buf, - ssize_t len, - int flags, - ACE_Time_Value *tv = 0) = 0; - virtual ssize_t recv_n (char *buf, - ssize_t len, - int flags = 0, - ACE_Time_Value *tv = 0) = 0; - - virtual ACE_HANDLE get_handle (void); - -# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0) && !defined (ACE_USES_OLD_IOSTREAMS) - char *base (void) const - { - return cur_mode_ == get_mode_ ? eback_saved_ - : cur_mode_ == put_mode_ ? pbase_saved_ - : 0; - } - char *ebuf (void) const - { - return cur_mode_ == 0 ? 0 : base () + streambuf_size_; - } - - int blen (void) const - { - return streambuf_size_; - } - - void setb (char* b, char* eb, int /* a */=0) - { - setbuf (b, (eb - b)); - } - - int out_waiting (void) - { - return pptr () - pbase (); - } -# endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -/////////////////////////////////////////////////////////////////////////// - -// These typedefs are provided by G++ (on some systems?) without the -// trailing '_'. Since we can't count on 'em, I've defined them to -// what GNU wants here. -// -typedef ios& (*__manip_)(ios&); -typedef istream& (*__imanip_)(istream&); -typedef ostream& (*__omanip_)(ostream&); - -// Trying to do something like is shown below instead of using the -// __*manip typedefs causes Linux do segfault when "< and functions are used. - -#define GET_SIG(MT,DT) inline virtual MT& operator>> (DT v) -# if (defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510) -#define GET_CODE { \ - if (ipfx (0)) \ - { \ - (*((istream*)this)) >> (v); \ - } \ - isfx (); \ - return *this; \ - } -# else -#define GET_CODE { \ - if (ipfx (0)) \ - { \ - iostream::operator>> (v); \ - } \ - isfx (); \ - return *this; \ - } -# endif -#define GET_PROT(MT,DT,CODE) GET_SIG(MT,DT) CODE -#define GET_FUNC(MT,DT) GET_PROT(MT,DT,GET_CODE) - -// This macro defines the put operator for class MT into datatype DT. -// We will use it below to quickly override most (all?) iostream put -// operators. Notice how the and functions are used. - -#define PUT_SIG(MT,DT) inline virtual MT& operator<< (DT v) -# if (defined (__SUNPRO_CC) && __SUNPRO_CC > 0x510) -#define PUT_CODE { \ - if (opfx ()) \ - { \ - (*((ostream *) this)) << (v); \ - } \ - osfx (); \ - return *this; \ - } -# else -#define PUT_CODE { \ - if (opfx ()) \ - { \ - iostream::operator<< (v); \ - } \ - osfx (); \ - return *this; \ - } -# endif -#define PUT_PROT(MT,DT,CODE) PUT_SIG(MT,DT) CODE -#define PUT_FUNC(MT,DT) PUT_PROT(MT,DT,PUT_CODE) - - -// These are necessary in case somebody wants to derive from us and -// override one of these with a custom approach. - -# if defined (ACE_LACKS_CHAR_RIGHT_SHIFTS) -#define GET_FUNC_SET0(MT,CODE,CODE2) \ - GET_PROT(MT,short &,CODE) \ - GET_PROT(MT,u_short &,CODE) \ - GET_PROT(MT,int &,CODE) \ - GET_PROT(MT,u_int &,CODE) \ - GET_PROT(MT,long &,CODE) \ - GET_PROT(MT,u_long &,CODE) \ - GET_PROT(MT,float &,CODE) \ - GET_PROT(MT,double &,CODE) \ - inline virtual MT& operator>>(__omanip_ func) CODE2 \ - inline virtual MT& operator>>(__manip_ func) CODE2 -# else -#define GET_FUNC_SET0(MT,CODE,CODE2) \ - GET_PROT(MT,short &,CODE) \ - GET_PROT(MT,u_short &,CODE) \ - GET_PROT(MT,int &,CODE) \ - GET_PROT(MT,u_int &,CODE) \ - GET_PROT(MT,long &,CODE) \ - GET_PROT(MT,u_long &,CODE) \ - GET_PROT(MT,float &,CODE) \ - GET_PROT(MT,double &,CODE) \ - GET_PROT(MT,char &,CODE) \ - GET_PROT(MT,u_char &,CODE) \ - GET_PROT(MT,char *,CODE) \ - GET_PROT(MT,u_char *,CODE) \ - inline virtual MT& operator>>(__omanip_ func) CODE2 \ - inline virtual MT& operator>>(__manip_ func) CODE2 -# endif - -#define PUT_FUNC_SET0(MT,CODE,CODE2) \ - PUT_PROT(MT,short,CODE) \ - PUT_PROT(MT,u_short,CODE) \ - PUT_PROT(MT,int,CODE) \ - PUT_PROT(MT,u_int,CODE) \ - PUT_PROT(MT,long,CODE) \ - PUT_PROT(MT,u_long,CODE) \ - PUT_PROT(MT,float,CODE) \ - PUT_PROT(MT,double,CODE) \ - PUT_PROT(MT,char,CODE) \ - PUT_PROT(MT,u_char,CODE) \ - PUT_PROT(MT,const char *,CODE) \ - PUT_PROT(MT,u_char *,CODE) \ - PUT_PROT(MT,void *,CODE) \ - inline virtual MT& operator<<(__omanip_ func) CODE2 \ - inline virtual MT& operator<<(__manip_ func) CODE2 - -# if defined (ACE_LACKS_SIGNED_CHAR) - #define GET_FUNC_SET1(MT,CODE,CODE2) GET_FUNC_SET0(MT,CODE,CODE2) - #define PUT_FUNC_SET1(MT,CODE,CODE2) PUT_FUNC_SET0(MT,CODE,CODE2) -# else - #define GET_FUNC_SET1(MT,CODE,CODE2) \ - GET_PROT(MT,signed char &,CODE) \ - GET_PROT(MT,signed char *,CODE) \ - GET_FUNC_SET0(MT,CODE,CODE2) - - #define PUT_FUNC_SET1(MT,CODE,CODE2) \ - PUT_FUNC(MT,signed char) \ - PUT_FUNC(MT,const signed char *) \ - PUT_FUNC_SET0(MT,CODE,CODE2) -# endif /* ACE_LACKS_SIGNED_CHAR */ - -#define GET_MANIP_CODE { if (ipfx ()) { (*func) (*this); } isfx (); return *this; } -#define PUT_MANIP_CODE { if (opfx ()) { (*func) (*this); } osfx (); return *this; } - -#define GET_FUNC_SET(MT) GET_FUNC_SET1(MT,GET_CODE,GET_MANIP_CODE) -#define PUT_FUNC_SET(MT) PUT_FUNC_SET1(MT,PUT_CODE,PUT_MANIP_CODE) -#define GETPUT_FUNC_SET(MT) GET_FUNC_SET(MT) PUT_FUNC_SET(MT) - -#define GET_SIG_SET(MT) GET_FUNC_SET1(MT,= 0;,= 0;) -#define PUT_SIG_SET(MT) PUT_FUNC_SET1(MT,= 0;,= 0;) -#define GETPUT_SIG_SET(MT) GET_SIG_SET(MT) PUT_SIG_SET(MT) - -// Include the templates here. -# include "ace/IOStream_T.h" -#endif /* !ACE_LACKS_ACE_IOSTREAM && ACE_USES_OLD_IOSTREAMS */ - -#include /**/ "ace/post.h" -#endif /* ACE_IOSTREAM_H */ diff --git a/ACE/ace/IOStream_T.cpp b/ACE/ace/IOStream_T.cpp deleted file mode 100644 index 082274256fe..00000000000 --- a/ACE/ace/IOStream_T.cpp +++ /dev/null @@ -1,247 +0,0 @@ -// $Id$ - -#ifndef ACE_IOSTREAM_T_CPP -#define ACE_IOSTREAM_T_CPP - -#include "ace/IOStream_T.h" -#include "ace/OS_Memory.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (ACE_LACKS_ACE_IOSTREAM) - -#if !defined (__ACE_INLINE__) -#include "ace/IOStream_T.inl" -#endif /* !__ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// We will be given a STREAM by the iostream object which creates us. -// See the ACE_IOStream template for how that works. Like other -// streambuf objects, we can be input-only, output-only or both. - -template -ACE_Streambuf_T::ACE_Streambuf_T (STREAM *peer, - u_int streambuf_size, - int io_mode) - : ACE_Streambuf (streambuf_size, io_mode), - peer_ (peer) -{ - // A streambuf allows for unbuffered IO where every character is - // read as requested and written as provided. To me, this seems - // terribly inefficient for socket-type operations, so I've disabled - // it. All of the work would be done by the underflow/overflow - // functions anyway and I haven't implemented anything there to - // support unbuffered IO. - -#if !defined (ACE_LACKS_UNBUFFERED_STREAMBUF) - this->unbuffered (0); -#endif /* ! ACE_LACKS_UNBUFFERED_STREAMBUF */ - - // Linebuffered is similar to unbuffered. Again, I don't have any - // need for this and I don't see the advantage. I believe this - // would have to be supported by underflow/overflow to be effective. -#if !defined (ACE_LACKS_LINEBUFFERED_STREAMBUF) - this->linebuffered (0); -#endif /* ! ACE_LACKS_LINEBUFFERED_STREAMBUF */ -} - -template ssize_t -ACE_Streambuf_T::send (char *buf, ssize_t len) -{ - return peer_->send_n (buf,len); -} - -template ssize_t -ACE_Streambuf_T::recv (char *buf, - ssize_t len, - ACE_Time_Value *tv) -{ - return this->recv (buf, len, 0, tv); -} - -template ssize_t -ACE_Streambuf_T::recv (char *buf, - ssize_t len, - int flags, - ACE_Time_Value * tv) -{ - this->timeout_ = 0; - errno = ESUCCESS; - ssize_t rval = peer_->recv (buf, len, flags, tv); - if (errno == ETIME) - this->timeout_ = 1; - return rval; -} - -template ssize_t -ACE_Streambuf_T::recv_n (char *buf, - ssize_t len, - int flags, - ACE_Time_Value *tv) -{ - this->timeout_ = 0; - errno = ESUCCESS; - ssize_t rval = peer_->recv_n (buf, len, flags, tv); - if (errno == ETIME) - this->timeout_ = 1; - return rval; -} - -template ACE_HANDLE -ACE_Streambuf_T::get_handle (void) -{ - return peer_ ? peer_->get_handle () : 0; -} - -// The typical constructor. This will initiailze your STREAM and then -// setup the iostream baseclass to use a custom streambuf based on -// STREAM. - -template -ACE_IOStream::ACE_IOStream (STREAM &stream, - u_int streambuf_size) - : iostream (0), - STREAM (stream) -{ - ACE_NEW (streambuf_, - ACE_Streambuf_T ((STREAM *) this, - streambuf_size)); - iostream::init (this->streambuf_); -} - -template -ACE_IOStream::ACE_IOStream (u_int streambuf_size) - : iostream (0) -{ - ACE_NEW (this->streambuf_, - ACE_Streambuf_T ((STREAM *) this, - streambuf_size)); - iostream::init (this->streambuf_); -} - -// We have to get rid of the streambuf_ ourselves since we gave it to -// iostream () - -template -ACE_IOStream::~ACE_IOStream (void) -{ - delete this->streambuf_; -} - -// The only ambituity in the multiple inheritance is the close () -// function. - -template int -ACE_IOStream::close (void) -{ - return STREAM::close (); -} - -template ACE_IOStream & -ACE_IOStream::operator>> (ACE_Time_Value *&tv) -{ - ACE_Time_Value *old_tv = this->streambuf_->recv_timeout (tv); - tv = old_tv; - return *this; -} - -#if defined (ACE_HAS_STRING_CLASS) - -// A simple string operator. The base iostream has 'em for char* but -// that isn't always the best thing for a String. If we don't provide -// our own here, we may not get what we want. - -template ACE_IOStream & -ACE_IOStream::operator>> (ACE_IOStream_String &v) -{ - if (ipfx0 ()) - { - char c; - this->get (c); - - for (v = c; - this->get (c) && !isspace (c); - v += c) - continue; - } - - isfx (); - - return *this; -} - -template ACE_IOStream & -ACE_IOStream::operator<< (ACE_IOStream_String &v) -{ - if (opfx ()) - { -#if defined (ACE_WIN32) && defined (_MSC_VER) - for (int i = 0; i < v.GetLength (); ++i) -#else - for (u_int i = 0; i < (u_int) v.length (); ++i) -#endif /* ACE_WIN32 && defined (_MSC_VER) */ - this->put (v[i]); - } - - osfx (); - - return *this; -} - -// A more clever put operator for strings that knows how to deal with -// quoted strings containing back-quoted quotes. - -template STREAM & -operator>> (STREAM &stream, - ACE_Quoted_String &str) -{ - char c; - - if (!(stream >> c)) // eat space up to the first char - // stream.set (ios::eofbit|ios::failbit); - return stream; - - str = ""; // Initialize the string - - // if we don't have a quote, append until we see space - if (c != '"') - for (str = c; stream.get (c) && !isspace (c); str += c) - continue; - else - for (; stream.get (c) && c != '"'; str += c) - if (c == '\\') - { - stream.get (c); - if (c != '"') - str += '\\'; - } - - return stream; -} - -template STREAM & -operator<< (STREAM &stream, - ACE_Quoted_String &str) -{ - stream.put ('"'); - - for (u_int i = 0; i < str.length (); ++i) - { - if (str[i] == '"') - stream.put ('\\'); - stream.put (str[i]); - } - - stream.put ('"'); - - return stream; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_STRING_CLASS */ -#endif /* ACE_LACKS_ACE_IOSTREAM */ -#endif /* ACE_IOSTREAM_T_CPP */ diff --git a/ACE/ace/IOStream_T.h b/ACE/ace/IOStream_T.h deleted file mode 100644 index 9bf90cee122..00000000000 --- a/ACE/ace/IOStream_T.h +++ /dev/null @@ -1,297 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file IOStream_T.h - * - * $Id$ - * - * @author James CE Johnson - * @author Jim Crossley - * - * This file should not be included directly by application - * code. Instead, it should include "ace/IOStream.h". That's because - * we only put some conditional compilations in that file. - */ -//============================================================================= - -#ifndef ACE_IOSTREAM_T_H -#define ACE_IOSTREAM_T_H -#include /**/ "ace/pre.h" - -#include "ace/IOStream.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (ACE_LACKS_ACE_IOSTREAM) - -# include "ace/INET_Addr.h" -# include "ace/Global_Macros.h" - -# if defined (ACE_LACKS_IOSTREAM_FX) -# include "ace/os_include/os_ctype.h" -# endif /**/ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -# if defined (ACE_HAS_STRING_CLASS) -template STREAM & operator>> (STREAM &stream, ACE_Quoted_String &str); -template STREAM & operator<< (STREAM &stream, ACE_Quoted_String &str); -# endif /* defined (ACE_HAS_STRING_CLASS) */ - -template -class ACE_Streambuf_T : public ACE_Streambuf -{ -public: - /** - * We will be given a STREAM by the iostream object which creates - * us. See the ACE_IOStream template for how that works. Like - * other streambuf objects, we can be input-only, output-only or - * both. - */ - ACE_Streambuf_T (STREAM *peer, - u_int streambuf_size = ACE_STREAMBUF_SIZE, - int io_mode = ios::in | ios::out); - - virtual ssize_t send (char *buf, ssize_t len); - - virtual ssize_t recv (char *buf, - ssize_t len, - ACE_Time_Value *tv = 0); - - virtual ssize_t recv (char *buf, - ssize_t len, - int flags, - ACE_Time_Value * tv = 0); - - virtual ssize_t recv_n (char *buf, - ssize_t len, - int flags = 0, - ACE_Time_Value *tv = 0); - -protected: - virtual ACE_HANDLE get_handle (void); - - /// This will be our ACE_SOCK_Stream or similar object. - STREAM *peer_; -}; - -/** - * @class ACE_IOStream - * - * @brief A template adapter for creating an iostream-like object using - * an ACE IPC Stream for the actual I/O. Iostreams use an - * underlying streambuf object for the IO interface. The - * iostream class and derivatives provide you with a host of - * convenient operators that access the streambuf. - * - * We inherit all characteristics of iostream and your - * class. When you create a new class from this template, you - * can use it anywhere you would have used your original - * class. - * To create an iostream for your favorite ACE IPC class (e.g., - * ACE_SOCK_Stream), feed that class to this template's - * parameter, e.g., - * typedef ACE_Svc_Handler - * Service_Handler; - * Because the operators in the iostream class are not virtual, - * you cannot easily provide overloads in your custom - * ACE_IOStream classes. To make these things work correctly, - * you need to overload ALL operators of the ACE_IOStream you - * create. I've attempted to do that here to make things easier - * for you but there are no guarantees. - * In the iostream.cpp file is an example of why it is necessary - * to overload all of the get/put operators when you want to - * customize only one or two. - */ -template -class ACE_IOStream : public iostream, public STREAM -{ -public: - // = Initialization and termination methods. - ACE_IOStream (STREAM &stream, - u_int streambuf_size = ACE_STREAMBUF_SIZE); - - /** - * The default constructor. This will initiailze your STREAM and - * then setup the iostream baseclass to use a custom streambuf based - * on STREAM. - */ - ACE_IOStream (u_int streambuf_size = ACE_STREAMBUF_SIZE); - - /// We have to get rid of the ourselves since we gave it - /// to the base class; - virtual ~ACE_IOStream (void); - - /// The only ambituity in the multiple inheritance is the - /// function. - virtual int close (void); - - /** - * Returns 1 if we're at the end of the , i.e., if the - * connection has closed down or an error has occurred, else 0. - * Under the covers, calls the streambuf's @a timeout function - * which will reset the timeout flag. As as result, you should save - * the return of and check it instead of calling - * successively. - */ - int eof (void) const; - -# if defined (ACE_HAS_STRING_CLASS) - /** - * A simple string operator. The base has them for char* - * but that isn't always the best thing for a . If we don't - * provide our own here, we may not get what we want. - */ - virtual ACE_IOStream &operator>> (ACE_IOStream_String &v); - - /// The converse of the operator. - virtual ACE_IOStream &operator<< (ACE_IOStream_String &v); - -# endif /* ACE_HAS_STRING_CLASS */ - // = Using the macros to provide get/set operators. - GETPUT_FUNC_SET (ACE_IOStream) - -# if defined (ACE_LACKS_IOSTREAM_FX) - virtual int ipfx (int noskip = 0) - { - if (good ()) - { - if (tie () != 0) - tie ()->flush (); - if (!noskip && flags () & skipws) - { - int ch; - while (isspace (ch = rdbuf ()->sbumpc ())) - continue; - if (ch != EOF) - rdbuf ()->sputbackc (ch); - } - if (good ()) - return 1; - } -# if !defined (ACE_WIN32) - // MS VC++ 5.0 doesn't declare setstate. - setstate (failbit); -# endif /* !ACE_WIN32 */ - return (0); - } - virtual int ipfx0 (void) { return ipfx (0); } // Optimized ipfx(0) - virtual int ipfx1 (void) // Optimized ipfx(1) - { - if (good ()) - { - if (tie () != 0) - tie ()->flush (); - if (good ()) - return 1; - } -# if !defined (ACE_WIN32) - // MS VC++ 5.0 doesn't declare setstate. - setstate (failbit); -# endif /* !ACE_WIN32 */ - return (0); - } - virtual void isfx (void) { return; } - virtual int opfx (void) - { - if (good () && tie () != 0) - tie ()->flush (); - return good (); - } - virtual void osfx (void) { if (flags () & unitbuf) flush (); } -# else -# if defined (__GNUC__) - virtual int ipfx0 (void) { return iostream::ipfx0 (); } // Optimized ipfx(0) - virtual int ipfx1 (void) { return iostream::ipfx1 (); } // Optimized ipfx(1) -# else - virtual int ipfx0 (void) { return iostream::ipfx (0); } - virtual int ipfx1 (void) { return iostream::ipfx (1); } -# endif /* __GNUC__ */ - virtual int ipfx (int need = 0) { return iostream::ipfx (need); } - virtual void isfx (void) { iostream::isfx (); } - virtual int opfx (void) { return iostream::opfx (); } - virtual void osfx (void) { iostream::osfx (); } -# endif /* ACE_LACKS_IOSTREAM_FX */ - - /// Allow the programmer to provide a timeout for read operations. - /// Give it a pointer to NULL to block forever. - ACE_IOStream & operator>> (ACE_Time_Value *&tv); - -protected: - /// This is where all of the action takes place. The streambuf_ is - /// the interface to the underlying STREAM. - ACE_Streambuf_T *streambuf_; - -private: - // = Private methods. - - // We move these into the private section so that they cannot be - // used by the application programmer. This is necessary because - // streambuf_ will be buffering IO on the STREAM object. If these - // functions were used in your program, there is a danger of getting - // the datastream out of sync. - ACE_UNIMPLEMENTED_FUNC (ssize_t send (...)) - ACE_UNIMPLEMENTED_FUNC (ssize_t recv (...)) - ACE_UNIMPLEMENTED_FUNC (ssize_t send_n (...)) - ACE_UNIMPLEMENTED_FUNC (ssize_t recv_n (...)) -}; - -/** - * @class ACE_SOCK_Dgram_SC - * - * @brief "Dgram_SC" is short for "Datagram Self-Contained." - * - * Datagrams don't have the notion of a "peer". Each send and - * receive on a datagram can go to a different peer if you want. - * If you're using datagrams for stream activity, you probably - * want 'em all to go to (and come from) the same place. That's - * what this class is for. Here, we keep an address object so - * that we can remember who last sent us data. When we write - * back, we're then able to write back to that same address. - */ -template -class ACE_SOCK_Dgram_SC : public STREAM -{ -public: - ACE_SOCK_Dgram_SC (void); - ACE_SOCK_Dgram_SC (STREAM &source, - ACE_INET_Addr &dest); - ssize_t send_n (char *buf, ssize_t len); - ssize_t recv (char *buf, - ssize_t len, - ACE_Time_Value *tv = 0); - ssize_t recv (char *buf, - ssize_t len, - int flags, - ACE_Time_Value *tv = 0); - ssize_t recv_n (char *buf, - ssize_t len, - int flags = 0, - ACE_Time_Value *tv = 0); - int get_remote_addr (ACE_INET_Addr &addr) const; - -protected: - ACE_INET_Addr peer_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -# if defined (__ACE_INLINE__) -# include "ace/IOStream_T.inl" -# endif /* __ACE_INLINE__ */ - -# if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -# include "ace/IOStream_T.cpp" -# endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -# if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -# pragma implementation ("IOStream_T.cpp") -# endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ -#endif /* ACE_LACKS_ACE_IOSTREAM */ - -#include /**/ "ace/post.h" -#endif /* ACE_IOSTREAM_T_H */ diff --git a/ACE/ace/IOStream_T.inl b/ACE/ace/IOStream_T.inl deleted file mode 100644 index 12cf0fcffbf..00000000000 --- a/ACE/ace/IOStream_T.inl +++ /dev/null @@ -1,123 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Handle_Set.h" -#include "ace/OS_NS_errno.h" -#include "ace/OS_NS_sys_select.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE int -ACE_IOStream::eof (void) const -{ - // Get the timeout value of the streambuf - ACE_Time_Value *timeout = this->streambuf_->recv_timeout (0); - - // Reset the timeout value of the streambuf. - (void) this->streambuf_->recv_timeout (timeout); - - char c; - int rval = this->streambuf_->recv_n (&c, - sizeof c, - MSG_PEEK, - timeout); - - // Timeout, not an eof - if (this->streambuf_->timeout()) - return 0; - - // No timeout, got enough data: not eof - if (rval == sizeof(char)) - return 0; - - // No timeout, not enough data: definately eof - return 1; -} - -template ACE_INLINE -ACE_SOCK_Dgram_SC::ACE_SOCK_Dgram_SC (void) -{ -} - -template ACE_INLINE -ACE_SOCK_Dgram_SC::ACE_SOCK_Dgram_SC (STREAM &source, - ACE_INET_Addr &dest) - : STREAM (source), - peer_ (dest) -{ -} - -template ACE_INLINE ssize_t -ACE_SOCK_Dgram_SC::send_n (char *buf, - ssize_t len) -{ - return STREAM::send (buf, len, peer_); -} - -template ACE_INLINE ssize_t -ACE_SOCK_Dgram_SC::recv (char *buf, - ssize_t len, - ACE_Time_Value *tv) -{ - //FUZZ: disable check_for_lack_ACE_OS - return recv (buf, len, 0, tv); - //FUZZ: enable check_for_lack_ACE_OS -} - -template ACE_INLINE ssize_t -ACE_SOCK_Dgram_SC::recv (char *buf, - ssize_t len, - int flags, - ACE_Time_Value *tv) -{ - if (tv != 0) - { - ACE_HANDLE handle = this->get_handle (); - ACE_Handle_Set handle_set; - - handle_set.set_bit (handle); - - switch (ACE_OS::select (int (handle) + 1, - (fd_set *) handle_set, // read_fds. - (fd_set *) 0, // write_fds. - (fd_set *) 0, // exception_fds. - tv)) - { - case 0: - errno = ETIME; - case -1: - return -1; - default: - ; // Do the 'recv' below - } - } - - int rval = STREAM::recv (buf, len, peer_, flags); -#if defined (ACE_WIN32) - if (rval == SOCKET_ERROR) - if (::WSAGetLastError () == WSAEMSGSIZE) - if (ACE_BIT_ENABLED (flags, MSG_PEEK)) - rval = len; -#endif /* ACE_WIN32 */ - return rval < len ? rval : len; -} - -template ACE_INLINE ssize_t -ACE_SOCK_Dgram_SC::recv_n (char *buf, - ssize_t len, - int flags, - ACE_Time_Value *tv) -{ - int rval = this->recv (buf, len, flags, tv); - return rval; -} - -template ACE_INLINE int -ACE_SOCK_Dgram_SC::get_remote_addr (ACE_INET_Addr &addr) const -{ - addr = peer_; - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/IO_Cntl_Msg.cpp b/ACE/ace/IO_Cntl_Msg.cpp deleted file mode 100644 index 9d64f05dd66..00000000000 --- a/ACE/ace/IO_Cntl_Msg.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// $Id$ - -#include "ace/IO_Cntl_Msg.h" - -#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 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_Cntl_Msg.h b/ACE/ace/IO_Cntl_Msg.h deleted file mode 100644 index 7101284c9f7..00000000000 --- a/ACE/ace/IO_Cntl_Msg.h +++ /dev/null @@ -1,112 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file IO_Cntl_Msg.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//========================================================================== - - -#ifndef ACE_IO_CNTL_MSG_H -#define ACE_IO_CNTL_MSG_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" -#include "ace/os_include/os_stddef.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_IO_Cntl_Msg - * - * @brief Data format for IOCTL messages - */ -class ACE_Export ACE_IO_Cntl_Msg -{ -public: - enum - { - /// Set the low water mark. - SET_LWM = 1, - /// Get the low water mark. - GET_LWM = 2, - /// Set the high water mark. - SET_HWM = 3, - /// Get the high water mark. - GET_HWM = 4, - /// Link modules - MOD_LINK = 5, - /// Unlink modules - MOD_UNLINK = 6 - }; - - typedef unsigned short ACE_IO_Cntl_Cmds; - - // = Initialization method. - /// Initialize the control message. - ACE_IO_Cntl_Msg (ACE_IO_Cntl_Cmds c); - - // = Get/set methods - - /// Get command. - ACE_IO_Cntl_Cmds cmd (void); - - /// Set command. - void cmd (ACE_IO_Cntl_Cmds c); - - /// Get count. - size_t count (void); - - /// Set count. - void count (size_t c); - - /// Get error. - int error (void); - - /// Set error. - void error (int e); - - /// Get return value. - int rval (void); - - /// Set return value. - void rval (int r); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Command. - ACE_IO_Cntl_Cmds cmd_; - - /// Count. - size_t count_; - - /// Error. - int error_; - - /// Return value - int rval_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/IO_Cntl_Msg.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* ACE_IO_CNTL_MSG_H */ diff --git a/ACE/ace/IO_Cntl_Msg.inl b/ACE/ace/IO_Cntl_Msg.inl deleted file mode 100644 index 0fbf4190f35..00000000000 --- a/ACE/ace/IO_Cntl_Msg.inl +++ /dev/null @@ -1,61 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_IO_Cntl_Msg::ACE_IO_Cntl_Msg (ACE_IO_Cntl_Cmds c) -{ - this->cmd_ = c; -} - -ACE_INLINE ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds -ACE_IO_Cntl_Msg::cmd (void) -{ - return this->cmd_; -} - -ACE_INLINE void -ACE_IO_Cntl_Msg::cmd (ACE_IO_Cntl_Cmds c) -{ - this->cmd_ = c; -} - -ACE_INLINE size_t -ACE_IO_Cntl_Msg::count (void) -{ - return this->count_; -} - -ACE_INLINE void -ACE_IO_Cntl_Msg::count (size_t c) -{ - this->count_ = c; -} - -ACE_INLINE int -ACE_IO_Cntl_Msg::error (void) -{ - return this->error_; -} - -ACE_INLINE void -ACE_IO_Cntl_Msg::error (int e) -{ - this->error_ = e; -} - -ACE_INLINE int -ACE_IO_Cntl_Msg::rval (void) -{ - return this->rval_; -} - -ACE_INLINE void -ACE_IO_Cntl_Msg::rval (int r) -{ - this->rval_ = r; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/IO_SAP.cpp b/ACE/ace/IO_SAP.cpp deleted file mode 100644 index 0e3e2ea73dc..00000000000 --- a/ACE/ace/IO_SAP.cpp +++ /dev/null @@ -1,142 +0,0 @@ -// $Id$ - -#include "ace/IO_SAP.h" - -#include "ace/Log_Msg.h" -#include "ace/OS_NS_unistd.h" -#include "ace/OS_NS_errno.h" -#include "ace/OS_NS_fcntl.h" -#include "ace/os_include/os_signal.h" - -#if !defined (__ACE_INLINE__) -#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) - -// This is the do-nothing constructor. It does not perform a -// ACE_OS::open system call. - -ACE_IO_SAP::ACE_IO_SAP (void) - : handle_ (ACE_INVALID_HANDLE) -{ - ACE_TRACE ("ACE_IO_SAP::ACE_IO_SAP"); -} - -void -ACE_IO_SAP::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_IO_SAP::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("handle_ = %d"), this->handle_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\npid_ = %d"), this->pid_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// Cache for the process ID. -pid_t ACE_IO_SAP::pid_ = 0; - -int -ACE_IO_SAP::enable (int value) const -{ - ACE_TRACE ("ACE_IO_SAP::enable"); - /* First-time in initialization. */ - if (ACE_IO_SAP::pid_ == 0) - ACE_IO_SAP::pid_ = ACE_OS::getpid (); - - switch (value) - { -#if defined (SIGURG) - case SIGURG: - case ACE_SIGURG: -#if defined (F_SETOWN) - return ACE_OS::fcntl (this->handle_, - F_SETOWN, - ACE_IO_SAP::pid_); -#else - ACE_NOTSUP_RETURN (-1); -#endif /* F_SETOWN */ -#endif /* SIGURG */ -#if defined (SIGIO) - case SIGIO: - case ACE_SIGIO: -#if defined (F_SETOWN) && defined (FASYNC) - if (ACE_OS::fcntl (this->handle_, - F_SETOWN, - ACE_IO_SAP::pid_) == -1 - || ACE::set_flags (this->handle_, - FASYNC) == -1) - return -1; - break; -#else - ACE_NOTSUP_RETURN (-1); -#endif /* F_SETOWN && FASYNC */ -#else // <== - ACE_NOTSUP_RETURN (-1); -#endif /* SIGIO <== */ - case ACE_NONBLOCK: - if (ACE::set_flags (this->handle_, - ACE_NONBLOCK) == -1) - return -1; - break; - default: - return -1; - } - - return 0; -} - -int -ACE_IO_SAP::disable (int value) const -{ - ACE_TRACE ("ACE_IO_SAP::disable"); - - switch (value) - { -#if defined (SIGURG) - case SIGURG: - case ACE_SIGURG: -#if defined (F_SETOWN) - if (ACE_OS::fcntl (this->handle_, - F_SETOWN, 0) == -1) - return -1; - break; -#else - ACE_NOTSUP_RETURN (-1); -#endif /* F_SETOWN */ -#endif /* SIGURG */ -#if defined (SIGIO) - case SIGIO: - case ACE_SIGIO: -#if defined (F_SETOWN) && defined (FASYNC) - if (ACE_OS::fcntl (this->handle_, - F_SETOWN, - 0) == -1 - || ACE::clr_flags (this->handle_, FASYNC) == -1) - return -1; - break; -#else - ACE_NOTSUP_RETURN (-1); -#endif /* F_SETOWN && FASYNC */ -#else // <== - ACE_NOTSUP_RETURN (-1); -#endif /* SIGIO <== */ - case ACE_NONBLOCK: - if (ACE::clr_flags (this->handle_, - ACE_NONBLOCK) == -1) - return -1; - break; - default: - return -1; - } - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/IO_SAP.h b/ACE/ace/IO_SAP.h deleted file mode 100644 index cea8213e177..00000000000 --- a/ACE/ace/IO_SAP.h +++ /dev/null @@ -1,96 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file IO_SAP.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_IO_SAP_H -#define ACE_IO_SAP_H -#include /**/ "ace/pre.h" - -#include "ace/Flag_Manip.h" -#include "ace/os_include/sys/os_types.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_IO_SAP - * - * @brief Defines the methods for the base class of the ACE_IO_SAP - * abstraction, which includes ACE_FILE and ACE_DEV. - */ -class ACE_Export ACE_IO_SAP -{ -public: - enum - { - /// Be consistent with Winsock - INVALID_HANDLE = -1 - }; - - /// Default dtor. - ~ACE_IO_SAP (void); - - /// Interface for ioctl. - int control (int cmd, void *) const; - - // = Common I/O handle options related to files. - - /** - * Enable asynchronous I/O (ACE_SIGIO), urgent data (ACE_SIGURG), - * non-blocking I/O (ACE_NONBLOCK), or close-on-exec (ACE_CLOEXEC), - * which is passed as the @a value. - */ - int enable (int value) const; - - /** - * Disable asynchronous I/O (ACE_SIGIO), urgent data (ACE_SIGURG), - * non-blocking I/O (ACE_NONBLOCK), or close-on-exec (ACE_CLOEXEC), - * which is passed as the @a value. - */ - int disable (int value) const; - - /// Get the underlying handle. - ACE_HANDLE get_handle (void) const; - - /// Set the underlying handle. - void set_handle (ACE_HANDLE handle); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Ensure that ACE_IO_SAP is an abstract base class. - ACE_IO_SAP (void); - -private: - /// Underlying I/O handle. - ACE_HANDLE handle_; - - /// Cache the process ID. - static pid_t pid_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/IO_SAP.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_IO_SAP_H */ diff --git a/ACE/ace/IO_SAP.inl b/ACE/ace/IO_SAP.inl deleted file mode 100644 index 9d7d244e4db..00000000000 --- a/ACE/ace/IO_SAP.inl +++ /dev/null @@ -1,42 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_stropts.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_IO_SAP::~ACE_IO_SAP (void) -{ - ACE_TRACE ("ACE_IO_SAP::~ACE_IO_SAP"); -} - -// Used to return the underlying handle_. - -ACE_INLINE ACE_HANDLE -ACE_IO_SAP::get_handle (void) const -{ - ACE_TRACE ("ACE_IO_SAP::get_handle"); - return this->handle_; -} - -// Used to set the underlying handle_. - -ACE_INLINE void -ACE_IO_SAP::set_handle (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_IO_SAP::set_handle"); - this->handle_ = handle; -} - -// Provides access to the ACE_OS::ioctl system call. - -ACE_INLINE int -ACE_IO_SAP::control (int cmd, void *arg) const -{ - ACE_TRACE ("ACE_IO_SAP::control"); - return ACE_OS::ioctl (this->handle_, cmd, arg); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/IPC_SAP.cpp b/ACE/ace/IPC_SAP.cpp deleted file mode 100644 index b9ef15c6002..00000000000 --- a/ACE/ace/IPC_SAP.cpp +++ /dev/null @@ -1,193 +0,0 @@ -// $Id$ - -#include "ace/IPC_SAP.h" - -#include "ace/Log_Msg.h" -#include "ace/OS_NS_unistd.h" -#include "ace/os_include/os_signal.h" -#include "ace/OS_NS_errno.h" -#include "ace/OS_NS_fcntl.h" - -#if !defined (__ACE_INLINE__) -#include "ace/IPC_SAP.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, IPC_SAP, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_IPC_SAP) - -void -ACE_IPC_SAP::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_IPC_SAP::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("handle_ = %d"), this->handle_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\npid_ = %d"), this->pid_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// Cache for the process ID. -pid_t ACE_IPC_SAP::pid_ = 0; - -// This is the do-nothing constructor. It does not perform a -// ACE_OS::socket system call. - -ACE_IPC_SAP::ACE_IPC_SAP (void) - : handle_ (ACE_INVALID_HANDLE) -{ - // ACE_TRACE ("ACE_IPC_SAP::ACE_IPC_SAP"); -} - -int -ACE_IPC_SAP::enable (int value) const -{ - ACE_TRACE ("ACE_IPC_SAP::enable"); - - // First-time in initialization. - if (ACE_IPC_SAP::pid_ == 0) - ACE_IPC_SAP::pid_ = ACE_OS::getpid (); - -#if defined (ACE_WIN32) || defined (ACE_VXWORKS) - switch (value) - { - case ACE_NONBLOCK: - { - // nonblocking argument (1) - // blocking: (0) - int nonblock = 1; - return ACE_OS::ioctl (this->handle_, - FIONBIO, - &nonblock); - } - default: - ACE_NOTSUP_RETURN (-1); - } -#else /* ! ACE_WIN32 && ! ACE_VXWORKS */ - switch (value) - { -#if defined (SIGURG) - case SIGURG: - case ACE_SIGURG: -#if defined (F_SETOWN) - return ACE_OS::fcntl (this->handle_, - F_SETOWN, - ACE_IPC_SAP::pid_); -#else - ACE_NOTSUP_RETURN (-1); -#endif /* F_SETOWN */ -#endif /* SIGURG */ -#if defined (SIGIO) - case SIGIO: - case ACE_SIGIO: -#if defined (F_SETOWN) && defined (FASYNC) - if (ACE_OS::fcntl (this->handle_, - F_SETOWN, - ACE_IPC_SAP::pid_) == -1 - || ACE::set_flags (this->handle_, - FASYNC) == -1) - return -1; - break; -#else - ACE_NOTSUP_RETURN (-1); -#endif /* F_SETOWN && FASYNC */ -#endif /* SIGIO <== */ -#if defined (F_SETFD) - case ACE_CLOEXEC: - // Enables the close-on-exec flag. - if (ACE_OS::fcntl (this->handle_, - F_SETFD, - 1) == -1) - return -1; - break; -#endif /* F_SETFD */ - case ACE_NONBLOCK: - if (ACE::set_flags (this->handle_, - ACE_NONBLOCK) == ACE_INVALID_HANDLE) - return -1; - break; - default: - return -1; - } - return 0; -#endif /* ! ACE_WIN32 && ! ACE_VXWORKS */ - - /* NOTREACHED */ -} - -int -ACE_IPC_SAP::disable (int value) const -{ - ACE_TRACE ("ACE_IPC_SAP::disable"); - -#if defined (ACE_WIN32) || defined (ACE_VXWORKS) - switch (value) - { - case ACE_NONBLOCK: - // nonblocking argument (1) - // blocking: (0) - { - int nonblock = 0; - return ACE_OS::ioctl (this->handle_, - FIONBIO, - &nonblock); - } - default: - ACE_NOTSUP_RETURN (-1); - } -#else /* ! ACE_WIN32 && ! ACE_VXWORKS */ - switch (value) - { -#if defined (SIGURG) - case SIGURG: - case ACE_SIGURG: -#if defined (F_SETOWN) - return ACE_OS::fcntl (this->handle_, - F_SETOWN, - 0); -#else - ACE_NOTSUP_RETURN (-1); -#endif /* F_SETOWN */ -#endif /* SIGURG */ -#if defined (SIGIO) - case SIGIO: - case ACE_SIGIO: -#if defined (F_SETOWN) && defined (FASYNC) - if (ACE_OS::fcntl (this->handle_, - F_SETOWN, - 0) == -1 - || ACE::clr_flags (this->handle_, - FASYNC) == -1) - return -1; - break; -#else - ACE_NOTSUP_RETURN (-1); -#endif /* F_SETOWN && FASYNC */ -#endif /* SIGIO <== */ -#if defined (F_SETFD) - case ACE_CLOEXEC: - // Disables the close-on-exec flag. - if (ACE_OS::fcntl (this->handle_, - F_SETFD, - 0) == -1) - return -1; - break; -#endif /* F_SETFD */ - case ACE_NONBLOCK: - if (ACE::clr_flags (this->handle_, - ACE_NONBLOCK) == -1) - return -1; - break; - default: - return -1; - } - return 0; -#endif /* ! ACE_WIN32 && ! ACE_VXWORKS */ - /* NOTREACHED */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/IPC_SAP.h b/ACE/ace/IPC_SAP.h deleted file mode 100644 index 1fd38007e43..00000000000 --- a/ACE/ace/IPC_SAP.h +++ /dev/null @@ -1,96 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file IPC_SAP.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_IPC_SAP_H -#define ACE_IPC_SAP_H -#include /**/ "ace/pre.h" - -#include "ace/Flag_Manip.h" -#include "ace/os_include/sys/os_types.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_IPC_SAP - * - * @brief Defines the member functions for the base class of the - * ACE_IPC_SAP abstraction. - */ -class ACE_Export ACE_IPC_SAP -{ -public: - - /// Interface for . - int control (int cmd, void *) const; - - // = Common I/O handle options related to sockets. - - /** - * Enable asynchronous I/O (ACE_SIGIO), urgent data (ACE_SIGURG), - * non-blocking I/O (ACE_NONBLOCK), or close-on-exec (ACE_CLOEXEC), - * which is passed as the @a value. - */ - int enable (int value) const; - - /** - * Disable asynchronous I/O (ACE_SIGIO), urgent data (ACE_SIGURG), - * non-blocking I/O (ACE_NONBLOCK), or close-on-exec (ACE_CLOEXEC), - * which is passed as the @a value. - */ - int disable (int value) const; - - /// Get the underlying handle. - ACE_HANDLE get_handle (void) const; - - /// Set the underlying handle. - void set_handle (ACE_HANDLE handle); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - - // = Ensure that ACE_IPC_SAP is an abstract base class. - /// Default constructor. - ACE_IPC_SAP (void); - - /// Protected destructor. - /** - * Not a virtual destructor. Protected destructor to prevent - * operator delete() from being called through a base class - * ACE_IPC_SAP pointer/reference. - */ - ~ACE_IPC_SAP (void); - -private: - /// Underlying I/O handle. - ACE_HANDLE handle_; - - /// Cache the process ID. - static pid_t pid_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/IPC_SAP.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_IPC_SAP_H */ diff --git a/ACE/ace/IPC_SAP.inl b/ACE/ace/IPC_SAP.inl deleted file mode 100644 index 0adcb6e9b09..00000000000 --- a/ACE/ace/IPC_SAP.inl +++ /dev/null @@ -1,40 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_stropts.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_IPC_SAP::~ACE_IPC_SAP (void) -{ - // ACE_TRACE ("ACE_IPC_SAP::~ACE_IPC_SAP"); -} - -ACE_INLINE ACE_HANDLE -ACE_IPC_SAP::get_handle (void) const -{ - ACE_TRACE ("ACE_IPC_SAP::get_handle"); - return this->handle_; -} - -// Used to set the underlying handle_. - -ACE_INLINE void -ACE_IPC_SAP::set_handle (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_IPC_SAP::set_handle"); - this->handle_ = handle; -} - -// Provides access to the ACE_OS::ioctl system call. - -ACE_INLINE int -ACE_IPC_SAP::control (int cmd, void *arg) const -{ - ACE_TRACE ("ACE_IPC_SAP::control"); - return ACE_OS::ioctl (this->handle_, cmd, arg); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/If_Then_Else.h b/ACE/ace/If_Then_Else.h deleted file mode 100644 index 163219e206b..00000000000 --- a/ACE/ace/If_Then_Else.h +++ /dev/null @@ -1,89 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file If_Then_Else.h - * - * @c ACE::If_Then_Else traits template based on the @c IfThenElse - * template described in the book "C++ Templates" by Vandevoorde and - * Josuttis. - * - * $Id$ - * - * @author Ossama Othman - */ -//============================================================================= - -#ifndef ACE_IF_THEN_ELSE_H -#define ACE_IF_THEN_ELSE_H - -#include "ace/config-lite.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace ACE -{ - - /** - * @struct If_Then_Else - * - * @brief Compile-time selection of type based on a boolean value. - * - * This primary template selects the second or third argument based - * on the value of the boolean first argument. - * - * Usage example: - * - * \code - * - * template - * class Foo - * { - * public: - * // Set "TheType" to be the larger of "T" and "int". - * typedef typename If_Then_Else<(sizeof (T) > sizeof (int)), - * T, - * int>::result_type TheType; - * }; - * - * \endcode - * - * @note This merely a forward declaration since we really only care - * about the partial specializations below. - */ - template - struct If_Then_Else; - - /** - * @struct If_Then_Else - * - * @brief Select of type @a Ta if boolean value is @c true. - * - * This partial specialization selects the type @a Ta if the boolean - * first argument is @c true. - */ - template - struct If_Then_Else - { - typedef Ta result_type; - }; - - /** - * @struct If_Then_Else - * - * @brief Select of type @a Tb if boolean value is @c false. - * - * This partial specialization selects the type @a Tb if the boolean - * first argument is @c false. - */ - template - struct If_Then_Else - { - typedef Tb result_type; - }; - -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_IF_THEN_ELSE_H */ diff --git a/ACE/ace/Init_ACE.cpp b/ACE/ace/Init_ACE.cpp deleted file mode 100644 index f997c09d4f8..00000000000 --- a/ACE/ace/Init_ACE.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#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; - -int -ACE::init (void) -{ - // Don't use ACE_TRACE, because Object_Manager might not have been - // instantiated yet. - // ACE_TRACE ("ACE::init"); - - ++ACE::init_fini_count_; - - return ACE_Object_Manager::instance ()->init (); -} - -int -ACE::fini (void) -{ - ACE_TRACE ("ACE::fini"); - - if (ACE::init_fini_count_ > 0) - { - if (--ACE::init_fini_count_ == 0) - return ACE_Object_Manager::instance ()->fini (); - else - // Wait for remaining fini () calls. - return 1; - } - else - // More ACE::fini () calls than ACE::init () calls. Bad - // application! - return -1; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Init_ACE.h b/ACE/ace/Init_ACE.h deleted file mode 100644 index 164f61e1d70..00000000000 --- a/ACE/ace/Init_ACE.h +++ /dev/null @@ -1,62 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Init_ACE.h - * - * $Id$ - * - * Initialize ACE library services. Can be called only once per - * program invocation. - */ -//============================================================================= - - -#ifndef ACE_INIT_ACE_H -#define ACE_INIT_ACE_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -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. - */ - extern ACE_Export int init (void); - - /** - * Shut down ACE library services. Can be called only once per - * program invocation. - * @return Returns 0 on success, -1 on failure, and 1 if it had already been - * called. - */ - extern ACE_Export int fini (void); - - // private: - // Used internally, so not exported. - - /** - * Counter to match / calls. must increment it; - * must decrement it. then does nothing until it - * reaches 0. - */ - extern unsigned int init_fini_count_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" - -#endif /* ACE_INIT_ACE_H */ diff --git a/ACE/ace/Intrusive_List.cpp b/ACE/ace/Intrusive_List.cpp deleted file mode 100644 index c0006792ce4..00000000000 --- a/ACE/ace/Intrusive_List.cpp +++ /dev/null @@ -1,153 +0,0 @@ -// $Id$ - -#ifndef ACE_INTRUSIVE_LIST_CPP -#define ACE_INTRUSIVE_LIST_CPP - -#include "ace/Intrusive_List.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -#include "ace/Intrusive_List.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Intrusive_List::ACE_Intrusive_List (void) - : head_ (0) - , tail_ (0) -{ -} - -template -ACE_Intrusive_List::~ACE_Intrusive_List (void) -{ -} - -template void -ACE_Intrusive_List::push_back (T *node) -{ - if (this->tail_ == 0) - { - this->tail_ = node; - this->head_ = node; - node->next (0); - node->prev (0); - return; - } - - this->tail_->next (node); - node->prev (this->tail_); - node->next (0); - this->tail_ = node; -} - -template void -ACE_Intrusive_List::push_front (T *node) -{ - if (this->head_ == 0) - { - this->tail_ = node; - this->head_ = node; - node->next (0); - node->prev (0); - return; - } - - this->head_->prev (node); - node->next (this->head_); - node->prev (0); - this->head_ = node; -} - -template T * -ACE_Intrusive_List::pop_front (void) -{ - T *node = this->head_; - if (node == 0) - return 0; - this->unsafe_remove (node); - return node; -} - -template T * -ACE_Intrusive_List::pop_back (void) -{ - T *node = this->tail_; - if (node == 0) - return 0; - this->unsafe_remove (node); - return node; -} - -template void -ACE_Intrusive_List::remove (T *node) -{ - for (T *i = this->head_; i != 0; i = i->next ()) - { - if (node == i) - { - this->unsafe_remove (node); - return; - } - } -} - -template void -ACE_Intrusive_List::unsafe_remove (T *node) -{ - if (node->prev () != 0) - node->prev ()->next (node->next ()); - else - this->head_ = node->next (); - - if (node->next () != 0) - node->next ()->prev (node->prev ()); - else - this->tail_ = node->prev (); - - node->next (0); - node->prev (0); -} - -#if 0 -template void -ACE_Intrusive_List_Node::check_invariants (void) -{ - ACE_ASSERT ((this->next () == 0) || (this->next ()->prev () == this)); - ACE_ASSERT ((this->prev () == 0) || (this->prev ()->next () == this)); -} - -template void -ACE_Intrusive_List::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 deleted file mode 100644 index 59d0c9054a8..00000000000 --- a/ACE/ace/Intrusive_List.h +++ /dev/null @@ -1,144 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Intrusive_List.h - * - * $Id$ - * - * @author Carlos O'Ryan - */ -//============================================================================= - -#ifndef ACE_INTRUSIVE_LIST_H -#define ACE_INTRUSIVE_LIST_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Intrusive_List - * - * @brief Implement an intrusive double linked list - * - * Intrusive lists assume that the elements they contain the pointers - * required to build the list. They are useful as light-weight - * containers and free-lists. - * - * The template argument T must implement the following methods: - * - * - T* T::next () const; - * - void T::next (T *); - * - T* T::prev () const; - * - void T::prev (T* ); - * - * A simple way to satisfy the Intrusive_List requirements would be to - * implement a helper class: - * - * class My_Object : public ACE_Intrusive_List_Node {
    - * ....
    - * };
    - * - * typedef ACE_Intrusive_List My_Object_List; - * - * However, ACE is supported on platforms that would surely get - * confused using such templates. - * - * @todo The ACE_Message_Queue is an example of an intrusive list (or - * queue) but it is not implemented in terms of this class. - * - */ -template -class ACE_Intrusive_List -{ -public: - // = Initialization and termination methods. - /// Constructor. Use user specified allocation strategy - /// if specified. - ACE_Intrusive_List (void); - - /// Destructor. - ~ACE_Intrusive_List (void); - - // = Check boundary conditions. - - /// Returns 1 if the container is empty, otherwise returns 0. - int is_empty (void) const; - - /// Returns 1 if the container is empty, otherwise returns 0. - /// @deprecated Use is_empty() instead. - int empty (void) const; - - /// Insert an element at the beginning of the list - void push_front (T *node); - - /// Insert an element at the end of the list - void push_back (T *node); - - /// Remove the element at the beginning of the list - T *pop_front (void); - - /// Remove the element at the end of the list - T *pop_back (void); - - /// Get the element at the head of the queue - T *head (void) const; - - /// Get the element at the tail of the queue - T *tail (void) const; - - /// Remove a element from the list - /** - * Verify that the element is still in the list before removing it. - */ - void remove (T *node); - - /// Swap two lists - void swap(ACE_Intrusive_List & rhs); - - /// Remove a element from the list without checking - /** - * No attempts are performed to check if T* really belongs to the - * list. The effects of removing an invalid element are unspecified - */ - void unsafe_remove (T *node); - -private: - /** @name Disallow copying - * - */ - //@{ - ACE_Intrusive_List (const ACE_Intrusive_List &); - ACE_Intrusive_List& operator= (const ACE_Intrusive_List &); - //@} - -private: - /// Head of the list - T *head_; - - /// Tail of the list - T *tail_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Intrusive_List.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Intrusive_List.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Intrusive_List.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_INTRUSIVE_LIST_H */ diff --git a/ACE/ace/Intrusive_List.inl b/ACE/ace/Intrusive_List.inl deleted file mode 100644 index f76370917e9..00000000000 --- a/ACE/ace/Intrusive_List.inl +++ /dev/null @@ -1,40 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE int -ACE_Intrusive_List::is_empty (void) const -{ - return this->head_ == 0; -} - -template ACE_INLINE int -ACE_Intrusive_List::empty (void) const -{ - return this->is_empty (); -} - -template ACE_INLINE T * -ACE_Intrusive_List::head (void) const -{ - return this->head_; -} - -template ACE_INLINE T * -ACE_Intrusive_List::tail (void) const -{ - return this->tail_; -} - -template ACE_INLINE void -ACE_Intrusive_List::swap(ACE_Intrusive_List & rhs) -{ - std::swap(head_, rhs.head_); - std::swap(tail_, rhs.tail_); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Intrusive_List_Node.cpp b/ACE/ace/Intrusive_List_Node.cpp deleted file mode 100644 index cd39a0cc91e..00000000000 --- a/ACE/ace/Intrusive_List_Node.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// $Id$ - -#ifndef ACE_INTRUSIVE_LIST_NODE_CPP -#define ACE_INTRUSIVE_LIST_NODE_CPP - -#include "ace/Intrusive_List_Node.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -#include "ace/Intrusive_List_Node.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Intrusive_List_Node::ACE_Intrusive_List_Node (void) - : prev_ (0) - , next_ (0) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_INTRUSIVE_LIST_NODE_CPP */ diff --git a/ACE/ace/Intrusive_List_Node.h b/ACE/ace/Intrusive_List_Node.h deleted file mode 100644 index b62d681a047..00000000000 --- a/ACE/ace/Intrusive_List_Node.h +++ /dev/null @@ -1,85 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Intrusive_List_Node.h - * - * $Id$ - * - * @author Carlos O'Ryan - */ -//============================================================================= - -#ifndef ACE_INTRUSIVE_LIST_NODE_H -#define ACE_INTRUSIVE_LIST_NODE_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Intrusive_List_Node - * - * @brief Implement the requirements for ACE_Intrusive_List - * - * The class should be used as follows: - * - * class My_Object : public ACE_Intrusive_List_Node {
    - * ....
    - * };
    - * - * However, ACE is supported on platforms that would surely get - * confused using such templates, the class is provided as a helper - * for our lucky users that only need portability to modern C++ - * compilers. - * - */ -template -class ACE_Intrusive_List_Node -{ -public: - /** @name Accesors and modifiers to the next and previous pointers - * - */ - //@{ - T *prev (void) const; - void prev (T *); - T *next (void) const; - void next (T *); - //@} - -protected: - /// Constructor - /** - * The constructor is protected, because only derived classes should - * be instantiated. - */ - ACE_Intrusive_List_Node (void); - -private: - /// Head and tail of the list - T *prev_; - T *next_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Intrusive_List_Node.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Intrusive_List_Node.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Intrusive_List_Node.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_INTRUSIVE_LIST_NODE_H */ diff --git a/ACE/ace/Intrusive_List_Node.inl b/ACE/ace/Intrusive_List_Node.inl deleted file mode 100644 index 0672be2f345..00000000000 --- a/ACE/ace/Intrusive_List_Node.inl +++ /dev/null @@ -1,31 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template ACE_INLINE T* -ACE_Intrusive_List_Node::prev (void) const -{ - return this->prev_; -} - -template ACE_INLINE void -ACE_Intrusive_List_Node::prev (T *x) -{ - this->prev_ = x; -} - -template ACE_INLINE T* -ACE_Intrusive_List_Node::next (void) const -{ - return this->next_; -} - -template ACE_INLINE void -ACE_Intrusive_List_Node::next (T *x) -{ - this->next_ = x; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/LOCK_SOCK_Acceptor.cpp b/ACE/ace/LOCK_SOCK_Acceptor.cpp deleted file mode 100644 index 183338b7efa..00000000000 --- a/ACE/ace/LOCK_SOCK_Acceptor.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - -#ifndef ACE_LOCK_SOCK_ACCEPTOR_CPP -#define ACE_LOCK_SOCK_ACCEPTOR_CPP - -#include "ace/Guard_T.h" -#include "ace/LOCK_SOCK_Acceptor.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template int -ACE_LOCK_SOCK_Acceptor::accept (ACE_SOCK_Stream &stream, - ACE_Addr *remote_address, - ACE_Time_Value *timeout, - int restart, - int reset_new_handle) const -{ - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, (ACE_LOCK &) this->lock_, -1); - - return ACE_SOCK_Acceptor::accept (stream, - remote_address, - timeout, - restart, - reset_new_handle); -} - -template ACE_LOCK & -ACE_LOCK_SOCK_Acceptor::lock (void) -{ - return this->lock_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LOCK_SOCK_ACCEPTOR_CPP */ diff --git a/ACE/ace/LOCK_SOCK_Acceptor.h b/ACE/ace/LOCK_SOCK_Acceptor.h deleted file mode 100644 index cfca422e8d7..00000000000 --- a/ACE/ace/LOCK_SOCK_Acceptor.h +++ /dev/null @@ -1,67 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file LOCK_SOCK_Acceptor.h - * - * $Id$ - * - * @author James Hu and Irfan Pyarali - */ -//============================================================================= - - -#ifndef ACE_LOCK_SOCK_ACCEPTOR_H -#define ACE_LOCK_SOCK_ACCEPTOR_H -#include /**/ "ace/pre.h" - -#include "ace/SOCK_Acceptor.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_LOCK_SOCK_Acceptor - * - * @brief Specialize ACE_SOCK_Acceptor to lock around ; - * - * This class is necessary since some OS platforms (e.g., - * Solaris 2.5) do not allow multiple threads/processes to - * simultaneously call on the same listen-mode - * port/socket. Thus, we need to protect against multiple - * concurrent accesses by using the appropriate type of lock. - */ -template -class ACE_LOCK_SOCK_Acceptor : public ACE_SOCK_Acceptor -{ -public: - /// Accept the connection under the control of the . - int accept (ACE_SOCK_Stream &new_stream, - ACE_Addr *remote_addr = 0, - ACE_Time_Value *timeout = 0, - int restart = 1, - int reset_new_handle = 0) const; - - /// Return a reference to the lock. - ACE_LOCK &lock (void); - -protected: - /// Type of locking mechanism. - ACE_LOCK lock_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/LOCK_SOCK_Acceptor.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("LOCK_SOCK_Acceptor.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_LOCK_SOCK_ACCEPTOR_H */ diff --git a/ACE/ace/LSOCK.cpp b/ACE/ace/LSOCK.cpp deleted file mode 100644 index 71f93fdde9c..00000000000 --- a/ACE/ace/LSOCK.cpp +++ /dev/null @@ -1,181 +0,0 @@ -// $Id$ - -#include "ace/LSOCK.h" - -ACE_RCSID(ace, LSOCK, "$Id$") - -#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/Log_Msg.h" -#include "ace/OS_NS_sys_socket.h" - -#if !defined (__ACE_INLINE__) -#include "ace/LSOCK.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK) - -void -ACE_LSOCK::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_LSOCK::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("aux_handle_ = %d"), this->aux_handle_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -#if defined (ACE_HAS_MSG) -// This routine sends an open file descriptor to handle_>. - -ssize_t -ACE_LSOCK::send_handle (const ACE_HANDLE handle) const -{ - ACE_TRACE ("ACE_LSOCK::send_handle"); - u_char a[2]; - iovec iov; - msghdr send_msg; -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - char cmsgbuf[ACE_BSD_CONTROL_MSG_LEN]; - cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf; -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - - a[0] = 0xab; - a[1] = 0xcd; - iov.iov_base = (char *) a; - iov.iov_len = sizeof a; - send_msg.msg_iov = &iov; - send_msg.msg_iovlen = 1; - send_msg.msg_name = 0; - send_msg.msg_namelen = 0; - -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - cmsgptr->cmsg_level = SOL_SOCKET; - cmsgptr->cmsg_type = SCM_RIGHTS; - cmsgptr->cmsg_len = sizeof cmsgbuf; - send_msg.msg_control = cmsgbuf; - send_msg.msg_controllen = sizeof cmsgbuf; - *(ACE_HANDLE *) CMSG_DATA (cmsgptr) = handle; - send_msg.msg_flags = 0; -#else - send_msg.msg_accrights = (char *) &handle; - send_msg.msg_accrightslen = sizeof handle; -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - - return ACE_OS::sendmsg (this->get_handle (), &send_msg, 0); -} - -// This file receives an open file descriptor from handle_>. -// Note, this routine returns -1 if problems occur, 0 if we recv a -// message that does not have file descriptor in it, and 1 otherwise. - -ssize_t -ACE_LSOCK::recv_handle (ACE_HANDLE &handle, char *pbuf, ssize_t *len) const -{ - ACE_TRACE ("ACE_LSOCK::recv_handle"); - u_char a[2]; - iovec iov; - msghdr recv_msg; - -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - char cmsgbuf[ACE_BSD_CONTROL_MSG_LEN]; -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - - if (pbuf != 0 && len != 0) - { - iov.iov_base = pbuf; - iov.iov_len = *len; - } - else - { - iov.iov_base = (char *) a; - iov.iov_len = sizeof a; - } - - recv_msg.msg_iov = &iov; - recv_msg.msg_iovlen = 1; - recv_msg.msg_name = 0; - recv_msg.msg_namelen = 0; -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - recv_msg.msg_control = cmsgbuf; - recv_msg.msg_controllen = sizeof cmsgbuf; -#else - recv_msg.msg_accrights = (char *) &handle; - recv_msg.msg_accrightslen = sizeof handle; -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - -#if defined (ACE_HAS_STREAMS) - - ssize_t nbytes = ACE_OS::recvmsg (this->get_handle (), &recv_msg, 0); - - if (nbytes != ACE_INVALID_HANDLE) - { - if (len != 0) - *len = nbytes; - - if (nbytes == sizeof a - && ((u_char *) iov.iov_base)[0] == 0xab - && ((u_char *) iov.iov_base)[1] == 0xcd) - { -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf; - handle = *(ACE_HANDLE *) CMSG_DATA (cmsgptr); -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - return 1; - } - else - return 0; - } -#else - ssize_t nbytes = ACE_OS::recvmsg (this->get_handle (), - &recv_msg, - MSG_PEEK); - - if (nbytes != ACE_INVALID_HANDLE) - { - if (nbytes == sizeof a - && ((u_char *) iov.iov_base)[0] == 0xab - && ((u_char *) iov.iov_base)[1] == 0xcd) - { -#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)); - recv_msg.msg_control = cmsgbuf; - recv_msg.msg_controllen = sizeof cmsgbuf; -#else - recv_msg.msg_accrights = (char *) &handle; - recv_msg.msg_accrightslen = sizeof handle; -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - - if (ACE_OS::recvmsg (this->get_handle (), - &recv_msg, 0) == ACE_INVALID_HANDLE) - return ACE_INVALID_HANDLE; - else - { -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf; - handle = *(ACE_HANDLE *) CMSG_DATA (cmsgptr); -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - return 1; - } - } - else - { - if (len != 0) - *len = nbytes; - return 0; - } - } -#endif /* ACE_HAS_STREAMS */ - else - return ACE_INVALID_HANDLE; -} -#endif /* ACE_HAS_MSG */ - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ diff --git a/ACE/ace/LSOCK.h b/ACE/ace/LSOCK.h deleted file mode 100644 index 994158f00d3..00000000000 --- a/ACE/ace/LSOCK.h +++ /dev/null @@ -1,84 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file LSOCK.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_LOCAL_SOCK_H -#define ACE_LOCAL_SOCK_H - -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/SOCK.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_LSOCK - * - * @brief Create a Local ACE_SOCK, which is used for passing file - * descriptors. - */ -class ACE_Export ACE_LSOCK -{ -public: -#if defined (ACE_HAS_MSG) - /// Send an open FD to another process. - ssize_t send_handle (const ACE_HANDLE handle) const; - - /// Recv an open FD from another process. - ssize_t recv_handle (ACE_HANDLE &handles, - char *pbuf = 0, - ssize_t *len = 0) const; -#endif /* ACE_HAS_MSG */ - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - // = Ensure that ACE_LSOCK is an abstract base class - - /// Default constructor. - ACE_LSOCK (void); - - /// Initialize based on @a handle. - ACE_LSOCK (ACE_HANDLE handle); - - /// Get handle. - ACE_HANDLE get_handle (void) const; - - /// Set handle. - void set_handle (ACE_HANDLE handle); - -private: - /// An auxiliary handle used to avoid virtual base classes... - ACE_HANDLE aux_handle_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/LSOCK.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ -#include /**/ "ace/post.h" -#endif /* ACE_LOCAL_SOCK_H */ diff --git a/ACE/ace/LSOCK.inl b/ACE/ace/LSOCK.inl deleted file mode 100644 index 5dbbb0626a1..00000000000 --- a/ACE/ace/LSOCK.inl +++ /dev/null @@ -1,43 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Simple-minded constructor. - -ACE_INLINE -ACE_LSOCK::ACE_LSOCK (void) - : aux_handle_ (ACE_INVALID_HANDLE) -{ - ACE_TRACE ("ACE_LSOCK::ACE_LSOCK"); -} - -// Sets the underlying file descriptor. - -ACE_INLINE void -ACE_LSOCK::set_handle (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_LSOCK::set_handle"); - this->aux_handle_ = handle; -} - -// Gets the underlying file descriptor. - -ACE_INLINE ACE_HANDLE -ACE_LSOCK::get_handle (void) const -{ - ACE_TRACE ("ACE_LSOCK::get_handle"); - return this->aux_handle_; -} - -// Sets the underlying file descriptor. - -ACE_INLINE -ACE_LSOCK::ACE_LSOCK (ACE_HANDLE handle) - : aux_handle_ (handle) -{ - ACE_TRACE ("ACE_LSOCK::ACE_LSOCK"); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/LSOCK_Acceptor.cpp b/ACE/ace/LSOCK_Acceptor.cpp deleted file mode 100644 index ee154e3e087..00000000000 --- a/ACE/ace/LSOCK_Acceptor.cpp +++ /dev/null @@ -1,143 +0,0 @@ -// $Id$ - -#include "ace/LSOCK_Acceptor.h" - -#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/Log_Msg.h" -#include "ace/OS_NS_unistd.h" -#include "ace/OS_NS_sys_socket.h" - -ACE_RCSID(ace, LSOCK_Acceptor, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_Acceptor) - -// Return the local endpoint address. - -int -ACE_LSOCK_Acceptor::get_local_addr (ACE_Addr &a) const -{ - ACE_TRACE ("ACE_LSOCK_Acceptor::get_local_addr"); - - ACE_UNIX_Addr& target = dynamic_cast (a); - - target = this->local_addr_; - - return 0; -} - -void -ACE_LSOCK_Acceptor::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_LSOCK_Acceptor::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - this->local_addr_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// Do nothing routine for constructor. - -ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor (void) -{ - ACE_TRACE ("ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor"); -} - -int -ACE_LSOCK_Acceptor::open (const ACE_Addr &remote_sap, - int reuse_addr, - int protocol_family, - int backlog, - int protocol) -{ - ACE_TRACE ("ACE_LSOCK_Acceptor::open"); - this->local_addr_ = *((ACE_UNIX_Addr *) &remote_sap); // This is a gross hack... - return ACE_SOCK_Acceptor::open (remote_sap, reuse_addr, - protocol_family, backlog, protocol); -} - -// General purpose routine for performing server ACE_SOCK creation. - -ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor (const ACE_Addr &remote_sap, - int reuse_addr, - int protocol_family, - int backlog, - int protocol) -{ - ACE_TRACE ("ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor"); - if (this->open (remote_sap, - reuse_addr, - protocol_family, - backlog, - protocol) == -1) - ACE_ERROR ((LM_ERROR, - "ACE_LSOCK_Acceptor::ACE_LSOCK_Acceptor")); -} - -// General purpose routine for accepting new connections. - -int -ACE_LSOCK_Acceptor::accept (ACE_LSOCK_Stream &new_stream, - ACE_Addr *remote_addr, - ACE_Time_Value *timeout, - int restart, - int reset_new_handle) const -{ - ACE_TRACE ("ACE_LSOCK_Acceptor::accept"); - - int in_blocking_mode = 0; - if (this->shared_accept_start (timeout, - restart, - in_blocking_mode) == -1) - return -1; - else - { - sockaddr *addr = 0; - int len = 0; - - if (remote_addr != 0) - { - len = remote_addr->get_size (); - addr = (sockaddr *) remote_addr->get_addr (); - } - - do - new_stream.set_handle (ACE_OS::accept (this->get_handle (), - addr, - &len)); - while (new_stream.get_handle () == ACE_INVALID_HANDLE - && restart != 0 - && errno == EINTR - && timeout == 0); - - // Reset the size of the addr, which is only necessary for UNIX - // domain sockets. - if (new_stream.get_handle () != ACE_INVALID_HANDLE - && remote_addr != 0) - remote_addr->set_size (len); - } - - return this->shared_accept_finish (new_stream, - in_blocking_mode, - reset_new_handle); -} - -// Close down the UNIX domain stream and remove the rendezvous point -// from the file system. - -int -ACE_LSOCK_Acceptor::remove (void) -{ - ACE_TRACE ("ACE_LSOCK_Acceptor::remove"); - int result = this->close (); - return ACE_OS::unlink (this->local_addr_.get_path_name ()) == -1 - || result == -1 ? -1 : 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ diff --git a/ACE/ace/LSOCK_Acceptor.h b/ACE/ace/LSOCK_Acceptor.h deleted file mode 100644 index a215736355e..00000000000 --- a/ACE/ace/LSOCK_Acceptor.h +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file LSOCK_Acceptor.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_LOCAL_SOCK_ACCEPTOR_H -#define ACE_LOCAL_SOCK_ACCEPTOR_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_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/SOCK_Acceptor.h" -#include "ace/UNIX_Addr.h" -#include "ace/LSOCK_Stream.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Forward decl. -class ACE_Reactor; - -/** - * @class ACE_LSOCK_Acceptor - * - * @brief Defines the format and interface for the acceptor side of the - * local ACE_SOCK ACE_Stream. - */ -class ACE_Export ACE_LSOCK_Acceptor : public ACE_SOCK_Acceptor -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_LSOCK_Acceptor (void); - - /// Initiate a passive mode socket. - ACE_LSOCK_Acceptor (const ACE_Addr &local_sap, - int reuse_addr = 0, - int protocol_family = PF_UNIX, - int backlog = ACE_DEFAULT_BACKLOG, - int protocol = 0); - - /// Initiate a passive mode socket. - int open (const ACE_Addr &local_sap, - int reuse_addr = 0, - int protocol_family = PF_UNIX, - int backlog = ACE_DEFAULT_BACKLOG, - int protocol = 0); - - /// Accept a new data transfer connection. - int accept (ACE_LSOCK_Stream &new_ipc_sap, - ACE_Addr * = 0, - ACE_Time_Value *timeout = 0, - int restart = 1, - int reset_new_handle = 0) const; - - /// Close down the ACE_LSOCK and remove the rendezvous point from the - /// file system. - int remove (void); - - /// Return the local endpoint address. - int get_local_addr (ACE_Addr &) const; - - // = Meta-type info - typedef ACE_UNIX_Addr PEER_ADDR; - typedef ACE_LSOCK_Stream PEER_STREAM; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Address of our rendezvous point. - ACE_UNIX_Addr local_addr_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ -#include /**/ "ace/post.h" -#endif /* ACE_LOCAL_SOCK_ACCEPTOR_H */ diff --git a/ACE/ace/LSOCK_CODgram.cpp b/ACE/ace/LSOCK_CODgram.cpp deleted file mode 100644 index e89607e06ac..00000000000 --- a/ACE/ace/LSOCK_CODgram.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// $Id$ - -#include "ace/LSOCK_CODgram.h" -#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/Log_Msg.h" - -ACE_RCSID(ace, LSOCK_CODgram, "$Id$") - -#if !defined (__ACE_INLINE__) -#include "ace/LSOCK_CODgram.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_CODgram) - -void -ACE_LSOCK_CODgram::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_LSOCK_CODgram::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_SOCK_CODgram::dump (); - ACE_LSOCK::dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -/* Here's the general-purpose open routine. */ - -int -ACE_LSOCK_CODgram::open (const ACE_Addr &remote, - const ACE_Addr &local, - int protocol_family, - int protocol) -{ - ACE_TRACE ("ACE_LSOCK_CODgram::open"); - if (ACE_SOCK_CODgram::open (remote, local, protocol_family, - protocol) == -1) - return -1; - ACE_LSOCK::set_handle (this->get_handle ()); - return 0; -} - -/* Create a local ACE_SOCK datagram. */ - -ACE_LSOCK_CODgram::ACE_LSOCK_CODgram (const ACE_Addr &remote, - const ACE_Addr &local, - int protocol_family, - int protocol) -{ - ACE_TRACE ("ACE_LSOCK_CODgram::ACE_LSOCK_CODgram"); - if (this->open (remote, local, protocol_family, - protocol) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_LSOCK_CODgram"))); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ diff --git a/ACE/ace/LSOCK_CODgram.h b/ACE/ace/LSOCK_CODgram.h deleted file mode 100644 index 667fa210f0d..00000000000 --- a/ACE/ace/LSOCK_CODgram.h +++ /dev/null @@ -1,78 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file LSOCK_CODgram.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - - -#ifndef ACE_LOCAL_SOCK_CODGRAM_H -#define ACE_LOCAL_SOCK_CODGRAM_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_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/LSOCK.h" -#include "ace/SOCK_CODgram.h" -#include "ace/Addr.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_LSOCK_CODgram - * - * @brief Defines the member functions for the connected - * datagram abstraction. - */ -class ACE_Export ACE_LSOCK_CODgram : public ACE_SOCK_CODgram, public ACE_LSOCK -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_LSOCK_CODgram (void); - - /// Initiate a connected-datagram. - ACE_LSOCK_CODgram (const ACE_Addr &remote_sap, - const ACE_Addr &local_sap = ACE_Addr::sap_any, - int protocol_family = PF_UNIX, - int protocol = 0); - - /// Initiate a connected-datagram. - int open (const ACE_Addr &remote_sap, - const ACE_Addr &local_sap = ACE_Addr::sap_any, - int protocol_family = PF_UNIX, - int protocol = 0); - - /// Get underlying handle. - ACE_HANDLE get_handle (void) const; - - /// Set underlying handle. - void set_handle (ACE_HANDLE); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/LSOCK_CODgram.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ -#include /**/ "ace/post.h" -#endif /* ACE_LOCAL_SOCK_CODGRAM_H */ diff --git a/ACE/ace/LSOCK_CODgram.inl b/ACE/ace/LSOCK_CODgram.inl deleted file mode 100644 index d27ee2fd881..00000000000 --- a/ACE/ace/LSOCK_CODgram.inl +++ /dev/null @@ -1,30 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Do nothing constructor. - -ACE_INLINE -ACE_LSOCK_CODgram::ACE_LSOCK_CODgram (void) -{ - ACE_TRACE ("ACE_LSOCK_CODgram::ACE_LSOCK_CODgram"); -} - -ACE_INLINE void -ACE_LSOCK_CODgram::set_handle (ACE_HANDLE h) -{ - ACE_TRACE ("ACE_LSOCK_CODgram::set_handle"); - this->ACE_SOCK_CODgram::set_handle (h); - this->ACE_LSOCK::set_handle (h); -} - -ACE_INLINE ACE_HANDLE -ACE_LSOCK_CODgram::get_handle (void) const -{ - ACE_TRACE ("ACE_LSOCK_CODgram::get_handle"); - return this->ACE_SOCK_CODgram::get_handle (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/LSOCK_Connector.cpp b/ACE/ace/LSOCK_Connector.cpp deleted file mode 100644 index 319670f903f..00000000000 --- a/ACE/ace/LSOCK_Connector.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// $Id$ - -#include "ace/LSOCK_Connector.h" -#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/Log_Msg.h" - -ACE_RCSID(ace, LSOCK_Connector, "$Id$") - -#if !defined (__ACE_INLINE__) -#include "ace/LSOCK_Connector.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_Connector) - -void -ACE_LSOCK_Connector::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_LSOCK_Connector::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_LSOCK_Connector::ACE_LSOCK_Connector (void) -{ - ACE_TRACE ("ACE_LSOCK_Connector::ACE_LSOCK_Connector"); -} - -// Establish a connection. -ACE_LSOCK_Connector::ACE_LSOCK_Connector (ACE_LSOCK_Stream &new_stream, - const ACE_UNIX_Addr &remote_sap, - ACE_Time_Value *timeout, - const ACE_Addr &local_sap, - int reuse_addr, - int flags, - int perms) - : ACE_SOCK_Connector (new_stream, - remote_sap, - timeout, - local_sap, - reuse_addr, - flags, - perms) -{ - ACE_TRACE ("ACE_LSOCK_Connector::ACE_LSOCK_Connector"); - // This is necessary due to the weird inheritance relationships of - // ACE_LSOCK_Stream. - new_stream.set_handle (new_stream.get_handle ()); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ diff --git a/ACE/ace/LSOCK_Connector.h b/ACE/ace/LSOCK_Connector.h deleted file mode 100644 index 336fc4a0e77..00000000000 --- a/ACE/ace/LSOCK_Connector.h +++ /dev/null @@ -1,91 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file LSOCK_Connector.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - -#ifndef ACE_LOCAL_SOCK_CONNECTOR_H -#define ACE_LOCAL_SOCK_CONNECTOR_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_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/SOCK_Connector.h" -#include "ace/LSOCK_Stream.h" -#include "ace/UNIX_Addr.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_LSOCK_Connector - * - * @brief Defines the format and interface for the connector side of - * the ACE_LSOCK_Stream. - */ -class ACE_Export ACE_LSOCK_Connector : public ACE_SOCK_Connector -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_LSOCK_Connector (void); - - /** - * Actively connect and produce a @a new_stream if things go well. - * All arguments are relayed to the ACE_SOCK_Connector constructor - * for handling. - * @see ACE_SOCK_Connector(). - */ - ACE_LSOCK_Connector (ACE_LSOCK_Stream &new_stream, - const ACE_UNIX_Addr &remote_sap, - ACE_Time_Value *timeout = 0, - const ACE_Addr &local_sap = ACE_Addr::sap_any, - int reuse_addr = 0, - int flags = 0, - int perms = 0); - - /** - * Actively connect and produce a @a new_stream if things go well. - * The @c ACE_SOCK_Connector::connect() method is called to perform - * the actual connection attempt. - * @see ACE_SOCK_Connector::connect(). - */ - int connect (ACE_LSOCK_Stream &new_stream, - const ACE_UNIX_Addr &remote_sap, - ACE_Time_Value *timeout = 0, - const ACE_Addr &local_sap = ACE_Addr::sap_any, - int reuse_addr = 0, - int flags = 0, - int perms = 0); - - // = Meta-type info - typedef ACE_UNIX_Addr PEER_ADDR; - typedef ACE_LSOCK_Stream PEER_STREAM; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/LSOCK_Connector.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ -#include /**/ "ace/post.h" -#endif /* ACE_LOCAL_SOCK_CONNECTOR_H */ diff --git a/ACE/ace/LSOCK_Connector.inl b/ACE/ace/LSOCK_Connector.inl deleted file mode 100644 index f9cdffbf6dc..00000000000 --- a/ACE/ace/LSOCK_Connector.inl +++ /dev/null @@ -1,27 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Establish a connection. -ACE_INLINE int -ACE_LSOCK_Connector::connect (ACE_LSOCK_Stream &new_stream, - const ACE_UNIX_Addr &remote_sap, - ACE_Time_Value *timeout, - const ACE_Addr &local_sap, - int reuse_addr, - int flags, - int perms) -{ - ACE_TRACE ("ACE_LSOCK_Connector::connect"); - int result = ACE_SOCK_Connector::connect (new_stream, remote_sap, - timeout, local_sap, - reuse_addr, flags, perms); - if (result != -1) - // This is necessary due to the weird inheritance relationships of ACE_LSOCK_Stream. - new_stream.set_handle (new_stream.get_handle ()); - return result; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/LSOCK_Dgram.cpp b/ACE/ace/LSOCK_Dgram.cpp deleted file mode 100644 index 268ce44eb36..00000000000 --- a/ACE/ace/LSOCK_Dgram.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// $Id$ - -#include "ace/LSOCK_Dgram.h" -#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/Log_Msg.h" - -ACE_RCSID(ace, LSOCK_Dgram, "$Id$") - -#if !defined (__ACE_INLINE__) -#include "ace/LSOCK_Dgram.inl" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_Dgram) - -void -ACE_LSOCK_Dgram::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_LSOCK_Dgram::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_SOCK_Dgram::dump (); - ACE_LSOCK::dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// The "do nothing" constructor. - -ACE_LSOCK_Dgram::ACE_LSOCK_Dgram (void) -{ - ACE_TRACE ("ACE_LSOCK_Dgram::ACE_LSOCK_Dgram"); -} - -// Here's the general-purpose open routine. - -int -ACE_LSOCK_Dgram::open (const ACE_Addr &local, - int protocol_family, - int protocol) -{ - ACE_TRACE ("ACE_LSOCK_Dgram::open"); - if (ACE_SOCK_Dgram::open (local, - protocol_family, - protocol) == -1) - return -1; - ACE_LSOCK::set_handle (this->ACE_SOCK_Dgram::get_handle ()); - return 0; -} - -// Create a local ACE_SOCK datagram. - -ACE_LSOCK_Dgram::ACE_LSOCK_Dgram (const ACE_Addr &local, - int protocol_family, - int protocol) -{ - ACE_TRACE ("ACE_LSOCK_Dgram::ACE_LSOCK_Dgram"); - if (this->open (local, - protocol_family, - protocol) == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("ACE_LSOCK_Dgram"))); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ diff --git a/ACE/ace/LSOCK_Dgram.h b/ACE/ace/LSOCK_Dgram.h deleted file mode 100644 index d93face8cfb..00000000000 --- a/ACE/ace/LSOCK_Dgram.h +++ /dev/null @@ -1,74 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file LSOCK_Dgram.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_LOCAL_SOCK_DGRAM_H -#define ACE_LOCAL_SOCK_DGRAM_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_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/SOCK_Dgram.h" -#include "ace/LSOCK.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_LSOCK_Dgram - * - * @brief Create a Local ACE_SOCK datagram. - */ -class ACE_Export ACE_LSOCK_Dgram : public ACE_SOCK_Dgram, public ACE_LSOCK -{ -public: - // = Initialization methods. - /// Default constructor. - ACE_LSOCK_Dgram (void); - - /// Initiate a local dgram. - ACE_LSOCK_Dgram (const ACE_Addr &local, - int protocol_family = PF_UNIX, - int protocol = 0); - - /// Initiate a local dgram. - int open (const ACE_Addr &local, - int protocol_family = PF_UNIX, - int protocol = 0); - - /// Get handle. - ACE_HANDLE get_handle (void) const; - - /// Set handle. - void set_handle (ACE_HANDLE); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/LSOCK_Dgram.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ -#include /**/ "ace/post.h" -#endif /* ACE_LOCAL_SOCK_DGRAM_H */ diff --git a/ACE/ace/LSOCK_Dgram.inl b/ACE/ace/LSOCK_Dgram.inl deleted file mode 100644 index 2c29136e06d..00000000000 --- a/ACE/ace/LSOCK_Dgram.inl +++ /dev/null @@ -1,22 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE void -ACE_LSOCK_Dgram::set_handle (ACE_HANDLE h) -{ - ACE_TRACE ("ACE_LSOCK_Dgram::set_handle"); - this->ACE_SOCK_Dgram::set_handle (h); - this->ACE_LSOCK::set_handle (h); -} - -ACE_INLINE ACE_HANDLE -ACE_LSOCK_Dgram::get_handle (void) const -{ - ACE_TRACE ("ACE_LSOCK_Dgram::get_handle"); - return this->ACE_SOCK_Dgram::get_handle (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/LSOCK_Stream.cpp b/ACE/ace/LSOCK_Stream.cpp deleted file mode 100644 index 6ac123661cf..00000000000 --- a/ACE/ace/LSOCK_Stream.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// $Id$ - -#include "ace/LSOCK_Stream.h" -#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) - -#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" -#endif /* __ACE_INLINE__ */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_LSOCK_Stream) - -int -ACE_LSOCK_Stream::get_local_addr (ACE_Addr &addr) const -{ - ACE_TRACE ("ACE_LSOCK_Stream::get_local_addr"); - - // Perform the downcast since had better be an - // . - ACE_UNIX_Addr *rhs_unix_addr = dynamic_cast (&addr); - ACE_UNIX_Addr lhs_unix_addr; - - if (rhs_unix_addr == 0) - return -1; - else if (ACE_SOCK::get_local_addr (lhs_unix_addr) == -1) - return -1; - else - { - *rhs_unix_addr = lhs_unix_addr; - return 0; - } -} - -int -ACE_LSOCK_Stream::get_remote_addr (ACE_Addr &addr) const -{ - ACE_TRACE ("ACE_LSOCK_Stream::get_remote_addr"); - - return this->get_local_addr (addr); -} - -void -ACE_LSOCK_Stream::dump (void) const -{ - ACE_TRACE ("ACE_LSOCK_Stream::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_SOCK_Stream::dump (); - ACE_LSOCK::dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -#if defined (ACE_HAS_MSG) - -// Send a readv-style vector of buffers, along with an open I/O -// handle. - -ssize_t -ACE_LSOCK_Stream::send_msg (const iovec iov[], - size_t n, - ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_LSOCK_Stream::send_msg"); - msghdr send_msg; -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - char cmsgbuf[ACE_BSD_CONTROL_MSG_LEN]; - cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf; -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - - send_msg.msg_iov = const_cast (iov); - send_msg.msg_iovlen = n; - send_msg.msg_name = 0; - send_msg.msg_namelen = 0; - -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - cmsgptr->cmsg_level = SOL_SOCKET; - cmsgptr->cmsg_type = SCM_RIGHTS; - cmsgptr->cmsg_len = sizeof cmsgbuf; - send_msg.msg_control = cmsgbuf; - send_msg.msg_controllen = sizeof cmsgbuf; - *(ACE_HANDLE *) CMSG_DATA (cmsgptr) = handle; - send_msg.msg_flags = 0 ; -#else - send_msg.msg_accrights = (char *) &handle; - send_msg.msg_accrightslen = sizeof handle; -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - - return ACE_OS::sendmsg (this->ACE_SOCK_Stream::get_handle (), - &send_msg, 0); -} - -// Read a readv-style vector of buffers, along with an open I/O -// handle. - -ssize_t -ACE_LSOCK_Stream::recv_msg (iovec iov[], - size_t n, - ACE_HANDLE &handle) -{ - ACE_TRACE ("ACE_LSOCK_Stream::recv_msg"); - msghdr recv_msg; -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - char cmsgbuf[ACE_BSD_CONTROL_MSG_LEN]; - cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf; -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - - recv_msg.msg_iov = (iovec *) iov; - recv_msg.msg_iovlen = n; - recv_msg.msg_name = 0; - recv_msg.msg_namelen = 0; - -#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) - recv_msg.msg_control = cmsgbuf; - recv_msg.msg_controllen = sizeof cmsgbuf; - ssize_t result = ACE_OS::recvmsg (this->ACE_SOCK_Stream::get_handle (), - &recv_msg, 0); - handle = *(ACE_HANDLE*) CMSG_DATA (cmsgptr) ; - return result; -#else - recv_msg.msg_accrights = (char *) &handle; - recv_msg.msg_accrightslen = sizeof handle; - - return ACE_OS::recvmsg (this->ACE_SOCK_Stream::get_handle (), - &recv_msg, 0); -#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ -} -#endif /* ACE_HAS_MSG */ - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ diff --git a/ACE/ace/LSOCK_Stream.h b/ACE/ace/LSOCK_Stream.h deleted file mode 100644 index 99d50e6dbaf..00000000000 --- a/ACE/ace/LSOCK_Stream.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file LSOCK_Stream.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_LOCAL_SOCK_STREAM_H -#define ACE_LOCAL_SOCK_STREAM_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_LACKS_UNIX_DOMAIN_SOCKETS) - -#include "ace/SOCK_Stream.h" -#include "ace/UNIX_Addr.h" -#include "ace/LSOCK.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_LSOCK_Stream - * - * @brief Create a Local ACE_SOCK stream. - */ -class ACE_Export ACE_LSOCK_Stream : public ACE_SOCK_Stream, public ACE_LSOCK -{ -public: - // = Send/recv methods. - /// Send iovecs via <::writev>. - ssize_t send_msg (const iovec iov[], - size_t n, - ACE_HANDLE handle); - - /// Send iovecs via <::writev>. - ssize_t recv_msg (iovec iov[], - size_t n, - ACE_HANDLE &handle); - - /// Get handle. - ACE_HANDLE get_handle (void) const; - - /// Overrides set_handle from the base classes. - void set_handle (ACE_HANDLE fd); - - // = Meta-type info - typedef ACE_UNIX_Addr PEER_ADDR; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - - /// This method simply returns the "local" addr. - int get_local_addr (ACE_Addr &) const; - - /// This method returns the "local" addr since it's the same value - /// for UNIX domain sockets. - int get_remote_addr (ACE_Addr &) const; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/LSOCK_Stream.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ -#include /**/ "ace/post.h" -#endif /* ACE_LOCAL_SOCK_STREAM_H */ diff --git a/ACE/ace/LSOCK_Stream.inl b/ACE/ace/LSOCK_Stream.inl deleted file mode 100644 index bf7e45b376d..00000000000 --- a/ACE/ace/LSOCK_Stream.inl +++ /dev/null @@ -1,25 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// Sets both the file descriptors... Overrides handle from the base -// classes. - -ACE_INLINE void -ACE_LSOCK_Stream::set_handle (ACE_HANDLE fd) -{ - ACE_TRACE ("ACE_LSOCK_Stream::set_handle"); - this->ACE_SOCK_Stream::set_handle (fd); - this->ACE_LSOCK::set_handle (fd); -} - -ACE_INLINE ACE_HANDLE -ACE_LSOCK_Stream::get_handle (void) const -{ - ACE_TRACE ("ACE_LSOCK_Stream::get_handle"); - return this->ACE_SOCK_Stream::get_handle (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Lib_Find.cpp b/ACE/ace/Lib_Find.cpp deleted file mode 100644 index 6db6d78973b..00000000000 --- a/ACE/ace/Lib_Find.cpp +++ /dev/null @@ -1,769 +0,0 @@ -// $Id$ - -#include "ace/Lib_Find.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_errno.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_unistd.h" -#include "ace/OS_NS_stdlib.h" -#include "ace/OS_Memory.h" -#include "ace/OS_NS_fcntl.h" - -#if defined (ACE_WIN32) -# include "ace/OS_NS_strings.h" -#endif /* ACE_WIN32 */ - -#if defined (ACE_OPENVMS) -#include "ace/RB_Tree.h" -#include "ace/Thread_Mutex.h" -#include "ace/Singleton.h" - -#include /**/ "descrip.h" -#include /**/ "chfdef.h" -#include /**/ "stsdef.h" -#include /**/ "libdef.h" - -extern "C" int LIB$FIND_IMAGE_SYMBOL(...); - -class ACE_LD_Symbol_Registry -{ - // @internal - // = TITLE - // Implements a class to register symbols and addresses for use with DLL - // symbol retrieval. - // - // = DESCRIPTION - // OpenVMS restricts symbol length to 31 characters encoding any symbols - // longer than that. In these cases dlsym() only works with the encoded - // names. - // This creates serious problems for the service configurator framework - // where the factory method names often exceed 31 chars and where loading - // is based on retrieval of method pointers using the *full* name. - // For OpenVMS we therefor added this singleton class and the - // ACE_Dynamic_Svc_Registrar class which registers full names and function - // pointers with this singleton at the time the static ACE_Dynamic_Svc_Registrar - // object is created in a (service) DLL. - // By forcing the DLL to load using a common symbol ("NULL") we trigger static - // object creation *before* the full names are referenced. - // Symbol references will be resolved as follows on OpenVMS: - // - first try directly from DLL using the RTL dlsym() function and if that fails; - // - try to find symbol in singleton registry. -public: - - typedef ACE_RB_Tree, - ACE_Thread_Mutex> - TREE; - - void register_symbol (const ACE_TCHAR* symname, void* symaddr); - - void* find_symbol (const ACE_TCHAR* symname); - - ACE_LD_Symbol_Registry () {} -private: - - TREE symbol_registry_; -}; - -void -ACE_LD_Symbol_Registry::register_symbol (const ACE_TCHAR* symname, - void* symaddr) -{ - int const result = symbol_registry_.bind (symname, symaddr); - if (result == 1) - { - ACE_DEBUG((LM_INFO, ACE_TEXT ("ACE_LD_Symbol_Registry:") - ACE_TEXT (" duplicate symbol %s registered\n"), - ACE_TEXT_ALWAYS_CHAR (symname))); - } - else if (result == -1) - { - ACE_ERROR((LM_ERROR, ACE_TEXT ("ACE_LD_Symbol_Registry:") - ACE_TEXT (" failed to register symbol %s\n"), - ACE_TEXT_ALWAYS_CHAR (symname))); - } -} - -void* -ACE_LD_Symbol_Registry::find_symbol (const ACE_TCHAR* symname) -{ - void* symaddr = 0; - int const result = symbol_registry_.find (symname, symaddr); - - return (result == 0 ? symaddr : 0); -} - -/// Declare a process wide singleton -ACE_SINGLETON_DECLARE (ACE_Singleton, - ACE_LD_Symbol_Registry, - ACE_Thread_Mutex) - -typedef ACE_Singleton - ACE_LD_SYMBOL_REGISTRY; - -#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION) -template ACE_Singleton * - ACE_Singleton::singleton_; -#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */ -#endif - -ACE_RCSID(ace, Lib_Find, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -int -ACE::ldfind (const ACE_TCHAR* filename, - ACE_TCHAR pathname[], - size_t maxpathnamelen) -{ - ACE_TRACE ("ACE::ldfind"); -#if defined (ACE_OPENVMS) - if (ACE_OS::strlen(filename) >= maxpathnamelen) - { - errno = ENOMEM; - return -1; - } - - dsc$descriptor nameDsc; - nameDsc.dsc$b_class = DSC$K_CLASS_S; - nameDsc.dsc$b_dtype = DSC$K_DTYPE_T; - nameDsc.dsc$w_length = ACE_OS::strlen(filename); - nameDsc.dsc$a_pointer = (char*)filename; - - char symbol[] = "NULL"; - dsc$descriptor symbolDsc; - symbolDsc.dsc$b_class = DSC$K_CLASS_S; - symbolDsc.dsc$b_dtype = DSC$K_DTYPE_T; - symbolDsc.dsc$w_length = ACE_OS::strlen(symbol); - symbolDsc.dsc$a_pointer = symbol; - - int symbolValue; - int result; - try - { - result = LIB$FIND_IMAGE_SYMBOL(&nameDsc, &symbolDsc, &symbolValue, 0, 0); - } - catch (chf$signal_array& sig) - { - result = sig.chf$l_sig_name; - } - - int severity = result & STS$M_SEVERITY; - int conditionId = result & STS$M_COND_ID; - if (severity == STS$K_SUCCESS || severity == STS$K_WARNING || severity == STS$K_INFO || - (severity == STS$K_ERROR && conditionId == (LIB$_KEYNOTFOU & STS$M_COND_ID))) - { - ACE_OS::strcpy(pathname, filename); - return 0; - } - - if (ACE_OS::strlen(filename) + ACE_OS::strlen(ACE_DLL_PREFIX) >= maxpathnamelen) - { - errno = ENOMEM; - return -1; - } - - - ACE_OS::strcpy(pathname, ACE_DLL_PREFIX); - ACE_OS::strcat(pathname, filename); - nameDsc.dsc$w_length = ACE_OS::strlen(pathname); - nameDsc.dsc$a_pointer = pathname; - try - { - result = LIB$FIND_IMAGE_SYMBOL(&nameDsc, &symbolDsc, &symbolValue, 0, 0); - } - catch (chf$signal_array& sig) - { - result = sig.chf$l_sig_name; - } - - severity = result & STS$M_SEVERITY; - conditionId = result & STS$M_COND_ID; - if (severity == STS$K_SUCCESS || severity == STS$K_WARNING || severity == STS$K_INFO || - (severity == STS$K_ERROR && conditionId == (LIB$_KEYNOTFOU & STS$M_COND_ID))) - { - return 0; - } - errno = ENOENT; - return -1; -#endif /* ACE_OPENVMS */ - -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && \ - !defined (ACE_HAS_PHARLAP) - ACE_TCHAR expanded_filename[MAXPATHLEN]; - if (ACE_TEXT_ExpandEnvironmentStrings (filename, - expanded_filename, - sizeof expanded_filename - / sizeof (ACE_TCHAR))) - filename = expanded_filename; -#endif /* ACE_WIN32 && !ACE_HAS_WINCE && !ACE_HAS_PHARLAP */ - - ACE_TCHAR tempcopy[MAXPATHLEN + 1]; - ACE_TCHAR searchpathname[MAXPATHLEN + 1]; -#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) - ACE_TCHAR decorator[] = ACE_LD_DECORATOR_STR; - ACE_TCHAR searchfilename[MAXPATHLEN + sizeof(decorator) / sizeof (ACE_TCHAR)]; -#else - ACE_TCHAR searchfilename[MAXPATHLEN + 1]; -#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */ - - // Create a copy of filename to work with. - if (ACE_OS::strlen (filename) + 1 - > (sizeof tempcopy / sizeof (ACE_TCHAR))) - { - errno = ENOMEM; - return -1; - } - else - ACE_OS::strcpy (tempcopy, filename); - - // Insert canonical directory separators. - ACE_TCHAR *separator_ptr; - -#if (ACE_DIRECTORY_SEPARATOR_CHAR != '/') - // Make all the directory separators "canonical" to simplify - // subsequent code. - ACE::strrepl (tempcopy, ACE_DIRECTORY_SEPARATOR_CHAR, '/'); -#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */ - - // Separate filename from pathname. - separator_ptr = ACE_OS::strrchr (tempcopy, '/'); - - // This is a relative path. - if (separator_ptr == 0) - { - searchpathname[0] = '\0'; - ACE_OS::strcpy (searchfilename, tempcopy); - } - else // This is an absolute path. - { - ACE_OS::strcpy (searchfilename, separator_ptr + 1); - separator_ptr[1] = '\0'; - ACE_OS::strcpy (searchpathname, tempcopy); - } - - bool has_suffix = false; - - // Check to see if this has an appropriate DLL suffix for the OS - // platform. - ACE_TCHAR *s = ACE_OS::strrchr (searchfilename, '.'); - - const ACE_TCHAR *dll_suffix = ACE_DLL_SUFFIX; - - if (s != 0) - { - // If we have a dot, we have a suffix - has_suffix = true; - - // Check whether this matches the appropriate platform-specific - // suffix. -#if defined (ACE_WIN32) - // Use on any platform with - // case-insensitive filenames. - if (ACE_OS::strcasecmp (s, dll_suffix) != 0) -#else - if (ACE_OS::strcmp (s, dll_suffix) != 0) -#endif /* ACE_WIN32 */ - { - ACE_ERROR ((LM_WARNING, - ACE_TEXT ("Warning: improper suffix for a ") - ACE_TEXT ("shared library on this platform: %s\n"), - s)); - } - } - - // Make sure we've got enough space in searchfilename. - if (ACE_OS::strlen (searchfilename) - + ACE_OS::strlen (ACE_DLL_PREFIX) - + (has_suffix ? 0 : ACE_OS::strlen (dll_suffix)) - >= (sizeof searchfilename / sizeof (ACE_TCHAR))) - { - errno = ENOMEM; - return -1; - } - -#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) - size_t len_searchfilename = ACE_OS::strlen (searchfilename); - if (! has_suffix) - ACE_OS::strcpy (searchfilename + len_searchfilename, - decorator); - - for (int tag = 1; tag >= 0; tag --) - { - if (tag == 0) - searchfilename [len_searchfilename] = 0; - -#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */ - // Use absolute pathname if there is one. - if (ACE_OS::strlen (searchpathname) > 0) - { - if (ACE_OS::strlen (searchfilename) - + ACE_OS::strlen (searchpathname) >= maxpathnamelen) - { - errno = ENOMEM; - return -1; - } - else - { -#if (ACE_DIRECTORY_SEPARATOR_CHAR != '/') - // Revert to native path name separators. - ACE::strrepl (searchpathname, - '/', - ACE_DIRECTORY_SEPARATOR_CHAR); -#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */ - // First, try matching the filename *without* adding a - // prefix. - ACE_OS::sprintf (pathname, - ACE_TEXT ("%s%s%s"), - searchpathname, - searchfilename, - has_suffix ? ACE_TEXT ("") : dll_suffix); - if (ACE_OS::access (pathname, F_OK) == 0) - return 0; - - // Second, try matching the filename *with* adding a prefix. - ACE_OS::sprintf (pathname, - ACE_TEXT ("%s%s%s%s"), - searchpathname, - ACE_DLL_PREFIX, - searchfilename, - has_suffix ? ACE_TEXT ("") : dll_suffix); - if (ACE_OS::access (pathname, F_OK) == 0) - return 0; - } - } - - // Use relative filenames via LD_LIBRARY_PATH or PATH (depending on - // OS platform). - else - { -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) - ACE_TCHAR *file_component = 0; - DWORD pathlen = - ACE_TEXT_SearchPath (0, - searchfilename, - dll_suffix, - static_cast (maxpathnamelen), - pathname, - &file_component); - if (pathlen >= maxpathnamelen) - { - errno = ENOMEM; - return -1; - } - else if (pathlen > 0) - return 0; - - // In case not found we should try again with the ACE_DLL_PREFIX - // prefixed - ACE_OS::strcpy (searchfilename, ACE_DLL_PREFIX); - ACE_OS::strcat (searchfilename, tempcopy); - pathlen = - ACE_TEXT_SearchPath (0, - searchfilename, - dll_suffix, - static_cast (maxpathnamelen), - pathname, - &file_component); - if (pathlen >= maxpathnamelen) - { - errno = ENOMEM; - return -1; - } - else if (pathlen > 0) - return 0; -#else - ACE_TCHAR *ld_path; -# if defined ACE_DEFAULT_LD_SEARCH_PATH - ld_path = ACE_DEFAULT_LD_SEARCH_PATH; -# else -# if defined (ACE_WIN32) || !defined (ACE_USES_WCHAR) - ld_path = ACE_OS::getenv (ACE_LD_SEARCH_PATH); -# else - // Wide-char, non-Windows only offers char * getenv. So capture - // it, translate to wide-char, and continue. - ACE_Ascii_To_Wide wide_ldpath - (ACE_OS::getenv (ACE_TEXT_ALWAYS_CHAR (ACE_LD_SEARCH_PATH))); - ld_path = wide_ldpath.wchar_rep (); -# endif /* ACE_WIN32 || !ACE_USES_WCHAR */ -# endif /* ACE_DEFAULT_LD_SEARCH_PATH */ - -#if defined (ACE_HAS_WINCE) - ACE_TCHAR *ld_path_temp = 0; - if (ld_path != 0) - { - ld_path_temp = (ACE_TCHAR *) - ACE_OS::malloc ((ACE_OS::strlen (ld_path) + 2) - * sizeof (ACE_TCHAR)); - if (ld_path_temp != 0) - { - ACE_OS::strcpy (ld_path_temp, - ACE_LD_SEARCH_PATH_SEPARATOR_STR); - - ACE_OS::strcat (ld_path_temp, ld_path); - ld_path = ld_path_temp; - } - else - { - ACE_OS::free ((void *) ld_path_temp); - ld_path = ld_path_temp = 0; - } - } -#endif /* ACE_HAS_WINCE */ - - if (ld_path != 0 - && (ld_path = ACE_OS::strdup (ld_path)) != 0) - { - // strtok has the strange behavior of not separating the - // string ":/foo:/bar" into THREE tokens. One would expect - // that the first iteration the token would be an empty - // string, the second iteration would be "/foo", and the - // third iteration would be "/bar". However, this is not - // the case; one only gets two iterations: "/foo" followed - // by "/bar". - - // This is especially a problem in parsing Unix paths - // because it is permissible to specify 'the current - // directory' as an empty entry. So, we introduce the - // following special code to cope with this: - - // Look at each dynamic lib directory in the search path. - - ACE_TCHAR *nextholder = 0; - const ACE_TCHAR *path_entry = - ACE::strsplit_r (ld_path, - ACE_LD_SEARCH_PATH_SEPARATOR_STR, - nextholder); - int result = 0; - - for (;;) - { - // Check if at end of search path. - if (path_entry == 0) - { - errno = ENOENT; - result = -1; - break; - } - else if (ACE_OS::strlen (path_entry) - + 1 - + ACE_OS::strlen (searchfilename) - >= maxpathnamelen) - { - errno = ENOMEM; - result = -1; - break; - } - // This works around the issue where a path might have - // an empty component indicating 'current directory'. - // We need to do it here rather than anywhere else so - // that the loop condition will still work. - else if (path_entry[0] == '\0') - path_entry = ACE_TEXT ("."); - - // First, try matching the filename *without* adding a - // prefix. - ACE_OS::sprintf (pathname, - ACE_TEXT ("%s%c%s%s"), - path_entry, - ACE_DIRECTORY_SEPARATOR_CHAR, - searchfilename, - has_suffix ? ACE_TEXT ("") : dll_suffix); - if (ACE_OS::access (pathname, F_OK) == 0) - break; - - // Second, try matching the filename *with* adding a - // prefix. - ACE_OS::sprintf (pathname, - ACE_TEXT ("%s%c%s%s%s"), - path_entry, - ACE_DIRECTORY_SEPARATOR_CHAR, - ACE_DLL_PREFIX, - searchfilename, - has_suffix ? ACE_TEXT ("") : dll_suffix); - if (ACE_OS::access (pathname, F_OK) == 0) - break; - - // Fetch the next item in the path - path_entry = - ACE::strsplit_r (0, - ACE_LD_SEARCH_PATH_SEPARATOR_STR, - nextholder); - } - -#if defined (ACE_HAS_WINCE) - if (ld_path_temp != 0) - ACE_OS::free (ld_path_temp); -#endif /* ACE_HAS_WINCE */ - ACE_OS::free ((void *) ld_path); -#if defined (ACE_HAS_WINCE) && defined (ACE_LD_DECORATOR_STR) && \ - !defined (ACE_DISABLE_DEBUG_DLL_CHECK) - if (result == 0 || tag == 0) -#endif /* ACE_HAS_WINCE && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */ - return result; - } -#endif /* ACE_WIN32 && !ACE_HAS_WINCE */ - } -#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) - } -#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */ - - errno = ENOENT; - return -1; -} - -FILE * -ACE::ldopen (const ACE_TCHAR *filename, - const ACE_TCHAR *type) -{ - ACE_TRACE ("ACE::ldopen"); - - ACE_TCHAR buf[MAXPATHLEN + 1]; - if (ACE::ldfind (filename, - buf, - sizeof (buf) /sizeof (ACE_TCHAR)) == -1) - return 0; - else - return ACE_OS::fopen (buf, type); -} - -ACE_TCHAR * -ACE::ldname (const ACE_TCHAR *entry_point) -{ - ACE_TRACE ("ACE::ldname"); - -#if defined(ACE_NEEDS_DL_UNDERSCORE) - size_t size = - 1 // leading '_' - + ACE_OS::strlen (entry_point) - + 1; - - ACE_TCHAR *new_name; - ACE_NEW_RETURN (new_name, - ACE_TCHAR[size], - 0); - - ACE_OS::strcpy (new_name, ACE_TEXT ("_")); - ACE_OS::strcat (new_name, entry_point); - - return new_name; -#else /* ACE_NEEDS_DL_UNDERSCORE */ - size_t size = - ACE_OS::strlen (entry_point) - + 1; - - ACE_TCHAR *new_name; - ACE_NEW_RETURN (new_name, - ACE_TCHAR[size], - 0); - - ACE_OS::strcpy (new_name, entry_point); - return new_name; -#endif /* ACE_NEEDS_DL_UNDERSCORE */ -} - -#if defined (ACE_OPENVMS) -void -ACE::ldregister (const ACE_TCHAR *entry_point, - void* entry_addr) -{ - ACE_LD_SYMBOL_REGISTRY::instance ()->register_symbol (entry_point, - entry_addr); -} - -void * -ACE::ldsymbol (ACE_SHLIB_HANDLE sh, const ACE_TCHAR *entry_point) -{ - void* symaddr = ACE_OS::dlsym (sh, entry_point); - // if not found through dlsym() try registry - if (symaddr == 0) - symaddr = ACE_LD_SYMBOL_REGISTRY::instance ()->find_symbol (entry_point); - - return symaddr; -} -#endif - -int -ACE::get_temp_dir (ACE_TCHAR *buffer, size_t buffer_len) -{ - int result; -#if defined (ACE_WIN32) - result = ACE_TEXT_GetTempPath (static_cast (buffer_len), - buffer); - - // Make sure to return -1 if there is an error - if (result == 0 && ::GetLastError () != ERROR_SUCCESS - || result > static_cast (buffer_len)) - result = -1; - -#else /* ACE_WIN32 */ - - // NOTE! Non-Windows platforms don't deal with wide chars for env. - // variables, so do this narrow-char and convert to wide for the - // caller if necessary. - - // On non-win32 platforms, check to see what the TMPDIR environment - // variable is defined to be. If it doesn't exist, just use /tmp - const char *tmpdir = ACE_OS::getenv ("TMPDIR"); - - if (tmpdir == 0) - tmpdir = "/tmp"; - - size_t len = ACE_OS::strlen (tmpdir); - - // Check to see if the buffer is large enough for the string, - // another /, and its null character (hence the + 2) - if ((len + 2) > buffer_len) - { - result = -1; - } - else - { - ACE_OS::strcpy (buffer, ACE_TEXT_CHAR_TO_TCHAR (tmpdir)); - - // Add a trailing slash because we cannot assume there is already one - // at the end. And having an extra one should not cause problems. - buffer[len] = ACE_TEXT ('/'); - buffer[len + 1] = 0; - result = 0; - } -#endif /* ACE_WIN32 */ - return result; -} - -ACE_HANDLE -ACE::open_temp_file (const ACE_TCHAR *name, int mode, int perm) -{ -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (perm); - ACE_HANDLE handle = ACE_OS::open (name, - mode, - FILE_SHARE_READ - | FILE_SHARE_WRITE - | FILE_SHARE_DELETE); -#else - // Open it. - ACE_HANDLE handle = ACE_OS::open (name, mode, perm); -#endif /* ACE_WIN32 */ - - if (handle == ACE_INVALID_HANDLE) - return ACE_INVALID_HANDLE; - - // Unlink it so that the file will be removed automatically when the - // process goes away. - if (ACE_OS::unlink (name) == -1) - return ACE_INVALID_HANDLE; - else - // Return the handle. - return handle; -} - -size_t -ACE::strrepl (char *s, char search, char replace) -{ - ACE_TRACE ("ACE::strrepl"); - - size_t replaced = 0; - - for (size_t i = 0; s[i] != '\0'; i++) - if (s[i] == search) - { - s[i] = replace; - ++replaced; - } - - return replaced; -} - - -// Split a string up into 'token'-delimited pieces, ala Perl's -// "split". - -char * -ACE::strsplit_r (char *str, - const char *token, - char *&next_start) -{ - char *result = 0; - - if (str != 0) - next_start = str; - - if (next_start != 0) - { - char *tok_loc = ACE_OS::strstr (next_start, token); - - if (tok_loc != 0) - { - // Return the beginning of the string. - result = next_start; - - // Insure it's terminated. - *tok_loc = '\0'; - next_start = tok_loc + ACE_OS::strlen (token); - } - else - { - result = next_start; - next_start = (char *) 0; - } - } - - return result; -} - -#if defined (ACE_HAS_WCHAR) -wchar_t * -ACE::strsplit_r (wchar_t *str, - const wchar_t *token, - wchar_t *&next_start) -{ - wchar_t *result = 0; - - if (str != 0) - next_start = str; - - if (next_start != 0) - { - wchar_t *tok_loc = ACE_OS::strstr (next_start, token); - - if (tok_loc != 0) - { - // Return the beginning of the string. - result = next_start; - - // Insure it's terminated. - *tok_loc = '\0'; - next_start = tok_loc + ACE_OS::strlen (token); - } - else - { - result = next_start; - next_start = (wchar_t *) 0; - } - } - - return result; -} - -size_t -ACE::strrepl (wchar_t *s, wchar_t search, wchar_t replace) -{ - ACE_TRACE ("ACE::strrepl"); - - size_t replaced = 0; - - for (size_t i = 0; s[i] != '\0'; i++) - if (s[i] == search) - { - s[i] = replace; - ++replaced; - } - - return replaced; -} -#endif /* ACE_HAS_WCHAR */ - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Lib_Find.h b/ACE/ace/Lib_Find.h deleted file mode 100644 index ef146bb337d..00000000000 --- a/ACE/ace/Lib_Find.h +++ /dev/null @@ -1,131 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Lib_Find.h - * - * All the static function calls needed to search and open shared - * libraries. - * - * $Id$ - */ -//============================================================================= - -#ifndef ACE_LIB_FIND_H -#define ACE_LIB_FIND_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/config-all.h" -#include /**/ "ace/ACE_export.h" -#include "ace/os_include/os_stdio.h" -#if defined (ACE_OPENVMS) -# include "ace/OS_NS_dlfcn.h" -#endif - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace ACE -{ - // = Methods for searching and opening shared libraries. - - /** - * Finds the file @a filename either using an absolute path or using - * a relative path in conjunction with ACE_LD_SEARCH_PATH (e.g., - * $LD_LIBRARY_PATH on UNIX or the directories scaned by Win32 API - * SearchPath on Win32). This function will add appropriate suffix - * (e.g., .dll on Win32 or .so on UNIX) according to the OS - * platform. In addition, this function will apply the appropriate - * prefix (e.g., "lib" on UNIX and "" on Win32) if the @a filename - * doesn't match directly. - */ - extern ACE_Export int ldfind (const ACE_TCHAR* filename, - ACE_TCHAR pathname[], - size_t maxpathnamelen); - - /** - * Uses @c ldfind to locate and open the appropriate @a filename and - * returns a pointer to the file, else it returns a NULL - * pointer. @a type specifies how the file should be open. - */ - extern ACE_Export FILE *ldopen (const ACE_TCHAR *filename, - const ACE_TCHAR *type); - - /** - * Transforms @a entry_point into a form that can be located in a - * dynamic library using . For example, with Win32/Borland - * extern "C" functions which use the default calling convention - * have a '_' prepended. Always returns a buffer that has been - * dynamically allocated using . - */ - extern ACE_Export ACE_TCHAR *ldname (const ACE_TCHAR *entry_point); - - -#if defined (ACE_OPENVMS) - /** - * Registers an @a entry_point and its address for later retrieval - * through the ACE::ldsymbol () method. - * For use in cases where the OS compiler encodes long symbolnames. - */ - extern ACE_Export void ldregister (const ACE_TCHAR *entry_point, - void* entry_addr); - - /** - * Looks up an @a entry_point address either from previously registered - * symbols or through ACE_OS::dlsym (). - * Returns 0 in case the entry_point is not found, otherwise nonzero. - * For use in cases where the OS compiler encodes long symbolnames. - */ - extern ACE_Export void *ldsymbol (ACE_SHLIB_HANDLE sh, - const ACE_TCHAR *entry_point); -#endif - - /** - * Returns the temporary directory including the trailing slash in - * @a buffer. Returns -1 for an error or if the buffer_len is not - * long enough. - */ - extern ACE_Export int get_temp_dir (ACE_TCHAR *buffer, size_t buffer_len); - - /// Opening the temp file. File is automagically unlinked when it is - /// closed. This is useful for have temp files. - extern ACE_Export ACE_HANDLE open_temp_file (const ACE_TCHAR *name, - int mode, - int perm = 0); - - // @@ Though the following functions dont come under the same category as - // above, these are used only in the functions in this class. So it makes - // more sense to move these functions too to this class. - // - /// Replace all instances of @a search in @a s with @a replace. Returns - /// the number of replacements made. - extern ACE_Export size_t strrepl (char *s, char search, char replace); - - /** - * Splits string into pieces separated by the string . - * 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 function except that - * it returns pieces one at a time instead of into an array. - */ - extern ACE_Export char *strsplit_r (char *s, - const char *token, - char *&next_start); - -#if defined (ACE_HAS_WCHAR) - /// As strrepl, but for wide characters. - extern ACE_Export size_t strrepl (wchar_t *s, - wchar_t search, - wchar_t replace); - - /// As strsplit_r, but for wide characters. - extern ACE_Export wchar_t *strsplit_r (wchar_t *s, - const wchar_t *token, - wchar_t *&next_start); -#endif /* ACE_HAS_WCHAR */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* ACE_LIB_FIND_H */ - diff --git a/ACE/ace/Local_Memory_Pool.cpp b/ACE/ace/Local_Memory_Pool.cpp deleted file mode 100644 index 09dbb19000d..00000000000 --- a/ACE/ace/Local_Memory_Pool.cpp +++ /dev/null @@ -1,144 +0,0 @@ -// $Id$ - -// Local_Memory_Pool.cpp -#include "ace/Local_Memory_Pool.h" -#include "ace/Auto_Ptr.h" -#include "ace/OS_Memory.h" -#include "ace/Log_Msg.h" - -ACE_RCSID(ace, Local_Memory_Pool, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_ALLOC_HOOK_DEFINE(ACE_Local_Memory_Pool) - -void -ACE_Local_Memory_Pool::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Local_Memory_Pool::dump"); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Local_Memory_Pool::ACE_Local_Memory_Pool (const ACE_TCHAR *, - const OPTIONS *) -{ - ACE_TRACE ("ACE_Local_Memory_Pool::ACE_Local_Memory_Pool"); -} - -ACE_Local_Memory_Pool::~ACE_Local_Memory_Pool (void) -{ - // Free up all memory allocated by this pool. - this->release (); -} - -// Ask system for initial chunk of local memory. -void * -ACE_Local_Memory_Pool::init_acquire (size_t nbytes, - size_t &rounded_bytes, - int &first_time) -{ - ACE_TRACE ("ACE_Local_Memory_Pool::init_acquire"); - // Note that we assume that when ACE_Local_Memory_Pool is used, - // ACE_Malloc's constructor will only get called once. If this - // assumption doesn't hold, we are in deep trouble! - - first_time = 1; - return this->acquire (nbytes, rounded_bytes); -} - -void * -ACE_Local_Memory_Pool::acquire (size_t nbytes, - size_t &rounded_bytes) -{ - ACE_TRACE ("ACE_Local_Memory_Pool::acquire"); - rounded_bytes = this->round_up (nbytes); - - char *temp = 0; - ACE_NEW_RETURN (temp, - char[rounded_bytes], - 0); - - ACE_Auto_Basic_Array_Ptr cp (temp); - - if (this->allocated_chunks_.insert (cp.get ()) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("(%P|%t) insertion into set failed\n")), - 0); - - return cp.release (); -} - -int -ACE_Local_Memory_Pool::release (int) -{ - ACE_TRACE ("ACE_Local_Memory_Pool::release"); - - // Zap the memory we allocated. - for (ACE_Unbounded_Set::iterator i = this->allocated_chunks_.begin (); - i != this->allocated_chunks_.end (); - ++i) - delete [] *i; - this->allocated_chunks_.reset (); - return 0; -} - -int -ACE_Local_Memory_Pool::sync (ssize_t, int) -{ - ACE_TRACE ("ACE_Local_Memory_Pool::sync"); - return 0; -} - -int -ACE_Local_Memory_Pool::sync (void *, size_t, int) -{ - ACE_TRACE ("ACE_Local_Memory_Pool::sync"); - return 0; -} - -int -ACE_Local_Memory_Pool::protect (ssize_t, int) -{ - ACE_TRACE ("ACE_Local_Memory_Pool::protect"); - return 0; -} - -int -ACE_Local_Memory_Pool::protect (void *, size_t, int) -{ - ACE_TRACE ("ACE_Local_Memory_Pool::protect"); - return 0; -} - -#if defined (ACE_WIN32) -int -ACE_Local_Memory_Pool::seh_selector (void *) -{ - return 0; - // Continue propagate the structural exception up. -} -#endif /* ACE_WIN32 */ - -int -ACE_Local_Memory_Pool::remap (void *) -{ - return 0; - // Not much can be done. -} - -void * -ACE_Local_Memory_Pool::base_addr (void) const -{ - return 0; -} - -// Let the underlying new operator figure out the alignment... -size_t -ACE_Local_Memory_Pool::round_up (size_t nbytes) -{ - ACE_TRACE ("ACE_Local_Memory_Pool::round_up"); - return ACE::round_to_pagesize (nbytes); -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Local_Memory_Pool.h b/ACE/ace/Local_Memory_Pool.h deleted file mode 100644 index 0a7abe4912a..00000000000 --- a/ACE/ace/Local_Memory_Pool.h +++ /dev/null @@ -1,133 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Local_Memory_Pool.h - * - * $Id$ - * - * @author Dougls C. Schmidt - * @author Prashant Jain - */ -//============================================================================= - -#ifndef ACE_LOCAL_MEMORY_POOL_H -#define ACE_LOCAL_MEMORY_POOL_H -#include /**/ "ace/pre.h" - -#include "ace/os_include/sys/os_mman.h" /* Need PROT_RDWR */ -#include "ace/ACE.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Unbounded_Set.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Local_Memory_Pool_Options - * - * @brief Helper class for Local Memory Pool constructor options. - * - * This should be a nested class, but that breaks too many - * compilers. - */ -class ACE_Export ACE_Local_Memory_Pool_Options -{ -}; - -/** - * @class ACE_Local_Memory_Pool - * - * @brief Make a memory pool that is based on C++ new/delete. This is - * useful for integrating existing components that use new/delete - * into the ACE Malloc scheme... - */ -class ACE_Export ACE_Local_Memory_Pool -{ -public: - typedef ACE_Local_Memory_Pool_Options OPTIONS; - - /// Initialize the pool. - ACE_Local_Memory_Pool (const ACE_TCHAR *backing_store_name = 0, - const OPTIONS *options = 0); - - virtual ~ACE_Local_Memory_Pool (void); - - /// Ask system for initial chunk of local memory. - virtual void *init_acquire (size_t nbytes, - size_t &rounded_bytes, - int &first_time); - - /// Acquire at least @a nbytes from the memory pool. @a rounded_bytes is - /// the actual number of bytes allocated. - virtual void *acquire (size_t nbytes, - size_t &rounded_bytes); - - /// Instruct the memory pool to release all of its resources. - virtual int release (int destroy = 1); - - /** - * Sync @a len bytes of the memory region to the backing store - * starting at base_addr_>. If @a len == -1 then sync the - * whole region. - */ - virtual int sync (ssize_t len = -1, int flags = MS_SYNC); - - /// Sync @a len bytes of the memory region to the backing store - /// starting at @a add_. - virtual 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. If @a len == -1 - * then change protection of all pages in the mapped region. - */ - virtual int protect (ssize_t len = -1, int prot = PROT_RDWR); - - /// Change the protection of the pages of the mapped region to @a prot - /// starting at @a addr up to @a len bytes. - virtual int protect (void *addr, size_t len, int prot = PROT_RDWR); - -#if defined (ACE_WIN32) - /** - * Win32 Structural exception selector. The return value decides - * how to handle memory pool related structural exceptions. Returns - * 1, 0, or , -1. - */ - virtual int seh_selector (void *); -#endif /* ACE_WIN32 */ - - /** - * Try to extend the virtual address space so that @a addr is now - * covered by the address mapping. Always returns 0 since we can't - * remap a local memory pool. - */ - virtual int remap (void *addr); - - /// Return the base address of this memory pool, 0 if base_addr - /// never changes. - virtual void *base_addr (void) const; - - /// Dump the state of an object. - virtual void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// List of memory that we have allocated. - ACE_Unbounded_Set allocated_chunks_; - - /// Implement the algorithm for rounding up the request to an - /// appropriate chunksize. - virtual size_t round_up (size_t nbytes); - -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* ACE_LOCAL_MEMORY_POOL_H */ diff --git a/ACE/ace/Local_Name_Space.cpp b/ACE/ace/Local_Name_Space.cpp deleted file mode 100644 index 7047c234095..00000000000 --- a/ACE/ace/Local_Name_Space.cpp +++ /dev/null @@ -1,169 +0,0 @@ -#include "ace/Local_Name_Space.h" -#include "ace/ACE.h" -#include "ace/RW_Process_Mutex.h" -#include "ace/SString.h" -#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) -{ - if (this->delete_rep_) - delete [] this->rep_; -} - -ACE_WCHAR_T * -ACE_NS_String::fast_rep (void) const -{ - ACE_TRACE ("ACE_NS_String::fast_rep"); - return this->rep_; -} - -ACE_NS_String::operator ACE_NS_WString () const -{ - ACE_TRACE ("ACE_NS_String::operator ACE_NS_WString"); - return ACE_NS_WString (this->rep_, - (this->len_ / sizeof (ACE_WCHAR_T)) - 1); -} - -size_t -ACE_NS_String::len (void) const -{ - ACE_TRACE ("ACE_NS_String::len"); - return this->len_; -} - -char * -ACE_NS_String::char_rep (void) const -{ - ACE_TRACE ("ACE_NS_String::char_rep"); - ACE_NS_WString w_string (this->rep_, - (this->len_ / sizeof (ACE_WCHAR_T)) - 1); - return w_string.char_rep (); -} - -ACE_NS_String::ACE_NS_String (void) - : len_ (0), - rep_ (0), - delete_rep_ (false) -{ - ACE_TRACE ("ACE_NS_String::ACE_NS_String"); -} - -ACE_NS_String::ACE_NS_String (const ACE_NS_WString &s) - : len_ ((s.length () + 1) * sizeof (ACE_WCHAR_T)), - rep_ (s.rep ()), - delete_rep_ (true) -{ - ACE_TRACE ("ACE_NS_String::ACE_NS_String"); -} - -int -ACE_NS_String::strstr (const ACE_NS_String &s) const -{ - ACE_TRACE ("ACE_NS_String::strstr"); - - if (this->len_ < s.len_) - // If they're larger than we are they can't be a substring of us! - return -1; - else if (this->len_ == s.len_) - // Check if we're equal. - return *this == s ? 0 : -1; - else - { - // They're smaller than we are... - const size_t len = (this->len_ - s.len_) / sizeof (ACE_WCHAR_T); - const size_t pat_len = s.len_ / sizeof (ACE_WCHAR_T) - 1; - - for (size_t i = 0; i <= len; ++i) - { - size_t j; - - for (j = 0; j < pat_len; ++j) - if (this->rep_[i + j] != s.rep_[j]) - break; - - if (j == pat_len) - // Found a match! Return the index. - return ACE_Utils::truncate_cast (i); - } - - return -1; - } -} - -bool -ACE_NS_String::operator == (const ACE_NS_String &s) const -{ - ACE_TRACE ("ACE_NS_String::operator =="); - return this->len_ == s.len_ - && ACE_OS::memcmp ((void *) this->rep_, - (void *) s.rep_, this->len_) == 0; -} - -bool -ACE_NS_String::operator != (const ACE_NS_String &s) const -{ - ACE_TRACE ("ACE_NS_String::operator !="); - return !this->operator == (s); -} - -ACE_NS_String::ACE_NS_String (ACE_WCHAR_T *dst, - const ACE_WCHAR_T *src, - size_t bytes) - : len_ (bytes), - rep_ (dst), - delete_rep_ (false) -{ - ACE_TRACE ("ACE_NS_String::ACE_NS_String"); - ACE_OS::memcpy (this->rep_, src, bytes); -} - -u_long -ACE_NS_String::hash (void) const -{ - return ACE::hash_pjw - (reinterpret_cast (const_cast (this->rep_)), - this->len_); -} - -ACE_NS_Internal::ACE_NS_Internal (void) - : value_ (), - type_ () -{ -} - -ACE_NS_Internal::ACE_NS_Internal (ACE_NS_String &value, const char *type) - : value_ (value), - type_ (type) -{ - ACE_TRACE ("ACE_NS_Internal::ACE_NS_Internal"); -} - -bool -ACE_NS_Internal::operator == (const ACE_NS_Internal &s) const -{ - ACE_TRACE ("ACE_NS_Internal::operator =="); - return this->value_ == s.value_; -} - -ACE_NS_String -ACE_NS_Internal::value (void) -{ - ACE_TRACE ("ACE_NS_Internal::value"); - return this->value_; -} - -const char * -ACE_NS_Internal::type (void) -{ - ACE_TRACE ("ACE_NS_Internal::type"); - return this->type_; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Local_Name_Space.h b/ACE/ace/Local_Name_Space.h deleted file mode 100644 index 381d2d0d5a4..00000000000 --- a/ACE/ace/Local_Name_Space.h +++ /dev/null @@ -1,132 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Local_Name_Space.h - * - * $Id$ - * - * @author Prashant Jain (pjain@cs.wustl.edu) - * @author Irfan Pyarali (irfan@wuerl.wustl.edu) - * @author Douglas C. Schmidt (schmidt@cs.wustl.edu). - */ -//============================================================================= - -#ifndef ACE_LOCAL_NAME_SPACE_H -#define ACE_LOCAL_NAME_SPACE_H - -#include /**/ "ace/pre.h" - -#include "ace/Malloc_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_NS_WString; - -/** - * @class ACE_NS_String - * - * @brief This class and ACE_NS_Internal are used as Adapters to work - * with the Map_Manager. - * - * In order to work correctly, this class must be able to - * convert back and forth with . - */ -class ACE_Export ACE_NS_String -{ -public: - // = Initialization. - /// Default "no-op" constructor. - ACE_NS_String (void); - - /// Initialization method. - ACE_NS_String (ACE_WCHAR_T *dst, - const ACE_WCHAR_T *src, - size_t len); - - /// Converts an ACE_NS_WString to an ACE_NS_String; - ACE_NS_String (const ACE_NS_WString &); - - /// Destructor - ~ACE_NS_String (void); - - /// Converts an ACE_NS_String to fresh copy of an ACE_NS_WString; - operator ACE_NS_WString () const; - - /// Return the ASCII character representation. - char *char_rep (void) const; - - /// Matches on substrings. - int strstr (const ACE_NS_String &) const; - - /// Compare an ACE_NS_String. - bool operator == (const ACE_NS_String &) const; - - /// Compare an ACE_NS_String. - bool operator != (const ACE_NS_String &) const; - - /// Returns length of the string - size_t len (void) const; - - /// Returns the underlying representation. - ACE_WCHAR_T *fast_rep (void) const; - - /// Returns a hash value for this string. - u_long hash (void) const; - -private: - /// Length of the string. - size_t len_; - - /// This actually points into shared/persistent memory. - ACE_WCHAR_T *rep_; - - /// Should rep_ be deleted when destructed (only used - /// for WString conversions) - bool delete_rep_; -}; - -/** - * @class ACE_NS_Internal - * - * @brief This class and ACE_NS_String are used as Adapters to work - * with the Map_Manager. - */ -class ACE_Export ACE_NS_Internal -{ -public: - /// No-op constructor. - ACE_NS_Internal (void); - - /// Constructor. - ACE_NS_Internal (ACE_NS_String &value, const char *type); - - /// Compare an ACE_NS_Internal - bool operator == (const ACE_NS_Internal &) const; - - /// Return value. - ACE_NS_String value (void); - - /// Return type. - const char *type (void); - -private: - /// Contains the value of the string. - ACE_NS_String value_; - - /// Contains the type of the string. - const char *type_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -// Include the ACE_Local_Name_Space templates stuff at this point. -#include "ace/Local_Name_Space_T.h" - -#include /**/ "ace/post.h" - -#endif /* ACE_LOCAL_NAME_SPACE_H */ diff --git a/ACE/ace/Local_Name_Space_T.cpp b/ACE/ace/Local_Name_Space_T.cpp deleted file mode 100644 index e59756dcb80..00000000000 --- a/ACE/ace/Local_Name_Space_T.cpp +++ /dev/null @@ -1,966 +0,0 @@ -// $Id$ - -#ifndef ACE_LOCAL_NAME_SPACE_T_CPP -#define ACE_LOCAL_NAME_SPACE_T_CPP - -#include "ace/ACE.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Local_Name_Space.h" -#include "ace/Auto_Ptr.h" -#include "ace/Guard_T.h" -#include "ace/OS_NS_regex.h" -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_unistd.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_Name_Space_Map::ACE_Name_Space_Map (ALLOCATOR *alloc) - : MAP_MANAGER (alloc) -{ - ACE_TRACE ("ACE_Name_Space_Map::ACE_Name_Space_Map"); -} - -template int -ACE_Name_Space_Map::close (ALLOCATOR *alloc) -{ - ACE_TRACE ("ACE_Name_Space_Map::close"); - - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->close_i (); -} - -template int -ACE_Name_Space_Map::bind (const ACE_NS_String &ext_id, - const ACE_NS_Internal &int_id, - ALLOCATOR *alloc) -{ - ACE_TRACE ("ACE_Name_Space_Map::bind"); - - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->bind_i (ext_id, int_id); -} - -template int -ACE_Name_Space_Map::unbind (const ACE_NS_String &ext_id, - ACE_NS_Internal &int_id, - ALLOCATOR *alloc) -{ - ACE_TRACE ("ACE_Name_Space_Map::unbind"); - - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->unbind_i (ext_id, int_id); -} - -template int -ACE_Name_Space_Map::rebind (const ACE_NS_String &ext_id, - const ACE_NS_Internal &int_id, - ACE_NS_String &old_ext_id, - ACE_NS_Internal &old_int_id, - ALLOCATOR *alloc) -{ - ACE_TRACE ("ACE_Name_Space_Map::rebind"); - - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->rebind_i (ext_id, int_id, old_ext_id, old_int_id); -} - -template int -ACE_Name_Space_Map::find (const ACE_NS_String &ext_id, - ACE_NS_Internal &int_id, - ALLOCATOR *alloc) -{ - ACE_TRACE ("ACE_Name_Space_Map::find"); - - this->table_allocator_ = alloc; - this->entry_allocator_ = alloc; - return this->find_i (ext_id, int_id); -} - -#if defined (ACE_WIN32) -template int -ACE_Local_Name_Space::remap (EXCEPTION_POINTERS *ep) -{ - ACE_TRACE ("ACE_Local_Name_Space::remap"); - - void *addr = (void *) ep->ExceptionRecord->ExceptionInformation[1]; - - // The following requires Memory Pool to have ::remap() - // defined. Thus currently this will only work for - // ACE_MMap_Memory_Pool. - if (this->allocator_->alloc ().memory_pool ().remap (addr) == -1) - // Kick it upstairs... - return EXCEPTION_CONTINUE_SEARCH; - -#if __X86__ - // This is 80x86-specific. - ep->ContextRecord->Edi = (DWORD) addr; -#elif __MIPS__ - ep->ContextRecord->IntA0 = - ep->ContextRecord->IntV0 = (DWORD) addr; - ep->ContextRecord->IntT5 = ep->ContextRecord->IntA0 + 3; -#endif /* __X86__ */ - // Resume execution at the original point of "failure." - return EXCEPTION_CONTINUE_EXECUTION; -} -#endif /* ACE_WIN32 */ - -template int -ACE_Local_Name_Space::shared_bind ( - const ACE_NS_WString &name, - const ACE_NS_WString &value, - const char *type, - int rebind) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->shared_bind_i (name, value, type, rebind); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; -} - -template int -ACE_Local_Name_Space::shared_bind_i ( - const ACE_NS_WString &name, - const ACE_NS_WString &value, - const char *type, - int rebind) -{ - - ACE_TRACE ("ACE_Local_Name_Space::shared_bind_i"); - const size_t name_len = (name.length () + 1) * sizeof (ACE_WCHAR_T); - const size_t value_len = (value.length () + 1) * sizeof (ACE_WCHAR_T); - const size_t type_len = ACE_OS::strlen (type) + 1; - const size_t total_len = name_len + value_len + type_len; - char *ptr = (char *) this->allocator_->malloc (total_len); - - if (ptr == 0) - return -1; - else - { - // Note that the value_rep *must* come first to make sure we can - // retrieve this pointer later on in unbind(). - ACE_WCHAR_T *value_rep = (ACE_WCHAR_T *) (ptr); - ACE_WCHAR_T *name_rep = (ACE_WCHAR_T *) (ptr + value_len); - char *new_type = (char *) (ptr + value_len + name_len); - - ACE_Auto_Basic_Array_Ptr name_urep (name.rep ()); - ACE_Auto_Basic_Array_Ptr value_urep (value.rep ()); - ACE_NS_String new_name (name_rep, name_urep.get (), name_len); - ACE_NS_String new_value (value_rep, value_urep.get (), value_len); - - ACE_OS::strcpy (new_type, type); - ACE_NS_Internal new_internal (new_value, new_type); - int result = -1; - - if (rebind == 0) - { - // Do a normal bind. This will fail if there's already an - // with the same name. - result = this->name_space_map_->bind (new_name, - new_internal, - this->allocator_); - - if (result == 1) - { - // Entry already existed so bind failed. Free our - // dynamically allocated memory. - this->allocator_->free ((void *) ptr); - return result; - } - } - else - { - // Do a rebind. If there's already any entry, this will - // return the existing and and - // overwrite the existing name binding. - ACE_NS_String old_name; - ACE_NS_Internal old_internal; - - result = this->name_space_map_->rebind (new_name, new_internal, - old_name, old_internal, - this->allocator_); - if (result == 1) - { - // Free up the memory we allocated in shared_bind(). - // Note that this assumes that the "value" pointer comes - // first and that the value, name, and type are - // contiguously allocated (see above for details) - this->allocator_->free ((void *) (old_internal.value ()).fast_rep ()); - } - } - - if (result == -1) - // Free our dynamically allocated memory. - this->allocator_->free ((void *) ptr); - else - // If bind() or rebind() succeed, they will automatically sync - // up the map manager entry. However, we must sync up our - // name/value memory. - this->allocator_->sync (ptr, total_len); - - return result; - } -} - -template int -ACE_Local_Name_Space::unbind ( - const ACE_NS_WString &name) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->unbind_i (name); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; - -} - -template int -ACE_Local_Name_Space::unbind_i ( - const ACE_NS_WString &name) -{ - ACE_TRACE ("ACE_Local_Name_Space::unbind_i"); - - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - ACE_NS_String ns_name (name); - ACE_NS_Internal ns_internal; - if (this->name_space_map_->unbind (ns_name, - ns_internal, - this->allocator_) != 0) - return -1; - - // Free up the memory we allocated in shared_bind(). Note that this - // assumes that the "value" pointer comes first and that the value, - // name and type are contiguously allocated (see shared_bind() for - // details) - this->allocator_->free ((void *) (ns_internal.value ()).fast_rep ()); - return 0; -} - -template int -ACE_Local_Name_Space::bind ( - const ACE_NS_WString &name, - const ACE_NS_WString &value, - const char *type) -{ - ACE_TRACE ("ACE_Local_Name_Space::bind"); - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - return this->shared_bind (name, value, type, 0); -} - -template int -ACE_Local_Name_Space::rebind ( - const ACE_NS_WString &name, - const ACE_NS_WString &value, - const char *type) -{ - ACE_TRACE ("ACE_Local_Name_Space::rebind"); - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - return this->shared_bind (name, value, type, 1); -} - -template int -ACE_Local_Name_Space::resolve ( - const ACE_NS_WString &name, - ACE_NS_WString &value, - char *&type) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->resolve_i (name, value, type); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; -} - - -template int -ACE_Local_Name_Space::resolve_i ( - const ACE_NS_WString &name, - ACE_NS_WString &value, - char *&type) -{ - ACE_TRACE ("ACE_Local_Name_Space::resolve_i"); - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - ACE_NS_String ns_name (name); - ACE_NS_Internal ns_internal; - ACE_NS_String nbc_string; // Note the classy variable name! :) - - if (this->name_space_map_->find (ns_name, - ns_internal, - this->allocator_) != 0) - return -1; - - // Calls conversion operator and then calls the ACE_NS_WString - // assignment operator to get a fresh copy. (*#*(@#&!*@!!*@&( HP - // compiler causes us to add an extra copy explicitly !! :) - nbc_string = ns_internal.value (); - value = nbc_string; - - // Gets type and then the actual reprsentation which is a - // ACE_WCHAR_T - const char *temp = ns_internal.type (); - - size_t len = ACE_OS::strlen (ns_internal.type ()); - // Makes a copy here. Caller needs to call delete to free up - // memory. - char *new_type = 0; - ACE_NEW_RETURN (new_type, - char [len + 1], - -1); - - ACE_OS::strsncpy (new_type, temp, len + 1); - type = new_type; - return 0; -} - -template int -ACE_Local_Name_Space::open ( - ACE_Naming_Context::Context_Scope_Type scope_in) -{ - ACE_TRACE ("ACE_Local_Name_Space::open"); - this->ns_scope_ = scope_in; - - return this->create_manager (); -} - -template -ACE_Local_Name_Space::ACE_Local_Name_Space (void) - : allocator_ (0), - name_space_map_ (0), - name_options_ (0) -{ - ACE_TRACE ("ACE_Local_Name_Space::ACE_Local_Name_Space"); -} - -template -ACE_Local_Name_Space::ACE_Local_Name_Space ( - ACE_Naming_Context::Context_Scope_Type scope_in, - ACE_Name_Options *name_options) - : name_options_ (name_options) -{ - ACE_TRACE ("ACE_Local_Name_Space::ACE_Local_Name_Space"); - if (this->open (scope_in) == -1) - ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_Local_Name_Space::ACE_Local_Name_Space"))); -} - -template -ACE_Local_Name_Space::~ACE_Local_Name_Space (void) -{ - ACE_TRACE ("ACE_Local_Name_Space::~ACE_Local_Name_Space"); - - // Remove the map. - delete this->allocator_; - delete this->lock_; -} - -template int -ACE_Local_Name_Space::create_manager (void) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->create_manager_i (); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; -} - - -template int -ACE_Local_Name_Space::create_manager_i (void) -{ - ACE_TRACE ("ACE_Local_Name_Space::create_manager_i"); - // Get directory name - const ACE_TCHAR *dir = this->name_options_->namespace_dir (); - const ACE_TCHAR *database = this->name_options_->database (); - - // Use process name as the file name. - size_t len = ACE_OS::strlen (dir); - len += ACE_OS::strlen (ACE_DIRECTORY_SEPARATOR_STR); - len += ACE_OS::strlen (database) + 1; - - if (len >= MAXNAMELEN + MAXPATHLEN) - { - errno = ENAMETOOLONG; - return -1; - } - - ACE_OS::strcpy (this->context_file_, dir); - ACE_OS::strcat (this->context_file_, ACE_DIRECTORY_SEPARATOR_STR); - ACE_OS::strcat (this->context_file_, database); - - ACE_MEM_POOL_OPTIONS options (this->name_options_->base_address ()); - - ACE_TCHAR lock_name_for_local_name_space [MAXNAMELEN + MAXPATHLEN]; - ACE_TCHAR lock_name_for_backing_store [MAXPATHLEN + MAXNAMELEN]; - const ACE_TCHAR *postfix = database; - - size_t length = 0; - length = sizeof lock_name_for_local_name_space / sizeof (ACE_TCHAR); - ACE_OS::strsncpy (lock_name_for_local_name_space, - dir, - length); - - ACE_OS::strncat (lock_name_for_local_name_space, - ACE_DIRECTORY_SEPARATOR_STR, - length - ACE_OS::strlen (lock_name_for_local_name_space)); - ACE_OS::strncat (lock_name_for_local_name_space, - ACE_TEXT ("name_space_"), - length - ACE_OS::strlen (lock_name_for_local_name_space)); - ACE_OS::strncat (lock_name_for_local_name_space, - postfix, - length - ACE_OS::strlen (lock_name_for_local_name_space)); - - length = sizeof lock_name_for_backing_store / sizeof (ACE_TCHAR); - ACE_OS::strsncpy (lock_name_for_backing_store, - dir, - length); - ACE_OS::strncat (lock_name_for_backing_store, - ACE_DIRECTORY_SEPARATOR_STR, - length - ACE_OS::strlen (lock_name_for_backing_store)); - ACE_OS::strncat (lock_name_for_backing_store, - ACE_TEXT ("backing_store_"), - length - ACE_OS::strlen (lock_name_for_backing_store)); - ACE_OS::strncat (lock_name_for_backing_store, - postfix, - length - ACE_OS::strlen (ACE_TEXT ("backing_store_"))); - - // Create the allocator with the appropriate options. - ACE_NEW_RETURN (this->allocator_, - ALLOCATOR (this->context_file_, - lock_name_for_backing_store, - &options), -1); - - if (ACE_LOG_MSG->op_status ()) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Allocator::Allocator\n")), - -1); - - ACE_NEW_RETURN (this->lock_, - ACE_LOCK (lock_name_for_local_name_space), - -1); - -#if !defined (ACE_LACKS_ACCESS) - // Now check if the backing store has been created successfully - if (ACE_OS::access (this->context_file_, F_OK) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("create_manager\n")), - -1); -#endif /* ACE_LACKS_ACCESS */ - - void *ns_map = 0; - - // This is the easy case since if we find the Name Server Map - // Manager we know it's already initialized. - if (this->allocator_->find (ACE_NAME_SERVER_MAP, ns_map) == 0) - { - this->name_space_map_ = (ACE_Name_Space_Map *) ns_map; - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("name_space_map_ = %@, ns_map = %@\n"), - this->name_space_map_, ns_map)); - } - - // This is the hard part since we have to avoid potential race - // conditions... We will use the double check here - else - { - ACE_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - // This is the easy case since if we find the Name Server Map - // Manager we know it's already initialized. - if (this->allocator_->find (ACE_NAME_SERVER_MAP, ns_map) == 0) - { - this->name_space_map_ = (ACE_Name_Space_Map *) ns_map; - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("name_space_map_ = %@, ns_map = %@\n"), - this->name_space_map_, ns_map)); - } - else - { - size_t map_size = sizeof *this->name_space_map_; - ns_map = this->allocator_->malloc (map_size); - - // Initialize the map into its memory location (e.g., shared memory). - this->name_space_map_ = - new (ns_map) ACE_Name_Space_Map (this->allocator_); - - if (this->allocator_->bind (ACE_NAME_SERVER_MAP, ns_map) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("create_manager\n")), -1); - } - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("name_space_map_ = %@, ns_map = %@\n"), - this->name_space_map_, ns_map)); - } - - return 0; -} - -template int -ACE_Local_Name_Space::list_names_i ( - ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern) -{ - ACE_TRACE ("ACE_Local_Name_Space::list_names_i"); - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_); - MAP_MANAGER::ENTRY *map_entry; - - int result = 1; - - for (map_entry = 0; - map_iterator.next (map_entry) != 0; - map_iterator.advance()) - { - if (map_entry->ext_id_.strstr (pattern) != -1) - { - ACE_NS_WString entry (map_entry->ext_id_ ); - - if (set.insert (entry) == -1) - { - result = -1; - break; - } - else - result = 0; - } - } - - return result; -} - -template int -ACE_Local_Name_Space::list_values_i ( - ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern) -{ - ACE_TRACE ("ACE_Local_Name_Space::list_values_i"); - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_); - MAP_MANAGER::ENTRY *map_entry; - - int result = 1; - - for (map_entry = 0; - map_iterator.next (map_entry) != 0; - map_iterator.advance ()) - { - if (map_entry->int_id_.value ().strstr (pattern) != -1) - { - ACE_NS_WString entry (map_entry->int_id_.value ()); - - if (set.insert (entry) == -1) - { - result = -1; - break; - } - else - result = 0; - } - } - - return result; -} - -template int -ACE_Local_Name_Space::list_types_i ( - ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern) -{ - ACE_TRACE ("ACE_Local_Name_Space::list_types_i"); - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_); - MAP_MANAGER::ENTRY *map_entry; - - char *compiled_regexp = 0; - - // Note that char_rep() allocates memory so we need to delete it - char *pattern_rep = pattern.char_rep (); - - // Check for wildcard case first. - if (ACE_OS::strcmp ("", pattern_rep) == 0) - ACE_ALLOCATOR_RETURN (compiled_regexp, - ACE_OS::strdup (""), - -1); - else - // Compile the regular expression (the 0's cause ACE_OS::compile - // to allocate space). -#if defined (ACE_HAS_REGEX) - compiled_regexp = ACE_OS::compile (pattern_rep, 0, 0); -#else - // If we don't have regular expressions just use the pattern - // directly. - compiled_regexp = pattern_rep; -#endif /* ACE_HAS_REGEX */ - - int result = 1; - - for (map_entry = 0; - map_iterator.next (map_entry) != 0; - map_iterator.advance ()) - { - // Get the type - const char *type = map_entry->int_id_.type (); - - // Everything matches the wildcard. - if (ACE_OS::strcmp ("", pattern_rep) == 0 -#if defined (ACE_HAS_REGEX) - || ACE_OS::step (type, compiled_regexp) != 0) -#else - // If we don't have regular expressions just use strstr() for - // substring matching. - || ACE_OS::strstr (type, compiled_regexp) != 0) -#endif /* ACE_HAS_REGEX */ - - { - ACE_NS_WString entry (type); - - if (set.insert (entry) == -1) - { - result = -1; - break; - } - else - result = 0; - } - } -#if defined (ACE_HAS_REGEX) - if (compiled_regexp) - ACE_OS::free ((void *) compiled_regexp); -#endif /* ACE_HAS_REGEX */ - delete [] pattern_rep; // delete pattern_rep; - return result; -} - -template int -ACE_Local_Name_Space ::list_name_entries_i ( - ACE_BINDING_SET &set, - const ACE_NS_WString &pattern) -{ - ACE_TRACE ("ACE_Local_Name_Space::list_name_entries_i"); - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_); - MAP_MANAGER::ENTRY *map_entry; - - for (map_entry = 0; - map_iterator.next (map_entry) != 0; - map_iterator.advance()) - { - if (map_entry->ext_id_.strstr (pattern) != -1) - { - ACE_Name_Binding entry (map_entry->ext_id_, - map_entry->int_id_.value (), - map_entry->int_id_.type ()); - - if (set.insert (entry) == -1) - return -1; - } - } - - return 0; -} - -template int -ACE_Local_Name_Space::list_value_entries_i ( - ACE_BINDING_SET &set, - const ACE_NS_WString &pattern) -{ - ACE_TRACE ("ACE_Local_Name_Space::list_value_entries_i"); - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_); - MAP_MANAGER::ENTRY *map_entry; - - for (map_entry = 0; - map_iterator.next (map_entry) != 0; - map_iterator.advance ()) - { - if (map_entry->int_id_.value ().strstr (pattern) != -1) - { - ACE_Name_Binding entry (map_entry->ext_id_, - map_entry->int_id_.value (), - map_entry->int_id_.type ()); - - if (set.insert (entry) == -1) - return -1; - } - } - return 0; -} - -template int -ACE_Local_Name_Space::list_type_entries_i ( - ACE_BINDING_SET &set, - const ACE_NS_WString &pattern) -{ - ACE_TRACE ("ACE_Local_Name_Space::list_type_entries_i"); - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, *this->lock_, -1); - - MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_); - MAP_MANAGER::ENTRY *map_entry; - - char *compiled_regexp = 0; - // Note that char_rep() allocates memory so we need to delete it - char *pattern_rep = pattern.char_rep (); - - // Check for wildcard case first. - if (ACE_OS::strcmp ("", pattern_rep) == 0) - compiled_regexp = ACE_OS::strdup (""); - else - // Compile the regular expression (the 0's cause ACE_OS::compile - // to allocate space). -#if defined (ACE_HAS_REGEX) - compiled_regexp = ACE_OS::compile (pattern_rep, 0, 0); -#else /* If we don't have regular expressions just the pattern - directly. */ - compiled_regexp = pattern_rep; -#endif /* ACE_HAS_REGEX */ - - for (map_entry = 0; - map_iterator.next (map_entry) != 0; - map_iterator.advance ()) - { - // Get the type. - const char *type = map_entry->int_id_.type (); - - if (ACE_OS::strcmp ("", pattern_rep) == 0 // Everything matches - // the wildcard. -#if defined (ACE_HAS_REGEX) - || ACE_OS::step (type, compiled_regexp) != 0) -#else /* If we don't have regular expressions just use strstr() for - substring matching. */ - || ACE_OS::strstr (type, compiled_regexp) != 0) -#endif /* ACE_HAS_REGEX */ - { - ACE_Name_Binding entry (map_entry->ext_id_, - map_entry->int_id_.value (), - map_entry->int_id_.type ()); - - if (set.insert (entry) == -1) - return -1; - } - } -#if defined (ACE_HAS_REGEX) - if (compiled_regexp) - ACE_OS::free ((void *) compiled_regexp); -#endif /* ACE_HAS_REGEX */ - delete [] pattern_rep; // delete pattern_rep; - return 0; -} - -template void -ACE_Local_Name_Space::dump_i (void) const -{ - ACE_TRACE ("ACE_Local_Name_Space::dump_i"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - - MAP_MANAGER::ITERATOR map_iterator (*this->name_space_map_); - MAP_MANAGER::ENTRY *map_entry; - - for (map_entry = 0; - map_iterator.next (map_entry) != 0; - map_iterator.advance()) - { - char *key = map_entry->ext_id_.char_rep (); - char *value = map_entry->int_id_.value ().char_rep (); -#if !defined (ACE_NLOGGING) - const char *type = map_entry->int_id_.type (); -#endif /* ! ACE_NLOGGING */ - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("key=%s\nvalue=%s\ntype=%s\n"), - ACE_TEXT_CHAR_TO_TCHAR (key), ACE_TEXT_CHAR_TO_TCHAR (value), ACE_TEXT_CHAR_TO_TCHAR (type))); - // We need to delete key and value since char_rep allocates - // memory for them - delete [] key; - delete [] value; - } - - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -template int -ACE_Local_Name_Space::list_names ( - ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->list_names_i (set, pattern); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; -} - -template int -ACE_Local_Name_Space::list_values ( - ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->list_values_i (set, pattern); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; -} - -template int -ACE_Local_Name_Space::list_types ( - ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->list_types_i (set, pattern); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; -} - -template int -ACE_Local_Name_Space ::list_name_entries ( - ACE_BINDING_SET &set, - const ACE_NS_WString &pattern) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->list_name_entries_i (set, pattern); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; -} - -template int -ACE_Local_Name_Space::list_value_entries ( - ACE_BINDING_SET &set, - const ACE_NS_WString &pattern) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->list_value_entries_i (set, pattern); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; -} - -template int -ACE_Local_Name_Space::list_type_entries ( - ACE_BINDING_SET &set, - const ACE_NS_WString &pattern) -{ - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - int result = 0; - ACE_SEH_TRY - { - result = this->list_type_entries_i (set, pattern); - } - ACE_SEH_EXCEPT (this->remap (GetExceptionInformation ())) - { - } - return result; -} - -template void -ACE_Local_Name_Space::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - // Note that we *must* use structured exception handling here - // because (1) we may need to commit virtual memory pages and (2) - // C++ exception handling doesn't support resumption. - - // This should really be a const cast - ACE_Local_Name_Space *fake_this = - (ACE_Local_Name_Space *) this; - ACE_UNUSED_ARG (fake_this); - - ACE_SEH_TRY - { - this->dump_i (); - } - ACE_SEH_EXCEPT (fake_this->remap (GetExceptionInformation ())) - { - } -#endif /* ACE_HAS_DUMP */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LOCAL_NAME_SPACE_T_CPP */ diff --git a/ACE/ace/Local_Name_Space_T.h b/ACE/ace/Local_Name_Space_T.h deleted file mode 100644 index 14ed9377b30..00000000000 --- a/ACE/ace/Local_Name_Space_T.h +++ /dev/null @@ -1,280 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Local_Name_Space_T.h - * - * $Id$ - * - * @author Prashant Jain - * @author Irfan Pyarali and - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_LOCAL_NAME_SPACE_T_H -#define ACE_LOCAL_NAME_SPACE_T_H -#include /**/ "ace/pre.h" - -#include "ace/Name_Space.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Naming_Context.h" -#include "ace/SString.h" -#include "ace/Local_Name_Space.h" -#include "ace/Null_Mutex.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/// A short-hand name for our set of name/value/type tuples passed back -/// to callers. -typedef ACE_Unbounded_Set 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_Equal_To, 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 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 - * - * @brief This class serves as a Proxy that ensures our process always - * has the appropriate allocator in place for every operation - * that accesses or updates the Map Manager. - * - * We need this class because otherwise the ALLOCATOR - * pointer will be stored in the Map_Manager that resides within - * shared memory. Naturally, this will cause horrible problems - * since only the first process to set that pointer will be - * guaranteed the address of the ALLOCATOR is meaningful! - */ -template -class ACE_Name_Space_Map : public MAP_MANAGER -{ -public: - /// Constructor. - ACE_Name_Space_Map (ALLOCATOR *alloc); - - // = The following methods are Proxies to the underlying methods - // provided by ACE_Hash_Map_Manager. When they are called, they - // acquire the lock, set the allocator to the one specific to this - // process, and then call down to perform the intended operation. - int bind (const ACE_NS_String &, - const ACE_NS_Internal &, - ALLOCATOR *alloc); - - int unbind (const ACE_NS_String &, - ACE_NS_Internal &, - ALLOCATOR *alloc); - - int rebind (const ACE_NS_String &, - const ACE_NS_Internal &, - ACE_NS_String &, - ACE_NS_Internal &, - ALLOCATOR *alloc); - - int find (const ACE_NS_String &, - ACE_NS_Internal &, - ALLOCATOR *alloc); - - int close (ALLOCATOR *alloc); -}; - -/** - * @class ACE_Local_Name_Space - * - * @brief Maintaining accesses Local Name Server Database. Allows to - * add NameBindings, change them, remove them and resolve - * NameBindings. - * - * Manages a Naming Service for a local name space which - * includes bindings for node_local and host_local naming - * contexts. All strings are stored in wide character format. - * A Name Binding consists of a name (that's the key), a value - * string and an optional type string (no wide chars). - */ -template -class ACE_Local_Name_Space : public ACE_Name_Space -{ -public: - // = Initialization and termination methods. - /// "Do-nothing" constructor. - ACE_Local_Name_Space (void); - - /** - * Specifies the scope of this namespace, opens and memory-maps the - * associated file (if accessible) or contacts the dedicated name - * server process for NET_LOCAL namespace. - */ - ACE_Local_Name_Space (ACE_Naming_Context::Context_Scope_Type scope_in, - ACE_Name_Options *name_options); - - /** - * Specifies the scope of this namespace, opens and memory-maps the - * associated file (if accessible) or contacts the dedicated name - * server process for NET_LOCAL namespace. - */ - int open (ACE_Naming_Context::Context_Scope_Type scope_in); - - /// Destructor, do some cleanup :TBD: last dtor should "compress" - /// file - ~ACE_Local_Name_Space (void); - - /// Bind a new name to a naming context (Wide character strings). - virtual int bind (const ACE_NS_WString &name, - const ACE_NS_WString &value, - const char *type = ""); - - /** - * 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). - */ - 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 - /// Interface). - virtual int unbind (const ACE_NS_WString &name); - virtual int unbind_i (const ACE_NS_WString &name); - - /// Get value and type of a given name binding (Wide chars). The - /// caller is responsible for deleting @a type! - virtual int resolve (const ACE_NS_WString &name, - ACE_NS_WString &value, - char *&type); - virtual int resolve_i (const ACE_NS_WString &name, - ACE_NS_WString &value, - char *&type); - - /// Get a set of names matching a specified pattern (wchars). Matching - /// means the names must begin with the pattern string. - virtual int list_names (ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern); - virtual int list_names_i (ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern); - - /// Get a set of values matching a specified pattern (wchars). Matching - /// means the values must begin with the pattern string. - virtual int list_values (ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern); - virtual int list_values_i (ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern); - - /// Get a set of types matching a specified pattern (wchars). Matching - /// means the types must begin with the pattern string. - virtual int list_types (ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern); - virtual int list_types_i (ACE_WSTRING_SET &set, - const ACE_NS_WString &pattern); - - /** - * Get a set of names matching a specified pattern (wchars). Matching - * means the names must begin with the pattern string. Returns the - * complete binding associated each pattern match. - */ - virtual int list_name_entries (ACE_BINDING_SET &set, - const ACE_NS_WString &pattern); - virtual int list_name_entries_i (ACE_BINDING_SET &set, - const ACE_NS_WString &pattern); - - /** - * Get a set of values matching a specified pattern (wchars). Matching - * means the values must begin with the pattern string. Returns the - * complete binding associated each pattern match. - */ - virtual int list_value_entries (ACE_BINDING_SET &set, - const ACE_NS_WString &pattern); - virtual int list_value_entries_i (ACE_BINDING_SET &set, - const ACE_NS_WString &pattern); - - /** - * Get a set of types matching a specified pattern (wchars). Matching - * means the types must begin with the pattern string. Returns the - * complete binding associated each pattern match. - */ - virtual int list_type_entries (ACE_BINDING_SET &set, - const ACE_NS_WString &pattern); - virtual int list_type_entries_i (ACE_BINDING_SET &set, - const ACE_NS_WString &pattern); - - /// Dump the state of the object - virtual void dump (void) const; - virtual void dump_i (void) const; - - // = I just know this is going to cause problems on some platform... - typedef ACE_Allocator_Adapter > - ALLOCATOR; - -private: -#if defined (ACE_WIN32) - /// Remap the backing store - int remap (EXCEPTION_POINTERS *ep); -#endif /* ACE_WIN32 */ - - /// Factor out code from bind() and rebind(). - int shared_bind (const ACE_NS_WString &name, - const ACE_NS_WString &value, - const char *type, int rebind); - int shared_bind_i (const ACE_NS_WString &name, - const ACE_NS_WString &value, - const char *type, int rebind); - - /// Allocate the appropriate type of map manager that stores the - /// key/value binding. - int create_manager (void); - int create_manager_i (void); - - /// Pointer to the allocator - ALLOCATOR *allocator_; - - /// Pointer to the allocated map manager. - ACE_Name_Space_Map *name_space_map_; - - /// Scope of this naming context (e.g., PROC_LOCAL, NODE_LOCAL, or - /// NET_LOCAL). - ACE_Naming_Context::Context_Scope_Type ns_scope_; - - /// Keep track of the options such as database name etc - ACE_Name_Options *name_options_; - - /// Name of the file used as the backing store. - ACE_TCHAR context_file_[MAXPATHLEN + MAXNAMELEN]; - - /// Synchronization variable. - ACE_LOCK *lock_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Local_Name_Space_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Local_Name_Space_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_LOCAL_NAME_SPACE_T_H */ diff --git a/ACE/ace/Local_Tokens.cpp b/ACE/ace/Local_Tokens.cpp deleted file mode 100644 index 17330fe79dd..00000000000 --- a/ACE/ace/Local_Tokens.cpp +++ /dev/null @@ -1,1623 +0,0 @@ -// $Id$ - -#include "ace/Local_Tokens.h" - -#if defined (ACE_HAS_TOKENS_LIBRARY) - -#include "ace/Thread.h" -#include "ace/Token_Manager.h" -#include "ace/OS_NS_unistd.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Local_Tokens.inl" -#endif /* __ACE_INLINE__ */ - - -ACE_RCSID (ace, - Local_Tokens, - "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -void -ACE_Tokens::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Tokens::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Tokens::dump:\n") - ACE_TEXT (" reference_cont_ = %d\n") - ACE_TEXT (" token_name_ = %s\n"), - reference_count_, token_name_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("waiters_\n"))); - this->waiters_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Tokens::ACE_Tokens (void) - : visited_ (0), - reference_count_ (0) -{ - ACE_TRACE ("ACE_Tokens::ACE_Tokens"); -} - -ACE_Tokens::~ACE_Tokens (void) -{ -} - -void -ACE_Tokens::make_owner (ACE_TPQ_Entry *caller) -{ - this->waiters_.remove (caller); - this->waiters_.enqueue (caller, 0); -} - -ACE_Token_Proxy_Queue * -ACE_Tokens::waiters () -{ - ACE_TRACE ("ACE_Tokens::waiters"); - return &this->waiters_; -} - -int -ACE_Tokens::no_of_waiters () -{ - ACE_TRACE ("ACE_Tokens::no_of_waiters"); - return this->waiters_.size (); -} - -#if defined (ACE_LACKS_INLINE_FUNCTIONS) -ACE_Null_Token::ACE_Null_Token (void) -{ -} - -ACE_Null_Token::~ACE_Null_Token (void) -{ -} -#endif /* ACE_LACKS_INLINE_FUNCTIONS */ - -void -ACE_TPQ_Entry::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_TPQ_Entry::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE_TPQ_Entry::dump:\n") - ACE_TEXT (" nesting_level_ = %d\n") - ACE_TEXT (" client_id_ = %s\n"), - nesting_level_, - client_id_)); - - if (next_ != 0) - { - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("next:.\n"))); - next_->dump (); - } - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_TPQ_Entry::dump end.\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_TPQ_Entry::ACE_TPQ_Entry (const ACE_Token_Proxy *new_proxy, - const ACE_TCHAR *client_id) - : cond_var_ (lock_), - next_ (0), - // This const typecast is safe. - proxy_ ((ACE_Token_Proxy *) new_proxy), - nesting_level_ (0), - sleep_hook_ (0) -{ - ACE_TRACE ("ACE_TPQ_Entry::ACE_TPQ_Entry"); - - if (client_id != 0) - this->client_id (client_id); - else - { - // Just make sure we have enough space. - ACE_TCHAR host_name[MAXHOSTNAMELEN]; - ACE_TCHAR name[(sizeof host_name / sizeof (ACE_TCHAR)) + 256]; - ACE_OS::hostname (host_name, sizeof host_name); - - ACE_thread_t thread_id = ACE_Thread::self (); - - // The cast is an attempt to get this to compile (and run, - // hopefully) regardless of the type of ACE_thread_t. - ACE_OS::sprintf (name, - ACE_TEXT ("/%s/%u/%lu"), - host_name, - static_cast (ACE_OS::getpid ()), - *reinterpret_cast (&thread_id)); - - this->client_id (name); - } -} - -ACE_TPQ_Entry::ACE_TPQ_Entry (void) - : cond_var_ (lock_), - proxy_ (0), - nesting_level_ (0), - sleep_hook_ (0) -{ - ACE_TRACE ("ACE_TPQ_Entry::ACE_TPQ_Entry null const."); -} - -ACE_TPQ_Entry::ACE_TPQ_Entry (const ACE_TPQ_Entry &rhs) -: cond_var_ (lock_) -{ - ACE_TRACE ("ACE_TPQ_Entry::ACE_TPQ_Entry copy const."); - *this = rhs; -} - -ACE_TPQ_Entry::~ACE_TPQ_Entry (void) -{ - ACE_TRACE ("ACE_TPQ_Entry::~ACE_TPQ_Entry"); -} - -void -ACE_TPQ_Entry::operator= (const ACE_TPQ_Entry& rhs) -{ - ACE_TRACE ("ACE_TPQ_Entry::operator="); - if (&rhs == this) - return; - this->proxy_ = rhs.proxy (); - this->nesting_level_ = rhs.nesting_level (); - this->client_id (rhs.client_id ()); - this->sleep_hook_ = rhs.sleep_hook (); -} - -void -ACE_TPQ_Entry::client_id (const ACE_TCHAR *id) -{ - ACE_TRACE ("ACE_TPQ_Entry::client_id"); - - if (id == 0) - return; - - ACE_OS::strsncpy (this->client_id_, - (ACE_TCHAR *) id, - ACE_MAXCLIENTIDLEN); -} - -ACE_TSS_TPQ_Entry::~ACE_TSS_TPQ_Entry (void) -{ -} - -void -ACE_TSS_TPQ_Entry::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_TSS_TPQ_Entry::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_TSS_TPQ_Entry::dump:\n") - ACE_TEXT (" client_id_ = %s\n"), - client_id_ == 0 ? ACE_TEXT ("0") : client_id_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("base:\n"))); - ACE_TPQ_ENTRY::dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_TSS_TPQ_Entry::ACE_TSS_TPQ_Entry (const ACE_Token_Proxy *proxy, - const ACE_TCHAR *client_id) -: proxy_ (proxy), - client_id_ (client_id) -{ - ACE_TRACE ("ACE_TSS_TPQ_Entry::ACE_TSS_TPQ_Entry"); -} - -ACE_TPQ_Entry * -ACE_TSS_TPQ_Entry::make_TSS_TYPE (void) const -{ - ACE_TRACE ("ACE_TSS_TPQ_Entry::make_TSS_TYPE"); - ACE_TPQ_Entry *temp; - - ACE_NEW_RETURN (temp, - ACE_TPQ_Entry (this->proxy_, - this->client_id_), - 0); - return temp; -} - -ACE_TSS_TPQ_Entry::operator ACE_TPQ_Entry * (void) -{ -#if !defined (ACE_NO_TSS_TOKENS) - return (ACE_TPQ_Entry *) (*((ACE_TSS *) this)); -#else - // Not sure this is the right thing to do, but it seems to work. - // The base class ALSO has a proxy_ and client_id_ members (weird?) - // which don't get initialised. The following two lines make this - // the same as the subclass, so that the slicing works . - ACE_TPQ_ENTRY::proxy ((ACE_Token_Proxy *)(this->proxy_)); - ACE_TPQ_ENTRY::client_id (this->client_id_); - return (ACE_TPQ_Entry *) this;; -#endif /* !ACE_NO_TSS_TOKENS */ -} - -ACE_TPQ_Iterator::ACE_TPQ_Iterator (ACE_Token_Proxy_Queue &q) - : current_ (q.head_) -{ - ACE_TRACE ("ACE_TPQ_Iterator::ACE_TPQ_Iterator"); -} - -int -ACE_TPQ_Iterator::next (ACE_TPQ_Entry *&next_item) -{ - ACE_TRACE ("ACE_TPQ_Iterator::next"); - - next_item = this->current_; - - return current_ != 0; -} - -int -ACE_TPQ_Iterator::done (void) const -{ - ACE_TRACE ("ACE_TPQ_Iterator::done"); - - return this->current_ == 0; -} - -void -ACE_TPQ_Iterator::advance (void) -{ - ACE_TRACE ("ACE_TPQ_Iterator::advance"); - - if (current_ != 0) - this->current_ = this->current_->next_; -} - -void -ACE_TPQ_Iterator::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_TPQ_Iterator::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_TPQ_Iterator::dump:\n") - ACE_TEXT (" current_ = %d\n"), - (long) this->current_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("head_ and tail_\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -void -ACE_Token_Proxy_Queue::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Token_Proxy_Queue::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Token_Proxy_Queue::dump:\n") - ACE_TEXT (" size_ = %d\n"), - size_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("head_ and tail_\n"))); - if (this->head_ != 0) - this->head_->dump (); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Token_Proxy_Queue::dump end.\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Token_Proxy_Queue::ACE_Token_Proxy_Queue (void) - : head_ (0), - tail_ (0), - size_ (0) -{ - ACE_TRACE ("ACE_Token_Proxy_Queue::ACE_Token_Proxy_Queue"); -} - -void -ACE_Token_Proxy_Queue::enqueue (ACE_TPQ_Entry *tpq, - int position) -{ - ACE_TRACE ("ACE_Token_Proxy_Queue::enqueue"); - tpq->next_ = 0; - - ++this->size_; - - if (this->head_ == 0) - { - // make tpq the entire list - this->head_ = this->tail_ = tpq; - return; - } - - if (position == 0) - { - // make head of list - tpq->next_ = this->head_; - this->head_ = tpq; - return; - } - - if (position == -1) - { - // stick at back of list - this->tail_->next_ = tpq; - this->tail_ = tpq; - return; - } - - // walk through list to insertion point - ACE_TPQ_Entry *temp = head_; - - for (int x = position; - x > 1; - --x) - { - // end of queue? - if (temp->next_ == 0) - break; - // advance pointer - else - temp = temp->next_; - } - - // insert new tpq after temp - tpq->next_ = temp->next_; - temp->next_ = tpq; -} - -void -ACE_Token_Proxy_Queue::dequeue (void) -{ - ACE_TRACE ("ACE_Token_Proxy_Queue::dequeue"); - - if (head_ == 0) - return; - - ACE_TPQ_Entry *temp = this->head_; - - this->head_ = this->head_->next_; - - temp->next_ = 0; - - --this->size_; - - if (this->head_ == 0 && this->size_ != 0) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("incorrect size = %d\n"), - this->size_)); -} - -/* -int -ACE_Token_Proxy_Queue::member (const ACE_TCHAR *id) -{ - ACE_TRACE ("ACE_Token_Proxy_Queue::member"); - - for (ACE_TPQ_Entry *temp = this->head_; - temp != 0; - temp = temp->next_) - if (ACE_OS::strcmp (temp->client_id (), id) == 0) - // We found it! - return 1; - - // We didn't find it :-( - return 0; -} -*/ - -void -ACE_Token_Proxy_Queue::remove (const ACE_TPQ_Entry *remove_me) -{ - ACE_TRACE ("ACE_Token_Proxy_Queue::remove"); - // sanity - if ((remove_me == 0) || (this->head_ == 0)) - return; - - // is it the head? - if (this->head_ == remove_me) // pointer comparison. - { - this->head_ = this->head_->next_; - if (this->head_ == 0) - this->tail_ = 0; - - --this->size_; - return; - } - - ACE_TPQ_Entry *temp = this->head_; - ACE_TPQ_Entry *previous = 0; - - // is it in the middle or tail? - while (temp != 0) - { - if (temp == remove_me) - { - // previous should never be null since the first if - // conditional should always be false - previous->next_ = temp->next_; - // is it the tail? - if (this->tail_ == temp) - this->tail_ = previous; - - --this->size_; - return; - } - - previous = temp; - temp = temp->next_; - } - - // it wasn't in the list. - return; -} - -void -ACE_Mutex_Token::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Mutex_Token::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Mutex_Token::dump:\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("lock_\n"))); - lock_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("base:\n"))); - ACE_Tokens::dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Mutex_Token::dump end.\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_Mutex_Token::ACE_Mutex_Token (const ACE_TCHAR *name) -{ - ACE_TRACE ("ACE_Mutex_Token::ACE_Mutex_Token"); - - ACE_OS::strsncpy (this->token_name_, - name, - ACE_MAXTOKENNAMELEN); -} - -ACE_Mutex_Token::~ACE_Mutex_Token (void) -{ - ACE_TRACE ("ACE_Mutex_Token::~ACE_Mutex_Token"); -} - -int -ACE_Mutex_Token::acquire (ACE_TPQ_Entry *caller, - int ignore_deadlock, - int notify) -{ - ACE_TRACE ("ACE_Mutex_Token::acquire"); - // We need to acquire two locks. This one to ensure that only one - // thread uses this token at a time. - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon1, this->lock_, -1); - // This one to ensure an atomic transaction across all tokens. Note - // that this order is crucial too. It's resource coloring for other - // threads which may be calling this same token. - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon2, ACE_Token_Manager::instance ()->mutex (), -1); - - // Does _anyone_ own the token? - if (this->owner () == 0) - { - // there are no waiters, so queue as the first waiter (the owner.) - this->waiters_.enqueue (caller, -1); - return 0; // success - } - - // Does the caller already own it? - if (this->is_owner (caller->client_id ())) - { - // Recursive acquisition. - caller->nesting_level (1); - return 0; // success - } - - // Check for deadlock. - if (!ignore_deadlock - && ACE_Token_Manager::instance ()->check_deadlock (caller->proxy ()) == 1) - { - errno = EDEADLK; - ACE_RETURN (-1); - } - - // Someone owns it. Sorry, you're getting queued up at the end of - // the waiter queue. - this->waiters_.enqueue (caller, -1); - - if (notify) - this->owner ()->call_sleep_hook (); - - errno = EWOULDBLOCK; - ACE_RETURN (-1); - - ACE_NOTREACHED (return -1); -} - -int -ACE_Mutex_Token::tryacquire (ACE_TPQ_Entry *caller) -{ - ACE_TRACE ("ACE_Mutex_Token::tryacquire"); - // We need to acquire two locks. This one to ensure that only one - // thread uses this token at a time. - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon1, this->lock_, -1); - // This one to ensure an atomic transaction across all tokens. Note - // that this order is crucial too. It's resource coloring for other - // threads which may be calling this same token. - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon2, ACE_Token_Manager::instance ()->mutex (), -1); - - // Does _anyone_ own the token? - if (this->owner () == 0) - { - this->waiters_.enqueue (caller, -1); - return 0; // success - } - // Does the caller already own it? - if (this->is_owner (caller->client_id ())) - { - // recursive acquisition - caller->nesting_level (1); - return 0; // success - } - else - // Someone owns it. Fail. - { - errno = EWOULDBLOCK; - ACE_RETURN (-1); - } - - ACE_NOTREACHED (return -1); -} - -int -ACE_Mutex_Token::renew (ACE_TPQ_Entry *caller, - int requeue_position) -{ - ACE_TRACE ("ACE_Mutex_Token::renew"); - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1); - - // Verify that the caller is the owner. - if (this->is_owner (caller->client_id ()) == 0) - { - errno = EACCES; - ACE_RETURN (-1); - } - - // The caller is the owner, so check to see if there are any - // waiters. If not, we just keep the token. == 1 means that there - // is only the owner. - if (this->waiters_.size () == 1 || requeue_position == 0) - return 0; - - // Requeue the caller. - this->waiters_.dequeue (); - - this->waiters_.enqueue (caller, requeue_position); - - // Notify new owner. - if (this->owner () != 0) - this->owner ()->proxy ()->token_acquired (this->owner ()); - - // Tell the caller that the operation would block. - errno = EWOULDBLOCK; - ACE_RETURN (-1); - - ACE_NOTREACHED (return -1); -} - -// Release the current holder of the token (which had -// better be the caller's thread!). - -int -ACE_Mutex_Token::release (ACE_TPQ_Entry *caller) -{ - ACE_TRACE ("ACE_Mutex_Token::release"); - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1); - - // Does anyone own the token? - if (this->owner () == 0) - { - errno = EACCES; - ACE_RETURN (-1); - } - - // Is the caller the owner. - if (this->is_owner (caller->client_id ())) - { - // Check the nesting level. - if (caller->nesting_level () > 0) - caller->nesting_level (-1); - else - { - this->waiters_.dequeue (); - // Notify new owner. - if (this->owner () != 0) - this->owner ()->proxy ()->token_acquired (this->owner ()); - } - } - else - this->remove (caller); - - return 0; -} - -int -ACE_Mutex_Token::owners (OWNER_STACK &stack, - const ACE_TCHAR *id) -{ - ACE_TRACE ("ACE_Mutex_Token::owners"); - if (this->owner () != 0) - { - stack.push (this->owner ()); - // If an is specified, return whether it is the owner being - // returned. - if (id != 0) - return this->owner ()->equal_client_id (id); - } - - return 0; -} - -int -ACE_Mutex_Token::is_waiting_for (const ACE_TCHAR *id) -{ - ACE_TRACE ("ACE_Mutex_Token::is_waiting_for"); - // If there is no owner, or is the owner, return false. - if ((this->owner () == 0) || this->is_owner (id)) - return 0; - - // Step through each waiter looking for . - ACE_TPQ_Iterator iterator (waiters_); - iterator.advance (); - for (ACE_TPQ_Entry *temp = 0; - iterator.next (temp) != 0; - iterator.advance ()) - { - if (temp->equal_client_id (id)) - return 1; - } - - return 0; -} - -int -ACE_Mutex_Token::is_owner (const ACE_TCHAR *id) -{ - ACE_TRACE ("ACE_Mutex_Token::is_owner"); - // If there is an owner, return whether it is . - if ((this->owner () != 0) && - this->owner ()->equal_client_id (id)) - return 1; - else - return 0; -} - -int -ACE_Mutex_Token::type (void) const -{ - ACE_TRACE ("ACE_Mutex_Token::type"); - return (int) ACE_Tokens::MUTEX; -} - -// ************************************************************ - -int -ACE_RW_Token::type (void) const -{ - ACE_TRACE ("ACE_RW_Token::type"); - return (int) ACE_Tokens::RWLOCK; -} - -void -ACE_RW_Token::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_RW_Token::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_RW_Token::dump:\n") - ACE_TEXT ("num_writers_ = %d\n"), num_writers_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("lock_\n"))); - this->lock_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("base:\n"))); - ACE_Tokens::dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_RW_Token::dump end.\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -ACE_RW_Token::ACE_RW_Token (const ACE_TCHAR *name) -: num_writers_ (0) -{ - ACE_TRACE ("ACE_RW_Token::ACE_RW_Token"); - - ACE_OS::strsncpy (this->token_name_, - name, - ACE_MAXTOKENNAMELEN); -} - -ACE_RW_Token::~ACE_RW_Token (void) -{ - ACE_TRACE ("ACE_RW_Token::~ACE_RW_Token"); -} - -int -ACE_RW_Token::acquire (ACE_TPQ_Entry *caller, - int ignore_deadlock, - int notify) -{ - ACE_TRACE ("ACE_RW_Token::acquire"); - // We need to acquire two locks. This one to ensure that only one - // thread uses this token at a time. - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon1, this->lock_, -1); - // This one to ensure an atomic transaction across all tokens. Note - // that this order is crucial too. It's resource coloring for other - // threads which may be calling this same token. - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon2, ACE_Token_Manager::instance ()->mutex (), -1); - - if (caller->proxy ()->type () == ACE_RW_Token::WRITER) - this->num_writers_++; - - // Does _anyone_ own the token? - if (this->owner () == 0) - { - // There are no waiters, so queue as the first waiter (the owner). - this->waiters_.enqueue (caller, -1); - return 0; - } - - // Check for recursive acquisition. - if (this->is_owner (caller->client_id ())) - { - caller->nesting_level (1); - return 0; // Success. - } - - // Reader. - if (caller->proxy ()->type () == ACE_RW_Token::READER) - { - // Are there any writers? - if (this->num_writers_ == 0) - { - // Queue the caller at the end of the queue. - this->waiters_.enqueue (caller, -1); - return 0; - } - // Else failure. - } - - // Failure code. - - // Check for deadlock. - if (!ignore_deadlock && - ACE_Token_Manager::instance ()->check_deadlock (caller->proxy ()) == 1) - { - if (caller->proxy ()->type () == ACE_RW_Token::WRITER) - this->num_writers_--; - errno = EDEADLK; - ACE_RETURN (-1); - } - - // Queue the caller at the end of the queue. - this->waiters_.enqueue (caller, -1); - - if (notify) - { - // If it's a writer, just notify it. - if (this->owner ()->proxy ()->type () == ACE_RW_Token::WRITER) - this->owner ()->call_sleep_hook (); - else - { - // Call back all reader owners. - ACE_TPQ_Entry *temp = this->owner (); - do - { - temp->call_sleep_hook (); - temp = temp->next_; - } - while (temp != 0 && - temp->proxy ()->type () == ACE_RW_Token::READER); - } - } - - errno = EWOULDBLOCK; - ACE_RETURN (-1); - - ACE_NOTREACHED (return -1); -} - -int -ACE_RW_Token::tryacquire (ACE_TPQ_Entry *caller) -{ - ACE_TRACE ("ACE_RW_Token::tryacquire"); - // We need to acquire two locks. This one to ensure that only one - // thread uses this token at a time. - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon1, this->lock_, -1); - // This one to ensure an atomic transaction across all tokens. Note - // that this order is crucial too. It's resource coloring for other - // threads which may be calling this same token. - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon2, ACE_Token_Manager::instance ()->mutex (), -1); - - if (caller->proxy ()->type () == ACE_RW_Token::WRITER) - { - this->num_writers_++; - } - - // Does _anyone_ own the token? - if (this->owner () == 0) - { - // There are no waiters, so queue as the first waiter (the owner). - this->waiters_.enqueue (caller, -1); - return 0; - } - - // Check for recursive acquisition. - if (this->is_owner (caller->client_id ())) - { - caller->nesting_level (1); - return 0; // Success. - } - - // Reader. - if (caller->proxy ()->type () == ACE_RW_Token::READER) - { - // Are there any writers? - if (this->num_writers_ == 0) - { - // queue the caller at the end of the queue. - this->waiters_.enqueue (caller, -1); - return 0; - } - // Else, fail. - } - else // Writer. - // We're going to fail, so decrement the num_writers. - { - this->num_writers_--; - } - - - errno = EWOULDBLOCK; - ACE_RETURN (-1); - - ACE_NOTREACHED (return -1); -} - -int -ACE_RW_Token::renew (ACE_TPQ_Entry *caller, - int requeue_position) -{ - ACE_TRACE ("ACE_RW_Token::renew"); - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1); - - // Werify that the caller is the owner - if (this->is_owner (caller->client_id ()) == 0) - { - errno = EACCES; - ACE_RETURN (-1); - } - - // The caller is the owner, so check to see if there are any - // waiters. If not, we just keep the token. - if (this->waiters_.size () == 1 || requeue_position == 0) - return 0; - - // There are waiters, so remove the caller. - this->remove (caller); - - // Requeue the caller. - this->waiters_.enqueue (caller, requeue_position); - - if (caller->proxy ()->type () == ACE_RW_Token::READER) - { - // If the caller got queued before any writers, the caller is - // still the owner. - if (this->is_owner (caller->client_id ())) - return 0; // success - // else fallthrough and return would block. - } - // Writers will always have to block since waiters_.size () == 1 or - // requeue_position == 0. - - // Get a new owner. - this->notify_new_owner (caller); - - // Tell the caller that the operation would block. - errno = EWOULDBLOCK; - ACE_RETURN (-1); - - ACE_NOTREACHED (return -1); -} - -int -ACE_RW_Token::release (ACE_TPQ_Entry *caller) -{ - ACE_TRACE ("ACE_RW_Token::release"); - ACE_GUARD_RETURN (ACE_TOKEN_CONST::MUTEX, ace_mon, this->lock_, -1); - - // Check for errors. - if ((this->owner () == 0) || - (this->is_owner (caller->client_id ()) == 0)) - { - errno = EACCES; - ACE_RETURN (-1); - } - - if (caller->proxy ()->type () == ACE_RW_Token::WRITER) - num_writers_--; - - // Recursive release. - if (caller->nesting_level () > 0) - { - caller->nesting_level (-1); - return 0; - } - - // Remove the caller and notify the new owner(s). - this->remove (caller); - this->notify_new_owner (caller); - - return 0; -} - -void -ACE_RW_Token::notify_new_owner (ACE_TPQ_Entry *old_owner) -{ - ACE_TRACE ("ACE_RW_Token::notify_new_owner"); - - if (this->owner () == 0) - return; - - if (this->owner ()->proxy ()->type () == ACE_RW_Token::READER) - { - if (old_owner->proxy ()->type () == ACE_RW_Token::READER) - // the owners already know that they're owners - return; - - // The current owner is a reader and the previous owner was a - // writer, so notify all waiting readers up to the first writer. - // call back all reader owners. - ACE_TPQ_Iterator iterator (waiters_); - for (ACE_TPQ_Entry *temp = 0; - iterator.next (temp) != 0; - iterator.advance ()) - { - if (temp->proxy ()->type () == WRITER) - // We've gone through all the readers. - break; - - temp->proxy ()->token_acquired (temp); - } - } - else // writer - this->owner ()->proxy ()->token_acquired (this->owner ()); -} - - -int -ACE_RW_Token::owners (OWNER_STACK &stack, - const ACE_TCHAR *id) -{ - ACE_TRACE ("ACE_RW_Token::owners"); - - if (this->owner () == 0) - return 0; - - int id_is_owner = 0; - - // The first waiter is a writer, so there is only one owner. - if (this->owner ()->proxy ()->type () == WRITER) - { - stack.push (this->owner ()); - // If an is specified, return whether it is the owner being - // returned. - if ((id != 0) && - (ACE_OS::strcmp (id, this->owner ()->client_id ()) == 0)) - id_is_owner = 1; - } - // The first waiter is a reader, so there can be multiple owning - // readers. - else - { - ACE_TPQ_Iterator iterator (waiters_); - for (ACE_TPQ_Entry *temp = 0; - iterator.next (temp) != 0; - iterator.advance ()) - { - if (temp->proxy ()->type () == WRITER) - // We've gone through all the readers. - break; - - stack.push (temp); - - if (!id_is_owner && (id != 0) && - (ACE_OS::strcmp (id, temp->client_id ()) == 0)) - id_is_owner = 1; - } - } - - return id_is_owner; -} - -int -ACE_RW_Token::is_waiting_for (const ACE_TCHAR *id) -{ - ACE_TRACE ("ACE_RW_Token::is_waiting_for"); - // If there is no owner, or is the owner, return false. - if ((this->owner () == 0) || - this->is_owner (id)) - return 0; - - // Step through each waiter looking for . - ACE_TPQ_Iterator iterator (waiters_); - iterator.advance (); - for (ACE_TPQ_Entry *temp = 0; - iterator.next (temp) != 0; - iterator.advance ()) - { - if (temp->equal_client_id (id)) - return 1; - } - - return 0; -} - -int -ACE_RW_Token::is_owner (const ACE_TCHAR *id) -{ - ACE_TRACE ("ACE_RW_Token::is_owner"); - // If there is no owner, return false. - if (this->owner () == 0) - return 0; - - // A writer owns us. - if (this->owner ()->proxy ()->type () == ACE_RW_Token::WRITER) - return this->owner ()->equal_client_id (id); - - // Readers own us. - // Step through each owning reader looking for . - ACE_TPQ_Iterator iterator (waiters_); - for (ACE_TPQ_Entry *temp = 0; - iterator.next (temp) != 0; - iterator.advance ()) - { - if (temp->proxy ()->type () != ACE_RW_Token::READER) - break; - - if (temp->equal_client_id (id)) - return 1; - } - - return 0; -} - -void -ACE_Token_Proxy::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Token_Proxy::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Token_Proxy::dump:\n") - ACE_TEXT (" type = %d\n") - ACE_TEXT (" ignore_deadlock_ = %d\n") - ACE_TEXT (" debug_ = %d\n"), - (int) this->type (), ignore_deadlock_, debug_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("mutex_, and waiter_\n"))); - - if (this->token_ != 0) - this->token_->dump (); - - this->waiter_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Token_Proxy::dump end.\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -const ACE_TCHAR * -ACE_Token_Proxy::client_id (void) const -{ - ACE_TRACE ("ACE_Token_Proxy::client_id"); - // Thread-specific. - const ACE_TPQ_Entry *temp = this->waiter_.operator->(); - const ACE_TCHAR *id = temp->client_id (); - - if (id == 0) - return ACE_TEXT ("ERROR NO CLIENT ID"); - else - return id; -} - -void -ACE_Token_Proxy::client_id (const ACE_TCHAR *client_id) -{ - ACE_TRACE ("ACE_Token_Proxy::client_id"); - this->waiter_->client_id (client_id); -} - -const ACE_TCHAR * -ACE_Token_Proxy::owner_id (void) -{ - ACE_TRACE ("ACE_Token_Proxy::owner_id"); - return this->token_->owner_id (); -} - -const ACE_TCHAR * -ACE_Token_Proxy::name (void) const -{ - ACE_TRACE ("ACE_Token_Proxy::name"); - return this->token_->name (); -} - -#if defined (ACE_WIN32_VC8) -# pragma warning (push) -# pragma warning (disable:4355) /* Use of 'this' in initializer list */ -#endif -ACE_Token_Proxy::ACE_Token_Proxy (void) -: token_ (0), - waiter_ (this, 0) -{ - ACE_TRACE ("ACE_Token_Proxy::ACE_Token_Proxy"); -} - -// Notice the token_ (0). Do *not* copy the token pointer. This must -// be obtained through the token manager. Also, we don't copy any -// waiter info. A copied Proxy does *not* inherit client_id. - -ACE_Token_Proxy::ACE_Token_Proxy (const ACE_Token_Proxy &) - : token_ (0), - waiter_ (this, 0) -{ - ACE_TRACE ("ACE_Token_Proxy::ACE_Token_Proxy"); -} -#if defined (ACE_WIN32_VC8) -# pragma warning (pop) -#endif - -// @@ should I do a mutex_->release ()? -ACE_Token_Proxy::~ACE_Token_Proxy (void) -{ - ACE_TRACE ("ACE_Token_Proxy::~ACE_Token_Proxy"); - - if (token_ != 0) - // notify token manager that we are done with it so it can - // free it if necessary - ACE_Token_Manager::instance ()->release_token (token_); -} - -int -ACE_Token_Proxy::open (const ACE_TCHAR *token_name, - int ignore_deadlock, - int debug) -{ - ACE_TRACE ("ACE_Token_Proxy::open"); - - // Store some parameters. - this->ignore_deadlock_ = ignore_deadlock; - this->debug_ = debug; - - // Used in case a name was not specified. - ACE_TCHAR name[BUFSIZ]; - - // We must have a name. - if (token_name == 0) - { - ACE_OS::sprintf (name, ACE_TEXT ("token %lx"), - reinterpret_cast (this)); - token_name = name; - } - - // Get or create the underlying token. The Token Manager will call - // us back to set token_. - ACE_Token_Manager::instance ()->get_token (this, token_name); - - // Check for failed get or failed new. - if (this->token_ == 0) - { - errno = ENOMEM; - ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("Can't allocate mutex")), -1); - } - - return 0; -} - -int -ACE_Token_Proxy::acquire (int notify, - void (*sleep_hook)(void *), - ACE_Synch_Options &options) -{ - ACE_TRACE ("ACE_Token_Proxy::acquire"); - if (this->token_ == 0) - { - errno = ENOENT; - ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("Not open.\n")), -1); - } - - // Make sure no one calls our token_acquired until we have a chance - // to sleep first! If after we call an EWOULDBLOCK - // mutex_->acquire() below, but before we enter handle_options to - // wait on the cond_var, a thread tries to give take us off the - // waiter queue and signal us, IT WILL FIRST HAVE TO ACQUIRE THIS - // cond_var.mutex (). _This_ is why we acquire it. - this->waiter_->cond_var_.mutex ().acquire (); - - this->waiter_->sleep_hook (sleep_hook); - - if (this->token_->acquire (this->waiter_, this->ignore_deadlock_, notify) == -1) - // acquire failed - { - switch (errno) - { - case EDEADLK : - if (!ignore_deadlock_) - { - waiter_->cond_var_.mutex ().release (); - errno = EDEADLK; - ACE_RETURN (-1); - } - // Else, fallthrough and block! - - case EWOULDBLOCK : - if (this->debug_) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%t) waiting for %s, owner is %s, ") - ACE_TEXT ("total waiters == %d\n"), - this->name (), - this->token_->owner_id (), - token_->no_of_waiters ())); - - // no error, but would block, if error, return error (-1), - // otherwise, return whether we called the holder or not. - int return_value; - if (this->handle_options (options, - waiter_->cond_var_) == -1) - return_value = -1; - else - return_value = notify == 1; - - errno = EWOULDBLOCK; - ACE_RETURN (return_value); - - default : - waiter_->cond_var_.mutex ().release (); - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("Token Proxy acquire.")), - -1); - } - } - else - // we have the token - { - if (debug_) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%t) acquired %s\n"), - this->name ())); - waiter_->cond_var_.mutex ().release (); - } - - return 0; -} - -int -ACE_Token_Proxy::tryacquire (void (*sleep_hook)(void *)) -{ - ACE_TRACE ("ACE_Token_Proxy::tryacquire"); - if (this->token_ == 0) - { - errno = ENOENT; - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Not open.\n")), - -1); - } - - this->waiter_->sleep_hook (sleep_hook); - - return this->token_->tryacquire (waiter_); -} - -int -ACE_Token_Proxy::renew (int requeue_position, - ACE_Synch_Options &options) -{ - ACE_TRACE ("ACE_Token_Proxy::renew"); - if (this->token_ == 0) - { - errno = ENOENT; - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("Not open.\n")), - -1); - } - - // Make sure no one calls our token_acquired until we have a chance - // to sleep first! - this->waiter_->cond_var_.mutex ().acquire (); - - if (this->token_->renew (this->waiter_, requeue_position) == -1) - { - // check for error - if (errno != EWOULDBLOCK) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p renew failed\n"), ACE_TEXT ("ACE_Token_Proxy")), -1); - - if (this->debug_) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) renew blocking for %s, owner is %s\n"), - this->name (), - token_->owner_id ())); - - // no error, but would block, so block or return - return this->handle_options (options, waiter_->cond_var_); - } - else - // we have the token - { - if (this->debug_) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) renewed %s\n"), - this->name ())); - waiter_->cond_var_.mutex ().release (); - return 0; - } -} - -int -ACE_Token_Proxy::handle_options (ACE_Synch_Options &options, - ACE_TOKEN_CONST::COND_VAR &cv) -{ - // Some operation failed with EWOULDBLOCK. - ACE_TRACE ("ACE_Token_Proxy::handle_options"); - - if (options[ACE_Synch_Options::USE_REACTOR] == 1) - // Asynchronous. - { - // Save/restore errno. - ACE_Errno_Guard error (errno); - cv.mutex ().release (); - ACE_RETURN (-1); - } - else - // Synchronous. - { - // Block on condition variable. - while (cv.wait ((ACE_Time_Value *) options.time_value ()) == -1) - { - // Note, this should obey whatever thread-specific - // interrupt policy is currently in place... - if (errno == EINTR) - continue; - // We come here if a timeout occurs or some serious - // ACE_Condition object error. - cv.mutex ().release (); - ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("condition variable wait") - ACE_TEXT (" bombed.")), -1); - } - - if (this->debug_) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) unblocking %s.\n"), - this->client_id ())); - cv.mutex ().release (); - return 0; // operation succeeded - } -} - -int -ACE_Token_Proxy::release (ACE_Synch_Options &) -{ - ACE_TRACE ("ACE_Token_Proxy::release"); - - if (this->token_ == 0) - { - errno = ENOENT; - if (debug_) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Must open before releasing.\n"))); - ACE_RETURN (-1); - } - - if (this->token_->release (waiter_) != 0) - { - // Release failed. - this->token_->remove (this->waiter_); - if (debug_) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) %p.\n"), ACE_TEXT ("release failed"))); - return -1; - } - else - { - if (this->debug_) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) released %s, owner is %s\n"), - this->name (), - token_->owner_id ())); - - return 0; - } -} - -int -ACE_Token_Proxy::remove (ACE_Synch_Options &) -{ - ACE_TRACE ("ACE_Token_Proxy::remove"); - return 0; -} - -void -ACE_Token_Proxy::sleep_hook (void) -{ - ACE_TRACE ("ACE_Token_Proxy::sleep_hook"); - // Somebody wants our token! (Let'em wait...) - return; -} - -void -ACE_Token_Proxy::token_acquired (ACE_TPQ_Entry *e) -{ - ACE_TRACE ("ACE_Token_Proxy::token_acquired"); - e->cond_var_.mutex ().acquire (); - // We've been taken off the waiters list and given the token! - // This implementation signals the internal condition - // variable. Thus, if asynchronous acquires are used, this must be - // overriden to do something more useful! - e->cond_var_.signal (); - e->cond_var_.mutex ().release (); - - return; -} - -int -ACE_Token_Proxy::type (void) const -{ - ACE_TRACE ("ACE_Token_Proxy::type"); - return 0; -} - -int -ACE_Token_Proxy::acquire_read (int notify, - void (*sleep_hook)(void *), - ACE_Synch_Options &options) -{ - return this->acquire (notify, - sleep_hook, - options); -} - -int -ACE_Token_Proxy::acquire_write (int notify, - void (*sleep_hook)(void *), - ACE_Synch_Options &options) -{ - return this->acquire (notify, - sleep_hook, - options); -} - -int -ACE_Token_Proxy::tryacquire_read (void (*sleep_hook)(void *)) -{ - return this->tryacquire (sleep_hook); -} - -int -ACE_Token_Proxy::tryacquire_write (void (*sleep_hook)(void *)) -{ - return this->tryacquire (sleep_hook); -} - -ACE_Token_Name::ACE_Token_Name (const ACE_TCHAR *token_name) -{ - ACE_TRACE ("ACE_Token_Name::ACE_Token_Name"); - this->name (token_name); -} - -ACE_Token_Name::ACE_Token_Name (const ACE_Token_Name &rhs) -{ - ACE_TRACE ("ACE_Token_Name::ACE_Token_Name"); - this->name (rhs.name ()); -} - -ACE_Token_Name::~ACE_Token_Name () -{ - ACE_TRACE ("ACE_Token_Name::~ACE_Token_Name"); -} - -void -ACE_Token_Name::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Token_Name::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Token_Name::dump:\n") - ACE_TEXT (" token_name_ = %s\n"), - token_name_ == 0 ? ACE_TEXT ("no name") : token_name_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -// ************************************************************ - -ACE_Token_Proxy * -ACE_Local_Mutex::clone (void) const -{ - ACE_Token_Proxy *temp = 0; - ACE_NEW_RETURN (temp, - ACE_Local_Mutex (token_->name (), - ignore_deadlock_, - debug_), - 0); - return temp; -} - -ACE_Tokens * -ACE_Local_Mutex::create_token (const ACE_TCHAR *name) -{ - ACE_Tokens *temp = 0; - ACE_NEW_RETURN (temp, - ACE_Mutex_Token (name), - 0); - return temp; -} - -ACE_Local_Mutex::~ACE_Local_Mutex (void) -{ -} - -// ************************************************************ - -ACE_Local_RLock::~ACE_Local_RLock (void) -{ -} - -ACE_Tokens * -ACE_Local_RLock::create_token (const ACE_TCHAR *name) -{ - ACE_Tokens *temp = 0; - ACE_NEW_RETURN (temp, - ACE_RW_Token (name), - 0); - return temp; -} - -int -ACE_Local_RLock::type (void) const -{ - return ACE_RW_Token::READER; -} - -ACE_Token_Proxy * -ACE_Local_RLock::clone (void) const -{ - ACE_Token_Proxy *temp = 0; - ACE_NEW_RETURN (temp, - ACE_Local_RLock (token_->name (), - ignore_deadlock_, - debug_), - 0); - return temp; -} - -// ************************************************************ - -ACE_Local_WLock::~ACE_Local_WLock (void) -{ -} - -ACE_Tokens * -ACE_Local_WLock::create_token (const ACE_TCHAR *name) -{ - ACE_Tokens *temp = 0; - ACE_NEW_RETURN (temp, - ACE_RW_Token (name), - 0); - return temp; -} - -int -ACE_Local_WLock::type (void) const -{ - return ACE_RW_Token::WRITER; -} - -ACE_Token_Proxy * -ACE_Local_WLock::clone (void) const -{ - ACE_Token_Proxy *temp = 0; - ACE_NEW_RETURN (temp, - ACE_Local_WLock (token_->name (), - ignore_deadlock_, - debug_), - 0); - return temp; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_TOKENS_LIBRARY */ diff --git a/ACE/ace/Local_Tokens.h b/ACE/ace/Local_Tokens.h deleted file mode 100644 index cea51db5894..00000000000 --- a/ACE/ace/Local_Tokens.h +++ /dev/null @@ -1,1121 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Local_Tokens.h - * - * $Id$ - * - * @author Karl-Heinz Dorn - * @author Douglas C. Schmidt - * @author Tim Harrison - * - * This file contains definitions for the following classes: - * - * public: - * 7. ACE_Token_Proxy - * 8. ACE_Null_Token : public ACE_Token_Proxy - * 9. ACE_Local_Mutex : public ACE_Token_Proxy - * *. ACE_Local_RLock : public ACE_Local_Mutex - * &. ACE_Local_WLock : public ACE_Local_Mutex - * private: - * 1. ACE_TOKEN_CONST - * 3. ACE_TPQ_Entry - * b. ACE_TSS_TPQ_Entry - * c. ACE_TPQ_Iterator - * 4. ACE_Token_Proxy_Queue - * 5. ACE_Tokens - * 6. ACE_Mutex_Token : public ACE_Tokens - * 12. ACE_RW_Token : public ACE_Tokens - * a. ACE_Token_Name - * - * Note that the locking classes defined in this file are *not* - * intended to be used as general-purpose synchronization - * 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_Token that's defined in $ACE_ROOT/ace/Token.h. - * - * - */ -//============================================================================= - -#ifndef ACE_LOCAL_MUTEX_H -#define ACE_LOCAL_MUTEX_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_HAS_TOKENS_LIBRARY) - -#include "ace/Synch_Traits.h" -#include "ace/Condition_Thread_Mutex.h" -#include "ace/TSS_T.h" -#include "ace/Containers.h" -#include "ace/Synch_Options.h" -#include "ace/Map_Manager.h" -#include "ace/Log_Msg.h" -#include "ace/OS_NS_string.h" -#include "ace/os_include/os_netdb.h" - -#if !(defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)) -# define ACE_NO_TSS_TOKENS 1 -#endif /* !(defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)) */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// 1. -/** - * @class ACE_TOKEN_CONST - * - * @brief Not a public interface. - * - * Constant definitions and typedefs for Token library. Mostly, - * this class is necessary to fight the compiler with order of - * declaration errors. - */ -namespace ACE_TOKEN_CONST -{ -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - // ACE platform supports some form of threading. - typedef ACE_Condition_Thread_Mutex COND_VAR; - typedef ACE_Thread_Mutex MUTEX; - typedef ACE_Guard GUARD; -#else - typedef ACE_Null_Condition COND_VAR; - typedef ACE_Null_Mutex MUTEX; - typedef ACE_Guard GUARD; -#endif /* ACE_HAS_THREADS */ -} - -// Forward decl. -class ACE_Token_Proxy; - -// 3.. -/** - * @class ACE_TPQ_Entry - * - * @brief Token Proxy Queue entry. Used in the ACE_Token_Proxy_Queue - * - * Not a public interface. - */ -class ACE_Export ACE_TPQ_Entry -{ - friend class ACE_Token_Manager; -public: - typedef void (*PTVF) (void *); - - /// Null constructor. - ACE_TPQ_Entry (void); - - /// Constructor. - ACE_TPQ_Entry (const ACE_Token_Proxy *proxy, - const ACE_TCHAR *client_id); - - /// Copy constructor. - ACE_TPQ_Entry (const ACE_TPQ_Entry &rhs); - - /// Destructor. - ~ACE_TPQ_Entry (void); - - /// Copy operator use by the queue. - void operator= (const ACE_TPQ_Entry &rhs); - - /// Get top of the queue. - ACE_Token_Proxy *proxy (void) const; - - /// Set top of the queue. - void proxy (ACE_Token_Proxy *); - - /// Get nesting level of the entry. - int nesting_level (void) const; - - /// Delta nesting level of the entry. - void nesting_level (int delta); - - /// Get client_id of the entry. - const ACE_TCHAR *client_id (void) const; - - /// Set client_id of the entry. - void client_id (const ACE_TCHAR *); - - /// Returns 1 if @a id == client id. Does not check for @a id == 0. - int equal_client_id (const ACE_TCHAR *id); - - /// One method for arg and sleep_hook. - void set (void (*sleep_hook)(void *)); - - /// Set sleep hook of the entry. - void sleep_hook (void (*sh)(void *)); - - /// Get sleep hook of the entry. - PTVF sleep_hook (void) const; - - /// Call the sleep hook function or method passing arg. - void call_sleep_hook (void); - - /// Dump the state of the class. - void dump (void) const; - - // = Used to block the thread if an acquire fails with EWOULDBLOCK. - ACE_TOKEN_CONST::COND_VAR cond_var_; - ACE_TOKEN_CONST::MUTEX lock_; - - /// Pointer to next in list. - ACE_TPQ_Entry *next_; - - /// Get whether this client is blocked waiting for a token. - int waiting (void) const; - - /// Set whether this client is blocked waiting for a token. - void waiting (int w); - -private: - /// This client is waiting for a token. - int waiting_; - - /// Proxy. - ACE_Token_Proxy *proxy_; - - /// Nesting level. - int nesting_level_; - - /// Arg. - void *arg_; - - /// Client id. - ACE_TCHAR client_id_[ACE_MAXCLIENTIDLEN]; - - /// Sleep hook. - void (*sleep_hook_)(void *); -}; - -// b.. -#if defined (ACE_NO_TSS_TOKENS) -typedef ACE_TPQ_Entry ACE_TPQ_ENTRY; -#else -typedef ACE_TSS ACE_TPQ_ENTRY; -#endif /* ACE_NO_TSS_TOKENS */ - -/** - * @class ACE_TSS_TPQ_Entry - * - * @brief ACE_TSS_TPQ_Entry - * - * Not a public interface. - */ -class ACE_Export ACE_TSS_TPQ_Entry : public ACE_TPQ_ENTRY -{ -public: - /// These are passed to the constructor of ACE_TPQ_Entry in - /// make_TSS_TYPE - ACE_TSS_TPQ_Entry (const ACE_Token_Proxy *proxy, - const ACE_TCHAR *client_id); - - /// Destructor. - virtual ~ACE_TSS_TPQ_Entry (void); - - /// Allows us to pass args to the construction of the TSS object. - virtual ACE_TPQ_Entry *make_TSS_TYPE (void) const; - - /// Operator overloading and inheritence don't mix. - operator ACE_TPQ_Entry *(void); - - /// Dump the state of the class. - void dump (void) const; - -#if defined (ACE_NO_TSS_TOKENS) - ACE_TPQ_Entry *operator-> (void) - { - return (ACE_TPQ_Entry *) this; - } -#endif /* ACE_NO_TSS_TOKENS */ - -private: - /// Private: should not be used - ACE_TSS_TPQ_Entry (const ACE_TSS_TPQ_Entry &); - void operator= (const ACE_TSS_TPQ_Entry &); - - // = These are passed to the constructor of ACE_TPQ_Entry in - // make_TSS_TYPE - - /// Proxy. - const ACE_Token_Proxy *proxy_; - - /// Client_id. - const ACE_TCHAR *client_id_; -}; - -class ACE_Token_Proxy_Queue; - -// c.. -/** - * @class ACE_TPQ_Iterator - * - * @brief Iterates through ACE_Token_Proxy_Queues. - * - * Not a public interface. - */ -class ACE_Export ACE_TPQ_Iterator -{ -public: - /// Constructor. - ACE_TPQ_Iterator (ACE_Token_Proxy_Queue &q); - - /// Destructor. - ~ACE_TPQ_Iterator (void); - - /// Pass back the . - int next (ACE_TPQ_Entry *&next_item); - - /// Returns 1 when all items have been seen, else 0. - int done (void) const; - - /// Move forward by one element in the queue. - void advance (void); - - /// Dump the state of an object. - void dump (void) const; - -private: - ACE_TPQ_Entry *current_; -}; - -// 4.. -/** - * @class ACE_Token_Proxy_Queue - * - * @brief Token waiter list. - * - * Not a public interface. - * This queue holds all the token proxies waiting for ownership - * of a token. Along with the proxy reference, it also stores - * the nesting level, client id, and a magic cookie from the - * proxy. This queue stores the ACE_TPQ_Entries by pointer - * values. It DOES NOT make copies. Thus, the user is - * responsible to ensure that the TPQ's stick around. This is - * motivated by the need to reduce dynamic memory allocation. - */ -class ACE_Export ACE_Token_Proxy_Queue -{ -public: - friend class ACE_TPQ_Iterator; - - /// Constructor. - ACE_Token_Proxy_Queue (void); - - /// Destructor. - ~ACE_Token_Proxy_Queue (void); - - /** - * Enqueue a proxy, nesting level, client_id, and a magic cookie at - * the given position in the list. If the position is -1, we - * enqueue at the end of the list (I think). - */ - void enqueue (ACE_TPQ_Entry* new_entry, - int position); - - /// Top of the queue. - const ACE_TPQ_Entry* head (void); - -// int member (const ACE_TCHAR *id); - // Is this id in the waiter list? - - /// Remove the top waiter. - void dequeue (void); - - /// Remove the waiter whose proxy ref matches @a remove_me. - void remove (const ACE_TPQ_Entry *remove_me); - - /// The number of waiters. - int size (void); - - /// Dump the state of the class. - void dump (void) const; - -protected: - /// Head. - ACE_TPQ_Entry *head_; - - /// Tail. - ACE_TPQ_Entry *tail_; - - /// Size. - int size_; -}; - -// 5.. -/** - * @class ACE_Tokens - * - * @brief Abstract representation of ACE tokens. - * - * Not a public interface. - * Currently, I don't see a reason for providing an abstract - * interface at this level of the library. As of yet, no one - * uses ACE_Tokens derivatives through this abstract interface - * except for ACE_Token_Manager. It only uses the statistical - * methods which are shared by all Tokens. For that reason, it - * still makes since to have a common base class. However, - * acquire, renew, and release do not need to have matching - * interfaces throughout all Tokens. - * To add a new type of token (e.g. semaphore), this class must - * be subtyped to define the new semantics. See - * ACE_Token_Manager for details. - */ -class ACE_Export ACE_Tokens -{ -public: - - /// Null constructor. - ACE_Tokens (void); - - /// Destructor - virtual ~ACE_Tokens (void); - - /// No implementation. - virtual int acquire (ACE_TPQ_Entry *caller, - int ignore_deadlock, - int notify) = 0; - - /// No implementation. - virtual int tryacquire (ACE_TPQ_Entry *caller) = 0; - - /// No implementation. - virtual int renew (ACE_TPQ_Entry *caller, - int requeue_position) = 0; - - /// No implementation. - virtual int release (ACE_TPQ_Entry *caller) = 0; - - /// Move the caller to the front of the waiter list. This is for use - /// with remote mutexes and shadow mutexes. - void make_owner (ACE_TPQ_Entry *caller); - - /// Remove the caller from the waiter list. - void remove (ACE_TPQ_Entry *caller); - - // = Accessor methods. - - /// Stack of owners. - typedef ACE_Unbounded_Stack OWNER_STACK; - - /// Returns a stack of the current owners. Returns -1 on error, 0 on - /// success. If is non-zero, returns 1 if id is an owner. - virtual int owners (OWNER_STACK &o, const ACE_TCHAR *id) = 0; - - /// Returns 1 if is waiting for this token. 0 otherwise. - virtual int is_waiting_for (const ACE_TCHAR *id) = 0; - - /// Returns 1 if is an owner of this token. 0 otherwise. - virtual int is_owner (const ACE_TCHAR *id) = 0; - - /// Return the queue of waiters. - virtual ACE_Token_Proxy_Queue *waiters (void); - - /// Return the number of proxies that are currently waiting to get - /// the token. - virtual int no_of_waiters (void); - - /// The current owner. - const ACE_TCHAR *owner_id (void); - - /// Token name. - const ACE_TCHAR* name (void); - - // = Reference counting. These are only called by the - // Token_Manager. - void inc_reference (void); - int dec_reference (void); - - /// Dump the state of the class. - void dump (void) const; - - /** - * These are the Token types supported by the library at ship time. - * There is no restriction on the number of Token types added by - * "3rd parties." These are only necessary for the Token Server. - */ - enum TOKEN_TYPES { MUTEX, RWLOCK }; - - /** - * Provides a manual RTTI mechanism. This method is used only by - * ACE_Token_Request so that the type of a token can be sent to a - * remote Token Server. - */ - virtual int type (void) const = 0; - - // = The following methods allow the deadlock detection algorithm to - // check if this token has been visited. - - /// Mark or unmark the token as visited. - void visit (int v); - - /// Check if the token has been visited. - int visited (void); - - /// All the data of the current owner. - ACE_TPQ_Entry *owner (void); - -protected: - - /// For the deadlock detection algorithm. - int visited_; - - /// Reference count. - int reference_count_; - - /// List of client's owning and waiting the token. - ACE_Token_Proxy_Queue waiters_; - - /// Name of token. - ACE_TCHAR token_name_[ACE_MAXTOKENNAMELEN]; -}; - -class ACE_Local_Mutex; - -// 6.. -/** - * @class ACE_Mutex_Token - * - * @brief Class that acquires, renews, and releases a process-local - * synchronization token. - * - * Not a public interface. - * This class is a more general-purpose synchronization mechanism - * than SunOS 5.x mutexes. For example, it implements "recursive - * mutex" semantics, where a thread that owns the token can - * reacquire it without deadlocking. In addition, threads that - * are blocked awaiting the token are serviced in strict FIFO - * order as other threads release the token (SunOS 5.x mutexes - * don't strictly enforce an acquisition order). - */ -class ACE_Export ACE_Mutex_Token : public ACE_Tokens -{ -public: - /// Constructor - explicit ACE_Mutex_Token (const ACE_TCHAR* name); - - /// Destructor - virtual ~ACE_Mutex_Token (void); - - // = Synchronization operations. - // With acquire, renew, and release, the caller must be specified so - // that multiple proxies (e.g. ACE_Local_Mutex) can use the same - // token. - - /** - * Returns 0 on success, -1 on failure with as - * the reason. If errnum == EWOULDBLOCK, and notify == 1, - * has been called on the current - * owner of the token. If ignore_deadlock is passed as 1 and errnum - * == EDEADLK, then deadlock was detected via ace_token_manager. - */ - virtual int acquire (ACE_TPQ_Entry *caller, - int ignore_deadlock, - int notify); - - /// Same as acquire, but fails if would block - virtual int tryacquire (ACE_TPQ_Entry *caller); - - /** - * An optimized method that efficiently reacquires the token if no - * other threads are waiting. This is useful for situations where - * you don't want to degrade the quality of service if there are - * other threads waiting to get the token. If == - * -1 and there are other threads waiting to obtain the token we are - * queued at the end of the list of waiters. If - * > -1 then it indicates how many entries to skip over before - * inserting our thread into the list of waiters (e.g., - * == 0 means "insert at front of the queue"). - * Renew has the rather odd semantics such that if there are other - * waiting threads it will give up the token even if the - * nesting_level_ > 1. I'm not sure if this is really the right - * thing to do (since it makes it possible for shared data to be - * changed unexpectedly) so use with caution... Returns 0 on - * success, -1 on failure with as the reason. - * If errnum == EWOULDBLOCK, and notify == 1, - * has been called on the current - * owner of the token. - */ - virtual int renew (ACE_TPQ_Entry *caller, - int requeue_position); - - /** - * Relinquish the token. If there are any waiters then the next one - * in line gets it. If the caller is not the owner, caller is - * removed from the waiter list. - */ - virtual int release (ACE_TPQ_Entry *caller); - - /// Dump the state of the class. - void dump (void) const; - - /// Returns ACE_Tokens::MUTEX. - virtual int type (void) const; - - /// Returns a stack of the current owners. Returns -1 on error, 0 on - /// success. If is non-zero, returns 1 if id is an owner. - virtual int owners (OWNER_STACK &o, const ACE_TCHAR *id); - - /// Returns 1 if is waiting for this token. 0 otherwise. - virtual int is_waiting_for (const ACE_TCHAR *id); - - /// Returns 1 if is an owner of this token. 0 otherwise. - virtual int is_owner (const ACE_TCHAR *id); - -private: - /// ACE_Mutex_Token used to lock internal data structures. - ACE_TOKEN_CONST::MUTEX lock_; -}; - -// 12.. -/** - * @class ACE_RW_Token - * - * @brief Class that acquires, renews, and releases a process-local - * synchronization token. - * - * Not a public interface. - * This class is a more general-purpose synchronization mechanism - * than SunOS 5.x mutexes. For example, it implements "recursive - * mutex" semantics, where a thread that owns the token can - * reacquire it without deadlocking. In addition, threads that are - * blocked awaiting the token are serviced in strict FIFO order as - * other threads release the token (SunOS 5.x mutexes don't strictly - * enforce an acquisition order). - */ -class ACE_Export ACE_RW_Token : public ACE_Tokens -{ -public: - /// Constructor. - explicit ACE_RW_Token (const ACE_TCHAR* name); - - /// Destructor. - virtual ~ACE_RW_Token (void); - - // = Synchronization operations. - // With acquire, renew, and release, the caller must be specified so - // that multiple proxies (e.g. ACE_Local_Mutex) can use the same - // token. - - /** - * Returns 0 on success, -1 on failure with as - * the reason. If errnum == EWOULDBLOCK, and notify == 1, - * has been called on the current - * owner of the token. If @a ignore_deadlock is passed as 1 and errnum - * == EDEADLK, then deadlock was detected via ACE_Token_Manager. - */ - virtual int acquire (ACE_TPQ_Entry *caller, - int ignore_deadlock, - int notify); - - /// Same as acquire except fails on would block - virtual int tryacquire (ACE_TPQ_Entry *caller); - - /** - * An optimized method that efficiently reacquires the token if no - * other threads are waiting. This is useful for situations where - * you don't want to degrade the quality of service if there are - * other threads waiting to get the token. If == - * -1 and there are other threads waiting to obtain the token we are - * queued at the end of the list of waiters. If - * > -1 then it indicates how many entries to skip over before - * inserting our thread into the list of waiters (e.g., - * == 0 means "insert at front of the queue"). - * Renew has the rather odd semantics such that if there are other - * waiting threads it will give up the token even if the - * nesting_level_ > 1. I'm not sure if this is really the right - * thing to do (since it makes it possible for shared data to be - * changed unexpectedly) so use with caution... Returns 0 on - * success, -1 on failure with as the reason. - * If errnum == EWOULDBLOCK, and notify == 1, - * has been called on the current - * owner of the token. - */ - virtual int renew (ACE_TPQ_Entry *caller, - int requeue_position); - - /** - * Relinquish the token. If there are any waiters then the next one - * in line gets it. If the caller is not the owner, caller is - * removed from the waiter list. - */ - virtual int release (ACE_TPQ_Entry *caller); - - /// Dump the state of the class. - void dump (void) const; - - /// These are the types that proxies can be. - enum PROXY_TYPE { READER, WRITER }; - - /// Returns READER or WRITER. - virtual int type (void) const; - - /// Returns a stack of the current owners. Returns -1 on error, 0 on - /// success. If is non-zero, returns 1 if id is an owner. - virtual int owners (OWNER_STACK &o, const ACE_TCHAR *id); - - /// Returns 1 if is waiting for this token. 0 otherwise. - virtual int is_waiting_for (const ACE_TCHAR *id); - - /// Returns 1 if is an owner of this token. 0 otherwise. - virtual int is_owner (const ACE_TCHAR *id); - -protected: - /// The number of waiting writers. - int num_writers_; - - /// ACE_Mutex_Token used to lock internal data structures. - ACE_TOKEN_CONST::MUTEX lock_; - - /// Sets the new owner. - void notify_new_owner (ACE_TPQ_Entry *caller); -}; - -// a.. -/** - * @class ACE_Token_Name - * - * @brief Allows Token_Manger to identify tokens. - * - * For now, this is just a string. We need a string class - * anyway to use in ACE_Map_Manager. Having this class - * (instead of ) allows us to easily change if - * needed. For instance, we may choose to identify tokens by - * name and *type* in the future. - */ -class ACE_Export ACE_Token_Name -{ -public: - /// Construction. - ACE_Token_Name (const ACE_TCHAR *token_name = 0); - - /// Copy construction. - ACE_Token_Name (const ACE_Token_Name &rhs); - - /// Destructor. - virtual ~ACE_Token_Name (void); - - /// Copy. - void operator= (const ACE_Token_Name &rhs); - - /// Comparison. - bool operator== (const ACE_Token_Name &rhs) const; - - /// Get the token name. - const ACE_TCHAR *name (void) const; - - /// Set the token name. - void name (const ACE_TCHAR *new_name); - - /// Dump the state of the class. - void dump (void) const; - -private: - /// Name of the token. - ACE_TCHAR token_name_[ACE_MAXTOKENNAMELEN]; -}; - -// 7.. -/** - * @class ACE_Token_Proxy - * - * @brief Abstract representation of ACE tokens. - * - * Interface for all Tokens in ACE. This class implements the - * synchronization needed for tokens (condition variables etc.) - * The algorithms for the operations (acquire, release, etc.) - * operate on the generic ACE_Tokens interface. Thus, the _type_ - * of token (mutex, rwlock) can be set at construction of - * ACE_Token_Proxy. You can use all Tokens in ACE through the - * ACE_Token_Proxy by passing the proper values at construction. - * Alternatively, there are class definitions which "know" how to - * do this (ACE_Local_Mutex, ACE_Local_RLock, ACE_Local_WLock). - * To add a new type of token (e.g. semaphore), this class is not - * changed. See ACE_Token_Manager for details. - * Tokens (e.g. ACE_Mutex_Token) assume that it can always call - * on a new token owner. This - * is not a problem for synchronous use of token proxies (that is, - * when acquires block until successful.) However, for - * implementations of the Token Server, which may use asynch - * operations, the proxy can not go away after an acquire until - * the token is acquired. This is not really a problem, but - * should be understood. - */ -class ACE_Export ACE_Token_Proxy -{ -public: - friend class ACE_Token_Manager; - friend class ACE_Token_Invariant_Manager; // For testing. - - // Initialization and termination methods. - /// Construction. - ACE_Token_Proxy (void); - - /// Destructor. - virtual ~ACE_Token_Proxy (void); - - /** - * Open the . - * @param name The string uniquely identifying the token. - * @param ignore_deadlock Can be 1 to disable deadlock notifications. - * @param debug Prints debug messages. - */ - virtual int open (const ACE_TCHAR *name, - int ignore_deadlock = 0, - int debug = 0); - - // = The following methods have implementations which are - // independent of the token semantics (mutex, rwlock, etc.) They - // forward operations to the underlying token and perform the - // necessary blocking semantics for operations (condition variables - // etc.) This allows reuse of the blocking code as well as having - // multiple proxies to the same token. - - /// Calls acquire on the token. Blocks the calling thread if would - /// block. - virtual int acquire (int notify = 0, - void (*sleep_hook)(void *) = 0, - ACE_Synch_Options &options = - ACE_Synch_Options::defaults); - - /// Calls renew on the token. Blocks the calling thread if would block. - virtual int renew (int requeue_position = -1, - ACE_Synch_Options &options = - ACE_Synch_Options::defaults); - - /// Calls renew on the token. - virtual int tryacquire (void (*sleep_hook)(void *) = 0); - - /// Calls release on the token. - virtual int release (ACE_Synch_Options &options = - ACE_Synch_Options::defaults); - - /// Calls remove on the token. - virtual int remove (ACE_Synch_Options &options = - ACE_Synch_Options::defaults); - - /// Since the locking mechanism doesn't support read locks then this - /// just calls . - virtual int acquire_read (int notify = 0, - void (*sleep_hook)(void *) = 0, - ACE_Synch_Options &options = - ACE_Synch_Options::defaults); - - /// Since the locking mechanism doesn't support write locks then this - /// just calls . - virtual int acquire_write (int notify = 0, - void (*sleep_hook)(void *) = 0, - ACE_Synch_Options &options = - ACE_Synch_Options::defaults); - - /// Since the locking mechanism doesn't support read locks then this - /// just calls . - virtual int tryacquire_read (void (*sleep_hook)(void *) = 0); - - /// Since the locking mechanism doesn't support write locks then this - /// just calls . - virtual int tryacquire_write (void (*sleep_hook)(void *) = 0); - - // = Utility methods. - - /// Get the client id of the proxy. This is implemented as - /// thread-specific data. - virtual const ACE_TCHAR *client_id (void) const; - - /** - * Set the client_id for the calling thread. I strongly recommend - * that this not be used unless you really know what you're doing. - * I use this in the Token Server, and it caused many headaches. - */ - virtual void client_id (const ACE_TCHAR *client_id); - - /** - * Return the name of the token. This is important for use within - * the token servers (local and remote) as well as with token - * collections. So, all derivations of ACE_Token_Proxy must be able to - * stringify some name. The name must uniquely identify a token. - * So, for instance, the token within the reactor should probably be - * called "Reactor Token." - */ - virtual const ACE_TCHAR *name (void) const; - - /** - * This should really be called . This is called - * by ACE_Token_xx's when another proxy enters the waiting list and - * requests that the current token holder be notified. - */ - virtual void sleep_hook (void); - - /// This is called when a queued (waiting) proxy is removed from the - /// waiters list and given the token. - virtual void token_acquired (ACE_TPQ_Entry *); - - /// The client id of the current token holder - virtual const ACE_TCHAR *owner_id (void); - - /// Return a dynamically allocated clone of the derived class. - virtual ACE_Token_Proxy *clone (void) const = 0; - - /// Dump the state of the class. - void dump (void) const; - - /** - * This method can be used be Tokens (e.g. Readers/Writer Tokens) to - * distinguish between Proxy types. For instance a Reader proxy - * should return a different type value than a Writer proxy. The - * default implementation returns 0. - */ - virtual int type (void) const; - -protected: - /// Duplication. - ACE_Token_Proxy (const ACE_Token_Proxy &); - - /// If this is set, we ignore deadlock. - int ignore_deadlock_; - - /// Print a bunch of debug messages. - int debug_; - - /// Reference to the actual logical token. Many ACE_Local_Mutex - /// proxies can reference the same ACE_Mutex_Token. - ACE_Tokens *token_; - - /// Handles cond_var waits. - int handle_options (ACE_Synch_Options &options, - ACE_TOKEN_CONST::COND_VAR &cv); - - /// Waiter info used for asynchronous transactions. - ACE_TSS_TPQ_Entry waiter_; - - /// Make the correct type of ACE_Tokens. This is called by the Token - /// Manager. - virtual ACE_Tokens *create_token (const ACE_TCHAR *name) = 0; -}; - -// 8.. -/** - * @class ACE_Null_Token - * - * @brief No op class for nonthreaded platform protocols. - */ -class ACE_Export ACE_Null_Token : public ACE_Token_Proxy -{ -public: -#if defined (ACE_LACKS_INLINE_FUNCTIONS) - // @@ Hopefully, we can remove this ridicules ifdef when CE's compiler becomes more normal. - /// Construction. - ACE_Null_Token (void); - - /// Destructor. - ~ACE_Null_Token (void); -#endif /* ACE_LACKS_INLINE_FUNCTION */ - - /// Acquire. - virtual int acquire (int /* notify */ = 0, - void (* /* sleep_hook */ )(void *) = 0, - ACE_Synch_Options & /* options */ = - ACE_Synch_Options::defaults) { return 0; } - - /// Renew. - virtual int renew (int /* requeue_position */ = -1, - ACE_Synch_Options & /* options */ = - ACE_Synch_Options::defaults) { return 0; } - - /// Try acquire. - virtual int tryacquire (void (* /* sleep_hook */)(void *) = 0) { return 0; } - - /// Release. - virtual int release (ACE_Synch_Options & /* options */ = - ACE_Synch_Options::defaults) { return 0; } - - /// Remove. - virtual int remove (ACE_Synch_Options & /* options */ = - ACE_Synch_Options::defaults) { return 0; } - - /// Return a dynamically allocated clone of the derived class. - virtual ACE_Token_Proxy *clone (void) const { return new ACE_Null_Token; } - - /// Dump the state of the class. - void dump (void) const; - - /// Do not allow the Token Manager to create us. - virtual ACE_Tokens *create_token (const ACE_TCHAR *) { return 0; } -}; - -// 9.. -/** - * @class ACE_Local_Mutex - * - * @brief Class that acquires, renews, and releases a synchronization - * token local to the process. - * - * This class is a more general-purpose synchronization mechanism - * than SunOS 5.x mutexes. For example, it implements "recursive - * mutex" semantics, where a thread that owns the token can - * reacquire it without deadlocking. In addition, threads that - * are blocked awaiting the token are serviced in strict FIFO - * order as other threads release the token (SunOS 5.x mutexes - * don't strictly enforce an acquisition order). Lastly, - * ACE_Local_Mutex performs deadlock detection on acquire calls. - * The interfaces for acquire, tryacquire, renew, release, - * etc. are defined in ACE_Token_Proxy. The semantics for - * ACE_Local_Mutex are that of a mutex. - */ -class ACE_Export ACE_Local_Mutex : public ACE_Token_Proxy -{ -public: - /** - * Constructor. - * @param token_name Uniquely id's the token. - * @param ignore_deadlock Will allow deadlock to occur (useful for testing). - * @param debug Prints a bunch of messages. - */ - ACE_Local_Mutex (const ACE_TCHAR *token_name = 0, - int ignore_deadlock = 0, - int debug = 0); - - /// Destructor - ~ACE_Local_Mutex (void); - - /// Dump the state of the class. - void dump (void) const; - - /// Return deep copy. - virtual ACE_Token_Proxy *clone (void) const; - -protected: - /// Return a new ACE_Local_Mutex. - virtual ACE_Tokens *create_token (const ACE_TCHAR *name); -}; - -// *. -/** - * @class ACE_Local_RLock - * - * @brief Class that acquires, renews, and releases a readers lock that - * is local to the process. - * - * This class implements the reader interface to canonical - * readers/writer locks. Multiple readers can hold the lock - * simultaneously when no writers have the lock. Alternatively, - * when a writer holds the lock, no other participants (readers - * or writers) may hold the lock. This class is a more - * general-purpose synchronization mechanism than SunOS 5.x - * RLocks. For example, it implements "recursive RLock" - * semantics, where a thread that owns the token can reacquire it - * without deadlocking. In addition, threads that are blocked - * awaiting the token are serviced in strict FIFO order as other - * threads release the token (SunOS 5.x RLockes don't strictly - * enforce an acquisition order). - * The interfaces for acquire, tryacquire, renew, release, - * etc. are defined in ACE_Token_Proxy. The semantics for - * ACE_Local_RLock are that of a readers/writers lock. Acquire - * for this class implies a reader acquisition. That is, - * multiple clients may acquire a lock for read only. - */ -class ACE_Export ACE_Local_RLock : public ACE_Token_Proxy -{ -public: - // = Initialization and termination. - - /** - * Constructor. - * @param token_name Uniquely id's the token. - * @param ignore_deadlock Will allow deadlock to occur (useful for testing). - * @param debug Prints a bunch of messages. - */ - ACE_Local_RLock (const ACE_TCHAR *token_name = 0, - int ignore_deadlock = 0, - int debug = 0); - - /// Destructor - ~ACE_Local_RLock (void); - - /// Dump the state of the class. - void dump (void) const; - - /// Returns ACE_RW_Token::RLOCK. - virtual int type (void) const; - - /// Return deep copy. - virtual ACE_Token_Proxy *clone (void) const; - -protected: - /// Return a new ACE_Local_Mutex. - virtual ACE_Tokens *create_token (const ACE_TCHAR *name); -}; - -// *. -/** - * @class ACE_Local_WLock - * - * @brief Class that acquires, renews, and releases a writer lock that - * is local to the process. - * - * This class implements the writer interface to canonical - * readers/writer locks. Multiple readers can hold the lock - * simultaneously when no writers have the lock. Alternatively, - * when a writer holds the lock, no other participants (readers - * or writers) may hold the lock. This class is a more - * general-purpose synchronization mechanism than SunOS 5.x - * WLock. For example, it implements "recursive WLock" - * semantics, where a thread that owns the token can reacquire it - * without deadlocking. In addition, threads that are blocked - * awaiting the token are serviced in strict FIFO order as other - * threads release the token (SunOS 5.x WLocks don't strictly - * enforce an acquisition order). - * The interfaces for acquire, tryacquire, renew, release, - * etc. are defined in ACE_Token_Proxy. The semantics for - * ACE_Local_WLock are that of a readers/writers lock. Acquire - * for this class implies a writer acquisition. That is, only - * one client may hold the lock for writing. - */ -class ACE_Export ACE_Local_WLock : public ACE_Token_Proxy -{ -public: - // = Initialization and termination. - - /** - * Constructor. - * @param token_name Uniquely id's the token. - * @param ignore_deadlock Will allow deadlock to occur (useful for testing). - * @param debug Prints a bunch of messages. - */ - ACE_Local_WLock (const ACE_TCHAR *token_name = 0, - int ignore_deadlock = 0, - int debug = 0); - - /// Destructor - ~ACE_Local_WLock (void); - - /// Dump the state of the class. - void dump (void) const; - - /// Returns ACE_RW_Token::WLOCK. - virtual int type (void) const; - - /// Return deep copy. - virtual ACE_Token_Proxy *clone (void) const; - -protected: - /// Return a new ACE_Local_Mutex. - ACE_Tokens *create_token (const ACE_TCHAR *name); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_TOKENS_LIBRARY */ - -#if defined (__ACE_INLINE__) -#include "ace/Local_Tokens.inl" -#endif /* __ACE_INLINE__ */ -#include /**/ "ace/post.h" -#endif /* ACE_LOCAL_MUTEX_H */ diff --git a/ACE/ace/Local_Tokens.inl b/ACE/ace/Local_Tokens.inl deleted file mode 100644 index 2e27ce4af04..00000000000 --- a/ACE/ace/Local_Tokens.inl +++ /dev/null @@ -1,289 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#if defined (ACE_HAS_TOKENS_LIBRARY) - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// ************************************************************ - -ACE_INLINE int -ACE_Token_Proxy_Queue::size (void) -{ - ACE_TRACE ("ACE_Token_Proxy_Queue::size"); - return this->size_; -} - -// ************************************************************ - -ACE_INLINE int -ACE_TPQ_Entry::waiting (void) const -{ - ACE_TRACE ("ACE_TPQ_Entry::waiting"); - return waiting_; -} - -ACE_INLINE void -ACE_TPQ_Entry::waiting (int v) -{ - ACE_TRACE ("ACE_TPQ_Entry::waiting"); - waiting_ = v; -} - -ACE_INLINE const ACE_TCHAR * -ACE_TPQ_Entry::client_id (void) const -{ - ACE_TRACE ("ACE_TPQ_Entry::client_id"); - return this->client_id_; -} - -ACE_INLINE ACE_Token_Proxy * -ACE_TPQ_Entry::proxy (void) const -{ - ACE_TRACE ("ACE_TPQ_Entry::proxy"); - return this->proxy_; -} - -ACE_INLINE void -ACE_TPQ_Entry::proxy (ACE_Token_Proxy *proxy) -{ - ACE_TRACE ("ACE_TPQ_Entry::proxy"); - this->proxy_ = proxy; -} - -ACE_INLINE -ACE_TPQ_Iterator::~ACE_TPQ_Iterator (void) -{ -} - -ACE_INLINE -ACE_Token_Proxy_Queue::~ACE_Token_Proxy_Queue (void) -{ -} - -ACE_INLINE void -ACE_Tokens::remove (ACE_TPQ_Entry *caller) -{ - this->waiters_.remove (caller); -} - -ACE_INLINE int -ACE_Tokens::dec_reference (void) -{ - ACE_TRACE ("ACE_Tokens::dec_reference"); - if (this->reference_count_ == 0) - { - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("dec_reference already zero"))); - return 0; - } - - return --this->reference_count_; -} - -ACE_INLINE void -ACE_Tokens::inc_reference (void) -{ - ACE_TRACE ("ACE_Tokens::inc_reference"); - ++this->reference_count_; -} - -ACE_INLINE const ACE_TPQ_Entry * -ACE_Token_Proxy_Queue::head (void) -{ - ACE_TRACE ("ACE_Token_Proxy_Queue::head"); - if (this->head_ == 0) - return 0; - else - return this->head_; -} - -// ************************************************** -// ************************************************** -// ************************************************** - -ACE_INLINE void -ACE_Tokens::visit (int v) -{ - ACE_TRACE ("ACE_Tokens::visit"); - visited_ = v; -} - -ACE_INLINE int -ACE_Tokens::visited (void) -{ - ACE_TRACE ("ACE_Tokens::visited"); - return visited_; -} - -ACE_INLINE ACE_TPQ_Entry * -ACE_Tokens::owner (void) -{ - ACE_TRACE ("ACE_Tokens::owner"); - return (ACE_TPQ_Entry *) this->waiters_.head (); -} - -ACE_INLINE const ACE_TCHAR* -ACE_Tokens::owner_id () -{ - ACE_TRACE ("ACE_Tokens::owner_id"); - if (this->owner () == 0) - return ACE_TEXT ("no owner"); - else - return this->owner ()->client_id (); -} - -ACE_INLINE const ACE_TCHAR* -ACE_Tokens::name (void) -{ - ACE_TRACE ("ACE_Tokens::name"); - 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 -ACE_TPQ_Entry::nesting_level (void) const -{ - ACE_TRACE ("ACE_TPQ_Entry::nesting_level"); - return this->nesting_level_; -} - -ACE_INLINE void -ACE_TPQ_Entry::nesting_level (int delta) -{ - ACE_TRACE ("ACE_TPQ_Entry::nesting_level"); - this->nesting_level_ += delta; -} - -ACE_INLINE ACE_TPQ_Entry::PTVF -ACE_TPQ_Entry::sleep_hook (void) const -{ - ACE_TRACE ("ACE_TPQ_Entry::sleep_hook"); - return this->sleep_hook_; -} - -ACE_INLINE void -ACE_TPQ_Entry::sleep_hook (void (*sh)(void *)) -{ - ACE_TRACE ("ACE_TPQ_Entry::sleep_hook"); - this->sleep_hook_ = sh; -} - -ACE_INLINE void -ACE_TPQ_Entry::call_sleep_hook (void) -{ - ACE_TRACE ("ACE_TPQ_Entry::call_sleep_hook"); - - // if a function has been registered, call it. - if (this->sleep_hook () != 0) - this->sleep_hook () ((void *) this->proxy ()); - else - // otherwise, call back the sleep_hook method - this->proxy ()->sleep_hook (); -} - -ACE_INLINE int -ACE_TPQ_Entry::equal_client_id (const ACE_TCHAR *id) -{ - ACE_TRACE ("ACE_TPQ_Entry::equal_client_id"); - return (ACE_OS::strcmp (this->client_id (), id) == 0); -} - -// ************************************************************ -// ************************************************************ -// ************************************************************ - -ACE_INLINE -ACE_Local_Mutex::ACE_Local_Mutex (const ACE_TCHAR *token_name, - int ignore_deadlock, - int debug) -{ - ACE_TRACE ("ACE_Local_Mutex::ACE_Local_Mutex"); - this->open (token_name, ignore_deadlock, debug); -} - -ACE_INLINE void -ACE_Token_Name::name (const ACE_TCHAR *new_name) -{ - ACE_TRACE ("ACE_Token_Name::name"); - - if (new_name == 0) - new_name = ACE_TEXT ("no name"); - - size_t n = ACE_OS::strlen (new_name) + 1; - - if (n >= ACE_MAXTOKENNAMELEN) - n = ACE_MAXTOKENNAMELEN - 1; - - ACE_OS::strsncpy (this->token_name_, (ACE_TCHAR *) new_name, n); -} - -ACE_INLINE const ACE_TCHAR* -ACE_Token_Name::name (void) const -{ - ACE_TRACE ("ACE_Token_Name::name"); - return this->token_name_; -} - -// ************************************************************ - -ACE_INLINE -ACE_Local_RLock::ACE_Local_RLock (const ACE_TCHAR *token_name, - int ignore_deadlock, - int debug) -{ - ACE_TRACE ("ACE_Local_RLock::ACE_Local_RLock"); - this->open (token_name, ignore_deadlock, debug); -} - -// ************************************************************ - -ACE_INLINE -ACE_Local_WLock::ACE_Local_WLock (const ACE_TCHAR *token_name, - int ignore_deadlock, - int debug) -{ - ACE_TRACE ("ACE_Local_WLock::ACE_Local_WLock"); - this->open (token_name, ignore_deadlock, debug); -} - -// ************************************************************ - - -ACE_INLINE void -ACE_Token_Name::operator= (const ACE_Token_Name &rhs) -{ - ACE_TRACE ("ACE_Token_Name::operator="); - if (&rhs == this) - return; - else - this->name (rhs.name ()); -} - -ACE_INLINE bool -ACE_Token_Name::operator== (const ACE_Token_Name &rhs) const -{ - ACE_TRACE ("ACE_Token_Name::operator=="); - - // the name and type must be the same - return (ACE_OS::strcmp (this->token_name_, rhs.name ()) == 0); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_TOKENS_LIBRARY */ diff --git a/ACE/ace/Lock.cpp b/ACE/ace/Lock.cpp deleted file mode 100644 index dca934b8067..00000000000 --- a/ACE/ace/Lock.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// $Id$ - -#include "ace/Lock.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Lock.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, Lock, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Lock::~ACE_Lock (void) -{ -} - -ACE_Adaptive_Lock::ACE_Adaptive_Lock (void) - : lock_ (0) -{ -} - -ACE_Adaptive_Lock::~ACE_Adaptive_Lock (void) -{ -} - -int -ACE_Adaptive_Lock::remove (void) -{ - return this->lock_->remove (); -} - -int -ACE_Adaptive_Lock::acquire (void) -{ - return this->lock_->acquire (); -} - -int -ACE_Adaptive_Lock::tryacquire (void) -{ - return this->lock_->tryacquire (); -} - -int -ACE_Adaptive_Lock::release (void) -{ - return this->lock_->release (); -} - -int -ACE_Adaptive_Lock::acquire_read (void) -{ - return this->lock_->acquire_read (); -} - -int -ACE_Adaptive_Lock::acquire_write (void) -{ - return this->lock_->acquire_write (); -} - -int -ACE_Adaptive_Lock::tryacquire_read (void) -{ - return this->lock_->tryacquire_read (); -} - -int -ACE_Adaptive_Lock::tryacquire_write (void) -{ - return this->lock_->tryacquire_write (); -} - -int -ACE_Adaptive_Lock::tryacquire_write_upgrade (void) -{ - return this->lock_->tryacquire_write_upgrade (); -} - -void -ACE_Adaptive_Lock::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - // return this->lock_->dump (); -#endif /* ACE_HAS_DUMP */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Lock.h b/ACE/ace/Lock.h deleted file mode 100644 index 2b95c1962da..00000000000 --- a/ACE/ace/Lock.h +++ /dev/null @@ -1,161 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Lock.h - * - * $Id$ - * - * Moved from Synch.h. - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_LOCK_H -#define ACE_LOCK_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Lock - * - * @brief This is the abstract base class that contains the uniform - * locking API that is supported by all the ACE synchronization - * mechanisms. - * - * This class is typically used in conjunction with the - * ACE_Lock_Adapter in order to provide a polymorphic - * interface to the ACE synchronization mechanisms (e.g., - * ACE_Mutex, ACE_Semaphore, ACE_RW_Mutex, etc). Note that - * the reason that all of ACE doesn't use polymorphic locks is - * that (1) they add ~20% extra overhead for virtual function - * calls and (2) objects with virtual functions can't be placed - * into shared memory. - */ -class ACE_Export ACE_Lock -{ -public: - /// CE needs a default ctor here. - ACE_Lock (void); - - /// Noop virtual destructor - virtual ~ACE_Lock (void); - - /** - * Explicitly destroy the lock. Note that only one thread should - * call this method since it doesn't protect against race - * conditions. - */ - virtual int remove (void) = 0; - - /// Block the thread until the lock is acquired. Returns -1 on - /// failure. - virtual int acquire (void) = 0; - - /** - * Conditionally acquire the lock (i.e., won't block). Returns -1 - * on failure. If we "failed" because someone else already had the - * lock, @c errno is set to @c EBUSY. - */ - virtual int tryacquire (void) = 0; - - /// Release the lock. Returns -1 on failure. - virtual int release (void) = 0; - - /** - * Block until the thread acquires a read lock. If the locking - * mechanism doesn't support read locks then this just calls - * . 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 - * . 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 . - * Returns -1 on failure. If we "failed" because someone else - * already had the lock, @c errno is set to @c EBUSY. - */ - virtual int tryacquire_read (void) = 0; - - /** - * Conditionally acquire a write lock. If the locking mechanism - * doesn't support read locks then this just calls . - * Returns -1 on failure. If we "failed" because someone else - * already had the lock, @c errno is set to @c EBUSY. - */ - virtual int tryacquire_write (void) = 0; - - /** - * 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 . Returns 0 on success, -1 on failure. - */ - virtual int tryacquire_write_upgrade (void) = 0; -}; - -/** - * @class ACE_Adaptive_Lock - * - * @brief An adaptive general locking class that defers the decision of - * lock type to run time. - * - * This class, as ACE_Lock, provide a set of general locking APIs. - * 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 . - */ -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 . - virtual ~ACE_Adaptive_Lock (void); - - // = Lock/unlock operations. - - virtual int remove (void); - virtual int acquire (void); - virtual int tryacquire (void); - virtual int release (void); - virtual int acquire_read (void); - virtual int acquire_write (void); - virtual int tryacquire_read (void); - virtual int tryacquire_write (void); - virtual int tryacquire_write_upgrade (void); - void dump (void) const; - -protected: - /** - * Create and initialize create the actual lcok used in the class. - * The default constructor simply set the to 0 (null). You - * must overwrite this method for this class to work. - */ - ACE_Adaptive_Lock (void); - - ACE_Lock *lock_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Lock.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_LOCK_H */ diff --git a/ACE/ace/Lock.inl b/ACE/ace/Lock.inl deleted file mode 100644 index 7e4842a0e33..00000000000 --- a/ACE/ace/Lock.inl +++ /dev/null @@ -1,12 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -ACE_Lock::ACE_Lock (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Lock_Adapter_T.cpp b/ACE/ace/Lock_Adapter_T.cpp deleted file mode 100644 index f26a79fdd4c..00000000000 --- a/ACE/ace/Lock_Adapter_T.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// $Id$ - -#ifndef ACE_LOCK_ADAPTER_T_CPP -#define ACE_LOCK_ADAPTER_T_CPP - -#include "ace/Lock_Adapter_T.h" -#include "ace/OS_Memory.h" // for ACE_NEW - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if !defined (__ACE_INLINE__) -#include "ace/Lock_Adapter_T.inl" -#endif /* __ACE_INLINE__ */ - -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 -ACE_Lock_Adapter::ACE_Lock_Adapter (void) - : lock_ (0), - delete_lock_ (true) -{ - ACE_NEW (this->lock_, - ACE_LOCKING_MECHANISM); -} - -template -ACE_Lock_Adapter::~ACE_Lock_Adapter (void) -{ - if (this->delete_lock_) - delete this->lock_; -} - -// Explicitly destroy the lock. -template int -ACE_Lock_Adapter::remove (void) -{ - return this->lock_->remove (); -} - -// Block the thread until the lock is acquired. -template int -ACE_Lock_Adapter::acquire (void) -{ - return this->lock_->acquire (); -} - -// Conditionally acquire the lock (i.e., won't block). - -template int -ACE_Lock_Adapter::tryacquire (void) -{ - return this->lock_->tryacquire (); -} - -// Release the lock. - -template int -ACE_Lock_Adapter::release (void) -{ - return this->lock_->release (); -} - -// Block until the thread acquires a read lock. If the locking -// mechanism doesn't support read locks then this just calls -// . - -template int -ACE_Lock_Adapter::acquire_read (void) -{ - return this->lock_->acquire_read (); -} - -// Block until the thread acquires a write lock. If the locking -// mechanism doesn't support read locks then this just calls -// . - -template int -ACE_Lock_Adapter::acquire_write (void) -{ - return this->lock_->acquire_write (); -} - -// Conditionally acquire a read lock. If the locking mechanism -// doesn't support read locks then this just calls . - -template int -ACE_Lock_Adapter::tryacquire_read (void) -{ - return this->lock_->tryacquire_read (); -} - -// Conditionally acquire a write lock. If the locking mechanism -// doesn't support write locks then this just calls . - -template int -ACE_Lock_Adapter::tryacquire_write (void) -{ - return this->lock_->tryacquire_write (); -} - -// 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 . Returns 0 on success, -1 on failure. - -template int -ACE_Lock_Adapter::tryacquire_write_upgrade (void) -{ - return this->lock_->tryacquire_write_upgrade (); -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_LOCK_ADAPTER_T_CPP */ diff --git a/ACE/ace/Lock_Adapter_T.h b/ACE/ace/Lock_Adapter_T.h deleted file mode 100644 index 117684a1a2a..00000000000 --- a/ACE/ace/Lock_Adapter_T.h +++ /dev/null @@ -1,123 +0,0 @@ -// -*- C++ -*- - -//========================================================================== -/** - * @file Lock_Adapter_T.h - * - * $Id$ - * - * Moved from Synch.h. - * - * @author Douglas C. Schmidt - */ -//========================================================================== - -#ifndef ACE_LOCK_ADAPTER_T_H -#define ACE_LOCK_ADAPTER_T_H -#include /**/ "ace/pre.h" - -#include "ace/Lock.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Lock_Adapter - * - * @brief This is an adapter that allows applications to transparently - * combine the 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.). - * - * This class uses a form of the Adapter pattern. - */ -template -class ACE_Lock_Adapter : public ACE_Lock -{ -public: - typedef ACE_LOCKING_MECHANISM ACE_LOCK; - - // = Initialization/Finalization methods. - - /// Constructor. All locking requests will be forwarded to . - ACE_Lock_Adapter (ACE_LOCKING_MECHANISM &lock); - - /// Constructor. Since no lock is provided by the user, one will be - /// created internally. - ACE_Lock_Adapter (void); - - /// Destructor. If was not passed in by the user, it will be - /// deleted. - virtual ~ACE_Lock_Adapter (void); - - // = Lock accessors. - /// Block the thread until the lock is acquired. - virtual int acquire (void); - - /// Conditionally acquire the lock (i.e., won't block). - virtual int tryacquire (void); - - /// Release the lock. - virtual int release (void); - - /** - * Block until the thread acquires a read lock. If the locking - * mechanism doesn't support read locks then this just calls - * . - */ - 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 - * . - */ - virtual int acquire_write (void); - - /// Conditionally acquire a read lock. If the locking mechanism - /// doesn't support read locks then this just calls . - virtual int tryacquire_read (void); - - /// Conditionally acquire a write lock. If the locking mechanism - /// doesn't support read locks then this just calls . - 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 . Returns 0 on success, -1 on failure. - */ - virtual int tryacquire_write_upgrade (void); - - /// Explicitly destroy the lock. - virtual int remove (void); - -private: - /// The concrete locking mechanism that all the methods delegate to. - ACE_LOCKING_MECHANISM *lock_; - - /// This flag keep track of whether we are responsible for deleting - /// the lock - bool delete_lock_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "ace/Lock_Adapter_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Lock_Adapter_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Lock_Adapter_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" -#endif /* ACE_LOCK_ADAPTER_T_H */ diff --git a/ACE/ace/Lock_Adapter_T.inl b/ACE/ace/Lock_Adapter_T.inl deleted file mode 100644 index bc7899bffb3..00000000000 --- a/ACE/ace/Lock_Adapter_T.inl +++ /dev/null @@ -1,16 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template -ACE_INLINE -ACE_Lock_Adapter::ACE_Lock_Adapter ( - ACE_LOCKING_MECHANISM &lock) - : lock_ (&lock), - delete_lock_ (false) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Log_Msg.cpp b/ACE/ace/Log_Msg.cpp deleted file mode 100644 index 0f2bf798c25..00000000000 --- a/ACE/ace/Log_Msg.cpp +++ /dev/null @@ -1,2510 +0,0 @@ -// $Id$ - -// We need this to get the status of ACE_NTRACE... -#include "ace/config-all.h" - -// Turn off tracing for the duration of this file. -#if defined (ACE_NTRACE) -# undef ACE_NTRACE -#endif /* ACE_NTRACE */ -#define ACE_NTRACE 1 - -#include "ace/ACE.h" -#include "ace/Thread_Manager.h" -#include "ace/Guard_T.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_errno.h" -#include "ace/OS_NS_sys_time.h" -#include "ace/OS_NS_wchar.h" -#include "ace/OS_NS_signal.h" - -#if !defined (ACE_MT_SAFE) || (ACE_MT_SAFE != 0) -# include "ace/Object_Manager_Base.h" -#endif /* ! ACE_MT_SAFE */ - -#if !defined (ACE_LACKS_IOSTREAM_TOTALLY) -// FUZZ: disable check_for_streams_include -# include "ace/streams.h" -#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */ - -#if defined (ACE_HAS_TRACE) -# include "ace/Trace.h" -#endif /* ACE_HAS_TRACE */ - -#include "ace/Log_Msg.h" -#include "ace/Log_Msg_Callback.h" -#include "ace/Log_Msg_IPC.h" -#include "ace/Log_Msg_NT_Event_Log.h" -#include "ace/Log_Msg_UNIX_Syslog.h" -#include "ace/Log_Record.h" -#include "ace/Recursive_Thread_Mutex.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) - int 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) */ - -ACE_thread_key_t *log_msg_tss_key (void) -{ - return &the_log_msg_tss_key; -} - -# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */ -#else -static ACE_Cleanup_Adapter* log_msg_cleanup = 0; -class ACE_Msg_Log_Cleanup: public ACE_Cleanup_Adapter -{ -public: - virtual ~ACE_Msg_Log_Cleanup (void) { - if (this == log_msg_cleanup) - log_msg_cleanup = 0; - } -}; -#endif /* ACE_MT_SAFE */ - -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP) -# define ACE_LOG_MSG_SYSLOG_BACKEND ACE_Log_Msg_NT_Event_Log -#elif !defined (ACE_LACKS_UNIX_SYSLOG) && !defined (ACE_HAS_WINCE) -# define ACE_LOG_MSG_SYSLOG_BACKEND ACE_Log_Msg_UNIX_Syslog -#else -# define ACE_LOG_MSG_SYSLOG_BACKEND ACE_Log_Msg_IPC -#endif /* ! ACE_WIN32 */ - -// When doing ACE_OS::s[n]printf() calls in log(), we need to update -// the space remaining in the output buffer based on what's returned from -// the output function. If we could rely on more modern compilers, this -// would be in an unnamed namespace, but it's a macro instead. -// count is a size_t, len is an int and assumed to be non-negative. -#define ACE_UPDATE_COUNT(COUNT, LEN) \ - do { if (static_cast (LEN) > COUNT) COUNT = 0; \ - else COUNT -= static_cast (LEN); \ - } while (0) - -/// Instance count for Log_Msg - used to know when dynamically -/// allocated storage (program name and host name) can be safely -/// deleted. -int ACE_Log_Msg::instance_count_ = 0; - -/** - * @class ACE_Log_Msg_Manager - * - * @brief Synchronize output operations. - * - * Provides global point of contact for all ACE_Log_Msg instances - * in a process. - * - * For internal use by ACE, only! - */ -class ACE_Log_Msg_Manager -{ -public: - static ACE_Log_Msg_Backend *log_backend_; - static ACE_Log_Msg_Backend *custom_backend_; - - static u_long log_backend_flags_; - - static int init_backend (const u_long *flags = 0); - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - //FUZZ: disable check_for_lack_ACE_OS - static void close (void); - //FUZZ: enable check_for_lack_ACE_OS - - static ACE_Recursive_Thread_Mutex *get_lock (void); - -private: - static ACE_Recursive_Thread_Mutex *lock_; -#endif /* ! ACE_MT_SAFE */ -}; - -ACE_Log_Msg_Backend *ACE_Log_Msg_Manager::log_backend_ = 0; -ACE_Log_Msg_Backend *ACE_Log_Msg_Manager::custom_backend_ = 0; - -u_long ACE_Log_Msg_Manager::log_backend_flags_ = 0; - -int ACE_Log_Msg_Manager::init_backend (const u_long *flags) -{ - // If flags have been supplied, and they are different from the flags - // we had last time, then we may have to re-create the backend as a - // different type. - if (flags) - { - // Sanity check for custom backend. - if (ACE_BIT_ENABLED (*flags, ACE_Log_Msg::CUSTOM) && - ACE_Log_Msg_Manager::custom_backend_ == 0) - { - return -1; - } - - if ((ACE_BIT_ENABLED (*flags, ACE_Log_Msg::SYSLOG) - && ACE_BIT_DISABLED (ACE_Log_Msg_Manager::log_backend_flags_, ACE_Log_Msg::SYSLOG)) - || (ACE_BIT_DISABLED (*flags, ACE_Log_Msg::SYSLOG) - && ACE_BIT_ENABLED (ACE_Log_Msg_Manager::log_backend_flags_, ACE_Log_Msg::SYSLOG))) - { - delete ACE_Log_Msg_Manager::log_backend_; - ACE_Log_Msg_Manager::log_backend_ = 0; - } - - ACE_Log_Msg_Manager::log_backend_flags_ = *flags; - } - - if (ACE_Log_Msg_Manager::log_backend_ == 0) - { - ACE_NO_HEAP_CHECK; - -#if (defined (WIN32) || !defined (ACE_LACKS_UNIX_SYSLOG)) && !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP) - // Allocate the ACE_Log_Msg_Backend instance. - if (ACE_BIT_ENABLED (ACE_Log_Msg_Manager::log_backend_flags_, ACE_Log_Msg::SYSLOG)) - ACE_NEW_RETURN (ACE_Log_Msg_Manager::log_backend_, - ACE_LOG_MSG_SYSLOG_BACKEND, - -1); - else -#endif /* defined (WIN32) && !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP) */ - ACE_NEW_RETURN (ACE_Log_Msg_Manager::log_backend_, - ACE_Log_Msg_IPC, - -1); - } - - return 0; -} - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -ACE_Recursive_Thread_Mutex *ACE_Log_Msg_Manager::lock_ = 0; - -ACE_Recursive_Thread_Mutex * -ACE_Log_Msg_Manager::get_lock (void) -{ - // This function is called by the first thread to create an ACE_Log_Msg - // instance. It makes the call while holding a mutex, so we don't have - // to grab another one here. - - if (ACE_Log_Msg_Manager::lock_ == 0) - { - ACE_NO_HEAP_CHECK; - - ACE_NEW_RETURN (ACE_Log_Msg_Manager::lock_, - ACE_Recursive_Thread_Mutex, - 0); - } - - if (init_backend () == -1) - return 0; - - return ACE_Log_Msg_Manager::lock_; -} - -void -ACE_Log_Msg_Manager::close (void) -{ -#if defined (ACE_HAS_STHREADS) && ! defined (ACE_HAS_TSS_EMULATION) && ! defined (ACE_HAS_EXCEPTIONS) - // Delete the (main thread's) Log_Msg instance. I think that this - // is only "necessary" if exception handling is not enabled. - // Without exception handling, main thread TSS destructors don't - // seem to be called. It's not really necessary anyways, because - // this one leak is harmless on Solaris. - delete ACE_Log_Msg::instance (); -#endif /* ACE_HAS_STHREADS && ! TSS_EMULATION && ! ACE_HAS_EXCEPTIONS */ - - // Ugly, ugly, but don't know a better way. - delete ACE_Log_Msg_Manager::lock_; - ACE_Log_Msg_Manager::lock_ = 0; - - delete ACE_Log_Msg_Manager::log_backend_; - ACE_Log_Msg_Manager::log_backend_ = 0; - - // we are never responsible for custom backend - ACE_Log_Msg_Manager::custom_backend_ = 0; -} - -# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \ - defined (ACE_HAS_TSS_EMULATION) -/* static */ -# if defined (ACE_HAS_THR_C_DEST) -# define LOCAL_EXTERN_PREFIX extern "C" -# else -# define LOCAL_EXTERN_PREFIX -# endif /* ACE_HAS_THR_C_DEST */ -LOCAL_EXTERN_PREFIX -void -ACE_TSS_CLEANUP_NAME (void *ptr) -{ - // Delegate to thr_desc if this not has terminated - ACE_Log_Msg* log_msg = (ACE_Log_Msg*) ptr; - if (log_msg->thr_desc()!=0) - log_msg->thr_desc()->log_msg_cleanup(log_msg); - else - delete (ACE_Log_Msg *) ptr; -} -# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */ -#endif /* ! ACE_MT_SAFE */ - -/* static */ -int -ACE_Log_Msg::exists (void) -{ -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \ - defined (ACE_HAS_TSS_EMULATION) - void *tss_log_msg = 0; // The actual type is ACE_Log_Msg*, but we need this - // void to keep G++ from complaining. - - // Get the tss_log_msg from thread-specific storage. - return key_created_ - && ACE_Thread::getspecific (*(log_msg_tss_key ()), &tss_log_msg) != -1 - && tss_log_msg != 0; -# else -# error "Platform must support thread-specific storage if threads are used." -# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */ -#else /* ! ACE_MT_SAFE */ - return 1; -#endif /* ! ACE_MT_SAFE */ -} - -ACE_Log_Msg * -ACE_Log_Msg::instance (void) -{ -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \ - defined (ACE_HAS_TSS_EMULATION) - // TSS Singleton implementation. - - if (key_created_ == 0) - { - ACE_thread_mutex_t *lock = - reinterpret_cast ( - ACE_OS_Object_Manager::preallocated_object - [ACE_OS_Object_Manager::ACE_LOG_MSG_INSTANCE_LOCK]); - - if (1 == ACE_OS_Object_Manager::starting_up()) - //This function is called before ACE_OS_Object_Manager is - //initialized. So the lock might not be valid. Assume it's - //single threaded and so don't need the lock. - ; - else - ACE_OS::thread_mutex_lock (lock); - - if (key_created_ == 0) - { - // Allocate the Singleton lock. - ACE_Log_Msg_Manager::get_lock (); - - { - ACE_NO_HEAP_CHECK; - if (ACE_Thread::keycreate (log_msg_tss_key (), - &ACE_TSS_CLEANUP_NAME) != 0) - { - if (1 == ACE_OS_Object_Manager::starting_up()) - //This function is called before ACE_OS_Object_Manager is - //initialized. So the lock might not be valid. Assume it's - //single threaded and so don't need the lock. - ; - else - ACE_OS::thread_mutex_unlock (lock); - return 0; // Major problems, this should *never* happen! - } - } - - key_created_ = 1; - } - - if (1 == ACE_OS_Object_Manager::starting_up()) - //This function is called before ACE_OS_Object_Manager is - //initialized. So the lock might not be valid. Assume it's - //single threaded and so don't need the lock. - ; - else - ACE_OS::thread_mutex_unlock (lock); - } - - ACE_Log_Msg *tss_log_msg = 0; - void *temp = 0; - - // Get the tss_log_msg from thread-specific storage. - if (ACE_Thread::getspecific (*(log_msg_tss_key ()), &temp) == -1) - return 0; // This should not happen! - - tss_log_msg = static_cast (temp); - - // Check to see if this is the first time in for this thread. - if (tss_log_msg == 0) - { - // Allocate memory off the heap and store it in a pointer in - // thread-specific storage (on the stack...). Stop heap - // checking, the memory will always be freed by the thread - // rundown because of the TSS callback set up when the key was - // created. This prevents from getting these blocks reported as - // memory leaks. - { - ACE_NO_HEAP_CHECK; - - ACE_NEW_RETURN (tss_log_msg, - ACE_Log_Msg, - 0); - // Store the dynamically allocated pointer in thread-specific - // storage. It gets deleted via the ACE_TSS_cleanup function - // when the thread terminates. - - if (ACE_Thread::setspecific (*(log_msg_tss_key()), - reinterpret_cast (tss_log_msg)) - != 0) - return 0; // Major problems, this should *never* happen! - } - } - - return tss_log_msg; -# else -# error "Platform must support thread-specific storage if threads are used." -# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION */ -#else /* ! ACE_MT_SAFE */ - // We don't have threads, we cannot call - // ACE_Log_Msg_Manager::get_lock () to initialize the logger - // callback, so instead we do it here. - if (ACE_Log_Msg_Manager::init_backend () == -1) - return 0; - - // Singleton implementation. - - if (log_msg_cleanup == 0) - { - ACE_NEW_RETURN (log_msg_cleanup, ACE_Msg_Log_Cleanup, 0); - // Register the instance for destruction at program termination. - ACE_Object_Manager::at_exit (log_msg_cleanup); - } - - return &log_msg_cleanup->object (); -#endif /* ! ACE_MT_SAFE */ -} - -// Not inlined to help prevent having to include OS.h just to -// get ACE_DEBUG, et al, macros. -int -ACE_Log_Msg::last_error_adapter (void) -{ - return ACE_OS::last_error (); -} - -// Sets the flag in the default priority mask used to initialize -// ACE_Log_Msg instances, as well as the current per-thread instance. - -void -ACE_Log_Msg::enable_debug_messages (ACE_Log_Priority priority) -{ - ACE_SET_BITS (ACE_Log_Msg::default_priority_mask_, priority); - ACE_Log_Msg *i = ACE_Log_Msg::instance (); - i->priority_mask (i->priority_mask () | priority); -} - -// Clears the flag in the default priority mask used to initialize -// ACE_Log_Msg instances, as well as the current per-thread instance. - -void -ACE_Log_Msg::disable_debug_messages (ACE_Log_Priority priority) -{ - ACE_CLR_BITS (ACE_Log_Msg::default_priority_mask_, priority); - ACE_Log_Msg *i = ACE_Log_Msg::instance (); - i->priority_mask (i->priority_mask () & ~priority); -} - -const ACE_TCHAR * -ACE_Log_Msg::program_name (void) -{ - return ACE_Log_Msg::program_name_; -} - -/// Name of the local host. -const ACE_TCHAR *ACE_Log_Msg::local_host_ = 0; - -/// Records the program name. -const ACE_TCHAR *ACE_Log_Msg::program_name_ = 0; - -/// Default is to use stderr. -u_long ACE_Log_Msg::flags_ = ACE_Log_Msg::STDERR; - -/// Process id of the current process. -pid_t ACE_Log_Msg::pid_ = -2; - -/// Current offset of msg_[]. -ptrdiff_t ACE_Log_Msg::msg_off_ = 0; - -/// Default per-thread priority mask -/// By default, no priorities are enabled. -u_long ACE_Log_Msg::default_priority_mask_ = 0; - -/// Default per-process priority mask -/// By default, all priorities are enabled. -u_long ACE_Log_Msg::process_priority_mask_ = LM_SHUTDOWN - | LM_TRACE - | LM_DEBUG - | LM_INFO - | LM_NOTICE - | LM_WARNING - | LM_STARTUP - | LM_ERROR - | LM_CRITICAL - | LM_ALERT - | LM_EMERGENCY; - -void -ACE_Log_Msg::close (void) -{ - // This call needs to go here to avoid memory leaks. - ACE_MT (ACE_Log_Msg_Manager::close ()); - - // Please note that this will be called by a statement that is - // harded coded into the ACE_Object_Manager's shutdown sequence, in - // its destructor. - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) && \ - (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \ - defined (ACE_HAS_TSS_EMULATION)) - - if (key_created_ == 1) - { - ACE_thread_mutex_t *lock = - reinterpret_cast ( - ACE_OS_Object_Manager::preallocated_object - [ACE_OS_Object_Manager::ACE_LOG_MSG_INSTANCE_LOCK]); - ACE_OS::thread_mutex_lock (lock); - - if (key_created_ == 1) - { - // The same as the ACE_TSS_Cleanup's own key doesn't get - // detached, the log_msg_tss_key_ won't get detached - // until ACE_TSS_Cleanup::free_all_keys_left, so it will - // be in the ACE_TSS_Cleanup::table_. However, there's - // no resource associated with it, so we don't need to - // keyfree it. The dynamic memory associated with it was - // already deleted by ACE_TSS_Cleanup::exit (), so we - // don't want to access it again. - key_created_ = 0; -#ifdef ACE_HAS_BROKEN_THREAD_KEYFREE - // for some systems, e.g. LynxOS, we need to ensure that - // any registered thread destructor action for this thread - // is disabled. Otherwise in the event of a dynamic library - // unload of libACE, by a program not linked with libACE, - // ACE_TSS_cleanup will be invoked after libACE has been unloaded. - ACE_Log_Msg *tss_log_msg = 0; - void *temp = 0; - - // Get the tss_log_msg from thread-specific storage. - if (ACE_Thread::getspecific (*(log_msg_tss_key ()), &temp) != -1 - && temp) - { - tss_log_msg = static_cast (temp); - // we haven't been cleaned up - ACE_TSS_CLEANUP_NAME(tss_log_msg); - if (ACE_Thread::setspecific(*(log_msg_tss_key()), - reinterpret_cast (0)) != 0) - { - ACE_OS::printf ("ACE_Log_Msg::close failed to ACE_Thread::setspecific to 0\n"); - } - } -#endif /* ACE_HAS_BROKEN_THREAD_KEYFREE */ - } - - ACE_OS::thread_mutex_unlock (lock); - } -#endif /* (ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATION) && ACE_MT_SAFE */ -} - -void -ACE_Log_Msg::sync_hook (const ACE_TCHAR *prg_name) -{ - ACE_LOG_MSG->sync (prg_name); -} - -ACE_OS_Thread_Descriptor * -ACE_Log_Msg::thr_desc_hook (void) -{ - return ACE_LOG_MSG->thr_desc (); -} - -// Call after a fork to resynchronize the PID and PROGRAM_NAME -// variables. -void -ACE_Log_Msg::sync (const ACE_TCHAR *prog_name) -{ - ACE_TRACE ("ACE_Log_Msg::sync"); - - if (prog_name) - { - // Must free if already allocated!!! - ACE_OS::free ((void *) ACE_Log_Msg::program_name_); - - // Stop heap checking, block will be freed by the destructor when - // the last ACE_Log_Msg instance is deleted. - // Heap checking state will be restored when the block is left. - { - ACE_NO_HEAP_CHECK; - - ACE_Log_Msg::program_name_ = ACE_OS::strdup (prog_name); - } - } - - ACE_Log_Msg::pid_ = ACE_OS::getpid (); - ACE_Log_Msg::msg_off_ = 0; -} - -u_long -ACE_Log_Msg::flags (void) -{ - ACE_TRACE ("ACE_Log_Msg::flags"); - u_long result; - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Log_Msg_Manager::get_lock (), 0)); - - result = ACE_Log_Msg::flags_; - return result; -} - -void -ACE_Log_Msg::set_flags (u_long flgs) -{ - ACE_TRACE ("ACE_Log_Msg::set_flags"); - ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Log_Msg_Manager::get_lock ())); - - ACE_SET_BITS (ACE_Log_Msg::flags_, flgs); -} - -void -ACE_Log_Msg::clr_flags (u_long flgs) -{ - ACE_TRACE ("ACE_Log_Msg::clr_flags"); - ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Log_Msg_Manager::get_lock ())); - - ACE_CLR_BITS (ACE_Log_Msg::flags_, flgs); -} - -int -ACE_Log_Msg::acquire (void) -{ - ACE_TRACE ("ACE_Log_Msg::acquire"); -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - return ACE_Log_Msg_Manager::get_lock ()->acquire (); -#else /* ! ACE_MT_SAFE */ - return 0; -#endif /* ! ACE_MT_SAFE */ -} - -u_long -ACE_Log_Msg::priority_mask (u_long n_mask, MASK_TYPE mask_type) -{ - u_long o_mask; - - if (mask_type == THREAD) - { - o_mask = this->priority_mask_; - this->priority_mask_ = n_mask; - } - else - { - o_mask = ACE_Log_Msg::process_priority_mask_; - ACE_Log_Msg::process_priority_mask_ = n_mask; - } - - return o_mask; -} - -int -ACE_Log_Msg::release (void) -{ - ACE_TRACE ("ACE_Log_Msg::release"); - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - return ACE_Log_Msg_Manager::get_lock ()->release (); -#else /* ! ACE_MT_SAFE */ - return 0; -#endif /* ! ACE_MT_SAFE */ -} - -ACE_Log_Msg::ACE_Log_Msg (void) - : status_ (0), - errnum_ (0), - linenum_ (0), - msg_ (0), - restart_ (1), // Restart by default... - ostream_ (0), - msg_callback_ (0), - trace_depth_ (0), - trace_active_ (false), - tracing_enabled_ (true), // On by default? - delete_ostream_(false), - thr_desc_ (0), - priority_mask_ (default_priority_mask_), - timestamp_ (0) -{ - // ACE_TRACE ("ACE_Log_Msg::ACE_Log_Msg"); - - ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Log_Msg_Manager::get_lock ())); - ++instance_count_; - - if (this->instance_count_ == 1) - ACE_Base_Thread_Adapter::set_log_msg_hooks (ACE_Log_Msg::init_hook, - ACE_Log_Msg::inherit_hook, - ACE_Log_Msg::close, - ACE_Log_Msg::sync_hook, - ACE_Log_Msg::thr_desc_hook); - - this->conditional_values_.is_set_ = false; - - char *timestamp = ACE_OS::getenv ("ACE_LOG_TIMESTAMP"); - if (timestamp != 0) - { - // If variable is set or is set to date tag so we print date and time. - if (ACE_OS::strcmp (timestamp, "TIME") == 0) - { - this->timestamp_ = 1; - } - else if (ACE_OS::strcmp (timestamp, "DATE") == 0) - { - this->timestamp_ = 2; - } - } - - ACE_NEW_NORETURN (this->msg_, ACE_TCHAR[ACE_MAXLOGMSGLEN+1]); -} - -ACE_Log_Msg::~ACE_Log_Msg (void) -{ -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - - int instance_count = 0; - - // Only hold the guard while updating the instance_count_. - // If ACE_Log_Msg_Manager::close () is called, the lock will - // be deleted. - { - ACE_MT (ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Log_Msg_Manager::get_lock ())); - instance_count = --instance_count_; - } - // Release the guard. - -#else /* ! ACE_MT_SAFE */ - int instance_count = --instance_count_; -#endif /* ! ACE_MT_SAFE */ - - // If this is the last instance then cleanup. Only the last - // thread to destroy its ACE_Log_Msg instance should execute - // this block. - if (instance_count == 0) - { - // Destroy the message queue instance. - if (ACE_Log_Msg_Manager::log_backend_ != 0) - ACE_Log_Msg_Manager::log_backend_->close (); - - // Close down custom backend - if (ACE_Log_Msg_Manager::custom_backend_ != 0) - ACE_Log_Msg_Manager::custom_backend_->close (); - -# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -# if defined (ACE_HAS_TSS_EMULATION) - ACE_Log_Msg_Manager::close (); -# endif /* ACE_HAS_TSS_EMULATION */ -# endif /* ACE_MT_SAFE */ - - if (ACE_Log_Msg::program_name_) - { - ACE_OS::free ((void *) ACE_Log_Msg::program_name_); - ACE_Log_Msg::program_name_ = 0; - } - - if (ACE_Log_Msg::local_host_) - { - ACE_OS::free ((void *) ACE_Log_Msg::local_host_); - ACE_Log_Msg::local_host_ = 0; - } - } - - // - // do we need to close and clean up? - // - if (this->delete_ostream_) -#if defined (ACE_LACKS_IOSTREAM_TOTALLY) - { - ACE_OS::fclose (this->ostream_); - } -#else - { - delete ostream_; - ostream_ = 0; - } -#endif - - delete[] this->msg_; -} - -// Open the sender-side of the message queue. - -int -ACE_Log_Msg::open (const ACE_TCHAR *prog_name, - u_long flags, - const ACE_TCHAR *logger_key) -{ - ACE_TRACE ("ACE_Log_Msg::open"); - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Log_Msg_Manager::get_lock (), -1)); - - if (prog_name) - { - ACE_OS::free ((void *) ACE_Log_Msg::program_name_); - - // Stop heap checking, block will be freed by the destructor. - { - ACE_NO_HEAP_CHECK; - - ACE_ALLOCATOR_RETURN (ACE_Log_Msg::program_name_, - ACE_OS::strdup (prog_name), - -1); - } - } - else if (ACE_Log_Msg::program_name_ == 0) - { - // Stop heap checking, block will be freed by the destructor. - ACE_NO_HEAP_CHECK; - ACE_ALLOCATOR_RETURN (ACE_Log_Msg::program_name_, - ACE_OS::strdup (ACE_TEXT ("")), - -1); - } - - int status = 0; - - // Be sure that there is a message_queue_, with multiple threads. - ACE_MT (ACE_Log_Msg_Manager::init_backend (&flags)); - - // Always close the current handle before doing anything else. - if (ACE_Log_Msg_Manager::log_backend_ != 0) - ACE_Log_Msg_Manager::log_backend_->reset (); - - if (ACE_Log_Msg_Manager::custom_backend_ != 0) - ACE_Log_Msg_Manager::custom_backend_->reset (); - - // Note that if we fail to open the message queue the default action - // is to use stderr (set via static initialization in the - // Log_Msg.cpp file). - - if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::LOGGER) - || ACE_BIT_ENABLED (flags, ACE_Log_Msg::SYSLOG)) - { - // The SYSLOG backends (both NT and UNIX) can get along fine - // without the logger_key - they will default to prog_name if - // logger key is 0. - if (logger_key == 0 && ACE_BIT_ENABLED (flags, ACE_Log_Msg::LOGGER)) - status = -1; - else - status = ACE_Log_Msg_Manager::log_backend_->open (logger_key); - - if (status == -1) - ACE_SET_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::STDERR); - else - { - if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::LOGGER)) - ACE_SET_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::LOGGER); - if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::SYSLOG)) - ACE_SET_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::SYSLOG); - } - } - else if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::LOGGER) - || ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::SYSLOG)) - { - // If we are closing down logger, redirect logging to stderr. - ACE_CLR_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::LOGGER); - ACE_CLR_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::SYSLOG); - ACE_SET_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::STDERR); - } - - if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::CUSTOM)) - { - status = - ACE_Log_Msg_Manager::custom_backend_->open (logger_key); - - if (status != -1) - ACE_SET_BITS (ACE_Log_Msg::flags_, ACE_Log_Msg::CUSTOM); - } - - // Remember, ACE_Log_Msg::STDERR bit is on by default... - if (status != -1 - && ACE_BIT_ENABLED (flags, - ACE_Log_Msg::STDERR) == 0) - ACE_CLR_BITS (ACE_Log_Msg::flags_, - ACE_Log_Msg::STDERR); - - // VERBOSE takes precedence over VERBOSE_LITE... - if (ACE_BIT_ENABLED (flags, - ACE_Log_Msg::VERBOSE_LITE)) - ACE_SET_BITS (ACE_Log_Msg::flags_, - ACE_Log_Msg::VERBOSE_LITE); - else if (ACE_BIT_ENABLED (flags, - ACE_Log_Msg::VERBOSE)) - ACE_SET_BITS (ACE_Log_Msg::flags_, - ACE_Log_Msg::VERBOSE); - - if (ACE_BIT_ENABLED (flags, - ACE_Log_Msg::OSTREAM)) - { - ACE_SET_BITS (ACE_Log_Msg::flags_, - ACE_Log_Msg::OSTREAM); - // Only set this to cerr if it hasn't already been set. - if (this->msg_ostream () == 0) - this->msg_ostream (ACE_DEFAULT_LOG_STREAM); - } - - if (ACE_BIT_ENABLED (flags, - ACE_Log_Msg::MSG_CALLBACK)) - ACE_SET_BITS (ACE_Log_Msg::flags_, - ACE_Log_Msg::MSG_CALLBACK); - - if (ACE_BIT_ENABLED (flags, - ACE_Log_Msg::SILENT)) - ACE_SET_BITS (ACE_Log_Msg::flags_, - ACE_Log_Msg::SILENT); - - return status; -} - -/** - * Valid Options (prefixed by '%', as in printf format strings) include: - * 'A': print an ACE_timer_t value - * 'a': exit the program at this point (var-argument is the exit status!) - * 'b': print a ssize_t value - * 'B': print a size_t value - * 'c': print a character - * 'C': print a character string - * 'i', 'd': print a decimal number - * 'I', indent according to nesting depth - * 'e', 'E', 'f', 'F', 'g', 'G': print a double - * 'l', print line number where an error occurred. - * 'M': print the name of the priority of the message. - * 'm': Return the message corresponding to errno value, e.g., as done by - * 'N': print file name where the error occurred. - * 'n': print the name of the program (or "" if not set) - * 'o': print as an octal number - * 'P': format the current process id - * 'p': format the appropriate errno message from sys_errlist, e.g., as done by - * 'Q': print out the uint64 number - * 'q': print out the int64 number - * '@': 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': 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. - * 't': print thread id (1 if single-threaded) - * 'u': print as unsigned int - * 'x': print as a hex number - * 'X': print as a hex number - * 'w': print a wide character - * 'W': print out a wide character string. - * 'z': print an ACE_OS::WChar character - * 'Z': print an ACE_OS::WChar character string - * ':': print a time_t value as an integral number - * '%': format a single percent sign, '%' - */ -ssize_t -ACE_Log_Msg::log (ACE_Log_Priority log_priority, - const ACE_TCHAR *format_str, ...) -{ - ACE_TRACE ("ACE_Log_Msg::log"); - - // Start of variable args section. - va_list argp; - - va_start (argp, format_str); - - ssize_t const result = this->log (format_str, - log_priority, - argp); - va_end (argp); - - return result; -} - -#if defined (ACE_HAS_WCHAR) -/** - * Since this is the ANTI_TCHAR version, we need to convert - * the format string over. - */ -ssize_t -ACE_Log_Msg::log (ACE_Log_Priority log_priority, - const ACE_ANTI_TCHAR *format_str, ...) -{ - ACE_TRACE ("ACE_Log_Msg::log"); - - // Start of variable args section. - va_list argp; - - va_start (argp, format_str); - - ssize_t const result = this->log (ACE_TEXT_ANTI_TO_TCHAR (format_str), - log_priority, - argp); - va_end (argp); - - return result; -} -#endif /* ACE_HAS_WCHAR */ - -ssize_t -ACE_Log_Msg::log (const ACE_TCHAR *format_str, - ACE_Log_Priority log_priority, - va_list argp) -{ - ACE_TRACE ("ACE_Log_Msg::log"); - // External decls. - - typedef void (*PTF)(...); - - // Check if there were any conditional values set. - bool const conditional_values = this->conditional_values_.is_set_; - - // Reset conditional values. - this->conditional_values_.is_set_ = false; - - // Only print the message if hasn't been reset to - // exclude this logging priority. - if (this->log_priority_enabled (log_priority) == 0) - return 0; - - // If conditional values were set and the log priority is correct, - // then the values are actually set. - if (conditional_values) - this->set (this->conditional_values_.file_, - this->conditional_values_.line_, - this->conditional_values_.op_status_, - this->conditional_values_.errnum_, - this->restart (), - this->msg_ostream (), - this->msg_callback ()); - - // Logging is supposed to be a benign activity (i.e., not interfer - // with normal application operations), so don't inadvertently smash - // errno! - ACE_Errno_Guard guard (errno); - - ACE_Log_Record log_record (log_priority, - ACE_OS::gettimeofday (), - this->getpid ()); - - // 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 (this->msg ()); - size_t bspace = ACE_Log_Record::MAXLOGMSGLEN; // Leave room for Nul term. - if (this->msg_off_ <= ACE_Log_Record::MAXLOGMSGLEN) - bspace -= static_cast (this->msg_off_); - - // If this platform has snprintf() capability to prevent overrunning the - // output buffer, use it. To avoid adding a maintenance-hassle compile- - // time couple between here and OS.cpp, don't try to figure this out at - // compile time. Instead, do a quick check now; if we get a -1 return, - // the platform doesn't support the length-limiting capability. - ACE_TCHAR test[2]; - bool can_check = ACE_OS::snprintf (test, 1, ACE_TEXT ("x")) != -1; - - bool abort_prog = false; - int exit_value = 0; - - if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::VERBOSE)) - { - // Prepend the program name onto this message - - if (ACE_Log_Msg::program_name_ != 0) - { - for (const ACE_TCHAR *s = ACE_Log_Msg::program_name_; - bspace > 1 && (*bp = *s) != '\0'; - ++s, --bspace) - bp++; - - *bp++ = '|'; - --bspace; - } - } - - if (timestamp_ > 0) - { - ACE_TCHAR day_and_time[35]; - const ACE_TCHAR *s; - if (timestamp_ == 1) - { - // Print just the time - s = ACE::timestamp (day_and_time, sizeof day_and_time, 1); - } - else - { - // Print time and date - ACE::timestamp (day_and_time, sizeof day_and_time); - s = day_and_time; - } - - for (; bspace > 1 && (*bp = *s) != '\0'; ++s, --bspace) - ++bp; - - *bp++ = '|'; - --bspace; - } - - while (*format_str != '\0' && bspace > 0) - { - // Copy input to output until we encounter a %, however a - // % followed by another % is not a format specification. - - if (*format_str != '%') - { - *bp++ = *format_str++; - --bspace; - } - else if (format_str[1] == '%') // An "escaped" '%' (just print one '%'). - { - *bp++ = *format_str++; // Store first % - ++format_str; // but skip second % - --bspace; - } - else - { - // This is most likely a format specification that ends with - // one of the valid options described previously. To enable full - // use of all sprintf capabilities, save the format specifier - // from the '%' up to the format letter in a new char array. - // This allows the full sprintf capability for padding, field - // widths, alignment, etc. Any width/precision requiring a - // caller-supplied argument is extracted and placed as text - // into the format array. Lastly, we convert the caller-supplied - // format specifier from the ACE_Log_Msg-supported list to the - // equivalent sprintf specifier, and run the new format spec - // through sprintf, adding it to the bp string. - - 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 - int wp = 0; // Width/precision extracted from args - bool done = false; - bool skip_nul_locate = false; - int this_len = 0; // How many chars s[n]printf wrote - - fp = format; - *fp++ = *format_str++; // Copy in the % - - // Initialization to satisfy VC6 - int tmp_indent = 0; - // Work through the format string to copy in the format - // from the caller. While it's going across, extract ints - // for '*' width/precision values from the argument list. - // When the real format specifier is located, change it to - // one recognized by sprintf, if needed, and do the sprintf - // call. - - while (!done) - { - done = true; // Unless a conversion spec changes it - - switch (*format_str) - { - // The initial set of cases are the conversion - // specifiers. Copy them in to the format array. - // Note we don't use 'l', a normal conversion spec, - // as a conversion because it is a ACE_Log_Msg format - // specifier. - case '-': - case '+': - case '0': - case ' ': - case '#': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case '.': - case 'L': - case 'h': - *fp++ = *format_str; - done = false; - break; - - case '*': - wp = va_arg (argp, int); - ACE_OS::sprintf (fp, ACE_TEXT ("%d"), wp); - fp += ACE_OS::strlen (fp); - done = false; - break; - - case 'A': // ACE_timer_t - { - ACE_OS::strcpy (fp, ACE_TEXT ("f")); - double value = va_arg (argp, double); - if (can_check) - this_len = ACE_OS::snprintf (bp, bspace, format, value); - else - this_len = ACE_OS::sprintf (bp, format, value); - ACE_UPDATE_COUNT (bspace, this_len); - } - break; - - case 'a': // Abort program after handling all of format string. - abort_prog = true; - exit_value = va_arg (argp, int); - ACE_OS::strsncpy (bp, abort_str, bspace); - if (bspace > ACE_OS::strlen (abort_str)) - bspace -= ACE_OS::strlen (abort_str); - else - bspace = 0; - break; - - case 'l': // Source file line number - ACE_OS::strcpy (fp, ACE_TEXT ("d")); - if (can_check) - this_len = ACE_OS::snprintf (bp, - bspace, - format, - this->linenum ()); - else - this_len = ACE_OS::sprintf (bp, format, this->linenum ()); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'N': // Source file name -#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, - this->file () ? - ACE_TEXT_CHAR_TO_TCHAR (this->file ()) - : ACE_TEXT ("")); - else - this_len = ACE_OS::sprintf (bp, format, - this->file () ? - ACE_TEXT_CHAR_TO_TCHAR (this->file ()) - : ACE_TEXT ("")); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'n': // Program name -#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR) - ACE_OS::strcpy (fp, ACE_TEXT ("ls")); -#else /* ACE_WIN32 && ACE_USES_WCHAR */ - ACE_OS::strcpy (fp, ACE_TEXT ("s")); -#endif - if (can_check) - this_len = ACE_OS::snprintf (bp, bspace, format, - ACE_Log_Msg::program_name_ ? - ACE_Log_Msg::program_name_ : - ACE_TEXT ("")); - else - this_len = ACE_OS::sprintf (bp, format, - ACE_Log_Msg::program_name_ ? - ACE_Log_Msg::program_name_ : - ACE_TEXT ("")); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'P': // Process ID -#if defined (ACE_OPENVMS) - // Print the process id in hex on OpenVMS. - ACE_OS::strcpy (fp, ACE_TEXT ("x")); -#else - ACE_OS::strcpy (fp, ACE_TEXT ("d")); -#endif - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, - static_cast (this->getpid ())); - else - this_len = ACE_OS::sprintf - (bp, format, static_cast (this->getpid ())); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'p': // string, ala perror() - { - errno = 0; - char *msg = ACE_OS::strerror (ACE::map_errno (this->errnum ())); - // Windows can try to translate the errnum using - // system calls if strerror() doesn't get anything useful. -#if defined (ACE_WIN32) - if (errno == 0) - { -#endif - -#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR) - ACE_OS::strcpy (fp, ACE_TEXT ("ls: %ls")); -#else - ACE_OS::strcpy (fp, ACE_TEXT ("s: %s")); -#endif - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, va_arg (argp, ACE_TCHAR *), - ACE_TEXT_CHAR_TO_TCHAR (msg)); - else - this_len = ACE_OS::sprintf - (bp, format, va_arg (argp, ACE_TCHAR *), - ACE_TEXT_CHAR_TO_TCHAR (msg)); -#if defined (ACE_WIN32) - } - else - { - errno = ACE::map_errno (this->errnum ()); - ACE_TCHAR *lpMsgBuf = 0; - - // PharLap can't do FormatMessage, so try for socket - // error. -# if !defined (ACE_HAS_PHARLAP) - ACE_TEXT_FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER - | FORMAT_MESSAGE_MAX_WIDTH_MASK - | FORMAT_MESSAGE_FROM_SYSTEM, - 0, - errno, - MAKELANGID (LANG_NEUTRAL, - SUBLANG_DEFAULT), - // Default language - (ACE_TCHAR *) &lpMsgBuf, - 0, - 0); -# endif /* ACE_HAS_PHARLAP */ - - // If we don't get a valid response from - // , we'll assume this is a - // WinSock error and so we'll try to convert - // it into a string. If this doesn't work it - // returns "unknown error" which is fine for - // our purposes. - if (lpMsgBuf == 0) - { - const ACE_TCHAR *message = - ACE::sock_error (errno); - ACE_OS::strcpy (fp, ACE_TEXT ("s: %s")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, - va_arg (argp, const ACE_TCHAR *), - message); - else - this_len = ACE_OS::sprintf - (bp, format, - va_arg (argp, const ACE_TCHAR *), - message); - } - else - { - ACE_OS::strcpy (fp, ACE_TEXT ("s: %s")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, - va_arg (argp, ACE_TCHAR *), - lpMsgBuf); - else - this_len = ACE_OS::sprintf - (bp, format, - va_arg (argp, ACE_TCHAR *), - lpMsgBuf); - // Free the buffer. - ::LocalFree (lpMsgBuf); - } - } -#endif /* ACE_WIN32 */ - ACE_UPDATE_COUNT (bspace, this_len); - break; - } - - 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")); -#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. - { - errno = 0; - char *msg = 0; - msg = ACE_OS::strerror (ACE::map_errno (this->errnum ())); - // Windows can try to translate the errnum using - // system calls if strerror() doesn't get anything useful. -#if defined (ACE_WIN32) - if (errno == 0) - { -#endif - -#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR) - ACE_OS::strcpy (fp, ACE_TEXT ("ls")); -#else /* ACE_WIN32 && ACE_USES_WCHAR */ - ACE_OS::strcpy (fp, ACE_TEXT ("s")); -#endif - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, ACE_TEXT_CHAR_TO_TCHAR (msg)); - else - this_len = ACE_OS::sprintf - (bp, format, ACE_TEXT_CHAR_TO_TCHAR (msg)); -#if defined (ACE_WIN32) - } - else - { - errno = ACE::map_errno (this->errnum ()); - ACE_TCHAR *lpMsgBuf = 0; - - // PharLap can't do FormatMessage, so try for socket - // error. -# if !defined (ACE_HAS_PHARLAP) - ACE_TEXT_FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER - | FORMAT_MESSAGE_MAX_WIDTH_MASK - | FORMAT_MESSAGE_FROM_SYSTEM, - 0, - errno, - MAKELANGID (LANG_NEUTRAL, - SUBLANG_DEFAULT), - // Default language - (ACE_TCHAR *) &lpMsgBuf, - 0, - 0); -# endif /* ACE_HAS_PHARLAP */ - - // If we don't get a valid response from - // , we'll assume this is a - // WinSock error and so we'll try to convert - // it into a string. If this doesn't work it - // returns "unknown error" which is fine for - // our purposes. - if (lpMsgBuf == 0) - { - const ACE_TCHAR *message = - ACE::sock_error (errno); - ACE_OS::strcpy (fp, ACE_TEXT ("s")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, message); - else - this_len = ACE_OS::sprintf (bp, format, message); - } - else - { - ACE_OS::strcpy (fp, ACE_TEXT ("s")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, lpMsgBuf); - else - this_len = ACE_OS::sprintf - (bp, format, lpMsgBuf); - // Free the buffer. - ::LocalFree (lpMsgBuf); - } - } -#endif /* ACE_WIN32 */ - ACE_UPDATE_COUNT (bspace, this_len); - break; - } - - case 'R': // Format the return status of the operation. - this->op_status (va_arg (argp, int)); - ACE_OS::strcpy (fp, ACE_TEXT ("d")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, this->op_status ()); - else - this_len = ACE_OS::sprintf - (bp, format, this->op_status ()); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case '{': // Increment the trace_depth, then indent - skip_nul_locate = true; - (void) this->inc (); - break; - - case '}': // indent, then decrement trace_depth - skip_nul_locate = true; - (void) this->dec (); - break; - - case '$': // insert a newline, then indent the next line - // according to %I - *bp++ = '\n'; - --bspace; - /* fallthrough */ - - case 'I': // Indent with nesting_depth*width spaces - // Caller can do %*I to override nesting indent, and - // if %*I was done, wp has the extracted width. -#if defined (ACE_HAS_TRACE) - if (0 == wp) - wp = ACE_Trace::get_nesting_indent (); -#else - if (0 == wp) - wp = 4; -#endif /* ACE_HAS_TRACE */ - wp *= this->trace_depth_; - if (static_cast (wp) > bspace) - wp = static_cast (bspace); - for (tmp_indent = wp; - tmp_indent; - --tmp_indent) - *bp++ = ' '; - - *bp = '\0'; - bspace -= static_cast (wp); - skip_nul_locate = true; - break; - - case 'r': // Run (invoke) this subroutine. - { - ptrdiff_t const osave = ACE_Log_Msg::msg_off_; - - if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, - ACE_Log_Msg::SILENT) && - bspace > 1) - { - *bp++ = '{'; - --bspace; - } - ACE_Log_Msg::msg_off_ = bp - this->msg_; - - (*va_arg (argp, PTF))(); - - if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, - ACE_Log_Msg::SILENT) && - bspace > (1 + ACE_OS::strlen (bp))) - { - bspace -= (ACE_OS::strlen (bp) + 1); - bp += ACE_OS::strlen (bp); - *bp++ = '}'; - } - *bp = '\0'; - skip_nul_locate = true; - ACE_Log_Msg::msg_off_ = osave; - break; - } - - 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(" %d"), sig); - else - this_len = ACE_OS::sprintf - (bp, ACE_TEXT (" %d"), sig); - } -#else - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, ACE_TEXT ("signal %d"), sig); - else - this_len = ACE_OS::sprintf - (bp, ACE_TEXT ("signal %d"), sig); -#endif /* ACE_HAS_SYS_SIGLIST */ - ACE_UPDATE_COUNT (bspace, this_len); - break; - } - - case 'D': // Format the timestamp in format: - // Weekday Month day year hour:minute:sec.usec - { - ACE_TCHAR day_and_time[35]; - ACE::timestamp (day_and_time, - sizeof day_and_time); -#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, day_and_time); - else - this_len = ACE_OS::sprintf (bp, format, day_and_time); - ACE_UPDATE_COUNT (bspace, this_len); - break; - } - - case 'T': // Format the timestamp in - // hour:minute:sec:usec format. - { - ACE_TCHAR day_and_time[35]; - ACE_OS::strcpy (fp, ACE_TEXT ("s")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, - ACE::timestamp (day_and_time, sizeof day_and_time)); - else - this_len = ACE_OS::sprintf - (bp, format, ACE::timestamp (day_and_time, - sizeof day_and_time)); - ACE_UPDATE_COUNT (bspace, this_len); - break; - } - - case 't': // Format thread id. -#if defined (ACE_WIN32) - ACE_OS::strcpy (fp, ACE_TEXT ("u")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, - static_cast (ACE_Thread::self ())); - else - this_len = - ACE_OS::sprintf (bp, - format, - static_cast (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); - -# if defined (ACE_MVS) || defined (ACE_TANDEM_T1248_PTHREADS) - // MVS's 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) - this_len = ACE_OS::snprintf (bp, bspace, format, t_id); - else - this_len = ACE_OS::sprintf (bp, format, t_id); -# 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 type. FreeBSD uses - // a pointer type, but doesn't have a _np function to - // get an integral type, like the OSes above. - ACE_OS::strcpy (fp, ACE_TEXT ("lu")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, (unsigned long)t_id); - else - this_len = ACE_OS::sprintf - (bp, format, (unsigned long)t_id); -# endif /* ACE_MWS || ACE_TANDEM_T1248_PTHREADS */ - -#endif /* ACE_WIN32 */ - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 's': // String - { -#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR) - wchar_t *str = va_arg (argp, wchar_t *); - ACE_OS::strcpy (fp, ACE_TEXT ("ls")); -#else /* ACE_WIN32 && ACE_USES_WCHAR */ - ACE_TCHAR *str = va_arg (argp, ACE_TCHAR *); - ACE_OS::strcpy (fp, ACE_TEXT ("s")); -#endif /* ACE_WIN32 && ACE_USES_WCHAR */ - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, str ? str : ACE_TEXT ("(null)")); - else - this_len = ACE_OS::sprintf - (bp, format, str ? str : ACE_TEXT ("(null)")); - ACE_UPDATE_COUNT (bspace, this_len); - } - break; - - case 'C': // Char string, Unicode for Win32/WCHAR - { - ACE_TCHAR *cstr = va_arg (argp, ACE_TCHAR *); -#if defined (ACE_WIN32) && defined (ACE_USES_WCHAR) - ACE_OS::strcpy (fp, ACE_TEXT ("S")); -#else /* ACE_WIN32 && ACE_USES_WCHAR */ - ACE_OS::strcpy (fp, ACE_TEXT ("s")); -#endif /* ACE_WIN32 && ACE_USES_WCHAR */ - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, cstr ? cstr : ACE_TEXT ("(null)")); - else - this_len = ACE_OS::sprintf - (bp, format, cstr ? cstr : ACE_TEXT ("(null)")); - ACE_UPDATE_COUNT (bspace, this_len); - } - break; - - case 'W': - { -#if defined (ACE_HAS_WCHAR) - wchar_t *wchar_str = va_arg (argp, wchar_t *); -# if defined (HPUX) - ACE_OS::strcpy (fp, ACE_TEXT ("S")); -# elif defined (ACE_WIN32) -# if defined (ACE_USES_WCHAR) - ACE_OS::strcpy (fp, ACE_TEXT ("s")); -# else /* ACE_USES_WCHAR */ - ACE_OS::strcpy (fp, ACE_TEXT ("S")); -# endif /* ACE_USES_WCHAR */ -# else - ACE_OS::strcpy (fp, ACE_TEXT ("ls")); -# endif /* HPUX */ - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, wchar_str ? wchar_str : ACE_TEXT_WIDE("(null)")); - else - this_len = ACE_OS::sprintf - (bp, format, wchar_str ? wchar_str : ACE_TEXT_WIDE("(null)")); -#endif /* ACE_HAS_WCHAR */ - ACE_UPDATE_COUNT (bspace, this_len); - } - break; - - case 'w': // Wide character -#if defined (ACE_WIN32) -# if defined (ACE_USES_WCHAR) - ACE_OS::strcpy (fp, ACE_TEXT ("c")); -# else /* ACE_USES_WCHAR */ - ACE_OS::strcpy (fp, ACE_TEXT ("C")); -# endif /* ACE_USES_WCHAR */ - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, va_arg (argp, int)); - else - this_len = ACE_OS::sprintf - (bp, format, va_arg (argp, int)); -#elif defined (ACE_USES_WCHAR) -# if defined (HPUX) - ACE_OS::strcpy (fp, ACE_TEXT ("C")); -# else - ACE_OS::strcpy (fp, ACE_TEXT ("lc")); -# endif /* HPUX */ - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, va_arg (argp, wint_t)); - else - this_len = ACE_OS::sprintf - (bp, format, va_arg (argp, wint_t)); -#else /* ACE_WIN32 */ - ACE_OS::strcpy (fp, ACE_TEXT ("u")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, va_arg (argp, int)); - else - this_len = ACE_OS::sprintf - (bp, format, va_arg (argp, int)); -#endif /* ACE_WIN32 */ - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'z': // ACE_OS::WChar character - { - // On some platforms sizeof (wchar_t) can be 2 - // on the others 4 ... - wchar_t wtchar = - static_cast (va_arg (argp, int)); -#if defined (ACE_WIN32) -# if defined (ACE_USES_WCHAR) - ACE_OS::strcpy (fp, ACE_TEXT ("c")); -# else /* ACE_USES_WCHAR */ - ACE_OS::strcpy (fp, ACE_TEXT ("C")); -# endif /* ACE_USES_WCHAR */ -#elif defined (ACE_USES_WCHAR) -# if defined (HPUX) - ACE_OS::strcpy (fp, ACE_TEXT ("C")); -# else - ACE_OS::strcpy (fp, ACE_TEXT ("lc")); -# endif /* HPUX */ -#else /* ACE_WIN32 */ - ACE_OS::strcpy (fp, ACE_TEXT ("u")); -#endif /* ACE_WIN32 */ - if (can_check) - this_len = ACE_OS::snprintf (bp, bspace, format, wtchar); - else - this_len = ACE_OS::sprintf (bp, format, wtchar); - ACE_UPDATE_COUNT (bspace, this_len); - break; - } - - case 'Z': // ACE_OS::WChar character string - { - ACE_OS::WChar *wchar_str = va_arg (argp, ACE_OS::WChar*); - if (wchar_str == 0) - break; - - wchar_t *wchar_t_str = 0; - if (sizeof (ACE_OS::WChar) != sizeof (wchar_t)) - { - size_t len = ACE_OS::wslen (wchar_str) + 1; - ACE_NEW_NORETURN(wchar_t_str, wchar_t[len]); - if (wchar_t_str == 0) - break; - - for (size_t i = 0; i < len; ++i) - { - wchar_t_str[i] = wchar_str[i]; - } - } - - if (wchar_t_str == 0) - { - wchar_t_str = reinterpret_cast (wchar_str); - } -#if defined (ACE_WIN32) -# if defined (ACE_USES_WCHAR) - ACE_OS::strcpy (fp, ACE_TEXT ("s")); -# else /* ACE_USES_WCHAR */ - ACE_OS::strcpy (fp, ACE_TEXT ("S")); -# endif /* ACE_USES_WCHAR */ -#elif defined (ACE_HAS_WCHAR) -# if defined (HPUX) - ACE_OS::strcpy (fp, ACE_TEXT ("S")); -# else - ACE_OS::strcpy (fp, ACE_TEXT ("ls")); -# endif /* HPUX */ -#endif /* ACE_WIN32 / ACE_HAS_WCHAR */ - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, wchar_t_str); - else - this_len = ACE_OS::sprintf (bp, format, wchar_t_str); - if(sizeof(ACE_OS::WChar) != sizeof(wchar_t)) - { - delete [] wchar_t_str; - } - ACE_UPDATE_COUNT (bspace, this_len); - break; - } - - case 'c': -#if defined (ACE_WIN32) && defined (ACE_USES_WCHAR) - ACE_OS::strcpy (fp, ACE_TEXT ("C")); -#else - ACE_OS::strcpy (fp, ACE_TEXT ("c")); -#endif /* ACE_WIN32 && ACE_USES_WCHAR */ - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, va_arg (argp, int)); - else - this_len = ACE_OS::sprintf - (bp, format, va_arg (argp, int)); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'd': case 'i': case 'o': - case 'u': case 'x': case 'X': - fp[0] = *format_str; - fp[1] = '\0'; - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, va_arg (argp, int)); - else - this_len = ACE_OS::sprintf - (bp, format, va_arg (argp, int)); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'F': case 'f': case 'e': case 'E': - case 'g': case 'G': - fp[0] = *format_str; - fp[1] = '\0'; - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, va_arg (argp, double)); - else - this_len = ACE_OS::sprintf - (bp, format, va_arg (argp, double)); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'Q': -#if defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T) - { - // This relies on the ACE_U_LongLong storage layout. - ACE_UINT32 hi = va_arg (argp, ACE_UINT32); - ACE_UINT32 lo = va_arg (argp, ACE_UINT32); - if (hi > 0) - this_len = ACE_OS::sprintf (bp, - "0x%lx%0*lx", - hi, - 2 * sizeof lo, - lo); - else - this_len = ACE_OS::sprintf (bp, "0x%lx", lo); - } -#else /* ! ACE_LACKS_LONGLONG_T */ - { - const ACE_TCHAR *fmt = ACE_UINT64_FORMAT_SPECIFIER; - ACE_OS::strcpy (fp, &fmt[1]); // Skip leading % - if (can_check) - this_len = ACE_OS::snprintf (bp, bspace, - format, - va_arg (argp, ACE_UINT64)); - else - this_len = ACE_OS::sprintf (bp, - format, - va_arg (argp, ACE_UINT64)); - } -#endif /* ! ACE_LACKS_LONGLONG_T || ACE_LACKS_UNSIGNEDLONGLONG_T */ - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'q': - #if defined (ACE_LACKS_LONGLONG_T) - // No implementation available yet, no ACE_INT64 emulation - // available yet - #else /* ! ACE_LACKS_LONGLONG_T */ - { - const ACE_TCHAR *fmt = ACE_INT64_FORMAT_SPECIFIER; - ACE_OS::strcpy (fp, &fmt[1]); // Skip leading % - if (can_check) - this_len = ACE_OS::snprintf (bp, bspace, - format, - va_arg (argp, ACE_INT64)); - else - this_len = ACE_OS::sprintf (bp, - format, - va_arg (argp, ACE_INT64)); - } - #endif /* ! ACE_LACKS_LONGLONG_T */ - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'b': - { - const ACE_TCHAR *fmt = ACE_SSIZE_T_FORMAT_SPECIFIER; - ACE_OS::strcpy (fp, &fmt[1]); // Skip leading % - } - if (can_check) - this_len = ACE_OS::snprintf (bp, bspace, - format, - va_arg (argp, ssize_t)); - else - this_len = ACE_OS::sprintf (bp, - format, - va_arg (argp, ssize_t)); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case 'B': - { - const ACE_TCHAR *fmt = ACE_SIZE_T_FORMAT_SPECIFIER; - ACE_OS::strcpy (fp, &fmt[1]); // Skip leading % - } - if (can_check) - this_len = ACE_OS::snprintf (bp, bspace, - format, - va_arg (argp, size_t)); - else - this_len = ACE_OS::sprintf (bp, - format, - va_arg (argp, size_t)); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case ':': - { - // Assume a 32 bit time_t and change if needed. - const ACE_TCHAR *fmt = ACE_TEXT ("%d"); - if (sizeof (time_t) == 8) - fmt = ACE_INT64_FORMAT_SPECIFIER; - - ACE_OS::strcpy (fp, &fmt[1]); // Skip leading % - } - if (can_check) - this_len = ACE_OS::snprintf (bp, bspace, - format, - va_arg (argp, time_t)); - else - this_len = ACE_OS::sprintf (bp, - format, - va_arg (argp, time_t)); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - case '@': - ACE_OS::strcpy (fp, ACE_TEXT ("p")); - if (can_check) - this_len = ACE_OS::snprintf - (bp, bspace, format, va_arg (argp, void*)); - else - this_len = ACE_OS::sprintf - (bp, format, va_arg (argp, void*)); - ACE_UPDATE_COUNT (bspace, this_len); - break; - - default: - // So, it's not a legit format specifier after all... - // Copy from the original % to where we are now, then - // continue with whatever comes next. - while (start_format != format_str && bspace > 0) - { - *bp++ = *start_format++; - --bspace; - } - if (bspace > 0) - { - *bp++ = *format_str; - --bspace; - } - break; - } - - // Bump to the next char in the caller's format_str - ++format_str; - } - - if (!skip_nul_locate) - while (*bp != '\0') // Locate end of bp. - ++bp; - } - } - - *bp = '\0'; // Terminate bp, but don't auto-increment this! - - ssize_t result = 0; - - // Check that memory was not corrupted, if it corrupted we can't log anything - // anymore because all our members could be corrupted. - if (bp >= (this->msg_ + ACE_MAXLOGMSGLEN+1)) - { - abort_prog = true; - ACE_OS::fprintf (stderr, - "The following logged message is too long!\n"); - } - else - { - // Copy the message from thread-specific storage into the transfer - // buffer (this can be optimized away by changing other code...). - log_record.msg_data (this->msg ()); - - // Write the to the appropriate location. - result = this->log (log_record, - abort_prog); - } - - if (abort_prog) - { - // Since we are now calling abort instead of exit, this value is - // not used. - ACE_UNUSED_ARG (exit_value); - - // *Always* print a message to stderr if we're aborting. We - // don't use verbose, however, to avoid recursive aborts if - // something is hosed. - log_record.print (ACE_Log_Msg::local_host_, 0, stderr); - ACE_OS::abort (); - } - - return result; -} - -#if !defined (ACE_WIN32) -/** - * @class ACE_Log_Msg_Sig_Guard - * - * @brief For use only by ACE_Log_Msg. - * - * Doesn't require the use of global variables or global - * functions in an application). - */ -class ACE_Log_Msg_Sig_Guard -{ -private: - ACE_Log_Msg_Sig_Guard (void); - ~ACE_Log_Msg_Sig_Guard (void); - - /// Original signal mask. - sigset_t omask_; - - friend ssize_t ACE_Log_Msg::log (ACE_Log_Record &log_record, - int suppress_stderr); -}; - -ACE_Log_Msg_Sig_Guard::ACE_Log_Msg_Sig_Guard (void) -{ -#if !defined (ACE_LACKS_UNIX_SIGNALS) - ACE_OS::sigemptyset (&this->omask_); - -# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK) - ACE_OS::sigprocmask (SIG_BLOCK, - ACE_OS_Object_Manager::default_mask (), - &this->omask_); -# else - ACE_OS::thr_sigsetmask (SIG_BLOCK, - ACE_OS_Object_Manager::default_mask (), - &this->omask_); -# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */ -#endif /* ACE_LACKS_UNIX_SIGNALS */ -} - -ACE_Log_Msg_Sig_Guard::~ACE_Log_Msg_Sig_Guard (void) -{ -#if !defined (ACE_LACKS_UNIX_SIGNALS) -# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK) - ACE_OS::sigprocmask (SIG_SETMASK, - &this->omask_, - 0); -# else - ACE_OS::thr_sigsetmask (SIG_SETMASK, - &this->omask_, - 0); -# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */ -#endif /* ! ACE_LACKS_UNIX_SIGNALS */ -} -#endif /* ! ACE_WIN32 */ - -ssize_t -ACE_Log_Msg::log (ACE_Log_Record &log_record, - int suppress_stderr) -{ - ssize_t result = 0; - - // Format the message and print it to stderr and/or ship it off to - // the log_client daemon, and/or print it to the ostream. Of - // course, only print the message if "SILENT" mode is disabled. - if (ACE_BIT_DISABLED (ACE_Log_Msg::flags_, - ACE_Log_Msg::SILENT)) - { - bool tracing = this->tracing_enabled (); - this->stop_tracing (); - -#if !defined (ACE_WIN32) - // Make this block signal-safe. - ACE_Log_Msg_Sig_Guard sb; -#endif /* !ACE_WIN32 */ - - // Do the callback, if needed, before acquiring the lock - // to avoid holding the lock during the callback so we don't - // have deadlock if the callback uses the logger. - if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, - ACE_Log_Msg::MSG_CALLBACK) - && this->msg_callback () != 0) - this->msg_callback ()->log (log_record); - - // Make sure that the lock is held during all this. - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Log_Msg_Manager::get_lock (), - -1)); - - if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, - ACE_Log_Msg::STDERR) - && !suppress_stderr) // This is taken care of by our caller. - log_record.print (ACE_Log_Msg::local_host_, - ACE_Log_Msg::flags_, - stderr); - - if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::CUSTOM) || - ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::SYSLOG) || - ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::LOGGER)) - { - // Be sure that there is a message_queue_, with multiple threads. - ACE_MT (ACE_Log_Msg_Manager::init_backend ()); - } - - - if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::LOGGER) || - ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::SYSLOG)) - { - result = - ACE_Log_Msg_Manager::log_backend_->log (log_record); - } - - if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, ACE_Log_Msg::CUSTOM) && - ACE_Log_Msg_Manager::custom_backend_ != 0) - { - result = - ACE_Log_Msg_Manager::custom_backend_->log (log_record); - } - - - // This must come last, after the other two print operations - // (see the method for details). - if (ACE_BIT_ENABLED (ACE_Log_Msg::flags_, - ACE_Log_Msg::OSTREAM) - && this->msg_ostream () != 0) - log_record.print (ACE_Log_Msg::local_host_, - ACE_Log_Msg::flags_, -#if defined (ACE_LACKS_IOSTREAM_TOTALLY) - static_cast (this->msg_ostream ()) -#else /* ! ACE_LACKS_IOSTREAM_TOTALLY */ - *this->msg_ostream () -#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */ - ); - - if (tracing) - this->start_tracing (); - } - - return result; -} - -// Calls log to do the actual print, but formats first. - -int -ACE_Log_Msg::log_hexdump (ACE_Log_Priority log_priority, - const char *buffer, - size_t size, - const ACE_TCHAR *text) -{ - // Only print the message if hasn't been reset to - // exclude this logging priority. - if (this->log_priority_enabled (log_priority) == 0) - return 0; - - ACE_TCHAR* buf = 0; - const size_t buf_sz = - ACE_Log_Record::MAXLOGMSGLEN - ACE_Log_Record::VERBOSE_LEN - 58; - ACE_NEW_RETURN (buf, ACE_TCHAR[buf_sz], -1); - - ACE_TCHAR *msg_buf = 0; - const size_t text_sz = text ? ACE_OS::strlen(text) : 0; - ACE_NEW_RETURN (msg_buf, - ACE_TCHAR[text_sz + 58], - -1); - - buf[0] = 0; // in case size = 0 - - const size_t len = ACE::format_hexdump - (buffer, size, buf, buf_sz / sizeof (ACE_TCHAR) - text_sz); - - int sz = 0; - - if (text) - sz = ACE_OS::sprintf (msg_buf, - ACE_TEXT ("%s - "), - text); - - sz += ACE_OS::sprintf (msg_buf + sz, - ACE_TEXT ("HEXDUMP ") - ACE_SIZE_T_FORMAT_SPECIFIER - ACE_TEXT (" bytes"), - size); - - if (len < size) - ACE_OS::sprintf (msg_buf + sz, - ACE_TEXT (" (showing first ") - ACE_SIZE_T_FORMAT_SPECIFIER - ACE_TEXT (" bytes)"), - len); - - // Now print out the formatted buffer. - this->log (log_priority, - ACE_TEXT ("%s\n%s"), - msg_buf, - buf); - - delete [] msg_buf; - delete [] buf; - return 0; -} - -void -ACE_Log_Msg::set (const char *filename, - int line, - int status, - int err, - int rs, - ACE_OSTREAM_TYPE *os, - ACE_Log_Msg_Callback *c) -{ - ACE_TRACE ("ACE_Log_Msg::set"); - this->file (filename); - this->linenum (line); - this->op_status (status); - this->errnum (err); - this->restart (rs); - this->msg_ostream (os); - this->msg_callback (c); -} - -void -ACE_Log_Msg::conditional_set (const char *filename, - int line, - int status, - int err) -{ - this->conditional_values_.is_set_ = true; - this->conditional_values_.file_ = filename; - this->conditional_values_.line_ = line; - this->conditional_values_.op_status_ = status; - this->conditional_values_.errnum_ = err; -} - -void -ACE_Log_Msg::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Log_Msg::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("status_ = %d\n"), this->status_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nerrnum_ = %d\n"), this->errnum_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nlinenum_ = %d\n"), this->linenum_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nfile_ = %C\n"), this->file_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nmsg_ = %s\n"), this->msg_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nrestart_ = %d\n"), this->restart_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nostream_ = %@\n"), this->ostream_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nmsg_callback_ = %@\n"), - this->msg_callback_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nprogram_name_ = %s\n"), - this->program_name_ ? this->program_name_ - : ACE_TEXT (""))); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nlocal_host_ = %s\n"), - this->local_host_ ? this->local_host_ - : ACE_TEXT (""))); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\npid_ = %d\n"), this->getpid ())); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nflags_ = 0x%x\n"), this->flags_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ntrace_depth_ = %d\n"), - this->trace_depth_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ntrace_active_ = %d\n"), - this->trace_active_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ntracing_enabled_ = %d\n"), - this->tracing_enabled_)); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\npriority_mask_ = 0x%x\n"), - this->priority_mask_)); - if (this->thr_desc_ != 0 && this->thr_desc_->state () != 0) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nthr_state_ = %d\n"), - this->thr_desc_->state ())); - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nmsg_off_ = %d\n"), this->msg_off_)); - - // Be sure that there is a message_queue_, with multiple threads. - ACE_MT (ACE_Log_Msg_Manager::init_backend ()); - - ACE_MT (ACE_Log_Msg_Manager::get_lock ()->dump ()); - // Synchronize output operations. - - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -#endif /* ACE_HAS_DUMP */ -} - -void -ACE_Log_Msg::thr_desc (ACE_Thread_Descriptor *td) -{ - this->thr_desc_ = td; - - if (td != 0) - 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) -{ - ACE_TRACE ("ACE_Log_Msg::msg_backend"); - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Log_Msg_Manager::get_lock (), 0)); - - ACE_Log_Msg_Backend *tmp = ACE_Log_Msg_Manager::custom_backend_; - ACE_Log_Msg_Manager::custom_backend_ = b; - return tmp; -} - -ACE_Log_Msg_Backend * -ACE_Log_Msg::msg_backend (void) -{ - ACE_TRACE ("ACE_Log_Msg::msg_backend"); - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, - *ACE_Log_Msg_Manager::get_lock (), 0)); - - return ACE_Log_Msg_Manager::custom_backend_; -} - -void -ACE_Log_Msg::msg_ostream (ACE_OSTREAM_TYPE *m, bool delete_ostream) -{ - if (this->ostream_ == m) - return; - - if (this->delete_ostream_) - { -#if defined (ACE_LACKS_IOSTREAM_TOTALLY) - ACE_OS::fclose (this->ostream_); -#else - delete this->ostream_; -#endif - } - - this->delete_ostream_ = delete_ostream; - this->ostream_ = m; -} - -void -ACE_Log_Msg::local_host (const ACE_TCHAR *s) -{ - if (s) - { - ACE_OS::free ((void *) ACE_Log_Msg::local_host_); - { - ACE_NO_HEAP_CHECK; - - ACE_ALLOCATOR (ACE_Log_Msg::local_host_, ACE_OS::strdup (s)); - } - } -} - -int -ACE_Log_Msg::log_priority_enabled (ACE_Log_Priority log_priority, - const char *, - ...) -{ - return this->log_priority_enabled (log_priority); -} - -#if defined (ACE_USES_WCHAR) -int -ACE_Log_Msg::log_priority_enabled (ACE_Log_Priority log_priority, - const wchar_t *, - ...) -{ - return this->log_priority_enabled (log_priority); -} -#endif /* ACE_USES_WCHAR */ - -// **************************************************************** - -void -ACE_Log_Msg::init_hook (ACE_OS_Log_Msg_Attributes &attributes -# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) - , ACE_SEH_EXCEPT_HANDLER selector - , ACE_SEH_EXCEPT_HANDLER handler -# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ - ) -{ -# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) - attributes.seh_except_selector_ = selector; - attributes.seh_except_handler_ = handler; -# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ - if (ACE_Log_Msg::exists ()) - { - ACE_Log_Msg *inherit_log = ACE_LOG_MSG; - attributes.ostream_ = inherit_log->msg_ostream (); - attributes.priority_mask_ = inherit_log->priority_mask (); - attributes.tracing_enabled_ = inherit_log->tracing_enabled (); - attributes.restart_ = inherit_log->restart (); - attributes.trace_depth_ = inherit_log->trace_depth (); - } -} - -void -ACE_Log_Msg::inherit_hook (ACE_OS_Thread_Descriptor *thr_desc, - ACE_OS_Log_Msg_Attributes &attributes) -{ -#if !defined (ACE_THREADS_DONT_INHERIT_LOG_MSG) && \ - !defined (ACE_HAS_MINIMAL_ACE_OS) - // Inherit the logging features if the parent thread has an - // . Note that all of the following operations occur - // within thread-specific storage. - ACE_Log_Msg *new_log = ACE_LOG_MSG; - - // Note that we do not inherit the callback because this might have - // been allocated off of the stack of the original thread, in which - // case all hell would break loose... - - if (attributes.ostream_) - { - new_log->msg_ostream (attributes.ostream_); - new_log->priority_mask (attributes.priority_mask_); - - if (attributes.tracing_enabled_) - new_log->start_tracing (); - - new_log->restart (attributes.restart_); - new_log->trace_depth (attributes.trace_depth_); - } - - // @@ Now the TSS Log_Msg has been created, cache my thread - // descriptor in. - - if (thr_desc != 0) - // This downcast is safe. We do it to avoid having to #include - // ace/Thread_Manager.h. - new_log->thr_desc (static_cast (thr_desc)); - // Block the thread from proceeding until - // thread manager has thread descriptor ready. -#endif /* ! ACE_THREADS_DONT_INHERIT_LOG_MSG && ! ACE_HAS_MINIMAL_ACE_OS */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Log_Msg.h b/ACE/ace/Log_Msg.h deleted file mode 100644 index 6084902bf30..00000000000 --- a/ACE/ace/Log_Msg.h +++ /dev/null @@ -1,746 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Log_Msg.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_LOG_MSG_H -#define ACE_LOG_MSG_H -#include /**/ "ace/pre.h" - -// This stuff must come first to avoid problems with circular -// headers... -// ... but ACE_NDEBUG and ACE_NLOGGING can come from the config.h file, so -// pull that one early. -#include /**/ "ace/config-all.h" -#include /**/ "ace/ACE_export.h" -#include "ace/Global_Macros.h" -#include "ace/Default_Constants.h" -#include "ace/Log_Priority.h" -#include "ace/os_include/os_limits.h" - -// The ACE_ASSERT macro used to be defined here, include ace/Assert.h -// for backwards compatibility. -#include "ace/Assert.h" - -#if defined (ACE_NLOGGING) -#define ACE_HEX_DUMP(X) do {} while (0) -#define ACE_RETURN(Y) do { return (Y); } while (0) -#define ACE_ERROR_RETURN(X, Y) return (Y) -#define ACE_ERROR_BREAK(X) { break; } -#define ACE_ERROR(X) do {} while (0) -#define ACE_DEBUG(X) do {} while (0) -#define ACE_ERROR_INIT(VALUE, FLAGS) -#else -#if !defined (ACE_HEX_DUMP) -#define ACE_HEX_DUMP(X) \ - do { \ - int __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 (ACE_RETURN) -#define ACE_RETURN(Y) \ - do { \ - int __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 ()); \ - return Y; \ - } while (0) -#endif -#if !defined (ACE_ERROR_RETURN) -#define ACE_ERROR_RETURN(X, Y) \ - do { \ - int __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 (ACE_ERROR) -#define ACE_ERROR(X) \ - do { \ - int __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 (ACE_DEBUG) -#define ACE_DEBUG(X) \ - do { \ - int __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 (ACE_ERROR_INIT) -#define ACE_ERROR_INIT(VALUE, FLAGS) \ - do { \ - ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \ - ace___->set_flags (FLAGS); ace___->op_status (VALUE); \ - } while (0) -#endif -#if !defined (ACE_ERROR_BREAK) -#define ACE_ERROR_BREAK(X) { ACE_ERROR (X); break; } -#endif -#endif /* ACE_NLOGGING */ - -#include "ace/OS_Log_Msg_Attributes.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// These workarounds are necessary for nasty libraries or platforms -// 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 */ - -#if defined (THREAD) -# undef THREAD -#endif /* THREAD */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Log_Msg_Callback; -class ACE_Log_Msg_Backend; - -// **************************************************************** - -#define ACE_LOG_MSG ACE_Log_Msg::instance () - -// Forward declaration -class ACE_Thread_Descriptor; -class ACE_Log_Record; - -/** - * @class ACE_Log_Msg - * - * @brief Provides a variable length argument message logging - * abstraction. - * - * This class is very flexible since it allows formatted error - * messages to be printed in a thread-safe manner to various - * locations, such as stderr, cerr, a distributed logger, etc. The - * current message is also kept in a thread-specific storage location - * (threads spawned using ACE_Thread_Manager automatically get an - * ACE_Log_Msg object that inherits the spawning thread's settings), - * which can be used to communicate errors between framework methods - * and callers. A message is logged by the log() method, only if the - * message priority is currently enabled. Moreover, only the current - * log message is stored here -- it will be overwritten by the - * subsequent call to log(). - * - * The ACE_Log_Msg class uses two priority masks to control its - * logging behavior. The @c priority_mask_ object attribute is - * thread- specific and specifies the priority levels logged by the - * thread. The @c process_priority_mask_ class attribute is not - * thread-specific and specifies the priority levels that will be - * logged by all threads in the process. By default, all levels are - * disabled for @c priority_mask_ and all levels are enabled for @c - * process_priority_mask_ (i.e. the process-wide mask controls the - * settings, and each instance can expand on it if desired). Both - * priority masks can be modified using the priority_mask() method of - * this class. - */ -class ACE_Export ACE_Log_Msg -{ -public: - // Logger Flags. - enum - { - /// Write messages to stderr. - STDERR = 1, - /// Write messages to the local client logger deamon. - LOGGER = 2, - /// Write messages to the ostream * stored in thread-specific - /// storage. - OSTREAM = 4, - /// Write messages to the callback object. - MSG_CALLBACK = 8, - /// Display messages in a verbose manner. - VERBOSE = 16, - /// Display messages in a less verbose manner (i.e., only print - /// information that can change between calls). - VERBOSE_LITE = 32, - /// Do not print messages at all (just leave in thread-specific - /// storage for later inspection). - SILENT = 64, - /// Write messages to the system's event log. - SYSLOG = 128, - /// Write messages to the user provided backend - CUSTOM = 256 - }; - - // = Initialization and termination routines. - - /// Returns a pointer to the Singleton. - static ACE_Log_Msg *instance (void); - - /// Returns last error. - static int last_error_adapter (void); - - /// Returns non-null if an ACE_Log_Msg exists for the calling thread. - static int exists (void); - - /// Returns the current program name used for logging. - static const ACE_TCHAR * program_name (void); - - /// Clears the flag from the default priority mask used to - /// initialize ACE_Log_Msg instances. - static void disable_debug_messages (ACE_Log_Priority priority = LM_DEBUG); - - /// Sets the flag in the default priority mask used to initialize - /// ACE_Log_Msg instances. - static void enable_debug_messages (ACE_Log_Priority priority = LM_DEBUG); - - /// Initialize logger. - ACE_Log_Msg (void); - - /// cleanup logger. - ~ACE_Log_Msg (void); - - /// Initialize the ACE logging facility. - /** - * Initialize the ACE logging facility. Supplies the program name - * that is available to each logging message call. Default arguments - * set up logging to STDERR only. - * - * @param prog_name The name of the calling program. - * @param options_flags A bitwise-or of options flags used to set the - * initial behavior and logging sink(s). (see the - * enum above for the valid values). - * @param logger_key The name of ACE_FIFO rendezvous point where the - * local client logger daemon is listening for logging - * messages if the LOGGER bit is set in the @a flags - * argument. If the SYSLOG bit is set in @a flags, - * @a logger_key is the source/program name specified - * in the syslog facility (UNIX/Linux) or the Windows - * event log (Windows). In the SYSLOG case, if - * @a logger_key is 0, @a prog_name is used. - */ - int open (const ACE_TCHAR *prog_name, - u_long options_flags = ACE_Log_Msg::STDERR, - const ACE_TCHAR *logger_key = 0); - - // = Set/get the options flags. - - /** - * Enable the bits in the logger's options flags. - */ - void set_flags (u_long f); - - /** - * Disable the bits in the logger's options flags. - */ - void clr_flags (u_long f); - - /** - * Return the bits in the logger's options flags. - */ - u_long flags (void); - - /** @name Allow apps to acquire and release internal synchronization - * lock - * - * This lock is used internally by the ACE_Log_Msg - * implementation. By exporting the lock, applications can hold the - * lock atomically over a number of calls to ACE_Log_Msg. - */ - //@{ - - /// Acquire the internal lock. - int acquire (void); - - /// Release the internal lock. - int release (void); - //@} - - /// Call after doing a @c fork() to resynchronize the process id and - /// @c program_name_ variables. - void sync (const ACE_TCHAR *program_name); - - // = Set/get methods. Note that these are non-static and thus will - // be thread-specific. - - /// Set the result of the operation status (by convention, -1 means - /// error). - void op_status (int status); - - /// Get the result of the operation status (by convention, -1 means - /// error). - int op_status (void) const; - - /// Set the value of the errnum (by convention this corresponds to - /// errno). - void errnum (int); - - /// Get the value of the errnum (by convention this corresponds to - /// errno). - int errnum (void) const; - - /// Set the line number where an error occurred. - void linenum (int); - - /// Get the line number where an error occurred. - int linenum (void) const; - - /// Set the file name where an error occurred. - void file (const char *); - - /// Get the file name where an error occurred. - const char *file (void); - - /// Set the message that describes what type of error occurred. - void msg (const ACE_TCHAR *); - - /// Get the message that describes what type of error occurred. - const ACE_TCHAR *msg (void); - - /// Set the field that indicates whether interrupted calls should be - /// restarted. - void restart (int); - - /// Get the field that indicates whether interrupted calls should be - /// restarted. - int restart (void) const; - - // = Notice that the following two function is equivalent to - // "void msg_ostream (HANDLE)" and "HANDLE msg_ostream (void)" - // on Windows CE. There is no support on CE. - - /// Update the ostream without overwriting the delete_ostream_ flag. - void msg_ostream (ACE_OSTREAM_TYPE *); - - /** - * delete_stream == true, forces Log_Msg.h to delete the stream in - * its own ~dtor (assumes control of the stream) - * use only with proper ostream (eg: fstream), not (cout, cerr) - */ - void msg_ostream (ACE_OSTREAM_TYPE *, bool delete_ostream); - - /// Get the ostream that is used to print error messages. - ACE_OSTREAM_TYPE *msg_ostream (void) const; - - /** - * Set a new callback object and return the existing callback to - * allow "chaining". Note that ACE_Log_Msg_Callback objects are not - * inherited when spawning a new thread, so you'll need to reset - * them in each thread. - */ - ACE_Log_Msg_Callback *msg_callback (ACE_Log_Msg_Callback *c); - ACE_Log_Msg_Callback *msg_callback (void) const; - - /** - * Set a new backend object and return the existing backend to - * allow "chaining". Note that as opposed to ACE_Log_Msg_Callback, - * ACE_Log_Msg_Backend is a per-process entity. - * - * @note Be aware that because of the current architecture there is - * no guarantee that open (), reset () and close () will be called - * on a backend object. - * - */ - static ACE_Log_Msg_Backend *msg_backend (ACE_Log_Msg_Backend *b); - static ACE_Log_Msg_Backend *msg_backend (void); - - /// Nesting depth increment. - int inc (void); - - /// Nesting depth decrement. - int dec (void); - - /// Get trace depth. - int trace_depth (void) const; - - /// Set trace depth. - void trace_depth (int); - - /// Set trace active status. - bool trace_active (void) const; - - /// Get trace active status. - void trace_active (bool value); - - /// Get the TSS thread descriptor. - ACE_Thread_Descriptor *thr_desc (void) const; - - /** - * Set the TSS thread descriptor. This method will call - * td->acquire_release to block execution until this call - * return. - */ - 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); - - /// Start tracing status on a per-thread basis... - void start_tracing (void); - - /// Query tracing status on a per-thread basis... - bool tracing_enabled (void) const; - - typedef enum - { - PROCESS = 0, - THREAD = 1 - } MASK_TYPE; - - // = Get/set the priority mask. - /// Get the current ACE_Log_Priority mask. - u_long priority_mask (MASK_TYPE = THREAD); - - /// Set the ACE_Log_Priority mask, returns original mask. - u_long priority_mask (u_long, MASK_TYPE = THREAD); - - /// Return true if the requested priority is enabled. - int log_priority_enabled (ACE_Log_Priority log_priority); - - /// Return true if the requested priority is enabled. - int log_priority_enabled (ACE_Log_Priority log_priority, - const char *, - ...); - -#if defined (ACE_USES_WCHAR) - // We are not using ACE_TCHAR for this since ACE_HEX_DUMP - // doesn't take in a ACE_TCHAR. log_hexdump takes in a char - // string, so this must be able to take in a char string even - // when using ACE_USES_WCHAR. - /// Return true if the requested priority is enabled. - int log_priority_enabled (ACE_Log_Priority log_priority, - const wchar_t *, - ...); -#endif /* ACE_USES_WCHAR */ - - /// Optimize reading of the pid (avoids a system call if the value is - /// cached...). - pid_t getpid (void) const; - - /// Get the name of the local host. - const ACE_TCHAR *local_host (void) const; - - /// Set the name of the local host. - void local_host (const ACE_TCHAR *); - - /** - * Set the line number, file name, operational status, error number, - * restart flag, ostream, and the callback object. This combines - * all the other set methods into a single method. - */ - void set (const char *file, - int line, - int op_status = -1, - int errnum = 0, - int restart = 1, - ACE_OSTREAM_TYPE *os = 0, - ACE_Log_Msg_Callback *c = 0); - - /// These values are only actually set if the requested priority is - /// enabled. - void conditional_set (const char *file, - int line, - int op_status, - int errnum); - - /** - * Format a message to the thread-safe ACE logging mechanism. Valid - * options (prefixed by '%', as in printf format strings) include: - * - 'A': print an ACE_timer_t value (which could be either double - * or ACE_UINT32.) - * - 'a': abort the program at this point abruptly. - * - 'b': print a ssize_t value - * - 'B': print a size_t value - * - 'c': print a character - * - 'C': print a character string - * - 'i', 'd': print a decimal number - * - 'I': indent according to nesting depth (obtained from - * ACE_Trace::get_nesting_indent()). - * - 'e', 'E', 'f', 'F', 'g', 'G': print a double - * - 'l': print line number where an error occurred. - * - 'M': print the name of the priority of the message. - * - 'm': return the message corresponding to errno value, e.g., as - * done by strerror() - * - 'N': print file name where the error occurred. - * - 'n': print the name of the program (or "" if not set) - * - 'o': print as an octal number - * - 'P': print out the current process id - * - 'p': print out the appropriate errno message from sys_errlist, - * e.g., as done by perror() - * - 'Q': print out the uint64 number - * - 'q': print out the int64 number - * - '@': 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 a character string - * - 'T': print timestamp in hour:minute:sec:usec format. - * - 'D': print timestamp as Weekday Month day year hour:minute:sec.usec - * - 't': print thread id (1 if single-threaded) - * - 'u': print as unsigned int - * - 'w': prints a wide character - * - 'W': print a wide character string - * - 'x': print as a hex number - * - 'X': print as a hex number - * - 'z': print an ACE_OS::WChar character - * - 'Z': print an ACE_OS::WChar character string - * - ':': print a time_t value as an integral number - * - '%': print out a single percent sign, '%' - */ - ssize_t log (ACE_Log_Priority priority, const ACE_TCHAR *format, ...); - -#if defined (ACE_HAS_WCHAR) - ssize_t log (ACE_Log_Priority priority, const ACE_ANTI_TCHAR *format, ...); -#endif /* ACE_HAS_WCHAR */ - - /** - * An alternative logging mechanism that makes it possible to - * integrate variable argument lists from other logging mechanisms - * into the ACE mechanism. - */ - ssize_t log (const ACE_TCHAR *format, - ACE_Log_Priority priority, - va_list argp); - - /// Log a custom built log record to the currently enabled logging - /// sinks. - ssize_t log (ACE_Log_Record &log_record, - int suppress_stderr = 0); - - /** - * Method to log hex dump. This is useful for debugging. Calls - * log() to do the actual print, but formats first to make the chars - * printable. - */ - int log_hexdump (ACE_Log_Priority log_priority, - const char *buffer, - size_t size, - const ACE_TCHAR *text = 0); - - static void init_hook (ACE_OS_Log_Msg_Attributes &attributes -# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) - , ACE_SEH_EXCEPT_HANDLER selector = 0 - , ACE_SEH_EXCEPT_HANDLER handler = 0 -# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ - /** - * Init hook, create a Log_Msg_Attribute object, initialize its - * attributes from the TSS Log_Msg and save the object in the - * @a attributes argument - */ - ); - - /** - * Inherit hook, the @a attributes field is a ACE_OS_Log_Msg_Attributes - * object, invoke the inherit_log_msg() method on it, then destroy - * it and set the @a attribute argument to 0. - */ - static void inherit_hook (ACE_OS_Thread_Descriptor *thr_desc, - ACE_OS_Log_Msg_Attributes &attributes); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// Status of operation (-1 means failure, >= 0 means success). - int status_; - - /// Type of error that occurred (see ). - int errnum_; - - /// Line number where the error occurred. - int linenum_; - - /// File where the error occurred. - char file_[MAXPATHLEN + 1]; - - /// The log message, which resides in thread-specific storage. Note - /// that only the current log message is stored here -- it will be - /// overwritten by the subsequent call to log(). - ACE_TCHAR* msg_; // Add one for NUL-terminator. - - /// Indicates whether we should restart system calls that are - /// interrupted. - int restart_; - - /// The ostream where logging messages can be written. - ACE_OSTREAM_TYPE *ostream_; - - /// The callback object. - ACE_Log_Msg_Callback *msg_callback_; - - /// Depth of the nesting for printing traces. - int trace_depth_; - - /// Are we already within an ACE_Trace constructor call? - bool trace_active_; - - /// Are we allowing tracing in this thread? - bool tracing_enabled_; - - /// Are we deleting this ostream? - bool delete_ostream_; - - /** - * 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 - * access all thread data kept in ACE_Thread_Descriptor. - */ - ACE_Thread_Descriptor *thr_desc_; - - /** - * Keeps track of all the per-thread ACE_Log_Priority values that - * are currently enabled. Default is for all logging priorities to - * be disabled. - */ - u_long priority_mask_; - - /// Always timestamp? - int timestamp_; - - // = The following fields are *not* kept in thread-specific storage. - - // We only want one instance for the entire process! - - /** - * Keeps track of all the per-process ACE_Log_Priority values that - * are currently enabled. Default is for all logging priorities to - * be enabled. - */ - static u_long process_priority_mask_; - - /// Records the program name. - static const ACE_TCHAR *program_name_; - - /// Name of the local host (used when printing messages). - static const ACE_TCHAR *local_host_; - - /// Process id of the current process. - static pid_t pid_; - - /// Options flags used to hold the logger flag options, e.g., - /// STDERR, LOGGER, OSTREAM, MSG_CALLBACK, etc. - static u_long flags_; - - /// Offset of msg_[]. - static ptrdiff_t msg_off_; - - /** - * Number of existing ACE_Log_Msg instances; when 0, delete program/host - * names - */ - static int instance_count_; - - /** - * Priority mask to use for each new instance - */ - static u_long default_priority_mask_; - - /// Anonymous struct since there will only be one instance. This - /// struct keeps information stored away in case we actually end up - /// calling log() if the log priority is correct. - struct - { - bool is_set_; - const char *file_; - int line_; - int op_status_; - int errnum_; - } conditional_values_; - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - static int key_created_; -#endif /* ACE_MT_SAFE */ - - /// For cleanup, at program termination. - static void close (void); - - /// Decouple the OS layer from the ACE_Log_Msg layer. - static void sync_hook (const ACE_TCHAR *prg_name); - - /// Return the TSS singleton thread descriptor - static ACE_OS_Thread_Descriptor *thr_desc_hook (void); - - //friend void ACE_OS::cleanup_tss (const u_int); - - // = Disallow these operations. - ACE_Log_Msg &operator= (const ACE_Log_Msg &); - ACE_Log_Msg (const ACE_Log_Msg &); -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \ - defined (ACE_HAS_TSS_EMULATION) -/* static */ -# if defined (ACE_HAS_THR_C_DEST) -# define LOCAL_EXTERN_PREFIX extern "C" -# else -# define LOCAL_EXTERN_PREFIX -# endif /* ACE_HAS_THR_C_DEST */ - -#if (defined (ACE_HAS_VERSIONED_NAMESPACE) && ACE_HAS_VERSIONED_NAMESPACE == 1) -# define ACE_TSS_CLEANUP_NAME ACE_PREPROC_CONCATENATE(ACE_,ACE_PREPROC_CONCATENATE(ACE_VERSIONED_NAMESPACE_NAME, _TSS_cleanup)) -#else -# define ACE_TSS_CLEANUP_NAME ACE_TSS_cleanup -#endif /* ACE_HAS_VERSIONED_NAMESPACE == 1 */ - - -LOCAL_EXTERN_PREFIX -void -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__ */ - -#include /**/ "ace/post.h" -#endif /* ACE_LOG_MSG_H */ diff --git a/ACE/ace/Log_Msg.inl b/ACE/ace/Log_Msg.inl deleted file mode 100644 index 677a6856d8f..00000000000 --- a/ACE/ace/Log_Msg.inl +++ /dev/null @@ -1,235 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_NS_string.h" -#include "ace/OS_NS_unistd.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -u_long -ACE_Log_Msg::priority_mask (MASK_TYPE mask_type) -{ - return mask_type == THREAD - ? this->priority_mask_ - : ACE_Log_Msg::process_priority_mask_; -} - -ACE_INLINE -int -ACE_Log_Msg::log_priority_enabled (ACE_Log_Priority log_priority) -{ - return ACE_BIT_ENABLED (this->priority_mask_ | - ACE_Log_Msg::process_priority_mask_, - log_priority); -} - -ACE_INLINE -void -ACE_Log_Msg::op_status (int status) -{ - this->status_ = status; -} - -ACE_INLINE -int -ACE_Log_Msg::op_status (void) const -{ - return this->status_; -} - -ACE_INLINE -void -ACE_Log_Msg::restart (int r) -{ - this->restart_ = r; -} - -ACE_INLINE -int -ACE_Log_Msg::restart (void) const -{ - return this->restart_; -} - -ACE_INLINE -int -ACE_Log_Msg::errnum (void) const -{ - return this->errnum_; -} - -ACE_INLINE -void -ACE_Log_Msg::errnum (int e) -{ - this->errnum_ = e; -} - -ACE_INLINE -int -ACE_Log_Msg::linenum (void) const -{ - return this->linenum_; -} - -ACE_INLINE -void -ACE_Log_Msg::linenum (int l) -{ - this->linenum_ = l; -} - -ACE_INLINE -int -ACE_Log_Msg::inc (void) -{ - return this->trace_depth_++; -} - -ACE_INLINE -int -ACE_Log_Msg::dec (void) -{ - return this->trace_depth_ == 0 ? 0 : --this->trace_depth_; -} - -ACE_INLINE -int -ACE_Log_Msg::trace_depth (void) const -{ - return this->trace_depth_; -} - -ACE_INLINE -void -ACE_Log_Msg::trace_depth (int depth) -{ - this->trace_depth_ = depth; -} - -ACE_INLINE -bool -ACE_Log_Msg::trace_active (void) const -{ - return this->trace_active_; -} - -ACE_INLINE -void -ACE_Log_Msg::trace_active (bool value) -{ - this->trace_active_ = value; -} - -ACE_INLINE -ACE_Thread_Descriptor * -ACE_Log_Msg::thr_desc (void) const -{ - return this->thr_desc_; -} - -/// Enable the tracing facility on a per-thread basis. -ACE_INLINE -void -ACE_Log_Msg::start_tracing (void) -{ - this->tracing_enabled_ = true; -} - -/// Disable the tracing facility on a per-thread basis. -ACE_INLINE -void -ACE_Log_Msg::stop_tracing (void) -{ - this->tracing_enabled_ = false; -} - -ACE_INLINE -bool -ACE_Log_Msg::tracing_enabled (void) const -{ - return this->tracing_enabled_; -} - -ACE_INLINE -const char * -ACE_Log_Msg::file (void) -{ - return this->file_; -} - -ACE_INLINE -void -ACE_Log_Msg::file (const char *s) -{ - ACE_OS::strsncpy (this->file_, s, sizeof this->file_); -} - -ACE_INLINE -const ACE_TCHAR * -ACE_Log_Msg::msg (void) -{ - return this->msg_ + ACE_Log_Msg::msg_off_; -} - -ACE_INLINE -void -ACE_Log_Msg::msg (const ACE_TCHAR *m) -{ - ACE_OS::strsncpy (this->msg_, m, - ((ACE_MAXLOGMSGLEN+1) / sizeof (ACE_TCHAR))); -} - -ACE_INLINE -ACE_Log_Msg_Callback * -ACE_Log_Msg::msg_callback (void) const -{ - return this->msg_callback_; -} - -ACE_INLINE -ACE_Log_Msg_Callback * -ACE_Log_Msg::msg_callback (ACE_Log_Msg_Callback *c) -{ - ACE_Log_Msg_Callback *old = this->msg_callback_; - this->msg_callback_ = c; - return old; -} - -ACE_INLINE -ACE_OSTREAM_TYPE * -ACE_Log_Msg::msg_ostream (void) const -{ - return this->ostream_; -} - -ACE_INLINE -void -ACE_Log_Msg::msg_ostream (ACE_OSTREAM_TYPE *m) -{ - this->ostream_ = m; -} - -ACE_INLINE -const ACE_TCHAR * -ACE_Log_Msg::local_host (void) const -{ - return ACE_Log_Msg::local_host_; -} - -ACE_INLINE -pid_t -ACE_Log_Msg::getpid (void) const -{ - if (ACE_Log_Msg::pid_ == -2) - ACE_Log_Msg::pid_ = ACE_OS::getpid (); - - return ACE_Log_Msg::pid_; -} - - - -ACE_END_VERSIONED_NAMESPACE_DECL - diff --git a/ACE/ace/Log_Msg_Backend.cpp b/ACE/ace/Log_Msg_Backend.cpp deleted file mode 100644 index de9b9c22b7b..00000000000 --- a/ACE/ace/Log_Msg_Backend.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -#include "ace/Log_Msg_Backend.h" - -ACE_RCSID(ace, Log_Msg_Backend, "$Id$") - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Log_Msg_Backend::~ACE_Log_Msg_Backend (void) -{ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Log_Msg_Backend.h b/ACE/ace/Log_Msg_Backend.h deleted file mode 100644 index b98465987db..00000000000 --- a/ACE/ace/Log_Msg_Backend.h +++ /dev/null @@ -1,88 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Log_Msg_Backend.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - - -#ifndef ACE_LOG_MSG_BACKEND_H -#define ACE_LOG_MSG_BACKEND_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_include/sys/os_types.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Log_Record; - -/** - * @class ACE_Log_Msg_Backend - * - * @brief Defines the interface for ACE_Log_Msg back end processing. - * - * The ACE_Log_Msg class uses ACE_Log_Msg_Backend as the target interface - * for back end log record procesing. In addition to the classes ACE - * derives from this (ACE_Log_Msg_NT_Event_Log, ACE_Log_Msg_UNIX_Syslog, and - * ACE_Log_Msg_IPC) users can derive classes from ACE_Log_Msg_Backend for - * use as a custom logger back end. - */ -class ACE_Export ACE_Log_Msg_Backend -{ -public: - /// No-op virtual destructor. - virtual ~ACE_Log_Msg_Backend (void); - - /** - * Open the back end object. Perform any actions needed to prepare - * the object for later logging operations. - * - * @param logger_key The character string passed to ACE_Log_Msg::open(). - * If the @c LOGGER logging destination is not being - * used, any string can be passed through to the back end. - * - * @retval 0 for success. - * @retval -1 for failure. - */ - virtual int open (const ACE_TCHAR *logger_key) = 0; - - /** - * Reset the backend. If ACE_Log_Msg is reopened during execution, this - * hook will be called. This method should perform any needed cleanup - * activity (similar to close()) because this object won't be reopened - * if the new open call does not specify use of this back end being reset. - * - * @retval Currently ignored, but to be safe, return 0 for success; - * -1 for failure. - */ - virtual int reset (void) = 0; - - /// Close the backend completely. - virtual int close (void) = 0; - - /** - * Process a log record. - * - * @param log_record The ACE_Log_Record to process. - * - * @retval -1 for failure; else it is customarily the number of bytes - * processed, but can also be 0 to signify success. - */ - virtual ssize_t log (ACE_Log_Record &log_record) = 0; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* ACE_LOG_MSG_BACKEND_H */ diff --git a/ACE/ace/Log_Msg_Callback.cpp b/ACE/ace/Log_Msg_Callback.cpp deleted file mode 100644 index 2fcf5206dd1..00000000000 --- a/ACE/ace/Log_Msg_Callback.cpp +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - -#include "ace/Log_Msg_Callback.h" - -ACE_RCSID(ace, Log_Msg_Callback, "$Id$") - - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Log_Msg_Callback::~ACE_Log_Msg_Callback (void) -{ -} -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Log_Msg_Callback.h b/ACE/ace/Log_Msg_Callback.h deleted file mode 100644 index ecd8641dbb3..00000000000 --- a/ACE/ace/Log_Msg_Callback.h +++ /dev/null @@ -1,69 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Log_Msg_Callback.h - * - * $Id$ - * - * @author Douglas C. Schmidt - */ -//============================================================================= - -#ifndef ACE_LOG_MSG_CALLBACK_H -#define ACE_LOG_MSG_CALLBACK_H -#include /**/ "ace/pre.h" - -#include /**/ "ace/ACE_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -class ACE_Log_Record; - -/** - * @class ACE_Log_Msg_Callback - * - * @brief An interface class used to get logging callbacks. - * - * Users who are interested in getting the logging messages - * directly, can subclass this interface and override the log() - * method. They must then register their subclass with the - * Log_Msg class and make sure that they turn on the - * ACE_Log_Msg::MSG_CALLBACK flag. - * - * Your 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. - * - * 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 method) or have a separate - * callback object per Log_Msg object. Moreover, - * 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 - * new thread. - */ -class ACE_Export ACE_Log_Msg_Callback -{ -public: - /// No-op virtual destructor. - virtual ~ACE_Log_Msg_Callback (void); - - /// Callback routine. This is called when we want to log a message. - /// Since this routine is pure virtual, it must be overwritten by the - /// subclass. - virtual void log (ACE_Log_Record &log_record) = 0; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* ACE_LOG_MSG_CALLBACK_H */ diff --git a/ACE/ace/Log_Msg_IPC.cpp b/ACE/ace/Log_Msg_IPC.cpp deleted file mode 100644 index 82411a3cf92..00000000000 --- a/ACE/ace/Log_Msg_IPC.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// $Id$ - -#include "ace/Log_Msg_IPC.h" -#include "ace/Log_Record.h" -#include "ace/CDR_Stream.h" -#include "ace/Truncate.h" - -ACE_RCSID(ace, Log_Msg_IPC, "$Id$") - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_Log_Msg_IPC::ACE_Log_Msg_IPC (void) -{ -} - -ACE_Log_Msg_IPC::~ACE_Log_Msg_IPC (void) -{ - (void) this->close (); -} - -int -ACE_Log_Msg_IPC::open (const ACE_TCHAR *logger_key) -{ - ACE_LOG_MSG_IPC_CONNECTOR con; - return con.connect (this->message_queue_, - ACE_LOG_MSG_IPC_ADDR (logger_key)); -} - -int -ACE_Log_Msg_IPC::reset (void) -{ - if (this->message_queue_.get_handle () != ACE_INVALID_HANDLE) - { - // If we don't do this, handles aren't reused on Win32 and the - // server eventually crashes! - return this->close (); - } - return 0; -} - -int -ACE_Log_Msg_IPC::close (void) -{ - return this->message_queue_.close (); -} - -ssize_t -ACE_Log_Msg_IPC::log (ACE_Log_Record &log_record) -{ - // Serialize the log record using a CDR stream, allocate enough - // space for the complete . - size_t const max_payload_size = - 4 // type - + 4 // pid - + 12 // timestamp - + 4 // process id - + 4 // data length -#if defined (ACE_USES_WCHAR) - + (log_record.msg_data_len () * ACE_OutputCDR::wchar_maxbytes()) // message -#else - + log_record.msg_data_len () // message -#endif - + ACE_CDR::MAX_ALIGNMENT; // padding; - - // Insert contents of into payload stream. - ACE_OutputCDR payload (max_payload_size); - payload << log_record; - - // Get the number of bytes used by the CDR stream. If it becomes desireable - // to support payloads more than 4GB, this field will need to be changed - // to a 64-bit value. - ACE_CDR::ULong length = - ACE_Utils::truncate_cast (payload.total_length ()); - - // Send a header so the receiver can determine the byte order and - // size of the incoming CDR stream. - ACE_OutputCDR header (ACE_CDR::MAX_ALIGNMENT + 8); - header << ACE_OutputCDR::from_boolean (ACE_CDR_BYTE_ORDER); - - // Store the size of the payload that follows - header << ACE_CDR::ULong (length); - - // Use an iovec to send both buffer and payload simultaneously. - iovec iov[2]; - iov[0].iov_base = header.begin ()->rd_ptr (); - iov[0].iov_len = 8; - iov[1].iov_base = payload.begin ()->rd_ptr (); - iov[1].iov_len = length; - -#if defined (ACE_HAS_STREAM_PIPES) - // Use the API if supported to ensure correct message - // queueing according to priority. - - ACE_Str_Buf header_msg (static_cast (header.begin ()->rd_ptr ()), - static_cast (8)); - - ACE_Str_Buf payload_msg (static_cast (payload.begin ()->rd_ptr ()), - static_cast (length)); - - return this->message_queue_.send (&header_msg, - &payload_msg, - static_cast (log_record.priority ()), - MSG_BAND); -#else - // We're running over sockets, so send header and payload - // efficiently using "gather-write". - return this->message_queue_.sendv_n (iov, 2); -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Log_Msg_IPC.h b/ACE/ace/Log_Msg_IPC.h deleted file mode 100644 index 8b39b9ec551..00000000000 --- a/ACE/ace/Log_Msg_IPC.h +++ /dev/null @@ -1,79 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Log_Msg_IPC.h - * - * $Id$ - * - * @author Carlos O'Ryan - */ -//============================================================================= - -#ifndef ACE_LOG_MSG_LOGGER_H -#define ACE_LOG_MSG_LOGGER_H -#include /**/ "ace/pre.h" - -#include "ace/Log_Msg_Backend.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// IPC conduit between sender and client daemon. This should be -// included in the ACE_Log_Msg class, but due to "order of include" -// problems it can't be... -#if defined (ACE_HAS_STREAM_PIPES) -# include "ace/SPIPE_Connector.h" -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef ACE_SPIPE_Stream ACE_LOG_MSG_IPC_STREAM; -typedef ACE_SPIPE_Connector ACE_LOG_MSG_IPC_CONNECTOR; -typedef ACE_SPIPE_Addr ACE_LOG_MSG_IPC_ADDR; -ACE_END_VERSIONED_NAMESPACE_DECL -#else -# include "ace/SOCK_Connector.h" -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -typedef ACE_SOCK_Stream ACE_LOG_MSG_IPC_STREAM; -typedef ACE_SOCK_Connector ACE_LOG_MSG_IPC_CONNECTOR; -typedef ACE_INET_Addr ACE_LOG_MSG_IPC_ADDR; -ACE_END_VERSIONED_NAMESPACE_DECL -#endif /* ACE_HAS_STREAM_PIPES */ - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/// Defines the interfaces for ACE_Log_Msg backend. -/** - * Implement an ACE_Log_Msg_Backend that logs to a remote logging - * process. - */ -class ACE_Export ACE_Log_Msg_IPC : public ACE_Log_Msg_Backend -{ -public: - /// Constructor - ACE_Log_Msg_IPC (void); - - /// Destructor - virtual ~ACE_Log_Msg_IPC (void); - - /// Open a new connection - virtual int open (const ACE_TCHAR *logger_key); - - /** - * Reset the backend. When changing the logging destination the - * backend may need to properly disconnect from the remote logging - * daemon and reclaim some local resources. But we try to reduce - * the number of local allocations/deallocations. - */ - virtual int reset (void); - - virtual int close (void); - virtual ssize_t log (ACE_Log_Record &log_record); - -private: - ACE_LOG_MSG_IPC_STREAM message_queue_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* ACE_LOG_MSG_H */ diff --git a/ACE/ace/Log_Msg_NT_Event_Log.cpp b/ACE/ace/Log_Msg_NT_Event_Log.cpp deleted file mode 100644 index e22170c01dc..00000000000 --- a/ACE/ace/Log_Msg_NT_Event_Log.cpp +++ /dev/null @@ -1,162 +0,0 @@ -// $Id$ - -#include "ace/config-all.h" - -#if defined (ACE_HAS_LOG_MSG_NT_EVENT_LOG) - -#include "ace/Log_Msg_NT_Event_Log.h" -#include "ace/Log_Msg.h" -#include "ace/Log_Record.h" -#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 - -ACE_Log_Msg_NT_Event_Log::ACE_Log_Msg_NT_Event_Log (void) - : evlog_handle_(0) -{ -} - -ACE_Log_Msg_NT_Event_Log::~ACE_Log_Msg_NT_Event_Log (void) -{ - this->close (); -} - -int -ACE_Log_Msg_NT_Event_Log::open (const ACE_TCHAR *logger_key) -{ - // ACE's "resource module" contains the message resource required - // for event logging. - ACE_TCHAR msg_file [MAXPATHLEN]; - - if (!ACE_TEXT_GetModuleFileName (ACE_OS::get_win32_resource_module (), - msg_file, - MAXPATHLEN)) - return -1; - DWORD msg_file_length = - static_cast ((ACE_OS::strlen (msg_file) + 1) * sizeof (ACE_TCHAR)); - - // If a logger_key has been supplied then we use that as the event - // source name, otherwise we default to the program name. - const ACE_TCHAR *event_source_name = logger_key ? logger_key : ACE_Log_Msg::program_name (); - - // Information is stored in the registry at a location based on the - // program name. - ACE_TCHAR reg_key [MAXPATHLEN]; - ACE_OS::strcpy (reg_key, - ACE_TEXT ("SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\")); - size_t reg_key_length = ACE_OS::strlen(reg_key); - ACE_OS::strncat (reg_key, - event_source_name, - MAXPATHLEN - reg_key_length); - - // Add the event source to the registry. Note that if this fails it - // is not fatal. The application will still be able to write entries - // to the event log, they just won't be formatted correctly. - HKEY hkey; - ACE_TEXT_RegCreateKey (HKEY_LOCAL_MACHINE, - reg_key, - &hkey); - DWORD flags = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | EVENTLOG_INFORMATION_TYPE; - ACE_TEXT_RegSetValueEx (hkey, - ACE_TEXT ("TypesSupported"), - 0, - REG_DWORD, - (LPBYTE) &flags, - sizeof (DWORD)); - ACE_TEXT_RegSetValueEx (hkey, - ACE_TEXT ("EventMessageFile"), - 0, - REG_SZ, - (LPBYTE) msg_file, - msg_file_length); - RegCloseKey (hkey); - - // Obtain a handle to the event source. - this->evlog_handle_ = ACE_TEXT_RegisterEventSource (0, - event_source_name); - return this->evlog_handle_ ? 0 : -1; -} - -int -ACE_Log_Msg_NT_Event_Log::reset (void) -{ - return this->close (); -} - -int -ACE_Log_Msg_NT_Event_Log::close (void) -{ - if (this->evlog_handle_ == 0 - || DeregisterEventSource (this->evlog_handle_)) - { - this->evlog_handle_ = 0; - return 0; - } - else - return -1; -} - -ssize_t -ACE_Log_Msg_NT_Event_Log::log (ACE_Log_Record &log_record) -{ - // Make a copy of the log text and replace any newlines with - // 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]; - - for (size_t i = 0, j = 0; - i < log_record.msg_data_len (); - ++i) - { - if (src_msg_data[i] == '\n') - { - msg_data[j++] = '\r'; - msg_data[j++] = '\n'; - } - else - msg_data[j++] = src_msg_data[i]; - } - - // Map the ACE log record type to an event log type. - WORD event_type; - switch (log_record.type ()) - { - case LM_STARTUP: - case LM_SHUTDOWN: - case LM_TRACE: - case LM_DEBUG: - case LM_INFO: - event_type = EVENTLOG_INFORMATION_TYPE; - break; - case LM_NOTICE: - case LM_WARNING: - event_type = EVENTLOG_WARNING_TYPE; - break; - case LM_ERROR: - case LM_CRITICAL: - case LM_ALERT: - case LM_EMERGENCY: - default: - event_type = EVENTLOG_ERROR_TYPE; - break; - } - - // Send the log message to the system event log. - const ACE_TCHAR* msgs [1]; - msgs[0] = msg_data; - - if (ACE_TEXT_ReportEvent (this->evlog_handle_, - event_type, 0, 0, 0, 1, 0, msgs, 0) == 0) - return -1; - else - return 0; -} - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_LOG_MSG_NT_EVENT_LOG */ diff --git a/ACE/ace/Log_Msg_NT_Event_Log.h b/ACE/ace/Log_Msg_NT_Event_Log.h deleted file mode 100644 index 4bca6adaa20..00000000000 --- a/ACE/ace/Log_Msg_NT_Event_Log.h +++ /dev/null @@ -1,72 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Log_Msg_NT_Event_Log.h - * - * $Id$ - * - * @author Christopher Kohlhoff - */ -//============================================================================= - -#ifndef ACE_LOG_MSG_NT_EVENT_LOG_H -#define ACE_LOG_MSG_NT_EVENT_LOG_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_HAS_LOG_MSG_NT_EVENT_LOG - -#include "ace/Log_Msg_Backend.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class ACE_Log_Msg_NT_Event_Log - * - * @brief Implements an ACE_Log_Msg_Backend that logs to the WinNT system - * event log. - */ -class ACE_Export ACE_Log_Msg_NT_Event_Log : public ACE_Log_Msg_Backend -{ -public: - /// Constructor - ACE_Log_Msg_NT_Event_Log (void); - - /// Destructor - virtual ~ACE_Log_Msg_NT_Event_Log (void); - - /// Open a new event log. - /** - * Initialize the event logging facility. - * @param logger_key The name of the calling program. This name is - * used in the Source field of the event log. If - * it is 0 (no name), the application name as - * returned from ACE_Log_Msg::program_name() is used. - */ - virtual int open (const ACE_TCHAR *logger_key); - - /// Reset the backend. - virtual int reset (void); - - /// Close the backend completely. - virtual int close (void); - - /// This is called when we want to log a message. - virtual ssize_t log (ACE_Log_Record &log_record); - -private: - HANDLE evlog_handle_; -}; - -ACE_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_LOG_MSG_NT_EVENT_LOG */ - -#include /**/ "ace/post.h" -#endif /* ACE_LOG_MSG_NT_EVENT_LOG_H */ diff --git a/ACE/ace/Log_Msg_UNIX_Syslog.cpp b/ACE/ace/Log_Msg_UNIX_Syslog.cpp deleted file mode 100644 index dba78bcd571..00000000000 --- a/ACE/ace/Log_Msg_UNIX_Syslog.cpp +++ /dev/null @@ -1,207 +0,0 @@ -// $Id$ - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_UNIX_SYSLOG) - -#include "ace/ACE.h" -#include "ace/Log_Msg.h" -#include "ace/Log_Msg_UNIX_Syslog.h" -#include "ace/Log_Record.h" -#include "ace/OS_NS_string.h" -#include "ace/os_include/os_syslog.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -// NOTE: -// The ACE_Log_Msg_UNIX_Syslog class can use the openlog(), -// setlogmask(), syslog() and closelog() routines in a thread safe -// manner (versus using openlog_r(), et. al.), as the ACE_Log_Msg -// class uses the lock provided by its local ACE_Log_Msg_Manager -// class when calling the methods of the backend classes. As a -// result, logging semantics with respect to the UNIX syslog -// facility, will be the same for all threads in a process. This -// should not be too limiting, as the ACE_Log_Msg class itself can -// be used to control thread specific logging behavior. - -ACE_Log_Msg_UNIX_Syslog::ACE_Log_Msg_UNIX_Syslog (void) -{ -} - -ACE_Log_Msg_UNIX_Syslog::~ACE_Log_Msg_UNIX_Syslog (void) -{ - (void) this->close (); -} - -int -ACE_Log_Msg_UNIX_Syslog::open (const ACE_TCHAR * logger_key) -{ - if (logger_key == 0) - logger_key = ACE_Log_Msg::program_name (); - - // Initialize the UNIX syslog facility. Default the syslog log - // options LOG_CONS and LOG_PID to be set. There really should be a - // logging strategy option to control the syslog log options, - // however, we'll take the easy way out for now. -#if defined (ACE_USES_WCHAR) - openlog (ACE_TEXT_ALWAYS_CHAR (logger_key), - LOG_CONS|LOG_PID, - ACE_DEFAULT_SYSLOG_FACILITY); -#else - openlog (const_cast (logger_key), - LOG_CONS|LOG_PID, - ACE_DEFAULT_SYSLOG_FACILITY); -#endif /* ACE_USES_WCHAR */ - - // Enable logging of all syslog priorities. If logging of all - // priorities is not desired, use the ACE_Log_Msg::priority_mask() - // method to control the log output sent to the syslog daemon via - // the log() method, or use the system's syslog.conf file to select - // desired level of information. - -#if !defined (ACE_LACKS_SETLOGMASK) - (void) setlogmask (LOG_UPTO (LOG_DEBUG)); -#endif /* ACE_LACKS_SETLOGMASK */ - - return 0; -} - -int -ACE_Log_Msg_UNIX_Syslog::reset (void) -{ - return this->close (); -} - -int -ACE_Log_Msg_UNIX_Syslog::close (void) -{ - closelog(); - return 0; -} - -ssize_t -ACE_Log_Msg_UNIX_Syslog::log (ACE_Log_Record &log_record) -{ - int syslog_priority = this->convert_log_priority (log_record.type ()); - u_long flags = ACE_LOG_MSG->flags (); - - // The UNIX syslog() facility does not support multi-line messages. - // Break up the message data into separate lines and send each line - // to the syslog daemon. - - ACE_TCHAR message[ACE_Log_Record::MAXVERBOSELOGMSGLEN]; - ACE_OS::strcpy (message, log_record.msg_data ()); - ACE_TCHAR *strtokp = 0; - - for (ACE_TCHAR *line = ACE_OS::strtok_r (message, - ACE_TEXT ("\n"), - &strtokp); - line != 0; - line = ACE_OS::strtok_r (0, - ACE_TEXT ("\n"), - &strtokp)) - { - // Format the message line. Note that the processing for - // VERBOSE is the same as for VERBOSE_LITE, since syslog() - // already provides us with the hostname and PID. However, the - // timestamp is duplicated (albeit a shortened version) to - // provide a timestamp with greater precision than that provided - // by syslog(). - if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::VERBOSE) - || ACE_BIT_ENABLED (flags, ACE_Log_Msg::VERBOSE_LITE)) - { - ACE_TCHAR date_and_time[35]; - if (0 == ACE::timestamp (date_and_time, sizeof (date_and_time), 1)) - ACE_OS::strcpy (date_and_time, ACE_TEXT ("